diff --git a/Makefile b/Makefile index 6955c03a10..8c8268c20b 100644 --- a/Makefile +++ b/Makefile @@ -8,7 +8,7 @@ # Configuration CPYTHON_PATH := cpython # Current commit for this upstream repo is setted by the submodule -BRANCH := 3.11 +BRANCH := 3.12 LANGUAGE_TEAM := python-docs-es LANGUAGE := es diff --git a/bugs.po b/bugs.po index fa09e3749e..df26f6c959 100644 --- a/bugs.po +++ b/bugs.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-06-28 01:03+0200\n" "Last-Translator: \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/bugs.rst:5 msgid "Dealing with Bugs" @@ -63,6 +63,12 @@ msgstr "" #: ../Doc/bugs.rst:22 msgid "" +"You can also open a discussion item on our `Documentation Discourse forum " +"`_." +msgstr "" + +#: ../Doc/bugs.rst:25 +msgid "" "If you're short on time, you can also email documentation bug reports to " "docs@python.org (behavioral bugs can be sent to python-list@python.org). " "'docs@' is a mailing list run by volunteers; your request will be noticed, " @@ -74,11 +80,11 @@ msgstr "" "org). 'docs@' es una lista de correo iniciada por voluntarios; tu petición " "será notificada, aunque puede que lleve algo de tiempo el ser procesada." -#: ../Doc/bugs.rst:30 +#: ../Doc/bugs.rst:33 msgid "`Documentation bugs`_" msgstr "`Documentación de errores`_" -#: ../Doc/bugs.rst:30 +#: ../Doc/bugs.rst:33 msgid "" "A list of documentation bugs that have been submitted to the Python issue " "tracker." @@ -86,17 +92,17 @@ msgstr "" "Una lista de errores (*bugs*) que ha sido enviada al issue tracker (sistema " "de seguimiento de incidentes) de Python." -#: ../Doc/bugs.rst:33 +#: ../Doc/bugs.rst:36 msgid "`Issue Tracking `_" msgstr "`Seguimiento de incidencias `_" -#: ../Doc/bugs.rst:33 +#: ../Doc/bugs.rst:36 msgid "" "Overview of the process involved in reporting an improvement on the tracker." msgstr "" "Resumen general del proceso necesario para reportar una mejora en el tracker." -#: ../Doc/bugs.rst:36 +#: ../Doc/bugs.rst:39 msgid "" "`Helping with Documentation `_" @@ -104,7 +110,7 @@ msgstr "" "`Ayudar con la documentación `_" -#: ../Doc/bugs.rst:36 +#: ../Doc/bugs.rst:39 msgid "" "Comprehensive guide for individuals that are interested in contributing to " "Python documentation." @@ -112,7 +118,7 @@ msgstr "" "Guía detallada para gente interesada en contribuir a la documentación de " "Python." -#: ../Doc/bugs.rst:38 +#: ../Doc/bugs.rst:41 #, fuzzy msgid "" "`Documentation Translations `_" -#: ../Doc/bugs.rst:39 +#: ../Doc/bugs.rst:42 msgid "" "A list of GitHub pages for documentation translation and their primary " "contacts." msgstr "" -#: ../Doc/bugs.rst:45 +#: ../Doc/bugs.rst:48 msgid "Using the Python issue tracker" msgstr "Utilizar el issue tracker de Python" -#: ../Doc/bugs.rst:47 +#: ../Doc/bugs.rst:50 msgid "" "Issue reports for Python itself should be submitted via the GitHub issues " "tracker (https://github.com/python/cpython/issues). The GitHub issues " @@ -139,7 +145,7 @@ msgid "" "and submitted to the developers." msgstr "" -#: ../Doc/bugs.rst:52 +#: ../Doc/bugs.rst:55 #, fuzzy msgid "" "The first step in filing a report is to determine whether the problem has " @@ -159,7 +165,7 @@ msgstr "" "en la base de datos de errores usando la zona de búsqueda al principio de " "esta página." -#: ../Doc/bugs.rst:59 +#: ../Doc/bugs.rst:62 msgid "" "If the problem you're reporting is not already in the list, log in to " "GitHub. If you don't already have a GitHub account, create a new account " @@ -167,7 +173,7 @@ msgid "" "anonymously." msgstr "" -#: ../Doc/bugs.rst:64 +#: ../Doc/bugs.rst:67 #, fuzzy msgid "" "Being now logged in, you can submit an issue. Click on the \"New issue\" " @@ -176,17 +182,17 @@ msgstr "" "Una vez dentro, puedes enviar el error. Selecciona el enlace \"Create New\" " "en la barra lateral para abrir el formulario del informe de errores." -#: ../Doc/bugs.rst:67 +#: ../Doc/bugs.rst:70 msgid "The submission form has two fields, \"Title\" and \"Comment\"." msgstr "" -#: ../Doc/bugs.rst:69 +#: ../Doc/bugs.rst:72 msgid "" "For the \"Title\" field, enter a *very* short description of the problem; " -"less than ten words is good." +"fewer than ten words is good." msgstr "" -#: ../Doc/bugs.rst:72 +#: ../Doc/bugs.rst:75 msgid "" "In the \"Comment\" field, describe the problem in detail, including what you " "expected to happen and what did happen. Be sure to include whether any " @@ -198,7 +204,7 @@ msgstr "" "si cualquier módulo de extensión está involucrado, y qué plataformas de " "hardware y software estás usando (incluyendo las versiones correspondientes)." -#: ../Doc/bugs.rst:77 +#: ../Doc/bugs.rst:80 #, fuzzy msgid "" "Each issue report will be reviewed by a developer who will determine what " @@ -209,7 +215,7 @@ msgstr "" "es necesario hacer para corregir el problema. Recibirás una actualización " "cada vez que una acción nueva sea aplicada." -#: ../Doc/bugs.rst:86 +#: ../Doc/bugs.rst:89 msgid "" "`How to Report Bugs Effectively `_" @@ -217,7 +223,7 @@ msgstr "" "`Cómo informar de errores de manera efectiva `_" -#: ../Doc/bugs.rst:85 +#: ../Doc/bugs.rst:88 msgid "" "Article which goes into some detail about how to create a useful bug report. " "This describes what kind of information is useful and why it is useful." @@ -225,7 +231,7 @@ msgstr "" "Artículo que detalla cómo crear un informe de errores útil. Describe qué " "tipo de información es útil y por qué lo es." -#: ../Doc/bugs.rst:89 +#: ../Doc/bugs.rst:92 msgid "" "`Bug Writing Guidelines `_" @@ -233,7 +239,7 @@ msgstr "" "`Bug Writing Guidelines `_" -#: ../Doc/bugs.rst:89 +#: ../Doc/bugs.rst:92 msgid "" "Information about writing a good bug report. Some of this is specific to " "the Mozilla project, but describes general good practices." @@ -242,11 +248,11 @@ msgstr "" "información es específica al proyecto Mozilla, pero en general describe " "buenas prácticas." -#: ../Doc/bugs.rst:95 +#: ../Doc/bugs.rst:98 msgid "Getting started contributing to Python yourself" msgstr "Para empezar a contribuir en Python" -#: ../Doc/bugs.rst:97 +#: ../Doc/bugs.rst:100 msgid "" "Beyond just reporting bugs that you find, you are also welcome to submit " "patches to fix them. You can find more information on how to get started " diff --git a/c-api/allocation.po b/c-api/allocation.po index e02d0897de..f0908ad22b 100644 --- a/c-api/allocation.po +++ b/c-api/allocation.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-05-08 01:33+0200\n" "Last-Translator: \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/allocation.rst:6 msgid "Allocating Objects on the Heap" @@ -48,10 +48,12 @@ msgstr "" "información de longitud para un objeto de tamaño variable." #: ../Doc/c-api/allocation.rst:32 +#, fuzzy msgid "" "Allocate a new Python object using the C structure type *TYPE* and the " -"Python type object *type*. Fields not defined by the Python object header " -"are not initialized; the object's reference count will be one. The size of " +"Python type object *typeobj* (``PyTypeObject*``). Fields not defined by the " +"Python object header are not initialized. The caller will own the only " +"reference to the object (i.e. its reference count will be one). The size of " "the memory allocation is determined from the :c:member:`~PyTypeObject." "tp_basicsize` field of the type object." msgstr "" @@ -61,16 +63,18 @@ msgstr "" "uno. El tamaño de la asignación de memoria se determina a partir del campo :" "c:member:`~PyTypeObject.tp_basicsize` del tipo de objeto." -#: ../Doc/c-api/allocation.rst:41 +#: ../Doc/c-api/allocation.rst:43 +#, fuzzy msgid "" "Allocate a new Python object using the C structure type *TYPE* and the " -"Python type object *type*. Fields not defined by the Python object header " -"are not initialized. The allocated memory allows for the *TYPE* structure " -"plus *size* fields of the size given by the :c:member:`~PyTypeObject." -"tp_itemsize` field of *type*. This is useful for implementing objects like " -"tuples, which are able to determine their size at construction time. " -"Embedding the array of fields into the same allocation decreases the number " -"of allocations, improving the memory management efficiency." +"Python type object *typeobj* (``PyTypeObject*``). Fields not defined by the " +"Python object header are not initialized. The allocated memory allows for " +"the *TYPE* structure plus *size* (``Py_ssize_t``) fields of the size given " +"by the :c:member:`~PyTypeObject.tp_itemsize` field of *typeobj*. This is " +"useful for implementing objects like tuples, which are able to determine " +"their size at construction time. Embedding the array of fields into the " +"same allocation decreases the number of allocations, improving the memory " +"management efficiency." msgstr "" "Asigna un nuevo objeto Python usando el tipo de estructura de C *TYPE* y el " "objeto tipo Python *type*. Los campos no definidos por el encabezado del " @@ -82,10 +86,11 @@ msgstr "" "disminuye el número de asignaciones, mejorando la eficiencia de la gestión " "de memoria." -#: ../Doc/c-api/allocation.rst:53 +#: ../Doc/c-api/allocation.rst:57 +#, fuzzy msgid "" -"Releases memory allocated to an object using :c:func:`PyObject_New` or :c:" -"func:`PyObject_NewVar`. This is normally called from the :c:member:" +"Releases memory allocated to an object using :c:macro:`PyObject_New` or :c:" +"macro:`PyObject_NewVar`. This is normally called from the :c:member:" "`~PyTypeObject.tp_dealloc` handler specified in the object's type. The " "fields of the object should not be accessed after this call as the memory is " "no longer a valid Python object." @@ -96,7 +101,7 @@ msgstr "" "acceder a los campos del objeto después de esta llamada, ya que la memoria " "ya no es un objeto Python válido." -#: ../Doc/c-api/allocation.rst:62 +#: ../Doc/c-api/allocation.rst:66 msgid "" "Object which is visible in Python as ``None``. This should only be accessed " "using the :c:macro:`Py_None` macro, which evaluates to a pointer to this " @@ -106,10 +111,10 @@ msgstr "" "utilizando el macro :c:macro:`Py_None`, que se evalúa como un puntero a este " "objeto." -#: ../Doc/c-api/allocation.rst:69 +#: ../Doc/c-api/allocation.rst:73 msgid ":c:func:`PyModule_Create`" msgstr ":c:func:`PyModule_Create`" -#: ../Doc/c-api/allocation.rst:70 +#: ../Doc/c-api/allocation.rst:74 msgid "To allocate and create extension modules." msgstr "Para asignar y crear módulos de extensión." diff --git a/c-api/apiabiversion.po b/c-api/apiabiversion.po index 02da76e95d..d10400d4fc 100644 --- a/c-api/apiabiversion.po +++ b/c-api/apiabiversion.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-31 21:13-0300\n" "Last-Translator: \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/apiabiversion.rst:7 msgid "API and ABI Versioning" @@ -181,11 +180,16 @@ msgstr "" "hexadecimal ``0x030a00f0``." #: ../Doc/c-api/apiabiversion.rst:61 -msgid "This version is also available via the symbol :data:`Py_Version`." +msgid "Use this for numeric comparisons, e.g. ``#if PY_VERSION_HEX >= ...``." +msgstr "" + +#: ../Doc/c-api/apiabiversion.rst:63 +#, fuzzy +msgid "This version is also available via the symbol :c:var:`Py_Version`." msgstr "" "Esta versión también está disponible a través del símbolo :data:`Py_Version`." -#: ../Doc/c-api/apiabiversion.rst:65 +#: ../Doc/c-api/apiabiversion.rst:67 msgid "" "The Python runtime version number encoded in a single constant integer, with " "the same format as the :c:macro:`PY_VERSION_HEX` macro. This contains the " @@ -196,6 +200,6 @@ msgstr "" "`PY_VERSION_HEX`. Contiene la versión de Python utilizada en tiempo de " "ejecución." -#: ../Doc/c-api/apiabiversion.rst:71 +#: ../Doc/c-api/apiabiversion.rst:73 msgid "All the given macros are defined in :source:`Include/patchlevel.h`." msgstr "Todas las macros dadas se definen en :source:`Include/patchlevel.h`." diff --git a/c-api/arg.po b/c-api/arg.po index ac0f669d1e..b862c9af1d 100644 --- a/c-api/arg.po +++ b/c-api/arg.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-10-30 19:57-0300\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/arg.rst:6 msgid "Parsing arguments and building values" @@ -88,25 +88,24 @@ msgstr "" "Unicode o área de bytes retornada." #: ../Doc/c-api/arg.rst:37 -msgid "" -"In general, when a format sets a pointer to a buffer, the buffer is managed " -"by the corresponding Python object, and the buffer shares the lifetime of " -"this object. You won't have to release any memory yourself. The only " -"exceptions are ``es``, ``es#``, ``et`` and ``et#``." +msgid "Unless otherwise stated, buffers are not NUL-terminated." +msgstr "" +"A menos que se indique lo contrario, los búferes no son terminados en NULL " +"(*NUL-terminated*)." + +#: ../Doc/c-api/arg.rst:39 +msgid "There are three ways strings and buffers can be converted to C:" msgstr "" -"En general, cuando un formato establece un puntero a un búfer, el búfer es " -"gestionado por el objeto de Python correspondiente, y el búfer comparte la " -"vida útil de este objeto. Usted no tendrá que liberar cualquier memoria " -"usted mismo. Las únicas excepciones son ``es``, ``es#``, ``et`` y ``et#``." -#: ../Doc/c-api/arg.rst:42 +#: ../Doc/c-api/arg.rst:41 +#, fuzzy msgid "" -"However, when a :c:type:`Py_buffer` structure gets filled, the underlying " -"buffer is locked so that the caller can subsequently use the buffer even " -"inside a :c:type:`Py_BEGIN_ALLOW_THREADS` block without the risk of mutable " -"data being resized or destroyed. As a result, **you have to call** :c:func:" -"`PyBuffer_Release` after you have finished processing the data (or in any " -"early abort case)." +"Formats such as ``y*`` and ``s*`` fill a :c:type:`Py_buffer` structure. This " +"locks the underlying buffer so that the caller can subsequently use the " +"buffer even inside a :c:type:`Py_BEGIN_ALLOW_THREADS` block without the risk " +"of mutable data being resized or destroyed. As a result, **you have to " +"call** :c:func:`PyBuffer_Release` after you have finished processing the " +"data (or in any early abort case)." msgstr "" "Sin embargo, cuando una estructura :c:type:`Py_buffer` se llena, la memoria " "intermedia subyacente está bloqueada de manera que la persona que llama " @@ -116,26 +115,38 @@ msgstr "" "que llamar** :c:func:`PyBuffer_Release` después de haber terminado de " "procesar los datos (o en caso de aborto temprano)." -#: ../Doc/c-api/arg.rst:49 -msgid "Unless otherwise stated, buffers are not NUL-terminated." +#: ../Doc/c-api/arg.rst:48 +msgid "" +"The ``es``, ``es#``, ``et`` and ``et#`` formats allocate the result buffer. " +"**You have to call** :c:func:`PyMem_Free` after you have finished processing " +"the data (or in any early abort case)." msgstr "" -"A menos que se indique lo contrario, los búferes no son terminados en NULL " -"(*NUL-terminated*)." -#: ../Doc/c-api/arg.rst:51 +#: ../Doc/c-api/arg.rst:54 msgid "" -"Some formats require a read-only :term:`bytes-like object`, and set a " -"pointer instead of a buffer structure. They work by checking that the " -"object's :c:member:`PyBufferProcs.bf_releasebuffer` field is ``NULL``, which " -"disallows mutable objects such as :class:`bytearray`." +"Other formats take a :class:`str` or a read-only :term:`bytes-like object`, " +"such as :class:`bytes`, and provide a ``const char *`` pointer to its " +"buffer. In this case the buffer is \"borrowed\": it is managed by the " +"corresponding Python object, and shares the lifetime of this object. You " +"won't have to release any memory yourself." msgstr "" -"Algunos formatos requieren :term:`bytes-like object` de sólo lectura, y " -"establecen un puntero en lugar de una estructura de búfer. Trabajan " -"comprobando que el campo del objeto :c:member:`PyBufferProcs." -"bf_releasebuffer` es ``NULL``, que no permite objetos mutables como :class:" -"`bytearray`." -#: ../Doc/c-api/arg.rst:58 +#: ../Doc/c-api/arg.rst:61 +msgid "" +"To ensure that the underlying buffer may be safely borrowed, the object's :c:" +"member:`PyBufferProcs.bf_releasebuffer` field must be ``NULL``. This " +"disallows common mutable objects such as :class:`bytearray`, but also some " +"read-only objects such as :class:`memoryview` of :class:`bytes`." +msgstr "" + +#: ../Doc/c-api/arg.rst:67 +msgid "" +"Besides this ``bf_releasebuffer`` requirement, there is no check to verify " +"whether the input object is immutable (e.g. whether it would honor a request " +"for a writable buffer, or whether another thread can mutate the data)." +msgstr "" + +#: ../Doc/c-api/arg.rst:73 msgid "" "For all ``#`` variants of formats (``s#``, ``y#``, etc.), the macro :c:macro:" "`PY_SSIZE_T_CLEAN` must be defined before including :file:`Python.h`. On " @@ -149,11 +160,11 @@ msgstr "" "*length* es :c:type:`Py_ssize_t` si la macro :c:macro:`PY_SSIZE_T_CLEAN` " "está definida, o int si no lo está." -#: ../Doc/c-api/arg.rst:83 +#: ../Doc/c-api/arg.rst:98 msgid "``s`` (:class:`str`) [const char \\*]" msgstr "``s`` (:class:`str`) [const char \\*]" -#: ../Doc/c-api/arg.rst:66 +#: ../Doc/c-api/arg.rst:81 msgid "" "Convert a Unicode object to a C pointer to a character string. A pointer to " "an existing string is stored in the character pointer variable whose address " @@ -171,7 +182,7 @@ msgstr "" "C utilizando codificación ``'utf-8'``. Si esta conversión fallase lanza un :" "exc:`UnicodeError`." -#: ../Doc/c-api/arg.rst:75 +#: ../Doc/c-api/arg.rst:90 msgid "" "This format does not accept :term:`bytes-like objects `. " "If you want to accept filesystem paths and convert them to C character " @@ -183,7 +194,7 @@ msgstr "" "de caracteres C, es preferible utilizar el formato ``O&`` con :func:" "`PyUnicode_FSConverter` como convertidor." -#: ../Doc/c-api/arg.rst:81 ../Doc/c-api/arg.rst:148 +#: ../Doc/c-api/arg.rst:96 msgid "" "Previously, :exc:`TypeError` was raised when embedded null code points were " "encountered in the Python string." @@ -191,11 +202,11 @@ msgstr "" "Anteriormente, :exc:`TypeError` se lanzó cuando se encontraron puntos de " "código nulos incrustados en la cadena de caracteres de Python." -#: ../Doc/c-api/arg.rst:89 +#: ../Doc/c-api/arg.rst:104 msgid "``s*`` (:class:`str` or :term:`bytes-like object`) [Py_buffer]" msgstr "``s*`` (:class:`str` o :term:`bytes-like object`) [Py_buffer]" -#: ../Doc/c-api/arg.rst:86 +#: ../Doc/c-api/arg.rst:101 msgid "" "This format accepts Unicode objects as well as bytes-like objects. It fills " "a :c:type:`Py_buffer` structure provided by the caller. In this case the " @@ -208,7 +219,7 @@ msgstr "" "NUL embebidos. Los objetos Unicode se convierten en cadenas de caracteres C " "utilizando codificación ``'utf-8'``." -#: ../Doc/c-api/arg.rst:96 +#: ../Doc/c-api/arg.rst:111 msgid "" "``s#`` (:class:`str`, read-only :term:`bytes-like object`) [const char \\*, :" "c:type:`Py_ssize_t`]" @@ -216,12 +227,14 @@ msgstr "" "``s#`` (:class:`str`, :term:`bytes-like object` de sólo lectura) [const char " "\\*, :c:type:`Py_ssize_t`]" -#: ../Doc/c-api/arg.rst:92 +#: ../Doc/c-api/arg.rst:107 +#, fuzzy msgid "" -"Like ``s*``, except that it doesn't accept mutable objects. The result is " -"stored into two C variables, the first one a pointer to a C string, the " -"second one its length. The string may contain embedded null bytes. Unicode " -"objects are converted to C strings using ``'utf-8'`` encoding." +"Like ``s*``, except that it provides a :ref:`borrowed buffer `. The result is stored into two C variables, the first one a pointer " +"to a C string, the second one its length. The string may contain embedded " +"null bytes. Unicode objects are converted to C strings using ``'utf-8'`` " +"encoding." msgstr "" "Como ``s*``, excepto que no acepta los objetos mutables. El resultado se " "almacena en dos variables de C, la primera un puntero a una cadena de " @@ -229,11 +242,11 @@ msgstr "" "contener caracteres nulos incrustados. Los objetos Unicode se convierten en " "cadenas de caracteres C utilizando codificación ``'utf-8'``." -#: ../Doc/c-api/arg.rst:100 ../Doc/c-api/arg.rst:565 +#: ../Doc/c-api/arg.rst:115 ../Doc/c-api/arg.rst:547 msgid "``z`` (:class:`str` or ``None``) [const char \\*]" msgstr "``z`` (:class:`str` o ``None``) [const char \\*]" -#: ../Doc/c-api/arg.rst:99 +#: ../Doc/c-api/arg.rst:114 msgid "" "Like ``s``, but the Python object may also be ``None``, in which case the C " "pointer is set to ``NULL``." @@ -241,13 +254,13 @@ msgstr "" "Como ``s``, pero el objeto Python también puede ser ``None``, en cuyo caso " "el puntero C se establece en ``NULL``." -#: ../Doc/c-api/arg.rst:104 +#: ../Doc/c-api/arg.rst:119 msgid "" "``z*`` (:class:`str`, :term:`bytes-like object` or ``None``) [Py_buffer]" msgstr "" "``z*`` (:class:`str`, :term:`bytes-like object` o ``None``) [Py_buffer]" -#: ../Doc/c-api/arg.rst:103 +#: ../Doc/c-api/arg.rst:118 msgid "" "Like ``s*``, but the Python object may also be ``None``, in which case the " "``buf`` member of the :c:type:`Py_buffer` structure is set to ``NULL``." @@ -256,7 +269,7 @@ msgstr "" "el miembro de ``buf`` de la estructura :c:type:`Py_buffer` se establece en " "``NULL``." -#: ../Doc/c-api/arg.rst:108 +#: ../Doc/c-api/arg.rst:123 msgid "" "``z#`` (:class:`str`, read-only :term:`bytes-like object` or ``None``) " "[const char \\*, :c:type:`Py_ssize_t`]" @@ -264,7 +277,7 @@ msgstr "" "``z#`` (:class:`str`, :term:`bytes-like object` de sólo lectura o ``None``) " "[const char \\*, :c:type:`Py_ssize_t`]" -#: ../Doc/c-api/arg.rst:107 +#: ../Doc/c-api/arg.rst:122 msgid "" "Like ``s#``, but the Python object may also be ``None``, in which case the C " "pointer is set to ``NULL``." @@ -272,23 +285,24 @@ msgstr "" "Como ``s#``, pero el objeto Python también puede ser ``None``, en cuyo caso " "el puntero C se establece en ``NULL``." -#: ../Doc/c-api/arg.rst:118 +#: ../Doc/c-api/arg.rst:134 msgid "``y`` (read-only :term:`bytes-like object`) [const char \\*]" msgstr "``y`` (:term:`bytes-like object` de sólo lectura) [const char \\*]" -#: ../Doc/c-api/arg.rst:111 +#: ../Doc/c-api/arg.rst:126 +#, fuzzy msgid "" -"This format converts a bytes-like object to a C pointer to a character " -"string; it does not accept Unicode objects. The bytes buffer must not " -"contain embedded null bytes; if it does, a :exc:`ValueError` exception is " -"raised." +"This format converts a bytes-like object to a C pointer to a :ref:`borrowed " +"` character string; it does not accept Unicode " +"objects. The bytes buffer must not contain embedded null bytes; if it does, " +"a :exc:`ValueError` exception is raised." msgstr "" "Este formato convierte un objeto de tipo bytes a un puntero C a una cadena " "de caracteres; no acepta objetos Unicode. El búfer de bytes no debe contener " "bytes nulos incrustados; si lo hace, se lanza una excepción :exc:" "`ValueError`." -#: ../Doc/c-api/arg.rst:116 +#: ../Doc/c-api/arg.rst:132 msgid "" "Previously, :exc:`TypeError` was raised when embedded null bytes were " "encountered in the bytes buffer." @@ -296,11 +310,11 @@ msgstr "" "Anteriormente, :exc:`TypeError` se lanzó cuando bytes nulos incrustados se " "encontraron en el buffer de bytes." -#: ../Doc/c-api/arg.rst:123 +#: ../Doc/c-api/arg.rst:139 msgid "``y*`` (:term:`bytes-like object`) [Py_buffer]" msgstr "``y*`` (:term:`bytes-like object`) [Py_buffer]" -#: ../Doc/c-api/arg.rst:121 +#: ../Doc/c-api/arg.rst:137 msgid "" "This variant on ``s*`` doesn't accept Unicode objects, only bytes-like " "objects. **This is the recommended way to accept binary data.**" @@ -308,7 +322,7 @@ msgstr "" "Esta variante de ``s*`` no acepta objetos Unicode, solamente los objetos de " "tipo bytes. **Esta es la forma recomendada para aceptar datos binarios.**" -#: ../Doc/c-api/arg.rst:127 +#: ../Doc/c-api/arg.rst:143 msgid "" "``y#`` (read-only :term:`bytes-like object`) [const char \\*, :c:type:" "`Py_ssize_t`]" @@ -316,7 +330,7 @@ msgstr "" "``y#`` (:term:`bytes-like object` de sólo lectura) [const char \\*, :c:type:" "`Py_ssize_t`]" -#: ../Doc/c-api/arg.rst:126 +#: ../Doc/c-api/arg.rst:142 msgid "" "This variant on ``s#`` doesn't accept Unicode objects, only bytes-like " "objects." @@ -324,11 +338,11 @@ msgstr "" "Esta variante en ``s#`` no acepta objetos Unicode, solo objetos similares a " "bytes." -#: ../Doc/c-api/arg.rst:132 +#: ../Doc/c-api/arg.rst:148 msgid "``S`` (:class:`bytes`) [PyBytesObject \\*]" msgstr "``S`` (:class:`bytes`) [PyBytesObject \\*]" -#: ../Doc/c-api/arg.rst:130 +#: ../Doc/c-api/arg.rst:146 #, fuzzy msgid "" "Requires that the Python object is a :class:`bytes` object, without " @@ -339,11 +353,11 @@ msgstr "" "ninguna conversión. Lanza :exc:`TypeError` si el objeto no es un objeto " "bytes. La variable C también puede ser declarado como :c:type:`PyObject*`." -#: ../Doc/c-api/arg.rst:137 +#: ../Doc/c-api/arg.rst:153 msgid "``Y`` (:class:`bytearray`) [PyByteArrayObject \\*]" msgstr "``Y`` (:class:`bytearray`) [PyByteArrayObject \\*]" -#: ../Doc/c-api/arg.rst:135 +#: ../Doc/c-api/arg.rst:151 #, fuzzy msgid "" "Requires that the Python object is a :class:`bytearray` object, without " @@ -356,83 +370,11 @@ msgstr "" "class:`bytearray`. La variable C también puede ser declarada como :c:type:" "`PyObject*`." -#: ../Doc/c-api/arg.rst:154 -msgid "``u`` (:class:`str`) [const Py_UNICODE \\*]" -msgstr "``u`` (:class:`str`) [const Py_UNICODE \\*]" - -#: ../Doc/c-api/arg.rst:140 -msgid "" -"Convert a Python Unicode object to a C pointer to a NUL-terminated buffer of " -"Unicode characters. You must pass the address of a :c:type:`Py_UNICODE` " -"pointer variable, which will be filled with the pointer to an existing " -"Unicode buffer. Please note that the width of a :c:type:`Py_UNICODE` " -"character depends on compilation options (it is either 16 or 32 bits). The " -"Python string must not contain embedded null code points; if it does, a :exc:" -"`ValueError` exception is raised." -msgstr "" -"Convierte un objeto Unicode de Python a un puntero a un búfer C NUL " -"terminado de caracteres Unicode. Debe pasar la dirección de una variable de " -"puntero :c:type:`Py_UNICODE`, que se llena con el puntero a un búfer Unicode " -"existente. Tenga en cuenta que el ancho de un carácter :c:type:`Py_UNICODE` " -"depende de las opciones de compilación (que es 16 o 32 bits). La cadena de " -"Python no debe contener puntos de código incrustado nulos; si lo hace, se " -"lanza una excepción :exc:`ValueError`." - -#: ../Doc/c-api/arg.rst:155 ../Doc/c-api/arg.rst:164 ../Doc/c-api/arg.rst:172 -#: ../Doc/c-api/arg.rst:180 -msgid "" -"Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" -"func:`PyUnicode_AsWideCharString`." -msgstr "" -"Parte de la API de viejo estilo :c:type:`Py_UNICODE`; favor migrar al uso " -"de :c:func:`PyUnicode_AsWideCharString`." - -#: ../Doc/c-api/arg.rst:163 -msgid "``u#`` (:class:`str`) [const Py_UNICODE \\*, :c:type:`Py_ssize_t`]" -msgstr "``u#`` (:class:`str`) [const Py_UNICODE \\*, :c:type:`Py_ssize_t`]" - -#: ../Doc/c-api/arg.rst:157 -msgid "" -"This variant on ``u`` stores into two C variables, the first one a pointer " -"to a Unicode data buffer, the second one its length. This variant allows " -"null code points." -msgstr "" -"Esta variante en ``u`` almacena en dos variables de C, el primero un puntero " -"a un búfer de datos Unicode, el segundo de su longitud. Esta variante " -"permite puntos de código nulos." - -#: ../Doc/c-api/arg.rst:171 -msgid "``Z`` (:class:`str` or ``None``) [const Py_UNICODE \\*]" -msgstr "``Z`` (:class:`str` o ``None``) [const Py_UNICODE \\*]" - -#: ../Doc/c-api/arg.rst:166 -msgid "" -"Like ``u``, but the Python object may also be ``None``, in which case the :c:" -"type:`Py_UNICODE` pointer is set to ``NULL``." -msgstr "" -"Como ``u``, pero el objeto Python también puede ser ``None``, en cuyo caso " -"el puntero :c:type:`Py_UNICODE` se establece en ``NULL``." - -#: ../Doc/c-api/arg.rst:179 -msgid "" -"``Z#`` (:class:`str` or ``None``) [const Py_UNICODE \\*, :c:type:" -"`Py_ssize_t`]" -msgstr "" -"``z#`` (:class:`str` o ``None``) [const Py_UNICODE \\*, :c:type:`Py_ssize_t`]" - -#: ../Doc/c-api/arg.rst:174 -msgid "" -"Like ``u#``, but the Python object may also be ``None``, in which case the :" -"c:type:`Py_UNICODE` pointer is set to ``NULL``." -msgstr "" -"Al igual que ``u#``, pero el objeto Python también puede ser ``None``, en " -"cuyo caso el puntero :c:type:`Py_UNICODE` se establece en ``NULL``." - -#: ../Doc/c-api/arg.rst:184 +#: ../Doc/c-api/arg.rst:158 msgid "``U`` (:class:`str`) [PyObject \\*]" msgstr "``U`` (:class:`str`) [PyObject \\*]" -#: ../Doc/c-api/arg.rst:182 +#: ../Doc/c-api/arg.rst:156 #, fuzzy msgid "" "Requires that the Python object is a Unicode object, without attempting any " @@ -443,11 +385,11 @@ msgstr "" "conversión. Lanza :exc:`TypeError` si el objeto no es un objeto Unicode. La " "variable C también puede ser declarada como :c:type:`PyObject*`." -#: ../Doc/c-api/arg.rst:190 +#: ../Doc/c-api/arg.rst:164 msgid "``w*`` (read-write :term:`bytes-like object`) [Py_buffer]" msgstr "``w*`` (:term:`bytes-like object` de lectura y escritura) [Py_buffer]" -#: ../Doc/c-api/arg.rst:187 +#: ../Doc/c-api/arg.rst:161 msgid "" "This format accepts any object which implements the read-write buffer " "interface. It fills a :c:type:`Py_buffer` structure provided by the caller. " @@ -459,11 +401,11 @@ msgstr "" "quien llama. El búfer puede contener bytes nulos incrustados. Quien llama " "tiene que llamar :c:func:`PyBuffer_Release` cuando termina con el búfer." -#: ../Doc/c-api/arg.rst:207 +#: ../Doc/c-api/arg.rst:181 msgid "``es`` (:class:`str`) [const char \\*encoding, char \\*\\*buffer]" msgstr "``es`` (:class:`str`) [const char \\*encoding, char \\*\\*buffer]" -#: ../Doc/c-api/arg.rst:193 +#: ../Doc/c-api/arg.rst:167 msgid "" "This variant on ``s`` is used for encoding Unicode into a character buffer. " "It only works for encoded data without embedded NUL bytes." @@ -471,7 +413,7 @@ msgstr "" "Esta variante en ``s`` se usa para codificar Unicode en un búfer de " "caracteres. Solo funciona para datos codificados sin bytes NUL integrados." -#: ../Doc/c-api/arg.rst:196 +#: ../Doc/c-api/arg.rst:170 #, fuzzy msgid "" "This format requires two arguments. The first is only used as input, and " @@ -491,7 +433,7 @@ msgstr "" "búfer con el contenido del texto del argumento. El texto se codificará en la " "codificación especificada por el primer argumento." -#: ../Doc/c-api/arg.rst:204 +#: ../Doc/c-api/arg.rst:178 msgid "" ":c:func:`PyArg_ParseTuple` will allocate a buffer of the needed size, copy " "the encoded data into this buffer and adjust *\\*buffer* to reference the " @@ -503,7 +445,7 @@ msgstr "" "el nuevo almacenamiento asignado. Quien llama es responsable para llamar :c:" "func:`PyMem_Free` para liberar el búfer asignado después de su uso." -#: ../Doc/c-api/arg.rst:212 +#: ../Doc/c-api/arg.rst:186 msgid "" "``et`` (:class:`str`, :class:`bytes` or :class:`bytearray`) [const char " "\\*encoding, char \\*\\*buffer]" @@ -511,7 +453,7 @@ msgstr "" "``et`` (:class:`str`, :class:`bytes` o :class:`bytearray`) [const char " "\\*encoding, char \\*\\*buffer]" -#: ../Doc/c-api/arg.rst:210 +#: ../Doc/c-api/arg.rst:184 msgid "" "Same as ``es`` except that byte string objects are passed through without " "recoding them. Instead, the implementation assumes that the byte string " @@ -522,7 +464,7 @@ msgstr "" "objeto de cadena de caracteres de bytes utiliza la codificación que se pasa " "como parámetro." -#: ../Doc/c-api/arg.rst:243 +#: ../Doc/c-api/arg.rst:217 msgid "" "``es#`` (:class:`str`) [const char \\*encoding, char \\*\\*buffer, :c:type:" "`Py_ssize_t` \\*buffer_length]" @@ -530,7 +472,7 @@ msgstr "" "``es#`` (:class:`str`) [const char \\*encoding, char \\*\\*buffer, :c:type:" "`Py_ssize_t` \\*buffer_length]" -#: ../Doc/c-api/arg.rst:215 +#: ../Doc/c-api/arg.rst:189 msgid "" "This variant on ``s#`` is used for encoding Unicode into a character buffer. " "Unlike the ``es`` format, this variant allows input data which contains NUL " @@ -540,7 +482,7 @@ msgstr "" "caracteres. A diferencia del formato ``es``, esta variante permite datos de " "entrada que contienen caracteres NUL." -#: ../Doc/c-api/arg.rst:219 +#: ../Doc/c-api/arg.rst:193 #, fuzzy msgid "" "It requires three arguments. The first is only used as input, and must be " @@ -564,11 +506,11 @@ msgstr "" "puntero a un entero; el número entero referenciado se establecerá en el " "número de bytes en el búfer de salida." -#: ../Doc/c-api/arg.rst:229 +#: ../Doc/c-api/arg.rst:203 msgid "There are two modes of operation:" msgstr "Hay dos modos de operación:" -#: ../Doc/c-api/arg.rst:231 +#: ../Doc/c-api/arg.rst:205 msgid "" "If *\\*buffer* points a ``NULL`` pointer, the function will allocate a " "buffer of the needed size, copy the encoded data into this buffer and set " @@ -582,7 +524,7 @@ msgstr "" "llama es responsable de llamar a :c:func:`PyMem_Free` para liberar el búfer " "asignado después del uso." -#: ../Doc/c-api/arg.rst:236 +#: ../Doc/c-api/arg.rst:210 msgid "" "If *\\*buffer* points to a non-``NULL`` pointer (an already allocated " "buffer), :c:func:`PyArg_ParseTuple` will use this location as the buffer and " @@ -596,7 +538,7 @@ msgstr "" "los datos codificados en el búfer y los terminará en NUL. Si el búfer no es " "lo suficientemente grande, se establecerá a :exc:`ValueError`." -#: ../Doc/c-api/arg.rst:242 +#: ../Doc/c-api/arg.rst:216 msgid "" "In both cases, *\\*buffer_length* is set to the length of the encoded data " "without the trailing NUL byte." @@ -604,7 +546,7 @@ msgstr "" "En ambos casos, *\\*buffer_length* se establece a la longitud de los datos " "codificados sin el byte NUL final." -#: ../Doc/c-api/arg.rst:248 +#: ../Doc/c-api/arg.rst:222 msgid "" "``et#`` (:class:`str`, :class:`bytes` or :class:`bytearray`) [const char " "\\*encoding, char \\*\\*buffer, :c:type:`Py_ssize_t` \\*buffer_length]" @@ -612,7 +554,7 @@ msgstr "" "``et#`` (:class:`str`, :class:`bytes` o :class:`bytearray`) [const char " "\\*encoding, char \\*\\*buffer, :c:type:`Py_ssize_t` \\*buffer_length]" -#: ../Doc/c-api/arg.rst:246 +#: ../Doc/c-api/arg.rst:220 msgid "" "Same as ``es#`` except that byte string objects are passed through without " "recoding them. Instead, the implementation assumes that the byte string " @@ -623,15 +565,21 @@ msgstr "" "objeto de cadena de caracteres de bytes utiliza la codificación que se pasa " "como parámetro." -#: ../Doc/c-api/arg.rst:251 +#: ../Doc/c-api/arg.rst:224 +msgid "" +"``u``, ``u#``, ``Z``, and ``Z#`` are removed because they used a legacy " +"``Py_UNICODE*`` representation." +msgstr "" + +#: ../Doc/c-api/arg.rst:230 msgid "Numbers" msgstr "Números" -#: ../Doc/c-api/arg.rst:255 +#: ../Doc/c-api/arg.rst:234 msgid "``b`` (:class:`int`) [unsigned char]" msgstr "``b`` (:class:`int`) [unsigned char]" -#: ../Doc/c-api/arg.rst:254 +#: ../Doc/c-api/arg.rst:233 #, fuzzy msgid "" "Convert a nonnegative Python integer to an unsigned tiny int, stored in a C :" @@ -640,11 +588,11 @@ msgstr "" "Convierte un entero de Python no negativo en un pequeño int sin signo, " "almacenado en un :c:type:`unsigned char` de C." -#: ../Doc/c-api/arg.rst:259 ../Doc/c-api/arg.rst:599 +#: ../Doc/c-api/arg.rst:238 ../Doc/c-api/arg.rst:581 msgid "``B`` (:class:`int`) [unsigned char]" msgstr "``B`` (:class:`int`) [unsigned char]" -#: ../Doc/c-api/arg.rst:258 +#: ../Doc/c-api/arg.rst:237 #, fuzzy msgid "" "Convert a Python integer to a tiny int without overflow checking, stored in " @@ -653,20 +601,20 @@ msgstr "" "Convierte un entero de Python en un pequeño int sin comprobación de " "desbordamiento, almacenado en un :c:type:`unsigned char` de C." -#: ../Doc/c-api/arg.rst:262 ../Doc/c-api/arg.rst:593 +#: ../Doc/c-api/arg.rst:241 ../Doc/c-api/arg.rst:575 msgid "``h`` (:class:`int`) [short int]" msgstr "``h`` (:class:`int`) [short int]" -#: ../Doc/c-api/arg.rst:262 +#: ../Doc/c-api/arg.rst:241 #, fuzzy msgid "Convert a Python integer to a C :c:expr:`short int`." msgstr "Convierte un entero de Python a un :c:type:`short int` de C." -#: ../Doc/c-api/arg.rst:266 ../Doc/c-api/arg.rst:602 +#: ../Doc/c-api/arg.rst:245 ../Doc/c-api/arg.rst:584 msgid "``H`` (:class:`int`) [unsigned short int]" msgstr "``H`` (:class:`int`) [unsigned short int]" -#: ../Doc/c-api/arg.rst:265 +#: ../Doc/c-api/arg.rst:244 #, fuzzy msgid "" "Convert a Python integer to a C :c:expr:`unsigned short int`, without " @@ -675,20 +623,20 @@ msgstr "" "Convierte un entero de Python a un :c:type:`unsigned short int` de C, sin " "verificación de desbordamiento." -#: ../Doc/c-api/arg.rst:269 ../Doc/c-api/arg.rst:587 +#: ../Doc/c-api/arg.rst:248 ../Doc/c-api/arg.rst:569 msgid "``i`` (:class:`int`) [int]" msgstr "``i`` (:class:`int`) [int]" -#: ../Doc/c-api/arg.rst:269 +#: ../Doc/c-api/arg.rst:248 #, fuzzy msgid "Convert a Python integer to a plain C :c:expr:`int`." msgstr "Convierte un entero Python a un :c:type:`int` de C plano." -#: ../Doc/c-api/arg.rst:273 ../Doc/c-api/arg.rst:605 +#: ../Doc/c-api/arg.rst:252 ../Doc/c-api/arg.rst:587 msgid "``I`` (:class:`int`) [unsigned int]" msgstr "``I`` (:class:`int`) [unsigned int]" -#: ../Doc/c-api/arg.rst:272 +#: ../Doc/c-api/arg.rst:251 #, fuzzy msgid "" "Convert a Python integer to a C :c:expr:`unsigned int`, without overflow " @@ -697,20 +645,20 @@ msgstr "" "Convierte un entero de Python a un :c:type:`unsigned int` de C, sin " "verificación de desbordamiento." -#: ../Doc/c-api/arg.rst:276 ../Doc/c-api/arg.rst:596 +#: ../Doc/c-api/arg.rst:255 ../Doc/c-api/arg.rst:578 msgid "``l`` (:class:`int`) [long int]" msgstr "``l`` (:class:`int`) [long int]" -#: ../Doc/c-api/arg.rst:276 +#: ../Doc/c-api/arg.rst:255 #, fuzzy msgid "Convert a Python integer to a C :c:expr:`long int`." msgstr "Convierte un entero Python a un :c:type:`long int` de C." -#: ../Doc/c-api/arg.rst:280 ../Doc/c-api/arg.rst:608 +#: ../Doc/c-api/arg.rst:259 ../Doc/c-api/arg.rst:590 msgid "``k`` (:class:`int`) [unsigned long]" msgstr "``k`` (:class:`int`) [unsigned long]" -#: ../Doc/c-api/arg.rst:279 +#: ../Doc/c-api/arg.rst:258 #, fuzzy msgid "" "Convert a Python integer to a C :c:expr:`unsigned long` without overflow " @@ -719,20 +667,20 @@ msgstr "" "Convierte un entero de Python a un :c:type:`unsigned long` de C, sin " "verificación de desbordamiento." -#: ../Doc/c-api/arg.rst:283 ../Doc/c-api/arg.rst:611 +#: ../Doc/c-api/arg.rst:262 ../Doc/c-api/arg.rst:593 msgid "``L`` (:class:`int`) [long long]" msgstr "``L`` (:class:`int`) [long long]" -#: ../Doc/c-api/arg.rst:283 +#: ../Doc/c-api/arg.rst:262 #, fuzzy msgid "Convert a Python integer to a C :c:expr:`long long`." msgstr "Convierte un entero de Python a un :c:type:`long long` de C." -#: ../Doc/c-api/arg.rst:287 ../Doc/c-api/arg.rst:614 +#: ../Doc/c-api/arg.rst:266 ../Doc/c-api/arg.rst:596 msgid "``K`` (:class:`int`) [unsigned long long]" msgstr "``K`` (:class:`int`) [unsigned long long]" -#: ../Doc/c-api/arg.rst:286 +#: ../Doc/c-api/arg.rst:265 #, fuzzy msgid "" "Convert a Python integer to a C :c:expr:`unsigned long long` without " @@ -741,20 +689,20 @@ msgstr "" "Convierte un entero de Python a un :c:type:`unsigned long long` de C, sin " "verificación de desbordamiento." -#: ../Doc/c-api/arg.rst:290 ../Doc/c-api/arg.rst:617 +#: ../Doc/c-api/arg.rst:269 ../Doc/c-api/arg.rst:599 #, fuzzy msgid "``n`` (:class:`int`) [:c:type:`Py_ssize_t`]" msgstr "``n`` (:class:`int`) [Py_ssize_t]" -#: ../Doc/c-api/arg.rst:290 +#: ../Doc/c-api/arg.rst:269 msgid "Convert a Python integer to a C :c:type:`Py_ssize_t`." msgstr "Convierte un entero de Python a un :c:type:`Py_ssize_t` de C." -#: ../Doc/c-api/arg.rst:297 +#: ../Doc/c-api/arg.rst:276 msgid "``c`` (:class:`bytes` or :class:`bytearray` of length 1) [char]" msgstr "``c`` (:class:`bytes` o :class:`bytearray` de largo 1) [char]" -#: ../Doc/c-api/arg.rst:293 +#: ../Doc/c-api/arg.rst:272 #, fuzzy msgid "" "Convert a Python byte, represented as a :class:`bytes` or :class:`bytearray` " @@ -763,15 +711,15 @@ msgstr "" "Convierte un byte de Python, representado como un objeto :class:`bytes` o :" "class:`bytearray` de longitud 1, a un :c:type:`char` de C." -#: ../Doc/c-api/arg.rst:296 +#: ../Doc/c-api/arg.rst:275 msgid "Allow :class:`bytearray` objects." msgstr "Permite objetos :class:`bytearray`." -#: ../Doc/c-api/arg.rst:301 ../Doc/c-api/arg.rst:625 +#: ../Doc/c-api/arg.rst:280 ../Doc/c-api/arg.rst:607 msgid "``C`` (:class:`str` of length 1) [int]" msgstr "``C`` (:class:`str` de largo 1) [int]" -#: ../Doc/c-api/arg.rst:300 +#: ../Doc/c-api/arg.rst:279 #, fuzzy msgid "" "Convert a Python character, represented as a :class:`str` object of length " @@ -780,59 +728,61 @@ msgstr "" "Convierte un carácter Python, representado como un objeto :class:`str` de " "longitud 1, a un tipo :c:type:`int` de C." -#: ../Doc/c-api/arg.rst:304 ../Doc/c-api/arg.rst:631 +#: ../Doc/c-api/arg.rst:283 ../Doc/c-api/arg.rst:613 msgid "``f`` (:class:`float`) [float]" msgstr "``f`` (:class:`float`) [float]" -#: ../Doc/c-api/arg.rst:304 +#: ../Doc/c-api/arg.rst:283 #, fuzzy msgid "Convert a Python floating point number to a C :c:expr:`float`." msgstr "" "Convierte un número de punto flotante de Python a un :c:type:`float` de C." -#: ../Doc/c-api/arg.rst:307 ../Doc/c-api/arg.rst:628 +#: ../Doc/c-api/arg.rst:286 ../Doc/c-api/arg.rst:610 msgid "``d`` (:class:`float`) [double]" msgstr "``d`` (:class:`float`) [double]" -#: ../Doc/c-api/arg.rst:307 +#: ../Doc/c-api/arg.rst:286 #, fuzzy msgid "Convert a Python floating point number to a C :c:expr:`double`." msgstr "" "Convierte un número de punto flotante de Python a un :c:type:`double` de C." -#: ../Doc/c-api/arg.rst:310 +#: ../Doc/c-api/arg.rst:289 msgid "``D`` (:class:`complex`) [Py_complex]" msgstr "``D`` (:class:`complex`) [Py_complex]" -#: ../Doc/c-api/arg.rst:310 +#: ../Doc/c-api/arg.rst:289 msgid "Convert a Python complex number to a C :c:type:`Py_complex` structure." msgstr "" "Convierte un número complejo de Python en una estructura :c:type:" "`Py_complex` de C." -#: ../Doc/c-api/arg.rst:313 +#: ../Doc/c-api/arg.rst:292 msgid "Other objects" msgstr "Otros objetos" -#: ../Doc/c-api/arg.rst:318 ../Doc/c-api/arg.rst:642 +#: ../Doc/c-api/arg.rst:299 ../Doc/c-api/arg.rst:626 msgid "``O`` (object) [PyObject \\*]" msgstr "``O`` (object) [PyObject \\*]" -#: ../Doc/c-api/arg.rst:316 +#: ../Doc/c-api/arg.rst:295 +#, fuzzy msgid "" "Store a Python object (without any conversion) in a C object pointer. The C " -"program thus receives the actual object that was passed. The object's " -"reference count is not increased. The pointer stored is not ``NULL``." +"program thus receives the actual object that was passed. A new :term:" +"`strong reference` to the object is not created (i.e. its reference count is " +"not increased). The pointer stored is not ``NULL``." msgstr "" "Almacena un objeto Python (sin ninguna conversión) en un puntero de objeto " "C. El programa C recibe así el objeto real que se pasó. El recuento de " "referencia del objeto no aumenta. El puntero almacenado no es ``NULL``." -#: ../Doc/c-api/arg.rst:325 +#: ../Doc/c-api/arg.rst:306 msgid "``O!`` (object) [*typeobject*, PyObject \\*]" msgstr "``O!`` (object) [*typeobject*, PyObject \\*]" -#: ../Doc/c-api/arg.rst:321 +#: ../Doc/c-api/arg.rst:302 #, fuzzy msgid "" "Store a Python object in a C object pointer. This is similar to ``O``, but " @@ -847,11 +797,11 @@ msgstr "" "`PyObject*`) en el que se almacena el puntero del objeto. Si el objeto " "Python no tiene el tipo requerido, se lanza :exc:`TypeError`." -#: ../Doc/c-api/arg.rst:350 ../Doc/c-api/arg.rst:656 +#: ../Doc/c-api/arg.rst:331 ../Doc/c-api/arg.rst:640 msgid "``O&`` (object) [*converter*, *anything*]" msgstr "``O&`` (object) [*converter*, *anything*]" -#: ../Doc/c-api/arg.rst:330 +#: ../Doc/c-api/arg.rst:311 #, fuzzy msgid "" "Convert a Python object to a C variable through a *converter* function. " @@ -865,7 +815,7 @@ msgstr "" "a :c:type:`void *`. La función *converter* a su vez se llama de la siguiente " "manera::" -#: ../Doc/c-api/arg.rst:337 +#: ../Doc/c-api/arg.rst:318 #, fuzzy msgid "" "where *object* is the Python object to be converted and *address* is the :c:" @@ -881,7 +831,7 @@ msgstr "" "la conversión ha fallado. Cuando la conversión falla, la función *converter* " "debería lanzar una excepción y dejar el contenido de *address* sin modificar." -#: ../Doc/c-api/arg.rst:343 +#: ../Doc/c-api/arg.rst:324 msgid "" "If the *converter* returns ``Py_CLEANUP_SUPPORTED``, it may get called a " "second time if the argument parsing eventually fails, giving the converter a " @@ -895,15 +845,15 @@ msgstr "" "asignado. En esta segunda llamada, el parámetro *object* será ``NULL``; " "*address* tendrá el mismo valor que en la llamada original." -#: ../Doc/c-api/arg.rst:349 +#: ../Doc/c-api/arg.rst:330 msgid "``Py_CLEANUP_SUPPORTED`` was added." msgstr "``Py_CLEANUP_SUPPORTED`` fue agregada." -#: ../Doc/c-api/arg.rst:359 +#: ../Doc/c-api/arg.rst:340 msgid "``p`` (:class:`bool`) [int]" msgstr "``p`` (:class:`bool`) [int]" -#: ../Doc/c-api/arg.rst:353 +#: ../Doc/c-api/arg.rst:334 msgid "" "Tests the value passed in for truth (a boolean **p**\\ redicate) and " "converts the result to its equivalent C true/false integer value. Sets the " @@ -917,11 +867,11 @@ msgstr "" "Esto acepta cualquier valor válido de Python. Consulte :ref:`truth` para " "obtener más información sobre cómo Python prueba los valores por verdad." -#: ../Doc/c-api/arg.rst:364 ../Doc/c-api/arg.rst:659 +#: ../Doc/c-api/arg.rst:345 ../Doc/c-api/arg.rst:643 msgid "``(items)`` (:class:`tuple`) [*matching-items*]" msgstr "``(items)`` (:class:`tuple`) [*matching-items*]" -#: ../Doc/c-api/arg.rst:362 +#: ../Doc/c-api/arg.rst:343 msgid "" "The object must be a Python sequence whose length is the number of format " "units in *items*. The C arguments must correspond to the individual format " @@ -932,10 +882,11 @@ msgstr "" "unidades de formato individuales en *items*. Las unidades de formato para " "secuencias pueden estar anidadas." -#: ../Doc/c-api/arg.rst:366 +#: ../Doc/c-api/arg.rst:347 +#, fuzzy msgid "" "It is possible to pass \"long\" integers (integers whose value exceeds the " -"platform's :const:`LONG_MAX`) however no proper range checking is done --- " +"platform's :c:macro:`LONG_MAX`) however no proper range checking is done --- " "the most significant bits are silently truncated when the receiving field is " "too small to receive the value (actually, the semantics are inherited from " "downcasts in C --- your mileage may vary)." @@ -947,7 +898,7 @@ msgstr "" "realidad, la semántica se hereda de las descargas en C --- su kilometraje " "puede variar)." -#: ../Doc/c-api/arg.rst:372 +#: ../Doc/c-api/arg.rst:353 msgid "" "A few other characters have a meaning in a format string. These may not " "occur inside nested parentheses. They are:" @@ -955,11 +906,11 @@ msgstr "" "Algunos otros caracteres tienen un significado en una cadena de formato. " "Esto puede no ocurrir dentro de paréntesis anidados. Son:" -#: ../Doc/c-api/arg.rst:380 +#: ../Doc/c-api/arg.rst:361 msgid "``|``" msgstr "``|``" -#: ../Doc/c-api/arg.rst:376 +#: ../Doc/c-api/arg.rst:357 msgid "" "Indicates that the remaining arguments in the Python argument list are " "optional. The C variables corresponding to optional arguments should be " @@ -973,11 +924,11 @@ msgstr "" "argumento opcional, :c:func:`PyArg_ParseTuple` no toca el contenido de las " "variables C correspondientes." -#: ../Doc/c-api/arg.rst:389 +#: ../Doc/c-api/arg.rst:370 msgid "``$``" msgstr "``$``" -#: ../Doc/c-api/arg.rst:383 +#: ../Doc/c-api/arg.rst:364 msgid "" ":c:func:`PyArg_ParseTupleAndKeywords` only: Indicates that the remaining " "arguments in the Python argument list are keyword-only. Currently, all " @@ -990,11 +941,11 @@ msgstr "" "argumentos opcionales, por lo que ``|`` siempre debe especificarse antes de " "``$`` en la cadena de formato." -#: ../Doc/c-api/arg.rst:394 +#: ../Doc/c-api/arg.rst:375 msgid "``:``" msgstr "``:``" -#: ../Doc/c-api/arg.rst:392 +#: ../Doc/c-api/arg.rst:373 msgid "" "The list of format units ends here; the string after the colon is used as " "the function name in error messages (the \"associated value\" of the " @@ -1004,11 +955,11 @@ msgstr "" "puntos se usa como el nombre de la función en los mensajes de error (el " "\"valor asociado\" de la excepción que :c:func:`PyArg_ParseTuple` lanza)." -#: ../Doc/c-api/arg.rst:399 +#: ../Doc/c-api/arg.rst:380 msgid "``;``" msgstr "``;``" -#: ../Doc/c-api/arg.rst:397 +#: ../Doc/c-api/arg.rst:378 msgid "" "The list of format units ends here; the string after the semicolon is used " "as the error message *instead* of the default error message. ``:`` and ``;" @@ -1018,16 +969,18 @@ msgstr "" "coma se usa como mensaje de error *en lugar de* del mensaje de error " "predeterminado. ``:`` y ``;`` se excluyen mutuamente." -#: ../Doc/c-api/arg.rst:401 +#: ../Doc/c-api/arg.rst:382 +#, fuzzy msgid "" "Note that any Python object references which are provided to the caller are " -"*borrowed* references; do not decrement their reference count!" +"*borrowed* references; do not release them (i.e. do not decrement their " +"reference count)!" msgstr "" "Tenga en cuenta que las referencias de objetos de Python que se proporcionan " "a la persona que llama son referencias *prestadas* (*borrowed*); ¡no " "disminuya su conteo de referencias!" -#: ../Doc/c-api/arg.rst:404 +#: ../Doc/c-api/arg.rst:386 msgid "" "Additional arguments passed to these functions must be addresses of " "variables whose type is determined by the format string; these are used to " @@ -1043,7 +996,7 @@ msgstr "" "parámetros se utilizan como valores de entrada; deben coincidir con lo " "especificado para la unidad de formato correspondiente en ese caso." -#: ../Doc/c-api/arg.rst:410 +#: ../Doc/c-api/arg.rst:392 #, fuzzy msgid "" "For the conversion to succeed, the *arg* object must match the format and " @@ -1061,11 +1014,11 @@ msgstr "" "unidades de formato, las variables en las direcciones correspondientes y las " "siguientes unidades de formato quedan intactas." -#: ../Doc/c-api/arg.rst:419 +#: ../Doc/c-api/arg.rst:401 msgid "API Functions" msgstr "Funciones API" -#: ../Doc/c-api/arg.rst:423 +#: ../Doc/c-api/arg.rst:405 msgid "" "Parse the parameters of a function that takes only positional parameters " "into local variables. Returns true on success; on failure, it returns false " @@ -1075,7 +1028,7 @@ msgstr "" "en variables locales. Retorna verdadero en el éxito; en caso de fallo, " "retorna falso y lanza la excepción apropiada." -#: ../Doc/c-api/arg.rst:430 +#: ../Doc/c-api/arg.rst:412 msgid "" "Identical to :c:func:`PyArg_ParseTuple`, except that it accepts a va_list " "rather than a variable number of arguments." @@ -1083,7 +1036,7 @@ msgstr "" "Idéntico a :c:func:`PyArg_ParseTuple`, excepto que acepta una *va_list* en " "lugar de un número variable de argumentos ." -#: ../Doc/c-api/arg.rst:436 +#: ../Doc/c-api/arg.rst:418 msgid "" "Parse the parameters of a function that takes both positional and keyword " "parameters into local variables. The *keywords* argument is a ``NULL``-" @@ -1098,7 +1051,7 @@ msgstr "" "only_parameter>`. Retorna verdadero cuando hay éxito; en caso de fallo, " "retorna falso y lanza la excepción apropiada." -#: ../Doc/c-api/arg.rst:443 +#: ../Doc/c-api/arg.rst:425 msgid "" "Added support for :ref:`positional-only parameters `." @@ -1106,7 +1059,7 @@ msgstr "" "Soporte agregado para :ref:`sólo parámetros posicionales `." -#: ../Doc/c-api/arg.rst:450 +#: ../Doc/c-api/arg.rst:432 msgid "" "Identical to :c:func:`PyArg_ParseTupleAndKeywords`, except that it accepts a " "va_list rather than a variable number of arguments." @@ -1114,7 +1067,7 @@ msgstr "" "Idéntico a :c:func:`PyArg_ParseTupleAndKeywords`, excepto que acepta una " "*va_list* en lugar de un número variable de argumentos." -#: ../Doc/c-api/arg.rst:456 +#: ../Doc/c-api/arg.rst:438 msgid "" "Ensure that the keys in the keywords argument dictionary are strings. This " "is only needed if :c:func:`PyArg_ParseTupleAndKeywords` is not used, since " @@ -1125,7 +1078,7 @@ msgstr "" "`PyArg_ParseTupleAndKeywords` no se utiliza, ya que este último ya hace esta " "comprobación." -#: ../Doc/c-api/arg.rst:466 +#: ../Doc/c-api/arg.rst:448 msgid "" "Function used to deconstruct the argument lists of \"old-style\" functions " "--- these are functions which use the :const:`METH_OLDARGS` parameter " @@ -1143,12 +1096,12 @@ msgstr "" "para ese propósito. Sin embargo, sigue siendo una forma conveniente de " "descomponer otras tuplas, y puede continuar usándose para ese propósito." -#: ../Doc/c-api/arg.rst:477 +#: ../Doc/c-api/arg.rst:459 #, fuzzy msgid "" "A simpler form of parameter retrieval which does not use a format string to " "specify the types of the arguments. Functions which use this method to " -"retrieve their parameters should be declared as :const:`METH_VARARGS` in " +"retrieve their parameters should be declared as :c:macro:`METH_VARARGS` in " "function or method tables. The tuple containing the actual parameters " "should be passed as *args*; it must actually be a tuple. The length of the " "tuple must be at least *min* and no more than *max*; *min* and *max* may be " @@ -1177,15 +1130,16 @@ msgstr "" "contiene el número incorrecto de elementos; se establecerá una excepción si " "hubo una falla." -#: ../Doc/c-api/arg.rst:492 +#: ../Doc/c-api/arg.rst:474 +#, fuzzy msgid "" "This is an example of the use of this function, taken from the sources for " -"the :mod:`_weakref` helper module for weak references::" +"the :mod:`!_weakref` helper module for weak references::" msgstr "" "Este es un ejemplo del uso de esta función, tomado de las fuentes del módulo " "auxiliar :mod:`_weakref` para referencias débiles::" -#: ../Doc/c-api/arg.rst:508 +#: ../Doc/c-api/arg.rst:490 msgid "" "The call to :c:func:`PyArg_UnpackTuple` in this example is entirely " "equivalent to this call to :c:func:`PyArg_ParseTuple`::" @@ -1193,11 +1147,11 @@ msgstr "" "La llamada a :c:func:`PyArg_UnpackTuple` en este ejemplo es completamente " "equivalente a esta llamada a :c:func:`PyArg_ParseTuple`::" -#: ../Doc/c-api/arg.rst:516 +#: ../Doc/c-api/arg.rst:498 msgid "Building values" msgstr "Construyendo valores" -#: ../Doc/c-api/arg.rst:520 +#: ../Doc/c-api/arg.rst:502 #, fuzzy msgid "" "Create a new value based on a format string similar to those accepted by the " @@ -1210,7 +1164,7 @@ msgstr "" "valores. Retorna el valor o ``NULL`` en caso de error; se lanzará una " "excepción si se retorna ``NULL``." -#: ../Doc/c-api/arg.rst:525 +#: ../Doc/c-api/arg.rst:507 msgid "" ":c:func:`Py_BuildValue` does not always build a tuple. It builds a tuple " "only if its format string contains two or more format units. If the format " @@ -1225,7 +1179,7 @@ msgstr "" "Para forzarlo a retornar una tupla de tamaño 0 o uno, paréntesis la cadena " "de formato." -#: ../Doc/c-api/arg.rst:531 +#: ../Doc/c-api/arg.rst:513 msgid "" "When memory buffers are passed as parameters to supply data to build " "objects, as for the ``s`` and ``s#`` formats, the required data is copied. " @@ -1244,7 +1198,7 @@ msgstr "" "de llamar a :c:func:`free` para esa memoria una vez retorna :c:func:" "`Py_BuildValue`." -#: ../Doc/c-api/arg.rst:539 +#: ../Doc/c-api/arg.rst:521 msgid "" "In the following description, the quoted form is the format unit; the entry " "in (round) parentheses is the Python object type that the format unit will " @@ -1256,7 +1210,7 @@ msgstr "" "de objeto Python que retornará la unidad de formato; y la entrada entre " "corchetes [cuadrados] es el tipo de los valores C que se pasarán." -#: ../Doc/c-api/arg.rst:543 +#: ../Doc/c-api/arg.rst:525 msgid "" "The characters space, tab, colon and comma are ignored in format strings " "(but not within format units such as ``s#``). This can be used to make long " @@ -1267,11 +1221,11 @@ msgstr "" "Esto se puede usar para hacer que las cadenas de formato largo sean un poco " "más legibles." -#: ../Doc/c-api/arg.rst:549 +#: ../Doc/c-api/arg.rst:531 msgid "``s`` (:class:`str` or ``None``) [const char \\*]" msgstr "``s`` (:class:`str` o ``None``) [const char \\*]" -#: ../Doc/c-api/arg.rst:548 +#: ../Doc/c-api/arg.rst:530 msgid "" "Convert a null-terminated C string to a Python :class:`str` object using " "``'utf-8'`` encoding. If the C string pointer is ``NULL``, ``None`` is used." @@ -1280,13 +1234,13 @@ msgstr "" "class:`str` usando la codificación ``'utf-8'``. Si el puntero de la cadena " "de caracteres C es ``NULL``, se usa ``None``." -#: ../Doc/c-api/arg.rst:554 +#: ../Doc/c-api/arg.rst:536 msgid "" "``s#`` (:class:`str` or ``None``) [const char \\*, :c:type:`Py_ssize_t`]" msgstr "" "``s#`` (:class:`str` o ``None``) [const char \\*, :c:type:`Py_ssize_t`]" -#: ../Doc/c-api/arg.rst:552 +#: ../Doc/c-api/arg.rst:534 msgid "" "Convert a C string and its length to a Python :class:`str` object using " "``'utf-8'`` encoding. If the C string pointer is ``NULL``, the length is " @@ -1297,11 +1251,11 @@ msgstr "" "cadena de caracteres de C es ``NULL``, la longitud se ignora y se retorna " "``None``." -#: ../Doc/c-api/arg.rst:558 +#: ../Doc/c-api/arg.rst:540 msgid "``y`` (:class:`bytes`) [const char \\*]" msgstr "``y`` (:class:`bytes`) [const char \\*]" -#: ../Doc/c-api/arg.rst:557 +#: ../Doc/c-api/arg.rst:539 msgid "" "This converts a C string to a Python :class:`bytes` object. If the C string " "pointer is ``NULL``, ``None`` is returned." @@ -1310,11 +1264,11 @@ msgstr "" "`bytes`. Si el puntero de la cadena de caracteres de C es ``NULL``, se " "retorna ``None``." -#: ../Doc/c-api/arg.rst:562 +#: ../Doc/c-api/arg.rst:544 msgid "``y#`` (:class:`bytes`) [const char \\*, :c:type:`Py_ssize_t`]" msgstr "``y#`` (:class:`bytes`) [const char \\*, :c:type:`Py_ssize_t`]" -#: ../Doc/c-api/arg.rst:561 +#: ../Doc/c-api/arg.rst:543 msgid "" "This converts a C string and its lengths to a Python object. If the C " "string pointer is ``NULL``, ``None`` is returned." @@ -1323,28 +1277,28 @@ msgstr "" "Python. Si el puntero de la cadena de caracteres de C es ``NULL``, se " "retorna ``None``." -#: ../Doc/c-api/arg.rst:565 ../Doc/c-api/arg.rst:581 +#: ../Doc/c-api/arg.rst:547 ../Doc/c-api/arg.rst:563 msgid "Same as ``s``." msgstr "Igual que ``s``." -#: ../Doc/c-api/arg.rst:568 +#: ../Doc/c-api/arg.rst:550 msgid "" "``z#`` (:class:`str` or ``None``) [const char \\*, :c:type:`Py_ssize_t`]" msgstr "" "``z#`` (:class:`str` o ``None``) [const char \\*, :c:type:`Py_ssize_t`]" -#: ../Doc/c-api/arg.rst:568 ../Doc/c-api/arg.rst:584 +#: ../Doc/c-api/arg.rst:550 ../Doc/c-api/arg.rst:566 msgid "Same as ``s#``." msgstr "Igual que ``s#``." -#: ../Doc/c-api/arg.rst:573 +#: ../Doc/c-api/arg.rst:555 msgid "``u`` (:class:`str`) [const wchar_t \\*]" msgstr "``u`` (:class:`str`) [const wchar_t \\*]" -#: ../Doc/c-api/arg.rst:571 +#: ../Doc/c-api/arg.rst:553 #, fuzzy msgid "" -"Convert a null-terminated :c:expr:`wchar_t` buffer of Unicode (UTF-16 or " +"Convert a null-terminated :c:type:`wchar_t` buffer of Unicode (UTF-16 or " "UCS-4) data to a Python Unicode object. If the Unicode buffer pointer is " "``NULL``, ``None`` is returned." msgstr "" @@ -1352,11 +1306,11 @@ msgstr "" "objeto Python Unicode. Si el puntero del búfer Unicode es ``NULL``, se " "retorna ``None``." -#: ../Doc/c-api/arg.rst:578 +#: ../Doc/c-api/arg.rst:560 msgid "``u#`` (:class:`str`) [const wchar_t \\*, :c:type:`Py_ssize_t`]" msgstr "``u#`` (:class:`str`) [const wchar_t \\*, :c:type:`Py_ssize_t`]" -#: ../Doc/c-api/arg.rst:576 +#: ../Doc/c-api/arg.rst:558 msgid "" "Convert a Unicode (UTF-16 or UCS-4) data buffer and its length to a Python " "Unicode object. If the Unicode buffer pointer is ``NULL``, the length is " @@ -1366,80 +1320,80 @@ msgstr "" "objeto Python Unicode. Si el puntero del búfer Unicode es ``NULL``, la " "longitud se ignora y se retorna ``None``." -#: ../Doc/c-api/arg.rst:581 +#: ../Doc/c-api/arg.rst:563 msgid "``U`` (:class:`str` or ``None``) [const char \\*]" msgstr "``U`` (:class:`str` o ``None``) [const char \\*]" -#: ../Doc/c-api/arg.rst:584 +#: ../Doc/c-api/arg.rst:566 msgid "" "``U#`` (:class:`str` or ``None``) [const char \\*, :c:type:`Py_ssize_t`]" msgstr "" "``z#`` (:class:`str` o ``None``) [const char \\*, :c:type:`Py_ssize_t`]" -#: ../Doc/c-api/arg.rst:587 +#: ../Doc/c-api/arg.rst:569 #, fuzzy msgid "Convert a plain C :c:expr:`int` to a Python integer object." msgstr "Convierte un :c:type:`int` plano de C a un objeto entero de Python." -#: ../Doc/c-api/arg.rst:590 +#: ../Doc/c-api/arg.rst:572 msgid "``b`` (:class:`int`) [char]" msgstr "``b`` (:class:`int`) [char]" -#: ../Doc/c-api/arg.rst:590 +#: ../Doc/c-api/arg.rst:572 #, fuzzy msgid "Convert a plain C :c:expr:`char` to a Python integer object." msgstr "Convierte un :c:type:`char` plano de C a un objeto entero de Python." -#: ../Doc/c-api/arg.rst:593 +#: ../Doc/c-api/arg.rst:575 #, fuzzy msgid "Convert a plain C :c:expr:`short int` to a Python integer object." msgstr "" "Convierte un :c:type:`short int` plano de C a un objeto entero de Python." -#: ../Doc/c-api/arg.rst:596 +#: ../Doc/c-api/arg.rst:578 #, fuzzy msgid "Convert a C :c:expr:`long int` to a Python integer object." msgstr "Convierta un :c:type:`long int` de C en un objeto entero de Python." -#: ../Doc/c-api/arg.rst:599 +#: ../Doc/c-api/arg.rst:581 #, fuzzy msgid "Convert a C :c:expr:`unsigned char` to a Python integer object." msgstr "Convierte un :c:type:`unsigned char` de C a un entero de Python." -#: ../Doc/c-api/arg.rst:602 +#: ../Doc/c-api/arg.rst:584 #, fuzzy msgid "Convert a C :c:expr:`unsigned short int` to a Python integer object." msgstr "Convierte un :c:type:`unsigned short int` de C a un entero de Python." -#: ../Doc/c-api/arg.rst:605 +#: ../Doc/c-api/arg.rst:587 #, fuzzy msgid "Convert a C :c:expr:`unsigned int` to a Python integer object." msgstr "Convierte un :c:type:`unsigned int` de C a un entero de Python." -#: ../Doc/c-api/arg.rst:608 +#: ../Doc/c-api/arg.rst:590 #, fuzzy msgid "Convert a C :c:expr:`unsigned long` to a Python integer object." msgstr "Convierte un :c:type:`unsigned long` de C a un entero de Python." -#: ../Doc/c-api/arg.rst:611 +#: ../Doc/c-api/arg.rst:593 #, fuzzy msgid "Convert a C :c:expr:`long long` to a Python integer object." msgstr "Convierte un :c:type:`long long` de C en un objeto entero de Python." -#: ../Doc/c-api/arg.rst:614 +#: ../Doc/c-api/arg.rst:596 #, fuzzy msgid "Convert a C :c:expr:`unsigned long long` to a Python integer object." msgstr "Convierte un :c:type:`unsigned long long` de C a un entero de Python." -#: ../Doc/c-api/arg.rst:617 +#: ../Doc/c-api/arg.rst:599 msgid "Convert a C :c:type:`Py_ssize_t` to a Python integer." msgstr "Convierte un :c:type:`Py_ssize_t` de C a un entero de Python." -#: ../Doc/c-api/arg.rst:621 +#: ../Doc/c-api/arg.rst:603 msgid "``c`` (:class:`bytes` of length 1) [char]" msgstr "``c`` (:class:`bytes` de largo 1) [char]" -#: ../Doc/c-api/arg.rst:620 +#: ../Doc/c-api/arg.rst:602 #, fuzzy msgid "" "Convert a C :c:expr:`int` representing a byte to a Python :class:`bytes` " @@ -1448,7 +1402,7 @@ msgstr "" "Convierte un :c:type:`int` de C representando un byte a un objeto :class:" "`bytes` de Python de largo 1." -#: ../Doc/c-api/arg.rst:624 +#: ../Doc/c-api/arg.rst:606 #, fuzzy msgid "" "Convert a C :c:expr:`int` representing a character to Python :class:`str` " @@ -1457,36 +1411,37 @@ msgstr "" "Convierte un :c:type:`int` de C representando un carácter a un objeto :class:" "`str` de Python de largo 1." -#: ../Doc/c-api/arg.rst:628 +#: ../Doc/c-api/arg.rst:610 #, fuzzy msgid "Convert a C :c:expr:`double` to a Python floating point number." msgstr "" "Convierte un :c:type:`double` de C a un número de punto flotante de Python." -#: ../Doc/c-api/arg.rst:631 +#: ../Doc/c-api/arg.rst:613 #, fuzzy msgid "Convert a C :c:expr:`float` to a Python floating point number." msgstr "" "Convierte un :c:type:`float` de C a un número de punto flotante de Python." -#: ../Doc/c-api/arg.rst:634 +#: ../Doc/c-api/arg.rst:616 msgid "``D`` (:class:`complex`) [Py_complex \\*]" msgstr "``D`` (:class:`complex`) [Py_complex \\*]" -#: ../Doc/c-api/arg.rst:634 +#: ../Doc/c-api/arg.rst:616 msgid "Convert a C :c:type:`Py_complex` structure to a Python complex number." msgstr "" "Convierte una estructura :c:type:`Py_complex` de C en un número complejo de " "Python." -#: ../Doc/c-api/arg.rst:637 +#: ../Doc/c-api/arg.rst:619 +#, fuzzy msgid "" -"Pass a Python object untouched (except for its reference count, which is " -"incremented by one). If the object passed in is a ``NULL`` pointer, it is " -"assumed that this was caused because the call producing the argument found " -"an error and set an exception. Therefore, :c:func:`Py_BuildValue` will " -"return ``NULL`` but won't raise an exception. If no exception has been " -"raised yet, :exc:`SystemError` is set." +"Pass a Python object untouched but create a new :term:`strong reference` to " +"it (i.e. its reference count is incremented by one). If the object passed in " +"is a ``NULL`` pointer, it is assumed that this was caused because the call " +"producing the argument found an error and set an exception. Therefore, :c:" +"func:`Py_BuildValue` will return ``NULL`` but won't raise an exception. If " +"no exception has been raised yet, :exc:`SystemError` is set." msgstr "" "Pasa un objeto Python sin tocarlo (excepto por su recuento de referencia, " "que se incrementa en uno). Si el objeto pasado es un puntero ``NULL``, se " @@ -1495,29 +1450,30 @@ msgstr "" "`Py_BuildValue` retornará ``NULL`` pero no lanzará una excepción. Si aún no " "se ha producido ninguna excepción, se establece :exc:`SystemError`." -#: ../Doc/c-api/arg.rst:645 +#: ../Doc/c-api/arg.rst:629 msgid "``S`` (object) [PyObject \\*]" msgstr "``S`` (object) [PyObject \\*]" -#: ../Doc/c-api/arg.rst:645 +#: ../Doc/c-api/arg.rst:629 msgid "Same as ``O``." msgstr "Igual que ``O``." -#: ../Doc/c-api/arg.rst:650 +#: ../Doc/c-api/arg.rst:634 msgid "``N`` (object) [PyObject \\*]" msgstr "``N`` (object) [PyObject \\*]" -#: ../Doc/c-api/arg.rst:648 +#: ../Doc/c-api/arg.rst:632 +#, fuzzy msgid "" -"Same as ``O``, except it doesn't increment the reference count on the " -"object. Useful when the object is created by a call to an object constructor " -"in the argument list." +"Same as ``O``, except it doesn't create a new :term:`strong reference`. " +"Useful when the object is created by a call to an object constructor in the " +"argument list." msgstr "" "Igual que ``O``, excepto que no incrementa el recuento de referencia en el " "objeto. Útil cuando el objeto se crea mediante una llamada a un constructor " "de objetos en la lista de argumentos." -#: ../Doc/c-api/arg.rst:653 +#: ../Doc/c-api/arg.rst:637 #, fuzzy msgid "" "Convert *anything* to a Python object through a *converter* function. The " @@ -1530,7 +1486,7 @@ msgstr "" "`void*`) como argumento y debería retornar un \"nuevo\" objeto de Python, o " "``NULL`` si se produjo un error." -#: ../Doc/c-api/arg.rst:659 +#: ../Doc/c-api/arg.rst:643 msgid "" "Convert a sequence of C values to a Python tuple with the same number of " "items." @@ -1538,11 +1494,11 @@ msgstr "" "Convierta una secuencia de valores C en una tupla de Python con el mismo " "número de elementos." -#: ../Doc/c-api/arg.rst:662 +#: ../Doc/c-api/arg.rst:646 msgid "``[items]`` (:class:`list`) [*matching-items*]" msgstr "``[items]`` (:class:`list`) [*matching-items*]" -#: ../Doc/c-api/arg.rst:662 +#: ../Doc/c-api/arg.rst:646 msgid "" "Convert a sequence of C values to a Python list with the same number of " "items." @@ -1550,11 +1506,11 @@ msgstr "" "Convierte una secuencia de valores C en una lista de Python con el mismo " "número de elementos." -#: ../Doc/c-api/arg.rst:667 +#: ../Doc/c-api/arg.rst:651 msgid "``{items}`` (:class:`dict`) [*matching-items*]" msgstr "``{items}`` (:class:`dict`) [*matching-items*]" -#: ../Doc/c-api/arg.rst:665 +#: ../Doc/c-api/arg.rst:649 msgid "" "Convert a sequence of C values to a Python dictionary. Each pair of " "consecutive C values adds one item to the dictionary, serving as key and " @@ -1564,7 +1520,7 @@ msgstr "" "valores C consecutivos agrega un elemento al diccionario, que sirve como " "clave y valor, respectivamente." -#: ../Doc/c-api/arg.rst:669 +#: ../Doc/c-api/arg.rst:653 msgid "" "If there is an error in the format string, the :exc:`SystemError` exception " "is set and ``NULL`` returned." @@ -1572,10 +1528,97 @@ msgstr "" "Si hay un error en la cadena de formato, se establece la excepción :exc:" "`SystemError` y se retorna ``NULL``." -#: ../Doc/c-api/arg.rst:674 +#: ../Doc/c-api/arg.rst:658 msgid "" "Identical to :c:func:`Py_BuildValue`, except that it accepts a va_list " "rather than a variable number of arguments." msgstr "" "Idéntico a :c:func:`Py_BuildValue`, excepto que acepta una *va_list* en " "lugar de un número variable de argumentos." + +#~ msgid "" +#~ "In general, when a format sets a pointer to a buffer, the buffer is " +#~ "managed by the corresponding Python object, and the buffer shares the " +#~ "lifetime of this object. You won't have to release any memory yourself. " +#~ "The only exceptions are ``es``, ``es#``, ``et`` and ``et#``." +#~ msgstr "" +#~ "En general, cuando un formato establece un puntero a un búfer, el búfer " +#~ "es gestionado por el objeto de Python correspondiente, y el búfer " +#~ "comparte la vida útil de este objeto. Usted no tendrá que liberar " +#~ "cualquier memoria usted mismo. Las únicas excepciones son ``es``, " +#~ "``es#``, ``et`` y ``et#``." + +#~ msgid "" +#~ "Some formats require a read-only :term:`bytes-like object`, and set a " +#~ "pointer instead of a buffer structure. They work by checking that the " +#~ "object's :c:member:`PyBufferProcs.bf_releasebuffer` field is ``NULL``, " +#~ "which disallows mutable objects such as :class:`bytearray`." +#~ msgstr "" +#~ "Algunos formatos requieren :term:`bytes-like object` de sólo lectura, y " +#~ "establecen un puntero en lugar de una estructura de búfer. Trabajan " +#~ "comprobando que el campo del objeto :c:member:`PyBufferProcs." +#~ "bf_releasebuffer` es ``NULL``, que no permite objetos mutables como :" +#~ "class:`bytearray`." + +#~ msgid "``u`` (:class:`str`) [const Py_UNICODE \\*]" +#~ msgstr "``u`` (:class:`str`) [const Py_UNICODE \\*]" + +#~ msgid "" +#~ "Convert a Python Unicode object to a C pointer to a NUL-terminated buffer " +#~ "of Unicode characters. You must pass the address of a :c:type:" +#~ "`Py_UNICODE` pointer variable, which will be filled with the pointer to " +#~ "an existing Unicode buffer. Please note that the width of a :c:type:" +#~ "`Py_UNICODE` character depends on compilation options (it is either 16 or " +#~ "32 bits). The Python string must not contain embedded null code points; " +#~ "if it does, a :exc:`ValueError` exception is raised." +#~ msgstr "" +#~ "Convierte un objeto Unicode de Python a un puntero a un búfer C NUL " +#~ "terminado de caracteres Unicode. Debe pasar la dirección de una variable " +#~ "de puntero :c:type:`Py_UNICODE`, que se llena con el puntero a un búfer " +#~ "Unicode existente. Tenga en cuenta que el ancho de un carácter :c:type:" +#~ "`Py_UNICODE` depende de las opciones de compilación (que es 16 o 32 " +#~ "bits). La cadena de Python no debe contener puntos de código incrustado " +#~ "nulos; si lo hace, se lanza una excepción :exc:`ValueError`." + +#~ msgid "" +#~ "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :" +#~ "c:func:`PyUnicode_AsWideCharString`." +#~ msgstr "" +#~ "Parte de la API de viejo estilo :c:type:`Py_UNICODE`; favor migrar al uso " +#~ "de :c:func:`PyUnicode_AsWideCharString`." + +#~ msgid "``u#`` (:class:`str`) [const Py_UNICODE \\*, :c:type:`Py_ssize_t`]" +#~ msgstr "``u#`` (:class:`str`) [const Py_UNICODE \\*, :c:type:`Py_ssize_t`]" + +#~ msgid "" +#~ "This variant on ``u`` stores into two C variables, the first one a " +#~ "pointer to a Unicode data buffer, the second one its length. This " +#~ "variant allows null code points." +#~ msgstr "" +#~ "Esta variante en ``u`` almacena en dos variables de C, el primero un " +#~ "puntero a un búfer de datos Unicode, el segundo de su longitud. Esta " +#~ "variante permite puntos de código nulos." + +#~ msgid "``Z`` (:class:`str` or ``None``) [const Py_UNICODE \\*]" +#~ msgstr "``Z`` (:class:`str` o ``None``) [const Py_UNICODE \\*]" + +#~ msgid "" +#~ "Like ``u``, but the Python object may also be ``None``, in which case " +#~ "the :c:type:`Py_UNICODE` pointer is set to ``NULL``." +#~ msgstr "" +#~ "Como ``u``, pero el objeto Python también puede ser ``None``, en cuyo " +#~ "caso el puntero :c:type:`Py_UNICODE` se establece en ``NULL``." + +#~ msgid "" +#~ "``Z#`` (:class:`str` or ``None``) [const Py_UNICODE \\*, :c:type:" +#~ "`Py_ssize_t`]" +#~ msgstr "" +#~ "``z#`` (:class:`str` o ``None``) [const Py_UNICODE \\*, :c:type:" +#~ "`Py_ssize_t`]" + +#~ msgid "" +#~ "Like ``u#``, but the Python object may also be ``None``, in which case " +#~ "the :c:type:`Py_UNICODE` pointer is set to ``NULL``." +#~ msgstr "" +#~ "Al igual que ``u#``, pero el objeto Python también puede ser ``None``, en " +#~ "cuyo caso el puntero :c:type:`Py_UNICODE` se establece en ``NULL``." diff --git a/c-api/bool.po b/c-api/bool.po index 2481c37eac..3c59178a7f 100644 --- a/c-api/bool.po +++ b/c-api/bool.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-03-19 11:16+0100\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-16 13:03+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,17 +19,17 @@ msgstr "" "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" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/bool.rst:6 msgid "Boolean Objects" msgstr "Objetos booleanos" #: ../Doc/c-api/bool.rst:8 +#, fuzzy msgid "" "Booleans in Python are implemented as a subclass of integers. There are " -"only two booleans, :const:`Py_False` and :const:`Py_True`. As such, the " +"only two booleans, :c:data:`Py_False` and :c:data:`Py_True`. As such, the " "normal creation and deletion functions don't apply to booleans. The " "following macros are available, however." msgstr "" @@ -40,48 +40,76 @@ msgstr "" #: ../Doc/c-api/bool.rst:16 msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python boolean type; " +"it is the same object as :class:`bool` in the Python layer." +msgstr "" + +#: ../Doc/c-api/bool.rst:22 +msgid "" "Return true if *o* is of type :c:data:`PyBool_Type`. This function always " "succeeds." msgstr "" "Retorna verdadero si *o* es de tipo :c:data:`PyBool_Type`. Esta función " "siempre finaliza con éxito." -#: ../Doc/c-api/bool.rst:22 +#: ../Doc/c-api/bool.rst:28 msgid "" -"The Python ``False`` object. This object has no methods. It needs to be " -"treated just like any other object with respect to reference counts." +"The Python ``False`` object. This object has no methods and is `immortal " +"`_." msgstr "" -"El objeto ``False`` de Python. Este objeto no tiene métodos. Debe tratarse " -"como cualquier otro objeto con respecto a los recuentos de referencia." -#: ../Doc/c-api/bool.rst:28 -msgid "" -"The Python ``True`` object. This object has no methods. It needs to be " -"treated just like any other object with respect to reference counts." +#: ../Doc/c-api/bool.rst:31 +msgid ":c:data:`Py_False` is immortal." msgstr "" -"El objeto ``True`` de Python. Este objeto no tiene métodos. Debe tratarse " -"como cualquier otro objeto con respecto a los recuentos de referencia." -#: ../Doc/c-api/bool.rst:34 +#: ../Doc/c-api/bool.rst:37 msgid "" -"Return :const:`Py_False` from a function, properly incrementing its " -"reference count." +"The Python ``True`` object. This object has no methods and is `immortal " +"`_." msgstr "" -"Retorna :const:`Py_False` de una función, incrementando adecuadamente su " -"recuento de referencia." #: ../Doc/c-api/bool.rst:40 -msgid "" -"Return :const:`Py_True` from a function, properly incrementing its reference " -"count." +msgid ":c:data:`Py_True` is immortal." msgstr "" -"Retorna :const:`Py_True` desde una función, incrementando adecuadamente su " -"recuento de referencia." #: ../Doc/c-api/bool.rst:46 +#, fuzzy +msgid "Return :c:data:`Py_False` from a function." +msgstr "" +"Retorna :const:`Py_False` de una función, incrementando adecuadamente su " +"recuento de referencia." + +#: ../Doc/c-api/bool.rst:51 +msgid "Return :c:data:`Py_True` from a function." +msgstr "" + +#: ../Doc/c-api/bool.rst:56 +#, fuzzy msgid "" -"Return a new reference to :const:`Py_True` or :const:`Py_False` depending on " -"the truth value of *v*." +"Return :c:data:`Py_True` or :c:data:`Py_False`, depending on the truth value " +"of *v*." msgstr "" "Retorna una nueva referencia a :const:`Py_True` o :const:`Py_False` " "dependiendo del valor de verdad de *v*." + +#~ msgid "" +#~ "The Python ``False`` object. This object has no methods. It needs to be " +#~ "treated just like any other object with respect to reference counts." +#~ msgstr "" +#~ "El objeto ``False`` de Python. Este objeto no tiene métodos. Debe " +#~ "tratarse como cualquier otro objeto con respecto a los recuentos de " +#~ "referencia." + +#~ msgid "" +#~ "The Python ``True`` object. This object has no methods. It needs to be " +#~ "treated just like any other object with respect to reference counts." +#~ msgstr "" +#~ "El objeto ``True`` de Python. Este objeto no tiene métodos. Debe tratarse " +#~ "como cualquier otro objeto con respecto a los recuentos de referencia." + +#~ msgid "" +#~ "Return :const:`Py_True` from a function, properly incrementing its " +#~ "reference count." +#~ msgstr "" +#~ "Retorna :const:`Py_True` desde una función, incrementando adecuadamente " +#~ "su recuento de referencia." diff --git a/c-api/buffer.po b/c-api/buffer.po index a96547a989..db84f1d641 100644 --- a/c-api/buffer.po +++ b/c-api/buffer.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-31 01:46-0400\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/buffer.rst:11 msgid "Buffer Protocol" @@ -93,10 +92,11 @@ msgstr "" "valores de varios bytes." #: ../Doc/c-api/buffer.rst:45 +#, fuzzy msgid "" "An example consumer of the buffer interface is the :meth:`~io.BufferedIOBase." "write` method of file objects: any object that can export a series of bytes " -"through the buffer interface can be written to a file. While :meth:`write` " +"through the buffer interface can be written to a file. While :meth:`!write` " "only needs read-only access to the internal contents of the object passed to " "it, other methods such as :meth:`~io.BufferedIOBase.readinto` need write " "access to the contents of their argument. The buffer interface allows " @@ -213,18 +213,19 @@ msgstr "" "memoria." #: ../Doc/c-api/buffer.rst:104 +#, fuzzy msgid "" "A new reference to the exporting object. The reference is owned by the " -"consumer and automatically decremented and set to ``NULL`` by :c:func:" -"`PyBuffer_Release`. The field is the equivalent of the return value of any " -"standard C-API function." +"consumer and automatically released (i.e. reference count decremented) and " +"set to ``NULL`` by :c:func:`PyBuffer_Release`. The field is the equivalent " +"of the return value of any standard C-API function." msgstr "" "Una nueva referencia al objeto exportador. La referencia es propiedad del " "consumidor y automáticamente disminuye y se establece en ``NULL`` por :c:" "func:`PyBuffer_Release`. El campo es el equivalente del valor de retorno de " "cualquier función estándar de C-API." -#: ../Doc/c-api/buffer.rst:109 +#: ../Doc/c-api/buffer.rst:111 msgid "" "As a special case, for *temporary* buffers that are wrapped by :c:func:" "`PyMemoryView_FromBuffer` or :c:func:`PyBuffer_FillInfo` this field is " @@ -234,7 +235,7 @@ msgstr "" "c:func:`PyMemoryView_FromBuffer` o :c:func:`PyBuffer_FillInfo` este campo es " "``NULL``. En general, los objetos de exportación NO DEBEN usar este esquema." -#: ../Doc/c-api/buffer.rst:116 +#: ../Doc/c-api/buffer.rst:118 msgid "" "``product(shape) * itemsize``. For contiguous arrays, this is the length of " "the underlying memory block. For non-contiguous arrays, it is the length " @@ -246,7 +247,7 @@ msgstr "" "que tendría la estructura lógica si se copiara en una representación " "contigua." -#: ../Doc/c-api/buffer.rst:121 +#: ../Doc/c-api/buffer.rst:123 msgid "" "Accessing ``((char *)buf)[0] up to ((char *)buf)[len-1]`` is only valid if " "the buffer has been obtained by a request that guarantees contiguity. In " @@ -258,7 +259,7 @@ msgstr "" "En la mayoría de los casos, dicha solicitud será :c:macro:`PyBUF_SIMPLE` o :" "c:macro:`PyBUF_WRITABLE`." -#: ../Doc/c-api/buffer.rst:127 +#: ../Doc/c-api/buffer.rst:129 msgid "" "An indicator of whether the buffer is read-only. This field is controlled by " "the :c:macro:`PyBUF_WRITABLE` flag." @@ -266,7 +267,7 @@ msgstr "" "Un indicador de si el búfer es de solo lectura. Este campo está controlado " "por el indicador :c:macro:`PyBUF_WRITABLE`." -#: ../Doc/c-api/buffer.rst:132 +#: ../Doc/c-api/buffer.rst:134 msgid "" "Item size in bytes of a single element. Same as the value of :func:`struct." "calcsize` called on non-``NULL`` :c:member:`~Py_buffer.format` values." @@ -275,7 +276,7 @@ msgstr "" "func:`struct.calcsize` invocado en valores no ``NULL`` :c:member:`~Py_buffer." "format`." -#: ../Doc/c-api/buffer.rst:135 +#: ../Doc/c-api/buffer.rst:137 msgid "" "Important exception: If a consumer requests a buffer without the :c:macro:" "`PyBUF_FORMAT` flag, :c:member:`~Py_buffer.format` will be set to " @@ -287,7 +288,7 @@ msgstr "" "``NULL``, pero :c:member:`~Py_buffer.itemsize` todavía tiene el valor para " "el formato original." -#: ../Doc/c-api/buffer.rst:140 +#: ../Doc/c-api/buffer.rst:142 msgid "" "If :c:member:`~Py_buffer.shape` is present, the equality ``product(shape) * " "itemsize == len`` still holds and the consumer can use :c:member:`~Py_buffer." @@ -297,7 +298,7 @@ msgstr "" "* itemsize == len`` aún se mantiene y el consumidor puede usar :c:member:" "`~Py_buffer.itemsize` para navegar el búfer." -#: ../Doc/c-api/buffer.rst:144 +#: ../Doc/c-api/buffer.rst:146 msgid "" "If :c:member:`~Py_buffer.shape` is ``NULL`` as a result of a :c:macro:" "`PyBUF_SIMPLE` or a :c:macro:`PyBUF_WRITABLE` request, the consumer must " @@ -307,7 +308,7 @@ msgstr "" "`PyBUF_SIMPLE` o un :c:macro:`PyBUF_WRITABLE`, el consumidor debe ignorar :c:" "member:`~Py_buffer.itemsize` y asume ``itemsize == 1``." -#: ../Doc/c-api/buffer.rst:150 +#: ../Doc/c-api/buffer.rst:152 msgid "" "A *NUL* terminated string in :mod:`struct` module style syntax describing " "the contents of a single item. If this is ``NULL``, ``\"B\"`` (unsigned " @@ -317,16 +318,18 @@ msgstr "" "modulo :mod:`struct` que describe el contenido de un solo elemento. Si esto " "es ``NULL``, se supone ``\"B\"`` (bytes sin signo)." -#: ../Doc/c-api/buffer.rst:154 +#: ../Doc/c-api/buffer.rst:156 msgid "This field is controlled by the :c:macro:`PyBUF_FORMAT` flag." msgstr "Este campo está controlado por el indicador :c:macro:`PyBUF_FORMAT`." -#: ../Doc/c-api/buffer.rst:158 +#: ../Doc/c-api/buffer.rst:160 +#, fuzzy msgid "" "The number of dimensions the memory represents as an n-dimensional array. If " "it is ``0``, :c:member:`~Py_buffer.buf` points to a single item representing " "a scalar. In this case, :c:member:`~Py_buffer.shape`, :c:member:`~Py_buffer." -"strides` and :c:member:`~Py_buffer.suboffsets` MUST be ``NULL``." +"strides` and :c:member:`~Py_buffer.suboffsets` MUST be ``NULL``. The maximum " +"number of dimensions is given by :c:macro:`PyBUF_MAX_NDIM`." msgstr "" "El número de dimensiones que representa la memoria como un arreglo n-" "dimensional. Si es ``0``, :c:member:`~Py_buffer.buf` apunta a un solo " @@ -334,18 +337,7 @@ msgstr "" "shape`, :c:member:`~Py_buffer.strides` y :c:member:`~Py_buffer.suboffsets` " "DEBE ser ``NULL``." -#: ../Doc/c-api/buffer.rst:163 -msgid "" -"The macro :c:macro:`PyBUF_MAX_NDIM` limits the maximum number of dimensions " -"to 64. Exporters MUST respect this limit, consumers of multi-dimensional " -"buffers SHOULD be able to handle up to :c:macro:`PyBUF_MAX_NDIM` dimensions." -msgstr "" -"La macro :c:macro:`PyBUF_MAX_NDIM` limita el número máximo de dimensiones a " -"64. Los exportadores DEBEN respetar este límite, los consumidores de búfer " -"multidimensionales DEBEN poder manejar hasta dimensiones :c:macro:" -"`PyBUF_MAX_NDIM`." - -#: ../Doc/c-api/buffer.rst:169 +#: ../Doc/c-api/buffer.rst:168 msgid "" "An array of :c:type:`Py_ssize_t` of length :c:member:`~Py_buffer.ndim` " "indicating the shape of the memory as an n-dimensional array. Note that " @@ -357,7 +349,7 @@ msgstr "" "cuenta que ``shape[0] * ... * shape[ndim-1] * itemsize`` DEBE ser igual a :c:" "member:`~Py_buffer.len`." -#: ../Doc/c-api/buffer.rst:174 +#: ../Doc/c-api/buffer.rst:173 msgid "" "Shape values are restricted to ``shape[n] >= 0``. The case ``shape[n] == 0`` " "requires special attention. See `complex arrays`_ for further information." @@ -366,11 +358,11 @@ msgstr "" "``shape[n] == 0`` requiere atención especial. Vea arreglos complejos " "(`complex arrays`_) para más información." -#: ../Doc/c-api/buffer.rst:178 +#: ../Doc/c-api/buffer.rst:177 msgid "The shape array is read-only for the consumer." msgstr "El arreglo de formas es de sólo lectura para el consumidor." -#: ../Doc/c-api/buffer.rst:182 +#: ../Doc/c-api/buffer.rst:181 msgid "" "An array of :c:type:`Py_ssize_t` of length :c:member:`~Py_buffer.ndim` " "giving the number of bytes to skip to get to a new element in each dimension." @@ -379,7 +371,7 @@ msgstr "" "que proporciona el número de bytes que se omiten para llegar a un nuevo " "elemento en cada dimensión." -#: ../Doc/c-api/buffer.rst:186 +#: ../Doc/c-api/buffer.rst:185 msgid "" "Stride values can be any integer. For regular arrays, strides are usually " "positive, but a consumer MUST be able to handle the case ``strides[n] <= " @@ -390,11 +382,11 @@ msgstr "" "DEBE ser capaz de manejar el caso ``strides[n] <= 0``. Ver `complex arrays`_ " "para más información." -#: ../Doc/c-api/buffer.rst:190 +#: ../Doc/c-api/buffer.rst:189 msgid "The strides array is read-only for the consumer." msgstr "El arreglo *strides* es de sólo lectura para el consumidor." -#: ../Doc/c-api/buffer.rst:194 +#: ../Doc/c-api/buffer.rst:193 msgid "" "An array of :c:type:`Py_ssize_t` of length :c:member:`~Py_buffer.ndim`. If " "``suboffsets[n] >= 0``, the values stored along the nth dimension are " @@ -409,7 +401,7 @@ msgstr "" "*suboffsets* negativo indica que no debe producirse una desreferenciación " "(*striding* en un bloque de memoria contiguo)." -#: ../Doc/c-api/buffer.rst:201 +#: ../Doc/c-api/buffer.rst:200 msgid "" "If all suboffsets are negative (i.e. no de-referencing is needed), then this " "field must be ``NULL`` (the default value)." @@ -418,7 +410,7 @@ msgstr "" "desreferenciar), entonces este campo debe ser ``NULL`` (el valor " "predeterminado)." -#: ../Doc/c-api/buffer.rst:204 +#: ../Doc/c-api/buffer.rst:203 msgid "" "This type of array representation is used by the Python Imaging Library " "(PIL). See `complex arrays`_ for further information how to access elements " @@ -428,11 +420,11 @@ msgstr "" "arreglos. Consulte `complex arrays`_ para obtener más información sobre cómo " "acceder a los elementos de dicho arreglo." -#: ../Doc/c-api/buffer.rst:208 +#: ../Doc/c-api/buffer.rst:207 msgid "The suboffsets array is read-only for the consumer." msgstr "El arreglo de *suboffsets* es de sólo lectura para el consumidor." -#: ../Doc/c-api/buffer.rst:212 +#: ../Doc/c-api/buffer.rst:211 msgid "" "This is for use internally by the exporting object. For example, this might " "be re-cast as an integer by the exporter and used to store flags about " @@ -445,11 +437,27 @@ msgstr "" "liberarse cuando se libera el búfer. El consumidor NO DEBE alterar este " "valor." -#: ../Doc/c-api/buffer.rst:221 +#: ../Doc/c-api/buffer.rst:218 +msgid "Constants:" +msgstr "" + +#: ../Doc/c-api/buffer.rst:222 +#, fuzzy +msgid "" +"The maximum number of dimensions the memory represents. Exporters MUST " +"respect this limit, consumers of multi-dimensional buffers SHOULD be able to " +"handle up to :c:macro:`!PyBUF_MAX_NDIM` dimensions. Currently set to 64." +msgstr "" +"La macro :c:macro:`PyBUF_MAX_NDIM` limita el número máximo de dimensiones a " +"64. Los exportadores DEBEN respetar este límite, los consumidores de búfer " +"multidimensionales DEBEN poder manejar hasta dimensiones :c:macro:" +"`PyBUF_MAX_NDIM`." + +#: ../Doc/c-api/buffer.rst:231 msgid "Buffer request types" msgstr "Tipos de solicitud búfer" -#: ../Doc/c-api/buffer.rst:223 +#: ../Doc/c-api/buffer.rst:233 msgid "" "Buffers are usually obtained by sending a buffer request to an exporting " "object via :c:func:`PyObject_GetBuffer`. Since the complexity of the logical " @@ -462,18 +470,19 @@ msgstr "" "drásticamente, el consumidor usa el argumento *flags* para especificar el " "tipo de búfer exacto que puede manejar." -#: ../Doc/c-api/buffer.rst:228 +#: ../Doc/c-api/buffer.rst:238 +#, fuzzy msgid "" -"All :c:data:`Py_buffer` fields are unambiguously defined by the request type." +"All :c:type:`Py_buffer` fields are unambiguously defined by the request type." msgstr "" "Todos los campos :c:data:`Py_buffer` están definidos inequívocamente por el " "tipo de solicitud." -#: ../Doc/c-api/buffer.rst:232 +#: ../Doc/c-api/buffer.rst:242 msgid "request-independent fields" msgstr "campos independientes de solicitud" -#: ../Doc/c-api/buffer.rst:233 +#: ../Doc/c-api/buffer.rst:243 msgid "" "The following fields are not influenced by *flags* and must always be filled " "in with the correct values: :c:member:`~Py_buffer.obj`, :c:member:" @@ -485,11 +494,11 @@ msgstr "" "`~Py_buffer.buf`, :c:member:`~Py_buffer.len`, :c:member:`~Py_buffer." "itemsize`, :c:member:`~Py_buffer.ndim`." -#: ../Doc/c-api/buffer.rst:239 +#: ../Doc/c-api/buffer.rst:249 msgid "readonly, format" msgstr "formato de sólo lectura" -#: ../Doc/c-api/buffer.rst:243 +#: ../Doc/c-api/buffer.rst:253 msgid "" "Controls the :c:member:`~Py_buffer.readonly` field. If set, the exporter " "MUST provide a writable buffer or else report failure. Otherwise, the " @@ -502,7 +511,7 @@ msgstr "" "búfer de solo lectura o de escritura, pero la elección DEBE ser coherente " "para todos los consumidores." -#: ../Doc/c-api/buffer.rst:250 +#: ../Doc/c-api/buffer.rst:260 msgid "" "Controls the :c:member:`~Py_buffer.format` field. If set, this field MUST be " "filled in correctly. Otherwise, this field MUST be ``NULL``." @@ -511,7 +520,7 @@ msgstr "" "DEBE completarse correctamente. De lo contrario, este campo DEBE ser " "``NULL``." -#: ../Doc/c-api/buffer.rst:254 +#: ../Doc/c-api/buffer.rst:264 msgid "" ":c:macro:`PyBUF_WRITABLE` can be \\|'d to any of the flags in the next " "section. Since :c:macro:`PyBUF_SIMPLE` is defined as 0, :c:macro:" @@ -523,7 +532,7 @@ msgstr "" "macro:`PyBUF_WRITABLE` puede usarse como un indicador independiente para " "solicitar un búfer de escritura simple." -#: ../Doc/c-api/buffer.rst:258 +#: ../Doc/c-api/buffer.rst:268 msgid "" ":c:macro:`PyBUF_FORMAT` can be \\|'d to any of the flags except :c:macro:" "`PyBUF_SIMPLE`. The latter already implies format ``B`` (unsigned bytes)." @@ -532,11 +541,11 @@ msgstr "" "excepto :c:macro:`PyBUF_SIMPLE`. Este último ya implica el formato ``B`` " "(bytes sin signo)." -#: ../Doc/c-api/buffer.rst:263 +#: ../Doc/c-api/buffer.rst:273 msgid "shape, strides, suboffsets" msgstr "formas, *strides*, *suboffsets*" -#: ../Doc/c-api/buffer.rst:265 +#: ../Doc/c-api/buffer.rst:275 msgid "" "The flags that control the logical structure of the memory are listed in " "decreasing order of complexity. Note that each flag contains all bits of the " @@ -546,57 +555,57 @@ msgstr "" "orden decreciente de complejidad. Tenga en cuenta que cada bandera contiene " "todos los bits de las banderas debajo de ella." -#: ../Doc/c-api/buffer.rst:272 ../Doc/c-api/buffer.rst:296 -#: ../Doc/c-api/buffer.rst:321 +#: ../Doc/c-api/buffer.rst:282 ../Doc/c-api/buffer.rst:306 +#: ../Doc/c-api/buffer.rst:331 msgid "Request" msgstr "Solicitud" -#: ../Doc/c-api/buffer.rst:272 ../Doc/c-api/buffer.rst:296 -#: ../Doc/c-api/buffer.rst:321 +#: ../Doc/c-api/buffer.rst:282 ../Doc/c-api/buffer.rst:306 +#: ../Doc/c-api/buffer.rst:331 msgid "shape" msgstr "forma" -#: ../Doc/c-api/buffer.rst:272 ../Doc/c-api/buffer.rst:296 -#: ../Doc/c-api/buffer.rst:321 +#: ../Doc/c-api/buffer.rst:282 ../Doc/c-api/buffer.rst:306 +#: ../Doc/c-api/buffer.rst:331 msgid "strides" msgstr "*strides*" -#: ../Doc/c-api/buffer.rst:272 ../Doc/c-api/buffer.rst:296 -#: ../Doc/c-api/buffer.rst:321 +#: ../Doc/c-api/buffer.rst:282 ../Doc/c-api/buffer.rst:306 +#: ../Doc/c-api/buffer.rst:331 msgid "suboffsets" msgstr "*suboffsets*" -#: ../Doc/c-api/buffer.rst:274 ../Doc/c-api/buffer.rst:276 -#: ../Doc/c-api/buffer.rst:278 ../Doc/c-api/buffer.rst:298 -#: ../Doc/c-api/buffer.rst:300 ../Doc/c-api/buffer.rst:302 -#: ../Doc/c-api/buffer.rst:304 ../Doc/c-api/buffer.rst:323 -#: ../Doc/c-api/buffer.rst:325 ../Doc/c-api/buffer.rst:327 -#: ../Doc/c-api/buffer.rst:329 ../Doc/c-api/buffer.rst:331 -#: ../Doc/c-api/buffer.rst:333 ../Doc/c-api/buffer.rst:335 -#: ../Doc/c-api/buffer.rst:337 +#: ../Doc/c-api/buffer.rst:284 ../Doc/c-api/buffer.rst:286 +#: ../Doc/c-api/buffer.rst:288 ../Doc/c-api/buffer.rst:308 +#: ../Doc/c-api/buffer.rst:310 ../Doc/c-api/buffer.rst:312 +#: ../Doc/c-api/buffer.rst:314 ../Doc/c-api/buffer.rst:333 +#: ../Doc/c-api/buffer.rst:335 ../Doc/c-api/buffer.rst:337 +#: ../Doc/c-api/buffer.rst:339 ../Doc/c-api/buffer.rst:341 +#: ../Doc/c-api/buffer.rst:343 ../Doc/c-api/buffer.rst:345 +#: ../Doc/c-api/buffer.rst:347 msgid "yes" msgstr "sí" -#: ../Doc/c-api/buffer.rst:274 ../Doc/c-api/buffer.rst:323 -#: ../Doc/c-api/buffer.rst:325 +#: ../Doc/c-api/buffer.rst:284 ../Doc/c-api/buffer.rst:333 +#: ../Doc/c-api/buffer.rst:335 msgid "if needed" msgstr "si es necesario" -#: ../Doc/c-api/buffer.rst:276 ../Doc/c-api/buffer.rst:278 -#: ../Doc/c-api/buffer.rst:280 ../Doc/c-api/buffer.rst:298 -#: ../Doc/c-api/buffer.rst:300 ../Doc/c-api/buffer.rst:302 -#: ../Doc/c-api/buffer.rst:304 ../Doc/c-api/buffer.rst:327 -#: ../Doc/c-api/buffer.rst:329 ../Doc/c-api/buffer.rst:331 -#: ../Doc/c-api/buffer.rst:333 ../Doc/c-api/buffer.rst:335 -#: ../Doc/c-api/buffer.rst:337 +#: ../Doc/c-api/buffer.rst:286 ../Doc/c-api/buffer.rst:288 +#: ../Doc/c-api/buffer.rst:290 ../Doc/c-api/buffer.rst:308 +#: ../Doc/c-api/buffer.rst:310 ../Doc/c-api/buffer.rst:312 +#: ../Doc/c-api/buffer.rst:314 ../Doc/c-api/buffer.rst:337 +#: ../Doc/c-api/buffer.rst:339 ../Doc/c-api/buffer.rst:341 +#: ../Doc/c-api/buffer.rst:343 ../Doc/c-api/buffer.rst:345 +#: ../Doc/c-api/buffer.rst:347 msgid "NULL" msgstr "NULL" -#: ../Doc/c-api/buffer.rst:287 +#: ../Doc/c-api/buffer.rst:297 msgid "contiguity requests" msgstr "solicitudes de contigüidad" -#: ../Doc/c-api/buffer.rst:289 +#: ../Doc/c-api/buffer.rst:299 msgid "" "C or Fortran :term:`contiguity ` can be explicitly requested, " "with and without stride information. Without stride information, the buffer " @@ -606,32 +615,33 @@ msgstr "" "explícitamente, con y sin información de paso. Sin información de paso, el " "búfer debe ser C-contiguo." -#: ../Doc/c-api/buffer.rst:296 ../Doc/c-api/buffer.rst:321 +# NOTE: Sera arreglado en 3.12.1? +#: ../Doc/c-api/buffer.rst:306 ../Doc/c-api/buffer.rst:331 msgid "contig" msgstr "contig" -#: ../Doc/c-api/buffer.rst:298 ../Doc/c-api/buffer.rst:304 -#: ../Doc/c-api/buffer.rst:335 ../Doc/c-api/buffer.rst:337 +#: ../Doc/c-api/buffer.rst:308 ../Doc/c-api/buffer.rst:314 +#: ../Doc/c-api/buffer.rst:345 ../Doc/c-api/buffer.rst:347 msgid "C" msgstr "C" -#: ../Doc/c-api/buffer.rst:300 +#: ../Doc/c-api/buffer.rst:310 msgid "F" msgstr "F" -#: ../Doc/c-api/buffer.rst:302 +#: ../Doc/c-api/buffer.rst:312 msgid "C or F" msgstr "C o F" -#: ../Doc/c-api/buffer.rst:304 +#: ../Doc/c-api/buffer.rst:314 msgid ":c:macro:`PyBUF_ND`" msgstr ":c:macro:`PyBUF_ND`" -#: ../Doc/c-api/buffer.rst:309 +#: ../Doc/c-api/buffer.rst:319 msgid "compound requests" msgstr "solicitudes compuestas" -#: ../Doc/c-api/buffer.rst:311 +#: ../Doc/c-api/buffer.rst:321 msgid "" "All possible requests are fully defined by some combination of the flags in " "the previous section. For convenience, the buffer protocol provides " @@ -642,7 +652,7 @@ msgstr "" "protocolo de memoria intermedia proporciona combinaciones de uso frecuente " "como indicadores únicos." -#: ../Doc/c-api/buffer.rst:315 +#: ../Doc/c-api/buffer.rst:325 msgid "" "In the following table *U* stands for undefined contiguity. The consumer " "would have to call :c:func:`PyBuffer_IsContiguous` to determine contiguity." @@ -651,39 +661,39 @@ msgstr "" "tendría que llamar a :c:func:`PyBuffer_IsContiguous` para determinar la " "contigüidad." -#: ../Doc/c-api/buffer.rst:321 +#: ../Doc/c-api/buffer.rst:331 msgid "readonly" msgstr "sólo lectura" -#: ../Doc/c-api/buffer.rst:321 +#: ../Doc/c-api/buffer.rst:331 msgid "format" msgstr "formato" -#: ../Doc/c-api/buffer.rst:323 ../Doc/c-api/buffer.rst:325 -#: ../Doc/c-api/buffer.rst:327 ../Doc/c-api/buffer.rst:329 -#: ../Doc/c-api/buffer.rst:331 ../Doc/c-api/buffer.rst:333 +#: ../Doc/c-api/buffer.rst:333 ../Doc/c-api/buffer.rst:335 +#: ../Doc/c-api/buffer.rst:337 ../Doc/c-api/buffer.rst:339 +#: ../Doc/c-api/buffer.rst:341 ../Doc/c-api/buffer.rst:343 msgid "U" msgstr "U" -#: ../Doc/c-api/buffer.rst:323 ../Doc/c-api/buffer.rst:327 -#: ../Doc/c-api/buffer.rst:331 ../Doc/c-api/buffer.rst:335 +#: ../Doc/c-api/buffer.rst:333 ../Doc/c-api/buffer.rst:337 +#: ../Doc/c-api/buffer.rst:341 ../Doc/c-api/buffer.rst:345 msgid "0" msgstr "0" -#: ../Doc/c-api/buffer.rst:325 ../Doc/c-api/buffer.rst:329 -#: ../Doc/c-api/buffer.rst:333 ../Doc/c-api/buffer.rst:337 +#: ../Doc/c-api/buffer.rst:335 ../Doc/c-api/buffer.rst:339 +#: ../Doc/c-api/buffer.rst:343 ../Doc/c-api/buffer.rst:347 msgid "1 or 0" msgstr "1 o 0" -#: ../Doc/c-api/buffer.rst:342 +#: ../Doc/c-api/buffer.rst:352 msgid "Complex arrays" msgstr "Arreglos complejos" -#: ../Doc/c-api/buffer.rst:345 +#: ../Doc/c-api/buffer.rst:355 msgid "NumPy-style: shape and strides" msgstr "Estilo NumPy: forma y *strides*" -#: ../Doc/c-api/buffer.rst:347 +#: ../Doc/c-api/buffer.rst:357 msgid "" "The logical structure of NumPy-style arrays is defined by :c:member:" "`~Py_buffer.itemsize`, :c:member:`~Py_buffer.ndim`, :c:member:`~Py_buffer." @@ -693,7 +703,7 @@ msgstr "" "member:`~Py_buffer.itemsize`, :c:member:`~Py_buffer.ndim`, :c:member:" "`~Py_buffer.shape` y :c:member:`~Py_buffer.strides`." -#: ../Doc/c-api/buffer.rst:350 +#: ../Doc/c-api/buffer.rst:360 msgid "" "If ``ndim == 0``, the memory location pointed to by :c:member:`~Py_buffer." "buf` is interpreted as a scalar of size :c:member:`~Py_buffer.itemsize`. In " @@ -705,7 +715,7 @@ msgstr "" "itemsize`. En ese caso, tanto :c:member:`~Py_buffer.shape` como :c:member:" "`~Py_buffer.strides` son ``NULL``." -#: ../Doc/c-api/buffer.rst:354 +#: ../Doc/c-api/buffer.rst:364 msgid "" "If :c:member:`~Py_buffer.strides` is ``NULL``, the array is interpreted as a " "standard n-dimensional C-array. Otherwise, the consumer must access an n-" @@ -715,7 +725,7 @@ msgstr "" "un arreglo C n-dimensional estándar. De lo contrario, el consumidor debe " "acceder a un arreglo n-dimensional de la siguiente manera:" -#: ../Doc/c-api/buffer.rst:364 +#: ../Doc/c-api/buffer.rst:374 msgid "" "As noted above, :c:member:`~Py_buffer.buf` can point to any location within " "the actual memory block. An exporter can check the validity of a buffer with " @@ -725,11 +735,11 @@ msgstr "" "cualquier ubicación dentro del bloque de memoria real. Un exportador puede " "verificar la validez de un búfer con esta función:" -#: ../Doc/c-api/buffer.rst:398 +#: ../Doc/c-api/buffer.rst:408 msgid "PIL-style: shape, strides and suboffsets" msgstr "Estilo PIL: forma, *strides* y *suboffsets*" -#: ../Doc/c-api/buffer.rst:400 +#: ../Doc/c-api/buffer.rst:410 msgid "" "In addition to the regular items, PIL-style arrays can contain pointers that " "must be followed in order to get to the next element in a dimension. For " @@ -748,7 +758,7 @@ msgstr "" "`~Py_buffer.buf`, apuntando a dos matrices ``char x[2][3]`` que pueden " "ubicarse en cualquier lugar de la memoria." -#: ../Doc/c-api/buffer.rst:409 +#: ../Doc/c-api/buffer.rst:419 msgid "" "Here is a function that returns a pointer to the element in an N-D array " "pointed to by an N-dimensional index when there are both non-``NULL`` " @@ -758,11 +768,11 @@ msgstr "" "la que apunta un índice N-dimensional cuando hay *strides* y *suboffsets* no " "``NULL``:" -#: ../Doc/c-api/buffer.rst:428 +#: ../Doc/c-api/buffer.rst:438 msgid "Buffer-related functions" msgstr "Funciones relacionadas a búfer" -#: ../Doc/c-api/buffer.rst:432 +#: ../Doc/c-api/buffer.rst:442 msgid "" "Return ``1`` if *obj* supports the buffer interface otherwise ``0``. When " "``1`` is returned, it doesn't guarantee that :c:func:`PyObject_GetBuffer` " @@ -772,18 +782,19 @@ msgstr "" "cuando se retorna ``1``, no garantiza que :c:func:`PyObject_GetBuffer` tenga " "éxito. Esta función siempre finaliza con éxito." -#: ../Doc/c-api/buffer.rst:439 +#: ../Doc/c-api/buffer.rst:449 +#, fuzzy msgid "" "Send a request to *exporter* to fill in *view* as specified by *flags*. If " -"the exporter cannot provide a buffer of the exact type, it MUST raise :c:" -"data:`PyExc_BufferError`, set ``view->obj`` to ``NULL`` and return ``-1``." +"the exporter cannot provide a buffer of the exact type, it MUST raise :exc:" +"`BufferError`, set ``view->obj`` to ``NULL`` and return ``-1``." msgstr "" "Envía una solicitud al *exporter* para completar la *view* según lo " "especificado por *flags*. Si el exportador no puede proporcionar un búfer " "del tipo exacto, DEBE lanzar :c:data:`PyExc_BufferError`, establecer ``view-" ">obj`` en ``NULL`` y retornar ``-1``." -#: ../Doc/c-api/buffer.rst:444 +#: ../Doc/c-api/buffer.rst:454 msgid "" "On success, fill in *view*, set ``view->obj`` to a new reference to " "*exporter* and return 0. In the case of chained buffer providers that " @@ -796,7 +807,7 @@ msgstr "" "PUEDE referirse a este objeto en lugar de *exporter* (Ver :ref:`Estructuras " "de objetos de búfer `)." -#: ../Doc/c-api/buffer.rst:449 +#: ../Doc/c-api/buffer.rst:459 msgid "" "Successful calls to :c:func:`PyObject_GetBuffer` must be paired with calls " "to :c:func:`PyBuffer_Release`, similar to :c:func:`malloc` and :c:func:" @@ -808,9 +819,11 @@ msgstr "" "func:`free`. Por lo tanto, después de que el consumidor haya terminado con " "el búfer, :c:func:`PyBuffer_Release` debe llamarse exactamente una vez." -#: ../Doc/c-api/buffer.rst:457 +#: ../Doc/c-api/buffer.rst:467 +#, fuzzy msgid "" -"Release the buffer *view* and decrement the reference count for ``view-" +"Release the buffer *view* and release the :term:`strong reference` (i.e. " +"decrement the reference count) to the view's supporting object, ``view-" ">obj``. This function MUST be called when the buffer is no longer being " "used, otherwise reference leaks may occur." msgstr "" @@ -818,7 +831,7 @@ msgstr "" ">obj``. Esta función DEBE llamarse cuando el búfer ya no se utiliza, de lo " "contrario, pueden producirse fugas de referencia." -#: ../Doc/c-api/buffer.rst:461 +#: ../Doc/c-api/buffer.rst:472 msgid "" "It is an error to call this function on a buffer that was not obtained via :" "c:func:`PyObject_GetBuffer`." @@ -826,15 +839,16 @@ msgstr "" "Es un error llamar a esta función en un búfer que no se obtuvo a través de :" "c:func:`PyObject_GetBuffer`." -#: ../Doc/c-api/buffer.rst:467 +#: ../Doc/c-api/buffer.rst:478 +#, fuzzy msgid "" -"Return the implied :c:data:`~Py_buffer.itemsize` from :c:data:`~Py_buffer." -"format`. On error, raise an exception and return -1." +"Return the implied :c:member:`~Py_buffer.itemsize` from :c:member:" +"`~Py_buffer.format`. On error, raise an exception and return -1." msgstr "" "Retorna el :c:data:`~Py_buffer.itemsize` implícito de :c:data:`~Py_buffer." "format`. En caso de error, lanza una excepción y retorna -1." -#: ../Doc/c-api/buffer.rst:475 +#: ../Doc/c-api/buffer.rst:486 msgid "" "Return ``1`` if the memory defined by the *view* is C-style (*order* is " "``'C'``) or Fortran-style (*order* is ``'F'``) :term:`contiguous` or either " @@ -846,7 +860,7 @@ msgstr "" "cualquiera (*order* es ``'A'``). Retorna ``0`` de lo contrario. Esta función " "siempre finaliza con éxito." -#: ../Doc/c-api/buffer.rst:482 +#: ../Doc/c-api/buffer.rst:493 msgid "" "Get the memory area pointed to by the *indices* inside the given *view*. " "*indices* must point to an array of ``view->ndim`` indices." @@ -854,7 +868,7 @@ msgstr "" "Obtiene el área de memoria señalada por los *indices* dentro del *view* " "dado. *indices* deben apuntar a un arreglo de índices ``view->ndim``." -#: ../Doc/c-api/buffer.rst:488 +#: ../Doc/c-api/buffer.rst:499 msgid "" "Copy contiguous *len* bytes from *buf* to *view*. *fort* can be ``'C'`` or " "``'F'`` (for C-style or Fortran-style ordering). ``0`` is returned on " @@ -864,7 +878,7 @@ msgstr "" "``'F'`` (para pedidos al estilo C o al estilo Fortran). ``0`` se retorna en " "caso de éxito, ``-1`` en caso de error." -#: ../Doc/c-api/buffer.rst:495 +#: ../Doc/c-api/buffer.rst:506 msgid "" "Copy *len* bytes from *src* to its contiguous representation in *buf*. " "*order* can be ``'C'`` or ``'F'`` or ``'A'`` (for C-style or Fortran-style " @@ -875,11 +889,11 @@ msgstr "" "Fortran o cualquiera) ``0`` se retorna en caso de éxito, ``-1`` en caso de " "error." -#: ../Doc/c-api/buffer.rst:499 +#: ../Doc/c-api/buffer.rst:510 msgid "This function fails if *len* != *src->len*." msgstr "Esta función falla si *len* != *src->len*." -#: ../Doc/c-api/buffer.rst:504 +#: ../Doc/c-api/buffer.rst:515 msgid "" "Copy data from *src* to *dest* buffer. Can convert between C-style and or " "Fortran-style buffers." @@ -887,11 +901,11 @@ msgstr "" "Copiar datos del búfer *src* al *dest*. Puede convertir entre búferes de " "estilo C o Fortran." -#: ../Doc/c-api/buffer.rst:507 +#: ../Doc/c-api/buffer.rst:518 msgid "``0`` is returned on success, ``-1`` on error." msgstr "Se retorna ``0`` en caso de éxito, ``-1`` en caso de error." -#: ../Doc/c-api/buffer.rst:511 +#: ../Doc/c-api/buffer.rst:522 msgid "" "Fill the *strides* array with byte-strides of a :term:`contiguous` (C-style " "if *order* is ``'C'`` or Fortran-style if *order* is ``'F'``) array of the " @@ -901,7 +915,7 @@ msgstr "" "(estilo C si *order* es ``'C'`` o estilo Fortran si *order* es ``'F '`` ) " "arreglo de la forma dada con el número dado de bytes por elemento." -#: ../Doc/c-api/buffer.rst:518 +#: ../Doc/c-api/buffer.rst:529 msgid "" "Handle buffer requests for an exporter that wants to expose *buf* of size " "*len* with writability set according to *readonly*. *buf* is interpreted as " @@ -911,7 +925,7 @@ msgstr "" "de tamaño *len* con capacidad de escritura establecida de acuerdo con " "*readonly*. *buf* se interpreta como una secuencia de bytes sin signo." -#: ../Doc/c-api/buffer.rst:522 +#: ../Doc/c-api/buffer.rst:533 msgid "" "The *flags* argument indicates the request type. This function always fills " "in *view* as specified by flags, unless *buf* has been designated as read-" @@ -922,17 +936,18 @@ msgstr "" "designado como solo lectura y :c:macro:`PyBUF_WRITABLE` esté configurado en " "*flags*." -#: ../Doc/c-api/buffer.rst:526 +#: ../Doc/c-api/buffer.rst:537 +#, fuzzy msgid "" "On success, set ``view->obj`` to a new reference to *exporter* and return 0. " -"Otherwise, raise :c:data:`PyExc_BufferError`, set ``view->obj`` to ``NULL`` " -"and return ``-1``;" +"Otherwise, raise :exc:`BufferError`, set ``view->obj`` to ``NULL`` and " +"return ``-1``;" msgstr "" "Si tiene éxito, establece ``view->obj`` en una nueva referencia a *exporter* " "y retorna 0. De lo contrario, aumenta :c:data:`PyExc_BufferError`, establece " "``view->obj`` en ``NULL`` y retorna ``-1``;" -#: ../Doc/c-api/buffer.rst:530 +#: ../Doc/c-api/buffer.rst:541 msgid "" "If this function is used as part of a :ref:`getbufferproc `, " "*exporter* MUST be set to the exporting object and *flags* must be passed " @@ -942,3 +957,42 @@ msgstr "" "structs>`, *exporter* DEBE establecerse en el objeto exportador y *flags* " "deben pasarse sin modificaciones. De lo contrario, *exporter* DEBE ser " "``NULL``." + +#: ../Doc/c-api/buffer.rst:3 +#, fuzzy +msgid "buffer protocol" +msgstr "Protocolo búfer" + +#: ../Doc/c-api/buffer.rst:3 +#, fuzzy +msgid "buffer interface" +msgstr "Estructura de búfer" + +#: ../Doc/c-api/buffer.rst:3 +#, fuzzy +msgid "(see buffer protocol)" +msgstr "Protocolo búfer" + +#: ../Doc/c-api/buffer.rst:3 +#, fuzzy +msgid "buffer object" +msgstr "Protocolo búfer" + +#: ../Doc/c-api/buffer.rst:32 +#, fuzzy +msgid "PyBufferProcs" +msgstr "Protocolo búfer" + +#: ../Doc/c-api/buffer.rst:294 +#, fuzzy +msgid "contiguous" +msgstr "contig" + +#: ../Doc/c-api/buffer.rst:294 +#, fuzzy +msgid "C-contiguous" +msgstr "contig" + +#: ../Doc/c-api/buffer.rst:294 +msgid "Fortran contiguous" +msgstr "" diff --git a/c-api/bytearray.po b/c-api/bytearray.po index 2b691ba175..e11c6047ff 100644 --- a/c-api/bytearray.po +++ b/c-api/bytearray.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-05 12:32-0300\n" "Last-Translator: Sofía Denner \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/bytearray.rst:6 msgid "Byte Array Objects" @@ -126,3 +125,12 @@ msgstr "" msgid "Similar to :c:func:`PyByteArray_Size`, but without error checking." msgstr "" "Similar a :c:func:`PyByteArray_Size`, pero sin comprobación de errores." + +#: ../Doc/c-api/bytearray.rst:8 +msgid "object" +msgstr "" + +#: ../Doc/c-api/bytearray.rst:8 +#, fuzzy +msgid "bytearray" +msgstr "Objetos de arreglos de bytes (*bytearrays*)" diff --git a/c-api/bytes.po b/c-api/bytes.po index d45f911329..3082682af9 100644 --- a/c-api/bytes.po +++ b/c-api/bytes.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-01 11:48+0100\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/bytes.rst:6 msgid "Bytes Objects" @@ -99,164 +98,164 @@ msgstr "" "los caracteres de formato en la cadena de caracteres *format*. Se permiten " "los siguientes caracteres de formato:" -#: ../Doc/c-api/bytes.rst:68 +#: ../Doc/c-api/bytes.rst:65 msgid "Format Characters" msgstr "Caracteres de formato" -#: ../Doc/c-api/bytes.rst:68 +#: ../Doc/c-api/bytes.rst:65 msgid "Type" msgstr "Tipo" -#: ../Doc/c-api/bytes.rst:68 +#: ../Doc/c-api/bytes.rst:65 msgid "Comment" msgstr "Comentario" -#: ../Doc/c-api/bytes.rst:70 +#: ../Doc/c-api/bytes.rst:67 #, python-format -msgid ":attr:`%%`" -msgstr ":attr:`%%`" +msgid "``%%``" +msgstr "" -#: ../Doc/c-api/bytes.rst:70 +#: ../Doc/c-api/bytes.rst:67 msgid "*n/a*" msgstr "*n/a*" -#: ../Doc/c-api/bytes.rst:70 +#: ../Doc/c-api/bytes.rst:67 #, python-format msgid "The literal % character." msgstr "El carácter literal *%*." -#: ../Doc/c-api/bytes.rst:72 +#: ../Doc/c-api/bytes.rst:69 #, python-format -msgid ":attr:`%c`" -msgstr ":attr:`%c`" +msgid "``%c``" +msgstr "" -#: ../Doc/c-api/bytes.rst:72 ../Doc/c-api/bytes.rst:75 -#: ../Doc/c-api/bytes.rst:93 ../Doc/c-api/bytes.rst:96 +#: ../Doc/c-api/bytes.rst:69 ../Doc/c-api/bytes.rst:72 +#: ../Doc/c-api/bytes.rst:90 ../Doc/c-api/bytes.rst:93 msgid "int" msgstr "int" -#: ../Doc/c-api/bytes.rst:72 +#: ../Doc/c-api/bytes.rst:69 msgid "A single byte, represented as a C int." msgstr "Un solo byte, representado como un C int." -#: ../Doc/c-api/bytes.rst:75 +#: ../Doc/c-api/bytes.rst:72 #, python-format -msgid ":attr:`%d`" -msgstr ":attr:`%d`" +msgid "``%d``" +msgstr "" -#: ../Doc/c-api/bytes.rst:75 +#: ../Doc/c-api/bytes.rst:72 #, python-format msgid "Equivalent to ``printf(\"%d\")``. [1]_" msgstr "Equivalente a ``printf(\"%d\")``. [1]_" -#: ../Doc/c-api/bytes.rst:78 +#: ../Doc/c-api/bytes.rst:75 #, python-format -msgid ":attr:`%u`" -msgstr ":attr:`%u`" +msgid "``%u``" +msgstr "" -#: ../Doc/c-api/bytes.rst:78 +#: ../Doc/c-api/bytes.rst:75 msgid "unsigned int" msgstr "unsigned int" -#: ../Doc/c-api/bytes.rst:78 +#: ../Doc/c-api/bytes.rst:75 #, python-format msgid "Equivalent to ``printf(\"%u\")``. [1]_" msgstr "Equivalente a ``printf(\"%u\")``. [1]_" -#: ../Doc/c-api/bytes.rst:81 +#: ../Doc/c-api/bytes.rst:78 #, python-format -msgid ":attr:`%ld`" -msgstr ":attr:`%ld`" +msgid "``%ld``" +msgstr "" -#: ../Doc/c-api/bytes.rst:81 +#: ../Doc/c-api/bytes.rst:78 msgid "long" msgstr "long" -#: ../Doc/c-api/bytes.rst:81 +#: ../Doc/c-api/bytes.rst:78 #, python-format msgid "Equivalent to ``printf(\"%ld\")``. [1]_" msgstr "Equivalente a ``printf(\"%ld\")``. [1]_" -#: ../Doc/c-api/bytes.rst:84 +#: ../Doc/c-api/bytes.rst:81 #, python-format -msgid ":attr:`%lu`" -msgstr ":attr:`%lu`" +msgid "``%lu``" +msgstr "" -#: ../Doc/c-api/bytes.rst:84 +#: ../Doc/c-api/bytes.rst:81 msgid "unsigned long" msgstr "unsigned long" -#: ../Doc/c-api/bytes.rst:84 +#: ../Doc/c-api/bytes.rst:81 #, python-format msgid "Equivalent to ``printf(\"%lu\")``. [1]_" msgstr "Equivalente a ``printf(\"%lu\")``. [1]_" -#: ../Doc/c-api/bytes.rst:87 -msgid ":attr:`%zd`" -msgstr ":attr:`%zd`" +#: ../Doc/c-api/bytes.rst:84 +msgid "``%zd``" +msgstr "" -#: ../Doc/c-api/bytes.rst:87 +#: ../Doc/c-api/bytes.rst:84 msgid ":c:type:`\\ Py_ssize_t`" msgstr ":c:type:`\\ Py_ssize_t`" -#: ../Doc/c-api/bytes.rst:87 +#: ../Doc/c-api/bytes.rst:84 msgid "Equivalent to ``printf(\"%zd\")``. [1]_" msgstr "Equivalente a ``printf(\"%zd\")``. [1]_" -#: ../Doc/c-api/bytes.rst:90 -msgid ":attr:`%zu`" -msgstr ":attr:`%zu`" +#: ../Doc/c-api/bytes.rst:87 +msgid "``%zu``" +msgstr "" -#: ../Doc/c-api/bytes.rst:90 +#: ../Doc/c-api/bytes.rst:87 msgid "size_t" msgstr "size_t" -#: ../Doc/c-api/bytes.rst:90 +#: ../Doc/c-api/bytes.rst:87 msgid "Equivalent to ``printf(\"%zu\")``. [1]_" msgstr "Equivalente a ``printf(\"%zu\")``. [1]_" -#: ../Doc/c-api/bytes.rst:93 +#: ../Doc/c-api/bytes.rst:90 #, python-format -msgid ":attr:`%i`" -msgstr ":attr:`%i`" +msgid "``%i``" +msgstr "" -#: ../Doc/c-api/bytes.rst:93 +#: ../Doc/c-api/bytes.rst:90 #, python-format msgid "Equivalent to ``printf(\"%i\")``. [1]_" msgstr "Equivalente a ``printf(\"%i\")``. [1]_" -#: ../Doc/c-api/bytes.rst:96 +#: ../Doc/c-api/bytes.rst:93 #, python-format -msgid ":attr:`%x`" -msgstr ":attr:`%x`" +msgid "``%x``" +msgstr "" -#: ../Doc/c-api/bytes.rst:96 +#: ../Doc/c-api/bytes.rst:93 #, python-format msgid "Equivalent to ``printf(\"%x\")``. [1]_" msgstr "Equivalente a ``printf(\"%x\")``. [1]_" -#: ../Doc/c-api/bytes.rst:99 +#: ../Doc/c-api/bytes.rst:96 #, python-format -msgid ":attr:`%s`" -msgstr ":attr:`%s`" +msgid "``%s``" +msgstr "" -#: ../Doc/c-api/bytes.rst:99 +#: ../Doc/c-api/bytes.rst:96 msgid "const char\\*" msgstr "const char\\*" -#: ../Doc/c-api/bytes.rst:99 +#: ../Doc/c-api/bytes.rst:96 msgid "A null-terminated C character array." msgstr "Un arreglo de caracteres C terminados en nulo." -#: ../Doc/c-api/bytes.rst:102 -msgid ":attr:`%p`" -msgstr ":attr:`%p`" +#: ../Doc/c-api/bytes.rst:99 +msgid "``%p``" +msgstr "" -#: ../Doc/c-api/bytes.rst:102 +#: ../Doc/c-api/bytes.rst:99 msgid "const void\\*" msgstr "const void\\*" -#: ../Doc/c-api/bytes.rst:102 +#: ../Doc/c-api/bytes.rst:99 msgid "" "The hex representation of a C pointer. Mostly equivalent to " "``printf(\"%p\")`` except that it is guaranteed to start with the literal " @@ -266,7 +265,7 @@ msgstr "" "a ``printf(\"%p\")`` excepto que se garantiza que comience con el literal " "``0x``, independientemente de lo que produzca el ``printf`` de la plataforma." -#: ../Doc/c-api/bytes.rst:111 +#: ../Doc/c-api/bytes.rst:108 msgid "" "An unrecognized format character causes all the rest of the format string to " "be copied as-is to the result object, and any extra arguments discarded." @@ -275,7 +274,7 @@ msgstr "" "caracteres de formato se copie como está en el objeto de resultado y se " "descartan los argumentos adicionales." -#: ../Doc/c-api/bytes.rst:114 +#: ../Doc/c-api/bytes.rst:111 msgid "" "For integer specifiers (d, u, ld, lu, zd, zu, i, x): the 0-conversion flag " "has effect even when a precision is given." @@ -283,7 +282,7 @@ msgstr "" "Para especificadores de enteros *(d, u, ld, lu, zd, zu, i, x)*: el indicador " "de conversión 0 tiene efecto incluso cuando se proporciona una precisión." -#: ../Doc/c-api/bytes.rst:120 +#: ../Doc/c-api/bytes.rst:117 msgid "" "Identical to :c:func:`PyBytes_FromFormat` except that it takes exactly two " "arguments." @@ -291,7 +290,7 @@ msgstr "" "Idéntica a :c:func:`PyBytes_FromFormat` excepto que toma exactamente dos " "argumentos." -#: ../Doc/c-api/bytes.rst:126 +#: ../Doc/c-api/bytes.rst:123 msgid "" "Return the bytes representation of object *o* that implements the buffer " "protocol." @@ -299,16 +298,16 @@ msgstr "" "Retorna la representación en bytes del objeto *o* que implementa el " "protocolo de búfer." -#: ../Doc/c-api/bytes.rst:132 +#: ../Doc/c-api/bytes.rst:129 msgid "Return the length of the bytes in bytes object *o*." msgstr "Retorna la longitud de los bytes en el objeto bytes *o*." -#: ../Doc/c-api/bytes.rst:137 +#: ../Doc/c-api/bytes.rst:134 msgid "Similar to :c:func:`PyBytes_Size`, but without error checking." msgstr "" "Forma macro de :c:func:`PyBytes_Size` pero sin verificación de errores." -#: ../Doc/c-api/bytes.rst:142 +#: ../Doc/c-api/bytes.rst:139 msgid "" "Return a pointer to the contents of *o*. The pointer refers to the internal " "buffer of *o*, which consists of ``len(o) + 1`` bytes. The last byte in the " @@ -326,12 +325,12 @@ msgstr "" "desasignado. Si *o* no es un objeto de bytes en absoluto, :c:func:" "`PyBytes_AsString` retorna ``NULL`` y lanza un :exc:`TypeError`." -#: ../Doc/c-api/bytes.rst:154 +#: ../Doc/c-api/bytes.rst:151 msgid "Similar to :c:func:`PyBytes_AsString`, but without error checking." msgstr "" "Forma macro de :c:func:`PyBytes_AsString` pero sin verificación de errores." -#: ../Doc/c-api/bytes.rst:159 +#: ../Doc/c-api/bytes.rst:156 msgid "" "Return the null-terminated contents of the object *obj* through the output " "variables *buffer* and *length*." @@ -339,7 +338,7 @@ msgstr "" "Retorna los contenidos terminados en nulo del objeto *obj* a través de las " "variables de salida *buffer* y *length*." -#: ../Doc/c-api/bytes.rst:162 +#: ../Doc/c-api/bytes.rst:159 msgid "" "If *length* is ``NULL``, the bytes object may not contain embedded null " "bytes; if it does, the function returns ``-1`` and a :exc:`ValueError` is " @@ -349,7 +348,7 @@ msgstr "" "incrustados; en caso contrario, la función retorna ``-1`` y se lanza un :exc:" "`ValueError`." -#: ../Doc/c-api/bytes.rst:166 +#: ../Doc/c-api/bytes.rst:163 msgid "" "The buffer refers to an internal buffer of *obj*, which includes an " "additional null byte at the end (not counted in *length*). The data must " @@ -365,7 +364,7 @@ msgstr "" "no es un objeto bytes en absoluto, :c:func:`PyBytes_AsStringAndSize` retorna " "``-1`` y lanza :exc:`TypeError`." -#: ../Doc/c-api/bytes.rst:173 +#: ../Doc/c-api/bytes.rst:170 msgid "" "Previously, :exc:`TypeError` was raised when embedded null bytes were " "encountered in the bytes object." @@ -373,7 +372,7 @@ msgstr "" "Anteriormente, :exc:`TypeError` se lanzaba cuando se encontraban bytes nulos " "incrustados en el objeto bytes." -#: ../Doc/c-api/bytes.rst:180 +#: ../Doc/c-api/bytes.rst:177 msgid "" "Create a new bytes object in *\\*bytes* containing the contents of *newpart* " "appended to *bytes*; the caller will own the new reference. The reference " @@ -388,17 +387,18 @@ msgstr "" "descartando y el valor de *\\*bytes* se establecerá en ``NULL``; se " "establecerá la excepción apropiada." -#: ../Doc/c-api/bytes.rst:189 +#: ../Doc/c-api/bytes.rst:186 +#, fuzzy msgid "" "Create a new bytes object in *\\*bytes* containing the contents of *newpart* " -"appended to *bytes*. This version decrements the reference count of " -"*newpart*." +"appended to *bytes*. This version releases the :term:`strong reference` to " +"*newpart* (i.e. decrements its reference count)." msgstr "" "Crea un nuevo objeto de bytes en *\\*bytes* que contenga el contenido de " "*newpart* agregado a *bytes*. Esta versión disminuye el recuento de " "referencias de *newpart*." -#: ../Doc/c-api/bytes.rst:196 +#: ../Doc/c-api/bytes.rst:193 msgid "" "A way to resize a bytes object even though it is \"immutable\". Only use " "this to build up a brand new bytes object; don't use this if the bytes may " @@ -421,3 +421,48 @@ msgstr "" "*\\*bytes* puede diferir de su valor de entrada. Si la reasignación falla, " "el objeto de bytes original en *\\*bytes* se desasigna, *\\*bytes* se " "establece en ``NULL``, :exc:`MemoryError` se establece y se retorna ``-1`` ." + +#: ../Doc/c-api/bytes.rst:11 +#, fuzzy +msgid "object" +msgstr "Objetos bytes" + +#: ../Doc/c-api/bytes.rst:11 +msgid "bytes" +msgstr "" + +#~ msgid ":attr:`%%`" +#~ msgstr ":attr:`%%`" + +#~ msgid ":attr:`%c`" +#~ msgstr ":attr:`%c`" + +#~ msgid ":attr:`%d`" +#~ msgstr ":attr:`%d`" + +#~ msgid ":attr:`%u`" +#~ msgstr ":attr:`%u`" + +#~ msgid ":attr:`%ld`" +#~ msgstr ":attr:`%ld`" + +#~ msgid ":attr:`%lu`" +#~ msgstr ":attr:`%lu`" + +#~ msgid ":attr:`%zd`" +#~ msgstr ":attr:`%zd`" + +#~ msgid ":attr:`%zu`" +#~ msgstr ":attr:`%zu`" + +#~ msgid ":attr:`%i`" +#~ msgstr ":attr:`%i`" + +#~ msgid ":attr:`%x`" +#~ msgstr ":attr:`%x`" + +#~ msgid ":attr:`%s`" +#~ msgstr ":attr:`%s`" + +#~ msgid ":attr:`%p`" +#~ msgstr ":attr:`%p`" diff --git a/c-api/call.po b/c-api/call.po index da54c3a663..d401527dc0 100644 --- a/c-api/call.po +++ b/c-api/call.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python en Español 3.9\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-12-09 10:27+0800\n" "Last-Translator: Rodrigo Tobar \n" "Language: es\n" @@ -17,7 +17,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/call.rst:6 msgid "Call Protocol" @@ -113,7 +113,17 @@ msgstr "" "Una clase que admita vectorcall **debe** también implementar :c:member:" "`~PyTypeObject.tp_call` con la misma semántica." -#: ../Doc/c-api/call.rst:60 +#: ../Doc/c-api/call.rst:62 +msgid "" +"The :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` flag is now removed from a class " +"when the class's :py:meth:`~object.__call__` method is reassigned. (This " +"internally sets :c:member:`~PyTypeObject.tp_call` only, and thus may make it " +"behave differently than the vectorcall function.) In earlier Python " +"versions, vectorcall should only be used with :c:macro:`immutable " +"` or static types." +msgstr "" + +#: ../Doc/c-api/call.rst:69 msgid "" "A class should not implement vectorcall if that would be slower than " "*tp_call*. For example, if the callee needs to convert the arguments to an " @@ -125,9 +135,10 @@ msgstr "" "los argumentos a una tupla args y un dict kwargs de todos modos, entonces no " "tiene sentido implementar vectorcall." -#: ../Doc/c-api/call.rst:65 +#: ../Doc/c-api/call.rst:74 +#, fuzzy msgid "" -"Classes can implement the vectorcall protocol by enabling the :const:" +"Classes can implement the vectorcall protocol by enabling the :c:macro:" "`Py_TPFLAGS_HAVE_VECTORCALL` flag and setting :c:member:`~PyTypeObject." "tp_vectorcall_offset` to the offset inside the object structure where a " "*vectorcallfunc* appears. This is a pointer to a function with the following " @@ -139,18 +150,18 @@ msgstr "" "estructura del objeto donde aparece un *vectorcallfunc*. Este es un puntero " "a una función con la siguiente firma:" -#: ../Doc/c-api/call.rst:73 +#: ../Doc/c-api/call.rst:82 msgid "*callable* is the object being called." msgstr "*callable* es el objeto siendo invocado." -#: ../Doc/c-api/call.rst:75 +#: ../Doc/c-api/call.rst:84 msgid "" "*args* is a C array consisting of the positional arguments followed by the" msgstr "" "*args* es un arreglo en C que consta de los argumentos posicionales seguidos " "por el" -#: ../Doc/c-api/call.rst:75 +#: ../Doc/c-api/call.rst:84 msgid "" "values of the keyword arguments. This can be *NULL* if there are no " "arguments." @@ -158,25 +169,26 @@ msgstr "" "valores de los argumentos de la palabra clave. Puede ser *NULL* si no hay " "argumentos." -#: ../Doc/c-api/call.rst:79 +#: ../Doc/c-api/call.rst:88 msgid "*nargsf* is the number of positional arguments plus possibly the" msgstr "*nargsf* es el número de argumentos posicionales más posiblemente el" -#: ../Doc/c-api/call.rst:78 +#: ../Doc/c-api/call.rst:87 +#, fuzzy msgid "" -":const:`PY_VECTORCALL_ARGUMENTS_OFFSET` flag. To get the actual number of " +":c:macro:`PY_VECTORCALL_ARGUMENTS_OFFSET` flag. To get the actual number of " "positional arguments from *nargsf*, use :c:func:`PyVectorcall_NARGS`." msgstr "" "flag :const:`PY_VECTORCALL_ARGUMENTS_OFFSET`. Para obtener el número real de " "argumentos posicionales de *nargsf*, use :c:func:`PyVectorcall_NARGS`." -#: ../Doc/c-api/call.rst:85 +#: ../Doc/c-api/call.rst:94 msgid "*kwnames* is a tuple containing the names of the keyword arguments;" msgstr "" "*kwnames* es una tupla que contiene los nombres de los argumentos de la " "palabra clave;" -#: ../Doc/c-api/call.rst:82 +#: ../Doc/c-api/call.rst:91 msgid "" "in other words, the keys of the kwargs dict. These names must be strings " "(instances of ``str`` or a subclass) and they must be unique. If there are " @@ -186,7 +198,7 @@ msgstr "" "ser cadenas (instancias de ``str`` o una subclase) y deben ser únicos. Si no " "hay argumentos de palabras clave, entonces *kwnames* puede ser *NULL*." -#: ../Doc/c-api/call.rst:89 +#: ../Doc/c-api/call.rst:98 msgid "" "If this flag is set in a vectorcall *nargsf* argument, the callee is allowed " "to temporarily change ``args[-1]``. In other words, *args* points to " @@ -199,7 +211,7 @@ msgstr "" "El destinatario de la llamada debe restaurar el valor de ``args[-1]`` antes " "de regresar." -#: ../Doc/c-api/call.rst:94 +#: ../Doc/c-api/call.rst:103 msgid "" "For :c:func:`PyObject_VectorcallMethod`, this flag means instead that " "``args[0]`` may be changed." @@ -207,10 +219,11 @@ msgstr "" "Para :c:func:`PyObject_VectorcallMethod`, este flag significa en cambio que " "``args[0]`` puede cambiarse." -#: ../Doc/c-api/call.rst:97 +#: ../Doc/c-api/call.rst:106 +#, fuzzy msgid "" "Whenever they can do so cheaply (without additional allocation), callers are " -"encouraged to use :const:`PY_VECTORCALL_ARGUMENTS_OFFSET`. Doing so will " +"encouraged to use :c:macro:`PY_VECTORCALL_ARGUMENTS_OFFSET`. Doing so will " "allow callables such as bound methods to make their onward calls (which " "include a prepended *self* argument) very efficiently." msgstr "" @@ -220,7 +233,7 @@ msgstr "" "llaman, como los métodos enlazados, realicen sus llamadas posteriores (que " "incluyen un argumento *self* antepuesto) de manera muy eficiente." -#: ../Doc/c-api/call.rst:102 +#: ../Doc/c-api/call.rst:111 msgid "" "To call an object that implements vectorcall, use a :ref:`call API ` function as with any other callable. :c:func:`PyObject_Vectorcall` " @@ -230,7 +243,7 @@ msgstr "" "`call API ` como con cualquier otro invocable. :c:func:" "`PyObject_Vectorcall` normalmente será más eficiente." -#: ../Doc/c-api/call.rst:109 +#: ../Doc/c-api/call.rst:118 msgid "" "In CPython 3.8, the vectorcall API and related functions were available " "provisionally under names with a leading underscore: " @@ -250,11 +263,11 @@ msgstr "" "``_PyObject_FastCallDict``. Los nombres antiguos todavía se definen como " "alias de los nuevos nombres no subrayados." -#: ../Doc/c-api/call.rst:121 +#: ../Doc/c-api/call.rst:130 msgid "Recursion Control" msgstr "Control de recursión" -#: ../Doc/c-api/call.rst:123 +#: ../Doc/c-api/call.rst:132 msgid "" "When using *tp_call*, callees do not need to worry about :ref:`recursion " "`: CPython uses :c:func:`Py_EnterRecursiveCall` and :c:func:" @@ -264,7 +277,7 @@ msgstr "" "`recursividad `: CPython usa :c:func:`Py_EnterRecursiveCall` y :c:" "func:`Py_LeaveRecursiveCall` para llamadas realizadas usando *tp_call*." -#: ../Doc/c-api/call.rst:128 +#: ../Doc/c-api/call.rst:137 msgid "" "For efficiency, this is not the case for calls done using vectorcall: the " "callee should use *Py_EnterRecursiveCall* and *Py_LeaveRecursiveCall* if " @@ -274,11 +287,11 @@ msgstr "" "vectorcall: el destinatario de la llamada debe utilizar " "*Py_EnterRecursiveCall* y *Py_LeaveRecursiveCall* si es necesario." -#: ../Doc/c-api/call.rst:134 +#: ../Doc/c-api/call.rst:143 msgid "Vectorcall Support API" msgstr "API de soporte para vectorcall" -#: ../Doc/c-api/call.rst:138 +#: ../Doc/c-api/call.rst:147 msgid "" "Given a vectorcall *nargsf* argument, return the actual number of arguments. " "Currently equivalent to::" @@ -286,7 +299,7 @@ msgstr "" "Dado un argumento vectorcall *nargsf*, retorna el número real de argumentos. " "Actualmente equivalente a:" -#: ../Doc/c-api/call.rst:144 +#: ../Doc/c-api/call.rst:153 msgid "" "However, the function ``PyVectorcall_NARGS`` should be used to allow for " "future extensions." @@ -294,7 +307,7 @@ msgstr "" "Sin embargo, la función ``PyVectorcall_NARGS`` debe usarse para permitir " "futuras extensiones." -#: ../Doc/c-api/call.rst:151 +#: ../Doc/c-api/call.rst:160 msgid "" "If *op* does not support the vectorcall protocol (either because the type " "does not or because the specific instance does not), return *NULL*. " @@ -306,7 +319,7 @@ msgstr "" "contrario, retorna el puntero de la función vectorcall almacenado en *op*. " "Esta función nunca lanza una excepción." -#: ../Doc/c-api/call.rst:156 +#: ../Doc/c-api/call.rst:165 msgid "" "This is mostly useful to check whether or not *op* supports vectorcall, " "which can be done by checking ``PyVectorcall_Function(op) != NULL``." @@ -314,7 +327,7 @@ msgstr "" "Esto es principalmente útil para verificar si *op* admite vectorcall, lo " "cual se puede hacer marcando ``PyVectorcall_Function(op) != NULL``." -#: ../Doc/c-api/call.rst:163 +#: ../Doc/c-api/call.rst:172 msgid "" "Call *callable*'s :c:type:`vectorcallfunc` with positional and keyword " "arguments given in a tuple and dict, respectively." @@ -322,11 +335,12 @@ msgstr "" "Llama a la :c:type:`vectorcallfunc` de *callable* con argumentos " "posicionales y de palabras clave dados en una tupla y dict, respectivamente." -#: ../Doc/c-api/call.rst:166 +#: ../Doc/c-api/call.rst:175 +#, fuzzy msgid "" "This is a specialized function, intended to be put in the :c:member:" "`~PyTypeObject.tp_call` slot or be used in an implementation of ``tp_call``. " -"It does not check the :const:`Py_TPFLAGS_HAVE_VECTORCALL` flag and it does " +"It does not check the :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` flag and it does " "not fall back to ``tp_call``." msgstr "" "Esta es una función especializada, destinada a colocarse en el slot :c:" @@ -334,11 +348,11 @@ msgstr "" "``tp_call``. No comprueba el flag :const:`Py_TPFLAGS_HAVE_VECTORCALL` y no " "vuelve a ``tp_call``." -#: ../Doc/c-api/call.rst:177 +#: ../Doc/c-api/call.rst:186 msgid "Object Calling API" msgstr "API para invocar objetos" -#: ../Doc/c-api/call.rst:179 +#: ../Doc/c-api/call.rst:188 msgid "" "Various functions are available for calling a Python object. Each converts " "its arguments to a convention supported by the called object – either " @@ -350,7 +364,7 @@ msgstr "" "ya sea *tp_call* o vectorcall. Para realizar la menor conversión posible, " "elija la que mejor se adapte al formato de datos que tiene disponible." -#: ../Doc/c-api/call.rst:185 +#: ../Doc/c-api/call.rst:194 msgid "" "The following table summarizes the available functions; please see " "individual documentation for details." @@ -358,132 +372,132 @@ msgstr "" "La siguiente tabla resume las funciones disponibles; consulte la " "documentación individual para obtener más detalles." -#: ../Doc/c-api/call.rst:189 +#: ../Doc/c-api/call.rst:198 msgid "Function" msgstr "Función" -#: ../Doc/c-api/call.rst:189 +#: ../Doc/c-api/call.rst:198 msgid "callable" msgstr "invocable" -#: ../Doc/c-api/call.rst:189 +#: ../Doc/c-api/call.rst:198 msgid "args" msgstr "args" -#: ../Doc/c-api/call.rst:189 +#: ../Doc/c-api/call.rst:198 msgid "kwargs" msgstr "kwargs" -#: ../Doc/c-api/call.rst:191 +#: ../Doc/c-api/call.rst:200 msgid ":c:func:`PyObject_Call`" msgstr ":c:func:`PyObject_Call`" -#: ../Doc/c-api/call.rst:191 ../Doc/c-api/call.rst:193 -#: ../Doc/c-api/call.rst:195 ../Doc/c-api/call.rst:197 -#: ../Doc/c-api/call.rst:199 ../Doc/c-api/call.rst:203 -#: ../Doc/c-api/call.rst:211 ../Doc/c-api/call.rst:213 +#: ../Doc/c-api/call.rst:200 ../Doc/c-api/call.rst:202 +#: ../Doc/c-api/call.rst:204 ../Doc/c-api/call.rst:206 +#: ../Doc/c-api/call.rst:208 ../Doc/c-api/call.rst:212 +#: ../Doc/c-api/call.rst:220 ../Doc/c-api/call.rst:222 msgid "``PyObject *``" msgstr "``PyObject *``" -#: ../Doc/c-api/call.rst:191 +#: ../Doc/c-api/call.rst:200 msgid "tuple" msgstr "tupla" -#: ../Doc/c-api/call.rst:191 ../Doc/c-api/call.rst:213 +#: ../Doc/c-api/call.rst:200 ../Doc/c-api/call.rst:222 msgid "dict/``NULL``" msgstr "dict/``NULL``" -#: ../Doc/c-api/call.rst:193 +#: ../Doc/c-api/call.rst:202 msgid ":c:func:`PyObject_CallNoArgs`" msgstr ":c:func:`PyObject_CallNoArgs`" -#: ../Doc/c-api/call.rst:193 ../Doc/c-api/call.rst:195 -#: ../Doc/c-api/call.rst:197 ../Doc/c-api/call.rst:199 -#: ../Doc/c-api/call.rst:201 ../Doc/c-api/call.rst:203 -#: ../Doc/c-api/call.rst:205 ../Doc/c-api/call.rst:207 -#: ../Doc/c-api/call.rst:209 +#: ../Doc/c-api/call.rst:202 ../Doc/c-api/call.rst:204 +#: ../Doc/c-api/call.rst:206 ../Doc/c-api/call.rst:208 +#: ../Doc/c-api/call.rst:210 ../Doc/c-api/call.rst:212 +#: ../Doc/c-api/call.rst:214 ../Doc/c-api/call.rst:216 +#: ../Doc/c-api/call.rst:218 msgid "---" msgstr "---" -#: ../Doc/c-api/call.rst:195 +#: ../Doc/c-api/call.rst:204 msgid ":c:func:`PyObject_CallOneArg`" msgstr ":c:func:`PyObject_CallOneArg`" -#: ../Doc/c-api/call.rst:195 ../Doc/c-api/call.rst:209 +#: ../Doc/c-api/call.rst:204 ../Doc/c-api/call.rst:218 msgid "1 object" msgstr "1 objeto" -#: ../Doc/c-api/call.rst:197 +#: ../Doc/c-api/call.rst:206 msgid ":c:func:`PyObject_CallObject`" msgstr ":c:func:`PyObject_CallObject`" -#: ../Doc/c-api/call.rst:197 +#: ../Doc/c-api/call.rst:206 msgid "tuple/``NULL``" msgstr "tuple/``NULL``" -#: ../Doc/c-api/call.rst:199 +#: ../Doc/c-api/call.rst:208 msgid ":c:func:`PyObject_CallFunction`" msgstr ":c:func:`PyObject_CallFunction`" -#: ../Doc/c-api/call.rst:199 ../Doc/c-api/call.rst:201 +#: ../Doc/c-api/call.rst:208 ../Doc/c-api/call.rst:210 msgid "format" msgstr "formato" -#: ../Doc/c-api/call.rst:201 +#: ../Doc/c-api/call.rst:210 msgid ":c:func:`PyObject_CallMethod`" msgstr ":c:func:`PyObject_CallMethod`" -#: ../Doc/c-api/call.rst:201 +#: ../Doc/c-api/call.rst:210 msgid "obj + ``char*``" msgstr "obj + ``char*``" -#: ../Doc/c-api/call.rst:203 +#: ../Doc/c-api/call.rst:212 msgid ":c:func:`PyObject_CallFunctionObjArgs`" msgstr ":c:func:`PyObject_CallFunctionObjArgs`" -#: ../Doc/c-api/call.rst:203 ../Doc/c-api/call.rst:205 +#: ../Doc/c-api/call.rst:212 ../Doc/c-api/call.rst:214 msgid "variadic" msgstr "variadica" -#: ../Doc/c-api/call.rst:205 +#: ../Doc/c-api/call.rst:214 msgid ":c:func:`PyObject_CallMethodObjArgs`" msgstr ":c:func:`PyObject_CallMethodObjArgs`" -#: ../Doc/c-api/call.rst:205 ../Doc/c-api/call.rst:207 -#: ../Doc/c-api/call.rst:209 +#: ../Doc/c-api/call.rst:214 ../Doc/c-api/call.rst:216 +#: ../Doc/c-api/call.rst:218 msgid "obj + name" msgstr "obj + nombre" -#: ../Doc/c-api/call.rst:207 +#: ../Doc/c-api/call.rst:216 msgid ":c:func:`PyObject_CallMethodNoArgs`" msgstr ":c:func:`PyObject_CallMethodNoArgs`" -#: ../Doc/c-api/call.rst:209 +#: ../Doc/c-api/call.rst:218 msgid ":c:func:`PyObject_CallMethodOneArg`" msgstr ":c:func:`PyObject_CallMethodOneArg`" -#: ../Doc/c-api/call.rst:211 +#: ../Doc/c-api/call.rst:220 msgid ":c:func:`PyObject_Vectorcall`" msgstr ":c:func:`PyObject_Vectorcall`" -#: ../Doc/c-api/call.rst:211 ../Doc/c-api/call.rst:213 -#: ../Doc/c-api/call.rst:215 +#: ../Doc/c-api/call.rst:220 ../Doc/c-api/call.rst:222 +#: ../Doc/c-api/call.rst:224 msgid "vectorcall" msgstr "vectorcall" -#: ../Doc/c-api/call.rst:213 +#: ../Doc/c-api/call.rst:222 msgid ":c:func:`PyObject_VectorcallDict`" msgstr ":c:func:`PyObject_VectorcallDict`" -#: ../Doc/c-api/call.rst:215 +#: ../Doc/c-api/call.rst:224 msgid ":c:func:`PyObject_VectorcallMethod`" msgstr ":c:func:`PyObject_VectorcallMethod`" -#: ../Doc/c-api/call.rst:215 +#: ../Doc/c-api/call.rst:224 msgid "arg + name" msgstr "arg + nombre" -#: ../Doc/c-api/call.rst:221 +#: ../Doc/c-api/call.rst:230 msgid "" "Call a callable Python object *callable*, with arguments given by the tuple " "*args*, and named arguments given by the dictionary *kwargs*." @@ -491,7 +505,7 @@ msgstr "" "Llama a un objeto de Python invocable *callable*, con argumentos dados por " "la tupla *args*, y argumentos con nombre dados por el diccionario *kwargs*." -#: ../Doc/c-api/call.rst:224 +#: ../Doc/c-api/call.rst:233 msgid "" "*args* must not be *NULL*; use an empty tuple if no arguments are needed. If " "no named arguments are needed, *kwargs* can be *NULL*." @@ -500,12 +514,12 @@ msgstr "" "argumentos. Si no se necesitan argumentos con nombre, *kwargs* puede ser " "*NULL*." -#: ../Doc/c-api/call.rst:227 ../Doc/c-api/call.rst:239 -#: ../Doc/c-api/call.rst:250 ../Doc/c-api/call.rst:261 -#: ../Doc/c-api/call.rst:273 ../Doc/c-api/call.rst:293 -#: ../Doc/c-api/call.rst:312 ../Doc/c-api/call.rst:326 -#: ../Doc/c-api/call.rst:335 ../Doc/c-api/call.rst:347 -#: ../Doc/c-api/call.rst:360 ../Doc/c-api/call.rst:394 +#: ../Doc/c-api/call.rst:236 ../Doc/c-api/call.rst:248 +#: ../Doc/c-api/call.rst:259 ../Doc/c-api/call.rst:270 +#: ../Doc/c-api/call.rst:282 ../Doc/c-api/call.rst:302 +#: ../Doc/c-api/call.rst:321 ../Doc/c-api/call.rst:335 +#: ../Doc/c-api/call.rst:344 ../Doc/c-api/call.rst:356 +#: ../Doc/c-api/call.rst:369 ../Doc/c-api/call.rst:403 msgid "" "Return the result of the call on success, or raise an exception and return " "*NULL* on failure." @@ -513,7 +527,7 @@ msgstr "" "Retorna el resultado de la llamada en caso de éxito o lanza una excepción y " "retorna *NULL* en caso de error." -#: ../Doc/c-api/call.rst:230 +#: ../Doc/c-api/call.rst:239 msgid "" "This is the equivalent of the Python expression: ``callable(*args, " "**kwargs)``." @@ -521,7 +535,7 @@ msgstr "" "Este es el equivalente de la expresión de Python: ``callable(*args, " "**kwargs)``." -#: ../Doc/c-api/call.rst:236 +#: ../Doc/c-api/call.rst:245 msgid "" "Call a callable Python object *callable* without any arguments. It is the " "most efficient way to call a callable Python object without any argument." @@ -530,7 +544,7 @@ msgstr "" "forma más eficiente de llamar a un objeto Python invocable sin ningún " "argumento." -#: ../Doc/c-api/call.rst:247 +#: ../Doc/c-api/call.rst:256 msgid "" "Call a callable Python object *callable* with exactly 1 positional argument " "*arg* and no keyword arguments." @@ -538,7 +552,7 @@ msgstr "" "Llama a un objeto de Python invocable *callable* con exactamente 1 argumento " "posicional *arg* y sin argumentos de palabra clave." -#: ../Doc/c-api/call.rst:258 +#: ../Doc/c-api/call.rst:267 msgid "" "Call a callable Python object *callable*, with arguments given by the tuple " "*args*. If no arguments are needed, then *args* can be *NULL*." @@ -547,11 +561,11 @@ msgstr "" "la tupla *args*. Si no se necesitan argumentos, entonces *args* puede ser " "*NULL*." -#: ../Doc/c-api/call.rst:264 ../Doc/c-api/call.rst:276 +#: ../Doc/c-api/call.rst:273 ../Doc/c-api/call.rst:285 msgid "This is the equivalent of the Python expression: ``callable(*args)``." msgstr "Este es el equivalente de la expresión de Python: ``callable(*args)``." -#: ../Doc/c-api/call.rst:269 +#: ../Doc/c-api/call.rst:278 msgid "" "Call a callable Python object *callable*, with a variable number of C " "arguments. The C arguments are described using a :c:func:`Py_BuildValue` " @@ -563,7 +577,7 @@ msgstr "" "caracteres de formato de estilo :c:func:`Py_BuildValue`. El formato puede " "ser *NULL*, lo que indica que no se proporcionan argumentos." -#: ../Doc/c-api/call.rst:278 +#: ../Doc/c-api/call.rst:287 #, fuzzy msgid "" "Note that if you only pass :c:expr:`PyObject *` args, :c:func:" @@ -572,11 +586,11 @@ msgstr "" "Tenga en cuenta que si solo pasa :c:type:`PyObject *` args, :c:func:" "`PyObject_CallFunctionObjArgs` es una alternativa más rápida." -#: ../Doc/c-api/call.rst:281 +#: ../Doc/c-api/call.rst:290 msgid "The type of *format* was changed from ``char *``." msgstr "El tipo de *format* se cambió desde ``char *``." -#: ../Doc/c-api/call.rst:287 +#: ../Doc/c-api/call.rst:296 msgid "" "Call the method named *name* of object *obj* with a variable number of C " "arguments. The C arguments are described by a :c:func:`Py_BuildValue` " @@ -586,12 +600,12 @@ msgstr "" "argumentos en C. Los argumentos de C se describen mediante una cadena de " "formato :c:func:`Py_BuildValue` que debería producir una tupla." -#: ../Doc/c-api/call.rst:291 +#: ../Doc/c-api/call.rst:300 msgid "The format can be *NULL*, indicating that no arguments are provided." msgstr "" "El formato puede ser *NULL*, lo que indica que no se proporcionan argumentos." -#: ../Doc/c-api/call.rst:296 +#: ../Doc/c-api/call.rst:305 msgid "" "This is the equivalent of the Python expression: ``obj.name(arg1, " "arg2, ...)``." @@ -599,7 +613,7 @@ msgstr "" "Este es el equivalente de la expresión de Python: ``obj.name(arg1, " "arg2, ...)``." -#: ../Doc/c-api/call.rst:299 +#: ../Doc/c-api/call.rst:308 #, fuzzy msgid "" "Note that if you only pass :c:expr:`PyObject *` args, :c:func:" @@ -608,11 +622,11 @@ msgstr "" "Tenga en cuenta que si solo pasa :c:type:`PyObject *` args, :c:func:" "`PyObject_CallMethodObjArgs` es una alternativa más rápida." -#: ../Doc/c-api/call.rst:302 +#: ../Doc/c-api/call.rst:311 msgid "The types of *name* and *format* were changed from ``char *``." msgstr "Los tipos de *name* y *format* se cambiaron desde ``char *``." -#: ../Doc/c-api/call.rst:308 +#: ../Doc/c-api/call.rst:317 #, fuzzy msgid "" "Call a callable Python object *callable*, with a variable number of :c:expr:" @@ -623,7 +637,7 @@ msgstr "" "argumentos :c:type:`PyObject *`. Los argumentos se proporcionan como un " "número variable de parámetros seguidos de *NULL*." -#: ../Doc/c-api/call.rst:315 +#: ../Doc/c-api/call.rst:324 msgid "" "This is the equivalent of the Python expression: ``callable(arg1, " "arg2, ...)``." @@ -631,7 +645,7 @@ msgstr "" "Este es el equivalente de la expresión de Python: ``callable(arg1, " "arg2, ...)``." -#: ../Doc/c-api/call.rst:321 +#: ../Doc/c-api/call.rst:330 #, fuzzy msgid "" "Call a method of the Python object *obj*, where the name of the method is " @@ -645,7 +659,7 @@ msgstr "" "argumentos se proporcionan como un número variable de parámetros seguidos de " "*NULL*." -#: ../Doc/c-api/call.rst:332 +#: ../Doc/c-api/call.rst:341 msgid "" "Call a method of the Python object *obj* without arguments, where the name " "of the method is given as a Python string object in *name*." @@ -653,7 +667,7 @@ msgstr "" "Llama a un método del objeto de Python *obj* sin argumentos, donde el nombre " "del método se da como un objeto de cadena de caracteres de Python en *name*." -#: ../Doc/c-api/call.rst:343 +#: ../Doc/c-api/call.rst:352 msgid "" "Call a method of the Python object *obj* with a single positional argument " "*arg*, where the name of the method is given as a Python string object in " @@ -663,7 +677,7 @@ msgstr "" "posicional *arg*, donde el nombre del método se proporciona como un objeto " "de cadena de caracteres de Python en *name*." -#: ../Doc/c-api/call.rst:355 +#: ../Doc/c-api/call.rst:364 msgid "" "Call a callable Python object *callable*. The arguments are the same as for :" "c:type:`vectorcallfunc`. If *callable* supports vectorcall_, this directly " @@ -673,7 +687,7 @@ msgstr "" "mismos que para :c:type:`vectorcallfunc`. Si *callable* admite vectorcall_, " "esto llama directamente a la función vectorcall almacenada en *callable*." -#: ../Doc/c-api/call.rst:367 +#: ../Doc/c-api/call.rst:376 msgid "" "Call *callable* with positional arguments passed exactly as in the " "vectorcall_ protocol, but with keyword arguments passed as a dictionary " @@ -684,7 +698,7 @@ msgstr "" "un diccionario *kwdict*. El arreglo *args* contiene solo los argumentos " "posicionales." -#: ../Doc/c-api/call.rst:371 +#: ../Doc/c-api/call.rst:380 msgid "" "Regardless of which protocol is used internally, a conversion of arguments " "needs to be done. Therefore, this function should only be used if the caller " @@ -697,14 +711,15 @@ msgstr "" "los argumentos de palabras clave, pero no una tupla para los argumentos " "posicionales." -#: ../Doc/c-api/call.rst:381 +#: ../Doc/c-api/call.rst:390 +#, fuzzy msgid "" "Call a method using the vectorcall calling convention. The name of the " "method is given as a Python string *name*. The object whose method is called " "is *args[0]*, and the *args* array starting at *args[1]* represents the " "arguments of the call. There must be at least one positional argument. " -"*nargsf* is the number of positional arguments including *args[0]*, plus :" -"const:`PY_VECTORCALL_ARGUMENTS_OFFSET` if the value of ``args[0]`` may " +"*nargsf* is the number of positional arguments including *args[0]*, plus :c:" +"macro:`PY_VECTORCALL_ARGUMENTS_OFFSET` if the value of ``args[0]`` may " "temporarily be changed. Keyword arguments can be passed just like in :c:func:" "`PyObject_Vectorcall`." msgstr "" @@ -717,20 +732,21 @@ msgstr "" "``args[0]`` puede cambiarse temporalmente. Los argumentos de palabras clave " "se pueden pasar como en :c:func:`PyObject_Vectorcall`." -#: ../Doc/c-api/call.rst:390 +#: ../Doc/c-api/call.rst:399 +#, fuzzy msgid "" -"If the object has the :const:`Py_TPFLAGS_METHOD_DESCRIPTOR` feature, this " +"If the object has the :c:macro:`Py_TPFLAGS_METHOD_DESCRIPTOR` feature, this " "will call the unbound method object with the full *args* vector as arguments." msgstr "" "Si el objeto tiene la característica :const:`Py_TPFLAGS_METHOD_DESCRIPTOR`, " "esto llamará al objeto de método independiente con el vector *args* completo " "como argumentos." -#: ../Doc/c-api/call.rst:401 +#: ../Doc/c-api/call.rst:410 msgid "Call Support API" msgstr "API de soporte de llamadas" -#: ../Doc/c-api/call.rst:405 +#: ../Doc/c-api/call.rst:414 msgid "" "Determine if the object *o* is callable. Return ``1`` if the object is " "callable and ``0`` otherwise. This function always succeeds." diff --git a/c-api/capsule.po b/c-api/capsule.po index a045f05bda..9641ec70ca 100644 --- a/c-api/capsule.po +++ b/c-api/capsule.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-30 16:51-0300\n" "Last-Translator: Sofía Denner \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/capsule.rst:6 msgid "Capsules" @@ -120,10 +119,11 @@ msgstr "" "una excepción y retorna ``NULL``." #: ../Doc/c-api/capsule.rst:65 +#, fuzzy msgid "" "The *name* parameter must compare exactly to the name stored in the capsule. " "If the name stored in the capsule is ``NULL``, the *name* passed in must " -"also be ``NULL``. Python uses the C function :c:func:`strcmp` to compare " +"also be ``NULL``. Python uses the C function :c:func:`!strcmp` to compare " "capsule names." msgstr "" "El parámetro *name* debe compararse exactamente con el nombre almacenado en " @@ -224,10 +224,11 @@ msgstr "" "comparan los nombres de las cápsulas)." #: ../Doc/c-api/capsule.rst:123 +#, fuzzy msgid "" "In other words, if :c:func:`PyCapsule_IsValid` returns a true value, calls " -"to any of the accessors (any function starting with :c:func:`PyCapsule_Get`) " -"are guaranteed to succeed." +"to any of the accessors (any function starting with ``PyCapsule_Get``) are " +"guaranteed to succeed." msgstr "" "En otras palabras, si :c:func:`PyCapsule_IsValid` retorna un valor " "verdadero, las llamadas a cualquiera de las funciones de acceso (cualquier " @@ -274,3 +275,12 @@ msgid "" msgstr "" "Establece el puntero vacío dentro de *capsule* a *pointer*. El puntero puede " "no ser ``NULL``." + +#: ../Doc/c-api/capsule.rst:8 +msgid "object" +msgstr "" + +#: ../Doc/c-api/capsule.rst:8 +#, fuzzy +msgid "Capsule" +msgstr "Cápsulas" diff --git a/c-api/code.po b/c-api/code.po index 8cb4ae75c1..57d362ef9a 100644 --- a/c-api/code.po +++ b/c-api/code.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-30 17:20-0300\n" "Last-Translator: Sofía Denner \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/code.rst:8 msgid "Code Objects" @@ -67,12 +66,21 @@ msgstr "Retorna el número de variables libres en *co*." #: ../Doc/c-api/code.rst:38 msgid "" "Return a new code object. If you need a dummy code object to create a " -"frame, use :c:func:`PyCode_NewEmpty` instead. Calling :c:func:`PyCode_New` " -"directly will bind you to a precise Python version since the definition of " -"the bytecode changes often. The many arguments of this function are inter-" -"dependent in complex ways, meaning that subtle changes to values are likely " -"to result in incorrect execution or VM crashes. Use this function only with " -"extreme care." +"frame, use :c:func:`PyCode_NewEmpty` instead." +msgstr "" + +#: ../Doc/c-api/code.rst:41 +msgid "" +"Since the definition of the bytecode changes often, calling :c:func:" +"`PyUnstable_Code_New` directly can bind you to a precise Python version." +msgstr "" + +#: ../Doc/c-api/code.rst:44 +#, fuzzy +msgid "" +"The many arguments of this function are inter-dependent in complex ways, " +"meaning that subtle changes to values are likely to result in incorrect " +"execution or VM crashes. Use this function only with extreme care." msgstr "" "Retorna un nuevo objeto de código. Si se necesita un objeto de código " "ficticio para crear un marco (*frame*), usar :c:func:`PyCode_NewEmpty` en su " @@ -83,21 +91,44 @@ msgstr "" "estos valores probablemente resulten en ejecuciones incorrectas o fallas en " "la VM." -#: ../Doc/c-api/code.rst:45 ../Doc/c-api/code.rst:55 -msgid "Added ``exceptiontable`` parameter." +#: ../Doc/c-api/code.rst:48 +#, fuzzy +msgid "Added ``qualname`` and ``exceptiontable`` parameters." msgstr "Se agregó el parámetro ``exceptiontable``." -#: ../Doc/c-api/code.rst:50 +#: ../Doc/c-api/code.rst:55 +msgid "" +"Renamed from ``PyCode_New`` as part of :ref:`unstable-c-api`. The old name " +"is deprecated, but will remain available until the signature changes again." +msgstr "" + +#: ../Doc/c-api/code.rst:61 +#, fuzzy msgid "" -"Similar to :c:func:`PyCode_New`, but with an extra \"posonlyargcount\" for " -"positional-only arguments. The same caveats that apply to ``PyCode_New`` " -"also apply to this function." +"Similar to :c:func:`PyUnstable_Code_New`, but with an extra " +"\"posonlyargcount\" for positional-only arguments. The same caveats that " +"apply to ``PyUnstable_Code_New`` also apply to this function." msgstr "" "Similar a :c:func:`PyCode_New`, pero con un \"*posonlyargcount*\" adicional " "para argumentos solo posicionales. Las mismas advertencias que aplican a " "``PyCode_New`` también aplican a esta función." -#: ../Doc/c-api/code.rst:60 +#: ../Doc/c-api/code.rst:66 +msgid "as ``PyCode_NewWithPosOnlyArgs``" +msgstr "" + +#: ../Doc/c-api/code.rst:68 +#, fuzzy +msgid "Added ``qualname`` and ``exceptiontable`` parameters." +msgstr "Se agregó el parámetro ``exceptiontable``." + +#: ../Doc/c-api/code.rst:73 +msgid "" +"Renamed to ``PyUnstable_Code_NewWithPosOnlyArgs``. The old name is " +"deprecated, but will remain available until the signature changes again." +msgstr "" + +#: ../Doc/c-api/code.rst:79 msgid "" "Return a new empty code object with the specified filename, function name, " "and first line number. The resulting code object will raise an ``Exception`` " @@ -107,7 +138,7 @@ msgstr "" "especificado, el nombre de la función y el número de la primera línea. Si el " "objeto código resultante es ejecutado, lanzará una ``Exception``." -#: ../Doc/c-api/code.rst:66 +#: ../Doc/c-api/code.rst:85 msgid "" "Return the line number of the instruction that occurs on or before " "``byte_offset`` and ends after it. If you just need the line number of a " @@ -117,7 +148,7 @@ msgstr "" "``byte_offset`` y finaliza después. Si solo necesita el número de línea de " "un marco, use :c:func:`PyFrame_GetLineNumber` en su lugar." -#: ../Doc/c-api/code.rst:69 +#: ../Doc/c-api/code.rst:88 msgid "" "For efficiently iterating over the line numbers in a code object, use `the " "API described in PEP 626 `_." -#: ../Doc/c-api/code.rst:74 +#: ../Doc/c-api/code.rst:93 msgid "" "Sets the passed ``int`` pointers to the source code line and column numbers " "for the instruction at ``byte_offset``. Sets the value to ``0`` when " @@ -138,11 +169,11 @@ msgstr "" "en ``0`` cuando la información no está disponible para algún elemento en " "particular." -#: ../Doc/c-api/code.rst:78 +#: ../Doc/c-api/code.rst:97 msgid "Returns ``1`` if the function succeeds and 0 otherwise." msgstr "Retorna ``1`` si la función fue exitosa y ``0`` de lo contrario." -#: ../Doc/c-api/code.rst:82 +#: ../Doc/c-api/code.rst:103 msgid "" "Equivalent to the Python code ``getattr(co, 'co_code')``. Returns a strong " "reference to a :c:type:`PyBytesObject` representing the bytecode in a code " @@ -153,7 +184,7 @@ msgstr "" "un objecto código. En caso de error se retorna ``NULL`` y se lanza una " "excepción." -#: ../Doc/c-api/code.rst:87 +#: ../Doc/c-api/code.rst:108 msgid "" "This ``PyBytesObject`` may be created on-demand by the interpreter and does " "not necessarily represent the bytecode actually executed by CPython. The " @@ -164,7 +195,7 @@ msgstr "" "CPython. Los casos de uso principales para esta función son depuradores y " "perfiladores." -#: ../Doc/c-api/code.rst:95 +#: ../Doc/c-api/code.rst:116 msgid "" "Equivalent to the Python code ``getattr(co, 'co_varnames')``. Returns a new " "reference to a :c:type:`PyTupleObject` containing the names of the local " @@ -175,7 +206,7 @@ msgstr "" "las variables locales. En caso de error, retorna ``NULL`` y lanza una " "excepción." -#: ../Doc/c-api/code.rst:104 +#: ../Doc/c-api/code.rst:125 msgid "" "Equivalent to the Python code ``getattr(co, 'co_cellvars')``. Returns a new " "reference to a :c:type:`PyTupleObject` containing the names of the local " @@ -187,7 +218,7 @@ msgstr "" "las variables locales referenciadas por funciones anidadas. En caso de " "error, retorna ``NULL`` y lanza una excepción." -#: ../Doc/c-api/code.rst:113 +#: ../Doc/c-api/code.rst:134 msgid "" "Equivalent to the Python code ``getattr(co, 'co_freevars')``. Returns a new " "reference to a :c:type:`PyTupleObject` containing the names of the free " @@ -197,3 +228,189 @@ msgstr "" "nueva referencia a un :c:type:`PyTupleObject` que contiene los nombres de " "las variables libres. En caso de error, retorna ``NULL`` y lanza una " "excepción." + +#: ../Doc/c-api/code.rst:142 +msgid "" +"Register *callback* as a code object watcher for the current interpreter. " +"Return an ID which may be passed to :c:func:`PyCode_ClearWatcher`. In case " +"of error (e.g. no more watcher IDs available), return ``-1`` and set an " +"exception." +msgstr "" + +#: ../Doc/c-api/code.rst:151 +msgid "" +"Clear watcher identified by *watcher_id* previously returned from :c:func:" +"`PyCode_AddWatcher` for the current interpreter. Return ``0`` on success, or " +"``-1`` and set an exception on error (e.g. if the given *watcher_id* was " +"never registered.)" +msgstr "" + +#: ../Doc/c-api/code.rst:160 +msgid "" +"Enumeration of possible code object watcher events: - " +"``PY_CODE_EVENT_CREATE`` - ``PY_CODE_EVENT_DESTROY``" +msgstr "" + +#: ../Doc/c-api/code.rst:168 +msgid "Type of a code object watcher callback function." +msgstr "" + +#: ../Doc/c-api/code.rst:170 +msgid "" +"If *event* is ``PY_CODE_EVENT_CREATE``, then the callback is invoked after " +"`co` has been fully initialized. Otherwise, the callback is invoked before " +"the destruction of *co* takes place, so the prior state of *co* can be " +"inspected." +msgstr "" + +#: ../Doc/c-api/code.rst:175 +msgid "" +"If *event* is ``PY_CODE_EVENT_DESTROY``, taking a reference in the callback " +"to the about-to-be-destroyed code object will resurrect it and prevent it " +"from being freed at this time. When the resurrected object is destroyed " +"later, any watcher callbacks active at that time will be called again." +msgstr "" + +#: ../Doc/c-api/code.rst:180 +msgid "" +"Users of this API should not rely on internal runtime implementation " +"details. Such details may include, but are not limited to, the exact order " +"and timing of creation and destruction of code objects. While changes in " +"these details may result in differences observable by watchers (including " +"whether a callback is invoked or not), it does not change the semantics of " +"the Python code being executed." +msgstr "" + +#: ../Doc/c-api/code.rst:187 +msgid "" +"If the callback sets an exception, it must return ``-1``; this exception " +"will be printed as an unraisable exception using :c:func:" +"`PyErr_WriteUnraisable`. Otherwise it should return ``0``." +msgstr "" + +#: ../Doc/c-api/code.rst:191 +msgid "" +"There may already be a pending exception set on entry to the callback. In " +"this case, the callback should return ``0`` with the same exception still " +"set. This means the callback may not call any other API that can set an " +"exception unless it saves and clears the exception state first, and restores " +"it before returning." +msgstr "" + +#: ../Doc/c-api/code.rst:201 +msgid "Extra information" +msgstr "" + +#: ../Doc/c-api/code.rst:203 +msgid "" +"To support low-level extensions to frame evaluation, such as external just-" +"in-time compilers, it is possible to attach arbitrary extra data to code " +"objects." +msgstr "" + +#: ../Doc/c-api/code.rst:207 +msgid "" +"These functions are part of the unstable C API tier: this functionality is a " +"CPython implementation detail, and the API may change without deprecation " +"warnings." +msgstr "" + +#: ../Doc/c-api/code.rst:213 +msgid "Return a new an opaque index value used to adding data to code objects." +msgstr "" + +#: ../Doc/c-api/code.rst:215 +msgid "" +"You generally call this function once (per interpreter) and use the result " +"with ``PyCode_GetExtra`` and ``PyCode_SetExtra`` to manipulate data on " +"individual code objects." +msgstr "" + +#: ../Doc/c-api/code.rst:219 +msgid "" +"If *free* is not ``NULL``: when a code object is deallocated, *free* will be " +"called on non-``NULL`` data stored under the new index. Use :c:func:" +"`Py_DecRef` when storing :c:type:`PyObject`." +msgstr "" + +#: ../Doc/c-api/code.rst:225 +msgid "as ``_PyEval_RequestCodeExtraIndex``" +msgstr "" + +#: ../Doc/c-api/code.rst:229 +msgid "" +"Renamed to ``PyUnstable_Eval_RequestCodeExtraIndex``. The old private name " +"is deprecated, but will be available until the API changes." +msgstr "" + +#: ../Doc/c-api/code.rst:235 +msgid "" +"Set *extra* to the extra data stored under the given index. Return 0 on " +"success. Set an exception and return -1 on failure." +msgstr "" + +#: ../Doc/c-api/code.rst:238 +msgid "" +"If no data was set under the index, set *extra* to ``NULL`` and return 0 " +"without setting an exception." +msgstr "" + +#: ../Doc/c-api/code.rst:243 +msgid "as ``_PyCode_GetExtra``" +msgstr "" + +#: ../Doc/c-api/code.rst:247 +msgid "" +"Renamed to ``PyUnstable_Code_GetExtra``. The old private name is deprecated, " +"but will be available until the API changes." +msgstr "" + +#: ../Doc/c-api/code.rst:253 +msgid "" +"Set the extra data stored under the given index to *extra*. Return 0 on " +"success. Set an exception and return -1 on failure." +msgstr "" + +#: ../Doc/c-api/code.rst:258 +msgid "as ``_PyCode_SetExtra``" +msgstr "" + +#: ../Doc/c-api/code.rst:262 +msgid "" +"Renamed to ``PyUnstable_Code_SetExtra``. The old private name is deprecated, " +"but will be available until the API changes." +msgstr "" + +#: ../Doc/c-api/code.rst:3 +#, fuzzy +msgid "object" +msgstr "Objetos código" + +#: ../Doc/c-api/code.rst:3 +msgid "code" +msgstr "" + +#: ../Doc/c-api/code.rst:3 +#, fuzzy +msgid "code object" +msgstr "Objetos código" + +#: ../Doc/c-api/code.rst:51 +msgid "PyCode_New" +msgstr "" + +#: ../Doc/c-api/code.rst:64 +msgid "PyCode_NewWithPosOnlyArgs" +msgstr "" + +#: ../Doc/c-api/code.rst:223 +msgid "_PyEval_RequestCodeExtraIndex" +msgstr "" + +#: ../Doc/c-api/code.rst:241 +msgid "_PyCode_GetExtra" +msgstr "" + +#: ../Doc/c-api/code.rst:256 +msgid "_PyCode_SetExtra" +msgstr "" diff --git a/c-api/codec.po b/c-api/codec.po index ee204da5b3..d1bfd9d8b4 100644 --- a/c-api/codec.po +++ b/c-api/codec.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-16 21:42+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-10-18 22:40-0300\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,8 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.9.1\n" -"X-Generator: Poedit 3.0\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/codec.rst:4 msgid "Codec registry and support functions" @@ -31,8 +30,9 @@ msgid "Register a new codec search function." msgstr "Registra una nueva función de búsqueda de códec." #: ../Doc/c-api/codec.rst:10 +#, fuzzy msgid "" -"As side effect, this tries to load the :mod:`encodings` package, if not yet " +"As side effect, this tries to load the :mod:`!encodings` package, if not yet " "done, to make sure that it is always first in the list of search functions." msgstr "" "Como efecto secundario, intenta cargar el paquete :mod:`encodings`, si aún " diff --git a/c-api/complex.po b/c-api/complex.po index 91642a9e00..891fd022bb 100644 --- a/c-api/complex.po +++ b/c-api/complex.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-12-09 10:18+0800\n" "Last-Translator: Rodrigo Tobar \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/complex.rst:6 msgid "Complex Number Objects" @@ -105,9 +105,10 @@ msgstr "" "C :c:type:`Py_complex`." #: ../Doc/c-api/complex.rst:66 +#, fuzzy msgid "" "If *divisor* is null, this method returns zero and sets :c:data:`errno` to :" -"c:data:`EDOM`." +"c:macro:`!EDOM`." msgstr "" "Si *divisor* es nulo, este método retorna cero y establece :c:data:`errno` " "en :c:data:`EDOM`." @@ -121,9 +122,10 @@ msgstr "" "C :c:type:`Py_complex`." #: ../Doc/c-api/complex.rst:75 +#, fuzzy msgid "" "If *num* is null and *exp* is not a positive real number, this method " -"returns zero and sets :c:data:`errno` to :c:data:`EDOM`." +"returns zero and sets :c:data:`errno` to :c:macro:`!EDOM`." msgstr "" "Si *num* es nulo y *exp* no es un número real positivo, este método retorna " "cero y establece :c:data:`errno` a :c:data:`EDOM`." @@ -193,13 +195,14 @@ msgid "Return the :c:type:`Py_complex` value of the complex number *op*." msgstr "Retorna el valor :c:type:`Py_complex` del número complejo *op*." #: ../Doc/c-api/complex.rst:130 +#, fuzzy msgid "" -"If *op* is not a Python complex number object but has a :meth:`__complex__` " -"method, this method will first be called to convert *op* to a Python complex " -"number object. If ``__complex__()`` is not defined then it falls back to :" -"meth:`__float__`. If ``__float__()`` is not defined then it falls back to :" -"meth:`__index__`. Upon failure, this method returns ``-1.0`` as a real " -"value." +"If *op* is not a Python complex number object but has a :meth:`~object." +"__complex__` method, this method will first be called to convert *op* to a " +"Python complex number object. If :meth:`!__complex__` is not defined then " +"it falls back to :meth:`~object.__float__`. If :meth:`!__float__` is not " +"defined then it falls back to :meth:`~object.__index__`. Upon failure, this " +"method returns ``-1.0`` as a real value." msgstr "" "Si *op* no es un objeto de número complejo de Python pero tiene un método :" "meth:`__complex__`, primero se llamará a este método para convertir *op* en " @@ -209,5 +212,15 @@ msgstr "" "``-1.0`` como un valor real." #: ../Doc/c-api/complex.rst:137 -msgid "Use :meth:`__index__` if available." +#, fuzzy +msgid "Use :meth:`~object.__index__` if available." msgstr "Use :meth:`__index__` si está disponible." + +#: ../Doc/c-api/complex.rst:8 +msgid "object" +msgstr "" + +#: ../Doc/c-api/complex.rst:8 +#, fuzzy +msgid "complex number" +msgstr "Objetos de números complejos" diff --git a/c-api/concrete.po b/c-api/concrete.po index 1ab5eddcf1..fe90ed851a 100644 --- a/c-api/concrete.po +++ b/c-api/concrete.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-05 12:54+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-05-09 18:24+0200\n" +"Last-Translator: \n" +"Language: es\n" "Language-Team: python-doc-es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\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.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/concrete.rst:8 msgid "Concrete Objects Layer" @@ -97,3 +96,23 @@ msgstr "Objetos de función" #: ../Doc/c-api/concrete.rst:102 msgid "Other Objects" msgstr "Otros objetos" + +#: ../Doc/c-api/concrete.rst:43 ../Doc/c-api/concrete.rst:58 +#: ../Doc/c-api/concrete.rst:80 +#, fuzzy +msgid "object" +msgstr "Otros objetos" + +#: ../Doc/c-api/concrete.rst:43 +#, fuzzy +msgid "numeric" +msgstr "Objetos numéricos" + +#: ../Doc/c-api/concrete.rst:58 +#, fuzzy +msgid "sequence" +msgstr "Objetos de secuencia" + +#: ../Doc/c-api/concrete.rst:80 +msgid "mapping" +msgstr "" diff --git a/c-api/conversion.po b/c-api/conversion.po index 17cc6cd427..97b7c2c4b3 100644 --- a/c-api/conversion.po +++ b/c-api/conversion.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-12-09 10:24+0800\n" "Last-Translator: Rodrigo Tobar \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/conversion.rst:6 msgid "String conversion and formatting" @@ -270,18 +270,20 @@ msgstr "" "`PyMem_Free`." #: ../Doc/c-api/conversion.rst:121 +#, fuzzy msgid "" "Case insensitive comparison of strings. The function works almost " -"identically to :c:func:`strcmp` except that it ignores the case." +"identically to :c:func:`!strcmp` except that it ignores the case." msgstr "" "Comparación no sensible a mayúsculas y minúsculas en cadenas de caracteres. " "La función se comporta casi de manera idéntica a :c:func:`strcmp`, excepto " "que ignora el caso." #: ../Doc/c-api/conversion.rst:127 +#, fuzzy msgid "" "Case insensitive comparison of strings. The function works almost " -"identically to :c:func:`strncmp` except that it ignores the case." +"identically to :c:func:`!strncmp` except that it ignores the case." msgstr "" "Comparación no sensible a mayúsculas y minúsculas en cadenas de caracteres. " "La función se comporta casi de manera idéntica a :c:func:`strncmp`, excepto " diff --git a/c-api/datetime.po b/c-api/datetime.po index d07f6dc46f..a5fd1dcb5d 100644 --- a/c-api/datetime.po +++ b/c-api/datetime.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-10-19 02:00+0200\n" "Last-Translator: Meta Louis-Kosmas \n" "Language: es\n" @@ -19,20 +19,21 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/datetime.rst:6 msgid "DateTime Objects" msgstr "Objetos *DateTime*" #: ../Doc/c-api/datetime.rst:8 +#, fuzzy msgid "" "Various date and time objects are supplied by the :mod:`datetime` module. " "Before using any of these functions, the header file :file:`datetime.h` must " "be included in your source (note that this is not included by :file:`Python." -"h`), and the macro :c:macro:`PyDateTime_IMPORT` must be invoked, usually as " +"h`), and the macro :c:macro:`!PyDateTime_IMPORT` must be invoked, usually as " "part of the module initialisation function. The macro puts a pointer to a C " -"structure into a static variable, :c:data:`PyDateTimeAPI`, that is used by " +"structure into a static variable, :c:data:`!PyDateTimeAPI`, that is used by " "the following macros." msgstr "" "El módulo :mod:`datetime` proporciona varios objetos de fecha y hora. Antes " @@ -44,11 +45,60 @@ msgstr "" "una variable estática, :c:data:`PyDateTimeAPI`, que utilizan las siguientes " "macros." -#: ../Doc/c-api/datetime.rst:16 +#: ../Doc/c-api/datetime.rst:18 +msgid "This subtype of :c:type:`PyObject` represents a Python date object." +msgstr "" + +#: ../Doc/c-api/datetime.rst:22 +msgid "This subtype of :c:type:`PyObject` represents a Python datetime object." +msgstr "" + +#: ../Doc/c-api/datetime.rst:26 +msgid "This subtype of :c:type:`PyObject` represents a Python time object." +msgstr "" + +#: ../Doc/c-api/datetime.rst:30 +msgid "" +"This subtype of :c:type:`PyObject` represents the difference between two " +"datetime values." +msgstr "" + +#: ../Doc/c-api/datetime.rst:34 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python date type; it " +"is the same object as :class:`datetime.date` in the Python layer." +msgstr "" + +#: ../Doc/c-api/datetime.rst:39 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python datetime type; " +"it is the same object as :class:`datetime.datetime` in the Python layer." +msgstr "" + +#: ../Doc/c-api/datetime.rst:44 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python time type; it " +"is the same object as :class:`datetime.time` in the Python layer." +msgstr "" + +#: ../Doc/c-api/datetime.rst:49 +msgid "" +"This instance of :c:type:`PyTypeObject` represents Python type for the " +"difference between two datetime values; it is the same object as :class:" +"`datetime.timedelta` in the Python layer." +msgstr "" + +#: ../Doc/c-api/datetime.rst:55 +msgid "" +"This instance of :c:type:`PyTypeObject` represents the Python time zone info " +"type; it is the same object as :class:`datetime.tzinfo` in the Python layer." +msgstr "" + +#: ../Doc/c-api/datetime.rst:59 msgid "Macro for access to the UTC singleton:" msgstr "Macro para acceder al singleton UTC:" -#: ../Doc/c-api/datetime.rst:20 +#: ../Doc/c-api/datetime.rst:63 msgid "" "Returns the time zone singleton representing UTC, the same object as :attr:" "`datetime.timezone.utc`." @@ -56,21 +106,22 @@ msgstr "" "Retorna la zona horaria singleton que representa UTC, el mismo objeto que :" "attr:`datetime.timezone.utc`." -#: ../Doc/c-api/datetime.rst:26 +#: ../Doc/c-api/datetime.rst:69 msgid "Type-check macros:" msgstr "Macros de verificación de tipo:" -#: ../Doc/c-api/datetime.rst:30 +#: ../Doc/c-api/datetime.rst:73 +#, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DateType` or a subtype " -"of :c:data:`PyDateTime_DateType`. *ob* must not be ``NULL``. This function " -"always succeeds." +"of :c:data:`!PyDateTime_DateType`. *ob* must not be ``NULL``. This " +"function always succeeds." msgstr "" "Retorna verdadero si *ob* es de tipo :c:data:`PyDateTime_DateType` o un " "subtipo de :c:data:`PyDateTime_DateType`. *ob* no debe ser ``NULL``. Esta " "función siempre finaliza con éxito." -#: ../Doc/c-api/datetime.rst:37 +#: ../Doc/c-api/datetime.rst:80 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DateType`. *ob* must not " "be ``NULL``. This function always succeeds." @@ -78,17 +129,18 @@ msgstr "" "Retorna verdadero si *ob* es de tipo :c:data:`PyDateTime_DateType`. *ob* no " "debe ser ``NULL``. Esta función siempre finaliza con éxito." -#: ../Doc/c-api/datetime.rst:43 +#: ../Doc/c-api/datetime.rst:86 +#, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DateTimeType` or a " -"subtype of :c:data:`PyDateTime_DateTimeType`. *ob* must not be ``NULL``. " +"subtype of :c:data:`!PyDateTime_DateTimeType`. *ob* must not be ``NULL``. " "This function always succeeds." msgstr "" "Retorna verdadero si *ob* es de tipo :c:data:`PyDateTime_DateTimeType` o un " "subtipo de :c:data:`PyDateTime_DateTimeType`. *ob* no debe ser ``NULL``. " "Esta función siempre finaliza con éxito." -#: ../Doc/c-api/datetime.rst:50 +#: ../Doc/c-api/datetime.rst:93 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DateTimeType`. *ob* must " "not be ``NULL``. This function always succeeds." @@ -96,17 +148,18 @@ msgstr "" "Retorna verdadero si *ob* es de tipo :c:data:`PyDateTime_DateTimeType`. *ob* " "no debe ser ``NULL``. Esta función siempre finaliza con éxito." -#: ../Doc/c-api/datetime.rst:56 +#: ../Doc/c-api/datetime.rst:99 +#, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_TimeType` or a subtype " -"of :c:data:`PyDateTime_TimeType`. *ob* must not be ``NULL``. This function " -"always succeeds." +"of :c:data:`!PyDateTime_TimeType`. *ob* must not be ``NULL``. This " +"function always succeeds." msgstr "" "Retorna verdadero si *ob* es de tipo :c:data:`PyDateTime_TimeType` o un " "subtipo de :c:data:`PyDateTime_TimeType`. *ob* no debe ser ``NULL``. Esta " "función siempre finaliza con éxito." -#: ../Doc/c-api/datetime.rst:63 +#: ../Doc/c-api/datetime.rst:106 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_TimeType`. *ob* must not " "be ``NULL``. This function always succeeds." @@ -114,17 +167,18 @@ msgstr "" "Retorna verdadero si *ob* es de tipo :c:data:`PyDateTime_TimeType`. *ob* no " "debe ser ``NULL``. Esta función siempre finaliza con éxito." -#: ../Doc/c-api/datetime.rst:69 +#: ../Doc/c-api/datetime.rst:112 +#, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DeltaType` or a subtype " -"of :c:data:`PyDateTime_DeltaType`. *ob* must not be ``NULL``. This " +"of :c:data:`!PyDateTime_DeltaType`. *ob* must not be ``NULL``. This " "function always succeeds." msgstr "" "Retorna verdadero si *ob* es de tipo :c:data:`PyDateTime_DeltaType` o un " "subtipo de :c:data:`PyDateTime_DeltaType`. *ob* no debe ser ``NULL``. Esta " "función siempre finaliza con éxito." -#: ../Doc/c-api/datetime.rst:76 +#: ../Doc/c-api/datetime.rst:119 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DeltaType`. *ob* must not " "be ``NULL``. This function always succeeds." @@ -132,17 +186,18 @@ msgstr "" "Retorna verdadero si *ob* es de tipo :c:data:`PyDateTime_DeltaType`. *ob* no " "debe ser ``NULL``. Esta función siempre finaliza con éxito." -#: ../Doc/c-api/datetime.rst:82 +#: ../Doc/c-api/datetime.rst:125 +#, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_TZInfoType` or a subtype " -"of :c:data:`PyDateTime_TZInfoType`. *ob* must not be ``NULL``. This " +"of :c:data:`!PyDateTime_TZInfoType`. *ob* must not be ``NULL``. This " "function always succeeds." msgstr "" "Retorna verdadero si *ob* es de tipo :c:data:`PyDateTime_TZInfoType` o un " "subtipo de :c:data:`PyDateTime_TZInfoType`. *ob* no debe ser ``NULL``. Esta " "función siempre finaliza con éxito." -#: ../Doc/c-api/datetime.rst:89 +#: ../Doc/c-api/datetime.rst:132 msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_TZInfoType`. *ob* must " "not be ``NULL``. This function always succeeds." @@ -150,18 +205,18 @@ msgstr "" "Retorna verdadero si *ob* es de tipo :c:data:`PyDateTime_TZInfoType`. *ob* " "no debe ser ``NULL``. Esta función siempre finaliza con éxito." -#: ../Doc/c-api/datetime.rst:93 +#: ../Doc/c-api/datetime.rst:136 msgid "Macros to create objects:" msgstr "Macros para crear objetos:" -#: ../Doc/c-api/datetime.rst:97 +#: ../Doc/c-api/datetime.rst:140 msgid "" "Return a :class:`datetime.date` object with the specified year, month and " "day." msgstr "" "Retorna un objeto :class:`datetime.date` con el año, mes y día especificados." -#: ../Doc/c-api/datetime.rst:102 +#: ../Doc/c-api/datetime.rst:145 msgid "" "Return a :class:`datetime.datetime` object with the specified year, month, " "day, hour, minute, second and microsecond." @@ -169,7 +224,7 @@ msgstr "" "Retorna un objeto :class:`datetime.datetime` con el año, mes, día, hora, " "minuto, segundo y micro segundo especificados." -#: ../Doc/c-api/datetime.rst:108 +#: ../Doc/c-api/datetime.rst:151 msgid "" "Return a :class:`datetime.datetime` object with the specified year, month, " "day, hour, minute, second, microsecond and fold." @@ -177,7 +232,7 @@ msgstr "" "Retorna un objeto :class:`datetime.datetime` con el año, mes, día, hora, " "minuto, segundo, micro segundo y doblez especificados." -#: ../Doc/c-api/datetime.rst:116 +#: ../Doc/c-api/datetime.rst:159 msgid "" "Return a :class:`datetime.time` object with the specified hour, minute, " "second and microsecond." @@ -185,7 +240,7 @@ msgstr "" "Retorna un objeto :class:`datetime.time` con la hora, minuto, segundo y " "micro segundo especificados." -#: ../Doc/c-api/datetime.rst:122 +#: ../Doc/c-api/datetime.rst:165 msgid "" "Return a :class:`datetime.time` object with the specified hour, minute, " "second, microsecond and fold." @@ -193,7 +248,7 @@ msgstr "" "Retorna un objeto :class:`datetime.time` con la hora, minuto, segundo, micro " "segundo y doblez especificados." -#: ../Doc/c-api/datetime.rst:130 +#: ../Doc/c-api/datetime.rst:173 msgid "" "Return a :class:`datetime.timedelta` object representing the given number of " "days, seconds and microseconds. Normalization is performed so that the " @@ -205,7 +260,7 @@ msgstr "" "el número resultante de micro segundos y segundos se encuentre en los rangos " "documentados para los objetos :class:`datetime.timedelta`." -#: ../Doc/c-api/datetime.rst:138 +#: ../Doc/c-api/datetime.rst:181 msgid "" "Return a :class:`datetime.timezone` object with an unnamed fixed offset " "represented by the *offset* argument." @@ -213,7 +268,7 @@ msgstr "" "Retorna un objeto :class:`datetime.timezone` con un desplazamiento fijo sin " "nombre representado por el argumento *offset*." -#: ../Doc/c-api/datetime.rst:146 +#: ../Doc/c-api/datetime.rst:189 msgid "" "Return a :class:`datetime.timezone` object with a fixed offset represented " "by the *offset* argument and with tzname *name*." @@ -221,10 +276,11 @@ msgstr "" "Retorna un objeto :class:`datetime.timezone` con un desplazamiento fijo " "representado por el argumento *offset* y con tzname *name*." -#: ../Doc/c-api/datetime.rst:152 +#: ../Doc/c-api/datetime.rst:195 +#, fuzzy msgid "" "Macros to extract fields from date objects. The argument must be an " -"instance of :c:data:`PyDateTime_Date`, including subclasses (such as :c:data:" +"instance of :c:type:`PyDateTime_Date`, including subclasses (such as :c:type:" "`PyDateTime_DateTime`). The argument must not be ``NULL``, and the type is " "not checked:" msgstr "" @@ -233,90 +289,93 @@ msgstr "" "data:`PyDateTime_DateTime`). El argumento no debe ser ``NULL`` y el tipo no " "está marcado:" -#: ../Doc/c-api/datetime.rst:159 +#: ../Doc/c-api/datetime.rst:202 msgid "Return the year, as a positive int." msgstr "Regrese el año, como un int positivo." -#: ../Doc/c-api/datetime.rst:164 +#: ../Doc/c-api/datetime.rst:207 msgid "Return the month, as an int from 1 through 12." msgstr "Regresa el mes, como int del 1 al 12." -#: ../Doc/c-api/datetime.rst:169 +#: ../Doc/c-api/datetime.rst:212 msgid "Return the day, as an int from 1 through 31." msgstr "Retorna el día, como int del 1 al 31." -#: ../Doc/c-api/datetime.rst:172 +#: ../Doc/c-api/datetime.rst:215 +#, fuzzy msgid "" "Macros to extract fields from datetime objects. The argument must be an " -"instance of :c:data:`PyDateTime_DateTime`, including subclasses. The " +"instance of :c:type:`PyDateTime_DateTime`, including subclasses. The " "argument must not be ``NULL``, and the type is not checked:" msgstr "" "Macros para extraer campos de objetos de fecha y hora. El argumento debe ser " "una instancia de :c:data:`PyDateTime_DateTime`, incluidas las subclases. El " "argumento no debe ser ``NULL`` y el tipo no es comprobado:" -#: ../Doc/c-api/datetime.rst:178 ../Doc/c-api/datetime.rst:216 +#: ../Doc/c-api/datetime.rst:221 ../Doc/c-api/datetime.rst:259 msgid "Return the hour, as an int from 0 through 23." msgstr "Retorna la hora, como un int de 0 hasta 23." -#: ../Doc/c-api/datetime.rst:183 ../Doc/c-api/datetime.rst:221 +#: ../Doc/c-api/datetime.rst:226 ../Doc/c-api/datetime.rst:264 msgid "Return the minute, as an int from 0 through 59." msgstr "Retorna el minuto, como un int de 0 hasta 59." -#: ../Doc/c-api/datetime.rst:188 ../Doc/c-api/datetime.rst:226 +#: ../Doc/c-api/datetime.rst:231 ../Doc/c-api/datetime.rst:269 msgid "Return the second, as an int from 0 through 59." msgstr "Retorna el segundo, como un int de 0 hasta 59." -#: ../Doc/c-api/datetime.rst:193 ../Doc/c-api/datetime.rst:231 +#: ../Doc/c-api/datetime.rst:236 ../Doc/c-api/datetime.rst:274 msgid "Return the microsecond, as an int from 0 through 999999." msgstr "Retorna el micro segundo, como un int de 0 hasta 999999." -#: ../Doc/c-api/datetime.rst:198 ../Doc/c-api/datetime.rst:236 +#: ../Doc/c-api/datetime.rst:241 ../Doc/c-api/datetime.rst:279 #, fuzzy msgid "Return the fold, as an int from 0 through 1." msgstr "Retorna el día, como int del 1 al 31." -#: ../Doc/c-api/datetime.rst:205 ../Doc/c-api/datetime.rst:243 +#: ../Doc/c-api/datetime.rst:248 ../Doc/c-api/datetime.rst:286 msgid "Return the tzinfo (which may be ``None``)." msgstr "Retorna el tzinfo (que puede ser ``None``)." -#: ../Doc/c-api/datetime.rst:210 +#: ../Doc/c-api/datetime.rst:253 +#, fuzzy msgid "" "Macros to extract fields from time objects. The argument must be an " -"instance of :c:data:`PyDateTime_Time`, including subclasses. The argument " +"instance of :c:type:`PyDateTime_Time`, including subclasses. The argument " "must not be ``NULL``, and the type is not checked:" msgstr "" "Macros para extraer campos de objetos de tiempo. El argumento debe ser una " "instancia de :c:data:`PyDateTime_Time`, incluidas las subclases. El " "argumento no debe ser ``NULL`` y el tipo no está marcado:" -#: ../Doc/c-api/datetime.rst:248 +#: ../Doc/c-api/datetime.rst:291 +#, fuzzy msgid "" "Macros to extract fields from time delta objects. The argument must be an " -"instance of :c:data:`PyDateTime_Delta`, including subclasses. The argument " +"instance of :c:type:`PyDateTime_Delta`, including subclasses. The argument " "must not be ``NULL``, and the type is not checked:" msgstr "" "Macros para extraer campos de objetos delta de tiempo. El argumento debe ser " "una instancia de :c:data:`PyDateTime_Delta`, incluidas las subclases. El " "argumento no debe ser ``NULL`` y el tipo no está marcado:" -#: ../Doc/c-api/datetime.rst:254 +#: ../Doc/c-api/datetime.rst:297 msgid "Return the number of days, as an int from -999999999 to 999999999." msgstr "Retorna el número de días, como un int desde -999999999 a 999999999." -#: ../Doc/c-api/datetime.rst:261 +#: ../Doc/c-api/datetime.rst:304 msgid "Return the number of seconds, as an int from 0 through 86399." msgstr "Retorna el número de segundos, como un int de 0 a 86399." -#: ../Doc/c-api/datetime.rst:268 +#: ../Doc/c-api/datetime.rst:311 msgid "Return the number of microseconds, as an int from 0 through 999999." msgstr "Retorna el número de micro segundos, como un int de 0 a 999999." -#: ../Doc/c-api/datetime.rst:273 +#: ../Doc/c-api/datetime.rst:316 msgid "Macros for the convenience of modules implementing the DB API:" msgstr "Macros para la conveniencia de módulos que implementan la API DB:" -#: ../Doc/c-api/datetime.rst:277 +#: ../Doc/c-api/datetime.rst:320 msgid "" "Create and return a new :class:`datetime.datetime` object given an argument " "tuple suitable for passing to :meth:`datetime.datetime.fromtimestamp()`." @@ -324,7 +383,7 @@ msgstr "" "Crea y retorna un nuevo objeto :class:`datetime.datetime` dado una tupla de " "argumentos adecuada para pasar a :meth:`datetime.datetime.fromtimestamp()`." -#: ../Doc/c-api/datetime.rst:283 +#: ../Doc/c-api/datetime.rst:326 msgid "" "Create and return a new :class:`datetime.date` object given an argument " "tuple suitable for passing to :meth:`datetime.date.fromtimestamp()`." diff --git a/c-api/dict.po b/c-api/dict.po index 17728bd8db..394c60ece0 100644 --- a/c-api/dict.po +++ b/c-api/dict.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-01 20:34+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/dict.rst:6 msgid "Dictionary Objects" @@ -105,42 +105,40 @@ msgstr "" "caso de éxito o ``-1`` en caso de error. Esta función *no* roba una " "referencia a *val*." -#: ../Doc/c-api/dict.rst:75 +#: ../Doc/c-api/dict.rst:73 #, fuzzy msgid "" -"Insert *val* into the dictionary *p* using *key* as a key. *key* should be " -"a :c:expr:`const char*`. The key object is created using " -"``PyUnicode_FromString(key)``. Return ``0`` on success or ``-1`` on " -"failure. This function *does not* steal a reference to *val*." +"This is the same as :c:func:`PyDict_SetItem`, but *key* is specified as a :c:" +"expr:`const char*` UTF-8 encoded bytes string, rather than a :c:expr:" +"`PyObject*`." msgstr "" -"Inserta *val* en el diccionario *p* usando *key* como clave. *key* debe ser " -"un :c:type:`const char*`. El objeto clave se crea usando " -"``PyUnicode_FromString(key)``. Retorna ``0`` en caso de éxito o ``-1`` en " -"caso de error. Esta función *no* roba una referencia a *val*." +"Esto es lo mismo que :c:func:`PyDict_GetItem`, pero *key* se especifica como " +"un :c:type:`const char*`, en lugar de un :c:type:`PyObject*`." -#: ../Doc/c-api/dict.rst:83 +#: ../Doc/c-api/dict.rst:80 +#, fuzzy msgid "" -"Remove the entry in dictionary *p* with key *key*. *key* must be hashable; " -"if it isn't, :exc:`TypeError` is raised. If *key* is not in the dictionary, :" -"exc:`KeyError` is raised. Return ``0`` on success or ``-1`` on failure." +"Remove the entry in dictionary *p* with key *key*. *key* must be :term:" +"`hashable`; if it isn't, :exc:`TypeError` is raised. If *key* is not in the " +"dictionary, :exc:`KeyError` is raised. Return ``0`` on success or ``-1`` on " +"failure." msgstr "" "Elimina la entrada en el diccionario *p* con la clave *key*. *key* debe ser " "*hashable*; si no lo es, se lanza :exc:`TypeError`. Si *key* no está en el " "diccionario, se lanza :exc:`KeyError`. Retorna ``0`` en caso de éxito o " "``-1`` en caso de error." -#: ../Doc/c-api/dict.rst:91 +#: ../Doc/c-api/dict.rst:88 +#, fuzzy msgid "" -"Remove the entry in dictionary *p* which has a key specified by the string " -"*key*. If *key* is not in the dictionary, :exc:`KeyError` is raised. Return " -"``0`` on success or ``-1`` on failure." +"This is the same as :c:func:`PyDict_DelItem`, but *key* is specified as a :c:" +"expr:`const char*` UTF-8 encoded bytes string, rather than a :c:expr:" +"`PyObject*`." msgstr "" -"Elimina la entrada en el diccionario *p* que tiene una clave especificada " -"por la cadena de caracteres *key*. Si *key* no está en el diccionario, se " -"lanza :exc:`KeyError`. Retorna ``0`` en caso de éxito o ``-1`` en caso de " -"error." +"Esto es lo mismo que :c:func:`PyDict_GetItem`, pero *key* se especifica como " +"un :c:type:`const char*`, en lugar de un :c:type:`PyObject*`." -#: ../Doc/c-api/dict.rst:98 +#: ../Doc/c-api/dict.rst:95 msgid "" "Return the object from dictionary *p* which has a key *key*. Return " "``NULL`` if the key *key* is not present, but *without* setting an exception." @@ -148,17 +146,18 @@ msgstr "" "Retorna el objeto del diccionario *p* que tiene una clave *key*. Retorna " "``NULL`` si la clave *key* no está presente, pero *sin* lanzar una excepción." -#: ../Doc/c-api/dict.rst:101 +#: ../Doc/c-api/dict.rst:100 +#, fuzzy msgid "" -"Note that exceptions which occur while calling :meth:`__hash__` and :meth:" -"`__eq__` methods will get suppressed. To get error reporting use :c:func:" -"`PyDict_GetItemWithError()` instead." +"Exceptions that occur while this calls :meth:`~object.__hash__` and :meth:" +"`~object.__eq__` methods are silently ignored. Prefer the :c:func:" +"`PyDict_GetItemWithError` function instead." msgstr "" "Tenga en cuenta que las excepciones que se producen al llamar :meth:" "`__hash__` y :meth:`__eq__` se suprimirán los métodos. Para obtener informes " "de errores, utilice :c:func:`PyDict_GetItemWithError ()` en su lugar." -#: ../Doc/c-api/dict.rst:105 +#: ../Doc/c-api/dict.rst:104 msgid "" "Calling this API without :term:`GIL` held had been allowed for historical " "reason. It is no longer allowed." @@ -166,7 +165,7 @@ msgstr "" "Llamar a esta API sin retener el :term:`GIL` había sido permitido por " "motivos históricos.Ya no está permitido." -#: ../Doc/c-api/dict.rst:112 +#: ../Doc/c-api/dict.rst:111 msgid "" "Variant of :c:func:`PyDict_GetItem` that does not suppress exceptions. " "Return ``NULL`` **with** an exception set if an exception occurred. Return " @@ -177,27 +176,30 @@ msgstr "" "Retorna ``NULL`` **sin** una excepción establecida si la clave no estaba " "presente." -#: ../Doc/c-api/dict.rst:120 +#: ../Doc/c-api/dict.rst:119 #, fuzzy msgid "" "This is the same as :c:func:`PyDict_GetItem`, but *key* is specified as a :c:" -"expr:`const char*`, rather than a :c:expr:`PyObject*`." +"expr:`const char*` UTF-8 encoded bytes string, rather than a :c:expr:" +"`PyObject*`." msgstr "" "Esto es lo mismo que :c:func:`PyDict_GetItem`, pero *key* se especifica como " "un :c:type:`const char*`, en lugar de un :c:type:`PyObject*`." -#: ../Doc/c-api/dict.rst:123 +#: ../Doc/c-api/dict.rst:125 +#, fuzzy msgid "" -"Note that exceptions which occur while calling :meth:`__hash__` and :meth:" -"`__eq__` methods and creating a temporary string object will get suppressed. " -"To get error reporting use :c:func:`PyDict_GetItemWithError()` instead." +"Exceptions that occur while this calls :meth:`~object.__hash__` and :meth:" +"`~object.__eq__` methods or while creating the temporary :class:`str` object " +"are silently ignored. Prefer using the :c:func:`PyDict_GetItemWithError` " +"function with your own :c:func:`PyUnicode_FromString` *key* instead." msgstr "" "Tenga en cuenta que las excepciones que se producen al llamar a :meth:" "`__hash__` y :meth:`__eq__` y al crear un objeto de cadena de caracteres " "temporal se suprimirán. Para obtener informes de errores, utilice :c:func:" "`PyDict_GetItemWithError()` en su lugar." -#: ../Doc/c-api/dict.rst:131 +#: ../Doc/c-api/dict.rst:134 msgid "" "This is the same as the Python-level :meth:`dict.setdefault`. If present, " "it returns the value corresponding to *key* from the dictionary *p*. If the " @@ -213,21 +215,21 @@ msgstr "" "una vez, en lugar de evaluarla independientemente para la búsqueda y la " "inserción." -#: ../Doc/c-api/dict.rst:141 +#: ../Doc/c-api/dict.rst:144 msgid "" "Return a :c:type:`PyListObject` containing all the items from the dictionary." msgstr "" "Retorna un :c:type:`PyListObject` que contiene todos los elementos del " "diccionario." -#: ../Doc/c-api/dict.rst:146 +#: ../Doc/c-api/dict.rst:149 msgid "" "Return a :c:type:`PyListObject` containing all the keys from the dictionary." msgstr "" "Retorna un :c:type:`PyListObject` que contiene todas las claves del " "diccionario." -#: ../Doc/c-api/dict.rst:151 +#: ../Doc/c-api/dict.rst:154 msgid "" "Return a :c:type:`PyListObject` containing all the values from the " "dictionary *p*." @@ -235,7 +237,7 @@ msgstr "" "Retorna un :c:type:`PyListObject` que contiene todos los valores del " "diccionario *p*." -#: ../Doc/c-api/dict.rst:159 +#: ../Doc/c-api/dict.rst:162 msgid "" "Return the number of items in the dictionary. This is equivalent to " "``len(p)`` on a dictionary." @@ -243,7 +245,7 @@ msgstr "" "Retorna el número de elementos en el diccionario. Esto es equivalente a " "``len(p)`` en un diccionario." -#: ../Doc/c-api/dict.rst:165 +#: ../Doc/c-api/dict.rst:168 #, fuzzy msgid "" "Iterate over all key-value pairs in the dictionary *p*. The :c:type:" @@ -269,11 +271,11 @@ msgstr "" "diccionario interno y, dado que la estructura es escasa, las compensaciones " "no son consecutivas." -#: ../Doc/c-api/dict.rst:176 +#: ../Doc/c-api/dict.rst:179 msgid "For example::" msgstr "Por ejemplo::" -#: ../Doc/c-api/dict.rst:186 +#: ../Doc/c-api/dict.rst:189 msgid "" "The dictionary *p* should not be mutated during iteration. It is safe to " "modify the values of the keys as you iterate over the dictionary, but only " @@ -283,7 +285,7 @@ msgstr "" "los valores de las claves a medida que recorre el diccionario, pero solo " "mientras el conjunto de claves no cambie. Por ejemplo::" -#: ../Doc/c-api/dict.rst:211 +#: ../Doc/c-api/dict.rst:214 msgid "" "Iterate over mapping object *b* adding key-value pairs to dictionary *a*. " "*b* may be a dictionary, or any object supporting :c:func:`PyMapping_Keys` " @@ -300,7 +302,7 @@ msgstr "" "si no hay una clave coincidente en *a*. Retorna ``0`` en caso de éxito o " "``-1`` si se lanza una excepción." -#: ../Doc/c-api/dict.rst:221 +#: ../Doc/c-api/dict.rst:224 msgid "" "This is the same as ``PyDict_Merge(a, b, 1)`` in C, and is similar to ``a." "update(b)`` in Python except that :c:func:`PyDict_Update` doesn't fall back " @@ -314,7 +316,7 @@ msgstr "" "argumento no tiene el atributo \"claves\". Retorna ``0`` en caso de éxito o " "``-1`` si se produjo una excepción." -#: ../Doc/c-api/dict.rst:230 +#: ../Doc/c-api/dict.rst:233 msgid "" "Update or merge into dictionary *a*, from the key-value pairs in *seq2*. " "*seq2* must be an iterable object producing iterable objects of length 2, " @@ -328,3 +330,138 @@ msgstr "" "el último gana si *override* es verdadero, de lo contrario, el primero gana. " "Retorna ``0`` en caso de éxito o ``-1`` si se produjo una excepción. El " "equivalente en Python (excepto el valor de retorno) ::" + +#: ../Doc/c-api/dict.rst:247 +msgid "" +"Register *callback* as a dictionary watcher. Return a non-negative integer " +"id which must be passed to future calls to :c:func:`PyDict_Watch`. In case " +"of error (e.g. no more watcher IDs available), return ``-1`` and set an " +"exception." +msgstr "" + +#: ../Doc/c-api/dict.rst:256 +msgid "" +"Clear watcher identified by *watcher_id* previously returned from :c:func:" +"`PyDict_AddWatcher`. Return ``0`` on success, ``-1`` on error (e.g. if the " +"given *watcher_id* was never registered.)" +msgstr "" + +#: ../Doc/c-api/dict.rst:264 +msgid "" +"Mark dictionary *dict* as watched. The callback granted *watcher_id* by :c:" +"func:`PyDict_AddWatcher` will be called when *dict* is modified or " +"deallocated. Return ``0`` on success or ``-1`` on error." +msgstr "" + +#: ../Doc/c-api/dict.rst:272 +msgid "" +"Mark dictionary *dict* as no longer watched. The callback granted " +"*watcher_id* by :c:func:`PyDict_AddWatcher` will no longer be called when " +"*dict* is modified or deallocated. The dict must previously have been " +"watched by this watcher. Return ``0`` on success or ``-1`` on error." +msgstr "" + +#: ../Doc/c-api/dict.rst:281 +msgid "" +"Enumeration of possible dictionary watcher events: ``PyDict_EVENT_ADDED``, " +"``PyDict_EVENT_MODIFIED``, ``PyDict_EVENT_DELETED``, " +"``PyDict_EVENT_CLONED``, ``PyDict_EVENT_CLEARED``, or " +"``PyDict_EVENT_DEALLOCATED``." +msgstr "" + +#: ../Doc/c-api/dict.rst:289 +msgid "Type of a dict watcher callback function." +msgstr "" + +#: ../Doc/c-api/dict.rst:291 +msgid "" +"If *event* is ``PyDict_EVENT_CLEARED`` or ``PyDict_EVENT_DEALLOCATED``, both " +"*key* and *new_value* will be ``NULL``. If *event* is ``PyDict_EVENT_ADDED`` " +"or ``PyDict_EVENT_MODIFIED``, *new_value* will be the new value for *key*. " +"If *event* is ``PyDict_EVENT_DELETED``, *key* is being deleted from the " +"dictionary and *new_value* will be ``NULL``." +msgstr "" + +#: ../Doc/c-api/dict.rst:297 +msgid "" +"``PyDict_EVENT_CLONED`` occurs when *dict* was previously empty and another " +"dict is merged into it. To maintain efficiency of this operation, per-key " +"``PyDict_EVENT_ADDED`` events are not issued in this case; instead a single " +"``PyDict_EVENT_CLONED`` is issued, and *key* will be the source dictionary." +msgstr "" + +#: ../Doc/c-api/dict.rst:303 +msgid "" +"The callback may inspect but must not modify *dict*; doing so could have " +"unpredictable effects, including infinite recursion. Do not trigger Python " +"code execution in the callback, as it could modify the dict as a side effect." +msgstr "" + +#: ../Doc/c-api/dict.rst:307 +msgid "" +"If *event* is ``PyDict_EVENT_DEALLOCATED``, taking a new reference in the " +"callback to the about-to-be-destroyed dictionary will resurrect it and " +"prevent it from being freed at this time. When the resurrected object is " +"destroyed later, any watcher callbacks active at that time will be called " +"again." +msgstr "" + +#: ../Doc/c-api/dict.rst:313 +msgid "" +"Callbacks occur before the notified modification to *dict* takes place, so " +"the prior state of *dict* can be inspected." +msgstr "" + +#: ../Doc/c-api/dict.rst:316 +msgid "" +"If the callback sets an exception, it must return ``-1``; this exception " +"will be printed as an unraisable exception using :c:func:" +"`PyErr_WriteUnraisable`. Otherwise it should return ``0``." +msgstr "" + +#: ../Doc/c-api/dict.rst:320 +msgid "" +"There may already be a pending exception set on entry to the callback. In " +"this case, the callback should return ``0`` with the same exception still " +"set. This means the callback may not call any other API that can set an " +"exception unless it saves and clears the exception state first, and restores " +"it before returning." +msgstr "" + +#: ../Doc/c-api/dict.rst:8 +msgid "object" +msgstr "" + +#: ../Doc/c-api/dict.rst:8 +#, fuzzy +msgid "dictionary" +msgstr "Objetos diccionario" + +#: ../Doc/c-api/dict.rst:160 +msgid "built-in function" +msgstr "" + +#: ../Doc/c-api/dict.rst:160 +msgid "len" +msgstr "" + +#~ msgid "" +#~ "Insert *val* into the dictionary *p* using *key* as a key. *key* should " +#~ "be a :c:expr:`const char*`. The key object is created using " +#~ "``PyUnicode_FromString(key)``. Return ``0`` on success or ``-1`` on " +#~ "failure. This function *does not* steal a reference to *val*." +#~ msgstr "" +#~ "Inserta *val* en el diccionario *p* usando *key* como clave. *key* debe " +#~ "ser un :c:type:`const char*`. El objeto clave se crea usando " +#~ "``PyUnicode_FromString(key)``. Retorna ``0`` en caso de éxito o ``-1`` en " +#~ "caso de error. Esta función *no* roba una referencia a *val*." + +#~ msgid "" +#~ "Remove the entry in dictionary *p* which has a key specified by the " +#~ "string *key*. If *key* is not in the dictionary, :exc:`KeyError` is " +#~ "raised. Return ``0`` on success or ``-1`` on failure." +#~ msgstr "" +#~ "Elimina la entrada en el diccionario *p* que tiene una clave especificada " +#~ "por la cadena de caracteres *key*. Si *key* no está en el diccionario, se " +#~ "lanza :exc:`KeyError`. Retorna ``0`` en caso de éxito o ``-1`` en caso de " +#~ "error." diff --git a/c-api/exceptions.po b/c-api/exceptions.po index 0e6b278627..cc819658fd 100644 --- a/c-api/exceptions.po +++ b/c-api/exceptions.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-30 23:02-0300\n" "Last-Translator: Marco Richetta \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.1.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/exceptions.rst:8 msgid "Exception Handling" @@ -131,20 +130,27 @@ msgstr "" "De lo contrario, provocará un error fatal!" #: ../Doc/c-api/exceptions.rst:63 +#, fuzzy msgid "" -"If *set_sys_last_vars* is nonzero, the variables :data:`sys.last_type`, :" -"data:`sys.last_value` and :data:`sys.last_traceback` will be set to the " -"type, value and traceback of the printed exception, respectively." +"If *set_sys_last_vars* is nonzero, the variable :data:`sys.last_exc` is set " +"to the printed exception. For backwards compatibility, the deprecated " +"variables :data:`sys.last_type`, :data:`sys.last_value` and :data:`sys." +"last_traceback` are also set to the type, value and traceback of this " +"exception, respectively." msgstr "" "Si *set_sys_last_vars* no es cero, las variables :data:`sys.last_type`, :" "data:`sys.last_value` y :data:`sys.last_traceback` se establecerán en el " "tipo, valor y rastreo de la excepción impresa, respectivamente." -#: ../Doc/c-api/exceptions.rst:70 +#: ../Doc/c-api/exceptions.rst:69 +msgid "The setting of :data:`sys.last_exc` was added." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:75 msgid "Alias for ``PyErr_PrintEx(1)``." msgstr "Alias para ``PyErr_PrintEx(1)``." -#: ../Doc/c-api/exceptions.rst:75 +#: ../Doc/c-api/exceptions.rst:80 msgid "" "Call :func:`sys.unraisablehook` using the current exception and *obj* " "argument." @@ -152,19 +158,20 @@ msgstr "" "Llama :func:`sys.unraisablehook` utilizando la excepción actual y el " "argumento *obj*." -#: ../Doc/c-api/exceptions.rst:78 +#: ../Doc/c-api/exceptions.rst:83 +#, fuzzy msgid "" "This utility function prints a warning message to ``sys.stderr`` when an " "exception has been set but it is impossible for the interpreter to actually " "raise the exception. It is used, for example, when an exception occurs in " -"an :meth:`__del__` method." +"an :meth:`~object.__del__` method." msgstr "" "Esta función de utilidad imprime un mensaje de advertencia en ``sys.stderr`` " "cuando se ha establecido una excepción, pero es imposible que el intérprete " "la active. Se usa, por ejemplo, cuando ocurre una excepción en un método :" "meth:`__del__`." -#: ../Doc/c-api/exceptions.rst:83 +#: ../Doc/c-api/exceptions.rst:88 msgid "" "The function is called with a single argument *obj* that identifies the " "context in which the unraisable exception occurred. If possible, the repr of " @@ -174,15 +181,21 @@ msgstr "" "en el que ocurrió la excepción que no se evalúa. Si es posible, la repr " "*obj* se imprimirá en el mensaje de advertencia." -#: ../Doc/c-api/exceptions.rst:87 +#: ../Doc/c-api/exceptions.rst:92 msgid "An exception must be set when calling this function." msgstr "Se debe establecer una excepción al llamar a esta función." -#: ../Doc/c-api/exceptions.rst:91 +#: ../Doc/c-api/exceptions.rst:96 +msgid "" +"Print the standard traceback display of ``exc`` to ``sys.stderr``, including " +"chained exceptions and notes." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:102 msgid "Raising exceptions" msgstr "Lanzando excepciones" -#: ../Doc/c-api/exceptions.rst:93 +#: ../Doc/c-api/exceptions.rst:104 msgid "" "These functions help you set the current thread's error indicator. For " "convenience, some of these functions will always return a ``NULL`` pointer " @@ -192,13 +205,14 @@ msgstr "" "actual. Por conveniencia, algunas de estas funciones siempre retornarán un " "puntero ``NULL`` para usar en una declaración ``return``." -#: ../Doc/c-api/exceptions.rst:100 +#: ../Doc/c-api/exceptions.rst:111 +#, fuzzy msgid "" "This is the most common way to set the error indicator. The first argument " "specifies the exception type; it is normally one of the standard exceptions, " -"e.g. :c:data:`PyExc_RuntimeError`. You need not increment its reference " -"count. The second argument is an error message; it is decoded from " -"``'utf-8'``." +"e.g. :c:data:`PyExc_RuntimeError`. You need not create a new :term:`strong " +"reference` to it (e.g. with :c:func:`Py_INCREF`). The second argument is an " +"error message; it is decoded from ``'utf-8'``." msgstr "" "Esta es la forma más común de configurar el indicador de error. El primer " "argumento especifica el tipo de excepción; Normalmente es una de las " @@ -206,7 +220,7 @@ msgstr "" "incrementar su recuento de referencia. El segundo argumento es un mensaje de " "error; se decodifica a partir de ``'utf-8'``." -#: ../Doc/c-api/exceptions.rst:108 +#: ../Doc/c-api/exceptions.rst:120 msgid "" "This function is similar to :c:func:`PyErr_SetString` but lets you specify " "an arbitrary Python object for the \"value\" of the exception." @@ -214,7 +228,7 @@ msgstr "" "Esta función es similar a :c:func:`PyErr_SetString` pero le permite " "especificar un objeto Python arbitrario para el \"valor\" de la excepción." -#: ../Doc/c-api/exceptions.rst:114 +#: ../Doc/c-api/exceptions.rst:126 msgid "" "This function sets the error indicator and returns ``NULL``. *exception* " "should be a Python exception class. The *format* and subsequent parameters " @@ -227,7 +241,7 @@ msgstr "" "significado y valores que en :c:func:`PyUnicode_FromFormat`. *format* es una " "cadena de caracteres codificada en ASCII." -#: ../Doc/c-api/exceptions.rst:123 +#: ../Doc/c-api/exceptions.rst:135 msgid "" "Same as :c:func:`PyErr_Format`, but taking a :c:type:`va_list` argument " "rather than a variable number of arguments." @@ -235,11 +249,11 @@ msgstr "" "Igual que :c:func:`PyErr_Format`, pero tomando un argumento :c:type:" "`va_list` en lugar de un número variable de argumentos." -#: ../Doc/c-api/exceptions.rst:131 +#: ../Doc/c-api/exceptions.rst:143 msgid "This is a shorthand for ``PyErr_SetObject(type, Py_None)``." msgstr "Esta es una abreviatura de ``PyErr_SetObject(type, Py_None)``." -#: ../Doc/c-api/exceptions.rst:136 +#: ../Doc/c-api/exceptions.rst:148 msgid "" "This is a shorthand for ``PyErr_SetString(PyExc_TypeError, message)``, where " "*message* indicates that a built-in operation was invoked with an illegal " @@ -249,7 +263,7 @@ msgstr "" "donde *message* indica que se invocó una operación incorporada con un " "argumento ilegal. Es principalmente para uso interno." -#: ../Doc/c-api/exceptions.rst:143 +#: ../Doc/c-api/exceptions.rst:155 msgid "" "This is a shorthand for ``PyErr_SetNone(PyExc_MemoryError)``; it returns " "``NULL`` so an object allocation function can write ``return " @@ -259,14 +273,15 @@ msgstr "" "``NULL`` para que una función de asignación de objetos pueda escribir " "``return PyErr_NoMemory();`` cuando se queda sin memoria." -#: ../Doc/c-api/exceptions.rst:152 +#: ../Doc/c-api/exceptions.rst:164 +#, fuzzy msgid "" "This is a convenience function to raise an exception when a C library " "function has returned an error and set the C variable :c:data:`errno`. It " "constructs a tuple object whose first item is the integer :c:data:`errno` " "value and whose second item is the corresponding error message (gotten from :" -"c:func:`strerror`), and then calls ``PyErr_SetObject(type, object)``. On " -"Unix, when the :c:data:`errno` value is :const:`EINTR`, indicating an " +"c:func:`!strerror`), and then calls ``PyErr_SetObject(type, object)``. On " +"Unix, when the :c:data:`errno` value is :c:macro:`!EINTR`, indicating an " "interrupted system call, this calls :c:func:`PyErr_CheckSignals`, and if " "that set the error indicator, leaves it set to that. The function always " "returns ``NULL``, so a wrapper function around a system call can write " @@ -285,19 +300,20 @@ msgstr "" "escribir ``return PyErr_SetFromErrno (type);`` cuando la llamada del sistema " "retorna un error." -#: ../Doc/c-api/exceptions.rst:166 +#: ../Doc/c-api/exceptions.rst:178 +#, fuzzy msgid "" "Similar to :c:func:`PyErr_SetFromErrno`, with the additional behavior that " "if *filenameObject* is not ``NULL``, it is passed to the constructor of " "*type* as a third parameter. In the case of :exc:`OSError` exception, this " -"is used to define the :attr:`filename` attribute of the exception instance." +"is used to define the :attr:`!filename` attribute of the exception instance." msgstr "" "Similar a :c:func:`PyErr_SetFromErrno`, con el comportamiento adicional de " "que si *filenameObject * no es ``NULL``, se pasa al constructor de *type* " "como tercer parámetro. En el caso de la excepción :exc:`OSError`, se utiliza " "para definir el atributo :attr:`filename` de la instancia de excepción." -#: ../Doc/c-api/exceptions.rst:175 +#: ../Doc/c-api/exceptions.rst:187 msgid "" "Similar to :c:func:`PyErr_SetFromErrnoWithFilenameObject`, but takes a " "second filename object, for raising errors when a function that takes two " @@ -307,7 +323,7 @@ msgstr "" "segundo objeto de nombre de archivo, para lanzar errores cuando falla una " "función que toma dos nombres de archivo." -#: ../Doc/c-api/exceptions.rst:184 +#: ../Doc/c-api/exceptions.rst:196 msgid "" "Similar to :c:func:`PyErr_SetFromErrnoWithFilenameObject`, but the filename " "is given as a C string. *filename* is decoded from the :term:`filesystem " @@ -317,15 +333,16 @@ msgstr "" "archivo se da como una cadena de caracteres de C. *filename* se decodifica a " "partir de la codificación de :term:`filesystem encoding and error handler`." -#: ../Doc/c-api/exceptions.rst:191 +#: ../Doc/c-api/exceptions.rst:203 +#, fuzzy msgid "" "This is a convenience function to raise :exc:`WindowsError`. If called with " -"*ierr* of ``0``, the error code returned by a call to :c:func:`GetLastError` " -"is used instead. It calls the Win32 function :c:func:`FormatMessage` to " -"retrieve the Windows description of error code given by *ierr* or :c:func:" -"`GetLastError`, then it constructs a tuple object whose first item is the " -"*ierr* value and whose second item is the corresponding error message " -"(gotten from :c:func:`FormatMessage`), and then calls " +"*ierr* of ``0``, the error code returned by a call to :c:func:`!" +"GetLastError` is used instead. It calls the Win32 function :c:func:`!" +"FormatMessage` to retrieve the Windows description of error code given by " +"*ierr* or :c:func:`!GetLastError`, then it constructs a tuple object whose " +"first item is the *ierr* value and whose second item is the corresponding " +"error message (gotten from :c:func:`!FormatMessage`), and then calls " "``PyErr_SetObject(PyExc_WindowsError, object)``. This function always " "returns ``NULL``." msgstr "" @@ -339,13 +356,13 @@ msgstr "" "luego llama a ``PyErr_SetObject(PyExc_WindowsError, object)``. Esta función " "siempre retorna ``NULL``." -#: ../Doc/c-api/exceptions.rst:200 ../Doc/c-api/exceptions.rst:208 -#: ../Doc/c-api/exceptions.rst:217 ../Doc/c-api/exceptions.rst:225 -#: ../Doc/c-api/exceptions.rst:234 ../Doc/c-api/exceptions.rst:243 +#: ../Doc/c-api/exceptions.rst:212 ../Doc/c-api/exceptions.rst:220 +#: ../Doc/c-api/exceptions.rst:231 ../Doc/c-api/exceptions.rst:241 +#: ../Doc/c-api/exceptions.rst:249 ../Doc/c-api/exceptions.rst:259 msgid ":ref:`Availability `: Windows." msgstr ":ref:`Disponibilidad `: Windows." -#: ../Doc/c-api/exceptions.rst:205 +#: ../Doc/c-api/exceptions.rst:217 msgid "" "Similar to :c:func:`PyErr_SetFromWindowsErr`, with an additional parameter " "specifying the exception type to be raised." @@ -353,26 +370,34 @@ msgstr "" "Similar a :c:func:`PyErr_SetFromWindowsErr`, con un parámetro adicional que " "especifica el tipo de excepción que se lanzará." -#: ../Doc/c-api/exceptions.rst:213 +#: ../Doc/c-api/exceptions.rst:225 +#, fuzzy msgid "" -"Similar to :c:func:`PyErr_SetFromWindowsErrWithFilenameObject`, but the " -"filename is given as a C string. *filename* is decoded from the filesystem " -"encoding (:func:`os.fsdecode`)." +"Similar to :c:func:`PyErr_SetFromWindowsErr`, with the additional behavior " +"that if *filename* is not ``NULL``, it is decoded from the filesystem " +"encoding (:func:`os.fsdecode`) and passed to the constructor of :exc:" +"`OSError` as a third parameter to be used to define the :attr:`!filename` " +"attribute of the exception instance." msgstr "" -"Similar a :c:func:`PyErr_SetFromWindowsErrWithFilenameObject`, pero el " -"nombre del archivo se da como una cadena de caracteres de C. *filename* se " -"decodifica a partir de la codificación del sistema de archivos (:func:`os." -"fsdecode`)." +"Similar a :c:func:`PyErr_SetFromErrno`, con el comportamiento adicional de " +"que si *filenameObject * no es ``NULL``, se pasa al constructor de *type* " +"como tercer parámetro. En el caso de la excepción :exc:`OSError`, se utiliza " +"para definir el atributo :attr:`filename` de la instancia de excepción." -#: ../Doc/c-api/exceptions.rst:222 +#: ../Doc/c-api/exceptions.rst:236 +#, fuzzy msgid "" -"Similar to :c:func:`PyErr_SetFromWindowsErrWithFilenameObject`, with an " -"additional parameter specifying the exception type to be raised." +"Similar to :c:func:`PyErr_SetExcFromWindowsErr`, with the additional " +"behavior that if *filename* is not ``NULL``, it is passed to the constructor " +"of :exc:`OSError` as a third parameter to be used to define the :attr:`!" +"filename` attribute of the exception instance." msgstr "" -"Similar a :c:func:`PyErr_SetFromWindowsErrWithFilenameObject`, con un " -"parámetro adicional que especifica el tipo de excepción que se lanzará." +"Similar a :c:func:`PyErr_SetFromErrno`, con el comportamiento adicional de " +"que si *filenameObject * no es ``NULL``, se pasa al constructor de *type* " +"como tercer parámetro. En el caso de la excepción :exc:`OSError`, se utiliza " +"para definir el atributo :attr:`filename` de la instancia de excepción." -#: ../Doc/c-api/exceptions.rst:230 +#: ../Doc/c-api/exceptions.rst:246 msgid "" "Similar to :c:func:`PyErr_SetExcFromWindowsErrWithFilenameObject`, but " "accepts a second filename object." @@ -380,7 +405,7 @@ msgstr "" "Similar a :c:func:`PyErr_SetExcFromWindowsErrWithFilenameObject`, pero " "acepta un segundo objeto de nombre de archivo." -#: ../Doc/c-api/exceptions.rst:240 +#: ../Doc/c-api/exceptions.rst:256 msgid "" "Similar to :c:func:`PyErr_SetFromWindowsErrWithFilename`, with an additional " "parameter specifying the exception type to be raised." @@ -388,7 +413,7 @@ msgstr "" "Similar a :c:func:`PyErr_SetFromWindowsErrWithFilename`, con un parámetro " "adicional que especifica el tipo de excepción que se lanzará." -#: ../Doc/c-api/exceptions.rst:248 +#: ../Doc/c-api/exceptions.rst:264 msgid "" "This is a convenience function to raise :exc:`ImportError`. *msg* will be " "set as the exception's message string. *name* and *path*, both of which can " @@ -400,7 +425,7 @@ msgstr "" "pueden ser ``NULL``, se establecerán como atributos respectivos ``name`` y " "``path`` de :exc:`ImportError`." -#: ../Doc/c-api/exceptions.rst:258 +#: ../Doc/c-api/exceptions.rst:274 msgid "" "Much like :c:func:`PyErr_SetImportError` but this function allows for " "specifying a subclass of :exc:`ImportError` to raise." @@ -408,7 +433,7 @@ msgstr "" "Al igual que :c:func:`PyErr_SetImportError` pero esta función permite " "especificar una subclase de :exc:`ImportError` para aumentar." -#: ../Doc/c-api/exceptions.rst:266 +#: ../Doc/c-api/exceptions.rst:282 msgid "" "Set file, line, and offset information for the current exception. If the " "current exception is not a :exc:`SyntaxError`, then it sets additional " @@ -420,7 +445,7 @@ msgstr "" "atributos adicionales, lo que hace que el sub sistema de impresión de " "excepciones piense que la excepción es :exc:`SyntaxError`." -#: ../Doc/c-api/exceptions.rst:276 +#: ../Doc/c-api/exceptions.rst:292 msgid "" "Like :c:func:`PyErr_SyntaxLocationObject`, but *filename* is a byte string " "decoded from the :term:`filesystem encoding and error handler`." @@ -428,7 +453,7 @@ msgstr "" "Como :c:func:`PyErr_SyntaxLocationObject`, pero *filename* es una cadena de " "bytes decodificada a partir de :term:`filesystem encoding and error handler`." -#: ../Doc/c-api/exceptions.rst:284 +#: ../Doc/c-api/exceptions.rst:300 msgid "" "Like :c:func:`PyErr_SyntaxLocationEx`, but the *col_offset* parameter is " "omitted." @@ -436,7 +461,7 @@ msgstr "" "Como :c:func:`PyErr_SyntaxLocationEx`, pero se omite el parámetro " "*col_offset*." -#: ../Doc/c-api/exceptions.rst:290 +#: ../Doc/c-api/exceptions.rst:306 msgid "" "This is a shorthand for ``PyErr_SetString(PyExc_SystemError, message)``, " "where *message* indicates that an internal operation (e.g. a Python/C API " @@ -448,11 +473,11 @@ msgstr "" "función de Python/C API) con un argumento ilegal. Es principalmente para uso " "interno." -#: ../Doc/c-api/exceptions.rst:297 +#: ../Doc/c-api/exceptions.rst:313 msgid "Issuing warnings" msgstr "Emitir advertencias" -#: ../Doc/c-api/exceptions.rst:299 +#: ../Doc/c-api/exceptions.rst:315 msgid "" "Use these functions to issue warnings from C code. They mirror similar " "functions exported by the Python :mod:`warnings` module. They normally " @@ -480,7 +505,7 @@ msgstr "" "llama debe hacer su manejo normal de excepciones (por ejemplo, referencias " "propiedad de :c:func:`Py_DECREF` y retornan un valor de error)." -#: ../Doc/c-api/exceptions.rst:314 +#: ../Doc/c-api/exceptions.rst:330 msgid "" "Issue a warning message. The *category* argument is a warning category (see " "below) or ``NULL``; the *message* argument is a UTF-8 encoded string. " @@ -497,7 +522,7 @@ msgstr "" "Un *stack_level* de 1 es la función que llama :c:func:`PyErr_WarnEx`, 2 es " "la función por encima de eso, y así sucesivamente." -#: ../Doc/c-api/exceptions.rst:321 +#: ../Doc/c-api/exceptions.rst:337 msgid "" "Warning categories must be subclasses of :c:data:`PyExc_Warning`; :c:data:" "`PyExc_Warning` is a subclass of :c:data:`PyExc_Exception`; the default " @@ -512,7 +537,7 @@ msgstr "" "están disponibles como variables globales cuyos nombres se enumeran en :ref:" "`standardwarningcategories`." -#: ../Doc/c-api/exceptions.rst:327 +#: ../Doc/c-api/exceptions.rst:343 msgid "" "For information about warning control, see the documentation for the :mod:" "`warnings` module and the :option:`-W` option in the command line " @@ -523,7 +548,7 @@ msgstr "" "documentación de la línea de comandos. No hay API de C para el control de " "advertencia." -#: ../Doc/c-api/exceptions.rst:334 +#: ../Doc/c-api/exceptions.rst:350 msgid "" "Issue a warning message with explicit control over all warning attributes. " "This is a straightforward wrapper around the Python function :func:`warnings." @@ -536,7 +561,7 @@ msgstr "" "más información. Los argumentos *module* y *registry* pueden establecerse " "en ``NULL`` para obtener el efecto predeterminado que se describe allí." -#: ../Doc/c-api/exceptions.rst:345 +#: ../Doc/c-api/exceptions.rst:361 msgid "" "Similar to :c:func:`PyErr_WarnExplicitObject` except that *message* and " "*module* are UTF-8 encoded strings, and *filename* is decoded from the :term:" @@ -546,7 +571,7 @@ msgstr "" "*module* son cadenas codificadas UTF-8, y *filename* se decodifica de :term:" "`filesystem encoding and error handler`." -#: ../Doc/c-api/exceptions.rst:352 +#: ../Doc/c-api/exceptions.rst:368 msgid "" "Function similar to :c:func:`PyErr_WarnEx`, but use :c:func:" "`PyUnicode_FromFormat` to format the warning message. *format* is an ASCII-" @@ -556,7 +581,7 @@ msgstr "" "`PyUnicode_FromFormat` para formatear el mensaje de advertencia. *format* es " "una cadena de caracteres codificada en ASCII." -#: ../Doc/c-api/exceptions.rst:361 +#: ../Doc/c-api/exceptions.rst:377 msgid "" "Function similar to :c:func:`PyErr_WarnFormat`, but *category* is :exc:" "`ResourceWarning` and it passes *source* to :func:`warnings.WarningMessage`." @@ -564,11 +589,11 @@ msgstr "" "Función similar a :c:func:`PyErr_WarnFormat`, pero *category* es :exc:" "`ResourceWarning` y pasa *source* a :func:`warnings.WarningMessage`." -#: ../Doc/c-api/exceptions.rst:368 +#: ../Doc/c-api/exceptions.rst:384 msgid "Querying the error indicator" msgstr "Consultando el indicador de error" -#: ../Doc/c-api/exceptions.rst:372 +#: ../Doc/c-api/exceptions.rst:388 msgid "" "Test whether the error indicator is set. If set, return the exception " "*type* (the first argument to the last call to one of the ``PyErr_Set*`` " @@ -582,11 +607,11 @@ msgstr "" "configurado, retorna ``NULL``. No posee una referencia al valor de retorno, " "por lo que no necesita usar :c:func:`Py_DECREF`." -#: ../Doc/c-api/exceptions.rst:378 +#: ../Doc/c-api/exceptions.rst:394 msgid "The caller must hold the GIL." msgstr "La persona que llama debe retener el GIL." -#: ../Doc/c-api/exceptions.rst:382 +#: ../Doc/c-api/exceptions.rst:398 msgid "" "Do not compare the return value to a specific exception; use :c:func:" "`PyErr_ExceptionMatches` instead, shown below. (The comparison could easily " @@ -599,7 +624,7 @@ msgstr "" "instancia en lugar de una clase, en el caso de una excepción de clase, o " "puede ser una subclase de la excepción esperada)." -#: ../Doc/c-api/exceptions.rst:390 +#: ../Doc/c-api/exceptions.rst:406 msgid "" "Equivalent to ``PyErr_GivenExceptionMatches(PyErr_Occurred(), exc)``. This " "should only be called when an exception is actually set; a memory access " @@ -609,7 +634,7 @@ msgstr "" "solo debería llamarse cuando se establece una excepción; se producirá una " "infracción de acceso a la memoria si no se ha producido ninguna excepción." -#: ../Doc/c-api/exceptions.rst:397 +#: ../Doc/c-api/exceptions.rst:413 msgid "" "Return true if the *given* exception matches the exception type in *exc*. " "If *exc* is a class object, this also returns true when *given* is an " @@ -622,7 +647,47 @@ msgstr "" "busca una coincidencia en todos los tipos de excepción en la tupla (y " "recursivamente en sub tuplas)." -#: ../Doc/c-api/exceptions.rst:405 +#: ../Doc/c-api/exceptions.rst:421 +msgid "" +"Return the exception currently being raised, clearing the error indicator at " +"the same time." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:424 +#, fuzzy +msgid "" +"This function is used by code that needs to catch exceptions, or code that " +"needs to save and restore the error indicator temporarily." +msgstr "" +"Normalmente, esta función solo la usa el código que necesita capturar " +"excepciones o el código que necesita guardar y restaurar el indicador de " +"error temporalmente, por ejemplo:" + +#: ../Doc/c-api/exceptions.rst:427 ../Doc/c-api/exceptions.rst:471 +msgid "For example::" +msgstr "" + +#: ../Doc/c-api/exceptions.rst:437 +msgid "" +":c:func:`PyErr_GetHandledException`, to save the exception currently being " +"handled." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:445 +msgid "" +"Set *exc* as the exception currently being raised, clearing the existing " +"exception if one is set." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:450 +msgid "This call steals a reference to *exc*, which must be a valid exception." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:459 +msgid "Use :c:func:`PyErr_GetRaisedException` instead." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:461 msgid "" "Retrieve the error indicator into three variables whose addresses are " "passed. If the error indicator is not set, set all three variables to " @@ -636,27 +701,32 @@ msgstr "" "a cada objeto recuperado. El objeto de valor y rastreo puede ser ``NULL`` " "incluso cuando el objeto de tipo no lo es." -#: ../Doc/c-api/exceptions.rst:412 +#: ../Doc/c-api/exceptions.rst:468 +#, fuzzy msgid "" -"This function is normally only used by code that needs to catch exceptions " -"or by code that needs to save and restore the error indicator temporarily, e." -"g.::" +"This function is normally only used by legacy code that needs to catch " +"exceptions or save and restore the error indicator temporarily." msgstr "" "Normalmente, esta función solo la usa el código que necesita capturar " "excepciones o el código que necesita guardar y restaurar el indicador de " "error temporalmente, por ejemplo:" -#: ../Doc/c-api/exceptions.rst:427 +#: ../Doc/c-api/exceptions.rst:487 +msgid "Use :c:func:`PyErr_SetRaisedException` instead." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:489 +#, fuzzy msgid "" -"Set the error indicator from the three objects. If the error indicator is " -"already set, it is cleared first. If the objects are ``NULL``, the error " -"indicator is cleared. Do not pass a ``NULL`` type and non-``NULL`` value or " -"traceback. The exception type should be a class. Do not pass an invalid " -"exception type or value. (Violating these rules will cause subtle problems " -"later.) This call takes away a reference to each object: you must own a " -"reference to each object before the call and after the call you no longer " -"own these references. (If you don't understand this, don't use this " -"function. I warned you.)" +"Set the error indicator from the three objects, *type*, *value*, and " +"*traceback*, clearing the existing exception if one is set. If the objects " +"are ``NULL``, the error indicator is cleared. Do not pass a ``NULL`` type " +"and non-``NULL`` value or traceback. The exception type should be a class. " +"Do not pass an invalid exception type or value. (Violating these rules will " +"cause subtle problems later.) This call takes away a reference to each " +"object: you must own a reference to each object before the call and after " +"the call you no longer own these references. (If you don't understand this, " +"don't use this function. I warned you.)" msgstr "" "Establece el indicador de error de los tres objetos. Si el indicador de " "error ya está configurado, se borra primero. Si los objetos son ``NULL``, el " @@ -668,17 +738,24 @@ msgstr "" "no posee estas referencias. (Si no comprende esto, no use esta función. Se " "lo advertí)." -#: ../Doc/c-api/exceptions.rst:439 +#: ../Doc/c-api/exceptions.rst:503 +#, fuzzy msgid "" -"This function is normally only used by code that needs to save and restore " -"the error indicator temporarily. Use :c:func:`PyErr_Fetch` to save the " -"current error indicator." +"This function is normally only used by legacy code that needs to save and " +"restore the error indicator temporarily. Use :c:func:`PyErr_Fetch` to save " +"the current error indicator." msgstr "" "Normalmente, esta función solo la usa el código que necesita guardar y " "restaurar el indicador de error temporalmente. Use :c:func:`PyErr_Fetch` " "para guardar el indicador de error actual." -#: ../Doc/c-api/exceptions.rst:446 +#: ../Doc/c-api/exceptions.rst:512 +msgid "" +"Use :c:func:`PyErr_GetRaisedException` instead, to avoid any possible de-" +"normalization." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:515 msgid "" "Under certain circumstances, the values returned by :c:func:`PyErr_Fetch` " "below can be \"unnormalized\", meaning that ``*exc`` is a class object but " @@ -695,7 +772,7 @@ msgstr "" "pasa nada. La normalización retrasada se implementa para mejorar el " "rendimiento." -#: ../Doc/c-api/exceptions.rst:454 +#: ../Doc/c-api/exceptions.rst:523 msgid "" "This function *does not* implicitly set the ``__traceback__`` attribute on " "the exception value. If setting the traceback appropriately is desired, the " @@ -705,7 +782,7 @@ msgstr "" "el valor de excepción. Si se desea establecer el rastreo de manera adecuada, " "se necesita el siguiente fragmento adicional:" -#: ../Doc/c-api/exceptions.rst:465 +#: ../Doc/c-api/exceptions.rst:534 msgid "" "Retrieve the active exception instance, as would be returned by :func:`sys." "exception`. This refers to an exception that was *already caught*, not to an " @@ -717,7 +794,7 @@ msgstr "" "excepción recién lanzada. Retorna una nueva referencia a la excepción o " "``NULL``. No modifica el estado de excepción del intérprete." -#: ../Doc/c-api/exceptions.rst:472 +#: ../Doc/c-api/exceptions.rst:541 msgid "" "This function is not normally used by code that wants to handle exceptions. " "Rather, it can be used when code needs to save and restore the exception " @@ -729,7 +806,7 @@ msgstr "" "restaurar el estado de excepción temporalmente. Use :c:func:" "`PyErr_SetHandledException` para restaurar o borrar el estado de excepción." -#: ../Doc/c-api/exceptions.rst:481 +#: ../Doc/c-api/exceptions.rst:550 msgid "" "Set the active exception, as known from ``sys.exception()``. This refers to " "an exception that was *already caught*, not to an exception that was freshly " @@ -740,7 +817,7 @@ msgstr "" "fue lanzada recientemente. Para borrar el estado de la excepción, pasa " "``NULL``." -#: ../Doc/c-api/exceptions.rst:488 +#: ../Doc/c-api/exceptions.rst:557 msgid "" "This function is not normally used by code that wants to handle exceptions. " "Rather, it can be used when code needs to save and restore the exception " @@ -752,7 +829,7 @@ msgstr "" "restaurar el estado de excepción temporalmente. Use :c:func:" "`PyErr_GetHandledException` para leer el estado de excepción." -#: ../Doc/c-api/exceptions.rst:497 +#: ../Doc/c-api/exceptions.rst:566 msgid "" "Retrieve the old-style representation of the exception info, as known from :" "func:`sys.exc_info`. This refers to an exception that was *already caught*, " @@ -768,7 +845,7 @@ msgstr "" "el estado de información de excepción. Esta función se mantiene por retro-" "compatibilidad. Es preferible usar :c:func:`PyErr_GetHandledException`." -#: ../Doc/c-api/exceptions.rst:506 +#: ../Doc/c-api/exceptions.rst:575 msgid "" "This function is not normally used by code that wants to handle exceptions. " "Rather, it can be used when code needs to save and restore the exception " @@ -780,7 +857,7 @@ msgstr "" "restaurar el estado de excepción temporalmente. Use :c:func:" "`PyErr_SetExcInfo` para restaurar o borrar el estado de excepción." -#: ../Doc/c-api/exceptions.rst:516 +#: ../Doc/c-api/exceptions.rst:585 msgid "" "Set the exception info, as known from ``sys.exc_info()``. This refers to an " "exception that was *already caught*, not to an exception that was freshly " @@ -796,7 +873,7 @@ msgstr "" "``NULL`` para los tres argumentos. Para ver las reglas generales sobre los " "tres argumentos, consulte :c:func:`PyErr_SetHandledException`." -#: ../Doc/c-api/exceptions.rst:525 +#: ../Doc/c-api/exceptions.rst:594 msgid "" "This function is not normally used by code that wants to handle exceptions. " "Rather, it can be used when code needs to save and restore the exception " @@ -808,7 +885,7 @@ msgstr "" "restaurar el estado de excepción temporalmente. Use :c:func:" "`PyErr_GetExcInfo` para leer el estado de excepción." -#: ../Doc/c-api/exceptions.rst:532 +#: ../Doc/c-api/exceptions.rst:601 msgid "" "The ``type`` and ``traceback`` arguments are no longer used and can be NULL. " "The interpreter now derives them from the exception instance (the ``value`` " @@ -818,15 +895,15 @@ msgstr "" "El intérprete los deriva ahora de la instancia de la excepción (el argumento " "``value``). La función sigue robando referencias de los tres argumentos." -#: ../Doc/c-api/exceptions.rst:540 +#: ../Doc/c-api/exceptions.rst:609 msgid "Signal Handling" msgstr "Manejo de señal" -#: ../Doc/c-api/exceptions.rst:550 +#: ../Doc/c-api/exceptions.rst:619 msgid "This function interacts with Python's signal handling." msgstr "Esta función interactúa con el manejo de señales de Python." -#: ../Doc/c-api/exceptions.rst:552 +#: ../Doc/c-api/exceptions.rst:621 msgid "" "If the function is called from the main thread and under the main Python " "interpreter, it checks whether a signal has been sent to the processes and " @@ -839,7 +916,7 @@ msgstr "" "mod:`signal` es compatible, esto puede invocar un manejador de señales " "escrito en Python." -#: ../Doc/c-api/exceptions.rst:557 +#: ../Doc/c-api/exceptions.rst:626 msgid "" "The function attempts to handle all pending signals, and then returns ``0``. " "However, if a Python signal handler raises an exception, the error indicator " @@ -854,7 +931,7 @@ msgstr "" "hayan manejado todavía: estarán en la siguiente invocación de :c:func:" "`PyErr_CheckSignals()`)." -#: ../Doc/c-api/exceptions.rst:563 +#: ../Doc/c-api/exceptions.rst:632 msgid "" "If the function is called from a non-main thread, or under a non-main Python " "interpreter, it does nothing and returns ``0``." @@ -862,7 +939,7 @@ msgstr "" "Si la función se llama desde un hilo no principal, o bajo un intérprete de " "Python no principal, no hace nada y devuelve ``0``." -#: ../Doc/c-api/exceptions.rst:566 +#: ../Doc/c-api/exceptions.rst:635 msgid "" "This function can be called by long-running C code that wants to be " "interruptible by user requests (such as by pressing Ctrl-C)." @@ -871,23 +948,25 @@ msgstr "" "que quiere ser interrumpible por las peticiones del usuario (como presionar " "Ctrl-C)." -#: ../Doc/c-api/exceptions.rst:570 +#: ../Doc/c-api/exceptions.rst:639 +#, fuzzy msgid "" -"The default Python signal handler for :const:`SIGINT` raises the :exc:" +"The default Python signal handler for :c:macro:`!SIGINT` raises the :exc:" "`KeyboardInterrupt` exception." msgstr "" "El controlador de señales de Python predeterminado para :const:`SIGINT` " "lanza la excepción :exc:`KeyboardInterrupt`." -#: ../Doc/c-api/exceptions.rst:581 +#: ../Doc/c-api/exceptions.rst:650 +#, fuzzy msgid "" -"Simulate the effect of a :const:`SIGINT` signal arriving. This is equivalent " -"to ``PyErr_SetInterruptEx(SIGINT)``." +"Simulate the effect of a :c:macro:`!SIGINT` signal arriving. This is " +"equivalent to ``PyErr_SetInterruptEx(SIGINT)``." msgstr "" "Simula el efecto de la llegada de una señal :const:`SIGINT`. Esto es " "equivalente a ``PyErr_SetInterruptEx(SIGINT)``." -#: ../Doc/c-api/exceptions.rst:585 ../Doc/c-api/exceptions.rst:612 +#: ../Doc/c-api/exceptions.rst:654 ../Doc/c-api/exceptions.rst:681 msgid "" "This function is async-signal-safe. It can be called without the :term:" "`GIL` and from a C signal handler." @@ -895,7 +974,7 @@ msgstr "" "Esta función es segura para señales asíncronas. Se puede llamar sin el :term:" "`GIL` y desde un manejador de señales de C." -#: ../Doc/c-api/exceptions.rst:595 +#: ../Doc/c-api/exceptions.rst:664 msgid "" "Simulate the effect of a signal arriving. The next time :c:func:" "`PyErr_CheckSignals` is called, the Python signal handler for the given " @@ -905,7 +984,7 @@ msgstr "" "c:func:`PyErr_CheckSignals`, se llamará al manejador de señal de Python para " "el número de señal dado." -#: ../Doc/c-api/exceptions.rst:599 +#: ../Doc/c-api/exceptions.rst:668 msgid "" "This function can be called by C code that sets up its own signal handling " "and wants Python signal handlers to be invoked as expected when an " @@ -917,15 +996,16 @@ msgstr "" "como se espera cuando se solicita una interrupción (por ejemplo, cuando el " "usuario presiona Ctrl-C para interrumpir una operación)." -#: ../Doc/c-api/exceptions.rst:604 +#: ../Doc/c-api/exceptions.rst:673 +#, fuzzy msgid "" -"If the given signal isn't handled by Python (it was set to :data:`signal." -"SIG_DFL` or :data:`signal.SIG_IGN`), it will be ignored." +"If the given signal isn't handled by Python (it was set to :py:const:`signal." +"SIG_DFL` or :py:const:`signal.SIG_IGN`), it will be ignored." msgstr "" "Si la señal dada no es manejada por Python (se configuró en :data:`signal." "SIG_DFL` o :data:`signal.SIG_IGN`), se ignorará." -#: ../Doc/c-api/exceptions.rst:607 +#: ../Doc/c-api/exceptions.rst:676 msgid "" "If *signum* is outside of the allowed range of signal numbers, ``-1`` is " "returned. Otherwise, ``0`` is returned. The error indicator is never " @@ -935,7 +1015,7 @@ msgstr "" "``-1``. De lo contrario, se devuelve ``0``. Esta función nunca cambia el " "indicador de error." -#: ../Doc/c-api/exceptions.rst:620 +#: ../Doc/c-api/exceptions.rst:689 msgid "" "This utility function specifies a file descriptor to which the signal number " "is written as a single byte whenever a signal is received. *fd* must be non-" @@ -945,7 +1025,7 @@ msgstr "" "número de señal se escribe como un solo byte cada vez que se recibe una " "señal. *fd* debe ser sin bloqueo. retorna el descriptor de archivo anterior." -#: ../Doc/c-api/exceptions.rst:624 +#: ../Doc/c-api/exceptions.rst:693 msgid "" "The value ``-1`` disables the feature; this is the initial state. This is " "equivalent to :func:`signal.set_wakeup_fd` in Python, but without any error " @@ -957,15 +1037,15 @@ msgstr "" "de errores. *fd* debe ser un descriptor de archivo válido. La función solo " "debe llamarse desde el hilo principal." -#: ../Doc/c-api/exceptions.rst:629 +#: ../Doc/c-api/exceptions.rst:698 msgid "On Windows, the function now also supports socket handles." msgstr "En Windows, la función ahora también admite controladores de socket." -#: ../Doc/c-api/exceptions.rst:634 +#: ../Doc/c-api/exceptions.rst:703 msgid "Exception Classes" msgstr "Clases de excepción" -#: ../Doc/c-api/exceptions.rst:638 +#: ../Doc/c-api/exceptions.rst:707 msgid "" "This utility function creates and returns a new exception class. The *name* " "argument must be the name of the new exception, a C string of the form " @@ -979,7 +1059,7 @@ msgstr "" "*dict* son normalmente ``NULL``. Esto crea un objeto de clase derivado de :" "exc:`Exception` (accesible en C como :c:data:`PyExc_Exception`)." -#: ../Doc/c-api/exceptions.rst:644 +#: ../Doc/c-api/exceptions.rst:713 msgid "" "The :attr:`__module__` attribute of the new class is set to the first part " "(up to the last dot) of the *name* argument, and the class name is set to " @@ -995,7 +1075,7 @@ msgstr "" "solo una clase o una tupla de clases. El argumento *dict* se puede usar para " "especificar un diccionario de variables de clase y métodos." -#: ../Doc/c-api/exceptions.rst:653 +#: ../Doc/c-api/exceptions.rst:722 msgid "" "Same as :c:func:`PyErr_NewException`, except that the new exception class " "can easily be given a docstring: If *doc* is non-``NULL``, it will be used " @@ -1006,11 +1086,11 @@ msgstr "" "es ``NULL``, se utilizará como la cadena de documentación para la clase de " "excepción." -#: ../Doc/c-api/exceptions.rst:661 +#: ../Doc/c-api/exceptions.rst:730 msgid "Exception Objects" msgstr "Objetos excepción" -#: ../Doc/c-api/exceptions.rst:665 +#: ../Doc/c-api/exceptions.rst:734 msgid "" "Return the traceback associated with the exception as a new reference, as " "accessible from Python through :attr:`__traceback__`. If there is no " @@ -1020,7 +1100,7 @@ msgstr "" "accesible desde Python a través de :attr:`__traceback__`. Si no hay un " "rastreo asociado, esto retorna ``NULL``." -#: ../Doc/c-api/exceptions.rst:672 +#: ../Doc/c-api/exceptions.rst:741 msgid "" "Set the traceback associated with the exception to *tb*. Use ``Py_None`` to " "clear it." @@ -1028,7 +1108,7 @@ msgstr "" "Establezca el rastreo asociado con la excepción a *tb*. Use ``Py_None`` para " "borrarlo." -#: ../Doc/c-api/exceptions.rst:678 +#: ../Doc/c-api/exceptions.rst:747 msgid "" "Return the context (another exception instance during whose handling *ex* " "was raised) associated with the exception as a new reference, as accessible " @@ -1040,7 +1120,7 @@ msgstr "" "Python a través de :attr:`__context__`. Si no hay un contexto asociado, esto " "retorna ``NULL``." -#: ../Doc/c-api/exceptions.rst:686 +#: ../Doc/c-api/exceptions.rst:755 msgid "" "Set the context associated with the exception to *ctx*. Use ``NULL`` to " "clear it. There is no type check to make sure that *ctx* is an exception " @@ -1050,9 +1130,10 @@ msgstr "" "borrarlo. No hay verificación de tipo para asegurarse de que *ctx* es una " "instancia de excepción. Esto roba una referencia a *ctx*." -#: ../Doc/c-api/exceptions.rst:693 +#: ../Doc/c-api/exceptions.rst:762 +#, fuzzy msgid "" -"Return the cause (either an exception instance, or :const:`None`, set by " +"Return the cause (either an exception instance, or ``None``, set by " "``raise ... from ...``) associated with the exception as a new reference, as " "accessible from Python through :attr:`__cause__`." msgstr "" @@ -1060,28 +1141,49 @@ msgstr "" "establecida por ``raise ... from ...``) asociada con la excepción como una " "nueva referencia, como accesible desde Python a través de :attr:`__causa__`." -#: ../Doc/c-api/exceptions.rst:700 +#: ../Doc/c-api/exceptions.rst:769 +#, fuzzy msgid "" "Set the cause associated with the exception to *cause*. Use ``NULL`` to " "clear it. There is no type check to make sure that *cause* is either an " -"exception instance or :const:`None`. This steals a reference to *cause*." +"exception instance or ``None``. This steals a reference to *cause*." msgstr "" "Establece la causa asociada con la excepción a *cause*. Use ``NULL`` para " "borrarlo. No hay verificación de tipo para asegurarse de que *cause* sea una " "instancia de excepción o :const:`None`. Esto roba una referencia a *cause*." -#: ../Doc/c-api/exceptions.rst:704 +#: ../Doc/c-api/exceptions.rst:773 msgid "" ":attr:`__suppress_context__` is implicitly set to ``True`` by this function." msgstr "" ":attr:`__suppress_context__` es implícitamente establecido en ``True`` por " "esta función." -#: ../Doc/c-api/exceptions.rst:710 +#: ../Doc/c-api/exceptions.rst:778 +msgid "Return :attr:`~BaseException.args` of exception *ex*." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:783 +msgid "Set :attr:`~BaseException.args` of exception *ex* to *args*." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:787 +msgid "" +"Implement part of the interpreter's implementation of :keyword:`!except*`. " +"*orig* is the original exception that was caught, and *excs* is the list of " +"the exceptions that need to be raised. This list contains the the unhandled " +"part of *orig*, if any, as well as the exceptions that were raised from the :" +"keyword:`!except*` clauses (so they have a different traceback from *orig*) " +"and those that were reraised (and have the same traceback as *orig*). Return " +"the :exc:`ExceptionGroup` that needs to be reraised in the end, or ``None`` " +"if there is nothing to reraise." +msgstr "" + +#: ../Doc/c-api/exceptions.rst:801 msgid "Unicode Exception Objects" msgstr "Objetos unicode de excepción" -#: ../Doc/c-api/exceptions.rst:712 +#: ../Doc/c-api/exceptions.rst:803 msgid "" "The following functions are used to create and modify Unicode exceptions " "from C." @@ -1089,7 +1191,7 @@ msgstr "" "Las siguientes funciones se utilizan para crear y modificar excepciones " "Unicode de C." -#: ../Doc/c-api/exceptions.rst:716 +#: ../Doc/c-api/exceptions.rst:807 msgid "" "Create a :class:`UnicodeDecodeError` object with the attributes *encoding*, " "*object*, *length*, *start*, *end* and *reason*. *encoding* and *reason* are " @@ -1099,15 +1201,15 @@ msgstr "" "*object*, *length*, *start*, *end* y *reason*. *encoding* y *reason* son " "cadenas codificadas UTF-8." -#: ../Doc/c-api/exceptions.rst:723 +#: ../Doc/c-api/exceptions.rst:814 msgid "Return the *encoding* attribute of the given exception object." msgstr "Retorna el atributo *encoding* del objeto de excepción dado." -#: ../Doc/c-api/exceptions.rst:729 +#: ../Doc/c-api/exceptions.rst:820 msgid "Return the *object* attribute of the given exception object." msgstr "Retorna el atributo *object* del objeto de excepción dado." -#: ../Doc/c-api/exceptions.rst:735 +#: ../Doc/c-api/exceptions.rst:826 msgid "" "Get the *start* attribute of the given exception object and place it into " "*\\*start*. *start* must not be ``NULL``. Return ``0`` on success, ``-1`` " @@ -1117,7 +1219,7 @@ msgstr "" "*\\*start*. *start* no debe ser ``NULL``. retorna ``0`` en caso de éxito, " "``-1`` en caso de error." -#: ../Doc/c-api/exceptions.rst:743 +#: ../Doc/c-api/exceptions.rst:834 msgid "" "Set the *start* attribute of the given exception object to *start*. Return " "``0`` on success, ``-1`` on failure." @@ -1125,7 +1227,7 @@ msgstr "" "Establece el atributo *start* del objeto de excepción dado en *start*. " "Retorna ``0`` en caso de éxito, ``-1`` en caso de error." -#: ../Doc/c-api/exceptions.rst:750 +#: ../Doc/c-api/exceptions.rst:841 msgid "" "Get the *end* attribute of the given exception object and place it into " "*\\*end*. *end* must not be ``NULL``. Return ``0`` on success, ``-1`` on " @@ -1135,7 +1237,7 @@ msgstr "" "*\\*end*. *end* no debe ser ``NULL``. retorna ``0`` en caso de éxito, ``-1`` " "en caso de error." -#: ../Doc/c-api/exceptions.rst:758 +#: ../Doc/c-api/exceptions.rst:849 msgid "" "Set the *end* attribute of the given exception object to *end*. Return " "``0`` on success, ``-1`` on failure." @@ -1143,11 +1245,11 @@ msgstr "" "Establece el atributo *end* del objeto de excepción dado en *end*. Retorna " "``0`` en caso de éxito, ``-1`` en caso de error." -#: ../Doc/c-api/exceptions.rst:765 +#: ../Doc/c-api/exceptions.rst:856 msgid "Return the *reason* attribute of the given exception object." msgstr "Retorna el atributo *reason* del objeto de excepción dado." -#: ../Doc/c-api/exceptions.rst:771 +#: ../Doc/c-api/exceptions.rst:862 msgid "" "Set the *reason* attribute of the given exception object to *reason*. " "Return ``0`` on success, ``-1`` on failure." @@ -1155,11 +1257,11 @@ msgstr "" "Establece el atributo *reason* del objeto de excepción dado en *reason*. " "Retorna ``0`` en caso de éxito, ``-1`` en caso de error." -#: ../Doc/c-api/exceptions.rst:778 +#: ../Doc/c-api/exceptions.rst:869 msgid "Recursion Control" msgstr "Control de recursión" -#: ../Doc/c-api/exceptions.rst:780 +#: ../Doc/c-api/exceptions.rst:871 msgid "" "These two functions provide a way to perform safe recursive calls at the C " "level, both in the core and in extension modules. They are needed if the " @@ -1175,23 +1277,24 @@ msgstr "" "son necesarios para las implementaciones de *tp_call* porque :ref:`call " "protocol ` se encarga del manejo de la recursividad." -#: ../Doc/c-api/exceptions.rst:789 +#: ../Doc/c-api/exceptions.rst:880 msgid "Marks a point where a recursive C-level call is about to be performed." msgstr "" "Marca un punto donde una llamada recursiva de nivel C está a punto de " "realizarse." -#: ../Doc/c-api/exceptions.rst:791 +#: ../Doc/c-api/exceptions.rst:882 +#, fuzzy msgid "" -"If :const:`USE_STACKCHECK` is defined, this function checks if the OS stack " -"overflowed using :c:func:`PyOS_CheckStack`. In this is the case, it sets a :" -"exc:`MemoryError` and returns a nonzero value." +"If :c:macro:`USE_STACKCHECK` is defined, this function checks if the OS " +"stack overflowed using :c:func:`PyOS_CheckStack`. In this is the case, it " +"sets a :exc:`MemoryError` and returns a nonzero value." msgstr "" "Si :const:`USE_STACKCHECK` está definido, esta función verifica si la pila " "del SO se desbordó usando :c:func:`PyOS_CheckStack`. En este caso, establece " "un :exc:`MemoryError` y retorna un valor distinto de cero." -#: ../Doc/c-api/exceptions.rst:795 +#: ../Doc/c-api/exceptions.rst:886 msgid "" "The function then checks if the recursion limit is reached. If this is the " "case, a :exc:`RecursionError` is set and a nonzero value is returned. " @@ -1201,7 +1304,7 @@ msgstr "" "caso, se establece a :exc:`RecursionError` y se retorna un valor distinto de " "cero. De lo contrario, se retorna cero." -#: ../Doc/c-api/exceptions.rst:799 +#: ../Doc/c-api/exceptions.rst:890 msgid "" "*where* should be a UTF-8 encoded string such as ``\" in instance check\"`` " "to be concatenated to the :exc:`RecursionError` message caused by the " @@ -1211,11 +1314,14 @@ msgstr "" "la comprobación de instancia\"`` para concatenarse con el mensaje :exc:" "`RecursionError` causado por el límite de profundidad de recursión." -#: ../Doc/c-api/exceptions.rst:803 ../Doc/c-api/exceptions.rst:811 -msgid "This function is now also available in the limited API." +#: ../Doc/c-api/exceptions.rst:894 ../Doc/c-api/exceptions.rst:902 +#, fuzzy +msgid "" +"This function is now also available in the :ref:`limited API `." msgstr "Esta función ahora también está disponible en la API limitada." -#: ../Doc/c-api/exceptions.rst:808 +#: ../Doc/c-api/exceptions.rst:899 msgid "" "Ends a :c:func:`Py_EnterRecursiveCall`. Must be called once for each " "*successful* invocation of :c:func:`Py_EnterRecursiveCall`." @@ -1223,7 +1329,7 @@ msgstr "" "Termina una :c:func:`Py_EnterRecursiveCall`. Se debe llamar una vez por cada " "invocación *exitosa* de :c:func:`Py_EnterRecursiveCall`." -#: ../Doc/c-api/exceptions.rst:814 +#: ../Doc/c-api/exceptions.rst:905 msgid "" "Properly implementing :c:member:`~PyTypeObject.tp_repr` for container types " "requires special recursion handling. In addition to protecting the stack, :" @@ -1238,7 +1344,7 @@ msgstr "" "esta funcionalidad. Efectivamente, estos son los C equivalentes a :func:" "`reprlib.recursive_repr`." -#: ../Doc/c-api/exceptions.rst:822 +#: ../Doc/c-api/exceptions.rst:913 msgid "" "Called at the beginning of the :c:member:`~PyTypeObject.tp_repr` " "implementation to detect cycles." @@ -1246,7 +1352,7 @@ msgstr "" "Llamado al comienzo de la implementación :c:member:`~PyTypeObject.tp_repr` " "para detectar ciclos." -#: ../Doc/c-api/exceptions.rst:825 +#: ../Doc/c-api/exceptions.rst:916 msgid "" "If the object has already been processed, the function returns a positive " "integer. In that case the :c:member:`~PyTypeObject.tp_repr` implementation " @@ -1259,7 +1365,7 @@ msgstr "" "objetos :class:`dict` retornan ``{...}`` y los objetos :class:`list` " "retornan ``[...]``." -#: ../Doc/c-api/exceptions.rst:831 +#: ../Doc/c-api/exceptions.rst:922 msgid "" "The function will return a negative integer if the recursion limit is " "reached. In that case the :c:member:`~PyTypeObject.tp_repr` implementation " @@ -1269,7 +1375,7 @@ msgstr "" "recursión. En ese caso, la implementación :c:member:`~PyTypeObject.tp_repr` " "normalmente debería retornar ``NULL``." -#: ../Doc/c-api/exceptions.rst:835 +#: ../Doc/c-api/exceptions.rst:926 msgid "" "Otherwise, the function returns zero and the :c:member:`~PyTypeObject." "tp_repr` implementation can continue normally." @@ -1277,7 +1383,7 @@ msgstr "" "De lo contrario, la función retorna cero y la implementación :c:member:" "`~PyTypeObject.tp_repr` puede continuar normalmente." -#: ../Doc/c-api/exceptions.rst:840 +#: ../Doc/c-api/exceptions.rst:931 msgid "" "Ends a :c:func:`Py_ReprEnter`. Must be called once for each invocation of :" "c:func:`Py_ReprEnter` that returns zero." @@ -1285,11 +1391,11 @@ msgstr "" "Termina a :c:func:`Py_ReprEnter`. Se debe llamar una vez por cada invocación " "de :c:func:`Py_ReprEnter` que retorna cero." -#: ../Doc/c-api/exceptions.rst:847 +#: ../Doc/c-api/exceptions.rst:938 msgid "Standard Exceptions" msgstr "Excepciones estándar" -#: ../Doc/c-api/exceptions.rst:849 +#: ../Doc/c-api/exceptions.rst:940 msgid "" "All standard Python exceptions are available as global variables whose names " "are ``PyExc_`` followed by the Python exception name. These have the type :" @@ -1301,451 +1407,451 @@ msgstr "" "Python. Estos tienen el tipo :c:expr:`PyObject*`; todos son objetos de " "clase. Para completar, aquí están todas las variables:" -#: ../Doc/c-api/exceptions.rst:910 ../Doc/c-api/exceptions.rst:1043 -#: ../Doc/c-api/exceptions.rst:1088 +#: ../Doc/c-api/exceptions.rst:1001 ../Doc/c-api/exceptions.rst:1134 +#: ../Doc/c-api/exceptions.rst:1179 msgid "C Name" msgstr "Nombre en C" -#: ../Doc/c-api/exceptions.rst:910 ../Doc/c-api/exceptions.rst:1088 +#: ../Doc/c-api/exceptions.rst:1001 ../Doc/c-api/exceptions.rst:1179 msgid "Python Name" msgstr "Nombre en Python" -#: ../Doc/c-api/exceptions.rst:910 ../Doc/c-api/exceptions.rst:1043 -#: ../Doc/c-api/exceptions.rst:1088 +#: ../Doc/c-api/exceptions.rst:1001 ../Doc/c-api/exceptions.rst:1134 +#: ../Doc/c-api/exceptions.rst:1179 msgid "Notes" msgstr "Notas" -#: ../Doc/c-api/exceptions.rst:912 +#: ../Doc/c-api/exceptions.rst:1003 msgid ":c:data:`PyExc_BaseException`" msgstr ":c:data:`PyExc_BaseException`" -#: ../Doc/c-api/exceptions.rst:912 +#: ../Doc/c-api/exceptions.rst:1003 msgid ":exc:`BaseException`" msgstr ":exc:`BaseException`" -#: ../Doc/c-api/exceptions.rst:912 ../Doc/c-api/exceptions.rst:914 -#: ../Doc/c-api/exceptions.rst:916 ../Doc/c-api/exceptions.rst:962 -#: ../Doc/c-api/exceptions.rst:974 +#: ../Doc/c-api/exceptions.rst:1003 ../Doc/c-api/exceptions.rst:1005 +#: ../Doc/c-api/exceptions.rst:1007 ../Doc/c-api/exceptions.rst:1053 +#: ../Doc/c-api/exceptions.rst:1065 msgid "[1]_" msgstr "[1]_" -#: ../Doc/c-api/exceptions.rst:914 +#: ../Doc/c-api/exceptions.rst:1005 msgid ":c:data:`PyExc_Exception`" msgstr ":c:data:`PyExc_Exception`" -#: ../Doc/c-api/exceptions.rst:914 +#: ../Doc/c-api/exceptions.rst:1005 msgid ":exc:`Exception`" msgstr ":exc:`Exception`" -#: ../Doc/c-api/exceptions.rst:916 +#: ../Doc/c-api/exceptions.rst:1007 msgid ":c:data:`PyExc_ArithmeticError`" msgstr ":c:data:`PyExc_ArithmeticError`" -#: ../Doc/c-api/exceptions.rst:916 +#: ../Doc/c-api/exceptions.rst:1007 msgid ":exc:`ArithmeticError`" msgstr ":exc:`ArithmeticError`" -#: ../Doc/c-api/exceptions.rst:918 +#: ../Doc/c-api/exceptions.rst:1009 msgid ":c:data:`PyExc_AssertionError`" msgstr ":c:data:`PyExc_AssertionError`" -#: ../Doc/c-api/exceptions.rst:918 +#: ../Doc/c-api/exceptions.rst:1009 msgid ":exc:`AssertionError`" msgstr ":exc:`AssertionError`" -#: ../Doc/c-api/exceptions.rst:920 +#: ../Doc/c-api/exceptions.rst:1011 msgid ":c:data:`PyExc_AttributeError`" msgstr ":c:data:`PyExc_AttributeError`" -#: ../Doc/c-api/exceptions.rst:920 +#: ../Doc/c-api/exceptions.rst:1011 msgid ":exc:`AttributeError`" msgstr ":exc:`AttributeError`" -#: ../Doc/c-api/exceptions.rst:922 +#: ../Doc/c-api/exceptions.rst:1013 msgid ":c:data:`PyExc_BlockingIOError`" msgstr ":c:data:`PyExc_BlockingIOError`" -#: ../Doc/c-api/exceptions.rst:922 +#: ../Doc/c-api/exceptions.rst:1013 msgid ":exc:`BlockingIOError`" msgstr ":exc:`BlockingIOError`" -#: ../Doc/c-api/exceptions.rst:924 +#: ../Doc/c-api/exceptions.rst:1015 msgid ":c:data:`PyExc_BrokenPipeError`" msgstr ":c:data:`PyExc_BrokenPipeError`" -#: ../Doc/c-api/exceptions.rst:924 +#: ../Doc/c-api/exceptions.rst:1015 msgid ":exc:`BrokenPipeError`" msgstr ":exc:`BrokenPipeError`" -#: ../Doc/c-api/exceptions.rst:926 +#: ../Doc/c-api/exceptions.rst:1017 msgid ":c:data:`PyExc_BufferError`" msgstr ":c:data:`PyExc_BufferError`" -#: ../Doc/c-api/exceptions.rst:926 +#: ../Doc/c-api/exceptions.rst:1017 msgid ":exc:`BufferError`" msgstr ":exc:`BufferError`" -#: ../Doc/c-api/exceptions.rst:928 +#: ../Doc/c-api/exceptions.rst:1019 msgid ":c:data:`PyExc_ChildProcessError`" msgstr ":c:data:`PyExc_ChildProcessError`" -#: ../Doc/c-api/exceptions.rst:928 +#: ../Doc/c-api/exceptions.rst:1019 msgid ":exc:`ChildProcessError`" msgstr ":exc:`ChildProcessError`" -#: ../Doc/c-api/exceptions.rst:930 +#: ../Doc/c-api/exceptions.rst:1021 msgid ":c:data:`PyExc_ConnectionAbortedError`" msgstr ":c:data:`PyExc_ConnectionAbortedError`" -#: ../Doc/c-api/exceptions.rst:930 +#: ../Doc/c-api/exceptions.rst:1021 msgid ":exc:`ConnectionAbortedError`" msgstr ":exc:`ConnectionAbortedError`" -#: ../Doc/c-api/exceptions.rst:932 +#: ../Doc/c-api/exceptions.rst:1023 msgid ":c:data:`PyExc_ConnectionError`" msgstr ":c:data:`PyExc_ConnectionError`" -#: ../Doc/c-api/exceptions.rst:932 +#: ../Doc/c-api/exceptions.rst:1023 msgid ":exc:`ConnectionError`" msgstr ":exc:`ConnectionError`" -#: ../Doc/c-api/exceptions.rst:934 +#: ../Doc/c-api/exceptions.rst:1025 msgid ":c:data:`PyExc_ConnectionRefusedError`" msgstr ":c:data:`PyExc_ConnectionRefusedError`" -#: ../Doc/c-api/exceptions.rst:934 +#: ../Doc/c-api/exceptions.rst:1025 msgid ":exc:`ConnectionRefusedError`" msgstr ":exc:`ConnectionRefusedError`" -#: ../Doc/c-api/exceptions.rst:936 +#: ../Doc/c-api/exceptions.rst:1027 msgid ":c:data:`PyExc_ConnectionResetError`" msgstr ":c:data:`PyExc_ConnectionResetError`" -#: ../Doc/c-api/exceptions.rst:936 +#: ../Doc/c-api/exceptions.rst:1027 msgid ":exc:`ConnectionResetError`" msgstr ":exc:`ConnectionResetError`" -#: ../Doc/c-api/exceptions.rst:938 +#: ../Doc/c-api/exceptions.rst:1029 msgid ":c:data:`PyExc_EOFError`" msgstr ":c:data:`PyExc_EOFError`" -#: ../Doc/c-api/exceptions.rst:938 +#: ../Doc/c-api/exceptions.rst:1029 msgid ":exc:`EOFError`" msgstr ":exc:`EOFError`" -#: ../Doc/c-api/exceptions.rst:940 +#: ../Doc/c-api/exceptions.rst:1031 msgid ":c:data:`PyExc_FileExistsError`" msgstr ":c:data:`PyExc_FileExistsError`" -#: ../Doc/c-api/exceptions.rst:940 +#: ../Doc/c-api/exceptions.rst:1031 msgid ":exc:`FileExistsError`" msgstr ":exc:`FileExistsError`" -#: ../Doc/c-api/exceptions.rst:942 +#: ../Doc/c-api/exceptions.rst:1033 msgid ":c:data:`PyExc_FileNotFoundError`" msgstr ":c:data:`PyExc_FileNotFoundError`" -#: ../Doc/c-api/exceptions.rst:942 +#: ../Doc/c-api/exceptions.rst:1033 msgid ":exc:`FileNotFoundError`" msgstr ":exc:`FileNotFoundError`" -#: ../Doc/c-api/exceptions.rst:944 +#: ../Doc/c-api/exceptions.rst:1035 msgid ":c:data:`PyExc_FloatingPointError`" msgstr ":c:data:`PyExc_FloatingPointError`" -#: ../Doc/c-api/exceptions.rst:944 +#: ../Doc/c-api/exceptions.rst:1035 msgid ":exc:`FloatingPointError`" msgstr ":exc:`FloatingPointError`" -#: ../Doc/c-api/exceptions.rst:946 +#: ../Doc/c-api/exceptions.rst:1037 msgid ":c:data:`PyExc_GeneratorExit`" msgstr ":c:data:`PyExc_GeneratorExit`" -#: ../Doc/c-api/exceptions.rst:946 +#: ../Doc/c-api/exceptions.rst:1037 msgid ":exc:`GeneratorExit`" msgstr ":exc:`GeneratorExit`" -#: ../Doc/c-api/exceptions.rst:948 +#: ../Doc/c-api/exceptions.rst:1039 msgid ":c:data:`PyExc_ImportError`" msgstr ":c:data:`PyExc_ImportError`" -#: ../Doc/c-api/exceptions.rst:948 +#: ../Doc/c-api/exceptions.rst:1039 msgid ":exc:`ImportError`" msgstr ":exc:`ImportError`" -#: ../Doc/c-api/exceptions.rst:950 +#: ../Doc/c-api/exceptions.rst:1041 msgid ":c:data:`PyExc_IndentationError`" msgstr ":c:data:`PyExc_IndentationError`" -#: ../Doc/c-api/exceptions.rst:950 +#: ../Doc/c-api/exceptions.rst:1041 msgid ":exc:`IndentationError`" msgstr ":exc:`IndentationError`" -#: ../Doc/c-api/exceptions.rst:952 +#: ../Doc/c-api/exceptions.rst:1043 msgid ":c:data:`PyExc_IndexError`" msgstr ":c:data:`PyExc_IndexError`" -#: ../Doc/c-api/exceptions.rst:952 +#: ../Doc/c-api/exceptions.rst:1043 msgid ":exc:`IndexError`" msgstr ":exc:`IndexError`" -#: ../Doc/c-api/exceptions.rst:954 +#: ../Doc/c-api/exceptions.rst:1045 msgid ":c:data:`PyExc_InterruptedError`" msgstr ":c:data:`PyExc_InterruptedError`" -#: ../Doc/c-api/exceptions.rst:954 +#: ../Doc/c-api/exceptions.rst:1045 msgid ":exc:`InterruptedError`" msgstr ":exc:`InterruptedError`" -#: ../Doc/c-api/exceptions.rst:956 +#: ../Doc/c-api/exceptions.rst:1047 msgid ":c:data:`PyExc_IsADirectoryError`" msgstr ":c:data:`PyExc_IsADirectoryError`" -#: ../Doc/c-api/exceptions.rst:956 +#: ../Doc/c-api/exceptions.rst:1047 msgid ":exc:`IsADirectoryError`" msgstr ":exc:`IsADirectoryError`" -#: ../Doc/c-api/exceptions.rst:958 +#: ../Doc/c-api/exceptions.rst:1049 msgid ":c:data:`PyExc_KeyError`" msgstr ":c:data:`PyExc_KeyError`" -#: ../Doc/c-api/exceptions.rst:958 +#: ../Doc/c-api/exceptions.rst:1049 msgid ":exc:`KeyError`" msgstr ":exc:`KeyError`" -#: ../Doc/c-api/exceptions.rst:960 +#: ../Doc/c-api/exceptions.rst:1051 msgid ":c:data:`PyExc_KeyboardInterrupt`" msgstr ":c:data:`PyExc_KeyboardInterrupt`" -#: ../Doc/c-api/exceptions.rst:960 +#: ../Doc/c-api/exceptions.rst:1051 msgid ":exc:`KeyboardInterrupt`" msgstr ":exc:`KeyboardInterrupt`" -#: ../Doc/c-api/exceptions.rst:962 +#: ../Doc/c-api/exceptions.rst:1053 msgid ":c:data:`PyExc_LookupError`" msgstr ":c:data:`PyExc_LookupError`" -#: ../Doc/c-api/exceptions.rst:962 +#: ../Doc/c-api/exceptions.rst:1053 msgid ":exc:`LookupError`" msgstr ":exc:`LookupError`" -#: ../Doc/c-api/exceptions.rst:964 +#: ../Doc/c-api/exceptions.rst:1055 msgid ":c:data:`PyExc_MemoryError`" msgstr ":c:data:`PyExc_MemoryError`" -#: ../Doc/c-api/exceptions.rst:964 +#: ../Doc/c-api/exceptions.rst:1055 msgid ":exc:`MemoryError`" msgstr ":exc:`MemoryError`" -#: ../Doc/c-api/exceptions.rst:966 +#: ../Doc/c-api/exceptions.rst:1057 msgid ":c:data:`PyExc_ModuleNotFoundError`" msgstr ":c:data:`PyExc_ModuleNotFoundError`" -#: ../Doc/c-api/exceptions.rst:966 +#: ../Doc/c-api/exceptions.rst:1057 msgid ":exc:`ModuleNotFoundError`" msgstr ":exc:`ModuleNotFoundError`" -#: ../Doc/c-api/exceptions.rst:968 +#: ../Doc/c-api/exceptions.rst:1059 msgid ":c:data:`PyExc_NameError`" msgstr ":c:data:`PyExc_NameError`" -#: ../Doc/c-api/exceptions.rst:968 +#: ../Doc/c-api/exceptions.rst:1059 msgid ":exc:`NameError`" msgstr ":exc:`NameError`" -#: ../Doc/c-api/exceptions.rst:970 +#: ../Doc/c-api/exceptions.rst:1061 msgid ":c:data:`PyExc_NotADirectoryError`" msgstr ":c:data:`PyExc_NotADirectoryError`" -#: ../Doc/c-api/exceptions.rst:970 +#: ../Doc/c-api/exceptions.rst:1061 msgid ":exc:`NotADirectoryError`" msgstr ":exc:`NotADirectoryError`" -#: ../Doc/c-api/exceptions.rst:972 +#: ../Doc/c-api/exceptions.rst:1063 msgid ":c:data:`PyExc_NotImplementedError`" msgstr ":c:data:`PyExc_NotImplementedError`" -#: ../Doc/c-api/exceptions.rst:972 +#: ../Doc/c-api/exceptions.rst:1063 msgid ":exc:`NotImplementedError`" msgstr ":exc:`NotImplementedError`" -#: ../Doc/c-api/exceptions.rst:974 +#: ../Doc/c-api/exceptions.rst:1065 msgid ":c:data:`PyExc_OSError`" msgstr ":c:data:`PyExc_OSError`" -#: ../Doc/c-api/exceptions.rst:974 +#: ../Doc/c-api/exceptions.rst:1065 msgid ":exc:`OSError`" msgstr ":exc:`OSError`" -#: ../Doc/c-api/exceptions.rst:976 +#: ../Doc/c-api/exceptions.rst:1067 msgid ":c:data:`PyExc_OverflowError`" msgstr ":c:data:`PyExc_OverflowError`" -#: ../Doc/c-api/exceptions.rst:976 +#: ../Doc/c-api/exceptions.rst:1067 msgid ":exc:`OverflowError`" msgstr ":exc:`OverflowError`" -#: ../Doc/c-api/exceptions.rst:978 +#: ../Doc/c-api/exceptions.rst:1069 msgid ":c:data:`PyExc_PermissionError`" msgstr ":c:data:`PyExc_PermissionError`" -#: ../Doc/c-api/exceptions.rst:978 +#: ../Doc/c-api/exceptions.rst:1069 msgid ":exc:`PermissionError`" msgstr ":exc:`PermissionError`" -#: ../Doc/c-api/exceptions.rst:980 +#: ../Doc/c-api/exceptions.rst:1071 msgid ":c:data:`PyExc_ProcessLookupError`" msgstr ":c:data:`PyExc_ProcessLookupError`" -#: ../Doc/c-api/exceptions.rst:980 +#: ../Doc/c-api/exceptions.rst:1071 msgid ":exc:`ProcessLookupError`" msgstr ":exc:`ProcessLookupError`" -#: ../Doc/c-api/exceptions.rst:982 +#: ../Doc/c-api/exceptions.rst:1073 msgid ":c:data:`PyExc_RecursionError`" msgstr ":c:data:`PyExc_RecursionError`" -#: ../Doc/c-api/exceptions.rst:982 +#: ../Doc/c-api/exceptions.rst:1073 msgid ":exc:`RecursionError`" msgstr ":exc:`RecursionError`" -#: ../Doc/c-api/exceptions.rst:984 +#: ../Doc/c-api/exceptions.rst:1075 msgid ":c:data:`PyExc_ReferenceError`" msgstr ":c:data:`PyExc_ReferenceError`" -#: ../Doc/c-api/exceptions.rst:984 +#: ../Doc/c-api/exceptions.rst:1075 msgid ":exc:`ReferenceError`" msgstr ":exc:`ReferenceError`" -#: ../Doc/c-api/exceptions.rst:986 +#: ../Doc/c-api/exceptions.rst:1077 msgid ":c:data:`PyExc_RuntimeError`" msgstr ":c:data:`PyExc_RuntimeError`" -#: ../Doc/c-api/exceptions.rst:986 +#: ../Doc/c-api/exceptions.rst:1077 msgid ":exc:`RuntimeError`" msgstr ":exc:`RuntimeError`" -#: ../Doc/c-api/exceptions.rst:988 +#: ../Doc/c-api/exceptions.rst:1079 msgid ":c:data:`PyExc_StopAsyncIteration`" msgstr ":c:data:`PyExc_StopAsyncIteration`" -#: ../Doc/c-api/exceptions.rst:988 +#: ../Doc/c-api/exceptions.rst:1079 msgid ":exc:`StopAsyncIteration`" msgstr ":exc:`StopAsyncIteration`" -#: ../Doc/c-api/exceptions.rst:990 +#: ../Doc/c-api/exceptions.rst:1081 msgid ":c:data:`PyExc_StopIteration`" msgstr ":c:data:`PyExc_StopIteration`" -#: ../Doc/c-api/exceptions.rst:990 +#: ../Doc/c-api/exceptions.rst:1081 msgid ":exc:`StopIteration`" msgstr ":exc:`StopIteration`" -#: ../Doc/c-api/exceptions.rst:992 +#: ../Doc/c-api/exceptions.rst:1083 msgid ":c:data:`PyExc_SyntaxError`" msgstr ":c:data:`PyExc_SyntaxError`" -#: ../Doc/c-api/exceptions.rst:992 +#: ../Doc/c-api/exceptions.rst:1083 msgid ":exc:`SyntaxError`" msgstr ":exc:`SyntaxError`" -#: ../Doc/c-api/exceptions.rst:994 +#: ../Doc/c-api/exceptions.rst:1085 msgid ":c:data:`PyExc_SystemError`" msgstr ":c:data:`PyExc_SystemError`" -#: ../Doc/c-api/exceptions.rst:994 +#: ../Doc/c-api/exceptions.rst:1085 msgid ":exc:`SystemError`" msgstr ":exc:`SystemError`" -#: ../Doc/c-api/exceptions.rst:996 +#: ../Doc/c-api/exceptions.rst:1087 msgid ":c:data:`PyExc_SystemExit`" msgstr ":c:data:`PyExc_SystemExit`" -#: ../Doc/c-api/exceptions.rst:996 +#: ../Doc/c-api/exceptions.rst:1087 msgid ":exc:`SystemExit`" msgstr ":exc:`SystemExit`" -#: ../Doc/c-api/exceptions.rst:998 +#: ../Doc/c-api/exceptions.rst:1089 msgid ":c:data:`PyExc_TabError`" msgstr ":c:data:`PyExc_TabError`" -#: ../Doc/c-api/exceptions.rst:998 +#: ../Doc/c-api/exceptions.rst:1089 msgid ":exc:`TabError`" msgstr ":exc:`TabError`" -#: ../Doc/c-api/exceptions.rst:1000 +#: ../Doc/c-api/exceptions.rst:1091 msgid ":c:data:`PyExc_TimeoutError`" msgstr ":c:data:`PyExc_TimeoutError`" -#: ../Doc/c-api/exceptions.rst:1000 +#: ../Doc/c-api/exceptions.rst:1091 msgid ":exc:`TimeoutError`" msgstr ":exc:`TimeoutError`" -#: ../Doc/c-api/exceptions.rst:1002 +#: ../Doc/c-api/exceptions.rst:1093 msgid ":c:data:`PyExc_TypeError`" msgstr ":c:data:`PyExc_TypeError`" -#: ../Doc/c-api/exceptions.rst:1002 +#: ../Doc/c-api/exceptions.rst:1093 msgid ":exc:`TypeError`" msgstr ":exc:`TypeError`" -#: ../Doc/c-api/exceptions.rst:1004 +#: ../Doc/c-api/exceptions.rst:1095 msgid ":c:data:`PyExc_UnboundLocalError`" msgstr ":c:data:`PyExc_UnboundLocalError`" -#: ../Doc/c-api/exceptions.rst:1004 +#: ../Doc/c-api/exceptions.rst:1095 msgid ":exc:`UnboundLocalError`" msgstr ":exc:`UnboundLocalError`" -#: ../Doc/c-api/exceptions.rst:1006 +#: ../Doc/c-api/exceptions.rst:1097 msgid ":c:data:`PyExc_UnicodeDecodeError`" msgstr ":c:data:`PyExc_UnicodeDecodeError`" -#: ../Doc/c-api/exceptions.rst:1006 +#: ../Doc/c-api/exceptions.rst:1097 msgid ":exc:`UnicodeDecodeError`" msgstr ":exc:`UnicodeDecodeError`" -#: ../Doc/c-api/exceptions.rst:1008 +#: ../Doc/c-api/exceptions.rst:1099 msgid ":c:data:`PyExc_UnicodeEncodeError`" msgstr ":c:data:`PyExc_UnicodeEncodeError`" -#: ../Doc/c-api/exceptions.rst:1008 +#: ../Doc/c-api/exceptions.rst:1099 msgid ":exc:`UnicodeEncodeError`" msgstr ":exc:`UnicodeEncodeError`" -#: ../Doc/c-api/exceptions.rst:1010 +#: ../Doc/c-api/exceptions.rst:1101 msgid ":c:data:`PyExc_UnicodeError`" msgstr ":c:data:`PyExc_UnicodeError`" -#: ../Doc/c-api/exceptions.rst:1010 +#: ../Doc/c-api/exceptions.rst:1101 msgid ":exc:`UnicodeError`" msgstr ":exc:`UnicodeError`" -#: ../Doc/c-api/exceptions.rst:1012 +#: ../Doc/c-api/exceptions.rst:1103 msgid ":c:data:`PyExc_UnicodeTranslateError`" msgstr ":c:data:`PyExc_UnicodeTranslateError`" -#: ../Doc/c-api/exceptions.rst:1012 +#: ../Doc/c-api/exceptions.rst:1103 msgid ":exc:`UnicodeTranslateError`" msgstr ":exc:`UnicodeTranslateError`" -#: ../Doc/c-api/exceptions.rst:1014 +#: ../Doc/c-api/exceptions.rst:1105 msgid ":c:data:`PyExc_ValueError`" msgstr ":c:data:`PyExc_ValueError`" -#: ../Doc/c-api/exceptions.rst:1014 +#: ../Doc/c-api/exceptions.rst:1105 msgid ":exc:`ValueError`" msgstr ":exc:`ValueError`" -#: ../Doc/c-api/exceptions.rst:1016 +#: ../Doc/c-api/exceptions.rst:1107 msgid ":c:data:`PyExc_ZeroDivisionError`" msgstr ":c:data:`PyExc_ZeroDivisionError`" -#: ../Doc/c-api/exceptions.rst:1016 +#: ../Doc/c-api/exceptions.rst:1107 msgid ":exc:`ZeroDivisionError`" msgstr ":exc:`ZeroDivisionError`" -#: ../Doc/c-api/exceptions.rst:1019 +#: ../Doc/c-api/exceptions.rst:1110 msgid "" ":c:data:`PyExc_BlockingIOError`, :c:data:`PyExc_BrokenPipeError`, :c:data:" "`PyExc_ChildProcessError`, :c:data:`PyExc_ConnectionError`, :c:data:" @@ -1765,47 +1871,47 @@ msgstr "" "`PyExc_PermissionError`, :c:data:`PyExc_ProcessLookupError` y :c:data:" "`PyExc_TimeoutError` fueron introducidos luego de :pep:`3151`." -#: ../Doc/c-api/exceptions.rst:1029 +#: ../Doc/c-api/exceptions.rst:1120 msgid ":c:data:`PyExc_StopAsyncIteration` and :c:data:`PyExc_RecursionError`." msgstr ":c:data:`PyExc_StopAsyncIteration` y :c:data:`PyExc_RecursionError`." -#: ../Doc/c-api/exceptions.rst:1032 +#: ../Doc/c-api/exceptions.rst:1123 msgid ":c:data:`PyExc_ModuleNotFoundError`." msgstr ":c:data:`PyExc_ModuleNotFoundError`." -#: ../Doc/c-api/exceptions.rst:1035 +#: ../Doc/c-api/exceptions.rst:1126 msgid "These are compatibility aliases to :c:data:`PyExc_OSError`:" msgstr "Estos son alias de compatibilidad para :c:data:`PyExc_OSError`:" -#: ../Doc/c-api/exceptions.rst:1045 +#: ../Doc/c-api/exceptions.rst:1136 msgid ":c:data:`PyExc_EnvironmentError`" msgstr ":c:data:`PyExc_EnvironmentError`" -#: ../Doc/c-api/exceptions.rst:1047 +#: ../Doc/c-api/exceptions.rst:1138 msgid ":c:data:`PyExc_IOError`" msgstr ":c:data:`PyExc_IOError`" -#: ../Doc/c-api/exceptions.rst:1049 +#: ../Doc/c-api/exceptions.rst:1140 msgid ":c:data:`PyExc_WindowsError`" msgstr ":c:data:`PyExc_WindowsError`" -#: ../Doc/c-api/exceptions.rst:1049 +#: ../Doc/c-api/exceptions.rst:1140 msgid "[2]_" msgstr "[2]_" -#: ../Doc/c-api/exceptions.rst:1052 +#: ../Doc/c-api/exceptions.rst:1143 msgid "These aliases used to be separate exception types." msgstr "Estos alias solían ser tipos de excepción separados." -#: ../Doc/c-api/exceptions.rst:1055 ../Doc/c-api/exceptions.rst:1116 +#: ../Doc/c-api/exceptions.rst:1146 ../Doc/c-api/exceptions.rst:1207 msgid "Notes:" msgstr "Notas:" -#: ../Doc/c-api/exceptions.rst:1058 +#: ../Doc/c-api/exceptions.rst:1149 msgid "This is a base class for other standard exceptions." msgstr "Esta es una clase base para otras excepciones estándar." -#: ../Doc/c-api/exceptions.rst:1061 +#: ../Doc/c-api/exceptions.rst:1152 msgid "" "Only defined on Windows; protect code that uses this by testing that the " "preprocessor macro ``MS_WINDOWS`` is defined." @@ -1813,11 +1919,11 @@ msgstr "" "Solo se define en Windows; proteja el código que usa esto probando que la " "macro del preprocesador ``MS_WINDOWS`` está definida." -#: ../Doc/c-api/exceptions.rst:1067 +#: ../Doc/c-api/exceptions.rst:1158 msgid "Standard Warning Categories" msgstr "Categorías de advertencia estándar" -#: ../Doc/c-api/exceptions.rst:1069 +#: ../Doc/c-api/exceptions.rst:1160 msgid "" "All standard Python warning categories are available as global variables " "whose names are ``PyExc_`` followed by the Python exception name. These have " @@ -1829,102 +1935,477 @@ msgstr "" "excepción de Python. Estos tienen el tipo :c:expr:`PyObject*`; todos son " "objetos de clase. Para completar, aquí están todas las variables:" -#: ../Doc/c-api/exceptions.rst:1090 +#: ../Doc/c-api/exceptions.rst:1181 msgid ":c:data:`PyExc_Warning`" msgstr ":c:data:`PyExc_Warning`" -#: ../Doc/c-api/exceptions.rst:1090 +#: ../Doc/c-api/exceptions.rst:1181 msgid ":exc:`Warning`" msgstr ":exc:`Warning`" -#: ../Doc/c-api/exceptions.rst:1090 +#: ../Doc/c-api/exceptions.rst:1181 msgid "[3]_" msgstr "[3]_" -#: ../Doc/c-api/exceptions.rst:1092 +#: ../Doc/c-api/exceptions.rst:1183 msgid ":c:data:`PyExc_BytesWarning`" msgstr ":c:data:`PyExc_BytesWarning`" -#: ../Doc/c-api/exceptions.rst:1092 +#: ../Doc/c-api/exceptions.rst:1183 msgid ":exc:`BytesWarning`" msgstr ":exc:`BytesWarning`" -#: ../Doc/c-api/exceptions.rst:1094 +#: ../Doc/c-api/exceptions.rst:1185 msgid ":c:data:`PyExc_DeprecationWarning`" msgstr ":c:data:`PyExc_DeprecationWarning`" -#: ../Doc/c-api/exceptions.rst:1094 +#: ../Doc/c-api/exceptions.rst:1185 msgid ":exc:`DeprecationWarning`" msgstr ":exc:`DeprecationWarning`" -#: ../Doc/c-api/exceptions.rst:1096 +#: ../Doc/c-api/exceptions.rst:1187 msgid ":c:data:`PyExc_FutureWarning`" msgstr ":c:data:`PyExc_FutureWarning`" -#: ../Doc/c-api/exceptions.rst:1096 +#: ../Doc/c-api/exceptions.rst:1187 msgid ":exc:`FutureWarning`" msgstr ":exc:`FutureWarning`" -#: ../Doc/c-api/exceptions.rst:1098 +#: ../Doc/c-api/exceptions.rst:1189 msgid ":c:data:`PyExc_ImportWarning`" msgstr ":c:data:`PyExc_ImportWarning`" -#: ../Doc/c-api/exceptions.rst:1098 +#: ../Doc/c-api/exceptions.rst:1189 msgid ":exc:`ImportWarning`" msgstr ":exc:`ImportWarning`" -#: ../Doc/c-api/exceptions.rst:1100 +#: ../Doc/c-api/exceptions.rst:1191 msgid ":c:data:`PyExc_PendingDeprecationWarning`" msgstr ":c:data:`PyExc_PendingDeprecationWarning`" -#: ../Doc/c-api/exceptions.rst:1100 +#: ../Doc/c-api/exceptions.rst:1191 msgid ":exc:`PendingDeprecationWarning`" msgstr ":exc:`PendingDeprecationWarning`" -#: ../Doc/c-api/exceptions.rst:1102 +#: ../Doc/c-api/exceptions.rst:1193 msgid ":c:data:`PyExc_ResourceWarning`" msgstr ":c:data:`PyExc_ResourceWarning`" -#: ../Doc/c-api/exceptions.rst:1102 +#: ../Doc/c-api/exceptions.rst:1193 msgid ":exc:`ResourceWarning`" msgstr ":exc:`ResourceWarning`" -#: ../Doc/c-api/exceptions.rst:1104 +#: ../Doc/c-api/exceptions.rst:1195 msgid ":c:data:`PyExc_RuntimeWarning`" msgstr ":c:data:`PyExc_RuntimeWarning`" -#: ../Doc/c-api/exceptions.rst:1104 +#: ../Doc/c-api/exceptions.rst:1195 msgid ":exc:`RuntimeWarning`" msgstr ":exc:`RuntimeWarning`" -#: ../Doc/c-api/exceptions.rst:1106 +#: ../Doc/c-api/exceptions.rst:1197 msgid ":c:data:`PyExc_SyntaxWarning`" msgstr ":c:data:`PyExc_SyntaxWarning`" -#: ../Doc/c-api/exceptions.rst:1106 +#: ../Doc/c-api/exceptions.rst:1197 msgid ":exc:`SyntaxWarning`" msgstr ":exc:`SyntaxWarning`" -#: ../Doc/c-api/exceptions.rst:1108 +#: ../Doc/c-api/exceptions.rst:1199 msgid ":c:data:`PyExc_UnicodeWarning`" msgstr ":c:data:`PyExc_UnicodeWarning`" -#: ../Doc/c-api/exceptions.rst:1108 +#: ../Doc/c-api/exceptions.rst:1199 msgid ":exc:`UnicodeWarning`" msgstr ":exc:`UnicodeWarning`" -#: ../Doc/c-api/exceptions.rst:1110 +#: ../Doc/c-api/exceptions.rst:1201 msgid ":c:data:`PyExc_UserWarning`" msgstr ":c:data:`PyExc_UserWarning`" -#: ../Doc/c-api/exceptions.rst:1110 +#: ../Doc/c-api/exceptions.rst:1201 msgid ":exc:`UserWarning`" msgstr ":exc:`UserWarning`" -#: ../Doc/c-api/exceptions.rst:1113 +#: ../Doc/c-api/exceptions.rst:1204 msgid ":c:data:`PyExc_ResourceWarning`." msgstr ":c:data:`PyExc_ResourceWarning`." -#: ../Doc/c-api/exceptions.rst:1119 +#: ../Doc/c-api/exceptions.rst:1210 msgid "This is a base class for other standard warning categories." msgstr "Esta es una clase base para otras categorías de advertencia estándar." + +#: ../Doc/c-api/exceptions.rst:162 +msgid "strerror()" +msgstr "" + +#: ../Doc/c-api/exceptions.rst:614 ../Doc/c-api/exceptions.rst:645 +#: ../Doc/c-api/exceptions.rst:660 +msgid "module" +msgstr "" + +#: ../Doc/c-api/exceptions.rst:614 ../Doc/c-api/exceptions.rst:645 +#: ../Doc/c-api/exceptions.rst:660 +msgid "signal" +msgstr "" + +#: ../Doc/c-api/exceptions.rst:614 ../Doc/c-api/exceptions.rst:645 +msgid "SIGINT" +msgstr "" + +#: ../Doc/c-api/exceptions.rst:614 ../Doc/c-api/exceptions.rst:645 +#: ../Doc/c-api/exceptions.rst:660 +msgid "KeyboardInterrupt (built-in exception)" +msgstr "" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_BaseException" +msgstr ":exc:`BaseException`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_Exception" +msgstr ":exc:`Exception`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_ArithmeticError" +msgstr ":exc:`ArithmeticError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_AssertionError" +msgstr ":exc:`AssertionError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_AttributeError" +msgstr ":exc:`AttributeError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_BlockingIOError" +msgstr ":exc:`BlockingIOError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_BrokenPipeError" +msgstr ":exc:`BrokenPipeError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_BufferError" +msgstr ":exc:`BufferError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_ChildProcessError" +msgstr ":exc:`ChildProcessError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_ConnectionAbortedError" +msgstr ":exc:`ConnectionAbortedError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_ConnectionError" +msgstr ":exc:`ConnectionError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_ConnectionRefusedError" +msgstr ":exc:`ConnectionRefusedError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_ConnectionResetError" +msgstr ":exc:`ConnectionResetError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_EOFError" +msgstr ":exc:`EOFError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_FileExistsError" +msgstr ":exc:`FileExistsError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_FileNotFoundError" +msgstr ":exc:`FileNotFoundError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_FloatingPointError" +msgstr ":exc:`FloatingPointError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_GeneratorExit" +msgstr ":exc:`GeneratorExit`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_ImportError" +msgstr ":exc:`ImportError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_IndentationError" +msgstr ":exc:`IndentationError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_IndexError" +msgstr ":exc:`IndexError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_InterruptedError" +msgstr ":exc:`InterruptedError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_IsADirectoryError" +msgstr ":exc:`IsADirectoryError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_KeyError" +msgstr ":exc:`KeyError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_KeyboardInterrupt" +msgstr ":exc:`KeyboardInterrupt`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_LookupError" +msgstr ":exc:`LookupError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_MemoryError" +msgstr ":exc:`MemoryError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_ModuleNotFoundError" +msgstr ":exc:`ModuleNotFoundError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_NameError" +msgstr ":exc:`NameError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_NotADirectoryError" +msgstr ":exc:`NotADirectoryError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_NotImplementedError" +msgstr ":exc:`NotImplementedError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_OSError" +msgstr ":exc:`OSError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_OverflowError" +msgstr ":exc:`OverflowError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_PermissionError" +msgstr ":exc:`PermissionError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_ProcessLookupError" +msgstr ":exc:`ProcessLookupError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_RecursionError" +msgstr ":exc:`RecursionError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_ReferenceError" +msgstr ":exc:`ReferenceError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_RuntimeError" +msgstr ":exc:`RuntimeError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_StopAsyncIteration" +msgstr ":exc:`StopAsyncIteration`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_StopIteration" +msgstr ":exc:`StopIteration`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_SyntaxError" +msgstr ":exc:`SyntaxError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_SystemError" +msgstr ":exc:`SystemError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_SystemExit" +msgstr ":exc:`SystemExit`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_TabError" +msgstr ":exc:`TabError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_TimeoutError" +msgstr ":exc:`TimeoutError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_TypeError" +msgstr ":exc:`TypeError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_UnboundLocalError" +msgstr ":exc:`UnboundLocalError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_UnicodeDecodeError" +msgstr ":exc:`UnicodeDecodeError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_UnicodeEncodeError" +msgstr ":exc:`UnicodeEncodeError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_UnicodeError" +msgstr ":exc:`UnicodeError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_UnicodeTranslateError" +msgstr ":exc:`UnicodeTranslateError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_ValueError" +msgstr ":exc:`ValueError`" + +#: ../Doc/c-api/exceptions.rst:945 +#, fuzzy +msgid "PyExc_ZeroDivisionError" +msgstr ":exc:`ZeroDivisionError`" + +#: ../Doc/c-api/exceptions.rst:1128 +#, fuzzy +msgid "PyExc_EnvironmentError" +msgstr ":c:data:`PyExc_EnvironmentError`" + +#: ../Doc/c-api/exceptions.rst:1128 +#, fuzzy +msgid "PyExc_IOError" +msgstr ":c:data:`PyExc_IOError`" + +#: ../Doc/c-api/exceptions.rst:1128 +#, fuzzy +msgid "PyExc_WindowsError" +msgstr ":c:data:`PyExc_WindowsError`" + +#: ../Doc/c-api/exceptions.rst:1165 +#, fuzzy +msgid "PyExc_Warning" +msgstr ":exc:`Warning`" + +#: ../Doc/c-api/exceptions.rst:1165 +#, fuzzy +msgid "PyExc_BytesWarning" +msgstr ":exc:`BytesWarning`" + +#: ../Doc/c-api/exceptions.rst:1165 +#, fuzzy +msgid "PyExc_DeprecationWarning" +msgstr ":exc:`DeprecationWarning`" + +#: ../Doc/c-api/exceptions.rst:1165 +#, fuzzy +msgid "PyExc_FutureWarning" +msgstr ":exc:`FutureWarning`" + +#: ../Doc/c-api/exceptions.rst:1165 +#, fuzzy +msgid "PyExc_ImportWarning" +msgstr ":exc:`ImportWarning`" + +#: ../Doc/c-api/exceptions.rst:1165 +#, fuzzy +msgid "PyExc_PendingDeprecationWarning" +msgstr ":exc:`PendingDeprecationWarning`" + +#: ../Doc/c-api/exceptions.rst:1165 +#, fuzzy +msgid "PyExc_ResourceWarning" +msgstr ":exc:`ResourceWarning`" + +#: ../Doc/c-api/exceptions.rst:1165 +#, fuzzy +msgid "PyExc_RuntimeWarning" +msgstr ":exc:`RuntimeWarning`" + +#: ../Doc/c-api/exceptions.rst:1165 +#, fuzzy +msgid "PyExc_SyntaxWarning" +msgstr ":exc:`SyntaxWarning`" + +#: ../Doc/c-api/exceptions.rst:1165 +#, fuzzy +msgid "PyExc_UnicodeWarning" +msgstr ":exc:`UnicodeWarning`" + +#: ../Doc/c-api/exceptions.rst:1165 +#, fuzzy +msgid "PyExc_UserWarning" +msgstr ":exc:`UserWarning`" + +#~ msgid "" +#~ "Similar to :c:func:`PyErr_SetFromWindowsErrWithFilenameObject`, but the " +#~ "filename is given as a C string. *filename* is decoded from the " +#~ "filesystem encoding (:func:`os.fsdecode`)." +#~ msgstr "" +#~ "Similar a :c:func:`PyErr_SetFromWindowsErrWithFilenameObject`, pero el " +#~ "nombre del archivo se da como una cadena de caracteres de C. *filename* " +#~ "se decodifica a partir de la codificación del sistema de archivos (:func:" +#~ "`os.fsdecode`)." + +#~ msgid "" +#~ "Similar to :c:func:`PyErr_SetFromWindowsErrWithFilenameObject`, with an " +#~ "additional parameter specifying the exception type to be raised." +#~ msgstr "" +#~ "Similar a :c:func:`PyErr_SetFromWindowsErrWithFilenameObject`, con un " +#~ "parámetro adicional que especifica el tipo de excepción que se lanzará." diff --git a/c-api/file.po b/c-api/file.po index 13ba4364d2..4b7839128a 100644 --- a/c-api/file.po +++ b/c-api/file.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-01 20:12+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/file.rst:6 msgid "File Objects" @@ -179,11 +179,12 @@ msgstr "" "argumentos." #: ../Doc/c-api/file.rst:95 +#, fuzzy msgid "" "Write object *obj* to file object *p*. The only supported flag for *flags* " -"is :const:`Py_PRINT_RAW`; if given, the :func:`str` of the object is written " -"instead of the :func:`repr`. Return ``0`` on success or ``-1`` on failure; " -"the appropriate exception will be set." +"is :c:macro:`Py_PRINT_RAW`; if given, the :func:`str` of the object is " +"written instead of the :func:`repr`. Return ``0`` on success or ``-1`` on " +"failure; the appropriate exception will be set." msgstr "" "Escribe el objeto *obj* en el objeto archivo *p*. El único indicador " "admitido para *flags* es :const:`Py_PRINT_RAW`; si se proporciona, se " @@ -198,3 +199,20 @@ msgid "" msgstr "" "Escribe la cadena *s* en el objeto archivo *p*. Retorna ``0`` en caso de " "éxito o ``-1`` en caso de error; se establecerá la excepción apropiada." + +#: ../Doc/c-api/file.rst:8 +#, fuzzy +msgid "object" +msgstr "Objetos archivo" + +#: ../Doc/c-api/file.rst:8 +msgid "file" +msgstr "" + +#: ../Doc/c-api/file.rst:50 +msgid "EOFError (built-in exception)" +msgstr "" + +#: ../Doc/c-api/file.rst:93 +msgid "Py_PRINT_RAW" +msgstr "" diff --git a/c-api/float.po b/c-api/float.po index 154e4bb50e..a341e14369 100644 --- a/c-api/float.po +++ b/c-api/float.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-12-01 10:01+0400\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/float.rst:6 msgid "Floating Point Objects" @@ -74,13 +73,14 @@ msgstr "" "de error." #: ../Doc/c-api/float.rst:47 +#, fuzzy msgid "" "Return a C :c:expr:`double` representation of the contents of *pyfloat*. If " -"*pyfloat* is not a Python floating point object but has a :meth:`__float__` " -"method, this method will first be called to convert *pyfloat* into a float. " -"If ``__float__()`` is not defined then it falls back to :meth:`__index__`. " -"This method returns ``-1.0`` upon failure, so one should call :c:func:" -"`PyErr_Occurred` to check for errors." +"*pyfloat* is not a Python floating point object but has a :meth:`~object." +"__float__` method, this method will first be called to convert *pyfloat* " +"into a float. If :meth:`!__float__` is not defined then it falls back to :" +"meth:`~object.__index__`. This method returns ``-1.0`` upon failure, so one " +"should call :c:func:`PyErr_Occurred` to check for errors." msgstr "" "Retorna una representación C :c:expr:`double` de los contenidos de " "*pyfloat*. Si *pyfloat* no es un objeto de punto flotante de Python pero " @@ -91,7 +91,8 @@ msgstr "" "verificar si hay errores." #: ../Doc/c-api/float.rst:54 -msgid "Use :meth:`__index__` if available." +#, fuzzy +msgid "Use :meth:`~object.__index__` if available." msgstr "Utilice :meth:`__index__` si está disponible." #: ../Doc/c-api/float.rst:60 @@ -184,13 +185,14 @@ msgid "Pack functions" msgstr "Funciones de Empaquetado" #: ../Doc/c-api/float.rst:109 +#, fuzzy msgid "" "The pack routines write 2, 4 or 8 bytes, starting at *p*. *le* is an :c:expr:" "`int` argument, non-zero if you want the bytes string in little-endian " "format (exponent last, at ``p+1``, ``p+3``, or ``p+6`` ``p+7``), zero if you " -"want big-endian format (exponent first, at *p*). The :c:data:`PY_BIG_ENDIAN` " -"constant can be used to use the native endian: it is equal to ``1`` on big " -"endian processor, or ``0`` on little endian processor." +"want big-endian format (exponent first, at *p*). The :c:macro:" +"`PY_BIG_ENDIAN` constant can be used to use the native endian: it is equal " +"to ``1`` on big endian processor, or ``0`` on little endian processor." msgstr "" "Las rutinas de empaquetado escriben 2, 4 o 8 bytes, comenzando en *p*. *le* " "es un argumento :c:expr:`int`, distinto de cero si desea la cadena bytes con " @@ -240,13 +242,14 @@ msgid "Unpack functions" msgstr "Funciones de Desempaquetado" #: ../Doc/c-api/float.rst:140 +#, fuzzy msgid "" "The unpack routines read 2, 4 or 8 bytes, starting at *p*. *le* is an :c:" "expr:`int` argument, non-zero if the bytes string is in little-endian format " "(exponent last, at ``p+1``, ``p+3`` or ``p+6`` and ``p+7``), zero if big-" -"endian (exponent first, at *p*). The :c:data:`PY_BIG_ENDIAN` constant can be " -"used to use the native endian: it is equal to ``1`` on big endian processor, " -"or ``0`` on little endian processor." +"endian (exponent first, at *p*). The :c:macro:`PY_BIG_ENDIAN` constant can " +"be used to use the native endian: it is equal to ``1`` on big endian " +"processor, or ``0`` on little endian processor." msgstr "" "Las rutinas de desempaquetado leen 2, 4 o 8 bytes, comenzando en *p*. *le* " "es un argumento :c:expr:`int` , distinto de cero si la cadena bytes usa el " @@ -288,3 +291,12 @@ msgstr "" msgid "Unpack the IEEE 754 binary64 double precision format as a C double." msgstr "" "Descomprima el formato de doble precisión IEEE 754 binary64 como un doble C." + +#: ../Doc/c-api/float.rst:8 +msgid "object" +msgstr "" + +#: ../Doc/c-api/float.rst:8 +#, fuzzy +msgid "floating point" +msgstr "Objetos de punto flotante" diff --git a/c-api/frame.po b/c-api/frame.po index 6515711148..31c08aabe7 100644 --- a/c-api/frame.po +++ b/c-api/frame.po @@ -8,17 +8,16 @@ msgid "" msgstr "" "Project-Id-Version: Python en Español 3.11\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-04 09:53-0300\n" "Last-Translator: Rodrigo Poblete \n" -"Language-Team: \n" "Language: es\n" +"Language-Team: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/frame.rst:4 msgid "Frame Objects" @@ -55,40 +54,61 @@ msgstr "" msgid "See also :ref:`Reflection `." msgstr "Véase también :ref:`Reflexión `." -#: ../Doc/c-api/frame.rst:25 +#: ../Doc/c-api/frame.rst:24 +msgid "" +"The type of frame objects. It is the same object as :py:class:`types." +"FrameType` in the Python layer." +msgstr "" + +#: ../Doc/c-api/frame.rst:29 +msgid "" +"Previously, this type was only available after including ````." +msgstr "" + +#: ../Doc/c-api/frame.rst:34 +msgid "Return non-zero if *obj* is a frame object." +msgstr "" + +#: ../Doc/c-api/frame.rst:38 +msgid "" +"Previously, this function was only available after including ````." +msgstr "" + +#: ../Doc/c-api/frame.rst:43 msgid "Get the *frame* next outer frame." msgstr "Obtiene el *frame* exterior siguiente." -#: ../Doc/c-api/frame.rst:27 +#: ../Doc/c-api/frame.rst:45 msgid "" "Return a :term:`strong reference`, or ``NULL`` if *frame* has no outer frame." msgstr "" "Retorna una :term:`strong reference`, o ``NULL`` si *frame* no tiene frame " "exterior." -#: ../Doc/c-api/frame.rst:35 +#: ../Doc/c-api/frame.rst:53 msgid "Get the *frame*'s ``f_builtins`` attribute." msgstr "Obtiene el atributo ``f_builtins`` del *frame*." -#: ../Doc/c-api/frame.rst:37 ../Doc/c-api/frame.rst:68 +#: ../Doc/c-api/frame.rst:55 ../Doc/c-api/frame.rst:86 msgid "Return a :term:`strong reference`. The result cannot be ``NULL``." msgstr "" "Retorna una :term:`strong reference`, o ``NULL`` si *frame* no tiene frame " "exterior." -#: ../Doc/c-api/frame.rst:44 +#: ../Doc/c-api/frame.rst:62 msgid "Get the *frame* code." msgstr "Obtenga el código *frame*." -#: ../Doc/c-api/frame.rst:46 ../Doc/c-api/frame.rst:86 +#: ../Doc/c-api/frame.rst:64 ../Doc/c-api/frame.rst:125 msgid "Return a :term:`strong reference`." msgstr "Retorna un :term:`strong reference`." -#: ../Doc/c-api/frame.rst:48 +#: ../Doc/c-api/frame.rst:66 msgid "The result (frame code) cannot be ``NULL``." msgstr "El resultado (frame code) no puede ser ``NULL``." -#: ../Doc/c-api/frame.rst:55 +#: ../Doc/c-api/frame.rst:73 msgid "" "Get the generator, coroutine, or async generator that owns this frame, or " "``NULL`` if this frame is not owned by a generator. Does not raise an " @@ -98,26 +118,82 @@ msgstr "" "frame, o ``NULL`` si este frame no es propiedad de un generador. No lanza " "una excepción, incluso si el valor de retorno es ``NULL``." -#: ../Doc/c-api/frame.rst:59 +#: ../Doc/c-api/frame.rst:77 msgid "Return a :term:`strong reference`, or ``NULL``." msgstr "Retorna un :term:`strong reference`, o ``NULL``." -#: ../Doc/c-api/frame.rst:66 +#: ../Doc/c-api/frame.rst:84 msgid "Get the *frame*'s ``f_globals`` attribute." msgstr "Obtiene el atributo ``f_globals`` del *frame*." -#: ../Doc/c-api/frame.rst:75 +#: ../Doc/c-api/frame.rst:93 msgid "Get the *frame*'s ``f_lasti`` attribute." msgstr "Obtiene el atributo ``f_lasti`` del *frame*." -#: ../Doc/c-api/frame.rst:77 +#: ../Doc/c-api/frame.rst:95 msgid "Returns -1 if ``frame.f_lasti`` is ``None``." msgstr "Retorna -1 si ``frame.f_lasti`` es ``None``." -#: ../Doc/c-api/frame.rst:84 +#: ../Doc/c-api/frame.rst:102 +msgid "Get the variable *name* of *frame*." +msgstr "" + +#: ../Doc/c-api/frame.rst:104 +#, fuzzy +msgid "Return a :term:`strong reference` to the variable value on success." +msgstr "Retorna un :term:`strong reference`." + +#: ../Doc/c-api/frame.rst:105 +msgid "" +"Raise :exc:`NameError` and return ``NULL`` if the variable does not exist." +msgstr "" + +#: ../Doc/c-api/frame.rst:106 +msgid "Raise an exception and return ``NULL`` on error." +msgstr "" + +#: ../Doc/c-api/frame.rst:108 +msgid "*name* type must be a :class:`str`." +msgstr "" + +#: ../Doc/c-api/frame.rst:115 +msgid "" +"Similar to :c:func:`PyFrame_GetVar`, but the variable name is a C string " +"encoded in UTF-8." +msgstr "" + +#: ../Doc/c-api/frame.rst:123 msgid "Get the *frame*'s ``f_locals`` attribute (:class:`dict`)." msgstr "Obtiene el atributo ``f_locals`` del *frame* (:class:`dict`)." -#: ../Doc/c-api/frame.rst:93 +#: ../Doc/c-api/frame.rst:132 msgid "Return the line number that *frame* is currently executing." msgstr "Retorna el número de línea en la que se está ejecutando el *frame*." + +#: ../Doc/c-api/frame.rst:137 +msgid "Internal Frames" +msgstr "" + +#: ../Doc/c-api/frame.rst:139 +msgid "Unless using :pep:`523`, you will not need this." +msgstr "" + +#: ../Doc/c-api/frame.rst:143 +msgid "The interpreter's internal frame representation." +msgstr "" + +#: ../Doc/c-api/frame.rst:149 +#, fuzzy +msgid "Return a :term:`strong reference` to the code object for the frame." +msgstr "" +"Retorna una :term:`strong reference`, o ``NULL`` si *frame* no tiene frame " +"exterior." + +#: ../Doc/c-api/frame.rst:156 +msgid "Return the byte offset into the last executed instruction." +msgstr "" + +#: ../Doc/c-api/frame.rst:163 +msgid "" +"Return the currently executing line number, or -1 if there is no line number." +msgstr "" diff --git a/c-api/function.po b/c-api/function.po index f583c9d876..c8a0d699cb 100644 --- a/c-api/function.po +++ b/c-api/function.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-12-09 10:29+0800\n" "Last-Translator: Rodrigo Tobar \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/function.rst:6 msgid "Function Objects" @@ -130,12 +130,22 @@ msgstr "" "Establece los valores predeterminados del argumento para el objeto función " "*op*. *defaults* deben ser ``Py_None`` o una tupla." -#: ../Doc/c-api/function.rst:83 ../Doc/c-api/function.rst:97 -#: ../Doc/c-api/function.rst:111 +#: ../Doc/c-api/function.rst:83 ../Doc/c-api/function.rst:106 +#: ../Doc/c-api/function.rst:120 msgid "Raises :exc:`SystemError` and returns ``-1`` on failure." msgstr "Lanza :exc:`SystemError` y retorna ``-1`` en caso de error." #: ../Doc/c-api/function.rst:88 +msgid "Set the vectorcall field of a given function object *func*." +msgstr "" + +#: ../Doc/c-api/function.rst:90 +msgid "" +"Warning: extensions using this API must preserve the behavior of the " +"unaltered (default) vectorcall function!" +msgstr "" + +#: ../Doc/c-api/function.rst:97 msgid "" "Return the closure associated with the function object *op*. This can be " "``NULL`` or a tuple of cell objects." @@ -143,7 +153,7 @@ msgstr "" "Retorna el cierre asociado con el objeto función *op*. Esto puede ser " "``NULL`` o una tupla de objetos celda." -#: ../Doc/c-api/function.rst:94 +#: ../Doc/c-api/function.rst:103 msgid "" "Set the closure associated with the function object *op*. *closure* must be " "``Py_None`` or a tuple of cell objects." @@ -151,7 +161,7 @@ msgstr "" "Establece el cierre asociado con el objeto función *op*. *cierre* debe ser " "``Py_None`` o una tupla de objetos celda." -#: ../Doc/c-api/function.rst:102 +#: ../Doc/c-api/function.rst:111 msgid "" "Return the annotations of the function object *op*. This can be a mutable " "dictionary or ``NULL``." @@ -159,10 +169,101 @@ msgstr "" "Retorna las anotaciones del objeto función *op*. Este puede ser un " "diccionario mutable o ``NULL``." -#: ../Doc/c-api/function.rst:108 +#: ../Doc/c-api/function.rst:117 msgid "" "Set the annotations for the function object *op*. *annotations* must be a " "dictionary or ``Py_None``." msgstr "" "Establece las anotaciones para el objeto función *op*. *annotations* debe " "ser un diccionario o ``Py_None``." + +#: ../Doc/c-api/function.rst:125 +msgid "" +"Register *callback* as a function watcher for the current interpreter. " +"Return an ID which may be passed to :c:func:`PyFunction_ClearWatcher`. In " +"case of error (e.g. no more watcher IDs available), return ``-1`` and set an " +"exception." +msgstr "" + +#: ../Doc/c-api/function.rst:135 +msgid "" +"Clear watcher identified by *watcher_id* previously returned from :c:func:" +"`PyFunction_AddWatcher` for the current interpreter. Return ``0`` on " +"success, or ``-1`` and set an exception on error (e.g. if the given " +"*watcher_id* was never registered.)" +msgstr "" + +#: ../Doc/c-api/function.rst:145 +msgid "" +"Enumeration of possible function watcher events: - " +"``PyFunction_EVENT_CREATE`` - ``PyFunction_EVENT_DESTROY`` - " +"``PyFunction_EVENT_MODIFY_CODE`` - ``PyFunction_EVENT_MODIFY_DEFAULTS`` - " +"``PyFunction_EVENT_MODIFY_KWDEFAULTS``" +msgstr "" + +#: ../Doc/c-api/function.rst:157 +msgid "Type of a function watcher callback function." +msgstr "" + +#: ../Doc/c-api/function.rst:159 +msgid "" +"If *event* is ``PyFunction_EVENT_CREATE`` or ``PyFunction_EVENT_DESTROY`` " +"then *new_value* will be ``NULL``. Otherwise, *new_value* will hold a :term:" +"`borrowed reference` to the new value that is about to be stored in *func* " +"for the attribute that is being modified." +msgstr "" + +#: ../Doc/c-api/function.rst:164 +msgid "" +"The callback may inspect but must not modify *func*; doing so could have " +"unpredictable effects, including infinite recursion." +msgstr "" + +#: ../Doc/c-api/function.rst:167 +msgid "" +"If *event* is ``PyFunction_EVENT_CREATE``, then the callback is invoked " +"after `func` has been fully initialized. Otherwise, the callback is invoked " +"before the modification to *func* takes place, so the prior state of *func* " +"can be inspected. The runtime is permitted to optimize away the creation of " +"function objects when possible. In such cases no event will be emitted. " +"Although this creates the possibility of an observable difference of runtime " +"behavior depending on optimization decisions, it does not change the " +"semantics of the Python code being executed." +msgstr "" + +#: ../Doc/c-api/function.rst:176 +msgid "" +"If *event* is ``PyFunction_EVENT_DESTROY``, Taking a reference in the " +"callback to the about-to-be-destroyed function will resurrect it, preventing " +"it from being freed at this time. When the resurrected object is destroyed " +"later, any watcher callbacks active at that time will be called again." +msgstr "" + +#: ../Doc/c-api/function.rst:181 +msgid "" +"If the callback sets an exception, it must return ``-1``; this exception " +"will be printed as an unraisable exception using :c:func:" +"`PyErr_WriteUnraisable`. Otherwise it should return ``0``." +msgstr "" + +#: ../Doc/c-api/function.rst:185 +msgid "" +"There may already be a pending exception set on entry to the callback. In " +"this case, the callback should return ``0`` with the same exception still " +"set. This means the callback may not call any other API that can set an " +"exception unless it saves and clears the exception state first, and restores " +"it before returning." +msgstr "" + +#: ../Doc/c-api/function.rst:8 +msgid "object" +msgstr "" + +#: ../Doc/c-api/function.rst:8 +#, fuzzy +msgid "function" +msgstr "Objetos función" + +#: ../Doc/c-api/function.rst:20 +msgid "MethodType (in module types)" +msgstr "" diff --git a/c-api/gcsupport.po b/c-api/gcsupport.po index 3f8e453875..48aa3bbf32 100644 --- a/c-api/gcsupport.po +++ b/c-api/gcsupport.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-16 21:42+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-10-26 08:09+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,8 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.9.1\n" -"X-Generator: Poedit 3.0\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/gcsupport.rst:6 msgid "Supporting Cyclic Garbage Collection" @@ -43,10 +42,11 @@ msgstr "" "proporcionar ningún soporte explícito para la recolección de basura." #: ../Doc/c-api/gcsupport.rst:15 +#, fuzzy msgid "" "To create a container type, the :c:member:`~PyTypeObject.tp_flags` field of " -"the type object must include the :const:`Py_TPFLAGS_HAVE_GC` and provide an " -"implementation of the :c:member:`~PyTypeObject.tp_traverse` handler. If " +"the type object must include the :c:macro:`Py_TPFLAGS_HAVE_GC` and provide " +"an implementation of the :c:member:`~PyTypeObject.tp_traverse` handler. If " "instances of the type are mutable, a :c:member:`~PyTypeObject.tp_clear` " "implementation must also be provided." msgstr "" @@ -57,6 +57,10 @@ msgstr "" "proporcionar una implementación a :c:member:`~PyTypeObject.tp_clear`." #: ../Doc/c-api/gcsupport.rst:24 +msgid ":c:macro:`Py_TPFLAGS_HAVE_GC`" +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:22 msgid "" "Objects with a type with this flag set must conform with the rules " "documented here. For convenience these objects will be referred to as " @@ -66,20 +70,21 @@ msgstr "" "reglas documentadas aquí. Por conveniencia, estos objetos se denominarán " "objetos contenedor." -#: ../Doc/c-api/gcsupport.rst:28 +#: ../Doc/c-api/gcsupport.rst:26 msgid "Constructors for container types must conform to two rules:" msgstr "" "Los constructores para tipos de contenedores deben cumplir con dos reglas:" -#: ../Doc/c-api/gcsupport.rst:30 +#: ../Doc/c-api/gcsupport.rst:28 +#, fuzzy msgid "" -"The memory for the object must be allocated using :c:func:`PyObject_GC_New` " -"or :c:func:`PyObject_GC_NewVar`." +"The memory for the object must be allocated using :c:macro:`PyObject_GC_New` " +"or :c:macro:`PyObject_GC_NewVar`." msgstr "" "La memoria para el objeto debe asignarse usando :c:func:`PyObject_GC_New` o :" "c:func:`PyObject_GC_NewVar`." -#: ../Doc/c-api/gcsupport.rst:33 +#: ../Doc/c-api/gcsupport.rst:31 msgid "" "Once all the fields which may contain references to other containers are " "initialized, it must call :c:func:`PyObject_GC_Track`." @@ -87,8 +92,31 @@ msgstr "" "Una vez que se inicializan todos los campos que pueden contener referencias " "a otros contenedores, debe llamar a :c:func:`PyObject_GC_Track`." +#: ../Doc/c-api/gcsupport.rst:34 +msgid "" +"Similarly, the deallocator for the object must conform to a similar pair of " +"rules:" +msgstr "" +"Del mismo modo, el desasignador (*deallocator*) para el objeto debe cumplir " +"con un par similar de reglas:" + #: ../Doc/c-api/gcsupport.rst:37 msgid "" +"Before fields which refer to other containers are invalidated, :c:func:" +"`PyObject_GC_UnTrack` must be called." +msgstr "" +"Antes de invalidar los campos que se refieren a otros contenedores, debe " +"llamarse :c:func:`PyObject_GC_UnTrack`." + +#: ../Doc/c-api/gcsupport.rst:40 +msgid "" +"The object's memory must be deallocated using :c:func:`PyObject_GC_Del`." +msgstr "" +"La memoria del objeto debe ser desasignada (*deallocated*) usando :c:func:" +"`PyObject_GC_Del`." + +#: ../Doc/c-api/gcsupport.rst:43 +msgid "" "If a type adds the Py_TPFLAGS_HAVE_GC, then it *must* implement at least a :" "c:member:`~PyTypeObject.tp_traverse` handler or explicitly use one from its " "subclass or subclasses." @@ -97,7 +125,8 @@ msgstr "" "un manejado :c:member:`~PyTypeObject.tp_traverse` o usar explícitamente uno " "de su subclase o subclases." -#: ../Doc/c-api/gcsupport.rst:41 +#: ../Doc/c-api/gcsupport.rst:47 +#, fuzzy msgid "" "When calling :c:func:`PyType_Ready` or some of the APIs that indirectly call " "it like :c:func:`PyType_FromSpecWithBases` or :c:func:`PyType_FromSpec` the " @@ -105,7 +134,7 @@ msgid "" "tp_flags`, :c:member:`~PyTypeObject.tp_traverse` and :c:member:" "`~PyTypeObject.tp_clear` fields if the type inherits from a class that " "implements the garbage collector protocol and the child class does *not* " -"include the :const:`Py_TPFLAGS_HAVE_GC` flag." +"include the :c:macro:`Py_TPFLAGS_HAVE_GC` flag." msgstr "" "Al llamar a :c:func:`PyType_Ready` o alguna de las APIs que indirectamente " "lo llaman como :c:func:`PyType_FromSpecWithBases` o :c:func:" @@ -115,25 +144,50 @@ msgstr "" "implementa el protocolo del recolector de basura y la clase secundaria *no* " "incluye el *flag* :const:`Py_TPFLAGS_HAVE_GC`." -#: ../Doc/c-api/gcsupport.rst:51 +#: ../Doc/c-api/gcsupport.rst:57 +#, fuzzy msgid "" -"Analogous to :c:func:`PyObject_New` but for container objects with the :" -"const:`Py_TPFLAGS_HAVE_GC` flag set." +"Analogous to :c:macro:`PyObject_New` but for container objects with the :c:" +"macro:`Py_TPFLAGS_HAVE_GC` flag set." msgstr "" "Análogo a :c:func:`PyObject_New` pero para objetos de contenedor con el " "*flag* :const:`Py_TPFLAGS_HAVE_GC` establecido." -#: ../Doc/c-api/gcsupport.rst:57 +#: ../Doc/c-api/gcsupport.rst:62 +#, fuzzy msgid "" -"Analogous to :c:func:`PyObject_NewVar` but for container objects with the :" -"const:`Py_TPFLAGS_HAVE_GC` flag set." +"Analogous to :c:macro:`PyObject_NewVar` but for container objects with the :" +"c:macro:`Py_TPFLAGS_HAVE_GC` flag set." msgstr "" "Análogo a :c:func:`PyObject_NewVar` pero para objetos de contenedor con el " "*flag* :const:`Py_TPFLAGS_HAVE_GC` establecido." -#: ../Doc/c-api/gcsupport.rst:63 +#: ../Doc/c-api/gcsupport.rst:67 +msgid "" +"Analogous to :c:macro:`PyObject_GC_New` but allocates *extra_size* bytes at " +"the end of the object (at offset :c:member:`~PyTypeObject.tp_basicsize`). " +"The allocated memory is initialized to zeros, except for the :c:type:`Python " +"object header `." +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:73 +msgid "" +"The extra data will be deallocated with the object, but otherwise it is not " +"managed by Python." +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:77 +msgid "" +"The function is marked as unstable because the final mechanism for reserving " +"extra data after an instance is not yet decided. For allocating a variable " +"number of fields, prefer using :c:type:`PyVarObject` and :c:member:" +"`~PyTypeObject.tp_itemsize` instead." +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:88 +#, fuzzy msgid "" -"Resize an object allocated by :c:func:`PyObject_NewVar`. Returns the " +"Resize an object allocated by :c:macro:`PyObject_NewVar`. Returns the " "resized object or ``NULL`` on failure. *op* must not be tracked by the " "collector yet." msgstr "" @@ -141,7 +195,7 @@ msgstr "" "Retorna el objeto redimensionado o ``NULL`` en caso de falla. *op* aún no " "debe ser rastreado por el recolector de basura." -#: ../Doc/c-api/gcsupport.rst:69 +#: ../Doc/c-api/gcsupport.rst:94 msgid "" "Adds the object *op* to the set of container objects tracked by the " "collector. The collector can run at unexpected times so objects must be " @@ -156,7 +210,7 @@ msgstr "" "por :c:member:`~PyTypeObject.tp_traverse` se vuelven válidos, generalmente " "cerca del final del constructor." -#: ../Doc/c-api/gcsupport.rst:78 +#: ../Doc/c-api/gcsupport.rst:103 msgid "" "Returns non-zero if the object implements the garbage collector protocol, " "otherwise returns 0." @@ -164,7 +218,7 @@ msgstr "" "Retorna un valor distinto de cero si el objeto implementa el protocolo del " "recolector de basura; de lo contrario, retorna 0." -#: ../Doc/c-api/gcsupport.rst:81 +#: ../Doc/c-api/gcsupport.rst:106 msgid "" "The object cannot be tracked by the garbage collector if this function " "returns 0." @@ -172,7 +226,7 @@ msgstr "" "El recolector de basura no puede rastrear el objeto si esta función retorna " "0." -#: ../Doc/c-api/gcsupport.rst:86 +#: ../Doc/c-api/gcsupport.rst:111 msgid "" "Returns 1 if the object type of *op* implements the GC protocol and *op* is " "being currently tracked by the garbage collector and 0 otherwise." @@ -180,11 +234,11 @@ msgstr "" "Retorna 1 si el tipo de objeto de *op* implementa el protocolo GC y el " "recolector de basura está rastreando *op* y 0 en caso contrario." -#: ../Doc/c-api/gcsupport.rst:89 +#: ../Doc/c-api/gcsupport.rst:114 msgid "This is analogous to the Python function :func:`gc.is_tracked`." msgstr "Esto es análogo a la función de Python :func:`gc.is_tracked`." -#: ../Doc/c-api/gcsupport.rst:96 +#: ../Doc/c-api/gcsupport.rst:121 msgid "" "Returns 1 if the object type of *op* implements the GC protocol and *op* has " "been already finalized by the garbage collector and 0 otherwise." @@ -192,42 +246,20 @@ msgstr "" "Retorna 1 si el tipo de objeto de *op* implementa el protocolo GC y *op* ya " "ha sido finalizado por el recolector de basura y 0 en caso contrario." -#: ../Doc/c-api/gcsupport.rst:99 +#: ../Doc/c-api/gcsupport.rst:124 msgid "This is analogous to the Python function :func:`gc.is_finalized`." msgstr "Esto es análogo a la función de Python :func:`gc.is_finalized`." -#: ../Doc/c-api/gcsupport.rst:103 +#: ../Doc/c-api/gcsupport.rst:131 +#, fuzzy msgid "" -"Similarly, the deallocator for the object must conform to a similar pair of " -"rules:" -msgstr "" -"Del mismo modo, el desasignador (*deallocator*) para el objeto debe cumplir " -"con un par similar de reglas:" - -#: ../Doc/c-api/gcsupport.rst:106 -msgid "" -"Before fields which refer to other containers are invalidated, :c:func:" -"`PyObject_GC_UnTrack` must be called." -msgstr "" -"Antes de invalidar los campos que se refieren a otros contenedores, debe " -"llamarse :c:func:`PyObject_GC_UnTrack`." - -#: ../Doc/c-api/gcsupport.rst:109 -msgid "" -"The object's memory must be deallocated using :c:func:`PyObject_GC_Del`." -msgstr "" -"La memoria del objeto debe ser desasignada (*deallocated*) usando :c:func:" -"`PyObject_GC_Del`." - -#: ../Doc/c-api/gcsupport.rst:114 -msgid "" -"Releases memory allocated to an object using :c:func:`PyObject_GC_New` or :c:" -"func:`PyObject_GC_NewVar`." +"Releases memory allocated to an object using :c:macro:`PyObject_GC_New` or :" +"c:macro:`PyObject_GC_NewVar`." msgstr "" "Libera memoria asignada a un objeto usando :c:func:`PyObject_GC_New` o :c:" "func:`PyObject_GC_NewVar`." -#: ../Doc/c-api/gcsupport.rst:120 +#: ../Doc/c-api/gcsupport.rst:137 msgid "" "Remove the object *op* from the set of container objects tracked by the " "collector. Note that :c:func:`PyObject_GC_Track` can be called again on " @@ -244,15 +276,16 @@ msgstr "" "cualquiera de los campos utilizados por el manejador :c:member:" "`~PyTypeObject.tp_traverse` no sea válido." -#: ../Doc/c-api/gcsupport.rst:129 +#: ../Doc/c-api/gcsupport.rst:146 +#, fuzzy msgid "" -"The :c:func:`_PyObject_GC_TRACK` and :c:func:`_PyObject_GC_UNTRACK` macros " +"The :c:func:`!_PyObject_GC_TRACK` and :c:func:`!_PyObject_GC_UNTRACK` macros " "have been removed from the public C API." msgstr "" "Los macros :c:func:`_PyObject_GC_TRACK` y :c:func:`_PyObject_GC_UNTRACK` se " "han eliminado de la API pública de C." -#: ../Doc/c-api/gcsupport.rst:132 +#: ../Doc/c-api/gcsupport.rst:149 msgid "" "The :c:member:`~PyTypeObject.tp_traverse` handler accepts a function " "parameter of this type:" @@ -260,7 +293,7 @@ msgstr "" "El manejador :c:member:`~PyTypeObject.tp_traverse` acepta un parámetro de " "función de este tipo:" -#: ../Doc/c-api/gcsupport.rst:137 +#: ../Doc/c-api/gcsupport.rst:154 msgid "" "Type of the visitor function passed to the :c:member:`~PyTypeObject." "tp_traverse` handler. The function should be called with an object to " @@ -276,7 +309,7 @@ msgstr "" "funciones visitantes para implementar la detección de basura cíclica; No se " "espera que los usuarios necesiten escribir sus propias funciones visitante." -#: ../Doc/c-api/gcsupport.rst:144 +#: ../Doc/c-api/gcsupport.rst:161 msgid "" "The :c:member:`~PyTypeObject.tp_traverse` handler must have the following " "type:" @@ -284,7 +317,7 @@ msgstr "" "El manejador :c:member:`~PyTypeObject.tp_traverse` debe tener el siguiente " "tipo:" -#: ../Doc/c-api/gcsupport.rst:149 +#: ../Doc/c-api/gcsupport.rst:166 msgid "" "Traversal function for a container object. Implementations must call the " "*visit* function for each object directly contained by *self*, with the " @@ -300,7 +333,7 @@ msgstr "" "de objeto ``NULL``. Si *visit* retorna un valor distinto de cero, ese valor " "debe retornarse inmediatamente." -#: ../Doc/c-api/gcsupport.rst:156 +#: ../Doc/c-api/gcsupport.rst:173 msgid "" "To simplify writing :c:member:`~PyTypeObject.tp_traverse` handlers, a :c:" "func:`Py_VISIT` macro is provided. In order to use this macro, the :c:" @@ -312,7 +345,7 @@ msgstr "" "macro, la implementación :c:member:`~PyTypeObject.tp_traverse` debe nombrar " "sus argumentos exactamente *visit* y *arg*:" -#: ../Doc/c-api/gcsupport.rst:163 +#: ../Doc/c-api/gcsupport.rst:180 msgid "" "If *o* is not ``NULL``, call the *visit* callback, with arguments *o* and " "*arg*. If *visit* returns a non-zero value, then return it. Using this " @@ -323,7 +356,7 @@ msgstr "" "cero, lo retorna. Usando este macro, los manejadores :c:member:" "`~PyTypeObject.tp_traverse` tienen el siguiente aspecto:" -#: ../Doc/c-api/gcsupport.rst:176 +#: ../Doc/c-api/gcsupport.rst:193 msgid "" "The :c:member:`~PyTypeObject.tp_clear` handler must be of the :c:type:" "`inquiry` type, or ``NULL`` if the object is immutable." @@ -331,7 +364,7 @@ msgstr "" "El manejador :c:member:`~PyTypeObject.tp_clear` debe ser del tipo :c:type:" "`query`, o ``NULL`` si el objeto es inmutable." -#: ../Doc/c-api/gcsupport.rst:182 +#: ../Doc/c-api/gcsupport.rst:199 msgid "" "Drop references that may have created reference cycles. Immutable objects " "do not have to define this method since they can never directly create " @@ -347,11 +380,11 @@ msgstr "" "`Py_DECREF` en una referencia). El recolector de basura llamará a este " "método si detecta que este objeto está involucrado en un ciclo de referencia." -#: ../Doc/c-api/gcsupport.rst:191 +#: ../Doc/c-api/gcsupport.rst:208 msgid "Controlling the Garbage Collector State" msgstr "Controlar el estado del recolector de basura" -#: ../Doc/c-api/gcsupport.rst:193 +#: ../Doc/c-api/gcsupport.rst:210 msgid "" "The C-API provides the following functions for controlling garbage " "collection runs." @@ -359,7 +392,7 @@ msgstr "" "La C-API proporciona las siguientes funciones para controlar las ejecuciones " "de recolección de basura." -#: ../Doc/c-api/gcsupport.rst:198 +#: ../Doc/c-api/gcsupport.rst:215 msgid "" "Perform a full garbage collection, if the garbage collector is enabled. " "(Note that :func:`gc.collect` runs it unconditionally.)" @@ -368,7 +401,7 @@ msgstr "" "habilitado. (Tenga en cuenta que :func:`gc.collect` lo ejecuta " "incondicionalmente)." -#: ../Doc/c-api/gcsupport.rst:201 +#: ../Doc/c-api/gcsupport.rst:218 msgid "" "Returns the number of collected + unreachable objects which cannot be " "collected. If the garbage collector is disabled or already collecting, " @@ -381,7 +414,7 @@ msgstr "" "recolección de basura se pasan a :data:`sys.unraisablehook`. Esta función no " "genera excepciones." -#: ../Doc/c-api/gcsupport.rst:211 +#: ../Doc/c-api/gcsupport.rst:228 msgid "" "Enable the garbage collector: similar to :func:`gc.enable`. Returns the " "previous state, 0 for disabled and 1 for enabled." @@ -389,7 +422,7 @@ msgstr "" "Habilita el recolector de basura: similar a :func:`gc.enable`. Retorna el " "estado anterior, 0 para deshabilitado y 1 para habilitado." -#: ../Doc/c-api/gcsupport.rst:219 +#: ../Doc/c-api/gcsupport.rst:236 msgid "" "Disable the garbage collector: similar to :func:`gc.disable`. Returns the " "previous state, 0 for disabled and 1 for enabled." @@ -397,10 +430,52 @@ msgstr "" "Deshabilita el recolector de basura: similar a :func:`gc.disable`. Retorna " "el estado anterior, 0 para deshabilitado y 1 para habilitado." -#: ../Doc/c-api/gcsupport.rst:227 +#: ../Doc/c-api/gcsupport.rst:244 msgid "" "Query the state of the garbage collector: similar to :func:`gc.isenabled`. " "Returns the current state, 0 for disabled and 1 for enabled." msgstr "" "Consulta el estado del recolector de basura: similar a :func:`gc.isenabled`. " "Retorna el estado actual, 0 para deshabilitado y 1 para habilitado." + +#: ../Doc/c-api/gcsupport.rst:251 +#, fuzzy +msgid "Querying Garbage Collector State" +msgstr "Controlar el estado del recolector de basura" + +#: ../Doc/c-api/gcsupport.rst:253 +#, fuzzy +msgid "" +"The C-API provides the following interface for querying information about " +"the garbage collector." +msgstr "" +"La C-API proporciona las siguientes funciones para controlar las ejecuciones " +"de recolección de basura." + +#: ../Doc/c-api/gcsupport.rst:258 +msgid "" +"Run supplied *callback* on all live GC-capable objects. *arg* is passed " +"through to all invocations of *callback*." +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:262 +msgid "" +"If new objects are (de)allocated by the callback it is undefined if they " +"will be visited." +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:265 +msgid "" +"Garbage collection is disabled during operation. Explicitly running a " +"collection in the callback may lead to undefined behaviour e.g. visiting the " +"same objects multiple times or not at all." +msgstr "" + +#: ../Doc/c-api/gcsupport.rst:273 +msgid "" +"Type of the visitor function to be passed to :c:func:" +"`PyUnstable_GC_VisitObjects`. *arg* is the same as the *arg* passed to " +"``PyUnstable_GC_VisitObjects``. Return ``0`` to continue iteration, return " +"``1`` to stop iteration. Other return values are reserved for now so " +"behavior on returning anything else is undefined." +msgstr "" diff --git a/c-api/import.po b/c-api/import.po index 8775b07cf6..f1af1c5653 100644 --- a/c-api/import.po +++ b/c-api/import.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-28 17:44+0200\n" "Last-Translator: Santiago Puerta \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/import.rst:6 msgid "Importing Modules" @@ -185,15 +184,16 @@ msgstr "" "de caracteres codificada UTF-8 en lugar de un objeto Unicode." #: ../Doc/c-api/import.rst:125 +#, fuzzy msgid "" "Given a module name (possibly of the form ``package.module``) and a code " "object read from a Python bytecode file or obtained from the built-in " "function :func:`compile`, load the module. Return a new reference to the " "module object, or ``NULL`` with an exception set if an error occurred. " -"*name* is removed from :attr:`sys.modules` in error cases, even if *name* " -"was already in :attr:`sys.modules` on entry to :c:func:" +"*name* is removed from :data:`sys.modules` in error cases, even if *name* " +"was already in :data:`sys.modules` on entry to :c:func:" "`PyImport_ExecCodeModule`. Leaving incompletely initialized modules in :" -"attr:`sys.modules` is dangerous, as imports of such modules have no way to " +"data:`sys.modules` is dangerous, as imports of such modules have no way to " "know that the module object is an unknown (and probably damaged with respect " "to the module author's intents) state." msgstr "" @@ -210,11 +210,12 @@ msgstr "" "del autor del módulo)." #: ../Doc/c-api/import.rst:135 +#, fuzzy msgid "" "The module's :attr:`__spec__` and :attr:`__loader__` will be set, if not set " "already, with the appropriate values. The spec's loader will be set to the " -"module's ``__loader__`` (if set) and to an instance of :class:" -"`SourceFileLoader` otherwise." +"module's ``__loader__`` (if set) and to an instance of :class:`~importlib." +"machinery.SourceFileLoader` otherwise." msgstr "" "Los módulos :attr:`__spec__` y :attr:`__loader__` se establecerán, si no se " "han configurado ya, con los valores apropiados. El cargador de la " @@ -222,9 +223,10 @@ msgstr "" "configurado) y en una instancia de :class:`SourceFileLoader` de lo contrario." #: ../Doc/c-api/import.rst:140 +#, fuzzy msgid "" -"The module's :attr:`__file__` attribute will be set to the code object's :c:" -"member:`co_filename`. If applicable, :attr:`__cached__` will also be set." +"The module's :attr:`__file__` attribute will be set to the code object's :" +"attr:`!co_filename`. If applicable, :attr:`__cached__` will also be set." msgstr "" "El atributo del módulo :attr:`__file__` se establecerá en el objeto código :" "c:member:`co_filename`. Si corresponde, también se establecerá :attr:" @@ -255,7 +257,13 @@ msgstr "" "Ver también :c:func:`PyImport_ExecCodeModuleEx` y :c:func:" "`PyImport_ExecCodeModuleWithPathnames`." -#: ../Doc/c-api/import.rst:156 +#: ../Doc/c-api/import.rst:153 +msgid "" +"The setting of :attr:`__cached__` and :attr:`__loader__` is deprecated. See :" +"class:`~importlib.machinery.ModuleSpec` for alternatives." +msgstr "" + +#: ../Doc/c-api/import.rst:161 msgid "" "Like :c:func:`PyImport_ExecCodeModule`, but the :attr:`__file__` attribute " "of the module object is set to *pathname* if it is non-``NULL``." @@ -263,11 +271,11 @@ msgstr "" "Como :c:func:`PyImport_ExecCodeModule`, pero el atributo :attr:`__file__` " "del objeto del módulo se establece en *pathname* si no es ``NULL``." -#: ../Doc/c-api/import.rst:159 +#: ../Doc/c-api/import.rst:164 msgid "See also :c:func:`PyImport_ExecCodeModuleWithPathnames`." msgstr "Ver también :c:func:`PyImport_ExecCodeModuleWithPathnames`." -#: ../Doc/c-api/import.rst:164 +#: ../Doc/c-api/import.rst:169 msgid "" "Like :c:func:`PyImport_ExecCodeModuleEx`, but the :attr:`__cached__` " "attribute of the module object is set to *cpathname* if it is non-``NULL``. " @@ -277,7 +285,13 @@ msgstr "" "`__cached__` del objeto módulo se establece en *cpathname* si no es " "``NULL``. De las tres funciones, esta es la recomendada para usar." -#: ../Doc/c-api/import.rst:173 +#: ../Doc/c-api/import.rst:175 +msgid "" +"Setting :attr:`__cached__` is deprecated. See :class:`~importlib.machinery." +"ModuleSpec` for alternatives." +msgstr "" + +#: ../Doc/c-api/import.rst:182 msgid "" "Like :c:func:`PyImport_ExecCodeModuleObject`, but *name*, *pathname* and " "*cpathname* are UTF-8 encoded strings. Attempts are also made to figure out " @@ -289,15 +303,20 @@ msgstr "" "averiguar cuál debe ser el valor de *pathname* de *cpathname* si el primero " "se establece en ``NULL``." -#: ../Doc/c-api/import.rst:179 +#: ../Doc/c-api/import.rst:188 +#, fuzzy msgid "" -"Uses :func:`imp.source_from_cache()` in calculating the source path if only " +"Uses :func:`!imp.source_from_cache()` in calculating the source path if only " "the bytecode path is provided." msgstr "" "Utiliza :func:`imp.source_from_cache()` para calcular la ruta de origen si " "solo se proporciona la ruta del *bytecode*." -#: ../Doc/c-api/import.rst:186 +#: ../Doc/c-api/import.rst:191 +msgid "No longer uses the removed :mod:`!imp` module." +msgstr "" + +#: ../Doc/c-api/import.rst:197 msgid "" "Return the magic number for Python bytecode files (a.k.a. :file:`.pyc` " "file). The magic number should be present in the first four bytes of the " @@ -308,11 +327,11 @@ msgstr "" "en los primeros cuatro bytes del archivo de código de bytes, en orden de " "bytes *little-endian*. Retorna ``-1`` en caso de error." -#: ../Doc/c-api/import.rst:190 +#: ../Doc/c-api/import.rst:201 msgid "Return value of ``-1`` upon failure." msgstr "Retorna un valor de ``-1`` en caso de error." -#: ../Doc/c-api/import.rst:196 +#: ../Doc/c-api/import.rst:207 msgid "" "Return the magic tag string for :pep:`3147` format Python bytecode file " "names. Keep in mind that the value at ``sys.implementation.cache_tag`` is " @@ -323,7 +342,7 @@ msgstr "" "valor en ``sys.implementation.cache_tag`` es autoritario y debe usarse en " "lugar de esta función." -#: ../Doc/c-api/import.rst:204 +#: ../Doc/c-api/import.rst:215 msgid "" "Return the dictionary used for the module administration (a.k.a. ``sys." "modules``). Note that this is a per-interpreter variable." @@ -332,7 +351,7 @@ msgstr "" "conocido como ``sys.modules``). Tenga en cuenta que esta es una variable por " "intérprete." -#: ../Doc/c-api/import.rst:209 +#: ../Doc/c-api/import.rst:220 msgid "" "Return the already imported module with the given name. If the module has " "not been imported yet then returns ``NULL`` but does not set an error. " @@ -342,9 +361,10 @@ msgstr "" "importado, retorna ``NULL`` pero no establece un error. Retorna ``NULL`` y " "establece un error si falla la búsqueda." -#: ../Doc/c-api/import.rst:217 +#: ../Doc/c-api/import.rst:228 +#, fuzzy msgid "" -"Return a finder object for a :data:`sys.path`/:attr:`pkg.__path__` item " +"Return a finder object for a :data:`sys.path`/:attr:`!pkg.__path__` item " "*path*, possibly by fetching it from the :data:`sys.path_importer_cache` " "dict. If it wasn't yet cached, traverse :data:`sys.path_hooks` until a hook " "is found that can handle the path item. Return ``None`` if no hook could; " @@ -362,7 +382,7 @@ msgstr "" "`sys.path_importer_cache`. Retorna una nueva referencia al objeto del " "buscador." -#: ../Doc/c-api/import.rst:228 +#: ../Doc/c-api/import.rst:239 msgid "" "Load a frozen module named *name*. Return ``1`` for success, ``0`` if the " "module is not found, and ``-1`` with an exception set if the initialization " @@ -376,11 +396,11 @@ msgstr "" "use :c:func:`PyImport_ImportModule`. (Tenga en cuenta el nombre inapropiado " "--- esta función volvería a cargar el módulo si ya se importó)." -#: ../Doc/c-api/import.rst:236 +#: ../Doc/c-api/import.rst:247 msgid "The ``__file__`` attribute is no longer set on the module." msgstr "El atributo ``__file__`` ya no está establecido en el módulo." -#: ../Doc/c-api/import.rst:242 +#: ../Doc/c-api/import.rst:253 msgid "" "Similar to :c:func:`PyImport_ImportFrozenModuleObject`, but the name is a " "UTF-8 encoded string instead of a Unicode object." @@ -388,7 +408,7 @@ msgstr "" "Similar a :c:func:`PyImport_ImportFrozenModuleObject`, pero el nombre es una " "cadena de caracteres codificada UTF-8 en lugar de un objeto Unicode." -#: ../Doc/c-api/import.rst:250 +#: ../Doc/c-api/import.rst:261 msgid "" "This is the structure type definition for frozen module descriptors, as " "generated by the :program:`freeze` utility (see :file:`Tools/freeze/` in the " @@ -400,7 +420,7 @@ msgstr "" "(ver :file:`Tools/freeze` en la distribución de código fuente de Python). Su " "definición, que se encuentra en :file:`Include/import.h`, es::" -#: ../Doc/c-api/import.rst:262 +#: ../Doc/c-api/import.rst:273 msgid "" "The new ``is_package`` field indicates whether the module is a package or " "not. This replaces setting the ``size`` field to a negative value." @@ -408,7 +428,7 @@ msgstr "" "El nuevo campo ``is_package`` indica si el módulo es un paquete o no. Esto " "sustituye a la configuración del campo ``size`` con un valor negativo." -#: ../Doc/c-api/import.rst:268 +#: ../Doc/c-api/import.rst:279 msgid "" "This pointer is initialized to point to an array of :c:struct:`_frozen` " "records, terminated by one whose members are all ``NULL`` or zero. When a " @@ -422,7 +442,7 @@ msgstr "" "terceros podría jugar con esto para proporcionar una colección de módulos " "congelados creada dinámicamente." -#: ../Doc/c-api/import.rst:276 +#: ../Doc/c-api/import.rst:287 msgid "" "Add a single module to the existing table of built-in modules. This is a " "convenience wrapper around :c:func:`PyImport_ExtendInittab`, returning " @@ -438,14 +458,13 @@ msgstr "" "inicialización llamada en el primer intento de importación. Esto debería " "llamarse antes de :c:func:`Py_Initialize`." -#: ../Doc/c-api/import.rst:286 +#: ../Doc/c-api/import.rst:297 +#, fuzzy msgid "" -"Structure describing a single entry in the list of built-in modules. Each " -"of these structures gives the name and initialization function for a module " -"built into the interpreter. The name is an ASCII encoded string. Programs " -"which embed Python may use an array of these structures in conjunction with :" -"c:func:`PyImport_ExtendInittab` to provide additional built-in modules. The " -"structure is defined in :file:`Include/import.h` as::" +"Structure describing a single entry in the list of built-in modules. " +"Programs which embed Python may use an array of these structures in " +"conjunction with :c:func:`PyImport_ExtendInittab` to provide additional " +"built-in modules. The structure consists of two members:" msgstr "" "Estructura que describe una sola entrada en la lista de módulos " "incorporados. Cada una de estas estructuras proporciona el nombre y la " @@ -455,15 +474,20 @@ msgstr "" "func:`PyImport_ExtendInittab` para proporcionar módulos integrados " "adicionales. La estructura se define en :file:`Include/import.h` como::" -#: ../Doc/c-api/import.rst:301 +#: ../Doc/c-api/import.rst:305 +msgid "The module name, as an ASCII encoded string." +msgstr "" + +#: ../Doc/c-api/import.rst:314 +#, fuzzy msgid "" "Add a collection of modules to the table of built-in modules. The *newtab* " -"array must end with a sentinel entry which contains ``NULL`` for the :attr:" -"`name` field; failure to provide the sentinel value can result in a memory " -"fault. Returns ``0`` on success or ``-1`` if insufficient memory could be " -"allocated to extend the internal table. In the event of failure, no modules " -"are added to the internal table. This must be called before :c:func:" -"`Py_Initialize`." +"array must end with a sentinel entry which contains ``NULL`` for the :c:" +"member:`~_inittab.name` field; failure to provide the sentinel value can " +"result in a memory fault. Returns ``0`` on success or ``-1`` if insufficient " +"memory could be allocated to extend the internal table. In the event of " +"failure, no modules are added to the internal table. This must be called " +"before :c:func:`Py_Initialize`." msgstr "" "Agrega una colección de módulos a la tabla de módulos integrados. El arreglo " "*newtab* debe terminar con una entrada centinela que contiene ``NULL`` para " @@ -473,7 +497,7 @@ msgstr "" "error, no se agregan módulos a la tabla interna. Esta función debe ser " "llamada antes de :c:func:`Py_Initialize`." -#: ../Doc/c-api/import.rst:308 +#: ../Doc/c-api/import.rst:321 msgid "" "If Python is initialized multiple times, :c:func:`PyImport_AppendInittab` " "or :c:func:`PyImport_ExtendInittab` must be called before each Python " @@ -482,3 +506,36 @@ msgstr "" "Si Python es inicializado múltiples veces, se debe llamar :c:func:" "`PyImport_AppendInittab` o :c:func:`PyImport_ExtendInittab` antes de cada " "inicialización de Python." + +#: ../Doc/c-api/import.rst:11 +msgid "package variable" +msgstr "" + +#: ../Doc/c-api/import.rst:11 +msgid "__all__" +msgstr "" + +#: ../Doc/c-api/import.rst:11 +msgid "__all__ (package variable)" +msgstr "" + +#: ../Doc/c-api/import.rst:11 +#, fuzzy +msgid "modules (in module sys)" +msgstr "Importando módulos" + +#: ../Doc/c-api/import.rst:44 ../Doc/c-api/import.rst:123 +msgid "built-in function" +msgstr "" + +#: ../Doc/c-api/import.rst:44 +msgid "__import__" +msgstr "" + +#: ../Doc/c-api/import.rst:123 +msgid "compile" +msgstr "" + +#: ../Doc/c-api/import.rst:259 +msgid "freeze utility" +msgstr "" diff --git a/c-api/init.po b/c-api/init.po index fbc80721f0..a704b79ea9 100644 --- a/c-api/init.po +++ b/c-api/init.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-01-14 14:22-0500\n" "Last-Translator: CatalinaArrey \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/init.rst:8 msgid "Initialization, Finalization, and Threads" @@ -68,7 +67,8 @@ msgid ":c:func:`PyImport_ExtendInittab`" msgstr ":c:func:`PyImport_ExtendInittab`" #: ../Doc/c-api/init.rst:28 -msgid ":c:func:`PyInitFrozenExtensions`" +#, fuzzy +msgid ":c:func:`!PyInitFrozenExtensions`" msgstr ":c:func:`PyInitFrozenExtensions`" #: ../Doc/c-api/init.rst:29 @@ -217,6 +217,17 @@ msgstr "" "`Py_BytesWarningFlag` en 2." #: ../Doc/c-api/init.rst:86 +#, fuzzy +msgid "" +"This API is kept for backward compatibility: setting :c:member:`PyConfig." +"bytes_warning` should be used instead, see :ref:`Python Initialization " +"Configuration `." +msgstr "" +"Esta API se mantiene para la compatibilidad con versiones anteriores: en su " +"lugar, se debe usar la configuración de :c:member:`PyConfig.home`, consulta :" +"ref:`Configuración de inicialización de Python `." + +#: ../Doc/c-api/init.rst:90 msgid "" "Issue a warning when comparing :class:`bytes` or :class:`bytearray` with :" "class:`str` or :class:`bytes` with :class:`int`. Issue an error if greater " @@ -226,11 +237,22 @@ msgstr "" "class:`str` o :class:`bytes` con :class:`int`. Emite un error si es mayor o " "igual a ``2``." -#: ../Doc/c-api/init.rst:90 +#: ../Doc/c-api/init.rst:94 msgid "Set by the :option:`-b` option." msgstr "Establecido por la opción :option:`-b`." -#: ../Doc/c-api/init.rst:94 +#: ../Doc/c-api/init.rst:100 +#, fuzzy +msgid "" +"This API is kept for backward compatibility: setting :c:member:`PyConfig." +"parser_debug` should be used instead, see :ref:`Python Initialization " +"Configuration `." +msgstr "" +"Esta API se mantiene para la compatibilidad con versiones anteriores: en su " +"lugar, se debe usar la configuración de :c:member:`PyConfig.home`, consulta :" +"ref:`Configuración de inicialización de Python `." + +#: ../Doc/c-api/init.rst:104 msgid "" "Turn on parser debugging output (for expert only, depending on compilation " "options)." @@ -238,7 +260,7 @@ msgstr "" "Activa la salida de depuración del analizador (solo para expertos, según las " "opciones de compilación)." -#: ../Doc/c-api/init.rst:97 +#: ../Doc/c-api/init.rst:107 msgid "" "Set by the :option:`-d` option and the :envvar:`PYTHONDEBUG` environment " "variable." @@ -246,7 +268,18 @@ msgstr "" "Establecido por la opción :option:`-d` y la variable de entorno :envvar:" "`PYTHONDEBUG`." -#: ../Doc/c-api/init.rst:102 +#: ../Doc/c-api/init.rst:114 +#, fuzzy +msgid "" +"This API is kept for backward compatibility: setting :c:member:`PyConfig." +"write_bytecode` should be used instead, see :ref:`Python Initialization " +"Configuration `." +msgstr "" +"Esta API se mantiene para la compatibilidad con versiones anteriores: en su " +"lugar, se debe usar la configuración de :c:member:`PyConfig.home`, consulta :" +"ref:`Configuración de inicialización de Python `." + +#: ../Doc/c-api/init.rst:118 msgid "" "If set to non-zero, Python won't try to write ``.pyc`` files on the import " "of source modules." @@ -254,7 +287,7 @@ msgstr "" "Si se establece en un valor distinto de cero, Python no intentará escribir " "archivos ``.pyc`` en la importación de módulos fuente." -#: ../Doc/c-api/init.rst:105 +#: ../Doc/c-api/init.rst:121 msgid "" "Set by the :option:`-B` option and the :envvar:`PYTHONDONTWRITEBYTECODE` " "environment variable." @@ -262,7 +295,18 @@ msgstr "" "Establecido por la opción :option:`-B` y la variable de entorno :envvar:" "`PYTHONDONTWRITEBYTECODE`." -#: ../Doc/c-api/init.rst:110 +#: ../Doc/c-api/init.rst:128 +#, fuzzy +msgid "" +"This API is kept for backward compatibility: setting :c:member:`PyConfig." +"pathconfig_warnings` should be used instead, see :ref:`Python Initialization " +"Configuration `." +msgstr "" +"Esta API se mantiene para la compatibilidad con versiones anteriores: en su " +"lugar, se debe usar la configuración de :c:member:`PyConfig.home`, consulta :" +"ref:`Configuración de inicialización de Python `." + +#: ../Doc/c-api/init.rst:132 msgid "" "Suppress error messages when calculating the module search path in :c:func:" "`Py_GetPath`." @@ -270,13 +314,25 @@ msgstr "" "Suprime los mensajes de error al calcular la ruta de búsqueda del módulo en :" "c:func:`Py_GetPath`." -#: ../Doc/c-api/init.rst:113 +#: ../Doc/c-api/init.rst:135 msgid "Private flag used by ``_freeze_module`` and ``frozenmain`` programs." msgstr "" "Indicador privado utilizado por los programas ``_freeze_module`` y " "``frozenmain``." -#: ../Doc/c-api/init.rst:117 +#: ../Doc/c-api/init.rst:141 +#, fuzzy +msgid "" +"This API is kept for backward compatibility: setting :c:member:`PyConfig." +"hash_seed` and :c:member:`PyConfig.use_hash_seed` should be used instead, " +"see :ref:`Python Initialization Configuration `." +msgstr "" +"Esta API se mantiene para la compatibilidad con versiones anteriores: en su " +"lugar, se debe usar la configuración de :c:member:`PyConfig.argv` y :c:" +"member:`PyConfig.parse_argv`, consulta :ref:`Configuración de inicialización " +"de Python `." + +#: ../Doc/c-api/init.rst:146 msgid "" "Set to ``1`` if the :envvar:`PYTHONHASHSEED` environment variable is set to " "a non-empty string." @@ -284,7 +340,7 @@ msgstr "" "Se establece en ``1`` si la variable de entorno :envvar:`PYTHONHASHSEED` se " "establece en una cadena de caracteres no vacía." -#: ../Doc/c-api/init.rst:120 +#: ../Doc/c-api/init.rst:149 msgid "" "If the flag is non-zero, read the :envvar:`PYTHONHASHSEED` environment " "variable to initialize the secret hash seed." @@ -292,19 +348,42 @@ msgstr "" "Si el indicador no es cero, lee la variable de entorno :envvar:" "`PYTHONHASHSEED` para inicializar la semilla de *hash* secreta." -#: ../Doc/c-api/init.rst:125 +#: ../Doc/c-api/init.rst:156 +#, fuzzy +msgid "" +"This API is kept for backward compatibility: setting :c:member:`PyConfig." +"use_environment` should be used instead, see :ref:`Python Initialization " +"Configuration `." +msgstr "" +"Esta API se mantiene para la compatibilidad con versiones anteriores: en su " +"lugar, se debe usar la configuración de :c:member:`PyConfig.home`, consulta :" +"ref:`Configuración de inicialización de Python `." + +#: ../Doc/c-api/init.rst:160 +#, fuzzy msgid "" -"Ignore all :envvar:`PYTHON*` environment variables, e.g. :envvar:" +"Ignore all :envvar:`!PYTHON*` environment variables, e.g. :envvar:" "`PYTHONPATH` and :envvar:`PYTHONHOME`, that might be set." msgstr "" "Ignorar todas las variables de entorno :envvar:`PYTHON*`, por ejemplo :" "envvar:`PYTHONPATH` y :envvar:`PYTHONHOME`, eso podría establecerse." -#: ../Doc/c-api/init.rst:128 +#: ../Doc/c-api/init.rst:163 msgid "Set by the :option:`-E` and :option:`-I` options." msgstr "Establecido por las opciones :option:`-E` y :option:`-I`." -#: ../Doc/c-api/init.rst:132 +#: ../Doc/c-api/init.rst:169 +#, fuzzy +msgid "" +"This API is kept for backward compatibility: setting :c:member:`PyConfig." +"inspect` should be used instead, see :ref:`Python Initialization " +"Configuration `." +msgstr "" +"Esta API se mantiene para la compatibilidad con versiones anteriores: en su " +"lugar, se debe usar la configuración de :c:member:`PyConfig.home`, consulta :" +"ref:`Configuración de inicialización de Python `." + +#: ../Doc/c-api/init.rst:173 msgid "" "When a script is passed as first argument or the :option:`-c` option is " "used, enter interactive mode after executing the script or the command, even " @@ -315,7 +394,7 @@ msgstr "" "ejecutar la secuencia de comandos o el comando, incluso cuando :data:`sys." "stdin` no parece ser un terminal." -#: ../Doc/c-api/init.rst:136 +#: ../Doc/c-api/init.rst:177 msgid "" "Set by the :option:`-i` option and the :envvar:`PYTHONINSPECT` environment " "variable." @@ -323,11 +402,33 @@ msgstr "" "Establecido por la opción :option:`-i` y la variable de entorno :envvar:" "`PYTHONINSPECT`." -#: ../Doc/c-api/init.rst:141 +#: ../Doc/c-api/init.rst:184 +#, fuzzy +msgid "" +"This API is kept for backward compatibility: setting :c:member:`PyConfig." +"interactive` should be used instead, see :ref:`Python Initialization " +"Configuration `." +msgstr "" +"Esta API se mantiene para la compatibilidad con versiones anteriores: en su " +"lugar, se debe usar la configuración de :c:member:`PyConfig.home`, consulta :" +"ref:`Configuración de inicialización de Python `." + +#: ../Doc/c-api/init.rst:188 msgid "Set by the :option:`-i` option." msgstr "Establecido por la opción :option:`-i`." -#: ../Doc/c-api/init.rst:145 +#: ../Doc/c-api/init.rst:194 +#, fuzzy +msgid "" +"This API is kept for backward compatibility: setting :c:member:`PyConfig." +"isolated` should be used instead, see :ref:`Python Initialization " +"Configuration `." +msgstr "" +"Esta API se mantiene para la compatibilidad con versiones anteriores: en su " +"lugar, se debe usar la configuración de :c:member:`PyConfig.home`, consulta :" +"ref:`Configuración de inicialización de Python `." + +#: ../Doc/c-api/init.rst:198 msgid "" "Run Python in isolated mode. In isolated mode :data:`sys.path` contains " "neither the script's directory nor the user's site-packages directory." @@ -336,11 +437,22 @@ msgstr "" "ni el directorio de la secuencia de comandos (*script*) ni el directorio de " "paquetes del sitio del usuario (*site-pacages*)." -#: ../Doc/c-api/init.rst:148 +#: ../Doc/c-api/init.rst:201 msgid "Set by the :option:`-I` option." msgstr "Establecido por la opción :option:`-I`." -#: ../Doc/c-api/init.rst:154 +#: ../Doc/c-api/init.rst:209 +#, fuzzy +msgid "" +"This API is kept for backward compatibility: setting :c:member:`PyPreConfig." +"legacy_windows_fs_encoding` should be used instead, see :ref:`Python " +"Initialization Configuration `." +msgstr "" +"Esta API se mantiene para la compatibilidad con versiones anteriores: en su " +"lugar, se debe usar la configuración de :c:member:`PyConfig.home`, consulta :" +"ref:`Configuración de inicialización de Python `." + +#: ../Doc/c-api/init.rst:213 msgid "" "If the flag is non-zero, use the ``mbcs`` encoding with ``replace`` error " "handler, instead of the UTF-8 encoding with ``surrogatepass`` error handler, " @@ -351,7 +463,7 @@ msgstr "" "``surrogatepass``, para la :term:`filesystem encoding and error handler` " "(codificación del sistema de archivos y gestor de errores)." -#: ../Doc/c-api/init.rst:158 +#: ../Doc/c-api/init.rst:217 msgid "" "Set to ``1`` if the :envvar:`PYTHONLEGACYWINDOWSFSENCODING` environment " "variable is set to a non-empty string." @@ -360,23 +472,35 @@ msgstr "" "`PYTHONLEGACYWINDOWSFSENCODING` está configurada en una cadena de caracteres " "no vacía." -#: ../Doc/c-api/init.rst:161 +#: ../Doc/c-api/init.rst:220 msgid "See :pep:`529` for more details." msgstr "Ver :pep:`529` para más detalles." -#: ../Doc/c-api/init.rst:163 ../Doc/c-api/init.rst:175 +#: ../Doc/c-api/init.rst:222 ../Doc/c-api/init.rst:240 msgid ":ref:`Availability `: Windows." msgstr ":ref:`Disponibilidad `: Windows." -#: ../Doc/c-api/init.rst:167 +#: ../Doc/c-api/init.rst:228 +#, fuzzy +msgid "" +"This API is kept for backward compatibility: setting :c:member:`PyConfig." +"legacy_windows_stdio` should be used instead, see :ref:`Python " +"Initialization Configuration `." +msgstr "" +"Esta API se mantiene para la compatibilidad con versiones anteriores: en su " +"lugar, se debe usar la configuración de :c:member:`PyConfig.home`, consulta :" +"ref:`Configuración de inicialización de Python `." + +#: ../Doc/c-api/init.rst:232 +#, fuzzy msgid "" -"If the flag is non-zero, use :class:`io.FileIO` instead of :class:" -"`WindowsConsoleIO` for :mod:`sys` standard streams." +"If the flag is non-zero, use :class:`io.FileIO` instead of :class:`!io." +"_WindowsConsoleIO` for :mod:`sys` standard streams." msgstr "" "Si el indicador no es cero, use :class:`io.FileIO` en lugar de :class:" "`WindowsConsoleIO` para secuencias estándar :mod:`sys`." -#: ../Doc/c-api/init.rst:170 +#: ../Doc/c-api/init.rst:235 msgid "" "Set to ``1`` if the :envvar:`PYTHONLEGACYWINDOWSSTDIO` environment variable " "is set to a non-empty string." @@ -385,11 +509,22 @@ msgstr "" "`PYTHONLEGACYWINDOWSSTDIO` está configurada en una cadena de caracteres no " "vacía." -#: ../Doc/c-api/init.rst:173 +#: ../Doc/c-api/init.rst:238 msgid "See :pep:`528` for more details." msgstr "Ver :pep:`528` para más detalles." -#: ../Doc/c-api/init.rst:179 +#: ../Doc/c-api/init.rst:246 +#, fuzzy +msgid "" +"This API is kept for backward compatibility: setting :c:member:`PyConfig." +"site_import` should be used instead, see :ref:`Python Initialization " +"Configuration `." +msgstr "" +"Esta API se mantiene para la compatibilidad con versiones anteriores: en su " +"lugar, se debe usar la configuración de :c:member:`PyConfig.home`, consulta :" +"ref:`Configuración de inicialización de Python `." + +#: ../Doc/c-api/init.rst:250 msgid "" "Disable the import of the module :mod:`site` and the site-dependent " "manipulations of :data:`sys.path` that it entails. Also disable these " @@ -401,11 +536,22 @@ msgstr "" "estas manipulaciones si :mod:`site` se importa explícitamente más tarde " "(llama a :func:`site.main` si desea que se activen)." -#: ../Doc/c-api/init.rst:184 +#: ../Doc/c-api/init.rst:255 msgid "Set by the :option:`-S` option." msgstr "Establecido por la opción :option:`-S`." -#: ../Doc/c-api/init.rst:188 +#: ../Doc/c-api/init.rst:261 +#, fuzzy +msgid "" +"This API is kept for backward compatibility: setting :c:member:`PyConfig." +"user_site_directory` should be used instead, see :ref:`Python Initialization " +"Configuration `." +msgstr "" +"Esta API se mantiene para la compatibilidad con versiones anteriores: en su " +"lugar, se debe usar la configuración de :c:member:`PyConfig.home`, consulta :" +"ref:`Configuración de inicialización de Python `." + +#: ../Doc/c-api/init.rst:265 msgid "" "Don't add the :data:`user site-packages directory ` to :data:" "`sys.path`." @@ -413,7 +559,7 @@ msgstr "" "No agregue el :data:`directorio de paquetes de sitio del usuario ` (*site-packages*) a :data:`sys.path`." -#: ../Doc/c-api/init.rst:191 +#: ../Doc/c-api/init.rst:268 msgid "" "Set by the :option:`-s` and :option:`-I` options, and the :envvar:" "`PYTHONNOUSERSITE` environment variable." @@ -421,7 +567,18 @@ msgstr "" "Establecido por las opciones :option:`-s` y :option:`-I`, y la variable de " "entorno :envvar:`PYTHONNOUSERSITE`." -#: ../Doc/c-api/init.rst:196 +#: ../Doc/c-api/init.rst:275 +#, fuzzy +msgid "" +"This API is kept for backward compatibility: setting :c:member:`PyConfig." +"optimization_level` should be used instead, see :ref:`Python Initialization " +"Configuration `." +msgstr "" +"Esta API se mantiene para la compatibilidad con versiones anteriores: en su " +"lugar, se debe usar la configuración de :c:member:`PyConfig.home`, consulta :" +"ref:`Configuración de inicialización de Python `." + +#: ../Doc/c-api/init.rst:279 msgid "" "Set by the :option:`-O` option and the :envvar:`PYTHONOPTIMIZE` environment " "variable." @@ -429,22 +586,44 @@ msgstr "" "Establecido por la opción :option:`-O` y la variable de entorno :envvar:" "`PYTHONOPTIMIZE`." -#: ../Doc/c-api/init.rst:201 +#: ../Doc/c-api/init.rst:286 +#, fuzzy +msgid "" +"This API is kept for backward compatibility: setting :c:member:`PyConfig." +"quiet` should be used instead, see :ref:`Python Initialization Configuration " +"`." +msgstr "" +"Esta API se mantiene para la compatibilidad con versiones anteriores: en su " +"lugar, se debe usar la configuración de :c:member:`PyConfig.home`, consulta :" +"ref:`Configuración de inicialización de Python `." + +#: ../Doc/c-api/init.rst:290 msgid "" "Don't display the copyright and version messages even in interactive mode." msgstr "" "No muestre los mensajes de *copyright* y de versión incluso en modo " "interactivo." -#: ../Doc/c-api/init.rst:203 +#: ../Doc/c-api/init.rst:292 msgid "Set by the :option:`-q` option." msgstr "Establecido por la opción :option:`-q`." -#: ../Doc/c-api/init.rst:209 +#: ../Doc/c-api/init.rst:300 +#, fuzzy +msgid "" +"This API is kept for backward compatibility: setting :c:member:`PyConfig." +"buffered_stdio` should be used instead, see :ref:`Python Initialization " +"Configuration `." +msgstr "" +"Esta API se mantiene para la compatibilidad con versiones anteriores: en su " +"lugar, se debe usar la configuración de :c:member:`PyConfig.home`, consulta :" +"ref:`Configuración de inicialización de Python `." + +#: ../Doc/c-api/init.rst:304 msgid "Force the stdout and stderr streams to be unbuffered." msgstr "Obliga a las secuencias *stdout* y *stderr* a que no tengan búfer." -#: ../Doc/c-api/init.rst:211 +#: ../Doc/c-api/init.rst:306 msgid "" "Set by the :option:`-u` option and the :envvar:`PYTHONUNBUFFERED` " "environment variable." @@ -452,7 +631,18 @@ msgstr "" "Establecido por la opción :option:`-u` y la variable de entorno :envvar:" "`PYTHONUNBUFFERED`." -#: ../Doc/c-api/init.rst:216 +#: ../Doc/c-api/init.rst:313 +#, fuzzy +msgid "" +"This API is kept for backward compatibility: setting :c:member:`PyConfig." +"verbose` should be used instead, see :ref:`Python Initialization " +"Configuration `." +msgstr "" +"Esta API se mantiene para la compatibilidad con versiones anteriores: en su " +"lugar, se debe usar la configuración de :c:member:`PyConfig.home`, consulta :" +"ref:`Configuración de inicialización de Python `." + +#: ../Doc/c-api/init.rst:317 msgid "" "Print a message each time a module is initialized, showing the place " "(filename or built-in module) from which it is loaded. If greater or equal " @@ -465,7 +655,7 @@ msgstr "" "buscar un módulo. También proporciona información sobre la limpieza del " "módulo a la salida." -#: ../Doc/c-api/init.rst:221 +#: ../Doc/c-api/init.rst:322 msgid "" "Set by the :option:`-v` option and the :envvar:`PYTHONVERBOSE` environment " "variable." @@ -473,11 +663,11 @@ msgstr "" "Establecido por la opción :option:`-v` y la variable de entorno :envvar:" "`PYTHONVERBOSE`." -#: ../Doc/c-api/init.rst:226 +#: ../Doc/c-api/init.rst:329 msgid "Initializing and finalizing the interpreter" msgstr "Inicializando y finalizando el intérprete" -#: ../Doc/c-api/init.rst:244 +#: ../Doc/c-api/init.rst:347 msgid "" "Initialize the Python interpreter. In an application embedding Python, " "this should be called before using any other Python/C API functions; see :" @@ -488,7 +678,7 @@ msgstr "" "ref:`Antes de la inicialización de Python ` para ver algunas " "excepciones." -#: ../Doc/c-api/init.rst:248 +#: ../Doc/c-api/init.rst:351 msgid "" "This initializes the table of loaded modules (``sys.modules``), and creates " "the fundamental modules :mod:`builtins`, :mod:`__main__` and :mod:`sys`. It " @@ -504,7 +694,16 @@ msgstr "" "llama por segunda vez (sin llamar primero a :c:func:`Py_FinalizeEx`). No hay " "valor de retorno; es un error fatal si falla la inicialización." -#: ../Doc/c-api/init.rst:257 +#: ../Doc/c-api/init.rst:359 ../Doc/c-api/init.rst:373 +#, fuzzy +msgid "" +"Use the :c:func:`Py_InitializeFromConfig` function to customize the :ref:" +"`Python Initialization Configuration `." +msgstr "" +"Consulte también :ref:`Configuración de inicialización de Python `." + +#: ../Doc/c-api/init.rst:363 msgid "" "On Windows, changes the console mode from ``O_TEXT`` to ``O_BINARY``, which " "will also affect non-Python uses of the console using the C Runtime." @@ -513,7 +712,7 @@ msgstr "" "también afectará los usos de la consola que no sean de Python utilizando C " "*Runtime*." -#: ../Doc/c-api/init.rst:263 +#: ../Doc/c-api/init.rst:369 msgid "" "This function works like :c:func:`Py_Initialize` if *initsigs* is ``1``. If " "*initsigs* is ``0``, it skips initialization registration of signal " @@ -523,7 +722,7 @@ msgstr "" "Si *initsigs* es ``0``, omite el registro de inicialización de los " "manejadores de señal, lo que podría ser útil cuando Python está incrustado." -#: ../Doc/c-api/init.rst:270 +#: ../Doc/c-api/init.rst:379 msgid "" "Return true (nonzero) when the Python interpreter has been initialized, " "false (zero) if not. After :c:func:`Py_FinalizeEx` is called, this returns " @@ -534,7 +733,7 @@ msgstr "" "`Py_FinalizeEx`, esto retorna falso hasta que :c:func:`Py_Initialize` se " "llama de nuevo." -#: ../Doc/c-api/init.rst:277 +#: ../Doc/c-api/init.rst:386 msgid "" "Undo all initializations made by :c:func:`Py_Initialize` and subsequent use " "of Python/C API functions, and destroy all sub-interpreters (see :c:func:" @@ -555,7 +754,7 @@ msgstr "" "``0``. Si hubo errores durante la finalización (lavado de datos almacenados " "en el búfer), se retorna ``-1``." -#: ../Doc/c-api/init.rst:286 +#: ../Doc/c-api/init.rst:395 msgid "" "This function is provided for a number of reasons. An embedding application " "might want to restart Python without having to restart the application " @@ -574,19 +773,20 @@ msgstr "" "querer liberar toda la memoria asignada por Python antes de salir de la " "aplicación." -#: ../Doc/c-api/init.rst:294 +#: ../Doc/c-api/init.rst:403 +#, fuzzy msgid "" "**Bugs and caveats:** The destruction of modules and objects in modules is " -"done in random order; this may cause destructors (:meth:`__del__` methods) " -"to fail when they depend on other objects (even functions) or modules. " -"Dynamically loaded extension modules loaded by Python are not unloaded. " -"Small amounts of memory allocated by the Python interpreter may not be freed " -"(if you find a leak, please report it). Memory tied up in circular " -"references between objects is not freed. Some memory allocated by extension " -"modules may not be freed. Some extensions may not work properly if their " -"initialization routine is called more than once; this can happen if an " -"application calls :c:func:`Py_Initialize` and :c:func:`Py_FinalizeEx` more " -"than once." +"done in random order; this may cause destructors (:meth:`~object.__del__` " +"methods) to fail when they depend on other objects (even functions) or " +"modules. Dynamically loaded extension modules loaded by Python are not " +"unloaded. Small amounts of memory allocated by the Python interpreter may " +"not be freed (if you find a leak, please report it). Memory tied up in " +"circular references between objects is not freed. Some memory allocated by " +"extension modules may not be freed. Some extensions may not work properly " +"if their initialization routine is called more than once; this can happen if " +"an application calls :c:func:`Py_Initialize` and :c:func:`Py_FinalizeEx` " +"more than once." msgstr "" "**Errores y advertencias:** La destrucción de módulos y objetos en módulos " "se realiza en orden aleatorio; esto puede causar que los destructores " @@ -601,7 +801,7 @@ msgstr "" "vez; Esto puede suceder si una aplicación llama a :c:func:`Py_Initialize` y :" "c:func:`Py_FinalizeEx` más de una vez." -#: ../Doc/c-api/init.rst:305 +#: ../Doc/c-api/init.rst:414 msgid "" "Raises an :ref:`auditing event ` ``cpython." "_PySys_ClearAuditHooks`` with no arguments." @@ -609,7 +809,7 @@ msgstr "" "Genera un :ref:`evento de auditoría ` ``cpython." "_PySys_ClearAuditHooks`` sin argumentos." -#: ../Doc/c-api/init.rst:311 +#: ../Doc/c-api/init.rst:420 msgid "" "This is a backwards-compatible version of :c:func:`Py_FinalizeEx` that " "disregards the return value." @@ -617,11 +817,11 @@ msgstr "" "Esta es una versión compatible con versiones anteriores de :c:func:" "`Py_FinalizeEx` que ignora el valor de retorno." -#: ../Doc/c-api/init.rst:316 +#: ../Doc/c-api/init.rst:425 msgid "Process-wide parameters" msgstr "Parámetros de todo el proceso" -#: ../Doc/c-api/init.rst:326 +#: ../Doc/c-api/init.rst:435 msgid "" "This API is kept for backward compatibility: setting :c:member:`PyConfig." "stdio_encoding` and :c:member:`PyConfig.stdio_errors` should be used " @@ -632,7 +832,7 @@ msgstr "" "y :c:member:`PyConfig.stdio_errors`, consulta :ref:`Configuración de " "inicialización de Python `." -#: ../Doc/c-api/init.rst:331 +#: ../Doc/c-api/init.rst:440 msgid "" "This function should be called before :c:func:`Py_Initialize`, if it is " "called at all. It specifies which encoding and error handling to use with " @@ -642,7 +842,7 @@ msgstr "" "llama. Especifica qué codificación y manejo de errores usar con IO estándar, " "con los mismos significados que en :func:`str.encode`." -#: ../Doc/c-api/init.rst:335 +#: ../Doc/c-api/init.rst:444 msgid "" "It overrides :envvar:`PYTHONIOENCODING` values, and allows embedding code to " "control IO encoding when the environment variable does not work." @@ -650,7 +850,7 @@ msgstr "" "Reemplaza los valores :envvar:`PYTHONIOENCODING`, y permite incrustar código " "para controlar la codificación IO cuando la variable de entorno no funciona." -#: ../Doc/c-api/init.rst:338 +#: ../Doc/c-api/init.rst:447 msgid "" "*encoding* and/or *errors* may be ``NULL`` to use :envvar:`PYTHONIOENCODING` " "and/or default values (depending on other settings)." @@ -659,7 +859,7 @@ msgstr "" "`PYTHONIOENCODING` o valores predeterminados (dependiendo de otras " "configuraciones)." -#: ../Doc/c-api/init.rst:342 +#: ../Doc/c-api/init.rst:451 msgid "" "Note that :data:`sys.stderr` always uses the \"backslashreplace\" error " "handler, regardless of this (or any other) setting." @@ -668,7 +868,7 @@ msgstr "" "\"*backslashreplace*\", independientemente de esta configuración (o " "cualquier otra)." -#: ../Doc/c-api/init.rst:345 +#: ../Doc/c-api/init.rst:454 msgid "" "If :c:func:`Py_FinalizeEx` is called, this function will need to be called " "again in order to affect subsequent calls to :c:func:`Py_Initialize`." @@ -676,7 +876,7 @@ msgstr "" "Si se llama a :c:func:`Py_FinalizeEx`, será necesario volver a llamar a esta " "función para afectar las llamadas posteriores a :c:func:`Py_Initialize`." -#: ../Doc/c-api/init.rst:348 +#: ../Doc/c-api/init.rst:457 msgid "" "Returns ``0`` if successful, a nonzero value on error (e.g. calling after " "the interpreter has already been initialized)." @@ -684,7 +884,7 @@ msgstr "" "Retorna ``0`` si tiene éxito, un valor distinto de cero en caso de error " "(por ejemplo, llamar después de que el intérprete ya se haya inicializado)" -#: ../Doc/c-api/init.rst:363 +#: ../Doc/c-api/init.rst:472 msgid "" "This API is kept for backward compatibility: setting :c:member:`PyConfig." "program_name` should be used instead, see :ref:`Python Initialization " @@ -694,7 +894,7 @@ msgstr "" "lugar, se debe usar la configuración de :c:member:`PyConfig.program_name`, " "consulta :ref:`Configuración de inicialización de Python `." -#: ../Doc/c-api/init.rst:367 +#: ../Doc/c-api/init.rst:476 msgid "" "This function should be called before :c:func:`Py_Initialize` is called for " "the first time, if it is called at all. It tells the interpreter the value " @@ -718,17 +918,16 @@ msgstr "" "contenido no cambiará mientras dure la ejecución del programa. Ningún código " "en el intérprete de Python cambiará el contenido de este almacenamiento." -#: ../Doc/c-api/init.rst:378 ../Doc/c-api/init.rst:529 -#: ../Doc/c-api/init.rst:644 ../Doc/c-api/init.rst:680 -#: ../Doc/c-api/init.rst:706 +#: ../Doc/c-api/init.rst:487 +#, fuzzy msgid "" "Use :c:func:`Py_DecodeLocale` to decode a bytes string to get a :c:expr:" -"`wchar_*` string." +"`wchar_t *` string." msgstr "" "Utilice :c:func:`Py_DecodeLocale` para decodificar una cadena de bytes para " "obtener una cadena de tipo :c:expr:`wchar_*`." -#: ../Doc/c-api/init.rst:388 +#: ../Doc/c-api/init.rst:497 msgid "" "Return the program name set with :c:func:`Py_SetProgramName`, or the " "default. The returned string points into static storage; the caller should " @@ -738,9 +937,9 @@ msgstr "" "o el valor predeterminado. La cadena de caracteres retornada apunta al " "almacenamiento estático; la persona que llama no debe modificar su valor." -#: ../Doc/c-api/init.rst:392 ../Doc/c-api/init.rst:411 -#: ../Doc/c-api/init.rst:452 ../Doc/c-api/init.rst:471 -#: ../Doc/c-api/init.rst:495 ../Doc/c-api/init.rst:718 +#: ../Doc/c-api/init.rst:501 ../Doc/c-api/init.rst:520 +#: ../Doc/c-api/init.rst:561 ../Doc/c-api/init.rst:580 +#: ../Doc/c-api/init.rst:604 ../Doc/c-api/init.rst:827 msgid "" "This function should not be called before :c:func:`Py_Initialize`, otherwise " "it returns ``NULL``." @@ -748,15 +947,16 @@ msgstr "" "Esta función ya no se puede llamar antes de :c:func:`Py_Initialize()`, de " "otra forma retornará ``NULL``." -#: ../Doc/c-api/init.rst:395 ../Doc/c-api/init.rst:414 -#: ../Doc/c-api/init.rst:455 ../Doc/c-api/init.rst:474 -#: ../Doc/c-api/init.rst:500 ../Doc/c-api/init.rst:721 +#: ../Doc/c-api/init.rst:504 ../Doc/c-api/init.rst:523 +#: ../Doc/c-api/init.rst:564 ../Doc/c-api/init.rst:583 +#: ../Doc/c-api/init.rst:609 ../Doc/c-api/init.rst:830 msgid "It now returns ``NULL`` if called before :c:func:`Py_Initialize`." msgstr "" "Todas las siguientes funciones deben llamarse después de :c:func:" "`Py_Initialize`, de lo contrario retornará ``NULL``." -#: ../Doc/c-api/init.rst:401 +#: ../Doc/c-api/init.rst:510 +#, fuzzy msgid "" "Return the *prefix* for installed platform-independent files. This is " "derived through a number of complicated rules from the program name set " @@ -764,10 +964,10 @@ msgid "" "example, if the program name is ``'/usr/local/bin/python'``, the prefix is " "``'/usr/local'``. The returned string points into static storage; the caller " "should not modify its value. This corresponds to the :makevar:`prefix` " -"variable in the top-level :file:`Makefile` and the ``--prefix`` argument to " -"the :program:`configure` script at build time. The value is available to " -"Python code as ``sys.prefix``. It is only useful on Unix. See also the next " -"function." +"variable in the top-level :file:`Makefile` and the :option:`--prefix` " +"argument to the :program:`configure` script at build time. The value is " +"available to Python code as ``sys.prefix``. It is only useful on Unix. See " +"also the next function." msgstr "" "Retorna el prefijo *prefix* para los archivos instalados independientes de " "la plataforma. Esto se deriva a través de una serie de reglas complicadas " @@ -781,7 +981,7 @@ msgstr "" "compilación. El valor está disponible para el código de Python como ``sys." "prefix``. Solo es útil en Unix. Ver también la siguiente función." -#: ../Doc/c-api/init.rst:420 +#: ../Doc/c-api/init.rst:529 msgid "" "Return the *exec-prefix* for installed platform-*dependent* files. This is " "derived through a number of complicated rules from the program name set " @@ -806,7 +1006,7 @@ msgstr "" "`configure` en tiempo de compilación. El valor está disponible para el " "código de Python como ``sys.exec_prefix``. Solo es útil en Unix." -#: ../Doc/c-api/init.rst:430 +#: ../Doc/c-api/init.rst:539 msgid "" "Background: The exec-prefix differs from the prefix when platform dependent " "files (such as executables and shared libraries) are installed in a " @@ -821,7 +1021,7 @@ msgstr "" "file:`/usr/local/plat` mientras que la plataforma independiente puede " "instalarse en :file:`/usr/local`." -#: ../Doc/c-api/init.rst:436 +#: ../Doc/c-api/init.rst:545 msgid "" "Generally speaking, a platform is a combination of hardware and software " "families, e.g. Sparc machines running the Solaris 2.x operating system are " @@ -847,7 +1047,7 @@ msgstr "" "compilados de Python son independientes de la plataforma (¡pero no " "independientes de la versión de Python con la que fueron compilados!)." -#: ../Doc/c-api/init.rst:447 +#: ../Doc/c-api/init.rst:556 msgid "" "System administrators will know how to configure the :program:`mount` or :" "program:`automount` programs to share :file:`/usr/local` between platforms " @@ -859,7 +1059,7 @@ msgstr "" "entre plataformas mientras que :file:`/usr/local/plat` sea un sistema de " "archivos diferente para cada plataforma." -#: ../Doc/c-api/init.rst:465 +#: ../Doc/c-api/init.rst:574 msgid "" "Return the full program name of the Python executable; this is computed as " "a side-effect of deriving the default module search path from the program " @@ -874,7 +1074,7 @@ msgstr "" "almacenamiento estático; la persona que llama no debe modificar su valor. El " "valor está disponible para el código de Python como ``sys.executable``." -#: ../Doc/c-api/init.rst:485 +#: ../Doc/c-api/init.rst:594 msgid "" "Return the default module search path; this is computed from the program " "name (set by :c:func:`Py_SetProgramName` above) and some environment " @@ -897,7 +1097,7 @@ msgstr "" "en el inicio del intérprete; se puede (y generalmente se realiza) modificar " "más adelante para cambiar la ruta de búsqueda para cargar módulos." -#: ../Doc/c-api/init.rst:511 +#: ../Doc/c-api/init.rst:620 msgid "" "This API is kept for backward compatibility: setting :c:member:`PyConfig." "module_search_paths` and :c:member:`PyConfig.module_search_paths_set` should " @@ -911,7 +1111,7 @@ msgstr "" # Actualmente se está usando el sistema operativo macOS, mientras que Mac OS X # es un versión más antigua de la misma. -#: ../Doc/c-api/init.rst:516 +#: ../Doc/c-api/init.rst:625 msgid "" "Set the default module search path. If this function is called before :c:" "func:`Py_Initialize`, then :c:func:`Py_GetPath` won't attempt to compute a " @@ -930,7 +1130,7 @@ msgstr "" "delimitador dependiente de la plataforma, el cual es ``':'`` en Unix y " "macOS, ``';'`` en Windows." -#: ../Doc/c-api/init.rst:524 +#: ../Doc/c-api/init.rst:633 msgid "" "This also causes :data:`sys.executable` to be set to the program full path " "(see :c:func:`Py_GetProgramFullPath`) and for :data:`sys.prefix` and :data:" @@ -943,7 +1143,16 @@ msgstr "" "persona que llama modificarlos si es necesario después de llamar :c:func:" "`Py_Initialize`." -#: ../Doc/c-api/init.rst:532 +#: ../Doc/c-api/init.rst:638 ../Doc/c-api/init.rst:753 +#: ../Doc/c-api/init.rst:789 ../Doc/c-api/init.rst:815 +msgid "" +"Use :c:func:`Py_DecodeLocale` to decode a bytes string to get a :c:expr:" +"`wchar_*` string." +msgstr "" +"Utilice :c:func:`Py_DecodeLocale` para decodificar una cadena de bytes para " +"obtener una cadena de tipo :c:expr:`wchar_*`." + +#: ../Doc/c-api/init.rst:641 msgid "" "The path argument is copied internally, so the caller may free it after the " "call completes." @@ -951,7 +1160,7 @@ msgstr "" "El argumento de ruta se copia internamente, por lo que la persona que llama " "puede liberarlo después de que se complete la llamada." -#: ../Doc/c-api/init.rst:535 +#: ../Doc/c-api/init.rst:644 msgid "" "The program full path is now used for :data:`sys.executable`, instead of the " "program name." @@ -959,7 +1168,7 @@ msgstr "" "La ruta completa del programa ahora se usa para :data:`sys.executable`, en " "lugar del nombre del programa." -#: ../Doc/c-api/init.rst:544 +#: ../Doc/c-api/init.rst:653 msgid "" "Return the version of this Python interpreter. This is a string that looks " "something like ::" @@ -967,7 +1176,7 @@ msgstr "" "Retorna la versión de este intérprete de Python. Esta es una cadena de " "caracteres que se parece a ::" -#: ../Doc/c-api/init.rst:551 +#: ../Doc/c-api/init.rst:660 msgid "" "The first word (up to the first space character) is the current Python " "version; the first characters are the major and minor version separated by a " @@ -981,11 +1190,11 @@ msgstr "" "almacenamiento estático; la persona que llama no debe modificar su valor. El " "valor está disponible para el código Python como :data:`sys.version`." -#: ../Doc/c-api/init.rst:556 +#: ../Doc/c-api/init.rst:665 msgid "See also the :c:var:`Py_Version` constant." msgstr "Consulta también la constante :c:var:`Py_Version`." -#: ../Doc/c-api/init.rst:563 +#: ../Doc/c-api/init.rst:672 msgid "" "Return the platform identifier for the current platform. On Unix, this is " "formed from the \"official\" name of the operating system, converted to " @@ -1004,7 +1213,7 @@ msgstr "" "llama no debe modificar su valor. El valor está disponible para el código de " "Python como ``sys.platform``." -#: ../Doc/c-api/init.rst:574 +#: ../Doc/c-api/init.rst:683 msgid "" "Return the official copyright string for the current Python version, for " "example" @@ -1012,11 +1221,11 @@ msgstr "" "Retorna la cadena de caracteres de copyright oficial para la versión actual " "de Python, por ejemplo" -#: ../Doc/c-api/init.rst:576 +#: ../Doc/c-api/init.rst:685 msgid "``'Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam'``" msgstr "``'Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam'``" -#: ../Doc/c-api/init.rst:580 +#: ../Doc/c-api/init.rst:689 msgid "" "The returned string points into static storage; the caller should not modify " "its value. The value is available to Python code as ``sys.copyright``." @@ -1025,7 +1234,7 @@ msgstr "" "persona que llama no debe modificar su valor. El valor está disponible para " "el código de Python como ``sys.copyright``." -#: ../Doc/c-api/init.rst:586 +#: ../Doc/c-api/init.rst:695 msgid "" "Return an indication of the compiler used to build the current Python " "version, in square brackets, for example::" @@ -1033,7 +1242,7 @@ msgstr "" "Retorna una indicación del compilador utilizado para construir la versión " "actual de Python, entre corchetes, por ejemplo:" -#: ../Doc/c-api/init.rst:593 ../Doc/c-api/init.rst:607 +#: ../Doc/c-api/init.rst:702 ../Doc/c-api/init.rst:716 msgid "" "The returned string points into static storage; the caller should not modify " "its value. The value is available to Python code as part of the variable " @@ -1043,7 +1252,7 @@ msgstr "" "persona que llama no debe modificar su valor. El valor está disponible para " "el código Python como parte de la variable ``sys.version``." -#: ../Doc/c-api/init.rst:600 +#: ../Doc/c-api/init.rst:709 msgid "" "Return information about the sequence number and build date and time of the " "current Python interpreter instance, for example ::" @@ -1051,7 +1260,7 @@ msgstr "" "Retorna información sobre el número de secuencia y la fecha y hora de " "compilación de la instancia actual de intérprete de Python, por ejemplo::" -#: ../Doc/c-api/init.rst:619 +#: ../Doc/c-api/init.rst:728 msgid "" "This API is kept for backward compatibility: setting :c:member:`PyConfig." "argv`, :c:member:`PyConfig.parse_argv` and :c:member:`PyConfig.safe_path` " @@ -1063,7 +1272,7 @@ msgstr "" "`PyConfig.parse_argv` y :c:member:`PyConfig.safe_path`, consulta :ref:" "`Configuración de inicialización de Python `." -#: ../Doc/c-api/init.rst:624 +#: ../Doc/c-api/init.rst:733 msgid "" "Set :data:`sys.argv` based on *argc* and *argv*. These parameters are " "similar to those passed to the program's :c:func:`main` function with the " @@ -1082,7 +1291,7 @@ msgstr "" "caracteres vacía. Si esta función no puede inicializar :data:`sys.argv`, una " "condición fatal se señala usando :c:func:`Py_FatalError`." -#: ../Doc/c-api/init.rst:632 +#: ../Doc/c-api/init.rst:741 msgid "" "If *updatepath* is zero, this is all the function does. If *updatepath* is " "non-zero, the function also modifies :data:`sys.path` according to the " @@ -1092,7 +1301,7 @@ msgstr "" "*updatepath* no es cero, la función también modifica :data:`sys.path` de " "acuerdo con el siguiente algoritmo:" -#: ../Doc/c-api/init.rst:636 +#: ../Doc/c-api/init.rst:745 msgid "" "If the name of an existing script is passed in ``argv[0]``, the absolute " "path of the directory where the script is located is prepended to :data:`sys." @@ -1102,7 +1311,7 @@ msgstr "" "``argv[0]``, la ruta absoluta del directorio donde se encuentra el *script* " "se antepone a :data:`sys.path`." -#: ../Doc/c-api/init.rst:639 +#: ../Doc/c-api/init.rst:748 msgid "" "Otherwise (that is, if *argc* is ``0`` or ``argv[0]`` doesn't point to an " "existing file name), an empty string is prepended to :data:`sys.path`, which " @@ -1113,7 +1322,7 @@ msgstr "" "data:`sys.path`, que es lo mismo que anteponer el directorio de trabajo " "actual (``\".\"``)." -#: ../Doc/c-api/init.rst:647 ../Doc/c-api/init.rst:683 +#: ../Doc/c-api/init.rst:756 ../Doc/c-api/init.rst:792 msgid "" "See also :c:member:`PyConfig.orig_argv` and :c:member:`PyConfig.argv` " "members of the :ref:`Python Initialization Configuration `." @@ -1121,7 +1330,7 @@ msgstr "" "Consulta también los miembros de :c:member:`PyConfig.orig_argv` y :c:member:" "`PyConfig.argv` de :ref:`Python Initialization Configuration `." -#: ../Doc/c-api/init.rst:651 +#: ../Doc/c-api/init.rst:760 msgid "" "It is recommended that applications embedding the Python interpreter for " "purposes other than executing a single script pass ``0`` as *updatepath*, " @@ -1134,7 +1343,7 @@ msgstr "" "desean. Ver `CVE-2008-5983 `_." -#: ../Doc/c-api/init.rst:656 +#: ../Doc/c-api/init.rst:765 msgid "" "On versions before 3.1.3, you can achieve the same effect by manually " "popping the first :data:`sys.path` element after having called :c:func:" @@ -1144,7 +1353,7 @@ msgstr "" "manualmente el primer elemento (*popping*) :data:`sys.path` después de haber " "llamado :c:func:`PySys_SetArgv`, por ejemplo usando ::" -#: ../Doc/c-api/init.rst:672 +#: ../Doc/c-api/init.rst:781 msgid "" "This API is kept for backward compatibility: setting :c:member:`PyConfig." "argv` and :c:member:`PyConfig.parse_argv` should be used instead, see :ref:" @@ -1155,7 +1364,7 @@ msgstr "" "member:`PyConfig.parse_argv`, consulta :ref:`Configuración de inicialización " "de Python `." -#: ../Doc/c-api/init.rst:676 +#: ../Doc/c-api/init.rst:785 msgid "" "This function works like :c:func:`PySys_SetArgvEx` with *updatepath* set to " "``1`` unless the :program:`python` interpreter was started with the :option:" @@ -1165,11 +1374,11 @@ msgstr "" "establecido en ``1`` a menos que el intérprete :program:`python` se haya " "iniciado con la opción :option:`-I`." -#: ../Doc/c-api/init.rst:686 +#: ../Doc/c-api/init.rst:795 msgid "The *updatepath* value depends on :option:`-I`." msgstr "El valor *updatepath* depende de la opción :option:`-I`." -#: ../Doc/c-api/init.rst:693 +#: ../Doc/c-api/init.rst:802 msgid "" "This API is kept for backward compatibility: setting :c:member:`PyConfig." "home` should be used instead, see :ref:`Python Initialization Configuration " @@ -1179,7 +1388,7 @@ msgstr "" "lugar, se debe usar la configuración de :c:member:`PyConfig.home`, consulta :" "ref:`Configuración de inicialización de Python `." -#: ../Doc/c-api/init.rst:697 +#: ../Doc/c-api/init.rst:806 msgid "" "Set the default \"home\" directory, that is, the location of the standard " "Python libraries. See :envvar:`PYTHONHOME` for the meaning of the argument " @@ -1189,7 +1398,7 @@ msgstr "" "ubicación de las bibliotecas estándar de Python. Ver :envvar:`PYTHONHOME` " "para el significado de la cadena de caracteres de argumento." -#: ../Doc/c-api/init.rst:701 +#: ../Doc/c-api/init.rst:810 msgid "" "The argument should point to a zero-terminated character string in static " "storage whose contents will not change for the duration of the program's " @@ -1201,7 +1410,7 @@ msgstr "" "ejecución del programa. Ningún código en el intérprete de Python cambiará el " "contenido de este almacenamiento." -#: ../Doc/c-api/init.rst:714 +#: ../Doc/c-api/init.rst:823 msgid "" "Return the default \"home\", that is, the value set by a previous call to :c:" "func:`Py_SetPythonHome`, or the value of the :envvar:`PYTHONHOME` " @@ -1211,11 +1420,11 @@ msgstr "" "establecido por una llamada anterior a :c:func:`Py_SetPythonHome`, o el " "valor de la variable de entorno :envvar:`PYTHONHOME` si está configurado." -#: ../Doc/c-api/init.rst:728 +#: ../Doc/c-api/init.rst:837 msgid "Thread State and the Global Interpreter Lock" msgstr "Estado del hilo y el bloqueo global del intérprete" -#: ../Doc/c-api/init.rst:735 +#: ../Doc/c-api/init.rst:844 msgid "" "The Python interpreter is not fully thread-safe. In order to support multi-" "threaded Python programs, there's a global lock, called the :term:`global " @@ -1236,7 +1445,7 @@ msgstr "" "conteo de referencias podría terminar incrementándose solo una vez en lugar " "de dos veces." -#: ../Doc/c-api/init.rst:745 +#: ../Doc/c-api/init.rst:854 msgid "" "Therefore, the rule exists that only the thread that has acquired the :term:" "`GIL` may operate on Python objects or call Python/C API functions. In order " @@ -1253,7 +1462,7 @@ msgstr "" "escribir un archivo, para que otros hilos de Python puedan ejecutarse " "mientras tanto." -#: ../Doc/c-api/init.rst:756 +#: ../Doc/c-api/init.rst:865 msgid "" "The Python interpreter keeps some thread-specific bookkeeping information " "inside a data structure called :c:type:`PyThreadState`. There's also one " @@ -1265,11 +1474,11 @@ msgstr "" "`PyThreadState`. También hay una variable global que apunta a la actual :c:" "type:`PyThreadState`: se puede recuperar usando :c:func:`PyThreadState_Get`." -#: ../Doc/c-api/init.rst:762 +#: ../Doc/c-api/init.rst:871 msgid "Releasing the GIL from extension code" msgstr "Liberando el GIL del código de extensión" -#: ../Doc/c-api/init.rst:764 +#: ../Doc/c-api/init.rst:873 msgid "" "Most extension code manipulating the :term:`GIL` has the following simple " "structure::" @@ -1277,11 +1486,11 @@ msgstr "" "La mayoría del código de extensión que manipula el :term:`GIL` tiene la " "siguiente estructura simple ::" -#: ../Doc/c-api/init.rst:773 +#: ../Doc/c-api/init.rst:882 msgid "This is so common that a pair of macros exists to simplify it::" msgstr "Esto es tan común que existen un par de macros para simplificarlo:" -#: ../Doc/c-api/init.rst:783 +#: ../Doc/c-api/init.rst:892 msgid "" "The :c:macro:`Py_BEGIN_ALLOW_THREADS` macro opens a new block and declares a " "hidden local variable; the :c:macro:`Py_END_ALLOW_THREADS` macro closes the " @@ -1291,11 +1500,11 @@ msgstr "" "una variable local oculta; la macro :c:macro:`Py_END_ALLOW_THREADS` cierra " "el bloque." -#: ../Doc/c-api/init.rst:787 +#: ../Doc/c-api/init.rst:896 msgid "The block above expands to the following code::" msgstr "El bloque anterior se expande al siguiente código::" -#: ../Doc/c-api/init.rst:799 +#: ../Doc/c-api/init.rst:908 msgid "" "Here is how these functions work: the global interpreter lock is used to " "protect the pointer to the current thread state. When releasing the lock " @@ -1314,7 +1523,7 @@ msgstr "" "estado del hilo, el bloqueo debe adquirirse antes de almacenar el puntero " "del estado del hilo." -#: ../Doc/c-api/init.rst:808 +#: ../Doc/c-api/init.rst:917 msgid "" "Calling system I/O functions is the most common use case for releasing the " "GIL, but it can also be useful before calling long-running computations " @@ -1330,11 +1539,11 @@ msgstr "" "intermedias. Por ejemplo, los módulos estándar :mod:`zlib` y :mod:`hashlib` " "liberan el GIL al comprimir o mezclar datos." -#: ../Doc/c-api/init.rst:819 +#: ../Doc/c-api/init.rst:928 msgid "Non-Python created threads" msgstr "Hilos creados sin Python" -#: ../Doc/c-api/init.rst:821 +#: ../Doc/c-api/init.rst:930 msgid "" "When threads are created using the dedicated Python APIs (such as the :mod:" "`threading` module), a thread state is automatically associated to them and " @@ -1350,7 +1559,7 @@ msgstr "" "terceros con su propia administración de hilos), no contienen el GIL, ni " "existe una estructura de estado de hilos para ellos." -#: ../Doc/c-api/init.rst:828 +#: ../Doc/c-api/init.rst:937 msgid "" "If you need to call Python code from these threads (often this will be part " "of a callback API provided by the aforementioned third-party library), you " @@ -1370,7 +1579,7 @@ msgstr "" "liberar el GIL y finalmente liberar la estructura de datos del estado del " "hilo." -#: ../Doc/c-api/init.rst:836 +#: ../Doc/c-api/init.rst:945 msgid "" "The :c:func:`PyGILState_Ensure` and :c:func:`PyGILState_Release` functions " "do all of the above automatically. The typical idiom for calling into " @@ -1380,7 +1589,7 @@ msgstr "" "hacen todo lo anterior automáticamente. El idioma típico para llamar a " "Python desde un hilo C es::" -#: ../Doc/c-api/init.rst:850 +#: ../Doc/c-api/init.rst:959 msgid "" "Note that the ``PyGILState_*`` functions assume there is only one global " "interpreter (created automatically by :c:func:`Py_Initialize`). Python " @@ -1394,11 +1603,11 @@ msgstr "" "`Py_NewInterpreter`), pero la mezcla de varios intérpretes y la API " "``PyGILState_*`` no está soportada." -#: ../Doc/c-api/init.rst:860 +#: ../Doc/c-api/init.rst:969 msgid "Cautions about fork()" msgstr "Precauciones sobre ``fork()``" -#: ../Doc/c-api/init.rst:862 +#: ../Doc/c-api/init.rst:971 msgid "" "Another important thing to note about threads is their behaviour in the face " "of the C :c:func:`fork` call. On most systems with :c:func:`fork`, after a " @@ -1413,7 +1622,8 @@ msgstr "" "manejar las cerraduras como en todo el estado almacenado en el tiempo de " "ejecución de CPython." -#: ../Doc/c-api/init.rst:868 +#: ../Doc/c-api/init.rst:977 +#, fuzzy msgid "" "The fact that only the \"current\" thread remains means any locks held by " "other threads will never be released. Python solves this for :func:`os.fork` " @@ -1421,7 +1631,7 @@ msgid "" "them afterwards. In addition, it resets any :ref:`lock-objects` in the " "child. When extending or embedding Python, there is no way to inform Python " "of additional (non-Python) locks that need to be acquired before or reset " -"after a fork. OS facilities such as :c:func:`pthread_atfork` would need to " +"after a fork. OS facilities such as :c:func:`!pthread_atfork` would need to " "be used to accomplish the same thing. Additionally, when extending or " "embedding Python, calling :c:func:`fork` directly rather than through :func:" "`os.fork` (and returning to or calling into Python) may result in a deadlock " @@ -1445,7 +1655,7 @@ msgstr "" "`PyOS_AfterFork_Child` intenta restablecer los bloqueos necesarios, pero no " "siempre puede hacerlo." -#: ../Doc/c-api/init.rst:883 +#: ../Doc/c-api/init.rst:992 msgid "" "The fact that all other threads go away also means that CPython's runtime " "state there must be cleaned up properly, which :func:`os.fork` does. This " @@ -1468,11 +1678,11 @@ msgstr "" "originalmente. La única excepción es si :c:func:`exec` se llamará " "inmediatamente después." -#: ../Doc/c-api/init.rst:896 +#: ../Doc/c-api/init.rst:1005 msgid "High-level API" msgstr "API de alto nivel" -#: ../Doc/c-api/init.rst:898 +#: ../Doc/c-api/init.rst:1007 msgid "" "These are the most commonly used types and functions when writing C " "extension code, or when embedding the Python interpreter:" @@ -1480,7 +1690,7 @@ msgstr "" "Estos son los tipos y funciones más utilizados al escribir código de " "extensión C o al incrustar el intérprete de Python:" -#: ../Doc/c-api/init.rst:903 +#: ../Doc/c-api/init.rst:1012 msgid "" "This data structure represents the state shared by a number of cooperating " "threads. Threads belonging to the same interpreter share their module " @@ -1492,7 +1702,7 @@ msgstr "" "comparten la administración de su módulo y algunos otros elementos internos. " "No hay miembros públicos en esta estructura." -#: ../Doc/c-api/init.rst:908 +#: ../Doc/c-api/init.rst:1017 msgid "" "Threads belonging to different interpreters initially share nothing, except " "process state like available memory, open file descriptors and such. The " @@ -1505,32 +1715,37 @@ msgstr "" "compartido por todos los hilos, independientemente de a qué intérprete " "pertenezcan." -#: ../Doc/c-api/init.rst:916 +#: ../Doc/c-api/init.rst:1025 +#, fuzzy msgid "" "This data structure represents the state of a single thread. The only " -"public data member is :attr:`interp` (:c:expr:`PyInterpreterState *`), which " -"points to this thread's interpreter state." +"public data member is:" msgstr "" "Esta estructura de datos representa el estado de un solo hilo. El único " "miembro de datos públicos es :attr:`interp` (:c:expr:`PyInterpreterState " "*`), que apunta al estado del intérprete de este hilo." -#: ../Doc/c-api/init.rst:929 +#: ../Doc/c-api/init.rst:1030 +#, fuzzy +msgid "This thread's interpreter state." +msgstr "Retorna el objeto de estado del intérprete principal." + +#: ../Doc/c-api/init.rst:1041 msgid "Deprecated function which does nothing." msgstr "Función deprecada que no hace nada." -#: ../Doc/c-api/init.rst:931 +#: ../Doc/c-api/init.rst:1043 msgid "" "In Python 3.6 and older, this function created the GIL if it didn't exist." msgstr "" "En Python 3.6 y versiones anteriores, esta función creaba el GIL si no " "existía." -#: ../Doc/c-api/init.rst:933 +#: ../Doc/c-api/init.rst:1045 msgid "The function now does nothing." msgstr "La función ahora no hace nada." -#: ../Doc/c-api/init.rst:936 +#: ../Doc/c-api/init.rst:1048 msgid "" "This function is now called by :c:func:`Py_Initialize()`, so you don't have " "to call it yourself anymore." @@ -1538,12 +1753,12 @@ msgstr "" "Esta función ahora es llamada por :c:func:`Py_Initialize()`, por lo que ya " "no tiene que llamarla usted mismo." -#: ../Doc/c-api/init.rst:940 +#: ../Doc/c-api/init.rst:1052 msgid "" "This function cannot be called before :c:func:`Py_Initialize()` anymore." msgstr "Esta función ya no se puede llamar antes de :c:func:`Py_Initialize()`." -#: ../Doc/c-api/init.rst:950 +#: ../Doc/c-api/init.rst:1062 msgid "" "Returns a non-zero value if :c:func:`PyEval_InitThreads` has been called. " "This function can be called without holding the GIL, and therefore can be " @@ -1554,12 +1769,12 @@ msgstr "" "por lo tanto, se puede utilizar para evitar llamadas a la API de bloqueo " "cuando se ejecuta un solo hilo." -#: ../Doc/c-api/init.rst:954 +#: ../Doc/c-api/init.rst:1066 msgid "The :term:`GIL` is now initialized by :c:func:`Py_Initialize()`." msgstr "" "El término :term:`GIL` ahora se inicializa con :c:func:`Py_Initialize()`." -#: ../Doc/c-api/init.rst:962 +#: ../Doc/c-api/init.rst:1074 msgid "" "Release the global interpreter lock (if it has been created) and reset the " "thread state to ``NULL``, returning the previous thread state (which is not " @@ -1571,7 +1786,7 @@ msgstr "" "es ``NULL``). Si se ha creado el bloqueo, el hilo actual debe haberlo " "adquirido." -#: ../Doc/c-api/init.rst:970 +#: ../Doc/c-api/init.rst:1082 msgid "" "Acquire the global interpreter lock (if it has been created) and set the " "thread state to *tstate*, which must not be ``NULL``. If the lock has been " @@ -1583,12 +1798,13 @@ msgstr "" "bloqueo, el hilo actual no debe haberlo adquirido, de lo contrario se " "produce un *deadlock*." -#: ../Doc/c-api/init.rst:976 ../Doc/c-api/init.rst:1022 -#: ../Doc/c-api/init.rst:1304 ../Doc/c-api/init.rst:1342 +#: ../Doc/c-api/init.rst:1088 ../Doc/c-api/init.rst:1134 +#: ../Doc/c-api/init.rst:1416 +#, fuzzy msgid "" "Calling this function from a thread when the runtime is finalizing will " "terminate the thread, even if the thread was not created by Python. You can " -"use :c:func:`_Py_IsFinalizing` or :func:`sys.is_finalizing` to check if the " +"use :c:func:`!_Py_IsFinalizing` or :func:`sys.is_finalizing` to check if the " "interpreter is in process of being finalized before calling this function to " "avoid unwanted termination." msgstr "" @@ -1598,7 +1814,7 @@ msgstr "" "intérprete está en proceso de finalización antes de llamar a esta función " "para evitar una terminación no deseada." -#: ../Doc/c-api/init.rst:984 +#: ../Doc/c-api/init.rst:1096 msgid "" "Return the current thread state. The global interpreter lock must be held. " "When the current thread state is ``NULL``, this issues a fatal error (so " @@ -1608,7 +1824,7 @@ msgstr "" "intérprete. Cuando el estado actual del hilo es ``NULL``, esto genera un " "error fatal (por lo que la persona que llama no necesita verificar ``NULL``)." -#: ../Doc/c-api/init.rst:991 +#: ../Doc/c-api/init.rst:1103 msgid "" "Swap the current thread state with the thread state given by the argument " "*tstate*, which may be ``NULL``. The global interpreter lock must be held " @@ -1618,7 +1834,7 @@ msgstr "" "argumento *tstate*, que puede ser ``NULL``. El bloqueo global del intérprete " "debe mantenerse y no se libera." -#: ../Doc/c-api/init.rst:996 +#: ../Doc/c-api/init.rst:1108 msgid "" "The following functions use thread-local storage, and are not compatible " "with sub-interpreters:" @@ -1626,7 +1842,7 @@ msgstr "" "Las siguientes funciones utilizan almacenamiento local de hilos y no son " "compatibles con subinterpretes:" -#: ../Doc/c-api/init.rst:1001 +#: ../Doc/c-api/init.rst:1113 msgid "" "Ensure that the current thread is ready to call the Python C API regardless " "of the current state of Python, or of the global interpreter lock. This may " @@ -1649,7 +1865,7 @@ msgstr "" "macro:`Py_BEGIN_ALLOW_THREADS` y :c:macro:`Py_END_ALLOW_THREADS` es " "aceptable." -#: ../Doc/c-api/init.rst:1011 +#: ../Doc/c-api/init.rst:1123 msgid "" "The return value is an opaque \"handle\" to the thread state when :c:func:" "`PyGILState_Ensure` was called, and must be passed to :c:func:" @@ -1665,7 +1881,7 @@ msgstr "" "pueden compartirse; cada llamada única a :c:func:`PyGILState_Ensure` debe " "guardar el identificador para su llamada a :c:func:`PyGILState_Release`." -#: ../Doc/c-api/init.rst:1018 +#: ../Doc/c-api/init.rst:1130 msgid "" "When the function returns, the current thread will hold the GIL and be able " "to call arbitrary Python code. Failure is a fatal error." @@ -1673,7 +1889,7 @@ msgstr "" "Cuando la función regrese, el hilo actual contendrá el GIL y podrá llamar a " "código arbitrario de Python. El fracaso es un error fatal." -#: ../Doc/c-api/init.rst:1030 +#: ../Doc/c-api/init.rst:1142 msgid "" "Release any resources previously acquired. After this call, Python's state " "will be the same as it was prior to the corresponding :c:func:" @@ -1685,7 +1901,7 @@ msgstr "" "func:`PyGILState_Ensure` (pero en general este estado será desconocido para " "la persona que llama, de ahí el uso de la API ``GILState``)." -#: ../Doc/c-api/init.rst:1035 +#: ../Doc/c-api/init.rst:1147 msgid "" "Every call to :c:func:`PyGILState_Ensure` must be matched by a call to :c:" "func:`PyGILState_Release` on the same thread." @@ -1693,7 +1909,7 @@ msgstr "" "Cada llamada a :c:func:`PyGILState_Ensure` debe coincidir con una llamada a :" "c:func:`PyGILState_Release` en el mismo hilo." -#: ../Doc/c-api/init.rst:1041 +#: ../Doc/c-api/init.rst:1153 msgid "" "Get the current thread state for this thread. May return ``NULL`` if no " "GILState API has been used on the current thread. Note that the main thread " @@ -1707,7 +1923,7 @@ msgstr "" "en el subproceso principal. Esta es principalmente una función auxiliar y de " "diagnóstico." -#: ../Doc/c-api/init.rst:1049 +#: ../Doc/c-api/init.rst:1161 msgid "" "Return ``1`` if the current thread is holding the GIL and ``0`` otherwise. " "This function can be called from any thread at any time. Only if it has had " @@ -1726,7 +1942,7 @@ msgstr "" "bloqueado puede permitir que la persona que llama realice acciones " "confidenciales o se comporte de otra manera de manera diferente." -#: ../Doc/c-api/init.rst:1061 +#: ../Doc/c-api/init.rst:1173 msgid "" "The following macros are normally used without a trailing semicolon; look " "for example usage in the Python source distribution." @@ -1734,7 +1950,7 @@ msgstr "" "Las siguientes macros se usan normalmente sin punto y coma final; busque, " "por ejemplo, el uso en la distribución fuente de Python." -#: ../Doc/c-api/init.rst:1067 +#: ../Doc/c-api/init.rst:1179 msgid "" "This macro expands to ``{ PyThreadState *_save; _save = PyEval_SaveThread();" "``. Note that it contains an opening brace; it must be matched with a " @@ -1746,7 +1962,7 @@ msgstr "" "la siguiente macro :c:macro:`Py_END_ALLOW_THREADS`. Ver arriba para una " "discusión más detallada de esta macro." -#: ../Doc/c-api/init.rst:1075 +#: ../Doc/c-api/init.rst:1187 msgid "" "This macro expands to ``PyEval_RestoreThread(_save); }``. Note that it " "contains a closing brace; it must be matched with an earlier :c:macro:" @@ -1758,7 +1974,7 @@ msgstr "" "macro:`Py_BEGIN_ALLOW_THREADS`. Ver arriba para una discusión más detallada " "de esta macro." -#: ../Doc/c-api/init.rst:1083 +#: ../Doc/c-api/init.rst:1195 msgid "" "This macro expands to ``PyEval_RestoreThread(_save);``: it is equivalent to :" "c:macro:`Py_END_ALLOW_THREADS` without the closing brace." @@ -1766,7 +1982,7 @@ msgstr "" "Esta macro se expande a ``PyEval_RestoreThread(_save);``: es equivalente a :" "c:macro:`Py_END_ALLOW_THREADS` sin la llave de cierre." -#: ../Doc/c-api/init.rst:1089 +#: ../Doc/c-api/init.rst:1201 msgid "" "This macro expands to ``_save = PyEval_SaveThread();``: it is equivalent to :" "c:macro:`Py_BEGIN_ALLOW_THREADS` without the opening brace and variable " @@ -1776,22 +1992,22 @@ msgstr "" "c:macro:`Py_BEGIN_ALLOW_THREADS` sin la llave de apertura y la declaración " "de variable." -#: ../Doc/c-api/init.rst:1095 +#: ../Doc/c-api/init.rst:1207 msgid "Low-level API" msgstr "API de bajo nivel" -#: ../Doc/c-api/init.rst:1097 +#: ../Doc/c-api/init.rst:1209 msgid "" "All of the following functions must be called after :c:func:`Py_Initialize`." msgstr "" "Todas las siguientes funciones deben llamarse después de :c:func:" "`Py_Initialize`." -#: ../Doc/c-api/init.rst:1099 +#: ../Doc/c-api/init.rst:1211 msgid ":c:func:`Py_Initialize()` now initializes the :term:`GIL`." msgstr ":c:func:`Py_Initialize()` ahora inicializa el :term:`GIL`." -#: ../Doc/c-api/init.rst:1105 +#: ../Doc/c-api/init.rst:1217 msgid "" "Create a new interpreter state object. The global interpreter lock need not " "be held, but may be held if it is necessary to serialize calls to this " @@ -1801,7 +2017,7 @@ msgstr "" "bloqueo global del intérprete, pero se puede retener si es necesario para " "serializar llamadas a esta función." -#: ../Doc/c-api/init.rst:1109 +#: ../Doc/c-api/init.rst:1221 msgid "" "Raises an :ref:`auditing event ` ``cpython." "PyInterpreterState_New`` with no arguments." @@ -1809,7 +2025,7 @@ msgstr "" "Genera un :ref:`evento de auditoría ` ``python." "PyInterpreterState_New`` sin argumentos." -#: ../Doc/c-api/init.rst:1114 +#: ../Doc/c-api/init.rst:1226 msgid "" "Reset all information in an interpreter state object. The global " "interpreter lock must be held." @@ -1817,7 +2033,7 @@ msgstr "" "Restablece toda la información en un objeto de estado de intérprete. Se debe " "mantener el bloqueo global del intérprete." -#: ../Doc/c-api/init.rst:1117 +#: ../Doc/c-api/init.rst:1229 msgid "" "Raises an :ref:`auditing event ` ``cpython." "PyInterpreterState_Clear`` with no arguments." @@ -1825,7 +2041,7 @@ msgstr "" "Lanza una :ref:`eventos de auditoría ` ``python.PyInterpreterState " "Clear`` sin argumentos." -#: ../Doc/c-api/init.rst:1122 +#: ../Doc/c-api/init.rst:1234 msgid "" "Destroy an interpreter state object. The global interpreter lock need not " "be held. The interpreter state must have been reset with a previous call " @@ -1835,7 +2051,7 @@ msgstr "" "bloqueo global del intérprete. El estado del intérprete debe haberse " "restablecido con una llamada previa a :c:func:`PyInterpreterState_Clear`." -#: ../Doc/c-api/init.rst:1129 +#: ../Doc/c-api/init.rst:1241 msgid "" "Create a new thread state object belonging to the given interpreter object. " "The global interpreter lock need not be held, but may be held if it is " @@ -1845,7 +2061,7 @@ msgstr "" "dado. No es necesario retener el bloqueo global del intérprete, pero se " "puede retener si es necesario para serializar llamadas a esta función." -#: ../Doc/c-api/init.rst:1136 +#: ../Doc/c-api/init.rst:1248 msgid "" "Reset all information in a thread state object. The global interpreter lock " "must be held." @@ -1853,7 +2069,7 @@ msgstr "" "Restablece toda la información en un objeto de estado de hilo. Se debe " "mantener el bloqueo global del intérprete." -#: ../Doc/c-api/init.rst:1139 +#: ../Doc/c-api/init.rst:1251 msgid "" "This function now calls the :c:member:`PyThreadState.on_delete` callback. " "Previously, that happened in :c:func:`PyThreadState_Delete`." @@ -1861,7 +2077,7 @@ msgstr "" "Esta función ahora llama a la retrollamada :c:member:`PyThreadState." "on_delete`. Anteriormente, eso sucedía en :c:func:`PyThreadState_Delete`." -#: ../Doc/c-api/init.rst:1146 +#: ../Doc/c-api/init.rst:1258 msgid "" "Destroy a thread state object. The global interpreter lock need not be " "held. The thread state must have been reset with a previous call to :c:func:" @@ -1871,7 +2087,7 @@ msgstr "" "global del intérprete. El estado del hilo debe haberse restablecido con una " "llamada previa a :c:func:`PyThreadState_Clear`." -#: ../Doc/c-api/init.rst:1153 +#: ../Doc/c-api/init.rst:1265 msgid "" "Destroy the current thread state and release the global interpreter lock. " "Like :c:func:`PyThreadState_Delete`, the global interpreter lock need not be " @@ -1883,13 +2099,13 @@ msgstr "" "bloqueo del intérprete global. El estado del hilo debe haberse restablecido " "con una llamada anterior a :c:func:`PyThreadState_Clear`." -#: ../Doc/c-api/init.rst:1161 +#: ../Doc/c-api/init.rst:1273 msgid "Get the current frame of the Python thread state *tstate*." msgstr "Obtiene el marco actual del estado del hilo de Python *tstate*." # Como bien tradujeron con anterioridad, está más claro el decir referencia # sólida a referencia fuerte, el cual no calzaría en este contexto. -#: ../Doc/c-api/init.rst:1163 +#: ../Doc/c-api/init.rst:1275 msgid "" "Return a :term:`strong reference`. Return ``NULL`` if no frame is currently " "executing." @@ -1897,37 +2113,37 @@ msgstr "" "Retorna una :term:`strong reference` (referencia sólida). Retorna ``NULL`` " "si no se está ejecutando ningún cuadro." -#: ../Doc/c-api/init.rst:1166 +#: ../Doc/c-api/init.rst:1278 msgid "See also :c:func:`PyEval_GetFrame`." msgstr "Vea también :c:func:`PyEval_GetFrame`." -#: ../Doc/c-api/init.rst:1168 ../Doc/c-api/init.rst:1177 -#: ../Doc/c-api/init.rst:1186 +#: ../Doc/c-api/init.rst:1280 ../Doc/c-api/init.rst:1289 +#: ../Doc/c-api/init.rst:1298 msgid "*tstate* must not be ``NULL``." msgstr "*tstate* no debe ser ``NULL``." -#: ../Doc/c-api/init.rst:1175 +#: ../Doc/c-api/init.rst:1287 msgid "" "Get the unique thread state identifier of the Python thread state *tstate*." msgstr "" "Obtiene el identificador de estado de subproceso único del estado del hilo " "de Python *tstate*." -#: ../Doc/c-api/init.rst:1184 +#: ../Doc/c-api/init.rst:1296 msgid "Get the interpreter of the Python thread state *tstate*." msgstr "Obtiene el intérprete del estado del hilo de Python *tstate*." -#: ../Doc/c-api/init.rst:1193 +#: ../Doc/c-api/init.rst:1305 msgid "Suspend tracing and profiling in the Python thread state *tstate*." msgstr "" "Suspender el seguimiento y el perfilado en el estado del hilo de Python " "*tstate*." -#: ../Doc/c-api/init.rst:1195 +#: ../Doc/c-api/init.rst:1307 msgid "Resume them using the :c:func:`PyThreadState_LeaveTracing` function." msgstr "Reanudelos usando la función :c:func:`PyThreadState_LeaveTracing`." -#: ../Doc/c-api/init.rst:1202 +#: ../Doc/c-api/init.rst:1314 msgid "" "Resume tracing and profiling in the Python thread state *tstate* suspended " "by the :c:func:`PyThreadState_EnterTracing` function." @@ -1935,18 +2151,18 @@ msgstr "" "Reanudar el seguimiento y el perfilado en el estado del hilo de Python " "*tstate* suspendido por la función :c:func:`PyThreadState_EnterTracing`." -#: ../Doc/c-api/init.rst:1205 +#: ../Doc/c-api/init.rst:1317 msgid "" "See also :c:func:`PyEval_SetTrace` and :c:func:`PyEval_SetProfile` functions." msgstr "" "Consulte también las funciones :c:func:`PyEval_SetTrace` y :c:func:" "`PyEval_SetProfile`." -#: ../Doc/c-api/init.rst:1213 +#: ../Doc/c-api/init.rst:1325 msgid "Get the current interpreter." msgstr "Obtiene el intérprete actual." -#: ../Doc/c-api/init.rst:1215 +#: ../Doc/c-api/init.rst:1327 msgid "" "Issue a fatal error if there no current Python thread state or no current " "interpreter. It cannot return NULL." @@ -1954,11 +2170,11 @@ msgstr "" "Emite un error fatal si no hay un estado actual del hilo de Python o no hay " "un intérprete actual. No puede retornar NULL." -#: ../Doc/c-api/init.rst:1218 ../Doc/c-api/init.rst:1228 +#: ../Doc/c-api/init.rst:1330 ../Doc/c-api/init.rst:1340 msgid "The caller must hold the GIL." msgstr "La persona que llama debe retener el GIL." -#: ../Doc/c-api/init.rst:1225 +#: ../Doc/c-api/init.rst:1337 msgid "" "Return the interpreter's unique ID. If there was any error in doing so then " "``-1`` is returned and an error is set." @@ -1966,7 +2182,7 @@ msgstr "" "Retorna la identificación única del intérprete. Si hubo algún error al " "hacerlo, entonces se retorna ``-1`` y se establece un error." -#: ../Doc/c-api/init.rst:1235 +#: ../Doc/c-api/init.rst:1347 msgid "" "Return a dictionary in which interpreter-specific data may be stored. If " "this function returns ``NULL`` then no exception has been raised and the " @@ -1977,7 +2193,7 @@ msgstr "" "excepción y la persona que llama debe suponer que no hay disponible una " "instrucción específica del intérprete." -#: ../Doc/c-api/init.rst:1239 +#: ../Doc/c-api/init.rst:1351 msgid "" "This is not a replacement for :c:func:`PyModule_GetState()`, which " "extensions should use to store interpreter-specific state information." @@ -1985,11 +2201,11 @@ msgstr "" "Esto no reemplaza a :c:func:`PyModule_GetState()`, que las extensiones deben " "usar para almacenar información de estado específica del intérprete." -#: ../Doc/c-api/init.rst:1246 +#: ../Doc/c-api/init.rst:1358 msgid "Type of a frame evaluation function." msgstr "Tipo de función de evaluación de marcos." -#: ../Doc/c-api/init.rst:1248 +#: ../Doc/c-api/init.rst:1360 msgid "" "The *throwflag* parameter is used by the ``throw()`` method of generators: " "if non-zero, handle the current exception." @@ -1997,31 +2213,31 @@ msgstr "" "El parámetro *throwflag* es usado por el método de generadores ``throw()``: " "si no es cero, maneja la excepción actual." -#: ../Doc/c-api/init.rst:1251 +#: ../Doc/c-api/init.rst:1363 msgid "The function now takes a *tstate* parameter." msgstr "La función ahora recibe un parámetro *tstate*." -#: ../Doc/c-api/init.rst:1254 +#: ../Doc/c-api/init.rst:1366 msgid "" "The *frame* parameter changed from ``PyFrameObject*`` to " "``_PyInterpreterFrame*``." msgstr "" "El parámetro *frame* cambió de ``PyFrameObject*`` a ``_PyInterpreterFrame*``." -#: ../Doc/c-api/init.rst:1259 +#: ../Doc/c-api/init.rst:1371 msgid "Get the frame evaluation function." msgstr "Obtiene la función de evaluación de marcos." -#: ../Doc/c-api/init.rst:1261 ../Doc/c-api/init.rst:1269 +#: ../Doc/c-api/init.rst:1373 ../Doc/c-api/init.rst:1381 msgid "See the :pep:`523` \"Adding a frame evaluation API to CPython\"." msgstr "" "Consulte :pep:`523` \"Adición de una API de evaluación de marcos a CPython\"." -#: ../Doc/c-api/init.rst:1267 +#: ../Doc/c-api/init.rst:1379 msgid "Set the frame evaluation function." msgstr "Configura la función de evaluación del marco." -#: ../Doc/c-api/init.rst:1276 +#: ../Doc/c-api/init.rst:1388 msgid "" "Return a dictionary in which extensions can store thread-specific state " "information. Each extension should use a unique key to use to store state " @@ -2036,15 +2252,16 @@ msgstr "" "función retorna ``NULL``, no se ha producido ninguna excepción y la persona " "que llama debe asumir que no hay disponible ningún estado del hilo actual." -#: ../Doc/c-api/init.rst:1285 +#: ../Doc/c-api/init.rst:1397 +#, fuzzy msgid "" "Asynchronously raise an exception in a thread. The *id* argument is the " "thread id of the target thread; *exc* is the exception object to be raised. " "This function does not steal any references to *exc*. To prevent naive " "misuse, you must write your own C extension to call this. Must be called " "with the GIL held. Returns the number of thread states modified; this is " -"normally one, but will be zero if the thread id isn't found. If *exc* is :" -"const:`NULL`, the pending exception (if any) for the thread is cleared. This " +"normally one, but will be zero if the thread id isn't found. If *exc* is " +"``NULL``, the pending exception (if any) for the thread is cleared. This " "raises no exceptions." msgstr "" "Asincrónicamente lanza una excepción en un hilo. El argumento *id* es el id " @@ -2056,7 +2273,7 @@ msgstr "" "identificación del hilo. Si *exc* es :const:`NULL`, se borra la excepción " "pendiente (si existe) para el hilo. Esto no lanza excepciones." -#: ../Doc/c-api/init.rst:1293 +#: ../Doc/c-api/init.rst:1405 msgid "" "The type of the *id* parameter changed from :c:expr:`long` to :c:expr:" "`unsigned long`." @@ -2064,7 +2281,7 @@ msgstr "" "El tipo del parámetro *id* cambia de :c:expr:`long` a :c:expr:`unsigned " "long`." -#: ../Doc/c-api/init.rst:1299 +#: ../Doc/c-api/init.rst:1411 msgid "" "Acquire the global interpreter lock and set the current thread state to " "*tstate*, which must not be ``NULL``. The lock must have been created " @@ -2075,7 +2292,7 @@ msgstr "" "creado anteriormente. Si este hilo ya tiene el bloqueo, se produce un " "deadlock." -#: ../Doc/c-api/init.rst:1310 ../Doc/c-api/init.rst:1348 +#: ../Doc/c-api/init.rst:1422 ../Doc/c-api/init.rst:1460 msgid "" "Updated to be consistent with :c:func:`PyEval_RestoreThread`, :c:func:" "`Py_END_ALLOW_THREADS`, and :c:func:`PyGILState_Ensure`, and terminate the " @@ -2085,7 +2302,7 @@ msgstr "" "`Py_END_ALLOW_THREADS`, y :c:func:`PyGILState_Ensure`, y termina el hilo " "actual si se llama mientras el intérprete está finalizando." -#: ../Doc/c-api/init.rst:1315 +#: ../Doc/c-api/init.rst:1427 msgid "" ":c:func:`PyEval_RestoreThread` is a higher-level function which is always " "available (even when threads have not been initialized)." @@ -2093,7 +2310,7 @@ msgstr "" ":c:func:`PyEval_RestoreThread` es una función de nivel superior que siempre " "está disponible (incluso cuando los subprocesos no se han inicializado)." -#: ../Doc/c-api/init.rst:1321 +#: ../Doc/c-api/init.rst:1433 msgid "" "Reset the current thread state to ``NULL`` and release the global " "interpreter lock. The lock must have been created earlier and must be held " @@ -2107,7 +2324,7 @@ msgstr "" "usa para verificar que representa el estado actual del hilo --- si no lo es, " "se informa un error fatal." -#: ../Doc/c-api/init.rst:1327 +#: ../Doc/c-api/init.rst:1439 msgid "" ":c:func:`PyEval_SaveThread` is a higher-level function which is always " "available (even when threads have not been initialized)." @@ -2115,7 +2332,7 @@ msgstr "" ":c:func:`PyEval_SaveThread` es una función de nivel superior que siempre " "está disponible (incluso cuando los hilos no se han inicializado)." -#: ../Doc/c-api/init.rst:1333 +#: ../Doc/c-api/init.rst:1445 msgid "" "Acquire the global interpreter lock. The lock must have been created " "earlier. If this thread already has the lock, a deadlock ensues." @@ -2123,7 +2340,7 @@ msgstr "" "Adquiera el bloqueo global de intérprete. El bloqueo debe haber sido creado " "anteriormente. Si este hilo ya tiene el bloqueo, se produce un *deadlock*." -#: ../Doc/c-api/init.rst:1336 +#: ../Doc/c-api/init.rst:1448 msgid "" "This function does not update the current thread state. Please use :c:func:" "`PyEval_RestoreThread` or :c:func:`PyEval_AcquireThread` instead." @@ -2131,7 +2348,21 @@ msgstr "" "Esta función no actualiza el estado actual del hilo. Utilice :c:func:" "`PyEval_RestoreThread` o :c:func:`PyEval_AcquireThread` en su lugar." -#: ../Doc/c-api/init.rst:1356 +#: ../Doc/c-api/init.rst:1454 +msgid "" +"Calling this function from a thread when the runtime is finalizing will " +"terminate the thread, even if the thread was not created by Python. You can " +"use :c:func:`_Py_IsFinalizing` or :func:`sys.is_finalizing` to check if the " +"interpreter is in process of being finalized before calling this function to " +"avoid unwanted termination." +msgstr "" +"Llamar a esta función desde un hilo cuando finalice el tiempo de ejecución " +"terminará el hilo, incluso si Python no creó el hilo. Puede usar :c:func:" +"`_Py_IsFinalizing` o :func:`sys.is_finalizing` para verificar si el " +"intérprete está en proceso de finalización antes de llamar a esta función " +"para evitar una terminación no deseada." + +#: ../Doc/c-api/init.rst:1468 msgid "" "Release the global interpreter lock. The lock must have been created " "earlier." @@ -2139,7 +2370,7 @@ msgstr "" "Libere el bloqueo global del intérprete. El bloqueo debe haber sido creado " "anteriormente." -#: ../Doc/c-api/init.rst:1358 +#: ../Doc/c-api/init.rst:1470 msgid "" "This function does not update the current thread state. Please use :c:func:" "`PyEval_SaveThread` or :c:func:`PyEval_ReleaseThread` instead." @@ -2147,11 +2378,11 @@ msgstr "" "Esta función no actualiza el estado actual del hilo. Utilice :c:func:" "`PyEval_SaveThread` o :c:func:`PyEval_ReleaseThread` en su lugar." -#: ../Doc/c-api/init.rst:1367 +#: ../Doc/c-api/init.rst:1479 msgid "Sub-interpreter support" msgstr "Soporte de subinterprete" -#: ../Doc/c-api/init.rst:1369 +#: ../Doc/c-api/init.rst:1481 msgid "" "While in most uses, you will only embed a single Python interpreter, there " "are cases where you need to create several independent interpreters in the " @@ -2163,7 +2394,7 @@ msgstr "" "independientes en el mismo proceso y tal vez incluso en el mismo hilo. Los " "subinterpretes le permiten hacer eso." -#: ../Doc/c-api/init.rst:1374 +#: ../Doc/c-api/init.rst:1486 msgid "" "The \"main\" interpreter is the first one created when the runtime " "initializes. It is usually the only Python interpreter in a process. Unlike " @@ -2182,7 +2413,7 @@ msgstr "" "del tiempo de ejecución. La función :c:func:`PyInterpreterState_Main` " "retorna un puntero a su estado." -#: ../Doc/c-api/init.rst:1381 +#: ../Doc/c-api/init.rst:1493 msgid "" "You can switch between sub-interpreters using the :c:func:" "`PyThreadState_Swap` function. You can create and destroy them using the " @@ -2192,7 +2423,110 @@ msgstr "" "`PyThreadState_Swap`. Puede crearlos y destruirlos utilizando las siguientes " "funciones:" -#: ../Doc/c-api/init.rst:1395 +#: ../Doc/c-api/init.rst:1499 +msgid "" +"Structure containing most parameters to configure a sub-interpreter. Its " +"values are used only in :c:func:`Py_NewInterpreterFromConfig` and never " +"modified by the runtime." +msgstr "" + +#: ../Doc/c-api/init.rst:1505 +msgid "Structure fields:" +msgstr "" + +#: ../Doc/c-api/init.rst:1509 +msgid "" +"If this is ``0`` then the sub-interpreter will use its own \"object\" " +"allocator state. Otherwise it will use (share) the main interpreter's." +msgstr "" + +#: ../Doc/c-api/init.rst:1513 +msgid "" +"If this is ``0`` then :c:member:`~PyInterpreterConfig." +"check_multi_interp_extensions` must be ``1`` (non-zero). If this is ``1`` " +"then :c:member:`~PyInterpreterConfig.gil` must not be :c:macro:" +"`PyInterpreterConfig_OWN_GIL`." +msgstr "" + +#: ../Doc/c-api/init.rst:1521 +msgid "" +"If this is ``0`` then the runtime will not support forking the process in " +"any thread where the sub-interpreter is currently active. Otherwise fork is " +"unrestricted." +msgstr "" + +#: ../Doc/c-api/init.rst:1525 +msgid "" +"Note that the :mod:`subprocess` module still works when fork is disallowed." +msgstr "" + +#: ../Doc/c-api/init.rst:1530 +msgid "" +"If this is ``0`` then the runtime will not support replacing the current " +"process via exec (e.g. :func:`os.execv`) in any thread where the sub-" +"interpreter is currently active. Otherwise exec is unrestricted." +msgstr "" + +#: ../Doc/c-api/init.rst:1535 +msgid "" +"Note that the :mod:`subprocess` module still works when exec is disallowed." +msgstr "" + +#: ../Doc/c-api/init.rst:1540 +msgid "" +"If this is ``0`` then the sub-interpreter's :mod:`threading` module won't " +"create threads. Otherwise threads are allowed." +msgstr "" + +#: ../Doc/c-api/init.rst:1546 +msgid "" +"If this is ``0`` then the sub-interpreter's :mod:`threading` module won't " +"create daemon threads. Otherwise daemon threads are allowed (as long as :c:" +"member:`~PyInterpreterConfig.allow_threads` is non-zero)." +msgstr "" + +#: ../Doc/c-api/init.rst:1553 +msgid "" +"If this is ``0`` then all extension modules may be imported, including " +"legacy (single-phase init) modules, in any thread where the sub-interpreter " +"is currently active. Otherwise only multi-phase init extension modules (see :" +"pep:`489`) may be imported. (Also see :c:macro:" +"`Py_mod_multiple_interpreters`.)" +msgstr "" + +#: ../Doc/c-api/init.rst:1560 +msgid "" +"This must be ``1`` (non-zero) if :c:member:`~PyInterpreterConfig." +"use_main_obmalloc` is ``0``." +msgstr "" + +#: ../Doc/c-api/init.rst:1565 +msgid "" +"This determines the operation of the GIL for the sub-interpreter. It may be " +"one of the following:" +msgstr "" + +#: ../Doc/c-api/init.rst:1572 +msgid "Use the default selection (:c:macro:`PyInterpreterConfig_SHARED_GIL`)." +msgstr "" + +#: ../Doc/c-api/init.rst:1576 +#, fuzzy +msgid "Use (share) the main interpreter's GIL." +msgstr "Retorna el objeto de estado del intérprete principal." + +#: ../Doc/c-api/init.rst:1580 +#, fuzzy +msgid "Use the sub-interpreter's own GIL." +msgstr "Obtiene el intérprete actual." + +#: ../Doc/c-api/init.rst:1582 +msgid "" +"If this is :c:macro:`PyInterpreterConfig_OWN_GIL` then :c:member:" +"`PyInterpreterConfig.use_main_obmalloc` must be ``0``." +msgstr "" + +#: ../Doc/c-api/init.rst:1596 msgid "" "Create a new sub-interpreter. This is an (almost) totally separate " "environment for the execution of Python code. In particular, the new " @@ -2214,18 +2548,22 @@ msgstr "" "estándar ``sys.stdin``, ``sys.stdout`` y ``sys.stderr`` (sin embargo, estos " "se refieren a los mismos descriptores de archivo subyacentes)." -#: ../Doc/c-api/init.rst:1405 +#: ../Doc/c-api/init.rst:1606 +msgid "" +"The given *config* controls the options with which the interpreter is " +"initialized." +msgstr "" + +#: ../Doc/c-api/init.rst:1609 +#, fuzzy msgid "" -"The return value points to the first thread state created in the new sub-" -"interpreter. This thread state is made in the current thread state. Note " -"that no actual thread is created; see the discussion of thread states " -"below. If creation of the new interpreter is unsuccessful, ``NULL`` is " -"returned; no exception is set since the exception state is stored in the " -"current thread state and there may not be a current thread state. (Like all " -"other Python/C API functions, the global interpreter lock must be held " -"before calling this function and is still held when it returns; however, " -"unlike most other Python/C API functions, there needn't be a current thread " -"state on entry.)" +"Upon success, *tstate_p* will be set to the first thread state created in " +"the new sub-interpreter. This thread state is made in the current thread " +"state. Note that no actual thread is created; see the discussion of thread " +"states below. If creation of the new interpreter is unsuccessful, " +"*tstate_p* is set to ``NULL``; no exception is set since the exception state " +"is stored in the current thread state and there may not be a current thread " +"state." msgstr "" "El valor de retorno apunta al primer estado del hilo creado en el nuevo " "subinterprete. Este estado de hilo se realiza en el estado de hilo actual. " @@ -2239,13 +2577,39 @@ msgstr "" "embargo, a diferencia de la mayoría de las otras funciones de Python/C API, " "no es necesario que haya un estado del hilo actual en entrada.)" -#: ../Doc/c-api/init.rst:1420 +#: ../Doc/c-api/init.rst:1618 +msgid "" +"Like all other Python/C API functions, the global interpreter lock must be " +"held before calling this function and is still held when it returns. " +"Likewise a current thread state must be set on entry. On success, the " +"returned thread state will be set as current. If the sub-interpreter is " +"created with its own GIL then the GIL of the calling interpreter will be " +"released. When the function returns, the new interpreter's GIL will be held " +"by the current thread and the previously interpreter's GIL will remain " +"released here." +msgstr "" + +#: ../Doc/c-api/init.rst:1629 +msgid "" +"Sub-interpreters are most effective when isolated from each other, with " +"certain functionality restricted::" +msgstr "" + +#: ../Doc/c-api/init.rst:1643 +msgid "" +"Note that the config is used only briefly and does not get modified. During " +"initialization the config's values are converted into various :c:type:" +"`PyInterpreterState` values. A read-only copy of the config may be stored " +"internally on the :c:type:`PyInterpreterState`." +msgstr "" + +#: ../Doc/c-api/init.rst:1652 msgid "Extension modules are shared between (sub-)interpreters as follows:" msgstr "" "Los módulos de extensión se comparten entre (sub) intérpretes de la " "siguiente manera:" -#: ../Doc/c-api/init.rst:1422 +#: ../Doc/c-api/init.rst:1654 msgid "" "For modules using multi-phase initialization, e.g. :c:func:" "`PyModule_FromDefAndSpec`, a separate module object is created and " @@ -2257,7 +2621,7 @@ msgstr "" "para cada intérprete. Solo las variables estáticas y globales de nivel C se " "comparten entre estos objetos de módulo." -#: ../Doc/c-api/init.rst:1428 +#: ../Doc/c-api/init.rst:1660 msgid "" "For modules using single-phase initialization, e.g. :c:func:" "`PyModule_Create`, the first time a particular extension is imported, it is " @@ -2278,7 +2642,7 @@ msgstr "" "intérpretes, lo que puede causar un comportamiento no deseado (ver Errores y " "advertencias (`Bugs and caveats`_) a continuación)." -#: ../Doc/c-api/init.rst:1439 +#: ../Doc/c-api/init.rst:1671 msgid "" "Note that this is different from what happens when an extension is imported " "after the interpreter has been completely re-initialized by calling :c:func:" @@ -2294,16 +2658,24 @@ msgstr "" "que con la inicialización de múltiples fases, esto significa que solo se " "comparten variables estáticas y globales de nivel C entre estos módulos." -#: ../Doc/c-api/init.rst:1453 +#: ../Doc/c-api/init.rst:1691 +msgid "" +"Create a new sub-interpreter. This is essentially just a wrapper around :c:" +"func:`Py_NewInterpreterFromConfig` with a config that preserves the existing " +"behavior. The result is an unisolated sub-interpreter that shares the main " +"interpreter's GIL, allows fork/exec, allows daemon threads, and allows " +"single-phase init modules." +msgstr "" + +#: ../Doc/c-api/init.rst:1703 +#, fuzzy msgid "" "Destroy the (sub-)interpreter represented by the given thread state. The " "given thread state must be the current thread state. See the discussion of " "thread states below. When the call returns, the current thread state is " "``NULL``. All thread states associated with this interpreter are " -"destroyed. (The global interpreter lock must be held before calling this " -"function and is still held when it returns.) :c:func:`Py_FinalizeEx` will " -"destroy all sub-interpreters that haven't been explicitly destroyed at that " -"point." +"destroyed. The global interpreter lock used by the target interpreter must " +"be held before calling this function. No GIL is held when it returns." msgstr "" "Destruye el (sub) intérprete representado por el estado del hilo dado. El " "estado del hilo dado debe ser el estado del hilo actual. Vea la discusión de " @@ -2314,11 +2686,65 @@ msgstr "" "`Py_FinalizeEx` destruirá todos los subinterpretes que no se hayan destruido " "explícitamente en ese punto." -#: ../Doc/c-api/init.rst:1463 +#: ../Doc/c-api/init.rst:1711 +msgid "" +":c:func:`Py_FinalizeEx` will destroy all sub-interpreters that haven't been " +"explicitly destroyed at that point." +msgstr "" + +#: ../Doc/c-api/init.rst:1716 +msgid "A Per-Interpreter GIL" +msgstr "" + +#: ../Doc/c-api/init.rst:1718 +msgid "" +"Using :c:func:`Py_NewInterpreterFromConfig` you can create a sub-interpreter " +"that is completely isolated from other interpreters, including having its " +"own GIL. The most important benefit of this isolation is that such an " +"interpreter can execute Python code without being blocked by other " +"interpreters or blocking any others. Thus a single Python process can truly " +"take advantage of multiple CPU cores when running Python code. The " +"isolation also encourages a different approach to concurrency than that of " +"just using threads. (See :pep:`554`.)" +msgstr "" + +#: ../Doc/c-api/init.rst:1728 +msgid "" +"Using an isolated interpreter requires vigilance in preserving that " +"isolation. That especially means not sharing any objects or mutable state " +"without guarantees about thread-safety. Even objects that are otherwise " +"immutable (e.g. ``None``, ``(1, 5)``) can't normally be shared because of " +"the refcount. One simple but less-efficient approach around this is to use " +"a global lock around all use of some state (or object). Alternately, " +"effectively immutable objects (like integers or strings) can be made safe in " +"spite of their refcounts by making them \"immortal\". In fact, this has been " +"done for the builtin singletons, small integers, and a number of other " +"builtin objects." +msgstr "" + +#: ../Doc/c-api/init.rst:1739 +msgid "" +"If you preserve isolation then you will have access to proper multi-core " +"computing without the complications that come with free-threading. Failure " +"to preserve isolation will expose you to the full consequences of free-" +"threading, including races and hard-to-debug crashes." +msgstr "" + +#: ../Doc/c-api/init.rst:1744 +msgid "" +"Aside from that, one of the main challenges of using multiple isolated " +"interpreters is how to communicate between them safely (not break isolation) " +"and efficiently. The runtime and stdlib do not provide any standard " +"approach to this yet. A future stdlib module would help mitigate the effort " +"of preserving isolation and expose effective tools for communicating (and " +"sharing) data between interpreters." +msgstr "" + +#: ../Doc/c-api/init.rst:1755 msgid "Bugs and caveats" msgstr "Errores y advertencias" -#: ../Doc/c-api/init.rst:1465 +#: ../Doc/c-api/init.rst:1757 msgid "" "Because sub-interpreters (and the main interpreter) are part of the same " "process, the insulation between them isn't perfect --- for example, using " @@ -2341,7 +2767,7 @@ msgstr "" "subinterprete en un espacio de nombres de otro (sub) intérprete; Esto debe " "evitarse si es posible." -#: ../Doc/c-api/init.rst:1475 +#: ../Doc/c-api/init.rst:1767 msgid "" "Special care should be taken to avoid sharing user-defined functions, " "methods, instances or classes between sub-interpreters, since import " @@ -2356,7 +2782,7 @@ msgstr "" "Es igualmente importante evitar compartir objetos desde los que se pueda " "acceder a lo anterior." -#: ../Doc/c-api/init.rst:1481 +#: ../Doc/c-api/init.rst:1773 msgid "" "Also note that combining this functionality with ``PyGILState_*`` APIs is " "delicate, because these APIs assume a bijection between Python thread states " @@ -2377,11 +2803,11 @@ msgstr "" "permitir la llamada de código Python desde hilos no creados por Python " "probablemente se rompan cuando se usan subinterpretes." -#: ../Doc/c-api/init.rst:1492 +#: ../Doc/c-api/init.rst:1784 msgid "Asynchronous Notifications" msgstr "Notificaciones asincrónicas" -#: ../Doc/c-api/init.rst:1494 +#: ../Doc/c-api/init.rst:1786 msgid "" "A mechanism is provided to make asynchronous notifications to the main " "interpreter thread. These notifications take the form of a function pointer " @@ -2391,7 +2817,7 @@ msgstr "" "principal del intérprete. Estas notificaciones toman la forma de un puntero " "de función y un argumento de puntero nulo." -#: ../Doc/c-api/init.rst:1503 +#: ../Doc/c-api/init.rst:1795 msgid "" "Schedule a function to be called from the main interpreter thread. On " "success, ``0`` is returned and *func* is queued for being called in the main " @@ -2402,7 +2828,7 @@ msgstr "" "ser llamado en el hilo principal. En caso de fallo, se retorna ``-1`` sin " "establecer ninguna excepción." -#: ../Doc/c-api/init.rst:1507 +#: ../Doc/c-api/init.rst:1799 msgid "" "When successfully queued, *func* will be *eventually* called from the main " "interpreter thread with the argument *arg*. It will be called " @@ -2414,11 +2840,11 @@ msgstr "" "asincrónica con respecto al código Python que se ejecuta normalmente, pero " "con ambas condiciones cumplidas:" -#: ../Doc/c-api/init.rst:1512 +#: ../Doc/c-api/init.rst:1804 msgid "on a :term:`bytecode` boundary;" msgstr "en un límite :term:`bytecode`;" -#: ../Doc/c-api/init.rst:1513 +#: ../Doc/c-api/init.rst:1805 msgid "" "with the main thread holding the :term:`global interpreter lock` (*func* can " "therefore use the full C API)." @@ -2426,7 +2852,7 @@ msgstr "" "con el hilo principal que contiene el :term:`global interpreter lock` " "(*func*, por lo tanto, puede usar la API C completa)." -#: ../Doc/c-api/init.rst:1516 +#: ../Doc/c-api/init.rst:1808 msgid "" "*func* must return ``0`` on success, or ``-1`` on failure with an exception " "set. *func* won't be interrupted to perform another asynchronous " @@ -2438,7 +2864,7 @@ msgstr "" "notificación asíncrona de forma recursiva, pero aún se puede interrumpir " "para cambiar hilos si se libera el bloqueo global del intérprete." -#: ../Doc/c-api/init.rst:1521 +#: ../Doc/c-api/init.rst:1813 msgid "" "This function doesn't need a current thread state to run, and it doesn't " "need the global interpreter lock." @@ -2446,7 +2872,7 @@ msgstr "" "Esta función no necesita un estado de hilo actual para ejecutarse y no " "necesita el bloqueo global del intérprete." -#: ../Doc/c-api/init.rst:1524 +#: ../Doc/c-api/init.rst:1816 msgid "" "To call this function in a subinterpreter, the caller must hold the GIL. " "Otherwise, the function *func* can be scheduled to be called from the wrong " @@ -2456,7 +2882,7 @@ msgstr "" "GIL. De lo contrario, la función *func* se puede programar para que se llame " "desde el intérprete incorrecto." -#: ../Doc/c-api/init.rst:1529 +#: ../Doc/c-api/init.rst:1821 msgid "" "This is a low-level function, only useful for very special cases. There is " "no guarantee that *func* will be called as quick as possible. If the main " @@ -2472,7 +2898,7 @@ msgstr "" "**no** es adecuada para llamar a código Python desde hilos C arbitrarios. En " "su lugar, use :ref:`PyGILState API `." -#: ../Doc/c-api/init.rst:1536 +#: ../Doc/c-api/init.rst:1828 msgid "" "If this function is called in a subinterpreter, the function *func* is now " "scheduled to be called from the subinterpreter, rather than being called " @@ -2484,11 +2910,11 @@ msgstr "" "desde el intérprete principal. Cada subinterprete ahora tiene su propia " "lista de llamadas programadas." -#: ../Doc/c-api/init.rst:1547 +#: ../Doc/c-api/init.rst:1839 msgid "Profiling and Tracing" msgstr "Perfilado y Rastreo" -#: ../Doc/c-api/init.rst:1552 +#: ../Doc/c-api/init.rst:1844 msgid "" "The Python interpreter provides some low-level support for attaching " "profiling and execution tracing facilities. These are used for profiling, " @@ -2498,7 +2924,7 @@ msgstr "" "funciones de creación de perfiles y seguimiento de ejecución. Estos se " "utilizan para herramientas de análisis de perfiles, depuración y cobertura." -#: ../Doc/c-api/init.rst:1556 +#: ../Doc/c-api/init.rst:1848 msgid "" "This C interface allows the profiling or tracing code to avoid the overhead " "of calling through Python-level callable objects, making a direct C function " @@ -2515,15 +2941,17 @@ msgstr "" "función de rastreo son los mismos que se informaron a las funciones de " "rastreo a nivel de Python en versiones anteriores." -#: ../Doc/c-api/init.rst:1566 +#: ../Doc/c-api/init.rst:1858 +#, fuzzy msgid "" "The type of the trace function registered using :c:func:`PyEval_SetProfile` " "and :c:func:`PyEval_SetTrace`. The first parameter is the object passed to " "the registration function as *obj*, *frame* is the frame object to which the " -"event pertains, *what* is one of the constants :const:`PyTrace_CALL`, :const:" -"`PyTrace_EXCEPTION`, :const:`PyTrace_LINE`, :const:`PyTrace_RETURN`, :const:" -"`PyTrace_C_CALL`, :const:`PyTrace_C_EXCEPTION`, :const:`PyTrace_C_RETURN`, " -"or :const:`PyTrace_OPCODE`, and *arg* depends on the value of *what*:" +"event pertains, *what* is one of the constants :c:data:`PyTrace_CALL`, :c:" +"data:`PyTrace_EXCEPTION`, :c:data:`PyTrace_LINE`, :c:data:`PyTrace_RETURN`, :" +"c:data:`PyTrace_C_CALL`, :c:data:`PyTrace_C_EXCEPTION`, :c:data:" +"`PyTrace_C_RETURN`, or :c:data:`PyTrace_OPCODE`, and *arg* depends on the " +"value of *what*:" msgstr "" "El tipo de la función de rastreo registrada usando :c:func:" "`PyEval_SetProfile` y :c:func:`PyEval_SetTrace`. El primer parámetro es el " @@ -2534,67 +2962,75 @@ msgstr "" "const:`PyTrace_C_RETURN`, o :const:`PyTrace_OPCODE`, y *arg* depende de el " "valor de *what*:" -#: ../Doc/c-api/init.rst:1575 +#: ../Doc/c-api/init.rst:1867 msgid "Value of *what*" msgstr "Valor de *what*" -#: ../Doc/c-api/init.rst:1575 +#: ../Doc/c-api/init.rst:1867 msgid "Meaning of *arg*" msgstr "Significado de *arg*" -#: ../Doc/c-api/init.rst:1577 -msgid ":const:`PyTrace_CALL`" +#: ../Doc/c-api/init.rst:1869 +#, fuzzy +msgid ":c:data:`PyTrace_CALL`" msgstr ":const:`PyTrace_CALL`" -#: ../Doc/c-api/init.rst:1577 ../Doc/c-api/init.rst:1582 -#: ../Doc/c-api/init.rst:1593 +#: ../Doc/c-api/init.rst:1869 ../Doc/c-api/init.rst:1874 +#: ../Doc/c-api/init.rst:1885 msgid "Always :c:data:`Py_None`." msgstr "Siempre :c:data:`Py_None`." -#: ../Doc/c-api/init.rst:1579 -msgid ":const:`PyTrace_EXCEPTION`" +#: ../Doc/c-api/init.rst:1871 +#, fuzzy +msgid ":c:data:`PyTrace_EXCEPTION`" msgstr ":const:`PyTrace_EXCEPTION`" -#: ../Doc/c-api/init.rst:1579 +#: ../Doc/c-api/init.rst:1871 msgid "Exception information as returned by :func:`sys.exc_info`." msgstr "Información de excepción retornada por :func:`sys.exc_info`." -#: ../Doc/c-api/init.rst:1582 -msgid ":const:`PyTrace_LINE`" +#: ../Doc/c-api/init.rst:1874 +#, fuzzy +msgid ":c:data:`PyTrace_LINE`" msgstr ":const:`PyTrace_LINE`" -#: ../Doc/c-api/init.rst:1584 -msgid ":const:`PyTrace_RETURN`" +#: ../Doc/c-api/init.rst:1876 +#, fuzzy +msgid ":c:data:`PyTrace_RETURN`" msgstr ":const:`PyTrace_RETURN`" -#: ../Doc/c-api/init.rst:1584 +#: ../Doc/c-api/init.rst:1876 msgid "" "Value being returned to the caller, or ``NULL`` if caused by an exception." msgstr "" "Valor retornado al que llama, o ``NULL`` si es causado por una excepción." -#: ../Doc/c-api/init.rst:1587 -msgid ":const:`PyTrace_C_CALL`" +#: ../Doc/c-api/init.rst:1879 +#, fuzzy +msgid ":c:data:`PyTrace_C_CALL`" msgstr ":const:`PyTrace_C_CALL`" -#: ../Doc/c-api/init.rst:1587 ../Doc/c-api/init.rst:1589 -#: ../Doc/c-api/init.rst:1591 +#: ../Doc/c-api/init.rst:1879 ../Doc/c-api/init.rst:1881 +#: ../Doc/c-api/init.rst:1883 msgid "Function object being called." msgstr "Objeto función que se llaman." -#: ../Doc/c-api/init.rst:1589 -msgid ":const:`PyTrace_C_EXCEPTION`" +#: ../Doc/c-api/init.rst:1881 +#, fuzzy +msgid ":c:data:`PyTrace_C_EXCEPTION`" msgstr ":const:`PyTrace_C_EXCEPTION`" -#: ../Doc/c-api/init.rst:1591 -msgid ":const:`PyTrace_C_RETURN`" +#: ../Doc/c-api/init.rst:1883 +#, fuzzy +msgid ":c:data:`PyTrace_C_RETURN`" msgstr ":const:`PyTrace_C_RETURN`" -#: ../Doc/c-api/init.rst:1593 -msgid ":const:`PyTrace_OPCODE`" +#: ../Doc/c-api/init.rst:1885 +#, fuzzy +msgid ":c:data:`PyTrace_OPCODE`" msgstr ":const:`PyTrace_OPCODE`" -#: ../Doc/c-api/init.rst:1598 +#: ../Doc/c-api/init.rst:1890 msgid "" "The value of the *what* parameter to a :c:type:`Py_tracefunc` function when " "a new call to a function or method is being reported, or a new entry into a " @@ -2608,7 +3044,7 @@ msgstr "" "de generador no se informa ya que no hay transferencia de control al código " "de bytes de Python en la marco correspondiente." -#: ../Doc/c-api/init.rst:1607 +#: ../Doc/c-api/init.rst:1899 msgid "" "The value of the *what* parameter to a :c:type:`Py_tracefunc` function when " "an exception has been raised. The callback function is called with this " @@ -2629,7 +3065,7 @@ msgstr "" "las funciones de rastreo reciben estos eventos; el perfilador (*profiler*) " "no los necesita." -#: ../Doc/c-api/init.rst:1618 +#: ../Doc/c-api/init.rst:1910 msgid "" "The value passed as the *what* parameter to a :c:type:`Py_tracefunc` " "function (but not a profiling function) when a line-number event is being " @@ -2641,7 +3077,7 @@ msgstr "" "número de línea. Puede deshabilitarse para un marco configurando :attr:" "`f_trace_lines` en *0* en ese marco." -#: ../Doc/c-api/init.rst:1625 +#: ../Doc/c-api/init.rst:1917 msgid "" "The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " "a call is about to return." @@ -2649,7 +3085,7 @@ msgstr "" "El valor para el parámetro *what* para :c:type:`Py_tracefunc` funciona " "cuando una llamada está por regresar." -#: ../Doc/c-api/init.rst:1631 +#: ../Doc/c-api/init.rst:1923 msgid "" "The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " "a C function is about to be called." @@ -2657,7 +3093,7 @@ msgstr "" "El valor del parámetro *what* para :c:type:`Py_tracefunc` funciona cuando " "una función C está a punto de ser invocada." -#: ../Doc/c-api/init.rst:1637 +#: ../Doc/c-api/init.rst:1929 msgid "" "The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " "a C function has raised an exception." @@ -2665,7 +3101,7 @@ msgstr "" "El valor del parámetro *what* para funciones :c:type:`Py_tracefunc` cuando " "una función C ha lanzado una excepción." -#: ../Doc/c-api/init.rst:1643 +#: ../Doc/c-api/init.rst:1935 msgid "" "The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " "a C function has returned." @@ -2673,7 +3109,7 @@ msgstr "" "El valor del parámetro *what* para :c:type:`Py_tracefunc` funciona cuando " "una función C ha retornado." -#: ../Doc/c-api/init.rst:1649 +#: ../Doc/c-api/init.rst:1941 msgid "" "The value for the *what* parameter to :c:type:`Py_tracefunc` functions (but " "not profiling functions) when a new opcode is about to be executed. This " @@ -2686,14 +3122,15 @@ msgstr "" "solicitarse explícitamente estableciendo :attr:`f_trace_opcodes` en *1* en " "el marco." -#: ../Doc/c-api/init.rst:1657 +#: ../Doc/c-api/init.rst:1949 +#, fuzzy msgid "" "Set the profiler function to *func*. The *obj* parameter is passed to the " "function as its first parameter, and may be any Python object, or ``NULL``. " "If the profile function needs to maintain state, using a different value for " "*obj* for each thread provides a convenient and thread-safe place to store " -"it. The profile function is called for all monitored events except :const:" -"`PyTrace_LINE` :const:`PyTrace_OPCODE` and :const:`PyTrace_EXCEPTION`." +"it. The profile function is called for all monitored events except :c:data:" +"`PyTrace_LINE` :c:data:`PyTrace_OPCODE` and :c:data:`PyTrace_EXCEPTION`." msgstr "" "Establece la función del generador de perfiles en *func*. El parámetro *obj* " "se pasa a la función como su primer parámetro, y puede ser cualquier objeto " @@ -2703,23 +3140,38 @@ msgstr "" "perfilado para todos los eventos supervisados, excepto :const:" "`PyTrace_LINE` :const:`PyTrace_OPCODE` y :const:`PyTrace_EXCEPTION`." -#: ../Doc/c-api/init.rst:1664 +#: ../Doc/c-api/init.rst:1956 msgid "See also the :func:`sys.setprofile` function." msgstr "Consulte también la función :func:`sys.setprofile`." -#: ../Doc/c-api/init.rst:1666 ../Doc/c-api/init.rst:1680 +#: ../Doc/c-api/init.rst:1958 ../Doc/c-api/init.rst:1965 +#: ../Doc/c-api/init.rst:1984 ../Doc/c-api/init.rst:1991 msgid "The caller must hold the :term:`GIL`." msgstr "La persona que llama debe mantener el :term:`GIL`." -#: ../Doc/c-api/init.rst:1671 +#: ../Doc/c-api/init.rst:1962 +msgid "" +"Like :c:func:`PyEval_SetProfile` but sets the profile function in all " +"running threads belonging to the current interpreter instead of the setting " +"it only on the current thread." +msgstr "" + +#: ../Doc/c-api/init.rst:1967 +msgid "" +"As :c:func:`PyEval_SetProfile`, this function ignores any exceptions raised " +"while setting the profile functions in all threads." +msgstr "" + +#: ../Doc/c-api/init.rst:1975 +#, fuzzy msgid "" "Set the tracing function to *func*. This is similar to :c:func:" "`PyEval_SetProfile`, except the tracing function does receive line-number " "events and per-opcode events, but does not receive any event related to C " "function objects being called. Any trace function registered using :c:func:" -"`PyEval_SetTrace` will not receive :const:`PyTrace_C_CALL`, :const:" -"`PyTrace_C_EXCEPTION` or :const:`PyTrace_C_RETURN` as a value for the *what* " -"parameter." +"`PyEval_SetTrace` will not receive :c:data:`PyTrace_C_CALL`, :c:data:" +"`PyTrace_C_EXCEPTION` or :c:data:`PyTrace_C_RETURN` as a value for the " +"*what* parameter." msgstr "" "Establece la función de rastreo en *func*. Esto es similar a :c:func:" "`PyEval_SetProfile`, excepto que la función de rastreo recibe eventos de " @@ -2729,22 +3181,35 @@ msgstr "" "`PyTrace_C_CALL`, :const:`PyTrace_C_EXCEPTION` o :const:`PyTrace_C_RETURN` " "como valor para el parámetro *what*." -#: ../Doc/c-api/init.rst:1678 +#: ../Doc/c-api/init.rst:1982 msgid "See also the :func:`sys.settrace` function." msgstr "Consulte también la función :func:`sys.settrace`." -#: ../Doc/c-api/init.rst:1686 +#: ../Doc/c-api/init.rst:1988 +msgid "" +"Like :c:func:`PyEval_SetTrace` but sets the tracing function in all running " +"threads belonging to the current interpreter instead of the setting it only " +"on the current thread." +msgstr "" + +#: ../Doc/c-api/init.rst:1993 +msgid "" +"As :c:func:`PyEval_SetTrace`, this function ignores any exceptions raised " +"while setting the trace functions in all threads." +msgstr "" + +#: ../Doc/c-api/init.rst:2002 msgid "Advanced Debugger Support" msgstr "Soporte avanzado del depurador" -#: ../Doc/c-api/init.rst:1691 +#: ../Doc/c-api/init.rst:2007 msgid "" "These functions are only intended to be used by advanced debugging tools." msgstr "" "Estas funciones solo están destinadas a ser utilizadas por herramientas de " "depuración avanzadas." -#: ../Doc/c-api/init.rst:1696 +#: ../Doc/c-api/init.rst:2012 msgid "" "Return the interpreter state object at the head of the list of all such " "objects." @@ -2752,11 +3217,11 @@ msgstr "" "Retorna el objeto de estado del intérprete al principio de la lista de todos " "esos objetos." -#: ../Doc/c-api/init.rst:1701 +#: ../Doc/c-api/init.rst:2017 msgid "Return the main interpreter state object." msgstr "Retorna el objeto de estado del intérprete principal." -#: ../Doc/c-api/init.rst:1706 +#: ../Doc/c-api/init.rst:2022 msgid "" "Return the next interpreter state object after *interp* from the list of all " "such objects." @@ -2764,7 +3229,7 @@ msgstr "" "Retorna el siguiente objeto de estado de intérprete después de *interp* de " "la lista de todos esos objetos." -#: ../Doc/c-api/init.rst:1712 +#: ../Doc/c-api/init.rst:2028 msgid "" "Return the pointer to the first :c:type:`PyThreadState` object in the list " "of threads associated with the interpreter *interp*." @@ -2772,7 +3237,7 @@ msgstr "" "Retorna el puntero al primer objeto :c:type:`PyThreadState` en la lista de " "hilos asociados con el intérprete *interp*." -#: ../Doc/c-api/init.rst:1718 +#: ../Doc/c-api/init.rst:2034 msgid "" "Return the next thread state object after *tstate* from the list of all such " "objects belonging to the same :c:type:`PyInterpreterState` object." @@ -2781,11 +3246,11 @@ msgstr "" "lista de todos los objetos que pertenecen al mismo objeto :c:type:" "`PyInterpreterState`." -#: ../Doc/c-api/init.rst:1725 +#: ../Doc/c-api/init.rst:2041 msgid "Thread Local Storage Support" msgstr "Soporte de almacenamiento local de hilo" -#: ../Doc/c-api/init.rst:1729 +#: ../Doc/c-api/init.rst:2045 msgid "" "The Python interpreter provides low-level support for thread-local storage " "(TLS) which wraps the underlying native TLS implementation to support the " @@ -2801,7 +3266,7 @@ msgstr "" "similares a las ofrecidas por pthreads y Windows: use una clave de hilo y " "funciones para asociar un valor de :c:expr:`void*` por hilo." -#: ../Doc/c-api/init.rst:1736 +#: ../Doc/c-api/init.rst:2052 msgid "" "The GIL does *not* need to be held when calling these functions; they supply " "their own locking." @@ -2809,7 +3274,7 @@ msgstr "" "El GIL *no* necesita ser retenido al llamar a estas funciones; proporcionan " "su propio bloqueo." -#: ../Doc/c-api/init.rst:1739 +#: ../Doc/c-api/init.rst:2055 msgid "" "Note that :file:`Python.h` does not include the declaration of the TLS APIs, " "you need to include :file:`pythread.h` to use thread-local storage." @@ -2818,7 +3283,7 @@ msgstr "" "TLS, debe incluir :file:`pythread.h` para usar el almacenamiento local de " "hilos." -#: ../Doc/c-api/init.rst:1743 +#: ../Doc/c-api/init.rst:2059 msgid "" "None of these API functions handle memory management on behalf of the :c:" "expr:`void*` values. You need to allocate and deallocate them yourself. If " @@ -2830,12 +3295,12 @@ msgstr "" "Si los valores :c:expr:`void*` son :c:expr:`PyObject*`, estas funciones " "tampoco realizan operaciones de conteo de referencias en ellos." -#: ../Doc/c-api/init.rst:1751 +#: ../Doc/c-api/init.rst:2067 msgid "Thread Specific Storage (TSS) API" msgstr "" "API de almacenamiento específico de hilo (TSS, *Thread Specific Storage*)" -#: ../Doc/c-api/init.rst:1753 +#: ../Doc/c-api/init.rst:2069 msgid "" "TSS API is introduced to supersede the use of the existing TLS API within " "the CPython interpreter. This API uses a new type :c:type:`Py_tss_t` " @@ -2845,12 +3310,12 @@ msgstr "" "dentro del intérprete de CPython. Esta API utiliza un nuevo tipo :c:type:" "`Py_tss_t` en lugar de :c:expr:`int` para representar las claves del hilo." -#: ../Doc/c-api/init.rst:1759 +#: ../Doc/c-api/init.rst:2075 msgid "\"A New C-API for Thread-Local Storage in CPython\" (:pep:`539`)" msgstr "" "\"Una nueva C-API para *Thread-Local Storage* en CPython\" (:pep:`539`)" -#: ../Doc/c-api/init.rst:1764 +#: ../Doc/c-api/init.rst:2080 msgid "" "This data structure represents the state of a thread key, the definition of " "which may depend on the underlying TLS implementation, and it has an " @@ -2862,7 +3327,7 @@ msgstr "" "campo interno que representa el estado de inicialización de la clave. No hay " "miembros públicos en esta estructura." -#: ../Doc/c-api/init.rst:1769 +#: ../Doc/c-api/init.rst:2085 msgid "" "When :ref:`Py_LIMITED_API ` is not defined, static allocation of " "this type by :c:macro:`Py_tss_NEEDS_INIT` is allowed." @@ -2870,7 +3335,7 @@ msgstr "" "Cuando :ref:`Py_LIMITED_API ` no está definido, la asignación " "estática de este tipo por :c:macro:`Py_tss_NEEDS_INIT` está permitida." -#: ../Doc/c-api/init.rst:1775 +#: ../Doc/c-api/init.rst:2091 msgid "" "This macro expands to the initializer for :c:type:`Py_tss_t` variables. Note " "that this macro won't be defined with :ref:`Py_LIMITED_API `." @@ -2879,11 +3344,11 @@ msgstr "" "Tenga en cuenta que esta macro no se definirá con :ref:`Py_LIMITED_API " "`." -#: ../Doc/c-api/init.rst:1780 +#: ../Doc/c-api/init.rst:2096 msgid "Dynamic Allocation" msgstr "Asignación dinámica" -#: ../Doc/c-api/init.rst:1782 +#: ../Doc/c-api/init.rst:2098 msgid "" "Dynamic allocation of the :c:type:`Py_tss_t`, required in extension modules " "built with :ref:`Py_LIMITED_API `, where static allocation of this " @@ -2894,7 +3359,7 @@ msgstr "" "asignación estática de este tipo no es posible debido a que su " "implementación es opaca en el momento de la compilación." -#: ../Doc/c-api/init.rst:1789 +#: ../Doc/c-api/init.rst:2105 msgid "" "Return a value which is the same state as a value initialized with :c:macro:" "`Py_tss_NEEDS_INIT`, or ``NULL`` in the case of dynamic allocation failure." @@ -2903,7 +3368,7 @@ msgstr "" "macro:`Py_tss_NEEDS_INIT`, o ``NULL`` en caso de falla de asignación " "dinámica." -#: ../Doc/c-api/init.rst:1796 +#: ../Doc/c-api/init.rst:2112 msgid "" "Free the given *key* allocated by :c:func:`PyThread_tss_alloc`, after first " "calling :c:func:`PyThread_tss_delete` to ensure any associated thread locals " @@ -2914,18 +3379,18 @@ msgstr "" "los hilos locales asociados no hayan sido asignados. Esto es un no-op si el " "argumento *clave* es ``NULL``." -#: ../Doc/c-api/init.rst:1802 +#: ../Doc/c-api/init.rst:2118 msgid "" "A freed key becomes a dangling pointer. You should reset the key to ``NULL``." msgstr "" "Una clave liberada se convierte en un puntero colgante. Debería restablecer " "la clave a ``NULL``." -#: ../Doc/c-api/init.rst:1807 +#: ../Doc/c-api/init.rst:2123 msgid "Methods" msgstr "Métodos" -#: ../Doc/c-api/init.rst:1809 +#: ../Doc/c-api/init.rst:2125 msgid "" "The parameter *key* of these functions must not be ``NULL``. Moreover, the " "behaviors of :c:func:`PyThread_tss_set` and :c:func:`PyThread_tss_get` are " @@ -2937,7 +3402,7 @@ msgstr "" "no están definidos si el :c:type:`Py_tss_t` dado no ha sido inicializado " "por :c:func:`PyThread_tss_create`." -#: ../Doc/c-api/init.rst:1817 +#: ../Doc/c-api/init.rst:2133 msgid "" "Return a non-zero value if the given :c:type:`Py_tss_t` has been initialized " "by :c:func:`PyThread_tss_create`." @@ -2945,7 +3410,7 @@ msgstr "" "Retorna un valor distinto de cero si :c:type:`Py_tss_t` ha sido inicializado " "por :c:func:`PyThread_tss_create`." -#: ../Doc/c-api/init.rst:1823 +#: ../Doc/c-api/init.rst:2139 msgid "" "Return a zero value on successful initialization of a TSS key. The behavior " "is undefined if the value pointed to by the *key* argument is not " @@ -2959,7 +3424,7 @@ msgstr "" "invocar repetidamente en la misma tecla: llamarla a una tecla ya " "inicializada es un *no-op* e inmediatamente retorna el éxito." -#: ../Doc/c-api/init.rst:1832 +#: ../Doc/c-api/init.rst:2148 msgid "" "Destroy a TSS key to forget the values associated with the key across all " "threads, and change the key's initialization state to uninitialized. A " @@ -2973,7 +3438,7 @@ msgstr "" "c:func:`PyThread_tss_create`. Esta función se puede invocar repetidamente en " "la misma llave; llamarla en una llave ya destruida es un *no-op*." -#: ../Doc/c-api/init.rst:1841 +#: ../Doc/c-api/init.rst:2157 msgid "" "Return a zero value to indicate successfully associating a :c:expr:`void*` " "value with a TSS key in the current thread. Each thread has a distinct " @@ -2983,7 +3448,7 @@ msgstr "" "expr:`void*` con una clave TSS en el hilo actual. Cada hilo tiene un mapeo " "distinto de la clave a un valor :c:expr:`void*`." -#: ../Doc/c-api/init.rst:1848 +#: ../Doc/c-api/init.rst:2164 msgid "" "Return the :c:expr:`void*` value associated with a TSS key in the current " "thread. This returns ``NULL`` if no value is associated with the key in the " @@ -2993,11 +3458,11 @@ msgstr "" "actual. Esto retorna ``NULL`` si no hay ningún valor asociado con la clave " "en el hilo actual." -#: ../Doc/c-api/init.rst:1856 +#: ../Doc/c-api/init.rst:2172 msgid "Thread Local Storage (TLS) API" msgstr "API de almacenamiento local de hilos (TLS, *Thread Local Storage*)" -#: ../Doc/c-api/init.rst:1858 +#: ../Doc/c-api/init.rst:2174 msgid "" "This API is superseded by :ref:`Thread Specific Storage (TSS) API `." @@ -3006,7 +3471,7 @@ msgstr "" "(TSS, por sus significado en inglés *Thread Specific Storage*) `." -#: ../Doc/c-api/init.rst:1863 +#: ../Doc/c-api/init.rst:2179 msgid "" "This version of the API does not support platforms where the native TLS key " "is defined in a way that cannot be safely cast to ``int``. On such " @@ -3020,10 +3485,200 @@ msgstr "" "inmediatamente con un estado de falla, y las otras funciones TLS serán no " "operativas en tales plataformas." -#: ../Doc/c-api/init.rst:1868 +#: ../Doc/c-api/init.rst:2184 msgid "" "Due to the compatibility problem noted above, this version of the API should " "not be used in new code." msgstr "" "Debido al problema de compatibilidad mencionado anteriormente, esta versión " "de la API no debe usarse en código nuevo." + +#: ../Doc/c-api/init.rst:334 ../Doc/c-api/init.rst:495 +#: ../Doc/c-api/init.rst:570 +#, fuzzy +msgid "Py_SetProgramName()" +msgstr ":c:func:`Py_SetProgramName`" + +#: ../Doc/c-api/init.rst:334 +msgid "PyEval_InitThreads()" +msgstr "" + +#: ../Doc/c-api/init.rst:334 +msgid "modules (in module sys)" +msgstr "" + +#: ../Doc/c-api/init.rst:334 ../Doc/c-api/init.rst:589 +#: ../Doc/c-api/init.rst:615 +msgid "path (in module sys)" +msgstr "" + +#: ../Doc/c-api/init.rst:334 ../Doc/c-api/init.rst:589 +#: ../Doc/c-api/init.rst:615 ../Doc/c-api/init.rst:1057 +#: ../Doc/c-api/init.rst:1588 ../Doc/c-api/init.rst:1683 +msgid "module" +msgstr "" + +#: ../Doc/c-api/init.rst:334 ../Doc/c-api/init.rst:1588 +#: ../Doc/c-api/init.rst:1683 +msgid "builtins" +msgstr "" + +#: ../Doc/c-api/init.rst:334 ../Doc/c-api/init.rst:1588 +#: ../Doc/c-api/init.rst:1683 +msgid "__main__" +msgstr "" + +#: ../Doc/c-api/init.rst:334 ../Doc/c-api/init.rst:1588 +#: ../Doc/c-api/init.rst:1683 +msgid "sys" +msgstr "" + +#: ../Doc/c-api/init.rst:334 ../Doc/c-api/init.rst:589 +#: ../Doc/c-api/init.rst:615 +msgid "search" +msgstr "" + +#: ../Doc/c-api/init.rst:334 ../Doc/c-api/init.rst:589 +#: ../Doc/c-api/init.rst:615 +msgid "path" +msgstr "" + +#: ../Doc/c-api/init.rst:334 +msgid "PySys_SetArgv()" +msgstr "" + +#: ../Doc/c-api/init.rst:334 +msgid "PySys_SetArgvEx()" +msgstr "" + +#: ../Doc/c-api/init.rst:334 ../Doc/c-api/init.rst:1648 +#: ../Doc/c-api/init.rst:1701 +msgid "Py_FinalizeEx()" +msgstr "" + +#: ../Doc/c-api/init.rst:430 ../Doc/c-api/init.rst:467 +#: ../Doc/c-api/init.rst:1648 +#, fuzzy +msgid "Py_Initialize()" +msgstr ":c:func:`Py_IsInitialized`" + +#: ../Doc/c-api/init.rst:430 ../Doc/c-api/init.rst:467 +#: ../Doc/c-api/init.rst:723 +msgid "main()" +msgstr "" + +#: ../Doc/c-api/init.rst:430 +msgid "stdin" +msgstr "" + +#: ../Doc/c-api/init.rst:430 +msgid "stdout" +msgstr "" + +#: ../Doc/c-api/init.rst:430 +msgid "sdterr" +msgstr "" + +#: ../Doc/c-api/init.rst:467 ../Doc/c-api/init.rst:615 +msgid "Py_GetPath()" +msgstr "" + +#: ../Doc/c-api/init.rst:570 +msgid "executable (in module sys)" +msgstr "" + +#: ../Doc/c-api/init.rst:589 +#, fuzzy +msgid "Py_SetPath()" +msgstr ":c:func:`Py_SetPath`" + +#: ../Doc/c-api/init.rst:658 ../Doc/c-api/init.rst:700 +#: ../Doc/c-api/init.rst:714 +msgid "version (in module sys)" +msgstr "" + +#: ../Doc/c-api/init.rst:670 +msgid "platform (in module sys)" +msgstr "" + +#: ../Doc/c-api/init.rst:687 +msgid "copyright (in module sys)" +msgstr "" + +#: ../Doc/c-api/init.rst:723 +msgid "Py_FatalError()" +msgstr "" + +#: ../Doc/c-api/init.rst:723 +msgid "argv (in module sys)" +msgstr "" + +#: ../Doc/c-api/init.rst:839 +#, fuzzy +msgid "global interpreter lock" +msgstr "Estado del hilo y el bloqueo global del intérprete" + +#: ../Doc/c-api/init.rst:839 +#, fuzzy +msgid "interpreter lock" +msgstr "Soporte de subinterprete" + +#: ../Doc/c-api/init.rst:839 +msgid "lock, interpreter" +msgstr "" + +#: ../Doc/c-api/init.rst:852 +msgid "setswitchinterval() (in module sys)" +msgstr "" + +#: ../Doc/c-api/init.rst:861 +msgid "PyThreadState" +msgstr "" + +#: ../Doc/c-api/init.rst:888 +msgid "Py_BEGIN_ALLOW_THREADS" +msgstr "" + +#: ../Doc/c-api/init.rst:888 +msgid "Py_END_ALLOW_THREADS" +msgstr "" + +#: ../Doc/c-api/init.rst:904 ../Doc/c-api/init.rst:1035 +msgid "PyEval_RestoreThread()" +msgstr "" + +#: ../Doc/c-api/init.rst:904 ../Doc/c-api/init.rst:1035 +msgid "PyEval_SaveThread()" +msgstr "" + +#: ../Doc/c-api/init.rst:1035 +msgid "PyEval_AcquireThread()" +msgstr "" + +#: ../Doc/c-api/init.rst:1035 +msgid "PyEval_ReleaseThread()" +msgstr "" + +#: ../Doc/c-api/init.rst:1057 +msgid "_thread" +msgstr "" + +#: ../Doc/c-api/init.rst:1588 ../Doc/c-api/init.rst:1683 +msgid "stdout (in module sys)" +msgstr "" + +#: ../Doc/c-api/init.rst:1588 ../Doc/c-api/init.rst:1683 +msgid "stderr (in module sys)" +msgstr "" + +#: ../Doc/c-api/init.rst:1588 ../Doc/c-api/init.rst:1683 +msgid "stdin (in module sys)" +msgstr "" + +#: ../Doc/c-api/init.rst:1678 +msgid "close() (in module os)" +msgstr "" + +#: ../Doc/c-api/init.rst:1793 +msgid "Py_AddPendingCall()" +msgstr "" diff --git a/c-api/init_config.po b/c-api/init_config.po index 19947e230a..6439dede34 100644 --- a/c-api/init_config.po +++ b/c-api/init_config.po @@ -8,17 +8,16 @@ msgid "" msgstr "" "Project-Id-Version: Python en Español 3.7\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-31 20:56-0300\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: \n" "Language: es\n" +"Language-Team: \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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/init_config.rst:7 msgid "Python Initialization Configuration" @@ -108,104 +107,104 @@ msgstr "" "Si *length* no es cero, *items* no deben ser ``NULL`` y todas las cadenas de " "caracteres deben ser no ``NULL``." -#: ../Doc/c-api/init_config.rst:85 +#: ../Doc/c-api/init_config.rst:87 msgid "Methods:" msgstr "Métodos:" -#: ../Doc/c-api/init_config.rst:89 +#: ../Doc/c-api/init_config.rst:91 msgid "Append *item* to *list*." msgstr "Agregar *item* a *list*." -#: ../Doc/c-api/init_config.rst:91 ../Doc/c-api/init_config.rst:102 +#: ../Doc/c-api/init_config.rst:93 ../Doc/c-api/init_config.rst:104 msgid "Python must be preinitialized to call this function." msgstr "Python debe estar preinicializado para llamar a esta función." -#: ../Doc/c-api/init_config.rst:95 +#: ../Doc/c-api/init_config.rst:97 msgid "Insert *item* into *list* at *index*." msgstr "Inserta *item* en *list* en *index*." -#: ../Doc/c-api/init_config.rst:97 +#: ../Doc/c-api/init_config.rst:99 msgid "" "If *index* is greater than or equal to *list* length, append *item* to " "*list*." msgstr "" "Si *index* es mayor o igual que el largo de *list*, agrega *item* a *list*." -#: ../Doc/c-api/init_config.rst:100 +#: ../Doc/c-api/init_config.rst:102 #, fuzzy msgid "*index* must be greater than or equal to ``0``." msgstr "*index* debe ser mayor o igual que 0." -#: ../Doc/c-api/init_config.rst:104 ../Doc/c-api/init_config.rst:124 -#: ../Doc/c-api/init_config.rst:225 ../Doc/c-api/init_config.rst:530 +#: ../Doc/c-api/init_config.rst:108 ../Doc/c-api/init_config.rst:128 +#: ../Doc/c-api/init_config.rst:235 ../Doc/c-api/init_config.rst:544 msgid "Structure fields:" msgstr "Campos de estructura:" -#: ../Doc/c-api/init_config.rst:108 +#: ../Doc/c-api/init_config.rst:112 msgid "List length." msgstr "Longitud de la lista." -#: ../Doc/c-api/init_config.rst:112 +#: ../Doc/c-api/init_config.rst:116 msgid "List items." msgstr "Elementos de la lista." -#: ../Doc/c-api/init_config.rst:115 +#: ../Doc/c-api/init_config.rst:119 msgid "PyStatus" msgstr "PyStatus" -#: ../Doc/c-api/init_config.rst:119 +#: ../Doc/c-api/init_config.rst:123 msgid "" "Structure to store an initialization function status: success, error or exit." msgstr "" "Estructura para almacenar el estado de una función de inicialización: éxito, " "error o salida." -#: ../Doc/c-api/init_config.rst:122 +#: ../Doc/c-api/init_config.rst:126 msgid "For an error, it can store the C function name which created the error." msgstr "" "Para un error, puede almacenar el nombre de la función C que creó el error." -#: ../Doc/c-api/init_config.rst:128 +#: ../Doc/c-api/init_config.rst:132 msgid "Exit code. Argument passed to ``exit()``." msgstr "Código de salida El argumento pasó a ``exit()``." -#: ../Doc/c-api/init_config.rst:132 +#: ../Doc/c-api/init_config.rst:136 msgid "Error message." msgstr "Mensaje de error." -#: ../Doc/c-api/init_config.rst:136 +#: ../Doc/c-api/init_config.rst:140 msgid "Name of the function which created an error, can be ``NULL``." msgstr "El nombre de la función que creó un error puede ser ``NULL``." -#: ../Doc/c-api/init_config.rst:138 +#: ../Doc/c-api/init_config.rst:144 msgid "Functions to create a status:" msgstr "Funciones para crear un estado:" -#: ../Doc/c-api/init_config.rst:142 +#: ../Doc/c-api/init_config.rst:148 msgid "Success." msgstr "Éxito." -#: ../Doc/c-api/init_config.rst:146 +#: ../Doc/c-api/init_config.rst:152 msgid "Initialization error with a message." msgstr "Error de inicialización con un mensaje." -#: ../Doc/c-api/init_config.rst:148 +#: ../Doc/c-api/init_config.rst:154 msgid "*err_msg* must not be ``NULL``." msgstr "*err_msg* no debe ser ``NULL``." -#: ../Doc/c-api/init_config.rst:152 +#: ../Doc/c-api/init_config.rst:158 msgid "Memory allocation failure (out of memory)." msgstr "Error de asignación de memoria (sin memoria)." -#: ../Doc/c-api/init_config.rst:156 +#: ../Doc/c-api/init_config.rst:162 msgid "Exit Python with the specified exit code." msgstr "Sale de Python con el código de salida especificado." -#: ../Doc/c-api/init_config.rst:158 +#: ../Doc/c-api/init_config.rst:164 msgid "Functions to handle a status:" msgstr "Funciones para manejar un estado:" -#: ../Doc/c-api/init_config.rst:162 +#: ../Doc/c-api/init_config.rst:168 msgid "" "Is the status an error or an exit? If true, the exception must be handled; " "by calling :c:func:`Py_ExitStatusException` for example." @@ -213,15 +212,15 @@ msgstr "" "¿Es el estado un error o una salida? Si es verdadero, la excepción debe ser " "manejada; por ejemplo llamando a :c:func:`Py_ExitStatusException`." -#: ../Doc/c-api/init_config.rst:167 +#: ../Doc/c-api/init_config.rst:173 msgid "Is the result an error?" msgstr "¿Es el resultado un error?" -#: ../Doc/c-api/init_config.rst:171 +#: ../Doc/c-api/init_config.rst:177 msgid "Is the result an exit?" msgstr "¿El resultado es una salida?" -#: ../Doc/c-api/init_config.rst:175 +#: ../Doc/c-api/init_config.rst:181 msgid "" "Call ``exit(exitcode)`` if *status* is an exit. Print the error message and " "exit with a non-zero exit code if *status* is an error. Must only be called " @@ -231,7 +230,7 @@ msgstr "" "error y sale con un código de salida distinto de cero si *status* es un " "error. Solo se debe llamar si ``PyStatus_Exception(status)`` no es cero." -#: ../Doc/c-api/init_config.rst:180 +#: ../Doc/c-api/init_config.rst:186 msgid "" "Internally, Python uses macros which set ``PyStatus.func``, whereas " "functions to create a status set ``func`` to ``NULL``." @@ -239,23 +238,23 @@ msgstr "" "Internamente, Python usa macros que establecen ``PyStatus.func``, mientras " "que las funciones para crear un estado establecen ``func`` en ``NULL``." -#: ../Doc/c-api/init_config.rst:183 +#: ../Doc/c-api/init_config.rst:189 msgid "Example::" msgstr "Ejemplo::" -#: ../Doc/c-api/init_config.rst:207 +#: ../Doc/c-api/init_config.rst:213 msgid "PyPreConfig" msgstr "PyPreConfig" -#: ../Doc/c-api/init_config.rst:211 +#: ../Doc/c-api/init_config.rst:217 msgid "Structure used to preinitialize Python." msgstr "Estructura utilizada para preinicializar Python." -#: ../Doc/c-api/init_config.rst:213 +#: ../Doc/c-api/init_config.rst:221 msgid "Function to initialize a preconfiguration:" msgstr "Función para inicializar una preconfiguración:" -#: ../Doc/c-api/init_config.rst:217 +#: ../Doc/c-api/init_config.rst:225 msgid "" "Initialize the preconfiguration with :ref:`Python Configuration `." @@ -263,7 +262,7 @@ msgstr "" "Inicializa la preconfiguración con :ref:`Configuración de Python `." -#: ../Doc/c-api/init_config.rst:222 +#: ../Doc/c-api/init_config.rst:230 msgid "" "Initialize the preconfiguration with :ref:`Isolated Configuration `." @@ -271,11 +270,11 @@ msgstr "" "Inicializa la preconfiguración con :ref:`Configuración aislada `." -#: ../Doc/c-api/init_config.rst:229 +#: ../Doc/c-api/init_config.rst:239 msgid "Name of the Python memory allocators:" msgstr "Nombre de los asignadores de memoria de Python:" -#: ../Doc/c-api/init_config.rst:231 +#: ../Doc/c-api/init_config.rst:241 msgid "" "``PYMEM_ALLOCATOR_NOT_SET`` (``0``): don't change memory allocators (use " "defaults)." @@ -283,7 +282,7 @@ msgstr "" "``PYMEM_ALLOCATOR_NOT_SET`` (``0``): no cambia asignadores de memoria (usa " "los valores predeterminados)" -#: ../Doc/c-api/init_config.rst:233 +#: ../Doc/c-api/init_config.rst:243 msgid "" "``PYMEM_ALLOCATOR_DEFAULT`` (``1``): :ref:`default memory allocators " "`." @@ -291,7 +290,7 @@ msgstr "" "``PYMEM_ALLOCATOR_DEFAULT`` (``1``): :ref:`asignadores de memoria " "predeterminados `." -#: ../Doc/c-api/init_config.rst:235 +#: ../Doc/c-api/init_config.rst:245 msgid "" "``PYMEM_ALLOCATOR_DEBUG`` (``2``): :ref:`default memory allocators ` with :ref:`debug hooks `." @@ -300,12 +299,12 @@ msgstr "" "predeterminados ` con :ref:`ganchos de depuración " "`." -#: ../Doc/c-api/init_config.rst:238 +#: ../Doc/c-api/init_config.rst:248 msgid "``PYMEM_ALLOCATOR_MALLOC`` (``3``): use ``malloc()`` of the C library." msgstr "" "``PYMEM_ALLOCATOR_MALLOC`` (``3``): usa ``malloc()`` de la biblioteca C." -#: ../Doc/c-api/init_config.rst:239 +#: ../Doc/c-api/init_config.rst:249 msgid "" "``PYMEM_ALLOCATOR_MALLOC_DEBUG`` (``4``): force usage of ``malloc()`` with :" "ref:`debug hooks `." @@ -313,7 +312,7 @@ msgstr "" "``PYMEM_ALLOCATOR_MALLOC_DEBUG`` (``4``): fuerza el uso de ``malloc()`` con :" "ref:`ganchos de depuración `." -#: ../Doc/c-api/init_config.rst:241 +#: ../Doc/c-api/init_config.rst:251 msgid "" "``PYMEM_ALLOCATOR_PYMALLOC`` (``5``): :ref:`Python pymalloc memory allocator " "`." @@ -321,7 +320,7 @@ msgstr "" "``PYMEM_ALLOCATOR_PYMALLOC`` (``5``): :ref:`asignador de memoria pymalloc de " "Python `" -#: ../Doc/c-api/init_config.rst:243 +#: ../Doc/c-api/init_config.rst:253 msgid "" "``PYMEM_ALLOCATOR_PYMALLOC_DEBUG`` (``6``): :ref:`Python pymalloc memory " "allocator ` with :ref:`debug hooks `." @@ -330,7 +329,7 @@ msgstr "" "pymalloc de Python ` con :ref:`ganchos de depuración `." -#: ../Doc/c-api/init_config.rst:247 +#: ../Doc/c-api/init_config.rst:257 msgid "" "``PYMEM_ALLOCATOR_PYMALLOC`` and ``PYMEM_ALLOCATOR_PYMALLOC_DEBUG`` are not " "supported if Python is :option:`configured using --without-pymalloc <--" @@ -340,21 +339,22 @@ msgstr "" "compatibles si Python es :option:`configurado usando --without-pymalloc <--" "without-pymalloc>`." -#: ../Doc/c-api/init_config.rst:251 +#: ../Doc/c-api/init_config.rst:261 msgid "See :ref:`Memory Management `." msgstr "Ver :ref:`Administración de memorias `." -#: ../Doc/c-api/init_config.rst:253 +#: ../Doc/c-api/init_config.rst:263 msgid "Default: ``PYMEM_ALLOCATOR_NOT_SET``." msgstr "Predeterminado: ``PYMEM_ALLOCATOR_NOT_SET``." -#: ../Doc/c-api/init_config.rst:257 -msgid "Set the LC_CTYPE locale to the user preferred locale?" +#: ../Doc/c-api/init_config.rst:267 +#, fuzzy +msgid "Set the LC_CTYPE locale to the user preferred locale." msgstr "" "¿Establecer la configuración regional LC_CTYPE en la configuración regional " "preferida del usuario?" -#: ../Doc/c-api/init_config.rst:259 +#: ../Doc/c-api/init_config.rst:269 #, fuzzy msgid "" "If equals to ``0``, set :c:member:`~PyPreConfig.coerce_c_locale` and :c:" @@ -363,23 +363,23 @@ msgstr "" "Si es igual a 0, establezca los miembros :c:member:`~PyPreConfig." "coerce_c_locale` y :c:member:`~PyPreConfig.coerce_c_locale_warn` en 0." -#: ../Doc/c-api/init_config.rst:262 ../Doc/c-api/init_config.rst:273 +#: ../Doc/c-api/init_config.rst:272 ../Doc/c-api/init_config.rst:283 msgid "See the :term:`locale encoding`." msgstr "Vea el :term:`locale encoding`." -#: ../Doc/c-api/init_config.rst:264 ../Doc/c-api/init_config.rst:319 -#: ../Doc/c-api/init_config.rst:670 +#: ../Doc/c-api/init_config.rst:274 ../Doc/c-api/init_config.rst:329 +#: ../Doc/c-api/init_config.rst:684 msgid "Default: ``1`` in Python config, ``0`` in isolated config." msgstr "" "Predeterminado: ``1`` en la configuración de Python, ``0`` en la " "configuración aislada." -#: ../Doc/c-api/init_config.rst:268 +#: ../Doc/c-api/init_config.rst:278 #, fuzzy msgid "If equals to ``2``, coerce the C locale." msgstr "Si es igual a 2, imponga la configuración regional C." -#: ../Doc/c-api/init_config.rst:270 +#: ../Doc/c-api/init_config.rst:280 #, fuzzy msgid "" "If equals to ``1``, read the LC_CTYPE locale to decide if it should be " @@ -388,19 +388,19 @@ msgstr "" "Si es igual a 1, lea la configuración regional LC_CTYPE para decidir si debe " "ser coaccionado." -#: ../Doc/c-api/init_config.rst:275 ../Doc/c-api/init_config.rst:281 +#: ../Doc/c-api/init_config.rst:285 ../Doc/c-api/init_config.rst:291 msgid "Default: ``-1`` in Python config, ``0`` in isolated config." msgstr "" "Predeterminado: ``-1`` en la configuración de Python, ``0`` en la " "configuración aislada." -#: ../Doc/c-api/init_config.rst:279 +#: ../Doc/c-api/init_config.rst:289 msgid "If non-zero, emit a warning if the C locale is coerced." msgstr "" "Si no es cero, emita una advertencia si la configuración regional C está " "coaccionada." -#: ../Doc/c-api/init_config.rst:285 +#: ../Doc/c-api/init_config.rst:295 #, fuzzy msgid "" ":ref:`Python Development Mode `: see :c:member:`PyConfig.dev_mode`." @@ -408,36 +408,36 @@ msgstr "" "Si es distinto de cero, habilita el :ref:`Modo de desarrollo de Python " "`: consulte :c:member:`PyConfig.dev_mode`." -#: ../Doc/c-api/init_config.rst:288 ../Doc/c-api/init_config.rst:679 -#: ../Doc/c-api/init_config.rst:721 ../Doc/c-api/init_config.rst:1150 +#: ../Doc/c-api/init_config.rst:298 ../Doc/c-api/init_config.rst:693 +#: ../Doc/c-api/init_config.rst:735 ../Doc/c-api/init_config.rst:1188 msgid "Default: ``-1`` in Python mode, ``0`` in isolated mode." msgstr "Por defecto: ``-1`` en modo Python, ``0`` en modo aislado." -#: ../Doc/c-api/init_config.rst:292 +#: ../Doc/c-api/init_config.rst:302 msgid "Isolated mode: see :c:member:`PyConfig.isolated`." msgstr "Modo aislado: consulte :c:member:`PyConfig.isolated`." -#: ../Doc/c-api/init_config.rst:294 ../Doc/c-api/init_config.rst:846 +#: ../Doc/c-api/init_config.rst:304 ../Doc/c-api/init_config.rst:880 msgid "Default: ``0`` in Python mode, ``1`` in isolated mode." msgstr "Por defecto: ``0`` en modo Python, ``1`` en modo aislado." -#: ../Doc/c-api/init_config.rst:298 +#: ../Doc/c-api/init_config.rst:308 msgid "If non-zero:" msgstr "Si no es cero:" -#: ../Doc/c-api/init_config.rst:300 +#: ../Doc/c-api/init_config.rst:310 msgid "Set :c:member:`PyPreConfig.utf8_mode` to ``0``," msgstr "Establezca :c:member:`PyPreConfig.utf8_mode` en ``0``," -#: ../Doc/c-api/init_config.rst:301 +#: ../Doc/c-api/init_config.rst:311 msgid "Set :c:member:`PyConfig.filesystem_encoding` to ``\"mbcs\"``," msgstr "Establezca :c:member:`PyConfig.filesystem_encoding` en ``\"mbcs\"``," -#: ../Doc/c-api/init_config.rst:302 +#: ../Doc/c-api/init_config.rst:312 msgid "Set :c:member:`PyConfig.filesystem_errors` to ``\"replace\"``." msgstr "Establezca :c:member:`PyConfig.filesystem_errors` en ``\"replace\"``." -#: ../Doc/c-api/init_config.rst:304 +#: ../Doc/c-api/init_config.rst:314 msgid "" "Initialized the from :envvar:`PYTHONLEGACYWINDOWSFSENCODING` environment " "variable value." @@ -445,7 +445,7 @@ msgstr "" "Inicializado desde valor de variable de entorno :envvar:" "`PYTHONLEGACYWINDOWSFSENCODING`." -#: ../Doc/c-api/init_config.rst:307 ../Doc/c-api/init_config.rst:859 +#: ../Doc/c-api/init_config.rst:317 ../Doc/c-api/init_config.rst:894 msgid "" "Only available on Windows. ``#ifdef MS_WINDOWS`` macro can be used for " "Windows specific code." @@ -453,18 +453,18 @@ msgstr "" "Solo disponible en Windows. La macro ``#ifdef MS_WINDOWS`` se puede usar " "para el código específico de Windows." -#: ../Doc/c-api/init_config.rst:310 ../Doc/c-api/init_config.rst:618 -#: ../Doc/c-api/init_config.rst:625 ../Doc/c-api/init_config.rst:692 -#: ../Doc/c-api/init_config.rst:801 ../Doc/c-api/init_config.rst:815 -#: ../Doc/c-api/init_config.rst:829 ../Doc/c-api/init_config.rst:862 -#: ../Doc/c-api/init_config.rst:876 ../Doc/c-api/init_config.rst:936 -#: ../Doc/c-api/init_config.rst:985 ../Doc/c-api/init_config.rst:1045 -#: ../Doc/c-api/init_config.rst:1085 ../Doc/c-api/init_config.rst:1114 -#: ../Doc/c-api/init_config.rst:1187 +#: ../Doc/c-api/init_config.rst:320 ../Doc/c-api/init_config.rst:632 +#: ../Doc/c-api/init_config.rst:639 ../Doc/c-api/init_config.rst:706 +#: ../Doc/c-api/init_config.rst:815 ../Doc/c-api/init_config.rst:829 +#: ../Doc/c-api/init_config.rst:843 ../Doc/c-api/init_config.rst:897 +#: ../Doc/c-api/init_config.rst:911 ../Doc/c-api/init_config.rst:971 +#: ../Doc/c-api/init_config.rst:1023 ../Doc/c-api/init_config.rst:1083 +#: ../Doc/c-api/init_config.rst:1123 ../Doc/c-api/init_config.rst:1152 +#: ../Doc/c-api/init_config.rst:1239 msgid "Default: ``0``." msgstr "Predeterminado: ``0``." -#: ../Doc/c-api/init_config.rst:314 +#: ../Doc/c-api/init_config.rst:324 msgid "" "If non-zero, :c:func:`Py_PreInitializeFromArgs` and :c:func:" "`Py_PreInitializeFromBytesArgs` parse their ``argv`` argument the same way " @@ -476,7 +476,7 @@ msgstr "" "manera que Python analiza los argumentos de la línea de comandos: ver :ref:" "`Argumentos de línea de comandos `." -#: ../Doc/c-api/init_config.rst:323 +#: ../Doc/c-api/init_config.rst:333 msgid "" "Use :ref:`environment variables `? See :c:member:`PyConfig." "use_environment`." @@ -484,17 +484,17 @@ msgstr "" "¿Utiliza :ref:`variables de entorno `? Consulte :c:member:" "`PyConfig.use_environment`." -#: ../Doc/c-api/init_config.rst:326 ../Doc/c-api/init_config.rst:1161 +#: ../Doc/c-api/init_config.rst:336 ../Doc/c-api/init_config.rst:1213 msgid "Default: ``1`` in Python config and ``0`` in isolated config." msgstr "" "Predeterminado: ``1`` en la configuración de Python y ``0`` en la " "configuración aislada." -#: ../Doc/c-api/init_config.rst:330 +#: ../Doc/c-api/init_config.rst:340 msgid "If non-zero, enable the :ref:`Python UTF-8 Mode `." msgstr "Si es distinto de cero, habilite :ref:`Python UTF-8 Mode `." -#: ../Doc/c-api/init_config.rst:332 +#: ../Doc/c-api/init_config.rst:342 #, fuzzy msgid "" "Set to ``0`` or ``1`` by the :option:`-X utf8 <-X>` command line option and " @@ -503,38 +503,38 @@ msgstr "" "Establecido por la opción de línea de comando :option:`-X utf8 <-X>` y la " "variable de entorno :envvar:`PYTHONUTF8`." -#: ../Doc/c-api/init_config.rst:335 +#: ../Doc/c-api/init_config.rst:345 msgid "Also set to ``1`` if the ``LC_CTYPE`` locale is ``C`` or ``POSIX``." msgstr "" "También se pone a ``1`` si la configuración regional ``LC_CTYPE`` es ``C`` o " "``POSIX``." -#: ../Doc/c-api/init_config.rst:337 +#: ../Doc/c-api/init_config.rst:347 msgid "Default: ``-1`` in Python config and ``0`` in isolated config." msgstr "" "Predeterminado: ``-1`` en la configuración de Python y ``0`` en la " "configuración aislada." -#: ../Doc/c-api/init_config.rst:343 +#: ../Doc/c-api/init_config.rst:353 msgid "Preinitialize Python with PyPreConfig" msgstr "Preinicialización de Python con PyPreConfig" -#: ../Doc/c-api/init_config.rst:345 +#: ../Doc/c-api/init_config.rst:355 msgid "The preinitialization of Python:" msgstr "La preinicialización de Python:" -#: ../Doc/c-api/init_config.rst:347 +#: ../Doc/c-api/init_config.rst:357 msgid "Set the Python memory allocators (:c:member:`PyPreConfig.allocator`)" msgstr "" "Establecer los asignadores de memoria de Python (:c:member:`PyPreConfig." "allocator`)" -#: ../Doc/c-api/init_config.rst:348 +#: ../Doc/c-api/init_config.rst:358 msgid "Configure the LC_CTYPE locale (:term:`locale encoding`)" msgstr "" "Configurar la configuración regional LC_CTYPE (:term:`locale encoding`)" -#: ../Doc/c-api/init_config.rst:349 +#: ../Doc/c-api/init_config.rst:359 msgid "" "Set the :ref:`Python UTF-8 Mode ` (:c:member:`PyPreConfig." "utf8_mode`)" @@ -542,7 +542,7 @@ msgstr "" "Establecer el :ref:`Python UTF-8 Mode ` (:c:member:`PyPreConfig." "utf8_mode`)" -#: ../Doc/c-api/init_config.rst:352 +#: ../Doc/c-api/init_config.rst:362 msgid "" "The current preconfiguration (``PyPreConfig`` type) is stored in " "``_PyRuntime.preconfig``." @@ -550,21 +550,21 @@ msgstr "" "La preconfiguración actual (tipo ``PyPreConfig``) se almacena en " "``_PyRuntime.preconfig``." -#: ../Doc/c-api/init_config.rst:355 +#: ../Doc/c-api/init_config.rst:365 msgid "Functions to preinitialize Python:" msgstr "Funciones para preinicializar Python:" -#: ../Doc/c-api/init_config.rst:359 ../Doc/c-api/init_config.rst:365 -#: ../Doc/c-api/init_config.rst:374 +#: ../Doc/c-api/init_config.rst:369 ../Doc/c-api/init_config.rst:375 +#: ../Doc/c-api/init_config.rst:384 msgid "Preinitialize Python from *preconfig* preconfiguration." msgstr "Preinicializa Python desde la preconfiguración *preconfig*." -#: ../Doc/c-api/init_config.rst:361 ../Doc/c-api/init_config.rst:370 -#: ../Doc/c-api/init_config.rst:379 +#: ../Doc/c-api/init_config.rst:371 ../Doc/c-api/init_config.rst:380 +#: ../Doc/c-api/init_config.rst:389 msgid "*preconfig* must not be ``NULL``." msgstr "*preconfig* no debe ser ``NULL``." -#: ../Doc/c-api/init_config.rst:367 +#: ../Doc/c-api/init_config.rst:377 msgid "" "Parse *argv* command line arguments (bytes strings) if :c:member:" "`~PyPreConfig.parse_argv` of *preconfig* is non-zero." @@ -572,7 +572,7 @@ msgstr "" "Analice los argumentos de la línea de comando *argv* (cadenas de bytes) si :" "c:member:`~PyPreConfig.parse_argv` de *preconfig* no es cero." -#: ../Doc/c-api/init_config.rst:376 +#: ../Doc/c-api/init_config.rst:386 msgid "" "Parse *argv* command line arguments (wide strings) if :c:member:" "`~PyPreConfig.parse_argv` of *preconfig* is non-zero." @@ -580,7 +580,7 @@ msgstr "" "Analice los argumentos de la línea de comando *argv* (cadenas anchas) si :c:" "member:`~PyPreConfig.parse_argv` de *preconfig* no es cero." -#: ../Doc/c-api/init_config.rst:381 ../Doc/c-api/init_config.rst:1249 +#: ../Doc/c-api/init_config.rst:391 ../Doc/c-api/init_config.rst:1301 msgid "" "The caller is responsible to handle exceptions (error or exit) using :c:func:" "`PyStatus_Exception` and :c:func:`Py_ExitStatusException`." @@ -589,7 +589,7 @@ msgstr "" "salida) usando :c:func:`PyStatus_Exception` y :c:func:" "`Py_ExitStatusException`." -#: ../Doc/c-api/init_config.rst:384 +#: ../Doc/c-api/init_config.rst:394 msgid "" "For :ref:`Python Configuration ` (:c:func:" "`PyPreConfig_InitPythonConfig`), if Python is initialized with command line " @@ -606,7 +606,7 @@ msgstr "" "comando :option:`-X utf8 <-X>` habilita el :ref:`Python UTF-8 Mode `." -#: ../Doc/c-api/init_config.rst:391 +#: ../Doc/c-api/init_config.rst:401 msgid "" "``PyMem_SetAllocator()`` can be called after :c:func:`Py_PreInitialize` and " "before :c:func:`Py_InitializeFromConfig` to install a custom memory " @@ -619,7 +619,7 @@ msgstr "" "`Py_PreInitialize` si :c:member:`PyPreConfig.allocator` está configurado en " "``PYMEM_ALLOCATOR_NOT_SET``." -#: ../Doc/c-api/init_config.rst:396 +#: ../Doc/c-api/init_config.rst:406 msgid "" "Python memory allocation functions like :c:func:`PyMem_RawMalloc` must not " "be used before the Python preinitialization, whereas calling directly " @@ -632,7 +632,7 @@ msgstr "" "seguro. No se debe llamar a :c:func:`Py_DecodeLocale` antes de la " "preinicialización de Python." -#: ../Doc/c-api/init_config.rst:401 +#: ../Doc/c-api/init_config.rst:411 msgid "" "Example using the preinitialization to enable the :ref:`Python UTF-8 Mode " "`::" @@ -640,16 +640,16 @@ msgstr "" "Ejemplo usando la preinicialización para habilitar el :ref:`Python UTF-8 " "Mode ` ::" -#: ../Doc/c-api/init_config.rst:423 +#: ../Doc/c-api/init_config.rst:433 msgid "PyConfig" msgstr "PyConfig" -#: ../Doc/c-api/init_config.rst:427 +#: ../Doc/c-api/init_config.rst:437 msgid "Structure containing most parameters to configure Python." msgstr "" "Estructura que contiene la mayoría de los parámetros para configurar Python." -#: ../Doc/c-api/init_config.rst:429 +#: ../Doc/c-api/init_config.rst:439 msgid "" "When done, the :c:func:`PyConfig_Clear` function must be used to release the " "configuration memory." @@ -657,11 +657,11 @@ msgstr "" "Cuando termine, se debe utilizar la función :c:func:`PyConfig_Clear` para " "liberar la memoria de configuración." -#: ../Doc/c-api/init_config.rst:432 +#: ../Doc/c-api/init_config.rst:444 msgid "Structure methods:" msgstr "Métodos de estructura:" -#: ../Doc/c-api/init_config.rst:436 +#: ../Doc/c-api/init_config.rst:448 msgid "" "Initialize configuration with the :ref:`Python Configuration `." @@ -669,7 +669,7 @@ msgstr "" "Inicialice la configuración con la :ref:`Configuración de Python `." -#: ../Doc/c-api/init_config.rst:441 +#: ../Doc/c-api/init_config.rst:453 msgid "" "Initialize configuration with the :ref:`Isolated Configuration `." @@ -677,17 +677,17 @@ msgstr "" "Inicialice la configuración con la :ref:`Configuración Aislada `." -#: ../Doc/c-api/init_config.rst:446 +#: ../Doc/c-api/init_config.rst:458 msgid "Copy the wide character string *str* into ``*config_str``." msgstr "Copia la cadena de caracteres anchos *str* en ``*config_str``." -#: ../Doc/c-api/init_config.rst:448 ../Doc/c-api/init_config.rst:455 -#: ../Doc/c-api/init_config.rst:462 ../Doc/c-api/init_config.rst:470 -#: ../Doc/c-api/init_config.rst:476 ../Doc/c-api/init_config.rst:493 +#: ../Doc/c-api/init_config.rst:460 ../Doc/c-api/init_config.rst:467 +#: ../Doc/c-api/init_config.rst:474 ../Doc/c-api/init_config.rst:482 +#: ../Doc/c-api/init_config.rst:488 ../Doc/c-api/init_config.rst:505 msgid ":ref:`Preinitialize Python ` if needed." msgstr ":ref:`Preinicializa Python ` si es necesario." -#: ../Doc/c-api/init_config.rst:452 +#: ../Doc/c-api/init_config.rst:464 msgid "" "Decode *str* using :c:func:`Py_DecodeLocale` and set the result into " "``*config_str``." @@ -695,7 +695,7 @@ msgstr "" "Decodifique *str* usando :c:func:`Py_DecodeLocale` y establezca el resultado " "en ``*config_str``." -#: ../Doc/c-api/init_config.rst:459 +#: ../Doc/c-api/init_config.rst:471 msgid "" "Set command line arguments (:c:member:`~PyConfig.argv` member of *config*) " "from the *argv* list of wide character strings." @@ -704,7 +704,7 @@ msgstr "" "`~PyConfig.argv` de *config*) de la lista *argv* de cadenas de caracteres " "anchas." -#: ../Doc/c-api/init_config.rst:466 +#: ../Doc/c-api/init_config.rst:478 msgid "" "Set command line arguments (:c:member:`~PyConfig.argv` member of *config*) " "from the *argv* list of bytes strings. Decode bytes using :c:func:" @@ -714,21 +714,21 @@ msgstr "" "argv` de *config*) de la lista *argv* de cadenas de bytes. Decodifica bytes " "usando :c:func:`Py_DecodeLocale`." -#: ../Doc/c-api/init_config.rst:474 +#: ../Doc/c-api/init_config.rst:486 msgid "Set the list of wide strings *list* to *length* and *items*." msgstr "" "Establece la lista de cadenas de caracteres anchas *list* a *length* y " "*items*." -#: ../Doc/c-api/init_config.rst:480 +#: ../Doc/c-api/init_config.rst:492 msgid "Read all Python configuration." msgstr "Lee toda la configuración de Python." -#: ../Doc/c-api/init_config.rst:482 +#: ../Doc/c-api/init_config.rst:494 msgid "Fields which are already initialized are left unchanged." msgstr "Los campos que ya están inicializados no se modifican." -#: ../Doc/c-api/init_config.rst:484 +#: ../Doc/c-api/init_config.rst:496 msgid "" "Fields for :ref:`path configuration ` are no longer " "calculated or modified when calling this function, as of Python 3.11." @@ -736,7 +736,7 @@ msgstr "" "Los campos para la :ref:`configuración de ruta ` ya no se " "calculan ni modifican al llamar a esta función, a partir de Python 3.11." -#: ../Doc/c-api/init_config.rst:487 ../Doc/c-api/init_config.rst:965 +#: ../Doc/c-api/init_config.rst:499 ../Doc/c-api/init_config.rst:1000 msgid "" "The :c:func:`PyConfig_Read` function only parses :c:member:`PyConfig.argv` " "arguments once: :c:member:`PyConfig.parse_argv` is set to ``2`` after " @@ -750,7 +750,7 @@ msgstr "" "se eliminan de :c:member:`PyConfig.argv`, analizar los argumentos dos veces " "analizaría las opciones de la aplicación como opciones de Python." -#: ../Doc/c-api/init_config.rst:495 +#: ../Doc/c-api/init_config.rst:507 msgid "" "The :c:member:`PyConfig.argv` arguments are now only parsed once, :c:member:" "`PyConfig.parse_argv` is set to ``2`` after arguments are parsed, and " @@ -761,7 +761,7 @@ msgstr "" "argumentos y los argumentos solo se analizan si :c:member:`PyConfig." "parse_argv` es igual a ``1``." -#: ../Doc/c-api/init_config.rst:501 +#: ../Doc/c-api/init_config.rst:513 msgid "" ":c:func:`PyConfig_Read` no longer calculates all paths, and so fields listed " "under :ref:`Python Path Configuration ` may no longer be " @@ -771,11 +771,11 @@ msgstr "" "listados en :ref:`Python Path Configuration ` ya no pueden " "ser actualizados hasta que se llame a :c:func:`Py_InitializeFromConfig`." -#: ../Doc/c-api/init_config.rst:509 +#: ../Doc/c-api/init_config.rst:521 msgid "Release configuration memory." msgstr "Libera memoria de configuración." -#: ../Doc/c-api/init_config.rst:511 +#: ../Doc/c-api/init_config.rst:523 msgid "" "Most ``PyConfig`` methods :ref:`preinitialize Python ` if needed. " "In that case, the Python preinitialization configuration (:c:type:" @@ -790,35 +790,36 @@ msgstr "" "type:`PyPreConfig`, deben establecerse antes de llamar a un método :c:type:" "`PyConfig`:" -#: ../Doc/c-api/init_config.rst:517 +#: ../Doc/c-api/init_config.rst:529 msgid ":c:member:`PyConfig.dev_mode`" msgstr ":c:member:`PyConfig.dev_mode`" -#: ../Doc/c-api/init_config.rst:518 +#: ../Doc/c-api/init_config.rst:530 msgid ":c:member:`PyConfig.isolated`" msgstr ":c:member:`PyConfig.isolated`" -#: ../Doc/c-api/init_config.rst:519 +#: ../Doc/c-api/init_config.rst:531 msgid ":c:member:`PyConfig.parse_argv`" msgstr ":c:member:`PyConfig.parse_argv`" -#: ../Doc/c-api/init_config.rst:520 +#: ../Doc/c-api/init_config.rst:532 msgid ":c:member:`PyConfig.use_environment`" msgstr ":c:member:`PyConfig.use_environment`" -#: ../Doc/c-api/init_config.rst:522 +#: ../Doc/c-api/init_config.rst:534 +#, fuzzy msgid "" "Moreover, if :c:func:`PyConfig_SetArgv` or :c:func:`PyConfig_SetBytesArgv` " "is used, this method must be called before other methods, since the " "preinitialization configuration depends on command line arguments (if :c:" -"member:`parse_argv` is non-zero)." +"member:`~PyConfig.parse_argv` is non-zero)." msgstr "" "Además, si se usa :c:func:`PyConfig_SetArgv` o :c:func:" "`PyConfig_SetBytesArgv`, este método debe llamarse antes que otros métodos, " "ya que la configuración de preinicialización depende de los argumentos de la " "línea de comando (si :c:member:`parse_argv` no es cero)." -#: ../Doc/c-api/init_config.rst:527 +#: ../Doc/c-api/init_config.rst:539 msgid "" "The caller of these methods is responsible to handle exceptions (error or " "exit) using ``PyStatus_Exception()`` and ``Py_ExitStatusException()``." @@ -827,11 +828,11 @@ msgstr "" "(error o salida) usando ``PyStatus_Exception()`` y " "``Py_ExitStatusException()``." -#: ../Doc/c-api/init_config.rst:534 +#: ../Doc/c-api/init_config.rst:548 msgid "Command line arguments: :data:`sys.argv`." msgstr "Argumentos de la línea de comando: :data:`sys.argv`." -#: ../Doc/c-api/init_config.rst:536 +#: ../Doc/c-api/init_config.rst:550 msgid "" "Set :c:member:`~PyConfig.parse_argv` to ``1`` to parse :c:member:`~PyConfig." "argv` the same way the regular Python parses Python command line arguments " @@ -842,7 +843,7 @@ msgstr "" "de la línea de comandos de Python y luego quita los argumentos de Python de :" "c:member:`~PyConfig.argv`." -#: ../Doc/c-api/init_config.rst:541 +#: ../Doc/c-api/init_config.rst:555 msgid "" "If :c:member:`~PyConfig.argv` is empty, an empty string is added to ensure " "that :data:`sys.argv` always exists and is never empty." @@ -850,21 +851,21 @@ msgstr "" "Si :c:member:`~PyConfig.argv` está vacío, se agrega una cadena vacía para " "garantizar que :data:`sys.argv` siempre exista y nunca esté vacío." -#: ../Doc/c-api/init_config.rst:544 ../Doc/c-api/init_config.rst:571 -#: ../Doc/c-api/init_config.rst:583 ../Doc/c-api/init_config.rst:591 -#: ../Doc/c-api/init_config.rst:699 ../Doc/c-api/init_config.rst:708 -#: ../Doc/c-api/init_config.rst:790 ../Doc/c-api/init_config.rst:906 -#: ../Doc/c-api/init_config.rst:1004 ../Doc/c-api/init_config.rst:1022 -#: ../Doc/c-api/init_config.rst:1036 ../Doc/c-api/init_config.rst:1053 -#: ../Doc/c-api/init_config.rst:1066 ../Doc/c-api/init_config.rst:1074 +#: ../Doc/c-api/init_config.rst:558 ../Doc/c-api/init_config.rst:585 +#: ../Doc/c-api/init_config.rst:597 ../Doc/c-api/init_config.rst:605 +#: ../Doc/c-api/init_config.rst:713 ../Doc/c-api/init_config.rst:722 +#: ../Doc/c-api/init_config.rst:804 ../Doc/c-api/init_config.rst:941 +#: ../Doc/c-api/init_config.rst:1042 ../Doc/c-api/init_config.rst:1060 +#: ../Doc/c-api/init_config.rst:1074 ../Doc/c-api/init_config.rst:1091 +#: ../Doc/c-api/init_config.rst:1104 ../Doc/c-api/init_config.rst:1112 msgid "Default: ``NULL``." msgstr "Valor predeterminado: ``NULL``." -#: ../Doc/c-api/init_config.rst:546 +#: ../Doc/c-api/init_config.rst:560 msgid "See also the :c:member:`~PyConfig.orig_argv` member." msgstr "Consulte también el miembro :c:member:`~PyConfig.orig_argv`." -#: ../Doc/c-api/init_config.rst:550 +#: ../Doc/c-api/init_config.rst:564 msgid "" "If equals to zero, ``Py_RunMain()`` prepends a potentially unsafe path to :" "data:`sys.path` at startup:" @@ -872,7 +873,7 @@ msgstr "" "Si es igual a cero, ``Py_RunMain()`` agrega una ruta potencialmente insegura " "a :data:`sys.path` al inicio:" -#: ../Doc/c-api/init_config.rst:553 +#: ../Doc/c-api/init_config.rst:567 msgid "" "If :c:member:`argv[0] ` is equal to ``L\"-m\"`` (``python -m " "module``), prepend the current working directory." @@ -880,7 +881,7 @@ msgstr "" "Si :c:member:`argv[0] ` es igual a ``L\"-m\"`` (``python -m " "module``), añade el directorio de trabajo actual." -#: ../Doc/c-api/init_config.rst:555 +#: ../Doc/c-api/init_config.rst:569 #, fuzzy msgid "" "If running a script (``python script.py``), prepend the script's directory. " @@ -889,7 +890,7 @@ msgstr "" "Si se ejecuta el script (``python script.py``), añade el directorio del " "script. Si es un enlace simbólico, resuelve los enlaces simbólicos." -#: ../Doc/c-api/init_config.rst:557 +#: ../Doc/c-api/init_config.rst:571 msgid "" "Otherwise (``python -c code`` and ``python``), prepend an empty string, " "which means the current working directory." @@ -897,7 +898,7 @@ msgstr "" "En caso contrario (``python -c code`` and ``python``), añade una cadena " "vacía, que significa el directorio de trabajo actual." -#: ../Doc/c-api/init_config.rst:560 +#: ../Doc/c-api/init_config.rst:574 #, fuzzy msgid "" "Set to ``1`` by the :option:`-P` command line option and the :envvar:" @@ -906,42 +907,42 @@ msgstr "" "Establecido en 0 por la opción de línea de comando :option:`-u` y la " "variable de entorno :envvar:`PYTHONUNBUFFERED`." -#: ../Doc/c-api/init_config.rst:563 +#: ../Doc/c-api/init_config.rst:577 #, fuzzy msgid "Default: ``0`` in Python config, ``1`` in isolated config." msgstr "" "Predeterminado: ``1`` en la configuración de Python, ``0`` en la " "configuración aislada." -#: ../Doc/c-api/init_config.rst:569 +#: ../Doc/c-api/init_config.rst:583 msgid ":data:`sys.base_exec_prefix`." msgstr ":data:`sys.base_exec_prefix`." -#: ../Doc/c-api/init_config.rst:573 ../Doc/c-api/init_config.rst:585 -#: ../Doc/c-api/init_config.rst:593 ../Doc/c-api/init_config.rst:701 -#: ../Doc/c-api/init_config.rst:710 ../Doc/c-api/init_config.rst:923 -#: ../Doc/c-api/init_config.rst:1006 +#: ../Doc/c-api/init_config.rst:587 ../Doc/c-api/init_config.rst:599 +#: ../Doc/c-api/init_config.rst:607 ../Doc/c-api/init_config.rst:715 +#: ../Doc/c-api/init_config.rst:724 ../Doc/c-api/init_config.rst:958 +#: ../Doc/c-api/init_config.rst:1044 msgid "Part of the :ref:`Python Path Configuration ` output." msgstr "" "Parte de la salida :ref:`Python Path Configuration `." -#: ../Doc/c-api/init_config.rst:577 +#: ../Doc/c-api/init_config.rst:591 msgid "Python base executable: :data:`sys._base_executable`." msgstr "Ejecutable base de Python: :data:`sys._base_executable`." -#: ../Doc/c-api/init_config.rst:579 +#: ../Doc/c-api/init_config.rst:593 msgid "Set by the :envvar:`__PYVENV_LAUNCHER__` environment variable." msgstr "Establecido por la variable de entorno :envvar:`__PYVENV_LAUNCHER__`." -#: ../Doc/c-api/init_config.rst:581 +#: ../Doc/c-api/init_config.rst:595 msgid "Set from :c:member:`PyConfig.executable` if ``NULL``." msgstr "Establecido desde :c:member:`PyConfig.executable` si ``NULL``." -#: ../Doc/c-api/init_config.rst:589 +#: ../Doc/c-api/init_config.rst:603 msgid ":data:`sys.base_prefix`." msgstr ":data:`sys.base_prefix`." -#: ../Doc/c-api/init_config.rst:597 +#: ../Doc/c-api/init_config.rst:611 #, fuzzy msgid "" "If equals to ``0`` and :c:member:`~PyConfig.configure_c_stdio` is non-zero, " @@ -950,7 +951,7 @@ msgstr "" "Si es igual a 0 y :c:member:`~PyConfig.configure_c_stdio` no es cero, " "deshabilite el almacenamiento en búfer en las secuencias C stdout y stderr." -#: ../Doc/c-api/init_config.rst:600 +#: ../Doc/c-api/init_config.rst:614 #, fuzzy msgid "" "Set to ``0`` by the :option:`-u` command line option and the :envvar:" @@ -959,16 +960,16 @@ msgstr "" "Establecido en 0 por la opción de línea de comando :option:`-u` y la " "variable de entorno :envvar:`PYTHONUNBUFFERED`." -#: ../Doc/c-api/init_config.rst:603 +#: ../Doc/c-api/init_config.rst:617 msgid "stdin is always opened in buffered mode." msgstr "stdin siempre se abre en modo de búfer." -#: ../Doc/c-api/init_config.rst:605 ../Doc/c-api/init_config.rst:638 -#: ../Doc/c-api/init_config.rst:1102 ../Doc/c-api/init_config.rst:1219 +#: ../Doc/c-api/init_config.rst:619 ../Doc/c-api/init_config.rst:652 +#: ../Doc/c-api/init_config.rst:1140 ../Doc/c-api/init_config.rst:1271 msgid "Default: ``1``." msgstr "Predeterminado: ``1``." -#: ../Doc/c-api/init_config.rst:609 +#: ../Doc/c-api/init_config.rst:623 #, fuzzy msgid "" "If equals to ``1``, issue a warning when comparing :class:`bytes` or :class:" @@ -977,7 +978,7 @@ msgstr "" "Si es igual a 1, emite una advertencia al comparar :class:`bytes` o :class:" "`bytearray` con :class:`str`, o al comparar :class:`bytes` con :class:`int`." -#: ../Doc/c-api/init_config.rst:613 +#: ../Doc/c-api/init_config.rst:627 #, fuzzy msgid "" "If equal or greater to ``2``, raise a :exc:`BytesWarning` exception in these " @@ -986,11 +987,11 @@ msgstr "" "Si es igual o mayor a 2, lanza una excepción :exc:`BytesWarning` en estos " "casos." -#: ../Doc/c-api/init_config.rst:616 +#: ../Doc/c-api/init_config.rst:630 msgid "Incremented by the :option:`-b` command line option." msgstr "Incrementado por la opción de línea de comando :option:`-b`." -#: ../Doc/c-api/init_config.rst:622 +#: ../Doc/c-api/init_config.rst:636 msgid "" "If non-zero, emit a :exc:`EncodingWarning` warning when :class:`io." "TextIOWrapper` uses its default encoding. See :ref:`io-encoding-warning` for " @@ -1000,7 +1001,7 @@ msgstr "" "`io.TextIOWrapper` usa su codificación predeterminada. Consulte :ref:`io-" "encoding-warning` para obtener más detalles." -#: ../Doc/c-api/init_config.rst:631 +#: ../Doc/c-api/init_config.rst:645 #, fuzzy msgid "" "If equals to ``0``, disables the inclusion of the end line and column " @@ -1011,7 +1012,7 @@ msgstr "" "columna en los objetos de código. También desactiva la impresión de caretas " "(*^*) de rastreo en lugares de error específicos." -#: ../Doc/c-api/init_config.rst:635 +#: ../Doc/c-api/init_config.rst:649 #, fuzzy msgid "" "Set to ``0`` by the :envvar:`PYTHONNODEBUGRANGES` environment variable and " @@ -1020,7 +1021,7 @@ msgstr "" "Establecido en ``0`` por las opciones de línea de comando :option:`-s` y :" "option:`-I`." -#: ../Doc/c-api/init_config.rst:644 +#: ../Doc/c-api/init_config.rst:658 msgid "" "Control the validation behavior of hash-based ``.pyc`` files: value of the :" "option:`--check-hash-based-pycs` command line option." @@ -1029,11 +1030,11 @@ msgstr "" "hash: valor de la opción de línea de comando :option:`--check-hash-based-" "pycs`." -#: ../Doc/c-api/init_config.rst:647 +#: ../Doc/c-api/init_config.rst:661 msgid "Valid values:" msgstr "Valores válidos:" -#: ../Doc/c-api/init_config.rst:649 +#: ../Doc/c-api/init_config.rst:663 msgid "" "``L\"always\"``: Hash the source file for invalidation regardless of value " "of the 'check_source' flag." @@ -1041,12 +1042,12 @@ msgstr "" "``L\"always\"``: Calcula el hash el archivo fuente para invalidación " "independientemente del valor de la marca 'check_source'." -#: ../Doc/c-api/init_config.rst:651 +#: ../Doc/c-api/init_config.rst:665 msgid "``L\"never\"``: Assume that hash-based pycs always are valid." msgstr "" "``L\"never\"``: suponga que los pycs basados en hash siempre son válidos." -#: ../Doc/c-api/init_config.rst:652 +#: ../Doc/c-api/init_config.rst:666 msgid "" "``L\"default\"``: The 'check_source' flag in hash-based pycs determines " "invalidation." @@ -1054,26 +1055,26 @@ msgstr "" "``L\"default\"``: El indicador 'check_source' en pycs basados en hash " "determina la invalidación." -#: ../Doc/c-api/init_config.rst:655 +#: ../Doc/c-api/init_config.rst:669 msgid "Default: ``L\"default\"``." msgstr "Predeterminado: ``L\"default\"``." -#: ../Doc/c-api/init_config.rst:657 +#: ../Doc/c-api/init_config.rst:671 msgid "See also :pep:`552` \"Deterministic pycs\"." msgstr "Consulte también :pep:`552` \"Pycs deterministas\"." -#: ../Doc/c-api/init_config.rst:661 +#: ../Doc/c-api/init_config.rst:675 msgid "If non-zero, configure C standard streams:" msgstr "Si es distinto de cero, configure los flujos estándar de C:" -#: ../Doc/c-api/init_config.rst:663 +#: ../Doc/c-api/init_config.rst:677 msgid "" "On Windows, set the binary mode (``O_BINARY``) on stdin, stdout and stderr." msgstr "" "En Windows, configure el modo binario (``O_BINARY``) en stdin, stdout y " "stderr." -#: ../Doc/c-api/init_config.rst:665 +#: ../Doc/c-api/init_config.rst:679 msgid "" "If :c:member:`~PyConfig.buffered_stdio` equals zero, disable buffering of " "stdin, stdout and stderr streams." @@ -1081,7 +1082,7 @@ msgstr "" "Si :c:member:`~PyConfig.buffered_stdio` es igual a cero, deshabilite el " "almacenamiento en búfer de los flujos stdin, stdout y stderr." -#: ../Doc/c-api/init_config.rst:667 +#: ../Doc/c-api/init_config.rst:681 msgid "" "If :c:member:`~PyConfig.interactive` is non-zero, enable stream buffering on " "stdin and stdout (only stdout on Windows)." @@ -1089,13 +1090,13 @@ msgstr "" "Si :c:member:`~PyConfig.interactive` no es cero, habilite el almacenamiento " "en búfer de flujo en stdin y stdout (solo stdout en Windows)." -#: ../Doc/c-api/init_config.rst:674 +#: ../Doc/c-api/init_config.rst:688 msgid "If non-zero, enable the :ref:`Python Development Mode `." msgstr "" "Si es distinto de cero, habilita :ref:`Modo de desarrollo de Python " "`." -#: ../Doc/c-api/init_config.rst:676 +#: ../Doc/c-api/init_config.rst:690 #, fuzzy msgid "" "Set to ``1`` by the :option:`-X dev <-X>` option and the :envvar:" @@ -1104,22 +1105,22 @@ msgstr "" "Configure el ``1`` mediante la opción :option:`-X importtime <-X>` y la " "variable de entorno :envvar:`PYTHONPROFILEIMPORTTIME`." -#: ../Doc/c-api/init_config.rst:683 +#: ../Doc/c-api/init_config.rst:697 #, fuzzy msgid "Dump Python references?" msgstr "¿Volcar referencias de Python?" -#: ../Doc/c-api/init_config.rst:685 +#: ../Doc/c-api/init_config.rst:699 msgid "If non-zero, dump all objects which are still alive at exit." msgstr "" "Si no es cero, volcar todos los objetos que aún están vivos en la salida." -#: ../Doc/c-api/init_config.rst:687 +#: ../Doc/c-api/init_config.rst:701 msgid "Set to ``1`` by the :envvar:`PYTHONDUMPREFS` environment variable." msgstr "" "Establecido en ``1`` por la variable de entorno :envvar:`PYTHONDUMPREFS`." -#: ../Doc/c-api/init_config.rst:689 +#: ../Doc/c-api/init_config.rst:703 msgid "" "Need a special build of Python with the ``Py_TRACE_REFS`` macro defined: see " "the :option:`configure --with-trace-refs option <--with-trace-refs>`." @@ -1128,7 +1129,7 @@ msgstr "" "definida: consulte la :option:`opción de configure --with-trace-refs option " "<--with-trace-refs>`." -#: ../Doc/c-api/init_config.rst:696 +#: ../Doc/c-api/init_config.rst:710 msgid "" "The site-specific directory prefix where the platform-dependent Python files " "are installed: :data:`sys.exec_prefix`." @@ -1136,7 +1137,7 @@ msgstr "" "El prefijo de directorio específico del sitio donde se instalan los archivos " "Python dependientes de la plataforma: :data:`sys.exec_prefix`." -#: ../Doc/c-api/init_config.rst:705 +#: ../Doc/c-api/init_config.rst:719 msgid "" "The absolute path of the executable binary for the Python interpreter: :data:" "`sys.executable`." @@ -1144,15 +1145,15 @@ msgstr "" "La ruta absoluta del binario ejecutable para el intérprete de Python: :data:" "`sys.executable`." -#: ../Doc/c-api/init_config.rst:714 +#: ../Doc/c-api/init_config.rst:728 msgid "Enable faulthandler?" msgstr "¿Habilitar administrador de fallas?" -#: ../Doc/c-api/init_config.rst:716 +#: ../Doc/c-api/init_config.rst:730 msgid "If non-zero, call :func:`faulthandler.enable` at startup." msgstr "Si no es cero, llama a :func:`faulthandler.enable` al inicio." -#: ../Doc/c-api/init_config.rst:718 +#: ../Doc/c-api/init_config.rst:732 msgid "" "Set to ``1`` by :option:`-X faulthandler <-X>` and the :envvar:" "`PYTHONFAULTHANDLER` environment variable." @@ -1160,7 +1161,7 @@ msgstr "" "Establecido en ``1`` por :option:`-X faulthandler <-X>` y la variable de " "entorno :envvar:`PYTHONFAULTHANDLER`." -#: ../Doc/c-api/init_config.rst:725 +#: ../Doc/c-api/init_config.rst:739 msgid "" ":term:`Filesystem encoding `: :func:" "`sys.getfilesystemencoding`." @@ -1168,12 +1169,12 @@ msgstr "" ":term:`Codificación del sistema de archvios `: :func:`sys.getfilesystemencoding`." -#: ../Doc/c-api/init_config.rst:728 +#: ../Doc/c-api/init_config.rst:742 msgid "On macOS, Android and VxWorks: use ``\"utf-8\"`` by default." msgstr "" "En macOS, Android y VxWorks: use ``\"utf-8\"`` de forma predeterminada." -#: ../Doc/c-api/init_config.rst:730 +#: ../Doc/c-api/init_config.rst:744 msgid "" "On Windows: use ``\"utf-8\"`` by default, or ``\"mbcs\"`` if :c:member:" "`~PyPreConfig.legacy_windows_fs_encoding` of :c:type:`PyPreConfig` is non-" @@ -1183,16 +1184,16 @@ msgstr "" "c:member:`~PyPreConfig.legacy_windows_fs_encoding` de :c:type:`PyPreConfig` " "no es cero." -#: ../Doc/c-api/init_config.rst:734 +#: ../Doc/c-api/init_config.rst:748 msgid "Default encoding on other platforms:" msgstr "Codificación predeterminada en otras plataformas:" -#: ../Doc/c-api/init_config.rst:736 +#: ../Doc/c-api/init_config.rst:750 msgid "``\"utf-8\"`` if :c:member:`PyPreConfig.utf8_mode` is non-zero." msgstr "" "``\"utf-8\"`` si :c:member:`PyPreConfig.utf8_mode` es distinto de cero." -#: ../Doc/c-api/init_config.rst:737 +#: ../Doc/c-api/init_config.rst:751 #, fuzzy msgid "" "``\"ascii\"`` if Python detects that ``nl_langinfo(CODESET)`` announces the " @@ -1204,18 +1205,18 @@ msgstr "" "función ``mbstowcs()`` descodifica a partir de una codificación diferente " "(generalmente Latin1)." -#: ../Doc/c-api/init_config.rst:740 +#: ../Doc/c-api/init_config.rst:754 msgid "``\"utf-8\"`` if ``nl_langinfo(CODESET)`` returns an empty string." msgstr "``\"utf-8\"`` si ``nl_langinfo(CODESET)`` retorna una cadena vacía." -#: ../Doc/c-api/init_config.rst:741 +#: ../Doc/c-api/init_config.rst:755 msgid "" "Otherwise, use the :term:`locale encoding`: ``nl_langinfo(CODESET)`` result." msgstr "" "De lo contrario, utilice el resultado :term:`locale encoding`: " "``nl_langinfo(CODESET)``." -#: ../Doc/c-api/init_config.rst:744 +#: ../Doc/c-api/init_config.rst:758 msgid "" "At Python startup, the encoding name is normalized to the Python codec name. " "For example, ``\"ANSI_X3.4-1968\"`` is replaced with ``\"ascii\"``." @@ -1224,11 +1225,11 @@ msgstr "" "códec de Python. Por ejemplo, ``\"ANSI_X3.4-1968\"`` se reemplaza por " "``\"ascii\"``." -#: ../Doc/c-api/init_config.rst:747 +#: ../Doc/c-api/init_config.rst:761 msgid "See also the :c:member:`~PyConfig.filesystem_errors` member." msgstr "Consulte también el miembro :c:member:`~PyConfig.filesystem_errors`." -#: ../Doc/c-api/init_config.rst:751 +#: ../Doc/c-api/init_config.rst:765 msgid "" ":term:`Filesystem error handler `: :" "func:`sys.getfilesystemencodeerrors`." @@ -1236,7 +1237,7 @@ msgstr "" ":term:`Manejador de errores del sistema de archivos `: :func:`sys.getfilesystemencodeerrors`." -#: ../Doc/c-api/init_config.rst:754 +#: ../Doc/c-api/init_config.rst:768 msgid "" "On Windows: use ``\"surrogatepass\"`` by default, or ``\"replace\"`` if :c:" "member:`~PyPreConfig.legacy_windows_fs_encoding` of :c:type:`PyPreConfig` is " @@ -1246,37 +1247,37 @@ msgstr "" "``\"replace\"`` si :c:member:`~PyPreConfig.legacy_windows_fs_encoding` de :c:" "type:`PyPreConfig` no es cero." -#: ../Doc/c-api/init_config.rst:758 +#: ../Doc/c-api/init_config.rst:772 msgid "On other platforms: use ``\"surrogateescape\"`` by default." msgstr "" "En otras plataformas: utilice ``\"surrogateescape\"`` de forma " "predeterminada." -#: ../Doc/c-api/init_config.rst:760 +#: ../Doc/c-api/init_config.rst:774 msgid "Supported error handlers:" msgstr "Controladores de errores admitidos:" -#: ../Doc/c-api/init_config.rst:762 +#: ../Doc/c-api/init_config.rst:776 msgid "``\"strict\"``" msgstr "``\"strict\"``" -#: ../Doc/c-api/init_config.rst:763 +#: ../Doc/c-api/init_config.rst:777 msgid "``\"surrogateescape\"``" msgstr "``\"surrogateescape\"``" -#: ../Doc/c-api/init_config.rst:764 +#: ../Doc/c-api/init_config.rst:778 msgid "``\"surrogatepass\"`` (only supported with the UTF-8 encoding)" msgstr "``\"surrogatepass\"`` (solo compatible con la codificación UTF-8)" -#: ../Doc/c-api/init_config.rst:766 +#: ../Doc/c-api/init_config.rst:780 msgid "See also the :c:member:`~PyConfig.filesystem_encoding` member." msgstr "Consulte también el miembro :c:member:`~PyConfig.filesystem_encoding`." -#: ../Doc/c-api/init_config.rst:771 +#: ../Doc/c-api/init_config.rst:785 msgid "Randomized hash function seed." msgstr "Funciones de semillas aleatorias hash." -#: ../Doc/c-api/init_config.rst:773 +#: ../Doc/c-api/init_config.rst:787 msgid "" "If :c:member:`~PyConfig.use_hash_seed` is zero, a seed is chosen randomly at " "Python startup, and :c:member:`~PyConfig.hash_seed` is ignored." @@ -1284,22 +1285,22 @@ msgstr "" "Si :c:member:`~PyConfig.use_hash_seed` es cero, se elige una semilla al azar " "en el inicio de Python y se ignora :c:member:`~PyConfig.hash_seed`." -#: ../Doc/c-api/init_config.rst:776 +#: ../Doc/c-api/init_config.rst:790 msgid "Set by the :envvar:`PYTHONHASHSEED` environment variable." msgstr "Establecido por la variable de entorno :envvar:`PYTHONHASHSEED`." -#: ../Doc/c-api/init_config.rst:778 +#: ../Doc/c-api/init_config.rst:792 msgid "" "Default *use_hash_seed* value: ``-1`` in Python mode, ``0`` in isolated mode." msgstr "" "Valor predeterminado de *use_hash_seed*: ``-1`` en modo Python, ``0`` en " "modo aislado." -#: ../Doc/c-api/init_config.rst:783 +#: ../Doc/c-api/init_config.rst:797 msgid "Python home directory." msgstr "Directorio de inicio de Python." -#: ../Doc/c-api/init_config.rst:785 +#: ../Doc/c-api/init_config.rst:799 msgid "" "If :c:func:`Py_SetPythonHome` has been called, use its argument if it is not " "``NULL``." @@ -1307,22 +1308,22 @@ msgstr "" "Si se ha llamado a :c:func:`Py_SetPythonHome`, use su argumento si no es " "``NULL``." -#: ../Doc/c-api/init_config.rst:788 +#: ../Doc/c-api/init_config.rst:802 msgid "Set by the :envvar:`PYTHONHOME` environment variable." msgstr "Establecido por la variable de entorno :envvar:`PYTHONHOME`." -#: ../Doc/c-api/init_config.rst:792 ../Doc/c-api/init_config.rst:888 -#: ../Doc/c-api/init_config.rst:908 ../Doc/c-api/init_config.rst:994 -#: ../Doc/c-api/init_config.rst:1024 +#: ../Doc/c-api/init_config.rst:806 ../Doc/c-api/init_config.rst:923 +#: ../Doc/c-api/init_config.rst:943 ../Doc/c-api/init_config.rst:1032 +#: ../Doc/c-api/init_config.rst:1062 msgid "Part of the :ref:`Python Path Configuration ` input." msgstr "" "Parte de la entrada :ref:`Python Path Configuration `." -#: ../Doc/c-api/init_config.rst:796 +#: ../Doc/c-api/init_config.rst:810 msgid "If non-zero, profile import time." msgstr "Si no es cero, el tiempo de importación del perfil." -#: ../Doc/c-api/init_config.rst:798 +#: ../Doc/c-api/init_config.rst:812 msgid "" "Set the ``1`` by the :option:`-X importtime <-X>` option and the :envvar:" "`PYTHONPROFILEIMPORTTIME` environment variable." @@ -1330,12 +1331,12 @@ msgstr "" "Configure el ``1`` mediante la opción :option:`-X importtime <-X>` y la " "variable de entorno :envvar:`PYTHONPROFILEIMPORTTIME`." -#: ../Doc/c-api/init_config.rst:805 +#: ../Doc/c-api/init_config.rst:819 msgid "Enter interactive mode after executing a script or a command." msgstr "" "Ingresa al modo interactivo después de ejecutar un script o un comando." -#: ../Doc/c-api/init_config.rst:807 +#: ../Doc/c-api/init_config.rst:821 #, fuzzy msgid "" "If greater than ``0``, enable inspect: when a script is passed as first " @@ -1348,7 +1349,7 @@ msgstr "" "interactivo después de ejecutar la secuencia de comandos o el comando, " "incluso cuando :data:`sys.stdin` no parezca ser una terminal." -#: ../Doc/c-api/init_config.rst:812 +#: ../Doc/c-api/init_config.rst:826 msgid "" "Incremented by the :option:`-i` command line option. Set to ``1`` if the :" "envvar:`PYTHONINSPECT` environment variable is non-empty." @@ -1356,43 +1357,74 @@ msgstr "" "Incrementado por la opción de línea de comando :option:`-i`. Establecido en " "``1`` si la variable de entorno :envvar:`PYTHONINSPECT` no está vacía." -#: ../Doc/c-api/init_config.rst:819 +#: ../Doc/c-api/init_config.rst:833 msgid "Install Python signal handlers?" msgstr "¿Instalar controladores de señales de Python?" -#: ../Doc/c-api/init_config.rst:821 ../Doc/c-api/init_config.rst:971 -#: ../Doc/c-api/init_config.rst:992 ../Doc/c-api/init_config.rst:1171 +#: ../Doc/c-api/init_config.rst:835 ../Doc/c-api/init_config.rst:1006 +#: ../Doc/c-api/init_config.rst:1030 ../Doc/c-api/init_config.rst:1223 msgid "Default: ``1`` in Python mode, ``0`` in isolated mode." msgstr "Por defecto: ``1`` en modo Python, ``0`` en modo aislado." -#: ../Doc/c-api/init_config.rst:825 +#: ../Doc/c-api/init_config.rst:839 #, fuzzy msgid "If greater than ``0``, enable the interactive mode (REPL)." msgstr "Si es mayor que 0, habilita el modo interactivo (REPL)." -#: ../Doc/c-api/init_config.rst:827 +#: ../Doc/c-api/init_config.rst:841 msgid "Incremented by the :option:`-i` command line option." msgstr "Incrementado por la opción de línea de comando :option:`-i`." -#: ../Doc/c-api/init_config.rst:833 +#: ../Doc/c-api/init_config.rst:847 +msgid "" +"Configures the :ref:`integer string conversion length limitation " +"`. An initial value of ``-1`` means the value will be " +"taken from the command line or environment or otherwise default to 4300 (:" +"data:`sys.int_info.default_max_str_digits`). A value of ``0`` disables the " +"limitation. Values greater than zero but less than 640 (:data:`sys.int_info." +"str_digits_check_threshold`) are unsupported and will produce an error." +msgstr "" + +#: ../Doc/c-api/init_config.rst:855 +#, fuzzy +msgid "" +"Configured by the :option:`-X int_max_str_digits <-X>` command line flag or " +"the :envvar:`PYTHONINTMAXSTRDIGITS` environment variable." +msgstr "" +"Establecido por la opción de línea de comando :option:`-X " +"pycache_prefix=PATH <-X>` y la variable de entorno :envvar:" +"`PYTHONPYCACHEPREFIX`." + +#: ../Doc/c-api/init_config.rst:858 +#, fuzzy +msgid "" +"Default: ``-1`` in Python mode. 4300 (:data:`sys.int_info." +"default_max_str_digits`) in isolated mode." +msgstr "Por defecto: ``-1`` en modo Python, ``0`` en modo aislado." + +#: ../Doc/c-api/init_config.rst:865 #, fuzzy msgid "If greater than ``0``, enable isolated mode:" msgstr "Si es mayor que 0, habilite el modo aislado:" -#: ../Doc/c-api/init_config.rst:835 +#: ../Doc/c-api/init_config.rst:867 +#, fuzzy msgid "" "Set :c:member:`~PyConfig.safe_path` to ``1``: don't prepend a potentially " -"unsafe path to :data:`sys.path` at Python startup." +"unsafe path to :data:`sys.path` at Python startup, such as the current " +"directory, the script's directory or an empty string." msgstr "" "Poner :c:member:`~PyConfig.safe_path` to ``1``: no anteponer una ruta " "potencialmente insegura a :data:`sys.path` al inicio de Python." -#: ../Doc/c-api/init_config.rst:838 ../Doc/c-api/init_config.rst:1469 +#: ../Doc/c-api/init_config.rst:871 #, fuzzy -msgid "Set :c:member:`~PyConfig.use_environment` to ``0``." +msgid "" +"Set :c:member:`~PyConfig.use_environment` to ``0``: ignore ``PYTHON`` " +"environment variables." msgstr ":c:member:`PyConfig.use_environment`" -#: ../Doc/c-api/init_config.rst:839 +#: ../Doc/c-api/init_config.rst:873 #, fuzzy msgid "" "Set :c:member:`~PyConfig.user_site_directory` to ``0``: don't add the user " @@ -1401,7 +1433,7 @@ msgstr "" "Si es distinto de cero, agregue el directorio del sitio del usuario a :data:" "`sys.path`." -#: ../Doc/c-api/init_config.rst:841 +#: ../Doc/c-api/init_config.rst:875 msgid "" "Python REPL doesn't import :mod:`readline` nor enable default readline " "configuration on interactive prompts." @@ -1409,26 +1441,33 @@ msgstr "" "Python REPL no importa :mod:`readline` ni habilita la configuración " "predeterminada de readline en mensajes interactivos." -#: ../Doc/c-api/init_config.rst:844 +#: ../Doc/c-api/init_config.rst:878 #, fuzzy msgid "Set to ``1`` by the :option:`-I` command line option." msgstr "" "Establecido en ``1`` mediante la opción de línea de comando :option:`-x`." -#: ../Doc/c-api/init_config.rst:848 -msgid "See also :c:member:`PyPreConfig.isolated`." -msgstr "Ver también :c:member:`PyPreConfig.isolated`." +#: ../Doc/c-api/init_config.rst:882 +#, fuzzy +msgid "" +"See also the :ref:`Isolated Configuration ` and :c:" +"member:`PyPreConfig.isolated`." +msgstr "" +"Inicialice la configuración con la :ref:`Configuración Aislada `." -#: ../Doc/c-api/init_config.rst:852 +#: ../Doc/c-api/init_config.rst:887 +#, fuzzy msgid "" -"If non-zero, use :class:`io.FileIO` instead of :class:`io.WindowsConsoleIO` " -"for :data:`sys.stdin`, :data:`sys.stdout` and :data:`sys.stderr`." +"If non-zero, use :class:`io.FileIO` instead of :class:`!io." +"_WindowsConsoleIO` for :data:`sys.stdin`, :data:`sys.stdout` and :data:`sys." +"stderr`." msgstr "" "Si no es cero, usa :class:`io.FileIO` en lugar de :class:`io." "WindowsConsoleIO` para :data:`sys.stdin`, :data:`sys.stdout` y :data:`sys." "stderr`." -#: ../Doc/c-api/init_config.rst:856 +#: ../Doc/c-api/init_config.rst:891 msgid "" "Set to ``1`` if the :envvar:`PYTHONLEGACYWINDOWSSTDIO` environment variable " "is set to a non-empty string." @@ -1436,13 +1475,13 @@ msgstr "" "Establecido en ``1`` si la variable de entorno :envvar:" "`PYTHONLEGACYWINDOWSSTDIO` está establecida en una cadena no vacía." -#: ../Doc/c-api/init_config.rst:864 +#: ../Doc/c-api/init_config.rst:899 msgid "See also the :pep:`528` (Change Windows console encoding to UTF-8)." msgstr "" "Consulte también :pep:`528` (Cambiar la codificación de la consola de " "Windows a UTF-8)." -#: ../Doc/c-api/init_config.rst:868 +#: ../Doc/c-api/init_config.rst:903 msgid "" "If non-zero, dump statistics on :ref:`Python pymalloc memory allocator " "` at exit." @@ -1450,12 +1489,12 @@ msgstr "" "Si no es cero, volcar las estadísticas en :ref:`Asignador de memoria Python " "pymalloc ` en la salida." -#: ../Doc/c-api/init_config.rst:871 +#: ../Doc/c-api/init_config.rst:906 msgid "Set to ``1`` by the :envvar:`PYTHONMALLOCSTATS` environment variable." msgstr "" "Establecido en ``1`` por la variable de entorno :envvar:`PYTHONMALLOCSTATS`." -#: ../Doc/c-api/init_config.rst:873 +#: ../Doc/c-api/init_config.rst:908 msgid "" "The option is ignored if Python is :option:`configured using the --without-" "pymalloc option <--without-pymalloc>`." @@ -1463,17 +1502,17 @@ msgstr "" "La opción se ignora si Python es :option:`configurado usando la opción --" "without-pymalloc <--without-pymalloc>`." -#: ../Doc/c-api/init_config.rst:880 +#: ../Doc/c-api/init_config.rst:915 msgid "Platform library directory name: :data:`sys.platlibdir`." msgstr "" "Nombre del directorio de la biblioteca de la plataforma: :data:`sys." "platlibdir`." -#: ../Doc/c-api/init_config.rst:882 +#: ../Doc/c-api/init_config.rst:917 msgid "Set by the :envvar:`PYTHONPLATLIBDIR` environment variable." msgstr "Establecido por la variable de entorno :envvar:`PYTHONPLATLIBDIR`." -#: ../Doc/c-api/init_config.rst:884 +#: ../Doc/c-api/init_config.rst:919 #, fuzzy msgid "" "Default: value of the ``PLATLIBDIR`` macro which is set by the :option:" @@ -1484,7 +1523,7 @@ msgstr "" "`opción configure --with-platlibdir <--with-platlibdir>` (predeterminado: " "``\"lib\"``)." -#: ../Doc/c-api/init_config.rst:892 +#: ../Doc/c-api/init_config.rst:927 msgid "" "This macro is now used on Windows to locate the standard library extension " "modules, typically under ``DLLs``. However, for compatibility, note that " @@ -1497,23 +1536,24 @@ msgstr "" "disposición no estándar, incluyendo las construcciones dentro del árbol y " "los entornos virtuales." -#: ../Doc/c-api/init_config.rst:901 +#: ../Doc/c-api/init_config.rst:936 +#, fuzzy msgid "" "Module search paths (:data:`sys.path`) as a string separated by ``DELIM`` (:" -"data:`os.path.pathsep`)." +"data:`os.pathsep`)." msgstr "" "Rutas de búsqueda de módulos (:data:`sys.path`) como una cadena separada por " "``DELIM`` (:data:`os.path.pathsep`)." -#: ../Doc/c-api/init_config.rst:904 +#: ../Doc/c-api/init_config.rst:939 msgid "Set by the :envvar:`PYTHONPATH` environment variable." msgstr "Establecido por la variable de entorno :envvar:`PYTHONPATH`." -#: ../Doc/c-api/init_config.rst:913 +#: ../Doc/c-api/init_config.rst:948 msgid "Module search paths: :data:`sys.path`." msgstr "Rutas de búsqueda del módulo: :data:`sys.path`." -#: ../Doc/c-api/init_config.rst:915 +#: ../Doc/c-api/init_config.rst:950 #, fuzzy msgid "" "If :c:member:`~PyConfig.module_search_paths_set` is equal to ``0``, :c:func:" @@ -1526,7 +1566,7 @@ msgstr "" "member:`~PyConfig.module_search_paths` y establece :c:member:`~PyConfig." "module_search_paths_set` en ``1``." -#: ../Doc/c-api/init_config.rst:920 +#: ../Doc/c-api/init_config.rst:955 msgid "" "Default: empty list (``module_search_paths``) and ``0`` " "(``module_search_paths_set``)." @@ -1534,24 +1574,24 @@ msgstr "" "Por defecto: lista vacía (``module_search_paths``) y ``0`` " "(``module_search_paths_set``)." -#: ../Doc/c-api/init_config.rst:927 +#: ../Doc/c-api/init_config.rst:962 msgid "Compilation optimization level:" msgstr "Nivel de optimización de compilación:" -#: ../Doc/c-api/init_config.rst:929 +#: ../Doc/c-api/init_config.rst:964 msgid "``0``: Peephole optimizer, set ``__debug__`` to ``True``." msgstr "``0``: Optimizador de mirilla, configure ``__debug__`` en ``True``." -#: ../Doc/c-api/init_config.rst:930 +#: ../Doc/c-api/init_config.rst:965 msgid "``1``: Level 0, remove assertions, set ``__debug__`` to ``False``." msgstr "" "``1``: Nivel 0, elimina las aserciones, establece ``__debug__`` en ``False``." -#: ../Doc/c-api/init_config.rst:931 +#: ../Doc/c-api/init_config.rst:966 msgid "``2``: Level 1, strip docstrings." msgstr "``2``: Nivel 1, elimina docstrings." -#: ../Doc/c-api/init_config.rst:933 +#: ../Doc/c-api/init_config.rst:968 msgid "" "Incremented by the :option:`-O` command line option. Set to the :envvar:" "`PYTHONOPTIMIZE` environment variable value." @@ -1559,7 +1599,7 @@ msgstr "" "Incrementado por la opción de línea de comando :option:`-O`. Establecido en " "el valor de la variable de entorno :envvar:`PYTHONOPTIMIZE`." -#: ../Doc/c-api/init_config.rst:940 +#: ../Doc/c-api/init_config.rst:975 msgid "" "The list of the original command line arguments passed to the Python " "executable: :data:`sys.orig_argv`." @@ -1567,7 +1607,7 @@ msgstr "" "La lista de los argumentos originales de la línea de comandos pasados al " "ejecutable de Python: :data:`sys.orig_argv`." -#: ../Doc/c-api/init_config.rst:943 +#: ../Doc/c-api/init_config.rst:978 msgid "" "If :c:member:`~PyConfig.orig_argv` list is empty and :c:member:`~PyConfig." "argv` is not a list only containing an empty string, :c:func:`PyConfig_Read` " @@ -1581,7 +1621,7 @@ msgstr "" "orig_argv` antes de modificar :c:member:`~PyConfig.argv` (si :c:member:" "`~PyConfig.parse_argv` no es cero)." -#: ../Doc/c-api/init_config.rst:950 +#: ../Doc/c-api/init_config.rst:985 msgid "" "See also the :c:member:`~PyConfig.argv` member and the :c:func:" "`Py_GetArgcArgv` function." @@ -1589,16 +1629,16 @@ msgstr "" "Consulte también el miembro :c:member:`~PyConfig.argv` y la función :c:func:" "`Py_GetArgcArgv`." -#: ../Doc/c-api/init_config.rst:953 ../Doc/c-api/init_config.rst:1206 -#: ../Doc/c-api/init_config.rst:1225 +#: ../Doc/c-api/init_config.rst:988 ../Doc/c-api/init_config.rst:1258 +#: ../Doc/c-api/init_config.rst:1277 msgid "Default: empty list." msgstr "Predeterminado: lista vacía." -#: ../Doc/c-api/init_config.rst:959 +#: ../Doc/c-api/init_config.rst:994 msgid "Parse command line arguments?" msgstr "¿Analizar los argumentos de la línea de comando?" -#: ../Doc/c-api/init_config.rst:961 +#: ../Doc/c-api/init_config.rst:996 msgid "" "If equals to ``1``, parse :c:member:`~PyConfig.argv` the same way the " "regular Python parses :ref:`command line arguments `, and " @@ -1608,7 +1648,7 @@ msgstr "" "que Python normal analiza :ref:`argumentos de línea de comando ` y elimina los argumentos de Python de :c:member:`~PyConfig.argv`." -#: ../Doc/c-api/init_config.rst:973 +#: ../Doc/c-api/init_config.rst:1008 msgid "" "The :c:member:`PyConfig.argv` arguments are now only parsed if :c:member:" "`PyConfig.parse_argv` equals to ``1``." @@ -1616,7 +1656,7 @@ msgstr "" "Los argumentos :c:member:`PyConfig.argv` ahora solo se analizan si :c:member:" "`PyConfig.parse_argv` es igual a ``1``." -#: ../Doc/c-api/init_config.rst:979 +#: ../Doc/c-api/init_config.rst:1014 #, fuzzy msgid "" "Parser debug mode. If greater than ``0``, turn on parser debugging output " @@ -1626,7 +1666,7 @@ msgstr "" "depuración del analizador (solo para expertos, según las opciones de " "compilación)." -#: ../Doc/c-api/init_config.rst:982 +#: ../Doc/c-api/init_config.rst:1017 msgid "" "Incremented by the :option:`-d` command line option. Set to the :envvar:" "`PYTHONDEBUG` environment variable value." @@ -1634,7 +1674,16 @@ msgstr "" "Incrementado por la opción de línea de comando :option:`-d`. Establecido en " "el valor de la variable de entorno :envvar:`PYTHONDEBUG`." -#: ../Doc/c-api/init_config.rst:989 +#: ../Doc/c-api/init_config.rst:1020 +#, fuzzy +msgid "" +"Need a :ref:`debug build of Python ` (the ``Py_DEBUG`` macro " +"must be defined)." +msgstr "" +"Necesita una :ref:`compilación de depuración de Python ` (se " +"debe definir la macro ``Py_REF_DEBUG``)." + +#: ../Doc/c-api/init_config.rst:1027 #, fuzzy msgid "" "If non-zero, calculation of path configuration is allowed to log warnings " @@ -1644,11 +1693,11 @@ msgstr "" "Configuration ` puede registrar advertencias en " "``stderr``. Si es igual a 0, suprima estas advertencias." -#: ../Doc/c-api/init_config.rst:996 +#: ../Doc/c-api/init_config.rst:1034 msgid "Now also applies on Windows." msgstr "Ahora también se aplica en Windows." -#: ../Doc/c-api/init_config.rst:1001 +#: ../Doc/c-api/init_config.rst:1039 msgid "" "The site-specific directory prefix where the platform independent Python " "files are installed: :data:`sys.prefix`." @@ -1656,7 +1705,7 @@ msgstr "" "El prefijo de directorio específico del sitio donde se instalan los archivos " "Python independientes de la plataforma: :data:`sys.prefix`." -#: ../Doc/c-api/init_config.rst:1010 +#: ../Doc/c-api/init_config.rst:1048 msgid "" "Program name used to initialize :c:member:`~PyConfig.executable` and in " "early error messages during Python initialization." @@ -1665,17 +1714,17 @@ msgstr "" "executable` y en los primeros mensajes de error durante la inicialización de " "Python." -#: ../Doc/c-api/init_config.rst:1013 +#: ../Doc/c-api/init_config.rst:1051 msgid "If :func:`Py_SetProgramName` has been called, use its argument." msgstr "Si se ha llamado a :func:`Py_SetProgramName`, usa su argumento." -#: ../Doc/c-api/init_config.rst:1014 +#: ../Doc/c-api/init_config.rst:1052 msgid "On macOS, use :envvar:`PYTHONEXECUTABLE` environment variable if set." msgstr "" "En macOS, usa la variable de entorno :envvar:`PYTHONEXECUTABLE` si está " "configurada." -#: ../Doc/c-api/init_config.rst:1015 +#: ../Doc/c-api/init_config.rst:1053 msgid "" "If the ``WITH_NEXT_FRAMEWORK`` macro is defined, use :envvar:" "`__PYVENV_LAUNCHER__` environment variable if set." @@ -1683,14 +1732,14 @@ msgstr "" "Si se define la macro ``WITH_NEXT_FRAMEWORK``, utiliza la variable de " "entorno :envvar:`__PYVENV_LAUNCHER__` si está configurada." -#: ../Doc/c-api/init_config.rst:1017 +#: ../Doc/c-api/init_config.rst:1055 msgid "" "Use ``argv[0]`` of :c:member:`~PyConfig.argv` if available and non-empty." msgstr "" "Utiliza ``argv[0]`` de :c:member:`~PyConfig.argv` si está disponible y no " "está vacío." -#: ../Doc/c-api/init_config.rst:1019 +#: ../Doc/c-api/init_config.rst:1057 msgid "" "Otherwise, use ``L\"python\"`` on Windows, or ``L\"python3\"`` on other " "platforms." @@ -1698,7 +1747,7 @@ msgstr "" "De lo contrario, utiliza ``L\"python\"`` en Windows o ``L\"python3\"`` en " "otras plataformas." -#: ../Doc/c-api/init_config.rst:1028 +#: ../Doc/c-api/init_config.rst:1066 msgid "" "Directory where cached ``.pyc`` files are written: :data:`sys." "pycache_prefix`." @@ -1706,7 +1755,7 @@ msgstr "" "Directorio donde se escriben los archivos ``.pyc`` almacenados en caché: :" "data:`sys.pycache_prefix`." -#: ../Doc/c-api/init_config.rst:1031 +#: ../Doc/c-api/init_config.rst:1069 msgid "" "Set by the :option:`-X pycache_prefix=PATH <-X>` command line option and " "the :envvar:`PYTHONPYCACHEPREFIX` environment variable." @@ -1715,11 +1764,11 @@ msgstr "" "pycache_prefix=PATH <-X>` y la variable de entorno :envvar:" "`PYTHONPYCACHEPREFIX`." -#: ../Doc/c-api/init_config.rst:1034 +#: ../Doc/c-api/init_config.rst:1072 msgid "If ``NULL``, :data:`sys.pycache_prefix` is set to ``None``." msgstr "Si ``NULL``, :data:`sys.pycache_prefix` es establecido a ``None``." -#: ../Doc/c-api/init_config.rst:1040 +#: ../Doc/c-api/init_config.rst:1078 #, fuzzy msgid "" "Quiet mode. If greater than ``0``, don't display the copyright and version " @@ -1728,19 +1777,19 @@ msgstr "" "Modo silencioso. Si es mayor que 0, no muestre los derechos de autor y la " "versión al inicio de Python en modo interactivo." -#: ../Doc/c-api/init_config.rst:1043 +#: ../Doc/c-api/init_config.rst:1081 msgid "Incremented by the :option:`-q` command line option." msgstr "Incrementado por la opción de línea de comando :option:`-q`." -#: ../Doc/c-api/init_config.rst:1049 +#: ../Doc/c-api/init_config.rst:1087 msgid "Value of the :option:`-c` command line option." msgstr "Valor de la opción de línea de comando :option:`-c`." -#: ../Doc/c-api/init_config.rst:1051 ../Doc/c-api/init_config.rst:1072 +#: ../Doc/c-api/init_config.rst:1089 ../Doc/c-api/init_config.rst:1110 msgid "Used by :c:func:`Py_RunMain`." msgstr "Usado por :c:func:`Py_RunMain`." -#: ../Doc/c-api/init_config.rst:1057 +#: ../Doc/c-api/init_config.rst:1095 #, fuzzy msgid "" "Filename passed on the command line: trailing command line argument without :" @@ -1749,7 +1798,7 @@ msgstr "" "Nombre de archivo pasado en la línea de comando: argumento de línea de " "comando final sin :option:`-c` o :option:`-m`." -#: ../Doc/c-api/init_config.rst:1061 +#: ../Doc/c-api/init_config.rst:1099 #, fuzzy msgid "" "For example, it is set to ``script.py`` by the ``python3 script.py arg`` " @@ -1758,27 +1807,28 @@ msgstr "" "Por ejemplo, el comando ``python3 script.py arg`` lo establece en ``script." "py``." -#: ../Doc/c-api/init_config.rst:1064 +#: ../Doc/c-api/init_config.rst:1102 #, fuzzy msgid "See also the :c:member:`PyConfig.skip_source_first_line` option." msgstr "Consulte también el miembro :c:member:`~PyConfig.orig_argv`." -#: ../Doc/c-api/init_config.rst:1070 +#: ../Doc/c-api/init_config.rst:1108 msgid "Value of the :option:`-m` command line option." msgstr "Valor de la opción de línea de comando :option:`-m`." -#: ../Doc/c-api/init_config.rst:1078 -msgid "Show total reference count at exit?" +#: ../Doc/c-api/init_config.rst:1116 +#, fuzzy +msgid "Show total reference count at exit (excluding immortal objects)?" msgstr "¿Mostrar el recuento de referencia total en la salida?" -#: ../Doc/c-api/init_config.rst:1080 +#: ../Doc/c-api/init_config.rst:1118 #, fuzzy msgid "Set to ``1`` by :option:`-X showrefcount <-X>` command line option." msgstr "" "Establecido en 1 por la opción de línea de comandos :option:`-X showrefcount " "<-X>`." -#: ../Doc/c-api/init_config.rst:1082 +#: ../Doc/c-api/init_config.rst:1120 msgid "" "Need a :ref:`debug build of Python ` (the ``Py_REF_DEBUG`` " "macro must be defined)." @@ -1786,11 +1836,11 @@ msgstr "" "Necesita una :ref:`compilación de depuración de Python ` (se " "debe definir la macro ``Py_REF_DEBUG``)." -#: ../Doc/c-api/init_config.rst:1089 +#: ../Doc/c-api/init_config.rst:1127 msgid "Import the :mod:`site` module at startup?" msgstr "¿Importar el módulo :mod:`site` al inicio?" -#: ../Doc/c-api/init_config.rst:1091 +#: ../Doc/c-api/init_config.rst:1129 msgid "" "If equal to zero, disable the import of the module site and the site-" "dependent manipulations of :data:`sys.path` that it entails." @@ -1798,7 +1848,7 @@ msgstr "" "Si es igual a cero, desactive la importación del sitio del módulo y las " "manipulaciones dependientes del sitio de :data:`sys.path` que conlleva." -#: ../Doc/c-api/init_config.rst:1094 +#: ../Doc/c-api/init_config.rst:1132 msgid "" "Also disable these manipulations if the :mod:`site` module is explicitly " "imported later (call :func:`site.main` if you want them to be triggered)." @@ -1806,20 +1856,21 @@ msgstr "" "También deshabilite estas manipulaciones si el módulo :mod:`site` se importa " "explícitamente más tarde (llame a :func:`site.main` si desea que se activen)." -#: ../Doc/c-api/init_config.rst:1097 +#: ../Doc/c-api/init_config.rst:1135 msgid "Set to ``0`` by the :option:`-S` command line option." msgstr "" "Establecido en ``0`` mediante la opción de línea de comando :option:`-S`." -#: ../Doc/c-api/init_config.rst:1099 +#: ../Doc/c-api/init_config.rst:1137 +#, fuzzy msgid "" -":data:`sys.flags.no_site` is set to the inverted value of :c:member:" -"`~PyConfig.site_import`." +":data:`sys.flags.no_site ` is set to the inverted value of :c:" +"member:`~PyConfig.site_import`." msgstr "" ":data:`sys.flags.no_site` se establece en el valor invertido de :c:member:" "`~PyConfig.site_import`." -#: ../Doc/c-api/init_config.rst:1106 +#: ../Doc/c-api/init_config.rst:1144 msgid "" "If non-zero, skip the first line of the :c:member:`PyConfig.run_filename` " "source." @@ -1827,7 +1878,7 @@ msgstr "" "Si no es cero, omita la primera línea de la fuente :c:member:`PyConfig." "run_filename`." -#: ../Doc/c-api/init_config.rst:1109 +#: ../Doc/c-api/init_config.rst:1147 msgid "" "It allows the usage of non-Unix forms of ``#!cmd``. This is intended for a " "DOS specific hack only." @@ -1835,12 +1886,12 @@ msgstr "" "Permite el uso de formas de ``#!cmd`` que no son Unix. Esto está destinado " "únicamente a un truco específico de DOS." -#: ../Doc/c-api/init_config.rst:1112 +#: ../Doc/c-api/init_config.rst:1150 msgid "Set to ``1`` by the :option:`-x` command line option." msgstr "" "Establecido en ``1`` mediante la opción de línea de comando :option:`-x`." -#: ../Doc/c-api/init_config.rst:1119 +#: ../Doc/c-api/init_config.rst:1157 msgid "" "Encoding and encoding errors of :data:`sys.stdin`, :data:`sys.stdout` and :" "data:`sys.stderr` (but :data:`sys.stderr` always uses " @@ -1850,7 +1901,7 @@ msgstr "" "stdout` y :data:`sys.stderr` (pero :data:`sys.stderr` siempre usa el " "controlador de errores ``\"backslashreplace\"``)." -#: ../Doc/c-api/init_config.rst:1123 +#: ../Doc/c-api/init_config.rst:1161 msgid "" "If :c:func:`Py_SetStandardStreamEncoding` has been called, use its *error* " "and *errors* arguments if they are not ``NULL``." @@ -1858,34 +1909,34 @@ msgstr "" "Si se ha llamado a :c:func:`Py_SetStandardStreamEncoding`, utilice sus " "argumentos *error* y *errors* si no son ``NULL``." -#: ../Doc/c-api/init_config.rst:1126 +#: ../Doc/c-api/init_config.rst:1164 msgid "" "Use the :envvar:`PYTHONIOENCODING` environment variable if it is non-empty." msgstr "" "Utilice la variable de entorno :envvar:`PYTHONIOENCODING` si no está vacía." -#: ../Doc/c-api/init_config.rst:1129 +#: ../Doc/c-api/init_config.rst:1167 msgid "Default encoding:" msgstr "Codificación predeterminada:" -#: ../Doc/c-api/init_config.rst:1131 +#: ../Doc/c-api/init_config.rst:1169 msgid "``\"UTF-8\"`` if :c:member:`PyPreConfig.utf8_mode` is non-zero." msgstr "" "``\"UTF-8\"`` si :c:member:`PyPreConfig.utf8_mode` es distinto de cero." -#: ../Doc/c-api/init_config.rst:1132 +#: ../Doc/c-api/init_config.rst:1170 msgid "Otherwise, use the :term:`locale encoding`." msgstr "De lo contrario, usa el :term:`locale encoding`." -#: ../Doc/c-api/init_config.rst:1134 +#: ../Doc/c-api/init_config.rst:1172 msgid "Default error handler:" msgstr "Manejador de errores predeterminado:" -#: ../Doc/c-api/init_config.rst:1136 +#: ../Doc/c-api/init_config.rst:1174 msgid "On Windows: use ``\"surrogateescape\"``." msgstr "En Windows: use ``\"surrogateescape\"``." -#: ../Doc/c-api/init_config.rst:1137 +#: ../Doc/c-api/init_config.rst:1175 msgid "" "``\"surrogateescape\"`` if :c:member:`PyPreConfig.utf8_mode` is non-zero, or " "if the LC_CTYPE locale is \"C\" or \"POSIX\"." @@ -1893,19 +1944,19 @@ msgstr "" "``\"surrogateescape\"`` si :c:member:`PyPreConfig.utf8_mode` no es cero o si " "la configuración regional LC_CTYPE es \"C\" o \"POSIX\"." -#: ../Doc/c-api/init_config.rst:1139 +#: ../Doc/c-api/init_config.rst:1177 msgid "``\"strict\"`` otherwise." msgstr "``\"strict\"`` de lo contrario." -#: ../Doc/c-api/init_config.rst:1143 +#: ../Doc/c-api/init_config.rst:1181 msgid "Enable tracemalloc?" msgstr "¿Habilitar tracemalloc?" -#: ../Doc/c-api/init_config.rst:1145 +#: ../Doc/c-api/init_config.rst:1183 msgid "If non-zero, call :func:`tracemalloc.start` at startup." msgstr "Si no es cero, llama a :func:`tracemalloc.start` al inicio." -#: ../Doc/c-api/init_config.rst:1147 +#: ../Doc/c-api/init_config.rst:1185 msgid "" "Set by :option:`-X tracemalloc=N <-X>` command line option and by the :" "envvar:`PYTHONTRACEMALLOC` environment variable." @@ -1913,11 +1964,35 @@ msgstr "" "Establecido por la opción de línea de comando :option:`-X tracemalloc=N <-" "X>` y por la variable de entorno :envvar:`PYTHONTRACEMALLOC`." -#: ../Doc/c-api/init_config.rst:1154 +#: ../Doc/c-api/init_config.rst:1192 +msgid "Enable compatibility mode with the perf profiler?" +msgstr "" + +#: ../Doc/c-api/init_config.rst:1194 +msgid "" +"If non-zero, initialize the perf trampoline. See :ref:`perf_profiling` for " +"more information." +msgstr "" + +#: ../Doc/c-api/init_config.rst:1197 +#, fuzzy +msgid "" +"Set by :option:`-X perf <-X>` command line option and by the :envvar:" +"`PYTHONPERFSUPPORT` environment variable." +msgstr "" +"Establecido por la opción de línea de comando :option:`-X tracemalloc=N <-" +"X>` y por la variable de entorno :envvar:`PYTHONTRACEMALLOC`." + +#: ../Doc/c-api/init_config.rst:1200 +#, fuzzy +msgid "Default: ``-1``." +msgstr "Predeterminado: ``1``." + +#: ../Doc/c-api/init_config.rst:1206 msgid "Use :ref:`environment variables `?" msgstr "¿Utiliza :ref:`variables de entorno `?" -#: ../Doc/c-api/init_config.rst:1156 +#: ../Doc/c-api/init_config.rst:1208 msgid "" "If equals to zero, ignore the :ref:`environment variables `." @@ -1925,30 +2000,30 @@ msgstr "" "Si es igual a cero, ignora las :ref:`variables de entorno `." -#: ../Doc/c-api/init_config.rst:1159 +#: ../Doc/c-api/init_config.rst:1211 #, fuzzy msgid "Set to ``0`` by the :option:`-E` environment variable." msgstr "" "Establecido en ``0`` por la variable de entorno :envvar:`PYTHONNOUSERSITE`." -#: ../Doc/c-api/init_config.rst:1165 +#: ../Doc/c-api/init_config.rst:1217 msgid "If non-zero, add the user site directory to :data:`sys.path`." msgstr "" "Si es distinto de cero, agregue el directorio del sitio del usuario a :data:" "`sys.path`." -#: ../Doc/c-api/init_config.rst:1167 +#: ../Doc/c-api/init_config.rst:1219 msgid "Set to ``0`` by the :option:`-s` and :option:`-I` command line options." msgstr "" "Establecido en ``0`` por las opciones de línea de comando :option:`-s` y :" "option:`-I`." -#: ../Doc/c-api/init_config.rst:1169 +#: ../Doc/c-api/init_config.rst:1221 msgid "Set to ``0`` by the :envvar:`PYTHONNOUSERSITE` environment variable." msgstr "" "Establecido en ``0`` por la variable de entorno :envvar:`PYTHONNOUSERSITE`." -#: ../Doc/c-api/init_config.rst:1175 +#: ../Doc/c-api/init_config.rst:1227 #, fuzzy msgid "" "Verbose mode. If greater than ``0``, print a message each time a module is " @@ -1959,27 +2034,28 @@ msgstr "" "importe un módulo, mostrando el lugar (nombre de archivo o módulo integrado) " "desde el que se carga." -#: ../Doc/c-api/init_config.rst:1179 +#: ../Doc/c-api/init_config.rst:1231 #, fuzzy msgid "" -"If greater or equal to ``2``, print a message for each file that is checked " -"for when searching for a module. Also provides information on module cleanup " -"at exit." +"If greater than or equal to ``2``, print a message for each file that is " +"checked for when searching for a module. Also provides information on module " +"cleanup at exit." msgstr "" "Si es mayor o igual a 2, imprima un mensaje para cada archivo que se " "compruebe al buscar un módulo. También proporciona información sobre la " "limpieza del módulo al salir." -#: ../Doc/c-api/init_config.rst:1183 +#: ../Doc/c-api/init_config.rst:1235 msgid "Incremented by the :option:`-v` command line option." msgstr "Incrementado por la opción de línea de comando :option:`-v`." -#: ../Doc/c-api/init_config.rst:1185 -msgid "Set to the :envvar:`PYTHONVERBOSE` environment variable value." +#: ../Doc/c-api/init_config.rst:1237 +#, fuzzy +msgid "Set by the :envvar:`PYTHONVERBOSE` environment variable value." msgstr "" "Establecido en el valor de la variable de entorno :envvar:`PYTHONVERBOSE`." -#: ../Doc/c-api/init_config.rst:1191 +#: ../Doc/c-api/init_config.rst:1243 msgid "" "Options of the :mod:`warnings` module to build warnings filters, lowest to " "highest priority: :data:`sys.warnoptions`." @@ -1987,7 +2063,7 @@ msgstr "" "Opciones del módulo :mod:`warnings` para crear filtros de advertencias, de " "menor a mayor prioridad: :data:`sys.warnoptions`." -#: ../Doc/c-api/init_config.rst:1194 +#: ../Doc/c-api/init_config.rst:1246 msgid "" "The :mod:`warnings` module adds :data:`sys.warnoptions` in the reverse " "order: the last :c:member:`PyConfig.warnoptions` item becomes the first item " @@ -1998,7 +2074,7 @@ msgstr "" "el primer elemento de :data:`warnings.filters` que es verificado primero " "(máxima prioridad)." -#: ../Doc/c-api/init_config.rst:1199 +#: ../Doc/c-api/init_config.rst:1251 msgid "" "The :option:`-W` command line options adds its value to :c:member:`~PyConfig." "warnoptions`, it can be used multiple times." @@ -2006,7 +2082,7 @@ msgstr "" "Las opciones de la línea de comando :option:`-W` agregan su valor a :c:" "member:`~PyConfig.warnoptions`, se puede usar varias veces." -#: ../Doc/c-api/init_config.rst:1202 +#: ../Doc/c-api/init_config.rst:1254 msgid "" "The :envvar:`PYTHONWARNINGS` environment variable can also be used to add " "warning options. Multiple options can be specified, separated by commas (``," @@ -2016,7 +2092,7 @@ msgstr "" "para agregar opciones de advertencia. Se pueden especificar varias opciones, " "separadas por comas (``,``)." -#: ../Doc/c-api/init_config.rst:1210 +#: ../Doc/c-api/init_config.rst:1262 #, fuzzy msgid "" "If equal to ``0``, Python won't try to write ``.pyc`` files on the import of " @@ -2025,7 +2101,7 @@ msgstr "" "Si es igual a 0, Python no intentará escribir archivos ``.pyc`` en la " "importación de módulos fuente." -#: ../Doc/c-api/init_config.rst:1213 +#: ../Doc/c-api/init_config.rst:1265 msgid "" "Set to ``0`` by the :option:`-B` command line option and the :envvar:" "`PYTHONDONTWRITEBYTECODE` environment variable." @@ -2033,7 +2109,7 @@ msgstr "" "Establecido en ``0`` por la opción de línea de comando :option:`-B` y la " "variable de entorno :envvar:`PYTHONDONTWRITEBYTECODE`." -#: ../Doc/c-api/init_config.rst:1216 +#: ../Doc/c-api/init_config.rst:1268 msgid "" ":data:`sys.dont_write_bytecode` is initialized to the inverted value of :c:" "member:`~PyConfig.write_bytecode`." @@ -2041,13 +2117,13 @@ msgstr "" ":data:`sys.dont_write_bytecode` se inicializa al valor invertido de :c:" "member:`~PyConfig.write_bytecode`." -#: ../Doc/c-api/init_config.rst:1223 +#: ../Doc/c-api/init_config.rst:1275 msgid "Values of the :option:`-X` command line options: :data:`sys._xoptions`." msgstr "" "Valores de las opciones de la línea de comando :option:`-X`: :data:`sys." "_xoptions`." -#: ../Doc/c-api/init_config.rst:1227 +#: ../Doc/c-api/init_config.rst:1279 msgid "" "If :c:member:`~PyConfig.parse_argv` is non-zero, :c:member:`~PyConfig.argv` " "arguments are parsed the same way the regular Python parses :ref:`command " @@ -2059,7 +2135,7 @@ msgstr "" "ref:`argumentos de línea de comando `, y los argumentos de " "Python se eliminan de :c:member:`~PyConfig.argv`." -#: ../Doc/c-api/init_config.rst:1232 +#: ../Doc/c-api/init_config.rst:1284 msgid "" "The :c:member:`~PyConfig.xoptions` options are parsed to set other options: " "see the :option:`-X` command line option." @@ -2067,23 +2143,23 @@ msgstr "" "Las opciones de :c:member:`~PyConfig.xoptions` se analizan para establecer " "otras opciones: consulte la opción de línea de comando :option:`-X`." -#: ../Doc/c-api/init_config.rst:1237 +#: ../Doc/c-api/init_config.rst:1289 msgid "The ``show_alloc_count`` field has been removed." msgstr "El campo ``show_alloc_count`` fue removido." -#: ../Doc/c-api/init_config.rst:1241 +#: ../Doc/c-api/init_config.rst:1293 msgid "Initialization with PyConfig" msgstr "Inicialización con PyConfig" -#: ../Doc/c-api/init_config.rst:1243 +#: ../Doc/c-api/init_config.rst:1295 msgid "Function to initialize Python:" msgstr "Función para inicializar Python:" -#: ../Doc/c-api/init_config.rst:1247 +#: ../Doc/c-api/init_config.rst:1299 msgid "Initialize Python from *config* configuration." msgstr "Inicializa Python desde la configuración *config*." -#: ../Doc/c-api/init_config.rst:1252 +#: ../Doc/c-api/init_config.rst:1304 msgid "" "If :c:func:`PyImport_FrozenModules`, :c:func:`PyImport_AppendInittab` or :c:" "func:`PyImport_ExtendInittab` are used, they must be set or called after " @@ -2098,7 +2174,7 @@ msgstr "" "llamar a :c:func:`PyImport_AppendInittab` o :c:func:`PyImport_ExtendInittab` " "antes de cada inicialización de Python." -#: ../Doc/c-api/init_config.rst:1259 +#: ../Doc/c-api/init_config.rst:1311 msgid "" "The current configuration (``PyConfig`` type) is stored in " "``PyInterpreterState.config``." @@ -2106,11 +2182,11 @@ msgstr "" "La configuración actual (tipo ``PyConfig``) se almacena en " "``PyInterpreterState.config``." -#: ../Doc/c-api/init_config.rst:1262 +#: ../Doc/c-api/init_config.rst:1314 msgid "Example setting the program name::" msgstr "Ejemplo de configuración del nombre del programa::" -#: ../Doc/c-api/init_config.rst:1290 +#: ../Doc/c-api/init_config.rst:1342 #, fuzzy msgid "" "More complete example modifying the default configuration, read the " @@ -2126,11 +2202,11 @@ msgstr "" "configuración. Cualquier valor establecido antes de llamar a la " "inicialización se dejará sin modificar por initialization::" -#: ../Doc/c-api/init_config.rst:1353 +#: ../Doc/c-api/init_config.rst:1405 msgid "Isolated Configuration" msgstr "Configuración aislada" -#: ../Doc/c-api/init_config.rst:1355 +#: ../Doc/c-api/init_config.rst:1407 msgid "" ":c:func:`PyPreConfig_InitIsolatedConfig` and :c:func:" "`PyConfig_InitIsolatedConfig` functions create a configuration to isolate " @@ -2140,7 +2216,7 @@ msgstr "" "`PyConfig_InitIsolatedConfig` crean una configuración para aislar Python del " "sistema. Por ejemplo, para incrustar Python en una aplicación." -#: ../Doc/c-api/init_config.rst:1360 +#: ../Doc/c-api/init_config.rst:1412 #, fuzzy msgid "" "This configuration ignores global configuration variables, environment " @@ -2154,7 +2230,7 @@ msgstr "" "transmisiones estándar C (por ejemplo, ``stdout``) y el entorno local " "LC_CTYPE no se modifican. Los manejadores de señal no están instalados." -#: ../Doc/c-api/init_config.rst:1365 +#: ../Doc/c-api/init_config.rst:1417 msgid "" "Configuration files are still used with this configuration to determine " "paths that are unspecified. Ensure :c:member:`PyConfig.home` is specified to " @@ -2165,11 +2241,11 @@ msgstr "" "especifica :c:member:`PyConfig.home` para evitar que se calcule la " "configuración de la ruta por defecto." -#: ../Doc/c-api/init_config.rst:1373 +#: ../Doc/c-api/init_config.rst:1425 msgid "Python Configuration" msgstr "Configuración de Python" -#: ../Doc/c-api/init_config.rst:1375 +#: ../Doc/c-api/init_config.rst:1427 msgid "" ":c:func:`PyPreConfig_InitPythonConfig` and :c:func:" "`PyConfig_InitPythonConfig` functions create a configuration to build a " @@ -2179,7 +2255,7 @@ msgstr "" "`PyConfig_InitPythonConfig` crean una configuración para construir un Python " "personalizado que se comporta como el Python normal." -#: ../Doc/c-api/init_config.rst:1379 +#: ../Doc/c-api/init_config.rst:1431 msgid "" "Environments variables and command line arguments are used to configure " "Python, whereas global configuration variables are ignored." @@ -2188,7 +2264,7 @@ msgstr "" "utilizan para configurar Python, mientras que las variables de configuración " "global se ignoran." -#: ../Doc/c-api/init_config.rst:1382 +#: ../Doc/c-api/init_config.rst:1434 msgid "" "This function enables C locale coercion (:pep:`538`) and :ref:`Python UTF-8 " "Mode ` (:pep:`540`) depending on the LC_CTYPE locale, :envvar:" @@ -2199,44 +2275,44 @@ msgstr "" "regional LC_CTYPE, las variables de entorno :envvar:`PYTHONUTF8` y :envvar:" "`PYTHONCOERCECLOCALE`." -#: ../Doc/c-api/init_config.rst:1391 +#: ../Doc/c-api/init_config.rst:1443 msgid "Python Path Configuration" msgstr "Configuración de la ruta de Python" -#: ../Doc/c-api/init_config.rst:1393 +#: ../Doc/c-api/init_config.rst:1445 msgid ":c:type:`PyConfig` contains multiple fields for the path configuration:" msgstr "" ":c:type:`PyConfig` contiene múltiples campos para la configuración de ruta:" -#: ../Doc/c-api/init_config.rst:1395 +#: ../Doc/c-api/init_config.rst:1447 msgid "Path configuration inputs:" msgstr "Entradas de configuración de ruta:" -#: ../Doc/c-api/init_config.rst:1397 +#: ../Doc/c-api/init_config.rst:1449 msgid ":c:member:`PyConfig.home`" msgstr ":c:member:`PyConfig.home`" -#: ../Doc/c-api/init_config.rst:1398 +#: ../Doc/c-api/init_config.rst:1450 msgid ":c:member:`PyConfig.platlibdir`" msgstr ":c:member:`PyConfig.platlibdir`" -#: ../Doc/c-api/init_config.rst:1399 +#: ../Doc/c-api/init_config.rst:1451 msgid ":c:member:`PyConfig.pathconfig_warnings`" msgstr ":c:member:`PyConfig.pathconfig_warnings`" -#: ../Doc/c-api/init_config.rst:1400 +#: ../Doc/c-api/init_config.rst:1452 msgid ":c:member:`PyConfig.program_name`" msgstr ":c:member:`PyConfig.program_name`" -#: ../Doc/c-api/init_config.rst:1401 +#: ../Doc/c-api/init_config.rst:1453 msgid ":c:member:`PyConfig.pythonpath_env`" msgstr ":c:member:`PyConfig.pythonpath_env`" -#: ../Doc/c-api/init_config.rst:1402 +#: ../Doc/c-api/init_config.rst:1454 msgid "current working directory: to get absolute paths" msgstr "directorio de trabajo actual: para obtener rutas absolutas" -#: ../Doc/c-api/init_config.rst:1403 +#: ../Doc/c-api/init_config.rst:1455 msgid "" "``PATH`` environment variable to get the program full path (from :c:member:" "`PyConfig.program_name`)" @@ -2244,11 +2320,11 @@ msgstr "" "Variable de entorno ``PATH`` para obtener la ruta completa del programa (de :" "c:member:`PyConfig.program_name`)" -#: ../Doc/c-api/init_config.rst:1405 +#: ../Doc/c-api/init_config.rst:1457 msgid "``__PYVENV_LAUNCHER__`` environment variable" msgstr "Variable de entorno ``__PYVENV_LAUNCHER__``" -#: ../Doc/c-api/init_config.rst:1406 +#: ../Doc/c-api/init_config.rst:1458 msgid "" "(Windows only) Application paths in the registry under " "\"Software\\Python\\PythonCore\\X.Y\\PythonPath\" of HKEY_CURRENT_USER and " @@ -2258,31 +2334,31 @@ msgstr "" "\"Software\\Python\\PythonCore\\X.Y\\PythonPath\" de HKEY_CURRENT_USER y " "HKEY_LOCAL_MACHINE (donde X.Y es la versión de Python)." -#: ../Doc/c-api/init_config.rst:1410 +#: ../Doc/c-api/init_config.rst:1462 msgid "Path configuration output fields:" msgstr "Campos de salida de configuración de ruta:" -#: ../Doc/c-api/init_config.rst:1412 +#: ../Doc/c-api/init_config.rst:1464 msgid ":c:member:`PyConfig.base_exec_prefix`" msgstr ":c:member:`PyConfig.base_exec_prefix`" -#: ../Doc/c-api/init_config.rst:1413 +#: ../Doc/c-api/init_config.rst:1465 msgid ":c:member:`PyConfig.base_executable`" msgstr ":c:member:`PyConfig.base_executable`" -#: ../Doc/c-api/init_config.rst:1414 +#: ../Doc/c-api/init_config.rst:1466 msgid ":c:member:`PyConfig.base_prefix`" msgstr ":c:member:`PyConfig.base_prefix`" -#: ../Doc/c-api/init_config.rst:1415 +#: ../Doc/c-api/init_config.rst:1467 msgid ":c:member:`PyConfig.exec_prefix`" msgstr ":c:member:`PyConfig.exec_prefix`" -#: ../Doc/c-api/init_config.rst:1416 +#: ../Doc/c-api/init_config.rst:1468 msgid ":c:member:`PyConfig.executable`" msgstr ":c:member:`PyConfig.executable`" -#: ../Doc/c-api/init_config.rst:1417 +#: ../Doc/c-api/init_config.rst:1469 msgid "" ":c:member:`PyConfig.module_search_paths_set`, :c:member:`PyConfig." "module_search_paths`" @@ -2290,11 +2366,11 @@ msgstr "" ":c:member:`PyConfig.module_search_paths_set`, :c:member:`PyConfig." "module_search_paths`" -#: ../Doc/c-api/init_config.rst:1419 +#: ../Doc/c-api/init_config.rst:1471 msgid ":c:member:`PyConfig.prefix`" msgstr ":c:member:`PyConfig.prefix`" -#: ../Doc/c-api/init_config.rst:1421 +#: ../Doc/c-api/init_config.rst:1473 msgid "" "If at least one \"output field\" is not set, Python calculates the path " "configuration to fill unset fields. If :c:member:`~PyConfig." @@ -2308,7 +2384,7 @@ msgstr "" "`~PyConfig.module_search_paths` se anula y :c:member:`~PyConfig." "module_search_paths_set` se establece en ``1``." -#: ../Doc/c-api/init_config.rst:1427 +#: ../Doc/c-api/init_config.rst:1479 #, fuzzy msgid "" "It is possible to completely ignore the function calculating the default " @@ -2326,7 +2402,7 @@ msgstr "" "``module_search_paths_set`` se establece en 1. En este caso, los campos de " "entrada de configuración de ruta también se ignoran." -#: ../Doc/c-api/init_config.rst:1434 +#: ../Doc/c-api/init_config.rst:1486 #, fuzzy msgid "" "Set :c:member:`~PyConfig.pathconfig_warnings` to ``0`` to suppress warnings " @@ -2337,7 +2413,7 @@ msgstr "" "advertencias al calcular la configuración de la ruta (solo Unix, Windows no " "registra ninguna advertencia)." -#: ../Doc/c-api/init_config.rst:1437 +#: ../Doc/c-api/init_config.rst:1489 msgid "" "If :c:member:`~PyConfig.base_prefix` or :c:member:`~PyConfig." "base_exec_prefix` fields are not set, they inherit their value from :c:" @@ -2347,11 +2423,11 @@ msgstr "" "base_exec_prefix` no están establecidos, heredan su valor de :c:member:" "`~PyConfig.prefix` y :c:member:`~PyConfig.exec_prefix` respectivamente." -#: ../Doc/c-api/init_config.rst:1441 +#: ../Doc/c-api/init_config.rst:1493 msgid ":c:func:`Py_RunMain` and :c:func:`Py_Main` modify :data:`sys.path`:" msgstr ":c:func:`Py_RunMain` y :c:func:`Py_Main` modifican :data:`sys.path`:" -#: ../Doc/c-api/init_config.rst:1443 +#: ../Doc/c-api/init_config.rst:1495 msgid "" "If :c:member:`~PyConfig.run_filename` is set and is a directory which " "contains a ``__main__.py`` script, prepend :c:member:`~PyConfig." @@ -2361,11 +2437,11 @@ msgstr "" "que contiene un script ``__main__.py``, anteponga :c:member:`~PyConfig." "run_filename` a :data:`sys.path`." -#: ../Doc/c-api/init_config.rst:1446 +#: ../Doc/c-api/init_config.rst:1498 msgid "If :c:member:`~PyConfig.isolated` is zero:" msgstr "Si :c:member:`~PyConfig.isolated` es cero:" -#: ../Doc/c-api/init_config.rst:1448 +#: ../Doc/c-api/init_config.rst:1500 msgid "" "If :c:member:`~PyConfig.run_module` is set, prepend the current directory " "to :data:`sys.path`. Do nothing if the current directory cannot be read." @@ -2374,7 +2450,7 @@ msgstr "" "directorio actual a :data:`sys.path`. No haga nada si el directorio actual " "no se puede leer." -#: ../Doc/c-api/init_config.rst:1450 +#: ../Doc/c-api/init_config.rst:1502 msgid "" "If :c:member:`~PyConfig.run_filename` is set, prepend the directory of the " "filename to :data:`sys.path`." @@ -2382,12 +2458,12 @@ msgstr "" "Si :c:member:`~PyConfig.run_filename` está configurado, anteponga el " "directorio del nombre del archivo a :data:`sys.path`." -#: ../Doc/c-api/init_config.rst:1452 +#: ../Doc/c-api/init_config.rst:1504 msgid "Otherwise, prepend an empty string to :data:`sys.path`." msgstr "" "De lo contrario, anteponga una cadena de caracteres vacía a :data:`sys.path`." -#: ../Doc/c-api/init_config.rst:1454 +#: ../Doc/c-api/init_config.rst:1506 msgid "" "If :c:member:`~PyConfig.site_import` is non-zero, :data:`sys.path` can be " "modified by the :mod:`site` module. If :c:member:`~PyConfig." @@ -2401,43 +2477,48 @@ msgstr "" "usuario existe, el módulo :mod:`site` agrega el directorio del paquete del " "sitio del usuario a :data:`sys.path`." -#: ../Doc/c-api/init_config.rst:1460 +#: ../Doc/c-api/init_config.rst:1512 msgid "The following configuration files are used by the path configuration:" msgstr "" "La configuración de ruta utiliza los siguientes archivos de configuración:" -#: ../Doc/c-api/init_config.rst:1462 +#: ../Doc/c-api/init_config.rst:1514 msgid "``pyvenv.cfg``" msgstr "``pyvenv.cfg``" -#: ../Doc/c-api/init_config.rst:1463 +#: ../Doc/c-api/init_config.rst:1515 msgid "``._pth`` file (ex: ``python._pth``)" msgstr "archivo ``._pth`` (ej: ``python._pth``)" -#: ../Doc/c-api/init_config.rst:1464 +#: ../Doc/c-api/init_config.rst:1516 msgid "``pybuilddir.txt`` (Unix only)" msgstr "``pybuilddir.txt`` (sólo Unix)" -#: ../Doc/c-api/init_config.rst:1466 +#: ../Doc/c-api/init_config.rst:1518 msgid "If a ``._pth`` file is present:" msgstr "Si un archivo ``._pth`` está presente:" -#: ../Doc/c-api/init_config.rst:1468 +#: ../Doc/c-api/init_config.rst:1520 #, fuzzy msgid "Set :c:member:`~PyConfig.isolated` to ``1``." msgstr ":c:member:`PyConfig.isolated`" -#: ../Doc/c-api/init_config.rst:1470 +#: ../Doc/c-api/init_config.rst:1521 +#, fuzzy +msgid "Set :c:member:`~PyConfig.use_environment` to ``0``." +msgstr ":c:member:`PyConfig.use_environment`" + +#: ../Doc/c-api/init_config.rst:1522 #, fuzzy msgid "Set :c:member:`~PyConfig.site_import` to ``0``." msgstr "Establezca :c:member:`PyPreConfig.utf8_mode` en ``0``," -#: ../Doc/c-api/init_config.rst:1471 +#: ../Doc/c-api/init_config.rst:1523 #, fuzzy msgid "Set :c:member:`~PyConfig.safe_path` to ``1``." msgstr "Establezca :c:member:`PyPreConfig.utf8_mode` en ``0``," -#: ../Doc/c-api/init_config.rst:1473 +#: ../Doc/c-api/init_config.rst:1525 msgid "" "The ``__PYVENV_LAUNCHER__`` environment variable is used to set :c:member:" "`PyConfig.base_executable`" @@ -2445,11 +2526,11 @@ msgstr "" "La variable de entorno ``__PYVENV_LAUNCHER__`` se usa para establecer :c:" "member:`PyConfig.base_executable`" -#: ../Doc/c-api/init_config.rst:1478 +#: ../Doc/c-api/init_config.rst:1530 msgid "Py_RunMain()" msgstr "Py_RunMain()" -#: ../Doc/c-api/init_config.rst:1482 +#: ../Doc/c-api/init_config.rst:1534 msgid "" "Execute the command (:c:member:`PyConfig.run_command`), the script (:c:" "member:`PyConfig.run_filename`) or the module (:c:member:`PyConfig." @@ -2459,11 +2540,11 @@ msgstr "" "`PyConfig.run_filename`) o el módulo (:c:member:`PyConfig.run_module`) " "especificado en la línea de comando o en la configuración." -#: ../Doc/c-api/init_config.rst:1487 +#: ../Doc/c-api/init_config.rst:1539 msgid "By default and when if :option:`-i` option is used, run the REPL." msgstr "Por defecto y cuando se usa la opción :option:`-i`, ejecuta el REPL." -#: ../Doc/c-api/init_config.rst:1489 +#: ../Doc/c-api/init_config.rst:1541 msgid "" "Finally, finalizes Python and returns an exit status that can be passed to " "the ``exit()`` function." @@ -2471,7 +2552,7 @@ msgstr "" "Finalmente, finaliza Python y retorna un estado de salida que se puede pasar " "a la función ``exit()``." -#: ../Doc/c-api/init_config.rst:1492 +#: ../Doc/c-api/init_config.rst:1544 msgid "" "See :ref:`Python Configuration ` for an example of " "customized Python always running in isolated mode using :c:func:`Py_RunMain`." @@ -2480,25 +2561,25 @@ msgstr "" "ejemplo de Python personalizado que siempre se ejecuta en modo aislado " "usando :c:func:`Py_RunMain`." -#: ../Doc/c-api/init_config.rst:1498 +#: ../Doc/c-api/init_config.rst:1550 msgid "Py_GetArgcArgv()" msgstr "Py_GetArgcArgv()" -#: ../Doc/c-api/init_config.rst:1502 +#: ../Doc/c-api/init_config.rst:1554 msgid "Get the original command line arguments, before Python modified them." msgstr "" "Obtiene los argumentos originales de la línea de comandos, antes de que " "Python los modificara." -#: ../Doc/c-api/init_config.rst:1504 +#: ../Doc/c-api/init_config.rst:1556 msgid "See also :c:member:`PyConfig.orig_argv` member." msgstr "Ver también el miembro :c:member:`PyConfig.orig_argv`." -#: ../Doc/c-api/init_config.rst:1508 +#: ../Doc/c-api/init_config.rst:1560 msgid "Multi-Phase Initialization Private Provisional API" msgstr "API Provisional Privada de Inicialización Multifásica" -#: ../Doc/c-api/init_config.rst:1510 +#: ../Doc/c-api/init_config.rst:1562 #, fuzzy msgid "" "This section is a private provisional API introducing multi-phase " @@ -2507,23 +2588,23 @@ msgstr "" "Esta sección es una API provisional privada que presenta la inicialización " "de múltiples fases, la característica principal de :pep:`432`:" -#: ../Doc/c-api/init_config.rst:1513 +#: ../Doc/c-api/init_config.rst:1565 msgid "\"Core\" initialization phase, \"bare minimum Python\":" msgstr "Fase de inicialización \"Core\", \"Python mínimo\":" -#: ../Doc/c-api/init_config.rst:1515 +#: ../Doc/c-api/init_config.rst:1567 msgid "Builtin types;" msgstr "Tipos incorporados;" -#: ../Doc/c-api/init_config.rst:1516 +#: ../Doc/c-api/init_config.rst:1568 msgid "Builtin exceptions;" msgstr "Excepciones incorporadas;" -#: ../Doc/c-api/init_config.rst:1517 +#: ../Doc/c-api/init_config.rst:1569 msgid "Builtin and frozen modules;" msgstr "Módulos incorporados y congelados;" -#: ../Doc/c-api/init_config.rst:1518 +#: ../Doc/c-api/init_config.rst:1570 msgid "" "The :mod:`sys` module is only partially initialized (ex: :data:`sys.path` " "doesn't exist yet)." @@ -2531,24 +2612,24 @@ msgstr "" "El módulo :mod:`sys` solo se inicializa parcialmente (por ejemplo :data:`sys." "path` aún no existe)." -#: ../Doc/c-api/init_config.rst:1521 +#: ../Doc/c-api/init_config.rst:1573 msgid "\"Main\" initialization phase, Python is fully initialized:" msgstr "" "Fase de inicialización \"principal\", Python está completamente inicializado:" -#: ../Doc/c-api/init_config.rst:1523 +#: ../Doc/c-api/init_config.rst:1575 msgid "Install and configure :mod:`importlib`;" msgstr "Instala y configura :mod:`importlib`;" -#: ../Doc/c-api/init_config.rst:1524 +#: ../Doc/c-api/init_config.rst:1576 msgid "Apply the :ref:`Path Configuration `;" msgstr "Aplique la :ref:`Configuración de ruta `;" -#: ../Doc/c-api/init_config.rst:1525 +#: ../Doc/c-api/init_config.rst:1577 msgid "Install signal handlers;" msgstr "Instala manejadores de señal;" -#: ../Doc/c-api/init_config.rst:1526 +#: ../Doc/c-api/init_config.rst:1578 msgid "" "Finish :mod:`sys` module initialization (ex: create :data:`sys.stdout` and :" "data:`sys.path`);" @@ -2556,26 +2637,26 @@ msgstr "" "Finaliza la inicialización del módulo :mod:`sys` (por ejemplo: crea :data:" "`sys.stdout` y :data:`sys.path`);" -#: ../Doc/c-api/init_config.rst:1528 +#: ../Doc/c-api/init_config.rst:1580 msgid "" "Enable optional features like :mod:`faulthandler` and :mod:`tracemalloc`;" msgstr "" "Habilita características opcionales como :mod:`faulthandler` y :mod:" "`tracemalloc`;" -#: ../Doc/c-api/init_config.rst:1529 +#: ../Doc/c-api/init_config.rst:1581 msgid "Import the :mod:`site` module;" msgstr "Importe el módulo :mod:`site`;" -#: ../Doc/c-api/init_config.rst:1530 +#: ../Doc/c-api/init_config.rst:1582 msgid "etc." msgstr "etc." -#: ../Doc/c-api/init_config.rst:1532 +#: ../Doc/c-api/init_config.rst:1584 msgid "Private provisional API:" msgstr "API provisional privada:" -#: ../Doc/c-api/init_config.rst:1534 +#: ../Doc/c-api/init_config.rst:1586 #, fuzzy msgid "" ":c:member:`PyConfig._init_main`: if set to ``0``, :c:func:" @@ -2584,22 +2665,14 @@ msgstr "" ":c:member:`PyConfig._init_main`: si se establece en 0, :c:func:" "`Py_InitializeFromConfig` se detiene en la fase de inicialización \"Core\"." -#: ../Doc/c-api/init_config.rst:1536 -msgid "" -":c:member:`PyConfig._isolated_interpreter`: if non-zero, disallow threads, " -"subprocesses and fork." -msgstr "" -":c:member:`PyConfig._isolated_interpreter`: si no es cero, no permite hilos, " -"subprocesos y bifurcaciones." - -#: ../Doc/c-api/init_config.rst:1541 +#: ../Doc/c-api/init_config.rst:1591 msgid "" "Move to the \"Main\" initialization phase, finish the Python initialization." msgstr "" "Vaya a la fase de inicialización \"Principal\", finalice la inicialización " "de Python." -#: ../Doc/c-api/init_config.rst:1543 +#: ../Doc/c-api/init_config.rst:1593 msgid "" "No module is imported during the \"Core\" phase and the ``importlib`` module " "is not configured: the :ref:`Path Configuration ` is only " @@ -2614,9 +2687,10 @@ msgstr "" "ruta `, tal vez instale un importador personalizado :data:" "`sys.meta_path` o un enlace de importación, etc." -#: ../Doc/c-api/init_config.rst:1549 +#: ../Doc/c-api/init_config.rst:1599 +#, fuzzy msgid "" -"It may become possible to calculatin the :ref:`Path Configuration ` in Python, after the Core phase and before the Main phase, which is " "one of the :pep:`432` motivation." msgstr "" @@ -2624,7 +2698,7 @@ msgstr "" "en Python, después de la fase Core y antes de la fase Main, que es una de " "las motivaciones :pep:`432`." -#: ../Doc/c-api/init_config.rst:1553 +#: ../Doc/c-api/init_config.rst:1603 msgid "" "The \"Core\" phase is not properly defined: what should be and what should " "not be available at this phase is not specified yet. The API is marked as " @@ -2637,10 +2711,20 @@ msgstr "" "incluso eliminar en cualquier momento hasta que se diseñe una API pública " "adecuada." -#: ../Doc/c-api/init_config.rst:1558 +#: ../Doc/c-api/init_config.rst:1608 msgid "" "Example running Python code between \"Core\" and \"Main\" initialization " "phases::" msgstr "" "Ejemplo de ejecución de código Python entre las fases de inicialización " "\"Core\" y \"Main\"::" + +#~ msgid "See also :c:member:`PyPreConfig.isolated`." +#~ msgstr "Ver también :c:member:`PyPreConfig.isolated`." + +#~ msgid "" +#~ ":c:member:`PyConfig._isolated_interpreter`: if non-zero, disallow " +#~ "threads, subprocesses and fork." +#~ msgstr "" +#~ ":c:member:`PyConfig._isolated_interpreter`: si no es cero, no permite " +#~ "hilos, subprocesos y bifurcaciones." diff --git a/c-api/intro.po b/c-api/intro.po index a2186fe7aa..697f189be0 100644 --- a/c-api/intro.po +++ b/c-api/intro.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-14 17:55-0500\n" "Last-Translator: David Orejuela \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/intro.rst:8 msgid "Introduction" @@ -165,15 +164,15 @@ msgstr "" "nombres adicionales que comienzan con uno de estos prefijos." #: ../Doc/c-api/intro.rst:79 -#, python-format +#, fuzzy, python-format msgid "" "The header files are typically installed with Python. On Unix, these are " "located in the directories :file:`{prefix}/include/pythonversion/` and :file:" -"`{exec_prefix}/include/pythonversion/`, where :envvar:`prefix` and :envvar:" -"`exec_prefix` are defined by the corresponding parameters to Python's :" -"program:`configure` script and *version* is ``'%d.%d' % sys." -"version_info[:2]``. On Windows, the headers are installed in :file:" -"`{prefix}/include`, where :envvar:`prefix` is the installation directory " +"`{exec_prefix}/include/pythonversion/`, where :option:`prefix <--prefix>` " +"and :option:`exec_prefix <--exec-prefix>` are defined by the corresponding " +"parameters to Python's :program:`configure` script and *version* is ``'%d." +"%d' % sys.version_info[:2]``. On Windows, the headers are installed in :" +"file:`{prefix}/include`, where ``prefix`` is the installation directory " "specified to the installer." msgstr "" "Los archivos de encabezado generalmente se instalan con Python. En Unix, " @@ -186,13 +185,14 @@ msgstr "" "especificado para el instalador." #: ../Doc/c-api/intro.rst:88 +#, fuzzy msgid "" "To include the headers, place both directories (if different) on your " "compiler's search path for includes. Do *not* place the parent directories " "on the search path and then use ``#include ``; this will " "break on multi-platform builds since the platform independent headers under :" -"envvar:`prefix` include the platform specific headers from :envvar:" -"`exec_prefix`." +"option:`prefix <--prefix>` include the platform specific headers from :" +"option:`exec_prefix <--exec-prefix>`." msgstr "" "Para incluir los encabezados, coloque ambos directorios (si son diferentes) " "en la ruta de búsqueda de su compilador para incluir. *No* coloque los " @@ -230,10 +230,25 @@ msgstr "" "no es necesariamente una lista completa." #: ../Doc/c-api/intro.rst:110 +msgid "" +"Declare an extension module ``PyInit`` initialization function. The function " +"return type is :c:expr:`PyObject*`. The macro declares any special linkage " +"declarations required by the platform, and for C++ declares the function as " +"``extern \"C\"``." +msgstr "" + +#: ../Doc/c-api/intro.rst:115 +msgid "" +"The initialization function must be named :samp:`PyInit_{name}`, where " +"*name* is the name of the module, and should be the only non-\\ ``static`` " +"item defined in the module file. Example::" +msgstr "" + +#: ../Doc/c-api/intro.rst:134 msgid "Return the absolute value of ``x``." msgstr "Retorna el valor absoluto de ``x``." -#: ../Doc/c-api/intro.rst:116 +#: ../Doc/c-api/intro.rst:140 msgid "" "Ask the compiler to always inline a static inline function. The compiler can " "ignore it and decides to not inline the function." @@ -241,7 +256,7 @@ msgstr "" "Ordena al compilador a siempre usar inline en una función estática inline. " "El compilador puede ignorarlo y decidir no usar inline en la función." -#: ../Doc/c-api/intro.rst:119 +#: ../Doc/c-api/intro.rst:143 msgid "" "It can be used to inline performance critical static inline functions when " "building Python in debug mode with function inlining disabled. For example, " @@ -252,7 +267,7 @@ msgstr "" "de funciones deshabilitado. Por ejemplo, MSC deshabilita el inline de " "funciones cuando se configura en modo de depuración." -#: ../Doc/c-api/intro.rst:123 +#: ../Doc/c-api/intro.rst:147 msgid "" "Marking blindly a static inline function with Py_ALWAYS_INLINE can result in " "worse performances (due to increased code size for example). The compiler is " @@ -263,7 +278,7 @@ msgstr "" "por ejemplo). El compilador es generalmente más inteligente que el " "desarrollador para el análisis costo/beneficio." -#: ../Doc/c-api/intro.rst:127 +#: ../Doc/c-api/intro.rst:151 msgid "" "If Python is :ref:`built in debug mode ` (if the ``Py_DEBUG`` " "macro is defined), the :c:macro:`Py_ALWAYS_INLINE` macro does nothing." @@ -272,11 +287,11 @@ msgstr "" "macro ``Py_DEBUG`` está definido), el macro :c:macro:`Py_ALWAYS_INLINE` no " "hace nada." -#: ../Doc/c-api/intro.rst:130 +#: ../Doc/c-api/intro.rst:154 msgid "It must be specified before the function return type. Usage::" msgstr "Debe ser especificado antes del tipo de retorno de la función. Uso::" -#: ../Doc/c-api/intro.rst:138 +#: ../Doc/c-api/intro.rst:162 msgid "" "Argument must be a character or an integer in the range [-128, 127] or [0, " "255]. This macro returns ``c`` cast to an ``unsigned char``." @@ -284,7 +299,7 @@ msgstr "" "El argumento debe ser un carácter o un número entero en el rango [-128, 127] " "o [0, 255]. Este macro retorna la conversión ``c`` a un ``unsigned char``." -#: ../Doc/c-api/intro.rst:143 +#: ../Doc/c-api/intro.rst:167 msgid "" "Use this for deprecated declarations. The macro must be placed before the " "symbol name." @@ -292,37 +307,38 @@ msgstr "" "Use esto para declaraciones obsoletas. El macro debe colocarse antes del " "nombre del símbolo." -#: ../Doc/c-api/intro.rst:146 ../Doc/c-api/intro.rst:232 -#: ../Doc/c-api/intro.rst:250 +#: ../Doc/c-api/intro.rst:170 ../Doc/c-api/intro.rst:256 +#: ../Doc/c-api/intro.rst:274 msgid "Example::" msgstr "Ejemplo::" -#: ../Doc/c-api/intro.rst:150 +#: ../Doc/c-api/intro.rst:174 msgid "MSVC support was added." msgstr "Soporte para MSVC fue agregado." -#: ../Doc/c-api/intro.rst:155 +#: ../Doc/c-api/intro.rst:179 +#, fuzzy msgid "" "Like ``getenv(s)``, but returns ``NULL`` if :option:`-E` was passed on the " -"command line (i.e. if ``Py_IgnoreEnvironmentFlag`` is set)." +"command line (see :c:member:`PyConfig.use_environment`)." msgstr "" "Al igual que ``getenv(s)``, pero retorna ``NULL`` si: la opción :option:`-E` " "se pasó en la línea de comando (es decir, si se establece " "``Py_IgnoreEnvironmentFlag``)." -#: ../Doc/c-api/intro.rst:160 +#: ../Doc/c-api/intro.rst:184 msgid "Return the maximum value between ``x`` and ``y``." msgstr "Retorna el valor máximo entre ``x`` e ``y``." -#: ../Doc/c-api/intro.rst:166 +#: ../Doc/c-api/intro.rst:190 msgid "Return the size of a structure (``type``) ``member`` in bytes." msgstr "Retorna el tamaño de una estructura (``type``) ``member`` en bytes." -#: ../Doc/c-api/intro.rst:172 +#: ../Doc/c-api/intro.rst:196 msgid "Return the minimum value between ``x`` and ``y``." msgstr "Retorna el valor mínimo entre ``x`` e ``y``." -#: ../Doc/c-api/intro.rst:178 +#: ../Doc/c-api/intro.rst:202 msgid "" "Disable inlining on a function. For example, it reduces the C stack " "consumption: useful on LTO+PGO builds which heavily inline code (see :issue:" @@ -332,18 +348,18 @@ msgstr "" "de la pila C: útil en compilaciones LTO+PGO que usan mucho inline (ver :" "issue:`33720`)." -#: ../Doc/c-api/intro.rst:182 +#: ../Doc/c-api/intro.rst:206 msgid "Usage::" msgstr "Uso::" -#: ../Doc/c-api/intro.rst:190 +#: ../Doc/c-api/intro.rst:214 msgid "" "Convert ``x`` to a C string. E.g. ``Py_STRINGIFY(123)`` returns ``\"123\"``." msgstr "" "Convierte ``x`` en una cadena de caracteres C. Por ejemplo, " "``Py_STRINGIFY(123)`` retorna ``\"123\"``." -#: ../Doc/c-api/intro.rst:197 +#: ../Doc/c-api/intro.rst:221 msgid "" "Use this when you have a code path that cannot be reached by design. For " "example, in the ``default:`` clause in a ``switch`` statement for which all " @@ -356,7 +372,7 @@ msgstr "" "declaraciones ``case``. Use esto en lugares donde podría tener la tentación " "de poner una llamada ``assert(0)`` o ``abort()``." -#: ../Doc/c-api/intro.rst:202 +#: ../Doc/c-api/intro.rst:226 msgid "" "In release mode, the macro helps the compiler to optimize the code, and " "avoids a warning about unreachable code. For example, the macro is " @@ -367,7 +383,7 @@ msgstr "" "macro se implementa con ``__builtin_unreachable()`` en GCC en modo de " "lanzamiento." -#: ../Doc/c-api/intro.rst:206 +#: ../Doc/c-api/intro.rst:230 msgid "" "A use for ``Py_UNREACHABLE()`` is following a call a function that never " "returns but that is not declared :c:macro:`_Py_NO_RETURN`." @@ -375,7 +391,7 @@ msgstr "" "Un uso de ``Py_UNREACHABLE()`` es seguir una llamada a una función que nunca " "retorna pero que no está declarada :c:macro:`_Py_NO_RETURN`." -#: ../Doc/c-api/intro.rst:209 +#: ../Doc/c-api/intro.rst:233 msgid "" "If a code path is very unlikely code but can be reached under exceptional " "case, this macro must not be used. For example, under low memory condition " @@ -390,7 +406,7 @@ msgstr "" "persona que llama. Si no se puede informar del error a la persona que llama, " "se puede utilizar :c:func:`Py_FatalError`." -#: ../Doc/c-api/intro.rst:219 +#: ../Doc/c-api/intro.rst:243 msgid "" "Use this for unused arguments in a function definition to silence compiler " "warnings. Example: ``int func(int a, int Py_UNUSED(b)) { return a; }``." @@ -399,7 +415,7 @@ msgstr "" "silenciar las advertencias del compilador. Ejemplo: ``int func(int a, int " "Py_UNUSED(b)) {return a; }``." -#: ../Doc/c-api/intro.rst:226 +#: ../Doc/c-api/intro.rst:250 msgid "" "Creates a variable with name ``name`` that can be used in docstrings. If " "Python is built without docstrings, the value will be empty." @@ -407,7 +423,7 @@ msgstr "" "Crea una variable con el nombre ``name`` que se puede usar en *docstrings*. " "Si Python se construye sin *docstrings*, el valor estará vacío." -#: ../Doc/c-api/intro.rst:229 +#: ../Doc/c-api/intro.rst:253 msgid "" "Use :c:macro:`PyDoc_STRVAR` for docstrings to support building Python " "without docstrings, as specified in :pep:`7`." @@ -415,7 +431,7 @@ msgstr "" "Utilice :c:macro:`PyDoc_STRVAR` para que los *docstrings* admitan la " "construcción de Python sin *docstrings*, como se especifica en :pep:`7`." -#: ../Doc/c-api/intro.rst:244 +#: ../Doc/c-api/intro.rst:268 msgid "" "Creates a docstring for the given input string or an empty string if " "docstrings are disabled." @@ -423,7 +439,7 @@ msgstr "" "Crea un *docstring* para la cadena de caracteres de entrada dada o una " "cadena vacía si los *docstrings* están deshabilitados." -#: ../Doc/c-api/intro.rst:247 +#: ../Doc/c-api/intro.rst:271 msgid "" "Use :c:macro:`PyDoc_STR` in specifying docstrings to support building Python " "without docstrings, as specified in :pep:`7`." @@ -431,11 +447,11 @@ msgstr "" "Utilice :c:macro:`PyDoc_STR` al especificar *docstrings* para admitir la " "construcción de Python sin *docstrings*, como se especifica en :pep:`7`." -#: ../Doc/c-api/intro.rst:262 +#: ../Doc/c-api/intro.rst:286 msgid "Objects, Types and Reference Counts" msgstr "Objetos, tipos y conteos de referencias" -#: ../Doc/c-api/intro.rst:266 +#: ../Doc/c-api/intro.rst:290 #, fuzzy msgid "" "Most Python/C API functions have one or more arguments as well as a return " @@ -463,7 +479,7 @@ msgstr "" "tipo; como nunca deben desasignarse, son típicamente objetos estáticos :c:" "type:`PyTypeObject`." -#: ../Doc/c-api/intro.rst:277 +#: ../Doc/c-api/intro.rst:301 msgid "" "All Python objects (even Python integers) have a :dfn:`type` and a :dfn:" "`reference count`. An object's type determines what kind of object it is (e." @@ -482,22 +498,24 @@ msgstr "" "es verdadero si (y solo si) el objeto al que apunta *a* es una lista de " "Python." -#: ../Doc/c-api/intro.rst:288 +#: ../Doc/c-api/intro.rst:312 msgid "Reference Counts" msgstr "Conteo de Referencias" -#: ../Doc/c-api/intro.rst:290 +#: ../Doc/c-api/intro.rst:314 +#, fuzzy msgid "" "The reference count is important because today's computers have a finite " -"(and often severely limited) memory size; it counts how many different " -"places there are that have a reference to an object. Such a place could be " -"another object, or a global (or static) C variable, or a local variable in " -"some C function. When an object's reference count becomes zero, the object " -"is deallocated. If it contains references to other objects, their " -"reference count is decremented. Those other objects may be deallocated in " -"turn, if this decrement makes their reference count become zero, and so on. " -"(There's an obvious problem with objects that reference each other here; " -"for now, the solution is \"don't do that.\")" +"(and often severely limited) memory size; it counts how many different " +"places there are that have a :term:`strong reference` to an object. Such a " +"place could be another object, or a global (or static) C variable, or a " +"local variable in some C function. When the last :term:`strong reference` to " +"an object is released (i.e. its reference count becomes zero), the object is " +"deallocated. If it contains references to other objects, those references " +"are released. Those other objects may be deallocated in turn, if there are " +"no more references to them, and so on. (There's an obvious problem with " +"objects that reference each other here; for now, the solution is \"don't do " +"that.\")" msgstr "" "El conteo de referencia es importante porque las computadoras de hoy tienen " "un tamaño de memoria finito (y a menudo muy limitado); cuenta cuántos " @@ -511,22 +529,24 @@ msgstr "" "objetos que se refieren entre sí aquí; por ahora, la solución es \"no hagas " "eso\")." -#: ../Doc/c-api/intro.rst:305 +#: ../Doc/c-api/intro.rst:331 +#, fuzzy msgid "" -"Reference counts are always manipulated explicitly. The normal way is to " -"use the macro :c:func:`Py_INCREF` to increment an object's reference count " -"by one, and :c:func:`Py_DECREF` to decrement it by one. The :c:func:" +"Reference counts are always manipulated explicitly. The normal way is to " +"use the macro :c:func:`Py_INCREF` to take a new reference to an object (i.e. " +"increment its reference count by one), and :c:func:`Py_DECREF` to release " +"that reference (i.e. decrement the reference count by one). The :c:func:" "`Py_DECREF` macro is considerably more complex than the incref one, since it " "must check whether the reference count becomes zero and then cause the " -"object's deallocator to be called. The deallocator is a function pointer " +"object's deallocator to be called. The deallocator is a function pointer " "contained in the object's type structure. The type-specific deallocator " -"takes care of decrementing the reference counts for other objects contained " -"in the object if this is a compound object type, such as a list, as well as " -"performing any additional finalization that's needed. There's no chance " -"that the reference count can overflow; at least as many bits are used to " -"hold the reference count as there are distinct memory locations in virtual " -"memory (assuming ``sizeof(Py_ssize_t) >= sizeof(void*)``). Thus, the " -"reference count increment is a simple operation." +"takes care of releasing references for other objects contained in the object " +"if this is a compound object type, such as a list, as well as performing any " +"additional finalization that's needed. There's no chance that the reference " +"count can overflow; at least as many bits are used to hold the reference " +"count as there are distinct memory locations in virtual memory (assuming " +"``sizeof(Py_ssize_t) >= sizeof(void*)``). Thus, the reference count " +"increment is a simple operation." msgstr "" "Los conteos de referencias siempre se manipulan explícitamente. La forma " "normal es usar el macro :c:func:`Py_INCREF` para incrementar el conteo de " @@ -544,21 +564,23 @@ msgstr "" "la memoria virtual (suponiendo ``sizeof(Py_ssize_t) >= sizeof(void*)``). Por " "lo tanto, el incremento del recuento de referencia es una operación simple." -#: ../Doc/c-api/intro.rst:319 -msgid "" -"It is not necessary to increment an object's reference count for every " -"local variable that contains a pointer to an object. In theory, the " -"object's reference count goes up by one when the variable is made to point " -"to it and it goes down by one when the variable goes out of scope. " -"However, these two cancel each other out, so at the end the reference count " -"hasn't changed. The only real reason to use the reference count is to " -"prevent the object from being deallocated as long as our variable is " -"pointing to it. If we know that there is at least one other reference to " -"the object that lives at least as long as our variable, there is no need to " -"increment the reference count temporarily. An important situation where " -"this arises is in objects that are passed as arguments to C functions in an " -"extension module that are called from Python; the call mechanism guarantees " -"to hold a reference to every argument for the duration of the call." +#: ../Doc/c-api/intro.rst:347 +#, fuzzy +msgid "" +"It is not necessary to hold a :term:`strong reference` (i.e. increment the " +"reference count) for every local variable that contains a pointer to an " +"object. In theory, the object's reference count goes up by one when the " +"variable is made to point to it and it goes down by one when the variable " +"goes out of scope. However, these two cancel each other out, so at the end " +"the reference count hasn't changed. The only real reason to use the " +"reference count is to prevent the object from being deallocated as long as " +"our variable is pointing to it. If we know that there is at least one " +"other reference to the object that lives at least as long as our variable, " +"there is no need to take a new :term:`strong reference` (i.e. increment the " +"reference count) temporarily. An important situation where this arises is in " +"objects that are passed as arguments to C functions in an extension module " +"that are called from Python; the call mechanism guarantees to hold a " +"reference to every argument for the duration of the call." msgstr "" "No es necesario incrementar el conteo de referencia de un objeto para cada " "variable local que contiene un puntero a un objeto. En teoría, el conteo de " @@ -575,15 +597,16 @@ msgstr "" "mecanismo de llamada garantiza mantener una referencia a cada argumento " "durante la duración de la llamada." -#: ../Doc/c-api/intro.rst:333 +#: ../Doc/c-api/intro.rst:363 +#, fuzzy msgid "" "However, a common pitfall is to extract an object from a list and hold on to " -"it for a while without incrementing its reference count. Some other " -"operation might conceivably remove the object from the list, decrementing " -"its reference count and possibly deallocating it. The real danger is that " -"innocent-looking operations may invoke arbitrary Python code which could do " -"this; there is a code path which allows control to flow back to the user " -"from a :c:func:`Py_DECREF`, so almost any operation is potentially dangerous." +"it for a while without taking a new reference. Some other operation might " +"conceivably remove the object from the list, releasing that reference, and " +"possibly deallocating it. The real danger is that innocent-looking " +"operations may invoke arbitrary Python code which could do this; there is a " +"code path which allows control to flow back to the user from a :c:func:" +"`Py_DECREF`, so almost any operation is potentially dangerous." msgstr "" "Sin embargo, una trampa común es extraer un objeto de una lista y mantenerlo " "por un tiempo sin incrementar su conteo de referencia. Es posible que alguna " @@ -594,14 +617,15 @@ msgstr "" "vuelva al usuario desde a :c:func:`Py_DECREF`, por lo que casi cualquier " "operación es potencialmente peligrosa." -#: ../Doc/c-api/intro.rst:341 +#: ../Doc/c-api/intro.rst:371 +#, fuzzy msgid "" "A safe approach is to always use the generic operations (functions whose " "name begins with ``PyObject_``, ``PyNumber_``, ``PySequence_`` or " -"``PyMapping_``). These operations always increment the reference count of " -"the object they return. This leaves the caller with the responsibility to " -"call :c:func:`Py_DECREF` when they are done with the result; this soon " -"becomes second nature." +"``PyMapping_``). These operations always create a new :term:`strong " +"reference` (i.e. increment the reference count) of the object they return. " +"This leaves the caller with the responsibility to call :c:func:`Py_DECREF` " +"when they are done with the result; this soon becomes second nature." msgstr "" "Un enfoque seguro es utilizar siempre las operaciones genéricas (funciones " "cuyo nombre comienza con ``PyObject_``, ``PyNumber_``, ``PySequence_`` o " @@ -610,11 +634,12 @@ msgstr "" "responsabilidad de llamar :c:func:`Py_DECREF` cuando hayan terminado con el " "resultado; Esto pronto se convierte en una segunda naturaleza." -#: ../Doc/c-api/intro.rst:351 +#: ../Doc/c-api/intro.rst:382 msgid "Reference Count Details" msgstr "Detalles del conteo de referencia" -#: ../Doc/c-api/intro.rst:353 +#: ../Doc/c-api/intro.rst:384 +#, fuzzy msgid "" "The reference count behavior of functions in the Python/C API is best " "explained in terms of *ownership of references*. Ownership pertains to " @@ -622,8 +647,8 @@ msgid "" "shared). \"Owning a reference\" means being responsible for calling " "Py_DECREF on it when the reference is no longer needed. Ownership can also " "be transferred, meaning that the code that receives ownership of the " -"reference then becomes responsible for eventually decref'ing it by calling :" -"c:func:`Py_DECREF` or :c:func:`Py_XDECREF` when it's no longer needed---or " +"reference then becomes responsible for eventually releasing it by calling :c:" +"func:`Py_DECREF` or :c:func:`Py_XDECREF` when it's no longer needed---or " "passing on this responsibility (usually to its caller). When a function " "passes ownership of a reference on to its caller, the caller is said to " "receive a *new* reference. When no ownership is transferred, the caller is " @@ -646,7 +671,7 @@ msgstr "" "No es necesario hacer nada para obtener una :term:`referencia prestada " "`." -#: ../Doc/c-api/intro.rst:366 +#: ../Doc/c-api/intro.rst:397 msgid "" "Conversely, when a calling function passes in a reference to an object, " "there are two possibilities: the function *steals* a reference to the " @@ -660,7 +685,7 @@ msgstr "" "a una función, esa función asume que ahora posee esa referencia, y usted ya " "no es responsable de ella." -#: ../Doc/c-api/intro.rst:376 +#: ../Doc/c-api/intro.rst:407 msgid "" "Few functions steal references; the two notable exceptions are :c:func:" "`PyList_SetItem` and :c:func:`PyTuple_SetItem`, which steal a reference to " @@ -680,7 +705,7 @@ msgstr "" "(olvidando el manejo de errores por el momento; una mejor manera de " "codificar esto se muestra a continuación)::" -#: ../Doc/c-api/intro.rst:391 +#: ../Doc/c-api/intro.rst:422 msgid "" "Here, :c:func:`PyLong_FromLong` returns a new reference which is immediately " "stolen by :c:func:`PyTuple_SetItem`. When you want to keep using an object " @@ -693,7 +718,7 @@ msgstr "" "para tomar otra referencia antes de llamar a la función de robo de " "referencias." -#: ../Doc/c-api/intro.rst:396 +#: ../Doc/c-api/intro.rst:427 msgid "" "Incidentally, :c:func:`PyTuple_SetItem` is the *only* way to set tuple " "items; :c:func:`PySequence_SetItem` and :c:func:`PyObject_SetItem` refuse to " @@ -706,7 +731,7 @@ msgstr "" "datos inmutable. Solo debe usar :c:func:`PyTuple_SetItem` para las tuplas " "que está creando usted mismo." -#: ../Doc/c-api/intro.rst:401 +#: ../Doc/c-api/intro.rst:432 msgid "" "Equivalent code for populating a list can be written using :c:func:" "`PyList_New` and :c:func:`PyList_SetItem`." @@ -714,7 +739,7 @@ msgstr "" "El código equivalente para llenar una lista se puede escribir usando :c:func:" "`PyList_New` y :c:func:`PyList_SetItem`." -#: ../Doc/c-api/intro.rst:404 +#: ../Doc/c-api/intro.rst:435 msgid "" "However, in practice, you will rarely use these ways of creating and " "populating a tuple or list. There's a generic function, :c:func:" @@ -730,13 +755,14 @@ msgstr "" "reemplazarse por lo siguiente (que también se ocupa de la comprobación de " "errores)::" -#: ../Doc/c-api/intro.rst:415 +#: ../Doc/c-api/intro.rst:446 +#, fuzzy msgid "" "It is much more common to use :c:func:`PyObject_SetItem` and friends with " "items whose references you are only borrowing, like arguments that were " "passed in to the function you are writing. In that case, their behaviour " -"regarding reference counts is much saner, since you don't have to increment " -"a reference count so you can give a reference away (\"have it be stolen\"). " +"regarding references is much saner, since you don't have to take a new " +"reference just so you can give that reference away (\"have it be stolen\"). " "For example, this function sets all items of a list (actually, any mutable " "sequence) to a given item::" msgstr "" @@ -748,7 +774,7 @@ msgstr "" "(\"robarla\"). Por ejemplo, esta función establece todos los elementos de " "una lista (en realidad, cualquier secuencia mutable) en un elemento dado::" -#: ../Doc/c-api/intro.rst:445 +#: ../Doc/c-api/intro.rst:476 msgid "" "The situation is slightly different for function return values. While " "passing a reference to most functions does not change your ownership " @@ -771,7 +797,7 @@ msgstr "" "siempre retornan una nueva referencia (la entidad que llama se convierte en " "el propietario de la referencia)." -#: ../Doc/c-api/intro.rst:454 +#: ../Doc/c-api/intro.rst:485 msgid "" "It is important to realize that whether you own a reference returned by a " "function depends on which function you call only --- *the plumage* (the type " @@ -789,7 +815,7 @@ msgstr "" "lista usando :c:func:`PySequence_GetItem` (que toma exactamente los mismos " "argumentos), usted posee una referencia al objeto retornado." -#: ../Doc/c-api/intro.rst:466 +#: ../Doc/c-api/intro.rst:497 msgid "" "Here is an example of how you could write a function that computes the sum " "of the items in a list of integers; once using :c:func:`PyList_GetItem`, " @@ -799,11 +825,11 @@ msgstr "" "de los elementos en una lista de enteros; una vez usando :c:func:" "`PyList_GetItem`, y una vez usando :c:func:`PySequence_GetItem`. ::" -#: ../Doc/c-api/intro.rst:530 +#: ../Doc/c-api/intro.rst:561 msgid "Types" msgstr "Tipos" -#: ../Doc/c-api/intro.rst:532 +#: ../Doc/c-api/intro.rst:563 #, fuzzy msgid "" "There are few other data types that play a significant role in the Python/C " @@ -822,7 +848,7 @@ msgstr "" "objeto, y otro se usa para describir el valor de un número complejo. Estos " "serán discutidos junto con las funciones que los usan." -#: ../Doc/c-api/intro.rst:542 +#: ../Doc/c-api/intro.rst:573 msgid "" "A signed integral type such that ``sizeof(Py_ssize_t) == sizeof(size_t)``. " "C99 doesn't define such a thing directly (size_t is an unsigned integral " @@ -834,11 +860,11 @@ msgstr "" "Vea :pep:`353` para más detalles. ``PY_SSIZE_T_MAX`` es el valor positivo " "más grande del tipo :c:type:`Py_ssize_t`." -#: ../Doc/c-api/intro.rst:551 +#: ../Doc/c-api/intro.rst:582 msgid "Exceptions" msgstr "Excepciones" -#: ../Doc/c-api/intro.rst:553 +#: ../Doc/c-api/intro.rst:584 msgid "" "The Python programmer only needs to deal with exceptions if specific error " "handling is required; unhandled exceptions are automatically propagated to " @@ -852,7 +878,7 @@ msgstr "" "sucesivamente, hasta que llegan al intérprete de nivel superior, donde se " "informan al usuario acompañado de un seguimiento de pila (*stack traceback*)." -#: ../Doc/c-api/intro.rst:561 +#: ../Doc/c-api/intro.rst:592 msgid "" "For C programmers, however, error checking always has to be explicit. All " "functions in the Python/C API can raise exceptions, unless an explicit claim " @@ -879,7 +905,7 @@ msgstr "" "requieren pruebas explícitas de errores con :c:func:`PyErr_Occurred`. Estas " "excepciones siempre se documentan explícitamente." -#: ../Doc/c-api/intro.rst:576 +#: ../Doc/c-api/intro.rst:607 msgid "" "Exception state is maintained in per-thread storage (this is equivalent to " "using global storage in an unthreaded application). A thread can be in one " @@ -902,7 +928,7 @@ msgstr "" "más general) para establecer el estado de excepción, y :c:func:`PyErr_Clear` " "borra la excepción estado." -#: ../Doc/c-api/intro.rst:586 +#: ../Doc/c-api/intro.rst:617 msgid "" "The full exception state consists of three objects (all of which can be " "``NULL``): the exception type, the corresponding exception value, and the " @@ -925,7 +951,7 @@ msgstr "" "de código de bytes (*bytecode*) de Python, que se encarga de transferirlo a " "``sys.exc_info()`` y amigos." -#: ../Doc/c-api/intro.rst:598 +#: ../Doc/c-api/intro.rst:629 msgid "" "Note that starting with Python 1.5, the preferred, thread-safe way to access " "the exception state from Python code is to call the function :func:`sys." @@ -950,7 +976,7 @@ msgstr "" "También reduce la extensión de vida útil a menudo no deseada para los " "objetos a los que hacen referencia los marcos de pila en el rastreo." -#: ../Doc/c-api/intro.rst:609 +#: ../Doc/c-api/intro.rst:640 msgid "" "As a general principle, a function that calls another function to perform " "some task should check whether the called function raised an exception, and " @@ -968,10 +994,11 @@ msgstr "" "excepción que se acaba de generar y perderá información importante sobre la " "causa exacta del error." -#: ../Doc/c-api/intro.rst:618 +#: ../Doc/c-api/intro.rst:649 +#, fuzzy msgid "" "A simple example of detecting exceptions and passing them on is shown in " -"the :c:func:`sum_sequence` example above. It so happens that this example " +"the :c:func:`!sum_sequence` example above. It so happens that this example " "doesn't need to clean up any owned references when it detects an error. The " "following example function shows some error cleanup. First, to remind you " "why you like Python, we show the equivalent Python code::" @@ -983,11 +1010,11 @@ msgstr "" "para recordar por qué le gusta Python, le mostramos el código Python " "equivalente::" -#: ../Doc/c-api/intro.rst:633 +#: ../Doc/c-api/intro.rst:664 msgid "Here is the corresponding C code, in all its glory::" msgstr "Aquí está el código C correspondiente, en todo su esplendor::" -#: ../Doc/c-api/intro.rst:685 +#: ../Doc/c-api/intro.rst:716 msgid "" "This example represents an endorsed use of the ``goto`` statement in C! It " "illustrates the use of :c:func:`PyErr_ExceptionMatches` and :c:func:" @@ -1010,11 +1037,11 @@ msgstr "" "``-1`` (falla) y solo se establece en éxito después de que la última llamada " "realizada sea exitosa." -#: ../Doc/c-api/intro.rst:699 +#: ../Doc/c-api/intro.rst:730 msgid "Embedding Python" msgstr "Integración de Python" -#: ../Doc/c-api/intro.rst:701 +#: ../Doc/c-api/intro.rst:732 msgid "" "The one important task that only embedders (as opposed to extension writers) " "of the Python interpreter have to worry about is the initialization, and " @@ -1027,7 +1054,7 @@ msgstr "" "de Python. La mayor parte de la funcionalidad del intérprete solo se puede " "usar después de que el intérprete se haya inicializado." -#: ../Doc/c-api/intro.rst:714 +#: ../Doc/c-api/intro.rst:745 msgid "" "The basic initialization function is :c:func:`Py_Initialize`. This " "initializes the table of loaded modules, and creates the fundamental " @@ -1039,7 +1066,7 @@ msgstr "" "mod:`builtins`, :mod:`__main__`, y :mod:`sys`. También inicializa la ruta de " "búsqueda del módulo (``sys.path``)." -#: ../Doc/c-api/intro.rst:719 +#: ../Doc/c-api/intro.rst:750 msgid "" ":c:func:`Py_Initialize` does not set the \"script argument list\" (``sys." "argv``). If this variable is needed by Python code that will be executed " @@ -1052,7 +1079,7 @@ msgstr "" "member:`PyConfig.parse_argv`: consulte :ref:`Python Initialization " "Configuration `." -#: ../Doc/c-api/intro.rst:724 +#: ../Doc/c-api/intro.rst:755 msgid "" "On most systems (in particular, on Unix and Windows, although the details " "are slightly different), :c:func:`Py_Initialize` calculates the module " @@ -1073,7 +1100,7 @@ msgstr "" "encuentra el ejecutable llamado :file:`python` en la ruta de búsqueda del " "comando *shell* (la variable de entorno :envvar:`PATH`)." -#: ../Doc/c-api/intro.rst:733 +#: ../Doc/c-api/intro.rst:764 msgid "" "For instance, if the Python executable is found in :file:`/usr/local/bin/" "python`, it will assume that the libraries are in :file:`/usr/local/lib/" @@ -1092,7 +1119,7 @@ msgstr "" "`PYTHONHOME`, o inserte directorios adicionales delante de la ruta estándar " "estableciendo :envvar:`PYTHONPATH`." -#: ../Doc/c-api/intro.rst:748 +#: ../Doc/c-api/intro.rst:779 msgid "" "The embedding application can steer the search by calling " "``Py_SetProgramName(file)`` *before* calling :c:func:`Py_Initialize`. Note " @@ -1110,7 +1137,7 @@ msgstr "" "`Py_GetPath`, :c:func:`Py_GetPrefix`, :c:func:`Py_GetExecPrefix`, y :c:func:" "`Py_GetProgramFullPath` (todo definido en :file:`Modules/getpath.c`)." -#: ../Doc/c-api/intro.rst:758 +#: ../Doc/c-api/intro.rst:789 msgid "" "Sometimes, it is desirable to \"uninitialize\" Python. For instance, the " "application may want to start over (make another call to :c:func:" @@ -1134,11 +1161,11 @@ msgstr "" "asignada por el intérprete de Python, por ejemplo, la memoria asignada por " "los módulos de extensión actualmente no se puede liberar." -#: ../Doc/c-api/intro.rst:772 +#: ../Doc/c-api/intro.rst:803 msgid "Debugging Builds" msgstr "Depuración de compilaciones" -#: ../Doc/c-api/intro.rst:774 +#: ../Doc/c-api/intro.rst:805 msgid "" "Python can be built with several macros to enable extra checks of the " "interpreter and extension modules. These checks tend to add a large amount " @@ -1149,7 +1176,7 @@ msgstr "" "tienden a agregar una gran cantidad de sobrecarga al tiempo de ejecución, " "por lo que no están habilitadas de forma predeterminada." -#: ../Doc/c-api/intro.rst:778 +#: ../Doc/c-api/intro.rst:809 #, fuzzy msgid "" "A full list of the various types of debugging builds is in the file :file:" @@ -1166,7 +1193,7 @@ msgstr "" "creación de perfiles de bajo nivel del bucle principal del intérprete. Solo " "las compilaciones más utilizadas se describirán en el resto de esta sección." -#: ../Doc/c-api/intro.rst:784 +#: ../Doc/c-api/intro.rst:815 msgid "" "Compiling the interpreter with the :c:macro:`Py_DEBUG` macro defined " "produces what is generally meant by :ref:`a debug build of Python `." @@ -1193,7 +1220,7 @@ msgstr "" "continuación, se realizan verificaciones adicionales, véase :ref:" "`compilaciones de depuración `." -#: ../Doc/c-api/intro.rst:795 +#: ../Doc/c-api/intro.rst:826 msgid "" "Defining :c:macro:`Py_TRACE_REFS` enables reference tracing (see the :option:" "`configure --with-trace-refs option <--with-trace-refs>`). When defined, a " @@ -1210,10 +1237,139 @@ msgstr "" "imprimen todas las referencias existentes. (En modo interactivo, esto sucede " "después de cada declaración ejecutada por el intérprete)." -#: ../Doc/c-api/intro.rst:802 +#: ../Doc/c-api/intro.rst:833 msgid "" "Please refer to :file:`Misc/SpecialBuilds.txt` in the Python source " "distribution for more detailed information." msgstr "" "Consulte :file:`Misc/SpecialBuilds.txt` en la distribución fuente de Python " "para obtener información más detallada." + +#: ../Doc/c-api/intro.rst:288 +msgid "object" +msgstr "" + +#: ../Doc/c-api/intro.rst:288 +#, fuzzy +msgid "type" +msgstr "Tipos" + +#: ../Doc/c-api/intro.rst:327 +msgid "Py_INCREF()" +msgstr "" + +#: ../Doc/c-api/intro.rst:327 +msgid "Py_DECREF()" +msgstr "" + +#: ../Doc/c-api/intro.rst:403 +msgid "PyList_SetItem()" +msgstr "" + +#: ../Doc/c-api/intro.rst:403 +msgid "PyTuple_SetItem()" +msgstr "" + +#: ../Doc/c-api/intro.rst:474 +msgid "set_all()" +msgstr "" + +#: ../Doc/c-api/intro.rst:493 +msgid "PyList_GetItem()" +msgstr "" + +#: ../Doc/c-api/intro.rst:493 +msgid "PySequence_GetItem()" +msgstr "" + +#: ../Doc/c-api/intro.rst:523 +msgid "sum_list()" +msgstr "" + +#: ../Doc/c-api/intro.rst:555 ../Doc/c-api/intro.rst:647 +msgid "sum_sequence()" +msgstr "" + +#: ../Doc/c-api/intro.rst:590 +msgid "PyErr_Occurred()" +msgstr "" + +#: ../Doc/c-api/intro.rst:603 +msgid "PyErr_SetString()" +msgstr "" + +#: ../Doc/c-api/intro.rst:603 ../Doc/c-api/intro.rst:711 +msgid "PyErr_Clear()" +msgstr "" + +#: ../Doc/c-api/intro.rst:627 +msgid "exc_info() (in module sys)" +msgstr "" + +#: ../Doc/c-api/intro.rst:662 ../Doc/c-api/intro.rst:709 +msgid "incr_item()" +msgstr "" + +#: ../Doc/c-api/intro.rst:711 +msgid "PyErr_ExceptionMatches()" +msgstr "" + +#: ../Doc/c-api/intro.rst:711 +msgid "Py_XDECREF()" +msgstr "" + +#: ../Doc/c-api/intro.rst:737 +msgid "Py_Initialize()" +msgstr "" + +#: ../Doc/c-api/intro.rst:737 +msgid "module" +msgstr "" + +#: ../Doc/c-api/intro.rst:737 +msgid "builtins" +msgstr "" + +#: ../Doc/c-api/intro.rst:737 +msgid "__main__" +msgstr "" + +#: ../Doc/c-api/intro.rst:737 +msgid "sys" +msgstr "" + +#: ../Doc/c-api/intro.rst:737 +msgid "search" +msgstr "" + +#: ../Doc/c-api/intro.rst:737 +msgid "path" +msgstr "" + +#: ../Doc/c-api/intro.rst:737 +msgid "path (in module sys)" +msgstr "" + +#: ../Doc/c-api/intro.rst:772 +msgid "Py_SetProgramName()" +msgstr "" + +#: ../Doc/c-api/intro.rst:772 +msgid "Py_GetPath()" +msgstr "" + +#: ../Doc/c-api/intro.rst:772 +msgid "Py_GetPrefix()" +msgstr "" + +#: ../Doc/c-api/intro.rst:772 +msgid "Py_GetExecPrefix()" +msgstr "" + +#: ../Doc/c-api/intro.rst:772 +msgid "Py_GetProgramFullPath()" +msgstr "" + +#: ../Doc/c-api/intro.rst:787 +msgid "Py_IsInitialized()" +msgstr "" diff --git a/c-api/iterator.po b/c-api/iterator.po index 99b644b2ea..0a504a7614 100644 --- a/c-api/iterator.po +++ b/c-api/iterator.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-03-19 11:16+0100\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-01 20:11+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,20 +19,20 @@ msgstr "" "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" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/iterator.rst:6 msgid "Iterator Objects" msgstr "Objetos iteradores" #: ../Doc/c-api/iterator.rst:8 +#, fuzzy msgid "" "Python provides two general-purpose iterator objects. The first, a sequence " -"iterator, works with an arbitrary sequence supporting the :meth:" -"`__getitem__` method. The second works with a callable object and a " -"sentinel value, calling the callable for each item in the sequence, and " -"ending the iteration when the sentinel value is returned." +"iterator, works with an arbitrary sequence supporting the :meth:`~object." +"__getitem__` method. The second works with a callable object and a sentinel " +"value, calling the callable for each item in the sequence, and ending the " +"iteration when the sentinel value is returned." msgstr "" "Python proporciona dos objetos iteradores de propósito general. El primero, " "un iterador de secuencia, funciona con una secuencia arbitraria que admite " diff --git a/c-api/list.po b/c-api/list.po index 3f7a08d860..21629b8ce5 100644 --- a/c-api/list.po +++ b/c-api/list.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-01 20:11+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/list.rst:6 msgid "List Objects" @@ -210,3 +210,24 @@ msgid "" msgstr "" "Retorna un nuevo objeto tupla que contiene el contenido de *list*; " "equivalente a ``tuple(list)``." + +#: ../Doc/c-api/list.rst:8 +#, fuzzy +msgid "object" +msgstr "Objetos lista" + +#: ../Doc/c-api/list.rst:8 +msgid "list" +msgstr "" + +#: ../Doc/c-api/list.rst:48 ../Doc/c-api/list.rst:141 +msgid "built-in function" +msgstr "" + +#: ../Doc/c-api/list.rst:48 +msgid "len" +msgstr "" + +#: ../Doc/c-api/list.rst:141 +msgid "tuple" +msgstr "" diff --git a/c-api/long.po b/c-api/long.po index 34c2b6ce92..5d8be72d83 100644 --- a/c-api/long.po +++ b/c-api/long.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-02 01:24+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/long.rst:6 msgid "Integer Objects" @@ -141,16 +141,19 @@ msgstr "" "``NULL`` en caso de error." #: ../Doc/c-api/long.rst:86 +#, fuzzy msgid "" "Return a new :c:type:`PyLongObject` based on the string value in *str*, " -"which is interpreted according to the radix in *base*. If *pend* is non-" -"``NULL``, *\\*pend* will point to the first character in *str* which follows " -"the representation of the number. If *base* is ``0``, *str* is interpreted " -"using the :ref:`integers` definition; in this case, leading zeros in a non-" -"zero decimal number raises a :exc:`ValueError`. If *base* is not ``0``, it " -"must be between ``2`` and ``36``, inclusive. Leading spaces and single " -"underscores after a base specifier and between digits are ignored. If there " -"are no digits, :exc:`ValueError` will be raised." +"which is interpreted according to the radix in *base*, or ``NULL`` on " +"failure. If *pend* is non-``NULL``, *\\*pend* will point to the end of " +"*str* on success or to the first character that could not be processed on " +"error. If *base* is ``0``, *str* is interpreted using the :ref:`integers` " +"definition; in this case, leading zeros in a non-zero decimal number raises " +"a :exc:`ValueError`. If *base* is not ``0``, it must be between ``2`` and " +"``36``, inclusive. Leading and trailing whitespace and single underscores " +"after a base specifier and between digits are ignored. If there are no " +"digits or *str* is not NULL-terminated following the digits and trailing " +"whitespace, :exc:`ValueError` will be raised." msgstr "" "Retorna un nuevo :c:type:`PyLongObject` basado en el valor de cadena de " "caracteres en *str*, que se interpreta de acuerdo con la raíz en *base*. Si " @@ -163,7 +166,14 @@ msgstr "" "individuales después de un especificador base y entre dígitos. Si no hay " "dígitos, se lanzará :exc:`ValueError`." -#: ../Doc/c-api/long.rst:99 +#: ../Doc/c-api/long.rst:97 +msgid "" +"Python methods :meth:`int.to_bytes` and :meth:`int.from_bytes` to convert a :" +"c:type:`PyLongObject` to/from an array of bytes in base ``256``. You can " +"call those from C using :c:func:`PyObject_CallMethod`." +msgstr "" + +#: ../Doc/c-api/long.rst:104 msgid "" "Convert a sequence of Unicode digits in the string *u* to a Python integer " "value." @@ -171,7 +181,7 @@ msgstr "" "Convierte una secuencia de dígitos Unicode en la cadena de caracteres *u* en " "un valor entero de Python." -#: ../Doc/c-api/long.rst:107 +#: ../Doc/c-api/long.rst:112 msgid "" "Create a Python integer from the pointer *p*. The pointer value can be " "retrieved from the resulting value using :c:func:`PyLong_AsVoidPtr`." @@ -179,18 +189,18 @@ msgstr "" "Crea un entero de Python desde el puntero *p*. El valor del puntero se puede " "recuperar del valor resultante usando :c:func:`PyLong_AsVoidPtr`." -#: ../Doc/c-api/long.rst:118 ../Doc/c-api/long.rst:136 +#: ../Doc/c-api/long.rst:123 ../Doc/c-api/long.rst:141 #, fuzzy msgid "" "Return a C :c:expr:`long` representation of *obj*. If *obj* is not an " -"instance of :c:type:`PyLongObject`, first call its :meth:`__index__` method " -"(if present) to convert it to a :c:type:`PyLongObject`." +"instance of :c:type:`PyLongObject`, first call its :meth:`~object.__index__` " +"method (if present) to convert it to a :c:type:`PyLongObject`." msgstr "" "Retorna una representación C :c:type:`long` de *obj*. Si *obj* no es una " "instancia de :c:type:`PyLongObject`, primero llama a su método :meth:" "`__index__` (si está presente) para convertirlo en un :c:type:`PyLongObject`." -#: ../Doc/c-api/long.rst:122 +#: ../Doc/c-api/long.rst:127 #, fuzzy msgid "" "Raise :exc:`OverflowError` if the value of *obj* is out of range for a :c:" @@ -199,32 +209,35 @@ msgstr "" "Lanza :exc:`OverflowError` si el valor de *obj* está fuera de rango para un :" "c:type:`long`." -#: ../Doc/c-api/long.rst:125 ../Doc/c-api/long.rst:145 -#: ../Doc/c-api/long.rst:166 ../Doc/c-api/long.rst:186 -#: ../Doc/c-api/long.rst:209 +#: ../Doc/c-api/long.rst:130 ../Doc/c-api/long.rst:150 +#: ../Doc/c-api/long.rst:171 ../Doc/c-api/long.rst:191 +#: ../Doc/c-api/long.rst:214 msgid "Returns ``-1`` on error. Use :c:func:`PyErr_Occurred` to disambiguate." msgstr "" "Retorna ``-1`` en caso de error. Use :c:func:`PyErr_Occurred` para " "desambiguar." -#: ../Doc/c-api/long.rst:127 ../Doc/c-api/long.rst:147 -#: ../Doc/c-api/long.rst:168 ../Doc/c-api/long.rst:190 -#: ../Doc/c-api/long.rst:274 ../Doc/c-api/long.rst:294 -msgid "Use :meth:`__index__` if available." +#: ../Doc/c-api/long.rst:132 ../Doc/c-api/long.rst:152 +#: ../Doc/c-api/long.rst:173 ../Doc/c-api/long.rst:195 +#: ../Doc/c-api/long.rst:279 ../Doc/c-api/long.rst:299 +#, fuzzy +msgid "Use :meth:`~object.__index__` if available." msgstr "Use :meth:`__index__` si está disponible." -#: ../Doc/c-api/long.rst:130 ../Doc/c-api/long.rst:150 -#: ../Doc/c-api/long.rst:171 ../Doc/c-api/long.rst:193 -#: ../Doc/c-api/long.rst:277 ../Doc/c-api/long.rst:297 -msgid "This function will no longer use :meth:`__int__`." +#: ../Doc/c-api/long.rst:135 ../Doc/c-api/long.rst:155 +#: ../Doc/c-api/long.rst:176 ../Doc/c-api/long.rst:198 +#: ../Doc/c-api/long.rst:282 ../Doc/c-api/long.rst:302 +#, fuzzy +msgid "This function will no longer use :meth:`~object.__int__`." msgstr "Esta función no usará más :meth:`__int__`." -#: ../Doc/c-api/long.rst:140 +#: ../Doc/c-api/long.rst:145 +#, fuzzy msgid "" -"If the value of *obj* is greater than :const:`LONG_MAX` or less than :const:" -"`LONG_MIN`, set *\\*overflow* to ``1`` or ``-1``, respectively, and return " -"``-1``; otherwise, set *\\*overflow* to ``0``. If any other exception " -"occurs set *\\*overflow* to ``0`` and return ``-1`` as usual." +"If the value of *obj* is greater than :c:macro:`LONG_MAX` or less than :c:" +"macro:`LONG_MIN`, set *\\*overflow* to ``1`` or ``-1``, respectively, and " +"return ``-1``; otherwise, set *\\*overflow* to ``0``. If any other " +"exception occurs set *\\*overflow* to ``0`` and return ``-1`` as usual." msgstr "" "Si el valor de *obj* es mayor que :const:`LONG_MAX` o menor que :const:" "`LONG_MIN`, establece *\\*overflow * en ``1`` o ``-1``, respectivamente, y " @@ -232,18 +245,18 @@ msgstr "" "produce alguna otra excepción, configura *\\*overflow* en ``0`` y retorna " "``-1`` como de costumbre." -#: ../Doc/c-api/long.rst:159 ../Doc/c-api/long.rst:177 +#: ../Doc/c-api/long.rst:164 ../Doc/c-api/long.rst:182 #, fuzzy msgid "" "Return a C :c:expr:`long long` representation of *obj*. If *obj* is not an " -"instance of :c:type:`PyLongObject`, first call its :meth:`__index__` method " -"(if present) to convert it to a :c:type:`PyLongObject`." +"instance of :c:type:`PyLongObject`, first call its :meth:`~object.__index__` " +"method (if present) to convert it to a :c:type:`PyLongObject`." msgstr "" "Retorna una representación C :c:type:`long long` de *obj*. Si *obj* no es " "una instancia de :c:type:`PyLongObject`, primero llame a su método :meth:" "`__index__` (si está presente) para convertirlo en un :c:type:`PyLongObject`." -#: ../Doc/c-api/long.rst:163 +#: ../Doc/c-api/long.rst:168 #, fuzzy msgid "" "Raise :exc:`OverflowError` if the value of *obj* is out of range for a :c:" @@ -252,12 +265,13 @@ msgstr "" "Lanza :exc:`OverflowError` si el valor de *obj* está fuera de rango para un :" "c:type:`long long`." -#: ../Doc/c-api/long.rst:181 +#: ../Doc/c-api/long.rst:186 +#, fuzzy msgid "" -"If the value of *obj* is greater than :const:`LLONG_MAX` or less than :const:" -"`LLONG_MIN`, set *\\*overflow* to ``1`` or ``-1``, respectively, and return " -"``-1``; otherwise, set *\\*overflow* to ``0``. If any other exception " -"occurs set *\\*overflow* to ``0`` and return ``-1`` as usual." +"If the value of *obj* is greater than :c:macro:`LLONG_MAX` or less than :c:" +"macro:`LLONG_MIN`, set *\\*overflow* to ``1`` or ``-1``, respectively, and " +"return ``-1``; otherwise, set *\\*overflow* to ``0``. If any other " +"exception occurs set *\\*overflow* to ``0`` and return ``-1`` as usual." msgstr "" "Si el valor de *obj* es mayor que :const:`LLONG_MAX` o menor que :const:" "`LLONG_MIN`, establece *\\*overflow* en ``1`` o ``-1``, respectivamente, y " @@ -265,7 +279,7 @@ msgstr "" "produce alguna otra excepción, configura *\\*overflow* en ``0`` y retorna " "``-1`` como de costumbre." -#: ../Doc/c-api/long.rst:203 +#: ../Doc/c-api/long.rst:208 msgid "" "Return a C :c:type:`Py_ssize_t` representation of *pylong*. *pylong* must " "be an instance of :c:type:`PyLongObject`." @@ -273,7 +287,7 @@ msgstr "" "Retorna una representación de C :c:type:`Py_ssize_t` de *pylong*. *pylong* " "debe ser una instancia de :c:type:`PyLongObject`." -#: ../Doc/c-api/long.rst:206 +#: ../Doc/c-api/long.rst:211 msgid "" "Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:" "type:`Py_ssize_t`." @@ -281,7 +295,7 @@ msgstr "" "Lanza :exc:`OverflowError` si el valor de *pylong* está fuera de rango para " "un :c:type:`Py_ssize_t`." -#: ../Doc/c-api/long.rst:218 +#: ../Doc/c-api/long.rst:223 #, fuzzy msgid "" "Return a C :c:expr:`unsigned long` representation of *pylong*. *pylong* " @@ -290,7 +304,7 @@ msgstr "" "Retorna una representación de C :c:type:`unsigned long` de *pylong*. " "*pylong* debe ser una instancia de :c:type:`PyLongObject`." -#: ../Doc/c-api/long.rst:221 +#: ../Doc/c-api/long.rst:226 #, fuzzy msgid "" "Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:" @@ -299,7 +313,7 @@ msgstr "" "Lanza :exc:`OverflowError` si el valor de *pylong* está fuera de rango para " "un :c:type:`unsigned long`." -#: ../Doc/c-api/long.rst:224 +#: ../Doc/c-api/long.rst:229 msgid "" "Returns ``(unsigned long)-1`` on error. Use :c:func:`PyErr_Occurred` to " "disambiguate." @@ -307,7 +321,7 @@ msgstr "" "Retorna ``(unsigned long)-1`` en caso de error. Use :c:func:`PyErr_Occurred` " "para desambiguar." -#: ../Doc/c-api/long.rst:234 +#: ../Doc/c-api/long.rst:239 msgid "" "Return a C :c:type:`size_t` representation of *pylong*. *pylong* must be an " "instance of :c:type:`PyLongObject`." @@ -315,7 +329,7 @@ msgstr "" "Retorna una representación de C :c:type:`size_t` de *pylong*. *pylong* debe " "ser una instancia de :c:type:`PyLongObject`." -#: ../Doc/c-api/long.rst:237 +#: ../Doc/c-api/long.rst:242 msgid "" "Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:" "type:`size_t`." @@ -323,7 +337,7 @@ msgstr "" "Lanza :exc:`OverflowError` si el valor de *pylong* está fuera de rango para " "un :c:type:`size_t`." -#: ../Doc/c-api/long.rst:240 +#: ../Doc/c-api/long.rst:245 msgid "" "Returns ``(size_t)-1`` on error. Use :c:func:`PyErr_Occurred` to " "disambiguate." @@ -331,7 +345,7 @@ msgstr "" "Retorna ``(size_t) -1`` en caso de error. Use :c:func:`PyErr_Occurred` para " "desambiguar." -#: ../Doc/c-api/long.rst:249 +#: ../Doc/c-api/long.rst:254 #, fuzzy msgid "" "Return a C :c:expr:`unsigned long long` representation of *pylong*. " @@ -340,7 +354,7 @@ msgstr "" "Retorna una representación de C :c:type:`unsigned long long` de *pylong*. " "*pylong* debe ser una instancia de :c:type:`PyLongObject`." -#: ../Doc/c-api/long.rst:252 +#: ../Doc/c-api/long.rst:257 #, fuzzy msgid "" "Raise :exc:`OverflowError` if the value of *pylong* is out of range for an :" @@ -349,7 +363,7 @@ msgstr "" "Lanza :exc:`OverflowError` si el valor de *pylong* está fuera de rango para " "un :c:type:`unsigned long long`." -#: ../Doc/c-api/long.rst:255 +#: ../Doc/c-api/long.rst:260 msgid "" "Returns ``(unsigned long long)-1`` on error. Use :c:func:`PyErr_Occurred` to " "disambiguate." @@ -357,25 +371,25 @@ msgstr "" "Retorna ``(unsigned long long) -1`` en caso de error. Use :c:func:" "`PyErr_Occurred` para desambiguar." -#: ../Doc/c-api/long.rst:258 +#: ../Doc/c-api/long.rst:263 msgid "" "A negative *pylong* now raises :exc:`OverflowError`, not :exc:`TypeError`." msgstr "" "Ahora un *pylong* negativo lanza un :exc:`OverflowError`, no :exc:" "`TypeError`." -#: ../Doc/c-api/long.rst:264 +#: ../Doc/c-api/long.rst:269 #, fuzzy msgid "" "Return a C :c:expr:`unsigned long` representation of *obj*. If *obj* is not " -"an instance of :c:type:`PyLongObject`, first call its :meth:`__index__` " -"method (if present) to convert it to a :c:type:`PyLongObject`." +"an instance of :c:type:`PyLongObject`, first call its :meth:`~object." +"__index__` method (if present) to convert it to a :c:type:`PyLongObject`." msgstr "" "Retorna una representación C :c:type:`unsigned long` de *obj*. Si *obj* no " "es una instancia de :c:type:`PyLongObject`, primero llame a su método :meth:" "`__index__` (si está presente) para convertirlo en un :c:type:`PyLongObject`." -#: ../Doc/c-api/long.rst:268 +#: ../Doc/c-api/long.rst:273 #, fuzzy msgid "" "If the value of *obj* is out of range for an :c:expr:`unsigned long`, return " @@ -384,7 +398,7 @@ msgstr "" "Si el valor de *obj* está fuera del rango para :c:type:`unsigned long`, " "retorna la reducción de ese valor módulo ``ULONG_MAX + 1``." -#: ../Doc/c-api/long.rst:271 +#: ../Doc/c-api/long.rst:276 msgid "" "Returns ``(unsigned long)-1`` on error. Use :c:func:`PyErr_Occurred` to " "disambiguate." @@ -392,19 +406,19 @@ msgstr "" "Retorna ``(unsigned long)-1`` en caso de error. Use :c:func:`PyErr_Occurred` " "para desambiguar." -#: ../Doc/c-api/long.rst:283 +#: ../Doc/c-api/long.rst:288 #, fuzzy msgid "" "Return a C :c:expr:`unsigned long long` representation of *obj*. If *obj* " -"is not an instance of :c:type:`PyLongObject`, first call its :meth:" -"`__index__` method (if present) to convert it to a :c:type:`PyLongObject`." +"is not an instance of :c:type:`PyLongObject`, first call its :meth:`~object." +"__index__` method (if present) to convert it to a :c:type:`PyLongObject`." msgstr "" "Retorna una representación C :c:type:`unsigned long long` de *obj*. Si *obj* " "no es una instancia de :c:type:`PyLongObject`, primero llame a su método :" "meth:`__index__` (si está presente) para convertirlo en un :c:type:" "`PyLongObject`." -#: ../Doc/c-api/long.rst:288 +#: ../Doc/c-api/long.rst:293 #, fuzzy msgid "" "If the value of *obj* is out of range for an :c:expr:`unsigned long long`, " @@ -413,7 +427,7 @@ msgstr "" "Si el valor de *obj* está fuera del rango para :c:type:`unsigned long long`, " "retorna la reducción de ese valor módulo ``ULLONG_MAX + 1``." -#: ../Doc/c-api/long.rst:291 +#: ../Doc/c-api/long.rst:296 msgid "" "Returns ``(unsigned long long)-1`` on error. Use :c:func:`PyErr_Occurred` " "to disambiguate." @@ -421,7 +435,7 @@ msgstr "" "Retorna ``(unsigned long long) -1`` por error. Use :c:func:`PyErr_Occurred` " "para desambiguar." -#: ../Doc/c-api/long.rst:303 +#: ../Doc/c-api/long.rst:308 #, fuzzy msgid "" "Return a C :c:expr:`double` representation of *pylong*. *pylong* must be an " @@ -430,7 +444,7 @@ msgstr "" "Retorna una representación de C :c:type:`double` de *pylong*. *pylong* debe " "ser una instancia de :c:type:`PyLongObject`." -#: ../Doc/c-api/long.rst:306 +#: ../Doc/c-api/long.rst:311 #, fuzzy msgid "" "Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:" @@ -439,14 +453,14 @@ msgstr "" "Lanza :exc:`OverflowError` si el valor de *pylong* está fuera de rango para " "un :c:type:`double`." -#: ../Doc/c-api/long.rst:309 +#: ../Doc/c-api/long.rst:314 msgid "" "Returns ``-1.0`` on error. Use :c:func:`PyErr_Occurred` to disambiguate." msgstr "" "Retorna ``-1.0`` en caso de error. Use :c:func:`PyErr_Occurred` para " "desambiguar." -#: ../Doc/c-api/long.rst:314 +#: ../Doc/c-api/long.rst:319 #, fuzzy msgid "" "Convert a Python integer *pylong* to a C :c:expr:`void` pointer. If *pylong* " @@ -459,9 +473,77 @@ msgstr "" "solo se garantiza para producir un puntero utilizable :c:type:`void` para " "valores creados con :c:func:`PyLong_FromVoidPtr`." -#: ../Doc/c-api/long.rst:319 +#: ../Doc/c-api/long.rst:324 msgid "" "Returns ``NULL`` on error. Use :c:func:`PyErr_Occurred` to disambiguate." msgstr "" "Retorna ``NULL`` en caso de error. Use :c:func:`PyErr_Occurred` para " "desambiguar." + +#: ../Doc/c-api/long.rst:329 +msgid "Return 1 if *op* is compact, 0 otherwise." +msgstr "" + +#: ../Doc/c-api/long.rst:331 +msgid "" +"This function makes it possible for performance-critical code to implement a " +"“fast path” for small integers. For compact values use :c:func:" +"`PyUnstable_Long_CompactValue`; for others fall back to a :c:func:" +"`PyLong_As* ` function or :c:func:`calling " +"` :meth:`int.to_bytes`." +msgstr "" + +#: ../Doc/c-api/long.rst:337 +msgid "The speedup is expected to be negligible for most users." +msgstr "" + +#: ../Doc/c-api/long.rst:339 +msgid "" +"Exactly what values are considered compact is an implementation detail and " +"is subject to change." +msgstr "" + +#: ../Doc/c-api/long.rst:344 +msgid "" +"If *op* is compact, as determined by :c:func:`PyUnstable_Long_IsCompact`, " +"return its value." +msgstr "" + +#: ../Doc/c-api/long.rst:347 +msgid "Otherwise, the return value is undefined." +msgstr "" + +#: ../Doc/c-api/long.rst:8 +msgid "object" +msgstr "" + +#: ../Doc/c-api/long.rst:8 +msgid "long integer" +msgstr "" + +#: ../Doc/c-api/long.rst:8 +#, fuzzy +msgid "integer" +msgstr "Objetos enteros" + +#: ../Doc/c-api/long.rst:119 +msgid "LONG_MAX" +msgstr "" + +#: ../Doc/c-api/long.rst:119 ../Doc/c-api/long.rst:161 +#: ../Doc/c-api/long.rst:204 ../Doc/c-api/long.rst:219 +#: ../Doc/c-api/long.rst:235 ../Doc/c-api/long.rst:251 +msgid "OverflowError (built-in exception)" +msgstr "" + +#: ../Doc/c-api/long.rst:204 +msgid "PY_SSIZE_T_MAX" +msgstr "" + +#: ../Doc/c-api/long.rst:219 +msgid "ULONG_MAX" +msgstr "" + +#: ../Doc/c-api/long.rst:235 +msgid "SIZE_MAX" +msgstr "" diff --git a/c-api/mapping.po b/c-api/mapping.po index f72c07e839..2eb6e076e6 100644 --- a/c-api/mapping.po +++ b/c-api/mapping.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-05-10 02:44+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/mapping.rst:6 msgid "Mapping Protocol" @@ -38,8 +38,8 @@ msgstr "" msgid "" "Return ``1`` if the object provides the mapping protocol or supports " "slicing, and ``0`` otherwise. Note that it returns ``1`` for Python classes " -"with a :meth:`__getitem__` method, since in general it is impossible to " -"determine what type of keys the class supports. This function always " +"with a :meth:`~object.__getitem__` method, since in general it is impossible " +"to determine what type of keys the class supports. This function always " "succeeds." msgstr "" "Retorna ``1`` si el objeto proporciona el protocolo de mapeo o admite " @@ -58,46 +58,30 @@ msgstr "" #: ../Doc/c-api/mapping.rst:31 msgid "" -"Return element of *o* corresponding to the string *key* or ``NULL`` on " -"failure. This is the equivalent of the Python expression ``o[key]``. See " -"also :c:func:`PyObject_GetItem`." +"This is the same as :c:func:`PyObject_GetItem`, but *key* is specified as a :" +"c:expr:`const char*` UTF-8 encoded bytes string, rather than a :c:expr:" +"`PyObject*`." msgstr "" -"Retorna el elemento de *o* correspondiente a la cadena de caracteres *key* o " -"``NULL`` en caso de error. Este es el equivalente de la expresión de Python " -"``o[key]``. Ver también :c:func:`PyObject_GetItem`." #: ../Doc/c-api/mapping.rst:38 msgid "" -"Map the string *key* to the value *v* in object *o*. Returns ``-1`` on " -"failure. This is the equivalent of the Python statement ``o[key] = v``. See " -"also :c:func:`PyObject_SetItem`. This function *does not* steal a reference " -"to *v*." +"This is the same as :c:func:`PyObject_SetItem`, but *key* is specified as a :" +"c:expr:`const char*` UTF-8 encoded bytes string, rather than a :c:expr:" +"`PyObject*`." msgstr "" -"Asigna la cadena de caracteres *key* al valor *v* en el objeto *o*. Retorna " -"``-1`` en caso de falla. Este es el equivalente de la declaración de Python " -"``o[key] = v``. Ver también :c:func:`PyObject_SetItem`. Esta función *no* " -"roba una referencia a *v*." -#: ../Doc/c-api/mapping.rst:46 -msgid "" -"Remove the mapping for the object *key* from the object *o*. Return ``-1`` " -"on failure. This is equivalent to the Python statement ``del o[key]``. This " -"is an alias of :c:func:`PyObject_DelItem`." +#: ../Doc/c-api/mapping.rst:45 +msgid "This is an alias of :c:func:`PyObject_DelItem`." msgstr "" -"Elimina la asignación para el objeto *key* del objeto *o*. Retorna ``-1`` en " -"caso de falla. Esto es equivalente a la declaración de Python ``del " -"o[key]``. Este es un alias de :c:func:`PyObject_DelItem`." -#: ../Doc/c-api/mapping.rst:53 +#: ../Doc/c-api/mapping.rst:50 msgid "" -"Remove the mapping for the string *key* from the object *o*. Return ``-1`` " -"on failure. This is equivalent to the Python statement ``del o[key]``." +"This is the same as :c:func:`PyObject_DelItem`, but *key* is specified as a :" +"c:expr:`const char*` UTF-8 encoded bytes string, rather than a :c:expr:" +"`PyObject*`." msgstr "" -"Elimina la asignación de la cadena de caracteres *key* del objeto *o*. " -"Retorna ``-1`` en caso de falla. Esto es equivalente a la declaración de " -"Python ``del o[key]``." -#: ../Doc/c-api/mapping.rst:59 ../Doc/c-api/mapping.rst:70 +#: ../Doc/c-api/mapping.rst:57 msgid "" "Return ``1`` if the mapping object has the key *key* and ``0`` otherwise. " "This is equivalent to the Python expression ``key in o``. This function " @@ -108,27 +92,36 @@ msgstr "" "función siempre finaliza con éxito." #: ../Doc/c-api/mapping.rst:63 +#, fuzzy msgid "" -"Note that exceptions which occur while calling the :meth:`__getitem__` " -"method will get suppressed. To get error reporting use :c:func:" +"Exceptions which occur when this calls :meth:`~object.__getitem__` method " +"are silently ignored. For proper error handling, use :c:func:" "`PyObject_GetItem()` instead." msgstr "" "Tenga en cuenta que las excepciones que se producen al llamar al método :" "meth:`__getitem__` se suprimirán. Para obtener informes de errores, utilice :" "c:func:`PyObject_GetItem()` en su lugar." -#: ../Doc/c-api/mapping.rst:74 +#: ../Doc/c-api/mapping.rst:70 +msgid "" +"This is the same as :c:func:`PyMapping_HasKey`, but *key* is specified as a :" +"c:expr:`const char*` UTF-8 encoded bytes string, rather than a :c:expr:" +"`PyObject*`." +msgstr "" + +#: ../Doc/c-api/mapping.rst:76 +#, fuzzy msgid "" -"Note that exceptions which occur while calling the :meth:`__getitem__` " -"method and creating a temporary string object will get suppressed. To get " -"error reporting use :c:func:`PyMapping_GetItemString()` instead." +"Exceptions that occur when this calls :meth:`~object.__getitem__` method or " +"while creating the temporary :class:`str` object are silently ignored. For " +"proper error handling, use :c:func:`PyMapping_GetItemString` instead." msgstr "" "Tenga en cuenta que las excepciones que se producen al llamar al método :" "meth:`__getitem__` y al crear un objeto de cadena de caracteres temporal se " "suprimirán. Para obtener informes de errores, utilice :c:func:" "`PyMapping_GetItemString()` en su lugar." -#: ../Doc/c-api/mapping.rst:81 +#: ../Doc/c-api/mapping.rst:84 msgid "" "On success, return a list of the keys in object *o*. On failure, return " "``NULL``." @@ -136,12 +129,12 @@ msgstr "" "En caso de éxito, retorna una lista de las claves en el objeto *o*. En caso " "de fallo, retorna ``NULL``." -#: ../Doc/c-api/mapping.rst:84 ../Doc/c-api/mapping.rst:93 -#: ../Doc/c-api/mapping.rst:102 +#: ../Doc/c-api/mapping.rst:87 ../Doc/c-api/mapping.rst:96 +#: ../Doc/c-api/mapping.rst:105 msgid "Previously, the function returned a list or a tuple." msgstr "Anteriormente, la función retornaba una lista o una tupla." -#: ../Doc/c-api/mapping.rst:90 +#: ../Doc/c-api/mapping.rst:93 msgid "" "On success, return a list of the values in object *o*. On failure, return " "``NULL``." @@ -149,7 +142,7 @@ msgstr "" "En caso de éxito, retorna una lista de los valores en el objeto *o*. En caso " "de fallo, retorna ``NULL``." -#: ../Doc/c-api/mapping.rst:99 +#: ../Doc/c-api/mapping.rst:102 msgid "" "On success, return a list of the items in object *o*, where each item is a " "tuple containing a key-value pair. On failure, return ``NULL``." @@ -157,3 +150,49 @@ msgstr "" "En caso de éxito, retorna una lista de los elementos en el objeto *o*, donde " "cada elemento es una tupla que contiene un par clave-valor (*key-value*). En " "caso de fallo, retorna ``NULL``." + +#: ../Doc/c-api/mapping.rst:23 +msgid "built-in function" +msgstr "" + +#: ../Doc/c-api/mapping.rst:23 +msgid "len" +msgstr "" + +#~ msgid "" +#~ "Return element of *o* corresponding to the string *key* or ``NULL`` on " +#~ "failure. This is the equivalent of the Python expression ``o[key]``. See " +#~ "also :c:func:`PyObject_GetItem`." +#~ msgstr "" +#~ "Retorna el elemento de *o* correspondiente a la cadena de caracteres " +#~ "*key* o ``NULL`` en caso de error. Este es el equivalente de la expresión " +#~ "de Python ``o[key]``. Ver también :c:func:`PyObject_GetItem`." + +#~ msgid "" +#~ "Map the string *key* to the value *v* in object *o*. Returns ``-1`` on " +#~ "failure. This is the equivalent of the Python statement ``o[key] = v``. " +#~ "See also :c:func:`PyObject_SetItem`. This function *does not* steal a " +#~ "reference to *v*." +#~ msgstr "" +#~ "Asigna la cadena de caracteres *key* al valor *v* en el objeto *o*. " +#~ "Retorna ``-1`` en caso de falla. Este es el equivalente de la declaración " +#~ "de Python ``o[key] = v``. Ver también :c:func:`PyObject_SetItem`. Esta " +#~ "función *no* roba una referencia a *v*." + +#~ msgid "" +#~ "Remove the mapping for the object *key* from the object *o*. Return " +#~ "``-1`` on failure. This is equivalent to the Python statement ``del " +#~ "o[key]``. This is an alias of :c:func:`PyObject_DelItem`." +#~ msgstr "" +#~ "Elimina la asignación para el objeto *key* del objeto *o*. Retorna ``-1`` " +#~ "en caso de falla. Esto es equivalente a la declaración de Python ``del " +#~ "o[key]``. Este es un alias de :c:func:`PyObject_DelItem`." + +#~ msgid "" +#~ "Remove the mapping for the string *key* from the object *o*. Return " +#~ "``-1`` on failure. This is equivalent to the Python statement ``del " +#~ "o[key]``." +#~ msgstr "" +#~ "Elimina la asignación de la cadena de caracteres *key* del objeto *o*. " +#~ "Retorna ``-1`` en caso de falla. Esto es equivalente a la declaración de " +#~ "Python ``del o[key]``." diff --git a/c-api/marshal.po b/c-api/marshal.po index c3b7242bdf..c50197ed0f 100644 --- a/c-api/marshal.po +++ b/c-api/marshal.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-30 17:51-0600\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/marshal.rst:6 msgid "Data marshalling support" @@ -68,7 +68,13 @@ msgstr "" "importar el tamaño del tipo :c:expr:`long` nativo. *version* indica el " "formato del archivo." -#: ../Doc/c-api/marshal.rst:31 +#: ../Doc/c-api/marshal.rst:28 ../Doc/c-api/marshal.rst:36 +msgid "" +"This function can fail, in which case it sets the error indicator. Use :c:" +"func:`PyErr_Occurred` to check for that." +msgstr "" + +#: ../Doc/c-api/marshal.rst:33 msgid "" "Marshal a Python object, *value*, to *file*. *version* indicates the file " "format." @@ -76,7 +82,7 @@ msgstr "" "Empaqueta (*marshal*) un objeto Python, *value*, a un archivo *file*. " "*version* indica el formato del archivo." -#: ../Doc/c-api/marshal.rst:37 +#: ../Doc/c-api/marshal.rst:41 msgid "" "Return a bytes object containing the marshalled representation of *value*. " "*version* indicates the file format." @@ -84,13 +90,13 @@ msgstr "" "Retorna un objeto de bytes que contiene la representación empaquetada " "(*marshalled*) de *value*. *version* indica el formato del archivo." -#: ../Doc/c-api/marshal.rst:41 +#: ../Doc/c-api/marshal.rst:45 msgid "The following functions allow marshalled values to be read back in." msgstr "" "Las siguientes funciones permiten volver a leer los valores empaquetados " "(*marshalled*)." -#: ../Doc/c-api/marshal.rst:46 +#: ../Doc/c-api/marshal.rst:50 msgid "" "Return a C :c:expr:`long` from the data stream in a :c:expr:`FILE*` opened " "for reading. Only a 32-bit value can be read in using this function, " @@ -100,7 +106,7 @@ msgstr "" "`FILE*` abierto para lectura. Solo se puede leer un valor de 32 bits con " "esta función, independientemente del tamaño nativo del tipo :c:expr:`long`." -#: ../Doc/c-api/marshal.rst:50 ../Doc/c-api/marshal.rst:60 +#: ../Doc/c-api/marshal.rst:54 ../Doc/c-api/marshal.rst:64 msgid "" "On error, sets the appropriate exception (:exc:`EOFError`) and returns " "``-1``." @@ -108,7 +114,7 @@ msgstr "" "En caso de error, establece la excepción apropiada (:exc:`EOFError`) y " "retorna ``-1``." -#: ../Doc/c-api/marshal.rst:56 +#: ../Doc/c-api/marshal.rst:60 msgid "" "Return a C :c:expr:`short` from the data stream in a :c:expr:`FILE*` opened " "for reading. Only a 16-bit value can be read in using this function, " @@ -118,7 +124,7 @@ msgstr "" "`FILE*` abierto para lectura. Solo se puede leer un valor de 16 bits con " "esta función, independientemente del tamaño nativo del tipo :c:expr:`short`." -#: ../Doc/c-api/marshal.rst:66 +#: ../Doc/c-api/marshal.rst:70 msgid "" "Return a Python object from the data stream in a :c:expr:`FILE*` opened for " "reading." @@ -126,8 +132,8 @@ msgstr "" "Retorna un objeto Python del flujo de datos :c:expr:`FILE*` abierto para " "lectura." -#: ../Doc/c-api/marshal.rst:69 ../Doc/c-api/marshal.rst:83 -#: ../Doc/c-api/marshal.rst:92 +#: ../Doc/c-api/marshal.rst:73 ../Doc/c-api/marshal.rst:87 +#: ../Doc/c-api/marshal.rst:96 msgid "" "On error, sets the appropriate exception (:exc:`EOFError`, :exc:`ValueError` " "or :exc:`TypeError`) and returns ``NULL``." @@ -135,7 +141,7 @@ msgstr "" "En caso de error, establece la excepción apropiada (:exc:`EOFError`, :exc:" "`ValueError` o :exc:`TypeError`) y retorna ``NULL``." -#: ../Doc/c-api/marshal.rst:75 +#: ../Doc/c-api/marshal.rst:79 msgid "" "Return a Python object from the data stream in a :c:expr:`FILE*` opened for " "reading. Unlike :c:func:`PyMarshal_ReadObjectFromFile`, this function " @@ -154,7 +160,7 @@ msgstr "" "la vez desde el archivo. Solo use esta variante si está seguro de que no " "leerá nada más del archivo." -#: ../Doc/c-api/marshal.rst:89 +#: ../Doc/c-api/marshal.rst:93 msgid "" "Return a Python object from the data stream in a byte buffer containing " "*len* bytes pointed to by *data*." diff --git a/c-api/memory.po b/c-api/memory.po index afc6b1e21b..5475451a86 100644 --- a/c-api/memory.po +++ b/c-api/memory.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.11\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-27 03:12-0300\n" "Last-Translator: Marco Richetta \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.1.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/memory.rst:8 msgid "Memory Management" @@ -176,7 +175,7 @@ msgstr "" msgid "Allocator Domains" msgstr "Dominios del asignador" -#: ../Doc/c-api/memory.rst:98 +#: ../Doc/c-api/memory.rst:100 msgid "" "All allocating functions belong to one of three different \"domains\" (see " "also :c:type:`PyMemAllocatorDomain`). These domains represent different " @@ -205,11 +204,11 @@ msgstr "" "para asignar objetos Python o la memoria retornada por :c:func:" "`PyObject_Malloc` para asignar memoria para búferes." -#: ../Doc/c-api/memory.rst:110 +#: ../Doc/c-api/memory.rst:112 msgid "The three allocation domains are:" msgstr "Los tres dominios de asignación son:" -#: ../Doc/c-api/memory.rst:112 +#: ../Doc/c-api/memory.rst:114 msgid "" "Raw domain: intended for allocating memory for general-purpose memory " "buffers where the allocation *must* go to the system allocator or where the " @@ -221,7 +220,7 @@ msgstr "" "el asignador puede operar sin el :term:`GIL`. La memoria se solicita " "directamente al sistema." -#: ../Doc/c-api/memory.rst:117 +#: ../Doc/c-api/memory.rst:119 msgid "" "\"Mem\" domain: intended for allocating memory for Python buffers and " "general-purpose memory buffers where the allocation must be performed with " @@ -232,7 +231,7 @@ msgstr "" "con el :term:`GIL` retenido. La memoria se toma del montículo privado de " "Python." -#: ../Doc/c-api/memory.rst:121 +#: ../Doc/c-api/memory.rst:123 msgid "" "Object domain: intended for allocating memory belonging to Python objects. " "The memory is taken from the Python private heap." @@ -240,7 +239,7 @@ msgstr "" "Dominio de objeto: destinado a asignar memoria perteneciente a objetos de " "Python. La memoria se toma del montículo privado de Python." -#: ../Doc/c-api/memory.rst:124 +#: ../Doc/c-api/memory.rst:126 msgid "" "When freeing memory previously allocated by the allocating functions " "belonging to a given domain,the matching specific deallocating functions " @@ -252,11 +251,11 @@ msgstr "" "de desasignación específicas coincidentes. Por ejemplo, :c:func:`PyMem_Free` " "debe usarse para liberar memoria asignada usando :c:func:`PyMem_Malloc`." -#: ../Doc/c-api/memory.rst:129 +#: ../Doc/c-api/memory.rst:131 msgid "Raw Memory Interface" msgstr "Interfaz de memoria sin procesar" -#: ../Doc/c-api/memory.rst:131 +#: ../Doc/c-api/memory.rst:133 msgid "" "The following function sets are wrappers to the system allocator. These " "functions are thread-safe, the :term:`GIL ` does " @@ -266,20 +265,21 @@ msgstr "" "sistema. Estas funciones son seguras para subprocesos, no es necesario " "mantener el :term:`GIL `." -#: ../Doc/c-api/memory.rst:135 +#: ../Doc/c-api/memory.rst:137 +#, fuzzy msgid "" "The :ref:`default raw memory allocator ` uses the " "following functions: :c:func:`malloc`, :c:func:`calloc`, :c:func:`realloc` " -"and :c:func:`free`; call ``malloc(1)`` (or ``calloc(1, 1)``) when requesting " -"zero bytes." +"and :c:func:`!free`; call ``malloc(1)`` (or ``calloc(1, 1)``) when " +"requesting zero bytes." msgstr "" "El :ref:`asignador de memoria sin procesar predeterminado ` usa las siguientes funciones: :c:func:`malloc`, :c:func:" "`calloc`, :c:func:`realloc` y :c:func:`free`; llame a ``malloc(1)`` (o " "``calloc(1, 1)``) cuando solicita cero bytes." -#: ../Doc/c-api/memory.rst:144 ../Doc/c-api/memory.rst:215 -#: ../Doc/c-api/memory.rst:323 +#: ../Doc/c-api/memory.rst:146 ../Doc/c-api/memory.rst:217 +#: ../Doc/c-api/memory.rst:325 msgid "" "Allocates *n* bytes and returns a pointer of type :c:expr:`void*` to the " "allocated memory, or ``NULL`` if the request fails." @@ -287,7 +287,7 @@ msgstr "" "Asigna *n* bytes y retorna un puntero de tipo :c:expr:`void*` a la memoria " "asignada, o ``NULL`` si la solicitud falla." -#: ../Doc/c-api/memory.rst:147 +#: ../Doc/c-api/memory.rst:149 msgid "" "Requesting zero bytes returns a distinct non-``NULL`` pointer if possible, " "as if ``PyMem_RawMalloc(1)`` had been called instead. The memory will not " @@ -297,8 +297,8 @@ msgstr "" "posible, como si en su lugar se hubiera llamado a ``PyMem_RawMalloc(1)``. La " "memoria no se habrá inicializado de ninguna manera." -#: ../Doc/c-api/memory.rst:154 ../Doc/c-api/memory.rst:225 -#: ../Doc/c-api/memory.rst:333 +#: ../Doc/c-api/memory.rst:156 ../Doc/c-api/memory.rst:227 +#: ../Doc/c-api/memory.rst:335 msgid "" "Allocates *nelem* elements each whose size in bytes is *elsize* and returns " "a pointer of type :c:expr:`void*` to the allocated memory, or ``NULL`` if " @@ -308,7 +308,7 @@ msgstr "" "un puntero de tipo :c:expr:`void*` a la memoria asignada, o ``NULL`` si la " "solicitud falla. La memoria se inicializa a ceros." -#: ../Doc/c-api/memory.rst:158 +#: ../Doc/c-api/memory.rst:160 msgid "" "Requesting zero elements or elements of size zero bytes returns a distinct " "non-``NULL`` pointer if possible, as if ``PyMem_RawCalloc(1, 1)`` had been " @@ -318,8 +318,8 @@ msgstr "" "distinto ``NULL`` si es posible, como si en su lugar se hubiera llamado " "``PyMem_RawCalloc(1, 1)``." -#: ../Doc/c-api/memory.rst:167 ../Doc/c-api/memory.rst:238 -#: ../Doc/c-api/memory.rst:346 +#: ../Doc/c-api/memory.rst:169 ../Doc/c-api/memory.rst:240 +#: ../Doc/c-api/memory.rst:348 msgid "" "Resizes the memory block pointed to by *p* to *n* bytes. The contents will " "be unchanged to the minimum of the old and the new sizes." @@ -327,7 +327,7 @@ msgstr "" "Cambia el tamaño del bloque de memoria señalado por *p* a *n* bytes. Los " "contenidos no se modificarán al mínimo de los tamaños antiguo y nuevo." -#: ../Doc/c-api/memory.rst:170 +#: ../Doc/c-api/memory.rst:172 msgid "" "If *p* is ``NULL``, the call is equivalent to ``PyMem_RawMalloc(n)``; else " "if *n* is equal to zero, the memory block is resized but is not freed, and " @@ -337,7 +337,7 @@ msgstr "" "lo contrario, si *n* es igual a cero, el bloque de memoria cambia de tamaño " "pero no se libera, y el puntero retornado no es ``NULL``." -#: ../Doc/c-api/memory.rst:174 +#: ../Doc/c-api/memory.rst:176 msgid "" "Unless *p* is ``NULL``, it must have been returned by a previous call to :c:" "func:`PyMem_RawMalloc`, :c:func:`PyMem_RawRealloc` or :c:func:" @@ -347,7 +347,7 @@ msgstr "" "previa a :c:func:`PyMem_RawMalloc`, :c:func:`PyMem_RawRealloc` o :c:func:" "`PyMem_RawCalloc`." -#: ../Doc/c-api/memory.rst:178 +#: ../Doc/c-api/memory.rst:180 msgid "" "If the request fails, :c:func:`PyMem_RawRealloc` returns ``NULL`` and *p* " "remains a valid pointer to the previous memory area." @@ -355,7 +355,7 @@ msgstr "" "Si la solicitud falla, :c:func:`PyMem_RawRealloc` retorna ``NULL`` y *p* " "sigue siendo un puntero válido al área de memoria anterior." -#: ../Doc/c-api/memory.rst:184 +#: ../Doc/c-api/memory.rst:186 msgid "" "Frees the memory block pointed to by *p*, which must have been returned by a " "previous call to :c:func:`PyMem_RawMalloc`, :c:func:`PyMem_RawRealloc` or :c:" @@ -368,16 +368,16 @@ msgstr "" "llamado antes a ``PyMem_RawFree(p)``, se produce un comportamiento " "indefinido." -#: ../Doc/c-api/memory.rst:189 ../Doc/c-api/memory.rst:259 -#: ../Doc/c-api/memory.rst:367 +#: ../Doc/c-api/memory.rst:191 ../Doc/c-api/memory.rst:261 +#: ../Doc/c-api/memory.rst:369 msgid "If *p* is ``NULL``, no operation is performed." msgstr "Si *p* es ``NULL``, no se realiza ninguna operación." -#: ../Doc/c-api/memory.rst:195 +#: ../Doc/c-api/memory.rst:197 msgid "Memory Interface" msgstr "Interfaz de memoria" -#: ../Doc/c-api/memory.rst:197 ../Doc/c-api/memory.rst:303 +#: ../Doc/c-api/memory.rst:199 ../Doc/c-api/memory.rst:305 msgid "" "The following function sets, modeled after the ANSI C standard, but " "specifying behavior when requesting zero bytes, are available for allocating " @@ -387,7 +387,7 @@ msgstr "" "pero que especifican el comportamiento cuando se solicitan cero bytes, están " "disponibles para asignar y liberar memoria del montón de Python." -#: ../Doc/c-api/memory.rst:201 +#: ../Doc/c-api/memory.rst:203 msgid "" "The :ref:`default memory allocator ` uses the :" "ref:`pymalloc memory allocator `." @@ -395,7 +395,7 @@ msgstr "" "El :ref:`asignador de memoria predeterminado ` " "usa el :ref:`asignador de memorya pymalloc `." -#: ../Doc/c-api/memory.rst:206 ../Doc/c-api/memory.rst:318 +#: ../Doc/c-api/memory.rst:208 ../Doc/c-api/memory.rst:320 msgid "" "The :term:`GIL ` must be held when using these " "functions." @@ -403,14 +403,14 @@ msgstr "" "El :term:`GIL ` debe mantenerse cuando se utilizan " "estas funciones." -#: ../Doc/c-api/memory.rst:211 +#: ../Doc/c-api/memory.rst:213 msgid "" "The default allocator is now pymalloc instead of system :c:func:`malloc`." msgstr "" "El asignador predeterminado ahora es pymalloc en lugar del :c:func:`malloc` " "del sistema." -#: ../Doc/c-api/memory.rst:218 +#: ../Doc/c-api/memory.rst:220 msgid "" "Requesting zero bytes returns a distinct non-``NULL`` pointer if possible, " "as if ``PyMem_Malloc(1)`` had been called instead. The memory will not have " @@ -420,7 +420,7 @@ msgstr "" "posible, como si en su lugar se hubiera llamado a ``PyMem_Malloc(1)``. La " "memoria no se habrá inicializado de ninguna manera." -#: ../Doc/c-api/memory.rst:229 +#: ../Doc/c-api/memory.rst:231 msgid "" "Requesting zero elements or elements of size zero bytes returns a distinct " "non-``NULL`` pointer if possible, as if ``PyMem_Calloc(1, 1)`` had been " @@ -430,7 +430,7 @@ msgstr "" "distinto ``NULL`` si es posible, como si en su lugar se hubiera llamado " "``PyMem_Calloc(1, 1)``." -#: ../Doc/c-api/memory.rst:241 +#: ../Doc/c-api/memory.rst:243 msgid "" "If *p* is ``NULL``, the call is equivalent to ``PyMem_Malloc(n)``; else if " "*n* is equal to zero, the memory block is resized but is not freed, and the " @@ -440,7 +440,7 @@ msgstr "" "contrario, si *n* es igual a cero, el bloque de memoria cambia de tamaño " "pero no se libera, y el puntero retornado no es ``NULL``." -#: ../Doc/c-api/memory.rst:245 +#: ../Doc/c-api/memory.rst:247 msgid "" "Unless *p* is ``NULL``, it must have been returned by a previous call to :c:" "func:`PyMem_Malloc`, :c:func:`PyMem_Realloc` or :c:func:`PyMem_Calloc`." @@ -449,7 +449,7 @@ msgstr "" "previa a :c:func:`PyMem_Malloc`, :c:func:`PyMem_Realloc` o :c:func:" "`PyMem_Calloc`." -#: ../Doc/c-api/memory.rst:248 +#: ../Doc/c-api/memory.rst:250 msgid "" "If the request fails, :c:func:`PyMem_Realloc` returns ``NULL`` and *p* " "remains a valid pointer to the previous memory area." @@ -457,7 +457,7 @@ msgstr "" "Si la solicitud falla, :c:func:`PyMem_Realloc` retorna ``NULL`` y *p* sigue " "siendo un puntero válido al área de memoria anterior." -#: ../Doc/c-api/memory.rst:254 +#: ../Doc/c-api/memory.rst:256 msgid "" "Frees the memory block pointed to by *p*, which must have been returned by a " "previous call to :c:func:`PyMem_Malloc`, :c:func:`PyMem_Realloc` or :c:func:" @@ -469,7 +469,7 @@ msgstr "" "o :c:func:`PyMem_Calloc`. De lo contrario, o si se ha llamado antes a " "``PyMem_Free(p)``, se produce un comportamiento indefinido." -#: ../Doc/c-api/memory.rst:261 +#: ../Doc/c-api/memory.rst:263 msgid "" "The following type-oriented macros are provided for convenience. Note that " "*TYPE* refers to any C type." @@ -477,7 +477,7 @@ msgstr "" "Las siguientes macros orientadas a tipos se proporcionan por conveniencia. " "Tenga en cuenta que *TYPE* se refiere a cualquier tipo de C." -#: ../Doc/c-api/memory.rst:267 +#: ../Doc/c-api/memory.rst:269 msgid "" "Same as :c:func:`PyMem_Malloc`, but allocates ``(n * sizeof(TYPE))`` bytes " "of memory. Returns a pointer cast to :c:expr:`TYPE*`. The memory will not " @@ -487,7 +487,7 @@ msgstr "" "de memoria. Retorna una conversión de puntero a :c:expr:`TYPE*`. La memoria " "no se habrá inicializado de ninguna manera." -#: ../Doc/c-api/memory.rst:274 +#: ../Doc/c-api/memory.rst:276 msgid "" "Same as :c:func:`PyMem_Realloc`, but the memory block is resized to ``(n * " "sizeof(TYPE))`` bytes. Returns a pointer cast to :c:expr:`TYPE*`. On " @@ -499,7 +499,7 @@ msgstr "" "c:expr:`TYPE*`. Al retornar, *p* será un puntero a la nueva área de memoria, " "o ``NULL`` en caso de falla." -#: ../Doc/c-api/memory.rst:279 +#: ../Doc/c-api/memory.rst:281 msgid "" "This is a C preprocessor macro; *p* is always reassigned. Save the original " "value of *p* to avoid losing memory when handling errors." @@ -507,11 +507,11 @@ msgstr "" "Esta es una macro de preprocesador C; *p* siempre se reasigna. Guarde el " "valor original de *p* para evitar perder memoria al manejar errores." -#: ../Doc/c-api/memory.rst:285 +#: ../Doc/c-api/memory.rst:287 msgid "Same as :c:func:`PyMem_Free`." msgstr "La misma que :c:func:`PyMem_Free`." -#: ../Doc/c-api/memory.rst:287 +#: ../Doc/c-api/memory.rst:289 msgid "" "In addition, the following macro sets are provided for calling the Python " "memory allocator directly, without involving the C API functions listed " @@ -524,35 +524,35 @@ msgstr "" "no conserva la compatibilidad binaria entre las versiones de Python y, por " "lo tanto, está en desuso en los módulos de extensión." -#: ../Doc/c-api/memory.rst:292 +#: ../Doc/c-api/memory.rst:294 msgid "``PyMem_MALLOC(size)``" msgstr "``PyMem_MALLOC(size)``" -#: ../Doc/c-api/memory.rst:293 +#: ../Doc/c-api/memory.rst:295 msgid "``PyMem_NEW(type, size)``" msgstr "``PyMem_NEW(type, size)``" -#: ../Doc/c-api/memory.rst:294 +#: ../Doc/c-api/memory.rst:296 msgid "``PyMem_REALLOC(ptr, size)``" msgstr "``PyMem_REALLOC(ptr, size)``" -#: ../Doc/c-api/memory.rst:295 +#: ../Doc/c-api/memory.rst:297 msgid "``PyMem_RESIZE(ptr, type, size)``" msgstr "``PyMem_RESIZE(ptr, type, size)``" -#: ../Doc/c-api/memory.rst:296 +#: ../Doc/c-api/memory.rst:298 msgid "``PyMem_FREE(ptr)``" msgstr "``PyMem_FREE(ptr)``" -#: ../Doc/c-api/memory.rst:297 +#: ../Doc/c-api/memory.rst:299 msgid "``PyMem_DEL(ptr)``" msgstr "``PyMem_DEL(ptr)``" -#: ../Doc/c-api/memory.rst:301 +#: ../Doc/c-api/memory.rst:303 msgid "Object allocators" msgstr "Asignadores de objetos" -#: ../Doc/c-api/memory.rst:308 +#: ../Doc/c-api/memory.rst:310 msgid "" "There is no guarantee that the memory returned by these allocators can be " "successfully cast to a Python object when intercepting the allocating " @@ -564,7 +564,7 @@ msgstr "" "asignación en este dominio mediante los métodos descritos en la sección :ref:" "`Personalizar Asignadores de Memoria `." -#: ../Doc/c-api/memory.rst:313 +#: ../Doc/c-api/memory.rst:315 msgid "" "The :ref:`default object allocator ` uses the :" "ref:`pymalloc memory allocator `." @@ -572,7 +572,7 @@ msgstr "" "El :ref:`asignador predeterminado de objetos ` " "usa el :ref:`asignador de memoria pymalloc `." -#: ../Doc/c-api/memory.rst:326 +#: ../Doc/c-api/memory.rst:328 msgid "" "Requesting zero bytes returns a distinct non-``NULL`` pointer if possible, " "as if ``PyObject_Malloc(1)`` had been called instead. The memory will not " @@ -582,7 +582,7 @@ msgstr "" "posible, como si en su lugar se hubiera llamado a ``PyObject_Malloc(1)``. La " "memoria no se habrá inicializado de ninguna manera." -#: ../Doc/c-api/memory.rst:337 +#: ../Doc/c-api/memory.rst:339 msgid "" "Requesting zero elements or elements of size zero bytes returns a distinct " "non-``NULL`` pointer if possible, as if ``PyObject_Calloc(1, 1)`` had been " @@ -592,7 +592,7 @@ msgstr "" "distinto ``NULL`` si es posible, como si en su lugar se hubiera llamado " "``PyObject_Calloc(1, 1)``." -#: ../Doc/c-api/memory.rst:349 +#: ../Doc/c-api/memory.rst:351 msgid "" "If *p* is ``NULL``, the call is equivalent to ``PyObject_Malloc(n)``; else " "if *n* is equal to zero, the memory block is resized but is not freed, and " @@ -602,7 +602,7 @@ msgstr "" "lo contrario, si *n* es igual a cero, el bloque de memoria cambia de tamaño " "pero no se libera, y el puntero retornado no es ``NULL``." -#: ../Doc/c-api/memory.rst:353 +#: ../Doc/c-api/memory.rst:355 msgid "" "Unless *p* is ``NULL``, it must have been returned by a previous call to :c:" "func:`PyObject_Malloc`, :c:func:`PyObject_Realloc` or :c:func:" @@ -612,7 +612,7 @@ msgstr "" "previa a :c:func:`PyObject_Malloc`, :c:func:`PyObject_Realloc` o :c:func:" "`PyObject_Calloc`." -#: ../Doc/c-api/memory.rst:356 +#: ../Doc/c-api/memory.rst:358 msgid "" "If the request fails, :c:func:`PyObject_Realloc` returns ``NULL`` and *p* " "remains a valid pointer to the previous memory area." @@ -620,7 +620,7 @@ msgstr "" "Si la solicitud falla, :c:func:`PyObject_Realloc` retorna ``NULL`` y *p* " "sigue siendo un puntero válido al área de memoria anterior." -#: ../Doc/c-api/memory.rst:362 +#: ../Doc/c-api/memory.rst:364 msgid "" "Frees the memory block pointed to by *p*, which must have been returned by a " "previous call to :c:func:`PyObject_Malloc`, :c:func:`PyObject_Realloc` or :c:" @@ -633,91 +633,91 @@ msgstr "" "llamado antes a ``PyObject_Free(p)``, se produce un comportamiento " "indefinido." -#: ../Doc/c-api/memory.rst:373 +#: ../Doc/c-api/memory.rst:375 msgid "Default Memory Allocators" msgstr "Asignadores de memoria predeterminados" -#: ../Doc/c-api/memory.rst:375 +#: ../Doc/c-api/memory.rst:377 msgid "Default memory allocators:" msgstr "Asignadores de memoria predeterminados:" -#: ../Doc/c-api/memory.rst:378 +#: ../Doc/c-api/memory.rst:380 msgid "Configuration" msgstr "Configuración" -#: ../Doc/c-api/memory.rst:378 +#: ../Doc/c-api/memory.rst:380 msgid "Name" msgstr "Nombre" -#: ../Doc/c-api/memory.rst:378 +#: ../Doc/c-api/memory.rst:380 msgid "PyMem_RawMalloc" msgstr "PyMem_RawMalloc" -#: ../Doc/c-api/memory.rst:378 +#: ../Doc/c-api/memory.rst:380 msgid "PyMem_Malloc" msgstr "PyMem_Malloc" -#: ../Doc/c-api/memory.rst:378 +#: ../Doc/c-api/memory.rst:380 msgid "PyObject_Malloc" msgstr "PyObject_Malloc" -#: ../Doc/c-api/memory.rst:380 +#: ../Doc/c-api/memory.rst:382 msgid "Release build" msgstr "Lanzamiento de compilación" -#: ../Doc/c-api/memory.rst:380 +#: ../Doc/c-api/memory.rst:382 msgid "``\"pymalloc\"``" msgstr "``\"pymalloc\"``" -#: ../Doc/c-api/memory.rst:380 ../Doc/c-api/memory.rst:382 +#: ../Doc/c-api/memory.rst:382 ../Doc/c-api/memory.rst:384 msgid "``malloc``" msgstr "``malloc``" -#: ../Doc/c-api/memory.rst:380 +#: ../Doc/c-api/memory.rst:382 msgid "``pymalloc``" msgstr "``malloc`` + debug" -#: ../Doc/c-api/memory.rst:381 +#: ../Doc/c-api/memory.rst:383 msgid "Debug build" msgstr "Compilación de depuración" -#: ../Doc/c-api/memory.rst:381 +#: ../Doc/c-api/memory.rst:383 msgid "``\"pymalloc_debug\"``" msgstr "``\"pymalloc_debug\"``" -#: ../Doc/c-api/memory.rst:381 ../Doc/c-api/memory.rst:383 +#: ../Doc/c-api/memory.rst:383 ../Doc/c-api/memory.rst:385 msgid "``malloc`` + debug" msgstr "``malloc`` + debug" -#: ../Doc/c-api/memory.rst:381 +#: ../Doc/c-api/memory.rst:383 msgid "``pymalloc`` + debug" msgstr "``pymalloc`` + debug" -#: ../Doc/c-api/memory.rst:382 +#: ../Doc/c-api/memory.rst:384 msgid "Release build, without pymalloc" msgstr "Lanzamiento de compilación, sin pymalloc" -#: ../Doc/c-api/memory.rst:382 +#: ../Doc/c-api/memory.rst:384 msgid "``\"malloc\"``" msgstr "``\"malloc\"``" -#: ../Doc/c-api/memory.rst:383 +#: ../Doc/c-api/memory.rst:385 msgid "Debug build, without pymalloc" msgstr "Compilación de depuración, sin pymalloc" -#: ../Doc/c-api/memory.rst:383 +#: ../Doc/c-api/memory.rst:385 msgid "``\"malloc_debug\"``" msgstr "``\"malloc_debug\"``" -#: ../Doc/c-api/memory.rst:386 +#: ../Doc/c-api/memory.rst:388 msgid "Legend:" msgstr "Leyenda:" -#: ../Doc/c-api/memory.rst:388 +#: ../Doc/c-api/memory.rst:390 msgid "Name: value for :envvar:`PYTHONMALLOC` environment variable." msgstr "Nombre: valor para variable de entorno :envvar:`PYTHONMALLOC`." -#: ../Doc/c-api/memory.rst:389 +#: ../Doc/c-api/memory.rst:391 msgid "" "``malloc``: system allocators from the standard C library, C functions: :c:" "func:`malloc`, :c:func:`calloc`, :c:func:`realloc` and :c:func:`free`." @@ -725,13 +725,13 @@ msgstr "" "``malloc``: asignadores del sistema de la biblioteca C estándar, funciones " "C: :c:func:`malloc`, :c:func:`calloc`, :c:func:`realloc` y :c:func:`free`." -#: ../Doc/c-api/memory.rst:391 +#: ../Doc/c-api/memory.rst:393 msgid "``pymalloc``: :ref:`pymalloc memory allocator `." msgstr "``pymalloc``: :ref:`asignador de memoria pymalloc `." # debug hooks se deja como enlaces de depuración ya que en traducciones # anteriores se dejó como enlaces -#: ../Doc/c-api/memory.rst:392 +#: ../Doc/c-api/memory.rst:394 msgid "" "\"+ debug\": with :ref:`debug hooks on the Python memory allocators `." @@ -739,17 +739,17 @@ msgstr "" "\"+ debug\": con :ref:`enlaces de depuración en los asignadores de memoria " "de Python `." -#: ../Doc/c-api/memory.rst:394 +#: ../Doc/c-api/memory.rst:396 msgid "\"Debug build\": :ref:`Python build in debug mode `." msgstr "" "\"Debug build\": :ref:`Compilación de Python en modo de depuración `." -#: ../Doc/c-api/memory.rst:399 +#: ../Doc/c-api/memory.rst:401 msgid "Customize Memory Allocators" msgstr "Personalizar asignadores de memoria" -#: ../Doc/c-api/memory.rst:405 +#: ../Doc/c-api/memory.rst:407 msgid "" "Structure used to describe a memory block allocator. The structure has the " "following fields:" @@ -757,128 +757,129 @@ msgstr "" "Estructura utilizada para describir un asignador de bloque de memoria. La " "estructura tiene cuatro campos:" -#: ../Doc/c-api/memory.rst:409 ../Doc/c-api/memory.rst:628 +#: ../Doc/c-api/memory.rst:411 ../Doc/c-api/memory.rst:657 msgid "Field" msgstr "Campo" -#: ../Doc/c-api/memory.rst:409 ../Doc/c-api/memory.rst:628 +#: ../Doc/c-api/memory.rst:411 ../Doc/c-api/memory.rst:657 msgid "Meaning" msgstr "Significado" -#: ../Doc/c-api/memory.rst:411 ../Doc/c-api/memory.rst:630 +#: ../Doc/c-api/memory.rst:413 ../Doc/c-api/memory.rst:659 msgid "``void *ctx``" msgstr "``void *ctx``" -#: ../Doc/c-api/memory.rst:411 ../Doc/c-api/memory.rst:630 +#: ../Doc/c-api/memory.rst:413 ../Doc/c-api/memory.rst:659 msgid "user context passed as first argument" msgstr "contexto de usuario pasado como primer argumento" -#: ../Doc/c-api/memory.rst:413 +#: ../Doc/c-api/memory.rst:415 msgid "``void* malloc(void *ctx, size_t size)``" msgstr "``void* malloc(void *ctx, size_t size)``" -#: ../Doc/c-api/memory.rst:413 +#: ../Doc/c-api/memory.rst:415 msgid "allocate a memory block" msgstr "asignar un bloque de memoria" -#: ../Doc/c-api/memory.rst:415 +#: ../Doc/c-api/memory.rst:417 msgid "``void* calloc(void *ctx, size_t nelem, size_t elsize)``" msgstr "``void* calloc(void *ctx, size_t nelem, size_t elsize)``" -#: ../Doc/c-api/memory.rst:415 +#: ../Doc/c-api/memory.rst:417 msgid "allocate a memory block initialized with zeros" msgstr "asignar un bloque de memoria inicializado con ceros" -#: ../Doc/c-api/memory.rst:418 +#: ../Doc/c-api/memory.rst:420 msgid "``void* realloc(void *ctx, void *ptr, size_t new_size)``" msgstr "``void* realloc(void *ctx, void *ptr, size_t new_size)``" -#: ../Doc/c-api/memory.rst:418 +#: ../Doc/c-api/memory.rst:420 msgid "allocate or resize a memory block" msgstr "asignar o cambiar el tamaño de un bloque de memoria" -#: ../Doc/c-api/memory.rst:420 +#: ../Doc/c-api/memory.rst:422 msgid "``void free(void *ctx, void *ptr)``" msgstr "``void free(void *ctx, void *ptr)``" -#: ../Doc/c-api/memory.rst:420 +#: ../Doc/c-api/memory.rst:422 msgid "free a memory block" msgstr "liberar un bloque de memoria" -#: ../Doc/c-api/memory.rst:423 +#: ../Doc/c-api/memory.rst:425 +#, fuzzy msgid "" -"The :c:type:`PyMemAllocator` structure was renamed to :c:type:" +"The :c:type:`!PyMemAllocator` structure was renamed to :c:type:" "`PyMemAllocatorEx` and a new ``calloc`` field was added." msgstr "" "La estructura :c:type:`PyMemAllocator` se renombró a :c:type:" "`PyMemAllocatorEx` y se agregó un nuevo campo ``calloc``." -#: ../Doc/c-api/memory.rst:430 +#: ../Doc/c-api/memory.rst:432 msgid "Enum used to identify an allocator domain. Domains:" msgstr "Enum se utiliza para identificar un dominio asignador. Dominios:" -#: ../Doc/c-api/memory.rst:434 ../Doc/c-api/memory.rst:443 -#: ../Doc/c-api/memory.rst:452 +#: ../Doc/c-api/memory.rst:438 ../Doc/c-api/memory.rst:447 +#: ../Doc/c-api/memory.rst:456 msgid "Functions:" msgstr "Funciones:" -#: ../Doc/c-api/memory.rst:436 +#: ../Doc/c-api/memory.rst:440 msgid ":c:func:`PyMem_RawMalloc`" msgstr ":c:func:`PyMem_RawMalloc`" -#: ../Doc/c-api/memory.rst:437 +#: ../Doc/c-api/memory.rst:441 msgid ":c:func:`PyMem_RawRealloc`" msgstr ":c:func:`PyMem_RawRealloc`" -#: ../Doc/c-api/memory.rst:438 +#: ../Doc/c-api/memory.rst:442 msgid ":c:func:`PyMem_RawCalloc`" msgstr ":c:func:`PyMem_RawCalloc`" -#: ../Doc/c-api/memory.rst:439 +#: ../Doc/c-api/memory.rst:443 msgid ":c:func:`PyMem_RawFree`" msgstr ":c:func:`PyMem_RawFree`" -#: ../Doc/c-api/memory.rst:445 +#: ../Doc/c-api/memory.rst:449 msgid ":c:func:`PyMem_Malloc`," msgstr ":c:func:`PyMem_Malloc`," -#: ../Doc/c-api/memory.rst:446 +#: ../Doc/c-api/memory.rst:450 msgid ":c:func:`PyMem_Realloc`" msgstr ":c:func:`PyMem_Realloc`" -#: ../Doc/c-api/memory.rst:447 +#: ../Doc/c-api/memory.rst:451 msgid ":c:func:`PyMem_Calloc`" msgstr ":c:func:`PyMem_Calloc`" -#: ../Doc/c-api/memory.rst:448 +#: ../Doc/c-api/memory.rst:452 msgid ":c:func:`PyMem_Free`" msgstr ":c:func:`PyMem_Free`" -#: ../Doc/c-api/memory.rst:454 +#: ../Doc/c-api/memory.rst:458 msgid ":c:func:`PyObject_Malloc`" msgstr ":c:func:`PyObject_Malloc`" -#: ../Doc/c-api/memory.rst:455 +#: ../Doc/c-api/memory.rst:459 msgid ":c:func:`PyObject_Realloc`" msgstr ":c:func:`PyObject_Realloc`" -#: ../Doc/c-api/memory.rst:456 +#: ../Doc/c-api/memory.rst:460 msgid ":c:func:`PyObject_Calloc`" msgstr ":c:func:`PyObject_Calloc`" -#: ../Doc/c-api/memory.rst:457 +#: ../Doc/c-api/memory.rst:461 msgid ":c:func:`PyObject_Free`" msgstr ":c:func:`PyObject_Free`" -#: ../Doc/c-api/memory.rst:461 +#: ../Doc/c-api/memory.rst:465 msgid "Get the memory block allocator of the specified domain." msgstr "Obtenga el asignador de bloque de memoria del dominio especificado." -#: ../Doc/c-api/memory.rst:466 +#: ../Doc/c-api/memory.rst:470 msgid "Set the memory block allocator of the specified domain." msgstr "Establece el asignador de bloque de memoria del dominio especificado." -#: ../Doc/c-api/memory.rst:468 +#: ../Doc/c-api/memory.rst:472 msgid "" "The new allocator must return a distinct non-``NULL`` pointer when " "requesting zero bytes." @@ -886,9 +887,10 @@ msgstr "" "El nuevo asignador debe retornar un puntero distinto ``NULL`` al solicitar " "cero bytes." -#: ../Doc/c-api/memory.rst:471 +#: ../Doc/c-api/memory.rst:475 +#, fuzzy msgid "" -"For the :c:data:`PYMEM_DOMAIN_RAW` domain, the allocator must be thread-" +"For the :c:macro:`PYMEM_DOMAIN_RAW` domain, the allocator must be thread-" "safe: the :term:`GIL ` is not held when the " "allocator is called." msgstr "" @@ -896,7 +898,14 @@ msgstr "" "para subprocesos: el :term:`GIL ` no se mantiene " "cuando se llama al asignador." -#: ../Doc/c-api/memory.rst:475 +#: ../Doc/c-api/memory.rst:479 +msgid "" +"For the remaining domains, the allocator must also be thread-safe: the " +"allocator may be called in different interpreters that do not share a " +"``GIL``." +msgstr "" + +#: ../Doc/c-api/memory.rst:483 msgid "" "If the new allocator is not a hook (does not call the previous allocator), " "the :c:func:`PyMem_SetupDebugHooks` function must be called to reinstall the " @@ -906,7 +915,7 @@ msgstr "" "debe llamar a la función :c:func:`PyMem_SetupDebugHooks` para reinstalar los " "enlaces de depuración en la parte superior del nuevo asignador." -#: ../Doc/c-api/memory.rst:479 +#: ../Doc/c-api/memory.rst:487 msgid "" "See also :c:member:`PyPreConfig.allocator` and :ref:`Preinitialize Python " "with PyPreConfig `." @@ -914,7 +923,33 @@ msgstr "" "Vea también :c:member:`PyPreConfig.allocator` y :ref:`Preinicialización de " "Python con PyPreConfig `." -#: ../Doc/c-api/memory.rst:484 +#: ../Doc/c-api/memory.rst:492 +msgid ":c:func:`PyMem_SetAllocator` does have the following contract:" +msgstr "" + +#: ../Doc/c-api/memory.rst:494 +msgid "" +"It can be called after :c:func:`Py_PreInitialize` and before :c:func:" +"`Py_InitializeFromConfig` to install a custom memory allocator. There are no " +"restrictions over the installed allocator other than the ones imposed by the " +"domain (for instance, the Raw Domain allows the allocator to be called " +"without the GIL held). See :ref:`the section on allocator domains ` for more information." +msgstr "" + +#: ../Doc/c-api/memory.rst:502 +msgid "" +"If called after Python has finish initializing (after :c:func:" +"`Py_InitializeFromConfig` has been called) the allocator **must** wrap the " +"existing allocator. Substituting the current allocator for some other " +"arbitrary one is **not supported**." +msgstr "" + +#: ../Doc/c-api/memory.rst:507 +msgid "All allocators must be thread-safe." +msgstr "" + +#: ../Doc/c-api/memory.rst:513 msgid "" "Setup :ref:`debug hooks in the Python memory allocators ` " "to detect memory errors." @@ -922,14 +957,14 @@ msgstr "" "Configurar :ref:`enlaces de depuración en los asignadores de memoria de " "Python ` para detectar errores de memoria." -#: ../Doc/c-api/memory.rst:491 +#: ../Doc/c-api/memory.rst:520 msgid "Debug hooks on the Python memory allocators" msgstr "" "Configurar enlaces para detectar errores en las funciones del asignador de " "memoria de Python" # "debug hooks" como se traduciría -#: ../Doc/c-api/memory.rst:493 +#: ../Doc/c-api/memory.rst:522 msgid "" "When :ref:`Python is built in debug mode `, the :c:func:" "`PyMem_SetupDebugHooks` function is called at the :ref:`Python " @@ -941,7 +976,7 @@ msgstr "" "de Python ` para configurar los enlaces de depuración en Python " "asignadores de memoria para detectar errores de memoria." -#: ../Doc/c-api/memory.rst:498 +#: ../Doc/c-api/memory.rst:527 msgid "" "The :envvar:`PYTHONMALLOC` environment variable can be used to install debug " "hooks on a Python compiled in release mode (ex: ``PYTHONMALLOC=debug``)." @@ -950,7 +985,7 @@ msgstr "" "instalar enlaces de depuración en un Python compilado en modo de lanzamiento " "(por ejemplo: ``PYTHONMALLOC=debug``)." -#: ../Doc/c-api/memory.rst:501 +#: ../Doc/c-api/memory.rst:530 msgid "" "The :c:func:`PyMem_SetupDebugHooks` function can be used to set debug hooks " "after calling :c:func:`PyMem_SetAllocator`." @@ -959,7 +994,7 @@ msgstr "" "enlaces de depuración después de llamar a :c:func:`PyMem_SetAllocator`." # hooks como se traduce? -#: ../Doc/c-api/memory.rst:504 +#: ../Doc/c-api/memory.rst:533 msgid "" "These debug hooks fill dynamically allocated memory blocks with special, " "recognizable bit patterns. Newly allocated memory is filled with the byte " @@ -976,11 +1011,11 @@ msgstr "" "byte ``0xFD`` (``PYMEM_FORBIDDENBYTE``). Es poco probable que las cadenas de " "estos bytes sean direcciones válidas, flotantes o cadenas ASCII." -#: ../Doc/c-api/memory.rst:511 +#: ../Doc/c-api/memory.rst:540 msgid "Runtime checks:" msgstr "Verificaciones de tiempo de ejecución:" -#: ../Doc/c-api/memory.rst:513 +#: ../Doc/c-api/memory.rst:542 msgid "" "Detect API violations. For example, detect if :c:func:`PyObject_Free` is " "called on a memory block allocated by :c:func:`PyMem_Malloc`." @@ -988,28 +1023,30 @@ msgstr "" "Detecte violaciones de API, por ejemplo: :c:func:`PyObject_Free` llamado en " "un búfer asignado por :c:func:`PyMem_Malloc`." -#: ../Doc/c-api/memory.rst:515 +#: ../Doc/c-api/memory.rst:544 msgid "Detect write before the start of the buffer (buffer underflow)." msgstr "" "Detectar escritura antes del inicio del búfer (desbordamiento del búfer)" -#: ../Doc/c-api/memory.rst:516 +#: ../Doc/c-api/memory.rst:545 msgid "Detect write after the end of the buffer (buffer overflow)." msgstr "" "Detectar escritura después del final del búfer (desbordamiento del búfer)" -#: ../Doc/c-api/memory.rst:517 +#: ../Doc/c-api/memory.rst:546 +#, fuzzy msgid "" "Check that the :term:`GIL ` is held when allocator " -"functions of :c:data:`PYMEM_DOMAIN_OBJ` (ex: :c:func:`PyObject_Malloc`) and :" -"c:data:`PYMEM_DOMAIN_MEM` (ex: :c:func:`PyMem_Malloc`) domains are called." +"functions of :c:macro:`PYMEM_DOMAIN_OBJ` (ex: :c:func:`PyObject_Malloc`) " +"and :c:macro:`PYMEM_DOMAIN_MEM` (ex: :c:func:`PyMem_Malloc`) domains are " +"called." msgstr "" "Comprueba que :term:`GIL ` se mantiene cuando las " "funciones del asignador de :c:data:`PYMEM_DOMAIN_OBJ` (ej: :c:func:" "`PyObject_Malloc`) y dominios :c:data:`PYMEM_DOMAIN_MEM` (por ejemplo: :c:" "func:`PyMem_Malloc`) se llaman." -#: ../Doc/c-api/memory.rst:522 +#: ../Doc/c-api/memory.rst:551 msgid "" "On error, the debug hooks use the :mod:`tracemalloc` module to get the " "traceback where a memory block was allocated. The traceback is only " @@ -1021,7 +1058,7 @@ msgstr "" "El rastreo solo se muestra si :mod:`tracemalloc` rastrea las asignaciones de " "memoria de Python y se rastrea el bloque de memoria." -#: ../Doc/c-api/memory.rst:527 +#: ../Doc/c-api/memory.rst:556 msgid "" "Let *S* = ``sizeof(size_t)``. ``2*S`` bytes are added at each end of each " "block of *N* bytes requested. The memory layout is like so, where p " @@ -1037,11 +1074,11 @@ msgstr "" "hasta ``*(p+j)`` exclusivo; tenga en cuenta que el tratamiento de los " "índices negativos difiere de un segmento de Python):" -#: ../Doc/c-api/memory.rst:534 +#: ../Doc/c-api/memory.rst:563 msgid "``p[-2*S:-S]``" msgstr "``p[-2*S:-S]``" -#: ../Doc/c-api/memory.rst:534 +#: ../Doc/c-api/memory.rst:563 msgid "" "Number of bytes originally asked for. This is a size_t, big-endian (easier " "to read in a memory dump)." @@ -1049,41 +1086,44 @@ msgstr "" "Número de bytes solicitados originalmente. Este es un size_t, big-endian " "(más fácil de leer en un volcado de memoria)." -#: ../Doc/c-api/memory.rst:541 +#: ../Doc/c-api/memory.rst:570 msgid "``p[-S]``" msgstr "``p[-S]``" -#: ../Doc/c-api/memory.rst:537 +#: ../Doc/c-api/memory.rst:566 msgid "API identifier (ASCII character):" msgstr "Identificador de API (carácter ASCII):" -#: ../Doc/c-api/memory.rst:539 -msgid "``'r'`` for :c:data:`PYMEM_DOMAIN_RAW`." +#: ../Doc/c-api/memory.rst:568 +#, fuzzy +msgid "``'r'`` for :c:macro:`PYMEM_DOMAIN_RAW`." msgstr "``'r'`` para :c:data:`PYMEM_DOMAIN_RAW`." -#: ../Doc/c-api/memory.rst:540 -msgid "``'m'`` for :c:data:`PYMEM_DOMAIN_MEM`." +#: ../Doc/c-api/memory.rst:569 +#, fuzzy +msgid "``'m'`` for :c:macro:`PYMEM_DOMAIN_MEM`." msgstr "``'m'`` para :c:data:`PYMEM_DOMAIN_MEM`." -#: ../Doc/c-api/memory.rst:541 -msgid "``'o'`` for :c:data:`PYMEM_DOMAIN_OBJ`." +#: ../Doc/c-api/memory.rst:570 +#, fuzzy +msgid "``'o'`` for :c:macro:`PYMEM_DOMAIN_OBJ`." msgstr "``'o'`` para :c:data:`PYMEM_DOMAIN_OBJ`." -#: ../Doc/c-api/memory.rst:544 +#: ../Doc/c-api/memory.rst:573 msgid "``p[-S+1:0]``" msgstr "``p[-S+1:0]``" -#: ../Doc/c-api/memory.rst:544 +#: ../Doc/c-api/memory.rst:573 msgid "Copies of PYMEM_FORBIDDENBYTE. Used to catch under- writes and reads." msgstr "" "Copias de PYMEM_FORBIDDENBYTE. Se utiliza para detectar suscripciones y " "lecturas." -#: ../Doc/c-api/memory.rst:553 +#: ../Doc/c-api/memory.rst:582 msgid "``p[0:N]``" msgstr "``p[0:N]``" -#: ../Doc/c-api/memory.rst:547 +#: ../Doc/c-api/memory.rst:576 msgid "" "The requested memory, filled with copies of PYMEM_CLEANBYTE, used to catch " "reference to uninitialized memory. When a realloc-like function is called " @@ -1102,21 +1142,21 @@ msgstr "" "similar a la realloc solicitando un bloque de memoria más pequeño, los bytes " "antiguos sobrantes también se llenan con PYMEM_DEADBYTE." -#: ../Doc/c-api/memory.rst:556 +#: ../Doc/c-api/memory.rst:585 msgid "``p[N:N+S]``" msgstr "``p[N:N+S]``" -#: ../Doc/c-api/memory.rst:556 +#: ../Doc/c-api/memory.rst:585 msgid "Copies of PYMEM_FORBIDDENBYTE. Used to catch over- writes and reads." msgstr "" "Copias de PYMEM_FORBIDDENBYTE. Se utiliza para detectar sobrescrituras y " "lecturas." -#: ../Doc/c-api/memory.rst:567 +#: ../Doc/c-api/memory.rst:596 msgid "``p[N+S:N+2*S]``" msgstr "``p[N+S:N+2*S]``" -#: ../Doc/c-api/memory.rst:559 +#: ../Doc/c-api/memory.rst:588 msgid "" "Only used if the ``PYMEM_DEBUG_SERIALNO`` macro is defined (not defined by " "default)." @@ -1124,14 +1164,15 @@ msgstr "" "Solo se utiliza si la macro ``PYMEM_DEBUG_SERIALNO`` está definida (no " "definida por defecto)." -#: ../Doc/c-api/memory.rst:562 +#: ../Doc/c-api/memory.rst:591 +#, fuzzy msgid "" "A serial number, incremented by 1 on each call to a malloc-like or realloc-" -"like function. Big-endian ``size_t``. If \"bad memory\" is detected later, " -"the serial number gives an excellent way to set a breakpoint on the next " -"run, to capture the instant at which this block was passed out. The static " -"function bumpserialno() in obmalloc.c is the only place the serial number is " -"incremented, and exists so you can set such a breakpoint easily." +"like function. Big-endian :c:type:`size_t`. If \"bad memory\" is detected " +"later, the serial number gives an excellent way to set a breakpoint on the " +"next run, to capture the instant at which this block was passed out. The " +"static function bumpserialno() in obmalloc.c is the only place the serial " +"number is incremented, and exists so you can set such a breakpoint easily." msgstr "" "Un número de serie, incrementado en 1 en cada llamada a una función similar " "a malloc o realloc. Big-endian ``size_t``. Si se detecta \"mala memoria\" " @@ -1141,7 +1182,7 @@ msgstr "" "obmalloc.c es el único lugar donde se incrementa el número de serie, y " "existe para que pueda establecer un punto de interrupción fácilmente." -#: ../Doc/c-api/memory.rst:569 +#: ../Doc/c-api/memory.rst:598 msgid "" "A realloc-like or free-like function first checks that the " "PYMEM_FORBIDDENBYTE bytes at each end are intact. If they've been altered, " @@ -1163,13 +1204,14 @@ msgstr "" "(lo que significa que se está usando la memoria liberada) o PYMEM_CLEANBYTE " "(que significa que se está usando la memoria no inicializada)." -#: ../Doc/c-api/memory.rst:578 +#: ../Doc/c-api/memory.rst:607 +#, fuzzy msgid "" "The :c:func:`PyMem_SetupDebugHooks` function now also works on Python " "compiled in release mode. On error, the debug hooks now use :mod:" "`tracemalloc` to get the traceback where a memory block was allocated. The " -"debug hooks now also check if the GIL is held when functions of :c:data:" -"`PYMEM_DOMAIN_OBJ` and :c:data:`PYMEM_DOMAIN_MEM` domains are called." +"debug hooks now also check if the GIL is held when functions of :c:macro:" +"`PYMEM_DOMAIN_OBJ` and :c:macro:`PYMEM_DOMAIN_MEM` domains are called." msgstr "" "La función :c:func:`PyMem_SetupDebugHooks` ahora también funciona en Python " "compilado en modo de lanzamiento. En caso de error, los enlaces de " @@ -1178,7 +1220,7 @@ msgstr "" "comprueban si el GIL se mantiene cuando se llaman las funciones de :c:data:" "`PYMEM_DOMAIN_OBJ` y :c:data:`PYMEM_DOMAIN_MEM` dominios." -#: ../Doc/c-api/memory.rst:586 +#: ../Doc/c-api/memory.rst:615 msgid "" "Byte patterns ``0xCB`` (``PYMEM_CLEANBYTE``), ``0xDB`` (``PYMEM_DEADBYTE``) " "and ``0xFB`` (``PYMEM_FORBIDDENBYTE``) have been replaced with ``0xCD``, " @@ -1190,11 +1232,11 @@ msgstr "" "por ``0xCD``, ``0xDD`` y ``0xFD`` para usar los mismos valores que la " "depuración de Windows CRT ``malloc()`` y ``free()``." -#: ../Doc/c-api/memory.rst:596 +#: ../Doc/c-api/memory.rst:625 msgid "The pymalloc allocator" msgstr "El asignador pymalloc" -#: ../Doc/c-api/memory.rst:598 +#: ../Doc/c-api/memory.rst:627 msgid "" "Python has a *pymalloc* allocator optimized for small objects (smaller or " "equal to 512 bytes) with a short lifetime. It uses memory mappings called " @@ -1208,33 +1250,36 @@ msgstr "" "Vuelve a :c:func:`PyMem_RawMalloc` y :c:func:`PyMem_RawRealloc` para " "asignaciones de más de 512 bytes." -#: ../Doc/c-api/memory.rst:603 +#: ../Doc/c-api/memory.rst:632 +#, fuzzy msgid "" "*pymalloc* is the :ref:`default allocator ` of " -"the :c:data:`PYMEM_DOMAIN_MEM` (ex: :c:func:`PyMem_Malloc`) and :c:data:" +"the :c:macro:`PYMEM_DOMAIN_MEM` (ex: :c:func:`PyMem_Malloc`) and :c:macro:" "`PYMEM_DOMAIN_OBJ` (ex: :c:func:`PyObject_Malloc`) domains." msgstr "" "*pymalloc* es el :ref:`asignador por defecto ` " "de :c:data:`PYMEM_DOMAIN_MEM` (por ejemplo: :c:func:`PyMem_Malloc`) y :c:" "data:`PYMEM_DOMAIN_OBJ` (por ejemplo: :c:func:`PyObject_Malloc`) dominios." -#: ../Doc/c-api/memory.rst:607 +#: ../Doc/c-api/memory.rst:636 msgid "The arena allocator uses the following functions:" msgstr "El asignador de arena utiliza las siguientes funciones:" -#: ../Doc/c-api/memory.rst:609 -msgid ":c:func:`VirtualAlloc` and :c:func:`VirtualFree` on Windows," +#: ../Doc/c-api/memory.rst:638 +#, fuzzy +msgid ":c:func:`!VirtualAlloc` and :c:func:`!VirtualFree` on Windows," msgstr ":c:func:`VirtualAlloc` y :c:func:`VirtualFree` en Windows," -#: ../Doc/c-api/memory.rst:610 -msgid ":c:func:`mmap` and :c:func:`munmap` if available," +#: ../Doc/c-api/memory.rst:639 +#, fuzzy +msgid ":c:func:`!mmap` and :c:func:`!munmap` if available," msgstr ":c:func:`mmap` y :c:func:`munmap` si está disponible," -#: ../Doc/c-api/memory.rst:611 +#: ../Doc/c-api/memory.rst:640 msgid ":c:func:`malloc` and :c:func:`free` otherwise." msgstr ":c:func:`malloc` y :c:func:`free` en caso contrario." -#: ../Doc/c-api/memory.rst:613 +#: ../Doc/c-api/memory.rst:642 msgid "" "This allocator is disabled if Python is configured with the :option:`--" "without-pymalloc` option. It can also be disabled at runtime using the :" @@ -1245,11 +1290,11 @@ msgstr "" "ejecución usando la variable de entorno :envvar:`PYTHONMALLOC` (por ejemplo: " "``PYTHONMALLOC=malloc``)." -#: ../Doc/c-api/memory.rst:618 +#: ../Doc/c-api/memory.rst:647 msgid "Customize pymalloc Arena Allocator" msgstr "Personalizar asignador de arena de pymalloc" -#: ../Doc/c-api/memory.rst:624 +#: ../Doc/c-api/memory.rst:653 msgid "" "Structure used to describe an arena allocator. The structure has three " "fields:" @@ -1257,39 +1302,39 @@ msgstr "" "Estructura utilizada para describir un asignador de arena. La estructura " "tiene tres campos:" -#: ../Doc/c-api/memory.rst:632 +#: ../Doc/c-api/memory.rst:661 msgid "``void* alloc(void *ctx, size_t size)``" msgstr "``void* alloc(void *ctx, size_t size)``" -#: ../Doc/c-api/memory.rst:632 +#: ../Doc/c-api/memory.rst:661 msgid "allocate an arena of size bytes" msgstr "asignar una arena de bytes de tamaño" -#: ../Doc/c-api/memory.rst:634 +#: ../Doc/c-api/memory.rst:663 msgid "``void free(void *ctx, void *ptr, size_t size)``" msgstr "``void free(void *ctx, void *ptr, size_t size)``" -#: ../Doc/c-api/memory.rst:634 +#: ../Doc/c-api/memory.rst:663 msgid "free an arena" msgstr "liberar la arena" -#: ../Doc/c-api/memory.rst:639 +#: ../Doc/c-api/memory.rst:668 msgid "Get the arena allocator." msgstr "Consigue el asignador de arena." -#: ../Doc/c-api/memory.rst:643 +#: ../Doc/c-api/memory.rst:672 msgid "Set the arena allocator." msgstr "Establecer el asignador de arena." -#: ../Doc/c-api/memory.rst:647 +#: ../Doc/c-api/memory.rst:676 msgid "tracemalloc C API" msgstr "tracemalloc C API" -#: ../Doc/c-api/memory.rst:653 +#: ../Doc/c-api/memory.rst:682 msgid "Track an allocated memory block in the :mod:`tracemalloc` module." msgstr "Rastree un bloque de memoria asignado en el módulo :mod:`tracemalloc`." -#: ../Doc/c-api/memory.rst:655 +#: ../Doc/c-api/memory.rst:684 msgid "" "Return ``0`` on success, return ``-1`` on error (failed to allocate memory " "to store the trace). Return ``-2`` if tracemalloc is disabled." @@ -1298,12 +1343,12 @@ msgstr "" "asignar memoria para almacenar la traza). Retorna ``-2`` si tracemalloc está " "deshabilitado." -#: ../Doc/c-api/memory.rst:658 +#: ../Doc/c-api/memory.rst:687 msgid "If memory block is already tracked, update the existing trace." msgstr "" "Si el bloque de memoria ya está rastreado, actualice el rastreo existente." -#: ../Doc/c-api/memory.rst:662 +#: ../Doc/c-api/memory.rst:691 msgid "" "Untrack an allocated memory block in the :mod:`tracemalloc` module. Do " "nothing if the block was not tracked." @@ -1311,17 +1356,17 @@ msgstr "" "Descomprima un bloque de memoria asignado en el módulo :mod:`tracemalloc`. " "No haga nada si el bloque no fue rastreado." -#: ../Doc/c-api/memory.rst:665 +#: ../Doc/c-api/memory.rst:694 msgid "Return ``-2`` if tracemalloc is disabled, otherwise return ``0``." msgstr "" "Retorna ``-2`` si tracemalloc está deshabilitado; de lo contrario, retorna " "``0``." -#: ../Doc/c-api/memory.rst:671 +#: ../Doc/c-api/memory.rst:700 msgid "Examples" msgstr "Ejemplos" -#: ../Doc/c-api/memory.rst:673 +#: ../Doc/c-api/memory.rst:702 msgid "" "Here is the example from section :ref:`memoryoverview`, rewritten so that " "the I/O buffer is allocated from the Python heap by using the first function " @@ -1331,12 +1376,12 @@ msgstr "" "el búfer de E/S se asigne desde el montón de Python utilizando el primer " "conjunto de funciones::" -#: ../Doc/c-api/memory.rst:686 +#: ../Doc/c-api/memory.rst:715 msgid "The same code using the type-oriented function set::" msgstr "" "El mismo código que utiliza el conjunto de funciones orientado a tipos::" -#: ../Doc/c-api/memory.rst:698 +#: ../Doc/c-api/memory.rst:727 msgid "" "Note that in the two examples above, the buffer is always manipulated via " "functions belonging to the same set. Indeed, it is required to use the same " @@ -1353,20 +1398,38 @@ msgstr "" "uno de los cuales está etiquetado como *fatal* porque mezcla dos asignadores " "diferentes que operan en montones diferentes.::" -#: ../Doc/c-api/memory.rst:713 +#: ../Doc/c-api/memory.rst:742 +#, fuzzy msgid "" "In addition to the functions aimed at handling raw memory blocks from the " -"Python heap, objects in Python are allocated and released with :c:func:" -"`PyObject_New`, :c:func:`PyObject_NewVar` and :c:func:`PyObject_Del`." +"Python heap, objects in Python are allocated and released with :c:macro:" +"`PyObject_New`, :c:macro:`PyObject_NewVar` and :c:func:`PyObject_Del`." msgstr "" "Además de las funciones destinadas a manejar bloques de memoria sin procesar " "del montón de Python, los objetos en Python se asignan y liberan con :c:func:" "`PyObject_New`, :c:func:`PyObject_NewVar` y :c:func:`PyObject_Del` ." -#: ../Doc/c-api/memory.rst:717 +#: ../Doc/c-api/memory.rst:746 msgid "" "These will be explained in the next chapter on defining and implementing new " "object types in C." msgstr "" "Esto se explicará en el próximo capítulo sobre cómo definir e implementar " "nuevos tipos de objetos en C." + +#: ../Doc/c-api/memory.rst:43 +#, fuzzy +msgid "malloc()" +msgstr "``malloc``" + +#: ../Doc/c-api/memory.rst:43 +msgid "calloc()" +msgstr "" + +#: ../Doc/c-api/memory.rst:43 +msgid "realloc()" +msgstr "" + +#: ../Doc/c-api/memory.rst:43 +msgid "free()" +msgstr "" diff --git a/c-api/memoryview.po b/c-api/memoryview.po index 5064cd7ada..b72d7af82f 100644 --- a/c-api/memoryview.po +++ b/c-api/memoryview.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-03-19 11:16+0100\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-01 20:28+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,8 +19,7 @@ msgstr "" "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" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/memoryview.rst:9 msgid "MemoryView objects" @@ -114,3 +113,12 @@ msgstr "" "funciones :c:func:`PyMemoryView_FromMemory` o :c:func:" "`PyMemoryView_FromBuffer`. *mview* **debe** ser una instancia de " "*memoryview*." + +#: ../Doc/c-api/memoryview.rst:5 +msgid "object" +msgstr "" + +#: ../Doc/c-api/memoryview.rst:5 +#, fuzzy +msgid "memoryview" +msgstr "Objetos de vista de memoria (*MemoryView*)" diff --git a/c-api/method.po b/c-api/method.po index bebf0db8f5..dbb650c225 100644 --- a/c-api/method.po +++ b/c-api/method.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-01 20:26+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,16 +19,17 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/method.rst:6 msgid "Instance Method Objects" msgstr "Objetos de método de instancia" #: ../Doc/c-api/method.rst:10 +#, fuzzy msgid "" -"An instance method is a wrapper for a :c:data:`PyCFunction` and the new way " -"to bind a :c:data:`PyCFunction` to a class object. It replaces the former " +"An instance method is a wrapper for a :c:type:`PyCFunction` and the new way " +"to bind a :c:type:`PyCFunction` to a class object. It replaces the former " "call ``PyMethod_New(func, NULL, class)``." msgstr "" "Un método de instancia es un contenedor para una :c:data:`PyCFunction` y la " @@ -140,3 +141,22 @@ msgid "Macro version of :c:func:`PyMethod_Self` which avoids error checking." msgstr "" "Versión macro de :c:func:`PyMethod_Self` que evita la comprobación de " "errores." + +#: ../Doc/c-api/method.rst:8 ../Doc/c-api/method.rst:50 +#, fuzzy +msgid "object" +msgstr "Objetos método" + +#: ../Doc/c-api/method.rst:8 +#, fuzzy +msgid "instancemethod" +msgstr "Objetos de método de instancia" + +#: ../Doc/c-api/method.rst:50 +#, fuzzy +msgid "method" +msgstr "Objetos método" + +#: ../Doc/c-api/method.rst:59 +msgid "MethodType (in module types)" +msgstr "" diff --git a/c-api/module.po b/c-api/module.po index 79f4b6127f..f92f01f7a7 100644 --- a/c-api/module.po +++ b/c-api/module.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-12-09 10:51+0800\n" "Last-Translator: Rodrigo Tobar \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/module.rst:6 msgid "Module Objects" @@ -158,8 +158,9 @@ msgstr "" "archivo codificado a 'utf-8'." #: ../Doc/c-api/module.rst:121 +#, fuzzy msgid "" -":c:func:`PyModule_GetFilename` raises :c:type:`UnicodeEncodeError` on " +":c:func:`PyModule_GetFilename` raises :exc:`UnicodeEncodeError` on " "unencodable filenames, use :c:func:`PyModule_GetFilenameObject` instead." msgstr "" ":c:func:`PyModule_GetFilename` lanza :c:type:`UnicodeEncodeError` en nombres " @@ -205,7 +206,8 @@ msgstr "" "estáticamente inicializada de este tipo para cada módulo." #: ../Doc/c-api/module.rst:148 -msgid "Always initialize this member to :const:`PyModuleDef_HEAD_INIT`." +#, fuzzy +msgid "Always initialize this member to :c:macro:`PyModuleDef_HEAD_INIT`." msgstr "Siempre inicialice este miembro a :const:`PyModuleDef_HEAD_INIT`." #: ../Doc/c-api/module.rst:152 @@ -232,10 +234,11 @@ msgstr "" "sub-interpretadores." #: ../Doc/c-api/module.rst:165 +#, fuzzy msgid "" "This memory area is allocated based on *m_size* on module creation, and " -"freed when the module object is deallocated, after the :c:member:`m_free` " -"function has been called, if present." +"freed when the module object is deallocated, after the :c:member:" +"`~PyModuleDef.m_free` function has been called, if present." msgstr "" "Esta área de memoria se asigna en base a *m_size* en la creación del módulo, " "y se libera cuando el objeto del módulo se desasigna, después de que se haya " @@ -302,13 +305,14 @@ msgstr "" #: ../Doc/c-api/module.rst:202 ../Doc/c-api/module.rst:217 #: ../Doc/c-api/module.rst:238 +#, fuzzy msgid "" "This function is not called if the module state was requested but is not " "allocated yet. This is the case immediately after the module is created and " "before the module is executed (:c:data:`Py_mod_exec` function). More " -"precisely, this function is not called if :c:member:`m_size` is greater than " -"0 and the module state (as returned by :c:func:`PyModule_GetState`) is " -"``NULL``." +"precisely, this function is not called if :c:member:`~PyModuleDef.m_size` is " +"greater than 0 and the module state (as returned by :c:func:" +"`PyModule_GetState`) is ``NULL``." msgstr "" "Esta función no se llama si se solicitó el estado del módulo pero aún no se " "asignó. Este es el caso inmediatamente después de que se crea el módulo y " @@ -367,9 +371,10 @@ msgstr "" "utiliza una de las siguientes funciones de creación de dos módulos:" #: ../Doc/c-api/module.rst:257 +#, fuzzy msgid "" "Create a new module object, given the definition in *def*. This behaves " -"like :c:func:`PyModule_Create2` with *module_api_version* set to :const:" +"like :c:func:`PyModule_Create2` with *module_api_version* set to :c:macro:" "`PYTHON_API_VERSION`." msgstr "" "Crea un nuevo objeto módulo, dada la definición en *def*. Esto se comporta " @@ -410,13 +415,14 @@ msgid "Multi-phase initialization" msgstr "Inicialización multifase" #: ../Doc/c-api/module.rst:281 +#, fuzzy msgid "" "An alternate way to specify extensions is to request \"multi-phase " "initialization\". Extension modules created this way behave more like Python " "modules: the initialization is split between the *creation phase*, when the " "module object is created, and the *execution phase*, when it is populated. " -"The distinction is similar to the :py:meth:`__new__` and :py:meth:`__init__` " -"methods of classes." +"The distinction is similar to the :py:meth:`!__new__` and :py:meth:`!" +"__init__` methods of classes." msgstr "" "Una forma alternativa de especificar extensiones es solicitar una " "\"inicialización de múltiples fases\". Los módulos de extensión creados de " @@ -427,6 +433,7 @@ msgstr "" "meth:`__init__`." #: ../Doc/c-api/module.rst:288 +#, fuzzy msgid "" "Unlike modules created using single-phase initialization, these modules are " "not singletons: if the *sys.modules* entry is removed and the module is re-" @@ -435,8 +442,8 @@ msgid "" "modules created from the same definition should be independent: changes to " "one should not affect the others. This means that all state should be " "specific to the module object (using e.g. using :c:func:" -"`PyModule_GetState`), or its contents (such as the module's :attr:`__dict__` " -"or individual classes created with :c:func:`PyType_FromSpec`)." +"`PyModule_GetState`), or its contents (such as the module's :attr:`~object." +"__dict__` or individual classes created with :c:func:`PyType_FromSpec`)." msgstr "" "A diferencia de los módulos creados con la inicialización monofásica, estos " "módulos no son singletons: si se elimina la entrada *sys.modules* y el " @@ -520,7 +527,7 @@ msgstr "" "Especifica una función que se llama para crear el objeto del módulo en sí. " "El puntero *value* de este espacio debe apuntar a una función de la firma:" -#: ../Doc/c-api/module.rst:342 +#: ../Doc/c-api/module.rst:343 msgid "" "The function receives a :py:class:`~importlib.machinery.ModuleSpec` " "instance, as defined in :PEP:`451`, and the module definition. It should " @@ -531,7 +538,7 @@ msgstr "" "Debería retornar un nuevo objeto de módulo, o establecer un error y retornar " "``NULL``." -#: ../Doc/c-api/module.rst:347 +#: ../Doc/c-api/module.rst:348 msgid "" "This function should be kept minimal. In particular, it should not call " "arbitrary Python code, as trying to import the same module again may result " @@ -541,7 +548,7 @@ msgstr "" "código arbitrario de Python, ya que intentar importar el mismo módulo " "nuevamente puede dar como resultado un bucle infinito." -#: ../Doc/c-api/module.rst:351 +#: ../Doc/c-api/module.rst:352 msgid "" "Multiple ``Py_mod_create`` slots may not be specified in one module " "definition." @@ -549,7 +556,7 @@ msgstr "" "Múltiples ranuras ``Py_mod_create`` no pueden especificarse en una " "definición de módulo." -#: ../Doc/c-api/module.rst:354 +#: ../Doc/c-api/module.rst:355 msgid "" "If ``Py_mod_create`` is not specified, the import machinery will create a " "normal module object using :c:func:`PyModule_New`. The name is taken from " @@ -564,7 +571,7 @@ msgstr "" "bajo diferentes nombres a través de enlaces simbólicos, todo mientras se " "comparte una definición de módulo único." -#: ../Doc/c-api/module.rst:360 +#: ../Doc/c-api/module.rst:361 msgid "" "There is no requirement for the returned object to be an instance of :c:type:" "`PyModule_Type`. Any type can be used, as long as it supports setting and " @@ -580,7 +587,7 @@ msgstr "" "``PyModuleDef`` no tiene ``NULL`` ``m_traverse``, ``m_clear``, ``m_free``; " "``m_size`` distinto de cero; o ranuras que no sean ``Py_mod_create``." -#: ../Doc/c-api/module.rst:369 +#: ../Doc/c-api/module.rst:370 msgid "" "Specifies a function that is called to *execute* the module. This is " "equivalent to executing the code of a Python module: typically, this " @@ -592,7 +599,7 @@ msgstr "" "general, esta función agrega clases y constantes al módulo. La firma de la " "función es:" -#: ../Doc/c-api/module.rst:376 +#: ../Doc/c-api/module.rst:378 msgid "" "If multiple ``Py_mod_exec`` slots are specified, they are processed in the " "order they appear in the *m_slots* array." @@ -600,16 +607,57 @@ msgstr "" "Si se especifican varias ranuras ``Py_mod_exec``, se procesan en el orden en " "que aparecen en el arreglo *m_slots*." -#: ../Doc/c-api/module.rst:379 +#: ../Doc/c-api/module.rst:383 +msgid "Specifies one of the following values:" +msgstr "" + +#: ../Doc/c-api/module.rst:389 +msgid "The module does not support being imported in subinterpreters." +msgstr "" + +#: ../Doc/c-api/module.rst:393 +msgid "" +"The module supports being imported in subinterpreters, but only when they " +"share the main interpreter's GIL. (See :ref:`isolating-extensions-howto`.)" +msgstr "" + +#: ../Doc/c-api/module.rst:399 +msgid "" +"The module supports being imported in subinterpreters, even when they have " +"their own GIL. (See :ref:`isolating-extensions-howto`.)" +msgstr "" + +#: ../Doc/c-api/module.rst:403 +msgid "" +"This slot determines whether or not importing this module in a " +"subinterpreter will fail." +msgstr "" + +#: ../Doc/c-api/module.rst:406 +#, fuzzy +msgid "" +"Multiple ``Py_mod_multiple_interpreters`` slots may not be specified in one " +"module definition." +msgstr "" +"Múltiples ranuras ``Py_mod_create`` no pueden especificarse en una " +"definición de módulo." + +#: ../Doc/c-api/module.rst:409 +msgid "" +"If ``Py_mod_multiple_interpreters`` is not specified, the import machinery " +"defaults to ``Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED``." +msgstr "" + +#: ../Doc/c-api/module.rst:414 msgid "See :PEP:`489` for more details on multi-phase initialization." msgstr "" "Ver :PEP:`489` para más detalles sobre la inicialización de múltiples fases." -#: ../Doc/c-api/module.rst:382 +#: ../Doc/c-api/module.rst:417 msgid "Low-level module creation functions" msgstr "Funciones de creación de módulos de bajo nivel" -#: ../Doc/c-api/module.rst:384 +#: ../Doc/c-api/module.rst:419 msgid "" "The following functions are called under the hood when using multi-phase " "initialization. They can be used directly, for example when creating module " @@ -622,29 +670,31 @@ msgstr "" "``PyModule_FromDefAndSpec`` como ``PyModule_ExecDef`` deben llamarse para " "inicializar completamente un módulo." -#: ../Doc/c-api/module.rst:391 +#: ../Doc/c-api/module.rst:426 +#, fuzzy msgid "" -"Create a new module object, given the definition in *module* and the " -"ModuleSpec *spec*. This behaves like :c:func:`PyModule_FromDefAndSpec2` " -"with *module_api_version* set to :const:`PYTHON_API_VERSION`." +"Create a new module object, given the definition in *def* and the ModuleSpec " +"*spec*. This behaves like :c:func:`PyModule_FromDefAndSpec2` with " +"*module_api_version* set to :c:macro:`PYTHON_API_VERSION`." msgstr "" "Cree un nuevo objeto módulo, dada la definición en *module* y ModuleSpec " "*spec*. Esto se comporta como :c:func:`PyModule_FromDefAndSpec2` con " "*module_api_version* establecido en :const:`PYTHON_API_VERSION`." -#: ../Doc/c-api/module.rst:399 +#: ../Doc/c-api/module.rst:434 +#, fuzzy msgid "" -"Create a new module object, given the definition in *module* and the " -"ModuleSpec *spec*, assuming the API version *module_api_version*. If that " -"version does not match the version of the running interpreter, a :exc:" -"`RuntimeWarning` is emitted." +"Create a new module object, given the definition in *def* and the ModuleSpec " +"*spec*, assuming the API version *module_api_version*. If that version does " +"not match the version of the running interpreter, a :exc:`RuntimeWarning` is " +"emitted." msgstr "" "Cree un nuevo objeto módulo, dada la definición en *module* y ModuleSpec " "*spec*, asumiendo la versión de API *module_api_version*. Si esa versión no " "coincide con la versión del intérprete en ejecución, se emite un :exc:" "`RuntimeWarning`." -#: ../Doc/c-api/module.rst:406 +#: ../Doc/c-api/module.rst:441 msgid "" "Most uses of this function should be using :c:func:`PyModule_FromDefAndSpec` " "instead; only use this if you are sure you need it." @@ -653,12 +703,12 @@ msgstr "" "`PyModule_FromDefAndSpec` en su lugar; solo use esto si está seguro de que " "lo necesita." -#: ../Doc/c-api/module.rst:413 +#: ../Doc/c-api/module.rst:448 msgid "Process any execution slots (:c:data:`Py_mod_exec`) given in *def*." msgstr "" "Procesa cualquier ranura de ejecución (:c:data:`Py_mod_exec`) dado en *def*." -#: ../Doc/c-api/module.rst:419 +#: ../Doc/c-api/module.rst:454 msgid "" "Set the docstring for *module* to *docstring*. This function is called " "automatically when creating a module from ``PyModuleDef``, using either " @@ -669,7 +719,7 @@ msgstr "" "desde ``PyModuleDef``, usando ``PyModule_Create`` o " "``PyModule_FromDefAndSpec``." -#: ../Doc/c-api/module.rst:428 +#: ../Doc/c-api/module.rst:463 msgid "" "Add the functions from the ``NULL`` terminated *functions* array to " "*module*. Refer to the :c:type:`PyMethodDef` documentation for details on " @@ -689,11 +739,11 @@ msgstr "" "función se llama automáticamente cuando se crea un módulo desde " "``PyModuleDef``, usando ``PyModule_Create`` o ``PyModule_FromDefAndSpec``." -#: ../Doc/c-api/module.rst:440 +#: ../Doc/c-api/module.rst:475 msgid "Support functions" msgstr "Funciones de soporte" -#: ../Doc/c-api/module.rst:442 +#: ../Doc/c-api/module.rst:477 msgid "" "The module initialization function (if using single phase initialization) or " "a function called from a module execution slot (if using multi-phase " @@ -705,7 +755,7 @@ msgstr "" "usa la inicialización de múltiples fases), puede usar las siguientes " "funciones para ayudar a inicializar el estado del módulo:" -#: ../Doc/c-api/module.rst:449 +#: ../Doc/c-api/module.rst:484 msgid "" "Add an object to *module* as *name*. This is a convenience function which " "can be used from the module's initialization function." @@ -713,14 +763,14 @@ msgstr "" "Agrega un objeto a *module* como *name*. Esta es una función de conveniencia " "que se puede usar desde la función de inicialización del módulo." -#: ../Doc/c-api/module.rst:452 +#: ../Doc/c-api/module.rst:487 msgid "" "On success, return ``0``. On error, raise an exception and return ``-1``." msgstr "" "En caso de éxito, retorna ``0``. En caso de error, lanza una excepción y " "retorna ``-1``." -#: ../Doc/c-api/module.rst:454 +#: ../Doc/c-api/module.rst:489 msgid "" "Return ``NULL`` if *value* is ``NULL``. It must be called with an exception " "raised in this case." @@ -728,11 +778,11 @@ msgstr "" "Retorna ``NULL`` si *value* es ``NULL``. Debe llamarse lanzando una " "excepción en este caso." -#: ../Doc/c-api/module.rst:457 ../Doc/c-api/module.rst:506 +#: ../Doc/c-api/module.rst:492 ../Doc/c-api/module.rst:541 msgid "Example usage::" msgstr "Ejemplo de uso ::" -#: ../Doc/c-api/module.rst:471 ../Doc/c-api/module.rst:524 +#: ../Doc/c-api/module.rst:506 ../Doc/c-api/module.rst:559 msgid "" "The example can also be written without checking explicitly if *obj* is " "``NULL``::" @@ -740,7 +790,7 @@ msgstr "" "El ejemplo puede también ser escrito sin verificar explicitamente si *obj* " "es ``NULL``::" -#: ../Doc/c-api/module.rst:483 ../Doc/c-api/module.rst:540 +#: ../Doc/c-api/module.rst:518 ../Doc/c-api/module.rst:575 msgid "" "Note that ``Py_XDECREF()`` should be used instead of ``Py_DECREF()`` in this " "case, since *obj* can be ``NULL``." @@ -748,7 +798,7 @@ msgstr "" "Note que ``Py_XDECREF()`` debería ser usado en vez de ``Py_DECREF()`` en " "este caso, ya que *obj* puede ser ``NULL``." -#: ../Doc/c-api/module.rst:491 +#: ../Doc/c-api/module.rst:526 msgid "" "Similar to :c:func:`PyModule_AddObjectRef`, but steals a reference to " "*value* on success (if it returns ``0``)." @@ -756,7 +806,7 @@ msgstr "" "Similar a :c:func:`PyModule_AddObjectRef`, pero roba una referencia a " "*value* en caso de éxito (en este caso retorna ``0``)." -#: ../Doc/c-api/module.rst:494 +#: ../Doc/c-api/module.rst:529 msgid "" "The new :c:func:`PyModule_AddObjectRef` function is recommended, since it is " "easy to introduce reference leaks by misusing the :c:func:" @@ -766,16 +816,17 @@ msgstr "" "sencillo introducir fugas de referencias por un uso incorrecto de la " "función :c:func:`PyModule_AddObject`." -#: ../Doc/c-api/module.rst:500 +#: ../Doc/c-api/module.rst:535 +#, fuzzy msgid "" "Unlike other functions that steal references, ``PyModule_AddObject()`` only " -"decrements the reference count of *value* **on success**." +"releases the reference to *value* **on success**." msgstr "" "A diferencia de otras funciones que roban referencias, " "``PyModule_AddObject()`` solo disminuye el conteo de referencias de *value* " "**en caso de éxito**." -#: ../Doc/c-api/module.rst:503 +#: ../Doc/c-api/module.rst:538 msgid "" "This means that its return value must be checked, and calling code must :c:" "func:`Py_DECREF` *value* manually on error." @@ -783,7 +834,7 @@ msgstr "" "Esto significa que su valor de retorno debe ser verificado, y el código de " "llamada debe :c:func:`Py_DECREF` *value* manualmente en caso de error." -#: ../Doc/c-api/module.rst:546 +#: ../Doc/c-api/module.rst:581 msgid "" "Add an integer constant to *module* as *name*. This convenience function " "can be used from the module's initialization function. Return ``-1`` on " @@ -793,7 +844,7 @@ msgstr "" "conveniencia se puede usar desde la función de inicialización del módulo. " "Retorna ``-1`` en caso de error, ``0`` en caso de éxito." -#: ../Doc/c-api/module.rst:553 +#: ../Doc/c-api/module.rst:588 msgid "" "Add a string constant to *module* as *name*. This convenience function can " "be used from the module's initialization function. The string *value* must " @@ -804,7 +855,7 @@ msgstr "" "cadena de caracteres *value* debe estar terminada en ``NULL``. Retorna " "``-1`` en caso de error, ``0`` en caso de éxito." -#: ../Doc/c-api/module.rst:560 +#: ../Doc/c-api/module.rst:595 msgid "" "Add an int constant to *module*. The name and the value are taken from " "*macro*. For example ``PyModule_AddIntMacro(module, AF_INET)`` adds the int " @@ -816,11 +867,11 @@ msgstr "" "constante int *AF_INET* con el valor de *AF_INET* a *module*. Retorna ``-1`` " "en caso de error, ``0`` en caso de éxito." -#: ../Doc/c-api/module.rst:568 +#: ../Doc/c-api/module.rst:603 msgid "Add a string constant to *module*." msgstr "Agrega una constante de cadena de caracteres a *module*." -#: ../Doc/c-api/module.rst:572 +#: ../Doc/c-api/module.rst:607 msgid "" "Add a type object to *module*. The type object is finalized by calling " "internally :c:func:`PyType_Ready`. The name of the type object is taken from " @@ -832,11 +883,11 @@ msgstr "" "último componente de :c:member:`~PyTypeObject.tp_name` después del punto. " "Retorna ``-1`` en caso de error, ``0`` en caso de éxito." -#: ../Doc/c-api/module.rst:582 +#: ../Doc/c-api/module.rst:617 msgid "Module lookup" msgstr "Búsqueda de módulos" -#: ../Doc/c-api/module.rst:584 +#: ../Doc/c-api/module.rst:619 msgid "" "Single-phase initialization creates singleton modules that can be looked up " "in the context of the current interpreter. This allows the module object to " @@ -846,7 +897,7 @@ msgstr "" "el contexto del intérprete actual. Esto permite que el objeto módulo se " "recupere más tarde con solo una referencia a la definición del módulo." -#: ../Doc/c-api/module.rst:588 +#: ../Doc/c-api/module.rst:623 msgid "" "These functions will not work on modules created using multi-phase " "initialization, since multiple such modules can be created from a single " @@ -856,7 +907,7 @@ msgstr "" "de múltiples fases, ya que se pueden crear múltiples módulos de este tipo " "desde una sola definición." -#: ../Doc/c-api/module.rst:593 +#: ../Doc/c-api/module.rst:628 msgid "" "Returns the module object that was created from *def* for the current " "interpreter. This method requires that the module object has been attached " @@ -870,7 +921,7 @@ msgstr "" "de que el objeto módulo correspondiente no se encuentre o no se haya " "adjuntado al estado del intérprete, retornará ``NULL``." -#: ../Doc/c-api/module.rst:600 +#: ../Doc/c-api/module.rst:635 msgid "" "Attaches the module object passed to the function to the interpreter state. " "This allows the module object to be accessible via :c:func:" @@ -880,11 +931,11 @@ msgstr "" "Esto permite que se pueda acceder al objeto del módulo a través de :c:func:" "`PyState_FindModule`." -#: ../Doc/c-api/module.rst:603 +#: ../Doc/c-api/module.rst:638 msgid "Only effective on modules created using single-phase initialization." msgstr "Solo es efectivo en módulos creados con la inicialización monofásica." -#: ../Doc/c-api/module.rst:605 +#: ../Doc/c-api/module.rst:640 msgid "" "Python calls ``PyState_AddModule`` automatically after importing a module, " "so it is unnecessary (but harmless) to call it from module initialization " @@ -903,18 +954,60 @@ msgstr "" "directamente o refiriéndose a su implementación para obtener detalles de las " "actualizaciones de estado requeridas)." -#: ../Doc/c-api/module.rst:613 ../Doc/c-api/module.rst:624 +#: ../Doc/c-api/module.rst:648 ../Doc/c-api/module.rst:659 msgid "The caller must hold the GIL." msgstr "La persona que llama debe retener el GIL." -#: ../Doc/c-api/module.rst:615 +#: ../Doc/c-api/module.rst:650 msgid "Return 0 on success or -1 on failure." msgstr "Retorna 0 en caso de éxito o -1 en caso de error." -#: ../Doc/c-api/module.rst:621 +#: ../Doc/c-api/module.rst:656 msgid "" "Removes the module object created from *def* from the interpreter state. " "Return 0 on success or -1 on failure." msgstr "" "Elimina el objeto del módulo creado a partir de *def* del estado del " "intérprete. Retorna 0 en caso de éxito o -1 en caso de error." + +#: ../Doc/c-api/module.rst:8 +#, fuzzy +msgid "object" +msgstr "Objetos módulo" + +#: ../Doc/c-api/module.rst:8 +#, fuzzy +msgid "module" +msgstr "Búsqueda de módulos" + +#: ../Doc/c-api/module.rst:13 +msgid "ModuleType (in module types)" +msgstr "" + +#: ../Doc/c-api/module.rst:33 ../Doc/c-api/module.rst:74 +msgid "__name__ (module attribute)" +msgstr "" + +#: ../Doc/c-api/module.rst:33 +msgid "__doc__ (module attribute)" +msgstr "" + +#: ../Doc/c-api/module.rst:33 ../Doc/c-api/module.rst:104 +msgid "__file__ (module attribute)" +msgstr "" + +#: ../Doc/c-api/module.rst:33 +msgid "__package__ (module attribute)" +msgstr "" + +#: ../Doc/c-api/module.rst:33 +msgid "__loader__ (module attribute)" +msgstr "" + +#: ../Doc/c-api/module.rst:60 +msgid "__dict__ (module attribute)" +msgstr "" + +#: ../Doc/c-api/module.rst:74 ../Doc/c-api/module.rst:104 +msgid "SystemError (built-in exception)" +msgstr "" diff --git a/c-api/none.po b/c-api/none.po index 1fee8e8275..298422e818 100644 --- a/c-api/none.po +++ b/c-api/none.po @@ -1,34 +1,37 @@ # Copyright (C) 2001-2020, Python Software Foundation # This file is distributed under the same license as the Python package. # Maintained by the python-doc-es workteam. -# docs-es@python.org / https://mail.python.org/mailman3/lists/docs-es.python.org/ -# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get the list of volunteers +# docs-es@python.org / +# https://mail.python.org/mailman3/lists/docs-es.python.org/ +# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get +# the list of volunteers # msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-06 11:59-0400\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-05-09 03:15+0200\n" +"Last-Translator: \n" +"Language: es\n" "Language-Team: python-doc-es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: \n" -"Language: es\n" -"X-Generator: Poedit 2.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/none.rst:6 msgid "The ``None`` Object" msgstr "El objeto ``None``" #: ../Doc/c-api/none.rst:10 +#, fuzzy msgid "" "Note that the :c:type:`PyTypeObject` for ``None`` is not directly exposed in " "the Python/C API. Since ``None`` is a singleton, testing for object " -"identity (using ``==`` in C) is sufficient. There is no :c:func:" -"`PyNone_Check` function for the same reason." +"identity (using ``==`` in C) is sufficient. There is no :c:func:`!" +"PyNone_Check` function for the same reason." msgstr "" "Tenga en cuenta que :c:type:`PyTypeObject` para ``None`` no está expuesto " "directamente en la API de Python/C. Como ``None`` es un singleton, es " @@ -38,17 +41,37 @@ msgstr "" #: ../Doc/c-api/none.rst:18 msgid "" "The Python ``None`` object, denoting lack of value. This object has no " -"methods. It needs to be treated just like any other object with respect to " -"reference counts." +"methods and is `immortal `_." msgstr "" -"El objeto ``None`` de Python, denota falta de valor. Este objeto no tiene " -"métodos. Debe tratarse como cualquier otro objeto con respecto a los " -"recuentos de referencia." -#: ../Doc/c-api/none.rst:25 -msgid "" -"Properly handle returning :c:data:`Py_None` from within a C function (that " -"is, increment the reference count of ``None`` and return it.)" +#: ../Doc/c-api/none.rst:21 +msgid ":c:data:`Py_None` is immortal." msgstr "" -"Maneje adecuadamente el retorno :c:data:`Py_None` desde una función en C (es " -"decir, incremente el recuento de referencia de ``None`` y devuélvalo)." + +#: ../Doc/c-api/none.rst:26 +msgid "Return :c:data:`Py_None` from a function." +msgstr "" + +#: ../Doc/c-api/none.rst:8 +msgid "object" +msgstr "" + +#: ../Doc/c-api/none.rst:8 +msgid "None" +msgstr "" + +#~ msgid "" +#~ "The Python ``None`` object, denoting lack of value. This object has no " +#~ "methods. It needs to be treated just like any other object with respect " +#~ "to reference counts." +#~ msgstr "" +#~ "El objeto ``None`` de Python, denota falta de valor. Este objeto no tiene " +#~ "métodos. Debe tratarse como cualquier otro objeto con respecto a los " +#~ "recuentos de referencia." + +#~ msgid "" +#~ "Properly handle returning :c:data:`Py_None` from within a C function " +#~ "(that is, increment the reference count of ``None`` and return it.)" +#~ msgstr "" +#~ "Maneje adecuadamente el retorno :c:data:`Py_None` desde una función en C " +#~ "(es decir, incremente el recuento de referencia de ``None`` y devuélvalo)." diff --git a/c-api/number.po b/c-api/number.po index 6a60b98bac..c787057db2 100644 --- a/c-api/number.po +++ b/c-api/number.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-10-19 02:00+0200\n" "Last-Translator: Meta Louis-Kosmas \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/number.rst:6 msgid "Number Protocol" @@ -71,7 +71,7 @@ msgstr "" "``o1 @ o2``." #: ../Doc/c-api/number.rst:46 -#, fuzzy, python-format +#, fuzzy msgid "" "Return the floor of *o1* divided by *o2*, or ``NULL`` on failure. This is " "the equivalent of the Python expression ``o1 // o2``." @@ -437,3 +437,29 @@ msgstr "" "Retorna ``1`` si *o* es un entero índice (tiene el espacio ``nb_index`` de " "la estructura ``tp_as_number`` rellenado) y ``0`` en caso contrario. Esta " "función siempre tiene éxito." + +#: ../Doc/c-api/number.rst:67 ../Doc/c-api/number.rst:75 +#: ../Doc/c-api/number.rst:97 ../Doc/c-api/number.rst:195 +#: ../Doc/c-api/number.rst:241 ../Doc/c-api/number.rst:249 +msgid "built-in function" +msgstr "" + +#: ../Doc/c-api/number.rst:67 +msgid "divmod" +msgstr "" + +#: ../Doc/c-api/number.rst:75 ../Doc/c-api/number.rst:195 +msgid "pow" +msgstr "" + +#: ../Doc/c-api/number.rst:97 +msgid "abs" +msgstr "" + +#: ../Doc/c-api/number.rst:241 +msgid "int" +msgstr "" + +#: ../Doc/c-api/number.rst:249 +msgid "float" +msgstr "" diff --git a/c-api/object.po b/c-api/object.po index b7f98e0fdb..433af5ab1e 100644 --- a/c-api/object.po +++ b/c-api/object.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-31 19:22-0300\n" "Last-Translator: Sofía Denner \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/object.rst:6 msgid "Object Protocol" @@ -35,20 +34,22 @@ msgstr "" "está implementada para la combinación de tipos dada." #: ../Doc/c-api/object.rst:17 +#, fuzzy msgid "" "Properly handle returning :c:data:`Py_NotImplemented` from within a C " -"function (that is, increment the reference count of NotImplemented and " -"return it)." +"function (that is, create a new :term:`strong reference` to NotImplemented " +"and return it)." msgstr "" "Maneja adecuadamente el retorno :c:data:`Py_NotImplemented` desde una " "función C (es decir, incremente el recuento de referencias de " "*NotImplemented* y lo retorna)." #: ../Doc/c-api/object.rst:24 +#, fuzzy msgid "" "Print an object *o*, on file *fp*. Returns ``-1`` on error. The flags " "argument is used to enable certain printing options. The only option " -"currently supported is :const:`Py_PRINT_RAW`; if given, the :func:`str` of " +"currently supported is :c:macro:`Py_PRINT_RAW`; if given, the :func:`str` of " "the object is written instead of the :func:`repr`." msgstr "" "Imprime un objeto *o*, en el archivo *fp*. Retorna ``-1`` en caso de error. " @@ -56,7 +57,7 @@ msgstr "" "impresión. La única opción actualmente admitida es :const:`Py_PRINT_RAW`; si " "se proporciona, se escribe :func:`str` del objeto en lugar de :func:`repr`." -#: ../Doc/c-api/object.rst:32 ../Doc/c-api/object.rst:43 +#: ../Doc/c-api/object.rst:32 msgid "" "Returns ``1`` if *o* has the attribute *attr_name*, and ``0`` otherwise. " "This is equivalent to the Python expression ``hasattr(o, attr_name)``. This " @@ -66,29 +67,38 @@ msgstr "" "contrario. Esto es equivalente a la expresión de Python ``hasattr(o, " "attr_name)``. Esta función siempre finaliza exitosamente." -#: ../Doc/c-api/object.rst:36 +#: ../Doc/c-api/object.rst:38 +#, fuzzy msgid "" -"Note that exceptions which occur while calling :meth:`__getattr__` and :meth:" -"`__getattribute__` methods will get suppressed. To get error reporting use :" -"c:func:`PyObject_GetAttr()` instead." +"Exceptions that occur when this calls :meth:`~object.__getattr__` and :meth:" +"`~object.__getattribute__` methods are silently ignored. For proper error " +"handling, use :c:func:`PyObject_GetAttr` instead." msgstr "" "Tenga en cuenta que las excepciones que se producen al llamar a los métodos " "a :meth:`__getattr__` y :meth:`__getattribute__` se suprimirán. Para obtener " "informe de errores, utilice :c:func:`PyObject_GetAttr()` alternativamente." -#: ../Doc/c-api/object.rst:47 +#: ../Doc/c-api/object.rst:45 +msgid "" +"This is the same as :c:func:`PyObject_HasAttr`, but *attr_name* is specified " +"as a :c:expr:`const char*` UTF-8 encoded bytes string, rather than a :c:expr:" +"`PyObject*`." +msgstr "" + +#: ../Doc/c-api/object.rst:51 +#, fuzzy msgid "" -"Note that exceptions which occur while calling :meth:`__getattr__` and :meth:" -"`__getattribute__` methods and creating a temporary string object will get " -"suppressed. To get error reporting use :c:func:`PyObject_GetAttrString()` " -"instead." +"Exceptions that occur when this calls :meth:`~object.__getattr__` and :meth:" +"`~object.__getattribute__` methods or while creating the temporary :class:" +"`str` object are silently ignored. For proper error handling, use :c:func:" +"`PyObject_GetAttrString` instead." msgstr "" "Tenga en cuenta que las excepciones que se producen al llamar a :meth:" "`__getattr__` y :meth:`__getattribute__` y al crear un objeto de cadena " "temporal se suprimirán. Para obtener informes de errores, utilice :c:func:" "`PyObject_GetAttrString()` en su lugar." -#: ../Doc/c-api/object.rst:55 +#: ../Doc/c-api/object.rst:59 msgid "" "Retrieve an attribute named *attr_name* from object *o*. Returns the " "attribute value on success, or ``NULL`` on failure. This is the equivalent " @@ -98,17 +108,14 @@ msgstr "" "del atributo en caso de éxito o ``NULL`` en caso de error. Este es el " "equivalente de la expresión de Python ``o.attr_name``." -#: ../Doc/c-api/object.rst:62 +#: ../Doc/c-api/object.rst:66 msgid "" -"Retrieve an attribute named *attr_name* from object *o*. Returns the " -"attribute value on success, or ``NULL`` on failure. This is the equivalent " -"of the Python expression ``o.attr_name``." +"This is the same as :c:func:`PyObject_GetAttr`, but *attr_name* is specified " +"as a :c:expr:`const char*` UTF-8 encoded bytes string, rather than a :c:expr:" +"`PyObject*`." msgstr "" -"Recupera un atributo llamado *attr_name* del objeto *o*. Retorna el valor " -"del atributo en caso de éxito o ``NULL`` en caso de error. Este es el " -"equivalente de la expresión de Python ``o.attr_name``." -#: ../Doc/c-api/object.rst:69 +#: ../Doc/c-api/object.rst:73 msgid "" "Generic attribute getter function that is meant to be put into a type " "object's ``tp_getattro`` slot. It looks for a descriptor in the dictionary " @@ -125,7 +132,7 @@ msgstr "" "atributos de instancia, mientras que los descriptores que no son de datos no " "lo hacen. De lo contrario, se lanza un :exc:`AttributeError`." -#: ../Doc/c-api/object.rst:79 ../Doc/c-api/object.rst:91 +#: ../Doc/c-api/object.rst:83 msgid "" "Set the value of the attribute named *attr_name*, for object *o*, to the " "value *v*. Raise an exception and return ``-1`` on failure; return ``0`` on " @@ -136,7 +143,7 @@ msgstr "" "``0`` en caso de éxito. Este es el equivalente de la declaración de Python " "``o.attr_name = v``." -#: ../Doc/c-api/object.rst:84 +#: ../Doc/c-api/object.rst:88 msgid "" "If *v* is ``NULL``, the attribute is deleted. This behaviour is deprecated " "in favour of using :c:func:`PyObject_DelAttr`, but there are currently no " @@ -146,7 +153,14 @@ msgstr "" "deprecado en favor de usar :c:func:`PyObject_DelAttr`, pero por el momento " "no hay planes de quitarlo." -#: ../Doc/c-api/object.rst:96 +#: ../Doc/c-api/object.rst:95 +msgid "" +"This is the same as :c:func:`PyObject_SetAttr`, but *attr_name* is specified " +"as a :c:expr:`const char*` UTF-8 encoded bytes string, rather than a :c:expr:" +"`PyObject*`." +msgstr "" + +#: ../Doc/c-api/object.rst:99 msgid "" "If *v* is ``NULL``, the attribute is deleted, but this feature is deprecated " "in favour of using :c:func:`PyObject_DelAttrString`." @@ -154,7 +168,7 @@ msgstr "" "Si *v* es ``NULL``, el atributo se elimina, sin embargo, esta característica " "está deprecada en favor de usar :c:func:`PyObject_DelAttrString`." -#: ../Doc/c-api/object.rst:102 +#: ../Doc/c-api/object.rst:105 msgid "" "Generic attribute setter and deleter function that is meant to be put into a " "type object's :c:member:`~PyTypeObject.tp_setattro` slot. It looks for a " @@ -174,7 +188,7 @@ msgstr "" "`~object.__dict__` (si está presente). En caso de éxito, se retorna ``0``; " "de lo contrario, se lanza un :exc:`AttributeError` y se retorna ``-1``." -#: ../Doc/c-api/object.rst:114 ../Doc/c-api/object.rst:120 +#: ../Doc/c-api/object.rst:117 msgid "" "Delete attribute named *attr_name*, for object *o*. Returns ``-1`` on " "failure. This is the equivalent of the Python statement ``del o.attr_name``." @@ -183,7 +197,14 @@ msgstr "" "en caso de falla. Este es el equivalente de la declaración de Python ``del o." "attr_name``." -#: ../Doc/c-api/object.rst:126 +#: ../Doc/c-api/object.rst:123 +msgid "" +"This is the same as :c:func:`PyObject_DelAttr`, but *attr_name* is specified " +"as a :c:expr:`const char*` UTF-8 encoded bytes string, rather than a :c:expr:" +"`PyObject*`." +msgstr "" + +#: ../Doc/c-api/object.rst:130 msgid "" "A generic implementation for the getter of a ``__dict__`` descriptor. It " "creates the dictionary if necessary." @@ -191,7 +212,7 @@ msgstr "" "Una implementación genérica para obtener un descriptor ``__dict__``. Crea el " "diccionario si es necesario." -#: ../Doc/c-api/object.rst:129 +#: ../Doc/c-api/object.rst:133 msgid "" "This function may also be called to get the :py:attr:`~object.__dict__` of " "the object *o*. Pass ``NULL`` for *context* when calling it. Since this " @@ -205,11 +226,11 @@ msgstr "" "diccionario, puede ser más eficiente llamar a :c:func:`PyObject_GetAttr` " "para acceder a un atributo del objeto." -#: ../Doc/c-api/object.rst:135 +#: ../Doc/c-api/object.rst:139 msgid "On failure, returns ``NULL`` with an exception set." msgstr "En caso de fallo, retorna ``NULL`` con una excepción establecida." -#: ../Doc/c-api/object.rst:142 +#: ../Doc/c-api/object.rst:146 msgid "" "A generic implementation for the setter of a ``__dict__`` descriptor. This " "implementation does not allow the dictionary to be deleted." @@ -217,7 +238,7 @@ msgstr "" "Una implementación genérica para el creador de un descriptor ``__dict__``. " "Esta implementación no permite que se elimine el diccionario." -#: ../Doc/c-api/object.rst:150 +#: ../Doc/c-api/object.rst:154 msgid "" "Return a pointer to :py:attr:`~object.__dict__` of the object *obj*. If " "there is no ``__dict__``, return ``NULL`` without setting an exception." @@ -225,7 +246,7 @@ msgstr "" "Retorna un puntero al :py:attr:`~object.__dict__` del objeto *obj*. Si no " "hay ``__dict__``, retorna ``NULL`` sin establecer una excepción." -#: ../Doc/c-api/object.rst:153 +#: ../Doc/c-api/object.rst:157 msgid "" "This function may need to allocate memory for the dictionary, so it may be " "more efficient to call :c:func:`PyObject_GetAttr` when accessing an " @@ -235,15 +256,16 @@ msgstr "" "puede ser más eficiente llamar a :c:func:`PyObject_GetAttr` para acceder a " "un atributo del objeto." -#: ../Doc/c-api/object.rst:160 +#: ../Doc/c-api/object.rst:164 +#, fuzzy msgid "" "Compare the values of *o1* and *o2* using the operation specified by *opid*, " -"which must be one of :const:`Py_LT`, :const:`Py_LE`, :const:`Py_EQ`, :const:" -"`Py_NE`, :const:`Py_GT`, or :const:`Py_GE`, corresponding to ``<``, ``<=``, " -"``==``, ``!=``, ``>``, or ``>=`` respectively. This is the equivalent of the " -"Python expression ``o1 op o2``, where ``op`` is the operator corresponding " -"to *opid*. Returns the value of the comparison on success, or ``NULL`` on " -"failure." +"which must be one of :c:macro:`Py_LT`, :c:macro:`Py_LE`, :c:macro:`Py_EQ`, :" +"c:macro:`Py_NE`, :c:macro:`Py_GT`, or :c:macro:`Py_GE`, corresponding to " +"``<``, ``<=``, ``==``, ``!=``, ``>``, or ``>=`` respectively. This is the " +"equivalent of the Python expression ``o1 op o2``, where ``op`` is the " +"operator corresponding to *opid*. Returns the value of the comparison on " +"success, or ``NULL`` on failure." msgstr "" "Compara los valores de *o1* y *o2* utilizando la operación especificada por " "*opid*, que debe ser uno de los siguientes :const:`Py_LT`, :const:`Py_LE`, :" @@ -253,15 +275,16 @@ msgstr "" "o2``, donde ``op`` es el operador correspondiente a *opid*. Retorna el valor " "de la comparación en caso de éxito o ``NULL`` en caso de error." -#: ../Doc/c-api/object.rst:170 +#: ../Doc/c-api/object.rst:174 +#, fuzzy msgid "" "Compare the values of *o1* and *o2* using the operation specified by *opid*, " -"which must be one of :const:`Py_LT`, :const:`Py_LE`, :const:`Py_EQ`, :const:" -"`Py_NE`, :const:`Py_GT`, or :const:`Py_GE`, corresponding to ``<``, ``<=``, " -"``==``, ``!=``, ``>``, or ``>=`` respectively. Returns ``-1`` on error, " -"``0`` if the result is false, ``1`` otherwise. This is the equivalent of the " -"Python expression ``o1 op o2``, where ``op`` is the operator corresponding " -"to *opid*." +"which must be one of :c:macro:`Py_LT`, :c:macro:`Py_LE`, :c:macro:`Py_EQ`, :" +"c:macro:`Py_NE`, :c:macro:`Py_GT`, or :c:macro:`Py_GE`, corresponding to " +"``<``, ``<=``, ``==``, ``!=``, ``>``, or ``>=`` respectively. Returns ``-1`` " +"on error, ``0`` if the result is false, ``1`` otherwise. This is the " +"equivalent of the Python expression ``o1 op o2``, where ``op`` is the " +"operator corresponding to *opid*." msgstr "" "Compara los valores de *o1* y *o2* utilizando la operación especificada por " "*opid*, que debe ser uno de los siguientes :const:`Py_LT`, :const:`Py_LE`, :" @@ -271,15 +294,29 @@ msgstr "" "falso, ``1`` en caso contrario. Este es el equivalente de la expresión de " "Python ``o1 op o2``, donde ``op`` es el operador correspondiente a *opid*." -#: ../Doc/c-api/object.rst:179 +#: ../Doc/c-api/object.rst:183 +#, fuzzy msgid "" "If *o1* and *o2* are the same object, :c:func:`PyObject_RichCompareBool` " -"will always return ``1`` for :const:`Py_EQ` and ``0`` for :const:`Py_NE`." +"will always return ``1`` for :c:macro:`Py_EQ` and ``0`` for :c:macro:`Py_NE`." msgstr "" "Si *o1* y *o2* son el mismo objeto, :c:func:`PyObject_RichCompareBool` " "siempre retornará ``1`` para :const:`Py_EQ` y ``0`` para :const:`Py_NE`." -#: ../Doc/c-api/object.rst:186 +#: ../Doc/c-api/object.rst:188 +msgid "" +"Format *obj* using *format_spec*. This is equivalent to the Python " +"expression ``format(obj, format_spec)``." +msgstr "" + +#: ../Doc/c-api/object.rst:191 +msgid "" +"*format_spec* may be ``NULL``. In this case the call is equivalent to " +"``format(obj)``. Returns the formatted string on success, ``NULL`` on " +"failure." +msgstr "" + +#: ../Doc/c-api/object.rst:199 msgid "" "Compute a string representation of object *o*. Returns the string " "representation on success, ``NULL`` on failure. This is the equivalent of " @@ -291,7 +328,7 @@ msgstr "" "de error. Este es el equivalente de la expresión de Python ``repr(o)``. " "Llamado por la función incorporada :func:`repr`." -#: ../Doc/c-api/object.rst:190 ../Doc/c-api/object.rst:214 +#: ../Doc/c-api/object.rst:203 ../Doc/c-api/object.rst:227 msgid "" "This function now includes a debug assertion to help ensure that it does not " "silently discard an active exception." @@ -299,7 +336,7 @@ msgstr "" "Esta función ahora incluye una afirmación de depuración para ayudar a " "garantizar que no descarte silenciosamente una excepción activa." -#: ../Doc/c-api/object.rst:198 +#: ../Doc/c-api/object.rst:211 msgid "" "As :c:func:`PyObject_Repr`, compute a string representation of object *o*, " "but escape the non-ASCII characters in the string returned by :c:func:" @@ -314,7 +351,7 @@ msgstr "" "retorna :c:func:`PyObject_Repr` en Python 2. Llamado por la función " "incorporada :func:`ascii`." -#: ../Doc/c-api/object.rst:209 +#: ../Doc/c-api/object.rst:222 msgid "" "Compute a string representation of object *o*. Returns the string " "representation on success, ``NULL`` on failure. This is the equivalent of " @@ -326,7 +363,7 @@ msgstr "" "de error. Llamado por la función incorporada :func:`str` y, por lo tanto, " "por la función :func:`print`." -#: ../Doc/c-api/object.rst:223 +#: ../Doc/c-api/object.rst:236 msgid "" "Compute a bytes representation of object *o*. ``NULL`` is returned on " "failure and a bytes object on success. This is equivalent to the Python " @@ -340,7 +377,7 @@ msgstr "" "diferencia de ``bytes(o)``, se lanza un TypeError cuando *o* es un entero en " "lugar de un objeto de bytes con inicialización cero." -#: ../Doc/c-api/object.rst:232 +#: ../Doc/c-api/object.rst:245 msgid "" "Return ``1`` if the class *derived* is identical to or derived from the " "class *cls*, otherwise return ``0``. In case of an error, return ``-1``." @@ -348,7 +385,7 @@ msgstr "" "Retorna ``1`` si la clase *derived* es idéntica o derivada de la clase " "*cls*; de lo contrario, retorna ``0``. En caso de error, retorna ``-1``." -#: ../Doc/c-api/object.rst:235 ../Doc/c-api/object.rst:254 +#: ../Doc/c-api/object.rst:248 ../Doc/c-api/object.rst:267 msgid "" "If *cls* is a tuple, the check will be done against every entry in *cls*. " "The result will be ``1`` when at least one of the checks returns ``1``, " @@ -358,7 +395,7 @@ msgstr "" "*cls*. El resultado será ``1`` cuando al menos una de las verificaciones " "retorne ``1``, de lo contrario será ``0``." -#: ../Doc/c-api/object.rst:239 +#: ../Doc/c-api/object.rst:252 msgid "" "If *cls* has a :meth:`~class.__subclasscheck__` method, it will be called to " "determine the subclass status as described in :pep:`3119`. Otherwise, " @@ -370,18 +407,19 @@ msgstr "" "contrario, *derived* es una subclase de *cls* si es una subclase directa o " "indirecta, es decir, contenida en ``cls.__ mro__``." -#: ../Doc/c-api/object.rst:244 +#: ../Doc/c-api/object.rst:257 +#, fuzzy msgid "" "Normally only class objects, i.e. instances of :class:`type` or a derived " "class, are considered classes. However, objects can override this by having " -"a :attr:`__bases__` attribute (which must be a tuple of base classes)." +"a :attr:`~class.__bases__` attribute (which must be a tuple of base classes)." msgstr "" "Normalmente, solo los objetos clase, es decir, las instancias de :class:" "`type` o una clase derivada, se consideran clases. Sin embargo, los objetos " "pueden anular esto al tener un atributo :attr:`__bases__` (que debe ser una " "tupla de clases base)." -#: ../Doc/c-api/object.rst:251 +#: ../Doc/c-api/object.rst:264 msgid "" "Return ``1`` if *inst* is an instance of the class *cls* or a subclass of " "*cls*, or ``0`` if not. On error, returns ``-1`` and sets an exception." @@ -390,7 +428,7 @@ msgstr "" "*cls*, o ``0`` si no. En caso de error, retorna ``-1`` y establece una " "excepción." -#: ../Doc/c-api/object.rst:258 +#: ../Doc/c-api/object.rst:271 msgid "" "If *cls* has a :meth:`~class.__instancecheck__` method, it will be called to " "determine the subclass status as described in :pep:`3119`. Otherwise, " @@ -401,25 +439,27 @@ msgstr "" "contrario, *inst* es una instancia de *cls* si su clase es una subclase de " "*cls*." -#: ../Doc/c-api/object.rst:262 +#: ../Doc/c-api/object.rst:275 +#, fuzzy msgid "" "An instance *inst* can override what is considered its class by having a :" -"attr:`__class__` attribute." +"attr:`~instance.__class__` attribute." msgstr "" "Una instancia *inst* puede anular lo que se considera su clase al tener un " "atributo :attr:`__class__`." -#: ../Doc/c-api/object.rst:265 +#: ../Doc/c-api/object.rst:278 +#, fuzzy msgid "" "An object *cls* can override if it is considered a class, and what its base " -"classes are, by having a :attr:`__bases__` attribute (which must be a tuple " -"of base classes)." +"classes are, by having a :attr:`~class.__bases__` attribute (which must be a " +"tuple of base classes)." msgstr "" "Un objeto *cls* puede anular si se considera una clase y cuáles son sus " "clases base, al tener un atributo :attr:`__bases__` (que debe ser una tupla " "de clases base)." -#: ../Doc/c-api/object.rst:274 +#: ../Doc/c-api/object.rst:287 msgid "" "Compute and return the hash value of an object *o*. On failure, return " "``-1``. This is the equivalent of the Python expression ``hash(o)``." @@ -427,7 +467,7 @@ msgstr "" "Calcula y retorna el valor hash de un objeto *o*. En caso de fallo, retorna " "``-1``. Este es el equivalente de la expresión de Python ``hash(o)``." -#: ../Doc/c-api/object.rst:277 +#: ../Doc/c-api/object.rst:290 msgid "" "The return type is now Py_hash_t. This is a signed integer the same size " "as :c:type:`Py_ssize_t`." @@ -435,10 +475,11 @@ msgstr "" "El tipo de retorno ahora es *Py_hash_t*. Este es un entero con signo del " "mismo tamaño que :c:type:`Py_ssize_t`." -#: ../Doc/c-api/object.rst:284 +#: ../Doc/c-api/object.rst:297 +#, fuzzy msgid "" -"Set a :exc:`TypeError` indicating that ``type(o)`` is not hashable and " -"return ``-1``. This function receives special treatment when stored in a " +"Set a :exc:`TypeError` indicating that ``type(o)`` is not :term:`hashable` " +"and return ``-1``. This function receives special treatment when stored in a " "``tp_hash`` slot, allowing a type to explicitly indicate to the interpreter " "that it is not hashable." msgstr "" @@ -447,7 +488,7 @@ msgstr "" "almacena en una ranura ``tp_hash``, lo que permite que un tipo indique " "explícitamente al intérprete que no es *hashable*." -#: ../Doc/c-api/object.rst:292 +#: ../Doc/c-api/object.rst:305 msgid "" "Returns ``1`` if the object *o* is considered to be true, and ``0`` " "otherwise. This is equivalent to the Python expression ``not not o``. On " @@ -457,7 +498,7 @@ msgstr "" "contrario. Esto es equivalente a la expresión de Python ``not not o``. En " "caso de error, retorna ``-1``." -#: ../Doc/c-api/object.rst:299 +#: ../Doc/c-api/object.rst:312 msgid "" "Returns ``0`` if the object *o* is considered to be true, and ``1`` " "otherwise. This is equivalent to the Python expression ``not o``. On " @@ -467,15 +508,16 @@ msgstr "" "contrario. Esto es equivalente a la expresión de Python ``not o``. En caso " "de error, retorna ``-1``." -#: ../Doc/c-api/object.rst:308 +#: ../Doc/c-api/object.rst:321 +#, fuzzy msgid "" "When *o* is non-``NULL``, returns a type object corresponding to the object " "type of object *o*. On failure, raises :exc:`SystemError` and returns " "``NULL``. This is equivalent to the Python expression ``type(o)``. This " -"function increments the reference count of the return value. There's really " -"no reason to use this function instead of the :c:func:`Py_TYPE()` function, " -"which returns a pointer of type :c:expr:`PyTypeObject*`, except when the " -"incremented reference count is needed." +"function creates a new :term:`strong reference` to the return value. There's " +"really no reason to use this function instead of the :c:func:`Py_TYPE()` " +"function, which returns a pointer of type :c:expr:`PyTypeObject*`, except " +"when a new :term:`strong reference` is needed." msgstr "" "Cuando *o* no es ``NULL``, retorna un tipo de objeto correspondiente al tipo " "de objeto del objeto *o*. En caso de falla, lanza :exc:`SystemError` y " @@ -485,7 +527,7 @@ msgstr "" "`Py_TYPE()`, que retorna un puntero de tipo :c:expr:`PyTypeObject*`, excepto " "cuando se necesita el recuento de referencias incrementado." -#: ../Doc/c-api/object.rst:319 +#: ../Doc/c-api/object.rst:333 msgid "" "Return non-zero if the object *o* is of type *type* or a subtype of *type*, " "and ``0`` otherwise. Both parameters must be non-``NULL``." @@ -494,7 +536,7 @@ msgstr "" "*type*, y ``0`` en cualquier otro caso. Ninguno de los dos parámetros debe " "ser ``NULL``." -#: ../Doc/c-api/object.rst:328 +#: ../Doc/c-api/object.rst:342 msgid "" "Return the length of object *o*. If the object *o* provides either the " "sequence and mapping protocols, the sequence length is returned. On error, " @@ -506,7 +548,7 @@ msgstr "" "caso de error, se retorna ``-1``. Este es el equivalente a la expresión de " "Python ``len(o)``." -#: ../Doc/c-api/object.rst:335 +#: ../Doc/c-api/object.rst:349 msgid "" "Return an estimated length for the object *o*. First try to return its " "actual length, then an estimate using :meth:`~object.__length_hint__`, and " @@ -520,7 +562,7 @@ msgstr "" "error, retorna ``-1``. Este es el equivalente a la expresión de Python " "``operator.length_hint(o, defaultvalue)``." -#: ../Doc/c-api/object.rst:345 +#: ../Doc/c-api/object.rst:359 msgid "" "Return element of *o* corresponding to the object *key* or ``NULL`` on " "failure. This is the equivalent of the Python expression ``o[key]``." @@ -529,7 +571,7 @@ msgstr "" "``NULL`` en caso de error. Este es el equivalente de la expresión de Python " "``o[key]``." -#: ../Doc/c-api/object.rst:351 +#: ../Doc/c-api/object.rst:365 msgid "" "Map the object *key* to the value *v*. Raise an exception and return ``-1`` " "on failure; return ``0`` on success. This is the equivalent of the Python " @@ -540,7 +582,7 @@ msgstr "" "declaración de Python ``o[key] = v``. Esta función *no* roba una referencia " "a *v*." -#: ../Doc/c-api/object.rst:359 +#: ../Doc/c-api/object.rst:373 msgid "" "Remove the mapping for the object *key* from the object *o*. Return ``-1`` " "on failure. This is equivalent to the Python statement ``del o[key]``." @@ -548,7 +590,7 @@ msgstr "" "Elimina la asignación para el objeto *key* del objeto *o*. Retorna ``-1`` en " "caso de falla. Esto es equivalente a la declaración de Python ``del o[key]``." -#: ../Doc/c-api/object.rst:365 +#: ../Doc/c-api/object.rst:379 msgid "" "This is equivalent to the Python expression ``dir(o)``, returning a " "(possibly empty) list of strings appropriate for the object argument, or " @@ -564,7 +606,7 @@ msgstr "" "locales actuales; en este caso, si no hay un marco de ejecución activo, se " "retorna ``NULL`` pero :c:func:`PyErr_Occurred` retornará falso." -#: ../Doc/c-api/object.rst:374 +#: ../Doc/c-api/object.rst:388 msgid "" "This is equivalent to the Python expression ``iter(o)``. It returns a new " "iterator for the object argument, or the object itself if the object is " @@ -576,7 +618,7 @@ msgstr "" "un iterador. Lanza :exc:`TypeError` y retorna ``NULL`` si el objeto no puede " "iterarse." -#: ../Doc/c-api/object.rst:382 +#: ../Doc/c-api/object.rst:396 msgid "" "This is the equivalent to the Python expression ``aiter(o)``. Takes an :" "class:`AsyncIterable` object and returns an :class:`AsyncIterator` for it. " @@ -589,3 +631,100 @@ msgstr "" "un nuevo iterador, pero si el argumento es :class:`AsyncIterator`, se " "retornará a sí mismo. Lanza :exc:`TypeError` y retorna ``NULL`` si el objeto " "no puede ser iterado." + +#: ../Doc/c-api/object.rst:406 +msgid "Get a pointer to subclass-specific data reserved for *cls*." +msgstr "" + +#: ../Doc/c-api/object.rst:408 +msgid "" +"The object *o* must be an instance of *cls*, and *cls* must have been " +"created using negative :c:member:`PyType_Spec.basicsize`. Python does not " +"check this." +msgstr "" + +#: ../Doc/c-api/object.rst:412 +msgid "On error, set an exception and return ``NULL``." +msgstr "" + +#: ../Doc/c-api/object.rst:418 +msgid "" +"Return the size of the instance memory space reserved for *cls*, i.e. the " +"size of the memory :c:func:`PyObject_GetTypeData` returns." +msgstr "" + +#: ../Doc/c-api/object.rst:421 +msgid "" +"This may be larger than requested using :c:member:`-PyType_Spec.basicsize " +"`; it is safe to use this larger size (e.g. with :c:" +"func:`!memset`)." +msgstr "" + +#: ../Doc/c-api/object.rst:424 +msgid "" +"The type *cls* **must** have been created using negative :c:member:" +"`PyType_Spec.basicsize`. Python does not check this." +msgstr "" + +#: ../Doc/c-api/object.rst:428 +msgid "On error, set an exception and return a negative value." +msgstr "" + +#: ../Doc/c-api/object.rst:434 +msgid "" +"Get a pointer to per-item data for a class with :c:macro:" +"`Py_TPFLAGS_ITEMS_AT_END`." +msgstr "" + +#: ../Doc/c-api/object.rst:437 +msgid "" +"On error, set an exception and return ``NULL``. :py:exc:`TypeError` is " +"raised if *o* does not have :c:macro:`Py_TPFLAGS_ITEMS_AT_END` set." +msgstr "" + +#: ../Doc/c-api/object.rst:197 ../Doc/c-api/object.rst:209 +#: ../Doc/c-api/object.rst:234 ../Doc/c-api/object.rst:285 +#: ../Doc/c-api/object.rst:319 ../Doc/c-api/object.rst:340 +msgid "built-in function" +msgstr "" + +#: ../Doc/c-api/object.rst:197 +msgid "repr" +msgstr "" + +#: ../Doc/c-api/object.rst:209 +msgid "ascii" +msgstr "" + +#: ../Doc/c-api/object.rst:217 +msgid "string" +msgstr "" + +#: ../Doc/c-api/object.rst:217 +msgid "PyObject_Str (C function)" +msgstr "" + +#: ../Doc/c-api/object.rst:234 +msgid "bytes" +msgstr "" + +#: ../Doc/c-api/object.rst:285 +msgid "hash" +msgstr "" + +#: ../Doc/c-api/object.rst:319 +msgid "type" +msgstr "" + +#: ../Doc/c-api/object.rst:340 +msgid "len" +msgstr "" + +#~ msgid "" +#~ "Retrieve an attribute named *attr_name* from object *o*. Returns the " +#~ "attribute value on success, or ``NULL`` on failure. This is the " +#~ "equivalent of the Python expression ``o.attr_name``." +#~ msgstr "" +#~ "Recupera un atributo llamado *attr_name* del objeto *o*. Retorna el valor " +#~ "del atributo en caso de éxito o ``NULL`` en caso de error. Este es el " +#~ "equivalente de la expresión de Python ``o.attr_name``." diff --git a/c-api/perfmaps.po b/c-api/perfmaps.po new file mode 100644 index 0000000000..c873c36070 --- /dev/null +++ b/c-api/perfmaps.po @@ -0,0 +1,87 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001-2023, Python Software Foundation +# This file is distributed under the same license as the Python en Español +# package. +# FIRST AUTHOR , 2023. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python en Español 3.12\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: es\n" +"Language-Team: es \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.13.0\n" + +#: ../Doc/c-api/perfmaps.rst:6 +msgid "Support for Perf Maps" +msgstr "" + +#: ../Doc/c-api/perfmaps.rst:8 +msgid "" +"On supported platforms (as of this writing, only Linux), the runtime can " +"take advantage of *perf map files* to make Python functions visible to an " +"external profiling tool (such as `perf `_). A running process may create a file in the ``/tmp`` " +"directory, which contains entries that can map a section of executable code " +"to a name. This interface is described in the `documentation of the Linux " +"Perf tool `_." +msgstr "" + +#: ../Doc/c-api/perfmaps.rst:16 +msgid "" +"In Python, these helper APIs can be used by libraries and features that rely " +"on generating machine code on the fly." +msgstr "" + +#: ../Doc/c-api/perfmaps.rst:19 +msgid "" +"Note that holding the Global Interpreter Lock (GIL) is not required for " +"these APIs." +msgstr "" + +#: ../Doc/c-api/perfmaps.rst:23 +msgid "" +"Open the ``/tmp/perf-$pid.map`` file, unless it's already opened, and create " +"a lock to ensure thread-safe writes to the file (provided the writes are " +"done through :c:func:`PyUnstable_WritePerfMapEntry`). Normally, there's no " +"need to call this explicitly; just use :c:func:" +"`PyUnstable_WritePerfMapEntry` and it will initialize the state on first " +"call." +msgstr "" + +#: ../Doc/c-api/perfmaps.rst:29 +msgid "" +"Returns ``0`` on success, ``-1`` on failure to create/open the perf map " +"file, or ``-2`` on failure to create a lock. Check ``errno`` for more " +"information about the cause of a failure." +msgstr "" + +#: ../Doc/c-api/perfmaps.rst:35 +msgid "" +"Write one single entry to the ``/tmp/perf-$pid.map`` file. This function is " +"thread safe. Here is what an example entry looks like::" +msgstr "" + +#: ../Doc/c-api/perfmaps.rst:41 +msgid "" +"Will call :c:func:`PyUnstable_PerfMapState_Init` before writing the entry, " +"if the perf map file is not already opened. Returns ``0`` on success, or the " +"same error codes as :c:func:`PyUnstable_PerfMapState_Init` on failure." +msgstr "" + +#: ../Doc/c-api/perfmaps.rst:47 +msgid "" +"Close the perf map file opened by :c:func:`PyUnstable_PerfMapState_Init`. " +"This is called by the runtime itself during interpreter shut-down. In " +"general, there shouldn't be a reason to explicitly call this, except to " +"handle specific scenarios such as forking." +msgstr "" diff --git a/c-api/refcounting.po b/c-api/refcounting.po index a9c64b975e..1579804a6a 100644 --- a/c-api/refcounting.po +++ b/c-api/refcounting.po @@ -10,36 +10,81 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-04 09:05-0300\n" "Last-Translator: Rodrigo Poblete \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/refcounting.rst:8 msgid "Reference Counting" msgstr "Conteo de referencias" #: ../Doc/c-api/refcounting.rst:10 +#, fuzzy msgid "" -"The macros in this section are used for managing reference counts of Python " -"objects." +"The functions and macros in this section are used for managing reference " +"counts of Python objects." msgstr "" "Los macros de esta sección se utilizan para administrar conteos de " "referencia de objetos Python." #: ../Doc/c-api/refcounting.rst:16 -msgid "Increment the reference count for object *o*." +#, fuzzy +msgid "Get the reference count of the Python object *o*." msgstr "Incrementar el recuento de referencia para el objeto *o*." #: ../Doc/c-api/refcounting.rst:18 msgid "" +"Note that the returned value may not actually reflect how many references to " +"the object are actually held. For example, some objects are \"immortal\" " +"and have a very high refcount that does not reflect the actual number of " +"references. Consequently, do not rely on the returned value to be accurate, " +"other than a value of 0 or 1." +msgstr "" + +#: ../Doc/c-api/refcounting.rst:24 +msgid "" +"Use the :c:func:`Py_SET_REFCNT()` function to set an object reference count." +msgstr "" + +#: ../Doc/c-api/refcounting.rst:26 +msgid "The parameter type is no longer :c:expr:`const PyObject*`." +msgstr "" + +#: ../Doc/c-api/refcounting.rst:29 +msgid ":c:func:`Py_REFCNT()` is changed to the inline static function." +msgstr "" + +#: ../Doc/c-api/refcounting.rst:35 +#, fuzzy +msgid "Set the object *o* reference counter to *refcnt*." +msgstr "Incrementar el recuento de referencia para el objeto *o*." + +#: ../Doc/c-api/refcounting.rst:37 +msgid "" +"Note that this function has no effect on `immortal `_ objects." +msgstr "" + +#: ../Doc/c-api/refcounting.rst:43 ../Doc/c-api/refcounting.rst:65 +#: ../Doc/c-api/refcounting.rst:142 +msgid "Immortal objects are not modified." +msgstr "" + +#: ../Doc/c-api/refcounting.rst:49 +msgid "" +"Indicate taking a new :term:`strong reference` to object *o*, indicating it " +"is in use and should not be destroyed." +msgstr "" + +#: ../Doc/c-api/refcounting.rst:52 +msgid "" "This function is usually used to convert a :term:`borrowed reference` to a :" "term:`strong reference` in-place. The :c:func:`Py_NewRef` function can be " "used to create a new :term:`strong reference`." @@ -48,7 +93,11 @@ msgstr "" "reference` en un :term:`strong reference` en su lugar. La función :c:func:" "`Py_NewRef` se puede utilizar para crear un nuevo :term:`strong reference`." -#: ../Doc/c-api/refcounting.rst:22 +#: ../Doc/c-api/refcounting.rst:56 +msgid "When done using the object, release it by calling :c:func:`Py_DECREF`." +msgstr "" + +#: ../Doc/c-api/refcounting.rst:58 msgid "" "The object must not be ``NULL``; if you aren't sure that it isn't ``NULL``, " "use :c:func:`Py_XINCREF`." @@ -56,35 +105,43 @@ msgstr "" "El objeto no debe ser ``NULL``; si no está seguro de que no sea ``NULL``, " "use :c:func:`Py_XINCREF`." -#: ../Doc/c-api/refcounting.rst:28 +#: ../Doc/c-api/refcounting.rst:61 ../Doc/c-api/refcounting.rst:127 msgid "" -"Increment the reference count for object *o*. The object may be ``NULL``, " -"in which case the macro has no effect." +"Do not expect this function to actually modify *o* in any way. For at least " +"`some objects `_, this function has no " +"effect." msgstr "" -"Incrementa el conteo de referencia para el objeto *o*. El objeto puede ser " -"``NULL``, en cuyo caso el macro no tiene efecto." -#: ../Doc/c-api/refcounting.rst:31 +#: ../Doc/c-api/refcounting.rst:71 +#, fuzzy +msgid "" +"Similar to :c:func:`Py_INCREF`, but the object *o* can be ``NULL``, in which " +"case this has no effect." +msgstr "Similar a :c:func:`Py_NewRef`, pero el objeto *o* puede ser NULL." + +#: ../Doc/c-api/refcounting.rst:74 msgid "See also :c:func:`Py_XNewRef`." msgstr "Ver también :c:func:`Py_XNewRef`." -#: ../Doc/c-api/refcounting.rst:36 +#: ../Doc/c-api/refcounting.rst:79 +#, fuzzy msgid "" -"Create a new :term:`strong reference` to an object: increment the reference " -"count of the object *o* and return the object *o*." +"Create a new :term:`strong reference` to an object: call :c:func:`Py_INCREF` " +"on *o* and return the object *o*." msgstr "" "Crea un nuevo :term:`strong reference` a un objeto: incrementa el recuento " "de referencias del objeto *o* y retorna el objeto *o*." -#: ../Doc/c-api/refcounting.rst:39 +#: ../Doc/c-api/refcounting.rst:82 +#, fuzzy msgid "" "When the :term:`strong reference` is no longer needed, :c:func:`Py_DECREF` " -"should be called on it to decrement the object reference count." +"should be called on it to release the reference." msgstr "" "Cuando el :term:`strong reference` ya no sea necesario :c:func:`Py_DECREF` " "debe ser llamado para disminuir el recuento de referencias del objeto." -#: ../Doc/c-api/refcounting.rst:42 +#: ../Doc/c-api/refcounting.rst:85 msgid "" "The object *o* must not be ``NULL``; use :c:func:`Py_XNewRef` if *o* can be " "``NULL``." @@ -92,39 +149,46 @@ msgstr "" "El objeto *o* no debe ser ``NULL``; use :c:func:`Py_XNewRef` si *o* puede " "ser ``NULL``." -#: ../Doc/c-api/refcounting.rst:45 +#: ../Doc/c-api/refcounting.rst:88 msgid "For example::" msgstr "Por ejemplo::" -#: ../Doc/c-api/refcounting.rst:50 +#: ../Doc/c-api/refcounting.rst:93 msgid "can be written as::" msgstr "puede ser escrito como::" -#: ../Doc/c-api/refcounting.rst:54 +#: ../Doc/c-api/refcounting.rst:97 msgid "See also :c:func:`Py_INCREF`." msgstr "Ver también :c:func:`Py_INCREF`." -#: ../Doc/c-api/refcounting.rst:61 +#: ../Doc/c-api/refcounting.rst:104 msgid "Similar to :c:func:`Py_NewRef`, but the object *o* can be NULL." msgstr "Similar a :c:func:`Py_NewRef`, pero el objeto *o* puede ser NULL." -#: ../Doc/c-api/refcounting.rst:63 +#: ../Doc/c-api/refcounting.rst:106 msgid "If the object *o* is ``NULL``, the function just returns ``NULL``." msgstr "Si el objeto *o* es ``NULL``, la función solo retorna ``NULL``." -#: ../Doc/c-api/refcounting.rst:70 -msgid "Decrement the reference count for object *o*." -msgstr "Decrementa el conteo de referencia para el objeto *o*." +#: ../Doc/c-api/refcounting.rst:113 +#, fuzzy +msgid "" +"Release a :term:`strong reference` to object *o*, indicating the reference " +"is no longer used." +msgstr "" +"Crea un nuevo :term:`strong reference` a un objeto: incrementa el recuento " +"de referencias del objeto *o* y retorna el objeto *o*." -#: ../Doc/c-api/refcounting.rst:72 +#: ../Doc/c-api/refcounting.rst:116 +#, fuzzy msgid "" -"If the reference count reaches zero, the object's type's deallocation " -"function (which must not be ``NULL``) is invoked." +"Once the last :term:`strong reference` is released (i.e. the object's " +"reference count reaches 0), the object's type's deallocation function (which " +"must not be ``NULL``) is invoked." msgstr "" "Si el recuento de referencias llega a cero, se invoca la función de " "desasignación del tipo de objeto (que no debe ser ``NULL``)." -#: ../Doc/c-api/refcounting.rst:75 +#: ../Doc/c-api/refcounting.rst:121 msgid "" "This function is usually used to delete a :term:`strong reference` before " "exiting its scope." @@ -132,7 +196,7 @@ msgstr "" "Esta función se usa generalmente para eliminar un :term:`strong reference` " "antes de salir de su alcance." -#: ../Doc/c-api/refcounting.rst:78 +#: ../Doc/c-api/refcounting.rst:124 msgid "" "The object must not be ``NULL``; if you aren't sure that it isn't ``NULL``, " "use :c:func:`Py_XDECREF`." @@ -140,17 +204,18 @@ msgstr "" "El objeto no debe ser ``NULL``; si no está seguro de que no sea ``NULL``, " "use :c:func:`Py_XINCREF`." -#: ../Doc/c-api/refcounting.rst:83 +#: ../Doc/c-api/refcounting.rst:133 +#, fuzzy msgid "" "The deallocation function can cause arbitrary Python code to be invoked (e." -"g. when a class instance with a :meth:`__del__` method is deallocated). " -"While exceptions in such code are not propagated, the executed code has free " -"access to all Python global variables. This means that any object that is " -"reachable from a global variable should be in a consistent state before :c:" -"func:`Py_DECREF` is invoked. For example, code to delete an object from a " -"list should copy a reference to the deleted object in a temporary variable, " -"update the list data structure, and then call :c:func:`Py_DECREF` for the " -"temporary variable." +"g. when a class instance with a :meth:`~object.__del__` method is " +"deallocated). While exceptions in such code are not propagated, the " +"executed code has free access to all Python global variables. This means " +"that any object that is reachable from a global variable should be in a " +"consistent state before :c:func:`Py_DECREF` is invoked. For example, code " +"to delete an object from a list should copy a reference to the deleted " +"object in a temporary variable, update the list data structure, and then " +"call :c:func:`Py_DECREF` for the temporary variable." msgstr "" "La función de desasignación puede hacer que se invoque un código arbitrario " "de Python (por ejemplo, cuando se desasigna una instancia de clase con un " @@ -163,24 +228,22 @@ msgstr "" "temporal, actualizar la estructura de datos de la lista y luego llamar a :c:" "func:`Py_DECREF` para la variable temporal." -#: ../Doc/c-api/refcounting.rst:95 +#: ../Doc/c-api/refcounting.rst:148 msgid "" -"Decrement the reference count for object *o*. The object may be ``NULL``, " -"in which case the macro has no effect; otherwise the effect is the same as " -"for :c:func:`Py_DECREF`, and the same warning applies." +"Similar to :c:func:`Py_DECREF`, but the object *o* can be ``NULL``, in which " +"case this has no effect. The same warning from :c:func:`Py_DECREF` applies " +"here as well." msgstr "" -"Disminuye el conteo de referencia para el objeto *o*. El objeto puede ser " -"``NULL``, en cuyo caso el macro no tiene efecto; de lo contrario, el efecto " -"es el mismo que para :c:func:`Py_DECREF`, y se aplica la misma advertencia." -#: ../Doc/c-api/refcounting.rst:102 +#: ../Doc/c-api/refcounting.rst:155 +#, fuzzy msgid "" -"Decrement the reference count for object *o*. The object may be ``NULL``, " -"in which case the macro has no effect; otherwise the effect is the same as " -"for :c:func:`Py_DECREF`, except that the argument is also set to ``NULL``. " -"The warning for :c:func:`Py_DECREF` does not apply with respect to the " -"object passed because the macro carefully uses a temporary variable and sets " -"the argument to ``NULL`` before decrementing its reference count." +"Release a :term:`strong reference` for object *o*. The object may be " +"``NULL``, in which case the macro has no effect; otherwise the effect is the " +"same as for :c:func:`Py_DECREF`, except that the argument is also set to " +"``NULL``. The warning for :c:func:`Py_DECREF` does not apply with respect " +"to the object passed because the macro carefully uses a temporary variable " +"and sets the argument to ``NULL`` before releasing the reference." msgstr "" "Disminuye el conteo de referencia para el objeto *o*. El objeto puede ser " "``NULL``, en cuyo caso el macro no tiene efecto; de lo contrario, el efecto " @@ -190,39 +253,101 @@ msgstr "" "variable temporal y establece el argumento en ``NULL`` antes de disminuir su " "conteo de referencia." -#: ../Doc/c-api/refcounting.rst:109 +#: ../Doc/c-api/refcounting.rst:163 +#, fuzzy msgid "" -"It is a good idea to use this macro whenever decrementing the reference " -"count of an object that might be traversed during garbage collection." +"It is a good idea to use this macro whenever releasing a reference to an " +"object that might be traversed during garbage collection." msgstr "" "Es una buena idea usar este macro siempre que disminuya el conteo de " "referencia de un objeto que pueda atravesarse durante la recolección de " "basura." -#: ../Doc/c-api/refcounting.rst:114 +#: ../Doc/c-api/refcounting.rst:166 msgid "" -"Increment the reference count for object *o*. A function version of :c:func:" -"`Py_XINCREF`. It can be used for runtime dynamic embedding of Python." +"The macro argument is now only evaluated once. If the argument has side " +"effects, these are no longer duplicated." +msgstr "" + +#: ../Doc/c-api/refcounting.rst:173 +#, fuzzy +msgid "" +"Indicate taking a new :term:`strong reference` to object *o*. A function " +"version of :c:func:`Py_XINCREF`. It can be used for runtime dynamic " +"embedding of Python." msgstr "" "Incrementa el conteo de referencias para objeto *o*. Una versión de la " "función :c:func:`Py_XINCREF`. Puede utilizarse para la integración dinámica " "en tiempo de ejecución de Python." -#: ../Doc/c-api/refcounting.rst:120 +#: ../Doc/c-api/refcounting.rst:180 +#, fuzzy msgid "" -"Decrement the reference count for object *o*. A function version of :c:func:" -"`Py_XDECREF`. It can be used for runtime dynamic embedding of Python." +"Release a :term:`strong reference` to object *o*. A function version of :c:" +"func:`Py_XDECREF`. It can be used for runtime dynamic embedding of Python." msgstr "" "Disminuye el conteo de referencias del objeto *o*. Una versión de la " "función :c:func:`Py_XDECREF`. Puede utilizarse para la integración dinámica " "en tiempo de ejecución de Python." -#: ../Doc/c-api/refcounting.rst:124 +#: ../Doc/c-api/refcounting.rst:187 +msgid "" +"Macro safely releasing a :term:`strong reference` to object *dst* and " +"setting *dst* to *src*." +msgstr "" + +#: ../Doc/c-api/refcounting.rst:190 +msgid "As in case of :c:func:`Py_CLEAR`, \"the obvious\" code can be deadly::" +msgstr "" + +#: ../Doc/c-api/refcounting.rst:195 +msgid "The safe way is::" +msgstr "" + +#: ../Doc/c-api/refcounting.rst:199 +msgid "" +"That arranges to set *dst* to *src* _before_ releasing the reference to the " +"old value of *dst*, so that any code triggered as a side-effect of *dst* " +"getting torn down no longer believes *dst* points to a valid object." +msgstr "" + +#: ../Doc/c-api/refcounting.rst:206 ../Doc/c-api/refcounting.rst:218 msgid "" -"The following functions or macros are only for use within the interpreter " -"core: :c:func:`_Py_Dealloc`, :c:func:`_Py_ForgetReference`, :c:func:" -"`_Py_NewReference`, as well as the global variable :c:data:`_Py_RefTotal`." +"The macro arguments are now only evaluated once. If an argument has side " +"effects, these are no longer duplicated." msgstr "" -"Las siguientes funciones o macros son solo para uso dentro del núcleo del " -"intérprete: :c:func:`_Py_Dealloc`, :c:func:`_Py_ForgetReference`, :c:func:" -"`_Py_NewReference`, así como la variable global :c:data:`_Py_RefTotal`." + +#: ../Doc/c-api/refcounting.rst:213 +msgid "" +"Variant of :c:macro:`Py_SETREF` macro that uses :c:func:`Py_XDECREF` instead " +"of :c:func:`Py_DECREF`." +msgstr "" + +#~ msgid "" +#~ "Increment the reference count for object *o*. The object may be " +#~ "``NULL``, in which case the macro has no effect." +#~ msgstr "" +#~ "Incrementa el conteo de referencia para el objeto *o*. El objeto puede " +#~ "ser ``NULL``, en cuyo caso el macro no tiene efecto." + +#~ msgid "Decrement the reference count for object *o*." +#~ msgstr "Decrementa el conteo de referencia para el objeto *o*." + +#~ msgid "" +#~ "Decrement the reference count for object *o*. The object may be " +#~ "``NULL``, in which case the macro has no effect; otherwise the effect is " +#~ "the same as for :c:func:`Py_DECREF`, and the same warning applies." +#~ msgstr "" +#~ "Disminuye el conteo de referencia para el objeto *o*. El objeto puede ser " +#~ "``NULL``, en cuyo caso el macro no tiene efecto; de lo contrario, el " +#~ "efecto es el mismo que para :c:func:`Py_DECREF`, y se aplica la misma " +#~ "advertencia." + +#~ msgid "" +#~ "The following functions or macros are only for use within the interpreter " +#~ "core: :c:func:`_Py_Dealloc`, :c:func:`_Py_ForgetReference`, :c:func:" +#~ "`_Py_NewReference`, as well as the global variable :c:data:`_Py_RefTotal`." +#~ msgstr "" +#~ "Las siguientes funciones o macros son solo para uso dentro del núcleo del " +#~ "intérprete: :c:func:`_Py_Dealloc`, :c:func:`_Py_ForgetReference`, :c:func:" +#~ "`_Py_NewReference`, así como la variable global :c:data:`_Py_RefTotal`." diff --git a/c-api/sequence.po b/c-api/sequence.po index 2da91ee853..73c61bd28b 100644 --- a/c-api/sequence.po +++ b/c-api/sequence.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-05-17 14:28+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/sequence.rst:6 msgid "Sequence Protocol" @@ -30,9 +30,9 @@ msgstr "Protocolo de secuencia" msgid "" "Return ``1`` if the object provides the sequence protocol, and ``0`` " "otherwise. Note that it returns ``1`` for Python classes with a :meth:" -"`__getitem__` method, unless they are :class:`dict` subclasses, since in " -"general it is impossible to determine what type of keys the class supports. " -"This function always succeeds." +"`~object.__getitem__` method, unless they are :class:`dict` subclasses, " +"since in general it is impossible to determine what type of keys the class " +"supports. This function always succeeds." msgstr "" "Retorna ``1`` si el objeto proporciona el protocolo de secuencia y ``0`` en " "caso contrario. Tenga en cuenta que retorna ``1`` para las clases de Python " @@ -285,3 +285,15 @@ msgstr "" "forma más rápida de :c:func:`PySequence_GetItem` pero sin verificar que :c:" "func:`PySequence_Check` en *o* es verdadero y sin ajuste para índices " "negativos." + +#: ../Doc/c-api/sequence.rst:21 ../Doc/c-api/sequence.rst:123 +msgid "built-in function" +msgstr "" + +#: ../Doc/c-api/sequence.rst:21 +msgid "len" +msgstr "" + +#: ../Doc/c-api/sequence.rst:123 +msgid "tuple" +msgstr "" diff --git a/c-api/set.po b/c-api/set.po index 92f87cebcd..290ccdce9f 100644 --- a/c-api/set.po +++ b/c-api/set.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-10 21:17+0100\n" "Last-Translator: Rodrigo Tobar \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/set.rst:6 msgid "Set Objects" @@ -181,10 +180,11 @@ msgstr "" "class:`set` o :class:`frozenset` o instancias de sus subtipos." #: ../Doc/c-api/set.rst:112 +#, fuzzy msgid "" "Return the length of a :class:`set` or :class:`frozenset` object. Equivalent " -"to ``len(anyset)``. Raises a :exc:`PyExc_SystemError` if *anyset* is not a :" -"class:`set`, :class:`frozenset`, or an instance of a subtype." +"to ``len(anyset)``. Raises a :exc:`SystemError` if *anyset* is not a :class:" +"`set`, :class:`frozenset`, or an instance of a subtype." msgstr "" "Retorna la longitud de un objeto :class:`set` o :class:`frozenset`. " "Equivalente a ``len(anyset)``. Lanza un :exc:`PyExc_SystemError` si *anyset* " @@ -195,13 +195,14 @@ msgid "Macro form of :c:func:`PySet_Size` without error checking." msgstr "Forma macro de :c:func:`PySet_Size` sin comprobación de errores." #: ../Doc/c-api/set.rst:124 +#, fuzzy msgid "" "Return ``1`` if found, ``0`` if not found, and ``-1`` if an error is " -"encountered. Unlike the Python :meth:`__contains__` method, this function " -"does not automatically convert unhashable sets into temporary frozensets. " -"Raise a :exc:`TypeError` if the *key* is unhashable. Raise :exc:" -"`PyExc_SystemError` if *anyset* is not a :class:`set`, :class:`frozenset`, " -"or an instance of a subtype." +"encountered. Unlike the Python :meth:`~object.__contains__` method, this " +"function does not automatically convert unhashable sets into temporary " +"frozensets. Raise a :exc:`TypeError` if the *key* is unhashable. Raise :exc:" +"`SystemError` if *anyset* is not a :class:`set`, :class:`frozenset`, or an " +"instance of a subtype." msgstr "" "Retorna ``1`` si se encuentra, ``0`` si no se encuentra y ``-1`` si se " "encuentra un error. A diferencia del método Python :meth:`__contains__`, " @@ -237,14 +238,14 @@ msgstr "" "sus subtipos, pero no para instancias de :class:`frozenset` o sus subtipos." #: ../Doc/c-api/set.rst:148 +#, fuzzy msgid "" "Return ``1`` if found and removed, ``0`` if not found (no action taken), and " "``-1`` if an error is encountered. Does not raise :exc:`KeyError` for " "missing keys. Raise a :exc:`TypeError` if the *key* is unhashable. Unlike " "the Python :meth:`~set.discard` method, this function does not automatically " -"convert unhashable sets into temporary frozensets. Raise :exc:" -"`PyExc_SystemError` if *set* is not an instance of :class:`set` or its " -"subtype." +"convert unhashable sets into temporary frozensets. Raise :exc:`SystemError` " +"if *set* is not an instance of :class:`set` or its subtype." msgstr "" "Retorna ``1`` si se encuentra y se elimina, ``0`` si no se encuentra (no se " "realiza ninguna acción) y ``-1`` si se encuentra un error. No lanza :exc:" @@ -269,3 +270,24 @@ msgstr "" #: ../Doc/c-api/set.rst:166 msgid "Empty an existing set of all elements." msgstr "Vacía un conjunto existente de todos los elementos." + +#: ../Doc/c-api/set.rst:11 +#, fuzzy +msgid "object" +msgstr "Objetos conjunto" + +#: ../Doc/c-api/set.rst:11 +msgid "set" +msgstr "" + +#: ../Doc/c-api/set.rst:11 +msgid "frozenset" +msgstr "" + +#: ../Doc/c-api/set.rst:110 +msgid "built-in function" +msgstr "" + +#: ../Doc/c-api/set.rst:110 +msgid "len" +msgstr "" diff --git a/c-api/slice.po b/c-api/slice.po index ff32c09705..55954fbb27 100644 --- a/c-api/slice.po +++ b/c-api/slice.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-03-19 11:16+0100\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-16 13:05+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,8 +19,7 @@ msgstr "" "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" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/slice.rst:6 msgid "Slice Objects" @@ -67,9 +66,10 @@ msgstr "" "*length* como errores." #: ../Doc/c-api/slice.rst:36 +#, fuzzy msgid "" "Returns ``0`` on success and ``-1`` on error with no exception set (unless " -"one of the indices was not :const:`None` and failed to be converted to an " +"one of the indices was not ``None`` and failed to be converted to an " "integer, in which case ``-1`` is returned with an exception set)." msgstr "" "Retorna ``0`` en caso de éxito y ``-1`` en caso de error sin excepción " @@ -187,11 +187,16 @@ msgid "Ellipsis Object" msgstr "Objeto elipsis" #: ../Doc/c-api/slice.rst:121 +#, fuzzy msgid "" -"The Python ``Ellipsis`` object. This object has no methods. It needs to be " -"treated just like any other object with respect to reference counts. Like :" -"c:data:`Py_None` it is a singleton object." +"The Python ``Ellipsis`` object. This object has no methods. Like :c:data:" +"`Py_None`, it is an `immortal `_. " +"singleton object." msgstr "" "El objeto ``Elipsis`` de Python. Este objeto no tiene métodos. Debe tratarse " "como cualquier otro objeto con respecto a los recuentos de referencia. Como :" "c:data:`Py_None` es un objeto singleton." + +#: ../Doc/c-api/slice.rst:125 +msgid ":c:data:`Py_Ellipsis` is immortal." +msgstr "" diff --git a/c-api/stable.po b/c-api/stable.po index dd3754a08d..0d33860461 100644 --- a/c-api/stable.po +++ b/c-api/stable.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-16 21:42+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-10-23 03:44-0500\n" "Last-Translator: José Luis Salgado Banda \n" "Language: es\n" @@ -19,20 +19,19 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.9.1\n" -"X-Generator: Poedit 3.0\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/stable.rst:7 msgid "C API Stability" msgstr "Estabilidad de la API en C" #: ../Doc/c-api/stable.rst:9 +#, fuzzy msgid "" -"Python's C API is covered by the Backwards Compatibility Policy, :pep:`387`. " -"While the C API will change with every minor release (e.g. from 3.9 to " -"3.10), most changes will be source-compatible, typically by only adding new " -"API. Changing existing API or removing API is only done after a deprecation " -"period or to fix serious issues." +"Unless documented otherwise, Python's C API is covered by the Backwards " +"Compatibility Policy, :pep:`387`. Most changes to it are source-compatible " +"(typically by only adding new API). Changing existing API or removing API is " +"only done after a deprecation period or to fix serious issues." msgstr "" "La API en C de Python está cubierta por la política de compatibilidad con " "versiones anteriores, :pep:`387`. Si bien la API en C cambiará con cada " @@ -56,54 +55,96 @@ msgstr "" "viceversa, pero tendrá que compilarse por separado para 3.9.x y 3.10.x." #: ../Doc/c-api/stable.rst:21 +msgid "There are two tiers of C API with different stability expectations:" +msgstr "" + +#: ../Doc/c-api/stable.rst:23 +msgid "" +":ref:`Unstable API `, may change in minor versions without a " +"deprecation period. It is marked by the ``PyUnstable`` prefix in names." +msgstr "" + +#: ../Doc/c-api/stable.rst:25 +msgid "" +":ref:`Limited API `, is compatible across several minor " +"releases. When :c:macro:`Py_LIMITED_API` is defined, only this subset is " +"exposed from ``Python.h``." +msgstr "" + +#: ../Doc/c-api/stable.rst:29 +msgid "These are discussed in more detail below." +msgstr "" + +#: ../Doc/c-api/stable.rst:31 +#, fuzzy msgid "" "Names prefixed by an underscore, such as ``_Py_InternalState``, are private " -"API that can change without notice even in patch releases." +"API that can change without notice even in patch releases. If you need to " +"use this API, consider reaching out to `CPython developers `_ to discuss adding public API for your use " +"case." msgstr "" "Los nombres con el prefijo de un guión bajo, como ``_Py_InternalState``, son " "API privadas que pueden cambiar incluso sin notificar en lanzamientos de " "parches." -#: ../Doc/c-api/stable.rst:26 -msgid "Stable Application Binary Interface" -msgstr "Interfaz binaria de aplicación estable" +#: ../Doc/c-api/stable.rst:40 +msgid "Unstable C API" +msgstr "" -#: ../Doc/c-api/stable.rst:28 +#: ../Doc/c-api/stable.rst:44 msgid "" -"Python 3.2 introduced the *Limited API*, a subset of Python's C API. " -"Extensions that only use the Limited API can be compiled once and work with " -"multiple versions of Python. Contents of the Limited API are :ref:`listed " -"below `." +"Any API named with the ``PyUnstable`` prefix exposes CPython implementation " +"details, and may change in every minor release (e.g. from 3.9 to 3.10) " +"without any deprecation warnings. However, it will not change in a bugfix " +"release (e.g. from 3.10.0 to 3.10.1)." msgstr "" -"En Python 3.2 se introdujo la *API limitada*, un subconjunto de la API en C " -"de Python. Las extensiones que sólo usan la API limitada pueden compilarse " -"una vez y funcionan con múltiples versiones de Python. El contenido de la " -"API limitada es :ref:`enumerado a continuación `." -#: ../Doc/c-api/stable.rst:33 +#: ../Doc/c-api/stable.rst:49 msgid "" -"To enable this, Python provides a *Stable ABI*: a set of symbols that will " -"remain compatible across Python 3.x versions. The Stable ABI contains " -"symbols exposed in the Limited API, but also other ones – for example, " -"functions necessary to support older versions of the Limited API." +"It is generally intended for specialized, low-level tools like debuggers." msgstr "" -"Para habilitar esto, Python proporciona una *ABI estable*: un conjunto de " -"símbolos que permanecerá compatible en todas las versiones de Python 3.x. La " -"ABI estable contiene símbolos expuestos en la API limitada, pero también " -"otros - por ejemplo, funciones necesarias para soportar versiones anteriores " -"de la API limitada." -#: ../Doc/c-api/stable.rst:38 +#: ../Doc/c-api/stable.rst:51 msgid "" -"(For simplicity, this document talks about *extensions*, but the Limited API " +"Projects that use this API are expected to follow CPython development and " +"spend extra effort adjusting to changes." +msgstr "" + +#: ../Doc/c-api/stable.rst:56 +msgid "Stable Application Binary Interface" +msgstr "Interfaz binaria de aplicación estable" + +#: ../Doc/c-api/stable.rst:58 +#, fuzzy +msgid "" +"For simplicity, this document talks about *extensions*, but the Limited API " "and Stable ABI work the same way for all uses of the API – for example, " -"embedding Python.)" +"embedding Python." msgstr "" "(Para simplificar, este documento trata acerca de *extensiones*, pero la API " "limitada y la ABI estable funcionan de la misma forma para todos los usos de " "la API - por ejemplo, incrustar Python.)" -#: ../Doc/c-api/stable.rst:44 +#: ../Doc/c-api/stable.rst:65 +#, fuzzy +msgid "Limited C API" +msgstr "Advertencias de la API limitada" + +#: ../Doc/c-api/stable.rst:67 +#, fuzzy +msgid "" +"Python 3.2 introduced the *Limited API*, a subset of Python's C API. " +"Extensions that only use the Limited API can be compiled once and work with " +"multiple versions of Python. Contents of the Limited API are :ref:`listed " +"below `." +msgstr "" +"En Python 3.2 se introdujo la *API limitada*, un subconjunto de la API en C " +"de Python. Las extensiones que sólo usan la API limitada pueden compilarse " +"una vez y funcionan con múltiples versiones de Python. El contenido de la " +"API limitada es :ref:`enumerado a continuación `." + +#: ../Doc/c-api/stable.rst:74 msgid "" "Define this macro before including ``Python.h`` to opt in to only use the " "Limited API, and to select the Limited API version." @@ -111,9 +152,10 @@ msgstr "" "Se define esta macro antes de incluir ``Python.h`` para optar por usar sólo " "la API limitada y para seleccionar la versión de la API limitada." -#: ../Doc/c-api/stable.rst:47 +#: ../Doc/c-api/stable.rst:77 +#, fuzzy msgid "" -"Define ``Py_LIMITED_API`` to the value of :c:data:`PY_VERSION_HEX` " +"Define ``Py_LIMITED_API`` to the value of :c:macro:`PY_VERSION_HEX` " "corresponding to the lowest Python version your extension supports. The " "extension will work without recompilation with all Python 3 releases from " "the specified one onward, and can use Limited API introduced up to that " @@ -125,7 +167,7 @@ msgstr "" "Python 3 desde la especificada en adelante, y se puede usar la API limitada " "que se introdujo hasta esa versión." -#: ../Doc/c-api/stable.rst:53 +#: ../Doc/c-api/stable.rst:83 msgid "" "Rather than using the ``PY_VERSION_HEX`` macro directly, hardcode a minimum " "minor version (e.g. ``0x030A0000`` for Python 3.10) for stability when " @@ -135,7 +177,7 @@ msgstr "" "una versión menor mínima (por ejemplo, ``0x030A0000`` para Python 3.10) para " "tener estabilidad cuando se compila con futuras versiones de Python." -#: ../Doc/c-api/stable.rst:57 +#: ../Doc/c-api/stable.rst:87 msgid "" "You can also define ``Py_LIMITED_API`` to ``3``. This works the same as " "``0x03020000`` (Python 3.2, the version that introduced Limited API)." @@ -143,7 +185,30 @@ msgstr "" "También se puede definir ``Py_LIMITED_API`` con ``3``. Esto funciona igual " "que ``0x03020000`` (Python 3.2, la función que introdujo la API limitada)." -#: ../Doc/c-api/stable.rst:60 +#: ../Doc/c-api/stable.rst:94 +msgid "Stable ABI" +msgstr "" + +#: ../Doc/c-api/stable.rst:96 +msgid "" +"To enable this, Python provides a *Stable ABI*: a set of symbols that will " +"remain compatible across Python 3.x versions." +msgstr "" + +#: ../Doc/c-api/stable.rst:99 +#, fuzzy +msgid "" +"The Stable ABI contains symbols exposed in the :ref:`Limited API `, but also other ones – for example, functions necessary to support " +"older versions of the Limited API." +msgstr "" +"Para habilitar esto, Python proporciona una *ABI estable*: un conjunto de " +"símbolos que permanecerá compatible en todas las versiones de Python 3.x. La " +"ABI estable contiene símbolos expuestos en la API limitada, pero también " +"otros - por ejemplo, funciones necesarias para soportar versiones anteriores " +"de la API limitada." + +#: ../Doc/c-api/stable.rst:103 msgid "" "On Windows, extensions that use the Stable ABI should be linked against " "``python3.dll`` rather than a version-specific library such as ``python39." @@ -153,7 +218,7 @@ msgstr "" "con ``python3.dll`` en lugar de una biblioteca específica de la versión como " "``python39.dll``." -#: ../Doc/c-api/stable.rst:64 +#: ../Doc/c-api/stable.rst:107 msgid "" "On some platforms, Python will look for and load shared library files named " "with the ``abi3`` tag (e.g. ``mymodule.abi3.so``). It does not check if such " @@ -168,7 +233,7 @@ msgstr "" "ejemplo, las extensiones que se crean con la API limitada 3.10+ no estén " "instaladas para versiones inferiores de Python." -#: ../Doc/c-api/stable.rst:71 +#: ../Doc/c-api/stable.rst:114 msgid "" "All functions in the Stable ABI are present as functions in Python's shared " "library, not solely as macros. This makes them usable from languages that " @@ -178,11 +243,11 @@ msgstr "" "biblioteca compartida de Python, no sólo como macros. Esto las hace " "utilizables desde lenguajes que no usan el preprocesador de C." -#: ../Doc/c-api/stable.rst:77 +#: ../Doc/c-api/stable.rst:120 msgid "Limited API Scope and Performance" msgstr "Alcance y rendimiento de la API limitada" -#: ../Doc/c-api/stable.rst:79 +#: ../Doc/c-api/stable.rst:122 msgid "" "The goal for the Limited API is to allow everything that is possible with " "the full C API, but possibly with a performance penalty." @@ -190,7 +255,7 @@ msgstr "" "El objetivo de la API limitada es permitir todo lo que es posible con la API " "completa en C, pero posiblemente con una penalización de rendimiento." -#: ../Doc/c-api/stable.rst:82 +#: ../Doc/c-api/stable.rst:125 msgid "" "For example, while :c:func:`PyList_GetItem` is available, its “unsafe” macro " "variant :c:func:`PyList_GET_ITEM` is not. The macro can be faster because it " @@ -201,7 +266,7 @@ msgstr "" "más rápida porque puede confiar en los detalles de implementación " "específicos de la versión del objeto de lista." -#: ../Doc/c-api/stable.rst:87 +#: ../Doc/c-api/stable.rst:130 msgid "" "Without ``Py_LIMITED_API`` defined, some C API functions are inlined or " "replaced by macros. Defining ``Py_LIMITED_API`` disables this inlining, " @@ -213,7 +278,7 @@ msgstr "" "esta integración, permitiendo estabilidad mientras que se mejoren las " "estructuras de datos de Python, pero posiblemente reduzca el rendimiento." -#: ../Doc/c-api/stable.rst:92 +#: ../Doc/c-api/stable.rst:135 msgid "" "By leaving out the ``Py_LIMITED_API`` definition, it is possible to compile " "a Limited API extension with a version-specific ABI. This can improve " @@ -229,23 +294,24 @@ msgstr "" "se puede distribuir donde una versión específica no esté disponible - por " "ejemplo, para los prelanzamientos de una versión próxima de Python." -#: ../Doc/c-api/stable.rst:101 +#: ../Doc/c-api/stable.rst:144 msgid "Limited API Caveats" msgstr "Advertencias de la API limitada" -#: ../Doc/c-api/stable.rst:103 +#: ../Doc/c-api/stable.rst:146 +#, fuzzy msgid "" "Note that compiling with ``Py_LIMITED_API`` is *not* a complete guarantee " -"that code conforms to the Limited API or the Stable ABI. ``Py_LIMITED_API`` " -"only covers definitions, but an API also includes other issues, such as " -"expected semantics." +"that code conforms to the :ref:`Limited API ` or the :ref:" +"`Stable ABI `. ``Py_LIMITED_API`` only covers definitions, but " +"an API also includes other issues, such as expected semantics." msgstr "" "Tome en cuenta que compilar con ``Py_LIMITED_API`` *no* es una garantía " "completa de que el código se ajuste a la API limitada o a la ABI estable. " "``Py_LIMITED_API`` sólo cubre definiciones, pero también una API incluye " "otros problemas, como la semántica esperada." -#: ../Doc/c-api/stable.rst:108 +#: ../Doc/c-api/stable.rst:151 msgid "" "One issue that ``Py_LIMITED_API`` does not guard against is calling a " "function with arguments that are invalid in a lower Python version. For " @@ -262,7 +328,7 @@ msgstr "" "causando una desreferencia ``NULL`` y se detendrá. Un argumento similar " "funciona para campos de estructuras." -#: ../Doc/c-api/stable.rst:115 +#: ../Doc/c-api/stable.rst:158 msgid "" "Another issue is that some struct fields are currently not hidden when " "``Py_LIMITED_API`` is defined, even though they're part of the Limited API." @@ -270,7 +336,7 @@ msgstr "" "Otro problema es que algunos campos de estructura no se ocultan actualmente " "cuando se define ``Py_LIMITED_API``, aunque son parte de la API limitada." -#: ../Doc/c-api/stable.rst:118 +#: ../Doc/c-api/stable.rst:161 msgid "" "For these reasons, we recommend testing an extension with *all* minor Python " "versions it supports, and preferably to build with the *lowest* such version." @@ -279,7 +345,7 @@ msgstr "" "versiones menores de Python que soporte, y preferiblemente compilar con la " "versión *más baja*." -#: ../Doc/c-api/stable.rst:121 +#: ../Doc/c-api/stable.rst:164 msgid "" "We also recommend reviewing documentation of all used API to check if it is " "explicitly part of the Limited API. Even with ``Py_LIMITED_API`` defined, a " @@ -291,7 +357,7 @@ msgstr "" "``Py_LIMITED_API``, algunas declaraciones privadas se exponen por razones " "técnicas (o incluso involuntariamente, como errores)." -#: ../Doc/c-api/stable.rst:126 +#: ../Doc/c-api/stable.rst:169 msgid "" "Also note that the Limited API is not necessarily stable: compiling with " "``Py_LIMITED_API`` with Python 3.8 means that the extension will run with " @@ -305,16 +371,17 @@ msgstr "" "3.12. En particular, las partes de la API limitada se pueden quedar " "obsoletas y eliminarse, siempre que la ABI estable permanezca estable." -#: ../Doc/c-api/stable.rst:136 +#: ../Doc/c-api/stable.rst:179 msgid "Platform Considerations" msgstr "Consideraciones de la plataforma" -#: ../Doc/c-api/stable.rst:138 +#: ../Doc/c-api/stable.rst:181 +#, fuzzy msgid "" "ABI stability depends not only on Python, but also on the compiler used, " -"lower-level libraries and compiler options. For the purposes of the Stable " -"ABI, these details define a “platform”. They usually depend on the OS type " -"and processor architecture" +"lower-level libraries and compiler options. For the purposes of the :ref:" +"`Stable ABI `, these details define a “platform”. They usually " +"depend on the OS type and processor architecture" msgstr "" "La estabilidad de la ABI depende no sólo de Python, sino también del " "compilador que se usa, las bibliotecas de nivel inferior y las opciones del " @@ -322,7 +389,7 @@ msgstr "" "“plataforma”. Generalmente dependen del tipo del sistema operativo y de la " "arquitectura del procesador" -#: ../Doc/c-api/stable.rst:143 +#: ../Doc/c-api/stable.rst:186 msgid "" "It is the responsibility of each particular distributor of Python to ensure " "that all Python versions on a particular platform are built in a way that " @@ -335,10 +402,17 @@ msgstr "" "versiones de Windows y macOS de ``python.org`` y muchos distribuidores de " "terceros." -#: ../Doc/c-api/stable.rst:153 +#: ../Doc/c-api/stable.rst:196 msgid "Contents of Limited API" msgstr "Contenido de la API limitada" -#: ../Doc/c-api/stable.rst:156 -msgid "Currently, the Limited API includes the following items:" +#: ../Doc/c-api/stable.rst:199 +#, fuzzy +msgid "" +"Currently, the :ref:`Limited API ` includes the following " +"items:" msgstr "Actualmente, la API limitada incluye los siguientes elementos:" + +#: ../Doc/c-api/stable.rst:42 +msgid "PyUnstable" +msgstr "" diff --git a/c-api/structures.po b/c-api/structures.po index a21620378a..9c15878629 100644 --- a/c-api/structures.po +++ b/c-api/structures.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-31 15:59-0400\n" "Last-Translator: José Luis Salgado Banda \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/structures.rst:6 msgid "Common Object Structures" @@ -41,12 +40,15 @@ msgid "Base object types and macros" msgstr "Tipos objeto base y macros" #: ../Doc/c-api/structures.rst:16 +#, fuzzy msgid "" "All Python objects ultimately share a small number of fields at the " "beginning of the object's representation in memory. These are represented " "by the :c:type:`PyObject` and :c:type:`PyVarObject` types, which are " "defined, in turn, by the expansions of some macros also used, whether " -"directly or indirectly, in the definition of all other Python objects." +"directly or indirectly, in the definition of all other Python objects. " +"Additional macros can be found under :ref:`reference counting " +"`." msgstr "" "En última instancia, todos los objetos de Python comparten un pequeño número " "de campos en el comienzo de la representación del objeto en la memoria. " @@ -55,7 +57,7 @@ msgstr "" "utilizan, ya sea directa o indirectamente, en la definición de todos otros " "objetos de Python." -#: ../Doc/c-api/structures.rst:25 +#: ../Doc/c-api/structures.rst:26 #, fuzzy msgid "" "All object types are extensions of this type. This is a type which contains " @@ -75,13 +77,14 @@ msgstr "" "una :c:type:`PyObject*`. El acceso a los miembros debe hacerse mediante el " "uso de las macros :c:macro:`Py_REFCNT` y :c:macro:`Py_TYPE`." -#: ../Doc/c-api/structures.rst:37 +#: ../Doc/c-api/structures.rst:38 +#, fuzzy msgid "" -"This is an extension of :c:type:`PyObject` that adds the :attr:`ob_size` " -"field. This is only used for objects that have some notion of *length*. " -"This type does not often appear in the Python/C API. Access to the members " -"must be done by using the macros :c:macro:`Py_REFCNT`, :c:macro:`Py_TYPE`, " -"and :c:macro:`Py_SIZE`." +"This is an extension of :c:type:`PyObject` that adds the :c:member:" +"`~PyVarObject.ob_size` field. This is only used for objects that have some " +"notion of *length*. This type does not often appear in the Python/C API. " +"Access to the members must be done by using the macros :c:macro:" +"`Py_REFCNT`, :c:macro:`Py_TYPE`, and :c:macro:`Py_SIZE`." msgstr "" "Esta es una extensión de :c:type:`PyObject` que se suma el campo :attr:" "`ob_size`. Esto sólo se utiliza para objetos que tienen cierta noción de " @@ -89,7 +92,7 @@ msgstr "" "acceso a los miembros debe hacerse mediante el uso de las macros :c:macro:" "`Py_REFCNT`, :c:macro:`Py_TYPE`, y :c:macro:`Py_SIZE`." -#: ../Doc/c-api/structures.rst:46 +#: ../Doc/c-api/structures.rst:47 msgid "" "This is a macro used when declaring new types which represent objects " "without a varying length. The PyObject_HEAD macro expands to::" @@ -97,12 +100,12 @@ msgstr "" "Esta es una macro utilizado cuando se declara nuevos tipos que representan " "objetos sin una longitud variable. La macro PyObject_HEAD se expande a::" -#: ../Doc/c-api/structures.rst:51 +#: ../Doc/c-api/structures.rst:52 msgid "See documentation of :c:type:`PyObject` above." msgstr "" "Consulte la documentación de :c:type:`PyObject` en secciones anteriores." -#: ../Doc/c-api/structures.rst:56 +#: ../Doc/c-api/structures.rst:57 msgid "" "This is a macro used when declaring new types which represent objects with a " "length that varies from instance to instance. The PyObject_VAR_HEAD macro " @@ -112,17 +115,17 @@ msgstr "" "objetos con una longitud que varía de una instancia a otra instancia. La " "macro PyObject_VAR_HEAD se expande a::" -#: ../Doc/c-api/structures.rst:62 +#: ../Doc/c-api/structures.rst:63 msgid "See documentation of :c:type:`PyVarObject` above." msgstr "Consulte la documentación de :c:type:`PyVarObject` anteriormente." -#: ../Doc/c-api/structures.rst:67 +#: ../Doc/c-api/structures.rst:68 msgid "" "Test if the *x* object is the *y* object, the same as ``x is y`` in Python." msgstr "" "Prueba si el objeto *x* es el objeto *y*, lo mismo que ``x is y`` en Python." -#: ../Doc/c-api/structures.rst:74 +#: ../Doc/c-api/structures.rst:75 msgid "" "Test if an object is the ``None`` singleton, the same as ``x is None`` in " "Python." @@ -130,7 +133,7 @@ msgstr "" "Prueba si un objeto es la instancia única ``None``, lo mismo que ``x is " "None`` en Python." -#: ../Doc/c-api/structures.rst:82 +#: ../Doc/c-api/structures.rst:83 msgid "" "Test if an object is the ``True`` singleton, the same as ``x is True`` in " "Python." @@ -138,7 +141,7 @@ msgstr "" "Prueba si un objeto es la instancia única ``True``, lo mismo que ``x is " "True`` en Python." -#: ../Doc/c-api/structures.rst:90 +#: ../Doc/c-api/structures.rst:91 msgid "" "Test if an object is the ``False`` singleton, the same as ``x is False`` in " "Python." @@ -146,22 +149,22 @@ msgstr "" "Prueba si un objeto es la instancia única ``False``, lo mismo que ``x is " "False`` en Python." -#: ../Doc/c-api/structures.rst:98 +#: ../Doc/c-api/structures.rst:99 msgid "Get the type of the Python object *o*." msgstr "Obtiene el tipo de objeto Python *o*." -#: ../Doc/c-api/structures.rst:100 +#: ../Doc/c-api/structures.rst:101 msgid "Return a :term:`borrowed reference`." msgstr "Retorna una referencia prestada (:term:`borrowed reference`)." -#: ../Doc/c-api/structures.rst:102 +#: ../Doc/c-api/structures.rst:103 #, fuzzy msgid "Use the :c:func:`Py_SET_TYPE` function to set an object type." msgstr "" "Debe utilizarse la función :c:func:`Py_SET_TYPE` para establecer un tipo de " "objeto." -#: ../Doc/c-api/structures.rst:104 +#: ../Doc/c-api/structures.rst:105 msgid "" ":c:func:`Py_TYPE()` is changed to an inline static function. The parameter " "type is no longer :c:expr:`const PyObject*`." @@ -169,7 +172,7 @@ msgstr "" ":c:func:`Py_TYPE()` se cambia a una función estática inline. El tipo de " "parámetro ya no es :c:expr:`const PyObject*`." -#: ../Doc/c-api/structures.rst:111 +#: ../Doc/c-api/structures.rst:112 msgid "" "Return non-zero if the object *o* type is *type*. Return zero otherwise. " "Equivalent to: ``Py_TYPE(o) == type``." @@ -177,46 +180,22 @@ msgstr "" "Retorna un valor distinto de cero si el objeto *o* tipo es *type*. Retorna " "cero en caso contrario. Equivalente a: ``Py_TYPE(o) == type``." -#: ../Doc/c-api/structures.rst:119 +#: ../Doc/c-api/structures.rst:120 msgid "Set the object *o* type to *type*." msgstr "Establece el tipo del objeto *o* a *type*." -#: ../Doc/c-api/structures.rst:126 -msgid "Get the reference count of the Python object *o*." -msgstr "Obtiene la cuenta de referencias del objeto Python *o*." - -#: ../Doc/c-api/structures.rst:128 -#, fuzzy -msgid "" -"Use the :c:func:`Py_SET_REFCNT()` function to set an object reference count." -msgstr "" -"Debe utilizarse la función :c:func:`Py_SET_TYPE` para establecer un tipo de " -"objeto." - -#: ../Doc/c-api/structures.rst:130 -msgid "The parameter type is no longer :c:expr:`const PyObject*`." -msgstr "El tipo de parámetro ya no es :c:expr:`const PyObject*`." - -#: ../Doc/c-api/structures.rst:133 -msgid ":c:func:`Py_REFCNT()` is changed to the inline static function." -msgstr ":c:func:`Py_REFCNT()` se cambia a la función estática inline." - -#: ../Doc/c-api/structures.rst:139 -msgid "Set the object *o* reference counter to *refcnt*." -msgstr "Establece el conteo de referencia del objeto *o* a *refcnt*." - -#: ../Doc/c-api/structures.rst:146 +#: ../Doc/c-api/structures.rst:127 msgid "Get the size of the Python object *o*." msgstr "Obtiene el tamaño del objeto Python *o*." -#: ../Doc/c-api/structures.rst:148 +#: ../Doc/c-api/structures.rst:129 #, fuzzy msgid "Use the :c:func:`Py_SET_SIZE` function to set an object size." msgstr "" "Debe utilizarse la función :c:func:`Py_SET_SIZE` para establecer un tamaño " "de objeto." -#: ../Doc/c-api/structures.rst:150 +#: ../Doc/c-api/structures.rst:131 msgid "" ":c:func:`Py_SIZE()` is changed to an inline static function. The parameter " "type is no longer :c:expr:`const PyVarObject*`." @@ -224,11 +203,11 @@ msgstr "" ":c:func:`Py_SIZE()` se cambia a una función estática inline. El tipo de " "parámetro ya no es :c:expr:`const PyVarObject*`." -#: ../Doc/c-api/structures.rst:157 +#: ../Doc/c-api/structures.rst:138 msgid "Set the object *o* size to *size*." msgstr "Establece el tamaño del objeto *o* a *size*." -#: ../Doc/c-api/structures.rst:164 +#: ../Doc/c-api/structures.rst:145 msgid "" "This is a macro which expands to initialization values for a new :c:type:" "`PyObject` type. This macro expands to::" @@ -236,21 +215,22 @@ msgstr "" "Esta es una macro que se expande para valores de inicialización para un " "nuevo tipo :c:type:`PyObject`. Esta macro expande::" -#: ../Doc/c-api/structures.rst:173 +#: ../Doc/c-api/structures.rst:154 +#, fuzzy msgid "" "This is a macro which expands to initialization values for a new :c:type:" -"`PyVarObject` type, including the :attr:`ob_size` field. This macro expands " -"to::" +"`PyVarObject` type, including the :c:member:`~PyVarObject.ob_size` field. " +"This macro expands to::" msgstr "" "Esta es una macro que se expande para valores de inicialización para un " "nuevo tipo :c:type:`PyVarObject`, incluyendo el campo :attr:`ob_size`. Esta " "macro se expande a::" -#: ../Doc/c-api/structures.rst:182 +#: ../Doc/c-api/structures.rst:163 msgid "Implementing functions and methods" msgstr "Implementando funciones y métodos" -#: ../Doc/c-api/structures.rst:186 +#: ../Doc/c-api/structures.rst:167 #, fuzzy msgid "" "Type of the functions used to implement most Python callables in C. " @@ -267,47 +247,53 @@ msgstr "" "interpreta como el valor de retorno de la función que se expone en Python. " "La función debe retornar una nueva referencia." -#: ../Doc/c-api/structures.rst:193 +#: ../Doc/c-api/structures.rst:174 msgid "The function signature is::" msgstr "La firma de la función es::" -#: ../Doc/c-api/structures.rst:200 +#: ../Doc/c-api/structures.rst:181 +#, fuzzy msgid "" "Type of the functions used to implement Python callables in C with " -"signature :const:`METH_VARARGS | METH_KEYWORDS`. The function signature is::" +"signature :ref:`METH_VARARGS | METH_KEYWORDS `. " +"The function signature is::" msgstr "" "Tipo de las funciones que se utilizan para implementar invocables Python en " "C con la firma :const:`METH_VARARGS | METH_KEYWORDS`. La firma de la función " "es::" -#: ../Doc/c-api/structures.rst:211 +#: ../Doc/c-api/structures.rst:192 +#, fuzzy msgid "" "Type of the functions used to implement Python callables in C with " -"signature :const:`METH_FASTCALL`. The function signature is::" +"signature :c:macro:`METH_FASTCALL`. The function signature is::" msgstr "" "Tipo de las funciones que se utilizan para implementar invocables Python en " "C con la firma :const:`METH_FASTCALL`. La firma de la función es::" -#: ../Doc/c-api/structures.rst:221 +#: ../Doc/c-api/structures.rst:202 +#, fuzzy msgid "" "Type of the functions used to implement Python callables in C with " -"signature :const:`METH_FASTCALL | METH_KEYWORDS`. The function signature is::" +"signature :ref:`METH_FASTCALL | METH_KEYWORDS `. The function signature is::" msgstr "" "Tipo de las funciones que se utilizan para implementar invocables Python en " "C con la firma :const:`METH_FASTCALL | METH_KEYWORDS`. La firma de la " "función es::" -#: ../Doc/c-api/structures.rst:232 +#: ../Doc/c-api/structures.rst:213 +#, fuzzy msgid "" "Type of the functions used to implement Python callables in C with " -"signature :const:`METH_METHOD | METH_FASTCALL | METH_KEYWORDS`. The function " -"signature is::" +"signature :ref:`METH_METHOD | METH_FASTCALL | METH_KEYWORDS `. The function signature is::" msgstr "" "Tipo de las funciones que se utilizan para implementar invocables Python en " "C con la firma :const:`METH_METHOD | METH_FASTCALL | METH_KEYWORDS`. La " "firma de la función es::" -#: ../Doc/c-api/structures.rst:247 +#: ../Doc/c-api/structures.rst:228 msgid "" "Structure used to describe a method of an extension type. This structure " "has four fields:" @@ -315,76 +301,33 @@ msgstr "" "Estructura utiliza para describir un método de un tipo de extensión. Esta " "estructura tiene cuatro campos:" -#: ../Doc/c-api/structures.rst:251 ../Doc/c-api/structures.rst:410 -#: ../Doc/c-api/structures.rst:506 -msgid "Field" -msgstr "Campo" - -#: ../Doc/c-api/structures.rst:251 ../Doc/c-api/structures.rst:410 -#: ../Doc/c-api/structures.rst:506 -msgid "C Type" -msgstr "Tipo C" - -#: ../Doc/c-api/structures.rst:251 ../Doc/c-api/structures.rst:410 -#: ../Doc/c-api/structures.rst:506 -msgid "Meaning" -msgstr "Significado" - -#: ../Doc/c-api/structures.rst:253 -msgid ":attr:`ml_name`" -msgstr ":attr:`ml_name`" - -#: ../Doc/c-api/structures.rst:253 ../Doc/c-api/structures.rst:261 -#: ../Doc/c-api/structures.rst:412 ../Doc/c-api/structures.rst:425 -#: ../Doc/c-api/structures.rst:441 ../Doc/c-api/structures.rst:508 -#: ../Doc/c-api/structures.rst:516 -msgid "const char \\*" -msgstr "const char \\*" - -#: ../Doc/c-api/structures.rst:253 -msgid "name of the method" +#: ../Doc/c-api/structures.rst:233 +#, fuzzy +msgid "Name of the method." msgstr "nombre del método" -#: ../Doc/c-api/structures.rst:255 -msgid ":attr:`ml_meth`" -msgstr ":attr:`ml_meth`" - -#: ../Doc/c-api/structures.rst:255 -msgid "PyCFunction" -msgstr "PyCFunction" - -#: ../Doc/c-api/structures.rst:255 -msgid "pointer to the C implementation" +#: ../Doc/c-api/structures.rst:237 +#, fuzzy +msgid "Pointer to the C implementation." msgstr "puntero a la implementación en C" -#: ../Doc/c-api/structures.rst:258 -msgid ":attr:`ml_flags`" -msgstr ":attr:`ml_flags`" - -#: ../Doc/c-api/structures.rst:258 ../Doc/c-api/structures.rst:414 -#: ../Doc/c-api/structures.rst:421 ../Doc/c-api/structures.rst:437 -msgid "int" -msgstr "int" - -#: ../Doc/c-api/structures.rst:258 -msgid "flag bits indicating how the call should be constructed" +#: ../Doc/c-api/structures.rst:241 +#, fuzzy +msgid "Flags bits indicating how the call should be constructed." msgstr "*flag* bits que indican cómo debe ser construida la llamada" -#: ../Doc/c-api/structures.rst:261 -msgid ":attr:`ml_doc`" -msgstr ":attr:`ml_doc`" - -#: ../Doc/c-api/structures.rst:261 ../Doc/c-api/structures.rst:425 -msgid "points to the contents of the docstring" +#: ../Doc/c-api/structures.rst:245 +#, fuzzy +msgid "Points to the contents of the docstring." msgstr "puntos a los contenidos del docstring" -#: ../Doc/c-api/structures.rst:265 +#: ../Doc/c-api/structures.rst:247 #, fuzzy msgid "" -"The :attr:`ml_meth` is a C function pointer. The functions may be of " -"different types, but they always return :c:expr:`PyObject*`. If the " -"function is not of the :c:type:`PyCFunction`, the compiler will require a " -"cast in the method table. Even though :c:type:`PyCFunction` defines the " +"The :c:member:`~PyMethodDef.ml_meth` is a C function pointer. The functions " +"may be of different types, but they always return :c:expr:`PyObject*`. If " +"the function is not of the :c:type:`PyCFunction`, the compiler will require " +"a cast in the method table. Even though :c:type:`PyCFunction` defines the " "first parameter as :c:expr:`PyObject*`, it is common that the method " "implementation uses the specific C type of the *self* object." msgstr "" @@ -395,21 +338,22 @@ msgstr "" "primer parámetro como :c:type:`PyObject*`, es común que la implementación " "del método utiliza el tipo específico C del objeto *self*." -#: ../Doc/c-api/structures.rst:272 +#: ../Doc/c-api/structures.rst:255 +#, fuzzy msgid "" -"The :attr:`ml_flags` field is a bitfield which can include the following " -"flags. The individual flags indicate either a calling convention or a " -"binding convention." +"The :c:member:`~PyMethodDef.ml_flags` field is a bitfield which can include " +"the following flags. The individual flags indicate either a calling " +"convention or a binding convention." msgstr "" "El campo :attr:`ml_flags` es un campo de bits que puede incluir las " "siguientes *flags*. Las *flags* individuales indican o bien una convención " "de llamada o una convención vinculante." -#: ../Doc/c-api/structures.rst:276 +#: ../Doc/c-api/structures.rst:260 msgid "There are these calling conventions:" msgstr "Existen estas convenciones de llamada:" -#: ../Doc/c-api/structures.rst:280 +#: ../Doc/c-api/structures.rst:264 #, fuzzy msgid "" "This is the typical calling convention, where the methods have the type :c:" @@ -427,7 +371,20 @@ msgstr "" "procesa típicamente usando :c:func:`PyArg_ParseTuple` o :c:func:" "`PyArg_UnpackTuple`." -#: ../Doc/c-api/structures.rst:290 +#: ../Doc/c-api/structures.rst:274 +msgid "" +"Can only be used in certain combinations with other flags: :ref:" +"`METH_VARARGS | METH_KEYWORDS `, :ref:" +"`METH_FASTCALL | METH_KEYWORDS ` and :ref:" +"`METH_METHOD | METH_FASTCALL | METH_KEYWORDS `." +msgstr "" + +#: ../Doc/c-api/structures.rst:288 +msgid ":c:expr:`METH_VARARGS | METH_KEYWORDS`" +msgstr "" + +#: ../Doc/c-api/structures.rst:283 msgid "" "Methods with these flags must be of type :c:type:`PyCFunctionWithKeywords`. " "The function expects three parameters: *self*, *args*, *kwargs* where " @@ -442,7 +399,7 @@ msgstr "" "clave. Los parámetros se procesan típicamente usando :c:func:" "`PyArg_ParseTupleAndKeywords`." -#: ../Doc/c-api/structures.rst:299 +#: ../Doc/c-api/structures.rst:292 #, fuzzy msgid "" "Fast calling convention supporting only positional arguments. The methods " @@ -457,21 +414,26 @@ msgstr "" "que indican los argumentos y el tercer parámetro es el número de argumentos " "(la longitud del arreglo)." -#: ../Doc/c-api/structures.rst:309 -msgid "``METH_FASTCALL`` is now part of the stable ABI." +#: ../Doc/c-api/structures.rst:302 +#, fuzzy +msgid "``METH_FASTCALL`` is now part of the :ref:`stable ABI `." msgstr "Ahora ``METH_FASTCALL`` es parte de la ABI estable." -#: ../Doc/c-api/structures.rst:314 +#: ../Doc/c-api/structures.rst:319 +msgid ":c:expr:`METH_FASTCALL | METH_KEYWORDS`" +msgstr "" + +#: ../Doc/c-api/structures.rst:308 #, fuzzy msgid "" -"Extension of :const:`METH_FASTCALL` supporting also keyword arguments, with " -"methods of type :c:type:`_PyCFunctionFastWithKeywords`. Keyword arguments " -"are passed the same way as in the :ref:`vectorcall protocol `: " -"there is an additional fourth :c:expr:`PyObject*` parameter which is a tuple " -"representing the names of the keyword arguments (which are guaranteed to be " -"strings) or possibly ``NULL`` if there are no keywords. The values of the " -"keyword arguments are stored in the *args* array, after the positional " -"arguments." +"Extension of :c:macro:`METH_FASTCALL` supporting also keyword arguments, " +"with methods of type :c:type:`_PyCFunctionFastWithKeywords`. Keyword " +"arguments are passed the same way as in the :ref:`vectorcall protocol " +"`: there is an additional fourth :c:expr:`PyObject*` parameter " +"which is a tuple representing the names of the keyword arguments (which are " +"guaranteed to be strings) or possibly ``NULL`` if there are no keywords. " +"The values of the keyword arguments are stored in the *args* array, after " +"the positional arguments." msgstr "" "Extensión de :const:`METH_FASTCALL` que admite también argumentos de palabra " "clave, con los métodos de tipo :c:type:`_PyCFunctionFastWithKeywords`. " @@ -482,17 +444,29 @@ msgstr "" "clave. Los valores de los argumentos de palabras clave se almacenan en el " "arreglo *args*, después de los argumentos posicionales." -#: ../Doc/c-api/structures.rst:329 +#: ../Doc/c-api/structures.rst:323 +msgid "" +"Can only be used in the combination with other flags: :ref:`METH_METHOD | " +"METH_FASTCALL | METH_KEYWORDS `." +msgstr "" + +#: ../Doc/c-api/structures.rst:340 +msgid ":c:expr:`METH_METHOD | METH_FASTCALL | METH_KEYWORDS`" +msgstr "" + +#: ../Doc/c-api/structures.rst:330 +#, fuzzy msgid "" -"Extension of :const:`METH_FASTCALL | METH_KEYWORDS` supporting the *defining " -"class*, that is, the class that contains the method in question. The " -"defining class might be a superclass of ``Py_TYPE(self)``." +"Extension of :ref:`METH_FASTCALL | METH_KEYWORDS ` supporting the *defining class*, that is, the class that " +"contains the method in question. The defining class might be a superclass of " +"``Py_TYPE(self)``." msgstr "" "Extensión de :const:`METH_FASTCALL | METH_KEYWORDS` que admite la *clase " "definitoria*, es decir, la clase que contiene el método en cuestión. La " "clase definitoria podría ser una superclase de ``Py_TYPE(self)``." -#: ../Doc/c-api/structures.rst:333 +#: ../Doc/c-api/structures.rst:335 msgid "" "The method needs to be of type :c:type:`PyCMethod`, the same as for " "``METH_FASTCALL | METH_KEYWORDS`` with ``defining_class`` argument added " @@ -502,10 +476,11 @@ msgstr "" "``METH_FASTCALL | METH_KEYWORDS`` con el argumento ``defining_clase`` " "añadido después de ``self``." -#: ../Doc/c-api/structures.rst:342 +#: ../Doc/c-api/structures.rst:344 +#, fuzzy msgid "" "Methods without parameters don't need to check whether arguments are given " -"if they are listed with the :const:`METH_NOARGS` flag. They need to be of " +"if they are listed with the :c:macro:`METH_NOARGS` flag. They need to be of " "type :c:type:`PyCFunction`. The first parameter is typically named *self* " "and will hold a reference to the module or object instance. In all cases " "the second parameter will be ``NULL``." @@ -516,7 +491,7 @@ msgstr "" "*self* y llevará a cabo una referencia a la instancia módulo u objeto. En " "todos los casos el segundo parámetro será ``NULL``." -#: ../Doc/c-api/structures.rst:348 +#: ../Doc/c-api/structures.rst:350 msgid "" "The function must have 2 parameters. Since the second parameter is unused, :" "c:macro:`Py_UNUSED` can be used to prevent a compiler warning." @@ -525,21 +500,21 @@ msgstr "" "usa, :c:macro:`Py_UNUSED` se puede usar para evitar una advertencia del " "compilador." -#: ../Doc/c-api/structures.rst:354 +#: ../Doc/c-api/structures.rst:356 #, fuzzy msgid "" -"Methods with a single object argument can be listed with the :const:`METH_O` " -"flag, instead of invoking :c:func:`PyArg_ParseTuple` with a ``\"O\"`` " -"argument. They have the type :c:type:`PyCFunction`, with the *self* " -"parameter, and a :c:expr:`PyObject*` parameter representing the single " -"argument." +"Methods with a single object argument can be listed with the :c:macro:" +"`METH_O` flag, instead of invoking :c:func:`PyArg_ParseTuple` with a " +"``\"O\"`` argument. They have the type :c:type:`PyCFunction`, with the " +"*self* parameter, and a :c:expr:`PyObject*` parameter representing the " +"single argument." msgstr "" "Los métodos con un solo argumento objeto pueden ser listados con el flag :" "const:`METH_O`, en lugar de invocar :c:func:`PyArg_ParseTuple` con un " "argumento ``\"O\"``. Tienen el tipo :c:type:`PyCFunction`, con el parámetro " "*self*, y un parámetro :c:type:`PyObject*` que representa el único argumento." -#: ../Doc/c-api/structures.rst:360 +#: ../Doc/c-api/structures.rst:362 msgid "" "These two constants are not used to indicate the calling convention but the " "binding when use with methods of classes. These may not be used for " @@ -551,7 +526,7 @@ msgstr "" "pueden usar para funciones definidas para módulos. A lo sumo uno de estos " "*flags* puede establecerse en un método dado." -#: ../Doc/c-api/structures.rst:370 +#: ../Doc/c-api/structures.rst:372 msgid "" "The method will be passed the type object as the first parameter rather than " "an instance of the type. This is used to create *class methods*, similar to " @@ -562,7 +537,7 @@ msgstr "" "methods*), similar a lo que se crea cuando se utiliza la función :func:" "`classmethod` incorporada." -#: ../Doc/c-api/structures.rst:380 +#: ../Doc/c-api/structures.rst:382 msgid "" "The method will be passed ``NULL`` as the first parameter rather than an " "instance of the type. This is used to create *static methods*, similar to " @@ -573,7 +548,7 @@ msgstr "" "similar a lo que se crea cuando se utiliza la función :func:`staticmethod` " "incorporada." -#: ../Doc/c-api/structures.rst:384 +#: ../Doc/c-api/structures.rst:386 msgid "" "One other constant controls whether a method is loaded in place of another " "definition with the same method name." @@ -581,17 +556,18 @@ msgstr "" "En otros controles constantes dependiendo si se carga un método en su lugar " "(*in place*) de otra definición con el mismo nombre del método." -#: ../Doc/c-api/structures.rst:390 +#: ../Doc/c-api/structures.rst:392 +#, fuzzy msgid "" "The method will be loaded in place of existing definitions. Without " "*METH_COEXIST*, the default is to skip repeated definitions. Since slot " "wrappers are loaded before the method table, the existence of a " "*sq_contains* slot, for example, would generate a wrapped method named :meth:" -"`__contains__` and preclude the loading of a corresponding PyCFunction with " -"the same name. With the flag defined, the PyCFunction will be loaded in " -"place of the wrapper object and will co-exist with the slot. This is " -"helpful because calls to PyCFunctions are optimized more than wrapper object " -"calls." +"`~object.__contains__` and preclude the loading of a corresponding " +"PyCFunction with the same name. With the flag defined, the PyCFunction will " +"be loaded in place of the wrapper object and will co-exist with the slot. " +"This is helpful because calls to PyCFunctions are optimized more than " +"wrapper object calls." msgstr "" "El método se cargará en lugar de las definiciones existentes. Sin " "*METH_COEXIST*, el comportamiento predeterminado es saltarse las " @@ -603,269 +579,373 @@ msgstr "" "coexistirá con la ranura. Esto es útil porque las llamadas a PyCFunctions se " "optimizan más que las llamadas a objetos envolvente." -#: ../Doc/c-api/structures.rst:402 +#: ../Doc/c-api/structures.rst:404 msgid "Accessing attributes of extension types" msgstr "Acceder a atributos de tipos de extensión" -#: ../Doc/c-api/structures.rst:406 +#: ../Doc/c-api/structures.rst:408 +#, fuzzy msgid "" "Structure which describes an attribute of a type which corresponds to a C " -"struct member. Its fields are:" +"struct member. Its fields are, in order:" msgstr "" "Estructura que describe un atributo de un tipo que corresponde a un miembro " "de la estructura de C. Sus campos son:" -#: ../Doc/c-api/structures.rst:412 -msgid ":attr:`name`" -msgstr ":attr:`name`" +#: ../Doc/c-api/structures.rst:413 +msgid "" +"Name of the member. A NULL value marks the end of a ``PyMemberDef[]`` array." +msgstr "" -#: ../Doc/c-api/structures.rst:412 -msgid "name of the member" -msgstr "nombre del miembro" +#: ../Doc/c-api/structures.rst:416 +msgid "The string should be static, no copy is made of it." +msgstr "" -#: ../Doc/c-api/structures.rst:414 -msgid ":attr:`!type`" -msgstr ":attr:`!type`" +#: ../Doc/c-api/structures.rst:420 +#, fuzzy +msgid "" +"The offset in bytes that the member is located on the type’s object struct." +msgstr "" +"el desplazamiento en bytes que el miembro se encuentra en la estructura de " +"objetos tipo" -#: ../Doc/c-api/structures.rst:414 -msgid "the type of the member in the C struct" -msgstr "el tipo de miembro en la estructura de C" +#: ../Doc/c-api/structures.rst:424 +msgid "" +"The type of the member in the C struct. See :ref:`PyMemberDef-types` for the " +"possible values." +msgstr "" -#: ../Doc/c-api/structures.rst:417 -msgid ":attr:`offset`" -msgstr ":attr:`offset`" +#: ../Doc/c-api/structures.rst:429 +msgid "" +"Zero or more of the :ref:`PyMemberDef-flags`, combined using bitwise OR." +msgstr "" -#: ../Doc/c-api/structures.rst:417 ../Doc/c-api/structures.rst:453 -msgid "Py_ssize_t" -msgstr "Py_ssize_t" +#: ../Doc/c-api/structures.rst:433 +msgid "" +"The docstring, or NULL. The string should be static, no copy is made of it. " +"Typically, it is defined using :c:macro:`PyDoc_STR`." +msgstr "" -#: ../Doc/c-api/structures.rst:417 +#: ../Doc/c-api/structures.rst:437 msgid "" -"the offset in bytes that the member is located on the type's object struct" +"By default (when :c:member:`~PyMemberDef.flags` is ``0``), members allow " +"both read and write access. Use the :c:macro:`Py_READONLY` flag for read-" +"only access. Certain types, like :c:macro:`Py_T_STRING`, imply :c:macro:" +"`Py_READONLY`. Only :c:macro:`Py_T_OBJECT_EX` (and legacy :c:macro:" +"`T_OBJECT`) members can be deleted." msgstr "" -"el desplazamiento en bytes que el miembro se encuentra en la estructura de " -"objetos tipo" -#: ../Doc/c-api/structures.rst:421 -msgid ":attr:`flags`" -msgstr ":attr:`flags`" +#: ../Doc/c-api/structures.rst:446 +#, fuzzy +msgid "" +"For heap-allocated types (created using :c:func:`PyType_FromSpec` or " +"similar), ``PyMemberDef`` may contain a definition for the special member " +"``\"__vectorcalloffset__\"``, corresponding to :c:member:`~PyTypeObject." +"tp_vectorcall_offset` in type objects. These must be defined with " +"``Py_T_PYSSIZET`` and ``Py_READONLY``, for example::" +msgstr "" +"Los tipos asignados al heap (creados usando :c:func:`PyType_FromSpec` o " +"similar), ``PyMemberDef`` pueden contener definiciones para los miembros " +"especiales ``__dictoffset__``, ``__weaklistoffset__`` y " +"``__vectorcalloffset__``, correspondientes a :c:member:`~PyTypeObject." +"tp_dictoffset`, :c:member:`~PyTypeObject.tp_weaklistoffset` y :c:member:" +"`~PyTypeObject.tp_vectorcall_offset` en objetos de tipo. Estos deben " +"definirse con ``T_PYSSIZET`` y ``READONLY``, por ejemplo::" -#: ../Doc/c-api/structures.rst:421 -msgid "flag bits indicating if the field should be read-only or writable" +#: ../Doc/c-api/structures.rst:458 +msgid "(You may need to ``#include `` for :c:func:`!offsetof`.)" msgstr "" -"*flags* bits que indican si el campo debe ser de sólo lectura o de escritura" -#: ../Doc/c-api/structures.rst:425 -msgid ":attr:`doc`" -msgstr ":attr:`doc`" +#: ../Doc/c-api/structures.rst:460 +msgid "" +"The legacy offsets :c:member:`~PyTypeObject.tp_dictoffset` and :c:member:" +"`~PyTypeObject.tp_weaklistoffset` can be defined similarly using " +"``\"__dictoffset__\"`` and ``\"__weaklistoffset__\"`` members, but " +"extensions are strongly encouraged to use :c:macro:`Py_TPFLAGS_MANAGED_DICT` " +"and :c:macro:`Py_TPFLAGS_MANAGED_WEAKREF` instead." +msgstr "" -#: ../Doc/c-api/structures.rst:429 +#: ../Doc/c-api/structures.rst:468 +msgid "" +"``PyMemberDef`` is always available. Previously, it required including " +"``\"structmember.h\"``." +msgstr "" + +#: ../Doc/c-api/structures.rst:473 +msgid "" +"Get an attribute belonging to the object at address *obj_addr*. The " +"attribute is described by ``PyMemberDef`` *m*. Returns ``NULL`` on error." +msgstr "" +"Obtiene un atributo que pertenece al objeto en la dirección *obj_addr*. El " +"atributo se describe por ``PyMemberDef`` *m*. Retorna ``NULL`` en caso de " +"error." + +#: ../Doc/c-api/structures.rst:479 +msgid "" +"``PyMember_GetOne`` is always available. Previously, it required including " +"``\"structmember.h\"``." +msgstr "" + +#: ../Doc/c-api/structures.rst:484 +msgid "" +"Set an attribute belonging to the object at address *obj_addr* to object " +"*o*. The attribute to set is described by ``PyMemberDef`` *m*. Returns " +"``0`` if successful and a negative value on failure." +msgstr "" +"Establece un atributo que pertenece al objeto en la dirección *obj_addr* al " +"objeto *o*. El atributo a establecer se describe por ``PyMemberDef`` *m*. " +"Retorna ``0`` si tiene éxito y un valor negativo si falla." + +#: ../Doc/c-api/structures.rst:490 +msgid "" +"``PyMember_SetOne`` is always available. Previously, it required including " +"``\"structmember.h\"``." +msgstr "" + +#: ../Doc/c-api/structures.rst:496 +msgid "Member flags" +msgstr "" + +#: ../Doc/c-api/structures.rst:498 +msgid "The following flags can be used with :c:member:`PyMemberDef.flags`:" +msgstr "" + +#: ../Doc/c-api/structures.rst:502 +msgid "Not writable." +msgstr "" + +#: ../Doc/c-api/structures.rst:506 +msgid "" +"Emit an ``object.__getattr__`` :ref:`audit event ` before " +"reading." +msgstr "" + +#: ../Doc/c-api/structures.rst:511 +msgid "" +"Indicates that the :c:member:`~PyMemberDef.offset` of this ``PyMemberDef`` " +"entry indicates an offset from the subclass-specific data, rather than from " +"``PyObject``." +msgstr "" + +#: ../Doc/c-api/structures.rst:515 +msgid "" +"Can only be used as part of :c:member:`Py_tp_members ` :c:type:`slot ` when creating a class using " +"negative :c:member:`~PyType_Spec.basicsize`. It is mandatory in that case." +msgstr "" + +#: ../Doc/c-api/structures.rst:520 +msgid "" +"This flag is only used in :c:type:`PyTypeSlot`. When setting :c:member:" +"`~PyTypeObject.tp_members` during class creation, Python clears it and sets :" +"c:member:`PyMemberDef.offset` to the offset from the ``PyObject`` struct." +msgstr "" + +#: ../Doc/c-api/structures.rst:532 msgid "" -":attr:`!type` can be one of many ``T_`` macros corresponding to various C " -"types. When the member is accessed in Python, it will be converted to the " -"equivalent Python type." +"The :c:macro:`!RESTRICTED`, :c:macro:`!READ_RESTRICTED` and :c:macro:`!" +"WRITE_RESTRICTED` macros available with ``#include \"structmember.h\"`` are " +"deprecated. :c:macro:`!READ_RESTRICTED` and :c:macro:`!RESTRICTED` are " +"equivalent to :c:macro:`Py_AUDIT_READ`; :c:macro:`!WRITE_RESTRICTED` does " +"nothing." msgstr "" -":attr:`!type` puede ser uno de muchos macros ``T_`` correspondientes a " -"diversos tipos C. Cuando se accede al miembro en Python, será convertida al " -"tipo Python equivalente." -#: ../Doc/c-api/structures.rst:434 +#: ../Doc/c-api/structures.rst:543 +msgid "" +"The :c:macro:`!READONLY` macro was renamed to :c:macro:`Py_READONLY`. The :c:" +"macro:`!PY_AUDIT_READ` macro was renamed with the ``Py_`` prefix. The new " +"names are now always available. Previously, these required ``#include " +"\"structmember.h\"``. The header is still available and it provides the old " +"names." +msgstr "" + +#: ../Doc/c-api/structures.rst:552 +msgid "Member types" +msgstr "" + +#: ../Doc/c-api/structures.rst:554 +msgid "" +":c:member:`PyMemberDef.type` can be one of the following macros " +"corresponding to various C types. When the member is accessed in Python, it " +"will be converted to the equivalent Python type. When it is set from Python, " +"it will be converted back to the C type. If that is not possible, an " +"exception such as :exc:`TypeError` or :exc:`ValueError` is raised." +msgstr "" + +#: ../Doc/c-api/structures.rst:562 +msgid "" +"Unless marked (D), attributes defined this way cannot be deleted using e.g. :" +"keyword:`del` or :py:func:`delattr`." +msgstr "" + +#: ../Doc/c-api/structures.rst:566 msgid "Macro name" msgstr "Nombre de la macro" -#: ../Doc/c-api/structures.rst:434 +#: ../Doc/c-api/structures.rst:566 msgid "C type" msgstr "Tipo C" -#: ../Doc/c-api/structures.rst:436 -msgid "T_SHORT" -msgstr "T_SHORT" - -#: ../Doc/c-api/structures.rst:436 -msgid "short" -msgstr "short" - -#: ../Doc/c-api/structures.rst:437 -msgid "T_INT" -msgstr "T_INT" +#: ../Doc/c-api/structures.rst:566 +msgid "Python type" +msgstr "" -#: ../Doc/c-api/structures.rst:438 -msgid "T_LONG" -msgstr "T_LONG" +#: ../Doc/c-api/structures.rst:568 +msgid ":c:expr:`char`" +msgstr "" -#: ../Doc/c-api/structures.rst:438 -msgid "long" -msgstr "long" +#: ../Doc/c-api/structures.rst:568 ../Doc/c-api/structures.rst:569 +#: ../Doc/c-api/structures.rst:570 ../Doc/c-api/structures.rst:571 +#: ../Doc/c-api/structures.rst:572 ../Doc/c-api/structures.rst:573 +#: ../Doc/c-api/structures.rst:574 ../Doc/c-api/structures.rst:575 +#: ../Doc/c-api/structures.rst:576 ../Doc/c-api/structures.rst:577 +#: ../Doc/c-api/structures.rst:578 +msgid ":py:class:`int`" +msgstr "" -#: ../Doc/c-api/structures.rst:439 -msgid "T_FLOAT" -msgstr "T_FLOAT" +#: ../Doc/c-api/structures.rst:569 +msgid ":c:expr:`short`" +msgstr "" -#: ../Doc/c-api/structures.rst:439 -msgid "float" -msgstr "float" +#: ../Doc/c-api/structures.rst:570 +msgid ":c:expr:`int`" +msgstr "" -#: ../Doc/c-api/structures.rst:440 -msgid "T_DOUBLE" -msgstr "T_DOUBLE" +#: ../Doc/c-api/structures.rst:571 +msgid ":c:expr:`long`" +msgstr "" -#: ../Doc/c-api/structures.rst:440 -msgid "double" -msgstr "double" +#: ../Doc/c-api/structures.rst:572 +#, fuzzy +msgid ":c:expr:`long long`" +msgstr "long long" -#: ../Doc/c-api/structures.rst:441 -msgid "T_STRING" -msgstr "T_STRING" +#: ../Doc/c-api/structures.rst:573 +#, fuzzy +msgid ":c:expr:`unsigned char`" +msgstr "unsigned char" -#: ../Doc/c-api/structures.rst:442 -msgid "T_OBJECT" -msgstr "T_OBJECT" +#: ../Doc/c-api/structures.rst:574 +#, fuzzy +msgid ":c:expr:`unsigned int`" +msgstr "unsigned int" -#: ../Doc/c-api/structures.rst:442 ../Doc/c-api/structures.rst:443 -msgid "PyObject \\*" -msgstr "PyObject \\*" +#: ../Doc/c-api/structures.rst:575 +#, fuzzy +msgid ":c:expr:`unsigned short`" +msgstr "unsigned short" -#: ../Doc/c-api/structures.rst:443 -msgid "T_OBJECT_EX" -msgstr "T_OBJECT_EX" +#: ../Doc/c-api/structures.rst:576 +#, fuzzy +msgid ":c:expr:`unsigned long`" +msgstr "unsigned long" -#: ../Doc/c-api/structures.rst:444 -msgid "T_CHAR" -msgstr "T_CHAR" +#: ../Doc/c-api/structures.rst:577 +#, fuzzy +msgid ":c:expr:`unsigned long long`" +msgstr "unsigned long long" -#: ../Doc/c-api/structures.rst:444 ../Doc/c-api/structures.rst:445 -#: ../Doc/c-api/structures.rst:450 -msgid "char" -msgstr "char" +#: ../Doc/c-api/structures.rst:578 +#, fuzzy +msgid ":c:expr:`Py_ssize_t`" +msgstr "Py_ssize_t" -#: ../Doc/c-api/structures.rst:445 -msgid "T_BYTE" -msgstr "T_BYTE" +#: ../Doc/c-api/structures.rst:579 +msgid ":c:expr:`float`" +msgstr "" -#: ../Doc/c-api/structures.rst:446 -msgid "T_UBYTE" -msgstr "T_UBYTE" +#: ../Doc/c-api/structures.rst:579 ../Doc/c-api/structures.rst:580 +msgid ":py:class:`float`" +msgstr "" -#: ../Doc/c-api/structures.rst:446 -msgid "unsigned char" -msgstr "unsigned char" +#: ../Doc/c-api/structures.rst:580 +msgid ":c:expr:`double`" +msgstr "" -#: ../Doc/c-api/structures.rst:447 -msgid "T_UINT" -msgstr "T_UINT" +#: ../Doc/c-api/structures.rst:581 +msgid ":c:expr:`char` (written as 0 or 1)" +msgstr "" -#: ../Doc/c-api/structures.rst:447 -msgid "unsigned int" -msgstr "unsigned int" +#: ../Doc/c-api/structures.rst:581 +msgid ":py:class:`bool`" +msgstr "" -#: ../Doc/c-api/structures.rst:448 -msgid "T_USHORT" -msgstr "T_USHORT" +#: ../Doc/c-api/structures.rst:583 +#, fuzzy +msgid ":c:expr:`const char *` (*)" +msgstr "const char \\*" -#: ../Doc/c-api/structures.rst:448 -msgid "unsigned short" -msgstr "unsigned short" +#: ../Doc/c-api/structures.rst:583 ../Doc/c-api/structures.rst:584 +msgid ":py:class:`str` (RO)" +msgstr "" -#: ../Doc/c-api/structures.rst:449 -msgid "T_ULONG" -msgstr "T_ULONG" +#: ../Doc/c-api/structures.rst:584 +#, fuzzy +msgid ":c:expr:`const char[]` (*)" +msgstr "const char \\*" -#: ../Doc/c-api/structures.rst:449 -msgid "unsigned long" -msgstr "unsigned long" +#: ../Doc/c-api/structures.rst:585 +msgid ":c:expr:`char` (0-127)" +msgstr "" -#: ../Doc/c-api/structures.rst:450 -msgid "T_BOOL" -msgstr "T_BOOL" +#: ../Doc/c-api/structures.rst:585 +msgid ":py:class:`str` (**)" +msgstr "" -#: ../Doc/c-api/structures.rst:451 -msgid "T_LONGLONG" -msgstr "T_LONGLONG" +#: ../Doc/c-api/structures.rst:586 +#, fuzzy +msgid ":c:expr:`PyObject *`" +msgstr "PyObject \\*" -#: ../Doc/c-api/structures.rst:451 -msgid "long long" -msgstr "long long" +#: ../Doc/c-api/structures.rst:586 +msgid ":py:class:`object` (D)" +msgstr "" -#: ../Doc/c-api/structures.rst:452 -msgid "T_ULONGLONG" -msgstr "T_ULONGLONG" +#: ../Doc/c-api/structures.rst:589 +msgid "" +"(*): Zero-terminated, UTF8-encoded C string. With :c:macro:`!Py_T_STRING` " +"the C representation is a pointer; with :c:macro:`!Py_T_STRING_INLINE` the " +"string is stored directly in the structure." +msgstr "" -#: ../Doc/c-api/structures.rst:452 -msgid "unsigned long long" -msgstr "unsigned long long" +#: ../Doc/c-api/structures.rst:594 +msgid "(**): String of length 1. Only ASCII is accepted." +msgstr "" -#: ../Doc/c-api/structures.rst:453 -msgid "T_PYSSIZET" -msgstr "T_PYSSIZET" +#: ../Doc/c-api/structures.rst:596 +msgid "(RO): Implies :c:macro:`Py_READONLY`." +msgstr "" -#: ../Doc/c-api/structures.rst:456 -msgid "" -":c:macro:`T_OBJECT` and :c:macro:`T_OBJECT_EX` differ in that :c:macro:" -"`T_OBJECT` returns ``None`` if the member is ``NULL`` and :c:macro:" -"`T_OBJECT_EX` raises an :exc:`AttributeError`. Try to use :c:macro:" -"`T_OBJECT_EX` over :c:macro:`T_OBJECT` because :c:macro:`T_OBJECT_EX` " -"handles use of the :keyword:`del` statement on that attribute more correctly " -"than :c:macro:`T_OBJECT`." -msgstr "" -":c:macro:`T_OBJECT` y :c:macro:`T_OBJECT_EX` se diferencian en que :c:macro:" -"`T_OBJECT` retorna ``None`` si el miembro es ``NULL`` y :c:macro:" -"`T_OBJECT_EX` lanza un :exc:`AttributeError`. Trate de usar :c:macro:" -"`T_OBJECT_EX` sobre :c:macro:`T_OBJECT` porque :c:macro:`T_OBJECT_EX` maneja " -"el uso de la declaración :keyword:`del` en ese atributo más correctamente " -"que :c:macro:`T_OBJECT`." - -#: ../Doc/c-api/structures.rst:463 -msgid "" -":attr:`flags` can be ``0`` for write and read access or :c:macro:`READONLY` " -"for read-only access. Using :c:macro:`T_STRING` for :attr:`type` implies :c:" -"macro:`READONLY`. :c:macro:`T_STRING` data is interpreted as UTF-8. Only :c:" -"macro:`T_OBJECT` and :c:macro:`T_OBJECT_EX` members can be deleted. (They " -"are set to ``NULL``)." -msgstr "" -":attr:`flags` puede ser ``0`` para el acceso de escritura y lectura o :c:" -"macro:`READONLY` para el acceso de sólo lectura. El uso de :c:macro:" -"`T_STRING` para :attr:`type` implica :c:macro:`READONLY`. Los datos :c:macro:" -"`T_STRING` se interpretan como UTF-8. Sólo se pueden eliminar :c:macro:" -"`T_OBJECT` y miembros :c:macro:`T_OBJECT_EX`. (Se establecen a ``NULL``)." - -#: ../Doc/c-api/structures.rst:471 -msgid "" -"Heap allocated types (created using :c:func:`PyType_FromSpec` or similar), " -"``PyMemberDef`` may contain definitions for the special members " -"``__dictoffset__``, ``__weaklistoffset__`` and ``__vectorcalloffset__``, " -"corresponding to :c:member:`~PyTypeObject.tp_dictoffset`, :c:member:" -"`~PyTypeObject.tp_weaklistoffset` and :c:member:`~PyTypeObject." -"tp_vectorcall_offset` in type objects. These must be defined with " -"``T_PYSSIZET`` and ``READONLY``, for example::" +#: ../Doc/c-api/structures.rst:598 +msgid "" +"(D): Can be deleted, in which case the pointer is set to ``NULL``. Reading a " +"``NULL`` pointer raises :py:exc:`AttributeError`." msgstr "" -"Los tipos asignados al heap (creados usando :c:func:`PyType_FromSpec` o " -"similar), ``PyMemberDef`` pueden contener definiciones para los miembros " -"especiales ``__dictoffset__``, ``__weaklistoffset__`` y " -"``__vectorcalloffset__``, correspondientes a :c:member:`~PyTypeObject." -"tp_dictoffset`, :c:member:`~PyTypeObject.tp_weaklistoffset` y :c:member:" -"`~PyTypeObject.tp_vectorcall_offset` en objetos de tipo. Estos deben " -"definirse con ``T_PYSSIZET`` y ``READONLY``, por ejemplo::" -#: ../Doc/c-api/structures.rst:488 +#: ../Doc/c-api/structures.rst:624 msgid "" -"Get an attribute belonging to the object at address *obj_addr*. The " -"attribute is described by ``PyMemberDef`` *m*. Returns ``NULL`` on error." +"In previous versions, the macros were only available with ``#include " +"\"structmember.h\"`` and were named without the ``Py_`` prefix (e.g. as " +"``T_INT``). The header is still available and contains the old names, along " +"with the following deprecated types:" msgstr "" -"Obtiene un atributo que pertenece al objeto en la dirección *obj_addr*. El " -"atributo se describe por ``PyMemberDef`` *m*. Retorna ``NULL`` en caso de " -"error." -#: ../Doc/c-api/structures.rst:495 +#: ../Doc/c-api/structures.rst:632 msgid "" -"Set an attribute belonging to the object at address *obj_addr* to object " -"*o*. The attribute to set is described by ``PyMemberDef`` *m*. Returns " -"``0`` if successful and a negative value on failure." +"Like ``Py_T_OBJECT_EX``, but ``NULL`` is converted to ``None``. This results " +"in surprising behavior in Python: deleting the attribute effectively sets it " +"to ``None``." msgstr "" -"Establece un atributo que pertenece al objeto en la dirección *obj_addr* al " -"objeto *o*. El atributo a establecer se describe por ``PyMemberDef`` *m*. " -"Retorna ``0`` si tiene éxito y un valor negativo si falla." -#: ../Doc/c-api/structures.rst:502 +#: ../Doc/c-api/structures.rst:638 +msgid "Always ``None``. Must be used with :c:macro:`Py_READONLY`." +msgstr "" + +#: ../Doc/c-api/structures.rst:641 +msgid "Defining Getters and Setters" +msgstr "" + +#: ../Doc/c-api/structures.rst:645 msgid "" "Structure to define property-like access for a type. See also description of " "the :c:member:`PyTypeObject.tp_getset` slot." @@ -873,67 +953,37 @@ msgstr "" "Estructura para definir el acceso para un tipo como el de una propiedad. " "Véase también la descripción de la ranura :c:member:`PyTypeObject.tp_getset`." -#: ../Doc/c-api/structures.rst:508 -msgid "name" -msgstr "nombre" - -#: ../Doc/c-api/structures.rst:508 +#: ../Doc/c-api/structures.rst:650 msgid "attribute name" msgstr "nombre del atributo" -#: ../Doc/c-api/structures.rst:510 -msgid "get" -msgstr "get" - -#: ../Doc/c-api/structures.rst:510 -msgid "getter" -msgstr "getter" - -#: ../Doc/c-api/structures.rst:510 +#: ../Doc/c-api/structures.rst:654 #, fuzzy -msgid "C function to get the attribute" +msgid "C function to get the attribute." msgstr "Función C para obtener el atributo" -#: ../Doc/c-api/structures.rst:512 -msgid "set" -msgstr "set" - -#: ../Doc/c-api/structures.rst:512 -msgid "setter" -msgstr "setter" - -#: ../Doc/c-api/structures.rst:512 +#: ../Doc/c-api/structures.rst:658 +#, fuzzy msgid "" -"optional C function to set or delete the attribute, if omitted the attribute " -"is readonly" +"Optional C function to set or delete the attribute, if omitted the attribute " +"is readonly." msgstr "" "función opcional C para establecer o eliminar el atributo, si se omite el " "atributo es de sólo lectura" -#: ../Doc/c-api/structures.rst:516 -msgid "doc" -msgstr "doc" - -#: ../Doc/c-api/structures.rst:516 +#: ../Doc/c-api/structures.rst:662 msgid "optional docstring" msgstr "docstring opcional" -#: ../Doc/c-api/structures.rst:518 -msgid "closure" -msgstr "clausura (*closure*)" - -#: ../Doc/c-api/structures.rst:518 -msgid "void \\*" -msgstr "void \\*" - -#: ../Doc/c-api/structures.rst:518 +#: ../Doc/c-api/structures.rst:666 +#, fuzzy msgid "" -"optional function pointer, providing additional data for getter and setter" +"Optional function pointer, providing additional data for getter and setter." msgstr "" "puntero de función opcional, proporcionar datos adicionales para *getter* y " "*setter*" -#: ../Doc/c-api/structures.rst:523 +#: ../Doc/c-api/structures.rst:668 #, fuzzy msgid "" "The ``get`` function takes one :c:expr:`PyObject*` parameter (the instance) " @@ -942,7 +992,7 @@ msgstr "" "La función ``get`` toma un parámetro :c:type:`PyObject*` (la instancia) y un " "puntero de función (el ``closure`` asociado)::" -#: ../Doc/c-api/structures.rst:528 +#: ../Doc/c-api/structures.rst:673 msgid "" "It should return a new reference on success or ``NULL`` with a set exception " "on failure." @@ -950,7 +1000,7 @@ msgstr "" "Debe retornar una nueva referencia en caso de éxito o ``NULL`` con una " "excepción establecida en caso de error." -#: ../Doc/c-api/structures.rst:531 +#: ../Doc/c-api/structures.rst:676 #, fuzzy msgid "" "``set`` functions take two :c:expr:`PyObject*` parameters (the instance and " @@ -960,7 +1010,7 @@ msgstr "" "y el valor a ser establecido) y un puntero de función (el ``closure`` " "asociado)::" -#: ../Doc/c-api/structures.rst:536 +#: ../Doc/c-api/structures.rst:681 msgid "" "In case the attribute should be deleted the second parameter is ``NULL``. " "Should return ``0`` on success or ``-1`` with a set exception on failure." @@ -968,3 +1018,261 @@ msgstr "" "En caso de que el atributo deba suprimirse el segundo parámetro es ``NULL``. " "Debe retornar ``0`` en caso de éxito o ``-1`` con una excepción explícita en " "caso de fallo." + +#: ../Doc/c-api/structures.rst:370 ../Doc/c-api/structures.rst:380 +msgid "built-in function" +msgstr "" + +#: ../Doc/c-api/structures.rst:370 +msgid "classmethod" +msgstr "" + +#: ../Doc/c-api/structures.rst:380 +msgid "staticmethod" +msgstr "" + +#: ../Doc/c-api/structures.rst:525 +msgid "READ_RESTRICTED" +msgstr "" + +#: ../Doc/c-api/structures.rst:525 +msgid "WRITE_RESTRICTED" +msgstr "" + +#: ../Doc/c-api/structures.rst:525 +msgid "RESTRICTED" +msgstr "" + +#: ../Doc/c-api/structures.rst:538 +msgid "READONLY" +msgstr "" + +#: ../Doc/c-api/structures.rst:601 +msgid "T_BYTE" +msgstr "T_BYTE" + +#: ../Doc/c-api/structures.rst:601 +msgid "T_SHORT" +msgstr "T_SHORT" + +#: ../Doc/c-api/structures.rst:601 +msgid "T_INT" +msgstr "T_INT" + +#: ../Doc/c-api/structures.rst:601 +msgid "T_LONG" +msgstr "T_LONG" + +#: ../Doc/c-api/structures.rst:601 +msgid "T_LONGLONG" +msgstr "T_LONGLONG" + +#: ../Doc/c-api/structures.rst:601 +msgid "T_UBYTE" +msgstr "T_UBYTE" + +#: ../Doc/c-api/structures.rst:601 +msgid "T_USHORT" +msgstr "T_USHORT" + +#: ../Doc/c-api/structures.rst:601 +msgid "T_UINT" +msgstr "T_UINT" + +#: ../Doc/c-api/structures.rst:601 +msgid "T_ULONG" +msgstr "T_ULONG" + +#: ../Doc/c-api/structures.rst:601 +#, fuzzy +msgid "T_ULONGULONG" +msgstr "T_ULONGLONG" + +#: ../Doc/c-api/structures.rst:601 +msgid "T_PYSSIZET" +msgstr "T_PYSSIZET" + +#: ../Doc/c-api/structures.rst:601 +msgid "T_FLOAT" +msgstr "T_FLOAT" + +#: ../Doc/c-api/structures.rst:601 +msgid "T_DOUBLE" +msgstr "T_DOUBLE" + +#: ../Doc/c-api/structures.rst:601 +msgid "T_BOOL" +msgstr "T_BOOL" + +#: ../Doc/c-api/structures.rst:601 +msgid "T_CHAR" +msgstr "T_CHAR" + +#: ../Doc/c-api/structures.rst:601 +msgid "T_STRING" +msgstr "T_STRING" + +#: ../Doc/c-api/structures.rst:601 +#, fuzzy +msgid "T_STRING_INPLACE" +msgstr "T_STRING" + +#: ../Doc/c-api/structures.rst:601 +msgid "T_OBJECT_EX" +msgstr "T_OBJECT_EX" + +#: ../Doc/c-api/structures.rst:601 +msgid "structmember.h" +msgstr "" + +#~ msgid "Get the reference count of the Python object *o*." +#~ msgstr "Obtiene la cuenta de referencias del objeto Python *o*." + +#~ msgid "" +#~ "Use the :c:func:`Py_SET_REFCNT()` function to set an object reference " +#~ "count." +#~ msgstr "" +#~ "Debe utilizarse la función :c:func:`Py_SET_TYPE` para establecer un tipo " +#~ "de objeto." + +#~ msgid "The parameter type is no longer :c:expr:`const PyObject*`." +#~ msgstr "El tipo de parámetro ya no es :c:expr:`const PyObject*`." + +#~ msgid ":c:func:`Py_REFCNT()` is changed to the inline static function." +#~ msgstr ":c:func:`Py_REFCNT()` se cambia a la función estática inline." + +#~ msgid "Set the object *o* reference counter to *refcnt*." +#~ msgstr "Establece el conteo de referencia del objeto *o* a *refcnt*." + +#~ msgid "Field" +#~ msgstr "Campo" + +#~ msgid "C Type" +#~ msgstr "Tipo C" + +#~ msgid "Meaning" +#~ msgstr "Significado" + +#~ msgid ":attr:`ml_name`" +#~ msgstr ":attr:`ml_name`" + +#~ msgid ":attr:`ml_meth`" +#~ msgstr ":attr:`ml_meth`" + +#~ msgid "PyCFunction" +#~ msgstr "PyCFunction" + +#~ msgid ":attr:`ml_flags`" +#~ msgstr ":attr:`ml_flags`" + +#~ msgid "int" +#~ msgstr "int" + +#~ msgid ":attr:`ml_doc`" +#~ msgstr ":attr:`ml_doc`" + +#~ msgid ":attr:`name`" +#~ msgstr ":attr:`name`" + +#~ msgid "name of the member" +#~ msgstr "nombre del miembro" + +#~ msgid ":attr:`!type`" +#~ msgstr ":attr:`!type`" + +#~ msgid "the type of the member in the C struct" +#~ msgstr "el tipo de miembro en la estructura de C" + +#~ msgid ":attr:`offset`" +#~ msgstr ":attr:`offset`" + +#~ msgid ":attr:`flags`" +#~ msgstr ":attr:`flags`" + +#~ msgid "flag bits indicating if the field should be read-only or writable" +#~ msgstr "" +#~ "*flags* bits que indican si el campo debe ser de sólo lectura o de " +#~ "escritura" + +#~ msgid ":attr:`doc`" +#~ msgstr ":attr:`doc`" + +#~ msgid "" +#~ ":attr:`!type` can be one of many ``T_`` macros corresponding to various C " +#~ "types. When the member is accessed in Python, it will be converted to " +#~ "the equivalent Python type." +#~ msgstr "" +#~ ":attr:`!type` puede ser uno de muchos macros ``T_`` correspondientes a " +#~ "diversos tipos C. Cuando se accede al miembro en Python, será convertida " +#~ "al tipo Python equivalente." + +#~ msgid "short" +#~ msgstr "short" + +#~ msgid "long" +#~ msgstr "long" + +#~ msgid "float" +#~ msgstr "float" + +#~ msgid "double" +#~ msgstr "double" + +#~ msgid "T_OBJECT" +#~ msgstr "T_OBJECT" + +#~ msgid "char" +#~ msgstr "char" + +#~ msgid "" +#~ ":c:macro:`T_OBJECT` and :c:macro:`T_OBJECT_EX` differ in that :c:macro:" +#~ "`T_OBJECT` returns ``None`` if the member is ``NULL`` and :c:macro:" +#~ "`T_OBJECT_EX` raises an :exc:`AttributeError`. Try to use :c:macro:" +#~ "`T_OBJECT_EX` over :c:macro:`T_OBJECT` because :c:macro:`T_OBJECT_EX` " +#~ "handles use of the :keyword:`del` statement on that attribute more " +#~ "correctly than :c:macro:`T_OBJECT`." +#~ msgstr "" +#~ ":c:macro:`T_OBJECT` y :c:macro:`T_OBJECT_EX` se diferencian en que :c:" +#~ "macro:`T_OBJECT` retorna ``None`` si el miembro es ``NULL`` y :c:macro:" +#~ "`T_OBJECT_EX` lanza un :exc:`AttributeError`. Trate de usar :c:macro:" +#~ "`T_OBJECT_EX` sobre :c:macro:`T_OBJECT` porque :c:macro:`T_OBJECT_EX` " +#~ "maneja el uso de la declaración :keyword:`del` en ese atributo más " +#~ "correctamente que :c:macro:`T_OBJECT`." + +#~ msgid "" +#~ ":attr:`flags` can be ``0`` for write and read access or :c:macro:" +#~ "`READONLY` for read-only access. Using :c:macro:`T_STRING` for :attr:" +#~ "`type` implies :c:macro:`READONLY`. :c:macro:`T_STRING` data is " +#~ "interpreted as UTF-8. Only :c:macro:`T_OBJECT` and :c:macro:`T_OBJECT_EX` " +#~ "members can be deleted. (They are set to ``NULL``)." +#~ msgstr "" +#~ ":attr:`flags` puede ser ``0`` para el acceso de escritura y lectura o :c:" +#~ "macro:`READONLY` para el acceso de sólo lectura. El uso de :c:macro:" +#~ "`T_STRING` para :attr:`type` implica :c:macro:`READONLY`. Los datos :c:" +#~ "macro:`T_STRING` se interpretan como UTF-8. Sólo se pueden eliminar :c:" +#~ "macro:`T_OBJECT` y miembros :c:macro:`T_OBJECT_EX`. (Se establecen a " +#~ "``NULL``)." + +#~ msgid "name" +#~ msgstr "nombre" + +#~ msgid "get" +#~ msgstr "get" + +#~ msgid "getter" +#~ msgstr "getter" + +#~ msgid "set" +#~ msgstr "set" + +#~ msgid "setter" +#~ msgstr "setter" + +#~ msgid "doc" +#~ msgstr "doc" + +#~ msgid "closure" +#~ msgstr "clausura (*closure*)" + +#~ msgid "void \\*" +#~ msgstr "void \\*" diff --git a/c-api/sys.po b/c-api/sys.po index a69be08c01..20cd75aedb 100644 --- a/c-api/sys.po +++ b/c-api/sys.po @@ -10,30 +10,30 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-29 13:18-0500\n" "Last-Translator: Rodrigo Tobar \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/sys.rst:6 msgid "Operating System Utilities" msgstr "Utilidades del sistema operativo" #: ../Doc/c-api/sys.rst:10 +#, fuzzy msgid "" "Return the file system representation for *path*. If the object is a :class:" -"`str` or :class:`bytes` object, then its reference count is incremented. If " -"the object implements the :class:`os.PathLike` interface, then :meth:`~os." -"PathLike.__fspath__` is returned as long as it is a :class:`str` or :class:" -"`bytes` object. Otherwise :exc:`TypeError` is raised and ``NULL`` is " -"returned." +"`str` or :class:`bytes` object, then a new :term:`strong reference` is " +"returned. If the object implements the :class:`os.PathLike` interface, then :" +"meth:`~os.PathLike.__fspath__` is returned as long as it is a :class:`str` " +"or :class:`bytes` object. Otherwise :exc:`TypeError` is raised and ``NULL`` " +"is returned." msgstr "" "Retorna la representación del sistema de archivos para *path*. Si el objeto " "es :class:`str` o :class:`bytes`, entonces su conteo de referencias se " @@ -42,14 +42,15 @@ msgstr "" "objeto :class:`str` o :class:`bytes`. De lo contrario :exc:`TypeError` se " "lanza y se retorna ``NULL``." -#: ../Doc/c-api/sys.rst:22 +#: ../Doc/c-api/sys.rst:23 +#, fuzzy msgid "" "Return true (nonzero) if the standard I/O file *fp* with name *filename* is " "deemed interactive. This is the case for files for which " -"``isatty(fileno(fp))`` is true. If the global flag :c:data:" -"`Py_InteractiveFlag` is true, this function also returns true if the " -"*filename* pointer is ``NULL`` or if the name is equal to one of the strings " -"``''`` or ``'???'``." +"``isatty(fileno(fp))`` is true. If the :c:member:`PyConfig.interactive` is " +"non-zero, this function also returns true if the *filename* pointer is " +"``NULL`` or if the name is equal to one of the strings ``''`` or " +"``'???'``." msgstr "" "Retorna verdadero (distinto de cero) si el archivo de E/S (*I/O*) estándar " "*fp* con nombre *filename* se considera interactivo. Este es el caso de los " @@ -58,7 +59,11 @@ msgstr "" "retorna verdadero si el puntero *filename* es ``NULL`` o si el nombre es " "igual a una de las cadenas de caracteres ``''`` o ``'???'``." -#: ../Doc/c-api/sys.rst:31 +#: ../Doc/c-api/sys.rst:29 +msgid "This function must not be called before Python is initialized." +msgstr "" + +#: ../Doc/c-api/sys.rst:34 msgid "" "Function to prepare some internal state before a process fork. This should " "be called before calling :c:func:`fork` or any similar function that clones " @@ -70,7 +75,7 @@ msgstr "" "`fork` o cualquier función similar que clone el proceso actual. Solo " "disponible en sistemas donde :c:func:`fork` está definido." -#: ../Doc/c-api/sys.rst:37 +#: ../Doc/c-api/sys.rst:40 msgid "" "The C :c:func:`fork` call should only be made from the :ref:`\"main\" thread " "` (of the :ref:`\"main\" interpreter ` (del intérprete :ref:`\"principal\" `). Lo mismo es cierto para ``PyOS_BeforeFork()``." -#: ../Doc/c-api/sys.rst:47 +#: ../Doc/c-api/sys.rst:50 msgid "" "Function to update some internal state after a process fork. This should be " "called from the parent process after calling :c:func:`fork` or any similar " @@ -94,7 +99,7 @@ msgstr "" "independientemente de si la clonación del proceso fue exitosa. Solo " "disponible en sistemas donde :c:func:`fork` está definido." -#: ../Doc/c-api/sys.rst:54 +#: ../Doc/c-api/sys.rst:57 msgid "" "The C :c:func:`fork` call should only be made from the :ref:`\"main\" thread " "` (of the :ref:`\"main\" interpreter ` (del intérprete :ref:`\"principal\" `). Lo mismo es cierto para ``PyOS_AfterFork_Parent()``." -#: ../Doc/c-api/sys.rst:64 +#: ../Doc/c-api/sys.rst:67 msgid "" "Function to update internal interpreter state after a process fork. This " "must be called from the child process after calling :c:func:`fork`, or any " @@ -119,7 +124,7 @@ msgstr "" "vuelva a llamar al intérprete de Python. Solo disponible en sistemas donde :" "c:func:`fork` está definido." -#: ../Doc/c-api/sys.rst:71 +#: ../Doc/c-api/sys.rst:74 msgid "" "The C :c:func:`fork` call should only be made from the :ref:`\"main\" thread " "` (of the :ref:`\"main\" interpreter ` (del intérprete :ref:`\"principal\" `). Lo mismo es cierto para ``PyOS_AfterFork_Child()``." -#: ../Doc/c-api/sys.rst:79 +#: ../Doc/c-api/sys.rst:82 msgid "" ":func:`os.register_at_fork` allows registering custom Python functions to be " "called by :c:func:`PyOS_BeforeFork()`, :c:func:`PyOS_AfterFork_Parent` and :" @@ -139,7 +144,7 @@ msgstr "" "Python a las que puede llamar :c:func:`PyOS_BeforeFork()`, :c:func:" "`PyOS_AfterFork_Parent` y :c:func:`PyOS_AfterFork_Child`." -#: ../Doc/c-api/sys.rst:86 +#: ../Doc/c-api/sys.rst:89 msgid "" "Function to update some internal state after a process fork; this should be " "called in the new process if the Python interpreter will continue to be " @@ -151,16 +156,17 @@ msgstr "" "intérprete de Python continuará siendo utilizado. Si se carga un nuevo " "ejecutable en el nuevo proceso, no es necesario llamar a esta función." -#: ../Doc/c-api/sys.rst:91 +#: ../Doc/c-api/sys.rst:94 msgid "This function is superseded by :c:func:`PyOS_AfterFork_Child()`." msgstr "Esta función es reemplazada por :c:func:`PyOS_AfterFork_Child()`." -#: ../Doc/c-api/sys.rst:97 +#: ../Doc/c-api/sys.rst:100 +#, fuzzy msgid "" "Return true when the interpreter runs out of stack space. This is a " -"reliable check, but is only available when :const:`USE_STACKCHECK` is " +"reliable check, but is only available when :c:macro:`USE_STACKCHECK` is " "defined (currently on certain versions of Windows using the Microsoft Visual " -"C++ compiler). :const:`USE_STACKCHECK` will be defined automatically; you " +"C++ compiler). :c:macro:`USE_STACKCHECK` will be defined automatically; you " "should never change the definition in your own code." msgstr "" "Retorna verdadero cuando el intérprete se queda sin espacio de pila (*stack " @@ -170,10 +176,11 @@ msgstr "" "`USE_STACKCHECK` se definirá automáticamente; nunca debe cambiar la " "definición en su propio código." -#: ../Doc/c-api/sys.rst:106 +#: ../Doc/c-api/sys.rst:109 +#, fuzzy msgid "" "Return the current signal handler for signal *i*. This is a thin wrapper " -"around either :c:func:`sigaction` or :c:func:`signal`. Do not call those " +"around either :c:func:`!sigaction` or :c:func:`!signal`. Do not call those " "functions directly! :c:type:`PyOS_sighandler_t` is a typedef alias for :c:" "expr:`void (\\*)(int)`." msgstr "" @@ -182,11 +189,12 @@ msgstr "" "llame a esas funciones directamente! :c:type:`PyOS_sighandler_t` es un alias " "*typedef* para :c:expr:`void (\\*)(int)`." -#: ../Doc/c-api/sys.rst:114 +#: ../Doc/c-api/sys.rst:117 +#, fuzzy msgid "" "Set the signal handler for signal *i* to be *h*; return the old signal " -"handler. This is a thin wrapper around either :c:func:`sigaction` or :c:func:" -"`signal`. Do not call those functions directly! :c:type:" +"handler. This is a thin wrapper around either :c:func:`!sigaction` or :c:" +"func:`!signal`. Do not call those functions directly! :c:type:" "`PyOS_sighandler_t` is a typedef alias for :c:expr:`void (\\*)(int)`." msgstr "" "Configura el controlador de señal para la señal *i* como *h*; retorna el " @@ -195,7 +203,7 @@ msgstr "" "directamente! :c:type:`PyOS_sighandler_t` es un alias *typedef* para :c:expr:" "`void (\\*)(int)`." -#: ../Doc/c-api/sys.rst:122 +#: ../Doc/c-api/sys.rst:125 msgid "" "This function should not be called directly: use the :c:type:`PyConfig` API " "with the :c:func:`PyConfig_SetBytesString` function which ensures that :ref:" @@ -205,7 +213,7 @@ msgstr "" "`PyConfig` con la función :c:func:`PyConfig_SetBytesString` que asegura que :" "ref:`Python está preinicializado `." -#: ../Doc/c-api/sys.rst:126 ../Doc/c-api/sys.rst:193 +#: ../Doc/c-api/sys.rst:129 ../Doc/c-api/sys.rst:196 msgid "" "This function must not be called before :ref:`Python is preinitialized ` and so that the LC_CTYPE locale is properly configured: see the :c:" @@ -215,7 +223,7 @@ msgstr "" "` y para que la configuración local LC_CTYPE esté correctamente " "configurada: véase la función :c:func:`Py_PreInitialize`." -#: ../Doc/c-api/sys.rst:130 +#: ../Doc/c-api/sys.rst:133 msgid "" "Decode a byte string from the :term:`filesystem encoding and error handler`. " "If the error handler is :ref:`surrogateescape error handler " @@ -232,7 +240,7 @@ msgstr "" "como un carácter sustituto, escape los bytes usando el controlador de error " "surrogateescape en lugar de decodificarlos." -#: ../Doc/c-api/sys.rst:137 +#: ../Doc/c-api/sys.rst:140 msgid "" "Return a pointer to a newly allocated wide character string, use :c:func:" "`PyMem_RawFree` to free the memory. If size is not ``NULL``, write the " @@ -243,7 +251,7 @@ msgstr "" "``NULL``, escribe el número de caracteres anchos excluyendo el carácter nulo " "en ``*size``" -#: ../Doc/c-api/sys.rst:141 +#: ../Doc/c-api/sys.rst:144 msgid "" "Return ``NULL`` on decoding error or memory allocation error. If *size* is " "not ``NULL``, ``*size`` is set to ``(size_t)-1`` on memory error or set to " @@ -254,7 +262,7 @@ msgstr "" "en caso de error de memoria o en ``(size_t) -2`` en caso de error de " "decodificación." -#: ../Doc/c-api/sys.rst:145 ../Doc/c-api/sys.rst:185 +#: ../Doc/c-api/sys.rst:148 ../Doc/c-api/sys.rst:188 msgid "" "The :term:`filesystem encoding and error handler` are selected by :c:func:" "`PyConfig_Read`: see :c:member:`~PyConfig.filesystem_encoding` and :c:member:" @@ -264,14 +272,14 @@ msgstr "" "func:`PyConfig_Read`: ver :c:member:`~PyConfig.filesystem_encoding` y :c:" "member:`~PyConfig.filesystem_errors` que pertenecen a :c:type:`PyConfig`." -#: ../Doc/c-api/sys.rst:149 +#: ../Doc/c-api/sys.rst:152 msgid "" "Decoding errors should never happen, unless there is a bug in the C library." msgstr "" "Los errores de decodificación nunca deberían ocurrir, a menos que haya un " "error en la biblioteca C." -#: ../Doc/c-api/sys.rst:152 +#: ../Doc/c-api/sys.rst:155 msgid "" "Use the :c:func:`Py_EncodeLocale` function to encode the character string " "back to a byte string." @@ -279,7 +287,7 @@ msgstr "" "Utilice la función :c:func:`Py_EncodeLocale` para codificar la cadena de " "caracteres en una cadena de bytes." -#: ../Doc/c-api/sys.rst:157 +#: ../Doc/c-api/sys.rst:160 msgid "" "The :c:func:`PyUnicode_DecodeFSDefaultAndSize` and :c:func:" "`PyUnicode_DecodeLocaleAndSize` functions." @@ -287,7 +295,7 @@ msgstr "" "Las funciones :c:func:`PyUnicode_DecodeFSDefaultAndSize` y :c:func:" "`PyUnicode_DecodeLocaleAndSize`." -#: ../Doc/c-api/sys.rst:162 ../Doc/c-api/sys.rst:204 +#: ../Doc/c-api/sys.rst:165 ../Doc/c-api/sys.rst:207 msgid "" "The function now uses the UTF-8 encoding in the :ref:`Python UTF-8 Mode " "`." @@ -295,15 +303,16 @@ msgstr "" "La función ahora utiliza la codificación UTF-8 en el :ref:`Modo Python UTF-8 " "`." -#: ../Doc/c-api/sys.rst:166 +#: ../Doc/c-api/sys.rst:169 +#, fuzzy msgid "" -"The function now uses the UTF-8 encoding on Windows if :c:data:" -"`Py_LegacyWindowsFSEncodingFlag` is zero;" +"The function now uses the UTF-8 encoding on Windows if :c:member:" +"`PyPreConfig.legacy_windows_fs_encoding` is zero;" msgstr "" "La función ahora usa la codificación UTF-8 en Windows si :c:data:" "`Py_LegacyWindowsFSEncodingFlag` es cero;" -#: ../Doc/c-api/sys.rst:173 +#: ../Doc/c-api/sys.rst:176 msgid "" "Encode a wide character string to the :term:`filesystem encoding and error " "handler`. If the error handler is :ref:`surrogateescape error handler " @@ -315,7 +324,7 @@ msgstr "" "`surrogateescape error handler `, los caracteres " "sustituidos en el rango U+DC80..U+DCFF se convierten en bytes 0x80..0xFF." -#: ../Doc/c-api/sys.rst:178 +#: ../Doc/c-api/sys.rst:181 msgid "" "Return a pointer to a newly allocated byte string, use :c:func:`PyMem_Free` " "to free the memory. Return ``NULL`` on encoding error or memory allocation " @@ -325,7 +334,7 @@ msgstr "" "`PyMem_Free` para liberar la memoria. Retorna ``NULL`` si se genera un error " "de codificación o error de asignación de memoria." -#: ../Doc/c-api/sys.rst:182 +#: ../Doc/c-api/sys.rst:185 msgid "" "If error_pos is not ``NULL``, ``*error_pos`` is set to ``(size_t)-1`` on " "success, or set to the index of the invalid character on encoding error." @@ -334,7 +343,7 @@ msgstr "" "en caso de éxito, o se establece en el índice del carácter no válido en el " "error de codificación." -#: ../Doc/c-api/sys.rst:189 +#: ../Doc/c-api/sys.rst:192 msgid "" "Use the :c:func:`Py_DecodeLocale` function to decode the bytes string back " "to a wide character string." @@ -342,7 +351,7 @@ msgstr "" "Use la función :c:func:`Py_DecodeLocale` para decodificar la cadena de bytes " "en una cadena de caracteres anchos." -#: ../Doc/c-api/sys.rst:199 +#: ../Doc/c-api/sys.rst:202 msgid "" "The :c:func:`PyUnicode_EncodeFSDefault` and :c:func:`PyUnicode_EncodeLocale` " "functions." @@ -350,19 +359,20 @@ msgstr "" "Las funciones :c:func:`PyUnicode_EncodeFSDefault` y :c:func:" "`PyUnicode_EncodeLocale`." -#: ../Doc/c-api/sys.rst:208 +#: ../Doc/c-api/sys.rst:211 +#, fuzzy msgid "" -"The function now uses the UTF-8 encoding on Windows if :c:data:" -"`Py_LegacyWindowsFSEncodingFlag` is zero." +"The function now uses the UTF-8 encoding on Windows if :c:member:" +"`PyPreConfig.legacy_windows_fs_encoding` is zero." msgstr "" "La función ahora usa la codificación UTF-8 en Windows si :c:data:" "`Py_LegacyWindowsFSEncodingFlag` es cero." -#: ../Doc/c-api/sys.rst:216 +#: ../Doc/c-api/sys.rst:219 msgid "System Functions" msgstr "Funciones del Sistema" -#: ../Doc/c-api/sys.rst:218 +#: ../Doc/c-api/sys.rst:221 msgid "" "These are utility functions that make functionality from the :mod:`sys` " "module accessible to C code. They all work with the current interpreter " @@ -374,7 +384,7 @@ msgstr "" "del módulo :mod:`sys` del subproceso actual del intérprete, que está " "contenido en la estructura interna del estado del subproceso." -#: ../Doc/c-api/sys.rst:224 +#: ../Doc/c-api/sys.rst:227 msgid "" "Return the object *name* from the :mod:`sys` module or ``NULL`` if it does " "not exist, without setting an exception." @@ -382,7 +392,7 @@ msgstr "" "Retorna el objeto *name* del módulo :mod:`sys` o ``NULL`` si no existe, sin " "establecer una excepción." -#: ../Doc/c-api/sys.rst:229 +#: ../Doc/c-api/sys.rst:232 msgid "" "Set *name* in the :mod:`sys` module to *v* unless *v* is ``NULL``, in which " "case *name* is deleted from the sys module. Returns ``0`` on success, ``-1`` " @@ -392,7 +402,7 @@ msgstr "" "``NULL``, en cuyo caso *name* se elimina del módulo *sys*. Retorna ``0`` en " "caso de éxito, ``-1`` en caso de error." -#: ../Doc/c-api/sys.rst:235 +#: ../Doc/c-api/sys.rst:238 msgid "" "Reset :data:`sys.warnoptions` to an empty list. This function may be called " "prior to :c:func:`Py_Initialize`." @@ -400,7 +410,7 @@ msgstr "" "Restablece :data:`sys.warnoptions` a una lista vacía. Esta función puede " "llamarse antes de :c:func:`Py_Initialize`." -#: ../Doc/c-api/sys.rst:240 ../Doc/c-api/sys.rst:251 +#: ../Doc/c-api/sys.rst:243 ../Doc/c-api/sys.rst:254 msgid "" "This API is kept for backward compatibility: setting :c:member:`PyConfig." "warnoptions` should be used instead, see :ref:`Python Initialization " @@ -410,7 +420,7 @@ msgstr "" "en su lugar se debe usar: :c:member:`PyConfig.warnoptions`, ver :ref:" "`Configuración de inicialización de Python `." -#: ../Doc/c-api/sys.rst:244 +#: ../Doc/c-api/sys.rst:247 msgid "" "Append *s* to :data:`sys.warnoptions`. This function must be called prior " "to :c:func:`Py_Initialize` in order to affect the warnings filter list." @@ -418,11 +428,11 @@ msgstr "" "Agrega *s* a :data:`sys.warnoptions`. Esta función debe llamarse antes de :c:" "func:`Py_Initialize` para afectar la lista de filtros de advertencias." -#: ../Doc/c-api/sys.rst:255 +#: ../Doc/c-api/sys.rst:258 msgid "Append *unicode* to :data:`sys.warnoptions`." msgstr "Agrega *unicode* a :data:`sys.warnoptions`." -#: ../Doc/c-api/sys.rst:257 +#: ../Doc/c-api/sys.rst:260 msgid "" "Note: this function is not currently usable from outside the CPython " "implementation, as it must be called prior to the implicit import of :mod:" @@ -436,7 +446,7 @@ msgstr "" "efectiva, pero no se puede llamar hasta que se haya inicializado suficiente " "tiempo de ejecución para permitir la creación de objetos Unicode." -#: ../Doc/c-api/sys.rst:267 +#: ../Doc/c-api/sys.rst:270 msgid "" "This API is kept for backward compatibility: setting :c:member:`PyConfig." "module_search_paths` and :c:member:`PyConfig.module_search_paths_set` should " @@ -448,7 +458,7 @@ msgstr "" "member:`PyConfig.module_search_paths_set`, ver :ref:`Python Initialization " "Configuration `." -#: ../Doc/c-api/sys.rst:272 +#: ../Doc/c-api/sys.rst:275 msgid "" "Set :data:`sys.path` to a list object of paths found in *path* which should " "be a list of paths separated with the platform's search path delimiter (``:" @@ -458,7 +468,7 @@ msgstr "" "*path*, que debería ser una lista de rutas separadas con el delimitador de " "ruta de búsqueda de la plataforma (``:`` en Unix, ``;`` en Windows )" -#: ../Doc/c-api/sys.rst:280 +#: ../Doc/c-api/sys.rst:283 msgid "" "Write the output string described by *format* to :data:`sys.stdout`. No " "exceptions are raised, even if truncation occurs (see below)." @@ -467,7 +477,7 @@ msgstr "" "`sys.stdout`. No se lanzan excepciones, incluso si se produce el " "truncamiento (ver más abajo)." -#: ../Doc/c-api/sys.rst:283 +#: ../Doc/c-api/sys.rst:286 #, python-format msgid "" "*format* should limit the total size of the formatted output string to 1000 " @@ -487,7 +497,7 @@ msgstr "" "tenga cuidado con \"%f\", que puede imprimir cientos de dígitos para números " "muy grandes." -#: ../Doc/c-api/sys.rst:291 +#: ../Doc/c-api/sys.rst:294 msgid "" "If a problem occurs, or :data:`sys.stdout` is unset, the formatted message " "is written to the real (C level) *stdout*." @@ -495,7 +505,7 @@ msgstr "" "Si ocurre un problema, o :data:`sys.stdout` no está configurado, el mensaje " "formateado se escribe en el real (nivel C) *stdout*." -#: ../Doc/c-api/sys.rst:296 +#: ../Doc/c-api/sys.rst:299 msgid "" "As :c:func:`PySys_WriteStdout`, but write to :data:`sys.stderr` or *stderr* " "instead." @@ -503,7 +513,7 @@ msgstr "" "Como :c:func:`PySys_WriteStdout`, pero escribe a :data:`sys.stderr` o " "*stderr* en su lugar." -#: ../Doc/c-api/sys.rst:301 +#: ../Doc/c-api/sys.rst:304 msgid "" "Function similar to PySys_WriteStdout() but format the message using :c:func:" "`PyUnicode_FromFormatV` and don't truncate the message to an arbitrary " @@ -513,7 +523,7 @@ msgstr "" "func:`PyUnicode_FromFormatV` y no trunca el mensaje a una longitud " "arbitraria." -#: ../Doc/c-api/sys.rst:309 +#: ../Doc/c-api/sys.rst:312 msgid "" "As :c:func:`PySys_FormatStdout`, but write to :data:`sys.stderr` or *stderr* " "instead." @@ -521,7 +531,7 @@ msgstr "" "Como :c:func:`PySys_FormatStdout`, pero escribe a :data:`sys.stderr` o " "*stderr* en su lugar." -#: ../Doc/c-api/sys.rst:316 +#: ../Doc/c-api/sys.rst:319 msgid "" "This API is kept for backward compatibility: setting :c:member:`PyConfig." "xoptions` should be used instead, see :ref:`Python Initialization " @@ -531,7 +541,7 @@ msgstr "" "en su lugar se debe usar: :c:member:`PyConfig.xoptions`, ver :ref:" "`Configuración de inicialización de Python `." -#: ../Doc/c-api/sys.rst:320 +#: ../Doc/c-api/sys.rst:323 msgid "" "Parse *s* as a set of :option:`-X` options and add them to the current " "options mapping as returned by :c:func:`PySys_GetXOptions`. This function " @@ -542,7 +552,7 @@ msgstr "" "`PySys_GetXOptions`. Esta función puede llamarse antes de :c:func:" "`Py_Initialize`." -#: ../Doc/c-api/sys.rst:330 +#: ../Doc/c-api/sys.rst:333 msgid "" "Return the current dictionary of :option:`-X` options, similarly to :data:" "`sys._xoptions`. On error, ``NULL`` is returned and an exception is set." @@ -551,7 +561,7 @@ msgstr "" "data:`sys._xoptions`. En caso de error, se retorna ``NULL`` y se establece " "una excepción." -#: ../Doc/c-api/sys.rst:339 +#: ../Doc/c-api/sys.rst:342 msgid "" "Raise an auditing event with any active hooks. Return zero for success and " "non-zero with an exception set on failure." @@ -559,7 +569,7 @@ msgstr "" "Lanza un evento de auditoría con cualquier gancho activo. Retorna cero para " "el éxito y no cero con una excepción establecida en caso de error." -#: ../Doc/c-api/sys.rst:342 +#: ../Doc/c-api/sys.rst:345 msgid "" "If any hooks have been added, *format* and other arguments will be used to " "construct a tuple to pass. Apart from ``N``, the same format characters as " @@ -577,7 +587,7 @@ msgstr "" "no hay forma de saber si se consumirán argumentos para esta función, su uso " "puede causar fugas de referencia)." -#: ../Doc/c-api/sys.rst:350 +#: ../Doc/c-api/sys.rst:353 msgid "" "Note that ``#`` format characters should always be treated as :c:type:" "`Py_ssize_t`, regardless of whether ``PY_SSIZE_T_CLEAN`` was defined." @@ -585,11 +595,11 @@ msgstr "" "Tenga en cuenta que los caracteres de formato ``#`` deben tratarse como :c:" "type:`Py_ssize_t`, independientemente de si se definió ``PY_SSIZE_T_CLEAN``." -#: ../Doc/c-api/sys.rst:353 +#: ../Doc/c-api/sys.rst:356 msgid ":func:`sys.audit` performs the same function from Python code." msgstr ":func:`sys.audit` realiza la misma función del código Python." -#: ../Doc/c-api/sys.rst:359 +#: ../Doc/c-api/sys.rst:362 msgid "" "Require :c:type:`Py_ssize_t` for ``#`` format characters. Previously, an " "unavoidable deprecation warning was raised." @@ -597,7 +607,7 @@ msgstr "" "Requiere :c:type:`Py_ssize_t` para los caracteres de formato ``#``. " "Anteriormente, se lanzaba una advertencia de deprecación inevitable." -#: ../Doc/c-api/sys.rst:365 +#: ../Doc/c-api/sys.rst:368 msgid "" "Append the callable *hook* to the list of active auditing hooks. Return zero " "on success and non-zero on failure. If the runtime has been initialized, " @@ -610,7 +620,7 @@ msgstr "" "agregados a través de esta API se llaman para todos los intérpretes creados " "por el tiempo de ejecución." -#: ../Doc/c-api/sys.rst:371 +#: ../Doc/c-api/sys.rst:374 msgid "" "The *userData* pointer is passed into the hook function. Since hook " "functions may be called from different runtimes, this pointer should not " @@ -620,7 +630,7 @@ msgstr "" "enlace pueden llamarse desde diferentes tiempos de ejecución, este puntero " "no debe referirse directamente al estado de Python." -#: ../Doc/c-api/sys.rst:375 +#: ../Doc/c-api/sys.rst:378 msgid "" "This function is safe to call before :c:func:`Py_Initialize`. When called " "after runtime initialization, existing audit hooks are notified and may " @@ -633,7 +643,7 @@ msgstr "" "al generar un error subclasificado de :class:`Excepción` (otros errores no " "se silenciarán)." -#: ../Doc/c-api/sys.rst:380 +#: ../Doc/c-api/sys.rst:383 msgid "" "The hook function is of type :c:expr:`int (*)(const char *event, PyObject " "*args, void *userData)`, where *args* is guaranteed to be a :c:type:" @@ -645,7 +655,7 @@ msgstr "" "`PyTupleObject`. La función hook siempre se llama con el GIL en poder del " "intérprete de Python que lanzó el evento." -#: ../Doc/c-api/sys.rst:385 +#: ../Doc/c-api/sys.rst:388 msgid "" "See :pep:`578` for a detailed description of auditing. Functions in the " "runtime and standard library that raise events are listed in the :ref:`audit " @@ -656,7 +666,7 @@ msgstr "" "enumeran en :ref:`table de eventos de auditoria `. Los " "detalles se encuentran en la documentación de cada función." -#: ../Doc/c-api/sys.rst:390 +#: ../Doc/c-api/sys.rst:393 msgid "" "Raises an :ref:`auditing event ` ``sys.addaudithook`` with no " "arguments." @@ -664,7 +674,7 @@ msgstr "" "Lanza un :ref:`evento de auditoria ` ``sys.addaudithook`` sin " "argumentos." -#: ../Doc/c-api/sys.rst:392 +#: ../Doc/c-api/sys.rst:395 msgid "" "If the interpreter is initialized, this function raises a auditing event " "``sys.addaudithook`` with no arguments. If any existing hooks raise an " @@ -679,17 +689,18 @@ msgstr "" "asumir que su gancho ha sido agregado a menos que controlen todos los " "ganchos existentes." -#: ../Doc/c-api/sys.rst:404 +#: ../Doc/c-api/sys.rst:407 msgid "Process Control" msgstr "Control de procesos" -#: ../Doc/c-api/sys.rst:411 +#: ../Doc/c-api/sys.rst:414 +#, fuzzy msgid "" "Print a fatal error message and kill the process. No cleanup is performed. " "This function should only be invoked when a condition is detected that would " "make it dangerous to continue using the Python interpreter; e.g., when the " "object administration appears to be corrupted. On Unix, the standard C " -"library function :c:func:`abort` is called which will attempt to produce a :" +"library function :c:func:`!abort` is called which will attempt to produce a :" "file:`core` file." msgstr "" "Imprime un mensaje de error fatal y elimina el proceso. No se realiza " @@ -699,7 +710,7 @@ msgstr "" "la función de biblioteca C estándar :c:func:`abort` que intentará producir " "un archivo :file:`core`." -#: ../Doc/c-api/sys.rst:418 +#: ../Doc/c-api/sys.rst:421 msgid "" "The ``Py_FatalError()`` function is replaced with a macro which logs " "automatically the name of the current function, unless the " @@ -709,11 +720,11 @@ msgstr "" "automáticamente el nombre de la función actual, a menos que se defina la " "macro ``Py_LIMITED_API``." -#: ../Doc/c-api/sys.rst:422 +#: ../Doc/c-api/sys.rst:425 msgid "Log the function name automatically." msgstr "Registra el nombre de la función automáticamente." -#: ../Doc/c-api/sys.rst:432 +#: ../Doc/c-api/sys.rst:435 msgid "" "Exit the current process. This calls :c:func:`Py_FinalizeEx` and then calls " "the standard C library function ``exit(status)``. If :c:func:" @@ -723,11 +734,11 @@ msgstr "" "la función estándar de la biblioteca C ``exit(status)``. Si :c:func:" "`Py_FinalizeEx` indica un error, el estado de salida se establece en 120." -#: ../Doc/c-api/sys.rst:436 +#: ../Doc/c-api/sys.rst:439 msgid "Errors from finalization no longer ignored." msgstr "Los errores de finalización ya no se ignoran." -#: ../Doc/c-api/sys.rst:446 +#: ../Doc/c-api/sys.rst:449 msgid "" "Register a cleanup function to be called by :c:func:`Py_FinalizeEx`. The " "cleanup function will be called with no arguments and should return no " @@ -746,3 +757,20 @@ msgstr "" "primero. Cada función de limpieza se llamará como máximo una vez. Dado que " "la finalización interna de Python se habrá completado antes de la función de " "limpieza, *func* no debería llamar a las API de Python." + +#: ../Doc/c-api/sys.rst:412 +msgid "abort()" +msgstr "" + +#: ../Doc/c-api/sys.rst:431 ../Doc/c-api/sys.rst:445 +msgid "Py_FinalizeEx()" +msgstr "" + +#: ../Doc/c-api/sys.rst:431 +msgid "exit()" +msgstr "" + +#: ../Doc/c-api/sys.rst:445 +#, fuzzy +msgid "cleanup functions" +msgstr "Funciones del Sistema" diff --git a/c-api/tuple.po b/c-api/tuple.po index a6704db4dd..87d67c3a62 100644 --- a/c-api/tuple.po +++ b/c-api/tuple.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-29 23:58-0400\n" "Last-Translator: Rodrigo Tobar \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/tuple.rst:6 msgid "Tuple Objects" @@ -99,10 +98,11 @@ msgid "Like :c:func:`PyTuple_GetItem`, but does no checking of its arguments." msgstr "Como :c:func:`PyTuple_GetItem`, pero no verifica sus argumentos." #: ../Doc/c-api/tuple.rst:70 +#, fuzzy msgid "" "Return the slice of the tuple pointed to by *p* between *low* and *high*, or " "``NULL`` on failure. This is the equivalent of the Python expression " -"``p[low:high]``. Indexing from the end of the list is not supported." +"``p[low:high]``. Indexing from the end of the tuple is not supported." msgstr "" "Retorna la porción de la tupla señalada por *p* entre *low* y *high*, o " "``NULL`` en caso de falla. Este es el equivalente de la expresión de Python " @@ -171,11 +171,11 @@ msgstr "" "``*p``. En caso de fallo, retorna ``-1`` y establece ``*p`` en ``NULL``, y " "lanza :exc:`MemoryError` o :exc:`SystemError`." -#: ../Doc/c-api/tuple.rst:115 +#: ../Doc/c-api/tuple.rst:117 msgid "Struct Sequence Objects" msgstr "Objetos de secuencia de estructura" -#: ../Doc/c-api/tuple.rst:117 +#: ../Doc/c-api/tuple.rst:119 msgid "" "Struct sequence objects are the C equivalent of :func:`~collections." "namedtuple` objects, i.e. a sequence whose items can also be accessed " @@ -188,7 +188,7 @@ msgstr "" "secuencia de estructura, primero debe crear un tipo de secuencia de " "estructura específico." -#: ../Doc/c-api/tuple.rst:124 +#: ../Doc/c-api/tuple.rst:126 msgid "" "Create a new struct sequence type from the data in *desc*, described below. " "Instances of the resulting type can be created with :c:func:" @@ -198,12 +198,12 @@ msgstr "" "*desc*, que se describen a continuación. Las instancias del tipo resultante " "se pueden crear con :c:func:`PyStructSequence_New`." -#: ../Doc/c-api/tuple.rst:130 +#: ../Doc/c-api/tuple.rst:132 msgid "Initializes a struct sequence type *type* from *desc* in place." msgstr "" "Inicializa una secuencia de estructura tipo *type* desde *desc* en su lugar." -#: ../Doc/c-api/tuple.rst:135 +#: ../Doc/c-api/tuple.rst:137 msgid "" "The same as ``PyStructSequence_InitType``, but returns ``0`` on success and " "``-1`` on failure." @@ -211,77 +211,42 @@ msgstr "" "Lo mismo que ``PyStructSequence_InitType``, pero retorna ``0`` en caso de " "éxito y ``-1`` en caso de error." -#: ../Doc/c-api/tuple.rst:143 +#: ../Doc/c-api/tuple.rst:145 msgid "Contains the meta information of a struct sequence type to create." msgstr "" "Contiene la meta información de un tipo de secuencia de estructura para " "crear." -#: ../Doc/c-api/tuple.rst:146 ../Doc/c-api/tuple.rst:169 -msgid "Field" -msgstr "Campo" - -#: ../Doc/c-api/tuple.rst:146 ../Doc/c-api/tuple.rst:169 -msgid "C Type" -msgstr "Tipo C" - -#: ../Doc/c-api/tuple.rst:146 ../Doc/c-api/tuple.rst:169 -msgid "Meaning" -msgstr "Significado" - -#: ../Doc/c-api/tuple.rst:148 ../Doc/c-api/tuple.rst:171 -msgid "``name``" -msgstr "``name``" - -#: ../Doc/c-api/tuple.rst:148 ../Doc/c-api/tuple.rst:150 -#: ../Doc/c-api/tuple.rst:171 ../Doc/c-api/tuple.rst:176 -msgid "``const char *``" -msgstr "``const char *``" - -#: ../Doc/c-api/tuple.rst:148 -msgid "name of the struct sequence type" +#: ../Doc/c-api/tuple.rst:149 +#, fuzzy +msgid "Name of the struct sequence type." msgstr "nombre del tipo de secuencia de estructura" -#: ../Doc/c-api/tuple.rst:150 ../Doc/c-api/tuple.rst:176 -msgid "``doc``" -msgstr "``doc``" - -#: ../Doc/c-api/tuple.rst:150 -msgid "pointer to docstring for the type or ``NULL`` to omit" -msgstr "puntero al *docstring* para el tipo o ``NULL`` para omitir" - #: ../Doc/c-api/tuple.rst:153 -msgid "``fields``" -msgstr "``fields``" - -#: ../Doc/c-api/tuple.rst:153 -msgid "``PyStructSequence_Field *``" -msgstr "``PyStructSequence_Field *``" +#, fuzzy +msgid "Pointer to docstring for the type or ``NULL`` to omit." +msgstr "puntero al *docstring* para el tipo o ``NULL`` para omitir" -#: ../Doc/c-api/tuple.rst:153 -msgid "pointer to ``NULL``-terminated array with field names of the new type" +#: ../Doc/c-api/tuple.rst:157 +#, fuzzy +msgid "Pointer to ``NULL``-terminated array with field names of the new type." msgstr "" "puntero al arreglo terminado en ``NULL`` con nombres de campo del nuevo tipo" -#: ../Doc/c-api/tuple.rst:156 -msgid "``n_in_sequence``" -msgstr "``n_in_sequence``" - -#: ../Doc/c-api/tuple.rst:156 -msgid "``int``" -msgstr "``int``" - -#: ../Doc/c-api/tuple.rst:156 -msgid "number of fields visible to the Python side (if used as tuple)" +#: ../Doc/c-api/tuple.rst:161 +#, fuzzy +msgid "Number of fields visible to the Python side (if used as tuple)." msgstr "" "cantidad de campos visibles para el lado de Python (si se usa como tupla)" -#: ../Doc/c-api/tuple.rst:163 +#: ../Doc/c-api/tuple.rst:166 +#, fuzzy msgid "" "Describes a field of a struct sequence. As a struct sequence is modeled as a " -"tuple, all fields are typed as :c:expr:`PyObject*`. The index in the :attr:" -"`fields` array of the :c:type:`PyStructSequence_Desc` determines which field " -"of the struct sequence is described." +"tuple, all fields are typed as :c:expr:`PyObject*`. The index in the :c:" +"member:`~PyStructSequence_Desc.fields` array of the :c:type:" +"`PyStructSequence_Desc` determines which field of the struct sequence is " +"described." msgstr "" "Describe un campo de una secuencia de estructura. Como una secuencia de " "estructura se modela como una tupla, todos los campos se escriben como :c:" @@ -289,28 +254,30 @@ msgstr "" "`PyStructSequence_Desc` determina qué campo de la secuencia de estructura se " "describe." -#: ../Doc/c-api/tuple.rst:171 +#: ../Doc/c-api/tuple.rst:174 +#, fuzzy msgid "" -"name for the field or ``NULL`` to end the list of named fields, set to :c:" -"data:`PyStructSequence_UnnamedField` to leave unnamed" +"Name for the field or ``NULL`` to end the list of named fields, set to :c:" +"data:`PyStructSequence_UnnamedField` to leave unnamed." msgstr "" "nombre para el campo o ``NULL`` para finalizar la lista de campos con " "nombre, establece en :c:data:`PyStructSequence_UnnamedField` para dejar sin " "nombre" -#: ../Doc/c-api/tuple.rst:176 -msgid "field docstring or ``NULL`` to omit" +#: ../Doc/c-api/tuple.rst:179 +#, fuzzy +msgid "Field docstring or ``NULL`` to omit." msgstr "campo *docstring* o ``NULL`` para omitir" -#: ../Doc/c-api/tuple.rst:182 +#: ../Doc/c-api/tuple.rst:184 msgid "Special value for a field name to leave it unnamed." msgstr "Valor especial para un nombre de campo para dejarlo sin nombre." -#: ../Doc/c-api/tuple.rst:184 +#: ../Doc/c-api/tuple.rst:186 msgid "The type was changed from ``char *``." msgstr "El tipo se cambió de ``char *``." -#: ../Doc/c-api/tuple.rst:190 +#: ../Doc/c-api/tuple.rst:192 msgid "" "Creates an instance of *type*, which must have been created with :c:func:" "`PyStructSequence_NewType`." @@ -318,7 +285,7 @@ msgstr "" "Crea una instancia de *type*, que debe haberse creado con :c:func:" "`PyStructSequence_NewType`." -#: ../Doc/c-api/tuple.rst:196 +#: ../Doc/c-api/tuple.rst:198 msgid "" "Return the object at position *pos* in the struct sequence pointed to by " "*p*. No bounds checking is performed." @@ -326,11 +293,11 @@ msgstr "" "Retorna el objeto en la posición *pos* en la secuencia de estructura " "apuntada por *p*. No se realiza la comprobación de límites." -#: ../Doc/c-api/tuple.rst:202 +#: ../Doc/c-api/tuple.rst:204 msgid "Macro equivalent of :c:func:`PyStructSequence_GetItem`." msgstr "Macro equivalente de :c:func:`PyStructSequence_GetItem`." -#: ../Doc/c-api/tuple.rst:207 +#: ../Doc/c-api/tuple.rst:209 msgid "" "Sets the field at index *pos* of the struct sequence *p* to value *o*. " "Like :c:func:`PyTuple_SET_ITEM`, this should only be used to fill in brand " @@ -340,14 +307,53 @@ msgstr "" "el valor *o*. Como :c:func:`PyTuple_SET_ITEM`, esto solo debe usarse para " "completar instancias nuevas." -#: ../Doc/c-api/tuple.rst:213 ../Doc/c-api/tuple.rst:223 +#: ../Doc/c-api/tuple.rst:215 ../Doc/c-api/tuple.rst:225 msgid "This function \"steals\" a reference to *o*." msgstr "Esta función \"roba\" una referencia a *o*." -#: ../Doc/c-api/tuple.rst:218 +#: ../Doc/c-api/tuple.rst:220 msgid "" "Similar to :c:func:`PyStructSequence_SetItem`, but implemented as a static " "inlined function." msgstr "" "Similar a :c:func:`PyStructSequence_SetItem`, pero implementada como una " "función estática inline." + +#: ../Doc/c-api/tuple.rst:8 +#, fuzzy +msgid "object" +msgstr "Objetos tupla" + +#: ../Doc/c-api/tuple.rst:8 +msgid "tuple" +msgstr "" + +#~ msgid "Field" +#~ msgstr "Campo" + +#~ msgid "C Type" +#~ msgstr "Tipo C" + +#~ msgid "Meaning" +#~ msgstr "Significado" + +#~ msgid "``name``" +#~ msgstr "``name``" + +#~ msgid "``const char *``" +#~ msgstr "``const char *``" + +#~ msgid "``doc``" +#~ msgstr "``doc``" + +#~ msgid "``fields``" +#~ msgstr "``fields``" + +#~ msgid "``PyStructSequence_Field *``" +#~ msgstr "``PyStructSequence_Field *``" + +#~ msgid "``n_in_sequence``" +#~ msgstr "``n_in_sequence``" + +#~ msgid "``int``" +#~ msgstr "``int``" diff --git a/c-api/type.po b/c-api/type.po index 67b45360e6..b55030f757 100644 --- a/c-api/type.po +++ b/c-api/type.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-04-12 00:54-0600\n" "Last-Translator: Gonzalo Martinez \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/type.rst:6 msgid "Type Objects" @@ -67,11 +66,13 @@ msgstr "" "versión actual." #: ../Doc/c-api/type.rst:42 +#, fuzzy msgid "" "Return the :c:member:`~PyTypeObject.tp_flags` member of *type*. This " "function is primarily meant for use with ``Py_LIMITED_API``; the individual " "flag bits are guaranteed to be stable across Python releases, but access to :" -"c:member:`~PyTypeObject.tp_flags` itself is not part of the limited API." +"c:member:`~PyTypeObject.tp_flags` itself is not part of the :ref:`limited " +"API `." msgstr "" "Retorna el miembro :c:member:`~PyTypeObject.tp_flags` de *type*. Esta " "función está destinada principalmente para su uso con `Py_LIMITED_API`; se " @@ -85,6 +86,27 @@ msgstr "El tipo de retorno es ahora ``unsigned long`` en vez de ``long``." #: ../Doc/c-api/type.rst:55 msgid "" +"Return the type object's internal namespace, which is otherwise only exposed " +"via a read-only proxy (``cls.__dict__``). This is a replacement for " +"accessing :c:member:`~PyTypeObject.tp_dict` directly. The returned " +"dictionary must be treated as read-only." +msgstr "" + +#: ../Doc/c-api/type.rst:60 +msgid "" +"This function is meant for specific embedding and language-binding cases, " +"where direct access to the dict is necessary and indirect access (e.g. via " +"the proxy or :c:func:`PyObject_GetAttr`) isn't adequate." +msgstr "" + +#: ../Doc/c-api/type.rst:64 +msgid "" +"Extension modules should continue to use ``tp_dict``, directly or " +"indirectly, when setting up their own types." +msgstr "" + +#: ../Doc/c-api/type.rst:72 +msgid "" "Invalidate the internal lookup cache for the type and all of its subtypes. " "This function must be called after any manual modification of the attributes " "or base classes of the type." @@ -93,7 +115,56 @@ msgstr "" "subtipos. Esta función debe llamarse después de cualquier modificación " "manual de los atributos o clases base del tipo." -#: ../Doc/c-api/type.rst:62 +#: ../Doc/c-api/type.rst:79 +msgid "" +"Register *callback* as a type watcher. Return a non-negative integer ID " +"which must be passed to future calls to :c:func:`PyType_Watch`. In case of " +"error (e.g. no more watcher IDs available), return ``-1`` and set an " +"exception." +msgstr "" + +#: ../Doc/c-api/type.rst:89 +msgid "" +"Clear watcher identified by *watcher_id* (previously returned from :c:func:" +"`PyType_AddWatcher`). Return ``0`` on success, ``-1`` on error (e.g. if " +"*watcher_id* was never registered.)" +msgstr "" + +#: ../Doc/c-api/type.rst:93 +msgid "" +"An extension should never call ``PyType_ClearWatcher`` with a *watcher_id* " +"that was not returned to it by a previous call to :c:func:" +"`PyType_AddWatcher`." +msgstr "" + +#: ../Doc/c-api/type.rst:102 +msgid "" +"Mark *type* as watched. The callback granted *watcher_id* by :c:func:" +"`PyType_AddWatcher` will be called whenever :c:func:`PyType_Modified` " +"reports a change to *type*. (The callback may be called only once for a " +"series of consecutive modifications to *type*, if :c:func:`!_PyType_Lookup` " +"is not called on *type* between the modifications; this is an implementation " +"detail and subject to change.)" +msgstr "" + +#: ../Doc/c-api/type.rst:109 +msgid "" +"An extension should never call ``PyType_Watch`` with a *watcher_id* that was " +"not returned to it by a previous call to :c:func:`PyType_AddWatcher`." +msgstr "" + +#: ../Doc/c-api/type.rst:117 +msgid "Type of a type-watcher callback function." +msgstr "" + +#: ../Doc/c-api/type.rst:119 +msgid "" +"The callback must not modify *type* or cause :c:func:`PyType_Modified` to be " +"called on *type* or any type in its MRO; violating this rule could cause " +"infinite recursion." +msgstr "" + +#: ../Doc/c-api/type.rst:128 msgid "" "Return non-zero if the type object *o* sets the feature *feature*. Type " "features are denoted by single bit flags." @@ -102,19 +173,20 @@ msgstr "" "característica *feature*. Las características de tipo se indican mediante " "flags de un solo bit." -#: ../Doc/c-api/type.rst:68 +#: ../Doc/c-api/type.rst:134 +#, fuzzy msgid "" "Return true if the type object includes support for the cycle detector; this " -"tests the type flag :const:`Py_TPFLAGS_HAVE_GC`." +"tests the type flag :c:macro:`Py_TPFLAGS_HAVE_GC`." msgstr "" "Retorna verdadero si el objeto tipo incluye soporte para el detector de " "ciclo; Esto prueba el indicador de tipo :const:`Py_TPFLAGS_HAVE_GC`." -#: ../Doc/c-api/type.rst:74 +#: ../Doc/c-api/type.rst:140 msgid "Return true if *a* is a subtype of *b*." msgstr "Retorna verdadero si *a* es un subtipo de *b*." -#: ../Doc/c-api/type.rst:76 +#: ../Doc/c-api/type.rst:142 msgid "" "This function only checks for actual subtypes, which means that :meth:" "`~class.__subclasscheck__` is not called on *b*. Call :c:func:" @@ -124,7 +196,7 @@ msgstr "" "__subclasscheck__` no se llama en *b*. Llama :c:func:`PyObject_IsSubclass` " "para hacer el mismo chequeo que :func:`issubclass` haría." -#: ../Doc/c-api/type.rst:84 +#: ../Doc/c-api/type.rst:150 msgid "" "Generic handler for the :c:member:`~PyTypeObject.tp_alloc` slot of a type " "object. Use Python's default memory allocation mechanism to allocate a new " @@ -135,7 +207,7 @@ msgstr "" "Python para asignar una nueva instancia e inicializar todo su contenido a " "``NULL``." -#: ../Doc/c-api/type.rst:90 +#: ../Doc/c-api/type.rst:156 msgid "" "Generic handler for the :c:member:`~PyTypeObject.tp_new` slot of a type " "object. Create a new instance using the type's :c:member:`~PyTypeObject." @@ -145,7 +217,7 @@ msgstr "" "objeto tipo. Crea una nueva instancia utilizando la ranura del tipo :c:" "member:`~PyTypeObject.tp_alloc`." -#: ../Doc/c-api/type.rst:95 +#: ../Doc/c-api/type.rst:161 msgid "" "Finalize a type object. This should be called on all type objects to finish " "their initialization. This function is responsible for adding inherited " @@ -157,14 +229,16 @@ msgstr "" "heredadas de la clase base de un tipo. Retorna ``0`` en caso de éxito o " "retorna ``-1`` y establece una excepción en caso de error." -#: ../Doc/c-api/type.rst:101 +#: ../Doc/c-api/type.rst:167 +#, fuzzy msgid "" "If some of the base classes implements the GC protocol and the provided type " -"does not include the :const:`Py_TPFLAGS_HAVE_GC` in its flags, then the GC " +"does not include the :c:macro:`Py_TPFLAGS_HAVE_GC` in its flags, then the GC " "protocol will be automatically implemented from its parents. On the " -"contrary, if the type being created does include :const:`Py_TPFLAGS_HAVE_GC` " -"in its flags then it **must** implement the GC protocol itself by at least " -"implementing the :c:member:`~PyTypeObject.tp_traverse` handle." +"contrary, if the type being created does include :c:macro:" +"`Py_TPFLAGS_HAVE_GC` in its flags then it **must** implement the GC protocol " +"itself by at least implementing the :c:member:`~PyTypeObject.tp_traverse` " +"handle." msgstr "" "Si algunas de las clases base implementan el protocolo GC y el tipo " "proporcionado no incluye el :const:`Py_TPFLAGS_HAVE_GC` en sus banderas, " @@ -174,7 +248,7 @@ msgstr "" "protocolo GC por sí mismo al implementar al menos el identificador :c:member:" "`~PyTypeObject.tp_traverse`." -#: ../Doc/c-api/type.rst:111 +#: ../Doc/c-api/type.rst:177 msgid "" "Return the type's name. Equivalent to getting the type's ``__name__`` " "attribute." @@ -182,7 +256,7 @@ msgstr "" "Retorna el nombre del tipo. Equivalente a obtener el atributo ``__name__`` " "del tipo." -#: ../Doc/c-api/type.rst:117 +#: ../Doc/c-api/type.rst:183 msgid "" "Return the type's qualified name. Equivalent to getting the type's " "``__qualname__`` attribute." @@ -190,7 +264,7 @@ msgstr "" "Retorna el nombre adecuado del tipo de objeto. Equivalente a obtener el " "atributo ``__qualname__`` del objeto tipo." -#: ../Doc/c-api/type.rst:124 +#: ../Doc/c-api/type.rst:190 msgid "" "Return the function pointer stored in the given slot. If the result is " "``NULL``, this indicates that either the slot is ``NULL``, or that the " @@ -202,14 +276,14 @@ msgstr "" "con parámetros no válidos. Las personas que llaman suelen convertir el " "puntero de resultado en el tipo de función apropiado." -#: ../Doc/c-api/type.rst:130 +#: ../Doc/c-api/type.rst:196 msgid "" "See :c:member:`PyType_Slot.slot` for possible values of the *slot* argument." msgstr "" "Consulte :c:member:`PyType_Slot.slot` para conocer los posibles valores del " "argumento *slot*." -#: ../Doc/c-api/type.rst:134 +#: ../Doc/c-api/type.rst:200 msgid "" ":c:func:`PyType_GetSlot` can now accept all types. Previously, it was " "limited to :ref:`heap types `." @@ -217,7 +291,7 @@ msgstr "" ":c:func:`PyType_GetSlot` ahora puede aceptar todos los tipos. Anteriormente, " "estaba limitado a :ref:`heap types `." -#: ../Doc/c-api/type.rst:140 +#: ../Doc/c-api/type.rst:206 msgid "" "Return the module object associated with the given type when the type was " "created using :c:func:`PyType_FromModuleAndSpec`." @@ -225,7 +299,7 @@ msgstr "" "Retorna el objeto módulo asociado con el tipo dado cuando se creó el tipo " "usando :c:func:`PyType_FromModuleAndSpec`." -#: ../Doc/c-api/type.rst:143 ../Doc/c-api/type.rst:163 +#: ../Doc/c-api/type.rst:209 ../Doc/c-api/type.rst:229 msgid "" "If no module is associated with the given type, sets :py:class:`TypeError` " "and returns ``NULL``." @@ -233,15 +307,16 @@ msgstr "" "Si no hay ningún módulo asociado con el tipo dado, establece :py:class:" "`TypeError` y retorna ``NULL``." -#: ../Doc/c-api/type.rst:146 +#: ../Doc/c-api/type.rst:212 +#, fuzzy msgid "" "This function is usually used to get the module in which a method is " "defined. Note that in such a method, ``PyType_GetModule(Py_TYPE(self))`` may " "not return the intended result. ``Py_TYPE(self)`` may be a *subclass* of the " "intended class, and subclasses are not necessarily defined in the same " "module as their superclass. See :c:type:`PyCMethod` to get the class that " -"defines the method. See :c:func:`PyType_GetModuleByDef` for cases when " -"``PyCMethod`` cannot be used." +"defines the method. See :c:func:`PyType_GetModuleByDef` for cases when :c:" +"type:`!PyCMethod` cannot be used." msgstr "" "Esta función se suele utilizar para obtener el módulo en el que se define un " "método. Tenga en cuenta que en un método de este tipo, es posible que " @@ -252,7 +327,7 @@ msgstr "" "método. Ver ::c:func:`PyType_GetModuleByDef` para los casos en los que no se " "puede usar ``PyCMethod``." -#: ../Doc/c-api/type.rst:159 +#: ../Doc/c-api/type.rst:225 msgid "" "Return the state of the module object associated with the given type. This " "is a shortcut for calling :c:func:`PyModule_GetState()` on the result of :c:" @@ -262,7 +337,7 @@ msgstr "" "atajo para llamar :c:func:`PyModule_GetState()` en el resultado de :c:func:" "`PyType_GetModule`." -#: ../Doc/c-api/type.rst:166 +#: ../Doc/c-api/type.rst:232 msgid "" "If the *type* has an associated module but its state is ``NULL``, returns " "``NULL`` without setting an exception." @@ -270,7 +345,7 @@ msgstr "" "Si el tipo *type* tiene un módulo asociado pero su estado es ``NULL``, " "retorna ``NULL`` sin establecer una excepción." -#: ../Doc/c-api/type.rst:173 +#: ../Doc/c-api/type.rst:239 msgid "" "Find the first superclass whose module was created from the given :c:type:" "`PyModuleDef` *def*, and return that module." @@ -278,14 +353,14 @@ msgstr "" "Encuentra la primer superclase cuyo módulo fue creado a partir del :c:type:" "`PyModuleDef` *def* dado, y retorna ese módulo." -#: ../Doc/c-api/type.rst:176 +#: ../Doc/c-api/type.rst:242 msgid "" "If no module is found, raises a :py:class:`TypeError` and returns ``NULL``." msgstr "" "Si no se encuentra ningún módulo, lanza :py:class:`TypeError` y retorna " "``NULL``." -#: ../Doc/c-api/type.rst:178 +#: ../Doc/c-api/type.rst:244 msgid "" "This function is intended to be used together with :c:func:" "`PyModule_GetState()` to get module state from slot methods (such as :c:" @@ -299,11 +374,21 @@ msgstr "" "nb_add`) y en otros lugares donde la clase que define a un método no se " "puede pasar utilizando la convención de llamada :c:type:`PyCMethod`." -#: ../Doc/c-api/type.rst:188 +#: ../Doc/c-api/type.rst:254 +msgid "Attempt to assign a version tag to the given type." +msgstr "" + +#: ../Doc/c-api/type.rst:256 +msgid "" +"Returns 1 if the type already had a valid version tag or a new one was " +"assigned, or 0 if a new tag could not be assigned." +msgstr "" + +#: ../Doc/c-api/type.rst:263 msgid "Creating Heap-Allocated Types" msgstr "Crear tipos asignados en montículo (*heap*)" -#: ../Doc/c-api/type.rst:190 +#: ../Doc/c-api/type.rst:265 msgid "" "The following functions and structs are used to create :ref:`heap types " "`." @@ -311,15 +396,32 @@ msgstr "" "Las siguientes funciones y estructuras se utilizan para crear :ref:`heap " "types `." -#: ../Doc/c-api/type.rst:195 +#: ../Doc/c-api/type.rst:270 +#, fuzzy msgid "" -"Creates and returns a :ref:`heap type ` from the *spec* (:const:" -"`Py_TPFLAGS_HEAPTYPE`)." +"Create and return a :ref:`heap type ` from the *spec* (see :c:" +"macro:`Py_TPFLAGS_HEAPTYPE`)." msgstr "" "Crea y retorna un :ref:`tipo heap ` a partir del *spec* (:const:" "`Py_TPFLAGS_HEAPTYPE`)." -#: ../Doc/c-api/type.rst:198 +#: ../Doc/c-api/type.rst:273 +msgid "" +"The metaclass *metaclass* is used to construct the resulting type object. " +"When *metaclass* is ``NULL``, the metaclass is derived from *bases* (or " +"*Py_tp_base[s]* slots if *bases* is ``NULL``, see below)." +msgstr "" + +#: ../Doc/c-api/type.rst:277 +msgid "" +"Metaclasses that override :c:member:`~PyTypeObject.tp_new` are not " +"supported, except if ``tp_new`` is ``NULL``. (For backwards compatibility, " +"other ``PyType_From*`` functions allow such metaclasses. They ignore " +"``tp_new``, which may result in incomplete initialization. This is " +"deprecated and in Python 3.14+ such metaclasses will not be supported.)" +msgstr "" + +#: ../Doc/c-api/type.rst:284 msgid "" "The *bases* argument can be used to specify base classes; it can either be " "only one class or a tuple of classes. If *bases* is ``NULL``, the " @@ -333,7 +435,7 @@ msgstr "" "la ranura *Py_tp_base* en su lugar. Si también es ``NULL``, el nuevo tipo se " "deriva de :class:`object`." -#: ../Doc/c-api/type.rst:204 +#: ../Doc/c-api/type.rst:290 msgid "" "The *module* argument can be used to record the module in which the new " "class is defined. It must be a module object or ``NULL``. If not ``NULL``, " @@ -347,11 +449,43 @@ msgstr "" "con :c:func:`PyType_GetModule`. El módulo asociado no es heredado por " "subclases; debe especificarse para cada clase individualmente." -#: ../Doc/c-api/type.rst:211 +#: ../Doc/c-api/type.rst:297 msgid "This function calls :c:func:`PyType_Ready` on the new type." msgstr "Esta función llama :c:func:`PyType_Ready` en el tipo nuevo." -#: ../Doc/c-api/type.rst:217 +#: ../Doc/c-api/type.rst:299 +msgid "" +"Note that this function does *not* fully match the behavior of calling :py:" +"class:`type() ` or using the :keyword:`class` statement. With user-" +"provided base types or metaclasses, prefer :ref:`calling ` :py:" +"class:`type` (or the metaclass) over ``PyType_From*`` functions. " +"Specifically:" +msgstr "" + +#: ../Doc/c-api/type.rst:306 +msgid "" +":py:meth:`~object.__new__` is not called on the new class (and it must be " +"set to ``type.__new__``)." +msgstr "" + +#: ../Doc/c-api/type.rst:308 +msgid ":py:meth:`~object.__init__` is not called on the new class." +msgstr "" + +#: ../Doc/c-api/type.rst:309 +msgid ":py:meth:`~object.__init_subclass__` is not called on any bases." +msgstr "" + +#: ../Doc/c-api/type.rst:310 +msgid ":py:meth:`~object.__set_name__` is not called on new descriptors." +msgstr "" + +#: ../Doc/c-api/type.rst:316 +#, fuzzy +msgid "Equivalent to ``PyType_FromMetaclass(NULL, module, spec, bases)``." +msgstr "Equivalente a ``PyType_FromModuleAndSpec(NULL, spec, bases)``." + +#: ../Doc/c-api/type.rst:322 msgid "" "The function now accepts a single class as the *bases* argument and ``NULL`` " "as the ``tp_doc`` slot." @@ -359,38 +493,122 @@ msgstr "" "La función ahora acepta una sola clase como argumento *bases* y ``NULL`` " "como ranura ``tp_doc``." -#: ../Doc/c-api/type.rst:222 -msgid "Equivalent to ``PyType_FromModuleAndSpec(NULL, spec, bases)``." +#: ../Doc/c-api/type.rst:327 ../Doc/c-api/type.rst:344 +msgid "" +"The function now finds and uses a metaclass corresponding to the provided " +"base classes. Previously, only :class:`type` instances were returned." +msgstr "" + +#: ../Doc/c-api/type.rst:330 ../Doc/c-api/type.rst:347 +#: ../Doc/c-api/type.rst:363 +msgid "" +"The :c:member:`~PyTypeObject.tp_new` of the metaclass is *ignored*. which " +"may result in incomplete initialization. Creating classes whose metaclass " +"overrides :c:member:`~PyTypeObject.tp_new` is deprecated and in Python 3.14+ " +"it will be no longer allowed." +msgstr "" + +#: ../Doc/c-api/type.rst:338 +#, fuzzy +msgid "Equivalent to ``PyType_FromMetaclass(NULL, NULL, spec, bases)``." msgstr "Equivalente a ``PyType_FromModuleAndSpec(NULL, spec, bases)``." -#: ../Doc/c-api/type.rst:228 -msgid "Equivalent to ``PyType_FromSpecWithBases(spec, NULL)``." +#: ../Doc/c-api/type.rst:355 +#, fuzzy +msgid "Equivalent to ``PyType_FromMetaclass(NULL, NULL, spec, NULL)``." msgstr "Equivalente a ``PyType_FromSpecWithBases(spec, NULL)``." -#: ../Doc/c-api/type.rst:232 +#: ../Doc/c-api/type.rst:359 +msgid "" +"The function now finds and uses a metaclass corresponding to the base " +"classes provided in *Py_tp_base[s]* slots. Previously, only :class:`type` " +"instances were returned." +msgstr "" + +#: ../Doc/c-api/type.rst:380 msgid "Structure defining a type's behavior." msgstr "Estructura que define el comportamiento de un tipo." -#: ../Doc/c-api/type.rst:236 +#: ../Doc/c-api/type.rst:384 msgid "Name of the type, used to set :c:member:`PyTypeObject.tp_name`." msgstr "" "Nombre del tipo, utilizado para establecer :c:member:`PyTypeObject.tp_name`." -#: ../Doc/c-api/type.rst:241 +#: ../Doc/c-api/type.rst:388 +#, fuzzy +msgid "" +"If positive, specifies the size of the instance in bytes. It is used to set :" +"c:member:`PyTypeObject.tp_basicsize`." +msgstr "" +"Tamaño de la instancia en bytes, utilizado para establecer :c:member:" +"`PyTypeObject.tp_basicsize` y :c:member:`PyTypeObject.tp_itemsize`." + +#: ../Doc/c-api/type.rst:391 +msgid "" +"If zero, specifies that :c:member:`~PyTypeObject.tp_basicsize` should be " +"inherited." +msgstr "" + +#: ../Doc/c-api/type.rst:394 +msgid "" +"If negative, the absolute value specifies how much space instances of the " +"class need *in addition* to the superclass. Use :c:func:" +"`PyObject_GetTypeData` to get a pointer to subclass-specific memory reserved " +"this way." +msgstr "" + +#: ../Doc/c-api/type.rst:401 +msgid "Previously, this field could not be negative." +msgstr "" + +#: ../Doc/c-api/type.rst:405 +#, fuzzy msgid "" -"Size of the instance in bytes, used to set :c:member:`PyTypeObject." -"tp_basicsize` and :c:member:`PyTypeObject.tp_itemsize`." +"Size of one element of a variable-size type, in bytes. Used to set :c:member:" +"`PyTypeObject.tp_itemsize`. See ``tp_itemsize`` documentation for caveats." msgstr "" "Tamaño de la instancia en bytes, utilizado para establecer :c:member:" "`PyTypeObject.tp_basicsize` y :c:member:`PyTypeObject.tp_itemsize`." -#: ../Doc/c-api/type.rst:247 +#: ../Doc/c-api/type.rst:409 +msgid "" +"If zero, :c:member:`~PyTypeObject.tp_itemsize` is inherited. Extending " +"arbitrary variable-sized classes is dangerous, since some types use a fixed " +"offset for variable-sized memory, which can then overlap fixed-sized memory " +"used by a subclass. To help prevent mistakes, inheriting ``itemsize`` is " +"only possible in the following situations:" +msgstr "" + +#: ../Doc/c-api/type.rst:416 +#, fuzzy +msgid "" +"The base is not variable-sized (its :c:member:`~PyTypeObject.tp_itemsize`)." +msgstr "" +"Nombre del tipo, utilizado para establecer :c:member:`PyTypeObject.tp_name`." + +#: ../Doc/c-api/type.rst:418 +msgid "" +"The requested :c:member:`PyType_Spec.basicsize` is positive, suggesting that " +"the memory layout of the base class is known." +msgstr "" + +#: ../Doc/c-api/type.rst:420 +msgid "" +"The requested :c:member:`PyType_Spec.basicsize` is zero, suggesting that the " +"subclass does not access the instance's memory directly." +msgstr "" + +#: ../Doc/c-api/type.rst:423 +msgid "With the :c:macro:`Py_TPFLAGS_ITEMS_AT_END` flag." +msgstr "" + +#: ../Doc/c-api/type.rst:427 msgid "Type flags, used to set :c:member:`PyTypeObject.tp_flags`." msgstr "" "Banderas (*flags*) del tipo, que se usan para establecer :c:member:" "`PyTypeObject.tp_flags`." -#: ../Doc/c-api/type.rst:249 +#: ../Doc/c-api/type.rst:429 msgid "" "If the ``Py_TPFLAGS_HEAPTYPE`` flag is not set, :c:func:" "`PyType_FromSpecWithBases` sets it automatically." @@ -398,7 +616,7 @@ msgstr "" "Si el indicador ``Py_TPFLAGS_HEAPTYPE`` no está establecido, :c:func:" "`PyType_FromSpecWithBases` lo establece automáticamente." -#: ../Doc/c-api/type.rst:254 +#: ../Doc/c-api/type.rst:434 msgid "" "Array of :c:type:`PyType_Slot` structures. Terminated by the special slot " "value ``{0, NULL}``." @@ -406,7 +624,11 @@ msgstr "" "Arreglo de estructuras :c:type:`PyType_Slot`. Terminado por el valor de " "ranura especial ``{0, NULL}``." -#: ../Doc/c-api/type.rst:259 +#: ../Doc/c-api/type.rst:437 +msgid "Each slot ID should be specified at most once." +msgstr "" + +#: ../Doc/c-api/type.rst:447 msgid "" "Structure defining optional functionality of a type, containing a slot ID " "and a value pointer." @@ -414,11 +636,11 @@ msgstr "" "Estructura que define la funcionalidad opcional de un tipo, que contiene una " "ranura ID y un puntero de valor." -#: ../Doc/c-api/type.rst:264 +#: ../Doc/c-api/type.rst:452 msgid "A slot ID." msgstr "Una ranura ID." -#: ../Doc/c-api/type.rst:266 +#: ../Doc/c-api/type.rst:454 msgid "" "Slot IDs are named like the field names of the structures :c:type:" "`PyTypeObject`, :c:type:`PyNumberMethods`, :c:type:`PySequenceMethods`, :c:" @@ -430,20 +652,20 @@ msgstr "" "`PySequenceMethods`, :c:type:`PyMappingMethods` y :c:type:`PyAsyncMethods` " "con un prefijo ``Py_`` agregado. Por ejemplo, use:" -#: ../Doc/c-api/type.rst:272 +#: ../Doc/c-api/type.rst:460 msgid "``Py_tp_dealloc`` to set :c:member:`PyTypeObject.tp_dealloc`" msgstr "``Py_tp_dealloc`` para establecer :c:member:`PyTypeObject.tp_dealloc`" -#: ../Doc/c-api/type.rst:273 +#: ../Doc/c-api/type.rst:461 msgid "``Py_nb_add`` to set :c:member:`PyNumberMethods.nb_add`" msgstr "``Py_nb_add`` para establecer :c:member:`PyNumberMethods.nb_add`" -#: ../Doc/c-api/type.rst:274 +#: ../Doc/c-api/type.rst:462 msgid "``Py_sq_length`` to set :c:member:`PySequenceMethods.sq_length`" msgstr "" "``Py_sq_length`` para establecer :c:member:`PySequenceMethods.sq_length`" -#: ../Doc/c-api/type.rst:276 +#: ../Doc/c-api/type.rst:464 msgid "" "The following fields cannot be set at all using :c:type:`PyType_Spec` and :c:" "type:`PyType_Slot`:" @@ -451,47 +673,49 @@ msgstr "" "Los siguientes campos no se pueden configurar en absoluto usando :c:type:" "`PyType_Spec` y :c:type:`PyType_Slot`:" -#: ../Doc/c-api/type.rst:279 +#: ../Doc/c-api/type.rst:467 msgid ":c:member:`~PyTypeObject.tp_dict`" msgstr ":c:member:`~PyTypeObject.tp_dict`" -#: ../Doc/c-api/type.rst:280 +#: ../Doc/c-api/type.rst:468 msgid ":c:member:`~PyTypeObject.tp_mro`" msgstr ":c:member:`~PyTypeObject.tp_mro`" -#: ../Doc/c-api/type.rst:281 +#: ../Doc/c-api/type.rst:469 msgid ":c:member:`~PyTypeObject.tp_cache`" msgstr ":c:member:`~PyTypeObject.tp_cache`" -#: ../Doc/c-api/type.rst:282 +#: ../Doc/c-api/type.rst:470 msgid ":c:member:`~PyTypeObject.tp_subclasses`" msgstr ":c:member:`~PyTypeObject.tp_subclasses`" -#: ../Doc/c-api/type.rst:283 +#: ../Doc/c-api/type.rst:471 msgid ":c:member:`~PyTypeObject.tp_weaklist`" msgstr ":c:member:`~PyTypeObject.tp_weaklist`" -#: ../Doc/c-api/type.rst:284 +#: ../Doc/c-api/type.rst:472 msgid ":c:member:`~PyTypeObject.tp_vectorcall`" msgstr ":c:member:`~PyTypeObject.tp_vectorcall`" -#: ../Doc/c-api/type.rst:285 +#: ../Doc/c-api/type.rst:473 +#, fuzzy msgid "" -":c:member:`~PyTypeObject.tp_weaklistoffset` (see :ref:`PyMemberDef " -"`)" +":c:member:`~PyTypeObject.tp_weaklistoffset` (use :c:macro:" +"`Py_TPFLAGS_MANAGED_WEAKREF` instead)" msgstr "" ":c:member:`~PyTypeObject.tp_weaklistoffset` (vea :ref:`PyMemberDef " "`)" -#: ../Doc/c-api/type.rst:287 +#: ../Doc/c-api/type.rst:475 +#, fuzzy msgid "" -":c:member:`~PyTypeObject.tp_dictoffset` (see :ref:`PyMemberDef `)" +":c:member:`~PyTypeObject.tp_dictoffset` (use :c:macro:" +"`Py_TPFLAGS_MANAGED_DICT` instead)" msgstr "" ":c:member:`~PyTypeObject.tp_dictoffset` (vea :ref:`PyMemberDef `)" -#: ../Doc/c-api/type.rst:289 +#: ../Doc/c-api/type.rst:477 msgid "" ":c:member:`~PyTypeObject.tp_vectorcall_offset` (see :ref:`PyMemberDef " "`)" @@ -499,31 +723,34 @@ msgstr "" ":c:member:`~PyTypeObject.tp_vectorcall_offset` (vea :ref:`PyMemberDef " "`)" -#: ../Doc/c-api/type.rst:292 +#: ../Doc/c-api/type.rst:480 +#, fuzzy msgid "" "Setting :c:data:`Py_tp_bases` or :c:data:`Py_tp_base` may be problematic on " -"some platforms. To avoid issues, use the *bases* argument of :py:func:" +"some platforms. To avoid issues, use the *bases* argument of :c:func:" "`PyType_FromSpecWithBases` instead." msgstr "" "Estableciendo :c:data:`Py_tp_bases` o :c:data:`Py_tp_base` puede ser " "problemático en algunas plataformas. Para evitar problemas, use el argumento " "*bases* de :py:func:`PyType_FromSpecWithBases` en su lugar." -#: ../Doc/c-api/type.rst:299 +#: ../Doc/c-api/type.rst:487 msgid "Slots in :c:type:`PyBufferProcs` may be set in the unlimited API." msgstr "" "Las ranuras en :c:type:`PyBufferProcs` se pueden configurar en la API " "ilimitada." -#: ../Doc/c-api/type.rst:301 +#: ../Doc/c-api/type.rst:489 +#, fuzzy msgid "" ":c:member:`~PyBufferProcs.bf_getbuffer` and :c:member:`~PyBufferProcs." -"bf_releasebuffer` are now available under the limited API." +"bf_releasebuffer` are now available under the :ref:`limited API `." msgstr "" ":c:member:`~PyBufferProcs.bf_getbuffer` and :c:member:`~PyBufferProcs." "bf_releasebuffer` ahora están disponibles en la API limitada." -#: ../Doc/c-api/type.rst:308 +#: ../Doc/c-api/type.rst:496 msgid "" "The desired value of the slot. In most cases, this is a pointer to a " "function." @@ -531,6 +758,15 @@ msgstr "" "El valor deseado de la ranura. En la mayoría de los casos, este es un " "puntero a una función." -#: ../Doc/c-api/type.rst:311 +#: ../Doc/c-api/type.rst:499 msgid "Slots other than ``Py_tp_doc`` may not be ``NULL``." msgstr "Las ranuras que no sean ``Py_tp_doc`` pueden no ser ``NULL``." + +#: ../Doc/c-api/type.rst:8 +#, fuzzy +msgid "object" +msgstr "Objetos tipo" + +#: ../Doc/c-api/type.rst:8 +msgid "type" +msgstr "" diff --git a/c-api/typehints.po b/c-api/typehints.po index b118013c8d..cbd11d68ca 100644 --- a/c-api/typehints.po +++ b/c-api/typehints.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python en Español 3.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-11-16 22:14-0600\n" "Last-Translator: Erick G. Islas Osuna \n" "Language: es\n" @@ -17,7 +17,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/typehints.rst:6 msgid "Objects for Type Hinting" @@ -66,7 +66,8 @@ msgid "Here's an example of how to make an extension type generic::" msgstr "Aquí hay un ejemplo sobre cómo hacer un tipo de extensión genérica::" #: ../Doc/c-api/typehints.rst:38 -msgid "The data model method :meth:`__class_getitem__`." +#, fuzzy +msgid "The data model method :meth:`~object.__class_getitem__`." msgstr "El método del modelo de datos :meth:`__class_getitem__`." #: ../Doc/c-api/typehints.rst:44 diff --git a/c-api/typeobj.po b/c-api/typeobj.po index 4bf7485054..f4e1cebcf7 100644 --- a/c-api/typeobj.po +++ b/c-api/typeobj.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-03 04:57-0400\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/typeobj.rst:6 msgid "Type Objects" @@ -84,7 +83,7 @@ msgstr "\"ranuras *tp*\" (*tp slots*)" msgid "PyTypeObject Slot [#slots]_" msgstr "Ranura ``PyTypeObject`` [#slots]_" -#: ../Doc/c-api/typeobj.rst:40 ../Doc/c-api/typeobj.rst:193 +#: ../Doc/c-api/typeobj.rst:40 ../Doc/c-api/typeobj.rst:201 msgid ":ref:`Type `" msgstr ":ref:`Type `" @@ -151,7 +150,7 @@ msgstr ":c:member:`~PyTypeObject.tp_basicsize`" #: ../Doc/c-api/typeobj.rst ../Doc/c-api/typeobj.rst:46 #: ../Doc/c-api/typeobj.rst:48 ../Doc/c-api/typeobj.rst:52 #: ../Doc/c-api/typeobj.rst:99 ../Doc/c-api/typeobj.rst:120 -#: ../Doc/c-api/typeobj.rst:408 +#: ../Doc/c-api/typeobj.rst:416 #, fuzzy msgid ":c:type:`Py_ssize_t`" msgstr ":c:type:`ssizeargfunc`" @@ -165,7 +164,7 @@ msgid ":c:member:`~PyTypeObject.tp_dealloc`" msgstr ":c:member:`~PyTypeObject.tp_dealloc`" #: ../Doc/c-api/typeobj.rst:50 ../Doc/c-api/typeobj.rst:142 -#: ../Doc/c-api/typeobj.rst:146 ../Doc/c-api/typeobj.rst:338 +#: ../Doc/c-api/typeobj.rst:146 ../Doc/c-api/typeobj.rst:346 msgid ":c:type:`destructor`" msgstr ":c:type:`destructor`" @@ -177,7 +176,7 @@ msgstr ":c:member:`~PyTypeObject.tp_vectorcall_offset`" msgid "(:c:member:`~PyTypeObject.tp_getattr`)" msgstr "(:c:member:`~PyTypeObject.tp_getattr`)" -#: ../Doc/c-api/typeobj.rst:54 ../Doc/c-api/typeobj.rst:362 +#: ../Doc/c-api/typeobj.rst:54 ../Doc/c-api/typeobj.rst:370 msgid ":c:type:`getattrfunc`" msgstr ":c:type:`getattrfunc`" @@ -196,7 +195,7 @@ msgstr "G" msgid "(:c:member:`~PyTypeObject.tp_setattr`)" msgstr "(:c:member:`~PyTypeObject.tp_setattr`)" -#: ../Doc/c-api/typeobj.rst:57 ../Doc/c-api/typeobj.rst:367 +#: ../Doc/c-api/typeobj.rst:57 ../Doc/c-api/typeobj.rst:375 msgid ":c:type:`setattrfunc`" msgstr ":c:type:`setattrfunc`" @@ -228,7 +227,7 @@ msgid ":c:member:`~PyTypeObject.tp_repr`" msgstr ":c:member:`~PyTypeObject.tp_repr`" #: ../Doc/c-api/typeobj.rst:62 ../Doc/c-api/typeobj.rst:74 -#: ../Doc/c-api/typeobj.rst:360 +#: ../Doc/c-api/typeobj.rst:368 msgid ":c:type:`reprfunc`" msgstr ":c:type:`reprfunc`" @@ -264,7 +263,7 @@ msgstr ":c:type:`PyMappingMethods` *" msgid ":c:member:`~PyTypeObject.tp_hash`" msgstr ":c:member:`~PyTypeObject.tp_hash`" -#: ../Doc/c-api/typeobj.rst:70 ../Doc/c-api/typeobj.rst:396 +#: ../Doc/c-api/typeobj.rst:70 ../Doc/c-api/typeobj.rst:404 msgid ":c:type:`hashfunc`" msgstr ":c:type:`hashfunc`" @@ -276,8 +275,8 @@ msgstr "__hash__" msgid ":c:member:`~PyTypeObject.tp_call`" msgstr ":c:member:`~PyTypeObject.tp_call`" -#: ../Doc/c-api/typeobj.rst:72 ../Doc/c-api/typeobj.rst:229 -#: ../Doc/c-api/typeobj.rst:232 ../Doc/c-api/typeobj.rst:432 +#: ../Doc/c-api/typeobj.rst:72 ../Doc/c-api/typeobj.rst:237 +#: ../Doc/c-api/typeobj.rst:240 ../Doc/c-api/typeobj.rst:440 msgid ":c:type:`ternaryfunc`" msgstr ":c:type:`ternaryfunc`" @@ -297,7 +296,7 @@ msgstr "__str__" msgid ":c:member:`~PyTypeObject.tp_getattro`" msgstr ":c:member:`~PyTypeObject.tp_getattro`" -#: ../Doc/c-api/typeobj.rst:76 ../Doc/c-api/typeobj.rst:373 +#: ../Doc/c-api/typeobj.rst:76 ../Doc/c-api/typeobj.rst:381 msgid ":c:type:`getattrofunc`" msgstr ":c:type:`getattrofunc`" @@ -305,7 +304,7 @@ msgstr ":c:type:`getattrofunc`" msgid ":c:member:`~PyTypeObject.tp_setattro`" msgstr ":c:member:`~PyTypeObject.tp_setattro`" -#: ../Doc/c-api/typeobj.rst:79 ../Doc/c-api/typeobj.rst:378 +#: ../Doc/c-api/typeobj.rst:79 ../Doc/c-api/typeobj.rst:386 msgid ":c:type:`setattrofunc`" msgstr ":c:type:`setattrofunc`" @@ -344,7 +343,7 @@ msgstr "__doc__" msgid ":c:member:`~PyTypeObject.tp_traverse`" msgstr ":c:member:`~PyTypeObject.tp_traverse`" -#: ../Doc/c-api/typeobj.rst:88 ../Doc/c-api/typeobj.rst:342 +#: ../Doc/c-api/typeobj.rst:88 ../Doc/c-api/typeobj.rst:350 msgid ":c:type:`traverseproc`" msgstr ":c:type:`traverseproc`" @@ -353,7 +352,7 @@ msgid ":c:member:`~PyTypeObject.tp_clear`" msgstr ":c:member:`~PyTypeObject.tp_clear`" #: ../Doc/c-api/typeobj.rst:90 ../Doc/c-api/typeobj.rst:130 -#: ../Doc/c-api/typeobj.rst:240 ../Doc/c-api/typeobj.rst:421 +#: ../Doc/c-api/typeobj.rst:248 ../Doc/c-api/typeobj.rst:429 msgid ":c:type:`inquiry`" msgstr ":c:type:`inquiry`" @@ -361,7 +360,7 @@ msgstr ":c:type:`inquiry`" msgid ":c:member:`~PyTypeObject.tp_richcompare`" msgstr ":c:member:`~PyTypeObject.tp_richcompare`" -#: ../Doc/c-api/typeobj.rst:92 ../Doc/c-api/typeobj.rst:398 +#: ../Doc/c-api/typeobj.rst:92 ../Doc/c-api/typeobj.rst:406 msgid ":c:type:`richcmpfunc`" msgstr ":c:type:`richcmpfunc`" @@ -370,14 +369,15 @@ msgid "__lt__, __le__, __eq__, __ne__, __gt__, __ge__" msgstr "__lt__, __le__, __eq__, __ne__, __gt__, __ge__" #: ../Doc/c-api/typeobj.rst:99 -msgid ":c:member:`~PyTypeObject.tp_weaklistoffset`" +#, fuzzy +msgid "(:c:member:`~PyTypeObject.tp_weaklistoffset`)" msgstr ":c:member:`~PyTypeObject.tp_weaklistoffset`" #: ../Doc/c-api/typeobj.rst:101 msgid ":c:member:`~PyTypeObject.tp_iter`" msgstr ":c:member:`~PyTypeObject.tp_iter`" -#: ../Doc/c-api/typeobj.rst:101 ../Doc/c-api/typeobj.rst:404 +#: ../Doc/c-api/typeobj.rst:101 ../Doc/c-api/typeobj.rst:412 msgid ":c:type:`getiterfunc`" msgstr ":c:type:`getiterfunc`" @@ -389,7 +389,7 @@ msgstr "__iter__" msgid ":c:member:`~PyTypeObject.tp_iternext`" msgstr ":c:member:`~PyTypeObject.tp_iternext`" -#: ../Doc/c-api/typeobj.rst:103 ../Doc/c-api/typeobj.rst:406 +#: ../Doc/c-api/typeobj.rst:103 ../Doc/c-api/typeobj.rst:414 msgid ":c:type:`iternextfunc`" msgstr ":c:type:`iternextfunc`" @@ -439,15 +439,15 @@ msgstr ":c:member:`~PyTypeObject.tp_dict`" #: ../Doc/c-api/typeobj.rst ../Doc/c-api/typeobj.rst:113 #: ../Doc/c-api/typeobj.rst:132 ../Doc/c-api/typeobj.rst:134 -#: ../Doc/c-api/typeobj.rst:136 ../Doc/c-api/typeobj.rst:138 -#: ../Doc/c-api/typeobj.rst:140 ../Doc/c-api/typeobj.rst:333 -#: ../Doc/c-api/typeobj.rst:348 ../Doc/c-api/typeobj.rst:360 -#: ../Doc/c-api/typeobj.rst:362 ../Doc/c-api/typeobj.rst:373 -#: ../Doc/c-api/typeobj.rst:384 ../Doc/c-api/typeobj.rst:396 -#: ../Doc/c-api/typeobj.rst:398 ../Doc/c-api/typeobj.rst:404 -#: ../Doc/c-api/typeobj.rst:406 ../Doc/c-api/typeobj.rst:408 -#: ../Doc/c-api/typeobj.rst:423 ../Doc/c-api/typeobj.rst:427 -#: ../Doc/c-api/typeobj.rst:432 ../Doc/c-api/typeobj.rst:438 +#: ../Doc/c-api/typeobj.rst:136 ../Doc/c-api/typeobj.rst:140 +#: ../Doc/c-api/typeobj.rst:341 ../Doc/c-api/typeobj.rst:356 +#: ../Doc/c-api/typeobj.rst:368 ../Doc/c-api/typeobj.rst:370 +#: ../Doc/c-api/typeobj.rst:381 ../Doc/c-api/typeobj.rst:392 +#: ../Doc/c-api/typeobj.rst:404 ../Doc/c-api/typeobj.rst:406 +#: ../Doc/c-api/typeobj.rst:412 ../Doc/c-api/typeobj.rst:414 +#: ../Doc/c-api/typeobj.rst:416 ../Doc/c-api/typeobj.rst:431 +#: ../Doc/c-api/typeobj.rst:435 ../Doc/c-api/typeobj.rst:440 +#: ../Doc/c-api/typeobj.rst:446 msgid ":c:type:`PyObject` *" msgstr ":c:type:`PyObject` *" @@ -459,7 +459,7 @@ msgstr "__dict__" msgid ":c:member:`~PyTypeObject.tp_descr_get`" msgstr ":c:member:`~PyTypeObject.tp_descr_get`" -#: ../Doc/c-api/typeobj.rst:115 ../Doc/c-api/typeobj.rst:384 +#: ../Doc/c-api/typeobj.rst:115 ../Doc/c-api/typeobj.rst:392 msgid ":c:type:`descrgetfunc`" msgstr ":c:type:`descrgetfunc`" @@ -471,7 +471,7 @@ msgstr "__get__" msgid ":c:member:`~PyTypeObject.tp_descr_set`" msgstr ":c:member:`~PyTypeObject.tp_descr_set`" -#: ../Doc/c-api/typeobj.rst:117 ../Doc/c-api/typeobj.rst:390 +#: ../Doc/c-api/typeobj.rst:117 ../Doc/c-api/typeobj.rst:398 msgid ":c:type:`descrsetfunc`" msgstr ":c:type:`descrsetfunc`" @@ -480,14 +480,15 @@ msgid "__set__, __delete__" msgstr "__set__, __delete__" #: ../Doc/c-api/typeobj.rst:120 -msgid ":c:member:`~PyTypeObject.tp_dictoffset`" +#, fuzzy +msgid "(:c:member:`~PyTypeObject.tp_dictoffset`)" msgstr ":c:member:`~PyTypeObject.tp_dictoffset`" #: ../Doc/c-api/typeobj.rst:122 msgid ":c:member:`~PyTypeObject.tp_init`" msgstr ":c:member:`~PyTypeObject.tp_init`" -#: ../Doc/c-api/typeobj.rst:122 ../Doc/c-api/typeobj.rst:354 +#: ../Doc/c-api/typeobj.rst:122 ../Doc/c-api/typeobj.rst:362 msgid ":c:type:`initproc`" msgstr ":c:type:`initproc`" @@ -499,7 +500,7 @@ msgstr "__init__" msgid ":c:member:`~PyTypeObject.tp_alloc`" msgstr ":c:member:`~PyTypeObject.tp_alloc`" -#: ../Doc/c-api/typeobj.rst:124 ../Doc/c-api/typeobj.rst:333 +#: ../Doc/c-api/typeobj.rst:124 ../Doc/c-api/typeobj.rst:341 msgid ":c:type:`allocfunc`" msgstr ":c:type:`allocfunc`" @@ -507,7 +508,7 @@ msgstr ":c:type:`allocfunc`" msgid ":c:member:`~PyTypeObject.tp_new`" msgstr ":c:member:`~PyTypeObject.tp_new`" -#: ../Doc/c-api/typeobj.rst:126 ../Doc/c-api/typeobj.rst:348 +#: ../Doc/c-api/typeobj.rst:126 ../Doc/c-api/typeobj.rst:356 msgid ":c:type:`newfunc`" msgstr ":c:type:`newfunc`" @@ -519,7 +520,7 @@ msgstr "__new__" msgid ":c:member:`~PyTypeObject.tp_free`" msgstr ":c:member:`~PyTypeObject.tp_free`" -#: ../Doc/c-api/typeobj.rst:128 ../Doc/c-api/typeobj.rst:340 +#: ../Doc/c-api/typeobj.rst:128 ../Doc/c-api/typeobj.rst:348 msgid ":c:type:`freefunc`" msgstr ":c:type:`freefunc`" @@ -555,6 +556,12 @@ msgstr "[:c:member:`~PyTypeObject.tp_cache`]" msgid "[:c:member:`~PyTypeObject.tp_subclasses`]" msgstr "[:c:member:`~PyTypeObject.tp_subclasses`]" +#: ../Doc/c-api/typeobj.rst ../Doc/c-api/typeobj.rst:138 +#: ../Doc/c-api/typeobj.rst:279 ../Doc/c-api/typeobj.rst:346 +#: ../Doc/c-api/typeobj.rst:348 ../Doc/c-api/typeobj.rst:429 +msgid "void *" +msgstr "void *" + #: ../Doc/c-api/typeobj.rst:138 msgid "__subclasses__" msgstr "__subclasses__" @@ -591,40 +598,59 @@ msgstr ":c:member:`~PyTypeObject.tp_vectorcall`" msgid ":c:type:`vectorcallfunc`" msgstr ":c:type:`vectorcallfunc`" -#: ../Doc/c-api/typeobj.rst:152 +#: ../Doc/c-api/typeobj.rst:150 +#, fuzzy +msgid "[:c:member:`~PyTypeObject.tp_watched`]" +msgstr "[:c:member:`~PyTypeObject.tp_cache`]" + +#: ../Doc/c-api/typeobj.rst:150 +#, fuzzy +msgid "unsigned char" +msgstr "unsigned int" + +#: ../Doc/c-api/typeobj.rst:155 msgid "" -"A slot name in parentheses indicates it is (effectively) deprecated. Names " -"in angle brackets should be treated as read-only. Names in square brackets " -"are for internal use only. \"\" (as a prefix) means the field is required " -"(must be non-``NULL``)." +"**()**: A slot name in parentheses indicates it is (effectively) deprecated." msgstr "" -"Un nombre de ranura entre paréntesis indica que está (efectivamente) en " -"desuso. Los nombres entre paréntesis angulares deben tratarse como de solo " -"lectura. Los nombres entre corchetes son solo para uso interno. " -"\"\" (como prefijo) significa que el campo es obligatorio (no debe ser " -"``NULL``)." -#: ../Doc/c-api/typeobj.rst:156 +#: ../Doc/c-api/typeobj.rst:157 +msgid "" +"**<>**: Names in angle brackets should be initially set to ``NULL`` and " +"treated as read-only." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:160 +msgid "**[]**: Names in square brackets are for internal use only." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:162 +msgid "" +"**** (as a prefix) means the field is required (must be non-``NULL``)." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:164 msgid "Columns:" msgstr "Columnas:" -#: ../Doc/c-api/typeobj.rst:158 -msgid "**\"O\"**: set on :c:type:`PyBaseObject_Type`" +#: ../Doc/c-api/typeobj.rst:166 +#, fuzzy +msgid "**\"O\"**: set on :c:data:`PyBaseObject_Type`" msgstr "**\"O\"**: establecido en :c:type:`PyBaseObject_Type`" -#: ../Doc/c-api/typeobj.rst:160 -msgid "**\"T\"**: set on :c:type:`PyType_Type`" +#: ../Doc/c-api/typeobj.rst:168 +#, fuzzy +msgid "**\"T\"**: set on :c:data:`PyType_Type`" msgstr "**\"T\"**: establecido en :c:type:`PyType_Type`" -#: ../Doc/c-api/typeobj.rst:162 +#: ../Doc/c-api/typeobj.rst:170 msgid "**\"D\"**: default (if slot is set to ``NULL``)" msgstr "**\"D\"**: por defecto (si la ranura está establecida como ``NULL``)" -#: ../Doc/c-api/typeobj.rst:172 +#: ../Doc/c-api/typeobj.rst:180 msgid "**\"I\"**: inheritance" msgstr "**\"I\"**: herencia" -#: ../Doc/c-api/typeobj.rst:181 +#: ../Doc/c-api/typeobj.rst:189 msgid "" "Note that some slots are effectively inherited through the normal attribute " "lookup chain." @@ -632,495 +658,489 @@ msgstr "" "Tenga en cuenta que algunos espacios se heredan efectivamente a través de la " "cadena de búsqueda de atributos normal." -#: ../Doc/c-api/typeobj.rst:187 +#: ../Doc/c-api/typeobj.rst:195 msgid "sub-slots" msgstr "sub-ranuras (*sub-slots*)" -#: ../Doc/c-api/typeobj.rst:193 +#: ../Doc/c-api/typeobj.rst:201 msgid "Slot" msgstr "Ranuras (*Slot*)" -#: ../Doc/c-api/typeobj.rst:193 +#: ../Doc/c-api/typeobj.rst:201 msgid "special methods" msgstr "métodos especiales" -#: ../Doc/c-api/typeobj.rst:196 +#: ../Doc/c-api/typeobj.rst:204 msgid ":c:member:`~PyAsyncMethods.am_await`" msgstr ":c:member:`~PyAsyncMethods.am_await`" -#: ../Doc/c-api/typeobj.rst:196 ../Doc/c-api/typeobj.rst:198 -#: ../Doc/c-api/typeobj.rst:200 ../Doc/c-api/typeobj.rst:234 -#: ../Doc/c-api/typeobj.rst:236 ../Doc/c-api/typeobj.rst:238 -#: ../Doc/c-api/typeobj.rst:242 ../Doc/c-api/typeobj.rst:269 -#: ../Doc/c-api/typeobj.rst:273 ../Doc/c-api/typeobj.rst:283 -#: ../Doc/c-api/typeobj.rst:423 +#: ../Doc/c-api/typeobj.rst:204 ../Doc/c-api/typeobj.rst:206 +#: ../Doc/c-api/typeobj.rst:208 ../Doc/c-api/typeobj.rst:242 +#: ../Doc/c-api/typeobj.rst:244 ../Doc/c-api/typeobj.rst:246 +#: ../Doc/c-api/typeobj.rst:250 ../Doc/c-api/typeobj.rst:277 +#: ../Doc/c-api/typeobj.rst:281 ../Doc/c-api/typeobj.rst:291 +#: ../Doc/c-api/typeobj.rst:431 msgid ":c:type:`unaryfunc`" msgstr ":c:type:`unaryfunc`" -#: ../Doc/c-api/typeobj.rst:196 +#: ../Doc/c-api/typeobj.rst:204 msgid "__await__" msgstr "__await__" -#: ../Doc/c-api/typeobj.rst:198 +#: ../Doc/c-api/typeobj.rst:206 msgid ":c:member:`~PyAsyncMethods.am_aiter`" msgstr ":c:member:`~PyAsyncMethods.am_aiter`" -#: ../Doc/c-api/typeobj.rst:198 +#: ../Doc/c-api/typeobj.rst:206 msgid "__aiter__" msgstr "__aiter__" -#: ../Doc/c-api/typeobj.rst:200 +#: ../Doc/c-api/typeobj.rst:208 msgid ":c:member:`~PyAsyncMethods.am_anext`" msgstr ":c:member:`~PyAsyncMethods.am_anext`" -#: ../Doc/c-api/typeobj.rst:200 +#: ../Doc/c-api/typeobj.rst:208 msgid "__anext__" msgstr "__anext__" -#: ../Doc/c-api/typeobj.rst:202 +#: ../Doc/c-api/typeobj.rst:210 msgid ":c:member:`~PyAsyncMethods.am_send`" msgstr ":c:member:`~PyAsyncMethods.am_send`" -#: ../Doc/c-api/typeobj.rst:202 +#: ../Doc/c-api/typeobj.rst:210 msgid ":c:type:`sendfunc`" msgstr ":c:type:`sendfunc`" -#: ../Doc/c-api/typeobj.rst:206 +#: ../Doc/c-api/typeobj.rst:214 msgid ":c:member:`~PyNumberMethods.nb_add`" msgstr ":c:member:`~PyNumberMethods.nb_add`" -#: ../Doc/c-api/typeobj.rst:206 ../Doc/c-api/typeobj.rst:209 -#: ../Doc/c-api/typeobj.rst:211 ../Doc/c-api/typeobj.rst:214 -#: ../Doc/c-api/typeobj.rst:216 ../Doc/c-api/typeobj.rst:219 -#: ../Doc/c-api/typeobj.rst:221 ../Doc/c-api/typeobj.rst:224 -#: ../Doc/c-api/typeobj.rst:226 ../Doc/c-api/typeobj.rst:244 -#: ../Doc/c-api/typeobj.rst:247 ../Doc/c-api/typeobj.rst:249 -#: ../Doc/c-api/typeobj.rst:252 ../Doc/c-api/typeobj.rst:254 -#: ../Doc/c-api/typeobj.rst:257 ../Doc/c-api/typeobj.rst:259 -#: ../Doc/c-api/typeobj.rst:262 ../Doc/c-api/typeobj.rst:264 -#: ../Doc/c-api/typeobj.rst:267 ../Doc/c-api/typeobj.rst:275 -#: ../Doc/c-api/typeobj.rst:277 ../Doc/c-api/typeobj.rst:279 -#: ../Doc/c-api/typeobj.rst:281 ../Doc/c-api/typeobj.rst:285 -#: ../Doc/c-api/typeobj.rst:288 ../Doc/c-api/typeobj.rst:294 -#: ../Doc/c-api/typeobj.rst:303 ../Doc/c-api/typeobj.rst:314 -#: ../Doc/c-api/typeobj.rst:427 +#: ../Doc/c-api/typeobj.rst:214 ../Doc/c-api/typeobj.rst:217 +#: ../Doc/c-api/typeobj.rst:219 ../Doc/c-api/typeobj.rst:222 +#: ../Doc/c-api/typeobj.rst:224 ../Doc/c-api/typeobj.rst:227 +#: ../Doc/c-api/typeobj.rst:229 ../Doc/c-api/typeobj.rst:232 +#: ../Doc/c-api/typeobj.rst:234 ../Doc/c-api/typeobj.rst:252 +#: ../Doc/c-api/typeobj.rst:255 ../Doc/c-api/typeobj.rst:257 +#: ../Doc/c-api/typeobj.rst:260 ../Doc/c-api/typeobj.rst:262 +#: ../Doc/c-api/typeobj.rst:265 ../Doc/c-api/typeobj.rst:267 +#: ../Doc/c-api/typeobj.rst:270 ../Doc/c-api/typeobj.rst:272 +#: ../Doc/c-api/typeobj.rst:275 ../Doc/c-api/typeobj.rst:283 +#: ../Doc/c-api/typeobj.rst:285 ../Doc/c-api/typeobj.rst:287 +#: ../Doc/c-api/typeobj.rst:289 ../Doc/c-api/typeobj.rst:293 +#: ../Doc/c-api/typeobj.rst:296 ../Doc/c-api/typeobj.rst:302 +#: ../Doc/c-api/typeobj.rst:311 ../Doc/c-api/typeobj.rst:322 +#: ../Doc/c-api/typeobj.rst:435 msgid ":c:type:`binaryfunc`" msgstr ":c:type:`binaryfunc`" -#: ../Doc/c-api/typeobj.rst:206 +#: ../Doc/c-api/typeobj.rst:214 msgid "__add__ __radd__" msgstr "__add__ __radd__" -#: ../Doc/c-api/typeobj.rst:209 +#: ../Doc/c-api/typeobj.rst:217 msgid ":c:member:`~PyNumberMethods.nb_inplace_add`" msgstr ":c:member:`~PyNumberMethods.nb_inplace_add`" -#: ../Doc/c-api/typeobj.rst:209 ../Doc/c-api/typeobj.rst:314 +#: ../Doc/c-api/typeobj.rst:217 ../Doc/c-api/typeobj.rst:322 msgid "__iadd__" msgstr "__iadd__" -#: ../Doc/c-api/typeobj.rst:211 +#: ../Doc/c-api/typeobj.rst:219 msgid ":c:member:`~PyNumberMethods.nb_subtract`" msgstr ":c:member:`~PyNumberMethods.nb_subtract`" -#: ../Doc/c-api/typeobj.rst:211 +#: ../Doc/c-api/typeobj.rst:219 msgid "__sub__ __rsub__" msgstr "__sub__ __rsub__" -#: ../Doc/c-api/typeobj.rst:214 +#: ../Doc/c-api/typeobj.rst:222 msgid ":c:member:`~PyNumberMethods.nb_inplace_subtract`" msgstr ":c:member:`~PyNumberMethods.nb_inplace_subtract`" -#: ../Doc/c-api/typeobj.rst:214 +#: ../Doc/c-api/typeobj.rst:222 msgid "__isub__" msgstr "__isub__" -#: ../Doc/c-api/typeobj.rst:216 +#: ../Doc/c-api/typeobj.rst:224 msgid ":c:member:`~PyNumberMethods.nb_multiply`" msgstr ":c:member:`~PyNumberMethods.nb_multiply`" -#: ../Doc/c-api/typeobj.rst:216 +#: ../Doc/c-api/typeobj.rst:224 msgid "__mul__ __rmul__" msgstr "__mul__ __rmul__" -#: ../Doc/c-api/typeobj.rst:219 +#: ../Doc/c-api/typeobj.rst:227 msgid ":c:member:`~PyNumberMethods.nb_inplace_multiply`" msgstr ":c:member:`~PyNumberMethods.nb_inplace_multiply`" -#: ../Doc/c-api/typeobj.rst:219 ../Doc/c-api/typeobj.rst:316 +#: ../Doc/c-api/typeobj.rst:227 ../Doc/c-api/typeobj.rst:324 msgid "__imul__" msgstr "__imul__" -#: ../Doc/c-api/typeobj.rst:221 +#: ../Doc/c-api/typeobj.rst:229 msgid ":c:member:`~PyNumberMethods.nb_remainder`" msgstr ":c:member:`~PyNumberMethods.nb_remainder`" -#: ../Doc/c-api/typeobj.rst:221 +#: ../Doc/c-api/typeobj.rst:229 msgid "__mod__ __rmod__" msgstr "__mod__ __rmod__" -#: ../Doc/c-api/typeobj.rst:224 +#: ../Doc/c-api/typeobj.rst:232 msgid ":c:member:`~PyNumberMethods.nb_inplace_remainder`" msgstr ":c:member:`~PyNumberMethods.nb_inplace_remainder`" -#: ../Doc/c-api/typeobj.rst:224 +#: ../Doc/c-api/typeobj.rst:232 msgid "__imod__" msgstr "__imod__" -#: ../Doc/c-api/typeobj.rst:226 +#: ../Doc/c-api/typeobj.rst:234 msgid ":c:member:`~PyNumberMethods.nb_divmod`" msgstr ":c:member:`~PyNumberMethods.nb_divmod`" -#: ../Doc/c-api/typeobj.rst:226 +#: ../Doc/c-api/typeobj.rst:234 msgid "__divmod__ __rdivmod__" msgstr "__divmod__ __rdivmod__" -#: ../Doc/c-api/typeobj.rst:229 +#: ../Doc/c-api/typeobj.rst:237 msgid ":c:member:`~PyNumberMethods.nb_power`" msgstr ":c:member:`~PyNumberMethods.nb_power`" -#: ../Doc/c-api/typeobj.rst:229 +#: ../Doc/c-api/typeobj.rst:237 msgid "__pow__ __rpow__" msgstr "__pow__ __rpow__" -#: ../Doc/c-api/typeobj.rst:232 +#: ../Doc/c-api/typeobj.rst:240 msgid ":c:member:`~PyNumberMethods.nb_inplace_power`" msgstr ":c:member:`~PyNumberMethods.nb_inplace_power`" -#: ../Doc/c-api/typeobj.rst:232 +#: ../Doc/c-api/typeobj.rst:240 msgid "__ipow__" msgstr "__ipow__" -#: ../Doc/c-api/typeobj.rst:234 +#: ../Doc/c-api/typeobj.rst:242 msgid ":c:member:`~PyNumberMethods.nb_negative`" msgstr ":c:member:`~PyNumberMethods.nb_negative`" -#: ../Doc/c-api/typeobj.rst:234 +#: ../Doc/c-api/typeobj.rst:242 msgid "__neg__" msgstr "__neg__" -#: ../Doc/c-api/typeobj.rst:236 +#: ../Doc/c-api/typeobj.rst:244 msgid ":c:member:`~PyNumberMethods.nb_positive`" msgstr ":c:member:`~PyNumberMethods.nb_positive`" -#: ../Doc/c-api/typeobj.rst:236 +#: ../Doc/c-api/typeobj.rst:244 msgid "__pos__" msgstr "__pos__" -#: ../Doc/c-api/typeobj.rst:238 +#: ../Doc/c-api/typeobj.rst:246 msgid ":c:member:`~PyNumberMethods.nb_absolute`" msgstr ":c:member:`~PyNumberMethods.nb_absolute`" -#: ../Doc/c-api/typeobj.rst:238 +#: ../Doc/c-api/typeobj.rst:246 msgid "__abs__" msgstr "__abs__" -#: ../Doc/c-api/typeobj.rst:240 +#: ../Doc/c-api/typeobj.rst:248 msgid ":c:member:`~PyNumberMethods.nb_bool`" msgstr ":c:member:`~PyNumberMethods.nb_bool`" -#: ../Doc/c-api/typeobj.rst:240 +#: ../Doc/c-api/typeobj.rst:248 msgid "__bool__" msgstr "__bool__" -#: ../Doc/c-api/typeobj.rst:242 +#: ../Doc/c-api/typeobj.rst:250 msgid ":c:member:`~PyNumberMethods.nb_invert`" msgstr ":c:member:`~PyNumberMethods.nb_invert`" -#: ../Doc/c-api/typeobj.rst:242 +#: ../Doc/c-api/typeobj.rst:250 msgid "__invert__" msgstr "__invert__" -#: ../Doc/c-api/typeobj.rst:244 +#: ../Doc/c-api/typeobj.rst:252 msgid ":c:member:`~PyNumberMethods.nb_lshift`" msgstr ":c:member:`~PyNumberMethods.nb_lshift`" -#: ../Doc/c-api/typeobj.rst:244 +#: ../Doc/c-api/typeobj.rst:252 msgid "__lshift__ __rlshift__" msgstr "__lshift__ __rlshift__" -#: ../Doc/c-api/typeobj.rst:247 +#: ../Doc/c-api/typeobj.rst:255 msgid ":c:member:`~PyNumberMethods.nb_inplace_lshift`" msgstr ":c:member:`~PyNumberMethods.nb_inplace_lshift`" -#: ../Doc/c-api/typeobj.rst:247 +#: ../Doc/c-api/typeobj.rst:255 msgid "__ilshift__" msgstr "__ilshift__" -#: ../Doc/c-api/typeobj.rst:249 +#: ../Doc/c-api/typeobj.rst:257 msgid ":c:member:`~PyNumberMethods.nb_rshift`" msgstr ":c:member:`~PyNumberMethods.nb_rshift`" -#: ../Doc/c-api/typeobj.rst:249 +#: ../Doc/c-api/typeobj.rst:257 msgid "__rshift__ __rrshift__" msgstr "__rshift__ __rrshift__" -#: ../Doc/c-api/typeobj.rst:252 +#: ../Doc/c-api/typeobj.rst:260 msgid ":c:member:`~PyNumberMethods.nb_inplace_rshift`" msgstr ":c:member:`~PyNumberMethods.nb_inplace_rshift`" -#: ../Doc/c-api/typeobj.rst:252 +#: ../Doc/c-api/typeobj.rst:260 msgid "__irshift__" msgstr "__irshift__" -#: ../Doc/c-api/typeobj.rst:254 +#: ../Doc/c-api/typeobj.rst:262 msgid ":c:member:`~PyNumberMethods.nb_and`" msgstr ":c:member:`~PyNumberMethods.nb_and`" -#: ../Doc/c-api/typeobj.rst:254 +#: ../Doc/c-api/typeobj.rst:262 msgid "__and__ __rand__" msgstr "__and__ __rand__" -#: ../Doc/c-api/typeobj.rst:257 +#: ../Doc/c-api/typeobj.rst:265 msgid ":c:member:`~PyNumberMethods.nb_inplace_and`" msgstr ":c:member:`~PyNumberMethods.nb_inplace_and`" -#: ../Doc/c-api/typeobj.rst:257 +#: ../Doc/c-api/typeobj.rst:265 msgid "__iand__" msgstr "__iand__" -#: ../Doc/c-api/typeobj.rst:259 +#: ../Doc/c-api/typeobj.rst:267 msgid ":c:member:`~PyNumberMethods.nb_xor`" msgstr ":c:member:`~PyNumberMethods.nb_xor`" -#: ../Doc/c-api/typeobj.rst:259 +#: ../Doc/c-api/typeobj.rst:267 msgid "__xor__ __rxor__" msgstr "__xor__ __rxor__" -#: ../Doc/c-api/typeobj.rst:262 +#: ../Doc/c-api/typeobj.rst:270 msgid ":c:member:`~PyNumberMethods.nb_inplace_xor`" msgstr ":c:member:`~PyNumberMethods.nb_inplace_xor`" -#: ../Doc/c-api/typeobj.rst:262 +#: ../Doc/c-api/typeobj.rst:270 msgid "__ixor__" msgstr "__ixor__" -#: ../Doc/c-api/typeobj.rst:264 +#: ../Doc/c-api/typeobj.rst:272 msgid ":c:member:`~PyNumberMethods.nb_or`" msgstr ":c:member:`~PyNumberMethods.nb_or`" -#: ../Doc/c-api/typeobj.rst:264 +#: ../Doc/c-api/typeobj.rst:272 msgid "__or__ __ror__" msgstr "__or__ __ror__" -#: ../Doc/c-api/typeobj.rst:267 +#: ../Doc/c-api/typeobj.rst:275 msgid ":c:member:`~PyNumberMethods.nb_inplace_or`" msgstr ":c:member:`~PyNumberMethods.nb_inplace_or`" -#: ../Doc/c-api/typeobj.rst:267 +#: ../Doc/c-api/typeobj.rst:275 msgid "__ior__" msgstr "__ior__" -#: ../Doc/c-api/typeobj.rst:269 +#: ../Doc/c-api/typeobj.rst:277 msgid ":c:member:`~PyNumberMethods.nb_int`" msgstr ":c:member:`~PyNumberMethods.nb_int`" -#: ../Doc/c-api/typeobj.rst:269 +#: ../Doc/c-api/typeobj.rst:277 msgid "__int__" msgstr "__int__" -#: ../Doc/c-api/typeobj.rst:271 +#: ../Doc/c-api/typeobj.rst:279 msgid ":c:member:`~PyNumberMethods.nb_reserved`" msgstr ":c:member:`~PyNumberMethods.nb_reserved`" -#: ../Doc/c-api/typeobj.rst ../Doc/c-api/typeobj.rst:271 -#: ../Doc/c-api/typeobj.rst:338 ../Doc/c-api/typeobj.rst:340 -#: ../Doc/c-api/typeobj.rst:421 -msgid "void *" -msgstr "void *" - -#: ../Doc/c-api/typeobj.rst:273 +#: ../Doc/c-api/typeobj.rst:281 msgid ":c:member:`~PyNumberMethods.nb_float`" msgstr ":c:member:`~PyNumberMethods.nb_float`" -#: ../Doc/c-api/typeobj.rst:273 +#: ../Doc/c-api/typeobj.rst:281 msgid "__float__" msgstr "__float__" -#: ../Doc/c-api/typeobj.rst:275 +#: ../Doc/c-api/typeobj.rst:283 msgid ":c:member:`~PyNumberMethods.nb_floor_divide`" msgstr ":c:member:`~PyNumberMethods.nb_floor_divide`" -#: ../Doc/c-api/typeobj.rst:275 +#: ../Doc/c-api/typeobj.rst:283 msgid "__floordiv__" msgstr "__floordiv__" -#: ../Doc/c-api/typeobj.rst:277 +#: ../Doc/c-api/typeobj.rst:285 msgid ":c:member:`~PyNumberMethods.nb_inplace_floor_divide`" msgstr ":c:member:`~PyNumberMethods.nb_inplace_floor_divide`" -#: ../Doc/c-api/typeobj.rst:277 +#: ../Doc/c-api/typeobj.rst:285 msgid "__ifloordiv__" msgstr "__ifloordiv__" -#: ../Doc/c-api/typeobj.rst:279 +#: ../Doc/c-api/typeobj.rst:287 msgid ":c:member:`~PyNumberMethods.nb_true_divide`" msgstr ":c:member:`~PyNumberMethods.nb_true_divide`" -#: ../Doc/c-api/typeobj.rst:279 +#: ../Doc/c-api/typeobj.rst:287 msgid "__truediv__" msgstr "__truediv__" -#: ../Doc/c-api/typeobj.rst:281 +#: ../Doc/c-api/typeobj.rst:289 msgid ":c:member:`~PyNumberMethods.nb_inplace_true_divide`" msgstr ":c:member:`~PyNumberMethods.nb_inplace_true_divide`" -#: ../Doc/c-api/typeobj.rst:281 +#: ../Doc/c-api/typeobj.rst:289 msgid "__itruediv__" msgstr "__itruediv__" -#: ../Doc/c-api/typeobj.rst:283 +#: ../Doc/c-api/typeobj.rst:291 msgid ":c:member:`~PyNumberMethods.nb_index`" msgstr ":c:member:`~PyNumberMethods.nb_index`" -#: ../Doc/c-api/typeobj.rst:283 +#: ../Doc/c-api/typeobj.rst:291 msgid "__index__" msgstr "__index__" -#: ../Doc/c-api/typeobj.rst:285 +#: ../Doc/c-api/typeobj.rst:293 msgid ":c:member:`~PyNumberMethods.nb_matrix_multiply`" msgstr ":c:member:`~PyNumberMethods.nb_matrix_multiply`" -#: ../Doc/c-api/typeobj.rst:285 +#: ../Doc/c-api/typeobj.rst:293 msgid "__matmul__ __rmatmul__" msgstr "__matmul__ __rmatmul__" -#: ../Doc/c-api/typeobj.rst:288 +#: ../Doc/c-api/typeobj.rst:296 msgid ":c:member:`~PyNumberMethods.nb_inplace_matrix_multiply`" msgstr ":c:member:`~PyNumberMethods.nb_inplace_matrix_multiply`" -#: ../Doc/c-api/typeobj.rst:288 +#: ../Doc/c-api/typeobj.rst:296 msgid "__imatmul__" msgstr "__imatmul__" -#: ../Doc/c-api/typeobj.rst:292 +#: ../Doc/c-api/typeobj.rst:300 msgid ":c:member:`~PyMappingMethods.mp_length`" msgstr ":c:member:`~PyMappingMethods.mp_length`" -#: ../Doc/c-api/typeobj.rst:292 ../Doc/c-api/typeobj.rst:301 -#: ../Doc/c-api/typeobj.rst:408 +#: ../Doc/c-api/typeobj.rst:300 ../Doc/c-api/typeobj.rst:309 +#: ../Doc/c-api/typeobj.rst:416 msgid ":c:type:`lenfunc`" msgstr ":c:type:`lenfunc`" -#: ../Doc/c-api/typeobj.rst:292 ../Doc/c-api/typeobj.rst:301 +#: ../Doc/c-api/typeobj.rst:300 ../Doc/c-api/typeobj.rst:309 msgid "__len__" msgstr "__len__" -#: ../Doc/c-api/typeobj.rst:294 +#: ../Doc/c-api/typeobj.rst:302 msgid ":c:member:`~PyMappingMethods.mp_subscript`" msgstr ":c:member:`~PyMappingMethods.mp_subscript`" -#: ../Doc/c-api/typeobj.rst:294 ../Doc/c-api/typeobj.rst:307 +#: ../Doc/c-api/typeobj.rst:302 ../Doc/c-api/typeobj.rst:315 msgid "__getitem__" msgstr "__getitem__" -#: ../Doc/c-api/typeobj.rst:296 +#: ../Doc/c-api/typeobj.rst:304 msgid ":c:member:`~PyMappingMethods.mp_ass_subscript`" msgstr ":c:member:`~PyMappingMethods.mp_ass_subscript`" -#: ../Doc/c-api/typeobj.rst:296 ../Doc/c-api/typeobj.rst:453 +#: ../Doc/c-api/typeobj.rst:304 ../Doc/c-api/typeobj.rst:462 msgid ":c:type:`objobjargproc`" msgstr ":c:type:`objobjargproc`" -#: ../Doc/c-api/typeobj.rst:296 +#: ../Doc/c-api/typeobj.rst:304 msgid "__setitem__, __delitem__" msgstr "__setitem__, __delitem__" -#: ../Doc/c-api/typeobj.rst:301 +#: ../Doc/c-api/typeobj.rst:309 msgid ":c:member:`~PySequenceMethods.sq_length`" msgstr ":c:member:`~PySequenceMethods.sq_length`" -#: ../Doc/c-api/typeobj.rst:303 +#: ../Doc/c-api/typeobj.rst:311 msgid ":c:member:`~PySequenceMethods.sq_concat`" msgstr ":c:member:`~PySequenceMethods.sq_concat`" -#: ../Doc/c-api/typeobj.rst:303 +#: ../Doc/c-api/typeobj.rst:311 msgid "__add__" msgstr "__add__" -#: ../Doc/c-api/typeobj.rst:305 +#: ../Doc/c-api/typeobj.rst:313 msgid ":c:member:`~PySequenceMethods.sq_repeat`" msgstr ":c:member:`~PySequenceMethods.sq_repeat`" -#: ../Doc/c-api/typeobj.rst:305 ../Doc/c-api/typeobj.rst:307 -#: ../Doc/c-api/typeobj.rst:316 ../Doc/c-api/typeobj.rst:438 +#: ../Doc/c-api/typeobj.rst:313 ../Doc/c-api/typeobj.rst:315 +#: ../Doc/c-api/typeobj.rst:324 ../Doc/c-api/typeobj.rst:446 msgid ":c:type:`ssizeargfunc`" msgstr ":c:type:`ssizeargfunc`" -#: ../Doc/c-api/typeobj.rst:305 +#: ../Doc/c-api/typeobj.rst:313 msgid "__mul__" msgstr "__mul__" -#: ../Doc/c-api/typeobj.rst:307 +#: ../Doc/c-api/typeobj.rst:315 msgid ":c:member:`~PySequenceMethods.sq_item`" msgstr ":c:member:`~PySequenceMethods.sq_item`" -#: ../Doc/c-api/typeobj.rst:309 +#: ../Doc/c-api/typeobj.rst:317 msgid ":c:member:`~PySequenceMethods.sq_ass_item`" msgstr ":c:member:`~PySequenceMethods.sq_ass_item`" -#: ../Doc/c-api/typeobj.rst:309 ../Doc/c-api/typeobj.rst:443 +#: ../Doc/c-api/typeobj.rst:317 ../Doc/c-api/typeobj.rst:451 msgid ":c:type:`ssizeobjargproc`" msgstr ":c:type:`ssizeobjargproc`" -#: ../Doc/c-api/typeobj.rst:309 +#: ../Doc/c-api/typeobj.rst:317 msgid "__setitem__ __delitem__" msgstr "__setitem__ __delitem__" -#: ../Doc/c-api/typeobj.rst:312 +#: ../Doc/c-api/typeobj.rst:320 msgid ":c:member:`~PySequenceMethods.sq_contains`" msgstr ":c:member:`~PySequenceMethods.sq_contains`" -#: ../Doc/c-api/typeobj.rst:312 ../Doc/c-api/typeobj.rst:448 +#: ../Doc/c-api/typeobj.rst:320 ../Doc/c-api/typeobj.rst:457 msgid ":c:type:`objobjproc`" msgstr ":c:type:`objobjproc`" -#: ../Doc/c-api/typeobj.rst:312 +#: ../Doc/c-api/typeobj.rst:320 msgid "__contains__" msgstr "__contains__" -#: ../Doc/c-api/typeobj.rst:314 +#: ../Doc/c-api/typeobj.rst:322 msgid ":c:member:`~PySequenceMethods.sq_inplace_concat`" msgstr ":c:member:`~PySequenceMethods.sq_inplace_concat`" -#: ../Doc/c-api/typeobj.rst:316 +#: ../Doc/c-api/typeobj.rst:324 msgid ":c:member:`~PySequenceMethods.sq_inplace_repeat`" msgstr ":c:member:`~PySequenceMethods.sq_inplace_repeat`" -#: ../Doc/c-api/typeobj.rst:320 +#: ../Doc/c-api/typeobj.rst:328 msgid ":c:member:`~PyBufferProcs.bf_getbuffer`" msgstr ":c:member:`~PyBufferProcs.bf_getbuffer`" -#: ../Doc/c-api/typeobj.rst:320 +#: ../Doc/c-api/typeobj.rst:328 msgid ":c:func:`getbufferproc`" msgstr ":c:func:`getbufferproc`" -#: ../Doc/c-api/typeobj.rst:322 +#: ../Doc/c-api/typeobj.rst:330 msgid ":c:member:`~PyBufferProcs.bf_releasebuffer`" msgstr ":c:member:`~PyBufferProcs.bf_releasebuffer`" -#: ../Doc/c-api/typeobj.rst:322 +#: ../Doc/c-api/typeobj.rst:330 msgid ":c:func:`releasebufferproc`" msgstr ":c:func:`releasebufferproc`" -#: ../Doc/c-api/typeobj.rst:328 +#: ../Doc/c-api/typeobj.rst:336 msgid "slot typedefs" msgstr "ranura de *typedefs*" -#: ../Doc/c-api/typeobj.rst:331 +#: ../Doc/c-api/typeobj.rst:339 msgid "typedef" msgstr "typedef" -#: ../Doc/c-api/typeobj.rst:331 +#: ../Doc/c-api/typeobj.rst:339 msgid "Parameter Types" msgstr "Tipos parámetros" -#: ../Doc/c-api/typeobj.rst:331 +#: ../Doc/c-api/typeobj.rst:339 msgid "Return Type" msgstr "Tipo de retorno" -#: ../Doc/c-api/typeobj.rst:338 ../Doc/c-api/typeobj.rst:340 -#: ../Doc/c-api/typeobj.rst:416 +#: ../Doc/c-api/typeobj.rst:346 ../Doc/c-api/typeobj.rst:348 +#: ../Doc/c-api/typeobj.rst:424 msgid "void" msgstr "void" @@ -1128,20 +1148,20 @@ msgstr "void" msgid ":c:type:`visitproc`" msgstr ":c:type:`visitproc`" -#: ../Doc/c-api/typeobj.rst ../Doc/c-api/typeobj.rst:342 -#: ../Doc/c-api/typeobj.rst:354 ../Doc/c-api/typeobj.rst:367 -#: ../Doc/c-api/typeobj.rst:378 ../Doc/c-api/typeobj.rst:390 -#: ../Doc/c-api/typeobj.rst:410 ../Doc/c-api/typeobj.rst:421 -#: ../Doc/c-api/typeobj.rst:443 ../Doc/c-api/typeobj.rst:448 -#: ../Doc/c-api/typeobj.rst:453 +#: ../Doc/c-api/typeobj.rst ../Doc/c-api/typeobj.rst:350 +#: ../Doc/c-api/typeobj.rst:362 ../Doc/c-api/typeobj.rst:375 +#: ../Doc/c-api/typeobj.rst:386 ../Doc/c-api/typeobj.rst:398 +#: ../Doc/c-api/typeobj.rst:418 ../Doc/c-api/typeobj.rst:429 +#: ../Doc/c-api/typeobj.rst:451 ../Doc/c-api/typeobj.rst:457 +#: ../Doc/c-api/typeobj.rst:462 msgid "int" msgstr "int" -#: ../Doc/c-api/typeobj.rst:396 +#: ../Doc/c-api/typeobj.rst:404 msgid "Py_hash_t" msgstr "Py_hash_t" -#: ../Doc/c-api/typeobj.rst:410 +#: ../Doc/c-api/typeobj.rst:418 msgid ":c:type:`getbufferproc`" msgstr ":c:type:`getbufferproc`" @@ -1149,19 +1169,19 @@ msgstr ":c:type:`getbufferproc`" msgid ":c:type:`Py_buffer` *" msgstr ":c:type:`Py_buffer` *" -#: ../Doc/c-api/typeobj.rst:416 +#: ../Doc/c-api/typeobj.rst:424 msgid ":c:type:`releasebufferproc`" msgstr ":c:type:`releasebufferproc`" -#: ../Doc/c-api/typeobj.rst:460 +#: ../Doc/c-api/typeobj.rst:469 msgid "See :ref:`slot-typedefs` below for more detail." msgstr "Vea :ref:`slot-typedefs` abajo para más detalles." -#: ../Doc/c-api/typeobj.rst:464 +#: ../Doc/c-api/typeobj.rst:473 msgid "PyTypeObject Definition" msgstr "Definición de ``PyTypeObject``" -#: ../Doc/c-api/typeobj.rst:466 +#: ../Doc/c-api/typeobj.rst:475 msgid "" "The structure definition for :c:type:`PyTypeObject` can be found in :file:" "`Include/object.h`. For convenience of reference, this repeats the " @@ -1171,18 +1191,19 @@ msgstr "" "en :file:`Include/object.h`. Por conveniencia de referencia, esto repite la " "definición encontrada allí:" -#: ../Doc/c-api/typeobj.rst:476 +#: ../Doc/c-api/typeobj.rst:485 msgid "PyObject Slots" msgstr "Ranuras (*Slots*) ``PyObject``" -#: ../Doc/c-api/typeobj.rst:478 +#: ../Doc/c-api/typeobj.rst:487 #, fuzzy msgid "" "The type object structure extends the :c:type:`PyVarObject` structure. The :" -"attr:`ob_size` field is used for dynamic types (created by :func:`type_new`, " -"usually called from a class statement). Note that :c:data:`PyType_Type` (the " -"metatype) initializes :c:member:`~PyTypeObject.tp_itemsize`, which means " -"that its instances (i.e. type objects) *must* have the :attr:`ob_size` field." +"c:member:`~PyVarObject.ob_size` field is used for dynamic types (created by :" +"c:func:`!type_new`, usually called from a class statement). Note that :c:" +"data:`PyType_Type` (the metatype) initializes :c:member:`~PyTypeObject." +"tp_itemsize`, which means that its instances (i.e. type objects) *must* have " +"the :c:member:`~PyVarObject.ob_size` field." msgstr "" "La estructura de objeto de tipo extiende la estructura :c:type:" "`PyVarObject`. El campo :attr:`ob_size` se usa para tipos dinámicos (creado " @@ -1191,14 +1212,15 @@ msgstr "" "`~PyTypeObject.tp_itemsize`, lo que significa que sus instancias (es decir, " "objetos de tipo) *deben* tener el campo :attr:`ob_size`." -#: ../Doc/c-api/typeobj.rst:487 +#: ../Doc/c-api/typeobj.rst:496 +#, fuzzy msgid "" "This is the type object's reference count, initialized to ``1`` by the " "``PyObject_HEAD_INIT`` macro. Note that for :ref:`statically allocated type " -"objects `, the type's instances (objects whose :attr:`ob_type` " -"points back to the type) do *not* count as references. But for :ref:" -"`dynamically allocated type objects `, the instances *do* count " -"as references." +"objects `, the type's instances (objects whose :c:member:" +"`~PyObject.ob_type` points back to the type) do *not* count as references. " +"But for :ref:`dynamically allocated type objects `, the " +"instances *do* count as references." msgstr "" "Este es el recuento de referencias del objeto de tipo, inicializado a ``1`` " "por la macro ``PyObject_HEAD_INIT``. Tenga en cuenta que para :ref:`objetos " @@ -1207,46 +1229,48 @@ msgstr "" "Pero para :ref:`objetos de tipo asignados dinámicamente `, las " "instancias *sí* cuentan como referencias." -#: ../Doc/c-api/typeobj.rst:494 ../Doc/c-api/typeobj.rst:517 -#: ../Doc/c-api/typeobj.rst:539 ../Doc/c-api/typeobj.rst:553 -#: ../Doc/c-api/typeobj.rst:597 ../Doc/c-api/typeobj.rst:640 -#: ../Doc/c-api/typeobj.rst:698 ../Doc/c-api/typeobj.rst:736 -#: ../Doc/c-api/typeobj.rst:756 ../Doc/c-api/typeobj.rst:773 -#: ../Doc/c-api/typeobj.rst:791 ../Doc/c-api/typeobj.rst:815 -#: ../Doc/c-api/typeobj.rst:832 ../Doc/c-api/typeobj.rst:844 -#: ../Doc/c-api/typeobj.rst:856 ../Doc/c-api/typeobj.rst:889 -#: ../Doc/c-api/typeobj.rst:907 ../Doc/c-api/typeobj.rst:927 -#: ../Doc/c-api/typeobj.rst:948 ../Doc/c-api/typeobj.rst:974 -#: ../Doc/c-api/typeobj.rst:993 ../Doc/c-api/typeobj.rst:1009 -#: ../Doc/c-api/typeobj.rst:1046 ../Doc/c-api/typeobj.rst:1057 -#: ../Doc/c-api/typeobj.rst:1067 ../Doc/c-api/typeobj.rst:1077 -#: ../Doc/c-api/typeobj.rst:1091 ../Doc/c-api/typeobj.rst:1109 -#: ../Doc/c-api/typeobj.rst:1132 ../Doc/c-api/typeobj.rst:1179 -#: ../Doc/c-api/typeobj.rst:1194 ../Doc/c-api/typeobj.rst:1213 -#: ../Doc/c-api/typeobj.rst:1232 ../Doc/c-api/typeobj.rst:1254 -#: ../Doc/c-api/typeobj.rst:1270 ../Doc/c-api/typeobj.rst:1338 -#: ../Doc/c-api/typeobj.rst:1405 ../Doc/c-api/typeobj.rst:1464 -#: ../Doc/c-api/typeobj.rst:1494 ../Doc/c-api/typeobj.rst:1526 -#: ../Doc/c-api/typeobj.rst:1549 ../Doc/c-api/typeobj.rst:1562 -#: ../Doc/c-api/typeobj.rst:1577 ../Doc/c-api/typeobj.rst:1591 -#: ../Doc/c-api/typeobj.rst:1621 ../Doc/c-api/typeobj.rst:1641 -#: ../Doc/c-api/typeobj.rst:1667 ../Doc/c-api/typeobj.rst:1685 -#: ../Doc/c-api/typeobj.rst:1718 ../Doc/c-api/typeobj.rst:1769 -#: ../Doc/c-api/typeobj.rst:1786 ../Doc/c-api/typeobj.rst:1827 -#: ../Doc/c-api/typeobj.rst:1849 ../Doc/c-api/typeobj.rst:1881 -#: ../Doc/c-api/typeobj.rst:1898 ../Doc/c-api/typeobj.rst:1909 -#: ../Doc/c-api/typeobj.rst:1919 ../Doc/c-api/typeobj.rst:1928 -#: ../Doc/c-api/typeobj.rst:1938 ../Doc/c-api/typeobj.rst:1952 -#: ../Doc/c-api/typeobj.rst:1998 ../Doc/c-api/typeobj.rst:2021 +#: ../Doc/c-api/typeobj.rst:503 ../Doc/c-api/typeobj.rst:526 +#: ../Doc/c-api/typeobj.rst:548 ../Doc/c-api/typeobj.rst:562 +#: ../Doc/c-api/typeobj.rst:606 ../Doc/c-api/typeobj.rst:649 +#: ../Doc/c-api/typeobj.rst:708 ../Doc/c-api/typeobj.rst:749 +#: ../Doc/c-api/typeobj.rst:766 ../Doc/c-api/typeobj.rst:783 +#: ../Doc/c-api/typeobj.rst:801 ../Doc/c-api/typeobj.rst:825 +#: ../Doc/c-api/typeobj.rst:842 ../Doc/c-api/typeobj.rst:854 +#: ../Doc/c-api/typeobj.rst:866 ../Doc/c-api/typeobj.rst:899 +#: ../Doc/c-api/typeobj.rst:917 ../Doc/c-api/typeobj.rst:937 +#: ../Doc/c-api/typeobj.rst:958 ../Doc/c-api/typeobj.rst:984 +#: ../Doc/c-api/typeobj.rst:1003 ../Doc/c-api/typeobj.rst:1019 +#: ../Doc/c-api/typeobj.rst:1057 ../Doc/c-api/typeobj.rst:1068 +#: ../Doc/c-api/typeobj.rst:1078 ../Doc/c-api/typeobj.rst:1088 +#: ../Doc/c-api/typeobj.rst:1102 ../Doc/c-api/typeobj.rst:1120 +#: ../Doc/c-api/typeobj.rst:1143 ../Doc/c-api/typeobj.rst:1158 +#: ../Doc/c-api/typeobj.rst:1171 ../Doc/c-api/typeobj.rst:1193 +#: ../Doc/c-api/typeobj.rst:1237 ../Doc/c-api/typeobj.rst:1258 +#: ../Doc/c-api/typeobj.rst:1277 ../Doc/c-api/typeobj.rst:1307 +#: ../Doc/c-api/typeobj.rst:1329 ../Doc/c-api/typeobj.rst:1355 +#: ../Doc/c-api/typeobj.rst:1423 ../Doc/c-api/typeobj.rst:1491 +#: ../Doc/c-api/typeobj.rst:1552 ../Doc/c-api/typeobj.rst:1588 +#: ../Doc/c-api/typeobj.rst:1613 ../Doc/c-api/typeobj.rst:1636 +#: ../Doc/c-api/typeobj.rst:1649 ../Doc/c-api/typeobj.rst:1664 +#: ../Doc/c-api/typeobj.rst:1678 ../Doc/c-api/typeobj.rst:1708 +#: ../Doc/c-api/typeobj.rst:1740 ../Doc/c-api/typeobj.rst:1766 +#: ../Doc/c-api/typeobj.rst:1784 ../Doc/c-api/typeobj.rst:1813 +#: ../Doc/c-api/typeobj.rst:1857 ../Doc/c-api/typeobj.rst:1874 +#: ../Doc/c-api/typeobj.rst:1915 ../Doc/c-api/typeobj.rst:1937 +#: ../Doc/c-api/typeobj.rst:1969 ../Doc/c-api/typeobj.rst:1997 +#: ../Doc/c-api/typeobj.rst:2010 ../Doc/c-api/typeobj.rst:2020 +#: ../Doc/c-api/typeobj.rst:2037 ../Doc/c-api/typeobj.rst:2054 +#: ../Doc/c-api/typeobj.rst:2068 ../Doc/c-api/typeobj.rst:2114 +#: ../Doc/c-api/typeobj.rst:2137 msgid "**Inheritance:**" msgstr "**Herencia:**" -#: ../Doc/c-api/typeobj.rst:496 ../Doc/c-api/typeobj.rst:555 -#: ../Doc/c-api/typeobj.rst:599 +#: ../Doc/c-api/typeobj.rst:505 ../Doc/c-api/typeobj.rst:564 +#: ../Doc/c-api/typeobj.rst:608 msgid "This field is not inherited by subtypes." msgstr "Este campo no es heredado por los subtipos." -#: ../Doc/c-api/typeobj.rst:501 +#: ../Doc/c-api/typeobj.rst:510 msgid "" "This is the type's type, in other words its metatype. It is initialized by " "the argument to the ``PyObject_HEAD_INIT`` macro, and its value should " @@ -1267,28 +1291,29 @@ msgstr "" "de la función de inicialización del módulo, antes de hacer cualquier otra " "cosa. Esto normalmente se hace así:" -#: ../Doc/c-api/typeobj.rst:512 +#: ../Doc/c-api/typeobj.rst:521 +#, fuzzy msgid "" "This should be done before any instances of the type are created. :c:func:" -"`PyType_Ready` checks if :attr:`ob_type` is ``NULL``, and if so, initializes " -"it to the :attr:`ob_type` field of the base class. :c:func:`PyType_Ready` " -"will not change this field if it is non-zero." +"`PyType_Ready` checks if :c:member:`~PyObject.ob_type` is ``NULL``, and if " +"so, initializes it to the :c:member:`~PyObject.ob_type` field of the base " +"class. :c:func:`PyType_Ready` will not change this field if it is non-zero." msgstr "" "Esto debe hacerse antes de que se creen instancias del tipo. :c:func:" "`PyType_Ready` comprueba si :attr:`ob_type` es ``NULL``, y si es así, lo " "inicializa en el campo :attr:`ob_type` de la clase base. :c:func:" "`PyType_Ready` no cambiará este campo si no es cero." -#: ../Doc/c-api/typeobj.rst:519 ../Doc/c-api/typeobj.rst:700 -#: ../Doc/c-api/typeobj.rst:817 ../Doc/c-api/typeobj.rst:909 -#: ../Doc/c-api/typeobj.rst:929 ../Doc/c-api/typeobj.rst:1528 -#: ../Doc/c-api/typeobj.rst:1551 ../Doc/c-api/typeobj.rst:1669 -#: ../Doc/c-api/typeobj.rst:1687 ../Doc/c-api/typeobj.rst:1771 -#: ../Doc/c-api/typeobj.rst:1883 ../Doc/c-api/typeobj.rst:2000 +#: ../Doc/c-api/typeobj.rst:528 ../Doc/c-api/typeobj.rst:710 +#: ../Doc/c-api/typeobj.rst:827 ../Doc/c-api/typeobj.rst:919 +#: ../Doc/c-api/typeobj.rst:939 ../Doc/c-api/typeobj.rst:1615 +#: ../Doc/c-api/typeobj.rst:1638 ../Doc/c-api/typeobj.rst:1768 +#: ../Doc/c-api/typeobj.rst:1786 ../Doc/c-api/typeobj.rst:1859 +#: ../Doc/c-api/typeobj.rst:1971 ../Doc/c-api/typeobj.rst:2116 msgid "This field is inherited by subtypes." msgstr "Este campo es heredado por subtipos." -#: ../Doc/c-api/typeobj.rst:525 +#: ../Doc/c-api/typeobj.rst:534 msgid "" "These fields are only present when the macro ``Py_TRACE_REFS`` is defined " "(see the :option:`configure --with-trace-refs option <--with-trace-refs>`)." @@ -1297,7 +1322,7 @@ msgstr "" "``Py_TRACE_REFS`` (ver la :option:`opción configure --with-trace-refs <--" "with-trace-refs>`)." -#: ../Doc/c-api/typeobj.rst:528 +#: ../Doc/c-api/typeobj.rst:537 #, fuzzy msgid "" "Their initialization to ``NULL`` is taken care of by the " @@ -1312,7 +1337,7 @@ msgstr "" "`, estos dos campos se utilizan para vincular el objeto a una " "lista doblemente vinculada de *todos* los objetos en el heap." -#: ../Doc/c-api/typeobj.rst:534 +#: ../Doc/c-api/typeobj.rst:543 msgid "" "This could be used for various debugging purposes; currently the only uses " "are the :func:`sys.getobjects` function and to print the objects that are " @@ -1324,15 +1349,15 @@ msgstr "" "objetos que aún están vivos al final de una ejecución cuando se establece la " "variable de entorno :envvar:`PYTHONDUMPREFS`." -#: ../Doc/c-api/typeobj.rst:541 +#: ../Doc/c-api/typeobj.rst:550 msgid "These fields are not inherited by subtypes." msgstr "Estos campos no son heredados por subtipos." -#: ../Doc/c-api/typeobj.rst:545 +#: ../Doc/c-api/typeobj.rst:554 msgid "PyVarObject Slots" msgstr "Ranuras ``PyVarObject``" -#: ../Doc/c-api/typeobj.rst:549 +#: ../Doc/c-api/typeobj.rst:558 msgid "" "For :ref:`statically allocated type objects `, this should be " "initialized to zero. For :ref:`dynamically allocated type objects `, este campo tiene un significado interno especial." -#: ../Doc/c-api/typeobj.rst:559 +#: ../Doc/c-api/typeobj.rst:568 msgid "PyTypeObject Slots" msgstr "Ranuras ``PyTypeObject``" -#: ../Doc/c-api/typeobj.rst:561 +#: ../Doc/c-api/typeobj.rst:570 +#, fuzzy msgid "" "Each slot has a section describing inheritance. If :c:func:`PyType_Ready` " "may set a value when the field is set to ``NULL`` then there will also be a " -"\"Default\" section. (Note that many fields set on :c:type:" -"`PyBaseObject_Type` and :c:type:`PyType_Type` effectively act as defaults.)" +"\"Default\" section. (Note that many fields set on :c:data:" +"`PyBaseObject_Type` and :c:data:`PyType_Type` effectively act as defaults.)" msgstr "" "Cada ranura tiene una sección que describe la herencia. Si :c:func:" "`PyType_Ready` puede establecer un valor cuando el campo se establece en " @@ -1359,15 +1385,16 @@ msgstr "" "cuenta que muchos campos establecidos en :c:type:`PyBaseObject_Type` y :c:" "type:`PyType_Type` actúan efectivamente como valores predeterminados)." -#: ../Doc/c-api/typeobj.rst:568 +#: ../Doc/c-api/typeobj.rst:577 +#, fuzzy msgid "" "Pointer to a NUL-terminated string containing the name of the type. For " "types that are accessible as module globals, the string should be the full " "module name, followed by a dot, followed by the type name; for built-in " "types, it should be just the type name. If the module is a submodule of a " "package, the full package name is part of the full module name. For " -"example, a type named :class:`T` defined in module :mod:`M` in subpackage :" -"mod:`Q` in package :mod:`P` should have the :c:member:`~PyTypeObject." +"example, a type named :class:`!T` defined in module :mod:`!M` in subpackage :" +"mod:`!Q` in package :mod:`!P` should have the :c:member:`~PyTypeObject." "tp_name` initializer ``\"P.Q.M.T\"``." msgstr "" "Puntero a una cadena de caracteres terminada en ``NULL`` que contiene el " @@ -1380,7 +1407,7 @@ msgstr "" "en el paquete :mod:`P` debe tener el inicializador :c:member:`~PyTypeObject." "tp_name` ``\"PQMT\"``." -#: ../Doc/c-api/typeobj.rst:576 +#: ../Doc/c-api/typeobj.rst:585 msgid "" "For :ref:`dynamically allocated type objects `, this should just " "be the type name, and the module name explicitly stored in the type dict as " @@ -1390,7 +1417,7 @@ msgstr "" "ser sólo el nombre del tipo, y el nombre del módulo almacenado " "explícitamente en el dict tipo que el valor de ``'__module__'`` clave." -#: ../Doc/c-api/typeobj.rst:581 +#: ../Doc/c-api/typeobj.rst:590 msgid "" "For :ref:`statically allocated type objects `, the *tp_name* " "field should contain a dot. Everything before the last dot is made " @@ -1403,7 +1430,7 @@ msgstr "" "después del último punto se hace accesible como el atributo :attr:" "`~definition.__name__`." -#: ../Doc/c-api/typeobj.rst:587 +#: ../Doc/c-api/typeobj.rst:596 msgid "" "If no dot is present, the entire :c:member:`~PyTypeObject.tp_name` field is " "made accessible as the :attr:`~definition.__name__` attribute, and the :attr:" @@ -1419,7 +1446,7 @@ msgstr "" "significa que su tipo será imposible de guardar como *pickle*. Además, no " "figurará en la documentación del módulo creado con *pydoc*." -#: ../Doc/c-api/typeobj.rst:593 +#: ../Doc/c-api/typeobj.rst:602 msgid "" "This field must not be ``NULL``. It is the only required field in :c:func:" "`PyTypeObject` (other than potentially :c:member:`~PyTypeObject." @@ -1429,13 +1456,13 @@ msgstr "" "`PyTypeObject` (que no sea potencialmente :c:member:`~PyTypeObject." "tp_itemsize`)." -#: ../Doc/c-api/typeobj.rst:605 +#: ../Doc/c-api/typeobj.rst:614 msgid "" "These fields allow calculating the size in bytes of instances of the type." msgstr "" "Estos campos permiten calcular el tamaño en bytes de instancias del tipo." -#: ../Doc/c-api/typeobj.rst:607 +#: ../Doc/c-api/typeobj.rst:616 msgid "" "There are two kinds of types: types with fixed-length instances have a zero :" "c:member:`~PyTypeObject.tp_itemsize` field, types with variable-length " @@ -1450,18 +1477,21 @@ msgstr "" "todas las instancias tienen el mismo tamaño, dado en :c:member:" "`~PyTypeObject.tp_basicsize`." -#: ../Doc/c-api/typeobj.rst:612 +#: ../Doc/c-api/typeobj.rst:621 +#, fuzzy msgid "" -"For a type with variable-length instances, the instances must have an :attr:" -"`ob_size` field, and the instance size is :c:member:`~PyTypeObject." -"tp_basicsize` plus N times :c:member:`~PyTypeObject.tp_itemsize`, where N is " -"the \"length\" of the object. The value of N is typically stored in the " -"instance's :attr:`ob_size` field. There are exceptions: for example, ints " -"use a negative :attr:`ob_size` to indicate a negative number, and N is " -"``abs(ob_size)`` there. Also, the presence of an :attr:`ob_size` field in " -"the instance layout doesn't mean that the instance structure is variable-" -"length (for example, the structure for the list type has fixed-length " -"instances, yet those instances have a meaningful :attr:`ob_size` field)." +"For a type with variable-length instances, the instances must have an :c:" +"member:`~PyVarObject.ob_size` field, and the instance size is :c:member:" +"`~PyTypeObject.tp_basicsize` plus N times :c:member:`~PyTypeObject." +"tp_itemsize`, where N is the \"length\" of the object. The value of N is " +"typically stored in the instance's :c:member:`~PyVarObject.ob_size` field. " +"There are exceptions: for example, ints use a negative :c:member:" +"`~PyVarObject.ob_size` to indicate a negative number, and N is " +"``abs(ob_size)`` there. Also, the presence of an :c:member:`~PyVarObject." +"ob_size` field in the instance layout doesn't mean that the instance " +"structure is variable-length (for example, the structure for the list type " +"has fixed-length instances, yet those instances have a meaningful :c:member:" +"`~PyVarObject.ob_size` field)." msgstr "" "Para un tipo con instancias de longitud variable, las instancias deben tener " "un campo :attr:`ob_size`, y el tamaño de la instancia es :c:member:" @@ -1475,16 +1505,17 @@ msgstr "" "ejemplo, la estructura para el tipo de lista tiene instancias de longitud " "fija, aunque esas instancias tienen un significativo campo :attr:`ob_size`)." -#: ../Doc/c-api/typeobj.rst:623 +#: ../Doc/c-api/typeobj.rst:632 +#, fuzzy msgid "" "The basic size includes the fields in the instance declared by the macro :c:" "macro:`PyObject_HEAD` or :c:macro:`PyObject_VAR_HEAD` (whichever is used to " -"declare the instance struct) and this in turn includes the :attr:`_ob_prev` " -"and :attr:`_ob_next` fields if they are present. This means that the only " -"correct way to get an initializer for the :c:member:`~PyTypeObject." -"tp_basicsize` is to use the ``sizeof`` operator on the struct used to " -"declare the instance layout. The basic size does not include the GC header " -"size." +"declare the instance struct) and this in turn includes the :c:member:" +"`~PyObject._ob_prev` and :c:member:`~PyObject._ob_next` fields if they are " +"present. This means that the only correct way to get an initializer for " +"the :c:member:`~PyTypeObject.tp_basicsize` is to use the ``sizeof`` operator " +"on the struct used to declare the instance layout. The basic size does not " +"include the GC header size." msgstr "" "El tamaño básico incluye los campos en la instancia declarada por el macro :" "c:macro:`PyObject_HEAD` o :c:macro:`PyObject_VAR_HEAD` (lo que se use para " @@ -1495,7 +1526,7 @@ msgstr "" "utilizada para declarar el diseño de la instancia. El tamaño básico no " "incluye el tamaño del encabezado del GC." -#: ../Doc/c-api/typeobj.rst:631 +#: ../Doc/c-api/typeobj.rst:640 msgid "" "A note about alignment: if the variable items require a particular " "alignment, this should be taken care of by the value of :c:member:" @@ -1513,14 +1544,14 @@ msgstr "" "`~PyTypeObject.tp_basicsize` es un múltiplo de ``sizeof(double)`` " "(suponiendo que este sea el requisito de alineación para ``double``)." -#: ../Doc/c-api/typeobj.rst:638 +#: ../Doc/c-api/typeobj.rst:647 msgid "" "For any type with variable-length instances, this field must not be ``NULL``." msgstr "" "Para cualquier tipo con instancias de longitud variable, este campo no debe " "ser ``NULL``." -#: ../Doc/c-api/typeobj.rst:642 +#: ../Doc/c-api/typeobj.rst:651 msgid "" "These fields are inherited separately by subtypes. If the base type has a " "non-zero :c:member:`~PyTypeObject.tp_itemsize`, it is generally not safe to " @@ -1533,7 +1564,7 @@ msgstr "" "diferente de cero en un subtipo ( aunque esto depende de la implementación " "del tipo base)." -#: ../Doc/c-api/typeobj.rst:650 +#: ../Doc/c-api/typeobj.rst:659 msgid "" "A pointer to the instance destructor function. This function must be " "defined unless the type guarantees that its instances will never be " @@ -1545,7 +1576,8 @@ msgstr "" "desasignarán (como es el caso de los singletons ``None`` y ``Ellipsis``). La " "firma de la función es::" -#: ../Doc/c-api/typeobj.rst:656 +#: ../Doc/c-api/typeobj.rst:665 +#, fuzzy msgid "" "The destructor function is called by the :c:func:`Py_DECREF` and :c:func:" "`Py_XDECREF` macros when the new reference count is zero. At this point, " @@ -1554,13 +1586,13 @@ msgid "" "all memory buffers owned by the instance (using the freeing function " "corresponding to the allocation function used to allocate the buffer), and " "call the type's :c:member:`~PyTypeObject.tp_free` function. If the type is " -"not subtypable (doesn't have the :const:`Py_TPFLAGS_BASETYPE` flag bit set), " -"it is permissible to call the object deallocator directly instead of via :c:" -"member:`~PyTypeObject.tp_free`. The object deallocator should be the one " -"used to allocate the instance; this is normally :c:func:`PyObject_Del` if " -"the instance was allocated using :c:func:`PyObject_New` or :c:func:" -"`PyObject_VarNew`, or :c:func:`PyObject_GC_Del` if the instance was " -"allocated using :c:func:`PyObject_GC_New` or :c:func:`PyObject_GC_NewVar`." +"not subtypable (doesn't have the :c:macro:`Py_TPFLAGS_BASETYPE` flag bit " +"set), it is permissible to call the object deallocator directly instead of " +"via :c:member:`~PyTypeObject.tp_free`. The object deallocator should be the " +"one used to allocate the instance; this is normally :c:func:`PyObject_Del` " +"if the instance was allocated using :c:macro:`PyObject_New` or :c:macro:" +"`PyObject_NewVar`, or :c:func:`PyObject_GC_Del` if the instance was " +"allocated using :c:macro:`PyObject_GC_New` or :c:macro:`PyObject_GC_NewVar`." msgstr "" "La función destructor es llamada por las macros :c:func:`Py_DECREF` y :c:" "func:`Py_XDECREF` cuando el nuevo recuento de referencia es cero. En este " @@ -1578,30 +1610,32 @@ msgstr "" "`PyObject_VarNew`, o :c:func:`PyObject_GC_Del` si la instancia se asignó " "usando :c:func:`PyObject_GC_New` o :c:func:`PyObject_GC_NewVar`." -#: ../Doc/c-api/typeobj.rst:671 +#: ../Doc/c-api/typeobj.rst:680 +#, fuzzy msgid "" -"If the type supports garbage collection (has the :const:`Py_TPFLAGS_HAVE_GC` " -"flag bit set), the destructor should call :c:func:`PyObject_GC_UnTrack` " -"before clearing any member fields." +"If the type supports garbage collection (has the :c:macro:" +"`Py_TPFLAGS_HAVE_GC` flag bit set), the destructor should call :c:func:" +"`PyObject_GC_UnTrack` before clearing any member fields." msgstr "" "Si el tipo admite la recolección de elementos no utilizados (tiene " "establecido el bit indicador :const:`Py_TPFLAGS_HAVE_GC`), el destructor " "debe llamar a :c:func:`PyObject_GC_UnTrack` antes de borrar cualquier campo " "miembro." -#: ../Doc/c-api/typeobj.rst:683 +#: ../Doc/c-api/typeobj.rst:692 +#, fuzzy msgid "" -"Finally, if the type is heap allocated (:const:`Py_TPFLAGS_HEAPTYPE`), the " -"deallocator should decrement the reference count for its type object after " -"calling the type deallocator. In order to avoid dangling pointers, the " -"recommended way to achieve this is:" +"Finally, if the type is heap allocated (:c:macro:`Py_TPFLAGS_HEAPTYPE`), the " +"deallocator should release the owned reference to its type object (via :c:" +"func:`Py_DECREF`) after calling the type deallocator. In order to avoid " +"dangling pointers, the recommended way to achieve this is:" msgstr "" "Finalmente, si el tipo está asignado en el heap (:const:" "`Py_TPFLAGS_HEAPTYPE`), el desasignador debería disminuir el conteo de " "referencia para su objeto tipo después de llamar al desasignador del tipo. " "Para evitar punteros colgantes, la forma recomendada de lograr esto es:" -#: ../Doc/c-api/typeobj.rst:705 +#: ../Doc/c-api/typeobj.rst:715 msgid "" "An optional offset to a per-instance function that implements calling the " "object using the :ref:`vectorcall protocol `, a more efficient " @@ -1611,9 +1645,10 @@ msgstr "" "llamada al objeto usando :ref:`vectorcall protocol `, una " "alternativa más eficiente del simple :c:member:`~PyTypeObject.tp_call`." -#: ../Doc/c-api/typeobj.rst:710 +#: ../Doc/c-api/typeobj.rst:720 +#, fuzzy msgid "" -"This field is only used if the flag :const:`Py_TPFLAGS_HAVE_VECTORCALL` is " +"This field is only used if the flag :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` is " "set. If so, this must be a positive integer containing the offset in the " "instance of a :c:type:`vectorcallfunc` pointer." msgstr "" @@ -1622,10 +1657,11 @@ msgstr "" "contenga el desplazamiento en la instancia de un puntero :c:type:" "`vectorcallfunc`." -#: ../Doc/c-api/typeobj.rst:714 +#: ../Doc/c-api/typeobj.rst:724 +#, fuzzy msgid "" "The *vectorcallfunc* pointer may be ``NULL``, in which case the instance " -"behaves as if :const:`Py_TPFLAGS_HAVE_VECTORCALL` was not set: calling the " +"behaves as if :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` was not set: calling the " "instance falls back to :c:member:`~PyTypeObject.tp_call`." msgstr "" "El puntero *vectorcallfunc* puede ser ``NULL``, en cuyo caso la instancia se " @@ -1633,7 +1669,7 @@ msgstr "" "configurado: llamar a la instancia vuelve a :c:member:`~PyTypeObject." "tp_call`." -#: ../Doc/c-api/typeobj.rst:718 +#: ../Doc/c-api/typeobj.rst:728 msgid "" "Any class that sets ``Py_TPFLAGS_HAVE_VECTORCALL`` must also set :c:member:" "`~PyTypeObject.tp_call` and make sure its behaviour is consistent with the " @@ -1645,36 +1681,36 @@ msgstr "" "comportamiento sea coherente con la función *vectorcallfunc*. Esto se puede " "hacer configurando *tp_call* en :c:func:`PyVectorcall_Call`." -#: ../Doc/c-api/typeobj.rst:725 +#: ../Doc/c-api/typeobj.rst:735 +msgid "" +"Before version 3.8, this slot was named ``tp_print``. In Python 2.x, it was " +"used for printing to a file. In Python 3.0 to 3.7, it was unused." +msgstr "" +"Antes de la versión 3.8, este slot se llamaba ``tp_print``. En Python 2.x, " +"se usó para imprimir en un archivo. En Python 3.0 a 3.7, no se usó." + +#: ../Doc/c-api/typeobj.rst:741 #, fuzzy msgid "" -"It is not recommended for :ref:`mutable heap types ` to " -"implement the vectorcall protocol. When a user sets :attr:`__call__` in " -"Python code, only *tp_call* is updated, likely making it inconsistent with " -"the vectorcall function." +"Before version 3.12, it was not recommended for :ref:`mutable heap types " +"` to implement the vectorcall protocol. When a user sets :attr:" +"`~object.__call__` in Python code, only *tp_call* is updated, likely making " +"it inconsistent with the vectorcall function. Since 3.12, setting " +"``__call__`` will disable vectorcall optimization by clearing the :c:macro:" +"`Py_TPFLAGS_HAVE_VECTORCALL` flag." msgstr "" "No se recomienda para :ref:`tipos heap ` para implementar el " "protocolo vectorcall. Cuando un usuario establece :attr:`__call__` en código " "Python, solo se actualiza *tp_call*, lo que probablemente lo haga " "inconsistente con la función vectorcall." -#: ../Doc/c-api/typeobj.rst:732 -msgid "" -"Before version 3.8, this slot was named ``tp_print``. In Python 2.x, it was " -"used for printing to a file. In Python 3.0 to 3.7, it was unused." -msgstr "" -"Antes de la versión 3.8, este slot se llamaba ``tp_print``. En Python 2.x, " -"se usó para imprimir en un archivo. En Python 3.0 a 3.7, no se usó." - -#: ../Doc/c-api/typeobj.rst:738 +#: ../Doc/c-api/typeobj.rst:751 #, fuzzy msgid "" -"This field is always inherited. However, the :const:" -"`Py_TPFLAGS_HAVE_VECTORCALL` flag is not always inherited. If it's not, then " -"the subclass won't use :ref:`vectorcall `, except when :c:func:" -"`PyVectorcall_Call` is explicitly called. This is in particular the case for " -"types without the :const:`Py_TPFLAGS_IMMUTABLETYPE` flag set (including " -"subclasses defined in Python)." +"This field is always inherited. However, the :c:macro:" +"`Py_TPFLAGS_HAVE_VECTORCALL` flag is not always inherited. If it's not set, " +"then the subclass won't use :ref:`vectorcall `, except when :c:" +"func:`PyVectorcall_Call` is explicitly called." msgstr "" "Este campo siempre se hereda. Sin embargo, la bandera :const:" "`Py_TPFLAGS_HAVE_VECTORCALL` no siempre se hereda. Si no es así, la subclase " @@ -1683,13 +1719,13 @@ msgstr "" "de :ref:`tipos heap ` (incluidas las subclases definidas en " "Python)." -#: ../Doc/c-api/typeobj.rst:750 +#: ../Doc/c-api/typeobj.rst:760 msgid "An optional pointer to the get-attribute-string function." msgstr "" "Un puntero opcional a la función \"obtener atributo cadena de " "caracteres\" (*get-attribute-string*)." -#: ../Doc/c-api/typeobj.rst:752 +#: ../Doc/c-api/typeobj.rst:762 msgid "" "This field is deprecated. When it is defined, it should point to a function " "that acts the same as the :c:member:`~PyTypeObject.tp_getattro` function, " @@ -1701,11 +1737,14 @@ msgstr "" "tomando una cadena de caracteres C en lugar de un objeto de cadena Python " "para dar el nombre del atributo." -#: ../Doc/c-api/typeobj.rst:758 ../Doc/c-api/typeobj.rst:950 -msgid "Group: :attr:`tp_getattr`, :attr:`tp_getattro`" -msgstr "Grupo: :attr:`tp_getattr`, :attr:`tp_getattro`" +#: ../Doc/c-api/typeobj.rst:768 ../Doc/c-api/typeobj.rst:960 +#, fuzzy +msgid "" +"Group: :c:member:`~PyTypeObject.tp_getattr`, :c:member:`~PyTypeObject." +"tp_getattro`" +msgstr "Consulte :c:member:`~PyTypeObject.tp_getattro`." -#: ../Doc/c-api/typeobj.rst:760 +#: ../Doc/c-api/typeobj.rst:770 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_getattro`: a subtype inherits both :c:member:`~PyTypeObject.tp_getattr` " @@ -1719,12 +1758,12 @@ msgstr "" "subtipos :c:member:`~PyTypeObject.tp_getattr` y :c:member:`~PyTypeObject." "tp_getattro` son ambos ``NULL``." -#: ../Doc/c-api/typeobj.rst:767 ../Doc/c-api/typeobj.rst:963 +#: ../Doc/c-api/typeobj.rst:777 ../Doc/c-api/typeobj.rst:973 msgid "" "An optional pointer to the function for setting and deleting attributes." msgstr "Un puntero opcional a la función para configurar y eliminar atributos." -#: ../Doc/c-api/typeobj.rst:769 +#: ../Doc/c-api/typeobj.rst:779 msgid "" "This field is deprecated. When it is defined, it should point to a function " "that acts the same as the :c:member:`~PyTypeObject.tp_setattro` function, " @@ -1736,11 +1775,14 @@ msgstr "" "tomando una cadena de caracteres C en lugar de un objeto de cadena Python " "para dar el nombre del atributo." -#: ../Doc/c-api/typeobj.rst:775 ../Doc/c-api/typeobj.rst:976 -msgid "Group: :attr:`tp_setattr`, :attr:`tp_setattro`" -msgstr "Grupo: :attr:`tp_setattr`, :attr:`tp_setattro`" +#: ../Doc/c-api/typeobj.rst:785 ../Doc/c-api/typeobj.rst:986 +#, fuzzy +msgid "" +"Group: :c:member:`~PyTypeObject.tp_setattr`, :c:member:`~PyTypeObject." +"tp_setattro`" +msgstr "Consulte :c:member:`~PyTypeObject.tp_setattro`." -#: ../Doc/c-api/typeobj.rst:777 +#: ../Doc/c-api/typeobj.rst:787 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_setattro`: a subtype inherits both :c:member:`~PyTypeObject.tp_setattr` " @@ -1754,7 +1796,7 @@ msgstr "" "subtipos :c:member:`~PyTypeObject.tp_setattr` y :c:member:`~PyTypeObject." "tp_setattro` son ambos ``NULL``." -#: ../Doc/c-api/typeobj.rst:784 +#: ../Doc/c-api/typeobj.rst:794 msgid "" "Pointer to an additional structure that contains fields relevant only to " "objects which implement :term:`awaitable` and :term:`asynchronous iterator` " @@ -1765,11 +1807,11 @@ msgstr "" "y \"iterador asíncrono\" (:term:`asynchronous iterator`) en el nivel C. Ver :" "ref:`async-structs` para más detalles." -#: ../Doc/c-api/typeobj.rst:788 +#: ../Doc/c-api/typeobj.rst:798 msgid "Formerly known as ``tp_compare`` and ``tp_reserved``." msgstr "Anteriormente conocidos como ``tp_compare`` y ``tp_reserved``." -#: ../Doc/c-api/typeobj.rst:793 +#: ../Doc/c-api/typeobj.rst:803 msgid "" "The :c:member:`~PyTypeObject.tp_as_async` field is not inherited, but the " "contained fields are inherited individually." @@ -1777,7 +1819,7 @@ msgstr "" "El campo :c:member:`~PyTypeObject.tp_as_async` no se hereda, pero los campos " "contenidos se heredan individualmente." -#: ../Doc/c-api/typeobj.rst:801 +#: ../Doc/c-api/typeobj.rst:811 msgid "" "An optional pointer to a function that implements the built-in function :" "func:`repr`." @@ -1785,11 +1827,11 @@ msgstr "" "Un puntero opcional a una función que implementa la función incorporada :" "func:`repr`." -#: ../Doc/c-api/typeobj.rst:804 +#: ../Doc/c-api/typeobj.rst:814 msgid "The signature is the same as for :c:func:`PyObject_Repr`::" msgstr "La firma es la misma que para :c:func:`PyObject_Repr`::" -#: ../Doc/c-api/typeobj.rst:808 +#: ../Doc/c-api/typeobj.rst:818 msgid "" "The function must return a string or a Unicode object. Ideally, this " "function should return a string that, when passed to :func:`eval`, given a " @@ -1804,17 +1846,18 @@ msgstr "" "termine con ``'>'`` desde la cual se puede deducir tanto el tipo como el " "valor del objeto." -#: ../Doc/c-api/typeobj.rst:819 ../Doc/c-api/typeobj.rst:931 -#: ../Doc/c-api/typeobj.rst:956 ../Doc/c-api/typeobj.rst:982 -#: ../Doc/c-api/typeobj.rst:1024 ../Doc/c-api/typeobj.rst:1473 -#: ../Doc/c-api/typeobj.rst:1625 ../Doc/c-api/typeobj.rst:1646 -#: ../Doc/c-api/typeobj.rst:1737 ../Doc/c-api/typeobj.rst:1773 -#: ../Doc/c-api/typeobj.rst:1791 ../Doc/c-api/typeobj.rst:1833 -#: ../Doc/c-api/typeobj.rst:1854 ../Doc/c-api/typeobj.rst:1885 +#: ../Doc/c-api/typeobj.rst:829 ../Doc/c-api/typeobj.rst:941 +#: ../Doc/c-api/typeobj.rst:966 ../Doc/c-api/typeobj.rst:992 +#: ../Doc/c-api/typeobj.rst:1033 ../Doc/c-api/typeobj.rst:1561 +#: ../Doc/c-api/typeobj.rst:1595 ../Doc/c-api/typeobj.rst:1712 +#: ../Doc/c-api/typeobj.rst:1745 ../Doc/c-api/typeobj.rst:1820 +#: ../Doc/c-api/typeobj.rst:1861 ../Doc/c-api/typeobj.rst:1879 +#: ../Doc/c-api/typeobj.rst:1921 ../Doc/c-api/typeobj.rst:1942 +#: ../Doc/c-api/typeobj.rst:1973 msgid "**Default:**" msgstr "**Por defecto:**" -#: ../Doc/c-api/typeobj.rst:821 +#: ../Doc/c-api/typeobj.rst:831 #, python-format msgid "" "When this field is not set, a string of the form ``<%s object at %p>`` is " @@ -1825,7 +1868,7 @@ msgstr "" "de la forma ``<%s object at %p>``, donde ``%s`` se reemplaza por el nombre " "del tipo y ``%p`` por dirección de memoria del objeto." -#: ../Doc/c-api/typeobj.rst:828 +#: ../Doc/c-api/typeobj.rst:838 msgid "" "Pointer to an additional structure that contains fields relevant only to " "objects which implement the number protocol. These fields are documented " @@ -1835,7 +1878,7 @@ msgstr "" "objetos que implementan el protocolo numérico. Estos campos están " "documentados en :ref:`number-structs`." -#: ../Doc/c-api/typeobj.rst:834 +#: ../Doc/c-api/typeobj.rst:844 msgid "" "The :c:member:`~PyTypeObject.tp_as_number` field is not inherited, but the " "contained fields are inherited individually." @@ -1843,7 +1886,7 @@ msgstr "" "El campo :c:member:`~PyTypeObject.tp_as_number` no se hereda, pero los " "campos contenidos se heredan individualmente." -#: ../Doc/c-api/typeobj.rst:840 +#: ../Doc/c-api/typeobj.rst:850 msgid "" "Pointer to an additional structure that contains fields relevant only to " "objects which implement the sequence protocol. These fields are documented " @@ -1853,7 +1896,7 @@ msgstr "" "objetos que implementan el protocolo de secuencia. Estos campos están " "documentados en :ref:`estructuras de secuencia `." -#: ../Doc/c-api/typeobj.rst:846 +#: ../Doc/c-api/typeobj.rst:856 msgid "" "The :c:member:`~PyTypeObject.tp_as_sequence` field is not inherited, but the " "contained fields are inherited individually." @@ -1861,7 +1904,7 @@ msgstr "" "El campo :c:member:`~PyTypeObject.tp_as_sequence` no se hereda, pero los " "campos contenidos se heredan individualmente." -#: ../Doc/c-api/typeobj.rst:852 +#: ../Doc/c-api/typeobj.rst:862 msgid "" "Pointer to an additional structure that contains fields relevant only to " "objects which implement the mapping protocol. These fields are documented " @@ -1871,7 +1914,7 @@ msgstr "" "objetos que implementan el protocolo de mapeo. Estos campos están " "documentados en :ref:`mapping-structs`." -#: ../Doc/c-api/typeobj.rst:858 +#: ../Doc/c-api/typeobj.rst:868 msgid "" "The :c:member:`~PyTypeObject.tp_as_mapping` field is not inherited, but the " "contained fields are inherited individually." @@ -1879,7 +1922,7 @@ msgstr "" "El campo :c:member:`~PyTypeObject.tp_as_mapping` no se hereda, pero los " "campos contenidos se heredan individualmente." -#: ../Doc/c-api/typeobj.rst:866 +#: ../Doc/c-api/typeobj.rst:876 msgid "" "An optional pointer to a function that implements the built-in function :" "func:`hash`." @@ -1887,11 +1930,11 @@ msgstr "" "Un puntero opcional a una función que implementa la función incorporada :" "func:`hash`." -#: ../Doc/c-api/typeobj.rst:869 +#: ../Doc/c-api/typeobj.rst:879 msgid "The signature is the same as for :c:func:`PyObject_Hash`::" msgstr "La firma es la misma que para :c:func:`PyObject_Hash`::" -#: ../Doc/c-api/typeobj.rst:873 +#: ../Doc/c-api/typeobj.rst:883 msgid "" "The value ``-1`` should not be returned as a normal return value; when an " "error occurs during the computation of the hash value, the function should " @@ -1901,18 +1944,20 @@ msgstr "" "se produce un error durante el cálculo del valor *hash*, la función debe " "establecer una excepción y retornar ``-1``." -#: ../Doc/c-api/typeobj.rst:877 +#: ../Doc/c-api/typeobj.rst:887 +#, fuzzy msgid "" -"When this field is not set (*and* :attr:`tp_richcompare` is not set), an " -"attempt to take the hash of the object raises :exc:`TypeError`. This is the " -"same as setting it to :c:func:`PyObject_HashNotImplemented`." +"When this field is not set (*and* :c:member:`~PyTypeObject.tp_richcompare` " +"is not set), an attempt to take the hash of the object raises :exc:" +"`TypeError`. This is the same as setting it to :c:func:" +"`PyObject_HashNotImplemented`." msgstr "" "Cuando este campo no está establecido (*y* :attr:`tp_richcompare` no está " "establecido), se lanza :exc:`TypeError` cuando hay un intento de tomar el " "*hash* del objeto. Esto es lo mismo que establecerlo en :c:func:" "`PyObject_HashNotImplemented`." -#: ../Doc/c-api/typeobj.rst:881 +#: ../Doc/c-api/typeobj.rst:891 msgid "" "This field can be set explicitly to :c:func:`PyObject_HashNotImplemented` to " "block inheritance of the hash method from a parent type. This is interpreted " @@ -1931,11 +1976,14 @@ msgstr "" "el nivel de Python dará como resultado que la ranura ``tp_hash`` se " "establezca en :c:func:`PyObject_HashNotImplemented`." -#: ../Doc/c-api/typeobj.rst:891 ../Doc/c-api/typeobj.rst:1466 -msgid "Group: :attr:`tp_hash`, :attr:`tp_richcompare`" -msgstr "Grupo: :attr:`tp_hash`, :attr:`tp_richcompare`" +#: ../Doc/c-api/typeobj.rst:901 ../Doc/c-api/typeobj.rst:1554 +#, fuzzy +msgid "" +"Group: :c:member:`~PyTypeObject.tp_hash`, :c:member:`~PyTypeObject." +"tp_richcompare`" +msgstr "Consulte :c:member:`~PyTypeObject.tp_richcompare`." -#: ../Doc/c-api/typeobj.rst:893 +#: ../Doc/c-api/typeobj.rst:903 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_richcompare`: a subtype inherits both of :c:member:`~PyTypeObject." @@ -1949,7 +1997,7 @@ msgstr "" "member:`~PyTypeObject.tp_richcompare` y :c:member:`~PyTypeObject.tp_hash` " "son ambos ``NULL``." -#: ../Doc/c-api/typeobj.rst:901 +#: ../Doc/c-api/typeobj.rst:911 msgid "" "An optional pointer to a function that implements calling the object. This " "should be ``NULL`` if the object is not callable. The signature is the same " @@ -1959,7 +2007,7 @@ msgstr "" "debería ser ``NULL`` si el objeto no es invocable. La firma es la misma que " "para :c:func:`PyObject_Call`::" -#: ../Doc/c-api/typeobj.rst:914 +#: ../Doc/c-api/typeobj.rst:924 msgid "" "An optional pointer to a function that implements the built-in operation :" "func:`str`. (Note that :class:`str` is a type now, and :func:`str` calls " @@ -1973,11 +2021,11 @@ msgstr "" "`PyObject_Str` para hacer el trabajo real, y :c:func:`PyObject_Str` llamará " "a este controlador.)" -#: ../Doc/c-api/typeobj.rst:919 +#: ../Doc/c-api/typeobj.rst:929 msgid "The signature is the same as for :c:func:`PyObject_Str`::" msgstr "La firma es la misma que para :c:func:`PyObject_Str`::" -#: ../Doc/c-api/typeobj.rst:923 +#: ../Doc/c-api/typeobj.rst:933 msgid "" "The function must return a string or a Unicode object. It should be a " "\"friendly\" string representation of the object, as this is the " @@ -1989,7 +2037,7 @@ msgstr "" "representación que será utilizada, entre otras cosas, por la función :func:" "`print`." -#: ../Doc/c-api/typeobj.rst:933 +#: ../Doc/c-api/typeobj.rst:943 msgid "" "When this field is not set, :c:func:`PyObject_Repr` is called to return a " "string representation." @@ -1997,16 +2045,16 @@ msgstr "" "Cuando este campo no está configurado, se llama a :c:func:`PyObject_Repr` " "para retornar una representación de cadena de caracteres." -#: ../Doc/c-api/typeobj.rst:939 +#: ../Doc/c-api/typeobj.rst:949 msgid "An optional pointer to the get-attribute function." msgstr "" "Un puntero opcional a la función \"obtener atributo\" (*get-attribute*)." -#: ../Doc/c-api/typeobj.rst:941 +#: ../Doc/c-api/typeobj.rst:951 msgid "The signature is the same as for :c:func:`PyObject_GetAttr`::" msgstr "La firma es la misma que para :c:func:`PyObject_GetAttr`::" -#: ../Doc/c-api/typeobj.rst:945 +#: ../Doc/c-api/typeobj.rst:955 msgid "" "It is usually convenient to set this field to :c:func:" "`PyObject_GenericGetAttr`, which implements the normal way of looking for " @@ -2016,7 +2064,7 @@ msgstr "" "`PyObject_GenericGetAttr`, que implementa la forma normal de buscar " "atributos de objeto." -#: ../Doc/c-api/typeobj.rst:952 +#: ../Doc/c-api/typeobj.rst:962 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_getattr`: a subtype inherits both :c:member:`~PyTypeObject.tp_getattr` " @@ -2030,15 +2078,16 @@ msgstr "" "c:member:`~PyTypeObject.tp_getattr` y :c:member:`~PyTypeObject.tp_getattro` " "son ambos ``NULL``." -#: ../Doc/c-api/typeobj.rst:958 -msgid ":c:type:`PyBaseObject_Type` uses :c:func:`PyObject_GenericGetAttr`." +#: ../Doc/c-api/typeobj.rst:968 +#, fuzzy +msgid ":c:data:`PyBaseObject_Type` uses :c:func:`PyObject_GenericGetAttr`." msgstr ":c:type:`PyBaseObject_Type` usa :c:func:`PyObject_GenericGetAttr`." -#: ../Doc/c-api/typeobj.rst:965 +#: ../Doc/c-api/typeobj.rst:975 msgid "The signature is the same as for :c:func:`PyObject_SetAttr`::" msgstr "La firma es la misma que para :c:func:`PyObject_SetAttr`::" -#: ../Doc/c-api/typeobj.rst:969 +#: ../Doc/c-api/typeobj.rst:979 msgid "" "In addition, setting *value* to ``NULL`` to delete an attribute must be " "supported. It is usually convenient to set this field to :c:func:" @@ -2050,7 +2099,7 @@ msgstr "" "en :c:func:`PyObject_GenericSetAttr`, que implementa la forma normal de " "establecer los atributos del objeto." -#: ../Doc/c-api/typeobj.rst:978 +#: ../Doc/c-api/typeobj.rst:988 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_setattr`: a subtype inherits both :c:member:`~PyTypeObject.tp_setattr` " @@ -2064,11 +2113,12 @@ msgstr "" "c:member:`~PyTypeObject.tp_setattr` y :c:member:`~PyTypeObject.tp_setattro` " "son ambos ``NULL``." -#: ../Doc/c-api/typeobj.rst:984 -msgid ":c:type:`PyBaseObject_Type` uses :c:func:`PyObject_GenericSetAttr`." +#: ../Doc/c-api/typeobj.rst:994 +#, fuzzy +msgid ":c:data:`PyBaseObject_Type` uses :c:func:`PyObject_GenericSetAttr`." msgstr ":c:type:`PyBaseObject_Type` usa :c:func:`PyObject_GenericSetAttr`." -#: ../Doc/c-api/typeobj.rst:989 +#: ../Doc/c-api/typeobj.rst:999 msgid "" "Pointer to an additional structure that contains fields relevant only to " "objects which implement the buffer interface. These fields are documented " @@ -2078,7 +2128,7 @@ msgstr "" "objetos que implementan la interfaz del búfer. Estos campos están " "documentados en :ref:`buffer-structs`." -#: ../Doc/c-api/typeobj.rst:995 +#: ../Doc/c-api/typeobj.rst:1005 msgid "" "The :c:member:`~PyTypeObject.tp_as_buffer` field is not inherited, but the " "contained fields are inherited individually." @@ -2086,7 +2136,7 @@ msgstr "" "El campo :c:member:`~PyTypeObject.tp_as_buffer` no se hereda, pero los " "campos contenidos se heredan individualmente." -#: ../Doc/c-api/typeobj.rst:1001 +#: ../Doc/c-api/typeobj.rst:1011 msgid "" "This field is a bit mask of various flags. Some flags indicate variant " "semantics for certain situations; others are used to indicate that certain " @@ -2107,19 +2157,21 @@ msgstr "" "bandera está claro, no se debe acceder a los campos de tipo que protege y se " "debe considerar que tienen un valor cero o ``NULL``." -#: ../Doc/c-api/typeobj.rst:1011 +#: ../Doc/c-api/typeobj.rst:1021 +#, fuzzy msgid "" "Inheritance of this field is complicated. Most flag bits are inherited " "individually, i.e. if the base type has a flag bit set, the subtype inherits " "this flag bit. The flag bits that pertain to extension structures are " "strictly inherited if the extension structure is inherited, i.e. the base " "type's value of the flag bit is copied into the subtype together with a " -"pointer to the extension structure. The :const:`Py_TPFLAGS_HAVE_GC` flag " +"pointer to the extension structure. The :c:macro:`Py_TPFLAGS_HAVE_GC` flag " "bit is inherited together with the :c:member:`~PyTypeObject.tp_traverse` " -"and :c:member:`~PyTypeObject.tp_clear` fields, i.e. if the :const:" +"and :c:member:`~PyTypeObject.tp_clear` fields, i.e. if the :c:macro:" "`Py_TPFLAGS_HAVE_GC` flag bit is clear in the subtype and the :c:member:" "`~PyTypeObject.tp_traverse` and :c:member:`~PyTypeObject.tp_clear` fields in " -"the subtype exist and have ``NULL`` values." +"the subtype exist and have ``NULL`` values. .. XXX are most flag bits " +"*really* inherited individually?" msgstr "" "La herencia de este campo es complicada. La mayoría de los bits de bandera " "se heredan individualmente, es decir, si el tipo base tiene un conjunto de " @@ -2134,18 +2186,19 @@ msgstr "" "member:`~PyTypeObject.tp_clear` en el subtipo existen y tienen valores " "``NULL``." -#: ../Doc/c-api/typeobj.rst:1026 +#: ../Doc/c-api/typeobj.rst:1035 +#, fuzzy msgid "" -":c:type:`PyBaseObject_Type` uses ``Py_TPFLAGS_DEFAULT | " +":c:data:`PyBaseObject_Type` uses ``Py_TPFLAGS_DEFAULT | " "Py_TPFLAGS_BASETYPE``." msgstr "" ":c:type:`PyBaseObject_Type` usa ``Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE``." -#: ../Doc/c-api/typeobj.rst:1029 +#: ../Doc/c-api/typeobj.rst:1038 msgid "**Bit Masks:**" msgstr "**Máscaras de bits:**" -#: ../Doc/c-api/typeobj.rst:1031 +#: ../Doc/c-api/typeobj.rst:1042 msgid "" "The following bit masks are currently defined; these can be ORed together " "using the ``|`` operator to form the value of the :c:member:`~PyTypeObject." @@ -2159,15 +2212,16 @@ msgstr "" "un tipo y un valor de banderas, *tp* y *f*, y comprueba si ``tp->tp_flags & " "f`` no es cero." -#: ../Doc/c-api/typeobj.rst:1038 +#: ../Doc/c-api/typeobj.rst:1049 +#, fuzzy msgid "" "This bit is set when the type object itself is allocated on the heap, for " "example, types created dynamically using :c:func:`PyType_FromSpec`. In this " -"case, the :attr:`ob_type` field of its instances is considered a reference " -"to the type, and the type object is INCREF'ed when a new instance is " -"created, and DECREF'ed when an instance is destroyed (this does not apply to " -"instances of subtypes; only the type referenced by the instance's ob_type " -"gets INCREF'ed or DECREF'ed)." +"case, the :c:member:`~PyObject.ob_type` field of its instances is considered " +"a reference to the type, and the type object is INCREF'ed when a new " +"instance is created, and DECREF'ed when an instance is destroyed (this does " +"not apply to instances of subtypes; only the type referenced by the " +"instance's ob_type gets INCREF'ed or DECREF'ed)." msgstr "" "Este bit se establece cuando el objeto de tipo se asigna en el heap, por " "ejemplo, los tipos creados dinámicamente usando :c:func:`PyType_FromSpec`. " @@ -2177,13 +2231,13 @@ msgstr "" "aplica a instancias de subtipos; solo el tipo al que hace referencia el " "*ob_type* de la instancia obtiene INCREF o DECREF)." -#: ../Doc/c-api/typeobj.rst:1048 ../Doc/c-api/typeobj.rst:1059 -#: ../Doc/c-api/typeobj.rst:1069 ../Doc/c-api/typeobj.rst:1079 -#: ../Doc/c-api/typeobj.rst:1111 +#: ../Doc/c-api/typeobj.rst:1059 ../Doc/c-api/typeobj.rst:1070 +#: ../Doc/c-api/typeobj.rst:1080 ../Doc/c-api/typeobj.rst:1090 +#: ../Doc/c-api/typeobj.rst:1122 msgid "???" msgstr "???" -#: ../Doc/c-api/typeobj.rst:1053 +#: ../Doc/c-api/typeobj.rst:1064 msgid "" "This bit is set when the type can be used as the base type of another type. " "If this bit is clear, the type cannot be subtyped (similar to a \"final\" " @@ -2193,7 +2247,7 @@ msgstr "" "tipo. Si este bit es claro, el tipo no puede subtiparse (similar a una clase " "\"final\" en Java)." -#: ../Doc/c-api/typeobj.rst:1064 +#: ../Doc/c-api/typeobj.rst:1075 msgid "" "This bit is set when the type object has been fully initialized by :c:func:" "`PyType_Ready`." @@ -2201,7 +2255,7 @@ msgstr "" "Este bit se establece cuando el objeto tipo ha sido completamente " "inicializado por :c:func:`PyType_Ready`." -#: ../Doc/c-api/typeobj.rst:1074 +#: ../Doc/c-api/typeobj.rst:1085 msgid "" "This bit is set while :c:func:`PyType_Ready` is in the process of " "initializing the type object." @@ -2209,11 +2263,12 @@ msgstr "" "Este bit se establece mientras :c:func:`PyType_Ready` está en el proceso de " "inicialización del objeto tipo." -#: ../Doc/c-api/typeobj.rst:1084 +#: ../Doc/c-api/typeobj.rst:1095 +#, fuzzy msgid "" "This bit is set when the object supports garbage collection. If this bit is " -"set, instances must be created using :c:func:`PyObject_GC_New` and destroyed " -"using :c:func:`PyObject_GC_Del`. More information in section :ref:" +"set, instances must be created using :c:macro:`PyObject_GC_New` and " +"destroyed using :c:func:`PyObject_GC_Del`. More information in section :ref:" "`supporting-cycle-detection`. This bit also implies that the GC-related " "fields :c:member:`~PyTypeObject.tp_traverse` and :c:member:`~PyTypeObject." "tp_clear` are present in the type object." @@ -2226,20 +2281,24 @@ msgstr "" "tp_traverse` y :c:member:`~PyTypeObject.tp_clear` están presentes en el " "objeto de tipo." -#: ../Doc/c-api/typeobj.rst:1093 ../Doc/c-api/typeobj.rst:1340 -#: ../Doc/c-api/typeobj.rst:1407 +#: ../Doc/c-api/typeobj.rst:1104 ../Doc/c-api/typeobj.rst:1425 +#: ../Doc/c-api/typeobj.rst:1493 +#, fuzzy msgid "" -"Group: :const:`Py_TPFLAGS_HAVE_GC`, :attr:`tp_traverse`, :attr:`tp_clear`" +"Group: :c:macro:`Py_TPFLAGS_HAVE_GC`, :c:member:`~PyTypeObject." +"tp_traverse`, :c:member:`~PyTypeObject.tp_clear`" msgstr "" "Grupo: :const:`Py_TPFLAGS_HAVE_GC`, :attr:`tp_traverse`, :attr:`tp_clear`" -#: ../Doc/c-api/typeobj.rst:1095 +#: ../Doc/c-api/typeobj.rst:1106 +#, fuzzy msgid "" -"The :const:`Py_TPFLAGS_HAVE_GC` flag bit is inherited together with the :" -"attr:`tp_traverse` and :attr:`tp_clear` fields, i.e. if the :const:" -"`Py_TPFLAGS_HAVE_GC` flag bit is clear in the subtype and the :attr:" -"`tp_traverse` and :attr:`tp_clear` fields in the subtype exist and have " -"``NULL`` values." +"The :c:macro:`Py_TPFLAGS_HAVE_GC` flag bit is inherited together with the :c:" +"member:`~PyTypeObject.tp_traverse` and :c:member:`~PyTypeObject.tp_clear` " +"fields, i.e. if the :c:macro:`Py_TPFLAGS_HAVE_GC` flag bit is clear in the " +"subtype and the :c:member:`~PyTypeObject.tp_traverse` and :c:member:" +"`~PyTypeObject.tp_clear` fields in the subtype exist and have ``NULL`` " +"values." msgstr "" "El bit de indicador :const:`Py_TPFLAGS_HAVE_GC` se hereda junto con los " "campos :attr:`tp_traverse` y :attr:`tp_clear`, es decir, si el bit de " @@ -2247,27 +2306,28 @@ msgstr "" "attr:`tp_traverse` y :attr:`tp_clear` en el subtipo existen y tienen valores " "``NULL``." -#: ../Doc/c-api/typeobj.rst:1105 +#: ../Doc/c-api/typeobj.rst:1116 +#, fuzzy msgid "" "This is a bitmask of all the bits that pertain to the existence of certain " "fields in the type object and its extension structures. Currently, it " -"includes the following bits: :const:`Py_TPFLAGS_HAVE_STACKLESS_EXTENSION`." +"includes the following bits: :c:macro:`Py_TPFLAGS_HAVE_STACKLESS_EXTENSION`." msgstr "" "Esta es una máscara de bits de todos los bits que pertenecen a la existencia " "de ciertos campos en el objeto de tipo y sus estructuras de extensión. " "Actualmente, incluye los siguientes bits: :const:" "`Py_TPFLAGS_HAVE_STACKLESS_EXTENSION`." -#: ../Doc/c-api/typeobj.rst:1116 +#: ../Doc/c-api/typeobj.rst:1127 msgid "This bit indicates that objects behave like unbound methods." msgstr "" "Este bit indica que los objetos se comportan como métodos independientes." -#: ../Doc/c-api/typeobj.rst:1118 +#: ../Doc/c-api/typeobj.rst:1129 msgid "If this flag is set for ``type(meth)``, then:" msgstr "Si este indicador está configurado para ``type(meth)``, entonces:" -#: ../Doc/c-api/typeobj.rst:1120 +#: ../Doc/c-api/typeobj.rst:1131 msgid "" "``meth.__get__(obj, cls)(*args, **kwds)`` (with ``obj`` not None) must be " "equivalent to ``meth(obj, *args, **kwds)``." @@ -2275,7 +2335,7 @@ msgstr "" "``meth.__get__(obj, cls)(*args, **kwds)`` (con ``obj`` no ``None``) debe ser " "equivalente a ``meth(obj, *args, **kwds)``." -#: ../Doc/c-api/typeobj.rst:1123 +#: ../Doc/c-api/typeobj.rst:1134 msgid "" "``meth.__get__(None, cls)(*args, **kwds)`` must be equivalent to " "``meth(*args, **kwds)``." @@ -2283,7 +2343,7 @@ msgstr "" "``meth.__get__(None, cls)(*args, **kwds)`` debe ser equivalente a " "``meth(*args, **kwds)``." -#: ../Doc/c-api/typeobj.rst:1126 +#: ../Doc/c-api/typeobj.rst:1137 msgid "" "This flag enables an optimization for typical method calls like ``obj." "meth()``: it avoids creating a temporary \"bound method\" object for ``obj." @@ -2293,10 +2353,10 @@ msgstr "" "típicos como ``obj.meth()``: evita crear un objeto temporal de \"método " "vinculado\" para ``obj.meth``." -#: ../Doc/c-api/typeobj.rst:1134 +#: ../Doc/c-api/typeobj.rst:1145 #, fuzzy msgid "" -"This flag is never inherited by types without the :const:" +"This flag is never inherited by types without the :c:macro:" "`Py_TPFLAGS_IMMUTABLETYPE` flag set. For extension types, it is inherited " "whenever :c:member:`~PyTypeObject.tp_descr_get` is inherited." msgstr "" @@ -2306,6 +2366,64 @@ msgstr "" #: ../Doc/c-api/typeobj.rst:1151 msgid "" +"This bit indicates that instances of the class have a ``__dict__`` " +"attribute, and that the space for the dictionary is managed by the VM." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1154 +msgid "If this flag is set, :c:macro:`Py_TPFLAGS_HAVE_GC` should also be set." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1160 +#, fuzzy +msgid "" +"This flag is inherited unless the :c:member:`~PyTypeObject.tp_dictoffset` " +"field is set in a superclass." +msgstr "" +"Este campo está en desuso. Use :c:member:`~PyTypeObject.tp_finalize` en su " +"lugar." + +#: ../Doc/c-api/typeobj.rst:1166 +msgid "" +"This bit indicates that instances of the class should be weakly " +"referenceable." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1173 +#, fuzzy +msgid "" +"This flag is inherited unless the :c:member:`~PyTypeObject." +"tp_weaklistoffset` field is set in a superclass." +msgstr "" +"Este campo está en desuso. Use :c:member:`~PyTypeObject.tp_finalize` en su " +"lugar." + +#: ../Doc/c-api/typeobj.rst:1179 +msgid "" +"Only usable with variable-size types, i.e. ones with non-zero :c:member:" +"`~PyTypeObject.tp_itemsize`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1182 +msgid "" +"Indicates that the variable-sized portion of an instance of this type is at " +"the end of the instance's memory area, at an offset of ``Py_TYPE(obj)-" +">tp_basicsize`` (which may be different in each subclass)." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1187 +msgid "" +"When setting this flag, be sure that all superclasses either use this memory " +"layout, or are not variable-sized. Python does not check this." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1195 +#, fuzzy +msgid "This flag is inherited." +msgstr "Este flag no se hereda." + +#: ../Doc/c-api/typeobj.rst:1209 +msgid "" "These flags are used by functions such as :c:func:`PyLong_Check` to quickly " "determine if a type is a subclass of a built-in type; such specific checks " "are faster than a generic check, like :c:func:`PyObject_IsInstance`. Custom " @@ -2322,7 +2440,7 @@ msgstr "" "comportará de manera diferente dependiendo del tipo de verificación que se " "use." -#: ../Doc/c-api/typeobj.rst:1162 +#: ../Doc/c-api/typeobj.rst:1220 msgid "" "This bit is set when the :c:member:`~PyTypeObject.tp_finalize` slot is " "present in the type structure." @@ -2330,7 +2448,7 @@ msgstr "" "Este bit se establece cuando la ranura :c:member:`~PyTypeObject.tp_finalize` " "está presente en la estructura de tipo." -#: ../Doc/c-api/typeobj.rst:1167 +#: ../Doc/c-api/typeobj.rst:1225 msgid "" "This flag isn't necessary anymore, as the interpreter assumes the :c:member:" "`~PyTypeObject.tp_finalize` slot is always present in the type structure." @@ -2339,7 +2457,7 @@ msgstr "" "espacio :c:member:`~PyTypeObject.tp_finalize` siempre está presente en la " "estructura de tipos." -#: ../Doc/c-api/typeobj.rst:1175 +#: ../Doc/c-api/typeobj.rst:1233 msgid "" "This bit is set when the class implements the :ref:`vectorcall protocol " "`. See :c:member:`~PyTypeObject.tp_vectorcall_offset` for " @@ -2349,16 +2467,26 @@ msgstr "" "`. Consulte :c:member:`~PyTypeObject.tp_vectorcall_offset` para " "obtener más detalles." -#: ../Doc/c-api/typeobj.rst:1181 +#: ../Doc/c-api/typeobj.rst:1239 +#, fuzzy msgid "" -"This bit is inherited for types with the :const:`Py_TPFLAGS_IMMUTABLETYPE` " -"flag set, if :c:member:`~PyTypeObject.tp_call` is also inherited." +"This bit is inherited if :c:member:`~PyTypeObject.tp_call` is also inherited." +msgstr "" +"Este campo está en desuso. Use :c:member:`~PyTypeObject.tp_finalize` en su " +"lugar." + +#: ../Doc/c-api/typeobj.rst:1246 +msgid "" +"This flag is now removed from a class when the class's :py:meth:`~object." +"__call__` method is reassigned." msgstr "" -"Este bit se hereda para tipos con el indicador establecido :const:" -"`Py_TPFLAGS_IMMUTABLETYPE`, si :c:member:`~PyTypeObject.tp_call` también se " -"hereda." -#: ../Doc/c-api/typeobj.rst:1189 +#: ../Doc/c-api/typeobj.rst:1249 +#, fuzzy +msgid "This flag can now be inherited by mutable classes." +msgstr "Este campo no es heredado por los subtipos." + +#: ../Doc/c-api/typeobj.rst:1253 msgid "" "This bit is set for type objects that are immutable: type attributes cannot " "be set nor deleted." @@ -2366,7 +2494,7 @@ msgstr "" "Este bit se establece para objetos de tipo que son inmutables: los atributos " "de tipo no se pueden establecer ni eliminar." -#: ../Doc/c-api/typeobj.rst:1191 +#: ../Doc/c-api/typeobj.rst:1255 msgid "" ":c:func:`PyType_Ready` automatically applies this flag to :ref:`static types " "`." @@ -2374,11 +2502,11 @@ msgstr "" ":c:func:`PyType_Ready` aplica automáticamente este indicador a :ref:`static " "types `." -#: ../Doc/c-api/typeobj.rst:1196 ../Doc/c-api/typeobj.rst:1215 +#: ../Doc/c-api/typeobj.rst:1260 msgid "This flag is not inherited." msgstr "Este flag no se hereda." -#: ../Doc/c-api/typeobj.rst:1202 +#: ../Doc/c-api/typeobj.rst:1266 msgid "" "Disallow creating instances of the type: set :c:member:`~PyTypeObject." "tp_new` to NULL and don't create the ``__new__`` key in the type dictionary." @@ -2387,7 +2515,7 @@ msgstr "" "`~PyTypeObject.tp_new` en NULL y no cree la clave ``__new__`` en el " "diccionario de tipos." -#: ../Doc/c-api/typeobj.rst:1206 +#: ../Doc/c-api/typeobj.rst:1270 msgid "" "The flag must be set before creating the type, not after. For example, it " "must be set before :c:func:`PyType_Ready` is called on the type." @@ -2396,7 +2524,7 @@ msgstr "" "ejemplo, debe establecerse antes de que se llame a :c:func:`PyType_Ready` en " "el tipo." -#: ../Doc/c-api/typeobj.rst:1209 +#: ../Doc/c-api/typeobj.rst:1273 msgid "" "The flag is set automatically on :ref:`static types ` if :c:" "member:`~PyTypeObject.tp_base` is NULL or ``&PyBaseObject_Type`` and :c:" @@ -2406,7 +2534,21 @@ msgstr "" "types>` si :c:member:`~PyTypeObject.tp_base` es NULL o " "``&PyBaseObject_Type`` y :c:member:`~PyTypeObject.tp_new` es NULL." -#: ../Doc/c-api/typeobj.rst:1222 +#: ../Doc/c-api/typeobj.rst:1279 +msgid "" +"This flag is not inherited. However, subclasses will not be instantiable " +"unless they provide a non-NULL :c:member:`~PyTypeObject.tp_new` (which is " +"only possible via the C API)." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1286 +msgid "" +"To disallow instantiating a class directly but allow instantiating its " +"subclasses (e.g. for an :term:`abstract base class`), do not use this flag. " +"Instead, make :c:member:`~PyTypeObject.tp_new` only succeed for subclasses." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1297 msgid "" "This bit indicates that instances of the class may match mapping patterns " "when used as the subject of a :keyword:`match` block. It is automatically " @@ -2419,28 +2561,29 @@ msgstr "" "class:`collections.abc.Mapping`, y se desarma al registrar :class:" "`collections.abc.Sequence`." -#: ../Doc/c-api/typeobj.rst:1229 ../Doc/c-api/typeobj.rst:1251 +#: ../Doc/c-api/typeobj.rst:1304 ../Doc/c-api/typeobj.rst:1326 #, fuzzy msgid "" -":const:`Py_TPFLAGS_MAPPING` and :const:`Py_TPFLAGS_SEQUENCE` are mutually " -"exclusive; it is an error to enable both flags simultaneously." +":c:macro:`Py_TPFLAGS_MAPPING` and :c:macro:`Py_TPFLAGS_SEQUENCE` are " +"mutually exclusive; it is an error to enable both flags simultaneously." msgstr "" ":const:`Py_TPFLAGS_MAPPING` y :const:`Py_TPFLAGS_SEQUENCE` se excluyen " "mutuamente; es un error habilitar ambos indicadores simultáneamente." -#: ../Doc/c-api/typeobj.rst:1234 +#: ../Doc/c-api/typeobj.rst:1309 +#, fuzzy msgid "" -"This flag is inherited by types that do not already set :const:" +"This flag is inherited by types that do not already set :c:macro:" "`Py_TPFLAGS_SEQUENCE`." msgstr "" "Esta bandera la heredan los tipos que aún no configuran :const:" "`Py_TPFLAGS_SEQUENCE`." -#: ../Doc/c-api/typeobj.rst:1237 ../Doc/c-api/typeobj.rst:1259 +#: ../Doc/c-api/typeobj.rst:1312 ../Doc/c-api/typeobj.rst:1334 msgid ":pep:`634` -- Structural Pattern Matching: Specification" msgstr ":pep:`634` - Coincidencia de patrones estructurales: especificación" -#: ../Doc/c-api/typeobj.rst:1244 +#: ../Doc/c-api/typeobj.rst:1319 msgid "" "This bit indicates that instances of the class may match sequence patterns " "when used as the subject of a :keyword:`match` block. It is automatically " @@ -2453,15 +2596,28 @@ msgstr "" "`collections.abc.Sequence`, y se desarma al registrar :class:`collections." "abc.Mapping`." -#: ../Doc/c-api/typeobj.rst:1256 +#: ../Doc/c-api/typeobj.rst:1331 +#, fuzzy msgid "" -"This flag is inherited by types that do not already set :const:" +"This flag is inherited by types that do not already set :c:macro:" "`Py_TPFLAGS_MAPPING`." msgstr "" "Esta bandera la heredan los tipos que aún no configuran :const:" "`Py_TPFLAGS_MAPPING`." -#: ../Doc/c-api/typeobj.rst:1266 +#: ../Doc/c-api/typeobj.rst:1341 +msgid "" +"Internal. Do not set or unset this flag. To indicate that a class has " +"changed call :c:func:`PyType_Modified`" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1345 +msgid "" +"This flag is present in header files, but is an internal feature and should " +"not be used. It will be removed in a future version of CPython" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1351 msgid "" "An optional pointer to a NUL-terminated C string giving the docstring for " "this type object. This is exposed as the :attr:`__doc__` attribute on the " @@ -2471,21 +2627,22 @@ msgstr "" "que proporciona la cadena de documentación para este tipo de objeto. Esto se " "expone como el atributo :attr:`__doc__` en el tipo y las instancias del tipo." -#: ../Doc/c-api/typeobj.rst:1272 +#: ../Doc/c-api/typeobj.rst:1357 msgid "This field is *not* inherited by subtypes." msgstr "Este campo es *no* heredado por los subtipos." -#: ../Doc/c-api/typeobj.rst:1277 +#: ../Doc/c-api/typeobj.rst:1362 +#, fuzzy msgid "" "An optional pointer to a traversal function for the garbage collector. This " -"is only used if the :const:`Py_TPFLAGS_HAVE_GC` flag bit is set. The " +"is only used if the :c:macro:`Py_TPFLAGS_HAVE_GC` flag bit is set. The " "signature is::" msgstr "" "Un puntero opcional a una función transversal para el recolector de basura. " "Esto solo se usa si se establece el bit de la bandera (*flag*) :const:" "`Py_TPFLAGS_HAVE_GC`. La firma es::" -#: ../Doc/c-api/typeobj.rst:1282 ../Doc/c-api/typeobj.rst:1402 +#: ../Doc/c-api/typeobj.rst:1367 ../Doc/c-api/typeobj.rst:1488 msgid "" "More information about Python's garbage collection scheme can be found in " "section :ref:`supporting-cycle-detection`." @@ -2493,14 +2650,15 @@ msgstr "" "Se puede encontrar más información sobre el esquema de recolección de basura " "de Python en la sección :ref:`supporting-cycle-detection`." -#: ../Doc/c-api/typeobj.rst:1285 +#: ../Doc/c-api/typeobj.rst:1370 +#, fuzzy msgid "" "The :c:member:`~PyTypeObject.tp_traverse` pointer is used by the garbage " "collector to detect reference cycles. A typical implementation of a :c:" "member:`~PyTypeObject.tp_traverse` function simply calls :c:func:`Py_VISIT` " "on each of the instance's members that are Python objects that the instance " -"owns. For example, this is function :c:func:`local_traverse` from the :mod:" -"`_thread` extension module::" +"owns. For example, this is function :c:func:`!local_traverse` from the :mod:" +"`!_thread` extension module::" msgstr "" "El puntero :c:member:`~PyTypeObject.tp_traverse` es utilizado por el " "recolector de basura para detectar ciclos de referencia. Una implementación " @@ -2509,7 +2667,7 @@ msgstr "" "de Python que posee la instancia. Por ejemplo, esta es la función :c:func:" "`local_traverse` del módulo de extensión :mod:`_thread`::" -#: ../Doc/c-api/typeobj.rst:1300 +#: ../Doc/c-api/typeobj.rst:1385 msgid "" "Note that :c:func:`Py_VISIT` is called only on those members that can " "participate in reference cycles. Although there is also a ``self->key`` " @@ -2521,7 +2679,7 @@ msgstr "" "``self->key``, solo puede ser ``NULL`` o una cadena de caracteres de Python " "y, por lo tanto, no puede ser parte de un ciclo de referencia." -#: ../Doc/c-api/typeobj.rst:1304 +#: ../Doc/c-api/typeobj.rst:1389 msgid "" "On the other hand, even if you know a member can never be part of a cycle, " "as a debugging aid you may want to visit it anyway just so the :mod:`gc` " @@ -2532,7 +2690,7 @@ msgstr "" "para que la función :func:`~gc.get_referents` del módulo :mod:`gc` lo " "incluirá." -#: ../Doc/c-api/typeobj.rst:1309 +#: ../Doc/c-api/typeobj.rst:1394 msgid "" "When implementing :c:member:`~PyTypeObject.tp_traverse`, only the members " "that the instance *owns* (by having :term:`strong references ` hold a reference to " "their type. Their traversal function must therefore either visit :c:func:" @@ -2580,7 +2738,7 @@ msgstr "" "al heap). Si no es así, es posible que el objeto de tipo no se recolecte " "como basura." -#: ../Doc/c-api/typeobj.rst:1333 +#: ../Doc/c-api/typeobj.rst:1418 msgid "" "Heap-allocated types are expected to visit ``Py_TYPE(self)`` in " "``tp_traverse``. In earlier versions of Python, due to `bug 40217 `_, hacer esto puede provocar fallas en " "las subclases." -#: ../Doc/c-api/typeobj.rst:1342 +#: ../Doc/c-api/typeobj.rst:1427 +#, fuzzy msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." -"tp_clear` and the :const:`Py_TPFLAGS_HAVE_GC` flag bit: the flag bit, :c:" +"tp_clear` and the :c:macro:`Py_TPFLAGS_HAVE_GC` flag bit: the flag bit, :c:" "member:`~PyTypeObject.tp_traverse`, and :c:member:`~PyTypeObject.tp_clear` " "are all inherited from the base type if they are all zero in the subtype." msgstr "" @@ -2603,17 +2762,18 @@ msgstr "" "bandera, :c:member:`~PyTypeObject.tp_traverse`, y :c:member:`~PyTypeObject." "tp_clear` se heredan todos del tipo base si todos son cero en el subtipo." -#: ../Doc/c-api/typeobj.rst:1350 +#: ../Doc/c-api/typeobj.rst:1435 +#, fuzzy msgid "" "An optional pointer to a clear function for the garbage collector. This is " -"only used if the :const:`Py_TPFLAGS_HAVE_GC` flag bit is set. The signature " -"is::" +"only used if the :c:macro:`Py_TPFLAGS_HAVE_GC` flag bit is set. The " +"signature is::" msgstr "" "Un puntero opcional a una función de limpieza (*clear function*) para el " "recolector de basura. Esto solo se usa si se establece el bit de bandera :" "const:`Py_TPFLAGS_HAVE_GC`. La firma es::" -#: ../Doc/c-api/typeobj.rst:1355 +#: ../Doc/c-api/typeobj.rst:1440 msgid "" "The :c:member:`~PyTypeObject.tp_clear` member function is used to break " "reference cycles in cyclic garbage detected by the garbage collector. Taken " @@ -2640,7 +2800,7 @@ msgstr "" "tupla. Esto no es inmediatamente obvio, y rara vez hay una buena razón para " "evitar la implementación de :c:member:`~PyTypeObject.tp_clear`." -#: ../Doc/c-api/typeobj.rst:1365 +#: ../Doc/c-api/typeobj.rst:1450 msgid "" "Implementations of :c:member:`~PyTypeObject.tp_clear` should drop the " "instance's references to those of its members that may be Python objects, " @@ -2652,19 +2812,20 @@ msgstr "" "ser objetos de Python, y establecer sus punteros a esos miembros en " "``NULL``, como en el siguiente ejemplo::" -#: ../Doc/c-api/typeobj.rst:1379 +#: ../Doc/c-api/typeobj.rst:1464 +#, fuzzy msgid "" "The :c:func:`Py_CLEAR` macro should be used, because clearing references is " -"delicate: the reference to the contained object must not be decremented " -"until after the pointer to the contained object is set to ``NULL``. This is " -"because decrementing the reference count may cause the contained object to " -"become trash, triggering a chain of reclamation activity that may include " -"invoking arbitrary Python code (due to finalizers, or weakref callbacks, " -"associated with the contained object). If it's possible for such code to " -"reference *self* again, it's important that the pointer to the contained " -"object be ``NULL`` at that time, so that *self* knows the contained object " -"can no longer be used. The :c:func:`Py_CLEAR` macro performs the operations " -"in a safe order." +"delicate: the reference to the contained object must not be released (via :" +"c:func:`Py_DECREF`) until after the pointer to the contained object is set " +"to ``NULL``. This is because releasing the reference may cause the " +"contained object to become trash, triggering a chain of reclamation activity " +"that may include invoking arbitrary Python code (due to finalizers, or " +"weakref callbacks, associated with the contained object). If it's possible " +"for such code to reference *self* again, it's important that the pointer to " +"the contained object be ``NULL`` at that time, so that *self* knows the " +"contained object can no longer be used. The :c:func:`Py_CLEAR` macro " +"performs the operations in a safe order." msgstr "" "Se debe utilizar el macro :c:func:`Py_CLEAR`, porque borrar las referencias " "es delicado: la referencia al objeto contenido no se debe disminuir hasta " @@ -2679,7 +2840,7 @@ msgstr "" "objeto contenido ya no se puede usar. El macro :c:func:`Py_CLEAR` realiza " "las operaciones en un orden seguro." -#: ../Doc/c-api/typeobj.rst:1390 +#: ../Doc/c-api/typeobj.rst:1476 msgid "" "Note that :c:member:`~PyTypeObject.tp_clear` is not *always* called before " "an instance is deallocated. For example, when reference counting is enough " @@ -2692,7 +2853,7 @@ msgstr "" "recolector de basura cíclico no está involucrado y se llama directamente a :" "c:member:`~PyTypeObject.tp_dealloc`." -#: ../Doc/c-api/typeobj.rst:1396 +#: ../Doc/c-api/typeobj.rst:1482 msgid "" "Because the goal of :c:member:`~PyTypeObject.tp_clear` functions is to break " "reference cycles, it's not necessary to clear contained objects like Python " @@ -2708,11 +2869,12 @@ msgstr "" "objetos Python contenidos y escribir la función :c:member:`~PyTypeObject." "tp_dealloc` para invocar :c:member:`~PyTypeObject.tp_clear`." -#: ../Doc/c-api/typeobj.rst:1409 +#: ../Doc/c-api/typeobj.rst:1495 +#, fuzzy msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." -"tp_traverse` and the :const:`Py_TPFLAGS_HAVE_GC` flag bit: the flag bit, :c:" -"member:`~PyTypeObject.tp_traverse`, and :c:member:`~PyTypeObject.tp_clear` " +"tp_traverse` and the :c:macro:`Py_TPFLAGS_HAVE_GC` flag bit: the flag bit, :" +"c:member:`~PyTypeObject.tp_traverse`, and :c:member:`~PyTypeObject.tp_clear` " "are all inherited from the base type if they are all zero in the subtype." msgstr "" "Este campo es heredado por subtipos junto con :c:member:`~PyTypeObject." @@ -2720,13 +2882,13 @@ msgstr "" "bandera, :c:member:`~PyTypeObject.tp_traverse`, y :c:member:`~PyTypeObject." "tp_clear` se heredan todos del tipo base si todos son cero en el subtipo." -#: ../Doc/c-api/typeobj.rst:1417 +#: ../Doc/c-api/typeobj.rst:1503 msgid "" "An optional pointer to the rich comparison function, whose signature is::" msgstr "" "Un puntero opcional a la función de comparación enriquecida, cuya firma es::" -#: ../Doc/c-api/typeobj.rst:1421 +#: ../Doc/c-api/typeobj.rst:1507 msgid "" "The first parameter is guaranteed to be an instance of the type that is " "defined by :c:type:`PyTypeObject`." @@ -2734,7 +2896,7 @@ msgstr "" "Se garantiza que el primer parámetro será una instancia del tipo definido " "por :c:type:`PyTypeObject`." -#: ../Doc/c-api/typeobj.rst:1424 +#: ../Doc/c-api/typeobj.rst:1510 msgid "" "The function should return the result of the comparison (usually ``Py_True`` " "or ``Py_False``). If the comparison is undefined, it must return " @@ -2746,7 +2908,7 @@ msgstr "" "retornar ``Py_NotImplemented``, si se produce otro error, debe retornar " "``NULL`` y establecer una condición de excepción." -#: ../Doc/c-api/typeobj.rst:1429 +#: ../Doc/c-api/typeobj.rst:1515 msgid "" "The following constants are defined to be used as the third argument for :c:" "member:`~PyTypeObject.tp_richcompare` and for :c:func:`PyObject_RichCompare`:" @@ -2755,70 +2917,46 @@ msgstr "" "argumento para :c:member:`~PyTypeObject.tp_richcompare` y para :c:func:" "`PyObject_RichCompare`:" -#: ../Doc/c-api/typeobj.rst:1433 +#: ../Doc/c-api/typeobj.rst:1521 msgid "Constant" msgstr "Constante" -#: ../Doc/c-api/typeobj.rst:1433 +#: ../Doc/c-api/typeobj.rst:1521 msgid "Comparison" msgstr "Comparación" -#: ../Doc/c-api/typeobj.rst:1435 -msgid ":const:`Py_LT`" -msgstr ":const:`Py_LT`" - -#: ../Doc/c-api/typeobj.rst:1435 +#: ../Doc/c-api/typeobj.rst:1523 msgid "``<``" msgstr "``<``" -#: ../Doc/c-api/typeobj.rst:1437 -msgid ":const:`Py_LE`" -msgstr ":const:`Py_LE`" - -#: ../Doc/c-api/typeobj.rst:1437 +#: ../Doc/c-api/typeobj.rst:1525 msgid "``<=``" msgstr "``<=``" -#: ../Doc/c-api/typeobj.rst:1439 -msgid ":const:`Py_EQ`" -msgstr ":const:`Py_EQ`" - -#: ../Doc/c-api/typeobj.rst:1439 +#: ../Doc/c-api/typeobj.rst:1527 msgid "``==``" msgstr "``==``" -#: ../Doc/c-api/typeobj.rst:1441 -msgid ":const:`Py_NE`" -msgstr ":const:`Py_NE`" - -#: ../Doc/c-api/typeobj.rst:1441 +#: ../Doc/c-api/typeobj.rst:1529 msgid "``!=``" msgstr "``!=``" -#: ../Doc/c-api/typeobj.rst:1443 -msgid ":const:`Py_GT`" -msgstr ":const:`Py_GT`" - -#: ../Doc/c-api/typeobj.rst:1443 +#: ../Doc/c-api/typeobj.rst:1531 msgid "``>``" msgstr "``>``" -#: ../Doc/c-api/typeobj.rst:1445 -msgid ":const:`Py_GE`" -msgstr ":const:`Py_GE`" - -#: ../Doc/c-api/typeobj.rst:1445 +#: ../Doc/c-api/typeobj.rst:1533 msgid "``>=``" msgstr "``>=``" -#: ../Doc/c-api/typeobj.rst:1448 +#: ../Doc/c-api/typeobj.rst:1536 msgid "" "The following macro is defined to ease writing rich comparison functions:" msgstr "" "El siguiente macro está definido para facilitar la escritura de funciones de " "comparación enriquecidas:" -#: ../Doc/c-api/typeobj.rst:1452 +#: ../Doc/c-api/typeobj.rst:1540 msgid "" "Return ``Py_True`` or ``Py_False`` from the function, depending on the " "result of a comparison. VAL_A and VAL_B must be orderable by C comparison " @@ -2831,17 +2969,16 @@ msgstr "" "tercer argumento especifica la operación solicitada, como por ejemplo :c:" "func:`PyObject_RichCompare`." -#: ../Doc/c-api/typeobj.rst:1458 -msgid "The return value's reference count is properly incremented." +#: ../Doc/c-api/typeobj.rst:1546 +msgid "The returned value is a new :term:`strong reference`." msgstr "" -"El conteo de referencia del valor de retorno se incrementa correctamente." -#: ../Doc/c-api/typeobj.rst:1460 +#: ../Doc/c-api/typeobj.rst:1548 msgid "On error, sets an exception and returns ``NULL`` from the function." msgstr "" "En caso de error, establece una excepción y retorna ``NULL`` de la función." -#: ../Doc/c-api/typeobj.rst:1468 +#: ../Doc/c-api/typeobj.rst:1556 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_hash`: a subtype inherits :c:member:`~PyTypeObject.tp_richcompare` and :c:" @@ -2853,19 +2990,27 @@ msgstr "" "member:`~PyTypeObject.tp_hash` cuando el subtipo :c:member:`~PyTypeObject." "tp_richcompare` y :c:member:`~PyTypeObject.tp_hash` son ambos ``NULL``." -#: ../Doc/c-api/typeobj.rst:1475 +#: ../Doc/c-api/typeobj.rst:1563 +#, fuzzy msgid "" -":c:type:`PyBaseObject_Type` provides a :attr:`tp_richcompare` " -"implementation, which may be inherited. However, if only :attr:`tp_hash` is " -"defined, not even the inherited function is used and instances of the type " -"will not be able to participate in any comparisons." +":c:data:`PyBaseObject_Type` provides a :c:member:`~PyTypeObject." +"tp_richcompare` implementation, which may be inherited. However, if only :c:" +"member:`~PyTypeObject.tp_hash` is defined, not even the inherited function " +"is used and instances of the type will not be able to participate in any " +"comparisons." msgstr "" ":c:type:`PyBaseObject_Type` proporciona una implementación :attr:" "`tp_richcompare`, que puede ser heredada. Sin embargo, si solo se define :" "attr:`tp_hash`, ni siquiera se utiliza la función heredada y las instancias " "del tipo no podrán participar en ninguna comparación." -#: ../Doc/c-api/typeobj.rst:1484 +#: ../Doc/c-api/typeobj.rst:1572 +msgid "" +"While this field is still supported, :c:macro:`Py_TPFLAGS_MANAGED_WEAKREF` " +"should be used instead, if at all possible." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1575 #, fuzzy msgid "" "If the instances of this type are weakly referenceable, this field is " @@ -2883,7 +3028,7 @@ msgstr "" "estructura de la instancia debe incluir un campo de tipo :c:type:`PyObject*` " "que se inicializa en ``NULL``." -#: ../Doc/c-api/typeobj.rst:1491 +#: ../Doc/c-api/typeobj.rst:1582 msgid "" "Do not confuse this field with :c:member:`~PyTypeObject.tp_weaklist`; that " "is the list head for weak references to the type object itself." @@ -2891,7 +3036,17 @@ msgstr "" "No confunda este campo con :c:member:`~PyTypeObject.tp_weaklist`; ese es el " "encabezado de la lista para referencias débiles al objeto de tipo en sí." -#: ../Doc/c-api/typeobj.rst:1496 +#: ../Doc/c-api/typeobj.rst:1585 +#, fuzzy +msgid "" +"It is an error to set both the :c:macro:`Py_TPFLAGS_MANAGED_WEAKREF` bit " +"and :c:member:`~PyTypeObject.tp_weaklist`." +msgstr "" +"Este bit se hereda para tipos con el indicador establecido :const:" +"`Py_TPFLAGS_IMMUTABLETYPE`, si :c:member:`~PyTypeObject.tp_call` también se " +"hereda." + +#: ../Doc/c-api/typeobj.rst:1590 msgid "" "This field is inherited by subtypes, but see the rules listed below. A " "subtype may override this offset; this means that the subtype uses a " @@ -2906,45 +3061,15 @@ msgstr "" "encuentra a través de :c:member:`~PyTypeObject.tp_weaklistoffset`, esto no " "debería ser un problema." -#: ../Doc/c-api/typeobj.rst:1501 -msgid "" -"When a type defined by a class statement has no :attr:`~object.__slots__` " -"declaration, and none of its base types are weakly referenceable, the type " -"is made weakly referenceable by adding a weak reference list head slot to " -"the instance layout and setting the :c:member:`~PyTypeObject." -"tp_weaklistoffset` of that slot's offset." -msgstr "" -"Cuando un tipo definido por una declaración de clase no tiene :attr:`~object." -"__slots__` declaración, y ninguno de sus tipos base es débilmente " -"referenciable, el tipo se hace débilmente referenciable al agregar una " -"ranura de encabezado de lista de referencia débil al diseño de la instancia " -"y configurando :c:member:`~PyTypeObject.tp_weaklistoffset` del " -"desplazamiento de esa ranura." - -#: ../Doc/c-api/typeobj.rst:1506 -msgid "" -"When a type's :attr:`__slots__` declaration contains a slot named :attr:" -"`__weakref__`, that slot becomes the weak reference list head for instances " -"of the type, and the slot's offset is stored in the type's :c:member:" -"`~PyTypeObject.tp_weaklistoffset`." -msgstr "" -"Cuando la declaración de un tipo :attr:`__slots__` contiene un espacio " -"llamado :attr:`__weakref__`, ese espacio se convierte en el encabezado de la " -"lista de referencia débil para las instancias del tipo, y el desplazamiento " -"del espacio se almacena en el tipo :c:member:`~PyTypeObject." -"tp_weaklistoffset`." - -#: ../Doc/c-api/typeobj.rst:1511 +#: ../Doc/c-api/typeobj.rst:1597 msgid "" -"When a type's :attr:`__slots__` declaration does not contain a slot named :" -"attr:`__weakref__`, the type inherits its :c:member:`~PyTypeObject." -"tp_weaklistoffset` from its base type." +"If the :c:macro:`Py_TPFLAGS_MANAGED_WEAKREF` bit is set in the :c:member:" +"`~PyTypeObject.tp_dict` field, then :c:member:`~PyTypeObject." +"tp_weaklistoffset` will be set to a negative value, to indicate that it is " +"unsafe to use this field." msgstr "" -"Cuando la declaración de un tipo :attr:`__slots__` no contiene un espacio " -"llamado :attr:`__weakref__`, el tipo hereda su :c:member:`~PyTypeObject." -"tp_weaklistoffset` de su tipo base." -#: ../Doc/c-api/typeobj.rst:1518 +#: ../Doc/c-api/typeobj.rst:1605 #, fuzzy msgid "" "An optional pointer to a function that returns an :term:`iterator` for the " @@ -2955,11 +3080,11 @@ msgstr "" "presencia normalmente indica que las instancias de este tipo son iterables " "(aunque las secuencias pueden ser iterables sin esta función)." -#: ../Doc/c-api/typeobj.rst:1522 +#: ../Doc/c-api/typeobj.rst:1609 msgid "This function has the same signature as :c:func:`PyObject_GetIter`::" msgstr "Esta función tiene la misma firma que :c:func:`PyObject_GetIter`::" -#: ../Doc/c-api/typeobj.rst:1533 +#: ../Doc/c-api/typeobj.rst:1620 #, fuzzy msgid "" "An optional pointer to a function that returns the next item in an :term:" @@ -2968,7 +3093,7 @@ msgstr "" "Un puntero opcional a una función que retorna el siguiente elemento en un " "iterador. La firma es::" -#: ../Doc/c-api/typeobj.rst:1538 +#: ../Doc/c-api/typeobj.rst:1625 msgid "" "When the iterator is exhausted, it must return ``NULL``; a :exc:" "`StopIteration` exception may or may not be set. When another error occurs, " @@ -2980,7 +3105,7 @@ msgstr "" "también debe retornar ``NULL``. Su presencia indica que las instancias de " "este tipo son iteradores." -#: ../Doc/c-api/typeobj.rst:1543 +#: ../Doc/c-api/typeobj.rst:1630 msgid "" "Iterator types should also define the :c:member:`~PyTypeObject.tp_iter` " "function, and that function should return the iterator instance itself (not " @@ -2990,11 +3115,11 @@ msgstr "" "`~PyTypeObject.tp_iter`, y esa función debería retornar la instancia de " "iterador en sí (no una nueva instancia de iterador)." -#: ../Doc/c-api/typeobj.rst:1547 +#: ../Doc/c-api/typeobj.rst:1634 msgid "This function has the same signature as :c:func:`PyIter_Next`." msgstr "Esta función tiene la misma firma que :c:func:`PyIter_Next`." -#: ../Doc/c-api/typeobj.rst:1556 +#: ../Doc/c-api/typeobj.rst:1643 msgid "" "An optional pointer to a static ``NULL``-terminated array of :c:type:" "`PyMethodDef` structures, declaring regular methods of this type." @@ -3002,7 +3127,7 @@ msgstr "" "Un puntero opcional a un arreglo estático terminado en ``NULL`` de " "estructuras :c:type:`PyMethodDef`, declarando métodos regulares de este tipo." -#: ../Doc/c-api/typeobj.rst:1559 +#: ../Doc/c-api/typeobj.rst:1646 msgid "" "For each entry in the array, an entry is added to the type's dictionary " "(see :c:member:`~PyTypeObject.tp_dict` below) containing a method descriptor." @@ -3011,7 +3136,7 @@ msgstr "" "tipo (ver :c:member:`~PyTypeObject.tp_dict` a continuación) que contiene un " "descriptor *method*." -#: ../Doc/c-api/typeobj.rst:1564 +#: ../Doc/c-api/typeobj.rst:1651 msgid "" "This field is not inherited by subtypes (methods are inherited through a " "different mechanism)." @@ -3019,7 +3144,7 @@ msgstr "" "Los subtipos no heredan este campo (los métodos se heredan mediante un " "mecanismo diferente)." -#: ../Doc/c-api/typeobj.rst:1570 +#: ../Doc/c-api/typeobj.rst:1657 msgid "" "An optional pointer to a static ``NULL``-terminated array of :c:type:" "`PyMemberDef` structures, declaring regular data members (fields or slots) " @@ -3029,7 +3154,7 @@ msgstr "" "estructuras :c:type:`PyMemberDef`, declarando miembros de datos regulares " "(campos o ranuras) de instancias de este tipo." -#: ../Doc/c-api/typeobj.rst:1574 +#: ../Doc/c-api/typeobj.rst:1661 msgid "" "For each entry in the array, an entry is added to the type's dictionary " "(see :c:member:`~PyTypeObject.tp_dict` below) containing a member descriptor." @@ -3038,7 +3163,7 @@ msgstr "" "tipo (ver :c:member:`~PyTypeObject.tp_dict` a continuación) que contiene un " "descriptor *member*." -#: ../Doc/c-api/typeobj.rst:1579 +#: ../Doc/c-api/typeobj.rst:1666 msgid "" "This field is not inherited by subtypes (members are inherited through a " "different mechanism)." @@ -3046,7 +3171,7 @@ msgstr "" "Los subtipos no heredan este campo (los miembros se heredan mediante un " "mecanismo diferente)." -#: ../Doc/c-api/typeobj.rst:1585 +#: ../Doc/c-api/typeobj.rst:1672 msgid "" "An optional pointer to a static ``NULL``-terminated array of :c:type:" "`PyGetSetDef` structures, declaring computed attributes of instances of this " @@ -3056,7 +3181,7 @@ msgstr "" "estructuras :c:type:`PyGetSetDef`, declarando atributos calculados de " "instancias de este tipo." -#: ../Doc/c-api/typeobj.rst:1588 +#: ../Doc/c-api/typeobj.rst:1675 msgid "" "For each entry in the array, an entry is added to the type's dictionary " "(see :c:member:`~PyTypeObject.tp_dict` below) containing a getset descriptor." @@ -3065,7 +3190,7 @@ msgstr "" "tipo (ver :c:member:`~PyTypeObject.tp_dict` a continuación) que contiene un " "descriptor *getset*." -#: ../Doc/c-api/typeobj.rst:1593 +#: ../Doc/c-api/typeobj.rst:1680 msgid "" "This field is not inherited by subtypes (computed attributes are inherited " "through a different mechanism)." @@ -3073,7 +3198,7 @@ msgstr "" "Este campo no es heredado por los subtipos (los atributos computados se " "heredan a través de un mecanismo diferente)." -#: ../Doc/c-api/typeobj.rst:1599 +#: ../Doc/c-api/typeobj.rst:1686 msgid "" "An optional pointer to a base type from which type properties are " "inherited. At this level, only single inheritance is supported; multiple " @@ -3084,7 +3209,7 @@ msgstr "" "tipo. En este nivel, solo se admite una herencia única; La herencia múltiple " "requiere la creación dinámica de un objeto tipo llamando al metatipo." -#: ../Doc/c-api/typeobj.rst:1607 +#: ../Doc/c-api/typeobj.rst:1694 msgid "" "Slot initialization is subject to the rules of initializing globals. C99 " "requires the initializers to be \"address constants\". Function designators " @@ -3097,10 +3222,11 @@ msgstr "" "con conversión implícita a un puntero, son constantes de dirección C99 " "válidas." -#: ../Doc/c-api/typeobj.rst:1612 +#: ../Doc/c-api/typeobj.rst:1699 +#, fuzzy msgid "" "However, the unary '&' operator applied to a non-static variable like :c:" -"func:`PyBaseObject_Type` is not required to produce an address constant. " +"data:`PyBaseObject_Type` is not required to produce an address constant. " "Compilers may support this (gcc does), MSVC does not. Both compilers are " "strictly standard conforming in this particular behavior." msgstr "" @@ -3110,7 +3236,7 @@ msgstr "" "Ambos compiladores son estrictamente estándar conforme a este comportamiento " "particular." -#: ../Doc/c-api/typeobj.rst:1618 +#: ../Doc/c-api/typeobj.rst:1705 msgid "" "Consequently, :c:member:`~PyTypeObject.tp_base` should be set in the " "extension module's init function." @@ -3118,11 +3244,11 @@ msgstr "" "En consecuencia, :c:member:`~PyTypeObject.tp_base` debe establecerse en la " "función *init* del módulo de extensión." -#: ../Doc/c-api/typeobj.rst:1623 +#: ../Doc/c-api/typeobj.rst:1710 msgid "This field is not inherited by subtypes (obviously)." msgstr "Este campo no es heredado por los subtipos (obviamente)." -#: ../Doc/c-api/typeobj.rst:1627 +#: ../Doc/c-api/typeobj.rst:1714 msgid "" "This field defaults to ``&PyBaseObject_Type`` (which to Python programmers " "is known as the type :class:`object`)." @@ -3130,17 +3256,20 @@ msgstr "" "Este campo predeterminado es ``&PyBaseObject_Type`` (que para los " "programadores de Python se conoce como el tipo :class:`objeto`)." -#: ../Doc/c-api/typeobj.rst:1633 +#: ../Doc/c-api/typeobj.rst:1720 msgid "The type's dictionary is stored here by :c:func:`PyType_Ready`." msgstr "El diccionario del tipo se almacena aquí por :c:func:`PyType_Ready`." -#: ../Doc/c-api/typeobj.rst:1635 +#: ../Doc/c-api/typeobj.rst:1722 +#, fuzzy msgid "" "This field should normally be initialized to ``NULL`` before PyType_Ready is " "called; it may also be initialized to a dictionary containing initial " "attributes for the type. Once :c:func:`PyType_Ready` has initialized the " "type, extra attributes for the type may be added to this dictionary only if " -"they don't correspond to overloaded operations (like :meth:`__add__`)." +"they don't correspond to overloaded operations (like :meth:`~object." +"__add__`). Once initialization for the type has finished, this field should " +"be treated as read-only." msgstr "" "Este campo normalmente debe inicializarse a ``NULL`` antes de llamar a " "``PyType_Ready``; también se puede inicializar en un diccionario que " @@ -3149,7 +3278,20 @@ msgstr "" "agregarse a este diccionario solo si no corresponden a operaciones " "sobrecargadas (como :meth:`__add__`)." -#: ../Doc/c-api/typeobj.rst:1643 +#: ../Doc/c-api/typeobj.rst:1730 +msgid "" +"Some types may not store their dictionary in this slot. Use :c:func:" +"`PyType_GetDict` to retrieve the dictionary for an arbitrary type." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1736 +msgid "" +"Internals detail: For static builtin types, this is always ``NULL``. " +"Instead, the dict for such types is stored on ``PyInterpreterState``. Use :c:" +"func:`PyType_GetDict` to get the dict for an arbitrary type." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1742 msgid "" "This field is not inherited by subtypes (though the attributes defined in " "here are inherited through a different mechanism)." @@ -3157,7 +3299,7 @@ msgstr "" "Este campo no es heredado por los subtipos (aunque los atributos definidos " "aquí se heredan a través de un mecanismo diferente)." -#: ../Doc/c-api/typeobj.rst:1648 +#: ../Doc/c-api/typeobj.rst:1747 msgid "" "If this field is ``NULL``, :c:func:`PyType_Ready` will assign a new " "dictionary to it." @@ -3165,7 +3307,7 @@ msgstr "" "Si este campo es ``NULL``, :c:func:`PyType_Ready` le asignará un nuevo " "diccionario." -#: ../Doc/c-api/typeobj.rst:1653 +#: ../Doc/c-api/typeobj.rst:1752 msgid "" "It is not safe to use :c:func:`PyDict_SetItem` on or otherwise modify :c:" "member:`~PyTypeObject.tp_dict` with the dictionary C-API." @@ -3173,18 +3315,18 @@ msgstr "" "No es seguro usar :c:func:`PyDict_SetItem` en o modificar de otra manera a :" "c:member:`~PyTypeObject.tp_dict` con el diccionario C-API." -#: ../Doc/c-api/typeobj.rst:1659 +#: ../Doc/c-api/typeobj.rst:1758 msgid "An optional pointer to a \"descriptor get\" function." msgstr "" "Un puntero opcional a una función \"obtener descriptor\" (*descriptor ger*)." -#: ../Doc/c-api/typeobj.rst:1661 ../Doc/c-api/typeobj.rst:1677 -#: ../Doc/c-api/typeobj.rst:1752 ../Doc/c-api/typeobj.rst:1782 -#: ../Doc/c-api/typeobj.rst:1806 +#: ../Doc/c-api/typeobj.rst:1760 ../Doc/c-api/typeobj.rst:1776 +#: ../Doc/c-api/typeobj.rst:1840 ../Doc/c-api/typeobj.rst:1870 +#: ../Doc/c-api/typeobj.rst:1894 msgid "The function signature is::" msgstr "La firma de la función es::" -#: ../Doc/c-api/typeobj.rst:1674 +#: ../Doc/c-api/typeobj.rst:1773 msgid "" "An optional pointer to a function for setting and deleting a descriptor's " "value." @@ -3192,11 +3334,17 @@ msgstr "" "Un puntero opcional a una función para configurar y eliminar el valor de un " "descriptor." -#: ../Doc/c-api/typeobj.rst:1681 +#: ../Doc/c-api/typeobj.rst:1780 msgid "The *value* argument is set to ``NULL`` to delete the value." msgstr "El argumento *value* se establece a ``NULL`` para borrar el valor." -#: ../Doc/c-api/typeobj.rst:1692 +#: ../Doc/c-api/typeobj.rst:1791 +msgid "" +"While this field is still supported, :c:macro:`Py_TPFLAGS_MANAGED_DICT` " +"should be used instead, if at all possible." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1794 msgid "" "If the instances of this type have a dictionary containing instance " "variables, this field is non-zero and contains the offset in the instances " @@ -3208,7 +3356,7 @@ msgstr "" "instancias del tipo del diccionario de variables de instancia; este " "desplazamiento es utilizado por :c:func:`PyObject_GenericGetAttr`." -#: ../Doc/c-api/typeobj.rst:1697 +#: ../Doc/c-api/typeobj.rst:1799 msgid "" "Do not confuse this field with :c:member:`~PyTypeObject.tp_dict`; that is " "the dictionary for attributes of the type object itself." @@ -3216,36 +3364,13 @@ msgstr "" "No confunda este campo con :c:member:`~PyTypeObject.tp_dict`; ese es el " "diccionario para los atributos del tipo de objeto en sí." -#: ../Doc/c-api/typeobj.rst:1700 -msgid "" -"If the value of this field is greater than zero, it specifies the offset " -"from the start of the instance structure. If the value is less than zero, " -"it specifies the offset from the *end* of the instance structure. A " -"negative offset is more expensive to use, and should only be used when the " -"instance structure contains a variable-length part. This is used for " -"example to add an instance variable dictionary to subtypes of :class:`str` " -"or :class:`tuple`. Note that the :c:member:`~PyTypeObject.tp_basicsize` " -"field should account for the dictionary added to the end in that case, even " -"though the dictionary is not included in the basic object layout. On a " -"system with a pointer size of 4 bytes, :c:member:`~PyTypeObject." -"tp_dictoffset` should be set to ``-4`` to indicate that the dictionary is at " -"the very end of the structure." -msgstr "" -"Si el valor de este campo es mayor que cero, especifica el desplazamiento " -"desde el inicio de la estructura de la instancia. Si el valor es menor que " -"cero, especifica el desplazamiento desde el *end* de la estructura de la " -"instancia. Un desplazamiento negativo es más costoso de usar y solo debe " -"usarse cuando la estructura de la instancia contiene una parte de longitud " -"variable. Esto se utiliza, por ejemplo, para agregar un diccionario de " -"variables de instancia a los subtipos de :class:`str` o :class:`tuple`. " -"Tenga en cuenta que el campo :c:member:`~PyTypeObject.tp_basicsize` debe " -"tener en cuenta el diccionario agregado al final en ese caso, aunque el " -"diccionario no esté incluido en el diseño básico del objeto. En un sistema " -"con un tamaño de puntero de 4 bytes, :c:member:`~PyTypeObject.tp_dictoffset` " -"debe establecerse en ``-4`` para indicar que el diccionario está al final de " -"la estructura." - -#: ../Doc/c-api/typeobj.rst:1712 +#: ../Doc/c-api/typeobj.rst:1802 +msgid "" +"The value specifies the offset of the dictionary from the start of the " +"instance structure." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1804 msgid "" "The :c:member:`~PyTypeObject.tp_dictoffset` should be regarded as write-" "only. To get the pointer to the dictionary call :c:func:" @@ -3260,91 +3385,67 @@ msgstr "" "eficiente llamar a :c:func:`PyObject_GetAttr` cuando se accede a un atributo " "en el objeto." -#: ../Doc/c-api/typeobj.rst:1720 -msgid "" -"This field is inherited by subtypes, but see the rules listed below. A " -"subtype may override this offset; this means that the subtype instances " -"store the dictionary at a difference offset than the base type. Since the " -"dictionary is always found via :c:member:`~PyTypeObject.tp_dictoffset`, this " -"should not be a problem." -msgstr "" -"Este campo es heredado por subtipos, pero consulte las reglas que se " -"enumeran a continuación. Un subtipo puede anular este desplazamiento; Esto " -"significa que las instancias de subtipo almacenan el diccionario en un " -"desplazamiento de diferencia que el tipo base. Dado que el diccionario " -"siempre se encuentra a través de :c:member:`~PyTypeObject.tp_dictoffset`, " -"esto no debería ser un problema." - -#: ../Doc/c-api/typeobj.rst:1725 -msgid "" -"When a type defined by a class statement has no :attr:`~object.__slots__` " -"declaration, and none of its base types has an instance variable dictionary, " -"a dictionary slot is added to the instance layout and the :c:member:" -"`~PyTypeObject.tp_dictoffset` is set to that slot's offset." -msgstr "" -"Cuando un tipo definido por una declaración de clase no tiene :attr:`~object." -"__slots__` declaración, y ninguno de sus tipos base tiene un diccionario de " -"variable de instancia, se agrega un espacio de diccionario al diseño de la " -"instancia y el :c:member:`~PyTypeObject.tp_dictoffset` está configurado para " -"el desplazamiento de esa ranura." - -#: ../Doc/c-api/typeobj.rst:1730 +#: ../Doc/c-api/typeobj.rst:1810 msgid "" -"When a type defined by a class statement has a :attr:`__slots__` " -"declaration, the type inherits its :c:member:`~PyTypeObject.tp_dictoffset` " -"from its base type." +"It is an error to set both the :c:macro:`Py_TPFLAGS_MANAGED_WEAKREF` bit " +"and :c:member:`~PyTypeObject.tp_dictoffset`." msgstr "" -"Cuando un tipo definido por una declaración de clase tiene una declaración :" -"attr:`__slots__`, el tipo hereda su :c:member:`~PyTypeObject.tp_dictoffset` " -"de su tipo base." -#: ../Doc/c-api/typeobj.rst:1733 +#: ../Doc/c-api/typeobj.rst:1815 msgid "" -"(Adding a slot named :attr:`~object.__dict__` to the :attr:`__slots__` " -"declaration does not have the expected effect, it just causes confusion. " -"Maybe this should be added as a feature just like :attr:`__weakref__` " -"though.)" +"This field is inherited by subtypes. A subtype should not override this " +"offset; doing so could be unsafe, if C code tries to access the dictionary " +"at the previous offset. To properly support inheritance, use :c:macro:" +"`Py_TPFLAGS_MANAGED_DICT`." msgstr "" -"(Agrega un espacio llamado :attr:`~object.__dict__` a la declaración :attr:" -"`__slots__` no tiene el efecto esperado, solo causa confusión. Quizás esto " -"debería agregarse como una característica como :attr:`__weakref__` aunque.)" -#: ../Doc/c-api/typeobj.rst:1739 +#: ../Doc/c-api/typeobj.rst:1822 +#, fuzzy msgid "" "This slot has no default. For :ref:`static types `, if the " -"field is ``NULL`` then no :attr:`__dict__` gets created for instances." +"field is ``NULL`` then no :attr:`~object.__dict__` gets created for " +"instances." msgstr "" "Esta ranura no tiene ningún valor predeterminado. Para :ref:`tipos estáticos " "`, si el campo es ``NULL``, no se crea ningún :attr:`__dict__` " "para las instancias." -#: ../Doc/c-api/typeobj.rst:1745 +#: ../Doc/c-api/typeobj.rst:1825 +msgid "" +"If the :c:macro:`Py_TPFLAGS_MANAGED_DICT` bit is set in the :c:member:" +"`~PyTypeObject.tp_dict` field, then :c:member:`~PyTypeObject.tp_dictoffset` " +"will be set to ``-1``, to indicate that it is unsafe to use this field." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1833 msgid "An optional pointer to an instance initialization function." msgstr "Un puntero opcional a una función de inicialización de instancia." -#: ../Doc/c-api/typeobj.rst:1747 +#: ../Doc/c-api/typeobj.rst:1835 +#, fuzzy msgid "" -"This function corresponds to the :meth:`__init__` method of classes. Like :" -"meth:`__init__`, it is possible to create an instance without calling :meth:" -"`__init__`, and it is possible to reinitialize an instance by calling its :" -"meth:`__init__` method again." +"This function corresponds to the :meth:`~object.__init__` method of " +"classes. Like :meth:`!__init__`, it is possible to create an instance " +"without calling :meth:`!__init__`, and it is possible to reinitialize an " +"instance by calling its :meth:`!__init__` method again." msgstr "" "Esta función corresponde al método de clases :meth:`__init__`. Como :meth:" "`__init__`, es posible crear una instancia sin llamar a :meth:`__init__`, y " "es posible reinicializar una instancia llamando de nuevo a su método :meth:" "`__init__`." -#: ../Doc/c-api/typeobj.rst:1756 +#: ../Doc/c-api/typeobj.rst:1844 +#, fuzzy msgid "" "The self argument is the instance to be initialized; the *args* and *kwds* " "arguments represent positional and keyword arguments of the call to :meth:" -"`__init__`." +"`~object.__init__`." msgstr "" "El argumento propio es la instancia que se debe inicializar; los argumentos " "*args* y *kwds* representan argumentos posicionales y de palabras clave de " "la llamada a :meth:`__init__`." -#: ../Doc/c-api/typeobj.rst:1760 +#: ../Doc/c-api/typeobj.rst:1848 msgid "" "The :c:member:`~PyTypeObject.tp_init` function, if not ``NULL``, is called " "when an instance is created normally by calling its type, after the type's :" @@ -3364,24 +3465,24 @@ msgstr "" "tp_new` retorna una instancia de un subtipo del tipo original, se llama al " "subtipo :c:member:`~PyTypeObject.tp_init`." -#: ../Doc/c-api/typeobj.rst:1767 +#: ../Doc/c-api/typeobj.rst:1855 msgid "Returns ``0`` on success, ``-1`` and sets an exception on error." msgstr "" "Retorna ``0`` en caso de éxito, ``-1`` y establece una excepción en caso de " "error." -#: ../Doc/c-api/typeobj.rst:1775 +#: ../Doc/c-api/typeobj.rst:1863 msgid "" "For :ref:`static types ` this field does not have a default." msgstr "" "Para :ref:`tipos estáticos `, este campo no tiene un valor " "predeterminado." -#: ../Doc/c-api/typeobj.rst:1780 +#: ../Doc/c-api/typeobj.rst:1868 msgid "An optional pointer to an instance allocation function." msgstr "Un puntero opcional a una función de asignación de instancia." -#: ../Doc/c-api/typeobj.rst:1788 +#: ../Doc/c-api/typeobj.rst:1876 msgid "" "This field is inherited by static subtypes, but not by dynamic subtypes " "(subtypes created by a class statement)." @@ -3389,7 +3490,7 @@ msgstr "" "Este campo es heredado por subtipos estáticos, pero no por subtipos " "dinámicos (subtipos creados por una declaración de clase)." -#: ../Doc/c-api/typeobj.rst:1793 +#: ../Doc/c-api/typeobj.rst:1881 msgid "" "For dynamic subtypes, this field is always set to :c:func:" "`PyType_GenericAlloc`, to force a standard heap allocation strategy." @@ -3398,9 +3499,10 @@ msgstr "" "`PyType_GenericAlloc`, para forzar una estrategia de asignación de heap " "estándar." -#: ../Doc/c-api/typeobj.rst:1797 +#: ../Doc/c-api/typeobj.rst:1885 +#, fuzzy msgid "" -"For static subtypes, :c:type:`PyBaseObject_Type` uses :c:func:" +"For static subtypes, :c:data:`PyBaseObject_Type` uses :c:func:" "`PyType_GenericAlloc`. That is the recommended value for all statically " "defined types." msgstr "" @@ -3408,11 +3510,11 @@ msgstr "" "`PyType_GenericAlloc`. Ese es el valor recomendado para todos los tipos " "definidos estáticamente." -#: ../Doc/c-api/typeobj.rst:1804 +#: ../Doc/c-api/typeobj.rst:1892 msgid "An optional pointer to an instance creation function." msgstr "Un puntero opcional a una función de creación de instancias." -#: ../Doc/c-api/typeobj.rst:1810 +#: ../Doc/c-api/typeobj.rst:1898 msgid "" "The *subtype* argument is the type of the object being created; the *args* " "and *kwds* arguments represent positional and keyword arguments of the call " @@ -3426,7 +3528,7 @@ msgstr "" "igual al tipo cuya función :c:member:`~PyTypeObject.tp_new` es llamada; " "puede ser un subtipo de ese tipo (pero no un tipo no relacionado)." -#: ../Doc/c-api/typeobj.rst:1816 +#: ../Doc/c-api/typeobj.rst:1904 msgid "" "The :c:member:`~PyTypeObject.tp_new` function should call ``subtype-" ">tp_alloc(subtype, nitems)`` to allocate space for the object, and then do " @@ -3447,15 +3549,16 @@ msgstr "" "la mayoría de las inicializaciones se deben diferir a :c:member:" "`~PyTypeObject.tp_init`." -#: ../Doc/c-api/typeobj.rst:1824 +#: ../Doc/c-api/typeobj.rst:1912 +#, fuzzy msgid "" -"Set the :const:`Py_TPFLAGS_DISALLOW_INSTANTIATION` flag to disallow creating " -"instances of the type in Python." +"Set the :c:macro:`Py_TPFLAGS_DISALLOW_INSTANTIATION` flag to disallow " +"creating instances of the type in Python." msgstr "" "Configure la marca :const:`Py_TPFLAGS_DISALLOW_INSTANTIATION` para no " "permitir la creación de instancias del tipo en Python." -#: ../Doc/c-api/typeobj.rst:1829 +#: ../Doc/c-api/typeobj.rst:1917 msgid "" "This field is inherited by subtypes, except it is not inherited by :ref:" "`static types ` whose :c:member:`~PyTypeObject.tp_base` is " @@ -3465,7 +3568,7 @@ msgstr "" "estáticos ` cuyo :c:member:`~PyTypeObject.tp_base` es ``NULL`` " "o ``&PyBaseObject_Type``." -#: ../Doc/c-api/typeobj.rst:1835 +#: ../Doc/c-api/typeobj.rst:1923 msgid "" "For :ref:`static types ` this field has no default. This means " "if the slot is defined as ``NULL``, the type cannot be called to create new " @@ -3477,21 +3580,21 @@ msgstr "" "se puede llamar al tipo para crear nuevas instancias; presumiblemente hay " "alguna otra forma de crear instancias, como una función de fábrica." -#: ../Doc/c-api/typeobj.rst:1843 +#: ../Doc/c-api/typeobj.rst:1931 msgid "" "An optional pointer to an instance deallocation function. Its signature is::" msgstr "" "Un puntero opcional a una función de desasignación de instancia. Su firma " "es::" -#: ../Doc/c-api/typeobj.rst:1847 +#: ../Doc/c-api/typeobj.rst:1935 msgid "" "An initializer that is compatible with this signature is :c:func:" "`PyObject_Free`." msgstr "" "Un inicializador que es compatible con esta firma es :c:func:`PyObject_Free`." -#: ../Doc/c-api/typeobj.rst:1851 +#: ../Doc/c-api/typeobj.rst:1939 msgid "" "This field is inherited by static subtypes, but not by dynamic subtypes " "(subtypes created by a class statement)" @@ -3499,30 +3602,34 @@ msgstr "" "Este campo es heredado por subtipos estáticos, pero no por subtipos " "dinámicos (subtipos creados por una declaración de clase)" -#: ../Doc/c-api/typeobj.rst:1856 +#: ../Doc/c-api/typeobj.rst:1944 +#, fuzzy msgid "" "In dynamic subtypes, this field is set to a deallocator suitable to match :c:" -"func:`PyType_GenericAlloc` and the value of the :const:`Py_TPFLAGS_HAVE_GC` " -"flag bit." +"func:`PyType_GenericAlloc` and the value of the :c:macro:" +"`Py_TPFLAGS_HAVE_GC` flag bit." msgstr "" "En los subtipos dinámicos, este campo se establece en un desasignador " "adecuado para que coincida con :c:func:`PyType_GenericAlloc` y el valor del " "bit de bandera :const:`Py_TPFLAGS_HAVE_GC`." -#: ../Doc/c-api/typeobj.rst:1860 -msgid "For static subtypes, :c:type:`PyBaseObject_Type` uses PyObject_Del." +#: ../Doc/c-api/typeobj.rst:1948 +#, fuzzy +msgid "" +"For static subtypes, :c:data:`PyBaseObject_Type` uses :c:func:`PyObject_Del`." msgstr "" "Para subtipos estáticos, :c:type:`PyBaseObject_Type` usa ``PyObject_Del``." -#: ../Doc/c-api/typeobj.rst:1865 +#: ../Doc/c-api/typeobj.rst:1953 msgid "An optional pointer to a function called by the garbage collector." msgstr "Un puntero opcional a una función llamada por el recolector de basura." -#: ../Doc/c-api/typeobj.rst:1867 +#: ../Doc/c-api/typeobj.rst:1955 +#, fuzzy msgid "" "The garbage collector needs to know whether a particular object is " "collectible or not. Normally, it is sufficient to look at the object's " -"type's :c:member:`~PyTypeObject.tp_flags` field, and check the :const:" +"type's :c:member:`~PyTypeObject.tp_flags` field, and check the :c:macro:" "`Py_TPFLAGS_HAVE_GC` flag bit. But some types have a mixture of statically " "and dynamically allocated instances, and the statically allocated instances " "are not collectible. Such types should define this function; it should " @@ -3538,7 +3645,7 @@ msgstr "" "esta función; debería retornar ``1`` para una instancia coleccionable y " "``0`` para una instancia no coleccionable. La firma es::" -#: ../Doc/c-api/typeobj.rst:1877 +#: ../Doc/c-api/typeobj.rst:1965 msgid "" "(The only example of this are types themselves. The metatype, :c:data:" "`PyType_Type`, defines this function to distinguish between statically and :" @@ -3548,33 +3655,46 @@ msgstr "" "`PyType_Type`, define esta función para distinguir entre tipos estática y :" "ref:`dinámicamente asignados `.)" -#: ../Doc/c-api/typeobj.rst:1887 +#: ../Doc/c-api/typeobj.rst:1975 +#, fuzzy msgid "" -"This slot has no default. If this field is ``NULL``, :const:" +"This slot has no default. If this field is ``NULL``, :c:macro:" "`Py_TPFLAGS_HAVE_GC` is used as the functional equivalent." msgstr "" "Esta ranura no tiene valor predeterminado. Si este campo es ``NULL``, se " "utiliza :const:`Py_TPFLAGS_HAVE_GC` como el equivalente funcional." -#: ../Doc/c-api/typeobj.rst:1893 +#: ../Doc/c-api/typeobj.rst:1981 msgid "Tuple of base types." msgstr "Tupla de tipos base." -#: ../Doc/c-api/typeobj.rst:1895 +#: ../Doc/c-api/typeobj.rst:1983 ../Doc/c-api/typeobj.rst:2007 +msgid "" +"This field should be set to ``NULL`` and treated as read-only. Python will " +"fill it in when the type is :c:func:`initialized `." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1986 msgid "" -"This is set for types created by a class statement. It should be ``NULL`` " -"for statically defined types." +"For dynamically created classes, the ``Py_tp_bases`` :c:type:`slot " +"` can be used instead of the *bases* argument of :c:func:" +"`PyType_FromSpecWithBases`. The argument form is preferred." msgstr "" -"Esto se establece para los tipos creados por una declaración de clase. " -"Debería ser ``NULL`` para los tipos estáticamente definidos." -#: ../Doc/c-api/typeobj.rst:1900 ../Doc/c-api/typeobj.rst:1921 -#: ../Doc/c-api/typeobj.rst:1930 ../Doc/c-api/typeobj.rst:1940 -#: ../Doc/c-api/typeobj.rst:1954 +#: ../Doc/c-api/typeobj.rst:1993 +msgid "" +"Multiple inheritance does not work well for statically defined types. If you " +"set ``tp_bases`` to a tuple, Python will not raise an error, but some slots " +"will only be inherited from the first base." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:1999 ../Doc/c-api/typeobj.rst:2022 +#: ../Doc/c-api/typeobj.rst:2039 ../Doc/c-api/typeobj.rst:2056 +#: ../Doc/c-api/typeobj.rst:2070 msgid "This field is not inherited." msgstr "Este campo no se hereda." -#: ../Doc/c-api/typeobj.rst:1905 +#: ../Doc/c-api/typeobj.rst:2004 msgid "" "Tuple containing the expanded set of base types, starting with the type " "itself and ending with :class:`object`, in Method Resolution Order." @@ -3583,21 +3703,34 @@ msgstr "" "tipo en sí y terminando con :class:`object`, en orden de resolución de " "método." -#: ../Doc/c-api/typeobj.rst:1911 +#: ../Doc/c-api/typeobj.rst:2012 msgid "" "This field is not inherited; it is calculated fresh by :c:func:" "`PyType_Ready`." msgstr "Este campo no se hereda; se calcula fresco por :c:func:`PyType_Ready`." -#: ../Doc/c-api/typeobj.rst:1917 +#: ../Doc/c-api/typeobj.rst:2018 msgid "Unused. Internal use only." msgstr "No usado. Solo para uso interno." -#: ../Doc/c-api/typeobj.rst:1926 -msgid "List of weak references to subclasses. Internal use only." -msgstr "Lista de referencias débiles a subclases. Solo para uso interno." +#: ../Doc/c-api/typeobj.rst:2027 +msgid "" +"A collection of subclasses. Internal use only. May be an invalid pointer." +msgstr "" -#: ../Doc/c-api/typeobj.rst:1935 +#: ../Doc/c-api/typeobj.rst:2029 +msgid "" +"To get a list of subclasses, call the Python method :py:meth:`~class." +"__subclasses__`." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:2034 +msgid "" +"For some types, this field does not hold a valid :c:expr:`PyObject*`. The " +"type was changed to :c:expr:`void*` to indicate this." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:2044 msgid "" "Weak reference list head, for weak references to this type object. Not " "inherited. Internal use only." @@ -3605,24 +3738,32 @@ msgstr "" "Cabecera de lista de referencia débil, para referencias débiles a este tipo " "de objeto. No heredado Solo para uso interno." -#: ../Doc/c-api/typeobj.rst:1945 +#: ../Doc/c-api/typeobj.rst:2049 +msgid "" +"Internals detail: For the static builtin types this is always ``NULL``, even " +"if weakrefs are added. Instead, the weakrefs for each are stored on " +"``PyInterpreterState``. Use the public C-API or the internal " +"``_PyObject_GET_WEAKREFS_LISTPTR()`` macro to avoid the distinction." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:2061 msgid "" "This field is deprecated. Use :c:member:`~PyTypeObject.tp_finalize` instead." msgstr "" "Este campo está en desuso. Use :c:member:`~PyTypeObject.tp_finalize` en su " "lugar." -#: ../Doc/c-api/typeobj.rst:1950 +#: ../Doc/c-api/typeobj.rst:2066 msgid "Used to index into the method cache. Internal use only." msgstr "Se usa para indexar en el caché de métodos. Solo para uso interno." -#: ../Doc/c-api/typeobj.rst:1959 +#: ../Doc/c-api/typeobj.rst:2075 msgid "" "An optional pointer to an instance finalization function. Its signature is::" msgstr "" "Un puntero opcional a una función de finalización de instancia. Su firma es::" -#: ../Doc/c-api/typeobj.rst:1963 +#: ../Doc/c-api/typeobj.rst:2079 msgid "" "If :c:member:`~PyTypeObject.tp_finalize` is set, the interpreter calls it " "once when finalizing an instance. It is called either from the garbage " @@ -3638,7 +3779,7 @@ msgstr "" "se invocará antes de intentar romper los ciclos de referencia, asegurando " "que encuentre el objeto en un estado sano." -#: ../Doc/c-api/typeobj.rst:1970 +#: ../Doc/c-api/typeobj.rst:2086 msgid "" ":c:member:`~PyTypeObject.tp_finalize` should not mutate the current " "exception status; therefore, a recommended way to write a non-trivial " @@ -3648,7 +3789,7 @@ msgstr "" "actual; por lo tanto, una forma recomendada de escribir un finalizador no " "trivial es::" -#: ../Doc/c-api/typeobj.rst:1987 +#: ../Doc/c-api/typeobj.rst:2103 msgid "" "Also, note that, in a garbage collected Python, :c:member:`~PyTypeObject." "tp_dealloc` may be called from any Python thread, not just the thread which " @@ -3673,9 +3814,10 @@ msgstr "" "objetos en el hilo que se llama ``tp_dealloc`` no violará ningún supuesto de " "la biblioteca." -#: ../Doc/c-api/typeobj.rst:2006 +#: ../Doc/c-api/typeobj.rst:2122 +#, fuzzy msgid "" -"Before version 3.8 it was necessary to set the :const:" +"Before version 3.8 it was necessary to set the :c:macro:" "`Py_TPFLAGS_HAVE_FINALIZE` flags bit in order for this field to be used. " "This is no longer required." msgstr "" @@ -3683,35 +3825,40 @@ msgstr "" "`Py_TPFLAGS_HAVE_FINALIZE` para que este campo fuera utilizado. Esto ya no " "es necesario." -#: ../Doc/c-api/typeobj.rst:2010 +#: ../Doc/c-api/typeobj.rst:2126 msgid "\"Safe object finalization\" (:pep:`442`)" msgstr "\"Finalización segura de objetos\" (:pep:`442`)" -#: ../Doc/c-api/typeobj.rst:2015 +#: ../Doc/c-api/typeobj.rst:2131 +#, fuzzy msgid "" "Vectorcall function to use for calls of this type object. In other words, it " "is used to implement :ref:`vectorcall ` for ``type.__call__``. " "If ``tp_vectorcall`` is ``NULL``, the default call implementation using :" -"attr:`__new__` and :attr:`__init__` is used." +"meth:`~object.__new__` and :meth:`~object.__init__` is used." msgstr "" "Función Vectorcall a utilizar para llamadas de este tipo de objeto. En otras " "palabras, se usa para implementar :ref:`vectorcall ` para ``type." "__call__``. Si ``tp_vectorcall`` es ``NULL``, se usa la implementación de " "llamada predeterminada usando :attr:`__new__` y :attr:`__init__`." -#: ../Doc/c-api/typeobj.rst:2023 +#: ../Doc/c-api/typeobj.rst:2139 msgid "This field is never inherited." msgstr "Este campo nunca se hereda." -#: ../Doc/c-api/typeobj.rst:2025 +#: ../Doc/c-api/typeobj.rst:2141 msgid "(the field exists since 3.8 but it's only used since 3.9)" msgstr "(el campo existe desde 3.8 pero solo se usa desde 3.9)" -#: ../Doc/c-api/typeobj.rst:2031 +#: ../Doc/c-api/typeobj.rst:2146 +msgid "Internal. Do not use." +msgstr "" + +#: ../Doc/c-api/typeobj.rst:2154 msgid "Static Types" msgstr "Tipos estáticos" -#: ../Doc/c-api/typeobj.rst:2033 +#: ../Doc/c-api/typeobj.rst:2156 msgid "" "Traditionally, types defined in C code are *static*, that is, a static :c:" "type:`PyTypeObject` structure is defined directly in code and initialized " @@ -3721,14 +3868,14 @@ msgstr "" "una estructura estática :c:type:`PyTypeObject` se define directamente en el " "código y se inicializa usando :c:func:`PyType_Ready`." -#: ../Doc/c-api/typeobj.rst:2037 +#: ../Doc/c-api/typeobj.rst:2160 msgid "" "This results in types that are limited relative to types defined in Python:" msgstr "" "Esto da como resultado tipos que están limitados en relación con los tipos " "definidos en Python:" -#: ../Doc/c-api/typeobj.rst:2039 +#: ../Doc/c-api/typeobj.rst:2162 msgid "" "Static types are limited to one base, i.e. they cannot use multiple " "inheritance." @@ -3736,7 +3883,7 @@ msgstr "" "Los tipos estáticos están limitados a una base, es decir, no pueden usar " "herencia múltiple." -#: ../Doc/c-api/typeobj.rst:2041 +#: ../Doc/c-api/typeobj.rst:2164 msgid "" "Static type objects (but not necessarily their instances) are immutable. It " "is not possible to add or modify the type object's attributes from Python." @@ -3745,7 +3892,7 @@ msgstr "" "inmutables. No es posible agregar o modificar los atributos del objeto tipo " "desde Python." -#: ../Doc/c-api/typeobj.rst:2043 +#: ../Doc/c-api/typeobj.rst:2166 msgid "" "Static type objects are shared across :ref:`sub-interpreters `, so they should not include any subinterpreter-" @@ -3755,26 +3902,27 @@ msgstr "" "interpreter-support>`, por lo que no deben incluir ningún estado específico " "del sub interpretador." -#: ../Doc/c-api/typeobj.rst:2047 +#: ../Doc/c-api/typeobj.rst:2170 #, fuzzy msgid "" "Also, since :c:type:`PyTypeObject` is only part of the :ref:`Limited API " -"` as an opaque struct, any extension modules using static types must " -"be compiled for a specific Python minor version." +"` as an opaque struct, any extension modules using static " +"types must be compiled for a specific Python minor version." msgstr "" "Además, dado que :c:type:`PyTypeObject` no forma parte de :ref:`stable ABI " "`, cualquier módulo de extensión que use tipos estáticos debe " "compilarse para una versión menor específica de Python." -#: ../Doc/c-api/typeobj.rst:2055 +#: ../Doc/c-api/typeobj.rst:2178 msgid "Heap Types" msgstr "Tipos Heap" -#: ../Doc/c-api/typeobj.rst:2057 +#: ../Doc/c-api/typeobj.rst:2180 +#, fuzzy msgid "" "An alternative to :ref:`static types ` is *heap-allocated " "types*, or *heap types* for short, which correspond closely to classes " -"created by Python's ``class`` statement. Heap types have the :const:" +"created by Python's ``class`` statement. Heap types have the :c:macro:" "`Py_TPFLAGS_HEAPTYPE` flag set." msgstr "" "Una alternativa a :ref:`tipos estáticos ` es *heap-allocated " @@ -3782,21 +3930,22 @@ msgstr "" "las clases creadas por la declaración ``class`` de Python. Los tipos de heap " "tienen establecida la bandera :const:`Py_TPFLAGS_HEAPTYPE`." -#: ../Doc/c-api/typeobj.rst:2062 +#: ../Doc/c-api/typeobj.rst:2185 +#, fuzzy msgid "" "This is done by filling a :c:type:`PyType_Spec` structure and calling :c:" -"func:`PyType_FromSpec`, :c:func:`PyType_FromSpecWithBases`, or :c:func:" -"`PyType_FromModuleAndSpec`." +"func:`PyType_FromSpec`, :c:func:`PyType_FromSpecWithBases`, :c:func:" +"`PyType_FromModuleAndSpec`, or :c:func:`PyType_FromMetaclass`." msgstr "" "Esto se hace llenando una estructura :c:type:`PyType_Spec` y llamando a :c:" "func:`PyType_FromSpec`, :c:func:`PyType_FromSpecWithBases` o :c:func:" "`PyType_FromModuleAndSpec`." -#: ../Doc/c-api/typeobj.rst:2070 +#: ../Doc/c-api/typeobj.rst:2193 msgid "Number Object Structures" msgstr "Estructuras de objetos de números" -#: ../Doc/c-api/typeobj.rst:2077 +#: ../Doc/c-api/typeobj.rst:2200 msgid "" "This structure holds pointers to the functions which an object uses to " "implement the number protocol. Each function is used by the function of " @@ -3806,11 +3955,11 @@ msgstr "" "implementar el protocolo numérico. Cada función es utilizada por la función " "de un nombre similar documentado en la sección :ref:`number`." -#: ../Doc/c-api/typeobj.rst:2083 ../Doc/c-api/typeobj.rst:2407 +#: ../Doc/c-api/typeobj.rst:2206 ../Doc/c-api/typeobj.rst:2530 msgid "Here is the structure definition::" msgstr "Aquí está la definición de la estructura::" -#: ../Doc/c-api/typeobj.rst:2130 +#: ../Doc/c-api/typeobj.rst:2253 msgid "" "Binary and ternary functions must check the type of all their operands, and " "implement the necessary conversions (at least one of the operands is an " @@ -3826,19 +3975,21 @@ msgstr "" "retornar ``Py_NotImplemented``, si se produce otro error, deben retornar " "``NULL`` y establecer una excepción." -#: ../Doc/c-api/typeobj.rst:2139 +#: ../Doc/c-api/typeobj.rst:2262 +#, fuzzy msgid "" -"The :c:data:`nb_reserved` field should always be ``NULL``. It was " -"previously called :c:data:`nb_long`, and was renamed in Python 3.0.1." +"The :c:member:`~PyNumberMethods.nb_reserved` field should always be " +"``NULL``. It was previously called :c:member:`!nb_long`, and was renamed in " +"Python 3.0.1." msgstr "" "El campo :c:data:`nb_reserved` siempre debe ser ``NULL``. Anteriormente se " "llamaba :c:data:`nb_long`, y se renombró en Python 3.0.1." -#: ../Doc/c-api/typeobj.rst:2184 +#: ../Doc/c-api/typeobj.rst:2307 msgid "Mapping Object Structures" msgstr "Estructuras de objetos mapeo" -#: ../Doc/c-api/typeobj.rst:2191 +#: ../Doc/c-api/typeobj.rst:2314 msgid "" "This structure holds pointers to the functions which an object uses to " "implement the mapping protocol. It has three members:" @@ -3846,7 +3997,7 @@ msgstr "" "Esta estructura contiene punteros a las funciones que utiliza un objeto para " "implementar el protocolo de mapeo. Tiene tres miembros:" -#: ../Doc/c-api/typeobj.rst:2196 +#: ../Doc/c-api/typeobj.rst:2319 msgid "" "This function is used by :c:func:`PyMapping_Size` and :c:func:" "`PyObject_Size`, and has the same signature. This slot may be set to " @@ -3856,7 +4007,7 @@ msgstr "" "`PyObject_Size`, y tiene la misma firma. Esta ranura puede establecerse en " "``NULL`` si el objeto no tiene una longitud definida." -#: ../Doc/c-api/typeobj.rst:2202 +#: ../Doc/c-api/typeobj.rst:2325 msgid "" "This function is used by :c:func:`PyObject_GetItem` and :c:func:" "`PySequence_GetSlice`, and has the same signature as :c:func:`!" @@ -3868,11 +4019,12 @@ msgstr "" "PyObject_GetItem`. Este espacio debe llenarse para que la función :c:func:" "`PyMapping_Check` retorna ``1``, de lo contrario puede ser ``NULL``." -#: ../Doc/c-api/typeobj.rst:2210 +#: ../Doc/c-api/typeobj.rst:2333 +#, fuzzy msgid "" "This function is used by :c:func:`PyObject_SetItem`, :c:func:" -"`PyObject_DelItem`, :c:func:`PyObject_SetSlice` and :c:func:" -"`PyObject_DelSlice`. It has the same signature as :c:func:`!" +"`PyObject_DelItem`, :c:func:`PySequence_SetSlice` and :c:func:" +"`PySequence_DelSlice`. It has the same signature as :c:func:`!" "PyObject_SetItem`, but *v* can also be set to ``NULL`` to delete an item. " "If this slot is ``NULL``, the object does not support item assignment and " "deletion." @@ -3884,11 +4036,11 @@ msgstr "" "Si este espacio es ``NULL``, el objeto no admite la asignación y eliminación " "de elementos." -#: ../Doc/c-api/typeobj.rst:2221 +#: ../Doc/c-api/typeobj.rst:2344 msgid "Sequence Object Structures" msgstr "Estructuras de objetos secuencia" -#: ../Doc/c-api/typeobj.rst:2228 +#: ../Doc/c-api/typeobj.rst:2351 msgid "" "This structure holds pointers to the functions which an object uses to " "implement the sequence protocol." @@ -3896,7 +4048,7 @@ msgstr "" "Esta estructura contiene punteros a las funciones que utiliza un objeto para " "implementar el protocolo de secuencia." -#: ../Doc/c-api/typeobj.rst:2233 +#: ../Doc/c-api/typeobj.rst:2356 msgid "" "This function is used by :c:func:`PySequence_Size` and :c:func:" "`PyObject_Size`, and has the same signature. It is also used for handling " @@ -3908,7 +4060,7 @@ msgstr "" "negativos a través de los espacios :c:member:`~PySequenceMethods.sq_item` y :" "c:member:`~PySequenceMethods.sq_ass_item`." -#: ../Doc/c-api/typeobj.rst:2240 +#: ../Doc/c-api/typeobj.rst:2363 msgid "" "This function is used by :c:func:`PySequence_Concat` and has the same " "signature. It is also used by the ``+`` operator, after trying the numeric " @@ -3918,7 +4070,7 @@ msgstr "" "firma. También es utilizado por el operador ``+``, después de intentar la " "suma numérica a través de la ranura :c:member:`~PyNumberMethods.nb_add`." -#: ../Doc/c-api/typeobj.rst:2246 +#: ../Doc/c-api/typeobj.rst:2369 msgid "" "This function is used by :c:func:`PySequence_Repeat` and has the same " "signature. It is also used by the ``*`` operator, after trying numeric " @@ -3929,7 +4081,7 @@ msgstr "" "multiplicación numérica a través de la ranura :c:member:`~PyNumberMethods." "nb_multiply`." -#: ../Doc/c-api/typeobj.rst:2252 +#: ../Doc/c-api/typeobj.rst:2375 msgid "" "This function is used by :c:func:`PySequence_GetItem` and has the same " "signature. It is also used by :c:func:`PyObject_GetItem`, after trying the " @@ -3943,19 +4095,21 @@ msgstr "" "mp_subscript`. Este espacio debe llenarse para que la función :c:func:" "`PySequence_Check` retorna ``1``, de lo contrario puede ser ``NULL``." -#: ../Doc/c-api/typeobj.rst:2258 +#: ../Doc/c-api/typeobj.rst:2381 +#, fuzzy msgid "" -"Negative indexes are handled as follows: if the :attr:`sq_length` slot is " -"filled, it is called and the sequence length is used to compute a positive " -"index which is passed to :attr:`sq_item`. If :attr:`sq_length` is ``NULL``, " -"the index is passed as is to the function." +"Negative indexes are handled as follows: if the :c:member:" +"`~PySequenceMethods.sq_length` slot is filled, it is called and the sequence " +"length is used to compute a positive index which is passed to :c:member:" +"`~PySequenceMethods.sq_item`. If :c:member:`!sq_length` is ``NULL``, the " +"index is passed as is to the function." msgstr "" "Los índices negativos se manejan de la siguiente manera: si se llena el " "espacio :attr:`sq_length`, se llama y la longitud de la secuencia se usa " "para calcular un índice positivo que se pasa a :attr:`sq_item`. Si :attr:" "`sq_length` es ``NULL``, el índice se pasa como es a la función." -#: ../Doc/c-api/typeobj.rst:2265 +#: ../Doc/c-api/typeobj.rst:2388 msgid "" "This function is used by :c:func:`PySequence_SetItem` and has the same " "signature. It is also used by :c:func:`PyObject_SetItem` and :c:func:" @@ -3970,7 +4124,7 @@ msgstr "" "mp_ass_subscript`. Este espacio puede dejarse en ``NULL`` si el objeto no " "admite la asignación y eliminación de elementos." -#: ../Doc/c-api/typeobj.rst:2274 +#: ../Doc/c-api/typeobj.rst:2397 msgid "" "This function may be used by :c:func:`PySequence_Contains` and has the same " "signature. This slot may be left to ``NULL``, in this case :c:func:`!" @@ -3981,7 +4135,7 @@ msgstr "" "`!PySequence_Contains` simplemente atraviesa la secuencia hasta que " "encuentra una coincidencia." -#: ../Doc/c-api/typeobj.rst:2281 +#: ../Doc/c-api/typeobj.rst:2404 msgid "" "This function is used by :c:func:`PySequence_InPlaceConcat` and has the same " "signature. It should modify its first operand, and return it. This slot " @@ -3997,7 +4151,7 @@ msgstr "" "asignación aumentada ``+=``, después de intentar la suma numérica en el " "lugar a través de la ranura :c:member:`~PyNumberMethods.nb_inplace_add`." -#: ../Doc/c-api/typeobj.rst:2290 +#: ../Doc/c-api/typeobj.rst:2413 msgid "" "This function is used by :c:func:`PySequence_InPlaceRepeat` and has the same " "signature. It should modify its first operand, and return it. This slot " @@ -4014,11 +4168,11 @@ msgstr "" "en el lugar a través de la ranura :c:member:`~PyNumberMethods." "nb_inplace_multiply`." -#: ../Doc/c-api/typeobj.rst:2301 +#: ../Doc/c-api/typeobj.rst:2424 msgid "Buffer Object Structures" msgstr "Estructuras de objetos búfer" -#: ../Doc/c-api/typeobj.rst:2309 +#: ../Doc/c-api/typeobj.rst:2432 msgid "" "This structure holds pointers to the functions required by the :ref:`Buffer " "protocol `. The protocol defines how an exporter object can " @@ -4028,13 +4182,13 @@ msgstr "" "`Buffer protocol `. El protocolo define cómo un objeto " "exportador puede exponer sus datos internos a objetos de consumo." -#: ../Doc/c-api/typeobj.rst:2315 ../Doc/c-api/typeobj.rst:2364 -#: ../Doc/c-api/typeobj.rst:2418 ../Doc/c-api/typeobj.rst:2429 -#: ../Doc/c-api/typeobj.rst:2441 ../Doc/c-api/typeobj.rst:2450 +#: ../Doc/c-api/typeobj.rst:2438 ../Doc/c-api/typeobj.rst:2487 +#: ../Doc/c-api/typeobj.rst:2541 ../Doc/c-api/typeobj.rst:2552 +#: ../Doc/c-api/typeobj.rst:2564 ../Doc/c-api/typeobj.rst:2574 msgid "The signature of this function is::" msgstr "La firma de esta función es::" -#: ../Doc/c-api/typeobj.rst:2319 +#: ../Doc/c-api/typeobj.rst:2442 msgid "" "Handle a request to *exporter* to fill in *view* as specified by *flags*. " "Except for point (3), an implementation of this function MUST take these " @@ -4044,37 +4198,37 @@ msgstr "" "especificado por *flags*. Excepto por el punto (3), una implementación de " "esta función DEBE seguir estos pasos:" -#: ../Doc/c-api/typeobj.rst:2323 +#: ../Doc/c-api/typeobj.rst:2446 #, fuzzy msgid "" -"Check if the request can be met. If not, raise :c:data:`PyExc_BufferError`, " -"set :c:expr:`view->obj` to ``NULL`` and return ``-1``." +"Check if the request can be met. If not, raise :exc:`BufferError`, set :c:" +"expr:`view->obj` to ``NULL`` and return ``-1``." msgstr "" "Comprueba si se puede cumplir con la solicitud. Si no, lanza :c:data:" "`PyExc_BufferError`, establece :c:data:`view->obj` en ``NULL`` y retorna " "``-1``." -#: ../Doc/c-api/typeobj.rst:2326 +#: ../Doc/c-api/typeobj.rst:2449 msgid "Fill in the requested fields." msgstr "Rellene los campos solicitados." -#: ../Doc/c-api/typeobj.rst:2328 +#: ../Doc/c-api/typeobj.rst:2451 msgid "Increment an internal counter for the number of exports." msgstr "" "Incrementa un contador interno para el número de exportaciones (*exports*)." -#: ../Doc/c-api/typeobj.rst:2330 +#: ../Doc/c-api/typeobj.rst:2453 #, fuzzy msgid "" "Set :c:expr:`view->obj` to *exporter* and increment :c:expr:`view->obj`." msgstr "" "Establece :c:data:`view->obj` en *exporter* e incremente :c:data:`view->obj`." -#: ../Doc/c-api/typeobj.rst:2332 +#: ../Doc/c-api/typeobj.rst:2455 msgid "Return ``0``." msgstr "Retorna ``0``." -#: ../Doc/c-api/typeobj.rst:2334 +#: ../Doc/c-api/typeobj.rst:2457 msgid "" "If *exporter* is part of a chain or tree of buffer providers, two main " "schemes can be used:" @@ -4082,7 +4236,7 @@ msgstr "" "Si *exporter* es parte de una cadena o árbol de proveedores de búfer, se " "pueden usar dos esquemas principales:" -#: ../Doc/c-api/typeobj.rst:2337 +#: ../Doc/c-api/typeobj.rst:2460 #, fuzzy msgid "" "Re-export: Each member of the tree acts as the exporting object and sets :c:" @@ -4091,7 +4245,7 @@ msgstr "" "Re-exportación: cada miembro del árbol actúa como el objeto exportador y " "establece :c:data:`view->obj` en una nueva referencia a sí mismo." -#: ../Doc/c-api/typeobj.rst:2340 +#: ../Doc/c-api/typeobj.rst:2463 #, fuzzy msgid "" "Redirect: The buffer request is redirected to the root object of the tree. " @@ -4100,7 +4254,7 @@ msgstr "" "Redirigir: la solicitud de búfer se redirige al objeto raíz del árbol. Aquí :" "c:data:`view->obj` será una nueva referencia al objeto raíz." -#: ../Doc/c-api/typeobj.rst:2344 +#: ../Doc/c-api/typeobj.rst:2467 msgid "" "The individual fields of *view* are described in section :ref:`Buffer " "structure `, the rules how an exporter must react to " @@ -4112,7 +4266,7 @@ msgstr "" "reaccionar un exportador a solicitudes específicas se encuentran en la " "sección :ref:`Tipos de solicitud de búfer `." -#: ../Doc/c-api/typeobj.rst:2349 +#: ../Doc/c-api/typeobj.rst:2472 msgid "" "All memory pointed to in the :c:type:`Py_buffer` structure belongs to the " "exporter and must remain valid until there are no consumers left. :c:member:" @@ -4126,7 +4280,7 @@ msgstr "" "`~Py_buffer.strides`, :c:member:`~Py_buffer.suboffsets` y :c:member:" "`~Py_buffer.internal` son de solo lectura para el consumidor." -#: ../Doc/c-api/typeobj.rst:2356 +#: ../Doc/c-api/typeobj.rst:2479 msgid "" ":c:func:`PyBuffer_FillInfo` provides an easy way of exposing a simple bytes " "buffer while dealing correctly with all request types." @@ -4135,7 +4289,7 @@ msgstr "" "de bytes simple mientras se trata correctamente con todos los tipos de " "solicitud." -#: ../Doc/c-api/typeobj.rst:2359 +#: ../Doc/c-api/typeobj.rst:2482 msgid "" ":c:func:`PyObject_GetBuffer` is the interface for the consumer that wraps " "this function." @@ -4143,7 +4297,7 @@ msgstr "" ":c:func:`PyObject_GetBuffer` es la interfaz para el consumidor que envuelve " "esta función." -#: ../Doc/c-api/typeobj.rst:2368 +#: ../Doc/c-api/typeobj.rst:2491 msgid "" "Handle a request to release the resources of the buffer. If no resources " "need to be released, :c:member:`PyBufferProcs.bf_releasebuffer` may be " @@ -4155,15 +4309,15 @@ msgstr "" "``NULL``. De lo contrario, una implementación estándar de esta función " "tomará estos pasos opcionales:" -#: ../Doc/c-api/typeobj.rst:2373 +#: ../Doc/c-api/typeobj.rst:2496 msgid "Decrement an internal counter for the number of exports." msgstr "Disminuir un contador interno para el número de exportaciones." -#: ../Doc/c-api/typeobj.rst:2375 +#: ../Doc/c-api/typeobj.rst:2498 msgid "If the counter is ``0``, free all memory associated with *view*." msgstr "Si el contador es ``0``, libera toda la memoria asociada con *view*." -#: ../Doc/c-api/typeobj.rst:2377 +#: ../Doc/c-api/typeobj.rst:2500 msgid "" "The exporter MUST use the :c:member:`~Py_buffer.internal` field to keep " "track of buffer-specific resources. This field is guaranteed to remain " @@ -4175,7 +4329,7 @@ msgstr "" "que este campo permanecerá constante, mientras que un consumidor PUEDE pasar " "una copia del búfer original como argumento *view*." -#: ../Doc/c-api/typeobj.rst:2383 +#: ../Doc/c-api/typeobj.rst:2506 #, fuzzy msgid "" "This function MUST NOT decrement :c:expr:`view->obj`, since that is done " @@ -4186,7 +4340,7 @@ msgstr "" "automáticamente en :c:func:`PyBuffer_Release` (este esquema es útil para " "romper los ciclos de referencia)." -#: ../Doc/c-api/typeobj.rst:2388 +#: ../Doc/c-api/typeobj.rst:2511 msgid "" ":c:func:`PyBuffer_Release` is the interface for the consumer that wraps this " "function." @@ -4194,11 +4348,11 @@ msgstr "" ":c:func:`PyBuffer_Release` es la interfaz para el consumidor que envuelve " "esta función." -#: ../Doc/c-api/typeobj.rst:2396 +#: ../Doc/c-api/typeobj.rst:2519 msgid "Async Object Structures" msgstr "Estructuras de objetos asíncronos" -#: ../Doc/c-api/typeobj.rst:2404 +#: ../Doc/c-api/typeobj.rst:2527 msgid "" "This structure holds pointers to the functions required to implement :term:" "`awaitable` and :term:`asynchronous iterator` objects." @@ -4207,7 +4361,7 @@ msgstr "" "implementar objetos \"esperable\" (:term:`awaitable`) y \"iterador " "asincrónico\" (:term:`asynchronous iterator`)." -#: ../Doc/c-api/typeobj.rst:2422 +#: ../Doc/c-api/typeobj.rst:2545 #, fuzzy msgid "" "The returned object must be an :term:`iterator`, i.e. :c:func:`PyIter_Check` " @@ -4216,23 +4370,23 @@ msgstr "" "El objeto retornado debe ser un iterador, es decir :c:func:`PyIter_Check` " "debe retornar ``1`` para ello." -#: ../Doc/c-api/typeobj.rst:2425 +#: ../Doc/c-api/typeobj.rst:2548 msgid "" "This slot may be set to ``NULL`` if an object is not an :term:`awaitable`." msgstr "" "Este espacio puede establecerse en ``NULL`` si un objeto no es :term:" "`awaitable`." -#: ../Doc/c-api/typeobj.rst:2433 +#: ../Doc/c-api/typeobj.rst:2556 #, fuzzy msgid "" -"Must return an :term:`asynchronous iterator` object. See :meth:`__anext__` " -"for details." +"Must return an :term:`asynchronous iterator` object. See :meth:`~object." +"__anext__` for details." msgstr "" "Debe retornar un objeto \"esperable\" (:term:`awaitable`). Ver :meth:" "`__anext__` para más detalles." -#: ../Doc/c-api/typeobj.rst:2436 +#: ../Doc/c-api/typeobj.rst:2559 msgid "" "This slot may be set to ``NULL`` if an object does not implement " "asynchronous iteration protocol." @@ -4240,37 +4394,39 @@ msgstr "" "Este espacio puede establecerse en ``NULL`` si un objeto no implementa el " "protocolo de iteración asincrónica." -#: ../Doc/c-api/typeobj.rst:2445 +#: ../Doc/c-api/typeobj.rst:2568 +#, fuzzy msgid "" -"Must return an :term:`awaitable` object. See :meth:`__anext__` for details. " -"This slot may be set to ``NULL``." +"Must return an :term:`awaitable` object. See :meth:`~object.__anext__` for " +"details. This slot may be set to ``NULL``." msgstr "" "Debe retornar un objeto \"esperable\" (:term:`awaitable`). Ver :meth:" "`__anext__` para más detalles. Esta ranura puede establecerse en ``NULL``." -#: ../Doc/c-api/typeobj.rst:2454 +#: ../Doc/c-api/typeobj.rst:2578 msgid "" "See :c:func:`PyIter_Send` for details. This slot may be set to ``NULL``." msgstr "" "Consulte :c:func:`PyIter_Send` para obtener más detalles. Esta ranura se " "puede establecer en ``NULL``." -#: ../Doc/c-api/typeobj.rst:2463 +#: ../Doc/c-api/typeobj.rst:2587 msgid "Slot Type typedefs" msgstr "Tipo Ranura *typedefs*" -#: ../Doc/c-api/typeobj.rst:2467 +#: ../Doc/c-api/typeobj.rst:2591 +#, fuzzy msgid "" "The purpose of this function is to separate memory allocation from memory " "initialization. It should return a pointer to a block of memory of adequate " "length for the instance, suitably aligned, and initialized to zeros, but " -"with :attr:`ob_refcnt` set to ``1`` and :attr:`ob_type` set to the type " -"argument. If the type's :c:member:`~PyTypeObject.tp_itemsize` is non-zero, " -"the object's :attr:`ob_size` field should be initialized to *nitems* and the " -"length of the allocated memory block should be ``tp_basicsize + " -"nitems*tp_itemsize``, rounded up to a multiple of ``sizeof(void*)``; " -"otherwise, *nitems* is not used and the length of the block should be :c:" -"member:`~PyTypeObject.tp_basicsize`." +"with :c:member:`~PyObject.ob_refcnt` set to ``1`` and :c:member:`~PyObject." +"ob_type` set to the type argument. If the type's :c:member:`~PyTypeObject." +"tp_itemsize` is non-zero, the object's :c:member:`~PyVarObject.ob_size` " +"field should be initialized to *nitems* and the length of the allocated " +"memory block should be ``tp_basicsize + nitems*tp_itemsize``, rounded up to " +"a multiple of ``sizeof(void*)``; otherwise, *nitems* is not used and the " +"length of the block should be :c:member:`~PyTypeObject.tp_basicsize`." msgstr "" "El propósito de esta función es separar la asignación de memoria de la " "inicialización de memoria. Debería retornar un puntero a un bloque de " @@ -4283,7 +4439,7 @@ msgstr "" "``sizeof(void*)``; de lo contrario, *nitems* no se usa y la longitud del " "bloque debe ser :c:member:`~PyTypeObject.tp_basicsize`." -#: ../Doc/c-api/typeobj.rst:2477 +#: ../Doc/c-api/typeobj.rst:2601 msgid "" "This function should not do any other instance initialization, not even to " "allocate additional memory; that should be done by :c:member:`~PyTypeObject." @@ -4293,27 +4449,27 @@ msgstr "" "siquiera para asignar memoria adicional; eso debe ser realizado por :c:" "member:`~PyTypeObject.tp_new`." -#: ../Doc/c-api/typeobj.rst:2484 +#: ../Doc/c-api/typeobj.rst:2608 msgid "See :c:member:`~PyTypeObject.tp_free`." msgstr "Consulte :c:member:`~PyTypeObject.tp_free`." -#: ../Doc/c-api/typeobj.rst:2488 +#: ../Doc/c-api/typeobj.rst:2612 msgid "See :c:member:`~PyTypeObject.tp_new`." msgstr "Consulte :c:member:`~PyTypeObject.tp_new`." -#: ../Doc/c-api/typeobj.rst:2492 +#: ../Doc/c-api/typeobj.rst:2616 msgid "See :c:member:`~PyTypeObject.tp_init`." msgstr "Consulte :c:member:`~PyTypeObject.tp_init`." -#: ../Doc/c-api/typeobj.rst:2496 +#: ../Doc/c-api/typeobj.rst:2620 msgid "See :c:member:`~PyTypeObject.tp_repr`." msgstr "Consulte :c:member:`~PyTypeObject.tp_repr`." -#: ../Doc/c-api/typeobj.rst:2500 ../Doc/c-api/typeobj.rst:2509 +#: ../Doc/c-api/typeobj.rst:2624 ../Doc/c-api/typeobj.rst:2633 msgid "Return the value of the named attribute for the object." msgstr "Retorna el valor del atributo nombrado para el objeto." -#: ../Doc/c-api/typeobj.rst:2504 ../Doc/c-api/typeobj.rst:2515 +#: ../Doc/c-api/typeobj.rst:2628 ../Doc/c-api/typeobj.rst:2639 msgid "" "Set the value of the named attribute for the object. The value argument is " "set to ``NULL`` to delete the attribute." @@ -4321,49 +4477,49 @@ msgstr "" "Establece el valor del atributo nombrado para el objeto. El argumento del " "valor se establece en ``NULL`` para eliminar el atributo." -#: ../Doc/c-api/typeobj.rst:2511 +#: ../Doc/c-api/typeobj.rst:2635 msgid "See :c:member:`~PyTypeObject.tp_getattro`." msgstr "Consulte :c:member:`~PyTypeObject.tp_getattro`." -#: ../Doc/c-api/typeobj.rst:2518 +#: ../Doc/c-api/typeobj.rst:2642 msgid "See :c:member:`~PyTypeObject.tp_setattro`." msgstr "Consulte :c:member:`~PyTypeObject.tp_setattro`." -#: ../Doc/c-api/typeobj.rst:2522 +#: ../Doc/c-api/typeobj.rst:2646 #, fuzzy msgid "See :c:member:`~PyTypeObject.tp_descr_get`." msgstr "Consulte :c:member:`~PyTypeObject.tp_descrget`." -#: ../Doc/c-api/typeobj.rst:2526 +#: ../Doc/c-api/typeobj.rst:2650 #, fuzzy msgid "See :c:member:`~PyTypeObject.tp_descr_set`." msgstr "Consulte :c:member:`~PyTypeObject.tp_descrset`." -#: ../Doc/c-api/typeobj.rst:2530 +#: ../Doc/c-api/typeobj.rst:2654 msgid "See :c:member:`~PyTypeObject.tp_hash`." msgstr "Consulte :c:member:`~PyTypeObject.tp_hash`." -#: ../Doc/c-api/typeobj.rst:2534 +#: ../Doc/c-api/typeobj.rst:2658 msgid "See :c:member:`~PyTypeObject.tp_richcompare`." msgstr "Consulte :c:member:`~PyTypeObject.tp_richcompare`." -#: ../Doc/c-api/typeobj.rst:2538 +#: ../Doc/c-api/typeobj.rst:2662 msgid "See :c:member:`~PyTypeObject.tp_iter`." msgstr "Consulte :c:member:`~PyTypeObject.tp_iter`." -#: ../Doc/c-api/typeobj.rst:2542 +#: ../Doc/c-api/typeobj.rst:2666 msgid "See :c:member:`~PyTypeObject.tp_iternext`." msgstr "Consulte :c:member:`~PyTypeObject.tp_iternext`." -#: ../Doc/c-api/typeobj.rst:2556 +#: ../Doc/c-api/typeobj.rst:2680 msgid "See :c:member:`~PyAsyncMethods.am_send`." msgstr "Consulte :c:member:`~PyAsyncMethods.am_send`." -#: ../Doc/c-api/typeobj.rst:2572 +#: ../Doc/c-api/typeobj.rst:2696 msgid "Examples" msgstr "Ejemplos" -#: ../Doc/c-api/typeobj.rst:2574 +#: ../Doc/c-api/typeobj.rst:2698 msgid "" "The following are simple examples of Python type definitions. They include " "common usage you may encounter. Some demonstrate tricky corner cases. For " @@ -4376,11 +4532,11 @@ msgstr "" "un tutorial, consulte \"definiendo nuevos tipos\" (:ref:`defining-new-" "types`) y \"tópicos de nuevos tipos (:ref:`new-types-topics`)." -#: ../Doc/c-api/typeobj.rst:2579 +#: ../Doc/c-api/typeobj.rst:2703 msgid "A basic :ref:`static type `::" msgstr "Un :ref:`tipo estático ` básico:" -#: ../Doc/c-api/typeobj.rst:2596 +#: ../Doc/c-api/typeobj.rst:2720 msgid "" "You may also find older code (especially in the CPython code base) with a " "more verbose initializer::" @@ -4388,33 +4544,210 @@ msgstr "" "También puede encontrar código más antiguo (especialmente en la base de " "código CPython) con un inicializador más detallado::" -#: ../Doc/c-api/typeobj.rst:2640 +#: ../Doc/c-api/typeobj.rst:2764 msgid "A type that supports weakrefs, instance dicts, and hashing::" msgstr "" "Un tipo que admite referencias débiles, instancias de diccionarios (*dicts*) " "y *hashing*::" -#: ../Doc/c-api/typeobj.rst:2667 +#: ../Doc/c-api/typeobj.rst:2789 +#, fuzzy msgid "" "A str subclass that cannot be subclassed and cannot be called to create " -"instances (e.g. uses a separate factory func) using :c:data:" +"instances (e.g. uses a separate factory func) using :c:macro:" "`Py_TPFLAGS_DISALLOW_INSTANTIATION` flag::" msgstr "" "Una subclase str que no se puede subclasificar y no se puede llamar para " "crear instancias (por ejemplo, usa una función de fábrica separada) usando " "el indicador :c:data:`Py_TPFLAGS_DISALLOW_INSTANTIATION`:" -#: ../Doc/c-api/typeobj.rst:2686 +#: ../Doc/c-api/typeobj.rst:2808 msgid "" "The simplest :ref:`static type ` with fixed-length instances::" msgstr "" "El :ref:`tipo estático ` más simple con instancias de longitud " "fija:" -#: ../Doc/c-api/typeobj.rst:2697 +#: ../Doc/c-api/typeobj.rst:2819 msgid "" "The simplest :ref:`static type ` with variable-length " "instances::" msgstr "" "El :ref:`tipo estático ` más simple con instancias de longitud " "variable:" + +#: ../Doc/c-api/typeobj.rst:809 ../Doc/c-api/typeobj.rst:874 +msgid "built-in function" +msgstr "" + +#: ../Doc/c-api/typeobj.rst:809 +#, fuzzy +msgid "repr" +msgstr "__repr__" + +#: ../Doc/c-api/typeobj.rst:874 +#, fuzzy +msgid "hash" +msgstr "__hash__" + +#~ msgid "" +#~ "A slot name in parentheses indicates it is (effectively) deprecated. " +#~ "Names in angle brackets should be treated as read-only. Names in square " +#~ "brackets are for internal use only. \"\" (as a prefix) means the field " +#~ "is required (must be non-``NULL``)." +#~ msgstr "" +#~ "Un nombre de ranura entre paréntesis indica que está (efectivamente) en " +#~ "desuso. Los nombres entre paréntesis angulares deben tratarse como de " +#~ "solo lectura. Los nombres entre corchetes son solo para uso interno. " +#~ "\"\" (como prefijo) significa que el campo es obligatorio (no debe ser " +#~ "``NULL``)." + +#~ msgid "Group: :attr:`tp_getattr`, :attr:`tp_getattro`" +#~ msgstr "Grupo: :attr:`tp_getattr`, :attr:`tp_getattro`" + +#~ msgid "Group: :attr:`tp_setattr`, :attr:`tp_setattro`" +#~ msgstr "Grupo: :attr:`tp_setattr`, :attr:`tp_setattro`" + +#~ msgid "Group: :attr:`tp_hash`, :attr:`tp_richcompare`" +#~ msgstr "Grupo: :attr:`tp_hash`, :attr:`tp_richcompare`" + +#~ msgid ":const:`Py_LT`" +#~ msgstr ":const:`Py_LT`" + +#~ msgid ":const:`Py_LE`" +#~ msgstr ":const:`Py_LE`" + +#~ msgid ":const:`Py_EQ`" +#~ msgstr ":const:`Py_EQ`" + +#~ msgid ":const:`Py_NE`" +#~ msgstr ":const:`Py_NE`" + +#~ msgid ":const:`Py_GT`" +#~ msgstr ":const:`Py_GT`" + +#~ msgid ":const:`Py_GE`" +#~ msgstr ":const:`Py_GE`" + +#~ msgid "The return value's reference count is properly incremented." +#~ msgstr "" +#~ "El conteo de referencia del valor de retorno se incrementa correctamente." + +#~ msgid "" +#~ "When a type defined by a class statement has no :attr:`~object.__slots__` " +#~ "declaration, and none of its base types are weakly referenceable, the " +#~ "type is made weakly referenceable by adding a weak reference list head " +#~ "slot to the instance layout and setting the :c:member:`~PyTypeObject." +#~ "tp_weaklistoffset` of that slot's offset." +#~ msgstr "" +#~ "Cuando un tipo definido por una declaración de clase no tiene :attr:" +#~ "`~object.__slots__` declaración, y ninguno de sus tipos base es " +#~ "débilmente referenciable, el tipo se hace débilmente referenciable al " +#~ "agregar una ranura de encabezado de lista de referencia débil al diseño " +#~ "de la instancia y configurando :c:member:`~PyTypeObject." +#~ "tp_weaklistoffset` del desplazamiento de esa ranura." + +#~ msgid "" +#~ "When a type's :attr:`__slots__` declaration contains a slot named :attr:" +#~ "`__weakref__`, that slot becomes the weak reference list head for " +#~ "instances of the type, and the slot's offset is stored in the type's :c:" +#~ "member:`~PyTypeObject.tp_weaklistoffset`." +#~ msgstr "" +#~ "Cuando la declaración de un tipo :attr:`__slots__` contiene un espacio " +#~ "llamado :attr:`__weakref__`, ese espacio se convierte en el encabezado de " +#~ "la lista de referencia débil para las instancias del tipo, y el " +#~ "desplazamiento del espacio se almacena en el tipo :c:member:" +#~ "`~PyTypeObject.tp_weaklistoffset`." + +#~ msgid "" +#~ "When a type's :attr:`__slots__` declaration does not contain a slot " +#~ "named :attr:`__weakref__`, the type inherits its :c:member:`~PyTypeObject." +#~ "tp_weaklistoffset` from its base type." +#~ msgstr "" +#~ "Cuando la declaración de un tipo :attr:`__slots__` no contiene un espacio " +#~ "llamado :attr:`__weakref__`, el tipo hereda su :c:member:`~PyTypeObject." +#~ "tp_weaklistoffset` de su tipo base." + +#~ msgid "" +#~ "If the value of this field is greater than zero, it specifies the offset " +#~ "from the start of the instance structure. If the value is less than " +#~ "zero, it specifies the offset from the *end* of the instance structure. " +#~ "A negative offset is more expensive to use, and should only be used when " +#~ "the instance structure contains a variable-length part. This is used for " +#~ "example to add an instance variable dictionary to subtypes of :class:" +#~ "`str` or :class:`tuple`. Note that the :c:member:`~PyTypeObject." +#~ "tp_basicsize` field should account for the dictionary added to the end in " +#~ "that case, even though the dictionary is not included in the basic object " +#~ "layout. On a system with a pointer size of 4 bytes, :c:member:" +#~ "`~PyTypeObject.tp_dictoffset` should be set to ``-4`` to indicate that " +#~ "the dictionary is at the very end of the structure." +#~ msgstr "" +#~ "Si el valor de este campo es mayor que cero, especifica el desplazamiento " +#~ "desde el inicio de la estructura de la instancia. Si el valor es menor " +#~ "que cero, especifica el desplazamiento desde el *end* de la estructura de " +#~ "la instancia. Un desplazamiento negativo es más costoso de usar y solo " +#~ "debe usarse cuando la estructura de la instancia contiene una parte de " +#~ "longitud variable. Esto se utiliza, por ejemplo, para agregar un " +#~ "diccionario de variables de instancia a los subtipos de :class:`str` o :" +#~ "class:`tuple`. Tenga en cuenta que el campo :c:member:`~PyTypeObject." +#~ "tp_basicsize` debe tener en cuenta el diccionario agregado al final en " +#~ "ese caso, aunque el diccionario no esté incluido en el diseño básico del " +#~ "objeto. En un sistema con un tamaño de puntero de 4 bytes, :c:member:" +#~ "`~PyTypeObject.tp_dictoffset` debe establecerse en ``-4`` para indicar " +#~ "que el diccionario está al final de la estructura." + +#~ msgid "" +#~ "This field is inherited by subtypes, but see the rules listed below. A " +#~ "subtype may override this offset; this means that the subtype instances " +#~ "store the dictionary at a difference offset than the base type. Since " +#~ "the dictionary is always found via :c:member:`~PyTypeObject." +#~ "tp_dictoffset`, this should not be a problem." +#~ msgstr "" +#~ "Este campo es heredado por subtipos, pero consulte las reglas que se " +#~ "enumeran a continuación. Un subtipo puede anular este desplazamiento; " +#~ "Esto significa que las instancias de subtipo almacenan el diccionario en " +#~ "un desplazamiento de diferencia que el tipo base. Dado que el diccionario " +#~ "siempre se encuentra a través de :c:member:`~PyTypeObject.tp_dictoffset`, " +#~ "esto no debería ser un problema." + +#~ msgid "" +#~ "When a type defined by a class statement has no :attr:`~object.__slots__` " +#~ "declaration, and none of its base types has an instance variable " +#~ "dictionary, a dictionary slot is added to the instance layout and the :c:" +#~ "member:`~PyTypeObject.tp_dictoffset` is set to that slot's offset." +#~ msgstr "" +#~ "Cuando un tipo definido por una declaración de clase no tiene :attr:" +#~ "`~object.__slots__` declaración, y ninguno de sus tipos base tiene un " +#~ "diccionario de variable de instancia, se agrega un espacio de diccionario " +#~ "al diseño de la instancia y el :c:member:`~PyTypeObject.tp_dictoffset` " +#~ "está configurado para el desplazamiento de esa ranura." + +#~ msgid "" +#~ "When a type defined by a class statement has a :attr:`__slots__` " +#~ "declaration, the type inherits its :c:member:`~PyTypeObject." +#~ "tp_dictoffset` from its base type." +#~ msgstr "" +#~ "Cuando un tipo definido por una declaración de clase tiene una " +#~ "declaración :attr:`__slots__`, el tipo hereda su :c:member:`~PyTypeObject." +#~ "tp_dictoffset` de su tipo base." + +#~ msgid "" +#~ "(Adding a slot named :attr:`~object.__dict__` to the :attr:`__slots__` " +#~ "declaration does not have the expected effect, it just causes confusion. " +#~ "Maybe this should be added as a feature just like :attr:`__weakref__` " +#~ "though.)" +#~ msgstr "" +#~ "(Agrega un espacio llamado :attr:`~object.__dict__` a la declaración :" +#~ "attr:`__slots__` no tiene el efecto esperado, solo causa confusión. " +#~ "Quizás esto debería agregarse como una característica como :attr:" +#~ "`__weakref__` aunque.)" + +#~ msgid "" +#~ "This is set for types created by a class statement. It should be " +#~ "``NULL`` for statically defined types." +#~ msgstr "" +#~ "Esto se establece para los tipos creados por una declaración de clase. " +#~ "Debería ser ``NULL`` para los tipos estáticamente definidos." + +#~ msgid "List of weak references to subclasses. Internal use only." +#~ msgstr "Lista de referencias débiles a subclases. Solo para uso interno." diff --git a/c-api/unicode.po b/c-api/unicode.po index c96375401b..c13f915f3d 100644 --- a/c-api/unicode.po +++ b/c-api/unicode.po @@ -10,18 +10,17 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-03 03:56-0400\n" "Last-Translator: Cristián Maureira-Fredes \n" +"Language: es\n" "Language-Team: python-doc-es (https://mail.python.org/mailman3/lists/docs-es." "python.org)\n" -"Language: es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/unicode.rst:6 msgid "Unicode Objects and Codecs" @@ -49,64 +48,25 @@ msgstr "" "rango completo de Unicode)." #: ../Doc/c-api/unicode.rst:20 -#, fuzzy -msgid "" -":c:expr:`Py_UNICODE*` and UTF-8 representations are created on demand and " -"cached in the Unicode object. The :c:expr:`Py_UNICODE*` representation is " -"deprecated and inefficient." -msgstr "" -":c:type:`Py_UNICODE *` y las representaciones UTF-8 se crean a pedido y se " -"almacenan en caché en el objeto Unicode. La representación :c:type:" -"`Py_UNICODE *` está en desuso y es ineficiente; debe evitarse en situaciones " -"sensibles al rendimiento o la memoria." - -#: ../Doc/c-api/unicode.rst:24 -msgid "" -"Due to the transition between the old APIs and the new APIs, Unicode objects " -"can internally be in two states depending on how they were created:" -msgstr "" -"Debido a la transición entre las API antiguas y las API nuevas, los objetos " -"Unicode pueden estar internamente en dos estados dependiendo de cómo se " -"crearon:" - -#: ../Doc/c-api/unicode.rst:27 msgid "" -"\"canonical\" Unicode objects are all objects created by a non-deprecated " -"Unicode API. They use the most efficient representation allowed by the " -"implementation." +"UTF-8 representation is created on demand and cached in the Unicode object." msgstr "" -"Los objetos Unicode \"canónicos\" son todos los objetos creados por una API " -"Unicode no obsoleta. Utilizan la representación más eficiente permitida por " -"la implementación." -#: ../Doc/c-api/unicode.rst:31 +#: ../Doc/c-api/unicode.rst:23 #, fuzzy msgid "" -"\"legacy\" Unicode objects have been created through one of the deprecated " -"APIs (typically :c:func:`PyUnicode_FromUnicode`) and only bear the :c:expr:" -"`Py_UNICODE*` representation; you will have to call :c:func:" -"`PyUnicode_READY` on them before calling any other API." -msgstr "" -"Los objetos Unicode \"heredados\" se han creado a través de una de las API " -"obsoletas (normalmente :c:func:`PyUnicode_FromUnicode`) y solo tienen la " -"representación :c:type:`Py_UNICODE*`; Será necesario llamar a :c:func:" -"`PyUnicode_READY` en ellos antes de llamar a cualquier otra API." - -#: ../Doc/c-api/unicode.rst:37 -msgid "" -"The \"legacy\" Unicode object will be removed in Python 3.12 with deprecated " -"APIs. All Unicode objects will be \"canonical\" since then. See :pep:`623` " -"for more information." +"The :c:type:`Py_UNICODE` representation has been removed since Python 3.12 " +"with deprecated APIs. See :pep:`623` for more information." msgstr "" "El objeto Unicode \"heredado\" se eliminará en Python 3.12 con APIs " "obsoletas. Todos los objetos Unicode serán \"canónicos\" desde entonces. " "Consulte :pep:`623` para obtener más información." -#: ../Doc/c-api/unicode.rst:43 +#: ../Doc/c-api/unicode.rst:29 msgid "Unicode Type" msgstr "Tipo unicode" -#: ../Doc/c-api/unicode.rst:45 +#: ../Doc/c-api/unicode.rst:31 msgid "" "These are the basic Unicode object types used for the Unicode implementation " "in Python:" @@ -114,7 +74,7 @@ msgstr "" "Estos son los tipos básicos de objetos Unicode utilizados para la " "implementación de Unicode en Python:" -#: ../Doc/c-api/unicode.rst:52 +#: ../Doc/c-api/unicode.rst:38 msgid "" "These types are typedefs for unsigned integer types wide enough to contain " "characters of 32 bits, 16 bits and 8 bits, respectively. When dealing with " @@ -125,16 +85,16 @@ msgstr "" "caracteres de 32 bits, 16 bits y 8 bits, respectivamente. Cuando se trate " "con caracteres Unicode individuales, use :c:type:`Py_UCS4`." -#: ../Doc/c-api/unicode.rst:61 +#: ../Doc/c-api/unicode.rst:47 #, fuzzy msgid "" -"This is a typedef of :c:expr:`wchar_t`, which is a 16-bit type or 32-bit " +"This is a typedef of :c:type:`wchar_t`, which is a 16-bit type or 32-bit " "type depending on the platform." msgstr "" "Este es una definición de tipo (*typedef*) de :c:type:`wchar_t`, que es un " "tipo de 16 bits o de 32 bits dependiendo de la plataforma." -#: ../Doc/c-api/unicode.rst:64 +#: ../Doc/c-api/unicode.rst:50 msgid "" "In previous versions, this was a 16-bit type or a 32-bit type depending on " "whether you selected a \"narrow\" or \"wide\" Unicode version of Python at " @@ -144,7 +104,7 @@ msgstr "" "dependiendo de si seleccionó una versión Unicode \"estrecha\" o \"amplia\" " "de Python en el momento de la compilación." -#: ../Doc/c-api/unicode.rst:74 +#: ../Doc/c-api/unicode.rst:60 msgid "" "These subtypes of :c:type:`PyObject` represent a Python Unicode object. In " "almost all cases, they shouldn't be used directly, since all API functions " @@ -155,7 +115,7 @@ msgstr "" "funciones API que se ocupan de objetos Unicode toman y retornan punteros :c:" "type:`PyObject`." -#: ../Doc/c-api/unicode.rst:83 +#: ../Doc/c-api/unicode.rst:69 msgid "" "This instance of :c:type:`PyTypeObject` represents the Python Unicode type. " "It is exposed to Python code as ``str``." @@ -163,7 +123,7 @@ msgstr "" "Esta instancia de :c:type:`PyTypeObject` representa el tipo Python Unicode. " "Está expuesto al código de Python como ``str``." -#: ../Doc/c-api/unicode.rst:87 +#: ../Doc/c-api/unicode.rst:73 #, fuzzy msgid "" "The following APIs are C macros and static inlined functions for fast checks " @@ -173,7 +133,7 @@ msgstr "" "realizar comprobaciones rápidas y acceder a datos internos de solo lectura " "de objetos Unicode:" -#: ../Doc/c-api/unicode.rst:92 +#: ../Doc/c-api/unicode.rst:78 msgid "" "Return true if the object *o* is a Unicode object or an instance of a " "Unicode subtype. This function always succeeds." @@ -181,7 +141,7 @@ msgstr "" "Retorna verdadero si el objeto *o* es un objeto Unicode o una instancia de " "un subtipo Unicode." -#: ../Doc/c-api/unicode.rst:98 +#: ../Doc/c-api/unicode.rst:84 msgid "" "Return true if the object *o* is a Unicode object, but not an instance of a " "subtype. This function always succeeds." @@ -189,28 +149,16 @@ msgstr "" "Retorna verdadero (*True*) si el objeto *o* es un objeto Unicode, pero no " "una instancia de un subtipo." -#: ../Doc/c-api/unicode.rst:104 -msgid "" -"Ensure the string object *o* is in the \"canonical\" representation. This " -"is required before using any of the access macros described below." +#: ../Doc/c-api/unicode.rst:90 +msgid "Returns ``0``. This API is kept only for backward compatibility." msgstr "" -"Asegura que el objeto de cadena de caracteres *o* esté en la representación " -"\"canónica\". Esto es necesario antes de usar cualquiera de las macros de " -"acceso que se describen a continuación." -#: ../Doc/c-api/unicode.rst:109 -msgid "" -"Returns ``0`` on success and ``-1`` with an exception set on failure, which " -"in particular happens if memory allocation fails." -msgstr "" -"Retorna ``0`` en caso de éxito y ``-1`` con una excepción establecida en " -"caso de error, que ocurre en particular si falla la asignación de memoria." - -#: ../Doc/c-api/unicode.rst:115 -msgid "This API will be removed with :c:func:`PyUnicode_FromUnicode`." -msgstr "Esta API será removida con :c:func:`PyUnicode_FromUnicode`." +#: ../Doc/c-api/unicode.rst:94 +#, fuzzy +msgid "This API does nothing since Python 3.12." +msgstr "Esta función no lanza excepciones." -#: ../Doc/c-api/unicode.rst:120 +#: ../Doc/c-api/unicode.rst:100 msgid "" "Return the length of the Unicode string, in code points. *o* has to be a " "Unicode object in the \"canonical\" representation (not checked)." @@ -219,13 +167,13 @@ msgstr "" "*o* tiene que ser un objeto Unicode en la representación \"canónica\" (no " "marcada)." -#: ../Doc/c-api/unicode.rst:130 +#: ../Doc/c-api/unicode.rst:110 +#, fuzzy msgid "" "Return a pointer to the canonical representation cast to UCS1, UCS2 or UCS4 " "integer types for direct character access. No checks are performed if the " "canonical representation has the correct character size; use :c:func:" -"`PyUnicode_KIND` to select the right macro. Make sure :c:func:" -"`PyUnicode_READY` has been called before accessing this." +"`PyUnicode_KIND` to select the right function." msgstr "" "Retorna un puntero a la representación canónica emitida a los tipos enteros " "UCS1, UCS2 o UCS4 para el acceso directo a los caracteres. No se realizan " @@ -234,15 +182,16 @@ msgstr "" "Asegúrese de que se haya llamado a :c:func:`PyUnicode_READY` antes de " "acceder a esto." -#: ../Doc/c-api/unicode.rst:144 +#: ../Doc/c-api/unicode.rst:122 msgid "Return values of the :c:func:`PyUnicode_KIND` macro." msgstr "Retorna los valores de la macro :c:func:`PyUnicode_KIND`." -#: ../Doc/c-api/unicode.rst:149 -msgid "``PyUnicode_WCHAR_KIND`` is deprecated." +#: ../Doc/c-api/unicode.rst:126 +#, fuzzy +msgid "``PyUnicode_WCHAR_KIND`` has been removed." msgstr "``PyUnicode_WCHAR_KIND`` está deprecada." -#: ../Doc/c-api/unicode.rst:154 +#: ../Doc/c-api/unicode.rst:132 msgid "" "Return one of the PyUnicode kind constants (see above) that indicate how " "many bytes per character this Unicode object uses to store its data. *o* " @@ -253,7 +202,7 @@ msgstr "" "datos. *o* tiene que ser un objeto Unicode en la representación " "\"canónica\" (no verificada)." -#: ../Doc/c-api/unicode.rst:165 +#: ../Doc/c-api/unicode.rst:141 msgid "" "Return a void pointer to the raw Unicode buffer. *o* has to be a Unicode " "object in the \"canonical\" representation (not checked)." @@ -261,7 +210,7 @@ msgstr "" "Retorna un puntero vacío al búfer Unicode sin formato. *o* tiene que ser un " "objeto Unicode en la representación \"canónica\" (no marcada)." -#: ../Doc/c-api/unicode.rst:174 +#: ../Doc/c-api/unicode.rst:150 #, fuzzy msgid "" "Write into a canonical representation *data* (as obtained with :c:func:" @@ -279,7 +228,7 @@ msgstr "" "y *value* es el nuevo valor del punto de código que debe escribirse en esa " "ubicación." -#: ../Doc/c-api/unicode.rst:187 +#: ../Doc/c-api/unicode.rst:163 msgid "" "Read a code point from a canonical representation *data* (as obtained with :" "c:func:`PyUnicode_DATA`). No checks or ready calls are performed." @@ -288,7 +237,7 @@ msgstr "" "c:func:`PyUnicode_DATA`). No se realizan verificaciones ni llamadas " "preparadas." -#: ../Doc/c-api/unicode.rst:195 +#: ../Doc/c-api/unicode.rst:171 msgid "" "Read a character from a Unicode object *o*, which must be in the " "\"canonical\" representation. This is less efficient than :c:func:" @@ -298,7 +247,7 @@ msgstr "" "representación \"canónica\". Esto es menos eficiente que :c:func:" "`PyUnicode_READ` si realiza varias lecturas consecutivas." -#: ../Doc/c-api/unicode.rst:204 +#: ../Doc/c-api/unicode.rst:180 msgid "" "Return the maximum code point that is suitable for creating another string " "based on *o*, which must be in the \"canonical\" representation. This is " @@ -309,74 +258,7 @@ msgstr "" "Esto siempre es una aproximación pero más eficiente que iterar sobre la " "cadena." -#: ../Doc/c-api/unicode.rst:213 -msgid "" -"Return the size of the deprecated :c:type:`Py_UNICODE` representation, in " -"code units (this includes surrogate pairs as 2 units). *o* has to be a " -"Unicode object (not checked)." -msgstr "" -"Retorna el tamaño de la representación en desuso :c:type:`Py_UNICODE`, en " -"unidades de código (esto incluye pares sustitutos como 2 unidades). *o* " -"tiene que ser un objeto Unicode (no marcado)." - -#: ../Doc/c-api/unicode.rst:219 ../Doc/c-api/unicode.rst:229 -#: ../Doc/c-api/unicode.rst:752 -msgid "" -"Part of the old-style Unicode API, please migrate to using :c:func:" -"`PyUnicode_GET_LENGTH`." -msgstr "" -"Parte de la API Unicode de estilo antiguo, por favor migrar para usar :c:" -"func:`PyUnicode_GET_LENGTH`." - -#: ../Doc/c-api/unicode.rst:224 -msgid "" -"Return the size of the deprecated :c:type:`Py_UNICODE` representation in " -"bytes. *o* has to be a Unicode object (not checked)." -msgstr "" -"Retorna el tamaño de la representación en desuso :c:type:`Py_UNICODE` en " -"bytes. *o* tiene que ser un objeto Unicode (no marcado)." - -#: ../Doc/c-api/unicode.rst:235 -#, fuzzy -msgid "" -"Return a pointer to a :c:type:`Py_UNICODE` representation of the object. " -"The returned buffer is always terminated with an extra null code point. It " -"may also contain embedded null code points, which would cause the string to " -"be truncated when used in most C functions. The ``AS_DATA`` form casts the " -"pointer to :c:expr:`const char *`. The *o* argument has to be a Unicode " -"object (not checked)." -msgstr "" -"Retorna un puntero a una representación :c:type:`Py_UNICODE` del objeto. El " -"búfer retornado siempre termina con un punto de código nulo adicional. " -"También puede contener puntos de código nulo incrustados, lo que provocaría " -"que la cadena de caracteres se truncara cuando se usara en la mayoría de las " -"funciones de C. La forma ``AS_DATA`` arroja el puntero a :c:type:`const char " -"*`. El argumento *o* tiene que ser un objeto Unicode (no marcado)." - -#: ../Doc/c-api/unicode.rst:242 -#, fuzzy -msgid "" -"This function is now inefficient -- because in many cases the :c:type:" -"`Py_UNICODE` representation does not exist and needs to be created -- and " -"can fail (return ``NULL`` with an exception set). Try to port the code to " -"use the new :c:func:`PyUnicode_nBYTE_DATA` macros or use :c:func:" -"`PyUnicode_WRITE` or :c:func:`PyUnicode_READ`." -msgstr "" -"Esta macro ahora es ineficiente, porque en muchos casos la representación :c:" -"type:`Py_UNICODE` no existe y necesita ser creada, y puede fallar (retornar " -"``NULL`` con un conjunto de excepciones). Intente portar el código para usar " -"las nuevas macros :c:func:`PyUnicode_nBYTE_DATA` o use :c:func:" -"`PyUnicode_WRITE` o :c:func:`PyUnicode_READ`." - -#: ../Doc/c-api/unicode.rst:251 -msgid "" -"Part of the old-style Unicode API, please migrate to using the :c:func:" -"`PyUnicode_nBYTE_DATA` family of macros." -msgstr "" -"Parte de la antigua API Unicode, por favor migre para usar la familia de " -"macros :c:func:`PyUnicode_nBYTE_DATA`." - -#: ../Doc/c-api/unicode.rst:256 +#: ../Doc/c-api/unicode.rst:189 msgid "" "Return ``1`` if the string is a valid identifier according to the language " "definition, section :ref:`identifiers`. Return ``0`` otherwise." @@ -385,7 +267,7 @@ msgstr "" "acuerdo con la definición del lenguaje, sección :ref:`identifiers`. Retorna " "``0`` de lo contrario." -#: ../Doc/c-api/unicode.rst:259 +#: ../Doc/c-api/unicode.rst:192 msgid "" "The function does not call :c:func:`Py_FatalError` anymore if the string is " "not ready." @@ -393,11 +275,11 @@ msgstr "" "La función ya no llama a :c:func:`Py_FatalError` si la cadena de caracteres " "no está lista." -#: ../Doc/c-api/unicode.rst:265 +#: ../Doc/c-api/unicode.rst:198 msgid "Unicode Character Properties" msgstr "Propiedades de caracteres Unicode" -#: ../Doc/c-api/unicode.rst:267 +#: ../Doc/c-api/unicode.rst:200 msgid "" "Unicode provides many different character properties. The most often needed " "ones are available through these macros which are mapped to C functions " @@ -407,66 +289,66 @@ msgstr "" "necesitan con mayor frecuencia están disponibles a través de estas macros " "que se asignan a las funciones de C según la configuración de Python." -#: ../Doc/c-api/unicode.rst:274 +#: ../Doc/c-api/unicode.rst:207 msgid "" "Return ``1`` or ``0`` depending on whether *ch* is a whitespace character." msgstr "" "Retorna ``1`` o ``0`` dependiendo de si *ch* es un carácter de espacio en " "blanco." -#: ../Doc/c-api/unicode.rst:279 +#: ../Doc/c-api/unicode.rst:212 msgid "" "Return ``1`` or ``0`` depending on whether *ch* is a lowercase character." msgstr "" "Retorna ``1`` o ``0`` dependiendo de si *ch* es un carácter en minúscula." -#: ../Doc/c-api/unicode.rst:284 +#: ../Doc/c-api/unicode.rst:217 msgid "" "Return ``1`` or ``0`` depending on whether *ch* is an uppercase character." msgstr "" "Retorna ``1`` o ``0`` dependiendo de si *ch* es un carácter en mayúscula." -#: ../Doc/c-api/unicode.rst:289 +#: ../Doc/c-api/unicode.rst:222 msgid "" "Return ``1`` or ``0`` depending on whether *ch* is a titlecase character." msgstr "" "Retorna ``1`` o ``0`` dependiendo de si *ch* es un carácter en caso de " "título (*titlecase*)." -#: ../Doc/c-api/unicode.rst:294 +#: ../Doc/c-api/unicode.rst:227 msgid "" "Return ``1`` or ``0`` depending on whether *ch* is a linebreak character." msgstr "" "Retorna ``1`` o ``0`` dependiendo de si *ch* es un carácter de salto de " "línea." -#: ../Doc/c-api/unicode.rst:299 +#: ../Doc/c-api/unicode.rst:232 msgid "Return ``1`` or ``0`` depending on whether *ch* is a decimal character." msgstr "" "Retorna ``1`` o ``0`` dependiendo de si *ch* es un carácter decimal o no." -#: ../Doc/c-api/unicode.rst:304 +#: ../Doc/c-api/unicode.rst:237 msgid "Return ``1`` or ``0`` depending on whether *ch* is a digit character." msgstr "" "Retorna ``1`` o ``0`` dependiendo de si *ch* es un carácter de dígitos." -#: ../Doc/c-api/unicode.rst:309 +#: ../Doc/c-api/unicode.rst:242 msgid "Return ``1`` or ``0`` depending on whether *ch* is a numeric character." msgstr "Retorna ``1`` o ``0`` dependiendo de si *ch* es un carácter numérico." -#: ../Doc/c-api/unicode.rst:314 +#: ../Doc/c-api/unicode.rst:247 msgid "" "Return ``1`` or ``0`` depending on whether *ch* is an alphabetic character." msgstr "" "Retorna ``1`` o ``0`` dependiendo de si *ch* es un carácter alfabético." -#: ../Doc/c-api/unicode.rst:319 +#: ../Doc/c-api/unicode.rst:252 msgid "" "Return ``1`` or ``0`` depending on whether *ch* is an alphanumeric character." msgstr "" "Retorna ``1`` o ``0`` dependiendo de si *ch* es un carácter alfanumérico." -#: ../Doc/c-api/unicode.rst:324 +#: ../Doc/c-api/unicode.rst:257 msgid "" "Return ``1`` or ``0`` depending on whether *ch* is a printable character. " "Nonprintable characters are those characters defined in the Unicode " @@ -485,83 +367,88 @@ msgstr "" "con el manejo de cadenas de caracteres escritas en :data:`sys.stdout` o :" "data:`sys.stderr`.)" -#: ../Doc/c-api/unicode.rst:333 +#: ../Doc/c-api/unicode.rst:266 msgid "These APIs can be used for fast direct character conversions:" msgstr "" "Estas API se pueden usar para conversiones caracteres rápidas y directos:" -#: ../Doc/c-api/unicode.rst:338 +#: ../Doc/c-api/unicode.rst:271 msgid "Return the character *ch* converted to lower case." msgstr "Retorna el carácter *ch* convertido a minúsculas." -#: ../Doc/c-api/unicode.rst:340 ../Doc/c-api/unicode.rst:348 -#: ../Doc/c-api/unicode.rst:356 +#: ../Doc/c-api/unicode.rst:273 ../Doc/c-api/unicode.rst:281 +#: ../Doc/c-api/unicode.rst:289 msgid "This function uses simple case mappings." msgstr "Esta función utiliza conversiones simples." -#: ../Doc/c-api/unicode.rst:346 +#: ../Doc/c-api/unicode.rst:279 msgid "Return the character *ch* converted to upper case." msgstr "Retorna el carácter *ch* convertido a mayúsculas." -#: ../Doc/c-api/unicode.rst:354 +#: ../Doc/c-api/unicode.rst:287 msgid "Return the character *ch* converted to title case." msgstr "Retorna el carácter *ch* convertido a formato de título (*titlecase*)." -#: ../Doc/c-api/unicode.rst:362 +#: ../Doc/c-api/unicode.rst:295 +#, fuzzy msgid "" "Return the character *ch* converted to a decimal positive integer. Return " -"``-1`` if this is not possible. This macro does not raise exceptions." +"``-1`` if this is not possible. This function does not raise exceptions." msgstr "" "Retorna el carácter *ch* convertido a un entero positivo decimal. Retorna " "``-1`` si esto no es posible. Esta macro no lanza excepciones." -#: ../Doc/c-api/unicode.rst:368 +#: ../Doc/c-api/unicode.rst:301 +#, fuzzy msgid "" "Return the character *ch* converted to a single digit integer. Return ``-1`` " -"if this is not possible. This macro does not raise exceptions." +"if this is not possible. This function does not raise exceptions." msgstr "" "Retorna el carácter *ch* convertido a un entero de un solo dígito. Retorna " "``-1`` si esto no es posible. Esta macro no lanza excepciones." -#: ../Doc/c-api/unicode.rst:374 +#: ../Doc/c-api/unicode.rst:307 +#, fuzzy msgid "" "Return the character *ch* converted to a double. Return ``-1.0`` if this is " -"not possible. This macro does not raise exceptions." +"not possible. This function does not raise exceptions." msgstr "" "Retorna el carácter *ch* convertido a doble. retorne ``-1.0`` si esto no es " "posible. Esta macro no lanza excepciones." -#: ../Doc/c-api/unicode.rst:378 +#: ../Doc/c-api/unicode.rst:311 msgid "These APIs can be used to work with surrogates:" msgstr "Estas API se pueden usar para trabajar con sustitutos:" -#: ../Doc/c-api/unicode.rst:382 +#: ../Doc/c-api/unicode.rst:315 msgid "Check if *ch* is a surrogate (``0xD800 <= ch <= 0xDFFF``)." msgstr "Comprueba si *ch* es un sustituto (``0xD800 <= ch <= 0xDFFF``)." -#: ../Doc/c-api/unicode.rst:386 +#: ../Doc/c-api/unicode.rst:319 msgid "Check if *ch* is a high surrogate (``0xD800 <= ch <= 0xDBFF``)." msgstr "Comprueba si *ch* es un sustituto alto (``0xD800 <= ch <= 0xDFFF``)." -#: ../Doc/c-api/unicode.rst:390 +#: ../Doc/c-api/unicode.rst:323 msgid "Check if *ch* is a low surrogate (``0xDC00 <= ch <= 0xDFFF``)." msgstr "Comprueba si *ch* es un sustituto bajo (``0xD800 <= ch <= 0xDFFF``)." -#: ../Doc/c-api/unicode.rst:394 +#: ../Doc/c-api/unicode.rst:327 +#, fuzzy msgid "" -"Join two surrogate characters and return a single Py_UCS4 value. *high* and " -"*low* are respectively the leading and trailing surrogates in a surrogate " -"pair." +"Join two surrogate characters and return a single :c:type:`Py_UCS4` value. " +"*high* and *low* are respectively the leading and trailing surrogates in a " +"surrogate pair. *high* must be in the range [0xD800; 0xDBFF] and *low* must " +"be in the range [0xDC00; 0xDFFF]." msgstr "" "Une dos caracteres sustitutos y retorna un solo valor Py_UCS4. *high* y " "*low* son respectivamente los sustitutos iniciales y finales en un par " "sustituto." -#: ../Doc/c-api/unicode.rst:400 +#: ../Doc/c-api/unicode.rst:334 msgid "Creating and accessing Unicode strings" msgstr "Creando y accediendo a cadenas de caracteres Unicode" -#: ../Doc/c-api/unicode.rst:402 +#: ../Doc/c-api/unicode.rst:336 msgid "" "To create Unicode objects and access their basic sequence properties, use " "these APIs:" @@ -569,7 +456,7 @@ msgstr "" "Para crear objetos Unicode y acceder a sus propiedades de secuencia básicas, " "use estas API:" -#: ../Doc/c-api/unicode.rst:407 +#: ../Doc/c-api/unicode.rst:341 msgid "" "Create a new Unicode object. *maxchar* should be the true maximum code " "point to be placed in the string. As an approximation, it can be rounded up " @@ -579,7 +466,7 @@ msgstr "" "que se colocará en la cadena de caracteres. Como una aproximación, se puede " "redondear al valor más cercano en la secuencia 127, 255, 65535, 1114111." -#: ../Doc/c-api/unicode.rst:411 +#: ../Doc/c-api/unicode.rst:345 msgid "" "This is the recommended way to allocate a new Unicode object. Objects " "created using this function are not resizable." @@ -587,7 +474,7 @@ msgstr "" "Esta es la forma recomendada de asignar un nuevo objeto Unicode. Los objetos " "creados con esta función no se pueden redimensionar." -#: ../Doc/c-api/unicode.rst:420 +#: ../Doc/c-api/unicode.rst:354 msgid "" "Create a new Unicode object with the given *kind* (possible values are :c:" "macro:`PyUnicode_1BYTE_KIND` etc., as returned by :c:func:" @@ -599,7 +486,7 @@ msgstr "" "`PyUnicode_KIND`). El *búfer* debe apuntar a un vector (*array*) de *tamaño* " "unidades de 1, 2 o 4 bytes por carácter, según el tipo." -#: ../Doc/c-api/unicode.rst:425 +#: ../Doc/c-api/unicode.rst:359 msgid "" "If necessary, the input *buffer* is copied and transformed into the " "canonical representation. For example, if the *buffer* is a UCS4 string (:c:" @@ -612,43 +499,51 @@ msgstr "" "código en el rango UCS1, se transformará en UCS1 (:c:macro:" "`PyUnicode_1BYTE_KIND`)." -#: ../Doc/c-api/unicode.rst:436 +#: ../Doc/c-api/unicode.rst:370 +#, fuzzy msgid "" "Create a Unicode object from the char buffer *u*. The bytes will be " "interpreted as being UTF-8 encoded. The buffer is copied into the new " -"object. If the buffer is not ``NULL``, the return value might be a shared " -"object, i.e. modification of the data is not allowed." +"object. The return value might be a shared object, i.e. modification of the " +"data is not allowed." msgstr "" "Crea un objeto Unicode desde el búfer de caracteres *u*. Los bytes se " "interpretarán como codificados en UTF-8. El búfer se copia en el nuevo " "objeto. Si el búfer no es ``NULL``, el valor de retorno podría ser un objeto " "compartido, es decir, no se permite la modificación de los datos." -#: ../Doc/c-api/unicode.rst:441 -msgid "" -"If *u* is ``NULL``, this function behaves like :c:func:" -"`PyUnicode_FromUnicode` with the buffer set to ``NULL``. This usage is " -"deprecated in favor of :c:func:`PyUnicode_New`, and will be removed in " -"Python 3.12." +#: ../Doc/c-api/unicode.rst:376 +#, fuzzy +msgid "This function raises :exc:`SystemError` when:" +msgstr "Esta función no lanza excepciones." + +#: ../Doc/c-api/unicode.rst:378 +msgid "*size* < 0," +msgstr "" + +#: ../Doc/c-api/unicode.rst:379 +msgid "*u* is ``NULL`` and *size* > 0" +msgstr "" + +#: ../Doc/c-api/unicode.rst:381 +msgid "*u* == ``NULL`` with *size* > 0 is not allowed anymore." msgstr "" -"Si *u* es ``NULL``, esta función se comporta como :c:func:" -"`PyUnicode_FromUnicode` con el búfer establecido en ``NULL``. Este uso se " -"considera obsoleto (*deprecated*) en favor de :c:func:`PyUnicode_New`." -#: ../Doc/c-api/unicode.rst:448 +#: ../Doc/c-api/unicode.rst:387 msgid "" "Create a Unicode object from a UTF-8 encoded null-terminated char buffer *u*." msgstr "" "Crea un objeto Unicode a partir de un búfer *u* de caracteres terminado en " "nulo y codificado en UTF-8." -#: ../Doc/c-api/unicode.rst:454 +#: ../Doc/c-api/unicode.rst:393 +#, fuzzy msgid "" "Take a C :c:func:`printf`\\ -style *format* string and a variable number of " "arguments, calculate the size of the resulting Python Unicode string and " "return a string with the values formatted into it. The variable arguments " "must be C types and must correspond exactly to the format characters in the " -"*format* ASCII-encoded string. The following format characters are allowed:" +"*format* ASCII-encoded string." msgstr "" "Toma una cadena de caracteres *format* con el estilo de :c:func:`printf` en " "C y un número variable de argumentos, calcula el tamaño de la cadena Python " @@ -658,216 +553,253 @@ msgstr "" "caracteres *format* codificada en ASCII. Se permiten los siguientes " "caracteres de formato:" -#: ../Doc/c-api/unicode.rst:469 -msgid "Format Characters" -msgstr "Formatear caracteres" +#: ../Doc/c-api/unicode.rst:399 +msgid "" +"A conversion specifier contains two or more characters and has the following " +"components, which must occur in this order:" +msgstr "" -#: ../Doc/c-api/unicode.rst:469 -msgid "Type" -msgstr "Tipo" +#: ../Doc/c-api/unicode.rst:402 +msgid "The ``'%'`` character, which marks the start of the specifier." +msgstr "" -#: ../Doc/c-api/unicode.rst:469 -msgid "Comment" -msgstr "Comentario" +#: ../Doc/c-api/unicode.rst:404 +msgid "" +"Conversion flags (optional), which affect the result of some conversion " +"types." +msgstr "" -#: ../Doc/c-api/unicode.rst:471 -#, python-format -msgid ":attr:`%%`" -msgstr ":attr:`%%`" +#: ../Doc/c-api/unicode.rst:407 +msgid "" +"Minimum field width (optional). If specified as an ``'*'`` (asterisk), the " +"actual width is given in the next argument, which must be of type :c:expr:" +"`int`, and the object to convert comes after the minimum field width and " +"optional precision." +msgstr "" -#: ../Doc/c-api/unicode.rst:471 -msgid "*n/a*" -msgstr "*n/a*" +#: ../Doc/c-api/unicode.rst:412 +msgid "" +"Precision (optional), given as a ``'.'`` (dot) followed by the precision. If " +"specified as ``'*'`` (an asterisk), the actual precision is given in the " +"next argument, which must be of type :c:expr:`int`, and the value to convert " +"comes after the precision." +msgstr "" -#: ../Doc/c-api/unicode.rst:471 -#, python-format -msgid "The literal % character." -msgstr "El carácter literal %." +#: ../Doc/c-api/unicode.rst:417 +msgid "Length modifier (optional)." +msgstr "" -#: ../Doc/c-api/unicode.rst:473 -#, python-format -msgid ":attr:`%c`" -msgstr ":attr:`%c`" +#: ../Doc/c-api/unicode.rst:419 +msgid "Conversion type." +msgstr "" -#: ../Doc/c-api/unicode.rst:473 ../Doc/c-api/unicode.rst:476 -#: ../Doc/c-api/unicode.rst:509 ../Doc/c-api/unicode.rst:512 -msgid "int" -msgstr "int" +#: ../Doc/c-api/unicode.rst:421 +msgid "The conversion flag characters are:" +msgstr "" -#: ../Doc/c-api/unicode.rst:473 -msgid "A single character, represented as a C int." -msgstr "Un solo carácter, representado como un entero (*int*) de C." +#: ../Doc/c-api/unicode.rst:426 +msgid "Flag" +msgstr "" -#: ../Doc/c-api/unicode.rst:476 -#, python-format -msgid ":attr:`%d`" -msgstr ":attr:`%d`" +#: ../Doc/c-api/unicode.rst:426 +msgid "Meaning" +msgstr "" -#: ../Doc/c-api/unicode.rst:476 -#, python-format -msgid "Equivalent to ``printf(\"%d\")``. [1]_" -msgstr "Equivalente a ``printf(\"%d\")``. [1]_" +#: ../Doc/c-api/unicode.rst:428 +msgid "``0``" +msgstr "" -#: ../Doc/c-api/unicode.rst:479 -#, python-format -msgid ":attr:`%u`" -msgstr ":attr:`%u`" +#: ../Doc/c-api/unicode.rst:428 +msgid "The conversion will be zero padded for numeric values." +msgstr "" -#: ../Doc/c-api/unicode.rst:479 -msgid "unsigned int" -msgstr "unsigned int" +#: ../Doc/c-api/unicode.rst:430 +msgid "``-``" +msgstr "" -#: ../Doc/c-api/unicode.rst:479 -#, python-format -msgid "Equivalent to ``printf(\"%u\")``. [1]_" -msgstr "Equivalente a ``printf(\"%u\")``. [1]_" +#: ../Doc/c-api/unicode.rst:430 +msgid "" +"The converted value is left adjusted (overrides the ``0`` flag if both are " +"given)." +msgstr "" -#: ../Doc/c-api/unicode.rst:482 -#, python-format -msgid ":attr:`%ld`" -msgstr ":attr:`%ld`" +#: ../Doc/c-api/unicode.rst:434 +msgid "" +"The length modifiers for following integer conversions (``d``, ``i``, ``o``, " +"``u``, ``x``, or ``X``) specify the type of the argument (:c:expr:`int` by " +"default):" +msgstr "" -#: ../Doc/c-api/unicode.rst:482 ../Doc/c-api/unicode.rst:485 -msgid "long" -msgstr "long" +#: ../Doc/c-api/unicode.rst:441 +msgid "Modifier" +msgstr "" -#: ../Doc/c-api/unicode.rst:482 -#, python-format -msgid "Equivalent to ``printf(\"%ld\")``. [1]_" -msgstr "Equivalente a ``printf(\"%ld\")``. [1]_" +#: ../Doc/c-api/unicode.rst:441 +#, fuzzy +msgid "Types" +msgstr "Tipo" -#: ../Doc/c-api/unicode.rst:485 -#, python-format -msgid ":attr:`%li`" -msgstr ":attr:`%li`" +#: ../Doc/c-api/unicode.rst:443 +msgid "``l``" +msgstr "" -#: ../Doc/c-api/unicode.rst:485 -#, python-format -msgid "Equivalent to ``printf(\"%li\")``. [1]_" -msgstr "Equivalente a ``printf(\"%li\")``. [1]_" +#: ../Doc/c-api/unicode.rst:443 +msgid ":c:expr:`long` or :c:expr:`unsigned long`" +msgstr "" -#: ../Doc/c-api/unicode.rst:488 -#, python-format -msgid ":attr:`%lu`" -msgstr ":attr:`%lu`" +#: ../Doc/c-api/unicode.rst:445 +msgid "``ll``" +msgstr "" -#: ../Doc/c-api/unicode.rst:488 -msgid "unsigned long" -msgstr "unsigned long" +#: ../Doc/c-api/unicode.rst:445 +msgid ":c:expr:`long long` or :c:expr:`unsigned long long`" +msgstr "" -#: ../Doc/c-api/unicode.rst:488 -#, python-format -msgid "Equivalent to ``printf(\"%lu\")``. [1]_" -msgstr "Equivalente a ``printf(\"%lu\")``. [1]_" +#: ../Doc/c-api/unicode.rst:447 +msgid "``j``" +msgstr "" -#: ../Doc/c-api/unicode.rst:491 -msgid ":attr:`%lld`" -msgstr ":attr:`%lld`" +#: ../Doc/c-api/unicode.rst:447 +msgid ":c:type:`intmax_t` or :c:type:`uintmax_t`" +msgstr "" -#: ../Doc/c-api/unicode.rst:491 ../Doc/c-api/unicode.rst:494 -msgid "long long" -msgstr "long long" +#: ../Doc/c-api/unicode.rst:449 +msgid "``z``" +msgstr "" -#: ../Doc/c-api/unicode.rst:491 -msgid "Equivalent to ``printf(\"%lld\")``. [1]_" -msgstr "Equivalente a ``printf(\"%lld\")``. [1]_" +#: ../Doc/c-api/unicode.rst:449 +#, fuzzy +msgid ":c:type:`size_t` or :c:type:`ssize_t`" +msgstr ":c:type:`\\ Py_ssize_t`" -#: ../Doc/c-api/unicode.rst:494 -msgid ":attr:`%lli`" -msgstr ":attr:`%lli`" +#: ../Doc/c-api/unicode.rst:451 +msgid "``t``" +msgstr "" -#: ../Doc/c-api/unicode.rst:494 -msgid "Equivalent to ``printf(\"%lli\")``. [1]_" -msgstr "Equivalente a ``printf(\"%lli\")``. [1]_" +#: ../Doc/c-api/unicode.rst:451 +#, fuzzy +msgid ":c:type:`ptrdiff_t`" +msgstr ":c:type:`\\ Py_ssize_t`" -#: ../Doc/c-api/unicode.rst:497 -msgid ":attr:`%llu`" -msgstr ":attr:`%llu`" +#: ../Doc/c-api/unicode.rst:454 +msgid "" +"The length modifier ``l`` for following conversions ``s`` or ``V`` specify " +"that the type of the argument is :c:expr:`const wchar_t*`." +msgstr "" -#: ../Doc/c-api/unicode.rst:497 -msgid "unsigned long long" -msgstr "unsigned long long" +#: ../Doc/c-api/unicode.rst:457 +msgid "The conversion specifiers are:" +msgstr "" -#: ../Doc/c-api/unicode.rst:497 -msgid "Equivalent to ``printf(\"%llu\")``. [1]_" -msgstr "Equivalente a ``printf(\"%llu\")``. [1]_" +#: ../Doc/c-api/unicode.rst:463 +msgid "Conversion Specifier" +msgstr "" -#: ../Doc/c-api/unicode.rst:500 -msgid ":attr:`%zd`" -msgstr ":attr:`%zd`" +#: ../Doc/c-api/unicode.rst:464 +msgid "Type" +msgstr "Tipo" -#: ../Doc/c-api/unicode.rst:500 ../Doc/c-api/unicode.rst:503 -msgid ":c:type:`\\ Py_ssize_t`" -msgstr ":c:type:`\\ Py_ssize_t`" +#: ../Doc/c-api/unicode.rst:465 +msgid "Comment" +msgstr "Comentario" -#: ../Doc/c-api/unicode.rst:500 -msgid "Equivalent to ``printf(\"%zd\")``. [1]_" -msgstr "Equivalente a ``printf(\"%zd\")``. [1]_" +#: ../Doc/c-api/unicode.rst:467 +msgid "``%``" +msgstr "" -#: ../Doc/c-api/unicode.rst:503 -msgid ":attr:`%zi`" -msgstr ":attr:`%zi`" +#: ../Doc/c-api/unicode.rst:468 +msgid "*n/a*" +msgstr "*n/a*" -#: ../Doc/c-api/unicode.rst:503 -msgid "Equivalent to ``printf(\"%zi\")``. [1]_" -msgstr "Equivalente a ``printf(\"%zi\")``. [1]_" +#: ../Doc/c-api/unicode.rst:469 +#, fuzzy, python-format +msgid "The literal ``%`` character." +msgstr "El carácter literal %." -#: ../Doc/c-api/unicode.rst:506 -msgid ":attr:`%zu`" -msgstr ":attr:`%zu`" +#: ../Doc/c-api/unicode.rst:471 +msgid "``d``, ``i``" +msgstr "" -#: ../Doc/c-api/unicode.rst:506 -msgid "size_t" -msgstr "size_t" +#: ../Doc/c-api/unicode.rst:472 ../Doc/c-api/unicode.rst:476 +#: ../Doc/c-api/unicode.rst:480 ../Doc/c-api/unicode.rst:484 +#: ../Doc/c-api/unicode.rst:488 +msgid "Specified by the length modifier" +msgstr "" -#: ../Doc/c-api/unicode.rst:506 -msgid "Equivalent to ``printf(\"%zu\")``. [1]_" -msgstr "Equivalente a ``printf(\"%zu\")``. [1]_" +#: ../Doc/c-api/unicode.rst:473 +msgid "The decimal representation of a signed C integer." +msgstr "" -#: ../Doc/c-api/unicode.rst:509 -#, python-format -msgid ":attr:`%i`" -msgstr ":attr:`%i`" +#: ../Doc/c-api/unicode.rst:475 +msgid "``u``" +msgstr "" -#: ../Doc/c-api/unicode.rst:509 -#, python-format -msgid "Equivalent to ``printf(\"%i\")``. [1]_" -msgstr "Equivalente a ``printf(\"%i\")``. [1]_" +#: ../Doc/c-api/unicode.rst:477 +msgid "The decimal representation of an unsigned C integer." +msgstr "" -#: ../Doc/c-api/unicode.rst:512 -#, python-format -msgid ":attr:`%x`" -msgstr ":attr:`%x`" +#: ../Doc/c-api/unicode.rst:479 +msgid "``o``" +msgstr "" -#: ../Doc/c-api/unicode.rst:512 -#, python-format -msgid "Equivalent to ``printf(\"%x\")``. [1]_" -msgstr "Equivalente a ``printf(\"%x\")``. [1]_" +#: ../Doc/c-api/unicode.rst:481 +msgid "The octal representation of an unsigned C integer." +msgstr "" -#: ../Doc/c-api/unicode.rst:515 -#, python-format -msgid ":attr:`%s`" -msgstr ":attr:`%s`" +#: ../Doc/c-api/unicode.rst:483 +msgid "``x``" +msgstr "" -#: ../Doc/c-api/unicode.rst:515 -msgid "const char\\*" -msgstr "const char\\*" +#: ../Doc/c-api/unicode.rst:485 +msgid "The hexadecimal representation of an unsigned C integer (lowercase)." +msgstr "" -#: ../Doc/c-api/unicode.rst:515 +#: ../Doc/c-api/unicode.rst:487 +msgid "``X``" +msgstr "" + +#: ../Doc/c-api/unicode.rst:489 +msgid "The hexadecimal representation of an unsigned C integer (uppercase)." +msgstr "" + +#: ../Doc/c-api/unicode.rst:491 +msgid "``c``" +msgstr "" + +#: ../Doc/c-api/unicode.rst:492 +msgid ":c:expr:`int`" +msgstr "" + +#: ../Doc/c-api/unicode.rst:493 +#, fuzzy +msgid "A single character." +msgstr "Un solo carácter, representado como un entero (*int*) de C." + +#: ../Doc/c-api/unicode.rst:495 +msgid "``s``" +msgstr "" + +#: ../Doc/c-api/unicode.rst:496 +msgid ":c:expr:`const char*` or :c:expr:`const wchar_t*`" +msgstr "" + +#: ../Doc/c-api/unicode.rst:497 msgid "A null-terminated C character array." msgstr "Un arreglo de caracteres de C terminada en nulo." -#: ../Doc/c-api/unicode.rst:518 -msgid ":attr:`%p`" -msgstr ":attr:`%p`" +#: ../Doc/c-api/unicode.rst:499 +msgid "``p``" +msgstr "" -#: ../Doc/c-api/unicode.rst:518 -msgid "const void\\*" +#: ../Doc/c-api/unicode.rst:500 +#, fuzzy +msgid ":c:expr:`const void*`" msgstr "const void\\*" -#: ../Doc/c-api/unicode.rst:518 +#: ../Doc/c-api/unicode.rst:501 +#, fuzzy msgid "" -"The hex representation of a C pointer. Mostly equivalent to " +"The hex representation of a C pointer. Mostly equivalent to " "``printf(\"%p\")`` except that it is guaranteed to start with the literal " "``0x`` regardless of what the platform's ``printf`` yields." msgstr "" @@ -875,36 +807,37 @@ msgstr "" "a ``printf(\"%p\")`` excepto que se garantiza que comience con el literal " "``0x``, independiente de lo que produzca el ``printf`` de la plataforma." -#: ../Doc/c-api/unicode.rst:526 -msgid ":attr:`%A`" -msgstr ":attr:`%A`" +#: ../Doc/c-api/unicode.rst:506 +msgid "``A``" +msgstr "" -#: ../Doc/c-api/unicode.rst:526 ../Doc/c-api/unicode.rst:529 -#: ../Doc/c-api/unicode.rst:538 ../Doc/c-api/unicode.rst:541 -msgid "PyObject\\*" +#: ../Doc/c-api/unicode.rst:507 ../Doc/c-api/unicode.rst:511 +#: ../Doc/c-api/unicode.rst:521 ../Doc/c-api/unicode.rst:525 +#, fuzzy +msgid ":c:expr:`PyObject*`" msgstr "PyObject\\*" -#: ../Doc/c-api/unicode.rst:526 +#: ../Doc/c-api/unicode.rst:508 msgid "The result of calling :func:`ascii`." msgstr "El resultado de llamar :func:`ascii`." -#: ../Doc/c-api/unicode.rst:529 -msgid ":attr:`%U`" -msgstr ":attr:`%U`" +#: ../Doc/c-api/unicode.rst:510 +msgid "``U``" +msgstr "" -#: ../Doc/c-api/unicode.rst:529 +#: ../Doc/c-api/unicode.rst:512 msgid "A Unicode object." msgstr "Un objeto unicode." -#: ../Doc/c-api/unicode.rst:531 -msgid ":attr:`%V`" -msgstr ":attr:`%V`" +#: ../Doc/c-api/unicode.rst:514 +msgid "``V``" +msgstr "" -#: ../Doc/c-api/unicode.rst:531 -msgid "PyObject\\*, const char\\*" -msgstr "PyObject\\*, const char\\*" +#: ../Doc/c-api/unicode.rst:515 +msgid ":c:expr:`PyObject*`, :c:expr:`const char*` or :c:expr:`const wchar_t*`" +msgstr "" -#: ../Doc/c-api/unicode.rst:531 +#: ../Doc/c-api/unicode.rst:516 msgid "" "A Unicode object (which may be ``NULL``) and a null-terminated C character " "array as a second parameter (which will be used, if the first parameter is " @@ -914,37 +847,29 @@ msgstr "" "terminada en nulo como segundo parámetro (que se utilizará, si el primer " "parámetro es ``NULL``)." -#: ../Doc/c-api/unicode.rst:538 -msgid ":attr:`%S`" -msgstr ":attr:`%S`" +#: ../Doc/c-api/unicode.rst:520 +msgid "``S``" +msgstr "" -#: ../Doc/c-api/unicode.rst:538 +#: ../Doc/c-api/unicode.rst:522 msgid "The result of calling :c:func:`PyObject_Str`." msgstr "El resultado de llamar :c:func:`PyObject_Str`." -#: ../Doc/c-api/unicode.rst:541 -msgid ":attr:`%R`" -msgstr ":attr:`%R`" +#: ../Doc/c-api/unicode.rst:524 +msgid "``R``" +msgstr "" -#: ../Doc/c-api/unicode.rst:541 +#: ../Doc/c-api/unicode.rst:526 msgid "The result of calling :c:func:`PyObject_Repr`." msgstr "El resultado de llamar :c:func:`PyObject_Repr`." -#: ../Doc/c-api/unicode.rst:545 -msgid "" -"An unrecognized format character causes all the rest of the format string to " -"be copied as-is to the result string, and any extra arguments discarded." -msgstr "" -"Un carácter de formato no reconocido hace que todo el resto de la cadena de " -"formato se copie tal cual a la cadena de resultado y se descartan los " -"argumentos adicionales." - -#: ../Doc/c-api/unicode.rst:549 -#, python-format +#: ../Doc/c-api/unicode.rst:529 +#, fuzzy, python-format msgid "" "The width formatter unit is number of characters rather than bytes. The " -"precision formatter unit is number of bytes for ``\"%s\"`` and ``\"%V\"`` " -"(if the ``PyObject*`` argument is ``NULL``), and a number of characters for " +"precision formatter unit is number of bytes or :c:type:`wchar_t` items (if " +"the length modifier ``l`` is used) for ``\"%s\"`` and ``\"%V\"`` (if the " +"``PyObject*`` argument is ``NULL``), and a number of characters for " "``\"%A\"``, ``\"%U\"``, ``\"%S\"``, ``\"%R\"`` and ``\"%V\"`` (if the " "``PyObject*`` argument is not ``NULL``)." msgstr "" @@ -954,25 +879,23 @@ msgstr "" "cantidad de caracteres para ``\"%A\"``, ``\"%U\"``, ``\"%S\"``, ``\"%R\"`` y " "``\"%V\"`` (si el argumento ``PyObject*`` no es ``NULL``)." -#: ../Doc/c-api/unicode.rst:555 +#: ../Doc/c-api/unicode.rst:537 msgid "" -"For integer specifiers (d, u, ld, li, lu, lld, lli, llu, zd, zi, zu, i, x): " -"the 0-conversion flag has effect even when a precision is given." +"Unlike to C :c:func:`printf` the ``0`` flag has effect even when a precision " +"is given for integer conversions (``d``, ``i``, ``u``, ``o``, ``x``, or " +"``X``)." msgstr "" -"Para especificadores de enteros *(d, u, ld, li, lu, lld, lli, llu, zd, zi, " -"zu, i, x)*: el indicador de conversión 0 tiene efecto incluso cuando se " -"proporciona una precisión." -#: ../Doc/c-api/unicode.rst:558 +#: ../Doc/c-api/unicode.rst:541 msgid "Support for ``\"%lld\"`` and ``\"%llu\"`` added." msgstr "Soporte agregado para ``\"%lld\"`` y ``\"%llu\"``." -#: ../Doc/c-api/unicode.rst:561 +#: ../Doc/c-api/unicode.rst:544 #, python-format msgid "Support for ``\"%li\"``, ``\"%lli\"`` and ``\"%zi\"`` added." msgstr "Soporte agregado para ``\"%li\"``, ``\"%lli\"`` y ``\"%zi\"``." -#: ../Doc/c-api/unicode.rst:564 +#: ../Doc/c-api/unicode.rst:547 #, python-format msgid "" "Support width and precision formatter for ``\"%s\"``, ``\"%A\"``, " @@ -981,7 +904,27 @@ msgstr "" "Soporte agregado para formateadores de anchura y precisión para ``\"%s\"``, " "``\"%A\"``, ``\"%U\"``, ``\"%V\"``, ``\"%S\"``, ``\"%R\"``." -#: ../Doc/c-api/unicode.rst:571 +#: ../Doc/c-api/unicode.rst:551 +msgid "" +"Support for conversion specifiers ``o`` and ``X``. Support for length " +"modifiers ``j`` and ``t``. Length modifiers are now applied to all integer " +"conversions. Length modifier ``l`` is now applied to conversion specifiers " +"``s`` and ``V``. Support for variable width and precision ``*``. Support for " +"flag ``-``." +msgstr "" + +#: ../Doc/c-api/unicode.rst:559 +#, fuzzy +msgid "" +"An unrecognized format character now sets a :exc:`SystemError`. In previous " +"versions it caused all the rest of the format string to be copied as-is to " +"the result string, and any extra arguments discarded." +msgstr "" +"Un carácter de formato no reconocido hace que todo el resto de la cadena de " +"formato se copie tal cual a la cadena de resultado y se descartan los " +"argumentos adicionales." + +#: ../Doc/c-api/unicode.rst:566 msgid "" "Identical to :c:func:`PyUnicode_FromFormat` except that it takes exactly two " "arguments." @@ -989,11 +932,28 @@ msgstr "" "Idéntico a :c:func:`PyUnicode_FromFormat` excepto que toma exactamente dos " "argumentos." -#: ../Doc/c-api/unicode.rst:578 +#: ../Doc/c-api/unicode.rst:572 +#, fuzzy +msgid "" +"Copy an instance of a Unicode subtype to a new true Unicode object if " +"necessary. If *obj* is already a true Unicode object (not a subtype), return " +"a new :term:`strong reference` to the object." +msgstr "" +"Copia una instancia de un subtipo Unicode a un nuevo objeto Unicode " +"verdadero si es necesario. Si *obj* ya es un verdadero objeto Unicode (no un " +"subtipo), retorna la referencia con un recuento incrementado." + +#: ../Doc/c-api/unicode.rst:576 +msgid "" +"Objects other than Unicode or its subtypes will cause a :exc:`TypeError`." +msgstr "" +"Los objetos que no sean Unicode o sus subtipos causarán un :exc:`TypeError`." + +#: ../Doc/c-api/unicode.rst:582 msgid "Decode an encoded object *obj* to a Unicode object." msgstr "Decodifica un objeto codificado *obj* en un objeto Unicode." -#: ../Doc/c-api/unicode.rst:580 +#: ../Doc/c-api/unicode.rst:584 msgid "" ":class:`bytes`, :class:`bytearray` and other :term:`bytes-like objects " "` are decoded according to the given *encoding* and using " @@ -1006,7 +966,7 @@ msgstr "" "``NULL`` para que la interfaz use los valores predeterminados (ver :ref:" "`builtincodecs` para más detalles)." -#: ../Doc/c-api/unicode.rst:586 +#: ../Doc/c-api/unicode.rst:590 msgid "" "All other objects, including Unicode objects, cause a :exc:`TypeError` to be " "set." @@ -1014,7 +974,7 @@ msgstr "" "Todos los demás objetos, incluidos los objetos Unicode, hacen que se " "establezca un :exc:`TypeError`." -#: ../Doc/c-api/unicode.rst:589 +#: ../Doc/c-api/unicode.rst:593 msgid "" "The API returns ``NULL`` if there was an error. The caller is responsible " "for decref'ing the returned objects." @@ -1022,15 +982,16 @@ msgstr "" "La API retorna ``NULL`` si hubo un error. La entidad que hace la llamadas es " "la responsable de desreferenciar los objetos retornados." -#: ../Doc/c-api/unicode.rst:595 +#: ../Doc/c-api/unicode.rst:599 msgid "Return the length of the Unicode object, in code points." msgstr "Retorna la longitud del objeto Unicode, en puntos de código." -#: ../Doc/c-api/unicode.rst:606 +#: ../Doc/c-api/unicode.rst:610 +#, fuzzy msgid "" "Copy characters from one Unicode object into another. This function " -"performs character conversion when necessary and falls back to :c:func:" -"`memcpy` if possible. Returns ``-1`` and sets an exception on error, " +"performs character conversion when necessary and falls back to :c:func:`!" +"memcpy` if possible. Returns ``-1`` and sets an exception on error, " "otherwise returns the number of copied characters." msgstr "" "Copia caracteres de un objeto Unicode en otro. Esta función realiza la " @@ -1038,7 +999,7 @@ msgstr "" "es posible. Retorna ``-1`` y establece una excepción en caso de error; de lo " "contrario, retorna el número de caracteres copiados." -#: ../Doc/c-api/unicode.rst:617 +#: ../Doc/c-api/unicode.rst:621 msgid "" "Fill a string with a character: write *fill_char* into ``unicode[start:" "start+length]``." @@ -1046,7 +1007,7 @@ msgstr "" "Rellena una cadena con un carácter: escriba *fill_char* en ``unicode[inicio:" "inicio+longitud]``." -#: ../Doc/c-api/unicode.rst:620 +#: ../Doc/c-api/unicode.rst:624 msgid "" "Fail if *fill_char* is bigger than the string maximum character, or if the " "string has more than 1 reference." @@ -1054,7 +1015,7 @@ msgstr "" "Falla si *fill_char* es más grande que el carácter máximo de la cadena, o si " "la cadena tiene más de 1 referencia." -#: ../Doc/c-api/unicode.rst:623 +#: ../Doc/c-api/unicode.rst:627 msgid "" "Return the number of written character, or return ``-1`` and raise an " "exception on error." @@ -1062,7 +1023,7 @@ msgstr "" "Retorna el número de caracteres escritos o retorna ``-1`` y lanza una " "excepción en caso de error." -#: ../Doc/c-api/unicode.rst:632 +#: ../Doc/c-api/unicode.rst:636 msgid "" "Write a character to a string. The string must have been created through :c:" "func:`PyUnicode_New`. Since Unicode strings are supposed to be immutable, " @@ -1073,7 +1034,7 @@ msgstr "" "cadenas de caracteres Unicode son inmutables, la cadena no debe compartirse " "o no se ha cifrado todavía." -#: ../Doc/c-api/unicode.rst:636 +#: ../Doc/c-api/unicode.rst:640 msgid "" "This function checks that *unicode* is a Unicode object, that the index is " "not out of bounds, and that the object can be modified safely (i.e. that it " @@ -1083,7 +1044,7 @@ msgstr "" "está fuera de los límites y que el objeto se puede modificar de forma segura " "(es decir, si su número de referencia es uno)." -#: ../Doc/c-api/unicode.rst:645 +#: ../Doc/c-api/unicode.rst:649 #, fuzzy msgid "" "Read a character from a string. This function checks that *unicode* is a " @@ -1094,7 +1055,7 @@ msgstr "" "*unicode* es un objeto Unicode y que el índice no está fuera de límites, en " "contraste con la versión de macro :c:func:`PyUnicode_READ_CHAR`." -#: ../Doc/c-api/unicode.rst:655 +#: ../Doc/c-api/unicode.rst:659 msgid "" "Return a substring of *str*, from character index *start* (included) to " "character index *end* (excluded). Negative indices are not supported." @@ -1103,7 +1064,7 @@ msgstr "" "*start* (incluido) al índice de caracteres *end* (excluido). Los índices " "negativos no son compatibles." -#: ../Doc/c-api/unicode.rst:664 +#: ../Doc/c-api/unicode.rst:668 msgid "" "Copy the string *u* into a UCS4 buffer, including a null character, if " "*copy_null* is set. Returns ``NULL`` and sets an exception on error (in " @@ -1115,7 +1076,7 @@ msgstr "" "excepción en caso de error (en particular, a :exc:`SystemError` si *buflen* " "es menor que la longitud de *u*). *buffer* se retorna en caso de éxito." -#: ../Doc/c-api/unicode.rst:674 +#: ../Doc/c-api/unicode.rst:678 msgid "" "Copy the string *u* into a new UCS4 buffer that is allocated using :c:func:" "`PyMem_Malloc`. If this fails, ``NULL`` is returned with a :exc:" @@ -1127,137 +1088,11 @@ msgstr "" "exc:`MemoryError` establecido. El búfer retornado siempre tiene un punto de " "código nulo adicional agregado." -#: ../Doc/c-api/unicode.rst:683 -msgid "Deprecated Py_UNICODE APIs" -msgstr "APIs de Py_UNICODE deprecadas" - #: ../Doc/c-api/unicode.rst:687 -msgid "" -"These API functions are deprecated with the implementation of :pep:`393`. " -"Extension modules can continue using them, as they will not be removed in " -"Python 3.x, but need to be aware that their use can now cause performance " -"and memory hits." -msgstr "" -"Estas funciones API están en desuso con la implementación de :pep:`393`. Los " -"módulos de extensión pueden continuar usándolos, ya que no se eliminarán en " -"Python 3.x, pero deben ser conscientes de que su uso ahora puede causar " -"problemas de rendimiento y memoria." - -#: ../Doc/c-api/unicode.rst:694 -msgid "" -"Create a Unicode object from the Py_UNICODE buffer *u* of the given size. " -"*u* may be ``NULL`` which causes the contents to be undefined. It is the " -"user's responsibility to fill in the needed data. The buffer is copied into " -"the new object." -msgstr "" -"Crea un objeto Unicode desde el búfer Py_UNICODE *u* del tamaño dado. *u* " -"puede ser ``NULL``, lo que hace que el contenido no esté definido. Es " -"responsabilidad del usuario completar los datos necesarios. El búfer se " -"copia en el nuevo objeto." - -#: ../Doc/c-api/unicode.rst:699 -msgid "" -"If the buffer is not ``NULL``, the return value might be a shared object. " -"Therefore, modification of the resulting Unicode object is only allowed when " -"*u* is ``NULL``." -msgstr "" -"Si el búfer no es ``NULL``, el valor de retorno podría ser un objeto " -"compartido. Por lo tanto, la modificación del objeto Unicode resultante solo " -"se permite cuando *u* es ``NULL``." - -#: ../Doc/c-api/unicode.rst:703 -msgid "" -"If the buffer is ``NULL``, :c:func:`PyUnicode_READY` must be called once the " -"string content has been filled before using any of the access macros such " -"as :c:func:`PyUnicode_KIND`." -msgstr "" -"Si el búfer es ``NULL``, se debe llamar a :c:func:`PyUnicode_READY` una vez " -"que se haya llenado el contenido de la cadena de caracteres antes de usar " -"cualquiera de las macros de acceso, como :c:func:`PyUnicode_KIND`." - -#: ../Doc/c-api/unicode.rst:710 -msgid "" -"Part of the old-style Unicode API, please migrate to using :c:func:" -"`PyUnicode_FromKindAndData`, :c:func:`PyUnicode_FromWideChar`, or :c:func:" -"`PyUnicode_New`." -msgstr "" -"Por favor migrar para usar :c:func:`PyUnicode_FromKindAndData`, :c:func:" -"`PyUnicode_FromWideChar` o :c:func:`PyUnicode_New`." - -#: ../Doc/c-api/unicode.rst:715 -#, fuzzy -msgid "" -"Return a read-only pointer to the Unicode object's internal :c:type:" -"`Py_UNICODE` buffer, or ``NULL`` on error. This will create the :c:expr:" -"`Py_UNICODE*` representation of the object if it is not yet available. The " -"buffer is always terminated with an extra null code point. Note that the " -"resulting :c:type:`Py_UNICODE` string may also contain embedded null code " -"points, which would cause the string to be truncated when used in most C " -"functions." -msgstr "" -"Retorna un puntero de solo lectura al búfer :c:type:`Py_UNICODE` interno del " -"objeto Unicode, o ``NULL`` en caso de error. Esto creará la representación :" -"c:type:`Py_UNICODE*` del objeto si aún no está disponible. El búfer siempre " -"termina con un punto de código nulo adicional. Tenga en cuenta que la cadena " -"de caracteres resultante :c:type:`Py_UNICODE` también puede contener puntos " -"de código nulo incrustados, lo que provocaría que la cadena se truncara " -"cuando se usara en la mayoría de las funciones de C." - -#: ../Doc/c-api/unicode.rst:726 ../Doc/c-api/unicode.rst:742 -msgid "" -"Part of the old-style Unicode API, please migrate to using :c:func:" -"`PyUnicode_AsUCS4`, :c:func:`PyUnicode_AsWideChar`, :c:func:" -"`PyUnicode_ReadChar` or similar new APIs." -msgstr "" -"Parte del estilo antiguo de la API Unicode, por favor migrar para usar :c:" -"func:`PyUnicode_AsUCS4`, :c:func:`PyUnicode_AsWideChar`, :c:func:" -"`PyUnicode_ReadChar` o APIs nuevas similares." - -#: ../Doc/c-api/unicode.rst:731 -#, fuzzy -msgid "" -"Like :c:func:`PyUnicode_AsUnicode`, but also saves the :c:func:`Py_UNICODE` " -"array length (excluding the extra null terminator) in *size*. Note that the " -"resulting :c:expr:`Py_UNICODE*` string may contain embedded null code " -"points, which would cause the string to be truncated when used in most C " -"functions." -msgstr "" -"Como :c:func:`PyUnicode_AsUnicode`, pero también guarda la longitud del " -"arreglo :c:func:`Py_UNICODE` (excluyendo el terminador nulo adicional) en " -"*size*. Tenga en cuenta que la cadena de caracteres resultante :c:type:" -"`Py_UNICODE*` puede contener puntos de código nulo incrustados, lo que " -"provocaría que la cadena se truncara cuando se usara en la mayoría de las " -"funciones de C." - -#: ../Doc/c-api/unicode.rst:747 -msgid "" -"Return the size of the deprecated :c:type:`Py_UNICODE` representation, in " -"code units (this includes surrogate pairs as 2 units)." -msgstr "" -"Retorna el tamaño de la representación en desuso :c:type:`Py_UNICODE`, en " -"unidades de código (esto incluye pares sustitutos como 2 unidades)." - -#: ../Doc/c-api/unicode.rst:757 -msgid "" -"Copy an instance of a Unicode subtype to a new true Unicode object if " -"necessary. If *obj* is already a true Unicode object (not a subtype), return " -"the reference with incremented refcount." -msgstr "" -"Copia una instancia de un subtipo Unicode a un nuevo objeto Unicode " -"verdadero si es necesario. Si *obj* ya es un verdadero objeto Unicode (no un " -"subtipo), retorna la referencia con un recuento incrementado." - -#: ../Doc/c-api/unicode.rst:761 -msgid "" -"Objects other than Unicode or its subtypes will cause a :exc:`TypeError`." -msgstr "" -"Los objetos que no sean Unicode o sus subtipos causarán un :exc:`TypeError`." - -#: ../Doc/c-api/unicode.rst:765 msgid "Locale Encoding" msgstr "Codificación regional" -#: ../Doc/c-api/unicode.rst:767 +#: ../Doc/c-api/unicode.rst:689 msgid "" "The current locale encoding can be used to decode text from the operating " "system." @@ -1265,7 +1100,7 @@ msgstr "" "La codificación local actual se puede utilizar para decodificar texto del " "sistema operativo." -#: ../Doc/c-api/unicode.rst:774 +#: ../Doc/c-api/unicode.rst:696 msgid "" "Decode a string from UTF-8 on Android and VxWorks, or from the current " "locale encoding on other platforms. The supported error handlers are " @@ -1280,25 +1115,24 @@ msgstr "" "errores ``\"estricto\"`` si *errors* es ``NULL``. *str* debe terminar con un " "carácter nulo pero no puede contener caracteres nulos incrustados." -#: ../Doc/c-api/unicode.rst:781 +#: ../Doc/c-api/unicode.rst:703 +#, fuzzy msgid "" -"Use :c:func:`PyUnicode_DecodeFSDefaultAndSize` to decode a string from :c:" -"data:`Py_FileSystemDefaultEncoding` (the locale encoding read at Python " -"startup)." +"Use :c:func:`PyUnicode_DecodeFSDefaultAndSize` to decode a string from the :" +"term:`filesystem encoding and error handler`." msgstr "" -"Utilice :c:func:`PyUnicode_DecodeFSDefaultAndSize` para decodificar una " -"cadena de :c:data:`Py_FileSystemDefaultEncoding` (la codificación de la " -"configuración regional leída al iniciar Python)." +"Decodifica una cadena desde el :term:`codificador de sistema de archivos y " +"gestor de errores `." -#: ../Doc/c-api/unicode.rst:785 ../Doc/c-api/unicode.rst:821 +#: ../Doc/c-api/unicode.rst:706 ../Doc/c-api/unicode.rst:741 msgid "This function ignores the :ref:`Python UTF-8 Mode `." msgstr "Esta función ignora el :ref:`modo Python UTF-8 `." -#: ../Doc/c-api/unicode.rst:789 ../Doc/c-api/unicode.rst:892 +#: ../Doc/c-api/unicode.rst:710 ../Doc/c-api/unicode.rst:807 msgid "The :c:func:`Py_DecodeLocale` function." msgstr "La función :c:func:`Py_DecodeLocale`." -#: ../Doc/c-api/unicode.rst:793 +#: ../Doc/c-api/unicode.rst:714 msgid "" "The function now also uses the current locale encoding for the " "``surrogateescape`` error handler, except on Android. Previously, :c:func:" @@ -1311,15 +1145,16 @@ msgstr "" "``subrogateescape``, y la codificación local actual se usaba para " "``estricto``." -#: ../Doc/c-api/unicode.rst:802 +#: ../Doc/c-api/unicode.rst:723 +#, fuzzy msgid "" "Similar to :c:func:`PyUnicode_DecodeLocaleAndSize`, but compute the string " -"length using :c:func:`strlen`." +"length using :c:func:`!strlen`." msgstr "" "Similar a :c:func:`PyUnicode_DecodeLocaleAndSize`, pero calcula la longitud " "de la cadena de caracteres usando :c:func:`strlen`." -#: ../Doc/c-api/unicode.rst:810 +#: ../Doc/c-api/unicode.rst:731 msgid "" "Encode a Unicode object to UTF-8 on Android and VxWorks, or to the current " "locale encoding on other platforms. The supported error handlers are " @@ -1334,20 +1169,20 @@ msgstr "" "Retorna un objeto :class:`bytes`. *unicode* no puede contener caracteres " "nulos incrustados." -#: ../Doc/c-api/unicode.rst:817 +#: ../Doc/c-api/unicode.rst:738 +#, fuzzy msgid "" -"Use :c:func:`PyUnicode_EncodeFSDefault` to encode a string to :c:data:" -"`Py_FileSystemDefaultEncoding` (the locale encoding read at Python startup)." +"Use :c:func:`PyUnicode_EncodeFSDefault` to encode a string to the :term:" +"`filesystem encoding and error handler`." msgstr "" -"Utilice :c:func:`PyUnicode_EncodeFSDefault` para codificar una cadena de " -"caracteres en :c:data:`Py_FileSystemDefaultEncoding` (la codificación de la " -"configuración regional leída al iniciar Python)." +"Decodifica una cadena desde el :term:`codificador de sistema de archivos y " +"gestor de errores `." -#: ../Doc/c-api/unicode.rst:825 ../Doc/c-api/unicode.rst:928 +#: ../Doc/c-api/unicode.rst:745 ../Doc/c-api/unicode.rst:838 msgid "The :c:func:`Py_EncodeLocale` function." msgstr "La función :c:func:`Py_EncodeLocale`." -#: ../Doc/c-api/unicode.rst:829 +#: ../Doc/c-api/unicode.rst:749 msgid "" "The function now also uses the current locale encoding for the " "``surrogateescape`` error handler, except on Android. Previously, :c:func:" @@ -1360,28 +1195,31 @@ msgstr "" "``subrogateescape``, y la codificación local actual se usaba para " "``estricto``." -#: ../Doc/c-api/unicode.rst:838 +#: ../Doc/c-api/unicode.rst:758 msgid "File System Encoding" msgstr "Codificación del sistema de archivos" -#: ../Doc/c-api/unicode.rst:840 +#: ../Doc/c-api/unicode.rst:760 +#, fuzzy msgid "" -"To encode and decode file names and other environment strings, :c:data:" -"`Py_FileSystemDefaultEncoding` should be used as the encoding, and :c:data:" -"`Py_FileSystemDefaultEncodeErrors` should be used as the error handler (:pep:" -"`383` and :pep:`529`). To encode file names to :class:`bytes` during " -"argument parsing, the ``\"O&\"`` converter should be used, passing :c:func:" -"`PyUnicode_FSConverter` as the conversion function:" +"Functions encoding to and decoding from the :term:`filesystem encoding and " +"error handler` (:pep:`383` and :pep:`529`)." msgstr "" -"Para codificar y decodificar nombres de archivo y otras cadenas de " -"caracteres de entorno, :c:data:`Py_FileSystemDefaultEncoding` debe usarse " -"como codificación, y :c:data:`Py_FileSystemDefaultEncodeErrors` debe usarse " -"como controlador de errores (:pep:`383` y :pep:`529`). Para codificar " -"nombres de archivo a :class:`bytes` durante el análisis de argumentos, se " -"debe usar el convertidor ``\"O&\"``, pasando :c:func:`PyUnicode_FSConverter` " -"como la función de conversión:" +"Decodifica una cadena desde el :term:`codificador de sistema de archivos y " +"gestor de errores `." -#: ../Doc/c-api/unicode.rst:849 +#: ../Doc/c-api/unicode.rst:763 +#, fuzzy +msgid "" +"To encode file names to :class:`bytes` during argument parsing, the " +"``\"O&\"`` converter should be used, passing :c:func:`PyUnicode_FSConverter` " +"as the conversion function:" +msgstr "" +"Para decodificar nombres de archivo a :class:`str` durante el análisis de " +"argumentos, se debe usar el convertidor ``\"O&\"``, pasando :c:func:" +"`PyUnicode_FSDecoder` como la función de conversión:" + +#: ../Doc/c-api/unicode.rst:769 #, fuzzy msgid "" "ParseTuple converter: encode :class:`str` objects -- obtained directly or " @@ -1396,11 +1234,11 @@ msgstr "" "emiten tal cual. *result* debe ser un :c:type:`PyBytesObject*` que debe " "liberarse cuando ya no se use." -#: ../Doc/c-api/unicode.rst:857 ../Doc/c-api/unicode.rst:874 +#: ../Doc/c-api/unicode.rst:777 ../Doc/c-api/unicode.rst:794 msgid "Accepts a :term:`path-like object`." msgstr "Acepta un objeto similar a una ruta (:term:`path-like object`)." -#: ../Doc/c-api/unicode.rst:860 +#: ../Doc/c-api/unicode.rst:780 msgid "" "To decode file names to :class:`str` during argument parsing, the ``\"O&\"`` " "converter should be used, passing :c:func:`PyUnicode_FSDecoder` as the " @@ -1410,7 +1248,7 @@ msgstr "" "argumentos, se debe usar el convertidor ``\"O&\"``, pasando :c:func:" "`PyUnicode_FSDecoder` como la función de conversión:" -#: ../Doc/c-api/unicode.rst:866 +#: ../Doc/c-api/unicode.rst:786 #, fuzzy msgid "" "ParseTuple converter: decode :class:`bytes` objects -- obtained either " @@ -1425,26 +1263,16 @@ msgstr "" "class:`str` se generan tal cual. *result* debe ser :c:type:" "`PyUnicodeObject*` que debe liberarse cuando ya no se use." -#: ../Doc/c-api/unicode.rst:880 +#: ../Doc/c-api/unicode.rst:800 msgid "Decode a string from the :term:`filesystem encoding and error handler`." msgstr "" "Decodifica una cadena desde el :term:`codificador de sistema de archivos y " "gestor de errores `." -#: ../Doc/c-api/unicode.rst:882 ../Doc/c-api/unicode.rst:903 -#: ../Doc/c-api/unicode.rst:919 -msgid "" -"If :c:data:`Py_FileSystemDefaultEncoding` is not set, fall back to the " -"locale encoding." -msgstr "" -"Si :c:data:`Py_FileSystemDefaultEncoding` no está configurado, recurre a la " -"codificación de configuración regional." - -#: ../Doc/c-api/unicode.rst:885 +#: ../Doc/c-api/unicode.rst:802 +#, fuzzy msgid "" -":c:data:`Py_FileSystemDefaultEncoding` is initialized at startup from the " -"locale encoding and cannot be modified later. If you need to decode a string " -"from the current locale encoding, use :c:func:" +"If you need to decode a string from the current locale encoding, use :c:func:" "`PyUnicode_DecodeLocaleAndSize`." msgstr "" ":c:data:`Py_FileSystemDefaultEncoding` se inicializa al inicio desde la " @@ -1452,13 +1280,17 @@ msgstr "" "decodificar una cadena de caracteres de la codificación local actual, " "utilice :c:func:`PyUnicode_DecodeLocaleAndSize`." -#: ../Doc/c-api/unicode.rst:894 ../Doc/c-api/unicode.rst:908 -#: ../Doc/c-api/unicode.rst:932 -msgid "Use :c:data:`Py_FileSystemDefaultEncodeErrors` error handler." +#: ../Doc/c-api/unicode.rst:809 ../Doc/c-api/unicode.rst:822 +#: ../Doc/c-api/unicode.rst:842 +#, fuzzy +msgid "" +"The :term:`filesystem error handler ` " +"is now used." msgstr "" -"Utilice el controlador de errores :c:data:`Py_FileSystemDefaultEncodeErrors`." +"Decodifica una cadena desde el :term:`codificador de sistema de archivos y " +"gestor de errores `." -#: ../Doc/c-api/unicode.rst:900 +#: ../Doc/c-api/unicode.rst:816 msgid "" "Decode a null-terminated string from the :term:`filesystem encoding and " "error handler`." @@ -1467,49 +1299,51 @@ msgstr "" "sistema de archivos y gestor de errores `." -#: ../Doc/c-api/unicode.rst:906 +#: ../Doc/c-api/unicode.rst:819 +#, fuzzy msgid "" -"Use :c:func:`PyUnicode_DecodeFSDefaultAndSize` if you know the string length." +"If the string length is known, use :c:func:" +"`PyUnicode_DecodeFSDefaultAndSize`." msgstr "" "Utilice :c:func:`PyUnicode_DecodeFSDefaultAndSize` si conoce la longitud de " "la cadena." -#: ../Doc/c-api/unicode.rst:914 +#: ../Doc/c-api/unicode.rst:829 +#, fuzzy msgid "" -"Encode a Unicode object to :c:data:`Py_FileSystemDefaultEncoding` with the :" -"c:data:`Py_FileSystemDefaultEncodeErrors` error handler, and return :class:" -"`bytes`. Note that the resulting :class:`bytes` object may contain null " -"bytes." +"Encode a Unicode object to the :term:`filesystem encoding and error " +"handler`, and return :class:`bytes`. Note that the resulting :class:`bytes` " +"object can contain null bytes." msgstr "" "Codifica un objeto Unicode para :c:data:`Py_FileSystemDefaultEncoding` con " "el manejador de errores :c:data:`Py_FileSystemDefaultEncodeErrors`, y " "retorna :class:`bytes`. Tenga en cuenta que el objeto resultante :class:" "`bytes` puede contener bytes nulos." -#: ../Doc/c-api/unicode.rst:922 +#: ../Doc/c-api/unicode.rst:833 +#, fuzzy msgid "" -":c:data:`Py_FileSystemDefaultEncoding` is initialized at startup from the " -"locale encoding and cannot be modified later. If you need to encode a string " -"to the current locale encoding, use :c:func:`PyUnicode_EncodeLocale`." +"If you need to encode a string to the current locale encoding, use :c:func:" +"`PyUnicode_EncodeLocale`." msgstr "" ":c:data:`Py_FileSystemDefaultEncoding` se inicializa al inicio desde la " "codificación local y no se puede modificar más tarde. Si necesita codificar " "una cadena a la codificación local actual, utilice :c:func:" "`PyUnicode_EncodeLocale`." -#: ../Doc/c-api/unicode.rst:936 +#: ../Doc/c-api/unicode.rst:847 msgid "wchar_t Support" msgstr "soporte wchar_t" -#: ../Doc/c-api/unicode.rst:938 +#: ../Doc/c-api/unicode.rst:849 #, fuzzy -msgid ":c:expr:`wchar_t` support for platforms which support it:" +msgid ":c:type:`wchar_t` support for platforms which support it:" msgstr "soporte :c:type:`wchar_t` para plataformas que lo soportan:" -#: ../Doc/c-api/unicode.rst:942 +#: ../Doc/c-api/unicode.rst:853 #, fuzzy msgid "" -"Create a Unicode object from the :c:expr:`wchar_t` buffer *w* of the given " +"Create a Unicode object from the :c:type:`wchar_t` buffer *w* of the given " "*size*. Passing ``-1`` as the *size* indicates that the function must itself " "compute the length, using wcslen. Return ``NULL`` on failure." msgstr "" @@ -1517,11 +1351,12 @@ msgstr "" "*size* dado. Pasar ``-1`` como *size* indica que la función debe calcular la " "longitud, usando ``wcslen``. Retorna ``NULL`` en caso de falla." -#: ../Doc/c-api/unicode.rst:950 +#: ../Doc/c-api/unicode.rst:861 +#, fuzzy msgid "" -"Copy the Unicode object contents into the :c:expr:`wchar_t` buffer *w*. At " -"most *size* :c:expr:`wchar_t` characters are copied (excluding a possibly " -"trailing null termination character). Return the number of :c:expr:" +"Copy the Unicode object contents into the :c:type:`wchar_t` buffer *w*. At " +"most *size* :c:type:`wchar_t` characters are copied (excluding a possibly " +"trailing null termination character). Return the number of :c:type:" "`wchar_t` characters copied or ``-1`` in case of an error. Note that the " "resulting :c:expr:`wchar_t*` string may or may not be null-terminated. It " "is the responsibility of the caller to make sure that the :c:expr:`wchar_t*` " @@ -1540,13 +1375,13 @@ msgstr "" "contener caracteres null, lo que haría que la cadena se truncara cuando se " "usa con la mayoría de las funciones de C." -#: ../Doc/c-api/unicode.rst:963 +#: ../Doc/c-api/unicode.rst:874 #, fuzzy msgid "" "Convert the Unicode object to a wide character string. The output string " "always ends with a null character. If *size* is not ``NULL``, write the " "number of wide characters (excluding the trailing null termination " -"character) into *\\*size*. Note that the resulting :c:expr:`wchar_t` string " +"character) into *\\*size*. Note that the resulting :c:type:`wchar_t` string " "might contain null characters, which would cause the string to be truncated " "when used with most C functions. If *size* is ``NULL`` and the :c:expr:" "`wchar_t*` string contains null characters a :exc:`ValueError` is raised." @@ -1560,19 +1395,19 @@ msgstr "" "funciones de C. Si *size* es ``NULL`` y la cadena :c:type:`wchar_t*` " "contiene caracteres nulos un :exc:`ValueError` aparece." -#: ../Doc/c-api/unicode.rst:971 +#: ../Doc/c-api/unicode.rst:882 +#, fuzzy msgid "" -"Returns a buffer allocated by :c:func:`PyMem_Alloc` (use :c:func:" -"`PyMem_Free` to free it) on success. On error, returns ``NULL`` and " -"*\\*size* is undefined. Raises a :exc:`MemoryError` if memory allocation is " -"failed." +"Returns a buffer allocated by :c:macro:`PyMem_New` (use :c:func:`PyMem_Free` " +"to free it) on success. On error, returns ``NULL`` and *\\*size* is " +"undefined. Raises a :exc:`MemoryError` if memory allocation is failed." msgstr "" "Retorna un búfer asignado por :c:func:`PyMem_Alloc` (utilice :c:func:" "`PyMem_Free` para liberarlo) en caso de éxito. En caso de error, retorna " "``NULL`` y *\\*size* no está definido. Provoca un :exc:`MemoryError` si " "falla la asignación de memoria." -#: ../Doc/c-api/unicode.rst:978 +#: ../Doc/c-api/unicode.rst:889 #, fuzzy msgid "" "Raises a :exc:`ValueError` if *size* is ``NULL`` and the :c:expr:`wchar_t*` " @@ -1581,11 +1416,11 @@ msgstr "" "Provoca un :exc:`ValueError` si *size* es ``NULL`` y la cadena :c:type:" "`wchar_t*` contiene caracteres nulos." -#: ../Doc/c-api/unicode.rst:986 +#: ../Doc/c-api/unicode.rst:897 msgid "Built-in Codecs" msgstr "Códecs incorporados" -#: ../Doc/c-api/unicode.rst:988 +#: ../Doc/c-api/unicode.rst:899 msgid "" "Python provides a set of built-in codecs which are written in C for speed. " "All of these codecs are directly usable via the following functions." @@ -1594,7 +1429,7 @@ msgstr "" "para mayor velocidad. Todos estos códecs se pueden usar directamente a " "través de las siguientes funciones." -#: ../Doc/c-api/unicode.rst:991 +#: ../Doc/c-api/unicode.rst:902 msgid "" "Many of the following APIs take two arguments encoding and errors, and they " "have the same semantics as the ones of the built-in :func:`str` string " @@ -1604,15 +1439,13 @@ msgstr "" "y tienen la misma semántica que las del constructor de objetos de cadena " "incorporado :func:`str`." -#: ../Doc/c-api/unicode.rst:995 +#: ../Doc/c-api/unicode.rst:906 +#, fuzzy msgid "" "Setting encoding to ``NULL`` causes the default encoding to be used which is " "UTF-8. The file system calls should use :c:func:`PyUnicode_FSConverter` for " -"encoding file names. This uses the variable :c:data:" -"`Py_FileSystemDefaultEncoding` internally. This variable should be treated " -"as read-only: on some systems, it will be a pointer to a static string, on " -"others, it will change at run-time (such as when the application invokes " -"setlocale)." +"encoding file names. This uses the :term:`filesystem encoding and error " +"handler` internally." msgstr "" "Establecer la codificación en ``NULL`` hace que se use la codificación " "predeterminada, que es ASCII. Las llamadas al sistema de archivos deben " @@ -1623,7 +1456,7 @@ msgstr "" "cambiará en tiempo de ejecución (como cuando la aplicación invoca " "*setlocale*)." -#: ../Doc/c-api/unicode.rst:1003 +#: ../Doc/c-api/unicode.rst:911 msgid "" "Error handling is set by errors which may also be set to ``NULL`` meaning to " "use the default handling defined for the codec. Default error handling for " @@ -1634,7 +1467,7 @@ msgstr "" "definido para el códec. El manejo de errores predeterminado para todos los " "códecs integrados es \"estricto\" (se lanza :exc:`ValueError`)." -#: ../Doc/c-api/unicode.rst:1007 +#: ../Doc/c-api/unicode.rst:915 #, fuzzy msgid "" "The codecs all use a similar interface. Only deviations from the following " @@ -1643,15 +1476,15 @@ msgstr "" "Todos los códecs usan una interfaz similar. Solo la desviación de las " "siguientes genéricas se documenta por simplicidad." -#: ../Doc/c-api/unicode.rst:1012 +#: ../Doc/c-api/unicode.rst:920 msgid "Generic Codecs" msgstr "Códecs genéricos" -#: ../Doc/c-api/unicode.rst:1014 +#: ../Doc/c-api/unicode.rst:922 msgid "These are the generic codec APIs:" msgstr "Estas son las APIs de códecs genéricos:" -#: ../Doc/c-api/unicode.rst:1020 +#: ../Doc/c-api/unicode.rst:928 msgid "" "Create a Unicode object by decoding *size* bytes of the encoded string *s*. " "*encoding* and *errors* have the same meaning as the parameters of the same " @@ -1665,7 +1498,7 @@ msgstr "" "utilizará se busca utilizando el registro de códec Python. Retorna ``NULL`` " "si el códec provocó una excepción." -#: ../Doc/c-api/unicode.rst:1030 +#: ../Doc/c-api/unicode.rst:938 msgid "" "Encode a Unicode object and return the result as Python bytes object. " "*encoding* and *errors* have the same meaning as the parameters of the same " @@ -1679,15 +1512,15 @@ msgstr "" "utilizará se busca utilizando el registro de códec Python. Retorna ``NULL`` " "si el códec provocó una excepción." -#: ../Doc/c-api/unicode.rst:1038 +#: ../Doc/c-api/unicode.rst:946 msgid "UTF-8 Codecs" msgstr "Códecs UTF-8" -#: ../Doc/c-api/unicode.rst:1040 +#: ../Doc/c-api/unicode.rst:948 msgid "These are the UTF-8 codec APIs:" msgstr "Estas son las APIs del códec UTF-8:" -#: ../Doc/c-api/unicode.rst:1045 +#: ../Doc/c-api/unicode.rst:953 msgid "" "Create a Unicode object by decoding *size* bytes of the UTF-8 encoded string " "*s*. Return ``NULL`` if an exception was raised by the codec." @@ -1695,7 +1528,7 @@ msgstr "" "Crea un objeto Unicode decodificando *size* bytes de la cadena codificada " "UTF-8 *s*. Retorna ``NULL`` si el códec provocó una excepción." -#: ../Doc/c-api/unicode.rst:1052 +#: ../Doc/c-api/unicode.rst:960 msgid "" "If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF8`. If " "*consumed* is not ``NULL``, trailing incomplete UTF-8 byte sequences will " @@ -1707,7 +1540,7 @@ msgstr "" "se tratarán como un error. Esos bytes no serán decodificados y la cantidad " "de bytes que han sido decodificados se almacenará en *consumed*." -#: ../Doc/c-api/unicode.rst:1060 +#: ../Doc/c-api/unicode.rst:968 msgid "" "Encode a Unicode object using UTF-8 and return the result as Python bytes " "object. Error handling is \"strict\". Return ``NULL`` if an exception was " @@ -1717,7 +1550,7 @@ msgstr "" "objeto de bytes de Python. El manejo de errores es \"estricto\". Retorna " "``NULL`` si el códec provocó una excepción." -#: ../Doc/c-api/unicode.rst:1067 +#: ../Doc/c-api/unicode.rst:975 msgid "" "Return a pointer to the UTF-8 encoding of the Unicode object, and store the " "size of the encoded representation (in bytes) in *size*. The *size* " @@ -1731,7 +1564,7 @@ msgstr "" "retornado siempre tiene un byte nulo adicional agregado (no incluido en " "*size*), independientemente de si hay otros puntos de código nulo." -#: ../Doc/c-api/unicode.rst:1073 +#: ../Doc/c-api/unicode.rst:981 msgid "" "In the case of an error, ``NULL`` is returned with an exception set and no " "*size* is stored." @@ -1739,7 +1572,7 @@ msgstr "" "En caso de error, se retorna ``NULL`` con un conjunto de excepciones y no se " "almacena *size*." -#: ../Doc/c-api/unicode.rst:1076 +#: ../Doc/c-api/unicode.rst:984 #, fuzzy msgid "" "This caches the UTF-8 representation of the string in the Unicode object, " @@ -1752,27 +1585,28 @@ msgstr "" "Unicode, y las llamadas posteriores retornarán un puntero al mismo búfer. La " "persona que llama no es responsable de desasignar el búfer." -#: ../Doc/c-api/unicode.rst:1083 ../Doc/c-api/unicode.rst:1096 +#: ../Doc/c-api/unicode.rst:991 ../Doc/c-api/unicode.rst:1004 msgid "The return type is now ``const char *`` rather of ``char *``." msgstr "El tipo de retorno ahora es ``const char *`` en lugar de ``char *``." -#: ../Doc/c-api/unicode.rst:1086 -msgid "This function is a part of the :ref:`limited API `." +#: ../Doc/c-api/unicode.rst:994 +#, fuzzy +msgid "This function is a part of the :ref:`limited API `." msgstr "Esta función es parte de la :ref:`API limitada `." -#: ../Doc/c-api/unicode.rst:1092 +#: ../Doc/c-api/unicode.rst:1000 msgid "As :c:func:`PyUnicode_AsUTF8AndSize`, but does not store the size." msgstr "Como :c:func:`PyUnicode_AsUTF8AndSize`, pero no almacena el tamaño." -#: ../Doc/c-api/unicode.rst:1101 +#: ../Doc/c-api/unicode.rst:1009 msgid "UTF-32 Codecs" msgstr "Códecs UTF-32" -#: ../Doc/c-api/unicode.rst:1103 +#: ../Doc/c-api/unicode.rst:1011 msgid "These are the UTF-32 codec APIs:" msgstr "Estas son las APIs de códecs para UTF-32:" -#: ../Doc/c-api/unicode.rst:1109 +#: ../Doc/c-api/unicode.rst:1017 msgid "" "Decode *size* bytes from a UTF-32 encoded buffer string and return the " "corresponding Unicode object. *errors* (if non-``NULL``) defines the error " @@ -1782,7 +1616,7 @@ msgstr "" "el objeto Unicode correspondiente. *errors* (si no es ``NULL``) define el " "manejo de errores. Su valor predeterminado es \"estricto\"." -#: ../Doc/c-api/unicode.rst:1113 ../Doc/c-api/unicode.rst:1163 +#: ../Doc/c-api/unicode.rst:1021 ../Doc/c-api/unicode.rst:1071 msgid "" "If *byteorder* is non-``NULL``, the decoder starts decoding using the given " "byte order::" @@ -1790,7 +1624,7 @@ msgstr "" "Si *byteorder* no es ``NULL``, el decodificador comienza a decodificar " "utilizando el orden de bytes dado::" -#: ../Doc/c-api/unicode.rst:1120 +#: ../Doc/c-api/unicode.rst:1028 msgid "" "If ``*byteorder`` is zero, and the first four bytes of the input data are a " "byte order mark (BOM), the decoder switches to this byte order and the BOM " @@ -1803,7 +1637,7 @@ msgstr "" "resultante. Si ``*byteorder`` es ``-1`` o ``1``, cualquier marca de orden de " "bytes se copia en la salida." -#: ../Doc/c-api/unicode.rst:1125 +#: ../Doc/c-api/unicode.rst:1033 msgid "" "After completion, *\\*byteorder* is set to the current byte order at the end " "of input data." @@ -1811,16 +1645,16 @@ msgstr "" "Una vez completado, *\\*byteorder* se establece en el orden de bytes actual " "al final de los datos de entrada." -#: ../Doc/c-api/unicode.rst:1128 ../Doc/c-api/unicode.rst:1179 +#: ../Doc/c-api/unicode.rst:1036 ../Doc/c-api/unicode.rst:1087 msgid "If *byteorder* is ``NULL``, the codec starts in native order mode." msgstr "" "Si *byteorder* es ``NULL``, el códec se inicia en modo de orden nativo." -#: ../Doc/c-api/unicode.rst:1130 ../Doc/c-api/unicode.rst:1181 +#: ../Doc/c-api/unicode.rst:1038 ../Doc/c-api/unicode.rst:1089 msgid "Return ``NULL`` if an exception was raised by the codec." msgstr "Retorna ``NULL`` si el códec provocó una excepción." -#: ../Doc/c-api/unicode.rst:1136 +#: ../Doc/c-api/unicode.rst:1044 msgid "" "If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF32`. If " "*consumed* is not ``NULL``, :c:func:`PyUnicode_DecodeUTF32Stateful` will not " @@ -1835,7 +1669,7 @@ msgstr "" "decodificados y la cantidad de bytes que han sido decodificados se " "almacenará en *consumed*." -#: ../Doc/c-api/unicode.rst:1145 +#: ../Doc/c-api/unicode.rst:1053 msgid "" "Return a Python byte string using the UTF-32 encoding in native byte order. " "The string always starts with a BOM mark. Error handling is \"strict\". " @@ -1845,15 +1679,15 @@ msgstr "" "de bytes nativo. La cadena siempre comienza con una marca BOM. El manejo de " "errores es \"estricto\". Retorna ``NULL`` si el códec provocó una excepción." -#: ../Doc/c-api/unicode.rst:1151 +#: ../Doc/c-api/unicode.rst:1059 msgid "UTF-16 Codecs" msgstr "Códecs UTF-16" -#: ../Doc/c-api/unicode.rst:1153 +#: ../Doc/c-api/unicode.rst:1061 msgid "These are the UTF-16 codec APIs:" msgstr "Estas son las APIs de códecs para UTF-16:" -#: ../Doc/c-api/unicode.rst:1159 +#: ../Doc/c-api/unicode.rst:1067 msgid "" "Decode *size* bytes from a UTF-16 encoded buffer string and return the " "corresponding Unicode object. *errors* (if non-``NULL``) defines the error " @@ -1864,7 +1698,7 @@ msgstr "" "``NULL``) define el manejo de errores. Su valor predeterminado es " "\"estricto\"." -#: ../Doc/c-api/unicode.rst:1170 +#: ../Doc/c-api/unicode.rst:1078 msgid "" "If ``*byteorder`` is zero, and the first two bytes of the input data are a " "byte order mark (BOM), the decoder switches to this byte order and the BOM " @@ -1879,7 +1713,7 @@ msgstr "" "copia en la salida (donde dará como resultado un ``\\ufeff`` o un carácter " "``\\ufffe``)." -#: ../Doc/c-api/unicode.rst:1176 +#: ../Doc/c-api/unicode.rst:1084 #, fuzzy msgid "" "After completion, ``*byteorder`` is set to the current byte order at the end " @@ -1888,7 +1722,7 @@ msgstr "" "Una vez completado, *\\*byteorder* se establece en el orden de bytes actual " "al final de los datos de entrada." -#: ../Doc/c-api/unicode.rst:1187 +#: ../Doc/c-api/unicode.rst:1095 msgid "" "If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF16`. If " "*consumed* is not ``NULL``, :c:func:`PyUnicode_DecodeUTF16Stateful` will not " @@ -1904,7 +1738,7 @@ msgstr "" "serán decodificados y la cantidad de bytes que han sido decodificados se " "almacenará en *consumed*." -#: ../Doc/c-api/unicode.rst:1196 +#: ../Doc/c-api/unicode.rst:1104 msgid "" "Return a Python byte string using the UTF-16 encoding in native byte order. " "The string always starts with a BOM mark. Error handling is \"strict\". " @@ -1914,15 +1748,15 @@ msgstr "" "de bytes nativo. La cadena siempre comienza con una marca BOM. El manejo de " "errores es \"estricto\". Retorna ``NULL`` si el códec provocó una excepción." -#: ../Doc/c-api/unicode.rst:1202 +#: ../Doc/c-api/unicode.rst:1110 msgid "UTF-7 Codecs" msgstr "Códecs UTF-7" -#: ../Doc/c-api/unicode.rst:1204 +#: ../Doc/c-api/unicode.rst:1112 msgid "These are the UTF-7 codec APIs:" msgstr "Estas son las APIs del códec UTF-7:" -#: ../Doc/c-api/unicode.rst:1209 +#: ../Doc/c-api/unicode.rst:1117 msgid "" "Create a Unicode object by decoding *size* bytes of the UTF-7 encoded string " "*s*. Return ``NULL`` if an exception was raised by the codec." @@ -1930,7 +1764,7 @@ msgstr "" "Crea un objeto Unicode decodificando *size* bytes de la cadena de caracteres " "codificada UTF-7 *s*. Retorna ``NULL`` si el códec provocó una excepción." -#: ../Doc/c-api/unicode.rst:1216 +#: ../Doc/c-api/unicode.rst:1124 msgid "" "If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF7`. If " "*consumed* is not ``NULL``, trailing incomplete UTF-7 base-64 sections will " @@ -1942,15 +1776,15 @@ msgstr "" "tratarán como un error. Esos bytes no serán decodificados y la cantidad de " "bytes que han sido decodificados se almacenará en *consumed*." -#: ../Doc/c-api/unicode.rst:1223 +#: ../Doc/c-api/unicode.rst:1131 msgid "Unicode-Escape Codecs" msgstr "Códecs Unicode escapado" -#: ../Doc/c-api/unicode.rst:1225 +#: ../Doc/c-api/unicode.rst:1133 msgid "These are the \"Unicode Escape\" codec APIs:" msgstr "Estas son las APIs de códecs para Unicode escapado:" -#: ../Doc/c-api/unicode.rst:1231 +#: ../Doc/c-api/unicode.rst:1139 msgid "" "Create a Unicode object by decoding *size* bytes of the Unicode-Escape " "encoded string *s*. Return ``NULL`` if an exception was raised by the codec." @@ -1959,7 +1793,7 @@ msgstr "" "Unicode escapada (*Unicode-Escape*) *s*. Retorna ``NULL`` si el códec " "provocó una excepción." -#: ../Doc/c-api/unicode.rst:1237 +#: ../Doc/c-api/unicode.rst:1145 msgid "" "Encode a Unicode object using Unicode-Escape and return the result as a " "bytes object. Error handling is \"strict\". Return ``NULL`` if an " @@ -1969,16 +1803,16 @@ msgstr "" "retorna el resultado como un objeto de bytes. El manejo de errores es " "\"estricto\". Retorna ``NULL`` si el códec provocó una excepción." -#: ../Doc/c-api/unicode.rst:1243 +#: ../Doc/c-api/unicode.rst:1151 msgid "Raw-Unicode-Escape Codecs" msgstr "Códecs para Unicode escapado en bruto" -#: ../Doc/c-api/unicode.rst:1245 +#: ../Doc/c-api/unicode.rst:1153 msgid "These are the \"Raw Unicode Escape\" codec APIs:" msgstr "" "Estas son las API del códec Unicode escapado en bruto (*Raw Unicode Escape*):" -#: ../Doc/c-api/unicode.rst:1251 +#: ../Doc/c-api/unicode.rst:1159 msgid "" "Create a Unicode object by decoding *size* bytes of the Raw-Unicode-Escape " "encoded string *s*. Return ``NULL`` if an exception was raised by the codec." @@ -1987,7 +1821,7 @@ msgstr "" "codificada Unicode escapada en bruto (*Raw-Unicode-Escape*) *s*. Retorna " "``NULL`` si el códec provocó una excepción." -#: ../Doc/c-api/unicode.rst:1257 +#: ../Doc/c-api/unicode.rst:1165 msgid "" "Encode a Unicode object using Raw-Unicode-Escape and return the result as a " "bytes object. Error handling is \"strict\". Return ``NULL`` if an " @@ -1997,11 +1831,11 @@ msgstr "" "Escape*) y retorna el resultado como un objeto de bytes. El manejo de " "errores es \"estricto\". Retorna ``NULL`` si el códec provocó una excepción." -#: ../Doc/c-api/unicode.rst:1263 +#: ../Doc/c-api/unicode.rst:1171 msgid "Latin-1 Codecs" msgstr "Códecs Latin-1" -#: ../Doc/c-api/unicode.rst:1265 +#: ../Doc/c-api/unicode.rst:1173 msgid "" "These are the Latin-1 codec APIs: Latin-1 corresponds to the first 256 " "Unicode ordinals and only these are accepted by the codecs during encoding." @@ -2010,7 +1844,7 @@ msgstr "" "ordinales Unicode y solo estos son aceptados por los códecs durante la " "codificación." -#: ../Doc/c-api/unicode.rst:1271 +#: ../Doc/c-api/unicode.rst:1179 msgid "" "Create a Unicode object by decoding *size* bytes of the Latin-1 encoded " "string *s*. Return ``NULL`` if an exception was raised by the codec." @@ -2019,7 +1853,7 @@ msgstr "" "codificada en latin-1 *s*. Retorna ``NULL`` si el códec provocó una " "excepción." -#: ../Doc/c-api/unicode.rst:1277 +#: ../Doc/c-api/unicode.rst:1185 msgid "" "Encode a Unicode object using Latin-1 and return the result as Python bytes " "object. Error handling is \"strict\". Return ``NULL`` if an exception was " @@ -2029,11 +1863,11 @@ msgstr "" "objeto de bytes Python. El manejo de errores es \"estricto\". Retorna " "``NULL`` si el códec provocó una excepción." -#: ../Doc/c-api/unicode.rst:1283 +#: ../Doc/c-api/unicode.rst:1191 msgid "ASCII Codecs" msgstr "Códecs ASCII" -#: ../Doc/c-api/unicode.rst:1285 +#: ../Doc/c-api/unicode.rst:1193 msgid "" "These are the ASCII codec APIs. Only 7-bit ASCII data is accepted. All " "other codes generate errors." @@ -2041,7 +1875,7 @@ msgstr "" "Estas son las API del códec ASCII. Solo se aceptan datos ASCII de 7 bits. " "Todos los demás códigos generan errores." -#: ../Doc/c-api/unicode.rst:1291 +#: ../Doc/c-api/unicode.rst:1199 msgid "" "Create a Unicode object by decoding *size* bytes of the ASCII encoded string " "*s*. Return ``NULL`` if an exception was raised by the codec." @@ -2049,7 +1883,7 @@ msgstr "" "Crea un objeto Unicode decodificando *size* bytes de la cadena de caracteres " "codificada ASCII *s*. Retorna ``NULL`` si el códec provocó una excepción." -#: ../Doc/c-api/unicode.rst:1297 +#: ../Doc/c-api/unicode.rst:1205 msgid "" "Encode a Unicode object using ASCII and return the result as Python bytes " "object. Error handling is \"strict\". Return ``NULL`` if an exception was " @@ -2059,19 +1893,19 @@ msgstr "" "objeto de bytes de Python. El manejo de errores es \"estricto\". Retorna " "``NULL`` si el códec provocó una excepción." -#: ../Doc/c-api/unicode.rst:1303 +#: ../Doc/c-api/unicode.rst:1211 msgid "Character Map Codecs" msgstr "Códecs de mapa de caracteres" -#: ../Doc/c-api/unicode.rst:1305 +#: ../Doc/c-api/unicode.rst:1213 #, fuzzy msgid "" "This codec is special in that it can be used to implement many different " "codecs (and this is in fact what was done to obtain most of the standard " -"codecs included in the :mod:`encodings` package). The codec uses mappings to " -"encode and decode characters. The mapping objects provided must support " -"the :meth:`__getitem__` mapping interface; dictionaries and sequences work " -"well." +"codecs included in the :mod:`!encodings` package). The codec uses mappings " +"to encode and decode characters. The mapping objects provided must support " +"the :meth:`~object.__getitem__` mapping interface; dictionaries and " +"sequences work well." msgstr "" "Este códec es especial porque puede usarse para implementar muchos códecs " "diferentes (y esto es lo que se hizo para obtener la mayoría de los códecs " @@ -2080,11 +1914,11 @@ msgstr "" "deben soportar la interfaz de mapeo :meth:`__getitem__`; Los diccionarios y " "las secuencias funcionan bien." -#: ../Doc/c-api/unicode.rst:1311 +#: ../Doc/c-api/unicode.rst:1219 msgid "These are the mapping codec APIs:" msgstr "Estos son las API de códec de mapeo:" -#: ../Doc/c-api/unicode.rst:1316 +#: ../Doc/c-api/unicode.rst:1224 msgid "" "Create a Unicode object by decoding *size* bytes of the encoded string *s* " "using the given *mapping* object. Return ``NULL`` if an exception was " @@ -2094,7 +1928,7 @@ msgstr "" "codificada *s* usando el objeto *mapping* dado. Retorna ``NULL`` si el códec " "provocó una excepción." -#: ../Doc/c-api/unicode.rst:1320 +#: ../Doc/c-api/unicode.rst:1228 msgid "" "If *mapping* is ``NULL``, Latin-1 decoding will be applied. Else *mapping* " "must map bytes ordinals (integers in the range from 0 to 255) to Unicode " @@ -2111,7 +1945,7 @@ msgstr "" "``0xFFFE`` o ``'\\ ufffe'``, se tratan como asignaciones indefinidas y " "causan un error." -#: ../Doc/c-api/unicode.rst:1331 +#: ../Doc/c-api/unicode.rst:1239 msgid "" "Encode a Unicode object using the given *mapping* object and return the " "result as a bytes object. Error handling is \"strict\". Return ``NULL`` if " @@ -2121,7 +1955,7 @@ msgstr "" "resultado como un objeto de bytes. El manejo de errores es \"estricto\". " "Retorna ``NULL`` si el códec provocó una excepción." -#: ../Doc/c-api/unicode.rst:1335 +#: ../Doc/c-api/unicode.rst:1243 msgid "" "The *mapping* object must map Unicode ordinal integers to bytes objects, " "integers in the range from 0 to 255 or ``None``. Unmapped character " @@ -2134,11 +1968,11 @@ msgstr "" "asignados a ``Ninguno``, se tratan como \"mapeo indefinido\" y causan un " "error." -#: ../Doc/c-api/unicode.rst:1341 +#: ../Doc/c-api/unicode.rst:1249 msgid "The following codec API is special in that maps Unicode to Unicode." msgstr "La siguiente API de códec es especial en que asigna Unicode a Unicode." -#: ../Doc/c-api/unicode.rst:1345 +#: ../Doc/c-api/unicode.rst:1253 msgid "" "Translate a string by applying a character mapping table to it and return " "the resulting Unicode object. Return ``NULL`` if an exception was raised by " @@ -2148,7 +1982,7 @@ msgstr "" "el objeto Unicode resultante. Retorna ``NULL`` cuando el códec provocó una " "excepción." -#: ../Doc/c-api/unicode.rst:1349 +#: ../Doc/c-api/unicode.rst:1257 msgid "" "The mapping table must map Unicode ordinal integers to Unicode ordinal " "integers or ``None`` (causing deletion of the character)." @@ -2156,9 +1990,10 @@ msgstr "" "La tabla de mapeo debe mapear enteros ordinales Unicode a enteros ordinales " "Unicode o ``None`` (causando la eliminación del carácter)." -#: ../Doc/c-api/unicode.rst:1352 +#: ../Doc/c-api/unicode.rst:1260 +#, fuzzy msgid "" -"Mapping tables need only provide the :meth:`__getitem__` interface; " +"Mapping tables need only provide the :meth:`~object.__getitem__` interface; " "dictionaries and sequences work well. Unmapped character ordinals (ones " "which cause a :exc:`LookupError`) are left untouched and are copied as-is." msgstr "" @@ -2167,7 +2002,7 @@ msgstr "" "ordinales de caracteres no asignados (los que causan un :exc:`LookupError`) " "se dejan intactos y se copian tal cual." -#: ../Doc/c-api/unicode.rst:1356 +#: ../Doc/c-api/unicode.rst:1264 msgid "" "*errors* has the usual meaning for codecs. It may be ``NULL`` which " "indicates to use the default error handling." @@ -2175,11 +2010,11 @@ msgstr "" "*errors* tiene el significado habitual para los códecs. Puede ser ``NULL``, " "lo que indica que debe usar el manejo de errores predeterminado." -#: ../Doc/c-api/unicode.rst:1361 +#: ../Doc/c-api/unicode.rst:1269 msgid "MBCS codecs for Windows" msgstr "Códecs MBCS para Windows" -#: ../Doc/c-api/unicode.rst:1363 +#: ../Doc/c-api/unicode.rst:1271 msgid "" "These are the MBCS codec APIs. They are currently only available on Windows " "and use the Win32 MBCS converters to implement the conversions. Note that " @@ -2192,7 +2027,7 @@ msgstr "" "codificaciones, no solo una. La codificación de destino está definida por la " "configuración del usuario en la máquina que ejecuta el códec." -#: ../Doc/c-api/unicode.rst:1370 +#: ../Doc/c-api/unicode.rst:1278 msgid "" "Create a Unicode object by decoding *size* bytes of the MBCS encoded string " "*s*. Return ``NULL`` if an exception was raised by the codec." @@ -2200,7 +2035,7 @@ msgstr "" "Crea un objeto Unicode decodificando *size* bytes de la cadena de caracteres " "codificada con MBCS *s*. Retorna ``NULL`` si el códec provocó una excepción." -#: ../Doc/c-api/unicode.rst:1377 +#: ../Doc/c-api/unicode.rst:1285 msgid "" "If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeMBCS`. If " "*consumed* is not ``NULL``, :c:func:`PyUnicode_DecodeMBCSStateful` will not " @@ -2212,7 +2047,7 @@ msgstr "" "decodificará el byte inicial y el número de bytes que se han decodificado se " "almacenará en *consumed*." -#: ../Doc/c-api/unicode.rst:1385 +#: ../Doc/c-api/unicode.rst:1293 msgid "" "Encode a Unicode object using MBCS and return the result as Python bytes " "object. Error handling is \"strict\". Return ``NULL`` if an exception was " @@ -2222,26 +2057,27 @@ msgstr "" "de bytes de Python. El manejo de errores es \"estricto\". Retorna ``NULL`` " "si el códec provocó una excepción." -#: ../Doc/c-api/unicode.rst:1392 +#: ../Doc/c-api/unicode.rst:1300 +#, fuzzy msgid "" "Encode the Unicode object using the specified code page and return a Python " "bytes object. Return ``NULL`` if an exception was raised by the codec. Use :" -"c:data:`CP_ACP` code page to get the MBCS encoder." +"c:macro:`!CP_ACP` code page to get the MBCS encoder." msgstr "" "Codifica el objeto Unicode utilizando la página de códigos especificada y " "retorna un objeto de bytes de Python. Retorna ``NULL`` si el códec provocó " "una excepción. Use la página de códigos :c:data:`CP_ACP` para obtener el " "codificador MBCS." -#: ../Doc/c-api/unicode.rst:1400 +#: ../Doc/c-api/unicode.rst:1308 msgid "Methods & Slots" msgstr "Métodos & Ranuras (*Slots*)" -#: ../Doc/c-api/unicode.rst:1406 +#: ../Doc/c-api/unicode.rst:1314 msgid "Methods and Slot Functions" msgstr "Métodos y funciones de ranura (*Slot*)" -#: ../Doc/c-api/unicode.rst:1408 +#: ../Doc/c-api/unicode.rst:1316 msgid "" "The following APIs are capable of handling Unicode objects and strings on " "input (we refer to them as strings in the descriptions) and return Unicode " @@ -2251,16 +2087,16 @@ msgstr "" "caracteres en la entrada (nos referimos a ellos como cadenas de caracteres " "en las descripciones) y retorna objetos Unicode o enteros según corresponda." -#: ../Doc/c-api/unicode.rst:1412 +#: ../Doc/c-api/unicode.rst:1320 msgid "They all return ``NULL`` or ``-1`` if an exception occurs." msgstr "Todos retornan ``NULL`` o ``-1`` si ocurre una excepción." -#: ../Doc/c-api/unicode.rst:1417 +#: ../Doc/c-api/unicode.rst:1325 msgid "Concat two strings giving a new Unicode string." msgstr "" "Une dos cadenas de caracteres que dan una nueva cadena de caracteres Unicode." -#: ../Doc/c-api/unicode.rst:1422 +#: ../Doc/c-api/unicode.rst:1330 msgid "" "Split a string giving a list of Unicode strings. If *sep* is ``NULL``, " "splitting will be done at all whitespace substrings. Otherwise, splits " @@ -2275,7 +2111,7 @@ msgstr "" "negativo, no se establece ningún límite. Los separadores no están incluidos " "en la lista resultante." -#: ../Doc/c-api/unicode.rst:1430 +#: ../Doc/c-api/unicode.rst:1338 #, fuzzy msgid "" "Split a Unicode string at line breaks, returning a list of Unicode strings. " @@ -2287,7 +2123,7 @@ msgstr "" "línea. Si *keepend* es ``0``, los caracteres de salto de línea no se " "incluyen en las cadenas de caracteres resultantes." -#: ../Doc/c-api/unicode.rst:1437 +#: ../Doc/c-api/unicode.rst:1345 msgid "" "Join a sequence of strings using the given *separator* and return the " "resulting Unicode string." @@ -2295,7 +2131,7 @@ msgstr "" "Une una secuencia de cadenas de caracteres usando el *separator* dado y " "retorna la cadena de caracteres Unicode resultante." -#: ../Doc/c-api/unicode.rst:1444 +#: ../Doc/c-api/unicode.rst:1352 msgid "" "Return ``1`` if *substr* matches ``str[start:end]`` at the given tail end " "(*direction* == ``-1`` means to do a prefix match, *direction* == ``1`` a " @@ -2306,7 +2142,7 @@ msgstr "" "prefijo, *direction* == ``1`` una coincidencia de sufijo), ``0`` de lo " "contrario. retorne ``-1`` si ocurrió un error." -#: ../Doc/c-api/unicode.rst:1452 +#: ../Doc/c-api/unicode.rst:1360 msgid "" "Return the first position of *substr* in ``str[start:end]`` using the given " "*direction* (*direction* == ``1`` means to do a forward search, *direction* " @@ -2321,7 +2157,7 @@ msgstr "" "que no se encontró ninguna coincidencia, y ``-2`` indica que se produjo un " "error y se ha establecido una excepción." -#: ../Doc/c-api/unicode.rst:1462 +#: ../Doc/c-api/unicode.rst:1370 msgid "" "Return the first position of the character *ch* in ``str[start:end]`` using " "the given *direction* (*direction* == ``1`` means to do a forward search, " @@ -2336,13 +2172,13 @@ msgstr "" "que no se encontró ninguna coincidencia, y ``-2`` indica que se produjo un " "error y se ha establecido una excepción." -#: ../Doc/c-api/unicode.rst:1470 +#: ../Doc/c-api/unicode.rst:1378 msgid "*start* and *end* are now adjusted to behave like ``str[start:end]``." msgstr "" "*start* y *end* ahora están ajustados para comportarse como ``str[start:" "end]``." -#: ../Doc/c-api/unicode.rst:1477 +#: ../Doc/c-api/unicode.rst:1385 msgid "" "Return the number of non-overlapping occurrences of *substr* in ``str[start:" "end]``. Return ``-1`` if an error occurred." @@ -2350,7 +2186,7 @@ msgstr "" "Retorna el número de ocurrencias no superpuestas de *substr* en ``str[start:" "end]``. Retorna ``-1`` si ocurrió un error." -#: ../Doc/c-api/unicode.rst:1484 +#: ../Doc/c-api/unicode.rst:1392 msgid "" "Replace at most *maxcount* occurrences of *substr* in *str* with *replstr* " "and return the resulting Unicode object. *maxcount* == ``-1`` means replace " @@ -2360,7 +2196,7 @@ msgstr "" "*replstr* y retorna el objeto Unicode resultante. *maxcount* == ``-1`` " "significa reemplazar todas las ocurrencias." -#: ../Doc/c-api/unicode.rst:1491 +#: ../Doc/c-api/unicode.rst:1399 msgid "" "Compare two strings and return ``-1``, ``0``, ``1`` for less than, equal, " "and greater than, respectively." @@ -2368,7 +2204,7 @@ msgstr "" "Compara dos cadenas de caracteres y retorna ``-1``, ``0``, ``1`` para menor " "que, igual y mayor que, respectivamente." -#: ../Doc/c-api/unicode.rst:1494 +#: ../Doc/c-api/unicode.rst:1402 msgid "" "This function returns ``-1`` upon failure, so one should call :c:func:" "`PyErr_Occurred` to check for errors." @@ -2376,7 +2212,7 @@ msgstr "" "Esta función retorna ``-1`` en caso de falla, por lo que se debe llamar a :c:" "func:`PyErr_Occurred` para verificar si hay errores." -#: ../Doc/c-api/unicode.rst:1500 +#: ../Doc/c-api/unicode.rst:1408 msgid "" "Compare a Unicode object, *uni*, with *string* and return ``-1``, ``0``, " "``1`` for less than, equal, and greater than, respectively. It is best to " @@ -2388,38 +2224,41 @@ msgstr "" "solo cadenas de caracteres codificadas en ASCII, pero la función interpreta " "la cadena de entrada como ISO-8859-1 si contiene caracteres no ASCII." -#: ../Doc/c-api/unicode.rst:1505 +#: ../Doc/c-api/unicode.rst:1413 msgid "This function does not raise exceptions." msgstr "Esta función no lanza excepciones." -#: ../Doc/c-api/unicode.rst:1510 +#: ../Doc/c-api/unicode.rst:1418 msgid "Rich compare two Unicode strings and return one of the following:" msgstr "" "Comparación enriquecida de dos cadenas de caracteres Unicode y retorna uno " "de los siguientes:" -#: ../Doc/c-api/unicode.rst:1512 +#: ../Doc/c-api/unicode.rst:1420 msgid "``NULL`` in case an exception was raised" msgstr "``NULL`` en caso de que se produzca una excepción" -#: ../Doc/c-api/unicode.rst:1513 -msgid ":const:`Py_True` or :const:`Py_False` for successful comparisons" +#: ../Doc/c-api/unicode.rst:1421 +#, fuzzy +msgid ":c:data:`Py_True` or :c:data:`Py_False` for successful comparisons" msgstr ":const:`Py_True` o :const:`Py_False` para comparaciones exitosas" -#: ../Doc/c-api/unicode.rst:1514 -msgid ":const:`Py_NotImplemented` in case the type combination is unknown" +#: ../Doc/c-api/unicode.rst:1422 +#, fuzzy +msgid ":c:data:`Py_NotImplemented` in case the type combination is unknown" msgstr "" ":const:`Py_NotImplemented` en caso que se desconozca la combinación de tipos" -#: ../Doc/c-api/unicode.rst:1516 +#: ../Doc/c-api/unicode.rst:1424 +#, fuzzy msgid "" -"Possible values for *op* are :const:`Py_GT`, :const:`Py_GE`, :const:" -"`Py_EQ`, :const:`Py_NE`, :const:`Py_LT`, and :const:`Py_LE`." +"Possible values for *op* are :c:macro:`Py_GT`, :c:macro:`Py_GE`, :c:macro:" +"`Py_EQ`, :c:macro:`Py_NE`, :c:macro:`Py_LT`, and :c:macro:`Py_LE`." msgstr "" "Los posibles valores para *op* son :const:`Py_GT`, :const:`Py_GE`, :const:" "`Py_EQ`, :const:`Py_NE`, :const:`Py_LT`, y :const:`Py_LE`." -#: ../Doc/c-api/unicode.rst:1522 +#: ../Doc/c-api/unicode.rst:1430 msgid "" "Return a new string object from *format* and *args*; this is analogous to " "``format % args``." @@ -2427,7 +2266,7 @@ msgstr "" "Retorna un nuevo objeto de cadena de caracteres desde *format* y *args*; " "esto es análogo al ``format % args``." -#: ../Doc/c-api/unicode.rst:1528 +#: ../Doc/c-api/unicode.rst:1436 msgid "" "Check whether *element* is contained in *container* and return true or false " "accordingly." @@ -2435,7 +2274,7 @@ msgstr "" "Comprueba si *element* está contenido en *container* y retorna verdadero o " "falso en consecuencia." -#: ../Doc/c-api/unicode.rst:1531 +#: ../Doc/c-api/unicode.rst:1439 msgid "" "*element* has to coerce to a one element Unicode string. ``-1`` is returned " "if there was an error." @@ -2443,17 +2282,18 @@ msgstr "" "*element* tiene que convertir a una cadena de caracteres Unicode. Se retorna " "``-1`` si hubo un error." -#: ../Doc/c-api/unicode.rst:1537 +#: ../Doc/c-api/unicode.rst:1445 +#, fuzzy msgid "" "Intern the argument *\\*string* in place. The argument must be the address " "of a pointer variable pointing to a Python Unicode string object. If there " "is an existing interned string that is the same as *\\*string*, it sets " -"*\\*string* to it (decrementing the reference count of the old string object " -"and incrementing the reference count of the interned string object), " -"otherwise it leaves *\\*string* alone and interns it (incrementing its " -"reference count). (Clarification: even though there is a lot of talk about " -"reference counts, think of this function as reference-count-neutral; you own " -"the object after the call if and only if you owned it before the call.)" +"*\\*string* to it (releasing the reference to the old string object and " +"creating a new :term:`strong reference` to the interned string object), " +"otherwise it leaves *\\*string* alone and interns it (creating a new :term:" +"`strong reference`). (Clarification: even though there is a lot of talk " +"about references, think of this function as reference-neutral; you own the " +"object after the call if and only if you owned it before the call.)" msgstr "" "Interna el argumento *\\*string* en su lugar. El argumento debe ser la " "dirección de una variable de puntero que apunta a un objeto Unicode de " @@ -2467,7 +2307,7 @@ msgstr "" "recuento de referencia; usted es el propietario del objeto después de la " "llamada si y solo si lo tenía antes de la llamada)." -#: ../Doc/c-api/unicode.rst:1550 +#: ../Doc/c-api/unicode.rst:1458 msgid "" "A combination of :c:func:`PyUnicode_FromString` and :c:func:" "`PyUnicode_InternInPlace`, returning either a new Unicode string object that " @@ -2479,3 +2319,418 @@ msgstr "" "caracteres Unicode que ha sido creado internamente o una nueva " "referencia(\"propia\") a un objeto de cadena de caracteres interno anterior " "con el mismo valor." + +#~ msgid "" +#~ ":c:expr:`Py_UNICODE*` and UTF-8 representations are created on demand and " +#~ "cached in the Unicode object. The :c:expr:`Py_UNICODE*` representation " +#~ "is deprecated and inefficient." +#~ msgstr "" +#~ ":c:type:`Py_UNICODE *` y las representaciones UTF-8 se crean a pedido y " +#~ "se almacenan en caché en el objeto Unicode. La representación :c:type:" +#~ "`Py_UNICODE *` está en desuso y es ineficiente; debe evitarse en " +#~ "situaciones sensibles al rendimiento o la memoria." + +#~ msgid "" +#~ "Due to the transition between the old APIs and the new APIs, Unicode " +#~ "objects can internally be in two states depending on how they were " +#~ "created:" +#~ msgstr "" +#~ "Debido a la transición entre las API antiguas y las API nuevas, los " +#~ "objetos Unicode pueden estar internamente en dos estados dependiendo de " +#~ "cómo se crearon:" + +#~ msgid "" +#~ "\"canonical\" Unicode objects are all objects created by a non-deprecated " +#~ "Unicode API. They use the most efficient representation allowed by the " +#~ "implementation." +#~ msgstr "" +#~ "Los objetos Unicode \"canónicos\" son todos los objetos creados por una " +#~ "API Unicode no obsoleta. Utilizan la representación más eficiente " +#~ "permitida por la implementación." + +#~ msgid "" +#~ "\"legacy\" Unicode objects have been created through one of the " +#~ "deprecated APIs (typically :c:func:`PyUnicode_FromUnicode`) and only bear " +#~ "the :c:expr:`Py_UNICODE*` representation; you will have to call :c:func:" +#~ "`PyUnicode_READY` on them before calling any other API." +#~ msgstr "" +#~ "Los objetos Unicode \"heredados\" se han creado a través de una de las " +#~ "API obsoletas (normalmente :c:func:`PyUnicode_FromUnicode`) y solo tienen " +#~ "la representación :c:type:`Py_UNICODE*`; Será necesario llamar a :c:func:" +#~ "`PyUnicode_READY` en ellos antes de llamar a cualquier otra API." + +#~ msgid "" +#~ "Ensure the string object *o* is in the \"canonical\" representation. " +#~ "This is required before using any of the access macros described below." +#~ msgstr "" +#~ "Asegura que el objeto de cadena de caracteres *o* esté en la " +#~ "representación \"canónica\". Esto es necesario antes de usar cualquiera " +#~ "de las macros de acceso que se describen a continuación." + +#~ msgid "" +#~ "Returns ``0`` on success and ``-1`` with an exception set on failure, " +#~ "which in particular happens if memory allocation fails." +#~ msgstr "" +#~ "Retorna ``0`` en caso de éxito y ``-1`` con una excepción establecida en " +#~ "caso de error, que ocurre en particular si falla la asignación de memoria." + +#~ msgid "This API will be removed with :c:func:`PyUnicode_FromUnicode`." +#~ msgstr "Esta API será removida con :c:func:`PyUnicode_FromUnicode`." + +#~ msgid "" +#~ "Return the size of the deprecated :c:type:`Py_UNICODE` representation, in " +#~ "code units (this includes surrogate pairs as 2 units). *o* has to be a " +#~ "Unicode object (not checked)." +#~ msgstr "" +#~ "Retorna el tamaño de la representación en desuso :c:type:`Py_UNICODE`, en " +#~ "unidades de código (esto incluye pares sustitutos como 2 unidades). *o* " +#~ "tiene que ser un objeto Unicode (no marcado)." + +#~ msgid "" +#~ "Part of the old-style Unicode API, please migrate to using :c:func:" +#~ "`PyUnicode_GET_LENGTH`." +#~ msgstr "" +#~ "Parte de la API Unicode de estilo antiguo, por favor migrar para usar :c:" +#~ "func:`PyUnicode_GET_LENGTH`." + +#~ msgid "" +#~ "Return the size of the deprecated :c:type:`Py_UNICODE` representation in " +#~ "bytes. *o* has to be a Unicode object (not checked)." +#~ msgstr "" +#~ "Retorna el tamaño de la representación en desuso :c:type:`Py_UNICODE` en " +#~ "bytes. *o* tiene que ser un objeto Unicode (no marcado)." + +#~ msgid "" +#~ "Return a pointer to a :c:type:`Py_UNICODE` representation of the object. " +#~ "The returned buffer is always terminated with an extra null code point. " +#~ "It may also contain embedded null code points, which would cause the " +#~ "string to be truncated when used in most C functions. The ``AS_DATA`` " +#~ "form casts the pointer to :c:expr:`const char *`. The *o* argument has " +#~ "to be a Unicode object (not checked)." +#~ msgstr "" +#~ "Retorna un puntero a una representación :c:type:`Py_UNICODE` del objeto. " +#~ "El búfer retornado siempre termina con un punto de código nulo adicional. " +#~ "También puede contener puntos de código nulo incrustados, lo que " +#~ "provocaría que la cadena de caracteres se truncara cuando se usara en la " +#~ "mayoría de las funciones de C. La forma ``AS_DATA`` arroja el puntero a :" +#~ "c:type:`const char *`. El argumento *o* tiene que ser un objeto Unicode " +#~ "(no marcado)." + +#~ msgid "" +#~ "This function is now inefficient -- because in many cases the :c:type:" +#~ "`Py_UNICODE` representation does not exist and needs to be created -- and " +#~ "can fail (return ``NULL`` with an exception set). Try to port the code " +#~ "to use the new :c:func:`PyUnicode_nBYTE_DATA` macros or use :c:func:" +#~ "`PyUnicode_WRITE` or :c:func:`PyUnicode_READ`." +#~ msgstr "" +#~ "Esta macro ahora es ineficiente, porque en muchos casos la " +#~ "representación :c:type:`Py_UNICODE` no existe y necesita ser creada, y " +#~ "puede fallar (retornar ``NULL`` con un conjunto de excepciones). Intente " +#~ "portar el código para usar las nuevas macros :c:func:" +#~ "`PyUnicode_nBYTE_DATA` o use :c:func:`PyUnicode_WRITE` o :c:func:" +#~ "`PyUnicode_READ`." + +#~ msgid "" +#~ "Part of the old-style Unicode API, please migrate to using the :c:func:" +#~ "`PyUnicode_nBYTE_DATA` family of macros." +#~ msgstr "" +#~ "Parte de la antigua API Unicode, por favor migre para usar la familia de " +#~ "macros :c:func:`PyUnicode_nBYTE_DATA`." + +#~ msgid "" +#~ "If *u* is ``NULL``, this function behaves like :c:func:" +#~ "`PyUnicode_FromUnicode` with the buffer set to ``NULL``. This usage is " +#~ "deprecated in favor of :c:func:`PyUnicode_New`, and will be removed in " +#~ "Python 3.12." +#~ msgstr "" +#~ "Si *u* es ``NULL``, esta función se comporta como :c:func:" +#~ "`PyUnicode_FromUnicode` con el búfer establecido en ``NULL``. Este uso se " +#~ "considera obsoleto (*deprecated*) en favor de :c:func:`PyUnicode_New`." + +#~ msgid "Format Characters" +#~ msgstr "Formatear caracteres" + +#~ msgid ":attr:`%%`" +#~ msgstr ":attr:`%%`" + +#~ msgid ":attr:`%c`" +#~ msgstr ":attr:`%c`" + +#~ msgid "int" +#~ msgstr "int" + +#~ msgid ":attr:`%d`" +#~ msgstr ":attr:`%d`" + +#~ msgid "Equivalent to ``printf(\"%d\")``. [1]_" +#~ msgstr "Equivalente a ``printf(\"%d\")``. [1]_" + +#~ msgid ":attr:`%u`" +#~ msgstr ":attr:`%u`" + +#~ msgid "unsigned int" +#~ msgstr "unsigned int" + +#~ msgid "Equivalent to ``printf(\"%u\")``. [1]_" +#~ msgstr "Equivalente a ``printf(\"%u\")``. [1]_" + +#~ msgid ":attr:`%ld`" +#~ msgstr ":attr:`%ld`" + +#~ msgid "long" +#~ msgstr "long" + +#~ msgid "Equivalent to ``printf(\"%ld\")``. [1]_" +#~ msgstr "Equivalente a ``printf(\"%ld\")``. [1]_" + +#~ msgid ":attr:`%li`" +#~ msgstr ":attr:`%li`" + +#~ msgid "Equivalent to ``printf(\"%li\")``. [1]_" +#~ msgstr "Equivalente a ``printf(\"%li\")``. [1]_" + +#~ msgid ":attr:`%lu`" +#~ msgstr ":attr:`%lu`" + +#~ msgid "unsigned long" +#~ msgstr "unsigned long" + +#~ msgid "Equivalent to ``printf(\"%lu\")``. [1]_" +#~ msgstr "Equivalente a ``printf(\"%lu\")``. [1]_" + +#~ msgid ":attr:`%lld`" +#~ msgstr ":attr:`%lld`" + +#~ msgid "long long" +#~ msgstr "long long" + +#~ msgid "Equivalent to ``printf(\"%lld\")``. [1]_" +#~ msgstr "Equivalente a ``printf(\"%lld\")``. [1]_" + +#~ msgid ":attr:`%lli`" +#~ msgstr ":attr:`%lli`" + +#~ msgid "Equivalent to ``printf(\"%lli\")``. [1]_" +#~ msgstr "Equivalente a ``printf(\"%lli\")``. [1]_" + +#~ msgid ":attr:`%llu`" +#~ msgstr ":attr:`%llu`" + +#~ msgid "unsigned long long" +#~ msgstr "unsigned long long" + +#~ msgid "Equivalent to ``printf(\"%llu\")``. [1]_" +#~ msgstr "Equivalente a ``printf(\"%llu\")``. [1]_" + +#~ msgid ":attr:`%zd`" +#~ msgstr ":attr:`%zd`" + +#~ msgid "Equivalent to ``printf(\"%zd\")``. [1]_" +#~ msgstr "Equivalente a ``printf(\"%zd\")``. [1]_" + +#~ msgid ":attr:`%zi`" +#~ msgstr ":attr:`%zi`" + +#~ msgid "Equivalent to ``printf(\"%zi\")``. [1]_" +#~ msgstr "Equivalente a ``printf(\"%zi\")``. [1]_" + +#~ msgid ":attr:`%zu`" +#~ msgstr ":attr:`%zu`" + +#~ msgid "size_t" +#~ msgstr "size_t" + +#~ msgid "Equivalent to ``printf(\"%zu\")``. [1]_" +#~ msgstr "Equivalente a ``printf(\"%zu\")``. [1]_" + +#~ msgid ":attr:`%i`" +#~ msgstr ":attr:`%i`" + +#~ msgid "Equivalent to ``printf(\"%i\")``. [1]_" +#~ msgstr "Equivalente a ``printf(\"%i\")``. [1]_" + +#~ msgid ":attr:`%x`" +#~ msgstr ":attr:`%x`" + +#~ msgid "Equivalent to ``printf(\"%x\")``. [1]_" +#~ msgstr "Equivalente a ``printf(\"%x\")``. [1]_" + +#~ msgid ":attr:`%s`" +#~ msgstr ":attr:`%s`" + +#~ msgid "const char\\*" +#~ msgstr "const char\\*" + +#~ msgid ":attr:`%p`" +#~ msgstr ":attr:`%p`" + +#~ msgid ":attr:`%A`" +#~ msgstr ":attr:`%A`" + +#~ msgid ":attr:`%U`" +#~ msgstr ":attr:`%U`" + +#~ msgid ":attr:`%V`" +#~ msgstr ":attr:`%V`" + +#~ msgid "PyObject\\*, const char\\*" +#~ msgstr "PyObject\\*, const char\\*" + +#~ msgid ":attr:`%S`" +#~ msgstr ":attr:`%S`" + +#~ msgid ":attr:`%R`" +#~ msgstr ":attr:`%R`" + +#~ msgid "" +#~ "For integer specifiers (d, u, ld, li, lu, lld, lli, llu, zd, zi, zu, i, " +#~ "x): the 0-conversion flag has effect even when a precision is given." +#~ msgstr "" +#~ "Para especificadores de enteros *(d, u, ld, li, lu, lld, lli, llu, zd, " +#~ "zi, zu, i, x)*: el indicador de conversión 0 tiene efecto incluso cuando " +#~ "se proporciona una precisión." + +#~ msgid "Deprecated Py_UNICODE APIs" +#~ msgstr "APIs de Py_UNICODE deprecadas" + +#~ msgid "" +#~ "These API functions are deprecated with the implementation of :pep:`393`. " +#~ "Extension modules can continue using them, as they will not be removed in " +#~ "Python 3.x, but need to be aware that their use can now cause performance " +#~ "and memory hits." +#~ msgstr "" +#~ "Estas funciones API están en desuso con la implementación de :pep:`393`. " +#~ "Los módulos de extensión pueden continuar usándolos, ya que no se " +#~ "eliminarán en Python 3.x, pero deben ser conscientes de que su uso ahora " +#~ "puede causar problemas de rendimiento y memoria." + +#~ msgid "" +#~ "Create a Unicode object from the Py_UNICODE buffer *u* of the given size. " +#~ "*u* may be ``NULL`` which causes the contents to be undefined. It is the " +#~ "user's responsibility to fill in the needed data. The buffer is copied " +#~ "into the new object." +#~ msgstr "" +#~ "Crea un objeto Unicode desde el búfer Py_UNICODE *u* del tamaño dado. *u* " +#~ "puede ser ``NULL``, lo que hace que el contenido no esté definido. Es " +#~ "responsabilidad del usuario completar los datos necesarios. El búfer se " +#~ "copia en el nuevo objeto." + +#~ msgid "" +#~ "If the buffer is not ``NULL``, the return value might be a shared object. " +#~ "Therefore, modification of the resulting Unicode object is only allowed " +#~ "when *u* is ``NULL``." +#~ msgstr "" +#~ "Si el búfer no es ``NULL``, el valor de retorno podría ser un objeto " +#~ "compartido. Por lo tanto, la modificación del objeto Unicode resultante " +#~ "solo se permite cuando *u* es ``NULL``." + +#~ msgid "" +#~ "If the buffer is ``NULL``, :c:func:`PyUnicode_READY` must be called once " +#~ "the string content has been filled before using any of the access macros " +#~ "such as :c:func:`PyUnicode_KIND`." +#~ msgstr "" +#~ "Si el búfer es ``NULL``, se debe llamar a :c:func:`PyUnicode_READY` una " +#~ "vez que se haya llenado el contenido de la cadena de caracteres antes de " +#~ "usar cualquiera de las macros de acceso, como :c:func:`PyUnicode_KIND`." + +#~ msgid "" +#~ "Part of the old-style Unicode API, please migrate to using :c:func:" +#~ "`PyUnicode_FromKindAndData`, :c:func:`PyUnicode_FromWideChar`, or :c:func:" +#~ "`PyUnicode_New`." +#~ msgstr "" +#~ "Por favor migrar para usar :c:func:`PyUnicode_FromKindAndData`, :c:func:" +#~ "`PyUnicode_FromWideChar` o :c:func:`PyUnicode_New`." + +#~ msgid "" +#~ "Return a read-only pointer to the Unicode object's internal :c:type:" +#~ "`Py_UNICODE` buffer, or ``NULL`` on error. This will create the :c:expr:" +#~ "`Py_UNICODE*` representation of the object if it is not yet available. " +#~ "The buffer is always terminated with an extra null code point. Note that " +#~ "the resulting :c:type:`Py_UNICODE` string may also contain embedded null " +#~ "code points, which would cause the string to be truncated when used in " +#~ "most C functions." +#~ msgstr "" +#~ "Retorna un puntero de solo lectura al búfer :c:type:`Py_UNICODE` interno " +#~ "del objeto Unicode, o ``NULL`` en caso de error. Esto creará la " +#~ "representación :c:type:`Py_UNICODE*` del objeto si aún no está " +#~ "disponible. El búfer siempre termina con un punto de código nulo " +#~ "adicional. Tenga en cuenta que la cadena de caracteres resultante :c:type:" +#~ "`Py_UNICODE` también puede contener puntos de código nulo incrustados, lo " +#~ "que provocaría que la cadena se truncara cuando se usara en la mayoría de " +#~ "las funciones de C." + +#~ msgid "" +#~ "Part of the old-style Unicode API, please migrate to using :c:func:" +#~ "`PyUnicode_AsUCS4`, :c:func:`PyUnicode_AsWideChar`, :c:func:" +#~ "`PyUnicode_ReadChar` or similar new APIs." +#~ msgstr "" +#~ "Parte del estilo antiguo de la API Unicode, por favor migrar para usar :c:" +#~ "func:`PyUnicode_AsUCS4`, :c:func:`PyUnicode_AsWideChar`, :c:func:" +#~ "`PyUnicode_ReadChar` o APIs nuevas similares." + +#~ msgid "" +#~ "Like :c:func:`PyUnicode_AsUnicode`, but also saves the :c:func:" +#~ "`Py_UNICODE` array length (excluding the extra null terminator) in " +#~ "*size*. Note that the resulting :c:expr:`Py_UNICODE*` string may contain " +#~ "embedded null code points, which would cause the string to be truncated " +#~ "when used in most C functions." +#~ msgstr "" +#~ "Como :c:func:`PyUnicode_AsUnicode`, pero también guarda la longitud del " +#~ "arreglo :c:func:`Py_UNICODE` (excluyendo el terminador nulo adicional) en " +#~ "*size*. Tenga en cuenta que la cadena de caracteres resultante :c:type:" +#~ "`Py_UNICODE*` puede contener puntos de código nulo incrustados, lo que " +#~ "provocaría que la cadena se truncara cuando se usara en la mayoría de las " +#~ "funciones de C." + +#~ msgid "" +#~ "Return the size of the deprecated :c:type:`Py_UNICODE` representation, in " +#~ "code units (this includes surrogate pairs as 2 units)." +#~ msgstr "" +#~ "Retorna el tamaño de la representación en desuso :c:type:`Py_UNICODE`, en " +#~ "unidades de código (esto incluye pares sustitutos como 2 unidades)." + +#~ msgid "" +#~ "Use :c:func:`PyUnicode_DecodeFSDefaultAndSize` to decode a string from :c:" +#~ "data:`Py_FileSystemDefaultEncoding` (the locale encoding read at Python " +#~ "startup)." +#~ msgstr "" +#~ "Utilice :c:func:`PyUnicode_DecodeFSDefaultAndSize` para decodificar una " +#~ "cadena de :c:data:`Py_FileSystemDefaultEncoding` (la codificación de la " +#~ "configuración regional leída al iniciar Python)." + +#~ msgid "" +#~ "Use :c:func:`PyUnicode_EncodeFSDefault` to encode a string to :c:data:" +#~ "`Py_FileSystemDefaultEncoding` (the locale encoding read at Python " +#~ "startup)." +#~ msgstr "" +#~ "Utilice :c:func:`PyUnicode_EncodeFSDefault` para codificar una cadena de " +#~ "caracteres en :c:data:`Py_FileSystemDefaultEncoding` (la codificación de " +#~ "la configuración regional leída al iniciar Python)." + +#~ msgid "" +#~ "To encode and decode file names and other environment strings, :c:data:" +#~ "`Py_FileSystemDefaultEncoding` should be used as the encoding, and :c:" +#~ "data:`Py_FileSystemDefaultEncodeErrors` should be used as the error " +#~ "handler (:pep:`383` and :pep:`529`). To encode file names to :class:" +#~ "`bytes` during argument parsing, the ``\"O&\"`` converter should be used, " +#~ "passing :c:func:`PyUnicode_FSConverter` as the conversion function:" +#~ msgstr "" +#~ "Para codificar y decodificar nombres de archivo y otras cadenas de " +#~ "caracteres de entorno, :c:data:`Py_FileSystemDefaultEncoding` debe usarse " +#~ "como codificación, y :c:data:`Py_FileSystemDefaultEncodeErrors` debe " +#~ "usarse como controlador de errores (:pep:`383` y :pep:`529`). Para " +#~ "codificar nombres de archivo a :class:`bytes` durante el análisis de " +#~ "argumentos, se debe usar el convertidor ``\"O&\"``, pasando :c:func:" +#~ "`PyUnicode_FSConverter` como la función de conversión:" + +#~ msgid "" +#~ "If :c:data:`Py_FileSystemDefaultEncoding` is not set, fall back to the " +#~ "locale encoding." +#~ msgstr "" +#~ "Si :c:data:`Py_FileSystemDefaultEncoding` no está configurado, recurre a " +#~ "la codificación de configuración regional." + +#~ msgid "Use :c:data:`Py_FileSystemDefaultEncodeErrors` error handler." +#~ msgstr "" +#~ "Utilice el controlador de errores :c:data:" +#~ "`Py_FileSystemDefaultEncodeErrors`." diff --git a/c-api/veryhigh.po b/c-api/veryhigh.po index 889b1ec363..971b9481f3 100644 --- a/c-api/veryhigh.po +++ b/c-api/veryhigh.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-12-09 10:55+0800\n" "Last-Translator: Rodrigo Tobar \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/veryhigh.rst:8 msgid "The Very High Level Layer" @@ -36,10 +36,11 @@ msgstr "" "manera detallada con el intérprete." #: ../Doc/c-api/veryhigh.rst:14 +#, fuzzy msgid "" "Several of these functions accept a start symbol from the grammar as a " -"parameter. The available start symbols are :const:`Py_eval_input`, :const:" -"`Py_file_input`, and :const:`Py_single_input`. These are described " +"parameter. The available start symbols are :c:data:`Py_eval_input`, :c:data:" +"`Py_file_input`, and :c:data:`Py_single_input`. These are described " "following the functions which accept them as parameters." msgstr "" "Varias de estas funciones aceptan un símbolo de inicio de la gramática como " @@ -51,7 +52,7 @@ msgstr "" #, fuzzy msgid "" "Note also that several of these functions take :c:expr:`FILE*` parameters. " -"One particular issue which needs to be handled carefully is that the :c:expr:" +"One particular issue which needs to be handled carefully is that the :c:type:" "`FILE` structure for different C libraries can be different and " "incompatible. Under Windows (at least), it is possible for dynamically " "linked extensions to actually use different libraries, so care should be " @@ -92,10 +93,11 @@ msgstr "" "la lista de parámetros no representa una línea de comando Python válida." #: ../Doc/c-api/veryhigh.rst:40 +#, fuzzy msgid "" "Note that if an otherwise unhandled :exc:`SystemExit` is raised, this " -"function will not return ``1``, but exit the process, as long as " -"``Py_InspectFlag`` is not set." +"function will not return ``1``, but exit the process, as long as :c:member:" +"`PyConfig.inspect` is zero." msgstr "" "Tenga en cuenta que si se lanza un :exc:`SystemExit` no manejado, esta " "función no retornará ``1``, pero saldrá del proceso, siempre que " @@ -175,10 +177,11 @@ msgstr "" "excepción. Para el significado de *flags*, ver abajo." #: ../Doc/c-api/veryhigh.rst:96 +#, fuzzy msgid "" "Note that if an otherwise unhandled :exc:`SystemExit` is raised, this " -"function will not return ``-1``, but exit the process, as long as " -"``Py_InspectFlag`` is not set." +"function will not return ``-1``, but exit the process, as long as :c:member:" +"`PyConfig.inspect` is zero." msgstr "" "Tenga en cuenta que si no se maneja de otro modo :exc:`SystemExit`, esta " "función no retornará ``-1``, pero saldrá del proceso, siempre que " @@ -298,7 +301,13 @@ msgstr "" "eventos, como se hace en :file:`Modules/_tkinter.c` en el código fuente de " "Python." -#: ../Doc/c-api/veryhigh.rst:173 +#: ../Doc/c-api/veryhigh.rst:170 ../Doc/c-api/veryhigh.rst:194 +msgid "" +"This function is only called from the :ref:`main interpreter `." +msgstr "" + +#: ../Doc/c-api/veryhigh.rst:177 msgid "" "Can be set to point to a function with the prototype ``char *func(FILE " "*stdin, FILE *stdout, char *prompt)``, overriding the default function used " @@ -317,7 +326,7 @@ msgstr "" "resultante. Por ejemplo, el módulo :mod:`readline` establece este enlace " "para proporcionar funciones de edición de línea y finalización de tabulación." -#: ../Doc/c-api/veryhigh.rst:182 +#: ../Doc/c-api/veryhigh.rst:186 msgid "" "The result must be a string allocated by :c:func:`PyMem_RawMalloc` or :c:" "func:`PyMem_RawRealloc`, or ``NULL`` if an error occurred." @@ -326,7 +335,7 @@ msgstr "" "`PyMem_RawMalloc` o :c:func:`PyMem_RawRealloc`, o ``NULL`` si ocurre un " "error." -#: ../Doc/c-api/veryhigh.rst:185 +#: ../Doc/c-api/veryhigh.rst:189 msgid "" "The result must be allocated by :c:func:`PyMem_RawMalloc` or :c:func:" "`PyMem_RawRealloc`, instead of being allocated by :c:func:`PyMem_Malloc` or :" @@ -336,7 +345,7 @@ msgstr "" "`PyMem_RawRealloc`, en vez de ser alocado por :c:func:`PyMem_Malloc` o :c:" "func:`PyMem_Realloc`." -#: ../Doc/c-api/veryhigh.rst:192 +#: ../Doc/c-api/veryhigh.rst:200 msgid "" "This is a simplified interface to :c:func:`PyRun_StringFlags` below, leaving " "*flags* set to ``NULL``." @@ -344,7 +353,7 @@ msgstr "" "Esta es una interfaz simplificada para :c:func:`PyRun_StringFlags` más " "abajo, dejando *flags* establecido a ``NULL``." -#: ../Doc/c-api/veryhigh.rst:198 +#: ../Doc/c-api/veryhigh.rst:206 msgid "" "Execute Python source code from *str* in the context specified by the " "objects *globals* and *locals* with the compiler flags specified by " @@ -359,7 +368,7 @@ msgstr "" "*start* especifica el token de inicio que se debe usar para analizar el " "código fuente." -#: ../Doc/c-api/veryhigh.rst:204 +#: ../Doc/c-api/veryhigh.rst:212 msgid "" "Returns the result of executing the code as a Python object, or ``NULL`` if " "an exception was raised." @@ -367,7 +376,7 @@ msgstr "" "Retorna el resultado de ejecutar el código como un objeto Python, o " "``NULL``' si se produjo una excepción." -#: ../Doc/c-api/veryhigh.rst:210 +#: ../Doc/c-api/veryhigh.rst:218 msgid "" "This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving " "*closeit* set to ``0`` and *flags* set to ``NULL``." @@ -376,7 +385,7 @@ msgstr "" "abajo, dejando *closeit* establecido a ``0`` y *flags* establecido a " "``NULL``." -#: ../Doc/c-api/veryhigh.rst:216 +#: ../Doc/c-api/veryhigh.rst:224 msgid "" "This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving " "*flags* set to ``NULL``." @@ -384,7 +393,7 @@ msgstr "" "Esta es una interfaz simplificada para :c:func:`PyRun_FileExFlags` más " "abajo, dejando *flags* establecido a ``NULL``." -#: ../Doc/c-api/veryhigh.rst:222 +#: ../Doc/c-api/veryhigh.rst:230 msgid "" "This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving " "*closeit* set to ``0``." @@ -392,7 +401,7 @@ msgstr "" "Esta es una interfaz simplificada para :c:func:`PyRun_FileExFlags` más " "abajo, dejando *closeit* establecido a ``0``." -#: ../Doc/c-api/veryhigh.rst:228 +#: ../Doc/c-api/veryhigh.rst:236 msgid "" "Similar to :c:func:`PyRun_StringFlags`, but the Python source code is read " "from *fp* instead of an in-memory string. *filename* should be the name of " @@ -406,7 +415,7 @@ msgstr "" "encoding and error handler`. Si *closeit* es verdadero, el fichero se cierra " "antes de que :c:func:`PyRun_FileExFlags` retorne." -#: ../Doc/c-api/veryhigh.rst:237 +#: ../Doc/c-api/veryhigh.rst:245 msgid "" "This is a simplified interface to :c:func:`Py_CompileStringFlags` below, " "leaving *flags* set to ``NULL``." @@ -414,7 +423,7 @@ msgstr "" "Esta es una interfaz simplificada para :c:func:`Py_CompileStringFlags` más " "abajo, dejando *flags* establecido a ``NULL``." -#: ../Doc/c-api/veryhigh.rst:243 +#: ../Doc/c-api/veryhigh.rst:251 msgid "" "This is a simplified interface to :c:func:`Py_CompileStringExFlags` below, " "with *optimize* set to ``-1``." @@ -422,12 +431,13 @@ msgstr "" "Esta es una interfaz simplificada para :c:func:`Py_CompileStringExFlags` más " "abajo, con *optimize* establecido a ``-1``." -#: ../Doc/c-api/veryhigh.rst:249 +#: ../Doc/c-api/veryhigh.rst:257 +#, fuzzy msgid "" "Parse and compile the Python source code in *str*, returning the resulting " "code object. The start token is given by *start*; this can be used to " -"constrain the code which can be compiled and should be :const:" -"`Py_eval_input`, :const:`Py_file_input`, or :const:`Py_single_input`. The " +"constrain the code which can be compiled and should be :c:data:" +"`Py_eval_input`, :c:data:`Py_file_input`, or :c:data:`Py_single_input`. The " "filename specified by *filename* is used to construct the code object and " "may appear in tracebacks or :exc:`SyntaxError` exception messages. This " "returns ``NULL`` if the code cannot be parsed or compiled." @@ -441,7 +451,7 @@ msgstr "" "mensajes de excepción :exc:`SyntaxError`. Esto retorna ``NULL``' si el " "código no se puede analizar gramaticalmente o compilar." -#: ../Doc/c-api/veryhigh.rst:257 +#: ../Doc/c-api/veryhigh.rst:265 msgid "" "The integer *optimize* specifies the optimization level of the compiler; a " "value of ``-1`` selects the optimization level of the interpreter as given " @@ -456,7 +466,7 @@ msgstr "" "(los *asserts* se eliminan, ``__debug__`` es falso) o ``2`` (los docstrings " "también se eliminan) )" -#: ../Doc/c-api/veryhigh.rst:268 +#: ../Doc/c-api/veryhigh.rst:276 msgid "" "Like :c:func:`Py_CompileStringObject`, but *filename* is a byte string " "decoded from the :term:`filesystem encoding and error handler`." @@ -465,7 +475,7 @@ msgstr "" "bytes decodificada a partir del :term:`manejador de codificación y errores " "del sistema de archivos `." -#: ../Doc/c-api/veryhigh.rst:275 +#: ../Doc/c-api/veryhigh.rst:283 msgid "" "This is a simplified interface to :c:func:`PyEval_EvalCodeEx`, with just the " "code object, and global and local variables. The other arguments are set to " @@ -475,7 +485,7 @@ msgstr "" "el objeto de código y las variables globales y locales. Los otros argumentos " "están establecidos en ``NULL``." -#: ../Doc/c-api/veryhigh.rst:282 +#: ../Doc/c-api/veryhigh.rst:290 msgid "" "Evaluate a precompiled code object, given a particular environment for its " "evaluation. This environment consists of a dictionary of global variables, " @@ -490,7 +500,7 @@ msgstr "" "argumentos :ref:`keyword-only ` y una tupla de " "cierre de células." -#: ../Doc/c-api/veryhigh.rst:291 +#: ../Doc/c-api/veryhigh.rst:299 msgid "" "Evaluate an execution frame. This is a simplified interface to :c:func:" "`PyEval_EvalFrameEx`, for backward compatibility." @@ -498,7 +508,7 @@ msgstr "" "Evaluar un marco de ejecución. Esta es una interfaz simplificada para :c:" "func:`PyEval_EvalFrameEx`, para compatibilidad con versiones anteriores." -#: ../Doc/c-api/veryhigh.rst:297 +#: ../Doc/c-api/veryhigh.rst:305 msgid "" "This is the main, unvarnished function of Python interpretation. The code " "object associated with the execution frame *f* is executed, interpreting " @@ -514,7 +524,7 @@ msgstr "" "general; si es verdadero, entonces se lanza una excepción de inmediato; esto " "se usa para los métodos :meth:`~generator.throw` de objetos generadores." -#: ../Doc/c-api/veryhigh.rst:304 +#: ../Doc/c-api/veryhigh.rst:312 msgid "" "This function now includes a debug assertion to help ensure that it does not " "silently discard an active exception." @@ -522,7 +532,7 @@ msgstr "" "Esta función ahora incluye una afirmación de depuración para ayudar a " "garantizar que no descarte silenciosamente una excepción activa." -#: ../Doc/c-api/veryhigh.rst:311 +#: ../Doc/c-api/veryhigh.rst:319 msgid "" "This function changes the flags of the current evaluation frame, and returns " "true on success, false on failure." @@ -530,7 +540,7 @@ msgstr "" "Esta función cambia los flags del marco de evaluación actual, y retorna " "verdad (*true*) en caso de éxito, falso (*false*) en caso de fallo." -#: ../Doc/c-api/veryhigh.rst:319 +#: ../Doc/c-api/veryhigh.rst:327 msgid "" "The start symbol from the Python grammar for isolated expressions; for use " "with :c:func:`Py_CompileString`." @@ -538,7 +548,7 @@ msgstr "" "El símbolo de inicio de la gramática de Python para expresiones aisladas; " "para usar con :c:func:`Py_CompileString`." -#: ../Doc/c-api/veryhigh.rst:327 +#: ../Doc/c-api/veryhigh.rst:335 msgid "" "The start symbol from the Python grammar for sequences of statements as read " "from a file or other source; for use with :c:func:`Py_CompileString`. This " @@ -549,7 +559,7 @@ msgstr "" "`Py_CompileString`. Este es el símbolo usado cuando se compile un código " "fuente en Python arbitrariamente largo." -#: ../Doc/c-api/veryhigh.rst:336 +#: ../Doc/c-api/veryhigh.rst:344 msgid "" "The start symbol from the Python grammar for a single statement; for use " "with :c:func:`Py_CompileString`. This is the symbol used for the interactive " @@ -559,7 +569,7 @@ msgstr "" "para usar con :c:func:`Py_CompileString`. Este es el símbolo usado para el " "bucle interactivo del intérprete." -#: ../Doc/c-api/veryhigh.rst:343 +#: ../Doc/c-api/veryhigh.rst:351 msgid "" "This is the structure used to hold compiler flags. In cases where code is " "only being compiled, it is passed as ``int flags``, and in cases where code " @@ -572,21 +582,22 @@ msgstr "" "*flags``. En este caso, ``from __future__ import`` puede modificar los " "*flags*." -#: ../Doc/c-api/veryhigh.rst:348 +#: ../Doc/c-api/veryhigh.rst:356 +#, fuzzy msgid "" -"Whenever ``PyCompilerFlags *flags`` is ``NULL``, :attr:`cf_flags` is treated " -"as equal to ``0``, and any modification due to ``from __future__ import`` is " -"discarded." +"Whenever ``PyCompilerFlags *flags`` is ``NULL``, :c:member:`~PyCompilerFlags." +"cf_flags` is treated as equal to ``0``, and any modification due to ``from " +"__future__ import`` is discarded." msgstr "" "Siempre y cuando ``PyCompilerFlags *flags`` es ``NULL``, :attr:`cf_flags` es " "tratado como igual a ``0``, y cualquier modificación debido a ``from " "__future__ import`` es descartada." -#: ../Doc/c-api/veryhigh.rst:354 +#: ../Doc/c-api/veryhigh.rst:362 msgid "Compiler flags." msgstr "Flags del compilador." -#: ../Doc/c-api/veryhigh.rst:358 +#: ../Doc/c-api/veryhigh.rst:366 msgid "" "*cf_feature_version* is the minor Python version. It should be initialized " "to ``PY_MINOR_VERSION``." @@ -594,19 +605,20 @@ msgstr "" "*cf_feature_version* es la versión menor de Python. Debe ser inicializado a " "``PY_MINOR_VERSION``." -#: ../Doc/c-api/veryhigh.rst:361 +#: ../Doc/c-api/veryhigh.rst:369 +#, fuzzy msgid "" "The field is ignored by default, it is used if and only if ``PyCF_ONLY_AST`` " -"flag is set in *cf_flags*." +"flag is set in :c:member:`~PyCompilerFlags.cf_flags`." msgstr "" "El campo es ignorado por defecto, es usado si y solo si el flag " "``PyCF_ONLY_AST`` está configurado en *cf_flags*." -#: ../Doc/c-api/veryhigh.rst:364 +#: ../Doc/c-api/veryhigh.rst:372 msgid "Added *cf_feature_version* field." msgstr "Agregado el campo *cf_feature_version*." -#: ../Doc/c-api/veryhigh.rst:370 +#: ../Doc/c-api/veryhigh.rst:378 msgid "" "This bit can be set in *flags* to cause division operator ``/`` to be " "interpreted as \"true division\" according to :pep:`238`." @@ -614,3 +626,8 @@ msgstr "" "Este bit puede ser configurado en *flags* para causar que un operador de " "división ``/`` sea interpretado como una \"división real\" de acuerdo a :pep:" "`238`." + +#: ../Doc/c-api/veryhigh.rst:325 ../Doc/c-api/veryhigh.rst:333 +#: ../Doc/c-api/veryhigh.rst:342 +msgid "Py_CompileString()" +msgstr "" diff --git a/c-api/weakref.po b/c-api/weakref.po index 7b5728a3cf..38a9129f7a 100644 --- a/c-api/weakref.po +++ b/c-api/weakref.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-10-18 19:38+0200\n" "Last-Translator: Diego Cristóbal Herreros \n" "Language: es\n" @@ -20,7 +20,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/c-api/weakref.rst:6 msgid "Weak Reference Objects" @@ -104,9 +104,10 @@ msgstr "" "``None``, o ``NULL``, esto retornará ``NULL`` y causará un :exc:`TypeError`." #: ../Doc/c-api/weakref.rst:56 +#, fuzzy msgid "" "Return the referenced object from a weak reference, *ref*. If the referent " -"is no longer live, returns :const:`Py_None`." +"is no longer live, returns ``Py_None``." msgstr "" "Retorna el objeto referenciado desde una referencia débil, *ref*. Si el " "referente no está vivo, retornará :const:`Py_None`." @@ -129,3 +130,16 @@ msgid "Similar to :c:func:`PyWeakref_GetObject`, but does no error checking." msgstr "" "Similar a :c:func:`PyWeakref_GetObject`, pero implementado como un macro que " "no verifica errores." + +#: ../Doc/c-api/weakref.rst:74 +msgid "" +"This function is called by the :c:member:`~PyTypeObject.tp_dealloc` handler " +"to clear weak references." +msgstr "" + +#: ../Doc/c-api/weakref.rst:77 +msgid "" +"This iterates through the weak references for *object* and calls callbacks " +"for those references which have one. It returns when all callbacks have been " +"attempted." +msgstr "" diff --git a/copyright.po b/copyright.po index b3568568a3..91443fc2c0 100644 --- a/copyright.po +++ b/copyright.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-04 10:56+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/copyright.rst:3 msgid "Copyright" @@ -31,7 +31,7 @@ msgstr "Python y esta documentación es:" #: ../Doc/copyright.rst:7 #, fuzzy -msgid "Copyright © 2001-2022 Python Software Foundation. All rights reserved." +msgid "Copyright © 2001-2023 Python Software Foundation. All rights reserved." msgstr "" "Derechos de autor © 2001-2021 Python Software Foundation. Todos los derechos " "reservados." diff --git a/cpython b/cpython index b3cafb60af..0fb18b02c8 160000 --- a/cpython +++ b/cpython @@ -1 +1 @@ -Subproject commit b3cafb60afeb2300002af9982d43703435b8302d +Subproject commit 0fb18b02c8ad56299d6a2910be0bab8ad601ef24 diff --git a/dictionaries/c-api_buffer.txt b/dictionaries/c-api_buffer.txt index ccc4d956e5..f87cd28b61 100644 --- a/dictionaries/c-api_buffer.txt +++ b/dictionaries/c-api_buffer.txt @@ -1 +1,2 @@ -bidimensionales \ No newline at end of file +bidimensionales +contig diff --git a/dictionaries/c-api_unicode.txt b/dictionaries/c-api_unicode.txt new file mode 100644 index 0000000000..cbab1f6b63 --- /dev/null +++ b/dictionaries/c-api_unicode.txt @@ -0,0 +1 @@ +void diff --git a/dictionaries/library_itertools.txt b/dictionaries/library_itertools.txt index 675e4fd424..45f967b68f 100644 --- a/dictionaries/library_itertools.txt +++ b/dictionaries/library_itertools.txt @@ -3,6 +3,7 @@ elem it itn key +plast pred seq step diff --git a/dictionaries/library_logging.txt b/dictionaries/library_logging.txt index 5e27f38927..14514e00bd 100644 --- a/dictionaries/library_logging.txt +++ b/dictionaries/library_logging.txt @@ -4,3 +4,4 @@ recalcule uuu clientip xy +threadName diff --git a/distributing/index.po b/distributing/index.po index 0f14625385..a3e13e32a0 100644 --- a/distributing/index.po +++ b/distributing/index.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-16 21:42+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-11-12 10:29+0800\n" "Last-Translator: Rodrigo Tobar \n" "Language: es\n" @@ -19,337 +19,308 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.9.1\n" -"X-Generator: Poedit 3.0\n" +"Generated-By: Babel 2.13.0\n" -#: ../Doc/distributing/index.rst:5 +#: ../Doc/distributing/index.rst:10 msgid "Distributing Python Modules" msgstr "Distribuir módulos de Python" -#: ../Doc/distributing/index.rst -msgid "Email" -msgstr "Email" - -#: ../Doc/distributing/index.rst:7 -msgid "distutils-sig@python.org" -msgstr "distutils-sig@python.org" - -#: ../Doc/distributing/index.rst:10 -msgid "" -"As a popular open source development project, Python has an active " -"supporting community of contributors and users that also make their software " -"available for other Python developers to use under open source license terms." -msgstr "" -"Como un proyecto de desarrollo de código abierto popular, Python tiene una " -"comunidad activa de colaboradores y usuarios que también hacen que su " -"software esté disponible para que otros desarrolladores de Python los usen " -"bajo términos de licencia de código abierto." - #: ../Doc/distributing/index.rst:14 msgid "" -"This allows Python users to share and collaborate effectively, benefiting " -"from the solutions others have already created to common (and sometimes even " -"rare!) problems, as well as potentially contributing their own solutions to " -"the common pool." -msgstr "" -"Esto permite a los usuarios de Python compartir y colaborar eficazmente, " -"beneficiándose de las soluciones que otros ya han creado a problemas comunes " -"(¡y a veces incluso raros!), así como potencialmente contribuyendo con sus " -"propias soluciones al grupo común." - -#: ../Doc/distributing/index.rst:19 -msgid "" -"This guide covers the distribution part of the process. For a guide to " -"installing other Python projects, refer to the :ref:`installation guide " -"`." -msgstr "" -"Esta guía cubre la parte de distribución del proceso. Para obtener una guía " -"para instalar otros proyectos de Python, consulte :ref:`installation guide " -"`." - -#: ../Doc/distributing/index.rst:25 -msgid "" -"For corporate and other institutional users, be aware that many " -"organisations have their own policies around using and contributing to open " -"source software. Please take such policies into account when making use of " -"the distribution and installation tools provided with Python." -msgstr "" -"Para usuarios corporativos y otros usuarios institucionales, tenga en cuenta " -"que muchas organizaciones tienen sus propias políticas en torno al uso y la " -"contribución al software de código abierto. Por favor tenga en cuenta estas " -"políticas al hacer uso de las herramientas de distribución e instalación " -"proporcionadas con Python." - -#: ../Doc/distributing/index.rst:32 -msgid "Key terms" -msgstr "Términos clave" - -#: ../Doc/distributing/index.rst:34 -msgid "" -"the `Python Package Index `__ is a public repository of " -"open source licensed packages made available for use by other Python users" -msgstr "" -"el `Python Package Index `__ es un repositorio público de " -"paquetes con licencia de código abierto puestos a disposición para su uso " -"por otros usuarios de Python" - -#: ../Doc/distributing/index.rst:37 -msgid "" -"the `Python Packaging Authority `__ are the group of " -"developers and documentation authors responsible for the maintenance and " -"evolution of the standard packaging tools and the associated metadata and " -"file format standards. They maintain a variety of tools, documentation and " -"issue trackers on both `GitHub `__ and `Bitbucket " -"`__." -msgstr "" -"la `Python Packaging Authority `__ es el grupo de " -"desarrolladores y autores de documentación responsables del mantenimiento y " -"la evolución de las herramientas de empaquetado estándar y los metadatos " -"asociados y los estándares de formato de archivo. Ellos mantienen una " -"variedad de herramientas, documentación y rastreadores de problemas tanto en " -"`GitHub `__ como `Bitbucket `__." - -#: ../Doc/distributing/index.rst:44 -msgid "" -":mod:`distutils` is the original build and distribution system first added " -"to the Python standard library in 1998. While direct use of :mod:`distutils` " -"is being phased out, it still laid the foundation for the current packaging " -"and distribution infrastructure, and it not only remains part of the " -"standard library, but its name lives on in other ways (such as the name of " -"the mailing list used to coordinate Python packaging standards development)." -msgstr "" -":mod:`distutils` es el sistema de distribución y compilación original que se " -"agregó por primera vez a la biblioteca estándar de Python en 1998. Si bien " -"el uso directo de :mod:`distutils` se está eliminando, aún es la base para " -"la infraestructura de empaquetado y distribución actual, y no solo sigue " -"siendo parte de la biblioteca estándar, sino que su nombre vive de otras " -"formas (como el nombre de la lista de correo utilizada para coordinar el " -"desarrollo de estándares de empaquetado de Python)." - -#: ../Doc/distributing/index.rst:51 -msgid "" -"`setuptools`_ is a (largely) drop-in replacement for :mod:`distutils` first " -"published in 2004. Its most notable addition over the unmodified :mod:" -"`distutils` tools was the ability to declare dependencies on other packages. " -"It is currently recommended as a more regularly updated alternative to :mod:" -"`distutils` that offers consistent support for more recent packaging " -"standards across a wide range of Python versions." -msgstr "" -"`setuptools`_ es un reemplazo (en gran parte) directo de :mod:`distutils` " -"publicado por primera vez en 2004. Su adición más notable sobre las " -"herramientas sin modificar :mod:`distutils` fue la capacidad de declarar " -"dependencias en otros paquetes. Actualmente se recomienda como una " -"alternativa actualizada con más regularidad a :mod:`distutils` que ofrece " -"soporte consistente para estándares de empaquetado más recientes en una " -"amplia gama de versiones de Python." - -#: ../Doc/distributing/index.rst:57 -msgid "" -"`wheel`_ (in this context) is a project that adds the ``bdist_wheel`` " -"command to :mod:`distutils`/`setuptools`_. This produces a cross platform " -"binary packaging format (called \"wheels\" or \"wheel files\" and defined " -"in :pep:`427`) that allows Python libraries, even those including binary " -"extensions, to be installed on a system without needing to be built locally." -msgstr "" -"`wheel`_ (en este contexto) es un proyecto que agrega el comando " -"``bdist_wheel`` a :mod:`distutils`/`setuptools`_. Esto produce un formato de " -"empaquetado binario multiplataforma (llamado \"wheels\" o \"wheel files\" y " -"definido en :pep:`427`) que permite que las bibliotecas de Python, incluso " -"aquellas que incluyen extensiones binarias, se instalen en un sistema sin " -"necesidad de ser compiladas en la zona." - -#: ../Doc/distributing/index.rst:68 -msgid "Open source licensing and collaboration" -msgstr "Licencias de código abierto y colaboración" - -#: ../Doc/distributing/index.rst:70 -msgid "" -"In most parts of the world, software is automatically covered by copyright. " -"This means that other developers require explicit permission to copy, use, " -"modify and redistribute the software." -msgstr "" -"En la mayor parte del mundo, el software está automáticamente protegido por " -"derechos de autor. Esto significa que otros desarrolladores requieren " -"permiso explícito para copiar, usar, modificar y redistribuir el software." - -#: ../Doc/distributing/index.rst:74 -msgid "" -"Open source licensing is a way of explicitly granting such permission in a " -"relatively consistent way, allowing developers to share and collaborate " -"efficiently by making common solutions to various problems freely available. " -"This leaves many developers free to spend more time focusing on the problems " -"that are relatively unique to their specific situation." -msgstr "" -"La concesión de licencias de código abierto es una forma de otorgar " -"explícitamente dicho permiso de una manera relativamente consistente, lo que " -"permite a los desarrolladores compartir y colaborar de manera eficiente al " -"hacer que las soluciones comunes a varios problemas estén disponibles de " -"forma gratuita. Esto deja a muchos desarrolladores libres para dedicar más " -"tiempo a concentrarse en los problemas que son relativamente únicos para su " -"situación específica." - -#: ../Doc/distributing/index.rst:80 -msgid "" -"The distribution tools provided with Python are designed to make it " -"reasonably straightforward for developers to make their own contributions " -"back to that common pool of software if they choose to do so." -msgstr "" -"Las herramientas de distribución proporcionadas con Python están diseñadas " -"para que sea razonablemente sencillo para los desarrolladores hacer sus " -"propias contribuciones a ese grupo común de software si así lo desean." - -#: ../Doc/distributing/index.rst:84 -msgid "" -"The same distribution tools can also be used to distribute software within " -"an organisation, regardless of whether that software is published as open " -"source software or not." -msgstr "" -"Las mismas herramientas de distribución también se pueden utilizar para " -"distribuir software dentro de una organización, independientemente de si ese " -"software se publica como software de código abierto o no." - -#: ../Doc/distributing/index.rst:90 -msgid "Installing the tools" -msgstr "Instalando las herramientas" - -#: ../Doc/distributing/index.rst:92 -msgid "" -"The standard library does not include build tools that support modern Python " -"packaging standards, as the core development team has found that it is " -"important to have standard tools that work consistently, even on older " -"versions of Python." +"Information and guidance on distributing Python modules and packages has " +"been moved to the `Python Packaging User Guide`_, and the tutorial on " +"`packaging Python projects`_." msgstr "" -"La biblioteca estándar no incluye herramientas de compilación que sean " -"compatibles con los estándares de empaquetado de Python modernos, ya que el " -"equipo de desarrollo central ha descubierto que es importante tener " -"herramientas estándar que funcionen de manera consistente, incluso en " -"versiones anteriores de Python." -#: ../Doc/distributing/index.rst:97 -msgid "" -"The currently recommended build and distribution tools can be installed by " -"invoking the ``pip`` module at the command line::" -msgstr "" -"Las herramientas de construcción y distribución recomendadas actualmente se " -"pueden instalar invocando el módulo ``pip`` en la línea de comando::" - -#: ../Doc/distributing/index.rst:104 -msgid "" -"For POSIX users (including macOS and Linux users), these instructions assume " -"the use of a :term:`virtual environment`." -msgstr "" -"Para los usuarios POSIX (incluidos los usuarios de macOS y Linux), estas " -"instrucciones asumen el uso de un :term:`virtual environment`." - -#: ../Doc/distributing/index.rst:107 -msgid "" -"For Windows users, these instructions assume that the option to adjust the " -"system PATH environment variable was selected when installing Python." -msgstr "" -"Para los usuarios de Windows, estas instrucciones asumen que se seleccionó " -"la opción para ajustar la variable de entorno PATH del sistema al instalar " -"Python." - -#: ../Doc/distributing/index.rst:111 -msgid "" -"The Python Packaging User Guide includes more details on the `currently " -"recommended tools`_." -msgstr "" -"La \"Python Packaging User Guide\" incluye más detalles sobre las `currently " -"recommended tools`_." - -#: ../Doc/distributing/index.rst:123 -msgid "Reading the Python Packaging User Guide" -msgstr "Leyendo la \"Python Packaging User Guide\"" - -#: ../Doc/distributing/index.rst:125 -msgid "" -"The Python Packaging User Guide covers the various key steps and elements " -"involved in creating and publishing a project:" -msgstr "" -"La \"Python Packaging User Guide\" cubre los diversos pasos y elementos " -"clave involucrados en la creación y publicación de un proyecto:" - -#: ../Doc/distributing/index.rst:128 -msgid "`Project structure`_" -msgstr "`Estructura del proyecto`_" - -#: ../Doc/distributing/index.rst:129 -msgid "`Building and packaging the project`_" -msgstr "`Compilando y empaquetando el proyecto`_" - -#: ../Doc/distributing/index.rst:130 -msgid "`Uploading the project to the Python Package Index`_" -msgstr "`Subiendo el proyecto al Python Package Index`_" - -#: ../Doc/distributing/index.rst:131 -msgid "`The .pypirc file`_" -msgstr "`El archivo .pypirc`_" - -#: ../Doc/distributing/index.rst:144 -msgid "How do I...?" -msgstr "Cómo puedo...?" - -#: ../Doc/distributing/index.rst:146 -msgid "These are quick answers or links for some common tasks." -msgstr "Estas son respuestas rápidas o enlaces para algunas tareas comunes." - -#: ../Doc/distributing/index.rst:149 -msgid "... choose a name for my project?" -msgstr "... elegir un nombre para mi proyecto?" - -#: ../Doc/distributing/index.rst:151 -msgid "This isn't an easy topic, but here are a few tips:" -msgstr "Este no es un tema fácil, pero aquí hay algunos consejos:" - -#: ../Doc/distributing/index.rst:153 -msgid "check the Python Package Index to see if the name is already in use" -msgstr "" -"verifique el \"Python Package Index\" para ver si el nombre ya está en uso" - -#: ../Doc/distributing/index.rst:154 -msgid "" -"check popular hosting sites like GitHub, Bitbucket, etc to see if there is " -"already a project with that name" -msgstr "" -"verifique sitios de alojamiento populares como GitHub, Bitbucket, etc. para " -"ver si ya existe un proyecto con ese nombre" - -#: ../Doc/distributing/index.rst:156 -msgid "check what comes up in a web search for the name you're considering" -msgstr "" -"verifique lo que aparece en una búsqueda web para el nombre que está " -"considerando" - -#: ../Doc/distributing/index.rst:157 -msgid "" -"avoid particularly common words, especially ones with multiple meanings, as " -"they can make it difficult for users to find your software when searching " -"for it" -msgstr "" -"evite palabras particularmente comunes, especialmente aquellas con múltiples " -"significados, ya que pueden dificultar que los usuarios encuentren su " -"software cuando lo busquen" - -#: ../Doc/distributing/index.rst:163 -msgid "... create and distribute binary extensions?" -msgstr "... crear y distribuir extensiones binarias?" - -#: ../Doc/distributing/index.rst:165 -msgid "" -"This is actually quite a complex topic, with a variety of alternatives " -"available depending on exactly what you're aiming to achieve. See the Python " -"Packaging User Guide for more information and recommendations." -msgstr "" -"Este es un tema bastante complejo, con una variedad de alternativas " -"disponibles según exactamente lo que pretenda lograr. Consulte la \"Python " -"Packaging User Guide\" para obtener más información y recomendaciones." - -#: ../Doc/distributing/index.rst:171 -msgid "" -"`Python Packaging User Guide: Binary Extensions `__" -msgstr "" -"`Python Packaging User Guide: Binary Extensions `__" +#~ msgid "Email" +#~ msgstr "Email" + +#~ msgid "distutils-sig@python.org" +#~ msgstr "distutils-sig@python.org" + +#~ msgid "" +#~ "As a popular open source development project, Python has an active " +#~ "supporting community of contributors and users that also make their " +#~ "software available for other Python developers to use under open source " +#~ "license terms." +#~ msgstr "" +#~ "Como un proyecto de desarrollo de código abierto popular, Python tiene " +#~ "una comunidad activa de colaboradores y usuarios que también hacen que su " +#~ "software esté disponible para que otros desarrolladores de Python los " +#~ "usen bajo términos de licencia de código abierto." + +#~ msgid "" +#~ "This allows Python users to share and collaborate effectively, benefiting " +#~ "from the solutions others have already created to common (and sometimes " +#~ "even rare!) problems, as well as potentially contributing their own " +#~ "solutions to the common pool." +#~ msgstr "" +#~ "Esto permite a los usuarios de Python compartir y colaborar eficazmente, " +#~ "beneficiándose de las soluciones que otros ya han creado a problemas " +#~ "comunes (¡y a veces incluso raros!), así como potencialmente " +#~ "contribuyendo con sus propias soluciones al grupo común." + +#~ msgid "" +#~ "This guide covers the distribution part of the process. For a guide to " +#~ "installing other Python projects, refer to the :ref:`installation guide " +#~ "`." +#~ msgstr "" +#~ "Esta guía cubre la parte de distribución del proceso. Para obtener una " +#~ "guía para instalar otros proyectos de Python, consulte :ref:`installation " +#~ "guide `." + +#~ msgid "" +#~ "For corporate and other institutional users, be aware that many " +#~ "organisations have their own policies around using and contributing to " +#~ "open source software. Please take such policies into account when making " +#~ "use of the distribution and installation tools provided with Python." +#~ msgstr "" +#~ "Para usuarios corporativos y otros usuarios institucionales, tenga en " +#~ "cuenta que muchas organizaciones tienen sus propias políticas en torno al " +#~ "uso y la contribución al software de código abierto. Por favor tenga en " +#~ "cuenta estas políticas al hacer uso de las herramientas de distribución e " +#~ "instalación proporcionadas con Python." + +#~ msgid "Key terms" +#~ msgstr "Términos clave" + +#~ msgid "" +#~ "the `Python Package Index `__ is a public repository of " +#~ "open source licensed packages made available for use by other Python users" +#~ msgstr "" +#~ "el `Python Package Index `__ es un repositorio público " +#~ "de paquetes con licencia de código abierto puestos a disposición para su " +#~ "uso por otros usuarios de Python" + +#~ msgid "" +#~ "the `Python Packaging Authority `__ are the group " +#~ "of developers and documentation authors responsible for the maintenance " +#~ "and evolution of the standard packaging tools and the associated metadata " +#~ "and file format standards. They maintain a variety of tools, " +#~ "documentation and issue trackers on both `GitHub `__ and `Bitbucket `__." +#~ msgstr "" +#~ "la `Python Packaging Authority `__ es el grupo de " +#~ "desarrolladores y autores de documentación responsables del mantenimiento " +#~ "y la evolución de las herramientas de empaquetado estándar y los " +#~ "metadatos asociados y los estándares de formato de archivo. Ellos " +#~ "mantienen una variedad de herramientas, documentación y rastreadores de " +#~ "problemas tanto en `GitHub `__ como `Bitbucket " +#~ "`__." + +#~ msgid "" +#~ ":mod:`distutils` is the original build and distribution system first " +#~ "added to the Python standard library in 1998. While direct use of :mod:" +#~ "`distutils` is being phased out, it still laid the foundation for the " +#~ "current packaging and distribution infrastructure, and it not only " +#~ "remains part of the standard library, but its name lives on in other ways " +#~ "(such as the name of the mailing list used to coordinate Python packaging " +#~ "standards development)." +#~ msgstr "" +#~ ":mod:`distutils` es el sistema de distribución y compilación original que " +#~ "se agregó por primera vez a la biblioteca estándar de Python en 1998. Si " +#~ "bien el uso directo de :mod:`distutils` se está eliminando, aún es la " +#~ "base para la infraestructura de empaquetado y distribución actual, y no " +#~ "solo sigue siendo parte de la biblioteca estándar, sino que su nombre " +#~ "vive de otras formas (como el nombre de la lista de correo utilizada para " +#~ "coordinar el desarrollo de estándares de empaquetado de Python)." + +#~ msgid "" +#~ "`setuptools`_ is a (largely) drop-in replacement for :mod:`distutils` " +#~ "first published in 2004. Its most notable addition over the unmodified :" +#~ "mod:`distutils` tools was the ability to declare dependencies on other " +#~ "packages. It is currently recommended as a more regularly updated " +#~ "alternative to :mod:`distutils` that offers consistent support for more " +#~ "recent packaging standards across a wide range of Python versions." +#~ msgstr "" +#~ "`setuptools`_ es un reemplazo (en gran parte) directo de :mod:`distutils` " +#~ "publicado por primera vez en 2004. Su adición más notable sobre las " +#~ "herramientas sin modificar :mod:`distutils` fue la capacidad de declarar " +#~ "dependencias en otros paquetes. Actualmente se recomienda como una " +#~ "alternativa actualizada con más regularidad a :mod:`distutils` que ofrece " +#~ "soporte consistente para estándares de empaquetado más recientes en una " +#~ "amplia gama de versiones de Python." + +#~ msgid "" +#~ "`wheel`_ (in this context) is a project that adds the ``bdist_wheel`` " +#~ "command to :mod:`distutils`/`setuptools`_. This produces a cross platform " +#~ "binary packaging format (called \"wheels\" or \"wheel files\" and defined " +#~ "in :pep:`427`) that allows Python libraries, even those including binary " +#~ "extensions, to be installed on a system without needing to be built " +#~ "locally." +#~ msgstr "" +#~ "`wheel`_ (en este contexto) es un proyecto que agrega el comando " +#~ "``bdist_wheel`` a :mod:`distutils`/`setuptools`_. Esto produce un formato " +#~ "de empaquetado binario multiplataforma (llamado \"wheels\" o \"wheel " +#~ "files\" y definido en :pep:`427`) que permite que las bibliotecas de " +#~ "Python, incluso aquellas que incluyen extensiones binarias, se instalen " +#~ "en un sistema sin necesidad de ser compiladas en la zona." + +#~ msgid "Open source licensing and collaboration" +#~ msgstr "Licencias de código abierto y colaboración" + +#~ msgid "" +#~ "In most parts of the world, software is automatically covered by " +#~ "copyright. This means that other developers require explicit permission " +#~ "to copy, use, modify and redistribute the software." +#~ msgstr "" +#~ "En la mayor parte del mundo, el software está automáticamente protegido " +#~ "por derechos de autor. Esto significa que otros desarrolladores requieren " +#~ "permiso explícito para copiar, usar, modificar y redistribuir el software." + +#~ msgid "" +#~ "Open source licensing is a way of explicitly granting such permission in " +#~ "a relatively consistent way, allowing developers to share and collaborate " +#~ "efficiently by making common solutions to various problems freely " +#~ "available. This leaves many developers free to spend more time focusing " +#~ "on the problems that are relatively unique to their specific situation." +#~ msgstr "" +#~ "La concesión de licencias de código abierto es una forma de otorgar " +#~ "explícitamente dicho permiso de una manera relativamente consistente, lo " +#~ "que permite a los desarrolladores compartir y colaborar de manera " +#~ "eficiente al hacer que las soluciones comunes a varios problemas estén " +#~ "disponibles de forma gratuita. Esto deja a muchos desarrolladores libres " +#~ "para dedicar más tiempo a concentrarse en los problemas que son " +#~ "relativamente únicos para su situación específica." + +#~ msgid "" +#~ "The distribution tools provided with Python are designed to make it " +#~ "reasonably straightforward for developers to make their own contributions " +#~ "back to that common pool of software if they choose to do so." +#~ msgstr "" +#~ "Las herramientas de distribución proporcionadas con Python están " +#~ "diseñadas para que sea razonablemente sencillo para los desarrolladores " +#~ "hacer sus propias contribuciones a ese grupo común de software si así lo " +#~ "desean." + +#~ msgid "" +#~ "The same distribution tools can also be used to distribute software " +#~ "within an organisation, regardless of whether that software is published " +#~ "as open source software or not." +#~ msgstr "" +#~ "Las mismas herramientas de distribución también se pueden utilizar para " +#~ "distribuir software dentro de una organización, independientemente de si " +#~ "ese software se publica como software de código abierto o no." + +#~ msgid "Installing the tools" +#~ msgstr "Instalando las herramientas" + +#~ msgid "" +#~ "The standard library does not include build tools that support modern " +#~ "Python packaging standards, as the core development team has found that " +#~ "it is important to have standard tools that work consistently, even on " +#~ "older versions of Python." +#~ msgstr "" +#~ "La biblioteca estándar no incluye herramientas de compilación que sean " +#~ "compatibles con los estándares de empaquetado de Python modernos, ya que " +#~ "el equipo de desarrollo central ha descubierto que es importante tener " +#~ "herramientas estándar que funcionen de manera consistente, incluso en " +#~ "versiones anteriores de Python." + +#~ msgid "" +#~ "The currently recommended build and distribution tools can be installed " +#~ "by invoking the ``pip`` module at the command line::" +#~ msgstr "" +#~ "Las herramientas de construcción y distribución recomendadas actualmente " +#~ "se pueden instalar invocando el módulo ``pip`` en la línea de comando::" + +#~ msgid "" +#~ "For POSIX users (including macOS and Linux users), these instructions " +#~ "assume the use of a :term:`virtual environment`." +#~ msgstr "" +#~ "Para los usuarios POSIX (incluidos los usuarios de macOS y Linux), estas " +#~ "instrucciones asumen el uso de un :term:`virtual environment`." + +#~ msgid "" +#~ "For Windows users, these instructions assume that the option to adjust " +#~ "the system PATH environment variable was selected when installing Python." +#~ msgstr "" +#~ "Para los usuarios de Windows, estas instrucciones asumen que se " +#~ "seleccionó la opción para ajustar la variable de entorno PATH del sistema " +#~ "al instalar Python." + +#~ msgid "" +#~ "The Python Packaging User Guide includes more details on the `currently " +#~ "recommended tools`_." +#~ msgstr "" +#~ "La \"Python Packaging User Guide\" incluye más detalles sobre las " +#~ "`currently recommended tools`_." + +#~ msgid "Reading the Python Packaging User Guide" +#~ msgstr "Leyendo la \"Python Packaging User Guide\"" + +#~ msgid "" +#~ "The Python Packaging User Guide covers the various key steps and elements " +#~ "involved in creating and publishing a project:" +#~ msgstr "" +#~ "La \"Python Packaging User Guide\" cubre los diversos pasos y elementos " +#~ "clave involucrados en la creación y publicación de un proyecto:" + +#~ msgid "`Project structure`_" +#~ msgstr "`Estructura del proyecto`_" + +#~ msgid "`Building and packaging the project`_" +#~ msgstr "`Compilando y empaquetando el proyecto`_" + +#~ msgid "`Uploading the project to the Python Package Index`_" +#~ msgstr "`Subiendo el proyecto al Python Package Index`_" + +#~ msgid "`The .pypirc file`_" +#~ msgstr "`El archivo .pypirc`_" + +#~ msgid "How do I...?" +#~ msgstr "Cómo puedo...?" + +#~ msgid "These are quick answers or links for some common tasks." +#~ msgstr "Estas son respuestas rápidas o enlaces para algunas tareas comunes." + +#~ msgid "... choose a name for my project?" +#~ msgstr "... elegir un nombre para mi proyecto?" + +#~ msgid "This isn't an easy topic, but here are a few tips:" +#~ msgstr "Este no es un tema fácil, pero aquí hay algunos consejos:" + +#~ msgid "check the Python Package Index to see if the name is already in use" +#~ msgstr "" +#~ "verifique el \"Python Package Index\" para ver si el nombre ya está en uso" + +#~ msgid "" +#~ "check popular hosting sites like GitHub, Bitbucket, etc to see if there " +#~ "is already a project with that name" +#~ msgstr "" +#~ "verifique sitios de alojamiento populares como GitHub, Bitbucket, etc. " +#~ "para ver si ya existe un proyecto con ese nombre" + +#~ msgid "check what comes up in a web search for the name you're considering" +#~ msgstr "" +#~ "verifique lo que aparece en una búsqueda web para el nombre que está " +#~ "considerando" + +#~ msgid "" +#~ "avoid particularly common words, especially ones with multiple meanings, " +#~ "as they can make it difficult for users to find your software when " +#~ "searching for it" +#~ msgstr "" +#~ "evite palabras particularmente comunes, especialmente aquellas con " +#~ "múltiples significados, ya que pueden dificultar que los usuarios " +#~ "encuentren su software cuando lo busquen" + +#~ msgid "... create and distribute binary extensions?" +#~ msgstr "... crear y distribuir extensiones binarias?" + +#~ msgid "" +#~ "This is actually quite a complex topic, with a variety of alternatives " +#~ "available depending on exactly what you're aiming to achieve. See the " +#~ "Python Packaging User Guide for more information and recommendations." +#~ msgstr "" +#~ "Este es un tema bastante complejo, con una variedad de alternativas " +#~ "disponibles según exactamente lo que pretenda lograr. Consulte la " +#~ "\"Python Packaging User Guide\" para obtener más información y " +#~ "recomendaciones." + +#~ msgid "" +#~ "`Python Packaging User Guide: Binary Extensions `__" +#~ msgstr "" +#~ "`Python Packaging User Guide: Binary Extensions `__" diff --git a/extending/building.po b/extending/building.po index 105887e3e3..b458b81fb6 100644 --- a/extending/building.po +++ b/extending/building.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-06-24 22:47+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/extending/building.rst:7 msgid "Building C and C++ Extensions" @@ -35,10 +35,11 @@ msgstr "" "inicialización*." #: ../Doc/extending/building.rst:12 +#, fuzzy msgid "" "To be importable, the shared library must be available on :envvar:" "`PYTHONPATH`, and must be named after the module name, with an appropriate " -"extension. When using distutils, the correct filename is generated " +"extension. When using setuptools, the correct filename is generated " "automatically." msgstr "" "Para que sea importable, la biblioteca compartida debe estar disponible en :" @@ -91,160 +92,162 @@ msgstr "" "nombre del archivo. Consulte la sección *\"Múltiples módulos en una " "biblioteca\"* en :pep:`489` para más detalles." -#: ../Doc/extending/building.rst:49 -msgid "Building C and C++ Extensions with distutils" +#: ../Doc/extending/building.rst:52 +#, fuzzy +msgid "Building C and C++ Extensions with setuptools" msgstr "Construyendo extensiones C y C++ con distutils" -#: ../Doc/extending/building.rst:53 -msgid "" -"Extension modules can be built using distutils, which is included in " -"Python. Since distutils also supports creation of binary packages, users " -"don't necessarily need a compiler and distutils to install the extension." -msgstr "" -"Los módulos de extensión se pueden construir utilizando distutils, que se " -"incluye en Python. Dado que distutils también admite la creación de paquetes " -"binarios, los usuarios no necesitan necesariamente un compilador y distutils " -"para instalar la extensión." - -#: ../Doc/extending/building.rst:57 -msgid "" -"A distutils package contains a driver script, :file:`setup.py`. This is a " -"plain Python file, which, in the most simple case, could look like this:" -msgstr "" -"Un paquete distutils contiene un script de controlador, :file:`setup.py`. " -"Este es un archivo Python simple, que, en el caso más simple, podría verse " -"así:" - -#: ../Doc/extending/building.rst:73 -msgid "With this :file:`setup.py`, and a file :file:`demo.c`, running ::" -msgstr "Con esto :file:`setup.py`, y un archivo :file:`demo.c`, ejecutando::" - -#: ../Doc/extending/building.rst:77 -msgid "" -"will compile :file:`demo.c`, and produce an extension module named ``demo`` " -"in the :file:`build` directory. Depending on the system, the module file " -"will end up in a subdirectory :file:`build/lib.system`, and may have a name " -"like :file:`demo.so` or :file:`demo.pyd`." -msgstr "" -"compilará :file:`demo.c`, y producirá un módulo de extensión llamado " -"``demo`` en el directorio :file:`build`. Dependiendo del sistema, el archivo " -"del módulo terminará en un subdirectorio :file:`build/lib.system`, y puede " -"tener un nombre como :file:`demo.so` o :file:`demo.pyd`." - -#: ../Doc/extending/building.rst:82 -msgid "" -"In the :file:`setup.py`, all execution is performed by calling the ``setup`` " -"function. This takes a variable number of keyword arguments, of which the " -"example above uses only a subset. Specifically, the example specifies meta-" -"information to build packages, and it specifies the contents of the " -"package. Normally, a package will contain additional modules, like Python " -"source modules, documentation, subpackages, etc. Please refer to the " -"distutils documentation in :ref:`distutils-index` to learn more about the " -"features of distutils; this section explains building extension modules only." -msgstr "" -"En :file:`setup.py`, toda la ejecución se realiza llamando a la función " -"``setup``. Esto toma un número variable de argumentos de palabras clave, de " -"los cuales el ejemplo anterior usa solo un subconjunto. Específicamente, el " -"ejemplo especifica metainformación para construir paquetes, y especifica el " -"contenido del paquete. Normalmente, un paquete contendrá módulos " -"adicionales, como módulos fuente Python, documentación, subpaquetes, etc. " -"Consulte la documentación de distutils en :ref:`distutils-index` para " -"obtener más información sobre las características de distutils; Esta sección " -"explica la construcción de módulos de extensión solamente." - -#: ../Doc/extending/building.rst:91 -msgid "" -"It is common to pre-compute arguments to :func:`setup`, to better structure " -"the driver script. In the example above, the ``ext_modules`` argument to :" -"func:`~distutils.core.setup` is a list of extension modules, each of which " -"is an instance of the :class:`~distutils.extension.Extension`. In the " -"example, the instance defines an extension named ``demo`` which is build by " -"compiling a single source file, :file:`demo.c`." -msgstr "" -"Es común precalcular argumentos para :func:`setup`, para estructurar mejor " -"el script del controlador. En el ejemplo anterior, el argumento " -"``ext_modules`` para :func:`~distutils.core.setup` es una lista de módulos " -"de extensión, cada uno de los cuales es una instancia de :class:`~distutils." -"extension.Extension` . En el ejemplo, la instancia define una extensión " -"llamada ``demo`` que se construye compilando un solo archivo fuente :file:" -"`demo.c`." - -#: ../Doc/extending/building.rst:99 -msgid "" -"In many cases, building an extension is more complex, since additional " -"preprocessor defines and libraries may be needed. This is demonstrated in " -"the example below." -msgstr "" -"En muchos casos, construir una extensión es más complejo, ya que es posible " -"que se necesiten preprocesadores adicionales y bibliotecas. Esto se " -"demuestra en el siguiente ejemplo." - -#: ../Doc/extending/building.rst:127 -msgid "" -"In this example, :func:`~distutils.core.setup` is called with additional " -"meta-information, which is recommended when distribution packages have to be " -"built. For the extension itself, it specifies preprocessor defines, include " -"directories, library directories, and libraries. Depending on the compiler, " -"distutils passes this information in different ways to the compiler. For " -"example, on Unix, this may result in the compilation commands ::" -msgstr "" -"En este ejemplo, se llama a :func:`~distutils.core.setup` con " -"metainformación adicional, que se recomienda cuando se deben construir " -"paquetes de distribución. Para la extensión en sí, especifica las " -"definiciones de preprocesador, incluye directorios, directorios de " -"biblioteca y bibliotecas. Dependiendo del compilador, distutils pasa esta " -"información de diferentes maneras al compilador. Por ejemplo, en Unix, esto " -"puede resultar en los comandos de compilación::" - -#: ../Doc/extending/building.rst:139 -msgid "" -"These lines are for demonstration purposes only; distutils users should " -"trust that distutils gets the invocations right." -msgstr "" -"Estas líneas son solo para fines de demostración; Los usuarios de distutils " -"deben confiar en que distutils obtiene las invocaciones correctas." - -#: ../Doc/extending/building.rst:146 -msgid "Distributing your extension modules" -msgstr "Distribuyendo sus módulos de extensión" - -#: ../Doc/extending/building.rst:148 -msgid "" -"When an extension has been successfully built, there are three ways to use " -"it." -msgstr "" -"Cuando una extensión se ha creado correctamente, hay tres formas de usarla." - -#: ../Doc/extending/building.rst:150 -msgid "" -"End-users will typically want to install the module, they do so by running ::" -msgstr "" -"Los usuarios finales generalmente querrán instalar el módulo, lo hacen " -"ejecutando::" - -#: ../Doc/extending/building.rst:154 -msgid "" -"Module maintainers should produce source packages; to do so, they run ::" -msgstr "" -"Los mantenedores de módulos deben producir paquetes fuente; para hacerlo, " -"ejecutan::" - -#: ../Doc/extending/building.rst:158 -msgid "" -"In some cases, additional files need to be included in a source " -"distribution; this is done through a :file:`MANIFEST.in` file; see :ref:" -"`manifest` for details." -msgstr "" -"En algunos casos, se deben incluir archivos adicionales en una distribución " -"de origen; esto se hace a través de un archivo :file:`MANIFEST.in`; ver :ref:" -"`manifest` para más detalles." - -#: ../Doc/extending/building.rst:161 -msgid "" -"If the source distribution has been built successfully, maintainers can also " -"create binary distributions. Depending on the platform, one of the following " -"commands can be used to do so. ::" -msgstr "" -"Si la distribución de origen se ha creado correctamente, los encargados del " -"mantenimiento también pueden crear distribuciones binarias. Dependiendo de " -"la plataforma, se puede usar uno de los siguientes comandos para hacerlo.::" +#: ../Doc/extending/building.rst:54 +msgid "" +"Python 3.12 and newer no longer come with distutils. Please refer to the " +"``setuptools`` documentation at https://setuptools.readthedocs.io/en/latest/" +"setuptools.html to learn more about how build and distribute C/C++ " +"extensions with setuptools." +msgstr "" + +#~ msgid "" +#~ "Extension modules can be built using distutils, which is included in " +#~ "Python. Since distutils also supports creation of binary packages, users " +#~ "don't necessarily need a compiler and distutils to install the extension." +#~ msgstr "" +#~ "Los módulos de extensión se pueden construir utilizando distutils, que se " +#~ "incluye en Python. Dado que distutils también admite la creación de " +#~ "paquetes binarios, los usuarios no necesitan necesariamente un compilador " +#~ "y distutils para instalar la extensión." + +#~ msgid "" +#~ "A distutils package contains a driver script, :file:`setup.py`. This is a " +#~ "plain Python file, which, in the most simple case, could look like this:" +#~ msgstr "" +#~ "Un paquete distutils contiene un script de controlador, :file:`setup.py`. " +#~ "Este es un archivo Python simple, que, en el caso más simple, podría " +#~ "verse así:" + +#~ msgid "With this :file:`setup.py`, and a file :file:`demo.c`, running ::" +#~ msgstr "" +#~ "Con esto :file:`setup.py`, y un archivo :file:`demo.c`, ejecutando::" + +#~ msgid "" +#~ "will compile :file:`demo.c`, and produce an extension module named " +#~ "``demo`` in the :file:`build` directory. Depending on the system, the " +#~ "module file will end up in a subdirectory :file:`build/lib.system`, and " +#~ "may have a name like :file:`demo.so` or :file:`demo.pyd`." +#~ msgstr "" +#~ "compilará :file:`demo.c`, y producirá un módulo de extensión llamado " +#~ "``demo`` en el directorio :file:`build`. Dependiendo del sistema, el " +#~ "archivo del módulo terminará en un subdirectorio :file:`build/lib." +#~ "system`, y puede tener un nombre como :file:`demo.so` o :file:`demo.pyd`." + +#~ msgid "" +#~ "In the :file:`setup.py`, all execution is performed by calling the " +#~ "``setup`` function. This takes a variable number of keyword arguments, of " +#~ "which the example above uses only a subset. Specifically, the example " +#~ "specifies meta-information to build packages, and it specifies the " +#~ "contents of the package. Normally, a package will contain additional " +#~ "modules, like Python source modules, documentation, subpackages, etc. " +#~ "Please refer to the distutils documentation in :ref:`distutils-index` to " +#~ "learn more about the features of distutils; this section explains " +#~ "building extension modules only." +#~ msgstr "" +#~ "En :file:`setup.py`, toda la ejecución se realiza llamando a la función " +#~ "``setup``. Esto toma un número variable de argumentos de palabras clave, " +#~ "de los cuales el ejemplo anterior usa solo un subconjunto. " +#~ "Específicamente, el ejemplo especifica metainformación para construir " +#~ "paquetes, y especifica el contenido del paquete. Normalmente, un paquete " +#~ "contendrá módulos adicionales, como módulos fuente Python, documentación, " +#~ "subpaquetes, etc. Consulte la documentación de distutils en :ref:" +#~ "`distutils-index` para obtener más información sobre las características " +#~ "de distutils; Esta sección explica la construcción de módulos de " +#~ "extensión solamente." + +#~ msgid "" +#~ "It is common to pre-compute arguments to :func:`setup`, to better " +#~ "structure the driver script. In the example above, the ``ext_modules`` " +#~ "argument to :func:`~distutils.core.setup` is a list of extension modules, " +#~ "each of which is an instance of the :class:`~distutils.extension." +#~ "Extension`. In the example, the instance defines an extension named " +#~ "``demo`` which is build by compiling a single source file, :file:`demo.c`." +#~ msgstr "" +#~ "Es común precalcular argumentos para :func:`setup`, para estructurar " +#~ "mejor el script del controlador. En el ejemplo anterior, el argumento " +#~ "``ext_modules`` para :func:`~distutils.core.setup` es una lista de " +#~ "módulos de extensión, cada uno de los cuales es una instancia de :class:" +#~ "`~distutils.extension.Extension` . En el ejemplo, la instancia define una " +#~ "extensión llamada ``demo`` que se construye compilando un solo archivo " +#~ "fuente :file:`demo.c`." + +#~ msgid "" +#~ "In many cases, building an extension is more complex, since additional " +#~ "preprocessor defines and libraries may be needed. This is demonstrated in " +#~ "the example below." +#~ msgstr "" +#~ "En muchos casos, construir una extensión es más complejo, ya que es " +#~ "posible que se necesiten preprocesadores adicionales y bibliotecas. Esto " +#~ "se demuestra en el siguiente ejemplo." + +#~ msgid "" +#~ "In this example, :func:`~distutils.core.setup` is called with additional " +#~ "meta-information, which is recommended when distribution packages have to " +#~ "be built. For the extension itself, it specifies preprocessor defines, " +#~ "include directories, library directories, and libraries. Depending on the " +#~ "compiler, distutils passes this information in different ways to the " +#~ "compiler. For example, on Unix, this may result in the compilation " +#~ "commands ::" +#~ msgstr "" +#~ "En este ejemplo, se llama a :func:`~distutils.core.setup` con " +#~ "metainformación adicional, que se recomienda cuando se deben construir " +#~ "paquetes de distribución. Para la extensión en sí, especifica las " +#~ "definiciones de preprocesador, incluye directorios, directorios de " +#~ "biblioteca y bibliotecas. Dependiendo del compilador, distutils pasa esta " +#~ "información de diferentes maneras al compilador. Por ejemplo, en Unix, " +#~ "esto puede resultar en los comandos de compilación::" + +#~ msgid "" +#~ "These lines are for demonstration purposes only; distutils users should " +#~ "trust that distutils gets the invocations right." +#~ msgstr "" +#~ "Estas líneas son solo para fines de demostración; Los usuarios de " +#~ "distutils deben confiar en que distutils obtiene las invocaciones " +#~ "correctas." + +#~ msgid "Distributing your extension modules" +#~ msgstr "Distribuyendo sus módulos de extensión" + +#~ msgid "" +#~ "When an extension has been successfully built, there are three ways to " +#~ "use it." +#~ msgstr "" +#~ "Cuando una extensión se ha creado correctamente, hay tres formas de " +#~ "usarla." + +#~ msgid "" +#~ "End-users will typically want to install the module, they do so by " +#~ "running ::" +#~ msgstr "" +#~ "Los usuarios finales generalmente querrán instalar el módulo, lo hacen " +#~ "ejecutando::" + +#~ msgid "" +#~ "Module maintainers should produce source packages; to do so, they run ::" +#~ msgstr "" +#~ "Los mantenedores de módulos deben producir paquetes fuente; para hacerlo, " +#~ "ejecutan::" + +#~ msgid "" +#~ "In some cases, additional files need to be included in a source " +#~ "distribution; this is done through a :file:`MANIFEST.in` file; see :ref:" +#~ "`manifest` for details." +#~ msgstr "" +#~ "En algunos casos, se deben incluir archivos adicionales en una " +#~ "distribución de origen; esto se hace a través de un archivo :file:" +#~ "`MANIFEST.in`; ver :ref:`manifest` para más detalles." + +#~ msgid "" +#~ "If the source distribution has been built successfully, maintainers can " +#~ "also create binary distributions. Depending on the platform, one of the " +#~ "following commands can be used to do so. ::" +#~ msgstr "" +#~ "Si la distribución de origen se ha creado correctamente, los encargados " +#~ "del mantenimiento también pueden crear distribuciones binarias. " +#~ "Dependiendo de la plataforma, se puede usar uno de los siguientes " +#~ "comandos para hacerlo.::" diff --git a/extending/embedding.po b/extending/embedding.po index 873c1aa7c0..45231773d3 100644 --- a/extending/embedding.po +++ b/extending/embedding.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-05 12:54+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-06-24 23:14+0200\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" "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 2.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/extending/embedding.rst:8 msgid "Embedding Python in Another Application" @@ -361,10 +360,11 @@ msgstr "" "func:`Py_Initialize`::" #: ../Doc/extending/embedding.rst:252 +#, fuzzy msgid "" -"These two lines initialize the ``numargs`` variable, and make the :func:`emb." -"numargs` function accessible to the embedded Python interpreter. With these " -"extensions, the Python script can do things like" +"These two lines initialize the ``numargs`` variable, and make the :func:`!" +"emb.numargs` function accessible to the embedded Python interpreter. With " +"these extensions, the Python script can do things like" msgstr "" "Estas dos líneas inicializan la variable ``numargs`` y hacen que la función :" "func:`emb.numargs` sea accesible para el intérprete de Python incorporado. " @@ -435,9 +435,10 @@ msgstr "" "``pythonX.Y-config --cflags`` le dará las banderas recomendadas al compilar:" #: ../Doc/extending/embedding.rst:304 +#, fuzzy msgid "" -"``pythonX.Y-config --ldflags`` will give you the recommended flags when " -"linking:" +"``pythonX.Y-config --ldflags --embed`` will give you the recommended flags " +"when linking:" msgstr "" "``pythonX.Y-config --ldflags`` le dará las banderas recomendadas al vincular:" diff --git a/extending/extending.po b/extending/extending.po index e05b410790..2f2df4914c 100644 --- a/extending/extending.po +++ b/extending/extending.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-10-27 04:00-0400\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/extending/extending.rst:8 msgid "Extending Python with C or C++" @@ -395,13 +395,14 @@ msgstr "" "retorna un indicador de error!" #: ../Doc/extending/extending.rst:194 +#, fuzzy msgid "" "The choice of which exception to raise is entirely yours. There are " "predeclared C objects corresponding to all built-in Python exceptions, such " "as :c:data:`PyExc_ZeroDivisionError`, which you can use directly. Of course, " "you should choose exceptions wisely --- don't use :c:data:`PyExc_TypeError` " "to mean that a file couldn't be opened (that should probably be :c:data:" -"`PyExc_IOError`). If something's wrong with the argument list, the :c:func:" +"`PyExc_OSError`). If something's wrong with the argument list, the :c:func:" "`PyArg_ParseTuple` function usually raises :c:data:`PyExc_TypeError`. If " "you have an argument whose value must be in a particular range or must " "satisfy other conditions, :c:data:`PyExc_ValueError` is appropriate." @@ -427,16 +428,18 @@ msgstr "" "de su archivo::" #: ../Doc/extending/extending.rst:209 +#, fuzzy msgid "" -"and initialize it in your module's initialization function (:c:func:" -"`PyInit_spam`) with an exception object::" +"and initialize it in your module's initialization function (:c:func:`!" +"PyInit_spam`) with an exception object::" msgstr "" "y lo inicializa en la función de inicialización de su módulo (:c:func:" "`PyInit_spam`) con un objeto de excepción::" #: ../Doc/extending/extending.rst:233 +#, fuzzy msgid "" -"Note that the Python name for the exception object is :exc:`spam.error`. " +"Note that the Python name for the exception object is :exc:`!spam.error`. " "The :c:func:`PyErr_NewException` function may create a class with the base " "class being :exc:`Exception` (unless another class is passed in instead of " "``NULL``), described in :ref:`bltin-exceptions`." @@ -447,12 +450,13 @@ msgstr "" "lugar de ``NULL``), descrita en :ref:`bltin-exceptions`." #: ../Doc/extending/extending.rst:238 +#, fuzzy msgid "" -"Note also that the :c:data:`SpamError` variable retains a reference to the " +"Note also that the :c:data:`!SpamError` variable retains a reference to the " "newly created exception class; this is intentional! Since the exception " "could be removed from the module by external code, an owned reference to the " -"class is needed to ensure that it will not be discarded, causing :c:data:" -"`SpamError` to become a dangling pointer. Should it become a dangling " +"class is needed to ensure that it will not be discarded, causing :c:data:`!" +"SpamError` to become a dangling pointer. Should it become a dangling " "pointer, C code which raises the exception could cause a core dump or other " "unintended side effects." msgstr "" @@ -466,17 +470,19 @@ msgstr "" "deseados." #: ../Doc/extending/extending.rst:245 +#, fuzzy msgid "" -"We discuss the use of ``PyMODINIT_FUNC`` as a function return type later in " -"this sample." +"We discuss the use of :c:macro:`PyMODINIT_FUNC` as a function return type " +"later in this sample." msgstr "" "Discutimos el uso de ``PyMODINIT_FUNC`` como un tipo de retorno de función " "más adelante en esta muestra." #: ../Doc/extending/extending.rst:248 +#, fuzzy msgid "" -"The :exc:`spam.error` exception can be raised in your extension module using " -"a call to :c:func:`PyErr_SetString` as shown below::" +"The :exc:`!spam.error` exception can be raised in your extension module " +"using a call to :c:func:`PyErr_SetString` as shown below::" msgstr "" "La excepción :exc:`spam.error` se puede generar en su módulo de extensión " "mediante una llamada a :c:func:`PyErr_SetString` como se muestra a " @@ -495,13 +501,14 @@ msgstr "" "declaración::" #: ../Doc/extending/extending.rst:279 +#, fuzzy msgid "" "It returns ``NULL`` (the error indicator for functions returning object " "pointers) if an error is detected in the argument list, relying on the " "exception set by :c:func:`PyArg_ParseTuple`. Otherwise the string value of " -"the argument has been copied to the local variable :c:data:`command`. This " +"the argument has been copied to the local variable :c:data:`!command`. This " "is a pointer assignment and you are not supposed to modify the string to " -"which it points (so in Standard C, the variable :c:data:`command` should " +"which it points (so in Standard C, the variable :c:data:`!command` should " "properly be declared as ``const char *command``)." msgstr "" "Retorna ``NULL`` (el indicador de error para las funciones que retornan " @@ -522,9 +529,11 @@ msgstr "" "pasándole la cadena que acabamos de obtener de :c:func:`PyArg_ParseTuple`::" #: ../Doc/extending/extending.rst:292 +#, fuzzy msgid "" -"Our :func:`spam.system` function must return the value of :c:data:`sts` as a " -"Python object. This is done using the function :c:func:`PyLong_FromLong`. ::" +"Our :func:`!spam.system` function must return the value of :c:data:`!sts` as " +"a Python object. This is done using the function :c:func:" +"`PyLong_FromLong`. ::" msgstr "" "Nuestra función :func:`spam.system` debe retornar el valor de :c:data:`sts` " "como un objeto Python. Esto se hace usando la función :c:func:" @@ -565,9 +574,10 @@ msgid "The Module's Method Table and Initialization Function" msgstr "La tabla de métodos del módulo y la función de inicialización" #: ../Doc/extending/extending.rst:318 +#, fuzzy msgid "" -"I promised to show how :c:func:`spam_system` is called from Python programs. " -"First, we need to list its name and address in a \"method table\"::" +"I promised to show how :c:func:`!spam_system` is called from Python " +"programs. First, we need to list its name and address in a \"method table\"::" msgstr "" "Prometí mostrar cómo :c:func:`spam_system` se llama desde los programas de " "Python. Primero, necesitamos enumerar su nombre y dirección en una \"tabla " @@ -599,8 +609,9 @@ msgstr "" "más información sobre esta función." #: ../Doc/extending/extending.rst:338 +#, fuzzy msgid "" -"The :const:`METH_KEYWORDS` bit may be set in the third field if keyword " +"The :c:macro:`METH_KEYWORDS` bit may be set in the third field if keyword " "arguments should be passed to the function. In this case, the C function " "should accept a third ``PyObject *`` parameter which will be a dictionary of " "keywords. Use :c:func:`PyArg_ParseTupleAndKeywords` to parse the arguments " @@ -620,10 +631,11 @@ msgstr "" "módulo::" #: ../Doc/extending/extending.rst:355 +#, fuzzy msgid "" "This structure, in turn, must be passed to the interpreter in the module's " "initialization function. The initialization function must be named :c:func:" -"`PyInit_name`, where *name* is the name of the module, and should be the " +"`!PyInit_name`, where *name* is the name of the module, and should be the " "only non-\\ ``static`` item defined in the module file::" msgstr "" "Esta estructura, a su vez, debe pasarse al intérprete en la función de " @@ -632,10 +644,11 @@ msgstr "" "elemento no ``static`` definido en el archivo del módulo::" #: ../Doc/extending/extending.rst:366 +#, fuzzy msgid "" -"Note that PyMODINIT_FUNC declares the function as ``PyObject *`` return " -"type, declares any special linkage declarations required by the platform, " -"and for C++ declares the function as ``extern \"C\"``." +"Note that :c:macro:`PyMODINIT_FUNC` declares the function as ``PyObject *`` " +"return type, declares any special linkage declarations required by the " +"platform, and for C++ declares the function as ``extern \"C\"``." msgstr "" "Tenga en cuenta que PyMODINIT_FUNC declara la función como ``PyObject *`` " "tipo de retorno, declara cualquier declaración de vinculación especial " @@ -643,9 +656,10 @@ msgstr "" "\"C\"``." #: ../Doc/extending/extending.rst:370 +#, fuzzy msgid "" -"When the Python program imports module :mod:`spam` for the first time, :c:" -"func:`PyInit_spam` is called. (See below for comments about embedding " +"When the Python program imports module :mod:`!spam` for the first time, :c:" +"func:`!PyInit_spam` is called. (See below for comments about embedding " "Python.) It calls :c:func:`PyModule_Create`, which returns a module object, " "and inserts built-in function objects into the newly created module based " "upon the table (an array of :c:type:`PyMethodDef` structures) found in the " @@ -668,8 +682,9 @@ msgstr "" "``sys.modules``." #: ../Doc/extending/extending.rst:381 +#, fuzzy msgid "" -"When embedding Python, the :c:func:`PyInit_spam` function is not called " +"When embedding Python, the :c:func:`!PyInit_spam` function is not called " "automatically unless there's an entry in the :c:data:`PyImport_Inittab` " "table. To add the module to the initialization table, use :c:func:" "`PyImport_AppendInittab`, optionally followed by an import of the module::" @@ -833,8 +848,9 @@ msgstr "" "definición de módulo::" #: ../Doc/extending/extending.rst:529 +#, fuzzy msgid "" -"This function must be registered with the interpreter using the :const:" +"This function must be registered with the interpreter using the :c:macro:" "`METH_VARARGS` flag; this is described in section :ref:`methodtable`. The :" "c:func:`PyArg_ParseTuple` function and its arguments are documented in " "section :ref:`parsetuple`." @@ -1518,13 +1534,14 @@ msgstr "" "prestada. Parece inofensivo, ¿verdad? ¡Pero no lo es!" #: ../Doc/extending/extending.rst:1029 +#, fuzzy msgid "" "Let's follow the control flow into :c:func:`PyList_SetItem`. The list owns " "references to all its items, so when item 1 is replaced, it has to dispose " "of the original item 1. Now let's suppose the original item 1 was an " "instance of a user-defined class, and let's further suppose that the class " -"defined a :meth:`__del__` method. If this class instance has a reference " -"count of 1, disposing of it will call its :meth:`__del__` method." +"defined a :meth:`!__del__` method. If this class instance has a reference " +"count of 1, disposing of it will call its :meth:`!__del__` method." msgstr "" "Sigamos el flujo de control en :c:func:`PyList_SetItem`. La lista posee " "referencias a todos sus elementos, por lo que cuando se reemplaza el " @@ -1535,11 +1552,12 @@ msgstr "" "llamará a su método :meth:`__del__`." #: ../Doc/extending/extending.rst:1036 +#, fuzzy msgid "" -"Since it is written in Python, the :meth:`__del__` method can execute " +"Since it is written in Python, the :meth:`!__del__` method can execute " "arbitrary Python code. Could it perhaps do something to invalidate the " -"reference to ``item`` in :c:func:`bug`? You bet! Assuming that the list " -"passed into :c:func:`bug` is accessible to the :meth:`__del__` method, it " +"reference to ``item`` in :c:func:`!bug`? You bet! Assuming that the list " +"passed into :c:func:`!bug` is accessible to the :meth:`!__del__` method, it " "could execute a statement to the effect of ``del list[0]``, and assuming " "this was the last reference to that object, it would free the memory " "associated with it, thereby invalidating ``item``." @@ -1562,10 +1580,11 @@ msgstr "" "dice:" #: ../Doc/extending/extending.rst:1058 +#, fuzzy msgid "" "This is a true story. An older version of Python contained variants of this " "bug and someone spent a considerable amount of time in a C debugger to " -"figure out why his :meth:`__del__` methods would fail..." +"figure out why his :meth:`!__del__` methods would fail..." msgstr "" "Esta es una historia real. Una versión anterior de Python contenía variantes " "de este error y alguien pasó una cantidad considerable de tiempo en un " @@ -1861,13 +1880,15 @@ msgstr "" "que llamar a esta macro antes de acceder a la API de C." #: ../Doc/extending/extending.rst:1211 +#, fuzzy msgid "" -"The exporting module is a modification of the :mod:`spam` module from " -"section :ref:`extending-simpleexample`. The function :func:`spam.system` " +"The exporting module is a modification of the :mod:`!spam` module from " +"section :ref:`extending-simpleexample`. The function :func:`!spam.system` " "does not call the C library function :c:func:`system` directly, but a " -"function :c:func:`PySpam_System`, which would of course do something more " +"function :c:func:`!PySpam_System`, which would of course do something more " "complicated in reality (such as adding \"spam\" to every command). This " -"function :c:func:`PySpam_System` is also exported to other extension modules." +"function :c:func:`!PySpam_System` is also exported to other extension " +"modules." msgstr "" "El módulo de exportación es una modificación del módulo :mod:`spam` de la " "sección :ref:`extending-simpleexample`. La función :func:`spam.system` no " @@ -1877,15 +1898,17 @@ msgstr "" "c:func:`PySpam_System` también se exporta a otros módulos de extensión." #: ../Doc/extending/extending.rst:1218 +#, fuzzy msgid "" -"The function :c:func:`PySpam_System` is a plain C function, declared " +"The function :c:func:`!PySpam_System` is a plain C function, declared " "``static`` like everything else::" msgstr "" "La función :c:func:`PySpam_System` es una función C simple, declarada " "``static`` como todo lo demás::" #: ../Doc/extending/extending.rst:1227 -msgid "The function :c:func:`spam_system` is modified in a trivial way::" +#, fuzzy +msgid "The function :c:func:`!spam_system` is modified in a trivial way::" msgstr "La función :c:func:`spam_system` se modifica de manera trivial::" #: ../Doc/extending/extending.rst:1241 @@ -1909,9 +1932,10 @@ msgstr "" "inicializar la matriz de punteros de API C::" #: ../Doc/extending/extending.rst:1280 +#, fuzzy msgid "" "Note that ``PySpam_API`` is declared ``static``; otherwise the pointer array " -"would disappear when :func:`PyInit_spam` terminates!" +"would disappear when :c:func:`!PyInit_spam` terminates!" msgstr "" "Tenga en cuenta que ``PySpam_API`` se declara ``static``; de lo contrario, " "la matriz de punteros desaparecería cuando :func:`PyInit_spam` finalice!" @@ -1925,10 +1949,11 @@ msgstr "" "`spammodule.h`, que se ve así:" #: ../Doc/extending/extending.rst:1334 +#, fuzzy msgid "" "All that a client module must do in order to have access to the function :c:" -"func:`PySpam_System` is to call the function (or rather macro) :c:func:" -"`import_spam` in its initialization function::" +"func:`!PySpam_System` is to call the function (or rather macro) :c:func:`!" +"import_spam` in its initialization function::" msgstr "" "Todo lo que un módulo cliente debe hacer para tener acceso a la función :c:" "func:`PySpam_System` es llamar a la función (o más bien macro) :c:func:" @@ -1998,3 +2023,19 @@ msgid "" msgstr "" "Estas garantías no se cumplen cuando utiliza la convención de llamadas de " "estilo \"antiguo\", que todavía se encuentra en muchos códigos existentes." + +#: ../Doc/extending/extending.rst:539 +msgid "PyObject_CallObject()" +msgstr "" + +#: ../Doc/extending/extending.rst:630 +msgid "PyArg_ParseTuple()" +msgstr "" + +#: ../Doc/extending/extending.rst:722 +msgid "PyArg_ParseTupleAndKeywords()" +msgstr "" + +#: ../Doc/extending/extending.rst:743 +msgid "Philbrick, Geoff" +msgstr "" diff --git a/extending/newtypes.po b/extending/newtypes.po index aea42440e0..d208c27aef 100644 --- a/extending/newtypes.po +++ b/extending/newtypes.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-10-19 20:28-0500\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/extending/newtypes.rst:7 msgid "Defining Extension Types: Assorted Topics" @@ -380,11 +380,12 @@ msgstr "" "una instancia de esta estructura::" #: ../Doc/extending/newtypes.rst:270 +#, fuzzy msgid "" "One entry should be defined for each method provided by the type; no entries " "are needed for methods inherited from a base type. One additional entry is " -"needed at the end; it is a sentinel that marks the end of the array. The :" -"attr:`ml_name` field of the sentinel must be ``NULL``." +"needed at the end; it is a sentinel that marks the end of the array. The :c:" +"member:`~PyMethodDef.ml_name` field of the sentinel must be ``NULL``." msgstr "" "Se debe definir una entrada para cada método proporcionado por el tipo; No " "se necesitan entradas para los métodos heredados de un tipo base. Se " @@ -404,14 +405,16 @@ msgstr "" "escritura. Las estructuras en la tabla se definen como::" #: ../Doc/extending/newtypes.rst:287 +#, fuzzy msgid "" "For each entry in the table, a :term:`descriptor` will be constructed and " "added to the type which will be able to extract a value from the instance " -"structure. The :attr:`type` field should contain one of the type codes " -"defined in the :file:`structmember.h` header; the value will be used to " -"determine how to convert Python values to and from C values. The :attr:" -"`flags` field is used to store flags which control how the attribute can be " -"accessed." +"structure. The :c:member:`~PyMemberDef.type` field should contain a type " +"code like :c:macro:`Py_T_INT` or :c:macro:`Py_T_DOUBLE`; the value will be " +"used to determine how to convert Python values to and from C values. The :c:" +"member:`~PyMemberDef.flags` field is used to store flags which control how " +"the attribute can be accessed: you can set it to :c:macro:`Py_READONLY` to " +"prevent Python code from setting it." msgstr "" "Para cada entrada en la tabla, se construirá un :term:`descriptor` y se " "agregará al tipo que podrá extraer un valor de la estructura de la " @@ -421,56 +424,7 @@ msgstr "" "C. El campo :attr:`flags` se usa para almacenar flags que controlan cómo se " "puede acceder al atributo." -#: ../Doc/extending/newtypes.rst:294 -msgid "" -"The following flag constants are defined in :file:`structmember.h`; they may " -"be combined using bitwise-OR." -msgstr "" -"Las siguientes constantes de flag se definen en :file:`structmember.h`; se " -"pueden combinar usando OR bit a bit (*bitwise-OR*)." - -#: ../Doc/extending/newtypes.rst:298 -msgid "Constant" -msgstr "Constante" - -#: ../Doc/extending/newtypes.rst:298 -msgid "Meaning" -msgstr "Significado" - -#: ../Doc/extending/newtypes.rst:300 -msgid ":const:`READONLY`" -msgstr ":const:`READONLY`" - -#: ../Doc/extending/newtypes.rst:300 -msgid "Never writable." -msgstr "Nunca escribible." - -#: ../Doc/extending/newtypes.rst:302 -msgid ":const:`PY_AUDIT_READ`" -msgstr ":const:`PY_AUDIT_READ`" - -#: ../Doc/extending/newtypes.rst:302 -msgid "" -"Emit an ``object.__getattr__`` :ref:`audit events ` before " -"reading." -msgstr "" -"Emite un ``object.__getattr__`` :ref:`audita evento ` antes de " -"leer." - -#: ../Doc/extending/newtypes.rst:307 -msgid "" -":const:`RESTRICTED`, :const:`READ_RESTRICTED` and :const:`WRITE_RESTRICTED` " -"are deprecated. However, :const:`READ_RESTRICTED` is an alias for :const:" -"`PY_AUDIT_READ`, so fields that specify either :const:`RESTRICTED` or :const:" -"`READ_RESTRICTED` will also raise an audit event." -msgstr "" -":const:`RESTRICTED`, :const:`READ_RESTRICTED` y :const:`WRITE_RESTRICTED` " -"están en desuso. Sin embargo, :const:`READ_RESTRICTED` es un alias para :" -"const:`PY_AUDIT_READ`, por lo que los campos que especifican :const:" -"`RESTRICTED` o :const:`READ_RESTRICTED` también generarán un evento de " -"auditoría." - -#: ../Doc/extending/newtypes.rst:320 +#: ../Doc/extending/newtypes.rst:295 msgid "" "An interesting advantage of using the :c:member:`~PyTypeObject.tp_members` " "table to build descriptors that are used at runtime is that any attribute " @@ -486,19 +440,20 @@ msgstr "" "puede usar la API de introspección para recuperar el descriptor del objeto " "de clase y obtener el docstring utilizando su atributo :attr:`__doc__`." -#: ../Doc/extending/newtypes.rst:326 +#: ../Doc/extending/newtypes.rst:301 +#, fuzzy msgid "" "As with the :c:member:`~PyTypeObject.tp_methods` table, a sentinel entry " -"with a :attr:`name` value of ``NULL`` is required." +"with a :c:member:`~PyMethodDef.ml_name` value of ``NULL`` is required." msgstr "" "Al igual que con la tabla :c:member:`~PyTypeObject.tp_methods`, se requiere " "una entrada de centinela con un valor :attr:`name` de ``NULL``." -#: ../Doc/extending/newtypes.rst:340 +#: ../Doc/extending/newtypes.rst:315 msgid "Type-specific Attribute Management" msgstr "Gestión de atributos específicos de tipo" -#: ../Doc/extending/newtypes.rst:342 +#: ../Doc/extending/newtypes.rst:317 msgid "" "For simplicity, only the :c:expr:`char\\*` version will be demonstrated " "here; the type of the name parameter is the only difference between the :c:" @@ -516,28 +471,30 @@ msgstr "" "controlador, de modo que si necesita ampliar su funcionalidad, comprenderá " "lo que debe hacerse." -#: ../Doc/extending/newtypes.rst:350 +#: ../Doc/extending/newtypes.rst:325 +#, fuzzy msgid "" "The :c:member:`~PyTypeObject.tp_getattr` handler is called when the object " "requires an attribute look-up. It is called in the same situations where " -"the :meth:`__getattr__` method of a class would be called." +"the :meth:`~object.__getattr__` method of a class would be called." msgstr "" "Se llama al manejador :c:member:`~PyTypeObject.tp_getattr` cuando el objeto " "requiere una búsqueda de atributo. Se llama en las mismas situaciones donde " "se llamaría el método :meth:`__getattr__` de una clase." -#: ../Doc/extending/newtypes.rst:354 +#: ../Doc/extending/newtypes.rst:329 msgid "Here is an example::" msgstr "Aquí hay un ejemplo::" -#: ../Doc/extending/newtypes.rst:370 +#: ../Doc/extending/newtypes.rst:345 +#, fuzzy msgid "" "The :c:member:`~PyTypeObject.tp_setattr` handler is called when the :meth:" -"`__setattr__` or :meth:`__delattr__` method of a class instance would be " -"called. When an attribute should be deleted, the third parameter will be " -"``NULL``. Here is an example that simply raises an exception; if this were " -"really all you wanted, the :c:member:`~PyTypeObject.tp_setattr` handler " -"should be set to ``NULL``. ::" +"`~object.__setattr__` or :meth:`~object.__delattr__` method of a class " +"instance would be called. When an attribute should be deleted, the third " +"parameter will be ``NULL``. Here is an example that simply raises an " +"exception; if this were really all you wanted, the :c:member:`~PyTypeObject." +"tp_setattr` handler should be set to ``NULL``. ::" msgstr "" "Se llama al manejador :c:member:`~PyTypeObject.tp_setattr` cuando se llama " "al método :meth:`__setattr__` o :meth:`__delattr__` de una instancia de " @@ -546,15 +503,16 @@ msgstr "" "fuera realmente todo lo que deseaba, el controlador :c:member:`~PyTypeObject." "tp_setattr` debería establecerse en ``NULL``. ::" -#: ../Doc/extending/newtypes.rst:384 +#: ../Doc/extending/newtypes.rst:359 msgid "Object Comparison" msgstr "Comparación de Objetos" -#: ../Doc/extending/newtypes.rst:390 +#: ../Doc/extending/newtypes.rst:365 +#, fuzzy msgid "" "The :c:member:`~PyTypeObject.tp_richcompare` handler is called when " "comparisons are needed. It is analogous to the :ref:`rich comparison " -"methods `, like :meth:`__lt__`, and also called by :c:func:" +"methods `, like :meth:`!__lt__`, and also called by :c:func:" "`PyObject_RichCompare` and :c:func:`PyObject_RichCompareBool`." msgstr "" "Se llama al manejador :c:member:`~PyTypeObject.tp_richcompare` cuando se " @@ -562,7 +520,7 @@ msgstr "" "`, como :meth:`__lt__`, y también llamado por :c:func:" "`PyObject_RichCompare` y :c:func:`PyObject_RichCompareBool`." -#: ../Doc/extending/newtypes.rst:395 +#: ../Doc/extending/newtypes.rst:370 msgid "" "This function is called with two Python objects and the operator as " "arguments, where the operator is one of ``Py_EQ``, ``Py_NE``, ``Py_LE``, " @@ -580,7 +538,7 @@ msgstr "" "comparación no está implementada y se debe probar el método de comparación " "del otro objeto, o ``NULL`` si se estableció una excepción." -#: ../Doc/extending/newtypes.rst:403 +#: ../Doc/extending/newtypes.rst:378 msgid "" "Here is a sample implementation, for a datatype that is considered equal if " "the size of an internal pointer is equal::" @@ -588,11 +546,11 @@ msgstr "" "Aquí hay una implementación de muestra, para un tipo de datos que se " "considera igual si el tamaño de un puntero interno es igual:" -#: ../Doc/extending/newtypes.rst:433 +#: ../Doc/extending/newtypes.rst:408 msgid "Abstract Protocol Support" msgstr "Soporte de protocolo abstracto" -#: ../Doc/extending/newtypes.rst:435 +#: ../Doc/extending/newtypes.rst:410 msgid "" "Python supports a variety of *abstract* 'protocols;' the specific interfaces " "provided to use these interfaces are documented in :ref:`abstract`." @@ -601,7 +559,7 @@ msgstr "" "específicas proporcionadas para usar estas interfaces están documentadas en :" "ref:`abstract`." -#: ../Doc/extending/newtypes.rst:439 +#: ../Doc/extending/newtypes.rst:414 msgid "" "A number of these abstract interfaces were defined early in the development " "of the Python implementation. In particular, the number, mapping, and " @@ -629,7 +587,7 @@ msgstr "" "indicador puede establecerse para indicar la presencia de un intervalo, pero " "un intervalo aún puede estar vacío.)::" -#: ../Doc/extending/newtypes.rst:454 +#: ../Doc/extending/newtypes.rst:429 msgid "" "If you wish your object to be able to act like a number, a sequence, or a " "mapping object, then you place the address of a structure that implements " @@ -647,7 +605,7 @@ msgstr "" "de cada uno de estos en el directorio :file:`Objects` de la distribución " "fuente de Python. ::" -#: ../Doc/extending/newtypes.rst:463 +#: ../Doc/extending/newtypes.rst:438 msgid "" "This function, if you choose to provide it, should return a hash number for " "an instance of your data type. Here is a simple example::" @@ -655,7 +613,7 @@ msgstr "" "Esta función, si elige proporcionarla, debería retornar un número hash para " "una instancia de su tipo de datos. Aquí hay un ejemplo simple::" -#: ../Doc/extending/newtypes.rst:476 +#: ../Doc/extending/newtypes.rst:451 msgid "" ":c:type:`Py_hash_t` is a signed integer type with a platform-varying width. " "Returning ``-1`` from :c:member:`~PyTypeObject.tp_hash` indicates an error, " @@ -667,7 +625,7 @@ msgstr "" "tp_hash` indica un error, por lo que debe tener cuidado de evitar retornarlo " "cuando el cálculo de hash sea exitoso, como se vio anteriormente." -#: ../Doc/extending/newtypes.rst:485 +#: ../Doc/extending/newtypes.rst:460 msgid "" "This function is called when an instance of your data type is \"called\", " "for example, if ``obj1`` is an instance of your data type and the Python " @@ -679,11 +637,11 @@ msgstr "" "Python contiene ``obj1('hello')``, el controlador :c:member:`~PyTypeObject." "tp_call` se invoca." -#: ../Doc/extending/newtypes.rst:489 +#: ../Doc/extending/newtypes.rst:464 msgid "This function takes three arguments:" msgstr "Esta función toma tres argumentos:" -#: ../Doc/extending/newtypes.rst:491 +#: ../Doc/extending/newtypes.rst:466 msgid "" "*self* is the instance of the data type which is the subject of the call. If " "the call is ``obj1('hello')``, then *self* is ``obj1``." @@ -691,7 +649,7 @@ msgstr "" "*self* es la instancia del tipo de datos que es el sujeto de la llamada. Si " "la llamada es ``obj1('hola')``, entonces *self* es ``obj1``." -#: ../Doc/extending/newtypes.rst:494 +#: ../Doc/extending/newtypes.rst:469 msgid "" "*args* is a tuple containing the arguments to the call. You can use :c:func:" "`PyArg_ParseTuple` to extract the arguments." @@ -699,7 +657,7 @@ msgstr "" "*args* es una tupla que contiene los argumentos de la llamada. Puede usar :c:" "func:`PyArg_ParseTuple` para extraer los argumentos." -#: ../Doc/extending/newtypes.rst:497 +#: ../Doc/extending/newtypes.rst:472 msgid "" "*kwds* is a dictionary of keyword arguments that were passed. If this is non-" "``NULL`` and you support keyword arguments, use :c:func:" @@ -714,17 +672,18 @@ msgstr "" "`TypeError` con un mensaje que indique que los argumentos de palabras clave " "no son compatibles." -#: ../Doc/extending/newtypes.rst:503 +#: ../Doc/extending/newtypes.rst:478 msgid "Here is a toy ``tp_call`` implementation::" msgstr "Aquí hay una implementación de juguete ``tp_call``::" -#: ../Doc/extending/newtypes.rst:529 +#: ../Doc/extending/newtypes.rst:504 +#, fuzzy msgid "" "These functions provide support for the iterator protocol. Both handlers " "take exactly one parameter, the instance for which they are being called, " "and return a new reference. In the case of an error, they should set an " "exception and return ``NULL``. :c:member:`~PyTypeObject.tp_iter` " -"corresponds to the Python :meth:`__iter__` method, while :c:member:" +"corresponds to the Python :meth:`~object.__iter__` method, while :c:member:" "`~PyTypeObject.tp_iternext` corresponds to the Python :meth:`~iterator." "__next__` method." msgstr "" @@ -736,7 +695,7 @@ msgstr "" "member:`~PyTypeObject.tp_iternext` corresponde al método Python :meth:" "`~iterator.__next__`." -#: ../Doc/extending/newtypes.rst:536 +#: ../Doc/extending/newtypes.rst:511 msgid "" "Any :term:`iterable` object must implement the :c:member:`~PyTypeObject." "tp_iter` handler, which must return an :term:`iterator` object. Here the " @@ -746,7 +705,7 @@ msgstr "" "`~PyTypeObject.tp_iter`, que debe retornar un objeto :term:`iterator`. Aquí " "se aplican las mismas pautas que para las clases de Python:" -#: ../Doc/extending/newtypes.rst:540 +#: ../Doc/extending/newtypes.rst:515 msgid "" "For collections (such as lists and tuples) which can support multiple " "independent iterators, a new iterator should be created and returned by each " @@ -756,7 +715,7 @@ msgstr "" "iteradores independientes, cada llamada debe crear y retornar un nuevo " "iterador a :c:member:`~PyTypeObject.tp_iter`." -#: ../Doc/extending/newtypes.rst:543 +#: ../Doc/extending/newtypes.rst:518 msgid "" "Objects which can only be iterated over once (usually due to side effects of " "iteration, such as file objects) can implement :c:member:`~PyTypeObject." @@ -769,7 +728,7 @@ msgstr "" "referencia a ellos mismos y, por lo tanto, también deben implementar el " "manejador :c:member:`~PyTypeObject.tp_iternext`." -#: ../Doc/extending/newtypes.rst:548 +#: ../Doc/extending/newtypes.rst:523 msgid "" "Any :term:`iterator` object should implement both :c:member:`~PyTypeObject." "tp_iter` and :c:member:`~PyTypeObject.tp_iternext`. An iterator's :c:member:" @@ -795,11 +754,11 @@ msgstr "" "mejor. Si se produce un error real, :c:member:`~PyTypeObject.tp_iternext` " "siempre debe establecer una excepción y retornar ``NULL``." -#: ../Doc/extending/newtypes.rst:564 +#: ../Doc/extending/newtypes.rst:539 msgid "Weak Reference Support" msgstr "Soporte de referencia débil" -#: ../Doc/extending/newtypes.rst:566 +#: ../Doc/extending/newtypes.rst:541 msgid "" "One of the goals of Python's weak reference implementation is to allow any " "type to participate in the weak reference mechanism without incurring the " @@ -810,68 +769,40 @@ msgstr "" "sin incurrir en la sobrecarga de objetos críticos para el rendimiento (como " "los números)." -#: ../Doc/extending/newtypes.rst:571 +#: ../Doc/extending/newtypes.rst:546 msgid "Documentation for the :mod:`weakref` module." msgstr "Documentación para el módulo :mod:`weakref`." -#: ../Doc/extending/newtypes.rst:573 -msgid "" -"For an object to be weakly referencable, the extension type must do two " -"things:" -msgstr "" -"Para que un objeto sea débilmente referenciable, el tipo de extensión debe " -"hacer dos cosas:" - -#: ../Doc/extending/newtypes.rst:575 -msgid "" -"Include a :c:expr:`PyObject*` field in the C object structure dedicated to " -"the weak reference mechanism. The object's constructor should leave it " -"``NULL`` (which is automatic when using the default :c:member:`~PyTypeObject." -"tp_alloc`)." -msgstr "" -"Incluye un campo :c:expr:`PyObject*` en la estructura del objeto C dedicado " -"al mecanismo de referencia débil. El constructor del objeto debe dejarlo " -"como ``NULL`` (que es automático cuando se usa el :c:member:`~PyTypeObject." -"tp_alloc` predeterminado)." - -#: ../Doc/extending/newtypes.rst:580 +#: ../Doc/extending/newtypes.rst:548 msgid "" -"Set the :c:member:`~PyTypeObject.tp_weaklistoffset` type member to the " -"offset of the aforementioned field in the C object structure, so that the " -"interpreter knows how to access and modify that field." +"For an object to be weakly referencable, the extension type must set the " +"``Py_TPFLAGS_MANAGED_WEAKREF`` bit of the :c:member:`~PyTypeObject.tp_flags` " +"field. The legacy :c:member:`~PyTypeObject.tp_weaklistoffset` field should " +"be left as zero." msgstr "" -"Establezca el miembro de tipo :c:member:`~PyTypeObject.tp_weaklistoffset` en " -"el desplazamiento del campo mencionado anteriormente en la estructura del " -"objeto C, para que el intérprete sepa cómo acceder y modificar ese campo." -#: ../Doc/extending/newtypes.rst:584 +#: ../Doc/extending/newtypes.rst:553 +#, fuzzy msgid "" -"Concretely, here is how a trivial object structure would be augmented with " -"the required field::" -msgstr "" -"Concretamente, así es como una estructura de objeto trivial se aumentaría " -"con el campo requerido::" - -#: ../Doc/extending/newtypes.rst:592 -msgid "And the corresponding member in the statically declared type object::" +"Concretely, here is how the statically declared type object would look::" msgstr "" "Y el miembro correspondiente en el objeto de tipo declarado estáticamente:" -#: ../Doc/extending/newtypes.rst:600 +#: ../Doc/extending/newtypes.rst:562 +#, fuzzy msgid "" "The only further addition is that ``tp_dealloc`` needs to clear any weak " -"references (by calling :c:func:`PyObject_ClearWeakRefs`) if the field is non-" -"``NULL``::" +"references (by calling :c:func:`PyObject_ClearWeakRefs`)::" msgstr "" "La única adición adicional es que ``tp_dealloc`` necesita borrar cualquier " "referencia débil (llamando a :c:func:`PyObject_ClearWeakRefs`) si el campo " "no es ``NULL`` ::" -#: ../Doc/extending/newtypes.rst:616 +#: ../Doc/extending/newtypes.rst:576 msgid "More Suggestions" msgstr "Más Sugerencias" -#: ../Doc/extending/newtypes.rst:618 +#: ../Doc/extending/newtypes.rst:578 msgid "" "In order to learn how to implement any specific method for your new data " "type, get the :term:`CPython` source code. Go to the :file:`Objects` " @@ -885,7 +816,7 @@ msgstr "" "desee (por ejemplo, ``tp_richcompare``). Encontrará ejemplos de la función " "que desea implementar." -#: ../Doc/extending/newtypes.rst:624 +#: ../Doc/extending/newtypes.rst:584 msgid "" "When you need to verify that an object is a concrete instance of the type " "you are implementing, use the :c:func:`PyObject_TypeCheck` function. A " @@ -895,21 +826,143 @@ msgstr "" "que está implementando, use la función :c:func:`PyObject_TypeCheck`. Una " "muestra de su uso podría ser algo como lo siguiente::" -#: ../Doc/extending/newtypes.rst:635 +#: ../Doc/extending/newtypes.rst:595 msgid "Download CPython source releases." msgstr "Descargue las versiones de origen de CPython." -#: ../Doc/extending/newtypes.rst:635 +#: ../Doc/extending/newtypes.rst:595 msgid "https://www.python.org/downloads/source/" msgstr "https://www.python.org/downloads/source/" -#: ../Doc/extending/newtypes.rst:637 +#: ../Doc/extending/newtypes.rst:597 msgid "" "The CPython project on GitHub, where the CPython source code is developed." msgstr "" "El proyecto CPython en GitHub, donde se desarrolla el código fuente de " "CPython." -#: ../Doc/extending/newtypes.rst:638 +#: ../Doc/extending/newtypes.rst:598 msgid "https://github.com/python/cpython" msgstr "https://github.com/python/cpython" + +#: ../Doc/extending/newtypes.rst:56 +msgid "object" +msgstr "" + +#: ../Doc/extending/newtypes.rst:56 +msgid "deallocation" +msgstr "" + +#: ../Doc/extending/newtypes.rst:56 +msgid "deallocation, object" +msgstr "" + +#: ../Doc/extending/newtypes.rst:56 +msgid "finalization" +msgstr "" + +#: ../Doc/extending/newtypes.rst:56 +#, fuzzy +msgid "finalization, of objects" +msgstr "Finalización y desasignación" + +#: ../Doc/extending/newtypes.rst:91 +msgid "PyErr_Fetch()" +msgstr "" + +#: ../Doc/extending/newtypes.rst:91 +msgid "PyErr_Restore()" +msgstr "" + +#: ../Doc/extending/newtypes.rst:150 +msgid "string" +msgstr "" + +#: ../Doc/extending/newtypes.rst:150 +#, fuzzy +msgid "object representation" +msgstr "Presentación de objetos" + +#: ../Doc/extending/newtypes.rst:150 +msgid "built-in function" +msgstr "" + +#: ../Doc/extending/newtypes.rst:150 +msgid "repr" +msgstr "" + +#~ msgid "" +#~ "The following flag constants are defined in :file:`structmember.h`; they " +#~ "may be combined using bitwise-OR." +#~ msgstr "" +#~ "Las siguientes constantes de flag se definen en :file:`structmember.h`; " +#~ "se pueden combinar usando OR bit a bit (*bitwise-OR*)." + +#~ msgid "Constant" +#~ msgstr "Constante" + +#~ msgid "Meaning" +#~ msgstr "Significado" + +#~ msgid ":const:`READONLY`" +#~ msgstr ":const:`READONLY`" + +#~ msgid "Never writable." +#~ msgstr "Nunca escribible." + +#~ msgid ":const:`PY_AUDIT_READ`" +#~ msgstr ":const:`PY_AUDIT_READ`" + +#~ msgid "" +#~ "Emit an ``object.__getattr__`` :ref:`audit events ` before " +#~ "reading." +#~ msgstr "" +#~ "Emite un ``object.__getattr__`` :ref:`audita evento ` antes " +#~ "de leer." + +#~ msgid "" +#~ ":const:`RESTRICTED`, :const:`READ_RESTRICTED` and :const:" +#~ "`WRITE_RESTRICTED` are deprecated. However, :const:`READ_RESTRICTED` is " +#~ "an alias for :const:`PY_AUDIT_READ`, so fields that specify either :const:" +#~ "`RESTRICTED` or :const:`READ_RESTRICTED` will also raise an audit event." +#~ msgstr "" +#~ ":const:`RESTRICTED`, :const:`READ_RESTRICTED` y :const:`WRITE_RESTRICTED` " +#~ "están en desuso. Sin embargo, :const:`READ_RESTRICTED` es un alias para :" +#~ "const:`PY_AUDIT_READ`, por lo que los campos que especifican :const:" +#~ "`RESTRICTED` o :const:`READ_RESTRICTED` también generarán un evento de " +#~ "auditoría." + +#~ msgid "" +#~ "For an object to be weakly referencable, the extension type must do two " +#~ "things:" +#~ msgstr "" +#~ "Para que un objeto sea débilmente referenciable, el tipo de extensión " +#~ "debe hacer dos cosas:" + +#~ msgid "" +#~ "Include a :c:expr:`PyObject*` field in the C object structure dedicated " +#~ "to the weak reference mechanism. The object's constructor should leave " +#~ "it ``NULL`` (which is automatic when using the default :c:member:" +#~ "`~PyTypeObject.tp_alloc`)." +#~ msgstr "" +#~ "Incluye un campo :c:expr:`PyObject*` en la estructura del objeto C " +#~ "dedicado al mecanismo de referencia débil. El constructor del objeto debe " +#~ "dejarlo como ``NULL`` (que es automático cuando se usa el :c:member:" +#~ "`~PyTypeObject.tp_alloc` predeterminado)." + +#~ msgid "" +#~ "Set the :c:member:`~PyTypeObject.tp_weaklistoffset` type member to the " +#~ "offset of the aforementioned field in the C object structure, so that the " +#~ "interpreter knows how to access and modify that field." +#~ msgstr "" +#~ "Establezca el miembro de tipo :c:member:`~PyTypeObject.tp_weaklistoffset` " +#~ "en el desplazamiento del campo mencionado anteriormente en la estructura " +#~ "del objeto C, para que el intérprete sepa cómo acceder y modificar ese " +#~ "campo." + +#~ msgid "" +#~ "Concretely, here is how a trivial object structure would be augmented " +#~ "with the required field::" +#~ msgstr "" +#~ "Concretamente, así es como una estructura de objeto trivial se aumentaría " +#~ "con el campo requerido::" diff --git a/extending/newtypes_tutorial.po b/extending/newtypes_tutorial.po index 39ca539f35..0f970f2051 100644 --- a/extending/newtypes_tutorial.po +++ b/extending/newtypes_tutorial.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-11-12 10:39+0800\n" "Last-Translator: Rodrigo Tobar \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/extending/newtypes_tutorial.rst:7 msgid "Defining Extension Types: Tutorial" @@ -74,10 +74,11 @@ msgstr "" "nuevo objeto de tipo." #: ../Doc/extending/newtypes_tutorial.rst:38 +#, fuzzy msgid "" "This sort of thing can only be explained by example, so here's a minimal, " -"but complete, module that defines a new type named :class:`Custom` inside a " -"C extension module :mod:`custom`:" +"but complete, module that defines a new type named :class:`!Custom` inside a " +"C extension module :mod:`!custom`:" msgstr "" "Este tipo de cosas solo se pueden explicar con un ejemplo, por lo que aquí " "hay un módulo mínimo, pero completo, que define un nuevo tipo llamado :class:" @@ -106,27 +107,30 @@ msgstr "" "tres cosas:" #: ../Doc/extending/newtypes_tutorial.rst:53 +#, fuzzy msgid "" -"What a :class:`Custom` **object** contains: this is the ``CustomObject`` " -"struct, which is allocated once for each :class:`Custom` instance." +"What a :class:`!Custom` **object** contains: this is the ``CustomObject`` " +"struct, which is allocated once for each :class:`!Custom` instance." msgstr "" "Lo que contiene un **objeto** :class:`Custom`: esta es la estructura " "``CustomObject``, que se asigna una vez para cada instancia de :class:" "`Custom`." #: ../Doc/extending/newtypes_tutorial.rst:55 +#, fuzzy msgid "" -"How the :class:`Custom` **type** behaves: this is the ``CustomType`` struct, " -"which defines a set of flags and function pointers that the interpreter " -"inspects when specific operations are requested." +"How the :class:`!Custom` **type** behaves: this is the ``CustomType`` " +"struct, which defines a set of flags and function pointers that the " +"interpreter inspects when specific operations are requested." msgstr "" "Cómo se comporta :class:`Custom` **type**: esta es la estructura " "``CustomType``, que define un conjunto de indicadores y punteros de función " "que el intérprete inspecciona cuando se solicitan operaciones específicas." #: ../Doc/extending/newtypes_tutorial.rst:58 +#, fuzzy msgid "" -"How to initialize the :mod:`custom` module: this is the ``PyInit_custom`` " +"How to initialize the :mod:`!custom` module: this is the ``PyInit_custom`` " "function and the associated ``custommodule`` struct." msgstr "" "Cómo inicializar el módulo :mod:`custom`: esta es la función " @@ -222,12 +226,13 @@ msgstr "" "ejemplo:" #: ../Doc/extending/newtypes_tutorial.rst:129 +#, fuzzy msgid "" "Note that the name is a dotted name that includes both the module name and " -"the name of the type within the module. The module in this case is :mod:" -"`custom` and the type is :class:`Custom`, so we set the type name to :class:" -"`custom.Custom`. Using the real dotted import path is important to make your " -"type compatible with the :mod:`pydoc` and :mod:`pickle` modules. ::" +"the name of the type within the module. The module in this case is :mod:`!" +"custom` and the type is :class:`!Custom`, so we set the type name to :class:" +"`!custom.Custom`. Using the real dotted import path is important to make " +"your type compatible with the :mod:`pydoc` and :mod:`pickle` modules. ::" msgstr "" "Tenga en cuenta que el nombre es un nombre punteado que incluye tanto el " "nombre del módulo como el nombre del tipo dentro del módulo. El módulo en " @@ -237,9 +242,10 @@ msgstr "" "los módulos :mod:`pydoc` y :mod:`pickle`. ::" #: ../Doc/extending/newtypes_tutorial.rst:138 +#, fuzzy msgid "" "This is so that Python knows how much memory to allocate when creating new :" -"class:`Custom` instances. :c:member:`~PyTypeObject.tp_itemsize` is only " +"class:`!Custom` instances. :c:member:`~PyTypeObject.tp_itemsize` is only " "used for variable-sized objects and should otherwise be zero." msgstr "" "Esto es para que Python sepa cuánta memoria asignar al crear instancias " @@ -247,14 +253,15 @@ msgstr "" "para objetos de tamaño variable y, de lo contrario, debería ser cero." #: ../Doc/extending/newtypes_tutorial.rst:144 +#, fuzzy msgid "" "If you want your type to be subclassable from Python, and your type has the " "same :c:member:`~PyTypeObject.tp_basicsize` as its base type, you may have " "problems with multiple inheritance. A Python subclass of your type will " "have to list your type first in its :attr:`~class.__bases__`, or else it " -"will not be able to call your type's :meth:`__new__` method without getting " -"an error. You can avoid this problem by ensuring that your type has a " -"larger value for :c:member:`~PyTypeObject.tp_basicsize` than its base type " +"will not be able to call your type's :meth:`~object.__new__` method without " +"getting an error. You can avoid this problem by ensuring that your type has " +"a larger value for :c:member:`~PyTypeObject.tp_basicsize` than its base type " "does. Most of the time, this will be true anyway, because either your base " "type will be :class:`object`, or else you will be adding data members to " "your base type, and therefore increasing its size." @@ -271,7 +278,8 @@ msgstr "" "base y, por lo tanto, aumentará su tamaño." #: ../Doc/extending/newtypes_tutorial.rst:154 -msgid "We set the class flags to :const:`Py_TPFLAGS_DEFAULT`. ::" +#, fuzzy +msgid "We set the class flags to :c:macro:`Py_TPFLAGS_DEFAULT`. ::" msgstr "Configuramos las banderas de clase a :const:`Py_TPFLAGS_DEFAULT`. ::" #: ../Doc/extending/newtypes_tutorial.rst:158 @@ -292,11 +300,12 @@ msgstr "" "`~PyTypeObject.tp_doc`. ::" #: ../Doc/extending/newtypes_tutorial.rst:166 +#, fuzzy msgid "" "To enable object creation, we have to provide a :c:member:`~PyTypeObject." -"tp_new` handler. This is the equivalent of the Python method :meth:" -"`__new__`, but has to be specified explicitly. In this case, we can just " -"use the default implementation provided by the API function :c:func:" +"tp_new` handler. This is the equivalent of the Python method :meth:`~object." +"__new__`, but has to be specified explicitly. In this case, we can just use " +"the default implementation provided by the API function :c:func:" "`PyType_GenericNew`. ::" msgstr "" "Para habilitar la creación de objetos, debemos proporcionar un controlador :" @@ -306,58 +315,68 @@ msgstr "" "API :c:func:`PyType_GenericNew`. ::" #: ../Doc/extending/newtypes_tutorial.rst:173 +#, fuzzy msgid "" "Everything else in the file should be familiar, except for some code in :c:" -"func:`PyInit_custom`::" +"func:`!PyInit_custom`::" msgstr "" "Todo lo demás en el archivo debe ser familiar, excepto algún código en :c:" "func:`PyInit_custom`::" #: ../Doc/extending/newtypes_tutorial.rst:179 +#, fuzzy msgid "" -"This initializes the :class:`Custom` type, filling in a number of members to " -"the appropriate default values, including :attr:`ob_type` that we initially " -"set to ``NULL``. ::" +"This initializes the :class:`!Custom` type, filling in a number of members " +"to the appropriate default values, including :c:member:`~PyObject.ob_type` " +"that we initially set to ``NULL``. ::" msgstr "" "Esto inicializa el tipo :class:`Custom`, completando un número de miembros " "con los valores predeterminados apropiados, que incluyen :attr:`ob_type` que " "inicialmente configuramos en ``NULL``. ::" #: ../Doc/extending/newtypes_tutorial.rst:190 +#, fuzzy msgid "" "This adds the type to the module dictionary. This allows us to create :" -"class:`Custom` instances by calling the :class:`Custom` class:" +"class:`!Custom` instances by calling the :class:`!Custom` class:" msgstr "" "Esto agrega el tipo al diccionario del módulo. Esto nos permite crear " "instancias :class:`Custom` llamando la clase :class:`Custom`:" #: ../Doc/extending/newtypes_tutorial.rst:198 +#, fuzzy msgid "" "That's it! All that remains is to build it; put the above code in a file " -"called :file:`custom.c` and:" +"called :file:`custom.c`," msgstr "" "¡Eso es! Todo lo que queda es construirlo; ponga el código anterior en un " "archivo llamado :file:`custom.c` y:" -#: ../Doc/extending/newtypes_tutorial.rst:207 +#: ../Doc/extending/newtypes_tutorial.rst:203 +#, fuzzy +msgid "in a file called :file:`pyproject.toml`, and" +msgstr "en un archivo llamado :file:`setup.py`; luego escribiendo" + +#: ../Doc/extending/newtypes_tutorial.rst:210 msgid "in a file called :file:`setup.py`; then typing" msgstr "en un archivo llamado :file:`setup.py`; luego escribiendo" -#: ../Doc/extending/newtypes_tutorial.rst:213 +#: ../Doc/extending/newtypes_tutorial.rst:216 +#, fuzzy msgid "" -"at a shell should produce a file :file:`custom.so` in a subdirectory; move " -"to that directory and fire up Python --- you should be able to ``import " -"custom`` and play around with Custom objects." +"in a shell should produce a file :file:`custom.so` in a subdirectory and " +"install it; now fire up Python --- you should be able to ``import custom`` " +"and play around with ``Custom`` objects." msgstr "" "en un shell debería producir un archivo :file:`custom.so` en un " "subdirectorio; muévete a ese directorio y abre Python --- deberías poder " "``import custom`` y jugar con objetos personalizados." -#: ../Doc/extending/newtypes_tutorial.rst:217 +#: ../Doc/extending/newtypes_tutorial.rst:220 msgid "That wasn't so hard, was it?" msgstr "Eso no fue tan difícil, ¿verdad?" -#: ../Doc/extending/newtypes_tutorial.rst:219 +#: ../Doc/extending/newtypes_tutorial.rst:222 msgid "" "Of course, the current Custom type is pretty uninteresting. It has no data " "and doesn't do anything. It can't even be subclassed." @@ -365,55 +384,29 @@ msgstr "" "Por supuesto, el tipo personalizado actual es bastante poco interesante. No " "tiene datos y no hace nada. Ni siquiera se puede subclasificar." -#: ../Doc/extending/newtypes_tutorial.rst:223 -msgid "" -"While this documentation showcases the standard :mod:`distutils` module for " -"building C extensions, it is recommended in real-world use cases to use the " -"newer and better-maintained ``setuptools`` library. Documentation on how to " -"do this is out of scope for this document and can be found in the `Python " -"Packaging User's Guide `_." -msgstr "" -"Si bien esta documentación muestra el módulo estándar :mod:`distutils` para " -"construir extensiones C, se recomienda en casos de uso del mundo real " -"utilizar la biblioteca ``setuptools`` más nueva y mejor mantenida. La " -"documentación sobre cómo hacer esto está fuera del alcance de este documento " -"y se puede encontrar en la `Guía de usuario del Empaquetamiento de Python " -"`_." - -#: ../Doc/extending/newtypes_tutorial.rst:231 +#: ../Doc/extending/newtypes_tutorial.rst:227 msgid "Adding data and methods to the Basic example" msgstr "Agregar datos y métodos al ejemplo básico" -#: ../Doc/extending/newtypes_tutorial.rst:233 +#: ../Doc/extending/newtypes_tutorial.rst:229 +#, fuzzy msgid "" "Let's extend the basic example to add some data and methods. Let's also " -"make the type usable as a base class. We'll create a new module, :mod:" -"`custom2` that adds these capabilities:" +"make the type usable as a base class. We'll create a new module, :mod:`!" +"custom2` that adds these capabilities:" msgstr "" "Extendamos el ejemplo básico para agregar algunos datos y métodos. También " "hagamos que el tipo sea utilizable como una clase base. Crearemos un nuevo " "módulo, :mod:`custom2` que agrega estas capacidades:" -#: ../Doc/extending/newtypes_tutorial.rst:240 +#: ../Doc/extending/newtypes_tutorial.rst:236 msgid "This version of the module has a number of changes." msgstr "Esta versión del módulo tiene una serie de cambios." -#: ../Doc/extending/newtypes_tutorial.rst:242 -msgid "We've added an extra include::" -msgstr "Hemos agregado una inclusión adicional::" - -#: ../Doc/extending/newtypes_tutorial.rst:246 -msgid "" -"This include provides declarations that we use to handle attributes, as " -"described a bit later." -msgstr "" -"Esto incluye declaraciones que usamos para manejar atributos, como se " -"describe un poco más adelante." - -#: ../Doc/extending/newtypes_tutorial.rst:249 +#: ../Doc/extending/newtypes_tutorial.rst:238 +#, fuzzy msgid "" -"The :class:`Custom` type now has three data attributes in its C struct, " +"The :class:`!Custom` type now has three data attributes in its C struct, " "*first*, *last*, and *number*. The *first* and *last* variables are Python " "strings containing first and last names. The *number* attribute is a C " "integer." @@ -423,11 +416,11 @@ msgstr "" "caracteres de Python que contienen nombres y apellidos. El atributo *number* " "es un entero C." -#: ../Doc/extending/newtypes_tutorial.rst:253 +#: ../Doc/extending/newtypes_tutorial.rst:242 msgid "The object structure is updated accordingly::" msgstr "La estructura del objeto se actualiza en consecuencia::" -#: ../Doc/extending/newtypes_tutorial.rst:262 +#: ../Doc/extending/newtypes_tutorial.rst:251 msgid "" "Because we now have data to manage, we have to be more careful about object " "allocation and deallocation. At a minimum, we need a deallocation method::" @@ -436,19 +429,20 @@ msgstr "" "cuidadosos con la asignación de objetos y la desasignación. Como mínimo, " "necesitamos un método de desasignación::" -#: ../Doc/extending/newtypes_tutorial.rst:273 +#: ../Doc/extending/newtypes_tutorial.rst:262 msgid "which is assigned to the :c:member:`~PyTypeObject.tp_dealloc` member::" msgstr "que se asigna al miembro :c:member:`~PyTypeObject.tp_dealloc`::" -#: ../Doc/extending/newtypes_tutorial.rst:277 +#: ../Doc/extending/newtypes_tutorial.rst:266 +#, fuzzy msgid "" "This method first clears the reference counts of the two Python attributes. :" "c:func:`Py_XDECREF` correctly handles the case where its argument is " "``NULL`` (which might happen here if ``tp_new`` failed midway). It then " "calls the :c:member:`~PyTypeObject.tp_free` member of the object's type " "(computed by ``Py_TYPE(self)``) to free the object's memory. Note that the " -"object's type might not be :class:`CustomType`, because the object may be an " -"instance of a subclass." +"object's type might not be :class:`!CustomType`, because the object may be " +"an instance of a subclass." msgstr "" "Este método primero borra los recuentos de referencia de los dos atributos " "de Python. :c:func:`Py_XDECREF` maneja correctamente el caso donde su " @@ -458,7 +452,7 @@ msgstr "" "del objeto. Tenga en cuenta que el tipo de objeto podría no ser :class:" "`CustomType`, porque el objeto puede ser una instancia de una subclase." -#: ../Doc/extending/newtypes_tutorial.rst:286 +#: ../Doc/extending/newtypes_tutorial.rst:275 msgid "" "The explicit cast to ``destructor`` above is needed because we defined " "``Custom_dealloc`` to take a ``CustomObject *`` argument, but the " @@ -472,7 +466,7 @@ msgstr "" "``PyObject *``. De lo contrario, el compilador emitirá una advertencia. Este " "es un polimorfismo orientado a objetos, en C!" -#: ../Doc/extending/newtypes_tutorial.rst:292 +#: ../Doc/extending/newtypes_tutorial.rst:281 msgid "" "We want to make sure that the first and last names are initialized to empty " "strings, so we provide a ``tp_new`` implementation::" @@ -481,19 +475,20 @@ msgstr "" "cadenas de caracteres vacías, por lo que proporcionamos una implementación " "``tp_new``::" -#: ../Doc/extending/newtypes_tutorial.rst:316 +#: ../Doc/extending/newtypes_tutorial.rst:305 msgid "and install it in the :c:member:`~PyTypeObject.tp_new` member::" msgstr "e instalarlo en el miembro :c:member:`~PyTypeObject.tp_new`::" -#: ../Doc/extending/newtypes_tutorial.rst:320 +#: ../Doc/extending/newtypes_tutorial.rst:309 +#, fuzzy msgid "" "The ``tp_new`` handler is responsible for creating (as opposed to " "initializing) objects of the type. It is exposed in Python as the :meth:" -"`__new__` method. It is not required to define a ``tp_new`` member, and " -"indeed many extension types will simply reuse :c:func:`PyType_GenericNew` as " -"done in the first version of the ``Custom`` type above. In this case, we " -"use the ``tp_new`` handler to initialize the ``first`` and ``last`` " -"attributes to non-``NULL`` default values." +"`~object.__new__` method. It is not required to define a ``tp_new`` member, " +"and indeed many extension types will simply reuse :c:func:" +"`PyType_GenericNew` as done in the first version of the :class:`!Custom` " +"type above. In this case, we use the ``tp_new`` handler to initialize the " +"``first`` and ``last`` attributes to non-``NULL`` default values." msgstr "" "El controlador ``tp_new`` es responsable de crear (en lugar de inicializar) " "objetos del tipo. Está expuesto en Python como el método :meth:`__new__`. No " @@ -503,7 +498,7 @@ msgstr "" "caso, usamos el controlador ``tp_new`` para inicializar los atributos " "``first`` y ``last`` a valores predeterminados que no sean ``NULL``." -#: ../Doc/extending/newtypes_tutorial.rst:328 +#: ../Doc/extending/newtypes_tutorial.rst:317 msgid "" "``tp_new`` is passed the type being instantiated (not necessarily " "``CustomType``, if a subclass is instantiated) and any arguments passed when " @@ -520,7 +515,7 @@ msgstr "" "al inicializador (también conocido como, ``tp_init`` en C o ``__init__`` en " "Python)." -#: ../Doc/extending/newtypes_tutorial.rst:336 +#: ../Doc/extending/newtypes_tutorial.rst:325 msgid "" "``tp_new`` shouldn't call ``tp_init`` explicitly, as the interpreter will do " "it itself." @@ -528,7 +523,7 @@ msgstr "" "``tp_new`` no debería llamar explícitamente a ``tp_init``, ya que el " "intérprete lo hará por sí mismo." -#: ../Doc/extending/newtypes_tutorial.rst:339 +#: ../Doc/extending/newtypes_tutorial.rst:328 msgid "" "The ``tp_new`` implementation calls the :c:member:`~PyTypeObject.tp_alloc` " "slot to allocate memory::" @@ -536,7 +531,7 @@ msgstr "" "La implementación ``tp_new`` llama al :c:member:`~PyTypeObject.tp_alloc` " "para asignar memoria::" -#: ../Doc/extending/newtypes_tutorial.rst:344 +#: ../Doc/extending/newtypes_tutorial.rst:333 msgid "" "Since memory allocation may fail, we must check the :c:member:`~PyTypeObject." "tp_alloc` result against ``NULL`` before proceeding." @@ -544,7 +539,7 @@ msgstr "" "Como la asignación de memoria puede fallar, debemos verificar el resultado :" "c:member:`~PyTypeObject.tp_alloc` contra ``NULL`` antes de continuar." -#: ../Doc/extending/newtypes_tutorial.rst:348 +#: ../Doc/extending/newtypes_tutorial.rst:337 msgid "" "We didn't fill the :c:member:`~PyTypeObject.tp_alloc` slot ourselves. " "Rather :c:func:`PyType_Ready` fills it for us by inheriting it from our base " @@ -556,11 +551,12 @@ msgstr "" "nuestra clase base, que es :class:`object` por defecto. La mayoría de los " "tipos utilizan la estrategia de asignación predeterminada." -#: ../Doc/extending/newtypes_tutorial.rst:354 +#: ../Doc/extending/newtypes_tutorial.rst:343 +#, fuzzy msgid "" "If you are creating a co-operative :c:member:`~PyTypeObject.tp_new` (one " -"that calls a base type's :c:member:`~PyTypeObject.tp_new` or :meth:" -"`__new__`), you must *not* try to determine what method to call using method " +"that calls a base type's :c:member:`~PyTypeObject.tp_new` or :meth:`~object." +"__new__`), you must *not* try to determine what method to call using method " "resolution order at runtime. Always statically determine what type you are " "going to call, and call its :c:member:`~PyTypeObject.tp_new` directly, or " "via ``type->tp_base->tp_new``. If you do not do this, Python subclasses of " @@ -579,7 +575,7 @@ msgstr "" "posible que no pueda crear instancias de tales subclases sin obtener un :exc:" "`TypeError`)." -#: ../Doc/extending/newtypes_tutorial.rst:364 +#: ../Doc/extending/newtypes_tutorial.rst:353 msgid "" "We also define an initialization function which accepts arguments to provide " "initial values for our instance::" @@ -587,16 +583,17 @@ msgstr "" "También definimos una función de inicialización que acepta argumentos para " "proporcionar valores iniciales para nuestra instancia::" -#: ../Doc/extending/newtypes_tutorial.rst:393 +#: ../Doc/extending/newtypes_tutorial.rst:382 msgid "by filling the :c:member:`~PyTypeObject.tp_init` slot. ::" msgstr "rellenando la ranura :c:member:`~PyTypeObject.tp_init`. ::" -#: ../Doc/extending/newtypes_tutorial.rst:397 +#: ../Doc/extending/newtypes_tutorial.rst:386 +#, fuzzy msgid "" "The :c:member:`~PyTypeObject.tp_init` slot is exposed in Python as the :meth:" -"`__init__` method. It is used to initialize an object after it's created. " -"Initializers always accept positional and keyword arguments, and they should " -"return either ``0`` on success or ``-1`` on error." +"`~object.__init__` method. It is used to initialize an object after it's " +"created. Initializers always accept positional and keyword arguments, and " +"they should return either ``0`` on success or ``-1`` on error." msgstr "" "La ranura :c:member:`~PyTypeObject.tp_init` está expuesta en Python como el " "método :meth:`__init__`. Se utiliza para inicializar un objeto una vez " @@ -604,12 +601,13 @@ msgstr "" "palabras clave, y deben retornar ``0`` en caso de éxito o ``-1`` en caso de " "error." -#: ../Doc/extending/newtypes_tutorial.rst:402 +#: ../Doc/extending/newtypes_tutorial.rst:391 +#, fuzzy msgid "" "Unlike the ``tp_new`` handler, there is no guarantee that ``tp_init`` is " "called at all (for example, the :mod:`pickle` module by default doesn't " -"call :meth:`__init__` on unpickled instances). It can also be called " -"multiple times. Anyone can call the :meth:`__init__` method on our " +"call :meth:`~object.__init__` on unpickled instances). It can also be " +"called multiple times. Anyone can call the :meth:`!__init__` method on our " "objects. For this reason, we have to be extra careful when assigning the " "new attribute values. We might be tempted, for example to assign the " "``first`` member like this::" @@ -622,7 +620,7 @@ msgstr "" "valores de atributo. Podríamos sentirnos tentados, por ejemplo, a asignar el " "``primer`` miembro de esta manera:" -#: ../Doc/extending/newtypes_tutorial.rst:416 +#: ../Doc/extending/newtypes_tutorial.rst:405 msgid "" "But this would be risky. Our type doesn't restrict the type of the " "``first`` member, so it could be any kind of object. It could have a " @@ -638,7 +636,7 @@ msgstr "" "` y permite que se ejecute código arbitrario en otros hilos que acceden " "y modifican nuestro objeto." -#: ../Doc/extending/newtypes_tutorial.rst:423 +#: ../Doc/extending/newtypes_tutorial.rst:412 msgid "" "To be paranoid and protect ourselves against this possibility, we almost " "always reassign members before decrementing their reference counts. When " @@ -648,12 +646,12 @@ msgstr "" "reasignamos miembros antes de disminuir sus recuentos de referencias. " "¿Cuándo no tenemos que hacer esto?" -#: ../Doc/extending/newtypes_tutorial.rst:427 +#: ../Doc/extending/newtypes_tutorial.rst:416 msgid "when we absolutely know that the reference count is greater than 1;" msgstr "" "cuando sabemos absolutamente que el recuento de referencia es mayor que 1;" -#: ../Doc/extending/newtypes_tutorial.rst:429 +#: ../Doc/extending/newtypes_tutorial.rst:418 msgid "" "when we know that deallocation of the object [#]_ will neither release the :" "term:`GIL` nor cause any calls back into our type's code;" @@ -661,7 +659,7 @@ msgstr "" "cuando sabemos que la desasignación del objeto [#]_ no liberará el :term:" "`GIL` ni causará ninguna llamada al código de nuestro tipo;" -#: ../Doc/extending/newtypes_tutorial.rst:432 +#: ../Doc/extending/newtypes_tutorial.rst:421 msgid "" "when decrementing a reference count in a :c:member:`~PyTypeObject." "tp_dealloc` handler on a type which doesn't support cyclic garbage " @@ -671,7 +669,7 @@ msgstr "" "`~PyTypeObject.tp_dealloc` en un tipo que no admite la recolección de basura " "cíclica [#]_." -#: ../Doc/extending/newtypes_tutorial.rst:435 +#: ../Doc/extending/newtypes_tutorial.rst:424 msgid "" "We want to expose our instance variables as attributes. There are a number " "of ways to do that. The simplest way is to define member definitions::" @@ -679,13 +677,13 @@ msgstr "" "Queremos exponer nuestras variables de instancia como atributos. Hay varias " "formas de hacerlo. La forma más simple es definir definiciones de miembros::" -#: ../Doc/extending/newtypes_tutorial.rst:448 +#: ../Doc/extending/newtypes_tutorial.rst:437 msgid "" "and put the definitions in the :c:member:`~PyTypeObject.tp_members` slot::" msgstr "" "y poner las definiciones en la ranura :c:member:`~PyTypeObject.tp_members`::" -#: ../Doc/extending/newtypes_tutorial.rst:452 +#: ../Doc/extending/newtypes_tutorial.rst:441 msgid "" "Each member definition has a member name, type, offset, access flags and " "documentation string. See the :ref:`Generic-Attribute-Management` section " @@ -696,7 +694,7 @@ msgstr "" "sección :ref:`Generic-Attribute-Management` a continuación para obtener más " "detalles." -#: ../Doc/extending/newtypes_tutorial.rst:456 +#: ../Doc/extending/newtypes_tutorial.rst:445 msgid "" "A disadvantage of this approach is that it doesn't provide a way to restrict " "the types of objects that can be assigned to the Python attributes. We " @@ -714,18 +712,20 @@ msgstr "" "se inicialicen en valores que no sean ``NULL``, los miembros se pueden " "establecer en ``NULL`` si se eliminan los atributos." -#: ../Doc/extending/newtypes_tutorial.rst:463 +#: ../Doc/extending/newtypes_tutorial.rst:452 +#, fuzzy msgid "" -"We define a single method, :meth:`Custom.name()`, that outputs the objects " +"We define a single method, :meth:`!Custom.name()`, that outputs the objects " "name as the concatenation of the first and last names. ::" msgstr "" "Definimos un método único, :meth:`Custom.name()`, que genera el nombre de " "los objetos como la concatenación de los nombres y apellidos. ::" -#: ../Doc/extending/newtypes_tutorial.rst:480 +#: ../Doc/extending/newtypes_tutorial.rst:469 +#, fuzzy msgid "" -"The method is implemented as a C function that takes a :class:`Custom` (or :" -"class:`Custom` subclass) instance as the first argument. Methods always " +"The method is implemented as a C function that takes a :class:`!Custom` (or :" +"class:`!Custom` subclass) instance as the first argument. Methods always " "take an instance as the first argument. Methods often take positional and " "keyword arguments as well, but in this case we don't take any and don't need " "to accept a positional argument tuple or keyword argument dictionary. This " @@ -739,10 +739,11 @@ msgstr "" "posicionales o un diccionario de argumentos de palabras clave. Este método " "es equivalente al método Python:" -#: ../Doc/extending/newtypes_tutorial.rst:492 +#: ../Doc/extending/newtypes_tutorial.rst:481 +#, fuzzy msgid "" -"Note that we have to check for the possibility that our :attr:`first` and :" -"attr:`last` members are ``NULL``. This is because they can be deleted, in " +"Note that we have to check for the possibility that our :attr:`!first` and :" +"attr:`!last` members are ``NULL``. This is because they can be deleted, in " "which case they are set to ``NULL``. It would be better to prevent deletion " "of these attributes and to restrict the attribute values to be strings. " "We'll see how to do that in the next section." @@ -754,7 +755,7 @@ msgstr "" "para que sean cadenas de caracteres. Veremos cómo hacerlo en la siguiente " "sección." -#: ../Doc/extending/newtypes_tutorial.rst:498 +#: ../Doc/extending/newtypes_tutorial.rst:487 msgid "" "Now that we've defined the method, we need to create an array of method " "definitions::" @@ -762,24 +763,26 @@ msgstr "" "Ahora que hemos definido el método, necesitamos crear un arreglo de " "definiciones de métodos::" -#: ../Doc/extending/newtypes_tutorial.rst:508 +#: ../Doc/extending/newtypes_tutorial.rst:497 +#, fuzzy msgid "" -"(note that we used the :const:`METH_NOARGS` flag to indicate that the method " -"is expecting no arguments other than *self*)" +"(note that we used the :c:macro:`METH_NOARGS` flag to indicate that the " +"method is expecting no arguments other than *self*)" msgstr "" "(tenga en cuenta que usamos el indicador :const:`METH_NOARGS` para indicar " "que el método no espera argumentos distintos de *self*)" -#: ../Doc/extending/newtypes_tutorial.rst:511 +#: ../Doc/extending/newtypes_tutorial.rst:500 msgid "and assign it to the :c:member:`~PyTypeObject.tp_methods` slot::" msgstr "y asignarlo a la ranura :c:member:`~PyTypeObject.tp_methods`::" -#: ../Doc/extending/newtypes_tutorial.rst:515 +#: ../Doc/extending/newtypes_tutorial.rst:504 +#, fuzzy msgid "" "Finally, we'll make our type usable as a base class for subclassing. We've " "written our methods carefully so far so that they don't make any assumptions " "about the type of the object being created or used, so all we need to do is " -"to add the :const:`Py_TPFLAGS_BASETYPE` to our class flag definition::" +"to add the :c:macro:`Py_TPFLAGS_BASETYPE` to our class flag definition::" msgstr "" "Finalmente, haremos que nuestro tipo sea utilizable como una clase base para " "la subclase. Hemos escrito nuestros métodos cuidadosamente hasta ahora para " @@ -787,9 +790,10 @@ msgstr "" "utilizando, por lo que todo lo que tenemos que hacer es agregar :const:" "`Py_TPFLAGS_BASETYPE` a nuestra definición de bandera de clase::" -#: ../Doc/extending/newtypes_tutorial.rst:522 +#: ../Doc/extending/newtypes_tutorial.rst:511 +#, fuzzy msgid "" -"We rename :c:func:`PyInit_custom` to :c:func:`PyInit_custom2`, update the " +"We rename :c:func:`!PyInit_custom` to :c:func:`!PyInit_custom2`, update the " "module name in the :c:type:`PyModuleDef` struct, and update the full class " "name in the :c:type:`PyTypeObject` struct." msgstr "" @@ -798,22 +802,28 @@ msgstr "" "actualizamos el nombre completo de la clase en la estructura :c:type:" "`PyTypeObject`." -#: ../Doc/extending/newtypes_tutorial.rst:526 -msgid "Finally, we update our :file:`setup.py` file to build the new module:" +#: ../Doc/extending/newtypes_tutorial.rst:515 +#, fuzzy +msgid "Finally, we update our :file:`setup.py` file to include the new module," msgstr "" "Finalmente, actualizamos nuestro archivo :file:`setup.py` para construir el " "nuevo módulo:" -#: ../Doc/extending/newtypes_tutorial.rst:539 +#: ../Doc/extending/newtypes_tutorial.rst:525 +msgid "and then we re-install so that we can ``import custom2``:" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:532 msgid "Providing finer control over data attributes" msgstr "Proporcionar un control más preciso sobre los atributos de datos" -#: ../Doc/extending/newtypes_tutorial.rst:541 +#: ../Doc/extending/newtypes_tutorial.rst:534 +#, fuzzy msgid "" -"In this section, we'll provide finer control over how the :attr:`first` and :" -"attr:`last` attributes are set in the :class:`Custom` example. In the " -"previous version of our module, the instance variables :attr:`first` and :" -"attr:`last` could be set to non-string values or even deleted. We want to " +"In this section, we'll provide finer control over how the :attr:`!first` " +"and :attr:`!last` attributes are set in the :class:`!Custom` example. In the " +"previous version of our module, the instance variables :attr:`!first` and :" +"attr:`!last` could be set to non-string values or even deleted. We want to " "make sure that these attributes always contain strings." msgstr "" "En esta sección, proporcionaremos un control más preciso sobre cómo se " @@ -823,19 +833,21 @@ msgstr "" "no sean de cadena o incluso eliminarse. Queremos asegurarnos de que estos " "atributos siempre contengan cadenas." -#: ../Doc/extending/newtypes_tutorial.rst:550 +#: ../Doc/extending/newtypes_tutorial.rst:543 +#, fuzzy msgid "" -"To provide greater control, over the :attr:`first` and :attr:`last` " +"To provide greater control, over the :attr:`!first` and :attr:`!last` " "attributes, we'll use custom getter and setter functions. Here are the " -"functions for getting and setting the :attr:`first` attribute::" +"functions for getting and setting the :attr:`!first` attribute::" msgstr "" "Para proporcionar un mayor control sobre los atributos :attr:`first` y :attr:" "`last`, usaremos funciones personalizadas *getter* y *setter*. Estas son las " "funciones para obtener y configurar el atributo :attr:`first`::" -#: ../Doc/extending/newtypes_tutorial.rst:581 +#: ../Doc/extending/newtypes_tutorial.rst:574 +#, fuzzy msgid "" -"The getter function is passed a :class:`Custom` object and a \"closure\", " +"The getter function is passed a :class:`!Custom` object and a \"closure\", " "which is a void pointer. In this case, the closure is ignored. (The " "closure supports an advanced usage in which definition data is passed to the " "getter and setter. This could, for example, be used to allow a single set of " @@ -850,27 +862,28 @@ msgstr "" "que el atributo se obtenga o establezca en función de los datos en el " "cierre.)" -#: ../Doc/extending/newtypes_tutorial.rst:587 +#: ../Doc/extending/newtypes_tutorial.rst:580 +#, fuzzy msgid "" -"The setter function is passed the :class:`Custom` object, the new value, and " -"the closure. The new value may be ``NULL``, in which case the attribute is " -"being deleted. In our setter, we raise an error if the attribute is deleted " -"or if its new value is not a string." +"The setter function is passed the :class:`!Custom` object, the new value, " +"and the closure. The new value may be ``NULL``, in which case the attribute " +"is being deleted. In our setter, we raise an error if the attribute is " +"deleted or if its new value is not a string." msgstr "" "La función *setter* pasa el objeto :class:`Custom`, el nuevo valor y el " "cierre. El nuevo valor puede ser ``NULL``, en cuyo caso se está eliminando " "el atributo. En nuestro *setter*, generamos un error si el atributo se " "elimina o si su nuevo valor no es una cadena." -#: ../Doc/extending/newtypes_tutorial.rst:592 +#: ../Doc/extending/newtypes_tutorial.rst:585 msgid "We create an array of :c:type:`PyGetSetDef` structures::" msgstr "Creamos un arreglo de estructuras :c:type:`PyGetSetDef`::" -#: ../Doc/extending/newtypes_tutorial.rst:602 +#: ../Doc/extending/newtypes_tutorial.rst:595 msgid "and register it in the :c:member:`~PyTypeObject.tp_getset` slot::" msgstr "y lo registra en la ranura :c:member:`~PyTypeObject.tp_getset`::" -#: ../Doc/extending/newtypes_tutorial.rst:606 +#: ../Doc/extending/newtypes_tutorial.rst:599 msgid "" "The last item in a :c:type:`PyGetSetDef` structure is the \"closure\" " "mentioned above. In this case, we aren't using a closure, so we just pass " @@ -880,11 +893,11 @@ msgstr "" "\"cierre\" (*closure*) mencionado anteriormente. En este caso, no estamos " "usando un cierre, por lo que simplemente pasamos ``NULL``." -#: ../Doc/extending/newtypes_tutorial.rst:609 +#: ../Doc/extending/newtypes_tutorial.rst:602 msgid "We also remove the member definitions for these attributes::" msgstr "También eliminamos las definiciones de miembro para estos atributos::" -#: ../Doc/extending/newtypes_tutorial.rst:617 +#: ../Doc/extending/newtypes_tutorial.rst:610 msgid "" "We also need to update the :c:member:`~PyTypeObject.tp_init` handler to only " "allow strings [#]_ to be passed::" @@ -892,7 +905,7 @@ msgstr "" "También necesitamos actualizar el manejador :c:member:`~PyTypeObject." "tp_init` para permitir que solo se pasen las cadenas [#]_::" -#: ../Doc/extending/newtypes_tutorial.rst:646 +#: ../Doc/extending/newtypes_tutorial.rst:639 msgid "" "With these changes, we can assure that the ``first`` and ``last`` members " "are never ``NULL`` so we can remove checks for ``NULL`` values in almost all " @@ -910,7 +923,7 @@ msgstr "" "la posibilidad de que la inicialización de estos miembros falle en " "``tp_new``." -#: ../Doc/extending/newtypes_tutorial.rst:653 +#: ../Doc/extending/newtypes_tutorial.rst:646 msgid "" "We also rename the module initialization function and module name in the " "initialization function, as we did before, and we add an extra definition to " @@ -920,11 +933,11 @@ msgstr "" "nombre del módulo en la función de inicialización, como lo hicimos antes, y " "agregamos una definición adicional al archivo :file:`setup.py`." -#: ../Doc/extending/newtypes_tutorial.rst:659 +#: ../Doc/extending/newtypes_tutorial.rst:652 msgid "Supporting cyclic garbage collection" msgstr "Apoyo a la recolección de basura cíclica" -#: ../Doc/extending/newtypes_tutorial.rst:661 +#: ../Doc/extending/newtypes_tutorial.rst:654 msgid "" "Python has a :term:`cyclic garbage collector (GC) ` that " "can identify unneeded objects even when their reference counts are not zero. " @@ -935,7 +948,7 @@ msgstr "" "recuentos de referencia no son cero. Esto puede suceder cuando los objetos " "están involucrados en ciclos. Por ejemplo, considere:" -#: ../Doc/extending/newtypes_tutorial.rst:671 +#: ../Doc/extending/newtypes_tutorial.rst:664 msgid "" "In this example, we create a list that contains itself. When we delete it, " "it still has a reference from itself. Its reference count doesn't drop to " @@ -947,13 +960,14 @@ msgstr "" "referencia no cae a cero. Afortunadamente, el recolector cíclico de basura " "de Python finalmente descubrirá que la lista es basura y la liberará." -#: ../Doc/extending/newtypes_tutorial.rst:676 +#: ../Doc/extending/newtypes_tutorial.rst:669 +#, fuzzy msgid "" -"In the second version of the :class:`Custom` example, we allowed any kind of " -"object to be stored in the :attr:`first` or :attr:`last` attributes [#]_. " -"Besides, in the second and third versions, we allowed subclassing :class:" -"`Custom`, and subclasses may add arbitrary attributes. For any of those two " -"reasons, :class:`Custom` objects can participate in cycles:" +"In the second version of the :class:`!Custom` example, we allowed any kind " +"of object to be stored in the :attr:`!first` or :attr:`!last` attributes " +"[#]_. Besides, in the second and third versions, we allowed subclassing :" +"class:`!Custom`, and subclasses may add arbitrary attributes. For any of " +"those two reasons, :class:`!Custom` objects can participate in cycles:" msgstr "" "En la segunda versión del ejemplo :class:`Custom`, permitimos que cualquier " "tipo de objeto se almacene en :attr:`first` o :attr:`last` atributos [#]_. " @@ -962,19 +976,20 @@ msgstr "" "cualquiera de esos dos motivos, los objetos :class:`Custom` pueden " "participar en ciclos:" -#: ../Doc/extending/newtypes_tutorial.rst:690 +#: ../Doc/extending/newtypes_tutorial.rst:683 +#, fuzzy msgid "" -"To allow a :class:`Custom` instance participating in a reference cycle to be " -"properly detected and collected by the cyclic GC, our :class:`Custom` type " -"needs to fill two additional slots and to enable a flag that enables these " -"slots:" +"To allow a :class:`!Custom` instance participating in a reference cycle to " +"be properly detected and collected by the cyclic GC, our :class:`!Custom` " +"type needs to fill two additional slots and to enable a flag that enables " +"these slots:" msgstr "" "Para permitir que una instancia de :class:`Custom` que participa en un ciclo " "de referencia sea detectada y recolectada correctamente por el GC cíclico, " "nuestro tipo :class:`Custom` necesita llenar dos espacios adicionales y " "habilitar un indicador que permita estos espacios:" -#: ../Doc/extending/newtypes_tutorial.rst:697 +#: ../Doc/extending/newtypes_tutorial.rst:690 msgid "" "First, the traversal method lets the cyclic GC know about subobjects that " "could participate in cycles::" @@ -982,11 +997,12 @@ msgstr "" "Primero, el método transversal permite que el GC cíclico conozca los " "subobjetos que podrían participar en los ciclos::" -#: ../Doc/extending/newtypes_tutorial.rst:717 +#: ../Doc/extending/newtypes_tutorial.rst:710 +#, fuzzy msgid "" "For each subobject that can participate in cycles, we need to call the :c:" -"func:`visit` function, which is passed to the traversal method. The :c:func:" -"`visit` function takes as arguments the subobject and the extra argument " +"func:`!visit` function, which is passed to the traversal method. The :c:func:" +"`!visit` function takes as arguments the subobject and the extra argument " "*arg* passed to the traversal method. It returns an integer value that must " "be returned if it is non-zero." msgstr "" @@ -996,7 +1012,7 @@ msgstr "" "pasados al método transversal. Retorna un valor entero que debe retornarse " "si no es cero." -#: ../Doc/extending/newtypes_tutorial.rst:723 +#: ../Doc/extending/newtypes_tutorial.rst:716 msgid "" "Python provides a :c:func:`Py_VISIT` macro that automates calling visit " "functions. With :c:func:`Py_VISIT`, we can minimize the amount of " @@ -1006,7 +1022,7 @@ msgstr "" "de visita de llamada. Con :c:func:`Py_VISIT`, podemos minimizar la cantidad " "de repeticiones en ``Custom_traverse``::" -#: ../Doc/extending/newtypes_tutorial.rst:736 +#: ../Doc/extending/newtypes_tutorial.rst:729 msgid "" "The :c:member:`~PyTypeObject.tp_traverse` implementation must name its " "arguments exactly *visit* and *arg* in order to use :c:func:`Py_VISIT`." @@ -1014,7 +1030,7 @@ msgstr "" "La implementación :c:member:`~PyTypeObject.tp_traverse` debe nombrar sus " "argumentos exactamente *visit* y *arg* para usar :c:func:`Py_VISIT`." -#: ../Doc/extending/newtypes_tutorial.rst:739 +#: ../Doc/extending/newtypes_tutorial.rst:732 msgid "" "Second, we need to provide a method for clearing any subobjects that can " "participate in cycles::" @@ -1022,7 +1038,7 @@ msgstr "" "En segundo lugar, debemos proporcionar un método para borrar cualquier " "subobjeto que pueda participar en los ciclos::" -#: ../Doc/extending/newtypes_tutorial.rst:750 +#: ../Doc/extending/newtypes_tutorial.rst:743 msgid "" "Notice the use of the :c:func:`Py_CLEAR` macro. It is the recommended and " "safe way to clear data attributes of arbitrary types while decrementing " @@ -1039,11 +1055,11 @@ msgstr "" "que lee el atributo nuevamente (*especialmente* si hay un ciclo de " "referencia)." -#: ../Doc/extending/newtypes_tutorial.rst:758 +#: ../Doc/extending/newtypes_tutorial.rst:751 msgid "You could emulate :c:func:`Py_CLEAR` by writing::" msgstr "Puede emular :c:func:`Py_CLEAR` escribiendo::" -#: ../Doc/extending/newtypes_tutorial.rst:765 +#: ../Doc/extending/newtypes_tutorial.rst:758 msgid "" "Nevertheless, it is much easier and less error-prone to always use :c:func:" "`Py_CLEAR` when deleting an attribute. Don't try to micro-optimize at the " @@ -1053,7 +1069,7 @@ msgstr "" "func:`Py_CLEAR` al eliminar un atributo. ¡No intentes micro-optimizar a " "expensas de la robustez!" -#: ../Doc/extending/newtypes_tutorial.rst:769 +#: ../Doc/extending/newtypes_tutorial.rst:762 msgid "" "The deallocator ``Custom_dealloc`` may call arbitrary code when clearing " "attributes. It means the circular GC can be triggered inside the function. " @@ -1070,14 +1086,15 @@ msgstr "" "reubicador reimplementado usando :c:func:`PyObject_GC_UnTrack` y " "``Custom_clear``::" -#: ../Doc/extending/newtypes_tutorial.rst:784 +#: ../Doc/extending/newtypes_tutorial.rst:777 +#, fuzzy msgid "" -"Finally, we add the :const:`Py_TPFLAGS_HAVE_GC` flag to the class flags::" +"Finally, we add the :c:macro:`Py_TPFLAGS_HAVE_GC` flag to the class flags::" msgstr "" "Finalmente, agregamos el indicador :const:`Py_TPFLAGS_HAVE_GC` a los " "indicadores de clase::" -#: ../Doc/extending/newtypes_tutorial.rst:788 +#: ../Doc/extending/newtypes_tutorial.rst:781 msgid "" "That's pretty much it. If we had written custom :c:member:`~PyTypeObject." "tp_alloc` or :c:member:`~PyTypeObject.tp_free` handlers, we'd need to modify " @@ -1090,11 +1107,11 @@ msgstr "" "La mayoría de las extensiones usarán las versiones proporcionadas " "automáticamente." -#: ../Doc/extending/newtypes_tutorial.rst:794 +#: ../Doc/extending/newtypes_tutorial.rst:787 msgid "Subclassing other types" msgstr "Subclases de otros tipos" -#: ../Doc/extending/newtypes_tutorial.rst:796 +#: ../Doc/extending/newtypes_tutorial.rst:789 msgid "" "It is possible to create new extension types that are derived from existing " "types. It is easiest to inherit from the built in types, since an extension " @@ -1107,11 +1124,12 @@ msgstr "" "ser difícil compartir estas estructuras :c:type:`PyTypeObject` entre módulos " "de extensión." -#: ../Doc/extending/newtypes_tutorial.rst:801 +#: ../Doc/extending/newtypes_tutorial.rst:794 +#, fuzzy msgid "" -"In this example we will create a :class:`SubList` type that inherits from " +"In this example we will create a :class:`!SubList` type that inherits from " "the built-in :class:`list` type. The new type will be completely compatible " -"with regular lists, but will have an additional :meth:`increment` method " +"with regular lists, but will have an additional :meth:`!increment` method " "that increases an internal counter:" msgstr "" "En este ejemplo crearemos un tipo :class:`SubList` que hereda del tipo " @@ -1119,9 +1137,10 @@ msgstr "" "las listas regulares, pero tendrá un método adicional :meth:`increment` que " "aumenta un contador interno:" -#: ../Doc/extending/newtypes_tutorial.rst:821 +#: ../Doc/extending/newtypes_tutorial.rst:814 +#, fuzzy msgid "" -"As you can see, the source code closely resembles the :class:`Custom` " +"As you can see, the source code closely resembles the :class:`!Custom` " "examples in previous sections. We will break down the main differences " "between them. ::" msgstr "" @@ -1129,7 +1148,7 @@ msgstr "" "`Custom` en secciones anteriores. Desglosaremos las principales diferencias " "entre ellos. ::" -#: ../Doc/extending/newtypes_tutorial.rst:829 +#: ../Doc/extending/newtypes_tutorial.rst:822 msgid "" "The primary difference for derived type objects is that the base type's " "object structure must be the first value. The base type will already " @@ -1139,9 +1158,10 @@ msgstr "" "estructura de objeto del tipo base debe ser el primer valor. El tipo base ya " "incluirá :c:func:`PyObject_HEAD` al comienzo de su estructura." -#: ../Doc/extending/newtypes_tutorial.rst:833 +#: ../Doc/extending/newtypes_tutorial.rst:826 +#, fuzzy msgid "" -"When a Python object is a :class:`SubList` instance, its ``PyObject *`` " +"When a Python object is a :class:`!SubList` instance, its ``PyObject *`` " "pointer can be safely cast to both ``PyListObject *`` and ``SubListObject " "*``::" msgstr "" @@ -1149,13 +1169,14 @@ msgstr "" "``PyObject *`` se puede convertir de forma segura tanto en ``PyListObject " "*`` como en ``SubListObject *``::" -#: ../Doc/extending/newtypes_tutorial.rst:845 +#: ../Doc/extending/newtypes_tutorial.rst:838 +#, fuzzy msgid "" -"We see above how to call through to the :attr:`__init__` method of the base " -"type." +"We see above how to call through to the :meth:`~object.__init__` method of " +"the base type." msgstr "Vemos arriba cómo llamar al método :attr:`__init__` del tipo base." -#: ../Doc/extending/newtypes_tutorial.rst:848 +#: ../Doc/extending/newtypes_tutorial.rst:841 msgid "" "This pattern is important when writing a type with custom :c:member:" "`~PyTypeObject.tp_new` and :c:member:`~PyTypeObject.tp_dealloc` members. " @@ -1170,7 +1191,7 @@ msgstr "" "tp_alloc`, pero deja que la clase base lo maneje llamando a su propio :c:" "member:`~PyTypeObject.tp_new`." -#: ../Doc/extending/newtypes_tutorial.rst:854 +#: ../Doc/extending/newtypes_tutorial.rst:847 msgid "" "The :c:type:`PyTypeObject` struct supports a :c:member:`~PyTypeObject." "tp_base` specifying the type's concrete base class. Due to cross-platform " @@ -1184,7 +1205,7 @@ msgstr "" "una referencia a :c:type:`PyList_Type`; debe hacerse más tarde en la función " "de inicialización del módulo::" -#: ../Doc/extending/newtypes_tutorial.rst:882 +#: ../Doc/extending/newtypes_tutorial.rst:875 msgid "" "Before calling :c:func:`PyType_Ready`, the type structure must have the :c:" "member:`~PyTypeObject.tp_base` slot filled in. When we are deriving an " @@ -1198,19 +1219,20 @@ msgstr "" "tp_alloc` ranura con :c:func:`PyType_GenericNew` -- la función de asignación " "del tipo base será heredada." -#: ../Doc/extending/newtypes_tutorial.rst:888 +#: ../Doc/extending/newtypes_tutorial.rst:881 +#, fuzzy msgid "" "After that, calling :c:func:`PyType_Ready` and adding the type object to the " -"module is the same as with the basic :class:`Custom` examples." +"module is the same as with the basic :class:`!Custom` examples." msgstr "" "Después de eso, llamar a :c:func:`PyType_Ready` y agregar el objeto tipo al " "módulo es lo mismo que con los ejemplos básicos :class:`Custom`." -#: ../Doc/extending/newtypes_tutorial.rst:893 +#: ../Doc/extending/newtypes_tutorial.rst:886 msgid "Footnotes" msgstr "Notas al pie" -#: ../Doc/extending/newtypes_tutorial.rst:894 +#: ../Doc/extending/newtypes_tutorial.rst:887 msgid "" "This is true when we know that the object is a basic type, like a string or " "a float." @@ -1218,7 +1240,7 @@ msgstr "" "Esto es cierto cuando sabemos que el objeto es un tipo básico, como una " "cadena o un flotador." -#: ../Doc/extending/newtypes_tutorial.rst:897 +#: ../Doc/extending/newtypes_tutorial.rst:890 msgid "" "We relied on this in the :c:member:`~PyTypeObject.tp_dealloc` handler in " "this example, because our type doesn't support garbage collection." @@ -1226,7 +1248,7 @@ msgstr "" "Nos basamos en esto en el manejador :c:member:`~PyTypeObject.tp_dealloc` en " "este ejemplo, porque nuestro tipo no admite la recolección de basura." -#: ../Doc/extending/newtypes_tutorial.rst:900 +#: ../Doc/extending/newtypes_tutorial.rst:893 msgid "" "We now know that the first and last members are strings, so perhaps we could " "be less careful about decrementing their reference counts, however, we " @@ -1243,7 +1265,7 @@ msgstr "" "instancia de una subclase de cadena de caracteres no vuelva a llamar a " "nuestros objetos." -#: ../Doc/extending/newtypes_tutorial.rst:906 +#: ../Doc/extending/newtypes_tutorial.rst:899 msgid "" "Also, even with our attributes restricted to strings instances, the user " "could pass arbitrary :class:`str` subclasses and therefore still create " @@ -1252,3 +1274,29 @@ msgstr "" "Además, incluso con nuestros atributos restringidos a instancias de cadenas, " "el usuario podría pasar subclases arbitrarias :class:`str` y, por lo tanto, " "seguir creando ciclos de referencia." + +#~ msgid "" +#~ "While this documentation showcases the standard :mod:`distutils` module " +#~ "for building C extensions, it is recommended in real-world use cases to " +#~ "use the newer and better-maintained ``setuptools`` library. " +#~ "Documentation on how to do this is out of scope for this document and can " +#~ "be found in the `Python Packaging User's Guide `_." +#~ msgstr "" +#~ "Si bien esta documentación muestra el módulo estándar :mod:`distutils` " +#~ "para construir extensiones C, se recomienda en casos de uso del mundo " +#~ "real utilizar la biblioteca ``setuptools`` más nueva y mejor mantenida. " +#~ "La documentación sobre cómo hacer esto está fuera del alcance de este " +#~ "documento y se puede encontrar en la `Guía de usuario del Empaquetamiento " +#~ "de Python `_." + +#~ msgid "We've added an extra include::" +#~ msgstr "Hemos agregado una inclusión adicional::" + +#~ msgid "" +#~ "This include provides declarations that we use to handle attributes, as " +#~ "described a bit later." +#~ msgstr "" +#~ "Esto incluye declaraciones que usamos para manejar atributos, como se " +#~ "describe un poco más adelante." diff --git a/extending/windows.po b/extending/windows.po index 0efba4512f..c6589baf4f 100644 --- a/extending/windows.po +++ b/extending/windows.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-06-24 22:59+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/extending/windows.rst:8 msgid "Building C and C++ Extensions on Windows" @@ -75,12 +75,13 @@ msgid "A Cookbook Approach" msgstr "Un enfoque de libro de cocina" #: ../Doc/extending/windows.rst:36 +#, fuzzy msgid "" "There are two approaches to building extension modules on Windows, just as " -"there are on Unix: use the :mod:`distutils` package to control the build " -"process, or do things manually. The distutils approach works well for most " -"extensions; documentation on using :mod:`distutils` to build and package " -"extension modules is available in :ref:`distutils-index`. If you find you " +"there are on Unix: use the ``setuptools`` package to control the build " +"process, or do things manually. The setuptools approach works well for most " +"extensions; documentation on using ``setuptools`` to build and package " +"extension modules is available in :ref:`setuptools-index`. If you find you " "really need to do things manually, it may be instructive to study the " "project file for the :source:`winsound ` standard " "library module." @@ -274,11 +275,12 @@ msgstr "" "initspam(void)`` o ``PyObject_declspec(dllexport) *NiGetSpamData(void)``." #: ../Doc/extending/windows.rst:132 +#, fuzzy msgid "" "Developer Studio will throw in a lot of import libraries that you do not " "really need, adding about 100K to your executable. To get rid of them, use " "the Project Settings dialog, Link tab, to specify *ignore default " -"libraries*. Add the correct :file:`msvcrtxx.lib` to the list of libraries." +"libraries*. Add the correct :file:`msvcrt{xx}.lib` to the list of libraries." msgstr "" "Developer Studio incluirá muchas bibliotecas de importación que realmente no " "necesita, agregando aproximadamente 100K a su ejecutable. Para deshacerse de " diff --git a/faq/design.po b/faq/design.po index 8099b9dcfa..c0eefb9361 100644 --- a/faq/design.po +++ b/faq/design.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-10-22 14:43+0100\n" "Last-Translator: Claudia Millan \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/faq/design.rst:3 msgid "Design and History FAQ" @@ -253,15 +253,16 @@ msgstr "" "también es útil en esos lenguajes." #: ../Doc/faq/design.rst:127 +#, fuzzy msgid "" "Second, it means that no special syntax is necessary if you want to " "explicitly reference or call the method from a particular class. In C++, if " "you want to use a method from a base class which is overridden in a derived " "class, you have to use the ``::`` operator -- in Python you can write " "``baseclass.methodname(self, )``. This is particularly " -"useful for :meth:`__init__` methods, and in general in cases where a derived " -"class method wants to extend the base class method of the same name and thus " -"has to call the base class method somehow." +"useful for :meth:`~object.__init__` methods, and in general in cases where a " +"derived class method wants to extend the base class method of the same name " +"and thus has to call the base class method somehow." msgstr "" "En segundo lugar, significa que no es necesaria una sintaxis especial si " "desea hacer referencia explícita o llamar al método desde una clase en " @@ -465,16 +466,17 @@ msgid "How fast are exceptions?" msgstr "¿Qué tan rápido van las excepciones?" #: ../Doc/faq/design.rst:235 +#, fuzzy msgid "" -"A try/except block is extremely efficient if no exceptions are raised. " -"Actually catching an exception is expensive. In versions of Python prior to " -"2.0 it was common to use this idiom::" +"A :keyword:`try`/:keyword:`except` block is extremely efficient if no " +"exceptions are raised. Actually catching an exception is expensive. In " +"versions of Python prior to 2.0 it was common to use this idiom::" msgstr "" "Un bloque try/except es extremadamente eficiente si no se generan " "excepciones. En realidad, capturar una excepción es costoso. En versiones de " "Python anteriores a la 2.0, era común usar este modismo::" -#: ../Doc/faq/design.rst:245 +#: ../Doc/faq/design.rst:246 msgid "" "This only made sense when you expected the dict to have the key almost all " "the time. If that wasn't the case, you coded it like this::" @@ -482,7 +484,7 @@ msgstr "" "Esto solo tenía sentido cuando esperaba que el dict tuviera la clave casi " "todo el tiempo. Si ese no fuera el caso, lo codificó así:" -#: ../Doc/faq/design.rst:253 +#: ../Doc/faq/design.rst:254 msgid "" "For this specific case, you could also use ``value = dict.setdefault(key, " "getvalue(key))``, but only if the ``getvalue()`` call is cheap enough " @@ -492,11 +494,11 @@ msgstr "" "setdefault(key, getvalue(key))``, pero solo si la llamada ``getvalue()`` es " "lo suficientemente barata porque se evalúa en todos los casos." -#: ../Doc/faq/design.rst:259 +#: ../Doc/faq/design.rst:260 msgid "Why isn't there a switch or case statement in Python?" msgstr "¿Por qué no hay un *switch* o una declaración *case* en Python?" -#: ../Doc/faq/design.rst:261 +#: ../Doc/faq/design.rst:262 msgid "" "You can do this easily enough with a sequence of ``if... elif... elif... " "else``. For literal values, or constants within a namespace, you can also " @@ -506,7 +508,7 @@ msgstr "" "elif... elif... else``. Para valores literales, o constantes dentro de un " "espacio de nombres, también puede usar una declaración ``match ... case``." -#: ../Doc/faq/design.rst:265 +#: ../Doc/faq/design.rst:266 msgid "" "For cases where you need to choose from a very large number of " "possibilities, you can create a dictionary mapping case values to functions " @@ -516,7 +518,7 @@ msgstr "" "posibilidades, puede crear un diccionario que asigne valores de casos a " "funciones para llamar. Por ejemplo::" -#: ../Doc/faq/design.rst:276 +#: ../Doc/faq/design.rst:277 msgid "" "For calling methods on objects, you can simplify yet further by using the :" "func:`getattr` built-in to retrieve methods with a particular name::" @@ -524,7 +526,7 @@ msgstr "" "Para invocar métodos en objetos, puede simplificar aún más utilizando :func:" "`getattr` incorporado para recuperar métodos con un nombre particular::" -#: ../Doc/faq/design.rst:288 +#: ../Doc/faq/design.rst:289 msgid "" "It's suggested that you use a prefix for the method names, such as " "``visit_`` in this example. Without such a prefix, if values are coming " @@ -536,7 +538,7 @@ msgstr "" "una fuente no confiable, un atacante podría invocar cualquier método en su " "objeto." -#: ../Doc/faq/design.rst:294 +#: ../Doc/faq/design.rst:295 msgid "" "Can't you emulate threads in the interpreter instead of relying on an OS-" "specific thread implementation?" @@ -544,7 +546,7 @@ msgstr "" "¿No puede emular hilos en el intérprete en lugar de confiar en una " "implementación de hilos específica del sistema operativo?" -#: ../Doc/faq/design.rst:296 +#: ../Doc/faq/design.rst:297 msgid "" "Answer 1: Unfortunately, the interpreter pushes at least one C stack frame " "for each Python stack frame. Also, extensions can call back into Python at " @@ -557,7 +559,7 @@ msgstr "" "implementación completa de subprocesos requiere soporte de subprocesos para " "C." -#: ../Doc/faq/design.rst:301 +#: ../Doc/faq/design.rst:302 msgid "" "Answer 2: Fortunately, there is `Stackless Python `_, which has a completely redesigned " @@ -567,11 +569,11 @@ msgstr "" "stackless-dev/stackless/wiki>`_, que tiene un bucle de intérprete " "completamente rediseñado que evita la pila C." -#: ../Doc/faq/design.rst:306 +#: ../Doc/faq/design.rst:307 msgid "Why can't lambda expressions contain statements?" msgstr "¿Por qué las expresiones lambda no pueden contener sentencias?" -#: ../Doc/faq/design.rst:308 +#: ../Doc/faq/design.rst:309 msgid "" "Python lambda expressions cannot contain statements because Python's " "syntactic framework can't handle statements nested inside expressions. " @@ -586,7 +588,7 @@ msgstr "" "funcionalidad, las lambdas de Python son solo una notación abreviada si eres " "demasiado vago para definir una función." -#: ../Doc/faq/design.rst:314 +#: ../Doc/faq/design.rst:315 #, fuzzy msgid "" "Functions are already first class objects in Python, and can be declared in " @@ -603,11 +605,11 @@ msgstr "" "objeto de función (que es exactamente el mismo tipo de se asigna un objeto " "que produce una expresión lambda)" -#: ../Doc/faq/design.rst:322 +#: ../Doc/faq/design.rst:323 msgid "Can Python be compiled to machine code, C or some other language?" msgstr "¿Se puede compilar Python en código máquina, C o algún otro lenguaje?" -#: ../Doc/faq/design.rst:324 +#: ../Doc/faq/design.rst:325 #, fuzzy msgid "" "`Cython `_ compiles a modified version of Python with " @@ -621,11 +623,11 @@ msgstr "" "soportar el lenguaje completo de Python. Para compilar en Java puede " "considerar `VOC `_." -#: ../Doc/faq/design.rst:331 +#: ../Doc/faq/design.rst:332 msgid "How does Python manage memory?" msgstr "¿Cómo gestiona Python la memoria?" -#: ../Doc/faq/design.rst:333 +#: ../Doc/faq/design.rst:334 msgid "" "The details of Python memory management depend on the implementation. The " "standard implementation of Python, :term:`CPython`, uses reference counting " @@ -644,7 +646,7 @@ msgstr "" "proporciona funciones para realizar una recolección de basura, obtener " "estadísticas de depuración y ajustar los parámetros del recolector." -#: ../Doc/faq/design.rst:341 +#: ../Doc/faq/design.rst:342 #, fuzzy msgid "" "Other implementations (such as `Jython `_ or `PyPy " @@ -659,7 +661,7 @@ msgstr "" "sutiles de portabilidad si su código de Python depende del comportamiento de " "la implementación de conteo de referencias." -#: ../Doc/faq/design.rst:347 +#: ../Doc/faq/design.rst:348 msgid "" "In some Python implementations, the following code (which is fine in " "CPython) will probably run out of file descriptors::" @@ -667,19 +669,20 @@ msgstr "" "En algunas implementaciones de Python, el siguiente código (que está bien en " "CPython) probablemente se quedará sin descriptores de archivo::" -#: ../Doc/faq/design.rst:354 +#: ../Doc/faq/design.rst:355 +#, fuzzy msgid "" "Indeed, using CPython's reference counting and destructor scheme, each new " -"assignment to *f* closes the previous file. With a traditional GC, however, " -"those file objects will only get collected (and closed) at varying and " -"possibly long intervals." +"assignment to ``f`` closes the previous file. With a traditional GC, " +"however, those file objects will only get collected (and closed) at varying " +"and possibly long intervals." msgstr "" "De hecho, utilizando el esquema de conteo de referencias y destructor de " "CPython, cada nueva asignación a *f* cierra el archivo anterior. Sin " "embargo, con un GC tradicional, esos objetos de archivo solo se recopilarán " "(y cerrarán) a intervalos variables y posiblemente largos." -#: ../Doc/faq/design.rst:359 +#: ../Doc/faq/design.rst:360 msgid "" "If you want to write code that will work with any Python implementation, you " "should explicitly close the file or use the :keyword:`with` statement; this " @@ -690,13 +693,13 @@ msgstr "" "keyword:`with`; esto funcionará independientemente del esquema de " "administración de memoria::" -#: ../Doc/faq/design.rst:369 +#: ../Doc/faq/design.rst:370 msgid "Why doesn't CPython use a more traditional garbage collection scheme?" msgstr "" "¿Por qué CPython no utiliza un esquema de recolección de basura más " "tradicional?" -#: ../Doc/faq/design.rst:371 +#: ../Doc/faq/design.rst:372 msgid "" "For one thing, this is not a C standard feature and hence it's not portable. " "(Yes, we know about the Boehm GC library. It has bits of assembler code for " @@ -711,14 +714,16 @@ msgstr "" "completamente transparente; se requieren parches para obtener Python para " "trabajar con eso)" -#: ../Doc/faq/design.rst:377 +#: ../Doc/faq/design.rst:378 +#, fuzzy msgid "" "Traditional GC also becomes a problem when Python is embedded into other " "applications. While in a standalone Python it's fine to replace the " -"standard malloc() and free() with versions provided by the GC library, an " -"application embedding Python may want to have its *own* substitute for " -"malloc() and free(), and may not want Python's. Right now, CPython works " -"with anything that implements malloc() and free() properly." +"standard ``malloc()`` and ``free()`` with versions provided by the GC " +"library, an application embedding Python may want to have its *own* " +"substitute for ``malloc()`` and ``free()``, and may not want Python's. " +"Right now, CPython works with anything that implements ``malloc()`` and " +"``free()`` properly." msgstr "" "El GC tradicional también se convierte en un problema cuando Python está " "integrado en otras aplicaciones. Mientras que en un Python independiente " @@ -728,11 +733,11 @@ msgstr "" "quiero a Python. En este momento, CPython funciona con todo lo que " "implementa malloc() y free() correctamente." -#: ../Doc/faq/design.rst:386 +#: ../Doc/faq/design.rst:387 msgid "Why isn't all memory freed when CPython exits?" msgstr "¿Por qué no se libera toda la memoria cuando sale CPython?" -#: ../Doc/faq/design.rst:388 +#: ../Doc/faq/design.rst:389 msgid "" "Objects referenced from the global namespaces of Python modules are not " "always deallocated when Python exits. This may happen if there are circular " @@ -749,7 +754,7 @@ msgstr "" "Python es, sin embargo, agresivo sobre la limpieza de la memoria al salir e " "intenta destruir cada objeto." -#: ../Doc/faq/design.rst:395 +#: ../Doc/faq/design.rst:396 msgid "" "If you want to force Python to delete certain things on deallocation use " "the :mod:`atexit` module to run a function that will force those deletions." @@ -758,18 +763,19 @@ msgstr "" "el módulo :mod:`atexit` para ejecutar una función que obligará a esas " "eliminaciones." -#: ../Doc/faq/design.rst:400 +#: ../Doc/faq/design.rst:401 msgid "Why are there separate tuple and list data types?" msgstr "¿Por qué hay tipos de datos separados de tuplas y listas?" -#: ../Doc/faq/design.rst:402 +#: ../Doc/faq/design.rst:403 +#, fuzzy msgid "" "Lists and tuples, while similar in many respects, are generally used in " "fundamentally different ways. Tuples can be thought of as being similar to " -"Pascal records or C structs; they're small collections of related data which " -"may be of different types which are operated on as a group. For example, a " -"Cartesian coordinate is appropriately represented as a tuple of two or three " -"numbers." +"Pascal ``records`` or C ``structs``; they're small collections of related " +"data which may be of different types which are operated on as a group. For " +"example, a Cartesian coordinate is appropriately represented as a tuple of " +"two or three numbers." msgstr "" "Las listas y las tuplas, si bien son similares en muchos aspectos, " "generalmente se usan de maneras fundamentalmente diferentes. Se puede pensar " @@ -778,14 +784,15 @@ msgstr "" "tipos que funcionan como un grupo. Por ejemplo, una coordenada cartesiana se " "representa adecuadamente como una tupla de dos o tres números." -#: ../Doc/faq/design.rst:409 +#: ../Doc/faq/design.rst:410 +#, fuzzy msgid "" "Lists, on the other hand, are more like arrays in other languages. They " "tend to hold a varying number of objects all of which have the same type and " -"which are operated on one-by-one. For example, ``os.listdir('.')`` returns " -"a list of strings representing the files in the current directory. " -"Functions which operate on this output would generally not break if you " -"added another file or two to the directory." +"which are operated on one-by-one. For example, :func:`os.listdir('.') ` returns a list of strings representing the files in the current " +"directory. Functions which operate on this output would generally not break " +"if you added another file or two to the directory." msgstr "" "Las listas, por otro lado, son más como matrices en otros lenguajes. Tienden " "a contener un número variable de objetos, todos los cuales tienen el mismo " @@ -794,7 +801,7 @@ msgstr "" "directorio actual. Las funciones que operan en esta salida generalmente no " "se romperían si agregara otro archivo o dos al directorio." -#: ../Doc/faq/design.rst:416 +#: ../Doc/faq/design.rst:418 msgid "" "Tuples are immutable, meaning that once a tuple has been created, you can't " "replace any of its elements with a new value. Lists are mutable, meaning " @@ -809,11 +816,11 @@ msgstr "" "claves de diccionario y, por lo tanto, solo las tuplas y no las listas se " "pueden usar como claves." -#: ../Doc/faq/design.rst:423 +#: ../Doc/faq/design.rst:425 msgid "How are lists implemented in CPython?" msgstr "¿Cómo se implementan las listas en Python?" -#: ../Doc/faq/design.rst:425 +#: ../Doc/faq/design.rst:427 msgid "" "CPython's lists are really variable-length arrays, not Lisp-style linked " "lists. The implementation uses a contiguous array of references to other " @@ -825,7 +832,7 @@ msgstr "" "referencias a otros objetos y mantiene un puntero a esta matriz y la " "longitud de la matriz en una estructura de encabezado de lista." -#: ../Doc/faq/design.rst:429 +#: ../Doc/faq/design.rst:431 msgid "" "This makes indexing a list ``a[i]`` an operation whose cost is independent " "of the size of the list or the value of the index." @@ -833,7 +840,7 @@ msgstr "" "Esto hace que indexar una lista ``a[i]`` una operación cuyo costo es " "independiente del tamaño de la lista o del valor del índice." -#: ../Doc/faq/design.rst:432 +#: ../Doc/faq/design.rst:434 msgid "" "When items are appended or inserted, the array of references is resized. " "Some cleverness is applied to improve the performance of appending items " @@ -846,11 +853,11 @@ msgstr "" "un espacio extra para que las próximas veces no requieran un cambio de " "tamaño real." -#: ../Doc/faq/design.rst:439 +#: ../Doc/faq/design.rst:441 msgid "How are dictionaries implemented in CPython?" msgstr "¿Cómo se implementan los diccionarios en CPython?" -#: ../Doc/faq/design.rst:441 +#: ../Doc/faq/design.rst:443 msgid "" "CPython's dictionaries are implemented as resizable hash tables. Compared " "to B-trees, this gives better performance for lookup (the most common " @@ -863,17 +870,18 @@ msgstr "" "con diferencia) en la mayoría de las circunstancias, y la implementación es " "más simple." -#: ../Doc/faq/design.rst:445 +#: ../Doc/faq/design.rst:447 +#, fuzzy msgid "" "Dictionaries work by computing a hash code for each key stored in the " "dictionary using the :func:`hash` built-in function. The hash code varies " -"widely depending on the key and a per-process seed; for example, \"Python\" " -"could hash to -539294296 while \"python\", a string that differs by a single " -"bit, could hash to 1142331976. The hash code is then used to calculate a " -"location in an internal array where the value will be stored. Assuming that " -"you're storing keys that all have different hash values, this means that " -"dictionaries take constant time -- O(1), in Big-O notation -- to retrieve a " -"key." +"widely depending on the key and a per-process seed; for example, " +"``'Python'`` could hash to ``-539294296`` while ``'python'``, a string that " +"differs by a single bit, could hash to ``1142331976``. The hash code is " +"then used to calculate a location in an internal array where the value will " +"be stored. Assuming that you're storing keys that all have different hash " +"values, this means that dictionaries take constant time -- O(1), in Big-O " +"notation -- to retrieve a key." msgstr "" "Los diccionarios funcionan calculando un código hash para cada clave " "almacenada en el diccionario utilizando la función incorporada :func:`hash`. " @@ -886,11 +894,11 @@ msgstr "" "los diccionarios toman tiempo constante -- O(1), en notación Big-O -- para " "recuperar una clave." -#: ../Doc/faq/design.rst:456 +#: ../Doc/faq/design.rst:458 msgid "Why must dictionary keys be immutable?" msgstr "¿Por qué las claves del diccionario deben ser inmutables?" -#: ../Doc/faq/design.rst:458 +#: ../Doc/faq/design.rst:460 msgid "" "The hash table implementation of dictionaries uses a hash value calculated " "from the key value to find the key. If the key were a mutable object, its " @@ -912,7 +920,7 @@ msgstr "" "de buscar el valor anterior, tampoco lo encontraría, porque el valor del " "objeto que se encuentra en ese hash bin sería diferente." -#: ../Doc/faq/design.rst:467 +#: ../Doc/faq/design.rst:469 msgid "" "If you want a dictionary indexed with a list, simply convert the list to a " "tuple first; the function ``tuple(L)`` creates a tuple with the same entries " @@ -924,11 +932,11 @@ msgstr "" "mismas entradas que la lista ``L``. Las tuplas son inmutables y, por lo " "tanto, pueden usarse como claves de diccionario." -#: ../Doc/faq/design.rst:471 +#: ../Doc/faq/design.rst:473 msgid "Some unacceptable solutions that have been proposed:" msgstr "Algunas soluciones inaceptables que se han propuesto:" -#: ../Doc/faq/design.rst:473 +#: ../Doc/faq/design.rst:475 msgid "" "Hash lists by their address (object ID). This doesn't work because if you " "construct a new list with the same value it won't be found; e.g.::" @@ -936,7 +944,7 @@ msgstr "" "Listas de hash por su dirección (ID de objeto). Esto no funciona porque si " "construye una nueva lista con el mismo valor, no se encontrará; por ejemplo::" -#: ../Doc/faq/design.rst:479 +#: ../Doc/faq/design.rst:481 msgid "" "would raise a :exc:`KeyError` exception because the id of the ``[1, 2]`` " "used in the second line differs from that in the first line. In other " @@ -948,7 +956,7 @@ msgstr "" "palabras, las claves del diccionario deben compararse usando ``==``, no " "usando :keyword:`is`." -#: ../Doc/faq/design.rst:483 +#: ../Doc/faq/design.rst:485 msgid "" "Make a copy when using a list as a key. This doesn't work because the list, " "being a mutable object, could contain a reference to itself, and then the " @@ -958,7 +966,7 @@ msgstr "" "lista, al ser un objeto mutable, podría contener una referencia a sí misma, " "y luego el código de copia se ejecutaría en un bucle infinito." -#: ../Doc/faq/design.rst:487 +#: ../Doc/faq/design.rst:489 msgid "" "Allow lists as keys but tell the user not to modify them. This would allow " "a class of hard-to-track bugs in programs when you forgot or modified a list " @@ -971,7 +979,7 @@ msgstr "" "invariante importante de diccionarios: cada valor en ``d.keys()`` se puede " "usar como una clave del diccionario." -#: ../Doc/faq/design.rst:492 +#: ../Doc/faq/design.rst:494 msgid "" "Mark lists as read-only once they are used as a dictionary key. The problem " "is that it's not just the top-level object that could change its value; you " @@ -987,14 +995,15 @@ msgstr "" "los objetos accesibles desde allí como de solo lectura -- y nuevamente, los " "objetos autoreferenciados podrían causar un bucle infinito." -#: ../Doc/faq/design.rst:498 +#: ../Doc/faq/design.rst:500 +#, fuzzy msgid "" "There is a trick to get around this if you need to, but use it at your own " "risk: You can wrap a mutable structure inside a class instance which has " -"both a :meth:`__eq__` and a :meth:`__hash__` method. You must then make " -"sure that the hash value for all such wrapper objects that reside in a " -"dictionary (or other hash based structure), remain fixed while the object is " -"in the dictionary (or other structure). ::" +"both a :meth:`~object.__eq__` and a :meth:`~object.__hash__` method. You " +"must then make sure that the hash value for all such wrapper objects that " +"reside in a dictionary (or other hash based structure), remain fixed while " +"the object is in the dictionary (or other structure). ::" msgstr "" "Hay un truco para evitar esto si lo necesita, pero úselo bajo su propio " "riesgo: puede envolver una estructura mutable dentro de una instancia de " @@ -1003,7 +1012,7 @@ msgstr "" "residen en un diccionario (u otra estructura basada en hash) permanezca fijo " "mientras el objeto está en el diccionario (u otra estructura). ::" -#: ../Doc/faq/design.rst:522 +#: ../Doc/faq/design.rst:525 msgid "" "Note that the hash computation is complicated by the possibility that some " "members of the list may be unhashable and also by the possibility of " @@ -1013,7 +1022,7 @@ msgstr "" "algunos miembros de la lista sean inquebrantables y también por la " "posibilidad de desbordamiento aritmético." -#: ../Doc/faq/design.rst:526 +#: ../Doc/faq/design.rst:529 msgid "" "Furthermore it must always be the case that if ``o1 == o2`` (ie ``o1." "__eq__(o2) is True``) then ``hash(o1) == hash(o2)`` (ie, ``o1.__hash__() == " @@ -1027,12 +1036,13 @@ msgstr "" "un diccionario o no. Si no cumple con estas restricciones, los diccionarios " "y otras estructuras basadas en hash se comportarán mal." -#: ../Doc/faq/design.rst:531 +#: ../Doc/faq/design.rst:534 +#, fuzzy msgid "" -"In the case of ListWrapper, whenever the wrapper object is in a dictionary " -"the wrapped list must not change to avoid anomalies. Don't do this unless " -"you are prepared to think hard about the requirements and the consequences " -"of not meeting them correctly. Consider yourself warned." +"In the case of :class:`!ListWrapper`, whenever the wrapper object is in a " +"dictionary the wrapped list must not change to avoid anomalies. Don't do " +"this unless you are prepared to think hard about the requirements and the " +"consequences of not meeting them correctly. Consider yourself warned." msgstr "" "En el caso de ListWrapper, siempre que el objeto contenedor esté en un " "diccionario, la lista ajustada no debe cambiar para evitar anomalías. No " @@ -1040,11 +1050,11 @@ msgstr "" "requisitos y las consecuencias de no cumplirlos correctamente. Considérese " "advertido." -#: ../Doc/faq/design.rst:538 +#: ../Doc/faq/design.rst:541 msgid "Why doesn't list.sort() return the sorted list?" msgstr "¿Por qué list.sort() no retorna la lista ordenada?" -#: ../Doc/faq/design.rst:540 +#: ../Doc/faq/design.rst:543 msgid "" "In situations where performance matters, making a copy of the list just to " "sort it would be wasteful. Therefore, :meth:`list.sort` sorts the list in " @@ -1060,7 +1070,7 @@ msgstr "" "accidentalmente una lista cuando necesite una copia ordenada, pero también " "deberá mantener la versión sin ordenar." -#: ../Doc/faq/design.rst:546 +#: ../Doc/faq/design.rst:549 msgid "" "If you want to return a new list, use the built-in :func:`sorted` function " "instead. This function creates a new list from a provided iterable, sorts " @@ -1072,11 +1082,11 @@ msgstr "" "proporcionado, la ordena y la retorna. Por ejemplo, a continuación se " "explica cómo iterar sobre las teclas de un diccionario en orden ordenado:" -#: ../Doc/faq/design.rst:556 +#: ../Doc/faq/design.rst:559 msgid "How do you specify and enforce an interface spec in Python?" msgstr "¿Cómo se especifica y aplica una especificación de interfaz en Python?" -#: ../Doc/faq/design.rst:558 +#: ../Doc/faq/design.rst:561 msgid "" "An interface specification for a module as provided by languages such as C++ " "and Java describes the prototypes for the methods and functions of the " @@ -1089,7 +1099,7 @@ msgstr "" "especificaciones de la interfaz ayuda en la construcción de grandes " "programas." -#: ../Doc/faq/design.rst:563 +#: ../Doc/faq/design.rst:566 msgid "" "Python 2.6 adds an :mod:`abc` module that lets you define Abstract Base " "Classes (ABCs). You can then use :func:`isinstance` and :func:`issubclass` " @@ -1105,7 +1115,7 @@ msgstr "" "class:`~collections.abc.Iterable`, :class:`~collections.abc.Container` y :" "class:`~collections.abc.MutableMapping`." -#: ../Doc/faq/design.rst:570 +#: ../Doc/faq/design.rst:573 msgid "" "For Python, many of the advantages of interface specifications can be " "obtained by an appropriate test discipline for components." @@ -1114,7 +1124,7 @@ msgstr "" "pueden obtener mediante una disciplina de prueba adecuada para los " "componentes." -#: ../Doc/faq/design.rst:573 +#: ../Doc/faq/design.rst:576 msgid "" "A good test suite for a module can both provide a regression test and serve " "as a module interface specification and a set of examples. Many Python " @@ -1135,15 +1145,17 @@ msgstr "" "terceros se pueden utilizar para construir conjuntos de pruebas exhaustivas " "que ejercitan cada línea de código en un módulo." -#: ../Doc/faq/design.rst:581 +#: ../Doc/faq/design.rst:584 +#, fuzzy msgid "" "An appropriate testing discipline can help build large complex applications " "in Python as well as having interface specifications would. In fact, it can " "be better because an interface specification cannot test certain properties " -"of a program. For example, the :meth:`append` method is expected to add new " -"elements to the end of some internal list; an interface specification cannot " -"test that your :meth:`append` implementation will actually do this " -"correctly, but it's trivial to check this property in a test suite." +"of a program. For example, the :meth:`!list.append` method is expected to " +"add new elements to the end of some internal list; an interface " +"specification cannot test that your :meth:`!list.append` implementation will " +"actually do this correctly, but it's trivial to check this property in a " +"test suite." msgstr "" "Una disciplina de prueba adecuada puede ayudar a construir grandes " "aplicaciones complejas en Python, así como tener especificaciones de " @@ -1154,7 +1166,7 @@ msgstr "" "implementación :meth:`append` realmente haga esto correctamente, pero es " "trivial verificar esta propiedad en un conjunto de pruebas." -#: ../Doc/faq/design.rst:589 +#: ../Doc/faq/design.rst:592 msgid "" "Writing test suites is very helpful, and you might want to design your code " "to make it easily tested. One increasingly popular technique, test-driven " @@ -1168,18 +1180,20 @@ msgstr "" "conjunto de pruebas primero, antes de escribir el código real. Por supuesto, " "Python te permite ser descuidado y no escribir casos de prueba." -#: ../Doc/faq/design.rst:597 +#: ../Doc/faq/design.rst:600 msgid "Why is there no goto?" msgstr "¿Por qué no hay goto?" -#: ../Doc/faq/design.rst:599 +#: ../Doc/faq/design.rst:602 +#, fuzzy msgid "" "In the 1970s people realized that unrestricted goto could lead to messy " "\"spaghetti\" code that was hard to understand and revise. In a high-level " "language, it is also unneeded as long as there are ways to branch (in " -"Python, with ``if`` statements and ``or``, ``and``, and ``if-else`` " -"expressions) and loop (with ``while`` and ``for`` statements, possibly " -"containing ``continue`` and ``break``)." +"Python, with :keyword:`if` statements and :keyword:`or`, :keyword:`and`, " +"and :keyword:`if`/:keyword:`else` expressions) and loop (with :keyword:" +"`while` and :keyword:`for` statements, possibly containing :keyword:" +"`continue` and :keyword:`break`)." msgstr "" "En la década de 1970, la gente se dio cuenta de que el goto irrestricto " "podía generar un código \"espagueti\" desordenado que era difícil de " @@ -1188,11 +1202,12 @@ msgstr "" "expresiones ``or``, ``and`` e ``if-else``) y repetir (con declaraciones " "``while`` y ``for``, que posiblemente contengan ``continue`` y ``break``)." -#: ../Doc/faq/design.rst:606 +#: ../Doc/faq/design.rst:609 +#, fuzzy msgid "" "One can also use exceptions to provide a \"structured goto\" that works even " "across function calls. Many feel that exceptions can conveniently emulate " -"all reasonable uses of the \"go\" or \"goto\" constructs of C, Fortran, and " +"all reasonable uses of the ``go`` or ``goto`` constructs of C, Fortran, and " "other languages. For example::" msgstr "" "Puede usar excepciones para proporcionar un \"goto estructurado\" que " @@ -1200,21 +1215,22 @@ msgstr "" "pueden emular convenientemente todos los usos razonables de los constructos " "\"go\" o \"goto\" de C, Fortran y otros lenguajes. Por ejemplo::" -#: ../Doc/faq/design.rst:622 +#: ../Doc/faq/design.rst:625 +#, fuzzy msgid "" "This doesn't allow you to jump into the middle of a loop, but that's usually " -"considered an abuse of goto anyway. Use sparingly." +"considered an abuse of ``goto`` anyway. Use sparingly." msgstr "" "Esto no le permite saltar a la mitad de un bucle, pero de todos modos eso " "generalmente se considera un abuso de goto. Utilizar con moderación." -#: ../Doc/faq/design.rst:627 +#: ../Doc/faq/design.rst:630 msgid "Why can't raw strings (r-strings) end with a backslash?" msgstr "" "¿Por qué las cadenas de caracteres sin formato (r-strings) no pueden " "terminar con una barra diagonal inversa?" -#: ../Doc/faq/design.rst:629 +#: ../Doc/faq/design.rst:632 msgid "" "More precisely, they can't end with an odd number of backslashes: the " "unpaired backslash at the end escapes the closing quote character, leaving " @@ -1224,7 +1240,7 @@ msgstr "" "invertidas: la barra invertida no emparejada al final escapa el carácter de " "comillas de cierre, dejando una cadena sin terminar." -#: ../Doc/faq/design.rst:633 +#: ../Doc/faq/design.rst:636 msgid "" "Raw strings were designed to ease creating input for processors (chiefly " "regular expression engines) that want to do their own backslash escape " @@ -1243,7 +1259,7 @@ msgstr "" "cuando las cadenas de caracteres r (*r-strings*) se usan para el propósito " "previsto." -#: ../Doc/faq/design.rst:640 +#: ../Doc/faq/design.rst:643 msgid "" "If you're trying to build Windows pathnames, note that all Windows system " "calls accept forward slashes too::" @@ -1251,34 +1267,35 @@ msgstr "" "Si está intentando construir nombres de ruta de Windows, tenga en cuenta que " "todas las llamadas al sistema de Windows también aceptan barras diagonales:" -#: ../Doc/faq/design.rst:645 +#: ../Doc/faq/design.rst:648 msgid "" "If you're trying to build a pathname for a DOS command, try e.g. one of ::" msgstr "" "Si está tratando de construir una ruta para un comando de DOS, intente por " "ejemplo uno de los siguientes::" -#: ../Doc/faq/design.rst:653 +#: ../Doc/faq/design.rst:656 msgid "Why doesn't Python have a \"with\" statement for attribute assignments?" msgstr "" "¿Por qué Python no tiene una declaración \"with\" para las asignaciones de " "atributos?" -#: ../Doc/faq/design.rst:655 +#: ../Doc/faq/design.rst:658 +#, fuzzy msgid "" -"Python has a 'with' statement that wraps the execution of a block, calling " -"code on the entrance and exit from the block. Some languages have a " +"Python has a :keyword:`with` statement that wraps the execution of a block, " +"calling code on the entrance and exit from the block. Some languages have a " "construct that looks like this::" msgstr "" "Python tiene una declaración 'with' que envuelve la ejecución de un bloque, " "llamando al código en la entrada y salida del bloque. Algunos lenguajes " "tienen una construcción que se ve así:" -#: ../Doc/faq/design.rst:663 +#: ../Doc/faq/design.rst:666 msgid "In Python, such a construct would be ambiguous." msgstr "En Python, tal construcción sería ambigua." -#: ../Doc/faq/design.rst:665 +#: ../Doc/faq/design.rst:668 msgid "" "Other languages, such as Object Pascal, Delphi, and C++, use static types, " "so it's possible to know, in an unambiguous way, what member is being " @@ -1291,7 +1308,7 @@ msgstr "" "el compilador *siempre* conoce el alcance de cada variable en tiempo de " "compilación." -#: ../Doc/faq/design.rst:670 +#: ../Doc/faq/design.rst:673 msgid "" "Python uses dynamic types. It is impossible to know in advance which " "attribute will be referenced at runtime. Member attributes may be added or " @@ -1305,17 +1322,18 @@ msgstr "" "imposible saber, a partir de una simple lectura, a qué atributo se hace " "referencia: ¿uno local, uno global o un atributo miembro?" -#: ../Doc/faq/design.rst:676 +#: ../Doc/faq/design.rst:679 msgid "For instance, take the following incomplete snippet::" msgstr "Por ejemplo, tome el siguiente fragmento incompleto::" -#: ../Doc/faq/design.rst:682 +#: ../Doc/faq/design.rst:685 +#, fuzzy msgid "" -"The snippet assumes that \"a\" must have a member attribute called \"x\". " +"The snippet assumes that ``a`` must have a member attribute called ``x``. " "However, there is nothing in Python that tells the interpreter this. What " -"should happen if \"a\" is, let us say, an integer? If there is a global " -"variable named \"x\", will it be used inside the with block? As you see, " -"the dynamic nature of Python makes such choices much harder." +"should happen if ``a`` is, let us say, an integer? If there is a global " +"variable named ``x``, will it be used inside the :keyword:`with` block? As " +"you see, the dynamic nature of Python makes such choices much harder." msgstr "" "El fragmento supone que \"a\" debe tener un atributo miembro llamado \"x\". " "Sin embargo, no hay nada en Python que le diga esto al intérprete. ¿Qué " @@ -1324,21 +1342,22 @@ msgstr "" "naturaleza dinámica de Python hace que tales elecciones sean mucho más " "difíciles." -#: ../Doc/faq/design.rst:688 +#: ../Doc/faq/design.rst:691 +#, fuzzy msgid "" -"The primary benefit of \"with\" and similar language features (reduction of " -"code volume) can, however, easily be achieved in Python by assignment. " -"Instead of::" +"The primary benefit of :keyword:`with` and similar language features " +"(reduction of code volume) can, however, easily be achieved in Python by " +"assignment. Instead of::" msgstr "" "Sin embargo, el beneficio principal de \"with\" y características de " "lenguaje similares (reducción del volumen del código) se puede lograr " "fácilmente en Python mediante la asignación. En vez de::" -#: ../Doc/faq/design.rst:695 +#: ../Doc/faq/design.rst:698 msgid "write this::" msgstr "escribe esto::" -#: ../Doc/faq/design.rst:702 +#: ../Doc/faq/design.rst:705 msgid "" "This also has the side-effect of increasing execution speed because name " "bindings are resolved at run-time in Python, and the second version only " @@ -1348,16 +1367,25 @@ msgstr "" "ejecución porque los enlaces de nombres se resuelven en tiempo de ejecución " "en Python, y la segunda versión solo necesita realizar la resolución una vez." -#: ../Doc/faq/design.rst:708 +#: ../Doc/faq/design.rst:709 +msgid "" +"Similar proposals that would introduce syntax to further reduce code volume, " +"such as using a 'leading dot', have been rejected in favour of explicitness " +"(see https://mail.python.org/pipermail/python-ideas/2016-May/040070.html)." +msgstr "" + +#: ../Doc/faq/design.rst:715 msgid "Why don't generators support the with statement?" msgstr "¿Por qué los generadores no admiten la declaración with?" -#: ../Doc/faq/design.rst:710 +#: ../Doc/faq/design.rst:717 +#, fuzzy msgid "" "For technical reasons, a generator used directly as a context manager would " "not work correctly. When, as is most common, a generator is used as an " -"iterator run to completion, no closing is needed. When it is, wrap it as " -"\"contextlib.closing(generator)\" in the 'with' statement." +"iterator run to completion, no closing is needed. When it is, wrap it as :" +"func:`contextlib.closing(generator) ` in the :keyword:" +"`with` statement." msgstr "" "Por razones técnicas, un generador utilizado directamente como gestor de " "contexto no funcionaría correctamente. Cuando, como es más común, un " @@ -1365,12 +1393,12 @@ msgstr "" "necesario cerrar. Cuando lo esté, envuélvalo como un\"contextlib." "closing(generator)\" en la instrucción 'with'." -#: ../Doc/faq/design.rst:717 +#: ../Doc/faq/design.rst:725 msgid "Why are colons required for the if/while/def/class statements?" msgstr "" "¿Por qué se requieren dos puntos para las declaraciones if/while/def/class?" -#: ../Doc/faq/design.rst:719 +#: ../Doc/faq/design.rst:727 msgid "" "The colon is required primarily to enhance readability (one of the results " "of the experimental ABC language). Consider this::" @@ -1378,11 +1406,11 @@ msgstr "" "Los dos puntos se requieren principalmente para mejorar la legibilidad (uno " "de los resultados del lenguaje ABC experimental). Considera esto::" -#: ../Doc/faq/design.rst:725 +#: ../Doc/faq/design.rst:733 msgid "versus ::" msgstr "versus ::" -#: ../Doc/faq/design.rst:730 +#: ../Doc/faq/design.rst:738 msgid "" "Notice how the second one is slightly easier to read. Notice further how a " "colon sets off the example in this FAQ answer; it's a standard usage in " @@ -1392,7 +1420,7 @@ msgstr "" "cómo los dos puntos establecen el ejemplo en esta respuesta de preguntas " "frecuentes; Es un uso estándar en inglés." -#: ../Doc/faq/design.rst:733 +#: ../Doc/faq/design.rst:741 msgid "" "Another minor reason is that the colon makes it easier for editors with " "syntax highlighting; they can look for colons to decide when indentation " @@ -1404,11 +1432,11 @@ msgstr "" "aumentar la indentación en lugar de tener que hacer un análisis más " "elaborado del texto del programa." -#: ../Doc/faq/design.rst:739 +#: ../Doc/faq/design.rst:747 msgid "Why does Python allow commas at the end of lists and tuples?" msgstr "¿Por qué Python permite comas al final de las listas y tuplas?" -#: ../Doc/faq/design.rst:741 +#: ../Doc/faq/design.rst:749 msgid "" "Python lets you add a trailing comma at the end of lists, tuples, and " "dictionaries::" @@ -1416,11 +1444,11 @@ msgstr "" "Python le permite agregar una coma final al final de las listas, tuplas y " "diccionarios::" -#: ../Doc/faq/design.rst:752 +#: ../Doc/faq/design.rst:760 msgid "There are several reasons to allow this." msgstr "Hay varias razones para permitir esto." -#: ../Doc/faq/design.rst:754 +#: ../Doc/faq/design.rst:762 msgid "" "When you have a literal value for a list, tuple, or dictionary spread across " "multiple lines, it's easier to add more elements because you don't have to " @@ -1432,7 +1460,7 @@ msgstr "" "tiene que recordar agregar una coma a la línea anterior. Las líneas también " "se pueden reordenar sin crear un error de sintaxis." -#: ../Doc/faq/design.rst:759 +#: ../Doc/faq/design.rst:767 msgid "" "Accidentally omitting the comma can lead to errors that are hard to " "diagnose. For example::" @@ -1440,7 +1468,7 @@ msgstr "" "La omisión accidental de la coma puede ocasionar errores difíciles de " "diagnosticar. Por ejemplo::" -#: ../Doc/faq/design.rst:769 +#: ../Doc/faq/design.rst:777 msgid "" "This list looks like it has four elements, but it actually contains three: " "\"fee\", \"fiefoo\" and \"fum\". Always adding the comma avoids this source " @@ -1450,7 +1478,7 @@ msgstr "" "tres: \"fee\", \"fiefoo\" y \"fum\". Agregar siempre la coma evita esta " "fuente de error." -#: ../Doc/faq/design.rst:772 +#: ../Doc/faq/design.rst:780 msgid "" "Allowing the trailing comma may also make programmatic code generation " "easier." diff --git a/faq/extending.po b/faq/extending.po index 026b48e3a5..4bed5bd265 100644 --- a/faq/extending.po +++ b/faq/extending.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-02 11:16+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es_AR\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/faq/extending.rst:3 msgid "Extending/Embedding FAQ" @@ -81,7 +81,7 @@ msgstr "" #: ../Doc/faq/extending.rst:44 #, fuzzy msgid "" -"`Cython `_ and its relative `Pyrex `_ and its relative `Pyrex `_ are compilers that accept a " "slightly modified form of Python and generate the corresponding C code. " "Cython and Pyrex make it possible to write an extension without having to " @@ -151,10 +151,11 @@ msgid "How do I extract C values from a Python object?" msgstr "¿Cómo extraigo valores C de un objeto Python?" #: ../Doc/faq/extending.rst:82 +#, fuzzy msgid "" "That depends on the object's type. If it's a tuple, :c:func:`PyTuple_Size` " "returns its length and :c:func:`PyTuple_GetItem` returns the item at a " -"specified index. Lists have similar functions, :c:func:`PyListSize` and :c:" +"specified index. Lists have similar functions, :c:func:`PyList_Size` and :c:" "func:`PyList_GetItem`." msgstr "" "Eso depende del tipo de objeto. Si es una tupla, :c:func:`PyTuple_Size` " @@ -163,11 +164,12 @@ msgstr "" "and :c:func:`PyList_GetItem`." #: ../Doc/faq/extending.rst:87 +#, fuzzy msgid "" "For bytes, :c:func:`PyBytes_Size` returns its length and :c:func:" "`PyBytes_AsStringAndSize` provides a pointer to its value and its length. " -"Note that Python bytes objects may contain null bytes so C's :c:func:" -"`strlen` should not be used." +"Note that Python bytes objects may contain null bytes so C's :c:func:`!" +"strlen` should not be used." msgstr "" "Para bytes :c:func:`PyBytes_Size` retorna su tamaño, y :c:func:" "`PyBytes_AsStringAndSize` proporciona un puntero a su valor y tamaño. Nota " diff --git a/faq/general.po b/faq/general.po index 00d675c8ce..95e2a7fb60 100644 --- a/faq/general.po +++ b/faq/general.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-31 21:27-0300\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/faq/general.rst:5 msgid "General Python FAQ" @@ -121,9 +120,10 @@ msgstr "" "gustaría saber de todos los usos comerciales de Python, por supuesto." #: ../Doc/faq/general.rst:57 +#, fuzzy msgid "" -"See `the PSF license page `_ to find " -"further explanations and a link to the full text of the license." +"See `the license page `_ to find " +"further explanations and the full text of the PSF License." msgstr "" "Mira la página `PSF license `_ para " "encontrar explicaciones más detalladas y un vínculo al texto completo de la " @@ -309,14 +309,15 @@ msgstr "" "errores." #: ../Doc/faq/general.rst:138 +#, fuzzy msgid "" -"Not all releases are bugfix releases. In the run-up to a new major release, " -"a series of development releases are made, denoted as alpha, beta, or " -"release candidate. Alphas are early releases in which interfaces aren't yet " -"finalized; it's not unexpected to see an interface change between two alpha " -"releases. Betas are more stable, preserving existing interfaces but possibly " -"adding new modules, and release candidates are frozen, making no changes " -"except as needed to fix critical bugs." +"Not all releases are bugfix releases. In the run-up to a new feature " +"release, a series of development releases are made, denoted as alpha, beta, " +"or release candidate. Alphas are early releases in which interfaces aren't " +"yet finalized; it's not unexpected to see an interface change between two " +"alpha releases. Betas are more stable, preserving existing interfaces but " +"possibly adding new modules, and release candidates are frozen, making no " +"changes except as needed to fix critical bugs." msgstr "" "No todos los lanzamientos son de corrección de errores. En el período previo " "a un lanzamiento importante, una serie de lanzamientos de desarrollo son " @@ -490,11 +491,12 @@ msgstr "" "Usenet suelen ser más capaces de hacer frente a este volumen." #: ../Doc/faq/general.rst:215 +#, fuzzy msgid "" "Announcements of new software releases and events can be found in comp.lang." "python.announce, a low-traffic moderated list that receives about five " "postings per day. It's available as `the python-announce mailing list " -"`_." +"`_." msgstr "" "Los anuncios de nuevos lanzamientos de software y eventos se pueden " "encontrar en comp.lang.python.announce, una lista moderada de bajo tráfico " @@ -566,9 +568,10 @@ msgstr "" "Lo más probable es que lo mejor sea citar a tu libro preferido sobre Python." #: ../Doc/faq/general.rst:251 +#, fuzzy msgid "" -"The very first article about Python was written in 1991 and is now quite " -"outdated." +"The `very first article `_ about Python was " +"written in 1991 and is now quite outdated." msgstr "" "El primer artículo publicado sobre Python fue escrito en 1991 y quedó " "bastante desactualizado." @@ -652,20 +655,22 @@ msgid "How stable is Python?" msgstr "¿Cuán estable es Python?" #: ../Doc/faq/general.rst:298 +#, fuzzy msgid "" "Very stable. New, stable releases have been coming out roughly every 6 to " "18 months since 1991, and this seems likely to continue. As of version 3.9, " -"Python will have a major new release every 12 months (:pep:`602`)." +"Python will have a new feature release every 12 months (:pep:`602`)." msgstr "" "Muy estable. Versiones nuevas y estables han sido publicadas cada entre 6 y " "18 meses desde 1991, y es muy probable que así continúe. Actualmente pasan " "alrededor de 18 meses entre los lanzamientos importantes." #: ../Doc/faq/general.rst:302 +#, fuzzy msgid "" -"The developers issue \"bugfix\" releases of older versions, so the stability " -"of existing releases gradually improves. Bugfix releases, indicated by a " -"third component of the version number (e.g. 3.5.3, 3.6.2), are managed for " +"The developers issue bugfix releases of older versions, so the stability of " +"existing releases gradually improves. Bugfix releases, indicated by a third " +"component of the version number (e.g. 3.5.3, 3.6.2), are managed for " "stability; only fixes for known problems are included in a bugfix release, " "and it's guaranteed that interfaces will remain the same throughout a series " "of bugfix releases." @@ -776,9 +781,10 @@ msgstr "" "públicamente." #: ../Doc/faq/general.rst:354 +#, fuzzy msgid "" "New development is discussed on `the python-dev mailing list `_." +"python.org/mailman3/lists/python-dev.python.org/>`_." msgstr "" "Los nuevos desarrollos son discutidos en `la lista de correo python-dev " "`_." diff --git a/faq/gui.po b/faq/gui.po index e4d721ec80..c911be5a8b 100644 --- a/faq/gui.po +++ b/faq/gui.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-11-09 22:34-0600\n" "Last-Translator: Erick G. Islas Osuna \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/faq/gui.rst:5 msgid "Graphic User Interface FAQ" @@ -90,10 +90,11 @@ msgstr "" "y Tk." #: ../Doc/faq/gui.rst:45 +#, fuzzy msgid "" "One solution is to ship the application with the Tcl and Tk libraries, and " -"point to them at run-time using the :envvar:`TCL_LIBRARY` and :envvar:" -"`TK_LIBRARY` environment variables." +"point to them at run-time using the :envvar:`!TCL_LIBRARY` and :envvar:`!" +"TK_LIBRARY` environment variables." msgstr "" "Una solución es enviar la aplicación con las bibliotecas Tcl y Tk, y " "apuntarlas en tiempo de ejecución utilizando :envvar:`TCL_LIBRARY` y las " @@ -113,9 +114,10 @@ msgstr "" "la distribución Tix (http://tix.sourceforge.net/)." #: ../Doc/faq/gui.rst:54 +#, fuzzy msgid "" -"Build Tix with SAM enabled, perform the appropriate call to :c:func:" -"`Tclsam_init`, etc. inside Python's :file:`Modules/tkappinit.c`, and link " +"Build Tix with SAM enabled, perform the appropriate call to :c:func:`!" +"Tclsam_init`, etc. inside Python's :file:`Modules/tkappinit.c`, and link " "with libtclsam and libtksam (you might include the Tix libraries as well)." msgstr "" "Construya Tix con SAM habilitado, realice la llamada apropiada a :c:func:" @@ -128,10 +130,11 @@ msgid "Can I have Tk events handled while waiting for I/O?" msgstr "¿Puedo tener eventos Tk manejados mientras espero por *I/O*?" #: ../Doc/faq/gui.rst:63 +#, fuzzy msgid "" "On platforms other than Windows, yes, and you don't even need threads! But " "you'll have to restructure your I/O code a bit. Tk has the equivalent of " -"Xt's :c:func:`XtAddInput()` call, which allows you to register a callback " +"Xt's :c:func:`!XtAddInput` call, which allows you to register a callback " "function which will be called from the Tk mainloop when I/O is possible on a " "file descriptor. See :ref:`tkinter-file-handlers`." msgstr "" @@ -148,16 +151,17 @@ msgstr "" "No puedo hacer que los atajos de teclado funcionen en Tkinter: ¿por qué?" #: ../Doc/faq/gui.rst:73 +#, fuzzy msgid "" -"An often-heard complaint is that event handlers bound to events with the :" -"meth:`bind` method don't get handled even when the appropriate key is " -"pressed." +"An often-heard complaint is that event handlers :ref:`bound ` to events with the :meth:`!bind` method don't get handled even when " +"the appropriate key is pressed." msgstr "" "Una queja que se escucha con frecuencia es que los controladores de eventos " "vinculados a eventos con el método :meth:`bind` no se manejan incluso cuando " "se presiona la tecla adecuada." -#: ../Doc/faq/gui.rst:76 +#: ../Doc/faq/gui.rst:77 msgid "" "The most common cause is that the widget to which the binding applies " "doesn't have \"keyboard focus\". Check out the Tk documentation for the " diff --git a/faq/library.po b/faq/library.po index 5f591c9c93..c5b6e51ae1 100644 --- a/faq/library.po +++ b/faq/library.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-05 13:47-0300\n" "Last-Translator: Sofía Denner \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/faq/library.rst:5 msgid "Library and Extension FAQ" @@ -217,9 +216,10 @@ msgid "Is there an equivalent to C's onexit() in Python?" msgstr "¿Hay un equivalente en Python al onexit() de C?" #: ../Doc/faq/library.rst:113 +#, fuzzy msgid "" "The :mod:`atexit` module provides a register function that is similar to " -"C's :c:func:`onexit`." +"C's :c:func:`!onexit`." msgstr "" "El módulo :mod:`atexit` proporciona una función de registro que es similar " "a :c:func:`onexit` de C." @@ -524,11 +524,12 @@ msgid "These aren't::" msgstr "Estas no lo son::" #: ../Doc/faq/library.rst:399 +#, fuzzy msgid "" "Operations that replace other objects may invoke those other objects' :meth:" -"`__del__` method when their reference count reaches zero, and that can " -"affect things. This is especially true for the mass updates to dictionaries " -"and lists. When in doubt, use a mutex!" +"`~object.__del__` method when their reference count reaches zero, and that " +"can affect things. This is especially true for the mass updates to " +"dictionaries and lists. When in doubt, use a mutex!" msgstr "" "Las operaciones que reemplazan otros objetos pueden invocar el método :meth:" "`__del__` de esos otros objetos cuando su número de referencias alcance " @@ -997,13 +998,15 @@ msgstr "" "salida de sockets." #: ../Doc/faq/library.rst:767 +#, fuzzy msgid "" "To prevent the TCP connect from blocking, you can set the socket to non-" -"blocking mode. Then when you do the :meth:`socket.connect`, you will either " -"connect immediately (unlikely) or get an exception that contains the error " -"number as ``.errno``. ``errno.EINPROGRESS`` indicates that the connection is " -"in progress, but hasn't finished yet. Different OSes will return different " -"values, so you're going to have to check what's returned on your system." +"blocking mode. Then when you do the :meth:`~socket.socket.connect`, you " +"will either connect immediately (unlikely) or get an exception that contains " +"the error number as ``.errno``. ``errno.EINPROGRESS`` indicates that the " +"connection is in progress, but hasn't finished yet. Different OSes will " +"return different values, so you're going to have to check what's returned on " +"your system." msgstr "" "Para evitar que la conexión TCP se bloquee, puede configurar el socket en " "modo sin bloqueo. Luego, cuando hagas el :meth:`socket.connect`, te " @@ -1013,13 +1016,14 @@ msgstr "" "sistemas operativos devolverán valores diferentes, por lo que tendrá que " "verificar lo que se devuelve en su sistema." -#: ../Doc/faq/library.rst:774 +#: ../Doc/faq/library.rst:775 +#, fuzzy msgid "" -"You can use the :meth:`socket.connect_ex` method to avoid creating an " -"exception. It will just return the errno value. To poll, you can call :" -"meth:`socket.connect_ex` again later -- ``0`` or ``errno.EISCONN`` indicate " -"that you're connected -- or you can pass this socket to :meth:`select." -"select` to check if it's writable." +"You can use the :meth:`~socket.socket.connect_ex` method to avoid creating " +"an exception. It will just return the errno value. To poll, you can call :" +"meth:`~socket.socket.connect_ex` again later -- ``0`` or ``errno.EISCONN`` " +"indicate that you're connected -- or you can pass this socket to :meth:" +"`select.select` to check if it's writable." msgstr "" "Puede utilizar el método :meth:`socket.connect_ex` para evitar crear una " "excepción. Simplemente retornará el valor de errno. Para sondear, puede " @@ -1027,12 +1031,13 @@ msgstr "" "EISCONN`` indican que está conectado -- o puede pasar este socket a :meth:" "`select.select` para comprobar si se puede escribir." -#: ../Doc/faq/library.rst:780 +#: ../Doc/faq/library.rst:783 +#, fuzzy msgid "" "The :mod:`asyncio` module provides a general purpose single-threaded and " "concurrent asynchronous library, which can be used for writing non-blocking " -"network code. The third-party `Twisted `_ " -"library is a popular and feature-rich alternative." +"network code. The third-party `Twisted `_ library is a " +"popular and feature-rich alternative." msgstr "" "El módulo :mod:`asyncio` proporciona una biblioteca asíncrona concurrente y " "de un solo subproceso de propósito general, que se puede utilizar para " @@ -1040,19 +1045,19 @@ msgstr "" "`_ es una alternativa popular y rica en " "funciones." -#: ../Doc/faq/library.rst:788 +#: ../Doc/faq/library.rst:791 msgid "Databases" msgstr "Bases de datos" -#: ../Doc/faq/library.rst:791 +#: ../Doc/faq/library.rst:794 msgid "Are there any interfaces to database packages in Python?" msgstr "¿Hay paquetes para interfaces a bases de datos en Python?" -#: ../Doc/faq/library.rst:793 +#: ../Doc/faq/library.rst:796 msgid "Yes." msgstr "Sí." -#: ../Doc/faq/library.rst:795 +#: ../Doc/faq/library.rst:798 msgid "" "Interfaces to disk-based hashes such as :mod:`DBM ` and :mod:`GDBM " "` are also included with standard Python. There is also the :mod:" @@ -1064,7 +1069,7 @@ msgstr "" "un módulo :mod:`sqlite3`, que proporciona una base de datos relacional " "ligera basada en disco." -#: ../Doc/faq/library.rst:800 +#: ../Doc/faq/library.rst:803 msgid "" "Support for most relational databases is available. See the " "`DatabaseProgramming wiki page `_ para más detalles." -#: ../Doc/faq/library.rst:806 +#: ../Doc/faq/library.rst:809 msgid "How do you implement persistent objects in Python?" msgstr "¿Cómo implementar objetos persistentes en Python?" -#: ../Doc/faq/library.rst:808 +#: ../Doc/faq/library.rst:811 msgid "" "The :mod:`pickle` library module solves this in a very general way (though " "you still can't store things like open files, sockets or windows), and the :" @@ -1091,15 +1096,15 @@ msgstr "" "*(g)dbm* para crear mapeos persistentes que contienen objetos arbitrarios " "Python." -#: ../Doc/faq/library.rst:815 +#: ../Doc/faq/library.rst:818 msgid "Mathematics and Numerics" msgstr "Matemáticas y numérica" -#: ../Doc/faq/library.rst:818 +#: ../Doc/faq/library.rst:821 msgid "How do I generate random numbers in Python?" msgstr "¿Cómo genero números aleatorios en Python?" -#: ../Doc/faq/library.rst:820 +#: ../Doc/faq/library.rst:823 msgid "" "The standard module :mod:`random` implements a random number generator. " "Usage is simple::" @@ -1107,48 +1112,48 @@ msgstr "" "El módulo estándar :mod:`random` implementa un generador de números " "aleatorios. El uso es simple::" -#: ../Doc/faq/library.rst:826 +#: ../Doc/faq/library.rst:829 msgid "This returns a random floating point number in the range [0, 1)." msgstr "Esto retorna un número flotante aleatorio en el rango [0, 1)." -#: ../Doc/faq/library.rst:828 +#: ../Doc/faq/library.rst:831 msgid "" "There are also many other specialized generators in this module, such as:" msgstr "" "Hay también muchos otros generadores especializados en este módulo, tales " "como:" -#: ../Doc/faq/library.rst:830 +#: ../Doc/faq/library.rst:833 msgid "``randrange(a, b)`` chooses an integer in the range [a, b)." msgstr "``randrange(a, b)`` selecciona un entero en el rango [a, b)." -#: ../Doc/faq/library.rst:831 +#: ../Doc/faq/library.rst:834 msgid "``uniform(a, b)`` chooses a floating point number in the range [a, b)." msgstr "``uniform(a, b)`` selecciona un número flotante en el rango [a, b)." -#: ../Doc/faq/library.rst:832 +#: ../Doc/faq/library.rst:835 msgid "" "``normalvariate(mean, sdev)`` samples the normal (Gaussian) distribution." msgstr "" "``normalvariate(mean, sdev)`` muestrea una distribución normal (*Gausiana*)." -#: ../Doc/faq/library.rst:834 +#: ../Doc/faq/library.rst:837 msgid "Some higher-level functions operate on sequences directly, such as:" msgstr "" "Algunas funciones de alto nivel operan directamente sobre secuencias, tales " "como:" -#: ../Doc/faq/library.rst:836 +#: ../Doc/faq/library.rst:839 msgid "``choice(S)`` chooses a random element from a given sequence." msgstr "``choice(S)`` selecciona un elemento aleatorio de una secuencia dada." -#: ../Doc/faq/library.rst:837 +#: ../Doc/faq/library.rst:840 msgid "``shuffle(L)`` shuffles a list in-place, i.e. permutes it randomly." msgstr "" "``shuffle(L)`` reorganiza una lista in-situ, es decir, la permuta " "aleatoriamente." -#: ../Doc/faq/library.rst:839 +#: ../Doc/faq/library.rst:842 msgid "" "There's also a ``Random`` class you can instantiate to create independent " "multiple random number generators." diff --git a/faq/programming.po b/faq/programming.po index e587721657..33a7aa0519 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-12-11 15:36-0300\n" "Last-Translator: Juan C. Tello \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/faq/programming.rst:5 msgid "Programming FAQ" @@ -41,7 +41,7 @@ msgstr "" "¿Existe un depurador a nivel de código fuente con puntos de interrupción, " "depuración paso a paso, etc?" -#: ../Doc/faq/programming.rst:17 ../Doc/faq/programming.rst:57 +#: ../Doc/faq/programming.rst:17 ../Doc/faq/programming.rst:58 msgid "Yes." msgstr "Sí." @@ -66,16 +66,18 @@ msgstr "" "escribir tu propio depurador usando el código de pdb como ejemplo." #: ../Doc/faq/programming.rst:27 +#, fuzzy msgid "" "The IDLE interactive development environment, which is part of the standard " -"Python distribution (normally available as Tools/scripts/idle), includes a " +"Python distribution (normally available as `Tools/scripts/idle3 `_), includes a " "graphical debugger." msgstr "" "El entorno interactivo de desarrollo IDLE, el cual es parte de la " "distribución Python estándar (disponible, generalmente, como Tools/scripts/" "idle), incluye un depurador gráfico." -#: ../Doc/faq/programming.rst:31 +#: ../Doc/faq/programming.rst:32 msgid "" "PythonWin is a Python IDE that includes a GUI debugger based on pdb. The " "PythonWin debugger colors breakpoints and has quite a few cool features such " @@ -92,7 +94,7 @@ msgstr "" "pywin32/>`_ y como parte de la distribución `ActivePython `_." -#: ../Doc/faq/programming.rst:38 +#: ../Doc/faq/programming.rst:39 #, fuzzy msgid "" "`Eric `_ is an IDE built on PyQt and " @@ -101,7 +103,7 @@ msgstr "" "`Eric `_ es un IDE creado usando PyQt " "y el componente de edición Scintilla." -#: ../Doc/faq/programming.rst:41 +#: ../Doc/faq/programming.rst:42 msgid "" "`trepan3k `_ is a gdb-like " "debugger." @@ -109,7 +111,7 @@ msgstr "" "`trepan3k `_ es un depurador " "similar a `gdb`." -#: ../Doc/faq/programming.rst:43 +#: ../Doc/faq/programming.rst:44 msgid "" "`Visual Studio Code `_ is an IDE with " "debugging tools that integrates with version-control software." @@ -118,7 +120,7 @@ msgstr "" "herramientas de depuración que se integra con software de control de " "versiones." -#: ../Doc/faq/programming.rst:46 +#: ../Doc/faq/programming.rst:47 msgid "" "There are a number of commercial Python IDEs that include graphical " "debuggers. They include:" @@ -126,25 +128,25 @@ msgstr "" "Existen varios IDEs comerciales para Python que incluyen depuradores " "gráficos. Entre ellos tenemos:" -#: ../Doc/faq/programming.rst:49 +#: ../Doc/faq/programming.rst:50 msgid "`Wing IDE `_" msgstr "`IDE Wing `_" -#: ../Doc/faq/programming.rst:50 +#: ../Doc/faq/programming.rst:51 msgid "`Komodo IDE `_" msgstr "`IDE Komodo `_" -#: ../Doc/faq/programming.rst:51 +#: ../Doc/faq/programming.rst:52 msgid "`PyCharm `_" msgstr "`PyCharm `_" -#: ../Doc/faq/programming.rst:55 +#: ../Doc/faq/programming.rst:56 msgid "Are there tools to help find bugs or perform static analysis?" msgstr "" "¿Existe alguna herramienta que ayude a encontrar errores o realizar análisis " "estático?" -#: ../Doc/faq/programming.rst:59 +#: ../Doc/faq/programming.rst:60 #, fuzzy msgid "" "`Pylint `_ and `Pyflakes " @@ -155,23 +157,24 @@ msgstr "" "pyflakes>`_ realizan comprobaciones básicas que le ayudarán a detectar " "errores antes." -#: ../Doc/faq/programming.rst:63 +#: ../Doc/faq/programming.rst:64 +#, fuzzy msgid "" -"Static type checkers such as `Mypy `_, `Pyre `_, and `Pytype `_ can " -"check type hints in Python source code." +"Static type checkers such as `Mypy `_, `Pyre " +"`_, and `Pytype `_ can check type hints in Python source code." msgstr "" "Inspectores estáticos de tipos como `Mypy `_, `Pyre " "`_, y `Pytype `_ " "pueden hacer comprobaciones de las anotaciones de tipos en código fuente " "Python." -#: ../Doc/faq/programming.rst:72 +#: ../Doc/faq/programming.rst:73 msgid "How can I create a stand-alone binary from a Python script?" msgstr "" "¿Cómo puedo crear un binario independiente a partir de un programa Python?" -#: ../Doc/faq/programming.rst:74 +#: ../Doc/faq/programming.rst:75 msgid "" "You don't need the ability to compile Python to C code if all you want is a " "stand-alone program that users can download and run without having to " @@ -186,13 +189,14 @@ msgstr "" "un programa y une estos módulos conjuntamente con un binario Python para " "generar un único ejecutable." -#: ../Doc/faq/programming.rst:80 +#: ../Doc/faq/programming.rst:81 #, fuzzy msgid "" "One is to use the freeze tool, which is included in the Python source tree " -"as ``Tools/freeze``. It converts Python byte code to C arrays; with a C " -"compiler you can embed all your modules into a new program, which is then " -"linked with the standard Python modules." +"as `Tools/freeze `_. It converts Python byte code to C arrays; with a C compiler you " +"can embed all your modules into a new program, which is then linked with the " +"standard Python modules." msgstr "" "Una forma es usando la herramienta *freeze*, la cual viene incluida con el " "árbol de código Python como ``Tools/freeze``. Convierte el byte code Python " @@ -200,7 +204,7 @@ msgstr "" "programa que, posteriormente se puede enlazar con los módulos estándar de " "Python." -#: ../Doc/faq/programming.rst:85 +#: ../Doc/faq/programming.rst:87 msgid "" "It works by scanning your source recursively for import statements (in both " "forms) and looking for the modules in the standard Python path as well as in " @@ -223,7 +227,7 @@ msgstr "" "generado y lo enlaza con el resto del intérprete de Python para formar un " "binario autónomo que actúa exactamente igual que su script." -#: ../Doc/faq/programming.rst:94 +#: ../Doc/faq/programming.rst:96 msgid "" "The following packages can help with the creation of console and GUI " "executables:" @@ -231,43 +235,43 @@ msgstr "" "Los siguientes paquetes pueden ayudar con la creación de ejecutables de " "consola y GUI:" -#: ../Doc/faq/programming.rst:97 +#: ../Doc/faq/programming.rst:99 msgid "`Nuitka `_ (Cross-platform)" msgstr "`Nuitka `_ (Multiplataforma)" -#: ../Doc/faq/programming.rst:98 +#: ../Doc/faq/programming.rst:100 #, fuzzy msgid "`PyInstaller `_ (Cross-platform)" msgstr "`PyInstaller `_ (Multiplataforma)" -#: ../Doc/faq/programming.rst:99 +#: ../Doc/faq/programming.rst:101 msgid "" "`PyOxidizer `_ (Cross-platform)" msgstr "" "`PyOxidizer `_ " "(Multiplataforma)" -#: ../Doc/faq/programming.rst:100 +#: ../Doc/faq/programming.rst:102 msgid "" "`cx_Freeze `_ (Cross-platform)" msgstr "" "`cx_Freeze `_ (Multiplataforma)" -#: ../Doc/faq/programming.rst:101 +#: ../Doc/faq/programming.rst:103 msgid "`py2app `_ (macOS only)" msgstr "`py2app `_ (macOS solamente)" -#: ../Doc/faq/programming.rst:102 +#: ../Doc/faq/programming.rst:104 #, fuzzy msgid "`py2exe `_ (Windows only)" msgstr "`py2exe `_ (solo Windows)" -#: ../Doc/faq/programming.rst:105 +#: ../Doc/faq/programming.rst:107 msgid "Are there coding standards or a style guide for Python programs?" msgstr "" "¿Existen estándares de código o una guía de estilo para programas Python?" -#: ../Doc/faq/programming.rst:107 +#: ../Doc/faq/programming.rst:109 msgid "" "Yes. The coding style required for standard library modules is documented " "as :pep:`8`." @@ -275,39 +279,41 @@ msgstr "" "Sí. El estilo de código requerido para los módulos de la biblioteca estándar " "se encuentra documentado como :pep:`8`." -#: ../Doc/faq/programming.rst:112 +#: ../Doc/faq/programming.rst:114 msgid "Core Language" msgstr "Núcleo del lenguaje" -#: ../Doc/faq/programming.rst:115 +#: ../Doc/faq/programming.rst:119 msgid "Why am I getting an UnboundLocalError when the variable has a value?" msgstr "" "¿Por qué obtengo un *UnboundLocalError* cuando la variable tiene un valor?" -#: ../Doc/faq/programming.rst:117 +#: ../Doc/faq/programming.rst:121 +#, fuzzy msgid "" -"It can be a surprise to get the UnboundLocalError in previously working code " -"when it is modified by adding an assignment statement somewhere in the body " -"of a function." +"It can be a surprise to get the :exc:`UnboundLocalError` in previously " +"working code when it is modified by adding an assignment statement somewhere " +"in the body of a function." msgstr "" "Puede ser una sorpresa el hecho de obtener un UnboundLocalError en código " "que había estado funcionando previamente cuando se modifica mediante el " "añadido de una declaración de asignación en alguna parte del cuerpo de una " "función." -#: ../Doc/faq/programming.rst:121 +#: ../Doc/faq/programming.rst:125 msgid "This code:" msgstr "Este código:" -#: ../Doc/faq/programming.rst:129 +#: ../Doc/faq/programming.rst:134 msgid "works, but this code:" msgstr "funciona, pero este código:" -#: ../Doc/faq/programming.rst:136 -msgid "results in an UnboundLocalError:" +#: ../Doc/faq/programming.rst:141 +#, fuzzy +msgid "results in an :exc:`!UnboundLocalError`:" msgstr "resulta en un UnboundLocalError:" -#: ../Doc/faq/programming.rst:143 +#: ../Doc/faq/programming.rst:148 msgid "" "This is because when you make an assignment to a variable in a scope, that " "variable becomes local to that scope and shadows any similarly named " @@ -324,7 +330,7 @@ msgstr "" "el ``print(x)`` más próximo intenta mostrar la variable local no " "inicializada se muestra un error." -#: ../Doc/faq/programming.rst:150 +#: ../Doc/faq/programming.rst:155 msgid "" "In the example above you can access the outer scope variable by declaring it " "global:" @@ -332,7 +338,7 @@ msgstr "" "En el ejemplo anterior puedes acceder al ámbito de aplicación exterior a la " "variable declarándola como global:" -#: ../Doc/faq/programming.rst:161 +#: ../Doc/faq/programming.rst:167 msgid "" "This explicit declaration is required in order to remind you that (unlike " "the superficially analogous situation with class and instance variables) you " @@ -343,7 +349,7 @@ msgstr "" "clase e instancia) estás modificando el valor de la variable en un ámbito de " "aplicación más externo:" -#: ../Doc/faq/programming.rst:168 +#: ../Doc/faq/programming.rst:174 msgid "" "You can do a similar thing in a nested scope using the :keyword:`nonlocal` " "keyword:" @@ -351,12 +357,12 @@ msgstr "" "Puedes hacer algo similar en un ámbito de aplicación anidado usando la " "palabra clave :keyword:`nonlocal`:" -#: ../Doc/faq/programming.rst:185 +#: ../Doc/faq/programming.rst:192 msgid "What are the rules for local and global variables in Python?" msgstr "" "¿Cuáles son las reglas para las variables locales y globales en Python?" -#: ../Doc/faq/programming.rst:187 +#: ../Doc/faq/programming.rst:194 msgid "" "In Python, variables that are only referenced inside a function are " "implicitly global. If a variable is assigned a value anywhere within the " @@ -368,7 +374,7 @@ msgstr "" "valor en cualquier lugar dentro del cuerpo de una función, se asumirá que es " "local a no ser que explícitamente se la declare como global." -#: ../Doc/faq/programming.rst:191 +#: ../Doc/faq/programming.rst:198 msgid "" "Though a bit surprising at first, a moment's consideration explains this. " "On one hand, requiring :keyword:`global` for assigned variables provides a " @@ -387,7 +393,7 @@ msgstr "" "a un componente de un módulo importado. Este embrollo arruinaría la utilidad " "de la declaración \"global\" para identificar los efectos secundarios." -#: ../Doc/faq/programming.rst:201 +#: ../Doc/faq/programming.rst:208 msgid "" "Why do lambdas defined in a loop with different values all return the same " "result?" @@ -395,7 +401,7 @@ msgstr "" "¿Por qué las funciones lambda definidas en un bucle con diferentes valores " "devuelven todas el mismo resultado?" -#: ../Doc/faq/programming.rst:203 +#: ../Doc/faq/programming.rst:210 msgid "" "Assume you use a for loop to define a few different lambdas (or even plain " "functions), e.g.::" @@ -403,7 +409,7 @@ msgstr "" "Considera que usas un bucle *for* para crear unas pocas funciones lambda (o, " "incluso, funciones normales), por ejemplo.::" -#: ../Doc/faq/programming.rst:210 +#: ../Doc/faq/programming.rst:217 msgid "" "This gives you a list that contains 5 lambdas that calculate ``x**2``. You " "might expect that, when called, they would return, respectively, ``0``, " @@ -415,7 +421,7 @@ msgstr "" "respectivamente, ``0``, ``1``, ``4``, ``9`` y ``16``. Sin embargo, cuando lo " "ejecutes verás que todas devuelven ``16``::" -#: ../Doc/faq/programming.rst:220 +#: ../Doc/faq/programming.rst:227 msgid "" "This happens because ``x`` is not local to the lambdas, but is defined in " "the outer scope, and it is accessed when the lambda is called --- not when " @@ -430,7 +436,7 @@ msgstr "" "e. ``16``. También puedes verificar esto mediante el cambio del valor de " "``x`` y ver como los resultados de las lambdas cambian::" -#: ../Doc/faq/programming.rst:230 +#: ../Doc/faq/programming.rst:237 msgid "" "In order to avoid this, you need to save the values in variables local to " "the lambdas, so that they don't rely on the value of the global ``x``::" @@ -439,7 +445,7 @@ msgstr "" "las funciones lambda de tal forma que no dependan del valor de la ``x`` " "global::" -#: ../Doc/faq/programming.rst:237 +#: ../Doc/faq/programming.rst:244 msgid "" "Here, ``n=x`` creates a new variable ``n`` local to the lambda and computed " "when the lambda is defined so that it has the same value that ``x`` had at " @@ -454,7 +460,7 @@ msgstr "" "en la tercera y así sucesivamente. Por tanto, ahora cada lambda retornará el " "resultado correcto::" -#: ../Doc/faq/programming.rst:248 +#: ../Doc/faq/programming.rst:255 msgid "" "Note that this behaviour is not peculiar to lambdas, but applies to regular " "functions too." @@ -462,11 +468,11 @@ msgstr "" "Es de destacar que este comportamiento no es peculiar de las funciones " "lambda sino que aplica también a las funciones regulares." -#: ../Doc/faq/programming.rst:253 +#: ../Doc/faq/programming.rst:260 msgid "How do I share global variables across modules?" msgstr "¿Cómo puedo compartir variables globales entre módulos?" -#: ../Doc/faq/programming.rst:255 +#: ../Doc/faq/programming.rst:262 msgid "" "The canonical way to share information across modules within a single " "program is to create a special module (often called config or cfg). Just " @@ -482,31 +488,32 @@ msgstr "" "una instancia de cada módulo, cualquier cambio hecho en el objeto módulo se " "reflejará en todos los sitios. Por ejemplo:" -#: ../Doc/faq/programming.rst:261 +#: ../Doc/faq/programming.rst:268 msgid "config.py::" msgstr "config.py::" -#: ../Doc/faq/programming.rst:265 +#: ../Doc/faq/programming.rst:272 msgid "mod.py::" msgstr "mod.py::" -#: ../Doc/faq/programming.rst:270 +#: ../Doc/faq/programming.rst:277 msgid "main.py::" msgstr "main.py::" -#: ../Doc/faq/programming.rst:276 +#: ../Doc/faq/programming.rst:283 +#, fuzzy msgid "" -"Note that using a module is also the basis for implementing the Singleton " +"Note that using a module is also the basis for implementing the singleton " "design pattern, for the same reason." msgstr "" "Ten en cuenta que usar un módulo es también la base para la implementación " "del patrón de diseño Singleton, por la misma razón." -#: ../Doc/faq/programming.rst:281 +#: ../Doc/faq/programming.rst:288 msgid "What are the \"best practices\" for using import in a module?" msgstr "¿Cuáles son las \"buenas prácticas\" para usar import en un módulo?" -#: ../Doc/faq/programming.rst:283 +#: ../Doc/faq/programming.rst:290 msgid "" "In general, don't use ``from modulename import *``. Doing so clutters the " "importer's namespace, and makes it much harder for linters to detect " @@ -516,7 +523,7 @@ msgstr "" "espacio de nombres del importador y hace que sea más difícil para los " "*linters* el detectar los nombres sin definir." -#: ../Doc/faq/programming.rst:287 +#: ../Doc/faq/programming.rst:294 msgid "" "Import modules at the top of a file. Doing so makes it clear what other " "modules your code requires and avoids questions of whether the module name " @@ -530,31 +537,35 @@ msgstr "" "importados pero usar múltiples importaciones por línea usa menos espacio de " "pantalla." -#: ../Doc/faq/programming.rst:292 +#: ../Doc/faq/programming.rst:299 msgid "It's good practice if you import modules in the following order:" msgstr "Es una buena práctica si importas los módulos en el orden siguiente:" -#: ../Doc/faq/programming.rst:294 -msgid "standard library modules -- e.g. ``sys``, ``os``, ``getopt``, ``re``" +#: ../Doc/faq/programming.rst:301 +#, fuzzy +msgid "" +"standard library modules -- e.g. :mod:`sys`, :mod:`os`, :mod:`argparse`, :" +"mod:`re`" msgstr "" "módulos de la biblioteca estándar -- por ejemplo, ``sys``, ``os``, " "``getopt``, ``re``" -#: ../Doc/faq/programming.rst:295 +#: ../Doc/faq/programming.rst:302 +#, fuzzy msgid "" "third-party library modules (anything installed in Python's site-packages " -"directory) -- e.g. mx.DateTime, ZODB, PIL.Image, etc." +"directory) -- e.g. :mod:`!dateutil`, :mod:`!requests`, :mod:`!PIL.Image`" msgstr "" "módulos de bibliotecas de terceros (cualquier cosa instalada en el " "directorio *site-packages* de Python) -- por ejemplo, mx.DateTime, ZODB, PIL." "Image, etc." -#: ../Doc/faq/programming.rst:297 +#: ../Doc/faq/programming.rst:304 #, fuzzy msgid "locally developed modules" msgstr "módulos desarrollados localmente" -#: ../Doc/faq/programming.rst:299 +#: ../Doc/faq/programming.rst:306 msgid "" "It is sometimes necessary to move imports to a function or class to avoid " "problems with circular imports. Gordon McMillan says:" @@ -562,7 +573,7 @@ msgstr "" "Hay veces en que es necesario mover las importaciones a una función o clase " "para evitar problemas de importaciones circulares. Gordon McMillan dice:" -#: ../Doc/faq/programming.rst:302 +#: ../Doc/faq/programming.rst:309 msgid "" "Circular imports are fine where both modules use the \"import \" " "form of import. They fail when the 2nd module wants to grab a name out of " @@ -577,7 +588,7 @@ msgstr "" "porque los nombres en el primero todavía no se encuentran disponibles debido " "a que el primer módulo se encuentra ocupado importando al segundo." -#: ../Doc/faq/programming.rst:308 +#: ../Doc/faq/programming.rst:315 msgid "" "In this case, if the second module is only used in one function, then the " "import can easily be moved into that function. By the time the import is " @@ -589,7 +600,7 @@ msgstr "" "momento en que se invoca a la importación el primer módulo habrá terminado " "de inicializarse y el segundo módulo podrá hacer la importación." -#: ../Doc/faq/programming.rst:313 +#: ../Doc/faq/programming.rst:320 msgid "" "It may also be necessary to move imports out of the top level of code if " "some of the modules are platform-specific. In that case, it may not even be " @@ -604,7 +615,7 @@ msgstr "" "módulos en el código correspondiente específico de la plataforma es una " "buena opción." -#: ../Doc/faq/programming.rst:318 +#: ../Doc/faq/programming.rst:325 msgid "" "Only move imports into a local scope, such as inside a function definition, " "if it's necessary to solve a problem such as avoiding a circular import or " @@ -630,11 +641,11 @@ msgstr "" "ha salido del ámbito de aplicación el módulo se encuentre, probablemente, " "en :data:`sys.modules`." -#: ../Doc/faq/programming.rst:331 +#: ../Doc/faq/programming.rst:338 msgid "Why are default values shared between objects?" msgstr "¿Por qué los valores por defecto se comparten entre objetos?" -#: ../Doc/faq/programming.rst:333 +#: ../Doc/faq/programming.rst:340 msgid "" "This type of bug commonly bites neophyte programmers. Consider this " "function::" @@ -642,7 +653,7 @@ msgstr "" "Este tipo de error golpea a menudo a programadores novatos. Considera esta " "función::" -#: ../Doc/faq/programming.rst:340 +#: ../Doc/faq/programming.rst:347 msgid "" "The first time you call this function, ``mydict`` contains a single item. " "The second time, ``mydict`` contains two items because when ``foo()`` begins " @@ -653,7 +664,7 @@ msgstr "" "que cuando comienza la ejecución de ``foo()``, ``mydict`` comienza " "conteniendo un elemento de partida." -#: ../Doc/faq/programming.rst:344 +#: ../Doc/faq/programming.rst:351 msgid "" "It is often expected that a function call creates new objects for default " "values. This is not what happens. Default values are created exactly once, " @@ -667,7 +678,7 @@ msgstr "" "se cambia el objeto, como el diccionario en este ejemplo, posteriores " "invocaciones a la función estarán referidas al objeto cambiado." -#: ../Doc/faq/programming.rst:349 +#: ../Doc/faq/programming.rst:356 msgid "" "By definition, immutable objects such as numbers, strings, tuples, and " "``None``, are safe from change. Changes to mutable objects such as " @@ -677,7 +688,7 @@ msgstr "" "``None`` están asegurados frente al cambio. Cambios en objetos mutables como " "diccionarios, listas e instancias de clase pueden llevar a confusión." -#: ../Doc/faq/programming.rst:353 +#: ../Doc/faq/programming.rst:360 msgid "" "Because of this feature, it is good programming practice to not use mutable " "objects as default values. Instead, use ``None`` as the default value and " @@ -690,11 +701,11 @@ msgstr "" "``None`` y crea una nueva lista/un nuevo diccionario/cualquier otras cosa " "que necesites. Por ejemplo, no escribas::" -#: ../Doc/faq/programming.rst:361 +#: ../Doc/faq/programming.rst:368 msgid "but::" msgstr "pero::" -#: ../Doc/faq/programming.rst:367 +#: ../Doc/faq/programming.rst:374 msgid "" "This feature can be useful. When you have a function that's time-consuming " "to compute, a common technique is to cache the parameters and the resulting " @@ -708,7 +719,7 @@ msgstr "" "*cacheado* si se solicita nuevamente el mismo valor. A esto se le llama " "\"memoizing\" y se puede implementar de la siguiente forma::" -#: ../Doc/faq/programming.rst:382 +#: ../Doc/faq/programming.rst:389 msgid "" "You could use a global variable containing a dictionary instead of the " "default value; it's a matter of taste." @@ -716,14 +727,14 @@ msgstr "" "Podrías usar una variable global conteniendo un diccionario en lugar de un " "valor por defecto; es una cuestión de gustos." -#: ../Doc/faq/programming.rst:387 +#: ../Doc/faq/programming.rst:394 msgid "" "How can I pass optional or keyword parameters from one function to another?" msgstr "" "¿Cómo puedo pasar parámetros por palabra clave u opcionales de una función a " "otra?" -#: ../Doc/faq/programming.rst:389 +#: ../Doc/faq/programming.rst:396 msgid "" "Collect the arguments using the ``*`` and ``**`` specifiers in the " "function's parameter list; this gives you the positional arguments as a " @@ -736,11 +747,11 @@ msgstr "" "diccionario. Puedes, entonces, pasar estos argumentos cuando invoques a " "otra función usando ``*`` y ``**``::" -#: ../Doc/faq/programming.rst:408 +#: ../Doc/faq/programming.rst:415 msgid "What is the difference between arguments and parameters?" msgstr "¿Cuál es la diferencia entre argumentos y parámetros?" -#: ../Doc/faq/programming.rst:410 +#: ../Doc/faq/programming.rst:417 #, fuzzy msgid "" ":term:`Parameters ` are defined by the names that appear in a " @@ -755,7 +766,7 @@ msgstr "" "Parámetros definen qué tipos de argumentos puede aceptar una función. por " "ejemplo, dada la definición de la función::" -#: ../Doc/faq/programming.rst:419 +#: ../Doc/faq/programming.rst:426 msgid "" "*foo*, *bar* and *kwargs* are parameters of ``func``. However, when calling " "``func``, for example::" @@ -763,30 +774,30 @@ msgstr "" "*foo*, *bar* y *kwargs* son parámetros de ``func``. Sin embargo, cuando " "invocamos a ``func``, por ejemplo::" -#: ../Doc/faq/programming.rst:424 +#: ../Doc/faq/programming.rst:431 msgid "the values ``42``, ``314``, and ``somevar`` are arguments." msgstr "los valores ``42``, ``314`` y ``somevar`` son argumentos." -#: ../Doc/faq/programming.rst:428 +#: ../Doc/faq/programming.rst:435 msgid "Why did changing list 'y' also change list 'x'?" msgstr "¿Por qué cambiando la lista 'y' cambia, también, la lista 'x'?" -#: ../Doc/faq/programming.rst:430 +#: ../Doc/faq/programming.rst:437 msgid "If you wrote code like::" msgstr "Si escribes código como::" -#: ../Doc/faq/programming.rst:440 +#: ../Doc/faq/programming.rst:447 msgid "" "you might be wondering why appending an element to ``y`` changed ``x`` too." msgstr "" "te estarás preguntando porque añadir un elemento a ``y`` ha cambiado también " "a ``x``." -#: ../Doc/faq/programming.rst:442 +#: ../Doc/faq/programming.rst:449 msgid "There are two factors that produce this result:" msgstr "Hay dos factores que provocan este resultado:" -#: ../Doc/faq/programming.rst:444 +#: ../Doc/faq/programming.rst:451 msgid "" "Variables are simply names that refer to objects. Doing ``y = x`` doesn't " "create a copy of the list -- it creates a new variable ``y`` that refers to " @@ -799,29 +810,30 @@ msgstr "" "solo existe un objeto (la lista) y tanto ``x`` como ``y`` hacen referencia " "al mismo." -#: ../Doc/faq/programming.rst:448 +#: ../Doc/faq/programming.rst:455 msgid "" "Lists are :term:`mutable`, which means that you can change their content." msgstr "" "Las listas son :term:`mutable`, lo que significa que puedes cambiar su " "contenido." -#: ../Doc/faq/programming.rst:450 +#: ../Doc/faq/programming.rst:457 +#, fuzzy msgid "" -"After the call to :meth:`~list.append`, the content of the mutable object " -"has changed from ``[]`` to ``[10]``. Since both the variables refer to the " -"same object, using either name accesses the modified value ``[10]``." +"After the call to :meth:`!append`, the content of the mutable object has " +"changed from ``[]`` to ``[10]``. Since both the variables refer to the same " +"object, using either name accesses the modified value ``[10]``." msgstr "" "Después de la invocación a :meth:`~list.append`, el contenido del objeto " "mutable ha cambiado de ``[]`` a ``[10]``. Ya que ambas variables " "referencian al mismo objeto, el usar cualquiera de los nombres accederá al " "valor modificado ``[10]``." -#: ../Doc/faq/programming.rst:454 +#: ../Doc/faq/programming.rst:461 msgid "If we instead assign an immutable object to ``x``::" msgstr "Si, por otra parte, asignamos un objeto inmutable a ``x``::" -#: ../Doc/faq/programming.rst:464 +#: ../Doc/faq/programming.rst:471 msgid "" "we can see that in this case ``x`` and ``y`` are not equal anymore. This is " "because integers are :term:`immutable`, and when we do ``x = x + 1`` we are " @@ -840,16 +852,17 @@ msgstr "" "referencian a ellos (``x`` ahora referencia a ``6`` pero ``y`` todavía " "referencia a ``5``)." -#: ../Doc/faq/programming.rst:472 +#: ../Doc/faq/programming.rst:479 +#, fuzzy msgid "" "Some operations (for example ``y.append(10)`` and ``y.sort()``) mutate the " "object, whereas superficially similar operations (for example ``y = y + " -"[10]`` and ``sorted(y)``) create a new object. In general in Python (and in " -"all cases in the standard library) a method that mutates an object will " -"return ``None`` to help avoid getting the two types of operations confused. " -"So if you mistakenly write ``y.sort()`` thinking it will give you a sorted " -"copy of ``y``, you'll instead end up with ``None``, which will likely cause " -"your program to generate an easily diagnosed error." +"[10]`` and :func:`sorted(y) `) create a new object. In general in " +"Python (and in all cases in the standard library) a method that mutates an " +"object will return ``None`` to help avoid getting the two types of " +"operations confused. So if you mistakenly write ``y.sort()`` thinking it " +"will give you a sorted copy of ``y``, you'll instead end up with ``None``, " +"which will likely cause your program to generate an easily diagnosed error." msgstr "" "Algunas operaciones (por ejemplo ``y.append(10)`` y ``y.sort()``) mutan al " "objeto mientras que operaciones que podrían parecer similares (por ejemplo " @@ -861,7 +874,7 @@ msgstr "" "lugar, ``None``, lo cual ayudará a que tu programa genera un error que pueda " "ser diagnosticado fácilmente." -#: ../Doc/faq/programming.rst:481 +#: ../Doc/faq/programming.rst:488 msgid "" "However, there is one class of operations where the same operation sometimes " "has different behaviors with different types: the augmented assignment " @@ -877,11 +890,11 @@ msgstr "" "extend([1, 2, 3])`` y muta ``a_list``, mientras que ``some_tuple += (1, 2, " "3)`` y ``some_int += 1`` crea nuevos objetos)." -#: ../Doc/faq/programming.rst:488 +#: ../Doc/faq/programming.rst:495 msgid "In other words:" msgstr "En otras palabras:" -#: ../Doc/faq/programming.rst:490 +#: ../Doc/faq/programming.rst:497 msgid "" "If we have a mutable object (:class:`list`, :class:`dict`, :class:`set`, " "etc.), we can use some specific operations to mutate it and all the " @@ -891,7 +904,7 @@ msgstr "" "etc.), podemos usar algunas operaciones específicas para mutarlo y todas las " "variables que referencian al mismo verán el cambio reflejado." -#: ../Doc/faq/programming.rst:493 +#: ../Doc/faq/programming.rst:500 msgid "" "If we have an immutable object (:class:`str`, :class:`int`, :class:`tuple`, " "etc.), all the variables that refer to it will always see the same value, " @@ -903,7 +916,7 @@ msgstr "" "valor pero las operaciones que transforman ese valor en un nuevo valor " "siempre retornan un nuevo objeto." -#: ../Doc/faq/programming.rst:498 +#: ../Doc/faq/programming.rst:505 msgid "" "If you want to know if two variables refer to the same object or not, you " "can use the :keyword:`is` operator, or the built-in function :func:`id`." @@ -911,13 +924,13 @@ msgstr "" "Si deseas saber si dos variables referencian o no al mismo objeto puedes " "usar el operador :keyword:`is` o la función incorporada :func:`id`." -#: ../Doc/faq/programming.rst:503 +#: ../Doc/faq/programming.rst:510 msgid "How do I write a function with output parameters (call by reference)?" msgstr "" "¿Cómo puedo escribir una función sin parámetros (invocación mediante " "referencia)?" -#: ../Doc/faq/programming.rst:505 +#: ../Doc/faq/programming.rst:512 msgid "" "Remember that arguments are passed by assignment in Python. Since " "assignment just creates references to objects, there's no alias between an " @@ -930,46 +943,46 @@ msgstr "" "no hay invocación por referencia per se. Puedes obtener el mismo efecto " "deseado de formas distintas." -#: ../Doc/faq/programming.rst:510 +#: ../Doc/faq/programming.rst:517 msgid "By returning a tuple of the results::" msgstr "Mediante el retorno de una tupla de resultados::" -#: ../Doc/faq/programming.rst:521 +#: ../Doc/faq/programming.rst:528 msgid "This is almost always the clearest solution." msgstr "Esta es, casi siempre, la solución más clara." -#: ../Doc/faq/programming.rst:523 +#: ../Doc/faq/programming.rst:530 msgid "" "By using global variables. This isn't thread-safe, and is not recommended." msgstr "" "Mediante el uso de variables globales. No es thread-safe y no se recomienda." -#: ../Doc/faq/programming.rst:525 +#: ../Doc/faq/programming.rst:532 msgid "By passing a mutable (changeable in-place) object::" msgstr "Pasando un objeto mutable (intercambiable en el mismo sitio)::" -#: ../Doc/faq/programming.rst:536 +#: ../Doc/faq/programming.rst:543 msgid "By passing in a dictionary that gets mutated::" msgstr "Pasando un diccionario que muta::" -#: ../Doc/faq/programming.rst:547 +#: ../Doc/faq/programming.rst:554 msgid "Or bundle up values in a class instance::" msgstr "O empaquetar valores en una instancia de clase::" -#: ../Doc/faq/programming.rst:564 +#: ../Doc/faq/programming.rst:571 msgid "There's almost never a good reason to get this complicated." msgstr "Casi nunca existe una buena razón para hacer esto tan complicado." -#: ../Doc/faq/programming.rst:566 +#: ../Doc/faq/programming.rst:573 msgid "Your best choice is to return a tuple containing the multiple results." msgstr "" "Tu mejor opción es retornar una tupla que contenga los múltiples resultados." -#: ../Doc/faq/programming.rst:570 +#: ../Doc/faq/programming.rst:577 msgid "How do you make a higher order function in Python?" msgstr "¿Cómo se puede hacer una función de orden superior en Python?" -#: ../Doc/faq/programming.rst:572 +#: ../Doc/faq/programming.rst:579 msgid "" "You have two choices: you can use nested scopes or you can use callable " "objects. For example, suppose you wanted to define ``linear(a,b)`` which " @@ -981,19 +994,19 @@ msgstr "" "b)`` que devuelve una función ``f(x)`` que calcula el valor ``a*x+b``. Usar " "ámbitos de aplicación anidados::" -#: ../Doc/faq/programming.rst:581 +#: ../Doc/faq/programming.rst:588 msgid "Or using a callable object::" msgstr "O usar un objeto invocable::" -#: ../Doc/faq/programming.rst:591 +#: ../Doc/faq/programming.rst:598 msgid "In both cases, ::" msgstr "En ambos casos, ::" -#: ../Doc/faq/programming.rst:595 +#: ../Doc/faq/programming.rst:602 msgid "gives a callable object where ``taxes(10e6) == 0.3 * 10e6 + 2``." msgstr "nos da un objeto invocable donde ``taxes(10e6) == 0.3 * 10e6 + 2``." -#: ../Doc/faq/programming.rst:597 +#: ../Doc/faq/programming.rst:604 msgid "" "The callable object approach has the disadvantage that it is a bit slower " "and results in slightly longer code. However, note that a collection of " @@ -1004,11 +1017,11 @@ msgstr "" "destacar que una colección de invocables pueden compartir su firma vía " "herencia::" -#: ../Doc/faq/programming.rst:606 +#: ../Doc/faq/programming.rst:613 msgid "Object can encapsulate state for several methods::" msgstr "Los objetos pueden encapsular el estado de varios métodos::" -#: ../Doc/faq/programming.rst:624 +#: ../Doc/faq/programming.rst:631 msgid "" "Here ``inc()``, ``dec()`` and ``reset()`` act like functions which share the " "same counting variable." @@ -1016,11 +1029,11 @@ msgstr "" "Aquí ``inc()``, ``dec()`` y ``reset()`` se comportan como funciones las " "cuales comparten la misma variable de conteo." -#: ../Doc/faq/programming.rst:629 +#: ../Doc/faq/programming.rst:636 msgid "How do I copy an object in Python?" msgstr "¿Cómo copio un objeto en Python?" -#: ../Doc/faq/programming.rst:631 +#: ../Doc/faq/programming.rst:638 msgid "" "In general, try :func:`copy.copy` or :func:`copy.deepcopy` for the general " "case. Not all objects can be copied, but most can." @@ -1029,7 +1042,7 @@ msgstr "" "general. No todos los objetos se pueden copiar pero la mayoría sí que pueden " "copiarse." -#: ../Doc/faq/programming.rst:634 +#: ../Doc/faq/programming.rst:641 msgid "" "Some objects can be copied more easily. Dictionaries have a :meth:`~dict." "copy` method::" @@ -1037,18 +1050,19 @@ msgstr "" "Algunas objetos se pueden copiar de forma más sencilla. Los diccionarios " "disponen de un método :meth:`~dict.copy`::" -#: ../Doc/faq/programming.rst:639 +#: ../Doc/faq/programming.rst:646 msgid "Sequences can be copied by slicing::" msgstr "Las secuencias se pueden copiar usando un rebanado::" -#: ../Doc/faq/programming.rst:645 +#: ../Doc/faq/programming.rst:652 msgid "How can I find the methods or attributes of an object?" msgstr "¿Cómo puedo encontrar los métodos o atributos de un objeto?" -#: ../Doc/faq/programming.rst:647 +#: ../Doc/faq/programming.rst:654 +#, fuzzy msgid "" -"For an instance x of a user-defined class, ``dir(x)`` returns an " -"alphabetized list of the names containing the instance attributes and " +"For an instance ``x`` of a user-defined class, :func:`dir(x) ` returns " +"an alphabetized list of the names containing the instance attributes and " "methods and attributes defined by its class." msgstr "" "Para la instancia x de una clase definida por el usuario, ``dir(x)`` " @@ -1056,11 +1070,11 @@ msgstr "" "atributos y métodos de la instancia y los atributos definidos mediante su " "clase." -#: ../Doc/faq/programming.rst:653 +#: ../Doc/faq/programming.rst:660 msgid "How can my code discover the name of an object?" msgstr "¿Cómo puede mi código descubrir el nombre de un objeto?" -#: ../Doc/faq/programming.rst:655 +#: ../Doc/faq/programming.rst:662 msgid "" "Generally speaking, it can't, because objects don't really have names. " "Essentially, assignment always binds a name to a value; the same is true of " @@ -1073,12 +1087,14 @@ msgstr "" "``class`` pero, en este caso, el valor es un invocable. Considera el " "siguiente código::" -#: ../Doc/faq/programming.rst:671 +#: ../Doc/faq/programming.rst:678 +#, fuzzy msgid "" "Arguably the class has a name: even though it is bound to two names and " -"invoked through the name B the created instance is still reported as an " -"instance of class A. However, it is impossible to say whether the " -"instance's name is a or b, since both names are bound to the same value." +"invoked through the name ``B`` the created instance is still reported as an " +"instance of class ``A``. However, it is impossible to say whether the " +"instance's name is ``a`` or ``b``, since both names are bound to the same " +"value." msgstr "" "Podría decirse que la clase tiene un nombre: aunque está ligada a dos " "nombres y se invoca a través del nombre B, la instancia creada se sigue " @@ -1086,7 +1102,7 @@ msgstr "" "si el nombre de la instancia es a o b, ya que ambos nombres están ligados al " "mismo valor." -#: ../Doc/faq/programming.rst:676 +#: ../Doc/faq/programming.rst:683 msgid "" "Generally speaking it should not be necessary for your code to \"know the " "names\" of particular values. Unless you are deliberately writing " @@ -1098,7 +1114,7 @@ msgstr "" "deliberadamente programas introspectivos, esto suele ser una indicación de " "que un cambio de enfoque podría ser beneficioso." -#: ../Doc/faq/programming.rst:681 +#: ../Doc/faq/programming.rst:688 msgid "" "In comp.lang.python, Fredrik Lundh once gave an excellent analogy in answer " "to this question:" @@ -1106,7 +1122,7 @@ msgstr "" "En comp.lang.python, Fredrik Lundh proporcionó una vez una excelente " "analogía en respuesta a esta pregunta:" -#: ../Doc/faq/programming.rst:684 +#: ../Doc/faq/programming.rst:691 msgid "" "The same way as you get the name of that cat you found on your porch: the " "cat (object) itself cannot tell you its name, and it doesn't really care -- " @@ -1119,7 +1135,7 @@ msgstr "" "llama sería preguntando a todos los vecinos (espacios de nombres) si es su " "gato (objeto)..." -#: ../Doc/faq/programming.rst:689 +#: ../Doc/faq/programming.rst:696 msgid "" "....and don't be surprised if you'll find that it's known by many names, or " "no name at all!" @@ -1127,15 +1143,15 @@ msgstr "" "...y no te sorprendas si encuentras que se le conoce mediante diferentes " "nombres o ¡nadie conoce su nombre!" -#: ../Doc/faq/programming.rst:694 +#: ../Doc/faq/programming.rst:701 msgid "What's up with the comma operator's precedence?" msgstr "¿Qué ocurre con la precedencia del operador coma?" -#: ../Doc/faq/programming.rst:696 +#: ../Doc/faq/programming.rst:703 msgid "Comma is not an operator in Python. Consider this session::" msgstr "La coma no es un operador en Python. Considera la sesión::" -#: ../Doc/faq/programming.rst:701 +#: ../Doc/faq/programming.rst:708 msgid "" "Since the comma is not an operator, but a separator between expressions the " "above is evaluated as if you had entered::" @@ -1143,11 +1159,11 @@ msgstr "" "Debido a que la coma no es un operador sino un separador entre expresiones " "lo anterior se evalúe como se ha introducido::" -#: ../Doc/faq/programming.rst:706 +#: ../Doc/faq/programming.rst:713 msgid "not::" msgstr "no::" -#: ../Doc/faq/programming.rst:710 +#: ../Doc/faq/programming.rst:717 msgid "" "The same is true of the various assignment operators (``=``, ``+=`` etc). " "They are not truly operators but syntactic delimiters in assignment " @@ -1157,15 +1173,15 @@ msgstr "" "No son realmente operadores sino delimitadores sintácticos en declaraciones " "de asignación." -#: ../Doc/faq/programming.rst:715 +#: ../Doc/faq/programming.rst:722 msgid "Is there an equivalent of C's \"?:\" ternary operator?" msgstr "¿Existe un equivalente al operador ternario de C \"?:\"?" -#: ../Doc/faq/programming.rst:717 +#: ../Doc/faq/programming.rst:724 msgid "Yes, there is. The syntax is as follows::" msgstr "Sí, existe. La sintaxis es como sigue::" -#: ../Doc/faq/programming.rst:724 +#: ../Doc/faq/programming.rst:731 msgid "" "Before this syntax was introduced in Python 2.5, a common idiom was to use " "logical operators::" @@ -1173,7 +1189,7 @@ msgstr "" "Antes de que esta sintaxis se introdujera en Python 2.5 una expresión común " "fue el uso de operadores lógicos::" -#: ../Doc/faq/programming.rst:729 +#: ../Doc/faq/programming.rst:736 msgid "" "However, this idiom is unsafe, as it can give wrong results when *on_true* " "has a false boolean value. Therefore, it is always better to use the ``... " @@ -1183,12 +1199,12 @@ msgstr "" "erróneos cuando *on_true* tiene un valor booleano falso. Por tanto, siempre " "es mejor usar la forma ``... if ... else ...``." -#: ../Doc/faq/programming.rst:735 +#: ../Doc/faq/programming.rst:742 msgid "Is it possible to write obfuscated one-liners in Python?" msgstr "" "¿Es posible escribir expresiones en una línea de forma ofuscada en Python?" -#: ../Doc/faq/programming.rst:737 +#: ../Doc/faq/programming.rst:744 #, fuzzy msgid "" "Yes. Usually this is done by nesting :keyword:`lambda` within :keyword:`!" @@ -1199,16 +1215,16 @@ msgstr "" "keyword:`!lambda`. Examina los siguientes tres ejemplos, creados por Ulf " "Bartelt::" -#: ../Doc/faq/programming.rst:764 +#: ../Doc/faq/programming.rst:771 msgid "Don't try this at home, kids!" msgstr "¡No probéis esto en casa, personitas!" -#: ../Doc/faq/programming.rst:770 +#: ../Doc/faq/programming.rst:777 msgid "What does the slash(/) in the parameter list of a function mean?" msgstr "" "¿Qué hace la barra (/) en medio de la lista de parámetros de una función?" -#: ../Doc/faq/programming.rst:772 +#: ../Doc/faq/programming.rst:779 #, fuzzy msgid "" "A slash in the argument list of a function denotes that the parameters prior " @@ -1227,7 +1243,7 @@ msgstr "" "acepta parámetros únicamente posicionales. Su documentación es de la " "siguiente forma::" -#: ../Doc/faq/programming.rst:785 +#: ../Doc/faq/programming.rst:792 msgid "" "The slash at the end of the parameter list means that both parameters are " "positional-only. Thus, calling :func:`divmod` with keyword arguments would " @@ -1237,15 +1253,15 @@ msgstr "" "son únicamente posicionales. Por tanto, invocar a :func:`pow` con " "argumentos con palabra clave podría derivar en un error::" -#: ../Doc/faq/programming.rst:796 +#: ../Doc/faq/programming.rst:803 msgid "Numbers and strings" msgstr "Números y cadenas" -#: ../Doc/faq/programming.rst:799 +#: ../Doc/faq/programming.rst:806 msgid "How do I specify hexadecimal and octal integers?" msgstr "¿Cómo puedo especificar enteros hexadecimales y octales?" -#: ../Doc/faq/programming.rst:801 +#: ../Doc/faq/programming.rst:808 msgid "" "To specify an octal digit, precede the octal value with a zero, and then a " "lower or uppercase \"o\". For example, to set the variable \"a\" to the " @@ -1255,7 +1271,7 @@ msgstr "" "\"o\" en minúscula o mayúscula. Por ejemplo, para definir la variable \"a\" " "con el valor octal \"10\" (8 en decimal), escribe::" -#: ../Doc/faq/programming.rst:809 +#: ../Doc/faq/programming.rst:816 msgid "" "Hexadecimal is just as easy. Simply precede the hexadecimal number with a " "zero, and then a lower or uppercase \"x\". Hexadecimal digits can be " @@ -1266,11 +1282,11 @@ msgstr "" "hexadecimales se pueden especificar en minúsculas o mayúsculas. Por " "ejemplo, en el intérprete de Python::" -#: ../Doc/faq/programming.rst:822 +#: ../Doc/faq/programming.rst:829 msgid "Why does -22 // 10 return -3?" msgstr "¿Por qué -22 // 10 devuelve -3?" -#: ../Doc/faq/programming.rst:824 +#: ../Doc/faq/programming.rst:831 msgid "" "It's primarily driven by the desire that ``i % j`` have the same sign as " "``j``. If you want that, and also want::" @@ -1278,7 +1294,7 @@ msgstr "" "Es debido, principalmente al deseo que ``i % j`` tenga el mismo signo que " "``j``. Si quieres eso y, además, quieres::" -#: ../Doc/faq/programming.rst:829 +#: ../Doc/faq/programming.rst:836 msgid "" "then integer division has to return the floor. C also requires that " "identity to hold, and then compilers that truncate ``i // j`` need to make " @@ -1289,7 +1305,7 @@ msgstr "" "compiladores truncan ``i // j`` necesitan que ``i % j`` tenga el mismo signo " "que ``i``." -#: ../Doc/faq/programming.rst:833 +#: ../Doc/faq/programming.rst:840 msgid "" "There are few real use cases for ``i % j`` when ``j`` is negative. When " "``j`` is positive, there are many, and in virtually all of them it's more " @@ -1303,31 +1319,32 @@ msgstr "" "las 10, ¿qué dijo hace 200 horas? ``-190 % 12 == 2`` es útil; ``-190 % 12 " "== -10`` es un error listo para morderte." -#: ../Doc/faq/programming.rst:841 +#: ../Doc/faq/programming.rst:848 msgid "How do I get int literal attribute instead of SyntaxError?" msgstr "¿Cómo puedo obtener un atributo int literal en lugar de SyntaxError?" -#: ../Doc/faq/programming.rst:843 +#: ../Doc/faq/programming.rst:850 +#, fuzzy msgid "" -"Trying to lookup an ``int`` literal attribute in the normal manner gives a " -"syntax error because the period is seen as a decimal point::" +"Trying to lookup an ``int`` literal attribute in the normal manner gives a :" +"exc:`SyntaxError` because the period is seen as a decimal point::" msgstr "" "Al intentar buscar un atributo literal ``int`` de la manera normal se " "obtiene un error de sintaxis porque el punto es interpretado como un punto " "decimal::" -#: ../Doc/faq/programming.rst:852 +#: ../Doc/faq/programming.rst:859 msgid "" "The solution is to separate the literal from the period with either a space " "or parentheses." msgstr "" "La solución es separar el literal del punto con un espacio o un paréntesis." -#: ../Doc/faq/programming.rst:862 +#: ../Doc/faq/programming.rst:869 msgid "How do I convert a string to a number?" msgstr "¿Cómo convierto una cadena a un número?" -#: ../Doc/faq/programming.rst:864 +#: ../Doc/faq/programming.rst:871 msgid "" "For integers, use the built-in :func:`int` type constructor, e.g. " "``int('144') == 144``. Similarly, :func:`float` converts to floating-point, " @@ -1338,7 +1355,7 @@ msgstr "" "convierte a un número de coma flotante, por ejemplo ``float('144') == " "144.0``." -#: ../Doc/faq/programming.rst:868 +#: ../Doc/faq/programming.rst:875 msgid "" "By default, these interpret the number as decimal, so that ``int('0144') == " "144`` holds true, and ``int('0x144')`` raises :exc:`ValueError`. " @@ -1355,7 +1372,7 @@ msgstr "" "rules: un prefijo '0o' indica octal y un prefijo '0x' indica un número " "hexadecimal." -#: ../Doc/faq/programming.rst:875 +#: ../Doc/faq/programming.rst:882 msgid "" "Do not use the built-in function :func:`eval` if all you need is to convert " "strings to numbers. :func:`eval` will be significantly slower and it " @@ -1371,7 +1388,7 @@ msgstr "" "``__import__('os').system(\"rm -rf $HOME\")`` lo cual borraría el directorio " "home al completo." -#: ../Doc/faq/programming.rst:882 +#: ../Doc/faq/programming.rst:889 msgid "" ":func:`eval` also has the effect of interpreting numbers as Python " "expressions, so that e.g. ``eval('09')`` gives a syntax error because Python " @@ -1382,17 +1399,18 @@ msgstr "" "sintaxis porque Python no permite un '0' inicial en un número decimal " "(excepto '0')." -#: ../Doc/faq/programming.rst:888 +#: ../Doc/faq/programming.rst:895 msgid "How do I convert a number to a string?" msgstr "¿Cómo puedo convertir un número a una cadena?" -#: ../Doc/faq/programming.rst:890 +#: ../Doc/faq/programming.rst:897 +#, fuzzy msgid "" -"To convert, e.g., the number 144 to the string '144', use the built-in type " -"constructor :func:`str`. If you want a hexadecimal or octal representation, " -"use the built-in functions :func:`hex` or :func:`oct`. For fancy " -"formatting, see the :ref:`f-strings` and :ref:`formatstrings` sections, e.g. " -"``\"{:04d}\".format(144)`` yields ``'0144'`` and ``\"{:.3f}\"." +"To convert, e.g., the number ``144`` to the string ``'144'``, use the built-" +"in type constructor :func:`str`. If you want a hexadecimal or octal " +"representation, use the built-in functions :func:`hex` or :func:`oct`. For " +"fancy formatting, see the :ref:`f-strings` and :ref:`formatstrings` " +"sections, e.g. ``\"{:04d}\".format(144)`` yields ``'0144'`` and ``\"{:.3f}\"." "format(1.0/3.0)`` yields ``'0.333'``." msgstr "" "Para convertir, por ejemplo, el número 144 a la cadena '144', usa el " @@ -1402,11 +1420,11 @@ msgstr "" "ref:`formatstrings`, por ejemplo ``\"{:04d}\".format(144)`` produce " "``'0144'`` y ``\"{:.3f}\".format(1.0/3.0)`` produce ``'0.333'``." -#: ../Doc/faq/programming.rst:899 +#: ../Doc/faq/programming.rst:906 msgid "How do I modify a string in place?" msgstr "¿Cómo puedo modificar una cadena in situ?" -#: ../Doc/faq/programming.rst:901 +#: ../Doc/faq/programming.rst:908 msgid "" "You can't, because strings are immutable. In most situations, you should " "simply construct a new string from the various parts you want to assemble it " @@ -1420,15 +1438,15 @@ msgstr "" "habilidad de modificar en el mismo lugar datos unicode prueba usando el " "objeto :class:`io.StringIO` o el módulo :mod:`array`::" -#: ../Doc/faq/programming.rst:931 +#: ../Doc/faq/programming.rst:938 msgid "How do I use strings to call functions/methods?" msgstr "¿Cómo puedo usar cadenas para invocar funciones/métodos?" -#: ../Doc/faq/programming.rst:933 +#: ../Doc/faq/programming.rst:940 msgid "There are various techniques." msgstr "Existen varias técnicas." -#: ../Doc/faq/programming.rst:935 +#: ../Doc/faq/programming.rst:942 msgid "" "The best is to use a dictionary that maps strings to functions. The primary " "advantage of this technique is that the strings do not need to match the " @@ -1440,11 +1458,11 @@ msgstr "" "iguales que los nombres de las funciones. Esta es también la principal " "técnica que se usa para emular un constructo *case*::" -#: ../Doc/faq/programming.rst:950 +#: ../Doc/faq/programming.rst:957 msgid "Use the built-in function :func:`getattr`::" msgstr "Usa la función incorporada :func:`getattr`::" -#: ../Doc/faq/programming.rst:955 +#: ../Doc/faq/programming.rst:962 msgid "" "Note that :func:`getattr` works on any object, including classes, class " "instances, modules, and so on." @@ -1452,15 +1470,15 @@ msgstr "" "Nótese que :func:`getattr` funciona en cualquier objeto, incluido clases, " "instancias de clases, módulos, etc." -#: ../Doc/faq/programming.rst:958 +#: ../Doc/faq/programming.rst:965 msgid "This is used in several places in the standard library, like this::" msgstr "Esto se usa en varios lugares de la biblioteca estándar, como esto::" -#: ../Doc/faq/programming.rst:971 +#: ../Doc/faq/programming.rst:978 msgid "Use :func:`locals` to resolve the function name::" msgstr "Use :func:`locals` para resolver el nombre de la función::" -#: ../Doc/faq/programming.rst:983 +#: ../Doc/faq/programming.rst:990 msgid "" "Is there an equivalent to Perl's chomp() for removing trailing newlines from " "strings?" @@ -1468,7 +1486,7 @@ msgstr "" "¿Existe un equivalente a chomp() en Perl para eliminar nuevas líneas al " "final de las cadenas?" -#: ../Doc/faq/programming.rst:985 +#: ../Doc/faq/programming.rst:992 msgid "" "You can use ``S.rstrip(\"\\r\\n\")`` to remove all occurrences of any line " "terminator from the end of the string ``S`` without removing other trailing " @@ -1482,7 +1500,7 @@ msgstr "" "representa más de una línea con varias líneas vacías al final, las " "terminaciones de línea para todas las líneas vacías se eliminarán::" -#: ../Doc/faq/programming.rst:997 +#: ../Doc/faq/programming.rst:1004 msgid "" "Since this is typically only desired when reading text one line at a time, " "using ``S.rstrip()`` this way works well." @@ -1490,20 +1508,21 @@ msgstr "" "Ya que esto solo sería deseable, típicamente, cuando lees texto línea a " "línea, usar ``S.rstrip()`` de esta forma funcionaría bien." -#: ../Doc/faq/programming.rst:1002 +#: ../Doc/faq/programming.rst:1009 msgid "Is there a scanf() or sscanf() equivalent?" msgstr "¿Existe un equivalente a scanf() o a sscanf() ?" -#: ../Doc/faq/programming.rst:1004 +#: ../Doc/faq/programming.rst:1011 msgid "Not as such." msgstr "No de la misma forma." -#: ../Doc/faq/programming.rst:1006 +#: ../Doc/faq/programming.rst:1013 +#, fuzzy msgid "" "For simple input parsing, the easiest approach is usually to split the line " "into whitespace-delimited words using the :meth:`~str.split` method of " "string objects and then convert decimal strings to numeric values using :" -"func:`int` or :func:`float`. ``split()`` supports an optional \"sep\" " +"func:`int` or :func:`float`. :meth:`!split()` supports an optional \"sep\" " "parameter which is useful if the line uses something other than whitespace " "as a separator." msgstr "" @@ -1514,32 +1533,73 @@ msgstr "" "``split()`` permite un parámetro opcional \"sep\" que es útil si la línea " "usa algo diferente a espacios en blanco como separador." -#: ../Doc/faq/programming.rst:1012 +#: ../Doc/faq/programming.rst:1019 +#, fuzzy msgid "" "For more complicated input parsing, regular expressions are more powerful " -"than C's :c:func:`sscanf` and better suited for the task." +"than C's ``sscanf`` and better suited for the task." msgstr "" "Para análisis sintáctico de la entrada más complejo, las expresiones " "regulares son más poderosas que :c:func:`sscanf` de C y se ajustan mejor a " "esta tarea." -#: ../Doc/faq/programming.rst:1017 +#: ../Doc/faq/programming.rst:1024 msgid "What does 'UnicodeDecodeError' or 'UnicodeEncodeError' error mean?" msgstr "¿Qué significa 'UnicodeDecodeError' o 'UnicodeEncodeError'?" -#: ../Doc/faq/programming.rst:1019 +#: ../Doc/faq/programming.rst:1026 msgid "See the :ref:`unicode-howto`." msgstr "Ver :ref:`unicode-howto`." -#: ../Doc/faq/programming.rst:1023 +#: ../Doc/faq/programming.rst:1032 +msgid "Can I end a raw string with an odd number of backslashes?" +msgstr "" + +#: ../Doc/faq/programming.rst:1034 +msgid "" +"A raw string ending with an odd number of backslashes will escape the " +"string's quote::" +msgstr "" + +#: ../Doc/faq/programming.rst:1042 +msgid "" +"There are several workarounds for this. One is to use regular strings and " +"double the backslashes::" +msgstr "" + +#: ../Doc/faq/programming.rst:1048 +msgid "" +"Another is to concatenate a regular string containing an escaped backslash " +"to the raw string::" +msgstr "" + +#: ../Doc/faq/programming.rst:1054 +msgid "" +"It is also possible to use :func:`os.path.join` to append a backslash on " +"Windows::" +msgstr "" + +#: ../Doc/faq/programming.rst:1059 +msgid "" +"Note that while a backslash will \"escape\" a quote for the purposes of " +"determining where the raw string ends, no escaping occurs when interpreting " +"the value of the raw string. That is, the backslash remains present in the " +"value of the raw string::" +msgstr "" + +#: ../Doc/faq/programming.rst:1067 +msgid "Also see the specification in the :ref:`language reference `." +msgstr "" + +#: ../Doc/faq/programming.rst:1070 msgid "Performance" msgstr "Rendimiento" -#: ../Doc/faq/programming.rst:1026 +#: ../Doc/faq/programming.rst:1073 msgid "My program is too slow. How do I speed it up?" msgstr "Mi programa es muy lento. ¿Cómo puedo acelerarlo?" -#: ../Doc/faq/programming.rst:1028 +#: ../Doc/faq/programming.rst:1075 msgid "" "That's a tough one, in general. First, here are a list of things to " "remember before diving further:" @@ -1547,7 +1607,7 @@ msgstr "" "Esa es una pregunta difícil, en general. Primero, aquí tienes una lista de " "cosas a recordar antes de ir más allá:" -#: ../Doc/faq/programming.rst:1031 +#: ../Doc/faq/programming.rst:1078 msgid "" "Performance characteristics vary across Python implementations. This FAQ " "focuses on :term:`CPython`." @@ -1556,7 +1616,7 @@ msgstr "" "implementaciones de Python. Estas preguntas frecuentes se enfocan en :term:" "`CPython`." -#: ../Doc/faq/programming.rst:1033 +#: ../Doc/faq/programming.rst:1080 msgid "" "Behaviour can vary across operating systems, especially when talking about I/" "O or multi-threading." @@ -1564,7 +1624,7 @@ msgstr "" "El comportamiento puede variar entre distintos sistemas operativos, " "especialmente cuando se habla de tareas I/O o multi-tarea." -#: ../Doc/faq/programming.rst:1035 +#: ../Doc/faq/programming.rst:1082 msgid "" "You should always find the hot spots in your program *before* attempting to " "optimize any code (see the :mod:`profile` module)." @@ -1572,7 +1632,7 @@ msgstr "" "Siempre deberías encontrar las partes importantes en tu programa *antes* de " "intentar optimizar el código (ver el módulo :mod:`profile`)." -#: ../Doc/faq/programming.rst:1037 +#: ../Doc/faq/programming.rst:1084 msgid "" "Writing benchmark scripts will allow you to iterate quickly when searching " "for improvements (see the :mod:`timeit` module)." @@ -1581,7 +1641,7 @@ msgstr "" "rápidamente cuando te encuentres buscando mejoras (ver el módulo :mod:" "`timeit`)." -#: ../Doc/faq/programming.rst:1039 +#: ../Doc/faq/programming.rst:1086 msgid "" "It is highly recommended to have good code coverage (through unit testing or " "any other technique) before potentially introducing regressions hidden in " @@ -1591,7 +1651,7 @@ msgstr "" "partir de pruebas unitarias o cualquier otra técnica) antes de introducir " "potenciales regresiones ocultas en sofisticadas optimizaciones." -#: ../Doc/faq/programming.rst:1043 +#: ../Doc/faq/programming.rst:1090 msgid "" "That being said, there are many tricks to speed up Python code. Here are " "some general principles which go a long way towards reaching acceptable " @@ -1601,7 +1661,7 @@ msgstr "" "tienes algunos principios generales que te permitirán llegar a alcanzar " "niveles de rendimiento aceptables:" -#: ../Doc/faq/programming.rst:1047 +#: ../Doc/faq/programming.rst:1094 msgid "" "Making your algorithms faster (or changing to faster ones) can yield much " "larger benefits than trying to sprinkle micro-optimization tricks all over " @@ -1611,7 +1671,7 @@ msgstr "" "provocar mayores beneficios que intentar unos pocos trucos de micro-" "optimización a través de todo tu código." -#: ../Doc/faq/programming.rst:1051 +#: ../Doc/faq/programming.rst:1098 msgid "" "Use the right data structures. Study documentation for the :ref:`bltin-" "types` and the :mod:`collections` module." @@ -1619,7 +1679,7 @@ msgstr "" "Utiliza las estructuras de datos correctas. Estudia la documentación para " "los :ref:`bltin-types` y el módulo :mod:`collections`." -#: ../Doc/faq/programming.rst:1054 +#: ../Doc/faq/programming.rst:1101 msgid "" "When the standard library provides a primitive for doing something, it is " "likely (although not guaranteed) to be faster than any alternative you may " @@ -1637,7 +1697,7 @@ msgstr "" "función relacionada :func:`sorted` para ordenar (y ver :ref:`sortinghowto` " "para ver ejemplos de uso moderadamente avanzados)." -#: ../Doc/faq/programming.rst:1062 +#: ../Doc/faq/programming.rst:1109 msgid "" "Abstractions tend to create indirections and force the interpreter to work " "more. If the levels of indirection outweigh the amount of useful work done, " @@ -1651,7 +1711,7 @@ msgstr "" "especialmente, en forma de pequeñas funciones o métodos (que también va en " "detrimento de la legibilidad)." -#: ../Doc/faq/programming.rst:1068 +#: ../Doc/faq/programming.rst:1115 #, fuzzy msgid "" "If you have reached the limit of what pure Python can allow, there are tools " @@ -1673,7 +1733,7 @@ msgstr "" "también puedes escribir :ref:`un módulo de extensión en C ` " "tú mismo." -#: ../Doc/faq/programming.rst:1078 +#: ../Doc/faq/programming.rst:1125 msgid "" "The wiki page devoted to `performance tips `_." @@ -1681,12 +1741,12 @@ msgstr "" "La página de la wiki dedicada a `trucos de rendimiento `_." -#: ../Doc/faq/programming.rst:1084 +#: ../Doc/faq/programming.rst:1131 msgid "What is the most efficient way to concatenate many strings together?" msgstr "" "¿Cuál es la forma más eficiente de concatenar muchas cadenas conjuntamente?" -#: ../Doc/faq/programming.rst:1086 +#: ../Doc/faq/programming.rst:1133 msgid "" ":class:`str` and :class:`bytes` objects are immutable, therefore " "concatenating many strings together is inefficient as each concatenation " @@ -1699,7 +1759,7 @@ msgstr "" "en tiempo de ejecución es cuadrático en relación a la longitud de la cadena " "final." -#: ../Doc/faq/programming.rst:1091 +#: ../Doc/faq/programming.rst:1138 msgid "" "To accumulate many :class:`str` objects, the recommended idiom is to place " "them into a list and call :meth:`str.join` at the end::" @@ -1707,13 +1767,13 @@ msgstr "" "Para acumular muchos objetos :class:`str`, la forma recomendada sería " "colocarlos en una lista y llamar al método :meth:`str.join` al final::" -#: ../Doc/faq/programming.rst:1099 +#: ../Doc/faq/programming.rst:1146 msgid "(another reasonably efficient idiom is to use :class:`io.StringIO`)" msgstr "" "(otra forma que sería razonable en términos de eficiencia sería usar :class:" "`io.StringIO`)" -#: ../Doc/faq/programming.rst:1101 +#: ../Doc/faq/programming.rst:1148 msgid "" "To accumulate many :class:`bytes` objects, the recommended idiom is to " "extend a :class:`bytearray` object using in-place concatenation (the ``+=`` " @@ -1723,15 +1783,15 @@ msgstr "" "extender un objeto :class:`bytearray` usando el operador de concatenación " "in situ (el operador ``+=``)::" -#: ../Doc/faq/programming.rst:1110 +#: ../Doc/faq/programming.rst:1157 msgid "Sequences (Tuples/Lists)" msgstr "Secuencias (Tuplas/Listas)" -#: ../Doc/faq/programming.rst:1113 +#: ../Doc/faq/programming.rst:1160 msgid "How do I convert between tuples and lists?" msgstr "¿Cómo convertir entre tuplas y listas?" -#: ../Doc/faq/programming.rst:1115 +#: ../Doc/faq/programming.rst:1162 msgid "" "The type constructor ``tuple(seq)`` converts any sequence (actually, any " "iterable) into a tuple with the same items in the same order." @@ -1740,7 +1800,7 @@ msgstr "" "cualquier iterable) en una tupla con los mismos elementos y en el mismo " "orden." -#: ../Doc/faq/programming.rst:1118 +#: ../Doc/faq/programming.rst:1165 msgid "" "For example, ``tuple([1, 2, 3])`` yields ``(1, 2, 3)`` and ``tuple('abc')`` " "yields ``('a', 'b', 'c')``. If the argument is a tuple, it does not make a " @@ -1753,7 +1813,7 @@ msgstr "" "llamar a :func:`tuple` no tendrá mucho coste si no estás seguro si un objeto " "ya es una tupla." -#: ../Doc/faq/programming.rst:1123 +#: ../Doc/faq/programming.rst:1170 msgid "" "The type constructor ``list(seq)`` converts any sequence or iterable into a " "list with the same items in the same order. For example, ``list((1, 2, " @@ -1766,11 +1826,11 @@ msgstr "" "``['a', 'b', 'c']``. Si el argumento es una lista, hará una copia como lo " "haría ``seq[:]``." -#: ../Doc/faq/programming.rst:1130 +#: ../Doc/faq/programming.rst:1177 msgid "What's a negative index?" msgstr "¿Qué es un índice negativo?" -#: ../Doc/faq/programming.rst:1132 +#: ../Doc/faq/programming.rst:1179 msgid "" "Python sequences are indexed with positive numbers and negative numbers. " "For positive numbers 0 is the first index 1 is the second index and so " @@ -1783,7 +1843,7 @@ msgstr "" "así en adelante. Para los índices negativos el -1 el último índice, el -2 " "el penúltimo, etc. Piensa en ``seq[-n]`` como si fuera ``seq[len(seq)-n]``." -#: ../Doc/faq/programming.rst:1137 +#: ../Doc/faq/programming.rst:1184 msgid "" "Using negative indices can be very convenient. For example ``S[:-1]`` is " "all of the string except for its last character, which is useful for " @@ -1793,15 +1853,15 @@ msgstr "" "``S[:-1]`` se usa para todo la cadena excepto para su último carácter, lo " "cual es útil para eliminar el salto de línea final de una cadena." -#: ../Doc/faq/programming.rst:1143 +#: ../Doc/faq/programming.rst:1190 msgid "How do I iterate over a sequence in reverse order?" msgstr "¿Cómo puedo iterar sobre una secuencia en orden inverso?" -#: ../Doc/faq/programming.rst:1145 +#: ../Doc/faq/programming.rst:1192 msgid "Use the :func:`reversed` built-in function::" msgstr "Usa la función incorporada :func:`reversed`::" -#: ../Doc/faq/programming.rst:1150 +#: ../Doc/faq/programming.rst:1197 msgid "" "This won't touch your original sequence, but build a new copy with reversed " "order to iterate over." @@ -1809,21 +1869,21 @@ msgstr "" "Esto no transformará la secuencia original sino que creará una nueva copia " "en orden inverso por la que se puede iterar." -#: ../Doc/faq/programming.rst:1155 +#: ../Doc/faq/programming.rst:1202 msgid "How do you remove duplicates from a list?" msgstr "¿Cómo eliminar duplicados de una lista?" -#: ../Doc/faq/programming.rst:1157 +#: ../Doc/faq/programming.rst:1204 msgid "See the Python Cookbook for a long discussion of many ways to do this:" msgstr "" "Puedes echar un vistazo al recetario de Python para ver una gran discusión " "mostrando muchas formas de hacer esto:" -#: ../Doc/faq/programming.rst:1159 +#: ../Doc/faq/programming.rst:1206 msgid "https://code.activestate.com/recipes/52560/" msgstr "https://code.activestate.com/recipes/52560/" -#: ../Doc/faq/programming.rst:1161 +#: ../Doc/faq/programming.rst:1208 msgid "" "If you don't mind reordering the list, sort it and then scan from the end of " "the list, deleting duplicates as you go::" @@ -1831,7 +1891,7 @@ msgstr "" "Si no te preocupa que la lista se reordene la puedes ordenar y, después, y " "después escanearla desde el final borrando duplicados a medida que avanzas::" -#: ../Doc/faq/programming.rst:1173 +#: ../Doc/faq/programming.rst:1220 msgid "" "If all elements of the list may be used as set keys (i.e. they are all :term:" "`hashable`) this is often faster ::" @@ -1839,7 +1899,7 @@ msgstr "" "Si todos los elementos de la lista pueden ser usados como claves (por " "ejemplo son todos :term:`hashable`) esto será, en general, más rápido ::" -#: ../Doc/faq/programming.rst:1178 +#: ../Doc/faq/programming.rst:1225 msgid "" "This converts the list into a set, thereby removing duplicates, and then " "back into a list." @@ -1847,11 +1907,11 @@ msgstr "" "Esto convierte la lista en un conjunto eliminando, por tanto, los duplicados " "y, posteriormente, puedes volver a una lista." -#: ../Doc/faq/programming.rst:1183 +#: ../Doc/faq/programming.rst:1230 msgid "How do you remove multiple items from a list" msgstr "Cómo eliminar duplicados de una lista" -#: ../Doc/faq/programming.rst:1185 +#: ../Doc/faq/programming.rst:1232 msgid "" "As with removing duplicates, explicitly iterating in reverse with a delete " "condition is one possibility. However, it is easier and faster to use slice " @@ -1863,19 +1923,19 @@ msgstr "" "es más fácil y rápido utilizar el reemplazo de sectores con una iteración " "directa implícita o explícita. Aquí hay tres variaciones.::" -#: ../Doc/faq/programming.rst:1194 +#: ../Doc/faq/programming.rst:1241 msgid "The list comprehension may be fastest." msgstr "Esta comprensión de lista puede ser la más rápida." -#: ../Doc/faq/programming.rst:1198 +#: ../Doc/faq/programming.rst:1245 msgid "How do you make an array in Python?" msgstr "¿Cómo se puede hacer un array en Python?" -#: ../Doc/faq/programming.rst:1200 +#: ../Doc/faq/programming.rst:1247 msgid "Use a list::" msgstr "Usa una lista::" -#: ../Doc/faq/programming.rst:1204 +#: ../Doc/faq/programming.rst:1251 msgid "" "Lists are equivalent to C or Pascal arrays in their time complexity; the " "primary difference is that a Python list can contain objects of many " @@ -1885,29 +1945,32 @@ msgstr "" "La principal diferencia es que una lista en Python puede contener objetos de " "diferentes tipos." -#: ../Doc/faq/programming.rst:1207 +#: ../Doc/faq/programming.rst:1254 +#, fuzzy msgid "" "The ``array`` module also provides methods for creating arrays of fixed " "types with compact representations, but they are slower to index than " -"lists. Also note that NumPy and other third party packages define array-" -"like structures with various characteristics as well." +"lists. Also note that `NumPy `_ and other third party " +"packages define array-like structures with various characteristics as well." msgstr "" "El módulo ``array`` proporciona, también, métodos para crear arrays de tipo " "fijo con representaciones compactas pero son más lentos de indexar que las " "listas. Además, debes tener en cuenta que las extensiones Numpy y otras " "definen estructuras de tipo array con diversas características también." -#: ../Doc/faq/programming.rst:1212 +#: ../Doc/faq/programming.rst:1260 +#, fuzzy msgid "" -"To get Lisp-style linked lists, you can emulate cons cells using tuples::" +"To get Lisp-style linked lists, you can emulate *cons cells* using tuples::" msgstr "" "Para obtener listas enlazadas al estilo de las de Lisp, puedes emular celdas " "cons usando tuplas::" -#: ../Doc/faq/programming.rst:1216 +#: ../Doc/faq/programming.rst:1264 +#, fuzzy msgid "" "If mutability is desired, you could use lists instead of tuples. Here the " -"analogue of lisp car is ``lisp_list[0]`` and the analogue of cdr is " +"analogue of a Lisp *car* is ``lisp_list[0]`` and the analogue of *cdr* is " "``lisp_list[1]``. Only do this if you're sure you really need to, because " "it's usually a lot slower than using Python lists." msgstr "" @@ -1917,25 +1980,25 @@ msgstr "" "debido a que, normalmente, será bastante más lento que el usar listas " "Python." -#: ../Doc/faq/programming.rst:1225 +#: ../Doc/faq/programming.rst:1273 msgid "How do I create a multidimensional list?" msgstr "¿Cómo puedo crear una lista multidimensional?" -#: ../Doc/faq/programming.rst:1227 +#: ../Doc/faq/programming.rst:1275 msgid "You probably tried to make a multidimensional array like this::" msgstr "" "Seguramente hayas intentado crear un array multidimensional de la siguiente " "forma::" -#: ../Doc/faq/programming.rst:1231 +#: ../Doc/faq/programming.rst:1279 msgid "This looks correct if you print it:" msgstr "Esto parece correcto si lo muestras en pantalla:" -#: ../Doc/faq/programming.rst:1242 +#: ../Doc/faq/programming.rst:1290 msgid "But when you assign a value, it shows up in multiple places:" msgstr "Pero cuando asignas un valor, se muestra en múltiples sitios:" -#: ../Doc/faq/programming.rst:1254 +#: ../Doc/faq/programming.rst:1302 msgid "" "The reason is that replicating a list with ``*`` doesn't create copies, it " "only creates references to the existing objects. The ``*3`` creates a list " @@ -1947,7 +2010,7 @@ msgstr "" "3 referencias a la misma lista de longitud dos. Cambios a una fila se " "mostrarán en todas las filas, lo cual, seguramente, no es lo que deseas." -#: ../Doc/faq/programming.rst:1259 +#: ../Doc/faq/programming.rst:1307 msgid "" "The suggested approach is to create a list of the desired length first and " "then fill in each element with a newly created list::" @@ -1956,7 +2019,7 @@ msgstr "" "deseada y, después, rellenar cada elemento con una lista creada en ese " "momento::" -#: ../Doc/faq/programming.rst:1266 +#: ../Doc/faq/programming.rst:1314 msgid "" "This generates a list containing 3 different lists of length two. You can " "also use a list comprehension::" @@ -1964,7 +2027,7 @@ msgstr "" "Esto genera una lista conteniendo 3 listas distintas de longitud dos. " "También puedes usar una comprensión de lista::" -#: ../Doc/faq/programming.rst:1272 +#: ../Doc/faq/programming.rst:1320 #, fuzzy msgid "" "Or, you can use an extension that provides a matrix datatype; `NumPy " @@ -1973,22 +2036,31 @@ msgstr "" "O puedes usar una extensión que proporcione un tipo de dato para matrices; " "`NumPy `_ es la más conocida." -#: ../Doc/faq/programming.rst:1277 -msgid "How do I apply a method to a sequence of objects?" +#: ../Doc/faq/programming.rst:1325 +#, fuzzy +msgid "How do I apply a method or function to a sequence of objects?" msgstr "¿Cómo puedo aplicar un método a una secuencia de objetos?" -#: ../Doc/faq/programming.rst:1279 -msgid "Use a list comprehension::" -msgstr "Usa una comprensión de listas::" +#: ../Doc/faq/programming.rst:1327 +msgid "" +"To call a method or function and accumulate the return values is a list, a :" +"term:`list comprehension` is an elegant solution::" +msgstr "" -#: ../Doc/faq/programming.rst:1286 +#: ../Doc/faq/programming.rst:1334 +msgid "" +"To just run the method or function without saving the return values, a " +"plain :keyword:`for` loop will suffice::" +msgstr "" + +#: ../Doc/faq/programming.rst:1346 msgid "" "Why does a_tuple[i] += ['item'] raise an exception when the addition works?" msgstr "" "¿Por qué hacer lo siguiente, ``a_tuple[i] += ['item']``, lanza una excepción " "cuando la suma funciona?" -#: ../Doc/faq/programming.rst:1288 +#: ../Doc/faq/programming.rst:1348 msgid "" "This is because of a combination of the fact that augmented assignment " "operators are *assignment* operators, and the difference between mutable and " @@ -1998,7 +2070,7 @@ msgstr "" "aumentada es un operador de *asignación* y a la diferencia entre objetos " "mutables e inmutable en Python." -#: ../Doc/faq/programming.rst:1292 +#: ../Doc/faq/programming.rst:1352 msgid "" "This discussion applies in general when augmented assignment operators are " "applied to elements of a tuple that point to mutable objects, but we'll use " @@ -2008,11 +2080,11 @@ msgstr "" "aumentada se aplican a elementos de una tupla que apuntan a objetos " "mutables. Pero vamos a usar una ``lista`` y ``+=`` para el ejemplo." -#: ../Doc/faq/programming.rst:1296 +#: ../Doc/faq/programming.rst:1356 msgid "If you wrote::" msgstr "Si escribes::" -#: ../Doc/faq/programming.rst:1304 +#: ../Doc/faq/programming.rst:1364 msgid "" "The reason for the exception should be immediately clear: ``1`` is added to " "the object ``a_tuple[0]`` points to (``1``), producing the result object, " @@ -2026,7 +2098,7 @@ msgstr "" "``2``, al elemento ``0`` de la tupla, obtenemos un error debido a que no " "podemos cambiar el elemento al que apunta la tupla." -#: ../Doc/faq/programming.rst:1310 +#: ../Doc/faq/programming.rst:1370 msgid "" "Under the covers, what this augmented assignment statement is doing is " "approximately this::" @@ -2034,7 +2106,7 @@ msgstr "" "En realidad, lo que esta declaración de asignación aumentada está haciendo " "es, aproximadamente, lo siguiente::" -#: ../Doc/faq/programming.rst:1319 +#: ../Doc/faq/programming.rst:1379 msgid "" "It is the assignment part of the operation that produces the error, since a " "tuple is immutable." @@ -2042,11 +2114,11 @@ msgstr "" "Es la parte de asignación de la operación la que provoca el error, debido a " "que una tupla es inmutable." -#: ../Doc/faq/programming.rst:1322 +#: ../Doc/faq/programming.rst:1382 msgid "When you write something like::" msgstr "Cuando escribes algo como lo siguiente::" -#: ../Doc/faq/programming.rst:1330 +#: ../Doc/faq/programming.rst:1390 msgid "" "The exception is a bit more surprising, and even more surprising is the fact " "that even though there was an error, the append worked::" @@ -2054,14 +2126,15 @@ msgstr "" "La excepción es un poco más sorprendente e, incluso, más sorprendente es el " "hecho que aunque hubo un error, la agregación funcionó::" -#: ../Doc/faq/programming.rst:1336 +#: ../Doc/faq/programming.rst:1396 +#, fuzzy msgid "" "To see why this happens, you need to know that (a) if an object implements " -"an ``__iadd__`` magic method, it gets called when the ``+=`` augmented " -"assignment is executed, and its return value is what gets used in the " -"assignment statement; and (b) for lists, ``__iadd__`` is equivalent to " -"calling ``extend`` on the list and returning the list. That's why we say " -"that for lists, ``+=`` is a \"shorthand\" for ``list.extend``::" +"an :meth:`~object.__iadd__` magic method, it gets called when the ``+=`` " +"augmented assignment is executed, and its return value is what gets used in " +"the assignment statement; and (b) for lists, :meth:`!__iadd__` is equivalent " +"to calling :meth:`!extend` on the list and returning the list. That's why " +"we say that for lists, ``+=`` is a \"shorthand\" for :meth:`!list.extend`::" msgstr "" "Para ver lo que sucede necesitas saber que (a) si un objeto implementa un " "método mágico ``__iadd__`` , se le llama cuando se ejecuta la asignación " @@ -2070,11 +2143,11 @@ msgstr "" "``extend`` en la lista y retornar la lista. Es por esto que decimos que " "para listas, ``+=`` es un atajo para ``list.extend``::" -#: ../Doc/faq/programming.rst:1348 +#: ../Doc/faq/programming.rst:1409 msgid "This is equivalent to::" msgstr "Esto es equivalente a ::" -#: ../Doc/faq/programming.rst:1353 +#: ../Doc/faq/programming.rst:1414 msgid "" "The object pointed to by a_list has been mutated, and the pointer to the " "mutated object is assigned back to ``a_list``. The end result of the " @@ -2086,25 +2159,26 @@ msgstr "" "opción debido a que es un puntero al mismo objeto al que estaba apuntando " "``a_list`` pero la asignación sí que ocurre." -#: ../Doc/faq/programming.rst:1358 +#: ../Doc/faq/programming.rst:1419 msgid "Thus, in our tuple example what is happening is equivalent to::" msgstr "" "Por tanto, en nuestro ejemplo con tupla lo que está pasando es equivalente " "a::" -#: ../Doc/faq/programming.rst:1366 +#: ../Doc/faq/programming.rst:1427 +#, fuzzy msgid "" -"The ``__iadd__`` succeeds, and thus the list is extended, but even though " -"``result`` points to the same object that ``a_tuple[0]`` already points to, " -"that final assignment still results in an error, because tuples are " -"immutable." +"The :meth:`!__iadd__` succeeds, and thus the list is extended, but even " +"though ``result`` points to the same object that ``a_tuple[0]`` already " +"points to, that final assignment still results in an error, because tuples " +"are immutable." msgstr "" "El ``__iadd__`` se realiza con éxito y la lista se extiende pero, incluso " "aunque ``result`` apunta al mismo objeto al que ya está apuntando " "``a_tuple[0]`` la asignación final sigue resultando en un error, debido a " "que las tuplas son inmutables." -#: ../Doc/faq/programming.rst:1372 +#: ../Doc/faq/programming.rst:1433 msgid "" "I want to do a complicated sort: can you do a Schwartzian Transform in " "Python?" @@ -2112,7 +2186,7 @@ msgstr "" "Quiero hacer una ordenación compleja: ¿Puedes hacer una transformada " "Schwartziana (Schwartzian Transform) en Python?" -#: ../Doc/faq/programming.rst:1374 +#: ../Doc/faq/programming.rst:1435 msgid "" "The technique, attributed to Randal Schwartz of the Perl community, sorts " "the elements of a list by a metric which maps each element to its \"sort " @@ -2124,11 +2198,11 @@ msgstr "" "elemento a su \"valor orden\". En Python, usa el argumento ``key`` par el " "método :meth:`list.sort`::" -#: ../Doc/faq/programming.rst:1383 +#: ../Doc/faq/programming.rst:1444 msgid "How can I sort one list by values from another list?" msgstr "¿Cómo puedo ordenar una lista a partir de valores de otra lista?" -#: ../Doc/faq/programming.rst:1385 +#: ../Doc/faq/programming.rst:1446 msgid "" "Merge them into an iterator of tuples, sort the resulting list, and then " "pick out the element you want. ::" @@ -2136,15 +2210,15 @@ msgstr "" "Las puedes unir en un iterador de tuplas, ordena la lista resultando y " "después extrae el elemento que deseas. ::" -#: ../Doc/faq/programming.rst:1400 +#: ../Doc/faq/programming.rst:1461 msgid "Objects" msgstr "Objetos" -#: ../Doc/faq/programming.rst:1403 +#: ../Doc/faq/programming.rst:1464 msgid "What is a class?" msgstr "¿Qué es una clase?" -#: ../Doc/faq/programming.rst:1405 +#: ../Doc/faq/programming.rst:1466 msgid "" "A class is the particular object type created by executing a class " "statement. Class objects are used as templates to create instance objects, " @@ -2156,7 +2230,7 @@ msgstr "" "instancias de objetos que son tanto los datos (atributos) como el código " "(métodos) específicos para un tipo de dato." -#: ../Doc/faq/programming.rst:1409 +#: ../Doc/faq/programming.rst:1470 msgid "" "A class can be based on one or more other classes, called its base " "class(es). It then inherits the attributes and methods of its base classes. " @@ -2173,11 +2247,11 @@ msgstr "" "``MaildirMailbox``, ``OutlookMailbox`` que gestionan distintos formatos " "específicos de buzón de correos." -#: ../Doc/faq/programming.rst:1418 +#: ../Doc/faq/programming.rst:1479 msgid "What is a method?" msgstr "¿Qué es un método?" -#: ../Doc/faq/programming.rst:1420 +#: ../Doc/faq/programming.rst:1481 msgid "" "A method is a function on some object ``x`` that you normally call as ``x." "name(arguments...)``. Methods are defined as functions inside the class " @@ -2187,11 +2261,11 @@ msgstr "" "de la forma ``x.name(arguments...)``. Los métodos se definen como " "funciones dentro de la definición de la clase::" -#: ../Doc/faq/programming.rst:1430 +#: ../Doc/faq/programming.rst:1491 msgid "What is self?" msgstr "¿Qué es self?" -#: ../Doc/faq/programming.rst:1432 +#: ../Doc/faq/programming.rst:1493 msgid "" "Self is merely a conventional name for the first argument of a method. A " "method defined as ``meth(self, a, b, c)`` should be called as ``x.meth(a, b, " @@ -2204,11 +2278,11 @@ msgstr "" "que se definió; el método invocado pensará que se le ha invocado como " "``meth(x, a, b, c)``." -#: ../Doc/faq/programming.rst:1437 +#: ../Doc/faq/programming.rst:1498 msgid "See also :ref:`why-self`." msgstr "Ver también :ref:`why-self`." -#: ../Doc/faq/programming.rst:1441 +#: ../Doc/faq/programming.rst:1502 msgid "" "How do I check if an object is an instance of a given class or of a subclass " "of it?" @@ -2216,13 +2290,15 @@ msgstr "" "¿Cómo puedo comprobar si un objeto es una instancia de una clase dada o de " "una subclase de la misma?" -#: ../Doc/faq/programming.rst:1443 +#: ../Doc/faq/programming.rst:1504 +#, fuzzy msgid "" -"Use the built-in function ``isinstance(obj, cls)``. You can check if an " -"object is an instance of any of a number of classes by providing a tuple " -"instead of a single class, e.g. ``isinstance(obj, (class1, class2, ...))``, " -"and can also check whether an object is one of Python's built-in types, e.g. " -"``isinstance(obj, str)`` or ``isinstance(obj, (int, float, complex))``." +"Use the built-in function :func:`isinstance(obj, cls) `. You " +"can check if an object is an instance of any of a number of classes by " +"providing a tuple instead of a single class, e.g. ``isinstance(obj, (class1, " +"class2, ...))``, and can also check whether an object is one of Python's " +"built-in types, e.g. ``isinstance(obj, str)`` or ``isinstance(obj, (int, " +"float, complex))``." msgstr "" "Usa la función incorporada ``isinstance(obj, cls)``. Puedes comprobar si un " "objeto es una instancia de cualquier número de clases proporcionando una " @@ -2231,7 +2307,7 @@ msgstr "" "tipos incorporados por ejemplo ``isinstance(obj, str)`` o ``isinstance(obj, " "(int, float, complex))``." -#: ../Doc/faq/programming.rst:1449 +#: ../Doc/faq/programming.rst:1511 msgid "" "Note that :func:`isinstance` also checks for virtual inheritance from an :" "term:`abstract base class`. So, the test will return ``True`` for a " @@ -2243,7 +2319,7 @@ msgstr "" "clase registrada incluso si no ha heredado directa o indirectamente de ella. " "Para verificar \"herencia verdadera\", escanea el :term:`MRO` de la clase:" -#: ../Doc/faq/programming.rst:1484 +#: ../Doc/faq/programming.rst:1546 msgid "" "Note that most programs do not use :func:`isinstance` on user-defined " "classes very often. If you are developing the classes yourself, a more " @@ -2259,7 +2335,7 @@ msgstr "" "comprobando la clase del objeto e ir haciendo cosas en base a la clase que " "es. Por ejemplo, si tienes una función que hace lo siguiente::" -#: ../Doc/faq/programming.rst:1498 +#: ../Doc/faq/programming.rst:1560 msgid "" "A better approach is to define a ``search()`` method on all the classes and " "just call it::" @@ -2267,11 +2343,11 @@ msgstr "" "Un enfoque más adecuado sería definir un método ``search()`` en todas las " "clases e invocarlo::" -#: ../Doc/faq/programming.rst:1513 +#: ../Doc/faq/programming.rst:1575 msgid "What is delegation?" msgstr "¿Qué es la delegación?" -#: ../Doc/faq/programming.rst:1515 +#: ../Doc/faq/programming.rst:1577 msgid "" "Delegation is an object oriented technique (also called a design pattern). " "Let's say you have an object ``x`` and want to change the behaviour of just " @@ -2285,7 +2361,7 @@ msgstr "" "proporciona una nueva implementación del método que te interesa cambiar y " "delega el resto de métodos al método correspondiente de ``x``." -#: ../Doc/faq/programming.rst:1521 +#: ../Doc/faq/programming.rst:1583 msgid "" "Python programmers can easily implement delegation. For example, the " "following class implements a class that behaves like a file but converts all " @@ -2296,14 +2372,15 @@ msgstr "" "comporta como un fichero pero convierte todos los datos escritos a " "mayúsculas::" -#: ../Doc/faq/programming.rst:1536 +#: ../Doc/faq/programming.rst:1598 +#, fuzzy msgid "" "Here the ``UpperOut`` class redefines the ``write()`` method to convert the " "argument string to uppercase before calling the underlying ``self._outfile." "write()`` method. All other methods are delegated to the underlying ``self." -"_outfile`` object. The delegation is accomplished via the ``__getattr__`` " -"method; consult :ref:`the language reference ` for more " -"information about controlling attribute access." +"_outfile`` object. The delegation is accomplished via the :meth:`~object." +"__getattr__` method; consult :ref:`the language reference ` for more information about controlling attribute access." msgstr "" "Aquí, la clase ``UpperOut`` redefine el método ``write()`` para convertir " "la cadena del argumento a mayúscula antes de invocar al método ``self." @@ -2312,12 +2389,13 @@ msgstr "" "consulta :ref:`la referencia del lenguaje ` para obtener " "más información sobre cómo controlar el acceso a atributos." -#: ../Doc/faq/programming.rst:1543 +#: ../Doc/faq/programming.rst:1605 +#, fuzzy msgid "" "Note that for more general cases delegation can get trickier. When " "attributes must be set as well as retrieved, the class must define a :meth:" -"`__setattr__` method too, and it must do so carefully. The basic " -"implementation of :meth:`__setattr__` is roughly equivalent to the " +"`~object.__setattr__` method too, and it must do so carefully. The basic " +"implementation of :meth:`!__setattr__` is roughly equivalent to the " "following::" msgstr "" "Ten en cuenta que para casos más generales la delegación puede ser algo más " @@ -2326,16 +2404,18 @@ msgstr "" "cuidado. La implementación básica de :meth:`__setattr__` es, " "aproximadamente, equivalente a lo siguiente::" -#: ../Doc/faq/programming.rst:1554 +#: ../Doc/faq/programming.rst:1616 +#, fuzzy msgid "" -"Most :meth:`__setattr__` implementations must modify ``self.__dict__`` to " -"store local state for self without causing an infinite recursion." +"Most :meth:`!__setattr__` implementations must modify :meth:`self.__dict__ " +"` to store local state for self without causing an infinite " +"recursion." msgstr "" "Muchas implementaciones de :meth:`__setattr__` deben modificar ``self." "__dict__`` para almacenar el estado local para self sin provocar una " "recursión infinita." -#: ../Doc/faq/programming.rst:1559 +#: ../Doc/faq/programming.rst:1622 msgid "" "How do I call a method defined in a base class from a derived class that " "extends it?" @@ -2343,11 +2423,11 @@ msgstr "" "¿Cómo invoco a un método definido en una clase base desde una clase derivada " "que la extiende?" -#: ../Doc/faq/programming.rst:1561 +#: ../Doc/faq/programming.rst:1624 msgid "Use the built-in :func:`super` function::" msgstr "Usa la función incorporada :func:`super`::" -#: ../Doc/faq/programming.rst:1567 +#: ../Doc/faq/programming.rst:1630 msgid "" "In the example, :func:`super` will automatically determine the instance from " "which it was called (the ``self`` value), look up the :term:`method " @@ -2359,13 +2439,13 @@ msgstr "" "resolution order` (MRO) con ``type(self).__mro__``, y devuelve el siguiente " "en línea después de ``Derived`` en el MRO: ``Base``." -#: ../Doc/faq/programming.rst:1574 +#: ../Doc/faq/programming.rst:1637 msgid "How can I organize my code to make it easier to change the base class?" msgstr "" "¿Cómo puedo organizar mi código para hacer que sea más sencillo modificar la " "clase base?" -#: ../Doc/faq/programming.rst:1576 +#: ../Doc/faq/programming.rst:1639 msgid "" "You could assign the base class to an alias and derive from the alias. Then " "all you have to change is the value assigned to the alias. Incidentally, " @@ -2377,12 +2457,12 @@ msgstr "" "también es útil si desea decidir dinámicamente (por ejemplo, dependiendo de " "la disponibilidad de recursos) qué clase base usar. Ejemplo::" -#: ../Doc/faq/programming.rst:1591 +#: ../Doc/faq/programming.rst:1654 msgid "How do I create static class data and static class methods?" msgstr "" "¿Cómo puedo crear datos estáticos de clase y métodos estáticos de clase?" -#: ../Doc/faq/programming.rst:1593 +#: ../Doc/faq/programming.rst:1656 msgid "" "Both static data and static methods (in the sense of C++ or Java) are " "supported in Python." @@ -2390,7 +2470,7 @@ msgstr "" "Tanto los datos estáticos como los métodos estáticos (en el sentido de C++ o " "Java) están permitidos en Python." -#: ../Doc/faq/programming.rst:1596 +#: ../Doc/faq/programming.rst:1659 msgid "" "For static data, simply define a class attribute. To assign a new value to " "the attribute, you have to explicitly use the class name in the assignment::" @@ -2399,7 +2479,7 @@ msgstr "" "un nuevo valor al atributo debes usar de forma explícita el nombre de la " "clase en la asignación::" -#: ../Doc/faq/programming.rst:1608 +#: ../Doc/faq/programming.rst:1671 msgid "" "``c.count`` also refers to ``C.count`` for any ``c`` such that " "``isinstance(c, C)`` holds, unless overridden by ``c`` itself or by some " @@ -2410,7 +2490,7 @@ msgstr "" "sobreescrita por si misma o por alguna clase contenida en la búsqueda de " "clases base desde ``c.__class__`` hasta ``C``." -#: ../Doc/faq/programming.rst:1612 +#: ../Doc/faq/programming.rst:1675 msgid "" "Caution: within a method of C, an assignment like ``self.count = 42`` " "creates a new and unrelated instance named \"count\" in ``self``'s own " @@ -2424,11 +2504,11 @@ msgstr "" "especificar la clase tanto si se produce desde dentro de un método como si " "no::" -#: ../Doc/faq/programming.rst:1619 +#: ../Doc/faq/programming.rst:1682 msgid "Static methods are possible::" msgstr "Los métodos estáticos son posibles::" -#: ../Doc/faq/programming.rst:1627 +#: ../Doc/faq/programming.rst:1690 msgid "" "However, a far more straightforward way to get the effect of a static method " "is via a simple module-level function::" @@ -2436,7 +2516,7 @@ msgstr "" "Sin embargo, una forma más directa de obtener el efecto de un método " "estático sería mediante una simple función a nivel de módulo::" -#: ../Doc/faq/programming.rst:1633 +#: ../Doc/faq/programming.rst:1696 msgid "" "If your code is structured so as to define one class (or tightly related " "class hierarchy) per module, this supplies the desired encapsulation." @@ -2445,11 +2525,11 @@ msgstr "" "de clases altamente relacionadas) por módulo, esto proporcionará la " "encapsulación deseada." -#: ../Doc/faq/programming.rst:1638 +#: ../Doc/faq/programming.rst:1701 msgid "How can I overload constructors (or methods) in Python?" msgstr "¿Como puedo sobrecargar constructores (o métodos) en Python?" -#: ../Doc/faq/programming.rst:1640 +#: ../Doc/faq/programming.rst:1703 msgid "" "This answer actually applies to all methods, but the question usually comes " "up first in the context of constructors." @@ -2457,11 +2537,11 @@ msgstr "" "Esta respuesta es aplicable, en realidad, a todos los métodos pero la " "pregunta suele surgir primero en el contexto de los constructores." -#: ../Doc/faq/programming.rst:1643 +#: ../Doc/faq/programming.rst:1706 msgid "In C++ you'd write" msgstr "En C++ deberías escribir" -#: ../Doc/faq/programming.rst:1652 +#: ../Doc/faq/programming.rst:1715 msgid "" "In Python you have to write a single constructor that catches all cases " "using default arguments. For example::" @@ -2469,26 +2549,26 @@ msgstr "" "En Python solo debes escribir un único constructor que tenga en cuenta todos " "los casos usando los argumentos por defecto. Por ejemplo::" -#: ../Doc/faq/programming.rst:1662 +#: ../Doc/faq/programming.rst:1725 msgid "This is not entirely equivalent, but close enough in practice." msgstr "" "Esto no es totalmente equivalente pero, en la práctica, es muy similar." -#: ../Doc/faq/programming.rst:1664 +#: ../Doc/faq/programming.rst:1727 msgid "You could also try a variable-length argument list, e.g. ::" msgstr "" "Podrías intentar, también una lista de argumentos de longitud variable, por " "ejemplo ::" -#: ../Doc/faq/programming.rst:1669 +#: ../Doc/faq/programming.rst:1732 msgid "The same approach works for all method definitions." msgstr "El mismo enfoque funciona para todas las definiciones de métodos." -#: ../Doc/faq/programming.rst:1673 +#: ../Doc/faq/programming.rst:1736 msgid "I try to use __spam and I get an error about _SomeClassName__spam." msgstr "Intento usar __spam y obtengo un error sobre _SomeClassName__spam." -#: ../Doc/faq/programming.rst:1675 +#: ../Doc/faq/programming.rst:1738 msgid "" "Variable names with double leading underscores are \"mangled\" to provide a " "simple but effective way to define class private variables. Any identifier " @@ -2504,7 +2584,7 @@ msgstr "" "bajo como sufijo) se reemplaza con ``_classname__spam``, donde ``classname`` " "es el nombre de la clase eliminando cualquier guión bajo prefijado." -#: ../Doc/faq/programming.rst:1681 +#: ../Doc/faq/programming.rst:1744 msgid "" "This doesn't guarantee privacy: an outside user can still deliberately " "access the \"_classname__spam\" attribute, and private values are visible in " @@ -2517,34 +2597,36 @@ msgstr "" "programadores Python no se suelen molestar en usar nombres privados de " "variables." -#: ../Doc/faq/programming.rst:1688 +#: ../Doc/faq/programming.rst:1751 msgid "My class defines __del__ but it is not called when I delete the object." msgstr "Mi clase define __del__ pero no se le invoca cuando borro el objeto." -#: ../Doc/faq/programming.rst:1690 +#: ../Doc/faq/programming.rst:1753 msgid "There are several possible reasons for this." msgstr "Existen varias razones posibles para que suceda así." -#: ../Doc/faq/programming.rst:1692 +#: ../Doc/faq/programming.rst:1755 +#, fuzzy msgid "" -"The del statement does not necessarily call :meth:`__del__` -- it simply " -"decrements the object's reference count, and if this reaches zero :meth:" -"`__del__` is called." +"The :keyword:`del` statement does not necessarily call :meth:`~object." +"__del__` -- it simply decrements the object's reference count, and if this " +"reaches zero :meth:`!__del__` is called." msgstr "" "La declaración del no invoca, necesariamente, al método :meth:`__del__` -- " "simplemente reduce el conteo de referencias del objeto y, si se reduce a " "cero entonces es cuando se invoca a :meth:`__del__`." -#: ../Doc/faq/programming.rst:1696 +#: ../Doc/faq/programming.rst:1759 +#, fuzzy msgid "" "If your data structures contain circular links (e.g. a tree where each child " "has a parent reference and each parent has a list of children) the reference " "counts will never go back to zero. Once in a while Python runs an algorithm " "to detect such cycles, but the garbage collector might run some time after " -"the last reference to your data structure vanishes, so your :meth:`__del__` " +"the last reference to your data structure vanishes, so your :meth:`!__del__` " "method may be called at an inconvenient and random time. This is " "inconvenient if you're trying to reproduce a problem. Worse, the order in " -"which object's :meth:`__del__` methods are executed is arbitrary. You can " +"which object's :meth:`!__del__` methods are executed is arbitrary. You can " "run :func:`gc.collect` to force a collection, but there *are* pathological " "cases where objects will never be collected." msgstr "" @@ -2561,12 +2643,13 @@ msgstr "" "collect` para forzar una recolección pero *existen* casos patológicos en los " "cuales los objetos nunca serán recolectados." -#: ../Doc/faq/programming.rst:1707 +#: ../Doc/faq/programming.rst:1770 +#, fuzzy msgid "" "Despite the cycle collector, it's still a good idea to define an explicit " "``close()`` method on objects to be called whenever you're done with them. " "The ``close()`` method can then remove attributes that refer to subobjects. " -"Don't call :meth:`__del__` directly -- :meth:`__del__` should call " +"Don't call :meth:`!__del__` directly -- :meth:`!__del__` should call " "``close()`` and ``close()`` should make sure that it can be called more than " "once for the same object." msgstr "" @@ -2578,7 +2661,7 @@ msgstr "" "``close()`` debe asegurarse que puede ser invocado más de una vez en el " "mismo objeto." -#: ../Doc/faq/programming.rst:1714 +#: ../Doc/faq/programming.rst:1777 msgid "" "Another way to avoid cyclical references is to use the :mod:`weakref` " "module, which allows you to point to objects without incrementing their " @@ -2591,20 +2674,21 @@ msgstr "" "referencias débiles para las referencias del padre y hermanos (¡si es que " "las necesitan!)." -#: ../Doc/faq/programming.rst:1727 +#: ../Doc/faq/programming.rst:1790 +#, fuzzy msgid "" -"Finally, if your :meth:`__del__` method raises an exception, a warning " +"Finally, if your :meth:`!__del__` method raises an exception, a warning " "message is printed to :data:`sys.stderr`." msgstr "" "Finalmente, si tu método :meth:`__del__` lanza una excepción, se manda un " "mensaje de alerta a :data:`sys.stderr`." -#: ../Doc/faq/programming.rst:1732 +#: ../Doc/faq/programming.rst:1795 msgid "How do I get a list of all instances of a given class?" msgstr "" "¿Cómo puedo obtener una lista de todas las instancias de una clase dada?" -#: ../Doc/faq/programming.rst:1734 +#: ../Doc/faq/programming.rst:1797 msgid "" "Python does not keep track of all instances of a class (or of a built-in " "type). You can program the class's constructor to keep track of all " @@ -2615,11 +2699,11 @@ msgstr "" "haga seguimiento de todas sus instancias manteniendo una lista de " "referencias débiles a cada instancia." -#: ../Doc/faq/programming.rst:1740 +#: ../Doc/faq/programming.rst:1803 msgid "Why does the result of ``id()`` appear to be not unique?" msgstr "¿Por qué el resultado de ``id()`` no parece ser único?" -#: ../Doc/faq/programming.rst:1742 +#: ../Doc/faq/programming.rst:1805 msgid "" "The :func:`id` builtin returns an integer that is guaranteed to be unique " "during the lifetime of the object. Since in CPython, this is the object's " @@ -2634,7 +2718,7 @@ msgstr "" "localiza en la misma posición en memoria. Esto se puede ver ilustrado en " "este ejemplo:" -#: ../Doc/faq/programming.rst:1753 +#: ../Doc/faq/programming.rst:1816 msgid "" "The two ids belong to different integer objects that are created before, and " "deleted immediately after execution of the ``id()`` call. To be sure that " @@ -2646,11 +2730,11 @@ msgstr "" "``id()``. Para estar seguro que los objetos cuya id quieres examinar siguen " "vivos crea otra referencia al objeto:" -#: ../Doc/faq/programming.rst:1766 +#: ../Doc/faq/programming.rst:1829 msgid "When can I rely on identity tests with the *is* operator?" msgstr "¿Cuándo puedo fiarme de pruebas de identidad con el operador *is*?" -#: ../Doc/faq/programming.rst:1768 +#: ../Doc/faq/programming.rst:1831 msgid "" "The ``is`` operator tests for object identity. The test ``a is b`` is " "equivalent to ``id(a) == id(b)``." @@ -2658,7 +2742,7 @@ msgstr "" "El operador ``is`` verifica la identidad de un objeto. La prueba ``a is b`` " "es equivalente a ``id(a) == id(b)``." -#: ../Doc/faq/programming.rst:1771 +#: ../Doc/faq/programming.rst:1834 msgid "" "The most important property of an identity test is that an object is always " "identical to itself, ``a is a`` always returns ``True``. Identity tests are " @@ -2671,7 +2755,7 @@ msgstr "" "diferencia de las pruebas de igualdad, las pruebas de identidad están " "garantizadas de devolver un booleano ``True`` o ``False``." -#: ../Doc/faq/programming.rst:1776 +#: ../Doc/faq/programming.rst:1839 msgid "" "However, identity tests can *only* be substituted for equality tests when " "object identity is assured. Generally, there are three circumstances where " @@ -2682,7 +2766,7 @@ msgstr "" "Generalmente hay tres circunstancias en las que la identidad está " "garantizada:" -#: ../Doc/faq/programming.rst:1780 +#: ../Doc/faq/programming.rst:1843 msgid "" "1) Assignments create new names but do not change object identity. After " "the assignment ``new = old``, it is guaranteed that ``new is old``." @@ -2691,7 +2775,7 @@ msgstr "" "objeto. Luego de la asignación ``new = old``, está garantizado que ``new is " "old``." -#: ../Doc/faq/programming.rst:1783 +#: ../Doc/faq/programming.rst:1846 msgid "" "2) Putting an object in a container that stores object references does not " "change object identity. After the list assignment ``s[0] = x``, it is " @@ -2701,7 +2785,7 @@ msgstr "" "cambia la identidad del objeto. Luego de la asignación de lista ``s[0] = " "x``, está garantizado que ``s[0] is x``." -#: ../Doc/faq/programming.rst:1787 +#: ../Doc/faq/programming.rst:1850 msgid "" "3) If an object is a singleton, it means that only one instance of that " "object can exist. After the assignments ``a = None`` and ``b = None``, it " @@ -2711,7 +2795,7 @@ msgstr "" "objeto puede existir. Después de las asignaciones ``a = None`` y ``b = " "None``, está garantizado que ``a is b`` porque ``None`` es un singleton." -#: ../Doc/faq/programming.rst:1791 +#: ../Doc/faq/programming.rst:1854 msgid "" "In most other circumstances, identity tests are inadvisable and equality " "tests are preferred. In particular, identity tests should not be used to " @@ -2723,13 +2807,13 @@ msgstr "" "pruebas de identidad no deben ser usadas para verificar constantes como :" "class:`int` y :class:`str` que no están garantizadas a ser singletons::" -#: ../Doc/faq/programming.rst:1808 +#: ../Doc/faq/programming.rst:1871 msgid "Likewise, new instances of mutable containers are never identical::" msgstr "" "De la misma manera, nuevas instancias de contenedores mutables nunca son " "idénticas::" -#: ../Doc/faq/programming.rst:1815 +#: ../Doc/faq/programming.rst:1878 msgid "" "In the standard library code, you will see several common patterns for " "correctly using identity tests:" @@ -2737,7 +2821,7 @@ msgstr "" "En la librería estándar de código, verás varios patrones comunes para usar " "correctamente pruebas de identidad:" -#: ../Doc/faq/programming.rst:1818 +#: ../Doc/faq/programming.rst:1881 msgid "" "1) As recommended by :pep:`8`, an identity test is the preferred way to " "check for ``None``. This reads like plain English in code and avoids " @@ -2749,7 +2833,7 @@ msgstr "" "en el código y evita confusión con otros objetos que puedan tener valores " "booleanos que se evalúen como falsos." -#: ../Doc/faq/programming.rst:1822 +#: ../Doc/faq/programming.rst:1885 #, fuzzy msgid "" "2) Detecting optional arguments can be tricky when ``None`` is a valid input " @@ -2763,7 +2847,7 @@ msgstr "" "Por ejemplo, aquí se explica cómo implementar un método que se comporta " "como :meth:`dict.pop`:" -#: ../Doc/faq/programming.rst:1838 +#: ../Doc/faq/programming.rst:1901 msgid "" "3) Container implementations sometimes need to augment equality tests with " "identity tests. This prevents the code from being confused by objects such " @@ -2774,49 +2858,51 @@ msgstr "" "confundido con objetos como ``float('NaN')`` que no son iguales que si " "mismos." -#: ../Doc/faq/programming.rst:1842 +#: ../Doc/faq/programming.rst:1905 +#, fuzzy msgid "" -"For example, here is the implementation of :meth:`collections.abc.Sequence." +"For example, here is the implementation of :meth:`!collections.abc.Sequence." "__contains__`::" msgstr "" "Por ejemplo, acá está la implementación de :meth:`collections.abc.Sequence." "__contains__`::" -#: ../Doc/faq/programming.rst:1853 +#: ../Doc/faq/programming.rst:1916 msgid "" "How can a subclass control what data is stored in an immutable instance?" msgstr "" "¿Cómo puede una subclase controlar qué datos se almacenan en una instancia " "inmutable?" -#: ../Doc/faq/programming.rst:1855 +#: ../Doc/faq/programming.rst:1918 +#, fuzzy msgid "" -"When subclassing an immutable type, override the :meth:`__new__` method " -"instead of the :meth:`__init__` method. The latter only runs *after* an " -"instance is created, which is too late to alter data in an immutable " -"instance." +"When subclassing an immutable type, override the :meth:`~object.__new__` " +"method instead of the :meth:`~object.__init__` method. The latter only runs " +"*after* an instance is created, which is too late to alter data in an " +"immutable instance." msgstr "" "Cuando se subclasifica un tipo inmutable, se debe anular el método :meth:" "`__new__` en lugar del método :meth:`__init__`. El último solo corre " "*después* de que una instancia es creada, y entonces ya es muy tarde para " "alterar datos en una instancia inmutable." -#: ../Doc/faq/programming.rst:1860 +#: ../Doc/faq/programming.rst:1923 msgid "" "All of these immutable classes have a different signature than their parent " "class:" msgstr "" "Todas estas clases inmutables tienen una firma distinta que su clase padre:" -#: ../Doc/faq/programming.rst:1886 +#: ../Doc/faq/programming.rst:1949 msgid "The classes can be used like this:" msgstr "Las clases pueden ser utilizadas así:" -#: ../Doc/faq/programming.rst:1903 +#: ../Doc/faq/programming.rst:1966 msgid "How do I cache method calls?" msgstr "¿Cómo cacheo llamadas de método?" -#: ../Doc/faq/programming.rst:1905 +#: ../Doc/faq/programming.rst:1968 msgid "" "The two principal tools for caching methods are :func:`functools." "cached_property` and :func:`functools.lru_cache`. The former stores results " @@ -2826,7 +2912,7 @@ msgstr "" "cached_property` y :func:`functools.lru_cache`. El primero guarda " "resultados a nivel de instancia y el último a nivel de clase." -#: ../Doc/faq/programming.rst:1910 +#: ../Doc/faq/programming.rst:1973 msgid "" "The *cached_property* approach only works with methods that do not take any " "arguments. It does not create a reference to the instance. The cached " @@ -2836,7 +2922,7 @@ msgstr "" "argumentos. No crea una referencia a la instancia. El resultado del método " "cacheado se mantendrá solo mientras que la instancia esté activa." -#: ../Doc/faq/programming.rst:1914 +#: ../Doc/faq/programming.rst:1977 #, fuzzy msgid "" "The advantage is that when an instance is no longer used, the cached method " @@ -2849,17 +2935,18 @@ msgstr "" "instancias se acumulan, también se acumularán los métodos resultantes. " "Pueden crecer sin límite." -#: ../Doc/faq/programming.rst:1919 +#: ../Doc/faq/programming.rst:1982 +#, fuzzy msgid "" -"The *lru_cache* approach works with methods that have hashable arguments. " -"It creates a reference to the instance unless special efforts are made to " -"pass in weak references." +"The *lru_cache* approach works with methods that have :term:`hashable` " +"arguments. It creates a reference to the instance unless special efforts " +"are made to pass in weak references." msgstr "" "La función *lru_cache* funciona con métodos que tienen argumentos " "hashables. Crea una referencia a la instancia a menos que esfuerzos " "especiales sean realizados para pasar en referencias débiles." -#: ../Doc/faq/programming.rst:1923 +#: ../Doc/faq/programming.rst:1986 msgid "" "The advantage of the least recently used algorithm is that the cache is " "bounded by the specified *maxsize*. The disadvantage is that instances are " @@ -2870,11 +2957,11 @@ msgstr "" "se mantienen activas hasta que sean eliminadas del cache por edad o que el " "cache sea borrado." -#: ../Doc/faq/programming.rst:1928 +#: ../Doc/faq/programming.rst:1991 msgid "This example shows the various techniques::" msgstr "Este ejemplo muestra las diversas técnicas::" -#: ../Doc/faq/programming.rst:1952 +#: ../Doc/faq/programming.rst:2015 msgid "" "The above example assumes that the *station_id* never changes. If the " "relevant instance attributes are mutable, the *cached_property* approach " @@ -2885,26 +2972,26 @@ msgstr "" "*cached_property* no puede funcionar porque no puede detectar cambios en los " "atributos." -#: ../Doc/faq/programming.rst:1957 +#: ../Doc/faq/programming.rst:2020 #, fuzzy msgid "" "To make the *lru_cache* approach work when the *station_id* is mutable, the " -"class needs to define the *__eq__* and *__hash__* methods so that the cache " -"can detect relevant attribute updates::" +"class needs to define the :meth:`~object.__eq__` and :meth:`~object." +"__hash__` methods so that the cache can detect relevant attribute updates::" msgstr "" "Se puede hacer que el método *lru_cache* funcione, pero la clase debe " "definir los métodos *__eq__* y *__hash__* para que el cache pueda detectar " "cambios relevantes de atributo::" -#: ../Doc/faq/programming.rst:1983 +#: ../Doc/faq/programming.rst:2046 msgid "Modules" msgstr "Módulos" -#: ../Doc/faq/programming.rst:1986 +#: ../Doc/faq/programming.rst:2049 msgid "How do I create a .pyc file?" msgstr "¿Cómo creo un fichero .pyc?" -#: ../Doc/faq/programming.rst:1988 +#: ../Doc/faq/programming.rst:2051 msgid "" "When a module is imported for the first time (or when the source file has " "changed since the current compiled file was created) a ``.pyc`` file " @@ -2923,7 +3010,7 @@ msgstr "" "dependerá del binario ``python`` en particular que lo creó. (Ver :pep:" "`3147` para detalles.)" -#: ../Doc/faq/programming.rst:1996 +#: ../Doc/faq/programming.rst:2059 msgid "" "One reason that a ``.pyc`` file may not be created is a permissions problem " "with the directory containing the source file, meaning that the " @@ -2937,7 +3024,7 @@ msgstr "" "suceder, por ejemplo, si desarrollas como un usuario pero lo ejecutas como " "otro, como si estuvieras probando en un servidor web." -#: ../Doc/faq/programming.rst:2001 +#: ../Doc/faq/programming.rst:2064 msgid "" "Unless the :envvar:`PYTHONDONTWRITEBYTECODE` environment variable is set, " "creation of a .pyc file is automatic if you're importing a module and Python " @@ -2951,7 +3038,7 @@ msgstr "" "(permisos, espacio libre, etc...) para crear un subdirectorio " "``__pycache__`` y escribir un módulo compilado en ese subdirectorio." -#: ../Doc/faq/programming.rst:2006 +#: ../Doc/faq/programming.rst:2069 msgid "" "Running Python on a top level script is not considered an import and no ``." "pyc`` will be created. For example, if you have a top-level module ``foo." @@ -2967,7 +3054,7 @@ msgstr "" "pyc`` para ``xyz`` porque ``xyz`` ha sido importado, pero no se creará un " "fichero ``.pyc`` para ``foo`` ya que ``foo.py`` no ha sido importado." -#: ../Doc/faq/programming.rst:2013 +#: ../Doc/faq/programming.rst:2076 msgid "" "If you need to create a ``.pyc`` file for ``foo`` -- that is, to create a ``." "pyc`` file for a module that is not imported -- you can, using the :mod:" @@ -2977,7 +3064,7 @@ msgstr "" "crear un fichero ``.pyc`` para un módulo que no ha sido importado -- puedes " "usar los módulos :mod:`py_compile` y :mod:`compileall`." -#: ../Doc/faq/programming.rst:2017 +#: ../Doc/faq/programming.rst:2080 msgid "" "The :mod:`py_compile` module can manually compile any module. One way is to " "use the ``compile()`` function in that module interactively::" @@ -2986,7 +3073,7 @@ msgstr "" "Una forma sería usando la función ``compile()`` de ese módulo de forma " "interactiva::" -#: ../Doc/faq/programming.rst:2023 +#: ../Doc/faq/programming.rst:2086 msgid "" "This will write the ``.pyc`` to a ``__pycache__`` subdirectory in the same " "location as ``foo.py`` (or you can override that with the optional parameter " @@ -2996,7 +3083,7 @@ msgstr "" "localización en la que se encuentre ``foo.py`` (o, puedes sobreescribir ese " "comportamiento con el parámetro opcional ``cfile``)." -#: ../Doc/faq/programming.rst:2027 +#: ../Doc/faq/programming.rst:2090 msgid "" "You can also automatically compile all files in a directory or directories " "using the :mod:`compileall` module. You can do it from the shell prompt by " @@ -3008,11 +3095,11 @@ msgstr "" "línea de comandos ejecutando ``compileall.py`` y proporcionando una ruta al " "directorio que contiene los ficheros Python a compilar::" -#: ../Doc/faq/programming.rst:2036 +#: ../Doc/faq/programming.rst:2099 msgid "How do I find the current module name?" msgstr "¿Cómo puedo encontrar el nombre del módulo en uso?" -#: ../Doc/faq/programming.rst:2038 +#: ../Doc/faq/programming.rst:2101 msgid "" "A module can find out its own module name by looking at the predefined " "global variable ``__name__``. If this has the value ``'__main__'``, the " @@ -3027,51 +3114,51 @@ msgstr "" "para la línea de comandos o para probarse a si mismos y solo ejecutan código " "después de comprobar ``__name__``::" -#: ../Doc/faq/programming.rst:2053 +#: ../Doc/faq/programming.rst:2116 msgid "How can I have modules that mutually import each other?" msgstr "¿Cómo podría tener módulos que se importan mutuamente entre ellos?" -#: ../Doc/faq/programming.rst:2055 +#: ../Doc/faq/programming.rst:2118 msgid "Suppose you have the following modules:" msgstr "Supón que tienes los siguientes módulos:" -#: ../Doc/faq/programming.rst:2057 +#: ../Doc/faq/programming.rst:2120 msgid ":file:`foo.py`::" msgstr ":file:`foo.py`::" -#: ../Doc/faq/programming.rst:2062 +#: ../Doc/faq/programming.rst:2125 msgid ":file:`bar.py`::" msgstr ":file:`bar.py`::" -#: ../Doc/faq/programming.rst:2067 +#: ../Doc/faq/programming.rst:2130 msgid "The problem is that the interpreter will perform the following steps:" msgstr "El problema es que el intérprete realizará los siguientes pasos:" -#: ../Doc/faq/programming.rst:2069 +#: ../Doc/faq/programming.rst:2132 msgid "main imports ``foo``" msgstr "main importa a ``foo``" -#: ../Doc/faq/programming.rst:2070 +#: ../Doc/faq/programming.rst:2133 msgid "Empty globals for ``foo`` are created" msgstr "Se crean *globals* vacíos para foo" -#: ../Doc/faq/programming.rst:2071 +#: ../Doc/faq/programming.rst:2134 msgid "``foo`` is compiled and starts executing" msgstr "``foo`` se compila y se comienza a ejecutar" -#: ../Doc/faq/programming.rst:2072 +#: ../Doc/faq/programming.rst:2135 msgid "``foo`` imports ``bar``" msgstr "``foo`` importa a ``bar``" -#: ../Doc/faq/programming.rst:2073 +#: ../Doc/faq/programming.rst:2136 msgid "Empty globals for ``bar`` are created" msgstr "Se crean *globals* vacíos para ``bar``" -#: ../Doc/faq/programming.rst:2074 +#: ../Doc/faq/programming.rst:2137 msgid "``bar`` is compiled and starts executing" msgstr "``bar`` se compila y se comienza a ejecutar" -#: ../Doc/faq/programming.rst:2075 +#: ../Doc/faq/programming.rst:2138 msgid "" "``bar`` imports ``foo`` (which is a no-op since there already is a module " "named ``foo``)" @@ -3079,7 +3166,7 @@ msgstr "" "``bar`` importa a ``foo`` (lo cual es un no-op ya que ya hay un módulo que " "se llama ``foo``)" -#: ../Doc/faq/programming.rst:2076 +#: ../Doc/faq/programming.rst:2139 msgid "" "The import mechanism tries to read ``foo_var`` from ``foo`` globals, to set " "``bar.foo_var = foo.foo_var``" @@ -3087,7 +3174,7 @@ msgstr "" "El mecanismo de importado intenta leer ``foo_var`` de globales de ``foo``, " "para establecer ``bar.foo_var = foo.foo_var``" -#: ../Doc/faq/programming.rst:2078 +#: ../Doc/faq/programming.rst:2141 msgid "" "The last step fails, because Python isn't done with interpreting ``foo`` yet " "and the global symbol dictionary for ``foo`` is still empty." @@ -3096,7 +3183,7 @@ msgstr "" "interpretar a ``foo`` y el diccionario de símbolos global para ``foo`` " "todavía se encuentra vacío." -#: ../Doc/faq/programming.rst:2081 +#: ../Doc/faq/programming.rst:2144 msgid "" "The same thing happens when you use ``import foo``, and then try to access " "``foo.foo_var`` in global code." @@ -3104,11 +3191,11 @@ msgstr "" "Lo mismo ocurre cuando usas ``import foo`` y luego tratas de acceder a ``foo." "foo_var`` en un código global." -#: ../Doc/faq/programming.rst:2084 +#: ../Doc/faq/programming.rst:2147 msgid "There are (at least) three possible workarounds for this problem." msgstr "Existen (al menos) tres posibles soluciones para este problema." -#: ../Doc/faq/programming.rst:2086 +#: ../Doc/faq/programming.rst:2149 msgid "" "Guido van Rossum recommends avoiding all uses of ``from import ..." "``, and placing all code inside functions. Initializations of global " @@ -3122,14 +3209,14 @@ msgstr "" "únicamente constantes o funciones incorporadas . Esto significa que todo se " "referenciará como ``.`` desde un módulo importado." -#: ../Doc/faq/programming.rst:2091 +#: ../Doc/faq/programming.rst:2154 msgid "" "Jim Roskind suggests performing steps in the following order in each module:" msgstr "" "Jim Roskind sugiere realizar los siguientes pasos en el siguiente orden en " "cada módulo:" -#: ../Doc/faq/programming.rst:2093 +#: ../Doc/faq/programming.rst:2156 msgid "" "exports (globals, functions, and classes that don't need imported base " "classes)" @@ -3137,18 +3224,18 @@ msgstr "" "exportar (*globals*, funciones y clases que no necesitan clases bases " "importadas)" -#: ../Doc/faq/programming.rst:2095 +#: ../Doc/faq/programming.rst:2158 msgid "``import`` statements" msgstr "``import`` declaraciones" -#: ../Doc/faq/programming.rst:2096 +#: ../Doc/faq/programming.rst:2159 msgid "" "active code (including globals that are initialized from imported values)." msgstr "" "código activo (incluyendo *globals* que han sido inicializados desde valores " "importados)." -#: ../Doc/faq/programming.rst:2098 +#: ../Doc/faq/programming.rst:2161 #, fuzzy msgid "" "Van Rossum doesn't like this approach much because the imports appear in a " @@ -3157,7 +3244,7 @@ msgstr "" "este enfoque no le gusta mucho a van Rossum debido a que los import aparecen " "en lugares extraños, pero funciona." -#: ../Doc/faq/programming.rst:2101 +#: ../Doc/faq/programming.rst:2164 msgid "" "Matthias Urlichs recommends restructuring your code so that the recursive " "import is not necessary in the first place." @@ -3165,15 +3252,15 @@ msgstr "" "Matthias Urlichs recomienda reestructurar tu código de tal forma que un " "import recursivo no sea necesario." -#: ../Doc/faq/programming.rst:2104 +#: ../Doc/faq/programming.rst:2167 msgid "These solutions are not mutually exclusive." msgstr "Estas soluciones no son mutuamente excluyentes." -#: ../Doc/faq/programming.rst:2108 +#: ../Doc/faq/programming.rst:2171 msgid "__import__('x.y.z') returns ; how do I get z?" msgstr "__import__('x.y.z') devuelve ; ¿cómo puedo obtener z?" -#: ../Doc/faq/programming.rst:2110 +#: ../Doc/faq/programming.rst:2173 msgid "" "Consider using the convenience function :func:`~importlib.import_module` " "from :mod:`importlib` instead::" @@ -3181,7 +3268,7 @@ msgstr "" "Considera, en su lugar, usa la función de conveniencia :func:`~importlib." "import_module` de :mod:`importlib`::" -#: ../Doc/faq/programming.rst:2117 +#: ../Doc/faq/programming.rst:2180 msgid "" "When I edit an imported module and reimport it, the changes don't show up. " "Why does this happen?" @@ -3189,7 +3276,7 @@ msgstr "" "Cuando edito un módulo importado y lo reimporto los cambios no tienen " "efecto. ¿Por qué sucede esto?" -#: ../Doc/faq/programming.rst:2119 +#: ../Doc/faq/programming.rst:2182 msgid "" "For reasons of efficiency as well as consistency, Python only reads the " "module file on the first time a module is imported. If it didn't, in a " @@ -3204,7 +3291,7 @@ msgstr "" "básico muchas veces. Para forzar una relectura de un módulo que ha sido " "modificado haz lo siguiente::" -#: ../Doc/faq/programming.rst:2129 +#: ../Doc/faq/programming.rst:2192 #, python-format msgid "" "Warning: this technique is not 100% fool-proof. In particular, modules " @@ -3213,7 +3300,7 @@ msgstr "" "Alerta: esta técnica no es 100% segura. En particular, los módulos que " "contienen declaraciones como ::" -#: ../Doc/faq/programming.rst:2134 +#: ../Doc/faq/programming.rst:2197 msgid "" "will continue to work with the old version of the imported objects. If the " "module contains class definitions, existing class instances will *not* be " @@ -3225,10 +3312,29 @@ msgstr "" "existentes *no* se actualizarán para usar la nueva definición de la clase. " "Esto podría resultar en el comportamiento paradójico siguiente::" -#: ../Doc/faq/programming.rst:2147 +#: ../Doc/faq/programming.rst:2210 msgid "" "The nature of the problem is made clear if you print out the \"identity\" of " "the class objects::" msgstr "" "La naturaleza del problema se hace evidente si muestras la \"identity\" de " "los objetos clase::" + +#: ../Doc/faq/programming.rst:408 +msgid "argument" +msgstr "" + +#: ../Doc/faq/programming.rst:408 +msgid "difference from parameter" +msgstr "" + +#: ../Doc/faq/programming.rst:408 +msgid "parameter" +msgstr "" + +#: ../Doc/faq/programming.rst:408 +msgid "difference from argument" +msgstr "" + +#~ msgid "Use a list comprehension::" +#~ msgstr "Usa una comprensión de listas::" diff --git a/faq/windows.po b/faq/windows.po index 172f216459..6f3028cbf2 100644 --- a/faq/windows.po +++ b/faq/windows.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-12-06 09:09+0100\n" "Last-Translator: Ruben Espinosa Perez \n" -"Language-Team: python-doc-es\n" "Language: es_AR\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/faq/windows.rst:9 msgid "Python on Windows FAQ" @@ -288,12 +288,13 @@ msgstr "" "puede resumir de la siguiente manera:" #: ../Doc/faq/windows.rst:170 +#, fuzzy msgid "" -"Do _not_ build Python into your .exe file directly. On Windows, Python must " -"be a DLL to handle importing modules that are themselves DLL's. (This is " -"the first key undocumented fact.) Instead, link to :file:`python{NN}.dll`; " -"it is typically installed in ``C:\\Windows\\System``. *NN* is the Python " -"version, a number such as \"33\" for Python 3.3." +"Do **not** build Python into your .exe file directly. On Windows, Python " +"must be a DLL to handle importing modules that are themselves DLL's. (This " +"is the first key undocumented fact.) Instead, link to :file:`python{NN}." +"dll`; it is typically installed in ``C:\\Windows\\System``. *NN* is the " +"Python version, a number such as \"33\" for Python 3.3." msgstr "" "_No_ compile Python directamente en su archivo .exe. En Windows, Python debe " "ser una DLL para poder importar módulos que son DLL en sí mismos (esto " @@ -337,12 +338,13 @@ msgstr "" "a rutinas en la API C de Python." #: ../Doc/faq/windows.rst:191 +#, fuzzy msgid "" "If you use SWIG, it is easy to create a Python \"extension module\" that " "will make the app's data and methods available to Python. SWIG will handle " "just about all the grungy details for you. The result is C code that you " -"link *into* your .exe file (!) You do _not_ have to create a DLL file, and " -"this also simplifies linking." +"link *into* your .exe file (!) You do **not** have to create a DLL file, " +"and this also simplifies linking." msgstr "" "Si está utilizando *SWIG*, es fácil crear un \"complemento\" de Python que " "hará que los datos y métodos de la aplicación estén disponibles para Python. " @@ -392,11 +394,12 @@ msgstr "" "*pythonNN.dll*." #: ../Doc/faq/windows.rst:221 +#, fuzzy msgid "" -"Problem 1: The so-called \"Very High Level\" functions that take FILE * " +"Problem 1: The so-called \"Very High Level\" functions that take ``FILE *`` " "arguments will not work in a multi-compiler environment because each " -"compiler's notion of a struct FILE will be different. From an " -"implementation standpoint these are very _low_ level functions." +"compiler's notion of a ``struct FILE`` will be different. From an " +"implementation standpoint these are very low level functions." msgstr "" "Problema 1: Las llamadas funciones de \"Muy Alto Nivel\" que toman los " "argumentos FILE * no funcionarán en un entorno de compilación múltiple " diff --git a/glossary.po b/glossary.po index 1912aa73fc..6128e97a0e 100644 --- a/glossary.po +++ b/glossary.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-04 11:03+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/glossary.rst:5 msgid "Glossary" @@ -215,10 +215,11 @@ msgid "asynchronous context manager" msgstr "administrador asincrónico de contexto" #: ../Doc/glossary.rst:94 +#, fuzzy msgid "" "An object which controls the environment seen in an :keyword:`async with` " -"statement by defining :meth:`__aenter__` and :meth:`__aexit__` methods. " -"Introduced by :pep:`492`." +"statement by defining :meth:`~object.__aenter__` and :meth:`~object." +"__aexit__` methods. Introduced by :pep:`492`." msgstr "" "Un objeto que controla el entorno visible en un sentencia :keyword:`async " "with` al definir los métodos :meth:`__aenter__` :meth:`__aexit__`. " @@ -268,11 +269,12 @@ msgid "An object created by a :term:`asynchronous generator` function." msgstr "Un objeto creado por una función :term:`asynchronous generator`." #: ../Doc/glossary.rst:115 +#, fuzzy msgid "" "This is an :term:`asynchronous iterator` which when called using the :meth:" -"`__anext__` method returns an awaitable object which will execute the body " -"of the asynchronous generator function until the next :keyword:`yield` " -"expression." +"`~object.__anext__` method returns an awaitable object which will execute " +"the body of the asynchronous generator function until the next :keyword:" +"`yield` expression." msgstr "" "Este es un :term:`asynchronous iterator` el cual cuando es llamado usa el " "método :meth:`__anext__` retornando un objeto a la espera (*awaitable*) el " @@ -280,12 +282,13 @@ msgstr "" "siguiente expresión :keyword:`yield`." #: ../Doc/glossary.rst:120 +#, fuzzy msgid "" "Each :keyword:`yield` temporarily suspends processing, remembering the " "location execution state (including local variables and pending try-" "statements). When the *asynchronous generator iterator* effectively resumes " -"with another awaitable returned by :meth:`__anext__`, it picks up where it " -"left off. See :pep:`492` and :pep:`525`." +"with another awaitable returned by :meth:`~object.__anext__`, it picks up " +"where it left off. See :pep:`492` and :pep:`525`." msgstr "" "Cada :keyword:`yield` suspende temporalmente el procesamiento, recordando el " "estado local de ejecución (incluyendo a las variables locales y las " @@ -299,10 +302,11 @@ msgid "asynchronous iterable" msgstr "iterable asincrónico" #: ../Doc/glossary.rst:127 +#, fuzzy msgid "" "An object, that can be used in an :keyword:`async for` statement. Must " -"return an :term:`asynchronous iterator` from its :meth:`__aiter__` method. " -"Introduced by :pep:`492`." +"return an :term:`asynchronous iterator` from its :meth:`~object.__aiter__` " +"method. Introduced by :pep:`492`." msgstr "" "Un objeto, que puede ser usado en una sentencia :keyword:`async for`. Debe " "retornar un :term:`asynchronous iterator` de su método :meth:`__aiter__`. " @@ -313,12 +317,13 @@ msgid "asynchronous iterator" msgstr "iterador asincrónico" #: ../Doc/glossary.rst:132 +#, fuzzy msgid "" -"An object that implements the :meth:`__aiter__` and :meth:`__anext__` " -"methods. ``__anext__`` must return an :term:`awaitable` object. :keyword:" -"`async for` resolves the awaitables returned by an asynchronous iterator's :" -"meth:`__anext__` method until it raises a :exc:`StopAsyncIteration` " -"exception. Introduced by :pep:`492`." +"An object that implements the :meth:`~object.__aiter__` and :meth:`~object." +"__anext__` methods. :meth:`~object.__anext__` must return an :term:" +"`awaitable` object. :keyword:`async for` resolves the awaitables returned by " +"an asynchronous iterator's :meth:`~object.__anext__` method until it raises " +"a :exc:`StopAsyncIteration` exception. Introduced by :pep:`492`." msgstr "" "Un objeto que implementa los métodos :meth:`__aiter__` y :meth:`__anext__`. " "``__anext__`` debe retornar un objeto :term:`awaitable`. :keyword:`async " @@ -355,10 +360,11 @@ msgid "awaitable" msgstr "a la espera" #: ../Doc/glossary.rst:151 +#, fuzzy msgid "" "An object that can be used in an :keyword:`await` expression. Can be a :" -"term:`coroutine` or an object with an :meth:`__await__` method. See also :" -"pep:`492`." +"term:`coroutine` or an object with an :meth:`~object.__await__` method. See " +"also :pep:`492`." msgstr "" "Es un objeto a la espera (*awaitable*) que puede ser usado en una expresión :" "keyword:`await`. Puede ser una :term:`coroutine` o un objeto con un método :" @@ -408,11 +414,12 @@ msgid "borrowed reference" msgstr "referencia prestada" #: ../Doc/glossary.rst:171 +#, fuzzy msgid "" -"In Python's C API, a borrowed reference is a reference to an object. It does " -"not modify the object reference count. It becomes a dangling pointer if the " -"object is destroyed. For example, a garbage collection can remove the last :" -"term:`strong reference` to the object and so destroy it." +"In Python's C API, a borrowed reference is a reference to an object, where " +"the code using the object does not own the reference. It becomes a dangling " +"pointer if the object is destroyed. For example, a garbage collection can " +"remove the last :term:`strong reference` to the object and so destroy it." msgstr "" "En la API C de Python, una referencia prestada es una referencia a un " "objeto. No modifica el recuento de referencias de objetos. Se convierte en " @@ -420,7 +427,7 @@ msgstr "" "de basura puede eliminar el último :term:`strong reference` del objeto y así " "destruirlo." -#: ../Doc/glossary.rst:176 +#: ../Doc/glossary.rst:177 msgid "" "Calling :c:func:`Py_INCREF` on the :term:`borrowed reference` is recommended " "to convert it to a :term:`strong reference` in-place, except when the object " @@ -435,11 +442,11 @@ msgstr "" "`Py_NewRef` se puede utilizar para crear una nueva :term:`referencia fuerte " "`." -#: ../Doc/glossary.rst:181 +#: ../Doc/glossary.rst:182 msgid "bytes-like object" msgstr "objetos tipo binarios" -#: ../Doc/glossary.rst:183 +#: ../Doc/glossary.rst:184 msgid "" "An object that supports the :ref:`bufferobjects` and can export a C-:term:" "`contiguous` buffer. This includes all :class:`bytes`, :class:`bytearray`, " @@ -455,7 +462,7 @@ msgstr "" "operaciones que usan datos binarios; éstas incluyen compresión, salvar a " "archivos binarios, y enviarlos a través de un socket." -#: ../Doc/glossary.rst:190 +#: ../Doc/glossary.rst:191 msgid "" "Some operations need the binary data to be mutable. The documentation often " "refers to these as \"read-write bytes-like objects\". Example mutable " @@ -472,11 +479,11 @@ msgstr "" "(\"objetos tipo binario de sólo lectura\"); ejemplos de éstos incluyen :" "class:`bytes` y :class:`memoryview` del objeto :class:`bytes`." -#: ../Doc/glossary.rst:198 +#: ../Doc/glossary.rst:199 msgid "bytecode" msgstr "bytecode" -#: ../Doc/glossary.rst:200 +#: ../Doc/glossary.rst:201 msgid "" "Python source code is compiled into bytecode, the internal representation of " "a Python program in the CPython interpreter. The bytecode is also cached in " @@ -497,7 +504,7 @@ msgstr "" "*bytecodes* no tienen como requisito trabajar en las diversas máquina " "virtuales de Python, ni de ser estable entre versiones Python." -#: ../Doc/glossary.rst:210 +#: ../Doc/glossary.rst:211 msgid "" "A list of bytecode instructions can be found in the documentation for :ref:" "`the dis module `." @@ -505,29 +512,29 @@ msgstr "" "Una lista de las instrucciones en *bytecode* está disponible en la " "documentación de :ref:`el módulo dis `." -#: ../Doc/glossary.rst:212 +#: ../Doc/glossary.rst:213 #, fuzzy msgid "callable" msgstr "hashable" -#: ../Doc/glossary.rst:214 +#: ../Doc/glossary.rst:215 msgid "" "A callable is an object that can be called, possibly with a set of arguments " "(see :term:`argument`), with the following syntax::" msgstr "" -#: ../Doc/glossary.rst:219 +#: ../Doc/glossary.rst:220 msgid "" "A :term:`function`, and by extension a :term:`method`, is a callable. An " "instance of a class that implements the :meth:`~object.__call__` method is " "also a callable." msgstr "" -#: ../Doc/glossary.rst:222 +#: ../Doc/glossary.rst:223 msgid "callback" msgstr "retrollamada" -#: ../Doc/glossary.rst:224 +#: ../Doc/glossary.rst:225 msgid "" "A subroutine function which is passed as an argument to be executed at some " "point in the future." @@ -535,11 +542,11 @@ msgstr "" "Una función de subrutina que se pasa como un argumento para ejecutarse en " "algún momento en el futuro." -#: ../Doc/glossary.rst:226 +#: ../Doc/glossary.rst:227 msgid "class" msgstr "clase" -#: ../Doc/glossary.rst:228 +#: ../Doc/glossary.rst:229 msgid "" "A template for creating user-defined objects. Class definitions normally " "contain method definitions which operate on instances of the class." @@ -548,11 +555,11 @@ msgstr "" "de clase normalmente contienen definiciones de métodos que operan una " "instancia de la clase." -#: ../Doc/glossary.rst:231 +#: ../Doc/glossary.rst:232 msgid "class variable" msgstr "variable de clase" -#: ../Doc/glossary.rst:233 +#: ../Doc/glossary.rst:234 msgid "" "A variable defined in a class and intended to be modified only at class " "level (i.e., not in an instance of the class)." @@ -560,11 +567,11 @@ msgstr "" "Una variable definida en una clase y prevista para ser modificada sólo a " "nivel de clase (es decir, no en una instancia de la clase)." -#: ../Doc/glossary.rst:235 +#: ../Doc/glossary.rst:236 msgid "complex number" msgstr "número complejo" -#: ../Doc/glossary.rst:237 +#: ../Doc/glossary.rst:238 msgid "" "An extension of the familiar real number system in which all numbers are " "expressed as a sum of a real part and an imaginary part. Imaginary numbers " @@ -587,11 +594,11 @@ msgstr "" "use :mod:`cmath`. El uso de números complejos es matemática bastante " "avanzada. Si no le parecen necesarios, puede ignorarlos sin inconvenientes." -#: ../Doc/glossary.rst:247 +#: ../Doc/glossary.rst:248 msgid "context manager" msgstr "administrador de contextos" -#: ../Doc/glossary.rst:249 +#: ../Doc/glossary.rst:250 msgid "" "An object which controls the environment seen in a :keyword:`with` statement " "by defining :meth:`__enter__` and :meth:`__exit__` methods. See :pep:`343`." @@ -599,11 +606,11 @@ msgstr "" "Un objeto que controla el entorno en la sentencia :keyword:`with` definiendo " "los métodos :meth:`__enter__` y :meth:`__exit__`. Vea :pep:`343`." -#: ../Doc/glossary.rst:252 +#: ../Doc/glossary.rst:253 msgid "context variable" msgstr "variable de contexto" -#: ../Doc/glossary.rst:254 +#: ../Doc/glossary.rst:255 msgid "" "A variable which can have different values depending on its context. This is " "similar to Thread-Local Storage in which each execution thread may have a " @@ -620,11 +627,11 @@ msgstr "" "contexto es mantener registro de las variables en tareas concurrentes " "asíncronas. Vea :mod:`contextvars`." -#: ../Doc/glossary.rst:261 +#: ../Doc/glossary.rst:262 msgid "contiguous" msgstr "contiguo" -#: ../Doc/glossary.rst:265 +#: ../Doc/glossary.rst:266 msgid "" "A buffer is considered contiguous exactly if it is either *C-contiguous* or " "*Fortran contiguous*. Zero-dimensional buffers are C and Fortran " @@ -642,11 +649,11 @@ msgstr "" "orden de las direcciones de memoria. Sin embargo, en arreglos Fortran " "contiguos, el primer índice vería más rápidamente." -#: ../Doc/glossary.rst:273 +#: ../Doc/glossary.rst:274 msgid "coroutine" msgstr "corrutina" -#: ../Doc/glossary.rst:275 +#: ../Doc/glossary.rst:276 msgid "" "Coroutines are a more generalized form of subroutines. Subroutines are " "entered at one point and exited at another point. Coroutines can be " @@ -659,11 +666,11 @@ msgstr "" "Pueden ser implementadas con la sentencia :keyword:`async def`. Vea además :" "pep:`492`." -#: ../Doc/glossary.rst:280 +#: ../Doc/glossary.rst:281 msgid "coroutine function" msgstr "función corrutina" -#: ../Doc/glossary.rst:282 +#: ../Doc/glossary.rst:283 msgid "" "A function which returns a :term:`coroutine` object. A coroutine function " "may be defined with the :keyword:`async def` statement, and may contain :" @@ -675,11 +682,11 @@ msgstr "" "las palabras claves :keyword:`await`, :keyword:`async for`, y :keyword:" "`async with`. Las mismas son introducidas en :pep:`492`." -#: ../Doc/glossary.rst:287 +#: ../Doc/glossary.rst:288 msgid "CPython" msgstr "CPython" -#: ../Doc/glossary.rst:289 +#: ../Doc/glossary.rst:290 msgid "" "The canonical implementation of the Python programming language, as " "distributed on `python.org `_. The term \"CPython\" " @@ -691,11 +698,11 @@ msgstr "" "es usado cuando es necesario distinguir esta implementación de otras como " "*Jython* o *IronPython*." -#: ../Doc/glossary.rst:293 +#: ../Doc/glossary.rst:294 msgid "decorator" msgstr "decorador" -#: ../Doc/glossary.rst:295 +#: ../Doc/glossary.rst:296 msgid "" "A function returning another function, usually applied as a function " "transformation using the ``@wrapper`` syntax. Common examples for " @@ -705,7 +712,7 @@ msgstr "" "de transformación empleando la sintaxis ``@envoltorio``. Ejemplos comunes de " "decoradores son :func:`classmethod` y :func:`staticmethod`." -#: ../Doc/glossary.rst:299 +#: ../Doc/glossary.rst:300 msgid "" "The decorator syntax is merely syntactic sugar, the following two function " "definitions are semantically equivalent::" @@ -713,7 +720,7 @@ msgstr "" "La sintaxis del decorador es meramente azúcar sintáctico, las definiciones " "de las siguientes dos funciones son semánticamente equivalentes::" -#: ../Doc/glossary.rst:310 +#: ../Doc/glossary.rst:311 msgid "" "The same concept exists for classes, but is less commonly used there. See " "the documentation for :ref:`function definitions ` and :ref:`class " @@ -723,11 +730,11 @@ msgstr "" "documentación de :ref:`function definitions ` y :ref:`class " "definitions ` para mayor detalle sobre decoradores." -#: ../Doc/glossary.rst:313 +#: ../Doc/glossary.rst:314 msgid "descriptor" msgstr "descriptor" -#: ../Doc/glossary.rst:315 +#: ../Doc/glossary.rst:316 msgid "" "Any object which defines the methods :meth:`__get__`, :meth:`__set__`, or :" "meth:`__delete__`. When a class attribute is a descriptor, its special " @@ -750,7 +757,7 @@ msgstr "" "propiedades, métodos de clase, métodos estáticos, y referencia a súper " "clases." -#: ../Doc/glossary.rst:325 +#: ../Doc/glossary.rst:326 msgid "" "For more information about descriptors' methods, see :ref:`descriptors` or " "the :ref:`Descriptor How To Guide `." @@ -759,11 +766,11 @@ msgstr "" "consulte :ref:`descriptors` o :ref:`Guía práctica de uso de los " "descriptores`." -#: ../Doc/glossary.rst:327 +#: ../Doc/glossary.rst:328 msgid "dictionary" msgstr "diccionario" -#: ../Doc/glossary.rst:329 +#: ../Doc/glossary.rst:330 msgid "" "An associative array, where arbitrary keys are mapped to values. The keys " "can be any object with :meth:`__hash__` and :meth:`__eq__` methods. Called a " @@ -773,11 +780,11 @@ msgstr "" "Las claves pueden ser cualquier objeto con los métodos :meth:`__hash__` y :" "meth:`__eq__` . Son llamadas hash en Perl." -#: ../Doc/glossary.rst:332 +#: ../Doc/glossary.rst:333 msgid "dictionary comprehension" msgstr "comprensión de diccionarios" -#: ../Doc/glossary.rst:334 +#: ../Doc/glossary.rst:335 msgid "" "A compact way to process all or part of the elements in an iterable and " "return a dictionary with the results. ``results = {n: n ** 2 for n in " @@ -789,11 +796,11 @@ msgstr "" "in range(10)}`` genera un diccionario que contiene la clave ``n`` asignada " "al valor ``n ** 2``. Ver :ref:`comprehensions`." -#: ../Doc/glossary.rst:338 +#: ../Doc/glossary.rst:339 msgid "dictionary view" msgstr "vista de diccionario" -#: ../Doc/glossary.rst:340 +#: ../Doc/glossary.rst:341 msgid "" "The objects returned from :meth:`dict.keys`, :meth:`dict.values`, and :meth:" "`dict.items` are called dictionary views. They provide a dynamic view on the " @@ -808,11 +815,11 @@ msgstr "" "la vista de diccionario a convertirse en una lista completa, use " "``list(dictview)``. Vea :ref:`dict-views`." -#: ../Doc/glossary.rst:346 +#: ../Doc/glossary.rst:347 msgid "docstring" msgstr "docstring" -#: ../Doc/glossary.rst:348 +#: ../Doc/glossary.rst:349 msgid "" "A string literal which appears as the first expression in a class, function " "or module. While ignored when the suite is executed, it is recognized by " @@ -826,11 +833,11 @@ msgstr "" "clase, función o módulo comprendida. Como está disponible mediante " "introspección, es el lugar canónico para ubicar la documentación del objeto." -#: ../Doc/glossary.rst:354 +#: ../Doc/glossary.rst:355 msgid "duck-typing" msgstr "tipado de pato" -#: ../Doc/glossary.rst:356 +#: ../Doc/glossary.rst:357 msgid "" "A programming style which does not look at an object's type to determine if " "it has the right interface; instead, the method or attribute is simply " @@ -853,11 +860,11 @@ msgstr "" "classes `. En su lugar, generalmente pregunta con :func:" "`hasattr` o :term:`EAFP`." -#: ../Doc/glossary.rst:365 +#: ../Doc/glossary.rst:366 msgid "EAFP" msgstr "EAFP" -#: ../Doc/glossary.rst:367 +#: ../Doc/glossary.rst:368 msgid "" "Easier to ask for forgiveness than permission. This common Python coding " "style assumes the existence of valid keys or attributes and catches " @@ -874,11 +881,11 @@ msgstr "" "Esta técnica contrasta con estilo :term:`LBYL` usual en otros lenguajes como " "C." -#: ../Doc/glossary.rst:373 +#: ../Doc/glossary.rst:374 msgid "expression" msgstr "expresión" -#: ../Doc/glossary.rst:375 +#: ../Doc/glossary.rst:376 msgid "" "A piece of syntax which can be evaluated to some value. In other words, an " "expression is an accumulation of expression elements like literals, names, " @@ -896,11 +903,11 @@ msgstr "" "`statement`\\s que no pueden ser usadas como expresiones, como la :keyword:" "`while`. Las asignaciones también son sentencias, no expresiones." -#: ../Doc/glossary.rst:382 +#: ../Doc/glossary.rst:383 msgid "extension module" msgstr "módulo de extensión" -#: ../Doc/glossary.rst:384 +#: ../Doc/glossary.rst:385 msgid "" "A module written in C or C++, using Python's C API to interact with the core " "and with user code." @@ -908,11 +915,11 @@ msgstr "" "Un módulo escrito en C o C++, usando la API para C de Python para " "interactuar con el núcleo y el código del usuario." -#: ../Doc/glossary.rst:386 +#: ../Doc/glossary.rst:387 msgid "f-string" msgstr "f-string" -#: ../Doc/glossary.rst:388 +#: ../Doc/glossary.rst:389 msgid "" "String literals prefixed with ``'f'`` or ``'F'`` are commonly called \"f-" "strings\" which is short for :ref:`formatted string literals `. " @@ -922,11 +929,11 @@ msgstr "" "``'F'``, que es una abreviatura para :ref:`formatted string literals `. Vea también :pep:`498`." -#: ../Doc/glossary.rst:391 +#: ../Doc/glossary.rst:392 msgid "file object" msgstr "objeto archivo" -#: ../Doc/glossary.rst:393 +#: ../Doc/glossary.rst:394 msgid "" "An object exposing a file-oriented API (with methods such as :meth:`read()` " "or :meth:`write()`) to an underlying resource. Depending on the way it was " @@ -943,7 +950,7 @@ msgstr "" "sockets, pipes, etc.). Los objetos archivo son también denominados :dfn:" "`objetos tipo archivo` o :dfn:`flujos`." -#: ../Doc/glossary.rst:401 +#: ../Doc/glossary.rst:402 msgid "" "There are actually three categories of file objects: raw :term:`binary files " "`, buffered :term:`binary files ` and :term:`text " @@ -957,19 +964,19 @@ msgstr "" "módulo :mod:`io`. La forma canónica de crear objetos archivo es usando la " "función :func:`open`." -#: ../Doc/glossary.rst:406 +#: ../Doc/glossary.rst:407 msgid "file-like object" msgstr "objetos tipo archivo" -#: ../Doc/glossary.rst:408 +#: ../Doc/glossary.rst:409 msgid "A synonym for :term:`file object`." msgstr "Un sinónimo de :term:`file object`." -#: ../Doc/glossary.rst:409 +#: ../Doc/glossary.rst:410 msgid "filesystem encoding and error handler" msgstr "codificación del sistema de archivos y manejador de errores" -#: ../Doc/glossary.rst:411 +#: ../Doc/glossary.rst:412 msgid "" "Encoding and error handler used by Python to decode bytes from the operating " "system and encode Unicode to the operating system." @@ -977,7 +984,7 @@ msgstr "" "Controlador de errores y codificación utilizado por Python para decodificar " "bytes del sistema operativo y codificar Unicode en el sistema operativo." -#: ../Doc/glossary.rst:414 +#: ../Doc/glossary.rst:415 msgid "" "The filesystem encoding must guarantee to successfully decode all bytes " "below 128. If the file system encoding fails to provide this guarantee, API " @@ -988,7 +995,7 @@ msgstr "" "de archivos no proporciona esta garantía, las funciones de API pueden " "lanzar :exc:`UnicodeError`." -#: ../Doc/glossary.rst:418 +#: ../Doc/glossary.rst:419 msgid "" "The :func:`sys.getfilesystemencoding` and :func:`sys." "getfilesystemencodeerrors` functions can be used to get the filesystem " @@ -998,7 +1005,7 @@ msgstr "" "getfilesystemencodeerrors` se pueden utilizar para obtener la codificación " "del sistema de archivos y el controlador de errores." -#: ../Doc/glossary.rst:422 +#: ../Doc/glossary.rst:423 msgid "" "The :term:`filesystem encoding and error handler` are configured at Python " "startup by the :c:func:`PyConfig_Read` function: see :c:member:`~PyConfig." @@ -1011,16 +1018,16 @@ msgstr "" "`~PyConfig.filesystem_encoding` y :c:member:`~PyConfig.filesystem_errors` " "de :c:type:`PyConfig`." -#: ../Doc/glossary.rst:427 +#: ../Doc/glossary.rst:428 #, fuzzy msgid "See also the :term:`locale encoding`." msgstr "Vea también :term:`locale encoding`" -#: ../Doc/glossary.rst:428 +#: ../Doc/glossary.rst:429 msgid "finder" msgstr "buscador" -#: ../Doc/glossary.rst:430 +#: ../Doc/glossary.rst:431 msgid "" "An object that tries to find the :term:`loader` for a module that is being " "imported." @@ -1028,7 +1035,7 @@ msgstr "" "Un objeto que trata de encontrar el :term:`loader` para el módulo que está " "siendo importado." -#: ../Doc/glossary.rst:433 +#: ../Doc/glossary.rst:434 msgid "" "Since Python 3.3, there are two types of finder: :term:`meta path finders " "` for use with :data:`sys.meta_path`, and :term:`path " @@ -1039,15 +1046,15 @@ msgstr "" "y :term:`buscadores de entradas de rutas ` para usar " "con :data:`sys.path_hooks`." -#: ../Doc/glossary.rst:437 +#: ../Doc/glossary.rst:438 msgid "See :pep:`302`, :pep:`420` and :pep:`451` for much more detail." msgstr "Vea :pep:`302`, :pep:`420` y :pep:`451` para mayores detalles." -#: ../Doc/glossary.rst:438 +#: ../Doc/glossary.rst:439 msgid "floor division" msgstr "división entera" -#: ../Doc/glossary.rst:440 +#: ../Doc/glossary.rst:441 msgid "" "Mathematical division that rounds down to nearest integer. The floor " "division operator is ``//``. For example, the expression ``11 // 4`` " @@ -1061,11 +1068,11 @@ msgstr "" "verdadera división de números flotantes. Note que ``(-11) // 4`` es ``-3`` " "porque es ``-2.75`` redondeado *para abajo*. Ver :pep:`238`." -#: ../Doc/glossary.rst:445 +#: ../Doc/glossary.rst:446 msgid "function" msgstr "función" -#: ../Doc/glossary.rst:447 +#: ../Doc/glossary.rst:448 msgid "" "A series of statements which returns some value to a caller. It can also be " "passed zero or more :term:`arguments ` which may be used in the " @@ -1077,16 +1084,16 @@ msgstr "" "ser usados en la ejecución de la misma. Vea también :term:`parameter`, :term:" "`method`, y la sección :ref:`function`." -#: ../Doc/glossary.rst:451 +#: ../Doc/glossary.rst:452 msgid "function annotation" msgstr "anotación de función" -#: ../Doc/glossary.rst:453 +#: ../Doc/glossary.rst:454 msgid "An :term:`annotation` of a function parameter or return value." msgstr "" "Una :term:`annotation` del parámetro de una función o un valor de retorno." -#: ../Doc/glossary.rst:455 +#: ../Doc/glossary.rst:456 msgid "" "Function annotations are usually used for :term:`type hints `: " "for example, this function is expected to take two :class:`int` arguments " @@ -1097,13 +1104,13 @@ msgstr "" "tome dos argumentos de clase :class:`int` y también se espera que retorne " "dos valores :class:`int`::" -#: ../Doc/glossary.rst:463 +#: ../Doc/glossary.rst:464 msgid "Function annotation syntax is explained in section :ref:`function`." msgstr "" "La sintaxis de las anotaciones de funciones son explicadas en la sección :" "ref:`function`." -#: ../Doc/glossary.rst:465 +#: ../Doc/glossary.rst:466 msgid "" "See :term:`variable annotation` and :pep:`484`, which describe this " "functionality. Also see :ref:`annotations-howto` for best practices on " @@ -1113,11 +1120,11 @@ msgstr "" "funcionalidad. Consulte también :ref:`annotations-howto` para conocer las " "mejores prácticas sobre cómo trabajar con anotaciones." -#: ../Doc/glossary.rst:469 +#: ../Doc/glossary.rst:470 msgid "__future__" msgstr "__future__" -#: ../Doc/glossary.rst:471 +#: ../Doc/glossary.rst:472 msgid "" "A :ref:`future statement `, ``from __future__ import ``, " "directs the compiler to compile the current module using syntax or semantics " @@ -1135,11 +1142,11 @@ msgstr "" "primera vez una nueva característica al lenguaje y cuándo se convertirá (o " "se convirtió) en la predeterminada:" -#: ../Doc/glossary.rst:482 +#: ../Doc/glossary.rst:483 msgid "garbage collection" msgstr "recolección de basura" -#: ../Doc/glossary.rst:484 +#: ../Doc/glossary.rst:485 msgid "" "The process of freeing memory when it is not used anymore. Python performs " "garbage collection via reference counting and a cyclic garbage collector " @@ -1152,11 +1159,11 @@ msgstr "" "romper las referencias cíclicas. El recogedor de basura puede ser " "controlado mediante el módulo :mod:`gc` ." -#: ../Doc/glossary.rst:490 +#: ../Doc/glossary.rst:490 ../Doc/glossary.rst:491 msgid "generator" msgstr "generador" -#: ../Doc/glossary.rst:492 +#: ../Doc/glossary.rst:493 msgid "" "A function which returns a :term:`generator iterator`. It looks like a " "normal function except that it contains :keyword:`yield` expressions for " @@ -1168,7 +1175,7 @@ msgstr "" "producir series de valores utilizables en un bucle *for* o que pueden ser " "obtenidas una por una con la función :func:`next`." -#: ../Doc/glossary.rst:497 +#: ../Doc/glossary.rst:498 msgid "" "Usually refers to a generator function, but may refer to a *generator " "iterator* in some contexts. In cases where the intended meaning isn't " @@ -1178,15 +1185,15 @@ msgstr "" "*iterador generador* en ciertos contextos. En aquellos casos en los que el " "significado no está claro, usar los términos completos evita la ambigüedad." -#: ../Doc/glossary.rst:500 +#: ../Doc/glossary.rst:501 msgid "generator iterator" msgstr "iterador generador" -#: ../Doc/glossary.rst:502 +#: ../Doc/glossary.rst:503 msgid "An object created by a :term:`generator` function." msgstr "Un objeto creado por una función :term:`generator`." -#: ../Doc/glossary.rst:504 +#: ../Doc/glossary.rst:505 msgid "" "Each :keyword:`yield` temporarily suspends processing, remembering the " "location execution state (including local variables and pending try-" @@ -1199,11 +1206,11 @@ msgstr "" "dejado, a diferencia de lo que ocurre con las funciones que comienzan " "nuevamente con cada invocación." -#: ../Doc/glossary.rst:511 +#: ../Doc/glossary.rst:511 ../Doc/glossary.rst:512 msgid "generator expression" msgstr "expresión generadora" -#: ../Doc/glossary.rst:513 +#: ../Doc/glossary.rst:514 msgid "" "An expression that returns an iterator. It looks like a normal expression " "followed by a :keyword:`!for` clause defining a loop variable, range, and an " @@ -1215,11 +1222,11 @@ msgstr "" "bucle, un rango y una cláusula opcional :keyword:`!if`. La expresión " "combinada genera valores para la función contenedora::" -#: ../Doc/glossary.rst:520 +#: ../Doc/glossary.rst:521 msgid "generic function" msgstr "función genérica" -#: ../Doc/glossary.rst:522 +#: ../Doc/glossary.rst:523 msgid "" "A function composed of multiple functions implementing the same operation " "for different types. Which implementation should be used during a call is " @@ -1229,7 +1236,7 @@ msgstr "" "para diferentes tipos. Qué implementación deberá ser usada durante la " "llamada a la misma es determinado por el algoritmo de despacho." -#: ../Doc/glossary.rst:526 +#: ../Doc/glossary.rst:527 msgid "" "See also the :term:`single dispatch` glossary entry, the :func:`functools." "singledispatch` decorator, and :pep:`443`." @@ -1237,11 +1244,11 @@ msgstr "" "Vea también la entrada de glosario :term:`single dispatch`, el decorador :" "func:`functools.singledispatch`, y :pep:`443`." -#: ../Doc/glossary.rst:528 +#: ../Doc/glossary.rst:529 msgid "generic type" msgstr "tipos genéricos" -#: ../Doc/glossary.rst:530 +#: ../Doc/glossary.rst:531 #, fuzzy msgid "" "A :term:`type` that can be parameterized; typically a :ref:`container " @@ -1252,25 +1259,25 @@ msgstr "" "class:`list`. Usado para :term:`type hints ` y :term:`annotations " "`." -#: ../Doc/glossary.rst:535 +#: ../Doc/glossary.rst:536 msgid "" "For more details, see :ref:`generic alias types`, :pep:" "`483`, :pep:`484`, :pep:`585`, and the :mod:`typing` module." msgstr "" -#: ../Doc/glossary.rst:537 +#: ../Doc/glossary.rst:538 msgid "GIL" msgstr "GIL" -#: ../Doc/glossary.rst:539 +#: ../Doc/glossary.rst:540 msgid "See :term:`global interpreter lock`." msgstr "Vea :term:`global interpreter lock`." -#: ../Doc/glossary.rst:540 +#: ../Doc/glossary.rst:541 msgid "global interpreter lock" msgstr "bloqueo global del intérprete" -#: ../Doc/glossary.rst:542 +#: ../Doc/glossary.rst:543 msgid "" "The mechanism used by the :term:`CPython` interpreter to assure that only " "one thread executes Python :term:`bytecode` at a time. This simplifies the " @@ -1288,7 +1295,7 @@ msgstr "" "hilos, a costa de mucho del paralelismo ofrecido por las máquinas con " "múltiples procesadores." -#: ../Doc/glossary.rst:551 +#: ../Doc/glossary.rst:552 #, fuzzy msgid "" "However, some extension modules, either standard or third-party, are " @@ -1301,7 +1308,7 @@ msgstr "" "computacionalmente intensivas como la compresión o el *hashing*. Además, el " "GIL siempre es liberado cuando se hace entrada/salida." -#: ../Doc/glossary.rst:556 +#: ../Doc/glossary.rst:557 msgid "" "Past efforts to create a \"free-threaded\" interpreter (one which locks " "shared data at a much finer granularity) have not been successful because " @@ -1315,11 +1322,11 @@ msgstr "" "un solo procesador. Se cree que superar este problema de rendimiento haría " "la implementación mucho más compleja y por tanto, más costosa de mantener." -#: ../Doc/glossary.rst:562 +#: ../Doc/glossary.rst:563 msgid "hash-based pyc" msgstr "hash-based pyc" -#: ../Doc/glossary.rst:564 +#: ../Doc/glossary.rst:565 msgid "" "A bytecode cache file that uses the hash rather than the last-modified time " "of the corresponding source file to determine its validity. See :ref:`pyc-" @@ -1329,11 +1336,11 @@ msgstr "" "la última modificación del archivo fuente correspondiente para determinar su " "validez. Vea :ref:`pyc-invalidation`." -#: ../Doc/glossary.rst:567 +#: ../Doc/glossary.rst:568 msgid "hashable" msgstr "hashable" -#: ../Doc/glossary.rst:569 +#: ../Doc/glossary.rst:570 msgid "" "An object is *hashable* if it has a hash value which never changes during " "its lifetime (it needs a :meth:`__hash__` method), and can be compared to " @@ -1345,7 +1352,7 @@ msgstr "" "comparado con otro objeto (necesita el método :meth:`__eq__` ). Los objetos " "hashables que se comparan iguales deben tener el mismo número hash." -#: ../Doc/glossary.rst:574 +#: ../Doc/glossary.rst:575 msgid "" "Hashability makes an object usable as a dictionary key and a set member, " "because these data structures use the hash value internally." @@ -1354,7 +1361,7 @@ msgstr "" "miembro de un set, porque éstas estructuras de datos usan los valores de " "hash internamente." -#: ../Doc/glossary.rst:577 +#: ../Doc/glossary.rst:578 msgid "" "Most of Python's immutable built-in objects are hashable; mutable containers " "(such as lists or dictionaries) are not; immutable containers (such as " @@ -1371,11 +1378,11 @@ msgstr "" "Todos se comparan como desiguales (excepto consigo mismos), y su valor de " "hash está derivado de su función :func:`id`." -#: ../Doc/glossary.rst:584 +#: ../Doc/glossary.rst:585 msgid "IDLE" msgstr "IDLE" -#: ../Doc/glossary.rst:586 +#: ../Doc/glossary.rst:587 #, fuzzy msgid "" "An Integrated Development and Learning Environment for Python. :ref:`idle` " @@ -1386,11 +1393,11 @@ msgstr "" "Environment for Python*. IDLE es un editor básico y un entorno de " "intérprete que se incluye con la distribución estándar de Python." -#: ../Doc/glossary.rst:589 +#: ../Doc/glossary.rst:590 msgid "immutable" msgstr "inmutable" -#: ../Doc/glossary.rst:591 +#: ../Doc/glossary.rst:592 msgid "" "An object with a fixed value. Immutable objects include numbers, strings " "and tuples. Such an object cannot be altered. A new object has to be " @@ -1404,11 +1411,11 @@ msgstr "" "en lugares donde es necesario un valor de hash constante, por ejemplo como " "claves de un diccionario." -#: ../Doc/glossary.rst:596 +#: ../Doc/glossary.rst:597 msgid "import path" msgstr "ruta de importación" -#: ../Doc/glossary.rst:598 +#: ../Doc/glossary.rst:599 msgid "" "A list of locations (or :term:`path entries `) that are searched " "by the :term:`path based finder` for modules to import. During import, this " @@ -1421,11 +1428,11 @@ msgstr "" "path`, pero para los subpaquetes también puede incluir al atributo " "``__path__`` del paquete padre." -#: ../Doc/glossary.rst:603 +#: ../Doc/glossary.rst:604 msgid "importing" msgstr "importar" -#: ../Doc/glossary.rst:605 +#: ../Doc/glossary.rst:606 msgid "" "The process by which Python code in one module is made available to Python " "code in another module." @@ -1433,11 +1440,11 @@ msgstr "" "El proceso mediante el cual el código Python dentro de un módulo se hace " "alcanzable desde otro código Python en otro módulo." -#: ../Doc/glossary.rst:607 +#: ../Doc/glossary.rst:608 msgid "importer" msgstr "importador" -#: ../Doc/glossary.rst:609 +#: ../Doc/glossary.rst:610 msgid "" "An object that both finds and loads a module; both a :term:`finder` and :" "term:`loader` object." @@ -1445,11 +1452,11 @@ msgstr "" "Un objeto que buscan y lee un módulo; un objeto que es tanto :term:`finder` " "como :term:`loader`." -#: ../Doc/glossary.rst:611 +#: ../Doc/glossary.rst:612 msgid "interactive" msgstr "interactivo" -#: ../Doc/glossary.rst:613 +#: ../Doc/glossary.rst:614 msgid "" "Python has an interactive interpreter which means you can enter statements " "and expressions at the interpreter prompt, immediately execute them and see " @@ -1464,11 +1471,11 @@ msgstr "" "forma muy potente de probar nuevas ideas o inspeccionar módulos y paquetes " "(recuerde ``help(x)``)." -#: ../Doc/glossary.rst:619 +#: ../Doc/glossary.rst:620 msgid "interpreted" msgstr "interpretado" -#: ../Doc/glossary.rst:621 +#: ../Doc/glossary.rst:622 msgid "" "Python is an interpreted language, as opposed to a compiled one, though the " "distinction can be blurry because of the presence of the bytecode compiler. " @@ -1485,11 +1492,11 @@ msgstr "" "cortos que los compilados, sin embargo sus programas suelen correr más " "lentamente. Vea también :term:`interactive`." -#: ../Doc/glossary.rst:628 +#: ../Doc/glossary.rst:629 msgid "interpreter shutdown" msgstr "apagado del intérprete" -#: ../Doc/glossary.rst:630 +#: ../Doc/glossary.rst:631 msgid "" "When asked to shut down, the Python interpreter enters a special phase where " "it gradually releases all allocated resources, such as modules and various " @@ -1510,7 +1517,7 @@ msgstr "" "no funcionar más (ejemplos comunes son los módulos de bibliotecas o los " "artefactos de advertencias *warnings machinery*)" -#: ../Doc/glossary.rst:639 +#: ../Doc/glossary.rst:640 msgid "" "The main reason for interpreter shutdown is that the ``__main__`` module or " "the script being run has finished executing." @@ -1518,11 +1525,11 @@ msgstr "" "La principal razón para el apagado del intérpreter es que el módulo " "``__main__`` o el script que estaba corriendo termine su ejecución." -#: ../Doc/glossary.rst:641 +#: ../Doc/glossary.rst:642 msgid "iterable" msgstr "iterable" -#: ../Doc/glossary.rst:643 +#: ../Doc/glossary.rst:644 #, fuzzy msgid "" "An object capable of returning its members one at a time. Examples of " @@ -1539,7 +1546,7 @@ msgstr "" "los métodos :meth:`__iter__` o con un método :meth:`__getitem__` que " "implementen la semántica de :term:`Sequence `." -#: ../Doc/glossary.rst:650 +#: ../Doc/glossary.rst:651 msgid "" "Iterables can be used in a :keyword:`for` loop and in many other places " "where a sequence is needed (:func:`zip`, :func:`map`, ...). When an " @@ -1561,11 +1568,11 @@ msgstr "" "variable temporal sin nombre para mantener el iterador mientras dura el " "bucle. Vea también :term:`iterator`, :term:`sequence`, y :term:`generator`." -#: ../Doc/glossary.rst:660 +#: ../Doc/glossary.rst:661 msgid "iterator" msgstr "iterador" -#: ../Doc/glossary.rst:662 +#: ../Doc/glossary.rst:663 msgid "" "An object representing a stream of data. Repeated calls to the iterator's :" "meth:`~iterator.__next__` method (or passing it to the built-in function :" @@ -1598,21 +1605,21 @@ msgstr "" "iterador exhausto usado en previas iteraciones, haciéndolo aparecer como un " "contenedor vacío." -#: ../Doc/glossary.rst:677 +#: ../Doc/glossary.rst:678 msgid "More information can be found in :ref:`typeiter`." msgstr "Puede encontrar más información en :ref:`typeiter`." -#: ../Doc/glossary.rst:681 +#: ../Doc/glossary.rst:682 msgid "" "CPython does not consistently apply the requirement that an iterator define :" "meth:`__iter__`." msgstr "" -#: ../Doc/glossary.rst:683 +#: ../Doc/glossary.rst:684 msgid "key function" msgstr "función clave" -#: ../Doc/glossary.rst:685 +#: ../Doc/glossary.rst:686 msgid "" "A key function or collation function is a callable that returns a value used " "for sorting or ordering. For example, :func:`locale.strxfrm` is used to " @@ -1623,7 +1630,7 @@ msgstr "" "`locale.strxfrm` es usada para producir claves de ordenamiento que se " "adaptan a las convenciones específicas de ordenamiento de un *locale*." -#: ../Doc/glossary.rst:690 +#: ../Doc/glossary.rst:691 msgid "" "A number of tools in Python accept key functions to control how elements are " "ordered or grouped. They include :func:`min`, :func:`max`, :func:`sorted`, :" @@ -1635,7 +1642,7 @@ msgstr "" "`min`, :func:`max`, :func:`sorted`, :meth:`list.sort`, :func:`heapq.merge`, :" "func:`heapq.nsmallest`, :func:`heapq.nlargest`, y :func:`itertools.groupby`." -#: ../Doc/glossary.rst:696 +#: ../Doc/glossary.rst:697 #, fuzzy msgid "" "There are several ways to create a key function. For example. the :meth:" @@ -1656,19 +1663,19 @@ msgstr "" "`Sorting HOW TO ` ejemplos de cómo crear y usar funciones " "clave." -#: ../Doc/glossary.rst:703 +#: ../Doc/glossary.rst:704 msgid "keyword argument" msgstr "argumento nombrado" -#: ../Doc/glossary.rst:705 ../Doc/glossary.rst:994 +#: ../Doc/glossary.rst:706 ../Doc/glossary.rst:995 msgid "See :term:`argument`." msgstr "Vea :term:`argument`." -#: ../Doc/glossary.rst:706 +#: ../Doc/glossary.rst:707 msgid "lambda" msgstr "lambda" -#: ../Doc/glossary.rst:708 +#: ../Doc/glossary.rst:709 msgid "" "An anonymous inline function consisting of a single :term:`expression` which " "is evaluated when the function is called. The syntax to create a lambda " @@ -1678,11 +1685,11 @@ msgstr "" "que es evaluada cuando la función es llamada. La sintaxis para crear una " "función lambda es ``lambda [parameters]: expression``" -#: ../Doc/glossary.rst:711 +#: ../Doc/glossary.rst:712 msgid "LBYL" msgstr "LBYL" -#: ../Doc/glossary.rst:713 +#: ../Doc/glossary.rst:714 msgid "" "Look before you leap. This coding style explicitly tests for pre-conditions " "before making calls or lookups. This style contrasts with the :term:`EAFP` " @@ -1695,7 +1702,7 @@ msgstr "" "`EAFP` y está caracterizado por la presencia de muchas sentencias :keyword:" "`if`." -#: ../Doc/glossary.rst:718 +#: ../Doc/glossary.rst:719 msgid "" "In a multi-threaded environment, the LBYL approach can risk introducing a " "race condition between \"the looking\" and \"the leaping\". For example, " @@ -1710,11 +1717,11 @@ msgstr "" "del test, pero antes de retornar el valor. Este problema puede ser resuelto " "usando bloqueos o empleando el método EAFP." -#: ../Doc/glossary.rst:723 +#: ../Doc/glossary.rst:724 msgid "locale encoding" msgstr "codificación de la configuración regional" -#: ../Doc/glossary.rst:725 +#: ../Doc/glossary.rst:726 #, fuzzy msgid "" "On Unix, it is the encoding of the LC_CTYPE locale. It can be set with :func:" @@ -1723,33 +1730,33 @@ msgstr "" "En Unix, es la codificación de la configuración regional LC_CTYPE. Se puede " "configurar con ``locale.setlocale(locale.LC_CTYPE, new_locale)``." -#: ../Doc/glossary.rst:728 +#: ../Doc/glossary.rst:729 #, fuzzy msgid "On Windows, it is the ANSI code page (ex: ``\"cp1252\"``)." msgstr "En Windows, es la página de códigos ANSI (por ejemplo, ``cp1252``)." -#: ../Doc/glossary.rst:730 +#: ../Doc/glossary.rst:731 msgid "" "On Android and VxWorks, Python uses ``\"utf-8\"`` as the locale encoding." msgstr "" -#: ../Doc/glossary.rst:732 +#: ../Doc/glossary.rst:733 #, fuzzy msgid "``locale.getencoding()`` can be used to get the locale encoding." msgstr "" "``locale.getpreferredencoding(False)`` se puede utilizar para obtener la " "codificación de la configuración regional." -#: ../Doc/glossary.rst:734 +#: ../Doc/glossary.rst:735 #, fuzzy msgid "See also the :term:`filesystem encoding and error handler`." msgstr "codificación del sistema de archivos y manejador de errores" -#: ../Doc/glossary.rst:735 +#: ../Doc/glossary.rst:736 msgid "list" msgstr "lista" -#: ../Doc/glossary.rst:737 +#: ../Doc/glossary.rst:738 msgid "" "A built-in Python :term:`sequence`. Despite its name it is more akin to an " "array in other languages than to a linked list since access to elements is " @@ -1759,11 +1766,11 @@ msgstr "" "similar a un arreglo en otros lenguajes que a una lista enlazada porque el " "acceso a los elementos es O(1)." -#: ../Doc/glossary.rst:740 +#: ../Doc/glossary.rst:741 msgid "list comprehension" msgstr "comprensión de listas" -#: ../Doc/glossary.rst:742 +#: ../Doc/glossary.rst:743 msgid "" "A compact way to process all or part of the elements in a sequence and " "return a list with the results. ``result = ['{:#04x}'.format(x) for x in " @@ -1778,11 +1785,11 @@ msgstr "" "`if` es opcional. Si es omitida, todos los elementos en ``range(256)`` son " "procesados." -#: ../Doc/glossary.rst:748 +#: ../Doc/glossary.rst:749 msgid "loader" msgstr "cargador" -#: ../Doc/glossary.rst:750 +#: ../Doc/glossary.rst:751 msgid "" "An object that loads a module. It must define a method named :meth:" "`load_module`. A loader is typically returned by a :term:`finder`. See :pep:" @@ -1794,19 +1801,19 @@ msgstr "" "`finder`. Vea :pep:`302` para detalles y :class:`importlib.abc.Loader` para " "una :term:`abstract base class`." -#: ../Doc/glossary.rst:754 +#: ../Doc/glossary.rst:755 msgid "magic method" msgstr "método mágico" -#: ../Doc/glossary.rst:758 +#: ../Doc/glossary.rst:759 msgid "An informal synonym for :term:`special method`." msgstr "Una manera informal de llamar a un :term:`special method`." -#: ../Doc/glossary.rst:759 +#: ../Doc/glossary.rst:760 msgid "mapping" msgstr "mapeado" -#: ../Doc/glossary.rst:761 +#: ../Doc/glossary.rst:762 #, fuzzy msgid "" "A container object that supports arbitrary key lookups and implements the " @@ -1823,11 +1830,11 @@ msgstr "" "`collections.defaultdict`, :class:`collections.OrderedDict` y :class:" "`collections.Counter`." -#: ../Doc/glossary.rst:767 +#: ../Doc/glossary.rst:768 msgid "meta path finder" msgstr "meta buscadores de ruta" -#: ../Doc/glossary.rst:769 +#: ../Doc/glossary.rst:770 msgid "" "A :term:`finder` returned by a search of :data:`sys.meta_path`. Meta path " "finders are related to, but different from :term:`path entry finders `, pero son algo diferente." -#: ../Doc/glossary.rst:773 +#: ../Doc/glossary.rst:774 msgid "" "See :class:`importlib.abc.MetaPathFinder` for the methods that meta path " "finders implement." @@ -1845,11 +1852,11 @@ msgstr "" "Vea en :class:`importlib.abc.MetaPathFinder` los métodos que los meta " "buscadores de ruta implementan." -#: ../Doc/glossary.rst:775 +#: ../Doc/glossary.rst:776 msgid "metaclass" msgstr "metaclase" -#: ../Doc/glossary.rst:777 +#: ../Doc/glossary.rst:778 msgid "" "The class of a class. Class definitions create a class name, a class " "dictionary, and a list of base classes. The metaclass is responsible for " @@ -1872,15 +1879,15 @@ msgstr "" "*loggear* acceso de atributos, agregar seguridad a hilos, rastrear la " "creación de objetos, implementar *singletons*, y muchas otras tareas." -#: ../Doc/glossary.rst:787 +#: ../Doc/glossary.rst:788 msgid "More information can be found in :ref:`metaclasses`." msgstr "Más información hallará en :ref:`metaclasses`." -#: ../Doc/glossary.rst:788 +#: ../Doc/glossary.rst:757 ../Doc/glossary.rst:789 ../Doc/glossary.rst:1123 msgid "method" msgstr "método" -#: ../Doc/glossary.rst:790 +#: ../Doc/glossary.rst:791 msgid "" "A function which is defined inside a class body. If called as an attribute " "of an instance of that class, the method will get the instance object as its " @@ -1892,11 +1899,11 @@ msgstr "" "instanciado como su primer :term:`argument` (el cual es usualmente " "denominado `self`). Vea :term:`function` y :term:`nested scope`." -#: ../Doc/glossary.rst:794 +#: ../Doc/glossary.rst:795 msgid "method resolution order" msgstr "orden de resolución de métodos" -#: ../Doc/glossary.rst:796 +#: ../Doc/glossary.rst:797 msgid "" "Method Resolution Order is the order in which base classes are searched for " "a member during lookup. See `The Python 2.3 Method Resolution Order `_ los " "detalles del algoritmo usado por el intérprete Python desde la versión 2.3." -#: ../Doc/glossary.rst:800 +#: ../Doc/glossary.rst:801 msgid "module" msgstr "módulo" -#: ../Doc/glossary.rst:802 +#: ../Doc/glossary.rst:803 msgid "" "An object that serves as an organizational unit of Python code. Modules " "have a namespace containing arbitrary Python objects. Modules are loaded " @@ -1922,15 +1929,15 @@ msgstr "" "módulos tienen espacios de nombres conteniendo objetos Python arbitrarios. " "Los módulos son cargados en Python por el proceso de :term:`importing`." -#: ../Doc/glossary.rst:806 +#: ../Doc/glossary.rst:807 msgid "See also :term:`package`." msgstr "Vea también :term:`package`." -#: ../Doc/glossary.rst:807 +#: ../Doc/glossary.rst:808 msgid "module spec" msgstr "especificador de módulo" -#: ../Doc/glossary.rst:809 +#: ../Doc/glossary.rst:810 msgid "" "A namespace containing the import-related information used to load a module. " "An instance of :class:`importlib.machinery.ModuleSpec`." @@ -1939,19 +1946,19 @@ msgstr "" "importación usada al leer un módulo. Una instancia de :class:`importlib." "machinery.ModuleSpec`." -#: ../Doc/glossary.rst:811 +#: ../Doc/glossary.rst:812 msgid "MRO" msgstr "MRO" -#: ../Doc/glossary.rst:813 +#: ../Doc/glossary.rst:814 msgid "See :term:`method resolution order`." msgstr "Vea :term:`method resolution order`." -#: ../Doc/glossary.rst:814 +#: ../Doc/glossary.rst:815 msgid "mutable" msgstr "mutable" -#: ../Doc/glossary.rst:816 +#: ../Doc/glossary.rst:817 msgid "" "Mutable objects can change their value but keep their :func:`id`. See also :" "term:`immutable`." @@ -1959,11 +1966,11 @@ msgstr "" "Los objetos mutables pueden cambiar su valor pero mantener su :func:`id`. " "Vea también :term:`immutable`." -#: ../Doc/glossary.rst:818 +#: ../Doc/glossary.rst:819 msgid "named tuple" msgstr "tupla nombrada" -#: ../Doc/glossary.rst:820 +#: ../Doc/glossary.rst:821 msgid "" "The term \"named tuple\" applies to any type or class that inherits from " "tuple and whose indexable elements are also accessible using named " @@ -1974,7 +1981,7 @@ msgstr "" "usando atributos nombrados. Este tipo o clase puede tener además otras " "capacidades." -#: ../Doc/glossary.rst:824 +#: ../Doc/glossary.rst:825 msgid "" "Several built-in types are named tuples, including the values returned by :" "func:`time.localtime` and :func:`os.stat`. Another example is :data:`sys." @@ -1984,7 +1991,7 @@ msgstr "" "retornados por :func:`time.localtime` y :func:`os.stat`. Otro ejemplo es :" "data:`sys.float_info`::" -#: ../Doc/glossary.rst:835 +#: ../Doc/glossary.rst:836 msgid "" "Some named tuples are built-in types (such as the above examples). " "Alternatively, a named tuple can be created from a regular class definition " @@ -2001,11 +2008,11 @@ msgstr "" "automáticamente brinda métodos adicionales que pueden no estar presentes en " "las tuplas nombradas personalizadas o incorporadas." -#: ../Doc/glossary.rst:842 +#: ../Doc/glossary.rst:843 msgid "namespace" msgstr "espacio de nombres" -#: ../Doc/glossary.rst:844 +#: ../Doc/glossary.rst:845 msgid "" "The place where a variable is stored. Namespaces are implemented as " "dictionaries. There are the local, global and built-in namespaces as well " @@ -2029,11 +2036,11 @@ msgstr "" "implementadas en los módulos :mod:`random` y :mod:`itertools`, " "respectivamente." -#: ../Doc/glossary.rst:854 +#: ../Doc/glossary.rst:855 msgid "namespace package" msgstr "paquete de espacios de nombres" -#: ../Doc/glossary.rst:856 +#: ../Doc/glossary.rst:857 msgid "" "A :pep:`420` :term:`package` which serves only as a container for " "subpackages. Namespace packages may have no physical representation, and " @@ -2045,15 +2052,15 @@ msgstr "" "específicamente se diferencian de los :term:`regular package` porque no " "tienen un archivo ``__init__.py``." -#: ../Doc/glossary.rst:861 +#: ../Doc/glossary.rst:862 msgid "See also :term:`module`." msgstr "Vea también :term:`module`." -#: ../Doc/glossary.rst:862 +#: ../Doc/glossary.rst:863 msgid "nested scope" msgstr "alcances anidados" -#: ../Doc/glossary.rst:864 +#: ../Doc/glossary.rst:865 msgid "" "The ability to refer to a variable in an enclosing definition. For " "instance, a function defined inside another function can refer to variables " @@ -2071,11 +2078,11 @@ msgstr "" "nombres global. Con :keyword:`nonlocal` se puede escribir en alcances " "exteriores." -#: ../Doc/glossary.rst:871 +#: ../Doc/glossary.rst:872 msgid "new-style class" msgstr "clase de nuevo estilo" -#: ../Doc/glossary.rst:873 +#: ../Doc/glossary.rst:874 msgid "" "Old name for the flavor of classes now used for all class objects. In " "earlier Python versions, only new-style classes could use Python's newer, " @@ -2088,11 +2095,11 @@ msgstr "" "`~object.__slots__`, descriptores, propiedades, :meth:`__getattribute__`, " "métodos de clase y métodos estáticos." -#: ../Doc/glossary.rst:877 +#: ../Doc/glossary.rst:878 msgid "object" msgstr "objeto" -#: ../Doc/glossary.rst:879 +#: ../Doc/glossary.rst:880 msgid "" "Any data with state (attributes or value) and defined behavior (methods). " "Also the ultimate base class of any :term:`new-style class`." @@ -2101,29 +2108,30 @@ msgstr "" "(métodos). También es la más básica clase base para cualquier :term:`new-" "style class`." -#: ../Doc/glossary.rst:882 +#: ../Doc/glossary.rst:883 msgid "package" msgstr "paquete" -#: ../Doc/glossary.rst:884 +#: ../Doc/glossary.rst:885 +#, fuzzy msgid "" "A Python :term:`module` which can contain submodules or recursively, " -"subpackages. Technically, a package is a Python module with an ``__path__`` " +"subpackages. Technically, a package is a Python module with a ``__path__`` " "attribute." msgstr "" "Un :term:`module` Python que puede contener submódulos o recursivamente, " "subpaquetes. Técnicamente, un paquete es un módulo Python con un atributo " "``__path__``." -#: ../Doc/glossary.rst:888 +#: ../Doc/glossary.rst:889 msgid "See also :term:`regular package` and :term:`namespace package`." msgstr "Vea también :term:`regular package` y :term:`namespace package`." -#: ../Doc/glossary.rst:889 +#: ../Doc/glossary.rst:890 msgid "parameter" msgstr "parámetro" -#: ../Doc/glossary.rst:891 +#: ../Doc/glossary.rst:892 msgid "" "A named entity in a :term:`function` (or method) definition that specifies " "an :term:`argument` (or in some cases, arguments) that the function can " @@ -2133,7 +2141,7 @@ msgstr "" "que especifica un :term:`argument` (o en algunos casos, varios argumentos) " "que la función puede aceptar. Existen cinco tipos de argumentos:" -#: ../Doc/glossary.rst:895 +#: ../Doc/glossary.rst:896 msgid "" ":dfn:`positional-or-keyword`: specifies an argument that can be passed " "either :term:`positionally ` or as a :term:`keyword argument " @@ -2145,7 +2153,7 @@ msgstr "" "`. Este es el tipo por defecto de parámetro, como *foo* y *bar* " "en el siguiente ejemplo::" -#: ../Doc/glossary.rst:904 +#: ../Doc/glossary.rst:905 msgid "" ":dfn:`positional-only`: specifies an argument that can be supplied only by " "position. Positional-only parameters can be defined by including a ``/`` " @@ -2157,7 +2165,7 @@ msgstr "" "incluyendo un carácter ``/`` en la lista de parámetros de la función después " "de ellos, como *posonly1* y *posonly2* en el ejemplo que sigue::" -#: ../Doc/glossary.rst:913 +#: ../Doc/glossary.rst:914 msgid "" ":dfn:`keyword-only`: specifies an argument that can be supplied only by " "keyword. Keyword-only parameters can be defined by including a single var-" @@ -2171,7 +2179,7 @@ msgstr "" "en la lista de parámetros en la definición de la función, como *kw_only1* y " "*kw_only2* en el ejemplo siguiente::" -#: ../Doc/glossary.rst:921 +#: ../Doc/glossary.rst:922 msgid "" ":dfn:`var-positional`: specifies that an arbitrary sequence of positional " "arguments can be provided (in addition to any positional arguments already " @@ -2185,7 +2193,7 @@ msgstr "" "ser definido anteponiendo al nombre del parámetro ``*``, como a *args* en el " "siguiente ejemplo::" -#: ../Doc/glossary.rst:929 +#: ../Doc/glossary.rst:930 msgid "" ":dfn:`var-keyword`: specifies that arbitrarily many keyword arguments can be " "provided (in addition to any keyword arguments already accepted by other " @@ -2198,7 +2206,7 @@ msgstr "" "anteponiendo al nombre del parámetro con ``**``, como *kwargs* en el ejemplo " "precedente." -#: ../Doc/glossary.rst:935 +#: ../Doc/glossary.rst:936 msgid "" "Parameters can specify both optional and required arguments, as well as " "default values for some optional arguments." @@ -2206,7 +2214,7 @@ msgstr "" "Los parámetros puede especificar tanto argumentos opcionales como " "requeridos, así como valores por defecto para algunos argumentos opcionales." -#: ../Doc/glossary.rst:938 +#: ../Doc/glossary.rst:939 msgid "" "See also the :term:`argument` glossary entry, the FAQ question on :ref:`the " "difference between arguments and parameters `, " @@ -2218,11 +2226,11 @@ msgstr "" "la clase :class:`inspect.Parameter`, la sección :ref:`function` , y :pep:" "`362`." -#: ../Doc/glossary.rst:942 +#: ../Doc/glossary.rst:943 msgid "path entry" msgstr "entrada de ruta" -#: ../Doc/glossary.rst:944 +#: ../Doc/glossary.rst:945 msgid "" "A single location on the :term:`import path` which the :term:`path based " "finder` consults to find modules for importing." @@ -2230,11 +2238,11 @@ msgstr "" "Una ubicación única en el :term:`import path` que el :term:`path based " "finder` consulta para encontrar los módulos a importar." -#: ../Doc/glossary.rst:946 +#: ../Doc/glossary.rst:947 msgid "path entry finder" msgstr "buscador de entradas de ruta" -#: ../Doc/glossary.rst:948 +#: ../Doc/glossary.rst:949 msgid "" "A :term:`finder` returned by a callable on :data:`sys.path_hooks` (i.e. a :" "term:`path entry hook`) which knows how to locate modules given a :term:" @@ -2244,7 +2252,7 @@ msgstr "" "es, un :term:`path entry hook`) que sabe cómo localizar módulos dada una :" "term:`path entry`." -#: ../Doc/glossary.rst:952 +#: ../Doc/glossary.rst:953 msgid "" "See :class:`importlib.abc.PathEntryFinder` for the methods that path entry " "finders implement." @@ -2252,11 +2260,11 @@ msgstr "" "Vea en :class:`importlib.abc.PathEntryFinder` los métodos que los buscadores " "de entradas de ruta implementan." -#: ../Doc/glossary.rst:954 +#: ../Doc/glossary.rst:955 msgid "path entry hook" msgstr "gancho a entrada de ruta" -#: ../Doc/glossary.rst:956 +#: ../Doc/glossary.rst:957 msgid "" "A callable on the :data:`sys.path_hook` list which returns a :term:`path " "entry finder` if it knows how to find modules on a specific :term:`path " @@ -2266,11 +2274,11 @@ msgstr "" "entry finder` si éste sabe cómo encontrar módulos en un :term:`path entry` " "específico." -#: ../Doc/glossary.rst:959 +#: ../Doc/glossary.rst:960 msgid "path based finder" msgstr "buscador basado en ruta" -#: ../Doc/glossary.rst:961 +#: ../Doc/glossary.rst:962 msgid "" "One of the default :term:`meta path finders ` which " "searches an :term:`import path` for modules." @@ -2278,11 +2286,11 @@ msgstr "" "Uno de los :term:`meta buscadores de ruta ` por defecto " "que busca un :term:`import path` para los módulos." -#: ../Doc/glossary.rst:963 +#: ../Doc/glossary.rst:964 msgid "path-like object" msgstr "objeto tipo ruta" -#: ../Doc/glossary.rst:965 +#: ../Doc/glossary.rst:966 msgid "" "An object representing a file system path. A path-like object is either a :" "class:`str` or :class:`bytes` object representing a path, or an object " @@ -2302,11 +2310,11 @@ msgstr "" "emplearse para garantizar que retorne respectivamente :class:`str` o :class:" "`bytes`. Introducido por :pep:`519`." -#: ../Doc/glossary.rst:973 +#: ../Doc/glossary.rst:974 msgid "PEP" msgstr "PEP" -#: ../Doc/glossary.rst:975 +#: ../Doc/glossary.rst:976 msgid "" "Python Enhancement Proposal. A PEP is a design document providing " "information to the Python community, or describing a new feature for Python " @@ -2319,7 +2327,7 @@ msgstr "" "deberían dar una especificación técnica concisa y una fundamentación para " "las capacidades propuestas." -#: ../Doc/glossary.rst:981 +#: ../Doc/glossary.rst:982 msgid "" "PEPs are intended to be the primary mechanisms for proposing major new " "features, for collecting community input on an issue, and for documenting " @@ -2333,15 +2341,15 @@ msgstr "" "El autor del PEP es el responsable de lograr consenso con la comunidad y " "documentar las opiniones disidentes." -#: ../Doc/glossary.rst:987 +#: ../Doc/glossary.rst:988 msgid "See :pep:`1`." msgstr "Vea :pep:`1`." -#: ../Doc/glossary.rst:988 +#: ../Doc/glossary.rst:989 msgid "portion" msgstr "porción" -#: ../Doc/glossary.rst:990 +#: ../Doc/glossary.rst:991 msgid "" "A set of files in a single directory (possibly stored in a zip file) that " "contribute to a namespace package, as defined in :pep:`420`." @@ -2350,15 +2358,15 @@ msgstr "" "archivo comprimido *zip*) que contribuye a un espacio de nombres de paquete, " "como está definido en :pep:`420`." -#: ../Doc/glossary.rst:992 +#: ../Doc/glossary.rst:993 msgid "positional argument" msgstr "argumento posicional" -#: ../Doc/glossary.rst:995 +#: ../Doc/glossary.rst:996 msgid "provisional API" msgstr "API provisional" -#: ../Doc/glossary.rst:997 +#: ../Doc/glossary.rst:998 msgid "" "A provisional API is one which has been deliberately excluded from the " "standard library's backwards compatibility guarantees. While major changes " @@ -2377,7 +2385,7 @@ msgstr "" "ocurrirán si fallas fundamentales y serias son descubiertas que no fueron " "vistas antes de la inclusión de la API." -#: ../Doc/glossary.rst:1006 +#: ../Doc/glossary.rst:1007 msgid "" "Even for provisional APIs, backwards incompatible changes are seen as a " "\"solution of last resort\" - every attempt will still be made to find a " @@ -2388,7 +2396,7 @@ msgstr "" "encontrar una solución compatible hacia atrás para los problemas " "identificados." -#: ../Doc/glossary.rst:1010 +#: ../Doc/glossary.rst:1011 msgid "" "This process allows the standard library to continue to evolve over time, " "without locking in problematic design errors for extended periods of time. " @@ -2398,19 +2406,19 @@ msgstr "" "el tiempo, sin bloquearse por errores de diseño problemáticos por períodos " "extensos de tiempo. Vea :pep:`411` para más detalles." -#: ../Doc/glossary.rst:1013 +#: ../Doc/glossary.rst:1014 msgid "provisional package" msgstr "paquete provisorio" -#: ../Doc/glossary.rst:1015 +#: ../Doc/glossary.rst:1016 msgid "See :term:`provisional API`." msgstr "Vea :term:`provisional API`." -#: ../Doc/glossary.rst:1016 +#: ../Doc/glossary.rst:1017 msgid "Python 3000" msgstr "Python 3000" -#: ../Doc/glossary.rst:1018 +#: ../Doc/glossary.rst:1019 msgid "" "Nickname for the Python 3.x release line (coined long ago when the release " "of version 3 was something in the distant future.) This is also abbreviated " @@ -2420,11 +2428,11 @@ msgstr "" "cuando llegar a la versión 3 era algo distante en el futuro.) También se lo " "abrevió como *Py3k*." -#: ../Doc/glossary.rst:1021 +#: ../Doc/glossary.rst:1022 msgid "Pythonic" msgstr "Pythónico" -#: ../Doc/glossary.rst:1023 +#: ../Doc/glossary.rst:1024 msgid "" "An idea or piece of code which closely follows the most common idioms of the " "Python language, rather than implementing code using concepts common to " @@ -2441,15 +2449,15 @@ msgstr "" "construcción, así que los que no están familiarizados con Python podrían " "usar contadores numéricos::" -#: ../Doc/glossary.rst:1033 +#: ../Doc/glossary.rst:1034 msgid "As opposed to the cleaner, Pythonic method::" msgstr "En contraste, un método Pythónico más limpio::" -#: ../Doc/glossary.rst:1037 +#: ../Doc/glossary.rst:1038 msgid "qualified name" msgstr "nombre calificado" -#: ../Doc/glossary.rst:1039 +#: ../Doc/glossary.rst:1040 msgid "" "A dotted name showing the \"path\" from a module's global scope to a class, " "function or method defined in that module, as defined in :pep:`3155`. For " @@ -2461,7 +2469,7 @@ msgstr "" "`3155`. Para las funciones o clases de más alto nivel, el nombre calificado " "es el igual al nombre del objeto::" -#: ../Doc/glossary.rst:1056 +#: ../Doc/glossary.rst:1057 msgid "" "When used to refer to modules, the *fully qualified name* means the entire " "dotted path to the module, including any parent packages, e.g. ``email.mime." @@ -2471,18 +2479,20 @@ msgstr "" "calificado* significa la ruta con puntos completo al módulo, incluyendo " "cualquier paquete padre, por ejemplo, ``email.mime.text``::" -#: ../Doc/glossary.rst:1063 +#: ../Doc/glossary.rst:1064 msgid "reference count" msgstr "contador de referencias" -#: ../Doc/glossary.rst:1065 +#: ../Doc/glossary.rst:1066 #, fuzzy msgid "" "The number of references to an object. When the reference count of an " -"object drops to zero, it is deallocated. Reference counting is generally " -"not visible to Python code, but it is a key element of the :term:`CPython` " -"implementation. Programmers can call the :func:`sys.getrefcount` function " -"to return the reference count for a particular object." +"object drops to zero, it is deallocated. Some objects are \"immortal\" and " +"have reference counts that are never modified, and therefore the objects are " +"never deallocated. Reference counting is generally not visible to Python " +"code, but it is a key element of the :term:`CPython` implementation. " +"Programmers can call the :func:`sys.getrefcount` function to return the " +"reference count for a particular object." msgstr "" "El número de referencias a un objeto. Cuando el contador de referencias de " "un objeto cae hasta cero, éste es desalojable. En conteo de referencias no " @@ -2491,11 +2501,11 @@ msgstr "" "`~sys.getrefcount` que los programadores pueden emplear para retornar el " "conteo de referencias de un objeto en particular." -#: ../Doc/glossary.rst:1071 +#: ../Doc/glossary.rst:1074 msgid "regular package" msgstr "paquete regular" -#: ../Doc/glossary.rst:1073 +#: ../Doc/glossary.rst:1076 msgid "" "A traditional :term:`package`, such as a directory containing an ``__init__." "py`` file." @@ -2503,15 +2513,15 @@ msgstr "" "Un :term:`package` tradicional, como aquellos con un directorio conteniendo " "el archivo ``__init__.py``." -#: ../Doc/glossary.rst:1076 +#: ../Doc/glossary.rst:1079 msgid "See also :term:`namespace package`." msgstr "Vea también :term:`namespace package`." -#: ../Doc/glossary.rst:1077 +#: ../Doc/glossary.rst:1080 msgid "__slots__" msgstr "__slots__" -#: ../Doc/glossary.rst:1079 +#: ../Doc/glossary.rst:1082 msgid "" "A declaration inside a class that saves memory by pre-declaring space for " "instance attributes and eliminating instance dictionaries. Though popular, " @@ -2525,11 +2535,11 @@ msgstr "" "correctamente y es mejor reservarla para los casos raros en los que existen " "grandes cantidades de instancias en aplicaciones con uso crítico de memoria." -#: ../Doc/glossary.rst:1084 +#: ../Doc/glossary.rst:1087 msgid "sequence" msgstr "secuencia" -#: ../Doc/glossary.rst:1086 +#: ../Doc/glossary.rst:1089 msgid "" "An :term:`iterable` which supports efficient element access using integer " "indices via the :meth:`__getitem__` special method and defines a :meth:" @@ -2548,7 +2558,7 @@ msgstr "" "una secuencia porque las búsquedas son por claves arbitraria :term:" "`immutable` y no por enteros." -#: ../Doc/glossary.rst:1095 +#: ../Doc/glossary.rst:1098 msgid "" "The :class:`collections.abc.Sequence` abstract base class defines a much " "richer interface that goes beyond just :meth:`__getitem__` and :meth:" @@ -2562,11 +2572,11 @@ msgstr "" "meth:`__reversed__`. Los tipos que implementan esta interfaz expandida " "pueden ser registrados explícitamente usando :func:`~abc.register`." -#: ../Doc/glossary.rst:1102 +#: ../Doc/glossary.rst:1105 msgid "set comprehension" msgstr "comprensión de conjuntos" -#: ../Doc/glossary.rst:1104 +#: ../Doc/glossary.rst:1107 msgid "" "A compact way to process all or part of the elements in an iterable and " "return a set with the results. ``results = {c for c in 'abracadabra' if c " @@ -2578,11 +2588,11 @@ msgstr "" "'abracadabra' if c not in 'abc'}`` genera el conjunto de cadenas ``{'r', 'd'}" "``. Ver :ref:`comprehensions`." -#: ../Doc/glossary.rst:1108 +#: ../Doc/glossary.rst:1111 msgid "single dispatch" msgstr "despacho único" -#: ../Doc/glossary.rst:1110 +#: ../Doc/glossary.rst:1113 msgid "" "A form of :term:`generic function` dispatch where the implementation is " "chosen based on the type of a single argument." @@ -2590,11 +2600,11 @@ msgstr "" "Una forma de despacho de una :term:`generic function` donde la " "implementación es elegida a partir del tipo de un sólo argumento." -#: ../Doc/glossary.rst:1112 +#: ../Doc/glossary.rst:1115 msgid "slice" msgstr "rebanada" -#: ../Doc/glossary.rst:1114 +#: ../Doc/glossary.rst:1117 msgid "" "An object usually containing a portion of a :term:`sequence`. A slice is " "created using the subscript notation, ``[]`` with colons between numbers " @@ -2606,11 +2616,11 @@ msgstr "" "números cuando se ponen varios, como en ``nombre_variable[1:3:5]``. La " "notación con corchete (suscrito) usa internamente objetos :class:`slice`." -#: ../Doc/glossary.rst:1118 +#: ../Doc/glossary.rst:1121 msgid "special method" msgstr "método especial" -#: ../Doc/glossary.rst:1122 +#: ../Doc/glossary.rst:1125 msgid "" "A method that is called implicitly by Python to execute a certain operation " "on a type, such as addition. Such methods have names starting and ending " @@ -2622,11 +2632,11 @@ msgstr "" "comienzan y terminan con doble barra baja. Los métodos especiales están " "documentados en :ref:`specialnames`." -#: ../Doc/glossary.rst:1126 +#: ../Doc/glossary.rst:1129 msgid "statement" msgstr "sentencia" -#: ../Doc/glossary.rst:1128 +#: ../Doc/glossary.rst:1131 msgid "" "A statement is part of a suite (a \"block\" of code). A statement is either " "an :term:`expression` or one of several constructs with a keyword, such as :" @@ -2637,21 +2647,23 @@ msgstr "" "sintaxis usando una palabra clave, como :keyword:`if`, :keyword:`while` o :" "keyword:`for`." -#: ../Doc/glossary.rst:1131 +#: ../Doc/glossary.rst:1134 msgid "strong reference" msgstr "referencia fuerte" -#: ../Doc/glossary.rst:1133 +#: ../Doc/glossary.rst:1136 +#, fuzzy msgid "" -"In Python's C API, a strong reference is a reference to an object which " -"increments the object's reference count when it is created and decrements " -"the object's reference count when it is deleted." +"In Python's C API, a strong reference is a reference to an object which is " +"owned by the code holding the reference. The strong reference is taken by " +"calling :c:func:`Py_INCREF` when the reference is created and released with :" +"c:func:`Py_DECREF` when the reference is deleted." msgstr "" "En la API C de Python, una referencia fuerte es una referencia a un objeto " "que incrementa el recuento de referencias del objeto cuando se crea y " "disminuye el recuento de referencias del objeto cuando se elimina." -#: ../Doc/glossary.rst:1137 +#: ../Doc/glossary.rst:1142 msgid "" "The :c:func:`Py_NewRef` function can be used to create a strong reference to " "an object. Usually, the :c:func:`Py_DECREF` function must be called on the " @@ -2663,38 +2675,38 @@ msgstr "" "`Py_DECREF` en la referencia fuerte antes de salir del alcance de la " "referencia fuerte, para evitar filtrar una referencia." -#: ../Doc/glossary.rst:1142 +#: ../Doc/glossary.rst:1147 msgid "See also :term:`borrowed reference`." msgstr "Consulte también :term:`borrowed reference`." -#: ../Doc/glossary.rst:1143 +#: ../Doc/glossary.rst:1148 msgid "text encoding" msgstr "codificación de texto" -#: ../Doc/glossary.rst:1145 +#: ../Doc/glossary.rst:1150 msgid "" "A string in Python is a sequence of Unicode code points (in range " "``U+0000``--``U+10FFFF``). To store or transfer a string, it needs to be " "serialized as a sequence of bytes." msgstr "" -#: ../Doc/glossary.rst:1149 +#: ../Doc/glossary.rst:1154 msgid "" "Serializing a string into a sequence of bytes is known as \"encoding\", and " "recreating the string from the sequence of bytes is known as \"decoding\"." msgstr "" -#: ../Doc/glossary.rst:1152 +#: ../Doc/glossary.rst:1157 msgid "" "There are a variety of different text serialization :ref:`codecs `, which are collectively referred to as \"text encodings\"." msgstr "" -#: ../Doc/glossary.rst:1155 +#: ../Doc/glossary.rst:1160 msgid "text file" msgstr "archivo de texto" -#: ../Doc/glossary.rst:1157 +#: ../Doc/glossary.rst:1162 msgid "" "A :term:`file object` able to read and write :class:`str` objects. Often, a " "text file actually accesses a byte-oriented datastream and handles the :term:" @@ -2708,7 +2720,7 @@ msgstr "" "archivos de texto que son abiertos en modo texto (``'r'`` o ``'w'``), :data:" "`sys.stdin`, :data:`sys.stdout`, y las instancias de :class:`io.StringIO`." -#: ../Doc/glossary.rst:1164 +#: ../Doc/glossary.rst:1169 msgid "" "See also :term:`binary file` for a file object able to read and write :term:" "`bytes-like objects `." @@ -2716,11 +2728,11 @@ msgstr "" "Vea también :term:`binary file` por objeto de archivos capaces de leer y " "escribir :term:`objeto tipo binario `." -#: ../Doc/glossary.rst:1166 +#: ../Doc/glossary.rst:1171 msgid "triple-quoted string" msgstr "cadena con triple comilla" -#: ../Doc/glossary.rst:1168 +#: ../Doc/glossary.rst:1173 msgid "" "A string which is bound by three instances of either a quotation mark (\") " "or an apostrophe ('). While they don't provide any functionality not " @@ -2737,11 +2749,11 @@ msgstr "" "las cadenas y pueden abarcar múltiples líneas sin el uso de caracteres de " "continuación, haciéndolas particularmente útiles para escribir docstrings." -#: ../Doc/glossary.rst:1175 +#: ../Doc/glossary.rst:1180 msgid "type" msgstr "tipo" -#: ../Doc/glossary.rst:1177 +#: ../Doc/glossary.rst:1182 msgid "" "The type of a Python object determines what kind of object it is; every " "object has a type. An object's type is accessible as its :attr:`~instance." @@ -2751,16 +2763,16 @@ msgstr "" "tiene un tipo. El tipo de un objeto puede ser accedido por su atributo :" "attr:`~instance.__class__` o puede ser conseguido usando ``type(obj)``." -#: ../Doc/glossary.rst:1181 +#: ../Doc/glossary.rst:1186 msgid "type alias" msgstr "alias de tipos" -#: ../Doc/glossary.rst:1183 +#: ../Doc/glossary.rst:1188 msgid "A synonym for a type, created by assigning the type to an identifier." msgstr "" "Un sinónimo para un tipo, creado al asignar un tipo a un identificador." -#: ../Doc/glossary.rst:1185 +#: ../Doc/glossary.rst:1190 msgid "" "Type aliases are useful for simplifying :term:`type hints `. For " "example::" @@ -2768,19 +2780,19 @@ msgstr "" "Los alias de tipos son útiles para simplificar los :term:`indicadores de " "tipo `. Por ejemplo::" -#: ../Doc/glossary.rst:1192 +#: ../Doc/glossary.rst:1197 msgid "could be made more readable like this::" msgstr "podría ser más legible así::" -#: ../Doc/glossary.rst:1199 ../Doc/glossary.rst:1213 +#: ../Doc/glossary.rst:1204 ../Doc/glossary.rst:1218 msgid "See :mod:`typing` and :pep:`484`, which describe this functionality." msgstr "Vea :mod:`typing` y :pep:`484`, que describen esta funcionalidad." -#: ../Doc/glossary.rst:1200 +#: ../Doc/glossary.rst:1205 msgid "type hint" msgstr "indicador de tipo" -#: ../Doc/glossary.rst:1202 +#: ../Doc/glossary.rst:1207 msgid "" "An :term:`annotation` that specifies the expected type for a variable, a " "class attribute, or a function parameter or return value." @@ -2788,7 +2800,7 @@ msgstr "" "Una :term:`annotation` que especifica el tipo esperado para una variable, " "un atributo de clase, un parámetro para una función o un valor de retorno." -#: ../Doc/glossary.rst:1205 +#: ../Doc/glossary.rst:1210 msgid "" "Type hints are optional and are not enforced by Python but they are useful " "to static type analysis tools, and aid IDEs with code completion and " @@ -2798,7 +2810,7 @@ msgstr "" "son útiles para las herramientas de análisis de tipos estático, y ayuda a " "las IDE en el completado del código y la refactorización." -#: ../Doc/glossary.rst:1209 +#: ../Doc/glossary.rst:1214 msgid "" "Type hints of global variables, class attributes, and functions, but not " "local variables, can be accessed using :func:`typing.get_type_hints`." @@ -2807,11 +2819,11 @@ msgstr "" "funciones, no de variables locales, pueden ser accedidos usando :func:" "`typing.get_type_hints`." -#: ../Doc/glossary.rst:1214 +#: ../Doc/glossary.rst:1219 msgid "universal newlines" msgstr "saltos de líneas universales" -#: ../Doc/glossary.rst:1216 +#: ../Doc/glossary.rst:1221 msgid "" "A manner of interpreting text streams in which all of the following are " "recognized as ending a line: the Unix end-of-line convention ``'\\n'``, the " @@ -2825,22 +2837,22 @@ msgstr "" "convención de Macintosh ``'\\r'``. Vea :pep:`278` y :pep:`3116`, además de :" "func:`bytes.splitlines` para usos adicionales." -#: ../Doc/glossary.rst:1221 +#: ../Doc/glossary.rst:1226 msgid "variable annotation" msgstr "anotación de variable" -#: ../Doc/glossary.rst:1223 +#: ../Doc/glossary.rst:1228 msgid "An :term:`annotation` of a variable or a class attribute." msgstr "Una :term:`annotation` de una variable o un atributo de clase." -#: ../Doc/glossary.rst:1225 +#: ../Doc/glossary.rst:1230 msgid "" "When annotating a variable or a class attribute, assignment is optional::" msgstr "" "Cuando se anota una variable o un atributo de clase, la asignación es " "opcional::" -#: ../Doc/glossary.rst:1230 +#: ../Doc/glossary.rst:1235 msgid "" "Variable annotations are usually used for :term:`type hints `: " "for example this variable is expected to take :class:`int` values::" @@ -2849,13 +2861,13 @@ msgstr "" "hints `: por ejemplo, se espera que esta variable tenga valores " "de clase :class:`int`::" -#: ../Doc/glossary.rst:1236 +#: ../Doc/glossary.rst:1241 msgid "Variable annotation syntax is explained in section :ref:`annassign`." msgstr "" "La sintaxis de la anotación de variables está explicada en la sección :ref:" "`annassign`." -#: ../Doc/glossary.rst:1238 +#: ../Doc/glossary.rst:1243 msgid "" "See :term:`function annotation`, :pep:`484` and :pep:`526`, which describe " "this functionality. Also see :ref:`annotations-howto` for best practices on " @@ -2865,11 +2877,11 @@ msgstr "" "esta funcionalidad. Consulte también :ref:`annotations-howto` para conocer " "las mejores prácticas sobre cómo trabajar con anotaciones." -#: ../Doc/glossary.rst:1242 +#: ../Doc/glossary.rst:1247 msgid "virtual environment" msgstr "entorno virtual" -#: ../Doc/glossary.rst:1244 +#: ../Doc/glossary.rst:1249 msgid "" "A cooperatively isolated runtime environment that allows Python users and " "applications to install and upgrade Python distribution packages without " @@ -2881,15 +2893,15 @@ msgstr "" "distribución de Python sin interferir con el comportamiento de otras " "aplicaciones de Python en el mismo sistema." -#: ../Doc/glossary.rst:1249 +#: ../Doc/glossary.rst:1254 msgid "See also :mod:`venv`." msgstr "Vea también :mod:`venv`." -#: ../Doc/glossary.rst:1250 +#: ../Doc/glossary.rst:1255 msgid "virtual machine" msgstr "máquina virtual" -#: ../Doc/glossary.rst:1252 +#: ../Doc/glossary.rst:1257 msgid "" "A computer defined entirely in software. Python's virtual machine executes " "the :term:`bytecode` emitted by the bytecode compiler." @@ -2897,11 +2909,11 @@ msgstr "" "Una computadora definida enteramente por software. La máquina virtual de " "Python ejecuta el :term:`bytecode` generado por el compilador de *bytecode*." -#: ../Doc/glossary.rst:1254 +#: ../Doc/glossary.rst:1259 msgid "Zen of Python" msgstr "Zen de Python" -#: ../Doc/glossary.rst:1256 +#: ../Doc/glossary.rst:1261 msgid "" "Listing of Python design principles and philosophies that are helpful in " "understanding and using the language. The listing can be found by typing " @@ -2910,3 +2922,22 @@ msgstr "" "Un listado de los principios de diseño y la filosofía de Python que son " "útiles para entender y usar el lenguaje. El listado puede encontrarse " "ingresando \"``import this``\" en la consola interactiva." + +#: ../Doc/glossary.rst:264 +#, fuzzy +msgid "C-contiguous" +msgstr "contiguo" + +#: ../Doc/glossary.rst:264 +#, fuzzy +msgid "Fortran contiguous" +msgstr "contiguo" + +#: ../Doc/glossary.rst:757 +msgid "magic" +msgstr "" + +#: ../Doc/glossary.rst:1123 +#, fuzzy +msgid "special" +msgstr "método especial" diff --git a/howto/annotations.po b/howto/annotations.po index 54b7de4856..8b91b1dada 100644 --- a/howto/annotations.po +++ b/howto/annotations.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python en Español 3.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-10-21 04:10-0500\n" "Last-Translator: José Luis Salgado Banda \n" "Language: es\n" @@ -17,7 +17,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/howto/annotations.rst:5 msgid "Annotations Best Practices" @@ -127,13 +127,21 @@ msgstr "" "3.10 y posteriores es llamar :func:`getattr` con tres argumentos, por " "ejemplo ``getattr(o, '__annotations__', None)``." -#: ../Doc/howto/annotations.rst:62 +#: ../Doc/howto/annotations.rst:60 +msgid "" +"Before Python 3.10, accessing ``__annotations__`` on a class that defines no " +"annotations but that has a parent class with annotations would return the " +"parent's ``__annotations__``. In Python 3.10 and newer, the child class's " +"annotations will be an empty dict instead." +msgstr "" + +#: ../Doc/howto/annotations.rst:68 msgid "Accessing The Annotations Dict Of An Object In Python 3.9 And Older" msgstr "" "Acceder al diccionario de anotaciones de un objeto en las versiones de " "Python 3.9 y anteriores" -#: ../Doc/howto/annotations.rst:64 +#: ../Doc/howto/annotations.rst:70 msgid "" "In Python 3.9 and older, accessing the annotations dict of an object is much " "more complicated than in newer versions. The problem is a design flaw in " @@ -144,7 +152,7 @@ msgstr "" "recientes. El problema es un defecto de diseño en estas versiones anteriores " "de Python, específicamente relacionado con las anotaciones de clase." -#: ../Doc/howto/annotations.rst:69 +#: ../Doc/howto/annotations.rst:75 msgid "" "Best practice for accessing the annotations dict of other objects--" "functions, other callables, and modules--is the same as best practice for " @@ -158,7 +166,7 @@ msgstr "" "usar tres argumentos de :func:`getattr` para acceder al atributo " "``__annotations__`` del objeto." -#: ../Doc/howto/annotations.rst:76 +#: ../Doc/howto/annotations.rst:82 msgid "" "Unfortunately, this isn't best practice for classes. The problem is that, " "since ``__annotations__`` is optional on classes, and because classes can " @@ -173,12 +181,12 @@ msgstr "" "inadvertencia el diccionario de anotaciones de una *clase base.* Como " "ejemplo::" -#: ../Doc/howto/annotations.rst:92 +#: ../Doc/howto/annotations.rst:98 msgid "This will print the annotations dict from ``Base``, not ``Derived``." msgstr "" "Esto imprimirá el diccionario de anotaciones de ``Base``, no de ``Derived``." -#: ../Doc/howto/annotations.rst:95 +#: ../Doc/howto/annotations.rst:101 msgid "" "Your code will have to have a separate code path if the object you're " "examining is a class (``isinstance(o, type)``). In that case, best practice " @@ -195,7 +203,7 @@ msgstr "" "puede o no tener anotaciones definidas, la mejor práctica es llamar al " "método ``get`` en el diccionario de la clase." -#: ../Doc/howto/annotations.rst:103 +#: ../Doc/howto/annotations.rst:109 msgid "" "To put it all together, here is some sample code that safely accesses the " "``__annotations__`` attribute on an arbitrary object in Python 3.9 and " @@ -205,7 +213,7 @@ msgstr "" "segura al atributo ``__annotations__`` en un objeto arbitrario en las " "versiones de Python 3.9 y anteriores::" -#: ../Doc/howto/annotations.rst:112 +#: ../Doc/howto/annotations.rst:118 msgid "" "After running this code, ``ann`` should be either a dictionary or ``None``. " "You're encouraged to double-check the type of ``ann`` using :func:" @@ -215,7 +223,7 @@ msgstr "" "``None``. Recomendamos que vuelva a verificar el tipo de ``ann`` usando :" "func:`isinstance` antes de un examen más detenido." -#: ../Doc/howto/annotations.rst:117 +#: ../Doc/howto/annotations.rst:123 msgid "" "Note that some exotic or malformed type objects may not have a ``__dict__`` " "attribute, so for extra safety you may also wish to use :func:`getattr` to " @@ -225,11 +233,11 @@ msgstr "" "pueden no tener un atributo ``__dict__``, así que para mayor seguridad, " "también puede usar :func:`getattr` para acceder a ``__dict__``." -#: ../Doc/howto/annotations.rst:123 +#: ../Doc/howto/annotations.rst:129 msgid "Manually Un-Stringizing Stringized Annotations" msgstr "Desencadenamiento manual de anotaciones en cadena" -#: ../Doc/howto/annotations.rst:125 +#: ../Doc/howto/annotations.rst:131 msgid "" "In situations where some annotations may be \"stringized\", and you wish to " "evaluate those strings to produce the Python values they represent, it " @@ -241,7 +249,7 @@ msgstr "" "que representan, lo mejor es llamar a :func:`inspect.get_annotations` para " "que haga este trabajo por usted." -#: ../Doc/howto/annotations.rst:131 +#: ../Doc/howto/annotations.rst:137 msgid "" "If you're using Python 3.9 or older, or if for some reason you can't use :" "func:`inspect.get_annotations`, you'll need to duplicate its logic. You're " @@ -253,7 +261,7 @@ msgstr "" "Recomendamos que examine la implementación de :func:`inspect." "get_annotations` en la versión actual de Python y siga un enfoque similar." -#: ../Doc/howto/annotations.rst:137 +#: ../Doc/howto/annotations.rst:143 msgid "" "In a nutshell, if you wish to evaluate a stringized annotation on an " "arbitrary object ``o``:" @@ -261,7 +269,7 @@ msgstr "" "En pocas palabras, si desea evaluar una anotación en cadena en un objeto " "arbitrario ``o``:" -#: ../Doc/howto/annotations.rst:140 +#: ../Doc/howto/annotations.rst:146 msgid "" "If ``o`` is a module, use ``o.__dict__`` as the ``globals`` when calling :" "func:`eval`." @@ -269,7 +277,7 @@ msgstr "" "Si ``o`` es un módulo, use ``o.__dict__`` como ``globals`` cuando llame a :" "func:`eval`." -#: ../Doc/howto/annotations.rst:142 +#: ../Doc/howto/annotations.rst:148 msgid "" "If ``o`` is a class, use ``sys.modules[o.__module__].__dict__`` as the " "``globals``, and ``dict(vars(o))`` as the ``locals``, when calling :func:" @@ -278,7 +286,7 @@ msgstr "" "Si ``o`` es una clase, use ``sys.modules[o.__module__].__dict__`` como " "``globals`` y ``dict(vars(o))`` como ``locals`` cuando llame a :func:`eval`." -#: ../Doc/howto/annotations.rst:145 +#: ../Doc/howto/annotations.rst:151 msgid "" "If ``o`` is a wrapped callable using :func:`functools.update_wrapper`, :func:" "`functools.wraps`, or :func:`functools.partial`, iteratively unwrap it by " @@ -290,7 +298,7 @@ msgstr "" "iterativamente accediendo a ``o.__wrapped__`` o ``o.func`` según " "corresponda, hasta que haya encontrado la función raíz sin envolver." -#: ../Doc/howto/annotations.rst:149 +#: ../Doc/howto/annotations.rst:155 msgid "" "If ``o`` is a callable (but not a class), use ``o.__globals__`` as the " "globals when calling :func:`eval`." @@ -298,7 +306,7 @@ msgstr "" "Si ``o`` es un invocable (pero no una clase), use ``o.__globals__`` como " "``globals`` cuando llame a :func:`eval`." -#: ../Doc/howto/annotations.rst:152 +#: ../Doc/howto/annotations.rst:158 msgid "" "However, not all string values used as annotations can be successfully " "turned into Python values by :func:`eval`. String values could theoretically " @@ -314,7 +322,7 @@ msgstr "" "anotaciones con valores de cadena de caracteres que *no pueden* evaluarse " "específicamente. Por ejemplo:" -#: ../Doc/howto/annotations.rst:159 +#: ../Doc/howto/annotations.rst:165 #, fuzzy msgid "" ":pep:`604` union types using ``|``, before support for this was added to " @@ -323,7 +331,7 @@ msgstr "" ":pep:`604` tipos de unión usando `|`, antes de que se agregara soporte para " "esto en Python 3.10." -#: ../Doc/howto/annotations.rst:161 +#: ../Doc/howto/annotations.rst:167 msgid "" "Definitions that aren't needed at runtime, only imported when :const:`typing." "TYPE_CHECKING` is true." @@ -331,7 +339,7 @@ msgstr "" "Las definiciones que no son necesarias en tiempo de ejecución, sólo se " "importan cuando :const:`typing.TYPE_CHECKING` es verdadero." -#: ../Doc/howto/annotations.rst:164 +#: ../Doc/howto/annotations.rst:170 msgid "" "If :func:`eval` attempts to evaluate such values, it will fail and raise an " "exception. So, when designing a library API that works with annotations, " @@ -343,13 +351,13 @@ msgstr "" "anotaciones, se recomienda sólo intentar evaluar valores de cadena de " "caracteres cuando la llamada lo solicite explícitamente." -#: ../Doc/howto/annotations.rst:172 +#: ../Doc/howto/annotations.rst:178 msgid "Best Practices For ``__annotations__`` In Any Python Version" msgstr "" "Prácticas recomendadas para ``__annotations__`` en cualquier versión de " "Python" -#: ../Doc/howto/annotations.rst:174 +#: ../Doc/howto/annotations.rst:180 msgid "" "You should avoid assigning to the ``__annotations__`` member of objects " "directly. Let Python manage setting ``__annotations__``." @@ -357,7 +365,7 @@ msgstr "" "Debe evitar asignar directamente al miembro ``__annotations__`` de objetos. " "Deje que Python administre la configuración ``__annotations__``." -#: ../Doc/howto/annotations.rst:177 +#: ../Doc/howto/annotations.rst:183 msgid "" "If you do assign directly to the ``__annotations__`` member of an object, " "you should always set it to a ``dict`` object." @@ -365,7 +373,7 @@ msgstr "" "Si asigna directamente al miembro ``__annotations__`` de un objeto, siempre " "debe establecerlo en un objeto ``dict``." -#: ../Doc/howto/annotations.rst:180 +#: ../Doc/howto/annotations.rst:186 msgid "" "If you directly access the ``__annotations__`` member of an object, you " "should ensure that it's a dictionary before attempting to examine its " @@ -374,20 +382,20 @@ msgstr "" "Si accede directamente al miembro ``__annotations__`` de un objeto, debe " "asegurarse de que sea un diccionario antes de intentar examinar su contenido." -#: ../Doc/howto/annotations.rst:184 +#: ../Doc/howto/annotations.rst:190 msgid "You should avoid modifying ``__annotations__`` dicts." msgstr "Debe evitar modificar los diccionarios ``__annotations__``." -#: ../Doc/howto/annotations.rst:186 +#: ../Doc/howto/annotations.rst:192 msgid "" "You should avoid deleting the ``__annotations__`` attribute of an object." msgstr "Debe evitar eliminar el atributo ``__annotations__`` de un objeto." -#: ../Doc/howto/annotations.rst:191 +#: ../Doc/howto/annotations.rst:197 msgid "``__annotations__`` Quirks" msgstr "Peculiaridades de ``__annotations__``" -#: ../Doc/howto/annotations.rst:193 +#: ../Doc/howto/annotations.rst:199 msgid "" "In all versions of Python 3, function objects lazy-create an annotations " "dict if no annotations are defined on that object. You can delete the " @@ -408,7 +416,7 @@ msgstr "" "``AttributeError``; el uso de dos veces seguidas de ``del fn." "__annotations__`` garantiza que siempre arroje un ``AttributeError``." -#: ../Doc/howto/annotations.rst:203 +#: ../Doc/howto/annotations.rst:209 msgid "" "Everything in the above paragraph also applies to class and module objects " "in Python 3.10 and newer." @@ -416,7 +424,7 @@ msgstr "" "Todo en el párrafo anterior también se aplica a los objetos de clase y " "módulo en las versiones de Python 3.10 y posteriores." -#: ../Doc/howto/annotations.rst:206 +#: ../Doc/howto/annotations.rst:212 msgid "" "In all versions of Python 3, you can set ``__annotations__`` on a function " "object to ``None``. However, subsequently accessing the annotations on that " @@ -434,7 +442,7 @@ msgstr "" "esos objetos permiten establecer ``__annotations__`` en cualquier valor de " "Python, y conservarán cualquier valor que se establezca." -#: ../Doc/howto/annotations.rst:214 +#: ../Doc/howto/annotations.rst:220 msgid "" "If Python stringizes your annotations for you (using ``from __future__ " "import annotations``), and you specify a string as an annotation, the string " @@ -446,7 +454,7 @@ msgstr "" "anotación, la cadena de caracteres en sí se citará. En efecto, la anotación " "se cita *dos veces.* Por ejemplo::" -#: ../Doc/howto/annotations.rst:225 +#: ../Doc/howto/annotations.rst:231 msgid "" "This prints ``{'a': \"'str'\"}``. This shouldn't really be considered a " "\"quirk\"; it's mentioned here simply because it might be surprising." diff --git a/howto/argparse.po b/howto/argparse.po index ee87b68a30..26263acafd 100644 --- a/howto/argparse.po +++ b/howto/argparse.po @@ -10,18 +10,18 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-16 21:42+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-04 20:34+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" -"Generated-By: Babel 2.9.1\n" +"Generated-By: Babel 2.13.0\n" -#: ../Doc/howto/argparse.rst:3 +#: ../Doc/howto/argparse.rst:5 msgid "Argparse Tutorial" msgstr "Tutorial de *argparse*" @@ -29,11 +29,11 @@ msgstr "Tutorial de *argparse*" msgid "author" msgstr "autor" -#: ../Doc/howto/argparse.rst:5 -msgid "Tshepang Lekhonkhobe" -msgstr "Tshepang Lekhonkhobe" +#: ../Doc/howto/argparse.rst:7 +msgid "Tshepang Mbambo" +msgstr "" -#: ../Doc/howto/argparse.rst:9 +#: ../Doc/howto/argparse.rst:11 msgid "" "This tutorial is intended to be a gentle introduction to :mod:`argparse`, " "the recommended command-line parsing module in the Python standard library." @@ -42,23 +42,24 @@ msgstr "" "módulo de análisis (*parsing*) de línea de comandos recomendado en la " "biblioteca estándar de Python." -#: ../Doc/howto/argparse.rst:14 +#: ../Doc/howto/argparse.rst:16 +#, fuzzy msgid "" "There are two other modules that fulfill the same task, namely :mod:`getopt` " -"(an equivalent for :c:func:`getopt` from the C language) and the deprecated :" -"mod:`optparse`. Note also that :mod:`argparse` is based on :mod:`optparse`, " -"and therefore very similar in terms of usage." +"(an equivalent for ``getopt()`` from the C language) and the deprecated :mod:" +"`optparse`. Note also that :mod:`argparse` is based on :mod:`optparse`, and " +"therefore very similar in terms of usage." msgstr "" "Hay otros dos módulos que cumplen la misma tarea, llamados :mod:`getopt` (un " "equivalente a :c:func:`getopt` del lenguaje C) y el deprecado :mod:" "`optparse`. Tenga en cuenta también que :mod:`argparse` está basado en :mod:" "`optparse`, y por lo tanto muy similar en el uso." -#: ../Doc/howto/argparse.rst:22 +#: ../Doc/howto/argparse.rst:24 msgid "Concepts" msgstr "Conceptos" -#: ../Doc/howto/argparse.rst:24 +#: ../Doc/howto/argparse.rst:26 msgid "" "Let's show the sort of functionality that we are going to explore in this " "introductory tutorial by making use of the :command:`ls` command:" @@ -66,11 +67,11 @@ msgstr "" "Vamos a mostrar el tipo de funcionalidad que vamos a explorar en este " "tutorial introductorio haciendo uso del comando :command:`ls`:" -#: ../Doc/howto/argparse.rst:46 +#: ../Doc/howto/argparse.rst:48 msgid "A few concepts we can learn from the four commands:" msgstr "Algunos conceptos que podemos aprender de los cuatro comandos:" -#: ../Doc/howto/argparse.rst:48 +#: ../Doc/howto/argparse.rst:50 msgid "" "The :command:`ls` command is useful when run without any options at all. It " "defaults to displaying the contents of the current directory." @@ -78,7 +79,7 @@ msgstr "" "El comando :command:`ls` es útil cuando se ejecuta sin ninguna opción en " "absoluto. Por defecto muestra el contenido del directorio actual." -#: ../Doc/howto/argparse.rst:51 +#: ../Doc/howto/argparse.rst:53 msgid "" "If we want beyond what it provides by default, we tell it a bit more. In " "this case, we want it to display a different directory, ``pypy``. What we " @@ -98,7 +99,7 @@ msgstr "" "cuyo uso mas básico es ``cp SRC DEST``. La primer posición es *lo que " "quieres copiar*, y la segunda posición es *a donde lo quieres copiar*." -#: ../Doc/howto/argparse.rst:60 +#: ../Doc/howto/argparse.rst:62 msgid "" "Now, say we want to change behaviour of the program. In our example, we " "display more info for each file instead of just showing the file names. The " @@ -109,7 +110,7 @@ msgstr "" "solo mostrar los nombres de los archivos. El argumento ``-l`` en ese caso se " "conoce como argumento opcional." -#: ../Doc/howto/argparse.rst:64 +#: ../Doc/howto/argparse.rst:66 msgid "" "That's a snippet of the help text. It's very useful in that you can come " "across a program you have never used before, and can figure out how it works " @@ -119,25 +120,25 @@ msgstr "" "un programa que nunca has usado antes, y puedes darte cuenta de como " "funciona simplemente leyendo el texto de ayuda." -#: ../Doc/howto/argparse.rst:70 +#: ../Doc/howto/argparse.rst:72 msgid "The basics" msgstr "Las bases" -#: ../Doc/howto/argparse.rst:72 +#: ../Doc/howto/argparse.rst:74 msgid "Let us start with a very simple example which does (almost) nothing::" msgstr "Comencemos con un simple ejemplo, el cual no hace (casi) nada::" -#: ../Doc/howto/argparse.rst:78 ../Doc/howto/argparse.rst:186 -#: ../Doc/howto/argparse.rst:207 +#: ../Doc/howto/argparse.rst:80 ../Doc/howto/argparse.rst:188 +#: ../Doc/howto/argparse.rst:209 msgid "Following is a result of running the code:" msgstr "Lo siguiente es el resultado de ejecutar el código:" -#: ../Doc/howto/argparse.rst:95 ../Doc/howto/argparse.rst:252 -#: ../Doc/howto/argparse.rst:296 +#: ../Doc/howto/argparse.rst:97 ../Doc/howto/argparse.rst:254 +#: ../Doc/howto/argparse.rst:298 msgid "Here is what is happening:" msgstr "Esto es lo que está pasando:" -#: ../Doc/howto/argparse.rst:97 +#: ../Doc/howto/argparse.rst:99 msgid "" "Running the script without any options results in nothing displayed to " "stdout. Not so useful." @@ -145,7 +146,7 @@ msgstr "" "Ejecutar el script sin ninguna opción da como resultado que no se muestra " "nada en *stdout*. No es tan útil." -#: ../Doc/howto/argparse.rst:100 +#: ../Doc/howto/argparse.rst:102 msgid "" "The second one starts to display the usefulness of the :mod:`argparse` " "module. We have done almost nothing, but already we get a nice help message." @@ -153,7 +154,7 @@ msgstr "" "El segundo comienza a mostrar la utilidad del módulo :mod:`argparse`. No " "hemos hecho casi nada, pero ya recibimos un buen mensaje de ayuda." -#: ../Doc/howto/argparse.rst:103 +#: ../Doc/howto/argparse.rst:105 msgid "" "The ``--help`` option, which can also be shortened to ``-h``, is the only " "option we get for free (i.e. no need to specify it). Specifying anything " @@ -165,46 +166,49 @@ msgstr "" "Especificar cualquier otra cosa da como resultado un error. Pero aún así, " "recibimos un mensaje útil, también gratis." -#: ../Doc/howto/argparse.rst:110 +#: ../Doc/howto/argparse.rst:112 msgid "Introducing Positional arguments" msgstr "Introducción a los argumentos posicionales" -#: ../Doc/howto/argparse.rst:112 +#: ../Doc/howto/argparse.rst:114 msgid "An example::" msgstr "Un ejemplo::" -#: ../Doc/howto/argparse.rst:120 +#: ../Doc/howto/argparse.rst:122 msgid "And running the code:" msgstr "Y ejecutando el código:" -#: ../Doc/howto/argparse.rst:138 +#: ../Doc/howto/argparse.rst:140 msgid "Here is what's happening:" msgstr "Aquí está lo que está sucediendo:" -#: ../Doc/howto/argparse.rst:140 +#: ../Doc/howto/argparse.rst:142 +#, fuzzy msgid "" -"We've added the :meth:`add_argument` method, which is what we use to specify " -"which command-line options the program is willing to accept. In this case, " -"I've named it ``echo`` so that it's in line with its function." +"We've added the :meth:`~ArgumentParser.add_argument` method, which is what " +"we use to specify which command-line options the program is willing to " +"accept. In this case, I've named it ``echo`` so that it's in line with its " +"function." msgstr "" "Hemos agregado el método :meth:`add_argument`, el cual es el que usamos para " "especificar cuales opciones de la línea de comandos el programa está " "dispuesto a aceptar. En este caso, lo he llamado ``echo`` para que esté " "línea con su función." -#: ../Doc/howto/argparse.rst:144 +#: ../Doc/howto/argparse.rst:146 msgid "Calling our program now requires us to specify an option." msgstr "Llamar nuestro programa ahora requiere que especifiquemos una opción." -#: ../Doc/howto/argparse.rst:146 +#: ../Doc/howto/argparse.rst:148 +#, fuzzy msgid "" -"The :meth:`parse_args` method actually returns some data from the options " -"specified, in this case, ``echo``." +"The :meth:`~ArgumentParser.parse_args` method actually returns some data " +"from the options specified, in this case, ``echo``." msgstr "" "El método :meth:`parse_args` realmente retorna algunos datos de las opciones " "especificadas, en este caso, ``echo``." -#: ../Doc/howto/argparse.rst:149 +#: ../Doc/howto/argparse.rst:151 msgid "" "The variable is some form of 'magic' that :mod:`argparse` performs for free " "(i.e. no need to specify which variable that value is stored in). You will " @@ -216,7 +220,7 @@ msgstr "" "ese valor). También notará que su nombre coincide con el argumento de cadena " "dado al método, ``echo``." -#: ../Doc/howto/argparse.rst:154 +#: ../Doc/howto/argparse.rst:156 msgid "" "Note however that, although the help display looks nice and all, it " "currently is not as helpful as it can be. For example we see that we got " @@ -230,15 +234,15 @@ msgstr "" "de otra manera que no sea adivinar o leer el código fuente. Entonces, vamos " "a hacerlo un poco mas útil::" -#: ../Doc/howto/argparse.rst:165 +#: ../Doc/howto/argparse.rst:167 msgid "And we get:" msgstr "Y la salida:" -#: ../Doc/howto/argparse.rst:178 +#: ../Doc/howto/argparse.rst:180 msgid "Now, how about doing something even more useful::" msgstr "Ahora, que tal si hacemos algo más útil::" -#: ../Doc/howto/argparse.rst:196 +#: ../Doc/howto/argparse.rst:198 msgid "" "That didn't go so well. That's because :mod:`argparse` treats the options we " "give it as strings, unless we tell it otherwise. So, let's tell :mod:" @@ -248,7 +252,7 @@ msgstr "" "le damos como cadenas, a menos que le digamos otra cosa. Entonces, vamos a " "llamar a :mod:`argparse` para tratar esa entrada como un entero::" -#: ../Doc/howto/argparse.rst:217 +#: ../Doc/howto/argparse.rst:219 msgid "" "That went well. The program now even helpfully quits on bad illegal input " "before proceeding." @@ -256,11 +260,11 @@ msgstr "" "Eso fue bien. El programa ahora aún se cierra útilmente en caso de una " "entrada ilegal incorrecta antes de proceder." -#: ../Doc/howto/argparse.rst:222 +#: ../Doc/howto/argparse.rst:224 msgid "Introducing Optional arguments" msgstr "Introducción a los argumentos opcionales" -#: ../Doc/howto/argparse.rst:224 +#: ../Doc/howto/argparse.rst:226 msgid "" "So far we have been playing with positional arguments. Let us have a look on " "how to add optional ones::" @@ -268,12 +272,12 @@ msgstr "" "Hasta ahora hemos estado jugando con argumentos posicionales. Vamos a darle " "una mirada a como agregar los opcionales::" -#: ../Doc/howto/argparse.rst:234 ../Doc/howto/argparse.rst:280 -#: ../Doc/howto/argparse.rst:396 ../Doc/howto/argparse.rst:430 +#: ../Doc/howto/argparse.rst:236 ../Doc/howto/argparse.rst:282 +#: ../Doc/howto/argparse.rst:398 ../Doc/howto/argparse.rst:432 msgid "And the output:" msgstr "Y la salida:" -#: ../Doc/howto/argparse.rst:254 +#: ../Doc/howto/argparse.rst:256 msgid "" "The program is written so as to display something when ``--verbosity`` is " "specified and display nothing when not." @@ -281,11 +285,12 @@ msgstr "" "El programa está escrito para mostrar algo cuando ``--verbosity`` sea " "especificado y no mostrar nada cuando no." -#: ../Doc/howto/argparse.rst:257 +#: ../Doc/howto/argparse.rst:259 +#, fuzzy msgid "" "To show that the option is actually optional, there is no error when running " "the program without it. Note that by default, if an optional argument isn't " -"used, the relevant variable, in this case :attr:`args.verbosity`, is given " +"used, the relevant variable, in this case ``args.verbosity``, is given " "``None`` as a value, which is the reason it fails the truth test of the :" "keyword:`if` statement." msgstr "" @@ -295,11 +300,11 @@ msgstr "" "`args.verbosity`, se le da ``None`` como valor, razón por la cual falla la " "prueba de verdad de la declaración :keyword:`if`." -#: ../Doc/howto/argparse.rst:263 +#: ../Doc/howto/argparse.rst:265 msgid "The help message is a bit different." msgstr "El mensaje de ayuda es un poco diferente." -#: ../Doc/howto/argparse.rst:265 +#: ../Doc/howto/argparse.rst:267 msgid "" "When using the ``--verbosity`` option, one must also specify some value, any " "value." @@ -307,7 +312,7 @@ msgstr "" "Cuando usamos la opción ``--verbosity``, también se debe especificar un " "valor, cualquier valor." -#: ../Doc/howto/argparse.rst:268 +#: ../Doc/howto/argparse.rst:270 msgid "" "The above example accepts arbitrary integer values for ``--verbosity``, but " "for our simple program, only two values are actually useful, ``True`` or " @@ -318,13 +323,14 @@ msgstr "" "realmente útiles, ``True`` o ``False``. Modifiquemos el código de acuerdo a " "esto::" -#: ../Doc/howto/argparse.rst:298 +#: ../Doc/howto/argparse.rst:300 +#, fuzzy msgid "" "The option is now more of a flag than something that requires a value. We " "even changed the name of the option to match that idea. Note that we now " "specify a new keyword, ``action``, and give it the value ``\"store_true\"``. " -"This means that, if the option is specified, assign the value ``True`` to :" -"data:`args.verbose`. Not specifying it implies ``False``." +"This means that, if the option is specified, assign the value ``True`` to " +"``args.verbose``. Not specifying it implies ``False``." msgstr "" "La opción ahora es más una bandera que algo que requiere un valor. Incluso " "cambiamos el nombre de la opción para que coincida con esa idea. Tenga en " @@ -333,7 +339,7 @@ msgstr "" "especificada, se asigna el valor ``True`` a :data:`args.verbose`. No " "especificarlo implica ``False``." -#: ../Doc/howto/argparse.rst:305 +#: ../Doc/howto/argparse.rst:307 msgid "" "It complains when you specify a value, in true spirit of what flags actually " "are." @@ -341,15 +347,15 @@ msgstr "" "Se queja cuando se especifica un valor, en verdadero espíritu de lo que " "realmente son los flags." -#: ../Doc/howto/argparse.rst:308 +#: ../Doc/howto/argparse.rst:310 msgid "Notice the different help text." msgstr "Observe los diferentes textos de ayuda." -#: ../Doc/howto/argparse.rst:312 +#: ../Doc/howto/argparse.rst:314 msgid "Short options" msgstr "Opciones cortas" -#: ../Doc/howto/argparse.rst:314 +#: ../Doc/howto/argparse.rst:316 msgid "" "If you are familiar with command line usage, you will notice that I haven't " "yet touched on the topic of short versions of the options. It's quite " @@ -359,37 +365,37 @@ msgstr "" "que aún no he tocado el tema de las versiones cortas de las opciones. Es " "bastante simple::" -#: ../Doc/howto/argparse.rst:326 +#: ../Doc/howto/argparse.rst:328 msgid "And here goes:" msgstr "Y aquí va:" -#: ../Doc/howto/argparse.rst:339 +#: ../Doc/howto/argparse.rst:341 msgid "Note that the new ability is also reflected in the help text." msgstr "" "Tenga en cuenta que la nueva habilidad es también reflejada en el texto de " "ayuda." -#: ../Doc/howto/argparse.rst:343 +#: ../Doc/howto/argparse.rst:345 msgid "Combining Positional and Optional arguments" msgstr "Combinar argumentos opcionales y posicionales" -#: ../Doc/howto/argparse.rst:345 +#: ../Doc/howto/argparse.rst:347 msgid "Our program keeps growing in complexity::" msgstr "Nuestro programa sigue creciendo en complejidad::" -#: ../Doc/howto/argparse.rst:360 +#: ../Doc/howto/argparse.rst:362 msgid "And now the output:" msgstr "Y ahora la salida:" -#: ../Doc/howto/argparse.rst:374 +#: ../Doc/howto/argparse.rst:376 msgid "We've brought back a positional argument, hence the complaint." msgstr "Hemos traído de vuelta un argumento posicional, de ahí la queja." -#: ../Doc/howto/argparse.rst:376 +#: ../Doc/howto/argparse.rst:378 msgid "Note that the order does not matter." msgstr "Tenga en cuenta que el orden no importa." -#: ../Doc/howto/argparse.rst:378 +#: ../Doc/howto/argparse.rst:380 msgid "" "How about we give this program of ours back the ability to have multiple " "verbosity values, and actually get to use them::" @@ -397,7 +403,7 @@ msgstr "" "Que tal si le retornamos a nuestro programa la capacidad de tener múltiples " "valores de verbosidad, y realmente usarlos::" -#: ../Doc/howto/argparse.rst:412 +#: ../Doc/howto/argparse.rst:414 msgid "" "These all look good except the last one, which exposes a bug in our program. " "Let's fix it by restricting the values the ``--verbosity`` option can " @@ -407,7 +413,7 @@ msgstr "" "programa. Corrijamos esto restringiendo los valores que la opción ``--" "verbosity`` puede aceptar::" -#: ../Doc/howto/argparse.rst:448 +#: ../Doc/howto/argparse.rst:450 msgid "" "Note that the change also reflects both in the error message as well as the " "help string." @@ -415,7 +421,7 @@ msgstr "" "Tenga en cuenta que el cambio se refleja tanto en el mensaje de error como " "en la cadena de ayuda." -#: ../Doc/howto/argparse.rst:451 +#: ../Doc/howto/argparse.rst:453 msgid "" "Now, let's use a different approach of playing with verbosity, which is " "pretty common. It also matches the way the CPython executable handles its " @@ -426,7 +432,7 @@ msgstr "" "CPython maneja su propio argumento de verbosidad (verifique el resultado de " "``python --help``)::" -#: ../Doc/howto/argparse.rst:470 +#: ../Doc/howto/argparse.rst:472 msgid "" "We have introduced another action, \"count\", to count the number of " "occurrences of specific options." @@ -434,7 +440,7 @@ msgstr "" "Hemos introducido otra acción, \"count\", para contar el número de " "apariciones de opciones específicas." -#: ../Doc/howto/argparse.rst:499 +#: ../Doc/howto/argparse.rst:501 msgid "" "Yes, it's now more of a flag (similar to ``action=\"store_true\"``) in the " "previous version of our script. That should explain the complaint." @@ -442,11 +448,11 @@ msgstr "" "Si, ahora es mas una bandera (similar a ``action=\"store_true\"``) en la " "versión anterior de nuestro script. Esto debería explicar la queja." -#: ../Doc/howto/argparse.rst:502 +#: ../Doc/howto/argparse.rst:504 msgid "It also behaves similar to \"store_true\" action." msgstr "También se comporta de manera similar a la acción ``\"store_true\"``." -#: ../Doc/howto/argparse.rst:504 +#: ../Doc/howto/argparse.rst:506 msgid "" "Now here's a demonstration of what the \"count\" action gives. You've " "probably seen this sort of usage before." @@ -454,7 +460,7 @@ msgstr "" "Ahora aquí una demostración de lo que la acción ``\"count\"`` da. " "Probablemente haya visto esta clase de uso antes." -#: ../Doc/howto/argparse.rst:507 +#: ../Doc/howto/argparse.rst:509 msgid "" "And if you don't specify the ``-v`` flag, that flag is considered to have " "``None`` value." @@ -462,7 +468,7 @@ msgstr "" "Y si no especificas la bandera ``-v``, se considera que esa bandera tiene el " "valor ``None``." -#: ../Doc/howto/argparse.rst:510 +#: ../Doc/howto/argparse.rst:512 msgid "" "As should be expected, specifying the long form of the flag, we should get " "the same output." @@ -470,7 +476,7 @@ msgstr "" "Como debería esperarse, especificando la forma larga de la bandera, " "obtendríamos el mismo resultado." -#: ../Doc/howto/argparse.rst:513 +#: ../Doc/howto/argparse.rst:515 msgid "" "Sadly, our help output isn't very informative on the new ability our script " "has acquired, but that can always be fixed by improving the documentation " @@ -481,19 +487,19 @@ msgstr "" "solucionar mejorando la documentación de nuestro script (por ejemplo, a " "través del argumento de la palabra clave ``help``)." -#: ../Doc/howto/argparse.rst:517 +#: ../Doc/howto/argparse.rst:519 msgid "That last output exposes a bug in our program." msgstr "La última salida expone un error en nuestro programa." -#: ../Doc/howto/argparse.rst:520 +#: ../Doc/howto/argparse.rst:522 msgid "Let's fix::" msgstr "Vamos a arreglarlo::" -#: ../Doc/howto/argparse.rst:539 +#: ../Doc/howto/argparse.rst:541 msgid "And this is what it gives:" msgstr "Y esto es lo que da:" -#: ../Doc/howto/argparse.rst:554 +#: ../Doc/howto/argparse.rst:556 msgid "" "First output went well, and fixes the bug we had before. That is, we want " "any value >= 2 to be as verbose as possible." @@ -501,15 +507,15 @@ msgstr "" "La primer salida fue correcta, y corrigió el error que teníamos antes. Es " "decir, queremos que cualquier valor >= 2 sea lo más detallado posible." -#: ../Doc/howto/argparse.rst:557 +#: ../Doc/howto/argparse.rst:559 msgid "Third output not so good." msgstr "Tercer salida no tan buena." -#: ../Doc/howto/argparse.rst:559 +#: ../Doc/howto/argparse.rst:561 msgid "Let's fix that bug::" msgstr "Vamos a arreglar ese error::" -#: ../Doc/howto/argparse.rst:576 +#: ../Doc/howto/argparse.rst:578 msgid "" "We've just introduced yet another keyword, ``default``. We've set it to " "``0`` in order to make it comparable to the other int values. Remember that " @@ -523,11 +529,11 @@ msgstr "" "``None``, y eso no puede ser comparado con un valor int (de ahí la " "excepción :exc:`TypeError`)." -#: ../Doc/howto/argparse.rst:583 +#: ../Doc/howto/argparse.rst:585 msgid "And:" msgstr "Y:" -#: ../Doc/howto/argparse.rst:590 +#: ../Doc/howto/argparse.rst:592 msgid "" "You can go quite far just with what we've learned so far, and we have only " "scratched the surface. The :mod:`argparse` module is very powerful, and " @@ -537,11 +543,11 @@ msgstr "" "solo arañado la superficie. El módulo :mod:`argparse` es muy poderoso, y " "exploraremos un poco mas antes de finalizar este tutorial." -#: ../Doc/howto/argparse.rst:597 +#: ../Doc/howto/argparse.rst:599 msgid "Getting a little more advanced" msgstr "Un poco mas avanzado" -#: ../Doc/howto/argparse.rst:599 +#: ../Doc/howto/argparse.rst:601 msgid "" "What if we wanted to expand our tiny program to perform other powers, not " "just squares::" @@ -549,11 +555,11 @@ msgstr "" "Qué pasaría si quisiéramos expandir nuestro pequeño programa para que tenga " "otros poderes, no solo cuadrados::" -#: ../Doc/howto/argparse.rst:616 ../Doc/howto/argparse.rst:654 +#: ../Doc/howto/argparse.rst:618 ../Doc/howto/argparse.rst:656 msgid "Output:" msgstr "Salida:" -#: ../Doc/howto/argparse.rst:637 +#: ../Doc/howto/argparse.rst:639 msgid "" "Notice that so far we've been using verbosity level to *change* the text " "that gets displayed. The following example instead uses verbosity level to " @@ -563,18 +569,30 @@ msgstr "" "para *cambiar* el texto que se muestra. El siguiente ejemplo en lugar de " "usar nivel de verbosidad para mostrar *mas* texto en su lugar::" -#: ../Doc/howto/argparse.rst:668 +#: ../Doc/howto/argparse.rst:672 +msgid "Specifying ambiguous arguments" +msgstr "" + +#: ../Doc/howto/argparse.rst:674 +msgid "" +"When there is ambiguity in deciding whether an argument is positional or for " +"an argument, ``--`` can be used to tell :meth:`~ArgumentParser.parse_args` " +"that everything after that is a positional argument::" +msgstr "" + +#: ../Doc/howto/argparse.rst:699 msgid "Conflicting options" msgstr "Opciones conflictivas" -#: ../Doc/howto/argparse.rst:670 +#: ../Doc/howto/argparse.rst:701 +#, fuzzy msgid "" "So far, we have been working with two methods of an :class:`argparse." "ArgumentParser` instance. Let's introduce a third one, :meth:" -"`add_mutually_exclusive_group`. It allows for us to specify options that " -"conflict with each other. Let's also change the rest of the program so that " -"the new functionality makes more sense: we'll introduce the ``--quiet`` " -"option, which will be the opposite of the ``--verbose`` one::" +"`~ArgumentParser.add_mutually_exclusive_group`. It allows for us to specify " +"options that conflict with each other. Let's also change the rest of the " +"program so that the new functionality makes more sense: we'll introduce the " +"``--quiet`` option, which will be the opposite of the ``--verbose`` one::" msgstr "" "Hasta ahora, hemos estado trabajando con dos métodos de una instancia de :" "class:`argparse.ArgumentParser`. Vamos a introducir un tercer método, :meth:" @@ -583,7 +601,7 @@ msgstr "" "nueva funcionalidad tenga mas sentido: presentaremos la opción ``--quiet``, " "la cual es lo opuesto a la opción ``--verbose``::" -#: ../Doc/howto/argparse.rst:696 +#: ../Doc/howto/argparse.rst:727 msgid "" "Our program is now simpler, and we've lost some functionality for the sake " "of demonstration. Anyways, here's the output:" @@ -591,7 +609,7 @@ msgstr "" "Nuestro programa ahora es mas simple, y perdimos algunas funcionalidades en " "aras de la demostración. De todos modos, aquí esta el resultado:" -#: ../Doc/howto/argparse.rst:714 +#: ../Doc/howto/argparse.rst:745 msgid "" "That should be easy to follow. I've added that last output so you can see " "the sort of flexibility you get, i.e. mixing long form options with short " @@ -601,7 +619,7 @@ msgstr "" "se pueda ver el tipo de flexibilidad que obtiene, es decir, mezclar opciones " "de forma larga con opciones de forma corta." -#: ../Doc/howto/argparse.rst:718 +#: ../Doc/howto/argparse.rst:749 msgid "" "Before we conclude, you probably want to tell your users the main purpose of " "your program, just in case they don't know::" @@ -609,7 +627,7 @@ msgstr "" "Antes de concluir, probablemente quiera contarle a sus usuarios el propósito " "principal de su programa, solo en caso de que no lo supieran::" -#: ../Doc/howto/argparse.rst:739 +#: ../Doc/howto/argparse.rst:770 msgid "" "Note that slight difference in the usage text. Note the ``[-v | -q]``, which " "tells us that we can either use ``-v`` or ``-q``, but not both at the same " @@ -619,11 +637,66 @@ msgstr "" "``[-v | -q]``, lo cual nos indica que podemos usar ``-v`` o ``-q``, pero no " "ambos al mismo tiempo:" -#: ../Doc/howto/argparse.rst:761 +#: ../Doc/howto/argparse.rst:792 +msgid "How to translate the argparse output" +msgstr "" + +#: ../Doc/howto/argparse.rst:794 +msgid "" +"The output of the :mod:`argparse` module such as its help text and error " +"messages are all made translatable using the :mod:`gettext` module. This " +"allows applications to easily localize messages produced by :mod:`argparse`. " +"See also :ref:`i18n-howto`." +msgstr "" + +#: ../Doc/howto/argparse.rst:799 +msgid "For instance, in this :mod:`argparse` output:" +msgstr "" + +#: ../Doc/howto/argparse.rst:817 +msgid "" +"The strings ``usage:``, ``positional arguments:``, ``options:`` and ``show " +"this help message and exit`` are all translatable." +msgstr "" + +#: ../Doc/howto/argparse.rst:820 +msgid "" +"In order to translate these strings, they must first be extracted into a ``." +"po`` file. For example, using `Babel `__, run this " +"command:" +msgstr "" + +#: ../Doc/howto/argparse.rst:828 +msgid "" +"This command will extract all translatable strings from the :mod:`argparse` " +"module and output them into a file named ``messages.po``. This command " +"assumes that your Python installation is in ``/usr/lib``." +msgstr "" + +#: ../Doc/howto/argparse.rst:832 +msgid "" +"You can find out the location of the :mod:`argparse` module on your system " +"using this script::" +msgstr "" + +#: ../Doc/howto/argparse.rst:838 +msgid "" +"Once the messages in the ``.po`` file are translated and the translations " +"are installed using :mod:`gettext`, :mod:`argparse` will be able to display " +"the translated messages." +msgstr "" + +#: ../Doc/howto/argparse.rst:842 +msgid "" +"To translate your own strings in the :mod:`argparse` output, use :mod:" +"`gettext`." +msgstr "" + +#: ../Doc/howto/argparse.rst:845 msgid "Conclusion" msgstr "Conclusión" -#: ../Doc/howto/argparse.rst:763 +#: ../Doc/howto/argparse.rst:847 msgid "" "The :mod:`argparse` module offers a lot more than shown here. Its docs are " "quite detailed and thorough, and full of examples. Having gone through this " @@ -633,3 +706,6 @@ msgstr "" "documentación es bastante detallada y completa, y está llena de ejemplos. " "Habiendo seguido este tutorial, debe digerirlos fácilmente sin sentirse " "abrumado." + +#~ msgid "Tshepang Lekhonkhobe" +#~ msgstr "Tshepang Lekhonkhobe" diff --git a/howto/clinic.po b/howto/clinic.po index c4c2f6bbc2..df3b6ac677 100644 --- a/howto/clinic.po +++ b/howto/clinic.po @@ -10,19 +10,18 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-04-11 17:45-0400\n" "Last-Translator: Francisco Mora \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" -#: ../Doc/howto/clinic.rst:5 +#: ../Doc/howto/clinic.rst:7 msgid "Argument Clinic How-To" msgstr "Argument Clinic Cómo Hacerlo" @@ -30,36 +29,59 @@ msgstr "Argument Clinic Cómo Hacerlo" msgid "author" msgstr "autor" -#: ../Doc/howto/clinic.rst:7 +#: ../Doc/howto/clinic.rst:9 msgid "Larry Hastings" msgstr "Larry Hastings" +#: ../Doc/howto/clinic.rst:11 +msgid "**Source code:** :source:`Tools/clinic/clinic.py`." +msgstr "" + +#: ../Doc/howto/clinic.rst:7 msgid "Abstract" msgstr "Resumen" -#: ../Doc/howto/clinic.rst:12 +#: ../Doc/howto/clinic.rst:15 +msgid "" +"Argument Clinic is a preprocessor for CPython C files. It was introduced in " +"Python 3.4 with :pep:`436`, in order to provide introspection signatures, " +"and to generate performant and tailor-made boilerplate code for argument " +"parsing in CPython builtins, module level functions, and class methods. This " +"document is divided in four major sections:" +msgstr "" + +#: ../Doc/howto/clinic.rst:23 msgid "" -"Argument Clinic is a preprocessor for CPython C files. Its purpose is to " -"automate all the boilerplate involved with writing argument parsing code for " -"\"builtins\". This document shows you how to convert your first C function " -"to work with Argument Clinic, and then introduces some advanced topics on " -"Argument Clinic usage." +":ref:`clinic-background` talks about the basic concepts and goals of " +"Argument Clinic." msgstr "" -"Argument Clinic es un preprocesador para archivos CPython C. Su propósito es " -"automatizar todo el texto estándar involucrado con la escritura de código de " -"análisis de argumentos para \"incorporados\". Este documento le muestra cómo " -"convertir su primera función C para que funcione con Argument Clinic y luego " -"presenta algunos temas avanzados sobre el uso de Argument Clinic." -#: ../Doc/howto/clinic.rst:19 +#: ../Doc/howto/clinic.rst:25 msgid "" -"Currently Argument Clinic is considered internal-only for CPython. Its use " -"is not supported for files outside CPython, and no guarantees are made " -"regarding backwards compatibility for future versions. In other words: if " -"you maintain an external C extension for CPython, you're welcome to " -"experiment with Argument Clinic in your own code. But the version of " -"Argument Clinic that ships with the next version of CPython *could* be " -"totally incompatible and break all your code." +":ref:`clinic-reference` describes the command-line interface and Argument " +"Clinic terminology." +msgstr "" + +#: ../Doc/howto/clinic.rst:27 +msgid "" +":ref:`clinic-tutorial` guides you through all the steps required to adapt an " +"existing C function to Argument Clinic." +msgstr "" + +#: ../Doc/howto/clinic.rst:29 +msgid ":ref:`clinic-howtos` details how to handle specific tasks." +msgstr "" + +#: ../Doc/howto/clinic.rst:34 +#, fuzzy +msgid "" +"Argument Clinic is considered internal-only for CPython. Its use is not " +"supported for files outside CPython, and no guarantees are made regarding " +"backwards compatibility for future versions. In other words: if you " +"maintain an external C extension for CPython, you're welcome to experiment " +"with Argument Clinic in your own code. But the version of Argument Clinic " +"that ships with the next version of CPython *could* be totally incompatible " +"and break all your code." msgstr "" "Actualmente, Argument Clinic se considera solo interno para CPython. Su uso " "no es compatible con archivos fuera de CPython y no se ofrecen garantías con " @@ -69,235 +91,297 @@ msgstr "" "se envía con la próxima versión de CPython *podría* ser totalmente " "incompatible y romper todo su código." -#: ../Doc/howto/clinic.rst:29 -msgid "The Goals Of Argument Clinic" -msgstr "Los objetivos del Argument Clinic" +#: ../Doc/howto/clinic.rst:47 +msgid "Background" +msgstr "" -#: ../Doc/howto/clinic.rst:31 -msgid "" -"Argument Clinic's primary goal is to take over responsibility for all " -"argument parsing code inside CPython. This means that, when you convert a " -"function to work with Argument Clinic, that function should no longer do any " -"of its own argument parsing—the code generated by Argument Clinic should be " -"a \"black box\" to you, where CPython calls in at the top, and your code " -"gets called at the bottom, with ``PyObject *args`` (and maybe ``PyObject " -"*kwargs``) magically converted into the C variables and types you need." -msgstr "" -"El objetivo principal de Argument Clinic es asumir la responsabilidad de " -"todo el código de análisis de argumentos dentro de CPython. Esto significa " -"que, cuando convierte una función para que funcione con Argument Clinic, esa " -"función ya no debería realizar ninguno de sus propios análisis de " -"argumentos; el código generado por Argument Clinic debería ser una \"caja " -"negra\" para usted, donde CPython llama al top, y su código se llama en la " -"parte inferior, con ``PyObject *args`` (y tal vez ``PyObject *kwargs``) " -"convertido mágicamente en las variables y tipos C que necesita." - -#: ../Doc/howto/clinic.rst:41 -msgid "" -"In order for Argument Clinic to accomplish its primary goal, it must be easy " -"to use. Currently, working with CPython's argument parsing library is a " -"chore, requiring maintaining redundant information in a surprising number of " -"places. When you use Argument Clinic, you don't have to repeat yourself." -msgstr "" -"Para que Argument Clinic logre su objetivo principal, debe ser fácil de " -"usar. Actualmente, trabajar con la biblioteca de análisis de argumentos de " -"CPython es una tarea ardua que requiere mantener información redundante en " -"un número sorprendente de lugares. Cuando usa Argument Clinic, no tiene que " -"repetirse." +#: ../Doc/howto/clinic.rst:50 +#, fuzzy +msgid "Basic concepts" +msgstr "Conceptos básicos y uso" -#: ../Doc/howto/clinic.rst:47 +#: ../Doc/howto/clinic.rst:52 msgid "" -"Obviously, no one would want to use Argument Clinic unless it's solving " -"their problem—and without creating new problems of its own. So it's " -"paramount that Argument Clinic generate correct code. It'd be nice if the " -"code was faster, too, but at the very least it should not introduce a major " -"speed regression. (Eventually Argument Clinic *should* make a major speedup " -"possible—we could rewrite its code generator to produce tailor-made argument " -"parsing code, rather than calling the general-purpose CPython argument " -"parsing library. That would make for the fastest argument parsing possible!)" +"When Argument Clinic is run on a file, either via the :ref:`clinic-cli` or " +"via ``make clinic``, it will scan over the input files looking for :term:" +"`start lines `:" msgstr "" -"Obviamente, si Argument Clinic no produjo ningún resultado, es porque " -"encontró un error en su entrada. Siga corrigiendo sus errores y vuelva a " -"intentarlo hasta que Argument Clinic procese su archivo sin quejas." -#: ../Doc/howto/clinic.rst:59 +#: ../Doc/howto/clinic.rst:60 +#, fuzzy +msgid "When it finds one, it reads everything up to the :term:`end line`:" +msgstr "" +"Cuando encuentra uno, lee todo hasta una línea que se ve exactamente así:" + +#: ../Doc/howto/clinic.rst:66 msgid "" -"Additionally, Argument Clinic must be flexible enough to work with any " -"approach to argument parsing. Python has some functions with some very " -"strange parsing behaviors; Argument Clinic's goal is to support all of them." +"Everything in between these two lines is Argument Clinic :term:`input`. When " +"Argument Clinic parses input, it generates :term:`output`. The output is " +"rewritten into the C file immediately after the input, followed by a :term:" +"`checksum line`. All of these lines, including the :term:`start line` and :" +"term:`checksum line`, are collectively called an Argument Clinic :term:" +"`block`:" msgstr "" -"Además, Argument Clinic debe ser lo suficientemente flexible como para " -"trabajar con cualquier enfoque de análisis de argumentos. Python tiene " -"algunas funciones con algunos comportamientos de análisis muy extraños; el " -"objetivo de Argument Clinic es apoyarlos a todos." -#: ../Doc/howto/clinic.rst:64 +#: ../Doc/howto/clinic.rst:81 +#, fuzzy msgid "" -"Finally, the original motivation for Argument Clinic was to provide " -"introspection \"signatures\" for CPython builtins. It used to be, the " -"introspection query functions would throw an exception if you passed in a " -"builtin. With Argument Clinic, that's a thing of the past!" +"If you run Argument Clinic on the same file a second time, Argument Clinic " +"will discard the old :term:`output` and write out the new output with a " +"fresh :term:`checksum line`. If the :term:`input` hasn't changed, the output " +"won't change either." msgstr "" -"Finalmente, la motivación original de Argument Clinic era proporcionar " -"\"firmas\" de introspección para las incorporaciones de CPython. Solía ser, " -"las funciones de consulta de introspección lanzarían una excepción si pasaba " -"un archivo incorporado. ¡Con Argument Clinic, eso es cosa del pasado!" +"Si ejecuta Argument Clinic en el mismo archivo por segunda vez, Argument " +"Clinic descartará la salida anterior y escribirá la nueva salida con una " +"nueva línea de suma de comprobación. Sin embargo, si la entrada no ha " +"cambiado, la salida tampoco cambiará." -#: ../Doc/howto/clinic.rst:70 +#: ../Doc/howto/clinic.rst:88 msgid "" -"One idea you should keep in mind, as you work with Argument Clinic: the more " -"information you give it, the better job it'll be able to do. Argument Clinic " -"is admittedly relatively simple right now. But as it evolves it will get " -"more sophisticated, and it should be able to do many interesting and smart " -"things with all the information you give it." +"You should never modify the output of an Argument Clinic block, as any " +"change will be lost in future Argument Clinic runs; Argument Clinic will " +"detect an output checksum mismatch and regenerate the correct output. If you " +"are not happy with the generated output, you should instead change the input " +"until it produces the output you want." msgstr "" -"Una idea que debe tener en cuenta al trabajar con Argument Clinic: cuanta " -"más información le dé, mejor será su trabajo. Argument Clinic es ciertamente " -"relativamente simple en este momento. Pero a medida que evolucione, se " -"volverá más sofisticado y debería poder hacer muchas cosas interesantes e " -"inteligentes con toda la información que le proporcione." -#: ../Doc/howto/clinic.rst:80 -msgid "Basic Concepts And Usage" -msgstr "Conceptos básicos y uso" +#: ../Doc/howto/clinic.rst:99 +#, fuzzy +msgid "Reference" +msgstr "``impl_by_reference``" + +#: ../Doc/howto/clinic.rst:105 +msgid "Terminology" +msgstr "" + +#: ../Doc/howto/clinic.rst:108 +msgid "start line" +msgstr "" -#: ../Doc/howto/clinic.rst:82 +#: ../Doc/howto/clinic.rst:110 msgid "" -"Argument Clinic ships with CPython; you'll find it in ``Tools/clinic/clinic." -"py``. If you run that script, specifying a C file as an argument:" +"The line ``/*[clinic input]``. This line marks the beginning of Argument " +"Clinic input. Note that the *start line* opens a C block comment." msgstr "" -"Argument Clinic se envía con CPython; lo encontrará en ``Tools/clinic/clinic." -"py``. Si ejecuta ese script, especificando un archivo C como argumento:" -#: ../Doc/howto/clinic.rst:89 +#: ../Doc/howto/clinic.rst:113 +msgid "end line" +msgstr "" + +#: ../Doc/howto/clinic.rst:115 msgid "" -"Argument Clinic will scan over the file looking for lines that look exactly " -"like this:" +"The line ``[clinic start generated code]*/``. The *end line* marks the _end_ " +"of Argument Clinic :term:`input`, but at the same time marks the _start_ of " +"Argument Clinic :term:`output`, thus the text *\"clinic start start " +"generated code\"* Note that the *end line* closes the C block comment opened " +"by the *start line*." +msgstr "" + +#: ../Doc/howto/clinic.rst:121 +msgid "checksum" msgstr "" -"Argument Clinic escaneará el archivo buscando líneas que se vean exactamente " -"así:" -#: ../Doc/howto/clinic.rst:96 +#: ../Doc/howto/clinic.rst:123 msgid "" -"When it finds one, it reads everything up to a line that looks exactly like " -"this:" +"A hash to distinguish unique :term:`inputs ` and :term:`outputs " +"`." +msgstr "" + +#: ../Doc/howto/clinic.rst:125 +msgid "checksum line" msgstr "" -"Cuando encuentra uno, lee todo hasta una línea que se ve exactamente así:" -#: ../Doc/howto/clinic.rst:103 +#: ../Doc/howto/clinic.rst:127 msgid "" -"Everything in between these two lines is input for Argument Clinic. All of " -"these lines, including the beginning and ending comment lines, are " -"collectively called an Argument Clinic \"block\"." +"A line that looks like ``/*[clinic end generated code: ...]*/``. The three " +"dots will be replaced by a :term:`checksum` generated from the :term:" +"`input`, and a :term:`checksum` generated from the :term:`output`. The " +"checksum line marks the end of Argument Clinic generated code, and is used " +"by Argument Clinic to determine if it needs to regenerate output." msgstr "" -"Todo lo que se encuentra entre estas dos líneas es entrada para Argument " -"Clinic. Todas estas líneas, incluidas las líneas de comentarios iniciales y " -"finales, se denominan colectivamente un \"bloque\" de Argument Clinic." -#: ../Doc/howto/clinic.rst:107 +#: ../Doc/howto/clinic.rst:133 +msgid "input" +msgstr "" + +#: ../Doc/howto/clinic.rst:135 +msgid "" +"The text between the :term:`start line` and the :term:`end line`. Note that " +"the start and end lines open and close a C block comment; the *input* is " +"thus a part of that same C block comment." +msgstr "" + +#: ../Doc/howto/clinic.rst:138 +msgid "output" +msgstr "" + +#: ../Doc/howto/clinic.rst:140 +#, fuzzy +msgid "The text between the :term:`end line` and the :term:`checksum line`." +msgstr "" +"Entre la línea final y la línea de suma de comprobación se encuentra la " +"*output*." + +#: ../Doc/howto/clinic.rst:141 +#, fuzzy +msgid "block" +msgstr "``block``" + +#: ../Doc/howto/clinic.rst:143 msgid "" -"When Argument Clinic parses one of these blocks, it generates output. This " -"output is rewritten into the C file immediately after the block, followed by " -"a comment containing a checksum. The Argument Clinic block now looks like " -"this:" +"All text from the :term:`start line` to the :term:`checksum line` " +"inclusively." +msgstr "" + +#: ../Doc/howto/clinic.rst:149 +msgid "Command-line interface" msgstr "" -"Cuando Argument Clinic analiza uno de estos bloques, genera una salida. Esta " -"salida se reescribe en el archivo C inmediatamente después del bloque, " -"seguida de un comentario que contiene una suma de comprobación. El bloque " -"Argument Clinic ahora tiene este aspecto:" -#: ../Doc/howto/clinic.rst:120 +#: ../Doc/howto/clinic.rst:151 msgid "" -"If you run Argument Clinic on the same file a second time, Argument Clinic " -"will discard the old output and write out the new output with a fresh " -"checksum line. However, if the input hasn't changed, the output won't " -"change either." +"The Argument Clinic :abbr:`CLI (Command-Line Interface)` is typically used " +"to process a single source file, like this:" +msgstr "" + +#: ../Doc/howto/clinic.rst:158 +msgid "The CLI supports the following options:" +msgstr "" + +#: ../Doc/howto/clinic.rst:165 +msgid "Print CLI usage." +msgstr "" + +#: ../Doc/howto/clinic.rst:169 +msgid "Force output regeneration." +msgstr "" + +#: ../Doc/howto/clinic.rst:173 +msgid "Redirect file output to OUTPUT" +msgstr "" + +#: ../Doc/howto/clinic.rst:177 +msgid "Enable verbose mode." +msgstr "" + +#: ../Doc/howto/clinic.rst:181 +msgid "Print a list of all supported converters and return converters." +msgstr "" + +#: ../Doc/howto/clinic.rst:185 +msgid "Walk :option:`--srcdir` to run over all relevant files." +msgstr "" + +#: ../Doc/howto/clinic.rst:189 +msgid "The directory tree to walk in :option:`--make` mode." msgstr "" -"Si ejecuta Argument Clinic en el mismo archivo por segunda vez, Argument " -"Clinic descartará la salida anterior y escribirá la nueva salida con una " -"nueva línea de suma de comprobación. Sin embargo, si la entrada no ha " -"cambiado, la salida tampoco cambiará." -#: ../Doc/howto/clinic.rst:124 +#: ../Doc/howto/clinic.rst:193 +msgid "The list of files to process." +msgstr "" + +#: ../Doc/howto/clinic.rst:199 +#, fuzzy +msgid "Classes for extending Argument Clinic" +msgstr "Los objetivos del Argument Clinic" + +#: ../Doc/howto/clinic.rst:205 msgid "" -"You should never modify the output portion of an Argument Clinic block. " -"Instead, change the input until it produces the output you want. (That's " -"the purpose of the checksum—to detect if someone changed the output, as " -"these edits would be lost the next time Argument Clinic writes out fresh " -"output.)" +"The base class for all converters. See :ref:`clinic-howto-custom-converter` " +"for how to subclass this class." msgstr "" -"Nunca debe modificar la parte de salida de un bloque de Argument Clinic. En " -"su lugar, cambie la entrada hasta que produzca la salida que desea. (Ese es " -"el propósito de la suma de comprobación: detectar si alguien cambió la " -"salida, ya que estas ediciones se perderían la próxima vez que Argument " -"Clinic escriba una salida nueva)." -#: ../Doc/howto/clinic.rst:129 +#: ../Doc/howto/clinic.rst:210 +#, fuzzy msgid "" -"For the sake of clarity, here's the terminology we'll use with Argument " -"Clinic:" +"The C type to use for this variable. :attr:`!type` should be a Python string " +"specifying the type, e.g. ``'int'``. If this is a pointer type, the type " +"string should end with ``' *'``." +msgstr "" +"El tipo C que se utilizará para esta variable. ``type`` debe ser una cadena " +"de Python que especifique el tipo, por ejemplo ``int``. Si se trata de un " +"tipo de puntero, la cadena de tipo debe terminar con ``'*'``." + +#: ../Doc/howto/clinic.rst:217 +msgid "" +"The Python default value for this parameter, as a Python value. Or the magic " +"value ``unspecified`` if there is no default." msgstr "" -"En aras de la claridad, esta es la terminología que usaremos con Argument " -"Clinic:" +"El valor predeterminado de Python para este parámetro, como un valor de " +"Python. O el valor mágico ``unspecified`` si no hay ningún valor " +"predeterminado." -#: ../Doc/howto/clinic.rst:131 +#: ../Doc/howto/clinic.rst:222 +#, fuzzy msgid "" -"The first line of the comment (``/*[clinic input]``) is the *start line*." +":attr:`!default` as it should appear in Python code, as a string. Or " +"``None`` if there is no default." msgstr "" -"La primera línea del comentario (``/*[clinic input]``) es la *línea de " -"inicio*." +"``default`` como debería aparecer en el código Python, como una cadena. O " +"``None`` si no hay un valor predeterminado." -#: ../Doc/howto/clinic.rst:132 +#: ../Doc/howto/clinic.rst:228 +#, fuzzy msgid "" -"The last line of the initial comment (``[clinic start generated code]*/``) " -"is the *end line*." +":attr:`!default` as it should appear in C code, as a string. Or ``None`` if " +"there is no default." msgstr "" -"La última línea del comentario inicial (``[clinic start generated code]*/``) " -"es la *línea final*." +"``default`` como debería aparecer en el código C, como una cadena de " +"caracteres. O ``None`` si no hay un valor predeterminado." -#: ../Doc/howto/clinic.rst:133 +#: ../Doc/howto/clinic.rst:234 msgid "" -"The last line (``/*[clinic end generated code: checksum=...]*/``) is the " -"*checksum line*." +"The default value used to initialize the C variable when there is no " +"default, but not specifying a default may result in an \"uninitialized " +"variable\" warning. This can easily happen when using option groups—" +"although properly written code will never actually use this value, the " +"variable does get passed in to the impl, and the C compiler will complain " +"about the \"use\" of the uninitialized value. This value should always be a " +"non-empty string." msgstr "" -"La última línea (``/*[clinic end generated code: checksum=...]*/``) es la " -"*línea de suma de comprobación* (*checksum line*)." +"El valor por defecto utilizado para inicializar la variable C cuando no hay " +"un valor por defecto, pero no especificar un valor por defecto puede dar " +"lugar a una advertencia de \"variable no inicializada\". Esto puede ocurrir " +"fácilmente cuando se utilizan grupos de opciones—aunque un código bien " +"escrito nunca utilizará este valor, la variable se pasa a la impl, y el " +"compilador de C se quejará del \"uso\" del valor no inicializado. Este valor " +"debe ser siempre una cadena no vacía." -#: ../Doc/howto/clinic.rst:134 -msgid "In between the start line and the end line is the *input*." -msgstr "Entre la línea de inicio y la línea final está el *input*." +#: ../Doc/howto/clinic.rst:246 +msgid "The name of the C converter function, as a string." +msgstr "" +"El nombre de la función de conversión de C, como una cadena de caracteres." -#: ../Doc/howto/clinic.rst:135 -msgid "In between the end line and the checksum line is the *output*." +#: ../Doc/howto/clinic.rst:250 +msgid "" +"A boolean value. If true, Argument Clinic will add a ``&`` in front of the " +"name of the variable when passing it into the impl function." msgstr "" -"Entre la línea final y la línea de suma de comprobación se encuentra la " -"*output*." +"Un valor booleano. Si es verdadero, Argument Clinic agregará un ``&`` " +"delante del nombre de la variable al pasarlo a la función impl." -#: ../Doc/howto/clinic.rst:136 +#: ../Doc/howto/clinic.rst:256 msgid "" -"All the text collectively, from the start line to the checksum line " -"inclusively, is the *block*. (A block that hasn't been successfully " -"processed by Argument Clinic yet doesn't have output or a checksum line, but " -"it's still considered a block.)" +"A boolean value. If true, Argument Clinic will add a ``&`` in front of the " +"name of the variable when passing it into :c:func:`PyArg_ParseTuple`." msgstr "" -"Todo el texto colectivamente, desde la línea de inicio hasta la línea de " -"suma de verificación inclusive, es el *bloque*. (Un bloque que no ha sido " -"procesado con éxito por Argument Clinic todavía no tiene salida o una línea " -"de suma de verificación, pero aún se considera un bloque)." +"Un valor booleano. Si es verdadero, Argument Clinic agregará un ``&`` " +"delante del nombre de la variable al pasarlo a :c:func:`PyArg_ParseTuple`." -#: ../Doc/howto/clinic.rst:143 -msgid "Converting Your First Function" -msgstr "Convirtiendo su primera función" +#: ../Doc/howto/clinic.rst:264 +msgid "Tutorial" +msgstr "" -#: ../Doc/howto/clinic.rst:145 +#: ../Doc/howto/clinic.rst:266 +#, fuzzy msgid "" "The best way to get a sense of how Argument Clinic works is to convert a " "function to work with it. Here, then, are the bare minimum steps you'd need " "to follow to convert a function to work with Argument Clinic. Note that for " "code you plan to check in to CPython, you really should take the conversion " -"farther, using some of the advanced concepts you'll see later on in the " -"document (like \"return converters\" and \"self converters\"). But we'll " -"keep it simple for this walkthrough so you can learn." +"farther, using some of the :ref:`advanced concepts ` you'll " +"see later on in the document, like :ref:`clinic-howto-return-converters` " +"and :ref:`clinic-howto-self-converter`. But we'll keep it simple for this " +"walkthrough so you can learn." msgstr "" "La mejor manera de tener una idea de cómo funciona Argument Clinic es " "convertir una función para que funcione con ella. Aquí, entonces, están los " @@ -308,55 +392,56 @@ msgstr "" "(como \"convertidores de retorno\" y \"convertidores automáticos\"). Pero lo " "haremos simple para este tutorial para que pueda aprender." -#: ../Doc/howto/clinic.rst:154 -msgid "Let's dive in!" -msgstr "¡Vamos a sumergirnos!" - -#: ../Doc/howto/clinic.rst:156 +#: ../Doc/howto/clinic.rst:277 +#, fuzzy msgid "" -"Make sure you're working with a freshly updated checkout of the CPython " -"trunk." +"First, make sure you're working with a freshly updated checkout of the " +"CPython trunk." msgstr "" "Asegúrese de estar trabajando con una versión recién actualizada de CPython." -#: ../Doc/howto/clinic.rst:159 +#: ../Doc/howto/clinic.rst:280 +#, fuzzy msgid "" -"Find a Python builtin that calls either :c:func:`PyArg_ParseTuple` or :c:" -"func:`PyArg_ParseTupleAndKeywords`, and hasn't been converted to work with " -"Argument Clinic yet. For my example I'm using ``_pickle.Pickler.dump()``." +"Next, find a Python builtin that calls either :c:func:`PyArg_ParseTuple` or :" +"c:func:`PyArg_ParseTupleAndKeywords`, and hasn't been converted to work with " +"Argument Clinic yet. For this tutorial, we'll be using :py:meth:`_pickle." +"Pickler.dump `." msgstr "" "Busca un incorporado de Python que llame a :c:func:`PyArg_ParseTuple` o :c:" "func:`PyArg_ParseTupleAndKeywords`, y que aún no se haya convertido para " "funcionar con Argument Clinic. Para mi ejemplo, estoy usando ``_pickle." "Pickler.dump()``." -#: ../Doc/howto/clinic.rst:164 +#: ../Doc/howto/clinic.rst:286 +#, fuzzy msgid "" -"If the call to the ``PyArg_Parse`` function uses any of the following format " -"units:" +"If the call to the :c:func:`!PyArg_Parse*` function uses any of the " +"following format units...:" msgstr "" "Si la llamada a la función ``PyArg_Parse`` usa cualquiera de las siguientes " "unidades de formato:" -#: ../Doc/howto/clinic.rst:176 +#: ../Doc/howto/clinic.rst:298 +#, fuzzy msgid "" -"or if it has multiple calls to :c:func:`PyArg_ParseTuple`, you should choose " -"a different function. Argument Clinic *does* support all of these " -"scenarios. But these are advanced topics—let's do something simpler for " -"your first function." +"... or if it has multiple calls to :c:func:`PyArg_ParseTuple`, you should " +"choose a different function. (See :ref:`clinic-howto-advanced-converters` " +"for those scenarios.)" msgstr "" "o si tiene múltiples llamadas a :c:func:`PyArg_ParseTuple`, debes elegir una " "función diferente. Argument Clinic *sí* admite todos estos escenarios. Pero " "estos son temas avanzados; hagamos algo más simple para su primera función." -#: ../Doc/howto/clinic.rst:181 +#: ../Doc/howto/clinic.rst:302 +#, fuzzy msgid "" -"Also, if the function has multiple calls to :c:func:`PyArg_ParseTuple` or :c:" -"func:`PyArg_ParseTupleAndKeywords` where it supports different types for the " -"same argument, or if the function uses something besides PyArg_Parse " -"functions to parse its arguments, it probably isn't suitable for conversion " -"to Argument Clinic. Argument Clinic doesn't support generic functions or " -"polymorphic parameters." +"Also, if the function has multiple calls to :c:func:`!PyArg_ParseTuple` or :" +"c:func:`PyArg_ParseTupleAndKeywords` where it supports different types for " +"the same argument, or if the function uses something besides :c:func:`!" +"PyArg_Parse*` functions to parse its arguments, it probably isn't suitable " +"for conversion to Argument Clinic. Argument Clinic doesn't support generic " +"functions or polymorphic parameters." msgstr "" "Además, si la función tiene múltiples llamadas a :c:func:`PyArg_ParseTuple` " "o :c:func:`PyArg_ParseTupleAndKeywords` donde admite diferentes tipos para " @@ -365,17 +450,21 @@ msgstr "" "la conversión a Argument Clinic. Argument Clinic no admite funciones " "genéricas ni parámetros polimórficos." -#: ../Doc/howto/clinic.rst:188 -msgid "Add the following boilerplate above the function, creating our block::" +#: ../Doc/howto/clinic.rst:309 +#, fuzzy +msgid "" +"Next, add the following boilerplate above the function, creating our input " +"block::" msgstr "" "Agrega la siguiente plantilla sobre la función, creando nuestro bloque::" -#: ../Doc/howto/clinic.rst:193 +#: ../Doc/howto/clinic.rst:315 +#, fuzzy msgid "" "Cut the docstring and paste it in between the ``[clinic]`` lines, removing " "all the junk that makes it a properly quoted C string. When you're done you " "should have just the text, based at the left margin, with no line wider than " -"80 characters. (Argument Clinic will preserve indents inside the docstring.)" +"80 characters. Argument Clinic will preserve indents inside the docstring." msgstr "" "Corta el docstring y lo pega entre las líneas ``[clinic]``, eliminando toda " "la basura que la convierte en una cadena C entre comillas. Cuando haya " @@ -383,52 +472,53 @@ msgstr "" "una línea de más de 80 caracteres. (Argument Clinic conservará las sangrías " "dentro del docstring)." -#: ../Doc/howto/clinic.rst:199 +#: ../Doc/howto/clinic.rst:321 +#, fuzzy msgid "" "If the old docstring had a first line that looked like a function signature, " -"throw that line away. (The docstring doesn't need it anymore—when you use " -"``help()`` on your builtin in the future, the first line will be built " -"automatically based on the function's signature.)" +"throw that line away; The docstring doesn't need it anymore --- when you " +"use :py:func:`help` on your builtin in the future, the first line will be " +"built automatically based on the function's signature." msgstr "" "Si el docstring antiguo tenía una primera línea que parecía una firma de " "función, elimine esa línea. (El docstring ya no la necesita; cuando use " "``help()`` en su incorporado en el futuro, la primera línea se creará " "automáticamente en función de la firma de la función)." -#: ../Doc/howto/clinic.rst:205 ../Doc/howto/clinic.rst:226 -#: ../Doc/howto/clinic.rst:250 ../Doc/howto/clinic.rst:308 -#: ../Doc/howto/clinic.rst:348 ../Doc/howto/clinic.rst:375 -#: ../Doc/howto/clinic.rst:481 ../Doc/howto/clinic.rst:533 -msgid "Sample::" -msgstr "Muestra::" +#: ../Doc/howto/clinic.rst:326 +msgid "Example docstring summary line::" +msgstr "" -#: ../Doc/howto/clinic.rst:211 +#: ../Doc/howto/clinic.rst:332 +#, fuzzy msgid "" "If your docstring doesn't have a \"summary\" line, Argument Clinic will " -"complain. So let's make sure it has one. The \"summary\" line should be a " +"complain, so let's make sure it has one. The \"summary\" line should be a " "paragraph consisting of a single 80-column line at the beginning of the " -"docstring." +"docstring. (See :pep:`257` regarding docstring conventions.)" msgstr "" "Si su cadena de documentos no tiene una línea de \"resumen\", Argument " "Clinic se quejará. Así que asegurémonos de que tenga uno. La línea de " "\"resumen\" debe ser un párrafo que consta de una sola línea de 80 columnas " "al comienzo de la cadena de documentos." -#: ../Doc/howto/clinic.rst:216 +#: ../Doc/howto/clinic.rst:338 +#, fuzzy msgid "" -"(Our example docstring consists solely of a summary line, so the sample code " -"doesn't have to change for this step.)" +"Our example docstring consists solely of a summary line, so the sample code " +"doesn't have to change for this step." msgstr "" "(Nuestro docstring de ejemplo consiste únicamente en una línea de resumen, " "por lo que el código de muestra no tiene que cambiar para este paso.)" -#: ../Doc/howto/clinic.rst:219 +#: ../Doc/howto/clinic.rst:341 +#, fuzzy msgid "" -"Above the docstring, enter the name of the function, followed by a blank " -"line. This should be the Python name of the function, and should be the " -"full dotted path to the function—it should start with the name of the " -"module, include any sub-modules, and if the function is a method on a class " -"it should include the class name too." +"Now, above the docstring, enter the name of the function, followed by a " +"blank line. This should be the Python name of the function, and should be " +"the full dotted path to the function --- it should start with the name of " +"the module, include any sub-modules, and if the function is a method on a " +"class it should include the class name too." msgstr "" "Sobre el docstring, ingrese el nombre de la función, seguido de una línea en " "blanco. Este debería ser el nombre de Python de la función, y debería ser la " @@ -436,14 +526,22 @@ msgstr "" "módulo, incluir cualquier submódulo y, si la función es un método en una " "clase, debe incluir el nombre de la clase también." -#: ../Doc/howto/clinic.rst:234 +#: ../Doc/howto/clinic.rst:348 +msgid "" +"In our example, :mod:`!_pickle` is the module, :py:class:`!Pickler` is the " +"class, and :py:meth:`!dump` is the method, so the name becomes :py:meth:`!" +"_pickle.Pickler.dump`::" +msgstr "" + +#: ../Doc/howto/clinic.rst:358 +#, fuzzy msgid "" "If this is the first time that module or class has been used with Argument " "Clinic in this C file, you must declare the module and/or class. Proper " "Argument Clinic hygiene prefers declaring these in a separate block " "somewhere near the top of the C file, in the same way that include files and " -"statics go at the top. (In our sample code we'll just show the two blocks " -"next to each other.)" +"statics go at the top. In our sample code we'll just show the two blocks " +"next to each other." msgstr "" "Si es la primera vez que ese módulo o clase se utiliza con Argument Clinic " "en este archivo C, debe declarar el módulo o la clase. La higiene de la " @@ -453,7 +551,7 @@ msgstr "" "(En nuestro código de muestra, solo mostraremos los dos bloques uno al lado " "del otro)." -#: ../Doc/howto/clinic.rst:242 +#: ../Doc/howto/clinic.rst:366 msgid "" "The name of the class and module should be the same as the one seen by " "Python. Check the name defined in the :c:type:`PyModuleDef` or :c:type:" @@ -463,55 +561,56 @@ msgstr "" "Compruebe el nombre definido en :c:type:`PyModuleDef` o :c:type:" "`PyTypeObject` según corresponda." -#: ../Doc/howto/clinic.rst:246 +#: ../Doc/howto/clinic.rst:370 +#, fuzzy msgid "" "When you declare a class, you must also specify two aspects of its type in " "C: the type declaration you'd use for a pointer to an instance of this " -"class, and a pointer to the :c:type:`PyTypeObject` for this class." +"class, and a pointer to the :c:type:`!PyTypeObject` for this class::" msgstr "" "Cuando declaras una clase, también debes especificar dos aspectos de su tipo " "en C: la declaración de tipo que usarías para un puntero a una instancia de " "esta clase y un puntero a :c:type:`PyTypeObject` para esto clase." -#: ../Doc/howto/clinic.rst:266 +#: ../Doc/howto/clinic.rst:385 +#, fuzzy msgid "" "Declare each of the parameters to the function. Each parameter should get " "its own line. All the parameter lines should be indented from the function " -"name and the docstring." +"name and the docstring. The general form of these parameter lines is as " +"follows:" msgstr "" "Declare cada uno de los parámetros a la función. Cada parámetro debe tener " "su propia línea. Todas las líneas de parámetros deben tener sangría del " "nombre de la función y el docstring." -#: ../Doc/howto/clinic.rst:270 -msgid "The general form of these parameter lines is as follows:" -msgstr "La forma general de estas líneas de parámetros es la siguiente:" - -#: ../Doc/howto/clinic.rst:276 +#: ../Doc/howto/clinic.rst:394 msgid "If the parameter has a default value, add that after the converter:" msgstr "" "Si el parámetro tiene un valor predeterminado, agréguelo después del " "convertidor:" -#: ../Doc/howto/clinic.rst:283 +#: ../Doc/howto/clinic.rst:401 +#, fuzzy msgid "" "Argument Clinic's support for \"default values\" is quite sophisticated; " -"please see :ref:`the section below on default values ` for " -"more information." +"see :ref:`clinic-howto-default-values` for more information." msgstr "" "El soporte de Argument Clinic para \"valores predeterminados\" es bastante " "sofisticado; por favor vea :ref:`la sección a continuación sobre valores " "predeterminados ` para más información." -#: ../Doc/howto/clinic.rst:287 -msgid "Add a blank line below the parameters." +#: ../Doc/howto/clinic.rst:404 +#, fuzzy +msgid "Next, add a blank line below the parameters." msgstr "Agrega una línea en blanco debajo de los parámetros." -#: ../Doc/howto/clinic.rst:289 +#: ../Doc/howto/clinic.rst:406 +#, fuzzy msgid "" -"What's a \"converter\"? It establishes both the type of the variable used " -"in C, and the method to convert the Python value into a C value at runtime. " -"For now you're going to use what's called a \"legacy converter\"—a " +"What's a \"converter\"? It establishes both the type of the variable used in " +"C, and the method to convert the Python value into a C value at runtime. For " +"now you're going to use what's called a \"legacy converter\" --- a " "convenience syntax intended to make porting old code into Argument Clinic " "easier." msgstr "" @@ -521,14 +620,15 @@ msgstr "" "\"convertidor heredado\", una sintaxis conveniente destinada a facilitar la " "migración del código antiguo a Argument Clinic." -#: ../Doc/howto/clinic.rst:296 +#: ../Doc/howto/clinic.rst:413 +#, fuzzy msgid "" -"For each parameter, copy the \"format unit\" for that parameter from the " -"``PyArg_Parse()`` format argument and specify *that* as its converter, as a " -"quoted string. (\"format unit\" is the formal name for the one-to-three " -"character substring of the ``format`` parameter that tells the argument " -"parsing function what the type of the variable is and how to convert it. " -"For more on format units please see :ref:`arg-parsing`.)" +"For each parameter, copy the \"format unit\" for that parameter from the :c:" +"func:`PyArg_Parse` format argument and specify *that* as its converter, as a " +"quoted string. The \"format unit\" is the formal name for the one-to-three " +"character substring of the *format* parameter that tells the argument " +"parsing function what the type of the variable is and how to convert it. For " +"more on format units please see :ref:`arg-parsing`." msgstr "" "Para cada parámetro, copie la \"unidad de formato\" para ese parámetro del " "argumento de formato ``PyArg_Parse()`` y especifique *eso* como su " @@ -538,7 +638,7 @@ msgstr "" "es el tipo de variable y cómo convertirla. Para más información sobre las " "unidades de formato por favor vea :ref:`arg-parsing`.)" -#: ../Doc/howto/clinic.rst:305 +#: ../Doc/howto/clinic.rst:422 msgid "" "For multicharacter format units like ``z#``, use the entire two-or-three " "character string." @@ -546,10 +646,17 @@ msgstr "" "Para unidades de formato de caracteres múltiples como ``z#``, use la cadena " "completa de dos o tres caracteres." -#: ../Doc/howto/clinic.rst:323 +#: ../Doc/howto/clinic.rst:425 ../Doc/howto/clinic.rst:460 +#: ../Doc/howto/clinic.rst:488 ../Doc/howto/clinic.rst:594 +#: ../Doc/howto/clinic.rst:647 +msgid "Sample::" +msgstr "Muestra::" + +#: ../Doc/howto/clinic.rst:440 +#, fuzzy msgid "" "If your function has ``|`` in the format string, meaning some parameters " -"have default values, you can ignore it. Argument Clinic infers which " +"have default values, you can ignore it. Argument Clinic infers which " "parameters are optional based on whether or not they have default values." msgstr "" "Si su función tiene ``|`` en la cadena de formato, lo que significa que " @@ -557,7 +664,7 @@ msgstr "" "Clinic infiere qué parámetros son opcionales en función de si tienen o no " "valores predeterminados." -#: ../Doc/howto/clinic.rst:328 +#: ../Doc/howto/clinic.rst:445 msgid "" "If your function has ``$`` in the format string, meaning it takes keyword-" "only arguments, specify ``*`` on a line by itself before the first keyword-" @@ -568,59 +675,56 @@ msgstr "" "una línea antes del primer argumento de solo palabras clave, con la misma " "indentación que las líneas de parámetros." -#: ../Doc/howto/clinic.rst:333 -msgid "(``_pickle.Pickler.dump`` has neither, so our sample is unchanged.)" +#: ../Doc/howto/clinic.rst:450 +#, fuzzy +msgid "" +":py:meth:`!_pickle.Pickler.dump` has neither, so our sample is unchanged." msgstr "" "(``_pickle.Pickler.dump`` no tiene ninguno, por lo que nuestro ejemplo no ha " "cambiado.)" -#: ../Doc/howto/clinic.rst:336 +#: ../Doc/howto/clinic.rst:452 +#, fuzzy msgid "" -"If the existing C function calls :c:func:`PyArg_ParseTuple` (as opposed to :" -"c:func:`PyArg_ParseTupleAndKeywords`), then all its arguments are positional-" -"only." +"Next, if the existing C function calls :c:func:`PyArg_ParseTuple` (as " +"opposed to :c:func:`PyArg_ParseTupleAndKeywords`), then all its arguments " +"are positional-only." msgstr "" "Si la función C existente llama a :c:func:`PyArg_ParseTuple` (a diferencia " "de :c:func:`PyArg_ParseTupleAndKeywords`), entonces todos sus argumentos son " "solo posicionales." -#: ../Doc/howto/clinic.rst:340 +#: ../Doc/howto/clinic.rst:456 +#, fuzzy msgid "" -"To mark all parameters as positional-only in Argument Clinic, add a ``/`` on " -"a line by itself after the last parameter, indented the same as the " -"parameter lines." +"To mark parameters as positional-only in Argument Clinic, add a ``/`` on a " +"line by itself after the last positional-only parameter, indented the same " +"as the parameter lines." msgstr "" "Para marcar todos los parámetros como solo posicionales en Argument Clinic, " "agregue un ``/`` en una línea después del último parámetro, con la misma " "sangría que las líneas de parámetros." -#: ../Doc/howto/clinic.rst:344 -msgid "" -"Currently this is all-or-nothing; either all parameters are positional-only, " -"or none of them are. (In the future Argument Clinic may relax this " -"restriction.)" -msgstr "" -"Actualmente esto es todo o nada; o todos los parámetros son solo " -"posicionales o ninguno de ellos lo es. (En el futuro, Argument Clinic puede " -"relajar esta restricción)." - -#: ../Doc/howto/clinic.rst:364 +#: ../Doc/howto/clinic.rst:476 +#, fuzzy msgid "" -"It's helpful to write a per-parameter docstring for each parameter. But per-" -"parameter docstrings are optional; you can skip this step if you prefer." +"It can be helpful to write a per-parameter docstring for each parameter. " +"Since per-parameter docstrings are optional, you can skip this step if you " +"prefer." msgstr "" "Es útil escribir una cadena de documentos por parámetro para cada parámetro. " "Pero los docstrings por parámetro son opcionales; puede omitir este paso si " "lo prefiere." -#: ../Doc/howto/clinic.rst:368 +#: ../Doc/howto/clinic.rst:480 +#, fuzzy msgid "" -"Here's how to add a per-parameter docstring. The first line of the per-" -"parameter docstring must be indented further than the parameter definition. " -"The left margin of this first line establishes the left margin for the whole " -"per-parameter docstring; all the text you write will be outdented by this " -"amount. You can write as much text as you like, across multiple lines if " -"you wish." +"Nevertheless, here's how to add a per-parameter docstring. The first line of " +"the per-parameter docstring must be indented further than the parameter " +"definition. The left margin of this first line establishes the left margin " +"for the whole per-parameter docstring; all the text you write will be " +"outdented by this amount. You can write as much text as you like, across " +"multiple lines if you wish." msgstr "" "A continuación, se explica cómo agregar un docstring por parámetro. La " "primera línea del docstring por parámetro debe tener más sangría que la " @@ -629,38 +733,42 @@ msgstr "" "texto que escriba se verá afectado por esta cantidad. Puede escribir todo el " "texto que desee, en varias líneas si lo desea." -#: ../Doc/howto/clinic.rst:392 +#: ../Doc/howto/clinic.rst:505 +#, fuzzy msgid "" -"Save and close the file, then run ``Tools/clinic/clinic.py`` on it. With " -"luck everything worked---your block now has output, and a ``.c.h`` file has " -"been generated! Reopen the file in your text editor to see::" +"Save and close the file, then run ``Tools/clinic/clinic.py`` on it. With " +"luck everything worked---your block now has output, and a :file:`.c.h` file " +"has been generated! Reload the file in your text editor to see the generated " +"code::" msgstr "" "Guarde y cierre el archivo, luego ejecute ``Tools/clinic/clinic.py`` en él. " "¡Con suerte, todo funcionó --- su bloque ahora tiene salida y se ha generado " "un archivo ``.c.h`` ! Vuelva a abrir el archivo en su editor de texto para " "ver::" -#: ../Doc/howto/clinic.rst:411 +#: ../Doc/howto/clinic.rst:524 +#, fuzzy msgid "" "Obviously, if Argument Clinic didn't produce any output, it's because it " -"found an error in your input. Keep fixing your errors and retrying until " +"found an error in your input. Keep fixing your errors and retrying until " "Argument Clinic processes your file without complaint." msgstr "" "Obviamente, si Argument Clinic no produjo ningún resultado, es porque " "encontró un error en su entrada. Siga corrigiendo sus errores y vuelva a " "intentarlo hasta que Argument Clinic procese su archivo sin quejas." -#: ../Doc/howto/clinic.rst:415 +#: ../Doc/howto/clinic.rst:529 +#, fuzzy msgid "" -"For readability, most of the glue code has been generated to a ``.c.h`` " -"file. You'll need to include that in your original ``.c`` file, typically " -"right after the clinic module block::" +"For readability, most of the glue code has been generated to a :file:`.c.h` " +"file. You'll need to include that in your original :file:`.c` file, " +"typically right after the clinic module block::" msgstr "" "Para facilitar la lectura, la mayor parte del código de pegamento se ha " "generado en un archivo ``.c.h``. Deberá incluir eso en su archivo ``.c`` " "original, generalmente justo después del bloque del módulo de la clínica::" -#: ../Doc/howto/clinic.rst:421 +#: ../Doc/howto/clinic.rst:535 msgid "" "Double-check that the argument-parsing code Argument Clinic generated looks " "basically the same as the existing code." @@ -668,7 +776,7 @@ msgstr "" "Vuelva a verificar que el código de análisis de argumentos generado por " "Argument Clinic se ve básicamente igual al código existente." -#: ../Doc/howto/clinic.rst:424 +#: ../Doc/howto/clinic.rst:538 msgid "" "First, ensure both places use the same argument-parsing function. The " "existing code must call either :c:func:`PyArg_ParseTuple` or :c:func:" @@ -680,10 +788,11 @@ msgstr "" "c:func:`PyArg_ParseTupleAndKeywords`; asegúrese de que el código generado " "por Argument Clinic llame a la misma *exacta* función." -#: ../Doc/howto/clinic.rst:430 +#: ../Doc/howto/clinic.rst:544 +#, fuzzy msgid "" -"Second, the format string passed in to :c:func:`PyArg_ParseTuple` or :c:func:" -"`PyArg_ParseTupleAndKeywords` should be *exactly* the same as the hand-" +"Second, the format string passed in to :c:func:`!PyArg_ParseTuple` or :c:" +"func:`!PyArg_ParseTupleAndKeywords` should be *exactly* the same as the hand-" "written one in the existing function, up to the colon or semi-colon." msgstr "" "En segundo lugar, la cadena de formato pasada a :c:func:`PyArg_ParseTuple` " @@ -691,32 +800,35 @@ msgstr "" "la escrita a mano en la función existente, hasta los dos puntos o punto y " "coma." -#: ../Doc/howto/clinic.rst:435 +#: ../Doc/howto/clinic.rst:549 +#, fuzzy msgid "" -"(Argument Clinic always generates its format strings with a ``:`` followed " -"by the name of the function. If the existing code's format string ends with " -"``;``, to provide usage help, this change is harmless—don't worry about it.)" +"Argument Clinic always generates its format strings with a ``:`` followed by " +"the name of the function. If the existing code's format string ends with ``;" +"``, to provide usage help, this change is harmless --- don't worry about it." msgstr "" "(Argument Clinic siempre genera sus cadenas de caracteres de formato con un " "``:`` seguido del nombre de la función. Si la cadena de caracteres de " "formato del código existente termina con ``;``, para proporcionar ayuda de " "uso, este cambio es inofensivo; no se preocupe)" -#: ../Doc/howto/clinic.rst:440 +#: ../Doc/howto/clinic.rst:554 +#, fuzzy msgid "" -"Third, for parameters whose format units require two arguments (like a " -"length variable, or an encoding string, or a pointer to a conversion " -"function), ensure that the second argument is *exactly* the same between the " -"two invocations." +"Third, for parameters whose format units require two arguments, like a " +"length variable, an encoding string, or a pointer to a conversion function, " +"ensure that the second argument is *exactly* the same between the two " +"invocations." msgstr "" "En tercer lugar, para los parámetros cuyas unidades de formato requieren dos " "argumentos (como una variable de longitud, una cadena de codificación o un " "puntero a una función de conversión), asegúrese de que el segundo argumento " "sea *exactamente* el mismo entre las dos invocaciones." -#: ../Doc/howto/clinic.rst:445 +#: ../Doc/howto/clinic.rst:559 +#, fuzzy msgid "" -"Fourth, inside the output portion of the block you'll find a preprocessor " +"Fourth, inside the output portion of the block, you'll find a preprocessor " "macro defining the appropriate static :c:type:`PyMethodDef` structure for " "this builtin::" msgstr "" @@ -724,15 +836,16 @@ msgstr "" "macro de preprocesador que define la estructura static :c:type:`PyMethodDef` " "apropiada para este incorporado::" -#: ../Doc/howto/clinic.rst:452 +#: ../Doc/howto/clinic.rst:566 +#, fuzzy msgid "" "This static structure should be *exactly* the same as the existing static :c:" -"type:`PyMethodDef` structure for this builtin." +"type:`!PyMethodDef` structure for this builtin." msgstr "" "Esta estructura estática debe ser *exactamente* la misma que la estructura " "estática existente :c:type:`PyMethodDef` para este incorporado." -#: ../Doc/howto/clinic.rst:455 +#: ../Doc/howto/clinic.rst:569 msgid "" "If any of these items differ in *any way*, adjust your Argument Clinic " "function specification and rerun ``Tools/clinic/clinic.py`` until they *are* " @@ -742,7 +855,7 @@ msgstr "" "especificación de la función de Argument Clinic y vuelva a ejecutar ``Tools/" "clinic/clinic.py`` hasta que *sean* iguales." -#: ../Doc/howto/clinic.rst:460 +#: ../Doc/howto/clinic.rst:573 msgid "" "Notice that the last line of its output is the declaration of your \"impl\" " "function. This is where the builtin's implementation goes. Delete the " @@ -761,32 +874,35 @@ msgstr "" "implícita; si la implementación usó nombres diferentes para estas variables, " "corríjalo." -#: ../Doc/howto/clinic.rst:468 +#: ../Doc/howto/clinic.rst:581 +#, fuzzy msgid "" -"Let's reiterate, just because it's kind of weird. Your code should now look " +"Let's reiterate, just because it's kind of weird. Your code should now look " "like this::" msgstr "" "Reiteremos, solo porque es un poco extraño. Su código ahora debería verse " "así::" -#: ../Doc/howto/clinic.rst:477 +#: ../Doc/howto/clinic.rst:590 +#, fuzzy msgid "" "Argument Clinic generated the checksum line and the function prototype just " -"above it. You should write the opening (and closing) curly braces for the " +"above it. You should write the opening and closing curly braces for the " "function, and the implementation inside." msgstr "" "Argument Clinic generó la línea de suma de comprobación y el prototipo de " "función justo encima de ella. Debe escribir las llaves de apertura (y " "cierre) para la función y la implementación en el interior." -#: ../Doc/howto/clinic.rst:522 +#: ../Doc/howto/clinic.rst:636 +#, fuzzy msgid "" "Remember the macro with the :c:type:`PyMethodDef` structure for this " -"function? Find the existing :c:type:`PyMethodDef` structure for this " -"function and replace it with a reference to the macro. (If the builtin is " -"at module scope, this will probably be very near the end of the file; if the " +"function? Find the existing :c:type:`!PyMethodDef` structure for this " +"function and replace it with a reference to the macro. If the builtin is at " +"module scope, this will probably be very near the end of the file; if the " "builtin is a class method, this will probably be below but relatively near " -"to the implementation.)" +"to the implementation." msgstr "" "¿Recuerda la macro con la estructura :c:type:`PyMethodDef` para esta " "función? Busque la estructura existente :c:type:`PyMethodDef` para esta " @@ -795,37 +911,42 @@ msgstr "" "del archivo; si el incorporado es un método de clase, probablemente estará " "debajo pero relativamente cerca de la implementación)." -#: ../Doc/howto/clinic.rst:529 +#: ../Doc/howto/clinic.rst:643 +#, fuzzy msgid "" -"Note that the body of the macro contains a trailing comma. So when you " -"replace the existing static :c:type:`PyMethodDef` structure with the macro, " -"*don't* add a comma to the end." +"Note that the body of the macro contains a trailing comma; when you replace " +"the existing static :c:type:`!PyMethodDef` structure with the macro, *don't* " +"add a comma to the end." msgstr "" "Tenga en cuenta que el cuerpo de la macro contiene una coma al final. " "Entonces, cuando reemplace la estructura static :c:type:`PyMethodDef` " "existente con la macro, *no* agregue una coma al final." -#: ../Doc/howto/clinic.rst:542 +#: ../Doc/howto/clinic.rst:655 +msgid "Argument Clinic may generate new instances of ``_Py_ID``. For example::" +msgstr "" + +#: ../Doc/howto/clinic.rst:659 +msgid "" +"If it does, you'll have to run ``make regen-global-objects`` to regenerate " +"the list of precompiled identifiers at this point." +msgstr "" + +#: ../Doc/howto/clinic.rst:662 #, fuzzy msgid "" -"Compile, then run the relevant portions of the regression-test suite. This " -"change should not introduce any new compile-time warnings or errors, and " -"there should be no externally visible change to Python's behavior." +"Finally, compile, then run the relevant portions of the regression-test " +"suite. This change should not introduce any new compile-time warnings or " +"errors, and there should be no externally visible change to Python's " +"behavior, except for one difference: :py:func:`inspect.signature` run on " +"your function should now provide a valid signature!" msgstr "" "Compile y luego ejecute las partes relevantes del conjunto de pruebas de " "regresión. Este cambio no debería introducir nuevas advertencias o errores " "en tiempo de compilación, y no debería haber ningún cambio visible desde el " "exterior en el comportamiento de Python." -#: ../Doc/howto/clinic.rst:546 -msgid "" -"Well, except for one difference: ``inspect.signature()`` run on your " -"function should now provide a valid signature!" -msgstr "" -"Bueno, excepto por una diferencia: ``inspect.signature()`` ejecutar en su " -"función ahora debería proporcionar una firma válida!" - -#: ../Doc/howto/clinic.rst:549 +#: ../Doc/howto/clinic.rst:668 msgid "" "Congratulations, you've ported your first function to work with Argument " "Clinic!" @@ -833,65 +954,18 @@ msgstr "" "¡Felicitaciones, ha adaptado su primera función para trabajar con Argument " "Clinic!" -#: ../Doc/howto/clinic.rst:552 -msgid "Advanced Topics" -msgstr "Temas avanzados" - -#: ../Doc/howto/clinic.rst:554 -msgid "" -"Now that you've had some experience working with Argument Clinic, it's time " -"for some advanced topics." -msgstr "" -"Ahora que ha tenido algo de experiencia trabajando con Argument Clinic, es " -"hora de algunos temas avanzados." - -#: ../Doc/howto/clinic.rst:559 -msgid "Symbolic default values" -msgstr "Valores predeterminados simbólicos" - -#: ../Doc/howto/clinic.rst:561 -msgid "" -"The default value you provide for a parameter can't be any arbitrary " -"expression. Currently the following are explicitly supported:" -msgstr "" -"El valor predeterminado que proporcione para un parámetro no puede ser una " -"expresión arbitraria. Actualmente, lo siguiente se admite explícitamente:" - -#: ../Doc/howto/clinic.rst:564 -msgid "Numeric constants (integer and float)" -msgstr "Constantes numéricas (enteros y flotantes)" - -#: ../Doc/howto/clinic.rst:565 -msgid "String constants" -msgstr "Constantes de cadena de caracteres" - -#: ../Doc/howto/clinic.rst:566 -msgid "``True``, ``False``, and ``None``" -msgstr "``True``, ``False``, y ``None``" - -#: ../Doc/howto/clinic.rst:567 -msgid "" -"Simple symbolic constants like ``sys.maxsize``, which must start with the " -"name of the module" +#: ../Doc/howto/clinic.rst:674 +msgid "How-to guides" msgstr "" -"Constantes simbólicas simples como ``sys.maxsize``, que debe comenzar con el " -"nombre del módulo" -#: ../Doc/howto/clinic.rst:570 -msgid "" -"(In the future, this may need to get even more elaborate, to allow full " -"expressions like ``CONSTANT - 1``.)" -msgstr "" -"(En el futuro, esto puede necesitar ser aún más elaborado, para permitir " -"expresiones completas como ``CONSTANT - 1``.)" - -#: ../Doc/howto/clinic.rst:575 -msgid "Renaming the C functions and variables generated by Argument Clinic" +#: ../Doc/howto/clinic.rst:678 +#, fuzzy +msgid "How to rename C functions and variables generated by Argument Clinic" msgstr "" "Cambiar el nombre de las funciones y variables C generadas por Argument " "Clinic" -#: ../Doc/howto/clinic.rst:577 +#: ../Doc/howto/clinic.rst:680 msgid "" "Argument Clinic automatically names the functions it generates for you. " "Occasionally this may cause a problem, if the generated name collides with " @@ -911,23 +985,25 @@ msgstr "" "función para la función base (generada), luego agregará ``\"_impl\"`` al " "final y lo usará para el nombre de la función impl." -#: ../Doc/howto/clinic.rst:585 +#: ../Doc/howto/clinic.rst:688 +#, fuzzy msgid "" -"For example, if we wanted to rename the C function names generated for " -"``pickle.Pickler.dump``, it'd look like this::" +"For example, if we wanted to rename the C function names generated for :py:" +"meth:`pickle.Pickler.dump`, it'd look like this::" msgstr "" "Por ejemplo, si quisiéramos cambiar el nombre de las funciones de C " "generadas para ``pickle.Pickler.dump``, se vería así::" -#: ../Doc/howto/clinic.rst:593 +#: ../Doc/howto/clinic.rst:696 +#, fuzzy msgid "" -"The base function would now be named ``pickler_dumper()``, and the impl " -"function would now be named ``pickler_dumper_impl()``." +"The base function would now be named :c:func:`!pickler_dumper`, and the impl " +"function would now be named :c:func:`!pickler_dumper_impl`." msgstr "" "La función base ahora se llamaría ``pickler_dumper()``, y la función " "implícita ahora se llamaría ``pickler_dumper_impl()``." -#: ../Doc/howto/clinic.rst:597 +#: ../Doc/howto/clinic.rst:700 msgid "" "Similarly, you may have a problem where you want to give a parameter a " "specific Python name, but that name may be inconvenient in C. Argument " @@ -939,28 +1015,32 @@ msgstr "" "inconveniente en C. Argument Clinic le permite asignar nombres diferentes a " "un parámetro en Python y en C, usando el mismo ``\"as\"`` como sintaxis::" -#: ../Doc/howto/clinic.rst:611 +#: ../Doc/howto/clinic.rst:714 +#, fuzzy msgid "" "Here, the name used in Python (in the signature and the ``keywords`` array) " -"would be ``file``, but the C variable would be named ``file_obj``." +"would be *file*, but the C variable would be named ``file_obj``." msgstr "" "Aquí, el nombre usado en Python (en la firma y el arreglo de ``keywords``) " "sería ``file``, pero la variable C se llamaría ``file_obj``." -#: ../Doc/howto/clinic.rst:614 -msgid "You can use this to rename the ``self`` parameter too!" +#: ../Doc/howto/clinic.rst:717 +#, fuzzy +msgid "You can use this to rename the *self* parameter too!" msgstr "" "¡También puede usar esto para cambiar el nombre del parámetro ``self``!" -#: ../Doc/howto/clinic.rst:618 -msgid "Converting functions using PyArg_UnpackTuple" +#: ../Doc/howto/clinic.rst:721 +#, fuzzy +msgid "How to convert functions using ``PyArg_UnpackTuple``" msgstr "Convirtiendo funciones usando PyArg_UnpackTuple" -#: ../Doc/howto/clinic.rst:620 +#: ../Doc/howto/clinic.rst:723 +#, fuzzy msgid "" "To convert a function parsing its arguments with :c:func:" "`PyArg_UnpackTuple`, simply write out all the arguments, specifying each as " -"an ``object``. You may specify the ``type`` argument to cast the type as " +"an ``object``. You may specify the *type* argument to cast the type as " "appropriate. All arguments should be marked positional-only (add a ``/`` on " "a line by itself after the last argument)." msgstr "" @@ -971,7 +1051,7 @@ msgstr "" "marcados como solo posicionales (agregue un ``/`` en una línea después del " "último argumento)." -#: ../Doc/howto/clinic.rst:626 +#: ../Doc/howto/clinic.rst:729 msgid "" "Currently the generated code will use :c:func:`PyArg_ParseTuple`, but this " "will change soon." @@ -979,11 +1059,12 @@ msgstr "" "Actualmente, el código generado usará :c:func:`PyArg_ParseTuple`, pero esto " "cambiará pronto." -#: ../Doc/howto/clinic.rst:630 -msgid "Optional Groups" +#: ../Doc/howto/clinic.rst:734 +#, fuzzy +msgid "How to use optional groups" msgstr "Grupos opcionales" -#: ../Doc/howto/clinic.rst:632 +#: ../Doc/howto/clinic.rst:736 msgid "" "Some legacy functions have a tricky approach to parsing their arguments: " "they count the number of positional arguments, then use a ``switch`` " @@ -1001,18 +1082,19 @@ msgstr "" "clave). Este enfoque se usó para simular argumentos opcionales antes de que " "se creara :c:func:`PyArg_ParseTupleAndKeywords`." -#: ../Doc/howto/clinic.rst:639 +#: ../Doc/howto/clinic.rst:743 +#, fuzzy msgid "" -"While functions using this approach can often be converted to use :c:func:" -"`PyArg_ParseTupleAndKeywords`, optional arguments, and default values, it's " +"While functions using this approach can often be converted to use :c:func:`!" +"PyArg_ParseTupleAndKeywords`, optional arguments, and default values, it's " "not always possible. Some of these legacy functions have behaviors :c:func:" -"`PyArg_ParseTupleAndKeywords` doesn't directly support. The most obvious " -"example is the builtin function ``range()``, which has an optional argument " -"on the *left* side of its required argument! Another example is ``curses." -"window.addch()``, which has a group of two arguments that must always be " -"specified together. (The arguments are called ``x`` and ``y``; if you call " -"the function passing in ``x``, you must also pass in ``y``—and if you don't " -"pass in ``x`` you may not pass in ``y`` either.)" +"`!PyArg_ParseTupleAndKeywords` doesn't directly support. The most obvious " +"example is the builtin function :py:func:`range`, which has an optional " +"argument on the *left* side of its required argument! Another example is :py:" +"meth:`curses.window.addch`, which has a group of two arguments that must " +"always be specified together. (The arguments are called *x* and *y*; if you " +"call the function passing in *x*, you must also pass in *y* — and if you " +"don't pass in *x* you may not pass in *y* either.)" msgstr "" "Si bien las funciones que utilizan este enfoque a menudo se pueden convertir " "para usar :c:func:`PyArg_ParseTupleAndKeywords`, argumentos opcionales y " @@ -1025,7 +1107,7 @@ msgstr "" "argumentos se denominan ``x`` e ``y``; si llama a la función pasando ``x``, " "también debe pasar ``y``, y si no pasa ``x`` tampoco puede pasar ``y``.)" -#: ../Doc/howto/clinic.rst:651 +#: ../Doc/howto/clinic.rst:755 msgid "" "In any case, the goal of Argument Clinic is to support argument parsing for " "all existing CPython builtins without changing their semantics. Therefore " @@ -1042,7 +1124,7 @@ msgstr "" "estar a la izquierda o la derecha de los argumentos requeridos. *Solo* se " "pueden usar con parámetros de solo posición." -#: ../Doc/howto/clinic.rst:659 +#: ../Doc/howto/clinic.rst:763 msgid "" "Optional groups are *only* intended for use when converting functions that " "make multiple calls to :c:func:`PyArg_ParseTuple`! Functions that use *any* " @@ -1060,12 +1142,13 @@ msgstr "" "precisas en Python, porque Python simplemente no comprende el concepto. " "Evite el uso de grupos opcionales siempre que sea posible." -#: ../Doc/howto/clinic.rst:668 +#: ../Doc/howto/clinic.rst:772 +#, fuzzy msgid "" "To specify an optional group, add a ``[`` on a line by itself before the " "parameters you wish to group together, and a ``]`` on a line by itself after " -"these parameters. As an example, here's how ``curses.window.addch`` uses " -"optional groups to make the first two parameters and the last parameter " +"these parameters. As an example, here's how :py:meth:`curses.window.addch` " +"uses optional groups to make the first two parameters and the last parameter " "optional::" msgstr "" "Para especificar un grupo opcional, agregue un ``[`` en una línea antes de " @@ -1074,11 +1157,11 @@ msgstr "" "opcionales para hacer que los primeros dos parámetros y el último parámetro " "sean opcionales::" -#: ../Doc/howto/clinic.rst:697 +#: ../Doc/howto/clinic.rst:801 msgid "Notes:" msgstr "Notas:" -#: ../Doc/howto/clinic.rst:699 +#: ../Doc/howto/clinic.rst:803 msgid "" "For every optional group, one additional parameter will be passed into the " "impl function representing the group. The parameter will be an int named " @@ -1101,7 +1184,7 @@ msgstr "" "usó este grupo. (Por usado o no usado, me refiero a si los parámetros " "recibieron argumentos en esta invocación)." -#: ../Doc/howto/clinic.rst:710 +#: ../Doc/howto/clinic.rst:814 msgid "" "If there are no required arguments, the optional groups will behave as if " "they're to the right of the required arguments." @@ -1109,7 +1192,7 @@ msgstr "" "Si no hay argumentos requeridos, los grupos opcionales se comportarán como " "si estuvieran a la derecha de los argumentos requeridos." -#: ../Doc/howto/clinic.rst:713 +#: ../Doc/howto/clinic.rst:817 msgid "" "In the case of ambiguity, the argument parsing code favors parameters on the " "left (before the required parameters)." @@ -1117,11 +1200,11 @@ msgstr "" "En el caso de ambigüedad, el código de análisis de argumentos favorece los " "parámetros de la izquierda (antes de los parámetros requeridos)." -#: ../Doc/howto/clinic.rst:716 +#: ../Doc/howto/clinic.rst:820 msgid "Optional groups can only contain positional-only parameters." msgstr "Los grupos opcionales solo pueden contener parámetros posicionales." -#: ../Doc/howto/clinic.rst:718 +#: ../Doc/howto/clinic.rst:822 msgid "" "Optional groups are *only* intended for legacy code. Please do not use " "optional groups for new code." @@ -1129,13 +1212,15 @@ msgstr "" "Los grupos opcionales son *solo* destinados al código heredado. No utilice " "grupos opcionales para el código nuevo." -#: ../Doc/howto/clinic.rst:723 -msgid "Using real Argument Clinic converters, instead of \"legacy converters\"" +#: ../Doc/howto/clinic.rst:827 +#, fuzzy +msgid "" +"How to use real Argument Clinic converters, instead of \"legacy converters\"" msgstr "" "Usar convertidores de Argument Clinic reales, en lugar de \"convertidores " "heredados\"" -#: ../Doc/howto/clinic.rst:725 +#: ../Doc/howto/clinic.rst:829 msgid "" "To save time, and to minimize how much you need to learn to achieve your " "first port to Argument Clinic, the walkthrough above tells you to use " @@ -1150,7 +1235,7 @@ msgstr "" "código existente a Argument Clinic. Y para ser claros, su uso es aceptable " "al portar código para Python 3.4." -#: ../Doc/howto/clinic.rst:732 +#: ../Doc/howto/clinic.rst:836 msgid "" "However, in the long term we probably want all our blocks to use Argument " "Clinic's real syntax for converters. Why? A couple reasons:" @@ -1159,14 +1244,14 @@ msgstr "" "utilicen la sintaxis real de Argument Clinic para los convertidores. ¿Por " "qué? Un par de razones:" -#: ../Doc/howto/clinic.rst:736 +#: ../Doc/howto/clinic.rst:840 msgid "" "The proper converters are far easier to read and clearer in their intent." msgstr "" "Los convertidores adecuados son mucho más fáciles de leer y más claros en su " "intención." -#: ../Doc/howto/clinic.rst:737 +#: ../Doc/howto/clinic.rst:841 msgid "" "There are some format units that are unsupported as \"legacy converters\", " "because they require arguments, and the legacy converter syntax doesn't " @@ -1176,7 +1261,7 @@ msgstr "" "heredados\", porque requieren argumentos y la sintaxis del convertidor " "heredado no admite la especificación de argumentos." -#: ../Doc/howto/clinic.rst:740 +#: ../Doc/howto/clinic.rst:844 msgid "" "In the future we may have a new argument parsing library that isn't " "restricted to what :c:func:`PyArg_ParseTuple` supports; this flexibility " @@ -1187,7 +1272,7 @@ msgstr "" "admite; esta flexibilidad no estará disponible para los parámetros que " "utilizan convertidores heredados." -#: ../Doc/howto/clinic.rst:744 +#: ../Doc/howto/clinic.rst:848 msgid "" "Therefore, if you don't mind a little extra effort, please use the normal " "converters instead of legacy converters." @@ -1195,7 +1280,7 @@ msgstr "" "Por lo tanto, si no le importa un poco de esfuerzo adicional, utilice los " "convertidores normales en lugar de los convertidores heredados." -#: ../Doc/howto/clinic.rst:747 +#: ../Doc/howto/clinic.rst:851 msgid "" "In a nutshell, the syntax for Argument Clinic (non-legacy) converters looks " "like a Python function call. However, if there are no explicit arguments to " @@ -1208,7 +1293,7 @@ msgstr "" "valores predeterminados), puede omitir los paréntesis. Por tanto, ``bool`` y " "``bool()`` son exactamente los mismos convertidores." -#: ../Doc/howto/clinic.rst:753 +#: ../Doc/howto/clinic.rst:857 msgid "" "All arguments to Argument Clinic converters are keyword-only. All Argument " "Clinic converters accept the following arguments:" @@ -1217,11 +1302,12 @@ msgstr "" "palabras clave. Todos los convertidores de Argument Clinic aceptan los " "siguientes argumentos:" -#: ../Doc/howto/clinic.rst:761 ../Doc/howto/clinic.rst:1311 -msgid "``c_default``" +#: ../Doc/howto/clinic.rst:865 +#, fuzzy +msgid "*c_default*" msgstr "``c_default``" -#: ../Doc/howto/clinic.rst:757 +#: ../Doc/howto/clinic.rst:861 msgid "" "The default value for this parameter when defined in C. Specifically, this " "will be the initializer for the variable declared in the \"parse " @@ -1234,11 +1320,12 @@ msgstr "" "predeterminados ` para saber cómo usar esto. Especificado " "como una cadena de caracteres." -#: ../Doc/howto/clinic.rst:766 -msgid "``annotation``" +#: ../Doc/howto/clinic.rst:870 +#, fuzzy +msgid "*annotation*" msgstr "``annotation``" -#: ../Doc/howto/clinic.rst:764 +#: ../Doc/howto/clinic.rst:868 msgid "" "The annotation value for this parameter. Not currently supported, because :" "pep:`8` mandates that the Python library may not use annotations." @@ -1246,7 +1333,16 @@ msgstr "" "El valor de anotación para este parámetro. Actualmente no es compatible, " "porque :pep:`8` exige que la biblioteca de Python no use anotaciones." -#: ../Doc/howto/clinic.rst:768 +#: ../Doc/howto/clinic.rst:873 +msgid "*unused*" +msgstr "" + +#: ../Doc/howto/clinic.rst:873 +msgid "" +"Wrap the argument with :c:macro:`Py_UNUSED` in the impl function signature." +msgstr "" + +#: ../Doc/howto/clinic.rst:875 msgid "" "In addition, some converters accept additional arguments. Here is a list of " "these arguments, along with their meanings:" @@ -1254,11 +1350,12 @@ msgstr "" "Además, algunos convertidores aceptan argumentos adicionales. Aquí hay una " "lista de estos argumentos, junto con sus significados:" -#: ../Doc/howto/clinic.rst:777 -msgid "``accept``" +#: ../Doc/howto/clinic.rst:884 +#, fuzzy +msgid "*accept*" msgstr "``accept``" -#: ../Doc/howto/clinic.rst:772 +#: ../Doc/howto/clinic.rst:879 msgid "" "A set of Python types (and possibly pseudo-types); this restricts the " "allowable Python argument to values of these types. (This is not a general-" @@ -1270,15 +1367,16 @@ msgstr "" "infraestructura de propósito general; por regla general, solo admite listas " "específicas de tipos como se muestra en la tabla de convertidores heredados)." -#: ../Doc/howto/clinic.rst:777 +#: ../Doc/howto/clinic.rst:884 msgid "To accept ``None``, add ``NoneType`` to this set." msgstr "Para aceptar ``None``, agregue ``NoneType`` a este conjunto." -#: ../Doc/howto/clinic.rst:782 -msgid "``bitwise``" +#: ../Doc/howto/clinic.rst:889 +#, fuzzy +msgid "*bitwise*" msgstr "``bitwise``" -#: ../Doc/howto/clinic.rst:780 +#: ../Doc/howto/clinic.rst:887 msgid "" "Only supported for unsigned integers. The native integer value of this " "Python argument will be written to the parameter without any range checking, " @@ -1288,11 +1386,12 @@ msgstr "" "argumento de Python se escribirá en el parámetro sin ninguna verificación de " "rango, incluso para valores negativos." -#: ../Doc/howto/clinic.rst:787 ../Doc/howto/clinic.rst:1325 -msgid "``converter``" +#: ../Doc/howto/clinic.rst:894 +#, fuzzy +msgid "*converter*" msgstr "``converter``" -#: ../Doc/howto/clinic.rst:785 +#: ../Doc/howto/clinic.rst:892 msgid "" "Only supported by the ``object`` converter. Specifies the name of a :ref:`C " "\"converter function\" ` to use to convert this object to a " @@ -1302,11 +1401,12 @@ msgstr "" "una :ref:`\"función de conversión\" C ` para convertir este " "objeto en un tipo nativo." -#: ../Doc/howto/clinic.rst:792 -msgid "``encoding``" +#: ../Doc/howto/clinic.rst:899 +#, fuzzy +msgid "*encoding*" msgstr "``encoding``" -#: ../Doc/howto/clinic.rst:790 +#: ../Doc/howto/clinic.rst:897 msgid "" "Only supported for strings. Specifies the encoding to use when converting " "this string from a Python str (Unicode) value into a C ``char *`` value." @@ -1315,11 +1415,12 @@ msgstr "" "utilizará al convertir esta cadena de un valor Python str (Unicode) en un " "valor ``char *`` de C." -#: ../Doc/howto/clinic.rst:796 -msgid "``subclass_of``" +#: ../Doc/howto/clinic.rst:903 +#, fuzzy +msgid "*subclass_of*" msgstr "``subclass_of``" -#: ../Doc/howto/clinic.rst:795 +#: ../Doc/howto/clinic.rst:902 msgid "" "Only supported for the ``object`` converter. Requires that the Python value " "be a subclass of a Python type, as expressed in C." @@ -1327,11 +1428,11 @@ msgstr "" "Solo compatible con el convertidor de ``objetos``. Requiere que el valor de " "Python sea una subclase de un tipo de Python, como se expresa en C." -#: ../Doc/howto/clinic.rst:801 ../Doc/howto/clinic.rst:1297 -msgid "``type``" -msgstr "``type``" +#: ../Doc/howto/clinic.rst:908 +msgid "*type*" +msgstr "" -#: ../Doc/howto/clinic.rst:799 +#: ../Doc/howto/clinic.rst:906 msgid "" "Only supported for the ``object`` and ``self`` converters. Specifies the C " "type that will be used to declare the variable. Default value is " @@ -1341,11 +1442,12 @@ msgstr "" "el tipo C que se utilizará para declarar la variable. El valor " "predeterminado es ``\"PyObject *\"``." -#: ../Doc/howto/clinic.rst:807 -msgid "``zeroes``" +#: ../Doc/howto/clinic.rst:914 +#, fuzzy +msgid "*zeroes*" msgstr "``zeroes``" -#: ../Doc/howto/clinic.rst:804 +#: ../Doc/howto/clinic.rst:911 msgid "" "Only supported for strings. If true, embedded NUL bytes (``'\\\\0'``) are " "permitted inside the value. The length of the string will be passed in to " @@ -1357,15 +1459,16 @@ msgstr "" "pasará a la función impl, justo después del parámetro de cadena, como un " "parámetro llamado ``_length``." -#: ../Doc/howto/clinic.rst:809 +#: ../Doc/howto/clinic.rst:916 +#, fuzzy msgid "" "Please note, not every possible combination of arguments will work. Usually " -"these arguments are implemented by specific ``PyArg_ParseTuple`` *format " -"units*, with specific behavior. For example, currently you cannot call " -"``unsigned_short`` without also specifying ``bitwise=True``. Although it's " -"perfectly reasonable to think this would work, these semantics don't map to " -"any existing format unit. So Argument Clinic doesn't support it. (Or, at " -"least, not yet.)" +"these arguments are implemented by specific :c:func:`PyArg_ParseTuple` " +"*format units*, with specific behavior. For example, currently you cannot " +"call ``unsigned_short`` without also specifying ``bitwise=True``. Although " +"it's perfectly reasonable to think this would work, these semantics don't " +"map to any existing format unit. So Argument Clinic doesn't support it. " +"(Or, at least, not yet.)" msgstr "" "Tenga en cuenta que no todas las combinaciones posibles de argumentos " "funcionarán. Por lo general, estos argumentos se implementan mediante " @@ -1376,7 +1479,7 @@ msgstr "" "asigna a ninguna unidad de formato existente. Entonces, Argument Clinic no " "lo admite. (O, al menos, todavía no)." -#: ../Doc/howto/clinic.rst:817 +#: ../Doc/howto/clinic.rst:924 msgid "" "Below is a table showing the mapping of legacy converters into real Argument " "Clinic converters. On the left is the legacy converter, on the right is the " @@ -1386,83 +1489,83 @@ msgstr "" "heredados en convertidores de Argument Clinic reales. A la izquierda está el " "convertidor heredado, a la derecha está el texto con el que lo reemplazaría." -#: ../Doc/howto/clinic.rst:822 +#: ../Doc/howto/clinic.rst:929 msgid "``'B'``" msgstr "``'B'``" -#: ../Doc/howto/clinic.rst:822 +#: ../Doc/howto/clinic.rst:929 msgid "``unsigned_char(bitwise=True)``" msgstr "``unsigned_char(bitwise=True)``" -#: ../Doc/howto/clinic.rst:823 +#: ../Doc/howto/clinic.rst:930 msgid "``'b'``" msgstr "``'b'``" -#: ../Doc/howto/clinic.rst:823 +#: ../Doc/howto/clinic.rst:930 msgid "``unsigned_char``" msgstr "``unsigned_char``" -#: ../Doc/howto/clinic.rst:824 +#: ../Doc/howto/clinic.rst:931 msgid "``'c'``" msgstr "``'c'``" -#: ../Doc/howto/clinic.rst:824 +#: ../Doc/howto/clinic.rst:931 msgid "``char``" msgstr "``char``" -#: ../Doc/howto/clinic.rst:825 +#: ../Doc/howto/clinic.rst:932 msgid "``'C'``" msgstr "``'C'``" -#: ../Doc/howto/clinic.rst:825 +#: ../Doc/howto/clinic.rst:932 msgid "``int(accept={str})``" msgstr "``int(accept={str})``" -#: ../Doc/howto/clinic.rst:826 +#: ../Doc/howto/clinic.rst:933 msgid "``'d'``" msgstr "``'d'``" -#: ../Doc/howto/clinic.rst:826 +#: ../Doc/howto/clinic.rst:933 msgid "``double``" msgstr "``double``" -#: ../Doc/howto/clinic.rst:827 +#: ../Doc/howto/clinic.rst:934 msgid "``'D'``" msgstr "``'D'``" -#: ../Doc/howto/clinic.rst:827 +#: ../Doc/howto/clinic.rst:934 msgid "``Py_complex``" msgstr "``Py_complex``" -#: ../Doc/howto/clinic.rst:828 +#: ../Doc/howto/clinic.rst:935 msgid "``'es'``" msgstr "``'es'``" -#: ../Doc/howto/clinic.rst:828 +#: ../Doc/howto/clinic.rst:935 msgid "``str(encoding='name_of_encoding')``" msgstr "``str(encoding='name_of_encoding')``" -#: ../Doc/howto/clinic.rst:829 +#: ../Doc/howto/clinic.rst:936 msgid "``'es#'``" msgstr "``'es#'``" -#: ../Doc/howto/clinic.rst:829 +#: ../Doc/howto/clinic.rst:936 msgid "``str(encoding='name_of_encoding', zeroes=True)``" msgstr "``str(encoding='name_of_encoding', zeroes=True)``" -#: ../Doc/howto/clinic.rst:830 +#: ../Doc/howto/clinic.rst:937 msgid "``'et'``" msgstr "``'et'``" -#: ../Doc/howto/clinic.rst:830 +#: ../Doc/howto/clinic.rst:937 msgid "``str(encoding='name_of_encoding', accept={bytes, bytearray, str})``" msgstr "``str(encoding='name_of_encoding', accept={bytes, bytearray, str})``" -#: ../Doc/howto/clinic.rst:831 +#: ../Doc/howto/clinic.rst:938 msgid "``'et#'``" msgstr "``'et#'``" -#: ../Doc/howto/clinic.rst:831 +#: ../Doc/howto/clinic.rst:938 msgid "" "``str(encoding='name_of_encoding', accept={bytes, bytearray, str}, " "zeroes=True)``" @@ -1470,255 +1573,259 @@ msgstr "" "``str(encoding='name_of_encoding', accept={bytes, bytearray, str}, " "zeroes=True)``" -#: ../Doc/howto/clinic.rst:832 +#: ../Doc/howto/clinic.rst:939 msgid "``'f'``" msgstr "``'f'``" -#: ../Doc/howto/clinic.rst:832 +#: ../Doc/howto/clinic.rst:939 msgid "``float``" msgstr "``float``" -#: ../Doc/howto/clinic.rst:833 +#: ../Doc/howto/clinic.rst:940 msgid "``'h'``" msgstr "``'h'``" -#: ../Doc/howto/clinic.rst:833 +#: ../Doc/howto/clinic.rst:940 msgid "``short``" msgstr "``short``" -#: ../Doc/howto/clinic.rst:834 +#: ../Doc/howto/clinic.rst:941 msgid "``'H'``" msgstr "``'H'``" -#: ../Doc/howto/clinic.rst:834 +#: ../Doc/howto/clinic.rst:941 msgid "``unsigned_short(bitwise=True)``" msgstr "``unsigned_short(bitwise=True)``" -#: ../Doc/howto/clinic.rst:835 +#: ../Doc/howto/clinic.rst:942 msgid "``'i'``" msgstr "``'i'``" -#: ../Doc/howto/clinic.rst:835 +#: ../Doc/howto/clinic.rst:942 msgid "``int``" msgstr "``int``" -#: ../Doc/howto/clinic.rst:836 +#: ../Doc/howto/clinic.rst:943 msgid "``'I'``" msgstr "``'I'``" -#: ../Doc/howto/clinic.rst:836 +#: ../Doc/howto/clinic.rst:943 msgid "``unsigned_int(bitwise=True)``" msgstr "``unsigned_int(bitwise=True)``" -#: ../Doc/howto/clinic.rst:837 +#: ../Doc/howto/clinic.rst:944 msgid "``'k'``" msgstr "``'k'``" -#: ../Doc/howto/clinic.rst:837 +#: ../Doc/howto/clinic.rst:944 msgid "``unsigned_long(bitwise=True)``" msgstr "``unsigned_long(bitwise=True)``" -#: ../Doc/howto/clinic.rst:838 +#: ../Doc/howto/clinic.rst:945 msgid "``'K'``" msgstr "``'K'``" -#: ../Doc/howto/clinic.rst:838 +#: ../Doc/howto/clinic.rst:945 msgid "``unsigned_long_long(bitwise=True)``" msgstr "``unsigned_long_long(bitwise=True)``" -#: ../Doc/howto/clinic.rst:839 +#: ../Doc/howto/clinic.rst:946 msgid "``'l'``" msgstr "``'l'``" -#: ../Doc/howto/clinic.rst:839 +#: ../Doc/howto/clinic.rst:946 msgid "``long``" msgstr "``long``" -#: ../Doc/howto/clinic.rst:840 +#: ../Doc/howto/clinic.rst:947 msgid "``'L'``" msgstr "``'L'``" -#: ../Doc/howto/clinic.rst:840 +#: ../Doc/howto/clinic.rst:947 msgid "``long long``" msgstr "``long long``" -#: ../Doc/howto/clinic.rst:841 +#: ../Doc/howto/clinic.rst:948 msgid "``'n'``" msgstr "``'n'``" -#: ../Doc/howto/clinic.rst:841 +#: ../Doc/howto/clinic.rst:948 msgid "``Py_ssize_t``" msgstr "``Py_ssize_t``" -#: ../Doc/howto/clinic.rst:842 +#: ../Doc/howto/clinic.rst:949 msgid "``'O'``" msgstr "``'O'``" -#: ../Doc/howto/clinic.rst:842 +#: ../Doc/howto/clinic.rst:949 msgid "``object``" msgstr "``object``" -#: ../Doc/howto/clinic.rst:843 +#: ../Doc/howto/clinic.rst:950 msgid "``'O!'``" msgstr "``'O!'``" -#: ../Doc/howto/clinic.rst:843 +#: ../Doc/howto/clinic.rst:950 msgid "``object(subclass_of='&PySomething_Type')``" msgstr "``object(subclass_of='&PySomething_Type')``" -#: ../Doc/howto/clinic.rst:844 +#: ../Doc/howto/clinic.rst:951 msgid "``'O&'``" msgstr "``'O&'``" -#: ../Doc/howto/clinic.rst:844 +#: ../Doc/howto/clinic.rst:951 msgid "``object(converter='name_of_c_function')``" msgstr "``object(converter='name_of_c_function')``" -#: ../Doc/howto/clinic.rst:845 +#: ../Doc/howto/clinic.rst:952 msgid "``'p'``" msgstr "``'p'``" -#: ../Doc/howto/clinic.rst:845 +#: ../Doc/howto/clinic.rst:952 msgid "``bool``" msgstr "``bool``" -#: ../Doc/howto/clinic.rst:846 +#: ../Doc/howto/clinic.rst:953 msgid "``'S'``" msgstr "``'S'``" -#: ../Doc/howto/clinic.rst:846 +#: ../Doc/howto/clinic.rst:953 msgid "``PyBytesObject``" msgstr "``PyBytesObject``" -#: ../Doc/howto/clinic.rst:847 +#: ../Doc/howto/clinic.rst:954 msgid "``'s'``" msgstr "``'s'``" -#: ../Doc/howto/clinic.rst:847 +#: ../Doc/howto/clinic.rst:954 msgid "``str``" msgstr "``str``" -#: ../Doc/howto/clinic.rst:848 +#: ../Doc/howto/clinic.rst:955 msgid "``'s#'``" msgstr "``'s#'``" -#: ../Doc/howto/clinic.rst:848 +#: ../Doc/howto/clinic.rst:955 msgid "``str(zeroes=True)``" msgstr "``str(zeroes=True)``" -#: ../Doc/howto/clinic.rst:849 +#: ../Doc/howto/clinic.rst:956 msgid "``'s*'``" msgstr "``'s*'``" -#: ../Doc/howto/clinic.rst:849 +#: ../Doc/howto/clinic.rst:956 msgid "``Py_buffer(accept={buffer, str})``" msgstr "``Py_buffer(accept={buffer, str})``" -#: ../Doc/howto/clinic.rst:850 +#: ../Doc/howto/clinic.rst:957 msgid "``'U'``" msgstr "``'U'``" -#: ../Doc/howto/clinic.rst:850 +#: ../Doc/howto/clinic.rst:957 msgid "``unicode``" msgstr "``unicode``" -#: ../Doc/howto/clinic.rst:851 +#: ../Doc/howto/clinic.rst:958 msgid "``'u'``" msgstr "``'u'``" -#: ../Doc/howto/clinic.rst:851 -msgid "``Py_UNICODE``" -msgstr "``Py_UNICODE``" +#: ../Doc/howto/clinic.rst:958 +#, fuzzy +msgid "``wchar_t``" +msgstr "``char``" -#: ../Doc/howto/clinic.rst:852 +#: ../Doc/howto/clinic.rst:959 msgid "``'u#'``" msgstr "``'u#'``" -#: ../Doc/howto/clinic.rst:852 -msgid "``Py_UNICODE(zeroes=True)``" -msgstr "``Py_UNICODE(zeroes=True)``" +#: ../Doc/howto/clinic.rst:959 +#, fuzzy +msgid "``wchar_t(zeroes=True)``" +msgstr "``str(zeroes=True)``" -#: ../Doc/howto/clinic.rst:853 +#: ../Doc/howto/clinic.rst:960 msgid "``'w*'``" msgstr "``'w*'``" -#: ../Doc/howto/clinic.rst:853 +#: ../Doc/howto/clinic.rst:960 msgid "``Py_buffer(accept={rwbuffer})``" msgstr "``Py_buffer(accept={rwbuffer})``" -#: ../Doc/howto/clinic.rst:854 +#: ../Doc/howto/clinic.rst:961 msgid "``'Y'``" msgstr "``'Y'``" -#: ../Doc/howto/clinic.rst:854 +#: ../Doc/howto/clinic.rst:961 msgid "``PyByteArrayObject``" msgstr "``PyByteArrayObject``" -#: ../Doc/howto/clinic.rst:855 +#: ../Doc/howto/clinic.rst:962 msgid "``'y'``" msgstr "``'y'``" -#: ../Doc/howto/clinic.rst:855 +#: ../Doc/howto/clinic.rst:962 msgid "``str(accept={bytes})``" msgstr "``str(accept={bytes})``" -#: ../Doc/howto/clinic.rst:856 +#: ../Doc/howto/clinic.rst:963 msgid "``'y#'``" msgstr "``'y#'``" -#: ../Doc/howto/clinic.rst:856 +#: ../Doc/howto/clinic.rst:963 msgid "``str(accept={robuffer}, zeroes=True)``" msgstr "``str(accept={robuffer}, zeroes=True)``" -#: ../Doc/howto/clinic.rst:857 +#: ../Doc/howto/clinic.rst:964 msgid "``'y*'``" msgstr "``'y*'``" -#: ../Doc/howto/clinic.rst:857 +#: ../Doc/howto/clinic.rst:964 msgid "``Py_buffer``" msgstr "``Py_buffer``" -#: ../Doc/howto/clinic.rst:858 +#: ../Doc/howto/clinic.rst:965 msgid "``'Z'``" msgstr "``'Z'``" -#: ../Doc/howto/clinic.rst:858 -msgid "``Py_UNICODE(accept={str, NoneType})``" -msgstr "``Py_UNICODE(accept={str, NoneType})``" +#: ../Doc/howto/clinic.rst:965 +#, fuzzy +msgid "``wchar_t(accept={str, NoneType})``" +msgstr "``str(accept={str, NoneType})``" -#: ../Doc/howto/clinic.rst:859 +#: ../Doc/howto/clinic.rst:966 msgid "``'Z#'``" msgstr "``'Z#'``" -#: ../Doc/howto/clinic.rst:859 -msgid "``Py_UNICODE(accept={str, NoneType}, zeroes=True)``" -msgstr "``Py_UNICODE(accept={str, NoneType}, zeroes=True)``" +#: ../Doc/howto/clinic.rst:966 +#, fuzzy +msgid "``wchar_t(accept={str, NoneType}, zeroes=True)``" +msgstr "``str(accept={str, NoneType}, zeroes=True)``" -#: ../Doc/howto/clinic.rst:860 +#: ../Doc/howto/clinic.rst:967 msgid "``'z'``" msgstr "``'z'``" -#: ../Doc/howto/clinic.rst:860 +#: ../Doc/howto/clinic.rst:967 msgid "``str(accept={str, NoneType})``" msgstr "``str(accept={str, NoneType})``" -#: ../Doc/howto/clinic.rst:861 +#: ../Doc/howto/clinic.rst:968 msgid "``'z#'``" msgstr "``'z#'``" -#: ../Doc/howto/clinic.rst:861 +#: ../Doc/howto/clinic.rst:968 msgid "``str(accept={str, NoneType}, zeroes=True)``" msgstr "``str(accept={str, NoneType}, zeroes=True)``" -#: ../Doc/howto/clinic.rst:862 +#: ../Doc/howto/clinic.rst:969 msgid "``'z*'``" msgstr "``'z*'``" -#: ../Doc/howto/clinic.rst:862 +#: ../Doc/howto/clinic.rst:969 msgid "``Py_buffer(accept={buffer, str, NoneType})``" msgstr "``Py_buffer(accept={buffer, str, NoneType})``" -#: ../Doc/howto/clinic.rst:865 +#: ../Doc/howto/clinic.rst:972 msgid "" "As an example, here's our sample ``pickle.Pickler.dump`` using the proper " "converter::" @@ -1726,7 +1833,7 @@ msgstr "" "Como ejemplo, aquí está nuestra muestra ``pickle.Pickler.dump`` usando el " "convertidor adecuado::" -#: ../Doc/howto/clinic.rst:878 +#: ../Doc/howto/clinic.rst:985 msgid "" "One advantage of real converters is that they're more flexible than legacy " "converters. For example, the ``unsigned_int`` converter (and all the " @@ -1741,7 +1848,7 @@ msgstr "" "de rango en el valor y no aceptarán números negativos. ¡No puedes hacer eso " "con un convertidor heredado!" -#: ../Doc/howto/clinic.rst:884 +#: ../Doc/howto/clinic.rst:991 msgid "" "Argument Clinic will show you all the converters it has available. For each " "converter it'll show you all the parameters it accepts, along with the " @@ -1753,11 +1860,11 @@ msgstr "" "con el valor predeterminado para cada parámetro. Simplemente ejecute ``Tools/" "clinic/clinic.py --converters`` para ver la lista completa." -#: ../Doc/howto/clinic.rst:890 -msgid "Py_buffer" -msgstr "Py_buffer" +#: ../Doc/howto/clinic.rst:998 +msgid "How to use the ``Py_buffer`` converter" +msgstr "" -#: ../Doc/howto/clinic.rst:892 +#: ../Doc/howto/clinic.rst:1000 msgid "" "When using the ``Py_buffer`` converter (or the ``'s*'``, ``'w*'``, ``'*y'``, " "or ``'z*'`` legacy converters), you *must* not call :c:func:" @@ -1769,11 +1876,12 @@ msgstr "" "func:`PyBuffer_Release` en el búfer provisto. Argument Clinic genera código " "que lo hace por usted (en la función de análisis)." -#: ../Doc/howto/clinic.rst:900 -msgid "Advanced converters" +#: ../Doc/howto/clinic.rst:1009 +#, fuzzy +msgid "How to use advanced converters" msgstr "Convertidores avanzados" -#: ../Doc/howto/clinic.rst:902 +#: ../Doc/howto/clinic.rst:1011 msgid "" "Remember those format units you skipped for your first time because they " "were advanced? Here's how to handle those too." @@ -1781,15 +1889,16 @@ msgstr "" "¿Recuerda esas unidades de formato que omitió por primera vez porque eran " "avanzadas? Aquí le mostramos cómo manejarlas también." -#: ../Doc/howto/clinic.rst:905 +#: ../Doc/howto/clinic.rst:1014 +#, fuzzy msgid "" "The trick is, all those format units take arguments—either conversion " "functions, or types, or strings specifying an encoding. (But \"legacy " "converters\" don't support arguments. That's why we skipped them for your " "first function.) The argument you specified to the format unit is now an " -"argument to the converter; this argument is either ``converter`` (for " -"``O&``), ``subclass_of`` (for ``O!``), or ``encoding`` (for all the format " -"units that start with ``e``)." +"argument to the converter; this argument is either *converter* (for ``O&``), " +"*subclass_of* (for ``O!``), or *encoding* (for all the format units that " +"start with ``e``)." msgstr "" "El truco es que todas esas unidades de formato toman argumentos, ya sean " "funciones de conversión o tipos, o cadenas que especifican una codificación. " @@ -1799,12 +1908,13 @@ msgstr "" "es ``converter`` (para ``O&``), ``subclass_of`` (para ``O!``) o ``encoding`` " "(para todas las unidades de formato que comienzan con ``e``)." -#: ../Doc/howto/clinic.rst:913 +#: ../Doc/howto/clinic.rst:1022 +#, fuzzy msgid "" -"When using ``subclass_of``, you may also want to use the other custom " -"argument for ``object()``: ``type``, which lets you set the type actually " -"used for the parameter. For example, if you want to ensure that the object " -"is a subclass of ``PyUnicode_Type``, you probably want to use the converter " +"When using *subclass_of*, you may also want to use the other custom argument " +"for ``object()``: *type*, which lets you set the type actually used for the " +"parameter. For example, if you want to ensure that the object is a subclass " +"of :c:var:`PyUnicode_Type`, you probably want to use the converter " "``object(type='PyUnicodeObject *', subclass_of='&PyUnicode_Type')``." msgstr "" "Al usar ``subclass_of``, es posible que también desee usar el otro argumento " @@ -1814,17 +1924,18 @@ msgstr "" "utilizar el convertidor ``object(type='PyUnicodeObject *', " "subclass_of='&PyUnicode_Type')``." -#: ../Doc/howto/clinic.rst:919 +#: ../Doc/howto/clinic.rst:1028 +#, fuzzy msgid "" "One possible problem with using Argument Clinic: it takes away some possible " -"flexibility for the format units starting with ``e``. When writing a " -"``PyArg_Parse`` call by hand, you could theoretically decide at runtime what " -"encoding string to pass in to :c:func:`PyArg_ParseTuple`. But now this " -"string must be hard-coded at Argument-Clinic-preprocessing-time. This " -"limitation is deliberate; it made supporting this format unit much easier, " -"and may allow for future optimizations. This restriction doesn't seem " -"unreasonable; CPython itself always passes in static hard-coded encoding " -"strings for parameters whose format units start with ``e``." +"flexibility for the format units starting with ``e``. When writing a :c:" +"func:`!PyArg_Parse*` call by hand, you could theoretically decide at runtime " +"what encoding string to pass to that call. But now this string must be " +"hard-coded at Argument-Clinic-preprocessing-time. This limitation is " +"deliberate; it made supporting this format unit much easier, and may allow " +"for future optimizations. This restriction doesn't seem unreasonable; " +"CPython itself always passes in static hard-coded encoding strings for " +"parameters whose format units start with ``e``." msgstr "" "Un posible problema con el uso de Argument Clinic: elimina cierta " "flexibilidad posible para las unidades de formato que comienzan con ``e``. " @@ -1837,11 +1948,11 @@ msgstr "" "propio CPython siempre pasa cadenas de codificación estáticas codificadas " "para parámetros cuyas unidades de formato comienzan con ``e``." -#: ../Doc/howto/clinic.rst:932 -msgid "Parameter default values" -msgstr "Valores predeterminados de los parámetros" +#: ../Doc/howto/clinic.rst:1042 +msgid "How to assign default values to parameter" +msgstr "" -#: ../Doc/howto/clinic.rst:934 +#: ../Doc/howto/clinic.rst:1044 msgid "" "Default values for parameters can be any of a number of values. At their " "simplest, they can be string, int, or float literals:" @@ -1850,12 +1961,12 @@ msgstr "" "varios valores. En su forma más simple, pueden ser literales string, int o " "float:" -#: ../Doc/howto/clinic.rst:943 +#: ../Doc/howto/clinic.rst:1053 msgid "They can also use any of Python's built-in constants:" msgstr "" "También pueden usar cualquiera de las constantes incorporadas de Python:" -#: ../Doc/howto/clinic.rst:951 +#: ../Doc/howto/clinic.rst:1061 msgid "" "There's also special support for a default value of ``NULL``, and for simple " "expressions, documented in the following sections." @@ -1863,11 +1974,11 @@ msgstr "" "También hay soporte especial para un valor predeterminado de ``NULL`` y para " "expresiones simples, documentadas en las siguientes secciones." -#: ../Doc/howto/clinic.rst:956 +#: ../Doc/howto/clinic.rst:1066 msgid "The ``NULL`` default value" msgstr "El valor predeterminado ``NULL``" -#: ../Doc/howto/clinic.rst:958 +#: ../Doc/howto/clinic.rst:1068 msgid "" "For string and object parameters, you can set them to ``None`` to indicate " "that there's no default. However, that means the C variable will be " @@ -1883,11 +1994,53 @@ msgstr "" "desde la perspectiva de Python se comporta como un valor predeterminado de " "``None``, pero la variable C se inicializa con ``NULL``." -#: ../Doc/howto/clinic.rst:966 -msgid "Expressions specified as default values" +#: ../Doc/howto/clinic.rst:1077 +msgid "Symbolic default values" +msgstr "Valores predeterminados simbólicos" + +#: ../Doc/howto/clinic.rst:1079 +msgid "" +"The default value you provide for a parameter can't be any arbitrary " +"expression. Currently the following are explicitly supported:" +msgstr "" +"El valor predeterminado que proporcione para un parámetro no puede ser una " +"expresión arbitraria. Actualmente, lo siguiente se admite explícitamente:" + +#: ../Doc/howto/clinic.rst:1082 +msgid "Numeric constants (integer and float)" +msgstr "Constantes numéricas (enteros y flotantes)" + +#: ../Doc/howto/clinic.rst:1083 +msgid "String constants" +msgstr "Constantes de cadena de caracteres" + +#: ../Doc/howto/clinic.rst:1084 +msgid "``True``, ``False``, and ``None``" +msgstr "``True``, ``False``, y ``None``" + +#: ../Doc/howto/clinic.rst:1085 +#, fuzzy +msgid "" +"Simple symbolic constants like :py:data:`sys.maxsize`, which must start with " +"the name of the module" +msgstr "" +"Constantes simbólicas simples como ``sys.maxsize``, que debe comenzar con el " +"nombre del módulo" + +#: ../Doc/howto/clinic.rst:1088 +msgid "" +"(In the future, this may need to get even more elaborate, to allow full " +"expressions like ``CONSTANT - 1``.)" +msgstr "" +"(En el futuro, esto puede necesitar ser aún más elaborado, para permitir " +"expresiones completas como ``CONSTANT - 1``.)" + +#: ../Doc/howto/clinic.rst:1093 +#, fuzzy +msgid "Expressions as default values" msgstr "Expresiones especificadas como valores por defecto" -#: ../Doc/howto/clinic.rst:968 +#: ../Doc/howto/clinic.rst:1095 msgid "" "The default value for a parameter can be more than just a literal value. It " "can be an entire expression, using math operators and looking up attributes " @@ -1899,16 +2052,17 @@ msgstr "" "buscando atributos en objetos. Sin embargo, este soporte no es exactamente " "simple, debido a una semántica no obvia." -#: ../Doc/howto/clinic.rst:973 +#: ../Doc/howto/clinic.rst:1100 msgid "Consider the following example:" msgstr "Considere el siguiente ejemplo:" -#: ../Doc/howto/clinic.rst:979 +#: ../Doc/howto/clinic.rst:1106 +#, fuzzy msgid "" -"``sys.maxsize`` can have different values on different platforms. Therefore " -"Argument Clinic can't simply evaluate that expression locally and hard-code " -"it in C. So it stores the default in such a way that it will get evaluated " -"at runtime, when the user asks for the function's signature." +":py:data:`sys.maxsize` can have different values on different platforms. " +"Therefore Argument Clinic can't simply evaluate that expression locally and " +"hard-code it in C. So it stores the default in such a way that it will get " +"evaluated at runtime, when the user asks for the function's signature." msgstr "" "``sys.maxsize`` puede tener diferentes valores en diferentes plataformas. " "Por lo tanto, Argument Clinic no puede simplemente evaluar esa expresión " @@ -1916,24 +2070,27 @@ msgstr "" "predeterminado de tal manera que se evaluará en tiempo de ejecución, cuando " "el usuario solicite la firma de la función." -#: ../Doc/howto/clinic.rst:984 +#: ../Doc/howto/clinic.rst:1111 +#, fuzzy msgid "" "What namespace is available when the expression is evaluated? It's " "evaluated in the context of the module the builtin came from. So, if your " -"module has an attribute called \"``max_widgets``\", you may simply use it:" +"module has an attribute called :py:attr:`!max_widgets`, you may simply use " +"it:" msgstr "" "¿Qué espacio de nombres está disponible cuando se evalúa la expresión? Se " "evalúa en el contexto del módulo del que procede el incorporado. Entonces, " "si su módulo tiene un atributo llamado \"``max_widgets``\", simplemente " "puede usarlo:" -#: ../Doc/howto/clinic.rst:992 +#: ../Doc/howto/clinic.rst:1119 +#, fuzzy msgid "" -"If the symbol isn't found in the current module, it fails over to looking in " -"``sys.modules``. That's how it can find ``sys.maxsize`` for example. " -"(Since you don't know in advance what modules the user will load into their " -"interpreter, it's best to restrict yourself to modules that are preloaded by " -"Python itself.)" +"If the symbol isn't found in the current module, it fails over to looking " +"in :py:data:`sys.modules`. That's how it can find :py:data:`sys.maxsize` " +"for example. (Since you don't know in advance what modules the user will " +"load into their interpreter, it's best to restrict yourself to modules that " +"are preloaded by Python itself.)" msgstr "" "Si el símbolo no se encuentra en el módulo actual, falla para buscar en " "``sys.modules``. Así es como puede encontrar ``sys.maxsize``, por ejemplo. " @@ -1941,12 +2098,13 @@ msgstr "" "intérprete, es mejor limitarse a los módulos que están precargados por el " "propio Python)." -#: ../Doc/howto/clinic.rst:997 +#: ../Doc/howto/clinic.rst:1124 +#, fuzzy msgid "" "Evaluating default values only at runtime means Argument Clinic can't " "compute the correct equivalent C default value. So you need to tell it " "explicitly. When you use an expression, you must also specify the equivalent " -"expression in C, using the ``c_default`` parameter to the converter:" +"expression in C, using the *c_default* parameter to the converter:" msgstr "" "La evaluación de los valores predeterminados solo en tiempo de ejecución " "significa que Argument Clinic no puede calcular el valor predeterminado de C " @@ -1954,7 +2112,7 @@ msgstr "" "una expresión, también debe especificar la expresión equivalente en C, " "usando el parámetro ``c_default`` para el convertidor:" -#: ../Doc/howto/clinic.rst:1006 +#: ../Doc/howto/clinic.rst:1133 msgid "" "Another complication: Argument Clinic can't know in advance whether or not " "the expression you supply is valid. It parses it to make sure it looks " @@ -1967,7 +2125,7 @@ msgstr "" "al usar expresiones para especificar valores que están garantizados para ser " "válidos en tiempo de ejecución!" -#: ../Doc/howto/clinic.rst:1011 +#: ../Doc/howto/clinic.rst:1138 msgid "" "Finally, because expressions must be representable as static C values, there " "are many restrictions on legal expressions. Here's a list of Python " @@ -1977,38 +2135,40 @@ msgstr "" "estáticos, existen muchas restricciones sobre las expresiones legales. Aquí " "hay una lista de funciones de Python que no está autorizado a usar:" -#: ../Doc/howto/clinic.rst:1015 +#: ../Doc/howto/clinic.rst:1142 msgid "Function calls." msgstr "Llamadas a funciones." -#: ../Doc/howto/clinic.rst:1016 +#: ../Doc/howto/clinic.rst:1143 msgid "Inline if statements (``3 if foo else 5``)." msgstr "Declaraciones if en línea (``3 if foo else 5``)." -#: ../Doc/howto/clinic.rst:1017 +#: ../Doc/howto/clinic.rst:1144 msgid "Automatic sequence unpacking (``*[1, 2, 3]``)." msgstr "Desempaque automático de secuencia (``*[1, 2, 3]``)." -#: ../Doc/howto/clinic.rst:1018 +#: ../Doc/howto/clinic.rst:1145 msgid "List/set/dict comprehensions and generator expressions." msgstr "Comprensiones de list/set/dict y expresiones generadoras." -#: ../Doc/howto/clinic.rst:1019 +#: ../Doc/howto/clinic.rst:1146 msgid "Tuple/list/set/dict literals." msgstr "Literales tuple/list/set/dict." -#: ../Doc/howto/clinic.rst:1024 -msgid "Using a return converter" -msgstr "Usando un convertidor de retorno" +#: ../Doc/howto/clinic.rst:1152 +#, fuzzy +msgid "How to use return converters" +msgstr "su convertidor de retorno." -#: ../Doc/howto/clinic.rst:1026 +#: ../Doc/howto/clinic.rst:1154 +#, fuzzy msgid "" -"By default the impl function Argument Clinic generates for you returns " -"``PyObject *``. But your C function often computes some C type, then " -"converts it into the ``PyObject *`` at the last moment. Argument Clinic " -"handles converting your inputs from Python types into native C types—why not " -"have it convert your return value from a native C type into a Python type " -"too?" +"By default, the impl function Argument Clinic generates for you returns :c:" +"type:`PyObject * `. But your C function often computes some C " +"type, then converts it into the :c:type:`!PyObject *` at the last moment. " +"Argument Clinic handles converting your inputs from Python types into native " +"C types—why not have it convert your return value from a native C type into " +"a Python type too?" msgstr "" "De forma predeterminada, la función implícita Argument Clinic genera para " "usted retorna ``PyObject *``. Pero su función C a menudo calcula algún tipo " @@ -2017,25 +2177,24 @@ msgstr "" "nativos; ¿por qué no convertir su valor de retorno de un tipo C nativo en un " "tipo Python también?" -#: ../Doc/howto/clinic.rst:1032 +#: ../Doc/howto/clinic.rst:1162 +#, fuzzy msgid "" "That's what a \"return converter\" does. It changes your impl function to " "return some C type, then adds code to the generated (non-impl) function to " -"handle converting that value into the appropriate ``PyObject *``." +"handle converting that value into the appropriate :c:type:`!PyObject *`." msgstr "" "Eso es lo que hace un \"convertidor de retorno\". Cambia su función *impl* " "para retornar algún tipo de C, luego agrega código a la función generada (no " "implícita) para manejar la conversión de ese valor en el ``PyObject *`` " "apropiado." -#: ../Doc/howto/clinic.rst:1036 +#: ../Doc/howto/clinic.rst:1166 +#, fuzzy msgid "" "The syntax for return converters is similar to that of parameter converters. " "You specify the return converter like it was a return annotation on the " -"function itself. Return converters behave much the same as parameter " -"converters; they take arguments, the arguments are all keyword-only, and if " -"you're not changing any of the default arguments you can omit the " -"parentheses." +"function itself, using ``->`` notation." msgstr "" "La sintaxis de los convertidores de retorno es similar a la de los " "convertidores de parámetros. Especifica el convertidor de retorno como si " @@ -2045,7 +2204,27 @@ msgstr "" "está cambiando ninguno de los argumentos predeterminados, puede omitir los " "paréntesis." -#: ../Doc/howto/clinic.rst:1042 +#: ../Doc/howto/clinic.rst:1170 +#, fuzzy +msgid "For example:" +msgstr "Muestra::" + +#: ../Doc/howto/clinic.rst:1183 +#, fuzzy +msgid "" +"Return converters behave much the same as parameter converters; they take " +"arguments, the arguments are all keyword-only, and if you're not changing " +"any of the default arguments you can omit the parentheses." +msgstr "" +"La sintaxis de los convertidores de retorno es similar a la de los " +"convertidores de parámetros. Especifica el convertidor de retorno como si " +"fuera una anotación de retorno en la función en sí. Los convertidores de " +"retorno se comportan de la misma manera que los convertidores de parámetros; " +"aceptan argumentos, todos los argumentos son solo palabras clave y, si no " +"está cambiando ninguno de los argumentos predeterminados, puede omitir los " +"paréntesis." + +#: ../Doc/howto/clinic.rst:1187 msgid "" "(If you use both ``\"as\"`` *and* a return converter for your function, the " "``\"as\"`` should come before the return converter.)" @@ -2053,7 +2232,8 @@ msgstr "" "(Si utiliza tanto ``\"as\"`` *y* un convertidor de retorno para su función, " "el ``\"as\"`` debe aparecer antes del convertidor de retorno.)" -#: ../Doc/howto/clinic.rst:1045 +#: ../Doc/howto/clinic.rst:1190 +#, fuzzy msgid "" "There's one additional complication when using return converters: how do you " "indicate an error has occurred? Normally, a function returns a valid (non-" @@ -2061,7 +2241,7 @@ msgid "" "integer return converter, all integers are valid. How can Argument Clinic " "detect an error? Its solution: each return converter implicitly looks for a " "special value that indicates an error. If you return that value, and an " -"error has been set (``PyErr_Occurred()`` returns a true value), then the " +"error has been set (c:func:`PyErr_Occurred` returns a true value), then the " "generated code will propagate the error. Otherwise it will encode the value " "you return like normal." msgstr "" @@ -2075,34 +2255,18 @@ msgstr "" "un valor verdadero), el código generado propagará el error. De lo contrario, " "codificará el valor que retorna como de costumbre." -#: ../Doc/howto/clinic.rst:1054 +#: ../Doc/howto/clinic.rst:1199 msgid "Currently Argument Clinic supports only a few return converters:" msgstr "" "Actualmente, Argument Clinic solo admite unos pocos convertidores de retorno:" -#: ../Doc/howto/clinic.rst:1069 -msgid "" -"None of these take parameters. For the first three, return -1 to indicate " -"error. For ``DecodeFSDefault``, the return type is ``const char *``; return " -"a ``NULL`` pointer to indicate an error." -msgstr "" -"Ninguno de estos toma parámetros. Para los tres primeros, retorna -1 para " -"indicar error. Para ``DecodeFSDefault``, el tipo de retorno es ``const char " -"*``; retorna un puntero ``NULL`` para indicar un error." - -#: ../Doc/howto/clinic.rst:1073 +#: ../Doc/howto/clinic.rst:1213 msgid "" -"(There's also an experimental ``NoneType`` converter, which lets you return " -"``Py_None`` on success or ``NULL`` on failure, without having to increment " -"the reference count on ``Py_None``. I'm not sure it adds enough clarity to " -"be worth using.)" +"None of these take parameters. For all of these, return ``-1`` to indicate " +"error." msgstr "" -"(También hay un convertidor experimental ``NoneType``, que le permite " -"retornar ``Py_None`` en caso de éxito o ``NULL`` en caso de falla, sin tener " -"que incrementar el recuento de referencias en ``Py_None``. seguro que agrega " -"suficiente claridad para que valga la pena usarlo)" -#: ../Doc/howto/clinic.rst:1078 +#: ../Doc/howto/clinic.rst:1216 msgid "" "To see all the return converters Argument Clinic supports, along with their " "parameters (if any), just run ``Tools/clinic/clinic.py --converters`` for " @@ -2112,11 +2276,12 @@ msgstr "" "junto con sus parámetros (si los hay), simplemente ejecute ``Tools/clinic/" "clinic.py --converters`` para ver la lista completa." -#: ../Doc/howto/clinic.rst:1084 -msgid "Cloning existing functions" +#: ../Doc/howto/clinic.rst:1222 +#, fuzzy +msgid "How to clone existing functions" msgstr "Clonando funciones existentes" -#: ../Doc/howto/clinic.rst:1086 +#: ../Doc/howto/clinic.rst:1224 msgid "" "If you have a number of functions that look similar, you may be able to use " "Clinic's \"clone\" feature. When you clone an existing function, you reuse:" @@ -2125,27 +2290,27 @@ msgstr "" "utilizar la función \"clone\" de Clinic. Cuando clona una función existente, " "reutiliza:" -#: ../Doc/howto/clinic.rst:1090 +#: ../Doc/howto/clinic.rst:1228 msgid "its parameters, including" msgstr "sus parámetros, incluyendo" -#: ../Doc/howto/clinic.rst:1092 +#: ../Doc/howto/clinic.rst:1230 msgid "their names," msgstr "sus nombres," -#: ../Doc/howto/clinic.rst:1094 +#: ../Doc/howto/clinic.rst:1232 msgid "their converters, with all parameters," msgstr "sus convertidores, con todos los parámetros," -#: ../Doc/howto/clinic.rst:1096 +#: ../Doc/howto/clinic.rst:1234 msgid "their default values," msgstr "sus valores predeterminados," -#: ../Doc/howto/clinic.rst:1098 +#: ../Doc/howto/clinic.rst:1236 msgid "their per-parameter docstrings," msgstr "sus docstrings por parámetro," -#: ../Doc/howto/clinic.rst:1100 +#: ../Doc/howto/clinic.rst:1238 msgid "" "their *kind* (whether they're positional only, positional or keyword, or " "keyword only), and" @@ -2153,11 +2318,11 @@ msgstr "" "su *kind* (ya sea solo posicional, posicional o por palabra clave, o solo " "por palabra clave), y" -#: ../Doc/howto/clinic.rst:1103 +#: ../Doc/howto/clinic.rst:1241 msgid "its return converter." msgstr "su convertidor de retorno." -#: ../Doc/howto/clinic.rst:1105 +#: ../Doc/howto/clinic.rst:1243 msgid "" "The only thing not copied from the original function is its docstring; the " "syntax allows you to specify a new docstring." @@ -2165,11 +2330,11 @@ msgstr "" "Lo único que no se ha copiado de la función original es su docstring; la " "sintaxis le permite especificar un nuevo docstring." -#: ../Doc/howto/clinic.rst:1108 +#: ../Doc/howto/clinic.rst:1246 msgid "Here's the syntax for cloning a function::" msgstr "Aquí está la sintaxis para clonar una función::" -#: ../Doc/howto/clinic.rst:1116 +#: ../Doc/howto/clinic.rst:1254 msgid "" "(The functions can be in different modules or classes. I wrote ``module." "class`` in the sample just to illustrate that you must use the full path to " @@ -2179,7 +2344,7 @@ msgstr "" "class`` en la muestra solo para ilustrar que debe usar la ruta completa a " "*ambas* funciones.)" -#: ../Doc/howto/clinic.rst:1120 +#: ../Doc/howto/clinic.rst:1258 #, fuzzy msgid "" "Sorry, there's no syntax for partially cloning a function, or cloning a " @@ -2189,7 +2354,7 @@ msgstr "" "una función y luego modificarla. La clonación es una propuesta de todo o " "nada." -#: ../Doc/howto/clinic.rst:1123 +#: ../Doc/howto/clinic.rst:1261 msgid "" "Also, the function you are cloning from must have been previously defined in " "the current file." @@ -2197,11 +2362,12 @@ msgstr "" "Además, la función desde la que está clonando debe haberse definido " "previamente en el archivo actual." -#: ../Doc/howto/clinic.rst:1127 -msgid "Calling Python code" +#: ../Doc/howto/clinic.rst:1266 +#, fuzzy +msgid "How to call Python code" msgstr "Llamando código Python" -#: ../Doc/howto/clinic.rst:1129 +#: ../Doc/howto/clinic.rst:1268 msgid "" "The rest of the advanced topics require you to write Python code which lives " "inside your C file and modifies Argument Clinic's runtime state. This is " @@ -2211,7 +2377,7 @@ msgstr "" "dentro de su archivo C y modifica el estado de ejecución de Argument Clinic. " "Esto es simple: simplemente define un bloque de Python." -#: ../Doc/howto/clinic.rst:1133 +#: ../Doc/howto/clinic.rst:1272 msgid "" "A Python block uses different delimiter lines than an Argument Clinic " "function block. It looks like this::" @@ -2219,7 +2385,7 @@ msgstr "" "Un bloque Python utiliza diferentes líneas delimitadoras que un bloque de " "función de la Argument Clinic. Se parece a esto::" -#: ../Doc/howto/clinic.rst:1140 +#: ../Doc/howto/clinic.rst:1279 msgid "" "All the code inside the Python block is executed at the time it's parsed. " "All text written to stdout inside the block is redirected into the " @@ -2229,7 +2395,7 @@ msgstr "" "se analiza. Todo el texto escrito en stdout dentro del bloque se redirige a " "la \"salida\" después del bloque." -#: ../Doc/howto/clinic.rst:1144 +#: ../Doc/howto/clinic.rst:1283 msgid "" "As an example, here's a Python block that adds a static integer variable to " "the C code::" @@ -2237,19 +2403,21 @@ msgstr "" "Como ejemplo, aquí hay un bloque de Python que agrega una variable entera " "estática al código C::" -#: ../Doc/howto/clinic.rst:1155 -msgid "Using a \"self converter\"" +#: ../Doc/howto/clinic.rst:1296 +#, fuzzy +msgid "How to use the \"self converter\"" msgstr "Usando un \"auto convertidor\"" -#: ../Doc/howto/clinic.rst:1157 +#: ../Doc/howto/clinic.rst:1298 +#, fuzzy msgid "" "Argument Clinic automatically adds a \"self\" parameter for you using a " "default converter. It automatically sets the ``type`` of this parameter to " "the \"pointer to an instance\" you specified when you declared the type. " "However, you can override Argument Clinic's converter and specify one " -"yourself. Just add your own ``self`` parameter as the first parameter in a " -"block, and ensure that its converter is an instance of ``self_converter`` or " -"a subclass thereof." +"yourself. Just add your own *self* parameter as the first parameter in a " +"block, and ensure that its converter is an instance of :class:`!" +"self_converter` or a subclass thereof." msgstr "" "Argument Clinic agrega automáticamente un parámetro \"self\" para usted " "usando un convertidor predeterminado. Establece automáticamente el ``tipo`` " @@ -2259,7 +2427,7 @@ msgstr "" "``self`` como el primer parámetro en un bloque y asegúrese de que su " "convertidor sea una instancia de ``self_converter`` o una subclase del mismo." -#: ../Doc/howto/clinic.rst:1166 +#: ../Doc/howto/clinic.rst:1307 msgid "" "What's the point? This lets you override the type of ``self``, or give it a " "different default name." @@ -2267,33 +2435,36 @@ msgstr "" "¿Qué sentido tiene ? Esto le permite anular el tipo de ``self`` o darle un " "nombre predeterminado diferente." -#: ../Doc/howto/clinic.rst:1169 +#: ../Doc/howto/clinic.rst:1310 +#, fuzzy msgid "" "How do you specify the custom type you want to cast ``self`` to? If you only " "have one or two functions with the same type for ``self``, you can directly " "use Argument Clinic's existing ``self`` converter, passing in the type you " -"want to use as the ``type`` parameter::" +"want to use as the *type* parameter::" msgstr "" "¿Cómo especifica el tipo personalizado al que desea transmitir ``self``? Si " "solo tiene una o dos funciones con el mismo tipo para ``self``, puede usar " "directamente el convertidor ``self`` existente de Argument Clinic, pasando " "el tipo que desea usar como parámetro de ``type``::" -#: ../Doc/howto/clinic.rst:1185 +#: ../Doc/howto/clinic.rst:1326 +#, fuzzy msgid "" "On the other hand, if you have a lot of functions that will use the same " -"type for ``self``, it's best to create your own converter, subclassing " -"``self_converter`` but overwriting the ``type`` member::" +"type for ``self``, it's best to create your own converter, subclassing :" +"class:`!self_converter` but overwriting the :py:attr:`!type` member::" msgstr "" "Por otro lado, si tiene muchas funciones que usarán el mismo tipo para " "``self``, es mejor crear su propio convertidor, subclasificando " "``self_converter`` pero sobrescribiendo el miembro ``type``::" -#: ../Doc/howto/clinic.rst:1207 -msgid "Using a \"defining class\" converter" +#: ../Doc/howto/clinic.rst:1348 +#, fuzzy +msgid "How to use the \"defining class\" converter" msgstr "Usando un convertidor de \"clase definitoria\" (*defining class*)" -#: ../Doc/howto/clinic.rst:1209 +#: ../Doc/howto/clinic.rst:1350 msgid "" "Argument Clinic facilitates gaining access to the defining class of a " "method. This is useful for :ref:`heap type ` methods that need " @@ -2309,15 +2480,16 @@ msgstr "" "Ahora puede usar :c:func:`PyType_GetModuleState` en la clase de definición " "para obtener el estado del módulo, por ejemplo, de un método de módulo." -#: ../Doc/howto/clinic.rst:1215 +#: ../Doc/howto/clinic.rst:1356 +#, fuzzy msgid "" -"Example from ``Modules/zlibmodule.c``. First, ``defining_class`` is added " -"to the clinic input::" +"Example from :source:`Modules/zlibmodule.c`. First, ``defining_class`` is " +"added to the clinic input::" msgstr "" "Ejemplo de ``Modules/zlibmodule.c``. Primero, se agrega ``definition_class`` " "a la entrada de la clínica::" -#: ../Doc/howto/clinic.rst:1227 +#: ../Doc/howto/clinic.rst:1368 msgid "" "After running the Argument Clinic tool, the following function signature is " "generated::" @@ -2325,7 +2497,7 @@ msgstr "" "Después de ejecutar la herramienta Argument Clinic, se genera la siguiente " "firma de función::" -#: ../Doc/howto/clinic.rst:1237 +#: ../Doc/howto/clinic.rst:1378 msgid "" "The following code can now use ``PyType_GetModuleState(cls)`` to fetch the " "module state::" @@ -2333,34 +2505,37 @@ msgstr "" "El siguiente código ahora puede usar ``PyType_GetModuleState(cls)`` para " "obtener el estado del módulo::" -#: ../Doc/howto/clinic.rst:1243 +#: ../Doc/howto/clinic.rst:1384 +#, fuzzy msgid "" "Each method may only have one argument using this converter, and it must " "appear after ``self``, or, if ``self`` is not used, as the first argument. " "The argument will be of type ``PyTypeObject *``. The argument will not " -"appear in the ``__text_signature__``." +"appear in the :py:attr:`!__text_signature__`." msgstr "" "Cada método solo puede tener un argumento usando este convertidor, y debe " "aparecer después de ``self`` o, si no se usa ``self``, como primer " "argumento. El argumento será de tipo ``PyTypeObject *``. El argumento no " "aparecerá en el ``__text_signature__``." -#: ../Doc/howto/clinic.rst:1248 +#: ../Doc/howto/clinic.rst:1389 +#, fuzzy msgid "" -"The ``defining_class`` converter is not compatible with ``__init__`` and " -"``__new__`` methods, which cannot use the ``METH_METHOD`` convention." +"The ``defining_class`` converter is not compatible with :py:meth:`!__init__` " +"and :py:meth:`!__new__` methods, which cannot use the :c:macro:`METH_METHOD` " +"convention." msgstr "" "El convertidor ``definition_class`` no es compatible con los métodos " "``__init__`` y ``__new__``, que no pueden usar la convención ``METH_METHOD``." -#: ../Doc/howto/clinic.rst:1251 +#: ../Doc/howto/clinic.rst:1393 #, fuzzy msgid "" "It is not possible to use ``defining_class`` with slot methods. In order to " "fetch the module state from such methods, use :c:func:" "`PyType_GetModuleByDef` to look up the module and then :c:func:" "`PyModule_GetState` to fetch the module state. Example from the " -"``setattro`` slot method in ``Modules/_threadmodule.c``::" +"``setattro`` slot method in :source:`Modules/_threadmodule.c`::" msgstr "" "No es posible usar ``defining_class`` con métodos de ranura. Para obtener el " "estado del módulo de dichos métodos, use :c:func:`PyType_GetModuleByDef` " @@ -2368,21 +2543,22 @@ msgstr "" "estado del módulo. Ejemplo del método de ranura ``setattro`` en ``Modules/" "_threadmodule.c``::" -#: ../Doc/howto/clinic.rst:1266 +#: ../Doc/howto/clinic.rst:1408 msgid "See also :pep:`573`." msgstr "Vea también :pep:`573`." -#: ../Doc/howto/clinic.rst:1270 -msgid "Writing a custom converter" +#: ../Doc/howto/clinic.rst:1414 +#, fuzzy +msgid "How to write a custom converter" msgstr "Escribiendo un convertidor personalizado" -#: ../Doc/howto/clinic.rst:1272 +#: ../Doc/howto/clinic.rst:1416 +#, fuzzy msgid "" -"As we hinted at in the previous section... you can write your own " -"converters! A converter is simply a Python class that inherits from " -"``CConverter``. The main purpose of a custom converter is if you have a " -"parameter using the ``O&`` format unit—parsing this parameter means calling " -"a :c:func:`PyArg_ParseTuple` \"converter function\"." +"A converter is a Python class that inherits from :py:class:`CConverter`. The " +"main purpose of a custom converter, is for parameters parsed with the ``O&`` " +"format unit --- parsing such a parameter means calling a :c:func:" +"`PyArg_ParseTuple` \"converter function\"." msgstr "" "Como dijimos en la sección anterior... ¡puedes escribir tus propios " "convertidores! Un convertidor es simplemente una clase de Python que hereda " @@ -2391,26 +2567,28 @@ msgstr "" "parámetro significa llamar a :c:func:`PyArg_ParseTuple` \"función de " "conversión\"." -#: ../Doc/howto/clinic.rst:1278 +#: ../Doc/howto/clinic.rst:1421 +#, fuzzy msgid "" -"Your converter class should be named ``*something*_converter``. If the name " -"follows this convention, then your converter class will be automatically " -"registered with Argument Clinic; its name will be the name of your class " -"with the ``_converter`` suffix stripped off. (This is accomplished with a " -"metaclass.)" +"Your converter class should be named :samp:`{ConverterName}_converter`. By " +"following this convention, your converter class will be automatically " +"registered with Argument Clinic, with its *converter name* being the name of " +"your converter class with the ``_converter`` suffix stripped off." msgstr "" "Su clase de convertidor debe llamarse ``*something*_converter``. Si el " "nombre sigue esta convención, entonces su clase de convertidor se registrará " "automáticamente con Argument Clinic; su nombre será el nombre de su clase " "con el sufijo ``_converter`` eliminado. (Esto se logra con una metaclase)." -#: ../Doc/howto/clinic.rst:1284 +#: ../Doc/howto/clinic.rst:1426 +#, fuzzy msgid "" -"You shouldn't subclass ``CConverter.__init__``. Instead, you should write a " -"``converter_init()`` function. ``converter_init()`` always accepts a " -"``self`` parameter; after that, all additional parameters *must* be keyword-" -"only. Any arguments passed in to the converter in Argument Clinic will be " -"passed along to your ``converter_init()``." +"Instead of subclassing :py:meth:`!CConverter.__init__`, write a :py:meth:`!" +"converter_init` method. :py:meth:`!converter_init` always accepts a *self* " +"parameter. After *self*, all additional parameters **must** be keyword-only. " +"Any arguments passed to the converter in Argument Clinic will be passed " +"along to your :py:meth:`!converter_init` method. See :py:class:`CConverter` " +"for a list of members you may wish to specify in your subclass." msgstr "" "No debe subclasificar ``CConverter.__init__``. En su lugar, debe escribir " "una función ``converter_init()``. ``converter_init()`` siempre acepta un " @@ -2418,124 +2596,23 @@ msgstr "" "ser solo palabras clave. Cualquier argumento que se pase al convertidor en " "Argument Clinic se pasará a su ``converter_init()``." -#: ../Doc/howto/clinic.rst:1291 -msgid "" -"There are some additional members of ``CConverter`` you may wish to specify " -"in your subclass. Here's the current list:" -msgstr "" -"Hay algunos miembros adicionales de ``CConverter`` que tal vez desee " -"especificar en su subclase. Aquí está la lista actual:" - -#: ../Doc/howto/clinic.rst:1295 -msgid "" -"The C type to use for this variable. ``type`` should be a Python string " -"specifying the type, e.g. ``int``. If this is a pointer type, the type " -"string should end with ``' *'``." -msgstr "" -"El tipo C que se utilizará para esta variable. ``type`` debe ser una cadena " -"de Python que especifique el tipo, por ejemplo ``int``. Si se trata de un " -"tipo de puntero, la cadena de tipo debe terminar con ``'*'``." - -#: ../Doc/howto/clinic.rst:1301 -msgid "``default``" -msgstr "``default``" - -#: ../Doc/howto/clinic.rst:1300 -msgid "" -"The Python default value for this parameter, as a Python value. Or the magic " -"value ``unspecified`` if there is no default." -msgstr "" -"El valor predeterminado de Python para este parámetro, como un valor de " -"Python. O el valor mágico ``unspecified`` si no hay ningún valor " -"predeterminado." - -#: ../Doc/howto/clinic.rst:1306 -msgid "``py_default``" -msgstr "``py_default``" - -#: ../Doc/howto/clinic.rst:1304 -msgid "" -"``default`` as it should appear in Python code, as a string. Or ``None`` if " -"there is no default." -msgstr "" -"``default`` como debería aparecer en el código Python, como una cadena. O " -"``None`` si no hay un valor predeterminado." - -#: ../Doc/howto/clinic.rst:1309 -msgid "" -"``default`` as it should appear in C code, as a string. Or ``None`` if there " -"is no default." -msgstr "" -"``default`` como debería aparecer en el código C, como una cadena de " -"caracteres. O ``None`` si no hay un valor predeterminado." - -#: ../Doc/howto/clinic.rst:1322 -msgid "``c_ignored_default``" -msgstr "``c_ignored_default``" - -#: ../Doc/howto/clinic.rst:1314 -msgid "" -"The default value used to initialize the C variable when there is no " -"default, but not specifying a default may result in an \"uninitialized " -"variable\" warning. This can easily happen when using option groups—" -"although properly written code will never actually use this value, the " -"variable does get passed in to the impl, and the C compiler will complain " -"about the \"use\" of the uninitialized value. This value should always be a " -"non-empty string." -msgstr "" -"El valor por defecto utilizado para inicializar la variable C cuando no hay " -"un valor por defecto, pero no especificar un valor por defecto puede dar " -"lugar a una advertencia de \"variable no inicializada\". Esto puede ocurrir " -"fácilmente cuando se utilizan grupos de opciones—aunque un código bien " -"escrito nunca utilizará este valor, la variable se pasa a la impl, y el " -"compilador de C se quejará del \"uso\" del valor no inicializado. Este valor " -"debe ser siempre una cadena no vacía." - -#: ../Doc/howto/clinic.rst:1325 -msgid "The name of the C converter function, as a string." -msgstr "" -"El nombre de la función de conversión de C, como una cadena de caracteres." - -#: ../Doc/howto/clinic.rst:1330 -msgid "``impl_by_reference``" -msgstr "``impl_by_reference``" - -#: ../Doc/howto/clinic.rst:1328 -msgid "" -"A boolean value. If true, Argument Clinic will add a ``&`` in front of the " -"name of the variable when passing it into the impl function." -msgstr "" -"Un valor booleano. Si es verdadero, Argument Clinic agregará un ``&`` " -"delante del nombre de la variable al pasarlo a la función impl." - -#: ../Doc/howto/clinic.rst:1336 -msgid "``parse_by_reference``" -msgstr "``parse_by_reference``" - -#: ../Doc/howto/clinic.rst:1333 -msgid "" -"A boolean value. If true, Argument Clinic will add a ``&`` in front of the " -"name of the variable when passing it into :c:func:`PyArg_ParseTuple`." -msgstr "" -"Un valor booleano. Si es verdadero, Argument Clinic agregará un ``&`` " -"delante del nombre de la variable al pasarlo a :c:func:`PyArg_ParseTuple`." - -#: ../Doc/howto/clinic.rst:1338 +#: ../Doc/howto/clinic.rst:1435 +#, fuzzy msgid "" -"Here's the simplest example of a custom converter, from ``Modules/zlibmodule." -"c``::" +"Here's the simplest example of a custom converter, from :source:`Modules/" +"zlibmodule.c`::" msgstr "" "Aquí está el ejemplo más simple de un convertidor personalizado, de " "``Modules/zlibmodule.c``::" -#: ../Doc/howto/clinic.rst:1349 +#: ../Doc/howto/clinic.rst:1446 #, fuzzy msgid "" -"This block adds a converter to Argument Clinic named ``ssize_t``. " -"Parameters declared as ``ssize_t`` will be declared as type :c:type:" -"`Py_ssize_t`, and will be parsed by the ``'O&'`` format unit, which will " -"call the ``ssize_t_converter`` converter function. ``ssize_t`` variables " -"automatically support default values." +"This block adds a converter named ``ssize_t`` to Argument Clinic. Parameters " +"declared as ``ssize_t`` will be declared with type :c:type:`Py_ssize_t`, and " +"will be parsed by the ``'O&'`` format unit, which will call the :c:func:`!" +"ssize_t_converter` converter C function. ``ssize_t`` variables automatically " +"support default values." msgstr "" "Este bloque agrega un convertidor a Argument Clinic llamado ``ssize_t``. Los " "parámetros declarados como ``ssize_t`` se declararán como tipo :c:type:" @@ -2543,7 +2620,7 @@ msgstr "" "llamará a la función de conversión ``ssize_t_converter``. Las variables " "``ssize_t`` admiten automáticamente los valores predeterminados." -#: ../Doc/howto/clinic.rst:1355 +#: ../Doc/howto/clinic.rst:1452 msgid "" "More sophisticated custom converters can insert custom C code to handle " "initialization and cleanup. You can see more examples of custom converters " @@ -2554,11 +2631,12 @@ msgstr "" "ejemplos de convertidores personalizados en el árbol de fuentes de CPython; " "grep los archivos C para la cadena ``CConverter``." -#: ../Doc/howto/clinic.rst:1361 -msgid "Writing a custom return converter" +#: ../Doc/howto/clinic.rst:1459 +#, fuzzy +msgid "How to write a custom return converter" msgstr "Escribiendo un convertidor de retorno personalizado" -#: ../Doc/howto/clinic.rst:1363 +#: ../Doc/howto/clinic.rst:1461 msgid "" "Writing a custom return converter is much like writing a custom converter. " "Except it's somewhat simpler, because return converters are themselves much " @@ -2568,13 +2646,14 @@ msgstr "" "un convertidor personalizado. Excepto que es algo más simple, porque los " "convertidores de retorno son en sí mismos mucho más simples." -#: ../Doc/howto/clinic.rst:1367 +#: ../Doc/howto/clinic.rst:1465 +#, fuzzy msgid "" -"Return converters must subclass ``CReturnConverter``. There are no examples " -"yet of custom return converters, because they are not widely used yet. If " -"you wish to write your own return converter, please read ``Tools/clinic/" -"clinic.py``, specifically the implementation of ``CReturnConverter`` and all " -"its subclasses." +"Return converters must subclass :py:class:`!CReturnConverter`. There are no " +"examples yet of custom return converters, because they are not widely used " +"yet. If you wish to write your own return converter, please read :source:" +"`Tools/clinic/clinic.py`, specifically the implementation of :py:class:`!" +"CReturnConverter` and all its subclasses." msgstr "" "Los convertidores de retorno deben tener una subclase de " "``CReturnConverter``. Todavía no hay ejemplos de convertidores de retorno " @@ -2583,49 +2662,55 @@ msgstr "" "específicamente la implementación de ``CReturnConverter`` y todas sus " "subclases." -#: ../Doc/howto/clinic.rst:1375 -msgid "METH_O and METH_NOARGS" -msgstr "METH_O y METH_NOARGS" +#: ../Doc/howto/clinic.rst:1474 +msgid "How to convert ``METH_O`` and ``METH_NOARGS`` functions" +msgstr "" -#: ../Doc/howto/clinic.rst:1377 +#: ../Doc/howto/clinic.rst:1476 +#, fuzzy msgid "" -"To convert a function using ``METH_O``, make sure the function's single " -"argument is using the ``object`` converter, and mark the arguments as " +"To convert a function using :c:macro:`METH_O`, make sure the function's " +"single argument is using the ``object`` converter, and mark the arguments as " "positional-only::" msgstr "" "Para convertir una función usando ``METH_O``, asegúrese de que el único " "argumento de la función esté usando el convertidor de ``object`` y marque " "los argumentos como solo posicional::" -#: ../Doc/howto/clinic.rst:1389 +#: ../Doc/howto/clinic.rst:1488 +#, fuzzy msgid "" -"To convert a function using ``METH_NOARGS``, just don't specify any " +"To convert a function using :c:macro:`METH_NOARGS`, just don't specify any " "arguments." msgstr "" "Para convertir una función usando ``METH_NOARGS``, simplemente no " "especifique ningún argumento." -#: ../Doc/howto/clinic.rst:1392 +#: ../Doc/howto/clinic.rst:1491 +#, fuzzy msgid "" -"You can still use a self converter, a return converter, and specify a " -"``type`` argument to the object converter for ``METH_O``." +"You can still use a self converter, a return converter, and specify a *type* " +"argument to the object converter for :c:macro:`METH_O`." msgstr "" "Aún puede usar un autoconversor, un convertidor de retorno y especificar un " "argumento de ``tipo`` para el convertidor de objetos para ``METH_O``." -#: ../Doc/howto/clinic.rst:1396 -msgid "tp_new and tp_init functions" +#: ../Doc/howto/clinic.rst:1496 +#, fuzzy +msgid "How to convert ``tp_new`` and ``tp_init`` functions" msgstr "funciones tp_new y tp_init" -#: ../Doc/howto/clinic.rst:1398 +#: ../Doc/howto/clinic.rst:1498 +#, fuzzy msgid "" -"You can convert ``tp_new`` and ``tp_init`` functions. Just name them " -"``__new__`` or ``__init__`` as appropriate. Notes:" +"You can convert :c:member:`~PyTypeObject.tp_new` and :c:member:" +"`~PyTypeObject.tp_init` functions. Just name them ``__new__`` or " +"``__init__`` as appropriate. Notes:" msgstr "" "Puede convertir las funciones ``tp_new`` y ``tp_init``. Simplemente " "nómbrelas ``__new__`` o ``__init__`` según corresponda. Notas:" -#: ../Doc/howto/clinic.rst:1401 +#: ../Doc/howto/clinic.rst:1502 msgid "" "The function name generated for ``__new__`` doesn't end in ``__new__`` like " "it would by default. It's just the name of the class, converted into a " @@ -2635,19 +2720,20 @@ msgstr "" "como lo haría por defecto. Es solo el nombre de la clase, convertido en un " "identificador C válido." -#: ../Doc/howto/clinic.rst:1405 -msgid "No ``PyMethodDef`` ``#define`` is generated for these functions." +#: ../Doc/howto/clinic.rst:1506 +#, fuzzy +msgid "No :c:type:`PyMethodDef` ``#define`` is generated for these functions." msgstr "No se genera ningún ``PyMethodDef`` ``#define`` para estas funciones." -#: ../Doc/howto/clinic.rst:1407 +#: ../Doc/howto/clinic.rst:1508 msgid "``__init__`` functions return ``int``, not ``PyObject *``." msgstr "funciones ``__init__`` retornan ``int``, no ``PyObject *``." -#: ../Doc/howto/clinic.rst:1409 +#: ../Doc/howto/clinic.rst:1510 msgid "Use the docstring as the class docstring." msgstr "Utilice docstring como la clase de documentación." -#: ../Doc/howto/clinic.rst:1411 +#: ../Doc/howto/clinic.rst:1512 msgid "" "Although ``__new__`` and ``__init__`` functions must always accept both the " "``args`` and ``kwargs`` objects, when converting you may specify any " @@ -2661,11 +2747,12 @@ msgstr "" "no admite palabras clave, la función de análisis generada lanzará una " "excepción si recibe alguna)." -#: ../Doc/howto/clinic.rst:1418 -msgid "Changing and redirecting Clinic's output" +#: ../Doc/howto/clinic.rst:1520 +#, fuzzy +msgid "How to change and redirect Clinic's output" msgstr "Cambiar y redirigir la salida de Clinic" -#: ../Doc/howto/clinic.rst:1420 +#: ../Doc/howto/clinic.rst:1522 msgid "" "It can be inconvenient to have Clinic's output interspersed with your " "conventional hand-edited C code. Luckily, Clinic is configurable: you can " @@ -2679,7 +2766,7 @@ msgstr "" "escribir su salida en un archivo separado. También puede agregar un prefijo " "o sufijo a cada línea del resultado generado por Clinic." -#: ../Doc/howto/clinic.rst:1426 +#: ../Doc/howto/clinic.rst:1528 msgid "" "While changing Clinic's output in this manner can be a boon to readability, " "it may result in Clinic code using types before they are defined, or your " @@ -2701,18 +2788,19 @@ msgstr "" "nunca será necesario reorganizar su código para solucionar problemas de " "definición antes de su uso)." -#: ../Doc/howto/clinic.rst:1435 +#: ../Doc/howto/clinic.rst:1537 msgid "Let's start with defining some terminology:" msgstr "Comencemos por definir alguna terminología:" -#: ../Doc/howto/clinic.rst:1462 +#: ../Doc/howto/clinic.rst:1564 msgid "*field*" msgstr "*field*" -#: ../Doc/howto/clinic.rst:1438 +#: ../Doc/howto/clinic.rst:1540 +#, fuzzy msgid "" "A field, in this context, is a subsection of Clinic's output. For example, " -"the ``#define`` for the ``PyMethodDef`` structure is a field, called " +"the ``#define`` for the :c:type:`PyMethodDef` structure is a field, called " "``methoddef_define``. Clinic has seven different fields it can output per " "function definition:" msgstr "" @@ -2721,7 +2809,7 @@ msgstr "" "llamado ``methoddef_define``. La clínica tiene siete campos diferentes que " "puede generar por definición de función:" -#: ../Doc/howto/clinic.rst:1453 +#: ../Doc/howto/clinic.rst:1555 msgid "" "All the names are of the form ``\"_\"``, where ``\"\"`` is the " "semantic object represented (the parsing function, the impl function, the " @@ -2743,11 +2831,11 @@ msgstr "" "datos de la cosa. (``\"methoddef\"`` es especial, es el único que termina " "con ``\"_define\"``, lo que representa que es un preprocesador #define)." -#: ../Doc/howto/clinic.rst:1496 +#: ../Doc/howto/clinic.rst:1598 msgid "*destination*" msgstr "*destination*" -#: ../Doc/howto/clinic.rst:1465 +#: ../Doc/howto/clinic.rst:1567 msgid "" "A destination is a place Clinic can write output to. There are five built-" "in destinations:" @@ -2755,12 +2843,12 @@ msgstr "" "Un destino es un lugar en el que la Clínica puede escribir resultados. Hay " "cinco destinos incorporados:" -#: ../Doc/howto/clinic.rst:1470 ../Doc/howto/clinic.rst:1545 -#: ../Doc/howto/clinic.rst:1623 +#: ../Doc/howto/clinic.rst:1572 ../Doc/howto/clinic.rst:1647 +#: ../Doc/howto/clinic.rst:1725 msgid "``block``" msgstr "``block``" -#: ../Doc/howto/clinic.rst:1469 +#: ../Doc/howto/clinic.rst:1571 msgid "" "The default destination: printed in the output section of the current Clinic " "block." @@ -2768,12 +2856,12 @@ msgstr "" "El destino predeterminado: impreso en la sección de salida del bloque " "Clínico actual." -#: ../Doc/howto/clinic.rst:1476 ../Doc/howto/clinic.rst:1572 -#: ../Doc/howto/clinic.rst:1626 +#: ../Doc/howto/clinic.rst:1578 ../Doc/howto/clinic.rst:1674 +#: ../Doc/howto/clinic.rst:1728 msgid "``buffer``" msgstr "``buffer``" -#: ../Doc/howto/clinic.rst:1473 +#: ../Doc/howto/clinic.rst:1575 msgid "" "A text buffer where you can save text for later. Text sent here is appended " "to the end of any existing text. It's an error to have any text left in the " @@ -2783,18 +2871,19 @@ msgstr "" "aquí se agrega al final de cualquier texto existente. Es un error dejar " "texto en el búfer cuando Clinic termina de procesar un archivo." -#: ../Doc/howto/clinic.rst:1487 ../Doc/howto/clinic.rst:1558 -#: ../Doc/howto/clinic.rst:1652 +#: ../Doc/howto/clinic.rst:1589 ../Doc/howto/clinic.rst:1660 +#: ../Doc/howto/clinic.rst:1754 msgid "``file``" msgstr "``file``" -#: ../Doc/howto/clinic.rst:1479 +#: ../Doc/howto/clinic.rst:1581 +#, fuzzy msgid "" "A separate \"clinic file\" that will be created automatically by Clinic. The " "filename chosen for the file is ``{basename}.clinic{extension}``, where " "``basename`` and ``extension`` were assigned the output from ``os.path." "splitext()`` run on the current file. (Example: the ``file`` destination " -"for ``_pickle.c`` would be written to ``_pickle.clinic.c``.)" +"for :file:`_pickle.c` would be written to :file:`_pickle.clinic.c`.)" msgstr "" "Un \"archivo clínico\" separado que Clinic creará automáticamente. El nombre " "de archivo elegido para el archivo es ``{basename}.clinic{extension}``, " @@ -2802,7 +2891,7 @@ msgstr "" "splitext()`` ejecutar en El archivo actual. (Ejemplo: el destino del " "``file`` para ``_pickle.c`` se escribiría en ``_pickle.clinic.c``.)" -#: ../Doc/howto/clinic.rst:1486 +#: ../Doc/howto/clinic.rst:1588 msgid "" "**Important: When using a** ``file`` **destination, you** *must check in* " "**the generated file!**" @@ -2810,12 +2899,12 @@ msgstr "" "**Importante: Al usar un destino **``file``**, *debe registrar* **el archivo " "generado!**" -#: ../Doc/howto/clinic.rst:1492 ../Doc/howto/clinic.rst:1585 -#: ../Doc/howto/clinic.rst:1656 +#: ../Doc/howto/clinic.rst:1594 ../Doc/howto/clinic.rst:1687 +#: ../Doc/howto/clinic.rst:1758 msgid "``two-pass``" msgstr "``two-pass``" -#: ../Doc/howto/clinic.rst:1490 +#: ../Doc/howto/clinic.rst:1592 msgid "" "A buffer like ``buffer``. However, a two-pass buffer can only be dumped " "once, and it prints out all text sent to it during all processing, even from " @@ -2826,24 +2915,24 @@ msgstr "" "procesamiento, incluso desde los bloques de la Clínica *después* del punto " "de descarga." -#: ../Doc/howto/clinic.rst:1496 ../Doc/howto/clinic.rst:1619 +#: ../Doc/howto/clinic.rst:1598 ../Doc/howto/clinic.rst:1721 msgid "``suppress``" msgstr "``suppress``" -#: ../Doc/howto/clinic.rst:1495 +#: ../Doc/howto/clinic.rst:1597 msgid "The text is suppressed—thrown away." msgstr "El texto se suprime --- se tira." -#: ../Doc/howto/clinic.rst:1498 +#: ../Doc/howto/clinic.rst:1600 msgid "Clinic defines five new directives that let you reconfigure its output." msgstr "" "Clinic define cinco nuevas directivas que le permiten reconfigurar su salida." -#: ../Doc/howto/clinic.rst:1500 +#: ../Doc/howto/clinic.rst:1602 msgid "The first new directive is ``dump``:" msgstr "La primera nueva directiva es ``dump``:" -#: ../Doc/howto/clinic.rst:1506 +#: ../Doc/howto/clinic.rst:1608 msgid "" "This dumps the current contents of the named destination into the output of " "the current block, and empties it. This only works with ``buffer`` and " @@ -2853,7 +2942,7 @@ msgstr "" "actual y lo vacía. Esto solo funciona con destinos de ``búfer`` y de ``dos " "pasadas``." -#: ../Doc/howto/clinic.rst:1510 +#: ../Doc/howto/clinic.rst:1612 msgid "" "The second new directive is ``output``. The most basic form of ``output`` " "is like this:" @@ -2861,7 +2950,7 @@ msgstr "" "La segunda nueva directiva es ``output``. La forma más básica de ``output`` " "es así:" -#: ../Doc/howto/clinic.rst:1517 +#: ../Doc/howto/clinic.rst:1619 msgid "" "This tells Clinic to output *field* to *destination*. ``output`` also " "supports a special meta-destination, called ``everything``, which tells " @@ -2871,11 +2960,11 @@ msgstr "" "también admite un metadestino especial, llamado ``everything``, que le dice " "a Clinic que envíe *todos* los campos a ese *destination*." -#: ../Doc/howto/clinic.rst:1521 +#: ../Doc/howto/clinic.rst:1623 msgid "``output`` has a number of other functions:" msgstr "``output`` tiene una serie de otras funciones:" -#: ../Doc/howto/clinic.rst:1530 +#: ../Doc/howto/clinic.rst:1632 msgid "" "``output push`` and ``output pop`` allow you to push and pop configurations " "on an internal configuration stack, so that you can temporarily modify the " @@ -2890,7 +2979,7 @@ msgstr "" "cambio para guardar la configuración actual, luego haga estallar cuando " "desee restaurar la configuración anterior." -#: ../Doc/howto/clinic.rst:1537 +#: ../Doc/howto/clinic.rst:1639 msgid "" "``output preset`` sets Clinic's output to one of several built-in preset " "configurations, as follows:" @@ -2898,7 +2987,7 @@ msgstr "" "``output preset`` configura la salida de Clinic en una de varias " "configuraciones preestablecidas incorporadas, de la siguiente manera:" -#: ../Doc/howto/clinic.rst:1541 +#: ../Doc/howto/clinic.rst:1643 msgid "" "Clinic's original starting configuration. Writes everything immediately " "after the input block." @@ -2906,7 +2995,7 @@ msgstr "" "Configuración inicial original de la clínica. Escribe todo inmediatamente " "después del bloque de entrada." -#: ../Doc/howto/clinic.rst:1544 +#: ../Doc/howto/clinic.rst:1646 msgid "" "Suppress the ``parser_prototype`` and ``docstring_prototype``, write " "everything else to ``block``." @@ -2914,7 +3003,7 @@ msgstr "" "Suprime el ``parser_prototype`` y ``docstring_prototype``, escribe todo lo " "demás en ``block``." -#: ../Doc/howto/clinic.rst:1548 +#: ../Doc/howto/clinic.rst:1650 msgid "" "Designed to write everything to the \"clinic file\" that it can. You then " "``#include`` this file near the top of your file. You may need to rearrange " @@ -2927,7 +3016,7 @@ msgstr "" "generalmente esto solo significa crear declaraciones hacia adelante para " "varias definiciones de ``typedef`` y ``PyTypeObject``." -#: ../Doc/howto/clinic.rst:1554 +#: ../Doc/howto/clinic.rst:1656 msgid "" "Suppress the ``parser_prototype`` and ``docstring_prototype``, write the " "``impl_definition`` to ``block``, and write everything else to ``file``." @@ -2935,12 +3024,12 @@ msgstr "" "Suprima ``parser_prototype`` y ``docstring_prototype``, escriba la " "``impl_definition`` en ``block`` y escriba todo lo demás en ``file``." -#: ../Doc/howto/clinic.rst:1558 +#: ../Doc/howto/clinic.rst:1660 msgid "The default filename is ``\"{dirname}/clinic/{basename}.h\"``." msgstr "" "El nombre de archivo predeterminado es ``\"{dirname}/clinic/{basename}.h\"``." -#: ../Doc/howto/clinic.rst:1561 +#: ../Doc/howto/clinic.rst:1663 msgid "" "Save up most of the output from Clinic, to be written into your file near " "the end. For Python files implementing modules or builtin types, it's " @@ -2957,7 +3046,7 @@ msgstr "" "que ``file``, si su archivo tiene arreglos estáticos ``PyMethodDef`` " "definidos en el medio del archivo." -#: ../Doc/howto/clinic.rst:1570 +#: ../Doc/howto/clinic.rst:1672 msgid "" "Suppress the ``parser_prototype``, ``impl_prototype``, and " "``docstring_prototype``, write the ``impl_definition`` to ``block``, and " @@ -2967,7 +3056,7 @@ msgstr "" "``docstring_prototype``, escriba ``impl_definition`` en ``block`` y escriba " "todo lo demás en ``file``." -#: ../Doc/howto/clinic.rst:1575 +#: ../Doc/howto/clinic.rst:1677 msgid "" "Similar to the ``buffer`` preset, but writes forward declarations to the " "``two-pass`` buffer, and definitions to the ``buffer``. This is similar to " @@ -2983,7 +3072,7 @@ msgstr "" "cerca del final como lo haría cuando usa el ajuste preestablecido de " "``buffer``." -#: ../Doc/howto/clinic.rst:1582 +#: ../Doc/howto/clinic.rst:1684 msgid "" "Suppresses the ``impl_prototype``, write the ``impl_definition`` to " "``block``, write ``docstring_prototype``, ``methoddef_define``, and " @@ -2993,11 +3082,11 @@ msgstr "" "escribe ``docstring_prototype``, ``methoddef_define`` y ``parser_prototype`` " "en ``two-pass``, escribe todo lo demás en ``buffer``." -#: ../Doc/howto/clinic.rst:1596 +#: ../Doc/howto/clinic.rst:1698 msgid "``partial-buffer``" msgstr "``partial-buffer``" -#: ../Doc/howto/clinic.rst:1588 +#: ../Doc/howto/clinic.rst:1690 msgid "" "Similar to the ``buffer`` preset, but writes more things to ``block``, only " "writing the really big chunks of generated code to ``buffer``. This avoids " @@ -3013,7 +3102,7 @@ msgstr "" "salida del bloque. Vierta el ``buffer`` cerca del final, tal como lo haría " "cuando usa el ajuste predeterminado de ``buffer``." -#: ../Doc/howto/clinic.rst:1595 +#: ../Doc/howto/clinic.rst:1697 msgid "" "Suppresses the ``impl_prototype``, write the ``docstring_definition`` and " "``parser_definition`` to ``buffer``, write everything else to ``block``." @@ -3021,49 +3110,49 @@ msgstr "" "Suprime el ``impl_prototype``, escribe ``docstring_definition`` y " "``parser_definition`` en ``buffer``, escribe todo lo demás en ``block``." -#: ../Doc/howto/clinic.rst:1598 +#: ../Doc/howto/clinic.rst:1700 msgid "The third new directive is ``destination``:" msgstr "La tercera nueva directiva es ``destino``:" -#: ../Doc/howto/clinic.rst:1604 +#: ../Doc/howto/clinic.rst:1706 msgid "This performs an operation on the destination named ``name``." msgstr "Esto realiza una operación en el destino llamado ``name``." -#: ../Doc/howto/clinic.rst:1606 +#: ../Doc/howto/clinic.rst:1708 msgid "There are two defined subcommands: ``new`` and ``clear``." msgstr "Hay dos subcomandos definidos: ``new`` y ``clear``." -#: ../Doc/howto/clinic.rst:1608 +#: ../Doc/howto/clinic.rst:1710 msgid "The ``new`` subcommand works like this:" msgstr "El subcomando ``new`` funciona así:" -#: ../Doc/howto/clinic.rst:1614 +#: ../Doc/howto/clinic.rst:1716 msgid "" "This creates a new destination with name ```` and type ````." msgstr "" "Esto crea un nuevo destino con el nombre ```` y escribe ````." -#: ../Doc/howto/clinic.rst:1616 +#: ../Doc/howto/clinic.rst:1718 msgid "There are five destination types:" msgstr "Hay cinco tipos de destinos:" -#: ../Doc/howto/clinic.rst:1619 +#: ../Doc/howto/clinic.rst:1721 msgid "Throws the text away." msgstr "Tira el texto." -#: ../Doc/howto/clinic.rst:1622 +#: ../Doc/howto/clinic.rst:1724 msgid "" "Writes the text to the current block. This is what Clinic originally did." msgstr "" "Escribe el texto en el bloque actual. Esto es lo que hizo Clinic " "originalmente." -#: ../Doc/howto/clinic.rst:1626 +#: ../Doc/howto/clinic.rst:1728 msgid "A simple text buffer, like the \"buffer\" builtin destination above." msgstr "" "Un búfer de texto simple, como el destino incorporado \"búfer\" anterior." -#: ../Doc/howto/clinic.rst:1629 +#: ../Doc/howto/clinic.rst:1731 msgid "" "A text file. The file destination takes an extra argument, a template to " "use for building the filename, like so:" @@ -3071,11 +3160,11 @@ msgstr "" "Un archivo de texto. El destino del archivo toma un argumento adicional, una " "plantilla para usar para construir el nombre de archivo, así:" -#: ../Doc/howto/clinic.rst:1632 +#: ../Doc/howto/clinic.rst:1734 msgid "destination new " msgstr "destino nuevo " -#: ../Doc/howto/clinic.rst:1634 +#: ../Doc/howto/clinic.rst:1736 msgid "" "The template can use three strings internally that will be replaced by bits " "of the filename:" @@ -3083,37 +3172,37 @@ msgstr "" "La plantilla puede usar tres cadenas internamente que serán reemplazadas por " "bits del nombre del archivo:" -#: ../Doc/howto/clinic.rst:1637 +#: ../Doc/howto/clinic.rst:1739 msgid "{path}" msgstr "{path}" -#: ../Doc/howto/clinic.rst:1638 +#: ../Doc/howto/clinic.rst:1740 msgid "The full path to the file, including directory and full filename." msgstr "" "La ruta completa al archivo, incluido el directorio y el nombre de archivo " "completo." -#: ../Doc/howto/clinic.rst:1639 +#: ../Doc/howto/clinic.rst:1741 msgid "{dirname}" msgstr "{dirname}" -#: ../Doc/howto/clinic.rst:1640 +#: ../Doc/howto/clinic.rst:1742 msgid "The name of the directory the file is in." msgstr "El nombre del directorio en el que se encuentra el archivo." -#: ../Doc/howto/clinic.rst:1641 +#: ../Doc/howto/clinic.rst:1743 msgid "{basename}" msgstr "{basename}" -#: ../Doc/howto/clinic.rst:1642 +#: ../Doc/howto/clinic.rst:1744 msgid "Just the name of the file, not including the directory." msgstr "Solo el nombre del archivo, sin incluir el directorio." -#: ../Doc/howto/clinic.rst:1644 +#: ../Doc/howto/clinic.rst:1746 msgid "{basename_root}" msgstr "{basename_root}" -#: ../Doc/howto/clinic.rst:1644 +#: ../Doc/howto/clinic.rst:1746 msgid "" "Basename with the extension clipped off (everything up to but not including " "the last '.')." @@ -3121,11 +3210,11 @@ msgstr "" "Nombre de base con la extensión recortada (todo hasta pero sin incluir el " "último '.')." -#: ../Doc/howto/clinic.rst:1648 +#: ../Doc/howto/clinic.rst:1750 msgid "{basename_extension}" msgstr "{basename_extension}" -#: ../Doc/howto/clinic.rst:1647 +#: ../Doc/howto/clinic.rst:1749 msgid "" "The last '.' and everything after it. If the basename does not contain a " "period, this will be the empty string." @@ -3133,7 +3222,7 @@ msgstr "" "El último '.' y todo lo que sigue. Si el nombre base no contiene un punto, " "esta será la cadena de caracteres vacía." -#: ../Doc/howto/clinic.rst:1650 +#: ../Doc/howto/clinic.rst:1752 msgid "" "If there are no periods in the filename, {basename} and {filename} are the " "same, and {extension} is empty. \"{basename}{extension}\" is always exactly " @@ -3143,17 +3232,17 @@ msgstr "" "iguales, y {extension} está vacía. \"{basename}{extension}\" es siempre " "exactamente igual que \"{filename}\". \"" -#: ../Doc/howto/clinic.rst:1655 +#: ../Doc/howto/clinic.rst:1757 msgid "A two-pass buffer, like the \"two-pass\" builtin destination above." msgstr "" "Un búfer de dos pasadas (*two-pass*), como el destino incorporado de \"dos " "pasadas\" anterior." -#: ../Doc/howto/clinic.rst:1658 +#: ../Doc/howto/clinic.rst:1760 msgid "The ``clear`` subcommand works like this:" msgstr "El subcomando ``clear`` funciona así:" -#: ../Doc/howto/clinic.rst:1664 +#: ../Doc/howto/clinic.rst:1766 msgid "" "It removes all the accumulated text up to this point in the destination. (I " "don't know what you'd need this for, but I thought maybe it'd be useful " @@ -3163,11 +3252,11 @@ msgstr "" "qué necesitarías esto, pero pensé que tal vez sería útil mientras alguien " "está experimentando)." -#: ../Doc/howto/clinic.rst:1668 +#: ../Doc/howto/clinic.rst:1770 msgid "The fourth new directive is ``set``:" msgstr "La cuarta nueva directiva está ``set``:" -#: ../Doc/howto/clinic.rst:1675 +#: ../Doc/howto/clinic.rst:1777 msgid "" "``set`` lets you set two internal variables in Clinic. ``line_prefix`` is a " "string that will be prepended to every line of Clinic's output; " @@ -3179,33 +3268,33 @@ msgstr "" "Clínica; ``line_suffix`` es una cadena de caracteres que se agregará a cada " "línea de salida de la Clínica." -#: ../Doc/howto/clinic.rst:1679 +#: ../Doc/howto/clinic.rst:1781 msgid "Both of these support two format strings:" msgstr "Ambos admiten dos cadenas de caracteres de formato:" -#: ../Doc/howto/clinic.rst:1682 +#: ../Doc/howto/clinic.rst:1784 msgid "``{block comment start}``" msgstr "``{block comment start}``" -#: ../Doc/howto/clinic.rst:1682 +#: ../Doc/howto/clinic.rst:1784 msgid "" "Turns into the string ``/*``, the start-comment text sequence for C files." msgstr "" "Se convierte en la cadena de caracteres ``/*``, la secuencia de texto de " "inicio de comentario para archivos C." -#: ../Doc/howto/clinic.rst:1685 +#: ../Doc/howto/clinic.rst:1787 msgid "``{block comment end}``" msgstr "``{block comment end}``" -#: ../Doc/howto/clinic.rst:1685 +#: ../Doc/howto/clinic.rst:1787 msgid "" "Turns into the string ``*/``, the end-comment text sequence for C files." msgstr "" "Se convierte en la cadena ``*/``, la secuencia de texto del comentario final " "para los archivos C." -#: ../Doc/howto/clinic.rst:1687 +#: ../Doc/howto/clinic.rst:1789 msgid "" "The final new directive is one you shouldn't need to use directly, called " "``preserve``:" @@ -3213,7 +3302,7 @@ msgstr "" "La nueva directiva final es una que no debería necesitar usar directamente, " "llamada ``preserve``:" -#: ../Doc/howto/clinic.rst:1694 +#: ../Doc/howto/clinic.rst:1796 msgid "" "This tells Clinic that the current contents of the output should be kept, " "unmodified. This is used internally by Clinic when dumping output into " @@ -3227,11 +3316,12 @@ msgstr "" "Clinic use su funcionalidad de suma de comprobación existente para " "garantizar que el archivo no se modificó a mano antes de sobrescribirlo." -#: ../Doc/howto/clinic.rst:1701 -msgid "The #ifdef trick" +#: ../Doc/howto/clinic.rst:1803 +#, fuzzy +msgid "How to use the ``#ifdef`` trick" msgstr "El truco #ifdef" -#: ../Doc/howto/clinic.rst:1703 +#: ../Doc/howto/clinic.rst:1805 msgid "" "If you're converting a function that isn't available on all platforms, " "there's a trick you can use to make life a little easier. The existing code " @@ -3241,7 +3331,7 @@ msgstr "" "plataformas, hay un truco que puede usar para hacer la vida un poco más " "fácil. El código existente probablemente se ve así::" -#: ../Doc/howto/clinic.rst:1714 +#: ../Doc/howto/clinic.rst:1816 msgid "" "And then in the ``PyMethodDef`` structure at the bottom the existing code " "will have:" @@ -3249,7 +3339,7 @@ msgstr "" "Y luego, en la estructura ``PyMethodDef`` en la parte inferior, el código " "existente tendrá:" -#: ../Doc/howto/clinic.rst:1723 +#: ../Doc/howto/clinic.rst:1825 msgid "" "In this scenario, you should enclose the body of your impl function inside " "the ``#ifdef``, like so::" @@ -3257,15 +3347,16 @@ msgstr "" "En este escenario, debe encerrar el cuerpo de su función *impl* dentro de " "``#ifdef``, así::" -#: ../Doc/howto/clinic.rst:1737 +#: ../Doc/howto/clinic.rst:1839 +#, fuzzy msgid "" -"Then, remove those three lines from the ``PyMethodDef`` structure, replacing " -"them with the macro Argument Clinic generated:" +"Then, remove those three lines from the :c:type:`PyMethodDef` structure, " +"replacing them with the macro Argument Clinic generated:" msgstr "" "Luego, elimine esas tres líneas de la estructura ``PyMethodDef``, " "reemplazándolas con la macro Argument Clinic generada:" -#: ../Doc/howto/clinic.rst:1744 +#: ../Doc/howto/clinic.rst:1846 msgid "" "(You can find the real name for this macro inside the generated code. Or you " "can calculate it yourself: it's the name of your function as defined on the " @@ -3277,7 +3368,7 @@ msgstr "" "en la primera línea de su bloque, pero con puntos cambiados a guiones bajos, " "mayúsculas y ``\"_METHODDEF\"`` agregado al final.)" -#: ../Doc/howto/clinic.rst:1749 +#: ../Doc/howto/clinic.rst:1851 msgid "" "Perhaps you're wondering: what if ``HAVE_FUNCTIONNAME`` isn't defined? The " "``MODULE_FUNCTIONNAME_METHODDEF`` macro won't be defined either!" @@ -3285,7 +3376,7 @@ msgstr "" "Quizás se esté preguntando: ¿qué pasa si ``HAVE_FUNCTIONNAME`` no está " "definido? ¡La macro ``MODULE_FUNCTIONNAME_METHODDEF`` tampoco se definirá!" -#: ../Doc/howto/clinic.rst:1752 +#: ../Doc/howto/clinic.rst:1854 msgid "" "Here's where Argument Clinic gets very clever. It actually detects that the " "Argument Clinic block might be deactivated by the ``#ifdef``. When that " @@ -3296,7 +3387,7 @@ msgstr "" "``#ifdef``. Cuando eso sucede, genera un pequeño código adicional que se ve " "así::" -#: ../Doc/howto/clinic.rst:1760 +#: ../Doc/howto/clinic.rst:1862 msgid "" "That means the macro always works. If the function is defined, this turns " "into the correct structure, including the trailing comma. If the function " @@ -3306,7 +3397,7 @@ msgstr "" "convierte en la estructura correcta, incluida la coma al final. Si la " "función no está definida, esto se convierte en nada." -#: ../Doc/howto/clinic.rst:1764 +#: ../Doc/howto/clinic.rst:1866 msgid "" "However, this causes one ticklish problem: where should Argument Clinic put " "this extra code when using the \"block\" output preset? It can't go in the " @@ -3318,7 +3409,7 @@ msgstr "" "salida \"bloque\"? No puede entrar en el bloque de salida, porque podría " "desactivarse con ``#ifdef``. (¡Ese es todo el punto!)" -#: ../Doc/howto/clinic.rst:1768 +#: ../Doc/howto/clinic.rst:1870 msgid "" "In this situation, Argument Clinic writes the extra code to the \"buffer\" " "destination. This may mean that you get a complaint from Argument Clinic:" @@ -3326,22 +3417,24 @@ msgstr "" "En esta situación, Argument Clinic escribe el código adicional en el destino " "del \"búfer\". Esto puede significar que recibe una queja de Argument Clinic:" -#: ../Doc/howto/clinic.rst:1776 +#: ../Doc/howto/clinic.rst:1878 +#, fuzzy msgid "" "When this happens, just open your file, find the ``dump buffer`` block that " "Argument Clinic added to your file (it'll be at the very bottom), then move " -"it above the ``PyMethodDef`` structure where that macro is used." +"it above the :c:type:`PyMethodDef` structure where that macro is used." msgstr "" "Cuando esto suceda, simplemente abra su archivo, busque el bloque ``dump " "buffer`` que Argument Clinic agregó a su archivo (estará en la parte " "inferior), luego muévalo arriba de la estructura ``PyMethodDef`` donde esa " "macro se utiliza." -#: ../Doc/howto/clinic.rst:1783 -msgid "Using Argument Clinic in Python files" +#: ../Doc/howto/clinic.rst:1884 +#, fuzzy +msgid "How to use Argument Clinic in Python files" msgstr "Usando Argument Clinic en archivos Python" -#: ../Doc/howto/clinic.rst:1785 +#: ../Doc/howto/clinic.rst:1886 msgid "" "It's actually possible to use Argument Clinic to preprocess Python files. " "There's no point to using Argument Clinic blocks, of course, as the output " @@ -3354,7 +3447,7 @@ msgstr "" "usar Argument Clinic para ejecutar bloques de Python le permite usar Python " "como un preprocesador de Python!" -#: ../Doc/howto/clinic.rst:1790 +#: ../Doc/howto/clinic.rst:1891 msgid "" "Since Python comments are different from C comments, Argument Clinic blocks " "embedded in Python files look slightly different. They look like this:" @@ -3362,3 +3455,291 @@ msgstr "" "Dado que los comentarios de Python son diferentes de los comentarios de C, " "los bloques de Argument Clinic incrustados en archivos de Python tienen un " "aspecto ligeramente diferente. Se ven así:" + +#~ msgid "" +#~ "Argument Clinic is a preprocessor for CPython C files. Its purpose is to " +#~ "automate all the boilerplate involved with writing argument parsing code " +#~ "for \"builtins\". This document shows you how to convert your first C " +#~ "function to work with Argument Clinic, and then introduces some advanced " +#~ "topics on Argument Clinic usage." +#~ msgstr "" +#~ "Argument Clinic es un preprocesador para archivos CPython C. Su propósito " +#~ "es automatizar todo el texto estándar involucrado con la escritura de " +#~ "código de análisis de argumentos para \"incorporados\". Este documento le " +#~ "muestra cómo convertir su primera función C para que funcione con " +#~ "Argument Clinic y luego presenta algunos temas avanzados sobre el uso de " +#~ "Argument Clinic." + +#~ msgid "" +#~ "Argument Clinic's primary goal is to take over responsibility for all " +#~ "argument parsing code inside CPython. This means that, when you convert " +#~ "a function to work with Argument Clinic, that function should no longer " +#~ "do any of its own argument parsing—the code generated by Argument Clinic " +#~ "should be a \"black box\" to you, where CPython calls in at the top, and " +#~ "your code gets called at the bottom, with ``PyObject *args`` (and maybe " +#~ "``PyObject *kwargs``) magically converted into the C variables and types " +#~ "you need." +#~ msgstr "" +#~ "El objetivo principal de Argument Clinic es asumir la responsabilidad de " +#~ "todo el código de análisis de argumentos dentro de CPython. Esto " +#~ "significa que, cuando convierte una función para que funcione con " +#~ "Argument Clinic, esa función ya no debería realizar ninguno de sus " +#~ "propios análisis de argumentos; el código generado por Argument Clinic " +#~ "debería ser una \"caja negra\" para usted, donde CPython llama al top, y " +#~ "su código se llama en la parte inferior, con ``PyObject *args`` (y tal " +#~ "vez ``PyObject *kwargs``) convertido mágicamente en las variables y tipos " +#~ "C que necesita." + +#~ msgid "" +#~ "In order for Argument Clinic to accomplish its primary goal, it must be " +#~ "easy to use. Currently, working with CPython's argument parsing library " +#~ "is a chore, requiring maintaining redundant information in a surprising " +#~ "number of places. When you use Argument Clinic, you don't have to repeat " +#~ "yourself." +#~ msgstr "" +#~ "Para que Argument Clinic logre su objetivo principal, debe ser fácil de " +#~ "usar. Actualmente, trabajar con la biblioteca de análisis de argumentos " +#~ "de CPython es una tarea ardua que requiere mantener información " +#~ "redundante en un número sorprendente de lugares. Cuando usa Argument " +#~ "Clinic, no tiene que repetirse." + +#~ msgid "" +#~ "Obviously, no one would want to use Argument Clinic unless it's solving " +#~ "their problem—and without creating new problems of its own. So it's " +#~ "paramount that Argument Clinic generate correct code. It'd be nice if the " +#~ "code was faster, too, but at the very least it should not introduce a " +#~ "major speed regression. (Eventually Argument Clinic *should* make a " +#~ "major speedup possible—we could rewrite its code generator to produce " +#~ "tailor-made argument parsing code, rather than calling the general-" +#~ "purpose CPython argument parsing library. That would make for the " +#~ "fastest argument parsing possible!)" +#~ msgstr "" +#~ "Obviamente, si Argument Clinic no produjo ningún resultado, es porque " +#~ "encontró un error en su entrada. Siga corrigiendo sus errores y vuelva a " +#~ "intentarlo hasta que Argument Clinic procese su archivo sin quejas." + +#~ msgid "" +#~ "Additionally, Argument Clinic must be flexible enough to work with any " +#~ "approach to argument parsing. Python has some functions with some very " +#~ "strange parsing behaviors; Argument Clinic's goal is to support all of " +#~ "them." +#~ msgstr "" +#~ "Además, Argument Clinic debe ser lo suficientemente flexible como para " +#~ "trabajar con cualquier enfoque de análisis de argumentos. Python tiene " +#~ "algunas funciones con algunos comportamientos de análisis muy extraños; " +#~ "el objetivo de Argument Clinic es apoyarlos a todos." + +#~ msgid "" +#~ "Finally, the original motivation for Argument Clinic was to provide " +#~ "introspection \"signatures\" for CPython builtins. It used to be, the " +#~ "introspection query functions would throw an exception if you passed in a " +#~ "builtin. With Argument Clinic, that's a thing of the past!" +#~ msgstr "" +#~ "Finalmente, la motivación original de Argument Clinic era proporcionar " +#~ "\"firmas\" de introspección para las incorporaciones de CPython. Solía " +#~ "ser, las funciones de consulta de introspección lanzarían una excepción " +#~ "si pasaba un archivo incorporado. ¡Con Argument Clinic, eso es cosa del " +#~ "pasado!" + +#~ msgid "" +#~ "One idea you should keep in mind, as you work with Argument Clinic: the " +#~ "more information you give it, the better job it'll be able to do. " +#~ "Argument Clinic is admittedly relatively simple right now. But as it " +#~ "evolves it will get more sophisticated, and it should be able to do many " +#~ "interesting and smart things with all the information you give it." +#~ msgstr "" +#~ "Una idea que debe tener en cuenta al trabajar con Argument Clinic: cuanta " +#~ "más información le dé, mejor será su trabajo. Argument Clinic es " +#~ "ciertamente relativamente simple en este momento. Pero a medida que " +#~ "evolucione, se volverá más sofisticado y debería poder hacer muchas cosas " +#~ "interesantes e inteligentes con toda la información que le proporcione." + +#~ msgid "" +#~ "Argument Clinic ships with CPython; you'll find it in ``Tools/clinic/" +#~ "clinic.py``. If you run that script, specifying a C file as an argument:" +#~ msgstr "" +#~ "Argument Clinic se envía con CPython; lo encontrará en ``Tools/clinic/" +#~ "clinic.py``. Si ejecuta ese script, especificando un archivo C como " +#~ "argumento:" + +#~ msgid "" +#~ "Argument Clinic will scan over the file looking for lines that look " +#~ "exactly like this:" +#~ msgstr "" +#~ "Argument Clinic escaneará el archivo buscando líneas que se vean " +#~ "exactamente así:" + +#~ msgid "" +#~ "Everything in between these two lines is input for Argument Clinic. All " +#~ "of these lines, including the beginning and ending comment lines, are " +#~ "collectively called an Argument Clinic \"block\"." +#~ msgstr "" +#~ "Todo lo que se encuentra entre estas dos líneas es entrada para Argument " +#~ "Clinic. Todas estas líneas, incluidas las líneas de comentarios iniciales " +#~ "y finales, se denominan colectivamente un \"bloque\" de Argument Clinic." + +#~ msgid "" +#~ "When Argument Clinic parses one of these blocks, it generates output. " +#~ "This output is rewritten into the C file immediately after the block, " +#~ "followed by a comment containing a checksum. The Argument Clinic block " +#~ "now looks like this:" +#~ msgstr "" +#~ "Cuando Argument Clinic analiza uno de estos bloques, genera una salida. " +#~ "Esta salida se reescribe en el archivo C inmediatamente después del " +#~ "bloque, seguida de un comentario que contiene una suma de comprobación. " +#~ "El bloque Argument Clinic ahora tiene este aspecto:" + +#~ msgid "" +#~ "You should never modify the output portion of an Argument Clinic block. " +#~ "Instead, change the input until it produces the output you want. (That's " +#~ "the purpose of the checksum—to detect if someone changed the output, as " +#~ "these edits would be lost the next time Argument Clinic writes out fresh " +#~ "output.)" +#~ msgstr "" +#~ "Nunca debe modificar la parte de salida de un bloque de Argument Clinic. " +#~ "En su lugar, cambie la entrada hasta que produzca la salida que desea. " +#~ "(Ese es el propósito de la suma de comprobación: detectar si alguien " +#~ "cambió la salida, ya que estas ediciones se perderían la próxima vez que " +#~ "Argument Clinic escriba una salida nueva)." + +#~ msgid "" +#~ "For the sake of clarity, here's the terminology we'll use with Argument " +#~ "Clinic:" +#~ msgstr "" +#~ "En aras de la claridad, esta es la terminología que usaremos con Argument " +#~ "Clinic:" + +#~ msgid "" +#~ "The first line of the comment (``/*[clinic input]``) is the *start line*." +#~ msgstr "" +#~ "La primera línea del comentario (``/*[clinic input]``) es la *línea de " +#~ "inicio*." + +#~ msgid "" +#~ "The last line of the initial comment (``[clinic start generated code]*/" +#~ "``) is the *end line*." +#~ msgstr "" +#~ "La última línea del comentario inicial (``[clinic start generated code]*/" +#~ "``) es la *línea final*." + +#~ msgid "" +#~ "The last line (``/*[clinic end generated code: checksum=...]*/``) is the " +#~ "*checksum line*." +#~ msgstr "" +#~ "La última línea (``/*[clinic end generated code: checksum=...]*/``) es la " +#~ "*línea de suma de comprobación* (*checksum line*)." + +#~ msgid "In between the start line and the end line is the *input*." +#~ msgstr "Entre la línea de inicio y la línea final está el *input*." + +#~ msgid "" +#~ "All the text collectively, from the start line to the checksum line " +#~ "inclusively, is the *block*. (A block that hasn't been successfully " +#~ "processed by Argument Clinic yet doesn't have output or a checksum line, " +#~ "but it's still considered a block.)" +#~ msgstr "" +#~ "Todo el texto colectivamente, desde la línea de inicio hasta la línea de " +#~ "suma de verificación inclusive, es el *bloque*. (Un bloque que no ha sido " +#~ "procesado con éxito por Argument Clinic todavía no tiene salida o una " +#~ "línea de suma de verificación, pero aún se considera un bloque)." + +#~ msgid "Converting Your First Function" +#~ msgstr "Convirtiendo su primera función" + +#~ msgid "Let's dive in!" +#~ msgstr "¡Vamos a sumergirnos!" + +#~ msgid "The general form of these parameter lines is as follows:" +#~ msgstr "La forma general de estas líneas de parámetros es la siguiente:" + +#~ msgid "" +#~ "Currently this is all-or-nothing; either all parameters are positional-" +#~ "only, or none of them are. (In the future Argument Clinic may relax this " +#~ "restriction.)" +#~ msgstr "" +#~ "Actualmente esto es todo o nada; o todos los parámetros son solo " +#~ "posicionales o ninguno de ellos lo es. (En el futuro, Argument Clinic " +#~ "puede relajar esta restricción)." + +#~ msgid "" +#~ "Well, except for one difference: ``inspect.signature()`` run on your " +#~ "function should now provide a valid signature!" +#~ msgstr "" +#~ "Bueno, excepto por una diferencia: ``inspect.signature()`` ejecutar en su " +#~ "función ahora debería proporcionar una firma válida!" + +#~ msgid "Advanced Topics" +#~ msgstr "Temas avanzados" + +#~ msgid "" +#~ "Now that you've had some experience working with Argument Clinic, it's " +#~ "time for some advanced topics." +#~ msgstr "" +#~ "Ahora que ha tenido algo de experiencia trabajando con Argument Clinic, " +#~ "es hora de algunos temas avanzados." + +#~ msgid "``type``" +#~ msgstr "``type``" + +#~ msgid "``Py_UNICODE``" +#~ msgstr "``Py_UNICODE``" + +#~ msgid "``Py_UNICODE(zeroes=True)``" +#~ msgstr "``Py_UNICODE(zeroes=True)``" + +#~ msgid "``Py_UNICODE(accept={str, NoneType})``" +#~ msgstr "``Py_UNICODE(accept={str, NoneType})``" + +#~ msgid "``Py_UNICODE(accept={str, NoneType}, zeroes=True)``" +#~ msgstr "``Py_UNICODE(accept={str, NoneType}, zeroes=True)``" + +#~ msgid "Py_buffer" +#~ msgstr "Py_buffer" + +#~ msgid "Parameter default values" +#~ msgstr "Valores predeterminados de los parámetros" + +#~ msgid "Using a return converter" +#~ msgstr "Usando un convertidor de retorno" + +#~ msgid "" +#~ "None of these take parameters. For the first three, return -1 to " +#~ "indicate error. For ``DecodeFSDefault``, the return type is ``const char " +#~ "*``; return a ``NULL`` pointer to indicate an error." +#~ msgstr "" +#~ "Ninguno de estos toma parámetros. Para los tres primeros, retorna -1 para " +#~ "indicar error. Para ``DecodeFSDefault``, el tipo de retorno es ``const " +#~ "char *``; retorna un puntero ``NULL`` para indicar un error." + +#~ msgid "" +#~ "(There's also an experimental ``NoneType`` converter, which lets you " +#~ "return ``Py_None`` on success or ``NULL`` on failure, without having to " +#~ "increment the reference count on ``Py_None``. I'm not sure it adds " +#~ "enough clarity to be worth using.)" +#~ msgstr "" +#~ "(También hay un convertidor experimental ``NoneType``, que le permite " +#~ "retornar ``Py_None`` en caso de éxito o ``NULL`` en caso de falla, sin " +#~ "tener que incrementar el recuento de referencias en ``Py_None``. seguro " +#~ "que agrega suficiente claridad para que valga la pena usarlo)" + +#~ msgid "" +#~ "There are some additional members of ``CConverter`` you may wish to " +#~ "specify in your subclass. Here's the current list:" +#~ msgstr "" +#~ "Hay algunos miembros adicionales de ``CConverter`` que tal vez desee " +#~ "especificar en su subclase. Aquí está la lista actual:" + +#~ msgid "``default``" +#~ msgstr "``default``" + +#~ msgid "``py_default``" +#~ msgstr "``py_default``" + +#~ msgid "``c_ignored_default``" +#~ msgstr "``c_ignored_default``" + +#~ msgid "``parse_by_reference``" +#~ msgstr "``parse_by_reference``" + +#~ msgid "METH_O and METH_NOARGS" +#~ msgstr "METH_O y METH_NOARGS" diff --git a/howto/curses.po b/howto/curses.po index 1d62a5f583..2107fa8586 100644 --- a/howto/curses.po +++ b/howto/curses.po @@ -10,18 +10,17 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-03-20 17:27-0600\n" "Last-Translator: Juan Diego Alfonso Ocampo \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/howto/curses.rst:5 msgid "Curses Programming with Python" @@ -31,7 +30,7 @@ msgstr "Programación de curses con Python" msgid "Author" msgstr "Autor" -#: ../Doc/howto/curses.rst:7 +#: ../Doc/howto/curses.rst:9 msgid "A.M. Kuchling, Eric S. Raymond" msgstr "A.M. Kuchling, Eric S. Raymond" @@ -39,14 +38,14 @@ msgstr "A.M. Kuchling, Eric S. Raymond" msgid "Release" msgstr "Versión" -#: ../Doc/howto/curses.rst:8 +#: ../Doc/howto/curses.rst:10 msgid "2.04" msgstr "2.04" msgid "Abstract" msgstr "Resumen" -#: ../Doc/howto/curses.rst:13 +#: ../Doc/howto/curses.rst:15 msgid "" "This document describes how to use the :mod:`curses` extension module to " "control text-mode displays." @@ -54,11 +53,11 @@ msgstr "" "Este documento describe cómo usar el módulo de extensión :mod:`curses` para " "controlar las pantallas en modo texto." -#: ../Doc/howto/curses.rst:18 +#: ../Doc/howto/curses.rst:20 msgid "What is curses?" msgstr "¿Qué es curses?" -#: ../Doc/howto/curses.rst:20 +#: ../Doc/howto/curses.rst:22 msgid "" "The curses library supplies a terminal-independent screen-painting and " "keyboard-handling facility for text-based terminals; such terminals include " @@ -77,7 +76,7 @@ msgstr "" "utilizan códigos muy diferentes y, a menudo, tienen sus propias " "peculiaridades menores." -#: ../Doc/howto/curses.rst:28 +#: ../Doc/howto/curses.rst:30 msgid "" "In a world of graphical displays, one might ask \"why bother\"? It's true " "that character-cell display terminals are an obsolete technology, but there " @@ -95,7 +94,7 @@ msgstr "" "configuradores de kernel que pueden tener que ejecutarse antes de que haya " "soporte gráfico disponible." -#: ../Doc/howto/curses.rst:36 +#: ../Doc/howto/curses.rst:38 msgid "" "The curses library provides fairly basic functionality, providing the " "programmer with an abstraction of a display containing multiple non-" @@ -118,7 +117,7 @@ msgstr "" "una biblioteca de interfaz de usuario como `Urwid `_." -#: ../Doc/howto/curses.rst:46 +#: ../Doc/howto/curses.rst:48 msgid "" "The curses library was originally written for BSD Unix; the later System V " "versions of Unix from AT&T added many enhancements and new functions. BSD " @@ -141,7 +140,7 @@ msgstr "" "anteriores de curses llevadas por algunos Unix propietarios no pueden " "admitir todo." -#: ../Doc/howto/curses.rst:56 +#: ../Doc/howto/curses.rst:58 msgid "" "The Windows version of Python doesn't include the :mod:`curses` module. A " "ported version called `UniCurses `_ is " @@ -151,18 +150,19 @@ msgstr "" "una versión adaptada llamada `UniCurses `_ disponible." -#: ../Doc/howto/curses.rst:62 +#: ../Doc/howto/curses.rst:64 msgid "The Python curses module" msgstr "El módulo curses de Python" -#: ../Doc/howto/curses.rst:64 +#: ../Doc/howto/curses.rst:66 +#, fuzzy msgid "" "The Python module is a fairly simple wrapper over the C functions provided " "by curses; if you're already familiar with curses programming in C, it's " "really easy to transfer that knowledge to Python. The biggest difference is " "that the Python interface makes things simpler by merging different C " -"functions such as :c:func:`addstr`, :c:func:`mvaddstr`, and :c:func:" -"`mvwaddstr` into a single :meth:`~curses.window.addstr` method. You'll see " +"functions such as :c:func:`!addstr`, :c:func:`!mvaddstr`, and :c:func:`!" +"mvwaddstr` into a single :meth:`~curses.window.addstr` method. You'll see " "this covered in more detail later." msgstr "" "El módulo Python es un envoltorio bastante simple sobre las funciones C " @@ -173,7 +173,7 @@ msgstr "" "func:`mvwaddstr` en un solo método :meth:`~curses.window.addstr`. Verá esto " "cubierto con más detalle más adelante." -#: ../Doc/howto/curses.rst:72 +#: ../Doc/howto/curses.rst:74 msgid "" "This HOWTO is an introduction to writing text-mode programs with curses and " "Python. It doesn't attempt to be a complete guide to the curses API; for " @@ -186,16 +186,17 @@ msgstr "" "las páginas del manual de C para ncurses. Sin embargo, le dará las ideas " "básicas." -#: ../Doc/howto/curses.rst:79 +#: ../Doc/howto/curses.rst:81 msgid "Starting and ending a curses application" msgstr "Iniciar y finalizar una aplicación de curses" -#: ../Doc/howto/curses.rst:81 +#: ../Doc/howto/curses.rst:83 +#, fuzzy msgid "" "Before doing anything, curses must be initialized. This is done by calling " "the :func:`~curses.initscr` function, which will determine the terminal " "type, send any required setup codes to the terminal, and create various " -"internal data structures. If successful, :func:`initscr` returns a window " +"internal data structures. If successful, :func:`!initscr` returns a window " "object representing the entire screen; this is usually called ``stdscr`` " "after the name of the corresponding C variable. ::" msgstr "" @@ -207,7 +208,7 @@ msgstr "" "completa; Esto generalmente se llama ``stdscr`` después del nombre de la " "variable C correspondiente. ::" -#: ../Doc/howto/curses.rst:92 +#: ../Doc/howto/curses.rst:94 msgid "" "Usually curses applications turn off automatic echoing of keys to the " "screen, in order to be able to read keys and only display them under certain " @@ -218,7 +219,7 @@ msgstr "" "ciertas circunstancias. Esto requiere llamar a la función :func:`~curses." "noecho` function. ::" -#: ../Doc/howto/curses.rst:99 +#: ../Doc/howto/curses.rst:101 msgid "" "Applications will also commonly need to react to keys instantly, without " "requiring the Enter key to be pressed; this is called cbreak mode, as " @@ -228,7 +229,7 @@ msgstr "" "sin necesidad de presionar la tecla Intro; Esto se llama modo cbreak, en " "oposición al modo de entrada almacenado en memoria intermedia habitual. ::" -#: ../Doc/howto/curses.rst:105 +#: ../Doc/howto/curses.rst:107 msgid "" "Terminals usually return special keys, such as the cursor keys or navigation " "keys such as Page Up and Home, as a multibyte escape sequence. While you " @@ -244,7 +245,7 @@ msgstr "" "retornando un valor especial como :const:`curses.KEY_LEFT`. Para obtener que " "curses haga el trabajo, deberá habilitar el modo de teclado. ::" -#: ../Doc/howto/curses.rst:114 +#: ../Doc/howto/curses.rst:116 msgid "" "Terminating a curses application is much easier than starting one. You'll " "need to call::" @@ -252,7 +253,7 @@ msgstr "" "Terminar una aplicación de curses es mucho más fácil que iniciar una. " "Tendrás que llamar a ::" -#: ../Doc/howto/curses.rst:121 +#: ../Doc/howto/curses.rst:123 msgid "" "to reverse the curses-friendly terminal settings. Then call the :func:" "`~curses.endwin` function to restore the terminal to its original operating " @@ -262,7 +263,7 @@ msgstr "" "la función :func:`~curses.endwin` para restaurar el terminal a su modo " "operativo original. ::" -#: ../Doc/howto/curses.rst:127 +#: ../Doc/howto/curses.rst:129 msgid "" "A common problem when debugging a curses application is to get your terminal " "messed up when the application dies without restoring the terminal to its " @@ -276,7 +277,7 @@ msgstr "" "genera una excepción no detectada. Las teclas ya no se repiten en la " "pantalla cuando las escribe, por ejemplo, lo que dificulta el uso del shell." -#: ../Doc/howto/curses.rst:133 +#: ../Doc/howto/curses.rst:135 msgid "" "In Python you can avoid these complications and make debugging much easier " "by importing the :func:`curses.wrapper` function and using it like this::" @@ -284,12 +285,13 @@ msgstr "" "En Python puede evitar estas complicaciones y facilitar la depuración " "importando la función :func:`curses.wrapper` y usándola así::" -#: ../Doc/howto/curses.rst:152 +#: ../Doc/howto/curses.rst:154 +#, fuzzy msgid "" "The :func:`~curses.wrapper` function takes a callable object and does the " "initializations described above, also initializing colors if color support " -"is present. :func:`wrapper` then runs your provided callable. Once the " -"callable returns, :func:`wrapper` will restore the original state of the " +"is present. :func:`!wrapper` then runs your provided callable. Once the " +"callable returns, :func:`!wrapper` will restore the original state of the " "terminal. The callable is called inside a :keyword:`try`...\\ :keyword:" "`except` that catches exceptions, restores the state of the terminal, and " "then re-raises the exception. Therefore your terminal won't be left in a " @@ -306,11 +308,11 @@ msgstr "" "se quedará en un estado extraño de excepción y podrá leer el mensaje de la " "excepción y el rastreo." -#: ../Doc/howto/curses.rst:164 +#: ../Doc/howto/curses.rst:166 msgid "Windows and Pads" msgstr "Ventanas y pads" -#: ../Doc/howto/curses.rst:166 +#: ../Doc/howto/curses.rst:168 msgid "" "Windows are the basic abstraction in curses. A window object represents a " "rectangular area of the screen, and supports methods to display text, erase " @@ -320,7 +322,7 @@ msgstr "" "representa un área rectangular de la pantalla y admite métodos para mostrar " "texto, borrarlo, permitir al usuario ingresar cadenas, etc." -#: ../Doc/howto/curses.rst:170 +#: ../Doc/howto/curses.rst:172 msgid "" "The ``stdscr`` object returned by the :func:`~curses.initscr` function is a " "window object that covers the entire screen. Many programs may need only " @@ -336,7 +338,7 @@ msgstr "" "borrarlas por separado. La función :func:`~curses.newwin` crea una nueva " "ventana de un tamaño dado, retornando el nuevo objeto de ventana. ::" -#: ../Doc/howto/curses.rst:181 +#: ../Doc/howto/curses.rst:183 msgid "" "Note that the coordinate system used in curses is unusual. Coordinates are " "always passed in the order *y,x*, and the top-left corner of a window is " @@ -353,7 +355,7 @@ msgstr "" "aplicaciones informáticas, pero ha sido parte de curses desde que se " "escribió por primera vez, y ahora es demasiado tarde para cambiar las cosas." -#: ../Doc/howto/curses.rst:189 +#: ../Doc/howto/curses.rst:191 msgid "" "Your application can determine the size of the screen by using the :data:" "`curses.LINES` and :data:`curses.COLS` variables to obtain the *y* and *x* " @@ -365,7 +367,7 @@ msgstr "" "tamaños *y* y *x*. Las coordenadas legales se extenderán de ``(0,0)`` a " "``(curses.LINES - 1, curses.COLS - 1)``." -#: ../Doc/howto/curses.rst:194 +#: ../Doc/howto/curses.rst:196 msgid "" "When you call a method to display or erase text, the effect doesn't " "immediately show up on the display. Instead you must call the :meth:" @@ -376,14 +378,15 @@ msgstr "" "`~curses.window.refresh` de los objetos de ventana para actualizar la " "pantalla." -#: ../Doc/howto/curses.rst:199 +#: ../Doc/howto/curses.rst:201 +#, fuzzy msgid "" "This is because curses was originally written with slow 300-baud terminal " "connections in mind; with these terminals, minimizing the time required to " "redraw the screen was very important. Instead curses accumulates changes to " "the screen and displays them in the most efficient manner when you call :" -"meth:`refresh`. For example, if your program displays some text in a window " -"and then clears the window, there's no need to send the original text " +"meth:`!refresh`. For example, if your program displays some text in a " +"window and then clears the window, there's no need to send the original text " "because they're never visible." msgstr "" "Esto se debe a que curses se escribieron originalmente teniendo en cuenta " @@ -394,14 +397,15 @@ msgstr "" "programa muestra algo de texto en una ventana y luego borra la ventana, no " "hay necesidad de enviar el texto original porque nunca son visibles." -#: ../Doc/howto/curses.rst:208 +#: ../Doc/howto/curses.rst:210 +#, fuzzy msgid "" "In practice, explicitly telling curses to redraw a window doesn't really " "complicate programming with curses much. Most programs go into a flurry of " "activity, and then pause waiting for a keypress or some other action on the " "part of the user. All you have to do is to be sure that the screen has been " -"redrawn before pausing to wait for user input, by first calling ``stdscr." -"refresh()`` or the :meth:`refresh` method of some other relevant window." +"redrawn before pausing to wait for user input, by first calling :meth:`!" +"stdscr.refresh` or the :meth:`!refresh` method of some other relevant window." msgstr "" "En la práctica, decirle explícitamente a curses que vuelva a dibujar una " "ventana no complica mucho la programación con curses. La mayoría de los " @@ -412,7 +416,7 @@ msgstr "" "llamando primero a ``stdscr.refresh()`` o al método :meth:`refresh` de " "alguna otra ventana relevante." -#: ../Doc/howto/curses.rst:216 +#: ../Doc/howto/curses.rst:218 msgid "" "A pad is a special case of a window; it can be larger than the actual " "display screen, and only a portion of the pad displayed at a time. Creating " @@ -426,9 +430,10 @@ msgstr "" "que la actualización de un pad requiere dar las coordenadas del área en " "pantalla donde se mostrará una subsección del pad. ::" -#: ../Doc/howto/curses.rst:237 +#: ../Doc/howto/curses.rst:239 +#, fuzzy msgid "" -"The :meth:`refresh` call displays a section of the pad in the rectangle " +"The :meth:`!refresh` call displays a section of the pad in the rectangle " "extending from coordinate (5,5) to coordinate (20,75) on the screen; the " "upper left corner of the displayed section is coordinate (0,0) on the pad. " "Beyond that difference, pads are exactly like ordinary windows and support " @@ -440,18 +445,19 @@ msgstr "" "coordenada (0,0) en el pad. Más allá de esa diferencia, los pads son " "exactamente como las ventanas normales y admiten los mismos métodos." -#: ../Doc/howto/curses.rst:243 +#: ../Doc/howto/curses.rst:245 +#, fuzzy msgid "" "If you have multiple windows and pads on screen there is a more efficient " "way to update the screen and prevent annoying screen flicker as each part of " -"the screen gets updated. :meth:`refresh` actually does two things:" +"the screen gets updated. :meth:`!refresh` actually does two things:" msgstr "" "Si tiene varias ventanas y almohadillas en la pantalla, hay una manera más " "eficiente de actualizar la pantalla y evitar el molesto parpadeo de la " "pantalla a medida que se actualiza cada parte de la pantalla. :meth:" "`refresh` en realidad hace dos cosas:" -#: ../Doc/howto/curses.rst:248 +#: ../Doc/howto/curses.rst:250 msgid "" "Calls the :meth:`~curses.window.noutrefresh` method of each window to update " "an underlying data structure representing the desired state of the screen." @@ -460,7 +466,7 @@ msgstr "" "actualizar una estructura de datos subyacente que representa el estado " "deseado de la pantalla." -#: ../Doc/howto/curses.rst:251 +#: ../Doc/howto/curses.rst:253 msgid "" "Calls the function :func:`~curses.doupdate` function to change the physical " "screen to match the desired state recorded in the data structure." @@ -468,28 +474,31 @@ msgstr "" "Llama a la función :func:`~curses.doupdate` para cambiar la pantalla física " "para que coincida con el estado deseado registrado en la estructura de datos." -#: ../Doc/howto/curses.rst:254 +#: ../Doc/howto/curses.rst:256 +#, fuzzy msgid "" -"Instead you can call :meth:`noutrefresh` on a number of windows to update " -"the data structure, and then call :func:`doupdate` to update the screen." +"Instead you can call :meth:`!noutrefresh` on a number of windows to update " +"the data structure, and then call :func:`!doupdate` to update the screen." msgstr "" "En su lugar, puede llamar a :meth:`noutrefresh` en varias ventanas para " "actualizar la estructura de datos, y luego llamar a :func:`doupdate` para " "actualizar la pantalla." -#: ../Doc/howto/curses.rst:260 +#: ../Doc/howto/curses.rst:262 msgid "Displaying Text" msgstr "Mostrando el texto" -#: ../Doc/howto/curses.rst:262 +#: ../Doc/howto/curses.rst:264 +#, fuzzy msgid "" "From a C programmer's point of view, curses may sometimes look like a twisty " -"maze of functions, all subtly different. For example, :c:func:`addstr` " +"maze of functions, all subtly different. For example, :c:func:`!addstr` " "displays a string at the current cursor location in the ``stdscr`` window, " -"while :c:func:`mvaddstr` moves to a given y,x coordinate first before " -"displaying the string. :c:func:`waddstr` is just like :c:func:`addstr`, but " -"allows specifying a window to use instead of using ``stdscr`` by default. :c:" -"func:`mvwaddstr` allows specifying both a window and a coordinate." +"while :c:func:`!mvaddstr` moves to a given y,x coordinate first before " +"displaying the string. :c:func:`!waddstr` is just like :c:func:`!addstr`, " +"but allows specifying a window to use instead of using ``stdscr`` by " +"default. :c:func:`!mvwaddstr` allows specifying both a window and a " +"coordinate." msgstr "" "Desde el punto de vista de un programador en C, curses a veces puede parecer " "un laberinto retorcido de funciones, todas sutilmente diferentes. Por " @@ -500,7 +509,7 @@ msgstr "" "usar en lugar de usar ``stdscr`` por defecto. :c:func:`mvwaddstr` permite " "especificar tanto una ventana como una coordenada." -#: ../Doc/howto/curses.rst:271 +#: ../Doc/howto/curses.rst:273 msgid "" "Fortunately the Python interface hides all these details. ``stdscr`` is a " "window object like any other, and methods such as :meth:`~curses.window." @@ -512,27 +521,27 @@ msgstr "" "`~curses.window.addstr` aceptan múltiples formas de argumento. Por lo " "general, hay cuatro formas diferentes." -#: ../Doc/howto/curses.rst:277 +#: ../Doc/howto/curses.rst:279 msgid "Form" msgstr "Formas" -#: ../Doc/howto/curses.rst:277 ../Doc/howto/curses.rst:345 +#: ../Doc/howto/curses.rst:279 ../Doc/howto/curses.rst:347 msgid "Description" msgstr "Descripción" -#: ../Doc/howto/curses.rst:279 +#: ../Doc/howto/curses.rst:281 msgid "*str* or *ch*" msgstr "*str* o *ch*" -#: ../Doc/howto/curses.rst:279 +#: ../Doc/howto/curses.rst:281 msgid "Display the string *str* or character *ch* at the current position" msgstr "Mostrar la cadena *str* o el carácter *ch* en la posición actual" -#: ../Doc/howto/curses.rst:282 +#: ../Doc/howto/curses.rst:284 msgid "*str* or *ch*, *attr*" msgstr "*str* o *ch*, *attr*" -#: ../Doc/howto/curses.rst:282 +#: ../Doc/howto/curses.rst:284 msgid "" "Display the string *str* or character *ch*, using attribute *attr* at the " "current position" @@ -540,20 +549,20 @@ msgstr "" "Muestra la cadena *str* o el carácter *ch*, utilizando el atributo *attr* en " "la posición actual" -#: ../Doc/howto/curses.rst:286 +#: ../Doc/howto/curses.rst:288 msgid "*y*, *x*, *str* or *ch*" msgstr "*y*, *x*, *str* o *ch*" -#: ../Doc/howto/curses.rst:286 +#: ../Doc/howto/curses.rst:288 msgid "Move to position *y,x* within the window, and display *str* or *ch*" msgstr "" "Moverse a la posición *y,x* dentro de la ventana, y mostrar *st* o *ch*" -#: ../Doc/howto/curses.rst:289 +#: ../Doc/howto/curses.rst:291 msgid "*y*, *x*, *str* or *ch*, *attr*" msgstr "*y*, *x*, *str* o *ch*, *attr*" -#: ../Doc/howto/curses.rst:289 +#: ../Doc/howto/curses.rst:291 msgid "" "Move to position *y,x* within the window, and display *str* or *ch*, using " "attribute *attr*" @@ -561,7 +570,7 @@ msgstr "" "Muévase a la posición *y, x* dentro de la ventana y muestre *str* o *ch*, " "usando el atributo *attr*" -#: ../Doc/howto/curses.rst:293 +#: ../Doc/howto/curses.rst:295 msgid "" "Attributes allow displaying text in highlighted forms such as boldface, " "underline, reverse code, or in color. They'll be explained in more detail " @@ -571,13 +580,14 @@ msgstr "" "subrayado, código inverso o en color. Se explicarán con más detalle en la " "siguiente subsección." -#: ../Doc/howto/curses.rst:298 +#: ../Doc/howto/curses.rst:300 +#, fuzzy msgid "" "The :meth:`~curses.window.addstr` method takes a Python string or bytestring " "as the value to be displayed. The contents of bytestrings are sent to the " "terminal as-is. Strings are encoded to bytes using the value of the " -"window's :attr:`encoding` attribute; this defaults to the default system " -"encoding as returned by :func:`locale.getencoding`." +"window's :attr:`~window.encoding` attribute; this defaults to the default " +"system encoding as returned by :func:`locale.getencoding`." msgstr "" "El método :meth:`~curses.window.addstr` toma una cadena de texto en Python " "como valor para mostrar en pantalla. Los contenidos de las cadenas de texto " @@ -586,7 +596,7 @@ msgstr "" "ventana; por defecto esto utiliza la codificación del sistema como lo " "devuelve la función :func:`locale.getencoding`." -#: ../Doc/howto/curses.rst:304 +#: ../Doc/howto/curses.rst:306 msgid "" "The :meth:`~curses.window.addch` methods take a character, which can be " "either a string of length 1, a bytestring of length 1, or an integer." @@ -594,7 +604,7 @@ msgstr "" "Los métodos :meth:`~curses.window.addch` toman un carácter, que puede ser " "una cadena de longitud 1, una cadena de bytes de longitud 1 o un entero." -#: ../Doc/howto/curses.rst:307 +#: ../Doc/howto/curses.rst:309 msgid "" "Constants are provided for extension characters; these constants are " "integers greater than 255. For example, :const:`ACS_PLMINUS` is a +/- " @@ -607,7 +617,7 @@ msgstr "" "un cuadro (útil para dibujar bordes). También puede usar el carácter Unicode " "apropiado." -#: ../Doc/howto/curses.rst:313 +#: ../Doc/howto/curses.rst:315 msgid "" "Windows remember where the cursor was left after the last operation, so if " "you leave out the *y,x* coordinates, the string or character will be " @@ -625,7 +635,7 @@ msgstr "" "cursor esté ubicado en algún lugar donde no distraiga; Puede ser confuso " "tener el cursor parpadeando en alguna ubicación aparentemente aleatoria." -#: ../Doc/howto/curses.rst:321 +#: ../Doc/howto/curses.rst:323 msgid "" "If your application doesn't need a blinking cursor at all, you can call " "``curs_set(False)`` to make it invisible. For compatibility with older " @@ -641,11 +651,11 @@ msgstr "" "biblioteca curses intentará suprimir el cursor parpadeante, y no tendrá que " "preocuparse por dejarlo en ubicaciones extrañas." -#: ../Doc/howto/curses.rst:330 +#: ../Doc/howto/curses.rst:332 msgid "Attributes and Color" msgstr "Atributos y color" -#: ../Doc/howto/curses.rst:332 +#: ../Doc/howto/curses.rst:334 msgid "" "Characters can be displayed in different ways. Status lines in a text-based " "application are commonly shown in reverse video, or a text viewer may need " @@ -657,7 +667,7 @@ msgstr "" "un visor de texto puede necesitar resaltar ciertas palabras. curses admite " "esto al permitirle especificar un atributo para cada celda en la pantalla." -#: ../Doc/howto/curses.rst:337 +#: ../Doc/howto/curses.rst:339 msgid "" "An attribute is an integer, each bit representing a different attribute. " "You can try to display text with multiple attribute bits set, but curses " @@ -673,59 +683,59 @@ msgstr "" "terminal que se utilice, por lo que es más seguro apegarse a los atributos " "más comúnmente disponibles, enumerados aquí." -#: ../Doc/howto/curses.rst:345 +#: ../Doc/howto/curses.rst:347 msgid "Attribute" msgstr "Atributo" -#: ../Doc/howto/curses.rst:347 +#: ../Doc/howto/curses.rst:349 msgid ":const:`A_BLINK`" msgstr ":const:`A_BLINK`" -#: ../Doc/howto/curses.rst:347 +#: ../Doc/howto/curses.rst:349 msgid "Blinking text" msgstr "Texto parpadeante" -#: ../Doc/howto/curses.rst:349 +#: ../Doc/howto/curses.rst:351 msgid ":const:`A_BOLD`" msgstr ":const:`A_BOLD`" -#: ../Doc/howto/curses.rst:349 +#: ../Doc/howto/curses.rst:351 msgid "Extra bright or bold text" msgstr "Texto extra brillante o en negrita" -#: ../Doc/howto/curses.rst:351 +#: ../Doc/howto/curses.rst:353 msgid ":const:`A_DIM`" msgstr ":const:`A_DIM`" -#: ../Doc/howto/curses.rst:351 +#: ../Doc/howto/curses.rst:353 msgid "Half bright text" msgstr "Texto medio brillante" -#: ../Doc/howto/curses.rst:353 +#: ../Doc/howto/curses.rst:355 msgid ":const:`A_REVERSE`" msgstr ":const:`A_REVERSE`" -#: ../Doc/howto/curses.rst:353 +#: ../Doc/howto/curses.rst:355 msgid "Reverse-video text" msgstr "Texto de video inverso" -#: ../Doc/howto/curses.rst:355 +#: ../Doc/howto/curses.rst:357 msgid ":const:`A_STANDOUT`" msgstr ":const:`A_STANDOUT`" -#: ../Doc/howto/curses.rst:355 +#: ../Doc/howto/curses.rst:357 msgid "The best highlighting mode available" msgstr "El mejor modo de resaltado disponible" -#: ../Doc/howto/curses.rst:357 +#: ../Doc/howto/curses.rst:359 msgid ":const:`A_UNDERLINE`" msgstr ":const:`A_UNDERLINE`" -#: ../Doc/howto/curses.rst:357 +#: ../Doc/howto/curses.rst:359 msgid "Underlined text" msgstr "Texto subrayado" -#: ../Doc/howto/curses.rst:360 +#: ../Doc/howto/curses.rst:362 msgid "" "So, to display a reverse-video status line on the top line of the screen, " "you could code::" @@ -733,7 +743,7 @@ msgstr "" "Entonces, para mostrar una línea de estado de video inverso en la línea " "superior de la pantalla, puede codificar::" -#: ../Doc/howto/curses.rst:367 +#: ../Doc/howto/curses.rst:369 msgid "" "The curses library also supports color on those terminals that provide it. " "The most common such terminal is probably the Linux console, followed by " @@ -743,7 +753,7 @@ msgstr "" "proporcionen. El terminal más común es probablemente la consola de Linux, " "seguido de *xterms* en color." -#: ../Doc/howto/curses.rst:371 +#: ../Doc/howto/curses.rst:373 msgid "" "To use color, you must call the :func:`~curses.start_color` function soon " "after calling :func:`~curses.initscr`, to initialize the default color set " @@ -764,7 +774,7 @@ msgstr "" "británica, tendrá que resignarse a escribir mal por el bien de estas " "funciones. )" -#: ../Doc/howto/curses.rst:381 +#: ../Doc/howto/curses.rst:383 msgid "" "The curses library maintains a finite number of color pairs, containing a " "foreground (or text) color and a background color. You can get the " @@ -780,12 +790,12 @@ msgstr "" "otros atributos como :const:`A_REVERSE`, pero nuevamente, no se garantiza " "que tales combinaciones funcionen en todos los terminales." -#: ../Doc/howto/curses.rst:388 +#: ../Doc/howto/curses.rst:390 msgid "An example, which displays a line of text using color pair 1::" msgstr "" "Un ejemplo, que muestra una línea de texto usando el par de colores 1 ::" -#: ../Doc/howto/curses.rst:393 +#: ../Doc/howto/curses.rst:395 msgid "" "As I said before, a color pair consists of a foreground and background " "color. The ``init_pair(n, f, b)`` function changes the definition of color " @@ -797,7 +807,7 @@ msgstr "" "colores *n*, a color de primer plano f y color de fondo b. El par de colores " "0 está cableado a blanco sobre negro, y no se puede cambiar." -#: ../Doc/howto/curses.rst:398 +#: ../Doc/howto/curses.rst:400 msgid "" "Colors are numbered, and :func:`start_color` initializes 8 basic colors when " "it activates color mode. They are: 0:black, 1:red, 2:green, 3:yellow, 4:" @@ -811,7 +821,7 @@ msgstr "" "define constantes con nombre para cada uno de estos colores: :const:`curses." "COLOR_BLACK`, :const:`curses.COLOR_RED`, y así sucesivamente." -#: ../Doc/howto/curses.rst:404 +#: ../Doc/howto/curses.rst:406 msgid "" "Let's put all this together. To change color 1 to red text on a white " "background, you would call::" @@ -819,7 +829,7 @@ msgstr "" "Pongamos todo esto juntos. Para cambiar el color 1 al texto rojo sobre un " "fondo blanco, debe llamar a::" -#: ../Doc/howto/curses.rst:409 +#: ../Doc/howto/curses.rst:411 msgid "" "When you change a color pair, any text already displayed using that color " "pair will change to the new colors. You can also display new text in this " @@ -829,7 +839,7 @@ msgstr "" "ese par de colores cambiará a los nuevos colores. También puede mostrar " "texto nuevo en este color con::" -#: ../Doc/howto/curses.rst:415 +#: ../Doc/howto/curses.rst:417 msgid "" "Very fancy terminals can change the definitions of the actual colors to a " "given RGB value. This lets you change color 1, which is usually red, to " @@ -850,11 +860,11 @@ msgstr "" "un terminal tan talentoso, consulte las páginas de manual de su sistema para " "obtener más información." -#: ../Doc/howto/curses.rst:426 +#: ../Doc/howto/curses.rst:428 msgid "User Input" msgstr "*Input* del usuario" -#: ../Doc/howto/curses.rst:428 +#: ../Doc/howto/curses.rst:430 msgid "" "The C curses library offers only very simple input mechanisms. Python's :mod:" "`curses` module adds a basic text-input widget. (Other libraries such as " @@ -866,11 +876,11 @@ msgstr "" "(Otras bibliotecas como `Urwid `_ tienen " "colecciones más extensas de widgets)." -#: ../Doc/howto/curses.rst:433 +#: ../Doc/howto/curses.rst:435 msgid "There are two methods for getting input from a window:" msgstr "Hay dos métodos para obtener información desde una ventana:" -#: ../Doc/howto/curses.rst:435 +#: ../Doc/howto/curses.rst:437 msgid "" ":meth:`~curses.window.getch` refreshes the screen and then waits for the " "user to hit a key, displaying the key if :func:`~curses.echo` has been " @@ -882,7 +892,7 @@ msgstr "" "sido llamado anteriormente. Opcionalmente, puede especificar una coordenada " "a la que se debe mover el cursor antes de pausar." -#: ../Doc/howto/curses.rst:440 +#: ../Doc/howto/curses.rst:442 msgid "" ":meth:`~curses.window.getkey` does the same thing but converts the integer " "to a string. Individual characters are returned as 1-character strings, and " @@ -894,15 +904,16 @@ msgstr "" "y las teclas especiales como las teclas de función retornan cadenas más " "largas que contienen un nombre de tecla como ``KEY_UP`` o ``^ G``." -#: ../Doc/howto/curses.rst:445 +#: ../Doc/howto/curses.rst:447 +#, fuzzy msgid "" "It's possible to not wait for the user using the :meth:`~curses.window." -"nodelay` window method. After ``nodelay(True)``, :meth:`getch` and :meth:" -"`getkey` for the window become non-blocking. To signal that no input is " -"ready, :meth:`getch` returns ``curses.ERR`` (a value of -1) and :meth:" -"`getkey` raises an exception. There's also a :func:`~curses.halfdelay` " -"function, which can be used to (in effect) set a timer on each :meth:" -"`getch`; if no input becomes available within a specified delay (measured in " +"nodelay` window method. After ``nodelay(True)``, :meth:`!getch` and :meth:`!" +"getkey` for the window become non-blocking. To signal that no input is " +"ready, :meth:`!getch` returns ``curses.ERR`` (a value of -1) and :meth:`!" +"getkey` raises an exception. There's also a :func:`~curses.halfdelay` " +"function, which can be used to (in effect) set a timer on each :meth:`!" +"getch`; if no input becomes available within a specified delay (measured in " "tenths of a second), curses raises an exception." msgstr "" "Es posible no esperar al usuario utilizando el método de ventana :meth:`~ " @@ -914,9 +925,10 @@ msgstr "" "cada :meth:`getch`; Si no hay entrada disponible dentro de un retraso " "especificado (medido en décimas de segundo), curses generan una excepción." -#: ../Doc/howto/curses.rst:455 +#: ../Doc/howto/curses.rst:457 +#, fuzzy msgid "" -"The :meth:`getch` method returns an integer; if it's between 0 and 255, it " +"The :meth:`!getch` method returns an integer; if it's between 0 and 255, it " "represents the ASCII code of the key pressed. Values greater than 255 are " "special keys such as Page Up, Home, or the cursor keys. You can compare the " "value returned to constants such as :const:`curses.KEY_PPAGE`, :const:" @@ -930,7 +942,7 @@ msgstr "" "const:`curses.KEY_HOME`, o :const:`curses.KEY_LEFT`. El bucle principal de " "su programa puede verse así::" -#: ../Doc/howto/curses.rst:471 +#: ../Doc/howto/curses.rst:473 msgid "" "The :mod:`curses.ascii` module supplies ASCII class membership functions " "that take either integer or 1-character string arguments; these may be " @@ -946,7 +958,7 @@ msgstr "" "de 1 carácter y retornen el mismo tipo. Por ejemplo, :func:`curses.ascii." "ctrl` retorna el carácter de control correspondiente a su argumento." -#: ../Doc/howto/curses.rst:478 +#: ../Doc/howto/curses.rst:480 msgid "" "There's also a method to retrieve an entire string, :meth:`~curses.window." "getstr`. It isn't used very often, because its functionality is quite " @@ -960,7 +972,7 @@ msgstr "" "retroceso y la tecla Intro, que termina la cadena. Opcionalmente, puede " "limitarse a un número fijo de caracteres. ::" -#: ../Doc/howto/curses.rst:489 +#: ../Doc/howto/curses.rst:491 msgid "" "The :mod:`curses.textpad` module supplies a text box that supports an Emacs-" "like set of keybindings. Various methods of the :class:`~curses.textpad." @@ -972,18 +984,18 @@ msgstr "" "textpad.Textbox` admiten la edición con validación de entrada y recopilan " "los resultados de edición con o sin espacios finales. Aquí hay un ejemplo::" -#: ../Doc/howto/curses.rst:513 +#: ../Doc/howto/curses.rst:515 msgid "" "See the library documentation on :mod:`curses.textpad` for more details." msgstr "" "Consulte la documentación de la biblioteca sobre :mod:`curses.textpad` para " "más detalles." -#: ../Doc/howto/curses.rst:517 +#: ../Doc/howto/curses.rst:519 msgid "For More Information" msgstr "Para más información" -#: ../Doc/howto/curses.rst:519 +#: ../Doc/howto/curses.rst:521 msgid "" "This HOWTO doesn't cover some advanced topics, such as reading the contents " "of the screen or capturing mouse events from an xterm instance, but the " @@ -995,13 +1007,14 @@ msgstr "" "página de la biblioteca de Python para el módulo :mod:`curses` ahora está " "razonablemente completa. Deberías buscarlo posteriormente." -#: ../Doc/howto/curses.rst:524 +#: ../Doc/howto/curses.rst:526 +#, fuzzy msgid "" "If you're in doubt about the detailed behavior of the curses functions, " "consult the manual pages for your curses implementation, whether it's " "ncurses or a proprietary Unix vendor's. The manual pages will document any " "quirks, and provide complete lists of all the functions, attributes, and :" -"const:`ACS_\\*` characters available to you." +"ref:`ACS_\\* ` characters available to you." msgstr "" "Si tiene dudas sobre el comportamiento detallado de las funciones de curses, " "consulte las páginas del manual para su implementación de curses, ya sea " @@ -1010,7 +1023,7 @@ msgstr "" "todas las funciones, atributos y caracteres :const:`ACS_\\*` disponibles " "para usted." -#: ../Doc/howto/curses.rst:531 +#: ../Doc/howto/curses.rst:533 msgid "" "Because the curses API is so large, some functions aren't supported in the " "Python interface. Often this isn't because they're difficult to implement, " @@ -1027,7 +1040,7 @@ msgstr "" "Guía del desarrollador de Python `_ para " "obtener más información sobre cómo enviar parches a Python." -#: ../Doc/howto/curses.rst:539 +#: ../Doc/howto/curses.rst:541 msgid "" "`Writing Programs with NCURSES `_: a lengthy tutorial for C programmers." @@ -1035,20 +1048,20 @@ msgstr "" "`Escribir programas con NCURSES `_: un tutorial extenso para programadores en C." -#: ../Doc/howto/curses.rst:541 +#: ../Doc/howto/curses.rst:543 msgid "`The ncurses man page `_" msgstr "" "`La página web con el manual de ncurses `_" -#: ../Doc/howto/curses.rst:542 +#: ../Doc/howto/curses.rst:544 msgid "" "`The ncurses FAQ `_" msgstr "" "`Preguntas y respuestas frecuentes de ncurses `_" -#: ../Doc/howto/curses.rst:543 +#: ../Doc/howto/curses.rst:545 msgid "" "`\"Use curses... don't swear\" `_: video of a PyCon 2013 talk on controlling terminals using " @@ -1058,7 +1071,7 @@ msgstr "" "v=eN1eZtjLEnU>`_: video de una charla de PyCon 2013 sobre el control de " "terminales usando curses o Urwid." -#: ../Doc/howto/curses.rst:545 +#: ../Doc/howto/curses.rst:547 msgid "" "`\"Console Applications with Urwid\" `_: video of a PyCon CA 2012 talk demonstrating some " diff --git a/howto/descriptor.po b/howto/descriptor.po index c12ad3210f..681046cd31 100644 --- a/howto/descriptor.po +++ b/howto/descriptor.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-03-17 17:40-0600\n" "Last-Translator: Rodrigo Tobar \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/howto/descriptor.rst:5 msgid "Descriptor HowTo Guide" @@ -739,9 +738,10 @@ msgstr "" "Si se encuentra un descriptor, se invoca con ``desc.__get__(None, A)``." #: ../Doc/howto/descriptor.rst:782 +#, fuzzy msgid "" -"The full C implementation can be found in :c:func:`type_getattro()` and :c:" -"func:`_PyType_Lookup()` in :source:`Objects/typeobject.c`." +"The full C implementation can be found in :c:func:`!type_getattro` and :c:" +"func:`!_PyType_Lookup` in :source:`Objects/typeobject.c`." msgstr "" "La implementación completa en C puede ser encontrada en :c:func:" "`type_getattro()` y :c:func:`_PyType_Lookup()` en :source:`Objects/" @@ -772,8 +772,9 @@ msgstr "" "se retorna sin cambiar." #: ../Doc/howto/descriptor.rst:797 +#, fuzzy msgid "" -"The full C implementation can be found in :c:func:`super_getattro()` in :" +"The full C implementation can be found in :c:func:`!super_getattro` in :" "source:`Objects/typeobject.c`. A pure Python equivalent can be found in " "`Guido's Tutorial `_." @@ -863,9 +864,10 @@ msgstr "" "y *name* es la variable de clase a la cual el descriptor se asigna." #: ../Doc/howto/descriptor.rst:839 +#, fuzzy msgid "" -"The implementation details are in :c:func:`type_new()` and :c:func:" -"`set_names()` in :source:`Objects/typeobject.c`." +"The implementation details are in :c:func:`!type_new` and :c:func:`!" +"set_names` in :source:`Objects/typeobject.c`." msgstr "" "Los detalles de la implementación están en :c:func:`type_new()` y :c:func:" "`set_names()` en :source:`Objects/typeobject.c`." @@ -886,6 +888,7 @@ msgid "ORM example" msgstr "Ejemplo de mapeos objeto-relacional (*ORM*)" #: ../Doc/howto/descriptor.rst:850 +#, python-format msgid "" "The following code is a simplified skeleton showing how data descriptors " "could be used to implement an `object relational mapping `_ probablemente sólo importa cuando " "una gran cantidad de instancias será creada." -#: ../Doc/howto/descriptor.rst:1490 +#: ../Doc/howto/descriptor.rst:1572 +#, python-format msgid "" "4. Improves speed. Reading instance variables is 35% faster with " "``__slots__`` (as measured with Python 3.10 on an Apple M1 processor)." @@ -1348,7 +1369,7 @@ msgstr "" "4. Mejora la velocidad. Leer variables de instancia es 35% más rápido con " "``__slots__`` (medido con Python 3.10 en un procesador Apple M1)." -#: ../Doc/howto/descriptor.rst:1493 +#: ../Doc/howto/descriptor.rst:1575 msgid "" "5. Blocks tools like :func:`functools.cached_property` which require an " "instance dictionary to function correctly:" @@ -1356,7 +1377,7 @@ msgstr "" "5. Bloquea a herramientas tales como :func:`functools.cached_property`, las " "que requieren un diccionario de instancia para funcionar correctamente:" -#: ../Doc/howto/descriptor.rst:1515 +#: ../Doc/howto/descriptor.rst:1597 msgid "" "It is not possible to create an exact drop-in pure Python version of " "``__slots__`` because it requires direct access to C structures and control " @@ -1372,7 +1393,7 @@ msgstr "" "con una lista privada ``_slotvalues``. Las lecturas y escrituras de esta " "estructura privada se manejan con descriptores miembros:" -#: ../Doc/howto/descriptor.rst:1560 +#: ../Doc/howto/descriptor.rst:1642 msgid "" "The :meth:`type.__new__` method takes care of adding member objects to class " "variables:" @@ -1380,7 +1401,7 @@ msgstr "" "El método :meth:`type.__new__` se hace cargo de añadir objetos miembros a " "variables de clase:" -#: ../Doc/howto/descriptor.rst:1576 +#: ../Doc/howto/descriptor.rst:1658 msgid "" "The :meth:`object.__new__` method takes care of creating instances that have " "slots instead of an instance dictionary. Here is a rough simulation in pure " @@ -1390,7 +1411,7 @@ msgstr "" "tienen ranuras en vez un diccionario de instancia. Acá hay una simulación " "aproximada en Python puro:" -#: ../Doc/howto/descriptor.rst:1611 +#: ../Doc/howto/descriptor.rst:1693 msgid "" "To use the simulation in a real class, just inherit from :class:`Object` and " "set the :term:`metaclass` to :class:`Type`:" @@ -1398,13 +1419,13 @@ msgstr "" "Para usar la simulación en una clase real, sólo hereda de :class:`Object` y " "establece :term:`metaclass` a :class:`Type`:" -#: ../Doc/howto/descriptor.rst:1625 +#: ../Doc/howto/descriptor.rst:1707 msgid "" "At this point, the metaclass has loaded member objects for *x* and *y*::" msgstr "" "En este punto, la metaclase ha cargado los objetos miembros para *x* e *y*::" -#: ../Doc/howto/descriptor.rst:1646 +#: ../Doc/howto/descriptor.rst:1728 msgid "" "When instances are created, they have a ``slot_values`` list where the " "attributes are stored:" @@ -1412,6 +1433,6 @@ msgstr "" "Cuando se crean instancias, éstas tienen una lista ``slot_values`` donde se " "almacenan los atributos:" -#: ../Doc/howto/descriptor.rst:1658 +#: ../Doc/howto/descriptor.rst:1740 msgid "Misspelled or unassigned attributes will raise an exception:" msgstr "Atributos mal deletreados o no asignados lazarán una excepción:" diff --git a/howto/enum.po b/howto/enum.po index a130adf3ae..39304f3bf5 100644 --- a/howto/enum.po +++ b/howto/enum.po @@ -9,14 +9,14 @@ msgid "" msgstr "" "Project-Id-Version: Python en Español 3.11\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/howto/enum.rst:3 msgid "Enum HOWTO" @@ -58,15 +58,18 @@ msgid "Case of Enum Members" msgstr "Caso de miembros de Enum" #: ../Doc/howto/enum.rst:39 +#, fuzzy msgid "" -"Because Enums are used to represent constants we recommend using UPPER_CASE " -"names for members, and will be using that style in our examples." +"Because Enums are used to represent constants, and to help avoid issues with " +"name clashes between mixin-class methods/attributes and enum names, we " +"strongly recommend using UPPER_CASE names for members, and will be using " +"that style in our examples." msgstr "" "Debido a que las enumeraciones se usan para representar constantes, " "recomendamos usar nombres en MAYÚSCULAS para los miembros, y usaremos ese " "estilo en nuestros ejemplos." -#: ../Doc/howto/enum.rst:42 +#: ../Doc/howto/enum.rst:44 msgid "" "Depending on the nature of the enum a member's value may or may not be " "important, but either way that value can be used to get the corresponding " @@ -76,7 +79,7 @@ msgstr "" "o no ser importante, pero de cualquier manera ese valor puede usarse para " "obtener el miembro correspondiente:" -#: ../Doc/howto/enum.rst:49 +#: ../Doc/howto/enum.rst:51 msgid "" "As you can see, the ``repr()`` of a member shows the enum name, the member " "name, and the value. The ``str()`` of a member shows only the enum name and " @@ -86,23 +89,23 @@ msgstr "" "enumeración, el nombre del miembro y el valor. El ``str()`` de un miembro " "muestra solo el nombre de enumeración y el nombre del miembro:" -#: ../Doc/howto/enum.rst:56 +#: ../Doc/howto/enum.rst:58 msgid "The *type* of an enumeration member is the enum it belongs to::" msgstr "" "El *type* de un miembro de la enumeración es la enumeración a la que " "pertenece:" -#: ../Doc/howto/enum.rst:63 +#: ../Doc/howto/enum.rst:65 msgid "Enum members have an attribute that contains just their :attr:`name`::" msgstr "" "Los miembros de enumeración tienen un atributo que contiene solo su :attr:" "`name`::" -#: ../Doc/howto/enum.rst:68 +#: ../Doc/howto/enum.rst:70 msgid "Likewise, they have an attribute for their :attr:`value`::" msgstr "Asimismo, tienen un atributo para su :attr:`value`:" -#: ../Doc/howto/enum.rst:74 +#: ../Doc/howto/enum.rst:76 msgid "" "Unlike many languages that treat enumerations solely as name/value pairs, " "Python Enums can have behavior added. For example, :class:`datetime.date` " @@ -121,22 +124,22 @@ msgstr "" "la enumeración :class:`Weekday` para extraer el día de la instancia :class:" "`date` y retornar el miembro de enumeración coincidente:" -#: ../Doc/howto/enum.rst:86 +#: ../Doc/howto/enum.rst:88 msgid "The complete :class:`Weekday` enum now looks like this::" msgstr "La enumeración :class:`Weekday` completa ahora se ve así:" -#: ../Doc/howto/enum.rst:101 +#: ../Doc/howto/enum.rst:103 msgid "Now we can find out what today is! Observe::" msgstr "¡Ahora podemos averiguar qué día de la semana es hoy! Observe::" -#: ../Doc/howto/enum.rst:107 +#: ../Doc/howto/enum.rst:109 msgid "" "Of course, if you're reading this on some other day, you'll see that day " "instead." msgstr "" "Por supuesto, si estás leyendo esto en otro día, verás ese día en su lugar." -#: ../Doc/howto/enum.rst:109 +#: ../Doc/howto/enum.rst:111 msgid "" "This :class:`Weekday` enum is great if our variable only needs one day, but " "what if we need several? Maybe we're writing a function to plot chores " @@ -148,7 +151,7 @@ msgstr "" "una función para trazar tareas durante una semana y no queremos usar un :" "class:`list`; podríamos usar un tipo diferente de :class:`Enum`:" -#: ../Doc/howto/enum.rst:124 +#: ../Doc/howto/enum.rst:126 msgid "" "We've changed two things: we're inherited from :class:`Flag`, and the values " "are all powers of 2." @@ -156,7 +159,7 @@ msgstr "" "Hemos cambiado dos cosas: somos heredados de :class:`Flag` y los valores son " "todos potencia de 2." -#: ../Doc/howto/enum.rst:127 +#: ../Doc/howto/enum.rst:129 msgid "" "Just like the original :class:`Weekday` enum above, we can have a single " "selection::" @@ -164,7 +167,7 @@ msgstr "" "Al igual que la enumeración :class:`Weekday` original anterior, podemos " "tener una sola selección:" -#: ../Doc/howto/enum.rst:133 +#: ../Doc/howto/enum.rst:135 msgid "" "But :class:`Flag` also allows us to combine several members into a single " "variable::" @@ -172,19 +175,19 @@ msgstr "" "Pero :class:`Flag` también nos permite combinar varios miembros en una sola " "variable:" -#: ../Doc/howto/enum.rst:140 +#: ../Doc/howto/enum.rst:142 msgid "You can even iterate over a :class:`Flag` variable::" msgstr "Incluso puede iterar sobre una variable :class:`Flag`:" -#: ../Doc/howto/enum.rst:147 +#: ../Doc/howto/enum.rst:149 msgid "Okay, let's get some chores set up::" msgstr "Bien, preparemos algunas tareas::" -#: ../Doc/howto/enum.rst:155 +#: ../Doc/howto/enum.rst:157 msgid "And a function to display the chores for a given day::" msgstr "Y una función para mostrar las tareas de un día determinado:" -#: ../Doc/howto/enum.rst:164 +#: ../Doc/howto/enum.rst:167 msgid "" "In cases where the actual values of the members do not matter, you can save " "yourself some work and use :func:`auto()` for the values::" @@ -192,11 +195,11 @@ msgstr "" "En los casos en que los valores reales de los miembros no importen, puede " "ahorrarse algo de trabajo y usar :func:`auto()` para los valores:" -#: ../Doc/howto/enum.rst:182 +#: ../Doc/howto/enum.rst:186 msgid "Programmatic access to enumeration members and their attributes" msgstr "Acceso programático a los miembros de la enumeración y sus atributos" -#: ../Doc/howto/enum.rst:184 +#: ../Doc/howto/enum.rst:188 msgid "" "Sometimes it's useful to access members in enumerations programmatically (i." "e. situations where ``Color.RED`` won't do because the exact color is not " @@ -207,27 +210,27 @@ msgstr "" "funcionará porque no se conoce el color exacto en el momento de escribir el " "programa). ``Enum`` permite dicho acceso::" -#: ../Doc/howto/enum.rst:193 +#: ../Doc/howto/enum.rst:197 msgid "If you want to access enum members by *name*, use item access::" msgstr "" "Si desea acceder a los miembros de la enumeración por *name*, use el acceso " "a elementos::" -#: ../Doc/howto/enum.rst:200 +#: ../Doc/howto/enum.rst:204 msgid "If you have an enum member and need its :attr:`name` or :attr:`value`::" msgstr "" "Si tiene un miembro de enumeración y necesita su :attr:`name` o :attr:" "`value`:" -#: ../Doc/howto/enum.rst:210 +#: ../Doc/howto/enum.rst:214 msgid "Duplicating enum members and values" msgstr "Duplicar miembros y valores de enumeración" -#: ../Doc/howto/enum.rst:212 +#: ../Doc/howto/enum.rst:216 msgid "Having two enum members with the same name is invalid::" msgstr "Tener dos miembros de enumeración con el mismo nombre no es válido::" -#: ../Doc/howto/enum.rst:222 +#: ../Doc/howto/enum.rst:226 msgid "" "However, an enum member can have other names associated with it. Given two " "entries ``A`` and ``B`` with the same value (and ``A`` defined first), ``B`` " @@ -242,7 +245,7 @@ msgstr "" "retornará el miembro ``A``. La búsqueda por nombre de ``B`` también " "retornará el miembro ``A``::" -#: ../Doc/howto/enum.rst:243 +#: ../Doc/howto/enum.rst:247 msgid "" "Attempting to create a member with the same name as an already defined " "attribute (another member, a method, etc.) or attempting to create an " @@ -252,11 +255,11 @@ msgstr "" "atributo ya definido (otro miembro, un método, etc.) o intentar crear un " "atributo con el mismo nombre que un miembro." -#: ../Doc/howto/enum.rst:249 +#: ../Doc/howto/enum.rst:253 msgid "Ensuring unique enumeration values" msgstr "Garantizar valores de enumeración únicos" -#: ../Doc/howto/enum.rst:251 +#: ../Doc/howto/enum.rst:255 msgid "" "By default, enumerations allow multiple names as aliases for the same value. " "When this behavior isn't desired, you can use the :func:`unique` decorator::" @@ -265,15 +268,15 @@ msgstr "" "alias para el mismo valor. Cuando no se desea este comportamiento, puede " "usar el decorador :func:`unique`:" -#: ../Doc/howto/enum.rst:268 +#: ../Doc/howto/enum.rst:272 msgid "Using automatic values" msgstr "Uso de valores automáticos" -#: ../Doc/howto/enum.rst:270 +#: ../Doc/howto/enum.rst:274 msgid "If the exact value is unimportant you can use :class:`auto`::" msgstr "Si el valor exacto no es importante, puede usar :class:`auto`::" -#: ../Doc/howto/enum.rst:281 +#: ../Doc/howto/enum.rst:285 msgid "" "The values are chosen by :func:`_generate_next_value_`, which can be " "overridden::" @@ -281,22 +284,28 @@ msgstr "" "Los valores son elegidos por :func:`_generate_next_value_`, que se pueden " "anular:" -#: ../Doc/howto/enum.rst:299 +#: ../Doc/howto/enum.rst:304 msgid "" "The :meth:`_generate_next_value_` method must be defined before any members." msgstr "" "El método :meth:`_generate_next_value_` debe definirse antes que cualquier " "miembro." -#: ../Doc/howto/enum.rst:302 +#: ../Doc/howto/enum.rst:307 msgid "Iteration" msgstr "Iteración" -#: ../Doc/howto/enum.rst:304 +#: ../Doc/howto/enum.rst:309 msgid "Iterating over the members of an enum does not provide the aliases::" msgstr "Iterar sobre los miembros de una enumeración no proporciona los alias:" -#: ../Doc/howto/enum.rst:309 +#: ../Doc/howto/enum.rst:316 +msgid "" +"Note that the aliases ``Shape.ALIAS_FOR_SQUARE`` and ``Weekday.WEEKEND`` " +"aren't shown." +msgstr "" + +#: ../Doc/howto/enum.rst:318 msgid "" "The special attribute ``__members__`` is a read-only ordered mapping of " "names to members. It includes all names defined in the enumeration, " @@ -306,7 +315,7 @@ msgstr "" "lectura de nombres a miembros. Incluye todos los nombres definidos en la " "enumeración, incluidos los alias::" -#: ../Doc/howto/enum.rst:321 +#: ../Doc/howto/enum.rst:330 msgid "" "The ``__members__`` attribute can be used for detailed programmatic access " "to the enumeration members. For example, finding all the aliases::" @@ -315,15 +324,21 @@ msgstr "" "detallado a los miembros de la enumeración. Por ejemplo, encontrar todos los " "alias::" -#: ../Doc/howto/enum.rst:329 +#: ../Doc/howto/enum.rst:338 +msgid "" +"Aliases for flags include values with multiple flags set, such as ``3``, and " +"no flags set, i.e. ``0``." +msgstr "" + +#: ../Doc/howto/enum.rst:343 msgid "Comparisons" msgstr "comparaciones" -#: ../Doc/howto/enum.rst:331 +#: ../Doc/howto/enum.rst:345 msgid "Enumeration members are compared by identity::" msgstr "Los miembros de la enumeración se comparan por identidad::" -#: ../Doc/howto/enum.rst:340 +#: ../Doc/howto/enum.rst:354 msgid "" "Ordered comparisons between enumeration values are *not* supported. Enum " "members are not integers (but see `IntEnum`_ below)::" @@ -332,11 +347,11 @@ msgstr "" "*not*. Los miembros de la enumeración no son números enteros (pero consulte " "`IntEnum`_ a continuación):" -#: ../Doc/howto/enum.rst:348 +#: ../Doc/howto/enum.rst:362 msgid "Equality comparisons are defined though::" msgstr "Las comparaciones de igualdad se definen aunque:" -#: ../Doc/howto/enum.rst:357 +#: ../Doc/howto/enum.rst:371 msgid "" "Comparisons against non-enumeration values will always compare not equal " "(again, :class:`IntEnum` was explicitly designed to behave differently, see " @@ -346,11 +361,18 @@ msgstr "" "iguales (nuevamente, :class:`IntEnum` se diseñó explícitamente para " "comportarse de manera diferente, consulte a continuación):" -#: ../Doc/howto/enum.rst:366 +#: ../Doc/howto/enum.rst:380 +msgid "" +"It is possible to reload modules -- if a reloaded module contains enums, " +"they will be recreated, and the new members may not compare identical/equal " +"to the original members." +msgstr "" + +#: ../Doc/howto/enum.rst:385 msgid "Allowed members and attributes of enumerations" msgstr "Miembros permitidos y atributos de enumeraciones" -#: ../Doc/howto/enum.rst:368 +#: ../Doc/howto/enum.rst:387 msgid "" "Most of the examples above use integers for enumeration values. Using " "integers is short and handy (and provided by default by the `Functional " @@ -365,7 +387,7 @@ msgstr "" "cuál es el valor real de una enumeración. Pero si el valor *is* es " "importante, las enumeraciones pueden tener valores arbitrarios." -#: ../Doc/howto/enum.rst:374 +#: ../Doc/howto/enum.rst:393 msgid "" "Enumerations are Python classes, and can have methods and special methods as " "usual. If we have this enumeration::" @@ -373,11 +395,11 @@ msgstr "" "Las enumeraciones son clases de Python y pueden tener métodos y métodos " "especiales como de costumbre. Si tenemos esta enumeración:" -#: ../Doc/howto/enum.rst:394 +#: ../Doc/howto/enum.rst:413 msgid "Then::" msgstr "Después::" -#: ../Doc/howto/enum.rst:403 +#: ../Doc/howto/enum.rst:422 msgid "" "The rules for what is allowed are as follows: names that start and end with " "a single underscore are reserved by enum and cannot be used; all other " @@ -394,21 +416,34 @@ msgstr "" "(los métodos también son descriptores) y nombres de variables enumerados en :" "attr:`_ignore_`." -#: ../Doc/howto/enum.rst:410 +#: ../Doc/howto/enum.rst:429 +#, fuzzy msgid "" -"Note: if your enumeration defines :meth:`__new__` and/or :meth:`__init__` " -"then any value(s) given to the enum member will be passed into those " -"methods. See `Planet`_ for an example." +"Note: if your enumeration defines :meth:`__new__` and/or :meth:`__init__`, " +"any value(s) given to the enum member will be passed into those methods. See " +"`Planet`_ for an example." msgstr "" "Nota: si su enumeración define :meth:`__new__` y/o :meth:`__init__`, " "cualquier valor dado al miembro de la enumeración se pasará a esos métodos. " "Consulte `Planet`_ para ver un ejemplo." -#: ../Doc/howto/enum.rst:416 +#: ../Doc/howto/enum.rst:435 +#, fuzzy +msgid "" +"The :meth:`__new__` method, if defined, is used during creation of the Enum " +"members; it is then replaced by Enum's :meth:`__new__` which is used after " +"class creation for lookup of existing members. See :ref:`new-vs-init` for " +"more details." +msgstr "" +"El método :meth:`__new__`, si está definido, se usa durante la creación de " +"los miembros de Enum; luego se reemplaza por :meth:`__new__` de Enum, que se " +"usa después de la creación de clases para buscar miembros existentes." + +#: ../Doc/howto/enum.rst:442 msgid "Restricted Enum subclassing" msgstr "Subclases de Enum restringidas" -#: ../Doc/howto/enum.rst:418 +#: ../Doc/howto/enum.rst:444 msgid "" "A new :class:`Enum` class must have one base enum class, up to one concrete " "data type, and as many :class:`object`-based mixin classes as needed. The " @@ -418,7 +453,7 @@ msgstr "" "hasta un tipo de datos concreto y tantas clases mixtas basadas en :class:" "`object` como sea necesario. El orden de estas clases base es:" -#: ../Doc/howto/enum.rst:425 +#: ../Doc/howto/enum.rst:451 msgid "" "Also, subclassing an enumeration is allowed only if the enumeration does not " "define any members. So this is forbidden::" @@ -426,11 +461,11 @@ msgstr "" "Además, la subclasificación de una enumeración solo se permite si la " "enumeración no define ningún miembro. Así que esto está prohibido::" -#: ../Doc/howto/enum.rst:435 +#: ../Doc/howto/enum.rst:461 msgid "But this is allowed::" msgstr "Pero esto está permitido:" -#: ../Doc/howto/enum.rst:446 +#: ../Doc/howto/enum.rst:472 msgid "" "Allowing subclassing of enums that define members would lead to a violation " "of some important invariants of types and instances. On the other hand, it " @@ -443,15 +478,37 @@ msgstr "" "comportamiento común entre un grupo de enumeraciones. (Consulte " "`OrderedEnum`_ para ver un ejemplo)." -#: ../Doc/howto/enum.rst:453 +#: ../Doc/howto/enum.rst:481 +msgid "Dataclass support" +msgstr "" + +#: ../Doc/howto/enum.rst:483 +msgid "" +"When inheriting from a :class:`~dataclasses.dataclass`, the :meth:`~Enum." +"__repr__` omits the inherited class' name. For example::" +msgstr "" + +#: ../Doc/howto/enum.rst:499 +msgid "" +"Use the :func:`!dataclass` argument ``repr=False`` to use the standard :func:" +"`repr`." +msgstr "" + +#: ../Doc/howto/enum.rst:502 +msgid "" +"Only the dataclass fields are shown in the value area, not the dataclass' " +"name." +msgstr "" + +#: ../Doc/howto/enum.rst:508 msgid "Pickling" msgstr "Serialización (Pickling)" -#: ../Doc/howto/enum.rst:455 +#: ../Doc/howto/enum.rst:510 msgid "Enumerations can be pickled and unpickled::" msgstr "Las enumeraciones se pueden serializar y deserializar:" -#: ../Doc/howto/enum.rst:462 +#: ../Doc/howto/enum.rst:517 msgid "" "The usual restrictions for pickling apply: picklable enums must be defined " "in the top level of a module, since unpickling requires them to be " @@ -461,7 +518,7 @@ msgstr "" "enumeraciones serializables deben definirse en el nivel superior de un " "módulo, ya que el decapado requiere que se puedan importar desde ese módulo." -#: ../Doc/howto/enum.rst:468 +#: ../Doc/howto/enum.rst:523 msgid "" "With pickle protocol version 4 it is possible to easily pickle enums nested " "in other classes." @@ -469,27 +526,35 @@ msgstr "" "Con la versión 4 del protocolo pickle es posible deserializar fácilmente " "enumeraciones anidadas en otras clases." -#: ../Doc/howto/enum.rst:471 +#: ../Doc/howto/enum.rst:526 +#, fuzzy msgid "" "It is possible to modify how enum members are pickled/unpickled by defining :" -"meth:`__reduce_ex__` in the enumeration class." +"meth:`__reduce_ex__` in the enumeration class. The default method is by-" +"value, but enums with complicated values may want to use by-name::" msgstr "" "Es posible modificar la forma en que los miembros de la enumeración se " "serialicen / deserialicen definiendo :meth:`__reduce_ex__` en la clase de " "enumeración." -#: ../Doc/howto/enum.rst:476 +#: ../Doc/howto/enum.rst:535 +msgid "" +"Using by-name for flags is not recommended, as unnamed aliases will not " +"unpickle." +msgstr "" + +#: ../Doc/howto/enum.rst:540 msgid "Functional API" msgstr "API funcional" -#: ../Doc/howto/enum.rst:478 +#: ../Doc/howto/enum.rst:542 msgid "" "The :class:`Enum` class is callable, providing the following functional API::" msgstr "" "Se puede llamar a la clase :class:`Enum`, que proporciona la siguiente API " "funcional:" -#: ../Doc/howto/enum.rst:488 +#: ../Doc/howto/enum.rst:552 msgid "" "The semantics of this API resemble :class:`~collections.namedtuple`. The " "first argument of the call to :class:`Enum` is the name of the enumeration." @@ -498,7 +563,7 @@ msgstr "" "primer argumento de la llamada a :class:`Enum` es el nombre de la " "enumeración." -#: ../Doc/howto/enum.rst:491 +#: ../Doc/howto/enum.rst:555 msgid "" "The second argument is the *source* of enumeration member names. It can be " "a whitespace-separated string of names, a sequence of names, a sequence of 2-" @@ -519,7 +584,7 @@ msgstr "" "diferente). Se retorna una nueva clase derivada de :class:`Enum`. En otras " "palabras, la asignación anterior a :class:`Animal` es equivalente a:" -#: ../Doc/howto/enum.rst:507 +#: ../Doc/howto/enum.rst:571 msgid "" "The reason for defaulting to ``1`` as the starting number and not ``0`` is " "that ``0`` is ``False`` in a boolean sense, but by default enum members all " @@ -529,7 +594,7 @@ msgstr "" "``0`` es que ``0`` es ``False`` en un sentido booleano, pero por defecto " "todos los miembros de la enumeración se evalúan como ``True``." -#: ../Doc/howto/enum.rst:511 +#: ../Doc/howto/enum.rst:575 msgid "" "Pickling enums created with the functional API can be tricky as frame stack " "implementation details are used to try and figure out which module the " @@ -544,7 +609,7 @@ msgstr "" "y también puede no trabajar en IronPython o Jython). La solución es " "especificar el nombre del módulo explícitamente de la siguiente manera:" -#: ../Doc/howto/enum.rst:521 +#: ../Doc/howto/enum.rst:585 msgid "" "If ``module`` is not supplied, and Enum cannot determine what it is, the new " "Enum members will not be unpicklable; to keep errors closer to the source, " @@ -554,7 +619,7 @@ msgstr "" "los nuevos miembros de Enum no serán seleccionables; para mantener los " "errores más cerca de la fuente, se desactivará el decapado." -#: ../Doc/howto/enum.rst:525 +#: ../Doc/howto/enum.rst:589 msgid "" "The new pickle protocol 4 also, in some circumstances, relies on :attr:" "`~definition.__qualname__` being set to the location where pickle will be " @@ -566,7 +631,7 @@ msgstr "" "pickle podrá encontrar la clase. Por ejemplo, si la clase estuvo disponible " "en la clase SomeData en el ámbito global:" -#: ../Doc/howto/enum.rst:532 +#: ../Doc/howto/enum.rst:596 msgid "The complete signature is::" msgstr "La firma completa es::" @@ -574,7 +639,7 @@ msgstr "La firma completa es::" msgid "value" msgstr "value" -#: ../Doc/howto/enum.rst:544 +#: ../Doc/howto/enum.rst:608 msgid "What the new enum class will record as its name." msgstr "Lo que la nueva clase de enumeración registrará como su nombre." @@ -582,7 +647,7 @@ msgstr "Lo que la nueva clase de enumeración registrará como su nombre." msgid "names" msgstr "names" -#: ../Doc/howto/enum.rst:546 +#: ../Doc/howto/enum.rst:610 msgid "" "The enum members. This can be a whitespace- or comma-separated string " "(values will start at 1 unless otherwise specified)::" @@ -591,15 +656,15 @@ msgstr "" "espacios en blanco (los valores comenzarán en 1 a menos que se especifique " "lo contrario):" -#: ../Doc/howto/enum.rst:551 +#: ../Doc/howto/enum.rst:615 msgid "or an iterator of names::" msgstr "o un iterador de nombres::" -#: ../Doc/howto/enum.rst:555 +#: ../Doc/howto/enum.rst:619 msgid "or an iterator of (name, value) pairs::" msgstr "o un iterador de (nombre, valor) pares::" -#: ../Doc/howto/enum.rst:559 +#: ../Doc/howto/enum.rst:623 msgid "or a mapping::" msgstr "o un mapeo::" @@ -607,7 +672,7 @@ msgstr "o un mapeo::" msgid "module" msgstr "module" -#: ../Doc/howto/enum.rst:563 +#: ../Doc/howto/enum.rst:627 msgid "name of module where new enum class can be found." msgstr "" "nombre del módulo donde se puede encontrar la nueva clase de enumeración." @@ -616,7 +681,7 @@ msgstr "" msgid "qualname" msgstr "qualname" -#: ../Doc/howto/enum.rst:565 +#: ../Doc/howto/enum.rst:629 msgid "where in module new enum class can be found." msgstr "donde en el módulo se puede encontrar la nueva clase de enumeración." @@ -624,7 +689,7 @@ msgstr "donde en el módulo se puede encontrar la nueva clase de enumeración." msgid "type" msgstr "type" -#: ../Doc/howto/enum.rst:567 +#: ../Doc/howto/enum.rst:631 msgid "type to mix in to new enum class." msgstr "tipo para mezclar en la nueva clase de enumeración." @@ -632,23 +697,23 @@ msgstr "tipo para mezclar en la nueva clase de enumeración." msgid "start" msgstr "start" -#: ../Doc/howto/enum.rst:569 +#: ../Doc/howto/enum.rst:633 msgid "number to start counting at if only names are passed in." msgstr "número para comenzar a contar si solo se pasan nombres." -#: ../Doc/howto/enum.rst:571 +#: ../Doc/howto/enum.rst:635 msgid "The *start* parameter was added." msgstr "Se agregó el parámetro *start*." -#: ../Doc/howto/enum.rst:576 +#: ../Doc/howto/enum.rst:640 msgid "Derived Enumerations" msgstr "Enumeraciones derivadas" -#: ../Doc/howto/enum.rst:579 +#: ../Doc/howto/enum.rst:643 msgid "IntEnum" msgstr "IntEnum" -#: ../Doc/howto/enum.rst:581 +#: ../Doc/howto/enum.rst:645 msgid "" "The first variation of :class:`Enum` that is provided is also a subclass of :" "class:`int`. Members of an :class:`IntEnum` can be compared to integers; by " @@ -660,7 +725,7 @@ msgstr "" "comparar con números enteros; por extensión, las enumeraciones enteras de " "diferentes tipos también se pueden comparar entre sí:" -#: ../Doc/howto/enum.rst:602 +#: ../Doc/howto/enum.rst:666 msgid "" "However, they still can't be compared to standard :class:`Enum` " "enumerations::" @@ -668,18 +733,18 @@ msgstr "" "Sin embargo, aún no se pueden comparar con las enumeraciones :class:`Enum` " "estándar:" -#: ../Doc/howto/enum.rst:615 +#: ../Doc/howto/enum.rst:679 msgid "" ":class:`IntEnum` values behave like integers in other ways you'd expect::" msgstr "" "Los valores :class:`IntEnum` se comportan como números enteros en otras " "formas que esperaría:" -#: ../Doc/howto/enum.rst:626 +#: ../Doc/howto/enum.rst:690 msgid "StrEnum" msgstr "StrEnum" -#: ../Doc/howto/enum.rst:628 +#: ../Doc/howto/enum.rst:692 msgid "" "The second variation of :class:`Enum` that is provided is also a subclass " "of :class:`str`. Members of a :class:`StrEnum` can be compared to strings; " @@ -691,11 +756,11 @@ msgstr "" "comparar con cadenas; por extensión, las enumeraciones de cadenas de " "diferentes tipos también se pueden comparar entre sí." -#: ../Doc/howto/enum.rst:637 +#: ../Doc/howto/enum.rst:701 msgid "IntFlag" msgstr "IntFlag" -#: ../Doc/howto/enum.rst:639 +#: ../Doc/howto/enum.rst:703 msgid "" "The next variation of :class:`Enum` provided, :class:`IntFlag`, is also " "based on :class:`int`. The difference being :class:`IntFlag` members can be " @@ -711,7 +776,7 @@ msgstr "" "igual que :class:`IntEnum`, los miembros :class:`IntFlag` también son " "números enteros y se pueden utilizar siempre que se utilice un :class:`int`." -#: ../Doc/howto/enum.rst:647 +#: ../Doc/howto/enum.rst:711 msgid "" "Any operation on an :class:`IntFlag` member besides the bit-wise operations " "will lose the :class:`IntFlag` membership." @@ -719,7 +784,7 @@ msgstr "" "Cualquier operación en un miembro :class:`IntFlag` además de las operaciones " "bit a bit perderá la pertenencia a :class:`IntFlag`." -#: ../Doc/howto/enum.rst:650 +#: ../Doc/howto/enum.rst:714 msgid "" "Bit-wise operations that result in invalid :class:`IntFlag` values will lose " "the :class:`IntFlag` membership. See :class:`FlagBoundary` for details." @@ -728,15 +793,15 @@ msgstr "" "válidos perderán la pertenencia a :class:`IntFlag`. Ver :class:" "`FlagBoundary` para más detalles." -#: ../Doc/howto/enum.rst:657 +#: ../Doc/howto/enum.rst:721 msgid "Sample :class:`IntFlag` class::" msgstr "Ejemplo de clase :class:`IntFlag`::" -#: ../Doc/howto/enum.rst:673 +#: ../Doc/howto/enum.rst:737 msgid "It is also possible to name the combinations::" msgstr "También es posible nombrar las combinaciones:" -#: ../Doc/howto/enum.rst:689 +#: ../Doc/howto/enum.rst:754 msgid "" "Named combinations are considered aliases. Aliases do not show up during " "iteration, but can be returned from by-value lookups." @@ -745,7 +810,7 @@ msgstr "" "durante la iteración, pero se pueden devolver a partir de búsquedas por " "valor." -#: ../Doc/howto/enum.rst:694 +#: ../Doc/howto/enum.rst:759 msgid "" "Another important difference between :class:`IntFlag` and :class:`Enum` is " "that if no flags are set (the value is 0), its boolean evaluation is :data:" @@ -755,7 +820,7 @@ msgstr "" "no se establecen banderas (el valor es 0), su evaluación booleana es :data:" "`False`::" -#: ../Doc/howto/enum.rst:702 +#: ../Doc/howto/enum.rst:767 msgid "" "Because :class:`IntFlag` members are also subclasses of :class:`int` they " "can be combined with them (but may lose :class:`IntFlag` membership::" @@ -764,7 +829,7 @@ msgstr "" "`int`, se pueden combinar con ellos (pero pueden perder la membresía :class:" "`IntFlag`::" -#: ../Doc/howto/enum.rst:713 +#: ../Doc/howto/enum.rst:778 msgid "" "The negation operator, ``~``, always returns an :class:`IntFlag` member with " "a positive value::" @@ -772,15 +837,15 @@ msgstr "" "El operador de negación, ``~``, siempre retorna un miembro :class:`IntFlag` " "con un valor positivo:" -#: ../Doc/howto/enum.rst:719 +#: ../Doc/howto/enum.rst:784 msgid ":class:`IntFlag` members can also be iterated over::" msgstr "Los miembros :class:`IntFlag` también se pueden iterar sobre:" -#: ../Doc/howto/enum.rst:728 +#: ../Doc/howto/enum.rst:793 msgid "Flag" msgstr "Bandera" -#: ../Doc/howto/enum.rst:730 +#: ../Doc/howto/enum.rst:795 msgid "" "The last variation is :class:`Flag`. Like :class:`IntFlag`, :class:`Flag` " "members can be combined using the bitwise operators (&, \\|, ^, ~). Unlike :" @@ -797,7 +862,7 @@ msgstr "" "class:`auto` como valor y dejar que :class:`Flag` seleccione un valor " "apropiado." -#: ../Doc/howto/enum.rst:739 +#: ../Doc/howto/enum.rst:804 msgid "" "Like :class:`IntFlag`, if a combination of :class:`Flag` members results in " "no flags being set, the boolean evaluation is :data:`False`::" @@ -806,15 +871,16 @@ msgstr "" "da como resultado que no se establezcan indicadores, la evaluación booleana " "es :data:`False`::" -#: ../Doc/howto/enum.rst:753 +#: ../Doc/howto/enum.rst:818 +#, fuzzy msgid "" "Individual flags should have values that are powers of two (1, 2, 4, " -"8, ...), while combinations of flags won't::" +"8, ...), while combinations of flags will not::" msgstr "" "Las banderas individuales deben tener valores que sean potencias de dos (1, " "2, 4, 8, ...), mientras que las combinaciones de banderas no:" -#: ../Doc/howto/enum.rst:765 +#: ../Doc/howto/enum.rst:830 msgid "" "Giving a name to the \"no flags set\" condition does not change its boolean " "value::" @@ -822,11 +888,11 @@ msgstr "" "Dar un nombre a la condición \"sin banderas establecidas\" no cambia su " "valor booleano:" -#: ../Doc/howto/enum.rst:779 +#: ../Doc/howto/enum.rst:844 msgid ":class:`Flag` members can also be iterated over::" msgstr "Los miembros :class:`Flag` también se pueden iterar sobre:" -#: ../Doc/howto/enum.rst:789 +#: ../Doc/howto/enum.rst:854 msgid "" "For the majority of new code, :class:`Enum` and :class:`Flag` are strongly " "recommended, since :class:`IntEnum` and :class:`IntFlag` break some semantic " @@ -845,11 +911,11 @@ msgstr "" "cuando las constantes enteras se reemplazan con enumeraciones, o para la " "interoperabilidad con otros sistemas." -#: ../Doc/howto/enum.rst:799 +#: ../Doc/howto/enum.rst:864 msgid "Others" msgstr "Otros" -#: ../Doc/howto/enum.rst:801 +#: ../Doc/howto/enum.rst:866 msgid "" "While :class:`IntEnum` is part of the :mod:`enum` module, it would be very " "simple to implement independently::" @@ -857,7 +923,7 @@ msgstr "" "Si bien :class:`IntEnum` es parte del módulo :mod:`enum`, sería muy simple " "de implementar de forma independiente:" -#: ../Doc/howto/enum.rst:807 +#: ../Doc/howto/enum.rst:872 msgid "" "This demonstrates how similar derived enumerations can be defined; for " "example a :class:`FloatEnum` that mixes in :class:`float` instead of :class:" @@ -867,11 +933,11 @@ msgstr "" "ejemplo, un :class:`FloatEnum` que se mezcla en :class:`float` en lugar de :" "class:`int`." -#: ../Doc/howto/enum.rst:810 +#: ../Doc/howto/enum.rst:875 msgid "Some rules:" msgstr "Algunas reglas:" -#: ../Doc/howto/enum.rst:812 +#: ../Doc/howto/enum.rst:877 msgid "" "When subclassing :class:`Enum`, mix-in types must appear before :class:" "`Enum` itself in the sequence of bases, as in the :class:`IntEnum` example " @@ -881,7 +947,7 @@ msgstr "" "antes que :class:`Enum` en la secuencia de bases, como en el ejemplo " "anterior de :class:`IntEnum`." -#: ../Doc/howto/enum.rst:815 +#: ../Doc/howto/enum.rst:880 msgid "" "Mix-in types must be subclassable. For example, :class:`bool` and :class:" "`range` are not subclassable and will throw an error during Enum creation if " @@ -891,7 +957,7 @@ msgstr "" "class:`range` no son subclasificables y generarán un error durante la " "creación de Enum si se usan como tipo de combinación." -#: ../Doc/howto/enum.rst:818 +#: ../Doc/howto/enum.rst:883 msgid "" "While :class:`Enum` can have members of any type, once you mix in an " "additional type, all the members must have values of that type, e.g. :class:" @@ -903,7 +969,7 @@ msgstr "" "tipo, p. :class:`int` anterior. Esta restricción no se aplica a los " "complementos que solo agregan métodos y no especifican otro tipo." -#: ../Doc/howto/enum.rst:822 +#: ../Doc/howto/enum.rst:887 msgid "" "When another data type is mixed in, the :attr:`value` attribute is *not the " "same* as the enum member itself, although it is equivalent and will compare " @@ -913,7 +979,13 @@ msgstr "" "same* como el propio miembro de la enumeración, aunque es equivalente y se " "comparará igual." -#: ../Doc/howto/enum.rst:825 +#: ../Doc/howto/enum.rst:890 +msgid "" +"A ``data type`` is a mixin that defines :meth:`__new__`, or a :class:" +"`~dataclasses.dataclass`" +msgstr "" + +#: ../Doc/howto/enum.rst:892 #, python-format msgid "" "%-style formatting: ``%s`` and ``%r`` call the :class:`Enum` class's :meth:" @@ -925,7 +997,7 @@ msgstr "" "``%i`` o ``%h`` para IntEnum) tratan el miembro de enumeración como su tipo " "mixto." -#: ../Doc/howto/enum.rst:828 +#: ../Doc/howto/enum.rst:895 msgid "" ":ref:`Formatted string literals `, :meth:`str.format`, and :func:" "`format` will use the enum's :meth:`__str__` method." @@ -933,22 +1005,23 @@ msgstr "" ":ref:`Formatted string literals `, :meth:`str.format` y :func:" "`format` usarán el método :meth:`__str__` de la enumeración." -#: ../Doc/howto/enum.rst:833 +#: ../Doc/howto/enum.rst:900 +#, fuzzy msgid "" "Because :class:`IntEnum`, :class:`IntFlag`, and :class:`StrEnum` are " "designed to be drop-in replacements for existing constants, their :meth:" -"`__str__` method has been reset to their data types :meth:`__str__` method." +"`__str__` method has been reset to their data types' :meth:`__str__` method." msgstr "" "Debido a que :class:`IntEnum`, :class:`IntFlag` y :class:`StrEnum` están " "diseñados para ser reemplazos directos de constantes existentes, su método :" "meth:`__str__` se ha restablecido a su método de tipos de datos :meth:" "`__str__`." -#: ../Doc/howto/enum.rst:839 +#: ../Doc/howto/enum.rst:908 msgid "When to use :meth:`__new__` vs. :meth:`__init__`" msgstr "Cuándo usar :meth:`__new__` frente a :meth:`__init__`" -#: ../Doc/howto/enum.rst:841 +#: ../Doc/howto/enum.rst:910 msgid "" ":meth:`__new__` must be used whenever you want to customize the actual value " "of the :class:`Enum` member. Any other modifications may go in either :meth:" @@ -958,7 +1031,7 @@ msgstr "" "miembro :class:`Enum`. Cualquier otra modificación puede ir en :meth:" "`__new__` o :meth:`__init__`, siendo preferible :meth:`__init__`." -#: ../Doc/howto/enum.rst:845 +#: ../Doc/howto/enum.rst:914 msgid "" "For example, if you want to pass several items to the constructor, but only " "want one of them to be the value::" @@ -966,15 +1039,21 @@ msgstr "" "Por ejemplo, si desea pasar varios elementos al constructor, pero solo desea " "que uno de ellos sea el valor:" -#: ../Doc/howto/enum.rst:872 +#: ../Doc/howto/enum.rst:941 +msgid "" +"*Do not* call ``super().__new__()``, as the lookup-only ``__new__`` is the " +"one that is found; instead, use the data type directly." +msgstr "" + +#: ../Doc/howto/enum.rst:946 msgid "Finer Points" msgstr "Puntos más finos" -#: ../Doc/howto/enum.rst:875 +#: ../Doc/howto/enum.rst:949 msgid "Supported ``__dunder__`` names" msgstr "Nombres ``__dunder__`` admitidos" -#: ../Doc/howto/enum.rst:877 +#: ../Doc/howto/enum.rst:951 msgid "" ":attr:`__members__` is a read-only ordered mapping of ``member_name``:" "``member`` items. It is only available on the class." @@ -982,7 +1061,7 @@ msgstr "" ":attr:`__members__` es una asignación ordenada de solo lectura de elementos " "``member_name``:``member``. Solo está disponible en la clase." -#: ../Doc/howto/enum.rst:880 +#: ../Doc/howto/enum.rst:954 msgid "" ":meth:`__new__`, if specified, must create and return the enum members; it " "is also a very good idea to set the member's :attr:`_value_` appropriately. " @@ -993,22 +1072,22 @@ msgstr "" "`_value_` del miembro. Una vez que se crean todos los miembros, ya no se " "utiliza." -#: ../Doc/howto/enum.rst:886 +#: ../Doc/howto/enum.rst:960 msgid "Supported ``_sunder_`` names" msgstr "Nombres ``_sunder_`` admitidos" -#: ../Doc/howto/enum.rst:888 +#: ../Doc/howto/enum.rst:962 msgid "``_name_`` -- name of the member" msgstr "``_name_`` -- nombre del miembro" -#: ../Doc/howto/enum.rst:889 +#: ../Doc/howto/enum.rst:963 msgid "" "``_value_`` -- value of the member; can be set / modified in ``__new__``" msgstr "" "``_value_`` -- valor del miembro; se puede configurar/modificar en " "``__new__``" -#: ../Doc/howto/enum.rst:891 +#: ../Doc/howto/enum.rst:965 msgid "" "``_missing_`` -- a lookup function used when a value is not found; may be " "overridden" @@ -1016,7 +1095,7 @@ msgstr "" "``_missing_``: una función de búsqueda utilizada cuando no se encuentra un " "valor; puede ser anulado" -#: ../Doc/howto/enum.rst:893 +#: ../Doc/howto/enum.rst:967 msgid "" "``_ignore_`` -- a list of names, either as a :class:`list` or a :class:" "`str`, that will not be transformed into members, and will be removed from " @@ -1025,7 +1104,7 @@ msgstr "" "``_ignore_``: una lista de nombres, ya sea como :class:`list` o :class:" "`str`, que no se transformarán en miembros y se eliminarán de la clase final." -#: ../Doc/howto/enum.rst:896 +#: ../Doc/howto/enum.rst:970 msgid "" "``_order_`` -- used in Python 2/3 code to ensure member order is consistent " "(class attribute, removed during class creation)" @@ -1034,7 +1113,7 @@ msgstr "" "los miembros sea coherente (atributo de clase, eliminado durante la creación " "de la clase)" -#: ../Doc/howto/enum.rst:898 +#: ../Doc/howto/enum.rst:972 msgid "" "``_generate_next_value_`` -- used by the `Functional API`_ and by :class:" "`auto` to get an appropriate value for an enum member; may be overridden" @@ -1043,7 +1122,7 @@ msgstr "" "`auto` para obtener un valor apropiado para un miembro de enumeración; puede " "ser anulado" -#: ../Doc/howto/enum.rst:904 +#: ../Doc/howto/enum.rst:978 msgid "" "For standard :class:`Enum` classes the next value chosen is the last value " "seen incremented by one." @@ -1051,7 +1130,7 @@ msgstr "" "Para las clases :class:`Enum` estándar, el siguiente valor elegido es el " "último valor visto incrementado en uno." -#: ../Doc/howto/enum.rst:907 +#: ../Doc/howto/enum.rst:981 msgid "" "For :class:`Flag` classes the next value chosen will be the next highest " "power-of-two, regardless of the last value seen." @@ -1059,15 +1138,15 @@ msgstr "" "Para las clases :class:`Flag`, el siguiente valor elegido será la siguiente " "potencia de dos más alta, independientemente del último valor visto." -#: ../Doc/howto/enum.rst:910 +#: ../Doc/howto/enum.rst:984 msgid "``_missing_``, ``_order_``, ``_generate_next_value_``" msgstr "``_missing_``, ``_order_``, ``_generate_next_value_``" -#: ../Doc/howto/enum.rst:911 +#: ../Doc/howto/enum.rst:985 msgid "``_ignore_``" msgstr "``_ignore_``" -#: ../Doc/howto/enum.rst:913 +#: ../Doc/howto/enum.rst:987 msgid "" "To help keep Python 2 / Python 3 code in sync an :attr:`_order_` attribute " "can be provided. It will be checked against the actual order of the " @@ -1077,7 +1156,7 @@ msgstr "" "proporcionar un atributo :attr:`_order_`. Se comparará con el orden real de " "la enumeración y generará un error si los dos no coinciden:" -#: ../Doc/howto/enum.rst:931 +#: ../Doc/howto/enum.rst:1005 msgid "" "In Python 2 code the :attr:`_order_` attribute is necessary as definition " "order is lost before it can be recorded." @@ -1085,11 +1164,11 @@ msgstr "" "En el código de Python 2, el atributo :attr:`_order_` es necesario ya que el " "orden de definición se pierde antes de que se pueda registrar." -#: ../Doc/howto/enum.rst:936 +#: ../Doc/howto/enum.rst:1010 msgid "_Private__names" msgstr "_Private__names" -#: ../Doc/howto/enum.rst:938 +#: ../Doc/howto/enum.rst:1012 msgid "" ":ref:`Private names ` are not converted to enum " "members, but remain normal attributes." @@ -1097,27 +1176,25 @@ msgstr "" ":ref:`Private names ` no se convierten en miembros de " "enumeración, sino que siguen siendo atributos normales." -#: ../Doc/howto/enum.rst:945 +#: ../Doc/howto/enum.rst:1019 msgid "``Enum`` member type" msgstr "Tipo de miembro ``Enum``" -#: ../Doc/howto/enum.rst:947 +#: ../Doc/howto/enum.rst:1021 msgid "" "Enum members are instances of their enum class, and are normally accessed as " -"``EnumClass.member``. In Python versions ``3.5`` to ``3.10`` you could " -"access members from other members -- this practice was discouraged, and in " -"``3.11`` :class:`Enum` returns to not allowing it::" +"``EnumClass.member``. In certain situations, such as writing custom enum " +"behavior, being able to access one member directly from another is useful, " +"and is supported; however, in order to avoid name clashes between member " +"names and attributes/methods from mixed-in classes, upper-case names are " +"strongly recommended." msgstr "" -"Los miembros de enumeración son instancias de su clase de enumeración y " -"normalmente se accede a ellos como ``EnumClass.member``. En las versiones de " -"Python ``3.5`` a ``3.10``, podía acceder a miembros de otros miembros; esta " -"práctica se desaconsejó, y en ``3.11``, :class:`Enum` vuelve a no permitirlo:" -#: ../Doc/howto/enum.rst:968 +#: ../Doc/howto/enum.rst:1032 msgid "Creating members that are mixed with other data types" msgstr "Creación de miembros que se mezclan con otros tipos de datos" -#: ../Doc/howto/enum.rst:970 +#: ../Doc/howto/enum.rst:1034 msgid "" "When subclassing other data types, such as :class:`int` or :class:`str`, " "with an :class:`Enum`, all values after the ``=`` are passed to that data " @@ -1127,11 +1204,11 @@ msgstr "" "`str`, con un :class:`Enum`, todos los valores después de ``=`` se pasan al " "constructor de ese tipo de datos. Por ejemplo::" -#: ../Doc/howto/enum.rst:982 +#: ../Doc/howto/enum.rst:1046 msgid "Boolean value of ``Enum`` classes and members" msgstr "Valor booleano de clases y miembros ``Enum``" -#: ../Doc/howto/enum.rst:984 +#: ../Doc/howto/enum.rst:1048 msgid "" "Enum classes that are mixed with non-:class:`Enum` types (such as :class:" "`int`, :class:`str`, etc.) are evaluated according to the mixed-in type's " @@ -1145,15 +1222,15 @@ msgstr "" "data:`True`. Para hacer que la evaluación booleana de su propia enumeración " "dependa del valor del miembro, agregue lo siguiente a su clase:" -#: ../Doc/howto/enum.rst:993 +#: ../Doc/howto/enum.rst:1057 msgid "Plain :class:`Enum` classes always evaluate as :data:`True`." msgstr "Las clases simples :class:`Enum` siempre se evalúan como :data:`True`." -#: ../Doc/howto/enum.rst:997 +#: ../Doc/howto/enum.rst:1061 msgid "``Enum`` classes with methods" msgstr "Clases ``Enum`` con métodos" -#: ../Doc/howto/enum.rst:999 +#: ../Doc/howto/enum.rst:1063 msgid "" "If you give your enum subclass extra methods, like the `Planet`_ class " "below, those methods will show up in a :func:`dir` of the member, but not of " @@ -1163,11 +1240,11 @@ msgstr "" "`Planet`_ a continuación, esos métodos aparecerán en un :func:`dir` del " "miembro, pero no de la clase:" -#: ../Doc/howto/enum.rst:1010 +#: ../Doc/howto/enum.rst:1074 msgid "Combining members of ``Flag``" msgstr "Combinación de miembros de ``Flag``" -#: ../Doc/howto/enum.rst:1012 +#: ../Doc/howto/enum.rst:1076 msgid "" "Iterating over a combination of :class:`Flag` members will only return the " "members that are comprised of a single bit::" @@ -1175,31 +1252,31 @@ msgstr "" "La iteración sobre una combinación de miembros :class:`Flag` solo devolverá " "los miembros que se componen de un solo bit:" -#: ../Doc/howto/enum.rst:1030 +#: ../Doc/howto/enum.rst:1094 msgid "``Flag`` and ``IntFlag`` minutia" msgstr "Minuciosidades ``Flag`` y ``IntFlag``" -#: ../Doc/howto/enum.rst:1032 +#: ../Doc/howto/enum.rst:1096 msgid "Using the following snippet for our examples::" msgstr "Usando el siguiente fragmento para nuestros ejemplos:" -#: ../Doc/howto/enum.rst:1043 +#: ../Doc/howto/enum.rst:1107 msgid "the following are true:" msgstr "lo siguiente es cierto:" -#: ../Doc/howto/enum.rst:1045 +#: ../Doc/howto/enum.rst:1109 msgid "single-bit flags are canonical" msgstr "las banderas de un solo bit son canónicas" -#: ../Doc/howto/enum.rst:1046 +#: ../Doc/howto/enum.rst:1110 msgid "multi-bit and zero-bit flags are aliases" msgstr "las banderas multibit y zero-bit son alias" -#: ../Doc/howto/enum.rst:1047 +#: ../Doc/howto/enum.rst:1111 msgid "only canonical flags are returned during iteration::" msgstr "solo se retornan banderas canónicas durante la iteración:" -#: ../Doc/howto/enum.rst:1052 +#: ../Doc/howto/enum.rst:1116 msgid "" "negating a flag or flag set returns a new flag/flag set with the " "corresponding positive integer value::" @@ -1207,19 +1284,19 @@ msgstr "" "negar una bandera o un conjunto de banderas retorna una nueva bandera/" "conjunto de banderas con el valor entero positivo correspondiente:" -#: ../Doc/howto/enum.rst:1061 +#: ../Doc/howto/enum.rst:1125 msgid "names of pseudo-flags are constructed from their members' names::" msgstr "" "los nombres de las pseudo-banderas se construyen a partir de los nombres de " "sus miembros:" -#: ../Doc/howto/enum.rst:1066 +#: ../Doc/howto/enum.rst:1130 msgid "multi-bit flags, aka aliases, can be returned from operations::" msgstr "" "Las banderas de varios bits, también conocidas como alias, se pueden " "devolver desde las operaciones:" -#: ../Doc/howto/enum.rst:1077 +#: ../Doc/howto/enum.rst:1141 msgid "" "membership / containment checking: zero-valued flags are always considered " "to be contained::" @@ -1227,7 +1304,7 @@ msgstr "" "Comprobación de pertenencia / contención: las banderas de valor cero siempre " "se consideran contenidas:" -#: ../Doc/howto/enum.rst:1083 +#: ../Doc/howto/enum.rst:1147 msgid "" "otherwise, only if all bits of one flag are in the other flag will True be " "returned::" @@ -1235,7 +1312,7 @@ msgstr "" "de lo contrario, solo si todos los bits de una bandera están en la otra " "bandera, se devolverá True:" -#: ../Doc/howto/enum.rst:1092 +#: ../Doc/howto/enum.rst:1156 msgid "" "There is a new boundary mechanism that controls how out-of-range / invalid " "bits are handled: ``STRICT``, ``CONFORM``, ``EJECT``, and ``KEEP``:" @@ -1243,37 +1320,37 @@ msgstr "" "Hay un nuevo mecanismo de límite que controla cómo se manejan los bits no " "válidos/fuera de rango: ``STRICT``, ``CONFORM``, ``EJECT`` y ``KEEP``:" -#: ../Doc/howto/enum.rst:1095 +#: ../Doc/howto/enum.rst:1159 msgid "STRICT --> raises an exception when presented with invalid values" msgstr "STRICT --> genera una excepción cuando se presentan valores no válidos" -#: ../Doc/howto/enum.rst:1096 +#: ../Doc/howto/enum.rst:1160 msgid "CONFORM --> discards any invalid bits" msgstr "CONFORM --> descarta cualquier bit inválido" -#: ../Doc/howto/enum.rst:1097 +#: ../Doc/howto/enum.rst:1161 msgid "EJECT --> lose Flag status and become a normal int with the given value" msgstr "" "EJECT -> pierde el estado de la bandera y se convierte en un int normal con " "el valor dado" -#: ../Doc/howto/enum.rst:1101 +#: ../Doc/howto/enum.rst:1165 msgid "KEEP --> keep the extra bits" msgstr "KEEP --> mantener los bits adicionales" -#: ../Doc/howto/enum.rst:1099 +#: ../Doc/howto/enum.rst:1163 msgid "keeps Flag status and extra bits" msgstr "mantiene el estado de la bandera y bits adicionales" -#: ../Doc/howto/enum.rst:1100 +#: ../Doc/howto/enum.rst:1164 msgid "extra bits do not show up in iteration" msgstr "los bits adicionales no aparecen en la iteración" -#: ../Doc/howto/enum.rst:1101 +#: ../Doc/howto/enum.rst:1165 msgid "extra bits do show up in repr() and str()" msgstr "bits adicionales aparecen en repr() y str()" -#: ../Doc/howto/enum.rst:1103 +#: ../Doc/howto/enum.rst:1167 msgid "" "The default for Flag is ``STRICT``, the default for ``IntFlag`` is " "``EJECT``, and the default for ``_convert_`` is ``KEEP`` (see ``ssl." @@ -1284,11 +1361,12 @@ msgstr "" "es ``KEEP`` (consulte ``ssl.Options`` para ver un ejemplo de cuándo se " "necesita ``KEEP``)." -#: ../Doc/howto/enum.rst:1111 -msgid "How are Enums different?" +#: ../Doc/howto/enum.rst:1175 +#, fuzzy +msgid "How are Enums and Flags different?" msgstr "¿En qué se diferencian las enumeraciones?" -#: ../Doc/howto/enum.rst:1113 +#: ../Doc/howto/enum.rst:1177 msgid "" "Enums have a custom metaclass that affects many aspects of both derived :" "class:`Enum` classes and their instances (members)." @@ -1296,11 +1374,11 @@ msgstr "" "Las enumeraciones tienen una metaclase personalizada que afecta a muchos " "aspectos de las clases :class:`Enum` derivadas y sus instancias (miembros)." -#: ../Doc/howto/enum.rst:1118 +#: ../Doc/howto/enum.rst:1182 msgid "Enum Classes" msgstr "Clases de enumeración" -#: ../Doc/howto/enum.rst:1120 +#: ../Doc/howto/enum.rst:1184 msgid "" "The :class:`EnumType` metaclass is responsible for providing the :meth:" "`__contains__`, :meth:`__dir__`, :meth:`__iter__` and other methods that " @@ -1318,11 +1396,25 @@ msgstr "" "`Enum` final sean correctos (como :meth:`__new__`, :meth:`__getnewargs__`, :" "meth:`__str__` y :meth:`__repr__`)." -#: ../Doc/howto/enum.rst:1130 +#: ../Doc/howto/enum.rst:1193 +#, fuzzy +msgid "Flag Classes" +msgstr "Clases de enumeración" + +#: ../Doc/howto/enum.rst:1195 +msgid "" +"Flags have an expanded view of aliasing: to be canonical, the value of a " +"flag needs to be a power-of-two value, and not a duplicate name. So, in " +"addition to the :class:`Enum` definition of alias, a flag with no value (a.k." +"a. ``0``) or with more than one power-of-two value (e.g. ``3``) is " +"considered an alias." +msgstr "" + +#: ../Doc/howto/enum.rst:1201 msgid "Enum Members (aka instances)" msgstr "Miembros de enumeración (también conocidos como instancias)" -#: ../Doc/howto/enum.rst:1132 +#: ../Doc/howto/enum.rst:1203 msgid "" "The most interesting thing about enum members is that they are singletons. :" "class:`EnumType` creates them all while it is creating the enum class " @@ -1336,7 +1428,38 @@ msgstr "" "que nunca se creen instancias nuevas al devolver solo las instancias de " "miembros existentes." -#: ../Doc/howto/enum.rst:1141 +#: ../Doc/howto/enum.rst:1209 +msgid "Flag Members" +msgstr "" + +#: ../Doc/howto/enum.rst:1211 +msgid "" +"Flag members can be iterated over just like the :class:`Flag` class, and " +"only the canonical members will be returned. For example::" +msgstr "" + +#: ../Doc/howto/enum.rst:1217 +msgid "(Note that ``BLACK``, ``PURPLE``, and ``WHITE`` do not show up.)" +msgstr "" + +#: ../Doc/howto/enum.rst:1219 +msgid "" +"Inverting a flag member returns the corresponding positive value, rather " +"than a negative value --- for example::" +msgstr "" + +#: ../Doc/howto/enum.rst:1225 +msgid "" +"Flag members have a length corresponding to the number of power-of-two " +"values they contain. For example::" +msgstr "" + +#: ../Doc/howto/enum.rst:1235 +#, fuzzy +msgid "Enum Cookbook" +msgstr "HOWTO - Enum" + +#: ../Doc/howto/enum.rst:1238 msgid "" "While :class:`Enum`, :class:`IntEnum`, :class:`StrEnum`, :class:`Flag`, and :" "class:`IntFlag` are expected to cover the majority of use-cases, they cannot " @@ -1349,11 +1472,11 @@ msgstr "" "enumeraciones que se pueden usar directamente o como ejemplos para crear las " "propias." -#: ../Doc/howto/enum.rst:1148 +#: ../Doc/howto/enum.rst:1245 msgid "Omitting values" msgstr "Omitir valores" -#: ../Doc/howto/enum.rst:1150 +#: ../Doc/howto/enum.rst:1247 msgid "" "In many use-cases, one doesn't care what the actual value of an enumeration " "is. There are several ways to define this type of simple enumeration:" @@ -1361,19 +1484,19 @@ msgstr "" "En muchos casos de uso, a uno no le importa cuál es el valor real de una " "enumeración. Hay varias formas de definir este tipo de enumeración simple:" -#: ../Doc/howto/enum.rst:1153 +#: ../Doc/howto/enum.rst:1250 msgid "use instances of :class:`auto` for the value" msgstr "usar instancias de :class:`auto` para el valor" -#: ../Doc/howto/enum.rst:1154 +#: ../Doc/howto/enum.rst:1251 msgid "use instances of :class:`object` as the value" msgstr "usar instancias de :class:`object` como valor" -#: ../Doc/howto/enum.rst:1155 +#: ../Doc/howto/enum.rst:1252 msgid "use a descriptive string as the value" msgstr "use una cadena descriptiva como el valor" -#: ../Doc/howto/enum.rst:1156 +#: ../Doc/howto/enum.rst:1253 msgid "" "use a tuple as the value and a custom :meth:`__new__` to replace the tuple " "with an :class:`int` value" @@ -1381,7 +1504,7 @@ msgstr "" "use una tupla como valor y un :meth:`__new__` personalizado para reemplazar " "la tupla con un valor :class:`int`" -#: ../Doc/howto/enum.rst:1159 +#: ../Doc/howto/enum.rst:1256 msgid "" "Using any of these methods signifies to the user that these values are not " "important, and also enables one to add, remove, or reorder members without " @@ -1391,23 +1514,23 @@ msgstr "" "valores no son importantes y también permite agregar, eliminar o reordenar " "miembros sin tener que volver a numerar los miembros restantes." -#: ../Doc/howto/enum.rst:1165 +#: ../Doc/howto/enum.rst:1262 msgid "Using :class:`auto`" msgstr "Usando :class:`auto`" -#: ../Doc/howto/enum.rst:1167 +#: ../Doc/howto/enum.rst:1264 msgid "Using :class:`auto` would look like::" msgstr "El uso de :class:`auto` se vería así:" -#: ../Doc/howto/enum.rst:1179 +#: ../Doc/howto/enum.rst:1276 msgid "Using :class:`object`" msgstr "Usando :class:`object`" -#: ../Doc/howto/enum.rst:1181 +#: ../Doc/howto/enum.rst:1278 msgid "Using :class:`object` would look like::" msgstr "El uso de :class:`object` se vería así:" -#: ../Doc/howto/enum.rst:1191 +#: ../Doc/howto/enum.rst:1288 msgid "" "This is also a good example of why you might want to write your own :meth:" "`__repr__`::" @@ -1415,23 +1538,23 @@ msgstr "" "Este también es un buen ejemplo de por qué es posible que desee escribir su " "propio :meth:`__repr__`::" -#: ../Doc/howto/enum.rst:1207 +#: ../Doc/howto/enum.rst:1304 msgid "Using a descriptive string" msgstr "Usar una cadena descriptiva" -#: ../Doc/howto/enum.rst:1209 +#: ../Doc/howto/enum.rst:1306 msgid "Using a string as the value would look like::" msgstr "Usando una cadena como el valor se vería así:" -#: ../Doc/howto/enum.rst:1221 +#: ../Doc/howto/enum.rst:1318 msgid "Using a custom :meth:`__new__`" msgstr "Usando un :meth:`__new__` personalizado" -#: ../Doc/howto/enum.rst:1223 +#: ../Doc/howto/enum.rst:1320 msgid "Using an auto-numbering :meth:`__new__` would look like::" msgstr "El uso de un :meth:`__new__` de numeración automática se vería así:" -#: ../Doc/howto/enum.rst:1240 +#: ../Doc/howto/enum.rst:1337 msgid "" "To make a more general purpose ``AutoNumber``, add ``*args`` to the " "signature::" @@ -1439,7 +1562,7 @@ msgstr "" "Para hacer un ``AutoNumber`` de uso más general, agregue ``*args`` a la " "firma:" -#: ../Doc/howto/enum.rst:1250 +#: ../Doc/howto/enum.rst:1347 msgid "" "Then when you inherit from ``AutoNumber`` you can write your own " "``__init__`` to handle any extra arguments::" @@ -1447,7 +1570,7 @@ msgstr "" "Luego, cuando hereda de ``AutoNumber``, puede escribir su propio " "``__init__`` para manejar cualquier argumento adicional:" -#: ../Doc/howto/enum.rst:1269 +#: ../Doc/howto/enum.rst:1366 msgid "" "The :meth:`__new__` method, if defined, is used during creation of the Enum " "members; it is then replaced by Enum's :meth:`__new__` which is used after " @@ -1457,11 +1580,17 @@ msgstr "" "los miembros de Enum; luego se reemplaza por :meth:`__new__` de Enum, que se " "usa después de la creación de clases para buscar miembros existentes." -#: ../Doc/howto/enum.rst:1275 +#: ../Doc/howto/enum.rst:1372 +msgid "" +"*Do not* call ``super().__new__()``, as the lookup-only ``__new__`` is the " +"one that is found; instead, use the data type directly -- e.g.::" +msgstr "" + +#: ../Doc/howto/enum.rst:1379 msgid "OrderedEnum" msgstr "Enum ordenado" -#: ../Doc/howto/enum.rst:1277 +#: ../Doc/howto/enum.rst:1381 msgid "" "An ordered enumeration that is not based on :class:`IntEnum` and so " "maintains the normal :class:`Enum` invariants (such as not being comparable " @@ -1471,19 +1600,20 @@ msgstr "" "mantiene las invariantes normales de :class:`Enum` (como no ser comparable " "con otras enumeraciones):" -#: ../Doc/howto/enum.rst:1311 +#: ../Doc/howto/enum.rst:1415 msgid "DuplicateFreeEnum" msgstr "DuplicateFreeEnum" -#: ../Doc/howto/enum.rst:1313 +#: ../Doc/howto/enum.rst:1417 +#, fuzzy msgid "" -"Raises an error if a duplicate member name is found instead of creating an " +"Raises an error if a duplicate member value is found instead of creating an " "alias::" msgstr "" "Genera un error si se encuentra un nombre de miembro duplicado en lugar de " "crear un alias::" -#: ../Doc/howto/enum.rst:1338 +#: ../Doc/howto/enum.rst:1442 msgid "" "This is a useful example for subclassing Enum to add or change other " "behaviors as well as disallowing aliases. If the only desired change is " @@ -1493,11 +1623,11 @@ msgstr "" "comportamientos, así como para no permitir alias. Si el único cambio deseado " "es prohibir los alias, se puede usar el decorador :func:`unique` en su lugar." -#: ../Doc/howto/enum.rst:1344 +#: ../Doc/howto/enum.rst:1448 msgid "Planet" msgstr "Planeta" -#: ../Doc/howto/enum.rst:1346 +#: ../Doc/howto/enum.rst:1450 msgid "" "If :meth:`__new__` or :meth:`__init__` is defined, the value of the enum " "member will be passed to those methods::" @@ -1505,19 +1635,19 @@ msgstr "" "Si se define :meth:`__new__` o :meth:`__init__`, el valor del miembro de " "enumeración se pasará a esos métodos:" -#: ../Doc/howto/enum.rst:1375 +#: ../Doc/howto/enum.rst:1479 msgid "TimePeriod" msgstr "Periodo de tiempo" -#: ../Doc/howto/enum.rst:1377 +#: ../Doc/howto/enum.rst:1481 msgid "An example to show the :attr:`_ignore_` attribute in use::" msgstr "Un ejemplo para mostrar el atributo :attr:`_ignore_` en uso:" -#: ../Doc/howto/enum.rst:1396 +#: ../Doc/howto/enum.rst:1500 msgid "Subclassing EnumType" msgstr "Subclase EnumType" -#: ../Doc/howto/enum.rst:1398 +#: ../Doc/howto/enum.rst:1502 msgid "" "While most enum needs can be met by customizing :class:`Enum` subclasses, " "either with class decorators or custom functions, :class:`EnumType` can be " @@ -1528,3 +1658,15 @@ msgstr "" "decoradores de clase o funciones personalizadas, :class:`EnumType` se puede " "dividir en subclases para proporcionar una experiencia de enumeración " "diferente." + +#~ msgid "" +#~ "Enum members are instances of their enum class, and are normally accessed " +#~ "as ``EnumClass.member``. In Python versions ``3.5`` to ``3.10`` you " +#~ "could access members from other members -- this practice was discouraged, " +#~ "and in ``3.11`` :class:`Enum` returns to not allowing it::" +#~ msgstr "" +#~ "Los miembros de enumeración son instancias de su clase de enumeración y " +#~ "normalmente se accede a ellos como ``EnumClass.member``. En las versiones " +#~ "de Python ``3.5`` a ``3.10``, podía acceder a miembros de otros miembros; " +#~ "esta práctica se desaconsejó, y en ``3.11``, :class:`Enum` vuelve a no " +#~ "permitirlo:" diff --git a/howto/functional.po b/howto/functional.po index 4113231ed9..8ee5d0390a 100644 --- a/howto/functional.po +++ b/howto/functional.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-10-22 10:38-0500\n" "Last-Translator: Kevin Cajachuán \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/howto/functional.rst:3 msgid "Functional Programming HOWTO" @@ -1520,11 +1520,12 @@ msgid "The functools module" msgstr "El módulo functools" #: ../Doc/howto/functional.rst:997 +#, fuzzy msgid "" -"The :mod:`functools` module in Python 2.5 contains some higher-order " -"functions. A **higher-order function** takes one or more functions as input " -"and returns a new function. The most useful tool in this module is the :" -"func:`functools.partial` function." +"The :mod:`functools` module contains some higher-order functions. A **higher-" +"order function** takes one or more functions as input and returns a new " +"function. The most useful tool in this module is the :func:`functools." +"partial` function." msgstr "" "El módulo :mod:`functools` en Python 2.5 contiene algunas funciones de orden " "superior. Una **función de orden superior** recibe una o más funciones como " @@ -1608,11 +1609,12 @@ msgstr "" "claro simplemente escribir el ciclo :keyword:`for`::" #: ../Doc/howto/functional.rst:1073 +#, fuzzy msgid "" "A related function is :func:`itertools.accumulate(iterable, func=operator." "add) `. It performs the same calculation, but instead " -"of returning only the final result, :func:`accumulate` returns an iterator " -"that also yields each partial result::" +"of returning only the final result, :func:`~itertools.accumulate` returns an " +"iterator that also yields each partial result::" msgstr "" "Una función relacionada es :func:`itertools.accumulate(iterable, " "func=operator.add) `. Realiza el mismo cálculo, pero " @@ -1862,14 +1864,15 @@ msgid "General" msgstr "Generales" #: ../Doc/howto/functional.rst:1210 +#, fuzzy msgid "" "**Structure and Interpretation of Computer Programs**, by Harold Abelson and " -"Gerald Jay Sussman with Julie Sussman. Full text at https://mitpress.mit." -"edu/sicp/. In this classic textbook of computer science, chapters 2 and 3 " -"discuss the use of sequences and streams to organize the data flow inside a " -"program. The book uses Scheme for its examples, but many of the design " -"approaches described in these chapters are applicable to functional-style " -"Python code." +"Gerald Jay Sussman with Julie Sussman. The book can be found at https://" +"mitpress.mit.edu/sicp. In this classic textbook of computer science, " +"chapters 2 and 3 discuss the use of sequences and streams to organize the " +"data flow inside a program. The book uses Scheme for its examples, but many " +"of the design approaches described in these chapters are applicable to " +"functional-style Python code." msgstr "" "**Estructura e interpretación de programas de computadora**, por Harold " "Abelson y Gerald Jay Sussman con Julie Sussman. Texto completo en https://" @@ -1903,17 +1906,26 @@ msgid "https://en.wikipedia.org/wiki/Coroutine: Entry for coroutines." msgstr "https://es.wikipedia.org/wiki/Corrutina: Entrada para corrutinas." #: ../Doc/howto/functional.rst:1226 +#, fuzzy +msgid "" +"https://en.wikipedia.org/wiki/Partial_application: Entry for the concept of " +"partial function application." +msgstr "" +"https://es.wikipedia.org/wiki/Currificaci%C3%B3n: Entrada para el concepto " +"de currificación." + +#: ../Doc/howto/functional.rst:1228 msgid "" "https://en.wikipedia.org/wiki/Currying: Entry for the concept of currying." msgstr "" "https://es.wikipedia.org/wiki/Currificaci%C3%B3n: Entrada para el concepto " "de currificación." -#: ../Doc/howto/functional.rst:1229 +#: ../Doc/howto/functional.rst:1231 msgid "Python-specific" msgstr "Específicas de Python" -#: ../Doc/howto/functional.rst:1231 +#: ../Doc/howto/functional.rst:1233 #, fuzzy msgid "" "https://gnosis.cx/TPiP/: The first chapter of David Mertz's book :title-" @@ -1926,7 +1938,7 @@ msgstr "" "procesamiento de texto, en la sección titulada \"Utilizando funciones de " "orden superior en procesamiento de texto\"." -#: ../Doc/howto/functional.rst:1236 +#: ../Doc/howto/functional.rst:1238 msgid "" "Mertz also wrote a 3-part series of articles on functional programming for " "IBM's DeveloperWorks site; see `part 1 `__, y `parte 3 `__," -#: ../Doc/howto/functional.rst:1244 +#: ../Doc/howto/functional.rst:1246 msgid "Python documentation" msgstr "Documentación de Python" -#: ../Doc/howto/functional.rst:1246 +#: ../Doc/howto/functional.rst:1248 msgid "Documentation for the :mod:`itertools` module." msgstr "Documentación del módulo :mod:`itertools`." -#: ../Doc/howto/functional.rst:1248 +#: ../Doc/howto/functional.rst:1250 msgid "Documentation for the :mod:`functools` module." msgstr "Documentación del módulo :mod:`functools`." -#: ../Doc/howto/functional.rst:1250 +#: ../Doc/howto/functional.rst:1252 msgid "Documentation for the :mod:`operator` module." msgstr "Documentación del módulo :mod:`operator`." -#: ../Doc/howto/functional.rst:1252 +#: ../Doc/howto/functional.rst:1254 msgid ":pep:`289`: \"Generator Expressions\"" msgstr ":pep:`289`: \"Expresiones generadoras\"" -#: ../Doc/howto/functional.rst:1254 +#: ../Doc/howto/functional.rst:1256 msgid "" ":pep:`342`: \"Coroutines via Enhanced Generators\" describes the new " "generator features in Python 2.5." diff --git a/howto/instrumentation.po b/howto/instrumentation.po index e099c5d708..855453917a 100644 --- a/howto/instrumentation.po +++ b/howto/instrumentation.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-04 17:42+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/howto/instrumentation.rst:7 msgid "Instrumenting CPython with DTrace and SystemTap" @@ -293,10 +293,11 @@ msgid "``$arg3`` : ``int`` line number" msgstr "``$arg3`` : ``int`` número de linea" #: ../Doc/howto/instrumentation.rst:295 +#, fuzzy msgid "" -"This marker is the converse of :c:func:`function__entry`, and indicates that " -"execution of a Python function has ended (either via ``return``, or via an " -"exception). It is only triggered for pure-Python (bytecode) functions." +"This marker is the converse of :c:func:`!function__entry`, and indicates " +"that execution of a Python function has ended (either via ``return``, or via " +"an exception). It is only triggered for pure-Python (bytecode) functions." msgstr "" "Este marcador es el inverso de :c:func:`function__entry`, e indica que la " "ejecución de una función de Python ha finalizado (ya sea mediante ``return`` " @@ -304,7 +305,8 @@ msgstr "" "de bytes)." #: ../Doc/howto/instrumentation.rst:299 -msgid "The arguments are the same as for :c:func:`function__entry`" +#, fuzzy +msgid "The arguments are the same as for :c:func:`!function__entry`" msgstr "Los argumentos son los mismos que para :c:func:`function__entry`" #: ../Doc/howto/instrumentation.rst:303 @@ -318,7 +320,8 @@ msgstr "" "Python. No se activa con las funciones de C." #: ../Doc/howto/instrumentation.rst:307 -msgid "The arguments are the same as for :c:func:`function__entry`." +#, fuzzy +msgid "The arguments are the same as for :c:func:`!function__entry`." msgstr "Los argumentos son los mismos que para :c:func:`function__entry`." #: ../Doc/howto/instrumentation.rst:311 diff --git a/howto/isolating-extensions.po b/howto/isolating-extensions.po index 31e8a336ae..88b511aa3b 100644 --- a/howto/isolating-extensions.po +++ b/howto/isolating-extensions.po @@ -9,23 +9,23 @@ msgid "" msgstr "" "Project-Id-Version: Python en Español 3.11\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" -#: ../Doc/howto/isolating-extensions.rst:5 +#: ../Doc/howto/isolating-extensions.rst:7 msgid "Isolating Extension Modules" msgstr "Aislamiento de módulos de extensión" msgid "Abstract" msgstr "Resumen" -#: ../Doc/howto/isolating-extensions.rst:9 +#: ../Doc/howto/isolating-extensions.rst:11 msgid "" "Traditionally, state belonging to Python extension modules was kept in C " "``static`` variables, which have process-wide scope. This document describes " @@ -36,7 +36,7 @@ msgstr "" "todo el proceso. Este documento describe los problemas de dicho estado por " "proceso y muestra una forma más segura: el estado por módulo." -#: ../Doc/howto/isolating-extensions.rst:14 +#: ../Doc/howto/isolating-extensions.rst:16 msgid "" "The document also describes how to switch to per-module state where " "possible. This transition involves allocating space for that state, " @@ -48,11 +48,11 @@ msgstr "" "potencialmente de tipos estáticos a tipos de montón y, quizás lo más " "importante, acceder al estado por módulo desde el código." -#: ../Doc/howto/isolating-extensions.rst:21 +#: ../Doc/howto/isolating-extensions.rst:23 msgid "Who should read this" msgstr "¿Quién debería leer esto?" -#: ../Doc/howto/isolating-extensions.rst:23 +#: ../Doc/howto/isolating-extensions.rst:25 msgid "" "This guide is written for maintainers of :ref:`C-API ` " "extensions who would like to make that extension safer to use in " @@ -62,11 +62,11 @@ msgstr "" "api-index>` que deseen hacer que esa extensión sea más segura para usar en " "aplicaciones donde Python se usa como biblioteca." -#: ../Doc/howto/isolating-extensions.rst:29 +#: ../Doc/howto/isolating-extensions.rst:31 msgid "Background" msgstr "Trasfondo" -#: ../Doc/howto/isolating-extensions.rst:31 +#: ../Doc/howto/isolating-extensions.rst:33 msgid "" "An *interpreter* is the context in which Python code runs. It contains " "configuration (e.g. the import path) and runtime state (e.g. the set of " @@ -76,7 +76,7 @@ msgstr "" "de Python. Contiene la configuración (p. ej., la ruta de importación) y el " "estado de tiempo de ejecución (p. ej., el conjunto de módulos importados)." -#: ../Doc/howto/isolating-extensions.rst:35 +#: ../Doc/howto/isolating-extensions.rst:37 msgid "" "Python supports running multiple interpreters in one process. There are two " "cases to think about—users may run interpreters:" @@ -84,7 +84,7 @@ msgstr "" "Python admite la ejecución de varios intérpretes en un solo proceso. Hay dos " "casos en los que pensar, los usuarios pueden ejecutar intérpretes:" -#: ../Doc/howto/isolating-extensions.rst:38 +#: ../Doc/howto/isolating-extensions.rst:40 msgid "" "in sequence, with several :c:func:`Py_InitializeEx`/:c:func:`Py_FinalizeEx` " "cycles, and" @@ -92,7 +92,7 @@ msgstr "" "en secuencia, con varios ciclos :c:func:`Py_InitializeEx`/:c:func:" "`Py_FinalizeEx`, y" -#: ../Doc/howto/isolating-extensions.rst:40 +#: ../Doc/howto/isolating-extensions.rst:42 msgid "" "in parallel, managing \"sub-interpreters\" using :c:func:" "`Py_NewInterpreter`/:c:func:`Py_EndInterpreter`." @@ -100,7 +100,7 @@ msgstr "" "en paralelo, gestionando \"subintérpretes\" mediante :c:func:" "`Py_NewInterpreter`/:c:func:`Py_EndInterpreter`." -#: ../Doc/howto/isolating-extensions.rst:43 +#: ../Doc/howto/isolating-extensions.rst:45 msgid "" "Both cases (and combinations of them) would be most useful when embedding " "Python within a library. Libraries generally shouldn't make assumptions " @@ -112,7 +112,7 @@ msgstr "" "suposiciones sobre la aplicación que las usa, lo que incluye asumir un " "\"intérprete principal de Python\" en todo el proceso." -#: ../Doc/howto/isolating-extensions.rst:48 +#: ../Doc/howto/isolating-extensions.rst:50 msgid "" "Historically, Python extension modules don't handle this use case well. Many " "extension modules (and even some stdlib modules) use *per-process* global " @@ -131,7 +131,7 @@ msgstr "" "extremos que provocan bloqueos cuando un módulo se carga en más de un " "intérprete en el mismo proceso." -#: ../Doc/howto/isolating-extensions.rst:56 +#: ../Doc/howto/isolating-extensions.rst:58 msgid "" "Unfortunately, *per-interpreter* state is not easy to achieve. Extension " "authors tend to not keep multiple interpreters in mind when developing, and " @@ -141,16 +141,17 @@ msgstr "" "autores de extensiones tienden a no tener en cuenta múltiples intérpretes " "cuando desarrollan, y actualmente es engorroso probar el comportamiento." -#: ../Doc/howto/isolating-extensions.rst:61 +#: ../Doc/howto/isolating-extensions.rst:63 msgid "Enter Per-Module State" msgstr "Ingrese al estado por módulo" -#: ../Doc/howto/isolating-extensions.rst:63 +#: ../Doc/howto/isolating-extensions.rst:65 +#, fuzzy msgid "" "Instead of focusing on per-interpreter state, Python's C API is evolving to " "better support the more granular *per-module* state. This means that C-level " -"data is be attached to a *module object*. Each interpreter creates its own " -"module object, keeping the data separate. For testing the isolation, " +"data should be attached to a *module object*. Each interpreter creates its " +"own module object, keeping the data separate. For testing the isolation, " "multiple module objects corresponding to a single extension can even be " "loaded in a single interpreter." msgstr "" @@ -161,7 +162,7 @@ msgstr "" "Para probar el aislamiento, se pueden cargar varios objetos de módulo " "correspondientes a una sola extensión en un solo intérprete." -#: ../Doc/howto/isolating-extensions.rst:70 +#: ../Doc/howto/isolating-extensions.rst:72 msgid "" "Per-module state provides an easy way to think about lifetime and resource " "ownership: the extension module will initialize when a module object is " @@ -175,7 +176,7 @@ msgstr "" "sentido, un módulo es como cualquier otro :c:expr:`PyObject *`; no hay " "ganchos de \"apagado del intérprete\" para pensar u olvidar." -#: ../Doc/howto/isolating-extensions.rst:76 +#: ../Doc/howto/isolating-extensions.rst:78 msgid "" "Note that there are use cases for different kinds of \"globals\": per-" "process, per-interpreter, per-thread or per-task state. With per-module " @@ -189,11 +190,11 @@ msgstr "" "tratarlos como casos excepcionales: si los necesita, debe brindarles " "atención y pruebas adicionales. (Tenga en cuenta que esta guía no los cubre)." -#: ../Doc/howto/isolating-extensions.rst:85 +#: ../Doc/howto/isolating-extensions.rst:87 msgid "Isolated Module Objects" msgstr "Objetos módulos aislados" -#: ../Doc/howto/isolating-extensions.rst:87 +#: ../Doc/howto/isolating-extensions.rst:89 msgid "" "The key point to keep in mind when developing an extension module is that " "several module objects can be created from a single shared library. For " @@ -203,7 +204,7 @@ msgstr "" "que se pueden crear varios objetos de módulo a partir de una única " "biblioteca compartida. Por ejemplo:" -#: ../Doc/howto/isolating-extensions.rst:101 +#: ../Doc/howto/isolating-extensions.rst:103 msgid "" "As a rule of thumb, the two modules should be completely independent. All " "objects and state specific to the module should be encapsulated within the " @@ -219,7 +220,7 @@ msgstr "" "una regla general, las excepciones son posibles (consulte `Managing Global " "State`_), pero necesitarán más reflexión y atención en los casos extremos." -#: ../Doc/howto/isolating-extensions.rst:109 +#: ../Doc/howto/isolating-extensions.rst:111 msgid "" "While some modules could do with less stringent restrictions, isolated " "modules make it easier to set clear expectations and guidelines that work " @@ -229,11 +230,11 @@ msgstr "" "los módulos aislados facilitan el establecimiento de expectativas y pautas " "claras que funcionan en una variedad de casos de uso." -#: ../Doc/howto/isolating-extensions.rst:115 +#: ../Doc/howto/isolating-extensions.rst:117 msgid "Surprising Edge Cases" msgstr "Casos extremos sorprendentes" -#: ../Doc/howto/isolating-extensions.rst:117 +#: ../Doc/howto/isolating-extensions.rst:119 msgid "" "Note that isolated modules do create some surprising edge cases. Most " "notably, each module object will typically not share its classes and " @@ -249,7 +250,7 @@ msgstr "" "``old_binascii.Error`` y ``binascii.Error`` son objetos separados. En el " "código siguiente, se detecta la excepción *not*:" -#: ../Doc/howto/isolating-extensions.rst:137 +#: ../Doc/howto/isolating-extensions.rst:139 msgid "" "This is expected. Notice that pure-Python modules behave the same way: it is " "a part of how Python works." @@ -257,7 +258,7 @@ msgstr "" "Esto se espera. Tenga en cuenta que los módulos de Python puro se comportan " "de la misma manera: es una parte de cómo funciona Python." -#: ../Doc/howto/isolating-extensions.rst:140 +#: ../Doc/howto/isolating-extensions.rst:142 msgid "" "The goal is to make extension modules safe at the C level, not to make hacks " "behave intuitively. Mutating ``sys.modules`` \"manually\" counts as a hack." @@ -266,15 +267,15 @@ msgstr "" "C, no hacer que los piratas informáticos se comporten de manera intuitiva. " "Mutar ``sys.modules`` \"manualmente\" cuenta como un hack." -#: ../Doc/howto/isolating-extensions.rst:146 +#: ../Doc/howto/isolating-extensions.rst:148 msgid "Making Modules Safe with Multiple Interpreters" msgstr "Cómo hacer que los módulos sean seguros con varios intérpretes" -#: ../Doc/howto/isolating-extensions.rst:150 +#: ../Doc/howto/isolating-extensions.rst:152 msgid "Managing Global State" msgstr "Administrar el estado global" -#: ../Doc/howto/isolating-extensions.rst:152 +#: ../Doc/howto/isolating-extensions.rst:154 msgid "" "Sometimes, the state associated with a Python module is not specific to that " "module, but to the entire process (or something else \"more global\" than a " @@ -284,18 +285,18 @@ msgstr "" "módulo, sino de todo el proceso (o algo más \"más global\" que un módulo). " "Por ejemplo:" -#: ../Doc/howto/isolating-extensions.rst:156 +#: ../Doc/howto/isolating-extensions.rst:158 msgid "The ``readline`` module manages *the* terminal." msgstr "El módulo ``readline`` gestiona *el* terminal." -#: ../Doc/howto/isolating-extensions.rst:157 +#: ../Doc/howto/isolating-extensions.rst:159 msgid "" "A module running on a circuit board wants to control *the* on-board LED." msgstr "" "Un módulo que se ejecuta en una placa de circuito quiere controlar *el* LED " "integrado." -#: ../Doc/howto/isolating-extensions.rst:160 +#: ../Doc/howto/isolating-extensions.rst:162 msgid "" "In these cases, the Python module should provide *access* to the global " "state, rather than *own* it. If possible, write the module so that multiple " @@ -309,7 +310,7 @@ msgstr "" "(junto con otras bibliotecas, ya sea para Python u otros lenguajes). Si eso " "no es posible, considere el bloqueo explícito." -#: ../Doc/howto/isolating-extensions.rst:166 +#: ../Doc/howto/isolating-extensions.rst:168 msgid "" "If it is necessary to use process-global state, the simplest way to avoid " "issues with multiple interpreters is to explicitly prevent a module from " @@ -321,11 +322,11 @@ msgstr "" "módulo se cargue más de una vez por proceso; consulte `Opt-Out: Limiting to " "One Module Object per Process`_." -#: ../Doc/howto/isolating-extensions.rst:173 +#: ../Doc/howto/isolating-extensions.rst:175 msgid "Managing Per-Module State" msgstr "Administración del estado por módulo" -#: ../Doc/howto/isolating-extensions.rst:175 +#: ../Doc/howto/isolating-extensions.rst:177 msgid "" "To use per-module state, use :ref:`multi-phase extension module " "initialization `. This signals that your module " @@ -335,7 +336,7 @@ msgstr "" "initialization `. Esto indica que su módulo " "admite múltiples intérpretes correctamente." -#: ../Doc/howto/isolating-extensions.rst:179 +#: ../Doc/howto/isolating-extensions.rst:181 msgid "" "Set ``PyModuleDef.m_size`` to a positive number to request that many bytes " "of storage local to the module. Usually, this will be set to the size of " @@ -354,7 +355,7 @@ msgstr "" "data:`~csv.field_size_limit` de ``csv``) que el código C necesita para " "funcionar." -#: ../Doc/howto/isolating-extensions.rst:188 +#: ../Doc/howto/isolating-extensions.rst:190 msgid "" "Another option is to store state in the module's ``__dict__``, but you must " "avoid crashing when users modify ``__dict__`` from Python code. This usually " @@ -366,7 +367,7 @@ msgstr "" "Python. Esto generalmente significa verificación de errores y tipos en el " "nivel C, que es fácil equivocarse y difícil de probar lo suficiente." -#: ../Doc/howto/isolating-extensions.rst:193 +#: ../Doc/howto/isolating-extensions.rst:195 msgid "" "However, if module state is not needed in C code, storing it in ``__dict__`` " "only is a good idea." @@ -374,7 +375,7 @@ msgstr "" "Sin embargo, si el estado del módulo no es necesario en el código C, " "almacenarlo solo en ``__dict__`` es una buena idea." -#: ../Doc/howto/isolating-extensions.rst:196 +#: ../Doc/howto/isolating-extensions.rst:198 msgid "" "If the module state includes ``PyObject`` pointers, the module object must " "hold references to those objects and implement the module-level hooks " @@ -390,7 +391,7 @@ msgstr "" "requerirá algo de trabajo y hará que el código sea más largo; este es el " "precio de los módulos que se pueden descargar limpiamente." -#: ../Doc/howto/isolating-extensions.rst:203 +#: ../Doc/howto/isolating-extensions.rst:205 msgid "" "An example of a module with per-module state is currently available as " "`xxlimited `__; ejemplo de inicialización del módulo que se muestra en la " "parte inferior del archivo." -#: ../Doc/howto/isolating-extensions.rst:209 +#: ../Doc/howto/isolating-extensions.rst:211 msgid "Opt-Out: Limiting to One Module Object per Process" msgstr "Exclusión voluntaria: limitación a un objeto de módulo por proceso" -#: ../Doc/howto/isolating-extensions.rst:211 +#: ../Doc/howto/isolating-extensions.rst:213 msgid "" "A non-negative ``PyModuleDef.m_size`` signals that a module supports " "multiple interpreters correctly. If this is not yet the case for your " @@ -417,11 +418,11 @@ msgstr "" "hacer que su módulo se pueda cargar explícitamente solo una vez por proceso. " "Por ejemplo::" -#: ../Doc/howto/isolating-extensions.rst:232 +#: ../Doc/howto/isolating-extensions.rst:234 msgid "Module State Access from Functions" msgstr "Acceso al estado del módulo desde las funciones" -#: ../Doc/howto/isolating-extensions.rst:234 +#: ../Doc/howto/isolating-extensions.rst:236 msgid "" "Accessing the state from module-level functions is straightforward. " "Functions get the module object as their first argument; for extracting the " @@ -431,7 +432,7 @@ msgstr "" "funciones obtienen el objeto del módulo como su primer argumento; para " "extraer el estado, puede usar ``PyModule_GetState``::" -#: ../Doc/howto/isolating-extensions.rst:249 +#: ../Doc/howto/isolating-extensions.rst:251 msgid "" "``PyModule_GetState`` may return ``NULL`` without setting an exception if " "there is no module state, i.e. ``PyModuleDef.m_size`` was zero. In your own " @@ -442,11 +443,11 @@ msgstr "" "su propio módulo, tiene el control de ``m_size``, por lo que es fácil de " "evitar." -#: ../Doc/howto/isolating-extensions.rst:256 +#: ../Doc/howto/isolating-extensions.rst:258 msgid "Heap Types" msgstr "Tipos Heap" -#: ../Doc/howto/isolating-extensions.rst:258 +#: ../Doc/howto/isolating-extensions.rst:260 msgid "" "Traditionally, types defined in C code are *static*; that is, ``static " "PyTypeObject`` structures defined directly in code and initialized using " @@ -456,7 +457,7 @@ msgstr "" "estructuras ``static PyTypeObject`` definidas directamente en el código e " "inicializadas mediante ``PyType_Ready()``." -#: ../Doc/howto/isolating-extensions.rst:262 +#: ../Doc/howto/isolating-extensions.rst:264 msgid "" "Such types are necessarily shared across the process. Sharing them between " "module objects requires paying attention to any state they own or access. To " @@ -469,7 +470,7 @@ msgstr "" "tipos estáticos son inmutables en el nivel de Python: por ejemplo, no puede " "configurar ``str.myattribute = 123``." -#: ../Doc/howto/isolating-extensions.rst:268 +#: ../Doc/howto/isolating-extensions.rst:270 msgid "" "Sharing truly immutable objects between interpreters is fine, as long as " "they don't provide access to mutable objects. However, in CPython, every " @@ -486,7 +487,7 @@ msgstr "" "entre intérpretes depende implícitamente del GIL actual de todo el proceso " "de CPython." -#: ../Doc/howto/isolating-extensions.rst:275 +#: ../Doc/howto/isolating-extensions.rst:277 msgid "" "Because they are immutable and process-global, static types cannot access " "\"their\" module state. If any method of such a type requires access to " @@ -501,17 +502,17 @@ msgstr "" "corresponden más estrechamente con las clases creadas por la instrucción " "``class`` de Python." -#: ../Doc/howto/isolating-extensions.rst:282 +#: ../Doc/howto/isolating-extensions.rst:284 msgid "For new modules, using heap types by default is a good rule of thumb." msgstr "" "Para los módulos nuevos, usar tipos heap de forma predeterminada es una " "buena regla general." -#: ../Doc/howto/isolating-extensions.rst:286 +#: ../Doc/howto/isolating-extensions.rst:288 msgid "Changing Static Types to Heap Types" msgstr "Cambio de tipos estáticos a tipos heap" -#: ../Doc/howto/isolating-extensions.rst:288 +#: ../Doc/howto/isolating-extensions.rst:290 msgid "" "Static types can be converted to heap types, but note that the heap type API " "was not designed for \"lossless\" conversion from static types—that is, " @@ -528,7 +529,7 @@ msgstr "" "(por ejemplo, capacidad de selección o espacios heredados). Siempre pruebe " "los detalles que son importantes para usted." -#: ../Doc/howto/isolating-extensions.rst:297 +#: ../Doc/howto/isolating-extensions.rst:299 msgid "" "Watch out for the following two points in particular (but note that this is " "not a comprehensive list):" @@ -536,31 +537,33 @@ msgstr "" "Tenga cuidado con los siguientes dos puntos en particular (pero tenga en " "cuenta que esta no es una lista completa):" -#: ../Doc/howto/isolating-extensions.rst:300 +#: ../Doc/howto/isolating-extensions.rst:302 +#, fuzzy msgid "" "Unlike static types, heap type objects are mutable by default. Use the :c:" -"data:`Py_TPFLAGS_IMMUTABLETYPE` flag to prevent mutability." +"macro:`Py_TPFLAGS_IMMUTABLETYPE` flag to prevent mutability." msgstr "" "A diferencia de los tipos estáticos, los objetos de tipo heap son mutables " "de forma predeterminada. Utilice el indicador :c:data:" "`Py_TPFLAGS_IMMUTABLETYPE` para evitar la mutabilidad." -#: ../Doc/howto/isolating-extensions.rst:302 +#: ../Doc/howto/isolating-extensions.rst:304 +#, fuzzy msgid "" "Heap types inherit :c:member:`~PyTypeObject.tp_new` by default, so it may " "become possible to instantiate them from Python code. You can prevent this " -"with the :c:data:`Py_TPFLAGS_DISALLOW_INSTANTIATION` flag." +"with the :c:macro:`Py_TPFLAGS_DISALLOW_INSTANTIATION` flag." msgstr "" "Los tipos heap heredan :c:member:`~PyTypeObject.tp_new` de forma " "predeterminada, por lo que es posible crear instancias de ellos desde el " "código de Python. Puede evitar esto con el indicador :c:data:" "`Py_TPFLAGS_DISALLOW_INSTANTIATION`." -#: ../Doc/howto/isolating-extensions.rst:308 +#: ../Doc/howto/isolating-extensions.rst:310 msgid "Defining Heap Types" msgstr "Definición de tipos heap" -#: ../Doc/howto/isolating-extensions.rst:310 +#: ../Doc/howto/isolating-extensions.rst:312 msgid "" "Heap types can be created by filling a :c:struct:`PyType_Spec` structure, a " "description or \"blueprint\" of a class, and calling :c:func:" @@ -570,7 +573,7 @@ msgstr "" "`PyType_Spec`, una descripción o \"modelo\" de una clase y llamando a :c:" "func:`PyType_FromModuleAndSpec` para construir un nuevo objeto de clase." -#: ../Doc/howto/isolating-extensions.rst:315 +#: ../Doc/howto/isolating-extensions.rst:317 msgid "" "Other functions, like :c:func:`PyType_FromSpec`, can also create heap types, " "but :c:func:`PyType_FromModuleAndSpec` associates the module with the class, " @@ -580,7 +583,7 @@ msgstr "" "heap, pero :c:func:`PyType_FromModuleAndSpec` asocia el módulo con la clase, " "lo que permite el acceso al estado del módulo desde los métodos." -#: ../Doc/howto/isolating-extensions.rst:319 +#: ../Doc/howto/isolating-extensions.rst:321 msgid "" "The class should generally be stored in *both* the module state (for safe " "access from C) and the module's ``__dict__`` (for access from Python code)." @@ -589,11 +592,11 @@ msgstr "" "(para acceso seguro desde C) y el ``__dict__`` del módulo (para acceso desde " "código Python)." -#: ../Doc/howto/isolating-extensions.rst:325 +#: ../Doc/howto/isolating-extensions.rst:327 msgid "Garbage-Collection Protocol" msgstr "Protocolo de recolección de basura" -#: ../Doc/howto/isolating-extensions.rst:327 +#: ../Doc/howto/isolating-extensions.rst:329 msgid "" "Instances of heap types hold a reference to their type. This ensures that " "the type isn't destroyed before all its instances are, but may result in " @@ -604,7 +607,7 @@ msgstr "" "instancias, pero puede generar ciclos de referencia que el recolector de " "elementos no utilizados debe interrumpir." -#: ../Doc/howto/isolating-extensions.rst:332 +#: ../Doc/howto/isolating-extensions.rst:334 msgid "" "To avoid memory leaks, instances of heap types must implement the garbage " "collection protocol. That is, heap types should:" @@ -613,11 +616,12 @@ msgstr "" "implementar el protocolo de recolección de elementos no utilizados. Es " "decir, los tipos heap deben:" -#: ../Doc/howto/isolating-extensions.rst:336 -msgid "Have the :c:data:`Py_TPFLAGS_HAVE_GC` flag." +#: ../Doc/howto/isolating-extensions.rst:338 +#, fuzzy +msgid "Have the :c:macro:`Py_TPFLAGS_HAVE_GC` flag." msgstr "Tener la bandera :c:data:`Py_TPFLAGS_HAVE_GC`." -#: ../Doc/howto/isolating-extensions.rst:337 +#: ../Doc/howto/isolating-extensions.rst:339 msgid "" "Define a traverse function using ``Py_tp_traverse``, which visits the type " "(e.g. using :c:expr:`Py_VISIT(Py_TYPE(self))`)." @@ -625,9 +629,10 @@ msgstr "" "Defina una función transversal usando ``Py_tp_traverse``, que visita el tipo " "(por ejemplo, usando :c:expr:`Py_VISIT(Py_TYPE(self))`)." -#: ../Doc/howto/isolating-extensions.rst:340 +#: ../Doc/howto/isolating-extensions.rst:342 +#, fuzzy msgid "" -"Please refer to the :ref:`the documentation ` of :c:data:" +"Please refer to the :ref:`the documentation ` of :c:macro:" "`Py_TPFLAGS_HAVE_GC` and :c:member:`~PyTypeObject.tp_traverse` for " "additional considerations." msgstr "" @@ -635,7 +640,7 @@ msgstr "" "`Py_TPFLAGS_HAVE_GC` y :c:member:`~PyTypeObject.tp_traverse` para obtener " "consideraciones adicionales." -#: ../Doc/howto/isolating-extensions.rst:344 +#: ../Doc/howto/isolating-extensions.rst:346 msgid "" "If your traverse function delegates to the ``tp_traverse`` of its base class " "(or another type), ensure that ``Py_TYPE(self)`` is visited only once. Note " @@ -646,16 +651,16 @@ msgstr "" "cuenta que solo se espera que el tipo de montón visite el tipo en " "``tp_traverse``." -#: ../Doc/howto/isolating-extensions.rst:348 +#: ../Doc/howto/isolating-extensions.rst:350 msgid "For example, if your traverse function includes::" msgstr "Por ejemplo, si su función poligonal incluye:" -#: ../Doc/howto/isolating-extensions.rst:352 +#: ../Doc/howto/isolating-extensions.rst:354 msgid "...and ``base`` may be a static type, then it should also include::" msgstr "" "...y ``base`` puede ser un tipo estático, entonces también debe incluir:" -#: ../Doc/howto/isolating-extensions.rst:360 +#: ../Doc/howto/isolating-extensions.rst:362 msgid "" "It is not necessary to handle the type's reference count in ``tp_new`` and " "``tp_clear``." @@ -663,11 +668,11 @@ msgstr "" "No es necesario manejar el recuento de referencias del tipo en ``tp_new`` y " "``tp_clear``." -#: ../Doc/howto/isolating-extensions.rst:365 +#: ../Doc/howto/isolating-extensions.rst:367 msgid "Module State Access from Classes" msgstr "Acceso al estado del módulo desde las clases" -#: ../Doc/howto/isolating-extensions.rst:367 +#: ../Doc/howto/isolating-extensions.rst:369 msgid "" "If you have a type object defined with :c:func:`PyType_FromModuleAndSpec`, " "you can call :c:func:`PyType_GetModule` to get the associated module, and " @@ -677,7 +682,7 @@ msgstr "" "puede llamar a :c:func:`PyType_GetModule` para obtener el módulo asociado y " "luego a :c:func:`PyModule_GetState` para obtener el estado del módulo." -#: ../Doc/howto/isolating-extensions.rst:371 +#: ../Doc/howto/isolating-extensions.rst:373 msgid "" "To save a some tedious error-handling boilerplate code, you can combine " "these two steps with :c:func:`PyType_GetModuleState`, resulting in::" @@ -686,11 +691,11 @@ msgstr "" "combinar estos dos pasos con :c:func:`PyType_GetModuleState`, lo que da como " "resultado:" -#: ../Doc/howto/isolating-extensions.rst:381 +#: ../Doc/howto/isolating-extensions.rst:383 msgid "Module State Access from Regular Methods" msgstr "Acceso al estado del módulo desde métodos regulares" -#: ../Doc/howto/isolating-extensions.rst:383 +#: ../Doc/howto/isolating-extensions.rst:385 msgid "" "Accessing the module-level state from methods of a class is somewhat more " "complicated, but is possible thanks to API introduced in Python 3.9. To get " @@ -702,7 +707,7 @@ msgstr "" "Para obtener el estado, primero debe obtener la *clase de definición* y " "luego obtener el estado del módulo." -#: ../Doc/howto/isolating-extensions.rst:388 +#: ../Doc/howto/isolating-extensions.rst:390 msgid "" "The largest roadblock is getting *the class a method was defined in*, or " "that method's \"defining class\" for short. The defining class can have a " @@ -712,7 +717,7 @@ msgstr "" "método*, o la \"clase de definición\" de ese método para abreviar. La clase " "de definición puede tener una referencia al módulo del que forma parte." -#: ../Doc/howto/isolating-extensions.rst:392 +#: ../Doc/howto/isolating-extensions.rst:394 msgid "" "Do not confuse the defining class with :c:expr:`Py_TYPE(self)`. If the " "method is called on a *subclass* of your type, ``Py_TYPE(self)`` will refer " @@ -722,7 +727,7 @@ msgstr "" "al método en una *subclase* de su tipo, ``Py_TYPE(self)`` se referirá a esa " "subclase, que puede estar definida en un módulo diferente al suyo." -#: ../Doc/howto/isolating-extensions.rst:397 +#: ../Doc/howto/isolating-extensions.rst:399 msgid "" "The following Python code can illustrate the concept. ``Base." "get_defining_class`` returns ``Base`` even if ``type(self) == Sub``:" @@ -730,17 +735,19 @@ msgstr "" "El siguiente código de Python puede ilustrar el concepto. ``Base." "get_defining_class`` retorna ``Base`` incluso si ``type(self) == Sub``:" -#: ../Doc/howto/isolating-extensions.rst:413 +#: ../Doc/howto/isolating-extensions.rst:415 +#, fuzzy msgid "" -"For a method to get its \"defining class\", it must use the :data:" -"`METH_METHOD | METH_FASTCALL | METH_KEYWORDS` :c:type:`calling convention " -"` and the corresponding :c:type:`PyCMethod` signature::" +"For a method to get its \"defining class\", it must use the :ref:" +"`METH_METHOD | METH_FASTCALL | METH_KEYWORDS ` :c:type:`calling convention ` and the " +"corresponding :c:type:`PyCMethod` signature::" msgstr "" "Para que un método obtenga su \"clase de definición\", debe usar :data:" "`METH_METHOD | METH_FASTCALL | METH_KEYWORDS` :c:type:`calling convention " "` y la firma :c:type:`PyCMethod` correspondiente:" -#: ../Doc/howto/isolating-extensions.rst:425 +#: ../Doc/howto/isolating-extensions.rst:427 msgid "" "Once you have the defining class, call :c:func:`PyType_GetModuleState` to " "get the state of its associated module." @@ -748,25 +755,27 @@ msgstr "" "Una vez que tenga la clase de definición, llame a :c:func:" "`PyType_GetModuleState` para obtener el estado de su módulo asociado." -#: ../Doc/howto/isolating-extensions.rst:428 +#: ../Doc/howto/isolating-extensions.rst:430 msgid "For example::" msgstr "Por ejemplo::" -#: ../Doc/howto/isolating-extensions.rst:456 +#: ../Doc/howto/isolating-extensions.rst:458 msgid "Module State Access from Slot Methods, Getters and Setters" msgstr "Acceso al estado del módulo desde métodos de Slot, Getters y Setters" -#: ../Doc/howto/isolating-extensions.rst:460 +#: ../Doc/howto/isolating-extensions.rst:462 msgid "This is new in Python 3.11." msgstr "Esto es nuevo en Python 3.11." -#: ../Doc/howto/isolating-extensions.rst:468 +#: ../Doc/howto/isolating-extensions.rst:470 +#, fuzzy msgid "" "Slot methods—the fast C equivalents for special methods, such as :c:member:" "`~PyNumberMethods.nb_add` for :py:attr:`~object.__add__` or :c:member:" -"`~PyType.tp_new` for initialization—have a very simple API that doesn't " -"allow passing in the defining class, unlike with :c:type:`PyCMethod`. The " -"same goes for getters and setters defined with :c:type:`PyGetSetDef`." +"`~PyTypeObject.tp_new` for initialization—have a very simple API that " +"doesn't allow passing in the defining class, unlike with :c:type:" +"`PyCMethod`. The same goes for getters and setters defined with :c:type:" +"`PyGetSetDef`." msgstr "" "Los métodos slot, los equivalentes rápidos de C para métodos especiales, " "como :c:member:`~PyNumberMethods.nb_add` para :py:attr:`~object.__add__` o :" @@ -775,7 +784,7 @@ msgstr "" "`PyCMethod`. Lo mismo ocurre con los getters y setters definidos con :c:type:" "`PyGetSetDef`." -#: ../Doc/howto/isolating-extensions.rst:475 +#: ../Doc/howto/isolating-extensions.rst:477 msgid "" "To access the module state in these cases, use the :c:func:" "`PyType_GetModuleByDef` function, and pass in the module definition. Once " @@ -785,22 +794,24 @@ msgstr "" "`PyType_GetModuleByDef` y pase la definición del módulo. Una vez que tenga " "el módulo, llame a :c:func:`PyModule_GetState` para obtener el estado:" -#: ../Doc/howto/isolating-extensions.rst:486 +#: ../Doc/howto/isolating-extensions.rst:488 +#, fuzzy msgid "" -"``PyType_GetModuleByDef`` works by searching the :term:`method resolution " -"order` (i.e. all superclasses) for the first superclass that has a " -"corresponding module." +":c:func:`!PyType_GetModuleByDef` works by searching the :term:`method " +"resolution order` (i.e. all superclasses) for the first superclass that has " +"a corresponding module." msgstr "" "``PyType_GetModuleByDef`` funciona buscando en :term:`method resolution " "order` (es decir, todas las superclases) la primera superclase que tiene un " "módulo correspondiente." -#: ../Doc/howto/isolating-extensions.rst:492 +#: ../Doc/howto/isolating-extensions.rst:494 +#, fuzzy msgid "" "In very exotic cases (inheritance chains spanning multiple modules created " -"from the same definition), ``PyType_GetModuleByDef`` might not return the " -"module of the true defining class. However, it will always return a module " -"with the same definition, ensuring a compatible C memory layout." +"from the same definition), :c:func:`!PyType_GetModuleByDef` might not return " +"the module of the true defining class. However, it will always return a " +"module with the same definition, ensuring a compatible C memory layout." msgstr "" "En casos muy exóticos (cadenas de herencia que abarcan varios módulos " "creados a partir de la misma definición), es posible que " @@ -808,11 +819,11 @@ msgstr "" "definición. Sin embargo, siempre retornará un módulo con la misma " "definición, lo que garantiza un diseño de memoria C compatible." -#: ../Doc/howto/isolating-extensions.rst:500 +#: ../Doc/howto/isolating-extensions.rst:502 msgid "Lifetime of the Module State" msgstr "Vida útil del estado del módulo" -#: ../Doc/howto/isolating-extensions.rst:502 +#: ../Doc/howto/isolating-extensions.rst:504 msgid "" "When a module object is garbage-collected, its module state is freed. For " "each pointer to (a part of) the module state, you must hold a reference to " @@ -822,7 +833,7 @@ msgstr "" "módulo. Para cada puntero a (una parte de) el estado del módulo, debe tener " "una referencia al objeto del módulo." -#: ../Doc/howto/isolating-extensions.rst:506 +#: ../Doc/howto/isolating-extensions.rst:508 msgid "" "Usually this is not an issue, because types created with :c:func:" "`PyType_FromModuleAndSpec`, and their instances, hold a reference to the " @@ -836,17 +847,17 @@ msgstr "" "hace referencia al estado del módulo desde otros lugares, como devoluciones " "de llamada para bibliotecas externas." -#: ../Doc/howto/isolating-extensions.rst:515 +#: ../Doc/howto/isolating-extensions.rst:517 msgid "Open Issues" msgstr "Problemas abiertos" -#: ../Doc/howto/isolating-extensions.rst:517 +#: ../Doc/howto/isolating-extensions.rst:519 msgid "Several issues around per-module state and heap types are still open." msgstr "" "Varios problemas relacionados con el estado por módulo y los tipos heap " "todavía están abiertos." -#: ../Doc/howto/isolating-extensions.rst:519 +#: ../Doc/howto/isolating-extensions.rst:521 msgid "" "Discussions about improving the situation are best held on the `capi-sig " "mailing list `__." -#: ../Doc/howto/isolating-extensions.rst:524 +#: ../Doc/howto/isolating-extensions.rst:526 msgid "Per-Class Scope" msgstr "Alcance por clase" -#: ../Doc/howto/isolating-extensions.rst:526 +#: ../Doc/howto/isolating-extensions.rst:528 msgid "" "It is currently (as of Python 3.11) not possible to attach state to " "individual *types* without relying on CPython implementation details (which " @@ -872,11 +883,11 @@ msgstr "" "CPython (que pueden cambiar en el futuro, tal vez, irónicamente, para " "permitir una solución adecuada para el alcance por clase)." -#: ../Doc/howto/isolating-extensions.rst:533 +#: ../Doc/howto/isolating-extensions.rst:535 msgid "Lossless Conversion to Heap Types" msgstr "Conversión sin pérdidas a tipos heap" -#: ../Doc/howto/isolating-extensions.rst:535 +#: ../Doc/howto/isolating-extensions.rst:537 msgid "" "The heap type API was not designed for \"lossless\" conversion from static " "types; that is, creating a type that works exactly like a given static type." diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index bae4706f35..0dea578506 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-27 15:51-0300\n" "Last-Translator: Carlos A. Crespo \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/howto/logging-cookbook.rst:5 msgid "Logging Cookbook" @@ -265,11 +264,11 @@ msgstr "" "configurar añadiendo una sección ``filters`` paralela a ``formatters`` y " "``handlers``:" -#: ../Doc/howto/logging-cookbook.rst:350 +#: ../Doc/howto/logging-cookbook.rst:352 msgid "and changing the section on the ``stdout`` handler to add it:" msgstr "y cambiando la sección del gestor ``stdout`` para añadirlo:" -#: ../Doc/howto/logging-cookbook.rst:362 +#: ../Doc/howto/logging-cookbook.rst:366 msgid "" "A filter is just a function, so we can define the ``filter_maker`` (a " "factory function) as follows:" @@ -277,7 +276,7 @@ msgstr "" "Un filtro no es más que una función, por lo que podemos definir el " "``filter_maker`` (una función de fábrica) como sigue:" -#: ../Doc/howto/logging-cookbook.rst:375 +#: ../Doc/howto/logging-cookbook.rst:379 msgid "" "This converts the string argument passed in to a numeric level, and returns " "a function which only returns ``True`` if the level of the passed in record " @@ -296,30 +295,30 @@ msgstr "" "configuración del filtro. Tendrás que cambiar eso si lo defines en un módulo " "diferente." -#: ../Doc/howto/logging-cookbook.rst:383 +#: ../Doc/howto/logging-cookbook.rst:387 msgid "With the filter added, we can run ``main.py``, which in full is:" msgstr "" "Con el filtro añadido, podemos ejecutar ``main.py``, que en su totalidad es:" -#: ../Doc/howto/logging-cookbook.rst:453 +#: ../Doc/howto/logging-cookbook.rst:457 msgid "And after running it like this:" msgstr "Y después de ejecutarlo de esta manera:" -#: ../Doc/howto/logging-cookbook.rst:459 +#: ../Doc/howto/logging-cookbook.rst:463 msgid "We can see the results are as expected:" msgstr "Podemos ver que los resultados son los esperados:" -#: ../Doc/howto/logging-cookbook.rst:485 +#: ../Doc/howto/logging-cookbook.rst:489 msgid "Configuration server example" msgstr "Ejemplo de servidor de configuración" -#: ../Doc/howto/logging-cookbook.rst:487 +#: ../Doc/howto/logging-cookbook.rst:491 msgid "Here is an example of a module using the logging configuration server::" msgstr "" "Aquí hay un ejemplo de un módulo que usa el servidor de configuración " "logging::" -#: ../Doc/howto/logging-cookbook.rst:518 +#: ../Doc/howto/logging-cookbook.rst:522 msgid "" "And here is a script that takes a filename and sends that file to the " "server, properly preceded with the binary-encoded length, as the new logging " @@ -329,11 +328,11 @@ msgstr "" "servidor, precedido adecuadamente con la longitud codificada en binario, " "como la nueva configuración de logging::" -#: ../Doc/howto/logging-cookbook.rst:543 +#: ../Doc/howto/logging-cookbook.rst:547 msgid "Dealing with handlers that block" msgstr "Tratar con gestores que bloquean" -#: ../Doc/howto/logging-cookbook.rst:547 +#: ../Doc/howto/logging-cookbook.rst:551 msgid "" "Sometimes you have to get your logging handlers to do their work without " "blocking the thread you're logging from. This is common in web applications, " @@ -344,7 +343,7 @@ msgstr "" "aplicaciones web, aunque, por supuesto, también ocurre en otros escenarios." # -"under the hood": de bajo nivel? más técnicas? -#: ../Doc/howto/logging-cookbook.rst:551 +#: ../Doc/howto/logging-cookbook.rst:555 msgid "" "A common culprit which demonstrates sluggish behaviour is the :class:" "`SMTPHandler`: sending emails can take a long time, for a number of reasons " @@ -363,7 +362,7 @@ msgstr "" "demasiado lenta (y esta consulta puede estar en el código de la biblioteca " "de socket, debajo de la capa de Python, y fuera de su control)." -#: ../Doc/howto/logging-cookbook.rst:559 +#: ../Doc/howto/logging-cookbook.rst:563 msgid "" "One solution is to use a two-part approach. For the first part, attach only " "a :class:`QueueHandler` to those loggers which are accessed from performance-" @@ -388,7 +387,7 @@ msgstr "" "adjuntar solo ``QueueHandlers`` a sus loggers) para el beneficio de otros " "desarrolladores que usarán su código." -#: ../Doc/howto/logging-cookbook.rst:570 +#: ../Doc/howto/logging-cookbook.rst:574 msgid "" "The second part of the solution is :class:`QueueListener`, which has been " "designed as the counterpart to :class:`QueueHandler`. A :class:" @@ -405,7 +404,7 @@ msgstr "" "cualquier otra fuente de ``LogRecords``, para el caso). Los ``LogRecords`` " "se eliminan de la cola y se pasan a los gestores para su procesamiento." -#: ../Doc/howto/logging-cookbook.rst:578 +#: ../Doc/howto/logging-cookbook.rst:582 msgid "" "The advantage of having a separate :class:`QueueListener` class is that you " "can use the same instance to service multiple ``QueueHandlers``. This is " @@ -419,16 +418,16 @@ msgstr "" "enhebradas de las clases de gestores existentes, que consumirían un hilo por " "gestor sin ningún beneficio particular." -#: ../Doc/howto/logging-cookbook.rst:583 +#: ../Doc/howto/logging-cookbook.rst:587 msgid "An example of using these two classes follows (imports omitted)::" msgstr "" "Un ejemplo del uso de estas dos clases a continuación (se omiten *imports*)::" -#: ../Doc/howto/logging-cookbook.rst:601 +#: ../Doc/howto/logging-cookbook.rst:605 msgid "which, when run, will produce:" msgstr "que, cuando se ejecuta, producirá:" -#: ../Doc/howto/logging-cookbook.rst:607 +#: ../Doc/howto/logging-cookbook.rst:611 msgid "" "Although the earlier discussion wasn't specifically talking about async " "code, but rather about slow logging handlers, it should be noted that when " @@ -447,7 +446,7 @@ msgstr "" "aplicación, utilizar el enfoque anterior para el logging, de modo que " "cualquier código de bloqueo se ejecute sólo en el hilo ``QueueListener``." -#: ../Doc/howto/logging-cookbook.rst:615 +#: ../Doc/howto/logging-cookbook.rst:619 msgid "" "Prior to Python 3.5, the :class:`QueueListener` always passed every message " "received from the queue to every handler it was initialized with. (This was " @@ -467,11 +466,11 @@ msgstr "" "de cada mensaje con el nivel del controlador y solo pasa un mensaje a un " "controlador si es apropiado hacerlo." -#: ../Doc/howto/logging-cookbook.rst:628 +#: ../Doc/howto/logging-cookbook.rst:632 msgid "Sending and receiving logging events across a network" msgstr "Enviar y recibir eventos logging a través de una red" -#: ../Doc/howto/logging-cookbook.rst:630 +#: ../Doc/howto/logging-cookbook.rst:634 msgid "" "Let's say you want to send logging events across a network, and handle them " "at the receiving end. A simple way of doing this is attaching a :class:" @@ -482,7 +481,7 @@ msgstr "" "adjuntar una instancia de :class:`SocketHandler` al registrador raíz en el " "extremo de envío::" -#: ../Doc/howto/logging-cookbook.rst:658 +#: ../Doc/howto/logging-cookbook.rst:662 msgid "" "At the receiving end, you can set up a receiver using the :mod:" "`socketserver` module. Here is a basic working example::" @@ -490,7 +489,7 @@ msgstr "" "En el extremo receptor, puede configurar un receptor usando el módulo :mod:" "`socketserver`. Aquí hay un ejemplo básico de trabajo:" -#: ../Doc/howto/logging-cookbook.rst:746 +#: ../Doc/howto/logging-cookbook.rst:750 msgid "" "First run the server, and then the client. On the client side, nothing is " "printed on the console; on the server side, you should see something like:" @@ -499,13 +498,14 @@ msgstr "" "se imprime en la consola; del lado del servidor, se debería ver algo como " "esto:" -#: ../Doc/howto/logging-cookbook.rst:758 +#: ../Doc/howto/logging-cookbook.rst:762 +#, fuzzy msgid "" "Note that there are some security issues with pickle in some scenarios. If " "these affect you, you can use an alternative serialization scheme by " -"overriding the :meth:`~handlers.SocketHandler.makePickle` method and " -"implementing your alternative there, as well as adapting the above script to " -"use your alternative serialization." +"overriding the :meth:`~SocketHandler.makePickle` method and implementing " +"your alternative there, as well as adapting the above script to use your " +"alternative serialization." msgstr "" "Tenga en cuenta que existen algunos problemas de seguridad con pickle en " "algunos escenarios. Si estos le afectan, puede usar un esquema de " @@ -513,18 +513,17 @@ msgstr "" "makePickle` e implementando su alternativa allí, así como adaptar el script " "anterior para usar su serialización alternativa." -#: ../Doc/howto/logging-cookbook.rst:766 +#: ../Doc/howto/logging-cookbook.rst:770 msgid "Running a logging socket listener in production" msgstr "Ejecutando un logging de socket oyente en producción" -#: ../Doc/howto/logging-cookbook.rst:768 +#: ../Doc/howto/logging-cookbook.rst:774 +#, fuzzy msgid "" "To run a logging listener in production, you may need to use a process-" -"management tool such as `Supervisor `_. `Here " -"`_ is a " -"Gist which provides the bare-bones files to run the above functionality " -"using Supervisor: you will need to change the ``/path/to/`` parts in the " -"Gist to reflect the actual paths you want to use." +"management tool such as `Supervisor `_. `Here is a " +"Gist `__ which provides the bare-bones files to run " +"the above functionality using Supervisor. It consists of the following files:" msgstr "" "Para ejecutar un logging oyente en producción, es posible que tenga que " "utilizar una herramienta de gestión de procesos como `Supervisor `_, which is a " +"popular web application server that starts multiple worker processes to " +"handle requests. This example setup shows how the workers can write to the " +"same log file without conflicting with one another --- they all go through " +"the socket listener." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:809 +msgid "To test these files, do the following in a POSIX environment:" +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:811 +msgid "" +"Download `the Gist `__ as a ZIP archive using the :" +"guilabel:`Download ZIP` button." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:814 +msgid "Unzip the above files from the archive into a scratch directory." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:816 +msgid "" +"In the scratch directory, run ``bash prepare.sh`` to get things ready. This " +"creates a :file:`run` subdirectory to contain Supervisor-related and log " +"files, and a :file:`venv` subdirectory to contain a virtual environment into " +"which ``bottle``, ``gunicorn`` and ``supervisor`` are installed." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:821 +msgid "" +"Run ``bash ensure_app.sh`` to ensure that Supervisor is running with the " +"above configuration." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:824 +msgid "" +"Run ``venv/bin/python client.py`` to exercise the web application, which " +"will lead to records being written to the log." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:827 +msgid "" +"Inspect the log files in the :file:`run` subdirectory. You should see the " +"most recent log lines in files matching the pattern :file:`app.log*`. They " +"won't be in any particular order, since they have been handled concurrently " +"by different worker processes in a non-deterministic way." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:832 +msgid "" +"You can shut down the listener and the web application by running ``venv/bin/" +"supervisorctl -c supervisor.conf shutdown``." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:835 +msgid "" +"You may need to tweak the configuration files in the unlikely event that the " +"configured ports clash with something else in your test environment." +msgstr "" + +#: ../Doc/howto/logging-cookbook.rst:843 msgid "Adding contextual information to your logging output" msgstr "Agregar información contextual a su salida de logging" # no estoy seguro de la parte "se liberan de memoria via recolector de # basura". En la wikipedia en español lo llaman así. "se liberan de memoria" # es una agregado mío. -#: ../Doc/howto/logging-cookbook.rst:781 +#: ../Doc/howto/logging-cookbook.rst:845 msgid "" "Sometimes you want logging output to contain contextual information in " "addition to the parameters passed to the logging call. For example, in a " @@ -570,12 +705,12 @@ msgstr "" "logging de una aplicación, podría ser difícil de administrar si el número de " "instancias :class:`Logger` se vuelven efectivamente ilimitadas." -#: ../Doc/howto/logging-cookbook.rst:796 +#: ../Doc/howto/logging-cookbook.rst:860 msgid "Using LoggerAdapters to impart contextual information" msgstr "Uso de LoggerAdapters para impartir información contextual" # "signatures" por "características"? -#: ../Doc/howto/logging-cookbook.rst:798 +#: ../Doc/howto/logging-cookbook.rst:862 msgid "" "An easy way in which you can pass contextual information to be output along " "with logging event information is to use the :class:`LoggerAdapter` class. " @@ -593,7 +728,7 @@ msgstr "" "tienen las mismas signaturas que sus contrapartes en :class:`Logger`, por lo " "que puede usar los dos tipos de instancias indistintamente." -#: ../Doc/howto/logging-cookbook.rst:806 +#: ../Doc/howto/logging-cookbook.rst:870 msgid "" "When you create an instance of :class:`LoggerAdapter`, you pass it a :class:" "`Logger` instance and a dict-like object which contains your contextual " @@ -611,7 +746,7 @@ msgstr "" "información contextual en la llamada delegada . Aquí hay un fragmento del " "código de :class:`LoggerAdapter`::" -#: ../Doc/howto/logging-cookbook.rst:822 +#: ../Doc/howto/logging-cookbook.rst:886 msgid "" "The :meth:`~LoggerAdapter.process` method of :class:`LoggerAdapter` is where " "the contextual information is added to the logging output. It's passed the " @@ -633,7 +768,7 @@ msgstr "" "si ha pasado un argumento de palabra clave 'extra' en la llamada al " "adaptador, se sobrescribirá silenciosamente." -#: ../Doc/howto/logging-cookbook.rst:831 +#: ../Doc/howto/logging-cookbook.rst:895 msgid "" "The advantage of using 'extra' is that the values in the dict-like object " "are merged into the :class:`LogRecord` instance's __dict__, allowing you to " @@ -651,11 +786,11 @@ msgstr "" "necesita la subclase :class:`LoggerAdapter` y anular :meth:`~LoggerAdapter." "process` para hacer lo que necesita. Aquí hay un ejemplo simple:" -#: ../Doc/howto/logging-cookbook.rst:847 +#: ../Doc/howto/logging-cookbook.rst:911 msgid "which you can use like this::" msgstr "que puede usar así::" -#: ../Doc/howto/logging-cookbook.rst:852 +#: ../Doc/howto/logging-cookbook.rst:916 msgid "" "Then any events that you log to the adapter will have the value of " "``some_conn_id`` prepended to the log messages." @@ -663,13 +798,13 @@ msgstr "" "Luego, cualquier evento que registre en el adaptador tendrá el valor de " "``some_conn_id`` antepuesto a los mensajes de logging." -#: ../Doc/howto/logging-cookbook.rst:856 +#: ../Doc/howto/logging-cookbook.rst:920 msgid "Using objects other than dicts to pass contextual information" msgstr "" "Usar objetos distintos a los diccionarios para transmitir información " "contextual" -#: ../Doc/howto/logging-cookbook.rst:858 +#: ../Doc/howto/logging-cookbook.rst:922 msgid "" "You don't need to pass an actual dict to a :class:`LoggerAdapter` - you " "could pass an instance of a class which implements ``__getitem__`` and " @@ -683,11 +818,11 @@ msgstr "" "útil si quieres generar valores dinámicamente (mientras que los valores en " "un diccionario son constantes)." -#: ../Doc/howto/logging-cookbook.rst:867 +#: ../Doc/howto/logging-cookbook.rst:931 msgid "Using Filters to impart contextual information" msgstr "Usar filtros para impartir información contextual" -#: ../Doc/howto/logging-cookbook.rst:869 +#: ../Doc/howto/logging-cookbook.rst:933 msgid "" "You can also add contextual information to log output using a user-defined :" "class:`Filter`. ``Filter`` instances are allowed to modify the " @@ -702,7 +837,7 @@ msgstr "" "caracteres con el formato adecuado, o si es necesario, un :class:`Formatter` " "personalizado." -#: ../Doc/howto/logging-cookbook.rst:874 +#: ../Doc/howto/logging-cookbook.rst:938 msgid "" "For example in a web application, the request being processed (or at least, " "the interesting parts of it) can be stored in a threadlocal (:class:" @@ -723,15 +858,15 @@ msgstr "" "caracteres para obtener un resultado similar al que se muestra arriba. Aquí " "hay un script de ejemplo::" -#: ../Doc/howto/logging-cookbook.rst:920 +#: ../Doc/howto/logging-cookbook.rst:984 msgid "which, when run, produces something like:" msgstr "que cuando se ejecuta, produce algo como:" -#: ../Doc/howto/logging-cookbook.rst:938 +#: ../Doc/howto/logging-cookbook.rst:1002 msgid "Use of ``contextvars``" msgstr "Uso de ``contextvars``" -#: ../Doc/howto/logging-cookbook.rst:940 +#: ../Doc/howto/logging-cookbook.rst:1004 msgid "" "Since Python 3.7, the :mod:`contextvars` module has provided context-local " "storage which works for both :mod:`threading` and :mod:`asyncio` processing " @@ -748,7 +883,7 @@ msgstr "" "logs pueden rellenarse con información contextual como, por ejemplo, los " "atributos de las peticiones gestionadas por las aplicaciones web." -#: ../Doc/howto/logging-cookbook.rst:946 +#: ../Doc/howto/logging-cookbook.rst:1010 msgid "" "For the purposes of illustration, say that you have different web " "applications, each independent of the other but running in the same Python " @@ -768,11 +903,11 @@ msgstr "" "IP del cliente, el método de solicitud HTTP y el nombre de usuario del " "cliente?" -#: ../Doc/howto/logging-cookbook.rst:953 +#: ../Doc/howto/logging-cookbook.rst:1017 msgid "Let's assume that the library can be simulated by the following code:" msgstr "Supongamos que la biblioteca se puede simular con el siguiente código:" -#: ../Doc/howto/logging-cookbook.rst:969 +#: ../Doc/howto/logging-cookbook.rst:1033 msgid "" "We can simulate the multiple web applications by means of two simple " "classes, ``Request`` and ``WebApp``. These simulate how real threaded web " @@ -782,7 +917,7 @@ msgstr "" "``Request`` y ``WebApp``. Éstas simulan cómo funcionan las aplicaciones web " "reales con hilos, cada petición es manejada por un hilo:" -#: ../Doc/howto/logging-cookbook.rst:1113 +#: ../Doc/howto/logging-cookbook.rst:1177 msgid "" "If you run the above, you should find that roughly half the requests go " "into :file:`app1.log` and the rest into :file:`app2.log`, and the all the " @@ -801,11 +936,11 @@ msgstr "" "ficticia aparecerá siempre junta en una línea de log). Esto se ilustra con " "la siguiente salida del shell:" -#: ../Doc/howto/logging-cookbook.rst:1160 +#: ../Doc/howto/logging-cookbook.rst:1224 msgid "Imparting contextual information in handlers" msgstr "Impartir información contextual en los gestores" -#: ../Doc/howto/logging-cookbook.rst:1162 +#: ../Doc/howto/logging-cookbook.rst:1226 msgid "" "Each :class:`~Handler` has its own chain of filters. If you want to add " "contextual information to a :class:`LogRecord` without leaking it to other " @@ -818,14 +953,14 @@ msgstr "" "`~LogRecord` en lugar de modificarlo in situ, como se muestra en el " "siguiente script::" -#: ../Doc/howto/logging-cookbook.rst:1189 +#: ../Doc/howto/logging-cookbook.rst:1253 msgid "Logging to a single file from multiple processes" msgstr "Logging a un sólo archivo desde múltiples procesos" # Traté de refrasear las primeras oraciones para que no sea super repetitivo. # No tengo claro cómo es todo el tema de socket y si está bien traducido # "socket server", "working socket". -#: ../Doc/howto/logging-cookbook.rst:1191 +#: ../Doc/howto/logging-cookbook.rst:1255 msgid "" "Although logging is thread-safe, and logging to a single file from multiple " "threads in a single process *is* supported, logging to a single file from " @@ -853,7 +988,7 @@ msgstr "" "más detalle e incluye un receptor socket que funciona que se puede utilizar " "como punto de partida para que se adapte a sus propias aplicaciones." -#: ../Doc/howto/logging-cookbook.rst:1204 +#: ../Doc/howto/logging-cookbook.rst:1268 msgid "" "You could also write your own handler which uses the :class:" "`~multiprocessing.Lock` class from the :mod:`multiprocessing` module to " @@ -871,7 +1006,7 @@ msgstr "" "el módulo :mod:`multiprocessing` no proporciona la funcionalidad de bloqueo " "de trabajo en todas las plataformas (ver https://bugs.python.org/issue3770)." -#: ../Doc/howto/logging-cookbook.rst:1214 +#: ../Doc/howto/logging-cookbook.rst:1278 msgid "" "Alternatively, you can use a ``Queue`` and a :class:`QueueHandler` to send " "all logging events to one of the processes in your multi-process " @@ -897,7 +1032,7 @@ msgstr "" "su aplicación. Y se puede utilizar como base para el código que cumpla con " "sus propios requisitos específicos::" -#: ../Doc/howto/logging-cookbook.rst:1330 +#: ../Doc/howto/logging-cookbook.rst:1394 msgid "" "A variant of the above script keeps the logging in the main process, in a " "separate thread::" @@ -905,7 +1040,7 @@ msgstr "" "Una variante del script anterior mantiene el logging en el proceso " "principal, en un hilo separado::" -#: ../Doc/howto/logging-cookbook.rst:1425 +#: ../Doc/howto/logging-cookbook.rst:1489 msgid "" "This variant shows how you can e.g. apply configuration for particular " "loggers - e.g. the ``foo`` logger has a special handler which stores all " @@ -921,11 +1056,11 @@ msgstr "" "principal (aunque los eventos logging se generen en los procesos de trabajo) " "para dirigir los mensajes a los destinos apropiados." -#: ../Doc/howto/logging-cookbook.rst:1432 +#: ../Doc/howto/logging-cookbook.rst:1496 msgid "Using concurrent.futures.ProcessPoolExecutor" msgstr "Usando concurrent.futures.ProcessPoolExecutor" -#: ../Doc/howto/logging-cookbook.rst:1434 +#: ../Doc/howto/logging-cookbook.rst:1498 msgid "" "If you want to use :class:`concurrent.futures.ProcessPoolExecutor` to start " "your worker processes, you need to create the queue slightly differently. " @@ -935,23 +1070,23 @@ msgstr "" "iniciar sus procesos de trabajo, debe crear la cola de manera ligeramente " "diferente. En vez de" -#: ../Doc/howto/logging-cookbook.rst:1442 +#: ../Doc/howto/logging-cookbook.rst:1506 msgid "you should use" msgstr "debería usar" -#: ../Doc/howto/logging-cookbook.rst:1448 +#: ../Doc/howto/logging-cookbook.rst:1512 msgid "and you can then replace the worker creation from this::" msgstr "y luego puede reemplazar la creación del trabajador de esto::" -#: ../Doc/howto/logging-cookbook.rst:1459 +#: ../Doc/howto/logging-cookbook.rst:1523 msgid "to this (remembering to first import :mod:`concurrent.futures`)::" msgstr "a esto (recuerda el primer *import* :mod:`concurrent.futures`)::" -#: ../Doc/howto/logging-cookbook.rst:1466 +#: ../Doc/howto/logging-cookbook.rst:1530 msgid "Deploying Web applications using Gunicorn and uWSGI" msgstr "Despliegue de aplicaciones web con Gunicorn y uWSGI" -#: ../Doc/howto/logging-cookbook.rst:1468 +#: ../Doc/howto/logging-cookbook.rst:1532 msgid "" "When deploying Web applications using `Gunicorn `_ or " "`uWSGI `_ (or similar), " @@ -972,18 +1107,18 @@ msgstr "" "de procesos como Supervisor - vea `Running a logging socket listener in " "production`_ para más detalles." -#: ../Doc/howto/logging-cookbook.rst:1478 +#: ../Doc/howto/logging-cookbook.rst:1542 msgid "Using file rotation" msgstr "Usando rotación de archivos" -#: ../Doc/howto/logging-cookbook.rst:1483 +#: ../Doc/howto/logging-cookbook.rst:1547 +#, fuzzy msgid "" "Sometimes you want to let a log file grow to a certain size, then open a new " "file and log to that. You may want to keep a certain number of these files, " "and when that many files have been created, rotate the files so that the " "number of files and the size of the files both remain bounded. For this " -"usage pattern, the logging package provides a :class:`~handlers." -"RotatingFileHandler`::" +"usage pattern, the logging package provides a :class:`RotatingFileHandler`::" msgstr "" "A veces, se desea dejar que un archivo de log crezca hasta cierto tamaño y " "luego abra un nuevo archivo e inicie sesión en él. Es posible que desee " @@ -992,7 +1127,7 @@ msgstr "" "tamaño de los archivos permanezcan limitados. Para este patrón de uso, el " "paquete logging proporciona :class:`~handlers.RotatingFileHandler`::" -#: ../Doc/howto/logging-cookbook.rst:1515 +#: ../Doc/howto/logging-cookbook.rst:1579 msgid "" "The result should be 6 separate files, each with part of the log history for " "the application:" @@ -1000,7 +1135,7 @@ msgstr "" "El resultado debe ser 6 archivos separados, cada uno con parte del historial " "de log de la aplicación:" -#: ../Doc/howto/logging-cookbook.rst:1527 +#: ../Doc/howto/logging-cookbook.rst:1591 msgid "" "The most current file is always :file:`logging_rotatingfile_example.out`, " "and each time it reaches the size limit it is renamed with the suffix " @@ -1013,7 +1148,7 @@ msgstr "" "existentes para incrementar el sufijo (``.1`` se convierte en ``.2``, etc.) " "y se borra el archivo ``.6``." -#: ../Doc/howto/logging-cookbook.rst:1532 +#: ../Doc/howto/logging-cookbook.rst:1596 msgid "" "Obviously this example sets the log length much too small as an extreme " "example. You would want to set *maxBytes* to an appropriate value." @@ -1022,11 +1157,11 @@ msgstr "" "como un ejemplo extremo. Se querrá establecer *maxBytes* en un valor " "apropiado." -#: ../Doc/howto/logging-cookbook.rst:1538 +#: ../Doc/howto/logging-cookbook.rst:1604 msgid "Use of alternative formatting styles" msgstr "Uso de estilos de formato alternativos" -#: ../Doc/howto/logging-cookbook.rst:1540 +#: ../Doc/howto/logging-cookbook.rst:1606 #, python-format msgid "" "When logging was added to the Python standard library, the only way of " @@ -1041,7 +1176,7 @@ msgstr "" "`string.Template` (agregado en Python 2.4) y :meth:`str.format` (agregado en " "Python 2.6)." -#: ../Doc/howto/logging-cookbook.rst:1546 +#: ../Doc/howto/logging-cookbook.rst:1612 msgid "" "Logging (as of 3.2) provides improved support for these two additional " "formatting styles. The :class:`Formatter` class been enhanced to take an " @@ -1064,7 +1199,7 @@ msgstr "" "que funcionan con :meth:`str.format` o :class:`string.Template`. Aquí hay " "una sesión de consola de ejemplo para mostrar las posibilidades:" -#: ../Doc/howto/logging-cookbook.rst:1580 +#: ../Doc/howto/logging-cookbook.rst:1646 #, python-format msgid "" "Note that the formatting of logging messages for final output to logs is " @@ -1075,7 +1210,7 @@ msgstr "" "completamente independiente de cómo se construye un mensaje de logging " "individual. Para eso todavía puede usar el formateo %, como se muestra aquí:" -#: ../Doc/howto/logging-cookbook.rst:1588 +#: ../Doc/howto/logging-cookbook.rst:1654 #, python-format msgid "" "Logging calls (``logger.debug()``, ``logger.info()`` etc.) only take " @@ -1105,7 +1240,7 @@ msgstr "" "compatibilidad con versiones anteriores, ya que todas las llamadas de " "logging que están en el código existente usarán cadenas de formato %." -#: ../Doc/howto/logging-cookbook.rst:1601 +#: ../Doc/howto/logging-cookbook.rst:1667 msgid "" "There is, however, a way that you can use {}- and $- formatting to construct " "your individual log messages. Recall that for a message you can use an " @@ -1120,7 +1255,7 @@ msgstr "" "objeto para obtener la cadena de caracteres de formato real. Considere las " "siguientes dos clases::" -#: ../Doc/howto/logging-cookbook.rst:1625 +#: ../Doc/howto/logging-cookbook.rst:1691 #, python-format msgid "" "Either of these can be used in place of a format string, to allow {}- or $-" @@ -1140,7 +1275,7 @@ msgstr "" "confundir con _, el subrayado simple usado como sinónimo/alias para :func:" "`gettext.gettext` o sus hermanos)." -#: ../Doc/howto/logging-cookbook.rst:1633 +#: ../Doc/howto/logging-cookbook.rst:1699 msgid "" "The above classes are not included in Python, though they're easy enough to " "copy and paste into your own code. They can be used as follows (assuming " @@ -1151,7 +1286,7 @@ msgstr "" "siguiente manera (asumiendo que están declaradas en un módulo llamado " "``wherever``):" -#: ../Doc/howto/logging-cookbook.rst:1655 +#: ../Doc/howto/logging-cookbook.rst:1721 msgid "" "While the above examples use ``print()`` to show how the formatting works, " "you would of course use ``logger.debug()`` or similar to actually log using " @@ -1161,7 +1296,8 @@ msgstr "" "el formateo, por supuesto usaría ``logger.debug()`` o similar para realmente " "registrar usando este enfoque." -#: ../Doc/howto/logging-cookbook.rst:1659 +#: ../Doc/howto/logging-cookbook.rst:1725 +#, fuzzy msgid "" "One thing to note is that you pay no significant performance penalty with " "this approach: the actual formatting happens not when you make the logging " @@ -1169,7 +1305,7 @@ msgid "" "a log by a handler. So the only slightly unusual thing which might trip you " "up is that the parentheses go around the format string and the arguments, " "not just the format string. That's because the __ notation is just syntax " -"sugar for a constructor call to one of the XXXMessage classes." +"sugar for a constructor call to one of the :samp:`{XXX}Message` classes." msgstr "" "Una cosa a tener en cuenta es que no paga una penalización de rendimiento " "significativa con este enfoque: el formateo real no ocurre cuando realiza la " @@ -1180,7 +1316,7 @@ msgstr "" "solo azúcar sintáctico para una llamada de constructor a una de las clases " "XXXMessage." -#: ../Doc/howto/logging-cookbook.rst:1667 +#: ../Doc/howto/logging-cookbook.rst:1733 msgid "" "If you prefer, you can use a :class:`LoggerAdapter` to achieve a similar " "effect to the above, as in the following example::" @@ -1188,7 +1324,7 @@ msgstr "" "Si lo prefiere, puede usar :class:`LoggerAdapter` para lograr un efecto " "similar al anterior, como en el siguiente ejemplo::" -#: ../Doc/howto/logging-cookbook.rst:1698 +#: ../Doc/howto/logging-cookbook.rst:1764 msgid "" "The above script should log the message ``Hello, world!`` when run with " "Python 3.2 or later." @@ -1196,11 +1332,11 @@ msgstr "" "El script anterior debería registrar el mensaje ``Hello, world!`` Cuando se " "ejecuta con Python 3.2 o posterior." -#: ../Doc/howto/logging-cookbook.rst:1707 +#: ../Doc/howto/logging-cookbook.rst:1773 msgid "Customizing ``LogRecord``" msgstr "Personalización de ``LogRecord``" -#: ../Doc/howto/logging-cookbook.rst:1709 +#: ../Doc/howto/logging-cookbook.rst:1775 msgid "" "Every logging event is represented by a :class:`LogRecord` instance. When an " "event is logged and not filtered out by a logger's level, a :class:" @@ -1218,7 +1354,7 @@ msgstr "" "la jerarquía). Antes de Python 3.2, solo había dos lugares donde se " "realizaba esta creación:" -#: ../Doc/howto/logging-cookbook.rst:1716 +#: ../Doc/howto/logging-cookbook.rst:1782 msgid "" ":meth:`Logger.makeRecord`, which is called in the normal process of logging " "an event. This invoked :class:`LogRecord` directly to create an instance." @@ -1227,7 +1363,7 @@ msgstr "" "un evento. Esto invoca :class:`LogRecord` directamente para crear una " "instancia." -#: ../Doc/howto/logging-cookbook.rst:1719 +#: ../Doc/howto/logging-cookbook.rst:1785 msgid "" ":func:`makeLogRecord`, which is called with a dictionary containing " "attributes to be added to the LogRecord. This is typically invoked when a " @@ -1241,7 +1377,7 @@ msgstr "" "forma de *pickle* a través de :class:`~handlers.SocketHandler`, o en formato " "JSON a través de :class:`~handlers.HTTPHandler`)." -#: ../Doc/howto/logging-cookbook.rst:1725 +#: ../Doc/howto/logging-cookbook.rst:1791 msgid "" "This has usually meant that if you need to do anything special with a :class:" "`LogRecord`, you've had to do one of the following." @@ -1249,7 +1385,7 @@ msgstr "" "Por lo general, esto significa que si necesita hacer algo especial con :" "class:`LogRecord`, debe hacer una de las siguientes cosas." -#: ../Doc/howto/logging-cookbook.rst:1728 +#: ../Doc/howto/logging-cookbook.rst:1794 msgid "" "Create your own :class:`Logger` subclass, which overrides :meth:`Logger." "makeRecord`, and set it using :func:`~logging.setLoggerClass` before any " @@ -1259,7 +1395,7 @@ msgstr "" "makeRecord`, y configúrelo usando :func:`~logging.setLoggerClass` antes de " "que se creen instancias de los registradores que le interesan." -#: ../Doc/howto/logging-cookbook.rst:1731 +#: ../Doc/howto/logging-cookbook.rst:1797 msgid "" "Add a :class:`Filter` to a logger or handler, which does the necessary " "special manipulation you need when its :meth:`~Filter.filter` method is " @@ -1269,7 +1405,7 @@ msgstr "" "manipulación especial necesaria que necesita cuando se llama a su método :" "meth:`~Filter.filter`." -#: ../Doc/howto/logging-cookbook.rst:1735 +#: ../Doc/howto/logging-cookbook.rst:1801 msgid "" "The first approach would be a little unwieldy in the scenario where (say) " "several different libraries wanted to do different things. Each would " @@ -1281,7 +1417,7 @@ msgstr "" "Cada uno intentaría establecer su propia subclase :class:`Logger`, y el que " "hiciera esto último ganaría." -#: ../Doc/howto/logging-cookbook.rst:1740 +#: ../Doc/howto/logging-cookbook.rst:1806 msgid "" "The second approach works reasonably well for many cases, but does not allow " "you to e.g. use a specialized subclass of :class:`LogRecord`. Library " @@ -1296,7 +1432,7 @@ msgstr "" "introduzcan un nuevo registrador (lo que harían simplemente agregando nuevos " "paquetes o módulos y haciendo ::" -#: ../Doc/howto/logging-cookbook.rst:1748 +#: ../Doc/howto/logging-cookbook.rst:1814 msgid "" "at module level). It's probably one too many things to think about. " "Developers could also add the filter to a :class:`~logging.NullHandler` " @@ -1312,7 +1448,7 @@ msgstr "" "registrador de biblioteca de nivel inferior --- así que la salida de ese " "gestor no reflejaría las intenciones del desarrollador de la biblioteca." -#: ../Doc/howto/logging-cookbook.rst:1754 +#: ../Doc/howto/logging-cookbook.rst:1820 msgid "" "In Python 3.2 and later, :class:`~logging.LogRecord` creation is done " "through a factory, which you can specify. The factory is just a callable you " @@ -1329,7 +1465,7 @@ msgstr "" "LogRecord`, ya que :class:`LogRecord` es la configuración predeterminada de " "la fábrica." -#: ../Doc/howto/logging-cookbook.rst:1761 +#: ../Doc/howto/logging-cookbook.rst:1827 msgid "" "This approach allows a custom factory to control all aspects of LogRecord " "creation. For example, you could return a subclass, or just add some " @@ -1341,7 +1477,7 @@ msgstr "" "subclase, o simplemente agregar algunos atributos adicionales al registro " "una vez creado, usando un patrón similar a este::" -#: ../Doc/howto/logging-cookbook.rst:1774 +#: ../Doc/howto/logging-cookbook.rst:1840 msgid "" "This pattern allows different libraries to chain factories together, and as " "long as they don't overwrite each other's attributes or unintentionally " @@ -1358,11 +1494,11 @@ msgstr "" "de logging, y la técnica solo debe usarse cuando el uso de :class:`Filter` " "no proporciona el resultado deseado." -#: ../Doc/howto/logging-cookbook.rst:1785 +#: ../Doc/howto/logging-cookbook.rst:1852 msgid "Subclassing QueueHandler - a ZeroMQ example" msgstr "Subclasificación QueueHandler - un ejemplo de ZeroMQ" -#: ../Doc/howto/logging-cookbook.rst:1787 +#: ../Doc/howto/logging-cookbook.rst:1854 msgid "" "You can use a :class:`QueueHandler` subclass to send messages to other kinds " "of queues, for example a ZeroMQ 'publish' socket. In the example below,the " @@ -1373,7 +1509,7 @@ msgstr "" "siguiente ejemplo, el socket se crea por separado y se pasa al gestor (como " "su 'cola')::" -#: ../Doc/howto/logging-cookbook.rst:1806 +#: ../Doc/howto/logging-cookbook.rst:1873 msgid "" "Of course there are other ways of organizing this, for example passing in " "the data needed by the handler to create the socket::" @@ -1381,11 +1517,11 @@ msgstr "" "Por supuesto, hay otras formas de organizar esto, por ejemplo, pasando los " "datos que necesita el gestor para crear el socket::" -#: ../Doc/howto/logging-cookbook.rst:1824 +#: ../Doc/howto/logging-cookbook.rst:1891 msgid "Subclassing QueueListener - a ZeroMQ example" msgstr "Subclasificación QueueListener - un ejemplo de ZeroMQ" -#: ../Doc/howto/logging-cookbook.rst:1826 +#: ../Doc/howto/logging-cookbook.rst:1893 msgid "" "You can also subclass :class:`QueueListener` to get messages from other " "kinds of queues, for example a ZeroMQ 'subscribe' socket. Here's an example::" @@ -1394,49 +1530,49 @@ msgstr "" "otros tipos de colas, por ejemplo, un socket de 'suscripción' de ZeroMQ. " "Aquí tienes un ejemplo::" -#: ../Doc/howto/logging-cookbook.rst:1845 -#: ../Doc/howto/logging-cookbook.rst:3865 +#: ../Doc/howto/logging-cookbook.rst:1912 +#: ../Doc/howto/logging-cookbook.rst:3955 msgid "Module :mod:`logging`" msgstr "Módulo :mod:`logging`" -#: ../Doc/howto/logging-cookbook.rst:1845 -#: ../Doc/howto/logging-cookbook.rst:3865 +#: ../Doc/howto/logging-cookbook.rst:1912 +#: ../Doc/howto/logging-cookbook.rst:3955 msgid "API reference for the logging module." msgstr "Referencia de API para el módulo logging." -#: ../Doc/howto/logging-cookbook.rst:1848 -#: ../Doc/howto/logging-cookbook.rst:3868 +#: ../Doc/howto/logging-cookbook.rst:1915 +#: ../Doc/howto/logging-cookbook.rst:3958 msgid "Module :mod:`logging.config`" msgstr "Módulo :mod:`logging.config`" -#: ../Doc/howto/logging-cookbook.rst:1848 -#: ../Doc/howto/logging-cookbook.rst:3868 +#: ../Doc/howto/logging-cookbook.rst:1915 +#: ../Doc/howto/logging-cookbook.rst:3958 msgid "Configuration API for the logging module." msgstr "API de configuración para el módulo logging." -#: ../Doc/howto/logging-cookbook.rst:1851 -#: ../Doc/howto/logging-cookbook.rst:3871 +#: ../Doc/howto/logging-cookbook.rst:1918 +#: ../Doc/howto/logging-cookbook.rst:3961 msgid "Module :mod:`logging.handlers`" msgstr "Módulo :mod:`logging.handlers`" -#: ../Doc/howto/logging-cookbook.rst:1851 -#: ../Doc/howto/logging-cookbook.rst:3871 +#: ../Doc/howto/logging-cookbook.rst:1918 +#: ../Doc/howto/logging-cookbook.rst:3961 msgid "Useful handlers included with the logging module." msgstr "Gestores útiles incluidos con el módulo logging." -#: ../Doc/howto/logging-cookbook.rst:1853 +#: ../Doc/howto/logging-cookbook.rst:1920 msgid ":ref:`A basic logging tutorial `" msgstr ":ref:`Un tutorial básico de logging `" -#: ../Doc/howto/logging-cookbook.rst:1855 +#: ../Doc/howto/logging-cookbook.rst:1922 msgid ":ref:`A more advanced logging tutorial `" msgstr ":ref:`Un tutorial de logging más avanzado `" -#: ../Doc/howto/logging-cookbook.rst:1859 +#: ../Doc/howto/logging-cookbook.rst:1928 msgid "An example dictionary-based configuration" msgstr "Una configuración de ejemplo basada en diccionario" -#: ../Doc/howto/logging-cookbook.rst:1861 +#: ../Doc/howto/logging-cookbook.rst:1930 msgid "" "Below is an example of a logging configuration dictionary - it's taken from " "the `documentation on the Django project `_ de la documentación de Django." -#: ../Doc/howto/logging-cookbook.rst:1924 +#: ../Doc/howto/logging-cookbook.rst:1993 msgid "Using a rotator and namer to customize log rotation processing" msgstr "" "Usar un rotador y un nombre para personalizar el procesamiento de rotación " "de log" -#: ../Doc/howto/logging-cookbook.rst:1926 +#: ../Doc/howto/logging-cookbook.rst:1995 +#, fuzzy msgid "" "An example of how you can define a namer and rotator is given in the " -"following snippet, which shows zlib-based compression of the log file::" +"following runnable script, which shows gzip compression of the log file::" msgstr "" "Un ejemplo de cómo puede definir un nombre y un rotador se da en el " "siguiente fragmento, que muestra la compresión basada en zlib del archivo de " "log::" -#: ../Doc/howto/logging-cookbook.rst:1944 +#: ../Doc/howto/logging-cookbook.rst:2026 msgid "" -"These are not \"true\" .gz files, as they are bare compressed data, with no " -"\"container\" such as you’d find in an actual gzip file. This snippet is " -"just for illustration purposes." +"After running this, you will see six new files, five of which are compressed:" msgstr "" -"Estos no son archivos .gz \"verdaderos\", ya que son datos comprimidos sin " -"ningún \"contenedor\" como el que encontraría en un archivo gzip real. Este " -"fragmento es solo para fines ilustrativos." -#: ../Doc/howto/logging-cookbook.rst:1949 +#: ../Doc/howto/logging-cookbook.rst:2039 msgid "A more elaborate multiprocessing example" msgstr "Un ejemplo de multiprocesamiento más elaborado" -#: ../Doc/howto/logging-cookbook.rst:1951 +#: ../Doc/howto/logging-cookbook.rst:2041 msgid "" "The following working example shows how logging can be used with " "multiprocessing using configuration files. The configurations are fairly " @@ -1500,7 +1632,7 @@ msgstr "" "bastante simples, pero sirven para ilustrar cómo se podrían implementar las " "más complejas en un escenario real de multiprocesamiento." -#: ../Doc/howto/logging-cookbook.rst:1956 +#: ../Doc/howto/logging-cookbook.rst:2046 msgid "" "In the example, the main process spawns a listener process and some worker " "processes. Each of the main process, the listener and the workers have three " @@ -1523,7 +1655,7 @@ msgstr "" "configuraciones son puramente ilustrativas, pero debería poder adaptar este " "ejemplo a su propio escenario." -#: ../Doc/howto/logging-cookbook.rst:1966 +#: ../Doc/howto/logging-cookbook.rst:2056 msgid "" "Here's the script - the docstrings and the comments hopefully explain how it " "works::" @@ -1531,11 +1663,11 @@ msgstr "" "Aquí está el script, el docstrings y los comentarios, esperemos, expliquen " "cómo funciona::" -#: ../Doc/howto/logging-cookbook.rst:2178 +#: ../Doc/howto/logging-cookbook.rst:2268 msgid "Inserting a BOM into messages sent to a SysLogHandler" msgstr "Insertar BOM en mensajes enviados a SysLogHandler" -#: ../Doc/howto/logging-cookbook.rst:2180 +#: ../Doc/howto/logging-cookbook.rst:2270 msgid "" ":rfc:`5424` requires that a Unicode message be sent to a syslog daemon as a " "set of bytes which have the following structure: an optional pure-ASCII " @@ -1549,7 +1681,7 @@ msgstr "" "seguida de Codificado en Unicode usando UTF-8. (Ver sección relevante de la " "especificación :rfc:`5424#section-6`.)" -#: ../Doc/howto/logging-cookbook.rst:2186 +#: ../Doc/howto/logging-cookbook.rst:2276 msgid "" "In Python 3.1, code was added to :class:`~logging.handlers.SysLogHandler` to " "insert a BOM into the message, but unfortunately, it was implemented " @@ -1561,7 +1693,7 @@ msgstr "" "incorrectamente, BOM aparece al principio del mensaje y, por lo tanto, no " "permite ningún componente ASCII puro para que aparezca antes." -#: ../Doc/howto/logging-cookbook.rst:2192 +#: ../Doc/howto/logging-cookbook.rst:2282 msgid "" "As this behaviour is broken, the incorrect BOM insertion code is being " "removed from Python 3.2.4 and later. However, it is not being replaced, and " @@ -1576,7 +1708,7 @@ msgstr "" "arbitrario después, codificados usando UTF-8; entonces necesita hacer lo " "siguiente:" -#: ../Doc/howto/logging-cookbook.rst:2198 +#: ../Doc/howto/logging-cookbook.rst:2288 msgid "" "Attach a :class:`~logging.Formatter` instance to your :class:`~logging." "handlers.SysLogHandler` instance, with a format string such as::" @@ -1585,7 +1717,7 @@ msgstr "" "`~logging.handlers.SysLogHandler`, con una cadena de caracteres de formato " "como::" -#: ../Doc/howto/logging-cookbook.rst:2204 +#: ../Doc/howto/logging-cookbook.rst:2294 msgid "" "The Unicode code point U+FEFF, when encoded using UTF-8, will be encoded as " "a UTF-8 BOM -- the byte-string ``b'\\xef\\xbb\\xbf'``." @@ -1593,7 +1725,7 @@ msgstr "" "El punto de código Unicode U+ FEFF, cuando se codifica usando UTF-8, se " "codificará como una BOM UTF-8, la cadena de bytes ``b'\\xef\\xbb\\xbf'``." -#: ../Doc/howto/logging-cookbook.rst:2207 +#: ../Doc/howto/logging-cookbook.rst:2297 msgid "" "Replace the ASCII section with whatever placeholders you like, but make sure " "that the data that appears in there after substitution is always ASCII (that " @@ -1604,7 +1736,7 @@ msgstr "" "siempre ASCII (de esa manera, permanecerán sin cambios después de la " "codificación UTF-8)." -#: ../Doc/howto/logging-cookbook.rst:2211 +#: ../Doc/howto/logging-cookbook.rst:2301 msgid "" "Replace the Unicode section with whatever placeholders you like; if the data " "which appears there after substitution contains characters outside the ASCII " @@ -1614,7 +1746,7 @@ msgstr "" "los datos que aparecen allí después de la sustitución contienen caracteres " "fuera del rango ASCII, está bien: se codificarán usando UTF-8." -#: ../Doc/howto/logging-cookbook.rst:2215 +#: ../Doc/howto/logging-cookbook.rst:2305 msgid "" "The formatted message *will* be encoded using UTF-8 encoding by " "``SysLogHandler``. If you follow the above rules, you should be able to " @@ -1628,11 +1760,11 @@ msgstr "" "logging no se queje, pero sus mensajes no serán compatibles con RFC 5424 y " "su demonio syslog puede quejarse." -#: ../Doc/howto/logging-cookbook.rst:2222 +#: ../Doc/howto/logging-cookbook.rst:2312 msgid "Implementing structured logging" msgstr "Implementar logging estructurado" -#: ../Doc/howto/logging-cookbook.rst:2224 +#: ../Doc/howto/logging-cookbook.rst:2314 msgid "" "Although most logging messages are intended for reading by humans, and thus " "not readily machine-parseable, there might be circumstances where you want " @@ -1652,12 +1784,12 @@ msgstr "" "varias formas de lograr esto, pero el siguiente es un enfoque simple que usa " "JSON para serializar el evento de una manera analizable por máquina:" -#: ../Doc/howto/logging-cookbook.rst:2248 +#: ../Doc/howto/logging-cookbook.rst:2338 msgid "If the above script is run, it prints:" msgstr "Si se ejecuta el script anterior, se imprime:" -#: ../Doc/howto/logging-cookbook.rst:2254 -#: ../Doc/howto/logging-cookbook.rst:2296 +#: ../Doc/howto/logging-cookbook.rst:2344 +#: ../Doc/howto/logging-cookbook.rst:2386 msgid "" "Note that the order of items might be different according to the version of " "Python used." @@ -1665,7 +1797,7 @@ msgstr "" "Tenga en cuenta que el orden de los elementos puede ser diferente según la " "versión de Python utilizada." -#: ../Doc/howto/logging-cookbook.rst:2257 +#: ../Doc/howto/logging-cookbook.rst:2347 msgid "" "If you need more specialised processing, you can use a custom JSON encoder, " "as in the following complete example::" @@ -1673,15 +1805,15 @@ msgstr "" "Si necesita un procesamiento más especializado, puede utilizar un " "codificador JSON personalizado, como en el siguiente ejemplo completo::" -#: ../Doc/howto/logging-cookbook.rst:2290 +#: ../Doc/howto/logging-cookbook.rst:2380 msgid "When the above script is run, it prints:" msgstr "Cuando se ejecuta el script anterior, se imprime:" -#: ../Doc/howto/logging-cookbook.rst:2305 +#: ../Doc/howto/logging-cookbook.rst:2395 msgid "Customizing handlers with :func:`dictConfig`" msgstr "Personalización de gestores con :func:`dictConfig`" -#: ../Doc/howto/logging-cookbook.rst:2307 +#: ../Doc/howto/logging-cookbook.rst:2397 msgid "" "There are times when you want to customize logging handlers in particular " "ways, and if you use :func:`dictConfig` you may be able to do this without " @@ -1698,7 +1830,7 @@ msgstr "" "soporte integrado. Puede personalizar la creación de gestores usando una " "función simple como::" -#: ../Doc/howto/logging-cookbook.rst:2321 +#: ../Doc/howto/logging-cookbook.rst:2411 msgid "" "You can then specify, in a logging configuration passed to :func:" "`dictConfig`, that a logging handler be created by calling this function::" @@ -1706,7 +1838,7 @@ msgstr "" "Luego puede especificar, en una configuración de logging pasada a :func:" "`dictConfig`, que se cree un gestor de logging llamando a esta función::" -#: ../Doc/howto/logging-cookbook.rst:2354 +#: ../Doc/howto/logging-cookbook.rst:2444 msgid "" "In this example I am setting the ownership using the ``pulse`` user and " "group, just for the purposes of illustration. Putting it together into a " @@ -1716,12 +1848,12 @@ msgstr "" "``pulse``, solo con fines ilustrativos. Poniéndolo junto en un script de " "trabajo, ``chowntest.py``::" -#: ../Doc/howto/logging-cookbook.rst:2401 +#: ../Doc/howto/logging-cookbook.rst:2491 msgid "To run this, you will probably need to run as ``root``:" msgstr "" "Para ejecutar esto, probablemente se necesite ejecutarlo como ``root``:" -#: ../Doc/howto/logging-cookbook.rst:2411 +#: ../Doc/howto/logging-cookbook.rst:2501 msgid "" "Note that this example uses Python 3.3 because that's where :func:`shutil." "chown` makes an appearance. This approach should work with any Python " @@ -1735,7 +1867,7 @@ msgstr "" "posterior. Con las versiones anteriores a 3.3, necesitaría implementar el " "cambio de propiedad real usando, por ejemplo, :func:`os.chown`." -#: ../Doc/howto/logging-cookbook.rst:2417 +#: ../Doc/howto/logging-cookbook.rst:2507 msgid "" "In practice, the handler-creating function may be in a utility module " "somewhere in your project. Instead of the line in the configuration::" @@ -1744,11 +1876,11 @@ msgstr "" "de utilidad en algún lugar de su proyecto. En lugar de la línea en la " "configuración::" -#: ../Doc/howto/logging-cookbook.rst:2422 +#: ../Doc/howto/logging-cookbook.rst:2512 msgid "you could use e.g.::" msgstr "podrías usar, por ejemplo,::" -#: ../Doc/howto/logging-cookbook.rst:2426 +#: ../Doc/howto/logging-cookbook.rst:2516 msgid "" "where ``project.util`` can be replaced with the actual name of the package " "where the function resides. In the above working script, using ``'ext://" @@ -1761,7 +1893,7 @@ msgstr "" "invocable real se resuelve mediante :func:`dictConfig` de la especificación " "``ext://``." -#: ../Doc/howto/logging-cookbook.rst:2431 +#: ../Doc/howto/logging-cookbook.rst:2521 msgid "" "This example hopefully also points the way to how you could implement other " "types of file change - e.g. setting specific POSIX permission bits - in the " @@ -1771,7 +1903,7 @@ msgstr "" "implementar otros tipos de cambio de archivo, por ejemplo, configurando de " "la misma manera bits de permisos POSIX específicos, usando :func:`os.chmod`." -#: ../Doc/howto/logging-cookbook.rst:2435 +#: ../Doc/howto/logging-cookbook.rst:2525 msgid "" "Of course, the approach could also be extended to types of handler other " "than a :class:`~logging.FileHandler` - for example, one of the rotating file " @@ -1781,11 +1913,11 @@ msgstr "" "distintos a :class:`~logging.FileHandler` - por ejemplo, uno de los gestores " "de archivos rotativos, o un tipo diferente por completo." -#: ../Doc/howto/logging-cookbook.rst:2445 +#: ../Doc/howto/logging-cookbook.rst:2535 msgid "Using particular formatting styles throughout your application" msgstr "Usar estilos de formato particulares en toda su aplicación" -#: ../Doc/howto/logging-cookbook.rst:2447 +#: ../Doc/howto/logging-cookbook.rst:2537 msgid "" "In Python 3.2, the :class:`~logging.Formatter` gained a ``style`` keyword " "parameter which, while defaulting to ``%`` for backward compatibility, " @@ -1803,8 +1935,8 @@ msgstr "" "de logging para la salida final a los logging y es completamente ortogonal a " "cómo se construye un mensaje de logging individual." -#: ../Doc/howto/logging-cookbook.rst:2454 -#, python-format +#: ../Doc/howto/logging-cookbook.rst:2544 +#, fuzzy, python-format msgid "" "Logging calls (:meth:`~Logger.debug`, :meth:`~Logger.info` etc.) only take " "positional parameters for the actual logging message itself, with keyword " @@ -1814,7 +1946,7 @@ msgid "" "additional contextual information to be added to the log). So you cannot " "directly make logging calls using :meth:`str.format` or :class:`string." "Template` syntax, because internally the logging package uses %-formatting " -"to merge the format string and the variable arguments. There would no " +"to merge the format string and the variable arguments. There would be no " "changing this while preserving backward compatibility, since all logging " "calls which are out there in existing code will be using %-format strings." msgstr "" @@ -1833,7 +1965,7 @@ msgstr "" "logging que están en el código existente utilizarán cadenas de caracteres " "formato %." -#: ../Doc/howto/logging-cookbook.rst:2466 +#: ../Doc/howto/logging-cookbook.rst:2556 #, python-format msgid "" "There have been suggestions to associate format styles with specific " @@ -1846,7 +1978,7 @@ msgstr "" "versiones anteriores porque cualquier código existente podría estar usando " "un nombre de *logger* dado y usando formato %." -#: ../Doc/howto/logging-cookbook.rst:2470 +#: ../Doc/howto/logging-cookbook.rst:2560 msgid "" "For logging to work interoperably between any third-party libraries and your " "code, decisions about formatting need to be made at the level of the " @@ -1858,11 +1990,11 @@ msgstr "" "nivel de la llamada de logging individual. Esto abre un par de formas en las " "que se pueden acomodar estilos de formato alternativos." -#: ../Doc/howto/logging-cookbook.rst:2477 +#: ../Doc/howto/logging-cookbook.rst:2567 msgid "Using LogRecord factories" msgstr "Uso de fábricas de LogRecord" -#: ../Doc/howto/logging-cookbook.rst:2479 +#: ../Doc/howto/logging-cookbook.rst:2569 #, python-format msgid "" "In Python 3.2, along with the :class:`~logging.Formatter` changes mentioned " @@ -1890,7 +2022,7 @@ msgstr "" "cuidado de llamar a ``str(self.msg)``, tal como lo hace la implementación " "base." -#: ../Doc/howto/logging-cookbook.rst:2490 +#: ../Doc/howto/logging-cookbook.rst:2580 msgid "" "Refer to the reference documentation on :func:`setLogRecordFactory` and :" "class:`LogRecord` for more information." @@ -1898,11 +2030,11 @@ msgstr "" "Consulte la documentación de referencia en :func:`setLogRecordFactory` y :" "class:`LogRecord` para obtener más información." -#: ../Doc/howto/logging-cookbook.rst:2495 +#: ../Doc/howto/logging-cookbook.rst:2585 msgid "Using custom message objects" msgstr "Usar objetos de mensaje personalizados" -#: ../Doc/howto/logging-cookbook.rst:2497 +#: ../Doc/howto/logging-cookbook.rst:2587 msgid "" "There is another, perhaps simpler way that you can use {}- and $- formatting " "to construct your individual log messages. You may recall (from :ref:" @@ -1919,7 +2051,7 @@ msgstr "" "de logging llamará :func:`str` en ese objeto para obtener el cadena de " "formato real. Considere las siguientes dos clases:" -#: ../Doc/howto/logging-cookbook.rst:2522 +#: ../Doc/howto/logging-cookbook.rst:2612 #, python-format msgid "" "Either of these can be used in place of a format string, to allow {}- or $-" @@ -1938,7 +2070,7 @@ msgstr "" "puede hacerlo más tolerable si usa un alias como ``M`` o ``_`` para el " "mensaje (o quizás ``__``, si está utilizando ``_`` para localización)." -#: ../Doc/howto/logging-cookbook.rst:2530 +#: ../Doc/howto/logging-cookbook.rst:2620 msgid "" "Examples of this approach are given below. Firstly, formatting with :meth:" "`str.format`::" @@ -1946,11 +2078,12 @@ msgstr "" "A continuación se dan ejemplos de este enfoque. En primer lugar, formatear " "con :meth:`str.format`::" -#: ../Doc/howto/logging-cookbook.rst:2544 +#: ../Doc/howto/logging-cookbook.rst:2634 msgid "Secondly, formatting with :class:`string.Template`::" msgstr "En segundo lugar, formatear con :class:`string.Template`::" -#: ../Doc/howto/logging-cookbook.rst:2551 +#: ../Doc/howto/logging-cookbook.rst:2641 +#, fuzzy msgid "" "One thing to note is that you pay no significant performance penalty with " "this approach: the actual formatting happens not when you make the logging " @@ -1958,8 +2091,8 @@ msgid "" "a log by a handler. So the only slightly unusual thing which might trip you " "up is that the parentheses go around the format string and the arguments, " "not just the format string. That’s because the __ notation is just syntax " -"sugar for a constructor call to one of the ``XXXMessage`` classes shown " -"above." +"sugar for a constructor call to one of the :samp:`{XXX}Message` classes " +"shown above." msgstr "" "Una cosa a tener en cuenta es que no paga ninguna penalización significativa " "del rendimiento con este enfoque: el formato real no se produce cuando se " @@ -1971,11 +2104,11 @@ msgstr "" "una llamada de constructor a una de las clases ``XXXMessage`` mostradas " "anteriormente." -#: ../Doc/howto/logging-cookbook.rst:2565 +#: ../Doc/howto/logging-cookbook.rst:2655 msgid "Configuring filters with :func:`dictConfig`" msgstr "Configurar filtros con :func:`dictConfig`" -#: ../Doc/howto/logging-cookbook.rst:2567 +#: ../Doc/howto/logging-cookbook.rst:2657 msgid "" "You *can* configure filters using :func:`~logging.config.dictConfig`, though " "it might not be obvious at first glance how to do it (hence this recipe). " @@ -2001,7 +2134,7 @@ msgstr "" "proporcionar cualquier invocable que retorne una instancia :class:`~logging." "Filter`). Aquí hay un ejemplo completo:" -#: ../Doc/howto/logging-cookbook.rst:2620 +#: ../Doc/howto/logging-cookbook.rst:2710 msgid "" "This example shows how you can pass configuration data to the callable which " "constructs the instance, in the form of keyword parameters. When run, the " @@ -2011,15 +2144,15 @@ msgstr "" "que construye la instancia, en forma de parámetros de palabras clave. Cuando " "se ejecuta, se imprimirá el script anterior:" -#: ../Doc/howto/logging-cookbook.rst:2628 +#: ../Doc/howto/logging-cookbook.rst:2718 msgid "which shows that the filter is working as configured." msgstr "que muestra que el filtro está funcionando según lo configurado." -#: ../Doc/howto/logging-cookbook.rst:2630 +#: ../Doc/howto/logging-cookbook.rst:2720 msgid "A couple of extra points to note:" msgstr "Un par de puntos adicionales a tener en cuenta:" -#: ../Doc/howto/logging-cookbook.rst:2632 +#: ../Doc/howto/logging-cookbook.rst:2722 msgid "" "If you can't refer to the callable directly in the configuration (e.g. if it " "lives in a different module, and you can't import it directly where the " @@ -2035,7 +2168,7 @@ msgstr "" "externalobj`. Por ejemplo, podría haber usado el texto ``'ext://__main__." "MyFilter'`` en lugar de ``MyFilter`` en el ejemplo anterior." -#: ../Doc/howto/logging-cookbook.rst:2639 +#: ../Doc/howto/logging-cookbook.rst:2729 msgid "" "As well as for filters, this technique can also be used to configure custom " "handlers and formatters. See :ref:`logging-config-dict-userdef` for more " @@ -2049,11 +2182,11 @@ msgstr "" "el uso de objetos definidos por el usuario en su configuración, y ver arriba " "la otra receta :ref:`custom-handlers`." -#: ../Doc/howto/logging-cookbook.rst:2648 +#: ../Doc/howto/logging-cookbook.rst:2738 msgid "Customized exception formatting" msgstr "Formato de excepción personalizado" -#: ../Doc/howto/logging-cookbook.rst:2650 +#: ../Doc/howto/logging-cookbook.rst:2740 msgid "" "There might be times when you want to do customized exception formatting - " "for argument's sake, let's say you want exactly one line per logged event, " @@ -2066,11 +2199,11 @@ msgstr "" "presente. Puede hacer esto con una clase de formateador personalizada, como " "se muestra en el siguiente ejemplo::" -#: ../Doc/howto/logging-cookbook.rst:2691 +#: ../Doc/howto/logging-cookbook.rst:2781 msgid "When run, this produces a file with exactly two lines:" msgstr "Cuando se ejecuta, esto produce un archivo con exactamente dos líneas:" -#: ../Doc/howto/logging-cookbook.rst:2698 +#: ../Doc/howto/logging-cookbook.rst:2788 msgid "" "While the above treatment is simplistic, it points the way to how exception " "information can be formatted to your liking. The :mod:`traceback` module may " @@ -2080,11 +2213,11 @@ msgstr "" "puede formatear la información de excepción a su gusto. El módulo :mod:" "`traceback` puede resultar útil para necesidades más especializadas." -#: ../Doc/howto/logging-cookbook.rst:2705 +#: ../Doc/howto/logging-cookbook.rst:2795 msgid "Speaking logging messages" msgstr "Mensajes de logging hablantes" -#: ../Doc/howto/logging-cookbook.rst:2707 +#: ../Doc/howto/logging-cookbook.rst:2797 msgid "" "There might be situations when it is desirable to have logging messages " "rendered in an audible rather than a visible format. This is easy to do if " @@ -2116,7 +2249,7 @@ msgstr "" "esperando. Aquí hay un breve ejemplo que muestra el enfoque, que asume que " "el paquete TTS ``espeak`` está disponible::" -#: ../Doc/howto/logging-cookbook.rst:2749 +#: ../Doc/howto/logging-cookbook.rst:2839 msgid "" "When run, this script should say \"Hello\" and then \"Goodbye\" in a female " "voice." @@ -2124,7 +2257,7 @@ msgstr "" "Cuando se ejecute, este script debería decir \"Hola\" y luego \"Adiós\" con " "voz femenina." -#: ../Doc/howto/logging-cookbook.rst:2751 +#: ../Doc/howto/logging-cookbook.rst:2841 msgid "" "The above approach can, of course, be adapted to other TTS systems and even " "other systems altogether which can process messages via external programs " @@ -2134,11 +2267,11 @@ msgstr "" "incluso a otros sistemas que pueden procesar mensajes a través de programas " "externos ejecutados desde una línea de comando." -#: ../Doc/howto/logging-cookbook.rst:2759 +#: ../Doc/howto/logging-cookbook.rst:2849 msgid "Buffering logging messages and outputting them conditionally" msgstr "Almacenamiento en búfer de mensajes de logging y su salida condicional" -#: ../Doc/howto/logging-cookbook.rst:2761 +#: ../Doc/howto/logging-cookbook.rst:2851 msgid "" "There might be situations where you want to log messages in a temporary area " "and only output them if a certain condition occurs. For example, you may " @@ -2154,7 +2287,7 @@ msgstr "" "log con la información de depuración recopilada; pero si hay un error, desea " "toda la información de depuración información así como el error." -#: ../Doc/howto/logging-cookbook.rst:2768 +#: ../Doc/howto/logging-cookbook.rst:2858 msgid "" "Here is an example which shows how you could do this using a decorator for " "your functions where you want logging to behave this way. It makes use of " @@ -2177,7 +2310,7 @@ msgstr "" "Puede usar esta receta con una subclase más especializada de " "``MemoryHandler`` si desea un comportamiento de descarga personalizado." -#: ../Doc/howto/logging-cookbook.rst:2778 +#: ../Doc/howto/logging-cookbook.rst:2868 msgid "" "The example script has a simple function, ``foo``, which just cycles through " "all the logging levels, writing to ``sys.stderr`` to say what level it's " @@ -2192,7 +2325,7 @@ msgstr "" "los niveles ERROR y CRITICAL; de lo contrario, solo registrará en los " "niveles DEBUG, INFO y WARNING." -#: ../Doc/howto/logging-cookbook.rst:2784 +#: ../Doc/howto/logging-cookbook.rst:2874 msgid "" "The script just arranges to decorate ``foo`` with a decorator which will do " "the conditional logging that's required. The decorator takes a logger as a " @@ -2212,16 +2345,16 @@ msgstr "" "Estos están predeterminados a :class:`~logging.StreamHandler` que escribe en " "``sys.stderr``, ``logging.ERROR`` y ``100`` respectivamente." -#: ../Doc/howto/logging-cookbook.rst:2792 +#: ../Doc/howto/logging-cookbook.rst:2882 msgid "Here's the script::" msgstr "Aquí está el script::" -#: ../Doc/howto/logging-cookbook.rst:2855 +#: ../Doc/howto/logging-cookbook.rst:2945 msgid "When this script is run, the following output should be observed:" msgstr "" "Cuando se ejecuta este script, se debe observar el siguiente resultado::" -#: ../Doc/howto/logging-cookbook.rst:2885 +#: ../Doc/howto/logging-cookbook.rst:2975 msgid "" "As you can see, actual logging output only occurs when an event is logged " "whose severity is ERROR or greater, but in that case, any previous events at " @@ -2231,17 +2364,17 @@ msgstr "" "evento cuya gravedad es ERROR o mayor, pero en ese caso, también se registra " "cualquier evento anterior con una gravedad menor." -#: ../Doc/howto/logging-cookbook.rst:2889 +#: ../Doc/howto/logging-cookbook.rst:2979 msgid "You can of course use the conventional means of decoration::" msgstr "Por supuesto, puede utilizar las formas de decoración convencionales::" -#: ../Doc/howto/logging-cookbook.rst:2899 +#: ../Doc/howto/logging-cookbook.rst:2989 msgid "Sending logging messages to email, with buffering" msgstr "" "Enviando mensajes de logging al correo electrónico, con almacenamiento en " "búfer" -#: ../Doc/howto/logging-cookbook.rst:2901 +#: ../Doc/howto/logging-cookbook.rst:2991 msgid "" "To illustrate how you can send log messages via email, so that a set number " "of messages are sent per email, you can subclass :class:`~logging.handlers." @@ -2260,7 +2393,7 @@ msgstr "" "cosas por SMTP. (Ejecute el script descargado con el argumento ``-h`` para " "ver los argumentos necesarios y opcionales)." -#: ../Doc/howto/logging-cookbook.rst:2973 +#: ../Doc/howto/logging-cookbook.rst:3063 msgid "" "If you run this script and your SMTP server is correctly set up, you should " "find that it sends eleven emails to the addressee you specify. The first ten " @@ -2273,11 +2406,11 @@ msgstr "" "mensajes de log, y el undécimo tendrá dos mensajes. Eso hace 102 mensajes " "como se especifica en el script." -#: ../Doc/howto/logging-cookbook.rst:2981 +#: ../Doc/howto/logging-cookbook.rst:3071 msgid "Formatting times using UTC (GMT) via configuration" msgstr "Formateo de horas usando UTC (GMT) a través de la configuración" -#: ../Doc/howto/logging-cookbook.rst:2983 +#: ../Doc/howto/logging-cookbook.rst:3073 msgid "" "Sometimes you want to format times using UTC, which can be done using a " "class such as ``UTCFormatter``, shown below::" @@ -2285,7 +2418,7 @@ msgstr "" "A veces desea formatear las horas usando UTC, lo que se puede hacer usando " "una clase como ``UTCFormatter``, como se muestra a continuación::" -#: ../Doc/howto/logging-cookbook.rst:2992 +#: ../Doc/howto/logging-cookbook.rst:3082 msgid "" "and you can then use the ``UTCFormatter`` in your code instead of :class:" "`~logging.Formatter`. If you want to do that via configuration, you can use " @@ -2297,11 +2430,11 @@ msgstr "" "usar la API :func:`~logging.config.dictConfig` con un enfoque ilustrado por " "el siguiente ejemplo completo::" -#: ../Doc/howto/logging-cookbook.rst:3035 +#: ../Doc/howto/logging-cookbook.rst:3125 msgid "When this script is run, it should print something like:" msgstr "Cuando se ejecuta este script, debería imprimir algo como:" -#: ../Doc/howto/logging-cookbook.rst:3042 +#: ../Doc/howto/logging-cookbook.rst:3132 msgid "" "showing how the time is formatted both as local time and UTC, one for each " "handler." @@ -2309,11 +2442,11 @@ msgstr "" "mostrando cómo se formatea la hora como hora local y UTC, una para cada " "gestor." -#: ../Doc/howto/logging-cookbook.rst:3049 +#: ../Doc/howto/logging-cookbook.rst:3139 msgid "Using a context manager for selective logging" msgstr "Usar un administrador de contexto para logging selectivo" -#: ../Doc/howto/logging-cookbook.rst:3051 +#: ../Doc/howto/logging-cookbook.rst:3141 msgid "" "There are times when it would be useful to temporarily change the logging " "configuration and revert it back after doing something. For this, a context " @@ -2330,7 +2463,7 @@ msgstr "" "logging y agregar un gestor de logging exclusivamente en el alcance del " "administrador de contexto::" -#: ../Doc/howto/logging-cookbook.rst:3084 +#: ../Doc/howto/logging-cookbook.rst:3174 msgid "" "If you specify a level value, the logger's level is set to that value in the " "scope of the with block covered by the context manager. If you specify a " @@ -2345,7 +2478,7 @@ msgstr "" "administrador que cierre el gestor por usted al salir del bloque si ya no lo " "necesita." -#: ../Doc/howto/logging-cookbook.rst:3090 +#: ../Doc/howto/logging-cookbook.rst:3180 msgid "" "To illustrate how it works, we can add the following block of code to the " "above::" @@ -2353,7 +2486,7 @@ msgstr "" "Para ilustrar cómo funciona, podemos agregar el siguiente bloque de código " "al anterior::" -#: ../Doc/howto/logging-cookbook.rst:3108 +#: ../Doc/howto/logging-cookbook.rst:3198 msgid "" "We initially set the logger's level to ``INFO``, so message #1 appears and " "message #2 doesn't. We then change the level to ``DEBUG`` temporarily in the " @@ -2378,11 +2511,11 @@ msgstr "" "mensaje #6 (como el mensaje #1) mientras que el mensaje #7 no (como el " "mensaje #2)." -#: ../Doc/howto/logging-cookbook.rst:3118 +#: ../Doc/howto/logging-cookbook.rst:3208 msgid "If we run the resulting script, the result is as follows:" msgstr "Si ejecutamos el script resultante, el resultado es el siguiente:" -#: ../Doc/howto/logging-cookbook.rst:3129 +#: ../Doc/howto/logging-cookbook.rst:3219 msgid "" "If we run it again, but pipe ``stderr`` to ``/dev/null``, we see the " "following, which is the only message written to ``stdout``:" @@ -2390,11 +2523,11 @@ msgstr "" "Si lo ejecutamos de nuevo, pero dirigimos ``stderr`` a ``/dev/null``, vemos " "lo siguiente, que es el único mensaje escrito en ``stdout``:" -#: ../Doc/howto/logging-cookbook.rst:3137 +#: ../Doc/howto/logging-cookbook.rst:3227 msgid "Once again, but piping ``stdout`` to ``/dev/null``, we get:" msgstr "Una vez más, pero canalizando ``stdout`` a ``/dev/null``, obtenemos:" -#: ../Doc/howto/logging-cookbook.rst:3147 +#: ../Doc/howto/logging-cookbook.rst:3237 msgid "" "In this case, the message #5 printed to ``stdout`` doesn't appear, as " "expected." @@ -2402,7 +2535,7 @@ msgstr "" "En este caso, el mensaje #5 impreso en ``stdout`` no aparece, como se " "esperaba." -#: ../Doc/howto/logging-cookbook.rst:3149 +#: ../Doc/howto/logging-cookbook.rst:3239 msgid "" "Of course, the approach described here can be generalised, for example to " "attach logging filters temporarily. Note that the above code works in Python " @@ -2412,20 +2545,20 @@ msgstr "" "para adjuntar filtros de logging temporalmente. Tenga en cuenta que el " "código anterior funciona tanto en Python 2 como en Python 3." -#: ../Doc/howto/logging-cookbook.rst:3157 +#: ../Doc/howto/logging-cookbook.rst:3247 msgid "A CLI application starter template" msgstr "Una plantilla de inicio de aplicación CLI" -#: ../Doc/howto/logging-cookbook.rst:3159 +#: ../Doc/howto/logging-cookbook.rst:3249 msgid "Here's an example which shows how you can:" msgstr "Aquí hay un ejemplo que muestra cómo puede:" -#: ../Doc/howto/logging-cookbook.rst:3161 +#: ../Doc/howto/logging-cookbook.rst:3251 msgid "Use a logging level based on command-line arguments" msgstr "" "Utilizar un nivel de logging basado en argumentos de la línea de comandos" -#: ../Doc/howto/logging-cookbook.rst:3162 +#: ../Doc/howto/logging-cookbook.rst:3252 msgid "" "Dispatch to multiple subcommands in separate files, all logging at the same " "level in a consistent way" @@ -2433,11 +2566,11 @@ msgstr "" "Enviar a varios subcomandos en archivos separados, todos registrando en el " "mismo nivel de forma coherente" -#: ../Doc/howto/logging-cookbook.rst:3164 +#: ../Doc/howto/logging-cookbook.rst:3254 msgid "Make use of simple, minimal configuration" msgstr "Utilizar una configuración mínima y sencilla" -#: ../Doc/howto/logging-cookbook.rst:3166 +#: ../Doc/howto/logging-cookbook.rst:3256 msgid "" "Suppose we have a command-line application whose job is to stop, start or " "restart some services. This could be organised for the purposes of " @@ -2456,7 +2589,7 @@ msgstr "" "por defecto en ``logging.INFO``. Aquí hay una forma en que se podría " "escribir ``app.py``::" -#: ../Doc/howto/logging-cookbook.rst:3215 +#: ../Doc/howto/logging-cookbook.rst:3305 msgid "" "And the ``start``, ``stop`` and ``restart`` commands can be implemented in " "separate modules, like so for starting::" @@ -2464,15 +2597,15 @@ msgstr "" "Y los comandos ``start``, ``stop`` y ``reiniciar`` se pueden implementar en " "módulos separados, como para iniciar::" -#: ../Doc/howto/logging-cookbook.rst:3228 +#: ../Doc/howto/logging-cookbook.rst:3318 msgid "and thus for stopping::" msgstr "y así para detener::" -#: ../Doc/howto/logging-cookbook.rst:3249 +#: ../Doc/howto/logging-cookbook.rst:3339 msgid "and similarly for restarting::" msgstr "y de manera similar para reiniciar::" -#: ../Doc/howto/logging-cookbook.rst:3270 +#: ../Doc/howto/logging-cookbook.rst:3360 msgid "" "If we run this application with the default log level, we get output like " "this:" @@ -2480,7 +2613,7 @@ msgstr "" "Si ejecutamos esta aplicación con el nivel de log predeterminado, obtenemos " "un resultado como este:" -#: ../Doc/howto/logging-cookbook.rst:3283 +#: ../Doc/howto/logging-cookbook.rst:3373 msgid "" "The first word is the logging level, and the second word is the module or " "package name of the place where the event was logged." @@ -2488,7 +2621,7 @@ msgstr "" "La primera palabra es el nivel de logging y la segunda palabra es el nombre " "del módulo o paquete del lugar donde se registró el evento." -#: ../Doc/howto/logging-cookbook.rst:3286 +#: ../Doc/howto/logging-cookbook.rst:3376 msgid "" "If we change the logging level, then we can change the information sent to " "the log. For example, if we want more information:" @@ -2496,11 +2629,11 @@ msgstr "" "Si cambiamos el nivel de logging, podemos cambiar la información enviada al " "log. Por ejemplo, si queremos más información:" -#: ../Doc/howto/logging-cookbook.rst:3303 +#: ../Doc/howto/logging-cookbook.rst:3393 msgid "And if we want less:" msgstr "Y si queremos menos:" -#: ../Doc/howto/logging-cookbook.rst:3311 +#: ../Doc/howto/logging-cookbook.rst:3401 msgid "" "In this case, the commands don't print anything to the console, since " "nothing at ``WARNING`` level or above is logged by them." @@ -2508,11 +2641,11 @@ msgstr "" "En este caso, los comandos no imprimen nada en la consola, ya que no " "registran nada en el nivel de ``WARNING`` o superior." -#: ../Doc/howto/logging-cookbook.rst:3317 +#: ../Doc/howto/logging-cookbook.rst:3407 msgid "A Qt GUI for logging" msgstr "Una GUI de Qt para logging" -#: ../Doc/howto/logging-cookbook.rst:3319 +#: ../Doc/howto/logging-cookbook.rst:3409 msgid "" "A question that comes up from time to time is about how to log to a GUI " "application. The `Qt `_ framework is a popular cross-" @@ -2525,7 +2658,7 @@ msgstr "" "pypi.org/project/PySide2/>`_ o librerías `PyQt5 `_." -#: ../Doc/howto/logging-cookbook.rst:3325 +#: ../Doc/howto/logging-cookbook.rst:3415 msgid "" "The following example shows how to log to a Qt GUI. This introduces a simple " "``QtHandler`` class which takes a callable, which should be a slot in the " @@ -2543,7 +2676,7 @@ msgstr "" "plano (aquí, simplemente registrando mensajes en niveles aleatorios con " "aleatorio breves retrasos intermedios)." -#: ../Doc/howto/logging-cookbook.rst:3332 +#: ../Doc/howto/logging-cookbook.rst:3422 msgid "" "The worker thread is implemented using Qt's ``QThread`` class rather than " "the :mod:`threading` module, as there are circumstances where one has to use " @@ -2554,7 +2687,7 @@ msgstr "" "que usar ``QThread``, que ofrece una mejor integración con otros componentes " "``Qt``." -#: ../Doc/howto/logging-cookbook.rst:3336 +#: ../Doc/howto/logging-cookbook.rst:3426 msgid "" "The code should work with recent releases of either ``PySide2`` or " "``PyQt5``. You should be able to adapt the approach to earlier versions of " @@ -2566,14 +2699,15 @@ msgstr "" "Consulte los comentarios en el fragmento de código para obtener información " "más detallada." -#: ../Doc/howto/logging-cookbook.rst:3550 +#: ../Doc/howto/logging-cookbook.rst:3640 msgid "Logging to syslog with RFC5424 support" msgstr "Logging en syslog con soporte RFC5424" -#: ../Doc/howto/logging-cookbook.rst:3552 +#: ../Doc/howto/logging-cookbook.rst:3642 +#, fuzzy msgid "" "Although :rfc:`5424` dates from 2009, most syslog servers are configured by " -"detault to use the older :rfc:`3164`, which hails from 2001. When " +"default to use the older :rfc:`3164`, which hails from 2001. When " "``logging`` was added to Python in 2003, it supported the earlier (and only " "existing) protocol at the time. Since RFC5424 came out, as there has not " "been widespread deployment of it in syslog servers, the :class:`~logging." @@ -2587,7 +2721,7 @@ msgstr "" "servidores de syslog, la funcionalidad :class:`~logging.handlers." "SysLogHandler` no ha sido actualizada." -#: ../Doc/howto/logging-cookbook.rst:3559 +#: ../Doc/howto/logging-cookbook.rst:3649 msgid "" "RFC 5424 contains some useful features such as support for structured data, " "and if you need to be able to log to a syslog server with support for it, " @@ -2598,7 +2732,7 @@ msgstr "" "con soporte para ello, puedes hacerlo con una subclase *handler* que se " "parezca a esto::" -#: ../Doc/howto/logging-cookbook.rst:3625 +#: ../Doc/howto/logging-cookbook.rst:3715 msgid "" "You'll need to be familiar with RFC 5424 to fully understand the above code, " "and it may be that you have slightly different needs (e.g. for how you pass " @@ -2613,11 +2747,11 @@ msgstr "" "Con el gestor anterior, usted pasaría datos estructurados usando algo como " "esto::" -#: ../Doc/howto/logging-cookbook.rst:3639 +#: ../Doc/howto/logging-cookbook.rst:3729 msgid "How to treat a logger like an output stream" msgstr "Cómo tratar un logger como una salida stream" -#: ../Doc/howto/logging-cookbook.rst:3641 +#: ../Doc/howto/logging-cookbook.rst:3731 msgid "" "Sometimes, you need to interface to a third-party API which expects a file-" "like object to write to, but you want to direct the API's output to a " @@ -2629,11 +2763,11 @@ msgstr "" "logger. Puedes hacer esto usando una clase que envuelva un logger con una " "API tipo archivo. Aquí hay un pequeño script que ilustra tal clase:" -#: ../Doc/howto/logging-cookbook.rst:3681 +#: ../Doc/howto/logging-cookbook.rst:3771 msgid "When this script is run, it prints" msgstr "Cuando se ejecuta este script, se imprime" -#: ../Doc/howto/logging-cookbook.rst:3688 +#: ../Doc/howto/logging-cookbook.rst:3778 msgid "" "You could also use ``LoggerWriter`` to redirect ``sys.stdout`` and ``sys." "stderr`` by doing something like this:" @@ -2641,7 +2775,7 @@ msgstr "" "También puedes usar ``LoggerWriter`` para redirigir ``sys.stdout`` y ``sys." "stderr`` haciendo algo así:" -#: ../Doc/howto/logging-cookbook.rst:3698 +#: ../Doc/howto/logging-cookbook.rst:3788 msgid "" "You should do this *after* configuring logging for your needs. In the above " "example, the :func:`~logging.basicConfig` call does this (using the ``sys." @@ -2654,7 +2788,7 @@ msgstr "" "una instancia de ``LoggerWriter``). Entonces, obtendrías este tipo de " "resultado:" -#: ../Doc/howto/logging-cookbook.rst:3711 +#: ../Doc/howto/logging-cookbook.rst:3801 msgid "" "Of course, the examples above show output according to the format used by :" "func:`~logging.basicConfig`, but you can use a different formatter when you " @@ -2664,7 +2798,7 @@ msgstr "" "utilizado por :func:`~logging.basicConfig`, pero puede utilizar un " "formateador diferente cuando configure logging." -#: ../Doc/howto/logging-cookbook.rst:3715 +#: ../Doc/howto/logging-cookbook.rst:3805 msgid "" "Note that with the above scheme, you are somewhat at the mercy of buffering " "and the sequence of write calls which you are intercepting. For example, " @@ -2675,14 +2809,15 @@ msgstr "" "interceptando. Por ejemplo, con la definición de ``LoggerWriter`` anterior, " "si tienes el fragmento" -#: ../Doc/howto/logging-cookbook.rst:3724 +#: ../Doc/howto/logging-cookbook.rst:3814 msgid "then running the script results in" msgstr "entonces la ejecución del script da como resultado" -#: ../Doc/howto/logging-cookbook.rst:3742 +#: ../Doc/howto/logging-cookbook.rst:3832 +#, fuzzy msgid "" "As you can see, this output isn't ideal. That's because the underlying code " -"which writes to ``sys.stderr`` makes mutiple writes, each of which results " +"which writes to ``sys.stderr`` makes multiple writes, each of which results " "in a separate logged line (for example, the last three lines above). To get " "around this problem, you need to buffer things and only output log lines " "when newlines are seen. Let's use a slghtly better implementation of " @@ -2695,7 +2830,7 @@ msgstr "" "almacenar las cosas y sólo emitir líneas de logging cuando se vean nuevas " "líneas. Utilicemos una implementación ligeramente mejor de ``LoggerWriter``:" -#: ../Doc/howto/logging-cookbook.rst:3767 +#: ../Doc/howto/logging-cookbook.rst:3857 msgid "" "This just buffers up stuff until a newline is seen, and then logs complete " "lines. With this approach, you get better output:" @@ -2703,11 +2838,11 @@ msgstr "" "Esto sólo almacena cosas hasta que se ve una nueva línea, y luego registra " "las líneas completas. Con este enfoque, se obtiene una mejor salida:" -#: ../Doc/howto/logging-cookbook.rst:3783 +#: ../Doc/howto/logging-cookbook.rst:3873 msgid "Patterns to avoid" msgstr "Patrones para evitar" -#: ../Doc/howto/logging-cookbook.rst:3785 +#: ../Doc/howto/logging-cookbook.rst:3875 msgid "" "Although the preceding sections have described ways of doing things you " "might need to do or deal with, it is worth mentioning some usage patterns " @@ -2720,11 +2855,11 @@ msgstr "" "mayoría de los casos. Las siguientes secciones no están en ningún orden en " "particular." -#: ../Doc/howto/logging-cookbook.rst:3791 +#: ../Doc/howto/logging-cookbook.rst:3881 msgid "Opening the same log file multiple times" msgstr "Abrir el mismo archivo de registro varias veces" -#: ../Doc/howto/logging-cookbook.rst:3793 +#: ../Doc/howto/logging-cookbook.rst:3883 msgid "" "On Windows, you will generally not be able to open the same file multiple " "times as this will lead to a \"file is in use by another process\" error. " @@ -2736,7 +2871,7 @@ msgstr "" "embargo, en las plataformas POSIX no obtendrá ningún error si abre el mismo " "archivo varias veces. Esto podría hacerse accidentalmente, por ejemplo:" -#: ../Doc/howto/logging-cookbook.rst:3798 +#: ../Doc/howto/logging-cookbook.rst:3888 msgid "" "Adding a file handler more than once which references the same file (e.g. by " "a copy/paste/forget-to-change error)." @@ -2745,7 +2880,7 @@ msgstr "" "mismo archivo (por ejemplo, mediante un error de copiar/pegar/olvidar-" "cambiar)." -#: ../Doc/howto/logging-cookbook.rst:3801 +#: ../Doc/howto/logging-cookbook.rst:3891 msgid "" "Opening two files that look different, as they have different names, but are " "the same because one is a symbolic link to the other." @@ -2753,7 +2888,7 @@ msgstr "" "Abrir dos archivos que se ven diferentes, ya que tienen diferentes nombres, " "pero son iguales porque uno es un enlace simbólico al otro." -#: ../Doc/howto/logging-cookbook.rst:3804 +#: ../Doc/howto/logging-cookbook.rst:3894 msgid "" "Forking a process, following which both parent and child have a reference to " "the same file. This might be through use of the :mod:`multiprocessing` " @@ -2763,7 +2898,7 @@ msgstr "" "referencia al mismo archivo. Esto podría ser mediante el uso del módulo :mod:" "`multiprocessing`, por ejemplo." -#: ../Doc/howto/logging-cookbook.rst:3808 +#: ../Doc/howto/logging-cookbook.rst:3898 msgid "" "Opening a file multiple times might *appear* to work most of the time, but " "can lead to a number of problems in practice:" @@ -2771,7 +2906,7 @@ msgstr "" "Abrir un archivo varias veces puede *parecer* que funciona la mayor parte " "del tiempo, pero puede dar lugar a una serie de problemas en la práctica:" -#: ../Doc/howto/logging-cookbook.rst:3811 +#: ../Doc/howto/logging-cookbook.rst:3901 msgid "" "Logging output can be garbled because multiple threads or processes try to " "write to the same file. Although logging guards against concurrent use of " @@ -2786,7 +2921,7 @@ msgstr "" "escrituras simultáneas utilizando dos instancias de controlador diferentes " "que apunten al mismo archivo." -#: ../Doc/howto/logging-cookbook.rst:3817 +#: ../Doc/howto/logging-cookbook.rst:3907 msgid "" "An attempt to delete a file (e.g. during file rotation) silently fails, " "because there is another reference pointing to it. This can lead to " @@ -2803,7 +2938,7 @@ msgstr "" "en tamaño inesperadamente a pesar de que la rotación basada en el tamaño " "está supuestamente en su lugar." -#: ../Doc/howto/logging-cookbook.rst:3824 +#: ../Doc/howto/logging-cookbook.rst:3914 msgid "" "Use the techniques outlined in :ref:`multiple-processes` to circumvent such " "issues." @@ -2811,12 +2946,12 @@ msgstr "" "Utilice las técnicas descritas en :ref:`multiple-processes` para evitar " "estos problemas." -#: ../Doc/howto/logging-cookbook.rst:3828 +#: ../Doc/howto/logging-cookbook.rst:3918 msgid "Using loggers as attributes in a class or passing them as parameters" msgstr "" "Usar registradores como atributos en una clase o pasarlos como parámetros" -#: ../Doc/howto/logging-cookbook.rst:3830 +#: ../Doc/howto/logging-cookbook.rst:3920 msgid "" "While there might be unusual cases where you'll need to do this, in general " "there is no point because loggers are singletons. Code can always access a " @@ -2835,14 +2970,16 @@ msgstr "" "estáticos. Sin embargo, este patrón no tiene sentido en Python, donde el " "módulo (y no la clase) es la unidad de descomposición del software." -#: ../Doc/howto/logging-cookbook.rst:3839 +#: ../Doc/howto/logging-cookbook.rst:3929 +#, fuzzy msgid "" -"Adding handlers other than :class:`NullHandler` to a logger in a library" +"Adding handlers other than :class:`~logging.NullHandler` to a logger in a " +"library" msgstr "" "Agregar controladores distintos de :class:`NullHandler` a un registrador en " "una biblioteca" -#: ../Doc/howto/logging-cookbook.rst:3841 +#: ../Doc/howto/logging-cookbook.rst:3931 msgid "" "Configuring logging by adding handlers, formatters and filters is the " "responsibility of the application developer, not the library developer. If " @@ -2855,11 +2992,11 @@ msgstr "" "agregar controladores a ninguno de sus registradores que no sean una " "instancia :class:`~logging.NullHandler`." -#: ../Doc/howto/logging-cookbook.rst:3847 +#: ../Doc/howto/logging-cookbook.rst:3937 msgid "Creating a lot of loggers" msgstr "Crear muchos registradores (*loggers*)" -#: ../Doc/howto/logging-cookbook.rst:3849 +#: ../Doc/howto/logging-cookbook.rst:3939 msgid "" "Loggers are singletons that are never freed during a script execution, and " "so creating lots of loggers will use up memory which can't then be freed. " @@ -2878,14 +3015,23 @@ msgstr "" "de su aplicación (generalmente módulos, pero ocasionalmente un poco más " "detallado que eso)." -#: ../Doc/howto/logging-cookbook.rst:3860 +#: ../Doc/howto/logging-cookbook.rst:3950 msgid "Other resources" msgstr "Otros recursos" -#: ../Doc/howto/logging-cookbook.rst:3873 +#: ../Doc/howto/logging-cookbook.rst:3963 msgid ":ref:`Basic Tutorial `" msgstr ":ref:`Tutorial Básico `" -#: ../Doc/howto/logging-cookbook.rst:3875 +#: ../Doc/howto/logging-cookbook.rst:3965 msgid ":ref:`Advanced Tutorial `" msgstr ":ref:`Tutorial Avanzado `" + +#~ msgid "" +#~ "These are not \"true\" .gz files, as they are bare compressed data, with " +#~ "no \"container\" such as you’d find in an actual gzip file. This snippet " +#~ "is just for illustration purposes." +#~ msgstr "" +#~ "Estos no son archivos .gz \"verdaderos\", ya que son datos comprimidos " +#~ "sin ningún \"contenedor\" como el que encontraría en un archivo gzip " +#~ "real. Este fragmento es solo para fines ilustrativos." diff --git a/howto/logging.po b/howto/logging.po index 682ed40099..edaaf30350 100644 --- a/howto/logging.po +++ b/howto/logging.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-03-20 15:59-0300\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es_US\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/howto/logging.rst:3 msgid "Logging HOWTO" @@ -34,11 +33,17 @@ msgstr "Autor" msgid "Vinay Sajip " msgstr "Vinay Sajip " -#: ../Doc/howto/logging.rst:12 +#: ../Doc/howto/logging.rst:11 +msgid "" +"This page contains tutorial information. For links to reference information " +"and a logging cookbook, please see :ref:`tutorial-ref-links`." +msgstr "" + +#: ../Doc/howto/logging.rst:15 msgid "Basic Logging Tutorial" msgstr "Tutorial básico de *logging*" -#: ../Doc/howto/logging.rst:14 +#: ../Doc/howto/logging.rst:17 msgid "" "Logging is a means of tracking events that happen when some software runs. " "The software's developer adds logging calls to their code to indicate that " @@ -57,11 +62,11 @@ msgstr "" "desarrollador atribuye al evento; la importancia también puede llamarse el " "*nivel* o la *severidad*." -#: ../Doc/howto/logging.rst:23 +#: ../Doc/howto/logging.rst:26 msgid "When to use logging" msgstr "Cuándo usar *logging*" -#: ../Doc/howto/logging.rst:25 +#: ../Doc/howto/logging.rst:28 msgid "" "Logging provides a set of convenience functions for simple logging usage. " "These are :func:`debug`, :func:`info`, :func:`warning`, :func:`error` and :" @@ -74,26 +79,26 @@ msgstr "" "registro, vea la tabla de abajo, que indica, para cada una de las tareas " "comunes, la mejor herramienta a usar para ello." -#: ../Doc/howto/logging.rst:31 +#: ../Doc/howto/logging.rst:34 msgid "Task you want to perform" msgstr "La tarea que quieres realizar" -#: ../Doc/howto/logging.rst:31 +#: ../Doc/howto/logging.rst:34 msgid "The best tool for the task" msgstr "La mejor herramienta para la tarea" -#: ../Doc/howto/logging.rst:33 +#: ../Doc/howto/logging.rst:36 msgid "" "Display console output for ordinary usage of a command line script or program" msgstr "" "Mostrar salidas de la consola para el uso ordinario de un programa o guión " "(script) de línea de comandos" -#: ../Doc/howto/logging.rst:33 +#: ../Doc/howto/logging.rst:36 msgid ":func:`print`" msgstr ":func:`print`" -#: ../Doc/howto/logging.rst:37 +#: ../Doc/howto/logging.rst:40 msgid "" "Report events that occur during normal operation of a program (e.g. for " "status monitoring or fault investigation)" @@ -101,7 +106,7 @@ msgstr "" "Reportar eventos que ocurren durante el funcionamiento normal de un programa " "(por ejemplo, para la supervisión del estado o la investigación de fallos)" -#: ../Doc/howto/logging.rst:37 +#: ../Doc/howto/logging.rst:40 msgid "" ":func:`logging.info` (or :func:`logging.debug` for very detailed output for " "diagnostic purposes)" @@ -109,13 +114,13 @@ msgstr "" ":func:`logging.info` (o :func:`logging.debug` para salidas de registro muy " "detalladas con fines de diagnóstico)" -#: ../Doc/howto/logging.rst:42 +#: ../Doc/howto/logging.rst:45 msgid "Issue a warning regarding a particular runtime event" msgstr "" "Emitir una advertencia con respecto a un evento de tiempo de ejecución en " "particular" -#: ../Doc/howto/logging.rst:42 +#: ../Doc/howto/logging.rst:45 msgid "" ":func:`warnings.warn` in library code if the issue is avoidable and the " "client application should be modified to eliminate the warning" @@ -124,7 +129,7 @@ msgstr "" "evitable y la aplicación cliente debe ser modificada para eliminar la " "advertencia" -#: ../Doc/howto/logging.rst:47 +#: ../Doc/howto/logging.rst:50 msgid "" ":func:`logging.warning` if there is nothing the client application can do " "about the situation, but the event should still be noted" @@ -132,16 +137,16 @@ msgstr "" ":func:`logging.warning` si no hay nada que la aplicación cliente pueda hacer " "sobre la situación, pero el evento debe ser anotado" -#: ../Doc/howto/logging.rst:52 +#: ../Doc/howto/logging.rst:55 msgid "Report an error regarding a particular runtime event" msgstr "" "Reportar un error con respecto a un evento particular al tiempo de ejecución" -#: ../Doc/howto/logging.rst:52 +#: ../Doc/howto/logging.rst:55 msgid "Raise an exception" msgstr "Lanza una excepción" -#: ../Doc/howto/logging.rst:55 +#: ../Doc/howto/logging.rst:58 msgid "" "Report suppression of an error without raising an exception (e.g. error " "handler in a long-running server process)" @@ -149,7 +154,7 @@ msgstr "" "Reporta la supresión de un error sin invocar una excepción (por ejemplo, el " "manejador de errores en un proceso de servidor de larga duración)" -#: ../Doc/howto/logging.rst:55 +#: ../Doc/howto/logging.rst:58 msgid "" ":func:`logging.error`, :func:`logging.exception` or :func:`logging.critical` " "as appropriate for the specific error and application domain" @@ -157,7 +162,7 @@ msgstr "" ":func:`logging.error`, :func:`logging.exception` o :func:`logging.critical` " "según sea apropiado para el error específico y el dominio de la aplicación" -#: ../Doc/howto/logging.rst:62 +#: ../Doc/howto/logging.rst:65 msgid "" "The logging functions are named after the level or severity of the events " "they are used to track. The standard levels and their applicability are " @@ -167,38 +172,38 @@ msgstr "" "eventos que se utilizan para rastrear. A continuación se describen los " "niveles estándar y su aplicabilidad (en orden creciente de gravedad):" -#: ../Doc/howto/logging.rst:69 ../Doc/howto/logging.rst:862 +#: ../Doc/howto/logging.rst:72 ../Doc/howto/logging.rst:866 msgid "Level" msgstr "Nivel" -#: ../Doc/howto/logging.rst:69 +#: ../Doc/howto/logging.rst:72 msgid "When it's used" msgstr "Cuando es usado" -#: ../Doc/howto/logging.rst:71 ../Doc/howto/logging.rst:872 +#: ../Doc/howto/logging.rst:74 ../Doc/howto/logging.rst:876 msgid "``DEBUG``" msgstr "``DEBUG``" -#: ../Doc/howto/logging.rst:71 +#: ../Doc/howto/logging.rst:74 msgid "" "Detailed information, typically of interest only when diagnosing problems." msgstr "" "Información detallada, típicamente de interés sólo durante el diagnóstico de " "problemas." -#: ../Doc/howto/logging.rst:74 ../Doc/howto/logging.rst:870 +#: ../Doc/howto/logging.rst:77 ../Doc/howto/logging.rst:874 msgid "``INFO``" msgstr "``INFO``" -#: ../Doc/howto/logging.rst:74 +#: ../Doc/howto/logging.rst:77 msgid "Confirmation that things are working as expected." msgstr "Confirmación de que las cosas están funcionando como se esperaba." -#: ../Doc/howto/logging.rst:77 ../Doc/howto/logging.rst:868 +#: ../Doc/howto/logging.rst:80 ../Doc/howto/logging.rst:872 msgid "``WARNING``" msgstr "``WARNING``" -#: ../Doc/howto/logging.rst:77 +#: ../Doc/howto/logging.rst:80 msgid "" "An indication that something unexpected happened, or indicative of some " "problem in the near future (e.g. 'disk space low'). The software is still " @@ -208,11 +213,11 @@ msgstr "" "el futuro cercano (por ejemplo, \"espacio de disco bajo\"). El software " "sigue funcionando como se esperaba." -#: ../Doc/howto/logging.rst:82 ../Doc/howto/logging.rst:866 +#: ../Doc/howto/logging.rst:85 ../Doc/howto/logging.rst:870 msgid "``ERROR``" msgstr "``ERROR``" -#: ../Doc/howto/logging.rst:82 +#: ../Doc/howto/logging.rst:85 msgid "" "Due to a more serious problem, the software has not been able to perform " "some function." @@ -220,11 +225,11 @@ msgstr "" "Debido a un problema más grave, el software no ha sido capaz de realizar " "alguna función." -#: ../Doc/howto/logging.rst:85 ../Doc/howto/logging.rst:864 +#: ../Doc/howto/logging.rst:88 ../Doc/howto/logging.rst:868 msgid "``CRITICAL``" msgstr "``CRITICAL``" -#: ../Doc/howto/logging.rst:85 +#: ../Doc/howto/logging.rst:88 msgid "" "A serious error, indicating that the program itself may be unable to " "continue running." @@ -232,7 +237,7 @@ msgstr "" "Un grave error, que indica que el programa en sí mismo puede ser incapaz de " "seguir funcionando." -#: ../Doc/howto/logging.rst:89 +#: ../Doc/howto/logging.rst:92 msgid "" "The default level is ``WARNING``, which means that only events of this level " "and above will be tracked, unless the logging package is configured to do " @@ -242,7 +247,7 @@ msgstr "" "de este nivel y superiores serán rastreados, a menos que el paquete de " "registro esté configurado para hacer lo contrario." -#: ../Doc/howto/logging.rst:93 +#: ../Doc/howto/logging.rst:96 msgid "" "Events that are tracked can be handled in different ways. The simplest way " "of handling tracked events is to print them to the console. Another common " @@ -252,19 +257,19 @@ msgstr "" "forma más simple de manejar los eventos rastreados es imprimirlos en la " "consola o terminal. Otra forma común es escribirlos en un archivo de disco." -#: ../Doc/howto/logging.rst:101 +#: ../Doc/howto/logging.rst:104 msgid "A simple example" msgstr "Un simple ejemplo" -#: ../Doc/howto/logging.rst:103 +#: ../Doc/howto/logging.rst:106 msgid "A very simple example is::" msgstr "Un ejemplo muy simple es::" -#: ../Doc/howto/logging.rst:109 +#: ../Doc/howto/logging.rst:112 msgid "If you type these lines into a script and run it, you'll see:" msgstr "Si escribes estas líneas en un script y lo ejecutas, verás:" -#: ../Doc/howto/logging.rst:115 +#: ../Doc/howto/logging.rst:118 msgid "" "printed out on the console. The ``INFO`` message doesn't appear because the " "default level is ``WARNING``. The printed message includes the indication of " @@ -281,11 +286,11 @@ msgstr "" "flexibilidad si lo necesita; las opciones de formato también se explicarán " "más adelante." -#: ../Doc/howto/logging.rst:124 +#: ../Doc/howto/logging.rst:127 msgid "Logging to a file" msgstr "Logging a un archivo" -#: ../Doc/howto/logging.rst:126 +#: ../Doc/howto/logging.rst:129 msgid "" "A very common situation is that of recording logging events in a file, so " "let's look at that next. Be sure to try the following in a newly started " @@ -297,7 +302,7 @@ msgstr "" "Python recién iniciado, y no sólo continúe de la sesión descrita " "anteriormente::" -#: ../Doc/howto/logging.rst:137 +#: ../Doc/howto/logging.rst:140 msgid "" "The *encoding* argument was added. In earlier Python versions, or if not " "specified, the encoding used is the default value used by :func:`open`. " @@ -312,7 +317,7 @@ msgstr "" "manejan los errores de codificación. Para conocer los valores disponibles y " "los predeterminados, consulte la documentación de :func:`open`." -#: ../Doc/howto/logging.rst:144 +#: ../Doc/howto/logging.rst:147 msgid "" "And now if we open the file and look at what we have, we should find the log " "messages:" @@ -320,7 +325,7 @@ msgstr "" "Y ahora si abrimos el archivo y miramos lo que tenemos, deberíamos encontrar " "los mensajes de registro:" -#: ../Doc/howto/logging.rst:154 +#: ../Doc/howto/logging.rst:157 msgid "" "This example also shows how you can set the logging level which acts as the " "threshold for tracking. In this case, because we set the threshold to " @@ -330,14 +335,14 @@ msgstr "" "que actúa como umbral para el rastreo. En este caso, como establecimos el " "umbral en ``DEBUG``, todos los mensajes fueron impresos." -#: ../Doc/howto/logging.rst:158 +#: ../Doc/howto/logging.rst:161 msgid "" "If you want to set the logging level from a command-line option such as:" msgstr "" "Si quieres establecer el nivel de registro desde una opción de línea de " "comandos como:" -#: ../Doc/howto/logging.rst:164 +#: ../Doc/howto/logging.rst:167 msgid "" "and you have the value of the parameter passed for ``--log`` in some " "variable *loglevel*, you can use::" @@ -345,7 +350,7 @@ msgstr "" "y tienes el valor del parámetro pasado por ``--log`` en alguna variable " "*loglevel*, puedes usar::" -#: ../Doc/howto/logging.rst:169 +#: ../Doc/howto/logging.rst:172 msgid "" "to get the value which you'll pass to :func:`basicConfig` via the *level* " "argument. You may want to error check any user input value, perhaps as in " @@ -355,7 +360,7 @@ msgstr "" "argumento *level*. Puede que quieras comprobar un error por cualquier valor " "de entrada del usuario, quizás como en el siguiente ejemplo::" -#: ../Doc/howto/logging.rst:181 +#: ../Doc/howto/logging.rst:184 msgid "" "The call to :func:`basicConfig` should come *before* any calls to :func:" "`debug`, :func:`info`, etc. Otherwise, those functions will call :func:" @@ -370,7 +375,7 @@ msgstr "" "llamada realmente hará algo: las llamadas posteriores son efectivamente sin " "operaciones." -#: ../Doc/howto/logging.rst:187 +#: ../Doc/howto/logging.rst:190 msgid "" "If you run the above script several times, the messages from successive runs " "are appended to the file *example.log*. If you want each run to start " @@ -383,7 +388,7 @@ msgstr "" "puedes especificar el argumento *filemode*, cambiando la llamada en el " "ejemplo anterior a::" -#: ../Doc/howto/logging.rst:194 +#: ../Doc/howto/logging.rst:197 msgid "" "The output will be the same as before, but the log file is no longer " "appended to, so the messages from earlier runs are lost." @@ -391,11 +396,11 @@ msgstr "" "La impresión será la misma que antes, pero el archivo de registro ya no se " "adjunta, por lo que los mensajes de las ejecuciones anteriores se pierden." -#: ../Doc/howto/logging.rst:199 +#: ../Doc/howto/logging.rst:202 msgid "Logging from multiple modules" msgstr "*Logging* de múltiples módulos" -#: ../Doc/howto/logging.rst:201 +#: ../Doc/howto/logging.rst:204 msgid "" "If your program consists of multiple modules, here's an example of how you " "could organize logging in it::" @@ -403,11 +408,11 @@ msgstr "" "Si su programa consiste de múltiples módulos, aquí hay un ejemplo de cómo " "podría organizar el inicio de sesión en él::" -#: ../Doc/howto/logging.rst:225 +#: ../Doc/howto/logging.rst:228 msgid "If you run *myapp.py*, you should see this in *myapp.log*:" msgstr "Si ejecutas *myapp.py*, deberías ver esto en *myapp.log*:" -#: ../Doc/howto/logging.rst:233 +#: ../Doc/howto/logging.rst:236 msgid "" "which is hopefully what you were expecting to see. You can generalize this " "to multiple modules, using the pattern in *mylib.py*. Note that for this " @@ -425,11 +430,11 @@ msgstr "" "documentación más allá del nivel del tutorial -- ver :ref:`logging-advanced-" "tutorial`." -#: ../Doc/howto/logging.rst:243 +#: ../Doc/howto/logging.rst:246 msgid "Logging variable data" msgstr "Registrar datos de variables" -#: ../Doc/howto/logging.rst:245 +#: ../Doc/howto/logging.rst:248 msgid "" "To log variable data, use a format string for the event description message " "and append the variable data as arguments. For example::" @@ -438,11 +443,11 @@ msgstr "" "mensaje de descripción del evento y añada los datos variables como " "argumentos. Por ejemplo::" -#: ../Doc/howto/logging.rst:251 +#: ../Doc/howto/logging.rst:254 msgid "will display:" msgstr "se mostrará:" -#: ../Doc/howto/logging.rst:257 +#: ../Doc/howto/logging.rst:260 #, python-format msgid "" "As you can see, merging of variable data into the event description message " @@ -460,11 +465,11 @@ msgstr "" "pero explorarlas está fuera del alcance de este tutorial: consulte :ref:" "`formatting-styles` para obtener más información." -#: ../Doc/howto/logging.rst:266 +#: ../Doc/howto/logging.rst:269 msgid "Changing the format of displayed messages" msgstr "Cambiar el formato de los mensajes mostrados" -#: ../Doc/howto/logging.rst:268 +#: ../Doc/howto/logging.rst:271 msgid "" "To change the format which is used to display messages, you need to specify " "the format you want to use::" @@ -472,11 +477,11 @@ msgstr "" "Para cambiar el formato que se utiliza para visualizar los mensajes, es " "necesario especificar el formato que se desea utilizar::" -#: ../Doc/howto/logging.rst:277 +#: ../Doc/howto/logging.rst:280 msgid "which would print:" msgstr "que se imprimirá:" -#: ../Doc/howto/logging.rst:285 +#: ../Doc/howto/logging.rst:288 msgid "" "Notice that the 'root' which appeared in earlier examples has disappeared. " "For a full set of things that can appear in format strings, you can refer to " @@ -492,11 +497,11 @@ msgstr "" "*message* (descripción del evento, incluyendo los datos variables) y tal vez " "mostrar cuándo ocurrió el evento. Esto se describe en la siguiente sección." -#: ../Doc/howto/logging.rst:294 +#: ../Doc/howto/logging.rst:297 msgid "Displaying the date/time in messages" msgstr "Visualización de la fecha/hora en los mensajes" -#: ../Doc/howto/logging.rst:296 +#: ../Doc/howto/logging.rst:299 #, python-format msgid "" "To display the date and time of an event, you would place '%(asctime)s' in " @@ -505,11 +510,11 @@ msgstr "" "Para mostrar la fecha y la hora de un evento, usted colocaría '%(asctime)s' " "en su cadena de formato::" -#: ../Doc/howto/logging.rst:303 +#: ../Doc/howto/logging.rst:306 msgid "which should print something like this:" msgstr "que debería imprimir algo como esto:" -#: ../Doc/howto/logging.rst:309 +#: ../Doc/howto/logging.rst:312 msgid "" "The default format for date/time display (shown above) is like ISO8601 or :" "rfc:`3339`. If you need more control over the formatting of the date/time, " @@ -520,11 +525,11 @@ msgstr "" "formato de la fecha/hora, proporcione un argumento *datefmt* a " "``basicConfig``, como en este ejemplo::" -#: ../Doc/howto/logging.rst:317 +#: ../Doc/howto/logging.rst:320 msgid "which would display something like this:" msgstr "que mostraría algo como esto:" -#: ../Doc/howto/logging.rst:323 +#: ../Doc/howto/logging.rst:326 msgid "" "The format of the *datefmt* argument is the same as supported by :func:`time." "strftime`." @@ -532,11 +537,11 @@ msgstr "" "El formato del argumento *datefmt* es el mismo que el soportado por :func:" "`time.strftime`." -#: ../Doc/howto/logging.rst:328 +#: ../Doc/howto/logging.rst:331 msgid "Next Steps" msgstr "Próximos pasos" -#: ../Doc/howto/logging.rst:330 +#: ../Doc/howto/logging.rst:333 msgid "" "That concludes the basic tutorial. It should be enough to get you up and " "running with logging. There's a lot more that the logging package offers, " @@ -550,13 +555,14 @@ msgstr "" "tiempo en la lectura de las siguientes secciones. Si estás listo para eso, " "toma un poco de tu bebida favorita y sigue adelante." -#: ../Doc/howto/logging.rst:336 +#: ../Doc/howto/logging.rst:339 +#, fuzzy msgid "" "If your logging needs are simple, then use the above examples to incorporate " "logging into your own scripts, and if you run into problems or don't " "understand something, please post a question on the comp.lang.python Usenet " -"group (available at https://groups.google.com/forum/#!forum/comp.lang." -"python) and you should receive help before too long." +"group (available at https://groups.google.com/g/comp.lang.python) and you " +"should receive help before too long." msgstr "" "Si sus necesidades de registro son sencillas, utilice los ejemplos previos " "para incorporar el registro en sus propios scripts, y si tiene problemas o " @@ -564,7 +570,7 @@ msgstr "" "lang.python (disponible en https://groups.google.com/forum/#!forum/comp.lang." "python) y debería recibir ayuda antes de que transcurra demasiado tiempo." -#: ../Doc/howto/logging.rst:342 +#: ../Doc/howto/logging.rst:345 msgid "" "Still here? You can carry on reading the next few sections, which provide a " "slightly more advanced/in-depth tutorial than the basic one above. After " @@ -574,11 +580,11 @@ msgstr "" "proporcionan un tutorial un poco más avanzado y profundo que el básico de " "arriba. Después de eso, puedes echar un vistazo al :ref:`logging-cookbook`." -#: ../Doc/howto/logging.rst:350 +#: ../Doc/howto/logging.rst:353 msgid "Advanced Logging Tutorial" msgstr "Tutorial de registro avanzado" -#: ../Doc/howto/logging.rst:352 +#: ../Doc/howto/logging.rst:355 msgid "" "The logging library takes a modular approach and offers several categories " "of components: loggers, handlers, filters, and formatters." @@ -586,13 +592,13 @@ msgstr "" "La biblioteca de logging adopta un enfoque modular y ofrece varias " "categorías de componentes: registradores, gestores, filtros y formateadores." -#: ../Doc/howto/logging.rst:355 +#: ../Doc/howto/logging.rst:358 msgid "Loggers expose the interface that application code directly uses." msgstr "" "Los registradores exponen la interfaz que el código de la aplicación utiliza " "directamente." -#: ../Doc/howto/logging.rst:356 +#: ../Doc/howto/logging.rst:359 msgid "" "Handlers send the log records (created by loggers) to the appropriate " "destination." @@ -600,7 +606,7 @@ msgstr "" "Los gestores envían los registros de log (creados por los registradores) al " "destino apropiado." -#: ../Doc/howto/logging.rst:358 +#: ../Doc/howto/logging.rst:361 msgid "" "Filters provide a finer grained facility for determining which log records " "to output." @@ -608,13 +614,13 @@ msgstr "" "Los filtros proporcionan una instalación de grano más fino para determinar " "qué registros de log se deben producir." -#: ../Doc/howto/logging.rst:360 +#: ../Doc/howto/logging.rst:363 msgid "Formatters specify the layout of log records in the final output." msgstr "" "Los formatos especifican la disposición de los archivos de log en el " "resultado final." -#: ../Doc/howto/logging.rst:362 +#: ../Doc/howto/logging.rst:365 msgid "" "Log event information is passed between loggers, handlers, filters and " "formatters in a :class:`LogRecord` instance." @@ -622,7 +628,7 @@ msgstr "" "La información de los eventos de registro se pasa entre los registradores, " "gestores, filtros y formateadores en una instancia :class:`LogRecord`." -#: ../Doc/howto/logging.rst:365 +#: ../Doc/howto/logging.rst:368 msgid "" "Logging is performed by calling methods on instances of the :class:`Logger` " "class (hereafter called :dfn:`loggers`). Each instance has a name, and they " @@ -641,7 +647,7 @@ msgstr "" "cualquier cosa que se desee, e indican el área de una aplicación en la que " "se origina un mensaje registrado." -#: ../Doc/howto/logging.rst:372 +#: ../Doc/howto/logging.rst:375 msgid "" "A good convention to use when naming loggers is to use a module-level " "logger, in each module which uses logging, named as follows::" @@ -650,7 +656,7 @@ msgstr "" "es utilizar un registrador a nivel de módulo, en cada módulo que utilice el " "registro, llamado de la siguiente manera::" -#: ../Doc/howto/logging.rst:377 +#: ../Doc/howto/logging.rst:380 msgid "" "This means that logger names track the package/module hierarchy, and it's " "intuitively obvious where events are logged just from the logger name." @@ -659,7 +665,7 @@ msgstr "" "paquetes/módulos, y es intuitivamente obvio donde se registran los eventos " "sólo a partir del nombre del registrador." -#: ../Doc/howto/logging.rst:380 +#: ../Doc/howto/logging.rst:383 msgid "" "The root of the hierarchy of loggers is called the root logger. That's the " "logger used by the functions :func:`debug`, :func:`info`, :func:`warning`, :" @@ -673,7 +679,7 @@ msgstr "" "del registrador raíz. Las funciones y los métodos tienen las mismas firmas. " "El nombre del root *logger* se imprime como ‘root’ en la salida registrada." -#: ../Doc/howto/logging.rst:386 +#: ../Doc/howto/logging.rst:389 msgid "" "It is, of course, possible to log messages to different destinations. " "Support is included in the package for writing log messages to files, HTTP " @@ -692,7 +698,7 @@ msgstr "" "de registro si tienes requisitos especiales que no se cumplen con ninguna de " "las clases de gestor incorporadas." -#: ../Doc/howto/logging.rst:393 +#: ../Doc/howto/logging.rst:396 msgid "" "By default, no destination is set for any logging messages. You can specify " "a destination (such as console or file) by using :func:`basicConfig` as in " @@ -712,13 +718,13 @@ msgstr "" "stderr``) y un formato por defecto para el mensaje mostrado antes de delegar " "en el registrador root para hacer la salida real del mensaje." -#: ../Doc/howto/logging.rst:401 +#: ../Doc/howto/logging.rst:404 msgid "The default format set by :func:`basicConfig` for messages is:" msgstr "" "El formato por defecto establecido por :func:`basicConfig` para los mensajes " "es:" -#: ../Doc/howto/logging.rst:407 +#: ../Doc/howto/logging.rst:410 msgid "" "You can change this by passing a format string to :func:`basicConfig` with " "the *format* keyword argument. For all options regarding how a format string " @@ -728,11 +734,11 @@ msgstr "" "el argumento de la palabra clave *format*. Para todas las opciones relativas " "a cómo se construye una cadena de formato, ver :ref:`formatter-objects`." -#: ../Doc/howto/logging.rst:412 +#: ../Doc/howto/logging.rst:415 msgid "Logging Flow" msgstr "Flujo de Registro" -#: ../Doc/howto/logging.rst:414 +#: ../Doc/howto/logging.rst:417 msgid "" "The flow of log event information in loggers and handlers is illustrated in " "the following diagram." @@ -740,11 +746,11 @@ msgstr "" "En el siguiente diagrama se ilustra el flujo de información de los eventos " "de registro en los registradores y gestores." -#: ../Doc/howto/logging.rst:420 +#: ../Doc/howto/logging.rst:424 msgid "Loggers" msgstr "Registradores" -#: ../Doc/howto/logging.rst:422 +#: ../Doc/howto/logging.rst:426 msgid "" ":class:`Logger` objects have a threefold job. First, they expose several " "methods to application code so that applications can log messages at " @@ -761,7 +767,7 @@ msgstr "" "objetos registradores pasan los mensajes de registro relevantes a todos los " "manejadores de registro interesados." -#: ../Doc/howto/logging.rst:428 +#: ../Doc/howto/logging.rst:432 msgid "" "The most widely used methods on logger objects fall into two categories: " "configuration and message sending." @@ -769,11 +775,11 @@ msgstr "" "Los métodos más utilizados en los objetos de registro se dividen en dos " "categorías: configuración y envío de mensajes." -#: ../Doc/howto/logging.rst:431 +#: ../Doc/howto/logging.rst:435 msgid "These are the most common configuration methods:" msgstr "Estos son los métodos de configuración más comunes:" -#: ../Doc/howto/logging.rst:433 +#: ../Doc/howto/logging.rst:437 msgid "" ":meth:`Logger.setLevel` specifies the lowest-severity log message a logger " "will handle, where debug is the lowest built-in severity level and critical " @@ -787,7 +793,7 @@ msgstr "" "el nivel de severidad es INFO, el registrador sólo manejará los mensajes " "INFO, WARNING, ERROR y CRITICAL e ignorará los mensajes DEBUG." -#: ../Doc/howto/logging.rst:439 +#: ../Doc/howto/logging.rst:443 msgid "" ":meth:`Logger.addHandler` and :meth:`Logger.removeHandler` add and remove " "handler objects from the logger object. Handlers are covered in more detail " @@ -797,7 +803,7 @@ msgstr "" "los objetos *handler* del objeto *logger*. Los manejadores (*handlers*) se " "tratan con más detalle en :ref:`handler-basic`." -#: ../Doc/howto/logging.rst:443 +#: ../Doc/howto/logging.rst:447 msgid "" ":meth:`Logger.addFilter` and :meth:`Logger.removeFilter` add and remove " "filter objects from the logger object. Filters are covered in more detail " @@ -807,7 +813,7 @@ msgstr "" "objetos de filtro del objeto logger. Los filtros se tratan con más detalle " "en :ref:`filter`." -#: ../Doc/howto/logging.rst:447 +#: ../Doc/howto/logging.rst:451 msgid "" "You don't need to always call these methods on every logger you create. See " "the last two paragraphs in this section." @@ -815,14 +821,14 @@ msgstr "" "No es necesario que siempre llames a estos métodos en cada registrador que " "crees. Vea los dos últimos párrafos de esta sección." -#: ../Doc/howto/logging.rst:450 +#: ../Doc/howto/logging.rst:454 msgid "" "With the logger object configured, the following methods create log messages:" msgstr "" "Con el objeto *logger* configurado, los siguientes métodos crean mensajes de " "log:" -#: ../Doc/howto/logging.rst:452 +#: ../Doc/howto/logging.rst:456 #, python-format msgid "" ":meth:`Logger.debug`, :meth:`Logger.info`, :meth:`Logger.warning`, :meth:" @@ -846,7 +852,7 @@ msgstr "" "clave de ``exc_info`` y la usan para determinar si registran información de " "excepción." -#: ../Doc/howto/logging.rst:462 +#: ../Doc/howto/logging.rst:466 msgid "" ":meth:`Logger.exception` creates a log message similar to :meth:`Logger." "error`. The difference is that :meth:`Logger.exception` dumps a stack trace " @@ -857,7 +863,7 @@ msgstr "" "pila junto con él. Llama a este método sólo desde un manejador de " "excepciones." -#: ../Doc/howto/logging.rst:466 +#: ../Doc/howto/logging.rst:470 msgid "" ":meth:`Logger.log` takes a log level as an explicit argument. This is a " "little more verbose for logging messages than using the log level " @@ -869,7 +875,7 @@ msgstr "" "conveniencia de nivel de registro listados arriba, pero así es como se " "registra en niveles de registro personalizados." -#: ../Doc/howto/logging.rst:470 +#: ../Doc/howto/logging.rst:474 msgid "" ":func:`getLogger` returns a reference to a logger instance with the " "specified name if it is provided, or ``root`` if not. The names are period-" @@ -889,7 +895,7 @@ msgstr "" "un *logger* con un nombre de ``foo``, los *loggers* con nombres de ``foo." "bar``, ``foo.bar.baz``, y ``foo.bam`` son todos descendientes de ``foo``." -#: ../Doc/howto/logging.rst:478 +#: ../Doc/howto/logging.rst:482 msgid "" "Loggers have a concept of *effective level*. If a level is not explicitly " "set on a logger, the level of its parent is used instead as its effective " @@ -910,7 +916,7 @@ msgstr "" "evento, el nivel efectivo del registrador se utiliza para determinar si el " "evento se pasa a los manejadores del registrador." -#: ../Doc/howto/logging.rst:486 +#: ../Doc/howto/logging.rst:490 msgid "" "Child loggers propagate messages up to the handlers associated with their " "ancestor loggers. Because of this, it is unnecessary to define and configure " @@ -927,11 +933,11 @@ msgstr "" "desactivar la propagación estableciendo el atributo *propagate* de un " "*logger* en ``False``.)" -#: ../Doc/howto/logging.rst:497 +#: ../Doc/howto/logging.rst:501 msgid "Handlers" msgstr "Gestores" -#: ../Doc/howto/logging.rst:499 +#: ../Doc/howto/logging.rst:503 msgid "" ":class:`~logging.Handler` objects are responsible for dispatching the " "appropriate log messages (based on the log messages' severity) to the " @@ -955,7 +961,7 @@ msgstr "" "responsable de enviar mensajes de una severidad específica a una ubicación " "específica." -#: ../Doc/howto/logging.rst:509 +#: ../Doc/howto/logging.rst:513 msgid "" "The standard library includes quite a few handler types (see :ref:`useful-" "handlers`); the tutorials use mainly :class:`StreamHandler` and :class:" @@ -965,7 +971,7 @@ msgstr "" "`useful-handlers`); los tutoriales usan principalmente :class:" "`StreamHandler` y :class:`FileHandler` en sus ejemplos." -#: ../Doc/howto/logging.rst:513 +#: ../Doc/howto/logging.rst:517 msgid "" "There are very few methods in a handler for application developers to " "concern themselves with. The only handler methods that seem relevant for " @@ -978,7 +984,7 @@ msgstr "" "de manejador incorporados (es decir, que no crean manejadores " "personalizados) son los siguientes métodos de configuración:" -#: ../Doc/howto/logging.rst:518 +#: ../Doc/howto/logging.rst:522 msgid "" "The :meth:`~Handler.setLevel` method, just as in logger objects, specifies " "the lowest severity that will be dispatched to the appropriate destination. " @@ -994,7 +1000,7 @@ msgstr "" "manejadores. El nivel establecido en cada manejador determina qué mensajes " "enviará ese manejador." -#: ../Doc/howto/logging.rst:524 +#: ../Doc/howto/logging.rst:528 msgid "" ":meth:`~Handler.setFormatter` selects a Formatter object for this handler to " "use." @@ -1002,7 +1008,7 @@ msgstr "" ":meth:`~Handler.setFormatter` selecciona un objeto *Formatter* para que este " "*handler* lo use." -#: ../Doc/howto/logging.rst:527 +#: ../Doc/howto/logging.rst:531 msgid "" ":meth:`~Handler.addFilter` and :meth:`~Handler.removeFilter` respectively " "configure and deconfigure filter objects on handlers." @@ -1010,7 +1016,7 @@ msgstr "" ":meth:`~Handler.addFilter` y :meth:`~Handler.removeFilter` respectivamente " "configuran y desconfiguran los objetos del filtro en los handlers." -#: ../Doc/howto/logging.rst:530 +#: ../Doc/howto/logging.rst:534 msgid "" "Application code should not directly instantiate and use instances of :class:" "`Handler`. Instead, the :class:`Handler` class is a base class that defines " @@ -1022,11 +1028,11 @@ msgstr "" "base que define la interfaz que todos los *handlers* deben tener y establece " "algún comportamiento por defecto que las clases hijas pueden usar (o anular)." -#: ../Doc/howto/logging.rst:537 +#: ../Doc/howto/logging.rst:541 msgid "Formatters" msgstr "Formateadores" -#: ../Doc/howto/logging.rst:539 +#: ../Doc/howto/logging.rst:543 msgid "" "Formatter objects configure the final order, structure, and contents of the " "log message. Unlike the base :class:`logging.Handler` class, application " @@ -1043,7 +1049,7 @@ msgstr "" "argumentos opcionales -- una cadena de formato de mensaje, una cadena de " "formato de fecha y un indicador de estilo." -#: ../Doc/howto/logging.rst:548 +#: ../Doc/howto/logging.rst:552 msgid "" "If there is no message format string, the default is to use the raw " "message. If there is no date format string, the default date format is:" @@ -1052,7 +1058,7 @@ msgstr "" "utilizar el mensaje en bruto. Si no hay una cadena de formato de fecha, el " "formato de fecha por defecto es:" -#: ../Doc/howto/logging.rst:555 +#: ../Doc/howto/logging.rst:559 msgid "" "with the milliseconds tacked on at the end. The ``style`` is one of ``'%'``, " "``'{'``, or ``'$'``. If one of these is not specified, then ``'%'`` will be " @@ -1062,7 +1068,7 @@ msgstr "" "``'{'`` o ``'$'``. Si uno de estos no se especifica, entonces se usará " "``'%'``." -#: ../Doc/howto/logging.rst:558 +#: ../Doc/howto/logging.rst:562 msgid "" "If the ``style`` is ``'%'``, the message format string uses ``%()s`` styled string substitution; the possible keys are documented in :" @@ -1079,11 +1085,11 @@ msgstr "" "estilo es ``'$'`` entonces la cadena del formato del mensaje debe ajustarse " "a lo que se espera de :meth:`string.Template.substitute`." -#: ../Doc/howto/logging.rst:565 +#: ../Doc/howto/logging.rst:569 msgid "Added the ``style`` parameter." msgstr "Añadió el parámetro ``style``." -#: ../Doc/howto/logging.rst:568 +#: ../Doc/howto/logging.rst:572 msgid "" "The following message format string will log the time in a human-readable " "format, the severity of the message, and the contents of the message, in " @@ -1093,7 +1099,7 @@ msgstr "" "legible para los humanos, la gravedad del mensaje y el contenido del " "mensaje, en ese orden::" -#: ../Doc/howto/logging.rst:574 +#: ../Doc/howto/logging.rst:578 msgid "" "Formatters use a user-configurable function to convert the creation time of " "a record to a tuple. By default, :func:`time.localtime` is used; to change " @@ -1112,15 +1118,15 @@ msgstr "" "que todas las horas de registro se muestren en GMT, establece el atributo " "``converter`` en la clase *Formatter* (a ``time.gmtime`` para mostrar GMT)." -#: ../Doc/howto/logging.rst:584 +#: ../Doc/howto/logging.rst:588 msgid "Configuring Logging" msgstr "Configuración del registro" -#: ../Doc/howto/logging.rst:588 +#: ../Doc/howto/logging.rst:592 msgid "Programmers can configure logging in three ways:" msgstr "Los programadores pueden configurar el registro en tres maneras:" -#: ../Doc/howto/logging.rst:590 +#: ../Doc/howto/logging.rst:594 msgid "" "Creating loggers, handlers, and formatters explicitly using Python code that " "calls the configuration methods listed above." @@ -1128,7 +1134,7 @@ msgstr "" "Creando registradores, manejadores y formateadores explícitamente usando " "código Python que llama a los métodos de configuración listados arriba." -#: ../Doc/howto/logging.rst:592 +#: ../Doc/howto/logging.rst:596 msgid "" "Creating a logging config file and reading it using the :func:`fileConfig` " "function." @@ -1136,7 +1142,7 @@ msgstr "" "Creando un archivo de configuración de registro y leyéndolo usando la " "función :func:`fileConfig`." -#: ../Doc/howto/logging.rst:594 +#: ../Doc/howto/logging.rst:598 msgid "" "Creating a dictionary of configuration information and passing it to the :" "func:`dictConfig` function." @@ -1144,7 +1150,7 @@ msgstr "" "Creando un diccionario de información de configuración y pasándolo a la " "función :func:`dictConfig`." -#: ../Doc/howto/logging.rst:597 +#: ../Doc/howto/logging.rst:601 msgid "" "For the reference documentation on the last two options, see :ref:`logging-" "config-api`. The following example configures a very simple logger, a " @@ -1155,13 +1161,13 @@ msgstr "" "simple, un manejador de consola, y un formateador simple usando código " "Python::" -#: ../Doc/howto/logging.rst:627 +#: ../Doc/howto/logging.rst:631 msgid "" "Running this module from the command line produces the following output:" msgstr "" "Ejecutar este módulo desde la línea de comandos produce la siguiente salida:" -#: ../Doc/howto/logging.rst:638 +#: ../Doc/howto/logging.rst:642 msgid "" "The following Python module creates a logger, handler, and formatter nearly " "identical to those in the example listed above, with the only difference " @@ -1171,18 +1177,18 @@ msgstr "" "casi idéntico a los del ejemplo anterior, con la única diferencia de los " "nombres de los objetos::" -#: ../Doc/howto/logging.rst:657 +#: ../Doc/howto/logging.rst:661 msgid "Here is the logging.conf file:" msgstr "Aquí está el archivo logging.conf:" -#: ../Doc/howto/logging.rst:689 +#: ../Doc/howto/logging.rst:693 msgid "" "The output is nearly identical to that of the non-config-file-based example:" msgstr "" "La salida es casi idéntica a la del ejemplo basado en un archivo no " "configurado:" -#: ../Doc/howto/logging.rst:700 +#: ../Doc/howto/logging.rst:704 msgid "" "You can see that the config file approach has a few advantages over the " "Python code approach, mainly separation of configuration and code and the " @@ -1193,7 +1199,7 @@ msgstr "" "la configuración y el código y la capacidad de los no codificadores de " "modificar fácilmente las propiedades de registro." -#: ../Doc/howto/logging.rst:704 +#: ../Doc/howto/logging.rst:708 msgid "" "The :func:`fileConfig` function takes a default parameter, " "``disable_existing_loggers``, which defaults to ``True`` for reasons of " @@ -1212,7 +1218,7 @@ msgstr "" "documentación de referencia para más información, y especifique ``False`` " "para este parámetro si lo desea." -#: ../Doc/howto/logging.rst:712 +#: ../Doc/howto/logging.rst:716 msgid "" "The dictionary passed to :func:`dictConfig` can also specify a Boolean value " "with key ``disable_existing_loggers``, which if not specified explicitly in " @@ -1228,7 +1234,7 @@ msgstr "" "desea - en cuyo caso, proporcione a la clave explícitamente un valor de " "``False``." -#: ../Doc/howto/logging.rst:722 +#: ../Doc/howto/logging.rst:726 msgid "" "Note that the class names referenced in config files need to be either " "relative to the logging module, or absolute values which can be resolved " @@ -1247,7 +1253,7 @@ msgstr "" "``mymodule``, donde ``mypackage`` está disponible en la ruta de importación " "de Python)." -#: ../Doc/howto/logging.rst:730 +#: ../Doc/howto/logging.rst:734 msgid "" "In Python 3.2, a new means of configuring logging has been introduced, using " "dictionaries to hold configuration information. This provides a superset of " @@ -1276,7 +1282,7 @@ msgstr "" "sobre un zócalo, o usar cualquier enfoque que tenga sentido para tu " "aplicación." -#: ../Doc/howto/logging.rst:742 +#: ../Doc/howto/logging.rst:746 msgid "" "Here's an example of the same configuration as above, in YAML format for the " "new dictionary-based approach:" @@ -1284,7 +1290,7 @@ msgstr "" "Aquí hay un ejemplo de la misma configuración que arriba, en formato YAML " "para el nuevo enfoque basado en el diccionario:" -#: ../Doc/howto/logging.rst:766 +#: ../Doc/howto/logging.rst:770 msgid "" "For more information about logging using a dictionary, see :ref:`logging-" "config-api`." @@ -1292,11 +1298,11 @@ msgstr "" "Para más información sobre el registro usando un diccionario, ver :ref:" "`logging-config-api`." -#: ../Doc/howto/logging.rst:770 +#: ../Doc/howto/logging.rst:774 msgid "What happens if no configuration is provided" msgstr "¿Qué pasa si no se proporciona ninguna configuración" -#: ../Doc/howto/logging.rst:772 +#: ../Doc/howto/logging.rst:776 msgid "" "If no logging configuration is provided, it is possible to have a situation " "where a logging event needs to be output, but no handlers can be found to " @@ -1309,13 +1315,13 @@ msgstr "" "suceso. El comportamiento del paquete de registro en estas circunstancias " "depende de la versión de Python." -#: ../Doc/howto/logging.rst:777 +#: ../Doc/howto/logging.rst:781 msgid "For versions of Python prior to 3.2, the behaviour is as follows:" msgstr "" "Para las versiones de Python anteriores a la 3.2, el comportamiento es el " "siguiente:" -#: ../Doc/howto/logging.rst:779 +#: ../Doc/howto/logging.rst:783 msgid "" "If *logging.raiseExceptions* is ``False`` (production mode), the event is " "silently dropped." @@ -1323,7 +1329,7 @@ msgstr "" "Si *logging.raiseExceptions* es ``Falso`` (modo de producción), el evento es " "abandonado silenciosamente." -#: ../Doc/howto/logging.rst:782 +#: ../Doc/howto/logging.rst:786 msgid "" "If *logging.raiseExceptions* is ``True`` (development mode), a message 'No " "handlers could be found for logger X.Y.Z' is printed once." @@ -1332,11 +1338,11 @@ msgstr "" "una vez un mensaje '*No handlers could be found for logger X.Y.Z*' ('No se " "pudo encontrar ningún manejador (*handler*) para el *logger* X.Y.Z')." -#: ../Doc/howto/logging.rst:785 +#: ../Doc/howto/logging.rst:789 msgid "In Python 3.2 and later, the behaviour is as follows:" msgstr "En Python 3.2 y posteriores, el comportamiento es el siguiente:" -#: ../Doc/howto/logging.rst:787 +#: ../Doc/howto/logging.rst:791 msgid "" "The event is output using a 'handler of last resort', stored in ``logging." "lastResort``. This internal handler is not associated with any logger, and " @@ -1356,7 +1362,7 @@ msgstr "" "descripción del evento. El nivel del manejador se establece en ``WARNING``, " "por lo que todos los eventos de esta y mayores severidades serán emitidos." -#: ../Doc/howto/logging.rst:796 +#: ../Doc/howto/logging.rst:800 msgid "" "To obtain the pre-3.2 behaviour, ``logging.lastResort`` can be set to " "``None``." @@ -1364,11 +1370,11 @@ msgstr "" "Para obtener el comportamiento anterior a la 3.2, ``logging.lastResort`` se " "puede configurar como ``None``." -#: ../Doc/howto/logging.rst:801 +#: ../Doc/howto/logging.rst:805 msgid "Configuring Logging for a Library" msgstr "Configurando Logging para una biblioteca" -#: ../Doc/howto/logging.rst:803 +#: ../Doc/howto/logging.rst:807 msgid "" "When developing a library which uses logging, you should take care to " "document how the library uses logging - for example, the names of loggers " @@ -1387,7 +1393,7 @@ msgstr "" "``WARNING`` y mayores se imprimirán en ``sys.stderr``. Esto se considera el " "mejor comportamiento por defecto." -#: ../Doc/howto/logging.rst:811 +#: ../Doc/howto/logging.rst:815 msgid "" "If for some reason you *don't* want these messages printed in the absence of " "any logging configuration, you can attach a do-nothing handler to the top-" @@ -1409,7 +1415,7 @@ msgstr "" "registro realizadas en el código de la biblioteca enviarán una salida a esos " "manejadores, como es normal." -#: ../Doc/howto/logging.rst:820 +#: ../Doc/howto/logging.rst:824 msgid "" "A do-nothing handler is included in the logging package: :class:`~logging." "NullHandler` (since Python 3.1). An instance of this handler could be added " @@ -1428,7 +1434,7 @@ msgstr "" "*foo* se hace usando registradores con nombres que coincidan con 'foo.x', " "'foo.x.y', etc. entonces el código::" -#: ../Doc/howto/logging.rst:831 +#: ../Doc/howto/logging.rst:835 msgid "" "should have the desired effect. If an organisation produces a number of " "libraries, then the logger name specified can be 'orgname.foo' rather than " @@ -1438,7 +1444,7 @@ msgstr "" "bibliotecas, el nombre del registrador especificado puede ser ‘orgname.foo’ " "en lugar de sólo ‘foo’." -#: ../Doc/howto/logging.rst:835 +#: ../Doc/howto/logging.rst:839 msgid "" "It is strongly advised that you *do not log to the root logger* in your " "library. Instead, use a logger with a unique and easily identifiable name, " @@ -1448,7 +1454,7 @@ msgid "" "library as they wish." msgstr "" -#: ../Doc/howto/logging.rst:842 +#: ../Doc/howto/logging.rst:846 msgid "" "It is strongly advised that you *do not add any handlers other than* :class:" "`~logging.NullHandler` *to your library's loggers*. This is because the " @@ -1467,11 +1473,11 @@ msgstr "" "interferir en su capacidad de realizar pruebas unitarias y entregar " "registros que se ajusten a sus necesidades." -#: ../Doc/howto/logging.rst:853 +#: ../Doc/howto/logging.rst:857 msgid "Logging Levels" msgstr "Niveles de registro" -#: ../Doc/howto/logging.rst:855 +#: ../Doc/howto/logging.rst:859 msgid "" "The numeric values of logging levels are given in the following table. These " "are primarily of interest if you want to define your own levels, and need " @@ -1485,39 +1491,39 @@ msgstr "" "niveles predefinidos. Si se define un nivel con el mismo valor numérico, " "éste sobrescribe el valor predefinido; el nombre predefinido se pierde." -#: ../Doc/howto/logging.rst:862 +#: ../Doc/howto/logging.rst:866 msgid "Numeric value" msgstr "Valor numérico" -#: ../Doc/howto/logging.rst:864 +#: ../Doc/howto/logging.rst:868 msgid "50" msgstr "50" -#: ../Doc/howto/logging.rst:866 +#: ../Doc/howto/logging.rst:870 msgid "40" msgstr "40" -#: ../Doc/howto/logging.rst:868 +#: ../Doc/howto/logging.rst:872 msgid "30" msgstr "30" -#: ../Doc/howto/logging.rst:870 +#: ../Doc/howto/logging.rst:874 msgid "20" msgstr "20" -#: ../Doc/howto/logging.rst:872 +#: ../Doc/howto/logging.rst:876 msgid "10" msgstr "10" -#: ../Doc/howto/logging.rst:874 +#: ../Doc/howto/logging.rst:878 msgid "``NOTSET``" msgstr "``NOTSET``" -#: ../Doc/howto/logging.rst:874 +#: ../Doc/howto/logging.rst:878 msgid "0" msgstr "0" -#: ../Doc/howto/logging.rst:877 +#: ../Doc/howto/logging.rst:881 msgid "" "Levels can also be associated with loggers, being set either by the " "developer or through loading a saved logging configuration. When a logging " @@ -1534,7 +1540,7 @@ msgstr "" "método, no se genera ningún mensaje de registro. Este es el mecanismo básico " "que controla la verbosidad de la salida del registro." -#: ../Doc/howto/logging.rst:884 +#: ../Doc/howto/logging.rst:888 msgid "" "Logging messages are encoded as instances of the :class:`~logging.LogRecord` " "class. When a logger decides to actually log an event, a :class:`~logging." @@ -1545,7 +1551,7 @@ msgstr "" "evento, se crea una instancia :class:`~logging.LogRecord` a partir del " "mensaje de registro." -#: ../Doc/howto/logging.rst:888 +#: ../Doc/howto/logging.rst:892 msgid "" "Logging messages are subjected to a dispatch mechanism through the use of :" "dfn:`handlers`, which are instances of subclasses of the :class:`Handler` " @@ -1577,7 +1583,7 @@ msgstr "" "establezca en un valor falso, en cuyo caso el paso a los *handlers* " "ancestrales se detiene)." -#: ../Doc/howto/logging.rst:902 +#: ../Doc/howto/logging.rst:906 msgid "" "Just as for loggers, handlers can have levels associated with them. A " "handler's level acts as a filter in the same way as a logger's level does. " @@ -1593,11 +1599,11 @@ msgstr "" "a su destino. La mayoría de las subclases definidas por el usuario de :class:" "`Handler` necesitarán anular este :meth:`~Handler.emit`." -#: ../Doc/howto/logging.rst:911 +#: ../Doc/howto/logging.rst:915 msgid "Custom Levels" msgstr "Niveles personalizados" -#: ../Doc/howto/logging.rst:913 +#: ../Doc/howto/logging.rst:917 msgid "" "Defining your own levels is possible, but should not be necessary, as the " "existing levels have been chosen on the basis of practical experience. " @@ -1621,11 +1627,11 @@ msgstr "" "usuario, porque un valor numérico dado podría significar cosas diferentes " "para diferentes bibliotecas." -#: ../Doc/howto/logging.rst:926 +#: ../Doc/howto/logging.rst:930 msgid "Useful Handlers" msgstr "Gestores útiles" -#: ../Doc/howto/logging.rst:928 +#: ../Doc/howto/logging.rst:932 msgid "" "In addition to the base :class:`Handler` class, many useful subclasses are " "provided:" @@ -1633,7 +1639,7 @@ msgstr "" "Además de la base :class:`Handler` class, se proporcionan muchas subclases " "útiles:" -#: ../Doc/howto/logging.rst:931 +#: ../Doc/howto/logging.rst:935 msgid "" ":class:`StreamHandler` instances send messages to streams (file-like " "objects)." @@ -1641,12 +1647,12 @@ msgstr "" ":class:`StreamHandler` instancias envían mensajes a los *streams* (objetos " "como de tipo archivo)." -#: ../Doc/howto/logging.rst:934 +#: ../Doc/howto/logging.rst:938 msgid ":class:`FileHandler` instances send messages to disk files." msgstr "" ":class:`FileHandler` instancias enviar mensajes a los archivos del disco." -#: ../Doc/howto/logging.rst:936 +#: ../Doc/howto/logging.rst:940 msgid "" ":class:`~handlers.BaseRotatingHandler` is the base class for handlers that " "rotate log files at a certain point. It is not meant to be instantiated " @@ -1659,7 +1665,7 @@ msgstr "" "`~handlers.RotatingFileHandler` o :class:`~handlers." "TimedRotatingFileHandler`." -#: ../Doc/howto/logging.rst:941 +#: ../Doc/howto/logging.rst:945 msgid "" ":class:`~handlers.RotatingFileHandler` instances send messages to disk " "files, with support for maximum log file sizes and log file rotation." @@ -1668,7 +1674,7 @@ msgstr "" "los archivos de disco, con soporte para el tamaño máximo de los archivos de " "registro y la rotación de los mismos." -#: ../Doc/howto/logging.rst:944 +#: ../Doc/howto/logging.rst:948 msgid "" ":class:`~handlers.TimedRotatingFileHandler` instances send messages to disk " "files, rotating the log file at certain timed intervals." @@ -1677,7 +1683,7 @@ msgstr "" "mensajes a los archivos de disco, rotando el archivo de registro a ciertos " "intervalos de tiempo." -#: ../Doc/howto/logging.rst:947 +#: ../Doc/howto/logging.rst:951 msgid "" ":class:`~handlers.SocketHandler` instances send messages to TCP/IP sockets. " "Since 3.4, Unix domain sockets are also supported." @@ -1686,7 +1692,7 @@ msgstr "" "sockets TCP/IP. Desde la versión 3.4, los sockets de dominio Unix también " "están soportados." -#: ../Doc/howto/logging.rst:950 +#: ../Doc/howto/logging.rst:954 msgid "" ":class:`~handlers.DatagramHandler` instances send messages to UDP sockets. " "Since 3.4, Unix domain sockets are also supported." @@ -1695,7 +1701,7 @@ msgstr "" "sockets UDP. Desde la versión 3.4, los sockets de dominio Unix también están " "soportados." -#: ../Doc/howto/logging.rst:953 +#: ../Doc/howto/logging.rst:957 msgid "" ":class:`~handlers.SMTPHandler` instances send messages to a designated email " "address." @@ -1703,7 +1709,7 @@ msgstr "" "Las instancias de :class:`~handlers.SMTPHandler` envían mensajes a una " "dirección de correo electrónico designada." -#: ../Doc/howto/logging.rst:956 +#: ../Doc/howto/logging.rst:960 msgid "" ":class:`~handlers.SysLogHandler` instances send messages to a Unix syslog " "daemon, possibly on a remote machine." @@ -1711,7 +1717,7 @@ msgstr "" "Las instancias de :class:`~handlers.SysLogHandler` envían mensajes a un " "demonio del syslog de Unix, posiblemente en una máquina remota." -#: ../Doc/howto/logging.rst:959 +#: ../Doc/howto/logging.rst:963 msgid "" ":class:`~handlers.NTEventLogHandler` instances send messages to a Windows " "NT/2000/XP event log." @@ -1719,7 +1725,7 @@ msgstr "" "Las instancias de :class:`~handlers.NTEventLogHandler` envían mensajes a un " "registro de eventos de Windows NT/2000/XP." -#: ../Doc/howto/logging.rst:962 +#: ../Doc/howto/logging.rst:966 msgid "" ":class:`~handlers.MemoryHandler` instances send messages to a buffer in " "memory, which is flushed whenever specific criteria are met." @@ -1727,7 +1733,7 @@ msgstr "" "Las instancias de :class:`~handlers.MemoryHandler` envían mensajes a un " "buffer en la memoria, que es limpiado cuando se cumplen ciertos criterios." -#: ../Doc/howto/logging.rst:965 +#: ../Doc/howto/logging.rst:969 msgid "" ":class:`~handlers.HTTPHandler` instances send messages to an HTTP server " "using either ``GET`` or ``POST`` semantics." @@ -1735,7 +1741,7 @@ msgstr "" "Las instancias de :class:`~handlers.HTTPHandler` envían mensajes a un " "servidor HTTP usando la semántica de \"GET\" o \"POST\"." -#: ../Doc/howto/logging.rst:968 +#: ../Doc/howto/logging.rst:972 msgid "" ":class:`~handlers.WatchedFileHandler` instances watch the file they are " "logging to. If the file changes, it is closed and reopened using the file " @@ -1747,7 +1753,7 @@ msgstr "" "usando el nombre del archivo. Este manejador sólo es útil en sistemas tipo " "Unix; Windows no soporta el mecanismo subyacente utilizado." -#: ../Doc/howto/logging.rst:973 +#: ../Doc/howto/logging.rst:977 msgid "" ":class:`~handlers.QueueHandler` instances send messages to a queue, such as " "those implemented in the :mod:`queue` or :mod:`multiprocessing` modules." @@ -1756,11 +1762,12 @@ msgstr "" "cola, como los implementados en los módulos :mod:`queue` or :mod:" "`multiprocessing`." -#: ../Doc/howto/logging.rst:976 +#: ../Doc/howto/logging.rst:980 +#, fuzzy msgid "" ":class:`NullHandler` instances do nothing with error messages. They are used " "by library developers who want to use logging, but want to avoid the 'No " -"handlers could be found for logger XXX' message which can be displayed if " +"handlers could be found for logger *XXX*' message which can be displayed if " "the library user has not configured logging. See :ref:`library-config` for " "more information." msgstr "" @@ -1771,15 +1778,15 @@ msgstr "" "la biblioteca no ha configurado el registro. Vea :ref:`library-config` para " "más información." -#: ../Doc/howto/logging.rst:982 +#: ../Doc/howto/logging.rst:986 msgid "The :class:`NullHandler` class." msgstr "La clase :class:`NullHandler`." -#: ../Doc/howto/logging.rst:985 +#: ../Doc/howto/logging.rst:989 msgid "The :class:`~handlers.QueueHandler` class." msgstr "La :class:`~handlers.QueueHandler` (La clase de gestores de Cola)." -#: ../Doc/howto/logging.rst:988 +#: ../Doc/howto/logging.rst:992 msgid "" "The :class:`NullHandler`, :class:`StreamHandler` and :class:`FileHandler` " "classes are defined in the core logging package. The other handlers are " @@ -1792,7 +1799,7 @@ msgstr "" "(También hay otro submódulo, :mod:`logging.config`, para la funcionalidad de " "configuración)" -#: ../Doc/howto/logging.rst:993 +#: ../Doc/howto/logging.rst:997 #, python-format msgid "" "Logged messages are formatted for presentation through instances of the :" @@ -1803,7 +1810,7 @@ msgstr "" "instancias de la clase :class:`Formatter`. Se inicializan con una cadena de " "formato adecuada para su uso con el operador % y un diccionario." -#: ../Doc/howto/logging.rst:997 +#: ../Doc/howto/logging.rst:1001 msgid "" "For formatting multiple messages in a batch, instances of :class:`~handlers." "BufferingFormatter` can be used. In addition to the format string (which is " @@ -1815,7 +1822,7 @@ msgstr "" "(que se aplica a cada mensaje del lote), hay una provisión para cadenas de " "formato de cabecera y de tráiler." -#: ../Doc/howto/logging.rst:1002 +#: ../Doc/howto/logging.rst:1006 msgid "" "When filtering based on logger level and/or handler level is not enough, " "instances of :class:`Filter` can be added to both :class:`Logger` and :class:" @@ -1832,7 +1839,7 @@ msgstr "" "todos sus filtros para obtener permiso. Si algún filtro retorna un valor " "falso, el mensaje no se procesa más." -#: ../Doc/howto/logging.rst:1009 +#: ../Doc/howto/logging.rst:1013 msgid "" "The basic :class:`Filter` functionality allows filtering by specific logger " "name. If this feature is used, messages sent to the named logger and its " @@ -1843,11 +1850,11 @@ msgstr "" "registrador nombrado y a sus hijos se permiten a través del filtro, y todos " "los demás se eliminan." -#: ../Doc/howto/logging.rst:1017 +#: ../Doc/howto/logging.rst:1021 msgid "Exceptions raised during logging" msgstr "Excepciones lanzadas durante logging" -#: ../Doc/howto/logging.rst:1019 +#: ../Doc/howto/logging.rst:1023 msgid "" "The logging package is designed to swallow exceptions which occur while " "logging in production. This is so that errors which occur while handling " @@ -1860,7 +1867,7 @@ msgstr "" "configuración del registro, errores de red u otros errores similares - no " "causen que la aplicación que utiliza el registro termine prematuramente." -#: ../Doc/howto/logging.rst:1024 +#: ../Doc/howto/logging.rst:1028 msgid "" ":class:`SystemExit` and :class:`KeyboardInterrupt` exceptions are never " "swallowed. Other exceptions which occur during the :meth:`~Handler.emit` " @@ -1872,7 +1879,7 @@ msgstr "" "excepciones que ocurren durante el método :meth:`~Handler.emit` de una " "subclase :class:`Handler` se pasan a su método :meth:`~Handler.handleError` ." -#: ../Doc/howto/logging.rst:1029 +#: ../Doc/howto/logging.rst:1033 msgid "" "The default implementation of :meth:`~Handler.handleError` in :class:" "`Handler` checks to see if a module-level variable, :data:`raiseExceptions`, " @@ -1884,7 +1891,7 @@ msgstr "" "`raiseExceptions`, está establecida. Si se establece, se imprime una traza " "en :data:`sys.stderr`. Si no se establece, se traga la excepción." -#: ../Doc/howto/logging.rst:1034 +#: ../Doc/howto/logging.rst:1038 msgid "" "The default value of :data:`raiseExceptions` is ``True``. This is because " "during development, you typically want to be notified of any exceptions that " @@ -1896,11 +1903,11 @@ msgstr "" "notificado de cualquier excepción que ocurra. Se aconseja que establezca :" "data:`raiseExceptions` a ``False`` para el uso en producción." -#: ../Doc/howto/logging.rst:1044 +#: ../Doc/howto/logging.rst:1048 msgid "Using arbitrary objects as messages" msgstr "Usando objetos arbitrarios como mensajes" -#: ../Doc/howto/logging.rst:1046 +#: ../Doc/howto/logging.rst:1050 msgid "" "In the preceding sections and examples, it has been assumed that the message " "passed when logging the event is a string. However, this is not the only " @@ -1920,11 +1927,11 @@ msgstr "" "método :class:`~handlers.SocketHandler` emite un evento al *pickling* y " "enviarlo por el cable." -#: ../Doc/howto/logging.rst:1057 +#: ../Doc/howto/logging.rst:1061 msgid "Optimization" msgstr "Optimización" -#: ../Doc/howto/logging.rst:1059 +#: ../Doc/howto/logging.rst:1063 msgid "" "Formatting of message arguments is deferred until it cannot be avoided. " "However, computing the arguments passed to the logging method can also be " @@ -1942,7 +1949,7 @@ msgstr "" "y retorna true si el evento sería creado por el *Logger* para ese nivel de " "llamada. Puedes escribir código como este::" -#: ../Doc/howto/logging.rst:1071 +#: ../Doc/howto/logging.rst:1075 msgid "" "so that if the logger's threshold is set above ``DEBUG``, the calls to :func:" "`expensive_func1` and :func:`expensive_func2` are never made." @@ -1951,7 +1958,7 @@ msgstr "" "``DEBUG``, las llamadas a :func:`expensive_func1` y :func:`expensive_func2` " "nunca se hacen." -#: ../Doc/howto/logging.rst:1074 +#: ../Doc/howto/logging.rst:1078 msgid "" "In some cases, :meth:`~Logger.isEnabledFor` can itself be more expensive " "than you'd like (e.g. for deeply nested loggers where an explicit level is " @@ -1973,7 +1980,7 @@ msgstr "" "dinámicamente mientras la aplicación se está ejecutando (lo cual no es tan " "común)." -#: ../Doc/howto/logging.rst:1083 +#: ../Doc/howto/logging.rst:1087 msgid "" "There are other optimizations which can be made for specific applications " "which need more precise control over what logging information is collected. " @@ -1985,19 +1992,19 @@ msgstr "" "recoge. Aquí hay una lista de cosas que puede hacer para evitar el " "procesamiento durante el registro que no necesita:" -#: ../Doc/howto/logging.rst:1089 +#: ../Doc/howto/logging.rst:1093 msgid "What you don't want to collect" msgstr "Lo que no quieres colectar" -#: ../Doc/howto/logging.rst:1089 +#: ../Doc/howto/logging.rst:1093 msgid "How to avoid collecting it" msgstr "Cómo evitar coleccionarlo" -#: ../Doc/howto/logging.rst:1091 +#: ../Doc/howto/logging.rst:1095 msgid "Information about where calls were made from." msgstr "Información sobre dónde se hicieron las llamadas." -#: ../Doc/howto/logging.rst:1091 +#: ../Doc/howto/logging.rst:1095 msgid "" "Set ``logging._srcfile`` to ``None``. This avoids calling :func:`sys." "_getframe`, which may help to speed up your code in environments like PyPy " @@ -2007,23 +2014,23 @@ msgstr "" "_getframe`, que puede ayudar a acelerar su código en entornos como PyPy (que " "no puede acelerar el código que usa :func:`sys._getframe`)." -#: ../Doc/howto/logging.rst:1097 +#: ../Doc/howto/logging.rst:1101 msgid "Threading information." msgstr "Información sobre código con hilos." -#: ../Doc/howto/logging.rst:1097 +#: ../Doc/howto/logging.rst:1101 msgid "Set ``logging.logThreads`` to ``False``." msgstr "Establece ``logging.logThreads`` en ``False``." -#: ../Doc/howto/logging.rst:1099 +#: ../Doc/howto/logging.rst:1103 msgid "Current process ID (:func:`os.getpid`)" msgstr "ID del proceso actual (:func:`os.getpid`)" -#: ../Doc/howto/logging.rst:1099 +#: ../Doc/howto/logging.rst:1103 msgid "Set ``logging.logProcesses`` to ``False``." msgstr "Establece ``logging.logProcesses`` en ``False``." -#: ../Doc/howto/logging.rst:1101 +#: ../Doc/howto/logging.rst:1105 msgid "" "Current process name when using ``multiprocessing`` to manage multiple " "processes." @@ -2031,11 +2038,20 @@ msgstr "" "Nombre del proceso actual cuando se usa ``multiprocessing`` para administrar " "múltiples procesos." -#: ../Doc/howto/logging.rst:1101 +#: ../Doc/howto/logging.rst:1105 msgid "Set ``logging.logMultiprocessing`` to ``False``." msgstr "Establece ``logging.logMultiprocessing`` en ``False``." -#: ../Doc/howto/logging.rst:1105 +#: ../Doc/howto/logging.rst:1108 +msgid "Current :class:`asyncio.Task` name when using ``asyncio``." +msgstr "" + +#: ../Doc/howto/logging.rst:1108 +#, fuzzy +msgid "Set ``logging.logAsyncioTasks`` to ``False``." +msgstr "Establece ``logging.logThreads`` en ``False``." + +#: ../Doc/howto/logging.rst:1112 msgid "" "Also note that the core logging module only includes the basic handlers. If " "you don't import :mod:`logging.handlers` and :mod:`logging.config`, they " @@ -2045,30 +2061,34 @@ msgstr "" "gestores básicos. Si no importas :mod:`logging.handlers` y :mod:`logging." "config`, no ocuparán ninguna memoria." -#: ../Doc/howto/logging.rst:1112 +#: ../Doc/howto/logging.rst:1119 +msgid "Other resources" +msgstr "" + +#: ../Doc/howto/logging.rst:1124 msgid "Module :mod:`logging`" msgstr "Módulo :mod:`logging`" -#: ../Doc/howto/logging.rst:1112 +#: ../Doc/howto/logging.rst:1124 msgid "API reference for the logging module." msgstr "Referencia API para el módulo de registro." -#: ../Doc/howto/logging.rst:1115 +#: ../Doc/howto/logging.rst:1127 msgid "Module :mod:`logging.config`" msgstr "Módulo :mod:`logging.config`" -#: ../Doc/howto/logging.rst:1115 +#: ../Doc/howto/logging.rst:1127 msgid "Configuration API for the logging module." msgstr "API de configuración para el módulo de registro." -#: ../Doc/howto/logging.rst:1118 +#: ../Doc/howto/logging.rst:1130 msgid "Module :mod:`logging.handlers`" msgstr "Módulo :mod:`logging.handlers`" -#: ../Doc/howto/logging.rst:1118 +#: ../Doc/howto/logging.rst:1130 msgid "Useful handlers included with the logging module." msgstr "Gestores útiles incluidos en el módulo de registro." -#: ../Doc/howto/logging.rst:1120 +#: ../Doc/howto/logging.rst:1132 msgid ":ref:`A logging cookbook `" msgstr ":ref:`Un libro de recetas `" diff --git a/howto/perf_profiling.po b/howto/perf_profiling.po new file mode 100644 index 0000000000..74a45722a2 --- /dev/null +++ b/howto/perf_profiling.po @@ -0,0 +1,154 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001-2023, Python Software Foundation +# This file is distributed under the same license as the Python en Español +# package. +# FIRST AUTHOR , 2023. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python en Español 3.12\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: es\n" +"Language-Team: es \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.13.0\n" + +#: ../Doc/howto/perf_profiling.rst:7 +msgid "Python support for the Linux ``perf`` profiler" +msgstr "" + +#: ../Doc/howto/perf_profiling.rst +msgid "author" +msgstr "" + +#: ../Doc/howto/perf_profiling.rst:9 +msgid "Pablo Galindo" +msgstr "" + +#: ../Doc/howto/perf_profiling.rst:11 +msgid "" +"`The Linux perf profiler `_ is a very powerful " +"tool that allows you to profile and obtain information about the performance " +"of your application. ``perf`` also has a very vibrant ecosystem of tools " +"that aid with the analysis of the data that it produces." +msgstr "" + +#: ../Doc/howto/perf_profiling.rst:17 +msgid "" +"The main problem with using the ``perf`` profiler with Python applications " +"is that ``perf`` only gets information about native symbols, that is, the " +"names of functions and procedures written in C. This means that the names " +"and file names of Python functions in your code will not appear in the " +"output of ``perf``." +msgstr "" + +#: ../Doc/howto/perf_profiling.rst:22 +msgid "" +"Since Python 3.12, the interpreter can run in a special mode that allows " +"Python functions to appear in the output of the ``perf`` profiler. When this " +"mode is enabled, the interpreter will interpose a small piece of code " +"compiled on the fly before the execution of every Python function and it " +"will teach ``perf`` the relationship between this piece of code and the " +"associated Python function using :doc:`perf map files <../c-api/perfmaps>`." +msgstr "" + +#: ../Doc/howto/perf_profiling.rst:31 +msgid "" +"Support for the ``perf`` profiler is currently only available for Linux on " +"select architectures. Check the output of the ``configure`` build step or " +"check the output of ``python -m sysconfig | grep HAVE_PERF_TRAMPOLINE`` to " +"see if your system is supported." +msgstr "" + +#: ../Doc/howto/perf_profiling.rst:36 +msgid "For example, consider the following script:" +msgstr "" + +#: ../Doc/howto/perf_profiling.rst:55 +msgid "We can run ``perf`` to sample CPU stack traces at 9999 hertz::" +msgstr "" + +#: ../Doc/howto/perf_profiling.rst:59 +msgid "Then we can use ``perf report`` to analyze the data:" +msgstr "" + +#: ../Doc/howto/perf_profiling.rst:100 +msgid "" +"As you can see, the Python functions are not shown in the output, only " +"``_Py_Eval_EvalFrameDefault`` (the function that evaluates the Python " +"bytecode) shows up. Unfortunately that's not very useful because all Python " +"functions use the same C function to evaluate bytecode so we cannot know " +"which Python function corresponds to which bytecode-evaluating function." +msgstr "" + +#: ../Doc/howto/perf_profiling.rst:105 +msgid "" +"Instead, if we run the same experiment with ``perf`` support enabled we get:" +msgstr "" + +#: ../Doc/howto/perf_profiling.rst:152 +msgid "How to enable ``perf`` profiling support" +msgstr "" + +#: ../Doc/howto/perf_profiling.rst:154 +msgid "" +"``perf`` profiling support can be enabled either from the start using the " +"environment variable :envvar:`PYTHONPERFSUPPORT` or the :option:`-X perf <-" +"X>` option, or dynamically using :func:`sys.activate_stack_trampoline` and :" +"func:`sys.deactivate_stack_trampoline`." +msgstr "" + +#: ../Doc/howto/perf_profiling.rst:160 +msgid "" +"The :mod:`!sys` functions take precedence over the :option:`!-X` option, " +"the :option:`!-X` option takes precedence over the environment variable." +msgstr "" + +#: ../Doc/howto/perf_profiling.rst:163 +msgid "Example, using the environment variable::" +msgstr "" + +#: ../Doc/howto/perf_profiling.rst:169 +msgid "Example, using the :option:`!-X` option::" +msgstr "" + +#: ../Doc/howto/perf_profiling.rst:174 +msgid "Example, using the :mod:`sys` APIs in file :file:`example.py`:" +msgstr "" + +#: ../Doc/howto/perf_profiling.rst:186 +msgid "...then::" +msgstr "" + +#: ../Doc/howto/perf_profiling.rst:193 +msgid "How to obtain the best results" +msgstr "" + +#: ../Doc/howto/perf_profiling.rst:195 +msgid "" +"For best results, Python should be compiled with ``CFLAGS=\"-fno-omit-frame-" +"pointer -mno-omit-leaf-frame-pointer\"`` as this allows profilers to unwind " +"using only the frame pointer and not on DWARF debug information. This is " +"because as the code that is interposed to allow ``perf`` support is " +"dynamically generated it doesn't have any DWARF debugging information " +"available." +msgstr "" + +#: ../Doc/howto/perf_profiling.rst:202 +msgid "" +"You can check if your system has been compiled with this flag by running::" +msgstr "" + +#: ../Doc/howto/perf_profiling.rst:206 +msgid "" +"If you don't see any output it means that your interpreter has not been " +"compiled with frame pointers and therefore it may not be able to show Python " +"functions in the output of ``perf``." +msgstr "" diff --git a/howto/pyporting.po b/howto/pyporting.po index 8c2e262711..bb31ba7d7e 100644 --- a/howto/pyporting.po +++ b/howto/pyporting.po @@ -10,19 +10,20 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-16 21:42+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-12 20:30+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" -"Generated-By: Babel 2.9.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/howto/pyporting.rst:5 -msgid "Porting Python 2 Code to Python 3" +#, fuzzy +msgid "How to port Python 2 Code to Python 3" msgstr "Portando código de Python 2 a Python 3" #: ../Doc/howto/pyporting.rst @@ -38,17 +39,18 @@ msgstr "Resumen" #: ../Doc/howto/pyporting.rst:11 msgid "" -"With Python 3 being the future of Python while Python 2 is still in active " -"use, it is good to have your project available for both major releases of " -"Python. This guide is meant to help you figure out how best to support both " -"Python 2 & 3 simultaneously." +"Python 2 reached its official end-of-life at the start of 2020. This means " +"that no new bug reports, fixes, or changes will be made to Python 2 - it's " +"no longer supported." +msgstr "" + +#: ../Doc/howto/pyporting.rst:15 +msgid "" +"This guide is intended to provide you with a path to Python 3 for your code, " +"that includes compatibility with Python 2 as a first step." msgstr "" -"Dado que Python 3 es el futuro de Python mientras Python 2 todavía está en " -"uso activo, es bueno tener su proyecto disponible para ambas versiones " -"principales de Python. Esta guía está diseñada para ayudarle a averiguar la " -"mejor manera de admitir Python 2 y 3 simultáneamente." -#: ../Doc/howto/pyporting.rst:16 +#: ../Doc/howto/pyporting.rst:18 msgid "" "If you are looking to port an extension module instead of pure Python code, " "please see :ref:`cporting-howto`." @@ -56,41 +58,29 @@ msgstr "" "Si está buscando portar un módulo de extensión en lugar de código Python " "puro, consulte :ref:`cporting-howto`." -#: ../Doc/howto/pyporting.rst:19 +#: ../Doc/howto/pyporting.rst:21 msgid "" -"If you would like to read one core Python developer's take on why Python 3 " -"came into existence, you can read Nick Coghlan's `Python 3 Q & A`_ or Brett " -"Cannon's `Why Python 3 exists`_." +"The archived python-porting_ mailing list may contain some useful guidance." msgstr "" -"Si desea leer la opinión de un desarrollador central de Python sobre por qué " -"Python 3 nació, puede leer las `Python 3 Q & A`_ de Nick Coghlan o el " -"artículo de Brett Cannon `Why Python 3 exists`_." -#: ../Doc/howto/pyporting.rst:24 -msgid "" -"For help with porting, you can view the archived python-porting_ mailing " -"list." -msgstr "" -"Para obtener ayuda con la portabilidad, puede ver la lista de correo " -"archivada de python-porting_." - -#: ../Doc/howto/pyporting.rst:27 +#: ../Doc/howto/pyporting.rst:25 msgid "The Short Explanation" msgstr "La breve explicación" -#: ../Doc/howto/pyporting.rst:29 +#: ../Doc/howto/pyporting.rst:27 +#, fuzzy msgid "" -"To make your project be single-source Python 2/3 compatible, the basic steps " +"To achieve Python 2/3 compatibility in a single code base, the basic steps " "are:" msgstr "" "Para que su proyecto sea compatible con Python 2/3 de una sola fuente, los " "pasos básicos son:" -#: ../Doc/howto/pyporting.rst:32 +#: ../Doc/howto/pyporting.rst:30 msgid "Only worry about supporting Python 2.7" msgstr "Sólo preocúpate por admitir Python 2.7" -#: ../Doc/howto/pyporting.rst:33 +#: ../Doc/howto/pyporting.rst:31 msgid "" "Make sure you have good test coverage (coverage.py_ can help; ``python -m " "pip install coverage``)" @@ -98,11 +88,12 @@ msgstr "" "Asegúrese de tener una buena cobertura de prueba (coberturas.py_ puede " "ayudar; ``python -m pip install coverage``)" -#: ../Doc/howto/pyporting.rst:35 ../Doc/howto/pyporting.rst:122 -msgid "Learn the differences between Python 2 & 3" +#: ../Doc/howto/pyporting.rst:33 +#, fuzzy +msgid "Learn the differences between Python 2 and 3" msgstr "Aprende las diferencias entre Python 2 & 3" -#: ../Doc/howto/pyporting.rst:36 +#: ../Doc/howto/pyporting.rst:34 msgid "" "Use Futurize_ (or Modernize_) to update your code (e.g. ``python -m pip " "install future``)" @@ -110,7 +101,7 @@ msgstr "" "Utilice Futurize_ (o Modernize_) para actualizar su código (por ejemplo, " "``python -m pip install future``)" -#: ../Doc/howto/pyporting.rst:37 +#: ../Doc/howto/pyporting.rst:35 msgid "" "Use Pylint_ to help make sure you don't regress on your Python 3 support " "(``python -m pip install pylint``)" @@ -118,7 +109,7 @@ msgstr "" "Use Pylint_ para asegurarse de que no retrocede en su compatibilidad con " "Python 3 (``python -m pip install pylint``)" -#: ../Doc/howto/pyporting.rst:39 +#: ../Doc/howto/pyporting.rst:37 msgid "" "Use caniusepython3_ to find out which of your dependencies are blocking your " "use of Python 3 (``python -m pip install caniusepython3``)" @@ -126,10 +117,11 @@ msgstr "" "Use caniusepython3_ para averiguar cuáles de sus dependencias están " "bloqueando el uso de Python 3 (``python -m pip install caniusepython3``)" -#: ../Doc/howto/pyporting.rst:41 +#: ../Doc/howto/pyporting.rst:39 +#, fuzzy msgid "" "Once your dependencies are no longer blocking you, use continuous " -"integration to make sure you stay compatible with Python 2 & 3 (tox_ can " +"integration to make sure you stay compatible with Python 2 and 3 (tox_ can " "help test against multiple versions of Python; ``python -m pip install tox``)" msgstr "" "Una vez que sus dependencias ya no lo bloqueen, use la integración continua " @@ -137,18 +129,19 @@ msgstr "" "ayudar a probar contra múltiples versiones de Python; ``python -m pip " "install tox``)" -#: ../Doc/howto/pyporting.rst:44 +#: ../Doc/howto/pyporting.rst:42 +#, fuzzy msgid "" "Consider using optional static type checking to make sure your type usage " -"works in both Python 2 & 3 (e.g. use mypy_ to check your typing under both " -"Python 2 & Python 3; ``python -m pip install mypy``)." +"works in both Python 2 and 3 (e.g. use mypy_ to check your typing under both " +"Python 2 and Python 3; ``python -m pip install mypy``)." msgstr "" "Considere usar la verificación de tipo estática opcional para asegurarse de " "que su uso de tipo funcione tanto en Python 2 como en 3 (por ejemplo, use " "mypy_ para verificar su escritura en Python 2 y Python 3; ``python -m pip " "install mypy``)." -#: ../Doc/howto/pyporting.rst:50 +#: ../Doc/howto/pyporting.rst:48 msgid "" "Note: Using ``python -m pip install`` guarantees that the ``pip`` you invoke " "is the one installed for the Python currently in use, whether it be a system-" @@ -159,59 +152,44 @@ msgstr "" "``pip`` de todo el sistema o uno instalado dentro de un :ref:`entorno " "virtual `." -#: ../Doc/howto/pyporting.rst:56 +#: ../Doc/howto/pyporting.rst:54 msgid "Details" msgstr "Detalles" -#: ../Doc/howto/pyporting.rst:58 +#: ../Doc/howto/pyporting.rst:56 msgid "" -"A key point about supporting Python 2 & 3 simultaneously is that you can " -"start **today**! Even if your dependencies are not supporting Python 3 yet " -"that does not mean you can't modernize your code **now** to support Python " -"3. Most changes required to support Python 3 lead to cleaner code using " -"newer practices even in Python 2 code." +"Even if other factors - say, dependencies over which you have no control - " +"still require you to support Python 2, that does not prevent you taking the " +"step of including Python 3 support." msgstr "" -"Un punto clave sobre el soporte de Python 2 & 3 simultáneamente es que se " -"puede empezar **hoy**! Incluso si sus dependencias no son compatibles con " -"Python 3 todavía eso no significa que no puede modernizar el código " -"**ahora** para admitir Python 3. La mayoría de los cambios necesarios para " -"admitir Python 3 conducen a código más limpio utilizando prácticas más " -"recientes incluso en código Python 2." -#: ../Doc/howto/pyporting.rst:64 +#: ../Doc/howto/pyporting.rst:60 msgid "" -"Another key point is that modernizing your Python 2 code to also support " -"Python 3 is largely automated for you. While you might have to make some API " -"decisions thanks to Python 3 clarifying text data versus binary data, the " -"lower-level work is now mostly done for you and thus can at least benefit " -"from the automated changes immediately." +"Most changes required to support Python 3 lead to cleaner code using newer " +"practices even in Python 2 code." msgstr "" -"Otro punto clave es que la modernización del código de Python 2 para que " -"también admita Python 3 está en gran medida automatizada para usted. Si bien " -"es posible que tenga que tomar algunas decisiones de API gracias a python 3 " -"aclarando los datos de texto frente a los datos binarios, el trabajo de " -"nivel inferior ahora se realiza principalmente por usted y, por lo tanto, al " -"menos puede beneficiarse de los cambios automatizados inmediatamente." -#: ../Doc/howto/pyporting.rst:70 +#: ../Doc/howto/pyporting.rst:65 +msgid "Different versions of Python 2" +msgstr "" + +#: ../Doc/howto/pyporting.rst:67 msgid "" -"Keep those key points in mind while you read on about the details of porting " -"your code to support Python 2 & 3 simultaneously." +"Ideally, your code should be compatible with Python 2.7, which was the last " +"supported version of Python 2." msgstr "" -"Tenga en cuenta esos puntos clave mientras lee sobre los detalles de la " -"migración del código para admitir Python 2 & 3 simultáneamente." -#: ../Doc/howto/pyporting.rst:75 -msgid "Drop support for Python 2.6 and older" -msgstr "Compatibilidad con Python 2.6 y versiones anteriores" +#: ../Doc/howto/pyporting.rst:70 +msgid "" +"Some of the tools mentioned in this guide will not work with Python 2.6." +msgstr "" -#: ../Doc/howto/pyporting.rst:77 +#: ../Doc/howto/pyporting.rst:72 +#, fuzzy msgid "" -"While you can make Python 2.5 work with Python 3, it is **much** easier if " -"you only have to work with Python 2.7. If dropping Python 2.5 is not an " -"option then the six_ project can help you support Python 2.5 & 3 " -"simultaneously (``python -m pip install six``). Do realize, though, that " -"nearly all the projects listed in this HOWTO will not be available to you." +"If absolutely necessary, the six_ project can help you support Python 2.5 " +"and 3 simultaneously. Do realize, though, that nearly all the projects " +"listed in this guide will not be available to you." msgstr "" "Si bien puede hacer que Python 2.5 funcione con Python 3, es **mucho** más " "fácil si solo tiene que trabajar con Python 2.7. Si eliminar Python 2.5 no " @@ -220,13 +198,13 @@ msgstr "" "cuenta que casi todos los proyectos enumerados en este COMO no estarán " "disponibles para usted." -#: ../Doc/howto/pyporting.rst:83 +#: ../Doc/howto/pyporting.rst:76 +#, fuzzy msgid "" -"If you are able to skip Python 2.5 and older, then the required changes to " -"your code should continue to look and feel like idiomatic Python code. At " -"worst you will have to use a function instead of a method in some instances " -"or have to import a function instead of using a built-in one, but otherwise " -"the overall transformation should not feel foreign to you." +"If you are able to skip Python 2.5 and older, the required changes to your " +"code will be minimal. At worst you will have to use a function instead of a " +"method in some instances or have to import a function instead of using a " +"built-in one." msgstr "" "Si puede omitir Python 2.5 y versiones anteriores, los cambios necesarios en " "el código deben seguir pareciendo código Python idiomático. En el peor de " @@ -234,33 +212,14 @@ msgstr "" "casos o tendrá que importar una función en lugar de usar una integrada, pero " "de lo contrario la transformación general no debería sentirse ajena a usted." -#: ../Doc/howto/pyporting.rst:89 -msgid "" -"But you should aim for only supporting Python 2.7. Python 2.6 is no longer " -"freely supported and thus is not receiving bugfixes. This means **you** will " -"have to work around any issues you come across with Python 2.6. There are " -"also some tools mentioned in this HOWTO which do not support Python 2.6 (e." -"g., Pylint_), and this will become more commonplace as time goes on. It will " -"simply be easier for you if you only support the versions of Python that you " -"have to support." -msgstr "" -"Pero usted debe apuntar a sólo apoyar Python 2.7. Python 2.6 ya no se admite " -"libremente y, por lo tanto, no recibe correcciones de errores. Esto " -"significa que **usted** tendrá que solucionar cualquier problema que " -"encuentre con Python 2.6. También hay algunas herramientas mencionadas en " -"este HOWTO que no son compatibles con Python 2.6 (por ejemplo, Pylint_), y " -"esto se volverá más común a medida que pasa el tiempo. Simplemente será más " -"fácil para usted si sólo admite las versiones de Python que tiene que " -"admitir." - -#: ../Doc/howto/pyporting.rst:98 +#: ../Doc/howto/pyporting.rst:83 msgid "" "Make sure you specify the proper version support in your ``setup.py`` file" msgstr "" "Asegúrese de especificar el soporte de versión adecuado en su archivo " "``setup.py``" -#: ../Doc/howto/pyporting.rst:100 +#: ../Doc/howto/pyporting.rst:85 msgid "" "In your ``setup.py`` file you should have the proper `trove classifier`_ " "specifying what versions of Python you support. As your project does not " @@ -276,11 +235,11 @@ msgstr "" "versión principal/menor de Python que admita, por ejemplo, ``Programming " "Language :: Python :: 2.7``." -#: ../Doc/howto/pyporting.rst:109 +#: ../Doc/howto/pyporting.rst:94 msgid "Have good test coverage" msgstr "Tener una buena cobertura de prueba" -#: ../Doc/howto/pyporting.rst:111 +#: ../Doc/howto/pyporting.rst:96 #, python-format msgid "" "Once you have your code supporting the oldest version of Python 2 you want " @@ -302,15 +261,18 @@ msgstr "" "difícil obtener una cobertura superior al 90%). Si aún no tiene una " "herramienta para medir la cobertura de la prueba, se recomienda cover.py_." -#: ../Doc/howto/pyporting.rst:124 +#: ../Doc/howto/pyporting.rst:107 +#, fuzzy +msgid "Be aware of the differences between Python 2 and 3" +msgstr "Aprende las diferencias entre Python 2 & 3" + +#: ../Doc/howto/pyporting.rst:109 +#, fuzzy msgid "" "Once you have your code well-tested you are ready to begin porting your code " "to Python 3! But to fully understand how your code is going to change and " "what you want to look out for while you code, you will want to learn what " -"changes Python 3 makes in terms of Python 2. Typically the two best ways of " -"doing that is reading the :ref:`\"What's New\" ` doc for " -"each release of Python 3 and the `Porting to Python 3`_ book (which is free " -"online). There is also a handy `cheat sheet`_ from the Python-Future project." +"changes Python 3 makes in terms of Python 2." msgstr "" "Una vez que tenga su código bien probado, ¡está listo para comenzar a migrar " "su código a Python 3! Pero para comprender completamente cómo va a cambiar " @@ -321,47 +283,55 @@ msgstr "" "Python 3`_ (que es gratis en línea). También hay una práctica `cheat sheet`_ " "del proyecto Python-Future.." -#: ../Doc/howto/pyporting.rst:134 +#: ../Doc/howto/pyporting.rst:114 +msgid "" +"Some resources for understanding the differences and their implications for " +"you code:" +msgstr "" + +#: ../Doc/howto/pyporting.rst:117 +msgid "" +"the :ref:`\"What's New\" ` doc for each release of Python 3" +msgstr "" + +#: ../Doc/howto/pyporting.rst:118 +msgid "the `Porting to Python 3`_ book (which is free online)" +msgstr "" + +#: ../Doc/howto/pyporting.rst:119 +msgid "the handy `cheat sheet`_ from the Python-Future project." +msgstr "" + +#: ../Doc/howto/pyporting.rst:123 msgid "Update your code" msgstr "Actualiza tu código" -#: ../Doc/howto/pyporting.rst:136 +#: ../Doc/howto/pyporting.rst:125 +msgid "There are tools available that can port your code automatically." +msgstr "" + +#: ../Doc/howto/pyporting.rst:127 msgid "" -"Once you feel like you know what is different in Python 3 compared to Python " -"2, it's time to update your code! You have a choice between two tools in " -"porting your code automatically: Futurize_ and Modernize_. Which tool you " -"choose will depend on how much like Python 3 you want your code to be. " "Futurize_ does its best to make Python 3 idioms and practices exist in " "Python 2, e.g. backporting the ``bytes`` type from Python 3 so that you have " -"semantic parity between the major versions of Python. Modernize_, on the " -"other hand, is more conservative and targets a Python 2/3 subset of Python, " -"directly relying on six_ to help provide compatibility. As Python 3 is the " -"future, it might be best to consider Futurize to begin adjusting to any new " -"practices that Python 3 introduces which you are not accustomed to yet." -msgstr "" -"Una vez que sientas que sabes lo que es diferente en Python 3 en comparación " -"con Python 2, ¡es hora de actualizar tu código! Puede elegir entre dos " -"herramientas para migrar el código automáticamente: Futurize_ y Modernize_. " -"La herramienta que elija dependerá de la cantidad similar a Python 3 que " -"desea que sea el código. Futurize_ hace todo lo posible para que Python 3 " -"modismos y prácticas existan en Python 2, por ejemplo, backporting el tipo " -"``bytes`` de Python 3 para que tenga paridad semántica entre las versiones " -"principales de Python. Modernize_, por otro lado, es más conservador y se " -"dirige a un subconjunto de Python 2/3 de Python, basándose directamente en " -"six_ para ayudar a proporcionar compatibilidad. Como Python 3 es el futuro, " -"podría ser mejor considerar Futurize para comenzar a adaptarse a cualquier " -"nueva práctica que Python 3 introduce a la que aún no está acostumbrado." +"semantic parity between the major versions of Python. This is the better " +"approach for most cases." +msgstr "" -#: ../Doc/howto/pyporting.rst:148 +#: ../Doc/howto/pyporting.rst:132 msgid "" -"Regardless of which tool you choose, they will update your code to run under " -"Python 3 while staying compatible with the version of Python 2 you started " -"with. Depending on how conservative you want to be, you may want to run the " -"tool over your test suite first and visually inspect the diff to make sure " -"the transformation is accurate. After you have transformed your test suite " -"and verified that all the tests still pass as expected, then you can " -"transform your application code knowing that any tests which fail is a " -"translation failure." +"Modernize_, on the other hand, is more conservative and targets a Python 2/3 " +"subset of Python, directly relying on six_ to help provide compatibility." +msgstr "" + +#: ../Doc/howto/pyporting.rst:135 +#, fuzzy +msgid "" +"A good approach is to run the tool over your test suite first and visually " +"inspect the diff to make sure the transformation is accurate. After you have " +"transformed your test suite and verified that all the tests still pass as " +"expected, then you can transform your application code knowing that any " +"tests which fail is a translation failure." msgstr "" "Independientemente de la herramienta que elija, actualizarán el código para " "que se ejecute en Python 3 mientras se mantienen compatibles con la versión " @@ -373,45 +343,31 @@ msgstr "" "transformar el código de la aplicación sabiendo que cualquier prueba que " "falle es un error de traducción." -#: ../Doc/howto/pyporting.rst:156 +#: ../Doc/howto/pyporting.rst:141 msgid "" "Unfortunately the tools can't automate everything to make your code work " -"under Python 3 and so there are a handful of things you will need to update " -"manually to get full Python 3 support (which of these steps are necessary " -"vary between the tools). Read the documentation for the tool you choose to " -"use to see what it fixes by default and what it can do optionally to know " -"what will (not) be fixed for you and what you may have to fix on your own (e." -"g. using ``io.open()`` over the built-in ``open()`` function is off by " -"default in Modernize). Luckily, though, there are only a couple of things to " -"watch out for which can be considered large issues that may be hard to debug " -"if not watched for." -msgstr "" -"Desafortunadamente, las herramientas no pueden automatizar todo para que su " -"código funcione bajo Python 3 y por lo que hay un puñado de cosas que tendrá " -"que actualizar manualmente para obtener soporte completo de Python 3 (cuáles " -"de estos pasos son necesarios varían entre las herramientas). Lea la " -"documentación de la herramienta que elige utilizar para ver lo que corrige " -"de forma predeterminada y lo que puede hacer opcionalmente para saber lo que " -"(no) se fijará para usted y lo que puede tener que corregir por su cuenta " -"(por ejemplo, usando ``io.open()`` sobre la función incorporada ``open()`` " -"está desactivada por defecto en Modernizar). Afortunadamente, sin embargo, " -"sólo hay un par de cosas a tener en cuenta por las cuales se pueden " -"considerar grandes problemas que pueden ser difíciles de depurar si no se " -"observan." - -#: ../Doc/howto/pyporting.rst:168 +"under Python 3, and you will also need to read the tools' documentation in " +"case some options you need are turned off by default." +msgstr "" + +#: ../Doc/howto/pyporting.rst:145 +msgid "Key issues to be aware of and check for:" +msgstr "" + +#: ../Doc/howto/pyporting.rst:148 msgid "Division" msgstr "División" -#: ../Doc/howto/pyporting.rst:170 +#: ../Doc/howto/pyporting.rst:150 +#, fuzzy msgid "" -"In Python 3, ``5 / 2 == 2.5`` and not ``2``; all division between ``int`` " -"values result in a ``float``. This change has actually been planned since " -"Python 2.2 which was released in 2002. Since then users have been encouraged " -"to add ``from __future__ import division`` to any and all files which use " -"the ``/`` and ``//`` operators or to be running the interpreter with the ``-" -"Q`` flag. If you have not been doing this then you will need to go through " -"your code and do two things:" +"In Python 3, ``5 / 2 == 2.5`` and not ``2`` as it was in Python 2; all " +"division between ``int`` values result in a ``float``. This change has " +"actually been planned since Python 2.2 which was released in 2002. Since " +"then users have been encouraged to add ``from __future__ import division`` " +"to any and all files which use the ``/`` and ``//`` operators or to be " +"running the interpreter with the ``-Q`` flag. If you have not been doing " +"this then you will need to go through your code and do two things:" msgstr "" "En Python 3, ``5 / 2 == 2.5`` y no ``2``; toda división entre los valores " "``int`` da lugar a un ``float``. Este cambio ha sido planeado desde Python " @@ -421,11 +377,11 @@ msgstr "" "intérprete con el indicador ``-Q``. Si no ha estado haciendo esto, entonces " "tendrá que ir a través de su código y hacer dos cosas:" -#: ../Doc/howto/pyporting.rst:178 +#: ../Doc/howto/pyporting.rst:158 msgid "Add ``from __future__ import division`` to your files" msgstr "Añadir ``from __future__ import division`` a sus archivos" -#: ../Doc/howto/pyporting.rst:179 +#: ../Doc/howto/pyporting.rst:159 msgid "" "Update any division operator as necessary to either use ``//`` to use floor " "division or continue using ``/`` and expect a float" @@ -434,7 +390,7 @@ msgstr "" "``//`` para usar la división de suelo o continuar usando ``/`` y esperar un " "número flotante" -#: ../Doc/howto/pyporting.rst:182 +#: ../Doc/howto/pyporting.rst:162 msgid "" "The reason that ``/`` isn't simply translated to ``//`` automatically is " "that if an object defines a ``__truediv__`` method but not ``__floordiv__`` " @@ -447,11 +403,11 @@ msgstr "" "clase definida por el usuario que utiliza ``/`` para significar alguna " "operación pero no ``//`` para la misma cosa o en absoluto)." -#: ../Doc/howto/pyporting.rst:189 +#: ../Doc/howto/pyporting.rst:169 msgid "Text versus binary data" msgstr "Texto frente a datos binarios" -#: ../Doc/howto/pyporting.rst:191 +#: ../Doc/howto/pyporting.rst:171 msgid "" "In Python 2 you could use the ``str`` type for both text and binary data. " "Unfortunately this confluence of two different concepts could lead to " @@ -472,15 +428,13 @@ msgstr "" "que las API no se molestarían explícitamente en admitir explícitamente " "``Unicode`` cuando reclamaban compatibilidad con datos de texto." -#: ../Doc/howto/pyporting.rst:200 +#: ../Doc/howto/pyporting.rst:180 +#, fuzzy msgid "" -"To make the distinction between text and binary data clearer and more " -"pronounced, Python 3 did what most languages created in the age of the " -"internet have done and made text and binary data distinct types that cannot " -"blindly be mixed together (Python predates widespread access to the " -"internet). For any code that deals only with text or only binary data, this " -"separation doesn't pose an issue. But for code that has to deal with both, " -"it does mean you might have to now care about when you are using text " +"Python 3 made text and binary data distinct types that cannot simply be " +"mixed together. For any code that deals only with text or only binary data, " +"this separation doesn't pose an issue. But for code that has to deal with " +"both, it does mean you might have to now care about when you are using text " "compared to binary data, which is why this cannot be entirely automated." msgstr "" "Para hacer la distinción entre texto y datos binarios más claros y " @@ -493,24 +447,20 @@ msgstr "" "que preocuparse ahora cuando está utilizando texto en comparación con los " "datos binarios, por lo que esto no se puede automatizar por completo." -#: ../Doc/howto/pyporting.rst:209 +#: ../Doc/howto/pyporting.rst:186 +#, fuzzy msgid "" -"To start, you will need to decide which APIs take text and which take binary " -"(it is **highly** recommended you don't design APIs that can take both due " -"to the difficulty of keeping the code working; as stated earlier it is " -"difficult to do well). In Python 2 this means making sure the APIs that take " -"text can work with ``unicode`` and those that work with binary data work " -"with the ``bytes`` type from Python 3 (which is a subset of ``str`` in " -"Python 2 and acts as an alias for ``bytes`` type in Python 2). Usually the " -"biggest issue is realizing which methods exist on which types in Python 2 & " -"3 simultaneously (for text that's ``unicode`` in Python 2 and ``str`` in " +"Decide which APIs take text and which take binary (it is **highly** " +"recommended you don't design APIs that can take both due to the difficulty " +"of keeping the code working; as stated earlier it is difficult to do well). " +"In Python 2 this means making sure the APIs that take text can work with " +"``unicode`` and those that work with binary data work with the ``bytes`` " +"type from Python 3 (which is a subset of ``str`` in Python 2 and acts as an " +"alias for ``bytes`` type in Python 2). Usually the biggest issue is " +"realizing which methods exist on which types in Python 2 and 3 " +"simultaneously (for text that's ``unicode`` in Python 2 and ``str`` in " "Python 3, for binary that's ``str``/``bytes`` in Python 2 and ``bytes`` in " -"Python 3). The following table lists the **unique** methods of each data " -"type across Python 2 & 3 (e.g., the ``decode()`` method is usable on the " -"equivalent binary data type in either Python 2 or 3, but it can't be used by " -"the textual data type consistently between Python 2 and 3 because ``str`` in " -"Python 3 doesn't have the method). Do note that as of Python 3.5 the " -"``__mod__`` method was added to the bytes type." +"Python 3)." msgstr "" "Para empezar, tendrá que decidir qué API toman texto y cuáles toman binario " "(es **altamente** recomendado no diseñar API que pueden tomar ambos debido a " @@ -530,39 +480,49 @@ msgstr "" "porque ``str`` en Python 3 no tiene el método). Tenga en cuenta que a partir " "de Python 3.5 se agregó el método ``__mod__`` al tipo bytes." -#: ../Doc/howto/pyporting.rst:226 +#: ../Doc/howto/pyporting.rst:197 +msgid "" +"The following table lists the **unique** methods of each data type across " +"Python 2 and 3 (e.g., the ``decode()`` method is usable on the equivalent " +"binary data type in either Python 2 or 3, but it can't be used by the " +"textual data type consistently between Python 2 and 3 because ``str`` in " +"Python 3 doesn't have the method). Do note that as of Python 3.5 the " +"``__mod__`` method was added to the bytes type." +msgstr "" + +#: ../Doc/howto/pyporting.rst:205 msgid "**Text data**" msgstr "**Datos de texto**" -#: ../Doc/howto/pyporting.rst:226 +#: ../Doc/howto/pyporting.rst:205 msgid "**Binary data**" msgstr "**Datos binarios**" -#: ../Doc/howto/pyporting.rst:228 +#: ../Doc/howto/pyporting.rst:207 msgid "\\" msgstr "\\" -#: ../Doc/howto/pyporting.rst:228 +#: ../Doc/howto/pyporting.rst:207 msgid "decode" msgstr "decode" -#: ../Doc/howto/pyporting.rst:230 +#: ../Doc/howto/pyporting.rst:209 msgid "encode" msgstr "encode" -#: ../Doc/howto/pyporting.rst:232 +#: ../Doc/howto/pyporting.rst:211 msgid "format" msgstr "format" -#: ../Doc/howto/pyporting.rst:234 +#: ../Doc/howto/pyporting.rst:213 msgid "isdecimal" msgstr "isdecimal" -#: ../Doc/howto/pyporting.rst:236 +#: ../Doc/howto/pyporting.rst:215 msgid "isnumeric" msgstr "isnumeric" -#: ../Doc/howto/pyporting.rst:239 +#: ../Doc/howto/pyporting.rst:218 msgid "" "Making the distinction easier to handle can be accomplished by encoding and " "decoding between binary data and text at the edge of your code. This means " @@ -580,12 +540,13 @@ msgstr "" "tener que realizar un seguimiento del tipo de datos con los que está " "trabajando." -#: ../Doc/howto/pyporting.rst:246 +#: ../Doc/howto/pyporting.rst:225 +#, fuzzy msgid "" "The next issue is making sure you know whether the string literals in your " "code represent text or binary data. You should add a ``b`` prefix to any " "literal that presents binary data. For text you should add a ``u`` prefix to " -"the text literal. (there is a :mod:`__future__` import to force all " +"the text literal. (There is a :mod:`__future__` import to force all " "unspecified literals to be Unicode, but usage has shown it isn't as " "effective as adding a ``b`` or ``u`` prefix to all literals explicitly)" msgstr "" @@ -597,10 +558,10 @@ msgstr "" "uso ha demostrado que no es tan eficaz como agregar un prefijo ``b`` o ``u`` " "a todos los literales explícitamente)" -#: ../Doc/howto/pyporting.rst:253 +#: ../Doc/howto/pyporting.rst:232 +#, fuzzy msgid "" -"As part of this dichotomy you also need to be careful about opening files. " -"Unless you have been working on Windows, there is a chance you have not " +"You also need to be careful about opening files. Possibly you have not " "always bothered to add the ``b`` mode when opening a binary file (e.g., " "``rb`` for binary reading). Under Python 3, binary files and text files are " "clearly distinct and mutually incompatible; see the :mod:`io` module for " @@ -630,14 +591,15 @@ msgstr "" "moleste con la práctica obsoleta de usar :func:`codecs.open` ya que sólo es " "necesario para mantener la compatibilidad con Python 2.5." -#: ../Doc/howto/pyporting.rst:267 +#: ../Doc/howto/pyporting.rst:245 +#, fuzzy msgid "" "The constructors of both ``str`` and ``bytes`` have different semantics for " -"the same arguments between Python 2 & 3. Passing an integer to ``bytes`` in " -"Python 2 will give you the string representation of the integer: ``bytes(3) " -"== '3'``. But in Python 3, an integer argument to ``bytes`` will give you a " -"bytes object as long as the integer specified, filled with null bytes: " -"``bytes(3) == b'\\x00\\x00\\x00'``. A similar worry is necessary when " +"the same arguments between Python 2 and 3. Passing an integer to ``bytes`` " +"in Python 2 will give you the string representation of the integer: " +"``bytes(3) == '3'``. But in Python 3, an integer argument to ``bytes`` will " +"give you a bytes object as long as the integer specified, filled with null " +"bytes: ``bytes(3) == b'\\x00\\x00\\x00'``. A similar worry is necessary when " "passing a bytes object to ``str``. In Python 2 you just get the bytes object " "back: ``str(b'3') == b'3'``. But in Python 3 you get the string " "representation of the bytes object: ``str(b'3') == \"b'3'\"``." @@ -653,7 +615,7 @@ msgstr "" "representación de cadena de texto del objeto bytes: ``str(b'3') == " "\"b'3'\"``." -#: ../Doc/howto/pyporting.rst:277 +#: ../Doc/howto/pyporting.rst:255 msgid "" "Finally, the indexing of binary data requires careful handling (slicing does " "**not** require any special handling). In Python 2, ``b'123'[1] == b'2'`` " @@ -673,15 +635,15 @@ msgstr "" "elemento. El proyecto six_ tiene una función denominada ``six.indexbytes()`` " "que devolverá un entero como en Python 3: ``six.indexbytes(b'123', 1)``." -#: ../Doc/howto/pyporting.rst:286 +#: ../Doc/howto/pyporting.rst:264 msgid "To summarize:" msgstr "Para resumir:" -#: ../Doc/howto/pyporting.rst:288 +#: ../Doc/howto/pyporting.rst:266 msgid "Decide which of your APIs take text and which take binary data" msgstr "Decida cuál de sus API toma texto y cuáles toman datos binarios" -#: ../Doc/howto/pyporting.rst:289 +#: ../Doc/howto/pyporting.rst:267 msgid "" "Make sure that your code that works with text also works with ``unicode`` " "and code for binary data works with ``bytes`` in Python 2 (see the table " @@ -692,7 +654,7 @@ msgstr "" "2 (consulte la tabla anterior para los métodos que no puede usar para cada " "tipo)" -#: ../Doc/howto/pyporting.rst:292 +#: ../Doc/howto/pyporting.rst:270 msgid "" "Mark all binary literals with a ``b`` prefix, textual literals with a ``u`` " "prefix" @@ -700,7 +662,7 @@ msgstr "" "Marque todos los literales binarios con un prefijo ``b``, literales " "textuales con un prefijo ``u``" -#: ../Doc/howto/pyporting.rst:294 +#: ../Doc/howto/pyporting.rst:272 msgid "" "Decode binary data to text as soon as possible, encode text as binary data " "as late as possible" @@ -708,7 +670,7 @@ msgstr "" "Descodificar datos binarios en texto tan pronto como sea posible, codificar " "texto como datos binarios tan tarde como sea posible" -#: ../Doc/howto/pyporting.rst:296 +#: ../Doc/howto/pyporting.rst:274 msgid "" "Open files using :func:`io.open` and make sure to specify the ``b`` mode " "when appropriate" @@ -716,16 +678,16 @@ msgstr "" "Abra los archivos con :func:`io.open` y asegúrese de especificar el modo " "``b`` cuando sea apropiado" -#: ../Doc/howto/pyporting.rst:298 +#: ../Doc/howto/pyporting.rst:276 msgid "Be careful when indexing into binary data" msgstr "Tenga cuidado al indexar en datos binarios" -#: ../Doc/howto/pyporting.rst:302 +#: ../Doc/howto/pyporting.rst:280 msgid "Use feature detection instead of version detection" msgstr "" "Utilice la detección de funciones en lugar de la detección de versiones" -#: ../Doc/howto/pyporting.rst:304 +#: ../Doc/howto/pyporting.rst:282 msgid "" "Inevitably you will have code that has to choose what to do based on what " "version of Python is running. The best way to do this is with feature " @@ -742,7 +704,7 @@ msgstr "" "contra Python 2 y no Python 3. Para ayudar a explicar esto, veamos un " "ejemplo." -#: ../Doc/howto/pyporting.rst:311 +#: ../Doc/howto/pyporting.rst:289 msgid "" "Let's pretend that you need access to a feature of :mod:`importlib` that is " "available in Python's standard library since Python 3.3 and available for " @@ -755,7 +717,7 @@ msgstr "" "tenga la tentación de escribir código para acceder, por ejemplo, al módulo :" "mod:`importlib.abc` haciendo lo siguiente:" -#: ../Doc/howto/pyporting.rst:323 +#: ../Doc/howto/pyporting.rst:301 msgid "" "The problem with this code is what happens when Python 4 comes out? It would " "be better to treat Python 2 as the exceptional case instead of Python 3 and " @@ -767,7 +729,7 @@ msgstr "" "las futuras versiones de Python serán más compatibles con Python 3 que " "Python 2::" -#: ../Doc/howto/pyporting.rst:335 +#: ../Doc/howto/pyporting.rst:313 msgid "" "The best solution, though, is to do no version detection at all and instead " "rely on feature detection. That avoids any potential issues of getting the " @@ -778,11 +740,11 @@ msgstr "" "evita cualquier problema potencial de conseguir la detección de la versión " "incorrecta y le ayuda a mantenerse compatible con el futuro:" -#: ../Doc/howto/pyporting.rst:346 +#: ../Doc/howto/pyporting.rst:324 msgid "Prevent compatibility regressions" msgstr "Evitar regresiones de compatibilidad" -#: ../Doc/howto/pyporting.rst:348 +#: ../Doc/howto/pyporting.rst:326 msgid "" "Once you have fully translated your code to be compatible with Python 3, you " "will want to make sure your code doesn't regress and stop working under " @@ -795,7 +757,7 @@ msgstr "" "dependencia que le está bloqueando para que no se ejecute realmente en " "Python 3 en este momento." -#: ../Doc/howto/pyporting.rst:353 +#: ../Doc/howto/pyporting.rst:331 msgid "" "To help with staying compatible, any new modules you create should have at " "least the following block of code at the top of it::" @@ -803,7 +765,7 @@ msgstr "" "Para ayudar a mantenerse compatible, los módulos nuevos que cree deben tener " "al menos el siguiente bloque de código en la parte superior del misma::" -#: ../Doc/howto/pyporting.rst:360 +#: ../Doc/howto/pyporting.rst:338 msgid "" "You can also run Python 2 with the ``-3`` flag to be warned about various " "compatibility issues your code triggers during execution. If you turn " @@ -816,7 +778,7 @@ msgstr "" "con ``-Werror``, puede asegurarse de que no se pierda accidentalmente una " "advertencia." -#: ../Doc/howto/pyporting.rst:365 +#: ../Doc/howto/pyporting.rst:343 msgid "" "You can also use the Pylint_ project and its ``--py3k`` flag to lint your " "code to receive warnings when your code begins to deviate from Python 3 " @@ -833,11 +795,11 @@ msgstr "" "Python 2.7 y Python 3.4 o posterior, ya que es la compatibilidad mínima de " "la versión mínima de Python de Pylint." -#: ../Doc/howto/pyporting.rst:374 +#: ../Doc/howto/pyporting.rst:352 msgid "Check which dependencies block your transition" msgstr "Compruebe qué dependencias bloquean la transición" -#: ../Doc/howto/pyporting.rst:376 +#: ../Doc/howto/pyporting.rst:354 msgid "" "**After** you have made your code compatible with Python 3 you should begin " "to care about whether your dependencies have also been ported. The " @@ -853,7 +815,7 @@ msgstr "" "herramienta de línea de comandos, así como una interfaz web en https://" "caniusepython3.com." -#: ../Doc/howto/pyporting.rst:383 +#: ../Doc/howto/pyporting.rst:361 msgid "" "The project also provides code which you can integrate into your test suite " "so that you will have a failing test when you no longer have dependencies " @@ -867,12 +829,12 @@ msgstr "" "comprobar manualmente sus dependencias y recibir notificaciones rápidamente " "cuando puede empezar a ejecutarse en Python 3." -#: ../Doc/howto/pyporting.rst:390 +#: ../Doc/howto/pyporting.rst:368 msgid "Update your ``setup.py`` file to denote Python 3 compatibility" msgstr "" "Actualice su archivo ``setup.py`` para denotar compatibilidad con Python 3" -#: ../Doc/howto/pyporting.rst:392 +#: ../Doc/howto/pyporting.rst:370 msgid "" "Once your code works under Python 3, you should update the classifiers in " "your ``setup.py`` to contain ``Programming Language :: Python :: 3`` and to " @@ -887,14 +849,15 @@ msgstr "" "3. Lo ideal es que también desee agregar clasificadores para cada versión " "principal/menor de Python que ahora admita." -#: ../Doc/howto/pyporting.rst:400 +#: ../Doc/howto/pyporting.rst:378 msgid "Use continuous integration to stay compatible" msgstr "Utilice la integración continua para seguir siendo compatible" -#: ../Doc/howto/pyporting.rst:402 +#: ../Doc/howto/pyporting.rst:380 +#, fuzzy msgid "" "Once you are able to fully run under Python 3 you will want to make sure " -"your code always works under both Python 2 & 3. Probably the best tool for " +"your code always works under both Python 2 and 3. Probably the best tool for " "running your tests under multiple Python interpreters is tox_. You can then " "integrate tox with your continuous integration system so that you never " "accidentally break Python 2 or 3 support." @@ -906,7 +869,7 @@ msgstr "" "continua para que nunca interrumpa accidentalmente la compatibilidad con " "Python 2 o 3." -#: ../Doc/howto/pyporting.rst:408 +#: ../Doc/howto/pyporting.rst:386 msgid "" "You may also want to use the ``-bb`` flag with the Python 3 interpreter to " "trigger an exception when you are comparing bytes to strings or bytes to an " @@ -927,26 +890,13 @@ msgstr "" "produzcan este tipo de comparaciones, lo que hace que el error sea mucho más " "fácil de rastrear." -#: ../Doc/howto/pyporting.rst:416 -msgid "" -"And that's mostly it! At this point your code base is compatible with both " -"Python 2 and 3 simultaneously. Your testing will also be set up so that you " -"don't accidentally break Python 2 or 3 compatibility regardless of which " -"version you typically run your tests under while developing." -msgstr "" -"¡Y eso es sobre todo! En este punto, la base de código es compatible con " -"Python 2 y 3 simultáneamente. Las pruebas también se configurarán para que " -"no interrumpa accidentalmente la compatibilidad de Python 2 o 3, " -"independientemente de la versión en la que ejecute normalmente las pruebas " -"durante el desarrollo." - -#: ../Doc/howto/pyporting.rst:423 +#: ../Doc/howto/pyporting.rst:396 msgid "Consider using optional static type checking" msgstr "" "Considere la posibilidad de usar la comprobación de tipos estáticos " "opcionales" -#: ../Doc/howto/pyporting.rst:425 +#: ../Doc/howto/pyporting.rst:398 msgid "" "Another way to help port your code is to use a static type checker like " "mypy_ or pytype_ on your code. These tools can be used to analyze your code " @@ -969,3 +919,152 @@ msgstr "" "también puede indicar explícitamente si las API usan datos textuales o " "binarios, lo que ayuda a asegurarse de que todo funciona según lo esperado " "en ambas versiones de Python." + +#~ msgid "" +#~ "With Python 3 being the future of Python while Python 2 is still in " +#~ "active use, it is good to have your project available for both major " +#~ "releases of Python. This guide is meant to help you figure out how best " +#~ "to support both Python 2 & 3 simultaneously." +#~ msgstr "" +#~ "Dado que Python 3 es el futuro de Python mientras Python 2 todavía está " +#~ "en uso activo, es bueno tener su proyecto disponible para ambas versiones " +#~ "principales de Python. Esta guía está diseñada para ayudarle a averiguar " +#~ "la mejor manera de admitir Python 2 y 3 simultáneamente." + +#~ msgid "" +#~ "If you would like to read one core Python developer's take on why Python " +#~ "3 came into existence, you can read Nick Coghlan's `Python 3 Q & A`_ or " +#~ "Brett Cannon's `Why Python 3 exists`_." +#~ msgstr "" +#~ "Si desea leer la opinión de un desarrollador central de Python sobre por " +#~ "qué Python 3 nació, puede leer las `Python 3 Q & A`_ de Nick Coghlan o el " +#~ "artículo de Brett Cannon `Why Python 3 exists`_." + +#~ msgid "" +#~ "For help with porting, you can view the archived python-porting_ mailing " +#~ "list." +#~ msgstr "" +#~ "Para obtener ayuda con la portabilidad, puede ver la lista de correo " +#~ "archivada de python-porting_." + +#~ msgid "" +#~ "A key point about supporting Python 2 & 3 simultaneously is that you can " +#~ "start **today**! Even if your dependencies are not supporting Python 3 " +#~ "yet that does not mean you can't modernize your code **now** to support " +#~ "Python 3. Most changes required to support Python 3 lead to cleaner code " +#~ "using newer practices even in Python 2 code." +#~ msgstr "" +#~ "Un punto clave sobre el soporte de Python 2 & 3 simultáneamente es que se " +#~ "puede empezar **hoy**! Incluso si sus dependencias no son compatibles con " +#~ "Python 3 todavía eso no significa que no puede modernizar el código " +#~ "**ahora** para admitir Python 3. La mayoría de los cambios necesarios " +#~ "para admitir Python 3 conducen a código más limpio utilizando prácticas " +#~ "más recientes incluso en código Python 2." + +#~ msgid "" +#~ "Another key point is that modernizing your Python 2 code to also support " +#~ "Python 3 is largely automated for you. While you might have to make some " +#~ "API decisions thanks to Python 3 clarifying text data versus binary data, " +#~ "the lower-level work is now mostly done for you and thus can at least " +#~ "benefit from the automated changes immediately." +#~ msgstr "" +#~ "Otro punto clave es que la modernización del código de Python 2 para que " +#~ "también admita Python 3 está en gran medida automatizada para usted. Si " +#~ "bien es posible que tenga que tomar algunas decisiones de API gracias a " +#~ "python 3 aclarando los datos de texto frente a los datos binarios, el " +#~ "trabajo de nivel inferior ahora se realiza principalmente por usted y, " +#~ "por lo tanto, al menos puede beneficiarse de los cambios automatizados " +#~ "inmediatamente." + +#~ msgid "" +#~ "Keep those key points in mind while you read on about the details of " +#~ "porting your code to support Python 2 & 3 simultaneously." +#~ msgstr "" +#~ "Tenga en cuenta esos puntos clave mientras lee sobre los detalles de la " +#~ "migración del código para admitir Python 2 & 3 simultáneamente." + +#~ msgid "Drop support for Python 2.6 and older" +#~ msgstr "Compatibilidad con Python 2.6 y versiones anteriores" + +#~ msgid "" +#~ "But you should aim for only supporting Python 2.7. Python 2.6 is no " +#~ "longer freely supported and thus is not receiving bugfixes. This means " +#~ "**you** will have to work around any issues you come across with Python " +#~ "2.6. There are also some tools mentioned in this HOWTO which do not " +#~ "support Python 2.6 (e.g., Pylint_), and this will become more commonplace " +#~ "as time goes on. It will simply be easier for you if you only support the " +#~ "versions of Python that you have to support." +#~ msgstr "" +#~ "Pero usted debe apuntar a sólo apoyar Python 2.7. Python 2.6 ya no se " +#~ "admite libremente y, por lo tanto, no recibe correcciones de errores. " +#~ "Esto significa que **usted** tendrá que solucionar cualquier problema que " +#~ "encuentre con Python 2.6. También hay algunas herramientas mencionadas en " +#~ "este HOWTO que no son compatibles con Python 2.6 (por ejemplo, Pylint_), " +#~ "y esto se volverá más común a medida que pasa el tiempo. Simplemente será " +#~ "más fácil para usted si sólo admite las versiones de Python que tiene que " +#~ "admitir." + +#~ msgid "" +#~ "Once you feel like you know what is different in Python 3 compared to " +#~ "Python 2, it's time to update your code! You have a choice between two " +#~ "tools in porting your code automatically: Futurize_ and Modernize_. Which " +#~ "tool you choose will depend on how much like Python 3 you want your code " +#~ "to be. Futurize_ does its best to make Python 3 idioms and practices " +#~ "exist in Python 2, e.g. backporting the ``bytes`` type from Python 3 so " +#~ "that you have semantic parity between the major versions of Python. " +#~ "Modernize_, on the other hand, is more conservative and targets a Python " +#~ "2/3 subset of Python, directly relying on six_ to help provide " +#~ "compatibility. As Python 3 is the future, it might be best to consider " +#~ "Futurize to begin adjusting to any new practices that Python 3 introduces " +#~ "which you are not accustomed to yet." +#~ msgstr "" +#~ "Una vez que sientas que sabes lo que es diferente en Python 3 en " +#~ "comparación con Python 2, ¡es hora de actualizar tu código! Puede elegir " +#~ "entre dos herramientas para migrar el código automáticamente: Futurize_ y " +#~ "Modernize_. La herramienta que elija dependerá de la cantidad similar a " +#~ "Python 3 que desea que sea el código. Futurize_ hace todo lo posible para " +#~ "que Python 3 modismos y prácticas existan en Python 2, por ejemplo, " +#~ "backporting el tipo ``bytes`` de Python 3 para que tenga paridad " +#~ "semántica entre las versiones principales de Python. Modernize_, por otro " +#~ "lado, es más conservador y se dirige a un subconjunto de Python 2/3 de " +#~ "Python, basándose directamente en six_ para ayudar a proporcionar " +#~ "compatibilidad. Como Python 3 es el futuro, podría ser mejor considerar " +#~ "Futurize para comenzar a adaptarse a cualquier nueva práctica que Python " +#~ "3 introduce a la que aún no está acostumbrado." + +#~ msgid "" +#~ "Unfortunately the tools can't automate everything to make your code work " +#~ "under Python 3 and so there are a handful of things you will need to " +#~ "update manually to get full Python 3 support (which of these steps are " +#~ "necessary vary between the tools). Read the documentation for the tool " +#~ "you choose to use to see what it fixes by default and what it can do " +#~ "optionally to know what will (not) be fixed for you and what you may have " +#~ "to fix on your own (e.g. using ``io.open()`` over the built-in ``open()`` " +#~ "function is off by default in Modernize). Luckily, though, there are only " +#~ "a couple of things to watch out for which can be considered large issues " +#~ "that may be hard to debug if not watched for." +#~ msgstr "" +#~ "Desafortunadamente, las herramientas no pueden automatizar todo para que " +#~ "su código funcione bajo Python 3 y por lo que hay un puñado de cosas que " +#~ "tendrá que actualizar manualmente para obtener soporte completo de Python " +#~ "3 (cuáles de estos pasos son necesarios varían entre las herramientas). " +#~ "Lea la documentación de la herramienta que elige utilizar para ver lo que " +#~ "corrige de forma predeterminada y lo que puede hacer opcionalmente para " +#~ "saber lo que (no) se fijará para usted y lo que puede tener que corregir " +#~ "por su cuenta (por ejemplo, usando ``io.open()`` sobre la función " +#~ "incorporada ``open()`` está desactivada por defecto en Modernizar). " +#~ "Afortunadamente, sin embargo, sólo hay un par de cosas a tener en cuenta " +#~ "por las cuales se pueden considerar grandes problemas que pueden ser " +#~ "difíciles de depurar si no se observan." + +#~ msgid "" +#~ "And that's mostly it! At this point your code base is compatible with " +#~ "both Python 2 and 3 simultaneously. Your testing will also be set up so " +#~ "that you don't accidentally break Python 2 or 3 compatibility regardless " +#~ "of which version you typically run your tests under while developing." +#~ msgstr "" +#~ "¡Y eso es sobre todo! En este punto, la base de código es compatible con " +#~ "Python 2 y 3 simultáneamente. Las pruebas también se configurarán para " +#~ "que no interrumpa accidentalmente la compatibilidad de Python 2 o 3, " +#~ "independientemente de la versión en la que ejecute normalmente las " +#~ "pruebas durante el desarrollo." diff --git a/howto/regex.po b/howto/regex.po index 1082cc16e6..0a7d409f74 100644 --- a/howto/regex.po +++ b/howto/regex.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-04 17:34+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/howto/regex.rst:5 msgid "Regular Expression HOWTO" @@ -861,13 +861,13 @@ msgstr "" "Aquí solo se cubrirán los más importantes; consulte los documentos :mod:`re` " "para obtener una lista completa." -#: ../Doc/howto/regex.rst:360 ../Doc/howto/regex.rst:418 -#: ../Doc/howto/regex.rst:1064 +#: ../Doc/howto/regex.rst:360 ../Doc/howto/regex.rst:414 +#: ../Doc/howto/regex.rst:1062 msgid "Method/Attribute" msgstr "Método/atributo" -#: ../Doc/howto/regex.rst:360 ../Doc/howto/regex.rst:418 -#: ../Doc/howto/regex.rst:1064 +#: ../Doc/howto/regex.rst:360 ../Doc/howto/regex.rst:414 +#: ../Doc/howto/regex.rst:1062 msgid "Purpose" msgstr "Objetivo" @@ -927,20 +927,10 @@ msgstr "" #: ../Doc/howto/regex.rst:380 msgid "" "You can learn about this by interactively experimenting with the :mod:`re` " -"module. If you have :mod:`tkinter` available, you may also want to look at :" -"source:`Tools/demo/redemo.py`, a demonstration program included with the " -"Python distribution. It allows you to enter REs and strings, and displays " -"whether the RE matches or fails. :file:`redemo.py` can be quite useful when " -"trying to debug a complicated RE." +"module." msgstr "" -"Puede aprender sobre esto experimentando interactivamente con el módulo :mod:" -"`re`. Si tiene :mod:`tkinter` disponible, también puede consultar :source:" -"`Tools/demo/redemo.py`, un programa de demostración incluido con la " -"distribución de Python. Le permite ingresar RE y cadenas de caracteres, y " -"muestra si la RE coincide o falla. :file:`redemo.py` puede ser bastante útil " -"cuando se intenta depurar una RE complicado." -#: ../Doc/howto/regex.rst:387 +#: ../Doc/howto/regex.rst:383 msgid "" "This HOWTO uses the standard Python interpreter for its examples. First, run " "the Python interpreter, import the :mod:`re` module, and compile a RE::" @@ -949,7 +939,7 @@ msgstr "" "ejemplos. Primero, ejecute el intérprete de Python, importe el módulo :mod:" "`re` y compile en RE::" -#: ../Doc/howto/regex.rst:395 +#: ../Doc/howto/regex.rst:391 msgid "" "Now, you can try matching various strings against the RE ``[a-z]+``. An " "empty string shouldn't match at all, since ``+`` means 'one or more " @@ -964,7 +954,7 @@ msgstr "" "imprima ningún resultado. Puede imprimir explícitamente el resultado de :" "meth:`!match` para aclarar esto. ::" -#: ../Doc/howto/regex.rst:405 +#: ../Doc/howto/regex.rst:401 msgid "" "Now, let's try it on a string that it should match, such as ``tempo``. In " "this case, :meth:`~re.Pattern.match` will return a :ref:`match object `, por lo que debe almacenar el resultado en una " "variable para su posterior uso. ::" -#: ../Doc/howto/regex.rst:413 +#: ../Doc/howto/regex.rst:409 msgid "" "Now you can query the :ref:`match object ` for information " "about the matching string. Match object instances also have several methods " @@ -986,44 +976,44 @@ msgstr "" "coincidentes también tienen varios métodos y atributos; los más importantes " "son:" -#: ../Doc/howto/regex.rst:420 +#: ../Doc/howto/regex.rst:416 msgid "``group()``" msgstr "``group()``" -#: ../Doc/howto/regex.rst:420 +#: ../Doc/howto/regex.rst:416 msgid "Return the string matched by the RE" msgstr "Retorna la cadena de caracteres que coincide con la RE" -#: ../Doc/howto/regex.rst:422 +#: ../Doc/howto/regex.rst:418 msgid "``start()``" msgstr "``start()``" -#: ../Doc/howto/regex.rst:422 +#: ../Doc/howto/regex.rst:418 msgid "Return the starting position of the match" msgstr "Retorna la posición de inicio de la coincidencia" -#: ../Doc/howto/regex.rst:424 +#: ../Doc/howto/regex.rst:420 msgid "``end()``" msgstr "``end()``" -#: ../Doc/howto/regex.rst:424 +#: ../Doc/howto/regex.rst:420 msgid "Return the ending position of the match" msgstr "Retorna la posición final de la coincidencia" -#: ../Doc/howto/regex.rst:426 +#: ../Doc/howto/regex.rst:422 msgid "``span()``" msgstr "``span()``" -#: ../Doc/howto/regex.rst:426 +#: ../Doc/howto/regex.rst:422 msgid "Return a tuple containing the (start, end) positions of the match" msgstr "" "Retorna una tupla que contiene (inicio, final) las posiciones de coincidencia" -#: ../Doc/howto/regex.rst:430 +#: ../Doc/howto/regex.rst:426 msgid "Trying these methods will soon clarify their meaning::" msgstr "Probando estos métodos pronto aclarará sus significados::" -#: ../Doc/howto/regex.rst:439 +#: ../Doc/howto/regex.rst:435 msgid "" ":meth:`~re.Match.group` returns the substring that was matched by the RE. :" "meth:`~re.Match.start` and :meth:`~re.Match.end` return the starting and " @@ -1044,7 +1034,7 @@ msgstr "" "caracteres, por lo que es posible que la coincidencia no comience en cero en " "ese caso. ::" -#: ../Doc/howto/regex.rst:456 +#: ../Doc/howto/regex.rst:452 msgid "" "In actual programs, the most common style is to store the :ref:`match object " "` in a variable, and then check if it was ``None``. This " @@ -1054,7 +1044,7 @@ msgstr "" "` en una variable, y luego verificar si era ``None``. Esto " "generalmente se ve así::" -#: ../Doc/howto/regex.rst:467 +#: ../Doc/howto/regex.rst:463 msgid "" "Two pattern methods return all of the matches for a pattern. :meth:`~re." "Pattern.findall` returns a list of matching strings::" @@ -1063,7 +1053,7 @@ msgstr "" "`~re.Pattern.findall` retorna una lista de cadenas de caracteres " "coincidentes::" -#: ../Doc/howto/regex.rst:474 +#: ../Doc/howto/regex.rst:470 msgid "" "The ``r`` prefix, making the literal a raw string literal, is needed in this " "example because escape sequences in a normal \"cooked\" string literal that " @@ -1078,7 +1068,7 @@ msgstr "" "como resultado :exc:`DeprecationWarning` y eventualmente se convertirá en :" "exc:`SyntaxError`. Ver :ref:`the-backslash-plague`." -#: ../Doc/howto/regex.rst:480 +#: ../Doc/howto/regex.rst:476 msgid "" ":meth:`~re.Pattern.findall` has to create the entire list before it can be " "returned as the result. The :meth:`~re.Pattern.finditer` method returns a " @@ -1090,11 +1080,11 @@ msgstr "" "retorna una secuencia de :ref:`match object ` instancias como " "iterados :term:`iterator`::" -#: ../Doc/howto/regex.rst:496 +#: ../Doc/howto/regex.rst:492 msgid "Module-Level Functions" msgstr "Funciones a nivel de módulo" -#: ../Doc/howto/regex.rst:498 +#: ../Doc/howto/regex.rst:494 msgid "" "You don't have to create a pattern object and call its methods; the :mod:" "`re` module also provides top-level functions called :func:`~re.match`, :" @@ -1111,7 +1101,7 @@ msgstr "" "aún así retornan una instancia de ``None`` o :ref:`match object `. ::" -#: ../Doc/howto/regex.rst:510 +#: ../Doc/howto/regex.rst:506 msgid "" "Under the hood, these functions simply create a pattern object for you and " "call the appropriate method on it. They also store the compiled object in a " @@ -1123,7 +1113,7 @@ msgstr "" "compilado en un caché, por lo que las futuras llamadas que usen el mismo RE " "no necesitarán analizar el patrón una y otra vez." -#: ../Doc/howto/regex.rst:515 +#: ../Doc/howto/regex.rst:511 msgid "" "Should you use these module-level functions, or should you get the pattern " "and call its methods yourself? If you're accessing a regex within a loop, " @@ -1136,11 +1126,11 @@ msgstr "" "llamadas a funciones. Fuera de los bucles, no hay mucha diferencia gracias " "al caché interno." -#: ../Doc/howto/regex.rst:523 +#: ../Doc/howto/regex.rst:519 msgid "Compilation Flags" msgstr "Los flags de compilación" -#: ../Doc/howto/regex.rst:525 +#: ../Doc/howto/regex.rst:523 msgid "" "Compilation flags let you modify some aspects of how regular expressions " "work. Flags are available in the :mod:`re` module under two names, a long " @@ -1160,7 +1150,7 @@ msgstr "" "Se pueden especificar varios indicadores uniéndolos con *OR* bit a bit; ``re." "I | re.M`` establece los flags :const:`I` and :const:`M`, por ejemplo." -#: ../Doc/howto/regex.rst:533 +#: ../Doc/howto/regex.rst:531 msgid "" "Here's a table of the available flags, followed by a more detailed " "explanation of each one." @@ -1168,19 +1158,19 @@ msgstr "" "Aquí hay una tabla de las flags disponibles, seguida de una explicación más " "detallada de cada una." -#: ../Doc/howto/regex.rst:537 +#: ../Doc/howto/regex.rst:535 msgid "Flag" msgstr "Flag" -#: ../Doc/howto/regex.rst:537 +#: ../Doc/howto/regex.rst:535 msgid "Meaning" msgstr "Significado" -#: ../Doc/howto/regex.rst:539 +#: ../Doc/howto/regex.rst:537 msgid ":const:`ASCII`, :const:`A`" msgstr ":const:`ASCII`, :const:`A`" -#: ../Doc/howto/regex.rst:539 +#: ../Doc/howto/regex.rst:537 msgid "" "Makes several escapes like ``\\w``, ``\\b``, ``\\s`` and ``\\d`` match only " "on ASCII characters with the respective property." @@ -1188,51 +1178,51 @@ msgstr "" "Hace que varios escapes como ``\\w``, ``\\b``, ``\\s`` y ``\\d`` coincidan " "solo en caracteres ASCII con la propiedad respectiva." -#: ../Doc/howto/regex.rst:543 +#: ../Doc/howto/regex.rst:541 msgid ":const:`DOTALL`, :const:`S`" msgstr ":const:`DOTALL`, :const:`S`" -#: ../Doc/howto/regex.rst:543 +#: ../Doc/howto/regex.rst:541 msgid "Make ``.`` match any character, including newlines." msgstr "" "Hace que ``.`` coincida con cualquier caracter, incluidas las nuevas líneas." -#: ../Doc/howto/regex.rst:546 +#: ../Doc/howto/regex.rst:544 msgid ":const:`IGNORECASE`, :const:`I`" msgstr ":const:`IGNORECASE`, :const:`I`" -#: ../Doc/howto/regex.rst:546 +#: ../Doc/howto/regex.rst:544 msgid "Do case-insensitive matches." msgstr "Hace coincidencias que no distingan entre mayúsculas y minúsculas." -#: ../Doc/howto/regex.rst:548 +#: ../Doc/howto/regex.rst:546 msgid ":const:`LOCALE`, :const:`L`" msgstr ":const:`LOCALE`, :const:`L`" -#: ../Doc/howto/regex.rst:548 +#: ../Doc/howto/regex.rst:546 msgid "Do a locale-aware match." msgstr "Hace una coincidencia con reconocimiento de configuración regional." -#: ../Doc/howto/regex.rst:550 +#: ../Doc/howto/regex.rst:548 msgid ":const:`MULTILINE`, :const:`M`" msgstr ":const:`MULTILINE`, :const:`M`" -#: ../Doc/howto/regex.rst:550 +#: ../Doc/howto/regex.rst:548 msgid "Multi-line matching, affecting ``^`` and ``$``." msgstr "Coincidencia de varias líneas, que afecta a ``^`` y ``$``." -#: ../Doc/howto/regex.rst:553 +#: ../Doc/howto/regex.rst:551 msgid ":const:`VERBOSE`, :const:`X` (for 'extended')" msgstr ":const:`VERBOSE`, :const:`X` (for 'extended')" -#: ../Doc/howto/regex.rst:553 +#: ../Doc/howto/regex.rst:551 msgid "" "Enable verbose REs, which can be organized more cleanly and understandably." msgstr "" "Habilite RE detallados, que se pueden organizar de manera más limpia y " "comprensible." -#: ../Doc/howto/regex.rst:562 +#: ../Doc/howto/regex.rst:560 msgid "" "Perform case-insensitive matching; character class and literal strings will " "match letters by ignoring case. For example, ``[A-Z]`` will match lowercase " @@ -1263,7 +1253,7 @@ msgstr "" "configuración regional actual; lo hará si también establece la flag :const:" "`LOCALE` ." -#: ../Doc/howto/regex.rst:580 +#: ../Doc/howto/regex.rst:578 msgid "" "Make ``\\w``, ``\\W``, ``\\b``, ``\\B`` and case-insensitive matching " "dependent on the current locale instead of the Unicode database." @@ -1272,7 +1262,7 @@ msgstr "" "distinga entre mayúsculas y minúsculas dependan de la configuración regional " "actual en lugar de la base de datos Unicode." -#: ../Doc/howto/regex.rst:583 +#: ../Doc/howto/regex.rst:581 msgid "" "Locales are a feature of the C library intended to help in writing programs " "that take account of language differences. For example, if you're " @@ -1309,7 +1299,7 @@ msgstr "" "predeterminada en Python 3 para patrones Unicode (str), y puede manejar " "diferentes configuraciones regionales/idiomas." -#: ../Doc/howto/regex.rst:605 +#: ../Doc/howto/regex.rst:603 msgid "" "(``^`` and ``$`` haven't been explained yet; they'll be introduced in " "section :ref:`more-metacharacters`.)" @@ -1317,7 +1307,7 @@ msgstr "" "(``^`` y ``$`` aún no se han explicado; se presentarán en la sección :ref:" "`more-metacharacters`.)" -#: ../Doc/howto/regex.rst:608 +#: ../Doc/howto/regex.rst:606 msgid "" "Usually ``^`` matches only at the beginning of the string, and ``$`` matches " "only at the end of the string and immediately before the newline (if any) at " @@ -1336,7 +1326,7 @@ msgstr "" "coincide al final de la cadena de caracteres y al final de cada línea " "(inmediatamente antes de cada nueva línea)." -#: ../Doc/howto/regex.rst:621 +#: ../Doc/howto/regex.rst:619 msgid "" "Makes the ``'.'`` special character match any character at all, including a " "newline; without this flag, ``'.'`` will match anything *except* a newline." @@ -1345,7 +1335,7 @@ msgstr "" "incluida una nueva línea; sin esta bandera, ``'.'`` coincidirá con cualquier " "cosa *except* una nueva línea." -#: ../Doc/howto/regex.rst:629 +#: ../Doc/howto/regex.rst:627 msgid "" "Make ``\\w``, ``\\W``, ``\\b``, ``\\B``, ``\\s`` and ``\\S`` perform ASCII-" "only matching instead of full Unicode matching. This is only meaningful for " @@ -1356,7 +1346,7 @@ msgstr "" "Esto solo es significativo para los patrones Unicode y se ignora para los " "patrones de bytes." -#: ../Doc/howto/regex.rst:638 +#: ../Doc/howto/regex.rst:636 msgid "" "This flag allows you to write regular expressions that are more readable by " "granting you more flexibility in how you can format them. When this flag " @@ -1378,7 +1368,7 @@ msgstr "" "en una clase de carácter ni está precedido por una barra invertida sin " "escape." -#: ../Doc/howto/regex.rst:647 +#: ../Doc/howto/regex.rst:645 msgid "" "For example, here's a RE that uses :const:`re.VERBOSE`; see how much easier " "it is to read? ::" @@ -1386,11 +1376,11 @@ msgstr "" "Por ejemplo, aquí hay una RE que usa :const:`re.VERBOSE`; ¿Ves lo fácil que " "es leer? ::" -#: ../Doc/howto/regex.rst:660 +#: ../Doc/howto/regex.rst:658 msgid "Without the verbose setting, the RE would look like this::" msgstr "Sin la configuración detallada, la RE se vería así::" -#: ../Doc/howto/regex.rst:666 +#: ../Doc/howto/regex.rst:664 msgid "" "In the above example, Python's automatic concatenation of string literals " "has been used to break up the RE into smaller pieces, but it's still more " @@ -1401,11 +1391,11 @@ msgstr "" "pequeñas, pero aún es más difícil de entender que la versión que usa :const:" "`re.VERBOSE`." -#: ../Doc/howto/regex.rst:672 +#: ../Doc/howto/regex.rst:670 msgid "More Pattern Power" msgstr "Más poder de patrones" -#: ../Doc/howto/regex.rst:674 +#: ../Doc/howto/regex.rst:672 msgid "" "So far we've only covered a part of the features of regular expressions. In " "this section, we'll cover some new metacharacters, and how to use groups to " @@ -1415,11 +1405,11 @@ msgstr "" "expresiones regulares. En esta sección, cubriremos algunos metacarácteres " "nuevos y cómo usar grupos para recuperar partes del texto que coincidió." -#: ../Doc/howto/regex.rst:682 +#: ../Doc/howto/regex.rst:680 msgid "More Metacharacters" msgstr "Más metacarácteres" -#: ../Doc/howto/regex.rst:684 +#: ../Doc/howto/regex.rst:682 msgid "" "There are some metacharacters that we haven't covered yet. Most of them " "will be covered in this section." @@ -1427,7 +1417,7 @@ msgstr "" "Hay algunos metacarácteres que aún no hemos cubierto. La mayoría de ellos se " "tratarán en esta sección." -#: ../Doc/howto/regex.rst:687 +#: ../Doc/howto/regex.rst:685 msgid "" "Some of the remaining metacharacters to be discussed are :dfn:`zero-width " "assertions`. They don't cause the engine to advance through the string; " @@ -1447,11 +1437,11 @@ msgstr "" "nunca deben repetirse, porque si coinciden una vez en una ubicación " "determinada, obviamente pueden coincidir un número infinito de veces." -#: ../Doc/howto/regex.rst:703 +#: ../Doc/howto/regex.rst:701 msgid "``|``" msgstr "``|``" -#: ../Doc/howto/regex.rst:696 +#: ../Doc/howto/regex.rst:694 msgid "" "Alternation, or the \"or\" operator. If *A* and *B* are regular " "expressions, ``A|B`` will match any string that matches either *A* or *B*. " @@ -1467,7 +1457,7 @@ msgstr "" "coincidirá con ``'Crow'`` o ``'Servo'``, no ``'Cro'``, un ``'w'`` o un " "``'S'``, y ``'ervo'``." -#: ../Doc/howto/regex.rst:702 +#: ../Doc/howto/regex.rst:700 msgid "" "To match a literal ``'|'``, use ``\\|``, or enclose it inside a character " "class, as in ``[|]``." @@ -1475,11 +1465,11 @@ msgstr "" "Para hacer coincidir un literal ``'|'``, use ``\\|``, o enciérrelo dentro de " "una clase de carácter, como en ``[|]``." -#: ../Doc/howto/regex.rst:718 +#: ../Doc/howto/regex.rst:716 msgid "``^``" msgstr "``^``" -#: ../Doc/howto/regex.rst:706 +#: ../Doc/howto/regex.rst:704 msgid "" "Matches at the beginning of lines. Unless the :const:`MULTILINE` flag has " "been set, this will only match at the beginning of the string. In :const:" @@ -1491,7 +1481,7 @@ msgstr "" "caracteres. En modo :const:`MULTILINE` , esto también coincide " "inmediatamente después de cada nueva línea dentro de la cadena." -#: ../Doc/howto/regex.rst:710 +#: ../Doc/howto/regex.rst:708 msgid "" "For example, if you wish to match the word ``From`` only at the beginning of " "a line, the RE to use is ``^From``. ::" @@ -1499,15 +1489,15 @@ msgstr "" "Por ejemplo, si desea hacer coincidir la palabra ``From`` solo al principio " "de una línea, la RE que debe usar es ``^From``. ::" -#: ../Doc/howto/regex.rst:718 +#: ../Doc/howto/regex.rst:716 msgid "To match a literal ``'^'``, use ``\\^``." msgstr "Para una coincidencia literal ``'^'``, usar ``\\^``." -#: ../Doc/howto/regex.rst:732 +#: ../Doc/howto/regex.rst:730 msgid "``$``" msgstr "``$``" -#: ../Doc/howto/regex.rst:721 +#: ../Doc/howto/regex.rst:719 msgid "" "Matches at the end of a line, which is defined as either the end of the " "string, or any location followed by a newline character. ::" @@ -1515,7 +1505,7 @@ msgstr "" "Coincide con el final de una línea, que se define como el final de la cadena " "o cualquier ubicación seguida de un carácter de nueva línea. ::" -#: ../Doc/howto/regex.rst:731 +#: ../Doc/howto/regex.rst:729 msgid "" "To match a literal ``'$'``, use ``\\$`` or enclose it inside a character " "class, as in ``[$]``." @@ -1523,11 +1513,11 @@ msgstr "" "Para hacer coincidir un literal ``'$'``, usar ``\\$`` o enciérrelo dentro de " "una clase de carácter, como en ``[$]``." -#: ../Doc/howto/regex.rst:738 +#: ../Doc/howto/regex.rst:736 msgid "``\\A``" msgstr "``\\A``" -#: ../Doc/howto/regex.rst:735 +#: ../Doc/howto/regex.rst:733 msgid "" "Matches only at the start of the string. When not in :const:`MULTILINE` " "mode, ``\\A`` and ``^`` are effectively the same. In :const:`MULTILINE` " @@ -1541,19 +1531,19 @@ msgstr "" "principio de la cadena, pero ``^`` puede coincidir en cualquier ubicación " "dentro de la cadena de caracteres que sigue a un carácter de nueva línea." -#: ../Doc/howto/regex.rst:741 +#: ../Doc/howto/regex.rst:739 msgid "``\\Z``" msgstr "``\\Z``" -#: ../Doc/howto/regex.rst:741 +#: ../Doc/howto/regex.rst:739 msgid "Matches only at the end of the string." msgstr "Coincidencias solo al final de la cadena de caracteres." -#: ../Doc/howto/regex.rst:776 +#: ../Doc/howto/regex.rst:774 msgid "``\\b``" msgstr "``\\b``" -#: ../Doc/howto/regex.rst:744 +#: ../Doc/howto/regex.rst:742 msgid "" "Word boundary. This is a zero-width assertion that matches only at the " "beginning or end of a word. A word is defined as a sequence of alphanumeric " @@ -1565,7 +1555,7 @@ msgstr "" "secuencia de caracteres alfanuméricos, por lo que el final de una palabra se " "indica mediante un espacio en blanco o un carácter no alfanumérico." -#: ../Doc/howto/regex.rst:749 +#: ../Doc/howto/regex.rst:747 msgid "" "The following example matches ``class`` only when it's a complete word; it " "won't match when it's contained inside another word. ::" @@ -1573,7 +1563,7 @@ msgstr "" "El siguiente ejemplo coincide con ``class`` solo cuando es una palabra " "completa; no coincidirá cuando esté contenido dentro de otra palabra. ::" -#: ../Doc/howto/regex.rst:760 +#: ../Doc/howto/regex.rst:758 msgid "" "There are two subtleties you should remember when using this special " "sequence. First, this is the worst collision between Python's string " @@ -1593,7 +1583,7 @@ msgstr "" "aspecto que nuestra RE anterior, pero omite la ``'r'`` delante de la cadena " "de caracteres de RE. ::" -#: ../Doc/howto/regex.rst:774 +#: ../Doc/howto/regex.rst:772 msgid "" "Second, inside a character class, where there's no use for this assertion, " "``\\b`` represents the backspace character, for compatibility with Python's " @@ -1603,11 +1593,11 @@ msgstr "" "esta aserción, ``\\b`` representa el carácter de retroceso, por " "compatibilidad con las cadenas de caracteres literales de Python." -#: ../Doc/howto/regex.rst:781 +#: ../Doc/howto/regex.rst:779 msgid "``\\B``" msgstr "``\\B``" -#: ../Doc/howto/regex.rst:779 +#: ../Doc/howto/regex.rst:777 msgid "" "Another zero-width assertion, this is the opposite of ``\\b``, only matching " "when the current position is not at a word boundary." @@ -1615,11 +1605,11 @@ msgstr "" "Otra flag de ancho cero, esto es lo opuesto a ``\\b``, solo coincide cuando " "la posición actual no está en el límite de una palabra." -#: ../Doc/howto/regex.rst:784 +#: ../Doc/howto/regex.rst:782 msgid "Grouping" msgstr "Agrupando" -#: ../Doc/howto/regex.rst:786 +#: ../Doc/howto/regex.rst:784 msgid "" "Frequently you need to obtain more information than just whether the RE " "matched or not. Regular expressions are often used to dissect strings by " @@ -1634,7 +1624,7 @@ msgstr "" "encabezado RFC-822 se divide en un nombre de encabezado y un valor, " "separados por un ``':'``, así:" -#: ../Doc/howto/regex.rst:799 +#: ../Doc/howto/regex.rst:797 msgid "" "This can be handled by writing a regular expression which matches an entire " "header line, and has one group which matches the header name, and another " @@ -1644,7 +1634,7 @@ msgstr "" "línea de encabezado completa y que tenga un grupo que coincida con el nombre " "del encabezado y otro grupo que coincida con el valor del encabezado." -#: ../Doc/howto/regex.rst:803 +#: ../Doc/howto/regex.rst:801 #, fuzzy msgid "" "Groups are marked by the ``'('``, ``')'`` metacharacters. ``'('`` and " @@ -1661,7 +1651,7 @@ msgstr "" "n}``. Por ejemplo, ``(ab)*`` coincidirá con cero o más repeticiones de " "``ab``. ::" -#: ../Doc/howto/regex.rst:814 +#: ../Doc/howto/regex.rst:812 msgid "" "Groups indicated with ``'('``, ``')'`` also capture the starting and ending " "index of the text that they match; this can be retrieved by passing an " @@ -1681,7 +1671,7 @@ msgstr "" "predeterminado. Más adelante veremos cómo expresar grupos que no capturan el " "espacio de texto que coinciden. ::" -#: ../Doc/howto/regex.rst:830 +#: ../Doc/howto/regex.rst:828 msgid "" "Subgroups are numbered from left to right, from 1 upward. Groups can be " "nested; to determine the number, just count the opening parenthesis " @@ -1691,7 +1681,7 @@ msgstr "" "grupos se pueden anidar; para determinar el número, simplemente cuente los " "caracteres del paréntesis de apertura, de izquierda a derecha. ::" -#: ../Doc/howto/regex.rst:843 +#: ../Doc/howto/regex.rst:841 msgid "" ":meth:`~re.Match.group` can be passed multiple group numbers at a time, in " "which case it will return a tuple containing the corresponding values for " @@ -1701,7 +1691,7 @@ msgstr "" "cuyo caso retornará una tupla que contiene los valores correspondientes para " "esos grupos. ::" -#: ../Doc/howto/regex.rst:849 +#: ../Doc/howto/regex.rst:847 msgid "" "The :meth:`~re.Match.groups` method returns a tuple containing the strings " "for all the subgroups, from 1 up to however many there are. ::" @@ -1710,7 +1700,7 @@ msgstr "" "cadenas de caracteres de todos los subgrupos, desde 1 hasta la cantidad que " "haya. ::" -#: ../Doc/howto/regex.rst:855 +#: ../Doc/howto/regex.rst:853 msgid "" "Backreferences in a pattern allow you to specify that the contents of an " "earlier capturing group must also be found at the current location in the " @@ -1730,12 +1720,12 @@ msgstr "" "asegúrese de usar una cadena de caracteres sin procesar al incorporar " "referencias inversas en una RE." -#: ../Doc/howto/regex.rst:863 +#: ../Doc/howto/regex.rst:861 msgid "For example, the following RE detects doubled words in a string. ::" msgstr "" "Por ejemplo, la siguiente RE detecta palabras duplicadas en una cadena. ::" -#: ../Doc/howto/regex.rst:869 +#: ../Doc/howto/regex.rst:867 msgid "" "Backreferences like this aren't often useful for just searching through a " "string --- there are few text formats which repeat data in this way --- but " @@ -1747,11 +1737,11 @@ msgstr "" "manera --- pero pronto descubrirá que son *muy* útiles al realizar " "sustituciones de cadenas de caracteres." -#: ../Doc/howto/regex.rst:875 +#: ../Doc/howto/regex.rst:873 msgid "Non-capturing and Named Groups" msgstr "Grupos con nombre y sin captura" -#: ../Doc/howto/regex.rst:877 +#: ../Doc/howto/regex.rst:875 msgid "" "Elaborate REs may use many groups, both to capture substrings of interest, " "and to group and structure the RE itself. In complex REs, it becomes " @@ -1766,7 +1756,7 @@ msgstr "" "Ambos usan una sintaxis común para las extensiones de expresiones regulares, " "así que veremos eso primero." -#: ../Doc/howto/regex.rst:883 +#: ../Doc/howto/regex.rst:881 msgid "" "Perl 5 is well known for its powerful additions to standard regular " "expressions. For these new features the Perl developers couldn't choose new " @@ -1785,7 +1775,7 @@ msgstr "" "expresiones antiguas supondrían que ``&`` era un carácter regular y no se " "habría escapado escribiendo ``\\&`` o ``[&]``." -#: ../Doc/howto/regex.rst:890 +#: ../Doc/howto/regex.rst:888 msgid "" "The solution chosen by the Perl developers was to use ``(?...)`` as the " "extension syntax. ``?`` immediately after a parenthesis was a syntax error " @@ -1804,7 +1794,7 @@ msgstr "" "``(?:foo)`` es otra cosa (un grupo de no captura que contiene la " "subexpresión ``foo``)." -#: ../Doc/howto/regex.rst:898 +#: ../Doc/howto/regex.rst:896 msgid "" "Python supports several of Perl's extensions and adds an extension syntax to " "Perl's extension syntax. If the first character after the question mark is " @@ -1815,7 +1805,7 @@ msgstr "" "del signo de interrogación es una ``P``, sabrá que es una extensión " "específica de Python." -#: ../Doc/howto/regex.rst:903 +#: ../Doc/howto/regex.rst:901 msgid "" "Now that we've looked at the general extension syntax, we can return to the " "features that simplify working with groups in complex REs." @@ -1823,7 +1813,7 @@ msgstr "" "Ahora que hemos visto la sintaxis de la extensión general, podemos volver a " "las características que simplifican el trabajo con grupos en RE complejos." -#: ../Doc/howto/regex.rst:906 +#: ../Doc/howto/regex.rst:904 msgid "" "Sometimes you'll want to use a group to denote a part of a regular " "expression, but aren't interested in retrieving the group's contents. You " @@ -1836,7 +1826,7 @@ msgstr "" "``(?:...)``, donde puede reemplazar el ``...`` con cualquier otra expresión " "regular. ::" -#: ../Doc/howto/regex.rst:918 +#: ../Doc/howto/regex.rst:916 msgid "" "Except for the fact that you can't retrieve the contents of what the group " "matched, a non-capturing group behaves exactly the same as a capturing " @@ -1858,7 +1848,7 @@ msgstr "" "hay diferencia de rendimiento en la búsqueda entre grupos de captura y no " "captura; ninguna forma es más rápida que la otra." -#: ../Doc/howto/regex.rst:927 +#: ../Doc/howto/regex.rst:925 msgid "" "A more significant feature is named groups: instead of referring to them by " "numbers, groups can be referenced by a name." @@ -1867,7 +1857,7 @@ msgstr "" "referirse a ellos por números, los grupos pueden ser referenciados por un " "nombre." -#: ../Doc/howto/regex.rst:930 +#: ../Doc/howto/regex.rst:928 msgid "" "The syntax for a named group is one of the Python-specific extensions: ``(?" "P...)``. *name* is, obviously, the name of the group. Named groups " @@ -1887,7 +1877,7 @@ msgstr "" "del grupo deseado. Los grupos con nombre todavía reciben números, por lo que " "puede recuperar información sobre un grupo de dos maneras:" -#: ../Doc/howto/regex.rst:945 +#: ../Doc/howto/regex.rst:943 msgid "" "Additionally, you can retrieve named groups as a dictionary with :meth:`~re." "Match.groupdict`::" @@ -1895,7 +1885,7 @@ msgstr "" "Además, puede recuperar grupos nombrados como un diccionario con :meth:`~re." "Match.groupdict`::" -#: ../Doc/howto/regex.rst:952 +#: ../Doc/howto/regex.rst:950 #, fuzzy msgid "" "Named groups are handy because they let you use easily remembered names, " @@ -1906,7 +1896,7 @@ msgstr "" "recordar, en lugar de tener que recordar números. Aquí hay un ejemplo de RE " "del módulo :mod:`imaplib`::" -#: ../Doc/howto/regex.rst:963 +#: ../Doc/howto/regex.rst:961 msgid "" "It's obviously much easier to retrieve ``m.group('zonem')``, instead of " "having to remember to retrieve group 9." @@ -1914,7 +1904,7 @@ msgstr "" "Obviamente, es mucho más fácil recuperar ``m.group('zonem')``, en lugar de " "tener que recordar recuperar el grupo 9." -#: ../Doc/howto/regex.rst:966 +#: ../Doc/howto/regex.rst:964 msgid "" "The syntax for backreferences in an expression such as ``(...)\\1`` refers " "to the number of the group. There's naturally a variant that uses the group " @@ -1932,11 +1922,11 @@ msgstr "" "duplicadas, ``\\b(\\w+)\\s+\\1\\b`` también se puede escribir como ``\\b(?" "P\\w+)\\s+(?P=word)\\b``::" -#: ../Doc/howto/regex.rst:979 +#: ../Doc/howto/regex.rst:977 msgid "Lookahead Assertions" msgstr "Aserciones anticipadas" -#: ../Doc/howto/regex.rst:981 +#: ../Doc/howto/regex.rst:979 msgid "" "Another zero-width assertion is the lookahead assertion. Lookahead " "assertions are available in both positive and negative form, and look like " @@ -1946,11 +1936,11 @@ msgstr "" "anticipadas están disponibles tanto en forma positiva como negativa, y " "tienen este aspecto:" -#: ../Doc/howto/regex.rst:989 +#: ../Doc/howto/regex.rst:987 msgid "``(?=...)``" msgstr "``(?=...)``" -#: ../Doc/howto/regex.rst:985 +#: ../Doc/howto/regex.rst:983 msgid "" "Positive lookahead assertion. This succeeds if the contained regular " "expression, represented here by ``...``, successfully matches at the current " @@ -1964,11 +1954,11 @@ msgstr "" "expresión contenida, el motor de comparación no avanza en absoluto; el resto " "del patrón se intenta justo donde comenzó la aserción." -#: ../Doc/howto/regex.rst:994 +#: ../Doc/howto/regex.rst:992 msgid "``(?!...)``" msgstr "``(?!...)``" -#: ../Doc/howto/regex.rst:992 +#: ../Doc/howto/regex.rst:990 msgid "" "Negative lookahead assertion. This is the opposite of the positive " "assertion; it succeeds if the contained expression *doesn't* match at the " @@ -1978,7 +1968,7 @@ msgstr "" "tiene éxito si la expresión contenida *no* coincide con la posición actual " "en la cadena." -#: ../Doc/howto/regex.rst:996 +#: ../Doc/howto/regex.rst:994 msgid "" "To make this concrete, let's look at a case where a lookahead is useful. " "Consider a simple pattern to match a filename and split it apart into a base " @@ -1991,15 +1981,15 @@ msgstr "" "``. Por ejemplo, en ``news.rc``, ``news`` es el nombre base y ``rc`` es la " "extensión del nombre del archivo." -#: ../Doc/howto/regex.rst:1001 +#: ../Doc/howto/regex.rst:999 msgid "The pattern to match this is quite simple:" msgstr "El patrón para que coincida con esto es bastante simple:" -#: ../Doc/howto/regex.rst:1003 +#: ../Doc/howto/regex.rst:1001 msgid "``.*[.].*$``" msgstr "``.*[.].*$``" -#: ../Doc/howto/regex.rst:1005 +#: ../Doc/howto/regex.rst:1003 msgid "" "Notice that the ``.`` needs to be treated specially because it's a " "metacharacter, so it's inside a character class to only match that specific " @@ -2015,7 +2005,7 @@ msgstr "" "extensión. Esta expresión regular coincide con ``foo.bar`` y ``autoexec." "bat`` y ``sendmail.cf`` y ``printers.conf``." -#: ../Doc/howto/regex.rst:1012 +#: ../Doc/howto/regex.rst:1010 msgid "" "Now, consider complicating the problem a bit; what if you want to match " "filenames where the extension is not ``bat``? Some incorrect attempts:" @@ -2024,7 +2014,7 @@ msgstr "" "coincidir los nombres de archivo donde la extensión no es ``bat``? Algunos " "intentos incorrectos:" -#: ../Doc/howto/regex.rst:1015 +#: ../Doc/howto/regex.rst:1013 msgid "" "``.*[.][^b].*$`` The first attempt above tries to exclude ``bat`` by " "requiring that the first character of the extension is not a ``b``. This is " @@ -2034,11 +2024,11 @@ msgstr "" "requiriendo que el primer carácter de la extensión no sea una ``b``. Esto " "está mal, porque el patrón tampoco coincide ``foo.bar``." -#: ../Doc/howto/regex.rst:1019 +#: ../Doc/howto/regex.rst:1017 msgid "``.*[.]([^b]..|.[^a].|..[^t])$``" msgstr "``.*[.]([^b]..|.[^a].|..[^t])$``" -#: ../Doc/howto/regex.rst:1021 +#: ../Doc/howto/regex.rst:1019 msgid "" "The expression gets messier when you try to patch up the first solution by " "requiring one of the following cases to match: the first character of the " @@ -2056,11 +2046,11 @@ msgstr "" "archivo con una extensión de dos letras como ``sendmail.cf``. Complicaremos " "el patrón nuevamente en un esfuerzo por arreglarlo." -#: ../Doc/howto/regex.rst:1029 +#: ../Doc/howto/regex.rst:1027 msgid "``.*[.]([^b].?.?|.[^a]?.?|..?[^t]?)$``" msgstr "``.*[.]([^b].?.?|.[^a]?.?|..?[^t]?)$``" -#: ../Doc/howto/regex.rst:1031 +#: ../Doc/howto/regex.rst:1029 msgid "" "In the third attempt, the second and third letters are all made optional in " "order to allow matching extensions shorter than three characters, such as " @@ -2070,7 +2060,7 @@ msgstr "" "permitir extensiones coincidentes de menos de tres caracteres, como " "``sendmail.cf``." -#: ../Doc/howto/regex.rst:1035 +#: ../Doc/howto/regex.rst:1033 msgid "" "The pattern's getting really complicated now, which makes it hard to read " "and understand. Worse, if the problem changes and you want to exclude both " @@ -2082,11 +2072,11 @@ msgstr "" "``bat`` y ``exe`` como extensiones, el patrón se volvería aún más complicado " "y confuso." -#: ../Doc/howto/regex.rst:1040 +#: ../Doc/howto/regex.rst:1038 msgid "A negative lookahead cuts through all this confusion:" msgstr "Una mirada anticipada negativa atraviesa toda esta confusión:" -#: ../Doc/howto/regex.rst:1042 +#: ../Doc/howto/regex.rst:1040 msgid "" "``.*[.](?!bat$)[^.]*$`` The negative lookahead means: if the expression " "``bat`` doesn't match at this point, try the rest of the pattern; if " @@ -2102,7 +2092,7 @@ msgstr "" "solo comienza con ``bat``. El ``[^.]*`` asegura que el patrón funcione " "cuando hay varios puntos en el nombre del archivo." -#: ../Doc/howto/regex.rst:1049 +#: ../Doc/howto/regex.rst:1047 msgid "" "Excluding another filename extension is now easy; simply add it as an " "alternative inside the assertion. The following pattern excludes filenames " @@ -2112,15 +2102,15 @@ msgstr "" "agréguelo como una alternativa dentro de la aserción. El siguiente patrón " "excluye los nombres de archivo que terminan en ``bat`` o ``exe``:" -#: ../Doc/howto/regex.rst:1053 +#: ../Doc/howto/regex.rst:1051 msgid "``.*[.](?!bat$|exe$)[^.]*$``" msgstr "``.*[.](?!bat$|exe$)[^.]*$``" -#: ../Doc/howto/regex.rst:1057 +#: ../Doc/howto/regex.rst:1055 msgid "Modifying Strings" msgstr "Modificando cadenas de caracteres" -#: ../Doc/howto/regex.rst:1059 +#: ../Doc/howto/regex.rst:1057 msgid "" "Up to this point, we've simply performed searches against a static string. " "Regular expressions are also commonly used to modify strings in various " @@ -2131,21 +2121,21 @@ msgstr "" "comúnmente para modificar cadenas de varias formas, utilizando los " "siguientes métodos de patrón:" -#: ../Doc/howto/regex.rst:1066 +#: ../Doc/howto/regex.rst:1064 msgid "``split()``" msgstr "``split()``" -#: ../Doc/howto/regex.rst:1066 +#: ../Doc/howto/regex.rst:1064 msgid "Split the string into a list, splitting it wherever the RE matches" msgstr "" "Divida la cadena de caracteres en una lista, dividiéndola donde coincida la " "RE" -#: ../Doc/howto/regex.rst:1069 +#: ../Doc/howto/regex.rst:1067 msgid "``sub()``" msgstr "``sub()``" -#: ../Doc/howto/regex.rst:1069 +#: ../Doc/howto/regex.rst:1067 msgid "" "Find all substrings where the RE matches, and replace them with a different " "string" @@ -2153,11 +2143,11 @@ msgstr "" "Encuentra todas las subcadenas de caracteres donde coincida la RE y las " "reemplaza con una cadena de caracteres diferente" -#: ../Doc/howto/regex.rst:1072 +#: ../Doc/howto/regex.rst:1070 msgid "``subn()``" msgstr "``subn()``" -#: ../Doc/howto/regex.rst:1072 +#: ../Doc/howto/regex.rst:1070 msgid "" "Does the same thing as :meth:`!sub`, but returns the new string and the " "number of replacements" @@ -2165,11 +2155,11 @@ msgstr "" "Hace lo mismo que :meth:`!sub`, pero retorna la nueva cadena de caracteres y " "el número de reemplazos" -#: ../Doc/howto/regex.rst:1079 +#: ../Doc/howto/regex.rst:1077 msgid "Splitting Strings" msgstr "Separando cadenas de caracteres" -#: ../Doc/howto/regex.rst:1081 +#: ../Doc/howto/regex.rst:1079 msgid "" "The :meth:`~re.Pattern.split` method of a pattern splits a string apart " "wherever the RE matches, returning a list of the pieces. It's similar to " @@ -2186,7 +2176,7 @@ msgstr "" "espacios en blanco o por una cadena fija. Como era de esperar, también hay " "una función a nivel de módulo :func:`re.split`." -#: ../Doc/howto/regex.rst:1092 +#: ../Doc/howto/regex.rst:1090 msgid "" "Split *string* by the matches of the regular expression. If capturing " "parentheses are used in the RE, then their contents will also be returned as " @@ -2198,7 +2188,7 @@ msgstr "" "como parte de la lista resultante. Si *maxsplit* es distinto de cero, se " "realizan como máximo divisiones *maxsplit* ." -#: ../Doc/howto/regex.rst:1097 +#: ../Doc/howto/regex.rst:1095 msgid "" "You can limit the number of splits made, by passing a value for *maxsplit*. " "When *maxsplit* is nonzero, at most *maxsplit* splits will be made, and the " @@ -2212,7 +2202,7 @@ msgstr "" "el elemento final de la lista. En el siguiente ejemplo, el delimitador es " "cualquier secuencia de caracteres no alfanuméricos. ::" -#: ../Doc/howto/regex.rst:1109 +#: ../Doc/howto/regex.rst:1107 msgid "" "Sometimes you're not only interested in what the text between delimiters is, " "but also need to know what the delimiter was. If capturing parentheses are " @@ -2224,7 +2214,7 @@ msgstr "" "captura en la RE, sus valores también se retornan como parte de la lista. " "Compare las siguientes llamadas:" -#: ../Doc/howto/regex.rst:1121 +#: ../Doc/howto/regex.rst:1119 msgid "" "The module-level function :func:`re.split` adds the RE to be used as the " "first argument, but is otherwise the same. ::" @@ -2232,11 +2222,11 @@ msgstr "" "La función de nivel de módulo :func:`re.split` agrega la RE que se usará " "como primer argumento, pero por lo demás es el mismo. ::" -#: ../Doc/howto/regex.rst:1133 +#: ../Doc/howto/regex.rst:1131 msgid "Search and Replace" msgstr "Búsqueda y reemplazo" -#: ../Doc/howto/regex.rst:1135 +#: ../Doc/howto/regex.rst:1133 msgid "" "Another common task is to find all the matches for a pattern, and replace " "them with a different string. The :meth:`~re.Pattern.sub` method takes a " @@ -2248,7 +2238,7 @@ msgstr "" "Pattern.sub` toma un valor de reemplazo, que puede ser una cadena de " "caracteres o una función, y la cadena de caracteres a procesar." -#: ../Doc/howto/regex.rst:1142 +#: ../Doc/howto/regex.rst:1140 msgid "" "Returns the string obtained by replacing the leftmost non-overlapping " "occurrences of the RE in *string* by the replacement *replacement*. If the " @@ -2259,7 +2249,7 @@ msgstr "" "*replacement*. Si no se encuentra el patrón, el *string* se retorna sin " "cambios." -#: ../Doc/howto/regex.rst:1146 +#: ../Doc/howto/regex.rst:1144 msgid "" "The optional argument *count* is the maximum number of pattern occurrences " "to be replaced; *count* must be a non-negative integer. The default value " @@ -2269,7 +2259,7 @@ msgstr "" "que se reemplazarán; *count* debe ser un número entero no negativo. El valor " "predeterminado de 0 significa reemplazar todas las ocurrencias." -#: ../Doc/howto/regex.rst:1150 +#: ../Doc/howto/regex.rst:1148 msgid "" "Here's a simple example of using the :meth:`~re.Pattern.sub` method. It " "replaces colour names with the word ``colour``::" @@ -2277,7 +2267,7 @@ msgstr "" "Aquí hay un ejemplo simple del uso del método :meth:`~re.Pattern.sub`. " "Reemplaza los nombres de los colores con la palabra ``colour``::" -#: ../Doc/howto/regex.rst:1159 +#: ../Doc/howto/regex.rst:1157 msgid "" "The :meth:`~re.Pattern.subn` method does the same work, but returns a 2-" "tuple containing the new string value and the number of replacements that " @@ -2287,7 +2277,7 @@ msgstr "" "tupla de 2 que contiene el nuevo valor de cadena de caracteres y el número " "de reemplazos que se realizaron::" -#: ../Doc/howto/regex.rst:1168 +#: ../Doc/howto/regex.rst:1166 msgid "" "Empty matches are replaced only when they're not adjacent to a previous " "empty match. ::" @@ -2295,7 +2285,7 @@ msgstr "" "Las coincidencias vacías se reemplazan solo cuando no son adyacentes a una " "coincidencia vacía anterior. ::" -#: ../Doc/howto/regex.rst:1175 +#: ../Doc/howto/regex.rst:1173 msgid "" "If *replacement* is a string, any backslash escapes in it are processed. " "That is, ``\\n`` is converted to a single newline character, ``\\r`` is " @@ -2313,7 +2303,7 @@ msgstr "" "coincide con el grupo correspondiente a la RE. Esto le permite incorporar " "partes del texto original en la cadena de reemplazo resultante." -#: ../Doc/howto/regex.rst:1182 +#: ../Doc/howto/regex.rst:1180 msgid "" "This example matches the word ``section`` followed by a string enclosed in " "``{``, ``}``, and changes ``section`` to ``subsection``::" @@ -2321,7 +2311,7 @@ msgstr "" "Este ejemplo hace coincidir la palabra ``section`` seguida de una cadena " "encerrada entre ``{``, ``}``, y cambia ``section`` a ``subsection``::" -#: ../Doc/howto/regex.rst:1189 +#: ../Doc/howto/regex.rst:1187 msgid "" "There's also a syntax for referring to named groups as defined by the ``(?" "P...)`` syntax. ``\\g`` will use the substring matched by the " @@ -2342,7 +2332,7 @@ msgstr "" "son todas equivalentes, pero use las tres variaciones de la cadena de " "reemplazo. ::" -#: ../Doc/howto/regex.rst:1206 +#: ../Doc/howto/regex.rst:1204 msgid "" "*replacement* can also be a function, which gives you even more control. If " "*replacement* is a function, the function is called for every non-" @@ -2357,7 +2347,7 @@ msgstr "" "puede usar esta información para calcular la cadena de reemplazo deseada y " "retornarla." -#: ../Doc/howto/regex.rst:1212 +#: ../Doc/howto/regex.rst:1210 msgid "" "In the following example, the replacement function translates decimals into " "hexadecimal::" @@ -2365,7 +2355,7 @@ msgstr "" "En el siguiente ejemplo, la función de reemplazo traduce decimales a " "hexadecimales::" -#: ../Doc/howto/regex.rst:1224 +#: ../Doc/howto/regex.rst:1222 msgid "" "When using the module-level :func:`re.sub` function, the pattern is passed " "as the first argument. The pattern may be provided as an object or as a " @@ -2381,11 +2371,11 @@ msgstr "" "en la cadena de patrón, por ejemplo ``sub(\"(?i)b+\", \"x\", \"bbbb " "BBBB\")`` retorna ``'x x'``." -#: ../Doc/howto/regex.rst:1232 +#: ../Doc/howto/regex.rst:1230 msgid "Common Problems" msgstr "Problemas comunes" -#: ../Doc/howto/regex.rst:1234 +#: ../Doc/howto/regex.rst:1232 msgid "" "Regular expressions are a powerful tool for some applications, but in some " "ways their behaviour isn't intuitive and at times they don't behave the way " @@ -2397,11 +2387,11 @@ msgstr "" "veces, no se comportan de la forma esperada. Esta sección señalará algunos " "de los errores más comunes." -#: ../Doc/howto/regex.rst:1240 +#: ../Doc/howto/regex.rst:1238 msgid "Use String Methods" msgstr "Uso de métodos de cadenas de caracteres" -#: ../Doc/howto/regex.rst:1242 +#: ../Doc/howto/regex.rst:1240 msgid "" "Sometimes using the :mod:`re` module is a mistake. If you're matching a " "fixed string, or a single character class, and you're not using any :mod:" @@ -2422,7 +2412,7 @@ msgstr "" "para este propósito, en lugar del motor de expresión regular más grande y " "generalizado." -#: ../Doc/howto/regex.rst:1250 +#: ../Doc/howto/regex.rst:1248 msgid "" "One example might be replacing a single fixed string with another one; for " "example, you might replace ``word`` with ``deed``. :func:`re.sub` seems " @@ -2444,7 +2434,7 @@ msgstr "" "que ``word`` tenga un límite de palabra en cada lado. Esto lleva el trabajo " "más allá de las habilidades de :meth:`!replace`.)" -#: ../Doc/howto/regex.rst:1259 +#: ../Doc/howto/regex.rst:1257 msgid "" "Another common task is deleting every occurrence of a single character from " "a string or replacing it with another single character. You might do this " @@ -2458,7 +2448,7 @@ msgstr "" "ambas tareas y será más rápido que cualquier expresión regular la operación " "puede ser." -#: ../Doc/howto/regex.rst:1265 +#: ../Doc/howto/regex.rst:1263 msgid "" "In short, before turning to the :mod:`re` module, consider whether your " "problem can be solved with a faster and simpler string method." @@ -2466,11 +2456,11 @@ msgstr "" "En resumen, antes de pasar al módulo :mod:`re`, considere si su problema " "puede resolverse con un método de cadena de caracteres más rápido y simple." -#: ../Doc/howto/regex.rst:1270 +#: ../Doc/howto/regex.rst:1268 msgid "match() versus search()" msgstr "*match() versus search()*" -#: ../Doc/howto/regex.rst:1272 +#: ../Doc/howto/regex.rst:1270 msgid "" "The :func:`~re.match` function only checks if the RE matches at the " "beginning of the string while :func:`~re.search` will scan forward through " @@ -2486,7 +2476,7 @@ msgstr "" "que comenzará en 0; si la coincidencia no comienza en cero, :func:`!match` " "*no* lo informará. ::" -#: ../Doc/howto/regex.rst:1283 +#: ../Doc/howto/regex.rst:1281 msgid "" "On the other hand, :func:`~re.search` will scan forward through the string, " "reporting the first match it finds. ::" @@ -2494,7 +2484,7 @@ msgstr "" "Por otro lado, :func:`~re.search` escaneará hacia adelante a través de la " "cadena de caracteres, informando la primera coincidencia que encuentre. ::" -#: ../Doc/howto/regex.rst:1291 +#: ../Doc/howto/regex.rst:1289 msgid "" "Sometimes you'll be tempted to keep using :func:`re.match`, and just add ``." "*`` to the front of your RE. Resist this temptation and use :func:`re." @@ -2515,7 +2505,7 @@ msgstr "" "rápidamente a través de la cadena en busca del carácter inicial, solo " "probando la coincidencia completa si se encuentra una ``'C'``." -#: ../Doc/howto/regex.rst:1300 +#: ../Doc/howto/regex.rst:1298 msgid "" "Adding ``.*`` defeats this optimization, requiring scanning to the end of " "the string and then backtracking to find a match for the rest of the RE. " @@ -2525,11 +2515,11 @@ msgstr "" "final de la cadena y luego retroceder para encontrar una coincidencia para " "el resto de la RE. Utilice :func:`re.search` en su lugar." -#: ../Doc/howto/regex.rst:1306 +#: ../Doc/howto/regex.rst:1304 msgid "Greedy versus Non-Greedy" msgstr "Codiciosa versus no codiciosa (*Greedy versus Non-Greedy*)" -#: ../Doc/howto/regex.rst:1308 +#: ../Doc/howto/regex.rst:1306 msgid "" "When repeating a regular expression, as in ``a*``, the resulting action is " "to consume as much of the pattern as possible. This fact often bites you " @@ -2544,7 +2534,7 @@ msgstr "" "hacer coincidir una sola etiqueta HTML no funciona debido a la naturaleza " "codiciosa de ``.*``. ::" -#: ../Doc/howto/regex.rst:1322 +#: ../Doc/howto/regex.rst:1320 msgid "" "The RE matches the ``'<'`` in ``''``, and the ``.*`` consumes the rest " "of the string. There's still more left in the RE, though, and the ``>`` " @@ -2561,7 +2551,7 @@ msgstr "" "desde el ``'<'`` en ``''`` al ``'>'`` en ``''``, que no es lo " "que queremos." -#: ../Doc/howto/regex.rst:1329 +#: ../Doc/howto/regex.rst:1327 #, fuzzy msgid "" "In this case, the solution is to use the non-greedy quantifiers ``*?``, ``+?" @@ -2577,7 +2567,7 @@ msgstr "" "carácter a la vez, volviendo a intentar el ``'>'`` en cada paso. Esto " "produce el resultado correcto:" -#: ../Doc/howto/regex.rst:1338 +#: ../Doc/howto/regex.rst:1336 msgid "" "(Note that parsing HTML or XML with regular expressions is painful. Quick-" "and-dirty patterns will handle common cases, but HTML and XML have special " @@ -2593,11 +2583,11 @@ msgstr "" "posibles, los patrones serán *muy* complicados. Utilice un módulo analizador " "HTML o XML para tales tareas.)" -#: ../Doc/howto/regex.rst:1346 +#: ../Doc/howto/regex.rst:1344 msgid "Using re.VERBOSE" msgstr "Usando re.VERBOSE" -#: ../Doc/howto/regex.rst:1348 +#: ../Doc/howto/regex.rst:1346 msgid "" "By now you've probably noticed that regular expressions are a very compact " "notation, but they're not terribly readable. REs of moderate complexity can " @@ -2609,7 +2599,7 @@ msgstr "" "pueden convertirse en largas colecciones de barras invertidas, paréntesis y " "metacarácteres, lo que dificulta su lectura y comprensión." -#: ../Doc/howto/regex.rst:1353 +#: ../Doc/howto/regex.rst:1351 msgid "" "For such REs, specifying the :const:`re.VERBOSE` flag when compiling the " "regular expression can be helpful, because it allows you to format the " @@ -2619,7 +2609,7 @@ msgstr "" "expresión regular puede ser útil, porque le permite formatear la expresión " "regular con mayor claridad." -#: ../Doc/howto/regex.rst:1357 +#: ../Doc/howto/regex.rst:1355 msgid "" "The ``re.VERBOSE`` flag has several effects. Whitespace in the regular " "expression that *isn't* inside a character class is ignored. This means " @@ -2639,15 +2629,15 @@ msgstr "" "comillas triples, esto permite que las REs sean formateados de manera más " "ordenada:" -#: ../Doc/howto/regex.rst:1374 +#: ../Doc/howto/regex.rst:1372 msgid "This is far more readable than::" msgstr "Esto es mas legible que::" -#: ../Doc/howto/regex.rst:1380 +#: ../Doc/howto/regex.rst:1378 msgid "Feedback" msgstr "Feedback" -#: ../Doc/howto/regex.rst:1382 +#: ../Doc/howto/regex.rst:1380 msgid "" "Regular expressions are a complicated topic. Did this document help you " "understand them? Were there parts that were unclear, or Problems you " @@ -2658,7 +2648,7 @@ msgstr "" "comprenderlas? ¿Hubo partes que no estaban claras o problemas que encontró " "que no se trataron aquí? Si es así, envíe sugerencias de mejora al autor." -#: ../Doc/howto/regex.rst:1387 +#: ../Doc/howto/regex.rst:1385 msgid "" "The most complete book on regular expressions is almost certainly Jeffrey " "Friedl's Mastering Regular Expressions, published by O'Reilly. " @@ -2675,3 +2665,18 @@ msgstr "" "que no será útil como referencia para la programación en Python. (La primera " "edición cubría el módulo :mod:`!regex` de Python, ahora eliminado, que no le " "ayudará mucho.) Considere sacarlo de su biblioteca." + +#~ msgid "" +#~ "You can learn about this by interactively experimenting with the :mod:" +#~ "`re` module. If you have :mod:`tkinter` available, you may also want to " +#~ "look at :source:`Tools/demo/redemo.py`, a demonstration program included " +#~ "with the Python distribution. It allows you to enter REs and strings, " +#~ "and displays whether the RE matches or fails. :file:`redemo.py` can be " +#~ "quite useful when trying to debug a complicated RE." +#~ msgstr "" +#~ "Puede aprender sobre esto experimentando interactivamente con el módulo :" +#~ "mod:`re`. Si tiene :mod:`tkinter` disponible, también puede consultar :" +#~ "source:`Tools/demo/redemo.py`, un programa de demostración incluido con " +#~ "la distribución de Python. Le permite ingresar RE y cadenas de " +#~ "caracteres, y muestra si la RE coincide o falla. :file:`redemo.py` puede " +#~ "ser bastante útil cuando se intenta depurar una RE complicado." diff --git a/howto/sorting.po b/howto/sorting.po index dd418d7e82..2535567d37 100644 --- a/howto/sorting.po +++ b/howto/sorting.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-02-02 11:08-0300\n" "Last-Translator: Francisco Mora \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/howto/sorting.rst:4 msgid "Sorting HOW TO" @@ -407,19 +406,21 @@ msgstr "" "incorporada :func:`reversed` dos veces:" #: ../Doc/howto/sorting.rst:274 +#, fuzzy msgid "" "The sort routines use ``<`` when making comparisons between two objects. So, " "it is easy to add a standard sort order to a class by defining an :meth:" -"`__lt__` method:" +"`~object.__lt__` method:" msgstr "" "Las rutinas de ordenación utilizan ``<`` cuando realizan comparaciones entre " "dos objetos. Por lo tanto, es fácil añadir una ordenación estándar a una " "clase definiendo un método :meth:`__lt__`:" #: ../Doc/howto/sorting.rst:284 +#, fuzzy msgid "" -"However, note that ``<`` can fall back to using :meth:`__gt__` if :meth:" -"`__lt__` is not implemented (see :func:`object.__lt__`)." +"However, note that ``<`` can fall back to using :meth:`~object.__gt__` if :" +"meth:`~object.__lt__` is not implemented (see :func:`object.__lt__`)." msgstr "" "Sin embargo, tenga en cuenta que ``<`` puede recurrir a usar :meth:`__gt__` " "si :meth:`__lt__` no está implementado (ver :func:`object.__lt__`)." diff --git a/howto/unicode.po b/howto/unicode.po index bf967de44d..3a173d0566 100644 --- a/howto/unicode.po +++ b/howto/unicode.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-04 20:36+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -20,7 +20,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/howto/unicode.rst:5 msgid "Unicode HOWTO" @@ -723,13 +723,14 @@ msgstr "" "que se convierte en el par de letras minúsculas 'ss'." #: ../Doc/howto/unicode.rst:425 +#, fuzzy msgid "" "A second tool is the :mod:`unicodedata` module's :func:`~unicodedata." "normalize` function that converts strings to one of several normal forms, " "where letters followed by a combining character are replaced with single " -"characters. :func:`normalize` can be used to perform string comparisons " -"that won't falsely report inequality if two strings use combining characters " -"differently:" +"characters. :func:`~unicodedata.normalize` can be used to perform string " +"comparisons that won't falsely report inequality if two strings use " +"combining characters differently:" msgstr "" "Una segunda herramienta es la función :func:`~unicodedata.normalize` del " "módulo :mod:`unicodedata` que convierte las cadenas en una de varias formas " @@ -759,11 +760,12 @@ msgstr "" "mayúsculas y minúsculas::" #: ../Doc/howto/unicode.rst:477 +#, fuzzy msgid "" -"This will print ``True``. (Why is :func:`NFD` invoked twice? Because there " -"are a few characters that make :meth:`casefold` return a non-normalized " -"string, so the result needs to be normalized again. See section 3.13 of the " -"Unicode Standard for a discussion and an example.)" +"This will print ``True``. (Why is :func:`!NFD` invoked twice? Because " +"there are a few characters that make :meth:`~str.casefold` return a non-" +"normalized string, so the result needs to be normalized again. See section " +"3.13 of the Unicode Standard for a discussion and an example.)" msgstr "" "Esto imprimirá ``Verdadero``. (¿Por qué se invoca dos veces :func:`NFD`? " "Debido a que hay algunos caracteres que hacen que :meth:`casefold` retorne " diff --git a/howto/urllib2.po b/howto/urllib2.po index 39c5f07f3e..1653cafca5 100644 --- a/howto/urllib2.po +++ b/howto/urllib2.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-03-09 08:37-0300\n" "Last-Translator: Francisco Mora \n" -"Language-Team: python-doc-es\n" "Language: es_AR\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/howto/urllib2.rst:5 msgid "HOWTO Fetch Internet Resources Using The urllib Package" @@ -35,22 +34,10 @@ msgid "`Michael Foord `_" msgstr "`Michael Foord `_" #: ../Doc/howto/urllib2.rst:11 -msgid "" -"There is a French translation of an earlier revision of this HOWTO, " -"available at `urllib2 - Le Manuel manquant `_." -msgstr "" -"Hay una traducción al francés de una revisión anterior de este HOWTO, " -"disponible en `urllib2 - Le Manuel manquant `_." - -#: ../Doc/howto/urllib2.rst:18 msgid "Introduction" msgstr "Introducción" -#: ../Doc/howto/urllib2.rst:22 +#: ../Doc/howto/urllib2.rst:15 msgid "" "You may also find useful the following article on fetching web resources " "with Python:" @@ -58,7 +45,7 @@ msgstr "" "También puedes encontrar útil el siguiente artículo sobre la obtención de " "recursos web con Python:" -#: ../Doc/howto/urllib2.rst:25 +#: ../Doc/howto/urllib2.rst:18 msgid "" "`Basic Authentication `_" @@ -66,11 +53,11 @@ msgstr "" "`Basic Authentication `_" -#: ../Doc/howto/urllib2.rst:27 +#: ../Doc/howto/urllib2.rst:20 msgid "A tutorial on *Basic Authentication*, with examples in Python." msgstr "Un tutorial sobre *Autenticación Básica*, con ejemplos en Python." -#: ../Doc/howto/urllib2.rst:29 +#: ../Doc/howto/urllib2.rst:22 msgid "" "**urllib.request** is a Python module for fetching URLs (Uniform Resource " "Locators). It offers a very simple interface, in the form of the *urlopen* " @@ -87,7 +74,7 @@ msgstr "" "como la autenticación básica, cookies y proxies, entre otros. Estos son " "proporcionados por los llamados objetos de apertura y gestores." -#: ../Doc/howto/urllib2.rst:36 +#: ../Doc/howto/urllib2.rst:29 msgid "" "urllib.request supports fetching URLs for many \"URL schemes\" (identified " "by the string before the ``\":\"`` in URL - for example ``\"ftp\"`` is the " @@ -101,7 +88,7 @@ msgstr "" "de ``\"ftp://python.org/\"``) usando sus protocolos de red asociados (por " "ejemplo FTP, HTTP). Este tutorial se centra en el caso más común, HTTP." -#: ../Doc/howto/urllib2.rst:41 +#: ../Doc/howto/urllib2.rst:34 msgid "" "For straightforward situations *urlopen* is very easy to use. But as soon as " "you encounter errors or non-trivial cases when opening HTTP URLs, you will " @@ -121,15 +108,15 @@ msgstr "" "entenderlo. No pretende reemplazar los documentos :mod:`urllib.request`, " "pero es complementario a ellos." -#: ../Doc/howto/urllib2.rst:51 +#: ../Doc/howto/urllib2.rst:44 msgid "Fetching URLs" msgstr "Obtención de URLs" -#: ../Doc/howto/urllib2.rst:53 +#: ../Doc/howto/urllib2.rst:46 msgid "The simplest way to use urllib.request is as follows::" msgstr "La forma más simple de usar urllib.request es la siguiente::" -#: ../Doc/howto/urllib2.rst:59 +#: ../Doc/howto/urllib2.rst:52 msgid "" "If you wish to retrieve a resource via URL and store it in a temporary " "location, you can do so via the :func:`shutil.copyfileobj` and :func:" @@ -139,7 +126,7 @@ msgstr "" "ubicación temporal, puede hacerlo a través de las funciones :func:`shutil." "copyfileobj` y :func:`tempfile.NamedTemporaryFile`::" -#: ../Doc/howto/urllib2.rst:74 +#: ../Doc/howto/urllib2.rst:67 msgid "" "Many uses of urllib will be that simple (note that instead of an 'http:' URL " "we could have used a URL starting with 'ftp:', 'file:', etc.). However, " @@ -151,7 +138,7 @@ msgstr "" "etc.). Sin embargo, el propósito de este tutorial es explicar los casos más " "complicados, concentrándose en el HTTP." -#: ../Doc/howto/urllib2.rst:79 +#: ../Doc/howto/urllib2.rst:72 msgid "" "HTTP is based on requests and responses - the client makes requests and " "servers send responses. urllib.request mirrors this with a ``Request`` " @@ -170,7 +157,7 @@ msgstr "" "lo que significa que puedes por ejemplo llamar a ``.read()`` en la " "respuesta::" -#: ../Doc/howto/urllib2.rst:93 +#: ../Doc/howto/urllib2.rst:86 msgid "" "Note that urllib.request makes use of the same Request interface to handle " "all URL schemes. For example, you can make an FTP request like so::" @@ -179,7 +166,7 @@ msgstr "" "gestionar todos los esquemas de URL. Por ejemplo, puedes hacer una petición " "FTP de la siguiente manera::" -#: ../Doc/howto/urllib2.rst:98 +#: ../Doc/howto/urllib2.rst:91 msgid "" "In the case of HTTP, there are two extra things that Request objects allow " "you to do: First, you can pass data to be sent to the server. Second, you " @@ -193,11 +180,11 @@ msgstr "" "datos o sobre la solicitud en sí, al servidor; esta información se envía " "como \"encabezados\" HTTP. Veamos cada uno de estos por turno." -#: ../Doc/howto/urllib2.rst:105 +#: ../Doc/howto/urllib2.rst:98 msgid "Data" msgstr "Datos" -#: ../Doc/howto/urllib2.rst:107 +#: ../Doc/howto/urllib2.rst:100 msgid "" "Sometimes you want to send data to a URL (often the URL will refer to a CGI " "(Common Gateway Interface) script or other web application). With HTTP, this " @@ -220,7 +207,7 @@ msgstr "" "argumento ``data``. La codificación se hace usando una función de la " "biblioteca :mod:`urllib.parse``. ::" -#: ../Doc/howto/urllib2.rst:131 +#: ../Doc/howto/urllib2.rst:124 msgid "" "Note that other encodings are sometimes required (e.g. for file upload from " "HTML forms - see `HTML Specification, Form Submission `_ para más detalles)." -#: ../Doc/howto/urllib2.rst:136 +#: ../Doc/howto/urllib2.rst:129 msgid "" "If you do not pass the ``data`` argument, urllib uses a **GET** request. One " "way in which GET and POST requests differ is that POST requests often have " @@ -255,11 +242,11 @@ msgstr "" "datos también pueden ser pasados en una solicitud GET HTTP codificándolos en " "la propia URL." -#: ../Doc/howto/urllib2.rst:146 +#: ../Doc/howto/urllib2.rst:139 msgid "This is done as follows::" msgstr "Esto se hace de la siguiente manera::" -#: ../Doc/howto/urllib2.rst:161 +#: ../Doc/howto/urllib2.rst:154 msgid "" "Notice that the full URL is created by adding a ``?`` to the URL, followed " "by the encoded values." @@ -267,11 +254,11 @@ msgstr "" "Nota que la URL completa se crea añadiendo un ``?`` a la URL, seguido de los " "valores codificados." -#: ../Doc/howto/urllib2.rst:165 +#: ../Doc/howto/urllib2.rst:158 msgid "Headers" msgstr "Encabezados (Headers)" -#: ../Doc/howto/urllib2.rst:167 +#: ../Doc/howto/urllib2.rst:160 msgid "" "We'll discuss here one particular HTTP header, to illustrate how to add " "headers to your HTTP request." @@ -279,7 +266,7 @@ msgstr "" "Discutiremos aquí un encabezado HTTP en particular, para ilustrar cómo " "agregar encabezados a su solicitud HTTP." -#: ../Doc/howto/urllib2.rst:170 +#: ../Doc/howto/urllib2.rst:163 msgid "" "Some websites [#]_ dislike being browsed by programs, or send different " "versions to different browsers [#]_. By default urllib identifies itself as " @@ -301,7 +288,7 @@ msgstr "" "de encabezados. El siguiente ejemplo hace la misma petición que arriba, pero " "se identifica como una versión de Internet Explorer [#]_. ::" -#: ../Doc/howto/urllib2.rst:197 +#: ../Doc/howto/urllib2.rst:190 msgid "" "The response also has two useful methods. See the section on `info and " "geturl`_ which comes after we have a look at what happens when things go " @@ -311,39 +298,41 @@ msgstr "" "geturl`_ que viene después de que echemos un vistazo a lo que pasa cuando " "las cosas van mal." -#: ../Doc/howto/urllib2.rst:202 +#: ../Doc/howto/urllib2.rst:195 msgid "Handling Exceptions" msgstr "Gestión de excepciones" -#: ../Doc/howto/urllib2.rst:204 +#: ../Doc/howto/urllib2.rst:197 +#, fuzzy msgid "" -"*urlopen* raises :exc:`URLError` when it cannot handle a response (though as " -"usual with Python APIs, built-in exceptions such as :exc:`ValueError`, :exc:" -"`TypeError` etc. may also be raised)." +"*urlopen* raises :exc:`~urllib.error.URLError` when it cannot handle a " +"response (though as usual with Python APIs, built-in exceptions such as :exc:" +"`ValueError`, :exc:`TypeError` etc. may also be raised)." msgstr "" "*urlopen* genera :exc:`URLError` cuando no puede gestionar una respuesta " "(aunque como es habitual en las APIs de Python, también se pueden generar " "excepciones predefinidas tales como :exc:`ValueError`, :exc:`TypeError` " "etc.)." -#: ../Doc/howto/urllib2.rst:208 +#: ../Doc/howto/urllib2.rst:201 +#, fuzzy msgid "" -":exc:`HTTPError` is the subclass of :exc:`URLError` raised in the specific " -"case of HTTP URLs." +":exc:`~urllib.error.HTTPError` is the subclass of :exc:`~urllib.error." +"URLError` raised in the specific case of HTTP URLs." msgstr "" ":exc:`HTTPError` es la subclase de :exc:`URLError` generada en el caso " "específico de las URLs HTTP." -#: ../Doc/howto/urllib2.rst:211 +#: ../Doc/howto/urllib2.rst:204 msgid "The exception classes are exported from the :mod:`urllib.error` module." msgstr "" "Las clases de excepción se exportan desde el módulo :mod:`urllib.error`." -#: ../Doc/howto/urllib2.rst:214 +#: ../Doc/howto/urllib2.rst:207 msgid "URLError" msgstr "URLError" -#: ../Doc/howto/urllib2.rst:216 +#: ../Doc/howto/urllib2.rst:209 msgid "" "Often, URLError is raised because there is no network connection (no route " "to the specified server), or the specified server doesn't exist. In this " @@ -355,24 +344,25 @@ msgstr "" "este caso, la excepción generada tendrá un atributo \"reason\", que es una " "tupla que contiene un código de error y un mensaje de error de texto." -#: ../Doc/howto/urllib2.rst:221 +#: ../Doc/howto/urllib2.rst:214 msgid "e.g. ::" msgstr "por ejemplo ::" -#: ../Doc/howto/urllib2.rst:232 +#: ../Doc/howto/urllib2.rst:225 msgid "HTTPError" msgstr "HTTPError" -#: ../Doc/howto/urllib2.rst:234 +#: ../Doc/howto/urllib2.rst:227 +#, fuzzy msgid "" "Every HTTP response from the server contains a numeric \"status code\". " "Sometimes the status code indicates that the server is unable to fulfil the " "request. The default handlers will handle some of these responses for you " "(for example, if the response is a \"redirection\" that requests the client " "fetch the document from a different URL, urllib will handle that for you). " -"For those it can't handle, urlopen will raise an :exc:`HTTPError`. Typical " -"errors include '404' (page not found), '403' (request forbidden), and " -"'401' (authentication required)." +"For those it can't handle, urlopen will raise an :exc:`~urllib.error." +"HTTPError`. Typical errors include '404' (page not found), '403' (request " +"forbidden), and '401' (authentication required)." msgstr "" "Cada respuesta HTTP del servidor contiene un \"código de estado\" numérico. " "A veces el código de estado indica que el servidor es incapaz de satisfacer " @@ -384,26 +374,27 @@ msgstr "" "típicos incluyen '404' (página no encontrada), '403' (petición prohibida), y " "'401' (autenticación requerida)." -#: ../Doc/howto/urllib2.rst:242 +#: ../Doc/howto/urllib2.rst:235 msgid "" "See section 10 of :rfc:`2616` for a reference on all the HTTP error codes." msgstr "" "Vea la sección 10 de :rfc:`2616` para una referencia sobre todos los códigos " "de error HTTP." -#: ../Doc/howto/urllib2.rst:244 +#: ../Doc/howto/urllib2.rst:237 +#, fuzzy msgid "" -"The :exc:`HTTPError` instance raised will have an integer 'code' attribute, " -"which corresponds to the error sent by the server." +"The :exc:`~urllib.error.HTTPError` instance raised will have an integer " +"'code' attribute, which corresponds to the error sent by the server." msgstr "" "La instancia :exc:`HTTPError` generada tendrá un atributo de 'código' " "numérico de tipo entero, que corresponde al error enviado por el servidor." -#: ../Doc/howto/urllib2.rst:248 +#: ../Doc/howto/urllib2.rst:241 msgid "Error Codes" msgstr "Códigos de error" -#: ../Doc/howto/urllib2.rst:250 +#: ../Doc/howto/urllib2.rst:243 msgid "" "Because the default handlers handle redirects (codes in the 300 range), and " "codes in the 100--299 range indicate success, you will usually only see " @@ -413,7 +404,7 @@ msgstr "" "rango de 300), y que los códigos en el rango de 100--299 indican éxito, " "normalmente sólo verás códigos de error en el rango de 400--599." -#: ../Doc/howto/urllib2.rst:254 +#: ../Doc/howto/urllib2.rst:247 msgid "" ":attr:`http.server.BaseHTTPRequestHandler.responses` is a useful dictionary " "of response codes in that shows all the response codes used by :rfc:`2616`. " @@ -424,13 +415,14 @@ msgstr "" "utilizados por :rfc:`2616`. El diccionario se reproduce aquí por " "conveniencia ::" -#: ../Doc/howto/urllib2.rst:326 +#: ../Doc/howto/urllib2.rst:319 +#, fuzzy msgid "" "When an error is raised the server responds by returning an HTTP error code " -"*and* an error page. You can use the :exc:`HTTPError` instance as a response " -"on the page returned. This means that as well as the code attribute, it also " -"has read, geturl, and info, methods as returned by the ``urllib.response`` " -"module::" +"*and* an error page. You can use the :exc:`~urllib.error.HTTPError` instance " +"as a response on the page returned. This means that as well as the code " +"attribute, it also has read, geturl, and info, methods as returned by the " +"``urllib.response`` module::" msgstr "" "Cuando se genera un error, el servidor responde retornando un código de " "error HTTP *y* una página de error. Puedes usar la instancia :exc:" @@ -438,49 +430,53 @@ msgstr "" "del atributo de código, también tiene los métodos read, geturl, e info, tal " "y como son retornados por el módulo ``urllib.response``::" -#: ../Doc/howto/urllib2.rst:346 +#: ../Doc/howto/urllib2.rst:339 msgid "Wrapping it Up" msgstr "Resumiéndolo" -#: ../Doc/howto/urllib2.rst:348 +#: ../Doc/howto/urllib2.rst:341 +#, fuzzy msgid "" -"So if you want to be prepared for :exc:`HTTPError` *or* :exc:`URLError` " -"there are two basic approaches. I prefer the second approach." +"So if you want to be prepared for :exc:`~urllib.error.HTTPError` *or* :exc:" +"`~urllib.error.URLError` there are two basic approaches. I prefer the second " +"approach." msgstr "" "Si quieres estar preparado para :exc:`HTTPError` *o* :exc:`URLError` hay dos " "enfoques básicos. Prefiero el segundo enfoque." -#: ../Doc/howto/urllib2.rst:352 +#: ../Doc/howto/urllib2.rst:345 msgid "Number 1" msgstr "Número 1" -#: ../Doc/howto/urllib2.rst:374 +#: ../Doc/howto/urllib2.rst:367 +#, fuzzy msgid "" "The ``except HTTPError`` *must* come first, otherwise ``except URLError`` " -"will *also* catch an :exc:`HTTPError`." +"will *also* catch an :exc:`~urllib.error.HTTPError`." msgstr "" "El error ``except HTTPError`` *debe* ser lo primero en venir, de lo " "contrario el ``except URLError`` *también* capturará un :exc:`HTTPError`." -#: ../Doc/howto/urllib2.rst:378 +#: ../Doc/howto/urllib2.rst:371 msgid "Number 2" msgstr "Número 2" -#: ../Doc/howto/urllib2.rst:399 +#: ../Doc/howto/urllib2.rst:392 msgid "info and geturl" msgstr "info y geturl" -#: ../Doc/howto/urllib2.rst:401 +#: ../Doc/howto/urllib2.rst:394 +#, fuzzy msgid "" -"The response returned by urlopen (or the :exc:`HTTPError` instance) has two " -"useful methods :meth:`info` and :meth:`geturl` and is defined in the module :" -"mod:`urllib.response`.." +"The response returned by urlopen (or the :exc:`~urllib.error.HTTPError` " +"instance) has two useful methods :meth:`info` and :meth:`geturl` and is " +"defined in the module :mod:`urllib.response`.." msgstr "" "La respuesta retornada por urlopen (o la instancia de :exc:`HTTPError`) " "tiene dos métodos útiles :meth:`info` y :meth:`geturl` y está definida en el " "módulo :mod:`urllib.response`.." -#: ../Doc/howto/urllib2.rst:405 +#: ../Doc/howto/urllib2.rst:398 msgid "" "**geturl** - this returns the real URL of the page fetched. This is useful " "because ``urlopen`` (or the opener object used) may have followed a " @@ -492,7 +488,7 @@ msgstr "" "una redirección. El URL de la página obtenida puede no ser el mismo que el " "URL solicitado." -#: ../Doc/howto/urllib2.rst:409 +#: ../Doc/howto/urllib2.rst:402 msgid "" "**info** - this returns a dictionary-like object that describes the page " "fetched, particularly the headers sent by the server. It is currently an :" @@ -502,7 +498,7 @@ msgstr "" "página consultada, particularmente los encabezados enviados por el servidor. " "Actualmente es una instancia :class:`http.client.HTTPMessage`." -#: ../Doc/howto/urllib2.rst:413 +#: ../Doc/howto/urllib2.rst:406 msgid "" "Typical headers include 'Content-length', 'Content-type', and so on. See the " "`Quick Reference to HTTP Headers `_ for a " @@ -514,11 +510,11 @@ msgstr "" "http.html>`_ para un listado útil de encabezados de HTTP con breves " "explicaciones de su significado y uso." -#: ../Doc/howto/urllib2.rst:420 +#: ../Doc/howto/urllib2.rst:413 msgid "Openers and Handlers" msgstr "Objetos de Apertura (Openers) y Gestores (Handlers)" -#: ../Doc/howto/urllib2.rst:422 +#: ../Doc/howto/urllib2.rst:415 msgid "" "When you fetch a URL you use an opener (an instance of the perhaps " "confusingly named :class:`urllib.request.OpenerDirector`). Normally we have " @@ -537,7 +533,7 @@ msgstr "" "manejar un aspecto de la apertura de URLs, por ejemplo redirecciones HTTP o " "cookies HTTP." -#: ../Doc/howto/urllib2.rst:430 +#: ../Doc/howto/urllib2.rst:423 msgid "" "You will want to create openers if you want to fetch URLs with specific " "handlers installed, for example to get an opener that handles cookies, or to " @@ -548,7 +544,7 @@ msgstr "" "gestione cookies, o para obtener un objeto de apertura que no gestione " "redireccionamientos." -#: ../Doc/howto/urllib2.rst:434 +#: ../Doc/howto/urllib2.rst:427 msgid "" "To create an opener, instantiate an ``OpenerDirector``, and then call ``." "add_handler(some_handler_instance)`` repeatedly." @@ -556,7 +552,7 @@ msgstr "" "Para crear un objeto de apertura, debes instanciar un ``OpenerDirector``, y " "luego llamar ``.add_handler(some_handler_instance)`` repetidamente." -#: ../Doc/howto/urllib2.rst:437 +#: ../Doc/howto/urllib2.rst:430 msgid "" "Alternatively, you can use ``build_opener``, which is a convenience function " "for creating opener objects with a single function call. ``build_opener`` " @@ -569,7 +565,7 @@ msgstr "" "proporciona una forma rápida de añadir más y/o sobrescribir los gestores por " "defecto." -#: ../Doc/howto/urllib2.rst:442 +#: ../Doc/howto/urllib2.rst:435 msgid "" "Other sorts of handlers you might want to can handle proxies, " "authentication, and other common but slightly specialised situations." @@ -577,7 +573,7 @@ msgstr "" "Otros tipos de gestores que puedes querer permiten manejar proxies, " "autenticación, y otras situaciones comunes pero ligeramente especializadas." -#: ../Doc/howto/urllib2.rst:445 +#: ../Doc/howto/urllib2.rst:438 msgid "" "``install_opener`` can be used to make an ``opener`` object the (global) " "default opener. This means that calls to ``urlopen`` will use the opener you " @@ -587,7 +583,7 @@ msgstr "" "el objeto de apertura (global) por defecto. Esto significa que las llamadas " "a ``urlopen`` usarán el objeto de apertura que has instalado." -#: ../Doc/howto/urllib2.rst:449 +#: ../Doc/howto/urllib2.rst:442 msgid "" "Opener objects have an ``open`` method, which can be called directly to " "fetch urls in the same way as the ``urlopen`` function: there's no need to " @@ -598,17 +594,18 @@ msgstr "" "\"urlopen\": no hay necesidad de llamar ``install_opener``, excepto por " "conveniencia." -#: ../Doc/howto/urllib2.rst:455 +#: ../Doc/howto/urllib2.rst:448 msgid "Basic Authentication" msgstr "Autenticación básica" -#: ../Doc/howto/urllib2.rst:457 +#: ../Doc/howto/urllib2.rst:450 +#, fuzzy msgid "" "To illustrate creating and installing a handler we will use the " "``HTTPBasicAuthHandler``. For a more detailed discussion of this subject -- " "including an explanation of how Basic Authentication works - see the `Basic " -"Authentication Tutorial `_." +"Authentication Tutorial `__." msgstr "" "Para ilustrar la creación e instalación de un gestor usaremos " "``HTTPBasicAuthHandler``. Para una discusión más detallada de este tema -- " @@ -616,7 +613,7 @@ msgstr "" "`Basic Authentication Tutorial `_." -#: ../Doc/howto/urllib2.rst:463 +#: ../Doc/howto/urllib2.rst:456 msgid "" "When authentication is required, the server sends a header (as well as the " "401 error code) requesting authentication. This specifies the " @@ -628,11 +625,11 @@ msgstr "" "el esquema de autenticación y un 'realm'. El encabezado tiene el siguiente " "aspecto: ``WWW-Authenticate: SCHEME realm=\"REALM\"``." -#: ../Doc/howto/urllib2.rst:468 +#: ../Doc/howto/urllib2.rst:461 msgid "e.g." msgstr "por ejemplo." -#: ../Doc/howto/urllib2.rst:475 +#: ../Doc/howto/urllib2.rst:468 msgid "" "The client should then retry the request with the appropriate name and " "password for the realm included as a header in the request. This is 'basic " @@ -645,7 +642,7 @@ msgstr "" "podemos crear una instancia de ``HTTPBasicAuthHandler`` y un objeto de " "apertura para usar este manejador." -#: ../Doc/howto/urllib2.rst:480 +#: ../Doc/howto/urllib2.rst:473 msgid "" "The ``HTTPBasicAuthHandler`` uses an object called a password manager to " "handle the mapping of URLs and realms to passwords and usernames. If you " @@ -669,7 +666,7 @@ msgstr "" "proporcionando ``None`` como el argumento del realm al método " "``add_password``." -#: ../Doc/howto/urllib2.rst:490 +#: ../Doc/howto/urllib2.rst:483 msgid "" "The top-level URL is the first URL that requires authentication. URLs " "\"deeper\" than the URL you pass to .add_password() will also match. ::" @@ -678,7 +675,7 @@ msgstr "" "URLs \"más profundas\" que la URL que pasas a .add_password() también " "coincidirán. ::" -#: ../Doc/howto/urllib2.rst:515 +#: ../Doc/howto/urllib2.rst:508 msgid "" "In the above example we only supplied our ``HTTPBasicAuthHandler`` to " "``build_opener``. By default openers have the handlers for normal situations " @@ -695,7 +692,7 @@ msgstr "" "``HTTPRedirectHandler``, ``FTPHandler``, ``FileHandler``, ``DataHandler``, " "``HTTPErrorProcessor``." -#: ../Doc/howto/urllib2.rst:522 +#: ../Doc/howto/urllib2.rst:515 msgid "" "``top_level_url`` is in fact *either* a full URL (including the 'http:' " "scheme component and the hostname and optionally the port number) e.g. " @@ -714,11 +711,11 @@ msgstr "" "componente \"userinfo\" - por ejemplo ``\"joe:password@example.com\"`` no es " "correcto." -#: ../Doc/howto/urllib2.rst:532 +#: ../Doc/howto/urllib2.rst:525 msgid "Proxies" msgstr "Proxies" -#: ../Doc/howto/urllib2.rst:534 +#: ../Doc/howto/urllib2.rst:527 msgid "" "**urllib** will auto-detect your proxy settings and use those. This is " "through the ``ProxyHandler``, which is part of the normal handler chain when " @@ -735,7 +732,7 @@ msgstr "" "definidos. Esto se hace usando pasos similares a la configuración de un " "gestor `Basic Authentication`_: ::" -#: ../Doc/howto/urllib2.rst:547 +#: ../Doc/howto/urllib2.rst:540 msgid "" "Currently ``urllib.request`` *does not* support fetching of ``https`` " "locations through a proxy. However, this can be enabled by extending urllib." @@ -745,7 +742,7 @@ msgstr "" "``https`` a través de un proxy. Sin embargo, esto puede ser habilitado " "extendiendo urllib.request como se muestra en la receta [#]_." -#: ../Doc/howto/urllib2.rst:553 +#: ../Doc/howto/urllib2.rst:546 msgid "" "``HTTP_PROXY`` will be ignored if a variable ``REQUEST_METHOD`` is set; see " "the documentation on :func:`~urllib.request.getproxies`." @@ -754,11 +751,11 @@ msgstr "" "``REQUEST_METHOD``; ver la documentación en :func:`~urllib.request." "getproxies``." -#: ../Doc/howto/urllib2.rst:558 +#: ../Doc/howto/urllib2.rst:551 msgid "Sockets and Layers" msgstr "Sockets y capas" -#: ../Doc/howto/urllib2.rst:560 +#: ../Doc/howto/urllib2.rst:553 msgid "" "The Python support for fetching resources from the web is layered. urllib " "uses the :mod:`http.client` library, which in turn uses the socket library." @@ -767,7 +764,7 @@ msgstr "" "urllib utiliza la biblioteca :mod:`http.client`, que a su vez utiliza la " "biblioteca de sockets." -#: ../Doc/howto/urllib2.rst:563 +#: ../Doc/howto/urllib2.rst:556 msgid "" "As of Python 2.3 you can specify how long a socket should wait for a " "response before timing out. This can be useful in applications which have to " @@ -784,19 +781,19 @@ msgstr "" "http.client o urllib.request. Sin embargo, puede establecerse el tiempo de " "espera por defecto de forma global para todas los sockets usando ::" -#: ../Doc/howto/urllib2.rst:586 +#: ../Doc/howto/urllib2.rst:579 msgid "Footnotes" msgstr "Notas a pie de página" -#: ../Doc/howto/urllib2.rst:588 +#: ../Doc/howto/urllib2.rst:581 msgid "This document was reviewed and revised by John Lee." msgstr "Este documento fue examinado y revisado por John Lee." -#: ../Doc/howto/urllib2.rst:590 +#: ../Doc/howto/urllib2.rst:583 msgid "Google for example." msgstr "Google por ejemplo." -#: ../Doc/howto/urllib2.rst:591 +#: ../Doc/howto/urllib2.rst:584 msgid "" "Browser sniffing is a very bad practice for website design - building sites " "using web standards is much more sensible. Unfortunately a lot of sites " @@ -807,7 +804,7 @@ msgstr "" "Desafortunadamente muchos sitios siguen enviando versiones diferentes a " "diferentes navegadores." -#: ../Doc/howto/urllib2.rst:594 +#: ../Doc/howto/urllib2.rst:587 msgid "" "The user agent for MSIE 6 is *'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT " "5.1; SV1; .NET CLR 1.1.4322)'*" @@ -815,7 +812,7 @@ msgstr "" "El agente de usuario para MSIE 6 es *'Mozilla/4.0 (compatible; MSIE 6.0; " "Windows NT 5.1; SV1; .NET CLR 1.1.4322)'*" -#: ../Doc/howto/urllib2.rst:596 +#: ../Doc/howto/urllib2.rst:589 msgid "" "For details of more HTTP request headers, see `Quick Reference to HTTP " "Headers`_." @@ -823,7 +820,7 @@ msgstr "" "Para detalles de más encabezados de peticiones HTTP, ver `Quick Reference to " "HTTP Headers`_." -#: ../Doc/howto/urllib2.rst:598 +#: ../Doc/howto/urllib2.rst:591 msgid "" "In my case I have to use a proxy to access the internet at work. If you " "attempt to fetch *localhost* URLs through this proxy it blocks them. IE is " @@ -836,10 +833,21 @@ msgstr "" "los scripts con un servidor localhost, tengo que evitar que urllib use el " "proxy." -#: ../Doc/howto/urllib2.rst:603 +#: ../Doc/howto/urllib2.rst:596 msgid "" "urllib opener for SSL proxy (CONNECT method): `ASPN Cookbook Recipe `_." msgstr "" "objeto de apertura de urllib para proxy SSL (método CONNECT): `ASPN Cookbook " "Recipe `_." + +#~ msgid "" +#~ "There is a French translation of an earlier revision of this HOWTO, " +#~ "available at `urllib2 - Le Manuel manquant `_." +#~ msgstr "" +#~ "Hay una traducción al francés de una revisión anterior de este HOWTO, " +#~ "disponible en `urllib2 - Le Manuel manquant `_." diff --git a/installing/index.po b/installing/index.po index 83d149613a..b3dcfe2d2b 100644 --- a/installing/index.po +++ b/installing/index.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-12-09 10:09+0800\n" "Last-Translator: Rodrigo Tobar \n" -"Language-Team: python-doc-es\n" "Language: es_ES\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/installing/index.rst:7 msgid "Installing Python Modules" @@ -57,16 +57,17 @@ msgstr "" "potencialmente con sus propias soluciones al grupo común." #: ../Doc/installing/index.rst:20 +#, fuzzy msgid "" "This guide covers the installation part of the process. For a guide to " -"creating and sharing your own Python projects, refer to the :ref:" -"`distribution guide `." +"creating and sharing your own Python projects, refer to the `Python " +"packaging user guide`_." msgstr "" "Esta guía cubre la parte de instalación del proceso. Para obtener una guía " "para crear y compartir sus propios proyectos de Python, consulta la :ref:" "`guía de distribución `." -#: ../Doc/installing/index.rst:26 +#: ../Doc/installing/index.rst:28 msgid "" "For corporate and other institutional users, be aware that many " "organisations have their own policies around using and contributing to open " @@ -79,11 +80,11 @@ msgstr "" "cuenta dichas políticas al utilizar las herramientas de distribución e " "instalación proporcionadas con Python." -#: ../Doc/installing/index.rst:33 +#: ../Doc/installing/index.rst:35 msgid "Key terms" msgstr "Palabras clave" -#: ../Doc/installing/index.rst:35 +#: ../Doc/installing/index.rst:37 msgid "" "``pip`` is the preferred installer program. Starting with Python 3.4, it is " "included by default with the Python binary installers." @@ -91,7 +92,7 @@ msgstr "" "``pip`` es el programa de instalación preferido. Desde Python 3.4 viene " "incluido por defecto con los instaladores binarios de Python." -#: ../Doc/installing/index.rst:37 +#: ../Doc/installing/index.rst:39 msgid "" "A *virtual environment* is a semi-isolated Python environment that allows " "packages to be installed for use by a particular application, rather than " @@ -101,7 +102,7 @@ msgstr "" "permite instalar paquetes para que los use una aplicación en particular, en " "lugar de instalarlos en todo el sistema." -#: ../Doc/installing/index.rst:40 +#: ../Doc/installing/index.rst:42 msgid "" "``venv`` is the standard tool for creating virtual environments, and has " "been part of Python since Python 3.3. Starting with Python 3.4, it defaults " @@ -111,7 +112,7 @@ msgstr "" "parte de Python desde Python 3.3. A partir de Python 3.4, instala ``pip`` en " "todos los entornos virtuales que se crean." -#: ../Doc/installing/index.rst:43 +#: ../Doc/installing/index.rst:45 msgid "" "``virtualenv`` is a third party alternative (and predecessor) to ``venv``. " "It allows virtual environments to be used on versions of Python prior to " @@ -123,7 +124,7 @@ msgstr "" "ya que, o no incluyen ``venv`` en absoluto o no pueden instalar " "automáticamente ``pip`` en los entornos recién creados." -#: ../Doc/installing/index.rst:47 +#: ../Doc/installing/index.rst:49 msgid "" "The `Python Package Index `__ is a public repository of " "open source licensed packages made available for use by other Python users." @@ -132,14 +133,14 @@ msgstr "" "público de paquetes bajo licencias de código abierto disponibles para otros " "usuarios de Python." -#: ../Doc/installing/index.rst:50 +#: ../Doc/installing/index.rst:52 +#, fuzzy msgid "" "the `Python Packaging Authority `__ is the group of " "developers and documentation authors responsible for the maintenance and " "evolution of the standard packaging tools and the associated metadata and " "file format standards. They maintain a variety of tools, documentation, and " -"issue trackers on both `GitHub `__ and `Bitbucket " -"`__." +"issue trackers on `GitHub `__." msgstr "" "la `Python Packaging Authority `__ es el grupo de " "desarrolladores y autores de documentación responsables del mantenimiento y " @@ -148,7 +149,7 @@ msgstr "" "documentación y rastreadores de problemas en `GitHub `__ y `Bitbucket `__." -#: ../Doc/installing/index.rst:57 +#: ../Doc/installing/index.rst:58 msgid "" "``distutils`` is the original build and distribution system first added to " "the Python standard library in 1998. While direct use of ``distutils`` is " @@ -165,12 +166,12 @@ msgstr "" "vivo de otras maneras (como el nombre de la lista de correo utilizada para " "coordinar el desarrollo de estándares de empaquetado de Python)." -#: ../Doc/installing/index.rst:65 +#: ../Doc/installing/index.rst:66 msgid "" "The use of ``venv`` is now recommended for creating virtual environments." msgstr "Ahora se recomienda el uso de ``venv`` para crear entornos virtuales." -#: ../Doc/installing/index.rst:70 +#: ../Doc/installing/index.rst:71 msgid "" "`Python Packaging User Guide: Creating and using virtual environments " "`__" @@ -178,11 +179,11 @@ msgstr "" "`Guía de usuario de empaquetado de Python: Crear y usar entornos virtuales " "`__" -#: ../Doc/installing/index.rst:75 +#: ../Doc/installing/index.rst:76 msgid "Basic usage" msgstr "Uso básico" -#: ../Doc/installing/index.rst:77 +#: ../Doc/installing/index.rst:78 msgid "" "The standard packaging tools are all designed to be used from the command " "line." @@ -190,7 +191,7 @@ msgstr "" "Las herramientas estándar de empaquetado están diseñadas para que se usen " "desde la línea de comandos." -#: ../Doc/installing/index.rst:80 +#: ../Doc/installing/index.rst:81 msgid "" "The following command will install the latest version of a module and its " "dependencies from the Python Package Index::" @@ -198,7 +199,7 @@ msgstr "" "El siguiente comando instalará la última versión de un módulo y sus " "dependencias desde el Índice de Paquetes de Python::" -#: ../Doc/installing/index.rst:87 +#: ../Doc/installing/index.rst:88 msgid "" "For POSIX users (including macOS and Linux users), the examples in this " "guide assume the use of a :term:`virtual environment`." @@ -206,7 +207,7 @@ msgstr "" "Para usuarios POSIX (incluyendo los usuarios de macOS y Linux), los ejemplos " "en esta guía asumen que se está usando un :term:`virtual environment`." -#: ../Doc/installing/index.rst:90 +#: ../Doc/installing/index.rst:91 msgid "" "For Windows users, the examples in this guide assume that the option to " "adjust the system PATH environment variable was selected when installing " @@ -216,7 +217,7 @@ msgstr "" "seleccionó la opción de ajustar la variable de entorno PATH del sistema al " "instalar Python." -#: ../Doc/installing/index.rst:94 +#: ../Doc/installing/index.rst:95 msgid "" "It's also possible to specify an exact or minimum version directly on the " "command line. When using comparator operators such as ``>``, ``<`` or some " @@ -229,7 +230,7 @@ msgstr "" "intérprete de comandos, el nombre del paquete y la versión deben ir entre " "comillas dobles::" -#: ../Doc/installing/index.rst:102 +#: ../Doc/installing/index.rst:103 msgid "" "Normally, if a suitable module is already installed, attempting to install " "it again will have no effect. Upgrading existing modules must be requested " @@ -239,7 +240,7 @@ msgstr "" "otra vez no tendrá efecto alguno. Actualizar módulos existentes requiere que " "se solicite explícitamente::" -#: ../Doc/installing/index.rst:108 +#: ../Doc/installing/index.rst:109 msgid "" "More information and resources regarding ``pip`` and its capabilities can be " "found in the `Python Packaging User Guide `__." @@ -248,7 +249,7 @@ msgstr "" "capacidades en la `Guía de usuario de empaquetado de Python `__." -#: ../Doc/installing/index.rst:111 +#: ../Doc/installing/index.rst:112 msgid "" "Creation of virtual environments is done through the :mod:`venv` module. " "Installing packages into an active virtual environment uses the commands " @@ -258,7 +259,7 @@ msgstr "" "`venv`. Instalar paquetes en un entorno virtual activo usa los comandos " "mostrados arriba." -#: ../Doc/installing/index.rst:117 +#: ../Doc/installing/index.rst:118 msgid "" "`Python Packaging User Guide: Installing Python Distribution Packages " "`__" @@ -266,19 +267,19 @@ msgstr "" "`Guía de usuario de empaquetado de Python: Instalando paquetes de " "distribución de Python `__" -#: ../Doc/installing/index.rst:122 +#: ../Doc/installing/index.rst:123 msgid "How do I ...?" msgstr "¿Cómo..." -#: ../Doc/installing/index.rst:124 +#: ../Doc/installing/index.rst:125 msgid "These are quick answers or links for some common tasks." msgstr "Respuestas rápidas o enlaces para algunas tareas comunes." -#: ../Doc/installing/index.rst:127 +#: ../Doc/installing/index.rst:128 msgid "... install ``pip`` in versions of Python prior to Python 3.4?" msgstr "... instalo ``pip`` en versiones de Python anteriores a Python 3.4?" -#: ../Doc/installing/index.rst:129 +#: ../Doc/installing/index.rst:130 msgid "" "Python only started bundling ``pip`` with Python 3.4. For earlier versions, " "``pip`` needs to be \"bootstrapped\" as described in the Python Packaging " @@ -288,7 +289,7 @@ msgstr "" "versiones anteriores, ``pip`` tiene que ser instalado tal y como se describe " "en la Guía de usuario de empaquetado de Python." -#: ../Doc/installing/index.rst:135 +#: ../Doc/installing/index.rst:136 msgid "" "`Python Packaging User Guide: Requirements for Installing Packages `__" @@ -297,11 +298,11 @@ msgstr "" "`__" -#: ../Doc/installing/index.rst:142 +#: ../Doc/installing/index.rst:143 msgid "... install packages just for the current user?" msgstr "... instalo paquetes solamente para el usuario actual?" -#: ../Doc/installing/index.rst:144 +#: ../Doc/installing/index.rst:145 msgid "" "Passing the ``--user`` option to ``python -m pip install`` will install a " "package just for the current user, rather than for all users of the system." @@ -310,11 +311,11 @@ msgstr "" "paquete únicamente para el usuario actual, en lugar de hacerlo para todos " "los usuarios del sistema." -#: ../Doc/installing/index.rst:149 +#: ../Doc/installing/index.rst:150 msgid "... install scientific Python packages?" msgstr "... instalo paquetes científicos de Python?" -#: ../Doc/installing/index.rst:151 +#: ../Doc/installing/index.rst:152 msgid "" "A number of scientific Python packages have complex binary dependencies, and " "aren't currently easy to install using ``pip`` directly. At this point in " @@ -328,7 +329,7 @@ msgstr "" "`por otros medios `__ en lugar de " "intentar instalarlos usando ``pip``." -#: ../Doc/installing/index.rst:159 +#: ../Doc/installing/index.rst:160 msgid "" "`Python Packaging User Guide: Installing Scientific Packages `__" @@ -336,11 +337,11 @@ msgstr "" "`Guía de usuario de empaquetado de Python: Instalando paquetes científicos " "`__" -#: ../Doc/installing/index.rst:164 +#: ../Doc/installing/index.rst:165 msgid "... work with multiple versions of Python installed in parallel?" msgstr "... trabajo con múltiples versiones de Python instaladas en paralelo?" -#: ../Doc/installing/index.rst:166 +#: ../Doc/installing/index.rst:167 msgid "" "On Linux, macOS, and other POSIX systems, use the versioned Python commands " "in combination with the ``-m`` switch to run the appropriate copy of " @@ -350,13 +351,13 @@ msgstr "" "Python en combinación con la opción ``-m`` para ejecutar la copia apropiada " "de ``pip`` ::" -#: ../Doc/installing/index.rst:175 +#: ../Doc/installing/index.rst:176 msgid "Appropriately versioned ``pip`` commands may also be available." msgstr "" "Los comandos ``pip`` adecuadamente versionados también pueden estar " "disponibles." -#: ../Doc/installing/index.rst:177 +#: ../Doc/installing/index.rst:178 msgid "" "On Windows, use the ``py`` Python launcher in combination with the ``-m`` " "switch::" @@ -364,15 +365,15 @@ msgstr "" "En Windows, use el lanzador de Python ``py`` en combinación con el " "interruptor ``-m`` ::" -#: ../Doc/installing/index.rst:194 +#: ../Doc/installing/index.rst:195 msgid "Common installation issues" msgstr "Problemas de instalación comunes" -#: ../Doc/installing/index.rst:197 +#: ../Doc/installing/index.rst:198 msgid "Installing into the system Python on Linux" msgstr "Instalando en el Python del sistema bajo Linux" -#: ../Doc/installing/index.rst:199 +#: ../Doc/installing/index.rst:200 msgid "" "On Linux systems, a Python installation will typically be included as part " "of the distribution. Installing into this Python installation requires root " @@ -386,7 +387,7 @@ msgstr "" "esto puede interferir con en uso del gestor de paquetes del sistema u otros " "componentes." -#: ../Doc/installing/index.rst:205 +#: ../Doc/installing/index.rst:206 msgid "" "On such systems, it is often better to use a virtual environment or a per-" "user installation when installing packages with ``pip``." @@ -394,18 +395,18 @@ msgstr "" "En estos sistemas, es generalmente mejor usar un entorno virtual o una " "instalación por usuario cuando se instalen paquetes con ``pip``." -#: ../Doc/installing/index.rst:210 +#: ../Doc/installing/index.rst:211 msgid "Pip not installed" msgstr "Pip no está instalado" -#: ../Doc/installing/index.rst:212 +#: ../Doc/installing/index.rst:213 msgid "" "It is possible that ``pip`` does not get installed by default. One potential " "fix is::" msgstr "" "Es posible que ``pip`` no se instale por defecto. Una posible solución es::" -#: ../Doc/installing/index.rst:216 +#: ../Doc/installing/index.rst:217 msgid "" "There are also additional resources for `installing pip. `__" -#: ../Doc/installing/index.rst:221 +#: ../Doc/installing/index.rst:222 msgid "Installing binary extensions" msgstr "Instalando extensiones binarias" -#: ../Doc/installing/index.rst:223 +#: ../Doc/installing/index.rst:224 msgid "" "Python has typically relied heavily on source based distribution, with end " "users being expected to compile extension modules from source as part of the " @@ -429,7 +430,7 @@ msgstr "" "el código fuente, y se espera que los usuarios finales compilen módulos de " "extensión desde la fuente como parte del proceso de instalación." -#: ../Doc/installing/index.rst:227 +#: ../Doc/installing/index.rst:228 msgid "" "With the introduction of support for the binary ``wheel`` format, and the " "ability to publish wheels for at least Windows and macOS through the Python " @@ -444,7 +445,7 @@ msgstr "" "regularidad, instalar extensiones precompiladas en lugar de tener que " "compilarlas." -#: ../Doc/installing/index.rst:233 +#: ../Doc/installing/index.rst:234 msgid "" "Some of the solutions for installing `scientific software `__ that are not yet available as pre-built ``wheel`` " @@ -456,7 +457,7 @@ msgstr "" "precompilado pueden ser de ayuda para obtener otras extensiones binarias sin " "tener que compilarlas localmente." -#: ../Doc/installing/index.rst:240 +#: ../Doc/installing/index.rst:241 msgid "" "`Python Packaging User Guide: Binary Extensions `__" diff --git a/library/__main__.po b/library/__main__.po index c5b72d6439..e7818e8075 100644 --- a/library/__main__.po +++ b/library/__main__.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-10-28 21:47+0200\n" "Last-Translator: Juan C. Tello \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/__main__.rst:2 msgid ":mod:`__main__` --- Top-level code environment" @@ -194,8 +194,9 @@ msgstr "" "ejecute en el entorno de máximo nivel." #: ../Doc/library/__main__.rst:127 +#, fuzzy msgid "" -"Putting as few statements as possible in the block below ``if __name___ == " +"Putting as few statements as possible in the block below ``if __name__ == " "'__main__'`` can improve code clarity and correctness. Most often, a " "function named ``main`` encapsulates the program's primary behavior::" msgstr "" @@ -262,10 +263,11 @@ msgstr "" "implícitamente si tu función no tiene una declaración de retorno)." #: ../Doc/library/__main__.rst:180 +#, fuzzy msgid "" "By proactively following this convention ourselves, our module will have the " -"same behavior when run directly (i.e. ``python3 echo.py``) as it will have " -"if we later package it as a console script entry-point in a pip-installable " +"same behavior when run directly (i.e. ``python echo.py``) as it will have if " +"we later package it as a console script entry-point in a pip-installable " "package." msgstr "" "Al seguir pro-activamente esta convención nosotros mismo, nuestro módulo " @@ -349,11 +351,12 @@ msgstr "" "ref:`intra-package-references` en la sección :ref:`tut-modules` del tutorial." #: ../Doc/library/__main__.rst:241 +#, fuzzy msgid "" -"The contents of ``__main__.py`` typically isn't fenced with ``if __name__ == " -"'__main__'`` blocks. Instead, those files are kept short, functions to " -"execute from other modules. Those other modules can then be easily unit-" -"tested and are properly reusable." +"The content of ``__main__.py`` typically isn't fenced with an ``if __name__ " +"== '__main__'`` block. Instead, those files are kept short and import " +"functions to execute from other modules. Those other modules can then be " +"easily unit-tested and are properly reusable." msgstr "" "Los contenidos de ``__main__.py`` no están típicamente acotados dentro de " "bloques ``if __name__=='__main__'``. En cambio, esos archivos se mantienen " @@ -384,10 +387,11 @@ msgstr "" "arriba." #: ../Doc/library/__main__.rst:260 +#, fuzzy msgid "" "See :mod:`venv` for an example of a package with a minimal ``__main__.py`` " "in the standard library. It doesn't contain a ``if __name__ == '__main__'`` " -"block. You can invoke it with ``python3 -m venv [directory]``." +"block. You can invoke it with ``python -m venv [directory]``." msgstr "" "En :mod:`venv` puedes conseguir un ejemplo de un paquete con un ``__main__." "py`` minimalista en la librería estándar. No contiene un bloque ``if " @@ -467,13 +471,14 @@ msgstr "" "¿Por qué funciona esto?" #: ../Doc/library/__main__.rst:339 +#, fuzzy msgid "" -"Python inserts an empty ``__main__`` module in :attr:`sys.modules` at " +"Python inserts an empty ``__main__`` module in :data:`sys.modules` at " "interpreter startup, and populates it by running top-level code. In our " "example this is the ``start`` module which runs line by line and imports " "``namely``. In turn, ``namely`` imports ``__main__`` (which is really " "``start``). That's an import cycle! Fortunately, since the partially " -"populated ``__main__`` module is present in :attr:`sys.modules`, Python " +"populated ``__main__`` module is present in :data:`sys.modules`, Python " "passes that to ``namely``. See :ref:`Special considerations for __main__ " "` in the import system's reference for details on how " "this works." diff --git a/library/_thread.po b/library/_thread.po index 468a389421..aedda96087 100644 --- a/library/_thread.po +++ b/library/_thread.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-04-09 19:43-0600\n" "Last-Translator: \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/_thread.rst:2 msgid ":mod:`_thread` --- Low-level threading API" @@ -100,12 +99,18 @@ msgstr "" "silenciosamente." #: ../Doc/library/_thread.rst:60 +msgid "" +"Raises an :ref:`auditing event ` ``_thread.start_new_thread`` with " +"arguments ``function``, ``args``, ``kwargs``." +msgstr "" + +#: ../Doc/library/_thread.rst:62 msgid ":func:`sys.unraisablehook` is now used to handle unhandled exceptions." msgstr "" "Ahora se utiliza :func:`sys.unraisablehook` para gestionar las excepciones " "no gestionadas." -#: ../Doc/library/_thread.rst:66 +#: ../Doc/library/_thread.rst:68 msgid "" "Simulate the effect of a signal arriving in the main thread. A thread can " "use this function to interrupt the main thread, though there is no guarantee " @@ -115,27 +120,29 @@ msgstr "" "usar esta función para interrumpir el hilo principal, aunque no hay " "garantías de que la interrupción ocurrirá inmediatamente." -#: ../Doc/library/_thread.rst:70 +#: ../Doc/library/_thread.rst:72 +#, fuzzy msgid "" "If given, *signum* is the number of the signal to simulate. If *signum* is " -"not given, :data:`signal.SIGINT` is simulated." +"not given, :const:`signal.SIGINT` is simulated." msgstr "" "Si se da, *signum* es el número de la señal a simular. Si *signum* no se " "da, :data:`signal.SIGINT` es simulado." -#: ../Doc/library/_thread.rst:73 +#: ../Doc/library/_thread.rst:75 +#, fuzzy msgid "" -"If the given signal isn't handled by Python (it was set to :data:`signal." -"SIG_DFL` or :data:`signal.SIG_IGN`), this function does nothing." +"If the given signal isn't handled by Python (it was set to :const:`signal." +"SIG_DFL` or :const:`signal.SIG_IGN`), this function does nothing." msgstr "" "Si la señal dada no es manejada por Python (se estableció en :data:`signal." "SIG_DFL` o :data:`signal.SIG_IGN`), esta función no hace nada." -#: ../Doc/library/_thread.rst:77 +#: ../Doc/library/_thread.rst:79 msgid "The *signum* argument is added to customize the signal number." msgstr "Se agrega el argumento *signum* para personalizar el número de señal." -#: ../Doc/library/_thread.rst:81 +#: ../Doc/library/_thread.rst:83 msgid "" "This does not emit the corresponding signal but schedules a call to the " "associated handler (if it exists). If you want to truly emit the signal, " @@ -145,7 +152,7 @@ msgstr "" "controlador asociado (si existe). Si realmente se quiere emitir la señal, se " "utiliza :func:`signal.raise_signal`." -#: ../Doc/library/_thread.rst:88 +#: ../Doc/library/_thread.rst:90 msgid "" "Raise the :exc:`SystemExit` exception. When not caught, this will cause the " "thread to exit silently." @@ -153,7 +160,7 @@ msgstr "" "Lanza la excepción :exc:`SystemExit`. Cuando no es gestionada, causa que el " "hilo salga silenciosamente." -#: ../Doc/library/_thread.rst:102 +#: ../Doc/library/_thread.rst:104 msgid "" "Return a new lock object. Methods of locks are described below. The lock " "is initially unlocked." @@ -161,7 +168,7 @@ msgstr "" "Retorna un nuevo objeto candado (*lock object*). Los métodos de los candados " "se describen más abajo. El candado está abierto al inicio." -#: ../Doc/library/_thread.rst:108 +#: ../Doc/library/_thread.rst:110 msgid "" "Return the 'thread identifier' of the current thread. This is a nonzero " "integer. Its value has no direct meaning; it is intended as a magic cookie " @@ -175,7 +182,7 @@ msgstr "" "indexar un diccionario con datos específicos del hilo. Los identificadores " "de hilo pueden reciclarse cuando un hilo sale y otro se crea." -#: ../Doc/library/_thread.rst:116 +#: ../Doc/library/_thread.rst:118 msgid "" "Return the native integral Thread ID of the current thread assigned by the " "kernel. This is a non-negative integer. Its value may be used to uniquely " @@ -188,15 +195,16 @@ msgstr "" "hilo termine, luego de lo cual el valor puede ser reciclado por el Sistema " "Operativo)." -#: ../Doc/library/_thread.rst:122 +#: ../Doc/library/_thread.rst:123 +#, fuzzy msgid "" ":ref:`Availability `: Windows, FreeBSD, Linux, macOS, OpenBSD, " -"NetBSD, AIX." +"NetBSD, AIX, DragonFlyBSD." msgstr "" ":ref:`Disponibilidad `: Windows, FreeBSD, Linux, macOS, " "OpenBSD, NetBSD, AIX." -#: ../Doc/library/_thread.rst:128 +#: ../Doc/library/_thread.rst:130 msgid "" "Return the thread stack size used when creating new threads. The optional " "*size* argument specifies the stack size to be used for subsequently created " @@ -232,30 +240,32 @@ msgstr "" "el tamaño de pila es la estrategia sugerida si no se cuenta con información " "más específica)." +#: ../Doc/library/_thread.rst:145 msgid ":ref:`Availability `: Windows, pthreads." msgstr "" ":ref:`Disponibilidad `: Windows, hilos POSIX (también " "llamados pthreads)." -#: ../Doc/library/_thread.rst:145 +#: ../Doc/library/_thread.rst:147 msgid "Unix platforms with POSIX threads support." msgstr "" -#: ../Doc/library/_thread.rst:150 +#: ../Doc/library/_thread.rst:152 +#, fuzzy msgid "" -"The maximum value allowed for the *timeout* parameter of :meth:`Lock." -"acquire`. Specifying a timeout greater than this value will raise an :exc:" -"`OverflowError`." +"The maximum value allowed for the *timeout* parameter of :meth:`Lock.acquire " +"`. Specifying a timeout greater than this value will " +"raise an :exc:`OverflowError`." msgstr "" "El máximo valor permitido para el parámetro *timeout* de :meth:`Lock." "acquire`. Especificar un tiempo de espera (*timeout*) mayor que este valor " "lanzará una excepción :exc:`OverflowError`." -#: ../Doc/library/_thread.rst:157 +#: ../Doc/library/_thread.rst:159 msgid "Lock objects have the following methods:" msgstr "Los objetos candado (*lock objects*) tienen los siguientes métodos:" -#: ../Doc/library/_thread.rst:162 +#: ../Doc/library/_thread.rst:164 msgid "" "Without any optional argument, this method acquires the lock " "unconditionally, if necessary waiting until it is released by another thread " @@ -266,7 +276,7 @@ msgstr "" "incondicionalmente, si es necesario esperando que éste sea liberado por otro " "hilo (solamente un hilo por vez puede adquirir un candado; para eso existen)." -#: ../Doc/library/_thread.rst:166 +#: ../Doc/library/_thread.rst:168 msgid "" "If the *blocking* argument is present, the action depends on its value: if " "it is False, the lock is only acquired if it can be acquired immediately " @@ -278,7 +288,7 @@ msgstr "" "sin espera, en cambio si es True, el candado es adquirido incondicionalmente " "como arriba." -#: ../Doc/library/_thread.rst:171 +#: ../Doc/library/_thread.rst:173 msgid "" "If the floating-point *timeout* argument is present and positive, it " "specifies the maximum wait time in seconds before returning. A negative " @@ -290,7 +300,7 @@ msgstr "" "argumento *timeout* negativo especifica una espera ilimitada. No se puede " "especificar un *timeout* si *blocking* es False." -#: ../Doc/library/_thread.rst:176 +#: ../Doc/library/_thread.rst:178 msgid "" "The return value is ``True`` if the lock is acquired successfully, ``False`` " "if not." @@ -298,16 +308,16 @@ msgstr "" "El valor de retorno es ``True`` si el candado (*lock*) se adquirió " "exitosamente, ``False`` de lo contrario." -#: ../Doc/library/_thread.rst:179 +#: ../Doc/library/_thread.rst:181 msgid "The *timeout* parameter is new." msgstr "El parámetro *timeout* es nuevo." -#: ../Doc/library/_thread.rst:182 +#: ../Doc/library/_thread.rst:184 msgid "Lock acquires can now be interrupted by signals on POSIX." msgstr "" "La adquisición de candados ahora puede ser interrumpida por señales en POSIX." -#: ../Doc/library/_thread.rst:188 +#: ../Doc/library/_thread.rst:190 msgid "" "Releases the lock. The lock must have been acquired earlier, but not " "necessarily by the same thread." @@ -315,7 +325,7 @@ msgstr "" "Libera el candado. El candado debe haber sido adquirido previamente, pero no " "necesariamente por el mismo hilo." -#: ../Doc/library/_thread.rst:194 +#: ../Doc/library/_thread.rst:196 msgid "" "Return the status of the lock: ``True`` if it has been acquired by some " "thread, ``False`` if not." @@ -323,7 +333,7 @@ msgstr "" "Retorna el estado del candado: ``True`` si ha sido adquirido por algún hilo, " "``False`` de lo contrario." -#: ../Doc/library/_thread.rst:197 +#: ../Doc/library/_thread.rst:199 msgid "" "In addition to these methods, lock objects can also be used via the :keyword:" "`with` statement, e.g.::" @@ -331,11 +341,11 @@ msgstr "" "Además de estos métodos, los objetos candado pueden ser utilizados mediante " "la declaración :keyword:`with`, por ejemplo::" -#: ../Doc/library/_thread.rst:207 +#: ../Doc/library/_thread.rst:209 msgid "**Caveats:**" msgstr "**Salvedades:**" -#: ../Doc/library/_thread.rst:211 +#: ../Doc/library/_thread.rst:213 msgid "" "Threads interact strangely with interrupts: the :exc:`KeyboardInterrupt` " "exception will be received by an arbitrary thread. (When the :mod:`signal` " @@ -346,7 +356,7 @@ msgstr "" "módulo :mod:`signal` está disponible, la interrupción siempre se dirige al " "hilo principal." -#: ../Doc/library/_thread.rst:215 +#: ../Doc/library/_thread.rst:217 msgid "" "Calling :func:`sys.exit` or raising the :exc:`SystemExit` exception is " "equivalent to calling :func:`_thread.exit`." @@ -354,17 +364,18 @@ msgstr "" "Invocar a :func:`sys.exit` o lanzar la excepción :exc:`SystemExit` equivale " "a invocar :func:`_thread.exit`." -#: ../Doc/library/_thread.rst:218 +#: ../Doc/library/_thread.rst:220 +#, fuzzy msgid "" -"It is not possible to interrupt the :meth:`acquire` method on a lock --- " -"the :exc:`KeyboardInterrupt` exception will happen after the lock has been " -"acquired." +"It is not possible to interrupt the :meth:`~threading.Lock.acquire` method " +"on a lock --- the :exc:`KeyboardInterrupt` exception will happen after the " +"lock has been acquired." msgstr "" "No es posible interrumpir el método :meth:`acquire` en un candado. La " "excepción :exc:`KeyboardInterrupt` tendrá lugar después de que el candado " "haya sido adquirido." -#: ../Doc/library/_thread.rst:221 +#: ../Doc/library/_thread.rst:224 msgid "" "When the main thread exits, it is system defined whether the other threads " "survive. On most systems, they are killed without executing :keyword:" @@ -375,7 +386,7 @@ msgstr "" "cierran inmediatamente (*killed*), sin ejecutar las cláusulas :keyword:" "`try` ... :keyword:`finally` o los destructores del objeto." -#: ../Doc/library/_thread.rst:226 +#: ../Doc/library/_thread.rst:229 msgid "" "When the main thread exits, it does not do any of its usual cleanup (except " "that :keyword:`try` ... :keyword:`finally` clauses are honored), and the " @@ -384,3 +395,39 @@ msgstr "" "Cuando el hilo principal sale, no hace ninguna de las tareas de limpieza " "habituales (excepto que se haga honor a las cláusulas :keyword:`try` ... :" "keyword:`finally`), y los archivos de E/S estándar no son liberados." + +#: ../Doc/library/_thread.rst:7 +msgid "light-weight processes" +msgstr "" + +#: ../Doc/library/_thread.rst:7 +msgid "processes, light-weight" +msgstr "" + +#: ../Doc/library/_thread.rst:7 +msgid "binary semaphores" +msgstr "" + +#: ../Doc/library/_thread.rst:7 +msgid "semaphores, binary" +msgstr "" + +#: ../Doc/library/_thread.rst:22 +msgid "pthreads" +msgstr "" + +#: ../Doc/library/_thread.rst:22 +msgid "threads" +msgstr "" + +#: ../Doc/library/_thread.rst:22 +msgid "POSIX" +msgstr "" + +#: ../Doc/library/_thread.rst:211 +msgid "module" +msgstr "" + +#: ../Doc/library/_thread.rst:211 +msgid "signal" +msgstr "" diff --git a/library/abc.po b/library/abc.po index 3111b682b9..7650699966 100644 --- a/library/abc.po +++ b/library/abc.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-16 21:42+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-07 10:37+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" -"Generated-By: Babel 2.9.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/abc.rst:2 msgid ":mod:`abc` --- Abstract Base Classes" @@ -43,12 +43,13 @@ msgstr "" "de tipos para números basados en CBAs.)" #: ../Doc/library/abc.rst:20 +#, fuzzy msgid "" "The :mod:`collections` module has some concrete classes that derive from " "ABCs; these can, of course, be further derived. In addition, the :mod:" "`collections.abc` submodule has some ABCs that can be used to test whether a " -"class or instance provides a particular interface, for example, if it is " -"hashable or if it is a mapping." +"class or instance provides a particular interface, for example, if it is :" +"term:`hashable` or if it is a mapping." msgstr "" "El módulo :mod:`collections` tiene algunas clases concretas que se derivan " "de ABC; estos, por supuesto, pueden derivarse más. Además, el submódulo :mod:" diff --git a/library/aifc.po b/library/aifc.po index 3afed2a39c..8225feec36 100644 --- a/library/aifc.po +++ b/library/aifc.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-11 15:32-0300\n" "Last-Translator: Sofía Denner \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/aifc.rst:2 msgid ":mod:`aifc` --- Read and write AIFF and AIFC files" @@ -360,3 +359,27 @@ msgstr "" "Cierra el archivo AIFF. El encabezado del archivo se actualiza para reflejar " "el tamaño real de los datos de audio. Después de invocar a este método, el " "objeto no puede usarse más." + +#: ../Doc/library/aifc.rst:10 +msgid "Audio Interchange File Format" +msgstr "" + +#: ../Doc/library/aifc.rst:10 +msgid "AIFF" +msgstr "" + +#: ../Doc/library/aifc.rst:10 +msgid "AIFF-C" +msgstr "" + +#: ../Doc/library/aifc.rst:190 +msgid "u-LAW" +msgstr "" + +#: ../Doc/library/aifc.rst:190 +msgid "A-LAW" +msgstr "" + +#: ../Doc/library/aifc.rst:190 +msgid "G.722" +msgstr "" diff --git a/library/argparse.po b/library/argparse.po index 05c0e02df7..6fdaefc907 100644 --- a/library/argparse.po +++ b/library/argparse.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-02 10:58-0600\n" "Last-Translator: Diego Alberto Barriga Martínez \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.1.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/argparse.rst:2 msgid "" @@ -68,10 +67,12 @@ msgid "Core Functionality" msgstr "Funcionalidad principal" #: ../Doc/library/argparse.rst:32 +#, fuzzy msgid "" "The :mod:`argparse` module's support for command-line interfaces is built " "around an instance of :class:`argparse.ArgumentParser`. It is a container " -"for argument specifications and has options that apply the parser as whole::" +"for argument specifications and has options that apply to the parser as " +"whole::" msgstr "" "El soporte del módulo :mod:`argparse` para las interfaces de líneas de " "comandos es construido alrededor de una instancia de :class:`argparse." @@ -161,7 +162,8 @@ msgid "Default value used when an argument is not provided" msgstr "Valor por defecto usado cuando un argumento no es proporcionado" #: ../Doc/library/argparse.rst:66 -msgid "Defaults to *None*" +#, fuzzy +msgid "Defaults to ``None``" msgstr "Por defecto a *None*" #: ../Doc/library/argparse.rst:67 @@ -201,7 +203,8 @@ msgid "Number of times the argument can be used" msgstr "Número de veces que puede ser usado un argumento" #: ../Doc/library/argparse.rst:70 -msgid ":class:`int`, ``'?'``, ``'*'``, ``'+'``, or ``argparse.REMAINDER``" +#, fuzzy +msgid ":class:`int`, ``'?'``, ``'*'``, or ``'+'``" msgstr ":class:`int`, ``'?'``, ``'*'``, ``'+'``, o ``argparse.REMAINDER``" #: ../Doc/library/argparse.rst:71 @@ -217,8 +220,8 @@ msgid "``True`` or ``False``" msgstr "``True`` o ``False``" #: ../Doc/library/argparse.rst:72 -msgid "type_" -msgstr "type_" +msgid ":ref:`type `" +msgstr "" #: ../Doc/library/argparse.rst:72 msgid "Automatically convert an argument to the given type" @@ -381,17 +384,20 @@ msgstr "" "defecto: generado a partir de los argumentos añadidos al analizador)" #: ../Doc/library/argparse.rst:204 -msgid "description_ - Text to display before the argument help (default: none)" +#, fuzzy +msgid "" +"description_ - Text to display before the argument help (by default, no text)" msgstr "" "description_ - Texto a mostrar antes del argumento ayuda (por defecto: " "ninguno)" -#: ../Doc/library/argparse.rst:206 -msgid "epilog_ - Text to display after the argument help (default: none)" +#: ../Doc/library/argparse.rst:207 +#, fuzzy +msgid "epilog_ - Text to display after the argument help (by default, no text)" msgstr "" "epilog_ - Texto a mostrar después del argumento ayuda (por defecto: ninguno)" -#: ../Doc/library/argparse.rst:208 +#: ../Doc/library/argparse.rst:209 msgid "" "parents_ - A list of :class:`ArgumentParser` objects whose arguments should " "also be included" @@ -399,11 +405,11 @@ msgstr "" "parents_ - Una lista de objetos :class:`ArgumentParser` cuyos argumentos " "también deberían ser incluidos" -#: ../Doc/library/argparse.rst:211 +#: ../Doc/library/argparse.rst:212 msgid "formatter_class_ - A class for customizing the help output" msgstr "formatter_class_ - Una clase para personalizar la salida de la ayuda" -#: ../Doc/library/argparse.rst:213 +#: ../Doc/library/argparse.rst:214 msgid "" "prefix_chars_ - The set of characters that prefix optional arguments " "(default: '-')" @@ -411,7 +417,7 @@ msgstr "" "prefix_chars_ - El conjunto de caracteres que preceden a los argumentos " "opcionales (por defecto: ‘-‘)" -#: ../Doc/library/argparse.rst:216 +#: ../Doc/library/argparse.rst:217 msgid "" "fromfile_prefix_chars_ - The set of characters that prefix files from which " "additional arguments should be read (default: ``None``)" @@ -420,7 +426,7 @@ msgstr "" "archivos de los cuales se deberían leer los argumentos adicionales (por " "defecto: ``None``)" -#: ../Doc/library/argparse.rst:219 +#: ../Doc/library/argparse.rst:220 msgid "" "argument_default_ - The global default value for arguments (default: " "``None``)" @@ -428,7 +434,7 @@ msgstr "" "argument_default_ - El valor global por defecto de los argumentos (por " "defecto: ``None``)" -#: ../Doc/library/argparse.rst:222 +#: ../Doc/library/argparse.rst:223 msgid "" "conflict_handler_ - The strategy for resolving conflicting optionals " "(usually unnecessary)" @@ -436,14 +442,14 @@ msgstr "" "conflict_handler_ - La estrategia para resolver los opcionales conflictivos " "(normalmente es innecesaria)" -#: ../Doc/library/argparse.rst:225 +#: ../Doc/library/argparse.rst:226 msgid "" "add_help_ - Add a ``-h/--help`` option to the parser (default: ``True``)" msgstr "" "add_help_ - Añade una opción ``-h/--help`` al analizador (por defecto: " "``True``)" -#: ../Doc/library/argparse.rst:227 +#: ../Doc/library/argparse.rst:228 msgid "" "allow_abbrev_ - Allows long options to be abbreviated if the abbreviation is " "unambiguous. (default: ``True``)" @@ -451,7 +457,7 @@ msgstr "" "allow_abbrev_ - Permite abreviar las opciones largas si la abreviatura es " "inequívoca. (por defecto: ``True``)" -#: ../Doc/library/argparse.rst:230 +#: ../Doc/library/argparse.rst:231 msgid "" "exit_on_error_ - Determines whether or not ArgumentParser exits with error " "info when an error occurs. (default: ``True``)" @@ -459,11 +465,11 @@ msgstr "" "exit_on_error_ - Determina si ArgumentParser sale o no con información de " "error cuando se produce un error. (predeterminado: ``True``)" -#: ../Doc/library/argparse.rst:233 +#: ../Doc/library/argparse.rst:234 msgid "*allow_abbrev* parameter was added." msgstr "se añadió el parámetro *allow_abbrev*." -#: ../Doc/library/argparse.rst:236 +#: ../Doc/library/argparse.rst:237 msgid "" "In previous versions, *allow_abbrev* also disabled grouping of short flags " "such as ``-vv`` to mean ``-v -v``." @@ -471,20 +477,20 @@ msgstr "" "En versiones anteriores, *allow_abbrev* también deshabilitaba la agrupación " "de banderas (*flags*) cortas como ``-vv`` para que sea ``-v -v``." -#: ../Doc/library/argparse.rst:240 +#: ../Doc/library/argparse.rst:241 msgid "*exit_on_error* parameter was added." msgstr "Se agregó el parámetro *exit_on_error*." -#: ../Doc/library/argparse.rst:243 ../Doc/library/argparse.rst:769 +#: ../Doc/library/argparse.rst:244 ../Doc/library/argparse.rst:780 msgid "The following sections describe how each of these are used." msgstr "" "En las siguientes secciones se describe cómo se utiliza cada una de ellas." -#: ../Doc/library/argparse.rst:249 +#: ../Doc/library/argparse.rst:250 msgid "prog" msgstr "*prog*" -#: ../Doc/library/argparse.rst:251 +#: ../Doc/library/argparse.rst:252 msgid "" "By default, :class:`ArgumentParser` objects use ``sys.argv[0]`` to determine " "how to display the name of the program in help messages. This default is " @@ -499,7 +505,7 @@ msgstr "" "la línea de comandos. Por ejemplo, considera un archivo llamado ``myprogram." "py`` con el siguiente código::" -#: ../Doc/library/argparse.rst:262 +#: ../Doc/library/argparse.rst:263 msgid "" "The help for this program will display ``myprogram.py`` as the program name " "(regardless of where the program was invoked from):" @@ -507,7 +513,7 @@ msgstr "" "La ayuda para este programa mostrará ``myprogram.py`` como el nombre del " "programa (sin importar desde dónde se haya invocado el programa):" -#: ../Doc/library/argparse.rst:281 +#: ../Doc/library/argparse.rst:282 msgid "" "To change this default behavior, another value can be supplied using the " "``prog=`` argument to :class:`ArgumentParser`::" @@ -515,7 +521,7 @@ msgstr "" "Para cambiar este comportamiento por defecto, se puede proporcionar otro " "valor usando el argumento ``prog=`` para :class:`ArgumentParser`::" -#: ../Doc/library/argparse.rst:291 +#: ../Doc/library/argparse.rst:292 #, python-format msgid "" "Note that the program name, whether determined from ``sys.argv[0]`` or from " @@ -526,11 +532,11 @@ msgstr "" "``sys.argv[0]`` o del argumento ``prog=`` , está disponible para los " "mensajes de ayuda usando el especificador de formato ``%(prog)s``." -#: ../Doc/library/argparse.rst:308 +#: ../Doc/library/argparse.rst:309 msgid "usage" msgstr "uso" -#: ../Doc/library/argparse.rst:310 +#: ../Doc/library/argparse.rst:311 msgid "" "By default, :class:`ArgumentParser` calculates the usage message from the " "arguments it contains::" @@ -538,14 +544,14 @@ msgstr "" "Por defecto, :class:`ArgumentParser` determina el mensaje de uso a partir de " "los argumentos que contiene::" -#: ../Doc/library/argparse.rst:326 +#: ../Doc/library/argparse.rst:327 msgid "" "The default message can be overridden with the ``usage=`` keyword argument::" msgstr "" "El mensaje por defecto puede ser sustituido con el argumento de palabra " "clave ``usage=``::" -#: ../Doc/library/argparse.rst:341 +#: ../Doc/library/argparse.rst:342 #, python-format msgid "" "The ``%(prog)s`` format specifier is available to fill in the program name " @@ -554,11 +560,11 @@ msgstr "" "El especificador de formato ``%(prog)s`` está preparado para introducir el " "nombre del programa en los mensajes de ayuda." -#: ../Doc/library/argparse.rst:348 +#: ../Doc/library/argparse.rst:349 msgid "description" msgstr "*description*" -#: ../Doc/library/argparse.rst:350 +#: ../Doc/library/argparse.rst:351 msgid "" "Most calls to the :class:`ArgumentParser` constructor will use the " "``description=`` keyword argument. This argument gives a brief description " @@ -573,7 +579,7 @@ msgstr "" "(*usage*) de la línea de comandos y los mensajes de ayuda para los distintos " "argumentos::" -#: ../Doc/library/argparse.rst:365 +#: ../Doc/library/argparse.rst:366 msgid "" "By default, the description will be line-wrapped so that it fits within the " "given space. To change this behavior, see the formatter_class_ argument." @@ -582,11 +588,11 @@ msgstr "" "espacio dado. Para cambiar este comportamiento, revisa el argumento " "formatter_class_." -#: ../Doc/library/argparse.rst:370 +#: ../Doc/library/argparse.rst:371 msgid "epilog" msgstr "*epilog*" -#: ../Doc/library/argparse.rst:372 +#: ../Doc/library/argparse.rst:373 msgid "" "Some programs like to display additional description of the program after " "the description of the arguments. Such text can be specified using the " @@ -596,7 +602,7 @@ msgstr "" "después de la descripción de los argumentos. Dicho texto puede ser " "especificado usando el argumento ``epilog=`` para :class:`ArgumentParser`::" -#: ../Doc/library/argparse.rst:389 +#: ../Doc/library/argparse.rst:390 msgid "" "As with the description_ argument, the ``epilog=`` text is by default line-" "wrapped, but this behavior can be adjusted with the formatter_class_ " @@ -606,11 +612,11 @@ msgstr "" "defecto ajustado a una línea, pero este comportamiento puede ser modificado " "con el argumento formatter_class_ para :class:`ArgumentParser`." -#: ../Doc/library/argparse.rst:395 +#: ../Doc/library/argparse.rst:396 msgid "parents" msgstr "*parents*" -#: ../Doc/library/argparse.rst:397 +#: ../Doc/library/argparse.rst:398 msgid "" "Sometimes, several parsers share a common set of arguments. Rather than " "repeating the definitions of these arguments, a single parser with all the " @@ -628,7 +634,7 @@ msgstr "" "de posición y de opción de éstos, y añade estas acciones al objeto :class:" "`ArgumentParser` que se está construyendo::" -#: ../Doc/library/argparse.rst:417 +#: ../Doc/library/argparse.rst:418 msgid "" "Note that most parent parsers will specify ``add_help=False``. Otherwise, " "the :class:`ArgumentParser` will see two ``-h/--help`` options (one in the " @@ -639,7 +645,7 @@ msgstr "" "opciones ``-h/—help`` (una para el padre y otra para el hijo) y generará un " "error." -#: ../Doc/library/argparse.rst:422 +#: ../Doc/library/argparse.rst:423 msgid "" "You must fully initialize the parsers before passing them via ``parents=``. " "If you change the parent parsers after the child parser, those changes will " @@ -649,11 +655,11 @@ msgstr "" "de ``parents=``. Si cambias los analizadores padre después del analizador " "hijo, esos cambios no se reflejarán en el hijo." -#: ../Doc/library/argparse.rst:430 +#: ../Doc/library/argparse.rst:431 msgid "formatter_class" msgstr "*formatter_class*" -#: ../Doc/library/argparse.rst:432 +#: ../Doc/library/argparse.rst:433 msgid "" ":class:`ArgumentParser` objects allow the help formatting to be customized " "by specifying an alternate formatting class. Currently, there are four such " @@ -663,7 +669,7 @@ msgstr "" "ayuda especificando una clase de formato alternativa. Actualmente, hay " "cuatro clases de este tipo:" -#: ../Doc/library/argparse.rst:441 +#: ../Doc/library/argparse.rst:442 msgid "" ":class:`RawDescriptionHelpFormatter` and :class:`RawTextHelpFormatter` give " "more control over how textual descriptions are displayed. By default, :class:" @@ -675,7 +681,7 @@ msgstr "" "objetos :class:`ArgumentParser` ajustan a la línea los textos de " "description_ y epilog_ en los mensajes de ayuda de la línea de comandos::" -#: ../Doc/library/argparse.rst:466 +#: ../Doc/library/argparse.rst:467 msgid "" "Passing :class:`RawDescriptionHelpFormatter` as ``formatter_class=`` " "indicates that description_ and epilog_ are already correctly formatted and " @@ -685,7 +691,7 @@ msgstr "" "que description_ y epilog_ ya tienen el formato correcto y no deben ser " "ajustados a la línea::" -#: ../Doc/library/argparse.rst:492 +#: ../Doc/library/argparse.rst:493 msgid "" ":class:`RawTextHelpFormatter` maintains whitespace for all sorts of help " "text, including argument descriptions. However, multiple new lines are " @@ -697,7 +703,7 @@ msgstr "" "líneas nuevas son reemplazadas por una sola. Si deseas conservar varias " "líneas en blanco, añade espacios entre las nuevas líneas." -#: ../Doc/library/argparse.rst:497 +#: ../Doc/library/argparse.rst:498 msgid "" ":class:`ArgumentDefaultsHelpFormatter` automatically adds information about " "default values to each of the argument help messages::" @@ -706,7 +712,7 @@ msgstr "" "sobre los valores por defecto a cada uno de los mensajes de ayuda de los " "argumentos::" -#: ../Doc/library/argparse.rst:515 +#: ../Doc/library/argparse.rst:516 msgid "" ":class:`MetavarTypeHelpFormatter` uses the name of the type_ argument for " "each argument as the display name for its values (rather than using the " @@ -716,11 +722,11 @@ msgstr "" "cada argumento como el nombre a mostrar para sus valores (en lugar de " "utilizar dest_ como lo hace el formato habitual)::" -#: ../Doc/library/argparse.rst:536 +#: ../Doc/library/argparse.rst:537 msgid "prefix_chars" msgstr "*prefix_chars*" -#: ../Doc/library/argparse.rst:538 +#: ../Doc/library/argparse.rst:539 msgid "" "Most command-line options will use ``-`` as the prefix, e.g. ``-f/--foo``. " "Parsers that need to support different or additional prefix characters, e.g. " @@ -733,7 +739,7 @@ msgstr "" "``+f`` o ``/foo``, pueden especificarlos usando el argumento " "``prefix_chars=`` para el constructor *ArgumentParser*::" -#: ../Doc/library/argparse.rst:550 +#: ../Doc/library/argparse.rst:551 msgid "" "The ``prefix_chars=`` argument defaults to ``'-'``. Supplying a set of " "characters that does not include ``-`` will cause ``-f/--foo`` options to be " @@ -743,11 +749,11 @@ msgstr "" "Proporcionar un conjunto de caracteres que no incluya ``-`` causará que las " "opciones ``-f/--foo`` no sean inhabilitadas." -#: ../Doc/library/argparse.rst:556 +#: ../Doc/library/argparse.rst:557 msgid "fromfile_prefix_chars" msgstr "*fromfile_prefix_chars*" -#: ../Doc/library/argparse.rst:558 +#: ../Doc/library/argparse.rst:559 msgid "" "Sometimes, when dealing with a particularly long argument list, it may make " "sense to keep the list of arguments in a file rather than typing it out at " @@ -764,7 +770,7 @@ msgstr "" "especificados se tratarán como archivos, y serán reemplazados por los " "argumentos que contienen. Por ejemplo::" -#: ../Doc/library/argparse.rst:572 +#: ../Doc/library/argparse.rst:574 msgid "" "Arguments read from a file must by default be one per line (but see also :" "meth:`~ArgumentParser.convert_arg_line_to_args`) and are treated as if they " @@ -780,7 +786,13 @@ msgstr "" "la expresión ``[‘-f’, ‘foo’, ‘@args.txt’]`` se considera equivalente a la " "expresión ``[‘-f’, ‘foo’, ‘-f’, ‘bar’]``." -#: ../Doc/library/argparse.rst:578 +#: ../Doc/library/argparse.rst:580 +msgid "" +":class:`ArgumentParser` uses :term:`filesystem encoding and error handler` " +"to read the file containing arguments." +msgstr "" + +#: ../Doc/library/argparse.rst:583 msgid "" "The ``fromfile_prefix_chars=`` argument defaults to ``None``, meaning that " "arguments will never be treated as file references." @@ -789,11 +801,20 @@ msgstr "" "significa que los argumentos nunca serán tratados como referencias de " "archivos." -#: ../Doc/library/argparse.rst:583 +#: ../Doc/library/argparse.rst:586 +msgid "" +":class:`ArgumentParser` changed encoding and errors to read arguments files " +"from default (e.g. :func:`locale.getpreferredencoding(False) ` and ``\"strict\"``) to :term:`filesystem encoding and " +"error handler`. Arguments file should be encoded in UTF-8 instead of ANSI " +"Codepage on Windows." +msgstr "" + +#: ../Doc/library/argparse.rst:594 msgid "argument_default" msgstr "*argument_default*" -#: ../Doc/library/argparse.rst:585 +#: ../Doc/library/argparse.rst:596 msgid "" "Generally, argument defaults are specified either by passing a default to :" "meth:`~ArgumentParser.add_argument` or by calling the :meth:`~ArgumentParser." @@ -815,11 +836,11 @@ msgstr "" "`~ArgumentParser.parse_args` , proporcionamos el argumento " "``argument_default=SUPPRESS``::" -#: ../Doc/library/argparse.rst:605 +#: ../Doc/library/argparse.rst:616 msgid "allow_abbrev" msgstr "*allow_abbrev*" -#: ../Doc/library/argparse.rst:607 +#: ../Doc/library/argparse.rst:618 msgid "" "Normally, when you pass an argument list to the :meth:`~ArgumentParser." "parse_args` method of an :class:`ArgumentParser`, it :ref:`recognizes " @@ -829,17 +850,17 @@ msgstr "" "`~ArgumentParser.parse_args` de un :class:`ArgumentParser`, :ref:`reconoce " "las abreviaturas ` de las opciones largas." -#: ../Doc/library/argparse.rst:611 +#: ../Doc/library/argparse.rst:622 msgid "This feature can be disabled by setting ``allow_abbrev`` to ``False``::" msgstr "" "Esta característica puede ser desactivada poniendo ``allow_abbrev`` a " "``False``::" -#: ../Doc/library/argparse.rst:624 +#: ../Doc/library/argparse.rst:635 msgid "conflict_handler" msgstr "*conflict_handler*" -#: ../Doc/library/argparse.rst:626 +#: ../Doc/library/argparse.rst:637 msgid "" ":class:`ArgumentParser` objects do not allow two actions with the same " "option string. By default, :class:`ArgumentParser` objects raise an " @@ -851,7 +872,7 @@ msgstr "" "`ArgumentParser` lanzan una excepción si se intenta crear un argumento con " "una cadena de caracteres de opción que ya está en uso::" -#: ../Doc/library/argparse.rst:638 +#: ../Doc/library/argparse.rst:649 msgid "" "Sometimes (e.g. when using parents_) it may be useful to simply override any " "older arguments with the same option string. To get this behavior, the " @@ -863,7 +884,7 @@ msgstr "" "opción. Para lograr este comportamiento, se puede suministrar el valor " "``'resolve'`` al argumento ``conflict_handler=`` de :class:`ArgumentParser`::" -#: ../Doc/library/argparse.rst:654 +#: ../Doc/library/argparse.rst:665 msgid "" "Note that :class:`ArgumentParser` objects only remove an action if all of " "its option strings are overridden. So, in the example above, the old ``-f/--" @@ -876,11 +897,11 @@ msgstr "" "acción ``-f``, porque sólo la cadena de caracteres de opción ``--foo`` fue " "anulada." -#: ../Doc/library/argparse.rst:661 +#: ../Doc/library/argparse.rst:672 msgid "add_help" msgstr "*add_help*" -#: ../Doc/library/argparse.rst:663 +#: ../Doc/library/argparse.rst:674 msgid "" "By default, ArgumentParser objects add an option which simply displays the " "parser's help message. For example, consider a file named ``myprogram.py`` " @@ -890,7 +911,7 @@ msgstr "" "muestra el mensaje de ayuda del analizador. Por ejemplo, considera un " "archivo llamado ``myprogram.py`` que contiene el siguiente código::" -#: ../Doc/library/argparse.rst:672 +#: ../Doc/library/argparse.rst:683 msgid "" "If ``-h`` or ``--help`` is supplied at the command line, the ArgumentParser " "help will be printed:" @@ -898,7 +919,7 @@ msgstr "" "Si ``-h`` o ``--help`` se indica en la línea de comandos, se imprimirá la " "ayuda de *ArgumentParser*:" -#: ../Doc/library/argparse.rst:684 +#: ../Doc/library/argparse.rst:695 msgid "" "Occasionally, it may be useful to disable the addition of this help option. " "This can be achieved by passing ``False`` as the ``add_help=`` argument to :" @@ -908,7 +929,7 @@ msgstr "" "ayuda. Esto se puede lograr pasando ``False`` como argumento de " "``add_help=`` a :class:`ArgumentParser`::" -#: ../Doc/library/argparse.rst:696 +#: ../Doc/library/argparse.rst:707 msgid "" "The help option is typically ``-h/--help``. The exception to this is if the " "``prefix_chars=`` is specified and does not include ``-``, in which case ``-" @@ -920,11 +941,11 @@ msgstr "" "``--help`` no son opciones válidas. En este caso, el primer carácter en " "``prefix_chars`` se utiliza para preceder a las opciones de ayuda::" -#: ../Doc/library/argparse.rst:711 +#: ../Doc/library/argparse.rst:722 msgid "exit_on_error" msgstr "exit_on_error" -#: ../Doc/library/argparse.rst:713 +#: ../Doc/library/argparse.rst:724 msgid "" "Normally, when you pass an invalid argument list to the :meth:" "`~ArgumentParser.parse_args` method of an :class:`ArgumentParser`, it will " @@ -934,7 +955,7 @@ msgstr "" "`~ArgumentParser.parse_args` de un :class:`ArgumentParser`, saldrá con " "información de error." -#: ../Doc/library/argparse.rst:716 +#: ../Doc/library/argparse.rst:727 msgid "" "If the user would like to catch errors manually, the feature can be enabled " "by setting ``exit_on_error`` to ``False``::" @@ -942,11 +963,11 @@ msgstr "" "Si el usuario desea detectar errores manualmente, la función se puede " "habilitar configurando ``exit_on_error`` en ``False`` ::" -#: ../Doc/library/argparse.rst:733 +#: ../Doc/library/argparse.rst:744 msgid "The add_argument() method" msgstr "El método *add_argument()*" -#: ../Doc/library/argparse.rst:739 +#: ../Doc/library/argparse.rst:750 msgid "" "Define how a single command-line argument should be parsed. Each parameter " "has its own more detailed description below, but in short they are:" @@ -955,7 +976,7 @@ msgstr "" "comandos. Cada parámetro tiene su propia descripción más detallada a " "continuación, pero en resumen son::" -#: ../Doc/library/argparse.rst:742 +#: ../Doc/library/argparse.rst:753 msgid "" "`name or flags`_ - Either a name or a list of option strings, e.g. ``foo`` " "or ``-f, --foo``." @@ -963,7 +984,7 @@ msgstr "" "`name or flags`_ - Ya sea un nombre o una lista de cadena de caracteres de " "opción, e.g. ``foo`` o ``-f, --foo``." -#: ../Doc/library/argparse.rst:745 +#: ../Doc/library/argparse.rst:756 msgid "" "action_ - The basic type of action to be taken when this argument is " "encountered at the command line." @@ -971,19 +992,19 @@ msgstr "" "action_ - El tipo básico de acción a tomar cuando este argumento se " "encuentra en la línea de comandos." -#: ../Doc/library/argparse.rst:748 +#: ../Doc/library/argparse.rst:759 msgid "nargs_ - The number of command-line arguments that should be consumed." msgstr "" "nargs_ - El número de argumentos de la línea de comandos que deben ser " "consumidos." -#: ../Doc/library/argparse.rst:750 +#: ../Doc/library/argparse.rst:761 msgid "" "const_ - A constant value required by some action_ and nargs_ selections." msgstr "" "const_ - Un valor fijo requerido por algunas selecciones de action_ y nargs_." -#: ../Doc/library/argparse.rst:752 +#: ../Doc/library/argparse.rst:763 msgid "" "default_ - The value produced if the argument is absent from the command " "line and if it is absent from the namespace object." @@ -991,17 +1012,18 @@ msgstr "" "default_ - El valor producido si el argumento está ausente en la línea de " "comando y si está ausente en el objeto de espacio de nombres." -#: ../Doc/library/argparse.rst:755 +#: ../Doc/library/argparse.rst:766 msgid "" "type_ - The type to which the command-line argument should be converted." msgstr "" "type_ - El tipo al que debe convertirse el argumento de la línea de comandos." -#: ../Doc/library/argparse.rst:757 -msgid "choices_ - A container of the allowable values for the argument." +#: ../Doc/library/argparse.rst:768 +#, fuzzy +msgid "choices_ - A sequence of the allowable values for the argument." msgstr "choices_ - Un contenedor con los valores permitidos para el argumento." -#: ../Doc/library/argparse.rst:759 +#: ../Doc/library/argparse.rst:770 msgid "" "required_ - Whether or not the command-line option may be omitted (optionals " "only)." @@ -1009,15 +1031,15 @@ msgstr "" "required_ - Si se puede omitir o no la opción de la línea de comandos (sólo " "opcionales)." -#: ../Doc/library/argparse.rst:762 +#: ../Doc/library/argparse.rst:773 msgid "help_ - A brief description of what the argument does." msgstr "help_ - Una breve descripción de lo que hace el argumento." -#: ../Doc/library/argparse.rst:764 +#: ../Doc/library/argparse.rst:775 msgid "metavar_ - A name for the argument in usage messages." msgstr "metavar_ - Un nombre para el argumento en los mensajes de uso." -#: ../Doc/library/argparse.rst:766 +#: ../Doc/library/argparse.rst:777 msgid "" "dest_ - The name of the attribute to be added to the object returned by :" "meth:`parse_args`." @@ -1025,11 +1047,11 @@ msgstr "" "dest_ - El nombre del atributo que será añadido al objeto retornado por :" "meth:`parse_args`." -#: ../Doc/library/argparse.rst:775 +#: ../Doc/library/argparse.rst:786 msgid "name or flags" msgstr "*name or flags*" -#: ../Doc/library/argparse.rst:777 +#: ../Doc/library/argparse.rst:788 msgid "" "The :meth:`~ArgumentParser.add_argument` method must know whether an " "optional argument, like ``-f`` or ``--foo``, or a positional argument, like " @@ -1043,15 +1065,15 @@ msgstr "" "meth:`~ArgumentParser.add_argument` deben ser o bien una serie de banderas " "(*flags*), o un simple nombre de un argumento (*name*)." -#: ../Doc/library/argparse.rst:783 +#: ../Doc/library/argparse.rst:794 msgid "For example, an optional argument could be created like::" msgstr "Por ejemplo, se puede crear un argumento opcional como::" -#: ../Doc/library/argparse.rst:787 +#: ../Doc/library/argparse.rst:798 msgid "while a positional argument could be created like::" msgstr "mientras que un argumento posicional podría ser creado como::" -#: ../Doc/library/argparse.rst:791 +#: ../Doc/library/argparse.rst:802 msgid "" "When :meth:`~ArgumentParser.parse_args` is called, optional arguments will " "be identified by the ``-`` prefix, and the remaining arguments will be " @@ -1061,11 +1083,11 @@ msgstr "" "opcionales serán identificados por el prefijo ``-``, y el resto de los " "argumentos serán asumidos como posicionales::" -#: ../Doc/library/argparse.rst:810 +#: ../Doc/library/argparse.rst:821 msgid "action" msgstr "*action*" -#: ../Doc/library/argparse.rst:812 +#: ../Doc/library/argparse.rst:823 msgid "" ":class:`ArgumentParser` objects associate command-line arguments with " "actions. These actions can do just about anything with the command-line " @@ -1082,7 +1104,7 @@ msgstr "" "especifica cómo deben ser manejados los argumentos de la línea de comandos. " "Las acciones proporcionadas son:" -#: ../Doc/library/argparse.rst:818 +#: ../Doc/library/argparse.rst:829 msgid "" "``'store'`` - This just stores the argument's value. This is the default " "action. For example::" @@ -1090,7 +1112,7 @@ msgstr "" "``'store'`` - Esto sólo almacena el valor del argumento. Esta es la acción " "por defecto. Por ejemplo::" -#: ../Doc/library/argparse.rst:826 +#: ../Doc/library/argparse.rst:837 msgid "" "``'store_const'`` - This stores the value specified by the const_ keyword " "argument; note that the const_ keyword argument defaults to ``None``. The " @@ -1103,7 +1125,7 @@ msgstr "" "argumentos opcionales que especifican algún tipo de indicador (*flag*). Por " "ejemplo::" -#: ../Doc/library/argparse.rst:836 +#: ../Doc/library/argparse.rst:847 msgid "" "``'store_true'`` and ``'store_false'`` - These are special cases of " "``'store_const'`` used for storing the values ``True`` and ``False`` " @@ -1115,7 +1137,7 @@ msgstr "" "respectivamente. Además, crean valores por defecto de ``False`` y ``True`` " "respectivamente. Por ejemplo::" -#: ../Doc/library/argparse.rst:848 +#: ../Doc/library/argparse.rst:859 msgid "" "``'append'`` - This stores a list, and appends each argument value to the " "list. It is useful to allow an option to be specified multiple times. If the " @@ -1130,7 +1152,7 @@ msgstr "" "la línea de comandos añadidos después de los valores por defecto. Ejemplo de " "uso::" -#: ../Doc/library/argparse.rst:859 +#: ../Doc/library/argparse.rst:870 msgid "" "``'append_const'`` - This stores a list, and appends the value specified by " "the const_ keyword argument to the list; note that the const_ keyword " @@ -1144,7 +1166,7 @@ msgstr "" "``'append_const'`` es comúnmente útil cuando múltiples argumentos necesitan " "almacenar constantes en la misma lista. Por ejemplo::" -#: ../Doc/library/argparse.rst:871 +#: ../Doc/library/argparse.rst:882 msgid "" "``'count'`` - This counts the number of times a keyword argument occurs. For " "example, this is useful for increasing verbosity levels::" @@ -1153,13 +1175,13 @@ msgstr "" "clave aparece. Por ejemplo, esto es útil para incrementar los niveles de " "detalle::" -#: ../Doc/library/argparse.rst:879 +#: ../Doc/library/argparse.rst:890 msgid "Note, the *default* will be ``None`` unless explicitly set to *0*." msgstr "" "Observa, *default* (el valor por defecto) será ``None`` a menos que " "explícitamente se establezca como *0*." -#: ../Doc/library/argparse.rst:881 +#: ../Doc/library/argparse.rst:892 msgid "" "``'help'`` - This prints a complete help message for all the options in the " "current parser and then exits. By default a help action is automatically " @@ -1171,7 +1193,7 @@ msgstr "" "acción de ayuda automáticamente al analizador. Ver :class:`ArgumentParser` " "para detalles de cómo se genera la salida." -#: ../Doc/library/argparse.rst:886 +#: ../Doc/library/argparse.rst:897 msgid "" "``'version'`` - This expects a ``version=`` keyword argument in the :meth:" "`~ArgumentParser.add_argument` call, and prints version information and " @@ -1181,7 +1203,7 @@ msgstr "" "llamada :meth:`~ArgumentParser.add_argument`, e imprime la información de la " "versión y finaliza cuando es invocada::" -#: ../Doc/library/argparse.rst:896 +#: ../Doc/library/argparse.rst:907 msgid "" "``'extend'`` - This stores a list, and extends each argument value to the " "list. Example usage::" @@ -1189,7 +1211,7 @@ msgstr "" "``’extend’`` - Esta almacena una lista, y extiende cada valor del argumento " "a la lista. Ejemplo de uso::" -#: ../Doc/library/argparse.rst:907 +#: ../Doc/library/argparse.rst:918 msgid "" "You may also specify an arbitrary action by passing an Action subclass or " "other object that implements the same interface. The " @@ -1201,7 +1223,7 @@ msgstr "" "``BooleanOptionalAction`` está disponible en ``argparse`` y agrega soporte " "para acciones booleanas como ``--foo`` y ``--no-foo``:" -#: ../Doc/library/argparse.rst:920 +#: ../Doc/library/argparse.rst:931 msgid "" "The recommended way to create a custom action is to extend :class:`Action`, " "overriding the ``__call__`` method and optionally the ``__init__`` and " @@ -1211,31 +1233,32 @@ msgstr "" "`Action`, anulando el método ``__call__`` y, opcionalmente, los métodos " "``__init__`` y ``format_usage``." -#: ../Doc/library/argparse.rst:924 +#: ../Doc/library/argparse.rst:935 msgid "An example of a custom action::" msgstr "Un ejemplo de una acción personalizada::" -#: ../Doc/library/argparse.rst:944 +#: ../Doc/library/argparse.rst:955 msgid "For more details, see :class:`Action`." msgstr "Para más detalles, ver :class:`Action`." -#: ../Doc/library/argparse.rst:950 +#: ../Doc/library/argparse.rst:961 msgid "nargs" msgstr "*nargs*" -#: ../Doc/library/argparse.rst:952 +#: ../Doc/library/argparse.rst:963 +#, fuzzy msgid "" "ArgumentParser objects usually associate a single command-line argument with " "a single action to be taken. The ``nargs`` keyword argument associates a " -"different number of command-line arguments with a single action. The " -"supported values are:" +"different number of command-line arguments with a single action. See also :" +"ref:`specifying-ambiguous-arguments`. The supported values are:" msgstr "" "Los objetos *ArgumentParser* suelen asociar un único argumento de línea de " "comandos con una única acción a realizar. El argumento de palabra clave " "``nargs`` asocia un número diferente de argumentos de línea de comandos con " "una sola acción. Los valores admitidos son:" -#: ../Doc/library/argparse.rst:957 +#: ../Doc/library/argparse.rst:968 msgid "" "``N`` (an integer). ``N`` arguments from the command line will be gathered " "together into a list. For example::" @@ -1243,7 +1266,7 @@ msgstr "" "``N`` (un entero). ``N`` argumentos de la línea de comandos se agruparán en " "una lista. Por ejemplo::" -#: ../Doc/library/argparse.rst:966 +#: ../Doc/library/argparse.rst:977 msgid "" "Note that ``nargs=1`` produces a list of one item. This is different from " "the default, in which the item is produced by itself." @@ -1252,7 +1275,7 @@ msgstr "" "diferente del valor por defecto, en el que el elemento se produce por sí " "mismo." -#: ../Doc/library/argparse.rst:971 +#: ../Doc/library/argparse.rst:982 msgid "" "``'?'``. One argument will be consumed from the command line if possible, " "and produced as a single item. If no command-line argument is present, the " @@ -1269,7 +1292,7 @@ msgstr "" "comandos. En este caso se obtendrá el valor de const_. Algunos ejemplos para " "ilustrar esto::" -#: ../Doc/library/argparse.rst:988 +#: ../Doc/library/argparse.rst:999 msgid "" "One of the more common uses of ``nargs='?'`` is to allow optional input and " "output files::" @@ -1277,7 +1300,7 @@ msgstr "" "Uno de los usos más comunes de ``nargs='?'`` es permitir archivos de entrada " "y salida opcionales::" -#: ../Doc/library/argparse.rst:1005 +#: ../Doc/library/argparse.rst:1016 msgid "" "``'*'``. All command-line arguments present are gathered into a list. Note " "that it generally doesn't make much sense to have more than one positional " @@ -1289,7 +1312,7 @@ msgstr "" "más de un argumento posicional con ``nargs=‘*’``, pero es posible tener " "múltiples argumentos opcionales con ``nargs=‘*’``. Por ejemplo::" -#: ../Doc/library/argparse.rst:1019 +#: ../Doc/library/argparse.rst:1030 msgid "" "``'+'``. Just like ``'*'``, all command-line args present are gathered into " "a list. Additionally, an error message will be generated if there wasn't at " @@ -1299,7 +1322,7 @@ msgstr "" "se recogen en una lista. Además, se generará un mensaje de error si no había " "al menos un argumento presente en la línea de comandos. Por ejemplo::" -#: ../Doc/library/argparse.rst:1031 +#: ../Doc/library/argparse.rst:1042 msgid "" "If the ``nargs`` keyword argument is not provided, the number of arguments " "consumed is determined by the action_. Generally this means a single " @@ -1311,11 +1334,11 @@ msgstr "" "que se consumirá un único argumento de línea de comandos y se obtendrá un " "único elemento (no una lista)." -#: ../Doc/library/argparse.rst:1039 +#: ../Doc/library/argparse.rst:1050 msgid "const" msgstr "*const*" -#: ../Doc/library/argparse.rst:1041 +#: ../Doc/library/argparse.rst:1052 msgid "" "The ``const`` argument of :meth:`~ArgumentParser.add_argument` is used to " "hold constant values that are not read from the command line but are " @@ -1327,7 +1350,7 @@ msgstr "" "que son necesarios para las diversas acciones de :class:`ArgumentParser`. " "Los dos usos más comunes son:" -#: ../Doc/library/argparse.rst:1045 +#: ../Doc/library/argparse.rst:1056 msgid "" "When :meth:`~ArgumentParser.add_argument` is called with " "``action='store_const'`` or ``action='append_const'``. These actions add " @@ -1343,7 +1366,7 @@ msgstr "" "Si ``const`` no es proporcionado a :meth:`~ArgumentParser.add_argument`, " "este recibirá el valor por defecto ``None``." -#: ../Doc/library/argparse.rst:1053 +#: ../Doc/library/argparse.rst:1064 msgid "" "When :meth:`~ArgumentParser.add_argument` is called with option strings " "(like ``-f`` or ``--foo``) and ``nargs='?'``. This creates an optional " @@ -1359,7 +1382,7 @@ msgstr "" "ningún argumento de línea de comandos que la siga, asumirá en su lugar el " "valor de ``const``. Mira la descripción nargs_ para ejemplos." -#: ../Doc/library/argparse.rst:1060 +#: ../Doc/library/argparse.rst:1071 msgid "" "``const=None`` by default, including when ``action='append_const'`` or " "``action='store_const'``." @@ -1367,11 +1390,11 @@ msgstr "" "Por defecto ``const=None``, incluyendo cuando ``action='append_const'`` o " "``action='store_const'``." -#: ../Doc/library/argparse.rst:1067 +#: ../Doc/library/argparse.rst:1078 msgid "default" msgstr "*default*" -#: ../Doc/library/argparse.rst:1069 +#: ../Doc/library/argparse.rst:1080 msgid "" "All optional arguments and some positional arguments may be omitted at the " "command line. The ``default`` keyword argument of :meth:`~ArgumentParser." @@ -1388,7 +1411,7 @@ msgstr "" "cuando la cadena de caracteres de opción no está presente en la línea de " "comandos::" -#: ../Doc/library/argparse.rst:1083 +#: ../Doc/library/argparse.rst:1094 msgid "" "If the target namespace already has an attribute set, the action *default* " "will not over write it::" @@ -1396,7 +1419,7 @@ msgstr "" "Si el espacio de nombres de destino ya tiene un atributo establecido, la " "acción *default* no lo sobrescribirá:" -#: ../Doc/library/argparse.rst:1091 +#: ../Doc/library/argparse.rst:1102 msgid "" "If the ``default`` value is a string, the parser parses the value as if it " "were a command-line argument. In particular, the parser applies any type_ " @@ -1410,7 +1433,7 @@ msgstr "" "`Namespace`. En caso contrario, el analizador utiliza el valor tal y como " "es::" -#: ../Doc/library/argparse.rst:1102 +#: ../Doc/library/argparse.rst:1113 msgid "" "For positional arguments with nargs_ equal to ``?`` or ``*``, the " "``default`` value is used when no command-line argument was present::" @@ -1419,7 +1442,7 @@ msgstr "" "``default`` se utiliza cuando no hay ningún argumento de línea de comandos " "presente::" -#: ../Doc/library/argparse.rst:1113 +#: ../Doc/library/argparse.rst:1124 msgid "" "Providing ``default=argparse.SUPPRESS`` causes no attribute to be added if " "the command-line argument was not present::" @@ -1427,11 +1450,11 @@ msgstr "" "Proporcionar ``default=argparse.SUPPRESS`` causa que no se agregue ningún " "atributo si el argumento de la línea de comandos no está presente::" -#: ../Doc/library/argparse.rst:1127 +#: ../Doc/library/argparse.rst:1138 msgid "type" msgstr "*type*" -#: ../Doc/library/argparse.rst:1129 +#: ../Doc/library/argparse.rst:1140 msgid "" "By default, the parser reads command-line arguments in as simple strings. " "However, quite often the command-line string should instead be interpreted " @@ -1446,7 +1469,7 @@ msgstr "" "permite realizar cualquier verificación de tipo y conversión de tipo " "necesaria." -#: ../Doc/library/argparse.rst:1135 +#: ../Doc/library/argparse.rst:1146 msgid "" "If the type_ keyword is used with the default_ keyword, the type converter " "is only applied if the default is a string." @@ -1455,7 +1478,7 @@ msgstr "" "convertidor de tipos solo se aplica si el valor predeterminado es una cadena " "de caracteres." -#: ../Doc/library/argparse.rst:1138 +#: ../Doc/library/argparse.rst:1149 msgid "" "The argument to ``type`` can be any callable that accepts a single string. " "If the function raises :exc:`ArgumentTypeError`, :exc:`TypeError`, or :exc:" @@ -1468,17 +1491,17 @@ msgstr "" "mensaje de error con un formato agradable. No se manejan otros tipos de " "excepciones." -#: ../Doc/library/argparse.rst:1143 +#: ../Doc/library/argparse.rst:1154 msgid "Common built-in types and functions can be used as type converters:" msgstr "" "Los tipos y funciones incorporados comunes se pueden utilizar como " "convertidores de tipos:" -#: ../Doc/library/argparse.rst:1159 +#: ../Doc/library/argparse.rst:1170 msgid "User defined functions can be used as well:" msgstr "Las funciones definidas por el usuario también se pueden utilizar:" -#: ../Doc/library/argparse.rst:1171 +#: ../Doc/library/argparse.rst:1182 msgid "" "The :func:`bool` function is not recommended as a type converter. All it " "does is convert empty strings to ``False`` and non-empty strings to " @@ -1488,7 +1511,7 @@ msgstr "" "que hace es convertir cadenas de caracteres vacías en ``False`` y cadenas de " "caracteres no vacías en ``True``. Por lo general, esto no es lo que se desea." -#: ../Doc/library/argparse.rst:1175 +#: ../Doc/library/argparse.rst:1186 msgid "" "In general, the ``type`` keyword is a convenience that should only be used " "for simple conversions that can only raise one of the three supported " @@ -1501,11 +1524,12 @@ msgstr "" "más interesante debe hacerse en sentido descendente después de analizar los " "argumentos." -#: ../Doc/library/argparse.rst:1180 +#: ../Doc/library/argparse.rst:1191 +#, fuzzy msgid "" "For example, JSON or YAML conversions have complex error cases that require " "better reporting than can be given by the ``type`` keyword. A :exc:`~json." -"JSONDecodeError` would not be well formatted and a :exc:`FileNotFound` " +"JSONDecodeError` would not be well formatted and a :exc:`FileNotFoundError` " "exception would not be handled at all." msgstr "" "Por ejemplo, las conversiones JSON o YAML tienen casos de error complejos " @@ -1513,7 +1537,7 @@ msgstr "" "clave ``type``. Un :exc:`~json.JSONDecodeError` no estaría bien formateado y " "una excepción :exc:`FileNotFound` no se manejaría en absoluto." -#: ../Doc/library/argparse.rst:1185 +#: ../Doc/library/argparse.rst:1196 msgid "" "Even :class:`~argparse.FileType` has its limitations for use with the " "``type`` keyword. If one argument uses *FileType* and then a subsequent " @@ -1528,7 +1552,7 @@ msgstr "" "ejecutado el analizador y luego usar la declaración :keyword:`with` para " "administrar los archivos." -#: ../Doc/library/argparse.rst:1191 +#: ../Doc/library/argparse.rst:1202 msgid "" "For type checkers that simply check against a fixed set of values, consider " "using the choices_ keyword instead." @@ -1536,14 +1560,15 @@ msgstr "" "Para los verificadores de tipo que simplemente verifican un conjunto fijo de " "valores, considere usar la palabra clave choices_ en su lugar." -#: ../Doc/library/argparse.rst:1198 +#: ../Doc/library/argparse.rst:1209 msgid "choices" msgstr "*choices*" -#: ../Doc/library/argparse.rst:1200 +#: ../Doc/library/argparse.rst:1211 +#, fuzzy msgid "" "Some command-line arguments should be selected from a restricted set of " -"values. These can be handled by passing a container object as the *choices* " +"values. These can be handled by passing a sequence object as the *choices* " "keyword argument to :meth:`~ArgumentParser.add_argument`. When the command " "line is parsed, argument values will be checked, and an error message will " "be displayed if the argument was not one of the acceptable values::" @@ -1555,27 +1580,29 @@ msgstr "" "comprueban los valores de los argumentos y se muestra un mensaje de error si " "el argumento no era uno de los valores aceptables::" -#: ../Doc/library/argparse.rst:1215 +#: ../Doc/library/argparse.rst:1226 +#, fuzzy msgid "" -"Note that inclusion in the *choices* container is checked after any type_ " +"Note that inclusion in the *choices* sequence is checked after any type_ " "conversions have been performed, so the type of the objects in the *choices* " -"container should match the type_ specified::" +"sequence should match the type_ specified::" msgstr "" "Ten en cuenta que la inclusión en el contenedor *choices* se comprueba " "después de que se haya realizado cualquier conversión de type_, por lo que " "el tipo de los objetos del contenedor *choices* debe coincidir con el type_ " "especificado::" -#: ../Doc/library/argparse.rst:1227 +#: ../Doc/library/argparse.rst:1238 +#, fuzzy msgid "" -"Any container can be passed as the *choices* value, so :class:`list` " -"objects, :class:`set` objects, and custom containers are all supported." +"Any sequence can be passed as the *choices* value, so :class:`list` " +"objects, :class:`tuple` objects, and custom sequences are all supported." msgstr "" "Se puede pasar cualquier contenedor como el valor para *choices*, así que " "los objetos :class:`list`, :class:`set` , y los contenedores personalizados " "están todos soportados." -#: ../Doc/library/argparse.rst:1230 +#: ../Doc/library/argparse.rst:1241 msgid "" "Use of :class:`enum.Enum` is not recommended because it is difficult to " "control its appearance in usage, help, and error messages." @@ -1583,7 +1610,7 @@ msgstr "" "No se recomienda el uso de :class:`enum.Enum` porque es difícil controlar su " "apariencia en el uso, la ayuda y los mensajes de error." -#: ../Doc/library/argparse.rst:1233 +#: ../Doc/library/argparse.rst:1244 msgid "" "Formatted choices override the default *metavar* which is normally derived " "from *dest*. This is usually what you want because the user never sees the " @@ -1595,11 +1622,11 @@ msgstr "" "ve el parámetro *dest*. Si esta visualización no es deseable (quizás porque " "hay muchas opciones), simplemente especifique un metavar_ explícito." -#: ../Doc/library/argparse.rst:1242 +#: ../Doc/library/argparse.rst:1253 msgid "required" msgstr "*required*" -#: ../Doc/library/argparse.rst:1244 +#: ../Doc/library/argparse.rst:1255 msgid "" "In general, the :mod:`argparse` module assumes that flags like ``-f`` and " "``--bar`` indicate *optional* arguments, which can always be omitted at the " @@ -1612,7 +1639,7 @@ msgstr "" "puede especificar ``True`` para el argumento de palabra clave ``required=`` " "en :meth:`~ArgumentParser.add_argument`::" -#: ../Doc/library/argparse.rst:1257 +#: ../Doc/library/argparse.rst:1268 msgid "" "As the example shows, if an option is marked as ``required``, :meth:" "`~ArgumentParser.parse_args` will report an error if that option is not " @@ -1622,7 +1649,7 @@ msgstr "" "`~ArgumentParser.parse_args` informará de un error si esa opción no está " "presente en la línea de comandos." -#: ../Doc/library/argparse.rst:1263 +#: ../Doc/library/argparse.rst:1274 msgid "" "Required options are generally considered bad form because users expect " "*options* to be *optional*, and thus they should be avoided when possible." @@ -1631,11 +1658,11 @@ msgstr "" "los usuarios esperan que las *opciones* sean *opcionales*, y por lo tanto " "deberían ser evitadas cuando sea posible." -#: ../Doc/library/argparse.rst:1270 +#: ../Doc/library/argparse.rst:1281 msgid "help" msgstr "*help*" -#: ../Doc/library/argparse.rst:1272 +#: ../Doc/library/argparse.rst:1283 msgid "" "The ``help`` value is a string containing a brief description of the " "argument. When a user requests help (usually by using ``-h`` or ``--help`` " @@ -1647,7 +1674,7 @@ msgstr "" "usando ``-h`` o ``--help`` en la línea de comandos), estas descripciones " "``help`` se mostrarán con cada argumento::" -#: ../Doc/library/argparse.rst:1292 +#: ../Doc/library/argparse.rst:1303 #, python-format msgid "" "The ``help`` strings can include various format specifiers to avoid " @@ -1663,7 +1690,7 @@ msgstr "" "meth:`~ArgumentParser.add_argument`, por ejemplo ``%(default)s``, " "``%(type)s``, etc.::" -#: ../Doc/library/argparse.rst:1309 +#: ../Doc/library/argparse.rst:1320 #, python-format msgid "" "As the help string supports %-formatting, if you want a literal ``%`` to " @@ -1672,7 +1699,7 @@ msgstr "" "Como la cadena de caracteres de ayuda soporta el formato-%, si quieres que " "aparezca un ``%`` literal en la ayuda, debes escribirlo como ``%%``." -#: ../Doc/library/argparse.rst:1312 +#: ../Doc/library/argparse.rst:1323 msgid "" ":mod:`argparse` supports silencing the help entry for certain options, by " "setting the ``help`` value to ``argparse.SUPPRESS``::" @@ -1680,11 +1707,11 @@ msgstr "" ":mod:`argparse` soporta el silenciar la ayuda para ciertas opciones, " "ajustando el valor ``help`` a ``argparse.SUPPRESS``::" -#: ../Doc/library/argparse.rst:1327 +#: ../Doc/library/argparse.rst:1338 msgid "metavar" msgstr "*metavar*" -#: ../Doc/library/argparse.rst:1329 +#: ../Doc/library/argparse.rst:1340 msgid "" "When :class:`ArgumentParser` generates help messages, it needs some way to " "refer to each expected argument. By default, ArgumentParser objects use the " @@ -1705,11 +1732,11 @@ msgstr "" "que debería seguirse por un único argumento de línea de comandos se " "denominará ``FOO``. Un ejemplo::" -#: ../Doc/library/argparse.rst:1353 +#: ../Doc/library/argparse.rst:1364 msgid "An alternative name can be specified with ``metavar``::" msgstr "Un nombre alternativo se puede especificar con ``metavar``::" -#: ../Doc/library/argparse.rst:1370 +#: ../Doc/library/argparse.rst:1381 msgid "" "Note that ``metavar`` only changes the *displayed* name - the name of the " "attribute on the :meth:`~ArgumentParser.parse_args` object is still " @@ -1719,7 +1746,7 @@ msgstr "" "del atributo en el objeto :meth:`~ArgumentParser.parse_args` sigue estando " "determinado por el valor dest_." -#: ../Doc/library/argparse.rst:1374 +#: ../Doc/library/argparse.rst:1385 msgid "" "Different values of ``nargs`` may cause the metavar to be used multiple " "times. Providing a tuple to ``metavar`` specifies a different display for " @@ -1729,11 +1756,11 @@ msgstr "" "múltiples veces. Proporcionar una tupla a ``metavar`` especifica una " "visualización diferente para cada uno de los argumentos::" -#: ../Doc/library/argparse.rst:1393 +#: ../Doc/library/argparse.rst:1404 msgid "dest" msgstr "*dest*" -#: ../Doc/library/argparse.rst:1395 +#: ../Doc/library/argparse.rst:1406 msgid "" "Most :class:`ArgumentParser` actions add some value as an attribute of the " "object returned by :meth:`~ArgumentParser.parse_args`. The name of this " @@ -1749,7 +1776,7 @@ msgstr "" "posicional, se proporciona ``dest`` normalmente como primer argumento de :" "meth:`~ArgumentParser.add_argument`::" -#: ../Doc/library/argparse.rst:1407 +#: ../Doc/library/argparse.rst:1418 msgid "" "For optional argument actions, the value of ``dest`` is normally inferred " "from the option strings. :class:`ArgumentParser` generates the value of " @@ -1770,27 +1797,29 @@ msgstr "" "que la cadena de caracteres es un nombre de atributo válido. Los ejemplos " "siguientes ilustran este comportamiento::" -#: ../Doc/library/argparse.rst:1424 +#: ../Doc/library/argparse.rst:1435 msgid "``dest`` allows a custom attribute name to be provided::" msgstr "" "``dest`` permite que se proporcione un nombre de atributo personalizado::" -#: ../Doc/library/argparse.rst:1432 +#: ../Doc/library/argparse.rst:1443 msgid "Action classes" msgstr "Las clases *Action*" -#: ../Doc/library/argparse.rst:1434 +#: ../Doc/library/argparse.rst:1445 +#, fuzzy msgid "" "Action classes implement the Action API, a callable which returns a callable " "which processes arguments from the command-line. Any object which follows " -"this API may be passed as the ``action`` parameter to :meth:`add_argument`." +"this API may be passed as the ``action`` parameter to :meth:`~ArgumentParser." +"add_argument`." msgstr "" "Las clases *Action* implementan la API de *Action*, un invocable que retorna " "un invocable que procesa los argumentos de la línea de comandos. Cualquier " "objeto que siga esta API puede ser pasado como el parámetro ``action`` a :" "meth:`add_argument`." -#: ../Doc/library/argparse.rst:1443 +#: ../Doc/library/argparse.rst:1454 msgid "" "Action objects are used by an ArgumentParser to represent the information " "needed to parse a single argument from one or more strings from the command " @@ -1805,7 +1834,7 @@ msgstr "" "clave pasado a :meth:`ArgumentParser.add_argument` excepto para la propia " "``action``." -#: ../Doc/library/argparse.rst:1449 +#: ../Doc/library/argparse.rst:1460 msgid "" "Instances of Action (or return value of any callable to the ``action`` " "parameter) should have attributes \"dest\", \"option_strings\", \"default\", " @@ -1818,7 +1847,7 @@ msgstr "" "forma más fácil de asegurar que estos atributos estén definidos es llamar a " "``Action.__init__``." -#: ../Doc/library/argparse.rst:1454 +#: ../Doc/library/argparse.rst:1465 msgid "" "Action instances should be callable, so subclasses must override the " "``__call__`` method, which should accept four parameters:" @@ -1826,11 +1855,11 @@ msgstr "" "Las instancias de *Action* deben ser invocables, por lo que las subclases " "deben anular el método ``__call__``, que debería aceptar cuatro parámetros:" -#: ../Doc/library/argparse.rst:1457 +#: ../Doc/library/argparse.rst:1468 msgid "``parser`` - The ArgumentParser object which contains this action." msgstr "``parser`` - El objeto *ArgumentParser* que contiene esta acción." -#: ../Doc/library/argparse.rst:1459 +#: ../Doc/library/argparse.rst:1470 msgid "" "``namespace`` - The :class:`Namespace` object that will be returned by :meth:" "`~ArgumentParser.parse_args`. Most actions add an attribute to this object " @@ -1840,7 +1869,7 @@ msgstr "" "`~ArgumentParser.parse_args`. La mayoría de las acciones añaden un atributo " "a este objeto usando :func:`setattr`." -#: ../Doc/library/argparse.rst:1463 +#: ../Doc/library/argparse.rst:1474 msgid "" "``values`` - The associated command-line arguments, with any type " "conversions applied. Type conversions are specified with the type_ keyword " @@ -1850,7 +1879,7 @@ msgstr "" "tipo de conversión aplicada. Las conversiones de tipos se especifican con el " "argumento de palabra clave type_ a :meth:`~ArgumentParser.add_argument`." -#: ../Doc/library/argparse.rst:1467 +#: ../Doc/library/argparse.rst:1478 msgid "" "``option_string`` - The option string that was used to invoke this action. " "The ``option_string`` argument is optional, and will be absent if the action " @@ -1860,7 +1889,7 @@ msgstr "" "invocar esta acción. El argumento ``option_string`` es opcional, y estará " "ausente si la acción está asociada a un argumento de posición." -#: ../Doc/library/argparse.rst:1471 +#: ../Doc/library/argparse.rst:1482 msgid "" "The ``__call__`` method may perform arbitrary actions, but will typically " "set attributes on the ``namespace`` based on ``dest`` and ``values``." @@ -1868,7 +1897,7 @@ msgstr "" "El método ``__call__`` puede realizar acciones arbitrarias, pero típicamente " "estable atributos en ``namespace`` basados en ``dest`` y ``values``." -#: ../Doc/library/argparse.rst:1474 +#: ../Doc/library/argparse.rst:1485 msgid "" "Action subclasses can define a ``format_usage`` method that takes no " "argument and return a string which will be used when printing the usage of " @@ -1879,11 +1908,11 @@ msgstr "" "uso del programa. Si no se proporciona dicho método, se utilizará un valor " "predeterminado razonable." -#: ../Doc/library/argparse.rst:1479 +#: ../Doc/library/argparse.rst:1490 msgid "The parse_args() method" msgstr "El método *parse_args()*" -#: ../Doc/library/argparse.rst:1483 +#: ../Doc/library/argparse.rst:1494 msgid "" "Convert argument strings to objects and assign them as attributes of the " "namespace. Return the populated namespace." @@ -1892,7 +1921,7 @@ msgstr "" "como atributos del espacio de nombres (*namespace*). Retorna el espacio de " "nombres (*namespace*) ocupado." -#: ../Doc/library/argparse.rst:1486 +#: ../Doc/library/argparse.rst:1497 msgid "" "Previous calls to :meth:`add_argument` determine exactly what objects are " "created and how they are assigned. See the documentation for :meth:" @@ -1902,7 +1931,7 @@ msgstr "" "objetos se crean y cómo se asignan. Mira la documentación de :meth:" "`add_argument` para más detalles." -#: ../Doc/library/argparse.rst:1490 +#: ../Doc/library/argparse.rst:1501 msgid "" "args_ - List of strings to parse. The default is taken from :data:`sys." "argv`." @@ -1910,7 +1939,7 @@ msgstr "" "args_ - Lista de cadenas de caracteres para analizar. El valor por defecto " "se toma de :data:`sys.argv`." -#: ../Doc/library/argparse.rst:1493 +#: ../Doc/library/argparse.rst:1504 msgid "" "namespace_ - An object to take the attributes. The default is a new empty :" "class:`Namespace` object." @@ -1918,11 +1947,11 @@ msgstr "" "namespace_ - Un objeto para obtener los atributos. Por defecto es un nuevo " "objeto vacío :class:`Namespace`." -#: ../Doc/library/argparse.rst:1498 +#: ../Doc/library/argparse.rst:1509 msgid "Option value syntax" msgstr "Sintaxis del valor de la opción" -#: ../Doc/library/argparse.rst:1500 +#: ../Doc/library/argparse.rst:1511 msgid "" "The :meth:`~ArgumentParser.parse_args` method supports several ways of " "specifying the value of an option (if it takes one). In the simplest case, " @@ -1932,7 +1961,7 @@ msgstr "" "especificar el valor de una opción (si requiere uno). En el caso más simple, " "la opción y su valor se pasan como dos argumentos separados::" -#: ../Doc/library/argparse.rst:1512 +#: ../Doc/library/argparse.rst:1523 msgid "" "For long options (options with names longer than a single character), the " "option and value can also be passed as a single command-line argument, using " @@ -1942,7 +1971,7 @@ msgstr "" "carácter), la opción y el valor también se pueden pasar como un sólo " "argumento de línea de comandos, utilizando ``=`` para separarlos::" -#: ../Doc/library/argparse.rst:1519 +#: ../Doc/library/argparse.rst:1530 msgid "" "For short options (options only one character long), the option and its " "value can be concatenated::" @@ -1950,7 +1979,7 @@ msgstr "" "Para las opciones cortas (opciones de un sólo carácter de largo), la opción " "y su valor pueden ser concatenados::" -#: ../Doc/library/argparse.rst:1525 +#: ../Doc/library/argparse.rst:1536 msgid "" "Several short options can be joined together, using only a single ``-`` " "prefix, as long as only the last option (or none of them) requires a value::" @@ -1958,11 +1987,11 @@ msgstr "" "Se pueden unir varias opciones cortas, usando un sólo prefijo ``-``, siempre " "y cuando sólo la última opción (o ninguna de ellas) requiera un valor::" -#: ../Doc/library/argparse.rst:1537 +#: ../Doc/library/argparse.rst:1548 msgid "Invalid arguments" msgstr "Argumentos no válidos" -#: ../Doc/library/argparse.rst:1539 +#: ../Doc/library/argparse.rst:1550 msgid "" "While parsing the command line, :meth:`~ArgumentParser.parse_args` checks " "for a variety of errors, including ambiguous options, invalid types, invalid " @@ -1975,11 +2004,11 @@ msgstr "" "etc. Cuando encuentra un error de este tipo, termina y muestra el error " "junto con un mensaje de uso::" -#: ../Doc/library/argparse.rst:1565 +#: ../Doc/library/argparse.rst:1576 msgid "Arguments containing ``-``" msgstr "Argumentos conteniendo ``-``" -#: ../Doc/library/argparse.rst:1567 +#: ../Doc/library/argparse.rst:1578 msgid "" "The :meth:`~ArgumentParser.parse_args` method attempts to give errors " "whenever the user has clearly made a mistake, but some situations are " @@ -1999,7 +2028,7 @@ msgstr "" "comenzar con ``-`` si se ven como números negativos y no hay opciones en el " "analizador que se puedan ver como números negativos ::" -#: ../Doc/library/argparse.rst:1605 +#: ../Doc/library/argparse.rst:1616 msgid "" "If you have positional arguments that must begin with ``-`` and don't look " "like negative numbers, you can insert the pseudo-argument ``'--'`` which " @@ -2011,11 +2040,17 @@ msgstr "" "a :meth:`~ArgumentParser.parse_args` que todo lo que sigue es un argumento " "de posición::" -#: ../Doc/library/argparse.rst:1616 +#: ../Doc/library/argparse.rst:1624 +msgid "" +"See also :ref:`the argparse howto on ambiguous arguments ` for more details." +msgstr "" + +#: ../Doc/library/argparse.rst:1630 msgid "Argument abbreviations (prefix matching)" msgstr "Abreviaturas de los argumentos (coincidencia de prefijos)" -#: ../Doc/library/argparse.rst:1618 +#: ../Doc/library/argparse.rst:1632 msgid "" "The :meth:`~ArgumentParser.parse_args` method :ref:`by default " "` allows long options to be abbreviated to a prefix, if the " @@ -2025,7 +2060,7 @@ msgstr "" "` permite abreviar las opciones largas a un prefijo, si la " "abreviatura es inequívoca (el prefijo coincide con una opción única)::" -#: ../Doc/library/argparse.rst:1633 +#: ../Doc/library/argparse.rst:1647 msgid "" "An error is produced for arguments that could produce more than one options. " "This feature can be disabled by setting :ref:`allow_abbrev` to ``False``." @@ -2034,11 +2069,11 @@ msgstr "" "opción. Esta característica puede ser desactivada poniendo :ref:" "`allow_abbrev` a ``False``." -#: ../Doc/library/argparse.rst:1639 +#: ../Doc/library/argparse.rst:1653 msgid "Beyond ``sys.argv``" msgstr "Más allá de ``sys.argv``" -#: ../Doc/library/argparse.rst:1641 +#: ../Doc/library/argparse.rst:1655 msgid "" "Sometimes it may be useful to have an ArgumentParser parse arguments other " "than those of :data:`sys.argv`. This can be accomplished by passing a list " @@ -2050,11 +2085,11 @@ msgstr "" "cadenas de caracteres a :meth:`~ArgumentParser.parse_args`. Esto es útil " "para probar en el *prompt* interactivo::" -#: ../Doc/library/argparse.rst:1661 +#: ../Doc/library/argparse.rst:1675 msgid "The Namespace object" msgstr "El objeto *Namespace*" -#: ../Doc/library/argparse.rst:1665 +#: ../Doc/library/argparse.rst:1679 msgid "" "Simple class used by default by :meth:`~ArgumentParser.parse_args` to create " "an object holding attributes and return it." @@ -2062,7 +2097,7 @@ msgstr "" "Clase simple utilizada por defecto por :meth:`~ArgumentParser.parse_args` " "para crear un objeto que contenga atributos y retornarlo." -#: ../Doc/library/argparse.rst:1668 +#: ../Doc/library/argparse.rst:1682 msgid "" "This class is deliberately simple, just an :class:`object` subclass with a " "readable string representation. If you prefer to have dict-like view of the " @@ -2073,7 +2108,7 @@ msgstr "" "en forma de diccionario de los atributos, puedes usar el lenguaje estándar " "de Python, :func:`vars`::" -#: ../Doc/library/argparse.rst:1678 +#: ../Doc/library/argparse.rst:1692 msgid "" "It may also be useful to have an :class:`ArgumentParser` assign attributes " "to an already existing object, rather than a new :class:`Namespace` object. " @@ -2084,15 +2119,16 @@ msgstr "" "Esto se puede lograr especificando el argumento de palabra clave " "``namespace=``::" -#: ../Doc/library/argparse.rst:1694 +#: ../Doc/library/argparse.rst:1708 msgid "Other utilities" msgstr "Otras utilidades" -#: ../Doc/library/argparse.rst:1697 +#: ../Doc/library/argparse.rst:1711 msgid "Sub-commands" msgstr "Sub-comandos" -#: ../Doc/library/argparse.rst:1704 +#: ../Doc/library/argparse.rst:1718 +#, fuzzy msgid "" "Many programs split up their functionality into a number of sub-commands, " "for example, the ``svn`` program can invoke sub-commands like ``svn " @@ -2102,7 +2138,7 @@ msgid "" "arguments. :class:`ArgumentParser` supports the creation of such sub-" "commands with the :meth:`add_subparsers` method. The :meth:`add_subparsers` " "method is normally called with no arguments and returns a special action " -"object. This object has a single method, :meth:`~ArgumentParser." +"object. This object has a single method, :meth:`~_SubParsersAction." "add_parser`, which takes a command name and any :class:`ArgumentParser` " "constructor arguments, and returns an :class:`ArgumentParser` object that " "can be modified as usual." @@ -2120,11 +2156,11 @@ msgstr "" "argumento de construcción :class:`ArgumentParser`, y retorna un objeto :" "class:`ArgumentParser` que puede ser modificado de la forma habitual." -#: ../Doc/library/argparse.rst:1716 +#: ../Doc/library/argparse.rst:1730 msgid "Description of parameters:" msgstr "Descripción de los parámetros:" -#: ../Doc/library/argparse.rst:1718 +#: ../Doc/library/argparse.rst:1732 msgid "" "title - title for the sub-parser group in help output; by default " "\"subcommands\" if description is provided, otherwise uses title for " @@ -2134,7 +2170,7 @@ msgstr "" "ayuda; por defecto *\"subcommands\"* si se proporciona la descripción, de lo " "contrario utiliza el título para los argumentos de posición" -#: ../Doc/library/argparse.rst:1722 +#: ../Doc/library/argparse.rst:1736 msgid "" "description - description for the sub-parser group in help output, by " "default ``None``" @@ -2142,7 +2178,7 @@ msgstr "" "*description* - descripción para el grupo del analizador secundario en la " "salida de la ayuda, por defecto ``None``" -#: ../Doc/library/argparse.rst:1725 +#: ../Doc/library/argparse.rst:1739 msgid "" "prog - usage information that will be displayed with sub-command help, by " "default the name of the program and any positional arguments before the " @@ -2152,7 +2188,7 @@ msgstr "" "comandos, por defecto el nombre del programa y cualquier argumento de " "posición antes del argumento del analizador secundario" -#: ../Doc/library/argparse.rst:1729 +#: ../Doc/library/argparse.rst:1743 msgid "" "parser_class - class which will be used to create sub-parser instances, by " "default the class of the current parser (e.g. ArgumentParser)" @@ -2161,7 +2197,7 @@ msgstr "" "secundario, por defecto la clase del analizador actual (por ejemplo, " "ArgumentParser)" -#: ../Doc/library/argparse.rst:1732 +#: ../Doc/library/argparse.rst:1746 msgid "" "action_ - the basic type of action to be taken when this argument is " "encountered at the command line" @@ -2169,7 +2205,7 @@ msgstr "" "action_ - el tipo básico de acción a tomar cuando este argumento se " "encuentre en la línea de comandos" -#: ../Doc/library/argparse.rst:1735 +#: ../Doc/library/argparse.rst:1749 msgid "" "dest_ - name of the attribute under which sub-command name will be stored; " "by default ``None`` and no value is stored" @@ -2177,7 +2213,7 @@ msgstr "" "dest_ - nombre del atributo en el que se almacenará el nombre del sub-" "comando; por defecto ``None`` y no se almacena ningún valor" -#: ../Doc/library/argparse.rst:1738 +#: ../Doc/library/argparse.rst:1752 msgid "" "required_ - Whether or not a subcommand must be provided, by default " "``False`` (added in 3.7)" @@ -2185,13 +2221,13 @@ msgstr "" "required_ - Si se debe proporcionar o no un sub-comando, por defecto " "``False`` (añadido en 3.7)" -#: ../Doc/library/argparse.rst:1741 +#: ../Doc/library/argparse.rst:1755 msgid "help_ - help for sub-parser group in help output, by default ``None``" msgstr "" "help_ - ayuda para el grupo de análisis secundario en la salida de la ayuda, " "por defecto ``None``" -#: ../Doc/library/argparse.rst:1743 +#: ../Doc/library/argparse.rst:1757 msgid "" "metavar_ - string presenting available sub-commands in help; by default it " "is ``None`` and presents sub-commands in form {cmd1, cmd2, ..}" @@ -2200,11 +2236,11 @@ msgstr "" "la ayuda; por defecto es ``None`` y presenta los sub-comandos de la forma " "{cmd1, cmd2, ..}" -#: ../Doc/library/argparse.rst:1746 +#: ../Doc/library/argparse.rst:1760 msgid "Some example usage::" msgstr "Algún ejemplo de uso::" -#: ../Doc/library/argparse.rst:1767 +#: ../Doc/library/argparse.rst:1781 msgid "" "Note that the object returned by :meth:`parse_args` will only contain " "attributes for the main parser and the subparser that was selected by the " @@ -2221,13 +2257,14 @@ msgstr "" "especifica el comando ``b``, sólo están presentes los atributos ``foo`` y " "``baz``." -#: ../Doc/library/argparse.rst:1774 +#: ../Doc/library/argparse.rst:1788 +#, fuzzy msgid "" "Similarly, when a help message is requested from a subparser, only the help " "for that particular parser will be printed. The help message will not " "include parent parser or sibling parser messages. (A help message for each " "subparser command, however, can be given by supplying the ``help=`` argument " -"to :meth:`add_parser` as above.)" +"to :meth:`~_SubParsersAction.add_parser` as above.)" msgstr "" "Del mismo modo, cuando se solicita un mensaje de ayuda de un analizador " "secundario, sólo se imprimirá la ayuda para ese analizador en particular. El " @@ -2236,7 +2273,7 @@ msgstr "" "para cada comando del analizador secundario suministrando el argumento " "``help=`` a :meth:`add_parser` como se ha indicado anteriormente)." -#: ../Doc/library/argparse.rst:1810 +#: ../Doc/library/argparse.rst:1824 msgid "" "The :meth:`add_subparsers` method also supports ``title`` and " "``description`` keyword arguments. When either is present, the subparser's " @@ -2247,7 +2284,7 @@ msgstr "" "presente, los comandos del analizador secundario aparecerán en su propio " "grupo en la salida de la ayuda. Por ejemplo::" -#: ../Doc/library/argparse.rst:1831 +#: ../Doc/library/argparse.rst:1845 msgid "" "Furthermore, ``add_parser`` supports an additional ``aliases`` argument, " "which allows multiple strings to refer to the same subparser. This example, " @@ -2258,7 +2295,7 @@ msgstr "" "Este ejemplo, algo del estilo ``svn``, alias ``co`` como abreviatura para " "``checkout``::" -#: ../Doc/library/argparse.rst:1842 +#: ../Doc/library/argparse.rst:1856 msgid "" "One particularly effective way of handling sub-commands is to combine the " "use of the :meth:`add_subparsers` method with calls to :meth:`set_defaults` " @@ -2270,7 +2307,7 @@ msgstr "" "para que cada analizador secundario sepa qué función de Python debe " "ejecutar. Por ejemplo::" -#: ../Doc/library/argparse.rst:1879 +#: ../Doc/library/argparse.rst:1893 msgid "" "This way, you can let :meth:`parse_args` do the job of calling the " "appropriate function after argument parsing is complete. Associating " @@ -2287,15 +2324,15 @@ msgstr "" "del analizador secundario que se ha invocado, el argumento de palabra clave " "``dest`` a la llamada :meth:`add_subparsers` hará el trabajo::" -#: ../Doc/library/argparse.rst:1895 +#: ../Doc/library/argparse.rst:1909 msgid "New *required* keyword argument." msgstr "Nuevo argumento de palabra clave *required*." -#: ../Doc/library/argparse.rst:1900 +#: ../Doc/library/argparse.rst:1914 msgid "FileType objects" msgstr "Objetos *FileType*" -#: ../Doc/library/argparse.rst:1904 +#: ../Doc/library/argparse.rst:1918 msgid "" "The :class:`FileType` factory creates objects that can be passed to the type " "argument of :meth:`ArgumentParser.add_argument`. Arguments that have :class:" @@ -2310,31 +2347,33 @@ msgstr "" "codificaciones y manejo de errores solicitados (véase la función :func:" "`open` para más detalles)::" -#: ../Doc/library/argparse.rst:1916 +#: ../Doc/library/argparse.rst:1930 +#, fuzzy msgid "" "FileType objects understand the pseudo-argument ``'-'`` and automatically " -"convert this into ``sys.stdin`` for readable :class:`FileType` objects and " -"``sys.stdout`` for writable :class:`FileType` objects::" +"convert this into :data:`sys.stdin` for readable :class:`FileType` objects " +"and :data:`sys.stdout` for writable :class:`FileType` objects::" msgstr "" "Los objetos *FileType* entienden el pseudo-argumento ``'-'`` y lo convierten " "automáticamente en ``sys.stdin`` para objetos de lectura :class:`FileType` y " "``sys.stdout`` para objetos de escritura :class:`FileType`::" -#: ../Doc/library/argparse.rst:1925 +#: ../Doc/library/argparse.rst:1939 msgid "The *encodings* and *errors* keyword arguments." msgstr "Los argumentos de palabra clave *encodings* y *errors*." -#: ../Doc/library/argparse.rst:1930 +#: ../Doc/library/argparse.rst:1944 msgid "Argument groups" msgstr "Grupos de argumentos" -#: ../Doc/library/argparse.rst:1934 +#: ../Doc/library/argparse.rst:1948 +#, fuzzy msgid "" "By default, :class:`ArgumentParser` groups command-line arguments into " -"\"positional arguments\" and \"optional arguments\" when displaying help " -"messages. When there is a better conceptual grouping of arguments than this " -"default one, appropriate groups can be created using the :meth:" -"`add_argument_group` method::" +"\"positional arguments\" and \"options\" when displaying help messages. When " +"there is a better conceptual grouping of arguments than this default one, " +"appropriate groups can be created using the :meth:`add_argument_group` " +"method::" msgstr "" "Por defecto, :class:`ArgumentParser` agrupa los argumentos de la línea de " "comandos en \"argumentos de posición\" y \"argumentos opcionales\" al " @@ -2342,7 +2381,7 @@ msgstr "" "argumentos que esta predeterminada, se pueden crear grupos apropiados usando " "el método :meth:`add_argument_group`::" -#: ../Doc/library/argparse.rst:1951 +#: ../Doc/library/argparse.rst:1965 msgid "" "The :meth:`add_argument_group` method returns an argument group object which " "has an :meth:`~ArgumentParser.add_argument` method just like a regular :" @@ -2360,7 +2399,7 @@ msgstr "" "`add_argument_group` acepta los argumentos *title* y *description* que " "pueden ser usados para personalizar esta presentación::" -#: ../Doc/library/argparse.rst:1977 +#: ../Doc/library/argparse.rst:1991 msgid "" "Note that any arguments not in your user-defined groups will end up back in " "the usual \"positional arguments\" and \"optional arguments\" sections." @@ -2369,7 +2408,7 @@ msgstr "" "por el usuario terminará en las secciones habituales de \"argumentos de " "posición\" y \"argumentos opcionales\"." -#: ../Doc/library/argparse.rst:1980 +#: ../Doc/library/argparse.rst:1994 msgid "" "Calling :meth:`add_argument_group` on an argument group is deprecated. This " "feature was never supported and does not always work correctly. The function " @@ -2381,11 +2420,11 @@ msgstr "" "La función existe en la API por accidente a través de la herencia y será " "eliminada en el futuro." -#: ../Doc/library/argparse.rst:1988 +#: ../Doc/library/argparse.rst:2002 msgid "Mutual exclusion" msgstr "Exclusión mutua" -#: ../Doc/library/argparse.rst:1992 +#: ../Doc/library/argparse.rst:2006 msgid "" "Create a mutually exclusive group. :mod:`argparse` will make sure that only " "one of the arguments in the mutually exclusive group was present on the " @@ -2395,7 +2434,7 @@ msgstr "" "sólo uno de los argumentos del grupo de exclusividad mutua esté presente en " "la línea de comandos::" -#: ../Doc/library/argparse.rst:2008 +#: ../Doc/library/argparse.rst:2022 msgid "" "The :meth:`add_mutually_exclusive_group` method also accepts a *required* " "argument, to indicate that at least one of the mutually exclusive arguments " @@ -2405,17 +2444,19 @@ msgstr "" "*required*, para indicar que se requiere al menos uno de los argumentos " "mutuamente exclusivos::" -#: ../Doc/library/argparse.rst:2020 +#: ../Doc/library/argparse.rst:2034 +#, fuzzy msgid "" "Note that currently mutually exclusive argument groups do not support the " "*title* and *description* arguments of :meth:`~ArgumentParser." -"add_argument_group`." +"add_argument_group`. However, a mutually exclusive group can be added to an " +"argument group that has a title and description. For example::" msgstr "" "Ten en cuenta que actualmente los grupos de argumentos mutuamente exclusivos " "no admiten los argumentos *title* y *description* de :meth:`~ArgumentParser." "add_argument_group`." -#: ../Doc/library/argparse.rst:2024 +#: ../Doc/library/argparse.rst:2057 msgid "" "Calling :meth:`add_argument_group` or :meth:`add_mutually_exclusive_group` " "on a mutually exclusive group is deprecated. These features were never " @@ -2427,11 +2468,11 @@ msgstr "" "fueron soportadas y no siempre funcionan correctamente. La función existe en " "la API por accidente a través de la herencia y será eliminada en el futuro." -#: ../Doc/library/argparse.rst:2032 +#: ../Doc/library/argparse.rst:2065 msgid "Parser defaults" msgstr "Valores por defecto del analizador" -#: ../Doc/library/argparse.rst:2036 +#: ../Doc/library/argparse.rst:2069 msgid "" "Most of the time, the attributes of the object returned by :meth:" "`parse_args` will be fully determined by inspecting the command-line " @@ -2445,14 +2486,14 @@ msgstr "" "permite que se añadan algunos atributos adicionales que se determinan sin " "ninguna inspección de la línea de comandos::" -#: ../Doc/library/argparse.rst:2048 +#: ../Doc/library/argparse.rst:2081 msgid "" "Note that parser-level defaults always override argument-level defaults::" msgstr "" "Ten en cuenta que los valores por defecto a nivel analizador siempre " "prevalecen sobre los valores por defecto a nivel argumento::" -#: ../Doc/library/argparse.rst:2056 +#: ../Doc/library/argparse.rst:2089 msgid "" "Parser-level defaults can be particularly useful when working with multiple " "parsers. See the :meth:`~ArgumentParser.add_subparsers` method for an " @@ -2462,7 +2503,7 @@ msgstr "" "trabaja con varios analizadores. Consulta el método :meth:`~ArgumentParser." "add_subparsers` para ver un ejemplo de este tipo." -#: ../Doc/library/argparse.rst:2062 +#: ../Doc/library/argparse.rst:2095 msgid "" "Get the default value for a namespace attribute, as set by either :meth:" "`~ArgumentParser.add_argument` or by :meth:`~ArgumentParser.set_defaults`::" @@ -2471,11 +2512,11 @@ msgstr "" "(*namespace*), establecido ya sea por :meth:`~ArgumentParser.add_argument` o " "por :meth:`~ArgumentParser.set_defaults`::" -#: ../Doc/library/argparse.rst:2073 +#: ../Doc/library/argparse.rst:2106 msgid "Printing help" msgstr "Mostrando la ayuda" -#: ../Doc/library/argparse.rst:2075 +#: ../Doc/library/argparse.rst:2108 msgid "" "In most typical applications, :meth:`~ArgumentParser.parse_args` will take " "care of formatting and printing any usage or error messages. However, " @@ -2485,7 +2526,7 @@ msgstr "" "parse_args` se encargará de dar formato y mostrar cualquier mensaje de uso o " "de error. Sin embargo, hay varios métodos para dar formato disponibles:" -#: ../Doc/library/argparse.rst:2081 +#: ../Doc/library/argparse.rst:2114 msgid "" "Print a brief description of how the :class:`ArgumentParser` should be " "invoked on the command line. If *file* is ``None``, :data:`sys.stdout` is " @@ -2495,7 +2536,7 @@ msgstr "" "`ArgumentParser` en la línea de comandos. Si *file* es ``None``, se asume :" "data:`sys.stdout`." -#: ../Doc/library/argparse.rst:2087 +#: ../Doc/library/argparse.rst:2120 msgid "" "Print a help message, including the program usage and information about the " "arguments registered with the :class:`ArgumentParser`. If *file* is " @@ -2505,7 +2546,7 @@ msgstr "" "sobre los argumentos registrados en el :class:`ArgumentParser`. Si *file* es " "``None``, se asume :data:`sys.stdout`." -#: ../Doc/library/argparse.rst:2091 +#: ../Doc/library/argparse.rst:2124 msgid "" "There are also variants of these methods that simply return a string instead " "of printing it:" @@ -2513,7 +2554,7 @@ msgstr "" "También hay variantes de estos métodos que simplemente retornan una cadena " "de caracteres en lugar de mostrarla:" -#: ../Doc/library/argparse.rst:2096 +#: ../Doc/library/argparse.rst:2129 msgid "" "Return a string containing a brief description of how the :class:" "`ArgumentParser` should be invoked on the command line." @@ -2521,7 +2562,7 @@ msgstr "" "Retorna una cadena de caracteres que contiene una breve descripción de cómo " "se debe invocar el :class:`ArgumentParser` en la línea de comandos." -#: ../Doc/library/argparse.rst:2101 +#: ../Doc/library/argparse.rst:2134 msgid "" "Return a string containing a help message, including the program usage and " "information about the arguments registered with the :class:`ArgumentParser`." @@ -2530,11 +2571,11 @@ msgstr "" "incluyendo el uso del programa e información sobre los argumentos " "registrados en el :class:`ArgumentParser`." -#: ../Doc/library/argparse.rst:2106 +#: ../Doc/library/argparse.rst:2139 msgid "Partial parsing" msgstr "Análisis parcial" -#: ../Doc/library/argparse.rst:2110 +#: ../Doc/library/argparse.rst:2143 msgid "" "Sometimes a script may only parse a few of the command-line arguments, " "passing the remaining arguments on to another script or program. In these " @@ -2553,23 +2594,24 @@ msgstr "" "elementos que contiene el espacio de nombres ocupado y la lista de " "argumentos de cadena de caracteres restantes." -#: ../Doc/library/argparse.rst:2126 +#: ../Doc/library/argparse.rst:2159 +#, fuzzy msgid "" ":ref:`Prefix matching ` rules apply to :meth:" -"`parse_known_args`. The parser may consume an option even if it's just a " -"prefix of one of its known options, instead of leaving it in the remaining " -"arguments list." +"`~ArgumentParser.parse_known_args`. The parser may consume an option even if " +"it's just a prefix of one of its known options, instead of leaving it in the " +"remaining arguments list." msgstr "" ":ref:`Coincidencia de prefijos ` las reglas se aplican a :" "meth:`parse_known_args`. El analizador puede consumir una opción aunque sea " "sólo un prefijo de una de sus opciones conocidas, en lugar de dejarla en la " "lista de argumentos restantes." -#: ../Doc/library/argparse.rst:2133 +#: ../Doc/library/argparse.rst:2166 msgid "Customizing file parsing" msgstr "Personalizando el análisis de archivos" -#: ../Doc/library/argparse.rst:2137 +#: ../Doc/library/argparse.rst:2170 msgid "" "Arguments that are read from a file (see the *fromfile_prefix_chars* keyword " "argument to the :class:`ArgumentParser` constructor) are read one argument " @@ -2581,7 +2623,7 @@ msgstr "" "uno por línea. :meth:`convert_arg_line_to_args` puede ser invalidado para " "una lectura más elegante." -#: ../Doc/library/argparse.rst:2142 +#: ../Doc/library/argparse.rst:2175 msgid "" "This method takes a single argument *arg_line* which is a string read from " "the argument file. It returns a list of arguments parsed from this string. " @@ -2592,7 +2634,7 @@ msgstr "" "argumentos analizados a partir de esta cadena de caracteres. El método se " "llama una vez por línea leída del fichero de argumentos, en orden." -#: ../Doc/library/argparse.rst:2146 +#: ../Doc/library/argparse.rst:2179 msgid "" "A useful override of this method is one that treats each space-separated " "word as an argument. The following example demonstrates how to do this::" @@ -2601,11 +2643,11 @@ msgstr "" "por un espacio como un argumento. El siguiente ejemplo demuestra cómo " "hacerlo::" -#: ../Doc/library/argparse.rst:2155 +#: ../Doc/library/argparse.rst:2188 msgid "Exiting methods" msgstr "Métodos de salida" -#: ../Doc/library/argparse.rst:2159 +#: ../Doc/library/argparse.rst:2192 msgid "" "This method terminates the program, exiting with the specified *status* and, " "if given, it prints a *message* before that. The user can override this " @@ -2615,7 +2657,7 @@ msgstr "" "si corresponde, muestra un *message* antes de eso. El usuario puede anular " "este método para manejar estos pasos de manera diferente::" -#: ../Doc/library/argparse.rst:2171 +#: ../Doc/library/argparse.rst:2204 msgid "" "This method prints a usage message including the *message* to the standard " "error and terminates the program with a status code of 2." @@ -2623,11 +2665,11 @@ msgstr "" "Este método imprime un mensaje de uso incluyendo el *message* para error " "estándar y finaliza el programa con código de estado 2." -#: ../Doc/library/argparse.rst:2176 +#: ../Doc/library/argparse.rst:2209 msgid "Intermixed parsing" msgstr "Análisis entremezclado" -#: ../Doc/library/argparse.rst:2181 +#: ../Doc/library/argparse.rst:2214 msgid "" "A number of Unix commands allow the user to intermix optional arguments with " "positional arguments. The :meth:`~ArgumentParser.parse_intermixed_args` " @@ -2639,12 +2681,13 @@ msgstr "" "parse_intermixed_args` y :meth:`~ArgumentParser.parse_known_intermixed_args` " "soportan este modo de análisis." -#: ../Doc/library/argparse.rst:2186 +#: ../Doc/library/argparse.rst:2219 +#, fuzzy msgid "" "These parsers do not support all the argparse features, and will raise " -"exceptions if unsupported features are used. In particular, subparsers, " -"``argparse.REMAINDER``, and mutually exclusive groups that include both " -"optionals and positionals are not supported." +"exceptions if unsupported features are used. In particular, subparsers, and " +"mutually exclusive groups that include both optionals and positionals are " +"not supported." msgstr "" "Estos analizadores no soportan todas las capacidades de *argparse*, y " "generarán excepciones si se utilizan capacidades no soportadas. En " @@ -2652,7 +2695,7 @@ msgstr "" "grupos mutuamente exclusivos que incluyen tanto opcionales como de posición " "no están soportados." -#: ../Doc/library/argparse.rst:2191 +#: ../Doc/library/argparse.rst:2224 msgid "" "The following example shows the difference between :meth:`~ArgumentParser." "parse_known_args` and :meth:`~ArgumentParser.parse_intermixed_args`: the " @@ -2664,7 +2707,7 @@ msgstr "" "primero retorna ``['2', '3']`` como argumentos sin procesar, mientras que el " "segundo recoge todos los de posición en ``rest``. ::" -#: ../Doc/library/argparse.rst:2206 +#: ../Doc/library/argparse.rst:2239 msgid "" ":meth:`~ArgumentParser.parse_known_intermixed_args` returns a two item tuple " "containing the populated namespace and the list of remaining argument " @@ -2677,11 +2720,11 @@ msgstr "" "parse_intermixed_args` arroja un error si quedan argumentos de cadenas de " "caracteres sin procesar." -#: ../Doc/library/argparse.rst:2216 +#: ../Doc/library/argparse.rst:2249 msgid "Upgrading optparse code" msgstr "Actualizar el código de *optparse*" -#: ../Doc/library/argparse.rst:2218 +#: ../Doc/library/argparse.rst:2251 msgid "" "Originally, the :mod:`argparse` module had attempted to maintain " "compatibility with :mod:`optparse`. However, :mod:`optparse` was difficult " @@ -2699,7 +2742,7 @@ msgstr "" "copiado y pegado o *monkey-patched*, ya no parecía práctico tratar de " "mantener la retro-compatibilidad." -#: ../Doc/library/argparse.rst:2225 +#: ../Doc/library/argparse.rst:2258 msgid "" "The :mod:`argparse` module improves on the standard library :mod:`optparse` " "module in a number of ways including:" @@ -2707,38 +2750,38 @@ msgstr "" "El módulo :mod:`argparse` mejora la biblioteca estándar del módulo :mod:" "`optparse` de varias maneras, incluyendo:" -#: ../Doc/library/argparse.rst:2228 +#: ../Doc/library/argparse.rst:2261 msgid "Handling positional arguments." msgstr "Manejando argumentos de posición." -#: ../Doc/library/argparse.rst:2229 +#: ../Doc/library/argparse.rst:2262 msgid "Supporting sub-commands." msgstr "Soportando sub-comandos." -#: ../Doc/library/argparse.rst:2230 +#: ../Doc/library/argparse.rst:2263 msgid "Allowing alternative option prefixes like ``+`` and ``/``." msgstr "Permitiendo prefijos de opción alternativos como ``+`` y ``/``." -#: ../Doc/library/argparse.rst:2231 +#: ../Doc/library/argparse.rst:2264 msgid "Handling zero-or-more and one-or-more style arguments." msgstr "Manejando argumentos de estilo cero o más y uno o más." -#: ../Doc/library/argparse.rst:2232 +#: ../Doc/library/argparse.rst:2265 msgid "Producing more informative usage messages." msgstr "Generando mensajes de uso más informativos." -#: ../Doc/library/argparse.rst:2233 +#: ../Doc/library/argparse.rst:2266 msgid "Providing a much simpler interface for custom ``type`` and ``action``." msgstr "" "Proporcionando una interfaz mucho más simple para ``type`` y ``action`` " "personalizadas." -#: ../Doc/library/argparse.rst:2235 +#: ../Doc/library/argparse.rst:2268 msgid "A partial upgrade path from :mod:`optparse` to :mod:`argparse`:" msgstr "" "Una manera de actualizar parcialmente de :mod:`optparse` a :mod:`argparse`:" -#: ../Doc/library/argparse.rst:2237 +#: ../Doc/library/argparse.rst:2270 msgid "" "Replace all :meth:`optparse.OptionParser.add_option` calls with :meth:" "`ArgumentParser.add_argument` calls." @@ -2746,7 +2789,7 @@ msgstr "" "Reemplaza todas las llamadas :meth:`optparse.OptionParser.add_option` con " "llamadas :meth:`ArgumentParser.add_argument`." -#: ../Doc/library/argparse.rst:2240 +#: ../Doc/library/argparse.rst:2273 msgid "" "Replace ``(options, args) = parser.parse_args()`` with ``args = parser." "parse_args()`` and add additional :meth:`ArgumentParser.add_argument` calls " @@ -2759,7 +2802,7 @@ msgstr "" "antes se llamaba ``options``, ahora en el contexto :mod:`argparse` se llama " "``args``." -#: ../Doc/library/argparse.rst:2245 +#: ../Doc/library/argparse.rst:2278 msgid "" "Replace :meth:`optparse.OptionParser.disable_interspersed_args` by using :" "meth:`~ArgumentParser.parse_intermixed_args` instead of :meth:" @@ -2769,7 +2812,7 @@ msgstr "" "`~ArgumentParser.parse_intermixed_args` en lugar de :meth:`~ArgumentParser." "parse_args`." -#: ../Doc/library/argparse.rst:2249 +#: ../Doc/library/argparse.rst:2282 msgid "" "Replace callback actions and the ``callback_*`` keyword arguments with " "``type`` or ``action`` arguments." @@ -2777,7 +2820,7 @@ msgstr "" "Reemplaza las acciones de respuesta y los argumentos de palabra clave " "``callback_*`` con argumentos de ``type`` o ``action``." -#: ../Doc/library/argparse.rst:2252 +#: ../Doc/library/argparse.rst:2285 msgid "" "Replace string names for ``type`` keyword arguments with the corresponding " "type objects (e.g. int, float, complex, etc)." @@ -2786,7 +2829,7 @@ msgstr "" "clave ``type`` con los correspondientes objetos tipo (por ejemplo, *int*, " "*float*, *complex*, etc)." -#: ../Doc/library/argparse.rst:2255 +#: ../Doc/library/argparse.rst:2288 msgid "" "Replace :class:`optparse.Values` with :class:`Namespace` and :exc:`optparse." "OptionError` and :exc:`optparse.OptionValueError` with :exc:`ArgumentError`." @@ -2794,7 +2837,7 @@ msgstr "" "Reemplaza :class:`optparse.Values` por :class:`Namespace` y :exc:`optparse." "OptionError` y :exc:`optparse.OptionValueError` por :exc:`ArgumentError`." -#: ../Doc/library/argparse.rst:2259 +#: ../Doc/library/argparse.rst:2292 #, python-format msgid "" "Replace strings with implicit arguments such as ``%default`` or ``%prog`` " @@ -2806,7 +2849,7 @@ msgstr "" "diccionarios para dar formato a cadenas de caracteres, es decir, " "``%(default)s`` y ``%(prog)s``." -#: ../Doc/library/argparse.rst:2263 +#: ../Doc/library/argparse.rst:2296 msgid "" "Replace the OptionParser constructor ``version`` argument with a call to " "``parser.add_argument('--version', action='version', version='\n" "Language: es_ES\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/array.rst:2 msgid ":mod:`array` --- Efficient arrays of numeric values" @@ -212,29 +212,39 @@ msgstr "Puede ser de 16 bits o 32 bits según la plataforma." #: ../Doc/library/array.rst:53 #, fuzzy msgid "" -"``array('u')`` now uses ``wchar_t`` as C type instead of deprecated " +"``array('u')`` now uses :c:type:`wchar_t` as C type instead of deprecated " "``Py_UNICODE``. This change doesn't affect its behavior because " -"``Py_UNICODE`` is alias of ``wchar_t`` since Python 3.3." +"``Py_UNICODE`` is alias of :c:type:`wchar_t` since Python 3.3." msgstr "" "``array('u')`` ahora usa ``wchar_t`` como tipo C en lugar de ``Py_UNICODE`` " "obsoleto. Este cambio no afecta su comportamiento porque ``Py_UNICODE`` es " "el alias de ``wchar_t`` desde Python 3.3." #: ../Doc/library/array.rst:61 +#, fuzzy msgid "" "The actual representation of values is determined by the machine " "architecture (strictly speaking, by the C implementation). The actual size " -"can be accessed through the :attr:`itemsize` attribute." +"can be accessed through the :attr:`array.itemsize` attribute." msgstr "" "La representación real de los valores viene determinada por la arquitectura " "de la maquina (estrictamente hablando, por la implementación de C). El " "tamaño actual se puede obtener mediante el atributo :attr:`itemsize`." #: ../Doc/library/array.rst:65 -msgid "The module defines the following type:" +#, fuzzy +msgid "The module defines the following item:" msgstr "El módulo define los siguientes tipos:" #: ../Doc/library/array.rst:70 +msgid "A string with all available type codes." +msgstr "Una cadena de caracteres con todos los códigos de tipos disponible." + +#: ../Doc/library/array.rst:73 +msgid "The module defines the following type:" +msgstr "El módulo define los siguientes tipos:" + +#: ../Doc/library/array.rst:78 msgid "" "A new array whose items are restricted by *typecode*, and initialized from " "the optional *initializer* value, which must be a list, a :term:`bytes-like " @@ -245,7 +255,7 @@ msgstr "" "lista, un :term:`bytes-like object`, o un iterable sobre los elementos del " "tipo apropiado." -#: ../Doc/library/array.rst:75 +#: ../Doc/library/array.rst:83 msgid "" "If given a list or string, the initializer is passed to the new array's :" "meth:`fromlist`, :meth:`frombytes`, or :meth:`fromunicode` method (see " @@ -257,19 +267,7 @@ msgstr "" "(ver abajo) para añadir nuevos elementos al arreglo. De forma contraria, el " "iterable inicializador se pasa al método :meth:`extend`." -#: ../Doc/library/array.rst:80 -msgid "" -"Raises an :ref:`auditing event ` ``array.__new__`` with arguments " -"``typecode``, ``initializer``." -msgstr "" -"Lanza un :ref:`evento de auditoría ` ``array.__new__`` con " -"argumentos ``typecode``, ``initializer``." - -#: ../Doc/library/array.rst:84 -msgid "A string with all available type codes." -msgstr "Una cadena de caracteres con todos los códigos de tipos disponible." - -#: ../Doc/library/array.rst:86 +#: ../Doc/library/array.rst:88 msgid "" "Array objects support the ordinary sequence operations of indexing, slicing, " "concatenation, and multiplication. When using slice assignment, the " @@ -286,31 +284,36 @@ msgstr "" "cualquier momento cuando los objetos :term:`bytes-like objects ` son soportados." -#: ../Doc/library/array.rst:92 -msgid "The following data items and methods are also supported:" -msgstr "Los siguientes tipos de datos y métodos también son soportados:" +#: ../Doc/library/array.rst:94 +msgid "" +"Raises an :ref:`auditing event ` ``array.__new__`` with arguments " +"``typecode``, ``initializer``." +msgstr "" +"Lanza un :ref:`evento de auditoría ` ``array.__new__`` con " +"argumentos ``typecode``, ``initializer``." -#: ../Doc/library/array.rst:96 +#: ../Doc/library/array.rst:99 msgid "The typecode character used to create the array." msgstr "El carácter typecode utilizado para crear el arreglo." -#: ../Doc/library/array.rst:101 +#: ../Doc/library/array.rst:104 msgid "The length in bytes of one array item in the internal representation." msgstr "" "La longitud en bytes de un elemento del arreglo en su representación interna." -#: ../Doc/library/array.rst:106 +#: ../Doc/library/array.rst:109 msgid "Append a new item with value *x* to the end of the array." msgstr "Añade un nuevo elemento con valor *x* al final del arreglo." -#: ../Doc/library/array.rst:111 +#: ../Doc/library/array.rst:114 +#, fuzzy msgid "" "Return a tuple ``(address, length)`` giving the current memory address and " "the length in elements of the buffer used to hold array's contents. The " "size of the memory buffer in bytes can be computed as ``array.buffer_info()" "[1] * array.itemsize``. This is occasionally useful when working with low-" "level (and inherently unsafe) I/O interfaces that require memory addresses, " -"such as certain :c:func:`ioctl` operations. The returned numbers are valid " +"such as certain :c:func:`!ioctl` operations. The returned numbers are valid " "as long as the array exists and no length-changing operations are applied to " "it." msgstr "" @@ -323,7 +326,7 @@ msgstr "" "ciertas operaciones :c:func:`ioctl`. Los números retornados son válidos " "mientras el arreglo exista y no se cambie la longitud del mismo." -#: ../Doc/library/array.rst:121 +#: ../Doc/library/array.rst:124 msgid "" "When using array objects from code written in C or C++ (the only way to " "effectively make use of this information), it makes more sense to use the " @@ -338,7 +341,7 @@ msgstr "" "nuevo código. Las interfaces de buffer son documentadas en :ref:" "`bufferobjects`." -#: ../Doc/library/array.rst:130 +#: ../Doc/library/array.rst:133 msgid "" "\"Byteswap\" all items of the array. This is only supported for values " "which are 1, 2, 4, or 8 bytes in size; for other types of values, :exc:" @@ -350,11 +353,11 @@ msgstr "" "`RuntimeError`. Es útil cuando leemos información de un fichero en una " "máquina con diferente orden de bytes." -#: ../Doc/library/array.rst:138 +#: ../Doc/library/array.rst:141 msgid "Return the number of occurrences of *x* in the array." msgstr "Retorna el número de ocurrencias de *x* en el arreglo." -#: ../Doc/library/array.rst:143 +#: ../Doc/library/array.rst:146 msgid "" "Append items from *iterable* to the end of the array. If *iterable* is " "another array, it must have *exactly* the same type code; if not, :exc:" @@ -367,7 +370,7 @@ msgstr "" "un iterable y sus elementos deben ser del tipo correcto para ser añadidos al " "arreglo." -#: ../Doc/library/array.rst:151 +#: ../Doc/library/array.rst:154 msgid "" "Appends items from the string, interpreting the string as an array of " "machine values (as if it had been read from a file using the :meth:" @@ -377,11 +380,12 @@ msgstr "" "como un arreglo de valores máquina (como si se leyera de un fichero " "utilizando el método :meth:`fromfile`)." -#: ../Doc/library/array.rst:154 -msgid ":meth:`fromstring` is renamed to :meth:`frombytes` for clarity." +#: ../Doc/library/array.rst:157 +#, fuzzy +msgid ":meth:`!fromstring` is renamed to :meth:`frombytes` for clarity." msgstr ":meth:`fromstring` se renombra como :meth:`frombytes` por claridad." -#: ../Doc/library/array.rst:160 +#: ../Doc/library/array.rst:163 msgid "" "Read *n* items (as machine values) from the :term:`file object` *f* and " "append them to the end of the array. If less than *n* items are available, :" @@ -393,7 +397,7 @@ msgstr "" "se lanza :exc:`EOFError`, pero los elementos que estaban disponibles todavía " "se insertan en el arreglo." -#: ../Doc/library/array.rst:168 +#: ../Doc/library/array.rst:171 msgid "" "Append items from the list. This is equivalent to ``for x in list: a." "append(x)`` except that if there is a type error, the array is unchanged." @@ -401,7 +405,7 @@ msgstr "" "Añade los elementos de la lista. Es equivalente a ``for x in list: a." "append(x)`` excepto que si hay un error de tipo, el arreglo no se modifica." -#: ../Doc/library/array.rst:174 +#: ../Doc/library/array.rst:177 msgid "" "Extends this array with data from the given unicode string. The array must " "be a type ``'u'`` array; otherwise a :exc:`ValueError` is raised. Use " @@ -413,7 +417,7 @@ msgstr "" "`ValueError`. Utiliza ``array.frombytes(unicodestring.encode(enc))`` para " "añadir datos Unicode a un arreglo de algún otro tipo." -#: ../Doc/library/array.rst:182 +#: ../Doc/library/array.rst:185 msgid "" "Return the smallest *i* such that *i* is the index of the first occurrence " "of *x* in the array. The optional arguments *start* and *stop* can be " @@ -425,11 +429,11 @@ msgstr "" "pueden ser especificados para buscar *x* dentro de una subsección del " "arreglo. Lanza :exc:`ValueError` si no se encuentra *x*." -#: ../Doc/library/array.rst:187 +#: ../Doc/library/array.rst:190 msgid "Added optional *start* and *stop* parameters." msgstr "Se agregaron parámetros opcionales *start* y *stop*." -#: ../Doc/library/array.rst:192 +#: ../Doc/library/array.rst:196 msgid "" "Insert a new item with value *x* in the array before position *i*. Negative " "values are treated as being relative to the end of the array." @@ -438,7 +442,7 @@ msgstr "" "*i*. Si hay valores negativos son tratados como relativos a la posición " "final del arreglo." -#: ../Doc/library/array.rst:198 +#: ../Doc/library/array.rst:202 msgid "" "Removes the item with the index *i* from the array and returns it. The " "optional argument defaults to ``-1``, so that by default the last item is " @@ -448,15 +452,15 @@ msgstr "" "opcional por defecto es ``-1``, en caso de utilizar el argumento por defecto " "el ultimo elemento es eliminado y retornado." -#: ../Doc/library/array.rst:205 +#: ../Doc/library/array.rst:209 msgid "Remove the first occurrence of *x* from the array." msgstr "Elimina la primera ocurrencia de *x* del arreglo." -#: ../Doc/library/array.rst:210 +#: ../Doc/library/array.rst:214 msgid "Reverse the order of the items in the array." msgstr "Invierte el orden de los elementos en el arreglo." -#: ../Doc/library/array.rst:215 +#: ../Doc/library/array.rst:219 msgid "" "Convert the array to an array of machine values and return the bytes " "representation (the same sequence of bytes that would be written to a file " @@ -466,21 +470,22 @@ msgstr "" "representación en formato de bytes (la misma secuencia de bytes que se deben " "escribir en un fichero por el método :meth:`tofile`.)" -#: ../Doc/library/array.rst:219 -msgid ":meth:`tostring` is renamed to :meth:`tobytes` for clarity." +#: ../Doc/library/array.rst:223 +#, fuzzy +msgid ":meth:`!tostring` is renamed to :meth:`tobytes` for clarity." msgstr ":meth:`tostring` se renombra como :meth:`tobytes` para claridad." -#: ../Doc/library/array.rst:225 +#: ../Doc/library/array.rst:229 msgid "Write all items (as machine values) to the :term:`file object` *f*." msgstr "" "Escribe todos los elementos (incluido elementos máquina) a el :term:`file " "object` *f*." -#: ../Doc/library/array.rst:230 +#: ../Doc/library/array.rst:234 msgid "Convert the array to an ordinary list with the same items." msgstr "Convierte el arreglo a una lista ordinaria con los mismos elementos." -#: ../Doc/library/array.rst:235 +#: ../Doc/library/array.rst:239 msgid "" "Convert the array to a unicode string. The array must be a type ``'u'`` " "array; otherwise a :exc:`ValueError` is raised. Use ``array.tobytes()." @@ -491,7 +496,7 @@ msgstr "" "``array.tobytes().decode(enc)`` para obtener una cadena de texto unicode de " "un arreglo de algún otro tipo." -#: ../Doc/library/array.rst:240 +#: ../Doc/library/array.rst:244 msgid "" "When an array object is printed or converted to a string, it is represented " "as ``array(typecode, initializer)``. The *initializer* is omitted if the " @@ -510,19 +515,19 @@ msgstr "" "clase :class:`~array.array` ha sido importada utilizando ``from array import " "array``. Ejemplos::" -#: ../Doc/library/array.rst:257 +#: ../Doc/library/array.rst:261 msgid "Module :mod:`struct`" msgstr "Módulo :mod:`struct`" -#: ../Doc/library/array.rst:257 +#: ../Doc/library/array.rst:261 msgid "Packing and unpacking of heterogeneous binary data." msgstr "Empaquetado y desempaquetado de datos binarios heterogéneos." -#: ../Doc/library/array.rst:261 +#: ../Doc/library/array.rst:265 msgid "Module :mod:`xdrlib`" msgstr "Módulo :mod:`xdrlib`" -#: ../Doc/library/array.rst:260 +#: ../Doc/library/array.rst:264 msgid "" "Packing and unpacking of External Data Representation (XDR) data as used in " "some remote procedure call systems." @@ -531,10 +536,17 @@ msgstr "" "(XDR) como los utilizados en algunos sistemas de llamadas de procedimientos " "remotos." -#: ../Doc/library/array.rst:263 +#: ../Doc/library/array.rst:267 msgid "`NumPy `_" msgstr "`NumPy `_" -#: ../Doc/library/array.rst:264 +#: ../Doc/library/array.rst:268 msgid "The NumPy package defines another array type." msgstr "El paquete NumPy define otro tipo de arreglo." + +#: ../Doc/library/array.rst:7 +msgid "arrays" +msgstr "" + +#~ msgid "The following data items and methods are also supported:" +#~ msgstr "Los siguientes tipos de datos y métodos también son soportados:" diff --git a/library/ast.po b/library/ast.po index 0b06c76f06..d92d77051d 100644 --- a/library/ast.po +++ b/library/ast.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-30 22:11-0300\n" "Last-Translator: Marco Richetta \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.1.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/ast.rst:2 msgid ":mod:`ast` --- Abstract Syntax Trees" @@ -245,11 +244,73 @@ msgstr "" "adaptadas inicialmente del fantástico proyecto `Green Tree Snakes `__ y todos sus contribuidores." -#: ../Doc/library/ast.rst:150 +#: ../Doc/library/ast.rst:153 +msgid "Root nodes" +msgstr "" + +#: ../Doc/library/ast.rst:157 +msgid "" +"A Python module, as with :ref:`file input `. Node type generated " +"by :func:`ast.parse` in the default ``\"exec\"`` *mode*." +msgstr "" + +#: ../Doc/library/ast.rst:160 +msgid "*body* is a :class:`list` of the module's :ref:`ast-statements`." +msgstr "" + +#: ../Doc/library/ast.rst:162 +msgid "" +"*type_ignores* is a :class:`list` of the module's type ignore comments; see :" +"func:`ast.parse` for more details." +msgstr "" + +#: ../Doc/library/ast.rst:179 +msgid "" +"A single Python :ref:`expression input `. Node type " +"generated by :func:`ast.parse` when *mode* is ``\"eval\"``." +msgstr "" + +#: ../Doc/library/ast.rst:182 +msgid "" +"*body* is a single node, one of the :ref:`expression types `." +msgstr "" + +#: ../Doc/library/ast.rst:194 +msgid "" +"A single :ref:`interactive input `, like in :ref:`tut-interac`. " +"Node type generated by :func:`ast.parse` when *mode* is ``\"single\"``." +msgstr "" + +#: ../Doc/library/ast.rst:197 +msgid "*body* is a :class:`list` of :ref:`statement nodes `." +msgstr "" + +#: ../Doc/library/ast.rst:216 +msgid "" +"A representation of an old-style type comments for functions, as Python " +"versions prior to 3.5 didn't support :pep:`484` annotations. Node type " +"generated by :func:`ast.parse` when *mode* is ``\"func_type\"``." +msgstr "" + +#: ../Doc/library/ast.rst:220 +msgid "Such type comments would look like this::" +msgstr "" + +#: ../Doc/library/ast.rst:226 +msgid "" +"*argtypes* is a :class:`list` of :ref:`expression nodes `." +msgstr "" + +#: ../Doc/library/ast.rst:228 +msgid "*returns* is a single :ref:`expression node `." +msgstr "" + +#: ../Doc/library/ast.rst:246 msgid "Literals" msgstr "Literales" -#: ../Doc/library/ast.rst:154 +#: ../Doc/library/ast.rst:250 msgid "" "A constant value. The ``value`` attribute of the ``Constant`` literal " "contains the Python object it represents. The values represented can be " @@ -263,7 +324,7 @@ msgstr "" "pero también pueden ser de tipos de contenedores inmutables (tuplas y " "``frozensets``) si todos sus elementos son constantes." -#: ../Doc/library/ast.rst:168 +#: ../Doc/library/ast.rst:264 msgid "" "Node representing a single formatting field in an f-string. If the string " "contains a single formatting field and nothing else the node can be isolated " @@ -273,7 +334,7 @@ msgstr "" "cadena de caracteres contiene un único campo de formato y nada más, el nodo " "puede estar aislado de otra manera aparece en :class:`JoinedStr`." -#: ../Doc/library/ast.rst:172 +#: ../Doc/library/ast.rst:268 msgid "" "``value`` is any expression node (such as a literal, a variable, or a " "function call)." @@ -281,27 +342,27 @@ msgstr "" "``value`` es cualquier nodo de expresión (como un literal, una variable o " "una llamada a función)." -#: ../Doc/library/ast.rst:174 +#: ../Doc/library/ast.rst:270 msgid "``conversion`` is an integer:" msgstr "``conversion`` es un entero:" -#: ../Doc/library/ast.rst:176 +#: ../Doc/library/ast.rst:272 msgid "-1: no formatting" msgstr "-1: sin formato" -#: ../Doc/library/ast.rst:177 +#: ../Doc/library/ast.rst:273 msgid "115: ``!s`` string formatting" msgstr "115: ``!s`` formato de cadena de caracteres" -#: ../Doc/library/ast.rst:178 +#: ../Doc/library/ast.rst:274 msgid "114: ``!r`` repr formatting" msgstr "114: ``!r`` formato repr" -#: ../Doc/library/ast.rst:179 +#: ../Doc/library/ast.rst:275 msgid "97: ``!a`` ascii formatting" msgstr "97: ``!a`` formato ascii" -#: ../Doc/library/ast.rst:181 +#: ../Doc/library/ast.rst:277 msgid "" "``format_spec`` is a :class:`JoinedStr` node representing the formatting of " "the value, or ``None`` if no format was specified. Both ``conversion`` and " @@ -311,7 +372,7 @@ msgstr "" "valor, o ``None`` si no se ha especificado un formato. Ambos, ``conversion`` " "y ``format_spec``, pueden estar especificados al mismo tiempo." -#: ../Doc/library/ast.rst:188 +#: ../Doc/library/ast.rst:284 msgid "" "An f-string, comprising a series of :class:`FormattedValue` and :class:" "`Constant` nodes." @@ -319,7 +380,7 @@ msgstr "" "Un f-string que comprende una serie de nodos :class:`FormattedValue` y :" "class:`Constant`." -#: ../Doc/library/ast.rst:217 +#: ../Doc/library/ast.rst:313 msgid "" "A list or tuple. ``elts`` holds a list of nodes representing the elements. " "``ctx`` is :class:`Store` if the container is an assignment target (i.e. " @@ -330,13 +391,13 @@ msgstr "" "asignación (por ejemplo ``(x,y)=something``), y :class:`Load` en cualquier " "otro caso." -#: ../Doc/library/ast.rst:243 +#: ../Doc/library/ast.rst:339 msgid "A set. ``elts`` holds a list of nodes representing the set's elements." msgstr "" "Un set. ``elts`` contiene una lista de nodos que representa a un set de " "elementos." -#: ../Doc/library/ast.rst:258 +#: ../Doc/library/ast.rst:354 msgid "" "A dictionary. ``keys`` and ``values`` hold lists of nodes representing the " "keys and the values respectively, in matching order (what would be returned " @@ -347,7 +408,7 @@ msgstr "" "correspondiente (el orden que retornaría :code:`dictionary.keys()` y :code:" "`dictionary.values()`)." -#: ../Doc/library/ast.rst:262 +#: ../Doc/library/ast.rst:358 msgid "" "When doing dictionary unpacking using dictionary literals the expression to " "be expanded goes in the ``values`` list, with a ``None`` at the " @@ -357,11 +418,11 @@ msgstr "" "la expresión a ser expandida va en la lista ``values``, con ``None`` en la " "posición correspondiente en ``keys``." -#: ../Doc/library/ast.rst:280 +#: ../Doc/library/ast.rst:376 msgid "Variables" msgstr "Variables" -#: ../Doc/library/ast.rst:284 +#: ../Doc/library/ast.rst:380 msgid "" "A variable name. ``id`` holds the name as a string, and ``ctx`` is one of " "the following types." @@ -369,7 +430,7 @@ msgstr "" "Un nombre de variable. ``id`` contiene el nombre de una cadena de caracteres " "y ``ctx`` es uno de los siguientes tipos." -#: ../Doc/library/ast.rst:292 +#: ../Doc/library/ast.rst:388 msgid "" "Variable references can be used to load the value of a variable, to assign a " "new value to it, or to delete it. Variable references are given a context to " @@ -379,7 +440,7 @@ msgstr "" "variable, asignar un nuevo valor o borrarlo. Las referencias a variables " "reciben un contexto para distinguir entre estos casos." -#: ../Doc/library/ast.rst:325 +#: ../Doc/library/ast.rst:421 msgid "" "A ``*var`` variable reference. ``value`` holds the variable, typically a :" "class:`Name` node. This type must be used when building a :class:`Call` node " @@ -389,11 +450,11 @@ msgstr "" "típicamente un nodo :class:`Name`. Este tipo puede ser usado cuando se " "construye un nodo :class:`Call` con ``*args``." -#: ../Doc/library/ast.rst:348 +#: ../Doc/library/ast.rst:446 msgid "Expressions" msgstr "Expresiones" -#: ../Doc/library/ast.rst:352 +#: ../Doc/library/ast.rst:450 msgid "" "When an expression, such as a function call, appears as a statement by " "itself with its return value not used or stored, it is wrapped in this " @@ -407,7 +468,7 @@ msgstr "" "esta sección, un nodo :class:`Constant`, :class:`Name`, :class:`Lambda`, :" "class:`Yield` o :class:`YieldFrom`." -#: ../Doc/library/ast.rst:371 +#: ../Doc/library/ast.rst:469 msgid "" "A unary operation. ``op`` is the operator, and ``operand`` any expression " "node." @@ -415,7 +476,7 @@ msgstr "" "Una operación unaria. ``op`` es el operador y ``operand`` es cualquier nodo " "de expresión." -#: ../Doc/library/ast.rst:380 +#: ../Doc/library/ast.rst:478 msgid "" "Unary operator tokens. :class:`Not` is the ``not`` keyword, :class:`Invert` " "is the ``~`` operator." @@ -423,7 +484,7 @@ msgstr "" "Tokens de operador unario. :class:`Not` es la palabra clave ``not``, :class:" "`Invert` es el operador ``~``." -#: ../Doc/library/ast.rst:394 +#: ../Doc/library/ast.rst:492 msgid "" "A binary operation (like addition or division). ``op`` is the operator, and " "``left`` and ``right`` are any expression nodes." @@ -431,11 +492,11 @@ msgstr "" "Una operación binaria (como la suma o división(. ``op`` es el operador, y " "``left`` y ``right`` son cualquier nodo de expresión." -#: ../Doc/library/ast.rst:421 +#: ../Doc/library/ast.rst:519 msgid "Binary operator tokens." msgstr "Tokens de operador binario." -#: ../Doc/library/ast.rst:426 +#: ../Doc/library/ast.rst:524 msgid "" "A boolean operation, 'or' or 'and'. ``op`` is :class:`Or` or :class:`And`. " "``values`` are the values involved. Consecutive operations with the same " @@ -446,15 +507,15 @@ msgstr "" "``values`` son los valores involucrados. Operaciones consecutivas con el " "mismo operador, como ``a or b or c``, colapsan en un nodo con varios valores." -#: ../Doc/library/ast.rst:431 +#: ../Doc/library/ast.rst:529 msgid "This doesn't include ``not``, which is a :class:`UnaryOp`." msgstr "Esto no incluye ``not``, el cual es un :class:`UnaryOp`." -#: ../Doc/library/ast.rst:447 +#: ../Doc/library/ast.rst:545 msgid "Boolean operator tokens." msgstr "Tokens de operador booleano." -#: ../Doc/library/ast.rst:452 +#: ../Doc/library/ast.rst:550 msgid "" "A comparison of two or more values. ``left`` is the first value in the " "comparison, ``ops`` the list of operators, and ``comparators`` the list of " @@ -464,11 +525,11 @@ msgstr "" "comparación, ``ops`` es la lista de operadores, y ``comparators`` es la " "lista de valores después de el primer elemento en la comparación." -#: ../Doc/library/ast.rst:481 +#: ../Doc/library/ast.rst:579 msgid "Comparison operator tokens." msgstr "Tokens de operador de comparación." -#: ../Doc/library/ast.rst:486 +#: ../Doc/library/ast.rst:584 msgid "" "A function call. ``func`` is the function, which will often be a :class:" "`Name` or :class:`Attribute` object. Of the arguments:" @@ -476,27 +537,29 @@ msgstr "" "Un llamado a función. ``func`` is la función, la cual suele ser un objeto :" "class:`Name` o :class:`Attribute`. De los argumentos:" -#: ../Doc/library/ast.rst:489 +#: ../Doc/library/ast.rst:587 msgid "``args`` holds a list of the arguments passed by position." msgstr "``args`` contiene una lista de argumentos pasados por posición." -#: ../Doc/library/ast.rst:490 +#: ../Doc/library/ast.rst:588 +#, fuzzy msgid "" -"``keywords`` holds a list of :class:`keyword` objects representing arguments " -"passed by keyword." +"``keywords`` holds a list of :class:`.keyword` objects representing " +"arguments passed by keyword." msgstr "" "``keywords`` contiene una lista de objetos :class:`keyword` que representan " "argumentos pasados por nombre clave." -#: ../Doc/library/ast.rst:493 +#: ../Doc/library/ast.rst:591 +#, fuzzy msgid "" "When creating a ``Call`` node, ``args`` and ``keywords`` are required, but " -"they can be empty lists. ``starargs`` and ``kwargs`` are optional." +"they can be empty lists." msgstr "" "Cuando se crea un nodo ``Call``, ``args`` y ``keywords`` son requeridos pero " "pueden ser listas vacías. ``starargs`` y ``kwargs`` son opcionales." -#: ../Doc/library/ast.rst:517 +#: ../Doc/library/ast.rst:615 msgid "" "A keyword argument to a function call or class definition. ``arg`` is a raw " "string of the parameter name, ``value`` is a node to pass in." @@ -505,7 +568,7 @@ msgstr "" "clase. ``arg`` es una cadena de caracteres sin formato del nombre del " "parámetro, ``valor`` es un nodo para pasar." -#: ../Doc/library/ast.rst:523 +#: ../Doc/library/ast.rst:621 msgid "" "An expression such as ``a if b else c``. Each field holds a single node, so " "in the following example, all three are :class:`Name` nodes." @@ -513,7 +576,7 @@ msgstr "" "Una expresión como ``a if b else c``. Cada campo contiene un único nodo, por " "lo que en el siguiente ejemplo, todos son nodos :class:`Name`." -#: ../Doc/library/ast.rst:538 +#: ../Doc/library/ast.rst:636 msgid "" "Attribute access, e.g. ``d.keys``. ``value`` is a node, typically a :class:" "`Name`. ``attr`` is a bare string giving the name of the attribute, and " @@ -525,7 +588,7 @@ msgstr "" "que da el nombre del atributo, y ``ctx`` es :class:`Load`, :class:`Store` o :" "class:`Del` de acuerdo a cómo se actúe sobre el atributo." -#: ../Doc/library/ast.rst:555 +#: ../Doc/library/ast.rst:653 msgid "" "A named expression. This AST node is produced by the assignment expressions " "operator (also known as the walrus operator). As opposed to the :class:" @@ -537,11 +600,11 @@ msgstr "" "diferencia del nodo :class:`Assign` en el cual el primer argumento puede ser " "varios nodos, en este caso ``target`` y ``value`` deben ser nodos únicos." -#: ../Doc/library/ast.rst:570 +#: ../Doc/library/ast.rst:669 msgid "Subscripting" msgstr "Subindexado" -#: ../Doc/library/ast.rst:574 +#: ../Doc/library/ast.rst:673 msgid "" "A subscript, such as ``l[1]``. ``value`` is the subscripted object (usually " "sequence or mapping). ``slice`` is an index, slice or key. It can be a :" @@ -554,7 +617,7 @@ msgstr "" "class:`Load`, :class:`Store` or :class:`Del` de acuerdo a la acción tomada " "con el subíndice." -#: ../Doc/library/ast.rst:598 +#: ../Doc/library/ast.rst:697 msgid "" "Regular slicing (on the form ``lower:upper`` or ``lower:upper:step``). Can " "occur only inside the *slice* field of :class:`Subscript`, either directly " @@ -564,11 +627,11 @@ msgstr "" "step``). Puede ocurrir solamente dentro del campo *slice* de :class:" "`Subscript`, ya sea directamente o como un elemento de :class:`Tuple`." -#: ../Doc/library/ast.rst:615 +#: ../Doc/library/ast.rst:714 msgid "Comprehensions" msgstr "Comprensiones" -#: ../Doc/library/ast.rst:622 +#: ../Doc/library/ast.rst:721 msgid "" "List and set comprehensions, generator expressions, and dictionary " "comprehensions. ``elt`` (or ``key`` and ``value``) is a single node " @@ -578,11 +641,11 @@ msgstr "" "por comprensión. ``elt`` (o ``key`` y ``value``) es un único nodo que " "representa la parte que va a ser evaluada por cada item." -#: ../Doc/library/ast.rst:626 +#: ../Doc/library/ast.rst:725 msgid "``generators`` is a list of :class:`comprehension` nodes." msgstr "``generators`` es una lista de nodos :class:`comprehension`." -#: ../Doc/library/ast.rst:668 +#: ../Doc/library/ast.rst:767 msgid "" "One ``for`` clause in a comprehension. ``target`` is the reference to use " "for each element - typically a :class:`Name` or :class:`Tuple` node. " @@ -594,7 +657,7 @@ msgstr "" "`Tuple`. ``iter`` es el objeto por el cual se itera. ``ifs`` es una lista de " "expresiones de prueba: cada cláusula ``for`` puede tener múltiples ``ifs``." -#: ../Doc/library/ast.rst:673 +#: ../Doc/library/ast.rst:772 msgid "" "``is_async`` indicates a comprehension is asynchronous (using an ``async " "for`` instead of ``for``). The value is an integer (0 or 1)." @@ -602,11 +665,11 @@ msgstr "" "``is_async`` indica que una compresión es asíncrona (usando ``async for`` en " "lugar de ``for``). El valor es un entero (0 o 1)." -#: ../Doc/library/ast.rst:739 +#: ../Doc/library/ast.rst:841 msgid "Statements" msgstr "Declaraciones" -#: ../Doc/library/ast.rst:743 +#: ../Doc/library/ast.rst:845 msgid "" "An assignment. ``targets`` is a list of nodes, and ``value`` is a single " "node." @@ -614,7 +677,7 @@ msgstr "" "Una asignación. ``targets`` es una lista de nodos, y ``value`` es un nodo " "único." -#: ../Doc/library/ast.rst:745 +#: ../Doc/library/ast.rst:847 msgid "" "Multiple nodes in ``targets`` represents assigning the same value to each. " "Unpacking is represented by putting a :class:`Tuple` or :class:`List` within " @@ -624,15 +687,15 @@ msgstr "" "El desempaquetado se representa poniendo una :class:`Tuple` o :class:`List` " "en ``targets``." -#: ../Doc/library/ast.rst:751 ../Doc/library/ast.rst:1038 -#: ../Doc/library/ast.rst:1242 ../Doc/library/ast.rst:1663 +#: ../Doc/library/ast.rst:853 ../Doc/library/ast.rst:1161 +#: ../Doc/library/ast.rst:1366 ../Doc/library/ast.rst:1891 msgid "" "``type_comment`` is an optional string with the type annotation as a comment." msgstr "" "``type_comment`` es una cadena de caracteres opcional con la anotación de " "tipos como comentario." -#: ../Doc/library/ast.rst:781 +#: ../Doc/library/ast.rst:883 msgid "" "An assignment with a type annotation. ``target`` is a single node and can be " "a :class:`Name`, a :class:`Attribute` or a :class:`Subscript`. " @@ -648,7 +711,7 @@ msgstr "" "es True para un nodo :class:`Name` en `target` que no aparece entre " "paréntesis y por ende son nombres puros y no expresiones." -#: ../Doc/library/ast.rst:836 +#: ../Doc/library/ast.rst:938 msgid "" "Augmented assignment, such as ``a += 1``. In the following example, " "``target`` is a :class:`Name` node for ``x`` (with the :class:`Store` " @@ -659,7 +722,7 @@ msgstr "" "un nodo :class:`Name` para ``x`` (con el contexto :class:`Store`), ``op`` " "es :class:`Add` y ``value`` es un :class:`Constant` con valor 1." -#: ../Doc/library/ast.rst:841 +#: ../Doc/library/ast.rst:943 msgid "" "The ``target`` attribute cannot be of class :class:`Tuple` or :class:`List`, " "unlike the targets of :class:`Assign`." @@ -667,7 +730,7 @@ msgstr "" "El atributo ``target`` no puede ser de clase :class:`Tuple` o :class:`List`, " "a diferencia de los objetivos de :class:`Assign`." -#: ../Doc/library/ast.rst:858 +#: ../Doc/library/ast.rst:960 msgid "" "A ``raise`` statement. ``exc`` is the exception object to be raised, " "normally a :class:`Call` or :class:`Name`, or ``None`` for a standalone " @@ -677,7 +740,7 @@ msgstr "" "normalmente un :class:`Call` or :class:`Name`, o ``None`` para un ``raise`` " "solo. ``cause`` es la parte opcional para ``y`` en ``raise x from y``." -#: ../Doc/library/ast.rst:875 +#: ../Doc/library/ast.rst:977 msgid "" "An assertion. ``test`` holds the condition, such as a :class:`Compare` node. " "``msg`` holds the failure message." @@ -685,7 +748,7 @@ msgstr "" "Una aserción. ``test`` contiene la condición, como un nodo :class:`Compare`. " "``msg`` contiene el mensaje de fallo." -#: ../Doc/library/ast.rst:891 +#: ../Doc/library/ast.rst:993 msgid "" "Represents a ``del`` statement. ``targets`` is a list of nodes, such as :" "class:`Name`, :class:`Attribute` or :class:`Subscript` nodes." @@ -693,11 +756,19 @@ msgstr "" "Contiene una declaración ``del``. ``targets`` es una lista de nodos, como " "nodos :class:`Name`, :class:`Attribute` o :class:`Subscript`." -#: ../Doc/library/ast.rst:909 +#: ../Doc/library/ast.rst:1011 msgid "A ``pass`` statement." msgstr "Una declaración ``pass``." -#: ../Doc/library/ast.rst:920 +#: ../Doc/library/ast.rst:1024 +msgid "" +"A :ref:`type alias ` created through the :keyword:`type` " +"statement. ``name`` is the name of the alias, ``type_params`` is a list of :" +"ref:`type parameters `, and ``value`` is the value of the " +"type alias." +msgstr "" + +#: ../Doc/library/ast.rst:1042 msgid "" "Other statements which are only applicable inside functions or loops are " "described in other sections." @@ -705,17 +776,17 @@ msgstr "" "Otras declaraciones que solo son aplicables dentro de funciones o bucles " "descritos en otras secciones." -#: ../Doc/library/ast.rst:924 +#: ../Doc/library/ast.rst:1046 msgid "Imports" msgstr "Importaciones" -#: ../Doc/library/ast.rst:928 +#: ../Doc/library/ast.rst:1050 msgid "An import statement. ``names`` is a list of :class:`alias` nodes." msgstr "" "Una declaración de importación. ``names`` es una lista de nodos :class:" "`alias`." -#: ../Doc/library/ast.rst:945 +#: ../Doc/library/ast.rst:1067 msgid "" "Represents ``from x import y``. ``module`` is a raw string of the 'from' " "name, without any leading dots, or ``None`` for statements such as ``from . " @@ -727,7 +798,7 @@ msgstr "" "``from . import foo``. ``level`` es un entero que contiene el nivel relativo " "de la importación (0 significa una importación absoluta)." -#: ../Doc/library/ast.rst:967 +#: ../Doc/library/ast.rst:1089 msgid "" "Both parameters are raw strings of the names. ``asname`` can be ``None`` if " "the regular name is to be used." @@ -735,11 +806,11 @@ msgstr "" "Ambos parámetros son cadenas de caracteres sin formato para los nombres. " "``asname`` puede ser ``None`` si se va a usar el nombre regular." -#: ../Doc/library/ast.rst:984 +#: ../Doc/library/ast.rst:1106 msgid "Control flow" msgstr "Control de flujo" -#: ../Doc/library/ast.rst:987 +#: ../Doc/library/ast.rst:1109 msgid "" "Optional clauses such as ``else`` are stored as an empty list if they're not " "present." @@ -747,7 +818,7 @@ msgstr "" "Cláusulas opcionales como ``else`` se guardan como una lista vacía si no " "están presentes." -#: ../Doc/library/ast.rst:992 +#: ../Doc/library/ast.rst:1114 msgid "" "An ``if`` statement. ``test`` holds a single node, such as a :class:" "`Compare` node. ``body`` and ``orelse`` each hold a list of nodes." @@ -755,7 +826,7 @@ msgstr "" "Una declaración ``if``. ``test`` contiene un único nodo, como un nodo :class:" "`Compare`. ``body`` y ``orelse`` contiene cada uno una lista de nodos." -#: ../Doc/library/ast.rst:995 +#: ../Doc/library/ast.rst:1117 msgid "" "``elif`` clauses don't have a special representation in the AST, but rather " "appear as extra :class:`If` nodes within the ``orelse`` section of the " @@ -765,13 +836,15 @@ msgstr "" "aparecer como nodos extra :class:`If` dentro de la sección ``orelse`` del " "nodo anterior." -#: ../Doc/library/ast.rst:1030 +#: ../Doc/library/ast.rst:1152 +#, fuzzy msgid "" "A ``for`` loop. ``target`` holds the variable(s) the loop assigns to, as a " -"single :class:`Name`, :class:`Tuple` or :class:`List` node. ``iter`` holds " -"the item to be looped over, again as a single node. ``body`` and ``orelse`` " -"contain lists of nodes to execute. Those in ``orelse`` are executed if the " -"loop finishes normally, rather than via a ``break`` statement." +"single :class:`Name`, :class:`Tuple`, :class:`List`, :class:`Attribute` or :" +"class:`Subscript` node. ``iter`` holds the item to be looped over, again as " +"a single node. ``body`` and ``orelse`` contain lists of nodes to execute. " +"Those in ``orelse`` are executed if the loop finishes normally, rather than " +"via a ``break`` statement." msgstr "" "Un bucle ``for``. ``target`` contiene la(s) variable(s) donde asigna el " "bucle como un único nodo :class:`Name`, :class:`Tuple` o :class:`List`. " @@ -780,7 +853,7 @@ msgstr "" "``orelse`` son ejecutados si el bucle termina normalmente, en contra de si " "terminan utilizando la declaración ``break``." -#: ../Doc/library/ast.rst:1064 +#: ../Doc/library/ast.rst:1187 msgid "" "A ``while`` loop. ``test`` holds the condition, such as a :class:`Compare` " "node." @@ -788,11 +861,11 @@ msgstr "" "Un bucle ``while``. ``test`` contiene la condición, como un nodo :class:" "`Compare`." -#: ../Doc/library/ast.rst:1091 +#: ../Doc/library/ast.rst:1214 msgid "The ``break`` and ``continue`` statements." msgstr "Las declaraciones ``break`` y ``continue``." -#: ../Doc/library/ast.rst:1126 +#: ../Doc/library/ast.rst:1249 msgid "" "``try`` blocks. All attributes are list of nodes to execute, except for " "``handlers``, which is a list of :class:`ExceptHandler` nodes." @@ -800,7 +873,7 @@ msgstr "" "Bloques ``try``. Todos los atributos son listas de nodos a ejecutar, excepto " "para ``handlers``, el cual es una lista de nodos :class:`ExceptHandler`." -#: ../Doc/library/ast.rst:1172 +#: ../Doc/library/ast.rst:1295 msgid "" "``try`` blocks which are followed by ``except*`` clauses. The attributes are " "the same as for :class:`Try` but the :class:`ExceptHandler` nodes in " @@ -810,7 +883,7 @@ msgstr "" "los mismos que para :class:`Try` pero los nodos :class:`ExceptHandler` en " "``handlers`` se interpretan como bloques ``except*`` en lugar de ``except``." -#: ../Doc/library/ast.rst:1203 +#: ../Doc/library/ast.rst:1327 msgid "" "A single ``except`` clause. ``type`` is the exception type it will match, " "typically a :class:`Name` node (or ``None`` for a catch-all ``except:`` " @@ -823,7 +896,7 @@ msgstr "" "nombre contenga la excepción, o ``None`` si la cláusula no tiene ``as foo``. " "``body`` es una lista de nodos." -#: ../Doc/library/ast.rst:1237 +#: ../Doc/library/ast.rst:1361 msgid "" "A ``with`` block. ``items`` is a list of :class:`withitem` nodes " "representing the context managers, and ``body`` is the indented block inside " @@ -833,7 +906,7 @@ msgstr "" "representan los administradores de contexto, y ``body`` es el bloque con " "sangría dentro del contexto." -#: ../Doc/library/ast.rst:1247 +#: ../Doc/library/ast.rst:1371 msgid "" "A single context manager in a ``with`` block. ``context_expr`` is the " "context manager, often a :class:`Call` node. ``optional_vars`` is a :class:" @@ -845,11 +918,11 @@ msgstr "" "``optional_vars`` es un :class:`Name`, :class:`Tuple` o :class:`List` para " "la parte ``as foo``, o ``None`` si no se usa." -#: ../Doc/library/ast.rst:1280 +#: ../Doc/library/ast.rst:1404 msgid "Pattern matching" msgstr "La coincidencia de patrones" -#: ../Doc/library/ast.rst:1285 +#: ../Doc/library/ast.rst:1409 msgid "" "A ``match`` statement. ``subject`` holds the subject of the match (the " "object that is being matched against the cases) and ``cases`` contains an " @@ -859,7 +932,7 @@ msgstr "" "(el objeto que se compara con los casos) y ``cases`` contiene un iterable de " "nodos :class:`match_case` con los diferentes casos." -#: ../Doc/library/ast.rst:1291 +#: ../Doc/library/ast.rst:1417 msgid "" "A single case pattern in a ``match`` statement. ``pattern`` contains the " "match pattern that the subject will be matched against. Note that the :class:" @@ -871,7 +944,7 @@ msgstr "" "que los nodos :class:`AST` producidos para patrones difieren de los " "producidos para expresiones, incluso cuando comparten la misma sintaxis." -#: ../Doc/library/ast.rst:1296 +#: ../Doc/library/ast.rst:1422 msgid "" "The ``guard`` attribute contains an expression that will be evaluated if the " "pattern matches the subject." @@ -879,7 +952,7 @@ msgstr "" "El atributo ``guard`` contiene una expresión que se evaluará si el patrón " "coincide con el sujeto." -#: ../Doc/library/ast.rst:1299 +#: ../Doc/library/ast.rst:1425 msgid "" "``body`` contains a list of nodes to execute if the pattern matches and the " "result of evaluating the guard expression is true." @@ -887,7 +960,7 @@ msgstr "" "``body`` contiene una lista de nodos para ejecutar si el patrón coincide y " "el resultado de evaluar la expresión de protección es verdadero." -#: ../Doc/library/ast.rst:1342 +#: ../Doc/library/ast.rst:1470 msgid "" "A match literal or value pattern that compares by equality. ``value`` is an " "expression node. Permitted value nodes are restricted as described in the " @@ -900,7 +973,7 @@ msgstr "" "coincidencia. Este patrón tiene éxito si el sujeto de la coincidencia es " "igual al valor evaluado." -#: ../Doc/library/ast.rst:1369 +#: ../Doc/library/ast.rst:1499 msgid "" "A match literal pattern that compares by identity. ``value`` is the " "singleton to be compared against: ``None``, ``True``, or ``False``. This " @@ -910,7 +983,7 @@ msgstr "" "el singleton que se va a comparar con: ``None``, ``True`` o ``False``. Este " "patrón tiene éxito si el sujeto de la coincidencia es la constante dada." -#: ../Doc/library/ast.rst:1394 +#: ../Doc/library/ast.rst:1526 msgid "" "A match sequence pattern. ``patterns`` contains the patterns to be matched " "against the subject elements if the subject is a sequence. Matches a " @@ -923,7 +996,7 @@ msgstr "" "subpatrones es un nodo ``MatchStar``; de lo contrario, coincide con una " "secuencia de longitud fija." -#: ../Doc/library/ast.rst:1425 +#: ../Doc/library/ast.rst:1559 msgid "" "Matches the rest of the sequence in a variable length match sequence " "pattern. If ``name`` is not ``None``, a list containing the remaining " @@ -935,7 +1008,7 @@ msgstr "" "contiene los elementos de secuencia restantes está vinculada a ese nombre si " "el patrón de secuencia general es exitoso." -#: ../Doc/library/ast.rst:1465 +#: ../Doc/library/ast.rst:1601 msgid "" "A match mapping pattern. ``keys`` is a sequence of expression nodes. " "``patterns`` is a corresponding sequence of pattern nodes. ``rest`` is an " @@ -950,7 +1023,7 @@ msgstr "" "restringidas como se describe en la documentación de la declaración de " "coincidencia." -#: ../Doc/library/ast.rst:1471 +#: ../Doc/library/ast.rst:1607 msgid "" "This pattern succeeds if the subject is a mapping, all evaluated key " "expressions are present in the mapping, and the value corresponding to each " @@ -964,7 +1037,7 @@ msgstr "" "``None``, un dict que contiene los elementos de mapeo restantes se vincula a " "ese nombre si el patrón de mapeo general es exitoso." -#: ../Doc/library/ast.rst:1511 +#: ../Doc/library/ast.rst:1649 msgid "" "A match class pattern. ``cls`` is an expression giving the nominal class to " "be matched. ``patterns`` is a sequence of pattern nodes to be matched " @@ -983,7 +1056,7 @@ msgstr "" "correspondientes (especificados como valores de palabras clave en el patrón " "de clase)." -#: ../Doc/library/ast.rst:1518 +#: ../Doc/library/ast.rst:1656 msgid "" "This pattern succeeds if the subject is an instance of the nominated class, " "all positional patterns match the corresponding class-defined attributes, " @@ -994,7 +1067,7 @@ msgstr "" "clase correspondientes y cualquier atributo de palabra clave especificado " "coincide con su patrón correspondiente." -#: ../Doc/library/ast.rst:1522 +#: ../Doc/library/ast.rst:1660 msgid "" "Note: classes may define a property that returns self in order to match a " "pattern node against the instance being matched. Several builtin types are " @@ -1005,7 +1078,7 @@ msgstr "" "tipos incorporados también se combinan de esa manera, como se describe en la " "documentación de la declaración de coincidencia." -#: ../Doc/library/ast.rst:1575 +#: ../Doc/library/ast.rst:1715 msgid "" "A match \"as-pattern\", capture pattern or wildcard pattern. ``pattern`` " "contains the match pattern that the subject will be matched against. If the " @@ -1017,7 +1090,7 @@ msgstr "" "sujeto. Si el patrón es ``None``, el nodo representa un patrón de captura " "(es decir, un nombre simple) y siempre tendrá éxito." -#: ../Doc/library/ast.rst:1580 +#: ../Doc/library/ast.rst:1720 msgid "" "The ``name`` attribute contains the name that will be bound if the pattern " "is successful. If ``name`` is ``None``, ``pattern`` must also be ``None`` " @@ -1027,7 +1100,7 @@ msgstr "" "éxito. Si ``name`` es ``None``, ``pattern`` también debe ser ``None`` y el " "nodo representa el patrón comodín." -#: ../Doc/library/ast.rst:1616 +#: ../Doc/library/ast.rst:1758 msgid "" "A match \"or-pattern\". An or-pattern matches each of its subpatterns in " "turn to the subject, until one succeeds. The or-pattern is then deemed to " @@ -1041,28 +1114,57 @@ msgstr "" "patrón o falla. El atributo ``patterns`` contiene una lista de nodos de " "patrones de coincidencia que se compararán con el sujeto." -#: ../Doc/library/ast.rst:1648 +#: ../Doc/library/ast.rst:1793 +msgid "Type parameters" +msgstr "" + +#: ../Doc/library/ast.rst:1795 +msgid "" +":ref:`Type parameters ` can exist on classes, functions, and " +"type aliases." +msgstr "" + +#: ../Doc/library/ast.rst:1800 +msgid "" +"A :class:`typing.TypeVar`. ``name`` is the name of the type variable. " +"``bound`` is the bound or constraints, if any. If ``bound`` is a :class:" +"`Tuple`, it represents constraints; otherwise it represents the bound." +msgstr "" + +#: ../Doc/library/ast.rst:1825 +msgid "" +"A :class:`typing.ParamSpec`. ``name`` is the name of the parameter " +"specification." +msgstr "" + +#: ../Doc/library/ast.rst:1850 +msgid "" +"A :class:`typing.TypeVarTuple`. ``name`` is the name of the type variable " +"tuple." +msgstr "" + +#: ../Doc/library/ast.rst:1875 msgid "Function and class definitions" msgstr "Definiciones de función y clase" -#: ../Doc/library/ast.rst:1652 +#: ../Doc/library/ast.rst:1879 msgid "A function definition." msgstr "Una definición de función." -#: ../Doc/library/ast.rst:1654 +#: ../Doc/library/ast.rst:1881 msgid "``name`` is a raw string of the function name." msgstr "" "``name`` es una cadena de caracteres sin formato del nombre de la función." -#: ../Doc/library/ast.rst:1655 +#: ../Doc/library/ast.rst:1882 msgid "``args`` is an :class:`arguments` node." msgstr "``args`` es un nodo :class:`arguments`." -#: ../Doc/library/ast.rst:1656 +#: ../Doc/library/ast.rst:1883 msgid "``body`` is the list of nodes inside the function." msgstr "``body`` es la lista de nodos dentro de la función." -#: ../Doc/library/ast.rst:1657 +#: ../Doc/library/ast.rst:1884 msgid "" "``decorator_list`` is the list of decorators to be applied, stored outermost " "first (i.e. the first in the list will be applied last)." @@ -1071,11 +1173,20 @@ msgstr "" "en el exterior primero (es decir, el primero de la lista se aplicará al " "final)." -#: ../Doc/library/ast.rst:1659 +#: ../Doc/library/ast.rst:1886 msgid "``returns`` is the return annotation." msgstr "``returns`` es la anotación de retorno." -#: ../Doc/library/ast.rst:1668 +#: ../Doc/library/ast.rst:1887 ../Doc/library/ast.rst:2065 +msgid "``type_params`` is a list of :ref:`type parameters `." +msgstr "" + +#: ../Doc/library/ast.rst:1893 ../Doc/library/ast.rst:2094 +#: ../Doc/library/ast.rst:2105 +msgid "Added ``type_params``." +msgstr "" + +#: ../Doc/library/ast.rst:1899 msgid "" "``lambda`` is a minimal function definition that can be used inside an " "expression. Unlike :class:`FunctionDef`, ``body`` holds a single node." @@ -1084,17 +1195,17 @@ msgstr "" "de una expresión. A diferencia de :class:`FunctionDef`, ``body`` tiene un " "solo nodo." -#: ../Doc/library/ast.rst:1692 +#: ../Doc/library/ast.rst:1923 msgid "The arguments for a function." msgstr "Los argumentos para una función." -#: ../Doc/library/ast.rst:1694 +#: ../Doc/library/ast.rst:1925 msgid "" "``posonlyargs``, ``args`` and ``kwonlyargs`` are lists of :class:`arg` nodes." msgstr "" "``posonlyargs``, ``args`` y ``kwonlyargs`` son listas de nodos :class:`arg`." -#: ../Doc/library/ast.rst:1695 +#: ../Doc/library/ast.rst:1926 msgid "" "``vararg`` and ``kwarg`` are single :class:`arg` nodes, referring to the " "``*args, **kwargs`` parameters." @@ -1102,7 +1213,7 @@ msgstr "" "``vararg`` y ``kwarg`` son nodos :class:`arg` únicos, en referencia a los " "parámetros ``*args, **kwargs``." -#: ../Doc/library/ast.rst:1697 +#: ../Doc/library/ast.rst:1928 msgid "" "``kw_defaults`` is a list of default values for keyword-only arguments. If " "one is ``None``, the corresponding argument is required." @@ -1111,7 +1222,7 @@ msgstr "" "solo palabras clave. Si uno es ``None``, se requiere el argumento " "correspondiente." -#: ../Doc/library/ast.rst:1699 +#: ../Doc/library/ast.rst:1930 msgid "" "``defaults`` is a list of default values for arguments that can be passed " "positionally. If there are fewer defaults, they correspond to the last n " @@ -1121,7 +1232,7 @@ msgstr "" "pueden pasar posicionalmente. Si hay menos valores predeterminados, " "corresponden a los últimos n argumentos." -#: ../Doc/library/ast.rst:1706 +#: ../Doc/library/ast.rst:1937 msgid "" "A single argument in a list. ``arg`` is a raw string of the argument name, " "``annotation`` is its annotation, such as a :class:`Str` or :class:`Name` " @@ -1131,18 +1242,18 @@ msgstr "" "del argumento, ``annotation`` es su anotación, como un nodo :class:`Str` o :" "class:`Name`." -#: ../Doc/library/ast.rst:1712 +#: ../Doc/library/ast.rst:1943 msgid "" "``type_comment`` is an optional string with the type annotation as a comment" msgstr "" "``type_comment`` es una cadena opcional con la anotación de tipo como " "comentario" -#: ../Doc/library/ast.rst:1756 +#: ../Doc/library/ast.rst:1988 msgid "A ``return`` statement." msgstr "Una declaración ``return``." -#: ../Doc/library/ast.rst:1771 +#: ../Doc/library/ast.rst:2003 msgid "" "A ``yield`` or ``yield from`` expression. Because these are expressions, " "they must be wrapped in a :class:`Expr` node if the value sent back is not " @@ -1152,30 +1263,31 @@ msgstr "" "expresiones, deben incluirse en un nodo :class:`Expr` si no se utiliza el " "valor retornado." -#: ../Doc/library/ast.rst:1796 +#: ../Doc/library/ast.rst:2028 msgid "" "``global`` and ``nonlocal`` statements. ``names`` is a list of raw strings." msgstr "" "Declaraciones ``global`` y ``nonlocal``. ``names`` es una lista de cadenas " "sin formato." -#: ../Doc/library/ast.rst:1823 +#: ../Doc/library/ast.rst:2055 msgid "A class definition." msgstr "Una definición de clase." -#: ../Doc/library/ast.rst:1825 +#: ../Doc/library/ast.rst:2057 msgid "``name`` is a raw string for the class name" msgstr "``name`` es una cadena sin formato para el nombre de la clase" -#: ../Doc/library/ast.rst:1826 +#: ../Doc/library/ast.rst:2058 msgid "``bases`` is a list of nodes for explicitly specified base classes." msgstr "" "``bases`` es una lista de nodos para clases base especificadas " "explícitamente." -#: ../Doc/library/ast.rst:1827 +#: ../Doc/library/ast.rst:2059 +#, fuzzy msgid "" -"``keywords`` is a list of :class:`keyword` nodes, principally for " +"``keywords`` is a list of :class:`.keyword` nodes, principally for " "'metaclass'. Other keywords will be passed to the metaclass, as per " "`PEP-3115 `_." msgstr "" @@ -1183,17 +1295,7 @@ msgstr "" "'metaclase'. Otras palabras clave se pasarán a la metaclase, según `PEP-3115 " "`_." -#: ../Doc/library/ast.rst:1830 -msgid "" -"``starargs`` and ``kwargs`` are each a single node, as in a function call. " -"starargs will be expanded to join the list of base classes, and kwargs will " -"be passed to the metaclass." -msgstr "" -"``starargs`` y ``kwargs`` son cada uno un solo nodo, como en una llamada de " -"función. Los starargs se expandirán para unirse a la lista de clases base y " -"los kwargs se pasarán a la metaclase." - -#: ../Doc/library/ast.rst:1833 +#: ../Doc/library/ast.rst:2062 msgid "" "``body`` is a list of nodes representing the code within the class " "definition." @@ -1201,16 +1303,16 @@ msgstr "" "``body`` es una lista de nodos que representan el código dentro de la " "definición de clase." -#: ../Doc/library/ast.rst:1835 +#: ../Doc/library/ast.rst:2064 msgid "``decorator_list`` is a list of nodes, as in :class:`FunctionDef`." msgstr "" "``decorator_list`` es una lista de nodos, como en :class:`FunctionDef`." -#: ../Doc/library/ast.rst:1864 +#: ../Doc/library/ast.rst:2098 msgid "Async and await" msgstr "Async y await" -#: ../Doc/library/ast.rst:1868 +#: ../Doc/library/ast.rst:2102 msgid "" "An ``async def`` function definition. Has the same fields as :class:" "`FunctionDef`." @@ -1218,7 +1320,7 @@ msgstr "" "Una definición de función ``async def``. Tiene los mismos campos que :class:" "`FunctionDef`." -#: ../Doc/library/ast.rst:1874 +#: ../Doc/library/ast.rst:2111 msgid "" "An ``await`` expression. ``value`` is what it waits for. Only valid in the " "body of an :class:`AsyncFunctionDef`." @@ -1226,7 +1328,7 @@ msgstr "" "Una expresión ``await``. ``value`` es lo que espera. Solo válido en el " "cuerpo de un :class:`AsyncFunctionDef`." -#: ../Doc/library/ast.rst:1907 +#: ../Doc/library/ast.rst:2145 msgid "" "``async for`` loops and ``async with`` context managers. They have the same " "fields as :class:`For` and :class:`With`, respectively. Only valid in the " @@ -1236,7 +1338,7 @@ msgstr "" "los mismos campos que :class:`For` y :class:`With`, respectivamente. Solo " "válido en el cuerpo de un :class:`AsyncFunctionDef`." -#: ../Doc/library/ast.rst:1912 +#: ../Doc/library/ast.rst:2150 msgid "" "When a string is parsed by :func:`ast.parse`, operator nodes (subclasses of :" "class:`ast.operator`, :class:`ast.unaryop`, :class:`ast.cmpop`, :class:`ast." @@ -1250,11 +1352,11 @@ msgstr "" "retornado serán singletons. Los cambios en uno se reflejarán en todas las " "demás ocurrencias del mismo valor (por ejemplo, :class:`ast.Add`)." -#: ../Doc/library/ast.rst:1920 +#: ../Doc/library/ast.rst:2158 msgid ":mod:`ast` Helpers" msgstr "Ayudantes de :mod:`ast`" -#: ../Doc/library/ast.rst:1922 +#: ../Doc/library/ast.rst:2160 msgid "" "Apart from the node classes, the :mod:`ast` module defines these utility " "functions and classes for traversing abstract syntax trees:" @@ -1262,7 +1364,7 @@ msgstr "" "Además de las clases de nodo, el módulo :mod:`ast` define estas funciones y " "clases de utilidad para atravesar árboles de sintaxis abstracta:" -#: ../Doc/library/ast.rst:1927 +#: ../Doc/library/ast.rst:2165 msgid "" "Parse the source into an AST node. Equivalent to ``compile(source, " "filename, mode, ast.PyCF_ONLY_AST)``." @@ -1270,7 +1372,7 @@ msgstr "" "Analiza la fuente en un nodo AST. Equivalente a ``compile(source, filename, " "mode, ast.PyCF_ONLY_AST)``." -#: ../Doc/library/ast.rst:1930 +#: ../Doc/library/ast.rst:2168 msgid "" "If ``type_comments=True`` is given, the parser is modified to check and " "return type comments as specified by :pep:`484` and :pep:`526`. This is " @@ -1293,7 +1395,7 @@ msgstr "" "``type_ignores`` de :class:`Module` (de lo contrario, siempre es una lista " "vacía)." -#: ../Doc/library/ast.rst:1940 +#: ../Doc/library/ast.rst:2178 msgid "" "In addition, if ``mode`` is ``'func_type'``, the input syntax is modified to " "correspond to :pep:`484` \"signature type comments\", e.g. ``(str, int) -> " @@ -1303,7 +1405,7 @@ msgstr "" "para corresponder a :pep:`484` \"comentarios de tipo de firma\", por ejemplo " "``(str, int) -> List[str]``." -#: ../Doc/library/ast.rst:1944 +#: ../Doc/library/ast.rst:2182 msgid "" "Also, setting ``feature_version`` to a tuple ``(major, minor)`` will attempt " "to parse using that Python version's grammar. Currently ``major`` must equal " @@ -1318,13 +1420,13 @@ msgstr "" "nombres de variables. La versión más baja admitida es ``(3, 4)``; la más " "alto es ``sys.version_info[0:2]``." -#: ../Doc/library/ast.rst:1951 +#: ../Doc/library/ast.rst:2189 msgid "" "If source contains a null character ('\\0'), :exc:`ValueError` is raised." msgstr "" "Si la fuente contiene un carácter nulo ('\\ 0'), se lanza :exc:`ValueError`." -#: ../Doc/library/ast.rst:1954 +#: ../Doc/library/ast.rst:2192 msgid "" "Note that successfully parsing source code into an AST object doesn't " "guarantee that the source code provided is valid Python code that can be " @@ -1340,7 +1442,7 @@ msgstr "" "un nodo AST válido para una declaración de retorno, pero no se puede " "compilar solo (debe estar dentro de un nodo de función)." -#: ../Doc/library/ast.rst:1961 +#: ../Doc/library/ast.rst:2199 msgid "" "In particular, :func:`ast.parse` won't do any scoping checks, which the " "compilation step does." @@ -1348,7 +1450,7 @@ msgstr "" "En particular, :func:`ast.parse` no realizará ninguna verificación de " "alcance, lo que hace el paso de compilación." -#: ../Doc/library/ast.rst:1965 +#: ../Doc/library/ast.rst:2203 msgid "" "It is possible to crash the Python interpreter with a sufficiently large/" "complex string due to stack depth limitations in Python's AST compiler." @@ -1357,12 +1459,12 @@ msgstr "" "suficientemente grande/compleja debido a las limitaciones de profundidad de " "pila en el compilador AST de Python." -#: ../Doc/library/ast.rst:1969 +#: ../Doc/library/ast.rst:2207 msgid "Added ``type_comments``, ``mode='func_type'`` and ``feature_version``." msgstr "" "Se agregaron ``type_comments``, ``mode='func_type'`` y ``feature_version``." -#: ../Doc/library/ast.rst:1975 +#: ../Doc/library/ast.rst:2213 msgid "" "Unparse an :class:`ast.AST` object and generate a string with code that " "would produce an equivalent :class:`ast.AST` object if parsed back with :" @@ -1372,7 +1474,7 @@ msgstr "" "produciría un objeto :class:`ast.AST` equivalente si se analiza con :func:" "`ast.parse`." -#: ../Doc/library/ast.rst:1980 +#: ../Doc/library/ast.rst:2218 msgid "" "The produced code string will not necessarily be equal to the original code " "that generated the :class:`ast.AST` object (without any compiler " @@ -1382,7 +1484,7 @@ msgstr "" "original que generó el objeto :class:`ast.AST` (sin ninguna optimización del " "compilador, como tuplas constantes / frozensets)." -#: ../Doc/library/ast.rst:1985 +#: ../Doc/library/ast.rst:2223 msgid "" "Trying to unparse a highly complex expression would result with :exc:" "`RecursionError`." @@ -1390,7 +1492,7 @@ msgstr "" "Intentar descomprimir una expresión muy compleja daría como resultado :exc:" "`RecursionError`." -#: ../Doc/library/ast.rst:1993 +#: ../Doc/library/ast.rst:2231 msgid "" "Evaluate an expression node or a string containing only a Python literal or " "container display. The string or node provided may only consist of the " @@ -1403,7 +1505,7 @@ msgstr "" "literales de Python: cadenas de caracteres, bytes, números, tuplas, listas, " "diccionarios, conjuntos, booleanos, ``None`` y ``Ellipsis``." -#: ../Doc/library/ast.rst:1998 +#: ../Doc/library/ast.rst:2236 msgid "" "This can be used for evaluating strings containing Python values without the " "need to parse the values oneself. It is not capable of evaluating " @@ -1414,7 +1516,7 @@ msgstr "" "mismo. No es capaz de evaluar expresiones complejas arbitrariamente, por " "ejemplo, que involucran operadores o indexación." -#: ../Doc/library/ast.rst:2003 +#: ../Doc/library/ast.rst:2241 msgid "" "This function had been documented as \"safe\" in the past without defining " "what that meant. That was misleading. This is specifically designed not to " @@ -1435,7 +1537,7 @@ msgstr "" "consumo excesivo de CPU en algunas entradas. Por lo tanto, no se recomienda " "llamarlo con datos no confiables." -#: ../Doc/library/ast.rst:2013 +#: ../Doc/library/ast.rst:2251 msgid "" "It is possible to crash the Python interpreter due to stack depth " "limitations in Python's AST compiler." @@ -1443,7 +1545,7 @@ msgstr "" "Es posible bloquear el intérprete de Python debido a las limitaciones de " "profundidad de pila en el compilador AST de Python." -#: ../Doc/library/ast.rst:2016 +#: ../Doc/library/ast.rst:2254 msgid "" "It can raise :exc:`ValueError`, :exc:`TypeError`, :exc:`SyntaxError`, :exc:" "`MemoryError` and :exc:`RecursionError` depending on the malformed input." @@ -1451,21 +1553,21 @@ msgstr "" "Puede generar :exc:`ValueError`, :exc:`TypeError`, :exc:`SyntaxError`, :exc:" "`MemoryError` y :exc:`RecursionError` dependiendo de la entrada mal formada." -#: ../Doc/library/ast.rst:2020 +#: ../Doc/library/ast.rst:2258 msgid "Now allows bytes and set literals." msgstr "Ahora permite bytes y establece literales." -#: ../Doc/library/ast.rst:2023 +#: ../Doc/library/ast.rst:2261 msgid "Now supports creating empty sets with ``'set()'``." msgstr "Ahora admite la creación de conjuntos vacíos con ``'set()'``." -#: ../Doc/library/ast.rst:2026 +#: ../Doc/library/ast.rst:2264 msgid "For string inputs, leading spaces and tabs are now stripped." msgstr "" "Para las entradas de cadena, los espacios iniciales y las tabulaciones ahora " "se eliminan." -#: ../Doc/library/ast.rst:2032 +#: ../Doc/library/ast.rst:2270 msgid "" "Return the docstring of the given *node* (which must be a :class:" "`FunctionDef`, :class:`AsyncFunctionDef`, :class:`ClassDef`, or :class:" @@ -1477,11 +1579,11 @@ msgstr "" "`ClassDef`, o :class:`Module`), o ``None`` si no tiene docstring. Si *clean* " "es verdadero, limpia la sangría del docstring con :func:`inspect.cleandoc`." -#: ../Doc/library/ast.rst:2038 +#: ../Doc/library/ast.rst:2276 msgid ":class:`AsyncFunctionDef` is now supported." msgstr ":class:`AsyncFunctionDef` ahora está soportada." -#: ../Doc/library/ast.rst:2044 +#: ../Doc/library/ast.rst:2282 msgid "" "Get source code segment of the *source* that generated *node*. If some " "location information (:attr:`lineno`, :attr:`end_lineno`, :attr:" @@ -1491,7 +1593,7 @@ msgstr "" "falta información de ubicación (:attr:`lineno`, :attr:`end_lineno`, :attr:" "`col_offset`, o :attr:`end_col_offset`), retorna ``None``." -#: ../Doc/library/ast.rst:2048 +#: ../Doc/library/ast.rst:2286 msgid "" "If *padded* is ``True``, the first line of a multi-line statement will be " "padded with spaces to match its original position." @@ -1499,7 +1601,7 @@ msgstr "" "Si *padded* es ``True``, la primera línea de una declaración de varias " "líneas se rellenará con espacios para que coincidan con su posición original." -#: ../Doc/library/ast.rst:2056 +#: ../Doc/library/ast.rst:2294 msgid "" "When you compile a node tree with :func:`compile`, the compiler expects :" "attr:`lineno` and :attr:`col_offset` attributes for every node that supports " @@ -1514,7 +1616,7 @@ msgstr "" "establecidos, configurándolos en los valores del nodo principal. Funciona de " "forma recursiva comenzando en *node*." -#: ../Doc/library/ast.rst:2065 +#: ../Doc/library/ast.rst:2303 msgid "" "Increment the line number and end line number of each node in the tree " "starting at *node* by *n*. This is useful to \"move code\" to a different " @@ -1524,7 +1626,7 @@ msgstr "" "árbol comenzando en *node* por *n*. Esto es útil para \"mover código\" a una " "ubicación diferente en un archivo." -#: ../Doc/library/ast.rst:2072 +#: ../Doc/library/ast.rst:2310 msgid "" "Copy source location (:attr:`lineno`, :attr:`col_offset`, :attr:" "`end_lineno`, and :attr:`end_col_offset`) from *old_node* to *new_node* if " @@ -1534,7 +1636,7 @@ msgstr "" "`end_lineno`, y :attr:`end_col_offset`) de *old_node* a *new_node* si es " "posible, y retorna *new_node*." -#: ../Doc/library/ast.rst:2079 +#: ../Doc/library/ast.rst:2317 msgid "" "Yield a tuple of ``(fieldname, value)`` for each field in ``node._fields`` " "that is present on *node*." @@ -1542,7 +1644,7 @@ msgstr "" "Produce (*yield*) una tupla de ``(fieldname, value)`` para cada campo en " "``node._fields`` que está presente en *node*." -#: ../Doc/library/ast.rst:2085 +#: ../Doc/library/ast.rst:2323 msgid "" "Yield all direct child nodes of *node*, that is, all fields that are nodes " "and all items of fields that are lists of nodes." @@ -1550,7 +1652,7 @@ msgstr "" "Cede todos los nodos secundarios directos de *node*, es decir, todos los " "campos que son nodos y todos los elementos de campos que son listas de nodos." -#: ../Doc/library/ast.rst:2091 +#: ../Doc/library/ast.rst:2329 msgid "" "Recursively yield all descendant nodes in the tree starting at *node* " "(including *node* itself), in no specified order. This is useful if you " @@ -1561,7 +1663,7 @@ msgstr "" "es útil si solo desea modificar los nodos en su lugar y no le importa el " "contexto." -#: ../Doc/library/ast.rst:2098 +#: ../Doc/library/ast.rst:2336 msgid "" "A node visitor base class that walks the abstract syntax tree and calls a " "visitor function for every node found. This function may return a value " @@ -1572,7 +1674,7 @@ msgstr "" "función puede retornar un valor que se reenvía mediante el método :meth:" "`visit`." -#: ../Doc/library/ast.rst:2102 +#: ../Doc/library/ast.rst:2340 msgid "" "This class is meant to be subclassed, with the subclass adding visitor " "methods." @@ -1580,7 +1682,7 @@ msgstr "" "Esta clase está destinada a ser subclase, con la subclase agregando métodos " "de visitante." -#: ../Doc/library/ast.rst:2107 +#: ../Doc/library/ast.rst:2345 msgid "" "Visit a node. The default implementation calls the method called :samp:" "`self.visit_{classname}` where *classname* is the name of the node class, " @@ -1590,11 +1692,11 @@ msgstr "" "samp:`self.visit_{classname}` donde *classname* es el nombre de la clase de " "nodo, o :meth:`generic_visit` si ese método no existe." -#: ../Doc/library/ast.rst:2113 +#: ../Doc/library/ast.rst:2351 msgid "This visitor calls :meth:`visit` on all children of the node." msgstr "Este visitante llama :meth:`visit` en todos los hijos del nodo." -#: ../Doc/library/ast.rst:2115 +#: ../Doc/library/ast.rst:2353 msgid "" "Note that child nodes of nodes that have a custom visitor method won't be " "visited unless the visitor calls :meth:`generic_visit` or visits them itself." @@ -1603,7 +1705,7 @@ msgstr "" "de visitante personalizado no se visitarán a menos que el visitante llame :" "meth:`generic_visit` o los visite a sí mismo." -#: ../Doc/library/ast.rst:2119 +#: ../Doc/library/ast.rst:2357 msgid "" "Don't use the :class:`NodeVisitor` if you want to apply changes to nodes " "during traversal. For this a special visitor exists (:class:" @@ -1613,7 +1715,7 @@ msgstr "" "recorrido. Para esto existe un visitante especial (:class:`NodeTransformer`) " "que permite modificaciones." -#: ../Doc/library/ast.rst:2125 +#: ../Doc/library/ast.rst:2363 msgid "" "Methods :meth:`visit_Num`, :meth:`visit_Str`, :meth:`visit_Bytes`, :meth:" "`visit_NameConstant` and :meth:`visit_Ellipsis` are deprecated now and will " @@ -1625,7 +1727,7 @@ msgstr "" "serán llamados en futuras versiones de Python. Agregue el método :meth:" "`visit_Constant` para manejar todos los nodos constantes." -#: ../Doc/library/ast.rst:2133 +#: ../Doc/library/ast.rst:2371 msgid "" "A :class:`NodeVisitor` subclass that walks the abstract syntax tree and " "allows modification of nodes." @@ -1633,7 +1735,7 @@ msgstr "" "Una subclase de :class:`NodeVisitor` que recorre el árbol de sintaxis " "abstracta y permite la modificación de nodos." -#: ../Doc/library/ast.rst:2136 +#: ../Doc/library/ast.rst:2374 msgid "" "The :class:`NodeTransformer` will walk the AST and use the return value of " "the visitor methods to replace or remove the old node. If the return value " @@ -1648,7 +1750,7 @@ msgstr "" "valor de retorno. El valor de retorno puede ser el nodo original, en cuyo " "caso no se realiza ningún reemplazo." -#: ../Doc/library/ast.rst:2142 +#: ../Doc/library/ast.rst:2380 msgid "" "Here is an example transformer that rewrites all occurrences of name lookups " "(``foo``) to ``data['foo']``::" @@ -1656,7 +1758,7 @@ msgstr "" "Aquí hay un transformador de ejemplo que reescribe todas las apariciones de " "búsquedas de nombres (``foo``) en ``data['foo']``::" -#: ../Doc/library/ast.rst:2154 +#: ../Doc/library/ast.rst:2392 msgid "" "Keep in mind that if the node you're operating on has child nodes you must " "either transform the child nodes yourself or call the :meth:`generic_visit` " @@ -1666,7 +1768,7 @@ msgstr "" "secundarios, debe transformar los nodos secundarios usted mismo o llamar " "primero al método :meth:`generic_visit` para el nodo." -#: ../Doc/library/ast.rst:2158 +#: ../Doc/library/ast.rst:2396 msgid "" "For nodes that were part of a collection of statements (that applies to all " "statement nodes), the visitor may also return a list of nodes rather than " @@ -1676,7 +1778,7 @@ msgstr "" "aplica a todos los nodos de declaración), el visitante también puede " "retornar una lista de nodos en lugar de solo un nodo." -#: ../Doc/library/ast.rst:2162 +#: ../Doc/library/ast.rst:2400 msgid "" "If :class:`NodeTransformer` introduces new nodes (that weren't part of " "original tree) without giving them location information (such as :attr:" @@ -1688,11 +1790,11 @@ msgstr "" "func:`fix_missing_locations` debería llamarse con el nuevo sub-árbol para " "recalcular la información de ubicación ::" -#: ../Doc/library/ast.rst:2170 +#: ../Doc/library/ast.rst:2408 msgid "Usually you use the transformer like this::" msgstr "Usualmente usas el transformador así:" -#: ../Doc/library/ast.rst:2177 +#: ../Doc/library/ast.rst:2415 msgid "" "Return a formatted dump of the tree in *node*. This is mainly useful for " "debugging purposes. If *annotate_fields* is true (by default), the returned " @@ -1711,7 +1813,7 @@ msgstr "" "vuelcan de forma predeterminada. Si esto se desea, *include_attributes* se " "puede establecer en verdadero." -#: ../Doc/library/ast.rst:2185 +#: ../Doc/library/ast.rst:2423 msgid "" "If *indent* is a non-negative integer or string, then the tree will be " "pretty-printed with that indent level. An indent level of 0, negative, or " @@ -1728,15 +1830,15 @@ msgstr "" "*indent* es una cadena de caracteres (como ``\"\\t\"``), esa cadena se usa " "para sangrar cada nivel." -#: ../Doc/library/ast.rst:2192 +#: ../Doc/library/ast.rst:2430 msgid "Added the *indent* option." msgstr "Añadida la opción *indent*." -#: ../Doc/library/ast.rst:2199 +#: ../Doc/library/ast.rst:2437 msgid "Compiler Flags" msgstr "Banderas del compilador" -#: ../Doc/library/ast.rst:2201 +#: ../Doc/library/ast.rst:2439 msgid "" "The following flags may be passed to :func:`compile` in order to change " "effects on the compilation of a program:" @@ -1744,7 +1846,7 @@ msgstr "" "Los siguientes indicadores pueden pasarse a :func:`compile` para cambiar los " "efectos en la compilación de un programa:" -#: ../Doc/library/ast.rst:2206 +#: ../Doc/library/ast.rst:2444 msgid "" "Enables support for top-level ``await``, ``async for``, ``async with`` and " "async comprehensions." @@ -1752,7 +1854,7 @@ msgstr "" "Habilita el soporte para ``await``, ``async for``, ``async with`` y " "comprensiones asíncronas de nivel superior." -#: ../Doc/library/ast.rst:2213 +#: ../Doc/library/ast.rst:2451 msgid "" "Generates and returns an abstract syntax tree instead of returning a " "compiled code object." @@ -1760,7 +1862,7 @@ msgstr "" "Genera y retorna un árbol de sintaxis abstracto en lugar de retornar un " "objeto de código compilado." -#: ../Doc/library/ast.rst:2218 +#: ../Doc/library/ast.rst:2456 msgid "" "Enables support for :pep:`484` and :pep:`526` style type comments (``# type: " "``, ``# type: ignore ``)." @@ -1768,11 +1870,11 @@ msgstr "" "Habilita el soporte para comentarios de tipo de estilo :pep:`484` y :pep:" "`526` (``# type: ``, ``# type: ignore ``)." -#: ../Doc/library/ast.rst:2227 +#: ../Doc/library/ast.rst:2465 msgid "Command-Line Usage" msgstr "Uso en línea de comandos" -#: ../Doc/library/ast.rst:2231 +#: ../Doc/library/ast.rst:2469 msgid "" "The :mod:`ast` module can be executed as a script from the command line. It " "is as simple as:" @@ -1780,15 +1882,15 @@ msgstr "" "El módulo :mod:`ast` puede ser ejecutado como un script desde la línea de " "comandos. Es tan simple como:" -#: ../Doc/library/ast.rst:2238 +#: ../Doc/library/ast.rst:2476 msgid "The following options are accepted:" msgstr "Las siguientes opciones son aceptadas:" -#: ../Doc/library/ast.rst:2244 +#: ../Doc/library/ast.rst:2482 msgid "Show the help message and exit." msgstr "Muestra el mensaje de ayuda y sale." -#: ../Doc/library/ast.rst:2249 +#: ../Doc/library/ast.rst:2487 msgid "" "Specify what kind of code must be compiled, like the *mode* argument in :" "func:`parse`." @@ -1796,19 +1898,19 @@ msgstr "" "Especifica qué tipo de código debe ser compilado, como el argumento *mode* " "en :func:`parse`." -#: ../Doc/library/ast.rst:2254 +#: ../Doc/library/ast.rst:2492 msgid "Don't parse type comments." msgstr "No analizar los comentarios de tipo." -#: ../Doc/library/ast.rst:2258 +#: ../Doc/library/ast.rst:2496 msgid "Include attributes such as line numbers and column offsets." msgstr "Incluye atributos como números de línea y sangrías." -#: ../Doc/library/ast.rst:2263 +#: ../Doc/library/ast.rst:2501 msgid "Indentation of nodes in AST (number of spaces)." msgstr "Sangría de nodos en AST (número de espacios)." -#: ../Doc/library/ast.rst:2265 +#: ../Doc/library/ast.rst:2503 msgid "" "If :file:`infile` is specified its contents are parsed to AST and dumped to " "stdout. Otherwise, the content is read from stdin." @@ -1816,7 +1918,7 @@ msgstr "" "Si :file:`infile` es especificado, su contenido es analizado a AST y " "mostrado en stdout. De otra forma, el contenido es leído desde stdin." -#: ../Doc/library/ast.rst:2271 +#: ../Doc/library/ast.rst:2509 msgid "" "`Green Tree Snakes `_, an external " "documentation resource, has good details on working with Python ASTs." @@ -1825,7 +1927,7 @@ msgstr "" "de documentación externo, tiene buenos detalles sobre cómo trabajar con " "Python AST." -#: ../Doc/library/ast.rst:2274 +#: ../Doc/library/ast.rst:2512 msgid "" "`ASTTokens `_ " "annotates Python ASTs with the positions of tokens and text in the source " @@ -1837,7 +1939,7 @@ msgstr "" "que los genera. Esto es de ayuda para herramientas que hacen " "transformaciones de código fuente." -#: ../Doc/library/ast.rst:2279 +#: ../Doc/library/ast.rst:2517 msgid "" "`leoAst.py `_ unifies the " "token-based and parse-tree-based views of python programs by inserting two-" @@ -1847,7 +1949,7 @@ msgstr "" "vistas basadas en tokens y en *parse-trees* de los programas de Python " "insertando vínculos de doble vía entre tokens y nodos AST." -#: ../Doc/library/ast.rst:2283 +#: ../Doc/library/ast.rst:2521 msgid "" "`LibCST `_ parses code as a Concrete Syntax " "Tree that looks like an ast tree and keeps all formatting details. It's " @@ -1858,7 +1960,7 @@ msgstr "" "formato. Es útil para construir herramientas de refactor automáticas y " "linters." -#: ../Doc/library/ast.rst:2288 +#: ../Doc/library/ast.rst:2526 msgid "" "`Parso `_ is a Python parser that supports " "error recovery and round-trip parsing for different Python versions (in " @@ -1870,3 +1972,25 @@ msgstr "" "las diferentes versiones de Python (en múltiples versiones de Python). Parso " "también es capaz de enlistar múltiples errores de sintaxis en tu archivo de " "Python." + +#: ../Doc/library/ast.rst:59 +msgid "? (question mark)" +msgstr "" + +#: ../Doc/library/ast.rst:59 ../Doc/library/ast.rst:60 +#, fuzzy +msgid "in AST grammar" +msgstr "Gramática abstracta" + +#: ../Doc/library/ast.rst:60 +msgid "* (asterisk)" +msgstr "" + +#~ msgid "" +#~ "``starargs`` and ``kwargs`` are each a single node, as in a function " +#~ "call. starargs will be expanded to join the list of base classes, and " +#~ "kwargs will be passed to the metaclass." +#~ msgstr "" +#~ "``starargs`` y ``kwargs`` son cada uno un solo nodo, como en una llamada " +#~ "de función. Los starargs se expandirán para unirse a la lista de clases " +#~ "base y los kwargs se pasarán a la metaclase." diff --git a/library/asyncio-dev.po b/library/asyncio-dev.po index 2cb39002ff..69ad5cd874 100644 --- a/library/asyncio-dev.po +++ b/library/asyncio-dev.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-02-28 11:21-0300\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/asyncio-dev.rst:7 msgid "Developing with asyncio" @@ -78,9 +77,10 @@ msgid "In addition to enabling the debug mode, consider also:" msgstr "Además de habilitar el modo depuración, considere también:" #: ../Doc/library/asyncio-dev.rst:36 +#, fuzzy msgid "" "setting the log level of the :ref:`asyncio logger ` to :py:" -"data:`logging.DEBUG`, for example the following snippet of code can be run " +"const:`logging.DEBUG`, for example the following snippet of code can be run " "at startup of the application::" msgstr "" "definir el nivel de log del :ref:`asyncio logger ` a :py:" @@ -189,9 +189,8 @@ msgstr "" "retorna un :class:`concurrent.futures.Future` para acceder al resultado::" #: ../Doc/library/asyncio-dev.rst:102 -msgid "" -"To handle signals and to execute subprocesses, the event loop must be run in " -"the main thread." +#, fuzzy +msgid "To handle signals the event loop must be run in the main thread." msgstr "" "Para manejar señales y ejecutar subprocesos, el bucle de eventos debe ser " "ejecutado en el hilo principal." @@ -270,8 +269,9 @@ msgstr "" "el logger ``\"asyncio\"``." #: ../Doc/library/asyncio-dev.rst:145 +#, fuzzy msgid "" -"The default log level is :py:data:`logging.INFO`, which can be easily " +"The default log level is :py:const:`logging.INFO`, which can be easily " "adjusted::" msgstr "" "El nivel de log por defecto es :py:data:`logging.INFO`, el cual puede ser " diff --git a/library/asyncio-eventloop.po b/library/asyncio-eventloop.po index a38f4461f7..6f55c48e38 100644 --- a/library/asyncio-eventloop.po +++ b/library/asyncio-eventloop.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-12-15 10:12-0300\n" "Last-Translator: Marco Richetta \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/asyncio-eventloop.rst:8 msgid "Event Loop" @@ -82,31 +81,35 @@ msgstr "" "actual." #: ../Doc/library/asyncio-eventloop.rst:36 -msgid "" -"If there is no running event loop a :exc:`RuntimeError` is raised. This " -"function can only be called from a coroutine or a callback." +msgid "Raise a :exc:`RuntimeError` if there is no running event loop." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:38 +#, fuzzy +msgid "This function can only be called from a coroutine or a callback." msgstr "" "Si no hay un bucle de eventos en ejecución, se lanza un :exc:`RuntimeError`. " "Esta función únicamente puede ser llamada desde una corrutina o una llamada " "de retorno." -#: ../Doc/library/asyncio-eventloop.rst:43 +#: ../Doc/library/asyncio-eventloop.rst:44 msgid "Get the current event loop." msgstr "Obtiene bucle de eventos actual." -#: ../Doc/library/asyncio-eventloop.rst:45 +#: ../Doc/library/asyncio-eventloop.rst:46 msgid "" -"If there is no current event loop set in the current OS thread, the OS " -"thread is main, and :func:`set_event_loop` has not yet been called, asyncio " -"will create a new event loop and set it as the current one." +"When called from a coroutine or a callback (e.g. scheduled with call_soon or " +"similar API), this function will always return the running event loop." msgstr "" -"Si no hay un bucle de eventos actual establecido en el hilo actual del " -"sistema operativo, el hilo del sistema operativo es el principal, y :func:" -"`set_event_loop` aún no ha sido llamado, asyncio creará un nuevo bucle de " -"eventos y lo establecerá como el actual." #: ../Doc/library/asyncio-eventloop.rst:50 msgid "" +"If there is no running event loop set, the function will return the result " +"of the ``get_event_loop_policy().get_event_loop()`` call." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:53 +msgid "" "Because this function has rather complex behavior (especially when custom " "event loop policies are in use), using the :func:`get_running_loop` function " "is preferred to :func:`get_event_loop` in coroutines and callbacks." @@ -116,34 +119,38 @@ msgstr "" "personalizadas), usar la función :func:`get_running_loop` es preferible " "antes que :func:`get_event_loop` en corrutinas y llamadas de retorno." -#: ../Doc/library/asyncio-eventloop.rst:55 +#: ../Doc/library/asyncio-eventloop.rst:58 +#, fuzzy msgid "" -"Consider also using the :func:`asyncio.run` function instead of using lower " -"level functions to manually create and close an event loop." +"As noted above, consider using the higher-level :func:`asyncio.run` " +"function, instead of using these lower level functions to manually create " +"and close an event loop." msgstr "" "Considere también usar la función :func:`asyncio.run` en lugar de usar " "funciones de bajo nivel para crear y cerrar manualmente un bucle de eventos." -#: ../Doc/library/asyncio-eventloop.rst:58 +#: ../Doc/library/asyncio-eventloop.rst:62 +#, fuzzy msgid "" -"Deprecation warning is emitted if there is no running event loop. In future " -"Python releases, this function will be an alias of :func:`get_running_loop`." +"Deprecation warning is emitted if there is no current event loop. In some " +"future Python release this will become an error." msgstr "" "Se emite una advertencia de obsolescencia si no hay un bucle de eventos en " "ejecución. En futuras versiones de Python, esta función será un alias de :" "func:`get_running_loop`." -#: ../Doc/library/asyncio-eventloop.rst:65 -msgid "Set *loop* as a current event loop for the current OS thread." +#: ../Doc/library/asyncio-eventloop.rst:68 +#, fuzzy +msgid "Set *loop* as the current event loop for the current OS thread." msgstr "" "Establece *loop* como el bucle de eventos actual para el hilo actual del " "sistema operativo." -#: ../Doc/library/asyncio-eventloop.rst:69 +#: ../Doc/library/asyncio-eventloop.rst:72 msgid "Create and return a new event loop object." msgstr "Crea y retorna un nuevo objeto de bucle de eventos." -#: ../Doc/library/asyncio-eventloop.rst:71 +#: ../Doc/library/asyncio-eventloop.rst:74 msgid "" "Note that the behaviour of :func:`get_event_loop`, :func:`set_event_loop`, " "and :func:`new_event_loop` functions can be altered by :ref:`setting a " @@ -154,15 +161,15 @@ msgstr "" "modificado mediante :ref:`estableciendo una política de bucle de eventos " "personalizada `." -#: ../Doc/library/asyncio-eventloop.rst:77 +#: ../Doc/library/asyncio-eventloop.rst:80 msgid "Contents" msgstr "Contenidos" -#: ../Doc/library/asyncio-eventloop.rst:78 +#: ../Doc/library/asyncio-eventloop.rst:81 msgid "This documentation page contains the following sections:" msgstr "Esta página de documentación contiene las siguientes secciones:" -#: ../Doc/library/asyncio-eventloop.rst:80 +#: ../Doc/library/asyncio-eventloop.rst:83 msgid "" "The `Event Loop Methods`_ section is the reference documentation of the " "event loop APIs;" @@ -170,7 +177,7 @@ msgstr "" "La sección `Métodos del bucle de eventos`_ es la documentación de referencia " "de las APIs del bucle de eventos;" -#: ../Doc/library/asyncio-eventloop.rst:83 +#: ../Doc/library/asyncio-eventloop.rst:86 msgid "" "The `Callback Handles`_ section documents the :class:`Handle` and :class:" "`TimerHandle` instances which are returned from scheduling methods such as :" @@ -180,7 +187,7 @@ msgstr "" "class:`TimerHandle` las cuales son retornadas por métodos planificados como :" "meth:`loop.call_soon` y :meth:`loop.call_later`;" -#: ../Doc/library/asyncio-eventloop.rst:87 +#: ../Doc/library/asyncio-eventloop.rst:90 msgid "" "The `Server Objects`_ section documents types returned from event loop " "methods like :meth:`loop.create_server`;" @@ -188,7 +195,7 @@ msgstr "" "La sección `Objetos del servidor`_ documenta tipos retornados por los " "métodos del bucle de eventos como :meth:`loop.create_server`;" -#: ../Doc/library/asyncio-eventloop.rst:90 +#: ../Doc/library/asyncio-eventloop.rst:93 msgid "" "The `Event Loop Implementations`_ section documents the :class:" "`SelectorEventLoop` and :class:`ProactorEventLoop` classes;" @@ -196,32 +203,32 @@ msgstr "" "La sección `Implementaciones de bucle de eventos`_ documenta las clases :" "class:`SelectorEventLoop` y :class:`ProactorEventLoop`;" -#: ../Doc/library/asyncio-eventloop.rst:93 +#: ../Doc/library/asyncio-eventloop.rst:96 msgid "" "The `Examples`_ section showcases how to work with some event loop APIs." msgstr "" "La sección `Ejemplos`_ muestra como trabajar con algunas APIs de bucle de " "eventos." -#: ../Doc/library/asyncio-eventloop.rst:100 +#: ../Doc/library/asyncio-eventloop.rst:103 msgid "Event Loop Methods" msgstr "Métodos del bucle de eventos" -#: ../Doc/library/asyncio-eventloop.rst:102 +#: ../Doc/library/asyncio-eventloop.rst:105 msgid "Event loops have **low-level** APIs for the following:" msgstr "Los bucles de eventos tienen APIs de **bajo nivel** para lo siguiente:" -#: ../Doc/library/asyncio-eventloop.rst:110 +#: ../Doc/library/asyncio-eventloop.rst:113 msgid "Running and stopping the loop" msgstr "Iniciar y para el bucle" -#: ../Doc/library/asyncio-eventloop.rst:114 +#: ../Doc/library/asyncio-eventloop.rst:117 msgid "Run until the *future* (an instance of :class:`Future`) has completed." msgstr "" "Se ejecuta hasta que *future* (una instancia de :class:`Future`) se haya " "completado." -#: ../Doc/library/asyncio-eventloop.rst:117 +#: ../Doc/library/asyncio-eventloop.rst:120 msgid "" "If the argument is a :ref:`coroutine object ` it is implicitly " "scheduled to run as a :class:`asyncio.Task`." @@ -229,15 +236,15 @@ msgstr "" "Si el argumento es un :ref:`objeto corrutina ` está " "implícitamente planificado para ejecutarse como una :class:`asyncio.Task`." -#: ../Doc/library/asyncio-eventloop.rst:120 +#: ../Doc/library/asyncio-eventloop.rst:123 msgid "Return the Future's result or raise its exception." msgstr "Retorna el resultado del Futuro o genera una excepción." -#: ../Doc/library/asyncio-eventloop.rst:124 +#: ../Doc/library/asyncio-eventloop.rst:127 msgid "Run the event loop until :meth:`stop` is called." msgstr "Ejecuta el bucle de eventos hasta que :meth:`stop` es llamado." -#: ../Doc/library/asyncio-eventloop.rst:126 +#: ../Doc/library/asyncio-eventloop.rst:129 msgid "" "If :meth:`stop` is called before :meth:`run_forever()` is called, the loop " "will poll the I/O selector once with a timeout of zero, run all callbacks " @@ -249,7 +256,7 @@ msgstr "" "ejecuta todas las llamadas planificadas como respuesta a eventos E/S (y " "aquellas que ya hayan sido planificados), y entonces termina." -#: ../Doc/library/asyncio-eventloop.rst:131 +#: ../Doc/library/asyncio-eventloop.rst:134 msgid "" "If :meth:`stop` is called while :meth:`run_forever` is running, the loop " "will run the current batch of callbacks and then exit. Note that new " @@ -263,23 +270,23 @@ msgstr "" "caso; en su lugar, ellas correrán la próxima vez que :meth:`run_forever` o :" "meth:`run_until_complete` sean llamados." -#: ../Doc/library/asyncio-eventloop.rst:139 +#: ../Doc/library/asyncio-eventloop.rst:142 msgid "Stop the event loop." msgstr "Detener el bucle de eventos." -#: ../Doc/library/asyncio-eventloop.rst:143 +#: ../Doc/library/asyncio-eventloop.rst:146 msgid "Return ``True`` if the event loop is currently running." msgstr "Retorna ``True`` si el bucle de eventos esta en ejecución actualmente." -#: ../Doc/library/asyncio-eventloop.rst:147 +#: ../Doc/library/asyncio-eventloop.rst:150 msgid "Return ``True`` if the event loop was closed." msgstr "Retorna ``True`` si el bucle de eventos se cerró." -#: ../Doc/library/asyncio-eventloop.rst:151 +#: ../Doc/library/asyncio-eventloop.rst:154 msgid "Close the event loop." msgstr "Cierra el bucle de eventos." -#: ../Doc/library/asyncio-eventloop.rst:153 +#: ../Doc/library/asyncio-eventloop.rst:156 msgid "" "The loop must not be running when this function is called. Any pending " "callbacks will be discarded." @@ -287,7 +294,7 @@ msgstr "" "El bucle no debe estar en ejecución cuando se llama a esta función. " "Cualquier llamada de retorno pendiente será descartada." -#: ../Doc/library/asyncio-eventloop.rst:156 +#: ../Doc/library/asyncio-eventloop.rst:159 msgid "" "This method clears all queues and shuts down the executor, but does not wait " "for the executor to finish." @@ -295,7 +302,7 @@ msgstr "" "Este método limpia todas las colas y apaga el ejecutor, pero no espera a que " "el ejecutor termine." -#: ../Doc/library/asyncio-eventloop.rst:159 +#: ../Doc/library/asyncio-eventloop.rst:162 msgid "" "This method is idempotent and irreversible. No other methods should be " "called after the event loop is closed." @@ -303,7 +310,7 @@ msgstr "" "Este método es idempotente e irreversible. No se debe llamar ningún otro " "método después que el bucle de eventos es cerrado." -#: ../Doc/library/asyncio-eventloop.rst:164 +#: ../Doc/library/asyncio-eventloop.rst:167 msgid "" "Schedule all currently open :term:`asynchronous generator` objects to close " "with an :meth:`~agen.aclose()` call. After calling this method, the event " @@ -316,8 +323,7 @@ msgstr "" "nuevo generador asíncrono es iterado. Esto debe ser usado para finalizar de " "manera confiable todos los generadores asíncronos planificados." -#: ../Doc/library/asyncio-eventloop.rst:170 -#: ../Doc/library/asyncio-eventloop.rst:190 +#: ../Doc/library/asyncio-eventloop.rst:173 msgid "" "Note that there is no need to call this function when :func:`asyncio.run` is " "used." @@ -325,29 +331,55 @@ msgstr "" "Tenga en cuenta que no hay necesidad de llamar esta función cuando :func:" "`asyncio.run` es utilizado." -#: ../Doc/library/asyncio-eventloop.rst:173 -#: ../Doc/library/asyncio-eventloop.rst:1196 -#: ../Doc/library/asyncio-eventloop.rst:1584 +#: ../Doc/library/asyncio-eventloop.rst:176 +#: ../Doc/library/asyncio-eventloop.rst:1236 +#: ../Doc/library/asyncio-eventloop.rst:1643 msgid "Example::" msgstr "Ejemplo::" -#: ../Doc/library/asyncio-eventloop.rst:185 +#: ../Doc/library/asyncio-eventloop.rst:188 +#, fuzzy msgid "" "Schedule the closure of the default executor and wait for it to join all of " -"the threads in the :class:`ThreadPoolExecutor`. After calling this method, " -"a :exc:`RuntimeError` will be raised if :meth:`loop.run_in_executor` is " -"called while using the default executor." +"the threads in the :class:`~concurrent.futures.ThreadPoolExecutor`. Once " +"this method has been called, using the default executor with :meth:`loop." +"run_in_executor` will raise a :exc:`RuntimeError`." msgstr "" "Programa el cierre del ejecutor predeterminado y espere a que se una a todos " "los hilos de la clase :class:`ThreadPoolExecutor`. Después de llamar a este " "método, se lanzará un :exc:`RuntimeError` si se llama a :meth:`loop." "run_in_executor` mientras se usa el ejecutor predeterminado." -#: ../Doc/library/asyncio-eventloop.rst:197 +#: ../Doc/library/asyncio-eventloop.rst:194 +msgid "" +"The *timeout* parameter specifies the amount of time (in :class:`float` " +"seconds) the executor will be given to finish joining. With the default, " +"``None``, the executor is allowed an unlimited amount of time." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:199 +msgid "" +"If the *timeout* is reached, a :exc:`RuntimeWarning` is emitted and the " +"default executor is terminated without waiting for its threads to finish " +"joining." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:205 +msgid "" +"Do not call this method when using :func:`asyncio.run`, as the latter " +"handles default executor shutdown automatically." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:210 +#, fuzzy +msgid "Added the *timeout* parameter." +msgstr "Agregado el parámetro *name*." + +#: ../Doc/library/asyncio-eventloop.rst:214 msgid "Scheduling callbacks" msgstr "Programación de llamadas de retorno" -#: ../Doc/library/asyncio-eventloop.rst:201 +#: ../Doc/library/asyncio-eventloop.rst:218 msgid "" "Schedule the *callback* :term:`callback` to be called with *args* arguments " "at the next iteration of the event loop." @@ -355,7 +387,16 @@ msgstr "" "Programa el *callback* (retrollamada) :term:`callback` para que se llame con " "argumentos *args* en la próxima iteración del ciclo de eventos." -#: ../Doc/library/asyncio-eventloop.rst:204 +#: ../Doc/library/asyncio-eventloop.rst:221 +#, fuzzy +msgid "" +"Return an instance of :class:`asyncio.Handle`, which can be used later to " +"cancel the callback." +msgstr "" +"Una instancia de :class:`asyncio.Handle` es retornada, que puede ser " +"utilizada después para cancelar la llamada." + +#: ../Doc/library/asyncio-eventloop.rst:224 msgid "" "Callbacks are called in the order in which they are registered. Each " "callback will be called exactly once." @@ -363,39 +404,34 @@ msgstr "" "Llamadas que son ejecutadas en el orden en el que fueron registradas. Cada " "llamada será ejecutada exactamente una sola vez." -#: ../Doc/library/asyncio-eventloop.rst:207 -#: ../Doc/library/asyncio-eventloop.rst:274 +#: ../Doc/library/asyncio-eventloop.rst:227 +#, fuzzy msgid "" -"An optional keyword-only *context* argument allows specifying a custom :" -"class:`contextvars.Context` for the *callback* to run in. The current " -"context is used when no *context* is provided." +"The optional keyword-only *context* argument specifies a custom :class:" +"`contextvars.Context` for the *callback* to run in. Callbacks use the " +"current context when no *context* is provided." msgstr "" "Un argumento *context* opcional y solo de palabra clave que permite " "especificar una clase :class:`contextvars.Context` personalizada en la cual " "*callback* será ejecutada. Cuando no se provee *context* el contexto actual " "es utilizado." -#: ../Doc/library/asyncio-eventloop.rst:211 -msgid "" -"An instance of :class:`asyncio.Handle` is returned, which can be used later " -"to cancel the callback." -msgstr "" -"Una instancia de :class:`asyncio.Handle` es retornada, que puede ser " -"utilizada después para cancelar la llamada." - -#: ../Doc/library/asyncio-eventloop.rst:214 -msgid "This method is not thread-safe." +#: ../Doc/library/asyncio-eventloop.rst:231 +#, fuzzy +msgid "Unlike :meth:`call_soon_threadsafe`, this method is not thread-safe." msgstr "Este método no es seguro para subprocesos." -#: ../Doc/library/asyncio-eventloop.rst:218 +#: ../Doc/library/asyncio-eventloop.rst:235 +#, fuzzy msgid "" -"A thread-safe variant of :meth:`call_soon`. Must be used to schedule " -"callbacks *from another thread*." +"A thread-safe variant of :meth:`call_soon`. When scheduling callbacks from " +"another thread, this function *must* be used, since :meth:`call_soon` is not " +"thread-safe." msgstr "" "Una variante de :meth:`call_soon` que es segura para subprocesos. Debe ser " "usada en llamadas planificadas *desde otro hilo*." -#: ../Doc/library/asyncio-eventloop.rst:221 +#: ../Doc/library/asyncio-eventloop.rst:239 msgid "" "Raises :exc:`RuntimeError` if called on a loop that's been closed. This can " "happen on a secondary thread when the main application is shutting down." @@ -404,7 +440,7 @@ msgstr "" "puede suceder en un hilo secundario cuando la aplicación principal se está " "apagando." -#: ../Doc/library/asyncio-eventloop.rst:225 +#: ../Doc/library/asyncio-eventloop.rst:243 msgid "" "See the :ref:`concurrency and multithreading ` " "section of the documentation." @@ -412,9 +448,9 @@ msgstr "" "Vea sección :ref:`concurrencia y multiproceso ` de " "la documentación." -#: ../Doc/library/asyncio-eventloop.rst:228 -#: ../Doc/library/asyncio-eventloop.rst:278 -#: ../Doc/library/asyncio-eventloop.rst:298 +#: ../Doc/library/asyncio-eventloop.rst:246 +#: ../Doc/library/asyncio-eventloop.rst:296 +#: ../Doc/library/asyncio-eventloop.rst:316 msgid "" "The *context* keyword-only parameter was added. See :pep:`567` for more " "details." @@ -422,7 +458,7 @@ msgstr "" "Fue agregado el parámetro solo de palabra clave *context*. Vea :pep:`567` " "para mas detalles." -#: ../Doc/library/asyncio-eventloop.rst:236 +#: ../Doc/library/asyncio-eventloop.rst:254 msgid "" "Most :mod:`asyncio` scheduling functions don't allow passing keyword " "arguments. To do that, use :func:`functools.partial`::" @@ -431,7 +467,7 @@ msgstr "" "argumentos de palabra clave. Para hacer eso utilice :func:`functools." "partial`::" -#: ../Doc/library/asyncio-eventloop.rst:243 +#: ../Doc/library/asyncio-eventloop.rst:261 msgid "" "Using partial objects is usually more convenient than using lambdas, as " "asyncio can render partial objects better in debug and error messages." @@ -440,11 +476,11 @@ msgstr "" "lambdas, ya que asyncio puede renderizar mejor objetos parciales en mensajes " "de depuración y error." -#: ../Doc/library/asyncio-eventloop.rst:251 +#: ../Doc/library/asyncio-eventloop.rst:269 msgid "Scheduling delayed callbacks" msgstr "Planificando llamadas retardadas" -#: ../Doc/library/asyncio-eventloop.rst:253 +#: ../Doc/library/asyncio-eventloop.rst:271 msgid "" "Event loop provides mechanisms to schedule callback functions to be called " "at some point in the future. Event loop uses monotonic clocks to track time." @@ -453,7 +489,7 @@ msgstr "" "que serán ejecutadas en algún punto en el futuro. El bucle de eventos usa " "relojes monotónicos para seguir el tiempo." -#: ../Doc/library/asyncio-eventloop.rst:260 +#: ../Doc/library/asyncio-eventloop.rst:278 msgid "" "Schedule *callback* to be called after the given *delay* number of seconds " "(can be either an int or a float)." @@ -461,8 +497,8 @@ msgstr "" "Planifica *callback* para ser ejecutada luego de *delay* número de segundos " "(puede ser tanto un entero como un flotante)." -#: ../Doc/library/asyncio-eventloop.rst:263 -#: ../Doc/library/asyncio-eventloop.rst:295 +#: ../Doc/library/asyncio-eventloop.rst:281 +#: ../Doc/library/asyncio-eventloop.rst:313 msgid "" "An instance of :class:`asyncio.TimerHandle` is returned which can be used to " "cancel the callback." @@ -470,7 +506,7 @@ msgstr "" "Una instancia de :class:`asyncio.TimerHandle` es retornada, la que puede ser " "utilizada para cancelar la ejecución." -#: ../Doc/library/asyncio-eventloop.rst:266 +#: ../Doc/library/asyncio-eventloop.rst:284 msgid "" "*callback* will be called exactly once. If two callbacks are scheduled for " "exactly the same time, the order in which they are called is undefined." @@ -479,7 +515,7 @@ msgstr "" "planificadas para el mismo momento exacto, el orden en el que son ejecutadas " "es indefinido." -#: ../Doc/library/asyncio-eventloop.rst:270 +#: ../Doc/library/asyncio-eventloop.rst:288 msgid "" "The optional positional *args* will be passed to the callback when it is " "called. If you want the callback to be called with keyword arguments use :" @@ -489,7 +525,18 @@ msgstr "" "sea ejecutada. Si quieres que la llamada sea ejecutada con argumentos de " "palabra clave usa :func:`functools.partial`." -#: ../Doc/library/asyncio-eventloop.rst:282 +#: ../Doc/library/asyncio-eventloop.rst:292 +msgid "" +"An optional keyword-only *context* argument allows specifying a custom :" +"class:`contextvars.Context` for the *callback* to run in. The current " +"context is used when no *context* is provided." +msgstr "" +"Un argumento *context* opcional y solo de palabra clave que permite " +"especificar una clase :class:`contextvars.Context` personalizada en la cual " +"*callback* será ejecutada. Cuando no se provee *context* el contexto actual " +"es utilizado." + +#: ../Doc/library/asyncio-eventloop.rst:300 msgid "" "In Python 3.7 and earlier with the default event loop implementation, the " "*delay* could not exceed one day. This has been fixed in Python 3.8." @@ -498,7 +545,7 @@ msgstr "" "eventos predeterminada, el *delay* no puede exceder un día. Esto fue " "arreglado en Python 3.8." -#: ../Doc/library/asyncio-eventloop.rst:289 +#: ../Doc/library/asyncio-eventloop.rst:307 msgid "" "Schedule *callback* to be called at the given absolute timestamp *when* (an " "int or a float), using the same time reference as :meth:`loop.time`." @@ -507,11 +554,11 @@ msgstr "" "*when* (un entero o un flotante), usando la misma referencia de tiempo que :" "meth:`loop.time`." -#: ../Doc/library/asyncio-eventloop.rst:293 +#: ../Doc/library/asyncio-eventloop.rst:311 msgid "This method's behavior is the same as :meth:`call_later`." msgstr "El comportamiento de este método es el mismo que :meth:`call_later`." -#: ../Doc/library/asyncio-eventloop.rst:302 +#: ../Doc/library/asyncio-eventloop.rst:320 msgid "" "In Python 3.7 and earlier with the default event loop implementation, the " "difference between *when* and the current time could not exceed one day. " @@ -521,7 +568,7 @@ msgstr "" "eventos predeterminada, la diferencia entre *when* y el tiempo actual no " "puede exceder un día. Esto fue arreglado en Python 3.8." -#: ../Doc/library/asyncio-eventloop.rst:309 +#: ../Doc/library/asyncio-eventloop.rst:327 msgid "" "Return the current time, as a :class:`float` value, according to the event " "loop's internal monotonic clock." @@ -529,7 +576,7 @@ msgstr "" "Retorna el tiempo actual, como un :class:`float`, de acuerdo al reloj " "monotónico interno del bucle de evento." -#: ../Doc/library/asyncio-eventloop.rst:313 +#: ../Doc/library/asyncio-eventloop.rst:331 msgid "" "In Python 3.7 and earlier timeouts (relative *delay* or absolute *when*) " "should not exceed one day. This has been fixed in Python 3.8." @@ -537,19 +584,19 @@ msgstr "" "En Python 3.7 y versiones anteriores los tiempos de espera (*delay* relativo " "o *when* absoluto) no deben exceder un día. Esto fue arreglado en Python 3.8." -#: ../Doc/library/asyncio-eventloop.rst:319 +#: ../Doc/library/asyncio-eventloop.rst:337 msgid "The :func:`asyncio.sleep` function." msgstr "La función :func:`asyncio.sleep`." -#: ../Doc/library/asyncio-eventloop.rst:323 +#: ../Doc/library/asyncio-eventloop.rst:341 msgid "Creating Futures and Tasks" msgstr "Creando futuros y tareas" -#: ../Doc/library/asyncio-eventloop.rst:327 +#: ../Doc/library/asyncio-eventloop.rst:345 msgid "Create an :class:`asyncio.Future` object attached to the event loop." msgstr "Crea un objeto :class:`asyncio.Future` adjunto al bucle de eventos." -#: ../Doc/library/asyncio-eventloop.rst:329 +#: ../Doc/library/asyncio-eventloop.rst:347 msgid "" "This is the preferred way to create Futures in asyncio. This lets third-" "party event loops provide alternative implementations of the Future object " @@ -559,7 +606,7 @@ msgstr "" "bucles de eventos de terceros provean implementaciones alternativas del " "objeto Future (con mejor rendimiento o instrumentación)." -#: ../Doc/library/asyncio-eventloop.rst:337 +#: ../Doc/library/asyncio-eventloop.rst:355 msgid "" "Schedule the execution of :ref:`coroutine ` *coro*. Return a :" "class:`Task` object." @@ -567,7 +614,7 @@ msgstr "" "Planifica la ejecución de la :ref:`corrutina ` *coro*. Retorna un " "objeto :class:`Task`." -#: ../Doc/library/asyncio-eventloop.rst:340 +#: ../Doc/library/asyncio-eventloop.rst:358 msgid "" "Third-party event loops can use their own subclass of :class:`Task` for " "interoperability. In this case, the result type is a subclass of :class:" @@ -577,7 +624,7 @@ msgstr "" "`Task` por interoperabilidad. En este caso, el tipo de resultado es una " "subclase de :class:`Task`." -#: ../Doc/library/asyncio-eventloop.rst:344 +#: ../Doc/library/asyncio-eventloop.rst:362 msgid "" "If the *name* argument is provided and not ``None``, it is set as the name " "of the task using :meth:`Task.set_name`." @@ -585,7 +632,7 @@ msgstr "" "Si el argumento *name* es provisto y no ``None``, se establece como el " "nombre de la tarea usando :meth:`Task.set_name`." -#: ../Doc/library/asyncio-eventloop.rst:347 +#: ../Doc/library/asyncio-eventloop.rst:365 msgid "" "An optional keyword-only *context* argument allows specifying a custom :" "class:`contextvars.Context` for the *coro* to run in. The current context " @@ -596,21 +643,21 @@ msgstr "" "*coro* será ejecutada. Cuando no se provee *context* el contexto actual es " "utilizado." -#: ../Doc/library/asyncio-eventloop.rst:351 +#: ../Doc/library/asyncio-eventloop.rst:369 msgid "Added the *name* parameter." msgstr "Agregado el parámetro *name*." -#: ../Doc/library/asyncio-eventloop.rst:354 +#: ../Doc/library/asyncio-eventloop.rst:372 msgid "Added the *context* parameter." msgstr "Agregado el parámetro *context*." -#: ../Doc/library/asyncio-eventloop.rst:359 +#: ../Doc/library/asyncio-eventloop.rst:377 msgid "Set a task factory that will be used by :meth:`loop.create_task`." msgstr "" "Establece una fábrica de tareas que será utilizada por :meth:`loop." "create_task`." -#: ../Doc/library/asyncio-eventloop.rst:362 +#: ../Doc/library/asyncio-eventloop.rst:380 msgid "" "If *factory* is ``None`` the default task factory will be set. Otherwise, " "*factory* must be a *callable* with the signature matching ``(loop, coro, " @@ -624,16 +671,16 @@ msgstr "" "eventos activo y *coro* es un objeto de corrutina. El ejecutable debe " "retornar un objeto :class:`asyncio.Future` compatible." -#: ../Doc/library/asyncio-eventloop.rst:370 +#: ../Doc/library/asyncio-eventloop.rst:388 msgid "Return a task factory or ``None`` if the default one is in use." msgstr "" "Retorna una fábrica de tareas o ``None`` si la predefinida está en uso." -#: ../Doc/library/asyncio-eventloop.rst:374 +#: ../Doc/library/asyncio-eventloop.rst:392 msgid "Opening network connections" msgstr "Abriendo conexiones de red" -#: ../Doc/library/asyncio-eventloop.rst:384 +#: ../Doc/library/asyncio-eventloop.rst:403 msgid "" "Open a streaming transport connection to a given address specified by *host* " "and *port*." @@ -641,9 +688,10 @@ msgstr "" "Abre una conexión de transmisión de transporte a una dirección especificada " "por *host* y *port*." -#: ../Doc/library/asyncio-eventloop.rst:387 +#: ../Doc/library/asyncio-eventloop.rst:406 +#, fuzzy msgid "" -"The socket family can be either :py:data:`~socket.AF_INET` or :py:data:" +"The socket family can be either :py:const:`~socket.AF_INET` or :py:const:" "`~socket.AF_INET6` depending on *host* (or the *family* argument, if " "provided)." msgstr "" @@ -651,13 +699,14 @@ msgstr "" "data:`~socket.AF_INET6` dependiendo de *host* (o del argumento *family* si " "es que fue provisto)." -#: ../Doc/library/asyncio-eventloop.rst:391 -msgid "The socket type will be :py:data:`~socket.SOCK_STREAM`." +#: ../Doc/library/asyncio-eventloop.rst:410 +#, fuzzy +msgid "The socket type will be :py:const:`~socket.SOCK_STREAM`." msgstr "El tipo de socket será :py:data:`~socket.SOCK_STREAM`." -#: ../Doc/library/asyncio-eventloop.rst:393 -#: ../Doc/library/asyncio-eventloop.rst:1112 -#: ../Doc/library/asyncio-eventloop.rst:1128 +#: ../Doc/library/asyncio-eventloop.rst:412 +#: ../Doc/library/asyncio-eventloop.rst:1152 +#: ../Doc/library/asyncio-eventloop.rst:1168 msgid "" "*protocol_factory* must be a callable returning an :ref:`asyncio protocol " "` implementation." @@ -665,7 +714,7 @@ msgstr "" "*protocol_factory* debe ser un ejecutable que retorna una implementación " "del :ref:`asyncio protocol `." -#: ../Doc/library/asyncio-eventloop.rst:396 +#: ../Doc/library/asyncio-eventloop.rst:415 msgid "" "This method will try to establish the connection in the background. When " "successful, it returns a ``(transport, protocol)`` pair." @@ -673,11 +722,11 @@ msgstr "" "Este método tratará de establecer la conexión en un segundo plano. Cuando es " "exitosa, retorna un par ``(transport, protocol)``." -#: ../Doc/library/asyncio-eventloop.rst:399 +#: ../Doc/library/asyncio-eventloop.rst:418 msgid "The chronological synopsis of the underlying operation is as follows:" msgstr "La sinopsis cronológica de las operaciones subyacentes es como sigue:" -#: ../Doc/library/asyncio-eventloop.rst:401 +#: ../Doc/library/asyncio-eventloop.rst:420 msgid "" "The connection is established and a :ref:`transport ` is " "created for it." @@ -685,7 +734,7 @@ msgstr "" "La conexión es establecida y un :ref:`transporte ` es " "creado para ello." -#: ../Doc/library/asyncio-eventloop.rst:404 +#: ../Doc/library/asyncio-eventloop.rst:423 msgid "" "*protocol_factory* is called without arguments and is expected to return a :" "ref:`protocol ` instance." @@ -693,7 +742,7 @@ msgstr "" "*protocol_factory* es llamado sin argumentos y se espera que retorne una " "instancia de :ref:`protocol `." -#: ../Doc/library/asyncio-eventloop.rst:407 +#: ../Doc/library/asyncio-eventloop.rst:426 msgid "" "The protocol instance is coupled with the transport by calling its :meth:" "`~BaseProtocol.connection_made` method." @@ -701,24 +750,24 @@ msgstr "" "La instancia del protocolo se acopla con el transporte mediante el llamado " "de su método :meth:`~BaseProtocol.connection_made`." -#: ../Doc/library/asyncio-eventloop.rst:410 +#: ../Doc/library/asyncio-eventloop.rst:429 msgid "A ``(transport, protocol)`` tuple is returned on success." msgstr "" "Una tupla ``(transport, protocol)`` es retornada cuando se tiene éxito." -#: ../Doc/library/asyncio-eventloop.rst:412 +#: ../Doc/library/asyncio-eventloop.rst:431 msgid "" "The created transport is an implementation-dependent bidirectional stream." msgstr "" "El transporte creado es una transmisión (*stream*) bidireccional que depende " "de la implementación." -#: ../Doc/library/asyncio-eventloop.rst:415 -#: ../Doc/library/asyncio-eventloop.rst:536 +#: ../Doc/library/asyncio-eventloop.rst:434 +#: ../Doc/library/asyncio-eventloop.rst:566 msgid "Other arguments:" msgstr "Otros argumentos:" -#: ../Doc/library/asyncio-eventloop.rst:417 +#: ../Doc/library/asyncio-eventloop.rst:436 msgid "" "*ssl*: if given and not false, a SSL/TLS transport is created (by default a " "plain TCP transport is created). If *ssl* is a :class:`ssl.SSLContext` " @@ -732,11 +781,11 @@ msgstr "" "transporte; si *ssl* es :const:`True`, se utiliza un contexto predeterminado " "retornado por :func:`ssl.create_default_context`." -#: ../Doc/library/asyncio-eventloop.rst:423 +#: ../Doc/library/asyncio-eventloop.rst:442 msgid ":ref:`SSL/TLS security considerations `" msgstr ":ref:`Consideraciones de seguridad SSL/TLS `" -#: ../Doc/library/asyncio-eventloop.rst:425 +#: ../Doc/library/asyncio-eventloop.rst:444 msgid "" "*server_hostname* sets or overrides the hostname that the target server's " "certificate will be matched against. Should only be passed if *ssl* is not " @@ -756,7 +805,7 @@ msgstr "" "permitiendo potenciales ataques de hombre-en-el-medio, *man-in-the-middle " "attacks*)." -#: ../Doc/library/asyncio-eventloop.rst:433 +#: ../Doc/library/asyncio-eventloop.rst:452 msgid "" "*family*, *proto*, *flags* are the optional address family, protocol and " "flags to be passed through to getaddrinfo() for *host* resolution. If given, " @@ -768,7 +817,7 @@ msgstr "" "de *host*. Si están dados, todos ellos deberían ser enteros de las " "constantes del módulo :mod:`socket` correspondiente." -#: ../Doc/library/asyncio-eventloop.rst:438 +#: ../Doc/library/asyncio-eventloop.rst:457 msgid "" "*happy_eyeballs_delay*, if given, enables Happy Eyeballs for this " "connection. It should be a floating-point number representing the amount of " @@ -784,7 +833,7 @@ msgstr "" "intento de conexión\" como se define en :rfc:`8305`. Un valor predeterminado " "sensato recomendado por el RFC es ``0.25`` (250 milisegundos)." -#: ../Doc/library/asyncio-eventloop.rst:446 +#: ../Doc/library/asyncio-eventloop.rst:465 msgid "" "*interleave* controls address reordering when a host name resolves to " "multiple IP addresses. If ``0`` or unspecified, no reordering is done, and " @@ -804,7 +853,7 @@ msgstr "" "`8305`. El valor predefinido es ``0`` si *happy_eyeballs_delay* no es " "especificado, y ``1`` si lo es." -#: ../Doc/library/asyncio-eventloop.rst:455 +#: ../Doc/library/asyncio-eventloop.rst:474 msgid "" "*sock*, if given, should be an existing, already connected :class:`socket." "socket` object to be used by the transport. If *sock* is given, none of " @@ -816,9 +865,9 @@ msgstr "" "ningún *host*, *port*, *family*, *proto*, *flags*, *happy_eyeballs_delay*, " "*interleave* o *local_addr* deben ser especificados." -#: ../Doc/library/asyncio-eventloop.rst:463 -#: ../Doc/library/asyncio-eventloop.rst:567 -#: ../Doc/library/asyncio-eventloop.rst:791 +#: ../Doc/library/asyncio-eventloop.rst:482 +#: ../Doc/library/asyncio-eventloop.rst:597 +#: ../Doc/library/asyncio-eventloop.rst:821 msgid "" "The *sock* argument transfers ownership of the socket to the transport " "created. To close the socket, call the transport's :meth:`~asyncio." @@ -828,7 +877,7 @@ msgstr "" "Para cerrar el socket, llame al método :meth:`~asyncio.BaseTransport.close` " "del transporte." -#: ../Doc/library/asyncio-eventloop.rst:467 +#: ../Doc/library/asyncio-eventloop.rst:486 msgid "" "*local_addr*, if given, is a ``(local_host, local_port)`` tuple used to bind " "the socket locally. The *local_host* and *local_port* are looked up using " @@ -838,8 +887,8 @@ msgstr "" "para enlazar el socket localmente. Los *local_host* y *local_port* son " "buscados usando ``getaddrinfo()``, de manera similar que con *host* y *port*." -#: ../Doc/library/asyncio-eventloop.rst:471 -#: ../Doc/library/asyncio-eventloop.rst:877 +#: ../Doc/library/asyncio-eventloop.rst:490 +#: ../Doc/library/asyncio-eventloop.rst:915 msgid "" "*ssl_handshake_timeout* is (for a TLS connection) the time in seconds to " "wait for the TLS handshake to complete before aborting the connection. " @@ -849,10 +898,10 @@ msgstr "" "esperar que se complete el *handshake* TLS antes de abortar la conexión. " "``60.0`` segundos si es ``None`` (predefinido)." -#: ../Doc/library/asyncio-eventloop.rst:475 -#: ../Doc/library/asyncio-eventloop.rst:708 -#: ../Doc/library/asyncio-eventloop.rst:802 -#: ../Doc/library/asyncio-eventloop.rst:881 +#: ../Doc/library/asyncio-eventloop.rst:494 +#: ../Doc/library/asyncio-eventloop.rst:738 +#: ../Doc/library/asyncio-eventloop.rst:832 +#: ../Doc/library/asyncio-eventloop.rst:919 msgid "" "*ssl_shutdown_timeout* is the time in seconds to wait for the SSL shutdown " "to complete before aborting the connection. ``30.0`` seconds if ``None`` " @@ -862,35 +911,47 @@ msgstr "" "el apagado SSL antes de abortar la conexión. ``30.0`` segundos si es " "``None`` (predefinido)." -#: ../Doc/library/asyncio-eventloop.rst:481 -#: ../Doc/library/asyncio-eventloop.rst:720 +#: ../Doc/library/asyncio-eventloop.rst:498 +msgid "" +"*all_errors* determines what exceptions are raised when a connection cannot " +"be created. By default, only a single ``Exception`` is raised: the first " +"exception if there is only one or all errors have same message, or a single " +"``OSError`` with the error messages combined. When ``all_errors`` is " +"``True``, an ``ExceptionGroup`` will be raised containing all exceptions " +"(even if there is only one)." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:508 +#: ../Doc/library/asyncio-eventloop.rst:750 msgid "Added support for SSL/TLS in :class:`ProactorEventLoop`." msgstr "Agregado el soporte para SSL/TLS en :class:`ProactorEventLoop`." -#: ../Doc/library/asyncio-eventloop.rst:485 +#: ../Doc/library/asyncio-eventloop.rst:512 +#, fuzzy msgid "" -"The socket option :py:data:`~socket.TCP_NODELAY` is set by default for all " +"The socket option :py:const:`~socket.TCP_NODELAY` is set by default for all " "TCP connections." msgstr "" "La opción del socket :py:data:`~socket.TCP_NODELAY` es establecida de manera " "predeterminada para todas las conexiones TCP." -#: ../Doc/library/asyncio-eventloop.rst:490 -#: ../Doc/library/asyncio-eventloop.rst:812 +#: ../Doc/library/asyncio-eventloop.rst:517 +#: ../Doc/library/asyncio-eventloop.rst:842 msgid "Added the *ssl_handshake_timeout* parameter." msgstr "Agregado el parámetro *ssl_handshake_timeout*." -#: ../Doc/library/asyncio-eventloop.rst:494 +#: ../Doc/library/asyncio-eventloop.rst:521 msgid "Added the *happy_eyeballs_delay* and *interleave* parameters." msgstr "Agregados los parámetros *happy_eyeballs_delay* y *interleave*." -#: ../Doc/library/asyncio-eventloop.rst:496 +#: ../Doc/library/asyncio-eventloop.rst:523 +#, fuzzy msgid "" "Happy Eyeballs Algorithm: Success with Dual-Stack Hosts. When a server's " "IPv4 path and protocol are working, but the server's IPv6 path and protocol " "are not working, a dual-stack client application experiences significant " "connection delay compared to an IPv4-only client. This is undesirable " -"because it causes the dual- stack client to have a worse user experience. " +"because it causes the dual-stack client to have a worse user experience. " "This document specifies requirements for algorithms that reduce this user-" "visible delay and provides an algorithm." msgstr "" @@ -904,20 +965,25 @@ msgstr "" "para algoritmos que reducen esta demora visible por el usuario, y provee un " "algoritmo." -#: ../Doc/library/asyncio-eventloop.rst:505 -msgid "For more information: https://tools.ietf.org/html/rfc6555" +#: ../Doc/library/asyncio-eventloop.rst:532 +#, fuzzy +msgid "For more information: https://datatracker.ietf.org/doc/html/rfc6555" msgstr "Para mas información: https://tools.ietf.org/html/rfc6555" -#: ../Doc/library/asyncio-eventloop.rst:509 -#: ../Doc/library/asyncio-eventloop.rst:628 -#: ../Doc/library/asyncio-eventloop.rst:734 -#: ../Doc/library/asyncio-eventloop.rst:769 -#: ../Doc/library/asyncio-eventloop.rst:816 -#: ../Doc/library/asyncio-eventloop.rst:889 +#: ../Doc/library/asyncio-eventloop.rst:536 +#: ../Doc/library/asyncio-eventloop.rst:658 +#: ../Doc/library/asyncio-eventloop.rst:764 +#: ../Doc/library/asyncio-eventloop.rst:799 +#: ../Doc/library/asyncio-eventloop.rst:846 +#: ../Doc/library/asyncio-eventloop.rst:927 msgid "Added the *ssl_shutdown_timeout* parameter." msgstr "Agregado el parámetro *ssl_shutdown_timeout*." -#: ../Doc/library/asyncio-eventloop.rst:513 +#: ../Doc/library/asyncio-eventloop.rst:538 +msgid "*all_errors* was added." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:543 msgid "" "The :func:`open_connection` function is a high-level alternative API. It " "returns a pair of (:class:`StreamReader`, :class:`StreamWriter`) that can be " @@ -927,27 +993,29 @@ msgstr "" "Retorna un par de (:class:`StreamReader`, :class:`StreamWriter`) que puede " "ser usado directamente en código async/await." -#: ../Doc/library/asyncio-eventloop.rst:523 +#: ../Doc/library/asyncio-eventloop.rst:553 msgid "Create a datagram connection." msgstr "Crea un datagrama de conexión." -#: ../Doc/library/asyncio-eventloop.rst:525 +#: ../Doc/library/asyncio-eventloop.rst:555 +#, fuzzy msgid "" -"The socket family can be either :py:data:`~socket.AF_INET`, :py:data:" -"`~socket.AF_INET6`, or :py:data:`~socket.AF_UNIX`, depending on *host* (or " +"The socket family can be either :py:const:`~socket.AF_INET`, :py:const:" +"`~socket.AF_INET6`, or :py:const:`~socket.AF_UNIX`, depending on *host* (or " "the *family* argument, if provided)." msgstr "" "La familia de socket puede ser tanto :py:data:`~socket.AF_INET`, :py:data:" "`~socket.AF_INET6`, como :py:data:`~socket.AF_UNIX`, dependiendo de *host* " "(o del argumento *family*, si fue provisto)." -#: ../Doc/library/asyncio-eventloop.rst:529 -msgid "The socket type will be :py:data:`~socket.SOCK_DGRAM`." +#: ../Doc/library/asyncio-eventloop.rst:559 +#, fuzzy +msgid "The socket type will be :py:const:`~socket.SOCK_DGRAM`." msgstr "El tipo de socket será :py:data:`~socket.SOCK_DGRAM`." -#: ../Doc/library/asyncio-eventloop.rst:531 -#: ../Doc/library/asyncio-eventloop.rst:651 -#: ../Doc/library/asyncio-eventloop.rst:783 +#: ../Doc/library/asyncio-eventloop.rst:561 +#: ../Doc/library/asyncio-eventloop.rst:681 +#: ../Doc/library/asyncio-eventloop.rst:813 msgid "" "*protocol_factory* must be a callable returning a :ref:`protocol ` implementation." @@ -955,13 +1023,13 @@ msgstr "" "*protocol_factory* debe ser un ejecutable que retorne una implementación de :" "ref:`protocol `." -#: ../Doc/library/asyncio-eventloop.rst:534 -#: ../Doc/library/asyncio-eventloop.rst:610 +#: ../Doc/library/asyncio-eventloop.rst:564 +#: ../Doc/library/asyncio-eventloop.rst:640 msgid "A tuple of ``(transport, protocol)`` is returned on success." msgstr "" "Una tupla de ``(transport, protocol)`` es retornada cuando se tiene éxito." -#: ../Doc/library/asyncio-eventloop.rst:538 +#: ../Doc/library/asyncio-eventloop.rst:568 msgid "" "*local_addr*, if given, is a ``(local_host, local_port)`` tuple used to bind " "the socket locally. The *local_host* and *local_port* are looked up using :" @@ -971,7 +1039,7 @@ msgstr "" "para enlazar el socket localmente. Los *local_host* y *local_port* son " "buscados utilizando :meth:`getaddrinfo`." -#: ../Doc/library/asyncio-eventloop.rst:542 +#: ../Doc/library/asyncio-eventloop.rst:572 msgid "" "*remote_addr*, if given, is a ``(remote_host, remote_port)`` tuple used to " "connect the socket to a remote address. The *remote_host* and *remote_port* " @@ -981,7 +1049,7 @@ msgstr "" "utilizada para conectar el socket a una dirección remota. Los *remote_host* " "y *remote_port* son buscados utilizando :meth:`getaddrinfo`." -#: ../Doc/library/asyncio-eventloop.rst:546 +#: ../Doc/library/asyncio-eventloop.rst:576 msgid "" "*family*, *proto*, *flags* are the optional address family, protocol and " "flags to be passed through to :meth:`getaddrinfo` for *host* resolution. If " @@ -993,12 +1061,13 @@ msgstr "" "resolución de *host*. Si está dado, estos deben ser todos enteros de las " "constantes del módulo :mod:`socket` correspondiente." -#: ../Doc/library/asyncio-eventloop.rst:551 +#: ../Doc/library/asyncio-eventloop.rst:581 +#, fuzzy msgid "" "*reuse_port* tells the kernel to allow this endpoint to be bound to the same " "port as other existing endpoints are bound to, so long as they all set this " "flag when being created. This option is not supported on Windows and some " -"Unixes. If the :py:data:`~socket.SO_REUSEPORT` constant is not defined then " +"Unixes. If the :py:const:`~socket.SO_REUSEPORT` constant is not defined then " "this capability is unsupported." msgstr "" "*reuse_port* dice al kernel que habilite este punto de conexión para ser " @@ -1008,7 +1077,7 @@ msgstr "" "algunos sistemas Unix. Si la constante :py:data:`~socket.SO_REUSEPORT` no " "está definida entonces esta funcionalidad no es soportada." -#: ../Doc/library/asyncio-eventloop.rst:557 +#: ../Doc/library/asyncio-eventloop.rst:587 msgid "" "*allow_broadcast* tells the kernel to allow this endpoint to send messages " "to the broadcast address." @@ -1016,7 +1085,7 @@ msgstr "" "*allow_broadcast* dice al kernel que habilite este punto de conexión para " "enviar mensajes a la dirección de transmisión (*broadcast*)." -#: ../Doc/library/asyncio-eventloop.rst:560 +#: ../Doc/library/asyncio-eventloop.rst:590 msgid "" "*sock* can optionally be specified in order to use a preexisting, already " "connected, :class:`socket.socket` object to be used by the transport. If " @@ -1028,7 +1097,7 @@ msgstr "" "transporte. Si están especificados, *local_addr* y *remote_addr* deben ser " "omitidos (tienen que ser :const:`None`)." -#: ../Doc/library/asyncio-eventloop.rst:571 +#: ../Doc/library/asyncio-eventloop.rst:601 msgid "" "See :ref:`UDP echo client protocol ` and :" "ref:`UDP echo server protocol ` examples." @@ -1037,7 +1106,7 @@ msgstr "" "client-protocol>` y :ref:`UDP echo server protocol `." -#: ../Doc/library/asyncio-eventloop.rst:574 +#: ../Doc/library/asyncio-eventloop.rst:604 msgid "" "The *family*, *proto*, *flags*, *reuse_address*, *reuse_port*, " "*allow_broadcast*, and *sock* parameters were added." @@ -1045,9 +1114,10 @@ msgstr "" "Los parámetros *family*, *proto*, *flags*, *reuse_address*, *reuse_port*, " "*allow_broadcast* y *sock* fueron agregados." -#: ../Doc/library/asyncio-eventloop.rst:578 +#: ../Doc/library/asyncio-eventloop.rst:608 +#, fuzzy msgid "" -"The *reuse_address* parameter is no longer supported, as using :py:data:" +"The *reuse_address* parameter is no longer supported, as using :py:const:" "`~sockets.SO_REUSEADDR` poses a significant security concern for UDP. " "Explicitly passing ``reuse_address=True`` will raise an exception." msgstr "" @@ -1055,7 +1125,7 @@ msgstr "" "`~sockets.SO_REUSEADDR` plantea un problema de seguridad importante para " "UDP. Pasar explícitamente ``reuse_address=True`` lanzará una excepción." -#: ../Doc/library/asyncio-eventloop.rst:583 +#: ../Doc/library/asyncio-eventloop.rst:613 msgid "" "When multiple processes with differing UIDs assign sockets to an identical " "UDP socket address with ``SO_REUSEADDR``, incoming packets can become " @@ -1065,10 +1135,11 @@ msgstr "" "dirección socket UDP con ``SO_REUSEADDR``, los paquetes entrantes pueden " "distribuirse aleatoriamente entre los sockets." -#: ../Doc/library/asyncio-eventloop.rst:587 +#: ../Doc/library/asyncio-eventloop.rst:617 +#, fuzzy msgid "" "For supported platforms, *reuse_port* can be used as a replacement for " -"similar functionality. With *reuse_port*, :py:data:`~sockets.SO_REUSEPORT` " +"similar functionality. With *reuse_port*, :py:const:`~sockets.SO_REUSEPORT` " "is used instead, which specifically prevents processes with differing UIDs " "from assigning sockets to the same socket address." msgstr "" @@ -1078,11 +1149,11 @@ msgstr "" "que procesos con distintos UIDs asignen sockets a la misma dirección de " "socket." -#: ../Doc/library/asyncio-eventloop.rst:593 +#: ../Doc/library/asyncio-eventloop.rst:623 msgid "Added support for Windows." msgstr "Se agregó soporte para Windows." -#: ../Doc/library/asyncio-eventloop.rst:596 +#: ../Doc/library/asyncio-eventloop.rst:626 msgid "" "The *reuse_address* parameter, disabled since Python 3.9.0, 3.8.1, 3.7.6 and " "3.6.10, has been entirely removed." @@ -1090,19 +1161,20 @@ msgstr "" "El parámetro *reuse_address*, deshabilitado desde Python 3.9.0, 3.8.1, 3.7.6 " "y 3.6.10, fue removido por completo." -#: ../Doc/library/asyncio-eventloop.rst:605 +#: ../Doc/library/asyncio-eventloop.rst:635 msgid "Create a Unix connection." msgstr "Crear una conexión Unix." -#: ../Doc/library/asyncio-eventloop.rst:607 +#: ../Doc/library/asyncio-eventloop.rst:637 +#, fuzzy msgid "" -"The socket family will be :py:data:`~socket.AF_UNIX`; socket type will be :" -"py:data:`~socket.SOCK_STREAM`." +"The socket family will be :py:const:`~socket.AF_UNIX`; socket type will be :" +"py:const:`~socket.SOCK_STREAM`." msgstr "" "La familia de sockets será :py:data:`~socket.AF_UNIX`; el tipo de socket " "será :py:data:`~socket.SOCK_STREAM`." -#: ../Doc/library/asyncio-eventloop.rst:612 +#: ../Doc/library/asyncio-eventloop.rst:642 msgid "" "*path* is the name of a Unix domain socket and is required, unless a *sock* " "parameter is specified. Abstract Unix sockets, :class:`str`, :class:" @@ -1112,7 +1184,7 @@ msgstr "" "que un parámetro *sock* sea especificado. Los socket Unix abstractos, :class:" "`str`, :class:`bytes`, y :class:`~pathlib.Path` son soportados." -#: ../Doc/library/asyncio-eventloop.rst:617 +#: ../Doc/library/asyncio-eventloop.rst:647 msgid "" "See the documentation of the :meth:`loop.create_connection` method for " "information about arguments to this method." @@ -1120,13 +1192,13 @@ msgstr "" "Vea la documentación del método :meth:`loop.create_connection` para " "información acerca de los argumentos de este método." -#: ../Doc/library/asyncio-eventloop.rst:621 -#: ../Doc/library/asyncio-eventloop.rst:761 -#: ../Doc/library/asyncio-eventloop.rst:1179 +#: ../Doc/library/asyncio-eventloop.rst:650 +#: ../Doc/library/asyncio-eventloop.rst:790 +#: ../Doc/library/asyncio-eventloop.rst:1219 msgid ":ref:`Availability `: Unix." msgstr ":ref:`Availability `: Unix." -#: ../Doc/library/asyncio-eventloop.rst:622 +#: ../Doc/library/asyncio-eventloop.rst:652 msgid "" "Added the *ssl_handshake_timeout* parameter. The *path* parameter can now be " "a :term:`path-like object`." @@ -1134,27 +1206,28 @@ msgstr "" "Agregado el parámetro *ssl_handshake_timeout*. El parámetro *path* ahora " "puede ser un :term:`path-like object`." -#: ../Doc/library/asyncio-eventloop.rst:632 +#: ../Doc/library/asyncio-eventloop.rst:662 msgid "Creating network servers" msgstr "Creando servidores de red" -#: ../Doc/library/asyncio-eventloop.rst:644 +#: ../Doc/library/asyncio-eventloop.rst:674 +#, fuzzy msgid "" -"Create a TCP server (socket type :data:`~socket.SOCK_STREAM`) listening on " +"Create a TCP server (socket type :const:`~socket.SOCK_STREAM`) listening on " "*port* of the *host* address." msgstr "" "Crea un servidor TCP (tipo de socket :data:`~socket.SOCK_STREAM`) escuchando " "en *port* de la dirección *host*." -#: ../Doc/library/asyncio-eventloop.rst:647 +#: ../Doc/library/asyncio-eventloop.rst:677 msgid "Returns a :class:`Server` object." msgstr "Retorna un objeto :class:`Server`." -#: ../Doc/library/asyncio-eventloop.rst:649 +#: ../Doc/library/asyncio-eventloop.rst:679 msgid "Arguments:" msgstr "Argumentos:" -#: ../Doc/library/asyncio-eventloop.rst:654 +#: ../Doc/library/asyncio-eventloop.rst:684 msgid "" "The *host* parameter can be set to several types which determine where the " "server would be listening:" @@ -1162,7 +1235,7 @@ msgstr "" "El parámetro *host* puede ser establecido a distintos tipos que determinan " "donde el servidor estaría escuchando:" -#: ../Doc/library/asyncio-eventloop.rst:657 +#: ../Doc/library/asyncio-eventloop.rst:687 msgid "" "If *host* is a string, the TCP server is bound to a single network interface " "specified by *host*." @@ -1170,7 +1243,7 @@ msgstr "" "Si *host* es una cadena, el servidor TCP está enlazado a una sola interfaz " "de red especificada por *host*." -#: ../Doc/library/asyncio-eventloop.rst:660 +#: ../Doc/library/asyncio-eventloop.rst:690 msgid "" "If *host* is a sequence of strings, the TCP server is bound to all network " "interfaces specified by the sequence." @@ -1178,7 +1251,7 @@ msgstr "" "Si *host* es una secuencia de cadenas, el servidor TCP está enlazado a todas " "las interfaces de red especificadas por la secuencia." -#: ../Doc/library/asyncio-eventloop.rst:663 +#: ../Doc/library/asyncio-eventloop.rst:693 msgid "" "If *host* is an empty string or ``None``, all interfaces are assumed and a " "list of multiple sockets will be returned (most likely one for IPv4 and " @@ -1188,7 +1261,7 @@ msgstr "" "una lista con múltiples sockets será retornada (mas probablemente uno para " "IPv4 y otro para IPv6)." -#: ../Doc/library/asyncio-eventloop.rst:667 +#: ../Doc/library/asyncio-eventloop.rst:697 msgid "" "The *port* parameter can be set to specify which port the server should " "listen on. If ``0`` or ``None`` (the default), a random unused port will be " @@ -1201,22 +1274,23 @@ msgstr "" "múltiples interfaces de red, se seleccionará un puerto aleatorio diferente " "para cada interfaz)." -#: ../Doc/library/asyncio-eventloop.rst:672 +#: ../Doc/library/asyncio-eventloop.rst:702 +#, fuzzy msgid "" -"*family* can be set to either :data:`socket.AF_INET` or :data:`~socket." +"*family* can be set to either :const:`socket.AF_INET` or :const:`~socket." "AF_INET6` to force the socket to use IPv4 or IPv6. If not set, the *family* " -"will be determined from host name (defaults to :data:`~socket.AF_UNSPEC`)." +"will be determined from host name (defaults to :const:`~socket.AF_UNSPEC`)." msgstr "" "*family* puede ser establecido como :data:`socket.AF_INET` o :data:`~socket." "AF_INET6` para forzar al socket a usar IPv4 o IPv6. Si no es establecido, la " "*family* será determinada por medio del nombre del host (por defecto será :" "data:`~socket.AF_UNSPEC`)." -#: ../Doc/library/asyncio-eventloop.rst:677 +#: ../Doc/library/asyncio-eventloop.rst:707 msgid "*flags* is a bitmask for :meth:`getaddrinfo`." msgstr "*flags* es una máscara de bits para :meth:`getaddrinfo`." -#: ../Doc/library/asyncio-eventloop.rst:679 +#: ../Doc/library/asyncio-eventloop.rst:709 msgid "" "*sock* can optionally be specified in order to use a preexisting socket " "object. If specified, *host* and *port* must not be specified." @@ -1225,7 +1299,7 @@ msgstr "" "preexistentes. Si se utiliza, entonces *host* y *port* no deben ser " "especificados." -#: ../Doc/library/asyncio-eventloop.rst:684 +#: ../Doc/library/asyncio-eventloop.rst:714 msgid "" "The *sock* argument transfers ownership of the socket to the server created. " "To close the socket, call the server's :meth:`~asyncio.Server.close` method." @@ -1234,7 +1308,7 @@ msgstr "" "Para cerrar el socket, llame al método :meth:`~asyncio.Server.close` del " "servidor." -#: ../Doc/library/asyncio-eventloop.rst:688 +#: ../Doc/library/asyncio-eventloop.rst:718 msgid "" "*backlog* is the maximum number of queued connections passed to :meth:" "`~socket.socket.listen` (defaults to 100)." @@ -1242,7 +1316,7 @@ msgstr "" "*backlog* es el número máximo de conexiones encoladas pasadas a :meth:" "`~socket.socket.listen` (el valor predeterminado es 100)." -#: ../Doc/library/asyncio-eventloop.rst:691 +#: ../Doc/library/asyncio-eventloop.rst:721 msgid "" "*ssl* can be set to an :class:`~ssl.SSLContext` instance to enable TLS over " "the accepted connections." @@ -1250,7 +1324,7 @@ msgstr "" "*ssl* puede ser establecido como una instancia de :class:`~ssl.SSLContext` " "para habilitar TLS sobre las conexiones aceptadas." -#: ../Doc/library/asyncio-eventloop.rst:694 +#: ../Doc/library/asyncio-eventloop.rst:724 msgid "" "*reuse_address* tells the kernel to reuse a local socket in ``TIME_WAIT`` " "state, without waiting for its natural timeout to expire. If not specified " @@ -1260,7 +1334,7 @@ msgstr "" "``TIME_WAIT``, sin esperar que su plazo de ejecución expire. Si no es " "especificado será establecido automáticamente como ``True`` en Unix." -#: ../Doc/library/asyncio-eventloop.rst:699 +#: ../Doc/library/asyncio-eventloop.rst:729 msgid "" "*reuse_port* tells the kernel to allow this endpoint to be bound to the same " "port as other existing endpoints are bound to, so long as they all set this " @@ -1271,7 +1345,7 @@ msgstr "" "existentes también están unidos, siempre y cuando todos ellos establezcan " "esta bandera al ser creados." -#: ../Doc/library/asyncio-eventloop.rst:704 +#: ../Doc/library/asyncio-eventloop.rst:734 msgid "" "*ssl_handshake_timeout* is (for a TLS server) the time in seconds to wait " "for the TLS handshake to complete before aborting the connection. ``60.0`` " @@ -1281,7 +1355,7 @@ msgstr "" "esperar por el apretón de manos (*handshake*) TLS a ser completado antes de " "abortar la conexión. ``60.0`` si es ``None`` (su valor predeterminado)." -#: ../Doc/library/asyncio-eventloop.rst:712 +#: ../Doc/library/asyncio-eventloop.rst:742 msgid "" "*start_serving* set to ``True`` (the default) causes the created server to " "start accepting connections immediately. When set to ``False``, the user " @@ -1294,21 +1368,22 @@ msgstr "" "start_serving` o :meth:`Server.serve_forever` para que el servidor comience " "a aceptar conexiones." -#: ../Doc/library/asyncio-eventloop.rst:724 +#: ../Doc/library/asyncio-eventloop.rst:754 msgid "The *host* parameter can be a sequence of strings." msgstr "El parámetro *host* puede ser una secuencia de cadenas." -#: ../Doc/library/asyncio-eventloop.rst:728 +#: ../Doc/library/asyncio-eventloop.rst:758 +#, fuzzy msgid "" "Added *ssl_handshake_timeout* and *start_serving* parameters. The socket " -"option :py:data:`~socket.TCP_NODELAY` is set by default for all TCP " +"option :py:const:`~socket.TCP_NODELAY` is set by default for all TCP " "connections." msgstr "" "Agregados los parámetros *ssl_handshake_timeout* y *start_serving*. La " "opción del socket :py:data:`~socket.TCP_NODELAY` es establecida de manera " "predeterminada para todas las conexiones TCP." -#: ../Doc/library/asyncio-eventloop.rst:738 +#: ../Doc/library/asyncio-eventloop.rst:768 msgid "" "The :func:`start_server` function is a higher-level alternative API that " "returns a pair of :class:`StreamReader` and :class:`StreamWriter` that can " @@ -1318,15 +1393,16 @@ msgstr "" "retorna un par de :class:`StreamReader` y :class:`StreamWriter` que pueden " "ser usados en código async/await." -#: ../Doc/library/asyncio-eventloop.rst:749 +#: ../Doc/library/asyncio-eventloop.rst:779 +#, fuzzy msgid "" -"Similar to :meth:`loop.create_server` but works with the :py:data:`~socket." +"Similar to :meth:`loop.create_server` but works with the :py:const:`~socket." "AF_UNIX` socket family." msgstr "" "Similar a :meth:`loop.create_server` pero funciona con la familia de " "sockets :py:data:`~socket.AF_UNIX`." -#: ../Doc/library/asyncio-eventloop.rst:752 +#: ../Doc/library/asyncio-eventloop.rst:782 msgid "" "*path* is the name of a Unix domain socket, and is required, unless a *sock* " "argument is provided. Abstract Unix sockets, :class:`str`, :class:`bytes`, " @@ -1336,7 +1412,7 @@ msgstr "" "el argumento *sock* sea provisto. Son soportados sockets unix abstractos, :" "class:`str`, :class:`bytes`, y rutas :class:`~pathlib.Path`." -#: ../Doc/library/asyncio-eventloop.rst:757 +#: ../Doc/library/asyncio-eventloop.rst:787 msgid "" "See the documentation of the :meth:`loop.create_server` method for " "information about arguments to this method." @@ -1344,7 +1420,7 @@ msgstr "" "Vea la documentación de el método :meth:`loop.create_server` para mas " "información acerca de los argumentos de este método." -#: ../Doc/library/asyncio-eventloop.rst:764 +#: ../Doc/library/asyncio-eventloop.rst:794 msgid "" "Added the *ssl_handshake_timeout* and *start_serving* parameters. The *path* " "parameter can now be a :class:`~pathlib.Path` object." @@ -1352,11 +1428,11 @@ msgstr "" "Agregados los parámetros *ssl_handshake_timeout* y *start_serving*. El " "parámetro *path* ahora puede ser un objeto :class:`~pathlib.Path`." -#: ../Doc/library/asyncio-eventloop.rst:776 +#: ../Doc/library/asyncio-eventloop.rst:806 msgid "Wrap an already accepted connection into a transport/protocol pair." msgstr "Envuelve una conexión ya aceptada en un par de transporte/protocolo." -#: ../Doc/library/asyncio-eventloop.rst:778 +#: ../Doc/library/asyncio-eventloop.rst:808 msgid "" "This method can be used by servers that accept connections outside of " "asyncio but that use asyncio to handle them." @@ -1364,12 +1440,12 @@ msgstr "" "Este método puede ser usado por servidores que acepten conexiones por fuera " "de asyncio, pero que usen asyncio para manejarlas." -#: ../Doc/library/asyncio-eventloop.rst:781 -#: ../Doc/library/asyncio-eventloop.rst:863 +#: ../Doc/library/asyncio-eventloop.rst:811 +#: ../Doc/library/asyncio-eventloop.rst:901 msgid "Parameters:" msgstr "Parámetros:" -#: ../Doc/library/asyncio-eventloop.rst:786 +#: ../Doc/library/asyncio-eventloop.rst:816 msgid "" "*sock* is a preexisting socket object returned from :meth:`socket.accept " "`." @@ -1377,7 +1453,7 @@ msgstr "" "*sock* es un objeto socket preexistente retornado por :meth:`socket.accept " "`." -#: ../Doc/library/asyncio-eventloop.rst:795 +#: ../Doc/library/asyncio-eventloop.rst:825 msgid "" "*ssl* can be set to an :class:`~ssl.SSLContext` to enable SSL over the " "accepted connections." @@ -1385,7 +1461,7 @@ msgstr "" "*ssl* puede ser establecido como un :class:`~ssl.SSLContext` para habilitar " "SSL sobre las conexiones aceptadas." -#: ../Doc/library/asyncio-eventloop.rst:798 +#: ../Doc/library/asyncio-eventloop.rst:828 msgid "" "*ssl_handshake_timeout* is (for an SSL connection) the time in seconds to " "wait for the SSL handshake to complete before aborting the connection. " @@ -1395,32 +1471,32 @@ msgstr "" "se esperará para que se complete el apretón de manos (*handshake*) SSL antes " "de abortar la conexión. ``60.0`` si es ``None`` (su valor predeterminado)." -#: ../Doc/library/asyncio-eventloop.rst:806 +#: ../Doc/library/asyncio-eventloop.rst:836 msgid "Returns a ``(transport, protocol)`` pair." msgstr "Retorna un par ``(transport, protocol)``." -#: ../Doc/library/asyncio-eventloop.rst:820 +#: ../Doc/library/asyncio-eventloop.rst:850 msgid "Transferring files" msgstr "Transfiriendo archivos" -#: ../Doc/library/asyncio-eventloop.rst:825 +#: ../Doc/library/asyncio-eventloop.rst:855 msgid "" "Send a *file* over a *transport*. Return the total number of bytes sent." msgstr "" "Envía un *file* a través de un *transport*. Retorna el numero total de bytes " "enviados." -#: ../Doc/library/asyncio-eventloop.rst:828 +#: ../Doc/library/asyncio-eventloop.rst:858 msgid "The method uses high-performance :meth:`os.sendfile` if available." msgstr "" "El método usa :meth:`os.sendfile` de alto rendimiento si está disponible." -#: ../Doc/library/asyncio-eventloop.rst:830 +#: ../Doc/library/asyncio-eventloop.rst:860 msgid "*file* must be a regular file object opened in binary mode." msgstr "*file* debe ser un objeto de archivo regular abierto en modo binario." -#: ../Doc/library/asyncio-eventloop.rst:832 -#: ../Doc/library/asyncio-eventloop.rst:1067 +#: ../Doc/library/asyncio-eventloop.rst:862 +#: ../Doc/library/asyncio-eventloop.rst:1107 msgid "" "*offset* tells from where to start reading the file. If specified, *count* " "is the total number of bytes to transmit as opposed to sending the file " @@ -1435,7 +1511,7 @@ msgstr "" "error, y :meth:`file.tell() ` puede ser usado para obtener " "el número de bytes enviados hasta el momento." -#: ../Doc/library/asyncio-eventloop.rst:839 +#: ../Doc/library/asyncio-eventloop.rst:869 msgid "" "*fallback* set to ``True`` makes asyncio to manually read and send the file " "when the platform does not support the sendfile system call (e.g. Windows or " @@ -1445,7 +1521,7 @@ msgstr "" "manualmente cuando la plataforma no soporta la llamada de envío de archivos " "del sistema (por ejemplo, Windows o sockets SSL en Unix)." -#: ../Doc/library/asyncio-eventloop.rst:843 +#: ../Doc/library/asyncio-eventloop.rst:873 msgid "" "Raise :exc:`SendfileNotAvailableError` if the system does not support the " "*sendfile* syscall and *fallback* is ``False``." @@ -1453,25 +1529,36 @@ msgstr "" "Lanza :exc:`SendfileNotAvailableError` si el sistema no soporta la llamada " "de envío de archivos del sistema y *fallback* es ``True``." -#: ../Doc/library/asyncio-eventloop.rst:850 +#: ../Doc/library/asyncio-eventloop.rst:880 msgid "TLS Upgrade" msgstr "Actualización de TLS" -#: ../Doc/library/asyncio-eventloop.rst:857 +#: ../Doc/library/asyncio-eventloop.rst:887 msgid "Upgrade an existing transport-based connection to TLS." msgstr "Actualiza una conexión basada en transporte ya existente a TLS." -#: ../Doc/library/asyncio-eventloop.rst:859 +#: ../Doc/library/asyncio-eventloop.rst:889 +msgid "" +"Create a TLS coder/decoder instance and insert it between the *transport* " +"and the *protocol*. The coder/decoder implements both *transport*-facing " +"protocol and *protocol*-facing transport." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:893 msgid "" -"Return a new transport instance, that the *protocol* must start using " -"immediately after the *await*. The *transport* instance passed to the " -"*start_tls* method should never be used again." +"Return the created two-interface instance. After *await*, the *protocol* " +"must stop using the original *transport* and communicate with the returned " +"object only because the coder caches *protocol*-side data and sporadically " +"exchanges extra TLS session packets with *transport*." msgstr "" -"Retorna una nueva instancia de transporte, que el *protocol* debe empezar a " -"usar inmediatamente después del *await*. La instancia *transport* pasada al " -"método *start_tls* nunca debe ser usada de nuevo." -#: ../Doc/library/asyncio-eventloop.rst:865 +#: ../Doc/library/asyncio-eventloop.rst:898 +msgid "" +"In some situations (e.g. when the passed transport is already closing) this " +"may return ``None``." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:903 msgid "" "*transport* and *protocol* instances that methods like :meth:`~loop." "create_server` and :meth:`~loop.create_connection` return." @@ -1479,11 +1566,11 @@ msgstr "" "Las instancias *transport* y *protocol* que retornan los métodos como :meth:" "`~loop.create_server` y :meth:`~loop.create_connection`." -#: ../Doc/library/asyncio-eventloop.rst:869 +#: ../Doc/library/asyncio-eventloop.rst:907 msgid "*sslcontext*: a configured instance of :class:`~ssl.SSLContext`." msgstr "*sslcontext*: una instancia configurada de :class:`~ssl.SSLContext`." -#: ../Doc/library/asyncio-eventloop.rst:871 +#: ../Doc/library/asyncio-eventloop.rst:909 msgid "" "*server_side* pass ``True`` when a server-side connection is being upgraded " "(like the one created by :meth:`~loop.create_server`)." @@ -1491,7 +1578,7 @@ msgstr "" "*server_side* pasa `True` cuando se actualiza una conexión del lado del " "servidor (como en el caso de una creada por :meth:`~loop.create_server`)." -#: ../Doc/library/asyncio-eventloop.rst:874 +#: ../Doc/library/asyncio-eventloop.rst:912 msgid "" "*server_hostname*: sets or overrides the host name that the target server's " "certificate will be matched against." @@ -1499,11 +1586,11 @@ msgstr "" "*server_hostname*: establece o reemplaza el nombre del host contra el cual " "se compara el certificado del servidor de destino." -#: ../Doc/library/asyncio-eventloop.rst:894 +#: ../Doc/library/asyncio-eventloop.rst:932 msgid "Watching file descriptors" msgstr "Viendo descriptores de archivos" -#: ../Doc/library/asyncio-eventloop.rst:898 +#: ../Doc/library/asyncio-eventloop.rst:936 msgid "" "Start monitoring the *fd* file descriptor for read availability and invoke " "*callback* with the specified arguments once *fd* is available for reading." @@ -1512,13 +1599,16 @@ msgstr "" "lectura e invoca *callback* con los argumentos especificados una vez que " "*fd* está habilitado para ser leído." -#: ../Doc/library/asyncio-eventloop.rst:904 -msgid "Stop monitoring the *fd* file descriptor for read availability." +#: ../Doc/library/asyncio-eventloop.rst:942 +#, fuzzy +msgid "" +"Stop monitoring the *fd* file descriptor for read availability. Returns " +"``True`` if *fd* was previously being monitored for reads." msgstr "" "Deja de monitorear el descriptor de archivos *fd* para disponibilidad de " "lectura." -#: ../Doc/library/asyncio-eventloop.rst:908 +#: ../Doc/library/asyncio-eventloop.rst:947 msgid "" "Start monitoring the *fd* file descriptor for write availability and invoke " "*callback* with the specified arguments once *fd* is available for writing." @@ -1527,8 +1617,8 @@ msgstr "" "escritura e invoca *callback* con los argumentos especificados una vez que " "*fd* está habilitado para ser escrito." -#: ../Doc/library/asyncio-eventloop.rst:912 -#: ../Doc/library/asyncio-eventloop.rst:1166 +#: ../Doc/library/asyncio-eventloop.rst:951 +#: ../Doc/library/asyncio-eventloop.rst:1206 msgid "" "Use :func:`functools.partial` :ref:`to pass keyword arguments ` to *callback*." @@ -1536,13 +1626,16 @@ msgstr "" "Use :func:`functools.partial` :ref:`para pasar argumentos de palabra clave " "` a *callback*." -#: ../Doc/library/asyncio-eventloop.rst:917 -msgid "Stop monitoring the *fd* file descriptor for write availability." +#: ../Doc/library/asyncio-eventloop.rst:956 +#, fuzzy +msgid "" +"Stop monitoring the *fd* file descriptor for write availability. Returns " +"``True`` if *fd* was previously being monitored for writes." msgstr "" "Deja de monitorear el descriptor de archivos *fd* para disponibilidad de " "escritura." -#: ../Doc/library/asyncio-eventloop.rst:919 +#: ../Doc/library/asyncio-eventloop.rst:959 msgid "" "See also :ref:`Platform Support ` section for some " "limitations of these methods." @@ -1550,11 +1643,11 @@ msgstr "" "Vea también la sección :ref:`Soporte de plataforma ` para algunas limitaciones de estos métodos." -#: ../Doc/library/asyncio-eventloop.rst:924 +#: ../Doc/library/asyncio-eventloop.rst:964 msgid "Working with socket objects directly" msgstr "Trabajar con objetos sockets directamente" -#: ../Doc/library/asyncio-eventloop.rst:926 +#: ../Doc/library/asyncio-eventloop.rst:966 msgid "" "In general, protocol implementations that use transport-based APIs such as :" "meth:`loop.create_connection` and :meth:`loop.create_server` are faster than " @@ -1569,7 +1662,7 @@ msgstr "" "rendimiento no es crítico, y trabajar directamente con objetos :class:" "`~socket.socket` es mas conveniente." -#: ../Doc/library/asyncio-eventloop.rst:935 +#: ../Doc/library/asyncio-eventloop.rst:975 msgid "" "Receive up to *nbytes* from *sock*. Asynchronous version of :meth:`socket." "recv() `." @@ -1577,23 +1670,23 @@ msgstr "" "Recibe hasta *nbytes* de *sock*. Versión asíncrona de :meth:`socket.recv() " "`." -#: ../Doc/library/asyncio-eventloop.rst:938 +#: ../Doc/library/asyncio-eventloop.rst:978 msgid "Return the received data as a bytes object." msgstr "Retorna los datos recibidos como un objeto bytes." -#: ../Doc/library/asyncio-eventloop.rst:940 -#: ../Doc/library/asyncio-eventloop.rst:954 -#: ../Doc/library/asyncio-eventloop.rst:965 -#: ../Doc/library/asyncio-eventloop.rst:977 -#: ../Doc/library/asyncio-eventloop.rst:992 -#: ../Doc/library/asyncio-eventloop.rst:1007 +#: ../Doc/library/asyncio-eventloop.rst:980 +#: ../Doc/library/asyncio-eventloop.rst:994 +#: ../Doc/library/asyncio-eventloop.rst:1005 #: ../Doc/library/asyncio-eventloop.rst:1017 -#: ../Doc/library/asyncio-eventloop.rst:1043 -#: ../Doc/library/asyncio-eventloop.rst:1081 +#: ../Doc/library/asyncio-eventloop.rst:1032 +#: ../Doc/library/asyncio-eventloop.rst:1047 +#: ../Doc/library/asyncio-eventloop.rst:1057 +#: ../Doc/library/asyncio-eventloop.rst:1083 +#: ../Doc/library/asyncio-eventloop.rst:1121 msgid "*sock* must be a non-blocking socket." msgstr "*sock* debe ser un socket no bloqueante." -#: ../Doc/library/asyncio-eventloop.rst:942 +#: ../Doc/library/asyncio-eventloop.rst:982 msgid "" "Even though this method was always documented as a coroutine method, " "releases before Python 3.7 returned a :class:`Future`. Since Python 3.7 this " @@ -1603,7 +1696,7 @@ msgstr "" "corrutina, los lanzamientos previos a Python 3.7 retornaban un :class:" "`Future`. Desde Python 3.7 este es un método ``async def``." -#: ../Doc/library/asyncio-eventloop.rst:949 +#: ../Doc/library/asyncio-eventloop.rst:989 msgid "" "Receive data from *sock* into the *buf* buffer. Modeled after the blocking :" "meth:`socket.recv_into() ` method." @@ -1611,11 +1704,11 @@ msgstr "" "Recibe datos desde *sock* en el búfer *buf*. Modelado después del método " "bloqueante :meth:`socket.recv_into() `." -#: ../Doc/library/asyncio-eventloop.rst:952 +#: ../Doc/library/asyncio-eventloop.rst:992 msgid "Return the number of bytes written to the buffer." msgstr "Retorna el número de bytes escritos en el búfer." -#: ../Doc/library/asyncio-eventloop.rst:960 +#: ../Doc/library/asyncio-eventloop.rst:1000 msgid "" "Receive a datagram of up to *bufsize* from *sock*. Asynchronous version of :" "meth:`socket.recvfrom() `." @@ -1623,11 +1716,11 @@ msgstr "" "Recibe un datagrama de hasta *bufsize* de *sock*. Versión asíncrona de :" "meth:`socket.recvfrom() `." -#: ../Doc/library/asyncio-eventloop.rst:963 +#: ../Doc/library/asyncio-eventloop.rst:1003 msgid "Return a tuple of (received data, remote address)." msgstr "Retorna una tupla de (datos recibidos, dirección remota)." -#: ../Doc/library/asyncio-eventloop.rst:971 +#: ../Doc/library/asyncio-eventloop.rst:1011 msgid "" "Receive a datagram of up to *nbytes* from *sock* into *buf*. Asynchronous " "version of :meth:`socket.recvfrom_into() `." @@ -1635,11 +1728,11 @@ msgstr "" "Recibe un datagrama de hasta *nbytes* de *sock* en *buf*. Versión asíncrona " "de :meth:`socket.recvfrom_into() `." -#: ../Doc/library/asyncio-eventloop.rst:975 +#: ../Doc/library/asyncio-eventloop.rst:1015 msgid "Return a tuple of (number of bytes received, remote address)." msgstr "Retorna una dupla de (número de bytes recibidos, dirección remota)." -#: ../Doc/library/asyncio-eventloop.rst:983 +#: ../Doc/library/asyncio-eventloop.rst:1023 msgid "" "Send *data* to the *sock* socket. Asynchronous version of :meth:`socket." "sendall() `." @@ -1647,7 +1740,7 @@ msgstr "" "Envía *data* al socket *sock*. Versión asíncrona de :meth:`socket.sendall() " "`." -#: ../Doc/library/asyncio-eventloop.rst:986 +#: ../Doc/library/asyncio-eventloop.rst:1026 msgid "" "This method continues to send to the socket until either all data in *data* " "has been sent or an error occurs. ``None`` is returned on success. On " @@ -1661,8 +1754,8 @@ msgstr "" "hay manera de determinar cuantos datos, si es que se hubo alguno, se " "procesaron correctamente por el extremo receptor de la conexión." -#: ../Doc/library/asyncio-eventloop.rst:994 -#: ../Doc/library/asyncio-eventloop.rst:1045 +#: ../Doc/library/asyncio-eventloop.rst:1034 +#: ../Doc/library/asyncio-eventloop.rst:1085 msgid "" "Even though the method was always documented as a coroutine method, before " "Python 3.7 it returned a :class:`Future`. Since Python 3.7, this is an " @@ -1672,7 +1765,7 @@ msgstr "" "corrutina, antes de Python 3.7 retorna un :class:`Future`. Desde Python 3.7, " "este es un método ``async def``." -#: ../Doc/library/asyncio-eventloop.rst:1001 +#: ../Doc/library/asyncio-eventloop.rst:1041 msgid "" "Send a datagram from *sock* to *address*. Asynchronous version of :meth:" "`socket.sendto() `." @@ -1680,20 +1773,20 @@ msgstr "" "Envía un datagrama desde *sock* a *address*. Versión asíncrona de :meth:" "`socket.sendto() `." -#: ../Doc/library/asyncio-eventloop.rst:1005 +#: ../Doc/library/asyncio-eventloop.rst:1045 msgid "Return the number of bytes sent." msgstr "Retorna el número de bytes enviados." -#: ../Doc/library/asyncio-eventloop.rst:1013 +#: ../Doc/library/asyncio-eventloop.rst:1053 msgid "Connect *sock* to a remote socket at *address*." msgstr "Conecta *sock* a un socket remoto en *address*." -#: ../Doc/library/asyncio-eventloop.rst:1015 +#: ../Doc/library/asyncio-eventloop.rst:1055 msgid "" "Asynchronous version of :meth:`socket.connect() `." msgstr "Versión asíncrona de :meth:`socket.connect() `." -#: ../Doc/library/asyncio-eventloop.rst:1019 +#: ../Doc/library/asyncio-eventloop.rst:1059 msgid "" "``address`` no longer needs to be resolved. ``sock_connect`` will try to " "check if the *address* is already resolved by calling :func:`socket." @@ -1705,7 +1798,7 @@ msgstr "" "inet_pton`. Si no lo fue, se utilizará :meth:`loop.getaddrinfo` ara resolver " "*address*." -#: ../Doc/library/asyncio-eventloop.rst:1028 +#: ../Doc/library/asyncio-eventloop.rst:1068 msgid "" ":meth:`loop.create_connection` and :func:`asyncio.open_connection() " "`." @@ -1713,7 +1806,7 @@ msgstr "" ":meth:`loop.create_connection` y :func:`asyncio.open_connection() " "`." -#: ../Doc/library/asyncio-eventloop.rst:1034 +#: ../Doc/library/asyncio-eventloop.rst:1074 msgid "" "Accept a connection. Modeled after the blocking :meth:`socket.accept() " "` method." @@ -1721,7 +1814,7 @@ msgstr "" "Acepta una conexión. Modelado después del método bloqueante :meth:`socket." "accept() `." -#: ../Doc/library/asyncio-eventloop.rst:1037 +#: ../Doc/library/asyncio-eventloop.rst:1077 msgid "" "The socket must be bound to an address and listening for connections. The " "return value is a pair ``(conn, address)`` where *conn* is a *new* socket " @@ -1734,11 +1827,11 @@ msgstr "" "conexión, y *address*\n" " es la dirección enlazada al socket en el otro extremo de la conexión." -#: ../Doc/library/asyncio-eventloop.rst:1052 +#: ../Doc/library/asyncio-eventloop.rst:1092 msgid ":meth:`loop.create_server` and :func:`start_server`." msgstr ":meth:`loop.create_server` y :func:`start_server`." -#: ../Doc/library/asyncio-eventloop.rst:1057 +#: ../Doc/library/asyncio-eventloop.rst:1097 msgid "" "Send a file using high-performance :mod:`os.sendfile` if possible. Return " "the total number of bytes sent." @@ -1746,13 +1839,13 @@ msgstr "" "Envía un archivo usando :mod:`os.sendfile` de alto rendimiento si es " "posible. Retorna el número total de bytes enviados." -#: ../Doc/library/asyncio-eventloop.rst:1060 +#: ../Doc/library/asyncio-eventloop.rst:1100 msgid "" "Asynchronous version of :meth:`socket.sendfile() `." msgstr "" "Versión asíncrona de :meth:`socket.sendfile() `." -#: ../Doc/library/asyncio-eventloop.rst:1062 +#: ../Doc/library/asyncio-eventloop.rst:1102 msgid "" "*sock* must be a non-blocking :const:`socket.SOCK_STREAM` :class:`~socket." "socket`." @@ -1760,11 +1853,11 @@ msgstr "" "*sock* debe ser un :const:`socket.SOCK_STREAM` :class:`~socket.socket` no " "bloqueante." -#: ../Doc/library/asyncio-eventloop.rst:1065 +#: ../Doc/library/asyncio-eventloop.rst:1105 msgid "*file* must be a regular file object open in binary mode." msgstr "*file* debe ser un objeto de archivo regular abierto en modo binario." -#: ../Doc/library/asyncio-eventloop.rst:1074 +#: ../Doc/library/asyncio-eventloop.rst:1114 msgid "" "*fallback*, when set to ``True``, makes asyncio manually read and send the " "file when the platform does not support the sendfile syscall (e.g. Windows " @@ -1774,7 +1867,7 @@ msgstr "" "escriba el archivo manualmente cuando el sistema no soporta la llamada de " "envío de archivos del sistema (por ejemplo, Windows o sockets SSL en Unix)." -#: ../Doc/library/asyncio-eventloop.rst:1078 +#: ../Doc/library/asyncio-eventloop.rst:1118 msgid "" "Raise :exc:`SendfileNotAvailableError` if the system does not support " "*sendfile* syscall and *fallback* is ``False``." @@ -1782,19 +1875,19 @@ msgstr "" "Lanza :exc:`SendfileNotAvailableError` si el sistema no soporta la llamada " "de envío de archivos del sistema *sendfile* y *fallback* es ``False``." -#: ../Doc/library/asyncio-eventloop.rst:1087 +#: ../Doc/library/asyncio-eventloop.rst:1127 msgid "DNS" msgstr "DNS" -#: ../Doc/library/asyncio-eventloop.rst:1092 +#: ../Doc/library/asyncio-eventloop.rst:1132 msgid "Asynchronous version of :meth:`socket.getaddrinfo`." msgstr "Versión asíncrona de :meth:`socket.getaddrinfo`." -#: ../Doc/library/asyncio-eventloop.rst:1096 +#: ../Doc/library/asyncio-eventloop.rst:1136 msgid "Asynchronous version of :meth:`socket.getnameinfo`." msgstr "Asynchronous version of :meth:`socket.getnameinfo`." -#: ../Doc/library/asyncio-eventloop.rst:1098 +#: ../Doc/library/asyncio-eventloop.rst:1138 msgid "" "Both *getaddrinfo* and *getnameinfo* methods were always documented to " "return a coroutine, but prior to Python 3.7 they were, in fact, returning :" @@ -1806,19 +1899,19 @@ msgstr "" "objetos :class:`Future`. A partir de Python 3.7, ambos métodos son " "corrutinas." -#: ../Doc/library/asyncio-eventloop.rst:1106 +#: ../Doc/library/asyncio-eventloop.rst:1146 msgid "Working with pipes" msgstr "Trabajando con tuberías" -#: ../Doc/library/asyncio-eventloop.rst:1110 +#: ../Doc/library/asyncio-eventloop.rst:1150 msgid "Register the read end of *pipe* in the event loop." msgstr "Registra el fin de lectura de *pipe* en el bucle de eventos." -#: ../Doc/library/asyncio-eventloop.rst:1115 +#: ../Doc/library/asyncio-eventloop.rst:1155 msgid "*pipe* is a :term:`file-like object `." msgstr "*pipe* es un :term:`objeto de tipo archivo `." -#: ../Doc/library/asyncio-eventloop.rst:1117 +#: ../Doc/library/asyncio-eventloop.rst:1157 msgid "" "Return pair ``(transport, protocol)``, where *transport* supports the :class:" "`ReadTransport` interface and *protocol* is an object instantiated by the " @@ -1828,8 +1921,8 @@ msgstr "" "interface :class:`ReadTransport` y *protocol* es un objeto instanciado por " "*protocol_factory*." -#: ../Doc/library/asyncio-eventloop.rst:1121 -#: ../Doc/library/asyncio-eventloop.rst:1137 +#: ../Doc/library/asyncio-eventloop.rst:1161 +#: ../Doc/library/asyncio-eventloop.rst:1177 msgid "" "With :class:`SelectorEventLoop` event loop, the *pipe* is set to non-" "blocking mode." @@ -1837,15 +1930,15 @@ msgstr "" "Con el bucle de eventos :class:`SelectorEventLoop`, el *pipe* es establecido " "en modo no bloqueante." -#: ../Doc/library/asyncio-eventloop.rst:1126 +#: ../Doc/library/asyncio-eventloop.rst:1166 msgid "Register the write end of *pipe* in the event loop." msgstr "Registra el fin de escritura de *pipe* en el bucle de eventos." -#: ../Doc/library/asyncio-eventloop.rst:1131 +#: ../Doc/library/asyncio-eventloop.rst:1171 msgid "*pipe* is :term:`file-like object `." msgstr "*pipe* es un :term:`objeto de tipo archivo `." -#: ../Doc/library/asyncio-eventloop.rst:1133 +#: ../Doc/library/asyncio-eventloop.rst:1173 msgid "" "Return pair ``(transport, protocol)``, where *transport* supports :class:" "`WriteTransport` interface and *protocol* is an object instantiated by the " @@ -1855,7 +1948,7 @@ msgstr "" "interface :class:`WriteTransport` y *protocol* es un objeto inicializado por " "*protocol_factory*." -#: ../Doc/library/asyncio-eventloop.rst:1142 +#: ../Doc/library/asyncio-eventloop.rst:1182 msgid "" ":class:`SelectorEventLoop` does not support the above methods on Windows. " "Use :class:`ProactorEventLoop` instead for Windows." @@ -1863,21 +1956,21 @@ msgstr "" ":class:`SelectorEventLoop` no soporta los métodos anteriores en windows. En " "su lugar, use :class:`ProactorEventLoop` para Windows." -#: ../Doc/library/asyncio-eventloop.rst:1147 +#: ../Doc/library/asyncio-eventloop.rst:1187 msgid "" "The :meth:`loop.subprocess_exec` and :meth:`loop.subprocess_shell` methods." msgstr "" "Los métodos :meth:`loop.subprocess_exec` y :meth:`loop.subprocess_shell`." -#: ../Doc/library/asyncio-eventloop.rst:1152 +#: ../Doc/library/asyncio-eventloop.rst:1192 msgid "Unix signals" msgstr "Señales Unix" -#: ../Doc/library/asyncio-eventloop.rst:1156 +#: ../Doc/library/asyncio-eventloop.rst:1196 msgid "Set *callback* as the handler for the *signum* signal." msgstr "Establece *callback* como el gestor para la señal *signum*." -#: ../Doc/library/asyncio-eventloop.rst:1158 +#: ../Doc/library/asyncio-eventloop.rst:1198 msgid "" "The callback will be invoked by *loop*, along with other queued callbacks " "and runnable coroutines of that event loop. Unlike signal handlers " @@ -1889,7 +1982,7 @@ msgstr "" "señal la registren usando :func:`signal.signal`, una llamada registrada con " "esta función tiene permitido interactuar con el bucle de eventos." -#: ../Doc/library/asyncio-eventloop.rst:1163 +#: ../Doc/library/asyncio-eventloop.rst:1203 msgid "" "Raise :exc:`ValueError` if the signal number is invalid or uncatchable. " "Raise :exc:`RuntimeError` if there is a problem setting up the handler." @@ -1897,18 +1990,18 @@ msgstr "" "Lanza :exc:`ValueError` si el número de señal es invalido o inalcanzable. " "Lanza :exc:`RuntimeError` si hay algún problema preparando el gestor." -#: ../Doc/library/asyncio-eventloop.rst:1169 +#: ../Doc/library/asyncio-eventloop.rst:1209 msgid "" "Like :func:`signal.signal`, this function must be invoked in the main thread." msgstr "" "Como :func:`signal.signal`, esta función debe ser invocada en el hilo " "principal." -#: ../Doc/library/asyncio-eventloop.rst:1174 +#: ../Doc/library/asyncio-eventloop.rst:1214 msgid "Remove the handler for the *sig* signal." msgstr "Elimina el gestor para la señal *sig*." -#: ../Doc/library/asyncio-eventloop.rst:1176 +#: ../Doc/library/asyncio-eventloop.rst:1216 msgid "" "Return ``True`` if the signal handler was removed, or ``False`` if no " "handler was set for the given signal." @@ -1916,19 +2009,19 @@ msgstr "" "Retorna ``True`` si el gestor de señal fue eliminado, o ``False`` si no se " "estableció gestor para la señal dada." -#: ../Doc/library/asyncio-eventloop.rst:1183 +#: ../Doc/library/asyncio-eventloop.rst:1223 msgid "The :mod:`signal` module." msgstr "El módulo :mod:`signal`." -#: ../Doc/library/asyncio-eventloop.rst:1187 +#: ../Doc/library/asyncio-eventloop.rst:1227 msgid "Executing code in thread or process pools" msgstr "Ejecutando código en un hilos o grupos de procesos" -#: ../Doc/library/asyncio-eventloop.rst:1191 +#: ../Doc/library/asyncio-eventloop.rst:1231 msgid "Arrange for *func* to be called in the specified executor." msgstr "Hace arreglos para que *func* sea llamado en el ejecutor especificado." -#: ../Doc/library/asyncio-eventloop.rst:1193 +#: ../Doc/library/asyncio-eventloop.rst:1233 msgid "" "The *executor* argument should be an :class:`concurrent.futures.Executor` " "instance. The default executor is used if *executor* is ``None``." @@ -1936,7 +2029,7 @@ msgstr "" "El argumento *executor* debe ser una instancia de :class:`concurrent.futures." "Executor`. El ejecutor predeterminado es usado si *executor* es ``None``." -#: ../Doc/library/asyncio-eventloop.rst:1238 +#: ../Doc/library/asyncio-eventloop.rst:1278 msgid "" "Note that the entry point guard (``if __name__ == '__main__'``) is required " "for option 3 due to the peculiarities of :mod:`multiprocessing`, which is " @@ -1949,11 +2042,11 @@ msgstr "" "ProcessPoolExecutor`. Vea :ref:`Importación segura del módulo principal " "`." -#: ../Doc/library/asyncio-eventloop.rst:1243 +#: ../Doc/library/asyncio-eventloop.rst:1283 msgid "This method returns a :class:`asyncio.Future` object." msgstr "Este método retorna un objeto :class:`asyncio.Future`." -#: ../Doc/library/asyncio-eventloop.rst:1245 +#: ../Doc/library/asyncio-eventloop.rst:1285 msgid "" "Use :func:`functools.partial` :ref:`to pass keyword arguments ` to *func*." @@ -1961,7 +2054,7 @@ msgstr "" "Use :func:`functools.partial` :ref:`para pasar argumentos de palabra clave " "` a *func*." -#: ../Doc/library/asyncio-eventloop.rst:1248 +#: ../Doc/library/asyncio-eventloop.rst:1288 msgid "" ":meth:`loop.run_in_executor` no longer configures the ``max_workers`` of the " "thread pool executor it creates, instead leaving it up to the thread pool " @@ -1973,7 +2066,7 @@ msgstr "" "del grupo de subprocesos (:class:`~concurrent.futures.ThreadPoolExecutor`) " "para establecer el valor por defecto." -#: ../Doc/library/asyncio-eventloop.rst:1257 +#: ../Doc/library/asyncio-eventloop.rst:1297 msgid "" "Set *executor* as the default executor used by :meth:`run_in_executor`. " "*executor* must be an instance of :class:`~concurrent.futures." @@ -1983,7 +2076,7 @@ msgstr "" "`run_in_executor`. *executor* debe ser una instancia de :class:`~concurrent." "futures.ThreadPoolExecutor`." -#: ../Doc/library/asyncio-eventloop.rst:1261 +#: ../Doc/library/asyncio-eventloop.rst:1301 msgid "" "*executor* must be an instance of :class:`~concurrent.futures." "ThreadPoolExecutor`." @@ -1991,22 +2084,22 @@ msgstr "" "*executor* debe ser una instancia de :class:`~concurrent.futures." "ThreadPoolExecutor`." -#: ../Doc/library/asyncio-eventloop.rst:1267 +#: ../Doc/library/asyncio-eventloop.rst:1307 msgid "Error Handling API" msgstr "API para manejo de errores" -#: ../Doc/library/asyncio-eventloop.rst:1269 +#: ../Doc/library/asyncio-eventloop.rst:1309 msgid "Allows customizing how exceptions are handled in the event loop." msgstr "" "Permite personalizar como son manejadas las excepciones en el bucle de " "eventos." -#: ../Doc/library/asyncio-eventloop.rst:1273 +#: ../Doc/library/asyncio-eventloop.rst:1313 msgid "Set *handler* as the new event loop exception handler." msgstr "" "Establece *handler* como el nuevo gestor de excepciones del bucle de eventos." -#: ../Doc/library/asyncio-eventloop.rst:1275 +#: ../Doc/library/asyncio-eventloop.rst:1315 msgid "" "If *handler* is ``None``, the default exception handler will be set. " "Otherwise, *handler* must be a callable with the signature matching ``(loop, " @@ -2021,7 +2114,20 @@ msgstr "" "detalles de la excepción (vea la documentación de :meth:" "`call_exception_handler` para detalles acerca del contexto)." -#: ../Doc/library/asyncio-eventloop.rst:1285 +#: ../Doc/library/asyncio-eventloop.rst:1323 +msgid "" +"If the handler is called on behalf of a :class:`~asyncio.Task` or :class:" +"`~asyncio.Handle`, it is run in the :class:`contextvars.Context` of that " +"task or callback handle." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1329 +msgid "" +"The handler may be called in the :class:`~contextvars.Context` of the task " +"or handle where the exception originated." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1334 msgid "" "Return the current exception handler, or ``None`` if no custom exception " "handler was set." @@ -2029,11 +2135,11 @@ msgstr "" "Retorna el gesto de excepciones actual, o ``None`` si no fue establecido " "ningún gestor de excepciones personalizado." -#: ../Doc/library/asyncio-eventloop.rst:1292 +#: ../Doc/library/asyncio-eventloop.rst:1341 msgid "Default exception handler." msgstr "Gestor de excepciones por defecto." -#: ../Doc/library/asyncio-eventloop.rst:1294 +#: ../Doc/library/asyncio-eventloop.rst:1343 msgid "" "This is called when an exception occurs and no exception handler is set. " "This can be called by a custom exception handler that wants to defer to the " @@ -2043,7 +2149,7 @@ msgstr "" "de excepciones. Esto puede ser llamado por un gestor de excepciones " "personalizado que quiera cambiar el comportamiento del gestor predeterminado." -#: ../Doc/library/asyncio-eventloop.rst:1298 +#: ../Doc/library/asyncio-eventloop.rst:1347 msgid "" "*context* parameter has the same meaning as in :meth:" "`call_exception_handler`." @@ -2051,11 +2157,11 @@ msgstr "" "El parámetro *context* tiene el mismo significado que en :meth:" "`call_exception_handler`." -#: ../Doc/library/asyncio-eventloop.rst:1303 +#: ../Doc/library/asyncio-eventloop.rst:1352 msgid "Call the current event loop exception handler." msgstr "Llama al gestor de excepciones del bucle de eventos actual." -#: ../Doc/library/asyncio-eventloop.rst:1305 +#: ../Doc/library/asyncio-eventloop.rst:1354 msgid "" "*context* is a ``dict`` object containing the following keys (new keys may " "be introduced in future Python versions):" @@ -2063,49 +2169,49 @@ msgstr "" "*context* es un objeto ``dict`` conteniendo las siguientes claves (en " "futuras versiones de Python podrían introducirse nuevas claves):" -#: ../Doc/library/asyncio-eventloop.rst:1308 +#: ../Doc/library/asyncio-eventloop.rst:1357 msgid "'message': Error message;" msgstr "'message': Mensaje de error;" -#: ../Doc/library/asyncio-eventloop.rst:1309 +#: ../Doc/library/asyncio-eventloop.rst:1358 msgid "'exception' (optional): Exception object;" msgstr "'exception' (opcional): Objeto de excepción;" -#: ../Doc/library/asyncio-eventloop.rst:1310 +#: ../Doc/library/asyncio-eventloop.rst:1359 msgid "'future' (optional): :class:`asyncio.Future` instance;" msgstr "'future' (opcional): instancia de :class:`asyncio.Future`;" -#: ../Doc/library/asyncio-eventloop.rst:1311 +#: ../Doc/library/asyncio-eventloop.rst:1360 msgid "'task' (optional): :class:`asyncio.Task` instance;" msgstr "'task' (opcional): instancia de :class:`asyncio.Task`;" -#: ../Doc/library/asyncio-eventloop.rst:1312 +#: ../Doc/library/asyncio-eventloop.rst:1361 msgid "'handle' (optional): :class:`asyncio.Handle` instance;" msgstr "'handle' (opcional): instancia de :class:`asyncio.Handle`;" -#: ../Doc/library/asyncio-eventloop.rst:1313 +#: ../Doc/library/asyncio-eventloop.rst:1362 msgid "'protocol' (optional): :ref:`Protocol ` instance;" msgstr "" "'protocol' (opcional): instancia de :ref:`Protocol `;" -#: ../Doc/library/asyncio-eventloop.rst:1314 +#: ../Doc/library/asyncio-eventloop.rst:1363 msgid "'transport' (optional): :ref:`Transport ` instance;" msgstr "" "'transport' (opcional): instancia de :ref:`Transport `;" -#: ../Doc/library/asyncio-eventloop.rst:1315 +#: ../Doc/library/asyncio-eventloop.rst:1364 msgid "'socket' (optional): :class:`socket.socket` instance;" msgstr "'socket' (opcional): instancia de :class:`socket.socket`;" -#: ../Doc/library/asyncio-eventloop.rst:1317 +#: ../Doc/library/asyncio-eventloop.rst:1366 msgid "'asyncgen' (optional): Asynchronous generator that caused" msgstr "'asyncgen' (opcional): Generador asíncrono que causó" -#: ../Doc/library/asyncio-eventloop.rst:1317 +#: ../Doc/library/asyncio-eventloop.rst:1366 msgid "the exception." msgstr "la excepción." -#: ../Doc/library/asyncio-eventloop.rst:1321 +#: ../Doc/library/asyncio-eventloop.rst:1370 msgid "" "This method should not be overloaded in subclassed event loops. For custom " "exception handling, use the :meth:`set_exception_handler()` method." @@ -2114,15 +2220,15 @@ msgstr "" "gestión de excepciones personalizadas, use el método :meth:" "`set_exception_handler()`." -#: ../Doc/library/asyncio-eventloop.rst:1326 +#: ../Doc/library/asyncio-eventloop.rst:1375 msgid "Enabling debug mode" msgstr "Habilitando el modo depuración" -#: ../Doc/library/asyncio-eventloop.rst:1330 +#: ../Doc/library/asyncio-eventloop.rst:1379 msgid "Get the debug mode (:class:`bool`) of the event loop." msgstr "Obtiene el modo depuración (:class:`bool`) del bucle de eventos." -#: ../Doc/library/asyncio-eventloop.rst:1332 +#: ../Doc/library/asyncio-eventloop.rst:1381 msgid "" "The default value is ``True`` if the environment variable :envvar:" "`PYTHONASYNCIODEBUG` is set to a non-empty string, ``False`` otherwise." @@ -2131,11 +2237,11 @@ msgstr "" "`PYTHONASYNCIODEBUG` es establecida a una cadena no vacía, de otro modo será " "``False``." -#: ../Doc/library/asyncio-eventloop.rst:1338 +#: ../Doc/library/asyncio-eventloop.rst:1387 msgid "Set the debug mode of the event loop." msgstr "Establece el modo de depuración del bucle de eventos." -#: ../Doc/library/asyncio-eventloop.rst:1342 +#: ../Doc/library/asyncio-eventloop.rst:1391 msgid "" "The new :ref:`Python Development Mode ` can now also be used to " "enable the debug mode." @@ -2143,15 +2249,15 @@ msgstr "" "El nuevo :ref:`Python Modo de Desarrollo ` ahora también se puede " "usar para habilitar el modo de depuración." -#: ../Doc/library/asyncio-eventloop.rst:1347 +#: ../Doc/library/asyncio-eventloop.rst:1396 msgid "The :ref:`debug mode of asyncio `." msgstr "El :ref:`modo depuración de asyncio `." -#: ../Doc/library/asyncio-eventloop.rst:1351 +#: ../Doc/library/asyncio-eventloop.rst:1400 msgid "Running Subprocesses" msgstr "Ejecutando subprocesos" -#: ../Doc/library/asyncio-eventloop.rst:1353 +#: ../Doc/library/asyncio-eventloop.rst:1402 msgid "" "Methods described in this subsections are low-level. In regular async/await " "code consider using the high-level :func:`asyncio.create_subprocess_shell` " @@ -2161,7 +2267,7 @@ msgstr "" "await regular considere usar las convenientes funciones de alto nivel :func:" "`asyncio.create_subprocess_shell` y :func:`asyncio.create_subprocess_exec`." -#: ../Doc/library/asyncio-eventloop.rst:1360 +#: ../Doc/library/asyncio-eventloop.rst:1409 msgid "" "On Windows, the default event loop :class:`ProactorEventLoop` supports " "subprocesses, whereas :class:`SelectorEventLoop` does not. See :ref:" @@ -2172,22 +2278,22 @@ msgstr "" "`Soporte de subprocesos en Windows ` para más " "detalles." -#: ../Doc/library/asyncio-eventloop.rst:1369 +#: ../Doc/library/asyncio-eventloop.rst:1418 msgid "" "Create a subprocess from one or more string arguments specified by *args*." msgstr "" "Crea un subproceso de uno o mas argumentos de cadena especificados por " "*args*." -#: ../Doc/library/asyncio-eventloop.rst:1372 +#: ../Doc/library/asyncio-eventloop.rst:1421 msgid "*args* must be a list of strings represented by:" msgstr "*args* debe ser una lista de cadenas representadas por:" -#: ../Doc/library/asyncio-eventloop.rst:1374 +#: ../Doc/library/asyncio-eventloop.rst:1423 msgid ":class:`str`;" msgstr ":class:`str`;" -#: ../Doc/library/asyncio-eventloop.rst:1375 +#: ../Doc/library/asyncio-eventloop.rst:1424 msgid "" "or :class:`bytes`, encoded to the :ref:`filesystem encoding `." @@ -2195,7 +2301,7 @@ msgstr "" "o :class:`bytes`, codificados a la :ref:`codificación del sistema de " "archivos `." -#: ../Doc/library/asyncio-eventloop.rst:1378 +#: ../Doc/library/asyncio-eventloop.rst:1427 msgid "" "The first string specifies the program executable, and the remaining strings " "specify the arguments. Together, string arguments form the ``argv`` of the " @@ -2205,7 +2311,7 @@ msgstr "" "especifican los argumentos. En conjunto, los argumentos de cadena forman el " "``argv`` del programa." -#: ../Doc/library/asyncio-eventloop.rst:1382 +#: ../Doc/library/asyncio-eventloop.rst:1431 msgid "" "This is similar to the standard library :class:`subprocess.Popen` class " "called with ``shell=False`` and the list of strings passed as the first " @@ -2218,7 +2324,7 @@ msgstr "" "sólo argumento que es una lista de cadenas, *subprocess_exec* toma múltiples " "cadenas como argumentos." -#: ../Doc/library/asyncio-eventloop.rst:1388 +#: ../Doc/library/asyncio-eventloop.rst:1437 msgid "" "The *protocol_factory* must be a callable returning a subclass of the :class:" "`asyncio.SubprocessProtocol` class." @@ -2226,26 +2332,29 @@ msgstr "" "El *protocol_factory* debe ser un ejecutable que retorne una subclase de la " "clase :class:`asyncio.SubprocessProtocol`." -#: ../Doc/library/asyncio-eventloop.rst:1391 +#: ../Doc/library/asyncio-eventloop.rst:1440 msgid "Other parameters:" msgstr "Otros parámetros:" -#: ../Doc/library/asyncio-eventloop.rst:1393 +#: ../Doc/library/asyncio-eventloop.rst:1442 msgid "*stdin* can be any of these:" msgstr "*stdin* puede ser cualquier de estos:" -#: ../Doc/library/asyncio-eventloop.rst:1395 +#: ../Doc/library/asyncio-eventloop.rst:1444 +#: ../Doc/library/asyncio-eventloop.rst:1455 +#: ../Doc/library/asyncio-eventloop.rst:1465 +msgid "a file-like object" +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1445 msgid "" -"a file-like object representing a pipe to be connected to the subprocess's " -"standard input stream using :meth:`~loop.connect_write_pipe`" +"an existing file descriptor (a positive integer), for example those created " +"with :meth:`os.pipe()`" msgstr "" -"un objeto de tipo archivo representando una tubería que será conectada al " -"flujo de entrada estándar del subproceso utilizando :meth:`~loop." -"connect_write_pipe`" -#: ../Doc/library/asyncio-eventloop.rst:1398 -#: ../Doc/library/asyncio-eventloop.rst:1410 -#: ../Doc/library/asyncio-eventloop.rst:1422 +#: ../Doc/library/asyncio-eventloop.rst:1446 +#: ../Doc/library/asyncio-eventloop.rst:1456 +#: ../Doc/library/asyncio-eventloop.rst:1466 msgid "" "the :const:`subprocess.PIPE` constant (default) which will create a new pipe " "and connect it," @@ -2253,9 +2362,9 @@ msgstr "" "la constante :const:`subprocess.PIPE` (predeterminado) que creará una " "tubería nueva y la conectará," -#: ../Doc/library/asyncio-eventloop.rst:1400 -#: ../Doc/library/asyncio-eventloop.rst:1412 -#: ../Doc/library/asyncio-eventloop.rst:1424 +#: ../Doc/library/asyncio-eventloop.rst:1448 +#: ../Doc/library/asyncio-eventloop.rst:1458 +#: ../Doc/library/asyncio-eventloop.rst:1468 msgid "" "the value ``None`` which will make the subprocess inherit the file " "descriptor from this process" @@ -2263,9 +2372,9 @@ msgstr "" "el valor ``None`` que hará que el subproceso herede el descriptor de archivo " "de este proceso" -#: ../Doc/library/asyncio-eventloop.rst:1402 -#: ../Doc/library/asyncio-eventloop.rst:1414 -#: ../Doc/library/asyncio-eventloop.rst:1426 +#: ../Doc/library/asyncio-eventloop.rst:1450 +#: ../Doc/library/asyncio-eventloop.rst:1460 +#: ../Doc/library/asyncio-eventloop.rst:1470 msgid "" "the :const:`subprocess.DEVNULL` constant which indicates that the special :" "data:`os.devnull` file will be used" @@ -2273,33 +2382,15 @@ msgstr "" "la constante :const:`subprocess.DEVNULL` que indica que el archivo especial :" "data:`os.devnull` será utilizado" -#: ../Doc/library/asyncio-eventloop.rst:1405 +#: ../Doc/library/asyncio-eventloop.rst:1453 msgid "*stdout* can be any of these:" msgstr "*stdout* puede ser cualquier de estos:" -#: ../Doc/library/asyncio-eventloop.rst:1407 -msgid "" -"a file-like object representing a pipe to be connected to the subprocess's " -"standard output stream using :meth:`~loop.connect_write_pipe`" -msgstr "" -"un objeto de tipo archivo representando una tubería que será conectada al " -"flujo de salida estándar del subproceso utilizando :meth:`~loop." -"connect_write_pipe`" - -#: ../Doc/library/asyncio-eventloop.rst:1417 +#: ../Doc/library/asyncio-eventloop.rst:1463 msgid "*stderr* can be any of these:" msgstr "*stderr* puede ser cualquier de estos:" -#: ../Doc/library/asyncio-eventloop.rst:1419 -msgid "" -"a file-like object representing a pipe to be connected to the subprocess's " -"standard error stream using :meth:`~loop.connect_write_pipe`" -msgstr "" -"un objeto de tipo archivo representando una tubería que será conectada al " -"flujo de error estándar del subproceso utilizando :meth:`~loop." -"connect_write_pipe`" - -#: ../Doc/library/asyncio-eventloop.rst:1428 +#: ../Doc/library/asyncio-eventloop.rst:1472 msgid "" "the :const:`subprocess.STDOUT` constant which will connect the standard " "error stream to the process' standard output stream" @@ -2307,7 +2398,7 @@ msgstr "" "la constante :const:`subprocess.STDOUT` que conectará el flujo de errores " "predeterminado al flujo de salida predeterminado del proceso" -#: ../Doc/library/asyncio-eventloop.rst:1431 +#: ../Doc/library/asyncio-eventloop.rst:1475 msgid "" "All other keyword arguments are passed to :class:`subprocess.Popen` without " "interpretation, except for *bufsize*, *universal_newlines*, *shell*, *text*, " @@ -2318,7 +2409,7 @@ msgstr "" "*shell*, *text*, *encoding* y *errors*, que no deben ser especificados en lo " "absoluto." -#: ../Doc/library/asyncio-eventloop.rst:1436 +#: ../Doc/library/asyncio-eventloop.rst:1480 msgid "" "The ``asyncio`` subprocess API does not support decoding the streams as " "text. :func:`bytes.decode` can be used to convert the bytes returned from " @@ -2328,7 +2419,15 @@ msgstr "" "func:`bytes.decode` puede ser usado para convertir a texto los bytes " "retornados por el flujo." -#: ../Doc/library/asyncio-eventloop.rst:1440 +#: ../Doc/library/asyncio-eventloop.rst:1484 +msgid "" +"If a file-like object passed as *stdin*, *stdout* or *stderr* represents a " +"pipe, then the other side of this pipe should be registered with :meth:" +"`~loop.connect_write_pipe` or :meth:`~loop.connect_read_pipe` for use with " +"the event loop." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1489 msgid "" "See the constructor of the :class:`subprocess.Popen` class for documentation " "on other arguments." @@ -2336,7 +2435,7 @@ msgstr "" "Vea el constructor de la clase :class:`subprocess.Popen` para documentación " "acerca de otros argumentos." -#: ../Doc/library/asyncio-eventloop.rst:1443 +#: ../Doc/library/asyncio-eventloop.rst:1492 msgid "" "Returns a pair of ``(transport, protocol)``, where *transport* conforms to " "the :class:`asyncio.SubprocessTransport` base class and *protocol* is an " @@ -2346,7 +2445,7 @@ msgstr "" "la clase base :class:`asyncio.SubprocessTransport` y *protocol* es un objeto " "instanciado por *protocol_factory*." -#: ../Doc/library/asyncio-eventloop.rst:1451 +#: ../Doc/library/asyncio-eventloop.rst:1500 msgid "" "Create a subprocess from *cmd*, which can be a :class:`str` or a :class:" "`bytes` string encoded to the :ref:`filesystem encoding `, usando la sintaxis \"shell\" de la plataforma." -#: ../Doc/library/asyncio-eventloop.rst:1456 +#: ../Doc/library/asyncio-eventloop.rst:1505 msgid "" "This is similar to the standard library :class:`subprocess.Popen` class " "called with ``shell=True``." @@ -2364,7 +2463,7 @@ msgstr "" "Esto es similar a la clase de la librería estándar :class:`subprocess.Popen` " "llamada con ``shell=True``." -#: ../Doc/library/asyncio-eventloop.rst:1459 +#: ../Doc/library/asyncio-eventloop.rst:1508 msgid "" "The *protocol_factory* must be a callable returning a subclass of the :class:" "`SubprocessProtocol` class." @@ -2372,7 +2471,7 @@ msgstr "" "El *protocol_factory* debe ser un ejecutable que retorne una subclase de la " "clase :class:`asyncio.SubprocessProtocol`." -#: ../Doc/library/asyncio-eventloop.rst:1462 +#: ../Doc/library/asyncio-eventloop.rst:1511 msgid "" "See :meth:`~loop.subprocess_exec` for more details about the remaining " "arguments." @@ -2380,7 +2479,7 @@ msgstr "" "Vea :meth:`~loop.subprocess_exec` para mas detalles acerca de los argumentos " "restantes." -#: ../Doc/library/asyncio-eventloop.rst:1465 +#: ../Doc/library/asyncio-eventloop.rst:1514 msgid "" "Returns a pair of ``(transport, protocol)``, where *transport* conforms to " "the :class:`SubprocessTransport` base class and *protocol* is an object " @@ -2390,7 +2489,7 @@ msgstr "" "la clase base :class:`SubprocessTransport` y *protocol* es un objeto " "instanciado por *protocol_factory*." -#: ../Doc/library/asyncio-eventloop.rst:1470 +#: ../Doc/library/asyncio-eventloop.rst:1519 msgid "" "It is the application's responsibility to ensure that all whitespace and " "special characters are quoted appropriately to avoid `shell injection " @@ -2406,11 +2505,11 @@ msgstr "" "usada para escapar apropiadamente espacios en blanco y caracteres especiales " "en cadenas que van a ser usadas para construir comandos de consola." -#: ../Doc/library/asyncio-eventloop.rst:1479 +#: ../Doc/library/asyncio-eventloop.rst:1528 msgid "Callback Handles" msgstr "Gestores de llamadas" -#: ../Doc/library/asyncio-eventloop.rst:1483 +#: ../Doc/library/asyncio-eventloop.rst:1532 msgid "" "A callback wrapper object returned by :meth:`loop.call_soon`, :meth:`loop." "call_soon_threadsafe`." @@ -2418,7 +2517,12 @@ msgstr "" "Un objeto de contenedor de llamada retornado por :meth:`loop.call_soon`, :" "meth:`loop.call_soon_threadsafe`." -#: ../Doc/library/asyncio-eventloop.rst:1488 +#: ../Doc/library/asyncio-eventloop.rst:1537 +msgid "" +"Return the :class:`contextvars.Context` object associated with the handle." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1544 msgid "" "Cancel the callback. If the callback has already been canceled or executed, " "this method has no effect." @@ -2426,11 +2530,11 @@ msgstr "" "Cancela la llamada. Si la llamada ya fue cancelada o ejecutada, este método " "no tiene efecto." -#: ../Doc/library/asyncio-eventloop.rst:1493 +#: ../Doc/library/asyncio-eventloop.rst:1549 msgid "Return ``True`` if the callback was cancelled." msgstr "Retorna ``True`` si la llamada fue cancelada." -#: ../Doc/library/asyncio-eventloop.rst:1499 +#: ../Doc/library/asyncio-eventloop.rst:1555 msgid "" "A callback wrapper object returned by :meth:`loop.call_later`, and :meth:" "`loop.call_at`." @@ -2438,16 +2542,16 @@ msgstr "" "Un objeto de contenedor de llamada retornado por :meth:`loop.call_later`, " "and :meth:`loop.call_at`." -#: ../Doc/library/asyncio-eventloop.rst:1502 +#: ../Doc/library/asyncio-eventloop.rst:1558 msgid "This class is a subclass of :class:`Handle`." msgstr "Esta clase es una subclase de :class:`Handle`." -#: ../Doc/library/asyncio-eventloop.rst:1506 +#: ../Doc/library/asyncio-eventloop.rst:1562 msgid "Return a scheduled callback time as :class:`float` seconds." msgstr "" "Retorna el tiempo de una llamada planificada como :class:`float` segundos." -#: ../Doc/library/asyncio-eventloop.rst:1508 +#: ../Doc/library/asyncio-eventloop.rst:1564 msgid "" "The time is an absolute timestamp, using the same time reference as :meth:" "`loop.time`." @@ -2455,11 +2559,11 @@ msgstr "" "El tiempo es una marca de tiempo absoluta, usando la misma referencia de " "tiempo que :meth:`loop.time`." -#: ../Doc/library/asyncio-eventloop.rst:1515 +#: ../Doc/library/asyncio-eventloop.rst:1571 msgid "Server Objects" msgstr "Objetos Servidor" -#: ../Doc/library/asyncio-eventloop.rst:1517 +#: ../Doc/library/asyncio-eventloop.rst:1573 msgid "" "Server objects are created by :meth:`loop.create_server`, :meth:`loop." "create_unix_server`, :func:`start_server`, and :func:`start_unix_server` " @@ -2469,11 +2573,12 @@ msgstr "" "create_server`, :meth:`loop.create_unix_server`, :func:`start_server`, y :" "func:`start_unix_server`." -#: ../Doc/library/asyncio-eventloop.rst:1521 -msgid "Do not instantiate the class directly." +#: ../Doc/library/asyncio-eventloop.rst:1577 +#, fuzzy +msgid "Do not instantiate the :class:`Server` class directly." msgstr "No instanciar la clase directamente." -#: ../Doc/library/asyncio-eventloop.rst:1525 +#: ../Doc/library/asyncio-eventloop.rst:1581 msgid "" "*Server* objects are asynchronous context managers. When used in an ``async " "with`` statement, it's guaranteed that the Server object is closed and not " @@ -2484,12 +2589,18 @@ msgstr "" "Servidor está cerrado y no está aceptando nuevas conexiones cuando la " "declaración ``async with`` es completada::" -#: ../Doc/library/asyncio-eventloop.rst:1538 +#: ../Doc/library/asyncio-eventloop.rst:1594 msgid "Server object is an asynchronous context manager since Python 3.7." msgstr "" "El objeto Servidor es un gestor asíncrono de contexto desde Python 3.7." -#: ../Doc/library/asyncio-eventloop.rst:1543 +#: ../Doc/library/asyncio-eventloop.rst:1597 +msgid "" +"This class was exposed publicly as ``asyncio.Server`` in Python 3.9.11, " +"3.10.3 and 3.11." +msgstr "" + +#: ../Doc/library/asyncio-eventloop.rst:1602 msgid "" "Stop serving: close listening sockets and set the :attr:`sockets` attribute " "to ``None``." @@ -2497,7 +2608,7 @@ msgstr "" "Deja de servir: deja de escuchar sockets y establece el atributo :attr:" "`sockets` a ``None``." -#: ../Doc/library/asyncio-eventloop.rst:1546 +#: ../Doc/library/asyncio-eventloop.rst:1605 msgid "" "The sockets that represent existing incoming client connections are left " "open." @@ -2505,7 +2616,7 @@ msgstr "" "Los sockets que representan conexiones entrantes existentes de clientes se " "dejan abiertas." -#: ../Doc/library/asyncio-eventloop.rst:1549 +#: ../Doc/library/asyncio-eventloop.rst:1608 msgid "" "The server is closed asynchronously, use the :meth:`wait_closed` coroutine " "to wait until the server is closed." @@ -2513,15 +2624,15 @@ msgstr "" "El servidor es cerrado de manera asíncrona, usa la corrutina :meth:" "`wait_closed` para esperar hasta que el servidor esté cerrado." -#: ../Doc/library/asyncio-eventloop.rst:1554 +#: ../Doc/library/asyncio-eventloop.rst:1613 msgid "Return the event loop associated with the server object." msgstr "Retorna el bucle de eventos asociado con el objeto Servidor." -#: ../Doc/library/asyncio-eventloop.rst:1560 +#: ../Doc/library/asyncio-eventloop.rst:1619 msgid "Start accepting connections." msgstr "Comienza a aceptar conexiones." -#: ../Doc/library/asyncio-eventloop.rst:1562 +#: ../Doc/library/asyncio-eventloop.rst:1621 msgid "" "This method is idempotent, so it can be called when the server is already " "serving." @@ -2529,7 +2640,7 @@ msgstr "" "Este método es idempotente, así que puede ser llamado cuando el servidor ya " "está sirviendo." -#: ../Doc/library/asyncio-eventloop.rst:1565 +#: ../Doc/library/asyncio-eventloop.rst:1624 msgid "" "The *start_serving* keyword-only parameter to :meth:`loop.create_server` " "and :meth:`asyncio.start_server` allows creating a Server object that is not " @@ -2543,7 +2654,7 @@ msgstr "" "``Server.start_serving()``, o :meth:`Server.serve_forever` pueden ser usados " "para hacer que el servidor empiece a aceptar conexiones." -#: ../Doc/library/asyncio-eventloop.rst:1576 +#: ../Doc/library/asyncio-eventloop.rst:1635 msgid "" "Start accepting connections until the coroutine is cancelled. Cancellation " "of ``serve_forever`` task causes the server to be closed." @@ -2551,7 +2662,7 @@ msgstr "" "Comienza a aceptar conexiones hasta que la corrutina sea cancelada. La " "cancelación de la tarea ``serve_forever`` hace que el servidor sea cerrado." -#: ../Doc/library/asyncio-eventloop.rst:1580 +#: ../Doc/library/asyncio-eventloop.rst:1639 msgid "" "This method can be called if the server is already accepting connections. " "Only one ``serve_forever`` task can exist per one *Server* object." @@ -2559,21 +2670,24 @@ msgstr "" "Este método puede ser llamado si el servidor ya está aceptando conexiones. " "Solamente una tarea ``serve_forever`` puede existir para un objeto *Server*." -#: ../Doc/library/asyncio-eventloop.rst:1602 +#: ../Doc/library/asyncio-eventloop.rst:1661 msgid "Return ``True`` if the server is accepting new connections." msgstr "Retorna ``True`` si el servidor está aceptando nuevas conexiones." -#: ../Doc/library/asyncio-eventloop.rst:1608 +#: ../Doc/library/asyncio-eventloop.rst:1667 msgid "Wait until the :meth:`close` method completes." msgstr "Espera hasta que el método :meth:`close` se complete." -#: ../Doc/library/asyncio-eventloop.rst:1612 -msgid "List of :class:`socket.socket` objects the server is listening on." +#: ../Doc/library/asyncio-eventloop.rst:1671 +#, fuzzy +msgid "" +"List of socket-like objects, ``asyncio.trsock.TransportSocket``, which the " +"server is listening on." msgstr "" "Lista todos los objetos :class:`socket.socket` en los que el servidor está " "escuchando." -#: ../Doc/library/asyncio-eventloop.rst:1614 +#: ../Doc/library/asyncio-eventloop.rst:1674 msgid "" "Prior to Python 3.7 ``Server.sockets`` used to return an internal list of " "server sockets directly. In 3.7 a copy of that list is returned." @@ -2581,11 +2695,11 @@ msgstr "" "Antes de Python 3.7 ``Server.sockets`` solía retornar directamente una lista " "interna de servidores socket. En 3.7 se retorna una copia de esa lista." -#: ../Doc/library/asyncio-eventloop.rst:1624 +#: ../Doc/library/asyncio-eventloop.rst:1684 msgid "Event Loop Implementations" msgstr "Implementaciones del bucle de eventos" -#: ../Doc/library/asyncio-eventloop.rst:1626 +#: ../Doc/library/asyncio-eventloop.rst:1686 msgid "" "asyncio ships with two different event loop implementations: :class:" "`SelectorEventLoop` and :class:`ProactorEventLoop`." @@ -2593,7 +2707,7 @@ msgstr "" "asyncio viene con dos implementaciones diferentes del bucle de eventos: :" "class:`SelectorEventLoop` y :class:`ProactorEventLoop`." -#: ../Doc/library/asyncio-eventloop.rst:1629 +#: ../Doc/library/asyncio-eventloop.rst:1689 msgid "" "By default asyncio is configured to use :class:`SelectorEventLoop` on Unix " "and :class:`ProactorEventLoop` on Windows." @@ -2601,11 +2715,11 @@ msgstr "" "De manera predefinida asyncio está configurado para usar :class:" "`SelectorEventLoop` en Unix y :class:`ProactorEventLoop` en Windows." -#: ../Doc/library/asyncio-eventloop.rst:1635 +#: ../Doc/library/asyncio-eventloop.rst:1695 msgid "An event loop based on the :mod:`selectors` module." msgstr "Un bucle de eventos basado en el módulo :mod:`selectors`." -#: ../Doc/library/asyncio-eventloop.rst:1637 +#: ../Doc/library/asyncio-eventloop.rst:1697 msgid "" "Uses the most efficient *selector* available for the given platform. It is " "also possible to manually configure the exact selector implementation to be " @@ -2615,21 +2729,21 @@ msgstr "" "es posible configurar manualmente la implementación exacta del selector a " "utilizar::" -#: ../Doc/library/asyncio-eventloop.rst:1652 +#: ../Doc/library/asyncio-eventloop.rst:1712 msgid ":ref:`Availability `: Unix, Windows." msgstr ":ref:`Disponibilidad `: Unix, Windows." -#: ../Doc/library/asyncio-eventloop.rst:1657 +#: ../Doc/library/asyncio-eventloop.rst:1717 msgid "An event loop for Windows that uses \"I/O Completion Ports\" (IOCP)." msgstr "" "Un bucle de eventos para Windows que usa \"E/S Puertos de " "Finalización\" (IOCP)." -#: ../Doc/library/asyncio-eventloop.rst:1660 +#: ../Doc/library/asyncio-eventloop.rst:1719 msgid ":ref:`Availability `: Windows." msgstr ":ref:`Disponibilidad `: Windows." -#: ../Doc/library/asyncio-eventloop.rst:1663 +#: ../Doc/library/asyncio-eventloop.rst:1723 msgid "" "`MSDN documentation on I/O Completion Ports `_." @@ -2637,11 +2751,11 @@ msgstr "" "`Documentaci´on de MSDN sobre E/S Puertos de Finalización `_." -#: ../Doc/library/asyncio-eventloop.rst:1669 +#: ../Doc/library/asyncio-eventloop.rst:1729 msgid "Abstract base class for asyncio-compliant event loops." msgstr "Clase base abstracta para bucles de evento compatibles con asyncio." -#: ../Doc/library/asyncio-eventloop.rst:1671 +#: ../Doc/library/asyncio-eventloop.rst:1731 msgid "" "The :ref:`asyncio-event-loop-methods` section lists all methods that an " "alternative implementation of ``AbstractEventLoop`` should have defined." @@ -2649,11 +2763,11 @@ msgstr "" "La sección :ref:`asyncio-event-loop-methods` lista todos los métodos que una " "implementación alternativa de ``AbstractEventLoop`` debería tener definidos." -#: ../Doc/library/asyncio-eventloop.rst:1677 +#: ../Doc/library/asyncio-eventloop.rst:1737 msgid "Examples" msgstr "Examples" -#: ../Doc/library/asyncio-eventloop.rst:1679 +#: ../Doc/library/asyncio-eventloop.rst:1739 msgid "" "Note that all examples in this section **purposefully** show how to use the " "low-level event loop APIs, such as :meth:`loop.run_forever` and :meth:`loop." @@ -2666,11 +2780,11 @@ msgstr "" "raramente necesitan ser escritas de esta manera; considere utilizar " "funciones de alto nivel como :func:`asyncio.run`." -#: ../Doc/library/asyncio-eventloop.rst:1689 +#: ../Doc/library/asyncio-eventloop.rst:1749 msgid "Hello World with call_soon()" msgstr "Hola Mundo con call_soon()" -#: ../Doc/library/asyncio-eventloop.rst:1691 +#: ../Doc/library/asyncio-eventloop.rst:1751 msgid "" "An example using the :meth:`loop.call_soon` method to schedule a callback. " "The callback displays ``\"Hello World\"`` and then stops the event loop::" @@ -2679,7 +2793,7 @@ msgstr "" "llamada. La llamada muestra ``\"Hello World\"`` y luego para el bucle de " "eventos::" -#: ../Doc/library/asyncio-eventloop.rst:1715 +#: ../Doc/library/asyncio-eventloop.rst:1775 msgid "" "A similar :ref:`Hello World ` example created with a coroutine " "and the :func:`run` function." @@ -2687,11 +2801,11 @@ msgstr "" "Un ejemplo similar de :ref:`Hola Mundo ` creado con una corrutina " "y la función :func:`run`." -#: ../Doc/library/asyncio-eventloop.rst:1722 +#: ../Doc/library/asyncio-eventloop.rst:1782 msgid "Display the current date with call_later()" msgstr "Muestra la fecha actual con call_later()" -#: ../Doc/library/asyncio-eventloop.rst:1724 +#: ../Doc/library/asyncio-eventloop.rst:1784 msgid "" "An example of a callback displaying the current date every second. The " "callback uses the :meth:`loop.call_later` method to reschedule itself after " @@ -2701,7 +2815,7 @@ msgstr "" "usa el método :meth:`loop.call_later` para volver a planificarse después de " "5 segundos, y después para el bucle de eventos::" -#: ../Doc/library/asyncio-eventloop.rst:1752 +#: ../Doc/library/asyncio-eventloop.rst:1812 msgid "" "A similar :ref:`current date ` example created with a " "coroutine and the :func:`run` function." @@ -2709,11 +2823,11 @@ msgstr "" "Un ejemplo similar a :ref:`fecha actual ` creado con " "una corrutina y la función :func:`run`." -#: ../Doc/library/asyncio-eventloop.rst:1759 +#: ../Doc/library/asyncio-eventloop.rst:1819 msgid "Watch a file descriptor for read events" msgstr "Mirar un descriptor de archivo para leer eventos" -#: ../Doc/library/asyncio-eventloop.rst:1761 +#: ../Doc/library/asyncio-eventloop.rst:1821 msgid "" "Wait until a file descriptor received some data using the :meth:`loop." "add_reader` method and then close the event loop::" @@ -2721,7 +2835,7 @@ msgstr "" "Espera hasta que el descriptor de archivo reciba algún dato usando el " "método :meth:`loop.add_reader` y entonces cierra el bucle de eventos::" -#: ../Doc/library/asyncio-eventloop.rst:1799 +#: ../Doc/library/asyncio-eventloop.rst:1859 msgid "" "A similar :ref:`example ` using " "transports, protocols, and the :meth:`loop.create_connection` method." @@ -2729,7 +2843,7 @@ msgstr "" "Un :ref:`ejemplo ` similar usando " "transportes, protocolos y el método :meth:`loop.create_connection`." -#: ../Doc/library/asyncio-eventloop.rst:1803 +#: ../Doc/library/asyncio-eventloop.rst:1863 msgid "" "Another similar :ref:`example ` " "using the high-level :func:`asyncio.open_connection` function and streams." @@ -2738,18 +2852,61 @@ msgstr "" "usando la función de alto nivel :func:`asyncio.open_connection` y " "transmisiones." -#: ../Doc/library/asyncio-eventloop.rst:1811 +#: ../Doc/library/asyncio-eventloop.rst:1871 msgid "Set signal handlers for SIGINT and SIGTERM" msgstr "Establece los gestores de señal para SIGINT y SIGTERM" -#: ../Doc/library/asyncio-eventloop.rst:1813 +#: ../Doc/library/asyncio-eventloop.rst:1873 msgid "(This ``signals`` example only works on Unix.)" msgstr "(Este ejemplo de ``signals`` solamente funcionan en Unix.)" -#: ../Doc/library/asyncio-eventloop.rst:1815 +#: ../Doc/library/asyncio-eventloop.rst:1875 msgid "" "Register handlers for signals :py:data:`SIGINT` and :py:data:`SIGTERM` using " "the :meth:`loop.add_signal_handler` method::" msgstr "" "Registra gestores para las señales :py:data:`SIGINT` y :py:data:`SIGTERM` " "usando el método :meth:`loop.add_signal_handler`::" + +#~ msgid "" +#~ "If there is no current event loop set in the current OS thread, the OS " +#~ "thread is main, and :func:`set_event_loop` has not yet been called, " +#~ "asyncio will create a new event loop and set it as the current one." +#~ msgstr "" +#~ "Si no hay un bucle de eventos actual establecido en el hilo actual del " +#~ "sistema operativo, el hilo del sistema operativo es el principal, y :func:" +#~ "`set_event_loop` aún no ha sido llamado, asyncio creará un nuevo bucle de " +#~ "eventos y lo establecerá como el actual." + +#~ msgid "" +#~ "Return a new transport instance, that the *protocol* must start using " +#~ "immediately after the *await*. The *transport* instance passed to the " +#~ "*start_tls* method should never be used again." +#~ msgstr "" +#~ "Retorna una nueva instancia de transporte, que el *protocol* debe empezar " +#~ "a usar inmediatamente después del *await*. La instancia *transport* " +#~ "pasada al método *start_tls* nunca debe ser usada de nuevo." + +#~ msgid "" +#~ "a file-like object representing a pipe to be connected to the " +#~ "subprocess's standard input stream using :meth:`~loop.connect_write_pipe`" +#~ msgstr "" +#~ "un objeto de tipo archivo representando una tubería que será conectada al " +#~ "flujo de entrada estándar del subproceso utilizando :meth:`~loop." +#~ "connect_write_pipe`" + +#~ msgid "" +#~ "a file-like object representing a pipe to be connected to the " +#~ "subprocess's standard output stream using :meth:`~loop.connect_write_pipe`" +#~ msgstr "" +#~ "un objeto de tipo archivo representando una tubería que será conectada al " +#~ "flujo de salida estándar del subproceso utilizando :meth:`~loop." +#~ "connect_write_pipe`" + +#~ msgid "" +#~ "a file-like object representing a pipe to be connected to the " +#~ "subprocess's standard error stream using :meth:`~loop.connect_write_pipe`" +#~ msgstr "" +#~ "un objeto de tipo archivo representando una tubería que será conectada al " +#~ "flujo de error estándar del subproceso utilizando :meth:`~loop." +#~ "connect_write_pipe`" diff --git a/library/asyncio-exceptions.po b/library/asyncio-exceptions.po index f3d719a416..b56ebba13f 100644 --- a/library/asyncio-exceptions.po +++ b/library/asyncio-exceptions.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-10-09 05:04-0500\n" "Last-Translator: \n" "Language: es_EC\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/asyncio-exceptions.rst:8 msgid "Exceptions" @@ -55,7 +55,10 @@ msgstr "" "excepción debe volver a lanzarse." #: ../Doc/library/asyncio-exceptions.rst:34 -msgid ":exc:`CancelledError` is now a subclass of :class:`BaseException`." +#, fuzzy +msgid "" +":exc:`CancelledError` is now a subclass of :class:`BaseException` rather " +"than :class:`Exception`." msgstr ":exc:`CancelledError` es ahora una subclase de :class:`BaseException`." #: ../Doc/library/asyncio-exceptions.rst:39 diff --git a/library/asyncio-extending.po b/library/asyncio-extending.po index 27647acd10..8920ebb6ac 100644 --- a/library/asyncio-extending.po +++ b/library/asyncio-extending.po @@ -9,14 +9,14 @@ msgid "" msgstr "" "Project-Id-Version: Python en Español 3.11\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/asyncio-extending.rst:6 msgid "Extending" @@ -137,9 +137,10 @@ msgid "Task lifetime support" msgstr "Soporte de por vida de tareas" #: ../Doc/library/asyncio-extending.rst:71 +#, fuzzy msgid "" "A third party task implementation should call the following functions to " -"keep a task visible by :func:`asyncio.get_tasks` and :func:`asyncio." +"keep a task visible by :func:`asyncio.all_tasks` and :func:`asyncio." "current_task`:" msgstr "" "La implementación de una tarea de terceros debe llamar a las siguientes " diff --git a/library/asyncio-future.po b/library/asyncio-future.po index 116bd0df6c..5cd7414e7c 100644 --- a/library/asyncio-future.po +++ b/library/asyncio-future.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-12 11:56+0100\n" "Last-Translator: Santiago Puerta \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/asyncio-future.rst:8 msgid "Futures" @@ -436,9 +435,10 @@ msgstr "" "futures.wait` ni :func:`concurrent.futures.as_completed`." #: ../Doc/library/asyncio-future.rst:278 +#, fuzzy msgid "" ":meth:`asyncio.Future.cancel` accepts an optional ``msg`` argument, but :" -"func:`concurrent.futures.cancel` does not." +"meth:`concurrent.futures.Future.cancel` does not." msgstr "" ":meth:`asyncio.Future.cancel` acepta un argumento opcional ``msg``, pero :" "func:`concurrent.futures.cancel` no." diff --git a/library/asyncio-llapi-index.po b/library/asyncio-llapi-index.po index 99f22be207..7993c87959 100644 --- a/library/asyncio-llapi-index.po +++ b/library/asyncio-llapi-index.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-10-17 21:32-0300\n" "Last-Translator: \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/asyncio-llapi-index.rst:6 msgid "Low-level API Index" @@ -47,7 +47,8 @@ msgid ":func:`asyncio.get_event_loop`" msgstr ":func:`asyncio.get_event_loop`" #: ../Doc/library/asyncio-llapi-index.rst:22 -msgid "Get an event loop instance (current or via the policy)." +#, fuzzy +msgid "Get an event loop instance (running or current via the current policy)." msgstr "" "Obtiene una instancia del bucle de eventos (actual o mediante la política " "del bucle)." diff --git a/library/asyncio-platforms.po b/library/asyncio-platforms.po index ecbc91b6e8..7567858b4b 100644 --- a/library/asyncio-platforms.po +++ b/library/asyncio-platforms.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-10-18 13:28+0200\n" "Last-Translator: \n" "Language: es_ES\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/asyncio-platforms.rst:9 msgid "Platform Support" @@ -71,9 +71,10 @@ msgstr "" "Todos los bucles de eventos en Windows no admiten los métodos siguientes:" #: ../Doc/library/asyncio-platforms.rst:38 +#, fuzzy msgid "" ":meth:`loop.create_unix_connection` and :meth:`loop.create_unix_server` are " -"not supported. The :data:`socket.AF_UNIX` socket family is specific to Unix." +"not supported. The :const:`socket.AF_UNIX` socket family is specific to Unix." msgstr "" ":meth:`loop.create_unix_connection` y :meth:`loop.create_unix_server` no son " "compatibles. La familia de sockets :data:`socket.AF_UNIX` es específica de " diff --git a/library/asyncio-policy.po b/library/asyncio-policy.po index e85d0a1dde..681a431f41 100644 --- a/library/asyncio-policy.po +++ b/library/asyncio-policy.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-04-02 04:14-0300\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/asyncio-policy.rst:8 msgid "Policies" @@ -147,19 +146,19 @@ msgstr "" "Retorna un objeto observador implementando la interfaz :class:" "`AbstractChildWatcher`." -#: ../Doc/library/asyncio-policy.rst:89 ../Doc/library/asyncio-policy.rst:95 +#: ../Doc/library/asyncio-policy.rst:89 ../Doc/library/asyncio-policy.rst:97 msgid "This function is Unix specific." msgstr "Esta función es específica de Unix." -#: ../Doc/library/asyncio-policy.rst:93 +#: ../Doc/library/asyncio-policy.rst:95 msgid "Set the current child process watcher to *watcher*." msgstr "Establece el observador de procesos secundarios actuales a *watcher*." -#: ../Doc/library/asyncio-policy.rst:100 +#: ../Doc/library/asyncio-policy.rst:104 msgid "asyncio ships with the following built-in policies:" msgstr "asyncio se envía con las siguientes políticas integradas:" -#: ../Doc/library/asyncio-policy.rst:105 +#: ../Doc/library/asyncio-policy.rst:109 msgid "" "The default asyncio policy. Uses :class:`SelectorEventLoop` on Unix and :" "class:`ProactorEventLoop` on Windows." @@ -167,7 +166,7 @@ msgstr "" "La política por defecto asyncio. Usa :class:`SelectorEventLoop` en Unix y :" "class:`ProactorEventLoop` en Windows." -#: ../Doc/library/asyncio-policy.rst:108 +#: ../Doc/library/asyncio-policy.rst:112 msgid "" "There is no need to install the default policy manually. asyncio is " "configured to use the default policy automatically." @@ -175,11 +174,19 @@ msgstr "" "No hay necesidad de instalar la política por defecto manualmente. asyncio " "está configurado para usar la política por defecto automáticamente." -#: ../Doc/library/asyncio-policy.rst:113 +#: ../Doc/library/asyncio-policy.rst:117 msgid "On Windows, :class:`ProactorEventLoop` is now used by default." msgstr "En Windows, :class:`ProactorEventLoop` ahora se usa por defecto." -#: ../Doc/library/asyncio-policy.rst:118 +#: ../Doc/library/asyncio-policy.rst:119 +msgid "" +"The :meth:`get_event_loop` method of the default asyncio policy now emits a :" +"exc:`DeprecationWarning` if there is no current event loop set and it " +"decides to create one. In some future Python release this will become an " +"error." +msgstr "" + +#: ../Doc/library/asyncio-policy.rst:128 msgid "" "An alternative event loop policy that uses the :class:`SelectorEventLoop` " "event loop implementation." @@ -187,11 +194,11 @@ msgstr "" "Una política de bucle de eventos alternativa que usa la implementación de " "bucle de eventos :class:`SelectorEventLoop`." -#: ../Doc/library/asyncio-policy.rst:121 ../Doc/library/asyncio-policy.rst:129 +#: ../Doc/library/asyncio-policy.rst:131 ../Doc/library/asyncio-policy.rst:139 msgid ":ref:`Availability `: Windows." msgstr ":ref:`Disponibilidad `: Windows." -#: ../Doc/library/asyncio-policy.rst:126 +#: ../Doc/library/asyncio-policy.rst:136 msgid "" "An alternative event loop policy that uses the :class:`ProactorEventLoop` " "event loop implementation." @@ -199,11 +206,11 @@ msgstr "" "Una política de bucle de eventos alternativa que usa la implementación de " "bucle de eventos :class:`ProactorEventLoop`." -#: ../Doc/library/asyncio-policy.rst:135 +#: ../Doc/library/asyncio-policy.rst:145 msgid "Process Watchers" msgstr "Observadores de procesos" -#: ../Doc/library/asyncio-policy.rst:137 +#: ../Doc/library/asyncio-policy.rst:147 msgid "" "A process watcher allows customization of how an event loop monitors child " "processes on Unix. Specifically, the event loop needs to know when a child " @@ -213,7 +220,7 @@ msgstr "" "monitorea procesos secundarios en Unix. Específicamente, un bucle de eventos " "necesita saber cuándo un proceso secundario ha terminado." -#: ../Doc/library/asyncio-policy.rst:141 +#: ../Doc/library/asyncio-policy.rst:151 msgid "" "In asyncio, child processes are created with :func:`create_subprocess_exec` " "and :meth:`loop.subprocess_exec` functions." @@ -221,7 +228,7 @@ msgstr "" "En asyncio, los procesos secundarios son creados con las funciones :func:" "`créate_subprocess_exec` y :meth:`loop.subprocess_exec`." -#: ../Doc/library/asyncio-policy.rst:145 +#: ../Doc/library/asyncio-policy.rst:155 msgid "" "asyncio defines the :class:`AbstractChildWatcher` abstract base class, which " "child watchers should implement, and has four different implementations: :" @@ -235,7 +242,7 @@ msgstr "" "ser usado por defecto), :class:`MultiLoopChildWatcher`, :class:" "`SaferChildWatcher`, y :class:`FastChildWatcher`." -#: ../Doc/library/asyncio-policy.rst:151 +#: ../Doc/library/asyncio-policy.rst:161 msgid "" "See also the :ref:`Subprocess and Threads ` " "section." @@ -243,7 +250,7 @@ msgstr "" "Mirar también la sección :ref:`Subprocesos e hilos `." -#: ../Doc/library/asyncio-policy.rst:154 +#: ../Doc/library/asyncio-policy.rst:164 msgid "" "The following two functions can be used to customize the child process " "watcher implementation used by the asyncio event loop:" @@ -252,11 +259,11 @@ msgstr "" "implementación de observadores de procesos secundarios usados por el bucle " "de eventos de asyncio:" -#: ../Doc/library/asyncio-policy.rst:159 +#: ../Doc/library/asyncio-policy.rst:169 msgid "Return the current child watcher for the current policy." msgstr "Retorna el observador de procesos secundarios para la política actual." -#: ../Doc/library/asyncio-policy.rst:163 +#: ../Doc/library/asyncio-policy.rst:175 msgid "" "Set the current child watcher to *watcher* for the current policy. " "*watcher* must implement methods defined in the :class:" @@ -266,7 +273,7 @@ msgstr "" "política actual. *watcher* debe implementar métodos definidos en la clase " "base :class:`AbstractChildWatcher`." -#: ../Doc/library/asyncio-policy.rst:168 +#: ../Doc/library/asyncio-policy.rst:182 msgid "" "Third-party event loops implementations might not support custom child " "watchers. For such event loops, using :func:`set_child_watcher` might be " @@ -277,11 +284,11 @@ msgstr "" "bucles de eventos, usando :func:`set_child_watcher` podría estar prohibido o " "no tener efecto." -#: ../Doc/library/asyncio-policy.rst:176 +#: ../Doc/library/asyncio-policy.rst:190 msgid "Register a new child handler." msgstr "Registra un nuevo gestor de proceso secundario." -#: ../Doc/library/asyncio-policy.rst:178 +#: ../Doc/library/asyncio-policy.rst:192 msgid "" "Arrange for ``callback(pid, returncode, *args)`` to be called when a process " "with PID equal to *pid* terminates. Specifying another callback for the " @@ -291,15 +298,15 @@ msgstr "" "proceso con PID igual a *pid* termina. Especificando otro retrollamada para " "el mismo proceso reemplaza el gestor previo." -#: ../Doc/library/asyncio-policy.rst:183 +#: ../Doc/library/asyncio-policy.rst:197 msgid "The *callback* callable must be thread-safe." msgstr "El *callback* invocable debe ser seguro para hilos." -#: ../Doc/library/asyncio-policy.rst:187 +#: ../Doc/library/asyncio-policy.rst:201 msgid "Removes the handler for process with PID equal to *pid*." msgstr "Remueve el gestor para el proceso con PID igual a *pid*." -#: ../Doc/library/asyncio-policy.rst:189 +#: ../Doc/library/asyncio-policy.rst:203 msgid "" "The function returns ``True`` if the handler was successfully removed, " "``False`` if there was nothing to remove." @@ -307,11 +314,11 @@ msgstr "" "La función retorna ``True`` si el gestor fue removido de forma exitosa, " "``False`` si no hubo nada que remover." -#: ../Doc/library/asyncio-policy.rst:194 +#: ../Doc/library/asyncio-policy.rst:208 msgid "Attach the watcher to an event loop." msgstr "Adjunta el observador a un bucle de eventos." -#: ../Doc/library/asyncio-policy.rst:196 +#: ../Doc/library/asyncio-policy.rst:210 msgid "" "If the watcher was previously attached to an event loop, then it is first " "detached before attaching to the new loop." @@ -319,15 +326,15 @@ msgstr "" "Si el observador estaba previamente adjuntado a un bucle de eventos, " "entonces primero es separado antes de adjuntar el nuevo bucle." -#: ../Doc/library/asyncio-policy.rst:199 +#: ../Doc/library/asyncio-policy.rst:213 msgid "Note: loop may be ``None``." msgstr "Nota: el bucle puede ser ``None``." -#: ../Doc/library/asyncio-policy.rst:203 +#: ../Doc/library/asyncio-policy.rst:217 msgid "Return ``True`` if the watcher is ready to use." msgstr "Retorna ``True`` si el observador está listo para usarse." -#: ../Doc/library/asyncio-policy.rst:205 +#: ../Doc/library/asyncio-policy.rst:219 msgid "" "Spawning a subprocess with *inactive* current child watcher raises :exc:" "`RuntimeError`." @@ -335,11 +342,11 @@ msgstr "" "Generar un nuevo subproceso con observador de procesos secundarios actual " "*inactive* lanza :exc:`RuntimeError`." -#: ../Doc/library/asyncio-policy.rst:212 +#: ../Doc/library/asyncio-policy.rst:226 msgid "Close the watcher." msgstr "Cierra el observador." -#: ../Doc/library/asyncio-policy.rst:214 +#: ../Doc/library/asyncio-policy.rst:228 msgid "" "This method has to be called to ensure that underlying resources are cleaned-" "up." @@ -347,14 +354,14 @@ msgstr "" "Este método tiene que ser invocado para asegurar que los objetos subyacentes " "están limpiados." -#: ../Doc/library/asyncio-policy.rst:219 +#: ../Doc/library/asyncio-policy.rst:236 msgid "" "This implementation starts a new waiting thread for every subprocess spawn." msgstr "" "Esta implementación inicia un nuevo hilo esperando para cada subproceso " "generado." -#: ../Doc/library/asyncio-policy.rst:221 +#: ../Doc/library/asyncio-policy.rst:238 msgid "" "It works reliably even when the asyncio event loop is run in a non-main OS " "thread." @@ -362,7 +369,7 @@ msgstr "" "Trabaja de manera confiable incluso cuando el bucle de eventos asyncio se " "ejecuta en un hilo de SO no principal." -#: ../Doc/library/asyncio-policy.rst:223 +#: ../Doc/library/asyncio-policy.rst:240 msgid "" "There is no noticeable overhead when handling a big number of children " "(*O(1)* each time a child terminates), but starting a thread per process " @@ -372,11 +379,11 @@ msgstr "" "secundarios (*O(1)* cada vez que un proceso secundario termina), pero " "iniciar un hilo por proceso requiere memoria extra." -#: ../Doc/library/asyncio-policy.rst:226 +#: ../Doc/library/asyncio-policy.rst:243 msgid "This watcher is used by default." msgstr "Este observador es usado por defecto." -#: ../Doc/library/asyncio-policy.rst:232 +#: ../Doc/library/asyncio-policy.rst:249 msgid "" "This implementation registers a :py:data:`SIGCHLD` signal handler on " "instantiation. That can break third-party code that installs a custom " @@ -386,7 +393,7 @@ msgstr "" "`SIGCHLD`. Eso puede romper código de terceras partes que instalen un gestor " "personalizado para la señal :py:data:`SIGCHLD`." -#: ../Doc/library/asyncio-policy.rst:236 ../Doc/library/asyncio-policy.rst:254 +#: ../Doc/library/asyncio-policy.rst:253 ../Doc/library/asyncio-policy.rst:273 msgid "" "The watcher avoids disrupting other code spawning processes by polling every " "process explicitly on a :py:data:`SIGCHLD` signal." @@ -394,7 +401,7 @@ msgstr "" "El observador evita interrumpir otro código generando procesos sondeando " "cada proceso explícitamente en una señal :py:data:`SIGCHLD`." -#: ../Doc/library/asyncio-policy.rst:239 +#: ../Doc/library/asyncio-policy.rst:256 msgid "" "There is no limitation for running subprocesses from different threads once " "the watcher is installed." @@ -402,7 +409,7 @@ msgstr "" "No hay limitación para ejecutar subprocesos de diferentes hilos una vez el " "observador es instalado." -#: ../Doc/library/asyncio-policy.rst:242 +#: ../Doc/library/asyncio-policy.rst:259 msgid "" "The solution is safe but it has a significant overhead when handling a big " "number of processes (*O(n)* each time a :py:data:`SIGCHLD` is received)." @@ -411,7 +418,7 @@ msgstr "" "gestiona un número grande de procesos (*O(n)* cada vez que un :py:data:" "`SIGCHLD` es recibido)." -#: ../Doc/library/asyncio-policy.rst:250 +#: ../Doc/library/asyncio-policy.rst:269 msgid "" "This implementation uses active event loop from the main thread to handle :" "py:data:`SIGCHLD` signal. If the main thread has no running event loop " @@ -422,7 +429,7 @@ msgstr "" "de eventos en ejecución otro hilo no puede generar un subproceso (:exc:" "`RuntimeError` es disparada)." -#: ../Doc/library/asyncio-policy.rst:257 +#: ../Doc/library/asyncio-policy.rst:276 msgid "" "This solution is as safe as :class:`MultiLoopChildWatcher` and has the same " "*O(N)* complexity but requires a running event loop in the main thread to " @@ -432,7 +439,7 @@ msgstr "" "misma complejidad *O(n)* pero requiere de un bucle de eventos ejecutándose " "en el hilo principal para trabajar." -#: ../Doc/library/asyncio-policy.rst:262 +#: ../Doc/library/asyncio-policy.rst:283 msgid "" "This implementation reaps every terminated processes by calling ``os." "waitpid(-1)`` directly, possibly breaking other code spawning processes and " @@ -442,7 +449,7 @@ msgstr "" "waitpad(-1)`` directamente, posiblemente rompiendo otro código generando " "procesos y esperando por su terminación." -#: ../Doc/library/asyncio-policy.rst:266 +#: ../Doc/library/asyncio-policy.rst:287 msgid "" "There is no noticeable overhead when handling a big number of children " "(*O(1)* each time a child terminates)." @@ -450,7 +457,7 @@ msgstr "" "No hay sobrecarga notable cuando se gestiona un número grande de procesos " "secundarios (*O(1)* cada vez que un proceso secundario termina)." -#: ../Doc/library/asyncio-policy.rst:269 +#: ../Doc/library/asyncio-policy.rst:290 msgid "" "This solution requires a running event loop in the main thread to work, as :" "class:`SafeChildWatcher`." @@ -458,7 +465,7 @@ msgstr "" "Esta solución requiere un bucle de eventos ejecutándose en el hilo principal " "para trabajar, como :class:`SafeChildWatcher`." -#: ../Doc/library/asyncio-policy.rst:274 +#: ../Doc/library/asyncio-policy.rst:297 msgid "" "This implementation polls process file descriptors (pidfds) to await child " "process termination. In some respects, :class:`PidfdChildWatcher` is a " @@ -476,11 +483,11 @@ msgstr "" "lanzados por el bucle de eventos. La principal desventaja es que los pidfds " "son específicos de Linux y solo funcionan en kernels recientes (5.3+)." -#: ../Doc/library/asyncio-policy.rst:288 +#: ../Doc/library/asyncio-policy.rst:311 msgid "Custom Policies" msgstr "Personalizar Políticas" -#: ../Doc/library/asyncio-policy.rst:290 +#: ../Doc/library/asyncio-policy.rst:313 msgid "" "To implement a new event loop policy, it is recommended to subclass :class:" "`DefaultEventLoopPolicy` and override the methods for which custom behavior " diff --git a/library/asyncio-runner.po b/library/asyncio-runner.po index 3d1f338a9b..a853697229 100644 --- a/library/asyncio-runner.po +++ b/library/asyncio-runner.po @@ -8,17 +8,16 @@ msgid "" msgstr "" "Project-Id-Version: Python en Español 3.11\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-12-10 14:55+0100\n" "Last-Translator: Andrea ALEGRE \n" -"Language-Team: \n" "Language: es_ES\n" +"Language-Team: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/asyncio-runner.rst:6 msgid "Runners" @@ -53,15 +52,16 @@ msgid "Execute the :term:`coroutine` *coro* and return the result." msgstr "Ejecutar el :term:`coroutine` *coro* y retornar el resultado." #: ../Doc/library/asyncio-runner.rst:29 +#, fuzzy msgid "" "This function runs the passed coroutine, taking care of managing the asyncio " -"event loop, *finalizing asynchronous generators*, and closing the threadpool." +"event loop, *finalizing asynchronous generators*, and closing the executor." msgstr "" "Esta función ejecuta la co-rutina pasada, teniendo cuidado de manejar el " "bucle de eventos asyncio, *terminando los generadores asíncronos* y cerrando " "el pool de hilos." -#: ../Doc/library/asyncio-runner.rst:33 ../Doc/library/asyncio-runner.rst:103 +#: ../Doc/library/asyncio-runner.rst:33 ../Doc/library/asyncio-runner.rst:113 msgid "" "This function cannot be called when another asyncio event loop is running in " "the same thread." @@ -72,7 +72,7 @@ msgstr "" # is used to respect the global : # =>se usa para respetar la configuración global # (la traducción directa me parece poco clara) -#: ../Doc/library/asyncio-runner.rst:36 ../Doc/library/asyncio-runner.rst:73 +#: ../Doc/library/asyncio-runner.rst:36 ../Doc/library/asyncio-runner.rst:83 msgid "" "If *debug* is ``True``, the event loop will be run in debug mode. ``False`` " "disables debug mode explicitly. ``None`` is used to respect the global :ref:" @@ -84,34 +84,44 @@ msgstr "" #: ../Doc/library/asyncio-runner.rst:40 msgid "" -"This function always creates a new event loop and closes it at the end. It " -"should be used as a main entry point for asyncio programs, and should " -"ideally only be called once." +"If *loop_factory* is not ``None``, it is used to create a new event loop; " +"otherwise :func:`asyncio.new_event_loop` is used. The loop is closed at the " +"end. This function should be used as a main entry point for asyncio " +"programs, and should ideally only be called once. It is recommended to use " +"*loop_factory* to configure the event loop instead of policies." +msgstr "" + +#: ../Doc/library/asyncio-runner.rst:46 +msgid "" +"The executor is given a timeout duration of 5 minutes to shutdown. If the " +"executor hasn't finished within that duration, a warning is emitted and the " +"executor is closed." msgstr "" -"Esta función siempre crea un nuevo bucle de eventos y lo cierra al final. " -"Debería ser usado como el punto de entrada principal para programas asyncio " -"e idealmente, llamado una sola vez." -#: ../Doc/library/asyncio-runner.rst:44 +#: ../Doc/library/asyncio-runner.rst:50 msgid "Example::" msgstr "Ejemplo::" -#: ../Doc/library/asyncio-runner.rst:54 +#: ../Doc/library/asyncio-runner.rst:60 msgid "Updated to use :meth:`loop.shutdown_default_executor`." msgstr "Actualizado para usar :meth:`loop.shutdown_default_executor`." -#: ../Doc/library/asyncio-runner.rst:59 +#: ../Doc/library/asyncio-runner.rst:65 msgid "" "*debug* is ``None`` by default to respect the global debug mode settings." msgstr "" "*debug* es ``None`` por defecto para respetar la configuración global del " "modo debug." -#: ../Doc/library/asyncio-runner.rst:63 +#: ../Doc/library/asyncio-runner.rst:69 +msgid "Added *loop_factory* parameter." +msgstr "" + +#: ../Doc/library/asyncio-runner.rst:73 msgid "Runner context manager" msgstr "Administrador de contexto del ejecutor" -#: ../Doc/library/asyncio-runner.rst:67 +#: ../Doc/library/asyncio-runner.rst:77 msgid "" "A context manager that simplifies *multiple* async function calls in the " "same context." @@ -119,7 +129,7 @@ msgstr "" "Un administrador de contexto que simplifica *multiples* llamadas asíncronas " "en el mismo contexto." -#: ../Doc/library/asyncio-runner.rst:70 +#: ../Doc/library/asyncio-runner.rst:80 msgid "" "Sometimes several top-level async functions should be called in the same :" "ref:`event loop ` and :class:`contextvars.Context`." @@ -128,7 +138,7 @@ msgstr "" "el mismo :ref:`bucle de eventos ` y :class:`contextvars." "Context`." -#: ../Doc/library/asyncio-runner.rst:77 +#: ../Doc/library/asyncio-runner.rst:87 msgid "" "*loop_factory* could be used for overriding the loop creation. It is the " "responsibility of the *loop_factory* to set the created loop as the current " @@ -141,7 +151,7 @@ msgstr "" "configura el nuevo bucle de eventos como el actual con :func:`asyncio." "set_event_loop` si *loop_factory* es ``None``." -#: ../Doc/library/asyncio-runner.rst:82 +#: ../Doc/library/asyncio-runner.rst:92 msgid "" "Basically, :func:`asyncio.run()` example can be rewritten with the runner " "usage::" @@ -149,19 +159,19 @@ msgstr "" "Básicamente, el ejemplo :func:`asyncio.run()` puede ser re-escrito usando el " "ejecutor::" -#: ../Doc/library/asyncio-runner.rst:95 +#: ../Doc/library/asyncio-runner.rst:105 msgid "Run a :term:`coroutine ` *coro* in the embedded loop." msgstr "Ejecuta una :term:`co-rutina ` *coro* en el bucle embebido." # más info sobre el origen de la excepción -#: ../Doc/library/asyncio-runner.rst:97 +#: ../Doc/library/asyncio-runner.rst:107 msgid "Return the coroutine's result or raise its exception." msgstr "" "Retorna el resultado de la co-rutina o lanza excepción de dicha co-rutina." # - hice un poco más clara la segunda oración # - corrijo traduccion de keyboard-only -> keyword-only -#: ../Doc/library/asyncio-runner.rst:99 +#: ../Doc/library/asyncio-runner.rst:109 msgid "" "An optional keyword-only *context* argument allows specifying a custom :" "class:`contextvars.Context` for the *coro* to run in. The runner's default " @@ -172,11 +182,11 @@ msgstr "" "correr la *coro* . El contexto por defecto del ejecutor es usado si el modo " "debug es ``None``." -#: ../Doc/library/asyncio-runner.rst:108 +#: ../Doc/library/asyncio-runner.rst:118 msgid "Close the runner." msgstr "Cierra el ejecutor." -#: ../Doc/library/asyncio-runner.rst:110 +#: ../Doc/library/asyncio-runner.rst:120 msgid "" "Finalize asynchronous generators, shutdown default executor, close the event " "loop and release embedded :class:`contextvars.Context`." @@ -184,11 +194,11 @@ msgstr "" "Termina los generadores asíncronos, apaga el ejecutor por defecto, cierra el " "bucle de eventos y libera el :class:`contextvars.Context` embebido." -#: ../Doc/library/asyncio-runner.rst:115 +#: ../Doc/library/asyncio-runner.rst:125 msgid "Return the event loop associated with the runner instance." msgstr "Retorna el bucle de eventos asociado a la instancia del ejecutor." -#: ../Doc/library/asyncio-runner.rst:119 +#: ../Doc/library/asyncio-runner.rst:129 msgid "" ":class:`Runner` uses the lazy initialization strategy, its constructor " "doesn't initialize underlying low-level structures." @@ -196,7 +206,7 @@ msgstr "" ":class:`Runner` usa una estrategia de inicialización perezosa, su " "constructor no inicializa las estructuras de bajo nivel subyacentes." -#: ../Doc/library/asyncio-runner.rst:122 +#: ../Doc/library/asyncio-runner.rst:132 msgid "" "Embedded *loop* and *context* are created at the :keyword:`with` body " "entering or the first call of :meth:`run` or :meth:`get_loop`." @@ -204,12 +214,13 @@ msgstr "" "El *bucle* y el *contexto* embebidos son creados al entrar al cuerpo :" "keyword:`with` o en la primera llamada a :meth:`run` o a :meth:`get_loop`." -#: ../Doc/library/asyncio-runner.rst:127 +#: ../Doc/library/asyncio-runner.rst:137 msgid "Handling Keyboard Interruption" msgstr "Manejando interrupciones de teclado" -# Oración muy poco clara, incluso en inglés=> adaptación para que sea más comprensible -#: ../Doc/library/asyncio-runner.rst:131 +# Oración muy poco clara, incluso en inglés=> adaptación para que sea más +# comprensible +#: ../Doc/library/asyncio-runner.rst:141 msgid "" "When :const:`signal.SIGINT` is raised by :kbd:`Ctrl-C`, :exc:" "`KeyboardInterrupt` exception is raised in the main thread by default. " @@ -222,7 +233,7 @@ msgstr "" "puede interrumpir llamadas internas a asyncio e impedir la salida del " "programa." -#: ../Doc/library/asyncio-runner.rst:136 +#: ../Doc/library/asyncio-runner.rst:146 msgid "" "To mitigate this issue, :mod:`asyncio` handles :const:`signal.SIGINT` as " "follows:" @@ -230,7 +241,7 @@ msgstr "" "Para mitigar este problema, :mod:`asyncio` maneja :const:`signal.SIGINT` de " "la siguiente forma:" -#: ../Doc/library/asyncio-runner.rst:138 +#: ../Doc/library/asyncio-runner.rst:148 msgid "" ":meth:`asyncio.Runner.run` installs a custom :const:`signal.SIGINT` handler " "before any user code is executed and removes it when exiting from the " @@ -240,7 +251,7 @@ msgstr "" "personalizado antes que cualquier código de usuario sea ejecutado y lo " "remueve a la salida de la función." -#: ../Doc/library/asyncio-runner.rst:140 +#: ../Doc/library/asyncio-runner.rst:150 msgid "" "The :class:`~asyncio.Runner` creates the main task for the passed coroutine " "for its execution." @@ -248,7 +259,7 @@ msgstr "" "La :class:`~asyncio.Runner` crea la tarea principal que será pasada a la co-" "rutina para su ejecución." -#: ../Doc/library/asyncio-runner.rst:142 +#: ../Doc/library/asyncio-runner.rst:152 #, fuzzy msgid "" "When :const:`signal.SIGINT` is raised by :kbd:`Ctrl-C`, the custom signal " @@ -266,7 +277,7 @@ msgstr "" "que la tarea principal es cancelada, :meth:`asyncio.Runner.run` lanza :exc:" "`KeyboardInterrupt`." -#: ../Doc/library/asyncio-runner.rst:148 +#: ../Doc/library/asyncio-runner.rst:158 msgid "" "A user could write a tight loop which cannot be interrupted by :meth:" "`asyncio.Task.cancel`, in which case the second following :kbd:`Ctrl-C` " @@ -277,3 +288,12 @@ msgstr "" "por :meth:`asyncio.Task.cancel`, en cuyo caso la segunda llamada a :kbd:" "`Ctrl-C` lanza inmediatamente :exc:`KeyboardInterrupt` sin cancelar la tarea " "principal." + +#~ msgid "" +#~ "This function always creates a new event loop and closes it at the end. " +#~ "It should be used as a main entry point for asyncio programs, and should " +#~ "ideally only be called once." +#~ msgstr "" +#~ "Esta función siempre crea un nuevo bucle de eventos y lo cierra al final. " +#~ "Debería ser usado como el punto de entrada principal para programas " +#~ "asyncio e idealmente, llamado una sola vez." diff --git a/library/asyncio-stream.po b/library/asyncio-stream.po index fbb37b4ae3..76e63258a9 100644 --- a/library/asyncio-stream.po +++ b/library/asyncio-stream.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-02-10 14:01+0100\n" "Last-Translator: Gustavo Huarcaya \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/asyncio-stream.rst:7 msgid "Streams" @@ -62,7 +61,7 @@ msgstr "" "Las siguientes funciones asyncio de nivel superior se pueden utilizar para " "crear y trabajar con *streams*:" -#: ../Doc/library/asyncio-stream.rst:57 +#: ../Doc/library/asyncio-stream.rst:58 msgid "" "Establish a network connection and return a pair of ``(reader, writer)`` " "objects." @@ -70,7 +69,7 @@ msgstr "" "Establece una conexión de red y retorna un par de objetos ``(reader, " "writer)``." -#: ../Doc/library/asyncio-stream.rst:60 +#: ../Doc/library/asyncio-stream.rst:61 msgid "" "The returned *reader* and *writer* objects are instances of :class:" "`StreamReader` and :class:`StreamWriter` classes." @@ -78,7 +77,7 @@ msgstr "" "Los objetos *reader* y *writer* retornados son instancias de las clases :" "class:`StreamReader` y :class:`StreamWriter`." -#: ../Doc/library/asyncio-stream.rst:63 ../Doc/library/asyncio-stream.rst:105 +#: ../Doc/library/asyncio-stream.rst:64 ../Doc/library/asyncio-stream.rst:109 msgid "" "*limit* determines the buffer size limit used by the returned :class:" "`StreamReader` instance. By default the *limit* is set to 64 KiB." @@ -87,7 +86,7 @@ msgstr "" "de :class:`StreamReader` retornada. De forma predeterminada, *limit* está " "establecido en 64 KiB." -#: ../Doc/library/asyncio-stream.rst:67 +#: ../Doc/library/asyncio-stream.rst:68 msgid "" "The rest of the arguments are passed directly to :meth:`loop." "create_connection`." @@ -95,7 +94,7 @@ msgstr "" "El resto de los argumentos se pasan directamente a :meth:`loop." "create_connection`." -#: ../Doc/library/asyncio-stream.rst:72 ../Doc/library/asyncio-stream.rst:140 +#: ../Doc/library/asyncio-stream.rst:73 ../Doc/library/asyncio-stream.rst:147 msgid "" "The *sock* argument transfers ownership of the socket to the :class:" "`StreamWriter` created. To close the socket, call its :meth:`~asyncio." @@ -105,24 +104,31 @@ msgstr "" "`StreamWriter` creado. Para cerrar el socket, llame a su método :meth:" "`~asyncio.StreamWriter.close`." -#: ../Doc/library/asyncio-stream.rst:76 +#: ../Doc/library/asyncio-stream.rst:77 msgid "Added the *ssl_handshake_timeout* parameter." msgstr "Se agregó el parámetro *ssl_handshake_timeout*." -#: ../Doc/library/asyncio-stream.rst:79 +#: ../Doc/library/asyncio-stream.rst:80 msgid "Added *happy_eyeballs_delay* and *interleave* parameters." msgstr "Se agregaron los parámetros *happy_eyeballs_delay* e *interleave*." -#: ../Doc/library/asyncio-stream.rst:82 ../Doc/library/asyncio-stream.rst:121 -#: ../Doc/library/asyncio-stream.rst:150 ../Doc/library/asyncio-stream.rst:176 +#: ../Doc/library/asyncio-stream.rst:83 ../Doc/library/asyncio-stream.rst:125 +#: ../Doc/library/asyncio-stream.rst:157 ../Doc/library/asyncio-stream.rst:187 msgid "Removed the *loop* parameter." msgstr "Se eliminó el parámetro *loop*." -#: ../Doc/library/asyncio-stream.rst:94 +#: ../Doc/library/asyncio-stream.rst:86 ../Doc/library/asyncio-stream.rst:128 +#: ../Doc/library/asyncio-stream.rst:160 ../Doc/library/asyncio-stream.rst:190 +#: ../Doc/library/asyncio-stream.rst:368 +#, fuzzy +msgid "Added the *ssl_shutdown_timeout* parameter." +msgstr "Se agregó el parámetro *ssl_handshake_timeout*." + +#: ../Doc/library/asyncio-stream.rst:98 msgid "Start a socket server." msgstr "Inicia un servidor socket." -#: ../Doc/library/asyncio-stream.rst:96 +#: ../Doc/library/asyncio-stream.rst:100 msgid "" "The *client_connected_cb* callback is called whenever a new client " "connection is established. It receives a ``(reader, writer)`` pair as two " @@ -134,7 +140,7 @@ msgstr "" "argumentos, instancias de las clases :class:`StreamReader` y :class:" "`StreamWriter`." -#: ../Doc/library/asyncio-stream.rst:101 +#: ../Doc/library/asyncio-stream.rst:105 msgid "" "*client_connected_cb* can be a plain callable or a :ref:`coroutine function " "`; if it is a coroutine function, it will be automatically " @@ -144,14 +150,14 @@ msgstr "" "`corrutina `; si es una función de corrutina, se programará " "automáticamente como un :class:`Task`." -#: ../Doc/library/asyncio-stream.rst:109 +#: ../Doc/library/asyncio-stream.rst:113 msgid "" "The rest of the arguments are passed directly to :meth:`loop.create_server`." msgstr "" "El resto de los argumentos se pasan directamente a :meth:`loop." "create_server`." -#: ../Doc/library/asyncio-stream.rst:114 ../Doc/library/asyncio-stream.rst:166 +#: ../Doc/library/asyncio-stream.rst:118 ../Doc/library/asyncio-stream.rst:177 msgid "" "The *sock* argument transfers ownership of the socket to the server created. " "To close the socket, call the server's :meth:`~asyncio.Server.close` method." @@ -160,35 +166,35 @@ msgstr "" "Para cerrar el socket, llame al método :meth:`~asyncio.Server.close` del " "servidor." -#: ../Doc/library/asyncio-stream.rst:118 +#: ../Doc/library/asyncio-stream.rst:122 msgid "Added the *ssl_handshake_timeout* and *start_serving* parameters." msgstr "Se agregaron los parámetros *ssl_handshake_timeout* y *start_serving*." -#: ../Doc/library/asyncio-stream.rst:126 +#: ../Doc/library/asyncio-stream.rst:133 msgid "Unix Sockets" msgstr "Sockets Unix" -#: ../Doc/library/asyncio-stream.rst:131 +#: ../Doc/library/asyncio-stream.rst:138 msgid "" "Establish a Unix socket connection and return a pair of ``(reader, writer)``." msgstr "" "Establece una conexión de socket Unix y retorna un par de ``(reader, " "writer)``." -#: ../Doc/library/asyncio-stream.rst:134 +#: ../Doc/library/asyncio-stream.rst:141 msgid "Similar to :func:`open_connection` but operates on Unix sockets." msgstr "Similar a :func:`open_connection` pero opera en sockets Unix." -#: ../Doc/library/asyncio-stream.rst:136 +#: ../Doc/library/asyncio-stream.rst:143 msgid "See also the documentation of :meth:`loop.create_unix_connection`." msgstr "" "Consulte también la documentación de :meth:`loop.create_unix_connection`." -#: ../Doc/library/asyncio-stream.rst:145 ../Doc/library/asyncio-stream.rst:171 +#: ../Doc/library/asyncio-stream.rst:151 ../Doc/library/asyncio-stream.rst:181 msgid ":ref:`Availability `: Unix." msgstr ":ref:`Disponibilidad `: Unix." -#: ../Doc/library/asyncio-stream.rst:146 +#: ../Doc/library/asyncio-stream.rst:153 msgid "" "Added the *ssl_handshake_timeout* parameter. The *path* parameter can now be " "a :term:`path-like object`" @@ -196,19 +202,19 @@ msgstr "" "Se agregó el parámetro *ssl_handshake_timeout*. El parámetro *path* ahora " "puede ser un :term:`path-like object`" -#: ../Doc/library/asyncio-stream.rst:158 +#: ../Doc/library/asyncio-stream.rst:169 msgid "Start a Unix socket server." msgstr "Inicia un servidor socket Unix." -#: ../Doc/library/asyncio-stream.rst:160 +#: ../Doc/library/asyncio-stream.rst:171 msgid "Similar to :func:`start_server` but works with Unix sockets." msgstr "Similar a :func:`start_server` pero funciona con sockets Unix." -#: ../Doc/library/asyncio-stream.rst:162 +#: ../Doc/library/asyncio-stream.rst:173 msgid "See also the documentation of :meth:`loop.create_unix_server`." msgstr "Consulte también la documentación de :meth:`loop.create_unix_server`." -#: ../Doc/library/asyncio-stream.rst:172 +#: ../Doc/library/asyncio-stream.rst:183 msgid "" "Added the *ssl_handshake_timeout* and *start_serving* parameters. The *path* " "parameter can now be a :term:`path-like object`." @@ -216,19 +222,21 @@ msgstr "" "Se agregaron los parámetros *ssl_handshake_timeout* y *start_serving*. El " "parámetro *path* ahora puede ser un :term:`path-like object`." -#: ../Doc/library/asyncio-stream.rst:181 +#: ../Doc/library/asyncio-stream.rst:195 msgid "StreamReader" msgstr "StreamReader" -#: ../Doc/library/asyncio-stream.rst:185 +#: ../Doc/library/asyncio-stream.rst:199 +#, fuzzy msgid "" "Represents a reader object that provides APIs to read data from the IO " -"stream." +"stream. As an :term:`asynchronous iterable`, the object supports the :" +"keyword:`async for` statement." msgstr "" "Representa un objeto lector que proporciona APIs para leer datos del flujo " "de E/S." -#: ../Doc/library/asyncio-stream.rst:188 +#: ../Doc/library/asyncio-stream.rst:203 msgid "" "It is not recommended to instantiate *StreamReader* objects directly; use :" "func:`open_connection` and :func:`start_server` instead." @@ -236,30 +244,39 @@ msgstr "" "No se recomienda crear instancias de objetos *StreamReader* directamente; " "utilice :func:`open_connection` y :func:`start_server` en su lugar." -#: ../Doc/library/asyncio-stream.rst:194 -msgid "" -"Read up to *n* bytes. If *n* is not provided, or set to ``-1``, read until " -"EOF and return all read bytes." +#: ../Doc/library/asyncio-stream.rst:209 +msgid "Read up to *n* bytes from the stream." msgstr "" -"Lee hasta *n* bytes. Si no se proporciona *n*, o se establece en ``-1``, lee " -"hasta EOF (final del archivo) y retorna todos los bytes leídos." -#: ../Doc/library/asyncio-stream.rst:197 +#: ../Doc/library/asyncio-stream.rst:211 +#, fuzzy msgid "" -"If EOF was received and the internal buffer is empty, return an empty " -"``bytes`` object." +"If *n* is not provided or set to ``-1``, read until EOF, then return all " +"read :class:`bytes`. If EOF was received and the internal buffer is empty, " +"return an empty ``bytes`` object." msgstr "" "Si se recibió EOF (final del archivo) y el búfer interno está vacío, retorna " "un objeto ``bytes`` vacío." -#: ../Doc/library/asyncio-stream.rst:202 +#: ../Doc/library/asyncio-stream.rst:216 +msgid "If *n* is ``0``, return an empty ``bytes`` object immediately." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:218 +msgid "" +"If *n* is positive, return at most *n* available ``bytes`` as soon as at " +"least 1 byte is available in the internal buffer. If EOF is received before " +"any byte is read, return an empty ``bytes`` object." +msgstr "" + +#: ../Doc/library/asyncio-stream.rst:225 msgid "" "Read one line, where \"line\" is a sequence of bytes ending with ``\\n``." msgstr "" "Lea una línea, donde \"línea\" es una secuencia de bytes que termina en " "``\\n``." -#: ../Doc/library/asyncio-stream.rst:205 +#: ../Doc/library/asyncio-stream.rst:228 msgid "" "If EOF is received and ``\\n`` was not found, the method returns partially " "read data." @@ -267,7 +284,7 @@ msgstr "" "Si se recibe EOF (final del archivo) y no se encontró ``\\n``, el método " "retorna datos leídos parcialmente." -#: ../Doc/library/asyncio-stream.rst:208 +#: ../Doc/library/asyncio-stream.rst:231 msgid "" "If EOF is received and the internal buffer is empty, return an empty " "``bytes`` object." @@ -275,11 +292,11 @@ msgstr "" "Si se recibe EOF (final de archivo) y el búfer interno está vacío, retorna " "un objeto ``bytes`` vacío." -#: ../Doc/library/asyncio-stream.rst:213 +#: ../Doc/library/asyncio-stream.rst:236 msgid "Read exactly *n* bytes." msgstr "Lee exactamente *n* bytes." -#: ../Doc/library/asyncio-stream.rst:215 +#: ../Doc/library/asyncio-stream.rst:238 msgid "" "Raise an :exc:`IncompleteReadError` if EOF is reached before *n* can be " "read. Use the :attr:`IncompleteReadError.partial` attribute to get the " @@ -289,12 +306,12 @@ msgstr "" "antes de que se pueda leer *n*. Utilice el atributo :attr:" "`IncompleteReadError.partial` para obtener los datos leídos parcialmente." -#: ../Doc/library/asyncio-stream.rst:221 +#: ../Doc/library/asyncio-stream.rst:244 msgid "Read data from the stream until *separator* is found." msgstr "" "Lee datos de la secuencia hasta que se encuentre el separador (*separator*)." -#: ../Doc/library/asyncio-stream.rst:223 +#: ../Doc/library/asyncio-stream.rst:246 msgid "" "On success, the data and separator will be removed from the internal buffer " "(consumed). Returned data will include the separator at the end." @@ -302,7 +319,7 @@ msgstr "" "En caso de éxito, los datos y el separador se eliminarán del búfer interno " "(consumido). Los datos retornados incluirán el separador al final." -#: ../Doc/library/asyncio-stream.rst:227 +#: ../Doc/library/asyncio-stream.rst:250 msgid "" "If the amount of data read exceeds the configured stream limit, a :exc:" "`LimitOverrunError` exception is raised, and the data is left in the " @@ -312,7 +329,7 @@ msgstr "" "genera una excepción :exc:`LimitOverrunError` y los datos se dejan en el " "búfer interno y se pueden leer nuevamente." -#: ../Doc/library/asyncio-stream.rst:231 +#: ../Doc/library/asyncio-stream.rst:254 msgid "" "If EOF is reached before the complete separator is found, an :exc:" "`IncompleteReadError` exception is raised, and the internal buffer is " @@ -324,23 +341,23 @@ msgstr "" "el búfer interno. El atributo :attr:`IncompleteReadError.partial` puede " "contener una parte del separador." -#: ../Doc/library/asyncio-stream.rst:240 +#: ../Doc/library/asyncio-stream.rst:263 msgid "Return ``True`` if the buffer is empty and :meth:`feed_eof` was called." msgstr "" "Retorna ``True`` si el buffer está vacío y :meth:`feed_eof` fue llamado." -#: ../Doc/library/asyncio-stream.rst:245 +#: ../Doc/library/asyncio-stream.rst:268 msgid "StreamWriter" msgstr "StreamWriter" -#: ../Doc/library/asyncio-stream.rst:249 +#: ../Doc/library/asyncio-stream.rst:272 msgid "" "Represents a writer object that provides APIs to write data to the IO stream." msgstr "" "Representa un objeto de escritura que proporciona APIs para escribir datos " "en el flujo de E/S." -#: ../Doc/library/asyncio-stream.rst:252 +#: ../Doc/library/asyncio-stream.rst:275 msgid "" "It is not recommended to instantiate *StreamWriter* objects directly; use :" "func:`open_connection` and :func:`start_server` instead." @@ -348,7 +365,7 @@ msgstr "" "No se recomienda crear instancias de objetos *StreamWriter* directamente; " "use :func:`open_connection` y :func:`start_server` en su lugar." -#: ../Doc/library/asyncio-stream.rst:258 +#: ../Doc/library/asyncio-stream.rst:281 msgid "" "The method attempts to write the *data* to the underlying socket " "immediately. If that fails, the data is queued in an internal write buffer " @@ -358,11 +375,11 @@ msgstr "" "inmediatamente. Si eso falla, los datos se ponen en cola en un búfer de " "escritura interno hasta que se puedan enviar." -#: ../Doc/library/asyncio-stream.rst:262 ../Doc/library/asyncio-stream.rst:274 +#: ../Doc/library/asyncio-stream.rst:285 ../Doc/library/asyncio-stream.rst:297 msgid "The method should be used along with the ``drain()`` method::" msgstr "El método debe usarse junto con el método ``drain()``::" -#: ../Doc/library/asyncio-stream.rst:269 +#: ../Doc/library/asyncio-stream.rst:292 msgid "" "The method writes a list (or any iterable) of bytes to the underlying socket " "immediately. If that fails, the data is queued in an internal write buffer " @@ -372,15 +389,18 @@ msgstr "" "subyacente inmediatamente. Si eso falla, los datos se ponen en cola en un " "búfer de escritura interno hasta que se puedan enviar." -#: ../Doc/library/asyncio-stream.rst:281 +#: ../Doc/library/asyncio-stream.rst:304 msgid "The method closes the stream and the underlying socket." msgstr "El método cierra la secuencia y el socket subyacente." -#: ../Doc/library/asyncio-stream.rst:283 -msgid "The method should be used along with the ``wait_closed()`` method::" +#: ../Doc/library/asyncio-stream.rst:306 +#, fuzzy +msgid "" +"The method should be used, though not mandatory, along with the " +"``wait_closed()`` method::" msgstr "El método debe usarse junto con el método ``wait_closed()``::" -#: ../Doc/library/asyncio-stream.rst:290 +#: ../Doc/library/asyncio-stream.rst:314 msgid "" "Return ``True`` if the underlying transport supports the :meth:`write_eof` " "method, ``False`` otherwise." @@ -388,18 +408,18 @@ msgstr "" "Retorna ``True`` si el transporte subyacente admite el método :meth:" "`write_eof`, ``False`` en caso contrario." -#: ../Doc/library/asyncio-stream.rst:295 +#: ../Doc/library/asyncio-stream.rst:319 msgid "" "Close the write end of the stream after the buffered write data is flushed." msgstr "" "Cierra la escritura de la secuencia después de que se vacíen los datos de " "escritura almacenados en búfer." -#: ../Doc/library/asyncio-stream.rst:300 +#: ../Doc/library/asyncio-stream.rst:324 msgid "Return the underlying asyncio transport." msgstr "Retorna el transporte asyncio subyacente." -#: ../Doc/library/asyncio-stream.rst:304 +#: ../Doc/library/asyncio-stream.rst:328 msgid "" "Access optional transport information; see :meth:`BaseTransport." "get_extra_info` for details." @@ -407,13 +427,13 @@ msgstr "" "Accede a información de transporte opcional; consulte :meth:`BaseTransport." "get_extra_info` para obtener más detalles." -#: ../Doc/library/asyncio-stream.rst:309 +#: ../Doc/library/asyncio-stream.rst:333 msgid "Wait until it is appropriate to resume writing to the stream. Example::" msgstr "" "Espera hasta que sea apropiado reanudar la escritura en la transmisión. " "Ejemplo::" -#: ../Doc/library/asyncio-stream.rst:315 +#: ../Doc/library/asyncio-stream.rst:339 msgid "" "This is a flow control method that interacts with the underlying IO write " "buffer. When the size of the buffer reaches the high watermark, *drain()* " @@ -427,19 +447,19 @@ msgstr "" "marca de agua baja y se pueda reanudar la escritura. Cuando no hay nada que " "esperar, :meth:`drain` regresa inmediatamente." -#: ../Doc/library/asyncio-stream.rst:325 +#: ../Doc/library/asyncio-stream.rst:349 msgid "Upgrade an existing stream-based connection to TLS." msgstr "Actualiza una conexión existente basada en flujo a TLS." -#: ../Doc/library/asyncio-stream.rst:327 +#: ../Doc/library/asyncio-stream.rst:351 msgid "Parameters:" msgstr "Parámetros:" -#: ../Doc/library/asyncio-stream.rst:329 +#: ../Doc/library/asyncio-stream.rst:353 msgid "*sslcontext*: a configured instance of :class:`~ssl.SSLContext`." msgstr "*sslcontext*: una instancia configurada de :class:`~ssl.SSLContext`." -#: ../Doc/library/asyncio-stream.rst:331 +#: ../Doc/library/asyncio-stream.rst:355 msgid "" "*server_hostname*: sets or overrides the host name that the target server's " "certificate will be matched against." @@ -447,7 +467,7 @@ msgstr "" "*server_hostname*: establece o sustituye el nombre de host con el que se " "comparará el certificado del servidor de destino." -#: ../Doc/library/asyncio-stream.rst:334 +#: ../Doc/library/asyncio-stream.rst:358 msgid "" "*ssl_handshake_timeout* is the time in seconds to wait for the TLS handshake " "to complete before aborting the connection. ``60.0`` seconds if ``None`` " @@ -457,37 +477,50 @@ msgstr "" "complete el protocolo TLS antes de abortar la conexión. ``60.0`` segundos " "si ``None`` (por defecto)." -#: ../Doc/library/asyncio-stream.rst:342 +#: ../Doc/library/asyncio-stream.rst:362 +#, fuzzy +msgid "" +"*ssl_shutdown_timeout* is the time in seconds to wait for the SSL shutdown " +"to complete before aborting the connection. ``30.0`` seconds if ``None`` " +"(default)." +msgstr "" +"*ssl_handshake_timeout* es el tiempo en segundos que se espera a que se " +"complete el protocolo TLS antes de abortar la conexión. ``60.0`` segundos " +"si ``None`` (por defecto)." + +#: ../Doc/library/asyncio-stream.rst:374 msgid "" "Return ``True`` if the stream is closed or in the process of being closed." msgstr "" "Retorna ``True`` si la secuencia está cerrada o en proceso de cerrarse." -#: ../Doc/library/asyncio-stream.rst:349 +#: ../Doc/library/asyncio-stream.rst:381 msgid "Wait until the stream is closed." msgstr "Espera hasta que se cierre la secuencia." -#: ../Doc/library/asyncio-stream.rst:351 +#: ../Doc/library/asyncio-stream.rst:383 +#, fuzzy msgid "" "Should be called after :meth:`close` to wait until the underlying connection " -"is closed." +"is closed, ensuring that all data has been flushed before e.g. exiting the " +"program." msgstr "" "Debería llamarse después de :meth:`close` para esperar hasta que se cierre " "la conexión subyacente." -#: ../Doc/library/asyncio-stream.rst:358 +#: ../Doc/library/asyncio-stream.rst:391 msgid "Examples" msgstr "Ejemplos" -#: ../Doc/library/asyncio-stream.rst:363 +#: ../Doc/library/asyncio-stream.rst:396 msgid "TCP echo client using streams" msgstr "Cliente eco TCP usando *streams*" -#: ../Doc/library/asyncio-stream.rst:365 +#: ../Doc/library/asyncio-stream.rst:398 msgid "TCP echo client using the :func:`asyncio.open_connection` function::" msgstr "Cliente eco TCP usando la función :func:`asyncio.open_connection`::" -#: ../Doc/library/asyncio-stream.rst:388 +#: ../Doc/library/asyncio-stream.rst:422 msgid "" "The :ref:`TCP echo client protocol " "` example uses the low-level :meth:" @@ -497,15 +530,15 @@ msgstr "" "` utiliza el método :meth:`loop." "create_connection` de bajo nivel." -#: ../Doc/library/asyncio-stream.rst:395 +#: ../Doc/library/asyncio-stream.rst:429 msgid "TCP echo server using streams" msgstr "Servidor eco TCP usando *streams*" -#: ../Doc/library/asyncio-stream.rst:397 +#: ../Doc/library/asyncio-stream.rst:431 msgid "TCP echo server using the :func:`asyncio.start_server` function::" msgstr "Servidor eco TCP usando la función :func:`asyncio.start_server`::" -#: ../Doc/library/asyncio-stream.rst:430 +#: ../Doc/library/asyncio-stream.rst:465 msgid "" "The :ref:`TCP echo server protocol " "` example uses the :meth:`loop." @@ -515,30 +548,30 @@ msgstr "" "` utiliza el método :meth:`loop." "create_server`." -#: ../Doc/library/asyncio-stream.rst:435 +#: ../Doc/library/asyncio-stream.rst:470 msgid "Get HTTP headers" msgstr "Obtener encabezados HTTP" -#: ../Doc/library/asyncio-stream.rst:437 +#: ../Doc/library/asyncio-stream.rst:472 msgid "" "Simple example querying HTTP headers of the URL passed on the command line::" msgstr "" "Ejemplo simple de consulta de encabezados HTTP de la URL pasada en la línea " "de comando::" -#: ../Doc/library/asyncio-stream.rst:475 +#: ../Doc/library/asyncio-stream.rst:511 msgid "Usage::" msgstr "Uso::" -#: ../Doc/library/asyncio-stream.rst:479 +#: ../Doc/library/asyncio-stream.rst:515 msgid "or with HTTPS::" msgstr "o con HTTPS::" -#: ../Doc/library/asyncio-stream.rst:487 +#: ../Doc/library/asyncio-stream.rst:523 msgid "Register an open socket to wait for data using streams" msgstr "Registrar un socket abierto para esperar datos usando *streams*" -#: ../Doc/library/asyncio-stream.rst:489 +#: ../Doc/library/asyncio-stream.rst:525 msgid "" "Coroutine waiting until a socket receives data using the :func:" "`open_connection` function::" @@ -546,7 +579,7 @@ msgstr "" "Corutina esperando hasta que un socket reciba datos usando la función :func:" "`open_connection` function::" -#: ../Doc/library/asyncio-stream.rst:523 +#: ../Doc/library/asyncio-stream.rst:560 msgid "" "The :ref:`register an open socket to wait for data using a protocol " "` example uses a low-level protocol and " @@ -556,7 +589,7 @@ msgstr "" "un protocolo ` utiliza un protocolo de " "bajo nivel y el método :meth:`loop.create_connection`." -#: ../Doc/library/asyncio-stream.rst:527 +#: ../Doc/library/asyncio-stream.rst:564 msgid "" "The :ref:`watch a file descriptor for read events " "` example uses the low-level :meth:`loop." @@ -565,3 +598,10 @@ msgstr "" "El ejemplo de :ref:`observar un descriptor de archivo para leer eventos " "` utiliza el método :meth:`loop.add_reader` de " "bajo nivel para ver un descriptor de archivo." + +#~ msgid "" +#~ "Read up to *n* bytes. If *n* is not provided, or set to ``-1``, read " +#~ "until EOF and return all read bytes." +#~ msgstr "" +#~ "Lee hasta *n* bytes. Si no se proporciona *n*, o se establece en ``-1``, " +#~ "lee hasta EOF (final del archivo) y retorna todos los bytes leídos." diff --git a/library/asyncio-subprocess.po b/library/asyncio-subprocess.po index 72eb30132a..12eca5c30b 100644 --- a/library/asyncio-subprocess.po +++ b/library/asyncio-subprocess.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-30 00:19-0400\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/asyncio-subprocess.rst:7 msgid "Subprocesses" @@ -81,9 +80,10 @@ msgstr "Crea un sub-proceso." #: ../Doc/library/asyncio-subprocess.rst:69 #: ../Doc/library/asyncio-subprocess.rst:87 +#, fuzzy msgid "" "The *limit* argument sets the buffer limit for :class:`StreamReader` " -"wrappers for :attr:`Process.stdout` and :attr:`Process.stderr` (if :attr:" +"wrappers for :attr:`Process.stdout` and :attr:`Process.stderr` (if :const:" "`subprocess.PIPE` is passed to *stdout* and *stderr* arguments)." msgstr "" "El argumento *limit* establece el límite del buffer para los envoltorios :" @@ -250,10 +250,11 @@ msgstr "" "método :meth:`~subprocess.Popen.poll`;" #: ../Doc/library/asyncio-subprocess.rst:176 +#, fuzzy msgid "" "the :meth:`~asyncio.subprocess.Process.communicate` and :meth:`~asyncio." "subprocess.Process.wait` methods don't have a *timeout* parameter: use the :" -"func:`wait_for` function;" +"func:`~asyncio.wait_for` function;" msgstr "" "los métodos :meth:`~asyncio.subprocess.Process.communicate` y :meth:" "`~asyncio.subprocess.Process.wait` no tienen un parámetro *timeout*: use la " @@ -316,14 +317,18 @@ msgid "send data to *stdin* (if *input* is not ``None``);" msgstr "envía datos a *stdin* (si *input* no es ``None``);" #: ../Doc/library/asyncio-subprocess.rst:210 +msgid "closes *stdin*;" +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:211 msgid "read data from *stdout* and *stderr*, until EOF is reached;" msgstr "lee datos desde *stdout* y *stderr*, hasta que el llegue al EOF;" -#: ../Doc/library/asyncio-subprocess.rst:211 +#: ../Doc/library/asyncio-subprocess.rst:212 msgid "wait for process to terminate." msgstr "espera a que el proceso termine." -#: ../Doc/library/asyncio-subprocess.rst:213 +#: ../Doc/library/asyncio-subprocess.rst:214 msgid "" "The optional *input* argument is the data (:class:`bytes` object) that will " "be sent to the child process." @@ -331,11 +336,11 @@ msgstr "" "El argumento opcional *input* son los datos (objetos :class:`bytes`) que " "serán enviados a los procesos hijos." -#: ../Doc/library/asyncio-subprocess.rst:216 +#: ../Doc/library/asyncio-subprocess.rst:217 msgid "Return a tuple ``(stdout_data, stderr_data)``." msgstr "Retorna una tupla ``(stdout_data, stderr_data)``." -#: ../Doc/library/asyncio-subprocess.rst:218 +#: ../Doc/library/asyncio-subprocess.rst:219 msgid "" "If either :exc:`BrokenPipeError` or :exc:`ConnectionResetError` exception is " "raised when writing *input* into *stdin*, the exception is ignored. This " @@ -347,7 +352,7 @@ msgstr "" "ignorada. Esta condición ocurre cuando el proceso finaliza antes de que " "todos los datos sean escritos en *stdin*." -#: ../Doc/library/asyncio-subprocess.rst:223 +#: ../Doc/library/asyncio-subprocess.rst:224 msgid "" "If it is desired to send data to the process' *stdin*, the process needs to " "be created with ``stdin=PIPE``. Similarly, to get anything other than " @@ -359,7 +364,7 @@ msgstr "" "excepto ``None`` en la tupla del resultado, el proceso tiene que ser creado " "con los argumentos ``stdout=PIPE`` y/o ``stderr=PIPE``." -#: ../Doc/library/asyncio-subprocess.rst:229 +#: ../Doc/library/asyncio-subprocess.rst:230 msgid "" "Note, that the data read is buffered in memory, so do not use this method if " "the data size is large or unlimited." @@ -367,11 +372,15 @@ msgstr "" "Tenga en cuenta que los datos leídos son almacenados en memoria, por lo que " "no utilice este método si el tamaño de los datos es más grande o ilimitado." -#: ../Doc/library/asyncio-subprocess.rst:234 +#: ../Doc/library/asyncio-subprocess.rst:235 +msgid "*stdin* gets closed when `input=None` too." +msgstr "" + +#: ../Doc/library/asyncio-subprocess.rst:239 msgid "Sends the signal *signal* to the child process." msgstr "Envíe la señal *signal* al proceso hijo." -#: ../Doc/library/asyncio-subprocess.rst:238 +#: ../Doc/library/asyncio-subprocess.rst:243 msgid "" "On Windows, :py:data:`SIGTERM` is an alias for :meth:`terminate`. " "``CTRL_C_EVENT`` and ``CTRL_BREAK_EVENT`` can be sent to processes started " @@ -381,19 +390,20 @@ msgstr "" "enviar ``CTRL_C_EVENT`` y ``CTRL_BREAK_EVENT`` a procesos iniciados con un " "parámetro *creationflags* que incluye ``CREATE_NEW_PROCESS_GROUP``." -#: ../Doc/library/asyncio-subprocess.rst:245 +#: ../Doc/library/asyncio-subprocess.rst:250 msgid "Stop the child process." msgstr "Para al proceso hijo." -#: ../Doc/library/asyncio-subprocess.rst:247 +#: ../Doc/library/asyncio-subprocess.rst:252 +#, fuzzy msgid "" -"On POSIX systems this method sends :py:data:`signal.SIGTERM` to the child " +"On POSIX systems this method sends :py:const:`signal.SIGTERM` to the child " "process." msgstr "" "En sistemas POSIX este método envía :py:data:`signal.SIGNTERM` al proceso " "hijo." -#: ../Doc/library/asyncio-subprocess.rst:250 +#: ../Doc/library/asyncio-subprocess.rst:255 msgid "" "On Windows the Win32 API function :c:func:`TerminateProcess` is called to " "stop the child process." @@ -401,21 +411,21 @@ msgstr "" "En Windows, la función de la API de Win32 :c:func:`TerminateProcess` es " "llamado para parar a los procesos hijos." -#: ../Doc/library/asyncio-subprocess.rst:255 +#: ../Doc/library/asyncio-subprocess.rst:260 msgid "Kill the child process." msgstr "Mata el proceso hijo." -#: ../Doc/library/asyncio-subprocess.rst:257 +#: ../Doc/library/asyncio-subprocess.rst:262 msgid "" "On POSIX systems this method sends :py:data:`SIGKILL` to the child process." msgstr "" "En sistemas POSIX, este método envía :py:data:`SIGKILL` al proceso hijo." -#: ../Doc/library/asyncio-subprocess.rst:260 +#: ../Doc/library/asyncio-subprocess.rst:265 msgid "On Windows this method is an alias for :meth:`terminate`." msgstr "En Windows este método es un alias para :meth:`terminate`." -#: ../Doc/library/asyncio-subprocess.rst:264 +#: ../Doc/library/asyncio-subprocess.rst:269 msgid "" "Standard input stream (:class:`StreamWriter`) or ``None`` if the process was " "created with ``stdin=None``." @@ -423,7 +433,7 @@ msgstr "" "Flujo de entrada estándar (:class:`StreamWriter`) o ``None`` si el proceso " "fue creado con ``stdin=None``." -#: ../Doc/library/asyncio-subprocess.rst:269 +#: ../Doc/library/asyncio-subprocess.rst:274 msgid "" "Standard output stream (:class:`StreamReader`) or ``None`` if the process " "was created with ``stdout=None``." @@ -431,7 +441,7 @@ msgstr "" "Flujo de salida estándar (:class:`SreamReader`) o ``None`` si el proceso fue " "creado con ``stdout=None``." -#: ../Doc/library/asyncio-subprocess.rst:274 +#: ../Doc/library/asyncio-subprocess.rst:279 msgid "" "Standard error stream (:class:`StreamReader`) or ``None`` if the process was " "created with ``stderr=None``." @@ -439,7 +449,7 @@ msgstr "" "Flujo de salida estándar (:class:`StreamReader`) o ``None`` si el proceso " "fue creado con ``stderr=None``." -#: ../Doc/library/asyncio-subprocess.rst:279 +#: ../Doc/library/asyncio-subprocess.rst:284 msgid "" "Use the :meth:`communicate` method rather than :attr:`process.stdin.write() " "`, :attr:`await process.stdout.read() ` or :attr:`await " @@ -451,11 +461,11 @@ msgstr "" "process.stderr.read `. Esto evita bloqueos debido a que los flujos " "pausan la lectura o escritura y bloqueando al proceso hijo." -#: ../Doc/library/asyncio-subprocess.rst:288 +#: ../Doc/library/asyncio-subprocess.rst:293 msgid "Process identification number (PID)." msgstr "Número de identificación del Proceso (PID por sus siglas en inglés)." -#: ../Doc/library/asyncio-subprocess.rst:290 +#: ../Doc/library/asyncio-subprocess.rst:295 msgid "" "Note that for processes created by the :func:`create_subprocess_shell` " "function, this attribute is the PID of the spawned shell." @@ -463,15 +473,15 @@ msgstr "" "Tenga en cuenta que para procesos creados por la función :func:`create­" "_subprocess_shell`, este atributo es el PID del shell generado." -#: ../Doc/library/asyncio-subprocess.rst:295 +#: ../Doc/library/asyncio-subprocess.rst:300 msgid "Return code of the process when it exits." msgstr "Código de retorno del proceso cuando finaliza." -#: ../Doc/library/asyncio-subprocess.rst:297 +#: ../Doc/library/asyncio-subprocess.rst:302 msgid "A ``None`` value indicates that the process has not terminated yet." msgstr "Un valor ``None`` indica que el proceso todavía no ha finalizado." -#: ../Doc/library/asyncio-subprocess.rst:299 +#: ../Doc/library/asyncio-subprocess.rst:304 msgid "" "A negative value ``-N`` indicates that the child was terminated by signal " "``N`` (POSIX only)." @@ -479,11 +489,11 @@ msgstr "" "Un valor negativo ``-N`` indica que el hijo ha finalizado por la señal ``N`` " "(sólo para POSIX)." -#: ../Doc/library/asyncio-subprocess.rst:306 +#: ../Doc/library/asyncio-subprocess.rst:311 msgid "Subprocess and Threads" msgstr "Subprocesos y Hilos" -#: ../Doc/library/asyncio-subprocess.rst:308 +#: ../Doc/library/asyncio-subprocess.rst:313 msgid "" "Standard asyncio event loop supports running subprocesses from different " "threads by default." @@ -491,7 +501,7 @@ msgstr "" "Por defecto el bucle de eventos de asyncio estándar permite correr " "subprocesos desde hilos diferentes." -#: ../Doc/library/asyncio-subprocess.rst:311 +#: ../Doc/library/asyncio-subprocess.rst:316 msgid "" "On Windows subprocesses are provided by :class:`ProactorEventLoop` only " "(default), :class:`SelectorEventLoop` has no subprocess support." @@ -499,7 +509,7 @@ msgstr "" "En Windows, sólo :class:`ProactorEventLoop` proporciona subprocesos (por " "defecto), :class:`SelectorEventLoop` no es compatible con subprocesos." -#: ../Doc/library/asyncio-subprocess.rst:314 +#: ../Doc/library/asyncio-subprocess.rst:319 msgid "" "On UNIX *child watchers* are used for subprocess finish waiting, see :ref:" "`asyncio-watchers` for more info." @@ -508,7 +518,7 @@ msgstr "" "finalización de subprocesos, véase :ref:`asyncio-watchers` para más " "información." -#: ../Doc/library/asyncio-subprocess.rst:320 +#: ../Doc/library/asyncio-subprocess.rst:325 msgid "" "UNIX switched to use :class:`ThreadedChildWatcher` for spawning subprocesses " "from different threads without any limitation." @@ -516,7 +526,7 @@ msgstr "" "UNIX cambió para usar :class:`ThreadedChildWatcher` para generar subprocesos " "de hilos diferentes sin ninguna limitación." -#: ../Doc/library/asyncio-subprocess.rst:323 +#: ../Doc/library/asyncio-subprocess.rst:328 msgid "" "Spawning a subprocess with *inactive* current child watcher raises :exc:" "`RuntimeError`." @@ -524,7 +534,7 @@ msgstr "" "Crear un subproceso con el observador del hijo *inactivo* lanza un :exc:" "`RuntimeError`." -#: ../Doc/library/asyncio-subprocess.rst:326 +#: ../Doc/library/asyncio-subprocess.rst:331 msgid "" "Note that alternative event loop implementations might have own limitations; " "please refer to their documentation." @@ -532,7 +542,7 @@ msgstr "" "Tenga en cuenta que implementaciones alternativas del bucle de eventos " "pueden tener limitaciones propias; por favor consulte su documentación." -#: ../Doc/library/asyncio-subprocess.rst:331 +#: ../Doc/library/asyncio-subprocess.rst:336 msgid "" "The :ref:`Concurrency and multithreading in asyncio ` section." @@ -540,11 +550,11 @@ msgstr "" "La sección :ref:`Concurrencia y multihilos en asyncio `." -#: ../Doc/library/asyncio-subprocess.rst:336 +#: ../Doc/library/asyncio-subprocess.rst:341 msgid "Examples" msgstr "Ejemplos" -#: ../Doc/library/asyncio-subprocess.rst:338 +#: ../Doc/library/asyncio-subprocess.rst:343 msgid "" "An example using the :class:`~asyncio.subprocess.Process` class to control a " "subprocess and the :class:`StreamReader` class to read from its standard " @@ -554,13 +564,13 @@ msgstr "" "controlar un subproceso y la clase :class:`StreamReader` para leer de su " "salida estándar." -#: ../Doc/library/asyncio-subprocess.rst:344 +#: ../Doc/library/asyncio-subprocess.rst:349 msgid "" "The subprocess is created by the :func:`create_subprocess_exec` function::" msgstr "" "El subproceso es creado por la función :func:`create_subprocess_exec`::" -#: ../Doc/library/asyncio-subprocess.rst:371 +#: ../Doc/library/asyncio-subprocess.rst:376 msgid "" "See also the :ref:`same example ` written " "using low-level APIs." diff --git a/library/asyncio-task.po b/library/asyncio-task.po index 5c4c83e5a7..7112d61773 100644 --- a/library/asyncio-task.po +++ b/library/asyncio-task.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-04 13:41+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/asyncio-task.rst:6 msgid "Coroutines and Tasks" @@ -33,11 +33,15 @@ msgstr "" "Esta sección describe las API de asyncio de alto nivel para trabajar con " "corrutinas y tareas." -#: ../Doc/library/asyncio-task.rst:19 ../Doc/library/asyncio-task.rst:144 +#: ../Doc/library/asyncio-task.rst:19 ../Doc/library/asyncio-task.rst:148 msgid "Coroutines" msgstr "Corrutinas" #: ../Doc/library/asyncio-task.rst:21 +msgid "**Source code:** :source:`Lib/asyncio/coroutines.py`" +msgstr "" + +#: ../Doc/library/asyncio-task.rst:25 #, fuzzy msgid "" ":term:`Coroutines ` declared with the async/await syntax is the " @@ -49,21 +53,21 @@ msgstr "" "fragmento de código (requiere Python 3.7+) imprime \"hola\", espera 1 " "segundo y, a continuación, imprime \"mundo\"::" -#: ../Doc/library/asyncio-task.rst:37 +#: ../Doc/library/asyncio-task.rst:41 msgid "" "Note that simply calling a coroutine will not schedule it to be executed::" msgstr "" "Tenga en cuenta que simplemente llamando a una corrutina no programará para " "que se ejecute::" -#: ../Doc/library/asyncio-task.rst:43 +#: ../Doc/library/asyncio-task.rst:47 #, fuzzy msgid "To actually run a coroutine, asyncio provides the following mechanisms:" msgstr "" "Para ejecutar realmente una corrutina, asyncio proporciona tres mecanismos " "principales:" -#: ../Doc/library/asyncio-task.rst:45 +#: ../Doc/library/asyncio-task.rst:49 msgid "" "The :func:`asyncio.run` function to run the top-level entry point \"main()\" " "function (see the above example.)" @@ -71,7 +75,7 @@ msgstr "" "La función :func:`asyncio.run` para ejecutar la función de punto de entrada " "de nivel superior \"main()\" (consulte el ejemplo anterior.)" -#: ../Doc/library/asyncio-task.rst:48 +#: ../Doc/library/asyncio-task.rst:52 msgid "" "Awaiting on a coroutine. The following snippet of code will print \"hello\" " "after waiting for 1 second, and then print \"world\" after waiting for " @@ -81,11 +85,11 @@ msgstr "" "\"hola\" después de esperar 1 segundo y luego imprimirá \"mundo\" después de " "esperar *otros* 2 segundos::" -#: ../Doc/library/asyncio-task.rst:69 +#: ../Doc/library/asyncio-task.rst:73 msgid "Expected output::" msgstr "Salida esperada::" -#: ../Doc/library/asyncio-task.rst:76 +#: ../Doc/library/asyncio-task.rst:80 msgid "" "The :func:`asyncio.create_task` function to run coroutines concurrently as " "asyncio :class:`Tasks `." @@ -93,7 +97,7 @@ msgstr "" "La función :func:`asyncio.create_task` para ejecutar corrutinas " "concurrentemente como asyncio :class:`Tasks `." -#: ../Doc/library/asyncio-task.rst:79 +#: ../Doc/library/asyncio-task.rst:83 msgid "" "Let's modify the above example and run two ``say_after`` coroutines " "*concurrently*::" @@ -101,7 +105,7 @@ msgstr "" "Modifiquemos el ejemplo anterior y ejecutemos dos corrutinas ``say_after`` " "*concurrentemente*::" -#: ../Doc/library/asyncio-task.rst:98 +#: ../Doc/library/asyncio-task.rst:102 msgid "" "Note that expected output now shows that the snippet runs 1 second faster " "than before::" @@ -109,25 +113,25 @@ msgstr "" "Tenga en cuenta que la salida esperada ahora muestra que el fragmento de " "código se ejecuta 1 segundo más rápido que antes::" -#: ../Doc/library/asyncio-task.rst:106 +#: ../Doc/library/asyncio-task.rst:110 msgid "" "The :class:`asyncio.TaskGroup` class provides a more modern alternative to :" "func:`create_task`. Using this API, the last example becomes::" msgstr "" -#: ../Doc/library/asyncio-task.rst:124 +#: ../Doc/library/asyncio-task.rst:128 msgid "The timing and output should be the same as for the previous version." msgstr "" -#: ../Doc/library/asyncio-task.rst:126 +#: ../Doc/library/asyncio-task.rst:130 msgid ":class:`asyncio.TaskGroup`." msgstr "" -#: ../Doc/library/asyncio-task.rst:133 +#: ../Doc/library/asyncio-task.rst:137 msgid "Awaitables" msgstr "Esperables" -#: ../Doc/library/asyncio-task.rst:135 +#: ../Doc/library/asyncio-task.rst:139 msgid "" "We say that an object is an **awaitable** object if it can be used in an :" "keyword:`await` expression. Many asyncio APIs are designed to accept " @@ -137,7 +141,7 @@ msgstr "" "expresión :keyword:`await`. Muchas API de asyncio están diseñadas para " "aceptar los valores esperables." -#: ../Doc/library/asyncio-task.rst:139 +#: ../Doc/library/asyncio-task.rst:143 msgid "" "There are three main types of *awaitable* objects: **coroutines**, " "**Tasks**, and **Futures**." @@ -145,7 +149,7 @@ msgstr "" "Hay tres tipos principales de objetos *esperables*: **corrutinas**, " "**Tareas** y **Futures**." -#: ../Doc/library/asyncio-task.rst:145 +#: ../Doc/library/asyncio-task.rst:149 msgid "" "Python coroutines are *awaitables* and therefore can be awaited from other " "coroutines::" @@ -153,7 +157,7 @@ msgstr "" "Las corrutinas de Python son *esperables* y por lo tanto se pueden esperar " "de otras corrutinas::" -#: ../Doc/library/asyncio-task.rst:166 +#: ../Doc/library/asyncio-task.rst:170 msgid "" "In this documentation the term \"coroutine\" can be used for two closely " "related concepts:" @@ -161,26 +165,26 @@ msgstr "" "En esta documentación se puede utilizar el término \"corrutina\" para dos " "conceptos estrechamente relacionados:" -#: ../Doc/library/asyncio-task.rst:169 +#: ../Doc/library/asyncio-task.rst:173 msgid "a *coroutine function*: an :keyword:`async def` function;" msgstr "una *función corrutina*: una función :keyword:`async def`;" -#: ../Doc/library/asyncio-task.rst:171 +#: ../Doc/library/asyncio-task.rst:175 msgid "" "a *coroutine object*: an object returned by calling a *coroutine function*." msgstr "" "un *objeto corrutina*: un objeto retornado llamando a una *función " "corrutina*." -#: ../Doc/library/asyncio-task.rst:176 +#: ../Doc/library/asyncio-task.rst:180 msgid "Tasks" msgstr "Tareas" -#: ../Doc/library/asyncio-task.rst:177 +#: ../Doc/library/asyncio-task.rst:181 msgid "*Tasks* are used to schedule coroutines *concurrently*." msgstr "*Las tareas* se utilizan para programar corrutinas *concurrentemente*." -#: ../Doc/library/asyncio-task.rst:179 +#: ../Doc/library/asyncio-task.rst:183 msgid "" "When a coroutine is wrapped into a *Task* with functions like :func:`asyncio." "create_task` the coroutine is automatically scheduled to run soon::" @@ -189,11 +193,11 @@ msgstr "" "`asyncio.create_task` la corrutina se programa automáticamente para " "ejecutarse pronto::" -#: ../Doc/library/asyncio-task.rst:201 +#: ../Doc/library/asyncio-task.rst:205 msgid "Futures" msgstr "Futures" -#: ../Doc/library/asyncio-task.rst:202 +#: ../Doc/library/asyncio-task.rst:206 msgid "" "A :class:`Future` is a special **low-level** awaitable object that " "represents an **eventual result** of an asynchronous operation." @@ -201,7 +205,7 @@ msgstr "" "Un :class:`Future` es un objeto esperable especial de **bajo-nivel** que " "representa un **resultado eventual** de una operación asíncrona." -#: ../Doc/library/asyncio-task.rst:205 +#: ../Doc/library/asyncio-task.rst:209 msgid "" "When a Future object is *awaited* it means that the coroutine will wait " "until the Future is resolved in some other place." @@ -209,7 +213,7 @@ msgstr "" "Cuando un objeto Future es *esperado* significa que la corrutina esperará " "hasta que el Future se resuelva en algún otro lugar." -#: ../Doc/library/asyncio-task.rst:208 +#: ../Doc/library/asyncio-task.rst:212 msgid "" "Future objects in asyncio are needed to allow callback-based code to be used " "with async/await." @@ -217,7 +221,7 @@ msgstr "" "Los objetos Future de asyncio son necesarios para permitir que el código " "basado en retro llamada se use con async/await." -#: ../Doc/library/asyncio-task.rst:211 +#: ../Doc/library/asyncio-task.rst:215 msgid "" "Normally **there is no need** to create Future objects at the application " "level code." @@ -225,7 +229,7 @@ msgstr "" "Normalmente , **no es necesario** crear objetos Future en el código de nivel " "de aplicación." -#: ../Doc/library/asyncio-task.rst:214 +#: ../Doc/library/asyncio-task.rst:218 msgid "" "Future objects, sometimes exposed by libraries and some asyncio APIs, can be " "awaited::" @@ -233,7 +237,7 @@ msgstr "" "Los objetos Future, a veces expuestos por bibliotecas y algunas API de " "asyncio, pueden ser esperados::" -#: ../Doc/library/asyncio-task.rst:226 +#: ../Doc/library/asyncio-task.rst:230 msgid "" "A good example of a low-level function that returns a Future object is :meth:" "`loop.run_in_executor`." @@ -241,11 +245,15 @@ msgstr "" "Un buen ejemplo de una función de bajo nivel que retorna un objeto Future " "es :meth:`loop.run_in_executor`." -#: ../Doc/library/asyncio-task.rst:231 +#: ../Doc/library/asyncio-task.rst:235 msgid "Creating Tasks" msgstr "Creando Tareas" -#: ../Doc/library/asyncio-task.rst:235 +#: ../Doc/library/asyncio-task.rst:237 +msgid "**Source code:** :source:`Lib/asyncio/tasks.py`" +msgstr "" + +#: ../Doc/library/asyncio-task.rst:243 msgid "" "Wrap the *coro* :ref:`coroutine ` into a :class:`Task` and " "schedule its execution. Return the Task object." @@ -253,7 +261,7 @@ msgstr "" "Envuelve una :ref:`coroutine ` *coro* en una :class:`Task` y " "programa su ejecución. Retorna el objeto Tarea." -#: ../Doc/library/asyncio-task.rst:238 +#: ../Doc/library/asyncio-task.rst:246 msgid "" "If *name* is not ``None``, it is set as the name of the task using :meth:" "`Task.set_name`." @@ -261,14 +269,14 @@ msgstr "" "Si *name* no es ``None``, se establece como el nombre de la tarea mediante :" "meth:`Task.set_name`." -#: ../Doc/library/asyncio-task.rst:241 +#: ../Doc/library/asyncio-task.rst:249 msgid "" "An optional keyword-only *context* argument allows specifying a custom :" "class:`contextvars.Context` for the *coro* to run in. The current context " "copy is created when no *context* is provided." msgstr "" -#: ../Doc/library/asyncio-task.rst:245 +#: ../Doc/library/asyncio-task.rst:253 msgid "" "The task is executed in the loop returned by :func:`get_running_loop`, :exc:" "`RuntimeError` is raised if there is no running loop in current thread." @@ -277,13 +285,14 @@ msgstr "" "`RuntimeError` se genera si no hay ningún bucle en ejecución en el " "subproceso actual." -#: ../Doc/library/asyncio-task.rst:251 +#: ../Doc/library/asyncio-task.rst:259 msgid "" -":meth:`asyncio.TaskGroup.create_task` is a newer alternative that allows for " -"convenient waiting for a group of related tasks." +":meth:`asyncio.TaskGroup.create_task` is a new alternative leveraging " +"structural concurrency; it allows for waiting for a group of related tasks " +"with strong safety guarantees." msgstr "" -#: ../Doc/library/asyncio-task.rst:256 +#: ../Doc/library/asyncio-task.rst:265 msgid "" "Save a reference to the result of this function, to avoid a task " "disappearing mid-execution. The event loop only keeps weak references to " @@ -292,74 +301,77 @@ msgid "" "tasks, gather them in a collection::" msgstr "" -#: ../Doc/library/asyncio-task.rst:278 ../Doc/library/asyncio-task.rst:1001 +#: ../Doc/library/asyncio-task.rst:287 ../Doc/library/asyncio-task.rst:1076 #, fuzzy msgid "Added the *name* parameter." msgstr "Se ha añadido el parámetro ``name``." -#: ../Doc/library/asyncio-task.rst:281 +#: ../Doc/library/asyncio-task.rst:290 ../Doc/library/asyncio-task.rst:1083 #, fuzzy msgid "Added the *context* parameter." msgstr "Se ha añadido el parámetro ``name``." -#: ../Doc/library/asyncio-task.rst:286 +#: ../Doc/library/asyncio-task.rst:295 msgid "Task Cancellation" msgstr "" -#: ../Doc/library/asyncio-task.rst:288 +#: ../Doc/library/asyncio-task.rst:297 msgid "" "Tasks can easily and safely be cancelled. When a task is cancelled, :exc:" "`asyncio.CancelledError` will be raised in the task at the next opportunity." msgstr "" -#: ../Doc/library/asyncio-task.rst:292 +#: ../Doc/library/asyncio-task.rst:301 msgid "" "It is recommended that coroutines use ``try/finally`` blocks to robustly " "perform clean-up logic. In case :exc:`asyncio.CancelledError` is explicitly " -"caught, it should generally be propagated when clean-up is complete. Most " -"code can safely ignore :exc:`asyncio.CancelledError`." +"caught, it should generally be propagated when clean-up is complete. :exc:" +"`asyncio.CancelledError` directly subclasses :exc:`BaseException` so most " +"code will not need to be aware of it." msgstr "" -#: ../Doc/library/asyncio-task.rst:297 +#: ../Doc/library/asyncio-task.rst:307 msgid "" "The asyncio components that enable structured concurrency, like :class:" "`asyncio.TaskGroup` and :func:`asyncio.timeout`, are implemented using " "cancellation internally and might misbehave if a coroutine swallows :exc:" -"`asyncio.CancelledError`. Similarly, user code should not call :meth:" -"`uncancel `." +"`asyncio.CancelledError`. Similarly, user code should not generally call :" +"meth:`uncancel `. However, in cases when suppressing :" +"exc:`asyncio.CancelledError` is truly desired, it is necessary to also call " +"``uncancel()`` to completely remove the cancellation state." msgstr "" -#: ../Doc/library/asyncio-task.rst:306 +#: ../Doc/library/asyncio-task.rst:319 msgid "Task Groups" msgstr "" -#: ../Doc/library/asyncio-task.rst:308 +#: ../Doc/library/asyncio-task.rst:321 msgid "" "Task groups combine a task creation API with a convenient and reliable way " "to wait for all tasks in the group to finish." msgstr "" -#: ../Doc/library/asyncio-task.rst:313 +#: ../Doc/library/asyncio-task.rst:326 msgid "" "An :ref:`asynchronous context manager ` holding a " "group of tasks. Tasks can be added to the group using :meth:`create_task`. " "All tasks are awaited when the context manager exits." msgstr "" -#: ../Doc/library/asyncio-task.rst:322 +#: ../Doc/library/asyncio-task.rst:335 msgid "" "Create a task in this task group. The signature matches that of :func:" "`asyncio.create_task`." msgstr "" -#: ../Doc/library/asyncio-task.rst:325 ../Doc/library/asyncio-task.rst:455 -#: ../Doc/library/asyncio-task.rst:583 ../Doc/library/asyncio-task.rst:647 -#: ../Doc/library/asyncio-task.rst:673 ../Doc/library/asyncio-task.rst:716 -#: ../Doc/library/asyncio-task.rst:812 +#: ../Doc/library/asyncio-task.rst:338 ../Doc/library/asyncio-task.rst:472 +#: ../Doc/library/asyncio-task.rst:645 ../Doc/library/asyncio-task.rst:703 +#: ../Doc/library/asyncio-task.rst:729 ../Doc/library/asyncio-task.rst:772 +#: ../Doc/library/asyncio-task.rst:869 msgid "Example::" msgstr "Ejemplo::" -#: ../Doc/library/asyncio-task.rst:333 +#: ../Doc/library/asyncio-task.rst:346 msgid "" "The ``async with`` statement will wait for all tasks in the group to finish. " "While waiting, new tasks may still be added to the group (for example, by " @@ -368,7 +380,7 @@ msgid "" "block is exited, no new tasks may be added to the group." msgstr "" -#: ../Doc/library/asyncio-task.rst:340 +#: ../Doc/library/asyncio-task.rst:353 msgid "" "The first time any of the tasks belonging to the group fails with an " "exception other than :exc:`asyncio.CancelledError`, the remaining tasks in " @@ -380,7 +392,7 @@ msgid "" "bubble out of the containing ``async with`` statement." msgstr "" -#: ../Doc/library/asyncio-task.rst:350 +#: ../Doc/library/asyncio-task.rst:363 msgid "" "Once all tasks have finished, if any tasks have failed with an exception " "other than :exc:`asyncio.CancelledError`, those exceptions are combined in " @@ -388,7 +400,7 @@ msgid "" "their documentation) which is then raised." msgstr "" -#: ../Doc/library/asyncio-task.rst:357 +#: ../Doc/library/asyncio-task.rst:370 msgid "" "Two base exceptions are treated specially: If any task fails with :exc:" "`KeyboardInterrupt` or :exc:`SystemExit`, the task group still cancels the " @@ -397,7 +409,7 @@ msgid "" "`ExceptionGroup` or :exc:`BaseExceptionGroup`." msgstr "" -#: ../Doc/library/asyncio-task.rst:363 +#: ../Doc/library/asyncio-task.rst:376 msgid "" "If the body of the ``async with`` statement exits with an exception (so :" "meth:`~object.__aexit__` is called with an exception set), this is treated " @@ -409,15 +421,15 @@ msgid "" "`KeyboardInterrupt` and :exc:`SystemExit` as in the previous paragraph." msgstr "" -#: ../Doc/library/asyncio-task.rst:377 +#: ../Doc/library/asyncio-task.rst:390 msgid "Sleeping" msgstr "Durmiendo" -#: ../Doc/library/asyncio-task.rst:381 +#: ../Doc/library/asyncio-task.rst:394 msgid "Block for *delay* seconds." msgstr "Bloquea por *delay* segundos." -#: ../Doc/library/asyncio-task.rst:383 +#: ../Doc/library/asyncio-task.rst:396 msgid "" "If *result* is provided, it is returned to the caller when the coroutine " "completes." @@ -425,14 +437,14 @@ msgstr "" "Si se proporciona *result*, se retorna al autor de la llamada cuando se " "completa la corrutina." -#: ../Doc/library/asyncio-task.rst:386 +#: ../Doc/library/asyncio-task.rst:399 msgid "" "``sleep()`` always suspends the current task, allowing other tasks to run." msgstr "" "``sleep()`` siempre suspende la tarea actual, permitiendo que se ejecuten " "otras tareas." -#: ../Doc/library/asyncio-task.rst:389 +#: ../Doc/library/asyncio-task.rst:402 msgid "" "Setting the delay to 0 provides an optimized path to allow other tasks to " "run. This can be used by long-running functions to avoid blocking the event " @@ -443,26 +455,26 @@ msgstr "" "ejecución prolongada para evitar bloquear el bucle de eventos durante toda " "la duración de la llamada a la función." -#: ../Doc/library/asyncio-task.rst:395 +#: ../Doc/library/asyncio-task.rst:408 msgid "" "Example of coroutine displaying the current date every second for 5 seconds::" msgstr "" "Ejemplo de una rutina que muestra la fecha actual cada segundo durante 5 " "segundos::" -#: ../Doc/library/asyncio-task.rst:413 ../Doc/library/asyncio-task.rst:504 -#: ../Doc/library/asyncio-task.rst:558 ../Doc/library/asyncio-task.rst:711 -#: ../Doc/library/asyncio-task.rst:741 ../Doc/library/asyncio-task.rst:793 -#: ../Doc/library/asyncio-task.rst:809 ../Doc/library/asyncio-task.rst:818 +#: ../Doc/library/asyncio-task.rst:426 ../Doc/library/asyncio-task.rst:521 +#: ../Doc/library/asyncio-task.rst:620 ../Doc/library/asyncio-task.rst:767 +#: ../Doc/library/asyncio-task.rst:797 ../Doc/library/asyncio-task.rst:849 +#: ../Doc/library/asyncio-task.rst:875 #, fuzzy msgid "Removed the *loop* parameter." msgstr "El parámetro *loop*." -#: ../Doc/library/asyncio-task.rst:418 +#: ../Doc/library/asyncio-task.rst:431 msgid "Running Tasks Concurrently" msgstr "Ejecutando tareas concurrentemente" -#: ../Doc/library/asyncio-task.rst:422 +#: ../Doc/library/asyncio-task.rst:435 msgid "" "Run :ref:`awaitable objects ` in the *aws* sequence " "*concurrently*." @@ -470,7 +482,7 @@ msgstr "" "Ejecute :ref:`objetos esperables ` en la secuencia *aws* " "de forma *concurrently*." -#: ../Doc/library/asyncio-task.rst:425 +#: ../Doc/library/asyncio-task.rst:438 msgid "" "If any awaitable in *aws* is a coroutine, it is automatically scheduled as a " "Task." @@ -478,7 +490,7 @@ msgstr "" "Si cualquier esperable en *aws* es una corrutina, se programa " "automáticamente como una Tarea." -#: ../Doc/library/asyncio-task.rst:428 +#: ../Doc/library/asyncio-task.rst:441 msgid "" "If all awaitables are completed successfully, the result is an aggregate " "list of returned values. The order of result values corresponds to the " @@ -488,7 +500,7 @@ msgstr "" "lista agregada de valores retornados. El orden de los valores de resultado " "corresponde al orden de esperables en *aws*." -#: ../Doc/library/asyncio-task.rst:432 +#: ../Doc/library/asyncio-task.rst:445 msgid "" "If *return_exceptions* is ``False`` (default), the first raised exception is " "immediately propagated to the task that awaits on ``gather()``. Other " @@ -500,7 +512,7 @@ msgstr "" "``gather()``. Otros esperables en la secuencia *aws* **no se cancelarán** y " "continuarán ejecutándose." -#: ../Doc/library/asyncio-task.rst:437 +#: ../Doc/library/asyncio-task.rst:450 msgid "" "If *return_exceptions* is ``True``, exceptions are treated the same as " "successful results, and aggregated in the result list." @@ -508,7 +520,7 @@ msgstr "" "Si *return_exceptions* es ``True``, las excepciones se tratan igual que los " "resultados correctos y se agregan en la lista de resultados." -#: ../Doc/library/asyncio-task.rst:440 +#: ../Doc/library/asyncio-task.rst:453 msgid "" "If ``gather()`` is *cancelled*, all submitted awaitables (that have not " "completed yet) are also *cancelled*." @@ -516,7 +528,7 @@ msgstr "" "Si ``gather()`` es *cancelado*, todos los esperables enviados (que aún no se " "han completado) también se *cancelan*." -#: ../Doc/library/asyncio-task.rst:443 +#: ../Doc/library/asyncio-task.rst:456 msgid "" "If any Task or Future from the *aws* sequence is *cancelled*, it is treated " "as if it raised :exc:`CancelledError` -- the ``gather()`` call is **not** " @@ -528,13 +540,17 @@ msgstr "" "cancela en este caso. Esto es para evitar la cancelación de una Tarea/Future " "enviada para hacer que otras Tareas/Futures sean canceladas." -#: ../Doc/library/asyncio-task.rst:450 +#: ../Doc/library/asyncio-task.rst:463 msgid "" -"A more modern way to create and run tasks concurrently and wait for their " -"completion is :class:`asyncio.TaskGroup`." +"A new alternative to create and run tasks concurrently and wait for their " +"completion is :class:`asyncio.TaskGroup`. *TaskGroup* provides stronger " +"safety guarantees than *gather* for scheduling a nesting of subtasks: if a " +"task (or a subtask, a task scheduled by a task) raises an exception, " +"*TaskGroup* will, while *gather* will not, cancel the remaining scheduled " +"tasks)." msgstr "" -#: ../Doc/library/asyncio-task.rst:493 +#: ../Doc/library/asyncio-task.rst:510 msgid "" "If *return_exceptions* is False, cancelling gather() after it has been " "marked done won't cancel any submitted awaitables. For instance, gather can " @@ -549,7 +565,7 @@ msgstr "" "detectar una excepción (generada por uno de los elementos pendientes) de " "recopilación no cancelará ningún otro elemento pendiente." -#: ../Doc/library/asyncio-task.rst:500 +#: ../Doc/library/asyncio-task.rst:517 msgid "" "If the *gather* itself is cancelled, the cancellation is propagated " "regardless of *return_exceptions*." @@ -557,7 +573,7 @@ msgstr "" "Si se cancela el propio *gather*, la cancelación se propaga " "independientemente de *return_exceptions*." -#: ../Doc/library/asyncio-task.rst:507 +#: ../Doc/library/asyncio-task.rst:524 msgid "" "Deprecation warning is emitted if no positional arguments are provided or " "not all positional arguments are Future-like objects and there is no running " @@ -567,11 +583,65 @@ msgstr "" "posicionales o no todos los argumentos posicionales son objetos de tipo " "Future y no hay un bucle de eventos en ejecución." -#: ../Doc/library/asyncio-task.rst:514 +#: ../Doc/library/asyncio-task.rst:533 +msgid "Eager Task Factory" +msgstr "" + +#: ../Doc/library/asyncio-task.rst:537 +msgid "A task factory for eager task execution." +msgstr "" + +#: ../Doc/library/asyncio-task.rst:539 +msgid "" +"When using this factory (via :meth:`loop.set_task_factory(asyncio." +"eager_task_factory) `), coroutines begin execution " +"synchronously during :class:`Task` construction. Tasks are only scheduled on " +"the event loop if they block. This can be a performance improvement as the " +"overhead of loop scheduling is avoided for coroutines that complete " +"synchronously." +msgstr "" + +#: ../Doc/library/asyncio-task.rst:545 +msgid "" +"A common example where this is beneficial is coroutines which employ caching " +"or memoization to avoid actual I/O when possible." +msgstr "" + +#: ../Doc/library/asyncio-task.rst:550 +msgid "" +"Immediate execution of the coroutine is a semantic change. If the coroutine " +"returns or raises, the task is never scheduled to the event loop. If the " +"coroutine execution blocks, the task is scheduled to the event loop. This " +"change may introduce behavior changes to existing applications. For example, " +"the application's task execution order is likely to change." +msgstr "" + +#: ../Doc/library/asyncio-task.rst:561 +msgid "" +"Create an eager task factory, similar to :func:`eager_task_factory`, using " +"the provided *custom_task_constructor* when creating a new task instead of " +"the default :class:`Task`." +msgstr "" + +#: ../Doc/library/asyncio-task.rst:565 +msgid "" +"*custom_task_constructor* must be a *callable* with the signature matching " +"the signature of :class:`Task.__init__ `. The callable must return a :" +"class:`asyncio.Task`-compatible object." +msgstr "" + +#: ../Doc/library/asyncio-task.rst:569 +msgid "" +"This function returns a *callable* intended to be used as a task factory of " +"an event loop via :meth:`loop.set_task_factory(factory) `)." +msgstr "" + +#: ../Doc/library/asyncio-task.rst:576 msgid "Shielding From Cancellation" msgstr "Protección contra cancelación" -#: ../Doc/library/asyncio-task.rst:518 +#: ../Doc/library/asyncio-task.rst:580 msgid "" "Protect an :ref:`awaitable object ` from being :meth:" "`cancelled `." @@ -579,19 +649,19 @@ msgstr "" "Protege un :ref:`objeto esperable ` de ser :meth:" "`cancelado `." -#: ../Doc/library/asyncio-task.rst:521 ../Doc/library/asyncio-task.rst:693 +#: ../Doc/library/asyncio-task.rst:583 ../Doc/library/asyncio-task.rst:749 msgid "If *aw* is a coroutine it is automatically scheduled as a Task." msgstr "Si *aw* es una corrutina, se programa automáticamente como una Tarea." -#: ../Doc/library/asyncio-task.rst:523 +#: ../Doc/library/asyncio-task.rst:585 msgid "The statement::" msgstr "La declaración::" -#: ../Doc/library/asyncio-task.rst:528 +#: ../Doc/library/asyncio-task.rst:590 msgid "is equivalent to::" msgstr "es equivalente a::" -#: ../Doc/library/asyncio-task.rst:532 +#: ../Doc/library/asyncio-task.rst:594 msgid "" "*except* that if the coroutine containing it is cancelled, the Task running " "in ``something()`` is not cancelled. From the point of view of " @@ -605,7 +675,7 @@ msgstr "" "cancelado, por lo que la expresión \"await\" sigue generando un :exc:" "`CancelledError`." -#: ../Doc/library/asyncio-task.rst:538 +#: ../Doc/library/asyncio-task.rst:600 msgid "" "If ``something()`` is cancelled by other means (i.e. from within itself) " "that would also cancel ``shield()``." @@ -613,7 +683,7 @@ msgstr "" "Si ``something()`` se cancela por otros medios (es decir, desde dentro de sí " "mismo) eso también cancelaría ``shield()``." -#: ../Doc/library/asyncio-task.rst:541 +#: ../Doc/library/asyncio-task.rst:603 msgid "" "If it is desired to completely ignore cancellation (not recommended) the " "``shield()`` function should be combined with a try/except clause, as " @@ -623,7 +693,7 @@ msgstr "" "función ``shield()`` debe combinarse con una cláusula try/except, como se " "indica a continuación::" -#: ../Doc/library/asyncio-task.rst:553 +#: ../Doc/library/asyncio-task.rst:615 msgid "" "Save a reference to tasks passed to this function, to avoid a task " "disappearing mid-execution. The event loop only keeps weak references to " @@ -631,7 +701,7 @@ msgid "" "any time, even before it's done." msgstr "" -#: ../Doc/library/asyncio-task.rst:561 +#: ../Doc/library/asyncio-task.rst:623 msgid "" "Deprecation warning is emitted if *aw* is not Future-like object and there " "is no running event loop." @@ -639,107 +709,100 @@ msgstr "" "Se emite una advertencia de obsolescencia si *aw* no es un objeto similares " "a Futures y no hay un bucle de eventos en ejecución." -#: ../Doc/library/asyncio-task.rst:567 +#: ../Doc/library/asyncio-task.rst:629 msgid "Timeouts" msgstr "Tiempo agotado" -#: ../Doc/library/asyncio-task.rst:571 +#: ../Doc/library/asyncio-task.rst:633 msgid "" -"An :ref:`asynchronous context manager ` that can be " -"used to limit the amount of time spent waiting on something." +"Return an :ref:`asynchronous context manager ` that " +"can be used to limit the amount of time spent waiting on something." msgstr "" -#: ../Doc/library/asyncio-task.rst:575 +#: ../Doc/library/asyncio-task.rst:637 msgid "" "*delay* can either be ``None``, or a float/int number of seconds to wait. If " "*delay* is ``None``, no time limit will be applied; this can be useful if " "the delay is unknown when the context manager is created." msgstr "" -#: ../Doc/library/asyncio-task.rst:580 +#: ../Doc/library/asyncio-task.rst:642 msgid "" "In either case, the context manager can be rescheduled after creation using :" "meth:`Timeout.reschedule`." msgstr "" -#: ../Doc/library/asyncio-task.rst:589 +#: ../Doc/library/asyncio-task.rst:651 msgid "" "If ``long_running_task`` takes more than 10 seconds to complete, the context " "manager will cancel the current task and handle the resulting :exc:`asyncio." -"CancelledError` internally, transforming it into an :exc:`asyncio." -"TimeoutError` which can be caught and handled." +"CancelledError` internally, transforming it into a :exc:`TimeoutError` which " +"can be caught and handled." msgstr "" -#: ../Doc/library/asyncio-task.rst:596 +#: ../Doc/library/asyncio-task.rst:658 msgid "" "The :func:`asyncio.timeout` context manager is what transforms the :exc:" -"`asyncio.CancelledError` into an :exc:`asyncio.TimeoutError`, which means " -"the :exc:`asyncio.TimeoutError` can only be caught *outside* of the context " -"manager." +"`asyncio.CancelledError` into a :exc:`TimeoutError`, which means the :exc:" +"`TimeoutError` can only be caught *outside* of the context manager." msgstr "" -#: ../Doc/library/asyncio-task.rst:601 -msgid "Example of catching :exc:`asyncio.TimeoutError`::" +#: ../Doc/library/asyncio-task.rst:663 +msgid "Example of catching :exc:`TimeoutError`::" msgstr "" -#: ../Doc/library/asyncio-task.rst:612 +#: ../Doc/library/asyncio-task.rst:674 msgid "" "The context manager produced by :func:`asyncio.timeout` can be rescheduled " "to a different deadline and inspected." msgstr "" -#: ../Doc/library/asyncio-task.rst:617 -msgid "" -"An :ref:`asynchronous context manager ` that limits " -"time spent inside of it." -msgstr "" - -#: ../Doc/library/asyncio-task.rst:624 +#: ../Doc/library/asyncio-task.rst:679 msgid "" -"Return the current deadline, or ``None`` if the current deadline is not set." +"An :ref:`asynchronous context manager ` for " +"cancelling overdue coroutines." msgstr "" -#: ../Doc/library/asyncio-task.rst:627 +#: ../Doc/library/asyncio-task.rst:682 msgid "" -"The deadline is a float, consistent with the time returned by :meth:`loop." -"time`." +"``when`` should be an absolute time at which the context should time out, as " +"measured by the event loop's clock:" msgstr "" -#: ../Doc/library/asyncio-task.rst:632 -msgid "Change the time the timeout will trigger." +#: ../Doc/library/asyncio-task.rst:685 +msgid "If ``when`` is ``None``, the timeout will never trigger." msgstr "" -#: ../Doc/library/asyncio-task.rst:634 +#: ../Doc/library/asyncio-task.rst:686 msgid "" -"If *when* is ``None``, any current deadline will be removed, and the context " -"manager will wait indefinitely." +"If ``when < loop.time()``, the timeout will trigger on the next iteration of " +"the event loop." msgstr "" -#: ../Doc/library/asyncio-task.rst:637 -msgid "If *when* is a float, it is set as the new deadline." +#: ../Doc/library/asyncio-task.rst:691 +msgid "" +"Return the current deadline, or ``None`` if the current deadline is not set." msgstr "" -#: ../Doc/library/asyncio-task.rst:639 -msgid "" -"if *when* is in the past, the timeout will trigger on the next iteration of " -"the event loop." +#: ../Doc/library/asyncio-task.rst:696 +msgid "Reschedule the timeout." msgstr "" -#: ../Doc/library/asyncio-task.rst:644 +#: ../Doc/library/asyncio-task.rst:700 msgid "Return whether the context manager has exceeded its deadline (expired)." msgstr "" -#: ../Doc/library/asyncio-task.rst:664 +#: ../Doc/library/asyncio-task.rst:720 msgid "Timeout context managers can be safely nested." msgstr "" -#: ../Doc/library/asyncio-task.rst:670 +#: ../Doc/library/asyncio-task.rst:726 msgid "" "Similar to :func:`asyncio.timeout`, except *when* is the absolute time to " "stop waiting, or ``None``." msgstr "" -#: ../Doc/library/asyncio-task.rst:690 +#: ../Doc/library/asyncio-task.rst:746 msgid "" "Wait for the *aw* :ref:`awaitable ` to complete with a " "timeout." @@ -747,7 +810,7 @@ msgstr "" "Espere a que el *aw* :ref:`esperable ` se complete con " "un tiempo agotado." -#: ../Doc/library/asyncio-task.rst:695 +#: ../Doc/library/asyncio-task.rst:751 msgid "" "*timeout* can either be ``None`` or a float or int number of seconds to wait " "for. If *timeout* is ``None``, block until the future completes." @@ -755,7 +818,7 @@ msgstr "" "*timeout* puede ser ``None`` o punto flotante o un número entero de segundos " "a esperar. Si *timeout* es ``None``, se bloquea hasta que Future se completa." -#: ../Doc/library/asyncio-task.rst:699 +#: ../Doc/library/asyncio-task.rst:755 #, fuzzy msgid "" "If a timeout occurs, it cancels the task and raises :exc:`TimeoutError`." @@ -763,7 +826,7 @@ msgstr "" "Si se produce un agotamiento de tiempo, cancela la tarea y genera :exc:" "`asyncio.TimeoutError`." -#: ../Doc/library/asyncio-task.rst:702 +#: ../Doc/library/asyncio-task.rst:758 msgid "" "To avoid the task :meth:`cancellation `, wrap it in :func:" "`shield`." @@ -771,7 +834,7 @@ msgstr "" "Para evitar la :meth:`cancelación ` de la tarea , envuélvala " "en :func:`shield`." -#: ../Doc/library/asyncio-task.rst:705 +#: ../Doc/library/asyncio-task.rst:761 msgid "" "The function will wait until the future is actually cancelled, so the total " "wait time may exceed the *timeout*. If an exception happens during " @@ -781,11 +844,11 @@ msgstr "" "espera total puede exceder el *timeout*. Si ocurre una excepción durante la " "cancelación, se propaga." -#: ../Doc/library/asyncio-task.rst:709 +#: ../Doc/library/asyncio-task.rst:765 msgid "If the wait is cancelled, the future *aw* is also cancelled." msgstr "Si se cancela la espera, el Future *aw* también se cancela." -#: ../Doc/library/asyncio-task.rst:736 +#: ../Doc/library/asyncio-task.rst:792 #, fuzzy msgid "" "When *aw* is cancelled due to a timeout, ``wait_for`` waits for *aw* to be " @@ -795,11 +858,11 @@ msgstr "" "espera a que se cancele *aw*. Anteriormente, se lanzó inmediatamente :exc:" "`asyncio.TimeoutError`." -#: ../Doc/library/asyncio-task.rst:746 +#: ../Doc/library/asyncio-task.rst:802 msgid "Waiting Primitives" msgstr "Esperando primitivas" -#: ../Doc/library/asyncio-task.rst:750 +#: ../Doc/library/asyncio-task.rst:806 #, fuzzy msgid "" "Run :class:`~asyncio.Future` and :class:`~asyncio.Task` instances in the " @@ -809,19 +872,19 @@ msgstr "" "Ejecuta :ref:`objetos en espera ` en el *aws* iterable " "simultáneamente y bloquee hasta la condición especificada por *return_when*." -#: ../Doc/library/asyncio-task.rst:754 +#: ../Doc/library/asyncio-task.rst:810 msgid "The *aws* iterable must not be empty." msgstr "El iterable *aws* no debe estar vacío." -#: ../Doc/library/asyncio-task.rst:756 +#: ../Doc/library/asyncio-task.rst:812 msgid "Returns two sets of Tasks/Futures: ``(done, pending)``." msgstr "Retorna dos conjuntos de Tareas/Futures: ``(done, pending)``." -#: ../Doc/library/asyncio-task.rst:758 +#: ../Doc/library/asyncio-task.rst:814 msgid "Usage::" msgstr "Uso::" -#: ../Doc/library/asyncio-task.rst:762 +#: ../Doc/library/asyncio-task.rst:818 msgid "" "*timeout* (a float or int), if specified, can be used to control the maximum " "number of seconds to wait before returning." @@ -830,7 +893,7 @@ msgstr "" "para controlar el número máximo de segundos que hay que esperar antes de " "retornar." -#: ../Doc/library/asyncio-task.rst:765 +#: ../Doc/library/asyncio-task.rst:821 #, fuzzy msgid "" "Note that this function does not raise :exc:`TimeoutError`. Futures or Tasks " @@ -841,7 +904,7 @@ msgstr "" "Futures o Tareas que no terminan cuando se agota el tiempo simplemente se " "retornan en el segundo conjunto." -#: ../Doc/library/asyncio-task.rst:769 +#: ../Doc/library/asyncio-task.rst:825 msgid "" "*return_when* indicates when this function should return. It must be one of " "the following constants:" @@ -849,27 +912,27 @@ msgstr "" "*return_when* indica cuándo debe retornar esta función. Debe ser una de las " "siguientes constantes:" -#: ../Doc/library/asyncio-task.rst:775 +#: ../Doc/library/asyncio-task.rst:831 msgid "Constant" msgstr "Constante" -#: ../Doc/library/asyncio-task.rst:775 +#: ../Doc/library/asyncio-task.rst:831 msgid "Description" msgstr "Descripción" -#: ../Doc/library/asyncio-task.rst:777 +#: ../Doc/library/asyncio-task.rst:833 msgid ":const:`FIRST_COMPLETED`" msgstr ":const:`FIRST_COMPLETED`" -#: ../Doc/library/asyncio-task.rst:777 +#: ../Doc/library/asyncio-task.rst:833 msgid "The function will return when any future finishes or is cancelled." msgstr "La función retornará cuando cualquier Future termine o se cancele." -#: ../Doc/library/asyncio-task.rst:780 +#: ../Doc/library/asyncio-task.rst:836 msgid ":const:`FIRST_EXCEPTION`" msgstr ":const:`FIRST_EXCEPTION`" -#: ../Doc/library/asyncio-task.rst:780 +#: ../Doc/library/asyncio-task.rst:836 msgid "" "The function will return when any future finishes by raising an exception. " "If no future raises an exception then it is equivalent to :const:" @@ -879,15 +942,15 @@ msgstr "" "excepción. Si ningún Future lanza una excepción, entonces es equivalente a :" "const:`ALL_COMPLETED`." -#: ../Doc/library/asyncio-task.rst:786 +#: ../Doc/library/asyncio-task.rst:842 msgid ":const:`ALL_COMPLETED`" msgstr ":const:`ALL_COMPLETED`" -#: ../Doc/library/asyncio-task.rst:786 +#: ../Doc/library/asyncio-task.rst:842 msgid "The function will return when all futures finish or are cancelled." msgstr "La función retornará cuando todos los Futures terminen o se cancelen." -#: ../Doc/library/asyncio-task.rst:790 +#: ../Doc/library/asyncio-task.rst:846 msgid "" "Unlike :func:`~asyncio.wait_for`, ``wait()`` does not cancel the futures " "when a timeout occurs." @@ -895,12 +958,16 @@ msgstr "" "A diferencia de :func:`~asyncio.wait_for`, ``wait()`` no cancela los Futures " "cuando se produce un agotamiento de tiempo." -#: ../Doc/library/asyncio-task.rst:796 +#: ../Doc/library/asyncio-task.rst:852 #, fuzzy msgid "Passing coroutine objects to ``wait()`` directly is forbidden." msgstr "El paso de objetos corrutina a ``wait()`` directamente está en desuso." -#: ../Doc/library/asyncio-task.rst:801 +#: ../Doc/library/asyncio-task.rst:855 ../Doc/library/asyncio-task.rst:882 +msgid "Added support for generators yielding tasks." +msgstr "" + +#: ../Doc/library/asyncio-task.rst:861 msgid "" "Run :ref:`awaitable objects ` in the *aws* iterable " "concurrently. Return an iterator of coroutines. Each coroutine returned can " @@ -912,7 +979,7 @@ msgstr "" "corrutina devuelta para obtener el siguiente resultado más temprano del " "iterable de los esperables restantes." -#: ../Doc/library/asyncio-task.rst:806 +#: ../Doc/library/asyncio-task.rst:866 #, fuzzy msgid "" "Raises :exc:`TimeoutError` if the timeout occurs before all Futures are done." @@ -920,7 +987,7 @@ msgstr "" "Lanza :exc:`asyncio.TimeoutError` si el agotamiento de tiempo ocurre antes " "que todos los Futures terminen." -#: ../Doc/library/asyncio-task.rst:821 +#: ../Doc/library/asyncio-task.rst:878 msgid "" "Deprecation warning is emitted if not all awaitable objects in the *aws* " "iterable are Future-like objects and there is no running event loop." @@ -929,15 +996,15 @@ msgstr "" "en el iterable *aws* son objetos de tipo Future y no hay un bucle de eventos " "en ejecución." -#: ../Doc/library/asyncio-task.rst:827 +#: ../Doc/library/asyncio-task.rst:887 msgid "Running in Threads" msgstr "Ejecutando en hilos" -#: ../Doc/library/asyncio-task.rst:831 +#: ../Doc/library/asyncio-task.rst:891 msgid "Asynchronously run function *func* in a separate thread." msgstr "Ejecutar asincrónicamente la función *func* en un hilo separado." -#: ../Doc/library/asyncio-task.rst:833 +#: ../Doc/library/asyncio-task.rst:893 msgid "" "Any \\*args and \\*\\*kwargs supplied for this function are directly passed " "to *func*. Also, the current :class:`contextvars.Context` is propagated, " @@ -949,14 +1016,14 @@ msgstr "" "propaga, lo que permite acceder a las variables de contexto del subproceso " "del bucle de eventos en el subproceso separado." -#: ../Doc/library/asyncio-task.rst:838 +#: ../Doc/library/asyncio-task.rst:898 msgid "" "Return a coroutine that can be awaited to get the eventual result of *func*." msgstr "" "Retorna una corrutina que se puede esperar para obtener el resultado final " "de *func*." -#: ../Doc/library/asyncio-task.rst:840 +#: ../Doc/library/asyncio-task.rst:900 #, fuzzy msgid "" "This coroutine function is primarily intended to be used for executing IO-" @@ -967,7 +1034,7 @@ msgstr "" "ejecutar funciones/métodos vinculados a IO que de otro modo bloquearían el " "bucle de eventos si se ejecutaran en el hilo principal. Por ejemplo::" -#: ../Doc/library/asyncio-task.rst:870 +#: ../Doc/library/asyncio-task.rst:930 #, fuzzy msgid "" "Directly calling ``blocking_io()`` in any coroutine would block the event " @@ -980,7 +1047,7 @@ msgstr "" "adicional de tiempo de ejecución. En cambio, usando `asyncio.to_thread()`, " "podemos ejecutarlo en un hilo separado sin bloquear el bucle de eventos." -#: ../Doc/library/asyncio-task.rst:877 +#: ../Doc/library/asyncio-task.rst:937 #, fuzzy msgid "" "Due to the :term:`GIL`, ``asyncio.to_thread()`` can typically only be used " @@ -994,16 +1061,16 @@ msgstr "" "Python que no tienen una, `asyncio.to_thread()` también se puede usar para " "funciones vinculadas a la CPU." -#: ../Doc/library/asyncio-task.rst:886 +#: ../Doc/library/asyncio-task.rst:946 msgid "Scheduling From Other Threads" msgstr "Planificación desde otros hilos" -#: ../Doc/library/asyncio-task.rst:890 +#: ../Doc/library/asyncio-task.rst:950 msgid "Submit a coroutine to the given event loop. Thread-safe." msgstr "" "Envía una corrutina al bucle de eventos especificado. Seguro para Hilos." -#: ../Doc/library/asyncio-task.rst:892 +#: ../Doc/library/asyncio-task.rst:952 msgid "" "Return a :class:`concurrent.futures.Future` to wait for the result from " "another OS thread." @@ -1011,7 +1078,7 @@ msgstr "" "Retorna :class:`concurrent.futures.Future` para esperar el resultado de otro " "hilo del SO (Sistema Operativo)." -#: ../Doc/library/asyncio-task.rst:895 +#: ../Doc/library/asyncio-task.rst:955 msgid "" "This function is meant to be called from a different OS thread than the one " "where the event loop is running. Example::" @@ -1019,7 +1086,7 @@ msgstr "" "Esta función está pensada para llamarse desde un hilo del SO diferente al " "que se ejecuta el bucle de eventos. Ejemplo::" -#: ../Doc/library/asyncio-task.rst:907 +#: ../Doc/library/asyncio-task.rst:967 msgid "" "If an exception is raised in the coroutine, the returned Future will be " "notified. It can also be used to cancel the task in the event loop::" @@ -1028,7 +1095,7 @@ msgstr "" "notificado. También se puede utilizar para cancelar la tarea en el bucle de " "eventos::" -#: ../Doc/library/asyncio-task.rst:921 +#: ../Doc/library/asyncio-task.rst:981 msgid "" "See the :ref:`concurrency and multithreading ` " "section of the documentation." @@ -1036,7 +1103,7 @@ msgstr "" "Consulte la sección de la documentación :ref:`Concurrencia y multi hilos " "`." -#: ../Doc/library/asyncio-task.rst:924 +#: ../Doc/library/asyncio-task.rst:984 msgid "" "Unlike other asyncio functions this function requires the *loop* argument to " "be passed explicitly." @@ -1044,11 +1111,11 @@ msgstr "" "A diferencia de otras funciones asyncio, esta función requiere que el " "argumento *loop* se pase explícitamente." -#: ../Doc/library/asyncio-task.rst:931 +#: ../Doc/library/asyncio-task.rst:991 msgid "Introspection" msgstr "Introspección" -#: ../Doc/library/asyncio-task.rst:936 +#: ../Doc/library/asyncio-task.rst:996 msgid "" "Return the currently running :class:`Task` instance, or ``None`` if no task " "is running." @@ -1056,7 +1123,7 @@ msgstr "" "Retorna la instancia :class:`Task` actualmente en ejecución o ``None`` si no " "se está ejecutando ninguna tarea." -#: ../Doc/library/asyncio-task.rst:939 +#: ../Doc/library/asyncio-task.rst:999 msgid "" "If *loop* is ``None`` :func:`get_running_loop` is used to get the current " "loop." @@ -1064,12 +1131,12 @@ msgstr "" "Si *loop* es ``None`` :func:`get_running_loop` se utiliza para obtener el " "bucle actual." -#: ../Doc/library/asyncio-task.rst:947 +#: ../Doc/library/asyncio-task.rst:1007 msgid "Return a set of not yet finished :class:`Task` objects run by the loop." msgstr "" "Retorna un conjunto de objetos :class:`Task` que se ejecutan por el bucle." -#: ../Doc/library/asyncio-task.rst:950 +#: ../Doc/library/asyncio-task.rst:1010 msgid "" "If *loop* is ``None``, :func:`get_running_loop` is used for getting current " "loop." @@ -1077,11 +1144,16 @@ msgstr "" "Si *loop* es ``None``, :func:`get_running_loop` se utiliza para obtener el " "bucle actual." -#: ../Doc/library/asyncio-task.rst:957 +#: ../Doc/library/asyncio-task.rst:1018 +#, fuzzy +msgid "Return ``True`` if *obj* is a coroutine object." +msgstr "Retorna ``True`` si la Tarea está *finalizada*." + +#: ../Doc/library/asyncio-task.rst:1024 msgid "Task Object" msgstr "Objeto Task" -#: ../Doc/library/asyncio-task.rst:961 +#: ../Doc/library/asyncio-task.rst:1028 msgid "" "A :class:`Future-like ` object that runs a Python :ref:`coroutine " "`. Not thread-safe." @@ -1089,7 +1161,7 @@ msgstr "" "Un objeto :class:`similar a Future ` que ejecuta Python :ref:" "`coroutine `. No es seguro hilos." -#: ../Doc/library/asyncio-task.rst:964 +#: ../Doc/library/asyncio-task.rst:1031 msgid "" "Tasks are used to run coroutines in event loops. If a coroutine awaits on a " "Future, the Task suspends the execution of the coroutine and waits for the " @@ -1101,7 +1173,7 @@ msgstr "" "corrutina y espera la finalización del Future. Cuando el Future *termina*, " "se reanuda la ejecución de la corrutina envuelta." -#: ../Doc/library/asyncio-task.rst:970 +#: ../Doc/library/asyncio-task.rst:1037 msgid "" "Event loops use cooperative scheduling: an event loop runs one Task at a " "time. While a Task awaits for the completion of a Future, the event loop " @@ -1112,7 +1184,7 @@ msgstr "" "de un Future, el bucle de eventos ejecuta otras tareas, retorno de llamada o " "realiza operaciones de E/S." -#: ../Doc/library/asyncio-task.rst:975 +#: ../Doc/library/asyncio-task.rst:1042 msgid "" "Use the high-level :func:`asyncio.create_task` function to create Tasks, or " "the low-level :meth:`loop.create_task` or :func:`ensure_future` functions. " @@ -1122,7 +1194,7 @@ msgstr "" "Tareas, o las funciones de bajo nivel :meth:`loop.create_task` o :func:" "`ensure_future`. Se desaconseja la creación de instancias manuales de Tareas." -#: ../Doc/library/asyncio-task.rst:980 +#: ../Doc/library/asyncio-task.rst:1047 msgid "" "To cancel a running Task use the :meth:`cancel` method. Calling it will " "cause the Task to throw a :exc:`CancelledError` exception into the wrapped " @@ -1134,7 +1206,7 @@ msgstr "" "corrutina contenida. Si una corrutina está esperando en un objeto Future " "durante la cancelación, se cancelará el objeto Future." -#: ../Doc/library/asyncio-task.rst:985 +#: ../Doc/library/asyncio-task.rst:1052 msgid "" ":meth:`cancelled` can be used to check if the Task was cancelled. The method " "returns ``True`` if the wrapped coroutine did not suppress the :exc:" @@ -1144,7 +1216,7 @@ msgstr "" "cancelada. El método devuelve ``True`` si la corrutina contenida no suprimió " "la excepción :exc:`CancelledError` y se canceló realmente." -#: ../Doc/library/asyncio-task.rst:990 +#: ../Doc/library/asyncio-task.rst:1057 msgid "" ":class:`asyncio.Task` inherits from :class:`Future` all of its APIs except :" "meth:`Future.set_result` and :meth:`Future.set_exception`." @@ -1152,21 +1224,29 @@ msgstr "" ":class:`asyncio.Task` hereda de :class:`Future` todas sus API excepto :meth:" "`Future.set_result` y :meth:`Future.set_exception`." -#: ../Doc/library/asyncio-task.rst:994 +#: ../Doc/library/asyncio-task.rst:1061 msgid "" -"Tasks support the :mod:`contextvars` module. When a Task is created it " -"copies the current context and later runs its coroutine in the copied " -"context." +"An optional keyword-only *context* argument allows specifying a custom :" +"class:`contextvars.Context` for the *coro* to run in. If no *context* is " +"provided, the Task copies the current context and later runs its coroutine " +"in the copied context." msgstr "" -"Las tareas admiten el módulo :mod:`contextvars`. Cuando se crea una Tarea, " -"copia el contexto actual y, posteriormente, ejecuta su corrutina en el " -"contexto copiado." -#: ../Doc/library/asyncio-task.rst:998 +#: ../Doc/library/asyncio-task.rst:1066 +msgid "" +"An optional keyword-only *eager_start* argument allows eagerly starting the " +"execution of the :class:`asyncio.Task` at task creation time. If set to " +"``True`` and the event loop is running, the task will start executing the " +"coroutine immediately, until the first time the coroutine blocks. If the " +"coroutine returns or raises without blocking, the task will be finished " +"eagerly and will skip scheduling to the event loop." +msgstr "" + +#: ../Doc/library/asyncio-task.rst:1073 msgid "Added support for the :mod:`contextvars` module." msgstr "Agregado soporte para el módulo :mod:`contextvars`." -#: ../Doc/library/asyncio-task.rst:1004 +#: ../Doc/library/asyncio-task.rst:1079 msgid "" "Deprecation warning is emitted if *loop* is not specified and there is no " "running event loop." @@ -1174,11 +1254,16 @@ msgstr "" "Se emite una advertencia de obsolescencia si no se especifica *loop* y no " "hay un bucle de eventos en ejecución." -#: ../Doc/library/asyncio-task.rst:1010 +#: ../Doc/library/asyncio-task.rst:1086 +#, fuzzy +msgid "Added the *eager_start* parameter." +msgstr "Se ha añadido el parámetro ``name``." + +#: ../Doc/library/asyncio-task.rst:1091 msgid "Return ``True`` if the Task is *done*." msgstr "Retorna ``True`` si la Tarea está *finalizada*." -#: ../Doc/library/asyncio-task.rst:1012 +#: ../Doc/library/asyncio-task.rst:1093 msgid "" "A Task is *done* when the wrapped coroutine either returned a value, raised " "an exception, or the Task was cancelled." @@ -1186,11 +1271,11 @@ msgstr "" "Una tarea está *finalizada* cuando la corrutina contenida retornó un valor, " "lanzó una excepción, o se canceló la Tarea." -#: ../Doc/library/asyncio-task.rst:1017 +#: ../Doc/library/asyncio-task.rst:1098 msgid "Return the result of the Task." msgstr "Retorna el resultado de la Tarea." -#: ../Doc/library/asyncio-task.rst:1019 +#: ../Doc/library/asyncio-task.rst:1100 msgid "" "If the Task is *done*, the result of the wrapped coroutine is returned (or " "if the coroutine raised an exception, that exception is re-raised.)" @@ -1199,7 +1284,7 @@ msgstr "" "contenida (o si la corrutina lanzó una excepción, esa excepción se vuelve a " "relanzar.)" -#: ../Doc/library/asyncio-task.rst:1023 ../Doc/library/asyncio-task.rst:1037 +#: ../Doc/library/asyncio-task.rst:1104 ../Doc/library/asyncio-task.rst:1118 msgid "" "If the Task has been *cancelled*, this method raises a :exc:`CancelledError` " "exception." @@ -1207,7 +1292,7 @@ msgstr "" "Si la Tarea ha sido *cancelada*, este método lanza una excepción :exc:" "`CancelledError`." -#: ../Doc/library/asyncio-task.rst:1026 +#: ../Doc/library/asyncio-task.rst:1107 msgid "" "If the Task's result isn't yet available, this method raises a :exc:" "`InvalidStateError` exception." @@ -1215,11 +1300,11 @@ msgstr "" "Si el resultado de la Tarea aún no está disponible, este método lanza una " "excepción :exc:`InvalidStateError`." -#: ../Doc/library/asyncio-task.rst:1031 +#: ../Doc/library/asyncio-task.rst:1112 msgid "Return the exception of the Task." msgstr "Retorna la excepción de la Tarea." -#: ../Doc/library/asyncio-task.rst:1033 +#: ../Doc/library/asyncio-task.rst:1114 msgid "" "If the wrapped coroutine raised an exception that exception is returned. If " "the wrapped coroutine returned normally this method returns ``None``." @@ -1227,7 +1312,7 @@ msgstr "" "Si la corrutina contenida lanzó una excepción, esa excepción es retornada. " "Si la corrutina contenida retorna normalmente, este método retorna ``None``." -#: ../Doc/library/asyncio-task.rst:1040 +#: ../Doc/library/asyncio-task.rst:1121 msgid "" "If the Task isn't *done* yet, this method raises an :exc:`InvalidStateError` " "exception." @@ -1235,28 +1320,28 @@ msgstr "" "Si la Tarea aún no está *terminada*, este método lanza una excepción :exc:" "`InvalidStateError`." -#: ../Doc/library/asyncio-task.rst:1045 +#: ../Doc/library/asyncio-task.rst:1126 msgid "Add a callback to be run when the Task is *done*." msgstr "" "Agrega una retro llamada que se ejecutará cuando la Tarea esté *terminada*." -#: ../Doc/library/asyncio-task.rst:1047 ../Doc/library/asyncio-task.rst:1056 +#: ../Doc/library/asyncio-task.rst:1128 ../Doc/library/asyncio-task.rst:1137 msgid "This method should only be used in low-level callback-based code." msgstr "" "Este método solo se debe usar en código basado en retrollamada de bajo nivel." -#: ../Doc/library/asyncio-task.rst:1049 +#: ../Doc/library/asyncio-task.rst:1130 msgid "" "See the documentation of :meth:`Future.add_done_callback` for more details." msgstr "" "Consulte la documentación de :meth:`Future.add_done_callback` para obtener " "más detalles." -#: ../Doc/library/asyncio-task.rst:1054 +#: ../Doc/library/asyncio-task.rst:1135 msgid "Remove *callback* from the callbacks list." msgstr "Remueve la *retrollamada* de la lista de retrollamadas." -#: ../Doc/library/asyncio-task.rst:1058 +#: ../Doc/library/asyncio-task.rst:1139 msgid "" "See the documentation of :meth:`Future.remove_done_callback` for more " "details." @@ -1264,11 +1349,11 @@ msgstr "" "Consulte la documentación de :meth:`Future.remove_done_callback` para " "obtener más detalles." -#: ../Doc/library/asyncio-task.rst:1063 +#: ../Doc/library/asyncio-task.rst:1144 msgid "Return the list of stack frames for this Task." msgstr "Retorna la lista de marcos de pila para esta tarea." -#: ../Doc/library/asyncio-task.rst:1065 +#: ../Doc/library/asyncio-task.rst:1146 msgid "" "If the wrapped coroutine is not done, this returns the stack where it is " "suspended. If the coroutine has completed successfully or was cancelled, " @@ -1280,15 +1365,15 @@ msgstr "" "retorna una lista vacía. Si la corrutina terminó por una excepción, esto " "retorna la lista de marcos de seguimiento." -#: ../Doc/library/asyncio-task.rst:1071 +#: ../Doc/library/asyncio-task.rst:1152 msgid "The frames are always ordered from oldest to newest." msgstr "Los marcos siempre se ordenan de más antiguo a más nuevo." -#: ../Doc/library/asyncio-task.rst:1073 +#: ../Doc/library/asyncio-task.rst:1154 msgid "Only one stack frame is returned for a suspended coroutine." msgstr "Solo se retorna un marco de pila para una corrutina suspendida." -#: ../Doc/library/asyncio-task.rst:1075 +#: ../Doc/library/asyncio-task.rst:1156 msgid "" "The optional *limit* argument sets the maximum number of frames to return; " "by default all available frames are returned. The ordering of the returned " @@ -1303,11 +1388,11 @@ msgstr "" "pila, pero se devuelven los marcos más antiguos de un *traceback*. (Esto " "coincide con el comportamiento del módulo traceback.)ss" -#: ../Doc/library/asyncio-task.rst:1084 +#: ../Doc/library/asyncio-task.rst:1165 msgid "Print the stack or traceback for this Task." msgstr "Imprime la pila o el seguimiento de esta tarea." -#: ../Doc/library/asyncio-task.rst:1086 +#: ../Doc/library/asyncio-task.rst:1167 msgid "" "This produces output similar to that of the traceback module for the frames " "retrieved by :meth:`get_stack`." @@ -1315,27 +1400,43 @@ msgstr "" "Esto produce una salida similar a la del módulo traceback para los marcos " "recuperados por :meth:`get_stack`." -#: ../Doc/library/asyncio-task.rst:1089 +#: ../Doc/library/asyncio-task.rst:1170 msgid "The *limit* argument is passed to :meth:`get_stack` directly." msgstr "El argumento *limit* se pasa directamente a :meth:`get_stack`." -#: ../Doc/library/asyncio-task.rst:1091 +#: ../Doc/library/asyncio-task.rst:1172 +#, fuzzy msgid "" "The *file* argument is an I/O stream to which the output is written; by " -"default output is written to :data:`sys.stderr`." +"default output is written to :data:`sys.stdout`." msgstr "" "El argumento *file* es un flujo de E/S en el que se escribe la salida; por " "defecto, la salida se escribe en :data:`sys.stderr`." -#: ../Doc/library/asyncio-task.rst:1096 +#: ../Doc/library/asyncio-task.rst:1177 msgid "Return the coroutine object wrapped by the :class:`Task`." msgstr "Retorna el objeto corrutina contenido por :class:`Task`." -#: ../Doc/library/asyncio-task.rst:1102 +#: ../Doc/library/asyncio-task.rst:1181 +msgid "" +"This will return ``None`` for Tasks which have already completed eagerly. " +"See the :ref:`Eager Task Factory `." +msgstr "" + +#: ../Doc/library/asyncio-task.rst:1188 +msgid "Newly added eager task execution means result may be ``None``." +msgstr "" + +#: ../Doc/library/asyncio-task.rst:1192 +msgid "" +"Return the :class:`contextvars.Context` object associated with the task." +msgstr "" + +#: ../Doc/library/asyncio-task.rst:1199 msgid "Return the name of the Task." msgstr "Retorna el nombre de la Tarea." -#: ../Doc/library/asyncio-task.rst:1104 +#: ../Doc/library/asyncio-task.rst:1201 msgid "" "If no name has been explicitly assigned to the Task, the default asyncio " "Task implementation generates a default name during instantiation." @@ -1344,18 +1445,18 @@ msgstr "" "implementación de Tarea asyncio predeterminada genera un nombre " "predeterminado durante la creación de instancias." -#: ../Doc/library/asyncio-task.rst:1112 +#: ../Doc/library/asyncio-task.rst:1209 msgid "Set the name of the Task." msgstr "Establece el nombre de la Tarea." -#: ../Doc/library/asyncio-task.rst:1114 +#: ../Doc/library/asyncio-task.rst:1211 msgid "" "The *value* argument can be any object, which is then converted to a string." msgstr "" "El argumento *value* puede ser cualquier objeto, que luego se convierte en " "una cadena." -#: ../Doc/library/asyncio-task.rst:1117 +#: ../Doc/library/asyncio-task.rst:1214 msgid "" "In the default Task implementation, the name will be visible in the :func:" "`repr` output of a task object." @@ -1363,11 +1464,11 @@ msgstr "" "En la implementación de Task predeterminada, el nombre será visible en la " "salida :func:`repr` de un objeto de tarea." -#: ../Doc/library/asyncio-task.rst:1124 +#: ../Doc/library/asyncio-task.rst:1221 msgid "Request the Task to be cancelled." msgstr "Solicita que se cancele la Tarea." -#: ../Doc/library/asyncio-task.rst:1126 +#: ../Doc/library/asyncio-task.rst:1223 msgid "" "This arranges for a :exc:`CancelledError` exception to be thrown into the " "wrapped coroutine on the next cycle of the event loop." @@ -1375,14 +1476,17 @@ msgstr "" "Esto hace que una excepción :exc:`CancelledError` sea lanzada a la corrutina " "contenida en el próximo ciclo del bucle de eventos." -#: ../Doc/library/asyncio-task.rst:1129 +#: ../Doc/library/asyncio-task.rst:1226 +#, fuzzy msgid "" "The coroutine then has a chance to clean up or even deny the request by " "suppressing the exception with a :keyword:`try` ... ... ``except " "CancelledError`` ... :keyword:`finally` block. Therefore, unlike :meth:" "`Future.cancel`, :meth:`Task.cancel` does not guarantee that the Task will " "be cancelled, although suppressing cancellation completely is not common and " -"is actively discouraged." +"is actively discouraged. Should the coroutine nevertheless decide to " +"suppress the cancellation, it needs to call :meth:`Task.uncancel` in " +"addition to catching the exception." msgstr "" "La corrutina entonces tiene la oportunidad de limpiar o incluso denegar la " "solicitud suprimiendo la excepción con un bloque :keyword:`try` ... ..." @@ -1391,16 +1495,16 @@ msgstr "" "cancelada, aunque suprimir la cancelación por completo no es común y se " "desalienta activamente." -#: ../Doc/library/asyncio-task.rst:1137 +#: ../Doc/library/asyncio-task.rst:1236 #, fuzzy msgid "Added the *msg* parameter." msgstr "Se agregó el parámetro ``msg``." -#: ../Doc/library/asyncio-task.rst:1140 +#: ../Doc/library/asyncio-task.rst:1239 msgid "The ``msg`` parameter is propagated from cancelled task to its awaiter." msgstr "" -#: ../Doc/library/asyncio-task.rst:1145 +#: ../Doc/library/asyncio-task.rst:1244 msgid "" "The following example illustrates how coroutines can intercept the " "cancellation request::" @@ -1408,11 +1512,11 @@ msgstr "" "En el ejemplo siguiente se muestra cómo las corrutinas pueden interceptar la " "solicitud de cancelación::" -#: ../Doc/library/asyncio-task.rst:1184 +#: ../Doc/library/asyncio-task.rst:1283 msgid "Return ``True`` if the Task is *cancelled*." msgstr "Retorna ``True`` si la Tarea se *cancela*." -#: ../Doc/library/asyncio-task.rst:1186 +#: ../Doc/library/asyncio-task.rst:1285 msgid "" "The Task is *cancelled* when the cancellation was requested with :meth:" "`cancel` and the wrapped coroutine propagated the :exc:`CancelledError` " @@ -1422,21 +1526,21 @@ msgstr "" "la corrutina contenida propagó la excepción :exc:`CancelledError` que se le " "ha lanzado." -#: ../Doc/library/asyncio-task.rst:1192 +#: ../Doc/library/asyncio-task.rst:1291 msgid "Decrement the count of cancellation requests to this Task." msgstr "" -#: ../Doc/library/asyncio-task.rst:1194 +#: ../Doc/library/asyncio-task.rst:1293 msgid "Returns the remaining number of cancellation requests." msgstr "" -#: ../Doc/library/asyncio-task.rst:1196 +#: ../Doc/library/asyncio-task.rst:1295 msgid "" "Note that once execution of a cancelled task completed, further calls to :" "meth:`uncancel` are ineffective." msgstr "" -#: ../Doc/library/asyncio-task.rst:1201 +#: ../Doc/library/asyncio-task.rst:1300 msgid "" "This method is used by asyncio's internals and isn't expected to be used by " "end-user code. In particular, if a Task gets successfully uncancelled, this " @@ -1445,7 +1549,7 @@ msgid "" "respective structured block. For example::" msgstr "" -#: ../Doc/library/asyncio-task.rst:1219 +#: ../Doc/library/asyncio-task.rst:1318 msgid "" "While the block with ``make_request()`` and ``make_another_request()`` might " "get cancelled due to the timeout, ``unrelated_code()`` should continue " @@ -1454,13 +1558,20 @@ msgid "" "similar fashion." msgstr "" -#: ../Doc/library/asyncio-task.rst:1227 +#: ../Doc/library/asyncio-task.rst:1324 +msgid "" +"If end-user code is, for some reason, suppresing cancellation by catching :" +"exc:`CancelledError`, it needs to call this method to remove the " +"cancellation state." +msgstr "" + +#: ../Doc/library/asyncio-task.rst:1330 msgid "" "Return the number of pending cancellation requests to this Task, i.e., the " "number of calls to :meth:`cancel` less the number of :meth:`uncancel` calls." msgstr "" -#: ../Doc/library/asyncio-task.rst:1231 +#: ../Doc/library/asyncio-task.rst:1334 msgid "" "Note that if this number is greater than zero but the Task is still " "executing, :meth:`cancelled` will still return ``False``. This is because " @@ -1469,8 +1580,17 @@ msgid "" "to zero." msgstr "" -#: ../Doc/library/asyncio-task.rst:1237 +#: ../Doc/library/asyncio-task.rst:1340 msgid "" "This method is used by asyncio's internals and isn't expected to be used by " "end-user code. See :meth:`uncancel` for more details." msgstr "" + +#~ msgid "" +#~ "Tasks support the :mod:`contextvars` module. When a Task is created it " +#~ "copies the current context and later runs its coroutine in the copied " +#~ "context." +#~ msgstr "" +#~ "Las tareas admiten el módulo :mod:`contextvars`. Cuando se crea una " +#~ "Tarea, copia el contexto actual y, posteriormente, ejecuta su corrutina " +#~ "en el contexto copiado." diff --git a/library/asyncio.po b/library/asyncio.po index 2e42499ea0..7451b67136 100644 --- a/library/asyncio.po +++ b/library/asyncio.po @@ -10,27 +10,26 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-01-31 11:30-0300\n" "Last-Translator: David Revillas \n" -"Language-Team: python-doc-es\n" "Language: es_ES\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" -#: ../Doc/library/asyncio.rst:66 +#: ../Doc/library/asyncio.rst:78 msgid "High-level APIs" msgstr "*APIs* de alto nivel" -#: ../Doc/library/asyncio.rst:78 +#: ../Doc/library/asyncio.rst:90 msgid "Low-level APIs" msgstr "*APIs* de bajo nivel" -#: ../Doc/library/asyncio.rst:89 +#: ../Doc/library/asyncio.rst:101 msgid "Guides and Tutorials" msgstr "Guías y tutoriales" @@ -133,11 +132,16 @@ msgstr "" "Bibliotecas :ref:`puente ` basadas en retrollamadas y " "código con sintaxis *async/wait*." +#: ../Doc/library/asyncio.rst:59 +msgid "You can experiment with an ``asyncio`` concurrent context in the REPL:" +msgstr "" + +#: ../Doc/includes/wasm-notavail.rst:3 #, fuzzy msgid ":ref:`Availability `: not Emscripten, not WASI." msgstr ":ref:`Availability `: no Emscripten, no WASI." -#: ../Doc/library/cpython/Doc/includes/wasm-notavail.rst:5 +#: ../Doc/includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly platforms " "``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for " @@ -147,11 +151,11 @@ msgstr "" "``wasm32-emscripten`` y ``wasm32-wasi``. Consulte :ref:`wasm-availability` " "para más información." -#: ../Doc/library/asyncio.rst:65 +#: ../Doc/library/asyncio.rst:77 msgid "Reference" msgstr "Referencias" -#: ../Doc/library/asyncio.rst:98 +#: ../Doc/library/asyncio.rst:110 msgid "The source code for asyncio can be found in :source:`Lib/asyncio/`." msgstr "" "El código fuente para asyncio puede encontrarse en :source:`Lib/asyncio/`." diff --git a/library/atexit.po b/library/atexit.po index 55264d77a6..e3a21119d6 100644 --- a/library/atexit.po +++ b/library/atexit.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-16 21:42+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-12-31 09:29-0300\n" "Last-Translator: \n" "Language: es_AR\n" @@ -19,8 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.9.1\n" -"X-Generator: Poedit 3.0\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/atexit.rst:2 msgid ":mod:`atexit` --- Exit handlers" @@ -55,13 +54,19 @@ msgstr "" #: ../Doc/library/atexit.rst:23 msgid "" +"**Note:** The effect of registering or unregistering functions from within a " +"cleanup function is undefined." +msgstr "" + +#: ../Doc/library/atexit.rst:26 +msgid "" "When used with C-API subinterpreters, registered functions are local to the " "interpreter they were registered in." msgstr "" "Cuando se usan con sub-intérpretes API C, las funciones registradas son " "locales para el intérprete en el que se registraron." -#: ../Doc/library/atexit.rst:29 +#: ../Doc/library/atexit.rst:32 msgid "" "Register *func* as a function to be executed at termination. Any optional " "arguments that are to be passed to *func* must be passed as arguments to :" @@ -73,7 +78,7 @@ msgstr "" "como un argumento para la función :func:`register`. Es posible registrar las " "mismas funciones y argumentos más de una vez." -#: ../Doc/library/atexit.rst:34 +#: ../Doc/library/atexit.rst:37 msgid "" "At normal program termination (for instance, if :func:`sys.exit` is called " "or the main module's execution completes), all functions registered are " @@ -88,7 +93,7 @@ msgstr "" "importarán antes que los módulos de nivel alto y, por lo tanto, se limpiarán " "al final." -#: ../Doc/library/atexit.rst:40 +#: ../Doc/library/atexit.rst:43 msgid "" "If an exception is raised during execution of the exit handlers, a traceback " "is printed (unless :exc:`SystemExit` is raised) and the exception " @@ -101,14 +106,28 @@ msgstr "" "salida hayan tenido la oportunidad de ejecutarse, la última excepción a ser " "lanzada se vuelve a lanzar." -#: ../Doc/library/atexit.rst:45 +#: ../Doc/library/atexit.rst:48 msgid "" "This function returns *func*, which makes it possible to use it as a " "decorator." msgstr "" "Esta función retorna *func*, lo que hace posible usarlo como decorador." -#: ../Doc/library/atexit.rst:51 +#: ../Doc/library/atexit.rst:52 +msgid "" +"Starting new threads or calling :func:`os.fork` from a registered function " +"can lead to race condition between the main Python runtime thread freeing " +"thread states while internal :mod:`threading` routines or the new process " +"try to use that state. This can lead to crashes rather than clean shutdown." +msgstr "" + +#: ../Doc/library/atexit.rst:58 +msgid "" +"Attempts to start a new thread or :func:`os.fork` a new process in a " +"registered function now leads to :exc:`RuntimeError`." +msgstr "" + +#: ../Doc/library/atexit.rst:64 msgid "" "Remove *func* from the list of functions to be run at interpreter shutdown. :" "func:`unregister` silently does nothing if *func* was not previously " @@ -125,11 +144,11 @@ msgstr "" "durante la cancelación del registro, por lo que las referencias de funciones " "no necesitan tener identidades coincidentes." -#: ../Doc/library/atexit.rst:62 +#: ../Doc/library/atexit.rst:75 msgid "Module :mod:`readline`" msgstr "Módulo :mod:`readline`" -#: ../Doc/library/atexit.rst:62 +#: ../Doc/library/atexit.rst:75 msgid "" "Useful example of :mod:`atexit` to read and write :mod:`readline` history " "files." @@ -137,11 +156,11 @@ msgstr "" "Un ejemplo útil del uso de :mod:`atexit` para leer y escribir archivos de " "historial :mod:`readline`." -#: ../Doc/library/atexit.rst:69 +#: ../Doc/library/atexit.rst:82 msgid ":mod:`atexit` Example" msgstr "Ejemplo con :mod:`atexit`" -#: ../Doc/library/atexit.rst:71 +#: ../Doc/library/atexit.rst:84 msgid "" "The following simple example demonstrates how a module can initialize a " "counter from a file when it is imported and save the counter's updated value " @@ -154,7 +173,7 @@ msgstr "" "que la aplicación realice una llamada explícita en este módulo cuando el " "intérprete se detiene. ::" -#: ../Doc/library/atexit.rst:94 +#: ../Doc/library/atexit.rst:107 msgid "" "Positional and keyword arguments may also be passed to :func:`register` to " "be passed along to the registered function when it is called::" @@ -162,10 +181,10 @@ msgstr "" "Los argumentos posicionales y de palabras clave también se pueden pasar a :" "func:`register` para volver a pasar a la función registrada cuando se llama::" -#: ../Doc/library/atexit.rst:106 +#: ../Doc/library/atexit.rst:119 msgid "Usage as a :term:`decorator`::" msgstr "Usar como un :term:`decorator`::" -#: ../Doc/library/atexit.rst:114 +#: ../Doc/library/atexit.rst:127 msgid "This only works with functions that can be called without arguments." msgstr "Esto solo funciona con funciones que se pueden invocar sin argumentos." diff --git a/library/audioop.po b/library/audioop.po index a95a67ed29..2d5e123100 100644 --- a/library/audioop.po +++ b/library/audioop.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-21 16:07-0300\n" "Last-Translator: Sofía Denner \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/audioop.rst:2 msgid ":mod:`audioop` --- Manipulate raw audio data" @@ -444,3 +443,19 @@ msgstr "" "razonablemente rápida para hacerlo es coger la pieza más energética de la " "muestra de la salida, localizarla en la muestra de la entrada y substraer la " "muestra de la salida completa de la muestra de entrada::" + +#: ../Doc/library/audioop.rst:24 +msgid "Intel/DVI ADPCM" +msgstr "" + +#: ../Doc/library/audioop.rst:24 +msgid "ADPCM, Intel/DVI" +msgstr "" + +#: ../Doc/library/audioop.rst:24 +msgid "a-LAW" +msgstr "" + +#: ../Doc/library/audioop.rst:24 +msgid "u-LAW" +msgstr "" diff --git a/library/audit_events.po b/library/audit_events.po index cfa9e08bdf..b0bf32273b 100644 --- a/library/audit_events.po +++ b/library/audit_events.po @@ -8,16 +8,16 @@ msgid "" msgstr "" "Project-Id-Version: Python en Español 3.7\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-16 21:42+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-07 10:33+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: es \n" "Language: es\n" +"Language-Team: es \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" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" -"Generated-By: Babel 2.9.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/audit_events.rst:6 msgid "Audit events table" @@ -132,3 +132,8 @@ msgstr "ctypes.PyObj_FromPtr" #: ../Doc/library/audit_events.rst:46 msgid "``obj``" msgstr "``obj``" + +#: ../Doc/library/audit_events.rst:3 +#, fuzzy +msgid "audit events" +msgstr "Evento de auditoría" diff --git a/library/base64.po b/library/base64.po index 3c2f91f3d6..7ff985a96d 100644 --- a/library/base64.po +++ b/library/base64.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-01-25 08:34+0800\n" "Last-Translator: Rodrigo Tobar \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.1.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/base64.rst:2 msgid ":mod:`base64` --- Base16, Base32, Base64, Base85 Data Encodings" @@ -121,12 +120,13 @@ msgstr "" "utilizando Base64 y retorna los :class:`bytes` codificados." #: ../Doc/library/base64.rst:56 +#, fuzzy msgid "" -"Optional *altchars* must be a :term:`bytes-like object` of at least length 2 " -"(additional characters are ignored) which specifies an alternative alphabet " -"for the ``+`` and ``/`` characters. This allows an application to e.g. " -"generate URL or filesystem safe Base64 strings. The default is ``None``, " -"for which the standard Base64 alphabet is used." +"Optional *altchars* must be a :term:`bytes-like object` of length 2 which " +"specifies an alternative alphabet for the ``+`` and ``/`` characters. This " +"allows an application to e.g. generate URL or filesystem safe Base64 " +"strings. The default is ``None``, for which the standard Base64 alphabet is " +"used." msgstr "" "Los *altchars* opcionales deben ser un :term:`objeto similar a bytes ` de al menos longitud 2 (se ignoran los caracteres adicionales) " @@ -136,7 +136,14 @@ msgstr "" "predeterminado es ``None``, para el que se utiliza el alfabeto estándar " "Base64." -#: ../Doc/library/base64.rst:65 +#: ../Doc/library/base64.rst:61 +msgid "" +"May assert or raise a :exc:`ValueError` if the length of *altchars* is not " +"2. Raises a :exc:`TypeError` if *altchars* is not a :term:`bytes-like " +"object`." +msgstr "" + +#: ../Doc/library/base64.rst:67 msgid "" "Decode the Base64 encoded :term:`bytes-like object` or ASCII string *s* and " "return the decoded :class:`bytes`." @@ -145,25 +152,26 @@ msgstr "" "en Base64 o cadena de caracteres ASCII *s* y retorna los :class:`bytes` " "decodificados." -#: ../Doc/library/base64.rst:68 +#: ../Doc/library/base64.rst:70 +#, fuzzy msgid "" "Optional *altchars* must be a :term:`bytes-like object` or ASCII string of " -"at least length 2 (additional characters are ignored) which specifies the " -"alternative alphabet used instead of the ``+`` and ``/`` characters." +"length 2 which specifies the alternative alphabet used instead of the ``+`` " +"and ``/`` characters." msgstr "" "Los *altchars* opcionales deben ser :term:`objetos similares a byte ` o cadena de caracteres ASCII de al menos longitud 2 (se " "ignoran los caracteres adicionales) que especifica el alfabeto alternativo " "utilizado en lugar de los caracteres ``+`` y ``/``." -#: ../Doc/library/base64.rst:72 +#: ../Doc/library/base64.rst:74 msgid "" "A :exc:`binascii.Error` exception is raised if *s* is incorrectly padded." msgstr "" "Una excepción :exc:`binascii.Error` se lanza si *s* está incorrectamente " "rellenado (*padded*)." -#: ../Doc/library/base64.rst:75 +#: ../Doc/library/base64.rst:77 msgid "" "If *validate* is ``False`` (the default), characters that are neither in the " "normal base-64 alphabet nor the alternative alphabet are discarded prior to " @@ -176,7 +184,7 @@ msgstr "" "estos caracteres no alfabéticos en la entrada dan como resultado :exc:" "`binascii.Error`." -#: ../Doc/library/base64.rst:81 +#: ../Doc/library/base64.rst:83 msgid "" "For more information about the strict base64 check, see :func:`binascii." "a2b_base64`" @@ -184,7 +192,12 @@ msgstr "" "Para más información sobre la verificación estricta de base64, véase :func:" "`binascii.a2b_base64`" -#: ../Doc/library/base64.rst:86 +#: ../Doc/library/base64.rst:85 +msgid "" +"May assert or raise a :exc:`ValueError` if the length of *altchars* is not 2." +msgstr "" + +#: ../Doc/library/base64.rst:89 msgid "" "Encode :term:`bytes-like object` *s* using the standard Base64 alphabet and " "return the encoded :class:`bytes`." @@ -192,7 +205,7 @@ msgstr "" "Codifica el :term:`objeto similar a bytes ` *s* usando el " "alfabeto estándar Base64 y retorna los :class:`bytes` codificados." -#: ../Doc/library/base64.rst:92 +#: ../Doc/library/base64.rst:95 msgid "" "Decode :term:`bytes-like object` or ASCII string *s* using the standard " "Base64 alphabet and return the decoded :class:`bytes`." @@ -201,7 +214,7 @@ msgstr "" "utilizando el alfabeto estándar Base64 y retorna los :class:`bytes` " "decodificados." -#: ../Doc/library/base64.rst:98 +#: ../Doc/library/base64.rst:101 msgid "" "Encode :term:`bytes-like object` *s* using the URL- and filesystem-safe " "alphabet, which substitutes ``-`` instead of ``+`` and ``_`` instead of ``/" @@ -214,7 +227,7 @@ msgstr "" "y retorna los :class:`bytes` codificados. El resultado aún puede contener " "``=``." -#: ../Doc/library/base64.rst:107 +#: ../Doc/library/base64.rst:110 msgid "" "Decode :term:`bytes-like object` or ASCII string *s* using the URL- and " "filesystem-safe alphabet, which substitutes ``-`` instead of ``+`` and ``_`` " @@ -226,7 +239,7 @@ msgstr "" "archivos, que sustituye ``-`` en lugar de ``+`` y ``_`` en lugar de ``/`` en " "el alfabeto estándar de Base64, y retorna los :class:`bytes` decodificados." -#: ../Doc/library/base64.rst:116 +#: ../Doc/library/base64.rst:119 msgid "" "Encode the :term:`bytes-like object` *s* using Base32 and return the " "encoded :class:`bytes`." @@ -234,7 +247,7 @@ msgstr "" "Codifica el :term:`objeto similar a bytes ` *s* " "utilizando Base32 y retorna los :class:`bytes` codificados." -#: ../Doc/library/base64.rst:122 +#: ../Doc/library/base64.rst:125 msgid "" "Decode the Base32 encoded :term:`bytes-like object` or ASCII string *s* and " "return the decoded :class:`bytes`." @@ -243,7 +256,7 @@ msgstr "" "en Base32 o cadena de caracteres ASCII *s* y retorna los :class:`bytes` " "decodificados." -#: ../Doc/library/base64.rst:125 ../Doc/library/base64.rst:173 +#: ../Doc/library/base64.rst:128 ../Doc/library/base64.rst:176 msgid "" "Optional *casefold* is a flag specifying whether a lowercase alphabet is " "acceptable as input. For security purposes, the default is ``False``." @@ -252,7 +265,7 @@ msgstr "" "es aceptable como entrada. Por motivos de seguridad, el valor predeterminado " "es ``Falso``." -#: ../Doc/library/base64.rst:129 +#: ../Doc/library/base64.rst:132 msgid "" ":rfc:`4648` allows for optional mapping of the digit 0 (zero) to the letter " "O (oh), and for optional mapping of the digit 1 (one) to either the letter I " @@ -270,7 +283,7 @@ msgstr "" "seguridad, el valor predeterminado es ``None``, por lo que 0 y 1 no están " "permitidos en la entrada." -#: ../Doc/library/base64.rst:136 ../Doc/library/base64.rst:177 +#: ../Doc/library/base64.rst:139 ../Doc/library/base64.rst:180 msgid "" "A :exc:`binascii.Error` is raised if *s* is incorrectly padded or if there " "are non-alphabet characters present in the input." @@ -278,7 +291,7 @@ msgstr "" "Una :exc:`binascii.Error` se lanza si *s* está incorrectamente rellenado " "(*padded*) o si hay caracteres no alfabéticos presentes en la entrada." -#: ../Doc/library/base64.rst:143 +#: ../Doc/library/base64.rst:146 msgid "" "Similar to :func:`b32encode` but uses the Extended Hex Alphabet, as defined " "in :rfc:`4648`." @@ -286,7 +299,7 @@ msgstr "" "Similar a :func:`b32encode` pero usa el Alfabeto Hexagonal Extendido, como " "se define en :rfc:`4648`." -#: ../Doc/library/base64.rst:151 +#: ../Doc/library/base64.rst:154 msgid "" "Similar to :func:`b32decode` but uses the Extended Hex Alphabet, as defined " "in :rfc:`4648`." @@ -294,7 +307,7 @@ msgstr "" "Similar a :func:`b32decode` pero usa el Alfabeto Hexagonal Extendido, como " "se define en :rfc:`4648`." -#: ../Doc/library/base64.rst:154 +#: ../Doc/library/base64.rst:157 msgid "" "This version does not allow the digit 0 (zero) to the letter O (oh) and " "digit 1 (one) to either the letter I (eye) or letter L (el) mappings, all " @@ -306,7 +319,7 @@ msgstr "" "caracteres están incluidos en el Alfabeto Hexagonal Extendido y no son " "intercambiables." -#: ../Doc/library/base64.rst:164 +#: ../Doc/library/base64.rst:167 msgid "" "Encode the :term:`bytes-like object` *s* using Base16 and return the " "encoded :class:`bytes`." @@ -314,7 +327,7 @@ msgstr "" "Codifica el :term:`objeto similar a bytes ` *s* " "utilizando Base16 y retorna los :class:`bytes` codificados." -#: ../Doc/library/base64.rst:170 +#: ../Doc/library/base64.rst:173 msgid "" "Decode the Base16 encoded :term:`bytes-like object` or ASCII string *s* and " "return the decoded :class:`bytes`." @@ -323,7 +336,7 @@ msgstr "" "en Base16 o cadena de caracteres ASCII *s* y retorna los :class:`bytes` " "decodificados." -#: ../Doc/library/base64.rst:184 +#: ../Doc/library/base64.rst:187 msgid "" "Encode the :term:`bytes-like object` *b* using Ascii85 and return the " "encoded :class:`bytes`." @@ -331,7 +344,7 @@ msgstr "" "Codifica el :term:`objeto similar a bytes ` *b* " "utilizando Ascii85 y retorna los :class:`bytes` codificados." -#: ../Doc/library/base64.rst:187 +#: ../Doc/library/base64.rst:190 msgid "" "*foldspaces* is an optional flag that uses the special short sequence 'y' " "instead of 4 consecutive spaces (ASCII 0x20) as supported by 'btoa'. This " @@ -341,7 +354,7 @@ msgstr "" "en lugar de 4 espacios consecutivos (ASCII 0x20) como lo admite 'btoa'. Esta " "característica no es compatible con la codificación Ascii85 \"estándar\"." -#: ../Doc/library/base64.rst:191 +#: ../Doc/library/base64.rst:194 msgid "" "*wrapcol* controls whether the output should have newline (``b'\\n'``) " "characters added to it. If this is non-zero, each output line will be at " @@ -351,7 +364,7 @@ msgstr "" "(``b'\\n'``) agregados. Si esto no es cero, cada línea de salida tendrá como " "máximo esta cantidad de caracteres." -#: ../Doc/library/base64.rst:195 +#: ../Doc/library/base64.rst:198 msgid "" "*pad* controls whether the input is padded to a multiple of 4 before " "encoding. Note that the ``btoa`` implementation always pads." @@ -360,7 +373,7 @@ msgstr "" "de la codificación. Tenga en cuenta que la implementación de ``btoa`` " "siempre es rellenada (*pads*)." -#: ../Doc/library/base64.rst:198 +#: ../Doc/library/base64.rst:201 msgid "" "*adobe* controls whether the encoded byte sequence is framed with ``<~`` and " "``~>``, which is used by the Adobe implementation." @@ -368,7 +381,7 @@ msgstr "" "*adobe* controla si la secuencia de bytes codificada está enmarcada con " "``<~`` y ``~>``, que es utilizada por la implementación de Adobe." -#: ../Doc/library/base64.rst:206 +#: ../Doc/library/base64.rst:209 msgid "" "Decode the Ascii85 encoded :term:`bytes-like object` or ASCII string *b* and " "return the decoded :class:`bytes`." @@ -377,7 +390,7 @@ msgstr "" "en Ascii85 o cadena de caracteres ASCII *b* y retorna los :class:`bytes` " "decodificados." -#: ../Doc/library/base64.rst:209 +#: ../Doc/library/base64.rst:212 msgid "" "*foldspaces* is a flag that specifies whether the 'y' short sequence should " "be accepted as shorthand for 4 consecutive spaces (ASCII 0x20). This feature " @@ -388,7 +401,7 @@ msgstr "" "Esta característica no es compatible con la codificación Ascii85 " "\"estándar\"." -#: ../Doc/library/base64.rst:213 +#: ../Doc/library/base64.rst:216 msgid "" "*adobe* controls whether the input sequence is in Adobe Ascii85 format (i.e. " "is framed with <~ and ~>)." @@ -396,7 +409,7 @@ msgstr "" "*adobe* controla si la secuencia de entrada está en formato Adobe Ascii85 " "(es decir, se enmarca con <~ y ~>)." -#: ../Doc/library/base64.rst:216 +#: ../Doc/library/base64.rst:219 msgid "" "*ignorechars* should be a :term:`bytes-like object` or ASCII string " "containing characters to ignore from the input. This should only contain " @@ -408,7 +421,7 @@ msgstr "" "entrada. Esto solo debe contener caracteres de espacio en blanco, y por " "defecto contiene todos los caracteres de espacio en blanco en ASCII." -#: ../Doc/library/base64.rst:226 +#: ../Doc/library/base64.rst:229 msgid "" "Encode the :term:`bytes-like object` *b* using base85 (as used in e.g. git-" "style binary diffs) and return the encoded :class:`bytes`." @@ -417,7 +430,7 @@ msgstr "" "utilizando base85 (como se usa en por ejemplo, diferencias binarias de " "estilo git) y retorna los :class:`bytes` codificados." -#: ../Doc/library/base64.rst:229 +#: ../Doc/library/base64.rst:232 msgid "" "If *pad* is true, the input is padded with ``b'\\0'`` so its length is a " "multiple of 4 bytes before encoding." @@ -425,7 +438,7 @@ msgstr "" "Si *pad* es verdadero, la entrada se rellena con ``b'\\0'``, por lo que su " "longitud es un múltiplo de 4 bytes antes de la codificación." -#: ../Doc/library/base64.rst:237 +#: ../Doc/library/base64.rst:240 msgid "" "Decode the base85-encoded :term:`bytes-like object` or ASCII string *b* and " "return the decoded :class:`bytes`. Padding is implicitly removed, if " @@ -435,11 +448,11 @@ msgstr "" "en base85 o cadena de caracteres ASCII *b* y retorna los :class:`bytes` " "decodificados. El relleno se elimina implícitamente, si es necesario." -#: ../Doc/library/base64.rst:244 +#: ../Doc/library/base64.rst:247 msgid "The legacy interface:" msgstr "La interfaz antigua:" -#: ../Doc/library/base64.rst:248 +#: ../Doc/library/base64.rst:251 msgid "" "Decode the contents of the binary *input* file and write the resulting " "binary data to the *output* file. *input* and *output* must be :term:`file " @@ -451,7 +464,7 @@ msgstr "" "term:`objetos archivo `. *input* se leerá hasta que ``input." "readline()`` retorne un objeto de bytes vacío." -#: ../Doc/library/base64.rst:256 +#: ../Doc/library/base64.rst:259 msgid "" "Decode the :term:`bytes-like object` *s*, which must contain one or more " "lines of base64 encoded data, and return the decoded :class:`bytes`." @@ -460,7 +473,7 @@ msgstr "" "debe contener una o más líneas de datos codificados en base64, y retornará " "los :class:`bytes` decodificados." -#: ../Doc/library/base64.rst:264 +#: ../Doc/library/base64.rst:267 msgid "" "Encode the contents of the binary *input* file and write the resulting " "base64 encoded data to the *output* file. *input* and *output* must be :term:" @@ -477,7 +490,7 @@ msgstr "" "además de garantizar que la salida siempre termine con una nueva línea, " "según :rfc:`2045` (MIME)." -#: ../Doc/library/base64.rst:274 +#: ../Doc/library/base64.rst:277 msgid "" "Encode the :term:`bytes-like object` *s*, which can contain arbitrary binary " "data, and return :class:`bytes` containing the base64-encoded data, with " @@ -490,15 +503,15 @@ msgstr "" "insertado después de cada 76 bytes de salida, y asegurando que haya una " "nueva línea final, según :rfc:`2045` (MIME)." -#: ../Doc/library/base64.rst:282 +#: ../Doc/library/base64.rst:285 msgid "An example usage of the module:" msgstr "Un ejemplo de uso del módulo:" -#: ../Doc/library/base64.rst:295 +#: ../Doc/library/base64.rst:298 msgid "Security Considerations" msgstr "Consideraciones de Seguridad" -#: ../Doc/library/base64.rst:297 +#: ../Doc/library/base64.rst:300 msgid "" "A new security considerations section was added to :rfc:`4648` (section 12); " "it's recommended to review the security section for any code deployed to " @@ -508,18 +521,18 @@ msgstr "" "(sección 12); se recomienda revisar la sección de seguridad para cualquier " "código implementado en producción." -#: ../Doc/library/base64.rst:303 +#: ../Doc/library/base64.rst:306 msgid "Module :mod:`binascii`" msgstr "Módulo :mod:`binascii`" -#: ../Doc/library/base64.rst:303 +#: ../Doc/library/base64.rst:306 msgid "" "Support module containing ASCII-to-binary and binary-to-ASCII conversions." msgstr "" "Módulo de soporte que contiene conversiones de ASCII a binario y binario a " "ASCII." -#: ../Doc/library/base64.rst:306 +#: ../Doc/library/base64.rst:309 msgid "" ":rfc:`1521` - MIME (Multipurpose Internet Mail Extensions) Part One: " "Mechanisms for Specifying and Describing the Format of Internet Message " @@ -529,10 +542,26 @@ msgstr "" "uno: Mecanismos para especificar y describir el formato de los cuerpos de " "mensajes de Internet" -#: ../Doc/library/base64.rst:306 +#: ../Doc/library/base64.rst:309 msgid "" "Section 5.2, \"Base64 Content-Transfer-Encoding,\" provides the definition " "of the base64 encoding." msgstr "" "La Sección 5.2, \"Codificación de transferencia de contenido Base64\", " "proporciona la definición de la codificación base64." + +#: ../Doc/library/base64.rst:10 +msgid "base64" +msgstr "" + +#: ../Doc/library/base64.rst:10 +msgid "encoding" +msgstr "" + +#: ../Doc/library/base64.rst:10 +msgid "MIME" +msgstr "" + +#: ../Doc/library/base64.rst:10 +msgid "base64 encoding" +msgstr "" diff --git a/library/binascii.po b/library/binascii.po index 44fcf21fce..8359ddcf4e 100644 --- a/library/binascii.po +++ b/library/binascii.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-28 17:49-0500\n" "Last-Translator: José Luis Salgado Banda\n" -"Language-Team: python-doc-es\n" "Language: es_CO\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/binascii.rst:2 msgid ":mod:`binascii` --- Convert between binary and ASCII" @@ -316,3 +315,16 @@ msgid "Support for quoted-printable encoding used in MIME email messages." msgstr "" "Soporte para codificación imprimible entre comillas utilizada en mensajes de " "correo electrónico MIME." + +#: ../Doc/library/binascii.rst:8 +msgid "module" +msgstr "" + +#: ../Doc/library/binascii.rst:8 +msgid "uu" +msgstr "" + +#: ../Doc/library/binascii.rst:8 +#, fuzzy +msgid "base64" +msgstr "base64 válido:" diff --git a/library/bisect.po b/library/bisect.po index 2f16352202..23dc174e50 100644 --- a/library/bisect.po +++ b/library/bisect.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-04-03 15:39-0600\n" "Last-Translator: \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/bisect.rst:2 msgid ":mod:`bisect` --- Array bisection algorithm" @@ -31,14 +30,12 @@ msgid "**Source code:** :source:`Lib/bisect.py`" msgstr "**Código fuente:** :source:`Lib/bisect.py`" #: ../Doc/library/bisect.rst:14 +#, fuzzy msgid "" "This module provides support for maintaining a list in sorted order without " "having to sort the list after each insertion. For long lists of items with " -"expensive comparison operations, this can be an improvement over the more " -"common approach. The module is called :mod:`bisect` because it uses a basic " -"bisection algorithm to do its work. The source code may be most useful as a " -"working example of the algorithm (the boundary conditions are already " -"right!)." +"expensive comparison operations, this can be an improvement over linear " +"searches or frequent resorting." msgstr "" "Este módulo brinda soporte para mantener una lista ordenada sin tener que " "reordenar la lista tras cada nueva inserción. Para listas largas de " @@ -48,11 +45,22 @@ msgstr "" "código fuente puede ser útil como ejemplo del algoritmo en funcionamiento " "(¡las precondiciones ya están bien de antemano!)." -#: ../Doc/library/bisect.rst:21 +#: ../Doc/library/bisect.rst:19 +msgid "" +"The module is called :mod:`bisect` because it uses a basic bisection " +"algorithm to do its work. Unlike other bisection tools that search for a " +"specific value, the functions in this module are designed to locate an " +"insertion point. Accordingly, the functions never call an :meth:`__eq__` " +"method to determine whether a value has been found. Instead, the functions " +"only call the :meth:`__lt__` method and will return an insertion point " +"between values in an array." +msgstr "" + +#: ../Doc/library/bisect.rst:29 msgid "The following functions are provided:" msgstr "Las siguientes funciones están disponibles:" -#: ../Doc/library/bisect.rst:26 +#: ../Doc/library/bisect.rst:34 msgid "" "Locate the insertion point for *x* in *a* to maintain sorted order. The " "parameters *lo* and *hi* may be used to specify a subset of the list which " @@ -69,17 +77,19 @@ msgstr "" "existente. El valor de retorno es adecuado para que se utilice como primer " "parámetro para ``list.insert()``, suponiendo que *a* ya está ordenada." -#: ../Doc/library/bisect.rst:33 +#: ../Doc/library/bisect.rst:41 +#, fuzzy msgid "" -"The returned insertion point *i* partitions the array *a* into two halves so " -"that ``all(val < x for val in a[lo : i])`` for the left side and ``all(val " -">= x for val in a[i : hi])`` for the right side." +"The returned insertion point *ip* partitions the array *a* into two slices " +"such that ``all(elem < x for elem in a[lo : ip])`` is true for the left " +"slice and ``all(elem >= x for elem in a[ip : hi])`` is true for the right " +"slice." msgstr "" "El punto de inserción retornado *i* divide el arreglo *a* en dos mitades, de " "modo que ``all(val < x for val in a[lo : i])`` para el lado izquierdo y " "``all(val >= x for val in a[i : hi])`` para el lado derecho." -#: ../Doc/library/bisect.rst:37 ../Doc/library/bisect.rst:58 +#: ../Doc/library/bisect.rst:46 msgid "" "*key* specifies a :term:`key function` of one argument that is used to " "extract a comparison key from each element in the array. To support " @@ -89,52 +99,57 @@ msgstr "" "extraer una clave de comparación de cada elemento en el arreglo. La función " "clave no se aplica a *x* para facilitar la búsqueda de registros complejos." -#: ../Doc/library/bisect.rst:41 ../Doc/library/bisect.rst:62 +#: ../Doc/library/bisect.rst:50 +#, fuzzy msgid "" -"If *key* is ``None``, the elements are compared directly with no intervening " -"function call." +"If *key* is ``None``, the elements are compared directly and no key function " +"is called." msgstr "" "Si *key* es ``None``, los elementos son comparados directamente sin " "intervención de una función." -#: ../Doc/library/bisect.rst:44 ../Doc/library/bisect.rst:65 -#: ../Doc/library/bisect.rst:83 ../Doc/library/bisect.rst:103 +#: ../Doc/library/bisect.rst:53 ../Doc/library/bisect.rst:67 +#: ../Doc/library/bisect.rst:85 ../Doc/library/bisect.rst:105 msgid "Added the *key* parameter." msgstr "Se agregó el parámetro *key*." -#: ../Doc/library/bisect.rst:51 +#: ../Doc/library/bisect.rst:60 +#, fuzzy msgid "" -"Similar to :func:`bisect_left`, but returns an insertion point which comes " -"after (to the right of) any existing entries of *x* in *a*." +"Similar to :py:func:`~bisect.bisect_left`, but returns an insertion point " +"which comes after (to the right of) any existing entries of *x* in *a*." msgstr "" "Similar a :func:`bisect_left`, pero retorna un punto de inserción que viene " "después (a la derecha de) cualquier entrada de *x* en *a*." -#: ../Doc/library/bisect.rst:54 +#: ../Doc/library/bisect.rst:63 +#, fuzzy msgid "" -"The returned insertion point *i* partitions the array *a* into two halves so " -"that ``all(val <= x for val in a[lo : i])`` for the left side and ``all(val " -"> x for val in a[i : hi])`` for the right side." +"The returned insertion point *ip* partitions the array *a* into two slices " +"such that ``all(elem <= x for elem in a[lo : ip])`` is true for the left " +"slice and ``all(elem > x for elem in a[ip : hi])`` is true for the right " +"slice." msgstr "" "El punto de inserción retornado *i* divide el arreglo *a* en dos mitades, de " "modo que ``all(val <= x for val in a[lo : i])`` para el lado izquierdo y " "``all(val > x for val in a[i : hi])`` para el lado derecho." -#: ../Doc/library/bisect.rst:71 +#: ../Doc/library/bisect.rst:73 msgid "Insert *x* in *a* in sorted order." msgstr "Inserte *x* en *a* en orden ordenado." -#: ../Doc/library/bisect.rst:73 +#: ../Doc/library/bisect.rst:75 +#, fuzzy msgid "" -"This function first runs :func:`bisect_left` to locate an insertion point. " -"Next, it runs the :meth:`insert` method on *a* to insert *x* at the " -"appropriate position to maintain sort order." +"This function first runs :py:func:`~bisect.bisect_left` to locate an " +"insertion point. Next, it runs the :meth:`insert` method on *a* to insert " +"*x* at the appropriate position to maintain sort order." msgstr "" "Esta función primero ejecuta :func:`bisect_left` para localizar un punto de " "inserción. A continuación, ejecuta el método :meth:`insert` en *a* para " "insertar *x* en la posición adecuada para mantener el orden de clasificación." -#: ../Doc/library/bisect.rst:77 ../Doc/library/bisect.rst:97 +#: ../Doc/library/bisect.rst:79 ../Doc/library/bisect.rst:99 msgid "" "To support inserting records in a table, the *key* function (if any) is " "applied to *x* for the search step but not for the insertion step." @@ -143,7 +158,7 @@ msgstr "" "caso de existir) se aplica a *x* en el paso de búsqueda pero no en el paso " "de inserción." -#: ../Doc/library/bisect.rst:80 ../Doc/library/bisect.rst:100 +#: ../Doc/library/bisect.rst:82 ../Doc/library/bisect.rst:102 msgid "" "Keep in mind that the ``O(log n)`` search is dominated by the slow O(n) " "insertion step." @@ -151,29 +166,31 @@ msgstr "" "Tenga en cuenta que la búsqueda ``O(log n)`` está dominada por el lento paso " "de inserción O (n)." -#: ../Doc/library/bisect.rst:90 +#: ../Doc/library/bisect.rst:92 +#, fuzzy msgid "" -"Similar to :func:`insort_left`, but inserting *x* in *a* after any existing " -"entries of *x*." +"Similar to :py:func:`~bisect.insort_left`, but inserting *x* in *a* after " +"any existing entries of *x*." msgstr "" "Similar a :func:`insort_left`, pero inserta *x* en *a* después de cualquier " "entrada *x* existente." -#: ../Doc/library/bisect.rst:93 +#: ../Doc/library/bisect.rst:95 +#, fuzzy msgid "" -"This function first runs :func:`bisect_right` to locate an insertion point. " -"Next, it runs the :meth:`insert` method on *a* to insert *x* at the " -"appropriate position to maintain sort order." +"This function first runs :py:func:`~bisect.bisect_right` to locate an " +"insertion point. Next, it runs the :meth:`insert` method on *a* to insert " +"*x* at the appropriate position to maintain sort order." msgstr "" "Esta función primero ejecuta :func:`bisect_right` para localizar un punto de " "inserción. A continuación, ejecuta el método :meth:`insert` en *a* para " "insertar *x* en la posición adecuada para mantener el orden de clasificación." -#: ../Doc/library/bisect.rst:108 +#: ../Doc/library/bisect.rst:110 msgid "Performance Notes" msgstr "Notas de rendimiento" -#: ../Doc/library/bisect.rst:110 +#: ../Doc/library/bisect.rst:112 msgid "" "When writing time sensitive code using *bisect()* and *insort()*, keep these " "thoughts in mind:" @@ -181,7 +198,7 @@ msgstr "" "Al escribir código sensible al tiempo usando *bisect()* y *insort()*, tenga " "en cuenta estos pensamientos:" -#: ../Doc/library/bisect.rst:113 +#: ../Doc/library/bisect.rst:115 msgid "" "Bisection is effective for searching ranges of values. For locating specific " "values, dictionaries are more performant." @@ -189,7 +206,7 @@ msgstr "" "La bisección es eficaz para buscar rangos de valores. Para localizar valores " "específicos, los diccionarios son más eficaces." -#: ../Doc/library/bisect.rst:116 +#: ../Doc/library/bisect.rst:118 msgid "" "The *insort()* functions are ``O(n)`` because the logarithmic search step is " "dominated by the linear time insertion step." @@ -197,15 +214,16 @@ msgstr "" "Las funciones *insort()* son ``O(n)`` porque el paso de búsqueda logarítmica " "está dominado por el paso de inserción de tiempo lineal." -#: ../Doc/library/bisect.rst:119 +#: ../Doc/library/bisect.rst:121 +#, fuzzy msgid "" "The search functions are stateless and discard key function results after " "they are used. Consequently, if the search functions are used in a loop, " "the key function may be called again and again on the same array elements. " -"If the key function isn't fast, consider wrapping it with :func:`functools." -"cache` to avoid duplicate computations. Alternatively, consider searching " -"an array of precomputed keys to locate the insertion point (as shown in the " -"examples section below)." +"If the key function isn't fast, consider wrapping it with :py:func:" +"`functools.cache` to avoid duplicate computations. Alternatively, consider " +"searching an array of precomputed keys to locate the insertion point (as " +"shown in the examples section below)." msgstr "" "Las funciones de búsqueda no tienen estado y descartan los resultados de las " "funciones clave después de su uso. En consecuencia, si las funciones de " @@ -216,7 +234,7 @@ msgstr "" "precalculadas para ubicar el punto de inserción (como se muestra en la " "sección de ejemplos a continuación)." -#: ../Doc/library/bisect.rst:129 +#: ../Doc/library/bisect.rst:131 msgid "" "`Sorted Collections `_ is a " "high performance module that uses *bisect* to managed sorted collections of " @@ -226,7 +244,7 @@ msgstr "" "módulo de alto rendimiento que utiliza *bisect* para gestionar colecciones " "de datos ordenadas." -#: ../Doc/library/bisect.rst:133 +#: ../Doc/library/bisect.rst:135 msgid "" "The `SortedCollection recipe `_ uses bisect to build a full-featured collection class " @@ -240,49 +258,52 @@ msgstr "" "función clave. Las claves se calculan previamente para ahorrar llamadas " "innecesarias a la función clave durante las búsquedas." -#: ../Doc/library/bisect.rst:141 +#: ../Doc/library/bisect.rst:143 msgid "Searching Sorted Lists" msgstr "Búsqueda en listas ordenadas" -#: ../Doc/library/bisect.rst:143 +#: ../Doc/library/bisect.rst:145 +#, fuzzy msgid "" -"The above :func:`bisect` functions are useful for finding insertion points " -"but can be tricky or awkward to use for common searching tasks. The " -"following five functions show how to transform them into the standard " -"lookups for sorted lists::" +"The above `bisect functions`_ are useful for finding insertion points but " +"can be tricky or awkward to use for common searching tasks. The following " +"five functions show how to transform them into the standard lookups for " +"sorted lists::" msgstr "" "Las funciones anteriores :func:`bisect` son útiles para encontrar puntos de " "inserción, pero pueden resultar difíciles o engorrosas para tareas de " "búsqueda habituales. Las cinco funciones que siguen muestran cómo " "convertirlas en búsquedas estándar para listas ordenadas::" -#: ../Doc/library/bisect.rst:185 +#: ../Doc/library/bisect.rst:187 msgid "Examples" msgstr "Ejemplos" -#: ../Doc/library/bisect.rst:189 +#: ../Doc/library/bisect.rst:191 +#, fuzzy msgid "" -"The :func:`bisect` function can be useful for numeric table lookups. This " -"example uses :func:`bisect` to look up a letter grade for an exam score " -"(say) based on a set of ordered numeric breakpoints: 90 and up is an 'A', 80 " -"to 89 is a 'B', and so on::" +"The :py:func:`~bisect.bisect` function can be useful for numeric table " +"lookups. This example uses :py:func:`~bisect.bisect` to look up a letter " +"grade for an exam score (say) based on a set of ordered numeric breakpoints: " +"90 and up is an 'A', 80 to 89 is a 'B', and so on::" msgstr "" "La función :func:`bisect` puede ser útil para búsquedas en tablas numéricas. " "Este ejemplo utiliza :func:`bisect` para buscar una calificación de un " "examen dada por una letra, basada en un conjunto de marcas numéricas " "ordenadas: 90 o más es una 'A', de 80 a 89 es una 'B', y así sucesivamente::" -#: ../Doc/library/bisect.rst:201 +#: ../Doc/library/bisect.rst:203 +#, fuzzy msgid "" -"The :func:`bisect` and :func:`insort` functions also work with lists of " -"tuples. The *key* argument can serve to extract the field used for ordering " -"records in a table::" +"The :py:func:`~bisect.bisect` and :py:func:`~bisect.insort` functions also " +"work with lists of tuples. The *key* argument can serve to extract the " +"field used for ordering records in a table::" msgstr "" "Las funciones :func:`bisect` e :func:`insort` también funcionan con listas " "de tuplas. El argumento *key* puede usarse para extraer el campo usado para " "ordenar registros en una tabla::" -#: ../Doc/library/bisect.rst:235 +#: ../Doc/library/bisect.rst:237 msgid "" "If the key function is expensive, it is possible to avoid repeated function " "calls by searching a list of precomputed keys to find the index of a record::" diff --git a/library/bz2.po b/library/bz2.po index 3df54970b2..c8bad48b12 100644 --- a/library/bz2.po +++ b/library/bz2.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-12-13 11:34+0800\n" "Last-Translator: Rodrigo Tobar \n" "Language: en_GB\n" @@ -20,7 +20,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/bz2.rst:2 msgid ":mod:`bz2` --- Support for :program:`bzip2` compression" @@ -129,11 +129,11 @@ msgstr "" "una instancia :class:`io.TextIOWrapper` con la codificación especificada, el " "comportamiento de manejo de errores y los final(es) de línea." -#: ../Doc/library/bz2.rst:59 ../Doc/library/bz2.rst:124 +#: ../Doc/library/bz2.rst:59 ../Doc/library/bz2.rst:125 msgid "The ``'x'`` (exclusive creation) mode was added." msgstr "El modo ``'x'`` (creación exclusiva) ha sido agregado." -#: ../Doc/library/bz2.rst:62 ../Doc/library/bz2.rst:131 +#: ../Doc/library/bz2.rst:62 ../Doc/library/bz2.rst:132 msgid "Accepts a :term:`path-like object`." msgstr "Acepta un objeto similar a una ruta (:term:`path-like object`)." @@ -191,20 +191,21 @@ msgstr "" "múltiples flujos (streams) comprimidos." #: ../Doc/library/bz2.rst:89 +#, fuzzy msgid "" ":class:`BZ2File` provides all of the members specified by the :class:`io." -"BufferedIOBase`, except for :meth:`detach` and :meth:`truncate`. Iteration " -"and the :keyword:`with` statement are supported." +"BufferedIOBase`, except for :meth:`~io.BufferedIOBase.detach` and :meth:`~io." +"IOBase.truncate`. Iteration and the :keyword:`with` statement are supported." msgstr "" ":class:`BZ2File` proporciona todos los miembros especificados por :class:`io." "BufferedIOBase`, excepto :meth:`detach` y :meth:`truncate`. Se admite la " "iteración y la palabra clave :keyword:`with`." -#: ../Doc/library/bz2.rst:93 +#: ../Doc/library/bz2.rst:94 msgid ":class:`BZ2File` also provides the following method:" msgstr ":class:`BZ2File` también proporciona el siguiente método:" -#: ../Doc/library/bz2.rst:97 +#: ../Doc/library/bz2.rst:98 msgid "" "Return buffered data without advancing the file position. At least one byte " "of data will be returned (unless at EOF). The exact number of bytes returned " @@ -214,7 +215,7 @@ msgstr "" "Se retornará al menos un byte de datos (a menos que sea EOF). El número " "exacto de bytes retornados no está especificado." -#: ../Doc/library/bz2.rst:101 +#: ../Doc/library/bz2.rst:102 msgid "" "While calling :meth:`peek` does not change the file position of the :class:" "`BZ2File`, it may change the position of the underlying file object (e.g. if " @@ -226,11 +227,11 @@ msgstr "" "ejemplo, si :class:`BZ2File` se construyó pasando un objeto de archivo a " "*filename*)." -#: ../Doc/library/bz2.rst:109 +#: ../Doc/library/bz2.rst:110 msgid "Support for the :keyword:`with` statement was added." msgstr "Se agregó soporte para la declaración :keyword:`with`." -#: ../Doc/library/bz2.rst:112 +#: ../Doc/library/bz2.rst:113 msgid "" "The :meth:`fileno`, :meth:`readable`, :meth:`seekable`, :meth:`writable`, :" "meth:`read1` and :meth:`readinto` methods were added." @@ -238,7 +239,7 @@ msgstr "" "Se agregaron los métodos :meth:`fileno`, :meth:`legible`, :meth:`seekable`, :" "meth:`writable`, :meth:`read1` y :meth:`readinto`." -#: ../Doc/library/bz2.rst:116 +#: ../Doc/library/bz2.rst:117 msgid "" "Support was added for *filename* being a :term:`file object` instead of an " "actual filename." @@ -246,7 +247,7 @@ msgstr "" "Se agregó soporte para *filename* siendo un objeto de archivo (:term:`file " "object`) en lugar de un nombre de archivo real." -#: ../Doc/library/bz2.rst:120 +#: ../Doc/library/bz2.rst:121 msgid "" "The ``'a'`` (append) mode was added, along with support for reading multi-" "stream files." @@ -254,14 +255,14 @@ msgstr "" "Se agregó el modo ``'a'`` (agregar), junto con el soporte para leer archivos " "de flujo múltiple (multi-stream)." -#: ../Doc/library/bz2.rst:127 +#: ../Doc/library/bz2.rst:128 msgid "" "The :meth:`~io.BufferedIOBase.read` method now accepts an argument of " "``None``." msgstr "" "El método :meth:`~io.BufferedIOBase.read` ahora acepta el argumento ``None``." -#: ../Doc/library/bz2.rst:134 +#: ../Doc/library/bz2.rst:135 msgid "" "The *buffering* parameter has been removed. It was ignored and deprecated " "since Python 3.0. Pass an open file object to control how the file is opened." @@ -270,13 +271,13 @@ msgstr "" "estaba obsoleto. Pasa un objeto archivo abierto para controlar cómo el " "archivo es abierto." -#: ../Doc/library/bz2.rst:139 +#: ../Doc/library/bz2.rst:140 msgid "The *compresslevel* parameter became keyword-only." msgstr "" "El parámetro *compresslevel* se convirtió en un argumento sólo por palabra " "clave." -#: ../Doc/library/bz2.rst:141 +#: ../Doc/library/bz2.rst:142 msgid "" "This class is thread unsafe in the face of multiple simultaneous readers or " "writers, just like its equivalent classes in :mod:`gzip` and :mod:`lzma` " @@ -286,11 +287,11 @@ msgstr "" "igual que sus clases equivalentes en :mod:`gzip` y :mod:`lzma` siempre lo " "han sido." -#: ../Doc/library/bz2.rst:148 +#: ../Doc/library/bz2.rst:149 msgid "Incremental (de)compression" msgstr "(De)compresión incremental" -#: ../Doc/library/bz2.rst:152 +#: ../Doc/library/bz2.rst:153 msgid "" "Create a new compressor object. This object may be used to compress data " "incrementally. For one-shot compression, use the :func:`compress` function " @@ -300,7 +301,7 @@ msgstr "" "datos de forma incremental. Para comprimir en un solo paso, use la función :" "func:`compress` en su lugar." -#: ../Doc/library/bz2.rst:156 ../Doc/library/bz2.rst:244 +#: ../Doc/library/bz2.rst:157 ../Doc/library/bz2.rst:245 msgid "" "*compresslevel*, if given, must be an integer between ``1`` and ``9``. The " "default is ``9``." @@ -308,7 +309,7 @@ msgstr "" "*compresslevel*, si se proporciona, debe ser un número entero entre ``1`` y " "``9``. El valor predeterminado es ``9``." -#: ../Doc/library/bz2.rst:161 +#: ../Doc/library/bz2.rst:162 msgid "" "Provide data to the compressor object. Returns a chunk of compressed data if " "possible, or an empty byte string otherwise." @@ -316,7 +317,7 @@ msgstr "" "Provee datos al objeto del compresor. Retorna un fragmento de datos " "comprimidos si es posible, o una cadena de bytes vacía de lo contrario." -#: ../Doc/library/bz2.rst:164 +#: ../Doc/library/bz2.rst:165 msgid "" "When you have finished providing data to the compressor, call the :meth:" "`flush` method to finish the compression process." @@ -324,7 +325,7 @@ msgstr "" "Cuando haya terminado de proporcionar datos al compresor, llame al método :" "meth:`flush` para finalizar el proceso de compresión." -#: ../Doc/library/bz2.rst:170 +#: ../Doc/library/bz2.rst:171 msgid "" "Finish the compression process. Returns the compressed data left in internal " "buffers." @@ -332,14 +333,14 @@ msgstr "" "Termina el proceso de compresión. Retorna los datos comprimidos que quedan " "en los búferes internos." -#: ../Doc/library/bz2.rst:173 +#: ../Doc/library/bz2.rst:174 msgid "" "The compressor object may not be used after this method has been called." msgstr "" "El objeto compresor no puede usarse después de que se haya llamado a este " "método." -#: ../Doc/library/bz2.rst:178 +#: ../Doc/library/bz2.rst:179 msgid "" "Create a new decompressor object. This object may be used to decompress data " "incrementally. For one-shot compression, use the :func:`decompress` function " @@ -349,7 +350,7 @@ msgstr "" "descomprimir datos de forma incremental. Para descomprimir en un solo paso, " "use la función :func:`decompress` en su lugar." -#: ../Doc/library/bz2.rst:183 +#: ../Doc/library/bz2.rst:184 msgid "" "This class does not transparently handle inputs containing multiple " "compressed streams, unlike :func:`decompress` and :class:`BZ2File`. If you " @@ -362,7 +363,7 @@ msgstr "" "class:`BZ2Decompressor`, debe usar un nuevo descompresor para cada flujo " "(stream)." -#: ../Doc/library/bz2.rst:190 +#: ../Doc/library/bz2.rst:191 msgid "" "Decompress *data* (a :term:`bytes-like object`), returning uncompressed data " "as bytes. Some of *data* may be buffered internally, for use in later calls " @@ -375,7 +376,7 @@ msgstr "" "retornados deben concatenarse con la salida de cualquier llamada anterior a :" "meth:`decompress`." -#: ../Doc/library/bz2.rst:196 +#: ../Doc/library/bz2.rst:197 msgid "" "If *max_length* is nonnegative, returns at most *max_length* bytes of " "decompressed data. If this limit is reached and further output can be " @@ -389,7 +390,7 @@ msgstr "" "En este caso, la siguiente llamada a :meth:`~.decompress` puede proporcionar " "*datos* como ``b''`` para obtener más de la salida." -#: ../Doc/library/bz2.rst:203 +#: ../Doc/library/bz2.rst:204 msgid "" "If all of the input data was decompressed and returned (either because this " "was less than *max_length* bytes, or because *max_length* was negative), " @@ -399,7 +400,7 @@ msgstr "" "esto era menor que *max_length* bytes, o porque *max_length* era negativo), " "el atributo :attr:`~.needs_input` se establecerá en ``True``." -#: ../Doc/library/bz2.rst:208 +#: ../Doc/library/bz2.rst:209 #, fuzzy msgid "" "Attempting to decompress data after the end of stream is reached raises an :" @@ -410,19 +411,19 @@ msgstr "" "transmisión genera un `EOFError`. Cualquier dato encontrado después del " "final del flujo se ignora y se guarda en el atributo :attr:`~.unused_data`." -#: ../Doc/library/bz2.rst:212 +#: ../Doc/library/bz2.rst:213 msgid "Added the *max_length* parameter." msgstr "Añadido el parámetro *max_length*." -#: ../Doc/library/bz2.rst:217 +#: ../Doc/library/bz2.rst:218 msgid "``True`` if the end-of-stream marker has been reached." msgstr "``True`` si se ha alcanzado el marcador de fin de flujo." -#: ../Doc/library/bz2.rst:224 +#: ../Doc/library/bz2.rst:225 msgid "Data found after the end of the compressed stream." msgstr "Datos encontrados después del final del flujo comprimido." -#: ../Doc/library/bz2.rst:226 +#: ../Doc/library/bz2.rst:227 msgid "" "If this attribute is accessed before the end of the stream has been reached, " "its value will be ``b''``." @@ -430,7 +431,7 @@ msgstr "" "Si se accede a este atributo antes de que se haya alcanzado el final del " "flujo, su valor será ``b''``." -#: ../Doc/library/bz2.rst:231 +#: ../Doc/library/bz2.rst:232 msgid "" "``False`` if the :meth:`.decompress` method can provide more decompressed " "data before requiring new uncompressed input." @@ -438,25 +439,25 @@ msgstr "" "``False`` si el método :meth:`.decompress` puede proporcionar más datos " "descomprimidos antes de requerir una nueva entrada sin comprimir." -#: ../Doc/library/bz2.rst:238 +#: ../Doc/library/bz2.rst:239 msgid "One-shot (de)compression" msgstr "(Des)comprimir en un solo paso" -#: ../Doc/library/bz2.rst:242 +#: ../Doc/library/bz2.rst:243 msgid "Compress *data*, a :term:`bytes-like object `." msgstr "" "Comprime *datos*, un :term:`objetos tipo binarios `." -#: ../Doc/library/bz2.rst:247 +#: ../Doc/library/bz2.rst:248 msgid "For incremental compression, use a :class:`BZ2Compressor` instead." msgstr "Para compresión incremental, use :class:`BZ2Compressor` en su lugar." -#: ../Doc/library/bz2.rst:252 +#: ../Doc/library/bz2.rst:253 msgid "Decompress *data*, a :term:`bytes-like object `." msgstr "" "Descomprime *datos*, un :term:`objetos tipo binarios `." -#: ../Doc/library/bz2.rst:254 +#: ../Doc/library/bz2.rst:255 msgid "" "If *data* is the concatenation of multiple compressed streams, decompress " "all of the streams." @@ -464,24 +465,24 @@ msgstr "" "Si *data* es la concatenación de múltiples flujos comprimidos, descomprime " "todos los flujos." -#: ../Doc/library/bz2.rst:257 +#: ../Doc/library/bz2.rst:258 msgid "For incremental decompression, use a :class:`BZ2Decompressor` instead." msgstr "" "Para la descompresión incremental, use :class:`BZ2Decompressor` en su lugar." -#: ../Doc/library/bz2.rst:259 +#: ../Doc/library/bz2.rst:260 msgid "Support for multi-stream inputs was added." msgstr "Se agregó soporte para entradas de flujo múltiple." -#: ../Doc/library/bz2.rst:265 +#: ../Doc/library/bz2.rst:266 msgid "Examples of usage" msgstr "Ejemplos de uso" -#: ../Doc/library/bz2.rst:267 +#: ../Doc/library/bz2.rst:268 msgid "Below are some examples of typical usage of the :mod:`bz2` module." msgstr "Aquí hay algunos ejemplos del uso típico del modulo :mod:`bz2`." -#: ../Doc/library/bz2.rst:269 +#: ../Doc/library/bz2.rst:270 msgid "" "Using :func:`compress` and :func:`decompress` to demonstrate round-trip " "compression:" @@ -489,11 +490,11 @@ msgstr "" "Usando :func:`compress` y :func:`decompress` para demostrar una compresión " "de ida y vuelta (*round-trip*):" -#: ../Doc/library/bz2.rst:287 +#: ../Doc/library/bz2.rst:288 msgid "Using :class:`BZ2Compressor` for incremental compression:" msgstr "Usando :class:`BZ2Compressor` para compresión incremental:" -#: ../Doc/library/bz2.rst:305 +#: ../Doc/library/bz2.rst:306 #, fuzzy msgid "" "The example above uses a very \"nonrandom\" stream of data (a stream of " @@ -505,6 +506,6 @@ msgstr "" "mal, mientras que los datos ordenados y repetitivos generalmente producen " "una alta relación de compresión." -#: ../Doc/library/bz2.rst:309 +#: ../Doc/library/bz2.rst:310 msgid "Writing and reading a bzip2-compressed file in binary mode:" msgstr "Escribiendo y leyendo un archivo comprimido con bzip2 en modo binario:" diff --git a/library/calendar.po b/library/calendar.po index 8080f9dace..4c2642c9b1 100644 --- a/library/calendar.po +++ b/library/calendar.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-03-11 02:48-0500\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es_ES\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/calendar.rst:2 msgid ":mod:`calendar` --- General calendar-related functions" @@ -563,7 +562,23 @@ msgstr "" "Un vector que representa los días abreviados de la semana en la " "configuración regional actual." -#: ../Doc/library/calendar.rst:399 +#: ../Doc/library/calendar.rst:405 +#, fuzzy +msgid "" +"Aliases for the days of the week, where ``MONDAY`` is ``0`` and ``SUNDAY`` " +"is ``6``." +msgstr "" +"Aliases para nombres de los días, donde ``MONDAY`` es ``0`` y ``SUNDAY`` es " +"``6``." + +#: ../Doc/library/calendar.rst:413 +msgid "" +"Enumeration defining days of the week as integer constants. The members of " +"this enumeration are exported to the module scope as :data:`MONDAY` through :" +"data:`SUNDAY`." +msgstr "" + +#: ../Doc/library/calendar.rst:422 msgid "" "An array that represents the months of the year in the current locale. This " "follows normal convention of January being month number 1, so it has a " @@ -573,7 +588,7 @@ msgstr "" "actual. Esto sigue la convención normal de que enero es el mes número 1, por " "lo que tiene una longitud de 13 y ``month_name[0]`` es la cadena vacía." -#: ../Doc/library/calendar.rst:406 +#: ../Doc/library/calendar.rst:429 msgid "" "An array that represents the abbreviated months of the year in the current " "locale. This follows normal convention of January being month number 1, so " @@ -584,18 +599,52 @@ msgstr "" "número 1, por lo que tiene una longitud de 13 y ``month_abbr[0]`` es la " "cadena vacía." -#: ../Doc/library/calendar.rst:418 +#: ../Doc/library/calendar.rst:447 +#, fuzzy msgid "" -"Aliases for day numbers, where ``MONDAY`` is ``0`` and ``SUNDAY`` is ``6``." +"Aliases for the months of the year, where ``JANUARY`` is ``1`` and " +"``DECEMBER`` is ``12``." msgstr "" "Aliases para nombres de los días, donde ``MONDAY`` es ``0`` y ``SUNDAY`` es " "``6``." -#: ../Doc/library/calendar.rst:424 +#: ../Doc/library/calendar.rst:455 +msgid "" +"Enumeration defining months of the year as integer constants. The members of " +"this enumeration are exported to the module scope as :data:`JANUARY` " +"through :data:`DECEMBER`." +msgstr "" + +#: ../Doc/library/calendar.rst:462 +#, fuzzy +msgid "The :mod:`calendar` module defines the following exceptions:" +msgstr "El módulo :mod:`calendar` exporta los siguientes atributos de datos:" + +#: ../Doc/library/calendar.rst:466 +msgid "" +"A subclass of :exc:`ValueError`, raised when the given month number is " +"outside of the range 1-12 (inclusive)." +msgstr "" + +#: ../Doc/library/calendar.rst:471 +msgid "The invalid month number." +msgstr "" + +#: ../Doc/library/calendar.rst:476 +msgid "" +"A subclass of :exc:`ValueError`, raised when the given weekday number is " +"outside of the range 0-6 (inclusive)." +msgstr "" + +#: ../Doc/library/calendar.rst:481 +msgid "The invalid weekday number." +msgstr "" + +#: ../Doc/library/calendar.rst:488 msgid "Module :mod:`datetime`" msgstr "Módulo :mod:`datetime`" -#: ../Doc/library/calendar.rst:423 +#: ../Doc/library/calendar.rst:487 msgid "" "Object-oriented interface to dates and times with similar functionality to " "the :mod:`time` module." @@ -603,10 +652,95 @@ msgstr "" "Interfaz orientada a objetos para fechas y horas con una funcionalidad " "similar a la del módulo :mod:`time`." -#: ../Doc/library/calendar.rst:426 +#: ../Doc/library/calendar.rst:490 msgid "Module :mod:`time`" msgstr "Módulo :mod:`time`" -#: ../Doc/library/calendar.rst:427 +#: ../Doc/library/calendar.rst:491 msgid "Low-level time related functions." msgstr "Funciones de bajo nivel relacionadas con el tiempo." + +#: ../Doc/library/calendar.rst:497 +msgid "Command-Line Usage" +msgstr "" + +#: ../Doc/library/calendar.rst:501 +msgid "" +"The :mod:`calendar` module can be executed as a script from the command line " +"to interactively print a calendar." +msgstr "" + +#: ../Doc/library/calendar.rst:511 +msgid "For example, to print a calendar for the year 2000:" +msgstr "" + +#: ../Doc/library/calendar.rst:554 +msgid "The following options are accepted:" +msgstr "" + +#: ../Doc/library/calendar.rst:561 +msgid "Show the help message and exit." +msgstr "" + +#: ../Doc/library/calendar.rst:566 +msgid "The locale to use for month and weekday names. Defaults to English." +msgstr "" + +#: ../Doc/library/calendar.rst:572 +msgid "" +"The encoding to use for output. :option:`--encoding` is required if :option:" +"`--locale` is set." +msgstr "" + +#: ../Doc/library/calendar.rst:578 +msgid "Print the calendar to the terminal as text, or as an HTML document." +msgstr "" + +#: ../Doc/library/calendar.rst:584 +msgid "" +"The year to print the calendar for. Must be a number between 1 and 9999. " +"Defaults to the current year." +msgstr "" + +#: ../Doc/library/calendar.rst:591 +msgid "" +"The month of the specified :option:`year` to print the calendar for. Must be " +"a number between 1 and 12, and may only be used in text mode. Defaults to " +"printing a calendar for the full year." +msgstr "" + +#: ../Doc/library/calendar.rst:597 +msgid "*Text-mode options:*" +msgstr "" + +#: ../Doc/library/calendar.rst:601 +msgid "" +"The width of the date column in terminal columns. The date is printed " +"centred in the column. Any value lower than 2 is ignored. Defaults to 2." +msgstr "" + +#: ../Doc/library/calendar.rst:609 +msgid "" +"The number of lines for each week in terminal rows. The date is printed top-" +"aligned. Any value lower than 1 is ignored. Defaults to 1." +msgstr "" + +#: ../Doc/library/calendar.rst:617 +msgid "" +"The space between months in columns. Any value lower than 2 is ignored. " +"Defaults to 6." +msgstr "" + +#: ../Doc/library/calendar.rst:624 +msgid "The number of months printed per row. Defaults to 3." +msgstr "" + +#: ../Doc/library/calendar.rst:628 +msgid "*HTML-mode options:*" +msgstr "" + +#: ../Doc/library/calendar.rst:632 +msgid "" +"The path of a CSS stylesheet to use for the calendar. This must either be " +"relative to the generated HTML, or an absolute HTTP or ``file:///`` URL." +msgstr "" diff --git a/library/cgi.po b/library/cgi.po index b8b95cd9b2..f56b019aeb 100644 --- a/library/cgi.po +++ b/library/cgi.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-12-20 23:03+0800\n" "Last-Translator: Rodrigo Tobar \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/cgi.rst:2 msgid ":mod:`cgi` --- Common Gateway Interface support" @@ -77,11 +76,12 @@ msgstr "" "análisis. El valor por defecto de esta variable es ``0``, lo que significa " "que el tamaño de las solicitudes es ilimitado." +#: ../Doc/includes/wasm-notavail.rst:3 #, fuzzy msgid ":ref:`Availability `: not Emscripten, not WASI." msgstr ":ref:`Disponibilidad `: no Emscripten, no WASI." -#: ../Doc/library/cpython/Doc/includes/wasm-notavail.rst:5 +#: ../Doc/includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly platforms " "``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for " @@ -1031,3 +1031,50 @@ msgstr "" "HTML establecen en qué orden se deben suministrar los valores de campo, pero " "saber si se recibió una solicitud de un navegador adaptado, o incluso desde " "un navegador siquiera, es tedioso y propenso a errores." + +#: ../Doc/library/cgi.rst:10 +msgid "WWW" +msgstr "" + +#: ../Doc/library/cgi.rst:10 +msgid "server" +msgstr "" + +#: ../Doc/library/cgi.rst:10 ../Doc/library/cgi.rst:389 +#: ../Doc/library/cgi.rst:462 +msgid "CGI" +msgstr "" + +#: ../Doc/library/cgi.rst:10 +msgid "protocol" +msgstr "" + +#: ../Doc/library/cgi.rst:10 +msgid "HTTP" +msgstr "" + +#: ../Doc/library/cgi.rst:10 +msgid "MIME" +msgstr "" + +#: ../Doc/library/cgi.rst:10 +msgid "headers" +msgstr "" + +#: ../Doc/library/cgi.rst:10 +msgid "URL" +msgstr "" + +#: ../Doc/library/cgi.rst:10 +#, fuzzy +msgid "Common Gateway Interface" +msgstr ":mod:`cgi` --- Soporte de Interfaz de Entrada Común (CGI)" + +#: ../Doc/library/cgi.rst:389 +msgid "security" +msgstr "" + +#: ../Doc/library/cgi.rst:462 +#, fuzzy +msgid "debugging" +msgstr "Depurando scripts de CGI" diff --git a/library/cgitb.po b/library/cgitb.po index b6472bfc38..008726eb08 100644 --- a/library/cgitb.po +++ b/library/cgitb.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-11 16:23-0300\n" "Last-Translator: Sofía Denner \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/cgitb.rst:2 msgid ":mod:`cgitb` --- Traceback manager for CGI scripts" @@ -160,3 +159,23 @@ msgstr "" "objeto de *traceback*, exactamente como la tupla retornada por :func:`sys." "exc_info`. Si no se proporciona el argumento *info*, la excepción actual se " "obtiene de :func:`sys.exc_info`." + +#: ../Doc/library/cgitb.rst:13 +msgid "CGI" +msgstr "" + +#: ../Doc/library/cgitb.rst:13 +msgid "exceptions" +msgstr "" + +#: ../Doc/library/cgitb.rst:13 +msgid "tracebacks" +msgstr "" + +#: ../Doc/library/cgitb.rst:13 +msgid "in CGI scripts" +msgstr "" + +#: ../Doc/library/cgitb.rst:47 +msgid "excepthook() (in module sys)" +msgstr "" diff --git a/library/chunk.po b/library/chunk.po index 83bb49006b..8b0676e148 100644 --- a/library/chunk.po +++ b/library/chunk.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-12 21:02-0300\n" "Last-Translator: Alfonso Areiza Guerra \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/chunk.rst:2 msgid ":mod:`chunk` --- Read IFF chunked data" @@ -261,3 +260,23 @@ msgid "" msgstr "" "\"EA IFF 85\" *Standard for Interchange Format Files*, *Jerry Morrison*, " "*Electronic Arts*, enero 1985." + +#: ../Doc/library/chunk.rst:13 +msgid "Audio Interchange File Format" +msgstr "" + +#: ../Doc/library/chunk.rst:13 +msgid "AIFF" +msgstr "" + +#: ../Doc/library/chunk.rst:13 +msgid "AIFF-C" +msgstr "" + +#: ../Doc/library/chunk.rst:13 +msgid "Real Media File Format" +msgstr "" + +#: ../Doc/library/chunk.rst:13 +msgid "RMFF" +msgstr "" diff --git a/library/cmath.po b/library/cmath.po index b7e1dff6b1..d95ef305b7 100644 --- a/library/cmath.po +++ b/library/cmath.po @@ -10,31 +10,31 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-05 12:54+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-07-25 20:23+0200\n" +"Last-Translator: \n" +"Language: es_AR\n" "Language-Team: python-doc-es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\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_AR\n" -"X-Generator: Poedit 2.3.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/cmath.rst:2 msgid ":mod:`cmath` --- Mathematical functions for complex numbers" msgstr ":mod:`cmath` -- Función matemática para números complejos" #: ../Doc/library/cmath.rst:9 +#, fuzzy msgid "" "This module provides access to mathematical functions for complex numbers. " "The functions in this module accept integers, floating-point numbers or " "complex numbers as arguments. They will also accept any Python object that " -"has either a :meth:`__complex__` or a :meth:`__float__` method: these " -"methods are used to convert the object to a complex or floating-point " -"number, respectively, and the function is then applied to the result of the " -"conversion." +"has either a :meth:`~object.__complex__` or a :meth:`~object.__float__` " +"method: these methods are used to convert the object to a complex or " +"floating-point number, respectively, and the function is then applied to the " +"result of the conversion." msgstr "" "Este modulo proporciona acceso a funciones matemáticas para números " "complejos. Las funciones de este módulo aceptan números enteros, números de " @@ -46,22 +46,34 @@ msgstr "" #: ../Doc/library/cmath.rst:18 msgid "" -"On platforms with hardware and system-level support for signed zeros, " -"functions involving branch cuts are continuous on *both* sides of the branch " -"cut: the sign of the zero distinguishes one side of the branch cut from the " -"other. On platforms that do not support signed zeros the continuity is as " -"specified below." +"For functions involving branch cuts, we have the problem of deciding how to " +"define those functions on the cut itself. Following Kahan's \"Branch cuts " +"for complex elementary functions\" paper, as well as Annex G of C99 and " +"later C standards, we use the sign of zero to distinguish one side of the " +"branch cut from the other: for a branch cut along (a portion of) the real " +"axis we look at the sign of the imaginary part, while for a branch cut along " +"the imaginary axis we look at the sign of the real part." msgstr "" -"En sistemas con hardware y soporte del sistema para ceros con signo, las " -"funciones que involucran tramos son continuas en *ambos* lados del tramo: el " -"signo de cero distingue un lado del tramo del otro. En plataformas que no " -"soportan el cero con signo la continuidad es especificada abajo." #: ../Doc/library/cmath.rst:26 +msgid "" +"For example, the :func:`cmath.sqrt` function has a branch cut along the " +"negative real axis. An argument of ``complex(-2.0, -0.0)`` is treated as " +"though it lies *below* the branch cut, and so gives a result on the negative " +"imaginary axis::" +msgstr "" + +#: ../Doc/library/cmath.rst:34 +msgid "" +"But an argument of ``complex(-2.0, 0.0)`` is treated as though it lies above " +"the branch cut::" +msgstr "" + +#: ../Doc/library/cmath.rst:42 msgid "Conversions to and from polar coordinates" msgstr "Conversión a y desde coordenadas polares" -#: ../Doc/library/cmath.rst:28 +#: ../Doc/library/cmath.rst:44 msgid "" "A Python complex number ``z`` is stored internally using *rectangular* or " "*Cartesian* coordinates. It is completely determined by its *real part* ``z." @@ -72,7 +84,7 @@ msgstr "" "por su *parte real* ``z.real`` y su *parte imaginaria* ``z.imag``. Dicho de " "otra forma::" -#: ../Doc/library/cmath.rst:35 +#: ../Doc/library/cmath.rst:51 msgid "" "*Polar coordinates* give an alternative way to represent a complex number. " "In polar coordinates, a complex number *z* is defined by the modulus *r* and " @@ -88,7 +100,7 @@ msgstr "" "contra de las agujas del reloj, medido en radianes, desde el eje positivo de " "las X hasta el segmento de linea que une el origen con *z*." -#: ../Doc/library/cmath.rst:42 +#: ../Doc/library/cmath.rst:58 msgid "" "The following functions can be used to convert from the native rectangular " "coordinates to polar coordinates and back." @@ -96,15 +108,14 @@ msgstr "" "Las siguientes funciones pueden ser usadas para convertir desde coordenadas " "rectangulares nativas hasta coordenadas polares y viceversa." -#: ../Doc/library/cmath.rst:47 +#: ../Doc/library/cmath.rst:63 +#, fuzzy msgid "" -"Return the phase of *x* (also known as the *argument* of *x*), as a float. " +"Return the phase of *x* (also known as the *argument* of *x*), as a float. " "``phase(x)`` is equivalent to ``math.atan2(x.imag, x.real)``. The result " "lies in the range [-\\ *π*, *π*], and the branch cut for this operation lies " -"along the negative real axis, continuous from above. On systems with " -"support for signed zeros (which includes most systems in current use), this " -"means that the sign of the result is the same as the sign of ``x.imag``, " -"even when ``x.imag`` is zero::" +"along the negative real axis. The sign of the result is the same as the " +"sign of ``x.imag``, even when ``x.imag`` is zero::" msgstr "" "Retorna la fase de *x* (también conocido como el *argumento* de *x*), como " "un número de coma flotante. ``phase(x)`` es equivalente a ``math.atan2(x." @@ -115,7 +126,7 @@ msgstr "" "signo del resultado es el mismo como el signo de ``x.imag``, incluso donde " "``x.imag`` es cero::" -#: ../Doc/library/cmath.rst:64 +#: ../Doc/library/cmath.rst:77 msgid "" "The modulus (absolute value) of a complex number *x* can be computed using " "the built-in :func:`abs` function. There is no separate :mod:`cmath` module " @@ -125,7 +136,7 @@ msgstr "" "usado la función predeterminada :func:`abs`. No existe otra función aparte " "del módulo :mod:`cmath` para esta operación." -#: ../Doc/library/cmath.rst:71 +#: ../Doc/library/cmath.rst:84 msgid "" "Return the representation of *x* in polar coordinates. Returns a pair ``(r, " "phi)`` where *r* is the modulus of *x* and phi is the phase of *x*. " @@ -135,7 +146,7 @@ msgstr "" "``(r, phi)`` donde *r* es el módulo de *x* y phi es la fase de *x*. " "``polar(x)`` es equivalente a ``(abs(x), phase(x))``." -#: ../Doc/library/cmath.rst:79 +#: ../Doc/library/cmath.rst:92 msgid "" "Return the complex number *x* with polar coordinates *r* and *phi*. " "Equivalent to ``r * (math.cos(phi) + math.sin(phi)*1j)``." @@ -143,11 +154,11 @@ msgstr "" "Retorna el número complejo *x* con coordenadas polares *r* y *phi*. Esto es " "equivalente a ``r*(math.cos(phi) + math.sin(phi)*1j)``." -#: ../Doc/library/cmath.rst:84 +#: ../Doc/library/cmath.rst:97 msgid "Power and logarithmic functions" msgstr "Funciones logarítmicas y de potencias" -#: ../Doc/library/cmath.rst:88 +#: ../Doc/library/cmath.rst:101 msgid "" "Return *e* raised to the power *x*, where *e* is the base of natural " "logarithms." @@ -155,17 +166,18 @@ msgstr "" "Retorna *e* elevado a la potencia de *x*, donde *e* es la base de los " "logaritmos naturales." -#: ../Doc/library/cmath.rst:94 +#: ../Doc/library/cmath.rst:107 +#, fuzzy msgid "" "Returns the logarithm of *x* to the given *base*. If the *base* is not " "specified, returns the natural logarithm of *x*. There is one branch cut, " -"from 0 along the negative real axis to -∞, continuous from above." +"from 0 along the negative real axis to -∞." msgstr "" "Retorna el logaritmo de *x* dada una *base*. Si la base no se especifica, " "retorna el logaritmo natural de *x* .No hay tramo, desde 0 en el eje " "negativo real hasta -∞, continuo desde arriba." -#: ../Doc/library/cmath.rst:101 +#: ../Doc/library/cmath.rst:114 msgid "" "Return the base-10 logarithm of *x*. This has the same branch cut as :func:" "`log`." @@ -173,110 +185,112 @@ msgstr "" "Retorna el logaritmo en base de 10 de *x*. Tiene el mismo tramo que :func:" "`log`." -#: ../Doc/library/cmath.rst:107 +#: ../Doc/library/cmath.rst:120 msgid "" "Return the square root of *x*. This has the same branch cut as :func:`log`." msgstr "Retorna la raíz cuadrada de *x*. Tiene el mismo tramo que :func:`log`." -#: ../Doc/library/cmath.rst:111 +#: ../Doc/library/cmath.rst:124 msgid "Trigonometric functions" msgstr "Funciones trigonométricas" -#: ../Doc/library/cmath.rst:115 +#: ../Doc/library/cmath.rst:128 +#, fuzzy msgid "" "Return the arc cosine of *x*. There are two branch cuts: One extends right " -"from 1 along the real axis to ∞, continuous from below. The other extends " -"left from -1 along the real axis to -∞, continuous from above." +"from 1 along the real axis to ∞. The other extends left from -1 along the " +"real axis to -∞." msgstr "" "Retorna el arcocoseno de *x*. Existen dos tramos: Uno que se extiende desde " "1 sobre todo el eje de abscisas hasta ∞, continuo desde abajo. El otro se " "extiende desde -1 a lo largo del eje de abscisas hasta -∞, continuo por " "arriba." -#: ../Doc/library/cmath.rst:122 +#: ../Doc/library/cmath.rst:135 msgid "" "Return the arc sine of *x*. This has the same branch cuts as :func:`acos`." msgstr "" "Retorna el arcoseno de *x*. Este tiene los mismos tramos que :func:`acos`." -#: ../Doc/library/cmath.rst:127 +#: ../Doc/library/cmath.rst:140 +#, fuzzy msgid "" "Return the arc tangent of *x*. There are two branch cuts: One extends from " -"``1j`` along the imaginary axis to ``∞j``, continuous from the right. The " -"other extends from ``-1j`` along the imaginary axis to ``-∞j``, continuous " -"from the left." +"``1j`` along the imaginary axis to ``∞j``. The other extends from ``-1j`` " +"along the imaginary axis to ``-∞j``." msgstr "" "Retorna el arcotangente de *x*. Tiene dos tramos. Uno se extiende desde " "``1j`` a lo largo de el eje de abscisas imaginario ``∞j``, continuo desde " "la derecha. El otro extiende desde ``-1j`` a lo largo de el eje de abscisas " "hasta ``-∞j`` , continuo desde la izquierda." -#: ../Doc/library/cmath.rst:135 +#: ../Doc/library/cmath.rst:147 msgid "Return the cosine of *x*." msgstr "Retorna el coseno de *x*." -#: ../Doc/library/cmath.rst:140 +#: ../Doc/library/cmath.rst:152 msgid "Return the sine of *x*." msgstr "Retorna el seno de *x*." -#: ../Doc/library/cmath.rst:145 +#: ../Doc/library/cmath.rst:157 msgid "Return the tangent of *x*." msgstr "Retorna la tangente de *x*." -#: ../Doc/library/cmath.rst:149 +#: ../Doc/library/cmath.rst:161 msgid "Hyperbolic functions" msgstr "Funciones hiperbólicas" -#: ../Doc/library/cmath.rst:153 +#: ../Doc/library/cmath.rst:165 +#, fuzzy msgid "" "Return the inverse hyperbolic cosine of *x*. There is one branch cut, " -"extending left from 1 along the real axis to -∞, continuous from above." +"extending left from 1 along the real axis to -∞." msgstr "" "Retorna el inverso del coseno hiperbólico de *x*. Tiene un tramo, que se " "extiende desde la izquierda desde 1 a lo largo del eje de abscisas hasta -∞, " "continuo desde abajo." -#: ../Doc/library/cmath.rst:159 +#: ../Doc/library/cmath.rst:171 +#, fuzzy msgid "" "Return the inverse hyperbolic sine of *x*. There are two branch cuts: One " -"extends from ``1j`` along the imaginary axis to ``∞j``, continuous from the " -"right. The other extends from ``-1j`` along the imaginary axis to ``-∞j``, " -"continuous from the left." +"extends from ``1j`` along the imaginary axis to ``∞j``. The other extends " +"from ``-1j`` along the imaginary axis to ``-∞j``." msgstr "" "Retorna el inverso del seno hiperbólico de *x*. Tiene dos tramos. Uno se " "extiende desde ``1j`` a lo largo de el eje de abscisas imaginario ``∞j``, " "continuo desde la derecha. El otro se extiende desde ``-1j`` a lo largo de " "el eje de abscisas hasta ``-∞j``, continuo desde la izquierda." -#: ../Doc/library/cmath.rst:167 +#: ../Doc/library/cmath.rst:178 +#, fuzzy msgid "" "Return the inverse hyperbolic tangent of *x*. There are two branch cuts: One " -"extends from ``1`` along the real axis to ``∞``, continuous from below. The " -"other extends from ``-1`` along the real axis to ``-∞``, continuous from " -"above." +"extends from ``1`` along the real axis to ``∞``. The other extends from " +"``-1`` along the real axis to ``-∞``." msgstr "" "Retorna el inverso de la tangente hiperbólica de *x*. Tiene dos tramos: Uno " "se extiende desde ``1`` a lo largo de las abscisas reales hasta ``∞``, " "continuo desde abajo. El otro se extiende desde ``-1`` a lo largo de las " "abscisas reales hasta ``-∞``, continuo desde arriba." -#: ../Doc/library/cmath.rst:175 +#: ../Doc/library/cmath.rst:185 msgid "Return the hyperbolic cosine of *x*." msgstr "Retorna el coseno hiperbólico de *x*." -#: ../Doc/library/cmath.rst:180 +#: ../Doc/library/cmath.rst:190 msgid "Return the hyperbolic sine of *x*." msgstr "Retorna el seno hiperbólico de *x*." -#: ../Doc/library/cmath.rst:185 +#: ../Doc/library/cmath.rst:195 msgid "Return the hyperbolic tangent of *x*." msgstr "Retorna la tangente hiperbólica de *x*." -#: ../Doc/library/cmath.rst:189 +#: ../Doc/library/cmath.rst:199 msgid "Classification functions" msgstr "Funciones de clasificación" -#: ../Doc/library/cmath.rst:193 +#: ../Doc/library/cmath.rst:203 msgid "" "Return ``True`` if both the real and imaginary parts of *x* are finite, and " "``False`` otherwise." @@ -284,7 +298,7 @@ msgstr "" "Retorna ``True`` si tanto la parte imaginaria como real de *x* son finitas, " "y ``False`` en cualquier otro caso." -#: ../Doc/library/cmath.rst:201 +#: ../Doc/library/cmath.rst:211 msgid "" "Return ``True`` if either the real or the imaginary part of *x* is an " "infinity, and ``False`` otherwise." @@ -292,7 +306,7 @@ msgstr "" "Retorna ``True`` si la parte real o la imaginaria de *x* es un infinito, y " "``False`` en el caso contrario." -#: ../Doc/library/cmath.rst:207 +#: ../Doc/library/cmath.rst:217 msgid "" "Return ``True`` if either the real or the imaginary part of *x* is a NaN, " "and ``False`` otherwise." @@ -300,7 +314,7 @@ msgstr "" "Retorna ``True`` tanto si la parte real o imaginaria de *x* es NaN, y " "``Falso`` en cualquier otro caso." -#: ../Doc/library/cmath.rst:213 +#: ../Doc/library/cmath.rst:223 msgid "" "Return ``True`` if the values *a* and *b* are close to each other and " "``False`` otherwise." @@ -308,7 +322,7 @@ msgstr "" "Retorna ``True`` si los valores *a* y *b* son cercanos el uno al otro y " "``Falso`` de otro modo." -#: ../Doc/library/cmath.rst:216 +#: ../Doc/library/cmath.rst:226 msgid "" "Whether or not two values are considered close is determined according to " "given absolute and relative tolerances." @@ -316,7 +330,7 @@ msgstr "" "Que dos valores sean o no considerados como cercanos es determinado de " "acuerdo al valor absoluto y las tolerancias relativas." -#: ../Doc/library/cmath.rst:219 +#: ../Doc/library/cmath.rst:229 msgid "" "*rel_tol* is the relative tolerance -- it is the maximum allowed difference " "between *a* and *b*, relative to the larger absolute value of *a* or *b*. " @@ -331,7 +345,7 @@ msgstr "" "valores son los mismos en aproximadamente 9 dígitos decimales. *rel_tol* " "debe ser mayor que cero." -#: ../Doc/library/cmath.rst:225 +#: ../Doc/library/cmath.rst:235 msgid "" "*abs_tol* is the minimum absolute tolerance -- useful for comparisons near " "zero. *abs_tol* must be at least zero." @@ -339,7 +353,7 @@ msgstr "" "*abs_tol* es la tolerancia mínima absoluta -- útil a la hora de hacer " "comparaciones cercanas al cero. *abs_tol* debe ser al menos cero." -#: ../Doc/library/cmath.rst:228 +#: ../Doc/library/cmath.rst:238 msgid "" "If no errors occur, the result will be: ``abs(a-b) <= max(rel_tol * " "max(abs(a), abs(b)), abs_tol)``." @@ -347,7 +361,7 @@ msgstr "" "Si no ocurren errores, el resultado será: ``abs(a-b) <= max(rel_tol * " "max(abs(a), abs(b)), abs_tol)``." -#: ../Doc/library/cmath.rst:231 +#: ../Doc/library/cmath.rst:241 msgid "" "The IEEE 754 special values of ``NaN``, ``inf``, and ``-inf`` will be " "handled according to IEEE rules. Specifically, ``NaN`` is not considered " @@ -359,31 +373,31 @@ msgstr "" "considera cercano a ningún otro valor, incluido ``NaN``. ``inf`` y ``-inf`` " "solo son considerados cercanos a sí mismos." -#: ../Doc/library/cmath.rst:240 +#: ../Doc/library/cmath.rst:250 msgid ":pep:`485` -- A function for testing approximate equality" msgstr ":pep:`485` -- Una función para probar igualdad aproximada." -#: ../Doc/library/cmath.rst:244 +#: ../Doc/library/cmath.rst:254 msgid "Constants" msgstr "Constantes" -#: ../Doc/library/cmath.rst:248 +#: ../Doc/library/cmath.rst:258 msgid "The mathematical constant *π*, as a float." msgstr "La constante matemática *π*, como número de coma flotante." -#: ../Doc/library/cmath.rst:253 +#: ../Doc/library/cmath.rst:263 msgid "The mathematical constant *e*, as a float." msgstr "La constante matemática *e*, como número de coma flotante." -#: ../Doc/library/cmath.rst:258 +#: ../Doc/library/cmath.rst:268 msgid "The mathematical constant *τ*, as a float." msgstr "La constante matemática *τ*, como número de coma flotante." -#: ../Doc/library/cmath.rst:265 +#: ../Doc/library/cmath.rst:275 msgid "Floating-point positive infinity. Equivalent to ``float('inf')``." msgstr "Números de coma flotante de +infinito. Equivalente a ``float('inf')``." -#: ../Doc/library/cmath.rst:272 +#: ../Doc/library/cmath.rst:282 msgid "" "Complex number with zero real part and positive infinity imaginary part. " "Equivalent to ``complex(0.0, float('inf'))``." @@ -391,7 +405,7 @@ msgstr "" "Números complejos con la parte real cero y números positivos infinitos como " "la parte imaginaria. Equivalente a ``complex(0.0, float('inf'))``." -#: ../Doc/library/cmath.rst:280 +#: ../Doc/library/cmath.rst:290 msgid "" "A floating-point \"not a number\" (NaN) value. Equivalent to " "``float('nan')``." @@ -399,7 +413,7 @@ msgstr "" "El valor del número de coma flotante \"not a number\" (NaN) . Equivalente a " "``float('nan')``." -#: ../Doc/library/cmath.rst:288 +#: ../Doc/library/cmath.rst:298 msgid "" "Complex number with zero real part and NaN imaginary part. Equivalent to " "``complex(0.0, float('nan'))``." @@ -407,7 +421,7 @@ msgstr "" "Números complejos con parte real cero y como parte imaginaria NaN. " "Equivalente a ``complex(0.0, float('nan'))``." -#: ../Doc/library/cmath.rst:296 +#: ../Doc/library/cmath.rst:306 msgid "" "Note that the selection of functions is similar, but not identical, to that " "in module :mod:`math`. The reason for having two modules is that some users " @@ -427,7 +441,7 @@ msgstr "" "respuesta puede ser expresada como un número real (en cuyo caso el número " "complejo tiene una parte imaginaria de cero)." -#: ../Doc/library/cmath.rst:304 +#: ../Doc/library/cmath.rst:314 msgid "" "A note on branch cuts: They are curves along which the given function fails " "to be continuous. They are a necessary feature of many complex functions. " @@ -445,7 +459,7 @@ msgstr "" "correcta elección de los tramos para propósitos numéricos, se recomienda la " "siguiente bibliografía:" -#: ../Doc/library/cmath.rst:314 +#: ../Doc/library/cmath.rst:324 msgid "" "Kahan, W: Branch cuts for complex elementary functions; or, Much ado about " "nothing's sign bit. In Iserles, A., and Powell, M. (eds.), The state of the " @@ -454,3 +468,23 @@ msgstr "" "*Kahan, W: Branch cuts for complex elementary functions; o, Much ado about " "nothing's sign bit. En Iserles, A., and Powell, M. (eds.), The state of the " "art in numerical analysis. Clarendon Press (1987) pp165--211*." + +#: ../Doc/library/cmath.rst:304 +msgid "module" +msgstr "" + +#: ../Doc/library/cmath.rst:304 +msgid "math" +msgstr "" + +#~ msgid "" +#~ "On platforms with hardware and system-level support for signed zeros, " +#~ "functions involving branch cuts are continuous on *both* sides of the " +#~ "branch cut: the sign of the zero distinguishes one side of the branch cut " +#~ "from the other. On platforms that do not support signed zeros the " +#~ "continuity is as specified below." +#~ msgstr "" +#~ "En sistemas con hardware y soporte del sistema para ceros con signo, las " +#~ "funciones que involucran tramos son continuas en *ambos* lados del tramo: " +#~ "el signo de cero distingue un lado del tramo del otro. En plataformas que " +#~ "no soportan el cero con signo la continuidad es especificada abajo." diff --git a/library/cmd.po b/library/cmd.po index d1f5a2b8e7..a306a1e078 100644 --- a/library/cmd.po +++ b/library/cmd.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-01 18:18-0300\n" "Last-Translator: Alfonso Areiza Guerra \n" -"Language-Team: python-doc-es\n" "Language: es_CO\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/cmd.rst:2 msgid ":mod:`cmd` --- Support for line-oriented command interpreters" @@ -455,3 +454,15 @@ msgstr "" "Aquí hay una sesión de muestra con la *turle shell* mostrando las funciones " "de ayuda, de ayuda, usando líneas en blanco para repetir comandos, un " "registro simple y facilidad de reproducción:" + +#: ../Doc/library/cmd.rst:64 +msgid "? (question mark)" +msgstr "" + +#: ../Doc/library/cmd.rst:64 +msgid "in a command interpreter" +msgstr "" + +#: ../Doc/library/cmd.rst:64 +msgid "! (exclamation)" +msgstr "" diff --git a/library/code.po b/library/code.po index 3a24c0dc8c..a09f28d2de 100644 --- a/library/code.po +++ b/library/code.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-03-19 11:16+0100\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-07 10:30+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,8 +19,7 @@ msgstr "" "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" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/code.rst:2 msgid ":mod:`code` --- Interpreter base classes" @@ -306,16 +305,17 @@ msgid "Print an exit message when exiting." msgstr "Imprime un mensaje de salida al salir." #: ../Doc/library/code.rst:164 +#, fuzzy msgid "" "Push a line of source text to the interpreter. The line should not have a " "trailing newline; it may have internal newlines. The line is appended to a " -"buffer and the interpreter's :meth:`runsource` method is called with the " -"concatenated contents of the buffer as source. If this indicates that the " -"command was executed or invalid, the buffer is reset; otherwise, the command " -"is incomplete, and the buffer is left as it was after the line was " -"appended. The return value is ``True`` if more input is required, ``False`` " -"if the line was dealt with in some way (this is the same as :meth:" -"`runsource`)." +"buffer and the interpreter's :meth:`~InteractiveInterpreter.runsource` " +"method is called with the concatenated contents of the buffer as source. If " +"this indicates that the command was executed or invalid, the buffer is " +"reset; otherwise, the command is incomplete, and the buffer is left as it " +"was after the line was appended. The return value is ``True`` if more input " +"is required, ``False`` if the line was dealt with in some way (this is the " +"same as :meth:`!runsource`)." msgstr "" "Envía una línea de texto fuente al intérprete. La línea no debe tener un " "salto de línea al final; puede tener nuevas líneas internas. La línea se " diff --git a/library/codecs.po b/library/codecs.po index a6f9eba5fe..6fc858c044 100644 --- a/library/codecs.po +++ b/library/codecs.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-12-29 00:59+0100\n" "Last-Translator: Carlos AlMA \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/codecs.rst:2 msgid ":mod:`codecs` --- Codec registry and base classes" @@ -519,14 +518,14 @@ msgstr "" "Los siguientes manejadores de errores se pueden emplear con todos los códecs " "Python :ref:`standard-encodings`:" -#: ../Doc/library/codecs.rst:330 ../Doc/library/codecs.rst:372 -#: ../Doc/library/codecs.rst:391 +#: ../Doc/library/codecs.rst:330 ../Doc/library/codecs.rst:373 +#: ../Doc/library/codecs.rst:393 msgid "Value" msgstr "Valor" -#: ../Doc/library/codecs.rst:330 ../Doc/library/codecs.rst:372 -#: ../Doc/library/codecs.rst:391 ../Doc/library/codecs.rst:1324 -#: ../Doc/library/codecs.rst:1391 ../Doc/library/codecs.rst:1446 +#: ../Doc/library/codecs.rst:330 ../Doc/library/codecs.rst:373 +#: ../Doc/library/codecs.rst:393 ../Doc/library/codecs.rst:1327 +#: ../Doc/library/codecs.rst:1395 ../Doc/library/codecs.rst:1450 msgid "Meaning" msgstr "Significado" @@ -573,11 +572,12 @@ msgid "``'backslashreplace'``" msgstr "``'backslashreplace'``" #: ../Doc/library/codecs.rst:346 +#, fuzzy msgid "" "Replace with backslashed escape sequences. On encoding, use hexadecimal form " -"of Unicode code point with formats ``\\xhh`` ``\\uxxxx`` ``\\Uxxxxxxxx``. On " -"decoding, use hexadecimal form of byte value with format ``\\xhh``. " -"Implemented in :func:`backslashreplace_errors`." +"of Unicode code point with formats :samp:`\\\\x{hh}` :samp:`\\\\u{xxxx}` :" +"samp:`\\\\U{xxxxxxxx}`. On decoding, use hexadecimal form of byte value with " +"format :samp:`\\\\x{hh}`. Implemented in :func:`backslashreplace_errors`." msgstr "" "Reemplazar con secuencias de escape mediante barra invertida. Al codificar, " "emplear la forma hexadecimal del punto de código Unicode con los formatos " @@ -585,11 +585,11 @@ msgstr "" "hexadecimal del valor del byte con el formato ``\\xhh``. Implementado en :" "func:`backslashreplace_errors`." -#: ../Doc/library/codecs.rst:354 +#: ../Doc/library/codecs.rst:355 msgid "``'surrogateescape'``" msgstr "``'surrogateescape'``" -#: ../Doc/library/codecs.rst:354 +#: ../Doc/library/codecs.rst:355 msgid "" "On decoding, replace byte with individual surrogate code ranging from " "``U+DC80`` to ``U+DCFF``. This code will then be turned back into the same " @@ -601,7 +601,7 @@ msgstr "" "mismo byte cuando se use el manejador de errores ``'sustituto de paisaje'`` " "al codificar los datos. (Ver :pep:`383` para más información)." -#: ../Doc/library/codecs.rst:368 +#: ../Doc/library/codecs.rst:369 msgid "" "The following error handlers are only applicable to encoding (within :term:" "`text encodings `):" @@ -609,25 +609,26 @@ msgstr "" "Los siguientes manejadores de errores solo son aplicables a :term:" "`codificaciones de texto `:" -#: ../Doc/library/codecs.rst:374 +#: ../Doc/library/codecs.rst:375 msgid "``'xmlcharrefreplace'``" msgstr "``'xmlcharrefreplace'``" -#: ../Doc/library/codecs.rst:374 +#: ../Doc/library/codecs.rst:375 +#, fuzzy msgid "" "Replace with XML/HTML numeric character reference, which is a decimal form " -"of Unicode code point with format ``&#num;`` Implemented in :func:" +"of Unicode code point with format :samp:`&#{num};`. Implemented in :func:" "`xmlcharrefreplace_errors`." msgstr "" "Reemplazar con una referencia de carácter numérico XML/HTML, que es una " "forma decimal del punto de código Unicode con formato ``&#num;`` " "Implementado en :func:`xmlcharrefreplace_errors`." -#: ../Doc/library/codecs.rst:379 +#: ../Doc/library/codecs.rst:381 msgid "``'namereplace'``" msgstr "``'namereplace'``" -#: ../Doc/library/codecs.rst:379 +#: ../Doc/library/codecs.rst:381 msgid "" "Replace with ``\\N{...}`` escape sequences, what appears in the braces is " "the Name property from Unicode Character Database. Implemented in :func:" @@ -637,25 +638,25 @@ msgstr "" "llaves, es la propiedad Nombre de la Base de datos de Caracteres Unicode. " "Implementado en :func:`namereplace_errors`." -#: ../Doc/library/codecs.rst:388 +#: ../Doc/library/codecs.rst:390 msgid "" "In addition, the following error handler is specific to the given codecs:" msgstr "" "Además, el siguiente manejador de errores es específico de los códecs dados:" -#: ../Doc/library/codecs.rst:391 +#: ../Doc/library/codecs.rst:13 ../Doc/library/codecs.rst:393 msgid "Codecs" msgstr "Códecs" -#: ../Doc/library/codecs.rst:393 +#: ../Doc/library/codecs.rst:395 msgid "``'surrogatepass'``" msgstr "``'surrogatepass'``" -#: ../Doc/library/codecs.rst:393 +#: ../Doc/library/codecs.rst:395 msgid "utf-8, utf-16, utf-32, utf-16-be, utf-16-le, utf-32-be, utf-32-le" msgstr "utf-8, utf-16, utf-32, utf-16-be, utf-16-le, utf-32-be, utf-32-le" -#: ../Doc/library/codecs.rst:393 +#: ../Doc/library/codecs.rst:395 msgid "" "Allow encoding and decoding surrogate code point (``U+D800`` - ``U+DFFF``) " "as normal code point. Otherwise these codecs treat the presence of surrogate " @@ -666,12 +667,12 @@ msgstr "" "estos códecs tratan la presencia de un punto de código sustituto en :class:" "`str` como un error." -#: ../Doc/library/codecs.rst:400 +#: ../Doc/library/codecs.rst:402 msgid "The ``'surrogateescape'`` and ``'surrogatepass'`` error handlers." msgstr "" "Los manejadores de errores ``'surrogateescape'`` y ``'surrogatepass'``." -#: ../Doc/library/codecs.rst:403 +#: ../Doc/library/codecs.rst:405 msgid "" "The ``'surrogatepass'`` error handler now works with utf-16\\* and utf-32\\* " "codecs." @@ -679,11 +680,11 @@ msgstr "" "Los manejadores de errores ``'surrogatepass'`` ahora funcionan con los " "códecs utf-16\\* y utf-32\\*." -#: ../Doc/library/codecs.rst:407 +#: ../Doc/library/codecs.rst:409 msgid "The ``'namereplace'`` error handler." msgstr "El manejador de errores ``'namereplace'``." -#: ../Doc/library/codecs.rst:410 +#: ../Doc/library/codecs.rst:412 msgid "" "The ``'backslashreplace'`` error handler now works with decoding and " "translating." @@ -691,7 +692,7 @@ msgstr "" "El manejador de errores ``'backslashreplace'`` ahora funciona con " "decodificación y traducción." -#: ../Doc/library/codecs.rst:414 +#: ../Doc/library/codecs.rst:416 msgid "" "The set of allowed values can be extended by registering a new named error " "handler:" @@ -699,7 +700,7 @@ msgstr "" "El conjunto de valores permitidos puede ampliarse registrando un nuevo " "manejador de errores con nombre:" -#: ../Doc/library/codecs.rst:419 +#: ../Doc/library/codecs.rst:421 msgid "" "Register the error handling function *error_handler* under the name *name*. " "The *error_handler* argument will be called during encoding and decoding in " @@ -710,7 +711,7 @@ msgstr "" "decodificación en caso de error, cuando *name* se especifica como el " "parámetro de errores." -#: ../Doc/library/codecs.rst:423 +#: ../Doc/library/codecs.rst:425 msgid "" "For encoding, *error_handler* will be called with a :exc:" "`UnicodeEncodeError` instance, which contains information about the location " @@ -737,7 +738,7 @@ msgstr "" "cadena de entrada. Si la posición resultante está fuera del límite, se " "lanzará :exc:`IndexError`." -#: ../Doc/library/codecs.rst:435 +#: ../Doc/library/codecs.rst:437 msgid "" "Decoding and translating works similarly, except :exc:`UnicodeDecodeError` " "or :exc:`UnicodeTranslateError` will be passed to the handler and that the " @@ -748,7 +749,7 @@ msgstr "" "manejador y el sustituto del manejador de errores se colocará directamente " "en la salida." -#: ../Doc/library/codecs.rst:440 +#: ../Doc/library/codecs.rst:442 msgid "" "Previously registered error handlers (including the standard error handlers) " "can be looked up by name:" @@ -756,18 +757,18 @@ msgstr "" "Los manejadores de errores registrados previamente (incluidos los " "manejadores de error estándar) se pueden buscar por nombre:" -#: ../Doc/library/codecs.rst:445 +#: ../Doc/library/codecs.rst:447 msgid "Return the error handler previously registered under the name *name*." msgstr "" "Retorna el manejador de errores previamente registrado con el nombre *name*." -#: ../Doc/library/codecs.rst:447 +#: ../Doc/library/codecs.rst:449 msgid "Raises a :exc:`LookupError` in case the handler cannot be found." msgstr "" "Lanza un :exc:`LookupError` en caso de que no se pueda encontrar el " "controlador." -#: ../Doc/library/codecs.rst:449 +#: ../Doc/library/codecs.rst:451 msgid "" "The following standard error handlers are also made available as module " "level functions:" @@ -775,20 +776,20 @@ msgstr "" "Los siguientes manejadores de errores estándar también están disponibles " "como funciones de nivel de módulo:" -#: ../Doc/library/codecs.rst:454 +#: ../Doc/library/codecs.rst:456 msgid "Implements the ``'strict'`` error handling." msgstr "Implementa el manejo de errores ``'strict'``." -#: ../Doc/library/codecs.rst:456 +#: ../Doc/library/codecs.rst:458 msgid "Each encoding or decoding error raises a :exc:`UnicodeError`." msgstr "" "Cada error de codificación o decodificación genera un :exc:`UnicodeError`." -#: ../Doc/library/codecs.rst:461 +#: ../Doc/library/codecs.rst:463 msgid "Implements the ``'ignore'`` error handling." msgstr "Implementa el manejo de errores ``'ignore'``." -#: ../Doc/library/codecs.rst:463 +#: ../Doc/library/codecs.rst:465 msgid "" "Malformed data is ignored; encoding or decoding is continued without further " "notice." @@ -796,11 +797,11 @@ msgstr "" "Los datos con formato incorrecto se ignoran; la codificación o " "decodificación continúa sin previo aviso." -#: ../Doc/library/codecs.rst:469 +#: ../Doc/library/codecs.rst:471 msgid "Implements the ``'replace'`` error handling." msgstr "Implementa el manejo de errores ``'replace'`` ." -#: ../Doc/library/codecs.rst:471 +#: ../Doc/library/codecs.rst:473 msgid "" "Substitutes ``?`` (ASCII character) for encoding errors or ``�`` (U+FFFD, " "the official REPLACEMENT CHARACTER) for decoding errors." @@ -808,16 +809,17 @@ msgstr "" "Sustituye ``?`` (carácter ASCII) por errores de codificación o ``�`` " "(U+FFFD, el CARÁCTER DE REEMPLAZO oficial) por errores de decodificación." -#: ../Doc/library/codecs.rst:477 +#: ../Doc/library/codecs.rst:479 msgid "Implements the ``'backslashreplace'`` error handling." msgstr "Implementa el manejador de errores ``'backslashreplace'``." -#: ../Doc/library/codecs.rst:479 +#: ../Doc/library/codecs.rst:481 +#, fuzzy msgid "" "Malformed data is replaced by a backslashed escape sequence. On encoding, " -"use the hexadecimal form of Unicode code point with formats ``\\xhh`` " -"``\\uxxxx`` ``\\Uxxxxxxxx``. On decoding, use the hexadecimal form of byte " -"value with format ``\\xhh``." +"use the hexadecimal form of Unicode code point with formats :samp:`\\\\x{hh}" +"` :samp:`\\\\u{xxxx}` :samp:`\\\\U{xxxxxxxx}`. On decoding, use the " +"hexadecimal form of byte value with format :samp:`\\\\x{hh}`." msgstr "" "Los datos con formato incorrecto se reemplazan por una secuencia de escape " "con barra invertida. Al codificar, emplea la forma hexadecimal del punto de " @@ -825,11 +827,11 @@ msgstr "" "decodificar, usa la forma hexadecimal del valor del byte con el formato " "``\\xhh``." -#: ../Doc/library/codecs.rst:484 +#: ../Doc/library/codecs.rst:487 msgid "Works with decoding and translating." msgstr "Funciona con la decodificación y traducción." -#: ../Doc/library/codecs.rst:490 +#: ../Doc/library/codecs.rst:493 msgid "" "Implements the ``'xmlcharrefreplace'`` error handling (for encoding within :" "term:`text encoding` only)." @@ -837,17 +839,18 @@ msgstr "" "Implementa el manejador de errores ``'xmlcharrefreplace'`` (solo para " "codificar dentro de :term:`text encoding`)." -#: ../Doc/library/codecs.rst:493 +#: ../Doc/library/codecs.rst:496 +#, fuzzy msgid "" "The unencodable character is replaced by an appropriate XML/HTML numeric " "character reference, which is a decimal form of Unicode code point with " -"format ``&#num;`` ." +"format :samp:`&#{num};` ." msgstr "" "El carácter no codificable se reemplaza por una referencia de carácter " "numérico XML/HTML adecuada, que es una forma decimal del punto de código " "Unicode con formato ``&#num;``." -#: ../Doc/library/codecs.rst:500 +#: ../Doc/library/codecs.rst:503 msgid "" "Implements the ``'namereplace'`` error handling (for encoding within :term:" "`text encoding` only)." @@ -855,7 +858,7 @@ msgstr "" "Implementa el manejo de errores ``'namereplace`` (solo para codificar dentro " "de :term:`text encoding`)." -#: ../Doc/library/codecs.rst:503 +#: ../Doc/library/codecs.rst:506 msgid "" "The unencodable character is replaced by a ``\\N{...}`` escape sequence. The " "set of characters that appear in the braces is the Name property from " @@ -868,11 +871,11 @@ msgstr "" "letra minúscula alemana ``'ß'`` se convertirá en la secuencia de bytes " "``\\N{LATIN SMALL LETTER SHARP S}`` ." -#: ../Doc/library/codecs.rst:514 +#: ../Doc/library/codecs.rst:517 msgid "Stateless Encoding and Decoding" msgstr "Codificación y decodificación sin estado" -#: ../Doc/library/codecs.rst:516 +#: ../Doc/library/codecs.rst:519 msgid "" "The base :class:`Codec` class defines these methods which also define the " "function interfaces of the stateless encoder and decoder:" @@ -880,7 +883,7 @@ msgstr "" "La clase base :class:`Codec` define estos métodos que también definen las " "interfaces de función del codificador y decodificador sin estado:" -#: ../Doc/library/codecs.rst:522 +#: ../Doc/library/codecs.rst:525 msgid "" "Encodes the object *input* and returns a tuple (output object, length " "consumed). For instance, :term:`text encoding` converts a string object to a " @@ -892,7 +895,7 @@ msgstr "" "de caracteres en un objeto de bytes utilizando una codificación de juego de " "caracteres particular (por ejemplo,``cp1252`` o ``iso-8859-1``)." -#: ../Doc/library/codecs.rst:527 ../Doc/library/codecs.rst:549 +#: ../Doc/library/codecs.rst:530 ../Doc/library/codecs.rst:552 msgid "" "The *errors* argument defines the error handling to apply. It defaults to " "``'strict'`` handling." @@ -900,7 +903,7 @@ msgstr "" "El argumento *errors* define el manejo de errores a aplicar. El valor " "predeterminado es el manejo ``estricto``." -#: ../Doc/library/codecs.rst:530 +#: ../Doc/library/codecs.rst:533 msgid "" "The method may not store state in the :class:`Codec` instance. Use :class:" "`StreamWriter` for codecs which have to keep state in order to make encoding " @@ -910,7 +913,7 @@ msgstr "" "Use :class:`StreamWriter` para códecs que deben mantener el estado para que " "la codificación sea eficiente." -#: ../Doc/library/codecs.rst:534 +#: ../Doc/library/codecs.rst:537 msgid "" "The encoder must be able to handle zero length input and return an empty " "object of the output object type in this situation." @@ -918,7 +921,7 @@ msgstr "" "El codificador debe poder manejar la entrada de longitud cero y retornar un " "objeto vacío del tipo de objeto de salida en esta situación." -#: ../Doc/library/codecs.rst:540 +#: ../Doc/library/codecs.rst:543 msgid "" "Decodes the object *input* and returns a tuple (output object, length " "consumed). For instance, for a :term:`text encoding`, decoding converts a " @@ -931,7 +934,7 @@ msgstr "" "codificación de juego de caracteres particular en un objeto de cadena de " "caracteres." -#: ../Doc/library/codecs.rst:545 +#: ../Doc/library/codecs.rst:548 msgid "" "For text encodings and bytes-to-bytes codecs, *input* must be a bytes object " "or one which provides the read-only buffer interface -- for example, buffer " @@ -941,7 +944,7 @@ msgstr "" "objeto de bytes o uno que proporcione la interfaz de búfer de solo lectura, " "por ejemplo, objetos de búfer y archivos mapeados en memoria." -#: ../Doc/library/codecs.rst:552 +#: ../Doc/library/codecs.rst:555 msgid "" "The method may not store state in the :class:`Codec` instance. Use :class:" "`StreamReader` for codecs which have to keep state in order to make decoding " @@ -951,7 +954,7 @@ msgstr "" "`Codec`. Use :class:`StreamReader` para códecs que deben mantener el estado " "para que la decodificación sea eficiente." -#: ../Doc/library/codecs.rst:556 +#: ../Doc/library/codecs.rst:559 msgid "" "The decoder must be able to handle zero length input and return an empty " "object of the output object type in this situation." @@ -959,11 +962,11 @@ msgstr "" "El decodificador debe poder manejar la entrada de longitud cero y retornar " "un objeto vacío del tipo de objeto de salida en esta situación." -#: ../Doc/library/codecs.rst:561 +#: ../Doc/library/codecs.rst:564 msgid "Incremental Encoding and Decoding" msgstr "Codificación y decodificación incrementales" -#: ../Doc/library/codecs.rst:563 +#: ../Doc/library/codecs.rst:566 msgid "" "The :class:`IncrementalEncoder` and :class:`IncrementalDecoder` classes " "provide the basic interface for incremental encoding and decoding. Encoding/" @@ -982,7 +985,7 @@ msgstr "" "codificador/decodificador incremental realiza un seguimiento del proceso de " "codificación/decodificación durante las llamadas a métodos." -#: ../Doc/library/codecs.rst:571 +#: ../Doc/library/codecs.rst:574 msgid "" "The joined output of calls to the :meth:`~IncrementalEncoder.encode`/:meth:" "`~IncrementalDecoder.decode` method is the same as if all the single inputs " @@ -994,11 +997,11 @@ msgstr "" "entradas individuales se unieran en una, y esta entrada se codificara/" "decodificara con codificador/decodificador sin estado." -#: ../Doc/library/codecs.rst:580 +#: ../Doc/library/codecs.rst:583 msgid "IncrementalEncoder Objects" msgstr "Objetos IncrementalEncoder" -#: ../Doc/library/codecs.rst:582 +#: ../Doc/library/codecs.rst:585 msgid "" "The :class:`IncrementalEncoder` class is used for encoding an input in " "multiple steps. It defines the following methods which every incremental " @@ -1008,11 +1011,11 @@ msgstr "" "varios pasos. Define los siguientes métodos que cada codificador incremental " "debe definir para ser compatible con el registro de códec Python." -#: ../Doc/library/codecs.rst:589 +#: ../Doc/library/codecs.rst:592 msgid "Constructor for an :class:`IncrementalEncoder` instance." msgstr "Constructor para una clase instancia de :class:`IncrementalEncoder`." -#: ../Doc/library/codecs.rst:591 +#: ../Doc/library/codecs.rst:594 msgid "" "All incremental encoders must provide this constructor interface. They are " "free to add additional keyword arguments, but only the ones defined here are " @@ -1022,7 +1025,7 @@ msgstr "" "constructor. Son libres de agregar argumentos de palabras clave adicionales, " "pero el registro de códecs de Python solo utiliza los definidos aquí." -#: ../Doc/library/codecs.rst:595 +#: ../Doc/library/codecs.rst:598 msgid "" "The :class:`IncrementalEncoder` may implement different error handling " "schemes by providing the *errors* keyword argument. See :ref:`error-" @@ -1032,7 +1035,7 @@ msgstr "" "de manejo de errores al proporcionar el argumento de palabra clave *errors*. " "Ver :ref:`error-handlers` para posibles valores." -#: ../Doc/library/codecs.rst:599 +#: ../Doc/library/codecs.rst:602 msgid "" "The *errors* argument will be assigned to an attribute of the same name. " "Assigning to this attribute makes it possible to switch between different " @@ -1044,7 +1047,7 @@ msgstr "" "de manejo de errores durante la vida útil del objeto :class:" "`IncrementalEncoder`." -#: ../Doc/library/codecs.rst:607 +#: ../Doc/library/codecs.rst:610 msgid "" "Encodes *object* (taking the current state of the encoder into account) and " "returns the resulting encoded object. If this is the last call to :meth:" @@ -1054,7 +1057,7 @@ msgstr "" "retorna el objeto codificado resultante. Si esta es la última llamada a :" "meth:`encode` *final* debe ser verdadero (el valor predeterminado es falso)." -#: ../Doc/library/codecs.rst:614 +#: ../Doc/library/codecs.rst:617 msgid "" "Reset the encoder to the initial state. The output is discarded: call ``." "encode(object, final=True)``, passing an empty byte or text string if " @@ -1064,7 +1067,7 @@ msgstr "" "``.encode(object, final=True)``, pasando un byte vacío o una cadena de texto " "si es necesario, para restablecer el codificador y obtener la salida." -#: ../Doc/library/codecs.rst:621 +#: ../Doc/library/codecs.rst:624 msgid "" "Return the current state of the encoder which must be an integer. The " "implementation should make sure that ``0`` is the most common state. (States " @@ -1078,7 +1081,7 @@ msgstr "" "entero al empaquetar/serializar el estado y codificar los bytes de la cadena " "resultante en un entero)." -#: ../Doc/library/codecs.rst:630 +#: ../Doc/library/codecs.rst:633 msgid "" "Set the state of the encoder to *state*. *state* must be an encoder state " "returned by :meth:`getstate`." @@ -1086,11 +1089,11 @@ msgstr "" "Establece el estado del codificador en *state*. *state* debe ser un estado " "de codificador retornado por :meth:`getstate`." -#: ../Doc/library/codecs.rst:637 +#: ../Doc/library/codecs.rst:640 msgid "IncrementalDecoder Objects" msgstr "Objetos IncrementalDecoder" -#: ../Doc/library/codecs.rst:639 +#: ../Doc/library/codecs.rst:642 msgid "" "The :class:`IncrementalDecoder` class is used for decoding an input in " "multiple steps. It defines the following methods which every incremental " @@ -1100,11 +1103,11 @@ msgstr "" "varios pasos. Define los siguientes métodos que cada decodificador " "incremental debe definir para ser compatible con el registro de códec Python." -#: ../Doc/library/codecs.rst:646 +#: ../Doc/library/codecs.rst:649 msgid "Constructor for an :class:`IncrementalDecoder` instance." msgstr "Constructor para una instancia de :class:`IncrementalDecoder`." -#: ../Doc/library/codecs.rst:648 +#: ../Doc/library/codecs.rst:651 msgid "" "All incremental decoders must provide this constructor interface. They are " "free to add additional keyword arguments, but only the ones defined here are " @@ -1114,7 +1117,7 @@ msgstr "" "constructor. Son libres de agregar argumentos de palabras clave adicionales, " "pero el registro de códecs de Python solo utiliza los definidos aquí." -#: ../Doc/library/codecs.rst:652 +#: ../Doc/library/codecs.rst:655 msgid "" "The :class:`IncrementalDecoder` may implement different error handling " "schemes by providing the *errors* keyword argument. See :ref:`error-" @@ -1124,7 +1127,7 @@ msgstr "" "de manejo de errores al proporcionar el argumento de palabra clave *errors*. " "Ver :ref:`error-handlers` para posibles valores." -#: ../Doc/library/codecs.rst:656 +#: ../Doc/library/codecs.rst:659 msgid "" "The *errors* argument will be assigned to an attribute of the same name. " "Assigning to this attribute makes it possible to switch between different " @@ -1136,7 +1139,7 @@ msgstr "" "de manejo de errores durante la vida útil del objeto :class:" "`IncrementalDecoder`." -#: ../Doc/library/codecs.rst:664 +#: ../Doc/library/codecs.rst:667 msgid "" "Decodes *object* (taking the current state of the decoder into account) and " "returns the resulting decoded object. If this is the last call to :meth:" @@ -1155,11 +1158,11 @@ msgstr "" "debe iniciar el manejo de errores al igual que en el caso sin estado (lo que " "podría generar una excepción)." -#: ../Doc/library/codecs.rst:675 +#: ../Doc/library/codecs.rst:678 msgid "Reset the decoder to the initial state." msgstr "Restablece el decodificador al estado inicial." -#: ../Doc/library/codecs.rst:680 +#: ../Doc/library/codecs.rst:683 msgid "" "Return the current state of the decoder. This must be a tuple with two " "items, the first must be the buffer containing the still undecoded input. " @@ -1186,7 +1189,7 @@ msgstr "" "enteros se puede convertir en un entero al empaquetar/serializar la " "información y codificar los bytes de la cadena resultante en un entero)." -#: ../Doc/library/codecs.rst:695 +#: ../Doc/library/codecs.rst:698 msgid "" "Set the state of the decoder to *state*. *state* must be a decoder state " "returned by :meth:`getstate`." @@ -1194,11 +1197,11 @@ msgstr "" "Establezca el estado del decodificador en *state*. *state* debe ser un " "estado de decodificador retornado por :meth:`getstate`." -#: ../Doc/library/codecs.rst:700 +#: ../Doc/library/codecs.rst:703 msgid "Stream Encoding and Decoding" msgstr "Codificación y decodificación de flujos" -#: ../Doc/library/codecs.rst:703 +#: ../Doc/library/codecs.rst:706 msgid "" "The :class:`StreamWriter` and :class:`StreamReader` classes provide generic " "working interfaces which can be used to implement new encoding submodules " @@ -1209,11 +1212,11 @@ msgstr "" "submódulos de codificación muy fácilmente. Ir a :mod:`encodings.utf_8` para " "ver un ejemplo de cómo se hace esto." -#: ../Doc/library/codecs.rst:711 +#: ../Doc/library/codecs.rst:714 msgid "StreamWriter Objects" msgstr "Objetos StreamWriter" -#: ../Doc/library/codecs.rst:713 +#: ../Doc/library/codecs.rst:716 msgid "" "The :class:`StreamWriter` class is a subclass of :class:`Codec` and defines " "the following methods which every stream writer must define in order to be " @@ -1223,11 +1226,11 @@ msgstr "" "los siguientes métodos que cada escritor del flujo debe definir para ser " "compatible con el registro de códecs Python." -#: ../Doc/library/codecs.rst:720 +#: ../Doc/library/codecs.rst:723 msgid "Constructor for a :class:`StreamWriter` instance." msgstr "Constructor para una instancia de :class:`StreamWriter`." -#: ../Doc/library/codecs.rst:722 +#: ../Doc/library/codecs.rst:725 msgid "" "All stream writers must provide this constructor interface. They are free to " "add additional keyword arguments, but only the ones defined here are used by " @@ -1237,7 +1240,7 @@ msgstr "" "constructor. Son libres de agregar argumentos de palabras clave adicionales, " "pero el registro de códecs de Python solo utiliza los definidos aquí." -#: ../Doc/library/codecs.rst:726 +#: ../Doc/library/codecs.rst:729 msgid "" "The *stream* argument must be a file-like object open for writing text or " "binary data, as appropriate for the specific codec." @@ -1245,7 +1248,7 @@ msgstr "" "El argumento *stream* debe ser un objeto tipo archivo abierto para escribir " "texto o datos binarios, según corresponda para el códec específico." -#: ../Doc/library/codecs.rst:729 +#: ../Doc/library/codecs.rst:732 msgid "" "The :class:`StreamWriter` may implement different error handling schemes by " "providing the *errors* keyword argument. See :ref:`error-handlers` for the " @@ -1256,7 +1259,7 @@ msgstr "" "Consulte :ref:`error-handlers` para ver los manejadores de errores estándar " "que puede admitir el códec de flujo subyacente." -#: ../Doc/library/codecs.rst:733 +#: ../Doc/library/codecs.rst:736 msgid "" "The *errors* argument will be assigned to an attribute of the same name. " "Assigning to this attribute makes it possible to switch between different " @@ -1267,11 +1270,11 @@ msgstr "" "asignación a este atributo hace posible cambiar entre diferentes estrategias " "de manejo de errores durante la vida útil del objeto :class:`StreamWriter`." -#: ../Doc/library/codecs.rst:739 +#: ../Doc/library/codecs.rst:742 msgid "Writes the object's contents encoded to the stream." msgstr "Escribe el contenido del objeto codificado en el flujo." -#: ../Doc/library/codecs.rst:744 +#: ../Doc/library/codecs.rst:747 msgid "" "Writes the concatenated iterable of strings to the stream (possibly by " "reusing the :meth:`write` method). Infinite or very large iterables are not " @@ -1281,12 +1284,12 @@ msgstr "" "reutilizando el método :meth:`write`). No se admiten iterables infinitos o " "muy grandes. Los códecs estándar de bytes a bytes no admiten este método." -#: ../Doc/library/codecs.rst:752 ../Doc/library/codecs.rst:847 +#: ../Doc/library/codecs.rst:755 ../Doc/library/codecs.rst:850 msgid "Resets the codec buffers used for keeping internal state." msgstr "" "Restablece los búfers de códec utilizados para mantener el estado interno." -#: ../Doc/library/codecs.rst:754 +#: ../Doc/library/codecs.rst:757 msgid "" "Calling this method should ensure that the data on the output is put into a " "clean state that allows appending of new fresh data without having to rescan " @@ -1296,7 +1299,7 @@ msgstr "" "en un estado limpio que permita agregar datos nuevos sin tener que volver a " "escanear todo el flujo para recuperar el estado." -#: ../Doc/library/codecs.rst:759 +#: ../Doc/library/codecs.rst:762 msgid "" "In addition to the above methods, the :class:`StreamWriter` must also " "inherit all other methods and attributes from the underlying stream." @@ -1304,11 +1307,11 @@ msgstr "" "Además de los métodos anteriores, la clase :class:`StreamWriter` también " "debe heredar todos los demás métodos y atributos del flujo subyacente." -#: ../Doc/library/codecs.rst:766 +#: ../Doc/library/codecs.rst:769 msgid "StreamReader Objects" msgstr "Objetos StreamReader" -#: ../Doc/library/codecs.rst:768 +#: ../Doc/library/codecs.rst:771 msgid "" "The :class:`StreamReader` class is a subclass of :class:`Codec` and defines " "the following methods which every stream reader must define in order to be " @@ -1318,11 +1321,11 @@ msgstr "" "los siguientes métodos que cada lector de flujo debe definir para ser " "compatible con el registro de códecs de Python." -#: ../Doc/library/codecs.rst:775 +#: ../Doc/library/codecs.rst:778 msgid "Constructor for a :class:`StreamReader` instance." msgstr "Constructor para una instancia de :class:`StreamReader`." -#: ../Doc/library/codecs.rst:777 +#: ../Doc/library/codecs.rst:780 msgid "" "All stream readers must provide this constructor interface. They are free to " "add additional keyword arguments, but only the ones defined here are used by " @@ -1332,7 +1335,7 @@ msgstr "" "Son libres de agregar argumentos de palabras clave adicionales, pero el " "registro de códecs de Python solo utiliza los definidos aquí." -#: ../Doc/library/codecs.rst:781 +#: ../Doc/library/codecs.rst:784 msgid "" "The *stream* argument must be a file-like object open for reading text or " "binary data, as appropriate for the specific codec." @@ -1340,7 +1343,7 @@ msgstr "" "El argumento *stream* debe ser un objeto tipo archivo abierto para leer " "texto o datos binarios, según corresponda para el códec específico." -#: ../Doc/library/codecs.rst:784 +#: ../Doc/library/codecs.rst:787 msgid "" "The :class:`StreamReader` may implement different error handling schemes by " "providing the *errors* keyword argument. See :ref:`error-handlers` for the " @@ -1351,7 +1354,7 @@ msgstr "" "Consulte :ref:`error-handlers` para ver los manejadores de errores estándar " "que puede admitir el códec de flujo subyacente." -#: ../Doc/library/codecs.rst:788 +#: ../Doc/library/codecs.rst:791 msgid "" "The *errors* argument will be assigned to an attribute of the same name. " "Assigning to this attribute makes it possible to switch between different " @@ -1362,7 +1365,7 @@ msgstr "" "asignación a este atributo hace posible cambiar entre diferentes estrategias " "de manejo de errores durante la vida útil del objeto :class:`StreamReader`." -#: ../Doc/library/codecs.rst:792 +#: ../Doc/library/codecs.rst:795 msgid "" "The set of allowed values for the *errors* argument can be extended with :" "func:`register_error`." @@ -1370,11 +1373,11 @@ msgstr "" "El conjunto de valores permitidos para el argumento *errors* se puede " "ampliar con :func:`register_error`." -#: ../Doc/library/codecs.rst:798 +#: ../Doc/library/codecs.rst:801 msgid "Decodes data from the stream and returns the resulting object." msgstr "Decodifica datos del flujo y retorna el objeto resultante." -#: ../Doc/library/codecs.rst:800 +#: ../Doc/library/codecs.rst:803 msgid "" "The *chars* argument indicates the number of decoded code points or bytes to " "return. The :func:`read` method will never return more data than requested, " @@ -1384,7 +1387,7 @@ msgstr "" "bytes a retornar. El método :func:`read` nunca retornará más datos de los " "solicitados, pero podría retornar menos, si no hay suficientes disponibles." -#: ../Doc/library/codecs.rst:805 +#: ../Doc/library/codecs.rst:808 msgid "" "The *size* argument indicates the approximate maximum number of encoded " "bytes or code points to read for decoding. The decoder can modify this " @@ -1398,7 +1401,7 @@ msgstr "" "indica leer y decodificar tanto como sea posible. Este parámetro está " "diseñado para evitar tener que decodificar archivos grandes en un solo paso." -#: ../Doc/library/codecs.rst:812 +#: ../Doc/library/codecs.rst:815 msgid "" "The *firstline* flag indicates that it would be sufficient to only return " "the first line, if there are decoding errors on later lines." @@ -1406,7 +1409,7 @@ msgstr "" "La bandera *firstline* indica que sería suficiente retornar solo la primera " "línea, si hay errores de decodificación en las líneas posteriores." -#: ../Doc/library/codecs.rst:816 +#: ../Doc/library/codecs.rst:819 msgid "" "The method should use a greedy read strategy meaning that it should read as " "much data as is allowed within the definition of the encoding and the given " @@ -1419,11 +1422,11 @@ msgstr "" "codificación opcionales o los marcadores de estado están disponibles en la " "transmisión, también deben leerse." -#: ../Doc/library/codecs.rst:824 +#: ../Doc/library/codecs.rst:827 msgid "Read one line from the input stream and return the decoded data." msgstr "Lee una línea del flujo de entrada y retorna los datos decodificados." -#: ../Doc/library/codecs.rst:826 +#: ../Doc/library/codecs.rst:829 msgid "" "*size*, if given, is passed as size argument to the stream's :meth:`read` " "method." @@ -1431,14 +1434,14 @@ msgstr "" "*size*, si se da, se pasa como argumento de tamaño al método :meth:`read` " "del *stream*." -#: ../Doc/library/codecs.rst:829 +#: ../Doc/library/codecs.rst:832 msgid "" "If *keepends* is false line-endings will be stripped from the lines returned." msgstr "" "Si *keepends* es falso, las terminaciones de línea se eliminarán de las " "líneas retornadas." -#: ../Doc/library/codecs.rst:835 +#: ../Doc/library/codecs.rst:838 msgid "" "Read all lines available on the input stream and return them as a list of " "lines." @@ -1446,7 +1449,7 @@ msgstr "" "Lee todas las líneas disponibles en el flujo de entrada y las retorna como " "una lista de líneas." -#: ../Doc/library/codecs.rst:838 +#: ../Doc/library/codecs.rst:841 msgid "" "Line-endings are implemented using the codec's :meth:`decode` method and are " "included in the list entries if *keepends* is true." @@ -1454,7 +1457,7 @@ msgstr "" "Los finales de línea se implementan utilizando el método :meth:`decode` del " "códec y se incluyen en las entradas de la lista si *keepends* es verdadero." -#: ../Doc/library/codecs.rst:841 +#: ../Doc/library/codecs.rst:844 msgid "" "*sizehint*, if given, is passed as the *size* argument to the stream's :meth:" "`read` method." @@ -1462,7 +1465,7 @@ msgstr "" "*sizehint*, si se proporciona, se pasa como argumento *size* al método :meth:" "`read` del *stream*." -#: ../Doc/library/codecs.rst:849 +#: ../Doc/library/codecs.rst:852 msgid "" "Note that no stream repositioning should take place. This method is " "primarily intended to be able to recover from decoding errors." @@ -1471,7 +1474,7 @@ msgstr "" "método está destinado principalmente a poder recuperarse de errores de " "decodificación." -#: ../Doc/library/codecs.rst:853 +#: ../Doc/library/codecs.rst:856 msgid "" "In addition to the above methods, the :class:`StreamReader` must also " "inherit all other methods and attributes from the underlying stream." @@ -1479,11 +1482,11 @@ msgstr "" "Además de los métodos anteriores, la clase :class:`StreamReader` también " "debe heredar todos los demás métodos y atributos del flujo subyacente." -#: ../Doc/library/codecs.rst:859 +#: ../Doc/library/codecs.rst:862 msgid "StreamReaderWriter Objects" msgstr "Objetos StreamReaderWriter" -#: ../Doc/library/codecs.rst:861 +#: ../Doc/library/codecs.rst:864 msgid "" "The :class:`StreamReaderWriter` is a convenience class that allows wrapping " "streams which work in both read and write modes." @@ -1492,7 +1495,7 @@ msgstr "" "permite envolver flujos que funcionan tanto en modo de lectura como de " "escritura." -#: ../Doc/library/codecs.rst:864 ../Doc/library/codecs.rst:888 +#: ../Doc/library/codecs.rst:867 ../Doc/library/codecs.rst:891 msgid "" "The design is such that one can use the factory functions returned by the :" "func:`lookup` function to construct the instance." @@ -1500,7 +1503,7 @@ msgstr "" "El diseño es tal que uno puede usar las funciones de fábrica retornadas por " "la función :func:`lookup` para construir la instancia." -#: ../Doc/library/codecs.rst:870 +#: ../Doc/library/codecs.rst:873 msgid "" "Creates a :class:`StreamReaderWriter` instance. *stream* must be a file-like " "object. *Reader* and *Writer* must be factory functions or classes providing " @@ -1514,7 +1517,7 @@ msgstr "" "class:`StreamWriter` respectivamente. El manejo de errores se realiza de la " "misma manera que se define para los lectores y escritores de flujos." -#: ../Doc/library/codecs.rst:875 +#: ../Doc/library/codecs.rst:878 msgid "" ":class:`StreamReaderWriter` instances define the combined interfaces of :" "class:`StreamReader` and :class:`StreamWriter` classes. They inherit all " @@ -1524,11 +1527,11 @@ msgstr "" "de :class:`StreamReader` y clases :class:`StreamWriter`. Heredan todos los " "demás métodos y atributos del flujo subyacente." -#: ../Doc/library/codecs.rst:883 +#: ../Doc/library/codecs.rst:886 msgid "StreamRecoder Objects" msgstr "Objetos StreamRecoder" -#: ../Doc/library/codecs.rst:885 +#: ../Doc/library/codecs.rst:888 msgid "" "The :class:`StreamRecoder` translates data from one encoding to another, " "which is sometimes useful when dealing with different encoding environments." @@ -1536,7 +1539,7 @@ msgstr "" "La clase :class:`StreamRecoder` traduce datos de una codificación a otra, lo " "que a veces es útil cuando se trata de diferentes entornos de codificación." -#: ../Doc/library/codecs.rst:894 +#: ../Doc/library/codecs.rst:897 msgid "" "Creates a :class:`StreamRecoder` instance which implements a two-way " "conversion: *encode* and *decode* work on the frontend — the data visible to " @@ -1548,7 +1551,7 @@ msgstr "" "visibles para la llamada de código :meth:`read` y :meth:`write`, mientras " "que *Reader* y *Writer* funcionan en el *backend* --- los datos en *stream*." -#: ../Doc/library/codecs.rst:899 +#: ../Doc/library/codecs.rst:902 msgid "" "You can use these objects to do transparent transcodings, e.g., from Latin-1 " "to UTF-8 and back." @@ -1556,11 +1559,11 @@ msgstr "" "Puede usar estos objetos para realizar transcodificaciones transparentes, " "por ejemplo, de Latin-1 a UTF-8 y viceversa." -#: ../Doc/library/codecs.rst:902 +#: ../Doc/library/codecs.rst:905 msgid "The *stream* argument must be a file-like object." msgstr "El argumento *stream* debe ser un objeto similar a un archivo." -#: ../Doc/library/codecs.rst:904 +#: ../Doc/library/codecs.rst:907 msgid "" "The *encode* and *decode* arguments must adhere to the :class:`Codec` " "interface. *Reader* and *Writer* must be factory functions or classes " @@ -1572,7 +1575,7 @@ msgstr "" "proporcionen objetos de la interfaz :class:`StreamReader` y :class:" "`StreamWriter` respectivamente." -#: ../Doc/library/codecs.rst:909 +#: ../Doc/library/codecs.rst:912 msgid "" "Error handling is done in the same way as defined for the stream readers and " "writers." @@ -1580,7 +1583,7 @@ msgstr "" "El manejo de errores se realiza de la misma manera que se define para los " "lectores y escritores de flujos." -#: ../Doc/library/codecs.rst:913 +#: ../Doc/library/codecs.rst:916 msgid "" ":class:`StreamRecoder` instances define the combined interfaces of :class:" "`StreamReader` and :class:`StreamWriter` classes. They inherit all other " @@ -1590,11 +1593,11 @@ msgstr "" "las clases :class:`StreamReader` y :class:`StreamWriter`. Heredan todos los " "demás métodos y atributos del flujo subyacente." -#: ../Doc/library/codecs.rst:921 +#: ../Doc/library/codecs.rst:924 msgid "Encodings and Unicode" msgstr "Codificaciones y Unicode" -#: ../Doc/library/codecs.rst:923 +#: ../Doc/library/codecs.rst:926 msgid "" "Strings are stored internally as sequences of code points in range " "``U+0000``--``U+10FFFF``. (See :pep:`393` for more details about the " @@ -1616,7 +1619,7 @@ msgstr "" "códecs para la serialización de texto, a los que se puede consultar " "colectivamente mediante :term:`text encodings `." -#: ../Doc/library/codecs.rst:933 +#: ../Doc/library/codecs.rst:936 msgid "" "The simplest text encoding (called ``'latin-1'`` or ``'iso-8859-1'``) maps " "the code points 0--255 to the bytes ``0x0``--``0xff``, which means that a " @@ -1635,7 +1638,7 @@ msgstr "" "``UnicodeEncodeError: 'latin-1' codec can't encode character '\\u1234' 'in " "position 3: ordinal not in range(256)``." -#: ../Doc/library/codecs.rst:941 +#: ../Doc/library/codecs.rst:944 msgid "" "There's another group of encodings (the so called charmap encodings) that " "choose a different subset of all Unicode code points and how these code " @@ -1652,7 +1655,7 @@ msgstr "" "Windows). Hay una cadena constante con 256 caracteres que le muestra qué " "carácter está asignado a qué valor de byte." -#: ../Doc/library/codecs.rst:948 +#: ../Doc/library/codecs.rst:951 msgid "" "All of these encodings can only encode 256 of the 1114112 code points " "defined in Unicode. A simple and straightforward way that can store each " @@ -1712,7 +1715,7 @@ msgstr "" "cadena; como un ``ESPACIO DE ANCHO CERO SIN QUIEBRA`` es un carácter normal " "que se decodificará como cualquier otro." -#: ../Doc/library/codecs.rst:974 +#: ../Doc/library/codecs.rst:977 msgid "" "There's another encoding that is able to encode the full range of Unicode " "characters: UTF-8. UTF-8 is an 8-bit encoding, which means there are no " @@ -1731,53 +1734,53 @@ msgstr "" "se codifican de esta manera (con x siendo bits de carga útil, que cuando se " "concatenan dan el carácter Unicode):" -#: ../Doc/library/codecs.rst:983 +#: ../Doc/library/codecs.rst:986 msgid "Range" msgstr "Rango" -#: ../Doc/library/codecs.rst:983 +#: ../Doc/library/codecs.rst:986 msgid "Encoding" msgstr "Codificación" -#: ../Doc/library/codecs.rst:985 +#: ../Doc/library/codecs.rst:988 msgid "``U-00000000`` ... ``U-0000007F``" msgstr "``U-00000000`` ... ``U-0000007F``" -#: ../Doc/library/codecs.rst:985 +#: ../Doc/library/codecs.rst:988 msgid "0xxxxxxx" msgstr "0xxxxxxx" -#: ../Doc/library/codecs.rst:987 +#: ../Doc/library/codecs.rst:990 msgid "``U-00000080`` ... ``U-000007FF``" msgstr "``U-00000080`` ... ``U-000007FF``" -#: ../Doc/library/codecs.rst:987 +#: ../Doc/library/codecs.rst:990 msgid "110xxxxx 10xxxxxx" msgstr "110xxxxx 10xxxxxx" -#: ../Doc/library/codecs.rst:989 +#: ../Doc/library/codecs.rst:992 msgid "``U-00000800`` ... ``U-0000FFFF``" msgstr "``U-00000800`` ... ``U-0000FFFF``" -#: ../Doc/library/codecs.rst:989 +#: ../Doc/library/codecs.rst:992 msgid "1110xxxx 10xxxxxx 10xxxxxx" msgstr "1110xxxx 10xxxxxx 10xxxxxx" -#: ../Doc/library/codecs.rst:991 +#: ../Doc/library/codecs.rst:994 msgid "``U-00010000`` ... ``U-0010FFFF``" msgstr "``U-00010000`` ... ``U-0010FFFF``" -#: ../Doc/library/codecs.rst:991 +#: ../Doc/library/codecs.rst:994 msgid "11110xxx 10xxxxxx 10xxxxxx 10xxxxxx" msgstr "11110xxx 10xxxxxx 10xxxxxx 10xxxxxx" -#: ../Doc/library/codecs.rst:994 +#: ../Doc/library/codecs.rst:997 msgid "" "The least significant bit of the Unicode character is the rightmost x bit." msgstr "" "El bit menos significativo del carácter Unicode es el bit x más a la derecha." -#: ../Doc/library/codecs.rst:996 +#: ../Doc/library/codecs.rst:999 msgid "" "As UTF-8 is an 8-bit encoding no BOM is required and any ``U+FEFF`` " "character in the decoded string (even if it's the first character) is " @@ -1788,7 +1791,7 @@ msgstr "" "(incluso si es el primer carácter) se trata como un ``ESPACIO SIN QUIEBRE DE " "ANCHO CERO`` (*``ZERO WIDTH NO-BREAK SPACE``*)." -#: ../Doc/library/codecs.rst:1000 +#: ../Doc/library/codecs.rst:1003 msgid "" "Without external information it's impossible to reliably determine which " "encoding was used for encoding a string. Each charmap encoding can decode " @@ -1827,7 +1830,7 @@ msgstr "SEÑALADO A LA DERECHA DE DOBLE ÁNGULO MARCA DE CITA" msgid "INVERTED QUESTION MARK" msgstr "SIGNO DE PREGUNTA INVERTIDO" -#: ../Doc/library/codecs.rst:1016 +#: ../Doc/library/codecs.rst:1019 msgid "" "in iso-8859-1), this increases the probability that a ``utf-8-sig`` encoding " "can be correctly guessed from the byte sequence. So here the BOM is not used " @@ -1848,11 +1851,11 @@ msgstr "" "como los primeros tres bytes en el archivo. En UTF-8, se desaconseja el uso " "de la lista de materiales y, en general, debe evitarse." -#: ../Doc/library/codecs.rst:1029 +#: ../Doc/library/codecs.rst:1032 msgid "Standard Encodings" msgstr "Codificaciones estándar" -#: ../Doc/library/codecs.rst:1031 +#: ../Doc/library/codecs.rst:1034 msgid "" "Python comes with a number of codecs built-in, either implemented as C " "functions or with dictionaries as mapping tables. The following table lists " @@ -1872,7 +1875,7 @@ msgstr "" "lugar de un guión bajo también son alias válidos; por lo tanto, por ejemplo " "``'utf-8'`` es un alias válido para el códec ``'utf_8'``." -#: ../Doc/library/codecs.rst:1041 +#: ../Doc/library/codecs.rst:1044 msgid "" "Some common encodings can bypass the codecs lookup machinery to improve " "performance. These optimization opportunities are only recognized by CPython " @@ -1890,11 +1893,11 @@ msgstr "" "de alias alternativos para estas codificaciones puede resultar en una " "ejecución más lenta." -#: ../Doc/library/codecs.rst:1049 +#: ../Doc/library/codecs.rst:1052 msgid "Optimization opportunity recognized for us-ascii." msgstr "Oportunidad de optimización reconocida para us-ascii." -#: ../Doc/library/codecs.rst:1052 +#: ../Doc/library/codecs.rst:1055 msgid "" "Many of the character sets support the same languages. They vary in " "individual characters (e.g. whether the EURO SIGN is supported or not), and " @@ -1906,11 +1909,11 @@ msgstr "" "y en la asignación de caracteres para codificar posiciones. Para los idiomas " "europeos en particular, generalmente existen las siguientes variantes:" -#: ../Doc/library/codecs.rst:1057 +#: ../Doc/library/codecs.rst:1060 msgid "an ISO 8859 codeset" msgstr "un conjunto de códigos ISO 8859" -#: ../Doc/library/codecs.rst:1059 +#: ../Doc/library/codecs.rst:1062 msgid "" "a Microsoft Windows code page, which is typically derived from an 8859 " "codeset, but replaces control characters with additional graphic characters" @@ -1919,494 +1922,494 @@ msgstr "" "conjunto de códigos 8859, pero reemplaza los caracteres de control con " "caracteres gráficos adicionales" -#: ../Doc/library/codecs.rst:1062 +#: ../Doc/library/codecs.rst:1065 msgid "an IBM EBCDIC code page" msgstr "una página de códigos EBCDIC de IBM" -#: ../Doc/library/codecs.rst:1064 +#: ../Doc/library/codecs.rst:1067 msgid "an IBM PC code page, which is ASCII compatible" msgstr "una página de códigos de IBM PC, que es compatible con ASCII" -#: ../Doc/library/codecs.rst:1069 ../Doc/library/codecs.rst:1324 -#: ../Doc/library/codecs.rst:1391 ../Doc/library/codecs.rst:1446 +#: ../Doc/library/codecs.rst:1072 ../Doc/library/codecs.rst:1327 +#: ../Doc/library/codecs.rst:1395 ../Doc/library/codecs.rst:1450 msgid "Codec" msgstr "Códec" -#: ../Doc/library/codecs.rst:1069 ../Doc/library/codecs.rst:1324 -#: ../Doc/library/codecs.rst:1391 ../Doc/library/codecs.rst:1446 +#: ../Doc/library/codecs.rst:1072 ../Doc/library/codecs.rst:1327 +#: ../Doc/library/codecs.rst:1395 ../Doc/library/codecs.rst:1450 msgid "Aliases" msgstr "Aliases" -#: ../Doc/library/codecs.rst:1069 +#: ../Doc/library/codecs.rst:1072 msgid "Languages" msgstr "Lenguajes" -#: ../Doc/library/codecs.rst:1071 +#: ../Doc/library/codecs.rst:1074 msgid "ascii" msgstr "ascii" -#: ../Doc/library/codecs.rst:1071 +#: ../Doc/library/codecs.rst:1074 msgid "646, us-ascii" msgstr "646, us-ascii" -#: ../Doc/library/codecs.rst:1071 ../Doc/library/codecs.rst:1077 -#: ../Doc/library/codecs.rst:1085 +#: ../Doc/library/codecs.rst:1074 ../Doc/library/codecs.rst:1080 +#: ../Doc/library/codecs.rst:1088 msgid "English" msgstr "Inglés" -#: ../Doc/library/codecs.rst:1073 +#: ../Doc/library/codecs.rst:1076 msgid "big5" msgstr "big5" -#: ../Doc/library/codecs.rst:1073 +#: ../Doc/library/codecs.rst:1076 msgid "big5-tw, csbig5" msgstr "big5-tw, csbig5" -#: ../Doc/library/codecs.rst:1073 ../Doc/library/codecs.rst:1075 -#: ../Doc/library/codecs.rst:1133 +#: ../Doc/library/codecs.rst:1076 ../Doc/library/codecs.rst:1078 +#: ../Doc/library/codecs.rst:1136 msgid "Traditional Chinese" msgstr "Chino Tradicional" -#: ../Doc/library/codecs.rst:1075 +#: ../Doc/library/codecs.rst:1078 msgid "big5hkscs" msgstr "big5hkscs" -#: ../Doc/library/codecs.rst:1075 +#: ../Doc/library/codecs.rst:1078 msgid "big5-hkscs, hkscs" msgstr "big5-hkscs, hkscs" -#: ../Doc/library/codecs.rst:1077 +#: ../Doc/library/codecs.rst:1080 msgid "cp037" msgstr "cp037" -#: ../Doc/library/codecs.rst:1077 +#: ../Doc/library/codecs.rst:1080 msgid "IBM037, IBM039" msgstr "IBM037, IBM039" -#: ../Doc/library/codecs.rst:1079 +#: ../Doc/library/codecs.rst:1082 msgid "cp273" msgstr "cp273" -#: ../Doc/library/codecs.rst:1079 +#: ../Doc/library/codecs.rst:1082 msgid "273, IBM273, csIBM273" msgstr "273, IBM273, csIBM273" -#: ../Doc/library/codecs.rst:1079 +#: ../Doc/library/codecs.rst:1082 msgid "German" msgstr "Alemán" -#: ../Doc/library/codecs.rst:1083 +#: ../Doc/library/codecs.rst:1086 msgid "cp424" msgstr "cp424" -#: ../Doc/library/codecs.rst:1083 +#: ../Doc/library/codecs.rst:1086 msgid "EBCDIC-CP-HE, IBM424" msgstr "EBCDIC-CP-HE, IBM424" -#: ../Doc/library/codecs.rst:1083 ../Doc/library/codecs.rst:1103 -#: ../Doc/library/codecs.rst:1113 ../Doc/library/codecs.rst:1156 -#: ../Doc/library/codecs.rst:1219 +#: ../Doc/library/codecs.rst:1086 ../Doc/library/codecs.rst:1106 +#: ../Doc/library/codecs.rst:1116 ../Doc/library/codecs.rst:1159 +#: ../Doc/library/codecs.rst:1222 msgid "Hebrew" msgstr "Hebreo" -#: ../Doc/library/codecs.rst:1085 +#: ../Doc/library/codecs.rst:1088 msgid "cp437" msgstr "cp437" -#: ../Doc/library/codecs.rst:1085 +#: ../Doc/library/codecs.rst:1088 msgid "437, IBM437" msgstr "437, IBM437" -#: ../Doc/library/codecs.rst:1087 +#: ../Doc/library/codecs.rst:1090 msgid "cp500" msgstr "cp500" -#: ../Doc/library/codecs.rst:1087 +#: ../Doc/library/codecs.rst:1090 msgid "EBCDIC-CP-BE, EBCDIC-CP-CH, IBM500" msgstr "EBCDIC-CP-BE, EBCDIC-CP-CH, IBM500" -#: ../Doc/library/codecs.rst:1087 ../Doc/library/codecs.rst:1096 -#: ../Doc/library/codecs.rst:1107 ../Doc/library/codecs.rst:1143 -#: ../Doc/library/codecs.rst:1150 ../Doc/library/codecs.rst:1203 -#: ../Doc/library/codecs.rst:1231 ../Doc/library/codecs.rst:1259 +#: ../Doc/library/codecs.rst:1090 ../Doc/library/codecs.rst:1099 +#: ../Doc/library/codecs.rst:1110 ../Doc/library/codecs.rst:1146 +#: ../Doc/library/codecs.rst:1153 ../Doc/library/codecs.rst:1206 +#: ../Doc/library/codecs.rst:1234 ../Doc/library/codecs.rst:1262 msgid "Western Europe" msgstr "Europa Occidental" -#: ../Doc/library/codecs.rst:1090 +#: ../Doc/library/codecs.rst:1093 msgid "cp720" msgstr "cp720" -#: ../Doc/library/codecs.rst:1090 ../Doc/library/codecs.rst:1117 -#: ../Doc/library/codecs.rst:1158 ../Doc/library/codecs.rst:1215 +#: ../Doc/library/codecs.rst:1093 ../Doc/library/codecs.rst:1120 +#: ../Doc/library/codecs.rst:1161 ../Doc/library/codecs.rst:1218 msgid "Arabic" msgstr "Árabe" -#: ../Doc/library/codecs.rst:1092 +#: ../Doc/library/codecs.rst:1095 msgid "cp737" msgstr "cp737" -#: ../Doc/library/codecs.rst:1092 ../Doc/library/codecs.rst:1123 -#: ../Doc/library/codecs.rst:1127 ../Doc/library/codecs.rst:1152 -#: ../Doc/library/codecs.rst:1217 ../Doc/library/codecs.rst:1252 +#: ../Doc/library/codecs.rst:1095 ../Doc/library/codecs.rst:1126 +#: ../Doc/library/codecs.rst:1130 ../Doc/library/codecs.rst:1155 +#: ../Doc/library/codecs.rst:1220 ../Doc/library/codecs.rst:1255 msgid "Greek" msgstr "Griego" -#: ../Doc/library/codecs.rst:1094 +#: ../Doc/library/codecs.rst:1097 msgid "cp775" msgstr "cp775" -#: ../Doc/library/codecs.rst:1094 +#: ../Doc/library/codecs.rst:1097 msgid "IBM775" msgstr "IBM775" -#: ../Doc/library/codecs.rst:1094 ../Doc/library/codecs.rst:1160 -#: ../Doc/library/codecs.rst:1210 ../Doc/library/codecs.rst:1227 +#: ../Doc/library/codecs.rst:1097 ../Doc/library/codecs.rst:1163 +#: ../Doc/library/codecs.rst:1213 ../Doc/library/codecs.rst:1230 msgid "Baltic languages" msgstr "Lenguajes bálticos" -#: ../Doc/library/codecs.rst:1096 +#: ../Doc/library/codecs.rst:1099 msgid "cp850" msgstr "cp850" -#: ../Doc/library/codecs.rst:1096 +#: ../Doc/library/codecs.rst:1099 msgid "850, IBM850" msgstr "850, IBM850" -#: ../Doc/library/codecs.rst:1098 +#: ../Doc/library/codecs.rst:1101 msgid "cp852" msgstr "cp852" -#: ../Doc/library/codecs.rst:1098 +#: ../Doc/library/codecs.rst:1101 msgid "852, IBM852" msgstr "852, IBM852" -#: ../Doc/library/codecs.rst:1098 ../Doc/library/codecs.rst:1145 -#: ../Doc/library/codecs.rst:1206 ../Doc/library/codecs.rst:1256 +#: ../Doc/library/codecs.rst:1101 ../Doc/library/codecs.rst:1148 +#: ../Doc/library/codecs.rst:1209 ../Doc/library/codecs.rst:1259 msgid "Central and Eastern Europe" msgstr "Europa central y del este" -#: ../Doc/library/codecs.rst:1100 +#: ../Doc/library/codecs.rst:1103 msgid "cp855" msgstr "cp855" -#: ../Doc/library/codecs.rst:1100 +#: ../Doc/library/codecs.rst:1103 msgid "855, IBM855" msgstr "855, IBM855" -#: ../Doc/library/codecs.rst:1100 ../Doc/library/codecs.rst:1147 -#: ../Doc/library/codecs.rst:1212 ../Doc/library/codecs.rst:1249 +#: ../Doc/library/codecs.rst:1103 ../Doc/library/codecs.rst:1150 +#: ../Doc/library/codecs.rst:1215 ../Doc/library/codecs.rst:1252 msgid "Bulgarian, Byelorussian, Macedonian, Russian, Serbian" msgstr "Búlgaro, Bielorruso, Macedonio, Ruso, Serbio" -#: ../Doc/library/codecs.rst:1103 +#: ../Doc/library/codecs.rst:1106 msgid "cp856" msgstr "cp856" -#: ../Doc/library/codecs.rst:1105 +#: ../Doc/library/codecs.rst:1108 msgid "cp857" msgstr "cp857" -#: ../Doc/library/codecs.rst:1105 +#: ../Doc/library/codecs.rst:1108 msgid "857, IBM857" msgstr "857, IBM857" -#: ../Doc/library/codecs.rst:1105 ../Doc/library/codecs.rst:1137 -#: ../Doc/library/codecs.rst:1154 ../Doc/library/codecs.rst:1221 -#: ../Doc/library/codecs.rst:1261 +#: ../Doc/library/codecs.rst:1108 ../Doc/library/codecs.rst:1140 +#: ../Doc/library/codecs.rst:1157 ../Doc/library/codecs.rst:1224 +#: ../Doc/library/codecs.rst:1264 msgid "Turkish" msgstr "Turco" -#: ../Doc/library/codecs.rst:1107 +#: ../Doc/library/codecs.rst:1110 msgid "cp858" msgstr "cp858" -#: ../Doc/library/codecs.rst:1107 +#: ../Doc/library/codecs.rst:1110 msgid "858, IBM858" msgstr "858, IBM858" -#: ../Doc/library/codecs.rst:1109 +#: ../Doc/library/codecs.rst:1112 msgid "cp860" msgstr "cp860" -#: ../Doc/library/codecs.rst:1109 +#: ../Doc/library/codecs.rst:1112 msgid "860, IBM860" msgstr "860, IBM860" -#: ../Doc/library/codecs.rst:1109 +#: ../Doc/library/codecs.rst:1112 msgid "Portuguese" msgstr "Portugués" -#: ../Doc/library/codecs.rst:1111 +#: ../Doc/library/codecs.rst:1114 msgid "cp861" msgstr "cp861" -#: ../Doc/library/codecs.rst:1111 +#: ../Doc/library/codecs.rst:1114 msgid "861, CP-IS, IBM861" msgstr "861, CP-IS, IBM861" -#: ../Doc/library/codecs.rst:1111 ../Doc/library/codecs.rst:1254 +#: ../Doc/library/codecs.rst:1114 ../Doc/library/codecs.rst:1257 msgid "Icelandic" msgstr "Islandés" -#: ../Doc/library/codecs.rst:1113 +#: ../Doc/library/codecs.rst:1116 msgid "cp862" msgstr "cp862" -#: ../Doc/library/codecs.rst:1113 +#: ../Doc/library/codecs.rst:1116 msgid "862, IBM862" msgstr "862, IBM862" -#: ../Doc/library/codecs.rst:1115 +#: ../Doc/library/codecs.rst:1118 msgid "cp863" msgstr "cp863" -#: ../Doc/library/codecs.rst:1115 +#: ../Doc/library/codecs.rst:1118 msgid "863, IBM863" msgstr "863, IBM863" -#: ../Doc/library/codecs.rst:1115 +#: ../Doc/library/codecs.rst:1118 msgid "Canadian" msgstr "Canadiense" -#: ../Doc/library/codecs.rst:1117 +#: ../Doc/library/codecs.rst:1120 msgid "cp864" msgstr "cp864" -#: ../Doc/library/codecs.rst:1117 +#: ../Doc/library/codecs.rst:1120 msgid "IBM864" msgstr "IBM864" -#: ../Doc/library/codecs.rst:1119 +#: ../Doc/library/codecs.rst:1122 msgid "cp865" msgstr "cp865" -#: ../Doc/library/codecs.rst:1119 +#: ../Doc/library/codecs.rst:1122 msgid "865, IBM865" msgstr "865, IBM865" -#: ../Doc/library/codecs.rst:1119 +#: ../Doc/library/codecs.rst:1122 msgid "Danish, Norwegian" msgstr "Danés, Noruego" -#: ../Doc/library/codecs.rst:1121 +#: ../Doc/library/codecs.rst:1124 msgid "cp866" msgstr "cp866" -#: ../Doc/library/codecs.rst:1121 +#: ../Doc/library/codecs.rst:1124 msgid "866, IBM866" msgstr "866, IBM866" -#: ../Doc/library/codecs.rst:1121 ../Doc/library/codecs.rst:1237 +#: ../Doc/library/codecs.rst:1124 ../Doc/library/codecs.rst:1240 msgid "Russian" msgstr "Ruso" -#: ../Doc/library/codecs.rst:1123 +#: ../Doc/library/codecs.rst:1126 msgid "cp869" msgstr "cp869" -#: ../Doc/library/codecs.rst:1123 +#: ../Doc/library/codecs.rst:1126 msgid "869, CP-GR, IBM869" msgstr "869, CP-GR, IBM869" -#: ../Doc/library/codecs.rst:1125 +#: ../Doc/library/codecs.rst:1128 msgid "cp874" msgstr "cp874" -#: ../Doc/library/codecs.rst:1125 +#: ../Doc/library/codecs.rst:1128 msgid "Thai" msgstr "Tailandés" -#: ../Doc/library/codecs.rst:1127 +#: ../Doc/library/codecs.rst:1130 msgid "cp875" msgstr "cp875" -#: ../Doc/library/codecs.rst:1129 +#: ../Doc/library/codecs.rst:1132 msgid "cp932" msgstr "cp932" -#: ../Doc/library/codecs.rst:1129 +#: ../Doc/library/codecs.rst:1132 msgid "932, ms932, mskanji, ms-kanji" msgstr "932, ms932, mskanji, ms-kanji" -#: ../Doc/library/codecs.rst:1129 ../Doc/library/codecs.rst:1164 -#: ../Doc/library/codecs.rst:1166 ../Doc/library/codecs.rst:1168 -#: ../Doc/library/codecs.rst:1185 ../Doc/library/codecs.rst:1188 -#: ../Doc/library/codecs.rst:1193 ../Doc/library/codecs.rst:1196 -#: ../Doc/library/codecs.rst:1198 ../Doc/library/codecs.rst:1266 -#: ../Doc/library/codecs.rst:1269 ../Doc/library/codecs.rst:1272 +#: ../Doc/library/codecs.rst:1132 ../Doc/library/codecs.rst:1167 +#: ../Doc/library/codecs.rst:1169 ../Doc/library/codecs.rst:1171 +#: ../Doc/library/codecs.rst:1188 ../Doc/library/codecs.rst:1191 +#: ../Doc/library/codecs.rst:1196 ../Doc/library/codecs.rst:1199 +#: ../Doc/library/codecs.rst:1201 ../Doc/library/codecs.rst:1269 +#: ../Doc/library/codecs.rst:1272 ../Doc/library/codecs.rst:1275 msgid "Japanese" msgstr "Japonés" -#: ../Doc/library/codecs.rst:1131 +#: ../Doc/library/codecs.rst:1134 msgid "cp949" msgstr "cp949" -#: ../Doc/library/codecs.rst:1131 +#: ../Doc/library/codecs.rst:1134 msgid "949, ms949, uhc" msgstr "949, ms949, uhc" -#: ../Doc/library/codecs.rst:1131 ../Doc/library/codecs.rst:1170 -#: ../Doc/library/codecs.rst:1200 ../Doc/library/codecs.rst:1235 +#: ../Doc/library/codecs.rst:1134 ../Doc/library/codecs.rst:1173 +#: ../Doc/library/codecs.rst:1203 ../Doc/library/codecs.rst:1238 msgid "Korean" msgstr "Coreano" -#: ../Doc/library/codecs.rst:1133 +#: ../Doc/library/codecs.rst:1136 msgid "cp950" msgstr "cp950" -#: ../Doc/library/codecs.rst:1133 +#: ../Doc/library/codecs.rst:1136 msgid "950, ms950" msgstr "950, ms950" -#: ../Doc/library/codecs.rst:1135 +#: ../Doc/library/codecs.rst:1138 msgid "cp1006" msgstr "cp1006" -#: ../Doc/library/codecs.rst:1135 +#: ../Doc/library/codecs.rst:1138 msgid "Urdu" msgstr "Urdu" -#: ../Doc/library/codecs.rst:1137 +#: ../Doc/library/codecs.rst:1140 msgid "cp1026" msgstr "cp1026" -#: ../Doc/library/codecs.rst:1137 +#: ../Doc/library/codecs.rst:1140 msgid "ibm1026" msgstr "ibm1026" -#: ../Doc/library/codecs.rst:1139 +#: ../Doc/library/codecs.rst:1142 msgid "cp1125" msgstr "cp1125" -#: ../Doc/library/codecs.rst:1139 +#: ../Doc/library/codecs.rst:1142 msgid "1125, ibm1125, cp866u, ruscii" msgstr "1125, ibm1125, cp866u, ruscii" -#: ../Doc/library/codecs.rst:1139 ../Doc/library/codecs.rst:1243 +#: ../Doc/library/codecs.rst:1142 ../Doc/library/codecs.rst:1246 msgid "Ukrainian" msgstr "Ucraniano" -#: ../Doc/library/codecs.rst:1143 +#: ../Doc/library/codecs.rst:1146 msgid "cp1140" msgstr "cp1140" -#: ../Doc/library/codecs.rst:1143 +#: ../Doc/library/codecs.rst:1146 msgid "ibm1140" msgstr "ibm1140" -#: ../Doc/library/codecs.rst:1145 +#: ../Doc/library/codecs.rst:1148 msgid "cp1250" msgstr "cp1250" -#: ../Doc/library/codecs.rst:1145 +#: ../Doc/library/codecs.rst:1148 msgid "windows-1250" msgstr "windows-1250" -#: ../Doc/library/codecs.rst:1147 +#: ../Doc/library/codecs.rst:1150 msgid "cp1251" msgstr "cp1251" -#: ../Doc/library/codecs.rst:1147 +#: ../Doc/library/codecs.rst:1150 msgid "windows-1251" msgstr "windows-1251" -#: ../Doc/library/codecs.rst:1150 +#: ../Doc/library/codecs.rst:1153 msgid "cp1252" msgstr "cp1252" -#: ../Doc/library/codecs.rst:1150 +#: ../Doc/library/codecs.rst:1153 msgid "windows-1252" msgstr "windows-1252" -#: ../Doc/library/codecs.rst:1152 +#: ../Doc/library/codecs.rst:1155 msgid "cp1253" msgstr "cp1253" -#: ../Doc/library/codecs.rst:1152 +#: ../Doc/library/codecs.rst:1155 msgid "windows-1253" msgstr "windows-1253" -#: ../Doc/library/codecs.rst:1154 +#: ../Doc/library/codecs.rst:1157 msgid "cp1254" msgstr "cp1254" -#: ../Doc/library/codecs.rst:1154 +#: ../Doc/library/codecs.rst:1157 msgid "windows-1254" msgstr "windows-1254" -#: ../Doc/library/codecs.rst:1156 +#: ../Doc/library/codecs.rst:1159 msgid "cp1255" msgstr "cp1255" -#: ../Doc/library/codecs.rst:1156 +#: ../Doc/library/codecs.rst:1159 msgid "windows-1255" msgstr "windows-1255" -#: ../Doc/library/codecs.rst:1158 +#: ../Doc/library/codecs.rst:1161 msgid "cp1256" msgstr "cp1256" -#: ../Doc/library/codecs.rst:1158 +#: ../Doc/library/codecs.rst:1161 msgid "windows-1256" msgstr "windows-1256" -#: ../Doc/library/codecs.rst:1160 +#: ../Doc/library/codecs.rst:1163 msgid "cp1257" msgstr "cp1257" -#: ../Doc/library/codecs.rst:1160 +#: ../Doc/library/codecs.rst:1163 msgid "windows-1257" msgstr "windows-1257" -#: ../Doc/library/codecs.rst:1162 +#: ../Doc/library/codecs.rst:1165 msgid "cp1258" msgstr "cp1258" -#: ../Doc/library/codecs.rst:1162 +#: ../Doc/library/codecs.rst:1165 msgid "windows-1258" msgstr "windows-1258" -#: ../Doc/library/codecs.rst:1162 +#: ../Doc/library/codecs.rst:1165 msgid "Vietnamese" msgstr "Vietnamita" -#: ../Doc/library/codecs.rst:1164 +#: ../Doc/library/codecs.rst:1167 msgid "euc_jp" msgstr "euc_jp" -#: ../Doc/library/codecs.rst:1164 +#: ../Doc/library/codecs.rst:1167 msgid "eucjp, ujis, u-jis" msgstr "eucjp, ujis, u-jis" -#: ../Doc/library/codecs.rst:1166 +#: ../Doc/library/codecs.rst:1169 msgid "euc_jis_2004" msgstr "euc_jis_2004" -#: ../Doc/library/codecs.rst:1166 +#: ../Doc/library/codecs.rst:1169 msgid "jisx0213, eucjis2004" msgstr "jisx0213, eucjis2004" -#: ../Doc/library/codecs.rst:1168 +#: ../Doc/library/codecs.rst:1171 msgid "euc_jisx0213" msgstr "euc_jisx0213" -#: ../Doc/library/codecs.rst:1168 +#: ../Doc/library/codecs.rst:1171 msgid "eucjisx0213" msgstr "eucjisx0213" -#: ../Doc/library/codecs.rst:1170 +#: ../Doc/library/codecs.rst:1173 msgid "euc_kr" msgstr "euc_kr" -#: ../Doc/library/codecs.rst:1170 +#: ../Doc/library/codecs.rst:1173 msgid "euckr, korean, ksc5601, ks_c-5601, ks_c-5601-1987, ksx1001, ks_x-1001" msgstr "euckr, korean, ksc5601, ks_c-5601, ks_c-5601-1987, ksx1001, ks_x-1001" -#: ../Doc/library/codecs.rst:1174 +#: ../Doc/library/codecs.rst:1177 msgid "gb2312" msgstr "gb2312" -#: ../Doc/library/codecs.rst:1174 +#: ../Doc/library/codecs.rst:1177 msgid "" "chinese, csiso58gb231280, euc-cn, euccn, eucgb2312-cn, gb2312-1980, " "gb2312-80, iso-ir-58" @@ -2414,431 +2417,431 @@ msgstr "" "chinese, csiso58gb231280, euc-cn, euccn, eucgb2312-cn, gb2312-1980, " "gb2312-80, iso-ir-58" -#: ../Doc/library/codecs.rst:1174 ../Doc/library/codecs.rst:1183 +#: ../Doc/library/codecs.rst:1177 ../Doc/library/codecs.rst:1186 msgid "Simplified Chinese" msgstr "Chino simplificado" -#: ../Doc/library/codecs.rst:1179 +#: ../Doc/library/codecs.rst:1182 msgid "gbk" msgstr "gbk" -#: ../Doc/library/codecs.rst:1179 +#: ../Doc/library/codecs.rst:1182 msgid "936, cp936, ms936" msgstr "936, cp936, ms936" -#: ../Doc/library/codecs.rst:1179 ../Doc/library/codecs.rst:1181 +#: ../Doc/library/codecs.rst:1182 ../Doc/library/codecs.rst:1184 msgid "Unified Chinese" msgstr "Chino Unificado" -#: ../Doc/library/codecs.rst:1181 +#: ../Doc/library/codecs.rst:1184 msgid "gb18030" msgstr "gb18030" -#: ../Doc/library/codecs.rst:1181 +#: ../Doc/library/codecs.rst:1184 msgid "gb18030-2000" msgstr "gb18030-2000" -#: ../Doc/library/codecs.rst:1183 +#: ../Doc/library/codecs.rst:1186 msgid "hz" msgstr "hz" -#: ../Doc/library/codecs.rst:1183 +#: ../Doc/library/codecs.rst:1186 msgid "hzgb, hz-gb, hz-gb-2312" msgstr "hzgb, hz-gb, hz-gb-2312" -#: ../Doc/library/codecs.rst:1185 +#: ../Doc/library/codecs.rst:1188 msgid "iso2022_jp" msgstr "iso2022_jp" -#: ../Doc/library/codecs.rst:1185 +#: ../Doc/library/codecs.rst:1188 msgid "csiso2022jp, iso2022jp, iso-2022-jp" msgstr "csiso2022jp, iso2022jp, iso-2022-jp" -#: ../Doc/library/codecs.rst:1188 +#: ../Doc/library/codecs.rst:1191 msgid "iso2022_jp_1" msgstr "iso2022_jp_1" -#: ../Doc/library/codecs.rst:1188 +#: ../Doc/library/codecs.rst:1191 msgid "iso2022jp-1, iso-2022-jp-1" msgstr "iso2022jp-1, iso-2022-jp-1" -#: ../Doc/library/codecs.rst:1190 +#: ../Doc/library/codecs.rst:1193 msgid "iso2022_jp_2" msgstr "iso2022_jp_2" -#: ../Doc/library/codecs.rst:1190 +#: ../Doc/library/codecs.rst:1193 msgid "iso2022jp-2, iso-2022-jp-2" msgstr "iso2022jp-2, iso-2022-jp-2" -#: ../Doc/library/codecs.rst:1190 +#: ../Doc/library/codecs.rst:1193 msgid "Japanese, Korean, Simplified Chinese, Western Europe, Greek" msgstr "Japonés, Coreano, Chino simplificado, Europa occidental, Griego" -#: ../Doc/library/codecs.rst:1193 +#: ../Doc/library/codecs.rst:1196 msgid "iso2022_jp_2004" msgstr "iso2022_jp_2004" -#: ../Doc/library/codecs.rst:1193 +#: ../Doc/library/codecs.rst:1196 msgid "iso2022jp-2004, iso-2022-jp-2004" msgstr "iso2022jp-2004, iso-2022-jp-2004" -#: ../Doc/library/codecs.rst:1196 +#: ../Doc/library/codecs.rst:1199 msgid "iso2022_jp_3" msgstr "iso2022_jp_3" -#: ../Doc/library/codecs.rst:1196 +#: ../Doc/library/codecs.rst:1199 msgid "iso2022jp-3, iso-2022-jp-3" msgstr "iso2022jp-3, iso-2022-jp-3" -#: ../Doc/library/codecs.rst:1198 +#: ../Doc/library/codecs.rst:1201 msgid "iso2022_jp_ext" msgstr "iso2022_jp_ext" -#: ../Doc/library/codecs.rst:1198 +#: ../Doc/library/codecs.rst:1201 msgid "iso2022jp-ext, iso-2022-jp-ext" msgstr "iso2022jp-ext, iso-2022-jp-ext" -#: ../Doc/library/codecs.rst:1200 +#: ../Doc/library/codecs.rst:1203 msgid "iso2022_kr" msgstr "iso2022_kr" -#: ../Doc/library/codecs.rst:1200 +#: ../Doc/library/codecs.rst:1203 msgid "csiso2022kr, iso2022kr, iso-2022-kr" msgstr "csiso2022kr, iso2022kr, iso-2022-kr" -#: ../Doc/library/codecs.rst:1203 +#: ../Doc/library/codecs.rst:1206 msgid "latin_1" msgstr "latin_1" -#: ../Doc/library/codecs.rst:1203 +#: ../Doc/library/codecs.rst:1206 msgid "iso-8859-1, iso8859-1, 8859, cp819, latin, latin1, L1" msgstr "iso-8859-1, iso8859-1, 8859, cp819, latin, latin1, L1" -#: ../Doc/library/codecs.rst:1206 +#: ../Doc/library/codecs.rst:1209 msgid "iso8859_2" msgstr "iso8859_2" -#: ../Doc/library/codecs.rst:1206 +#: ../Doc/library/codecs.rst:1209 msgid "iso-8859-2, latin2, L2" msgstr "iso-8859-2, latin2, L2" -#: ../Doc/library/codecs.rst:1208 +#: ../Doc/library/codecs.rst:1211 msgid "iso8859_3" msgstr "iso8859_3" -#: ../Doc/library/codecs.rst:1208 +#: ../Doc/library/codecs.rst:1211 msgid "iso-8859-3, latin3, L3" msgstr "iso-8859-3, latin3, L3" -#: ../Doc/library/codecs.rst:1208 +#: ../Doc/library/codecs.rst:1211 msgid "Esperanto, Maltese" msgstr "Esperanto, Maltés" -#: ../Doc/library/codecs.rst:1210 +#: ../Doc/library/codecs.rst:1213 msgid "iso8859_4" msgstr "iso8859_4" -#: ../Doc/library/codecs.rst:1210 +#: ../Doc/library/codecs.rst:1213 msgid "iso-8859-4, latin4, L4" msgstr "iso-8859-4, latin4, L4" -#: ../Doc/library/codecs.rst:1212 +#: ../Doc/library/codecs.rst:1215 msgid "iso8859_5" msgstr "iso8859_5" -#: ../Doc/library/codecs.rst:1212 +#: ../Doc/library/codecs.rst:1215 msgid "iso-8859-5, cyrillic" msgstr "iso-8859-5, cyrillic" -#: ../Doc/library/codecs.rst:1215 +#: ../Doc/library/codecs.rst:1218 msgid "iso8859_6" msgstr "iso8859_6" -#: ../Doc/library/codecs.rst:1215 +#: ../Doc/library/codecs.rst:1218 msgid "iso-8859-6, arabic" msgstr "iso-8859-6, arabic" -#: ../Doc/library/codecs.rst:1217 +#: ../Doc/library/codecs.rst:1220 msgid "iso8859_7" msgstr "iso8859_7" -#: ../Doc/library/codecs.rst:1217 +#: ../Doc/library/codecs.rst:1220 msgid "iso-8859-7, greek, greek8" msgstr "iso-8859-7, greek, greek8" -#: ../Doc/library/codecs.rst:1219 +#: ../Doc/library/codecs.rst:1222 msgid "iso8859_8" msgstr "iso8859_8" -#: ../Doc/library/codecs.rst:1219 +#: ../Doc/library/codecs.rst:1222 msgid "iso-8859-8, hebrew" msgstr "iso-8859-8, hebrew" -#: ../Doc/library/codecs.rst:1221 +#: ../Doc/library/codecs.rst:1224 msgid "iso8859_9" msgstr "iso8859_9" -#: ../Doc/library/codecs.rst:1221 +#: ../Doc/library/codecs.rst:1224 msgid "iso-8859-9, latin5, L5" msgstr "iso-8859-9, latin5, L5" -#: ../Doc/library/codecs.rst:1223 +#: ../Doc/library/codecs.rst:1226 msgid "iso8859_10" msgstr "iso8859_10" -#: ../Doc/library/codecs.rst:1223 +#: ../Doc/library/codecs.rst:1226 msgid "iso-8859-10, latin6, L6" msgstr "iso-8859-10, latin6, L6" -#: ../Doc/library/codecs.rst:1223 +#: ../Doc/library/codecs.rst:1226 msgid "Nordic languages" msgstr "Lenguajes nórdicos" -#: ../Doc/library/codecs.rst:1225 +#: ../Doc/library/codecs.rst:1228 msgid "iso8859_11" msgstr "iso8859_11" -#: ../Doc/library/codecs.rst:1225 +#: ../Doc/library/codecs.rst:1228 msgid "iso-8859-11, thai" msgstr "iso-8859-11, thai" -#: ../Doc/library/codecs.rst:1225 +#: ../Doc/library/codecs.rst:1228 msgid "Thai languages" msgstr "Lenguajes tailandeses" -#: ../Doc/library/codecs.rst:1227 +#: ../Doc/library/codecs.rst:1230 msgid "iso8859_13" msgstr "iso8859_13" -#: ../Doc/library/codecs.rst:1227 +#: ../Doc/library/codecs.rst:1230 msgid "iso-8859-13, latin7, L7" msgstr "iso-8859-13, latin7, L7" -#: ../Doc/library/codecs.rst:1229 +#: ../Doc/library/codecs.rst:1232 msgid "iso8859_14" msgstr "iso8859_14" -#: ../Doc/library/codecs.rst:1229 +#: ../Doc/library/codecs.rst:1232 msgid "iso-8859-14, latin8, L8" msgstr "iso-8859-14, latin8, L8" -#: ../Doc/library/codecs.rst:1229 +#: ../Doc/library/codecs.rst:1232 msgid "Celtic languages" msgstr "Lenguajes Celtas" -#: ../Doc/library/codecs.rst:1231 +#: ../Doc/library/codecs.rst:1234 msgid "iso8859_15" msgstr "iso8859_15" -#: ../Doc/library/codecs.rst:1231 +#: ../Doc/library/codecs.rst:1234 msgid "iso-8859-15, latin9, L9" msgstr "iso-8859-15, latin9, L9" -#: ../Doc/library/codecs.rst:1233 +#: ../Doc/library/codecs.rst:1236 msgid "iso8859_16" msgstr "iso8859_16" -#: ../Doc/library/codecs.rst:1233 +#: ../Doc/library/codecs.rst:1236 msgid "iso-8859-16, latin10, L10" msgstr "iso-8859-16, latin10, L10" -#: ../Doc/library/codecs.rst:1233 +#: ../Doc/library/codecs.rst:1236 msgid "South-Eastern Europe" msgstr "Europa sudoriental" -#: ../Doc/library/codecs.rst:1235 +#: ../Doc/library/codecs.rst:1238 msgid "johab" msgstr "johab" -#: ../Doc/library/codecs.rst:1235 +#: ../Doc/library/codecs.rst:1238 msgid "cp1361, ms1361" msgstr "cp1361, ms1361" -#: ../Doc/library/codecs.rst:1237 +#: ../Doc/library/codecs.rst:1240 msgid "koi8_r" msgstr "koi8_r" -#: ../Doc/library/codecs.rst:1239 +#: ../Doc/library/codecs.rst:1242 msgid "koi8_t" msgstr "koi8_t" -#: ../Doc/library/codecs.rst:1239 +#: ../Doc/library/codecs.rst:1242 msgid "Tajik" msgstr "Tayiko" -#: ../Doc/library/codecs.rst:1243 +#: ../Doc/library/codecs.rst:1246 msgid "koi8_u" msgstr "koi8_u" -#: ../Doc/library/codecs.rst:1245 +#: ../Doc/library/codecs.rst:1248 msgid "kz1048" msgstr "kz1048" -#: ../Doc/library/codecs.rst:1245 +#: ../Doc/library/codecs.rst:1248 msgid "kz_1048, strk1048_2002, rk1048" msgstr "kz_1048, strk1048_2002, rk1048" -#: ../Doc/library/codecs.rst:1245 ../Doc/library/codecs.rst:1263 +#: ../Doc/library/codecs.rst:1248 ../Doc/library/codecs.rst:1266 msgid "Kazakh" msgstr "Kazajo" -#: ../Doc/library/codecs.rst:1249 +#: ../Doc/library/codecs.rst:1252 msgid "mac_cyrillic" msgstr "mac_cyrillic" -#: ../Doc/library/codecs.rst:1249 +#: ../Doc/library/codecs.rst:1252 msgid "maccyrillic" msgstr "maccyrillic" -#: ../Doc/library/codecs.rst:1252 +#: ../Doc/library/codecs.rst:1255 msgid "mac_greek" msgstr "mac_greek" -#: ../Doc/library/codecs.rst:1252 +#: ../Doc/library/codecs.rst:1255 msgid "macgreek" msgstr "macgreek" -#: ../Doc/library/codecs.rst:1254 +#: ../Doc/library/codecs.rst:1257 msgid "mac_iceland" msgstr "mac_iceland" -#: ../Doc/library/codecs.rst:1254 +#: ../Doc/library/codecs.rst:1257 msgid "maciceland" msgstr "maciceland" -#: ../Doc/library/codecs.rst:1256 +#: ../Doc/library/codecs.rst:1259 msgid "mac_latin2" msgstr "mac_latin2" -#: ../Doc/library/codecs.rst:1256 +#: ../Doc/library/codecs.rst:1259 msgid "maclatin2, maccentraleurope, mac_centeuro" msgstr "maclatin2, maccentraleurope, mac_centeuro" -#: ../Doc/library/codecs.rst:1259 +#: ../Doc/library/codecs.rst:1262 msgid "mac_roman" msgstr "mac_roman" -#: ../Doc/library/codecs.rst:1259 +#: ../Doc/library/codecs.rst:1262 msgid "macroman, macintosh" msgstr "macroman, macintosh" -#: ../Doc/library/codecs.rst:1261 +#: ../Doc/library/codecs.rst:1264 msgid "mac_turkish" msgstr "mac_turkish" -#: ../Doc/library/codecs.rst:1261 +#: ../Doc/library/codecs.rst:1264 msgid "macturkish" msgstr "macturkish" -#: ../Doc/library/codecs.rst:1263 +#: ../Doc/library/codecs.rst:1266 msgid "ptcp154" msgstr "ptcp154" -#: ../Doc/library/codecs.rst:1263 +#: ../Doc/library/codecs.rst:1266 msgid "csptcp154, pt154, cp154, cyrillic-asian" msgstr "csptcp154, pt154, cp154, cyrillic-asian" -#: ../Doc/library/codecs.rst:1266 +#: ../Doc/library/codecs.rst:1269 msgid "shift_jis" msgstr "shift_jis" -#: ../Doc/library/codecs.rst:1266 +#: ../Doc/library/codecs.rst:1269 msgid "csshiftjis, shiftjis, sjis, s_jis" msgstr "csshiftjis, shiftjis, sjis, s_jis" -#: ../Doc/library/codecs.rst:1269 +#: ../Doc/library/codecs.rst:1272 msgid "shift_jis_2004" msgstr "shift_jis_2004" -#: ../Doc/library/codecs.rst:1269 +#: ../Doc/library/codecs.rst:1272 msgid "shiftjis2004, sjis_2004, sjis2004" msgstr "shiftjis2004, sjis_2004, sjis2004" -#: ../Doc/library/codecs.rst:1272 +#: ../Doc/library/codecs.rst:1275 msgid "shift_jisx0213" msgstr "shift_jisx0213" -#: ../Doc/library/codecs.rst:1272 +#: ../Doc/library/codecs.rst:1275 msgid "shiftjisx0213, sjisx0213, s_jisx0213" msgstr "shiftjisx0213, sjisx0213, s_jisx0213" -#: ../Doc/library/codecs.rst:1275 +#: ../Doc/library/codecs.rst:1278 msgid "utf_32" msgstr "utf_32" -#: ../Doc/library/codecs.rst:1275 +#: ../Doc/library/codecs.rst:1278 msgid "U32, utf32" msgstr "U32, utf32" -#: ../Doc/library/codecs.rst:1275 ../Doc/library/codecs.rst:1277 -#: ../Doc/library/codecs.rst:1279 ../Doc/library/codecs.rst:1281 -#: ../Doc/library/codecs.rst:1283 ../Doc/library/codecs.rst:1285 -#: ../Doc/library/codecs.rst:1287 ../Doc/library/codecs.rst:1289 -#: ../Doc/library/codecs.rst:1291 +#: ../Doc/library/codecs.rst:1278 ../Doc/library/codecs.rst:1280 +#: ../Doc/library/codecs.rst:1282 ../Doc/library/codecs.rst:1284 +#: ../Doc/library/codecs.rst:1286 ../Doc/library/codecs.rst:1288 +#: ../Doc/library/codecs.rst:1290 ../Doc/library/codecs.rst:1292 +#: ../Doc/library/codecs.rst:1294 msgid "all languages" msgstr "todos los lenguajes" -#: ../Doc/library/codecs.rst:1277 +#: ../Doc/library/codecs.rst:1280 msgid "utf_32_be" msgstr "utf_32_be" -#: ../Doc/library/codecs.rst:1277 +#: ../Doc/library/codecs.rst:1280 msgid "UTF-32BE" msgstr "UTF-32BE" -#: ../Doc/library/codecs.rst:1279 +#: ../Doc/library/codecs.rst:1282 msgid "utf_32_le" msgstr "utf_32_le" -#: ../Doc/library/codecs.rst:1279 +#: ../Doc/library/codecs.rst:1282 msgid "UTF-32LE" msgstr "UTF-32LE" -#: ../Doc/library/codecs.rst:1281 +#: ../Doc/library/codecs.rst:1284 msgid "utf_16" msgstr "utf_16" -#: ../Doc/library/codecs.rst:1281 +#: ../Doc/library/codecs.rst:1284 msgid "U16, utf16" msgstr "U16, utf16" -#: ../Doc/library/codecs.rst:1283 +#: ../Doc/library/codecs.rst:1286 msgid "utf_16_be" msgstr "utf_16_be" -#: ../Doc/library/codecs.rst:1283 +#: ../Doc/library/codecs.rst:1286 msgid "UTF-16BE" msgstr "UTF-16BE" -#: ../Doc/library/codecs.rst:1285 +#: ../Doc/library/codecs.rst:1288 msgid "utf_16_le" msgstr "utf_16_le" -#: ../Doc/library/codecs.rst:1285 +#: ../Doc/library/codecs.rst:1288 msgid "UTF-16LE" msgstr "UTF-16LE" -#: ../Doc/library/codecs.rst:1287 +#: ../Doc/library/codecs.rst:1290 msgid "utf_7" msgstr "utf_7" -#: ../Doc/library/codecs.rst:1287 +#: ../Doc/library/codecs.rst:1290 msgid "U7, unicode-1-1-utf-7" msgstr "U7, unicode-1-1-utf-7" -#: ../Doc/library/codecs.rst:1289 +#: ../Doc/library/codecs.rst:1292 msgid "utf_8" msgstr "utf_8" -#: ../Doc/library/codecs.rst:1289 +#: ../Doc/library/codecs.rst:1292 msgid "U8, UTF, utf8, cp65001" msgstr "U8, UTF, utf8, cp65001" -#: ../Doc/library/codecs.rst:1291 +#: ../Doc/library/codecs.rst:1294 msgid "utf_8_sig" msgstr "utf_8_sig" -#: ../Doc/library/codecs.rst:1294 +#: ../Doc/library/codecs.rst:1297 msgid "" "The utf-16\\* and utf-32\\* encoders no longer allow surrogate code points " "(``U+D800``--``U+DFFF``) to be encoded. The utf-32\\* decoders no longer " @@ -2849,15 +2852,15 @@ msgstr "" "ya no decodifican secuencias de bytes que corresponden a puntos de código " "sustituto." -#: ../Doc/library/codecs.rst:1300 +#: ../Doc/library/codecs.rst:1303 msgid "``cp65001`` is now an alias to ``utf_8``." msgstr "``cp65001`` ahora es un alias de ``utf_8``." -#: ../Doc/library/codecs.rst:1305 +#: ../Doc/library/codecs.rst:1308 msgid "Python Specific Encodings" msgstr "Codificaciones específicas de Python" -#: ../Doc/library/codecs.rst:1307 +#: ../Doc/library/codecs.rst:1310 msgid "" "A number of predefined codecs are specific to Python, so their codec names " "have no meaning outside Python. These are listed in the tables below based " @@ -2875,11 +2878,11 @@ msgstr "" "texto). Para los códecs asimétricos, el significado indicado describe la " "dirección de codificación." -#: ../Doc/library/codecs.rst:1315 +#: ../Doc/library/codecs.rst:1318 msgid "Text Encodings" msgstr "Codificaciones de texto" -#: ../Doc/library/codecs.rst:1317 +#: ../Doc/library/codecs.rst:1320 msgid "" "The following codecs provide :class:`str` to :class:`bytes` encoding and :" "term:`bytes-like object` to :class:`str` decoding, similar to the Unicode " @@ -2889,11 +2892,11 @@ msgstr "" "`bytes` y decodificación de :term:`bytes-like object` a :class:`str`, " "similar a las codificaciones de texto Unicode." -#: ../Doc/library/codecs.rst:1326 +#: ../Doc/library/codecs.rst:1329 msgid "idna" msgstr "idna" -#: ../Doc/library/codecs.rst:1326 +#: ../Doc/library/codecs.rst:1329 msgid "" "Implement :rfc:`3490`, see also :mod:`encodings.idna`. Only " "``errors='strict'`` is supported." @@ -2901,67 +2904,68 @@ msgstr "" "Implementar :rfc:`3490`, ver también :mod:`encodings.idna`. Solo se admite " "``errors='strict'``." -#: ../Doc/library/codecs.rst:1332 +#: ../Doc/library/codecs.rst:1335 msgid "mbcs" msgstr "mbcs" -#: ../Doc/library/codecs.rst:1332 +#: ../Doc/library/codecs.rst:1335 msgid "ansi, dbcs" msgstr "ansi, dbcs" -#: ../Doc/library/codecs.rst:1332 +#: ../Doc/library/codecs.rst:1335 msgid "" "Windows only: Encode the operand according to the ANSI codepage (CP_ACP)." msgstr "" "Solo Windows: codifique el operando de acuerdo con la página de códigos ANSI " "(CP_ACP)." -#: ../Doc/library/codecs.rst:1336 +#: ../Doc/library/codecs.rst:1339 msgid "oem" msgstr "oem" -#: ../Doc/library/codecs.rst:1336 +#: ../Doc/library/codecs.rst:1339 msgid "" "Windows only: Encode the operand according to the OEM codepage (CP_OEMCP)." msgstr "" "Solo Windows: codifique el operando de acuerdo con la página de códigos OEM " "(CP_OEMCP)." -#: ../Doc/library/codecs.rst:1342 +#: ../Doc/library/codecs.rst:1345 msgid "palmos" msgstr "palmos" -#: ../Doc/library/codecs.rst:1342 +#: ../Doc/library/codecs.rst:1345 msgid "Encoding of PalmOS 3.5." msgstr "Codificación de PalmOS 3.5." -#: ../Doc/library/codecs.rst:1344 +#: ../Doc/library/codecs.rst:1347 msgid "punycode" msgstr "punycode" -#: ../Doc/library/codecs.rst:1344 +#: ../Doc/library/codecs.rst:1347 msgid "Implement :rfc:`3492`. Stateful codecs are not supported." msgstr "Implementar :rfc:`3492`. Los códecs con estado no son compatibles." -#: ../Doc/library/codecs.rst:1348 +#: ../Doc/library/codecs.rst:1351 msgid "raw_unicode_escape" msgstr "raw_unicode_escape" -#: ../Doc/library/codecs.rst:1348 +#: ../Doc/library/codecs.rst:1351 +#, fuzzy msgid "" -"Latin-1 encoding with ``\\uXXXX`` and ``\\UXXXXXXXX`` for other code points. " -"Existing backslashes are not escaped in any way. It is used in the Python " -"pickle protocol." +"Latin-1 encoding with :samp:`\\\\u{XXXX}` and :samp:`\\\\U{XXXXXXXX}` for " +"other code points. Existing backslashes are not escaped in any way. It is " +"used in the Python pickle protocol." msgstr "" "Codificación Latin-1 con ``\\uXXXX`` y ``\\UXXXXXXXX`` para otros puntos de " "código. Las barras invertidas existentes no se escapan de ninguna manera. Se " "usa en el protocolo Python *pickle*." -#: ../Doc/library/codecs.rst:1357 +#: ../Doc/library/codecs.rst:1361 msgid "undefined" msgstr "indefinido" -#: ../Doc/library/codecs.rst:1357 +#: ../Doc/library/codecs.rst:1361 msgid "" "Raise an exception for all conversions, even empty strings. The error " "handler is ignored." @@ -2969,11 +2973,11 @@ msgstr "" "Lanza una excepción para todas las conversiones, incluso cadenas vacías. El " "manejador de errores se ignora." -#: ../Doc/library/codecs.rst:1362 +#: ../Doc/library/codecs.rst:1366 msgid "unicode_escape" msgstr "unicode_escape" -#: ../Doc/library/codecs.rst:1362 +#: ../Doc/library/codecs.rst:1366 msgid "" "Encoding suitable as the contents of a Unicode literal in ASCII-encoded " "Python source code, except that quotes are not escaped. Decode from Latin-1 " @@ -2984,15 +2988,15 @@ msgstr "" "Decodificar desde el código fuente Latin-1. Tenga en cuenta que el código " "fuente de Python realmente usa UTF-8 por defecto." -#: ../Doc/library/codecs.rst:1374 +#: ../Doc/library/codecs.rst:1378 msgid "\"unicode_internal\" codec is removed." msgstr "Se elimina el códec \"unicode_internal\"." -#: ../Doc/library/codecs.rst:1381 +#: ../Doc/library/codecs.rst:1385 msgid "Binary Transforms" msgstr "Transformaciones Binarias" -#: ../Doc/library/codecs.rst:1383 +#: ../Doc/library/codecs.rst:1387 msgid "" "The following codecs provide binary transforms: :term:`bytes-like object` " "to :class:`bytes` mappings. They are not supported by :meth:`bytes.decode` " @@ -3002,19 +3006,19 @@ msgstr "" "term:`bytes-like object` a :class:`bytes`. No son compatibles con :meth:" "`bytes.decode` (que solo produce :class:`str` de salida)." -#: ../Doc/library/codecs.rst:1391 +#: ../Doc/library/codecs.rst:1395 msgid "Encoder / decoder" msgstr "Codificador / decodificador" -#: ../Doc/library/codecs.rst:1393 +#: ../Doc/library/codecs.rst:1397 msgid "base64_codec [#b64]_" msgstr "base64_codec [#b64]_" -#: ../Doc/library/codecs.rst:1393 +#: ../Doc/library/codecs.rst:1397 msgid "base64, base_64" msgstr "base64, base_64" -#: ../Doc/library/codecs.rst:1393 +#: ../Doc/library/codecs.rst:1397 msgid "" "Convert the operand to multiline MIME base64 (the result always includes a " "trailing ``'\\n'``)." @@ -3022,101 +3026,101 @@ msgstr "" "Convierta el operando a MIME base64 multilínea (el resultado siempre incluye " "un ``'\\n'`` final)." -#: ../Doc/library/codecs.rst:1398 +#: ../Doc/library/codecs.rst:1402 msgid "" "accepts any :term:`bytes-like object` as input for encoding and decoding" msgstr "" "acepta cualquier :term:`bytes-like object` como entrada para codificar y " "decodificar" -#: ../Doc/library/codecs.rst:1393 +#: ../Doc/library/codecs.rst:1397 msgid ":meth:`base64.encodebytes` / :meth:`base64.decodebytes`" msgstr ":meth:`base64.encodebytes` / :meth:`base64.decodebytes`" -#: ../Doc/library/codecs.rst:1404 +#: ../Doc/library/codecs.rst:1408 msgid "bz2_codec" msgstr "bz2_codec" -#: ../Doc/library/codecs.rst:1404 +#: ../Doc/library/codecs.rst:1408 msgid "bz2" msgstr "bz2" -#: ../Doc/library/codecs.rst:1404 +#: ../Doc/library/codecs.rst:1408 msgid "Compress the operand using bz2." msgstr "Comprime el operando usando bz2." -#: ../Doc/library/codecs.rst:1404 +#: ../Doc/library/codecs.rst:1408 msgid ":meth:`bz2.compress` / :meth:`bz2.decompress`" msgstr ":meth:`bz2.compress` / :meth:`bz2.decompress`" -#: ../Doc/library/codecs.rst:1407 +#: ../Doc/library/codecs.rst:1411 msgid "hex_codec" msgstr "hex_codec" -#: ../Doc/library/codecs.rst:1407 +#: ../Doc/library/codecs.rst:1411 msgid "hex" msgstr "hex" -#: ../Doc/library/codecs.rst:1407 +#: ../Doc/library/codecs.rst:1411 msgid "" "Convert the operand to hexadecimal representation, with two digits per byte." msgstr "" "Convierte el operando en representación hexadecimal, con dos dígitos por " "byte." -#: ../Doc/library/codecs.rst:1407 +#: ../Doc/library/codecs.rst:1411 msgid ":meth:`binascii.b2a_hex` / :meth:`binascii.a2b_hex`" msgstr ":meth:`binascii.b2a_hex` / :meth:`binascii.a2b_hex`" -#: ../Doc/library/codecs.rst:1412 +#: ../Doc/library/codecs.rst:1416 msgid "quopri_codec" msgstr "quopri_codec" -#: ../Doc/library/codecs.rst:1412 +#: ../Doc/library/codecs.rst:1416 msgid "quopri, quotedprintable, quoted_printable" msgstr "quopri, quotedprintable, quoted_printable" -#: ../Doc/library/codecs.rst:1412 +#: ../Doc/library/codecs.rst:1416 msgid "Convert the operand to MIME quoted printable." msgstr "Convierte el operando a MIME citado imprimible." -#: ../Doc/library/codecs.rst:1412 +#: ../Doc/library/codecs.rst:1416 msgid ":meth:`quopri.encode` with ``quotetabs=True`` / :meth:`quopri.decode`" msgstr ":meth:`quopri.encode` con ``quotetabs=True`` / :meth:`quopri.decode`" -#: ../Doc/library/codecs.rst:1416 +#: ../Doc/library/codecs.rst:1420 msgid "uu_codec" msgstr "uu_codec" -#: ../Doc/library/codecs.rst:1416 +#: ../Doc/library/codecs.rst:1420 msgid "uu" msgstr "uu" -#: ../Doc/library/codecs.rst:1416 +#: ../Doc/library/codecs.rst:1420 msgid "Convert the operand using uuencode." msgstr "Convierte el operando usando uuencode." -#: ../Doc/library/codecs.rst:1416 +#: ../Doc/library/codecs.rst:1420 msgid ":meth:`uu.encode` / :meth:`uu.decode`" msgstr ":meth:`uu.encode` / :meth:`uu.decode`" -#: ../Doc/library/codecs.rst:1419 +#: ../Doc/library/codecs.rst:1423 msgid "zlib_codec" msgstr "zlib_codec" -#: ../Doc/library/codecs.rst:1419 +#: ../Doc/library/codecs.rst:1423 msgid "zip, zlib" msgstr "zip, zlib" -#: ../Doc/library/codecs.rst:1419 +#: ../Doc/library/codecs.rst:1423 msgid "Compress the operand using gzip." msgstr "Comprime el operando usando gzip." -#: ../Doc/library/codecs.rst:1419 +#: ../Doc/library/codecs.rst:1423 msgid ":meth:`zlib.compress` / :meth:`zlib.decompress`" msgstr ":meth:`zlib.compress` / :meth:`zlib.decompress`" -#: ../Doc/library/codecs.rst:1423 +#: ../Doc/library/codecs.rst:1427 msgid "" "In addition to :term:`bytes-like objects `, " "``'base64_codec'`` also accepts ASCII-only instances of :class:`str` for " @@ -3126,19 +3130,19 @@ msgstr "" "``'base64_codec'`` también acepta instancias solo ASCII de :class:`str` para " "decodificación" -#: ../Doc/library/codecs.rst:1427 +#: ../Doc/library/codecs.rst:1431 msgid "Restoration of the binary transforms." msgstr "Restauración de las transformaciones binarias." -#: ../Doc/library/codecs.rst:1430 +#: ../Doc/library/codecs.rst:1434 msgid "Restoration of the aliases for the binary transforms." msgstr "Restauración de los alias para las transformaciones binarias." -#: ../Doc/library/codecs.rst:1437 +#: ../Doc/library/codecs.rst:1441 msgid "Text Transforms" msgstr "Transformaciones de texto" -#: ../Doc/library/codecs.rst:1439 +#: ../Doc/library/codecs.rst:1443 msgid "" "The following codec provides a text transform: a :class:`str` to :class:" "`str` mapping. It is not supported by :meth:`str.encode` (which only " @@ -3148,34 +3152,34 @@ msgstr "" "class:`str` a :class:`str`. No es compatible con :meth:`str.encode` (que " "solo produce :class:`bytes` de salida)." -#: ../Doc/library/codecs.rst:1448 +#: ../Doc/library/codecs.rst:1452 msgid "rot_13" msgstr "rot_13" -#: ../Doc/library/codecs.rst:1448 +#: ../Doc/library/codecs.rst:1452 msgid "rot13" msgstr "rot13" -#: ../Doc/library/codecs.rst:1448 +#: ../Doc/library/codecs.rst:1452 msgid "Return the Caesar-cypher encryption of the operand." msgstr "Retorna el cifrado César (*Caesar-cypher*) del operando." -#: ../Doc/library/codecs.rst:1453 +#: ../Doc/library/codecs.rst:1457 msgid "Restoration of the ``rot_13`` text transform." msgstr "Restauración de la transformación de texto ``rot_13``." -#: ../Doc/library/codecs.rst:1456 +#: ../Doc/library/codecs.rst:1460 msgid "Restoration of the ``rot13`` alias." msgstr "Restauración del alias ``rot13``." -#: ../Doc/library/codecs.rst:1461 +#: ../Doc/library/codecs.rst:1465 msgid "" ":mod:`encodings.idna` --- Internationalized Domain Names in Applications" msgstr "" ":mod:`encodings.idna` --- Nombres de dominio internacionalizados en " "aplicaciones" -#: ../Doc/library/codecs.rst:1467 +#: ../Doc/library/codecs.rst:1471 msgid "" "This module implements :rfc:`3490` (Internationalized Domain Names in " "Applications) and :rfc:`3492` (Nameprep: A Stringprep Profile for " @@ -3187,7 +3191,7 @@ msgstr "" "nombres de dominio internacionalizados (IDN)). Se basa en la codificación " "``punycode`` y :mod:`stringprep`." -#: ../Doc/library/codecs.rst:1472 +#: ../Doc/library/codecs.rst:1476 msgid "" "If you need the IDNA 2008 standard from :rfc:`5891` and :rfc:`5895`, use the " "third-party `idna module `_." @@ -3195,7 +3199,7 @@ msgstr "" "Si necesita el estándar IDNA 2008 de :rfc:`5891` y :rfc:`5895`, use el " "`módulo idna _` de terceros." -#: ../Doc/library/codecs.rst:1475 +#: ../Doc/library/codecs.rst:1479 msgid "" "These RFCs together define a protocol to support non-ASCII characters in " "domain names. A domain name containing non-ASCII characters (such as ``www." @@ -3220,7 +3224,7 @@ msgstr "" "el cable, y volver a convertir las etiquetas ACE a Unicode antes de " "presentarlas al usuario." -#: ../Doc/library/codecs.rst:1486 +#: ../Doc/library/codecs.rst:1490 msgid "" "Python supports this conversion in several ways: the ``idna`` codec " "performs conversion between Unicode and ACE, separating an input string into " @@ -3251,7 +3255,7 @@ msgstr "" "también envían un mensaje transparente IDNA *hostname* en el campo :" "mailheader:`Host` si envía ese campo)." -#: ../Doc/library/codecs.rst:1499 +#: ../Doc/library/codecs.rst:1503 msgid "" "When receiving host names from the wire (such as in reverse name lookup), no " "automatic conversion to Unicode is performed: applications wishing to " @@ -3262,7 +3266,7 @@ msgstr "" "aplicaciones que deseen presentar dichos nombres de host al usuario deben " "decodificarlos en Unicode." -#: ../Doc/library/codecs.rst:1503 +#: ../Doc/library/codecs.rst:1507 msgid "" "The module :mod:`encodings.idna` also implements the nameprep procedure, " "which performs certain normalizations on host names, to achieve case-" @@ -3275,7 +3279,7 @@ msgstr "" "internacionales y unificar caracteres similares. Las funciones *nameprep* se " "pueden usar directamente si lo desea." -#: ../Doc/library/codecs.rst:1511 +#: ../Doc/library/codecs.rst:1515 msgid "" "Return the nameprepped version of *label*. The implementation currently " "assumes query strings, so ``AllowUnassigned`` is true." @@ -3284,7 +3288,7 @@ msgstr "" "*label*. La implementación actualmente asume cadenas de caracteres de " "consulta, por lo que ``AllowUnassigned`` es verdadero." -#: ../Doc/library/codecs.rst:1517 +#: ../Doc/library/codecs.rst:1521 msgid "" "Convert a label to ASCII, as specified in :rfc:`3490`. ``UseSTD3ASCIIRules`` " "is assumed to be false." @@ -3292,28 +3296,28 @@ msgstr "" "Convierte una etiqueta a ASCII, como se especifica en :rfc:`3490`. Se supone " "que ``UseSTD3ASCIIRules`` es falso." -#: ../Doc/library/codecs.rst:1523 +#: ../Doc/library/codecs.rst:1527 msgid "Convert a label to Unicode, as specified in :rfc:`3490`." msgstr "Convierte una etiqueta a Unicode, como se especifica en :rfc:`3490`." -#: ../Doc/library/codecs.rst:1527 +#: ../Doc/library/codecs.rst:1531 msgid ":mod:`encodings.mbcs` --- Windows ANSI codepage" msgstr ":mod:`encodings.mbcs` --- Página de códigos ANSI de Windows" -#: ../Doc/library/codecs.rst:1532 +#: ../Doc/library/codecs.rst:1536 msgid "This module implements the ANSI codepage (CP_ACP)." msgstr "Este módulo implementa la página de códigos ANSI (CP_ACP)." -#: ../Doc/library/codecs.rst:1535 +#: ../Doc/library/codecs.rst:1538 #, fuzzy msgid ":ref:`Availability `: Windows." msgstr ":ref:`Disponibilidad `: Windows." -#: ../Doc/library/codecs.rst:1536 +#: ../Doc/library/codecs.rst:1540 msgid "Support any error handler." msgstr "Admite cualquier manejador de errores." -#: ../Doc/library/codecs.rst:1539 +#: ../Doc/library/codecs.rst:1543 msgid "" "Before 3.2, the *errors* argument was ignored; ``'replace'`` was always used " "to encode, and ``'ignore'`` to decode." @@ -3321,11 +3325,11 @@ msgstr "" "Antes de 3.2, se ignoraba el argumento *errors*; ``'replace'`` siempre se " "usó para codificar e ``'ignore'`` para decodificar." -#: ../Doc/library/codecs.rst:1545 +#: ../Doc/library/codecs.rst:1549 msgid ":mod:`encodings.utf_8_sig` --- UTF-8 codec with BOM signature" msgstr ":mod:`encodings.utf_8_sig` --- Códec UTF-8 con firma BOM" -#: ../Doc/library/codecs.rst:1551 +#: ../Doc/library/codecs.rst:1555 msgid "" "This module implements a variant of the UTF-8 codec. On encoding, a UTF-8 " "encoded BOM will be prepended to the UTF-8 encoded bytes. For the stateful " @@ -3339,3 +3343,105 @@ msgstr "" "primera escritura en el flujo de bytes). En la decodificación, se omitirá " "una lista de materiales opcional codificada en UTF-8 al comienzo de los " "datos." + +#: ../Doc/library/codecs.rst:13 +#, fuzzy +msgid "Unicode" +msgstr "punycode" + +#: ../Doc/library/codecs.rst:13 +#, fuzzy +msgid "encode" +msgstr "Códec" + +#: ../Doc/library/codecs.rst:13 +#, fuzzy +msgid "decode" +msgstr "Códec" + +#: ../Doc/library/codecs.rst:13 +msgid "streams" +msgstr "" + +#: ../Doc/library/codecs.rst:13 +msgid "stackable" +msgstr "" + +#: ../Doc/library/codecs.rst:312 +#, fuzzy +msgid "strict" +msgstr "``'strict'``" + +#: ../Doc/library/codecs.rst:312 ../Doc/library/codecs.rst:364 +#: ../Doc/library/codecs.rst:387 +#, fuzzy +msgid "error handler's name" +msgstr "Manejadores de errores" + +#: ../Doc/library/codecs.rst:312 +#, fuzzy +msgid "ignore" +msgstr "``'ignore'``" + +#: ../Doc/library/codecs.rst:312 +#, fuzzy +msgid "replace" +msgstr "``'replace'``" + +#: ../Doc/library/codecs.rst:312 +#, fuzzy +msgid "backslashreplace" +msgstr "``'backslashreplace'``" + +#: ../Doc/library/codecs.rst:312 +#, fuzzy +msgid "surrogateescape" +msgstr "``'surrogateescape'``" + +#: ../Doc/library/codecs.rst:312 +#, fuzzy +msgid "? (question mark)" +msgstr "SIGNO DE PREGUNTA INVERTIDO" + +#: ../Doc/library/codecs.rst:312 +msgid "replacement character" +msgstr "" + +#: ../Doc/library/codecs.rst:312 +msgid "\\ (backslash)" +msgstr "" + +#: ../Doc/library/codecs.rst:312 ../Doc/library/codecs.rst:364 +msgid "escape sequence" +msgstr "" + +#: ../Doc/library/codecs.rst:312 +msgid "\\x" +msgstr "" + +#: ../Doc/library/codecs.rst:312 +msgid "\\u" +msgstr "" + +#: ../Doc/library/codecs.rst:312 +msgid "\\U" +msgstr "" + +#: ../Doc/library/codecs.rst:364 +#, fuzzy +msgid "xmlcharrefreplace" +msgstr "``'xmlcharrefreplace'``" + +#: ../Doc/library/codecs.rst:364 +#, fuzzy +msgid "namereplace" +msgstr "``'namereplace'``" + +#: ../Doc/library/codecs.rst:364 +msgid "\\N" +msgstr "" + +#: ../Doc/library/codecs.rst:387 +#, fuzzy +msgid "surrogatepass" +msgstr "``'surrogatepass'``" diff --git a/library/codeop.po b/library/codeop.po index 20a80fe661..530ad544a8 100644 --- a/library/codeop.po +++ b/library/codeop.po @@ -10,14 +10,14 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-03-19 11:16+0100\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \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" -"Generated-By: Babel 2.8.0\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/codeop.rst:2 msgid ":mod:`codeop` --- Compile Python code" @@ -47,8 +47,9 @@ msgid "There are two parts to this job:" msgstr "Esta actividad consta de dos partes:" #: ../Doc/library/codeop.rst:22 +#, fuzzy msgid "" -"Being able to tell if a line of input completes a Python statement: in " +"Being able to tell if a line of input completes a Python statement: in " "short, telling whether to print '``>>>``' or '``...``' next." msgstr "" "Ser capaz de identificar si una línea de entrada completa una sentencia de " @@ -56,8 +57,9 @@ msgstr "" "'``...``' ." #: ../Doc/library/codeop.rst:25 +#, fuzzy msgid "" -"Remembering which future statements the user has entered, so subsequent " +"Remembering which future statements the user has entered, so subsequent " "input can be compiled with these in effect." msgstr "" "Recordar qué sentencias posteriores ha ingresado el usuario, para que estas " @@ -76,11 +78,12 @@ msgid "To do just the former:" msgstr "Para hacer lo anterior:" #: ../Doc/library/codeop.rst:35 +#, fuzzy msgid "" "Tries to compile *source*, which should be a string of Python code and " -"return a code object if *source* is valid Python code. In that case, the " +"return a code object if *source* is valid Python code. In that case, the " "filename attribute of the code object will be *filename*, which defaults to " -"``''``. Returns ``None`` if *source* is *not* valid Python code, but " +"``''``. Returns ``None`` if *source* is *not* valid Python code, but " "is a prefix of valid Python code." msgstr "" "Intenta compilar *source*, que debe ser una cadena de caracteres de código " @@ -100,11 +103,12 @@ msgstr "" "`OverflowError` o :exc:`ValueError` si hay un literal no válido." #: ../Doc/library/codeop.rst:45 +#, fuzzy msgid "" "The *symbol* argument determines whether *source* is compiled as a statement " -"(``'single'``, the default), as a sequence of statements (``'exec'``) or as " -"an :term:`expression` (``'eval'``). Any other value will cause :exc:" -"`ValueError` to be raised." +"(``'single'``, the default), as a sequence of :term:`statement` (``'exec'``) " +"or as an :term:`expression` (``'eval'``). Any other value will cause :exc:" +"`ValueError` to be raised." msgstr "" "El argumento *symbol* determina si *source* se compila como una declaración " "(``'single'``, el valor predeterminado) o como un :term:`expression` " @@ -126,12 +130,13 @@ msgstr "" "analizador sea mejor." #: ../Doc/library/codeop.rst:61 +#, fuzzy msgid "" -"Instances of this class have :meth:`__call__` methods identical in signature " -"to the built-in function :func:`compile`, but with the difference that if " -"the instance compiles program text containing a :mod:`__future__` statement, " -"the instance 'remembers' and compiles all subsequent program texts with the " -"statement in force." +"Instances of this class have :meth:`~object.__call__` methods identical in " +"signature to the built-in function :func:`compile`, but with the difference " +"that if the instance compiles program text containing a :mod:`__future__` " +"statement, the instance 'remembers' and compiles all subsequent program " +"texts with the statement in force." msgstr "" "Las instancias de esta clase tienen :meth:`__call__` métodos idénticos en " "firma a la función incorporada :func:`compile`, pero con la diferencia de " @@ -140,11 +145,13 @@ msgstr "" "textos de programa posteriores con la declaración en vigor." #: ../Doc/library/codeop.rst:70 +#, fuzzy msgid "" -"Instances of this class have :meth:`__call__` methods identical in signature " -"to :func:`compile_command`; the difference is that if the instance compiles " -"program text containing a ``__future__`` statement, the instance 'remembers' " -"and compiles all subsequent program texts with the statement in force." +"Instances of this class have :meth:`~object.__call__` methods identical in " +"signature to :func:`compile_command`; the difference is that if the instance " +"compiles program text containing a :mod:`__future__` statement, the instance " +"'remembers' and compiles all subsequent program texts with the statement in " +"force." msgstr "" "Las instancias de esta clase tienen :meth:`__call__` métodos idénticos en " "firma a :func:`compile_command`; la diferencia es que si la instancia " diff --git a/library/collections.abc.po b/library/collections.abc.po index c4a615264d..541a1f4ef0 100644 --- a/library/collections.abc.po +++ b/library/collections.abc.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-12-08 16:15-0300\n" "Last-Translator: Sofía Denner \n" -"Language-Team: python-doc-es\n" "Language: es_AR\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/collections.abc.rst:2 msgid ":mod:`collections.abc` --- Abstract Base Classes for Containers" @@ -36,10 +35,11 @@ msgid "**Source code:** :source:`Lib/_collections_abc.py`" msgstr "**Código fuente:** :source:`Lib/_collections_abc.py`" #: ../Doc/library/collections.abc.rst:23 +#, fuzzy msgid "" "This module provides :term:`abstract base classes ` " "that can be used to test whether a class provides a particular interface; " -"for example, whether it is hashable or whether it is a mapping." +"for example, whether it is :term:`hashable` or whether it is a mapping." msgstr "" "Este módulo proporciona :term:`clases base abstractas ` " "que pueden usarse para probar si una clase proporciona una interfaz " @@ -458,11 +458,21 @@ msgstr "``asend``, ``athrow``" msgid "``aclose``, ``__aiter__``, ``__anext__``" msgstr "``aclose``, ``__aiter__``, ``__anext__``" -#: ../Doc/library/collections.abc.rst:184 +#: ../Doc/library/collections.abc.rst:180 +#, fuzzy +msgid ":class:`Buffer` [1]_" +msgstr ":class:`Iterator` [1]_" + +#: ../Doc/library/collections.abc.rst:180 +#, fuzzy +msgid "``__buffer__``" +msgstr "``__iter__``" + +#: ../Doc/library/collections.abc.rst:185 msgid "Footnotes" msgstr "Notas al pie" -#: ../Doc/library/collections.abc.rst:185 +#: ../Doc/library/collections.abc.rst:186 msgid "" "These ABCs override :meth:`object.__subclasshook__` to support testing an " "interface by verifying the required methods are present and have not been " @@ -474,7 +484,7 @@ msgstr "" "hayan configurado en :const:`None`. Esto solo funciona para interfaces " "simples. Las interfaces más complejas requieren registro o herencia directa." -#: ../Doc/library/collections.abc.rst:191 +#: ../Doc/library/collections.abc.rst:192 msgid "" "Checking ``isinstance(obj, Iterable)`` detects classes that are registered " "as :class:`Iterable` or that have an :meth:`__iter__` method, but it does " @@ -488,31 +498,31 @@ msgstr "" "única forma confiable de determinar si un objeto es :term:`iterable` es " "llamar a ``iter(obj)``." -#: ../Doc/library/collections.abc.rst:199 +#: ../Doc/library/collections.abc.rst:200 msgid "Collections Abstract Base Classes -- Detailed Descriptions" msgstr "Colecciones Clases base abstractas - Descripciones detalladas" -#: ../Doc/library/collections.abc.rst:204 +#: ../Doc/library/collections.abc.rst:205 msgid "ABC for classes that provide the :meth:`__contains__` method." msgstr "ABC para clases que proporcionan el método :meth:`__contains__`." -#: ../Doc/library/collections.abc.rst:208 +#: ../Doc/library/collections.abc.rst:209 msgid "ABC for classes that provide the :meth:`__hash__` method." msgstr "ABC para clases que proporcionan el método :meth:`__hash__`." -#: ../Doc/library/collections.abc.rst:212 +#: ../Doc/library/collections.abc.rst:213 msgid "ABC for classes that provide the :meth:`__len__` method." msgstr "ABC para clases que proporcionan el método :meth:`__len__`." -#: ../Doc/library/collections.abc.rst:216 +#: ../Doc/library/collections.abc.rst:217 msgid "ABC for classes that provide the :meth:`__call__` method." msgstr "ABC para clases que proporcionan el método :meth:`__call__`." -#: ../Doc/library/collections.abc.rst:220 +#: ../Doc/library/collections.abc.rst:221 msgid "ABC for classes that provide the :meth:`__iter__` method." msgstr "ABC para clases que proporcionan el método :meth:`__iter__`." -#: ../Doc/library/collections.abc.rst:222 +#: ../Doc/library/collections.abc.rst:223 msgid "" "Checking ``isinstance(obj, Iterable)`` detects classes that are registered " "as :class:`Iterable` or that have an :meth:`__iter__` method, but it does " @@ -526,11 +536,11 @@ msgstr "" "única forma confiable de determinar si un objeto es :term:`iterable` es " "llamar a ``iter(obj)``." -#: ../Doc/library/collections.abc.rst:230 +#: ../Doc/library/collections.abc.rst:231 msgid "ABC for sized iterable container classes." msgstr "ABC para clases de contenedor iterables de tamaño." -#: ../Doc/library/collections.abc.rst:236 +#: ../Doc/library/collections.abc.rst:237 msgid "" "ABC for classes that provide the :meth:`~iterator.__iter__` and :meth:" "`~iterator.__next__` methods. See also the definition of :term:`iterator`." @@ -538,14 +548,14 @@ msgstr "" "ABC para clases que proporcionan el método :meth:`~iterator.__iter__` y :" "meth:`~iterator.__next__`. Ver también la definición de :term:`iterator`." -#: ../Doc/library/collections.abc.rst:242 +#: ../Doc/library/collections.abc.rst:243 msgid "" "ABC for iterable classes that also provide the :meth:`__reversed__` method." msgstr "" "ABC para clases iterables que también proporcionan :meth:`__reversed__` " "method." -#: ../Doc/library/collections.abc.rst:249 +#: ../Doc/library/collections.abc.rst:250 msgid "" "ABC for generator classes that implement the protocol defined in :pep:`342` " "that extends iterators with the :meth:`~generator.send`, :meth:`~generator." @@ -557,11 +567,11 @@ msgstr "" "meth:`~generator.throw` and :meth:`~generator.close`. Ver también la " "definición de :term:`generator`." -#: ../Doc/library/collections.abc.rst:260 +#: ../Doc/library/collections.abc.rst:261 msgid "ABCs for read-only and mutable :term:`sequences `." msgstr "ABC para solo lectura y mutable :term:`secuencias `." -#: ../Doc/library/collections.abc.rst:262 +#: ../Doc/library/collections.abc.rst:263 msgid "" "Implementation note: Some of the mixin methods, such as :meth:`__iter__`, :" "meth:`__reversed__` and :meth:`index`, make repeated calls to the " @@ -579,25 +589,32 @@ msgstr "" "lineal (como lo sería con una lista vinculada), los mixins tendrán un " "rendimiento cuadrático y probablemente deberán ser anulados." -#: ../Doc/library/collections.abc.rst:271 +#: ../Doc/library/collections.abc.rst:272 msgid "The index() method added support for *stop* and *start* arguments." msgstr "El método index() agregó soporte para los argumentos *stop* y *start*." -#: ../Doc/library/collections.abc.rst:278 +#: ../Doc/library/collections.abc.rst:280 +msgid "" +"The :class:`ByteString` ABC has been deprecated. For use in typing, prefer a " +"union, like ``bytes | bytearray``, or :class:`collections.abc.Buffer`. For " +"use as an ABC, prefer :class:`Sequence` or :class:`collections.abc.Buffer`." +msgstr "" + +#: ../Doc/library/collections.abc.rst:285 msgid "ABCs for read-only and mutable sets." msgstr "ABC para conjuntos de solo lectura y mutables." -#: ../Doc/library/collections.abc.rst:283 +#: ../Doc/library/collections.abc.rst:290 msgid "ABCs for read-only and mutable :term:`mappings `." msgstr "ABC para solo lectura y mutable :term:`mapeos `." -#: ../Doc/library/collections.abc.rst:290 +#: ../Doc/library/collections.abc.rst:297 msgid "" "ABCs for mapping, items, keys, and values :term:`views `." msgstr "" "ABC para mapeo, elementos, claves y valores :term:`vistas `." -#: ../Doc/library/collections.abc.rst:294 +#: ../Doc/library/collections.abc.rst:301 msgid "" "ABC for :term:`awaitable` objects, which can be used in :keyword:`await` " "expressions. Custom implementations must provide the :meth:`__await__` " @@ -607,7 +624,7 @@ msgstr "" "keyword:`await`. Las implementaciones personalizadas deben proporcionar el " "método :meth:`__await__`." -#: ../Doc/library/collections.abc.rst:298 +#: ../Doc/library/collections.abc.rst:305 msgid "" ":term:`Coroutine ` objects and instances of the :class:" "`~collections.abc.Coroutine` ABC are all instances of this ABC." @@ -615,7 +632,7 @@ msgstr "" ":term:`Coroutine ` objetos e instancias de la clase :class:" "`~collections.abc.Coroutine` ABC son todas las instancias de este ABC." -#: ../Doc/library/collections.abc.rst:302 +#: ../Doc/library/collections.abc.rst:309 msgid "" "In CPython, generator-based coroutines (generators decorated with :func:" "`types.coroutine`) are *awaitables*, even though they do not have an :meth:" @@ -627,7 +644,7 @@ msgstr "" "método :meth:`__await__`. El uso de ``isinstance(gencoro, Awaitable)`` para " "ellas retornará ``False``. Use :func:`inspect.isawaitable` para detectarlas." -#: ../Doc/library/collections.abc.rst:312 +#: ../Doc/library/collections.abc.rst:319 msgid "" "ABC for coroutine compatible classes. These implement the following " "methods, defined in :ref:`coroutine-objects`: :meth:`~coroutine.send`, :meth:" @@ -643,7 +660,7 @@ msgstr "" "instancias de :class:`Coroutine` también son instancias de :class:" "`Awaitable`. Ver también la definición de :term:`coroutine`." -#: ../Doc/library/collections.abc.rst:320 +#: ../Doc/library/collections.abc.rst:327 msgid "" "In CPython, generator-based coroutines (generators decorated with :func:" "`types.coroutine`) are *awaitables*, even though they do not have an :meth:" @@ -655,7 +672,7 @@ msgstr "" "método :meth:`__await__`. El uso de ``isinstance(gencoro, Coroutine)`` para " "ellas retornará ``False``. Use :func:`inspect.isawaitable` para detectarlas." -#: ../Doc/library/collections.abc.rst:330 +#: ../Doc/library/collections.abc.rst:337 msgid "" "ABC for classes that provide ``__aiter__`` method. See also the definition " "of :term:`asynchronous iterable`." @@ -663,7 +680,7 @@ msgstr "" "ABC para las clases que proporcionan el método ``__aiter__``. Ver también la " "definición de :term:`asynchronous iterable`." -#: ../Doc/library/collections.abc.rst:337 +#: ../Doc/library/collections.abc.rst:344 msgid "" "ABC for classes that provide ``__aiter__`` and ``__anext__`` methods. See " "also the definition of :term:`asynchronous iterator`." @@ -671,7 +688,7 @@ msgstr "" "ABC para clases que proveen métodos ``__aiter__`` and ``__anext__``. Ver " "también la definición de :term:`asynchronous iterator`." -#: ../Doc/library/collections.abc.rst:344 +#: ../Doc/library/collections.abc.rst:351 msgid "" "ABC for asynchronous generator classes that implement the protocol defined " "in :pep:`525` and :pep:`492`." @@ -679,11 +696,17 @@ msgstr "" "ABC para clases generadoras asincrónicas que implementan el protocolo " "definido en :pep:`525` y :pep:`492`." -#: ../Doc/library/collections.abc.rst:350 +#: ../Doc/library/collections.abc.rst:358 +msgid "" +"ABC for classes that provide the :meth:`~object.__buffer__` method, " +"implementing the :ref:`buffer protocol `. See :pep:`688`." +msgstr "" + +#: ../Doc/library/collections.abc.rst:364 msgid "Examples and Recipes" msgstr "Ejemplos y Recetas" -#: ../Doc/library/collections.abc.rst:352 +#: ../Doc/library/collections.abc.rst:366 msgid "" "ABCs allow us to ask classes or instances if they provide particular " "functionality, for example::" @@ -691,7 +714,7 @@ msgstr "" "Los ABC nos permiten preguntar a las clases o instancias si brindan una " "funcionalidad particular, por ejemplo:" -#: ../Doc/library/collections.abc.rst:359 +#: ../Doc/library/collections.abc.rst:373 msgid "" "Several of the ABCs are also useful as mixins that make it easier to develop " "classes supporting container APIs. For example, to write a class supporting " @@ -707,12 +730,12 @@ msgstr "" "meth:`__len__`. El ABC proporciona los métodos restantes, como :meth:" "`__and__` y :meth:`isdisjoint`::" -#: ../Doc/library/collections.abc.rst:388 +#: ../Doc/library/collections.abc.rst:402 msgid "Notes on using :class:`Set` and :class:`MutableSet` as a mixin:" msgstr "" "Notas sobre el uso de :class:`Set` y :class:`MutableSet` como un mixin:" -#: ../Doc/library/collections.abc.rst:391 +#: ../Doc/library/collections.abc.rst:405 msgid "" "Since some set operations create new sets, the default mixin methods need a " "way to create new instances from an iterable. The class constructor is " @@ -735,7 +758,7 @@ msgstr "" "regular que pueda construir nuevas instancias a partir de un argumento " "iterable." -#: ../Doc/library/collections.abc.rst:402 +#: ../Doc/library/collections.abc.rst:416 msgid "" "To override the comparisons (presumably for speed, as the semantics are " "fixed), redefine :meth:`__le__` and :meth:`__ge__`, then the other " @@ -745,13 +768,14 @@ msgstr "" "las semánticas son fijas), redefinir :meth:`__le__` y :meth:`__ge__`, luego " "las otras operaciones seguirán automáticamente su ejemplo." -#: ../Doc/library/collections.abc.rst:407 +#: ../Doc/library/collections.abc.rst:421 +#, fuzzy msgid "" "The :class:`Set` mixin provides a :meth:`_hash` method to compute a hash " "value for the set; however, :meth:`__hash__` is not defined because not all " -"sets are hashable or immutable. To add set hashability using mixins, " -"inherit from both :meth:`Set` and :meth:`Hashable`, then define ``__hash__ = " -"Set._hash``." +"sets are :term:`hashable` or immutable. To add set hashability using " +"mixins, inherit from both :meth:`Set` and :meth:`Hashable`, then define " +"``__hash__ = Set._hash``." msgstr "" "El mixin :class:`Set` proporciona un método :meth:`_hash` para calcular un " "valor hash para el conjunto; sin embargo, :meth:`__hash__` no está definido " @@ -759,7 +783,7 @@ msgstr "" "capacidad de encadenamiento en conjuntos que usan mixin, herede de ambos :" "meth:`Set` y :meth:`Hashable`, luego defina ``__hash__ = Set._hash``." -#: ../Doc/library/collections.abc.rst:415 +#: ../Doc/library/collections.abc.rst:429 msgid "" "`OrderedSet recipe `_ for an " "example built on :class:`MutableSet`." @@ -767,7 +791,7 @@ msgstr "" "`OrderedSet receta `_ para un " "ejemplo basado en :class:`MutableSet`." -#: ../Doc/library/collections.abc.rst:418 +#: ../Doc/library/collections.abc.rst:432 msgid "For more about ABCs, see the :mod:`abc` module and :pep:`3119`." msgstr "" "Para obtener más información sobre ABCs, ver el módulo :mod:`abc` y :pep:" diff --git a/library/collections.po b/library/collections.po index 6c4c46a340..47def58557 100644 --- a/library/collections.po +++ b/library/collections.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-02-07 17:29+0100\n" "Last-Translator: Adolfo Hristo David Roque Gámez \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/collections.rst:2 msgid ":mod:`collections` --- Container datatypes" @@ -73,7 +72,8 @@ msgid ":class:`Counter`" msgstr ":class:`Counter`" #: ../Doc/library/collections.rst:28 -msgid "dict subclass for counting hashable objects" +#, fuzzy +msgid "dict subclass for counting :term:`hashable` objects" msgstr "subclase de *dict* para contar objetos *hashables*" #: ../Doc/library/collections.rst:29 @@ -377,9 +377,10 @@ msgstr "" "Se proporciona una herramienta de contador para respaldar recuentos rápidos " "y convenientes. Por ejemplo::" -#: ../Doc/library/collections.rst:244 +#: ../Doc/library/collections.rst:245 +#, fuzzy msgid "" -"A :class:`Counter` is a :class:`dict` subclass for counting hashable " +"A :class:`Counter` is a :class:`dict` subclass for counting :term:`hashable` " "objects. It is a collection where elements are stored as dictionary keys and " "their counts are stored as dictionary values. Counts are allowed to be any " "integer value including zero or negative counts. The :class:`Counter` class " @@ -392,7 +393,7 @@ msgstr "" "de cero o negativos. La clase :class:`Counter` es similar a los *bags* o " "multiconjuntos en otros idiomas." -#: ../Doc/library/collections.rst:250 +#: ../Doc/library/collections.rst:251 msgid "" "Elements are counted from an *iterable* or initialized from another " "*mapping* (or counter):" @@ -400,7 +401,7 @@ msgstr "" "Los elementos se cuentan desde un *iterable* o se inicializan desde otro " "*mapeo* (o contador):" -#: ../Doc/library/collections.rst:258 +#: ../Doc/library/collections.rst:259 msgid "" "Counter objects have a dictionary interface except that they return a zero " "count for missing items instead of raising a :exc:`KeyError`:" @@ -409,7 +410,7 @@ msgstr "" "un conteo de cero para los elementos faltantes en lugar de levantar una :exc:" "`KeyError`:" -#: ../Doc/library/collections.rst:265 +#: ../Doc/library/collections.rst:266 msgid "" "Setting a count to zero does not remove an element from a counter. Use " "``del`` to remove it entirely:" @@ -417,7 +418,7 @@ msgstr "" "Establecer un conteo en cero no elimina un elemento de un contador. Utilice " "``del`` para eliminarlo por completo:" -#: ../Doc/library/collections.rst:273 +#: ../Doc/library/collections.rst:274 msgid "" "As a :class:`dict` subclass, :class:`Counter` inherited the capability to " "remember insertion order. Math operations on *Counter* objects also " @@ -431,7 +432,7 @@ msgstr "" "de cuándo se encuentra un elemento por primera vez en el operando izquierdo " "y, a continuación, por el orden en que se encuentra en el operando derecho." -#: ../Doc/library/collections.rst:279 +#: ../Doc/library/collections.rst:280 msgid "" "Counter objects support additional methods beyond those available for all " "dictionaries:" @@ -439,7 +440,7 @@ msgstr "" "Los objetos Counter admiten métodos adicionales a los disponibles para todos " "los diccionarios:" -#: ../Doc/library/collections.rst:284 +#: ../Doc/library/collections.rst:285 msgid "" "Return an iterator over elements repeating each as many times as its count. " "Elements are returned in the order first encountered. If an element's count " @@ -450,7 +451,7 @@ msgstr "" "primera vez. Si el conteo de un elemento es menor que uno, :meth:`elements` " "lo ignorará." -#: ../Doc/library/collections.rst:294 +#: ../Doc/library/collections.rst:295 msgid "" "Return a list of the *n* most common elements and their counts from the most " "common to the least. If *n* is omitted or ``None``, :meth:`most_common` " @@ -462,7 +463,7 @@ msgstr "" "retorna *todos* los elementos del contador. Los elementos con conteos " "iguales se ordenan en el orden en que se encontraron por primera vez:" -#: ../Doc/library/collections.rst:304 +#: ../Doc/library/collections.rst:305 msgid "" "Elements are subtracted from an *iterable* or from another *mapping* (or " "counter). Like :meth:`dict.update` but subtracts counts instead of " @@ -472,11 +473,11 @@ msgstr "" "Como :meth:`dict.update` pero resta los conteos en lugar de reemplazarlos. " "Tanto las entradas como las salidas pueden ser cero o negativas." -#: ../Doc/library/collections.rst:318 +#: ../Doc/library/collections.rst:319 msgid "Compute the sum of the counts." msgstr "Computa la suma de las cuentas." -#: ../Doc/library/collections.rst:326 +#: ../Doc/library/collections.rst:327 msgid "" "The usual dictionary methods are available for :class:`Counter` objects " "except for two which work differently for counters." @@ -484,12 +485,12 @@ msgstr "" "Los métodos de diccionario habituales están disponibles para objetos :class:" "`Counter` excepto dos que funcionan de manera diferente para los contadores." -#: ../Doc/library/collections.rst:331 +#: ../Doc/library/collections.rst:332 msgid "This class method is not implemented for :class:`Counter` objects." msgstr "" "Este método de clase no está implementado para objetos :class:`Counter` ." -#: ../Doc/library/collections.rst:335 +#: ../Doc/library/collections.rst:336 msgid "" "Elements are counted from an *iterable* or added-in from another *mapping* " "(or counter). Like :meth:`dict.update` but adds counts instead of replacing " @@ -501,7 +502,7 @@ msgstr "" "reemplazarlos. Además, se espera que el *iterable* sea una secuencia de " "elementos, no una secuencia de parejas ``(clave, valor)`` ." -#: ../Doc/library/collections.rst:340 +#: ../Doc/library/collections.rst:341 msgid "" "Counters support rich comparison operators for equality, subset, and " "superset relationships: ``==``, ``!=``, ``<``, ``<=``, ``>``, ``>=``. All of " @@ -514,11 +515,11 @@ msgstr "" "tuvieran cero recuentos, por lo que ``Counter(a=1) == Counter(a=1, b=0)`` " "retorne verdadero." -#: ../Doc/library/collections.rst:345 +#: ../Doc/library/collections.rst:346 msgid "Rich comparison operations were added." msgstr "Se han añadido operaciones de comparación enriquecidas." -#: ../Doc/library/collections.rst:348 +#: ../Doc/library/collections.rst:349 msgid "" "In equality tests, missing elements are treated as having zero counts. " "Formerly, ``Counter(a=3)`` and ``Counter(a=3, b=0)`` were considered " @@ -528,11 +529,11 @@ msgstr "" "tuvieran cero recuentos. Anteriormente, ``Counter(a=3)`` y ``Counter(a=3, " "b=0)`` se consideraban distintos." -#: ../Doc/library/collections.rst:353 +#: ../Doc/library/collections.rst:354 msgid "Common patterns for working with :class:`Counter` objects::" msgstr "Patrones comunes para trabajar con objetos :class:`Counter`::" -#: ../Doc/library/collections.rst:365 +#: ../Doc/library/collections.rst:366 msgid "" "Several mathematical operations are provided for combining :class:`Counter` " "objects to produce multisets (counters that have counts greater than zero). " @@ -551,7 +552,7 @@ msgstr "" "operación puede aceptar entradas con recuentos con signo, pero la salida " "excluirá los resultados con recuentos iguales o inferiores a cero." -#: ../Doc/library/collections.rst:390 +#: ../Doc/library/collections.rst:391 msgid "" "Unary addition and subtraction are shortcuts for adding an empty counter or " "subtracting from an empty counter." @@ -559,14 +560,14 @@ msgstr "" "La suma y resta unaria son atajos para agregar un contador vacío o restar de " "un contador vacío." -#: ../Doc/library/collections.rst:399 +#: ../Doc/library/collections.rst:400 msgid "" "Added support for unary plus, unary minus, and in-place multiset operations." msgstr "" "Se agregó soporte para operaciones unarias de adición, resta y multiconjunto " "en su lugar (*in-place*)." -#: ../Doc/library/collections.rst:404 +#: ../Doc/library/collections.rst:405 msgid "" "Counters were primarily designed to work with positive integers to represent " "running counts; however, care was taken to not unnecessarily preclude use " @@ -579,7 +580,7 @@ msgstr "" "valores negativos. Para ayudar con esos casos de uso, esta sección documenta " "el rango mínimo y las restricciones de tipo." -#: ../Doc/library/collections.rst:409 +#: ../Doc/library/collections.rst:410 msgid "" "The :class:`Counter` class itself is a dictionary subclass with no " "restrictions on its keys and values. The values are intended to be numbers " @@ -590,7 +591,7 @@ msgstr "" "números que representan conteos, pero *podría* almacenar cualquier cosa en " "el campo de valor." -#: ../Doc/library/collections.rst:413 +#: ../Doc/library/collections.rst:414 msgid "" "The :meth:`~Counter.most_common` method requires only that the values be " "orderable." @@ -598,7 +599,7 @@ msgstr "" "El método :meth:`~Counter.most_common` solo requiere que los valores se " "puedan ordenar." -#: ../Doc/library/collections.rst:415 +#: ../Doc/library/collections.rst:416 msgid "" "For in-place operations such as ``c[key] += 1``, the value type need only " "support addition and subtraction. So fractions, floats, and decimals would " @@ -612,7 +613,7 @@ msgstr "" "negativos. Lo mismo ocurre con :meth:`~Counter.update` y :meth:`~Counter." "subtract` que permiten valores negativos y cero para las entradas y salidas." -#: ../Doc/library/collections.rst:421 +#: ../Doc/library/collections.rst:422 msgid "" "The multiset methods are designed only for use cases with positive values. " "The inputs may be negative or zero, but only outputs with positive values " @@ -624,7 +625,7 @@ msgstr "" "crean salidas con valores positivos. No hay restricciones de tipo, pero el " "tipo de valor debe admitir la suma, la resta y la comparación." -#: ../Doc/library/collections.rst:426 +#: ../Doc/library/collections.rst:427 msgid "" "The :meth:`~Counter.elements` method requires integer counts. It ignores " "zero and negative counts." @@ -632,7 +633,7 @@ msgstr "" "El método :meth:`~Counter.elements` requiere conteos enteros. Ignora los " "conteos de cero y negativos." -#: ../Doc/library/collections.rst:431 +#: ../Doc/library/collections.rst:432 msgid "" "`Bag class `_ in Smalltalk." @@ -640,14 +641,14 @@ msgstr "" "`Clase Bag `_ en Smalltalk." -#: ../Doc/library/collections.rst:434 +#: ../Doc/library/collections.rst:435 msgid "" "Wikipedia entry for `Multisets `_." msgstr "" "Entrada de Wikipedia para `Multiconjuntos `_." -#: ../Doc/library/collections.rst:436 +#: ../Doc/library/collections.rst:437 msgid "" "`C++ multisets `_ tutorial with examples." @@ -655,7 +656,7 @@ msgstr "" "Tutorial de `multiconjuntos de C++ `_ con ejemplos." -#: ../Doc/library/collections.rst:439 +#: ../Doc/library/collections.rst:440 msgid "" "For mathematical operations on multisets and their use cases, see *Knuth, " "Donald. The Art of Computer Programming Volume II, Section 4.6.3, Exercise " @@ -665,7 +666,7 @@ msgstr "" "*Knuth, Donald. The Art of Computer Programming Volume II, Sección 4.6.3, " "Ejercicio 19*." -#: ../Doc/library/collections.rst:443 +#: ../Doc/library/collections.rst:444 msgid "" "To enumerate all distinct multisets of a given size over a given set of " "elements, see :func:`itertools.combinations_with_replacement`::" @@ -674,11 +675,11 @@ msgstr "" "conjunto dado de elementos, consulte :func:`itertools." "combinations_with_replacement`::" -#: ../Doc/library/collections.rst:450 +#: ../Doc/library/collections.rst:451 msgid ":class:`deque` objects" msgstr "Objetos :class:`deque`" -#: ../Doc/library/collections.rst:454 +#: ../Doc/library/collections.rst:455 msgid "" "Returns a new deque object initialized left-to-right (using :meth:`append`) " "with data from *iterable*. If *iterable* is not specified, the new deque is " @@ -688,7 +689,7 @@ msgstr "" "meth:`append`) con datos de *iterable*. Si no se especifica *iterable*, el " "nuevo deque estará vacío." -#: ../Doc/library/collections.rst:457 +#: ../Doc/library/collections.rst:458 msgid "" "Deques are a generalization of stacks and queues (the name is pronounced " "\"deck\" and is short for \"double-ended queue\"). Deques support thread-" @@ -701,7 +702,7 @@ msgstr "" "pops eficientes en memoria desde cualquier lado del deque con " "aproximadamente el mismo rendimiento O(1) en cualquier dirección." -#: ../Doc/library/collections.rst:462 +#: ../Doc/library/collections.rst:463 msgid "" "Though :class:`list` objects support similar operations, they are optimized " "for fast fixed-length operations and incur O(n) memory movement costs for " @@ -714,7 +715,7 @@ msgstr "" "que cambian tanto el tamaño como la posición de la representación de datos " "subyacente." -#: ../Doc/library/collections.rst:468 +#: ../Doc/library/collections.rst:469 msgid "" "If *maxlen* is not specified or is ``None``, deques may grow to an arbitrary " "length. Otherwise, the deque is bounded to the specified maximum length. " @@ -733,31 +734,31 @@ msgstr "" "También son útiles para rastrear transacciones y otros grupos de datos donde " "solo la actividad más reciente es de interés." -#: ../Doc/library/collections.rst:477 +#: ../Doc/library/collections.rst:478 msgid "Deque objects support the following methods:" msgstr "Los objetos deque admiten los siguientes métodos:" -#: ../Doc/library/collections.rst:481 +#: ../Doc/library/collections.rst:482 msgid "Add *x* to the right side of the deque." msgstr "Agregue *x* al lado derecho del deque." -#: ../Doc/library/collections.rst:486 +#: ../Doc/library/collections.rst:487 msgid "Add *x* to the left side of the deque." msgstr "Agregue *x* al lado izquierdo del deque." -#: ../Doc/library/collections.rst:491 +#: ../Doc/library/collections.rst:492 msgid "Remove all elements from the deque leaving it with length 0." msgstr "Retire todos los elementos del deque dejándolo con longitud 0." -#: ../Doc/library/collections.rst:496 +#: ../Doc/library/collections.rst:497 msgid "Create a shallow copy of the deque." msgstr "Crea una copia superficial del deque." -#: ../Doc/library/collections.rst:503 +#: ../Doc/library/collections.rst:504 msgid "Count the number of deque elements equal to *x*." msgstr "Cuente el número de elementos deque igual a *x*." -#: ../Doc/library/collections.rst:510 +#: ../Doc/library/collections.rst:511 msgid "" "Extend the right side of the deque by appending elements from the iterable " "argument." @@ -765,7 +766,7 @@ msgstr "" "Extienda el lado derecho del deque agregando elementos del argumento " "iterable." -#: ../Doc/library/collections.rst:516 +#: ../Doc/library/collections.rst:517 msgid "" "Extend the left side of the deque by appending elements from *iterable*. " "Note, the series of left appends results in reversing the order of elements " @@ -775,7 +776,7 @@ msgstr "" "Tenga en cuenta que la serie de appends a la izquierda da como resultado la " "inversión del orden de los elementos en el argumento iterable." -#: ../Doc/library/collections.rst:523 +#: ../Doc/library/collections.rst:524 msgid "" "Return the position of *x* in the deque (at or after index *start* and " "before index *stop*). Returns the first match or raises :exc:`ValueError` " @@ -785,11 +786,11 @@ msgstr "" "antes del índice *stop*). Retorna la primera coincidencia o lanza :exc:" "`ValueError` si no se encuentra." -#: ../Doc/library/collections.rst:532 +#: ../Doc/library/collections.rst:533 msgid "Insert *x* into the deque at position *i*." msgstr "Ingrese *x* en el dique en la posición *i*." -#: ../Doc/library/collections.rst:534 +#: ../Doc/library/collections.rst:535 msgid "" "If the insertion would cause a bounded deque to grow beyond *maxlen*, an :" "exc:`IndexError` is raised." @@ -797,7 +798,7 @@ msgstr "" "Si la inserción causara que un deque limitado crezca más allá de *maxlen*, " "se lanza un :exc:`IndexError`." -#: ../Doc/library/collections.rst:542 +#: ../Doc/library/collections.rst:543 msgid "" "Remove and return an element from the right side of the deque. If no " "elements are present, raises an :exc:`IndexError`." @@ -805,7 +806,7 @@ msgstr "" "Elimina y retorna un elemento del lado derecho del deque. Si no hay " "elementos presentes, lanza un :exc:`IndexError`." -#: ../Doc/library/collections.rst:548 +#: ../Doc/library/collections.rst:549 msgid "" "Remove and return an element from the left side of the deque. If no elements " "are present, raises an :exc:`IndexError`." @@ -813,7 +814,7 @@ msgstr "" "Elimina y retorna un elemento del lado izquierdo del deque. Si no hay " "elementos presentes, lanza un :exc:`IndexError`." -#: ../Doc/library/collections.rst:554 +#: ../Doc/library/collections.rst:555 msgid "" "Remove the first occurrence of *value*. If not found, raises a :exc:" "`ValueError`." @@ -821,13 +822,13 @@ msgstr "" "Elimina la primera aparición de *value*. Si no se encuentra, lanza un :exc:" "`ValueError`." -#: ../Doc/library/collections.rst:560 +#: ../Doc/library/collections.rst:561 msgid "Reverse the elements of the deque in-place and then return ``None``." msgstr "" "Invierte los elementos del deque en su lugar (*in-place*) y luego retorna " "``None``." -#: ../Doc/library/collections.rst:567 +#: ../Doc/library/collections.rst:568 msgid "" "Rotate the deque *n* steps to the right. If *n* is negative, rotate to the " "left." @@ -835,7 +836,7 @@ msgstr "" "Gira el deque *n* pasos a la derecha. Si *n* es negativo, lo gira hacia la " "izquierda." -#: ../Doc/library/collections.rst:570 +#: ../Doc/library/collections.rst:571 msgid "" "When the deque is not empty, rotating one step to the right is equivalent to " "``d.appendleft(d.pop())``, and rotating one step to the left is equivalent " @@ -845,15 +846,15 @@ msgstr "" "appendleft(d.pop())``, y girar un paso hacia la izquierda equivale a ``d." "append(d.popleft())``." -#: ../Doc/library/collections.rst:575 +#: ../Doc/library/collections.rst:576 msgid "Deque objects also provide one read-only attribute:" msgstr "Los objetos deque también proporcionan un atributo de solo lectura:" -#: ../Doc/library/collections.rst:579 +#: ../Doc/library/collections.rst:580 msgid "Maximum size of a deque or ``None`` if unbounded." msgstr "Tamaño máximo de un deque o ``None`` si no está limitado." -#: ../Doc/library/collections.rst:584 +#: ../Doc/library/collections.rst:585 msgid "" "In addition to the above, deques support iteration, pickling, ``len(d)``, " "``reversed(d)``, ``copy.copy(d)``, ``copy.deepcopy(d)``, membership testing " @@ -868,7 +869,7 @@ msgstr "" "ambos extremos, pero se ralentiza hasta O(n) en el medio. Para un acceso " "aleatorio rápido, use listas en su lugar." -#: ../Doc/library/collections.rst:590 +#: ../Doc/library/collections.rst:591 msgid "" "Starting in version 3.5, deques support ``__add__()``, ``__mul__()``, and " "``__imul__()``." @@ -876,19 +877,19 @@ msgstr "" "A partir de la versión 3.5, los deques admiten ``__add__()``, ``__mul__()``, " "y ``__imul__()``." -#: ../Doc/library/collections.rst:593 +#: ../Doc/library/collections.rst:594 msgid "Example:" msgstr "Ejemplo:" -#: ../Doc/library/collections.rst:650 +#: ../Doc/library/collections.rst:651 msgid ":class:`deque` Recipes" msgstr "Recetas :class:`deque`" -#: ../Doc/library/collections.rst:652 +#: ../Doc/library/collections.rst:653 msgid "This section shows various approaches to working with deques." msgstr "Esta sección muestra varios enfoques para trabajar con deques." -#: ../Doc/library/collections.rst:654 +#: ../Doc/library/collections.rst:655 msgid "" "Bounded length deques provide functionality similar to the ``tail`` filter " "in Unix::" @@ -896,7 +897,7 @@ msgstr "" "Los deques de longitud limitada proporcionan una funcionalidad similar al " "filtro ``tail`` en Unix::" -#: ../Doc/library/collections.rst:662 +#: ../Doc/library/collections.rst:663 msgid "" "Another approach to using deques is to maintain a sequence of recently added " "elements by appending to the right and popping to the left::" @@ -905,7 +906,7 @@ msgstr "" "agregados recientemente haciendo appending a la derecha y popping a la " "izquierda:" -#: ../Doc/library/collections.rst:677 +#: ../Doc/library/collections.rst:678 msgid "" "A `round-robin scheduler `_ can be implemented with input iterators stored in a :" @@ -921,7 +922,7 @@ msgstr "" "con :meth:`~deque.popleft`; de lo contrario, se puede volver en ciclos al " "final con el método :meth:`~deque.rotate` ::" -#: ../Doc/library/collections.rst:696 +#: ../Doc/library/collections.rst:697 msgid "" "The :meth:`~deque.rotate` method provides a way to implement :class:`deque` " "slicing and deletion. For example, a pure Python implementation of ``del " @@ -932,7 +933,7 @@ msgstr "" "pura de Python de ``del d[n]`` se basa en el método ``rotate()`` para " "colocar los elementos que se van a extraer::" -#: ../Doc/library/collections.rst:705 +#: ../Doc/library/collections.rst:706 msgid "" "To implement :class:`deque` slicing, use a similar approach applying :meth:" "`~deque.rotate` to bring a target element to the left side of the deque. " @@ -949,11 +950,11 @@ msgstr "" "implementar manipulaciones de pila de estilo hacia adelante como ``dup``, " "``drop``, ``swap``, ``over``, ``pick``, ``rot``, y ``roll``." -#: ../Doc/library/collections.rst:715 +#: ../Doc/library/collections.rst:716 msgid ":class:`defaultdict` objects" msgstr "Objetos :class:`defaultdict`" -#: ../Doc/library/collections.rst:719 +#: ../Doc/library/collections.rst:720 msgid "" "Return a new dictionary-like object. :class:`defaultdict` is a subclass of " "the built-in :class:`dict` class. It overrides one method and adds one " @@ -965,7 +966,7 @@ msgstr "" "agrega una variable de instancia de escritura. La funcionalidad restante es " "la misma que para la clase :class:`dict` y no está documentada aquí." -#: ../Doc/library/collections.rst:724 +#: ../Doc/library/collections.rst:725 msgid "" "The first argument provides the initial value for the :attr:" "`default_factory` attribute; it defaults to ``None``. All remaining " @@ -977,7 +978,7 @@ msgstr "" "se tratan de la misma forma que si se pasaran al constructor :class:`dict`, " "incluidos los argumentos de palabras clave." -#: ../Doc/library/collections.rst:730 +#: ../Doc/library/collections.rst:731 msgid "" ":class:`defaultdict` objects support the following method in addition to the " "standard :class:`dict` operations:" @@ -985,7 +986,7 @@ msgstr "" "Los objetos :class:`defaultdict` admiten el siguiente método además de las " "operaciones estándar de :class:`dict`:" -#: ../Doc/library/collections.rst:735 +#: ../Doc/library/collections.rst:736 msgid "" "If the :attr:`default_factory` attribute is ``None``, this raises a :exc:" "`KeyError` exception with the *key* as argument." @@ -993,7 +994,7 @@ msgstr "" "Si el atributo :attr:`default_factory` es ``None``, lanza una excepción :exc:" "`KeyError` con la *key* como argumento." -#: ../Doc/library/collections.rst:738 +#: ../Doc/library/collections.rst:739 msgid "" "If :attr:`default_factory` is not ``None``, it is called without arguments " "to provide a default value for the given *key*, this value is inserted in " @@ -1003,7 +1004,7 @@ msgstr "" "proporcionar un valor predeterminado para la *key* dada, este valor se " "inserta en el diccionario para la *key* y se retorna." -#: ../Doc/library/collections.rst:742 +#: ../Doc/library/collections.rst:743 msgid "" "If calling :attr:`default_factory` raises an exception this exception is " "propagated unchanged." @@ -1011,7 +1012,7 @@ msgstr "" "Si llamar a :attr:`default_factory` lanza una excepción, esta excepción se " "propaga sin cambios." -#: ../Doc/library/collections.rst:745 +#: ../Doc/library/collections.rst:746 msgid "" "This method is called by the :meth:`__getitem__` method of the :class:`dict` " "class when the requested key is not found; whatever it returns or raises is " @@ -1021,7 +1022,7 @@ msgstr "" "`dict` cuando no se encuentra la clave solicitada; todo lo que retorna o " "lanza es retornado o lanzado por :meth:`__getitem__`." -#: ../Doc/library/collections.rst:749 +#: ../Doc/library/collections.rst:750 msgid "" "Note that :meth:`__missing__` is *not* called for any operations besides :" "meth:`__getitem__`. This means that :meth:`get` will, like normal " @@ -1033,12 +1034,12 @@ msgstr "" "diccionarios normales, retornará ``None`` por defecto en lugar de usar :attr:" "`default_factory`." -#: ../Doc/library/collections.rst:755 +#: ../Doc/library/collections.rst:756 msgid ":class:`defaultdict` objects support the following instance variable:" msgstr "" "los objetos :class:`defaultdict` admiten la siguiente variable de instancia:" -#: ../Doc/library/collections.rst:760 +#: ../Doc/library/collections.rst:761 msgid "" "This attribute is used by the :meth:`__missing__` method; it is initialized " "from the first argument to the constructor, if present, or to ``None``, if " @@ -1048,18 +1049,18 @@ msgstr "" "desde el primer argumento al constructor, si está presente, o en ``None``, " "si está ausente." -#: ../Doc/library/collections.rst:764 ../Doc/library/collections.rst:1180 +#: ../Doc/library/collections.rst:765 ../Doc/library/collections.rst:1182 msgid "" "Added merge (``|``) and update (``|=``) operators, specified in :pep:`584`." msgstr "" "Se agregaron los operadores unir (``|``) y actualizar (``|=``), " "especificados en :pep:`584`." -#: ../Doc/library/collections.rst:770 +#: ../Doc/library/collections.rst:771 msgid ":class:`defaultdict` Examples" msgstr "Ejemplos :class:`defaultdict`" -#: ../Doc/library/collections.rst:772 +#: ../Doc/library/collections.rst:773 msgid "" "Using :class:`list` as the :attr:`~defaultdict.default_factory`, it is easy " "to group a sequence of key-value pairs into a dictionary of lists:" @@ -1067,7 +1068,7 @@ msgstr "" "Usando :class:`list` como :attr:`~defaultdict.default_factory`, es fácil " "agrupar una secuencia de pares clave-valor en un diccionario de listas:" -#: ../Doc/library/collections.rst:783 +#: ../Doc/library/collections.rst:784 msgid "" "When each key is encountered for the first time, it is not already in the " "mapping; so an entry is automatically created using the :attr:`~defaultdict." @@ -1087,7 +1088,7 @@ msgstr "" "agrega otro valor a la lista. Esta técnica es más simple y rápida que una " "técnica equivalente usando :meth:`dict.setdefault`:" -#: ../Doc/library/collections.rst:798 +#: ../Doc/library/collections.rst:799 msgid "" "Setting the :attr:`~defaultdict.default_factory` to :class:`int` makes the :" "class:`defaultdict` useful for counting (like a bag or multiset in other " @@ -1097,7 +1098,7 @@ msgstr "" "class:`defaultdict` sea útil para contar (como un bag o multiconjunto en " "otros idiomas):" -#: ../Doc/library/collections.rst:810 +#: ../Doc/library/collections.rst:811 msgid "" "When a letter is first encountered, it is missing from the mapping, so the :" "attr:`~defaultdict.default_factory` function calls :func:`int` to supply a " @@ -1109,7 +1110,7 @@ msgstr "" "proporcionar una cuenta predeterminada de cero. La operación de incremento " "luego acumula el conteo de cada letra." -#: ../Doc/library/collections.rst:814 +#: ../Doc/library/collections.rst:815 msgid "" "The function :func:`int` which always returns zero is just a special case of " "constant functions. A faster and more flexible way to create constant " @@ -1121,7 +1122,7 @@ msgstr "" "constantes es utilizar una función lambda que pueda proporcionar cualquier " "valor constante (no solo cero):" -#: ../Doc/library/collections.rst:826 +#: ../Doc/library/collections.rst:828 msgid "" "Setting the :attr:`~defaultdict.default_factory` to :class:`set` makes the :" "class:`defaultdict` useful for building a dictionary of sets:" @@ -1129,12 +1130,12 @@ msgstr "" "Establecer :attr:`~defaultdict.default_factory` en :class:`set` hace que :" "class:`defaultdict` sea útil para construir un diccionario de conjuntos:" -#: ../Doc/library/collections.rst:839 +#: ../Doc/library/collections.rst:841 msgid ":func:`namedtuple` Factory Function for Tuples with Named Fields" msgstr "" ":func:`namedtuple` Funciones *Factory* para Tuplas y Campos con Nombres" -#: ../Doc/library/collections.rst:841 +#: ../Doc/library/collections.rst:843 msgid "" "Named tuples assign meaning to each position in a tuple and allow for more " "readable, self-documenting code. They can be used wherever regular tuples " @@ -1146,7 +1147,7 @@ msgstr "" "usen tuplas regulares y agregan la capacidad de acceder a los campos por " "nombre en lugar del índice de posición." -#: ../Doc/library/collections.rst:847 +#: ../Doc/library/collections.rst:849 msgid "" "Returns a new tuple subclass named *typename*. The new subclass is used to " "create tuple-like objects that have fields accessible by attribute lookup as " @@ -1161,7 +1162,7 @@ msgstr "" "y un método útil :meth:`__repr__` que lista el contenido de la tupla en un " "formato de ``nombre=valor``." -#: ../Doc/library/collections.rst:853 +#: ../Doc/library/collections.rst:855 msgid "" "The *field_names* are a sequence of strings such as ``['x', 'y']``. " "Alternatively, *field_names* can be a single string with each fieldname " @@ -1172,7 +1173,7 @@ msgstr "" "nombre de campo separado por espacios en blanco y/o comas, por ejemplo ``’x " "y’`` or ``’x, y’``." -#: ../Doc/library/collections.rst:857 +#: ../Doc/library/collections.rst:859 msgid "" "Any valid Python identifier may be used for a fieldname except for names " "starting with an underscore. Valid identifiers consist of letters, digits, " @@ -1185,7 +1186,7 @@ msgstr "" "comienzan con un dígito o guion bajo y no pueden ser :mod:`keyword` como " "*class*, *for*, *return*, *global*, *pass*, o *raise*." -#: ../Doc/library/collections.rst:863 +#: ../Doc/library/collections.rst:865 msgid "" "If *rename* is true, invalid fieldnames are automatically replaced with " "positional names. For example, ``['abc', 'def', 'ghi', 'abc']`` is " @@ -1197,7 +1198,7 @@ msgstr "" "‘ghi’, ‘abc’]`` se convierte en ``[‘abc’, ‘_1’, ‘ghi’, ‘_3’]``, eliminando " "la palabra clave ``def`` y el nombre de campo duplicado ``abc``." -#: ../Doc/library/collections.rst:868 +#: ../Doc/library/collections.rst:870 msgid "" "*defaults* can be ``None`` or an :term:`iterable` of default values. Since " "fields with a default value must come after any fields without a default, " @@ -1214,7 +1215,7 @@ msgstr "" "``(1, 2)``, entonces ``x`` será un argumento obligatorio, ``y`` tendrá el " "valor predeterminado de ``1``, y ``z`` el valor predeterminado de ``2``." -#: ../Doc/library/collections.rst:875 +#: ../Doc/library/collections.rst:877 msgid "" "If *module* is defined, the ``__module__`` attribute of the named tuple is " "set to that value." @@ -1222,7 +1223,7 @@ msgstr "" "Si se define *module*, el atributo ``__module__`` de la tupla nombrada se " "establece en ese valor." -#: ../Doc/library/collections.rst:878 +#: ../Doc/library/collections.rst:880 msgid "" "Named tuple instances do not have per-instance dictionaries, so they are " "lightweight and require no more memory than regular tuples." @@ -1230,7 +1231,7 @@ msgstr "" "Las instancias de tuplas con nombre no tienen diccionarios por instancia, " "por lo que son livianas y no requieren más memoria que las tuplas normales." -#: ../Doc/library/collections.rst:881 +#: ../Doc/library/collections.rst:883 msgid "" "To support pickling, the named tuple class should be assigned to a variable " "that matches *typename*." @@ -1238,11 +1239,11 @@ msgstr "" "Para admitir el serializado (*pickling*), la clase tupla con nombre debe " "asignarse a una variable que coincida con *typename*." -#: ../Doc/library/collections.rst:884 +#: ../Doc/library/collections.rst:886 msgid "Added support for *rename*." msgstr "Se agregó soporte para *rename*." -#: ../Doc/library/collections.rst:887 +#: ../Doc/library/collections.rst:889 msgid "" "The *verbose* and *rename* parameters became :ref:`keyword-only arguments " "`." @@ -1250,21 +1251,21 @@ msgstr "" "Los parámetros *verbose* y *rename* se convirtieron en :ref:`argumentos de " "solo palabra clave `." -#: ../Doc/library/collections.rst:891 +#: ../Doc/library/collections.rst:893 msgid "Added the *module* parameter." msgstr "Se agregó el parámetro *module*." -#: ../Doc/library/collections.rst:894 +#: ../Doc/library/collections.rst:896 msgid "Removed the *verbose* parameter and the :attr:`_source` attribute." msgstr "Se eliminaron el parámetro *verbose* y el atributo :attr:`_source`." -#: ../Doc/library/collections.rst:897 +#: ../Doc/library/collections.rst:899 msgid "" "Added the *defaults* parameter and the :attr:`_field_defaults` attribute." msgstr "" "Se agregaron el parámetro *defaults* y él atributo :attr:`_field_defaults`." -#: ../Doc/library/collections.rst:917 +#: ../Doc/library/collections.rst:919 msgid "" "Named tuples are especially useful for assigning field names to result " "tuples returned by the :mod:`csv` or :mod:`sqlite3` modules::" @@ -1273,7 +1274,7 @@ msgstr "" "a las tuplas de resultado retornadas por los módulos :mod:`csv` o :mod:" "`sqlite3`::" -#: ../Doc/library/collections.rst:933 +#: ../Doc/library/collections.rst:935 msgid "" "In addition to the methods inherited from tuples, named tuples support three " "additional methods and two attributes. To prevent conflicts with field " @@ -1284,14 +1285,14 @@ msgstr "" "nombres de campo, los nombres de método y atributo comienzan con un guión " "bajo." -#: ../Doc/library/collections.rst:939 +#: ../Doc/library/collections.rst:941 msgid "" "Class method that makes a new instance from an existing sequence or iterable." msgstr "" "Método de clase que crea una nueva instancia a partir de una secuencia " "existente o iterable." -#: ../Doc/library/collections.rst:949 +#: ../Doc/library/collections.rst:951 msgid "" "Return a new :class:`dict` which maps field names to their corresponding " "values:" @@ -1299,11 +1300,11 @@ msgstr "" "Retorna un nuevo :class:`dict` que asigna los nombres de los campos a sus " "valores correspondientes:" -#: ../Doc/library/collections.rst:958 +#: ../Doc/library/collections.rst:960 msgid "Returns an :class:`OrderedDict` instead of a regular :class:`dict`." msgstr "Retorna un :class:`OrderedDict` en lugar de un :class:`dict` regular." -#: ../Doc/library/collections.rst:961 +#: ../Doc/library/collections.rst:963 msgid "" "Returns a regular :class:`dict` instead of an :class:`OrderedDict`. As of " "Python 3.7, regular dicts are guaranteed to be ordered. If the extra " @@ -1316,7 +1317,7 @@ msgstr "" "corrección sugerida es emitir el resultado al tipo deseado: ``OrderedDict(nt." "_asdict())``." -#: ../Doc/library/collections.rst:970 +#: ../Doc/library/collections.rst:972 msgid "" "Return a new instance of the named tuple replacing specified fields with new " "values::" @@ -1324,7 +1325,7 @@ msgstr "" "Retorna una nueva instancia de la tupla nombrada reemplazando los campos " "especificados con nuevos valores::" -#: ../Doc/library/collections.rst:982 +#: ../Doc/library/collections.rst:984 msgid "" "Tuple of strings listing the field names. Useful for introspection and for " "creating new named tuple types from existing named tuples." @@ -1333,11 +1334,11 @@ msgstr "" "introspección y para crear nuevos tipos de tuplas con nombre a partir de " "tuplas con nombre existentes." -#: ../Doc/library/collections.rst:997 +#: ../Doc/library/collections.rst:999 msgid "Dictionary mapping field names to default values." msgstr "Diccionario de nombres de campos mapeados a valores predeterminados." -#: ../Doc/library/collections.rst:1007 +#: ../Doc/library/collections.rst:1009 msgid "" "To retrieve a field whose name is stored in a string, use the :func:" "`getattr` function:" @@ -1345,7 +1346,7 @@ msgstr "" "Para recuperar un campo cuyo nombre está almacenado en una cadena, use la " "función :func:`getattr`:" -#: ../Doc/library/collections.rst:1013 +#: ../Doc/library/collections.rst:1015 msgid "" "To convert a dictionary to a named tuple, use the double-star-operator (as " "described in :ref:`tut-unpacking-arguments`):" @@ -1353,7 +1354,7 @@ msgstr "" "Para convertir un diccionario en una tupla con nombre, use el operador de " "doble estrella (como se describe en :ref:`tut-unpacking-arguments`):" -#: ../Doc/library/collections.rst:1020 +#: ../Doc/library/collections.rst:1022 msgid "" "Since a named tuple is a regular Python class, it is easy to add or change " "functionality with a subclass. Here is how to add a calculated field and a " @@ -1363,7 +1364,7 @@ msgstr "" "cambiar la funcionalidad con una subclase. A continuación, se explica cómo " "agregar un campo calculado y un formato de impresión de ancho fijo:" -#: ../Doc/library/collections.rst:1039 +#: ../Doc/library/collections.rst:1041 msgid "" "The subclass shown above sets ``__slots__`` to an empty tuple. This helps " "keep memory requirements low by preventing the creation of instance " @@ -1373,7 +1374,7 @@ msgstr "" "Esto ayuda a mantener bajos los requisitos de memoria al evitar la creación " "de diccionarios de instancia." -#: ../Doc/library/collections.rst:1042 +#: ../Doc/library/collections.rst:1044 msgid "" "Subclassing is not useful for adding new, stored fields. Instead, simply " "create a new named tuple type from the :attr:`~somenamedtuple._fields` " @@ -1383,7 +1384,7 @@ msgstr "" "lugar, simplemente cree un nuevo tipo de tupla con nombre a partir del " "atributo :attr:`~somenamedtuple._fields`:" -#: ../Doc/library/collections.rst:1047 +#: ../Doc/library/collections.rst:1049 msgid "" "Docstrings can be customized by making direct assignments to the ``__doc__`` " "fields:" @@ -1391,11 +1392,11 @@ msgstr "" "Los docstrings se pueden personalizar realizando asignaciones directas a los " "campos ``__doc__`` :" -#: ../Doc/library/collections.rst:1056 +#: ../Doc/library/collections.rst:1058 msgid "Property docstrings became writeable." msgstr "Los docstrings de propiedad se pueden escribir." -#: ../Doc/library/collections.rst:1061 +#: ../Doc/library/collections.rst:1063 msgid "" "See :class:`typing.NamedTuple` for a way to add type hints for named " "tuples. It also provides an elegant notation using the :keyword:`class` " @@ -1405,7 +1406,7 @@ msgstr "" "sugerencias de tipo para tuplas con nombre. También proporciona una notación " "elegante usando la palabra clave :keyword:`class`::" -#: ../Doc/library/collections.rst:1070 +#: ../Doc/library/collections.rst:1072 msgid "" "See :meth:`types.SimpleNamespace` for a mutable namespace based on an " "underlying dictionary instead of a tuple." @@ -1413,7 +1414,7 @@ msgstr "" "Vea :meth:`types.SimpleNamespace` para un espacio de nombres mutable basado " "en un diccionario subyacente en lugar de una tupla." -#: ../Doc/library/collections.rst:1073 +#: ../Doc/library/collections.rst:1075 msgid "" "The :mod:`dataclasses` module provides a decorator and functions for " "automatically adding generated special methods to user-defined classes." @@ -1422,11 +1423,11 @@ msgstr "" "agregar automáticamente métodos especiales generados a clases definidas por " "el usuario." -#: ../Doc/library/collections.rst:1078 +#: ../Doc/library/collections.rst:1080 msgid ":class:`OrderedDict` objects" msgstr "Objetos :class:`OrderedDict`" -#: ../Doc/library/collections.rst:1080 +#: ../Doc/library/collections.rst:1082 msgid "" "Ordered dictionaries are just like regular dictionaries but have some extra " "capabilities relating to ordering operations. They have become less " @@ -1439,11 +1440,11 @@ msgstr "" "class:`dict` ganó la capacidad de recordar el orden de inserción (este nuevo " "comportamiento quedó garantizado en Python 3.7)." -#: ../Doc/library/collections.rst:1086 +#: ../Doc/library/collections.rst:1088 msgid "Some differences from :class:`dict` still remain:" msgstr "Aún quedan algunas diferencias con :class:`dict` :" -#: ../Doc/library/collections.rst:1088 +#: ../Doc/library/collections.rst:1090 msgid "" "The regular :class:`dict` was designed to be very good at mapping " "operations. Tracking insertion order was secondary." @@ -1451,7 +1452,7 @@ msgstr "" "El :class:`dict` normal fue diseñado para ser muy bueno en operaciones de " "mapeo. El seguimiento del pedido de inserción era secundario." -#: ../Doc/library/collections.rst:1091 +#: ../Doc/library/collections.rst:1093 msgid "" "The :class:`OrderedDict` was designed to be good at reordering operations. " "Space efficiency, iteration speed, and the performance of update operations " @@ -1461,7 +1462,7 @@ msgstr "" "operaciones. La eficiencia del espacio, la velocidad de iteración y el " "rendimiento de las operaciones de actualización fueron secundarios." -#: ../Doc/library/collections.rst:1095 +#: ../Doc/library/collections.rst:1097 msgid "" "The :class:`OrderedDict` algorithm can handle frequent reordering operations " "better than :class:`dict`. As shown in the recipes below, this makes it " @@ -1472,14 +1473,14 @@ msgstr "" "siguientes, esto lo vuelve adecuado para implementar varios tipos de caches " "LRU." -#: ../Doc/library/collections.rst:1099 +#: ../Doc/library/collections.rst:1101 msgid "" "The equality operation for :class:`OrderedDict` checks for matching order." msgstr "" "La operación de igualdad para :class:`OrderedDict` comprueba el orden " "coincidente." -#: ../Doc/library/collections.rst:1101 +#: ../Doc/library/collections.rst:1103 msgid "" "A regular :class:`dict` can emulate the order sensitive equality test with " "``p == q and all(k1 == k2 for k1, k2 in zip(p, q))``." @@ -1487,7 +1488,7 @@ msgstr "" "Un :class:`dict` regular puede emular la prueba de igualdad sensible al " "orden con ``p == q and all(k1 == k2 for k1, k2 in zip(p, q))``." -#: ../Doc/library/collections.rst:1104 +#: ../Doc/library/collections.rst:1106 msgid "" "The :meth:`popitem` method of :class:`OrderedDict` has a different " "signature. It accepts an optional argument to specify which item is popped." @@ -1495,7 +1496,7 @@ msgstr "" "El método :meth:`popitem` de :class:`OrderedDict` tiene una firma diferente. " "Acepta un argumento opcional para especificar qué elemento es *popped*." -#: ../Doc/library/collections.rst:1107 +#: ../Doc/library/collections.rst:1109 msgid "" "A regular :class:`dict` can emulate OrderedDict's ``od.popitem(last=True)`` " "with ``d.popitem()`` which is guaranteed to pop the rightmost (last) item." @@ -1504,7 +1505,7 @@ msgstr "" "OrderedDict con ``d.popitem()`` que se garantiza que salte el elemento " "situado más a la derecha (el último)." -#: ../Doc/library/collections.rst:1110 +#: ../Doc/library/collections.rst:1112 msgid "" "A regular :class:`dict` can emulate OrderedDict's ``od.popitem(last=False)`` " "with ``(k := next(iter(d)), d.pop(k))`` which will return and remove the " @@ -1514,7 +1515,7 @@ msgstr "" "OrderedDict con ``(k := next(iter(d)), d.pop(k))`` que retornará y eliminará " "el elemento situado más a la izquierda (el primero) si existe." -#: ../Doc/library/collections.rst:1114 +#: ../Doc/library/collections.rst:1116 msgid "" ":class:`OrderedDict` has a :meth:`move_to_end` method to efficiently " "reposition an element to an endpoint." @@ -1522,7 +1523,7 @@ msgstr "" ":class:`OrderedDict` tiene un método :meth:`move_to_end` para reposiciones " "eficientemente un elemento a un punto final." -#: ../Doc/library/collections.rst:1117 +#: ../Doc/library/collections.rst:1119 msgid "" "A regular :class:`dict` can emulate OrderedDict's ``od.move_to_end(k, " "last=True)`` with ``d[k] = d.pop(k)`` which will move the key and its " @@ -1532,7 +1533,7 @@ msgstr "" "OrderedDict con ``d[k] = d.pop(k)`` que desplazará la clave y su valor " "asociado a la posición más a la derecha (última)." -#: ../Doc/library/collections.rst:1121 +#: ../Doc/library/collections.rst:1123 msgid "" "A regular :class:`dict` does not have an efficient equivalent for " "OrderedDict's ``od.move_to_end(k, last=False)`` which moves the key and its " @@ -1542,12 +1543,12 @@ msgstr "" "move_to_end(k, last=False)`` de OrderedDict que desplaza la clave y su valor " "asociado a la posición más a la izquierda (primera)." -#: ../Doc/library/collections.rst:1125 +#: ../Doc/library/collections.rst:1127 msgid "Until Python 3.8, :class:`dict` lacked a :meth:`__reversed__` method." msgstr "" "Hasta Python 3.8, :class:`dict` carecía de un método :meth:`__reversed__`." -#: ../Doc/library/collections.rst:1130 +#: ../Doc/library/collections.rst:1132 msgid "" "Return an instance of a :class:`dict` subclass that has methods specialized " "for rearranging dictionary order." @@ -1555,7 +1556,7 @@ msgstr "" "Retorna una instancia de una subclase :class:`dict` que tiene métodos " "especializados para reorganizar el orden del diccionario." -#: ../Doc/library/collections.rst:1137 +#: ../Doc/library/collections.rst:1139 msgid "" "The :meth:`popitem` method for ordered dictionaries returns and removes a " "(key, value) pair. The pairs are returned in :abbr:`LIFO (last-in, first-" @@ -1567,7 +1568,7 @@ msgstr "" "first-out)` si el *último* es verdadero o en orden :abbr:`FIFO (first-in, " "first-out)` si es falso." -#: ../Doc/library/collections.rst:1144 +#: ../Doc/library/collections.rst:1146 msgid "" "Move an existing *key* to either end of an ordered dictionary. The item is " "moved to the right end if *last* is true (the default) or to the beginning " @@ -1578,7 +1579,7 @@ msgstr "" "(por defecto) o al principio si *last* es falso. Lanza :exc:`KeyError` si " "la *clave* no existe:" -#: ../Doc/library/collections.rst:1161 +#: ../Doc/library/collections.rst:1163 msgid "" "In addition to the usual mapping methods, ordered dictionaries also support " "reverse iteration using :func:`reversed`." @@ -1586,7 +1587,7 @@ msgstr "" "Además de los métodos de mapeo habituales, los diccionarios ordenados " "también admiten la iteración inversa usando :func:`reversed`." -#: ../Doc/library/collections.rst:1164 +#: ../Doc/library/collections.rst:1166 msgid "" "Equality tests between :class:`OrderedDict` objects are order-sensitive and " "are implemented as ``list(od1.items())==list(od2.items())``. Equality tests " @@ -1602,7 +1603,7 @@ msgstr "" "diccionarios normales. Esto permite que los objetos :class:`OrderedDict` " "sean sustituidos en cualquier lugar donde se utilice un diccionario normal." -#: ../Doc/library/collections.rst:1171 +#: ../Doc/library/collections.rst:1173 msgid "" "The items, keys, and values :term:`views ` of :class:" "`OrderedDict` now support reverse iteration using :func:`reversed`." @@ -1610,7 +1611,7 @@ msgstr "" "Los elementos, claves y valores :term:`vistas ` de :class:" "`OrderedDict` ahora admiten la iteración inversa usando :func:`reversed`." -#: ../Doc/library/collections.rst:1175 +#: ../Doc/library/collections.rst:1177 msgid "" "With the acceptance of :pep:`468`, order is retained for keyword arguments " "passed to the :class:`OrderedDict` constructor and its :meth:`update` method." @@ -1619,11 +1620,11 @@ msgstr "" "palabras clave pasados al constructor :class:`OrderedDict` y su método :meth:" "`update`." -#: ../Doc/library/collections.rst:1185 +#: ../Doc/library/collections.rst:1187 msgid ":class:`OrderedDict` Examples and Recipes" msgstr "Ejemplos y recetas :class:`OrderedDict`" -#: ../Doc/library/collections.rst:1187 +#: ../Doc/library/collections.rst:1189 msgid "" "It is straightforward to create an ordered dictionary variant that remembers " "the order the keys were *last* inserted. If a new entry overwrites an " @@ -1635,7 +1636,7 @@ msgstr "" "sobrescribe una entrada existente, la posición de inserción original se " "cambia y se mueve al final::" -#: ../Doc/library/collections.rst:1199 +#: ../Doc/library/collections.rst:1201 msgid "" "An :class:`OrderedDict` would also be useful for implementing variants of :" "func:`functools.lru_cache`:" @@ -1643,11 +1644,11 @@ msgstr "" "Un :class:`OrderedDict` también sería útil para implementar variantes de :" "func:`functools.lru_cache`::" -#: ../Doc/library/collections.rst:1297 +#: ../Doc/library/collections.rst:1300 msgid ":class:`UserDict` objects" msgstr "Objetos :class:`UserDict`" -#: ../Doc/library/collections.rst:1299 +#: ../Doc/library/collections.rst:1302 msgid "" "The class, :class:`UserDict` acts as a wrapper around dictionary objects. " "The need for this class has been partially supplanted by the ability to " @@ -1660,7 +1661,7 @@ msgstr "" "`dict`; sin embargo, es más fácil trabajar con esta clase porque se puede " "acceder al diccionario subyacente como un atributo." -#: ../Doc/library/collections.rst:1307 +#: ../Doc/library/collections.rst:1310 msgid "" "Class that simulates a dictionary. The instance's contents are kept in a " "regular dictionary, which is accessible via the :attr:`data` attribute of :" @@ -1675,7 +1676,7 @@ msgstr "" "que no se mantendrá una referencia a *initialdata*, lo que permite que se " "utilice para otros fines." -#: ../Doc/library/collections.rst:1313 +#: ../Doc/library/collections.rst:1316 msgid "" "In addition to supporting the methods and operations of mappings, :class:" "`UserDict` instances provide the following attribute:" @@ -1683,18 +1684,18 @@ msgstr "" "Además de admitir los métodos y operaciones de los mappings, las instancias :" "class:`UserDict` proporcionan el siguiente atributo:" -#: ../Doc/library/collections.rst:1318 +#: ../Doc/library/collections.rst:1321 msgid "" "A real dictionary used to store the contents of the :class:`UserDict` class." msgstr "" "Un diccionario real utilizado para almacenar el contenido de la clase :class:" "`UserDict` ." -#: ../Doc/library/collections.rst:1324 +#: ../Doc/library/collections.rst:1327 msgid ":class:`UserList` objects" msgstr "Objetos :class:`UserList`" -#: ../Doc/library/collections.rst:1326 +#: ../Doc/library/collections.rst:1329 msgid "" "This class acts as a wrapper around list objects. It is a useful base class " "for your own list-like classes which can inherit from them and override " @@ -1706,7 +1707,7 @@ msgstr "" "ellas y anular métodos existentes o agregar nuevos. De esta forma, se pueden " "agregar nuevos comportamientos a las listas." -#: ../Doc/library/collections.rst:1331 +#: ../Doc/library/collections.rst:1334 msgid "" "The need for this class has been partially supplanted by the ability to " "subclass directly from :class:`list`; however, this class can be easier to " @@ -1717,7 +1718,7 @@ msgstr "" "fácil trabajar con esta clase porque se puede acceder a la lista subyacente " "como atributo." -#: ../Doc/library/collections.rst:1337 +#: ../Doc/library/collections.rst:1340 msgid "" "Class that simulates a list. The instance's contents are kept in a regular " "list, which is accessible via the :attr:`data` attribute of :class:" @@ -1732,7 +1733,7 @@ msgstr "" "*list* puede ser cualquier iterable, por ejemplo, una lista de Python real o " "un objeto :class:`UserList`." -#: ../Doc/library/collections.rst:1343 +#: ../Doc/library/collections.rst:1346 msgid "" "In addition to supporting the methods and operations of mutable sequences, :" "class:`UserList` instances provide the following attribute:" @@ -1740,7 +1741,7 @@ msgstr "" "Además de admitir los métodos y operaciones de secuencias mutables, las " "instancias :class:`UserList` proporcionan el siguiente atributo:" -#: ../Doc/library/collections.rst:1348 +#: ../Doc/library/collections.rst:1351 msgid "" "A real :class:`list` object used to store the contents of the :class:" "`UserList` class." @@ -1748,7 +1749,7 @@ msgstr "" "Un objeto real :class:`list` usado para almacenar el contenido de la clase :" "class:`UserList` ." -#: ../Doc/library/collections.rst:1351 +#: ../Doc/library/collections.rst:1354 msgid "" "**Subclassing requirements:** Subclasses of :class:`UserList` are expected " "to offer a constructor which can be called with either no arguments or one " @@ -1764,7 +1765,7 @@ msgstr "" "Para hacerlo, asume que se puede llamar al constructor con un solo " "parámetro, que es un objeto de secuencia utilizado como fuente de datos." -#: ../Doc/library/collections.rst:1358 +#: ../Doc/library/collections.rst:1361 msgid "" "If a derived class does not wish to comply with this requirement, all of the " "special methods supported by this class will need to be overridden; please " @@ -1776,11 +1777,11 @@ msgstr "" "fuentes para obtener información sobre los métodos que deben proporcionarse " "en ese caso." -#: ../Doc/library/collections.rst:1364 +#: ../Doc/library/collections.rst:1367 msgid ":class:`UserString` objects" msgstr "Objetos :class:`UserString`" -#: ../Doc/library/collections.rst:1366 +#: ../Doc/library/collections.rst:1369 msgid "" "The class, :class:`UserString` acts as a wrapper around string objects. The " "need for this class has been partially supplanted by the ability to subclass " @@ -1793,7 +1794,7 @@ msgstr "" "sin embargo, es más fácil trabajar con esta clase porque se puede acceder a " "la cadena subyacente como atributo." -#: ../Doc/library/collections.rst:1374 +#: ../Doc/library/collections.rst:1377 msgid "" "Class that simulates a string object. The instance's content is kept in a " "regular string object, which is accessible via the :attr:`data` attribute " @@ -1808,7 +1809,7 @@ msgstr "" "*seq* puede ser cualquier objeto que se pueda convertir en una cadena usando " "la función incorporada :func:`str`." -#: ../Doc/library/collections.rst:1381 +#: ../Doc/library/collections.rst:1384 msgid "" "In addition to supporting the methods and operations of strings, :class:" "`UserString` instances provide the following attribute:" @@ -1816,7 +1817,7 @@ msgstr "" "Además de admitir los métodos y operaciones de cadenas, las instancias :" "class:`UserString` proporcionan el siguiente atributo:" -#: ../Doc/library/collections.rst:1386 +#: ../Doc/library/collections.rst:1389 msgid "" "A real :class:`str` object used to store the contents of the :class:" "`UserString` class." @@ -1824,7 +1825,7 @@ msgstr "" "Un objeto real :class:`str` usado para almacenar el contenido de la clase :" "class:`UserString`." -#: ../Doc/library/collections.rst:1389 +#: ../Doc/library/collections.rst:1392 msgid "" "New methods ``__getnewargs__``, ``__rmod__``, ``casefold``, ``format_map``, " "``isprintable``, and ``maketrans``." diff --git a/library/compileall.po b/library/compileall.po index 90590420c5..5c25be0e2b 100644 --- a/library/compileall.po +++ b/library/compileall.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-03-13 15:30-0300\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/compileall.rst:2 msgid ":mod:`compileall` --- Byte-compile Python libraries" @@ -46,11 +45,12 @@ msgstr "" "por usuarios que no tienen permiso de escritura en los directorios de la " "biblioteca." +#: ../Doc/includes/wasm-notavail.rst:3 #, fuzzy msgid ":ref:`Availability `: not Emscripten, not WASI." msgstr ":ref:`Disponibilidad `: ni Emscripten, ni WASI." -#: ../Doc/library/cpython/Doc/includes/wasm-notavail.rst:5 +#: ../Doc/includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly platforms " "``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for " @@ -73,10 +73,11 @@ msgstr "" "compileall`) para compilar fuentes de Python." #: ../Doc/library/compileall.rst:30 +#, fuzzy msgid "" "Positional arguments are files to compile or directories that contain source " "files, traversed recursively. If no argument is given, behave as if the " -"command line was ``-l ``." +"command line was :samp:`-l {}`." msgstr "" "Los argumentos posicionales son archivos para compilar o directorios que " "contienen archivos fuente, recorridos recursivamente. Si no se proporciona " @@ -262,10 +263,11 @@ msgstr "" "mismo ya proporciona la opción: :program:`python -O -m compileall`." #: ../Doc/library/compileall.rst:144 +#, fuzzy msgid "" -"Similarly, the :func:`compile` function respects the :attr:`sys." +"Similarly, the :func:`compile` function respects the :data:`sys." "pycache_prefix` setting. The generated bytecode cache will only be useful " -"if :func:`compile` is run with the same :attr:`sys.pycache_prefix` (if any) " +"if :func:`compile` is run with the same :data:`sys.pycache_prefix` (if any) " "that will be used at runtime." msgstr "" "De manera similar, la función :func:`compile` respeta la configuración :attr:" @@ -396,10 +398,11 @@ msgstr "" "generados en el momento de ejecución." #: ../Doc/library/compileall.rst:200 ../Doc/library/compileall.rst:270 +#, fuzzy msgid "" "The *stripdir*, *prependdir* and *limit_sl_dest* arguments correspond to the " "``-s``, ``-p`` and ``-e`` options described above. They may be specified as " -"``str``, ``bytes`` or :py:class:`os.PathLike`." +"``str`` or :py:class:`os.PathLike`." msgstr "" "Los argumentos *stripdir*, *prependdir* y *limit_sl_dest* corresponden a las " "opciones ``-s``, ``-p`` y ``-e`` descritas anteriormente. Pueden " diff --git a/library/concurrent.futures.po b/library/concurrent.futures.po index 8be26de72f..990136fab5 100644 --- a/library/concurrent.futures.po +++ b/library/concurrent.futures.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-05 18:14-0300\n" "Last-Translator: Rodrigo Poblete \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/concurrent.futures.rst:2 msgid ":mod:`concurrent.futures` --- Launching parallel tasks" @@ -54,11 +53,12 @@ msgstr "" "`ProcessPoolExecutor`. Ambos implementan la misma interfaz, que se encuentra " "definida por la clase abstracta :class:`Executor`." +#: ../Doc/includes/wasm-notavail.rst:3 #, fuzzy msgid ":ref:`Availability `: not Emscripten, not WASI." msgstr ":ref:`Disponibilidad `: no Emscripten, no WASI." -#: ../Doc/library/cpython/Doc/includes/wasm-notavail.rst:5 +#: ../Doc/includes/wasm-notavail.rst:5 #, fuzzy msgid "" "This module does not work or is not available on WebAssembly platforms " @@ -309,7 +309,7 @@ msgstr "" "el grupo para facilitar la depuración del programa." #: ../Doc/library/concurrent.futures.rst:179 -#: ../Doc/library/concurrent.futures.rst:281 +#: ../Doc/library/concurrent.futures.rst:282 msgid "Added the *initializer* and *initargs* arguments." msgstr "Se agregaron los argumentos *initializer* y *initargs*." @@ -377,6 +377,7 @@ msgstr "" "enviado a :class:`ProcessPoolExecutor` resultará en bloqueos mutuos." #: ../Doc/library/concurrent.futures.rst:244 +#, fuzzy msgid "" "An :class:`Executor` subclass that executes calls asynchronously using a " "pool of at most *max_workers* processes. If *max_workers* is ``None`` or " @@ -385,9 +386,10 @@ msgid "" "be raised. On Windows, *max_workers* must be less than or equal to ``61``. " "If it is not then :exc:`ValueError` will be raised. If *max_workers* is " "``None``, then the default chosen will be at most ``61``, even if more " -"processors are available. *mp_context* can be a multiprocessing context or " -"None. It will be used to launch the workers. If *mp_context* is ``None`` or " -"not given, the default multiprocessing context is used." +"processors are available. *mp_context* can be a :mod:`multiprocessing` " +"context or ``None``. It will be used to launch the workers. If *mp_context* " +"is ``None`` or not given, the default :mod:`multiprocessing` context is " +"used. See :ref:`multiprocessing-start-methods`." msgstr "" "Subclase de :class:`Executor` que ejecuta llamadas asincrónicas mediante un " "grupo de, como máximo, *max_workers* procesos. Si *max_workers* es ``None`` " @@ -401,7 +403,7 @@ msgstr "" "iniciar los trabajadores. Si *mp_context* es ``None`` o no es especificado, " "se utilizará el contexto predeterminado de multiprocesamiento." -#: ../Doc/library/concurrent.futures.rst:257 +#: ../Doc/library/concurrent.futures.rst:258 msgid "" "*initializer* is an optional callable that is called at the start of each " "worker process; *initargs* is a tuple of arguments passed to the " @@ -416,7 +418,7 @@ msgstr "" "BrokenProcessPool`, así como cualquier intento de enviar más trabajos al " "grupo." -#: ../Doc/library/concurrent.futures.rst:263 +#: ../Doc/library/concurrent.futures.rst:264 msgid "" "*max_tasks_per_child* is an optional argument that specifies the maximum " "number of tasks a single process can execute before it will exit and be " @@ -435,7 +437,7 @@ msgstr "" "ausencia de un parámetro *mp_context*. Esta característica es incompatible " "con el método de inicio \"fork\"." -#: ../Doc/library/concurrent.futures.rst:271 +#: ../Doc/library/concurrent.futures.rst:272 msgid "" "When one of the worker processes terminates abruptly, a :exc:" "`BrokenProcessPool` error is now raised. Previously, behaviour was " @@ -447,7 +449,7 @@ msgstr "" "pero las operaciones en el ejecutor o sus futuros a menudo se detenían o " "bloqueaban mutuamente." -#: ../Doc/library/concurrent.futures.rst:277 +#: ../Doc/library/concurrent.futures.rst:278 msgid "" "The *mp_context* argument was added to allow users to control the " "start_method for worker processes created by the pool." @@ -455,7 +457,16 @@ msgstr "" "El argumento *mp_context* se agregó para permitir a los usuarios controlar " "el método de iniciación para procesos de trabajo creados en el grupo." -#: ../Doc/library/concurrent.futures.rst:283 +#: ../Doc/library/concurrent.futures.rst:285 +msgid "" +"The default :mod:`multiprocessing` start method (see :ref:`multiprocessing-" +"start-methods`) will change away from *fork* in Python 3.14. Code that " +"requires *fork* be used for their :class:`ProcessPoolExecutor` should " +"explicitly specify that by passing a ``mp_context=multiprocessing." +"get_context(\"fork\")`` parameter." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:292 #, fuzzy msgid "" "The *max_tasks_per_child* argument was added to allow users to control the " @@ -464,15 +475,24 @@ msgstr "" "El argumento *mp_context* se agregó para permitir a los usuarios controlar " "el método de iniciación para procesos de trabajo creados en el grupo." -#: ../Doc/library/concurrent.futures.rst:291 +#: ../Doc/library/concurrent.futures.rst:296 +msgid "" +"On POSIX systems, if your application has multiple threads and the :mod:" +"`multiprocessing` context uses the ``\"fork\"`` start method: The :func:`os." +"fork` function called internally to spawn workers may raise a :exc:" +"`DeprecationWarning`. Pass a *mp_context* configured to use a different " +"start method. See the :func:`os.fork` documentation for further explanation." +msgstr "" + +#: ../Doc/library/concurrent.futures.rst:307 msgid "ProcessPoolExecutor Example" msgstr "Ejemplo de *ProcessPoolExecutor*" -#: ../Doc/library/concurrent.futures.rst:329 +#: ../Doc/library/concurrent.futures.rst:345 msgid "Future Objects" msgstr "Objetos futuro" -#: ../Doc/library/concurrent.futures.rst:331 +#: ../Doc/library/concurrent.futures.rst:347 msgid "" "The :class:`Future` class encapsulates the asynchronous execution of a " "callable. :class:`Future` instances are created by :meth:`Executor.submit`." @@ -480,7 +500,7 @@ msgstr "" "La clase :class:`Future` encapsula la ejecución asincrónica del invocable. " "Las instancias de :class:`Future` son creadas por :meth:`Executor.submit`." -#: ../Doc/library/concurrent.futures.rst:336 +#: ../Doc/library/concurrent.futures.rst:352 msgid "" "Encapsulates the asynchronous execution of a callable. :class:`Future` " "instances are created by :meth:`Executor.submit` and should not be created " @@ -490,7 +510,7 @@ msgstr "" "`Future` son creadas por :meth:`Executor.submit` y no deberían ser creadas " "directamente, excepto para pruebas." -#: ../Doc/library/concurrent.futures.rst:342 +#: ../Doc/library/concurrent.futures.rst:358 msgid "" "Attempt to cancel the call. If the call is currently being executed or " "finished running and cannot be cancelled then the method will return " @@ -502,11 +522,11 @@ msgstr "" "``False``, de lo contrario la llamada será cancelada y el método retornará " "``True``." -#: ../Doc/library/concurrent.futures.rst:349 +#: ../Doc/library/concurrent.futures.rst:365 msgid "Return ``True`` if the call was successfully cancelled." msgstr "Retorna ``True`` si la llamada fue cancelada exitosamente." -#: ../Doc/library/concurrent.futures.rst:353 +#: ../Doc/library/concurrent.futures.rst:369 msgid "" "Return ``True`` if the call is currently being executed and cannot be " "cancelled." @@ -514,14 +534,14 @@ msgstr "" "Retorna ``True`` si la llamada está siendo ejecutada y no puede ser " "cancelada." -#: ../Doc/library/concurrent.futures.rst:358 +#: ../Doc/library/concurrent.futures.rst:374 msgid "" "Return ``True`` if the call was successfully cancelled or finished running." msgstr "" "Retorna ``True`` si la llamada fue cancelada exitosamente o terminó su " "ejecución." -#: ../Doc/library/concurrent.futures.rst:363 +#: ../Doc/library/concurrent.futures.rst:379 #, fuzzy msgid "" "Return the value returned by the call. If the call hasn't yet completed then " @@ -536,8 +556,8 @@ msgstr "" "TimeoutError` será lanzada. *timeout* puede ser un int o un float. Si " "*timeout* es ``None`` o no fue especificado, no hay limite de espera." -#: ../Doc/library/concurrent.futures.rst:370 -#: ../Doc/library/concurrent.futures.rst:384 +#: ../Doc/library/concurrent.futures.rst:386 +#: ../Doc/library/concurrent.futures.rst:400 msgid "" "If the future is cancelled before completing then :exc:`.CancelledError` " "will be raised." @@ -545,13 +565,13 @@ msgstr "" "Si el futuro es cancelado antes de finalizar su ejecución, :exc:`." "CancelledError` será lanzada." -#: ../Doc/library/concurrent.futures.rst:373 +#: ../Doc/library/concurrent.futures.rst:389 msgid "" "If the call raised an exception, this method will raise the same exception." msgstr "" "Si la llamada lanzó una excepción, este método lanzará la misma excepción." -#: ../Doc/library/concurrent.futures.rst:377 +#: ../Doc/library/concurrent.futures.rst:393 #, fuzzy msgid "" "Return the exception raised by the call. If the call hasn't yet completed " @@ -567,11 +587,11 @@ msgstr "" "un float. Si *timeout* es ``None`` o no es especificado, no hay limite en el " "tiempo de espera." -#: ../Doc/library/concurrent.futures.rst:387 +#: ../Doc/library/concurrent.futures.rst:403 msgid "If the call completed without raising, ``None`` is returned." msgstr "Si la llamada es completada sin excepciones, se retornará ```None``." -#: ../Doc/library/concurrent.futures.rst:391 +#: ../Doc/library/concurrent.futures.rst:407 msgid "" "Attaches the callable *fn* to the future. *fn* will be called, with the " "future as its only argument, when the future is cancelled or finishes " @@ -581,7 +601,7 @@ msgstr "" "como su único argumento, cuando el futuro sea cancelado o finalice su " "ejecución." -#: ../Doc/library/concurrent.futures.rst:395 +#: ../Doc/library/concurrent.futures.rst:411 msgid "" "Added callables are called in the order that they were added and are always " "called in a thread belonging to the process that added them. If the " @@ -595,7 +615,7 @@ msgstr "" "Si el invocable genera una subclase :exc:`BaseException`, el comportamiento " "no está definido." -#: ../Doc/library/concurrent.futures.rst:401 +#: ../Doc/library/concurrent.futures.rst:417 msgid "" "If the future has already completed or been cancelled, *fn* will be called " "immediately." @@ -603,7 +623,7 @@ msgstr "" "Si el futuro ya ha finalizado su ejecución o fue cancelado, *fn* retornará " "inmediatamente." -#: ../Doc/library/concurrent.futures.rst:404 +#: ../Doc/library/concurrent.futures.rst:420 msgid "" "The following :class:`Future` methods are meant for use in unit tests and :" "class:`Executor` implementations." @@ -611,7 +631,7 @@ msgstr "" "Los siguientes métodos de :class:`Future` están pensados para ser usados en " "pruebas unitarias e implementaciones de :class:`Executor`." -#: ../Doc/library/concurrent.futures.rst:409 +#: ../Doc/library/concurrent.futures.rst:425 msgid "" "This method should only be called by :class:`Executor` implementations " "before executing the work associated with the :class:`Future` and by unit " @@ -621,7 +641,7 @@ msgstr "" "antes de ejecutar el trabajo asociado al :class:`Future` y por las pruebas " "unitarias." -#: ../Doc/library/concurrent.futures.rst:413 +#: ../Doc/library/concurrent.futures.rst:429 #, fuzzy msgid "" "If the method returns ``False`` then the :class:`Future` was cancelled, i." @@ -634,7 +654,7 @@ msgstr "" "la finalización del :class:`Future` (i.e. a través de :func:`as_completed` " "o :func:`wait`) serán despertados." -#: ../Doc/library/concurrent.futures.rst:418 +#: ../Doc/library/concurrent.futures.rst:434 #, fuzzy msgid "" "If the method returns ``True`` then the :class:`Future` was not cancelled " @@ -645,7 +665,7 @@ msgstr "" "y ha sido colocado en estado de ejecución, i.e. las llamadas a :meth:`Future." "running` retornarán `True`." -#: ../Doc/library/concurrent.futures.rst:422 +#: ../Doc/library/concurrent.futures.rst:438 msgid "" "This method can only be called once and cannot be called after :meth:`Future." "set_result` or :meth:`Future.set_exception` have been called." @@ -654,14 +674,14 @@ msgstr "" "de haber llamado a :meth:`Future.set_result` o a :meth:`Future." "set_exception`." -#: ../Doc/library/concurrent.futures.rst:428 +#: ../Doc/library/concurrent.futures.rst:444 msgid "" "Sets the result of the work associated with the :class:`Future` to *result*." msgstr "" "Establece *result* como el resultado del trabajo asociado al :class:`Future`." -#: ../Doc/library/concurrent.futures.rst:431 -#: ../Doc/library/concurrent.futures.rst:444 +#: ../Doc/library/concurrent.futures.rst:447 +#: ../Doc/library/concurrent.futures.rst:460 msgid "" "This method should only be used by :class:`Executor` implementations and " "unit tests." @@ -669,8 +689,8 @@ msgstr "" "Este método solo debe ser usado por implementaciones de :class:`Executor` y " "pruebas unitarias." -#: ../Doc/library/concurrent.futures.rst:434 -#: ../Doc/library/concurrent.futures.rst:447 +#: ../Doc/library/concurrent.futures.rst:450 +#: ../Doc/library/concurrent.futures.rst:463 msgid "" "This method raises :exc:`concurrent.futures.InvalidStateError` if the :class:" "`Future` is already done." @@ -678,7 +698,7 @@ msgstr "" "Este método lanza :exc:`concurrent.futures.InvalidStateError` si :class:" "`Future` ya ha finalizado su ejecución." -#: ../Doc/library/concurrent.futures.rst:441 +#: ../Doc/library/concurrent.futures.rst:457 msgid "" "Sets the result of the work associated with the :class:`Future` to the :" "class:`Exception` *exception*." @@ -686,11 +706,11 @@ msgstr "" "Establece *exception*, subclase de :class:`Exception`, como el resultado del " "trabajo asociado al :class:`Future`." -#: ../Doc/library/concurrent.futures.rst:453 +#: ../Doc/library/concurrent.futures.rst:469 msgid "Module Functions" msgstr "Funciones del módulo" -#: ../Doc/library/concurrent.futures.rst:457 +#: ../Doc/library/concurrent.futures.rst:473 #, fuzzy msgid "" "Wait for the :class:`Future` instances (possibly created by different :class:" @@ -710,7 +730,7 @@ msgstr "" "futuros que no finalizaron su ejecución (pueden estar pendientes o " "ejecutándose en ese momento)." -#: ../Doc/library/concurrent.futures.rst:465 +#: ../Doc/library/concurrent.futures.rst:481 msgid "" "*timeout* can be used to control the maximum number of seconds to wait " "before returning. *timeout* can be an int or float. If *timeout* is not " @@ -721,7 +741,7 @@ msgstr "" "*timeout* no es especificado o es ``None``, no hay limite en el tiempo de " "espera." -#: ../Doc/library/concurrent.futures.rst:469 +#: ../Doc/library/concurrent.futures.rst:485 msgid "" "*return_when* indicates when this function should return. It must be one of " "the following constants:" @@ -729,27 +749,27 @@ msgstr "" "*return_when* indica cuando debe retornar esta función. Debe ser alguna de " "las siguientes constantes:" -#: ../Doc/library/concurrent.futures.rst:475 +#: ../Doc/library/concurrent.futures.rst:491 msgid "Constant" msgstr "Constante" -#: ../Doc/library/concurrent.futures.rst:475 +#: ../Doc/library/concurrent.futures.rst:491 msgid "Description" msgstr "Descripción" -#: ../Doc/library/concurrent.futures.rst:477 +#: ../Doc/library/concurrent.futures.rst:493 msgid ":const:`FIRST_COMPLETED`" msgstr ":const:`FIRST_COMPLETED`" -#: ../Doc/library/concurrent.futures.rst:477 +#: ../Doc/library/concurrent.futures.rst:493 msgid "The function will return when any future finishes or is cancelled." msgstr "La función retornará cuando cualquier futuro finalice o sea cancelado." -#: ../Doc/library/concurrent.futures.rst:480 +#: ../Doc/library/concurrent.futures.rst:496 msgid ":const:`FIRST_EXCEPTION`" msgstr ":const:`FIRST_EXCEPTION`" -#: ../Doc/library/concurrent.futures.rst:480 +#: ../Doc/library/concurrent.futures.rst:496 msgid "" "The function will return when any future finishes by raising an exception. " "If no future raises an exception then it is equivalent to :const:" @@ -759,16 +779,16 @@ msgstr "" "excepción. Si ningún futuro lanza una excepción, esta opción es equivalente " "a :const:`ALL_COMPLETED`." -#: ../Doc/library/concurrent.futures.rst:486 +#: ../Doc/library/concurrent.futures.rst:502 msgid ":const:`ALL_COMPLETED`" msgstr ":const:`ALL_COMPLETED`" -#: ../Doc/library/concurrent.futures.rst:486 +#: ../Doc/library/concurrent.futures.rst:502 msgid "The function will return when all futures finish or are cancelled." msgstr "" "La función retornará cuando todos los futuros finalicen o sean cancelados." -#: ../Doc/library/concurrent.futures.rst:492 +#: ../Doc/library/concurrent.futures.rst:508 #, fuzzy msgid "" "Returns an iterator over the :class:`Future` instances (possibly created by " @@ -793,11 +813,11 @@ msgstr "" "float. Si *timeout* no es especificado o es ``None``, no hay limite en el " "tiempo de espera." -#: ../Doc/library/concurrent.futures.rst:506 +#: ../Doc/library/concurrent.futures.rst:522 msgid ":pep:`3148` -- futures - execute computations asynchronously" msgstr ":pep:`3148` -- futuros - ejecutar cómputos asincrónicamente" -#: ../Doc/library/concurrent.futures.rst:506 +#: ../Doc/library/concurrent.futures.rst:522 msgid "" "The proposal which described this feature for inclusion in the Python " "standard library." @@ -805,26 +825,26 @@ msgstr "" "La propuesta que describe esta propuesta de inclusión en la biblioteca " "estándar de Python." -#: ../Doc/library/concurrent.futures.rst:511 +#: ../Doc/library/concurrent.futures.rst:527 msgid "Exception classes" msgstr "Clases de Excepciones" -#: ../Doc/library/concurrent.futures.rst:517 +#: ../Doc/library/concurrent.futures.rst:533 msgid "Raised when a future is cancelled." msgstr "Lanzada cuando un futuro es cancelado." -#: ../Doc/library/concurrent.futures.rst:521 +#: ../Doc/library/concurrent.futures.rst:537 #, fuzzy msgid "" "A deprecated alias of :exc:`TimeoutError`, raised when a future operation " "exceeds the given timeout." msgstr "Lanzada cuando un futuro excede el tiempo de espera máximo." -#: ../Doc/library/concurrent.futures.rst:526 +#: ../Doc/library/concurrent.futures.rst:542 msgid "This class was made an alias of :exc:`TimeoutError`." msgstr "Esta clase se convirtió en un alias de :exc:`TimeoutError`." -#: ../Doc/library/concurrent.futures.rst:531 +#: ../Doc/library/concurrent.futures.rst:547 msgid "" "Derived from :exc:`RuntimeError`, this exception class is raised when an " "executor is broken for some reason, and cannot be used to submit or execute " @@ -834,7 +854,7 @@ msgstr "" "ejecutor se encuentra corrupto por algún motivo y no puede ser utilizado " "para enviar o ejecutar nuevas tareas." -#: ../Doc/library/concurrent.futures.rst:539 +#: ../Doc/library/concurrent.futures.rst:555 msgid "" "Raised when an operation is performed on a future that is not allowed in the " "current state." @@ -842,7 +862,7 @@ msgstr "" "Lanzada cuando una operación es realizada sobre un futuro que no permite " "dicha operación en el estado actual." -#: ../Doc/library/concurrent.futures.rst:548 +#: ../Doc/library/concurrent.futures.rst:564 msgid "" "Derived from :exc:`~concurrent.futures.BrokenExecutor`, this exception class " "is raised when one of the workers of a :class:`ThreadPoolExecutor` has " @@ -852,7 +872,7 @@ msgstr "" "lanzada cuando uno de los trabajadores de :class:`ThreadPoolExecutor` ha " "fallado en su inicialización." -#: ../Doc/library/concurrent.futures.rst:558 +#: ../Doc/library/concurrent.futures.rst:574 msgid "" "Derived from :exc:`~concurrent.futures.BrokenExecutor` (formerly :exc:" "`RuntimeError`), this exception class is raised when one of the workers of " diff --git a/library/concurrent.po b/library/concurrent.po index 1da572d404..e7cff2c02a 100644 --- a/library/concurrent.po +++ b/library/concurrent.po @@ -1,26 +1,29 @@ # Copyright (C) 2001-2020, Python Software Foundation # This file is distributed under the same license as the Python package. # Maintained by the python-doc-es workteam. -# docs-es@python.org / https://mail.python.org/mailman3/lists/docs-es.python.org/ -# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get the list of volunteers +# docs-es@python.org / +# https://mail.python.org/mailman3/lists/docs-es.python.org/ +# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get +# the list of volunteers # msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-06 11:59-0400\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-11-30 12:18-0600\n" +"Last-Translator: \n" +"Language: es\n" "Language-Team: python-doc-es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: \n" -"Language: es\n" -"X-Generator: Poedit 2.4.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/concurrent.rst:2 -msgid "The :mod:`concurrent` package" +#, fuzzy +msgid "The :mod:`!concurrent` package" msgstr "El paquete :mod:`concurrent`" #: ../Doc/library/concurrent.rst:4 diff --git a/library/configparser.po b/library/configparser.po index 59c9f1f091..2e2eb1268c 100644 --- a/library/configparser.po +++ b/library/configparser.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-27 10:14+0100\n" "Last-Translator: Claudia Millan \n" -"Language-Team: python-doc-es\n" "Language: es_PE\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/configparser.rst:2 msgid ":mod:`configparser` --- Configuration file parser" @@ -52,39 +51,52 @@ msgstr "" "la versión extendida de la sintaxis INI, utilizada en el registro de Windows." #: ../Doc/library/configparser.rst:38 +#, fuzzy +msgid "Module :mod:`tomllib`" +msgstr "Módulo :mod:`json`" + +#: ../Doc/library/configparser.rst:37 +msgid "" +"TOML is a well-specified format for application configuration files. It is " +"specifically designed to be an improved version of INI." +msgstr "" + +#: ../Doc/library/configparser.rst:42 msgid "Module :mod:`shlex`" msgstr "Módulo :mod:`shlex`" -#: ../Doc/library/configparser.rst:37 +#: ../Doc/library/configparser.rst:41 +#, fuzzy msgid "" -"Support for creating Unix shell-like mini-languages which can be used as an " -"alternate format for application configuration files." +"Support for creating Unix shell-like mini-languages which can also be used " +"for application configuration files." msgstr "" "Soporta la creación de un mini-lenguaje parecido a shell de Unix, que puede " "utilizarse como formato alternativo para archivos de configuración de " "aplicaciones." -#: ../Doc/library/configparser.rst:41 +#: ../Doc/library/configparser.rst:45 msgid "Module :mod:`json`" msgstr "Módulo :mod:`json`" -#: ../Doc/library/configparser.rst:41 +#: ../Doc/library/configparser.rst:45 +#, fuzzy msgid "" -"The json module implements a subset of JavaScript syntax which can also be " -"used for this purpose." +"The ``json`` module implements a subset of JavaScript syntax which is " +"sometimes used for configuration, but does not support comments." msgstr "" "El módulo json implementa un subconjunto de la sintaxis de JavaScript, que " "también puede utilizarse para este propósito." -#: ../Doc/library/configparser.rst:56 +#: ../Doc/library/configparser.rst:60 msgid "Quick Start" msgstr "Inicio Rápido" -#: ../Doc/library/configparser.rst:58 +#: ../Doc/library/configparser.rst:62 msgid "Let's take a very basic configuration file that looks like this:" msgstr "Tomemos un archivo de configuración muy básico, el cual luce así:" -#: ../Doc/library/configparser.rst:75 +#: ../Doc/library/configparser.rst:79 msgid "" "The structure of INI files is described `in the following section " "<#supported-ini-file-structure>`_. Essentially, the file consists of " @@ -98,7 +110,7 @@ msgstr "" "mod:`configparser` pueden leer y escribir dichos archivos. Comencemos " "creando el anterior archivo de configuración de forma programática." -#: ../Doc/library/configparser.rst:99 +#: ../Doc/library/configparser.rst:103 msgid "" "As you can see, we can treat a config parser much like a dictionary. There " "are differences, `outlined later <#mapping-protocol-access>`_, but the " @@ -109,7 +121,7 @@ msgstr "" "access>`_, pero su comportamiento es muy parecido al que esperarías de un " "diccionario." -#: ../Doc/library/configparser.rst:103 +#: ../Doc/library/configparser.rst:107 msgid "" "Now that we have created and saved a configuration file, let's read it back " "and explore the data it holds." @@ -117,7 +129,7 @@ msgstr "" "Ahora que hemos creado y guardado el archivo de configuración, vamos a " "releerlo y analizar los datos que contiene." -#: ../Doc/library/configparser.rst:138 +#: ../Doc/library/configparser.rst:142 msgid "" "As we can see above, the API is pretty straightforward. The only bit of " "magic involves the ``DEFAULT`` section which provides default values for all " @@ -130,7 +142,7 @@ msgstr "" "secciones son insensibles a mayúsculas y minúsculas, pero se almacenan en " "minúscula [1]_." -#: ../Doc/library/configparser.rst:143 +#: ../Doc/library/configparser.rst:147 msgid "" "It is possible to read several configurations into a single :class:" "`ConfigParser`, where the most recently added configuration has the highest " @@ -142,7 +154,7 @@ msgstr "" "más alta. Las claves que entren en conflicto se toman de la configuración " "más reciente mientras que las claves preexistentes se mantienen." -#: ../Doc/library/configparser.rst:164 +#: ../Doc/library/configparser.rst:168 msgid "" "This behaviour is equivalent to a :meth:`ConfigParser.read` call with " "several files passed to the *filenames* parameter." @@ -150,11 +162,11 @@ msgstr "" "Este comportamiento es equivalente a una llamada a :meth:`ConfigParser.read` " "pasando varios ficheros en el parámetro *filenames*." -#: ../Doc/library/configparser.rst:169 +#: ../Doc/library/configparser.rst:173 msgid "Supported Datatypes" msgstr "Tipos de Datos Soportados" -#: ../Doc/library/configparser.rst:171 +#: ../Doc/library/configparser.rst:175 msgid "" "Config parsers do not guess datatypes of values in configuration files, " "always storing them internally as strings. This means that if you need " @@ -165,7 +177,7 @@ msgstr "" "como cadenas de caracteres. Esto significa que si necesitas otros tipos de " "datos, deberás hacer la conversión por ti mismo:" -#: ../Doc/library/configparser.rst:182 +#: ../Doc/library/configparser.rst:186 msgid "" "Since this task is so common, config parsers provide a range of handy getter " "methods to handle integers, floats and booleans. The last one is the most " @@ -185,7 +197,7 @@ msgstr "" "los valores ``'yes'``/``'no'``, ``'on'``/``'off'``, ``'true'``/``'false'`` " "and ``'1'``/``'0'`` [1]_. Por ejemplo:" -#: ../Doc/library/configparser.rst:199 +#: ../Doc/library/configparser.rst:203 msgid "" "Apart from :meth:`~ConfigParser.getboolean`, config parsers also provide " "equivalent :meth:`~ConfigParser.getint` and :meth:`~ConfigParser.getfloat` " @@ -199,11 +211,11 @@ msgstr "" # Posterioremente se utiliza el término "fallback value", y eso, junto al # código ejemplo, aclaran de qué se trata. -#: ../Doc/library/configparser.rst:205 +#: ../Doc/library/configparser.rst:209 msgid "Fallback Values" msgstr "Valores de contingencia" -#: ../Doc/library/configparser.rst:207 +#: ../Doc/library/configparser.rst:211 msgid "" "As with a dictionary, you can use a section's :meth:`get` method to provide " "fallback values:" @@ -216,12 +228,13 @@ msgstr "" # "valor sustitutivo". # No puedo usar "valor por defecto", ya que hay otros valores por defecto (los # que se asignan en la sección DEFAULT). -#: ../Doc/library/configparser.rst:220 +#: ../Doc/library/configparser.rst:224 +#, fuzzy msgid "" "Please note that default values have precedence over fallback values. For " "instance, in our example the ``'CompressionLevel'`` key was specified only " "in the ``'DEFAULT'`` section. If we try to get it from the section " -"``'topsecret.server.com'``, we will always get the default, even if we " +"``'topsecret.server.example'``, we will always get the default, even if we " "specify a fallback:" msgstr "" "Por favor, fíjate que los valores por defecto tienen prioridad sobre los " @@ -231,7 +244,7 @@ msgstr "" "obtendremos siempre el valor por defecto, incluso si especificamos un valor " "de contingencia:" -#: ../Doc/library/configparser.rst:231 +#: ../Doc/library/configparser.rst:235 msgid "" "One more thing to be aware of is that the parser-level :meth:`get` method " "provides a custom, more complex interface, maintained for backwards " @@ -245,7 +258,7 @@ msgstr "" "contingencia mediante el argumento de sólo-palabra clave (*keyword-only*) " "``fallback``:" -#: ../Doc/library/configparser.rst:242 +#: ../Doc/library/configparser.rst:246 msgid "" "The same ``fallback`` argument can be used with the :meth:`~ConfigParser." "getint`, :meth:`~ConfigParser.getfloat` and :meth:`~ConfigParser.getboolean` " @@ -255,11 +268,11 @@ msgstr "" "`~ConfigParser.getint`, :meth:`~ConfigParser.getfloat` y :meth:" "`~ConfigParser.getboolean`, por ejemplo:" -#: ../Doc/library/configparser.rst:258 +#: ../Doc/library/configparser.rst:262 msgid "Supported INI File Structure" msgstr "Estructura soportada para el archivo ini" -#: ../Doc/library/configparser.rst:260 +#: ../Doc/library/configparser.rst:264 msgid "" "A configuration file consists of sections, each led by a ``[section]`` " "header, followed by key/value entries separated by a specific string (``=`` " @@ -283,7 +296,7 @@ msgstr "" "línea del valor. Dependiendo del modo del *parser*, las líneas en blanco " "pueden tratarse como parte de un valor multilínea o ser ignoradas." -#: ../Doc/library/configparser.rst:270 +#: ../Doc/library/configparser.rst:274 msgid "" "By default, a valid section name can be any string that does not contain '\\" "\\n' or ']'. To change this, see :attr:`ConfigParser.SECTCRE`." @@ -292,7 +305,7 @@ msgstr "" "cadena de texto que no contenga '\\\\n' or ']'. Para cambiar esto, consulte :" "attr:`ConfigParser.SECTCRE`." -#: ../Doc/library/configparser.rst:273 +#: ../Doc/library/configparser.rst:277 msgid "" "Configuration files may include comments, prefixed by specific characters " "(``#`` and ``;`` by default [1]_). Comments may appear on their own on an " @@ -302,15 +315,15 @@ msgstr "" "específicos como prefijos (``#`` y ``;`` por defecto [1]_). Los comentarios " "pueden ocupar su propia línea, posiblemente indentada. [1]_" -#: ../Doc/library/configparser.rst:277 ../Doc/library/configparser.rst:340 +#: ../Doc/library/configparser.rst:281 ../Doc/library/configparser.rst:344 msgid "For example:" msgstr "Por ejemplo:" -#: ../Doc/library/configparser.rst:325 +#: ../Doc/library/configparser.rst:329 msgid "Interpolation of values" msgstr "Interpolación de valores" -#: ../Doc/library/configparser.rst:327 +#: ../Doc/library/configparser.rst:331 msgid "" "On top of the core functionality, :class:`ConfigParser` supports " "interpolation. This means values can be preprocessed before returning them " @@ -320,7 +333,7 @@ msgstr "" "soporta la interpolación. Esto significa que los valores pueden ser " "preprocesados, antes de ser retornados por los llamados a ``get()``." -#: ../Doc/library/configparser.rst:335 +#: ../Doc/library/configparser.rst:339 msgid "" "The default implementation used by :class:`ConfigParser`. It enables values " "to contain format strings which refer to other values in the same section, " @@ -333,7 +346,7 @@ msgstr "" "*default* [1]_. Valores por defecto adicionales pueden ser proporcionados en " "la inicialización." -#: ../Doc/library/configparser.rst:353 +#: ../Doc/library/configparser.rst:357 #, python-format msgid "" "In the example above, :class:`ConfigParser` with *interpolation* set to " @@ -350,7 +363,7 @@ msgstr "" "realizadas bajo demanda, de modo que las claves utilizadas en la cadena de " "referencias no requieren un orden específico en el archivo de configuración." -#: ../Doc/library/configparser.rst:360 +#: ../Doc/library/configparser.rst:364 #, python-format msgid "" "With ``interpolation`` set to ``None``, the parser would simply return " @@ -361,7 +374,7 @@ msgstr "" "simplemente ``%(my_dir)s/Pictures`` como el valor de ``my_pictures`` y " "``%(home_dir)s/lumberjack`` como el valor de ``my_dir``." -#: ../Doc/library/configparser.rst:368 +#: ../Doc/library/configparser.rst:372 msgid "" "An alternative handler for interpolation which implements a more advanced " "syntax, used for instance in ``zc.buildout``. Extended interpolation is " @@ -378,7 +391,7 @@ msgstr "" "es omitida, la interpolación utilizará la sección actual (y posiblemente los " "valores por defecto establecidos en la sección especial)." -#: ../Doc/library/configparser.rst:375 +#: ../Doc/library/configparser.rst:379 msgid "" "For example, the configuration specified above with basic interpolation, " "would look like this with extended interpolation:" @@ -386,15 +399,15 @@ msgstr "" "Por ejemplo, la configuración indicada anteriormente, con interpolación " "básica, luciría de la siguiente manera utilizando interpolación extendida:" -#: ../Doc/library/configparser.rst:389 +#: ../Doc/library/configparser.rst:393 msgid "Values from other sections can be fetched as well:" msgstr "También pueden buscarse valores en otras secciones:" -#: ../Doc/library/configparser.rst:411 +#: ../Doc/library/configparser.rst:415 msgid "Mapping Protocol Access" msgstr "Acceso por protocolo de mapeo" -#: ../Doc/library/configparser.rst:415 +#: ../Doc/library/configparser.rst:419 msgid "" "Mapping protocol access is a generic name for functionality that enables " "using custom objects as if they were dictionaries. In case of :mod:" @@ -406,7 +419,7 @@ msgstr "" "diccionarios. En el caso de :mod:`configparser`, la implementación de la " "interfaz de mapeo utiliza la notación ``parser['section']['option']``." -#: ../Doc/library/configparser.rst:420 +#: ../Doc/library/configparser.rst:424 msgid "" "``parser['section']`` in particular returns a proxy for the section's data " "in the parser. This means that the values are not copied but they are taken " @@ -418,7 +431,7 @@ msgstr "" "sección en el *parser*. Esto significa que los valores no son copiados, sino " "que son tomados del *parser* original sobre la marcha." -#: ../Doc/library/configparser.rst:426 +#: ../Doc/library/configparser.rst:430 msgid "" ":mod:`configparser` objects behave as close to actual dictionaries as " "possible. The mapping interface is complete and adheres to the :class:" @@ -430,7 +443,7 @@ msgstr "" "class:`~collections.abc.MutableMapping` ABC. Sin embargo, existen unas " "pequeñas diferencias que deben tomarse en cuenta:" -#: ../Doc/library/configparser.rst:431 +#: ../Doc/library/configparser.rst:435 msgid "" "By default, all keys in sections are accessible in a case-insensitive manner " "[1]_. E.g. ``for option in parser[\"section\"]`` yields only " @@ -445,7 +458,7 @@ msgstr "" "A la vez, para una sección que contiene la clave ``'a'``, ambas expresiones " "retornan ``True``::" -#: ../Doc/library/configparser.rst:439 +#: ../Doc/library/configparser.rst:443 msgid "" "All sections include ``DEFAULTSECT`` values as well which means that ``." "clear()`` on a section may not leave the section visibly empty. This is " @@ -462,23 +475,23 @@ msgstr "" "sean visibles de nuevo. Cualquier intento de borrar un valor por defecto " "ocasiona una excepción :exc:`KeyError`." -#: ../Doc/library/configparser.rst:446 +#: ../Doc/library/configparser.rst:450 msgid "``DEFAULTSECT`` cannot be removed from the parser:" msgstr "``DEFAULTSECT`` no puede ser eliminado del *parser*:" -#: ../Doc/library/configparser.rst:448 +#: ../Doc/library/configparser.rst:452 msgid "trying to delete it raises :exc:`ValueError`," msgstr "el intento de borrarlo lanza una excepción :exc:`ValueError`," -#: ../Doc/library/configparser.rst:450 +#: ../Doc/library/configparser.rst:454 msgid "``parser.clear()`` leaves it intact," msgstr "``parser.clear()`` lo deja intacto," -#: ../Doc/library/configparser.rst:452 +#: ../Doc/library/configparser.rst:456 msgid "``parser.popitem()`` never returns it." msgstr "``parser.popitem()`` nunca lo retorna." -#: ../Doc/library/configparser.rst:454 +#: ../Doc/library/configparser.rst:458 msgid "" "``parser.get(section, option, **kwargs)`` - the second argument is **not** a " "fallback value. Note however that the section-level ``get()`` methods are " @@ -489,7 +502,7 @@ msgstr "" "nivel de sección son compatibles tanto con el protocolo de mapeo como con la " "API clásica de *configparser*." -#: ../Doc/library/configparser.rst:458 +#: ../Doc/library/configparser.rst:462 msgid "" "``parser.items()`` is compatible with the mapping protocol (returns a list " "of *section_name*, *section_proxy* pairs including the DEFAULTSECT). " @@ -506,7 +519,7 @@ msgstr "" "específica, con todas las interpolaciones expandidas (a menos que se " "especifique ``raw=True``)." -#: ../Doc/library/configparser.rst:465 +#: ../Doc/library/configparser.rst:469 msgid "" "The mapping protocol is implemented on top of the existing legacy API so " "that subclasses overriding the original interface still should have mappings " @@ -516,11 +529,11 @@ msgstr "" "heredada, de modo que esas subclases que sobre-escriben la interfaz original " "aún deberían hacer funcionar el mapeo como se esperaría." -#: ../Doc/library/configparser.rst:471 +#: ../Doc/library/configparser.rst:475 msgid "Customizing Parser Behaviour" msgstr "Personalizando el comportamiento del parser" -#: ../Doc/library/configparser.rst:473 +#: ../Doc/library/configparser.rst:477 msgid "" "There are nearly as many INI format variants as there are applications using " "it. :mod:`configparser` goes a long way to provide support for the largest " @@ -534,7 +547,7 @@ msgstr "" "predeterminada es impuesta principalmente por antecedentes históricos y es " "muy probable que quieras personalizar algunas de las funcionalidades." -#: ../Doc/library/configparser.rst:479 +#: ../Doc/library/configparser.rst:483 msgid "" "The most common way to change the way a specific config parser works is to " "use the :meth:`__init__` options:" @@ -542,11 +555,11 @@ msgstr "" "La forma más común para modificar cómo funciona un *config parser* " "específico consiste en el uso de las opciones de :meth:`__init__`:" -#: ../Doc/library/configparser.rst:482 +#: ../Doc/library/configparser.rst:486 msgid "*defaults*, default value: ``None``" msgstr "*defaults*, valor por defecto: ``None``" -#: ../Doc/library/configparser.rst:484 +#: ../Doc/library/configparser.rst:488 msgid "" "This option accepts a dictionary of key-value pairs which will be initially " "put in the ``DEFAULT`` section. This makes for an elegant way to support " @@ -558,7 +571,7 @@ msgstr "" "manera elegante de apoyar los archivos de configuración concisos, que no " "especifican valores que sean los mismos documentados por defecto." -#: ../Doc/library/configparser.rst:489 +#: ../Doc/library/configparser.rst:493 msgid "" "Hint: if you want to specify default values for a specific section, use :" "meth:`read_dict` before you read the actual file." @@ -566,11 +579,11 @@ msgstr "" "Consejo: si quieres especificar valores por defecto para una sección " "específica, usa :meth:`read_dict` antes de leer el archivo real." -#: ../Doc/library/configparser.rst:492 +#: ../Doc/library/configparser.rst:496 msgid "*dict_type*, default value: :class:`dict`" msgstr "*dict_type*, valor por defecto: :class:`dict`" -#: ../Doc/library/configparser.rst:494 +#: ../Doc/library/configparser.rst:498 msgid "" "This option has a major impact on how the mapping protocol will behave and " "how the written configuration files look. With the standard dictionary, " @@ -582,7 +595,7 @@ msgstr "" "estándar, cada sección se almacena en el orden en que se añadieron al " "*parser*. Lo mismo ocurre con las opciones dentro de las secciones." -#: ../Doc/library/configparser.rst:499 +#: ../Doc/library/configparser.rst:503 msgid "" "An alternative dictionary type can be used for example to sort sections and " "options on write-back." @@ -590,7 +603,7 @@ msgstr "" "Un tipo alternativo de diccionario puede ser utilizado, por ejemplo, para " "ordenar las secciones y opciones en un modo a posteriori (*write-back*)." -#: ../Doc/library/configparser.rst:502 +#: ../Doc/library/configparser.rst:506 msgid "" "Please note: there are ways to add a set of key-value pairs in a single " "operation. When you use a regular dictionary in those operations, the order " @@ -601,11 +614,11 @@ msgstr "" "operaciones, el orden de las claves será el empleado en la creación. Por " "ejemplo:" -#: ../Doc/library/configparser.rst:524 +#: ../Doc/library/configparser.rst:528 msgid "*allow_no_value*, default value: ``False``" msgstr "*allow_no_value*, valor por defecto: ``False``" -#: ../Doc/library/configparser.rst:526 +#: ../Doc/library/configparser.rst:530 msgid "" "Some configuration files are known to include settings without values, but " "which otherwise conform to the syntax supported by :mod:`configparser`. The " @@ -617,11 +630,11 @@ msgstr "" "en todo lo demás. El parámetro *allow_no_value* le indica al constructor que " "tales valores deben ser aceptados:" -#: ../Doc/library/configparser.rst:561 +#: ../Doc/library/configparser.rst:565 msgid "*delimiters*, default value: ``('=', ':')``" msgstr "*delimiters*, valor por defecto: ``('=', ':')``" -#: ../Doc/library/configparser.rst:563 +#: ../Doc/library/configparser.rst:567 msgid "" "Delimiters are substrings that delimit keys from values within a section. " "The first occurrence of a delimiting substring on a line is considered a " @@ -632,7 +645,7 @@ msgstr "" "separación en una línea se considera como un separador. Esto significa que " "los valores pueden contener separadores, no así las claves." -#: ../Doc/library/configparser.rst:567 +#: ../Doc/library/configparser.rst:571 msgid "" "See also the *space_around_delimiters* argument to :meth:`ConfigParser." "write`." @@ -640,15 +653,15 @@ msgstr "" "Vea también el argumento *space_around_delimiters* de :meth:`ConfigParser." "write`." -#: ../Doc/library/configparser.rst:570 +#: ../Doc/library/configparser.rst:574 msgid "*comment_prefixes*, default value: ``('#', ';')``" msgstr "*comment_prefixes*, valor por defecto: ``('#', ';')``" -#: ../Doc/library/configparser.rst:572 +#: ../Doc/library/configparser.rst:576 msgid "*inline_comment_prefixes*, default value: ``None``" msgstr "*inline_comment_prefixes*, valor por defecto: ``None``" -#: ../Doc/library/configparser.rst:574 +#: ../Doc/library/configparser.rst:578 msgid "" "Comment prefixes are strings that indicate the start of a valid comment " "within a config file. *comment_prefixes* are used only on otherwise empty " @@ -666,7 +679,7 @@ msgstr "" "comentarios en la misma línea están deshabilitados, y tanto ``'#'`` como " "``';'`` se utilizan como prefijos para comentarios que ocupan toda la línea." -#: ../Doc/library/configparser.rst:581 +#: ../Doc/library/configparser.rst:585 msgid "" "In previous versions of :mod:`configparser` behaviour matched " "``comment_prefixes=('#',';')`` and ``inline_comment_prefixes=(';',)``." @@ -674,7 +687,7 @@ msgstr "" "En versiones previas de :mod:`configparser` el comportamiento correspondía a " "``comment_prefixes=('#',';')`` e ``inline_comment_prefixes=(';',)``." -#: ../Doc/library/configparser.rst:585 +#: ../Doc/library/configparser.rst:589 msgid "" "Please note that config parsers don't support escaping of comment prefixes " "so using *inline_comment_prefixes* may prevent users from specifying option " @@ -692,11 +705,11 @@ msgstr "" "de comentario al inicio de una línea, en valores multilínea, es mediante la " "interpolación del prefijo, por ejemplo::" -#: ../Doc/library/configparser.rst:631 +#: ../Doc/library/configparser.rst:635 msgid "*strict*, default value: ``True``" msgstr "*strict*, valor por defecto: ``True``" -#: ../Doc/library/configparser.rst:633 +#: ../Doc/library/configparser.rst:637 msgid "" "When set to ``True``, the parser will not allow for any section or option " "duplicates while reading from a single source (using :meth:`read_file`, :" @@ -708,7 +721,7 @@ msgstr "" "(utilizando :meth:`read_file`, :meth:`read_string` ó :meth:`read_dict`). Se " "recomienda el uso de *strict parsers* en las aplicaciones nuevas." -#: ../Doc/library/configparser.rst:638 +#: ../Doc/library/configparser.rst:642 msgid "" "In previous versions of :mod:`configparser` behaviour matched " "``strict=False``." @@ -716,11 +729,11 @@ msgstr "" "En versiones previas de :mod:`configparser` el comportamiento correspondía a " "``strict=False``." -#: ../Doc/library/configparser.rst:642 +#: ../Doc/library/configparser.rst:646 msgid "*empty_lines_in_values*, default value: ``True``" msgstr "*empty_lines_in_values*, valor por defecto: ``True``" -#: ../Doc/library/configparser.rst:644 +#: ../Doc/library/configparser.rst:648 msgid "" "In config parsers, values can span multiple lines as long as they are " "indented more than the key that holds them. By default parsers also let " @@ -738,7 +751,7 @@ msgstr "" "es fácil para el usuario el perder la pista de la estructura del archivo. " "Tomemos como ejemplo:" -#: ../Doc/library/configparser.rst:659 +#: ../Doc/library/configparser.rst:663 msgid "" "This can be especially problematic for the user to see if she's using a " "proportional font to edit the file. That is why when your application does " @@ -753,7 +766,7 @@ msgstr "" "líneas en blanco sirvan para dividir a las claves, siempre. En el ejemplo " "anterior, produciría dos claves: ``key`` y ``this``." -#: ../Doc/library/configparser.rst:665 +#: ../Doc/library/configparser.rst:669 msgid "" "*default_section*, default value: ``configparser.DEFAULTSECT`` (that is: " "``\"DEFAULT\"``)" @@ -761,7 +774,7 @@ msgstr "" "*default_section*, valor por defecto: ``configparser.DEFAULTSECT`` (es " "decir: ``\"DEFAULT\"``)" -#: ../Doc/library/configparser.rst:668 +#: ../Doc/library/configparser.rst:672 msgid "" "The convention of allowing a special section of default values for other " "sections or interpolation purposes is a powerful concept of this library, " @@ -787,12 +800,12 @@ msgstr "" "ser modificado en tiempo de ejecución (es decir, para convertir archivos de " "un formato a otro)." -#: ../Doc/library/configparser.rst:679 +#: ../Doc/library/configparser.rst:683 msgid "*interpolation*, default value: ``configparser.BasicInterpolation``" msgstr "" "*interpolation*, valor por defecto: ``configparser.BasicInterpolation``" -#: ../Doc/library/configparser.rst:681 +#: ../Doc/library/configparser.rst:685 msgid "" "Interpolation behaviour may be customized by providing a custom handler " "through the *interpolation* argument. ``None`` can be used to turn off " @@ -809,11 +822,11 @@ msgstr "" "`sección dedicada de la documentación <#interpolation-of-values>`_. El :" "class:`RawConfigParser` tiene un valor por defecto de ``None``." -#: ../Doc/library/configparser.rst:688 +#: ../Doc/library/configparser.rst:692 msgid "*converters*, default value: not set" msgstr "*converters*, valor por defecto: no definido" -#: ../Doc/library/configparser.rst:690 +#: ../Doc/library/configparser.rst:694 msgid "" "Config parsers provide option value getters that perform type conversion. " "By default :meth:`~ConfigParser.getint`, :meth:`~ConfigParser.getfloat`, " @@ -839,7 +852,7 @@ msgstr "" "posible escribir tanto ``parser_instance.getdecimal('section', 'key', " "fallback=0)`` como ``parser_instance['section'].getdecimal('key', 0)``." -#: ../Doc/library/configparser.rst:701 +#: ../Doc/library/configparser.rst:705 msgid "" "If the converter needs to access the state of the parser, it can be " "implemented as a method on a config parser subclass. If the name of this " @@ -852,7 +865,7 @@ msgstr "" "secciones proxy, en su forma compatible con diccionarios (vea el ejemplo " "anterior de ``getdecimal()``)." -#: ../Doc/library/configparser.rst:706 +#: ../Doc/library/configparser.rst:710 msgid "" "More advanced customization may be achieved by overriding default values of " "these parser attributes. The defaults are defined on the classes, so they " @@ -863,7 +876,7 @@ msgstr "" "definidos en las clases, de modo que pueden ser sustituidos por las " "subclases o mediante la asignación de atributos." -#: ../Doc/library/configparser.rst:712 +#: ../Doc/library/configparser.rst:716 msgid "" "By default when using :meth:`~ConfigParser.getboolean`, config parsers " "consider the following values ``True``: ``'1'``, ``'yes'``, ``'true'``, " @@ -878,7 +891,7 @@ msgstr "" "proporcionando un diccionario personalizado de cadenas de caracteres, con " "sus correspondientes valores booleanos. Por ejemplo:" -#: ../Doc/library/configparser.rst:730 +#: ../Doc/library/configparser.rst:734 msgid "" "Other typical Boolean pairs include ``accept``/``reject`` or ``enabled``/" "``disabled``." @@ -886,7 +899,7 @@ msgstr "" "Otros pares booleanos comunes incluyen ``accept``/``reject`` ó ``enabled``/" "``disabled``." -#: ../Doc/library/configparser.rst:736 +#: ../Doc/library/configparser.rst:740 msgid "" "This method transforms option names on every read, get, or set operation. " "The default converts the name to lowercase. This also means that when a " @@ -899,7 +912,7 @@ msgstr "" "es escrito, todas las claves son convertidas a minúsculas. Sobre-escribe " "este método si tal comportamiento no es adecuado. Por ejemplo:" -#: ../Doc/library/configparser.rst:766 +#: ../Doc/library/configparser.rst:770 msgid "" "The optionxform function transforms option names to a canonical form. This " "should be an idempotent function: if the name is already in canonical form, " @@ -909,7 +922,7 @@ msgstr "" "canónica. Esta debería ser una función idempotente: si el nombre ya está en " "su forma canónica, debería retornarse sin cambios." -#: ../Doc/library/configparser.rst:773 +#: ../Doc/library/configparser.rst:777 msgid "" "A compiled regular expression used to parse section headers. The default " "matches ``[section]`` to the name ``\"section\"``. Whitespace is considered " @@ -924,7 +937,7 @@ msgstr "" "``\" larch \"``. Sobre-escribe este atributo si tal comportamiento no es " "adecuado. Por ejemplo:" -#: ../Doc/library/configparser.rst:801 +#: ../Doc/library/configparser.rst:805 msgid "" "While ConfigParser objects also use an ``OPTCRE`` attribute for recognizing " "option lines, it's not recommended to override it because that would " @@ -935,11 +948,11 @@ msgstr "" "escritura porque puede interferir con las opciones *allow_no_value* y " "*delimiters* del constructor." -#: ../Doc/library/configparser.rst:807 +#: ../Doc/library/configparser.rst:811 msgid "Legacy API Examples" msgstr "Ejemplos de la API heredada" -#: ../Doc/library/configparser.rst:809 +#: ../Doc/library/configparser.rst:813 msgid "" "Mainly because of backwards compatibility concerns, :mod:`configparser` " "provides also a legacy API with explicit ``get``/``set`` methods. While " @@ -954,19 +967,19 @@ msgstr "" "mapeo para los proyectos nuevos. La API heredada es al mismo tiempo más " "avanzada, de bajo nivel y sumamente contradictoria." -#: ../Doc/library/configparser.rst:815 +#: ../Doc/library/configparser.rst:819 msgid "An example of writing to a configuration file::" msgstr "Un ejemplo de escritura a un archivo de configuración::" -#: ../Doc/library/configparser.rst:838 +#: ../Doc/library/configparser.rst:842 msgid "An example of reading the configuration file again::" msgstr "Un ejemplo de lectura de un archivo de configuración, nuevamente::" -#: ../Doc/library/configparser.rst:856 +#: ../Doc/library/configparser.rst:860 msgid "To get interpolation, use :class:`ConfigParser`::" msgstr "Para obtener la interpolación, utilice :class:`ConfigParser`::" -#: ../Doc/library/configparser.rst:889 +#: ../Doc/library/configparser.rst:893 msgid "" "Default values are available in both types of ConfigParsers. They are used " "in interpolation if an option used is not defined elsewhere. ::" @@ -975,11 +988,11 @@ msgstr "" "Ellos son utilizados en la interpolación cuando una opción utilizada no está " "definida en otro lugar. ::" -#: ../Doc/library/configparser.rst:907 +#: ../Doc/library/configparser.rst:911 msgid "ConfigParser Objects" msgstr "Objetos ConfigParser" -#: ../Doc/library/configparser.rst:911 +#: ../Doc/library/configparser.rst:915 msgid "" "The main configuration parser. When *defaults* is given, it is initialized " "into the dictionary of intrinsic defaults. When *dict_type* is given, it " @@ -992,7 +1005,7 @@ msgstr "" "para la lista de secciones, las opciones dentro de una sección, y los " "valores por defecto." -#: ../Doc/library/configparser.rst:916 +#: ../Doc/library/configparser.rst:920 msgid "" "When *delimiters* is given, it is used as the set of substrings that divide " "keys from values. When *comment_prefixes* is given, it will be used as the " @@ -1008,7 +1021,7 @@ msgstr "" "*inline_comment_prefixes*, se utiliza como un conjunto de cadenas de " "caracteres que preceden a los comentarios en líneas que no están vacías." -#: ../Doc/library/configparser.rst:922 +#: ../Doc/library/configparser.rst:926 msgid "" "When *strict* is ``True`` (the default), the parser won't allow for any " "section or option duplicates while reading from a single source (file, " @@ -1031,12 +1044,15 @@ msgstr "" "aceptan opciones sin valores; el valor que toman esas opciones es ``None`` y " "serán serializadas sin el delimitador final." -#: ../Doc/library/configparser.rst:932 +#: ../Doc/library/configparser.rst:936 +#, fuzzy msgid "" "When *default_section* is given, it specifies the name for the special " "section holding default values for other sections and interpolation purposes " "(normally named ``\"DEFAULT\"``). This value can be retrieved and changed " -"on runtime using the ``default_section`` instance attribute." +"at runtime using the ``default_section`` instance attribute. This won't re-" +"evaluate an already parsed config file, but will be used when writing parsed " +"settings to a new config file." msgstr "" "Cuando se proporciona *default_section*, se define el nombre de la sección " "especial que contiene valores por defecto para otras secciones y con " @@ -1044,7 +1060,7 @@ msgstr "" "valor puede obtenerse y modificarse en tiempo de ejecución utilizando el " "atributo de instancia ``default_section``." -#: ../Doc/library/configparser.rst:937 +#: ../Doc/library/configparser.rst:943 msgid "" "Interpolation behaviour may be customized by providing a custom handler " "through the *interpolation* argument. ``None`` can be used to turn off " @@ -1059,7 +1075,7 @@ msgstr "" "``zc.buildout``. Más al respecto puede encontrarse en la `correspondiente " "sección de la documentación <#interpolation-of-values>`_." -#: ../Doc/library/configparser.rst:943 +#: ../Doc/library/configparser.rst:949 #, python-format msgid "" "All option names used in interpolation will be passed through the :meth:" @@ -1074,7 +1090,7 @@ msgstr "" "de :meth:`optionxform` (la cual convierte los nombres de opción a " "minúsculas), los valores ``foo %(bar)s`` y ``foo %(BAR)s`` son equivalentes." -#: ../Doc/library/configparser.rst:949 +#: ../Doc/library/configparser.rst:955 msgid "" "When *converters* is given, it should be a dictionary where each key " "represents the name of a type converter and each value is a callable " @@ -1088,12 +1104,12 @@ msgstr "" "deseado. Cada conversor recibe su método :meth:`get*()` correspondiente en " "el objeto *parser* y los proxies de sección." -#: ../Doc/library/configparser.rst:955 +#: ../Doc/library/configparser.rst:961 msgid "The default *dict_type* is :class:`collections.OrderedDict`." msgstr "" "El valor por defecto de *dict_type* es :class:`collections.OrderedDict`." -#: ../Doc/library/configparser.rst:958 +#: ../Doc/library/configparser.rst:964 msgid "" "*allow_no_value*, *delimiters*, *comment_prefixes*, *strict*, " "*empty_lines_in_values*, *default_section* and *interpolation* were added." @@ -1102,11 +1118,11 @@ msgstr "" "*comment_prefixes*, *strict*, *empty_lines_in_values*, *default_section* y " "*interpolation*." -#: ../Doc/library/configparser.rst:963 +#: ../Doc/library/configparser.rst:969 msgid "The *converters* argument was added." msgstr "Se agregó el argumento *converters*." -#: ../Doc/library/configparser.rst:966 +#: ../Doc/library/configparser.rst:972 msgid "" "The *defaults* argument is read with :meth:`read_dict()`, providing " "consistent behavior across the parser: non-string keys and values are " @@ -1116,7 +1132,7 @@ msgstr "" "comportamiento consistente en el *parser*: las claves y valores que no sean " "cadenas de caracteres son convertidas a tales." -#: ../Doc/library/configparser.rst:971 ../Doc/library/configparser.rst:1256 +#: ../Doc/library/configparser.rst:977 ../Doc/library/configparser.rst:1240 msgid "" "The default *dict_type* is :class:`dict`, since it now preserves insertion " "order." @@ -1124,13 +1140,13 @@ msgstr "" "El valor por defecto para *dict_type* es :class:`dict`, dado que este ahora " "preserva el orden de inserción." -#: ../Doc/library/configparser.rst:977 +#: ../Doc/library/configparser.rst:983 msgid "Return a dictionary containing the instance-wide defaults." msgstr "" "Retorna un diccionario que contiene los valores por defecto para toda la " "instancia." -#: ../Doc/library/configparser.rst:982 +#: ../Doc/library/configparser.rst:988 msgid "" "Return a list of the sections available; the *default section* is not " "included in the list." @@ -1138,7 +1154,7 @@ msgstr "" "Retorna una lista de las secciones disponibles; *default section* no se " "incluye en la lista." -#: ../Doc/library/configparser.rst:988 +#: ../Doc/library/configparser.rst:994 msgid "" "Add a section named *section* to the instance. If a section by the given " "name already exists, :exc:`DuplicateSectionError` is raised. If the " @@ -1152,13 +1168,13 @@ msgstr "" "cadena de caracteres, de lo contrario, se genera la excepción :exc:" "`TypeError`." -#: ../Doc/library/configparser.rst:993 +#: ../Doc/library/configparser.rst:999 msgid "Non-string section names raise :exc:`TypeError`." msgstr "" "Nombres de sección que no sean del tipo cadena de caracteres generan la " "excepción :exc:`TypeError`." -#: ../Doc/library/configparser.rst:999 +#: ../Doc/library/configparser.rst:1005 msgid "" "Indicates whether the named *section* is present in the configuration. The " "*default section* is not acknowledged." @@ -1166,11 +1182,11 @@ msgstr "" "Indica si la sección de nombre *section* existe en la configuración. No se " "permite *default section*." -#: ../Doc/library/configparser.rst:1005 +#: ../Doc/library/configparser.rst:1011 msgid "Return a list of options available in the specified *section*." msgstr "Retorna una lista de opciones disponibles en la sección especificada." -#: ../Doc/library/configparser.rst:1010 +#: ../Doc/library/configparser.rst:1016 msgid "" "If the given *section* exists, and contains the given *option*, return :" "const:`True`; otherwise return :const:`False`. If the specified *section* " @@ -1181,7 +1197,7 @@ msgstr "" "sección especificada es :const:`None` o una cadena de caracteres vacía, se " "asume DEFAULT." -#: ../Doc/library/configparser.rst:1017 +#: ../Doc/library/configparser.rst:1023 msgid "" "Attempt to read and parse an iterable of filenames, returning a list of " "filenames which were successfully parsed." @@ -1190,7 +1206,7 @@ msgstr "" "archivos, retornando una lista de nombres de archivos que han sido " "analizados (*parsed*) con éxito." -#: ../Doc/library/configparser.rst:1020 +#: ../Doc/library/configparser.rst:1026 msgid "" "If *filenames* is a string, a :class:`bytes` object or a :term:`path-like " "object`, it is treated as a single filename. If a file named in *filenames* " @@ -1208,7 +1224,7 @@ msgstr "" "actual, el directorio *home* del usuario, o algún directorio del sistema), y " "todos los archivos de configuración existentes serán leídos." -#: ../Doc/library/configparser.rst:1029 +#: ../Doc/library/configparser.rst:1035 msgid "" "If none of the named files exist, the :class:`ConfigParser` instance will " "contain an empty dataset. An application which requires initial values to " @@ -1221,7 +1237,7 @@ msgstr "" "cargar el(los) archivo(s) requerido(s) utilizando :meth:`read_file` antes de " "llamar a :meth:`read` para cualquier otro archivo opcional::" -#: ../Doc/library/configparser.rst:1042 +#: ../Doc/library/configparser.rst:1048 msgid "" "The *encoding* parameter. Previously, all files were read using the default " "encoding for :func:`open`." @@ -1229,15 +1245,15 @@ msgstr "" "El parámetro *encoding*. Anteriormente, todos los archivos eran leídos " "utilizando la codificación por defecto de la la función :func:`open`." -#: ../Doc/library/configparser.rst:1046 +#: ../Doc/library/configparser.rst:1052 msgid "The *filenames* parameter accepts a :term:`path-like object`." msgstr "El parámetro *filenames* acepta un :term:`path-like object`." -#: ../Doc/library/configparser.rst:1049 +#: ../Doc/library/configparser.rst:1055 msgid "The *filenames* parameter accepts a :class:`bytes` object." msgstr "El parámetro *filenames* acepta un objeto :class:`bytes`." -#: ../Doc/library/configparser.rst:1055 +#: ../Doc/library/configparser.rst:1061 msgid "" "Read and parse configuration data from *f* which must be an iterable " "yielding Unicode strings (for example files opened in text mode)." @@ -1246,7 +1262,7 @@ msgstr "" "ser un iterable que retorne cadenas de caracteres Unicode (por ejemplo, " "archivos abiertos en modo texto)." -#: ../Doc/library/configparser.rst:1058 +#: ../Doc/library/configparser.rst:1064 msgid "" "Optional argument *source* specifies the name of the file being read. If " "not given and *f* has a :attr:`name` attribute, that is used for *source*; " @@ -1256,16 +1272,16 @@ msgstr "" "leyendo. Si no se proporciona y *f* tiene un atributo :attr:`name`, este es " "utilizado como *source*; el valor por defecto es ``''``." -#: ../Doc/library/configparser.rst:1062 +#: ../Doc/library/configparser.rst:1068 msgid "Replaces :meth:`readfp`." msgstr "Reemplaza a :meth:`readfp`." -#: ../Doc/library/configparser.rst:1067 +#: ../Doc/library/configparser.rst:1073 msgid "Parse configuration data from a string." msgstr "" "Analiza (*parse*) los datos de configuración desde una cadena de caracteres." -#: ../Doc/library/configparser.rst:1069 +#: ../Doc/library/configparser.rst:1075 msgid "" "Optional argument *source* specifies a context-specific name of the string " "passed. If not given, ``''`` is used. This should commonly be a " @@ -1276,7 +1292,7 @@ msgstr "" "utiliza ``''``. Esto, por lo general, debería ser una ruta de " "archivo o una URL." -#: ../Doc/library/configparser.rst:1078 +#: ../Doc/library/configparser.rst:1084 msgid "" "Load configuration from any object that provides a dict-like ``items()`` " "method. Keys are section names, values are dictionaries with keys and " @@ -1291,7 +1307,7 @@ msgstr "" "orden, las secciones y sus claves serán agregados en orden. Los valores son " "convertidos a cadenas de caracteres de forma automática." -#: ../Doc/library/configparser.rst:1084 +#: ../Doc/library/configparser.rst:1090 msgid "" "Optional argument *source* specifies a context-specific name of the " "dictionary passed. If not given, ```` is used." @@ -1300,11 +1316,11 @@ msgstr "" "proporcionado, relativo al contexto. Si no se proporciona, se utiliza " "````." -#: ../Doc/library/configparser.rst:1087 +#: ../Doc/library/configparser.rst:1093 msgid "This method can be used to copy state between parsers." msgstr "Este método puede utilizarse para copiar el estado entre *parsers*." -#: ../Doc/library/configparser.rst:1094 +#: ../Doc/library/configparser.rst:1100 msgid "" "Get an *option* value for the named *section*. If *vars* is provided, it " "must be a dictionary. The *option* is looked up in *vars* (if provided), " @@ -1319,7 +1335,7 @@ msgstr "" "utilizado como un valor de contingencia. Se puede utilizar ``None`` como " "valor de contingencia (*fallback*)." -#: ../Doc/library/configparser.rst:1100 +#: ../Doc/library/configparser.rst:1106 msgid "" "All the ``'%'`` interpolations are expanded in the return values, unless the " "*raw* argument is true. Values for interpolation keys are looked up in the " @@ -1329,7 +1345,7 @@ msgstr "" "menos que el argumento *raw* sea *true*. Los valores para la interpolación " "de las claves son buscados de la misma forma que para la opción." -#: ../Doc/library/configparser.rst:1104 +#: ../Doc/library/configparser.rst:1110 msgid "" "Arguments *raw*, *vars* and *fallback* are keyword only to protect users " "from trying to use the third argument as the *fallback* fallback (especially " @@ -1340,7 +1356,7 @@ msgstr "" "tercer argumento como el valor de contingencia de *fallback* (especialmente " "cuando se utiliza el protocolo de mapeo)." -#: ../Doc/library/configparser.rst:1112 +#: ../Doc/library/configparser.rst:1118 msgid "" "A convenience method which coerces the *option* in the specified *section* " "to an integer. See :meth:`get` for explanation of *raw*, *vars* and " @@ -1350,7 +1366,7 @@ msgstr "" "indicada. Revise :meth:`get` para una explicación acerca de *raw*, *vars* y " "*fallback*." -#: ../Doc/library/configparser.rst:1119 +#: ../Doc/library/configparser.rst:1125 msgid "" "A convenience method which coerces the *option* in the specified *section* " "to a floating point number. See :meth:`get` for explanation of *raw*, " @@ -1360,7 +1376,7 @@ msgstr "" "opción de la sección indicada. Revise :meth:`get` para una explicación " "acerca de *raw*, *vars* y *fallback*." -#: ../Doc/library/configparser.rst:1126 +#: ../Doc/library/configparser.rst:1132 msgid "" "A convenience method which coerces the *option* in the specified *section* " "to a Boolean value. Note that the accepted values for the option are " @@ -1380,7 +1396,7 @@ msgstr "" "genere la excepción :exc:`ValueError`. Revise :meth:`get` para una " "explicación acerca de *raw*, *vars* y *fallback*." -#: ../Doc/library/configparser.rst:1139 +#: ../Doc/library/configparser.rst:1145 msgid "" "When *section* is not given, return a list of *section_name*, " "*section_proxy* pairs, including DEFAULTSECT." @@ -1388,7 +1404,7 @@ msgstr "" "Cuando no se proporciona el argumento *section*, retorna una lista de pares " "*section_name*, *section_proxy*, incluyendo DEFAULTSECT." -#: ../Doc/library/configparser.rst:1142 +#: ../Doc/library/configparser.rst:1148 msgid "" "Otherwise, return a list of *name*, *value* pairs for the options in the " "given *section*. Optional arguments have the same meaning as for the :meth:" @@ -1398,7 +1414,7 @@ msgstr "" "opciones de la sección especificada. Los argumentos opcionales tienen el " "mismo significado que en el método :meth:`get`." -#: ../Doc/library/configparser.rst:1146 +#: ../Doc/library/configparser.rst:1152 msgid "" "Items present in *vars* no longer appear in the result. The previous " "behaviour mixed actual parser options with variables provided for " @@ -1408,7 +1424,7 @@ msgstr "" "comportamiento previo mezcla las opciones actuales del *parser* con las " "variables proporcionadas para la interpolación." -#: ../Doc/library/configparser.rst:1154 +#: ../Doc/library/configparser.rst:1160 msgid "" "If the given section exists, set the given option to the specified value; " "otherwise raise :exc:`NoSectionError`. *option* and *value* must be " @@ -1419,7 +1435,7 @@ msgstr "" "*option* y *value* deben ser cadenas de caracteres; de lo contrario, se " "genera la excepción :exc:`TypeError`." -#: ../Doc/library/configparser.rst:1161 +#: ../Doc/library/configparser.rst:1167 msgid "" "Write a representation of the configuration to the specified :term:`file " "object`, which must be opened in text mode (accepting strings). This " @@ -1433,7 +1449,7 @@ msgstr "" "posterior llamada a :meth:`read`. Si *space_around_delimiters* es *true*, " "los delimitadores entre claves y valores son rodeados por espacios." -#: ../Doc/library/configparser.rst:1169 +#: ../Doc/library/configparser.rst:1175 msgid "" "Comments in the original configuration file are not preserved when writing " "the configuration back. What is considered a comment, depends on the given " @@ -1443,7 +1459,7 @@ msgstr "" "vuelve a escribir la configuración. Qué es considerado un comentario depende " "de los valores asignados a *comment_prefix* e *inline_comment_prefix*." -#: ../Doc/library/configparser.rst:1177 +#: ../Doc/library/configparser.rst:1183 msgid "" "Remove the specified *option* from the specified *section*. If the section " "does not exist, raise :exc:`NoSectionError`. If the option existed to be " @@ -1454,7 +1470,7 @@ msgstr "" "antes de la eliminación, retorna :const:`True`; de lo contrario retorna :" "const:`False`." -#: ../Doc/library/configparser.rst:1185 +#: ../Doc/library/configparser.rst:1191 msgid "" "Remove the specified *section* from the configuration. If the section in " "fact existed, return ``True``. Otherwise return ``False``." @@ -1462,7 +1478,7 @@ msgstr "" "Elimina la sección especificada de la configuración. Si la sección existía, " "retorna ``True``. De lo contrario, retorna ``False``." -#: ../Doc/library/configparser.rst:1191 +#: ../Doc/library/configparser.rst:1197 msgid "" "Transforms the option name *option* as found in an input file or as passed " "in by client code to the form that should be used in the internal " @@ -1477,7 +1493,7 @@ msgstr "" "las subclases pueden sobre-escribirla o el código del cliente puede asignar " "un atributo de su nombre en las instancias, para afectar su comportamiento." -#: ../Doc/library/configparser.rst:1197 +#: ../Doc/library/configparser.rst:1203 msgid "" "You don't need to subclass the parser to use this method, you can also set " "it on an instance, to a function that takes a string argument and returns a " @@ -1490,7 +1506,7 @@ msgstr "" "estableciéndola a ``str``, se hará que los nombres de opciones sean " "sensibles a mayúsculas y minúsculas::" -#: ../Doc/library/configparser.rst:1205 +#: ../Doc/library/configparser.rst:1211 msgid "" "Note that when reading configuration files, whitespace around the option " "names is stripped before :meth:`optionxform` is called." @@ -1499,37 +1515,8 @@ msgstr "" "blanco alrededor de los nombres de opción son eliminados antes de llamar a :" "meth:`optionxform`." -#: ../Doc/library/configparser.rst:1211 -msgid "Use :meth:`read_file` instead." -msgstr "Utilice :meth:`read_file` en su lugar." - -#: ../Doc/library/configparser.rst:1214 -msgid "" -":meth:`readfp` now iterates on *fp* instead of calling ``fp.readline()``." -msgstr "" -"Ahora, :meth:`readfp` itera sobre *fp*, en lugar de llamar a ``fp." -"readline()``." - #: ../Doc/library/configparser.rst:1217 msgid "" -"For existing code calling :meth:`readfp` with arguments which don't support " -"iteration, the following generator may be used as a wrapper around the file-" -"like object::" -msgstr "" -"Para el código existente, que llama a :meth:`readfp` sin argumentos que " -"soporten la iteración, el siguiente generador puede utilizarse como un " -"envoltorio (*wrapper*) para el objeto semejante a archivo::" - -#: ../Doc/library/configparser.rst:1227 -msgid "" -"Instead of ``parser.readfp(fp)`` use ``parser." -"read_file(readline_generator(fp))``." -msgstr "" -"Utilice ``parser.read_file(readline_generator(fp))`` en lugar de ``parser." -"readfp(fp)``." - -#: ../Doc/library/configparser.rst:1233 -msgid "" "The maximum depth for recursive interpolation for :meth:`get` when the *raw* " "parameter is false. This is relevant only when the default *interpolation* " "is used." @@ -1538,11 +1525,11 @@ msgstr "" "*raw* es *false*. Esto es de importancia solamente cuando la interpolación " "por defecto es empleada." -#: ../Doc/library/configparser.rst:1241 +#: ../Doc/library/configparser.rst:1225 msgid "RawConfigParser Objects" msgstr "Objetos RawConfigParser" -#: ../Doc/library/configparser.rst:1251 +#: ../Doc/library/configparser.rst:1235 msgid "" "Legacy variant of the :class:`ConfigParser`. It has interpolation disabled " "by default and allows for non-string section names, option names, and values " @@ -1555,7 +1542,7 @@ msgstr "" "inseguros ``add_section`` y ``set``, así como el manejo heredado del " "argumento nombrado ``defaults=``." -#: ../Doc/library/configparser.rst:1261 +#: ../Doc/library/configparser.rst:1245 msgid "" "Consider using :class:`ConfigParser` instead which checks types of the " "values to be stored internally. If you don't want interpolation, you can " @@ -1565,7 +1552,7 @@ msgstr "" "tipos de datos de los valores que se almacenarán internamente. Si no quieres " "la interpolación, puedes utilizar ``ConfigParser(interpolation=None)``." -#: ../Doc/library/configparser.rst:1268 +#: ../Doc/library/configparser.rst:1252 msgid "" "Add a section named *section* to the instance. If a section by the given " "name already exists, :exc:`DuplicateSectionError` is raised. If the " @@ -1576,7 +1563,7 @@ msgstr "" "`DuplicateSectionError`. Si se suministra el nombre *default section*, se " "genera la excepción :exc:`ValueError`." -#: ../Doc/library/configparser.rst:1272 +#: ../Doc/library/configparser.rst:1256 msgid "" "Type of *section* is not checked which lets users create non-string named " "sections. This behaviour is unsupported and may cause internal errors." @@ -1585,7 +1572,7 @@ msgstr "" "los usuarios creen secciones con nombres que no sean cadenas de caracteres. " "Este comportamiento no está soportado y puede ocasionar errores internos." -#: ../Doc/library/configparser.rst:1278 +#: ../Doc/library/configparser.rst:1262 msgid "" "If the given section exists, set the given option to the specified value; " "otherwise raise :exc:`NoSectionError`. While it is possible to use :class:" @@ -1602,7 +1589,7 @@ msgstr "" "interpolación y escritura en archivos) sólo puede lograrse utilizando " "valores del tipo cadena de caracteres." -#: ../Doc/library/configparser.rst:1285 +#: ../Doc/library/configparser.rst:1269 msgid "" "This method lets users assign non-string values to keys internally. This " "behaviour is unsupported and will cause errors when attempting to write to a " @@ -1615,19 +1602,19 @@ msgstr "" "intente obtenerlo en un modo no *raw*. **Utilice la API del protocolo de " "mapeo**, la cual no permite ese tipo de asignaciones." -#: ../Doc/library/configparser.rst:1292 +#: ../Doc/library/configparser.rst:1276 msgid "Exceptions" msgstr "Excepciones" -#: ../Doc/library/configparser.rst:1296 +#: ../Doc/library/configparser.rst:1280 msgid "Base class for all other :mod:`configparser` exceptions." msgstr "Clase base para todas las otras excepciones :mod:`configparser`." -#: ../Doc/library/configparser.rst:1301 +#: ../Doc/library/configparser.rst:1285 msgid "Exception raised when a specified section is not found." msgstr "Excepción generada cuando no se encuentra una sección especificada." -#: ../Doc/library/configparser.rst:1306 +#: ../Doc/library/configparser.rst:1290 msgid "" "Exception raised if :meth:`add_section` is called with the name of a section " "that is already present or in strict parsers when a section if found more " @@ -1638,7 +1625,7 @@ msgstr "" "*parsers* estrictos, si una sección se encuentra más de una vez en un solo " "archivo de entrada, cadena de caracteres o diccionario." -#: ../Doc/library/configparser.rst:1310 +#: ../Doc/library/configparser.rst:1294 msgid "" "Optional ``source`` and ``lineno`` attributes and arguments to :meth:" "`__init__` were added." @@ -1646,7 +1633,7 @@ msgstr "" "Al método :meth:`__init__` se agregaron los atributos y argumentos " "opcionales ``source`` y ``lineno``." -#: ../Doc/library/configparser.rst:1317 +#: ../Doc/library/configparser.rst:1301 msgid "" "Exception raised by strict parsers if a single option appears twice during " "reading from a single file, string or dictionary. This catches misspellings " @@ -1660,7 +1647,7 @@ msgstr "" "representan la misma clave de configuración bajo un esquema insensible a " "mayúsculas y minúsculas." -#: ../Doc/library/configparser.rst:1325 +#: ../Doc/library/configparser.rst:1309 msgid "" "Exception raised when a specified option is not found in the specified " "section." @@ -1668,7 +1655,7 @@ msgstr "" "Excepción generada cuando una opción especificada no se encuentra en una " "sección indicada." -#: ../Doc/library/configparser.rst:1331 +#: ../Doc/library/configparser.rst:1315 msgid "" "Base class for exceptions raised when problems occur performing string " "interpolation." @@ -1676,7 +1663,7 @@ msgstr "" "Clase base para excepciones generadas por problemas que ocurren al realizar " "la interpolación de cadenas de caracteres." -#: ../Doc/library/configparser.rst:1337 +#: ../Doc/library/configparser.rst:1321 msgid "" "Exception raised when string interpolation cannot be completed because the " "number of iterations exceeds :const:`MAX_INTERPOLATION_DEPTH`. Subclass of :" @@ -1686,7 +1673,7 @@ msgstr "" "completarse, debido a que el número de iteraciones excede a :const:" "`MAX_INTERPOLATION_DEPTH`. Subclase de :exc:`InterpolationError`." -#: ../Doc/library/configparser.rst:1344 +#: ../Doc/library/configparser.rst:1328 msgid "" "Exception raised when an option referenced from a value does not exist. " "Subclass of :exc:`InterpolationError`." @@ -1694,7 +1681,7 @@ msgstr "" "Excepción generada cuando no existe una opción referida por un valor. " "Subclase de :exc:`InterpolationError`." -#: ../Doc/library/configparser.rst:1350 +#: ../Doc/library/configparser.rst:1334 msgid "" "Exception raised when the source text into which substitutions are made does " "not conform to the required syntax. Subclass of :exc:`InterpolationError`." @@ -1703,7 +1690,7 @@ msgstr "" "sustituciones, no se ajusta a la sintaxis requerida. Subclase de :exc:" "`InterpolationError`." -#: ../Doc/library/configparser.rst:1356 +#: ../Doc/library/configparser.rst:1340 msgid "" "Exception raised when attempting to parse a file which has no section " "headers." @@ -1711,25 +1698,26 @@ msgstr "" "Excepción generada cuando se intenta analizar (*parse*) un archivo que no " "tiene encabezados de sección." -#: ../Doc/library/configparser.rst:1362 +#: ../Doc/library/configparser.rst:1346 msgid "Exception raised when errors occur attempting to parse a file." msgstr "" "Excepción generada cuando ocurren errores intentando analizar (*parse*) un " "archivo." -#: ../Doc/library/configparser.rst:1364 +#: ../Doc/library/configparser.rst:1348 +#, fuzzy msgid "" -"The ``filename`` attribute and :meth:`__init__` argument were renamed to " -"``source`` for consistency." +"The ``filename`` attribute and :meth:`__init__` constructor argument were " +"removed. They have been available using the name ``source`` since 3.2." msgstr "" "El atributo ``filename`` y el argumento :meth:`__init__` fueron renombrados " "a ``source`` por consistencia." -#: ../Doc/library/configparser.rst:1370 +#: ../Doc/library/configparser.rst:1353 msgid "Footnotes" msgstr "Notas al pie" -#: ../Doc/library/configparser.rst:1371 +#: ../Doc/library/configparser.rst:1354 msgid "" "Config parsers allow for heavy customization. If you are interested in " "changing the behaviour outlined by the footnote reference, consult the " @@ -1738,3 +1726,61 @@ msgstr "" "Los *config parsers* permiten una gran personalización. Si estás interesado " "en modificar el comportamiento descrito por la referencia de la nota al pie, " "consulta la sección `Customizing Parser Behaviour`_." + +#: ../Doc/library/configparser.rst:16 +msgid ".ini" +msgstr "" + +#: ../Doc/library/configparser.rst:16 +msgid "file" +msgstr "" + +#: ../Doc/library/configparser.rst:16 +msgid "configuration" +msgstr "" + +#: ../Doc/library/configparser.rst:16 +msgid "ini file" +msgstr "" + +#: ../Doc/library/configparser.rst:16 +msgid "Windows ini file" +msgstr "" + +#: ../Doc/library/configparser.rst:335 +msgid "% (percent)" +msgstr "" + +#: ../Doc/library/configparser.rst:335 ../Doc/library/configparser.rst:368 +#, fuzzy +msgid "interpolation in configuration files" +msgstr "Interpolación de valores" + +#: ../Doc/library/configparser.rst:368 +msgid "$ (dollar)" +msgstr "" + +#~ msgid "Use :meth:`read_file` instead." +#~ msgstr "Utilice :meth:`read_file` en su lugar." + +#~ msgid "" +#~ ":meth:`readfp` now iterates on *fp* instead of calling ``fp.readline()``." +#~ msgstr "" +#~ "Ahora, :meth:`readfp` itera sobre *fp*, en lugar de llamar a ``fp." +#~ "readline()``." + +#~ msgid "" +#~ "For existing code calling :meth:`readfp` with arguments which don't " +#~ "support iteration, the following generator may be used as a wrapper " +#~ "around the file-like object::" +#~ msgstr "" +#~ "Para el código existente, que llama a :meth:`readfp` sin argumentos que " +#~ "soporten la iteración, el siguiente generador puede utilizarse como un " +#~ "envoltorio (*wrapper*) para el objeto semejante a archivo::" + +#~ msgid "" +#~ "Instead of ``parser.readfp(fp)`` use ``parser." +#~ "read_file(readline_generator(fp))``." +#~ msgstr "" +#~ "Utilice ``parser.read_file(readline_generator(fp))`` en lugar de ``parser." +#~ "readfp(fp)``." diff --git a/library/constants.po b/library/constants.po index 488e4dedac..a6044e0597 100644 --- a/library/constants.po +++ b/library/constants.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-16 21:42+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-11-12 10:12+0800\n" "Last-Translator: Rodrigo Tobar \n" "Language: es\n" @@ -19,8 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.9.1\n" -"X-Generator: Poedit 3.0\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/constants.rst:4 msgid "Built-in Constants" @@ -49,11 +48,12 @@ msgstr "" "ilegales y generan un :exc:`SyntaxError`." #: ../Doc/library/constants.rst:22 +#, fuzzy msgid "" "An object frequently used to represent the absence of a value, as when " "default arguments are not passed to a function. Assignments to ``None`` are " "illegal and raise a :exc:`SyntaxError`. ``None`` is the sole instance of " -"the :data:`NoneType` type." +"the :data:`~types.NoneType` type." msgstr "" "Un objeto frecuentemente usado para representar la ausencia de un valor, tal " "como cuando no se entregan argumentos por defecto a una función. Las " @@ -61,14 +61,16 @@ msgstr "" "es la única instancia del tipo :data:`NoneType`." #: ../Doc/library/constants.rst:30 +#, fuzzy msgid "" "A special value which should be returned by the binary special methods (e." -"g. :meth:`__eq__`, :meth:`__lt__`, :meth:`__add__`, :meth:`__rsub__`, etc.) " -"to indicate that the operation is not implemented with respect to the other " -"type; may be returned by the in-place binary special methods (e.g. :meth:" -"`__imul__`, :meth:`__iand__`, etc.) for the same purpose. It should not be " -"evaluated in a boolean context. ``NotImplemented`` is the sole instance of " -"the :data:`types.NotImplementedType` type." +"g. :meth:`~object.__eq__`, :meth:`~object.__lt__`, :meth:`~object.__add__`, :" +"meth:`~object.__rsub__`, etc.) to indicate that the operation is not " +"implemented with respect to the other type; may be returned by the in-place " +"binary special methods (e.g. :meth:`~object.__imul__`, :meth:`~object." +"__iand__`, etc.) for the same purpose. It should not be evaluated in a " +"boolean context. ``NotImplemented`` is the sole instance of the :data:`types." +"NotImplementedType` type." msgstr "" "Valor especial que debe ser retornado por los métodos especiales binarios " "(por ejemplo :meth:`__eq__`, :meth:`__lt__`, :meth:`__add__`, :meth:" @@ -196,3 +198,11 @@ msgstr "" "ver el texto completo de la licencia\", y cuando se le llama, muestra el " "texto completo de la licencia en forma de buscapersonas (una pantalla a la " "vez)." + +#: ../Doc/library/constants.rst:61 +msgid "..." +msgstr "" + +#: ../Doc/library/constants.rst:61 +msgid "ellipsis literal" +msgstr "" diff --git a/library/contextlib.po b/library/contextlib.po index bde4164959..7c552e83c3 100644 --- a/library/contextlib.po +++ b/library/contextlib.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-06-24 22:27+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/contextlib.rst:2 msgid "" @@ -342,12 +342,26 @@ msgstr "Por ejemplo::" msgid "This code is equivalent to::" msgstr "Este código es equivalente a::" -#: ../Doc/library/contextlib.rst:305 ../Doc/library/contextlib.rst:345 -#: ../Doc/library/contextlib.rst:355 ../Doc/library/contextlib.rst:372 +#: ../Doc/library/contextlib.rst:305 ../Doc/library/contextlib.rst:352 +#: ../Doc/library/contextlib.rst:362 ../Doc/library/contextlib.rst:379 msgid "This context manager is :ref:`reentrant `." msgstr "Este gestor de contexto es :ref:`reentrant `." -#: ../Doc/library/contextlib.rst:312 +#: ../Doc/library/contextlib.rst:307 +msgid "" +"If the code within the :keyword:`!with` block raises an :exc:" +"`ExceptionGroup`, suppressed exceptions are removed from the group. If any " +"exceptions in the group are not suppressed, a group containing them is re-" +"raised." +msgstr "" + +#: ../Doc/library/contextlib.rst:313 +msgid "" +"``suppress`` now supports suppressing exceptions raised as part of an :exc:" +"`ExceptionGroup`." +msgstr "" + +#: ../Doc/library/contextlib.rst:319 msgid "" "Context manager for temporarily redirecting :data:`sys.stdout` to another " "file or file-like object." @@ -355,7 +369,7 @@ msgstr "" "Administrador de contexto para redirigir temporalmente :data:`sys.stdout` a " "otro archivo u objeto similar a un archivo." -#: ../Doc/library/contextlib.rst:315 +#: ../Doc/library/contextlib.rst:322 msgid "" "This tool adds flexibility to existing functions or classes whose output is " "hardwired to stdout." @@ -363,7 +377,7 @@ msgstr "" "Esta herramienta agrega flexibilidad a las funciones o clases existentes " "cuya salida está programada para stdout." -#: ../Doc/library/contextlib.rst:318 +#: ../Doc/library/contextlib.rst:325 msgid "" "For example, the output of :func:`help` normally is sent to *sys.stdout*. " "You can capture that output in a string by redirecting the output to an :" @@ -377,7 +391,7 @@ msgstr "" "``__enter__`` y, por lo tanto, está disponible como destino de la " "declaración :keyword:`with`:" -#: ../Doc/library/contextlib.rst:328 +#: ../Doc/library/contextlib.rst:335 msgid "" "To send the output of :func:`help` to a file on disk, redirect the output to " "a regular file::" @@ -385,11 +399,11 @@ msgstr "" "Para enviar la salida de :func:`help` a un archivo en el disco, redirija la " "salida a un archivo normal::" -#: ../Doc/library/contextlib.rst:335 +#: ../Doc/library/contextlib.rst:342 msgid "To send the output of :func:`help` to *sys.stderr*::" msgstr "Para enviar la salida de :func:`help` a *sys.stderr*::" -#: ../Doc/library/contextlib.rst:340 +#: ../Doc/library/contextlib.rst:347 msgid "" "Note that the global side effect on :data:`sys.stdout` means that this " "context manager is not suitable for use in library code and most threaded " @@ -402,7 +416,7 @@ msgstr "" "subprocesos. Tampoco tiene efecto en la salida de subprocesos. Sin embargo, " "sigue siendo un enfoque útil para muchos scripts de utilidad." -#: ../Doc/library/contextlib.rst:352 +#: ../Doc/library/contextlib.rst:359 msgid "" "Similar to :func:`~contextlib.redirect_stdout` but redirecting :data:`sys." "stderr` to another file or file-like object." @@ -410,7 +424,7 @@ msgstr "" "Similar a :func:`~contextlib.redirect_stdout` pero redirigiendo :data:`sys." "stderr` a otro archivo u objeto similar a un archivo." -#: ../Doc/library/contextlib.rst:362 +#: ../Doc/library/contextlib.rst:369 msgid "" "Non parallel-safe context manager to change the current working directory. " "As this changes a global state, the working directory, it is not suitable " @@ -427,7 +441,7 @@ msgstr "" "del programa se abandona temporalmente; a menos que se desee explícitamente, " "no debe ceder el paso cuando este administrador de contexto está activo." -#: ../Doc/library/contextlib.rst:369 +#: ../Doc/library/contextlib.rst:376 msgid "" "This is a simple wrapper around :func:`~os.chdir`, it changes the current " "working directory upon entering and restores the old one on exit." @@ -435,14 +449,14 @@ msgstr "" "Este es un contenedor simple alrededor de :func:`~os.chdir`, cambia el " "directorio de trabajo actual al ingresar y restaura el anterior al salir." -#: ../Doc/library/contextlib.rst:379 +#: ../Doc/library/contextlib.rst:386 msgid "" "A base class that enables a context manager to also be used as a decorator." msgstr "" "Una clase base que permite que un administrador de contexto también se use " "como decorador." -#: ../Doc/library/contextlib.rst:381 +#: ../Doc/library/contextlib.rst:388 msgid "" "Context managers inheriting from ``ContextDecorator`` have to implement " "``__enter__`` and ``__exit__`` as normal. ``__exit__`` retains its optional " @@ -453,7 +467,7 @@ msgstr "" "conserva su manejo opcional de excepciones incluso cuando se usa como " "decorador." -#: ../Doc/library/contextlib.rst:385 +#: ../Doc/library/contextlib.rst:392 msgid "" "``ContextDecorator`` is used by :func:`contextmanager`, so you get this " "functionality automatically." @@ -461,26 +475,26 @@ msgstr "" "``ContextDecorator`` es utilizado por :func:`contextmanager`, por lo que " "obtiene esta funcionalidad automáticamente." -#: ../Doc/library/contextlib.rst:388 +#: ../Doc/library/contextlib.rst:395 msgid "Example of ``ContextDecorator``::" msgstr "Ejemplo de ``ContextDecorator``::" -#: ../Doc/library/contextlib.rst:401 ../Doc/library/contextlib.rst:473 +#: ../Doc/library/contextlib.rst:408 ../Doc/library/contextlib.rst:480 msgid "The class can then be used like this::" msgstr "La clase se puede usar así:" -#: ../Doc/library/contextlib.rst:419 +#: ../Doc/library/contextlib.rst:426 msgid "" "This change is just syntactic sugar for any construct of the following form::" msgstr "" "Este cambio es solo azúcar sintáctico para cualquier construcción de la " "siguiente forma:" -#: ../Doc/library/contextlib.rst:425 +#: ../Doc/library/contextlib.rst:432 msgid "``ContextDecorator`` lets you instead write::" msgstr "``ContextDecorator`` le permite escribir en su lugar::" -#: ../Doc/library/contextlib.rst:431 +#: ../Doc/library/contextlib.rst:438 msgid "" "It makes it clear that the ``cm`` applies to the whole function, rather than " "just a piece of it (and saving an indentation level is nice, too)." @@ -488,7 +502,7 @@ msgstr "" "Deja en claro que el ``cm`` se aplica a toda la función, en lugar de solo " "una parte de ella (y guardar un nivel de sangría también es bueno)." -#: ../Doc/library/contextlib.rst:434 +#: ../Doc/library/contextlib.rst:441 msgid "" "Existing context managers that already have a base class can be extended by " "using ``ContextDecorator`` as a mixin class::" @@ -496,7 +510,7 @@ msgstr "" "Los gestores de contexto existentes que ya tienen una clase base pueden " "ampliarse utilizando ``ContextDecorator`` como una clase mezcla (*mixin*)::" -#: ../Doc/library/contextlib.rst:447 +#: ../Doc/library/contextlib.rst:454 msgid "" "As the decorated function must be able to be called multiple times, the " "underlying context manager must support use in multiple :keyword:`with` " @@ -508,17 +522,17 @@ msgstr "" "`with`. Si este no es el caso, se debe utilizar la construcción original con " "la declaración explícita :keyword:`!with` dentro de la función." -#: ../Doc/library/contextlib.rst:457 +#: ../Doc/library/contextlib.rst:464 msgid "" "Similar to :class:`ContextDecorator` but only for asynchronous functions." msgstr "" "Similar a :class:`ContextDecorator` pero solo para funciones asincrónicas." -#: ../Doc/library/contextlib.rst:459 +#: ../Doc/library/contextlib.rst:466 msgid "Example of ``AsyncContextDecorator``::" msgstr "Ejemplo de ``AsyncContextDecorator``:" -#: ../Doc/library/contextlib.rst:498 +#: ../Doc/library/contextlib.rst:505 msgid "" "A context manager that is designed to make it easy to programmatically " "combine other context managers and cleanup functions, especially those that " @@ -529,7 +543,7 @@ msgstr "" "especialmente aquellas que son opcionales o que de otro modo son impulsadas " "por los datos de entrada." -#: ../Doc/library/contextlib.rst:502 +#: ../Doc/library/contextlib.rst:509 msgid "" "For example, a set of files may easily be handled in a single with statement " "as follows::" @@ -537,7 +551,7 @@ msgstr "" "Por ejemplo, un conjunto de archivos puede manejarse fácilmente en una sola " "declaración de la siguiente manera:" -#: ../Doc/library/contextlib.rst:511 +#: ../Doc/library/contextlib.rst:518 msgid "" "The :meth:`__enter__` method returns the :class:`ExitStack` instance, and " "performs no additional operations." @@ -545,7 +559,7 @@ msgstr "" "El método :meth:`__enter__` retorna la instancia :class:`ExitStack` y no " "realiza operaciones adicionales." -#: ../Doc/library/contextlib.rst:514 +#: ../Doc/library/contextlib.rst:521 msgid "" "Each instance maintains a stack of registered callbacks that are called in " "reverse order when the instance is closed (either explicitly or implicitly " @@ -558,7 +572,7 @@ msgstr "" "que las retrollamadas *no* se invocan implícitamente cuando la instancia de " "la pila de contexto se recolecta basura." -#: ../Doc/library/contextlib.rst:519 +#: ../Doc/library/contextlib.rst:526 msgid "" "This stack model is used so that context managers that acquire their " "resources in their ``__init__`` method (such as file objects) can be handled " @@ -568,7 +582,7 @@ msgstr "" "adquieren sus recursos en su método ``__init__`` (como los objetos de " "archivo) se puedan manejar correctamente." -#: ../Doc/library/contextlib.rst:523 +#: ../Doc/library/contextlib.rst:530 msgid "" "Since registered callbacks are invoked in the reverse order of registration, " "this ends up behaving as if multiple nested :keyword:`with` statements had " @@ -584,7 +598,7 @@ msgstr "" "retrollamada interna suprime o reemplaza una excepción, las retrollamadas " "externas se pasarán argumentos basados en ese estado actualizado." -#: ../Doc/library/contextlib.rst:530 +#: ../Doc/library/contextlib.rst:537 msgid "" "This is a relatively low level API that takes care of the details of " "correctly unwinding the stack of exit callbacks. It provides a suitable " @@ -596,7 +610,7 @@ msgstr "" "una base adecuada para administradores de contexto de nivel superior que " "manipulan la pila de salida en formas específicas de la aplicación." -#: ../Doc/library/contextlib.rst:539 +#: ../Doc/library/contextlib.rst:546 msgid "" "Enters a new context manager and adds its :meth:`__exit__` method to the " "callback stack. The return value is the result of the context manager's own :" @@ -606,7 +620,7 @@ msgstr "" "`__exit__` a la pila de retrollamada. El valor de retorno es el resultado " "del método propio del administrador de contexto :meth:`__enter__`." -#: ../Doc/library/contextlib.rst:543 +#: ../Doc/library/contextlib.rst:550 msgid "" "These context managers may suppress exceptions just as they normally would " "if used directly as part of a :keyword:`with` statement." @@ -615,7 +629,7 @@ msgstr "" "harían normalmente si se usaran directamente como parte de una declaración :" "keyword:`with`." -#: ../Doc/library/contextlib.rst:546 +#: ../Doc/library/contextlib.rst:553 msgid "" "Raises :exc:`TypeError` instead of :exc:`AttributeError` if *cm* is not a " "context manager." @@ -623,13 +637,13 @@ msgstr "" "Lanza :exc:`TypeError` en lugar de :exc:`AttributeError` si *cm* no es un " "administrador de contexto." -#: ../Doc/library/contextlib.rst:552 +#: ../Doc/library/contextlib.rst:559 msgid "Adds a context manager's :meth:`__exit__` method to the callback stack." msgstr "" "Agrega un método de gestor de contexto :meth:`__exit__` a la pila de " "retrollamada." -#: ../Doc/library/contextlib.rst:554 +#: ../Doc/library/contextlib.rst:561 msgid "" "As ``__enter__`` is *not* invoked, this method can be used to cover part of " "an :meth:`__enter__` implementation with a context manager's own :meth:" @@ -639,7 +653,7 @@ msgstr "" "parte de una implementación :meth:`__enter__` con un método propio del " "gestor de contexto :meth:`__exit__`." -#: ../Doc/library/contextlib.rst:558 +#: ../Doc/library/contextlib.rst:565 msgid "" "If passed an object that is not a context manager, this method assumes it is " "a callback with the same signature as a context manager's :meth:`__exit__` " @@ -650,7 +664,7 @@ msgstr "" "`__exit__` de un gestor de contexto y lo agrega directamente a la pila de " "retrollamada." -#: ../Doc/library/contextlib.rst:562 +#: ../Doc/library/contextlib.rst:569 msgid "" "By returning true values, these callbacks can suppress exceptions the same " "way context manager :meth:`__exit__` methods can." @@ -659,7 +673,7 @@ msgstr "" "excepciones de la misma manera que el gestor de contexto los métodos :meth:" "`__exit__` pueden hacerlo." -#: ../Doc/library/contextlib.rst:565 +#: ../Doc/library/contextlib.rst:572 msgid "" "The passed in object is returned from the function, allowing this method to " "be used as a function decorator." @@ -667,7 +681,7 @@ msgstr "" "El objeto pasado se retorna desde la función, lo que permite que este método " "se use como decorador de funciones." -#: ../Doc/library/contextlib.rst:570 +#: ../Doc/library/contextlib.rst:577 msgid "" "Accepts an arbitrary callback function and arguments and adds it to the " "callback stack." @@ -675,7 +689,7 @@ msgstr "" "Acepta una función de retrollamada arbitraria y argumentos y la agrega a la " "pila de retrollamada." -#: ../Doc/library/contextlib.rst:573 +#: ../Doc/library/contextlib.rst:580 msgid "" "Unlike the other methods, callbacks added this way cannot suppress " "exceptions (as they are never passed the exception details)." @@ -684,7 +698,7 @@ msgstr "" "manera no pueden suprimir excepciones (ya que nunca se pasan los detalles de " "excepción)." -#: ../Doc/library/contextlib.rst:576 +#: ../Doc/library/contextlib.rst:583 msgid "" "The passed in callback is returned from the function, allowing this method " "to be used as a function decorator." @@ -692,7 +706,7 @@ msgstr "" "La retrollamada pasada se retorna desde la función, lo que permite que este " "método se use como decorador de funciones." -#: ../Doc/library/contextlib.rst:581 +#: ../Doc/library/contextlib.rst:588 msgid "" "Transfers the callback stack to a fresh :class:`ExitStack` instance and " "returns it. No callbacks are invoked by this operation - instead, they will " @@ -704,7 +718,7 @@ msgstr "" "invocarán cuando se cierre la nueva pila (ya sea explícita o implícitamente " "al final de una instrucción :keyword:`with`)." -#: ../Doc/library/contextlib.rst:586 +#: ../Doc/library/contextlib.rst:593 msgid "" "For example, a group of files can be opened as an \"all or nothing\" " "operation as follows::" @@ -712,7 +726,7 @@ msgstr "" "Por ejemplo, un grupo de archivos se puede abrir como una operación de " "\"todo o nada\" de la siguiente manera:" -#: ../Doc/library/contextlib.rst:600 +#: ../Doc/library/contextlib.rst:607 msgid "" "Immediately unwinds the callback stack, invoking callbacks in the reverse " "order of registration. For any context managers and exit callbacks " @@ -723,7 +737,7 @@ msgstr "" "retrollamadas de salida registradas, los argumentos pasados indicarán que no " "se produjo ninguna excepción." -#: ../Doc/library/contextlib.rst:607 +#: ../Doc/library/contextlib.rst:614 msgid "" "An :ref:`asynchronous context manager `, similar to :" "class:`ExitStack`, that supports combining both synchronous and asynchronous " @@ -733,7 +747,7 @@ msgstr "" "class:`ExitStack`, que admite la combinación de gestores de contexto " "síncrono y asíncrono, además de tener rutinas para la lógica de limpieza." -#: ../Doc/library/contextlib.rst:612 +#: ../Doc/library/contextlib.rst:619 msgid "" "The :meth:`close` method is not implemented, :meth:`aclose` must be used " "instead." @@ -741,14 +755,14 @@ msgstr "" "El método :meth:`close` no está implementado, :meth:`aclose` debe usarse en " "su lugar." -#: ../Doc/library/contextlib.rst:617 +#: ../Doc/library/contextlib.rst:624 msgid "" "Similar to :meth:`enter_context` but expects an asynchronous context manager." msgstr "" "Similar a :meth:`enter_context` pero espera un administrador de contexto " "asíncrono." -#: ../Doc/library/contextlib.rst:620 +#: ../Doc/library/contextlib.rst:627 msgid "" "Raises :exc:`TypeError` instead of :exc:`AttributeError` if *cm* is not an " "asynchronous context manager." @@ -756,7 +770,7 @@ msgstr "" "Lanza :exc:`TypeError` en lugar de :exc:`AttributeError` si *cm* no es un " "administrador de contexto asíncrono." -#: ../Doc/library/contextlib.rst:626 +#: ../Doc/library/contextlib.rst:633 msgid "" "Similar to :meth:`push` but expects either an asynchronous context manager " "or a coroutine function." @@ -764,24 +778,24 @@ msgstr "" "Similar a :meth:`push` pero espera un gestor de contexto asíncrono o una " "función de rutina." -#: ../Doc/library/contextlib.rst:631 +#: ../Doc/library/contextlib.rst:638 msgid "Similar to :meth:`callback` but expects a coroutine function." msgstr "Similar a :meth:`callback` pero espera una función de rutina." -#: ../Doc/library/contextlib.rst:635 +#: ../Doc/library/contextlib.rst:642 msgid "Similar to :meth:`close` but properly handles awaitables." msgstr "" "Similar a :meth:`close` pero maneja adecuadamente los objetos de espera." -#: ../Doc/library/contextlib.rst:637 +#: ../Doc/library/contextlib.rst:644 msgid "Continuing the example for :func:`asynccontextmanager`::" msgstr "Continuando con el ejemplo para :func:`asynccontextmanager`::" -#: ../Doc/library/contextlib.rst:649 +#: ../Doc/library/contextlib.rst:656 msgid "Examples and Recipes" msgstr "Ejemplos y recetas" -#: ../Doc/library/contextlib.rst:651 +#: ../Doc/library/contextlib.rst:658 msgid "" "This section describes some examples and recipes for making effective use of " "the tools provided by :mod:`contextlib`." @@ -789,11 +803,11 @@ msgstr "" "Esta sección describe algunos ejemplos y recetas para hacer un uso efectivo " "de las herramientas proporcionadas por :mod:`contextlib`." -#: ../Doc/library/contextlib.rst:656 +#: ../Doc/library/contextlib.rst:663 msgid "Supporting a variable number of context managers" msgstr "Apoyando un número variable de gestores de contexto" -#: ../Doc/library/contextlib.rst:658 +#: ../Doc/library/contextlib.rst:665 msgid "" "The primary use case for :class:`ExitStack` is the one given in the class " "documentation: supporting a variable number of context managers and other " @@ -810,7 +824,7 @@ msgstr "" "colección de archivos especificada por el usuario), o de que algunos de los " "gestores de contexto sean opcionales:" -#: ../Doc/library/contextlib.rst:673 +#: ../Doc/library/contextlib.rst:680 msgid "" "As shown, :class:`ExitStack` also makes it quite easy to use :keyword:`with` " "statements to manage arbitrary resources that don't natively support the " @@ -820,11 +834,11 @@ msgstr "" "usar :keyword:`with` para administrar recursos arbitrarios que no admiten de " "forma nativa el protocolo de gestión de contexto." -#: ../Doc/library/contextlib.rst:679 +#: ../Doc/library/contextlib.rst:686 msgid "Catching exceptions from ``__enter__`` methods" msgstr "Capturando excepciones de los métodos ``__enter__``" -#: ../Doc/library/contextlib.rst:681 +#: ../Doc/library/contextlib.rst:688 msgid "" "It is occasionally desirable to catch exceptions from an ``__enter__`` " "method implementation, *without* inadvertently catching exceptions from the :" @@ -838,7 +852,7 @@ msgstr "" "contexto. Al usar :class:`ExitStack`, los pasos en el protocolo de gestor de " "contexto se pueden separar ligeramente para permitir esto::" -#: ../Doc/library/contextlib.rst:696 +#: ../Doc/library/contextlib.rst:703 msgid "" "Actually needing to do this is likely to indicate that the underlying API " "should be providing a direct resource management interface for use with :" @@ -857,11 +871,11 @@ msgstr "" "situaciones que no se pueden manejar directamente en una declaración :" "keyword:`with`." -#: ../Doc/library/contextlib.rst:706 +#: ../Doc/library/contextlib.rst:713 msgid "Cleaning up in an ``__enter__`` implementation" msgstr "Limpieza en una implementación ``__enter__``" -#: ../Doc/library/contextlib.rst:708 +#: ../Doc/library/contextlib.rst:715 msgid "" "As noted in the documentation of :meth:`ExitStack.push`, this method can be " "useful in cleaning up an already allocated resource if later steps in the :" @@ -871,7 +885,7 @@ msgstr "" "puede ser útil para limpiar un recurso ya asignado si fallan los pasos " "posteriores en :meth:`__enter__`." -#: ../Doc/library/contextlib.rst:712 +#: ../Doc/library/contextlib.rst:719 msgid "" "Here's an example of doing this for a context manager that accepts resource " "acquisition and release functions, along with an optional validation " @@ -882,11 +896,11 @@ msgstr "" "función de validación opcional, y las asigna al protocolo de administración " "de contexto::" -#: ../Doc/library/contextlib.rst:752 +#: ../Doc/library/contextlib.rst:759 msgid "Replacing any use of ``try-finally`` and flag variables" msgstr "Reemplazar cualquier uso de ``try-finally`` y marcar variables" -#: ../Doc/library/contextlib.rst:754 +#: ../Doc/library/contextlib.rst:761 msgid "" "A pattern you will sometimes see is a ``try-finally`` statement with a flag " "variable to indicate whether or not the body of the ``finally`` clause " @@ -898,7 +912,7 @@ msgstr "" "debe ejecutarse o no. En su forma más simple (que ya no puede manejarse " "simplemente usando una cláusula ``except`` en su lugar), se parece a esto::" -#: ../Doc/library/contextlib.rst:768 +#: ../Doc/library/contextlib.rst:775 msgid "" "As with any ``try`` statement based code, this can cause problems for " "development and review, because the setup code and the cleanup code can end " @@ -909,7 +923,7 @@ msgstr "" "configuración y el código de limpieza pueden terminar separados por " "secciones de código arbitrariamente largas." -#: ../Doc/library/contextlib.rst:772 +#: ../Doc/library/contextlib.rst:779 msgid "" ":class:`ExitStack` makes it possible to instead register a callback for " "execution at the end of a ``with`` statement, and then later decide to skip " @@ -919,7 +933,7 @@ msgstr "" "al final de una instrucción ``with``, y luego decide omitir la ejecución de " "esa retrollamada::" -#: ../Doc/library/contextlib.rst:784 +#: ../Doc/library/contextlib.rst:791 msgid "" "This allows the intended cleanup up behaviour to be made explicit up front, " "rather than requiring a separate flag variable." @@ -927,7 +941,7 @@ msgstr "" "Esto permite que el comportamiento de limpieza previsto se haga explícito " "por adelantado, en lugar de requerir una variable de indicador separada." -#: ../Doc/library/contextlib.rst:787 +#: ../Doc/library/contextlib.rst:794 msgid "" "If a particular application uses this pattern a lot, it can be simplified " "even further by means of a small helper class::" @@ -935,7 +949,7 @@ msgstr "" "Si una aplicación particular usa mucho este patrón, puede simplificarse aún " "más por medio de una pequeña clase auxiliar::" -#: ../Doc/library/contextlib.rst:805 +#: ../Doc/library/contextlib.rst:812 msgid "" "If the resource cleanup isn't already neatly bundled into a standalone " "function, then it is still possible to use the decorator form of :meth:" @@ -945,7 +959,7 @@ msgstr "" "independiente, entonces todavía es posible usar la forma decoradora de :meth:" "`ExitStack.callback` para declarar la limpieza del recurso por adelantado::" -#: ../Doc/library/contextlib.rst:820 +#: ../Doc/library/contextlib.rst:827 msgid "" "Due to the way the decorator protocol works, a callback function declared " "this way cannot take any parameters. Instead, any resources to be released " @@ -956,11 +970,11 @@ msgstr "" "cambio, se debe acceder a los recursos que se liberarán como variables de " "cierre." -#: ../Doc/library/contextlib.rst:826 +#: ../Doc/library/contextlib.rst:833 msgid "Using a context manager as a function decorator" msgstr "Usar un gestor de contexto como decorador de funciones" -#: ../Doc/library/contextlib.rst:828 +#: ../Doc/library/contextlib.rst:835 msgid "" ":class:`ContextDecorator` makes it possible to use a context manager in both " "an ordinary ``with`` statement and also as a function decorator." @@ -968,7 +982,7 @@ msgstr "" ":class:`ContextDecorator` hace posible usar un gestor de contexto tanto en " "una instrucción ordinaria ``with`` como también como decorador de funciones." -#: ../Doc/library/contextlib.rst:831 +#: ../Doc/library/contextlib.rst:838 msgid "" "For example, it is sometimes useful to wrap functions or groups of " "statements with a logger that can track the time of entry and time of exit. " @@ -982,16 +996,16 @@ msgstr "" "administrador de contexto para la tarea, heredar de :class:" "`ContextDecorator` proporciona ambas capacidades en una sola definición::" -#: ../Doc/library/contextlib.rst:852 +#: ../Doc/library/contextlib.rst:859 msgid "Instances of this class can be used as both a context manager::" msgstr "" "Las instancias de esta clase se pueden usar como un gestor de contexto::" -#: ../Doc/library/contextlib.rst:858 +#: ../Doc/library/contextlib.rst:865 msgid "And also as a function decorator::" msgstr "Y también como decorador de funciones::" -#: ../Doc/library/contextlib.rst:865 +#: ../Doc/library/contextlib.rst:872 msgid "" "Note that there is one additional limitation when using context managers as " "function decorators: there's no way to access the return value of :meth:" @@ -1003,11 +1017,11 @@ msgstr "" "acceder al valor de retorno de :meth:`__enter__`. Si se necesita ese valor, " "aún es necesario usar una declaración explícita ``with``." -#: ../Doc/library/contextlib.rst:873 +#: ../Doc/library/contextlib.rst:880 msgid ":pep:`343` - The \"with\" statement" msgstr ":pep:`343` - La declaración \"with\"" -#: ../Doc/library/contextlib.rst:873 +#: ../Doc/library/contextlib.rst:880 msgid "" "The specification, background, and examples for the Python :keyword:`with` " "statement." @@ -1015,11 +1029,11 @@ msgstr "" "La especificación, antecedentes y ejemplos de la declaración de Python :" "keyword:`with`." -#: ../Doc/library/contextlib.rst:879 +#: ../Doc/library/contextlib.rst:886 msgid "Single use, reusable and reentrant context managers" msgstr "Gestores de contexto de uso único, reutilizables y reentrantes" -#: ../Doc/library/contextlib.rst:881 +#: ../Doc/library/contextlib.rst:888 msgid "" "Most context managers are written in a way that means they can only be used " "effectively in a :keyword:`with` statement once. These single use context " @@ -1033,7 +1047,7 @@ msgstr "" "vez, se activará una excepción o, de lo contrario, no funcionará " "correctamente." -#: ../Doc/library/contextlib.rst:887 +#: ../Doc/library/contextlib.rst:894 msgid "" "This common limitation means that it is generally advisable to create " "context managers directly in the header of the :keyword:`with` statement " @@ -1044,7 +1058,7 @@ msgstr "" "keyword:`with` donde se usan (como se muestra en todos los ejemplos de uso " "anteriores)." -#: ../Doc/library/contextlib.rst:891 +#: ../Doc/library/contextlib.rst:898 msgid "" "Files are an example of effectively single use context managers, since the " "first :keyword:`with` statement will close the file, preventing any further " @@ -1054,7 +1068,7 @@ msgstr "" "la primera :keyword:`with` cerrará el archivo, evitando cualquier otra " "operación de E/S que use ese objeto de archivo." -#: ../Doc/library/contextlib.rst:895 +#: ../Doc/library/contextlib.rst:902 msgid "" "Context managers created using :func:`contextmanager` are also single use " "context managers, and will complain about the underlying generator failing " @@ -1064,11 +1078,11 @@ msgstr "" "gestores de contexto de un solo uso, y se quejarán de la falla del generador " "subyacente si se intenta usarlos por segunda vez::" -#: ../Doc/library/contextlib.rst:923 +#: ../Doc/library/contextlib.rst:930 msgid "Reentrant context managers" msgstr "Gestores contextuales reentrantes" -#: ../Doc/library/contextlib.rst:925 +#: ../Doc/library/contextlib.rst:932 msgid "" "More sophisticated context managers may be \"reentrant\". These context " "managers can not only be used in multiple :keyword:`with` statements, but " @@ -1080,7 +1094,7 @@ msgstr "" "declaraciones :keyword:`with`, sino que también se pueden usar *inside* a :" "keyword:`!with` que ya está usando el mismo gestor de contexto." -#: ../Doc/library/contextlib.rst:930 +#: ../Doc/library/contextlib.rst:937 msgid "" ":class:`threading.RLock` is an example of a reentrant context manager, as " "are :func:`suppress`, :func:`redirect_stdout`, and :func:`chdir`. Here's a " @@ -1090,7 +1104,7 @@ msgstr "" "reentrante, al igual que :func:`suppress`, :func:`redirect_stdout` y :func:" "`chdir`. Aquí hay un ejemplo muy simple de uso de reentrada:" -#: ../Doc/library/contextlib.rst:949 +#: ../Doc/library/contextlib.rst:956 msgid "" "Real world examples of reentrancy are more likely to involve multiple " "functions calling each other and hence be far more complicated than this " @@ -1100,7 +1114,7 @@ msgstr "" "múltiples funciones que se llaman entre sí y, por lo tanto, sean mucho más " "complicadas que este ejemplo." -#: ../Doc/library/contextlib.rst:953 +#: ../Doc/library/contextlib.rst:960 msgid "" "Note also that being reentrant is *not* the same thing as being thread " "safe. :func:`redirect_stdout`, for example, is definitely not thread safe, " @@ -1112,11 +1126,11 @@ msgstr "" "es seguro para subprocesos, ya que realiza una modificación global al estado " "del sistema al vincular :data:`sys.stdout` a una secuencia diferente." -#: ../Doc/library/contextlib.rst:962 +#: ../Doc/library/contextlib.rst:969 msgid "Reusable context managers" msgstr "Gestores contextuales reutilizables" -#: ../Doc/library/contextlib.rst:964 +#: ../Doc/library/contextlib.rst:971 msgid "" "Distinct from both single use and reentrant context managers are " "\"reusable\" context managers (or, to be completely explicit, \"reusable, " @@ -1134,7 +1148,7 @@ msgstr "" "si la instancia específica del administrador de contexto ya se ha utilizado " "en una declaración que contiene." -#: ../Doc/library/contextlib.rst:971 +#: ../Doc/library/contextlib.rst:978 msgid "" ":class:`threading.Lock` is an example of a reusable, but not reentrant, " "context manager (for a reentrant lock, it is necessary to use :class:" @@ -1144,7 +1158,7 @@ msgstr "" "pero no reentrante (para un bloqueo reentrante, es necesario usar :class:" "`threading.RLock` en su lugar)." -#: ../Doc/library/contextlib.rst:975 +#: ../Doc/library/contextlib.rst:982 msgid "" "Another example of a reusable, but not reentrant, context manager is :class:" "`ExitStack`, as it invokes *all* currently registered callbacks when leaving " @@ -1155,7 +1169,7 @@ msgstr "" "registradas actualmente al dejar cualquier con declaración, " "independientemente de dónde se agregaron esas retrollamadas::" -#: ../Doc/library/contextlib.rst:1006 +#: ../Doc/library/contextlib.rst:1013 msgid "" "As the output from the example shows, reusing a single stack object across " "multiple with statements works correctly, but attempting to nest them will " @@ -1167,7 +1181,7 @@ msgstr "" "anidarlos hará que la pila se borre al final de la declaración más interna, " "lo que es poco probable que sea un comportamiento deseable." -#: ../Doc/library/contextlib.rst:1011 +#: ../Doc/library/contextlib.rst:1018 msgid "" "Using separate :class:`ExitStack` instances instead of reusing a single " "instance avoids that problem::" diff --git a/library/contextvars.po b/library/contextvars.po index 5cb68ba760..5bb19c2154 100644 --- a/library/contextvars.po +++ b/library/contextvars.po @@ -1,23 +1,25 @@ # Copyright (C) 2001-2020, Python Software Foundation # This file is distributed under the same license as the Python package. # Maintained by the python-doc-es workteam. -# docs-es@python.org / https://mail.python.org/mailman3/lists/docs-es.python.org/ -# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get the list of volunteers +# docs-es@python.org / +# https://mail.python.org/mailman3/lists/docs-es.python.org/ +# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get +# the list of volunteers # msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-06 11:59-0400\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-07 15:44+0200\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" "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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: Cristián Maureira-Fredes \n" -"Language: es\n" -"X-Generator: Poedit 3.0\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/contextvars.rst:2 msgid ":mod:`contextvars` --- Context Variables" @@ -176,10 +178,11 @@ msgstr "" "*token*." #: ../Doc/library/contextvars.rst:111 +#, fuzzy msgid "" "A read-only property. Set to the value the variable had before the :meth:" "`ContextVar.set` method call that created the token. It points to :attr:" -"`Token.MISSING` is the variable was not set before the call." +"`Token.MISSING` if the variable was not set before the call." msgstr "" "Propiedad de sólo lectura. Es el valor que la variable tenía antes de llamar " "al método :meth:`ContextVar.set` que creó el *token*. Apunta a :attr:`Token." @@ -227,10 +230,18 @@ msgstr "" "copy_context`." #: ../Doc/library/contextvars.rst:147 +msgid "" +"Every thread will have a different top-level :class:`~contextvars.Context` " +"object. This means that a :class:`ContextVar` object behaves in a similar " +"fashion to :func:`threading.local()` when values are assigned in different " +"threads." +msgstr "" + +#: ../Doc/library/contextvars.rst:152 msgid "Context implements the :class:`collections.abc.Mapping` interface." msgstr "*Context* implementa la interfaz :class:`collections.abc.Mapping`." -#: ../Doc/library/contextvars.rst:151 +#: ../Doc/library/contextvars.rst:156 msgid "" "Execute ``callable(*args, **kwargs)`` code in the context object the *run* " "method is called on. Return the result of the execution or propagate an " @@ -240,7 +251,7 @@ msgstr "" "del cual se llama al método *run*. Retorna el resultado de la ejecución, o " "propaga una excepción si alguna ocurre." -#: ../Doc/library/contextvars.rst:155 +#: ../Doc/library/contextvars.rst:160 msgid "" "Any changes to any context variables that *callable* makes will be contained " "in the context object::" @@ -248,7 +259,7 @@ msgstr "" "Cualquier cambio realizado por *callable* sobre cualquier variable de " "contexto será contenido en el objeto de contexto::" -#: ../Doc/library/contextvars.rst:184 +#: ../Doc/library/contextvars.rst:189 msgid "" "The method raises a :exc:`RuntimeError` when called on the same context " "object from more than one OS thread, or when called recursively." @@ -257,11 +268,11 @@ msgstr "" "objeto de contexto desde más de un hilo del sistema operativo, o si se llama " "recursivamente." -#: ../Doc/library/contextvars.rst:190 +#: ../Doc/library/contextvars.rst:195 msgid "Return a shallow copy of the context object." msgstr "Retorna una copia superficial (*shallow copy*) del objeto de contexto." -#: ../Doc/library/contextvars.rst:194 +#: ../Doc/library/contextvars.rst:199 msgid "" "Return ``True`` if the *context* has a value for *var* set; return ``False`` " "otherwise." @@ -269,7 +280,7 @@ msgstr "" "Retorna ``True`` si *context* tiene un valor establecido para *var*; de lo " "contrario, retorna ``False``." -#: ../Doc/library/contextvars.rst:199 +#: ../Doc/library/contextvars.rst:204 msgid "" "Return the value of the *var* :class:`ContextVar` variable. If the variable " "is not set in the context object, a :exc:`KeyError` is raised." @@ -277,7 +288,7 @@ msgstr "" "Retorna el valor de la variable :class:`ContextVar` *var*. Si la variable no " "está establecida en el contexto actual, se lanzará :exc:`KeyError`." -#: ../Doc/library/contextvars.rst:205 +#: ../Doc/library/contextvars.rst:210 msgid "" "Return the value for *var* if *var* has the value in the context object. " "Return *default* otherwise. If *default* is not given, return ``None``." @@ -286,26 +297,26 @@ msgstr "" "de lo contrario, retorna *default*. Si *default* no es dado, retorna " "``None``." -#: ../Doc/library/contextvars.rst:211 +#: ../Doc/library/contextvars.rst:216 msgid "Return an iterator over the variables stored in the context object." msgstr "" "Retorna un iterador de las variables almacenadas en el objeto de contexto." -#: ../Doc/library/contextvars.rst:216 +#: ../Doc/library/contextvars.rst:221 msgid "Return the number of variables set in the context object." msgstr "Retorna el número de variables establecidas en el objeto de contexto." -#: ../Doc/library/contextvars.rst:220 +#: ../Doc/library/contextvars.rst:225 msgid "Return a list of all variables in the context object." msgstr "Retorna un listado de todas las variables en el objeto de contexto." -#: ../Doc/library/contextvars.rst:224 +#: ../Doc/library/contextvars.rst:229 msgid "Return a list of all variables' values in the context object." msgstr "" "Retorna un listado de los valores de todas las variables en el objeto de " "contexto." -#: ../Doc/library/contextvars.rst:229 +#: ../Doc/library/contextvars.rst:234 msgid "" "Return a list of 2-tuples containing all variables and their values in the " "context object." @@ -313,11 +324,11 @@ msgstr "" "Retorna un listado de dos tuplas que contienen todas las variables y sus " "variables en el contexto actual." -#: ../Doc/library/contextvars.rst:234 +#: ../Doc/library/contextvars.rst:239 msgid "asyncio support" msgstr "Soporte asyncio" -#: ../Doc/library/contextvars.rst:236 +#: ../Doc/library/contextvars.rst:241 msgid "" "Context variables are natively supported in :mod:`asyncio` and are ready to " "be used without any extra configuration. For example, here is a simple echo " diff --git a/library/copy.po b/library/copy.po index bdafe7976c..5d466267ed 100644 --- a/library/copy.po +++ b/library/copy.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-05-25 17:45-0500\n" "Last-Translator: Cristian Danilo Rengifo Parra \n" "Language: es_CO\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/copy.rst:2 msgid ":mod:`copy` --- Shallow and deep copy operations" @@ -203,3 +203,19 @@ msgid "" msgstr "" "Discusión de los métodos especiales utilizados para apoyar la recuperación y " "restauración del estado del objeto." + +#: ../Doc/library/copy.rst:71 +msgid "module" +msgstr "" + +#: ../Doc/library/copy.rst:71 +msgid "pickle" +msgstr "" + +#: ../Doc/library/copy.rst:78 +msgid "__copy__() (copy protocol)" +msgstr "" + +#: ../Doc/library/copy.rst:78 +msgid "__deepcopy__() (copy protocol)" +msgstr "" diff --git a/library/copyreg.po b/library/copyreg.po index 1dbce3676d..1903103167 100644 --- a/library/copyreg.po +++ b/library/copyreg.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-20 20:53+0100\n" "Last-Translator: Carlos AlMA \n" -"Language-Team: \n" "Language: es\n" +"Language-Team: \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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/copyreg.rst:2 msgid ":mod:`copyreg` --- Register :mod:`pickle` support functions" @@ -56,10 +55,11 @@ msgstr "" "excepción :exc:`TypeError`." #: ../Doc/library/copyreg.rst:30 +#, fuzzy msgid "" "Declares that *function* should be used as a \"reduction\" function for " -"objects of type *type*. *function* should return either a string or a tuple " -"containing two or three elements. See the :attr:`~pickle.Pickler." +"objects of type *type*. *function* must return either a string or a tuple " +"containing between two and six elements. See the :attr:`~pickle.Pickler." "dispatch_table` for more details on the interface of *function*." msgstr "" "Declara que la *function* deber ser usada como una función de \"reducción\" " @@ -97,3 +97,15 @@ msgid "" msgstr "" "El siguiente ejemplo pretende mostrar cómo registrar una función pickle y " "cómo se utilizará:" + +#: ../Doc/library/copyreg.rst:9 +msgid "module" +msgstr "" + +#: ../Doc/library/copyreg.rst:9 +msgid "pickle" +msgstr "" + +#: ../Doc/library/copyreg.rst:9 +msgid "copy" +msgstr "" diff --git a/library/crypt.po b/library/crypt.po index e558200ae0..cb2d5b3f1e 100644 --- a/library/crypt.po +++ b/library/crypt.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-09-04 00:23-0500\n" "Last-Translator: Gustavo Huarcaya \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/crypt.rst:2 msgid ":mod:`crypt` --- Function to check Unix passwords" @@ -29,17 +29,19 @@ msgstr ":mod:`crypt` --- Función para verificar contraseñas Unix" msgid "**Source code:** :source:`Lib/crypt.py`" msgstr "**Código fuente:** :source:`Lib/crypt.py`" -#: ../Doc/library/crypt.rst:23 +#: ../Doc/library/crypt.rst:24 +#, fuzzy msgid "" "The :mod:`crypt` module is deprecated (see :pep:`PEP 594 <594#crypt>` for " "details and alternatives). The :mod:`hashlib` module is a potential " -"replacement for certain use cases." +"replacement for certain use cases. The `passlib `_ package can replace all use cases of this module." msgstr "" "El módulo :mod:`crypt` está obsoleto (consulte :pep:`PEP 594 <594#crypt>` " "para obtener detalles y alternativas). El módulo :mod:`hashlib` es un " "reemplazo potencial para ciertos casos de uso." -#: ../Doc/library/crypt.rst:26 +#: ../Doc/library/crypt.rst:27 msgid "" "This module implements an interface to the :manpage:`crypt(3)` routine, " "which is a one-way hash function based upon a modified DES algorithm; see " @@ -54,7 +56,7 @@ msgstr "" "que puedas verificar las contraseñas sin almacenar la contraseña real o " "intentar descifrar contraseñas Unix con un diccionario." -#: ../Doc/library/crypt.rst:34 +#: ../Doc/library/crypt.rst:35 msgid "" "Notice that the behavior of this module depends on the actual " "implementation of the :manpage:`crypt(3)` routine in the running system. " @@ -71,11 +73,12 @@ msgstr "" msgid ":ref:`Availability `: Unix, not VxWorks." msgstr ":ref:`Disponibilidad `: Unix. No disponible en VxWorks." +#: ../Doc/includes/wasm-notavail.rst:3 #, fuzzy msgid ":ref:`Availability `: not Emscripten, not WASI." msgstr ":ref:`Disponibilidad `: Unix. No disponible en VxWorks." -#: ../Doc/library/cpython/Doc/includes/wasm-notavail.rst:5 +#: ../Doc/includes/wasm-notavail.rst:5 #, fuzzy msgid "" "This module does not work or is not available on WebAssembly platforms " @@ -86,11 +89,11 @@ msgstr "" "``wasm32-emscripten`` y ``wasm32-wasi``. Consulte :ref:`wasm-availability` " "para obtener más información." -#: ../Doc/library/crypt.rst:44 +#: ../Doc/library/crypt.rst:45 msgid "Hashing Methods" msgstr "Métodos de *hashing*" -#: ../Doc/library/crypt.rst:48 +#: ../Doc/library/crypt.rst:49 msgid "" "The :mod:`crypt` module defines the list of hashing methods (not all methods " "are available on all platforms):" @@ -98,7 +101,7 @@ msgstr "" "El módulo :mod:`crypt` define la lista de métodos de cifrado (no todos los " "métodos están disponibles en todas las plataformas):" -#: ../Doc/library/crypt.rst:53 +#: ../Doc/library/crypt.rst:54 msgid "" "A Modular Crypt Format method with 16 character salt and 86 character hash " "based on the SHA-512 hash function. This is the strongest method." @@ -107,7 +110,7 @@ msgstr "" "86 caracteres basado en la función hash SHA-512. Este es el método más " "fuerte." -#: ../Doc/library/crypt.rst:58 +#: ../Doc/library/crypt.rst:59 msgid "" "Another Modular Crypt Format method with 16 character salt and 43 character " "hash based on the SHA-256 hash function." @@ -115,7 +118,7 @@ msgstr "" "Otro método de formato modular *crypt* con *salt* de 16 caracteres y hash de " "43 caracteres basado en la función hash SHA-256." -#: ../Doc/library/crypt.rst:63 +#: ../Doc/library/crypt.rst:64 msgid "" "Another Modular Crypt Format method with 22 character salt and 31 character " "hash based on the Blowfish cipher." @@ -123,7 +126,7 @@ msgstr "" "Otro método de formato modular *crypt* con *salt* de 22 caracteres y hash de " "31 caracteres basado en el cifrado Blowfish." -#: ../Doc/library/crypt.rst:70 +#: ../Doc/library/crypt.rst:71 msgid "" "Another Modular Crypt Format method with 8 character salt and 22 character " "hash based on the MD5 hash function." @@ -131,7 +134,7 @@ msgstr "" "Otro método de formato modular *crypt* con *salt* de 8 caracteres y hash de " "22 caracteres basado en la función hash MD5." -#: ../Doc/library/crypt.rst:75 +#: ../Doc/library/crypt.rst:76 msgid "" "The traditional method with a 2 character salt and 13 characters of hash. " "This is the weakest method." @@ -139,11 +142,11 @@ msgstr "" "El método tradicional con un *salt* de 2 caracteres y hash de 13 caracteres. " "Este es el método más débil." -#: ../Doc/library/crypt.rst:80 +#: ../Doc/library/crypt.rst:81 msgid "Module Attributes" msgstr "Atributos del módulo" -#: ../Doc/library/crypt.rst:86 +#: ../Doc/library/crypt.rst:87 msgid "" "A list of available password hashing algorithms, as ``crypt.METHOD_*`` " "objects. This list is sorted from strongest to weakest." @@ -151,15 +154,15 @@ msgstr "" "Una lista de algoritmos hash de contraseña disponibles, como objetos ``crypt." "METHOD_*``. Esta lista está ordenada de la más fuerte a la más débil." -#: ../Doc/library/crypt.rst:92 +#: ../Doc/library/crypt.rst:93 msgid "Module Functions" msgstr "Funciones del módulo" -#: ../Doc/library/crypt.rst:94 +#: ../Doc/library/crypt.rst:95 msgid "The :mod:`crypt` module defines the following functions:" msgstr "El módulo :mod:`crypt` define las siguientes funciones:" -#: ../Doc/library/crypt.rst:98 +#: ../Doc/library/crypt.rst:99 msgid "" "*word* will usually be a user's password as typed at a prompt or in a " "graphical interface. The optional *salt* is either a string as returned " @@ -176,7 +179,7 @@ msgstr "" "Si no se proporciona *salt*, se utilizará el método más fuerte disponible " "en :attr:`methods`." -#: ../Doc/library/crypt.rst:105 +#: ../Doc/library/crypt.rst:106 msgid "" "Checking a password is usually done by passing the plain-text password as " "*word* and the full results of a previous :func:`crypt` call, which should " @@ -187,7 +190,7 @@ msgstr "" "anterior a :func:`crypt`, que debería ser igual a los resultados de esta " "llamada." -#: ../Doc/library/crypt.rst:109 +#: ../Doc/library/crypt.rst:110 msgid "" "*salt* (either a random 2 or 16 character string, possibly prefixed with " "``$digit$`` to indicate the method) which will be used to perturb the " @@ -201,7 +204,7 @@ msgstr "" "el conjunto ``[./a-zA-Z0-9]``, con la excepción del formato modular *crypt* " "que antepone un ``$digit$``." -#: ../Doc/library/crypt.rst:115 +#: ../Doc/library/crypt.rst:116 msgid "" "Returns the hashed password as a string, which will be composed of " "characters from the same alphabet as the salt." @@ -209,7 +212,7 @@ msgstr "" "Retorna una contraseña con hash como una cadena, que estará compuesta por " "caracteres del mismo alfabeto que *salt*." -#: ../Doc/library/crypt.rst:120 +#: ../Doc/library/crypt.rst:121 msgid "" "Since a few :manpage:`crypt(3)` extensions allow different values, with " "different sizes in the *salt*, it is recommended to use the full crypted " @@ -219,12 +222,12 @@ msgstr "" "valores, con diferentes tamaños en *salt*, se recomienda utilizar la " "contraseña encriptada completa como *salt* al buscar una contraseña." -#: ../Doc/library/crypt.rst:124 +#: ../Doc/library/crypt.rst:125 msgid "Accept ``crypt.METHOD_*`` values in addition to strings for *salt*." msgstr "" "Acepta los valores ``crypt.METHOD_*`` además de las cadenas para *salt*." -#: ../Doc/library/crypt.rst:130 +#: ../Doc/library/crypt.rst:131 msgid "" "Return a randomly generated salt of the specified method. If no *method* is " "given, the strongest method available in :attr:`methods` is used." @@ -233,7 +236,7 @@ msgstr "" "proporciona *method*, se utiliza el método más sólido disponible en :attr:" "`methods`." -#: ../Doc/library/crypt.rst:134 +#: ../Doc/library/crypt.rst:135 msgid "" "The return value is a string suitable for passing as the *salt* argument to :" "func:`crypt`." @@ -241,7 +244,7 @@ msgstr "" "El valor de retorno es una cadena adecuada para pasar como argumento *salt* " "a :func:`crypt`." -#: ../Doc/library/crypt.rst:137 +#: ../Doc/library/crypt.rst:138 msgid "" "*rounds* specifies the number of rounds for ``METHOD_SHA256``, " "``METHOD_SHA512`` and ``METHOD_BLOWFISH``. For ``METHOD_SHA256`` and " @@ -257,15 +260,15 @@ msgstr "" "potencia de dos entre ``16`` (2\\ :sup:`4`) y ``2_147_483_648`` (2\\ :sup:" "`31`), el valor predeterminado es ``4096`` (2\\ :sup:`12`)." -#: ../Doc/library/crypt.rst:147 +#: ../Doc/library/crypt.rst:148 msgid "Added the *rounds* parameter." msgstr "Se agregó el parámetro *rounds*." -#: ../Doc/library/crypt.rst:152 +#: ../Doc/library/crypt.rst:153 msgid "Examples" msgstr "Ejemplos" -#: ../Doc/library/crypt.rst:154 +#: ../Doc/library/crypt.rst:155 msgid "" "A simple example illustrating typical use (a constant-time comparison " "operation is needed to limit exposure to timing attacks. :func:`hmac." @@ -275,10 +278,23 @@ msgstr "" "comparación de tiempo constante para limitar la exposición a los ataques de " "tiempo. :func:`hmac.compare_digest` es adecuado para este propósito)::" -#: ../Doc/library/crypt.rst:174 +#: ../Doc/library/crypt.rst:175 msgid "" "To generate a hash of a password using the strongest available method and " "check it against the original::" msgstr "" "Para generar un hash de una contraseña utilizando el método más fuerte " "disponible y compararlo con el original::" + +#: ../Doc/library/crypt.rst:15 ../Doc/library/crypt.rst:33 +#: ../Doc/library/crypt.rst:119 +msgid "crypt(3)" +msgstr "" + +#: ../Doc/library/crypt.rst:15 +msgid "cipher" +msgstr "" + +#: ../Doc/library/crypt.rst:15 +msgid "DES" +msgstr "" diff --git a/library/crypto.po b/library/crypto.po index 8fb1dbce58..e9ca6b9c4b 100644 --- a/library/crypto.po +++ b/library/crypto.po @@ -1,24 +1,25 @@ # Copyright (C) 2001-2020, Python Software Foundation # This file is distributed under the same license as the Python package. # Maintained by the python-doc-es workteam. -# docs-es@python.org / https://mail.python.org/mailman3/lists/docs-es.python.org/ -# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get the list of volunteers +# docs-es@python.org / +# https://mail.python.org/mailman3/lists/docs-es.python.org/ +# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get +# the list of volunteers # msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-06 11:59-0400\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-01-13 13:31-0300\n" +"Last-Translator: Francisco Mora \n" +"Language: es\n" "Language-Team: python-doc-es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: Francisco Mora \n" -"Language: es\n" -"X-Generator: Poedit 2.4.1\n" -"X-Poedit-SourceCharset: UTF-8\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/crypto.rst:5 msgid "Cryptographic Services" @@ -35,3 +36,8 @@ msgstr "" "naturaleza criptográfica. Están disponibles a discreción de la instalación. " "En sistema Unix, el módulo :mod:`crypt` también puede estar disponible. Aquí " "una descripción:" + +#: ../Doc/library/crypto.rst:7 +#, fuzzy +msgid "cryptography" +msgstr "Servicios criptográficos" diff --git a/library/csv.po b/library/csv.po index dea9f41f86..3768f74e1e 100644 --- a/library/csv.po +++ b/library/csv.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-12 21:27-0300\n" "Last-Translator: Alfonso Areiza Guerra \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/csv.rst:2 msgid ":mod:`csv` --- CSV File Reading and Writing" @@ -144,7 +143,7 @@ msgstr "" "citados son transformados en flotantes)." #: ../Doc/library/csv.rst:75 ../Doc/library/csv.rst:105 -#: ../Doc/library/csv.rst:176 ../Doc/library/csv.rst:212 +#: ../Doc/library/csv.rst:178 ../Doc/library/csv.rst:216 msgid "A short usage example::" msgstr "Un pequeño ejemplo de uso::" @@ -280,15 +279,21 @@ msgstr "" "Todos los demás argumentos de palabra clave u opcionales son pasados a la " "instancia subyacente de :class:`reader`." -#: ../Doc/library/csv.rst:170 +#: ../Doc/library/csv.rst:170 ../Doc/library/csv.rst:214 +msgid "" +"If the argument passed to *fieldnames* is an iterator, it will be coerced to " +"a :class:`list`." +msgstr "" + +#: ../Doc/library/csv.rst:172 msgid "Returned rows are now of type :class:`OrderedDict`." msgstr "Las filas retornadas son ahora de tipo :class:`OrderedDict`." -#: ../Doc/library/csv.rst:173 +#: ../Doc/library/csv.rst:175 msgid "Returned rows are now of type :class:`dict`." msgstr "Las filas retornadas son ahora de tipo :class:`dict`." -#: ../Doc/library/csv.rst:194 +#: ../Doc/library/csv.rst:196 msgid "" "Create an object which operates like a regular writer but maps dictionaries " "onto output rows. The *fieldnames* parameter is a :mod:`sequence " @@ -317,7 +322,7 @@ msgstr "" "palabra clave u opcional es pasado a la instancia subyacente de :class:" "`reader`." -#: ../Doc/library/csv.rst:209 +#: ../Doc/library/csv.rst:211 msgid "" "Note that unlike the :class:`DictReader` class, the *fieldnames* parameter " "of the :class:`DictWriter` class is not optional." @@ -325,7 +330,7 @@ msgstr "" "Nótese que a diferencia de la clase :class:`DictReader`, el parámetro " "*fieldnames* de la clase :class:`DictWriter` no es opcional." -#: ../Doc/library/csv.rst:228 +#: ../Doc/library/csv.rst:232 msgid "" "The :class:`Dialect` class is a container class whose attributes contain " "information for how to handle doublequotes, whitespace, delimiters, etc. Due " @@ -340,7 +345,7 @@ msgstr "" "instancias de :class:`Dialect` definen cómo se comportan las instancias de :" "class:`reader` y :class:`writer`." -#: ../Doc/library/csv.rst:234 +#: ../Doc/library/csv.rst:238 msgid "" "All available :class:`Dialect` names are returned by :func:`list_dialects`, " "and they can be registered with specific :class:`reader` and :class:`writer` " @@ -351,7 +356,7 @@ msgstr "" "`reader` y :class:`writer` a través de sus funciones que inician " "(``__init__``) así::" -#: ../Doc/library/csv.rst:247 +#: ../Doc/library/csv.rst:251 msgid "" "The :class:`excel` class defines the usual properties of an Excel-generated " "CSV file. It is registered with the dialect name ``'excel'``." @@ -359,7 +364,7 @@ msgstr "" "La clase :class:`excel` define las propiedades usuales de un archivo CSV " "generado por Excel. Esta registrada con el nombre de dialecto ``'excel'``." -#: ../Doc/library/csv.rst:253 +#: ../Doc/library/csv.rst:257 msgid "" "The :class:`excel_tab` class defines the usual properties of an Excel-" "generated TAB-delimited file. It is registered with the dialect name " @@ -369,7 +374,7 @@ msgstr "" "delimitado por tabulaciones generado por Excel. Esta registrada con el " "nombre de dialecto ``'excel-tab'``." -#: ../Doc/library/csv.rst:259 +#: ../Doc/library/csv.rst:263 msgid "" "The :class:`unix_dialect` class defines the usual properties of a CSV file " "generated on UNIX systems, i.e. using ``'\\n'`` as line terminator and " @@ -380,16 +385,16 @@ msgstr "" "línea y citando todos los campos. Esta registrada con el nombre de dialecto " "``'unix'``." -#: ../Doc/library/csv.rst:268 +#: ../Doc/library/csv.rst:272 msgid "The :class:`Sniffer` class is used to deduce the format of a CSV file." msgstr "" "La clase :class:`Sniffer` es usada para deducir el formato de un archivo CSV." -#: ../Doc/library/csv.rst:270 +#: ../Doc/library/csv.rst:274 msgid "The :class:`Sniffer` class provides two methods:" msgstr "La clase :class:`Sniffer` provee 2 métodos:" -#: ../Doc/library/csv.rst:274 +#: ../Doc/library/csv.rst:278 msgid "" "Analyze the given *sample* and return a :class:`Dialect` subclass reflecting " "the parameters found. If the optional *delimiters* parameter is given, it " @@ -400,7 +405,7 @@ msgstr "" "este será interpretado como una cadena que contiene posibles caracteres " "delimitadores válidos." -#: ../Doc/library/csv.rst:282 +#: ../Doc/library/csv.rst:286 msgid "" "Analyze the sample text (presumed to be in CSV format) and return :const:" "`True` if the first row appears to be a series of column headers. Inspecting " @@ -412,11 +417,11 @@ msgstr "" "columna. Al inspeccionar cada columna, se considerará uno de dos criterios " "clave para estimar si la muestra contiene un encabezado:" -#: ../Doc/library/csv.rst:287 +#: ../Doc/library/csv.rst:291 msgid "the second through n-th rows contain numeric values" msgstr "las filas segunda n-th contienen valores numéricos" -#: ../Doc/library/csv.rst:288 +#: ../Doc/library/csv.rst:292 msgid "" "the second through n-th rows contain strings where at least one value's " "length differs from that of the putative header of that column." @@ -424,7 +429,7 @@ msgstr "" "las segundas filas n-th contienen cadenas en las que la longitud de al menos " "un valor difiere de la de la supuesta cabecera de esa columna." -#: ../Doc/library/csv.rst:291 +#: ../Doc/library/csv.rst:295 msgid "" "Twenty rows after the first row are sampled; if more than half of columns + " "rows meet the criteria, :const:`True` is returned." @@ -432,7 +437,7 @@ msgstr "" "Se muestran veinte filas después de la primera; si más de la mitad de las " "columnas + filas cumplen los criterios, se retorna :const:`True`." -#: ../Doc/library/csv.rst:296 +#: ../Doc/library/csv.rst:300 msgid "" "This method is a rough heuristic and may produce both false positives and " "negatives." @@ -440,19 +445,19 @@ msgstr "" "Este método es una heurística aproximada y puede producir tanto falsos " "positivos como negativos." -#: ../Doc/library/csv.rst:299 +#: ../Doc/library/csv.rst:303 msgid "An example for :class:`Sniffer` use::" msgstr "Un ejemplo para el uso de :class:`Sniffer`::" -#: ../Doc/library/csv.rst:308 +#: ../Doc/library/csv.rst:312 msgid "The :mod:`csv` module defines the following constants:" msgstr "El módulo :mod:`csv` define las siguientes constantes:" -#: ../Doc/library/csv.rst:312 +#: ../Doc/library/csv.rst:316 msgid "Instructs :class:`writer` objects to quote all fields." msgstr "Ordena a los objetos :class:`writer` citar todos los campos." -#: ../Doc/library/csv.rst:317 +#: ../Doc/library/csv.rst:321 msgid "" "Instructs :class:`writer` objects to only quote those fields which contain " "special characters such as *delimiter*, *quotechar* or any of the characters " @@ -462,17 +467,20 @@ msgstr "" "contengan caracteres especiales como por ejemplo *delimiter, *quotechar* o " "cualquiera de los caracteres en *lineterminator*." -#: ../Doc/library/csv.rst:324 +#: ../Doc/library/csv.rst:328 msgid "Instructs :class:`writer` objects to quote all non-numeric fields." msgstr "" "Ordena a los objetos :class:`writer` citar todos los campos no numéricos." -#: ../Doc/library/csv.rst:326 -msgid "Instructs the reader to convert all non-quoted fields to type *float*." +#: ../Doc/library/csv.rst:330 +#, fuzzy +msgid "" +"Instructs :class:`reader` objects to convert all non-quoted fields to type " +"*float*." msgstr "" "Ordena al *reader* a convertir todos los campos no citados al tipo *float*." -#: ../Doc/library/csv.rst:331 +#: ../Doc/library/csv.rst:335 msgid "" "Instructs :class:`writer` objects to never quote fields. When the current " "*delimiter* occurs in output data it is preceded by the current *escapechar* " @@ -485,27 +493,54 @@ msgstr "" "lanzará :exc:`Error` si cualquier carácter que requiere escaparse es " "encontrado." -#: ../Doc/library/csv.rst:336 +#: ../Doc/library/csv.rst:340 +#, fuzzy msgid "" -"Instructs :class:`reader` to perform no special processing of quote " +"Instructs :class:`reader` objects to perform no special processing of quote " "characters." msgstr "" "Ordena a :class:`reader` no ejecutar un procesamiento especial de caracteres " "citados." -#: ../Doc/library/csv.rst:338 +#: ../Doc/library/csv.rst:344 +msgid "" +"Instructs :class:`writer` objects to quote all fields which are not " +"``None``. This is similar to :data:`QUOTE_ALL`, except that if a field " +"value is ``None`` an empty (unquoted) string is written." +msgstr "" + +#: ../Doc/library/csv.rst:348 +msgid "" +"Instructs :class:`reader` objects to interpret an empty (unquoted) field as " +"None and to otherwise behave as :data:`QUOTE_ALL`." +msgstr "" + +#: ../Doc/library/csv.rst:353 +msgid "" +"Instructs :class:`writer` objects to always place quotes around fields which " +"are strings. This is similar to :data:`QUOTE_NONNUMERIC`, except that if a " +"field value is ``None`` an empty (unquoted) string is written." +msgstr "" + +#: ../Doc/library/csv.rst:357 +msgid "" +"Instructs :class:`reader` objects to interpret an empty (unquoted) string as " +"``None`` and to otherwise behave as :data:`QUOTE_NONNUMERIC`." +msgstr "" + +#: ../Doc/library/csv.rst:360 msgid "The :mod:`csv` module defines the following exception:" msgstr "El módulo :mod:`csv` define la siguiente excepción:" -#: ../Doc/library/csv.rst:343 +#: ../Doc/library/csv.rst:365 msgid "Raised by any of the functions when an error is detected." msgstr "Lanzada por cualquiera de las funciones cuando se detecta un error." -#: ../Doc/library/csv.rst:348 +#: ../Doc/library/csv.rst:370 msgid "Dialects and Formatting Parameters" msgstr "Dialectos y parámetros de formato" -#: ../Doc/library/csv.rst:350 +#: ../Doc/library/csv.rst:372 msgid "" "To make it easier to specify the format of input and output records, " "specific formatting parameters are grouped together into dialects. A " @@ -528,18 +563,18 @@ msgstr "" "con los mismos nombres que los atributos definidos debajo para la clase :" "class:`Dialect`." -#: ../Doc/library/csv.rst:360 +#: ../Doc/library/csv.rst:382 msgid "Dialects support the following attributes:" msgstr "Los dialectos soportan los siguientes atributos:" -#: ../Doc/library/csv.rst:365 +#: ../Doc/library/csv.rst:387 msgid "" "A one-character string used to separate fields. It defaults to ``','``." msgstr "" "Una cadena de un solo carácter usada para separar campos. Por defecto es " "``','``." -#: ../Doc/library/csv.rst:370 +#: ../Doc/library/csv.rst:392 msgid "" "Controls how instances of *quotechar* appearing inside a field should " "themselves be quoted. When :const:`True`, the character is doubled. When :" @@ -551,7 +586,7 @@ msgstr "" "Cuando es :const:`False`, el *escapechar* es usado como un prefijo el " "*quotechar*. Por defecto es :const:`True`." -#: ../Doc/library/csv.rst:375 +#: ../Doc/library/csv.rst:397 msgid "" "On output, if *doublequote* is :const:`False` and no *escapechar* is set, :" "exc:`Error` is raised if a *quotechar* is found in a field." @@ -560,7 +595,7 @@ msgstr "" "está configurado, un :exc:`Error` es lanzado si se encuentra un *quotechar* " "en algún campo." -#: ../Doc/library/csv.rst:381 +#: ../Doc/library/csv.rst:403 msgid "" "A one-character string used by the writer to escape the *delimiter* if " "*quoting* is set to :const:`QUOTE_NONE` and the *quotechar* if *doublequote* " @@ -574,11 +609,11 @@ msgstr "" "*escapechar* elimina cualquier significado especial del siguiente carácter. " "Por defecto es :const:`None`, lo que deshabilita el escape." -#: ../Doc/library/csv.rst:386 +#: ../Doc/library/csv.rst:408 msgid "An empty *escapechar* is not allowed." msgstr "No se permite un *quotechar* vacío." -#: ../Doc/library/csv.rst:391 +#: ../Doc/library/csv.rst:413 msgid "" "The string used to terminate lines produced by the :class:`writer`. It " "defaults to ``'\\r\\n'``." @@ -586,7 +621,7 @@ msgstr "" "La cadena de caracteres usada para terminar las líneas producidas por :class:" "`writer`. Por defecto es ``'\\r\\n'``." -#: ../Doc/library/csv.rst:396 +#: ../Doc/library/csv.rst:418 msgid "" "The :class:`reader` is hard-coded to recognise either ``'\\r'`` or ``'\\n'`` " "as end-of-line, and ignores *lineterminator*. This behavior may change in " @@ -596,7 +631,7 @@ msgstr "" "``'\\n'`` como final de línea, e ignora *lineterminator*. Este " "comportamiento puede cambiar en el futuro." -#: ../Doc/library/csv.rst:403 +#: ../Doc/library/csv.rst:425 msgid "" "A one-character string used to quote fields containing special characters, " "such as the *delimiter* or *quotechar*, or which contain new-line " @@ -606,11 +641,11 @@ msgstr "" "caracteres especiales, como lo son *delimiter* o *quotechar*, o que " "contienen caracteres de nueva línea. Por defecto es ``'\"'``." -#: ../Doc/library/csv.rst:407 +#: ../Doc/library/csv.rst:429 msgid "An empty *quotechar* is not allowed." msgstr "No se permite un *quotechar* vacío." -#: ../Doc/library/csv.rst:412 +#: ../Doc/library/csv.rst:434 msgid "" "Controls when quotes should be generated by the writer and recognised by the " "reader. It can take on any of the :const:`QUOTE_\\*` constants (see " @@ -621,7 +656,7 @@ msgstr "" "`QUOTE_\\*` (ver sección :ref:`csv-contents`) y por defecto es :const:" "`QUOTE_MINIMAL`." -#: ../Doc/library/csv.rst:419 +#: ../Doc/library/csv.rst:441 msgid "" "When :const:`True`, spaces immediately following the *delimiter* are " "ignored. The default is :const:`False`." @@ -629,7 +664,7 @@ msgstr "" "Cuando es :const:`True`, el espacio en blanco que sigue después del " "*delimiter* es ignorado. Por defecto es :const:`False`." -#: ../Doc/library/csv.rst:425 +#: ../Doc/library/csv.rst:447 msgid "" "When ``True``, raise exception :exc:`Error` on bad CSV input. The default is " "``False``." @@ -637,11 +672,11 @@ msgstr "" "Cuando es ``True``, lanza una excepción :exc:`Error` sobre una mala entrada " "CSV. Por defecto es ``False``." -#: ../Doc/library/csv.rst:429 +#: ../Doc/library/csv.rst:451 msgid "Reader Objects" msgstr "Objetos *Reader*" -#: ../Doc/library/csv.rst:431 +#: ../Doc/library/csv.rst:453 msgid "" "Reader objects (:class:`DictReader` instances and objects returned by the :" "func:`reader` function) have the following public methods:" @@ -649,7 +684,7 @@ msgstr "" "Los objetos *reader* (instancias de :class:`DictReader` y objetos retornados " "por la función :func:`reader`) contienen los siguientes métodos públicos:" -#: ../Doc/library/csv.rst:436 +#: ../Doc/library/csv.rst:458 msgid "" "Return the next row of the reader's iterable object as a list (if the object " "was returned from :func:`reader`) or a dict (if it is a :class:`DictReader` " @@ -661,15 +696,15 @@ msgstr "" "class:`DictReader`), analizado de acuerdo con el :class:`Dialect` actual. " "Por lo general, debería llamar a esto como ``next(reader)``." -#: ../Doc/library/csv.rst:442 +#: ../Doc/library/csv.rst:464 msgid "Reader objects have the following public attributes:" msgstr "Los objetos *reader* contienen los siguientes atributos públicos:" -#: ../Doc/library/csv.rst:446 +#: ../Doc/library/csv.rst:468 msgid "A read-only description of the dialect in use by the parser." msgstr "Una descripción de sólo lectura del dialecto en uso por el intérprete." -#: ../Doc/library/csv.rst:451 +#: ../Doc/library/csv.rst:473 msgid "" "The number of lines read from the source iterator. This is not the same as " "the number of records returned, as records can span multiple lines." @@ -678,11 +713,11 @@ msgstr "" "número de registros retornado, ya que los registros pueden abarcar múltiples " "líneas." -#: ../Doc/library/csv.rst:455 +#: ../Doc/library/csv.rst:477 msgid "DictReader objects have the following public attribute:" msgstr "Los objetos *DictReader* tienen los siguientes atributos públicos:" -#: ../Doc/library/csv.rst:459 +#: ../Doc/library/csv.rst:481 msgid "" "If not passed as a parameter when creating the object, this attribute is " "initialized upon first access or when the first record is read from the file." @@ -691,11 +726,11 @@ msgstr "" "inicializado en el primer acceso o cuando es leído el primer registro del " "archivo." -#: ../Doc/library/csv.rst:466 +#: ../Doc/library/csv.rst:488 msgid "Writer Objects" msgstr "Objetos *Writer*" -#: ../Doc/library/csv.rst:468 +#: ../Doc/library/csv.rst:490 msgid "" ":class:`Writer` objects (:class:`DictWriter` instances and objects returned " "by the :func:`writer` function) have the following public methods. A *row* " @@ -715,7 +750,7 @@ msgstr "" "rodeados de paréntesis. Esto puede causar algunos problemas para otros " "programas que leen archivos CSV (asumiendo que soportan números complejos)." -#: ../Doc/library/csv.rst:479 +#: ../Doc/library/csv.rst:501 msgid "" "Write the *row* parameter to the writer's file object, formatted according " "to the current :class:`Dialect`. Return the return value of the call to the " @@ -725,11 +760,11 @@ msgstr "" "de acuerdo con el :class:`Dialect` actual. Retorna el valor de retorno de la " "llamada al método *write* del objeto de archivo subyacente." -#: ../Doc/library/csv.rst:483 +#: ../Doc/library/csv.rst:505 msgid "Added support of arbitrary iterables." msgstr "Agregado soporte para iterables." -#: ../Doc/library/csv.rst:488 +#: ../Doc/library/csv.rst:510 msgid "" "Write all elements in *rows* (an iterable of *row* objects as described " "above) to the writer's file object, formatted according to the current " @@ -739,19 +774,19 @@ msgstr "" "describe anteriormente) al objeto de archivo del *writer*, formateados según " "el dialecto actual." -#: ../Doc/library/csv.rst:492 +#: ../Doc/library/csv.rst:514 msgid "Writer objects have the following public attribute:" msgstr "Los objetos *writer* contienen los siguientes atributos públicos:" -#: ../Doc/library/csv.rst:497 +#: ../Doc/library/csv.rst:519 msgid "A read-only description of the dialect in use by the writer." msgstr "Una descripción de solo lectura del dialecto en uso por el *writer*." -#: ../Doc/library/csv.rst:500 +#: ../Doc/library/csv.rst:522 msgid "DictWriter objects have the following public method:" msgstr "Los objetos *DictWriter* contienen los siguientes métodos públicos:" -#: ../Doc/library/csv.rst:505 +#: ../Doc/library/csv.rst:527 msgid "" "Write a row with the field names (as specified in the constructor) to the " "writer's file object, formatted according to the current dialect. Return the " @@ -762,7 +797,7 @@ msgstr "" "actual. Retorna el valor de retorno de la llamada a :meth:`csvwriter." "writerow` usada internamente." -#: ../Doc/library/csv.rst:510 +#: ../Doc/library/csv.rst:532 msgid "" ":meth:`writeheader` now also returns the value returned by the :meth:" "`csvwriter.writerow` method it uses internally." @@ -770,23 +805,23 @@ msgstr "" ":meth:`writeheader` ahora también retorna el valor retornado por el método :" "meth:`csvwriter.writerow` que usa internamente." -#: ../Doc/library/csv.rst:518 +#: ../Doc/library/csv.rst:540 msgid "Examples" msgstr "Ejemplos" -#: ../Doc/library/csv.rst:520 +#: ../Doc/library/csv.rst:542 msgid "The simplest example of reading a CSV file::" msgstr "El ejemplo más simple de lectura de un archivo CSV::" -#: ../Doc/library/csv.rst:528 +#: ../Doc/library/csv.rst:550 msgid "Reading a file with an alternate format::" msgstr "Lectura de un archivo con un formato alternativo::" -#: ../Doc/library/csv.rst:536 +#: ../Doc/library/csv.rst:558 msgid "The corresponding simplest possible writing example is::" msgstr "El correspondiente ejemplo de escritura más simple es::" -#: ../Doc/library/csv.rst:543 +#: ../Doc/library/csv.rst:565 msgid "" "Since :func:`open` is used to open a CSV file for reading, the file will by " "default be decoded into unicode using the system default encoding (see :func:" @@ -799,7 +834,7 @@ msgstr "" "decodificar un archivo usando una codificación diferente, usa el argumento " "``encoding`` de open::" -#: ../Doc/library/csv.rst:554 +#: ../Doc/library/csv.rst:576 msgid "" "The same applies to writing in something other than the system default " "encoding: specify the encoding argument when opening the output file." @@ -808,11 +843,11 @@ msgstr "" "del sistema: especifique el argumento de codificación cuando abra el archivo " "de salida." -#: ../Doc/library/csv.rst:557 +#: ../Doc/library/csv.rst:579 msgid "Registering a new dialect::" msgstr "Registrando un nuevo dialecto::" -#: ../Doc/library/csv.rst:564 +#: ../Doc/library/csv.rst:586 msgid "" "A slightly more advanced use of the reader --- catching and reporting " "errors::" @@ -820,7 +855,7 @@ msgstr "" "Un uso ligeramente más avanzado del *reader* --- captura y reporte de " "errores::" -#: ../Doc/library/csv.rst:576 +#: ../Doc/library/csv.rst:598 msgid "" "And while the module doesn't directly support parsing strings, it can easily " "be done::" @@ -828,11 +863,11 @@ msgstr "" "Y a pesar de que el módulo no soporta el análisis de cadenas de caracteres " "directamente, puede ser realizado fácilmente::" -#: ../Doc/library/csv.rst:585 +#: ../Doc/library/csv.rst:607 msgid "Footnotes" msgstr "Notas al pie" -#: ../Doc/library/csv.rst:586 +#: ../Doc/library/csv.rst:608 msgid "" "If ``newline=''`` is not specified, newlines embedded inside quoted fields " "will not be interpreted correctly, and on platforms that use ``\\r\\n`` " @@ -846,3 +881,23 @@ msgstr "" "Siempre debería ser seguro especificar ``newline=''``, ya que el módulo csv " "realiza su propio manejo de nuevas líneas (:term:`universal `)." + +#: ../Doc/library/csv.rst:11 +msgid "csv" +msgstr "" + +#: ../Doc/library/csv.rst:11 +msgid "data" +msgstr "" + +#: ../Doc/library/csv.rst:11 +msgid "tabular" +msgstr "" + +#: ../Doc/library/csv.rst:53 +msgid "universal newlines" +msgstr "" + +#: ../Doc/library/csv.rst:53 +msgid "csv.reader function" +msgstr "" diff --git a/library/ctypes.po b/library/ctypes.po index f2958601b4..79d558c9f8 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -10,22 +10,26 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-07 16:58+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/ctypes.rst:2 msgid ":mod:`ctypes` --- A foreign function library for Python" msgstr ":mod:`ctypes` --- Una biblioteca de funciones foráneas para Python" -#: ../Doc/library/ctypes.rst:11 +#: ../Doc/library/ctypes.rst:9 +msgid "**Source code:** :source:`Lib/ctypes`" +msgstr "" + +#: ../Doc/library/ctypes.rst:13 msgid "" ":mod:`ctypes` is a foreign function library for Python. It provides C " "compatible data types, and allows calling functions in DLLs or shared " @@ -36,11 +40,11 @@ msgstr "" "archivos DLL o bibliotecas compartidas. Se puede utilizar para envolver " "estas bibliotecas en Python puro." -#: ../Doc/library/ctypes.rst:19 +#: ../Doc/library/ctypes.rst:21 msgid "ctypes tutorial" msgstr "tutorial de ctypes" -#: ../Doc/library/ctypes.rst:21 +#: ../Doc/library/ctypes.rst:23 msgid "" "Note: The code samples in this tutorial use :mod:`doctest` to make sure that " "they actually work. Since some code samples behave differently under Linux, " @@ -51,7 +55,7 @@ msgstr "" "se comportan de manera diferente en Linux, Windows o macOS, contienen " "directivas doctest en los comentarios." -#: ../Doc/library/ctypes.rst:25 +#: ../Doc/library/ctypes.rst:27 msgid "" "Note: Some code samples reference the ctypes :class:`c_int` type. On " "platforms where ``sizeof(long) == sizeof(int)`` it is an alias to :class:" @@ -64,11 +68,11 @@ msgstr "" "`c_long` se imprime si espera :class:`c_int` --- son en realidad del mismo " "tipo." -#: ../Doc/library/ctypes.rst:33 +#: ../Doc/library/ctypes.rst:35 msgid "Loading dynamic link libraries" msgstr "Carga de bibliotecas de enlaces dinámicos" -#: ../Doc/library/ctypes.rst:35 +#: ../Doc/library/ctypes.rst:37 msgid "" ":mod:`ctypes` exports the *cdll*, and on Windows *windll* and *oledll* " "objects, for loading dynamic link libraries." @@ -76,15 +80,16 @@ msgstr "" ":mod:`ctypes` exporta los objetos *cdll* y en Windows *windll* y *oledll*, " "para cargar bibliotecas de enlaces dinámicos." -#: ../Doc/library/ctypes.rst:38 +#: ../Doc/library/ctypes.rst:40 +#, fuzzy msgid "" "You load libraries by accessing them as attributes of these objects. *cdll* " "loads libraries which export functions using the standard ``cdecl`` calling " "convention, while *windll* libraries call functions using the ``stdcall`` " "calling convention. *oledll* also uses the ``stdcall`` calling convention, " -"and assumes the functions return a Windows :c:type:`HRESULT` error code. The " -"error code is used to automatically raise an :class:`OSError` exception when " -"the function call fails." +"and assumes the functions return a Windows :c:type:`!HRESULT` error code. " +"The error code is used to automatically raise an :class:`OSError` exception " +"when the function call fails." msgstr "" "Las bibliotecas se cargan accediendo a ellas como atributos de estos " "objetos. *cdll* carga bibliotecas que exportan funciones utilizando la " @@ -95,7 +100,7 @@ msgstr "" "código de error se utiliza para generar automáticamente una excepción :class:" "`OSError` cuando se produce un error en la llamada a la función." -#: ../Doc/library/ctypes.rst:46 +#: ../Doc/library/ctypes.rst:48 msgid "" "Windows errors used to raise :exc:`WindowsError`, which is now an alias of :" "exc:`OSError`." @@ -103,7 +108,7 @@ msgstr "" "Los errores de Windows solían generar :exc:`WindowsError`, que ahora es un " "alias de :exc:`OSError`." -#: ../Doc/library/ctypes.rst:51 +#: ../Doc/library/ctypes.rst:53 msgid "" "Here are some examples for Windows. Note that ``msvcrt`` is the MS standard " "C library containing most standard C functions, and uses the cdecl calling " @@ -113,11 +118,11 @@ msgstr "" "la biblioteca estándar de MS C que contiene la mayoría de las funciones C " "estándar y utiliza la convención de llamada cdecl::" -#: ../Doc/library/ctypes.rst:63 +#: ../Doc/library/ctypes.rst:65 msgid "Windows appends the usual ``.dll`` file suffix automatically." msgstr "Windows agrega automáticamente la extensión común ``.dll``." -#: ../Doc/library/ctypes.rst:66 +#: ../Doc/library/ctypes.rst:68 msgid "" "Accessing the standard C library through ``cdll.msvcrt`` will use an " "outdated version of the library that may be incompatible with the one being " @@ -129,13 +134,14 @@ msgstr "" "utilizada por Python. Cuando sea posible, use la funcionalidad nativa de " "Python, o bien importe y use el módulo ``msvcrt``." -#: ../Doc/library/ctypes.rst:71 +#: ../Doc/library/ctypes.rst:73 +#, fuzzy msgid "" "On Linux, it is required to specify the filename *including* the extension " "to load a library, so attribute access can not be used to load libraries. " -"Either the :meth:`LoadLibrary` method of the dll loaders should be used, or " -"you should load the library by creating an instance of CDLL by calling the " -"constructor::" +"Either the :meth:`~LibraryLoader.LoadLibrary` method of the dll loaders " +"should be used, or you should load the library by creating an instance of " +"CDLL by calling the constructor::" msgstr "" "En Linux, se requiere especificar el nombre de archivo *incluyendo* la " "extensión para cargar una biblioteca, por lo que no se puede utilizar el " @@ -143,15 +149,15 @@ msgstr "" "meth:`LoadLibrary` de los cargadores de dll, o se debe cargar la biblioteca " "creando una instancia de CDLL llamando al constructor::" -#: ../Doc/library/ctypes.rst:89 +#: ../Doc/library/ctypes.rst:92 msgid "Accessing functions from loaded dlls" msgstr "Acceder a las funciones de los dll cargados" -#: ../Doc/library/ctypes.rst:91 +#: ../Doc/library/ctypes.rst:94 msgid "Functions are accessed as attributes of dll objects::" msgstr "Las funciones se acceden como atributos de los objetos dll::" -#: ../Doc/library/ctypes.rst:106 +#: ../Doc/library/ctypes.rst:109 msgid "" "Note that win32 system dlls like ``kernel32`` and ``user32`` often export " "ANSI as well as UNICODE versions of a function. The UNICODE version is " @@ -169,7 +175,7 @@ msgstr "" "tiene el siguiente prototipo de C, y se usa una macro para exponer uno de " "ellos como ``GetModuleHandle`` dependiendo de si UNICODE está definido o no::" -#: ../Doc/library/ctypes.rst:119 +#: ../Doc/library/ctypes.rst:122 msgid "" "*windll* does not try to select one of them by magic, you must access the " "version you need by specifying ``GetModuleHandleA`` or ``GetModuleHandleW`` " @@ -180,7 +186,7 @@ msgstr "" "``GetModuleHandleW`` explícitamente, y luego llamarlo con bytes u objetos de " "cadena respectivamente." -#: ../Doc/library/ctypes.rst:123 +#: ../Doc/library/ctypes.rst:126 msgid "" "Sometimes, dlls export functions with names which aren't valid Python " "identifiers, like ``\"??2@YAPAXI@Z\"``. In this case you have to use :func:" @@ -190,7 +196,7 @@ msgstr "" "válidos de Python, como ``\"??2@YAPAXI@Z\"``. En este caso tienes que usar :" "func:`getattr` para recuperar la función::" -#: ../Doc/library/ctypes.rst:131 +#: ../Doc/library/ctypes.rst:134 msgid "" "On Windows, some dlls export functions not by name but by ordinal. These " "functions can be accessed by indexing the dll object with the ordinal " @@ -200,31 +206,30 @@ msgstr "" "Se pueden acceder a estas funciones indexando el objeto dll con el número " "ordinal::" -#: ../Doc/library/ctypes.rst:148 +#: ../Doc/library/ctypes.rst:151 msgid "Calling functions" msgstr "Funciones de llamada" -#: ../Doc/library/ctypes.rst:150 +#: ../Doc/library/ctypes.rst:153 +#, fuzzy msgid "" "You can call these functions like any other Python callable. This example " -"uses the ``time()`` function, which returns system time in seconds since the " -"Unix epoch, and the ``GetModuleHandleA()`` function, which returns a win32 " -"module handle." +"uses the ``rand()`` function, which takes no arguments and returns a pseudo-" +"random integer::" msgstr "" "Puedes llamar a estas funciones como cualquier otra función en Python. Este " "ejemplo utiliza la función ``time()``, que retorna el tiempo del sistema en " "segundos desde la época de Unix, y la función ``GetModuleHandleA()``, que " "retorna un manejador de módulo de win32." -#: ../Doc/library/ctypes.rst:155 +#: ../Doc/library/ctypes.rst:159 msgid "" -"This example calls both functions with a ``NULL`` pointer (``None`` should " -"be used as the ``NULL`` pointer)::" +"On Windows, you can call the ``GetModuleHandleA()`` function, which returns " +"a win32 module handle (passing ``None`` as single argument to call it with a " +"``NULL`` pointer)::" msgstr "" -"Este ejemplo llama a ambas funciones con un puntero ``NULL`` (``None`` debe " -"ser usado como el puntero ``NULL``)::" -#: ../Doc/library/ctypes.rst:164 +#: ../Doc/library/ctypes.rst:166 msgid "" ":exc:`ValueError` is raised when you call an ``stdcall`` function with the " "``cdecl`` calling convention, or vice versa::" @@ -232,7 +237,7 @@ msgstr "" ":exc:`ValueError` es lanzado cuando se llama a una función ``stdcall`` con " "la convención de llamada ``cdecl``, o viceversa::" -#: ../Doc/library/ctypes.rst:179 +#: ../Doc/library/ctypes.rst:181 msgid "" "To find out the correct calling convention you have to look into the C " "header file or the documentation for the function you want to call." @@ -240,7 +245,7 @@ msgstr "" "Para saber la convención de llamada correcta, hay que mirar en el archivo de " "encabezado C o en la documentación de la función que se quiere llamar." -#: ../Doc/library/ctypes.rst:182 +#: ../Doc/library/ctypes.rst:184 msgid "" "On Windows, :mod:`ctypes` uses win32 structured exception handling to " "prevent crashes from general protection faults when functions are called " @@ -250,7 +255,7 @@ msgstr "" "win32 para evitar que se produzcan fallos de protección general cuando se " "llaman funciones con valores de argumento inválidos::" -#: ../Doc/library/ctypes.rst:192 +#: ../Doc/library/ctypes.rst:194 msgid "" "There are, however, enough ways to crash Python with :mod:`ctypes`, so you " "should be careful anyway. The :mod:`faulthandler` module can be helpful in " @@ -262,7 +267,7 @@ msgstr "" "puede ser útil para depurar bloqueos (por ejemplo, provenientes de fallos de " "segmentación producidos por llamadas erróneas a la biblioteca C)." -#: ../Doc/library/ctypes.rst:197 +#: ../Doc/library/ctypes.rst:199 msgid "" "``None``, integers, bytes objects and (unicode) strings are the only native " "Python objects that can directly be used as parameters in these function " @@ -280,7 +285,7 @@ msgstr "" "Python se pasan como el tipo C :c:expr:`int` predeterminado de la " "plataforma, su valor se enmascara para encajar en el tipo C." -#: ../Doc/library/ctypes.rst:204 +#: ../Doc/library/ctypes.rst:206 msgid "" "Before we move on calling functions with other parameter types, we have to " "learn more about :mod:`ctypes` data types." @@ -288,235 +293,249 @@ msgstr "" "Antes de pasar a llamar funciones con otros tipos de parámetros, tenemos que " "aprender más sobre los tipos de datos :mod:`ctypes`." -#: ../Doc/library/ctypes.rst:211 ../Doc/library/ctypes.rst:2137 +#: ../Doc/library/ctypes.rst:213 ../Doc/library/ctypes.rst:2201 msgid "Fundamental data types" msgstr "Tipos de datos fundamentales" -#: ../Doc/library/ctypes.rst:213 +#: ../Doc/library/ctypes.rst:215 msgid ":mod:`ctypes` defines a number of primitive C compatible data types:" msgstr "" ":mod:`ctypes` define un número de tipos de datos primitivos compatibles con " "C:" -#: ../Doc/library/ctypes.rst:216 +#: ../Doc/library/ctypes.rst:218 msgid "ctypes type" msgstr "tipo ctypes" -#: ../Doc/library/ctypes.rst:216 +#: ../Doc/library/ctypes.rst:218 msgid "C type" msgstr "Tipo C" -#: ../Doc/library/ctypes.rst:216 +#: ../Doc/library/ctypes.rst:218 msgid "Python type" msgstr "Tipo Python" -#: ../Doc/library/ctypes.rst:218 +#: ../Doc/library/ctypes.rst:220 msgid ":class:`c_bool`" msgstr ":class:`c_bool`" -#: ../Doc/library/ctypes.rst:218 +#: ../Doc/library/ctypes.rst:220 msgid ":c:expr:`_Bool`" msgstr ":c:expr:`_Bool`" -#: ../Doc/library/ctypes.rst:218 +#: ../Doc/library/ctypes.rst:220 msgid "bool (1)" msgstr "bool (1)" -#: ../Doc/library/ctypes.rst:220 +#: ../Doc/library/ctypes.rst:222 msgid ":class:`c_char`" msgstr ":class:`c_char`" -#: ../Doc/library/ctypes.rst:220 ../Doc/library/ctypes.rst:224 +#: ../Doc/library/ctypes.rst:222 ../Doc/library/ctypes.rst:226 msgid ":c:expr:`char`" msgstr ":c:expr:`char`" -#: ../Doc/library/ctypes.rst:220 +#: ../Doc/library/ctypes.rst:222 msgid "1-character bytes object" msgstr "Un objeto bytes de 1-caracter" -#: ../Doc/library/ctypes.rst:222 +#: ../Doc/library/ctypes.rst:224 msgid ":class:`c_wchar`" msgstr ":class:`c_wchar`" -#: ../Doc/library/ctypes.rst:222 -msgid ":c:expr:`wchar_t`" +#: ../Doc/library/ctypes.rst:224 +#, fuzzy +msgid ":c:type:`wchar_t`" msgstr ":c:expr:`wchar_t`" -#: ../Doc/library/ctypes.rst:222 +#: ../Doc/library/ctypes.rst:224 msgid "1-character string" msgstr "Una cadena de 1-caracter" -#: ../Doc/library/ctypes.rst:224 +#: ../Doc/library/ctypes.rst:226 msgid ":class:`c_byte`" msgstr ":class:`c_byte`" -#: ../Doc/library/ctypes.rst:224 ../Doc/library/ctypes.rst:226 -#: ../Doc/library/ctypes.rst:228 ../Doc/library/ctypes.rst:230 -#: ../Doc/library/ctypes.rst:232 ../Doc/library/ctypes.rst:234 -#: ../Doc/library/ctypes.rst:236 ../Doc/library/ctypes.rst:238 -#: ../Doc/library/ctypes.rst:240 ../Doc/library/ctypes.rst:242 -#: ../Doc/library/ctypes.rst:245 ../Doc/library/ctypes.rst:247 +#: ../Doc/library/ctypes.rst:226 ../Doc/library/ctypes.rst:228 +#: ../Doc/library/ctypes.rst:230 ../Doc/library/ctypes.rst:232 +#: ../Doc/library/ctypes.rst:234 ../Doc/library/ctypes.rst:236 +#: ../Doc/library/ctypes.rst:238 ../Doc/library/ctypes.rst:240 +#: ../Doc/library/ctypes.rst:242 ../Doc/library/ctypes.rst:244 +#: ../Doc/library/ctypes.rst:247 ../Doc/library/ctypes.rst:249 +#: ../Doc/library/ctypes.rst:252 msgid "int" msgstr "entero" -#: ../Doc/library/ctypes.rst:226 +#: ../Doc/library/ctypes.rst:228 msgid ":class:`c_ubyte`" msgstr ":class:`c_ubyte`" -#: ../Doc/library/ctypes.rst:226 +#: ../Doc/library/ctypes.rst:228 msgid ":c:expr:`unsigned char`" msgstr ":c:expr:`unsigned char`" -#: ../Doc/library/ctypes.rst:228 +#: ../Doc/library/ctypes.rst:230 msgid ":class:`c_short`" msgstr ":class:`c_short`" -#: ../Doc/library/ctypes.rst:228 +#: ../Doc/library/ctypes.rst:230 msgid ":c:expr:`short`" msgstr ":c:expr:`short`" -#: ../Doc/library/ctypes.rst:230 +#: ../Doc/library/ctypes.rst:232 msgid ":class:`c_ushort`" msgstr ":class:`c_ushort`" -#: ../Doc/library/ctypes.rst:230 +#: ../Doc/library/ctypes.rst:232 msgid ":c:expr:`unsigned short`" msgstr ":c:expr:`unsigned short`" -#: ../Doc/library/ctypes.rst:232 +#: ../Doc/library/ctypes.rst:234 msgid ":class:`c_int`" msgstr ":class:`c_int`" -#: ../Doc/library/ctypes.rst:232 +#: ../Doc/library/ctypes.rst:234 msgid ":c:expr:`int`" msgstr ":c:expr:`int`" -#: ../Doc/library/ctypes.rst:234 +#: ../Doc/library/ctypes.rst:236 msgid ":class:`c_uint`" msgstr ":class:`c_uint`" -#: ../Doc/library/ctypes.rst:234 +#: ../Doc/library/ctypes.rst:236 msgid ":c:expr:`unsigned int`" msgstr ":c:expr:`unsigned int`" -#: ../Doc/library/ctypes.rst:236 +#: ../Doc/library/ctypes.rst:238 msgid ":class:`c_long`" msgstr ":class:`c_long`" -#: ../Doc/library/ctypes.rst:236 +#: ../Doc/library/ctypes.rst:238 msgid ":c:expr:`long`" msgstr ":c:expr:`long`" -#: ../Doc/library/ctypes.rst:238 +#: ../Doc/library/ctypes.rst:240 msgid ":class:`c_ulong`" msgstr ":class:`c_ulong`" -#: ../Doc/library/ctypes.rst:238 +#: ../Doc/library/ctypes.rst:240 msgid ":c:expr:`unsigned long`" msgstr ":c:expr:`unsigned long`" -#: ../Doc/library/ctypes.rst:240 +#: ../Doc/library/ctypes.rst:242 msgid ":class:`c_longlong`" msgstr ":class:`c_longlong`" -#: ../Doc/library/ctypes.rst:240 +#: ../Doc/library/ctypes.rst:242 msgid ":c:expr:`__int64` or :c:expr:`long long`" msgstr ":c:expr:`__int64` o :c:expr:`long long`" -#: ../Doc/library/ctypes.rst:242 +#: ../Doc/library/ctypes.rst:244 msgid ":class:`c_ulonglong`" msgstr ":class:`c_ulonglong`" -#: ../Doc/library/ctypes.rst:242 +#: ../Doc/library/ctypes.rst:244 msgid ":c:expr:`unsigned __int64` or :c:expr:`unsigned long long`" msgstr ":c:expr:`unsigned __int64` o :c:expr:`unsigned long long`" -#: ../Doc/library/ctypes.rst:245 +#: ../Doc/library/ctypes.rst:247 msgid ":class:`c_size_t`" msgstr ":class:`c_size_t`" -#: ../Doc/library/ctypes.rst:245 -msgid ":c:expr:`size_t`" +#: ../Doc/library/ctypes.rst:247 +#, fuzzy +msgid ":c:type:`size_t`" msgstr ":c:expr:`size_t`" -#: ../Doc/library/ctypes.rst:247 +#: ../Doc/library/ctypes.rst:249 msgid ":class:`c_ssize_t`" msgstr ":class:`c_ssize_t`" -#: ../Doc/library/ctypes.rst:247 -msgid ":c:expr:`ssize_t` or :c:expr:`Py_ssize_t`" +#: ../Doc/library/ctypes.rst:249 +#, fuzzy +msgid ":c:type:`ssize_t` or :c:expr:`Py_ssize_t`" msgstr ":c:expr:`ssize_t` o :c:expr:`Py_ssize_t`" -#: ../Doc/library/ctypes.rst:250 +#: ../Doc/library/ctypes.rst:252 +#, fuzzy +msgid ":class:`c_time_t`" +msgstr ":class:`c_size_t`" + +#: ../Doc/library/ctypes.rst:252 +#, fuzzy +msgid ":c:type:`time_t`" +msgstr ":c:expr:`size_t`" + +#: ../Doc/library/ctypes.rst:254 msgid ":class:`c_float`" msgstr ":class:`c_float`" -#: ../Doc/library/ctypes.rst:250 +#: ../Doc/library/ctypes.rst:254 msgid ":c:expr:`float`" msgstr ":c:expr:`float`" -#: ../Doc/library/ctypes.rst:250 ../Doc/library/ctypes.rst:252 -#: ../Doc/library/ctypes.rst:254 +#: ../Doc/library/ctypes.rst:254 ../Doc/library/ctypes.rst:256 +#: ../Doc/library/ctypes.rst:258 msgid "float" msgstr "flotante" -#: ../Doc/library/ctypes.rst:252 +#: ../Doc/library/ctypes.rst:256 msgid ":class:`c_double`" msgstr ":class:`c_double`" -#: ../Doc/library/ctypes.rst:252 +#: ../Doc/library/ctypes.rst:256 msgid ":c:expr:`double`" msgstr ":c:expr:`double`" -#: ../Doc/library/ctypes.rst:254 +#: ../Doc/library/ctypes.rst:258 msgid ":class:`c_longdouble`" msgstr ":class:`c_longdouble`" -#: ../Doc/library/ctypes.rst:254 +#: ../Doc/library/ctypes.rst:258 msgid ":c:expr:`long double`" msgstr ":c:expr:`long double`" -#: ../Doc/library/ctypes.rst:256 +#: ../Doc/library/ctypes.rst:260 msgid ":class:`c_char_p`" msgstr ":class:`c_char_p`" -#: ../Doc/library/ctypes.rst:256 +#: ../Doc/library/ctypes.rst:260 msgid ":c:expr:`char *` (NUL terminated)" msgstr ":c:expr:`char *` (terminado en NUL)" -#: ../Doc/library/ctypes.rst:256 +#: ../Doc/library/ctypes.rst:260 msgid "bytes object or ``None``" msgstr "objeto de bytes o ``None``" -#: ../Doc/library/ctypes.rst:258 +#: ../Doc/library/ctypes.rst:262 msgid ":class:`c_wchar_p`" msgstr ":class:`c_wchar_p`" -#: ../Doc/library/ctypes.rst:258 +#: ../Doc/library/ctypes.rst:262 msgid ":c:expr:`wchar_t *` (NUL terminated)" msgstr ":c:expr:`wchar_t *` (terminado en NUL)" -#: ../Doc/library/ctypes.rst:258 +#: ../Doc/library/ctypes.rst:262 msgid "string or ``None``" msgstr "cadena o ``None``" -#: ../Doc/library/ctypes.rst:260 +#: ../Doc/library/ctypes.rst:264 msgid ":class:`c_void_p`" msgstr ":class:`c_void_p`" -#: ../Doc/library/ctypes.rst:260 +#: ../Doc/library/ctypes.rst:264 msgid ":c:expr:`void *`" msgstr ":c:expr:`void *`" -#: ../Doc/library/ctypes.rst:260 +#: ../Doc/library/ctypes.rst:264 msgid "int or ``None``" msgstr "entero o ``None``" -#: ../Doc/library/ctypes.rst:264 +#: ../Doc/library/ctypes.rst:268 msgid "The constructor accepts any object with a truth value." msgstr "El constructor acepta cualquier objeto con valor verdadero." -#: ../Doc/library/ctypes.rst:266 +#: ../Doc/library/ctypes.rst:270 msgid "" "All these types can be created by calling them with an optional initializer " "of the correct type and value::" @@ -524,14 +543,14 @@ msgstr "" "Todos estos tipos pueden ser creados llamándolos con un inicializador " "opcional del tipo y valor correctos::" -#: ../Doc/library/ctypes.rst:277 +#: ../Doc/library/ctypes.rst:281 msgid "" "Since these types are mutable, their value can also be changed afterwards::" msgstr "" "Dado que estos tipos son mutables, su valor también puede ser cambiado " "después::" -#: ../Doc/library/ctypes.rst:289 +#: ../Doc/library/ctypes.rst:293 msgid "" "Assigning a new value to instances of the pointer types :class:`c_char_p`, :" "class:`c_wchar_p`, and :class:`c_void_p` changes the *memory location* they " @@ -543,7 +562,7 @@ msgstr "" "memoria* al que apuntan, *no el contenido* del bloque de memoria (por " "supuesto que no, porque los objetos de bytes de Python son inmutables)::" -#: ../Doc/library/ctypes.rst:309 +#: ../Doc/library/ctypes.rst:313 msgid "" "You should be careful, however, not to pass them to functions expecting " "pointers to mutable memory. If you need mutable memory blocks, ctypes has a :" @@ -559,11 +578,12 @@ msgstr "" "cambiado) con la propiedad ``raw``; si quieres acceder a él como cadena " "terminada NUL, usa la propiedad ``value``::" -#: ../Doc/library/ctypes.rst:333 +#: ../Doc/library/ctypes.rst:337 +#, fuzzy msgid "" -"The :func:`create_string_buffer` function replaces the old :func:`c_buffer` " +"The :func:`create_string_buffer` function replaces the old :func:`!c_buffer` " "function (which is still available as an alias). To create a mutable memory " -"block containing unicode characters of the C type :c:expr:`wchar_t`, use " +"block containing unicode characters of the C type :c:type:`wchar_t`, use " "the :func:`create_unicode_buffer` function." msgstr "" "La función :func:`create_string_buffer` reemplaza la antigua función :func:" @@ -571,11 +591,11 @@ msgstr "" "memoria mutable que contenga caracteres Unicode del tipo C :c:expr:" "`wchar_t`, use la función :func:`create_unicode_buffer`." -#: ../Doc/library/ctypes.rst:342 +#: ../Doc/library/ctypes.rst:346 msgid "Calling functions, continued" msgstr "Funciones de llamada, continuación" -#: ../Doc/library/ctypes.rst:344 +#: ../Doc/library/ctypes.rst:348 msgid "" "Note that printf prints to the real standard output channel, *not* to :data:" "`sys.stdout`, so these examples will only work at the console prompt, not " @@ -585,7 +605,7 @@ msgstr "" "stdout`, por lo que estos ejemplos sólo funcionarán en el prompt de la " "consola, no desde dentro de *IDLE* o *PythonWin*::" -#: ../Doc/library/ctypes.rst:364 +#: ../Doc/library/ctypes.rst:368 msgid "" "As has been mentioned before, all Python types except integers, strings, and " "bytes objects have to be wrapped in their corresponding :mod:`ctypes` type, " @@ -596,16 +616,44 @@ msgstr "" "tipo :mod:`ctypes`, para que puedan ser convertidos al tipo de datos C " "requerido::" -#: ../Doc/library/ctypes.rst:377 +#: ../Doc/library/ctypes.rst:380 +#, fuzzy +msgid "Calling variadic functions" +msgstr "Funciones de llamada" + +#: ../Doc/library/ctypes.rst:382 +msgid "" +"On a lot of platforms calling variadic functions through ctypes is exactly " +"the same as calling functions with a fixed number of parameters. On some " +"platforms, and in particular ARM64 for Apple Platforms, the calling " +"convention for variadic functions is different than that for regular " +"functions." +msgstr "" + +#: ../Doc/library/ctypes.rst:387 +msgid "" +"On those platforms it is required to specify the :attr:`~_FuncPtr.argtypes` " +"attribute for the regular, non-variadic, function arguments:" +msgstr "" + +#: ../Doc/library/ctypes.rst:394 +msgid "" +"Because specifying the attribute does not inhibit portability it is advised " +"to always specify :attr:`~_FuncPtr.argtypes` for all variadic functions." +msgstr "" + +#: ../Doc/library/ctypes.rst:401 msgid "Calling functions with your own custom data types" msgstr "Funciones de llamada con sus propios tipos de datos personalizados" -#: ../Doc/library/ctypes.rst:379 +#: ../Doc/library/ctypes.rst:403 +#, fuzzy msgid "" "You can also customize :mod:`ctypes` argument conversion to allow instances " -"of your own classes be used as function arguments. :mod:`ctypes` looks for " -"an :attr:`_as_parameter_` attribute and uses this as the function argument. " -"Of course, it must be one of integer, string, or bytes::" +"of your own classes be used as function arguments. :mod:`ctypes` looks for " +"an :attr:`!_as_parameter_` attribute and uses this as the function argument. " +"The attribute must be an integer, string, bytes, a :mod:`ctypes` instance, " +"or an object with an :attr:`!_as_parameter_` attribute::" msgstr "" "También puedes personalizar la conversión de argumentos de :mod:`ctypes` " "para permitir que las instancias de tus propias clases se usen como " @@ -613,35 +661,39 @@ msgstr "" "`_as_parameter_` y lo usa como argumento de función. Por supuesto, debe ser " "uno de entero, cadena o bytes::" -#: ../Doc/library/ctypes.rst:394 +#: ../Doc/library/ctypes.rst:419 +#, fuzzy msgid "" -"If you don't want to store the instance's data in the :attr:`_as_parameter_` " -"instance variable, you could define a :class:`property` which makes the " -"attribute available on request." +"If you don't want to store the instance's data in the :attr:`!" +"_as_parameter_` instance variable, you could define a :class:`property` " +"which makes the attribute available on request." msgstr "" "Si no quieres almacenar los datos de la instancia en la variable de " "instancia :attr:`_as_parameter_`, puedes definir una :class:`property` que " "haga que el atributo esté disponible a petición." -#: ../Doc/library/ctypes.rst:402 +#: ../Doc/library/ctypes.rst:427 msgid "Specifying the required argument types (function prototypes)" msgstr "" "Especificar los tipos de argumentos requeridos (prototipos de funciones)" -#: ../Doc/library/ctypes.rst:404 +#: ../Doc/library/ctypes.rst:429 +#, fuzzy msgid "" "It is possible to specify the required argument types of functions exported " -"from DLLs by setting the :attr:`argtypes` attribute." +"from DLLs by setting the :attr:`~_FuncPtr.argtypes` attribute." msgstr "" "Es posible especificar los tipos de argumentos necesarios de las funciones " "exportadas desde las DLL estableciendo el atributo :attr:`argtypes`." -#: ../Doc/library/ctypes.rst:407 +#: ../Doc/library/ctypes.rst:432 +#, fuzzy msgid "" -":attr:`argtypes` must be a sequence of C data types (the ``printf`` function " -"is probably not a good example here, because it takes a variable number and " -"different types of parameters depending on the format string, on the other " -"hand this is quite handy to experiment with this feature)::" +":attr:`~_FuncPtr.argtypes` must be a sequence of C data types (the :func:`!" +"printf` function is probably not a good example here, because it takes a " +"variable number and different types of parameters depending on the format " +"string, on the other hand this is quite handy to experiment with this " +"feature)::" msgstr "" ":attr:`argtypes` debe ser una secuencia de tipos de datos de C (la función " "``printf`` probablemente no es un buen ejemplo aquí, porque toma un número " @@ -649,7 +701,7 @@ msgstr "" "cadena, por otro lado esto es bastante útil para experimentar con esta " "característica)::" -#: ../Doc/library/ctypes.rst:418 +#: ../Doc/library/ctypes.rst:443 msgid "" "Specifying a format protects against incompatible argument types (just as a " "prototype for a C function), and tries to convert the arguments to valid " @@ -659,17 +711,19 @@ msgstr "" "incompatibles (al igual que un prototipo para una función C), e intenta " "convertir los argumentos en tipos válidos::" -#: ../Doc/library/ctypes.rst:430 +#: ../Doc/library/ctypes.rst:455 +#, fuzzy msgid "" "If you have defined your own classes which you pass to function calls, you " -"have to implement a :meth:`from_param` class method for them to be able to " -"use them in the :attr:`argtypes` sequence. The :meth:`from_param` class " -"method receives the Python object passed to the function call, it should do " -"a typecheck or whatever is needed to make sure this object is acceptable, " -"and then return the object itself, its :attr:`_as_parameter_` attribute, or " -"whatever you want to pass as the C function argument in this case. Again, " -"the result should be an integer, string, bytes, a :mod:`ctypes` instance, or " -"an object with an :attr:`_as_parameter_` attribute." +"have to implement a :meth:`~_CData.from_param` class method for them to be " +"able to use them in the :attr:`~_FuncPtr.argtypes` sequence. The :meth:" +"`~_CData.from_param` class method receives the Python object passed to the " +"function call, it should do a typecheck or whatever is needed to make sure " +"this object is acceptable, and then return the object itself, its :attr:`!" +"_as_parameter_` attribute, or whatever you want to pass as the C function " +"argument in this case. Again, the result should be an integer, string, " +"bytes, a :mod:`ctypes` instance, or an object with an :attr:`!" +"_as_parameter_` attribute." msgstr "" "Si has definido tus propias clases las cuales pasas a las llamadas a " "funciones, tienes que implementar un método de clase :meth:`from_param` para " @@ -682,45 +736,66 @@ msgstr "" "entero, una cadena, unos bytes, una instancia :mod:`ctypes`, o un objeto con " "el atributo :attr:`_as_parameter_`." -#: ../Doc/library/ctypes.rst:444 +#: ../Doc/library/ctypes.rst:469 msgid "Return types" msgstr "Tipos de retorno" -#: ../Doc/library/ctypes.rst:446 +#: ../Doc/library/ctypes.rst:479 +#, fuzzy msgid "" "By default functions are assumed to return the C :c:expr:`int` type. Other " -"return types can be specified by setting the :attr:`restype` attribute of " -"the function object." +"return types can be specified by setting the :attr:`~_FuncPtr.restype` " +"attribute of the function object." msgstr "" "Por defecto, se supone que las funciones retornan el tipo C :c:expr:`int`. " "Se pueden especificar otros tipos de retorno configurando el atributo :attr:" "`restype` del objeto de función." -#: ../Doc/library/ctypes.rst:450 +#: ../Doc/library/ctypes.rst:483 msgid "" -"Here is a more advanced example, it uses the ``strchr`` function, which " +"The C prototype of :c:func:`time` is ``time_t time(time_t *)``. Because :c:" +"type:`time_t` might be of a different type than the default return type :c:" +"expr:`int`, you should specify the :attr:`!restype` attribute::" +msgstr "" + +#: ../Doc/library/ctypes.rst:489 +msgid "The argument types can be specified using :attr:`~_FuncPtr.argtypes`::" +msgstr "" + +#: ../Doc/library/ctypes.rst:493 +msgid "" +"To call the function with a ``NULL`` pointer as first argument, use " +"``None``::" +msgstr "" + +#: ../Doc/library/ctypes.rst:498 +#, fuzzy +msgid "" +"Here is a more advanced example, it uses the :func:`!strchr` function, which " "expects a string pointer and a char, and returns a pointer to a string::" msgstr "" "Aquí hay un ejemplo más avanzado, utiliza la función ``strchr``, que espera " "un puntero de cadena y un carácter, y retorna un puntero a una cadena::" -#: ../Doc/library/ctypes.rst:463 +#: ../Doc/library/ctypes.rst:511 +#, fuzzy msgid "" -"If you want to avoid the ``ord(\"x\")`` calls above, you can set the :attr:" -"`argtypes` attribute, and the second argument will be converted from a " -"single character Python bytes object into a C char::" +"If you want to avoid the :func:`ord(\"x\") ` calls above, you can set " +"the :attr:`~_FuncPtr.argtypes` attribute, and the second argument will be " +"converted from a single character Python bytes object into a C char:" msgstr "" "Si quieres evitar las llamadas ``ord(\"x\")`` de arriba, puedes establecer " "el atributo :attr:`argtypes`, y el segundo argumento se convertirá de un " "objeto de un solo carácter de bytes de Python a un char::" -#: ../Doc/library/ctypes.rst:481 +#: ../Doc/library/ctypes.rst:530 +#, fuzzy msgid "" "You can also use a callable Python object (a function or a class for " -"example) as the :attr:`restype` attribute, if the foreign function returns " -"an integer. The callable will be called with the *integer* the C function " -"returns, and the result of this call will be used as the result of your " -"function call. This is useful to check for error return values and " +"example) as the :attr:`~_FuncPtr.restype` attribute, if the foreign function " +"returns an integer. The callable will be called with the *integer* the C " +"function returns, and the result of this call will be used as the result of " +"your function call. This is useful to check for error return values and " "automatically raise an exception::" msgstr "" "También puedes usar un objeto Python invocable (una función o una clase, por " @@ -730,7 +805,7 @@ msgstr "" "resultado de la llamada a la función. Esto es útil para comprobar si hay " "valores de retorno de error y plantear automáticamente una excepción::" -#: ../Doc/library/ctypes.rst:504 +#: ../Doc/library/ctypes.rst:553 msgid "" "``WinError`` is a function which will call Windows ``FormatMessage()`` api " "to get the string representation of an error code, and *returns* an " @@ -743,20 +818,22 @@ msgstr "" "opcional, si no se usa ninguno, llama a :func:`GetLastError`` para " "recuperarlo." -#: ../Doc/library/ctypes.rst:509 +#: ../Doc/library/ctypes.rst:558 +#, fuzzy msgid "" "Please note that a much more powerful error checking mechanism is available " -"through the :attr:`errcheck` attribute; see the reference manual for details." +"through the :attr:`~_FuncPtr.errcheck` attribute; see the reference manual " +"for details." msgstr "" "Tenga en cuenta que un mecanismo de comprobación de errores mucho más " "potente está disponible a través del atributo :attr:`errcheck`; consulte el " "manual de referencia para obtener más detalles." -#: ../Doc/library/ctypes.rst:516 +#: ../Doc/library/ctypes.rst:566 msgid "Passing pointers (or: passing parameters by reference)" msgstr "Pasar los punteros (o: pasar los parámetros por referencia)" -#: ../Doc/library/ctypes.rst:518 +#: ../Doc/library/ctypes.rst:568 msgid "" "Sometimes a C api function expects a *pointer* to a data type as parameter, " "probably to write into the corresponding location, or if the data is too " @@ -768,7 +845,7 @@ msgstr "" "datos son demasiado grandes para ser pasados por valor. Esto también se " "conoce cómo *pasar parámetros por referencia*." -#: ../Doc/library/ctypes.rst:522 +#: ../Doc/library/ctypes.rst:572 msgid "" ":mod:`ctypes` exports the :func:`byref` function which is used to pass " "parameters by reference. The same effect can be achieved with the :func:" @@ -782,16 +859,18 @@ msgstr "" "que construye un objeto puntero real, por lo que es más rápido usar :func:" "`byref` si no se necesita el objeto puntero en el propio Python::" -#: ../Doc/library/ctypes.rst:544 +#: ../Doc/library/ctypes.rst:594 msgid "Structures and unions" msgstr "Estructuras y uniones" -#: ../Doc/library/ctypes.rst:546 +#: ../Doc/library/ctypes.rst:596 +#, fuzzy msgid "" "Structures and unions must derive from the :class:`Structure` and :class:" "`Union` base classes which are defined in the :mod:`ctypes` module. Each " -"subclass must define a :attr:`_fields_` attribute. :attr:`_fields_` must be " -"a list of *2-tuples*, containing a *field name* and a *field type*." +"subclass must define a :attr:`~Structure._fields_` attribute. :attr:`!" +"_fields_` must be a list of *2-tuples*, containing a *field name* and a " +"*field type*." msgstr "" "Las estructuras y uniones deben derivar de las clases base :class:" "`Structure` y :class:`Union` que se definen en el módulo :mod:`ctypes`. Cada " @@ -799,7 +878,7 @@ msgstr "" "ser una lista de *2-tuplas*, que contenga un *nombre de campo* y un *tipo de " "campo*." -#: ../Doc/library/ctypes.rst:551 +#: ../Doc/library/ctypes.rst:601 msgid "" "The field type must be a :mod:`ctypes` type like :class:`c_int`, or any " "other derived :mod:`ctypes` type: structure, union, array, pointer." @@ -808,7 +887,7 @@ msgstr "" "cualquier otro tipo :mod:`ctypes` derivado: estructura, unión, matriz, " "puntero." -#: ../Doc/library/ctypes.rst:554 +#: ../Doc/library/ctypes.rst:604 msgid "" "Here is a simple example of a POINT structure, which contains two integers " "named *x* and *y*, and also shows how to initialize a structure in the " @@ -818,7 +897,7 @@ msgstr "" "llamados *x* y *y*, y también muestra cómo inicializar una estructura en el " "constructor::" -#: ../Doc/library/ctypes.rst:574 +#: ../Doc/library/ctypes.rst:624 msgid "" "You can, however, build much more complicated structures. A structure can " "itself contain other structures by using a structure as a field type." @@ -827,7 +906,7 @@ msgstr "" "estructura puede contener por sí misma otras estructuras usando una " "estructura como tipo de campo." -#: ../Doc/library/ctypes.rst:577 +#: ../Doc/library/ctypes.rst:627 msgid "" "Here is a RECT structure which contains two POINTs named *upperleft* and " "*lowerright*::" @@ -835,7 +914,7 @@ msgstr "" "Aquí hay una estructura RECT que contiene dos POINTs llamados *upperleft* " "(superior izquierda)y *lowerright* (abajo a la derecha)::" -#: ../Doc/library/ctypes.rst:591 +#: ../Doc/library/ctypes.rst:641 msgid "" "Nested structures can also be initialized in the constructor in several " "ways::" @@ -843,7 +922,7 @@ msgstr "" "Las estructuras anidadas también pueden ser inicializadas en el constructor " "de varias maneras::" -#: ../Doc/library/ctypes.rst:596 +#: ../Doc/library/ctypes.rst:646 msgid "" "Field :term:`descriptor`\\s can be retrieved from the *class*, they are " "useful for debugging because they can provide useful information::" @@ -851,7 +930,7 @@ msgstr "" "El campo :term:`descriptor` puede ser recuperado de la *class*, son útiles " "para la depuración porque pueden proporcionar información útil::" -#: ../Doc/library/ctypes.rst:610 +#: ../Doc/library/ctypes.rst:660 msgid "" ":mod:`ctypes` does not support passing unions or structures with bit-fields " "to functions by value. While this may work on 32-bit x86, it's not " @@ -864,17 +943,18 @@ msgstr "" "estructuras con campos de bits siempre deben pasarse a las funciones por " "puntero." -#: ../Doc/library/ctypes.rst:616 +#: ../Doc/library/ctypes.rst:666 msgid "Structure/union alignment and byte order" msgstr "Alineación de estructura/unión y orden de bytes" -#: ../Doc/library/ctypes.rst:618 +#: ../Doc/library/ctypes.rst:668 +#, fuzzy msgid "" "By default, Structure and Union fields are aligned in the same way the C " "compiler does it. It is possible to override this behavior by specifying a :" -"attr:`_pack_` class attribute in the subclass definition. This must be set " -"to a positive integer and specifies the maximum alignment for the fields. " -"This is what ``#pragma pack(n)`` also does in MSVC." +"attr:`~Structure._pack_` class attribute in the subclass definition. This " +"must be set to a positive integer and specifies the maximum alignment for " +"the fields. This is what ``#pragma pack(n)`` also does in MSVC." msgstr "" "Por defecto, los campos de Estructura y Unión están alineados de la misma " "manera que lo hace el compilador C. Es posible anular este comportamiento " @@ -883,7 +963,7 @@ msgstr "" "alineación máxima de los campos. Esto es lo que ``#pragma pack(n)`` también " "hace en MSVC." -#: ../Doc/library/ctypes.rst:624 +#: ../Doc/library/ctypes.rst:674 msgid "" ":mod:`ctypes` uses the native byte order for Structures and Unions. To " "build structures with non-native byte order, you can use one of the :class:" @@ -897,25 +977,26 @@ msgstr "" "`LittleEndianStructure`, :class:`BigEndianUnion`, y :class:" "`LittleEndianUnion`. Estas clases no pueden contener campos puntero." -#: ../Doc/library/ctypes.rst:634 +#: ../Doc/library/ctypes.rst:684 msgid "Bit fields in structures and unions" msgstr "Campos de bits en estructuras y uniones" -#: ../Doc/library/ctypes.rst:636 +#: ../Doc/library/ctypes.rst:686 +#, fuzzy msgid "" "It is possible to create structures and unions containing bit fields. Bit " "fields are only possible for integer fields, the bit width is specified as " -"the third item in the :attr:`_fields_` tuples::" +"the third item in the :attr:`~Structure._fields_` tuples::" msgstr "" "Es posible crear estructuras y uniones que contengan campos de bits. Los " "campos de bits sólo son posibles para campos enteros, el ancho de bit se " "especifica como el tercer ítem en las tuplas :attr:`_fields_`::" -#: ../Doc/library/ctypes.rst:654 +#: ../Doc/library/ctypes.rst:704 msgid "Arrays" msgstr "Arreglos" -#: ../Doc/library/ctypes.rst:656 +#: ../Doc/library/ctypes.rst:706 msgid "" "Arrays are sequences, containing a fixed number of instances of the same " "type." @@ -923,7 +1004,7 @@ msgstr "" "Los arreglos son secuencias, que contienen un número fijo de instancias del " "mismo tipo." -#: ../Doc/library/ctypes.rst:658 +#: ../Doc/library/ctypes.rst:708 msgid "" "The recommended way to create array types is by multiplying a data type with " "a positive integer::" @@ -931,7 +1012,7 @@ msgstr "" "La forma recomendada de crear tipos de arreglos es multiplicando un tipo de " "dato por un entero positivo::" -#: ../Doc/library/ctypes.rst:663 +#: ../Doc/library/ctypes.rst:713 msgid "" "Here is an example of a somewhat artificial data type, a structure " "containing 4 POINTs among other stuff::" @@ -939,11 +1020,11 @@ msgstr "" "Aquí hay un ejemplo de un tipo de datos algo artificial, una estructura que " "contiene 4 POINTs entre otras cosas::" -#: ../Doc/library/ctypes.rst:679 +#: ../Doc/library/ctypes.rst:729 msgid "Instances are created in the usual way, by calling the class::" msgstr "Las instancias se crean de la manera habitual, llamando a la clase::" -#: ../Doc/library/ctypes.rst:685 +#: ../Doc/library/ctypes.rst:735 msgid "" "The above code print a series of ``0 0`` lines, because the array contents " "is initialized to zeros." @@ -951,15 +1032,15 @@ msgstr "" "El código anterior imprime una serie de líneas ``0 0``, porque el contenido " "del arreglos se inicializa con ceros." -#: ../Doc/library/ctypes.rst:688 +#: ../Doc/library/ctypes.rst:738 msgid "Initializers of the correct type can also be specified::" msgstr "También se pueden especificar inicializadores del tipo correcto::" -#: ../Doc/library/ctypes.rst:704 +#: ../Doc/library/ctypes.rst:754 msgid "Pointers" msgstr "Punteros" -#: ../Doc/library/ctypes.rst:706 +#: ../Doc/library/ctypes.rst:756 msgid "" "Pointer instances are created by calling the :func:`pointer` function on a :" "mod:`ctypes` type::" @@ -967,7 +1048,7 @@ msgstr "" "Las instancias de puntero se crean llamando a la función :func:`pointer` en " "un tipo :mod:`ctypes`::" -#: ../Doc/library/ctypes.rst:714 +#: ../Doc/library/ctypes.rst:764 msgid "" "Pointer instances have a :attr:`~_Pointer.contents` attribute which returns " "the object to which the pointer points, the ``i`` object above::" @@ -975,7 +1056,7 @@ msgstr "" "Las instancias del puntero tienen un atributo :attr:`~_Pointer.contents` que " "retorna el objeto al que apunta el puntero, el objeto ``i`` arriba::" -#: ../Doc/library/ctypes.rst:721 +#: ../Doc/library/ctypes.rst:771 msgid "" "Note that :mod:`ctypes` does not have OOR (original object return), it " "constructs a new, equivalent object each time you retrieve an attribute::" @@ -983,7 +1064,7 @@ msgstr "" "Ten en cuenta que :mod:`ctypes` no tiene OOR (original object return), " "construye un nuevo objeto equivalente cada vez que recuperas un atributo::" -#: ../Doc/library/ctypes.rst:730 +#: ../Doc/library/ctypes.rst:780 msgid "" "Assigning another :class:`c_int` instance to the pointer's contents " "attribute would cause the pointer to point to the memory location where this " @@ -992,16 +1073,16 @@ msgstr "" "Asignar otra instancia :class:`c_int` al atributo de contenido del puntero " "causaría que el puntero apunte al lugar de memoria donde se almacena::" -#: ../Doc/library/ctypes.rst:742 +#: ../Doc/library/ctypes.rst:792 msgid "Pointer instances can also be indexed with integers::" msgstr "" "Las instancias de puntero también pueden ser indexadas con números enteros::" -#: ../Doc/library/ctypes.rst:748 +#: ../Doc/library/ctypes.rst:798 msgid "Assigning to an integer index changes the pointed to value::" msgstr "Asignando a un índice entero cambia el valor señalado::" -#: ../Doc/library/ctypes.rst:757 +#: ../Doc/library/ctypes.rst:807 msgid "" "It is also possible to use indexes different from 0, but you must know what " "you're doing, just as in C: You can access or change arbitrary memory " @@ -1015,7 +1096,7 @@ msgstr "" "recibes un puntero de una función C, y *sabes* que el puntero en realidad " "apunta a un arreglo en lugar de a un solo elemento." -#: ../Doc/library/ctypes.rst:763 +#: ../Doc/library/ctypes.rst:813 msgid "" "Behind the scenes, the :func:`pointer` function does more than simply create " "pointer instances, it has to create pointer *types* first. This is done with " @@ -1027,7 +1108,7 @@ msgstr "" "hace con la función :func:`POINTER`, que acepta cualquier tipo de :mod:" "`ctypes`, y retorna un nuevo tipo::" -#: ../Doc/library/ctypes.rst:779 +#: ../Doc/library/ctypes.rst:829 msgid "" "Calling the pointer type without an argument creates a ``NULL`` pointer. " "``NULL`` pointers have a ``False`` boolean value::" @@ -1035,7 +1116,7 @@ msgstr "" "Llamar al tipo de puntero sin un argumento crea un puntero ``NULL``. Los " "punteros ``NULL`` tienen un valor booleano falso..:" -#: ../Doc/library/ctypes.rst:787 +#: ../Doc/library/ctypes.rst:837 msgid "" ":mod:`ctypes` checks for ``NULL`` when dereferencing pointers (but " "dereferencing invalid non-\\ ``NULL`` pointers would crash Python)::" @@ -1044,19 +1125,20 @@ msgstr "" "(pero los punteros no válidos de referencia no-\\ ``NULL`` se romperán en " "Python)::" -#: ../Doc/library/ctypes.rst:806 +#: ../Doc/library/ctypes.rst:856 msgid "Type conversions" msgstr "Conversiones de tipos" -#: ../Doc/library/ctypes.rst:808 +#: ../Doc/library/ctypes.rst:858 +#, fuzzy msgid "" "Usually, ctypes does strict type checking. This means, if you have " -"``POINTER(c_int)`` in the :attr:`argtypes` list of a function or as the type " -"of a member field in a structure definition, only instances of exactly the " -"same type are accepted. There are some exceptions to this rule, where " -"ctypes accepts other objects. For example, you can pass compatible array " -"instances instead of pointer types. So, for ``POINTER(c_int)``, ctypes " -"accepts an array of c_int::" +"``POINTER(c_int)`` in the :attr:`~_FuncPtr.argtypes` list of a function or " +"as the type of a member field in a structure definition, only instances of " +"exactly the same type are accepted. There are some exceptions to this rule, " +"where ctypes accepts other objects. For example, you can pass compatible " +"array instances instead of pointer types. So, for ``POINTER(c_int)``, " +"ctypes accepts an array of c_int::" msgstr "" "Por lo general, los ctypes hacen un control estricto de los tipos. Esto " "significa que si tienes ``POINTER(c_int)`` en la lista :attr:`argtypes` de " @@ -1067,24 +1149,26 @@ msgstr "" "tipos de puntero. Así, para ``POINTER(c_int)``, ctypes acepta un arreglo de " "*c_int*::" -#: ../Doc/library/ctypes.rst:829 +#: ../Doc/library/ctypes.rst:879 +#, fuzzy msgid "" "In addition, if a function argument is explicitly declared to be a pointer " -"type (such as ``POINTER(c_int)``) in :attr:`argtypes`, an object of the " -"pointed type (``c_int`` in this case) can be passed to the function. ctypes " -"will apply the required :func:`byref` conversion in this case automatically." +"type (such as ``POINTER(c_int)``) in :attr:`~_FuncPtr.argtypes`, an object " +"of the pointed type (``c_int`` in this case) can be passed to the function. " +"ctypes will apply the required :func:`byref` conversion in this case " +"automatically." msgstr "" "Además, si se declara explícitamente que un argumento de función es de tipo " "puntero (como ``POINTER(c_int)``) en :attr:`argtypes`, se puede pasar un " "objeto de tipo puntero (``c_int`` en este caso) a la función. ctypes " "aplicará la conversión :func:`byref` requerida en este caso automáticamente." -#: ../Doc/library/ctypes.rst:834 +#: ../Doc/library/ctypes.rst:884 msgid "To set a POINTER type field to ``NULL``, you can assign ``None``::" msgstr "" "Para poner un campo de tipo POINTER a ``NULL``, puedes asignar ``None``::" -#: ../Doc/library/ctypes.rst:841 +#: ../Doc/library/ctypes.rst:891 msgid "" "Sometimes you have instances of incompatible types. In C, you can cast one " "type into another type. :mod:`ctypes` provides a :func:`cast` function " @@ -1098,11 +1182,11 @@ msgstr "" "acepta punteros ``POINTER(c_int)`` o arreglos :class:`c_int`` para su campo " "``values``, pero no instancias de otros tipos::" -#: ../Doc/library/ctypes.rst:853 +#: ../Doc/library/ctypes.rst:903 msgid "For these cases, the :func:`cast` function is handy." msgstr "Para estos casos, la función :func:`cast` es muy útil." -#: ../Doc/library/ctypes.rst:855 +#: ../Doc/library/ctypes.rst:905 msgid "" "The :func:`cast` function can be used to cast a ctypes instance into a " "pointer to a different ctypes data type. :func:`cast` takes two parameters, " @@ -1117,7 +1201,7 @@ msgstr "" "argumento, que hace referencia al mismo bloque de memoria que el primer " "argumento::" -#: ../Doc/library/ctypes.rst:866 +#: ../Doc/library/ctypes.rst:916 msgid "" "So, :func:`cast` can be used to assign to the ``values`` field of ``Bar`` " "the structure::" @@ -1125,11 +1209,11 @@ msgstr "" "Así, :func:`cast` puede ser usado para asignar al campo ``values`` de " "``Bar`` la estructura::" -#: ../Doc/library/ctypes.rst:879 +#: ../Doc/library/ctypes.rst:929 msgid "Incomplete Types" msgstr "Tipos incompletos" -#: ../Doc/library/ctypes.rst:881 +#: ../Doc/library/ctypes.rst:931 msgid "" "*Incomplete Types* are structures, unions or arrays whose members are not " "yet specified. In C, they are specified by forward declarations, which are " @@ -1139,24 +1223,25 @@ msgstr "" "aún no están especificados. En C, se especifican mediante declaraciones a " "futuro, que se definen más adelante::" -#: ../Doc/library/ctypes.rst:892 +#: ../Doc/library/ctypes.rst:942 msgid "" "The straightforward translation into ctypes code would be this, but it does " "not work::" msgstr "" "La traducción directa al código de ctypes sería esta, pero no funciona::" -#: ../Doc/library/ctypes.rst:905 +#: ../Doc/library/ctypes.rst:955 +#, fuzzy msgid "" "because the new ``class cell`` is not available in the class statement " "itself. In :mod:`ctypes`, we can define the ``cell`` class and set the :attr:" -"`_fields_` attribute later, after the class statement::" +"`~Structure._fields_` attribute later, after the class statement::" msgstr "" "porque la nueva ``class cell`` no está disponible en la propia declaración " "de clase. En :mod:`ctypes`, podemos definir la clase ``cell`` y establecer " "el atributo :attr:`_fields_` más tarde, después de la declaración de clase::" -#: ../Doc/library/ctypes.rst:917 +#: ../Doc/library/ctypes.rst:967 msgid "" "Let's try it. We create two instances of ``cell``, and let them point to " "each other, and finally follow the pointer chain a few times::" @@ -1165,11 +1250,11 @@ msgstr "" "apunten una a la otra, y finalmente seguimos la cadena de punteros unas " "cuantas veces::" -#: ../Doc/library/ctypes.rst:938 +#: ../Doc/library/ctypes.rst:988 msgid "Callback functions" msgstr "Funciones de retrollamadas (*callback*)" -#: ../Doc/library/ctypes.rst:940 +#: ../Doc/library/ctypes.rst:990 msgid "" ":mod:`ctypes` allows creating C callable function pointers from Python " "callables. These are sometimes called *callback functions*." @@ -1177,7 +1262,7 @@ msgstr "" ":mod:`ctypes` permite crear punteros de función invocables C a partir de los " "invocables de Python. A veces se llaman *funciones de retrollamada*." -#: ../Doc/library/ctypes.rst:943 +#: ../Doc/library/ctypes.rst:993 msgid "" "First, you must create a class for the callback function. The class knows " "the calling convention, the return type, and the number and types of " @@ -1187,7 +1272,7 @@ msgstr "" "conoce la convención de llamada, el tipo de retorno, y el número y tipos de " "argumentos que esta función recibirá." -#: ../Doc/library/ctypes.rst:947 +#: ../Doc/library/ctypes.rst:997 msgid "" "The :func:`CFUNCTYPE` factory function creates types for callback functions " "using the ``cdecl`` calling convention. On Windows, the :func:`WINFUNCTYPE` " @@ -1199,7 +1284,7 @@ msgstr "" "función de fábrica :func:`WINFUNCTYPE` crea tipos para funciones de " "retrollamadas usando la convención de llamadas ``stdcall``." -#: ../Doc/library/ctypes.rst:952 +#: ../Doc/library/ctypes.rst:1002 msgid "" "Both of these factory functions are called with the result type as first " "argument, and the callback functions expected argument types as the " @@ -1209,20 +1294,22 @@ msgstr "" "argumento, y las funciones de llamada de retorno con los tipos de argumentos " "esperados como los argumentos restantes." -#: ../Doc/library/ctypes.rst:956 +#: ../Doc/library/ctypes.rst:1006 +#, fuzzy msgid "" -"I will present an example here which uses the standard C library's :c:func:" -"`qsort` function, that is used to sort items with the help of a callback " -"function. :c:func:`qsort` will be used to sort an array of integers::" +"I will present an example here which uses the standard C library's :c:func:`!" +"qsort` function, that is used to sort items with the help of a callback " +"function. :c:func:`!qsort` will be used to sort an array of integers::" msgstr "" "Presentaré un ejemplo aquí que utiliza la función :c:func:`qsort` de la " "biblioteca estándar de C, que se utiliza para ordenar los elementos con la " "ayuda de una función de retrollamada. :c:func:`qsort` se utilizará para " "ordenar un conjunto de números enteros::" -#: ../Doc/library/ctypes.rst:966 +#: ../Doc/library/ctypes.rst:1016 +#, fuzzy msgid "" -":func:`qsort` must be called with a pointer to the data to sort, the number " +":func:`!qsort` must be called with a pointer to the data to sort, the number " "of items in the data array, the size of one item, and a pointer to the " "comparison function, the callback. The callback will then be called with two " "pointers to items, and it must return a negative integer if the first item " @@ -1236,7 +1323,7 @@ msgstr "" "entero negativo si el primer ítem es más pequeño que el segundo, un cero si " "son iguales, y un entero positivo en caso contrario." -#: ../Doc/library/ctypes.rst:972 +#: ../Doc/library/ctypes.rst:1022 msgid "" "So our callback function receives pointers to integers, and must return an " "integer. First we create the ``type`` for the callback function::" @@ -1245,7 +1332,7 @@ msgstr "" "debe retornar un número entero. Primero creamos el ``tipo`` para la función " "de retrollamada:" -#: ../Doc/library/ctypes.rst:978 +#: ../Doc/library/ctypes.rst:1028 msgid "" "To get started, here is a simple callback that shows the values it gets " "passed::" @@ -1253,20 +1340,20 @@ msgstr "" "Para empezar, aquí hay una simple llamada que muestra los valores que se " "pasan::" -#: ../Doc/library/ctypes.rst:988 +#: ../Doc/library/ctypes.rst:1038 msgid "The result::" msgstr "El resultado::" -#: ../Doc/library/ctypes.rst:998 +#: ../Doc/library/ctypes.rst:1048 msgid "Now we can actually compare the two items and return a useful result::" msgstr "Ahora podemos comparar los dos artículos y obtener un resultado útil::" -#: ../Doc/library/ctypes.rst:1013 +#: ../Doc/library/ctypes.rst:1063 msgid "As we can easily check, our array is sorted now::" msgstr "" "Como podemos comprobar fácilmente, nuestro arreglo está ordenado ahora::" -#: ../Doc/library/ctypes.rst:1020 +#: ../Doc/library/ctypes.rst:1070 msgid "" "The function factories can be used as decorator factories, so we may as well " "write::" @@ -1274,7 +1361,7 @@ msgstr "" "Las funciones de fabrica pueden ser usadas como decoradores de fabrica, así " "que podemos escribir::" -#: ../Doc/library/ctypes.rst:1038 +#: ../Doc/library/ctypes.rst:1088 msgid "" "Make sure you keep references to :func:`CFUNCTYPE` objects as long as they " "are used from C code. :mod:`ctypes` doesn't, and if you don't, they may be " @@ -1285,7 +1372,7 @@ msgstr "" "haces, pueden ser basura recolectada, colapsando tu programa cuando se hace " "una llamada." -#: ../Doc/library/ctypes.rst:1042 +#: ../Doc/library/ctypes.rst:1092 msgid "" "Also, note that if the callback function is called in a thread created " "outside of Python's control (e.g. by the foreign code that calls the " @@ -1302,33 +1389,34 @@ msgstr "" "local` *no* sobreviven a través de diferentes llamadas de retorno, incluso " "cuando esas llamadas se hacen desde el mismo hilo C." -#: ../Doc/library/ctypes.rst:1052 +#: ../Doc/library/ctypes.rst:1102 msgid "Accessing values exported from dlls" msgstr "Acceder a los valores exportados de los dlls" -#: ../Doc/library/ctypes.rst:1054 +#: ../Doc/library/ctypes.rst:1104 +#, fuzzy msgid "" "Some shared libraries not only export functions, they also export variables. " -"An example in the Python library itself is the :c:data:`Py_OptimizeFlag`, an " -"integer set to 0, 1, or 2, depending on the :option:`-O` or :option:`-OO` " -"flag given on startup." +"An example in the Python library itself is the :c:data:`Py_Version`, Python " +"runtime version number encoded in a single constant integer." msgstr "" "Algunas bibliotecas compartidas no sólo exportan funciones, sino también " "variables. Un ejemplo en la propia biblioteca de Python es el :c:data:" "`Py_OptimizeFlag`, un entero establecido en 0, 1, o 2, dependiendo del flag :" "option:`-O` o :option:`-OO` dado en el inicio." -#: ../Doc/library/ctypes.rst:1059 +#: ../Doc/library/ctypes.rst:1108 +#, fuzzy msgid "" -":mod:`ctypes` can access values like this with the :meth:`in_dll` class " -"methods of the type. *pythonapi* is a predefined symbol giving access to " -"the Python C api::" +":mod:`ctypes` can access values like this with the :meth:`~_CData.in_dll` " +"class methods of the type. *pythonapi* is a predefined symbol giving access " +"to the Python C api::" msgstr "" ":mod:`ctypes` puede acceder a valores como este con los métodos de la clase :" "meth:`in_dll` del tipo. *pythonapi* es un símbolo predefinido que da acceso " "a la API de Python C::" -#: ../Doc/library/ctypes.rst:1068 +#: ../Doc/library/ctypes.rst:1116 msgid "" "If the interpreter would have been started with :option:`-O`, the sample " "would have printed ``c_long(1)``, or ``c_long(2)`` if :option:`-OO` would " @@ -1338,7 +1426,7 @@ msgstr "" "impreso ``c_long(1)``, o ``c_long(2)`` si :option:`-OO` se hubiera " "especificado." -#: ../Doc/library/ctypes.rst:1072 +#: ../Doc/library/ctypes.rst:1120 msgid "" "An extended example which also demonstrates the use of pointers accesses " "the :c:data:`PyImport_FrozenModules` pointer exported by Python." @@ -1346,11 +1434,11 @@ msgstr "" "Un ejemplo extendido que también demuestra el uso de punteros accediendo al " "puntero :c:data:`PyImport_FrozenModules` exportado por Python." -#: ../Doc/library/ctypes.rst:1075 +#: ../Doc/library/ctypes.rst:1123 msgid "Quoting the docs for that value:" msgstr "Citando los documentos para ese valor:" -#: ../Doc/library/ctypes.rst:1077 +#: ../Doc/library/ctypes.rst:1125 msgid "" "This pointer is initialized to point to an array of :c:struct:`_frozen` " "records, terminated by one whose members are all ``NULL`` or zero. When a " @@ -1364,7 +1452,7 @@ msgstr "" "terceros podría jugar trucos con esto para proporcionar una colección de " "módulos congelados creada dinámicamente." -#: ../Doc/library/ctypes.rst:1082 +#: ../Doc/library/ctypes.rst:1130 msgid "" "So manipulating this pointer could even prove useful. To restrict the " "example size, we show only how this table can be read with :mod:`ctypes`::" @@ -1373,7 +1461,7 @@ msgstr "" "el tamaño del ejemplo, sólo mostramos cómo esta tabla puede ser leída con :" "mod:`ctypes`::" -#: ../Doc/library/ctypes.rst:1096 +#: ../Doc/library/ctypes.rst:1144 msgid "" "We have defined the :c:struct:`_frozen` data type, so we can get the pointer " "to the table::" @@ -1381,7 +1469,7 @@ msgstr "" "Hemos definido el tipo de datos :c:struct:`_frozen`, por lo que podemos " "obtener el puntero a la tabla::" -#: ../Doc/library/ctypes.rst:1103 +#: ../Doc/library/ctypes.rst:1151 msgid "" "Since ``table`` is a ``pointer`` to the array of ``struct_frozen`` records, " "we can iterate over it, but we just have to make sure that our loop " @@ -1395,7 +1483,7 @@ msgstr "" "probablemente se caerá con una violación de acceso o lo que sea, así que es " "mejor salir del bucle cuando le demos a la entrada ``NULL``::" -#: ../Doc/library/ctypes.rst:1119 +#: ../Doc/library/ctypes.rst:1167 msgid "" "The fact that standard Python has a frozen module and a frozen package " "(indicated by the negative ``size`` member) is not well known, it is only " @@ -1406,11 +1494,11 @@ msgstr "" "sólo se usa para hacer pruebas. Pruébalo con ``import __hello__`` por " "ejemplo." -#: ../Doc/library/ctypes.rst:1127 +#: ../Doc/library/ctypes.rst:1175 msgid "Surprises" msgstr "Sorpresas" -#: ../Doc/library/ctypes.rst:1129 +#: ../Doc/library/ctypes.rst:1177 msgid "" "There are some edges in :mod:`ctypes` where you might expect something other " "than what actually happens." @@ -1418,11 +1506,11 @@ msgstr "" "Hay algunas aristas en :mod:`ctypes` en las que podrías esperar algo " "distinto de lo que realmente sucede." -#: ../Doc/library/ctypes.rst:1132 +#: ../Doc/library/ctypes.rst:1180 msgid "Consider the following example::" msgstr "Considere el siguiente ejemplo::" -#: ../Doc/library/ctypes.rst:1152 +#: ../Doc/library/ctypes.rst:1200 msgid "" "Hm. We certainly expected the last statement to print ``3 4 1 2``. What " "happened? Here are the steps of the ``rc.a, rc.b = rc.b, rc.a`` line above::" @@ -1431,7 +1519,7 @@ msgstr "" "2``. ¿Qué ha pasado? Aquí están los pasos de la línea ``rc.a, rc.b = rc.b, " "rc.a`` arriba::" -#: ../Doc/library/ctypes.rst:1160 +#: ../Doc/library/ctypes.rst:1208 msgid "" "Note that ``temp0`` and ``temp1`` are objects still using the internal " "buffer of the ``rc`` object above. So executing ``rc.a = temp0`` copies the " @@ -1445,7 +1533,7 @@ msgstr "" "su vez, cambia el contenido de ``temp1``. Por lo tanto, la última asignación " "``rc.b = temp1``, no tiene el efecto esperado." -#: ../Doc/library/ctypes.rst:1166 +#: ../Doc/library/ctypes.rst:1214 msgid "" "Keep in mind that retrieving sub-objects from Structure, Unions, and Arrays " "doesn't *copy* the sub-object, instead it retrieves a wrapper object " @@ -1455,7 +1543,7 @@ msgstr "" "Arreglos no *copia* el subobjeto, sino que recupera un objeto contenido que " "accede al búfer subyacente del objeto raíz." -#: ../Doc/library/ctypes.rst:1170 +#: ../Doc/library/ctypes.rst:1218 msgid "" "Another example that may behave differently from what one would expect is " "this::" @@ -1463,7 +1551,7 @@ msgstr "" "Otro ejemplo que puede comportarse de manera diferente a lo que uno " "esperaría es este::" -#: ../Doc/library/ctypes.rst:1182 +#: ../Doc/library/ctypes.rst:1230 msgid "" "Objects instantiated from :class:`c_char_p` can only have their value set to " "bytes or integers." @@ -1471,7 +1559,7 @@ msgstr "" "Los objetos instanciados desde :class:`c_char_p` sólo pueden tener su valor " "fijado en bytes o enteros." -#: ../Doc/library/ctypes.rst:1185 +#: ../Doc/library/ctypes.rst:1233 msgid "" "Why is it printing ``False``? ctypes instances are objects containing a " "memory block plus some :term:`descriptor`\\s accessing the contents of the " @@ -1486,18 +1574,18 @@ msgstr "" "``contenidos`` del objeto. ¡Acceder a los contenidos de nuevo construye un " "nuevo objeto Python cada vez!" -#: ../Doc/library/ctypes.rst:1195 +#: ../Doc/library/ctypes.rst:1243 msgid "Variable-sized data types" msgstr "Tipos de datos de tamaño variable" -#: ../Doc/library/ctypes.rst:1197 +#: ../Doc/library/ctypes.rst:1245 msgid "" ":mod:`ctypes` provides some support for variable-sized arrays and structures." msgstr "" ":mod:`ctypes` proporciona algo de soporte para matrices y estructuras de " "tamaño variable." -#: ../Doc/library/ctypes.rst:1199 +#: ../Doc/library/ctypes.rst:1247 msgid "" "The :func:`resize` function can be used to resize the memory buffer of an " "existing ctypes object. The function takes the object as first argument, " @@ -1512,7 +1600,7 @@ msgstr "" "especificado por el tipo de objeto, se lanza un :exc:`ValueError` si se " "intenta::" -#: ../Doc/library/ctypes.rst:1219 +#: ../Doc/library/ctypes.rst:1267 msgid "" "This is nice and fine, but how would one access the additional elements " "contained in this array? Since the type still only knows about 4 elements, " @@ -1522,7 +1610,7 @@ msgstr "" "contenidos en este arreglo? Dado que el tipo todavía sabe sólo 4 elementos, " "obtenemos errores al acceder a otros elementos::" -#: ../Doc/library/ctypes.rst:1231 +#: ../Doc/library/ctypes.rst:1279 msgid "" "Another way to use variable-sized data types with :mod:`ctypes` is to use " "the dynamic nature of Python, and (re-)define the data type after the " @@ -1532,15 +1620,15 @@ msgstr "" "es utilizar la naturaleza dinámica de Python, y (re)definir el tipo de datos " "después de que se conozca el tamaño requerido, caso por caso." -#: ../Doc/library/ctypes.rst:1239 +#: ../Doc/library/ctypes.rst:1287 msgid "ctypes reference" msgstr "referencia ctypes" -#: ../Doc/library/ctypes.rst:1245 +#: ../Doc/library/ctypes.rst:1293 msgid "Finding shared libraries" msgstr "Encontrar bibliotecas compartidas" -#: ../Doc/library/ctypes.rst:1247 +#: ../Doc/library/ctypes.rst:1295 msgid "" "When programming in a compiled language, shared libraries are accessed when " "compiling/linking a program, and when the program is run." @@ -1549,13 +1637,14 @@ msgstr "" "compartidas cuando se compila/enlaza un programa, y cuándo se ejecuta el " "programa." -#: ../Doc/library/ctypes.rst:1250 +#: ../Doc/library/ctypes.rst:1298 +#, fuzzy msgid "" -"The purpose of the :func:`find_library` function is to locate a library in a " -"way similar to what the compiler or runtime loader does (on platforms with " -"several versions of a shared library the most recent should be loaded), " -"while the ctypes library loaders act like when a program is run, and call " -"the runtime loader directly." +"The purpose of the :func:`~ctypes.util.find_library` function is to locate a " +"library in a way similar to what the compiler or runtime loader does (on " +"platforms with several versions of a shared library the most recent should " +"be loaded), while the ctypes library loaders act like when a program is run, " +"and call the runtime loader directly." msgstr "" "El propósito de la función :func:`find_library` es localizar una biblioteca " "de forma similar a lo que hace el compilador o el cargador en tiempo de " @@ -1564,15 +1653,16 @@ msgstr "" "bibliotecas ctypes actúan como cuando se ejecuta un programa, y llaman " "directamente al cargador en tiempo de ejecución." -#: ../Doc/library/ctypes.rst:1256 +#: ../Doc/library/ctypes.rst:1304 +#, fuzzy msgid "" -"The :mod:`ctypes.util` module provides a function which can help to " +"The :mod:`!ctypes.util` module provides a function which can help to " "determine the library to load." msgstr "" "El módulo :mod:`ctypes.util` proporciona una función que puede ayudar a " "determinar la biblioteca a cargar." -#: ../Doc/library/ctypes.rst:1264 +#: ../Doc/library/ctypes.rst:1312 msgid "" "Try to find a library and return a pathname. *name* is the library name " "without any prefix like *lib*, suffix like ``.so``, ``.dylib`` or version " @@ -1585,21 +1675,22 @@ msgstr "" "enlazador posix :option:`!-l`). Si no se puede encontrar ninguna biblioteca, " "retorna ``None``." -#: ../Doc/library/ctypes.rst:1269 ../Doc/library/ctypes.rst:1912 +#: ../Doc/library/ctypes.rst:1317 ../Doc/library/ctypes.rst:1976 msgid "The exact functionality is system dependent." msgstr "La funcionalidad exacta depende del sistema." -#: ../Doc/library/ctypes.rst:1271 +#: ../Doc/library/ctypes.rst:1319 +#, fuzzy msgid "" -"On Linux, :func:`find_library` tries to run external programs (``/sbin/" -"ldconfig``, ``gcc``, ``objdump`` and ``ld``) to find the library file. It " -"returns the filename of the library file." +"On Linux, :func:`~ctypes.util.find_library` tries to run external programs " +"(``/sbin/ldconfig``, ``gcc``, ``objdump`` and ``ld``) to find the library " +"file. It returns the filename of the library file." msgstr "" "En Linux, :func:`find_library` intenta ejecutar programas externos (``/sbin/" "ldconfig``, ``gcc``, ``objdump`` y ``ld``) para encontrar el archivo de la " "biblioteca. retorna el nombre del archivo de la biblioteca." -#: ../Doc/library/ctypes.rst:1275 +#: ../Doc/library/ctypes.rst:1323 msgid "" "On Linux, the value of the environment variable ``LD_LIBRARY_PATH`` is used " "when searching for libraries, if a library cannot be found by any other " @@ -1609,47 +1700,52 @@ msgstr "" "cuando se buscan bibliotecas, si una biblioteca no puede ser encontrada por " "ningún otro medio." -#: ../Doc/library/ctypes.rst:1279 +#: ../Doc/library/ctypes.rst:1327 msgid "Here are some examples::" msgstr "Aquí hay algunos ejemplos::" -#: ../Doc/library/ctypes.rst:1290 +#: ../Doc/library/ctypes.rst:1338 +#, fuzzy msgid "" -"On macOS, :func:`find_library` tries several predefined naming schemes and " -"paths to locate the library, and returns a full pathname if successful::" +"On macOS, :func:`~ctypes.util.find_library` tries several predefined naming " +"schemes and paths to locate the library, and returns a full pathname if " +"successful::" msgstr "" "En macOS, :func:`find_library` prueba varios esquemas de nombres y rutas " "predefinidos para ubicar la biblioteca, y retorna un nombre de ruta completo " "si tiene éxito:" -#: ../Doc/library/ctypes.rst:1304 +#: ../Doc/library/ctypes.rst:1352 +#, fuzzy msgid "" -"On Windows, :func:`find_library` searches along the system search path, and " -"returns the full pathname, but since there is no predefined naming scheme a " -"call like ``find_library(\"c\")`` will fail and return ``None``." +"On Windows, :func:`~ctypes.util.find_library` searches along the system " +"search path, and returns the full pathname, but since there is no predefined " +"naming scheme a call like ``find_library(\"c\")`` will fail and return " +"``None``." msgstr "" "En Windows, :func:`find_library`` busca a lo largo de la ruta de búsqueda " "del sistema, y retorna la ruta completa, pero como no hay un esquema de " "nombres predefinido, una llamada como ``find_library(\"c\")`` fallará y " "retornará ``None``." -#: ../Doc/library/ctypes.rst:1308 +#: ../Doc/library/ctypes.rst:1356 +#, fuzzy msgid "" "If wrapping a shared library with :mod:`ctypes`, it *may* be better to " "determine the shared library name at development time, and hardcode that " -"into the wrapper module instead of using :func:`find_library` to locate the " -"library at runtime." +"into the wrapper module instead of using :func:`~ctypes.util.find_library` " +"to locate the library at runtime." msgstr "" "Si envolvemos una biblioteca compartida con :mod:`ctypes`, puede ser mejor " "determinar el nombre de la biblioteca compartida en tiempo de desarrollo, y " "codificarlo en el módulo de envoltura en lugar de usar :func:`find_library` " "para localizar la biblioteca en tiempo de ejecución." -#: ../Doc/library/ctypes.rst:1316 +#: ../Doc/library/ctypes.rst:1364 msgid "Loading shared libraries" msgstr "Cargando bibliotecas compartidas" -#: ../Doc/library/ctypes.rst:1318 +#: ../Doc/library/ctypes.rst:1366 msgid "" "There are several ways to load shared libraries into the Python process. " "One way is to instantiate one of the following classes:" @@ -1657,7 +1753,7 @@ msgstr "" "Hay varias maneras de cargar las bibliotecas compartidas en el proceso " "Python. Una forma es instanciar una de las siguientes clases:" -#: ../Doc/library/ctypes.rst:1324 +#: ../Doc/library/ctypes.rst:1372 msgid "" "Instances of this class represent loaded shared libraries. Functions in " "these libraries use the standard C calling convention, and are assumed to " @@ -1667,7 +1763,7 @@ msgstr "" "Las funciones en estas bibliotecas utilizan la convención de llamada " "estándar de C y se supone que retornan :c:expr:`int`." -#: ../Doc/library/ctypes.rst:1328 +#: ../Doc/library/ctypes.rst:1376 msgid "" "On Windows creating a :class:`CDLL` instance may fail even if the DLL name " "exists. When a dependent DLL of the loaded DLL is not found, a :exc:" @@ -1688,7 +1784,12 @@ msgstr "" "lista de DLL dependientes y determinar cuál no se encuentra utilizando las " "herramientas de depuración y seguimiento de Windows." -#: ../Doc/library/ctypes.rst:1340 +#: ../Doc/library/ctypes.rst:1388 ../Doc/library/ctypes.rst:1410 +#: ../Doc/library/ctypes.rst:1421 ../Doc/library/ctypes.rst:1438 +msgid "The *name* parameter can now be a :term:`path-like object`." +msgstr "" + +#: ../Doc/library/ctypes.rst:1392 msgid "" "`Microsoft DUMPBIN tool `_ -- A tool to find DLL dependents." @@ -1697,7 +1798,7 @@ msgstr "" "reference/dependents>`_ -- Una herramienta para encontrar dependientes de " "DLL." -#: ../Doc/library/ctypes.rst:1346 +#: ../Doc/library/ctypes.rst:1398 msgid "" "Windows only: Instances of this class represent loaded shared libraries, " "functions in these libraries use the ``stdcall`` calling convention, and are " @@ -1714,11 +1815,11 @@ msgstr "" "junto con un código de error adicional. Si el valor de retorno señala un " "fracaso, se lanza automáticamente un :class:`OSError``." -#: ../Doc/library/ctypes.rst:1353 +#: ../Doc/library/ctypes.rst:1405 msgid ":exc:`WindowsError` used to be raised." msgstr ":exc:`WindowsError` solía ser lanzado." -#: ../Doc/library/ctypes.rst:1359 +#: ../Doc/library/ctypes.rst:1415 msgid "" "Windows only: Instances of this class represent loaded shared libraries, " "functions in these libraries use the ``stdcall`` calling convention, and are " @@ -1729,7 +1830,7 @@ msgstr "" "convención de llamadas ``stdcall`` y se supone que retornan :c:expr:`int` de " "forma predeterminada." -#: ../Doc/library/ctypes.rst:1363 +#: ../Doc/library/ctypes.rst:1423 msgid "" "The Python :term:`global interpreter lock` is released before calling any " "function exported by these libraries, and reacquired afterwards." @@ -1737,7 +1838,7 @@ msgstr "" "El termino Python :term:`global interpreter lock` es lanzado antes de llamar " "a cualquier función exportada por estas librerías, y se requiere después." -#: ../Doc/library/ctypes.rst:1369 +#: ../Doc/library/ctypes.rst:1429 msgid "" "Instances of this class behave like :class:`CDLL` instances, except that the " "Python GIL is *not* released during the function call, and after the " @@ -1750,20 +1851,21 @@ msgstr "" "el flag de error de Python. Si el flag de error esta activado, se lanza una " "excepción Python." -#: ../Doc/library/ctypes.rst:1374 +#: ../Doc/library/ctypes.rst:1434 msgid "Thus, this is only useful to call Python C api functions directly." msgstr "" "Por lo tanto, esto sólo es útil para llamar directamente a las funciones api " "C de Python." -#: ../Doc/library/ctypes.rst:1376 +#: ../Doc/library/ctypes.rst:1440 +#, fuzzy msgid "" "All these classes can be instantiated by calling them with at least one " "argument, the pathname of the shared library. If you have an existing " "handle to an already loaded shared library, it can be passed as the " -"``handle`` named parameter, otherwise the underlying platforms ``dlopen`` or " -"``LoadLibrary`` function is used to load the library into the process, and " -"to get a handle to it." +"``handle`` named parameter, otherwise the underlying platforms :c:func:`!" +"dlopen` or :c:func:`!LoadLibrary` function is used to load the library into " +"the process, and to get a handle to it." msgstr "" "Todas estas clases pueden ser instanciadas llamándolas con al menos un " "argumento, la ruta de la biblioteca compartida. Si tienes un manejador " @@ -1772,7 +1874,7 @@ msgstr "" "``LoadLibrary`` de la plataforma subyacente es utilizada para cargar la " "biblioteca en el proceso, y obtener un manejador de la misma." -#: ../Doc/library/ctypes.rst:1383 +#: ../Doc/library/ctypes.rst:1447 msgid "" "The *mode* parameter can be used to specify how the library is loaded. For " "details, consult the :manpage:`dlopen(3)` manpage. On Windows, *mode* is " @@ -1784,7 +1886,7 @@ msgstr "" "manual. En Windows, *mode* es ignorado. En los sistemas posix, RTLD_NOW " "siempre se agrega, y no es configurable." -#: ../Doc/library/ctypes.rst:1388 +#: ../Doc/library/ctypes.rst:1452 msgid "" "The *use_errno* parameter, when set to true, enables a ctypes mechanism that " "allows accessing the system :data:`errno` error number in a safe way. :mod:" @@ -1801,7 +1903,7 @@ msgstr "" "función se intercambia con la copia privada de ctypes, lo mismo ocurre " "inmediatamente después de la llamada a la función." -#: ../Doc/library/ctypes.rst:1395 +#: ../Doc/library/ctypes.rst:1459 msgid "" "The function :func:`ctypes.get_errno` returns the value of the ctypes " "private copy, and the function :func:`ctypes.set_errno` changes the ctypes " @@ -1811,11 +1913,12 @@ msgstr "" "ctypes, y la función :func:`ctypes.set_errno` cambia la copia privada de " "ctypes a un nuevo valor y retorna el valor anterior." -#: ../Doc/library/ctypes.rst:1399 +#: ../Doc/library/ctypes.rst:1463 +#, fuzzy msgid "" "The *use_last_error* parameter, when set to true, enables the same mechanism " "for the Windows error code which is managed by the :func:`GetLastError` and :" -"func:`SetLastError` Windows API functions; :func:`ctypes.get_last_error` " +"func:`!SetLastError` Windows API functions; :func:`ctypes.get_last_error` " "and :func:`ctypes.set_last_error` are used to request and change the ctypes " "private copy of the windows error code." msgstr "" @@ -1826,12 +1929,13 @@ msgstr "" "set_last_error` se utilizan para solicitar y cambiar la copia privada ctypes " "del código de error de Windows." -#: ../Doc/library/ctypes.rst:1405 +#: ../Doc/library/ctypes.rst:1469 +#, fuzzy msgid "" "The *winmode* parameter is used on Windows to specify how the library is " "loaded (since *mode* is ignored). It takes any value that is valid for the " "Win32 API ``LoadLibraryEx`` flags parameter. When omitted, the default is to " -"use the flags that result in the most secure DLL load to avoiding issues " +"use the flags that result in the most secure DLL load, which avoids issues " "such as DLL hijacking. Passing the full path to the DLL is the safest way to " "ensure the correct library and dependencies are loaded." msgstr "" @@ -1843,11 +1947,11 @@ msgstr "" "completa a la DLL es la forma más segura de asegurar que se cargan la " "biblioteca y las dependencias correctas." -#: ../Doc/library/ctypes.rst:1412 +#: ../Doc/library/ctypes.rst:1476 msgid "Added *winmode* parameter." msgstr "Añadido el parámetro *winmode*." -#: ../Doc/library/ctypes.rst:1419 +#: ../Doc/library/ctypes.rst:1483 msgid "" "Flag to use as *mode* parameter. On platforms where this flag is not " "available, it is defined as the integer zero." @@ -1855,7 +1959,7 @@ msgstr "" "Flag para usar como parámetro *modo*. En las plataformas en las que esta " "bandera no está disponible, se define como el cero entero." -#: ../Doc/library/ctypes.rst:1426 +#: ../Doc/library/ctypes.rst:1490 msgid "" "Flag to use as *mode* parameter. On platforms where this is not available, " "it is the same as *RTLD_GLOBAL*." @@ -1863,7 +1967,7 @@ msgstr "" "Flag para usar como parámetro *modo*. En las plataformas en las que esto no " "está disponible, es lo mismo que *RTLD_GLOBAL*." -#: ../Doc/library/ctypes.rst:1433 +#: ../Doc/library/ctypes.rst:1497 msgid "" "The default mode which is used to load shared libraries. On OSX 10.3, this " "is *RTLD_GLOBAL*, otherwise it is the same as *RTLD_LOCAL*." @@ -1872,7 +1976,7 @@ msgstr "" "En OSX 10.3, esto es *RTLD_GLOBAL*, de lo contrario es lo mismo que " "*RTLD_LOCAL*." -#: ../Doc/library/ctypes.rst:1436 +#: ../Doc/library/ctypes.rst:1500 msgid "" "Instances of these classes have no public methods. Functions exported by " "the shared library can be accessed as attributes or by index. Please note " @@ -1887,7 +1991,7 @@ msgstr "" "repetidamente se retorna el mismo objeto cada vez. Por otro lado, acceder a " "ella a través de un índice retorna un nuevo objeto cada vez::" -#: ../Doc/library/ctypes.rst:1449 +#: ../Doc/library/ctypes.rst:1513 msgid "" "The following public attributes are available, their name starts with an " "underscore to not clash with exported function names:" @@ -1895,27 +1999,28 @@ msgstr "" "Los siguientes atributos públicos están disponibles, su nombre comienza con " "un guión bajo para no chocar con los nombres de las funciones exportadas:" -#: ../Doc/library/ctypes.rst:1455 +#: ../Doc/library/ctypes.rst:1519 msgid "The system handle used to access the library." msgstr "El manejador del sistema usado para acceder a la biblioteca." -#: ../Doc/library/ctypes.rst:1460 +#: ../Doc/library/ctypes.rst:1524 msgid "The name of the library passed in the constructor." msgstr "El nombre de la biblioteca pasado en el constructor." -#: ../Doc/library/ctypes.rst:1462 +#: ../Doc/library/ctypes.rst:1526 +#, fuzzy msgid "" "Shared libraries can also be loaded by using one of the prefabricated " "objects, which are instances of the :class:`LibraryLoader` class, either by " -"calling the :meth:`LoadLibrary` method, or by retrieving the library as " -"attribute of the loader instance." +"calling the :meth:`~LibraryLoader.LoadLibrary` method, or by retrieving the " +"library as attribute of the loader instance." msgstr "" "Las bibliotecas compartidas también pueden ser cargadas usando uno de los " "objetos prefabricados, que son instancias de la clase :class:" "`LibraryLoader`, ya sea llamando al método :meth:`LoadLibrary`, o " "recuperando la biblioteca como atributo de la instancia de carga." -#: ../Doc/library/ctypes.rst:1470 +#: ../Doc/library/ctypes.rst:1534 msgid "" "Class which loads shared libraries. *dlltype* should be one of the :class:" "`CDLL`, :class:`PyDLL`, :class:`WinDLL`, or :class:`OleDLL` types." @@ -1923,18 +2028,20 @@ msgstr "" "Clase que carga bibliotecas compartidas. *dlltype* debe ser uno de los " "tipos :class:`CDLL`, :class:`PyDLL`, :class:`WinDLL`, o :class:`OleDLL`." -#: ../Doc/library/ctypes.rst:1473 +#: ../Doc/library/ctypes.rst:1537 +#, fuzzy msgid "" -":meth:`__getattr__` has special behavior: It allows loading a shared library " -"by accessing it as attribute of a library loader instance. The result is " -"cached, so repeated attribute accesses return the same library each time." +":meth:`!__getattr__` has special behavior: It allows loading a shared " +"library by accessing it as attribute of a library loader instance. The " +"result is cached, so repeated attribute accesses return the same library " +"each time." msgstr "" ":meth:`__getattr__` tiene un comportamiento especial: Permite cargar una " "biblioteca compartida accediendo a ella como atributo de una instancia de " "carga de biblioteca. El resultado se almacena en caché, de modo que los " "accesos repetidos a los atributos retornan la misma biblioteca cada vez." -#: ../Doc/library/ctypes.rst:1479 +#: ../Doc/library/ctypes.rst:1543 msgid "" "Load a shared library into the process and return it. This method always " "returns a new instance of the library." @@ -1942,27 +2049,27 @@ msgstr "" "Carga una biblioteca compartida en el proceso y la retorna. Este método " "siempre retorna una nueva instancia de la biblioteca." -#: ../Doc/library/ctypes.rst:1483 +#: ../Doc/library/ctypes.rst:1547 msgid "These prefabricated library loaders are available:" msgstr "Estos cargadores prefabricados de bibliotecas están disponibles:" -#: ../Doc/library/ctypes.rst:1488 +#: ../Doc/library/ctypes.rst:1552 msgid "Creates :class:`CDLL` instances." msgstr "Crea instancias de :class:`CDLL`." -#: ../Doc/library/ctypes.rst:1494 +#: ../Doc/library/ctypes.rst:1558 msgid "Windows only: Creates :class:`WinDLL` instances." msgstr "Sólo Windows: Crea instancias de :class:`WinDLL`." -#: ../Doc/library/ctypes.rst:1500 +#: ../Doc/library/ctypes.rst:1564 msgid "Windows only: Creates :class:`OleDLL` instances." msgstr "Sólo Windows: Crea instancias de :class:`OleDLL`." -#: ../Doc/library/ctypes.rst:1506 +#: ../Doc/library/ctypes.rst:1570 msgid "Creates :class:`PyDLL` instances." msgstr "Crea instancias de :class:`PyDLL`." -#: ../Doc/library/ctypes.rst:1509 +#: ../Doc/library/ctypes.rst:1573 msgid "" "For accessing the C Python api directly, a ready-to-use Python shared " "library object is available:" @@ -1970,12 +2077,13 @@ msgstr "" "Para acceder directamente a la API C de Python, se dispone de un objeto de " "biblioteca compartida de Python listo-para-usar:" -#: ../Doc/library/ctypes.rst:1515 +#: ../Doc/library/ctypes.rst:1579 +#, fuzzy msgid "" "An instance of :class:`PyDLL` that exposes Python C API functions as " "attributes. Note that all these functions are assumed to return C :c:expr:" "`int`, which is of course not always the truth, so you have to assign the " -"correct :attr:`restype` attribute to use these functions." +"correct :attr:`!restype` attribute to use these functions." msgstr "" "Una instancia de :class:`PyDLL` que expone las funciones de la API de Python " "C como atributos. Tenga en cuenta que se supone que todas estas funciones " @@ -1983,7 +2091,7 @@ msgstr "" "que debe asignar el atributo :attr:`restype` correcto para usar estas " "funciones." -#: ../Doc/library/ctypes.rst:1520 +#: ../Doc/library/ctypes.rst:1584 #, fuzzy msgid "" "Raises an :ref:`auditing event ` ``ctypes.dlopen`` with argument " @@ -1992,7 +2100,7 @@ msgstr "" "Lanza un :ref:`auditing event ` ``ctypes.dlopen`` con argumento " "``name``." -#: ../Doc/library/ctypes.rst:1522 +#: ../Doc/library/ctypes.rst:1586 #, fuzzy msgid "" "Loading a library through any of these objects raises an :ref:`auditing " @@ -2003,7 +2111,7 @@ msgstr "" "`auditing event ` ``ctypes.dlopen`` con el argumento de cadena " "``name``, el nombre usado para cargar la biblioteca." -#: ../Doc/library/ctypes.rst:1526 +#: ../Doc/library/ctypes.rst:1590 #, fuzzy msgid "" "Raises an :ref:`auditing event ` ``ctypes.dlsym`` with arguments " @@ -2012,7 +2120,7 @@ msgstr "" "Lanza un :ref:`auditing event ` ``ctypes.dlsym`` con argumento " "``library``, ``name``." -#: ../Doc/library/ctypes.rst:1528 +#: ../Doc/library/ctypes.rst:1592 #, fuzzy msgid "" "Accessing a function on a loaded library raises an auditing event ``ctypes." @@ -2023,7 +2131,7 @@ msgstr "" "auditoría ``ctypes.dlsym`` con argumentos ``library`` (el objeto de la " "biblioteca) y ``name`` (el nombre del símbolo como cadena o entero)." -#: ../Doc/library/ctypes.rst:1532 +#: ../Doc/library/ctypes.rst:1596 #, fuzzy msgid "" "Raises an :ref:`auditing event ` ``ctypes.dlsym/handle`` with " @@ -2032,7 +2140,7 @@ msgstr "" "Lanza un :ref:`auditing event ` ``ctypes.dlsym/handle`` con " "argumento ``handle``, ``name``." -#: ../Doc/library/ctypes.rst:1534 +#: ../Doc/library/ctypes.rst:1598 msgid "" "In cases when only the library handle is available rather than the object, " "accessing a function raises an auditing event ``ctypes.dlsym/handle`` with " @@ -2043,11 +2151,11 @@ msgstr "" "auditoría ``ctypes.dlsym/handle`` con los argumentos ``handle`` (el " "manejador de la biblioteca en bruto) y ``name``." -#: ../Doc/library/ctypes.rst:1541 +#: ../Doc/library/ctypes.rst:1605 msgid "Foreign functions" msgstr "Funciones foráneas" -#: ../Doc/library/ctypes.rst:1543 +#: ../Doc/library/ctypes.rst:1607 msgid "" "As explained in the previous section, foreign functions can be accessed as " "attributes of loaded shared libraries. The function objects created in this " @@ -2062,11 +2170,11 @@ msgstr "" "retornan el tipo de resultado por defecto especificado por el cargador de la " "biblioteca. Son instancias de una clase privada:" -#: ../Doc/library/ctypes.rst:1552 +#: ../Doc/library/ctypes.rst:1616 msgid "Base class for C callable foreign functions." msgstr "Clase base para funciones foráneas C invocables." -#: ../Doc/library/ctypes.rst:1554 +#: ../Doc/library/ctypes.rst:1618 msgid "" "Instances of foreign functions are also C compatible data types; they " "represent C function pointers." @@ -2074,7 +2182,7 @@ msgstr "" "Las instancias de funciones foráneas también son tipos de datos compatibles " "con C; representan punteros de funciones C." -#: ../Doc/library/ctypes.rst:1557 +#: ../Doc/library/ctypes.rst:1621 msgid "" "This behavior can be customized by assigning to special attributes of the " "foreign function object." @@ -2082,7 +2190,7 @@ msgstr "" "Este comportamiento puede personalizarse asignando a los atributos " "especiales del objeto de la función foránea." -#: ../Doc/library/ctypes.rst:1562 +#: ../Doc/library/ctypes.rst:1626 msgid "" "Assign a ctypes type to specify the result type of the foreign function. Use " "``None`` for :c:expr:`void`, a function not returning anything." @@ -2090,13 +2198,14 @@ msgstr "" "Asigne un tipo ctypes para especificar el tipo de resultado de la función " "externa. Use ``None`` para :c:expr:`void`, una función que no retorna nada." -#: ../Doc/library/ctypes.rst:1565 +#: ../Doc/library/ctypes.rst:1629 +#, fuzzy msgid "" "It is possible to assign a callable Python object that is not a ctypes type, " "in this case the function is assumed to return a C :c:expr:`int`, and the " "callable will be called with this integer, allowing further processing or " "error checking. Using this is deprecated, for more flexible post processing " -"or error checking use a ctypes data type as :attr:`restype` and assign a " +"or error checking use a ctypes data type as :attr:`!restype` and assign a " "callable to the :attr:`errcheck` attribute." msgstr "" "Es posible asignar un objeto de Python invocable que no sea del tipo ctypes, " @@ -2107,7 +2216,7 @@ msgstr "" "ctypes como :attr:`restype` y asigne un invocable al atributo :attr:" "`errcheck`." -#: ../Doc/library/ctypes.rst:1574 +#: ../Doc/library/ctypes.rst:1638 msgid "" "Assign a tuple of ctypes types to specify the argument types that the " "function accepts. Functions using the ``stdcall`` calling convention can " @@ -2121,11 +2230,12 @@ msgstr "" "la longitud de esta tupla; las funciones que utilizan la convención de " "llamada C aceptan también argumentos adicionales no especificados." -#: ../Doc/library/ctypes.rst:1580 +#: ../Doc/library/ctypes.rst:1644 +#, fuzzy msgid "" "When a foreign function is called, each actual argument is passed to the :" -"meth:`from_param` class method of the items in the :attr:`argtypes` tuple, " -"this method allows adapting the actual argument to an object that the " +"meth:`~_CData.from_param` class method of the items in the :attr:`argtypes` " +"tuple, this method allows adapting the actual argument to an object that the " "foreign function accepts. For example, a :class:`c_char_p` item in the :" "attr:`argtypes` tuple will convert a string passed as argument into a bytes " "object using ctypes conversion rules." @@ -2137,12 +2247,13 @@ msgstr "" "tupla :attr:`argtypes` convertirá una cadena pasada como argumento en un " "objeto de bytes utilizando reglas de conversión ctypes." -#: ../Doc/library/ctypes.rst:1587 +#: ../Doc/library/ctypes.rst:1651 +#, fuzzy msgid "" "New: It is now possible to put items in argtypes which are not ctypes types, " -"but each item must have a :meth:`from_param` method which returns a value " -"usable as argument (integer, string, ctypes instance). This allows defining " -"adapters that can adapt custom objects as function parameters." +"but each item must have a :meth:`~_CData.from_param` method which returns a " +"value usable as argument (integer, string, ctypes instance). This allows " +"defining adapters that can adapt custom objects as function parameters." msgstr "" "Nuevo: Ahora es posible poner en argtypes elementos que no son de tipo " "ctypes, pero cada elemento debe tener un método :meth:`from_param` que " @@ -2150,7 +2261,7 @@ msgstr "" "ctypes). Esto permite definir adaptadores que pueden adaptar objetos " "personalizados como parámetros de la función." -#: ../Doc/library/ctypes.rst:1594 +#: ../Doc/library/ctypes.rst:1658 msgid "" "Assign a Python function or another callable to this attribute. The callable " "will be called with three or more arguments:" @@ -2158,15 +2269,16 @@ msgstr "" "Asigne una función Python u otra llamada a este atributo. El invocable será " "llamado con tres o más argumentos:" -#: ../Doc/library/ctypes.rst:1601 +#: ../Doc/library/ctypes.rst:1665 +#, fuzzy msgid "" -"*result* is what the foreign function returns, as specified by the :attr:" -"`restype` attribute." +"*result* is what the foreign function returns, as specified by the :attr:`!" +"restype` attribute." msgstr "" "*result* es lo que retorna la función externa, como se especifica en el " "atributo :attr:`restype`." -#: ../Doc/library/ctypes.rst:1604 +#: ../Doc/library/ctypes.rst:1668 msgid "" "*func* is the foreign function object itself, this allows reusing the same " "callable object to check or post process the results of several functions." @@ -2175,7 +2287,7 @@ msgstr "" "el mismo objeto invocable para comprobar o postprocesar los resultados de " "varias funciones." -#: ../Doc/library/ctypes.rst:1608 +#: ../Doc/library/ctypes.rst:1672 msgid "" "*arguments* is a tuple containing the parameters originally passed to the " "function call, this allows specializing the behavior on the arguments used." @@ -2184,7 +2296,7 @@ msgstr "" "la llamada de la función, esto permite especializar el comportamiento en los " "argumentos utilizados." -#: ../Doc/library/ctypes.rst:1612 +#: ../Doc/library/ctypes.rst:1676 msgid "" "The object that this function returns will be returned from the foreign " "function call, but it can also check the result value and raise an exception " @@ -2194,7 +2306,7 @@ msgstr "" "función foránea, pero también puede comprobar el valor del resultado y hacer " "una excepción si la llamada de la función foránea ha fallado." -#: ../Doc/library/ctypes.rst:1619 +#: ../Doc/library/ctypes.rst:1683 msgid "" "This exception is raised when a foreign function call cannot convert one of " "the passed arguments." @@ -2203,7 +2315,7 @@ msgstr "" "convertir uno de los argumentos pasados." # Typo en la versión original, se envió un PR para corregirlo -#: ../Doc/library/ctypes.rst:1623 +#: ../Doc/library/ctypes.rst:1687 #, fuzzy msgid "" "Raises an :ref:`auditing event ` ``ctypes.set_exception`` with " @@ -2213,7 +2325,7 @@ msgstr "" "argumento ``code``." # Typo en la versión original, se envió un PR para corregirlo -#: ../Doc/library/ctypes.rst:1625 +#: ../Doc/library/ctypes.rst:1689 msgid "" "On Windows, when a foreign function call raises a system exception (for " "example, due to an access violation), it will be captured and replaced with " @@ -2228,7 +2340,7 @@ msgstr "" "permitiendo que un gancho de auditoría reemplace la excepción con la suya " "propia." -#: ../Doc/library/ctypes.rst:1631 +#: ../Doc/library/ctypes.rst:1695 #, fuzzy msgid "" "Raises an :ref:`auditing event ` ``ctypes.call_function`` with " @@ -2237,7 +2349,7 @@ msgstr "" "Genera un :ref:`auditing event ` ``ctypes.call_function`` con " "argumentos ``func_pointer``, ``arguments``." -#: ../Doc/library/ctypes.rst:1633 +#: ../Doc/library/ctypes.rst:1697 msgid "" "Some ways to invoke foreign function calls may raise an auditing event " "``ctypes.call_function`` with arguments ``function pointer`` and " @@ -2247,11 +2359,11 @@ msgstr "" "evento de auditoría ``ctypes.call_function`` con los argumentos ``function " "pointer`` y ``arguments``." -#: ../Doc/library/ctypes.rst:1639 +#: ../Doc/library/ctypes.rst:1703 msgid "Function prototypes" msgstr "Prototipos de funciones" -#: ../Doc/library/ctypes.rst:1641 +#: ../Doc/library/ctypes.rst:1705 msgid "" "Foreign functions can also be created by instantiating function prototypes. " "Function prototypes are similar to function prototypes in C; they describe a " @@ -2270,7 +2382,7 @@ msgstr "" "decoradores, y como tales, ser aplicadas a las funciones a través de la " "sintaxis ``@wrapper``. Ver :ref:`ctypes-callback-functions` para ejemplos." -#: ../Doc/library/ctypes.rst:1652 +#: ../Doc/library/ctypes.rst:1716 msgid "" "The returned function prototype creates functions that use the standard C " "calling convention. The function will release the GIL during the call. If " @@ -2285,7 +2397,7 @@ msgstr "" "antes y después de la llamada; *use_last_error* hace lo mismo con el código " "de error de Windows." -#: ../Doc/library/ctypes.rst:1662 +#: ../Doc/library/ctypes.rst:1726 msgid "" "Windows only: The returned function prototype creates functions that use the " "``stdcall`` calling convention. The function will release the GIL during " @@ -2296,7 +2408,7 @@ msgstr "" "llamada. *use_errno* y *use_last_error* tienen el mismo significado que el " "anterior." -#: ../Doc/library/ctypes.rst:1670 +#: ../Doc/library/ctypes.rst:1734 msgid "" "The returned function prototype creates functions that use the Python " "calling convention. The function will *not* release the GIL during the call." @@ -2304,7 +2416,7 @@ msgstr "" "El prototipo de función retornado crea funciones que usan la convención de " "llamadas de Python. La función *no* liberará el GIL durante la llamada." -#: ../Doc/library/ctypes.rst:1673 +#: ../Doc/library/ctypes.rst:1737 msgid "" "Function prototypes created by these factory functions can be instantiated " "in different ways, depending on the type and number of the parameters in the " @@ -2314,21 +2426,21 @@ msgstr "" "ser instanciados de diferentes maneras, dependiendo del tipo y el número de " "los parámetros en la llamada:" -#: ../Doc/library/ctypes.rst:1681 +#: ../Doc/library/ctypes.rst:1745 msgid "" "Returns a foreign function at the specified address which must be an integer." msgstr "" "Retorna una función foránea en la dirección especificada que debe ser un " "número entero." -#: ../Doc/library/ctypes.rst:1688 +#: ../Doc/library/ctypes.rst:1752 msgid "" "Create a C callable function (a callback function) from a Python *callable*." msgstr "" "Crear una función de llamada C (una función de retrollamada) a partir de un " "*callable* Python." -#: ../Doc/library/ctypes.rst:1695 +#: ../Doc/library/ctypes.rst:1759 msgid "" "Returns a foreign function exported by a shared library. *func_spec* must be " "a 2-tuple ``(name_or_ordinal, library)``. The first item is the name of the " @@ -2341,7 +2453,7 @@ msgstr "" "la función exportada como entero pequeño. El segundo elemento es la " "instancia de la biblioteca compartida." -#: ../Doc/library/ctypes.rst:1705 +#: ../Doc/library/ctypes.rst:1769 msgid "" "Returns a foreign function that will call a COM method. *vtbl_index* is the " "index into the virtual function table, a small non-negative integer. *name* " @@ -2354,17 +2466,18 @@ msgstr "" "identificador de la interfaz que se utiliza en el informe de errores " "extendido." -#: ../Doc/library/ctypes.rst:1710 +#: ../Doc/library/ctypes.rst:1774 +#, fuzzy msgid "" "COM methods use a special calling convention: They require a pointer to the " "COM interface as first argument, in addition to those parameters that are " -"specified in the :attr:`argtypes` tuple." +"specified in the :attr:`!argtypes` tuple." msgstr "" "Los métodos COM usan una convención especial de llamadas: Requieren un " "puntero a la interfaz COM como primer argumento, además de los parámetros " "que se especifican en la tupla :attr:`argtypes`." -#: ../Doc/library/ctypes.rst:1714 +#: ../Doc/library/ctypes.rst:1778 msgid "" "The optional *paramflags* parameter creates foreign function wrappers with " "much more functionality than the features described above." @@ -2372,12 +2485,15 @@ msgstr "" "El parámetro opcional *paramflags* crea envoltorios de funciones foráneas " "con mucha más funcionalidad que las características descritas anteriormente." -#: ../Doc/library/ctypes.rst:1717 -msgid "*paramflags* must be a tuple of the same length as :attr:`argtypes`." +#: ../Doc/library/ctypes.rst:1781 +#, fuzzy +msgid "" +"*paramflags* must be a tuple of the same length as :attr:`~_FuncPtr." +"argtypes`." msgstr "" "*paramflags* deben ser una tupla de la misma longitud que :attr:`argtypes`." -#: ../Doc/library/ctypes.rst:1719 +#: ../Doc/library/ctypes.rst:1783 msgid "" "Each item in this tuple contains further information about a parameter, it " "must be a tuple containing one, two, or three items." @@ -2385,7 +2501,7 @@ msgstr "" "Cada elemento de esta tupla contiene más información sobre un parámetro, " "debe ser una tupla que contenga uno, dos o tres elementos." -#: ../Doc/library/ctypes.rst:1722 +#: ../Doc/library/ctypes.rst:1786 msgid "" "The first item is an integer containing a combination of direction flags for " "the parameter:" @@ -2393,31 +2509,31 @@ msgstr "" "El primer elemento es un entero que contiene una combinación de flags de " "dirección para el parámetro:" -#: ../Doc/library/ctypes.rst:1726 +#: ../Doc/library/ctypes.rst:1790 msgid "1" msgstr "1" -#: ../Doc/library/ctypes.rst:1726 +#: ../Doc/library/ctypes.rst:1790 msgid "Specifies an input parameter to the function." msgstr "Especifica un parámetro de entrada a la función." -#: ../Doc/library/ctypes.rst:1729 +#: ../Doc/library/ctypes.rst:1793 msgid "2" msgstr "2" -#: ../Doc/library/ctypes.rst:1729 +#: ../Doc/library/ctypes.rst:1793 msgid "Output parameter. The foreign function fills in a value." msgstr "Parámetro de salida. La función foránea rellena un valor." -#: ../Doc/library/ctypes.rst:1732 +#: ../Doc/library/ctypes.rst:1796 msgid "4" msgstr "4" -#: ../Doc/library/ctypes.rst:1732 +#: ../Doc/library/ctypes.rst:1796 msgid "Input parameter which defaults to the integer zero." msgstr "Parámetro de entrada que por defecto es el cero entero." -#: ../Doc/library/ctypes.rst:1734 +#: ../Doc/library/ctypes.rst:1798 msgid "" "The optional second item is the parameter name as string. If this is " "specified, the foreign function can be called with named parameters." @@ -2426,11 +2542,11 @@ msgstr "" "especifica esto, se puede llamar a la función foránea con parámetros con " "nombre." -#: ../Doc/library/ctypes.rst:1737 +#: ../Doc/library/ctypes.rst:1801 msgid "The optional third item is the default value for this parameter." msgstr "El tercer elemento opcional es el valor por defecto de este parámetro." -#: ../Doc/library/ctypes.rst:1739 +#: ../Doc/library/ctypes.rst:1803 msgid "" "This example demonstrates how to wrap the Windows ``MessageBoxW`` function " "so that it supports default parameters and named arguments. The C " @@ -2440,15 +2556,15 @@ msgstr "" "para que soporte los parámetros por defecto y los argumentos con nombre. La " "declaración C del archivo de cabecera de Windows es esta::" -#: ../Doc/library/ctypes.rst:1750 ../Doc/library/ctypes.rst:1773 +#: ../Doc/library/ctypes.rst:1814 ../Doc/library/ctypes.rst:1837 msgid "Here is the wrapping with :mod:`ctypes`::" msgstr "Aquí está el envoltorio con :mod:`ctypes`::" -#: ../Doc/library/ctypes.rst:1758 +#: ../Doc/library/ctypes.rst:1822 msgid "The ``MessageBox`` foreign function can now be called in these ways::" msgstr "La función foránea de ``MessageBox`` puede ser llamada de esta manera:" -#: ../Doc/library/ctypes.rst:1764 +#: ../Doc/library/ctypes.rst:1828 msgid "" "A second example demonstrates output parameters. The win32 " "``GetWindowRect`` function retrieves the dimensions of a specified window by " @@ -2460,7 +2576,7 @@ msgstr "" "especificada copiándolas en la estructura ``RECT`` que la persona que llama " "tiene que suministrar. Aquí está la declaración C::" -#: ../Doc/library/ctypes.rst:1782 +#: ../Doc/library/ctypes.rst:1846 msgid "" "Functions with output parameters will automatically return the output " "parameter value if there is a single one, or a tuple containing the output " @@ -2472,13 +2588,14 @@ msgstr "" "valores del parámetro de salida cuando hay más de uno, por lo que la función " "GetWindowRect retorna ahora una instancia RECT, cuando se llama." -#: ../Doc/library/ctypes.rst:1787 +#: ../Doc/library/ctypes.rst:1851 +#, fuzzy msgid "" -"Output parameters can be combined with the :attr:`errcheck` protocol to do " -"further output processing and error checking. The win32 ``GetWindowRect`` " -"api function returns a ``BOOL`` to signal success or failure, so this " -"function could do the error checking, and raises an exception when the api " -"call failed::" +"Output parameters can be combined with the :attr:`~_FuncPtr.errcheck` " +"protocol to do further output processing and error checking. The win32 " +"``GetWindowRect`` api function returns a ``BOOL`` to signal success or " +"failure, so this function could do the error checking, and raises an " +"exception when the api call failed::" msgstr "" "Los parámetros de salida pueden combinarse con el protocolo :attr:`errcheck` " "para hacer un mayor procesamiento de la salida y la comprobación de errores. " @@ -2486,11 +2603,12 @@ msgstr "" "el éxito o el fracaso, por lo que esta función podría hacer la comprobación " "de errores, y plantea una excepción cuando la llamada api ha fallado::" -#: ../Doc/library/ctypes.rst:1800 +#: ../Doc/library/ctypes.rst:1864 +#, fuzzy msgid "" -"If the :attr:`errcheck` function returns the argument tuple it receives " -"unchanged, :mod:`ctypes` continues the normal processing it does on the " -"output parameters. If you want to return a tuple of window coordinates " +"If the :attr:`~_FuncPtr.errcheck` function returns the argument tuple it " +"receives unchanged, :mod:`ctypes` continues the normal processing it does on " +"the output parameters. If you want to return a tuple of window coordinates " "instead of a ``RECT`` instance, you can retrieve the fields in the function " "and return them instead, the normal processing will no longer take place::" msgstr "" @@ -2501,11 +2619,11 @@ msgstr "" "la función y retornarlos en su lugar, el procesamiento normal ya no tendrá " "lugar::" -#: ../Doc/library/ctypes.rst:1819 +#: ../Doc/library/ctypes.rst:1883 msgid "Utility functions" msgstr "Funciones de utilidad" -#: ../Doc/library/ctypes.rst:1823 +#: ../Doc/library/ctypes.rst:1887 msgid "" "Returns the address of the memory buffer as integer. *obj* must be an " "instance of a ctypes type." @@ -2513,7 +2631,7 @@ msgstr "" "Retorna la dirección del buffer de memoria como un entero. *obj* debe ser " "una instancia de tipo ctypes." -#: ../Doc/library/ctypes.rst:1826 +#: ../Doc/library/ctypes.rst:1890 msgid "" "Raises an :ref:`auditing event ` ``ctypes.addressof`` with " "argument ``obj``." @@ -2521,7 +2639,7 @@ msgstr "" "Lanza un :ref:`auditing event ` ``ctypes.addressof`` con el " "argumento ``obj``." -#: ../Doc/library/ctypes.rst:1831 +#: ../Doc/library/ctypes.rst:1895 msgid "" "Returns the alignment requirements of a ctypes type. *obj_or_type* must be a " "ctypes type or instance." @@ -2529,7 +2647,7 @@ msgstr "" "Retorna los requerimientos de alineación de un tipo de ctypes. *obj_or_type* " "debe ser un tipo o instancia ctypes." -#: ../Doc/library/ctypes.rst:1837 +#: ../Doc/library/ctypes.rst:1901 msgid "" "Returns a light-weight pointer to *obj*, which must be an instance of a " "ctypes type. *offset* defaults to zero, and must be an integer that will be " @@ -2539,11 +2657,11 @@ msgstr "" "ctypes. *offset* es por defecto cero, y debe ser un entero que se añadirá al " "valor del puntero interno." -#: ../Doc/library/ctypes.rst:1841 +#: ../Doc/library/ctypes.rst:1905 msgid "``byref(obj, offset)`` corresponds to this C code::" msgstr "``byref(obj, offset)`` corresponde a este código C::" -#: ../Doc/library/ctypes.rst:1845 +#: ../Doc/library/ctypes.rst:1909 msgid "" "The returned object can only be used as a foreign function call parameter. " "It behaves similar to ``pointer(obj)``, but the construction is a lot faster." @@ -2552,7 +2670,7 @@ msgstr "" "función foránea. Se comporta de manera similar a ``pointer(obj)``, pero la " "construcción es mucho más rápida." -#: ../Doc/library/ctypes.rst:1851 +#: ../Doc/library/ctypes.rst:1915 msgid "" "This function is similar to the cast operator in C. It returns a new " "instance of *type* which points to the same memory block as *obj*. *type* " @@ -2564,7 +2682,7 @@ msgstr "" "debe ser un tipo de puntero, y *obj* debe ser un objeto que pueda ser " "interpretado como un puntero." -#: ../Doc/library/ctypes.rst:1859 +#: ../Doc/library/ctypes.rst:1923 msgid "" "This function creates a mutable character buffer. The returned object is a " "ctypes array of :class:`c_char`." @@ -2572,7 +2690,7 @@ msgstr "" "Esta función crea un búfer de caracteres mutables. El objeto retornado es un " "arreglo de ctypes de :class:`c_char`." -#: ../Doc/library/ctypes.rst:1862 +#: ../Doc/library/ctypes.rst:1926 msgid "" "*init_or_size* must be an integer which specifies the size of the array, or " "a bytes object which will be used to initialize the array items." @@ -2581,7 +2699,7 @@ msgstr "" "arreglo, o un objeto de bytes que se utilizará para inicializar los " "elementos del arreglo." -#: ../Doc/library/ctypes.rst:1865 +#: ../Doc/library/ctypes.rst:1929 msgid "" "If a bytes object is specified as first argument, the buffer is made one " "item larger than its length so that the last element in the array is a NUL " @@ -2595,7 +2713,7 @@ msgstr "" "segundo argumento que permite especificar el tamaño del arreglo si no se " "debe utilizar la longitud de los bytes." -#: ../Doc/library/ctypes.rst:1870 +#: ../Doc/library/ctypes.rst:1934 msgid "" "Raises an :ref:`auditing event ` ``ctypes.create_string_buffer`` " "with arguments ``init``, ``size``." @@ -2603,7 +2721,7 @@ msgstr "" "Lanza un :ref:`auditing event ` ``ctypes.create_string_buffer`` " "con argumentos ``init``, ``size``." -#: ../Doc/library/ctypes.rst:1875 +#: ../Doc/library/ctypes.rst:1939 msgid "" "This function creates a mutable unicode character buffer. The returned " "object is a ctypes array of :class:`c_wchar`." @@ -2611,7 +2729,7 @@ msgstr "" "Esta función crea un búfer de caracteres unicode mutable. El objeto " "retornado es un arreglo de ctypes de :class:`c_wchar`." -#: ../Doc/library/ctypes.rst:1878 +#: ../Doc/library/ctypes.rst:1942 msgid "" "*init_or_size* must be an integer which specifies the size of the array, or " "a string which will be used to initialize the array items." @@ -2619,7 +2737,7 @@ msgstr "" "*init_or_size* debe ser un entero que especifique el tamaño del arreglo, o " "una cadena que se utilizará para inicializar los elementos del arreglo." -#: ../Doc/library/ctypes.rst:1881 +#: ../Doc/library/ctypes.rst:1945 msgid "" "If a string is specified as first argument, the buffer is made one item " "larger than the length of the string so that the last element in the array " @@ -2633,7 +2751,7 @@ msgstr "" "entero como segundo argumento que permite especificar el tamaño del arreglo " "si no se debe utilizar la longitud de la cadena." -#: ../Doc/library/ctypes.rst:1887 +#: ../Doc/library/ctypes.rst:1951 msgid "" "Raises an :ref:`auditing event ` ``ctypes.create_unicode_buffer`` " "with arguments ``init``, ``size``." @@ -2641,7 +2759,7 @@ msgstr "" "Lanza un :ref:`auditing event ` ``ctypes.create_unicode_buffer`` " "con argumentos ``init``, ``size``." -#: ../Doc/library/ctypes.rst:1892 +#: ../Doc/library/ctypes.rst:1956 msgid "" "Windows only: This function is a hook which allows implementing in-process " "COM servers with ctypes. It is called from the DllCanUnloadNow function " @@ -2651,7 +2769,7 @@ msgstr "" "COM en proceso con ctypes. Se llama desde la función DllCanUnloadNow que la " "extensión _ctypes dll exporta." -#: ../Doc/library/ctypes.rst:1899 +#: ../Doc/library/ctypes.rst:1963 msgid "" "Windows only: This function is a hook which allows implementing in-process " "COM servers with ctypes. It is called from the DllGetClassObject function " @@ -2661,7 +2779,7 @@ msgstr "" "COM en proceso con ctypes. Se llama desde la función DllGetClassObject que " "la extensión ``_ctypes`` exporta." -#: ../Doc/library/ctypes.rst:1907 +#: ../Doc/library/ctypes.rst:1971 msgid "" "Try to find a library and return a pathname. *name* is the library name " "without any prefix like ``lib``, suffix like ``.so``, ``.dylib`` or version " @@ -2674,7 +2792,7 @@ msgstr "" "del enlazador posix :option:`!-l`). Si no se puede encontrar ninguna " "biblioteca, retorna ``None``." -#: ../Doc/library/ctypes.rst:1918 +#: ../Doc/library/ctypes.rst:1982 msgid "" "Windows only: return the filename of the VC runtime library used by Python, " "and by the extension modules. If the name of the library cannot be " @@ -2684,7 +2802,7 @@ msgstr "" "ejecución de VC usada por Python, y por los módulos de extensión. Si no se " "puede determinar el nombre de la biblioteca, se retorna ``None``." -#: ../Doc/library/ctypes.rst:1922 +#: ../Doc/library/ctypes.rst:1986 msgid "" "If you need to free memory, for example, allocated by an extension module " "with a call to the ``free(void *)``, it is important that you use the " @@ -2694,7 +2812,7 @@ msgstr "" "extensión con una llamada al ``free(void *)``, es importante que utilice la " "función en la misma biblioteca que asignó la memoria." -#: ../Doc/library/ctypes.rst:1929 +#: ../Doc/library/ctypes.rst:1993 msgid "" "Windows only: Returns a textual description of the error code *code*. If no " "error code is specified, the last error code is used by calling the Windows " @@ -2704,7 +2822,7 @@ msgstr "" "no se especifica ningún código de error, se utiliza el último código de " "error llamando a la función de api de Windows GetLastError." -#: ../Doc/library/ctypes.rst:1936 +#: ../Doc/library/ctypes.rst:2000 msgid "" "Windows only: Returns the last error code set by Windows in the calling " "thread. This function calls the Windows ``GetLastError()`` function " @@ -2715,7 +2833,7 @@ msgstr "" "``GetLastError()`` de Windows, no retorna la copia privada ctypes del código " "de error." -#: ../Doc/library/ctypes.rst:1942 +#: ../Doc/library/ctypes.rst:2006 msgid "" "Returns the current value of the ctypes-private copy of the system :data:" "`errno` variable in the calling thread." @@ -2723,7 +2841,7 @@ msgstr "" "Retorna el valor actual de la copia ctypes-private de la variable de " "sistema :data:`errno` en el hilo de llamada." -#: ../Doc/library/ctypes.rst:1945 +#: ../Doc/library/ctypes.rst:2009 msgid "" "Raises an :ref:`auditing event ` ``ctypes.get_errno`` with no " "arguments." @@ -2731,15 +2849,16 @@ msgstr "" "Lanza un :ref:`auditing event ` ``ctypes.get_errno`` sin " "argumentos." -#: ../Doc/library/ctypes.rst:1949 +#: ../Doc/library/ctypes.rst:2013 +#, fuzzy msgid "" "Windows only: returns the current value of the ctypes-private copy of the " -"system :data:`LastError` variable in the calling thread." +"system :data:`!LastError` variable in the calling thread." msgstr "" "Sólo Windows: retorna el valor actual de la copia ctypes-private de la " "variable de sistema :data:`LastError` en el hilo de llamada." -#: ../Doc/library/ctypes.rst:1952 +#: ../Doc/library/ctypes.rst:2016 msgid "" "Raises an :ref:`auditing event ` ``ctypes.get_last_error`` with no " "arguments." @@ -2747,7 +2866,7 @@ msgstr "" "Lanza un :ref:`auditing event ` ``ctypes.get_last_error`` sin " "argumentos." -#: ../Doc/library/ctypes.rst:1956 +#: ../Doc/library/ctypes.rst:2020 msgid "" "Same as the standard C memmove library function: copies *count* bytes from " "*src* to *dst*. *dst* and *src* must be integers or ctypes instances that " @@ -2757,7 +2876,7 @@ msgstr "" "*count* bytes de *src* a *dst*. *dst* y *src* deben ser enteros o instancias " "ctypes que pueden ser convertidos en punteros." -#: ../Doc/library/ctypes.rst:1963 +#: ../Doc/library/ctypes.rst:2027 msgid "" "Same as the standard C memset library function: fills the memory block at " "address *dst* with *count* bytes of value *c*. *dst* must be an integer " @@ -2768,26 +2887,28 @@ msgstr "" "*dst* debe ser un número entero que especifique una dirección, o una " "instancia ctypes." -#: ../Doc/library/ctypes.rst:1970 +#: ../Doc/library/ctypes.rst:2034 +#, fuzzy msgid "" -"This factory function creates and returns a new ctypes pointer type. Pointer " -"types are cached and reused internally, so calling this function repeatedly " -"is cheap. *type* must be a ctypes type." +"Create and return a new ctypes pointer type. Pointer types are cached and " +"reused internally, so calling this function repeatedly is cheap. *type* must " +"be a ctypes type." msgstr "" "Esta función de fábrica crea y retorna un nuevo tipo de puntero ctypes. Los " "tipos de puntero se almacenan en caché y se reutilizan internamente, por lo " "que llamar a esta función repetidamente es barato. *type* debe ser un tipo " "ctypes." -#: ../Doc/library/ctypes.rst:1977 +#: ../Doc/library/ctypes.rst:2041 +#, fuzzy msgid "" -"This function creates a new pointer instance, pointing to *obj*. The " -"returned object is of the type ``POINTER(type(obj))``." +"Create a new pointer instance, pointing to *obj*. The returned object is of " +"the type ``POINTER(type(obj))``." msgstr "" "Esta función crea una nueva instancia de puntero, apuntando a *obj*. El " "objeto retornado es del tipo ``POINTER(tipo(obj))``." -#: ../Doc/library/ctypes.rst:1980 +#: ../Doc/library/ctypes.rst:2044 msgid "" "Note: If you just want to pass a pointer to an object to a foreign function " "call, you should use ``byref(obj)`` which is much faster." @@ -2795,7 +2916,7 @@ msgstr "" "Nota: Si sólo quieres pasar un puntero a un objeto a una llamada de función " "foránea, deberías usar ``byref(obj)`` que es mucho más rápido." -#: ../Doc/library/ctypes.rst:1986 +#: ../Doc/library/ctypes.rst:2050 msgid "" "This function resizes the internal memory buffer of *obj*, which must be an " "instance of a ctypes type. It is not possible to make the buffer smaller " @@ -2807,7 +2928,7 @@ msgstr "" "el tamaño nativo del tipo de objetos, como lo indica ``size of " "(type(obj))``, pero es posible agrandar el buffer." -#: ../Doc/library/ctypes.rst:1994 +#: ../Doc/library/ctypes.rst:2058 msgid "" "Set the current value of the ctypes-private copy of the system :data:`errno` " "variable in the calling thread to *value* and return the previous value." @@ -2815,7 +2936,7 @@ msgstr "" "Poner el valor actual de la copia ctypes-private de la variable del sistema :" "data:`errno` en el hilo de llamada a *valor* y retornar el valor anterior." -#: ../Doc/library/ctypes.rst:1997 +#: ../Doc/library/ctypes.rst:2061 msgid "" "Raises an :ref:`auditing event ` ``ctypes.set_errno`` with " "argument ``errno``." @@ -2823,17 +2944,18 @@ msgstr "" "Lanza un :ref:`auditing event ` ``ctypes.set_errno`` con argumento " "``errno``." -#: ../Doc/library/ctypes.rst:2002 +#: ../Doc/library/ctypes.rst:2066 +#, fuzzy msgid "" "Windows only: set the current value of the ctypes-private copy of the " -"system :data:`LastError` variable in the calling thread to *value* and " +"system :data:`!LastError` variable in the calling thread to *value* and " "return the previous value." msgstr "" "Sólo para Windows: pone el valor actual de la copia ctypes-private de la " "variable del sistema :data:`LastError` en el hilo de llamada a *valor* y " "retorna el valor anterior." -#: ../Doc/library/ctypes.rst:2006 +#: ../Doc/library/ctypes.rst:2070 msgid "" "Raises an :ref:`auditing event ` ``ctypes.set_last_error`` with " "argument ``error``." @@ -2841,7 +2963,7 @@ msgstr "" "Lanza un :ref:`auditing event ` ``ctypes.set_last_error`` con " "argumento ``error``." -#: ../Doc/library/ctypes.rst:2011 +#: ../Doc/library/ctypes.rst:2075 msgid "" "Returns the size in bytes of a ctypes type or instance memory buffer. Does " "the same as the C ``sizeof`` operator." @@ -2849,7 +2971,7 @@ msgstr "" "Retorna el tamaño en bytes de un buffer de memoria tipo ctypes o instancia. " "Hace lo mismo que el operador C ``sizeof``." -#: ../Doc/library/ctypes.rst:2017 +#: ../Doc/library/ctypes.rst:2081 msgid "" "This function returns the C string starting at memory address *address* as a " "bytes object. If size is specified, it is used as size, otherwise the string " @@ -2859,7 +2981,7 @@ msgstr "" "*address* como un objeto de bytes. Si se especifica el tamaño, se utiliza " "como tamaño, de lo contrario se asume que la cadena tiene un final cero." -#: ../Doc/library/ctypes.rst:2021 +#: ../Doc/library/ctypes.rst:2085 msgid "" "Raises an :ref:`auditing event ` ``ctypes.string_at`` with " "arguments ``address``, ``size``." @@ -2867,7 +2989,7 @@ msgstr "" "Lanza un :ref:`auditing event ` ``ctypes.string_at`` con " "argumentos ``address``, ``size``." -#: ../Doc/library/ctypes.rst:2026 +#: ../Doc/library/ctypes.rst:2090 msgid "" "Windows only: this function is probably the worst-named thing in ctypes. It " "creates an instance of OSError. If *code* is not specified, " @@ -2881,11 +3003,11 @@ msgstr "" "especifica *descr*, se llama a :func:`FormatError`` para obtener una " "descripción textual del error." -#: ../Doc/library/ctypes.rst:2032 +#: ../Doc/library/ctypes.rst:2096 msgid "An instance of :exc:`WindowsError` used to be created." msgstr "Una instancia de :exc:`WindowsError` solía ser creada." -#: ../Doc/library/ctypes.rst:2038 +#: ../Doc/library/ctypes.rst:2102 msgid "" "This function returns the wide character string starting at memory address " "*address* as a string. If *size* is specified, it is used as the number of " @@ -2897,7 +3019,7 @@ msgstr "" "utiliza como el número de caracteres de la cadena, de lo contrario se asume " "que la cadena tiene un final cero." -#: ../Doc/library/ctypes.rst:2043 +#: ../Doc/library/ctypes.rst:2107 msgid "" "Raises an :ref:`auditing event ` ``ctypes.wstring_at`` with " "arguments ``address``, ``size``." @@ -2905,11 +3027,11 @@ msgstr "" "Lanza un :ref:`auditing event ` ``ctypes.wstring_at`` con " "argumentos ``address``, ``size``." -#: ../Doc/library/ctypes.rst:2049 +#: ../Doc/library/ctypes.rst:2113 msgid "Data types" msgstr "Tipos de datos" -#: ../Doc/library/ctypes.rst:2054 +#: ../Doc/library/ctypes.rst:2118 msgid "" "This non-public class is the common base class of all ctypes data types. " "Among other things, all ctypes type instances contain a memory block that " @@ -2926,7 +3048,7 @@ msgstr "" "ésta contiene otros objetos de Python que deben mantenerse vivos en caso de " "que el bloque de memoria contenga punteros." -#: ../Doc/library/ctypes.rst:2061 +#: ../Doc/library/ctypes.rst:2125 msgid "" "Common methods of ctypes data types, these are all class methods (to be " "exact, they are methods of the :term:`metaclass`):" @@ -2934,7 +3056,7 @@ msgstr "" "Métodos comunes de tipos de datos ctypes, estos son todos métodos de clase " "(para ser exactos, son métodos del :term:`metaclass`):" -#: ../Doc/library/ctypes.rst:2066 +#: ../Doc/library/ctypes.rst:2130 msgid "" "This method returns a ctypes instance that shares the buffer of the *source* " "object. The *source* object must support the writeable buffer interface. " @@ -2948,7 +3070,7 @@ msgstr "" "de la fuente en bytes; el valor por defecto es cero. Si el buffer de la " "fuente no es lo suficientemente grande se lanza un :exc:`ValueError`." -#: ../Doc/library/ctypes.rst:2072 ../Doc/library/ctypes.rst:2082 +#: ../Doc/library/ctypes.rst:2136 ../Doc/library/ctypes.rst:2146 msgid "" "Raises an :ref:`auditing event ` ``ctypes.cdata/buffer`` with " "arguments ``pointer``, ``size``, ``offset``." @@ -2956,7 +3078,7 @@ msgstr "" "Lanza un :ref:`auditing event ` ``ctypes.cdata/buffer`` con " "argumentos ``pointer``, ``size``, ``offset``." -#: ../Doc/library/ctypes.rst:2076 +#: ../Doc/library/ctypes.rst:2140 msgid "" "This method creates a ctypes instance, copying the buffer from the *source* " "object buffer which must be readable. The optional *offset* parameter " @@ -2969,7 +3091,7 @@ msgstr "" "es cero. Si el buffer de fuente no es lo suficientemente grande se lanza un :" "exc:`ValueError`." -#: ../Doc/library/ctypes.rst:2086 +#: ../Doc/library/ctypes.rst:2150 msgid "" "This method returns a ctypes type instance using the memory specified by " "*address* which must be an integer." @@ -2977,7 +3099,7 @@ msgstr "" "Este método retorna una instancia de tipo ctypes utilizando la memoria " "especificada por *address* que debe ser un entero." -#: ../Doc/library/ctypes.rst:2089 +#: ../Doc/library/ctypes.rst:2153 msgid "" "Raises an :ref:`auditing event ` ``ctypes.cdata`` with argument " "``address``." @@ -2985,7 +3107,7 @@ msgstr "" "Lanza un :ref:`auditing event ` ``ctypes.cdata`` con argumento " "``address``." -#: ../Doc/library/ctypes.rst:2091 +#: ../Doc/library/ctypes.rst:2155 msgid "" "This method, and others that indirectly call this method, raises an :ref:" "`auditing event ` ``ctypes.cdata`` with argument ``address``." @@ -2993,19 +3115,20 @@ msgstr "" "Este método, y otros que indirectamente llaman a este método, lanzan un :ref:" "`auditing event ` ``ctypes.cdata`` con argumento ``address``." -#: ../Doc/library/ctypes.rst:2097 +#: ../Doc/library/ctypes.rst:2161 +#, fuzzy msgid "" "This method adapts *obj* to a ctypes type. It is called with the actual " "object used in a foreign function call when the type is present in the " -"foreign function's :attr:`argtypes` tuple; it must return an object that can " -"be used as a function call parameter." +"foreign function's :attr:`~_FuncPtr.argtypes` tuple; it must return an " +"object that can be used as a function call parameter." msgstr "" "Este método adapta el *obj* a un tipo de ctypes. Se llama con el objeto real " "usado en una llamada a una función externa cuando el tipo está presente en " "la tupla :attr:`argtypes` de la función foránea; debe retornar un objeto que " "pueda ser usado como parámetro de llamada a la función." -#: ../Doc/library/ctypes.rst:2102 +#: ../Doc/library/ctypes.rst:2166 msgid "" "All ctypes data types have a default implementation of this classmethod that " "normally returns *obj* if that is an instance of the type. Some types " @@ -3015,7 +3138,7 @@ msgstr "" "este método de clase que normalmente retorna *obj* si es una instancia del " "tipo. Algunos tipos aceptan también otros objetos." -#: ../Doc/library/ctypes.rst:2108 +#: ../Doc/library/ctypes.rst:2172 msgid "" "This method returns a ctypes type instance exported by a shared library. " "*name* is the name of the symbol that exports the data, *library* is the " @@ -3025,11 +3148,11 @@ msgstr "" "biblioteca compartida. *name* es el nombre del símbolo que exporta los " "datos, *library* es la biblioteca compartida cargada." -#: ../Doc/library/ctypes.rst:2112 +#: ../Doc/library/ctypes.rst:2176 msgid "Common instance variables of ctypes data types:" msgstr "Variables de instancia común de los tipos de datos de ctypes:" -#: ../Doc/library/ctypes.rst:2116 +#: ../Doc/library/ctypes.rst:2180 msgid "" "Sometimes ctypes data instances do not own the memory block they contain, " "instead they share part of the memory block of a base object. The :attr:" @@ -3041,7 +3164,7 @@ msgstr "" "El miembro de sólo lectura :attr:`_b_base_` es el objeto raíz ctypes que " "posee el bloque de memoria." -#: ../Doc/library/ctypes.rst:2123 +#: ../Doc/library/ctypes.rst:2187 msgid "" "This read-only variable is true when the ctypes data instance has allocated " "the memory block itself, false otherwise." @@ -3050,7 +3173,7 @@ msgstr "" "ctypes ha sido asignada a el propio bloque de memoria, falsa en caso " "contrario." -#: ../Doc/library/ctypes.rst:2128 +#: ../Doc/library/ctypes.rst:2192 msgid "" "This member is either ``None`` or a dictionary containing Python objects " "that need to be kept alive so that the memory block contents is kept valid. " @@ -3062,7 +3185,7 @@ msgstr "" "válido. Este objeto sólo se expone para su depuración; nunca modifique el " "contenido de este diccionario." -#: ../Doc/library/ctypes.rst:2141 +#: ../Doc/library/ctypes.rst:2205 msgid "" "This non-public class is the base class of all fundamental ctypes data " "types. It is mentioned here because it contains the common attributes of the " @@ -3077,11 +3200,11 @@ msgstr "" "tipos de datos ctypes que no son y no contienen punteros ahora pueden ser " "archivados." -#: ../Doc/library/ctypes.rst:2147 +#: ../Doc/library/ctypes.rst:2211 msgid "Instances have a single attribute:" msgstr "Los instancias tienen un solo atributo:" -#: ../Doc/library/ctypes.rst:2151 +#: ../Doc/library/ctypes.rst:2215 msgid "" "This attribute contains the actual value of the instance. For integer and " "pointer types, it is an integer, for character types, it is a single " @@ -3093,7 +3216,7 @@ msgstr "" "cadena de bytes de un solo carácter, para los tipos de punteros de " "caracteres es un objeto o cadena de bytes de Python." -#: ../Doc/library/ctypes.rst:2156 +#: ../Doc/library/ctypes.rst:2220 msgid "" "When the ``value`` attribute is retrieved from a ctypes instance, usually a " "new object is returned each time. :mod:`ctypes` does *not* implement " @@ -3105,13 +3228,15 @@ msgstr "" "implementa el retorno del objeto original, siempre se construye un nuevo " "objeto. Lo mismo ocurre con todas las demás instancias de objetos ctypes." -#: ../Doc/library/ctypes.rst:2162 +#: ../Doc/library/ctypes.rst:2226 +#, fuzzy msgid "" "Fundamental data types, when returned as foreign function call results, or, " "for example, by retrieving structure field members or array items, are " "transparently converted to native Python types. In other words, if a " -"foreign function has a :attr:`restype` of :class:`c_char_p`, you will always " -"receive a Python bytes object, *not* a :class:`c_char_p` instance." +"foreign function has a :attr:`~_FuncPtr.restype` of :class:`c_char_p`, you " +"will always receive a Python bytes object, *not* a :class:`c_char_p` " +"instance." msgstr "" "Los tipos de datos fundamentales, cuando se retornan como resultados de " "llamadas de funciones foráneas, o, por ejemplo, al recuperar miembros de " @@ -3120,10 +3245,11 @@ msgstr "" "externa tiene un :attr:`restype` de :class:`c_char_p`, siempre recibirá un " "objeto de bytes Python, *no* una instancia de :class:`c_char_p`." -#: ../Doc/library/ctypes.rst:2170 +#: ../Doc/library/ctypes.rst:2234 +#, fuzzy msgid "" "Subclasses of fundamental data types do *not* inherit this behavior. So, if " -"a foreign functions :attr:`restype` is a subclass of :class:`c_void_p`, you " +"a foreign functions :attr:`!restype` is a subclass of :class:`c_void_p`, you " "will receive an instance of this subclass from the function call. Of course, " "you can get the value of the pointer by accessing the ``value`` attribute." msgstr "" @@ -3133,11 +3259,11 @@ msgstr "" "llamada a la función. Por supuesto, puedes obtener el valor del puntero " "accediendo al atributo ``value``." -#: ../Doc/library/ctypes.rst:2175 +#: ../Doc/library/ctypes.rst:2239 msgid "These are the fundamental ctypes data types:" msgstr "Estos son los tipos de datos fundamentales de ctypes:" -#: ../Doc/library/ctypes.rst:2179 +#: ../Doc/library/ctypes.rst:2243 msgid "" "Represents the C :c:expr:`signed char` datatype, and interprets the value as " "small integer. The constructor accepts an optional integer initializer; no " @@ -3147,7 +3273,7 @@ msgstr "" "como un entero pequeño. El constructor acepta un inicializador entero " "opcional; no se realiza ninguna comprobación de desbordamiento." -#: ../Doc/library/ctypes.rst:2186 +#: ../Doc/library/ctypes.rst:2250 msgid "" "Represents the C :c:expr:`char` datatype, and interprets the value as a " "single character. The constructor accepts an optional string initializer, " @@ -3157,7 +3283,7 @@ msgstr "" "solo carácter. El constructor acepta un inicializador de cadena opcional, la " "longitud de la cadena debe ser exactamente un carácter." -#: ../Doc/library/ctypes.rst:2193 +#: ../Doc/library/ctypes.rst:2257 msgid "" "Represents the C :c:expr:`char *` datatype when it points to a zero-" "terminated string. For a general character pointer that may also point to " @@ -3169,7 +3295,7 @@ msgstr "" "apuntar a datos binarios, se debe usar ``POINTER(c_char)``. El constructor " "acepta una dirección entera o un objeto de bytes." -#: ../Doc/library/ctypes.rst:2201 +#: ../Doc/library/ctypes.rst:2265 msgid "" "Represents the C :c:expr:`double` datatype. The constructor accepts an " "optional float initializer." @@ -3177,7 +3303,7 @@ msgstr "" "Representa el tipo de datos C :c:expr:`double`. El constructor acepta un " "inicializador flotante opcional." -#: ../Doc/library/ctypes.rst:2207 +#: ../Doc/library/ctypes.rst:2271 msgid "" "Represents the C :c:expr:`long double` datatype. The constructor accepts an " "optional float initializer. On platforms where ``sizeof(long double) == " @@ -3187,7 +3313,7 @@ msgstr "" "un inicializador flotante opcional. En plataformas donde ``sizeof(long " "double) == sizeof(double)`` es un alias de :class:`c_double`." -#: ../Doc/library/ctypes.rst:2213 +#: ../Doc/library/ctypes.rst:2277 msgid "" "Represents the C :c:expr:`float` datatype. The constructor accepts an " "optional float initializer." @@ -3195,7 +3321,7 @@ msgstr "" "Representa el tipo de datos C :c:expr:`float`. El constructor acepta un " "inicializador flotante opcional." -#: ../Doc/library/ctypes.rst:2219 +#: ../Doc/library/ctypes.rst:2283 msgid "" "Represents the C :c:expr:`signed int` datatype. The constructor accepts an " "optional integer initializer; no overflow checking is done. On platforms " @@ -3206,7 +3332,7 @@ msgstr "" "desbordamiento. En plataformas donde ``sizeof(int) == sizeof(long)`` es un " "alias de :class:`c_long`." -#: ../Doc/library/ctypes.rst:2226 +#: ../Doc/library/ctypes.rst:2290 msgid "" "Represents the C 8-bit :c:expr:`signed int` datatype. Usually an alias for :" "class:`c_byte`." @@ -3214,7 +3340,7 @@ msgstr "" "Representa el tipo de datos :c:expr:`signed int` de C de 8 bits. Por lo " "general, un alias para :class:`c_byte`." -#: ../Doc/library/ctypes.rst:2232 +#: ../Doc/library/ctypes.rst:2296 msgid "" "Represents the C 16-bit :c:expr:`signed int` datatype. Usually an alias " "for :class:`c_short`." @@ -3222,7 +3348,7 @@ msgstr "" "Representa el tipo de datos :c:expr:`signed int` de C de 16 bits. Por lo " "general, un alias para :class:`c_short`." -#: ../Doc/library/ctypes.rst:2238 +#: ../Doc/library/ctypes.rst:2302 msgid "" "Represents the C 32-bit :c:expr:`signed int` datatype. Usually an alias " "for :class:`c_int`." @@ -3230,7 +3356,7 @@ msgstr "" "Representa el tipo de datos :c:expr:`signed int` de C de 32 bits. Por lo " "general, un alias para :class:`c_int`." -#: ../Doc/library/ctypes.rst:2244 +#: ../Doc/library/ctypes.rst:2308 msgid "" "Represents the C 64-bit :c:expr:`signed int` datatype. Usually an alias " "for :class:`c_longlong`." @@ -3238,7 +3364,7 @@ msgstr "" "Representa el tipo de datos :c:expr:`signed int` de C de 64 bits. Por lo " "general, un alias para :class:`c_longlong`." -#: ../Doc/library/ctypes.rst:2250 +#: ../Doc/library/ctypes.rst:2314 msgid "" "Represents the C :c:expr:`signed long` datatype. The constructor accepts an " "optional integer initializer; no overflow checking is done." @@ -3247,7 +3373,7 @@ msgstr "" "un inicializador entero opcional; no se realiza ninguna comprobación de " "desbordamiento." -#: ../Doc/library/ctypes.rst:2256 +#: ../Doc/library/ctypes.rst:2320 msgid "" "Represents the C :c:expr:`signed long long` datatype. The constructor " "accepts an optional integer initializer; no overflow checking is done." @@ -3256,7 +3382,7 @@ msgstr "" "acepta un inicializador entero opcional; no se realiza ninguna comprobación " "de desbordamiento." -#: ../Doc/library/ctypes.rst:2262 +#: ../Doc/library/ctypes.rst:2326 msgid "" "Represents the C :c:expr:`signed short` datatype. The constructor accepts " "an optional integer initializer; no overflow checking is done." @@ -3265,15 +3391,20 @@ msgstr "" "un inicializador entero opcional; no se realiza ninguna comprobación de " "desbordamiento." -#: ../Doc/library/ctypes.rst:2268 +#: ../Doc/library/ctypes.rst:2332 msgid "Represents the C :c:type:`size_t` datatype." msgstr "Representa el tipo de datos C :c:type:`size_t`." -#: ../Doc/library/ctypes.rst:2273 +#: ../Doc/library/ctypes.rst:2337 msgid "Represents the C :c:type:`ssize_t` datatype." msgstr "Representa el tipo de datos C :c:type:`ssize_t`." -#: ../Doc/library/ctypes.rst:2280 +#: ../Doc/library/ctypes.rst:2344 +#, fuzzy +msgid "Represents the C :c:type:`time_t` datatype." +msgstr "Representa el tipo de datos C :c:type:`size_t`." + +#: ../Doc/library/ctypes.rst:2351 msgid "" "Represents the C :c:expr:`unsigned char` datatype, it interprets the value " "as small integer. The constructor accepts an optional integer initializer; " @@ -3283,7 +3414,7 @@ msgstr "" "como un entero pequeño. El constructor acepta un inicializador entero " "opcional; no se realiza ninguna comprobación de desbordamiento." -#: ../Doc/library/ctypes.rst:2287 +#: ../Doc/library/ctypes.rst:2358 msgid "" "Represents the C :c:expr:`unsigned int` datatype. The constructor accepts " "an optional integer initializer; no overflow checking is done. On platforms " @@ -3294,7 +3425,7 @@ msgstr "" "desbordamiento. En plataformas donde ``sizeof(int) == sizeof(long)`` es un " "alias para :class:`c_ulong`." -#: ../Doc/library/ctypes.rst:2294 +#: ../Doc/library/ctypes.rst:2365 msgid "" "Represents the C 8-bit :c:expr:`unsigned int` datatype. Usually an alias " "for :class:`c_ubyte`." @@ -3302,7 +3433,7 @@ msgstr "" "Representa el tipo de datos :c:expr:`unsigned int` de C de 8 bits. Por lo " "general, un alias para :class:`c_ubyte`." -#: ../Doc/library/ctypes.rst:2300 +#: ../Doc/library/ctypes.rst:2371 msgid "" "Represents the C 16-bit :c:expr:`unsigned int` datatype. Usually an alias " "for :class:`c_ushort`." @@ -3310,7 +3441,7 @@ msgstr "" "Representa el tipo de datos :c:expr:`unsigned int` de C de 16 bits. Por lo " "general, un alias para :class:`c_ushort`." -#: ../Doc/library/ctypes.rst:2306 +#: ../Doc/library/ctypes.rst:2377 msgid "" "Represents the C 32-bit :c:expr:`unsigned int` datatype. Usually an alias " "for :class:`c_uint`." @@ -3318,7 +3449,7 @@ msgstr "" "Representa el tipo de datos :c:expr:`unsigned int` de C de 32 bits. Por lo " "general, un alias para :class:`c_uint`." -#: ../Doc/library/ctypes.rst:2312 +#: ../Doc/library/ctypes.rst:2383 msgid "" "Represents the C 64-bit :c:expr:`unsigned int` datatype. Usually an alias " "for :class:`c_ulonglong`." @@ -3326,7 +3457,7 @@ msgstr "" "Representa el tipo de datos :c:expr:`unsigned int` de C de 64 bits. Por lo " "general, un alias para :class:`c_ulonglong`." -#: ../Doc/library/ctypes.rst:2318 +#: ../Doc/library/ctypes.rst:2389 msgid "" "Represents the C :c:expr:`unsigned long` datatype. The constructor accepts " "an optional integer initializer; no overflow checking is done." @@ -3335,7 +3466,7 @@ msgstr "" "un inicializador entero opcional; no se realiza ninguna comprobación de " "desbordamiento." -#: ../Doc/library/ctypes.rst:2324 +#: ../Doc/library/ctypes.rst:2395 msgid "" "Represents the C :c:expr:`unsigned long long` datatype. The constructor " "accepts an optional integer initializer; no overflow checking is done." @@ -3344,7 +3475,7 @@ msgstr "" "acepta un inicializador entero opcional; no se realiza ninguna comprobación " "de desbordamiento." -#: ../Doc/library/ctypes.rst:2330 +#: ../Doc/library/ctypes.rst:2401 msgid "" "Represents the C :c:expr:`unsigned short` datatype. The constructor accepts " "an optional integer initializer; no overflow checking is done." @@ -3353,7 +3484,7 @@ msgstr "" "acepta un inicializador entero opcional; no se realiza ninguna comprobación " "de desbordamiento." -#: ../Doc/library/ctypes.rst:2336 +#: ../Doc/library/ctypes.rst:2407 msgid "" "Represents the C :c:expr:`void *` type. The value is represented as " "integer. The constructor accepts an optional integer initializer." @@ -3361,9 +3492,10 @@ msgstr "" "Representa el tipo C :c:expr:`void *`. El valor se representa como un número " "entero. El constructor acepta un inicializador entero opcional." -#: ../Doc/library/ctypes.rst:2342 +#: ../Doc/library/ctypes.rst:2413 +#, fuzzy msgid "" -"Represents the C :c:expr:`wchar_t` datatype, and interprets the value as a " +"Represents the C :c:type:`wchar_t` datatype, and interprets the value as a " "single character unicode string. The constructor accepts an optional string " "initializer, the length of the string must be exactly one character." msgstr "" @@ -3372,7 +3504,7 @@ msgstr "" "inicializador de cadena opcional, la longitud de la cadena debe ser " "exactamente un carácter." -#: ../Doc/library/ctypes.rst:2349 +#: ../Doc/library/ctypes.rst:2420 msgid "" "Represents the C :c:expr:`wchar_t *` datatype, which must be a pointer to a " "zero-terminated wide character string. The constructor accepts an integer " @@ -3382,7 +3514,7 @@ msgstr "" "una cadena de caracteres anchos terminada en cero. El constructor acepta una " "dirección entera o una cadena." -#: ../Doc/library/ctypes.rst:2356 +#: ../Doc/library/ctypes.rst:2427 msgid "" "Represent the C :c:expr:`bool` datatype (more accurately, :c:expr:`_Bool` " "from C99). Its value can be ``True`` or ``False``, and the constructor " @@ -3392,15 +3524,16 @@ msgstr "" "`_Bool` de C99). Su valor puede ser ``True`` o ``False``, y el constructor " "acepta cualquier objeto que tenga un valor de verdad." -#: ../Doc/library/ctypes.rst:2363 +#: ../Doc/library/ctypes.rst:2434 +#, fuzzy msgid "" -"Windows only: Represents a :c:type:`HRESULT` value, which contains success " +"Windows only: Represents a :c:type:`!HRESULT` value, which contains success " "or error information for a function or method call." msgstr "" "Sólo Windows: Representa un valor :c:type:`HRESULT` , que contiene " "información de éxito o error para una llamada de función o método." -#: ../Doc/library/ctypes.rst:2369 +#: ../Doc/library/ctypes.rst:2440 msgid "" "Represents the C :c:expr:`PyObject *` datatype. Calling this without an " "argument creates a ``NULL`` :c:expr:`PyObject *` pointer." @@ -3408,44 +3541,45 @@ msgstr "" "Representa el tipo de dato de C :c:expr:`PyObject *`. Llamar esto sin un " "argumento crea un puntero :c:expr:`PyObject *` ``NULL``." -#: ../Doc/library/ctypes.rst:2372 +#: ../Doc/library/ctypes.rst:2443 +#, fuzzy msgid "" -"The :mod:`ctypes.wintypes` module provides quite some other Windows specific " -"data types, for example :c:type:`HWND`, :c:type:`WPARAM`, or :c:type:" -"`DWORD`. Some useful structures like :c:type:`MSG` or :c:type:`RECT` are " -"also defined." +"The :mod:`!ctypes.wintypes` module provides quite some other Windows " +"specific data types, for example :c:type:`!HWND`, :c:type:`!WPARAM`, or :c:" +"type:`!DWORD`. Some useful structures like :c:type:`!MSG` or :c:type:`!RECT` " +"are also defined." msgstr "" "El módulo :mod:`ctypes.wintypes` proporciona otros tipos de datos " "específicos de Windows, por ejemplo :c:type:`HWND`, :c:type:`WPARAM`, o :c:" "type:`DWORD`. Algunas estructuras útiles como :c:type:`MSG` o :c:type:`RECT` " "también están definidas." -#: ../Doc/library/ctypes.rst:2380 +#: ../Doc/library/ctypes.rst:2451 msgid "Structured data types" msgstr "Tipos de datos estructurados" -#: ../Doc/library/ctypes.rst:2385 +#: ../Doc/library/ctypes.rst:2456 msgid "Abstract base class for unions in native byte order." msgstr "Clase base abstracta para uniones en orden de bytes nativos." -#: ../Doc/library/ctypes.rst:2390 +#: ../Doc/library/ctypes.rst:2461 msgid "Abstract base class for unions in *big endian* byte order." msgstr "Clase base abstracta para uniones en orden de bytes *big endian*." -#: ../Doc/library/ctypes.rst:2396 +#: ../Doc/library/ctypes.rst:2467 msgid "Abstract base class for unions in *little endian* byte order." msgstr "Clase base abstracta para uniones en orden de bytes *little endian*." -#: ../Doc/library/ctypes.rst:2402 +#: ../Doc/library/ctypes.rst:2473 msgid "Abstract base class for structures in *big endian* byte order." msgstr "Clase base abstracta para estructuras en orden de bytes *big endian*." -#: ../Doc/library/ctypes.rst:2407 +#: ../Doc/library/ctypes.rst:2478 msgid "Abstract base class for structures in *little endian* byte order." msgstr "" "Clase base abstracta para estructuras en orden de bytes *little endian*." -#: ../Doc/library/ctypes.rst:2409 +#: ../Doc/library/ctypes.rst:2480 msgid "" "Structures and unions with non-native byte order cannot contain pointer type " "fields, or any other data types containing pointer type fields." @@ -3454,11 +3588,11 @@ msgstr "" "campos de tipo puntero ni ningún otro tipo de datos que contenga campos de " "tipo puntero." -#: ../Doc/library/ctypes.rst:2415 +#: ../Doc/library/ctypes.rst:2486 msgid "Abstract base class for structures in *native* byte order." msgstr "Clase base abstracta para estructuras en orden de bytes *native*." -#: ../Doc/library/ctypes.rst:2417 +#: ../Doc/library/ctypes.rst:2488 msgid "" "Concrete structure and union types must be created by subclassing one of " "these types, and at least define a :attr:`_fields_` class variable. :mod:" @@ -3470,7 +3604,7 @@ msgstr "" "`_fields_`. :mod:`ctypes` creará :term:`descriptor`\\s que permitan leer y " "escribir los campos por accesos directos de atributos. Estos son los" -#: ../Doc/library/ctypes.rst:2425 +#: ../Doc/library/ctypes.rst:2496 msgid "" "A sequence defining the structure fields. The items must be 2-tuples or 3-" "tuples. The first item is the name of the field, the second item specifies " @@ -3480,7 +3614,7 @@ msgstr "" "de 2 o 3 tuplas. El primer ítem es el nombre del campo, el segundo ítem " "especifica el tipo de campo; puede ser cualquier tipo de datos ctypes." -#: ../Doc/library/ctypes.rst:2429 +#: ../Doc/library/ctypes.rst:2500 msgid "" "For integer type fields like :class:`c_int`, a third optional item can be " "given. It must be a small positive integer defining the bit width of the " @@ -3490,7 +3624,7 @@ msgstr "" "elemento opcional. Debe ser un pequeño entero positivo que defina el ancho " "de bit del campo." -#: ../Doc/library/ctypes.rst:2433 +#: ../Doc/library/ctypes.rst:2504 msgid "" "Field names must be unique within one structure or union. This is not " "checked, only one field can be accessed when names are repeated." @@ -3499,7 +3633,7 @@ msgstr "" "Esto no se comprueba, sólo se puede acceder a un campo cuando los nombres se " "repiten." -#: ../Doc/library/ctypes.rst:2436 +#: ../Doc/library/ctypes.rst:2507 msgid "" "It is possible to define the :attr:`_fields_` class variable *after* the " "class statement that defines the Structure subclass, this allows creating " @@ -3509,7 +3643,7 @@ msgstr "" "sentencia de clase que define la subclase Estructura, esto permite crear " "tipos de datos que se refieren directa o indirectamente a sí mismos::" -#: ../Doc/library/ctypes.rst:2446 +#: ../Doc/library/ctypes.rst:2517 msgid "" "The :attr:`_fields_` class variable must, however, be defined before the " "type is first used (an instance is created, :func:`sizeof` is called on it, " @@ -3521,7 +3655,7 @@ msgstr "" "func:`sizeof`, y así sucesivamente). Las asignaciones posteriores a la " "variable de clase :attr:`_fields_` lanzarán un AttributeError." -#: ../Doc/library/ctypes.rst:2451 +#: ../Doc/library/ctypes.rst:2522 msgid "" "It is possible to define sub-subclasses of structure types, they inherit the " "fields of the base class plus the :attr:`_fields_` defined in the sub-" @@ -3530,17 +3664,19 @@ msgstr "" "Es posible definir subclases de tipos de estructura, que heredan los campos " "de la clase base más el :attr:`_fields_` definido en la subclase, si existe." -#: ../Doc/library/ctypes.rst:2458 +#: ../Doc/library/ctypes.rst:2529 +#, fuzzy msgid "" "An optional small integer that allows overriding the alignment of structure " "fields in the instance. :attr:`_pack_` must already be defined when :attr:" -"`_fields_` is assigned, otherwise it will have no effect." +"`_fields_` is assigned, otherwise it will have no effect. Setting this " +"attribute to 0 is the same as not setting it at all." msgstr "" "Un pequeño entero opcional que permite anular la alineación de los campos de " "estructura en la instancia. :attr:`_pack_` ya debe estar definido cuando se " "asigna :attr:`_fields_`, de lo contrario no tendrá ningún efecto." -#: ../Doc/library/ctypes.rst:2465 +#: ../Doc/library/ctypes.rst:2537 msgid "" "An optional sequence that lists the names of unnamed (anonymous) fields. :" "attr:`_anonymous_` must be already defined when :attr:`_fields_` is " @@ -3550,7 +3686,7 @@ msgstr "" "(anónimos). :attr:`_anonymous_` debe estar ya definida cuando se asigna :" "attr:`_fields_`, de lo contrario no tendrá ningún efecto." -#: ../Doc/library/ctypes.rst:2469 +#: ../Doc/library/ctypes.rst:2541 msgid "" "The fields listed in this variable must be structure or union type fields. :" "mod:`ctypes` will create descriptors in the structure type that allows " @@ -3562,11 +3698,11 @@ msgstr "" "permitan acceder a los campos anidados directamente, sin necesidad de crear " "el campo de estructura o unión." -#: ../Doc/library/ctypes.rst:2474 +#: ../Doc/library/ctypes.rst:2546 msgid "Here is an example type (Windows)::" msgstr "Aquí hay un tipo de ejemplo (Windows)::" -#: ../Doc/library/ctypes.rst:2487 +#: ../Doc/library/ctypes.rst:2559 msgid "" "The ``TYPEDESC`` structure describes a COM data type, the ``vt`` field " "specifies which one of the union fields is valid. Since the ``u`` field is " @@ -3582,7 +3718,7 @@ msgstr "" "son equivalentes, pero el primero es más rápido ya que no necesita crear una " "instancia de unión temporal::" -#: ../Doc/library/ctypes.rst:2499 +#: ../Doc/library/ctypes.rst:2571 msgid "" "It is possible to define sub-subclasses of structures, they inherit the " "fields of the base class. If the subclass definition has a separate :attr:" @@ -3594,7 +3730,7 @@ msgstr "" "`_fields_` separada, los campos especificados en ella se añaden a los campos " "de la clase base." -#: ../Doc/library/ctypes.rst:2504 +#: ../Doc/library/ctypes.rst:2576 msgid "" "Structure and union constructors accept both positional and keyword " "arguments. Positional arguments are used to initialize member fields in the " @@ -3611,15 +3747,15 @@ msgstr "" "inicializarán :attr:`_fields_` con el mismo nombre, o crearán nuevos " "atributos para nombres no presentes en :attr:`_fields_`." -#: ../Doc/library/ctypes.rst:2515 +#: ../Doc/library/ctypes.rst:2587 msgid "Arrays and pointers" msgstr "Arreglos y punteros" -#: ../Doc/library/ctypes.rst:2519 +#: ../Doc/library/ctypes.rst:2591 msgid "Abstract base class for arrays." msgstr "Clase base abstracta para arreglos." -#: ../Doc/library/ctypes.rst:2521 +#: ../Doc/library/ctypes.rst:2593 msgid "" "The recommended way to create concrete array types is by multiplying any :" "mod:`ctypes` data type with a non-negative integer. Alternatively, you can " @@ -3635,7 +3771,7 @@ msgstr "" "escribir utilizando subíndices estándar y accesos de segmento; para lecturas " "de segmentos, el objeto resultante *no es* en sí mismo, un :class:`Array`." -#: ../Doc/library/ctypes.rst:2531 +#: ../Doc/library/ctypes.rst:2603 msgid "" "A positive integer specifying the number of elements in the array. Out-of-" "range subscripts result in an :exc:`IndexError`. Will be returned by :func:" @@ -3645,11 +3781,11 @@ msgstr "" "conjunto. Los subíndices fuera de rango dan como resultado un :exc:" "`IndexError`. Será retornado por :func:`len`." -#: ../Doc/library/ctypes.rst:2538 +#: ../Doc/library/ctypes.rst:2610 msgid "Specifies the type of each element in the array." msgstr "Especifica el tipo de cada elemento del arreglo." -#: ../Doc/library/ctypes.rst:2541 +#: ../Doc/library/ctypes.rst:2613 msgid "" "Array subclass constructors accept positional arguments, used to initialize " "the elements in order." @@ -3657,11 +3793,11 @@ msgstr "" "Los constructores de subclases de arreglos aceptan argumentos posicionales, " "usados para inicializar los elementos en orden." -#: ../Doc/library/ctypes.rst:2547 +#: ../Doc/library/ctypes.rst:2619 msgid "Private, abstract base class for pointers." msgstr "Clase base, privada y abstracta para punteros." -#: ../Doc/library/ctypes.rst:2549 +#: ../Doc/library/ctypes.rst:2621 msgid "" "Concrete pointer types are created by calling :func:`POINTER` with the type " "that will be pointed to; this is done automatically by :func:`pointer`." @@ -3669,7 +3805,7 @@ msgstr "" "Los tipos de punteros concretos se crean llamando a :func:`POINTER` con el " "tipo que será apuntado; esto se hace automáticamente por :func:`pointer`." -#: ../Doc/library/ctypes.rst:2553 +#: ../Doc/library/ctypes.rst:2625 msgid "" "If a pointer points to an array, its elements can be read and written using " "standard subscript and slice accesses. Pointer objects have no size, so :" @@ -3684,14 +3820,21 @@ msgstr "" "(como en C), y los subíndices fuera de rango probablemente se bloqueen con " "una violación de acceso (si tienes suerte)." -#: ../Doc/library/ctypes.rst:2563 +#: ../Doc/library/ctypes.rst:2635 msgid "Specifies the type pointed to." msgstr "Especifica el tipo apuntado." -#: ../Doc/library/ctypes.rst:2567 +#: ../Doc/library/ctypes.rst:2639 msgid "" "Returns the object to which to pointer points. Assigning to this attribute " "changes the pointer to point to the assigned object." msgstr "" "Retorna el objeto al que el puntero apunta. Asignando a este atributo cambia " "el puntero para que apunte al objeto asignado." + +#~ msgid "" +#~ "This example calls both functions with a ``NULL`` pointer (``None`` " +#~ "should be used as the ``NULL`` pointer)::" +#~ msgstr "" +#~ "Este ejemplo llama a ambas funciones con un puntero ``NULL`` (``None`` " +#~ "debe ser usado como el puntero ``NULL``)::" diff --git a/library/curses.ascii.po b/library/curses.ascii.po index e1974eef9b..33c63507c5 100644 --- a/library/curses.ascii.po +++ b/library/curses.ascii.po @@ -1,29 +1,35 @@ # Copyright (C) 2001-2020, Python Software Foundation # This file is distributed under the same license as the Python package. # Maintained by the python-doc-es workteam. -# docs-es@python.org / https://mail.python.org/mailman3/lists/docs-es.python.org/ -# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get the list of volunteers +# docs-es@python.org / +# https://mail.python.org/mailman3/lists/docs-es.python.org/ +# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get +# the list of volunteers # msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-06 11:59-0400\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-10-19 08:39-0300\n" +"Last-Translator: \n" +"Language: es\n" "Language-Team: python-doc-es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: \n" -"Language: es\n" -"X-Generator: Poedit 2.4.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/curses.ascii.rst:2 msgid ":mod:`curses.ascii` --- Utilities for ASCII characters" msgstr ":mod:`curses.ascii` --- Utilidades para los caracteres ASCII" -#: ../Doc/library/curses.ascii.rst:12 +#: ../Doc/library/curses.ascii.rst:10 +msgid "**Source code:** :source:`Lib/curses/ascii.py`" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:14 msgid "" "The :mod:`curses.ascii` module supplies name constants for ASCII characters " "and functions to test membership in various ASCII character classes. The " @@ -34,299 +40,155 @@ msgstr "" "los caracteres ASCII. Las constantes proporcionadas son nombres para " "caracteres de control de la siguiente manera:" -#: ../Doc/library/curses.ascii.rst:17 +#: ../Doc/library/curses.ascii.rst:19 msgid "Name" msgstr "Nombre" -#: ../Doc/library/curses.ascii.rst:17 +#: ../Doc/library/curses.ascii.rst:19 msgid "Meaning" msgstr "Significado" -#: ../Doc/library/curses.ascii.rst:19 -msgid ":const:`NUL`" -msgstr " :const:`NUL`" - -#: ../Doc/library/curses.ascii.rst:21 -msgid ":const:`SOH`" -msgstr ":const:`SOH`" - -#: ../Doc/library/curses.ascii.rst:21 +#: ../Doc/library/curses.ascii.rst:23 msgid "Start of heading, console interrupt" msgstr "Inicio del encabezado, interrupción de la consola" -#: ../Doc/library/curses.ascii.rst:23 -msgid ":const:`STX`" -msgstr ":const:`STX`" - -#: ../Doc/library/curses.ascii.rst:23 +#: ../Doc/library/curses.ascii.rst:25 msgid "Start of text" msgstr "Inicio del texto" -#: ../Doc/library/curses.ascii.rst:25 -msgid ":const:`ETX`" -msgstr ":const:`ETX`" - -#: ../Doc/library/curses.ascii.rst:25 +#: ../Doc/library/curses.ascii.rst:27 msgid "End of text" msgstr "Final del texto" -#: ../Doc/library/curses.ascii.rst:27 -msgid ":const:`EOT`" -msgstr ":const:`EOT`" - -#: ../Doc/library/curses.ascii.rst:27 +#: ../Doc/library/curses.ascii.rst:29 msgid "End of transmission" msgstr "Fin de la transmisión" -#: ../Doc/library/curses.ascii.rst:29 -msgid ":const:`ENQ`" -msgstr ":const:`ENQ`" - -#: ../Doc/library/curses.ascii.rst:29 +#: ../Doc/library/curses.ascii.rst:31 msgid "Enquiry, goes with :const:`ACK` flow control" msgstr "Consulta, va con el control de flujo :const:`ACK`" -#: ../Doc/library/curses.ascii.rst:31 -msgid ":const:`ACK`" -msgstr ":const:`ACK`" - -#: ../Doc/library/curses.ascii.rst:31 +#: ../Doc/library/curses.ascii.rst:33 msgid "Acknowledgement" msgstr "Reconocimiento" -#: ../Doc/library/curses.ascii.rst:33 -msgid ":const:`BEL`" -msgstr ":const:`BEL`" - -#: ../Doc/library/curses.ascii.rst:33 +#: ../Doc/library/curses.ascii.rst:35 msgid "Bell" msgstr "Campana" -#: ../Doc/library/curses.ascii.rst:35 -msgid ":const:`BS`" -msgstr ":const:`BS`" - -#: ../Doc/library/curses.ascii.rst:35 +#: ../Doc/library/curses.ascii.rst:37 msgid "Backspace" msgstr "Retroceso" -#: ../Doc/library/curses.ascii.rst:37 -msgid ":const:`TAB`" -msgstr ":const:`TAB`" - -#: ../Doc/library/curses.ascii.rst:37 +#: ../Doc/library/curses.ascii.rst:39 msgid "Tab" msgstr "Tabulación" -#: ../Doc/library/curses.ascii.rst:39 -msgid ":const:`HT`" -msgstr ":const:`HT`" - -#: ../Doc/library/curses.ascii.rst:39 +#: ../Doc/library/curses.ascii.rst:41 msgid "Alias for :const:`TAB`: \"Horizontal tab\"" msgstr "Alias para :const:`TAB`: \"Tabulación horizontal\"" -#: ../Doc/library/curses.ascii.rst:41 -msgid ":const:`LF`" -msgstr ":const:`LF`" - -#: ../Doc/library/curses.ascii.rst:41 +#: ../Doc/library/curses.ascii.rst:43 msgid "Line feed" msgstr "Línea de alimentación" -#: ../Doc/library/curses.ascii.rst:43 -msgid ":const:`NL`" -msgstr ":const:`NL`" - -#: ../Doc/library/curses.ascii.rst:43 +#: ../Doc/library/curses.ascii.rst:45 msgid "Alias for :const:`LF`: \"New line\"" msgstr "Alias para :const:`LF`: \"Nueva línea\"" -#: ../Doc/library/curses.ascii.rst:45 -msgid ":const:`VT`" -msgstr ":const:`VT`" - -#: ../Doc/library/curses.ascii.rst:45 +#: ../Doc/library/curses.ascii.rst:47 msgid "Vertical tab" msgstr "Tabulación vertical" -#: ../Doc/library/curses.ascii.rst:47 -msgid ":const:`FF`" -msgstr ":const:`FF`" - -#: ../Doc/library/curses.ascii.rst:47 +#: ../Doc/library/curses.ascii.rst:49 msgid "Form feed" msgstr "Alimentación de formulario" -#: ../Doc/library/curses.ascii.rst:49 -msgid ":const:`CR`" -msgstr ":const:`CR`" - -#: ../Doc/library/curses.ascii.rst:49 +#: ../Doc/library/curses.ascii.rst:51 msgid "Carriage return" msgstr "Retorno de carro (*Carriage return* en inglés)" -#: ../Doc/library/curses.ascii.rst:51 -msgid ":const:`SO`" -msgstr ":const:`SO`" - -#: ../Doc/library/curses.ascii.rst:51 +#: ../Doc/library/curses.ascii.rst:53 msgid "Shift-out, begin alternate character set" msgstr "*Shift-out*, comenzar un conjunto de caracteres alternativo" -#: ../Doc/library/curses.ascii.rst:53 -msgid ":const:`SI`" -msgstr ":const:`SI`" - -#: ../Doc/library/curses.ascii.rst:53 +#: ../Doc/library/curses.ascii.rst:55 msgid "Shift-in, resume default character set" msgstr "*Shift-in*, reanudar el conjunto de caracteres predeterminado" -#: ../Doc/library/curses.ascii.rst:55 -msgid ":const:`DLE`" -msgstr ":const:`DLE`" - -#: ../Doc/library/curses.ascii.rst:55 +#: ../Doc/library/curses.ascii.rst:57 msgid "Data-link escape" msgstr "Escape de enlace de datos" -#: ../Doc/library/curses.ascii.rst:57 -msgid ":const:`DC1`" -msgstr ":const:`DC1`" - -#: ../Doc/library/curses.ascii.rst:57 +#: ../Doc/library/curses.ascii.rst:59 msgid "XON, for flow control" msgstr "XON, para control de flujo" -#: ../Doc/library/curses.ascii.rst:59 -msgid ":const:`DC2`" -msgstr ":const:`DC2`" - -#: ../Doc/library/curses.ascii.rst:59 +#: ../Doc/library/curses.ascii.rst:61 msgid "Device control 2, block-mode flow control" msgstr "Control de dispositivo 2, control de flujo en modo bloque" -#: ../Doc/library/curses.ascii.rst:61 -msgid ":const:`DC3`" -msgstr ":const:`DC3`" - -#: ../Doc/library/curses.ascii.rst:61 +#: ../Doc/library/curses.ascii.rst:63 msgid "XOFF, for flow control" msgstr "XOFF, para control de flujo" -#: ../Doc/library/curses.ascii.rst:63 -msgid ":const:`DC4`" -msgstr ":const:`DC4`" - -#: ../Doc/library/curses.ascii.rst:63 +#: ../Doc/library/curses.ascii.rst:65 msgid "Device control 4" msgstr "Control de dispositivo 4" -#: ../Doc/library/curses.ascii.rst:65 -msgid ":const:`NAK`" -msgstr ":const:`NAK`" - -#: ../Doc/library/curses.ascii.rst:65 +#: ../Doc/library/curses.ascii.rst:67 msgid "Negative acknowledgement" msgstr "Reconocimiento negativo" -#: ../Doc/library/curses.ascii.rst:67 -msgid ":const:`SYN`" -msgstr ":const:`SYN`" - -#: ../Doc/library/curses.ascii.rst:67 +#: ../Doc/library/curses.ascii.rst:69 msgid "Synchronous idle" msgstr "Inactivo sincrónico" -#: ../Doc/library/curses.ascii.rst:69 -msgid ":const:`ETB`" -msgstr ":const:`ETB`" - -#: ../Doc/library/curses.ascii.rst:69 +#: ../Doc/library/curses.ascii.rst:71 msgid "End transmission block" msgstr "Bloque de transmisión final" -#: ../Doc/library/curses.ascii.rst:71 -msgid ":const:`CAN`" -msgstr ":const:`CAN`" - -#: ../Doc/library/curses.ascii.rst:71 +#: ../Doc/library/curses.ascii.rst:73 msgid "Cancel" msgstr "Cancelar" -#: ../Doc/library/curses.ascii.rst:73 -msgid ":const:`EM`" -msgstr ":const:`EM`" - -#: ../Doc/library/curses.ascii.rst:73 +#: ../Doc/library/curses.ascii.rst:75 msgid "End of medium" msgstr "Fin del medio" -#: ../Doc/library/curses.ascii.rst:75 -msgid ":const:`SUB`" -msgstr ":const:`SUB`" - -#: ../Doc/library/curses.ascii.rst:75 +#: ../Doc/library/curses.ascii.rst:77 msgid "Substitute" msgstr "Sustituir" -#: ../Doc/library/curses.ascii.rst:77 -msgid ":const:`ESC`" -msgstr ":const:`ESC`" - -#: ../Doc/library/curses.ascii.rst:77 +#: ../Doc/library/curses.ascii.rst:79 msgid "Escape" msgstr "Escapar" -#: ../Doc/library/curses.ascii.rst:79 -msgid ":const:`FS`" -msgstr ":const:`FS`" - -#: ../Doc/library/curses.ascii.rst:79 +#: ../Doc/library/curses.ascii.rst:81 msgid "File separator" msgstr "Separador de archivos" -#: ../Doc/library/curses.ascii.rst:81 -msgid ":const:`GS`" -msgstr ":const:`GS`" - -#: ../Doc/library/curses.ascii.rst:81 +#: ../Doc/library/curses.ascii.rst:83 msgid "Group separator" msgstr "Separador de grupos" -#: ../Doc/library/curses.ascii.rst:83 -msgid ":const:`RS`" -msgstr ":const:`RS`" - -#: ../Doc/library/curses.ascii.rst:83 +#: ../Doc/library/curses.ascii.rst:85 msgid "Record separator, block-mode terminator" msgstr "Separador de registros, finalizador en modo bloque" -#: ../Doc/library/curses.ascii.rst:85 -msgid ":const:`US`" -msgstr ":const:`US`" - -#: ../Doc/library/curses.ascii.rst:85 +#: ../Doc/library/curses.ascii.rst:87 msgid "Unit separator" msgstr "Separador de unidades" -#: ../Doc/library/curses.ascii.rst:87 -msgid ":const:`SP`" -msgstr ":const:`SP`" - -#: ../Doc/library/curses.ascii.rst:87 +#: ../Doc/library/curses.ascii.rst:89 msgid "Space" msgstr "Espacio" -#: ../Doc/library/curses.ascii.rst:89 -msgid ":const:`DEL`" -msgstr ":const:`DEL`" - -#: ../Doc/library/curses.ascii.rst:89 +#: ../Doc/library/curses.ascii.rst:91 msgid "Delete" msgstr "Eliminar" -#: ../Doc/library/curses.ascii.rst:92 +#: ../Doc/library/curses.ascii.rst:94 msgid "" "Note that many of these have little practical significance in modern usage. " "The mnemonics derive from teleprinter conventions that predate digital " @@ -336,7 +198,7 @@ msgstr "" "uso moderno. Los mnemónicos se derivan de las convenciones de la " "teleimpresora que son anteriores a las computadoras digitales." -#: ../Doc/library/curses.ascii.rst:95 +#: ../Doc/library/curses.ascii.rst:97 msgid "" "The module supplies the following functions, patterned on those in the " "standard C library:" @@ -344,7 +206,7 @@ msgstr "" "El módulo proporciona las siguientes funciones, siguiendo el patrón de las " "de la biblioteca C estándar:" -#: ../Doc/library/curses.ascii.rst:101 +#: ../Doc/library/curses.ascii.rst:103 msgid "" "Checks for an ASCII alphanumeric character; it is equivalent to ``isalpha(c) " "or isdigit(c)``." @@ -352,7 +214,7 @@ msgstr "" "Comprueba un carácter alfanumérico ASCII; esto es equivalente a ``isalpha(c) " "or isdigit(c)``." -#: ../Doc/library/curses.ascii.rst:107 +#: ../Doc/library/curses.ascii.rst:109 msgid "" "Checks for an ASCII alphabetic character; it is equivalent to ``isupper(c) " "or islower(c)``." @@ -360,24 +222,24 @@ msgstr "" "Comprueba si hay un carácter alfabético ASCII; es equivalente a ``isupper(c) " "or islower(c)``." -#: ../Doc/library/curses.ascii.rst:113 +#: ../Doc/library/curses.ascii.rst:115 msgid "Checks for a character value that fits in the 7-bit ASCII set." msgstr "" "Comprueba un valor de carácter que se ajuste al conjunto ASCII de 7 bits." -#: ../Doc/library/curses.ascii.rst:118 +#: ../Doc/library/curses.ascii.rst:120 msgid "Checks for an ASCII whitespace character; space or horizontal tab." msgstr "" "Comprueba si hay un carácter de espacio en blanco ASCII; espacio o " "tabulación horizontal." -#: ../Doc/library/curses.ascii.rst:123 +#: ../Doc/library/curses.ascii.rst:125 msgid "" "Checks for an ASCII control character (in the range 0x00 to 0x1f or 0x7f)." msgstr "" "Comprueba un carácter de control ASCII (en el rango de 0x00 a 0x1f o 0x7f)." -#: ../Doc/library/curses.ascii.rst:128 +#: ../Doc/library/curses.ascii.rst:130 msgid "" "Checks for an ASCII decimal digit, ``'0'`` through ``'9'``. This is " "equivalent to ``c in string.digits``." @@ -385,19 +247,19 @@ msgstr "" "Comprueba si hay un dígito decimal ASCII, desde ``'0'`` hasta ``'9'``. Esto " "es equivalente a ``c in string.digits``." -#: ../Doc/library/curses.ascii.rst:134 +#: ../Doc/library/curses.ascii.rst:136 msgid "Checks for ASCII any printable character except space." msgstr "Comprueba en ASCII cualquier carácter imprimible excepto el espacio." -#: ../Doc/library/curses.ascii.rst:139 +#: ../Doc/library/curses.ascii.rst:141 msgid "Checks for an ASCII lower-case character." msgstr "Comprueba un carácter ASCII en minúscula." -#: ../Doc/library/curses.ascii.rst:144 +#: ../Doc/library/curses.ascii.rst:146 msgid "Checks for any ASCII printable character including space." msgstr "Comprueba cualquier carácter imprimible ASCII, incluido el espacio." -#: ../Doc/library/curses.ascii.rst:149 +#: ../Doc/library/curses.ascii.rst:151 msgid "" "Checks for any printable ASCII character which is not a space or an " "alphanumeric character." @@ -405,7 +267,7 @@ msgstr "" "Comprueba si hay algún carácter ASCII imprimible que no sea un espacio o un " "carácter alfanumérico." -#: ../Doc/library/curses.ascii.rst:155 +#: ../Doc/library/curses.ascii.rst:157 msgid "" "Checks for ASCII white-space characters; space, line feed, carriage return, " "form feed, horizontal tab, vertical tab." @@ -414,11 +276,11 @@ msgstr "" "alimentación, retorno de carro, formulario de alimentación, tabulación " "horizontal, tabulación vertical." -#: ../Doc/library/curses.ascii.rst:161 +#: ../Doc/library/curses.ascii.rst:163 msgid "Checks for an ASCII uppercase letter." msgstr "Comprueba una letra mayúscula ASCII." -#: ../Doc/library/curses.ascii.rst:166 +#: ../Doc/library/curses.ascii.rst:168 msgid "" "Checks for an ASCII hexadecimal digit. This is equivalent to ``c in string." "hexdigits``." @@ -426,16 +288,16 @@ msgstr "" "Comprueba si hay un dígito hexadecimal ASCII. Esto es equivalente a ``c in " "string.hexdigits``." -#: ../Doc/library/curses.ascii.rst:172 +#: ../Doc/library/curses.ascii.rst:174 msgid "Checks for an ASCII control character (ordinal values 0 to 31)." msgstr "Comprueba un carácter de control ASCII (valores ordinales de 0 a 31)" -#: ../Doc/library/curses.ascii.rst:177 +#: ../Doc/library/curses.ascii.rst:179 msgid "Checks for a non-ASCII character (ordinal values 0x80 and above)." msgstr "" "Comprueba si hay un carácter no ASCII (valores ordinales 0x80 y superiores)." -#: ../Doc/library/curses.ascii.rst:179 +#: ../Doc/library/curses.ascii.rst:181 msgid "" "These functions accept either integers or single-character strings; when the " "argument is a string, it is first converted using the built-in function :" @@ -445,7 +307,7 @@ msgstr "" "argumento es una cadena de caracteres, primero se convierte utilizando la " "función *built-in* :func:`ord`." -#: ../Doc/library/curses.ascii.rst:182 +#: ../Doc/library/curses.ascii.rst:184 msgid "" "Note that all these functions check ordinal bit values derived from the " "character of the string you pass in; they do not actually know anything " @@ -455,7 +317,7 @@ msgstr "" "ordinales derivados del carácter de la cadena que ingresa; en realidad, no " "saben nada sobre la codificación de caracteres de la máquina host." -#: ../Doc/library/curses.ascii.rst:186 +#: ../Doc/library/curses.ascii.rst:188 msgid "" "The following two functions take either a single-character string or integer " "byte value; they return a value of the same type." @@ -463,11 +325,11 @@ msgstr "" "Las siguientes dos funciones toman una cadena de un solo carácter o un valor " "de byte entero; devuelven un valor del mismo tipo." -#: ../Doc/library/curses.ascii.rst:192 +#: ../Doc/library/curses.ascii.rst:194 msgid "Return the ASCII value corresponding to the low 7 bits of *c*." msgstr "Retorna el valor ASCII correspondiente a los 7 bits bajos de *c*." -#: ../Doc/library/curses.ascii.rst:197 +#: ../Doc/library/curses.ascii.rst:199 msgid "" "Return the control character corresponding to the given character (the " "character bit value is bitwise-anded with 0x1f)." @@ -475,7 +337,7 @@ msgstr "" "Retorna el carácter de control correspondiente al carácter dado (el valor " "del bit del carácter es bit a bit (*bitwise-anded*) con 0x1f)." -#: ../Doc/library/curses.ascii.rst:203 +#: ../Doc/library/curses.ascii.rst:205 msgid "" "Return the 8-bit character corresponding to the given ASCII character (the " "character bit value is bitwise-ored with 0x80)." @@ -483,7 +345,7 @@ msgstr "" "Retorna el carácter de 8 bits correspondiente al carácter ASCII dado (el " "valor del bit de carácter se escribe bit a bit (*bitwise-ored*) con 0x80)." -#: ../Doc/library/curses.ascii.rst:206 +#: ../Doc/library/curses.ascii.rst:208 msgid "" "The following function takes either a single-character string or integer " "value; it returns a string." @@ -491,7 +353,7 @@ msgstr "" "La siguiente función toma una cadena de un solo carácter o un valor entero; " "devuelve una cadena." -#: ../Doc/library/curses.ascii.rst:216 +#: ../Doc/library/curses.ascii.rst:218 msgid "" "Return a string representation of the ASCII character *c*. If *c* is " "printable, this string is the character itself. If the character is a " @@ -509,7 +371,7 @@ msgstr "" "meta bit establecido (0x80), el meta bit se elimina, se aplican las reglas " "anteriores y se antepone ``'!'`` al resultado." -#: ../Doc/library/curses.ascii.rst:226 +#: ../Doc/library/curses.ascii.rst:228 msgid "" "A 33-element string array that contains the ASCII mnemonics for the thirty-" "two ASCII control characters from 0 (NUL) to 0x1f (US), in order, plus the " @@ -519,3 +381,123 @@ msgstr "" "mnemónicos ASCII para los treinta y dos caracteres de control ASCII desde 0 " "(NUL) a 0x1f (US), en orden, más el mnemónico ``SP`` para el carácter de " "espacio." + +#: ../Doc/library/curses.ascii.rst:212 +msgid "^ (caret)" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:212 +msgid "in curses module" +msgstr "" + +#: ../Doc/library/curses.ascii.rst:212 +msgid "! (exclamation)" +msgstr "" + +#~ msgid ":const:`NUL`" +#~ msgstr " :const:`NUL`" + +#~ msgid ":const:`SOH`" +#~ msgstr ":const:`SOH`" + +#~ msgid ":const:`STX`" +#~ msgstr ":const:`STX`" + +#~ msgid ":const:`ETX`" +#~ msgstr ":const:`ETX`" + +#~ msgid ":const:`EOT`" +#~ msgstr ":const:`EOT`" + +#~ msgid ":const:`ENQ`" +#~ msgstr ":const:`ENQ`" + +#~ msgid ":const:`ACK`" +#~ msgstr ":const:`ACK`" + +#~ msgid ":const:`BEL`" +#~ msgstr ":const:`BEL`" + +#~ msgid ":const:`BS`" +#~ msgstr ":const:`BS`" + +#~ msgid ":const:`TAB`" +#~ msgstr ":const:`TAB`" + +#~ msgid ":const:`HT`" +#~ msgstr ":const:`HT`" + +#~ msgid ":const:`LF`" +#~ msgstr ":const:`LF`" + +#~ msgid ":const:`NL`" +#~ msgstr ":const:`NL`" + +#~ msgid ":const:`VT`" +#~ msgstr ":const:`VT`" + +#~ msgid ":const:`FF`" +#~ msgstr ":const:`FF`" + +#~ msgid ":const:`CR`" +#~ msgstr ":const:`CR`" + +#~ msgid ":const:`SO`" +#~ msgstr ":const:`SO`" + +#~ msgid ":const:`SI`" +#~ msgstr ":const:`SI`" + +#~ msgid ":const:`DLE`" +#~ msgstr ":const:`DLE`" + +#~ msgid ":const:`DC1`" +#~ msgstr ":const:`DC1`" + +#~ msgid ":const:`DC2`" +#~ msgstr ":const:`DC2`" + +#~ msgid ":const:`DC3`" +#~ msgstr ":const:`DC3`" + +#~ msgid ":const:`DC4`" +#~ msgstr ":const:`DC4`" + +#~ msgid ":const:`NAK`" +#~ msgstr ":const:`NAK`" + +#~ msgid ":const:`SYN`" +#~ msgstr ":const:`SYN`" + +#~ msgid ":const:`ETB`" +#~ msgstr ":const:`ETB`" + +#~ msgid ":const:`CAN`" +#~ msgstr ":const:`CAN`" + +#~ msgid ":const:`EM`" +#~ msgstr ":const:`EM`" + +#~ msgid ":const:`SUB`" +#~ msgstr ":const:`SUB`" + +#~ msgid ":const:`ESC`" +#~ msgstr ":const:`ESC`" + +#~ msgid ":const:`FS`" +#~ msgstr ":const:`FS`" + +#~ msgid ":const:`GS`" +#~ msgstr ":const:`GS`" + +#~ msgid ":const:`RS`" +#~ msgstr ":const:`RS`" + +#~ msgid ":const:`US`" +#~ msgstr ":const:`US`" + +#~ msgid ":const:`SP`" +#~ msgstr ":const:`SP`" + +#~ msgid ":const:`DEL`" +#~ msgstr ":const:`DEL`" diff --git a/library/curses.po b/library/curses.po index dd076e0272..c9fb5c3452 100644 --- a/library/curses.po +++ b/library/curses.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-12-18 18:24-0300\n" "Last-Translator: Carlos A. Crespo \n" "Language: es\n" @@ -19,14 +19,18 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/curses.rst:2 msgid ":mod:`curses` --- Terminal handling for character-cell displays" msgstr "" ":mod:`curses` --- Manejo de terminales para pantallas de celdas de caracteres" -#: ../Doc/library/curses.rst:14 +#: ../Doc/library/curses.rst:12 +msgid "**Source code:** :source:`Lib/curses`" +msgstr "" + +#: ../Doc/library/curses.rst:16 msgid "" "The :mod:`curses` module provides an interface to the curses library, the de-" "facto standard for portable advanced terminal handling." @@ -34,7 +38,7 @@ msgstr "" "El módulo :mod:`curses` provee una interfaz para la librería *curses*, el " "estándar para el manejo avanzado de terminales portátiles." -#: ../Doc/library/curses.rst:17 +#: ../Doc/library/curses.rst:19 msgid "" "While curses is most widely used in the Unix environment, versions are " "available for Windows, DOS, and possibly other systems as well. This " @@ -47,7 +51,7 @@ msgstr "" "el API de ncurses, una librería de código abierto almacenada en Linux y las " "variantes BSD de Unix." -#: ../Doc/library/curses.rst:24 +#: ../Doc/library/curses.rst:26 msgid "" "Whenever the documentation mentions a *character* it can be specified as an " "integer, a one-character Unicode string or a one-byte byte string." @@ -56,7 +60,7 @@ msgstr "" "como un entero, una cadena Unicode de un carácter o una cadena de bytes de " "un byte." -#: ../Doc/library/curses.rst:27 +#: ../Doc/library/curses.rst:29 msgid "" "Whenever the documentation mentions a *character string* it can be specified " "as a Unicode string or a byte string." @@ -64,11 +68,11 @@ msgstr "" "Cuando la documentación menciona una *cadena de caracteres*, esto puede ser " "especificado como una cadena Unicode o una cadena de bytes." -#: ../Doc/library/curses.rst:33 +#: ../Doc/library/curses.rst:35 msgid "Module :mod:`curses.ascii`" msgstr "Módulo :mod:`curses.ascii`" -#: ../Doc/library/curses.rst:33 +#: ../Doc/library/curses.rst:35 msgid "" "Utilities for working with ASCII characters, regardless of your locale " "settings." @@ -76,21 +80,21 @@ msgstr "" "Utilidades para trabajar con caracteres ASCII, independientemente de tu " "configuración local." -#: ../Doc/library/curses.rst:36 +#: ../Doc/library/curses.rst:38 msgid "Module :mod:`curses.panel`" msgstr "Módulo :mod:`curses.panel`" -#: ../Doc/library/curses.rst:36 +#: ../Doc/library/curses.rst:38 msgid "A panel stack extension that adds depth to curses windows." msgstr "" "Una extensión de la pila de paneles que añade profundidad a las ventanas de " "curses." -#: ../Doc/library/curses.rst:39 +#: ../Doc/library/curses.rst:41 msgid "Module :mod:`curses.textpad`" msgstr "Módulo :mod:`curses.textpad`" -#: ../Doc/library/curses.rst:39 +#: ../Doc/library/curses.rst:41 msgid "" "Editable text widget for curses supporting :program:`Emacs`\\ -like " "bindings." @@ -98,11 +102,11 @@ msgstr "" "Widget de texto editable para apoyar curses :program:`Emacs`\\ - como " "enlaces." -#: ../Doc/library/curses.rst:43 +#: ../Doc/library/curses.rst:44 msgid ":ref:`curses-howto`" msgstr ":ref:`curses-howto`" -#: ../Doc/library/curses.rst:42 +#: ../Doc/library/curses.rst:44 msgid "" "Tutorial material on using curses with Python, by Andrew Kuchling and Eric " "Raymond." @@ -110,31 +114,21 @@ msgstr "" "Material del tutorial usando curses con Python, por *Andrew Kuchling* y " "*Eric Raymond*." -#: ../Doc/library/curses.rst:45 -msgid "" -"The :source:`Tools/demo/` directory in the Python source distribution " -"contains some example programs using the curses bindings provided by this " -"module." -msgstr "" -"El directorio :source:`Tools/demo/` en el recurso de distribución de Python " -"contiene algunos programas de ejemplo usando los enlaces de curses previstos " -"en este módulo." - -#: ../Doc/library/curses.rst:52 +#: ../Doc/library/curses.rst:51 msgid "Functions" msgstr "Funciones" -#: ../Doc/library/curses.rst:54 +#: ../Doc/library/curses.rst:53 msgid "The module :mod:`curses` defines the following exception:" msgstr "El módulo :mod:`curses` define la siguiente excepción:" -#: ../Doc/library/curses.rst:59 +#: ../Doc/library/curses.rst:58 msgid "Exception raised when a curses library function returns an error." msgstr "" "Una excepción se lanza cuando una función de la librería curses retorna un " "error." -#: ../Doc/library/curses.rst:63 +#: ../Doc/library/curses.rst:62 msgid "" "Whenever *x* or *y* arguments to a function or a method are optional, they " "default to the current cursor location. Whenever *attr* is optional, it " @@ -144,11 +138,11 @@ msgstr "" "se predetermina la ubicación actual del cursor. Cuando *attr* es opcional, " "por defecto es :const:`A_NORMAL`." -#: ../Doc/library/curses.rst:67 +#: ../Doc/library/curses.rst:66 msgid "The module :mod:`curses` defines the following functions:" msgstr "El módulo :mod:`curses` define las siguientes funciones:" -#: ../Doc/library/curses.rst:72 +#: ../Doc/library/curses.rst:71 msgid "" "Return the output speed of the terminal in bits per second. On software " "terminal emulators it will have a fixed high value. Included for historical " @@ -161,11 +155,11 @@ msgstr "" "escribir los ciclos de salida por retrasos de tiempo y ocasionalmente para " "cambiar interfaces dependiendo de la velocidad en la línea." -#: ../Doc/library/curses.rst:80 +#: ../Doc/library/curses.rst:79 msgid "Emit a short attention sound." msgstr "Emite un corto sonido de atención." -#: ../Doc/library/curses.rst:85 +#: ../Doc/library/curses.rst:84 msgid "" "Return ``True`` or ``False``, depending on whether the programmer can change " "the colors displayed by the terminal." @@ -173,7 +167,7 @@ msgstr "" "Retorna ``True`` o ``False``, dependiendo ya sea que el programador puede " "cambiar los colores presentados por la terminal." -#: ../Doc/library/curses.rst:91 +#: ../Doc/library/curses.rst:90 msgid "" "Enter cbreak mode. In cbreak mode (sometimes called \"rare\" mode) normal " "tty line buffering is turned off and characters are available to be read one " @@ -190,7 +184,7 @@ msgstr "" "Llamando primero :func:`raw` luego :func:`cbreak` dejando la terminal en " "modo *cbreak*." -#: ../Doc/library/curses.rst:100 +#: ../Doc/library/curses.rst:99 msgid "" "Return the intensity of the red, green, and blue (RGB) components in the " "color *color_number*, which must be between ``0`` and ``COLORS - 1``. " @@ -203,12 +197,14 @@ msgstr "" "tupla de 3, que contiene los valores R,G,B para el color dado, que estará " "entre ``0`` (sin componente) y ``1000`` (cantidad máxima de componente)." -#: ../Doc/library/curses.rst:108 +#: ../Doc/library/curses.rst:107 +#, fuzzy msgid "" "Return the attribute value for displaying text in the specified color pair. " "Only the first 256 color pairs are supported. This attribute value can be " "combined with :const:`A_STANDOUT`, :const:`A_REVERSE`, and the other :const:" -"`A_\\*` attributes. :func:`pair_number` is the counterpart to this function." +"`!A_\\*` attributes. :func:`pair_number` is the counterpart to this " +"function." msgstr "" "Retorna el valor del atributo para mostrar texto en el par de colores " "especificado. Solo se admiten los primeros 256 pares de colores. Este valor " @@ -216,7 +212,7 @@ msgstr "" "los otros atributos :const:`A_\\*`. :func:`pair_number` es la contraparte de " "esta función." -#: ../Doc/library/curses.rst:117 +#: ../Doc/library/curses.rst:116 msgid "" "Set the cursor state. *visibility* can be set to ``0``, ``1``, or ``2``, " "for invisible, normal, or very visible. If the terminal supports the " @@ -231,7 +227,7 @@ msgstr "" "\"visible\" es un cursor subrayado y el modo \"muy visible\" es un cursor de " "bloque." -#: ../Doc/library/curses.rst:126 +#: ../Doc/library/curses.rst:125 msgid "" "Save the current terminal mode as the \"program\" mode, the mode when the " "running program is using curses. (Its counterpart is the \"shell\" mode, " @@ -243,7 +239,7 @@ msgstr "" "\"shell\", para cuando el programa no está en curses.) Seguido de la " "llamada a :func:`reset_prog_mode` restaurará este modo." -#: ../Doc/library/curses.rst:134 +#: ../Doc/library/curses.rst:133 msgid "" "Save the current terminal mode as the \"shell\" mode, the mode when the " "running program is not using curses. (Its counterpart is the \"program\" " @@ -255,11 +251,11 @@ msgstr "" "\"program\", cuando el programa está usando las capacidades de curses.) Las " "llamadas subsecuentes a :func:`reset_shell_mode` restaurarán este modo." -#: ../Doc/library/curses.rst:142 +#: ../Doc/library/curses.rst:141 msgid "Insert an *ms* millisecond pause in output." msgstr "Inserte una pausa en milisegundo *ms* en la salida." -#: ../Doc/library/curses.rst:147 +#: ../Doc/library/curses.rst:146 msgid "" "Update the physical screen. The curses library keeps two data structures, " "one representing the current physical screen contents and a virtual screen " @@ -271,7 +267,7 @@ msgstr "" "pantalla virtual representa el próximo estado deseado. La base :func:" "`doupdate` actualiza la pantalla física para comparar la pantalla virtual." -#: ../Doc/library/curses.rst:152 +#: ../Doc/library/curses.rst:151 msgid "" "The virtual screen may be updated by a :meth:`~window.noutrefresh` call " "after write operations such as :meth:`~window.addstr` have been performed on " @@ -289,7 +285,7 @@ msgstr "" "y quizás reducir los parpadeos de la pantalla usando la llamada :meth:`!" "noutrefresh` en todas las ventanas, seguido por un simple :func:`!doupdate`." -#: ../Doc/library/curses.rst:162 +#: ../Doc/library/curses.rst:161 msgid "" "Enter echo mode. In echo mode, each character input is echoed to the screen " "as it is entered." @@ -297,11 +293,11 @@ msgstr "" "Entrar en modo echo. En modo echo, cada caracter de entrada es repercutido " "a la pantalla como este es introducido." -#: ../Doc/library/curses.rst:168 +#: ../Doc/library/curses.rst:167 msgid "De-initialize the library, and return terminal to normal status." msgstr "Desinicializa la librería y retorne el terminal al estado normal." -#: ../Doc/library/curses.rst:173 +#: ../Doc/library/curses.rst:172 msgid "" "Return the user's current erase character as a one-byte bytes object. Under " "Unix operating systems this is a property of the controlling tty of the " @@ -312,7 +308,7 @@ msgstr "" "controlador tty de el programa curses, y no es configurado por la librería " "curses en sí misma." -#: ../Doc/library/curses.rst:180 +#: ../Doc/library/curses.rst:179 msgid "" "The :func:`.filter` routine, if used, must be called before :func:`initscr` " "is called. The effect is that, during those calls, :envvar:`LINES` is set " @@ -331,7 +327,7 @@ msgstr "" "actualizadas. Este puede ser usado para habilitar la línea editando el " "carácter en un tiempo sin tocar el resto de las pantallas." -#: ../Doc/library/curses.rst:190 +#: ../Doc/library/curses.rst:189 msgid "" "Flash the screen. That is, change it to reverse-video and then change it " "back in a short interval. Some people prefer such as 'visible bell' to the " @@ -341,7 +337,7 @@ msgstr "" "nuevo en un corto intervalo. Algunas personas prefieren como 'campana " "visible' para la señal de atención audible producida por :func:`beep`." -#: ../Doc/library/curses.rst:197 +#: ../Doc/library/curses.rst:196 msgid "" "Flush all input buffers. This throws away any typeahead that has been " "typed by the user and has not yet been processed by the program." @@ -350,7 +346,7 @@ msgstr "" "que ha sido escrito por el usuario y no ha sido aún procesado por el " "programa." -#: ../Doc/library/curses.rst:203 +#: ../Doc/library/curses.rst:202 msgid "" "After :meth:`~window.getch` returns :const:`KEY_MOUSE` to signal a mouse " "event, this method should be called to retrieve the queued mouse event, " @@ -376,7 +372,7 @@ msgstr "" "`BUTTONn_DOUBLE_CLICKED`, :const:`BUTTONn_TRIPLE_CLICKED`, :const:" "`BUTTON_SHIFT`, :const:`BUTTON_CTRL`, :const:`BUTTON_ALT`." -#: ../Doc/library/curses.rst:214 +#: ../Doc/library/curses.rst:213 ../Doc/library/curses.rst:1774 msgid "" "The ``BUTTON5_*`` constants are now exposed if they are provided by the " "underlying curses library." @@ -384,7 +380,7 @@ msgstr "" "Las constantes ``BUTTON5_*`` ahora están expuestas si son proporcionadas por " "la biblioteca curses subyacente." -#: ../Doc/library/curses.rst:221 +#: ../Doc/library/curses.rst:220 msgid "" "Return the current coordinates of the virtual screen cursor as a tuple ``(y, " "x)``. If :meth:`leaveok ` is currently ``True``, then " @@ -394,17 +390,18 @@ msgstr "" "tupla ``(y, x)``. Si :meth:`leaveok ` es actualmente " "``True`` entonces retorna ``(-1,-1)``." -#: ../Doc/library/curses.rst:227 +#: ../Doc/library/curses.rst:226 +#, fuzzy msgid "" -"Read window related data stored in the file by an earlier :func:`putwin` " -"call. The routine then creates and initializes a new window using that data, " -"returning the new window object." +"Read window related data stored in the file by an earlier :func:`window." +"putwin` call. The routine then creates and initializes a new window using " +"that data, returning the new window object." msgstr "" "Lee la ventana relacionada con los datos almacenados en el archivo por una " "llamada temprana a :func:`putwin`. La rutina entonces crea e inicializa una " "nueva ventana usando esos datos, retornando el nuevo objeto de ventana." -#: ../Doc/library/curses.rst:234 +#: ../Doc/library/curses.rst:233 msgid "" "Return ``True`` if the terminal can display colors; otherwise, return " "``False``." @@ -412,7 +409,7 @@ msgstr "" "Retorna ``True`` si el terminal puede desplegar colores, en caso contrario, " "retorna ``False``." -#: ../Doc/library/curses.rst:238 +#: ../Doc/library/curses.rst:237 msgid "" "Return ``True`` if the module supports extended colors; otherwise, return " "``False``. Extended color support allows more than 256 color pairs for " @@ -423,12 +420,12 @@ msgstr "" "256 pares de colores para terminales que admiten más de 16 colores (por " "ejemplo, xterm-256color)." -#: ../Doc/library/curses.rst:242 +#: ../Doc/library/curses.rst:241 msgid "Extended color support requires ncurses version 6.1 or later." msgstr "" "El soporte de color extendido requiere ncurses versión 6.1 o posterior." -#: ../Doc/library/curses.rst:248 +#: ../Doc/library/curses.rst:247 msgid "" "Return ``True`` if the terminal has insert- and delete-character " "capabilities. This function is included for historical reasons only, as all " @@ -439,7 +436,7 @@ msgstr "" "que todos los emuladores de la terminal de software modernos tienen tales " "capacidades." -#: ../Doc/library/curses.rst:255 +#: ../Doc/library/curses.rst:254 msgid "" "Return ``True`` if the terminal has insert- and delete-line capabilities, or " "can simulate them using scrolling regions. This function is included for " @@ -451,7 +448,7 @@ msgstr "" "función es incluida por razones históricas solamente, como todos los " "emuladores de terminales de software modernos tienen tales capacidades." -#: ../Doc/library/curses.rst:263 +#: ../Doc/library/curses.rst:262 msgid "" "Take a key value *ch*, and return ``True`` if the current terminal type " "recognizes a key with that value." @@ -459,7 +456,7 @@ msgstr "" "Toma una clave valor *ch*, y retorna ``True`` si el tipo de terminal actual " "reconoce una clave con ese valor." -#: ../Doc/library/curses.rst:269 +#: ../Doc/library/curses.rst:268 msgid "" "Used for half-delay mode, which is similar to cbreak mode in that characters " "typed by the user are immediately available to the program. However, after " @@ -474,7 +471,7 @@ msgstr "" "*tenths* debe ser un número entre ``1`` y ``255``. Use :func:`nocbreak` " "para salir del modo de medio retardo." -#: ../Doc/library/curses.rst:278 +#: ../Doc/library/curses.rst:277 #, fuzzy msgid "" "Change the definition of a color, taking the number of the color to be " @@ -495,7 +492,7 @@ msgstr "" "operativa en la mayoría de terminales; solo está activo si :func:" "`can_change_color` retorna ``True``." -#: ../Doc/library/curses.rst:289 +#: ../Doc/library/curses.rst:288 msgid "" "Change the definition of a color-pair. It takes three arguments: the number " "of the color-pair to be changed, the foreground color number, and the " @@ -517,7 +514,7 @@ msgstr "" "previamente, la pantalla se actualiza y todas las apariciones de ese par de " "colores se cambian a la nueva definición." -#: ../Doc/library/curses.rst:302 +#: ../Doc/library/curses.rst:301 msgid "" "Initialize the library. Return a :ref:`window ` " "object which represents the whole screen." @@ -525,7 +522,7 @@ msgstr "" "Inicializa la librería. Retorna un objeto :ref:`window ` el cual representa a toda la pantalla." -#: ../Doc/library/curses.rst:307 +#: ../Doc/library/curses.rst:306 msgid "" "If there is an error opening the terminal, the underlying curses library may " "cause the interpreter to exit." @@ -533,7 +530,7 @@ msgstr "" "Si hay un error al abrir el terminal, la librería curses subyacente puede " "causar que el interprete salga." -#: ../Doc/library/curses.rst:313 +#: ../Doc/library/curses.rst:312 msgid "" "Return ``True`` if :func:`resize_term` would modify the window structure, " "``False`` otherwise." @@ -541,7 +538,7 @@ msgstr "" "Retorna ``True`` si :func:`resize_term` modificaría la estructura de la " "ventana, ``False`` en caso contrario." -#: ../Doc/library/curses.rst:319 +#: ../Doc/library/curses.rst:318 msgid "" "Return ``True`` if :func:`endwin` has been called (that is, the curses " "library has been deinitialized)." @@ -549,7 +546,7 @@ msgstr "" "Retorna ``True`` si :func:`endwin` ha sido llamado (eso es que la librería " "curses ha sido desinicializada)." -#: ../Doc/library/curses.rst:325 +#: ../Doc/library/curses.rst:324 msgid "" "Return the name of the key numbered *k* as a bytes object. The name of a " "key generating printable ASCII character is the key's character. The name " @@ -568,7 +565,7 @@ msgstr "" "consistente del prefijo ``b'M-'`` seguido por el nombre del correspondiente " "carácter ASCII." -#: ../Doc/library/curses.rst:335 +#: ../Doc/library/curses.rst:334 msgid "" "Return the user's current line kill character as a one-byte bytes object. " "Under Unix operating systems this is a property of the controlling tty of " @@ -579,7 +576,7 @@ msgstr "" "propiedad del controlador *tty* del programa *curses*, y no está configurado " "por la librería *curses* por sí mismo." -#: ../Doc/library/curses.rst:342 +#: ../Doc/library/curses.rst:341 msgid "" "Return a bytes object containing the terminfo long name field describing the " "current terminal. The maximum length of a verbose description is 128 " @@ -590,7 +587,7 @@ msgstr "" "verbosa es 128 caracteres. Esto es definido solamente después de la llamada " "a :func:`initscr`." -#: ../Doc/library/curses.rst:349 +#: ../Doc/library/curses.rst:348 msgid "" "If *flag* is ``True``, allow 8-bit characters to be input. If *flag* is " "``False``, allow only 7-bit chars." @@ -598,7 +595,7 @@ msgstr "" "Si *flag* es ``True``, permite caracteres de 8 bits para ser introducidos. " "Si *flag* es ``False``, permite solamente caracteres de 7 bits." -#: ../Doc/library/curses.rst:355 +#: ../Doc/library/curses.rst:354 #, fuzzy msgid "" "Set the maximum time in milliseconds that can elapse between press and " @@ -611,7 +608,7 @@ msgstr "" "retornen el valor del intervalo anterior. El valor por defecto es 200 msec, " "o una quinta parte de un segundo." -#: ../Doc/library/curses.rst:362 +#: ../Doc/library/curses.rst:361 msgid "" "Set the mouse events to be reported, and return a tuple ``(availmask, " "oldmask)``. *availmask* indicates which of the specified mouse events can " @@ -626,11 +623,11 @@ msgstr "" "ventana dada. Si esta función nunca es llamada, los eventos del mouse nunca " "son reportados." -#: ../Doc/library/curses.rst:371 +#: ../Doc/library/curses.rst:370 msgid "Sleep for *ms* milliseconds." msgstr "Duerme durante *ms* milisegundos." -#: ../Doc/library/curses.rst:376 +#: ../Doc/library/curses.rst:375 msgid "" "Create and return a pointer to a new pad data structure with the given " "number of lines and columns. Return a pad as a window object." @@ -639,7 +636,7 @@ msgstr "" "el número dado de líneas y columnas. Retorna un *pad* como un objeto de " "ventana." -#: ../Doc/library/curses.rst:379 +#: ../Doc/library/curses.rst:378 msgid "" "A pad is like a window, except that it is not restricted by the screen size, " "and is not necessarily associated with a particular part of the screen. " @@ -669,7 +666,7 @@ msgstr "" "argumento *s* define una caja de recorte en la pantalla con la cual la " "región de la almohadilla será mostrada." -#: ../Doc/library/curses.rst:395 +#: ../Doc/library/curses.rst:394 msgid "" "Return a new :ref:`window `, whose left-upper corner " "is at ``(begin_y, begin_x)``, and whose height/width is *nlines*/*ncols*." @@ -678,7 +675,7 @@ msgstr "" "superior izquierda esta en ``(begin_y, begin_x)``, y cuyo alto/ancho es " "*nlines*/*ncols*." -#: ../Doc/library/curses.rst:398 +#: ../Doc/library/curses.rst:397 msgid "" "By default, the window will extend from the specified position to the lower " "right corner of the screen." @@ -686,7 +683,7 @@ msgstr "" "Por defecto, la ventana extenderá desde la posición especificada para la " "esquina inferior derecha de la pantalla." -#: ../Doc/library/curses.rst:404 +#: ../Doc/library/curses.rst:403 msgid "" "Enter newline mode. This mode translates the return key into newline on " "input, and translates newline into return and line-feed on output. Newline " @@ -696,19 +693,19 @@ msgstr "" "nueva línea en la entrada, y traduce la nueva línea en retorno y avance de " "línea en la salida. El modo de nueva línea está inicialmente encendida." -#: ../Doc/library/curses.rst:411 +#: ../Doc/library/curses.rst:410 msgid "" "Leave cbreak mode. Return to normal \"cooked\" mode with line buffering." msgstr "" "Salir del modo *cbreak*. Retorne al modo normal \"cooked\" con la línea del " "búfer." -#: ../Doc/library/curses.rst:416 +#: ../Doc/library/curses.rst:415 msgid "Leave echo mode. Echoing of input characters is turned off." msgstr "" "Salir del modo echo. El eco de los caracteres de entrada está desactivado." -#: ../Doc/library/curses.rst:421 +#: ../Doc/library/curses.rst:420 msgid "" "Leave newline mode. Disable translation of return into newline on input, " "and disable low-level translation of newline into newline/return on output " @@ -726,7 +723,7 @@ msgstr "" "vertical un poco; también, estará disponible para detectar la tecla de " "retorno en la entrada." -#: ../Doc/library/curses.rst:431 +#: ../Doc/library/curses.rst:430 msgid "" "When the :func:`!noqiflush` routine is used, normal flush of input and " "output queues associated with the ``INTR``, ``QUIT`` and ``SUSP`` characters " @@ -740,12 +737,12 @@ msgstr "" "manejador de señales si quieres que la salida continúe como si la " "interrupción no hubiera ocurrido después de que el manejador exista." -#: ../Doc/library/curses.rst:439 +#: ../Doc/library/curses.rst:438 msgid "Leave raw mode. Return to normal \"cooked\" mode with line buffering." msgstr "" "Salir del modo raw. Retorna al modo normal \"cooked\" con la línea del búfer." -#: ../Doc/library/curses.rst:444 +#: ../Doc/library/curses.rst:443 msgid "" "Return a tuple ``(fg, bg)`` containing the colors for the requested color " "pair. The value of *pair_number* must be between ``0`` and ``COLOR_PAIRS - " @@ -755,7 +752,7 @@ msgstr "" "solicitado. El valor de *pair_number* debe ser entre ``0`` y " "``COLOR_PAIRS-1``." -#: ../Doc/library/curses.rst:450 +#: ../Doc/library/curses.rst:449 msgid "" "Return the number of the color-pair set by the attribute value *attr*. :func:" "`color_pair` is the counterpart to this function." @@ -763,7 +760,7 @@ msgstr "" "Retorna el numero del conjunto de pares de colores para el valor del " "atributo *attr*. :func:`color_pair` es la contraparte de esta función." -#: ../Doc/library/curses.rst:456 +#: ../Doc/library/curses.rst:455 msgid "" "Equivalent to ``tputs(str, 1, putchar)``; emit the value of a specified " "terminfo capability for the current terminal. Note that the output of :func:" @@ -773,7 +770,7 @@ msgstr "" "especificada *terminfo* para el terminal actual. Nota que la salida de :func:" "`putp` siempre va a la salida estándar." -#: ../Doc/library/curses.rst:463 +#: ../Doc/library/curses.rst:462 msgid "" "If *flag* is ``False``, the effect is the same as calling :func:`noqiflush`. " "If *flag* is ``True``, or no argument is provided, the queues will be " @@ -783,7 +780,7 @@ msgstr "" "`noqiflush`. Si *flag* es ``True``, o el argumento no es proveído, la cola " "será nivelada cuando estos caracteres de control son leídos." -#: ../Doc/library/curses.rst:470 +#: ../Doc/library/curses.rst:469 msgid "" "Enter raw mode. In raw mode, normal line buffering and processing of " "interrupt, quit, suspend, and flow control keys are turned off; characters " @@ -794,7 +791,7 @@ msgstr "" "suspensión y control de flujo son apagadas; los caracteres son presentados a " "la función de entrada de *curses* una por una." -#: ../Doc/library/curses.rst:477 +#: ../Doc/library/curses.rst:476 msgid "" "Restore the terminal to \"program\" mode, as previously saved by :func:" "`def_prog_mode`." @@ -802,7 +799,7 @@ msgstr "" "Restaura la terminal para el modo \"program\", anteriormente guardado por :" "func:`def_prog_mode`." -#: ../Doc/library/curses.rst:483 +#: ../Doc/library/curses.rst:482 msgid "" "Restore the terminal to \"shell\" mode, as previously saved by :func:" "`def_shell_mode`." @@ -810,7 +807,7 @@ msgstr "" "Restablece el terminal al modo \"shell\" como lo guardó previamente :func:" "`def_shell_mode`." -#: ../Doc/library/curses.rst:489 +#: ../Doc/library/curses.rst:488 msgid "" "Restore the state of the terminal modes to what it was at the last call to :" "func:`savetty`." @@ -818,7 +815,7 @@ msgstr "" "Restablece el estado del modo del terminal para lo que esto fue en el último " "llamado a :func:`savetty`." -#: ../Doc/library/curses.rst:495 +#: ../Doc/library/curses.rst:494 msgid "" "Backend function used by :func:`resizeterm`, performing most of the work; " "when resizing the windows, :func:`resize_term` blank-fills the areas that " @@ -835,7 +832,7 @@ msgstr "" "convención de llamadas del las almohadillas, esto no es posible para " "redimensionar estos sin interacciones adicionales con la aplicación." -#: ../Doc/library/curses.rst:505 +#: ../Doc/library/curses.rst:504 msgid "" "Resize the standard and current windows to the specified dimensions, and " "adjusts other bookkeeping data used by the curses library that record the " @@ -846,7 +843,7 @@ msgstr "" "*curses* que registra las dimensiones de la ventana (en particular el " "manejador SIGWINCH )." -#: ../Doc/library/curses.rst:512 +#: ../Doc/library/curses.rst:511 msgid "" "Save the current state of the terminal modes in a buffer, usable by :func:" "`resetty`." @@ -854,11 +851,11 @@ msgstr "" "Guarda el estado actual del modo del terminal en un búfer, usable por :func:" "`resetty`." -#: ../Doc/library/curses.rst:517 +#: ../Doc/library/curses.rst:516 msgid "Retrieves the value set by :func:`set_escdelay`." msgstr "Recupera el valor establecido por :func:`set_escdelay`." -#: ../Doc/library/curses.rst:523 +#: ../Doc/library/curses.rst:522 msgid "" "Sets the number of milliseconds to wait after reading an escape character, " "to distinguish between an individual escape character entered on the " @@ -869,11 +866,11 @@ msgstr "" "el teclado de las secuencias de escape enviadas por el cursor y las teclas " "de función." -#: ../Doc/library/curses.rst:531 +#: ../Doc/library/curses.rst:530 msgid "Retrieves the value set by :func:`set_tabsize`." msgstr "Recupera el valor establecido por :func:`set_tabsize`." -#: ../Doc/library/curses.rst:537 +#: ../Doc/library/curses.rst:536 msgid "" "Sets the number of columns used by the curses library when converting a tab " "character to spaces as it adds the tab to a window." @@ -882,7 +879,7 @@ msgstr "" "convertir un carácter de tabulación en espacios, ya que agrega la tabulación " "a una ventana." -#: ../Doc/library/curses.rst:544 +#: ../Doc/library/curses.rst:543 msgid "" "Set the virtual screen cursor to *y*, *x*. If *y* and *x* are both ``-1``, " "then :meth:`leaveok ` is set ``True``." @@ -890,7 +887,7 @@ msgstr "" "Fija el cursor de la pantalla virtual para *y*, *x*. Si *y* y *x* son ambos " "\"-1\", entonces :meth:`leaveok ` es configurado ``True``." -#: ../Doc/library/curses.rst:550 +#: ../Doc/library/curses.rst:549 msgid "" "Initialize the terminal. *term* is a string giving the terminal name, or " "``None``; if omitted or ``None``, the value of the :envvar:`TERM` " @@ -904,7 +901,7 @@ msgstr "" "descriptor al cual alguna secuencia de inicialización será enviada; si no es " "suministrada o ``-1``, el archivo descriptor para ``sys.stdout`` será usado." -#: ../Doc/library/curses.rst:559 +#: ../Doc/library/curses.rst:558 msgid "" "Must be called if the programmer wants to use colors, and before any other " "color manipulation routine is called. It is good practice to call this " @@ -915,7 +912,7 @@ msgstr "" "buena práctica para llamar esta rutina inmediatamente después de :func:" "`initscr`." -#: ../Doc/library/curses.rst:563 +#: ../Doc/library/curses.rst:562 msgid "" ":func:`start_color` initializes eight basic colors (black, red, green, " "yellow, blue, magenta, cyan, and white), and two global variables in the :" @@ -931,7 +928,7 @@ msgstr "" "soportar. Esto también restaura los colores en la terminal para los valores " "que ellos tienen cuando la terminal fue solo activada." -#: ../Doc/library/curses.rst:572 +#: ../Doc/library/curses.rst:571 msgid "" "Return a logical OR of all video attributes supported by the terminal. This " "information is useful when a curses program needs complete control over the " @@ -941,7 +938,7 @@ msgstr "" "terminal. Esta información es útil cuando un programa *curses* necesita " "completar el control sobre la apariencia de la pantalla." -#: ../Doc/library/curses.rst:579 +#: ../Doc/library/curses.rst:578 msgid "" "Return the value of the environment variable :envvar:`TERM`, as a bytes " "object, truncated to 14 characters." @@ -949,7 +946,7 @@ msgstr "" "Retorna el valor de la variable de entorno :envvar:`TERM`, como un objeto de " "bytes, trucado para 14 caracteres." -#: ../Doc/library/curses.rst:585 +#: ../Doc/library/curses.rst:584 msgid "" "Return the value of the Boolean capability corresponding to the terminfo " "capability name *capname* as an integer. Return the value ``-1`` if " @@ -961,7 +958,7 @@ msgstr "" "``-1`` si *capname* no es una capacidad booleana, o ``0`` si es cancelada o " "ausente desde la descripción de la terminal." -#: ../Doc/library/curses.rst:593 +#: ../Doc/library/curses.rst:592 msgid "" "Return the value of the numeric capability corresponding to the terminfo " "capability name *capname* as an integer. Return the value ``-2`` if " @@ -973,7 +970,7 @@ msgstr "" "*capname* no es una capacidad numérica, o ``-1`` si esta es cancelada o " "ausente desde la descripción del terminal." -#: ../Doc/library/curses.rst:601 +#: ../Doc/library/curses.rst:600 msgid "" "Return the value of the string capability corresponding to the terminfo " "capability name *capname* as a bytes object. Return ``None`` if *capname* " @@ -986,7 +983,7 @@ msgstr "" "caracteres\" de *terminfo*, o es cancelada o ausente desde la descripción de " "la terminal." -#: ../Doc/library/curses.rst:609 +#: ../Doc/library/curses.rst:608 msgid "" "Instantiate the bytes object *str* with the supplied parameters, where *str* " "should be a parameterized string obtained from the terminfo database. E.g. " @@ -999,7 +996,7 @@ msgstr "" "resultar en ``b'\\033[6;4H'``, el resultado exacto depende del tipo de " "terminal." -#: ../Doc/library/curses.rst:617 +#: ../Doc/library/curses.rst:616 msgid "" "Specify that the file descriptor *fd* be used for typeahead checking. If " "*fd* is ``-1``, then no typeahead checking is done." @@ -1008,7 +1005,7 @@ msgstr "" "anticipada. Si *fd* es \"-1\", entonces no se realiza ninguna verificación " "anticipada." -#: ../Doc/library/curses.rst:620 +#: ../Doc/library/curses.rst:619 msgid "" "The curses library does \"line-breakout optimization\" by looking for " "typeahead periodically while updating the screen. If input is found, and it " @@ -1025,7 +1022,7 @@ msgstr "" "avance. Esta función permite especificar un archivo diferente al descriptor " "para la verificación anticipada." -#: ../Doc/library/curses.rst:629 +#: ../Doc/library/curses.rst:628 msgid "" "Return a bytes object which is a printable representation of the character " "*ch*. Control characters are represented as a caret followed by the " @@ -1037,18 +1034,19 @@ msgstr "" "de intercalación seguido del carácter, por ejemplo como ``b'^C'``. La " "impresión de caracteres son dejados como están." -#: ../Doc/library/curses.rst:636 +#: ../Doc/library/curses.rst:635 msgid "Push *ch* so the next :meth:`~window.getch` will return it." msgstr "Presiona *ch* para que el siguiente :meth:`~window.getch` lo retorne." -#: ../Doc/library/curses.rst:640 +#: ../Doc/library/curses.rst:639 msgid "Only one *ch* can be pushed before :meth:`!getch` is called." msgstr "Solamente un *ch* puede ser colocado antes :meth:`!getch` es llamada." -#: ../Doc/library/curses.rst:645 +#: ../Doc/library/curses.rst:644 +#, fuzzy msgid "" -"Update :envvar:`LINES` and :envvar:`COLS`. Useful for detecting manual " -"screen resize." +"Update the :const:`LINES` and :const:`COLS` module variables. Useful for " +"detecting manual screen resize." msgstr "" "Actualiza :envvar:`LINES` y :envvar:`COLS`. Útil para detectar el cambio " "manual del tamaño de pantalla." @@ -2072,9 +2070,10 @@ msgstr "" "llamada para :meth:`refresh`." #: ../Doc/library/curses.rst:1304 +#, fuzzy msgid "" "Display a vertical line starting at ``(y, x)`` with length *n* consisting of " -"the character *ch*." +"the character *ch* with attributes *attr*." msgstr "" "Muestre una línea vertical iniciando en ``(y, x)`` con longitud *n* " "consistente de el carácter *ch*." @@ -2103,10 +2102,9 @@ msgstr "" "Algunas rutinas de *curses* que retornan un entero, tales como :func:" "`napms`, retorna :const:`OK` tras el éxito." -#: ../Doc/library/curses.rst:1328 -msgid "" -"A bytes object representing the current version of the module. Also " -"available as :const:`__version__`." +#: ../Doc/library/curses.rst:1329 +#, fuzzy +msgid "A bytes object representing the current version of the module." msgstr "" "Un objeto de bytes representando la versión actual de el módulo. También " "disponible como :const:`__version__`." @@ -2127,7 +2125,33 @@ msgstr "" msgid "Availability: if the ncurses library is used." msgstr "Disponibilidad: si la librería ncurses es usada." -#: ../Doc/library/curses.rst:1344 +#: ../Doc/library/curses.rst:1345 +msgid "" +"The maximum number of colors the terminal can support. It is defined only " +"after the call to :func:`start_color`." +msgstr "" + +#: ../Doc/library/curses.rst:1350 +msgid "" +"The maximum number of color pairs the terminal can support. It is defined " +"only after the call to :func:`start_color`." +msgstr "" + +#: ../Doc/library/curses.rst:1355 +msgid "" +"The width of the screen, i.e., the number of columns. It is defined only " +"after the call to :func:`initscr`. Updated by :func:`update_lines_cols`, :" +"func:`resizeterm` and :func:`resize_term`." +msgstr "" + +#: ../Doc/library/curses.rst:1362 +msgid "" +"The height of the screen, i.e., the number of lines. It is defined only " +"after the call to :func:`initscr`. Updated by :func:`update_lines_cols`, :" +"func:`resizeterm` and :func:`resize_term`." +msgstr "" + +#: ../Doc/library/curses.rst:1368 msgid "" "Some constants are available to specify character cell attributes. The exact " "constants available are system dependent." @@ -2136,164 +2160,88 @@ msgstr "" "celdas de caracteres. Las constantes exactas disponible dependen del " "sistema." -#: ../Doc/library/curses.rst:1348 +#: ../Doc/library/curses.rst:1372 msgid "Attribute" msgstr "Atributo" -#: ../Doc/library/curses.rst:1348 ../Doc/library/curses.rst:1396 -#: ../Doc/library/curses.rst:1640 +#: ../Doc/library/curses.rst:1372 ../Doc/library/curses.rst:1417 +#: ../Doc/library/curses.rst:1663 ../Doc/library/curses.rst:1755 msgid "Meaning" msgstr "Significado" -#: ../Doc/library/curses.rst:1350 -msgid "``A_ALTCHARSET``" -msgstr "``A_ALTCHARSET``" - -#: ../Doc/library/curses.rst:1350 +#: ../Doc/library/curses.rst:1374 msgid "Alternate character set mode" msgstr "Modo de conjunto de caracteres alternativo" -#: ../Doc/library/curses.rst:1352 -msgid "``A_BLINK``" -msgstr "``A_BLINK``" - -#: ../Doc/library/curses.rst:1352 +#: ../Doc/library/curses.rst:1376 msgid "Blink mode" msgstr "Modo parpadeo" -#: ../Doc/library/curses.rst:1354 -msgid "``A_BOLD``" -msgstr "``A_BOLD``" - -#: ../Doc/library/curses.rst:1354 +#: ../Doc/library/curses.rst:1378 msgid "Bold mode" msgstr "Modo negrita" -#: ../Doc/library/curses.rst:1356 -msgid "``A_DIM``" -msgstr "``A_DIM``" - -#: ../Doc/library/curses.rst:1356 +#: ../Doc/library/curses.rst:1380 msgid "Dim mode" msgstr "Modo tenue" -#: ../Doc/library/curses.rst:1358 -msgid "``A_INVIS``" -msgstr "``A_INVIS``" - -#: ../Doc/library/curses.rst:1358 +#: ../Doc/library/curses.rst:1382 msgid "Invisible or blank mode" msgstr "Modo invisible o en blanco" -#: ../Doc/library/curses.rst:1360 -msgid "``A_ITALIC``" -msgstr "``A_ITALIC``" - -#: ../Doc/library/curses.rst:1360 +#: ../Doc/library/curses.rst:1384 msgid "Italic mode" msgstr "Modo cursiva" -#: ../Doc/library/curses.rst:1362 -msgid "``A_NORMAL``" -msgstr "``A_NORMAL``" - -#: ../Doc/library/curses.rst:1362 +#: ../Doc/library/curses.rst:1386 msgid "Normal attribute" msgstr "Atributo normal" -#: ../Doc/library/curses.rst:1364 -msgid "``A_PROTECT``" -msgstr "``A_PROTECT``" - -#: ../Doc/library/curses.rst:1364 +#: ../Doc/library/curses.rst:1388 msgid "Protected mode" msgstr "Modo protegido" -#: ../Doc/library/curses.rst:1366 -msgid "``A_REVERSE``" -msgstr "``A_REVERSE``" - -#: ../Doc/library/curses.rst:1366 +#: ../Doc/library/curses.rst:1390 msgid "Reverse background and foreground colors" msgstr "Fondo inverso y colores de primer plano" -#: ../Doc/library/curses.rst:1369 -msgid "``A_STANDOUT``" -msgstr "``A_STANDOUT``" - -#: ../Doc/library/curses.rst:1369 +#: ../Doc/library/curses.rst:1393 msgid "Standout mode" msgstr "Modo destacado" -#: ../Doc/library/curses.rst:1371 -msgid "``A_UNDERLINE``" -msgstr "``A_UNDERLINE``" - -#: ../Doc/library/curses.rst:1371 +#: ../Doc/library/curses.rst:1395 msgid "Underline mode" msgstr "Modo subrayado" -#: ../Doc/library/curses.rst:1373 -msgid "``A_HORIZONTAL``" -msgstr "``A_HORIZONTAL``" - -#: ../Doc/library/curses.rst:1373 +#: ../Doc/library/curses.rst:1397 msgid "Horizontal highlight" msgstr "Resaltado horizontal" -#: ../Doc/library/curses.rst:1375 -msgid "``A_LEFT``" -msgstr "``A_LEFT``" - -#: ../Doc/library/curses.rst:1375 +#: ../Doc/library/curses.rst:1399 msgid "Left highlight" msgstr "Resaltado a la izquierda" -#: ../Doc/library/curses.rst:1377 -msgid "``A_LOW``" -msgstr "``A_LOW``" - -#: ../Doc/library/curses.rst:1377 +#: ../Doc/library/curses.rst:1401 msgid "Low highlight" msgstr "Resaltado bajo" -#: ../Doc/library/curses.rst:1379 -msgid "``A_RIGHT``" -msgstr "``A_RIGHT``" - -#: ../Doc/library/curses.rst:1379 +#: ../Doc/library/curses.rst:1403 msgid "Right highlight" msgstr "Resaltado a la derecha" -#: ../Doc/library/curses.rst:1381 -msgid "``A_TOP``" -msgstr "``A_TOP``" - -#: ../Doc/library/curses.rst:1381 +#: ../Doc/library/curses.rst:1405 msgid "Top highlight" msgstr "Resaltado arriba" -#: ../Doc/library/curses.rst:1383 -msgid "``A_VERTICAL``" -msgstr "``A_VERTICAL``" - -#: ../Doc/library/curses.rst:1383 +#: ../Doc/library/curses.rst:1407 msgid "Vertical highlight" msgstr "Resaltado vertical" -#: ../Doc/library/curses.rst:1385 ../Doc/library/curses.rst:1401 -msgid "``A_CHARTEXT``" -msgstr "``A_CHARTEXT``" - -#: ../Doc/library/curses.rst:1385 ../Doc/library/curses.rst:1401 -msgid "Bit-mask to extract a character" -msgstr "Mascara de bits para extraer un caracter" - -#: ../Doc/library/curses.rst:1389 +#: ../Doc/library/curses.rst:1410 msgid "``A_ITALIC`` was added." msgstr "``A_ITALIC`` fue añadido." -#: ../Doc/library/curses.rst:1392 +#: ../Doc/library/curses.rst:1413 msgid "" "Several constants are available to extract corresponding attributes returned " "by some methods." @@ -2301,27 +2249,23 @@ msgstr "" "Varias constantes están disponibles para extraer los atributos " "correspondientes retornados por algunos métodos." -#: ../Doc/library/curses.rst:1396 +#: ../Doc/library/curses.rst:1417 msgid "Bit-mask" msgstr "Mascara de bits" -#: ../Doc/library/curses.rst:1398 -msgid "``A_ATTRIBUTES``" -msgstr "``A_ATTRIBUTES``" - -#: ../Doc/library/curses.rst:1398 +#: ../Doc/library/curses.rst:1419 msgid "Bit-mask to extract attributes" msgstr "Mascara de bits para extraer atributos" -#: ../Doc/library/curses.rst:1404 -msgid "``A_COLOR``" -msgstr "``A_COLOR``" +#: ../Doc/library/curses.rst:1422 +msgid "Bit-mask to extract a character" +msgstr "Mascara de bits para extraer un caracter" -#: ../Doc/library/curses.rst:1404 +#: ../Doc/library/curses.rst:1425 msgid "Bit-mask to extract color-pair field information" msgstr "Mascara de bits para extraer información de campo de pares de colores" -#: ../Doc/library/curses.rst:1408 +#: ../Doc/library/curses.rst:1429 msgid "" "Keys are referred to by integer constants with names starting with " "``KEY_``. The exact keycaps available are system dependent." @@ -2329,775 +2273,401 @@ msgstr "" "Las teclas se denominan constantes enteras con nombres que comienzan con " "``KEY_``. Las teclas exactas disponibles son dependientes del sistema." -#: ../Doc/library/curses.rst:1414 +#: ../Doc/library/curses.rst:1435 msgid "Key constant" msgstr "Clave constante" -#: ../Doc/library/curses.rst:1414 +#: ../Doc/library/curses.rst:1435 msgid "Key" msgstr "Clave" -#: ../Doc/library/curses.rst:1416 -msgid "``KEY_MIN``" -msgstr "``KEY_MIN``" - -#: ../Doc/library/curses.rst:1416 +#: ../Doc/library/curses.rst:1437 msgid "Minimum key value" msgstr "Valor mínimo de la clave" -#: ../Doc/library/curses.rst:1418 -msgid "``KEY_BREAK``" -msgstr "``KEY_BREAK``" - -#: ../Doc/library/curses.rst:1418 +#: ../Doc/library/curses.rst:1439 msgid "Break key (unreliable)" msgstr "Clave rota (no confiable)" -#: ../Doc/library/curses.rst:1420 -msgid "``KEY_DOWN``" -msgstr "``KEY_DOWN``" - -#: ../Doc/library/curses.rst:1420 +#: ../Doc/library/curses.rst:1441 msgid "Down-arrow" msgstr "Flecha hacia abajo" -#: ../Doc/library/curses.rst:1422 -msgid "``KEY_UP``" -msgstr "``KEY_UP``" - -#: ../Doc/library/curses.rst:1422 +#: ../Doc/library/curses.rst:1443 msgid "Up-arrow" msgstr "Flecha hacia arriba" -#: ../Doc/library/curses.rst:1424 -msgid "``KEY_LEFT``" -msgstr "``KEY_LEFT``" - -#: ../Doc/library/curses.rst:1424 +#: ../Doc/library/curses.rst:1445 msgid "Left-arrow" msgstr "Flecha hacia la izquierda" -#: ../Doc/library/curses.rst:1426 -msgid "``KEY_RIGHT``" -msgstr "``KEY_RIGHT``" - -#: ../Doc/library/curses.rst:1426 +#: ../Doc/library/curses.rst:1447 msgid "Right-arrow" msgstr "Flecha hacia la derecha" -#: ../Doc/library/curses.rst:1428 -msgid "``KEY_HOME``" -msgstr "``KEY_HOME``" - -#: ../Doc/library/curses.rst:1428 +#: ../Doc/library/curses.rst:1449 msgid "Home key (upward+left arrow)" msgstr "Tecla de inicio (flecha hacia arriba + flecha hacia la izquierda)" -#: ../Doc/library/curses.rst:1430 -msgid "``KEY_BACKSPACE``" -msgstr "``KEY_BACKSPACE``" - -#: ../Doc/library/curses.rst:1430 +#: ../Doc/library/curses.rst:1451 msgid "Backspace (unreliable)" msgstr "Retroceso (no confiable)" -#: ../Doc/library/curses.rst:1432 -msgid "``KEY_F0``" -msgstr "``KEY_F0``" - -#: ../Doc/library/curses.rst:1432 +#: ../Doc/library/curses.rst:1453 msgid "Function keys. Up to 64 function keys are supported." msgstr "Teclas de función. Más de 64 teclas de función son soportadas." -#: ../Doc/library/curses.rst:1435 -msgid "``KEY_Fn``" -msgstr "``KEY_Fn``" - -#: ../Doc/library/curses.rst:1435 +#: ../Doc/library/curses.rst:1456 msgid "Value of function key *n*" msgstr "Valor de tecla de función *n*" -#: ../Doc/library/curses.rst:1437 -msgid "``KEY_DL``" -msgstr "``KEY_DL``" - -#: ../Doc/library/curses.rst:1437 +#: ../Doc/library/curses.rst:1458 msgid "Delete line" msgstr "Borrar línea" -#: ../Doc/library/curses.rst:1439 -msgid "``KEY_IL``" -msgstr "``KEY_IL``" - -#: ../Doc/library/curses.rst:1439 +#: ../Doc/library/curses.rst:1460 msgid "Insert line" msgstr "Inserte línea" -#: ../Doc/library/curses.rst:1441 -msgid "``KEY_DC``" -msgstr "``KEY_DC``" - -#: ../Doc/library/curses.rst:1441 +#: ../Doc/library/curses.rst:1462 msgid "Delete character" msgstr "Borrar caracter" -#: ../Doc/library/curses.rst:1443 -msgid "``KEY_IC``" -msgstr "``KEY_IC``" - -#: ../Doc/library/curses.rst:1443 +#: ../Doc/library/curses.rst:1464 msgid "Insert char or enter insert mode" msgstr "Insertar carácter o ingresara al modo de inserción" -#: ../Doc/library/curses.rst:1445 -msgid "``KEY_EIC``" -msgstr "``KEY_EIC``" - -#: ../Doc/library/curses.rst:1445 +#: ../Doc/library/curses.rst:1466 msgid "Exit insert char mode" msgstr "Salir del modo de inserción de caracteres" -#: ../Doc/library/curses.rst:1447 -msgid "``KEY_CLEAR``" -msgstr "``KEY_CLEAR``" - -#: ../Doc/library/curses.rst:1447 +#: ../Doc/library/curses.rst:1468 msgid "Clear screen" msgstr "Limpiar pantalla" -#: ../Doc/library/curses.rst:1449 -msgid "``KEY_EOS``" -msgstr "``KEY_EOS``" - -#: ../Doc/library/curses.rst:1449 +#: ../Doc/library/curses.rst:1470 msgid "Clear to end of screen" msgstr "Limpiar al final de pantalla" -#: ../Doc/library/curses.rst:1451 -msgid "``KEY_EOL``" -msgstr "``KEY_EOL``" - -#: ../Doc/library/curses.rst:1451 +#: ../Doc/library/curses.rst:1472 msgid "Clear to end of line" msgstr "Limpiar al final de la línea" -#: ../Doc/library/curses.rst:1453 -msgid "``KEY_SF``" -msgstr "``KEY_SF``" - -#: ../Doc/library/curses.rst:1453 +#: ../Doc/library/curses.rst:1474 msgid "Scroll 1 line forward" msgstr "Desplazar una línea hacia adelante" -#: ../Doc/library/curses.rst:1455 -msgid "``KEY_SR``" -msgstr "``KEY_SR``" - -#: ../Doc/library/curses.rst:1455 +#: ../Doc/library/curses.rst:1476 msgid "Scroll 1 line backward (reverse)" msgstr "Desplazar una línea hacia atrás (reversa)" -#: ../Doc/library/curses.rst:1457 -msgid "``KEY_NPAGE``" -msgstr "``KEY_NPAGE``" - -#: ../Doc/library/curses.rst:1457 +#: ../Doc/library/curses.rst:1478 msgid "Next page" msgstr "Página siguiente" -#: ../Doc/library/curses.rst:1459 -msgid "``KEY_PPAGE``" -msgstr "``KEY_PPAGE``" - -#: ../Doc/library/curses.rst:1459 +#: ../Doc/library/curses.rst:1480 msgid "Previous page" msgstr "Página anterior" -#: ../Doc/library/curses.rst:1461 -msgid "``KEY_STAB``" -msgstr "``KEY_STAB``" - -#: ../Doc/library/curses.rst:1461 +#: ../Doc/library/curses.rst:1482 msgid "Set tab" msgstr "Establecer pestaña" -#: ../Doc/library/curses.rst:1463 -msgid "``KEY_CTAB``" -msgstr "``KEY_CTAB``" - -#: ../Doc/library/curses.rst:1463 +#: ../Doc/library/curses.rst:1484 msgid "Clear tab" msgstr "Limpiar pestaña" -#: ../Doc/library/curses.rst:1465 -msgid "``KEY_CATAB``" -msgstr "``KEY_CATAB``" - -#: ../Doc/library/curses.rst:1465 +#: ../Doc/library/curses.rst:1486 msgid "Clear all tabs" msgstr "Limpiar todas las pestañas" -#: ../Doc/library/curses.rst:1467 -msgid "``KEY_ENTER``" -msgstr "``KEY_ENTER``" - -#: ../Doc/library/curses.rst:1467 +#: ../Doc/library/curses.rst:1488 msgid "Enter or send (unreliable)" msgstr "Ingresar o enviar (no confiable)" -#: ../Doc/library/curses.rst:1469 -msgid "``KEY_SRESET``" -msgstr "``KEY_SRESET``" - -#: ../Doc/library/curses.rst:1469 +#: ../Doc/library/curses.rst:1490 msgid "Soft (partial) reset (unreliable)" msgstr "Reinicio suave (parcial) (no confiable)" -#: ../Doc/library/curses.rst:1471 -msgid "``KEY_RESET``" -msgstr "``KEY_RESET``" - -#: ../Doc/library/curses.rst:1471 +#: ../Doc/library/curses.rst:1492 msgid "Reset or hard reset (unreliable)" msgstr "Reinicio o reinicio fuerte (no confiable)" -#: ../Doc/library/curses.rst:1473 -msgid "``KEY_PRINT``" -msgstr "``KEY_PRINT``" - -#: ../Doc/library/curses.rst:1473 +#: ../Doc/library/curses.rst:1494 msgid "Print" msgstr "Imprimir" -#: ../Doc/library/curses.rst:1475 -msgid "``KEY_LL``" -msgstr "``KEY_LL``" - -#: ../Doc/library/curses.rst:1475 +#: ../Doc/library/curses.rst:1496 msgid "Home down or bottom (lower left)" msgstr "Inicio abajo o abajo (abajo a la izquierda)" -#: ../Doc/library/curses.rst:1477 -msgid "``KEY_A1``" -msgstr "``KEY_A1``" - -#: ../Doc/library/curses.rst:1477 +#: ../Doc/library/curses.rst:1498 msgid "Upper left of keypad" msgstr "Superior izquierda del teclado" -#: ../Doc/library/curses.rst:1479 -msgid "``KEY_A3``" -msgstr "``KEY_A3``" - -#: ../Doc/library/curses.rst:1479 +#: ../Doc/library/curses.rst:1500 msgid "Upper right of keypad" msgstr "Superior derecha de el teclado" -#: ../Doc/library/curses.rst:1481 -msgid "``KEY_B2``" -msgstr "``KEY_B2``" - -#: ../Doc/library/curses.rst:1481 +#: ../Doc/library/curses.rst:1502 msgid "Center of keypad" msgstr "Centro del teclado" -#: ../Doc/library/curses.rst:1483 -msgid "``KEY_C1``" -msgstr "``KEY_C1``" - -#: ../Doc/library/curses.rst:1483 +#: ../Doc/library/curses.rst:1504 msgid "Lower left of keypad" msgstr "Inferior izquierdo del teclado" -#: ../Doc/library/curses.rst:1485 -msgid "``KEY_C3``" -msgstr "``KEY_C3``" - -#: ../Doc/library/curses.rst:1485 +#: ../Doc/library/curses.rst:1506 msgid "Lower right of keypad" msgstr "Inferior derecho del teclado" -#: ../Doc/library/curses.rst:1487 -msgid "``KEY_BTAB``" -msgstr "``KEY_BTAB``" - -#: ../Doc/library/curses.rst:1487 +#: ../Doc/library/curses.rst:1508 msgid "Back tab" msgstr "Pestaña trasera" -#: ../Doc/library/curses.rst:1489 -msgid "``KEY_BEG``" -msgstr "``KEY_BEG``" - -#: ../Doc/library/curses.rst:1489 +#: ../Doc/library/curses.rst:1510 msgid "Beg (beginning)" msgstr "Mendigar (Comienzo)" -#: ../Doc/library/curses.rst:1491 -msgid "``KEY_CANCEL``" -msgstr "``KEY_CANCEL``" - -#: ../Doc/library/curses.rst:1491 +#: ../Doc/library/curses.rst:1512 msgid "Cancel" msgstr "Cancelar" -#: ../Doc/library/curses.rst:1493 -msgid "``KEY_CLOSE``" -msgstr "``KEY_CLOSE``" - -#: ../Doc/library/curses.rst:1493 +#: ../Doc/library/curses.rst:1514 msgid "Close" msgstr "Cerrar" -#: ../Doc/library/curses.rst:1495 -msgid "``KEY_COMMAND``" -msgstr "``KEY_COMMAND``" - -#: ../Doc/library/curses.rst:1495 +#: ../Doc/library/curses.rst:1516 msgid "Cmd (command)" msgstr "Cmd (Comando)" -#: ../Doc/library/curses.rst:1497 -msgid "``KEY_COPY``" -msgstr "``KEY_COPY``" - -#: ../Doc/library/curses.rst:1497 +#: ../Doc/library/curses.rst:1518 msgid "Copy" msgstr "Copiar" -#: ../Doc/library/curses.rst:1499 -msgid "``KEY_CREATE``" -msgstr "``KEY_CREATE``" - -#: ../Doc/library/curses.rst:1499 +#: ../Doc/library/curses.rst:1520 msgid "Create" msgstr "Crear" -#: ../Doc/library/curses.rst:1501 -msgid "``KEY_END``" -msgstr "``KEY_END``" - -#: ../Doc/library/curses.rst:1501 +#: ../Doc/library/curses.rst:1522 msgid "End" msgstr "Final" -#: ../Doc/library/curses.rst:1503 -msgid "``KEY_EXIT``" -msgstr "``KEY_EXIT``" - -#: ../Doc/library/curses.rst:1503 +#: ../Doc/library/curses.rst:1524 msgid "Exit" msgstr "Salir" -#: ../Doc/library/curses.rst:1505 -msgid "``KEY_FIND``" -msgstr "``KEY_FIND``" - -#: ../Doc/library/curses.rst:1505 +#: ../Doc/library/curses.rst:1526 msgid "Find" msgstr "Encontrar" -#: ../Doc/library/curses.rst:1507 -msgid "``KEY_HELP``" -msgstr "``KEY_HELP``" - -#: ../Doc/library/curses.rst:1507 +#: ../Doc/library/curses.rst:1528 msgid "Help" msgstr "Ayudar" -#: ../Doc/library/curses.rst:1509 -msgid "``KEY_MARK``" -msgstr "``KEY_MARK``" - -#: ../Doc/library/curses.rst:1509 +#: ../Doc/library/curses.rst:1530 msgid "Mark" msgstr "Marca" -#: ../Doc/library/curses.rst:1511 -msgid "``KEY_MESSAGE``" -msgstr "``KEY_MESSAGE``" - -#: ../Doc/library/curses.rst:1511 +#: ../Doc/library/curses.rst:1532 msgid "Message" msgstr "Mensaje" -#: ../Doc/library/curses.rst:1513 -msgid "``KEY_MOVE``" -msgstr "``KEY_MOVE``" - -#: ../Doc/library/curses.rst:1513 +#: ../Doc/library/curses.rst:1534 msgid "Move" msgstr "Mover" -#: ../Doc/library/curses.rst:1515 -msgid "``KEY_NEXT``" -msgstr "``KEY_NEXT``" - -#: ../Doc/library/curses.rst:1515 +#: ../Doc/library/curses.rst:1536 msgid "Next" msgstr "Siguiente" -#: ../Doc/library/curses.rst:1517 -msgid "``KEY_OPEN``" -msgstr "``KEY_OPEN``" - -#: ../Doc/library/curses.rst:1517 +#: ../Doc/library/curses.rst:1538 msgid "Open" msgstr "Abrir" -#: ../Doc/library/curses.rst:1519 -msgid "``KEY_OPTIONS``" -msgstr "``KEY_OPTIONS``" - -#: ../Doc/library/curses.rst:1519 +#: ../Doc/library/curses.rst:1540 msgid "Options" msgstr "Opciones" -#: ../Doc/library/curses.rst:1521 -msgid "``KEY_PREVIOUS``" -msgstr "``KEY_PREVIOUS``" - -#: ../Doc/library/curses.rst:1521 +#: ../Doc/library/curses.rst:1542 msgid "Prev (previous)" msgstr "Anterior" -#: ../Doc/library/curses.rst:1523 -msgid "``KEY_REDO``" -msgstr "``KEY_REDO``" - -#: ../Doc/library/curses.rst:1523 +#: ../Doc/library/curses.rst:1544 msgid "Redo" msgstr "Rehacer" -#: ../Doc/library/curses.rst:1525 -msgid "``KEY_REFERENCE``" -msgstr "``KEY_REFERENCE``" - -#: ../Doc/library/curses.rst:1525 +#: ../Doc/library/curses.rst:1546 msgid "Ref (reference)" msgstr "Referencia" -#: ../Doc/library/curses.rst:1527 -msgid "``KEY_REFRESH``" -msgstr "``KEY_REFRESH``" - -#: ../Doc/library/curses.rst:1527 +#: ../Doc/library/curses.rst:1548 msgid "Refresh" msgstr "Refrescar" -#: ../Doc/library/curses.rst:1529 -msgid "``KEY_REPLACE``" -msgstr "``KEY_REPLACE``" - -#: ../Doc/library/curses.rst:1529 +#: ../Doc/library/curses.rst:1550 msgid "Replace" msgstr "Re-emplazar" -#: ../Doc/library/curses.rst:1531 -msgid "``KEY_RESTART``" -msgstr "``KEY_RESTART``" - -#: ../Doc/library/curses.rst:1531 +#: ../Doc/library/curses.rst:1552 msgid "Restart" msgstr "Re-iniciar" -#: ../Doc/library/curses.rst:1533 -msgid "``KEY_RESUME``" -msgstr "``KEY_RESUME``" - -#: ../Doc/library/curses.rst:1533 +#: ../Doc/library/curses.rst:1554 msgid "Resume" msgstr "Resumir" -#: ../Doc/library/curses.rst:1535 -msgid "``KEY_SAVE``" -msgstr "``KEY_SAVE``" - -#: ../Doc/library/curses.rst:1535 +#: ../Doc/library/curses.rst:1556 msgid "Save" msgstr "Guardar" -#: ../Doc/library/curses.rst:1537 -msgid "``KEY_SBEG``" -msgstr "``KEY_SBEG``" - -#: ../Doc/library/curses.rst:1537 +#: ../Doc/library/curses.rst:1558 msgid "Shifted Beg (beginning)" msgstr "Mendicidad desplazada (comienzo)" -#: ../Doc/library/curses.rst:1539 -msgid "``KEY_SCANCEL``" -msgstr "``KEY_SCANCEL``" - -#: ../Doc/library/curses.rst:1539 +#: ../Doc/library/curses.rst:1560 msgid "Shifted Cancel" msgstr "Cancelar cambiado" -#: ../Doc/library/curses.rst:1541 -msgid "``KEY_SCOMMAND``" -msgstr "``KEY_SCOMMAND``" - -#: ../Doc/library/curses.rst:1541 +#: ../Doc/library/curses.rst:1562 msgid "Shifted Command" msgstr "Comando cambiado" -#: ../Doc/library/curses.rst:1543 -msgid "``KEY_SCOPY``" -msgstr "``KEY_SCOPY``" - -#: ../Doc/library/curses.rst:1543 +#: ../Doc/library/curses.rst:1564 msgid "Shifted Copy" msgstr "Copiado cambiado" -#: ../Doc/library/curses.rst:1545 -msgid "``KEY_SCREATE``" -msgstr "``KEY_SCREATE``" - -#: ../Doc/library/curses.rst:1545 +#: ../Doc/library/curses.rst:1566 msgid "Shifted Create" msgstr "Crear con desplazamiento" -#: ../Doc/library/curses.rst:1547 -msgid "``KEY_SDC``" -msgstr "``KEY_SDC``" - -#: ../Doc/library/curses.rst:1547 +#: ../Doc/library/curses.rst:1568 msgid "Shifted Delete char" msgstr "Borrar carácter desplazado" -#: ../Doc/library/curses.rst:1549 -msgid "``KEY_SDL``" -msgstr "``KEY_SDL``" - -#: ../Doc/library/curses.rst:1549 +#: ../Doc/library/curses.rst:1570 msgid "Shifted Delete line" msgstr "Borrar línea desplazada" -#: ../Doc/library/curses.rst:1551 -msgid "``KEY_SELECT``" -msgstr "``KEY_SELECT``" - -#: ../Doc/library/curses.rst:1551 +#: ../Doc/library/curses.rst:1572 msgid "Select" msgstr "Seleccionar" -#: ../Doc/library/curses.rst:1553 -msgid "``KEY_SEND``" -msgstr "``KEY_SEND``" - -#: ../Doc/library/curses.rst:1553 +#: ../Doc/library/curses.rst:1574 msgid "Shifted End" msgstr "Final desplazado" -#: ../Doc/library/curses.rst:1555 -msgid "``KEY_SEOL``" -msgstr "``KEY_SEOL``" - -#: ../Doc/library/curses.rst:1555 +#: ../Doc/library/curses.rst:1576 msgid "Shifted Clear line" msgstr "Limpiar línea desplazada" -#: ../Doc/library/curses.rst:1557 -msgid "``KEY_SEXIT``" -msgstr "``KEY_SEXIT``" - -#: ../Doc/library/curses.rst:1557 +#: ../Doc/library/curses.rst:1578 msgid "Shifted Exit" msgstr "Salida desplazada" -#: ../Doc/library/curses.rst:1559 -msgid "``KEY_SFIND``" -msgstr "``KEY_SFIND``" - -#: ../Doc/library/curses.rst:1559 +#: ../Doc/library/curses.rst:1580 msgid "Shifted Find" msgstr "Búsqueda desplazada" -#: ../Doc/library/curses.rst:1561 -msgid "``KEY_SHELP``" -msgstr "``KEY_SHELP``" - -#: ../Doc/library/curses.rst:1561 +#: ../Doc/library/curses.rst:1582 msgid "Shifted Help" msgstr "Ayuda desplazada" -#: ../Doc/library/curses.rst:1563 -msgid "``KEY_SHOME``" -msgstr "``KEY_SHOME``" - -#: ../Doc/library/curses.rst:1563 +#: ../Doc/library/curses.rst:1584 msgid "Shifted Home" msgstr "Inicio cambiado" -#: ../Doc/library/curses.rst:1565 -msgid "``KEY_SIC``" -msgstr "``KEY_SIC``" - -#: ../Doc/library/curses.rst:1565 +#: ../Doc/library/curses.rst:1586 msgid "Shifted Input" msgstr "Entrada cambiada" -#: ../Doc/library/curses.rst:1567 -msgid "``KEY_SLEFT``" -msgstr "``KEY_SLEFT``" - -#: ../Doc/library/curses.rst:1567 +#: ../Doc/library/curses.rst:1588 msgid "Shifted Left arrow" msgstr "Flecha hacia la izquierda desplazada" -#: ../Doc/library/curses.rst:1569 -msgid "``KEY_SMESSAGE``" -msgstr "``KEY_SMESSAGE``" - -#: ../Doc/library/curses.rst:1569 +#: ../Doc/library/curses.rst:1590 msgid "Shifted Message" msgstr "Mensaje cambiado" -#: ../Doc/library/curses.rst:1571 -msgid "``KEY_SMOVE``" -msgstr "``KEY_SMOVE``" - -#: ../Doc/library/curses.rst:1571 +#: ../Doc/library/curses.rst:1592 msgid "Shifted Move" msgstr "Movimiento desplazado" -#: ../Doc/library/curses.rst:1573 -msgid "``KEY_SNEXT``" -msgstr "``KEY_SNEXT``" - -#: ../Doc/library/curses.rst:1573 +#: ../Doc/library/curses.rst:1594 msgid "Shifted Next" msgstr "Siguiente desplazado" -#: ../Doc/library/curses.rst:1575 -msgid "``KEY_SOPTIONS``" -msgstr "``KEY_SOPTIONS``" - -#: ../Doc/library/curses.rst:1575 +#: ../Doc/library/curses.rst:1596 msgid "Shifted Options" msgstr "Opciones cambiadas" -#: ../Doc/library/curses.rst:1577 -msgid "``KEY_SPREVIOUS``" -msgstr "``KEY_SPREVIOUS``" - -#: ../Doc/library/curses.rst:1577 +#: ../Doc/library/curses.rst:1598 msgid "Shifted Prev" msgstr "Anterior cambiado" -#: ../Doc/library/curses.rst:1579 -msgid "``KEY_SPRINT``" -msgstr "``KEY_SPRINT``" - -#: ../Doc/library/curses.rst:1579 +#: ../Doc/library/curses.rst:1600 msgid "Shifted Print" msgstr "Imprimir desplazado" -#: ../Doc/library/curses.rst:1581 -msgid "``KEY_SREDO``" -msgstr "``KEY_SREDO``" - -#: ../Doc/library/curses.rst:1581 +#: ../Doc/library/curses.rst:1602 msgid "Shifted Redo" msgstr "Rehacer cambiado" -#: ../Doc/library/curses.rst:1583 -msgid "``KEY_SREPLACE``" -msgstr "``KEY_SREPLACE``" - -#: ../Doc/library/curses.rst:1583 +#: ../Doc/library/curses.rst:1604 msgid "Shifted Replace" msgstr "Re-emplazo cambiado" -#: ../Doc/library/curses.rst:1585 -msgid "``KEY_SRIGHT``" -msgstr "``KEY_SRIGHT``" - -#: ../Doc/library/curses.rst:1585 +#: ../Doc/library/curses.rst:1606 msgid "Shifted Right arrow" msgstr "Flecha hacia la derecha cambiada" -#: ../Doc/library/curses.rst:1587 -msgid "``KEY_SRSUME``" -msgstr "``KEY_SRSUME``" - -#: ../Doc/library/curses.rst:1587 +#: ../Doc/library/curses.rst:1608 msgid "Shifted Resume" msgstr "Resumen cambiado" -#: ../Doc/library/curses.rst:1589 -msgid "``KEY_SSAVE``" -msgstr "``KEY_SSAVE``" - -#: ../Doc/library/curses.rst:1589 +#: ../Doc/library/curses.rst:1610 msgid "Shifted Save" msgstr "Guardar desplazado" -#: ../Doc/library/curses.rst:1591 -msgid "``KEY_SSUSPEND``" -msgstr "``KEY_SSUSPEND``" - -#: ../Doc/library/curses.rst:1591 +#: ../Doc/library/curses.rst:1612 msgid "Shifted Suspend" msgstr "Suspender cambiado" -#: ../Doc/library/curses.rst:1593 -msgid "``KEY_SUNDO``" -msgstr "``KEY_SUNDO``" - -#: ../Doc/library/curses.rst:1593 +#: ../Doc/library/curses.rst:1614 msgid "Shifted Undo" msgstr "Deshacer desplazado" -#: ../Doc/library/curses.rst:1595 -msgid "``KEY_SUSPEND``" -msgstr "``KEY_SUSPEND``" - -#: ../Doc/library/curses.rst:1595 +#: ../Doc/library/curses.rst:1616 msgid "Suspend" msgstr "Suspender" -#: ../Doc/library/curses.rst:1597 -msgid "``KEY_UNDO``" -msgstr "``KEY_UNDO``" - -#: ../Doc/library/curses.rst:1597 +#: ../Doc/library/curses.rst:1618 msgid "Undo" msgstr "Deshacer" -#: ../Doc/library/curses.rst:1599 -msgid "``KEY_MOUSE``" -msgstr "``KEY_MOUSE``" - -#: ../Doc/library/curses.rst:1599 +#: ../Doc/library/curses.rst:1620 msgid "Mouse event has occurred" msgstr "Evento del ratón ha ocurrido" -#: ../Doc/library/curses.rst:1601 -msgid "``KEY_RESIZE``" -msgstr "``KEY_RESIZE``" - -#: ../Doc/library/curses.rst:1601 +#: ../Doc/library/curses.rst:1622 msgid "Terminal resize event" msgstr "Evento de cambio de tamaño del terminal" -#: ../Doc/library/curses.rst:1603 -msgid "``KEY_MAX``" -msgstr "``KEY_MAX``" - -#: ../Doc/library/curses.rst:1603 +#: ../Doc/library/curses.rst:1624 msgid "Maximum key value" msgstr "Valor máximo de clave" -#: ../Doc/library/curses.rst:1606 +#: ../Doc/library/curses.rst:1627 +#, fuzzy msgid "" "On VT100s and their software emulations, such as X terminal emulators, there " -"are normally at least four function keys (:const:`KEY_F1`, :const:`KEY_F2`, :" -"const:`KEY_F3`, :const:`KEY_F4`) available, and the arrow keys mapped to :" -"const:`KEY_UP`, :const:`KEY_DOWN`, :const:`KEY_LEFT` and :const:`KEY_RIGHT` " -"in the obvious way. If your machine has a PC keyboard, it is safe to expect " -"arrow keys and twelve function keys (older PC keyboards may have only ten " -"function keys); also, the following keypad mappings are standard:" +"are normally at least four function keys (:const:`KEY_F1 `, :const:" +"`KEY_F2 `, :const:`KEY_F3 `, :const:`KEY_F4 `) " +"available, and the arrow keys mapped to :const:`KEY_UP`, :const:`KEY_DOWN`, :" +"const:`KEY_LEFT` and :const:`KEY_RIGHT` in the obvious way. If your machine " +"has a PC keyboard, it is safe to expect arrow keys and twelve function keys " +"(older PC keyboards may have only ten function keys); also, the following " +"keypad mappings are standard:" msgstr "" "En VT100s y su emulador de software, tal como X emulador de terminal, " "normalmente hay al menos cuatro funciones de tecla (:const:`KEY_F1`, :const:" @@ -3108,64 +2678,64 @@ msgstr "" "viejo de los teclados de PC pueden tener solamente diez teclas de función); " "también, la siguientes funciones de teclado son estándar:" -#: ../Doc/library/curses.rst:1615 +#: ../Doc/library/curses.rst:1636 msgid "Keycap" msgstr "Tecla" -#: ../Doc/library/curses.rst:1615 ../Doc/library/curses.rst:1732 -#: ../Doc/library/curses.rst:1856 +#: ../Doc/library/curses.rst:1636 ../Doc/library/curses.rst:1781 +#: ../Doc/library/curses.rst:1905 msgid "Constant" msgstr "Constante" -#: ../Doc/library/curses.rst:1617 +#: ../Doc/library/curses.rst:1638 msgid ":kbd:`Insert`" msgstr ":kbd:`Insert`" -#: ../Doc/library/curses.rst:1617 +#: ../Doc/library/curses.rst:1638 msgid "KEY_IC" msgstr "KEY_IC" -#: ../Doc/library/curses.rst:1619 +#: ../Doc/library/curses.rst:1640 msgid ":kbd:`Delete`" msgstr ":kbd:`Delete`" -#: ../Doc/library/curses.rst:1619 +#: ../Doc/library/curses.rst:1640 msgid "KEY_DC" msgstr "KEY_DC" -#: ../Doc/library/curses.rst:1621 +#: ../Doc/library/curses.rst:1642 msgid ":kbd:`Home`" msgstr ":kbd:`Home`" -#: ../Doc/library/curses.rst:1621 +#: ../Doc/library/curses.rst:1642 msgid "KEY_HOME" msgstr "KEY_HOME" -#: ../Doc/library/curses.rst:1623 +#: ../Doc/library/curses.rst:1644 msgid ":kbd:`End`" msgstr ":kbd:`End`" -#: ../Doc/library/curses.rst:1623 +#: ../Doc/library/curses.rst:1644 msgid "KEY_END" msgstr "KEY_END" -#: ../Doc/library/curses.rst:1625 +#: ../Doc/library/curses.rst:1646 msgid ":kbd:`Page Up`" msgstr ":kbd:`Page Up`" -#: ../Doc/library/curses.rst:1625 +#: ../Doc/library/curses.rst:1646 msgid "KEY_PPAGE" msgstr "KEY_PPAGE" -#: ../Doc/library/curses.rst:1627 +#: ../Doc/library/curses.rst:1648 msgid ":kbd:`Page Down`" msgstr ":kbd:`Page Down`" -#: ../Doc/library/curses.rst:1627 +#: ../Doc/library/curses.rst:1648 msgid "KEY_NPAGE" msgstr "KEY_NPAGE" -#: ../Doc/library/curses.rst:1630 +#: ../Doc/library/curses.rst:1653 msgid "" "The following table lists characters from the alternate character set. These " "are inherited from the VT100 terminal, and will generally be available on " @@ -3178,438 +2748,272 @@ msgstr "" "no hay gráficos disponibles, *curses* cae en una aproximación cruda de ASCII " "imprimibles." -#: ../Doc/library/curses.rst:1637 +#: ../Doc/library/curses.rst:1660 msgid "These are available only after :func:`initscr` has been called." msgstr "" "Estos están disponibles solamente después de que :func:`initscr` ha sido " "llamada." -#: ../Doc/library/curses.rst:1640 +#: ../Doc/library/curses.rst:1663 msgid "ACS code" msgstr "Código ACS" -#: ../Doc/library/curses.rst:1642 -msgid "``ACS_BBSS``" -msgstr "``ACS_BBSS``" - -#: ../Doc/library/curses.rst:1642 +#: ../Doc/library/curses.rst:1665 msgid "alternate name for upper right corner" msgstr "nombre alternativo para la esquina superior derecha" -#: ../Doc/library/curses.rst:1644 -msgid "``ACS_BLOCK``" -msgstr "``ACS_BLOCK``" - -#: ../Doc/library/curses.rst:1644 +#: ../Doc/library/curses.rst:1667 msgid "solid square block" msgstr "bloque cuadrado sólido" -#: ../Doc/library/curses.rst:1646 -msgid "``ACS_BOARD``" -msgstr "``ACS_BOARD``" - -#: ../Doc/library/curses.rst:1646 +#: ../Doc/library/curses.rst:1669 msgid "board of squares" msgstr "tablero de cuadrados" -#: ../Doc/library/curses.rst:1648 -msgid "``ACS_BSBS``" -msgstr "``ACS_BSBS``" - -#: ../Doc/library/curses.rst:1648 +#: ../Doc/library/curses.rst:1671 msgid "alternate name for horizontal line" msgstr "nombre alternativo para línea horizontal" -#: ../Doc/library/curses.rst:1650 -msgid "``ACS_BSSB``" -msgstr "``ACS_BSSB``" - -#: ../Doc/library/curses.rst:1650 +#: ../Doc/library/curses.rst:1673 msgid "alternate name for upper left corner" msgstr "nombre alternativo para esquina superior izquierda" -#: ../Doc/library/curses.rst:1652 -msgid "``ACS_BSSS``" -msgstr "``ACS_BSSS``" - -#: ../Doc/library/curses.rst:1652 +#: ../Doc/library/curses.rst:1675 msgid "alternate name for top tee" msgstr "nombre alternativo para el soporte superior" -#: ../Doc/library/curses.rst:1654 -msgid "``ACS_BTEE``" -msgstr "``ACS_BTEE``" - -#: ../Doc/library/curses.rst:1654 +#: ../Doc/library/curses.rst:1677 msgid "bottom tee" msgstr "soporte inferior" -#: ../Doc/library/curses.rst:1656 -msgid "``ACS_BULLET``" -msgstr "``ACS_BULLET``" - -#: ../Doc/library/curses.rst:1656 +#: ../Doc/library/curses.rst:1679 msgid "bullet" msgstr "bala" -#: ../Doc/library/curses.rst:1658 -msgid "``ACS_CKBOARD``" -msgstr "``ACS_CKBOARD``" - -#: ../Doc/library/curses.rst:1658 +#: ../Doc/library/curses.rst:1681 msgid "checker board (stipple)" msgstr "tablero inspector (punteado)" -#: ../Doc/library/curses.rst:1660 -msgid "``ACS_DARROW``" -msgstr "``ACS_DARROW``" - -#: ../Doc/library/curses.rst:1660 +#: ../Doc/library/curses.rst:1683 msgid "arrow pointing down" msgstr "flecha punteada hacia abajo" -#: ../Doc/library/curses.rst:1662 -msgid "``ACS_DEGREE``" -msgstr "``ACS_DEGREE``" - -#: ../Doc/library/curses.rst:1662 +#: ../Doc/library/curses.rst:1685 msgid "degree symbol" msgstr "símbolo de grado" -#: ../Doc/library/curses.rst:1664 -msgid "``ACS_DIAMOND``" -msgstr "``ACS_DIAMOND``" - -#: ../Doc/library/curses.rst:1664 +#: ../Doc/library/curses.rst:1687 msgid "diamond" msgstr "diamante" -#: ../Doc/library/curses.rst:1666 -msgid "``ACS_GEQUAL``" -msgstr "``ACS_GEQUAL``" - -#: ../Doc/library/curses.rst:1666 +#: ../Doc/library/curses.rst:1689 msgid "greater-than-or-equal-to" msgstr "mayor que o igual a" -#: ../Doc/library/curses.rst:1668 -msgid "``ACS_HLINE``" -msgstr "``ACS_HLINE``" - -#: ../Doc/library/curses.rst:1668 +#: ../Doc/library/curses.rst:1691 msgid "horizontal line" msgstr "línea horizontal" -#: ../Doc/library/curses.rst:1670 -msgid "``ACS_LANTERN``" -msgstr "``ACS_LANTERN``" - -#: ../Doc/library/curses.rst:1670 +#: ../Doc/library/curses.rst:1693 msgid "lantern symbol" msgstr "símbolo de la linterna" -#: ../Doc/library/curses.rst:1672 -msgid "``ACS_LARROW``" -msgstr "``ACS_LARROW``" - -#: ../Doc/library/curses.rst:1672 +#: ../Doc/library/curses.rst:1695 msgid "left arrow" msgstr "flecha izquierda" -#: ../Doc/library/curses.rst:1674 -msgid "``ACS_LEQUAL``" -msgstr "``ACS_LEQUAL``" - -#: ../Doc/library/curses.rst:1674 +#: ../Doc/library/curses.rst:1697 msgid "less-than-or-equal-to" msgstr "menor que o igual a" -#: ../Doc/library/curses.rst:1676 -msgid "``ACS_LLCORNER``" -msgstr "``ACS_LLCORNER``" - -#: ../Doc/library/curses.rst:1676 +#: ../Doc/library/curses.rst:1699 msgid "lower left-hand corner" msgstr "esquina inferior izquierda" -#: ../Doc/library/curses.rst:1678 -msgid "``ACS_LRCORNER``" -msgstr "``ACS_LRCORNER``" - -#: ../Doc/library/curses.rst:1678 +#: ../Doc/library/curses.rst:1701 msgid "lower right-hand corner" msgstr "esquina inferior derecha" -#: ../Doc/library/curses.rst:1680 -msgid "``ACS_LTEE``" -msgstr "``ACS_LTEE``" - -#: ../Doc/library/curses.rst:1680 +#: ../Doc/library/curses.rst:1703 msgid "left tee" msgstr "soporte izquierdo" -#: ../Doc/library/curses.rst:1682 -msgid "``ACS_NEQUAL``" -msgstr "``ACS_NEQUAL``" - -#: ../Doc/library/curses.rst:1682 +#: ../Doc/library/curses.rst:1705 msgid "not-equal sign" msgstr "signo no igual" -#: ../Doc/library/curses.rst:1684 -msgid "``ACS_PI``" -msgstr "``ACS_PI``" - -#: ../Doc/library/curses.rst:1684 +#: ../Doc/library/curses.rst:1707 msgid "letter pi" msgstr "letra pi" -#: ../Doc/library/curses.rst:1686 -msgid "``ACS_PLMINUS``" -msgstr "``ACS_PLMINUS``" - -#: ../Doc/library/curses.rst:1686 +#: ../Doc/library/curses.rst:1709 msgid "plus-or-minus sign" msgstr "signo más o menos" -#: ../Doc/library/curses.rst:1688 -msgid "``ACS_PLUS``" -msgstr "``ACS_PLUS``" - -#: ../Doc/library/curses.rst:1688 +#: ../Doc/library/curses.rst:1711 msgid "big plus sign" msgstr "gran signo más" -#: ../Doc/library/curses.rst:1690 -msgid "``ACS_RARROW``" -msgstr "``ACS_RARROW``" - -#: ../Doc/library/curses.rst:1690 +#: ../Doc/library/curses.rst:1713 msgid "right arrow" msgstr "flecha hacia la derecha" -#: ../Doc/library/curses.rst:1692 -msgid "``ACS_RTEE``" -msgstr "``ACS_RTEE``" - -#: ../Doc/library/curses.rst:1692 +#: ../Doc/library/curses.rst:1715 msgid "right tee" msgstr "soporte derecho" -#: ../Doc/library/curses.rst:1694 -msgid "``ACS_S1``" -msgstr "``ACS_S1``" - -#: ../Doc/library/curses.rst:1694 +#: ../Doc/library/curses.rst:1717 msgid "scan line 1" msgstr "escanear línea 1" -#: ../Doc/library/curses.rst:1696 -msgid "``ACS_S3``" -msgstr "``ACS_S3``" - -#: ../Doc/library/curses.rst:1696 +#: ../Doc/library/curses.rst:1719 msgid "scan line 3" msgstr "escanear línea 3" -#: ../Doc/library/curses.rst:1698 -msgid "``ACS_S7``" -msgstr "``ACS_S7``" - -#: ../Doc/library/curses.rst:1698 +#: ../Doc/library/curses.rst:1721 msgid "scan line 7" msgstr "escanear línea 7" -#: ../Doc/library/curses.rst:1700 -msgid "``ACS_S9``" -msgstr "``ACS_S9``" - -#: ../Doc/library/curses.rst:1700 +#: ../Doc/library/curses.rst:1723 msgid "scan line 9" msgstr "escanear línea 9" -#: ../Doc/library/curses.rst:1702 -msgid "``ACS_SBBS``" -msgstr "``ACS_SBBS``" - -#: ../Doc/library/curses.rst:1702 +#: ../Doc/library/curses.rst:1725 msgid "alternate name for lower right corner" msgstr "nombre alterno para la esquina inferior derecha" -#: ../Doc/library/curses.rst:1704 -msgid "``ACS_SBSB``" -msgstr "``ACS_SBSB``" - -#: ../Doc/library/curses.rst:1704 +#: ../Doc/library/curses.rst:1727 msgid "alternate name for vertical line" msgstr "nombre alterno para la línea vertical" -#: ../Doc/library/curses.rst:1706 -msgid "``ACS_SBSS``" -msgstr "``ACS_SBSS``" - -#: ../Doc/library/curses.rst:1706 +#: ../Doc/library/curses.rst:1729 msgid "alternate name for right tee" msgstr "nombre alterno para el soporte derecho" -#: ../Doc/library/curses.rst:1708 -msgid "``ACS_SSBB``" -msgstr "``ACS_SSBB``" - -#: ../Doc/library/curses.rst:1708 +#: ../Doc/library/curses.rst:1731 msgid "alternate name for lower left corner" msgstr "nombre alterno para la esquina inferior izquierda" -#: ../Doc/library/curses.rst:1710 -msgid "``ACS_SSBS``" -msgstr "``ACS_SSBS``" - -#: ../Doc/library/curses.rst:1710 +#: ../Doc/library/curses.rst:1733 msgid "alternate name for bottom tee" msgstr "nombre alterno para el soporte inferior" -#: ../Doc/library/curses.rst:1712 -msgid "``ACS_SSSB``" -msgstr "``ACS_SSSB``" - -#: ../Doc/library/curses.rst:1712 +#: ../Doc/library/curses.rst:1735 msgid "alternate name for left tee" msgstr "nombre alterno para el soporte izquierdo" -#: ../Doc/library/curses.rst:1714 -msgid "``ACS_SSSS``" -msgstr "``ACS_SSSS``" - -#: ../Doc/library/curses.rst:1714 +#: ../Doc/library/curses.rst:1737 msgid "alternate name for crossover or big plus" msgstr "nombre alterno para *crossover* o un gran más" -#: ../Doc/library/curses.rst:1716 -msgid "``ACS_STERLING``" -msgstr "``ACS_STERLING``" - -#: ../Doc/library/curses.rst:1716 +#: ../Doc/library/curses.rst:1739 msgid "pound sterling" msgstr "libra esterlina" -#: ../Doc/library/curses.rst:1718 -msgid "``ACS_TTEE``" -msgstr "``ACS_TTEE``" - -#: ../Doc/library/curses.rst:1718 +#: ../Doc/library/curses.rst:1741 msgid "top tee" msgstr "soporte superior" -#: ../Doc/library/curses.rst:1720 -msgid "``ACS_UARROW``" -msgstr "``ACS_UARROW``" - -#: ../Doc/library/curses.rst:1720 +#: ../Doc/library/curses.rst:1743 msgid "up arrow" msgstr "flecha hacia arriba" -#: ../Doc/library/curses.rst:1722 -msgid "``ACS_ULCORNER``" -msgstr "``ACS_ULCORNER``" - -#: ../Doc/library/curses.rst:1722 +#: ../Doc/library/curses.rst:1745 msgid "upper left corner" msgstr "esquina superior izquierda" -#: ../Doc/library/curses.rst:1724 -msgid "``ACS_URCORNER``" -msgstr "``ACS_URCORNER``" - -#: ../Doc/library/curses.rst:1724 +#: ../Doc/library/curses.rst:1747 msgid "upper right corner" msgstr "esquina superior derecha" -#: ../Doc/library/curses.rst:1726 -msgid "``ACS_VLINE``" -msgstr "``ACS_VLINE``" - -#: ../Doc/library/curses.rst:1726 +#: ../Doc/library/curses.rst:1749 msgid "vertical line" msgstr "línea vertical" -#: ../Doc/library/curses.rst:1729 +#: ../Doc/library/curses.rst:1752 +msgid "" +"The following table lists mouse button constants used by :meth:`getmouse`:" +msgstr "" + +#: ../Doc/library/curses.rst:1755 +#, fuzzy +msgid "Mouse button constant" +msgstr "Clave constante" + +#: ../Doc/library/curses.rst:1757 +msgid "Mouse button *n* pressed" +msgstr "" + +#: ../Doc/library/curses.rst:1759 +msgid "Mouse button *n* released" +msgstr "" + +#: ../Doc/library/curses.rst:1761 +msgid "Mouse button *n* clicked" +msgstr "" + +#: ../Doc/library/curses.rst:1763 +msgid "Mouse button *n* double clicked" +msgstr "" + +#: ../Doc/library/curses.rst:1765 +msgid "Mouse button *n* triple clicked" +msgstr "" + +#: ../Doc/library/curses.rst:1767 +msgid "Shift was down during button state change" +msgstr "" + +#: ../Doc/library/curses.rst:1769 ../Doc/library/curses.rst:1771 +msgid "Control was down during button state change" +msgstr "" + +#: ../Doc/library/curses.rst:1778 msgid "The following table lists the predefined colors:" msgstr "La siguiente tabla lista los colores pre-definidos:" -#: ../Doc/library/curses.rst:1732 +#: ../Doc/library/curses.rst:1781 msgid "Color" msgstr "Color" -#: ../Doc/library/curses.rst:1734 -msgid "``COLOR_BLACK``" -msgstr "``COLOR_BLACK``" - -#: ../Doc/library/curses.rst:1734 +#: ../Doc/library/curses.rst:1783 msgid "Black" msgstr "Negro" -#: ../Doc/library/curses.rst:1736 -msgid "``COLOR_BLUE``" -msgstr "``COLOR_BLUE``" - -#: ../Doc/library/curses.rst:1736 +#: ../Doc/library/curses.rst:1785 msgid "Blue" msgstr "Azul" -#: ../Doc/library/curses.rst:1738 -msgid "``COLOR_CYAN``" -msgstr "``COLOR_CYAN``" - -#: ../Doc/library/curses.rst:1738 +#: ../Doc/library/curses.rst:1787 msgid "Cyan (light greenish blue)" msgstr "Cian (azul verdoso claro)" -#: ../Doc/library/curses.rst:1740 -msgid "``COLOR_GREEN``" -msgstr "``COLOR_GREEN``" - -#: ../Doc/library/curses.rst:1740 +#: ../Doc/library/curses.rst:1789 msgid "Green" msgstr "Verde" -#: ../Doc/library/curses.rst:1742 -msgid "``COLOR_MAGENTA``" -msgstr "``COLOR_MAGENTA``" - -#: ../Doc/library/curses.rst:1742 +#: ../Doc/library/curses.rst:1791 msgid "Magenta (purplish red)" msgstr "Magenta (rojo violáceo)" -#: ../Doc/library/curses.rst:1744 -msgid "``COLOR_RED``" -msgstr "``COLOR_RED``" - -#: ../Doc/library/curses.rst:1744 +#: ../Doc/library/curses.rst:1793 msgid "Red" msgstr "Rojo" -#: ../Doc/library/curses.rst:1746 -msgid "``COLOR_WHITE``" -msgstr "``COLOR_WHITE``" - -#: ../Doc/library/curses.rst:1746 +#: ../Doc/library/curses.rst:1795 msgid "White" msgstr "Blanco" -#: ../Doc/library/curses.rst:1748 -msgid "``COLOR_YELLOW``" -msgstr "``COLOR_YELLOW``" - -#: ../Doc/library/curses.rst:1748 +#: ../Doc/library/curses.rst:1797 msgid "Yellow" msgstr "Amarillo" -#: ../Doc/library/curses.rst:1753 +#: ../Doc/library/curses.rst:1802 msgid ":mod:`curses.textpad` --- Text input widget for curses programs" msgstr "" ":mod:`curses.textpad`--- Widget de entrada de texto para programas de curses" -#: ../Doc/library/curses.rst:1761 +#: ../Doc/library/curses.rst:1810 msgid "" "The :mod:`curses.textpad` module provides a :class:`Textbox` class that " "handles elementary text editing in a curses window, supporting a set of " @@ -3625,11 +3029,11 @@ msgstr "" "también proveen una función de dibujo de rectángulo útil para enmarcar las " "cajas de texto o para otros propósitos." -#: ../Doc/library/curses.rst:1767 +#: ../Doc/library/curses.rst:1816 msgid "The module :mod:`curses.textpad` defines the following function:" msgstr "El módulo :mod:`curses.textpad` define la siguiente función:" -#: ../Doc/library/curses.rst:1772 +#: ../Doc/library/curses.rst:1821 msgid "" "Draw a rectangle. The first argument must be a window object; the remaining " "arguments are coordinates relative to that window. The second and third " @@ -3650,15 +3054,15 @@ msgstr "" "otro emulador de terminal de software). Por otra parte será dibujado con " "guiones, barras verticales, y signos de más de ASCII." -#: ../Doc/library/curses.rst:1785 +#: ../Doc/library/curses.rst:1834 msgid "Textbox objects" msgstr "Objeto de caja de texto" -#: ../Doc/library/curses.rst:1787 +#: ../Doc/library/curses.rst:1836 msgid "You can instantiate a :class:`Textbox` object as follows:" msgstr "Tú puedes instanciar un objeto :class:`Textbox` como sigue:" -#: ../Doc/library/curses.rst:1792 +#: ../Doc/library/curses.rst:1841 msgid "" "Return a textbox widget object. The *win* argument should be a curses :ref:" "`window ` object in which the textbox is to be " @@ -3673,11 +3077,11 @@ msgstr "" "ventana que lo contiene, con coordenadas ``(0, 0)``. La bandera " "instanciada :attr:`stripspaces` está inicialmente encendida." -#: ../Doc/library/curses.rst:1798 +#: ../Doc/library/curses.rst:1847 msgid ":class:`Textbox` objects have the following methods:" msgstr "Objeto :class:`Textbox` tiene los siguientes métodos:" -#: ../Doc/library/curses.rst:1803 +#: ../Doc/library/curses.rst:1852 msgid "" "This is the entry point you will normally use. It accepts editing " "keystrokes until one of the termination keystrokes is entered. If " @@ -3696,7 +3100,7 @@ msgstr "" "caracteres; si se incluyen espacios en blanco en la ventana se ve afectado " "por el atributo :attr:`stripspaces`." -#: ../Doc/library/curses.rst:1814 +#: ../Doc/library/curses.rst:1863 msgid "" "Process a single command keystroke. Here are the supported special " "keystrokes:" @@ -3704,126 +3108,126 @@ msgstr "" "Procesa un simple comando al pulsar una tecla. Aquí está las funciones de " "tecla especiales admitidas:" -#: ../Doc/library/curses.rst:1818 ../Doc/library/curses.rst:1856 +#: ../Doc/library/curses.rst:1867 ../Doc/library/curses.rst:1905 msgid "Keystroke" msgstr "Pulsación de tecla" -#: ../Doc/library/curses.rst:1818 +#: ../Doc/library/curses.rst:1867 msgid "Action" msgstr "Acción" -#: ../Doc/library/curses.rst:1820 +#: ../Doc/library/curses.rst:1869 msgid ":kbd:`Control-A`" msgstr ":kbd:`Control-A`" -#: ../Doc/library/curses.rst:1820 +#: ../Doc/library/curses.rst:1869 msgid "Go to left edge of window." msgstr "Ve al borde izquierdo de la ventana." -#: ../Doc/library/curses.rst:1822 ../Doc/library/curses.rst:1858 +#: ../Doc/library/curses.rst:1871 ../Doc/library/curses.rst:1907 msgid ":kbd:`Control-B`" msgstr ":kbd:`Control-B`" -#: ../Doc/library/curses.rst:1822 +#: ../Doc/library/curses.rst:1871 msgid "Cursor left, wrapping to previous line if appropriate." msgstr "Cursor hacia la izquierda, pasando a la línea anterior si corresponde." -#: ../Doc/library/curses.rst:1825 +#: ../Doc/library/curses.rst:1874 msgid ":kbd:`Control-D`" msgstr ":kbd:`Control-D`" -#: ../Doc/library/curses.rst:1825 +#: ../Doc/library/curses.rst:1874 msgid "Delete character under cursor." msgstr "Borra el carácter bajo el cursor." -#: ../Doc/library/curses.rst:1827 +#: ../Doc/library/curses.rst:1876 msgid ":kbd:`Control-E`" msgstr ":kbd:`Control-E`" -#: ../Doc/library/curses.rst:1827 +#: ../Doc/library/curses.rst:1876 msgid "Go to right edge (stripspaces off) or end of line (stripspaces on)." msgstr "" "Ve al borde derecho (quita los espacios) o al final de línea (eliminar los " "espacios)." -#: ../Doc/library/curses.rst:1830 ../Doc/library/curses.rst:1860 +#: ../Doc/library/curses.rst:1879 ../Doc/library/curses.rst:1909 msgid ":kbd:`Control-F`" msgstr ":kbd:`Control-F`" -#: ../Doc/library/curses.rst:1830 +#: ../Doc/library/curses.rst:1879 msgid "Cursor right, wrapping to next line when appropriate." msgstr "" "Cursor hacia la derecha, pasando a la línea siguiente cuando corresponda." -#: ../Doc/library/curses.rst:1833 +#: ../Doc/library/curses.rst:1882 msgid ":kbd:`Control-G`" msgstr ":kbd:`Control-G`" -#: ../Doc/library/curses.rst:1833 +#: ../Doc/library/curses.rst:1882 msgid "Terminate, returning the window contents." msgstr "Terminar, retornando el contenido de la ventana." -#: ../Doc/library/curses.rst:1835 +#: ../Doc/library/curses.rst:1884 msgid ":kbd:`Control-H`" msgstr ":kbd:`Control-H`" -#: ../Doc/library/curses.rst:1835 +#: ../Doc/library/curses.rst:1884 msgid "Delete character backward." msgstr "Eliminar carácter al revés." -#: ../Doc/library/curses.rst:1837 +#: ../Doc/library/curses.rst:1886 msgid ":kbd:`Control-J`" msgstr ":kbd:`Control-J`" -#: ../Doc/library/curses.rst:1837 +#: ../Doc/library/curses.rst:1886 msgid "Terminate if the window is 1 line, otherwise insert newline." msgstr "" "Terminar si la ventana es de 1 línea, en caso contrario, inserte una nueva " "línea." -#: ../Doc/library/curses.rst:1840 +#: ../Doc/library/curses.rst:1889 msgid ":kbd:`Control-K`" msgstr ":kbd:`Control-K`" -#: ../Doc/library/curses.rst:1840 +#: ../Doc/library/curses.rst:1889 msgid "If line is blank, delete it, otherwise clear to end of line." msgstr "" "Si la línea es blanca bórrela, en caso contrario, limpie hasta el final de " "línea." -#: ../Doc/library/curses.rst:1843 +#: ../Doc/library/curses.rst:1892 msgid ":kbd:`Control-L`" msgstr ":kbd:`Control-L`" -#: ../Doc/library/curses.rst:1843 +#: ../Doc/library/curses.rst:1892 msgid "Refresh screen." msgstr "Refrescar la pantalla." -#: ../Doc/library/curses.rst:1845 ../Doc/library/curses.rst:1864 +#: ../Doc/library/curses.rst:1894 ../Doc/library/curses.rst:1913 msgid ":kbd:`Control-N`" msgstr ":kbd:`Control-N`" -#: ../Doc/library/curses.rst:1845 +#: ../Doc/library/curses.rst:1894 msgid "Cursor down; move down one line." msgstr "Cursor hacia abajo; mueve hacia abajo una línea." -#: ../Doc/library/curses.rst:1847 +#: ../Doc/library/curses.rst:1896 msgid ":kbd:`Control-O`" msgstr ":kbd:`Control-O`" -#: ../Doc/library/curses.rst:1847 +#: ../Doc/library/curses.rst:1896 msgid "Insert a blank line at cursor location." msgstr "Inserte una línea en blanco en la posición del cursor." -#: ../Doc/library/curses.rst:1849 ../Doc/library/curses.rst:1862 +#: ../Doc/library/curses.rst:1898 ../Doc/library/curses.rst:1911 msgid ":kbd:`Control-P`" msgstr ":kbd:`Control-P`" -#: ../Doc/library/curses.rst:1849 +#: ../Doc/library/curses.rst:1898 msgid "Cursor up; move up one line." msgstr "Cursor hacia arriba; mueve hacia arriba una línea." -#: ../Doc/library/curses.rst:1852 +#: ../Doc/library/curses.rst:1901 msgid "" "Move operations do nothing if the cursor is at an edge where the movement is " "not possible. The following synonyms are supported where possible:" @@ -3832,31 +3236,36 @@ msgstr "" "donde el movimiento no es posible. Los siguientes sinónimos están apoyados " "siempre que sea posible:" -#: ../Doc/library/curses.rst:1858 -msgid ":const:`KEY_LEFT`" +#: ../Doc/library/curses.rst:1907 +#, fuzzy +msgid ":const:`~curses.KEY_LEFT`" msgstr ":const:`KEY_LEFT`" -#: ../Doc/library/curses.rst:1860 -msgid ":const:`KEY_RIGHT`" +#: ../Doc/library/curses.rst:1909 +#, fuzzy +msgid ":const:`~curses.KEY_RIGHT`" msgstr ":const:`KEY_RIGHT`" -#: ../Doc/library/curses.rst:1862 -msgid ":const:`KEY_UP`" +#: ../Doc/library/curses.rst:1911 +#, fuzzy +msgid ":const:`~curses.KEY_UP`" msgstr ":const:`KEY_UP`" -#: ../Doc/library/curses.rst:1864 -msgid ":const:`KEY_DOWN`" +#: ../Doc/library/curses.rst:1913 +#, fuzzy +msgid ":const:`~curses.KEY_DOWN`" msgstr ":const:`KEY_DOWN`" -#: ../Doc/library/curses.rst:1866 -msgid ":const:`KEY_BACKSPACE`" +#: ../Doc/library/curses.rst:1915 +#, fuzzy +msgid ":const:`~curses.KEY_BACKSPACE`" msgstr ":const:`KEY_BACKSPACE`" -#: ../Doc/library/curses.rst:1866 +#: ../Doc/library/curses.rst:1915 msgid ":kbd:`Control-h`" msgstr ":kbd:`Control-h`" -#: ../Doc/library/curses.rst:1869 +#: ../Doc/library/curses.rst:1918 msgid "" "All other keystrokes are treated as a command to insert the given character " "and move right (with line wrapping)." @@ -3864,7 +3273,7 @@ msgstr "" "Todas las otras pulsaciones de teclas están tratadas como un comando para " "insertar el carácter dado y muévase a la derecha (con ajuste en la línea)." -#: ../Doc/library/curses.rst:1875 +#: ../Doc/library/curses.rst:1924 msgid "" "Return the window contents as a string; whether blanks in the window are " "included is affected by the :attr:`stripspaces` member." @@ -3873,7 +3282,7 @@ msgstr "" "espacios en blanco en la ventana se ve afectado por el miembro :attr:" "`stripspaces`." -#: ../Doc/library/curses.rst:1881 +#: ../Doc/library/curses.rst:1930 msgid "" "This attribute is a flag which controls the interpretation of blanks in the " "window. When it is on, trailing blanks on each line are ignored; any cursor " @@ -3887,3 +3296,507 @@ msgstr "" "coloque en un espacio en blanco final va hasta el final de esa línea, y los " "espacios en blanco finales son despejados cuando se recopila el contenido de " "la ventana." + +#~ msgid "" +#~ "The :source:`Tools/demo/` directory in the Python source distribution " +#~ "contains some example programs using the curses bindings provided by this " +#~ "module." +#~ msgstr "" +#~ "El directorio :source:`Tools/demo/` en el recurso de distribución de " +#~ "Python contiene algunos programas de ejemplo usando los enlaces de curses " +#~ "previstos en este módulo." + +#~ msgid "``A_ALTCHARSET``" +#~ msgstr "``A_ALTCHARSET``" + +#~ msgid "``A_BLINK``" +#~ msgstr "``A_BLINK``" + +#~ msgid "``A_BOLD``" +#~ msgstr "``A_BOLD``" + +#~ msgid "``A_DIM``" +#~ msgstr "``A_DIM``" + +#~ msgid "``A_INVIS``" +#~ msgstr "``A_INVIS``" + +#~ msgid "``A_ITALIC``" +#~ msgstr "``A_ITALIC``" + +#~ msgid "``A_NORMAL``" +#~ msgstr "``A_NORMAL``" + +#~ msgid "``A_PROTECT``" +#~ msgstr "``A_PROTECT``" + +#~ msgid "``A_REVERSE``" +#~ msgstr "``A_REVERSE``" + +#~ msgid "``A_STANDOUT``" +#~ msgstr "``A_STANDOUT``" + +#~ msgid "``A_UNDERLINE``" +#~ msgstr "``A_UNDERLINE``" + +#~ msgid "``A_HORIZONTAL``" +#~ msgstr "``A_HORIZONTAL``" + +#~ msgid "``A_LEFT``" +#~ msgstr "``A_LEFT``" + +#~ msgid "``A_LOW``" +#~ msgstr "``A_LOW``" + +#~ msgid "``A_RIGHT``" +#~ msgstr "``A_RIGHT``" + +#~ msgid "``A_TOP``" +#~ msgstr "``A_TOP``" + +#~ msgid "``A_VERTICAL``" +#~ msgstr "``A_VERTICAL``" + +#~ msgid "``A_CHARTEXT``" +#~ msgstr "``A_CHARTEXT``" + +#~ msgid "``A_ATTRIBUTES``" +#~ msgstr "``A_ATTRIBUTES``" + +#~ msgid "``A_COLOR``" +#~ msgstr "``A_COLOR``" + +#~ msgid "``KEY_MIN``" +#~ msgstr "``KEY_MIN``" + +#~ msgid "``KEY_BREAK``" +#~ msgstr "``KEY_BREAK``" + +#~ msgid "``KEY_DOWN``" +#~ msgstr "``KEY_DOWN``" + +#~ msgid "``KEY_UP``" +#~ msgstr "``KEY_UP``" + +#~ msgid "``KEY_LEFT``" +#~ msgstr "``KEY_LEFT``" + +#~ msgid "``KEY_RIGHT``" +#~ msgstr "``KEY_RIGHT``" + +#~ msgid "``KEY_HOME``" +#~ msgstr "``KEY_HOME``" + +#~ msgid "``KEY_BACKSPACE``" +#~ msgstr "``KEY_BACKSPACE``" + +#~ msgid "``KEY_F0``" +#~ msgstr "``KEY_F0``" + +#~ msgid "``KEY_Fn``" +#~ msgstr "``KEY_Fn``" + +#~ msgid "``KEY_DL``" +#~ msgstr "``KEY_DL``" + +#~ msgid "``KEY_IL``" +#~ msgstr "``KEY_IL``" + +#~ msgid "``KEY_DC``" +#~ msgstr "``KEY_DC``" + +#~ msgid "``KEY_IC``" +#~ msgstr "``KEY_IC``" + +#~ msgid "``KEY_EIC``" +#~ msgstr "``KEY_EIC``" + +#~ msgid "``KEY_CLEAR``" +#~ msgstr "``KEY_CLEAR``" + +#~ msgid "``KEY_EOS``" +#~ msgstr "``KEY_EOS``" + +#~ msgid "``KEY_EOL``" +#~ msgstr "``KEY_EOL``" + +#~ msgid "``KEY_SF``" +#~ msgstr "``KEY_SF``" + +#~ msgid "``KEY_SR``" +#~ msgstr "``KEY_SR``" + +#~ msgid "``KEY_NPAGE``" +#~ msgstr "``KEY_NPAGE``" + +#~ msgid "``KEY_PPAGE``" +#~ msgstr "``KEY_PPAGE``" + +#~ msgid "``KEY_STAB``" +#~ msgstr "``KEY_STAB``" + +#~ msgid "``KEY_CTAB``" +#~ msgstr "``KEY_CTAB``" + +#~ msgid "``KEY_CATAB``" +#~ msgstr "``KEY_CATAB``" + +#~ msgid "``KEY_ENTER``" +#~ msgstr "``KEY_ENTER``" + +#~ msgid "``KEY_SRESET``" +#~ msgstr "``KEY_SRESET``" + +#~ msgid "``KEY_RESET``" +#~ msgstr "``KEY_RESET``" + +#~ msgid "``KEY_PRINT``" +#~ msgstr "``KEY_PRINT``" + +#~ msgid "``KEY_LL``" +#~ msgstr "``KEY_LL``" + +#~ msgid "``KEY_A1``" +#~ msgstr "``KEY_A1``" + +#~ msgid "``KEY_A3``" +#~ msgstr "``KEY_A3``" + +#~ msgid "``KEY_B2``" +#~ msgstr "``KEY_B2``" + +#~ msgid "``KEY_C1``" +#~ msgstr "``KEY_C1``" + +#~ msgid "``KEY_C3``" +#~ msgstr "``KEY_C3``" + +#~ msgid "``KEY_BTAB``" +#~ msgstr "``KEY_BTAB``" + +#~ msgid "``KEY_BEG``" +#~ msgstr "``KEY_BEG``" + +#~ msgid "``KEY_CANCEL``" +#~ msgstr "``KEY_CANCEL``" + +#~ msgid "``KEY_CLOSE``" +#~ msgstr "``KEY_CLOSE``" + +#~ msgid "``KEY_COMMAND``" +#~ msgstr "``KEY_COMMAND``" + +#~ msgid "``KEY_COPY``" +#~ msgstr "``KEY_COPY``" + +#~ msgid "``KEY_CREATE``" +#~ msgstr "``KEY_CREATE``" + +#~ msgid "``KEY_END``" +#~ msgstr "``KEY_END``" + +#~ msgid "``KEY_EXIT``" +#~ msgstr "``KEY_EXIT``" + +#~ msgid "``KEY_FIND``" +#~ msgstr "``KEY_FIND``" + +#~ msgid "``KEY_HELP``" +#~ msgstr "``KEY_HELP``" + +#~ msgid "``KEY_MARK``" +#~ msgstr "``KEY_MARK``" + +#~ msgid "``KEY_MESSAGE``" +#~ msgstr "``KEY_MESSAGE``" + +#~ msgid "``KEY_MOVE``" +#~ msgstr "``KEY_MOVE``" + +#~ msgid "``KEY_NEXT``" +#~ msgstr "``KEY_NEXT``" + +#~ msgid "``KEY_OPEN``" +#~ msgstr "``KEY_OPEN``" + +#~ msgid "``KEY_OPTIONS``" +#~ msgstr "``KEY_OPTIONS``" + +#~ msgid "``KEY_PREVIOUS``" +#~ msgstr "``KEY_PREVIOUS``" + +#~ msgid "``KEY_REDO``" +#~ msgstr "``KEY_REDO``" + +#~ msgid "``KEY_REFERENCE``" +#~ msgstr "``KEY_REFERENCE``" + +#~ msgid "``KEY_REFRESH``" +#~ msgstr "``KEY_REFRESH``" + +#~ msgid "``KEY_REPLACE``" +#~ msgstr "``KEY_REPLACE``" + +#~ msgid "``KEY_RESTART``" +#~ msgstr "``KEY_RESTART``" + +#~ msgid "``KEY_RESUME``" +#~ msgstr "``KEY_RESUME``" + +#~ msgid "``KEY_SAVE``" +#~ msgstr "``KEY_SAVE``" + +#~ msgid "``KEY_SBEG``" +#~ msgstr "``KEY_SBEG``" + +#~ msgid "``KEY_SCANCEL``" +#~ msgstr "``KEY_SCANCEL``" + +#~ msgid "``KEY_SCOMMAND``" +#~ msgstr "``KEY_SCOMMAND``" + +#~ msgid "``KEY_SCOPY``" +#~ msgstr "``KEY_SCOPY``" + +#~ msgid "``KEY_SCREATE``" +#~ msgstr "``KEY_SCREATE``" + +#~ msgid "``KEY_SDC``" +#~ msgstr "``KEY_SDC``" + +#~ msgid "``KEY_SDL``" +#~ msgstr "``KEY_SDL``" + +#~ msgid "``KEY_SELECT``" +#~ msgstr "``KEY_SELECT``" + +#~ msgid "``KEY_SEND``" +#~ msgstr "``KEY_SEND``" + +#~ msgid "``KEY_SEOL``" +#~ msgstr "``KEY_SEOL``" + +#~ msgid "``KEY_SEXIT``" +#~ msgstr "``KEY_SEXIT``" + +#~ msgid "``KEY_SFIND``" +#~ msgstr "``KEY_SFIND``" + +#~ msgid "``KEY_SHELP``" +#~ msgstr "``KEY_SHELP``" + +#~ msgid "``KEY_SHOME``" +#~ msgstr "``KEY_SHOME``" + +#~ msgid "``KEY_SIC``" +#~ msgstr "``KEY_SIC``" + +#~ msgid "``KEY_SLEFT``" +#~ msgstr "``KEY_SLEFT``" + +#~ msgid "``KEY_SMESSAGE``" +#~ msgstr "``KEY_SMESSAGE``" + +#~ msgid "``KEY_SMOVE``" +#~ msgstr "``KEY_SMOVE``" + +#~ msgid "``KEY_SNEXT``" +#~ msgstr "``KEY_SNEXT``" + +#~ msgid "``KEY_SOPTIONS``" +#~ msgstr "``KEY_SOPTIONS``" + +#~ msgid "``KEY_SPREVIOUS``" +#~ msgstr "``KEY_SPREVIOUS``" + +#~ msgid "``KEY_SPRINT``" +#~ msgstr "``KEY_SPRINT``" + +#~ msgid "``KEY_SREDO``" +#~ msgstr "``KEY_SREDO``" + +#~ msgid "``KEY_SREPLACE``" +#~ msgstr "``KEY_SREPLACE``" + +#~ msgid "``KEY_SRIGHT``" +#~ msgstr "``KEY_SRIGHT``" + +#~ msgid "``KEY_SRSUME``" +#~ msgstr "``KEY_SRSUME``" + +#~ msgid "``KEY_SSAVE``" +#~ msgstr "``KEY_SSAVE``" + +#~ msgid "``KEY_SSUSPEND``" +#~ msgstr "``KEY_SSUSPEND``" + +#~ msgid "``KEY_SUNDO``" +#~ msgstr "``KEY_SUNDO``" + +#~ msgid "``KEY_SUSPEND``" +#~ msgstr "``KEY_SUSPEND``" + +#~ msgid "``KEY_UNDO``" +#~ msgstr "``KEY_UNDO``" + +#~ msgid "``KEY_MOUSE``" +#~ msgstr "``KEY_MOUSE``" + +#~ msgid "``KEY_RESIZE``" +#~ msgstr "``KEY_RESIZE``" + +#~ msgid "``KEY_MAX``" +#~ msgstr "``KEY_MAX``" + +#~ msgid "``ACS_BBSS``" +#~ msgstr "``ACS_BBSS``" + +#~ msgid "``ACS_BLOCK``" +#~ msgstr "``ACS_BLOCK``" + +#~ msgid "``ACS_BOARD``" +#~ msgstr "``ACS_BOARD``" + +#~ msgid "``ACS_BSBS``" +#~ msgstr "``ACS_BSBS``" + +#~ msgid "``ACS_BSSB``" +#~ msgstr "``ACS_BSSB``" + +#~ msgid "``ACS_BSSS``" +#~ msgstr "``ACS_BSSS``" + +#~ msgid "``ACS_BTEE``" +#~ msgstr "``ACS_BTEE``" + +#~ msgid "``ACS_BULLET``" +#~ msgstr "``ACS_BULLET``" + +#~ msgid "``ACS_CKBOARD``" +#~ msgstr "``ACS_CKBOARD``" + +#~ msgid "``ACS_DARROW``" +#~ msgstr "``ACS_DARROW``" + +#~ msgid "``ACS_DEGREE``" +#~ msgstr "``ACS_DEGREE``" + +#~ msgid "``ACS_DIAMOND``" +#~ msgstr "``ACS_DIAMOND``" + +#~ msgid "``ACS_GEQUAL``" +#~ msgstr "``ACS_GEQUAL``" + +#~ msgid "``ACS_HLINE``" +#~ msgstr "``ACS_HLINE``" + +#~ msgid "``ACS_LANTERN``" +#~ msgstr "``ACS_LANTERN``" + +#~ msgid "``ACS_LARROW``" +#~ msgstr "``ACS_LARROW``" + +#~ msgid "``ACS_LEQUAL``" +#~ msgstr "``ACS_LEQUAL``" + +#~ msgid "``ACS_LLCORNER``" +#~ msgstr "``ACS_LLCORNER``" + +#~ msgid "``ACS_LRCORNER``" +#~ msgstr "``ACS_LRCORNER``" + +#~ msgid "``ACS_LTEE``" +#~ msgstr "``ACS_LTEE``" + +#~ msgid "``ACS_NEQUAL``" +#~ msgstr "``ACS_NEQUAL``" + +#~ msgid "``ACS_PI``" +#~ msgstr "``ACS_PI``" + +#~ msgid "``ACS_PLMINUS``" +#~ msgstr "``ACS_PLMINUS``" + +#~ msgid "``ACS_PLUS``" +#~ msgstr "``ACS_PLUS``" + +#~ msgid "``ACS_RARROW``" +#~ msgstr "``ACS_RARROW``" + +#~ msgid "``ACS_RTEE``" +#~ msgstr "``ACS_RTEE``" + +#~ msgid "``ACS_S1``" +#~ msgstr "``ACS_S1``" + +#~ msgid "``ACS_S3``" +#~ msgstr "``ACS_S3``" + +#~ msgid "``ACS_S7``" +#~ msgstr "``ACS_S7``" + +#~ msgid "``ACS_S9``" +#~ msgstr "``ACS_S9``" + +#~ msgid "``ACS_SBBS``" +#~ msgstr "``ACS_SBBS``" + +#~ msgid "``ACS_SBSB``" +#~ msgstr "``ACS_SBSB``" + +#~ msgid "``ACS_SBSS``" +#~ msgstr "``ACS_SBSS``" + +#~ msgid "``ACS_SSBB``" +#~ msgstr "``ACS_SSBB``" + +#~ msgid "``ACS_SSBS``" +#~ msgstr "``ACS_SSBS``" + +#~ msgid "``ACS_SSSB``" +#~ msgstr "``ACS_SSSB``" + +#~ msgid "``ACS_SSSS``" +#~ msgstr "``ACS_SSSS``" + +#~ msgid "``ACS_STERLING``" +#~ msgstr "``ACS_STERLING``" + +#~ msgid "``ACS_TTEE``" +#~ msgstr "``ACS_TTEE``" + +#~ msgid "``ACS_UARROW``" +#~ msgstr "``ACS_UARROW``" + +#~ msgid "``ACS_ULCORNER``" +#~ msgstr "``ACS_ULCORNER``" + +#~ msgid "``ACS_URCORNER``" +#~ msgstr "``ACS_URCORNER``" + +#~ msgid "``ACS_VLINE``" +#~ msgstr "``ACS_VLINE``" + +#~ msgid "``COLOR_BLACK``" +#~ msgstr "``COLOR_BLACK``" + +#~ msgid "``COLOR_BLUE``" +#~ msgstr "``COLOR_BLUE``" + +#~ msgid "``COLOR_CYAN``" +#~ msgstr "``COLOR_CYAN``" + +#~ msgid "``COLOR_GREEN``" +#~ msgstr "``COLOR_GREEN``" + +#~ msgid "``COLOR_MAGENTA``" +#~ msgstr "``COLOR_MAGENTA``" + +#~ msgid "``COLOR_RED``" +#~ msgstr "``COLOR_RED``" + +#~ msgid "``COLOR_WHITE``" +#~ msgstr "``COLOR_WHITE``" + +#~ msgid "``COLOR_YELLOW``" +#~ msgstr "``COLOR_YELLOW``" diff --git a/library/dataclasses.po b/library/dataclasses.po index 589e16e4b9..5abd67f5c9 100644 --- a/library/dataclasses.po +++ b/library/dataclasses.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-02-17 16:40-0300\n" "Last-Translator: Francisco Mora \n" -"Language-Team: python-doc-es\n" "Language: es_ES\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/dataclasses.rst:2 msgid ":mod:`dataclasses` --- Data Classes" @@ -31,11 +30,12 @@ msgid "**Source code:** :source:`Lib/dataclasses.py`" msgstr "**Código fuente:** :source:`Lib/dataclasses.py`" #: ../Doc/library/dataclasses.rst:14 +#, fuzzy msgid "" "This module provides a decorator and functions for automatically adding " -"generated :term:`special method`\\s such as :meth:`__init__` and :meth:" -"`__repr__` to user-defined classes. It was originally described in :pep:" -"`557`." +"generated :term:`special method`\\s such as :meth:`~object.__init__` and :" +"meth:`~object.__repr__` to user-defined classes. It was originally " +"described in :pep:`557`." msgstr "" "Este módulo provee un decorador y funciones para añadir :term:`métodos " "especiales ` automáticamente, como :meth:`__init__` y :meth:" @@ -52,7 +52,9 @@ msgstr "" "código::" #: ../Doc/library/dataclasses.rst:34 -msgid "will add, among other things, a :meth:`__init__` that looks like::" +#, fuzzy +msgid "" +"will add, among other things, a :meth:`~object.__init__` that looks like::" msgstr "" "Añadirá, además de otros métodos, un método :meth:`__init__` con la " "siguiente estructura::" @@ -125,25 +127,30 @@ msgstr "" "actúa con los valores por defecto documentados aquí. Específicamente, los " "siguientes tres usos de :func:`dataclass` son equivalentes::" -#: ../Doc/library/dataclasses.rst:86 +#: ../Doc/library/dataclasses.rst:87 msgid "The parameters to :func:`dataclass` are:" msgstr "Los parámetros de :func:`dataclass` son:" -#: ../Doc/library/dataclasses.rst:88 +#: ../Doc/library/dataclasses.rst:89 +#, fuzzy msgid "" -"``init``: If true (the default), a :meth:`__init__` method will be generated." +"``init``: If true (the default), a :meth:`~object.__init__` method will be " +"generated." msgstr "" "``init``: Si es verdadero (valor por defecto), el método :meth:`__init__` " "será generado." -#: ../Doc/library/dataclasses.rst:91 +#: ../Doc/library/dataclasses.rst:92 +#, fuzzy msgid "" -"If the class already defines :meth:`__init__`, this parameter is ignored." +"If the class already defines :meth:`~object.__init__`, this parameter is " +"ignored." msgstr "Si la clase ya define :meth:`__init__`, este parámetro es ignorado." -#: ../Doc/library/dataclasses.rst:94 +#: ../Doc/library/dataclasses.rst:95 +#, fuzzy msgid "" -"``repr``: If true (the default), a :meth:`__repr__` method will be " +"``repr``: If true (the default), a :meth:`~object.__repr__` method will be " "generated. The generated repr string will have the class name and the name " "and repr of each field, in the order they are defined in the class. Fields " "that are marked as being excluded from the repr are not included. For " @@ -157,16 +164,20 @@ msgstr "" "campos no sean incluidos en la representación. Por ejemplo: " "``InventoryItem(name='widget', unit_price=3.0, quantity_on_hand=10)``." -#: ../Doc/library/dataclasses.rst:101 +#: ../Doc/library/dataclasses.rst:102 +#, fuzzy msgid "" -"If the class already defines :meth:`__repr__`, this parameter is ignored." +"If the class already defines :meth:`~object.__repr__`, this parameter is " +"ignored." msgstr "Si la clase ya define :meth:`__repr__`, este parámetro es ignorado." -#: ../Doc/library/dataclasses.rst:104 +#: ../Doc/library/dataclasses.rst:105 +#, fuzzy msgid "" -"``eq``: If true (the default), an :meth:`__eq__` method will be generated. " -"This method compares the class as if it were a tuple of its fields, in " -"order. Both instances in the comparison must be of the identical type." +"``eq``: If true (the default), an :meth:`~object.__eq__` method will be " +"generated. This method compares the class as if it were a tuple of its " +"fields, in order. Both instances in the comparison must be of the identical " +"type." msgstr "" "``eq``: Si es verdadero (por defecto), el método :meth:`__eq__` es generado. " "Este método compara entre instancias de la clase representando cada una de " @@ -174,17 +185,22 @@ msgstr "" "clase ubicados en el mismo orden en el que fueron definidos (dos tuplas son " "iguales si, y sólo si, sus campos son iguales)." -#: ../Doc/library/dataclasses.rst:109 -msgid "If the class already defines :meth:`__eq__`, this parameter is ignored." +#: ../Doc/library/dataclasses.rst:110 +#, fuzzy +msgid "" +"If the class already defines :meth:`~object.__eq__`, this parameter is " +"ignored." msgstr "Si la clase ya define :meth:`__eq__`, este parámetro es ignorado." -#: ../Doc/library/dataclasses.rst:112 +#: ../Doc/library/dataclasses.rst:113 +#, fuzzy msgid "" -"``order``: If true (the default is ``False``), :meth:`__lt__`, :meth:" -"`__le__`, :meth:`__gt__`, and :meth:`__ge__` methods will be generated. " -"These compare the class as if it were a tuple of its fields, in order. Both " -"instances in the comparison must be of the identical type. If ``order`` is " -"true and ``eq`` is false, a :exc:`ValueError` is raised." +"``order``: If true (the default is ``False``), :meth:`~object.__lt__`, :meth:" +"`~object.__le__`, :meth:`~object.__gt__`, and :meth:`~object.__ge__` methods " +"will be generated. These compare the class as if it were a tuple of its " +"fields, in order. Both instances in the comparison must be of the identical " +"type. If ``order`` is true and ``eq`` is false, a :exc:`ValueError` is " +"raised." msgstr "" "``order``: Si es verdadero (``False`` es el valor por defecto), los métodos :" "meth:`__lt__`, :meth:`__le__`, :meth:`__gt__` y :meth:`__ge__` serán " @@ -193,30 +209,35 @@ msgstr "" "tipo. Si ``order`` es verdadero y ``eq`` falso, se lanza una excepción :exc:" "`ValueError`." -#: ../Doc/library/dataclasses.rst:119 +#: ../Doc/library/dataclasses.rst:120 +#, fuzzy msgid "" -"If the class already defines any of :meth:`__lt__`, :meth:`__le__`, :meth:" -"`__gt__`, or :meth:`__ge__`, then :exc:`TypeError` is raised." +"If the class already defines any of :meth:`~object.__lt__`, :meth:`~object." +"__le__`, :meth:`~object.__gt__`, or :meth:`~object.__ge__`, then :exc:" +"`TypeError` is raised." msgstr "" "Si la clase ya define :meth:`__lt__`, :meth:`__le__`, :meth:`__gt__` o :meth:" "`__ge__`, se lanza una excepción :exc:`TypeError`." -#: ../Doc/library/dataclasses.rst:123 +#: ../Doc/library/dataclasses.rst:124 +#, fuzzy msgid "" -"``unsafe_hash``: If ``False`` (the default), a :meth:`__hash__` method is " -"generated according to how ``eq`` and ``frozen`` are set." +"``unsafe_hash``: If ``False`` (the default), a :meth:`~object.__hash__` " +"method is generated according to how ``eq`` and ``frozen`` are set." msgstr "" "``unsafe_hash``: Si es ``False`` (por defecto), se genera el método :meth:" "`__hash__` de acuerdo a los valores de ``eq`` y ``frozen`` definidos." -#: ../Doc/library/dataclasses.rst:126 +#: ../Doc/library/dataclasses.rst:127 +#, fuzzy msgid "" -":meth:`__hash__` is used by built-in :meth:`hash()`, and when objects are " -"added to hashed collections such as dictionaries and sets. Having a :meth:" -"`__hash__` implies that instances of the class are immutable. Mutability is " -"a complicated property that depends on the programmer's intent, the " -"existence and behavior of :meth:`__eq__`, and the values of the ``eq`` and " -"``frozen`` flags in the :func:`dataclass` decorator." +":meth:`~object.__hash__` is used by built-in :meth:`hash()`, and when " +"objects are added to hashed collections such as dictionaries and sets. " +"Having a :meth:`~object.__hash__` implies that instances of the class are " +"immutable. Mutability is a complicated property that depends on the " +"programmer's intent, the existence and behavior of :meth:`~object.__eq__`, " +"and the values of the ``eq`` and ``frozen`` flags in the :func:`dataclass` " +"decorator." msgstr "" ":meth:`__hash__` es utilizado por la función incorporada :meth:`hash()` y " "cuando los objetos definidos por la clase son añadidos a colecciones hash, " @@ -227,13 +248,14 @@ msgstr "" "valor asignado a las flags ``eq`` y ``frozen`` en el decorador :func:" "`dataclass`." -#: ../Doc/library/dataclasses.rst:133 +#: ../Doc/library/dataclasses.rst:134 +#, fuzzy msgid "" -"By default, :func:`dataclass` will not implicitly add a :meth:`__hash__` " -"method unless it is safe to do so. Neither will it add or change an " -"existing explicitly defined :meth:`__hash__` method. Setting the class " -"attribute ``__hash__ = None`` has a specific meaning to Python, as described " -"in the :meth:`__hash__` documentation." +"By default, :func:`dataclass` will not implicitly add a :meth:`~object." +"__hash__` method unless it is safe to do so. Neither will it add or change " +"an existing explicitly defined :meth:`~object.__hash__` method. Setting the " +"class attribute ``__hash__ = None`` has a specific meaning to Python, as " +"described in the :meth:`~object.__hash__` documentation." msgstr "" "Por defecto, :func:`dataclass` no añade de forma implícita el método :meth:" "`__hash__` a menos que sea seguro hacerlo. Tampoco añade o cambia un método :" @@ -241,14 +263,16 @@ msgstr "" "de clase ``__hash__ = None`` tiene un significado específico en Python, " "descrito en la documentación dedicada a :meth:`__hash__`." -#: ../Doc/library/dataclasses.rst:139 +#: ../Doc/library/dataclasses.rst:140 +#, fuzzy msgid "" -"If :meth:`__hash__` is not explicitly defined, or if it is set to ``None``, " -"then :func:`dataclass` *may* add an implicit :meth:`__hash__` method. " -"Although not recommended, you can force :func:`dataclass` to create a :meth:" -"`__hash__` method with ``unsafe_hash=True``. This might be the case if your " -"class is logically immutable but can nonetheless be mutated. This is a " -"specialized use case and should be considered carefully." +"If :meth:`~object.__hash__` is not explicitly defined, or if it is set to " +"``None``, then :func:`dataclass` *may* add an implicit :meth:`~object." +"__hash__` method. Although not recommended, you can force :func:`dataclass` " +"to create a :meth:`~object.__hash__` method with ``unsafe_hash=True``. This " +"might be the case if your class is logically immutable but can nonetheless " +"be mutated. This is a specialized use case and should be considered " +"carefully." msgstr "" "Si :meth:`__hash__` no está definido explícitamente, o si está configurado " "como ``None``, entonces :func:`dataclass` *puede* agregar un método " @@ -258,12 +282,13 @@ msgstr "" "obstante, puede mutar. Este es un caso de uso especializado y debe " "considerarse detenidamente." -#: ../Doc/library/dataclasses.rst:146 +#: ../Doc/library/dataclasses.rst:147 +#, fuzzy msgid "" -"Here are the rules governing implicit creation of a :meth:`__hash__` " -"method. Note that you cannot both have an explicit :meth:`__hash__` method " -"in your dataclass and set ``unsafe_hash=True``; this will result in a :exc:" -"`TypeError`." +"Here are the rules governing implicit creation of a :meth:`~object.__hash__` " +"method. Note that you cannot both have an explicit :meth:`~object.__hash__` " +"method in your dataclass and set ``unsafe_hash=True``; this will result in " +"a :exc:`TypeError`." msgstr "" "A continuación se explican las reglas que se aplican en la creación " "implícita del método :meth:`__hash__`. Observar que no es compatible definir " @@ -271,15 +296,16 @@ msgstr "" "tiempo asignar ``unsafe_hash=True``; esto lanza una excepción :exc:" "`TypeError`." -#: ../Doc/library/dataclasses.rst:151 +#: ../Doc/library/dataclasses.rst:152 +#, fuzzy msgid "" "If ``eq`` and ``frozen`` are both true, by default :func:`dataclass` will " -"generate a :meth:`__hash__` method for you. If ``eq`` is true and " -"``frozen`` is false, :meth:`__hash__` will be set to ``None``, marking it " -"unhashable (which it is, since it is mutable). If ``eq`` is false, :meth:" -"`__hash__` will be left untouched meaning the :meth:`__hash__` method of the " -"superclass will be used (if the superclass is :class:`object`, this means it " -"will fall back to id-based hashing)." +"generate a :meth:`~object.__hash__` method for you. If ``eq`` is true and " +"``frozen`` is false, :meth:`~object.__hash__` will be set to ``None``, " +"marking it unhashable (which it is, since it is mutable). If ``eq`` is " +"false, :meth:`~object.__hash__` will be left untouched meaning the :meth:" +"`~object.__hash__` method of the superclass will be used (if the superclass " +"is :class:`object`, this means it will fall back to id-based hashing)." msgstr "" "Si ``eq`` y ``frozen`` son ambos verdaderos, :func:`dataclass` genera por " "defecto un método :meth:`hash` por ti. En el caso que ``eq`` sea verdadero y " @@ -290,12 +316,13 @@ msgstr "" "que si la superclase es :class:`object`, se aplicará el *hashing* basado en " "el id de los objetos)." -#: ../Doc/library/dataclasses.rst:159 +#: ../Doc/library/dataclasses.rst:160 +#, fuzzy msgid "" "``frozen``: If true (the default is ``False``), assigning to fields will " "generate an exception. This emulates read-only frozen instances. If :meth:" -"`__setattr__` or :meth:`__delattr__` is defined in the class, then :exc:" -"`TypeError` is raised. See the discussion below." +"`~object.__setattr__` or :meth:`~object.__delattr__` is defined in the " +"class, then :exc:`TypeError` is raised. See the discussion below." msgstr "" "``frozen``: Si es verdadero (el valor por defecto es ``False``), cualquier " "intento de asignación a un campo de la clase lanza una excepción. Esto emula " @@ -303,13 +330,14 @@ msgstr "" "Si :meth:`__setattr__` o :meth:`__delattr__` son definidos en la clase, se " "lanzará una excepción :exc:`TypeError`. Esto es ampliado más abajo." -#: ../Doc/library/dataclasses.rst:164 +#: ../Doc/library/dataclasses.rst:165 +#, fuzzy msgid "" "``match_args``: If true (the default is ``True``), the ``__match_args__`` " "tuple will be created from the list of parameters to the generated :meth:" -"`__init__` method (even if :meth:`__init__` is not generated, see above). " -"If false, or if ``__match_args__`` is already defined in the class, then " -"``__match_args__`` will not be generated." +"`~object.__init__` method (even if :meth:`~object.__init__` is not " +"generated, see above). If false, or if ``__match_args__`` is already " +"defined in the class, then ``__match_args__`` will not be generated." msgstr "" "``match_args``: si es verdadero (el valor predeterminado es ``True``), la " "tupla ``__match_args__`` se creará a partir de la lista de parámetros para " @@ -317,16 +345,16 @@ msgstr "" "`__init__`, consulte más arriba). Si es falso, o si ``__match_args__`` ya " "está definido en la clase, no se generará ``__match_args__``." -#: ../Doc/library/dataclasses.rst:173 +#: ../Doc/library/dataclasses.rst:174 #, fuzzy msgid "" "``kw_only``: If true (the default value is ``False``), then all fields will " "be marked as keyword-only. If a field is marked as keyword-only, then the " -"only effect is that the :meth:`__init__` parameter generated from a keyword-" -"only field must be specified with a keyword when :meth:`__init__` is " -"called. There is no effect on any other aspect of dataclasses. See the :" -"term:`parameter` glossary entry for details. Also see the :const:`KW_ONLY` " -"section." +"only effect is that the :meth:`~object.__init__` parameter generated from a " +"keyword-only field must be specified with a keyword when :meth:`~object." +"__init__` is called. There is no effect on any other aspect of " +"dataclasses. See the :term:`parameter` glossary entry for details. Also " +"see the :const:`KW_ONLY` section." msgstr "" "``kw_only``: si es verdadero (el valor predeterminado es ``False``), todos " "los campos se marcarán solo como palabra clave. Si un campo está marcado " @@ -337,26 +365,28 @@ msgstr "" "la entrada del glosario :term:`parameter` para obtener más detalles. " "Consulte también la sección :const:`KW_ONLY`." -#: ../Doc/library/dataclasses.rst:184 +#: ../Doc/library/dataclasses.rst:185 +#, fuzzy msgid "" -"``slots``: If true (the default is ``False``), :attr:`__slots__` attribute " -"will be generated and new class will be returned instead of the original " -"one. If :attr:`__slots__` is already defined in the class, then :exc:" -"`TypeError` is raised." +"``slots``: If true (the default is ``False``), :attr:`~object.__slots__` " +"attribute will be generated and new class will be returned instead of the " +"original one. If :attr:`~object.__slots__` is already defined in the class, " +"then :exc:`TypeError` is raised." msgstr "" "``slots``: si es verdadero (el valor predeterminado es ``False``), se " "generará el atributo :attr:`__slots__` y se devolverá una nueva clase en " "lugar de la original. Si :attr:`__slots__` ya está definido en la clase, se " "genera :exc:`TypeError`." -#: ../Doc/library/dataclasses.rst:191 +#: ../Doc/library/dataclasses.rst:192 +#, fuzzy msgid "" "If a field name is already included in the ``__slots__`` of a base class, it " -"will not be included in the generated ``__slots__`` to prevent `overriding " -"them `_. Therefore, do not use ``__slots__`` to retrieve the field names of " -"a dataclass. Use :func:`fields` instead. To be able to determine inherited " -"slots, base class ``__slots__`` may be any iterable, but *not* an iterator." +"will not be included in the generated ``__slots__`` to prevent :ref:" +"`overriding them `. Therefore, do not use " +"``__slots__`` to retrieve the field names of a dataclass. Use :func:`fields` " +"instead. To be able to determine inherited slots, base class ``__slots__`` " +"may be any iterable, but *not* an iterator." msgstr "" "Si un nombre de campo ya está incluido en las ``__slots__`` de una clase " "base, no se incluirá en las ``__slots__`` generadas para evitar que se " @@ -367,7 +397,7 @@ msgstr "" "puede ser cualquier iterable, pero *no* un iterador." # No estoy seguro de si es correcto traducir slot por "ranura". -#: ../Doc/library/dataclasses.rst:201 +#: ../Doc/library/dataclasses.rst:202 msgid "" "``weakref_slot``: If true (the default is ``False``), add a slot named " "\"__weakref__\", which is required to make an instance weakref-able. It is " @@ -379,7 +409,7 @@ msgstr "" "referenciable de forma débil. Es un error especificar ``weakref_slot=True`` " "sin especificar también ``slots=True``." -#: ../Doc/library/dataclasses.rst:208 +#: ../Doc/library/dataclasses.rst:209 msgid "" "``field``\\s may optionally specify a default value, using normal Python " "syntax::" @@ -387,15 +417,16 @@ msgstr "" "Los ``fields`` pueden especificar un valor por defecto opcionalmente, " "simplemente usando la sintaxis normal de Python::" -#: ../Doc/library/dataclasses.rst:216 +#: ../Doc/library/dataclasses.rst:217 +#, fuzzy msgid "" "In this example, both ``a`` and ``b`` will be included in the added :meth:" -"`__init__` method, which will be defined as::" +"`~object.__init__` method, which will be defined as::" msgstr "" "En este ejemplo, tanto ``a`` como ``b`` serán incluidos en el método :meth:" "`__init__` agregado, el cual será definido como sigue::" -#: ../Doc/library/dataclasses.rst:221 +#: ../Doc/library/dataclasses.rst:222 msgid "" ":exc:`TypeError` will be raised if a field without a default value follows a " "field with a default value. This is true whether this occurs in a single " @@ -406,7 +437,7 @@ msgstr "" "Esto se aplica también a la implementación de una clase única o como " "resultado de herencia de clases." -#: ../Doc/library/dataclasses.rst:227 +#: ../Doc/library/dataclasses.rst:228 msgid "" "For common and simple use cases, no other functionality is required. There " "are, however, some dataclass features that require additional per-field " @@ -420,7 +451,7 @@ msgstr "" "posible reemplazar cualquier valor por defecto de un campo mediante una " "llamada a la función :func:`field`. Por ejemplo::" -#: ../Doc/library/dataclasses.rst:240 +#: ../Doc/library/dataclasses.rst:241 msgid "" "As shown above, the :const:`MISSING` value is a sentinel object used to " "detect if some parameters are provided by the user. This sentinel is used " @@ -433,11 +464,11 @@ msgstr "" "parámetros con un significado distinto. Ningún código debe utilizar " "directamente el valor :const:`MISSING`." -#: ../Doc/library/dataclasses.rst:245 +#: ../Doc/library/dataclasses.rst:246 msgid "The parameters to :func:`field` are:" msgstr "Los parámetros de :func:`field` son:" -#: ../Doc/library/dataclasses.rst:247 +#: ../Doc/library/dataclasses.rst:248 msgid "" "``default``: If provided, this will be the default value for this field. " "This is needed because the :meth:`field` call itself replaces the normal " @@ -447,7 +478,7 @@ msgstr "" "Es necesario que sea definido ya que la propia llamada a :meth:`field` " "reemplaza la posición normal del valor por defecto." -#: ../Doc/library/dataclasses.rst:251 +#: ../Doc/library/dataclasses.rst:252 msgid "" "``default_factory``: If provided, it must be a zero-argument callable that " "will be called when a default value is needed for this field. Among other " @@ -462,29 +493,33 @@ msgstr "" "continuación. Especificar tanto ``default`` como ``default_factory`` resulta " "en un error." -#: ../Doc/library/dataclasses.rst:257 +#: ../Doc/library/dataclasses.rst:258 +#, fuzzy msgid "" "``init``: If true (the default), this field is included as a parameter to " -"the generated :meth:`__init__` method." +"the generated :meth:`~object.__init__` method." msgstr "" "``init``: Si es verdadero (por defecto), este campo es incluido como " "parámetro del método :meth:`__init__` generado." -#: ../Doc/library/dataclasses.rst:260 +#: ../Doc/library/dataclasses.rst:261 +#, fuzzy msgid "" "``repr``: If true (the default), this field is included in the string " -"returned by the generated :meth:`__repr__` method." +"returned by the generated :meth:`~object.__repr__` method." msgstr "" "``repr``: Si es verdadero (por defecto), este campo es incluido en la cadena " "de caracteres que retorna el método :meth:`__repr__` generado." -#: ../Doc/library/dataclasses.rst:263 +#: ../Doc/library/dataclasses.rst:264 +#, fuzzy msgid "" "``hash``: This can be a bool or ``None``. If true, this field is included " -"in the generated :meth:`__hash__` method. If ``None`` (the default), use " -"the value of ``compare``: this would normally be the expected behavior. A " -"field should be considered in the hash if it's used for comparisons. " -"Setting this value to anything other than ``None`` is discouraged." +"in the generated :meth:`~object.__hash__` method. If ``None`` (the " +"default), use the value of ``compare``: this would normally be the expected " +"behavior. A field should be considered in the hash if it's used for " +"comparisons. Setting this value to anything other than ``None`` is " +"discouraged." msgstr "" "``hash``: Su valor puede ser de tipo booleano o ``None``. Si es verdadero, " "este campo es incluido en el método :meth:`__hash__` generado. Si es " @@ -493,7 +528,7 @@ msgstr "" "si es compatible con operaciones de comparación. Está desaconsejado " "establecer este valor en algo que no sea ``None``." -#: ../Doc/library/dataclasses.rst:270 +#: ../Doc/library/dataclasses.rst:271 msgid "" "One possible reason to set ``hash=False`` but ``compare=True`` would be if a " "field is expensive to compute a hash value for, that field is needed for " @@ -507,15 +542,17 @@ msgstr "" "otros campos que contribuyen al valor hash del tipo. Incluso si un campo se " "excluye del hash, se seguirá utilizando a la hora de comparar." -#: ../Doc/library/dataclasses.rst:276 +#: ../Doc/library/dataclasses.rst:277 +#, fuzzy msgid "" "``compare``: If true (the default), this field is included in the generated " -"equality and comparison methods (:meth:`__eq__`, :meth:`__gt__`, et al.)." +"equality and comparison methods (:meth:`~object.__eq__`, :meth:`~object." +"__gt__`, et al.)." msgstr "" "``compare``: Si es verdadero (por defecto), este campo es incluido en los " "métodos de comparación generados (:meth:`__eq__`, :meth:`__gt__` y otros)." -#: ../Doc/library/dataclasses.rst:280 +#: ../Doc/library/dataclasses.rst:281 msgid "" "``metadata``: This can be a mapping or None. None is treated as an empty " "dict. This value is wrapped in :func:`~types.MappingProxyType` to make it " @@ -531,16 +568,18 @@ msgstr "" "extensión de terceros. Varios terceros pueden tener su propia clave para " "utilizar como espacio de nombres en *metadata*." -#: ../Doc/library/dataclasses.rst:288 +#: ../Doc/library/dataclasses.rst:289 +#, fuzzy msgid "" "``kw_only``: If true, this field will be marked as keyword-only. This is " -"used when the generated :meth:`__init__` method's parameters are computed." +"used when the generated :meth:`~object.__init__` method's parameters are " +"computed." msgstr "" "``kw_only``: si es verdadero, este campo se marcará como solo palabra clave. " "Se utiliza cuando se calculan los parámetros del método :meth:`__init__` " "generado." -#: ../Doc/library/dataclasses.rst:294 +#: ../Doc/library/dataclasses.rst:295 msgid "" "If the default value of a field is specified by a call to :func:`field()`, " "then the class attribute for this field will be replaced by the specified " @@ -558,7 +597,7 @@ msgstr "" "clase contengan los valores por defecto de cada campo, como si fueran " "definidos uno por uno. Por ejemplo, luego de::" -#: ../Doc/library/dataclasses.rst:310 +#: ../Doc/library/dataclasses.rst:311 msgid "" "The class attribute ``C.z`` will be ``10``, the class attribute ``C.t`` will " "be ``20``, and the class attributes ``C.x`` and ``C.y`` will not be set." @@ -566,7 +605,7 @@ msgstr "" "El atributo de clase ``C.z`` será ``10``, el atributo de clase ``C.t`` será " "``20`` y los atributos de clase ``C.x`` y ``C.y`` no serán definidos." -#: ../Doc/library/dataclasses.rst:316 +#: ../Doc/library/dataclasses.rst:317 msgid "" ":class:`Field` objects describe each defined field. These objects are " "created internally, and are returned by the :func:`fields` module-level " @@ -578,15 +617,15 @@ msgstr "" "en este módulo (explicado más abajo). Los usuarios no deben instanciar un " "objeto :class:`Field` directamente. Sus atributos documentados son:" -#: ../Doc/library/dataclasses.rst:321 +#: ../Doc/library/dataclasses.rst:322 msgid "``name``: The name of the field." msgstr "``name``: El nombre del campo." -#: ../Doc/library/dataclasses.rst:323 +#: ../Doc/library/dataclasses.rst:324 msgid "``type``: The type of the field." msgstr "``type``: El tipo del campo." -#: ../Doc/library/dataclasses.rst:325 +#: ../Doc/library/dataclasses.rst:326 msgid "" "``default``, ``default_factory``, ``init``, ``repr``, ``hash``, ``compare``, " "``metadata``, and ``kw_only`` have the identical meaning and values as they " @@ -596,7 +635,7 @@ msgstr "" "y ``metadata`` tienen los mismos valores y significados respecto a la " "declaración de :func:`field` (ver arriba)." -#: ../Doc/library/dataclasses.rst:329 +#: ../Doc/library/dataclasses.rst:330 msgid "" "Other attributes may exist, but they are private and must not be inspected " "or relied on." @@ -604,7 +643,7 @@ msgstr "" "Pueden existir otros atributos, pero son privados y no deberían ser " "considerados ni depender de ellos." -#: ../Doc/library/dataclasses.rst:334 +#: ../Doc/library/dataclasses.rst:335 msgid "" "Returns a tuple of :class:`Field` objects that define the fields for this " "dataclass. Accepts either a dataclass, or an instance of a dataclass. " @@ -616,7 +655,7 @@ msgstr "" "Lanza una excepción :exc:`TypeError` si se le pasa cualquier otro objeto. No " "retorna pseudocampos, que son ``ClassVar`` o ``InitVar``." -#: ../Doc/library/dataclasses.rst:341 +#: ../Doc/library/dataclasses.rst:342 #, fuzzy msgid "" "Converts the dataclass ``obj`` to a dict (by using the factory function " @@ -630,18 +669,18 @@ msgstr "" "datos, diccionarios, listas y tuplas son convertidas recursivamente. Por " "ejemplo::" -#: ../Doc/library/dataclasses.rst:347 +#: ../Doc/library/dataclasses.rst:348 msgid "Example of using :func:`asdict` on nested dataclasses::" msgstr "Ejemplo de uso de :func:`asdict` en clases de datos anidadas::" # No estoy seguro de la traducción shallow copy como copia superficial. -#: ../Doc/library/dataclasses.rst:364 ../Doc/library/dataclasses.rst:384 +#: ../Doc/library/dataclasses.rst:365 ../Doc/library/dataclasses.rst:385 #, fuzzy msgid "To create a shallow copy, the following workaround may be used::" msgstr "" "Para crear una copia superficial, se puede utilizar la siguiente solución::" -#: ../Doc/library/dataclasses.rst:368 +#: ../Doc/library/dataclasses.rst:369 #, fuzzy msgid "" ":func:`asdict` raises :exc:`TypeError` if ``obj`` is not a dataclass " @@ -650,7 +689,7 @@ msgstr "" "Lanza una excepción :exc:`TypeError` si ``instance`` no es una instancia de " "una clase de datos." -#: ../Doc/library/dataclasses.rst:373 +#: ../Doc/library/dataclasses.rst:374 #, fuzzy msgid "" "Converts the dataclass ``obj`` to a tuple (by using the factory function " @@ -663,11 +702,11 @@ msgstr "" "con los valores de sus campos. Las clases de datos, diccionarios, listas y " "tuplas son convertidas recursivamente." -#: ../Doc/library/dataclasses.rst:379 +#: ../Doc/library/dataclasses.rst:380 msgid "Continuing from the previous example::" msgstr "Continuando con el ejemplo anterior::" -#: ../Doc/library/dataclasses.rst:388 +#: ../Doc/library/dataclasses.rst:389 #, fuzzy msgid "" ":func:`astuple` raises :exc:`TypeError` if ``obj`` is not a dataclass " @@ -676,7 +715,7 @@ msgstr "" "Lanza una excepción :exc:`TypeError` si ``instance`` no es una instancia de " "una clase de datos." -#: ../Doc/library/dataclasses.rst:393 +#: ../Doc/library/dataclasses.rst:394 #, fuzzy msgid "" "Creates a new dataclass with name ``cls_name``, fields as defined in " @@ -697,7 +736,13 @@ msgstr "" "``unsafe_hash`` y ``frozen`` tienen el mismo significado que en la función :" "func:`dataclass`." -#: ../Doc/library/dataclasses.rst:403 +#: ../Doc/library/dataclasses.rst:404 +msgid "" +"If ``module`` is defined, the ``__module__`` attribute of the dataclass is " +"set to that value. By default, it is set to the module name of the caller." +msgstr "" + +#: ../Doc/library/dataclasses.rst:408 msgid "" "This function is not strictly required, because any Python mechanism for " "creating a new class with ``__annotations__`` can then apply the :func:" @@ -709,11 +754,11 @@ msgstr "" "función :func:`dataclass` para convertir esa clase en una clase de datos. " "Esta función se proporciona simplemente por comodidad. Por ejemplo::" -#: ../Doc/library/dataclasses.rst:415 +#: ../Doc/library/dataclasses.rst:420 msgid "Is equivalent to::" msgstr "Es equivalente a::" -#: ../Doc/library/dataclasses.rst:428 +#: ../Doc/library/dataclasses.rst:433 #, fuzzy msgid "" "Creates a new object of the same type as ``obj``, replacing fields with " @@ -727,27 +772,29 @@ msgstr "" "valores en ``changes`` no especifican campos, también se lanza una " "excepción :exc:`TypeError`." -#: ../Doc/library/dataclasses.rst:433 +#: ../Doc/library/dataclasses.rst:438 +#, fuzzy msgid "" -"The newly returned object is created by calling the :meth:`__init__` method " -"of the dataclass. This ensures that :meth:`__post_init__`, if present, is " -"also called." +"The newly returned object is created by calling the :meth:`~object.__init__` " +"method of the dataclass. This ensures that :meth:`__post_init__`, if " +"present, is also called." msgstr "" "El objeto recién retornado es creado llamando al método :meth:`__init__` de " "la clase de datos. Esto asegura que :meth:`__post_init__`, si existe, " "también será llamado." -#: ../Doc/library/dataclasses.rst:437 +#: ../Doc/library/dataclasses.rst:442 +#, fuzzy msgid "" "Init-only variables without default values, if any exist, must be specified " -"on the call to :func:`replace` so that they can be passed to :meth:" -"`__init__` and :meth:`__post_init__`." +"on the call to :func:`replace` so that they can be passed to :meth:`~object." +"__init__` and :meth:`__post_init__`." msgstr "" "Las variables de solo inicialización sin valores predeterminados, si " "existen, deben especificarse en la llamada a :func:`replace` para que puedan " "pasarse a :meth:`__init__` y :meth:`__post_init__`." -#: ../Doc/library/dataclasses.rst:441 +#: ../Doc/library/dataclasses.rst:446 msgid "" "It is an error for ``changes`` to contain any fields that are defined as " "having ``init=False``. A :exc:`ValueError` will be raised in this case." @@ -755,7 +802,7 @@ msgstr "" "Es un error que ``changes`` contenga cualquier campo que esté definido como " "``init=False``. Una excepción :exc:`ValueError` se lanzará en este caso." -#: ../Doc/library/dataclasses.rst:445 +#: ../Doc/library/dataclasses.rst:450 msgid "" "Be forewarned about how ``init=False`` fields work during a call to :func:" "`replace`. They are not copied from the source object, but rather are " @@ -773,7 +820,7 @@ msgstr "" "o quizás un método personalizado ``replace()`` (o con un nombre similar) que " "maneje la copia de instancias." -#: ../Doc/library/dataclasses.rst:456 +#: ../Doc/library/dataclasses.rst:461 msgid "" "Return ``True`` if its parameter is a dataclass or an instance of one, " "otherwise return ``False``." @@ -781,7 +828,7 @@ msgstr "" "Retorna ``True`` si su parámetro es una clase de datos o una instancia de " "una, en caso contrario retorna ``False``." -#: ../Doc/library/dataclasses.rst:459 +#: ../Doc/library/dataclasses.rst:464 msgid "" "If you need to know if a class is an instance of a dataclass (and not a " "dataclass itself), then add a further check for ``not isinstance(obj, " @@ -791,20 +838,21 @@ msgstr "" "una clase de datos en si misma), se debe agregar una verificación adicional " "para ``not isinstance(obj, type)``::" -#: ../Doc/library/dataclasses.rst:468 +#: ../Doc/library/dataclasses.rst:473 msgid "A sentinel value signifying a missing default or default_factory." msgstr "" "Un valor centinela que significa que falta un default o default_factory." -#: ../Doc/library/dataclasses.rst:472 +#: ../Doc/library/dataclasses.rst:477 +#, fuzzy msgid "" "A sentinel value used as a type annotation. Any fields after a pseudo-field " "with the type of :const:`KW_ONLY` are marked as keyword-only fields. Note " "that a pseudo-field of type :const:`KW_ONLY` is otherwise completely " "ignored. This includes the name of such a field. By convention, a name of " "``_`` is used for a :const:`KW_ONLY` field. Keyword-only fields signify :" -"meth:`__init__` parameters that must be specified as keywords when the class " -"is instantiated." +"meth:`~object.__init__` parameters that must be specified as keywords when " +"the class is instantiated." msgstr "" "Un valor centinela utilizado como anotación de tipo. Cualquier campo después " "de un pseudocampo con el tipo de :const:`KW_ONLY` se marca como campos de " @@ -815,7 +863,7 @@ msgstr "" "meth:`__init__` que deben especificarse como palabras clave cuando se crea " "una instancia de la clase." -#: ../Doc/library/dataclasses.rst:481 +#: ../Doc/library/dataclasses.rst:486 msgid "" "In this example, the fields ``y`` and ``z`` will be marked as keyword-only " "fields::" @@ -823,7 +871,7 @@ msgstr "" "En este ejemplo, los campos ``y`` y ``z`` se marcarán como campos de solo " "palabras clave:" -#: ../Doc/library/dataclasses.rst:492 +#: ../Doc/library/dataclasses.rst:497 msgid "" "In a single dataclass, it is an error to specify more than one field whose " "type is :const:`KW_ONLY`." @@ -831,28 +879,29 @@ msgstr "" "En una sola clase de datos, es un error especificar más de un campo cuyo " "tipo es :const:`KW_ONLY`." -#: ../Doc/library/dataclasses.rst:499 +#: ../Doc/library/dataclasses.rst:504 +#, fuzzy msgid "" -"Raised when an implicitly defined :meth:`__setattr__` or :meth:`__delattr__` " -"is called on a dataclass which was defined with ``frozen=True``. It is a " -"subclass of :exc:`AttributeError`." +"Raised when an implicitly defined :meth:`~object.__setattr__` or :meth:" +"`~object.__delattr__` is called on a dataclass which was defined with " +"``frozen=True``. It is a subclass of :exc:`AttributeError`." msgstr "" "Se genera cuando se llama a un :meth:`__setattr__` o :meth:`__delattr__` " "definido implícitamente en una clase de datos que se definió con " "``frozen=True``. Es una subclase de :exc:`AttributeError`." -#: ../Doc/library/dataclasses.rst:504 +#: ../Doc/library/dataclasses.rst:511 msgid "Post-init processing" msgstr "Procesamiento posterior a la inicialización" -#: ../Doc/library/dataclasses.rst:506 +#: ../Doc/library/dataclasses.rst:515 +#, fuzzy msgid "" -"The generated :meth:`__init__` code will call a method named :meth:" -"`__post_init__`, if :meth:`__post_init__` is defined on the class. It will " -"normally be called as ``self.__post_init__()``. However, if any ``InitVar`` " +"When defined on the class, it will be called by the generated :meth:`~object." +"__init__`, normally as ``self.__post_init__()``. However, if any ``InitVar`` " "fields are defined, they will also be passed to :meth:`__post_init__` in the " -"order they were defined in the class. If no :meth:`__init__` method is " -"generated, then :meth:`__post_init__` will not automatically be called." +"order they were defined in the class. If no :meth:`~object.__init__` method " +"is generated, then :meth:`__post_init__` will not automatically be called." msgstr "" "El código del método generado :meth:`__init__` llamará a un método llamado :" "meth:`__post_init__`, si :meth:`__post_init__` está definido en la clase. " @@ -862,7 +911,7 @@ msgstr "" "meth:`__init__`, entonces :meth:`__post_init__` no se llamará " "automáticamente." -#: ../Doc/library/dataclasses.rst:514 +#: ../Doc/library/dataclasses.rst:522 msgid "" "Among other uses, this allows for initializing field values that depend on " "one or more other fields. For example::" @@ -870,30 +919,33 @@ msgstr "" "Entre otros usos, esto permite inicializar valores de campo que dependen de " "uno o más campos. Por ejemplo::" -#: ../Doc/library/dataclasses.rst:526 +#: ../Doc/library/dataclasses.rst:534 +#, fuzzy msgid "" -"The :meth:`__init__` method generated by :func:`dataclass` does not call " -"base class :meth:`__init__` methods. If the base class has an :meth:" -"`__init__` method that has to be called, it is common to call this method in " -"a :meth:`__post_init__` method::" +"The :meth:`~object.__init__` method generated by :func:`dataclass` does not " +"call base class :meth:`~object.__init__` methods. If the base class has an :" +"meth:`~object.__init__` method that has to be called, it is common to call " +"this method in a :meth:`__post_init__` method::" msgstr "" "El método :meth:`__init__` generado por :func:`dataclass` no llama a los " "métodos :meth:`__init__` de la clase base. Si la clase base tiene un método :" "meth:`__init__` que debe llamarse, es común llamar a este método en un " "método :meth:`__post_init__`:" -#: ../Doc/library/dataclasses.rst:543 +#: ../Doc/library/dataclasses.rst:551 +#, fuzzy msgid "" -"Note, however, that in general the dataclass-generated :meth:`__init__` " -"methods don't need to be called, since the derived dataclass will take care " -"of initializing all fields of any base class that is a dataclass itself." +"Note, however, that in general the dataclass-generated :meth:`~object." +"__init__` methods don't need to be called, since the derived dataclass will " +"take care of initializing all fields of any base class that is a dataclass " +"itself." msgstr "" "Sin embargo, tenga en cuenta que, en general, no es necesario llamar a los " "métodos :meth:`__init__` generados por la clase de datos, ya que la clase de " "datos derivada se encargará de inicializar todos los campos de cualquier " "clase base que sea una clase de datos en sí." -#: ../Doc/library/dataclasses.rst:547 +#: ../Doc/library/dataclasses.rst:555 msgid "" "See the section below on init-only variables for ways to pass parameters to :" "meth:`__post_init__`. Also see the warning about how :func:`replace` " @@ -904,14 +956,15 @@ msgstr "" "`__post_init__`. También vea la advertencia sobre cómo :func:`replace` " "maneja los campos ``init = False``." -#: ../Doc/library/dataclasses.rst:552 +#: ../Doc/library/dataclasses.rst:560 msgid "Class variables" msgstr "Variables de clase" -#: ../Doc/library/dataclasses.rst:554 +#: ../Doc/library/dataclasses.rst:562 +#, fuzzy msgid "" -"One of two places where :func:`dataclass` actually inspects the type of a " -"field is to determine if a field is a class variable as defined in :pep:" +"One of the few places where :func:`dataclass` actually inspects the type of " +"a field is to determine if a field is a class variable as defined in :pep:" "`526`. It does this by checking if the type of the field is ``typing." "ClassVar``. If a field is a ``ClassVar``, it is excluded from consideration " "as a field and is ignored by the dataclass mechanisms. Such ``ClassVar`` " @@ -925,20 +978,21 @@ msgstr "" "pseudocampos ``ClassVar`` no son retornados por la función del módulo :func:" "`fields`." -#: ../Doc/library/dataclasses.rst:563 +#: ../Doc/library/dataclasses.rst:571 msgid "Init-only variables" msgstr "Variable de solo inicialización" -#: ../Doc/library/dataclasses.rst:565 +#: ../Doc/library/dataclasses.rst:573 +#, fuzzy msgid "" -"The other place where :func:`dataclass` inspects a type annotation is to " +"Another place where :func:`dataclass` inspects a type annotation is to " "determine if a field is an init-only variable. It does this by seeing if " "the type of a field is of type ``dataclasses.InitVar``. If a field is an " "``InitVar``, it is considered a pseudo-field called an init-only field. As " "it is not a true field, it is not returned by the module-level :func:" "`fields` function. Init-only fields are added as parameters to the " -"generated :meth:`__init__` method, and are passed to the optional :meth:" -"`__post_init__` method. They are not otherwise used by dataclasses." +"generated :meth:`~object.__init__` method, and are passed to the optional :" +"meth:`__post_init__` method. They are not otherwise used by dataclasses." msgstr "" "El otro caso donde :func:`dataclass` inspecciona una anotación de tipo es " "para determinar si un campo es una variable de solo inicialización. Lo hace " @@ -950,7 +1004,7 @@ msgstr "" "método opcional :meth:`__post_init__`. No son utilizados de otra manera por " "las clases de datos." -#: ../Doc/library/dataclasses.rst:575 +#: ../Doc/library/dataclasses.rst:583 msgid "" "For example, suppose a field will be initialized from a database, if a value " "is not provided when creating the class::" @@ -958,7 +1012,7 @@ msgstr "" "Por ejemplo, supongamos que se va a inicializar un campo desde una base de " "datos, de no proporcionarse un valor al crear la clase::" -#: ../Doc/library/dataclasses.rst:590 +#: ../Doc/library/dataclasses.rst:598 msgid "" "In this case, :func:`fields` will return :class:`Field` objects for ``i`` " "and ``j``, but not for ``database``." @@ -966,17 +1020,18 @@ msgstr "" "En este caso, :func:`fields` retornará objetos :class:`Field` para ``i`` y " "``j``, pero no para ``database``." -#: ../Doc/library/dataclasses.rst:594 +#: ../Doc/library/dataclasses.rst:602 msgid "Frozen instances" msgstr "Instancias congeladas" -#: ../Doc/library/dataclasses.rst:596 +#: ../Doc/library/dataclasses.rst:604 +#, fuzzy msgid "" "It is not possible to create truly immutable Python objects. However, by " "passing ``frozen=True`` to the :meth:`dataclass` decorator you can emulate " -"immutability. In that case, dataclasses will add :meth:`__setattr__` and :" -"meth:`__delattr__` methods to the class. These methods will raise a :exc:" -"`FrozenInstanceError` when invoked." +"immutability. In that case, dataclasses will add :meth:`~object." +"__setattr__` and :meth:`~object.__delattr__` methods to the class. These " +"methods will raise a :exc:`FrozenInstanceError` when invoked." msgstr "" "No es posible crear objetos verdaderamente inmutables en Python. Sin " "embargo, se puede emular la inmutabilidad pasando ``frozen=True`` al " @@ -984,21 +1039,22 @@ msgstr "" "métodos :meth:`__setattr__` y :meth:`__delattr__` a la clase. Estos métodos " "lanzarán una excepción :exc:`FrozenInstanceError` cuando sean llamados." -#: ../Doc/library/dataclasses.rst:602 +#: ../Doc/library/dataclasses.rst:610 +#, fuzzy msgid "" "There is a tiny performance penalty when using ``frozen=True``: :meth:" -"`__init__` cannot use simple assignment to initialize fields, and must use :" -"meth:`object.__setattr__`." +"`~object.__init__` cannot use simple assignment to initialize fields, and " +"must use :meth:`!object.__setattr__`." msgstr "" "Hay una pequeña penalización de rendimiento cuando se usa ``frozen=True``, " "esto se debe a que :meth:`__init__` no puede usar una asignación simple para " "inicializar campos, viéndose obligado a usar :meth:`object.__setattr__`." -#: ../Doc/library/dataclasses.rst:607 +#: ../Doc/library/dataclasses.rst:615 msgid "Inheritance" msgstr "Herencia" -#: ../Doc/library/dataclasses.rst:609 +#: ../Doc/library/dataclasses.rst:617 msgid "" "When the dataclass is being created by the :meth:`dataclass` decorator, it " "looks through all of the class's base classes in reverse MRO (that is, " @@ -1018,7 +1074,7 @@ msgstr "" "combinando los campos. Como los campos están en orden de inserción, las " "clases derivadas anulan las clases base. Un ejemplo::" -#: ../Doc/library/dataclasses.rst:629 +#: ../Doc/library/dataclasses.rst:637 msgid "" "The final list of fields is, in order, ``x``, ``y``, ``z``. The final type " "of ``x`` is ``int``, as specified in class ``C``." @@ -1026,19 +1082,23 @@ msgstr "" "La lista final de campos es, en orden, ``x``, ``y``, ``z``. El tipo final de " "``x`` es ``int``, como se especifica en la clase ``C``." -#: ../Doc/library/dataclasses.rst:632 -msgid "The generated :meth:`__init__` method for ``C`` will look like::" +#: ../Doc/library/dataclasses.rst:640 +#, fuzzy +msgid "" +"The generated :meth:`~object.__init__` method for ``C`` will look like::" msgstr "El método :meth:`__init__` generado para ``C`` se verá como::" -#: ../Doc/library/dataclasses.rst:637 -msgid "Re-ordering of keyword-only parameters in :meth:`__init__`" +#: ../Doc/library/dataclasses.rst:645 +#, fuzzy +msgid "Re-ordering of keyword-only parameters in :meth:`~object.__init__`" msgstr "Reordenar los parámetros de solo palabras clave en :meth:`__init__`" -#: ../Doc/library/dataclasses.rst:639 +#: ../Doc/library/dataclasses.rst:647 +#, fuzzy msgid "" -"After the parameters needed for :meth:`__init__` are computed, any keyword-" -"only parameters are moved to come after all regular (non-keyword-only) " -"parameters. This is a requirement of how keyword-only parameters are " +"After the parameters needed for :meth:`~object.__init__` are computed, any " +"keyword-only parameters are moved to come after all regular (non-keyword-" +"only) parameters. This is a requirement of how keyword-only parameters are " "implemented in Python: they must come after non-keyword-only parameters." msgstr "" "Una vez que se calculan los parámetros necesarios para :meth:`__init__`, " @@ -1047,7 +1107,7 @@ msgstr "" "cómo se implementan los parámetros de solo palabras clave en Python: deben " "ir después de los parámetros que no son solo de palabras clave." -#: ../Doc/library/dataclasses.rst:645 +#: ../Doc/library/dataclasses.rst:653 msgid "" "In this example, ``Base.y``, ``Base.w``, and ``D.t`` are keyword-only " "fields, and ``Base.x`` and ``D.z`` are regular fields::" @@ -1055,11 +1115,13 @@ msgstr "" "En este ejemplo, ``Base.y``, ``Base.w`` y ``D.t`` son campos de solo " "palabras clave, y ``Base.x`` y ``D.z`` son campos regulares:" -#: ../Doc/library/dataclasses.rst:660 -msgid "The generated :meth:`__init__` method for ``D`` will look like::" +#: ../Doc/library/dataclasses.rst:668 +#, fuzzy +msgid "" +"The generated :meth:`~object.__init__` method for ``D`` will look like::" msgstr "El método :meth:`__init__` generado para ``C`` se verá como::" -#: ../Doc/library/dataclasses.rst:664 +#: ../Doc/library/dataclasses.rst:672 msgid "" "Note that the parameters have been re-ordered from how they appear in the " "list of fields: parameters derived from regular fields are followed by " @@ -1070,19 +1132,20 @@ msgstr "" "regulares son seguidos por los parámetros derivados de los campos de solo " "palabras clave." -#: ../Doc/library/dataclasses.rst:668 +#: ../Doc/library/dataclasses.rst:676 +#, fuzzy msgid "" "The relative ordering of keyword-only parameters is maintained in the re-" -"ordered :meth:`__init__` parameter list." +"ordered :meth:`~object.__init__` parameter list." msgstr "" "El orden relativo de los parámetros de solo palabras clave se mantiene en la " "lista de parámetros :meth:`__init__` reordenada." -#: ../Doc/library/dataclasses.rst:673 +#: ../Doc/library/dataclasses.rst:681 msgid "Default factory functions" msgstr "Funciones fábrica por defecto" -#: ../Doc/library/dataclasses.rst:675 +#: ../Doc/library/dataclasses.rst:683 msgid "" "If a :func:`field` specifies a ``default_factory``, it is called with zero " "arguments when a default value for the field is needed. For example, to " @@ -1092,12 +1155,14 @@ msgstr "" "argumentos cuando se necesita un valor predeterminado para el campo. Por " "ejemplo, para crear una nueva instancia de una lista, debe usarse::" -#: ../Doc/library/dataclasses.rst:681 +#: ../Doc/library/dataclasses.rst:689 +#, fuzzy msgid "" -"If a field is excluded from :meth:`__init__` (using ``init=False``) and the " -"field also specifies ``default_factory``, then the default factory function " -"will always be called from the generated :meth:`__init__` function. This " -"happens because there is no other way to give the field an initial value." +"If a field is excluded from :meth:`~object.__init__` (using ``init=False``) " +"and the field also specifies ``default_factory``, then the default factory " +"function will always be called from the generated :meth:`~object.__init__` " +"function. This happens because there is no other way to give the field an " +"initial value." msgstr "" "Si un campo está excluido de :meth:`__init__` (usando ``init = False``) y el " "campo también especifica ``default_factory``, entonces la función de fábrica " @@ -1105,11 +1170,11 @@ msgstr "" "`__init__`. Esto sucede porque no existe otra forma de darle al campo un " "valor inicial." -#: ../Doc/library/dataclasses.rst:688 +#: ../Doc/library/dataclasses.rst:696 msgid "Mutable default values" msgstr "Valores por defecto mutables" -#: ../Doc/library/dataclasses.rst:690 +#: ../Doc/library/dataclasses.rst:698 msgid "" "Python stores default member variable values in class attributes. Consider " "this example, not using dataclasses::" @@ -1117,7 +1182,7 @@ msgstr "" "Python almacena los valores miembros por defecto en atributos de clase. " "Considera este ejemplo, sin usar clases de datos::" -#: ../Doc/library/dataclasses.rst:705 +#: ../Doc/library/dataclasses.rst:713 msgid "" "Note that the two instances of class ``C`` share the same class variable " "``x``, as expected." @@ -1125,15 +1190,15 @@ msgstr "" "Tenga en cuenta que, tal como cabe esperar, las dos instancias de la clase " "``C`` comparten la misma variable de clase ``x``." -#: ../Doc/library/dataclasses.rst:708 +#: ../Doc/library/dataclasses.rst:716 msgid "Using dataclasses, *if* this code was valid::" msgstr "Usando clases de datos, *si* este código fuera válido:" -#: ../Doc/library/dataclasses.rst:716 +#: ../Doc/library/dataclasses.rst:724 msgid "it would generate code similar to::" msgstr "generaría un código similar a::" -#: ../Doc/library/dataclasses.rst:727 +#: ../Doc/library/dataclasses.rst:735 #, fuzzy msgid "" "This has the same issue as the original example using class ``C``. That is, " @@ -1142,7 +1207,7 @@ msgid "" "dataclasses just use normal Python class creation they also share this " "behavior. There is no general way for Data Classes to detect this " "condition. Instead, the :func:`dataclass` decorator will raise a :exc:" -"`TypeError` if it detects an unhashable default parameter. The assumption " +"`ValueError` if it detects an unhashable default parameter. The assumption " "is that if a value is unhashable, it is mutable. This is a partial " "solution, but it does protect against many common errors." msgstr "" @@ -1156,7 +1221,7 @@ msgstr "" "predeterminado de tipo ``list``, ``dict`` o ``set``. Esta es una solución " "parcial, pero protege contra muchos errores comunes." -#: ../Doc/library/dataclasses.rst:738 +#: ../Doc/library/dataclasses.rst:746 msgid "" "Using default factory functions is a way to create new instances of mutable " "types as default values for fields::" @@ -1165,7 +1230,7 @@ msgstr "" "instancias de tipos mutables como valores por defecto para campos::" # Creo que no es la mejor traducción pero no se me ocurre otra. -#: ../Doc/library/dataclasses.rst:747 +#: ../Doc/library/dataclasses.rst:755 #, fuzzy msgid "" "Instead of looking for and disallowing objects of type ``list``, ``dict``, " @@ -1176,11 +1241,11 @@ msgstr "" "``set``, ahora no se permiten objetos sin un hash como valores por defecto. " "La Incalculabilidad se utiliza para aproximar la mutabilidad." -#: ../Doc/library/dataclasses.rst:754 +#: ../Doc/library/dataclasses.rst:762 msgid "Descriptor-typed fields" msgstr "Campos tipo descriptor" -#: ../Doc/library/dataclasses.rst:756 +#: ../Doc/library/dataclasses.rst:764 msgid "" "Fields that are assigned :ref:`descriptor objects ` as their " "default value have the following special behaviors:" @@ -1188,7 +1253,7 @@ msgstr "" "Los campos a los que se asigna :ref:`objetos descriptor ` como " "valor por defecto tienen los siguientes comportamientos especiales:" -#: ../Doc/library/dataclasses.rst:759 +#: ../Doc/library/dataclasses.rst:767 msgid "" "The value for the field passed to the dataclass's ``__init__`` method is " "passed to the descriptor's ``__set__`` method rather than overwriting the " @@ -1198,7 +1263,7 @@ msgstr "" "pasa al método ``__set__`` del descriptor en lugar de sobrescribir el objeto " "descriptor." -#: ../Doc/library/dataclasses.rst:762 +#: ../Doc/library/dataclasses.rst:770 msgid "" "Similarly, when getting or setting the field, the descriptor's ``__get__`` " "or ``__set__`` method is called rather than returning or overwriting the " @@ -1208,7 +1273,7 @@ msgstr "" "``__get__`` o ``__set__`` del descriptor en lugar de retornar o sobrescribir " "el objeto descriptor." -#: ../Doc/library/dataclasses.rst:765 +#: ../Doc/library/dataclasses.rst:773 msgid "" "To determine whether a field contains a default value, ``dataclasses`` will " "call the descriptor's ``__get__`` method using its class access form (i.e. " @@ -1225,7 +1290,7 @@ msgstr "" "`AttributeError` en esta situación, no se proporcionará ningún valor por " "defecto para el campo." -#: ../Doc/library/dataclasses.rst:800 +#: ../Doc/library/dataclasses.rst:808 msgid "" "Note that if a field is annotated with a descriptor type, but is not " "assigned a descriptor object as its default value, the field will act like a " diff --git a/library/datetime.po b/library/datetime.po index 7bb2d346fa..6fc4b6411a 100644 --- a/library/datetime.po +++ b/library/datetime.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-07 16:13+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es_ES\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/datetime.rst:2 msgid ":mod:`datetime` --- Basic date and time types" @@ -44,46 +44,60 @@ msgstr "" "horas, su principal objetivo es poder extraer campos de forma eficiente para " "su posterior manipulación o formateo." -#: ../Doc/library/datetime.rst:25 +#: ../Doc/library/datetime.rst:24 +msgid "Skip to :ref:`the format codes `." +msgstr "" + +#: ../Doc/library/datetime.rst:29 msgid "Module :mod:`calendar`" msgstr "Módulo :mod:`calendar`" -#: ../Doc/library/datetime.rst:25 +#: ../Doc/library/datetime.rst:29 msgid "General calendar related functions." msgstr "Funciones generales relacionadas a *calendar*." -#: ../Doc/library/datetime.rst:28 +#: ../Doc/library/datetime.rst:32 msgid "Module :mod:`time`" msgstr "Módulo :mod:`time`" -#: ../Doc/library/datetime.rst:28 +#: ../Doc/library/datetime.rst:32 msgid "Time access and conversions." msgstr "Acceso a tiempo y conversiones." -#: ../Doc/library/datetime.rst:31 +#: ../Doc/library/datetime.rst:35 msgid "Module :mod:`zoneinfo`" msgstr "Módulo :mod:`zoneinfo`" -#: ../Doc/library/datetime.rst:31 +#: ../Doc/library/datetime.rst:35 msgid "Concrete time zones representing the IANA time zone database." msgstr "" "Zonas horarias concretas que representan la base de datos de zonas horarias " "de la IANA." -#: ../Doc/library/datetime.rst:33 +#: ../Doc/library/datetime.rst:38 msgid "Package `dateutil `_" msgstr "Paquete `dateutil `_" -#: ../Doc/library/datetime.rst:34 +#: ../Doc/library/datetime.rst:38 msgid "Third-party library with expanded time zone and parsing support." msgstr "" "Biblioteca de terceros con zona horaria ampliada y soporte de análisis." -#: ../Doc/library/datetime.rst:39 +#: ../Doc/library/datetime.rst:41 +msgid "Package `DateType `_" +msgstr "" + +#: ../Doc/library/datetime.rst:41 +msgid "" +"Third-party library that introduces distinct static types to e.g. allow " +"static type checkers to differentiate between naive and aware datetimes." +msgstr "" + +#: ../Doc/library/datetime.rst:47 msgid "Aware and Naive Objects" msgstr "Objetos conscientes (*aware*) y naífs (*naive*)" -#: ../Doc/library/datetime.rst:41 +#: ../Doc/library/datetime.rst:49 msgid "" "Date and time objects may be categorized as \"aware\" or \"naive\" depending " "on whether or not they include timezone information." @@ -91,7 +105,7 @@ msgstr "" "Los objetos de fecha y hora pueden clasificarse como conscientes (*aware*) o " "naífs (*naive*) dependiendo de si incluyen o no información de zona horaria." -#: ../Doc/library/datetime.rst:44 +#: ../Doc/library/datetime.rst:52 msgid "" "With sufficient knowledge of applicable algorithmic and political time " "adjustments, such as time zone and daylight saving time information, an " @@ -105,7 +119,7 @@ msgstr "" "objetos conscientes. Un objeto consciente representa un momento específico " "en el tiempo que no está abierto a interpretación. [#]_" -#: ../Doc/library/datetime.rst:50 +#: ../Doc/library/datetime.rst:58 msgid "" "A **naive** object does not contain enough information to unambiguously " "locate itself relative to other date/time objects. Whether a naive object " @@ -123,7 +137,7 @@ msgstr "" "millas o masa. Los objetos ingenuos son fáciles de entender y trabajar con " "ellos, a costa de ignorar algunos aspectos de la realidad." -#: ../Doc/library/datetime.rst:57 +#: ../Doc/library/datetime.rst:65 msgid "" "For applications requiring aware objects, :class:`.datetime` and :class:`." "time` objects have an optional time zone information attribute, :attr:`!" @@ -139,7 +153,7 @@ msgstr "" "`tzinfo` capturan información sobre el desplazamiento de la hora UTC, el " "nombre de la zona horaria y si el horario de verano está en vigor." -#: ../Doc/library/datetime.rst:63 +#: ../Doc/library/datetime.rst:71 msgid "" "Only one concrete :class:`tzinfo` class, the :class:`timezone` class, is " "supplied by the :mod:`datetime` module. The :class:`timezone` class can " @@ -158,15 +172,15 @@ msgstr "" "políticas que racionales, cambian con frecuencia y no existe un estándar " "adecuado para cada aplicación, aparte de UTC." -#: ../Doc/library/datetime.rst:72 +#: ../Doc/library/datetime.rst:80 msgid "Constants" msgstr "Constantes" -#: ../Doc/library/datetime.rst:74 +#: ../Doc/library/datetime.rst:82 msgid "The :mod:`datetime` module exports the following constants:" msgstr "El módulo :mod:`datetime` exporta las siguientes constantes:" -#: ../Doc/library/datetime.rst:78 +#: ../Doc/library/datetime.rst:86 msgid "" "The smallest year number allowed in a :class:`date` or :class:`.datetime` " "object. :const:`MINYEAR` is ``1``." @@ -174,7 +188,7 @@ msgstr "" "El número de año más pequeño permitido en un objeto :class:`date` o :class:`." "datetime`. :const:`MINYEAR` es ``1``." -#: ../Doc/library/datetime.rst:84 +#: ../Doc/library/datetime.rst:92 msgid "" "The largest year number allowed in a :class:`date` or :class:`.datetime` " "object. :const:`MAXYEAR` is ``9999``." @@ -182,16 +196,16 @@ msgstr "" "El número de año más grande permitido en un objeto :class:`date` o en :class:" "`.datetime`:const:`MAXYEAR` es ``9999``." -#: ../Doc/library/datetime.rst:89 +#: ../Doc/library/datetime.rst:97 msgid "Alias for the UTC timezone singleton :attr:`datetime.timezone.utc`." msgstr "" "Alias ​​para el singleton de zona horaria UTC :attr:`datetime.timezone.utc`." -#: ../Doc/library/datetime.rst:94 +#: ../Doc/library/datetime.rst:102 msgid "Available Types" msgstr "Tipos disponibles" -#: ../Doc/library/datetime.rst:99 +#: ../Doc/library/datetime.rst:107 msgid "" "An idealized naive date, assuming the current Gregorian calendar always was, " "and always will be, in effect. Attributes: :attr:`year`, :attr:`month`, and :" @@ -201,7 +215,7 @@ msgstr "" "actual siempre estuvo, y siempre estará, vigente. Atributos: :attr:`year`, :" "attr:`month`, y :attr:`day`." -#: ../Doc/library/datetime.rst:107 +#: ../Doc/library/datetime.rst:115 msgid "" "An idealized time, independent of any particular day, assuming that every " "day has exactly 24\\*60\\*60 seconds. (There is no notion of \"leap " @@ -213,7 +227,7 @@ msgstr "" "hay noción de \"segundos intercalares\".) Atributos: :attr:`hour`, :attr:" "`minute`, :attr:`second`, :attr:`microsecond`, y :attr:`.tzinfo`." -#: ../Doc/library/datetime.rst:116 +#: ../Doc/library/datetime.rst:124 msgid "" "A combination of a date and a time. Attributes: :attr:`year`, :attr:" "`month`, :attr:`day`, :attr:`hour`, :attr:`minute`, :attr:`second`, :attr:" @@ -223,7 +237,7 @@ msgstr "" "`month`, :attr:`day`, :attr:`hour`, :attr:`minute`, :attr:`second`, :attr:" "`microsecond` , y :attr:`.tzinfo`." -#: ../Doc/library/datetime.rst:124 +#: ../Doc/library/datetime.rst:132 msgid "" "A duration expressing the difference between two :class:`date`, :class:`." "time`, or :class:`.datetime` instances to microsecond resolution." @@ -231,7 +245,7 @@ msgstr "" "Una duración que expresa la diferencia entre dos instancias :class:`date`, :" "class:`.time` o :class:`.datetime` a una resolución de microsegundos." -#: ../Doc/library/datetime.rst:131 +#: ../Doc/library/datetime.rst:139 msgid "" "An abstract base class for time zone information objects. These are used by " "the :class:`.datetime` and :class:`.time` classes to provide a customizable " @@ -243,7 +257,7 @@ msgstr "" "proporcionar una noción personalizable de ajuste de hora (por ejemplo, para " "tener en cuenta la zona horaria y / o el horario de verano)." -#: ../Doc/library/datetime.rst:139 +#: ../Doc/library/datetime.rst:147 msgid "" "A class that implements the :class:`tzinfo` abstract base class as a fixed " "offset from the UTC." @@ -251,19 +265,19 @@ msgstr "" "Una clase que implementa la clase de base abstracta :class:`tzinfo` como un " "desplazamiento fijo desde el UTC." -#: ../Doc/library/datetime.rst:144 ../Doc/library/datetime.rst:162 +#: ../Doc/library/datetime.rst:152 ../Doc/library/datetime.rst:170 msgid "Objects of these types are immutable." msgstr "Los objetos de este tipo son inmutables." -#: ../Doc/library/datetime.rst:146 +#: ../Doc/library/datetime.rst:154 msgid "Subclass relationships::" msgstr "Relaciones de subclase::" -#: ../Doc/library/datetime.rst:157 +#: ../Doc/library/datetime.rst:165 msgid "Common Properties" msgstr "Propiedades comunes" -#: ../Doc/library/datetime.rst:159 +#: ../Doc/library/datetime.rst:167 msgid "" "The :class:`date`, :class:`.datetime`, :class:`.time`, and :class:`timezone` " "types share these common features:" @@ -271,15 +285,16 @@ msgstr "" "Las clases :class:`date`, :class:`.datetime`, :class:`.time`, y :class:" "`timezone` comparten estas características comunes:" -#: ../Doc/library/datetime.rst:163 +#: ../Doc/library/datetime.rst:171 +#, fuzzy msgid "" -"Objects of these types are hashable, meaning that they can be used as " -"dictionary keys." +"Objects of these types are :term:`hashable`, meaning that they can be used " +"as dictionary keys." msgstr "" "Los objetos de este tipo son *hashable*, lo que significa que pueden usarse " "como claves de diccionario." -#: ../Doc/library/datetime.rst:165 +#: ../Doc/library/datetime.rst:173 msgid "" "Objects of these types support efficient pickling via the :mod:`pickle` " "module." @@ -287,58 +302,58 @@ msgstr "" "Los objetos de este tipo admiten el *pickling* eficiente a través del " "módulo :mod:`pickle`." -#: ../Doc/library/datetime.rst:168 +#: ../Doc/library/datetime.rst:176 msgid "Determining if an Object is Aware or Naive" msgstr "Determinando si un objeto es Consciente (*Aware*) o Naíf (*Naive*)" -#: ../Doc/library/datetime.rst:170 +#: ../Doc/library/datetime.rst:178 msgid "Objects of the :class:`date` type are always naive." msgstr "Los objetos del tipo :class:`date` son siempre naíf (*naive*)." -#: ../Doc/library/datetime.rst:172 +#: ../Doc/library/datetime.rst:180 msgid "" "An object of type :class:`.time` or :class:`.datetime` may be aware or naive." msgstr "" "Un objeto de tipo :class:`.time` o :class:`.datetime` puede ser consciente " "(*aware*) o naíf (*naive*)." -#: ../Doc/library/datetime.rst:174 +#: ../Doc/library/datetime.rst:182 msgid "A :class:`.datetime` object *d* is aware if both of the following hold:" msgstr "" "Un objeto :class:`.datetime` *d* es consciente si se cumplen los dos " "siguientes:" -#: ../Doc/library/datetime.rst:176 +#: ../Doc/library/datetime.rst:184 msgid "``d.tzinfo`` is not ``None``" msgstr "``d.tzinfo`` no es ``None``" -#: ../Doc/library/datetime.rst:177 +#: ../Doc/library/datetime.rst:185 msgid "``d.tzinfo.utcoffset(d)`` does not return ``None``" msgstr "``d.tzinfo.utcoffset(d)`` no retorna ``None``" -#: ../Doc/library/datetime.rst:179 +#: ../Doc/library/datetime.rst:187 msgid "Otherwise, *d* is naive." msgstr "De lo contrario, *d* es naíf (*naive*)." -#: ../Doc/library/datetime.rst:181 +#: ../Doc/library/datetime.rst:189 msgid "A :class:`.time` object *t* is aware if both of the following hold:" msgstr "" "A :class:`.time` object *t* es consciente si ambos de los siguientes se " "mantienen:" -#: ../Doc/library/datetime.rst:183 +#: ../Doc/library/datetime.rst:191 msgid "``t.tzinfo`` is not ``None``" msgstr "``t.tzinfo`` no es ``None``" -#: ../Doc/library/datetime.rst:184 +#: ../Doc/library/datetime.rst:192 msgid "``t.tzinfo.utcoffset(None)`` does not return ``None``." msgstr "``t.tzinfo.utcoffset(None)`` no retorna ``None``." -#: ../Doc/library/datetime.rst:186 +#: ../Doc/library/datetime.rst:194 msgid "Otherwise, *t* is naive." msgstr "De lo contrario, *t* es naíf (*naive*)." -#: ../Doc/library/datetime.rst:188 +#: ../Doc/library/datetime.rst:196 msgid "" "The distinction between aware and naive doesn't apply to :class:`timedelta` " "objects." @@ -346,11 +361,11 @@ msgstr "" "La distinción entre los objetos consciente (*aware*) y naíf (*naive*) no se " "aplica a :class:`timedelta`." -#: ../Doc/library/datetime.rst:194 +#: ../Doc/library/datetime.rst:202 msgid ":class:`timedelta` Objects" msgstr "Objetos :class:`timedelta`" -#: ../Doc/library/datetime.rst:196 +#: ../Doc/library/datetime.rst:204 msgid "" "A :class:`timedelta` object represents a duration, the difference between " "two dates or times." @@ -358,7 +373,7 @@ msgstr "" "El objeto :class:`timedelta` representa una duración, la diferencia entre " "dos fechas u horas." -#: ../Doc/library/datetime.rst:201 +#: ../Doc/library/datetime.rst:209 msgid "" "All arguments are optional and default to ``0``. Arguments may be integers " "or floats, and may be positive or negative." @@ -367,7 +382,7 @@ msgstr "" "argumentos pueden ser enteros o flotantes, y pueden ser positivos o " "negativos." -#: ../Doc/library/datetime.rst:204 +#: ../Doc/library/datetime.rst:212 msgid "" "Only *days*, *seconds* and *microseconds* are stored internally. Arguments " "are converted to those units:" @@ -375,23 +390,23 @@ msgstr "" "Solo *days*, *seconds* y *microseconds* se almacenan internamente. Los " "argumentos se convierten a esas unidades:" -#: ../Doc/library/datetime.rst:207 +#: ../Doc/library/datetime.rst:215 msgid "A millisecond is converted to 1000 microseconds." msgstr "Un milisegundo se convierte a 1000 microsegundos." -#: ../Doc/library/datetime.rst:208 +#: ../Doc/library/datetime.rst:216 msgid "A minute is converted to 60 seconds." msgstr "Un minuto se convierte a 60 segundos." -#: ../Doc/library/datetime.rst:209 +#: ../Doc/library/datetime.rst:217 msgid "An hour is converted to 3600 seconds." msgstr "Una hora se convierte a 3600 segundos." -#: ../Doc/library/datetime.rst:210 +#: ../Doc/library/datetime.rst:218 msgid "A week is converted to 7 days." msgstr "Una semana se convierte a 7 días." -#: ../Doc/library/datetime.rst:212 +#: ../Doc/library/datetime.rst:220 msgid "" "and days, seconds and microseconds are then normalized so that the " "representation is unique, with" @@ -399,19 +414,19 @@ msgstr "" "y los días, segundos y microsegundos se normalizan para que la " "representación sea única, con" -#: ../Doc/library/datetime.rst:215 +#: ../Doc/library/datetime.rst:223 msgid "``0 <= microseconds < 1000000``" msgstr "``0 <= microsegundos < 1000000``" -#: ../Doc/library/datetime.rst:216 +#: ../Doc/library/datetime.rst:224 msgid "``0 <= seconds < 3600*24`` (the number of seconds in one day)" msgstr "``0 <= segundos< 3600*24`` (el número de segundos en un día)" -#: ../Doc/library/datetime.rst:217 +#: ../Doc/library/datetime.rst:225 msgid "``-999999999 <= days <= 999999999``" msgstr "``-999999999 <= days <= 999999999``" -#: ../Doc/library/datetime.rst:219 +#: ../Doc/library/datetime.rst:227 msgid "" "The following example illustrates how any arguments besides *days*, " "*seconds* and *microseconds* are \"merged\" and normalized into those three " @@ -421,7 +436,7 @@ msgstr "" "*seconds* y *microseconds* se \"fusionan\" y normalizan en esos tres " "atributos resultantes::" -#: ../Doc/library/datetime.rst:237 +#: ../Doc/library/datetime.rst:245 msgid "" "If any argument is a float and there are fractional microseconds, the " "fractional microseconds left over from all arguments are combined and their " @@ -435,7 +450,7 @@ msgstr "" "medio redondeo a par. Si ningún argumento es flotante, los procesos de " "conversión y normalización son exactos (no se pierde información)." -#: ../Doc/library/datetime.rst:244 +#: ../Doc/library/datetime.rst:252 msgid "" "If the normalized value of days lies outside the indicated range, :exc:" "`OverflowError` is raised." @@ -443,7 +458,7 @@ msgstr "" "Si el valor normalizado de los días se encuentra fuera del rango indicado, " "se lanza :exc:`OverflowError`." -#: ../Doc/library/datetime.rst:247 +#: ../Doc/library/datetime.rst:255 msgid "" "Note that normalization of negative values may be surprising at first. For " "example::" @@ -451,18 +466,18 @@ msgstr "" "Tenga en cuenta que la normalización de los valores negativos puede ser " "sorprendente al principio. Por ejemplo::" -#: ../Doc/library/datetime.rst:256 ../Doc/library/datetime.rst:552 -#: ../Doc/library/datetime.rst:1059 ../Doc/library/datetime.rst:1677 -#: ../Doc/library/datetime.rst:2281 +#: ../Doc/library/datetime.rst:264 ../Doc/library/datetime.rst:560 +#: ../Doc/library/datetime.rst:1073 ../Doc/library/datetime.rst:1692 +#: ../Doc/library/datetime.rst:2294 msgid "Class attributes:" msgstr "Atributos de clase:" -#: ../Doc/library/datetime.rst:260 +#: ../Doc/library/datetime.rst:268 msgid "The most negative :class:`timedelta` object, ``timedelta(-999999999)``." msgstr "" "El objeto más negativo en :class:`timedelta`, ``timedelta(-999999999)``." -#: ../Doc/library/datetime.rst:265 +#: ../Doc/library/datetime.rst:273 msgid "" "The most positive :class:`timedelta` object, ``timedelta(days=999999999, " "hours=23, minutes=59, seconds=59, microseconds=999999)``." @@ -470,7 +485,7 @@ msgstr "" "El objeto más positivo de la :class:`timedelta`, ``timedelta(days=999999999, " "hours=23, minutes=59, seconds=59, microseconds=999999)``." -#: ../Doc/library/datetime.rst:271 +#: ../Doc/library/datetime.rst:279 msgid "" "The smallest possible difference between non-equal :class:`timedelta` " "objects, ``timedelta(microseconds=1)``." @@ -478,7 +493,7 @@ msgstr "" "La diferencia más pequeña posible entre los objetos no iguales :class:" "`timedelta` ``timedelta(microseconds=1)``." -#: ../Doc/library/datetime.rst:274 +#: ../Doc/library/datetime.rst:282 msgid "" "Note that, because of normalization, ``timedelta.max`` > ``-timedelta.min``. " "``-timedelta.max`` is not representable as a :class:`timedelta` object." @@ -487,63 +502,63 @@ msgstr "" "timedelta.min``. ``-timedelta.max`` no es representable como un objeto :" "class:`timedelta`." -#: ../Doc/library/datetime.rst:277 ../Doc/library/datetime.rst:570 -#: ../Doc/library/datetime.rst:1079 ../Doc/library/datetime.rst:1697 +#: ../Doc/library/datetime.rst:285 ../Doc/library/datetime.rst:578 +#: ../Doc/library/datetime.rst:1093 ../Doc/library/datetime.rst:1712 msgid "Instance attributes (read-only):" msgstr "Atributos de instancia (solo lectura):" -#: ../Doc/library/datetime.rst:280 +#: ../Doc/library/datetime.rst:288 msgid "Attribute" msgstr "Atributo" -#: ../Doc/library/datetime.rst:280 +#: ../Doc/library/datetime.rst:288 msgid "Value" msgstr "Valor" -#: ../Doc/library/datetime.rst:282 +#: ../Doc/library/datetime.rst:290 msgid "``days``" msgstr "``days``" -#: ../Doc/library/datetime.rst:282 +#: ../Doc/library/datetime.rst:290 msgid "Between -999999999 and 999999999 inclusive" msgstr "Entre -999999999 y 999999999 inclusive" -#: ../Doc/library/datetime.rst:284 +#: ../Doc/library/datetime.rst:292 msgid "``seconds``" msgstr "``seconds``" -#: ../Doc/library/datetime.rst:284 +#: ../Doc/library/datetime.rst:292 msgid "Between 0 and 86399 inclusive" msgstr "Entre 0 y 86399 inclusive" -#: ../Doc/library/datetime.rst:286 +#: ../Doc/library/datetime.rst:294 msgid "``microseconds``" msgstr "``microseconds``" -#: ../Doc/library/datetime.rst:286 +#: ../Doc/library/datetime.rst:294 msgid "Between 0 and 999999 inclusive" msgstr "Entre 0 y 999999 inclusive" -#: ../Doc/library/datetime.rst:289 ../Doc/library/datetime.rst:587 -#: ../Doc/library/datetime.rst:1132 +#: ../Doc/library/datetime.rst:297 ../Doc/library/datetime.rst:595 +#: ../Doc/library/datetime.rst:1146 msgid "Supported operations:" msgstr "Operaciones soportadas:" -#: ../Doc/library/datetime.rst:294 ../Doc/library/datetime.rst:590 -#: ../Doc/library/datetime.rst:1135 +#: ../Doc/library/datetime.rst:302 ../Doc/library/datetime.rst:598 +#: ../Doc/library/datetime.rst:1149 msgid "Operation" msgstr "Operación" -#: ../Doc/library/datetime.rst:294 ../Doc/library/datetime.rst:590 -#: ../Doc/library/datetime.rst:1135 +#: ../Doc/library/datetime.rst:302 ../Doc/library/datetime.rst:598 +#: ../Doc/library/datetime.rst:1149 msgid "Result" msgstr "Resultado" -#: ../Doc/library/datetime.rst:296 +#: ../Doc/library/datetime.rst:304 msgid "``t1 = t2 + t3``" msgstr "``t1 = t2 + t3``" -#: ../Doc/library/datetime.rst:296 +#: ../Doc/library/datetime.rst:304 msgid "" "Sum of *t2* and *t3*. Afterwards *t1*-*t2* == *t3* and *t1*-*t3* == *t2* are " "true. (1)" @@ -551,11 +566,11 @@ msgstr "" "Suma de *t2* y *t3*. Después *t1*-*t2* == *t3* y *t1*-*t3* == *t2* son " "verdaderos. (1)" -#: ../Doc/library/datetime.rst:299 +#: ../Doc/library/datetime.rst:307 msgid "``t1 = t2 - t3``" msgstr "``t1 = t2 - t3``" -#: ../Doc/library/datetime.rst:299 +#: ../Doc/library/datetime.rst:307 msgid "" "Difference of *t2* and *t3*. Afterwards *t1* == *t2* - *t3* and *t2* == *t1* " "+ *t3* are true. (1)(6)" @@ -563,11 +578,11 @@ msgstr "" "La suma de *t2* y *t3*. Después *t1* == *t2* - *t3* y *t2* == *t1* + *t3* " "son verdaderos. (1)(6)" -#: ../Doc/library/datetime.rst:303 +#: ../Doc/library/datetime.rst:311 msgid "``t1 = t2 * i or t1 = i * t2``" msgstr "``t1 = t2 * i o t1 = i * t2``" -#: ../Doc/library/datetime.rst:303 +#: ../Doc/library/datetime.rst:311 msgid "" "Delta multiplied by an integer. Afterwards *t1* // i == *t2* is true, " "provided ``i != 0``." @@ -575,15 +590,15 @@ msgstr "" "Delta multiplicado por un entero. Después *t1* // i == *t2* es verdadero, " "siempre que ``i != 0``." -#: ../Doc/library/datetime.rst:307 +#: ../Doc/library/datetime.rst:315 msgid "In general, *t1* \\* i == *t1* \\* (i-1) + *t1* is true. (1)" msgstr "En general, *t1* \\* *i* == *t1* \\* (*i*-1) + *t1* es verdadero. (1)" -#: ../Doc/library/datetime.rst:310 +#: ../Doc/library/datetime.rst:318 msgid "``t1 = t2 * f or t1 = f * t2``" msgstr "``t1 = t2 * f o t1 = f * t2``" -#: ../Doc/library/datetime.rst:310 +#: ../Doc/library/datetime.rst:318 msgid "" "Delta multiplied by a float. The result is rounded to the nearest multiple " "of timedelta.resolution using round-half-to-even." @@ -592,11 +607,11 @@ msgstr "" "múltiplo mas cercano de *timedelta.resolution* usando redondeo de medio a " "par." -#: ../Doc/library/datetime.rst:314 +#: ../Doc/library/datetime.rst:322 msgid "``f = t2 / t3``" msgstr "``f = t2 / t3``" -#: ../Doc/library/datetime.rst:314 +#: ../Doc/library/datetime.rst:322 msgid "" "Division (3) of overall duration *t2* by interval unit *t3*. Returns a :" "class:`float` object." @@ -604,11 +619,11 @@ msgstr "" "División (3) de la duración total *t2* por unidad de intervalo *t3*. Retorna " "un objeto :class:`float`." -#: ../Doc/library/datetime.rst:318 +#: ../Doc/library/datetime.rst:326 msgid "``t1 = t2 / f or t1 = t2 / i``" msgstr "``t1 = t2 / f o t1 = t2 / i``" -#: ../Doc/library/datetime.rst:318 +#: ../Doc/library/datetime.rst:326 msgid "" "Delta divided by a float or an int. The result is rounded to the nearest " "multiple of timedelta.resolution using round-half-to-even." @@ -617,11 +632,11 @@ msgstr "" "al múltiplo más cercano de *timedelta.resolution* usando redondeo de medio a " "par." -#: ../Doc/library/datetime.rst:322 +#: ../Doc/library/datetime.rst:330 msgid "``t1 = t2 // i`` or ``t1 = t2 // t3``" msgstr "``t1 = t2 // i`` o ``t1 = t2 // t3``" -#: ../Doc/library/datetime.rst:322 +#: ../Doc/library/datetime.rst:330 msgid "" "The floor is computed and the remainder (if any) is thrown away. In the " "second case, an integer is returned. (3)" @@ -629,19 +644,19 @@ msgstr "" "El piso (*floor*) se calcula y el resto (si lo hay) se descarta. En el " "segundo caso, se retorna un entero. (3)" -#: ../Doc/library/datetime.rst:326 +#: ../Doc/library/datetime.rst:334 msgid "``t1 = t2 % t3``" msgstr "``t1 = t2 % t3``" -#: ../Doc/library/datetime.rst:326 +#: ../Doc/library/datetime.rst:334 msgid "The remainder is computed as a :class:`timedelta` object. (3)" msgstr "El resto se calcula como un objeto :class:`timedelta`. (3)" -#: ../Doc/library/datetime.rst:329 +#: ../Doc/library/datetime.rst:337 msgid "``q, r = divmod(t1, t2)``" msgstr "``q, r = divmod(t1, t2)``" -#: ../Doc/library/datetime.rst:329 +#: ../Doc/library/datetime.rst:337 msgid "" "Computes the quotient and the remainder: ``q = t1 // t2`` (3) and ``r = t1 % " "t2``. q is an integer and r is a :class:`timedelta` object." @@ -649,19 +664,19 @@ msgstr "" "Calcula el cociente y el resto: ``q = t1 // t2`` (3) y ``r = t1% t2``. *q* " "es un entero y *r* es un objeto :class:`timedelta`." -#: ../Doc/library/datetime.rst:334 +#: ../Doc/library/datetime.rst:342 msgid "``+t1``" msgstr "``+t1``" -#: ../Doc/library/datetime.rst:334 +#: ../Doc/library/datetime.rst:342 msgid "Returns a :class:`timedelta` object with the same value. (2)" msgstr "Retorna un objeto :class:`timedelta` con el mismo valor. (2)" -#: ../Doc/library/datetime.rst:337 +#: ../Doc/library/datetime.rst:345 msgid "``-t1``" msgstr "``-t1``" -#: ../Doc/library/datetime.rst:337 +#: ../Doc/library/datetime.rst:345 msgid "" "equivalent to :class:`timedelta`\\ (-*t1.days*, -*t1.seconds*, -*t1." "microseconds*), and to *t1*\\* -1. (1)(4)" @@ -669,11 +684,11 @@ msgstr "" "equivalente a :class:`timedelta`\\ (-*t1.days*, -*t1.seconds*, -*t1." "microseconds*), y a *t1*\\* -1. (1)(4)" -#: ../Doc/library/datetime.rst:342 +#: ../Doc/library/datetime.rst:350 msgid "``abs(t)``" msgstr "``abs(t)``" -#: ../Doc/library/datetime.rst:342 +#: ../Doc/library/datetime.rst:350 msgid "" "equivalent to +\\ *t* when ``t.days >= 0``, and to -*t* when ``t.days < 0``. " "(2)" @@ -681,11 +696,11 @@ msgstr "" "equivalente a +\\ *t* cuando ``t.days>= 0``, y a *-*t** cuando ``t.days < " "0``. (2)" -#: ../Doc/library/datetime.rst:345 +#: ../Doc/library/datetime.rst:353 msgid "``str(t)``" msgstr "``str(t)``" -#: ../Doc/library/datetime.rst:345 +#: ../Doc/library/datetime.rst:353 msgid "" "Returns a string in the form ``[D day[s], ][H]H:MM:SS[.UUUUUU]``, where D is " "negative for negative ``t``. (5)" @@ -693,11 +708,11 @@ msgstr "" "Retorna una cadena de caracteres en la forma ``[D day[s], ][H]H:MM:SS[." "UUUUUU]``, donde D es negativo para negativo ``t``. (5)" -#: ../Doc/library/datetime.rst:349 +#: ../Doc/library/datetime.rst:357 msgid "``repr(t)``" msgstr "``repr(t)``" -#: ../Doc/library/datetime.rst:349 +#: ../Doc/library/datetime.rst:357 msgid "" "Returns a string representation of the :class:`timedelta` object as a " "constructor call with canonical attribute values." @@ -705,29 +720,29 @@ msgstr "" "Retorna una representación de cadena del objeto :class:`timedelta` como una " "llamada de constructor con valores de atributos canónicos." -#: ../Doc/library/datetime.rst:355 ../Doc/library/datetime.rst:604 -#: ../Doc/library/datetime.rst:2494 +#: ../Doc/library/datetime.rst:363 ../Doc/library/datetime.rst:612 +#: ../Doc/library/datetime.rst:2525 msgid "Notes:" msgstr "Notas:" -#: ../Doc/library/datetime.rst:358 +#: ../Doc/library/datetime.rst:366 msgid "This is exact but may overflow." msgstr "Esto es exacto pero puede desbordarse." -#: ../Doc/library/datetime.rst:361 +#: ../Doc/library/datetime.rst:369 msgid "This is exact and cannot overflow." msgstr "Esto es exacto pero no puede desbordarse." -#: ../Doc/library/datetime.rst:364 +#: ../Doc/library/datetime.rst:372 msgid "Division by 0 raises :exc:`ZeroDivisionError`." msgstr "División por 0 genera :exc:`ZeroDivisionError`." -#: ../Doc/library/datetime.rst:367 +#: ../Doc/library/datetime.rst:375 msgid "-*timedelta.max* is not representable as a :class:`timedelta` object." msgstr "" "-*timedelta.max* no es representable como un objeto :class:`timedelta`." -#: ../Doc/library/datetime.rst:370 +#: ../Doc/library/datetime.rst:378 msgid "" "String representations of :class:`timedelta` objects are normalized " "similarly to their internal representation. This leads to somewhat unusual " @@ -738,7 +753,7 @@ msgstr "" "Esto conduce a resultados algo inusuales para *timedeltas* negativos. Por " "ejemplo::" -#: ../Doc/library/datetime.rst:380 +#: ../Doc/library/datetime.rst:388 msgid "" "The expression ``t2 - t3`` will always be equal to the expression ``t2 + (-" "t3)`` except when t3 is equal to ``timedelta.max``; in that case the former " @@ -748,7 +763,7 @@ msgstr "" "excepto cuando *t3* es igual a ``timedelta.max``; en ese caso, el primero " "producirá un resultado mientras que el segundo se desbordará." -#: ../Doc/library/datetime.rst:384 +#: ../Doc/library/datetime.rst:392 msgid "" "In addition to the operations listed above, :class:`timedelta` objects " "support certain additions and subtractions with :class:`date` and :class:`." @@ -758,7 +773,7 @@ msgstr "" "`timedelta` admiten ciertas sumas y restas con objetos :class:`date` y :" "class:`.datetime` (ver más abajo)." -#: ../Doc/library/datetime.rst:388 +#: ../Doc/library/datetime.rst:396 msgid "" "Floor division and true division of a :class:`timedelta` object by another :" "class:`timedelta` object are now supported, as are remainder operations and " @@ -771,14 +786,14 @@ msgstr "" "multiplicación de un objeto :class:`timedelta` por un objeto :class:" "`flotante` ahora son compatibles." -#: ../Doc/library/datetime.rst:395 +#: ../Doc/library/datetime.rst:403 msgid "" "Comparisons of :class:`timedelta` objects are supported, with some caveats." msgstr "" "Comparaciones de los objetos :class:`timedelta` son compatibles, con algunas " "limitaciones." -#: ../Doc/library/datetime.rst:397 +#: ../Doc/library/datetime.rst:405 msgid "" "The comparisons ``==`` or ``!=`` *always* return a :class:`bool`, no matter " "the type of the compared object::" @@ -786,7 +801,7 @@ msgstr "" "Las comparaciones ``==`` o ``!=`` *Siempre* retornan :class:`bool`, sin " "importar el tipo de objeto comparado::" -#: ../Doc/library/datetime.rst:408 +#: ../Doc/library/datetime.rst:416 msgid "" "For all other comparisons (such as ``<`` and ``>``), when a :class:" "`timedelta` object is compared to an object of a different type, :exc:" @@ -796,7 +811,7 @@ msgstr "" "class:`timedelta` se compara con un objeto de un tipo diferente, se genera :" "exc:`TypeError`::" -#: ../Doc/library/datetime.rst:419 +#: ../Doc/library/datetime.rst:427 msgid "" "In Boolean contexts, a :class:`timedelta` object is considered to be true if " "and only if it isn't equal to ``timedelta(0)``." @@ -804,12 +819,12 @@ msgstr "" "En contextos booleanos, un objeto :class:`timedelta` se considera verdadero " "si y solo si no es igual a ``timedelta (0)``." -#: ../Doc/library/datetime.rst:422 ../Doc/library/datetime.rst:633 -#: ../Doc/library/datetime.rst:1206 ../Doc/library/datetime.rst:1805 +#: ../Doc/library/datetime.rst:430 ../Doc/library/datetime.rst:641 +#: ../Doc/library/datetime.rst:1220 ../Doc/library/datetime.rst:1820 msgid "Instance methods:" msgstr "Métodos de instancia:" -#: ../Doc/library/datetime.rst:426 +#: ../Doc/library/datetime.rst:434 msgid "" "Return the total number of seconds contained in the duration. Equivalent to " "``td / timedelta(seconds=1)``. For interval units other than seconds, use " @@ -820,7 +835,7 @@ msgstr "" "segundos, use la forma de división directamente (por ejemplo, ``td / " "timedelta(microseconds=1)``)." -#: ../Doc/library/datetime.rst:430 +#: ../Doc/library/datetime.rst:438 msgid "" "Note that for very large time intervals (greater than 270 years on most " "platforms) this method will lose microsecond accuracy." @@ -829,23 +844,23 @@ msgstr "" "la mayoría de las plataformas) este método perderá precisión de " "microsegundos." -#: ../Doc/library/datetime.rst:436 +#: ../Doc/library/datetime.rst:444 msgid "Examples of usage: :class:`timedelta`" msgstr "Ejemplos de uso: :class:`timedelta`" -#: ../Doc/library/datetime.rst:438 +#: ../Doc/library/datetime.rst:446 msgid "An additional example of normalization::" msgstr "Ejemplos adicionales de normalización::" -#: ../Doc/library/datetime.rst:450 +#: ../Doc/library/datetime.rst:458 msgid "Examples of :class:`timedelta` arithmetic::" msgstr "Ejemplos de :class:`timedelta` aritmética::" -#: ../Doc/library/datetime.rst:469 +#: ../Doc/library/datetime.rst:477 msgid ":class:`date` Objects" msgstr "Objeto :class:`date`" -#: ../Doc/library/datetime.rst:471 +#: ../Doc/library/datetime.rst:479 msgid "" "A :class:`date` object represents a date (year, month and day) in an " "idealized calendar, the current Gregorian calendar indefinitely extended in " @@ -855,7 +870,7 @@ msgstr "" "calendario idealizado, el calendario gregoriano actual se extiende " "indefinidamente en ambas direcciones." -#: ../Doc/library/datetime.rst:475 +#: ../Doc/library/datetime.rst:483 msgid "" "January 1 of year 1 is called day number 1, January 2 of year 1 is called " "day number 2, and so on. [#]_" @@ -863,7 +878,7 @@ msgstr "" "El 1 de enero del año 1 se llama día número 1, el 2 de enero del año 1 se " "llama día número 2, y así sucesivamente. [#]_" -#: ../Doc/library/datetime.rst:480 +#: ../Doc/library/datetime.rst:488 msgid "" "All arguments are required. Arguments must be integers, in the following " "ranges:" @@ -871,38 +886,38 @@ msgstr "" "Todos los argumentos son obligatorios. Los argumentos deben ser enteros, en " "los siguientes rangos:" -#: ../Doc/library/datetime.rst:483 +#: ../Doc/library/datetime.rst:491 msgid "``MINYEAR <= year <= MAXYEAR``" msgstr "``MINYEAR <= year <= MAXYEAR``" -#: ../Doc/library/datetime.rst:484 +#: ../Doc/library/datetime.rst:492 msgid "``1 <= month <= 12``" msgstr "``1 <= month <= 12``" -#: ../Doc/library/datetime.rst:485 +#: ../Doc/library/datetime.rst:493 msgid "``1 <= day <= number of days in the given month and year``" msgstr "``1 <= day <= number of days in the given month and year``" -#: ../Doc/library/datetime.rst:487 ../Doc/library/datetime.rst:849 +#: ../Doc/library/datetime.rst:495 ../Doc/library/datetime.rst:856 msgid "" "If an argument outside those ranges is given, :exc:`ValueError` is raised." msgstr "" "Si se proporciona un argumento fuera de esos rangos, :exc:`ValueError` se " "genera." -#: ../Doc/library/datetime.rst:490 ../Doc/library/datetime.rst:854 +#: ../Doc/library/datetime.rst:498 ../Doc/library/datetime.rst:861 msgid "Other constructors, all class methods:" msgstr "Otros constructores, todos los métodos de clase:" -#: ../Doc/library/datetime.rst:494 +#: ../Doc/library/datetime.rst:502 msgid "Return the current local date." msgstr "Retorna la fecha local actual." -#: ../Doc/library/datetime.rst:496 +#: ../Doc/library/datetime.rst:504 msgid "This is equivalent to ``date.fromtimestamp(time.time())``." msgstr "Esto es equivalente a ``date.fromtimestamp(time.time())``." -#: ../Doc/library/datetime.rst:500 +#: ../Doc/library/datetime.rst:508 msgid "" "Return the local date corresponding to the POSIX timestamp, such as is " "returned by :func:`time.time`." @@ -910,7 +925,7 @@ msgstr "" "Retorna la fecha local correspondiente a la marca de tiempo POSIX, tal como " "la retorna :func:`time.time`." -#: ../Doc/library/datetime.rst:503 +#: ../Doc/library/datetime.rst:511 msgid "" "This may raise :exc:`OverflowError`, if the timestamp is out of the range of " "values supported by the platform C :c:func:`localtime` function, and :exc:" @@ -926,7 +941,7 @@ msgstr "" "POSIX que incluyen segundos bisiestos en su noción de marca de tiempo, los " "segundos bisiestos son ignorados por :meth:`fromtimestamp`." -#: ../Doc/library/datetime.rst:510 +#: ../Doc/library/datetime.rst:518 msgid "" "Raise :exc:`OverflowError` instead of :exc:`ValueError` if the timestamp is " "out of the range of values supported by the platform C :c:func:`localtime` " @@ -938,7 +953,7 @@ msgstr "" "func:`localtime`. Se genera :exc:`OSError` en lugar de :exc:`ValueError` " "cuando :c:func:`localtime`, falla." -#: ../Doc/library/datetime.rst:519 +#: ../Doc/library/datetime.rst:527 msgid "" "Return the date corresponding to the proleptic Gregorian ordinal, where " "January 1 of year 1 has ordinal 1." @@ -946,7 +961,7 @@ msgstr "" "Retorna la fecha correspondiente al ordinal gregoriano proléptico, donde el " "1 de enero del año 1 tiene el ordinal 1." -#: ../Doc/library/datetime.rst:522 +#: ../Doc/library/datetime.rst:530 msgid "" ":exc:`ValueError` is raised unless ``1 <= ordinal <= date.max.toordinal()``. " "For any date *d*, ``date.fromordinal(d.toordinal()) == d``." @@ -955,7 +970,7 @@ msgstr "" "toordinal()``. Para cualquier fecha *d*, ``date.fromordinal(d.toordinal()) " "== d``." -#: ../Doc/library/datetime.rst:529 +#: ../Doc/library/datetime.rst:537 msgid "" "Return a :class:`date` corresponding to a *date_string* given in any valid " "ISO 8601 format, except ordinal dates (e.g. ``YYYY-DDD``)::" @@ -964,11 +979,11 @@ msgstr "" "cualquier formato ISO 8601 válido, excepto fechas ordinales (por ejemplo, " "``YYYY-DDD``):" -#: ../Doc/library/datetime.rst:541 +#: ../Doc/library/datetime.rst:549 msgid "Previously, this method only supported the format ``YYYY-MM-DD``." msgstr "Anteriormente, este método solo admitía el formato ``YYYY-MM-DD``." -#: ../Doc/library/datetime.rst:546 +#: ../Doc/library/datetime.rst:554 msgid "" "Return a :class:`date` corresponding to the ISO calendar date specified by " "year, week and day. This is the inverse of the function :meth:`date." @@ -978,62 +993,62 @@ msgstr "" "especificada por año, semana y día. Esta es la inversa de la función :meth:" "`date.isocalendar`." -#: ../Doc/library/datetime.rst:556 +#: ../Doc/library/datetime.rst:564 msgid "The earliest representable date, ``date(MINYEAR, 1, 1)``." msgstr "La fecha representable más antigua, ``date(MINYEAR, 1, 1)``." -#: ../Doc/library/datetime.rst:561 +#: ../Doc/library/datetime.rst:569 msgid "The latest representable date, ``date(MAXYEAR, 12, 31)``." msgstr "La última fecha representable, ``date(MAXYEAR, 12, 31)``." -#: ../Doc/library/datetime.rst:566 +#: ../Doc/library/datetime.rst:574 msgid "" "The smallest possible difference between non-equal date objects, " "``timedelta(days=1)``." msgstr "" "La menor diferencia entre objetos de fecha no iguales, ``timedelta(days=1)``." -#: ../Doc/library/datetime.rst:574 ../Doc/library/datetime.rst:1083 +#: ../Doc/library/datetime.rst:582 ../Doc/library/datetime.rst:1097 msgid "Between :const:`MINYEAR` and :const:`MAXYEAR` inclusive." msgstr "Entre :const:`MINYEAR` y :const:`MAXYEAR` inclusive." -#: ../Doc/library/datetime.rst:579 ../Doc/library/datetime.rst:1088 +#: ../Doc/library/datetime.rst:587 ../Doc/library/datetime.rst:1102 msgid "Between 1 and 12 inclusive." msgstr "Entre 1 y 12 inclusive." -#: ../Doc/library/datetime.rst:584 ../Doc/library/datetime.rst:1093 +#: ../Doc/library/datetime.rst:592 ../Doc/library/datetime.rst:1107 msgid "Between 1 and the number of days in the given month of the given year." msgstr "Entre 1 y el número de días en el mes dado del año dado." -#: ../Doc/library/datetime.rst:592 +#: ../Doc/library/datetime.rst:600 msgid "``date2 = date1 + timedelta``" msgstr "``date2 = date1 + timedelta``" -#: ../Doc/library/datetime.rst:592 +#: ../Doc/library/datetime.rst:600 msgid "*date2* will be ``timedelta.days`` days after *date1*. (1)" msgstr "*date2* será ``timedelta.days`` días después de *date1*. (1)" -#: ../Doc/library/datetime.rst:595 +#: ../Doc/library/datetime.rst:603 msgid "``date2 = date1 - timedelta``" msgstr "``date2 = date1 - timedelta``" -#: ../Doc/library/datetime.rst:595 +#: ../Doc/library/datetime.rst:603 msgid "Computes *date2* such that ``date2 + timedelta == date1``. (2)" msgstr "Calcula *date2* tal que ``date2 + timedelta == date1``. (2)" -#: ../Doc/library/datetime.rst:598 +#: ../Doc/library/datetime.rst:606 msgid "``timedelta = date1 - date2``" msgstr "``timedelta = date1 - date2``" -#: ../Doc/library/datetime.rst:598 ../Doc/library/datetime.rst:1141 +#: ../Doc/library/datetime.rst:606 ../Doc/library/datetime.rst:1155 msgid "\\(3)" msgstr "\\(3)" -#: ../Doc/library/datetime.rst:600 +#: ../Doc/library/datetime.rst:608 msgid "``date1 < date2``" msgstr "``date1 < date2``" -#: ../Doc/library/datetime.rst:600 +#: ../Doc/library/datetime.rst:608 msgid "" "*date1* is considered less than *date2* when *date1* precedes *date2* in " "time. (4)" @@ -1041,7 +1056,7 @@ msgstr "" "*date1* se considera menor que *date2* cuando *date1* precede a *date2* en " "el tiempo. (4)" -#: ../Doc/library/datetime.rst:607 +#: ../Doc/library/datetime.rst:615 msgid "" "*date2* is moved forward in time if ``timedelta.days > 0``, or backward if " "``timedelta.days < 0``. Afterward ``date2 - date1 == timedelta.days``. " @@ -1055,11 +1070,11 @@ msgstr "" "`OverflowError` se lanza si ``date2.year`` sería menor que :const:`MINYEAR` " "o mayor que :const:`MAXYEAR`." -#: ../Doc/library/datetime.rst:614 +#: ../Doc/library/datetime.rst:622 msgid "``timedelta.seconds`` and ``timedelta.microseconds`` are ignored." msgstr "``timedelta.seconds`` y ``timedelta.microseconds`` son ignorados." -#: ../Doc/library/datetime.rst:617 +#: ../Doc/library/datetime.rst:625 msgid "" "This is exact, and cannot overflow. timedelta.seconds and timedelta." "microseconds are 0, and date2 + timedelta == date1 after." @@ -1067,7 +1082,7 @@ msgstr "" "Esto es exacto y no puede desbordarse. *timedelta.seconds* y *timedelta." "microseconds* son 0, y *date2 + timedelta == date1*." -#: ../Doc/library/datetime.rst:621 +#: ../Doc/library/datetime.rst:629 msgid "" "In other words, ``date1 < date2`` if and only if ``date1.toordinal() < date2." "toordinal()``. Date comparison raises :exc:`TypeError` if the other " @@ -1090,14 +1105,14 @@ msgstr "" "or ``!=``. Los últimos casos retorna :const:`False` o :const:`True`, " "respectivamente." -#: ../Doc/library/datetime.rst:631 +#: ../Doc/library/datetime.rst:639 msgid "" "In Boolean contexts, all :class:`date` objects are considered to be true." msgstr "" "En contextos booleanos, todos los objetos :class:`date` se consideran " "verdaderos." -#: ../Doc/library/datetime.rst:637 +#: ../Doc/library/datetime.rst:645 msgid "" "Return a date with the same value, except for those parameters given new " "values by whichever keyword arguments are specified." @@ -1105,11 +1120,11 @@ msgstr "" "Retorna una fecha con el mismo valor, a excepción de aquellos parámetros " "dados nuevos valores por cualquier argumento de palabra clave especificado." -#: ../Doc/library/datetime.rst:640 ../Doc/library/datetime.rst:1848 +#: ../Doc/library/datetime.rst:648 ../Doc/library/datetime.rst:1863 msgid "Example::" msgstr "Ejemplo::" -#: ../Doc/library/datetime.rst:650 ../Doc/library/datetime.rst:1319 +#: ../Doc/library/datetime.rst:658 ../Doc/library/datetime.rst:1333 msgid "" "Return a :class:`time.struct_time` such as returned by :func:`time." "localtime`." @@ -1117,15 +1132,15 @@ msgstr "" "Retorna una :class:`time.struct_time` como la que retorna :func:`time." "localtime`." -#: ../Doc/library/datetime.rst:652 +#: ../Doc/library/datetime.rst:660 msgid "The hours, minutes and seconds are 0, and the DST flag is -1." msgstr "Las horas, minutos y segundos son 0, y el indicador DST es -1." -#: ../Doc/library/datetime.rst:654 ../Doc/library/datetime.rst:1321 +#: ../Doc/library/datetime.rst:662 ../Doc/library/datetime.rst:1335 msgid "``d.timetuple()`` is equivalent to::" msgstr "``d.timetuple()`` es equivalente a::" -#: ../Doc/library/datetime.rst:658 +#: ../Doc/library/datetime.rst:666 msgid "" "where ``yday = d.toordinal() - date(d.year, 1, 1).toordinal() + 1`` is the " "day number within the current year starting with ``1`` for January 1st." @@ -1134,7 +1149,7 @@ msgstr "" "número de día dentro del año actual que comienza con ``1`` para el 1 de " "enero." -#: ../Doc/library/datetime.rst:664 +#: ../Doc/library/datetime.rst:672 msgid "" "Return the proleptic Gregorian ordinal of the date, where January 1 of year " "1 has ordinal 1. For any :class:`date` object *d*, ``date.fromordinal(d." @@ -1144,7 +1159,7 @@ msgstr "" "del año 1 tiene el ordinal 1. Para cualquiera :class:`date` object *d*, " "``date.fromordinal(d.toordinal()) == d``." -#: ../Doc/library/datetime.rst:671 +#: ../Doc/library/datetime.rst:679 msgid "" "Return the day of the week as an integer, where Monday is 0 and Sunday is 6. " "For example, ``date(2002, 12, 4).weekday() == 2``, a Wednesday. See also :" @@ -1154,7 +1169,7 @@ msgstr "" "domingo es 6. Por ejemplo, ``date(2002, 12, 4).weekday() == 2``, un " "miércoles. Ver también :meth:`isoweekday`." -#: ../Doc/library/datetime.rst:678 +#: ../Doc/library/datetime.rst:686 msgid "" "Return the day of the week as an integer, where Monday is 1 and Sunday is 7. " "For example, ``date(2002, 12, 4).isoweekday() == 3``, a Wednesday. See also :" @@ -1164,7 +1179,7 @@ msgstr "" "domingo es 7. Por ejemplo, ``date(2002, 12, 4).isoweekday() == 3``, un " "miércoles. Ver también :meth:`weekday`, :meth:`isocalendar`." -#: ../Doc/library/datetime.rst:685 +#: ../Doc/library/datetime.rst:693 msgid "" "Return a :term:`named tuple` object with three components: ``year``, " "``week`` and ``weekday``." @@ -1172,14 +1187,14 @@ msgstr "" "Retorna un objeto :term:`named tuple` con tres componentes: ``year``, " "``week`` y ``weekday``." -#: ../Doc/library/datetime.rst:688 +#: ../Doc/library/datetime.rst:696 msgid "" "The ISO calendar is a widely used variant of the Gregorian calendar. [#]_" msgstr "" "El calendario ISO es una variante amplia utilizada del calendario " "gregoriano. [#]_" -#: ../Doc/library/datetime.rst:690 +#: ../Doc/library/datetime.rst:698 msgid "" "The ISO year consists of 52 or 53 full weeks, and where a week starts on a " "Monday and ends on a Sunday. The first week of an ISO year is the first " @@ -1193,7 +1208,7 @@ msgstr "" "llama semana número 1, y el año ISO de ese jueves es el mismo que el año " "gregoriano." -#: ../Doc/library/datetime.rst:695 +#: ../Doc/library/datetime.rst:703 msgid "" "For example, 2004 begins on a Thursday, so the first week of ISO year 2004 " "begins on Monday, 29 Dec 2003 and ends on Sunday, 4 Jan 2004::" @@ -1202,30 +1217,30 @@ msgstr "" "ISO 2004 comienza el lunes 29 de diciembre de 2003 y termina el domingo 4 de " "enero de 2004 ::" -#: ../Doc/library/datetime.rst:704 +#: ../Doc/library/datetime.rst:712 msgid "Result changed from a tuple to a :term:`named tuple`." msgstr "El resultado cambió de una tupla a un :term:`named tuple`." -#: ../Doc/library/datetime.rst:709 +#: ../Doc/library/datetime.rst:717 msgid "" "Return a string representing the date in ISO 8601 format, ``YYYY-MM-DD``::" msgstr "" "Retorna una cadena de caracteres que representa la fecha en formato ISO " "8601, ``AAAA-MM-DD``::" -#: ../Doc/library/datetime.rst:717 +#: ../Doc/library/datetime.rst:725 msgid "For a date *d*, ``str(d)`` is equivalent to ``d.isoformat()``." msgstr "Para una fecha *d*, ``str(d)`` es equivalente a ``d.isoformat()``." -#: ../Doc/library/datetime.rst:722 +#: ../Doc/library/datetime.rst:730 msgid "Return a string representing the date::" msgstr "Retorna una cadena de caracteres que representa la fecha::" -#: ../Doc/library/datetime.rst:728 ../Doc/library/datetime.rst:1505 +#: ../Doc/library/datetime.rst:736 ../Doc/library/datetime.rst:1519 msgid "``d.ctime()`` is equivalent to::" msgstr "``d.ctime()`` es equivalente a::" -#: ../Doc/library/datetime.rst:732 +#: ../Doc/library/datetime.rst:740 msgid "" "on platforms where the native C :c:func:`ctime` function (which :func:`time." "ctime` invokes, but which :meth:`date.ctime` does not invoke) conforms to " @@ -1235,24 +1250,26 @@ msgstr "" "ctime` llama, pero que :meth:`date.ctime` no se llama) se ajusta al estándar " "C." -#: ../Doc/library/datetime.rst:739 +#: ../Doc/library/datetime.rst:747 +#, fuzzy msgid "" "Return a string representing the date, controlled by an explicit format " "string. Format codes referring to hours, minutes or seconds will see 0 " -"values. For a complete list of formatting directives, see :ref:`strftime-" -"strptime-behavior`." +"values. See also :ref:`strftime-strptime-behavior` and :meth:`date." +"isoformat`." msgstr "" "Retorna una cadena de caracteres que representa la fecha, controlada por una " "cadena de formato explícito. Los códigos de formato que se refieren a horas, " "minutos o segundos verán valores 0. Para obtener una lista completa de las " "directivas de formato, consulte :ref:`strftime-strptime-behavior`." -#: ../Doc/library/datetime.rst:747 +#: ../Doc/library/datetime.rst:754 +#, fuzzy msgid "" "Same as :meth:`.date.strftime`. This makes it possible to specify a format " "string for a :class:`.date` object in :ref:`formatted string literals ` and when using :meth:`str.format`. For a complete list of " -"formatting directives, see :ref:`strftime-strptime-behavior`." +"strings>` and when using :meth:`str.format`. See also :ref:`strftime-" +"strptime-behavior` and :meth:`date.isoformat`." msgstr "" "Igual que :meth:`.date.strftime`. Esto hace posible especificar una cadena " "de formato para un objeto :class:`.date` en :ref:`literales de cadena con " @@ -1260,23 +1277,23 @@ msgstr "" "lista completa de las directivas de formato, consulte :ref:`strftime-" "strptime-behavior`." -#: ../Doc/library/datetime.rst:754 +#: ../Doc/library/datetime.rst:760 msgid "Examples of Usage: :class:`date`" msgstr "Ejemplos de uso: :class:`date`" -#: ../Doc/library/datetime.rst:756 +#: ../Doc/library/datetime.rst:762 msgid "Example of counting days to an event::" msgstr "Ejemplo de contar días para un evento::" -#: ../Doc/library/datetime.rst:774 +#: ../Doc/library/datetime.rst:781 msgid "More examples of working with :class:`date`:" msgstr "Más ejemplos de trabajo con :class:`date`:" -#: ../Doc/library/datetime.rst:823 +#: ../Doc/library/datetime.rst:830 msgid ":class:`.datetime` Objects" msgstr "Objetos :class:`.datetime`" -#: ../Doc/library/datetime.rst:825 +#: ../Doc/library/datetime.rst:832 msgid "" "A :class:`.datetime` object is a single object containing all the " "information from a :class:`date` object and a :class:`.time` object." @@ -1284,7 +1301,7 @@ msgstr "" "El objeto :class:`.datetime` es un único objeto que contiene toda la " "información de un objeto :class:`date` y un objeto :class:`.time`." -#: ../Doc/library/datetime.rst:828 +#: ../Doc/library/datetime.rst:835 msgid "" "Like a :class:`date` object, :class:`.datetime` assumes the current " "Gregorian calendar extended in both directions; like a :class:`.time` " @@ -1296,11 +1313,11 @@ msgstr "" "time`, :class:`.datetime` supone que hay exactamente 3600\\*24 segundos en " "cada día." -#: ../Doc/library/datetime.rst:832 +#: ../Doc/library/datetime.rst:839 msgid "Constructor:" msgstr "Constructor:" -#: ../Doc/library/datetime.rst:836 +#: ../Doc/library/datetime.rst:843 msgid "" "The *year*, *month* and *day* arguments are required. *tzinfo* may be " "``None``, or an instance of a :class:`tzinfo` subclass. The remaining " @@ -1310,67 +1327,67 @@ msgstr "" "``None``, o una instancia de una subclase :class:`tzinfo`. Los argumentos " "restantes deben ser enteros en los siguientes rangos:" -#: ../Doc/library/datetime.rst:840 +#: ../Doc/library/datetime.rst:847 msgid "``MINYEAR <= year <= MAXYEAR``," msgstr "``MINYEAR <= year <= MAXYEAR``," -#: ../Doc/library/datetime.rst:841 +#: ../Doc/library/datetime.rst:848 msgid "``1 <= month <= 12``," msgstr "``1 <= month <= 12``," -#: ../Doc/library/datetime.rst:842 +#: ../Doc/library/datetime.rst:849 msgid "``1 <= day <= number of days in the given month and year``," msgstr "``1 <= day <= number of days in the given month and year``," -#: ../Doc/library/datetime.rst:843 ../Doc/library/datetime.rst:1668 +#: ../Doc/library/datetime.rst:850 ../Doc/library/datetime.rst:1683 msgid "``0 <= hour < 24``," msgstr "``0 <= hour < 24``," -#: ../Doc/library/datetime.rst:844 ../Doc/library/datetime.rst:1669 +#: ../Doc/library/datetime.rst:851 ../Doc/library/datetime.rst:1684 msgid "``0 <= minute < 60``," msgstr "``0 <= minute < 60``," -#: ../Doc/library/datetime.rst:845 ../Doc/library/datetime.rst:1670 +#: ../Doc/library/datetime.rst:852 ../Doc/library/datetime.rst:1685 msgid "``0 <= second < 60``," msgstr "``0 <= second < 60``," -#: ../Doc/library/datetime.rst:846 ../Doc/library/datetime.rst:1671 +#: ../Doc/library/datetime.rst:853 ../Doc/library/datetime.rst:1686 msgid "``0 <= microsecond < 1000000``," msgstr "``0 <= microsecond < 1000000``," -#: ../Doc/library/datetime.rst:847 ../Doc/library/datetime.rst:1672 +#: ../Doc/library/datetime.rst:854 ../Doc/library/datetime.rst:1687 msgid "``fold in [0, 1]``." msgstr "``fold in [0, 1]``." -#: ../Doc/library/datetime.rst:851 ../Doc/library/datetime.rst:1240 -#: ../Doc/library/datetime.rst:1815 +#: ../Doc/library/datetime.rst:858 ../Doc/library/datetime.rst:1254 +#: ../Doc/library/datetime.rst:1830 msgid "Added the ``fold`` argument." msgstr "Se agregó el argumento ``fold``." -#: ../Doc/library/datetime.rst:858 +#: ../Doc/library/datetime.rst:865 msgid "Return the current local datetime, with :attr:`.tzinfo` ``None``." msgstr "Retorna la fecha y hora local actual, con :attr:`.tzinfo` ``None``." -#: ../Doc/library/datetime.rst:860 +#: ../Doc/library/datetime.rst:867 msgid "Equivalent to::" msgstr "Equivalente a::" -#: ../Doc/library/datetime.rst:864 +#: ../Doc/library/datetime.rst:871 msgid "See also :meth:`now`, :meth:`fromtimestamp`." msgstr "Ver también :meth:`now`, :meth:`fromtimestamp`." -#: ../Doc/library/datetime.rst:866 +#: ../Doc/library/datetime.rst:873 msgid "" "This method is functionally equivalent to :meth:`now`, but without a ``tz`` " "parameter." msgstr "" "Este método es funciona como :meth:`now`, pero sin un parámetro ``tz``." -#: ../Doc/library/datetime.rst:871 +#: ../Doc/library/datetime.rst:878 msgid "Return the current local date and time." msgstr "Retorna la fecha y hora local actual." -#: ../Doc/library/datetime.rst:873 +#: ../Doc/library/datetime.rst:880 msgid "" "If optional argument *tz* is ``None`` or not specified, this is like :meth:" "`today`, but, if possible, supplies more precision than can be gotten from " @@ -1383,7 +1400,7 @@ msgstr "" "puede ser posible en plataformas que suministran la función C :c:func:" "`gettimeofday`)." -#: ../Doc/library/datetime.rst:879 +#: ../Doc/library/datetime.rst:886 msgid "" "If *tz* is not ``None``, it must be an instance of a :class:`tzinfo` " "subclass, and the current date and time are converted to *tz*’s time zone." @@ -1392,15 +1409,15 @@ msgstr "" "`tzinfo`, y la fecha y hora actuales se convierten en la zona horaria de " "*tz*." -#: ../Doc/library/datetime.rst:882 +#: ../Doc/library/datetime.rst:889 msgid "This function is preferred over :meth:`today` and :meth:`utcnow`." msgstr "Esta función es preferible a :meth:`today` y :meth:`utcnow`." -#: ../Doc/library/datetime.rst:887 +#: ../Doc/library/datetime.rst:894 msgid "Return the current UTC date and time, with :attr:`.tzinfo` ``None``." msgstr "Retorna la fecha y hora UTC actual, con :attr:`.tzinfo` ``None``." -#: ../Doc/library/datetime.rst:889 +#: ../Doc/library/datetime.rst:896 msgid "" "This is like :meth:`now`, but returns the current UTC date and time, as a " "naive :class:`.datetime` object. An aware current UTC datetime can be " @@ -1411,7 +1428,7 @@ msgstr "" "UTC actual consciente (*aware*) llamando a ``datetime.now (timezone.utc)``. " "Ver también :meth:`now`." -#: ../Doc/library/datetime.rst:895 +#: ../Doc/library/datetime.rst:902 msgid "" "Because naive ``datetime`` objects are treated by many ``datetime`` methods " "as local times, it is preferred to use aware datetimes to represent times in " @@ -1424,7 +1441,11 @@ msgstr "" "forma recomendada de crear un objeto que represente la hora actual en UTC es " "llamando a ``datetime.now(timezone.utc)``." -#: ../Doc/library/datetime.rst:903 +#: ../Doc/library/datetime.rst:909 +msgid "Use :meth:`datetime.now` with :attr:`UTC` instead." +msgstr "" + +#: ../Doc/library/datetime.rst:914 msgid "" "Return the local date and time corresponding to the POSIX timestamp, such as " "is returned by :func:`time.time`. If optional argument *tz* is ``None`` or " @@ -1437,7 +1458,7 @@ msgstr "" "hora local de la plataforma, y el objeto retornado :class:`.datetime` es " "naíf (*naive*)." -#: ../Doc/library/datetime.rst:908 +#: ../Doc/library/datetime.rst:919 msgid "" "If *tz* is not ``None``, it must be an instance of a :class:`tzinfo` " "subclass, and the timestamp is converted to *tz*’s time zone." @@ -1446,7 +1467,7 @@ msgstr "" "`tzinfo`, y la fecha y hora actuales se convierten en la zona horaria de " "*tz*." -#: ../Doc/library/datetime.rst:911 +#: ../Doc/library/datetime.rst:922 msgid "" ":meth:`fromtimestamp` may raise :exc:`OverflowError`, if the timestamp is " "out of the range of values supported by the platform C :c:func:`localtime` " @@ -1468,7 +1489,7 @@ msgstr "" "de tiempo que difieren en un segundo que producen objetos idénticos :class:`." "datetime`. Se prefiere este método sobre :meth:`utcfromtimestamp`." -#: ../Doc/library/datetime.rst:922 +#: ../Doc/library/datetime.rst:933 msgid "" "Raise :exc:`OverflowError` instead of :exc:`ValueError` if the timestamp is " "out of the range of values supported by the platform C :c:func:`localtime` " @@ -1480,13 +1501,13 @@ msgstr "" "func:`localtime` o :c:func:`gmtime`. genera :exc:`OSError` en lugar de la " "función :exc:`ValueError` en :c:func:`localtime` o error :c:func:`gmtime`." -#: ../Doc/library/datetime.rst:929 +#: ../Doc/library/datetime.rst:940 msgid ":meth:`fromtimestamp` may return instances with :attr:`.fold` set to 1." msgstr "" ":meth:`fromtimestamp` puede retornar instancias con :attr:`.fold` " "establecido en 1." -#: ../Doc/library/datetime.rst:934 +#: ../Doc/library/datetime.rst:945 msgid "" "Return the UTC :class:`.datetime` corresponding to the POSIX timestamp, " "with :attr:`.tzinfo` ``None``. (The resulting object is naive.)" @@ -1495,7 +1516,7 @@ msgstr "" "POSIX, con :attr:`.tzinfo` ``None``. (El objeto resultante es naíf " "(*naive*).)" -#: ../Doc/library/datetime.rst:937 +#: ../Doc/library/datetime.rst:948 msgid "" "This may raise :exc:`OverflowError`, if the timestamp is out of the range of " "values supported by the platform C :c:func:`gmtime` function, and :exc:" @@ -1507,12 +1528,12 @@ msgstr "" "en :exc:`OSError` en :c:func:`gmtime`. Es común que esto se restrinja a los " "años entre1970 a 2038." -#: ../Doc/library/datetime.rst:942 +#: ../Doc/library/datetime.rst:953 msgid "To get an aware :class:`.datetime` object, call :meth:`fromtimestamp`::" msgstr "" "Para conocer un objeto :class:`.datetime`, llama a :meth:`fromtimestamp`::" -#: ../Doc/library/datetime.rst:946 +#: ../Doc/library/datetime.rst:957 msgid "" "On the POSIX compliant platforms, it is equivalent to the following " "expression::" @@ -1520,7 +1541,7 @@ msgstr "" "En las plataformas compatibles con POSIX, es equivalente a la siguiente " "expresión::" -#: ../Doc/library/datetime.rst:951 +#: ../Doc/library/datetime.rst:962 msgid "" "except the latter formula always supports the full years range: between :" "const:`MINYEAR` and :const:`MAXYEAR` inclusive." @@ -1528,7 +1549,7 @@ msgstr "" "excepto que la última fórmula siempre admite el rango de años completo: " "entre :const:`MINYEAR` y :const:`MAXYEAR` inclusive." -#: ../Doc/library/datetime.rst:956 +#: ../Doc/library/datetime.rst:967 msgid "" "Because naive ``datetime`` objects are treated by many ``datetime`` methods " "as local times, it is preferred to use aware datetimes to represent times in " @@ -1542,7 +1563,7 @@ msgstr "" "recomendada de crear un objeto que represente una marca de tiempo específica " "en UTC es llamando a ``datetime.fromtimestamp(timestamp, tz=timezone.utc)``." -#: ../Doc/library/datetime.rst:962 +#: ../Doc/library/datetime.rst:973 msgid "" "Raise :exc:`OverflowError` instead of :exc:`ValueError` if the timestamp is " "out of the range of values supported by the platform C :c:func:`gmtime` " @@ -1554,7 +1575,11 @@ msgstr "" "func:`gmtime`. genera :exc:`OSError` en lugar de :exc:`ValueError` en el " "error de :c:func:`gmtime`." -#: ../Doc/library/datetime.rst:971 +#: ../Doc/library/datetime.rst:981 +msgid "Use :meth:`datetime.fromtimestamp` with :attr:`UTC` instead." +msgstr "" + +#: ../Doc/library/datetime.rst:986 msgid "" "Return the :class:`.datetime` corresponding to the proleptic Gregorian " "ordinal, where January 1 of year 1 has ordinal 1. :exc:`ValueError` is " @@ -1568,13 +1593,16 @@ msgstr "" "minuto, segundo y microsegundo del resultado son todos 0, y :attr:`.tzinfo` " "es ``None``." -#: ../Doc/library/datetime.rst:979 +#: ../Doc/library/datetime.rst:994 +#, fuzzy msgid "" "Return a new :class:`.datetime` object whose date components are equal to " "the given :class:`date` object's, and whose time components are equal to the " "given :class:`.time` object's. If the *tzinfo* argument is provided, its " "value is used to set the :attr:`.tzinfo` attribute of the result, otherwise " -"the :attr:`~.time.tzinfo` attribute of the *time* argument is used." +"the :attr:`~.time.tzinfo` attribute of the *time* argument is used. If the " +"*date* argument is a :class:`.datetime` object, its time components and :" +"attr:`.tzinfo` attributes are ignored." msgstr "" "Se genera un nuevo objeto :class:`.datetime` cuyos componentes de fecha son " "iguales a los dados en el objeto :class:`date`, y cuyos componentes de " @@ -1583,21 +1611,21 @@ msgstr "" "atributo :attr:`.tzinfo` del resultado; de lo contrario, se usa el atributo :" "attr:`~.time.tzinfo` del argumento *time*." -#: ../Doc/library/datetime.rst:986 +#: ../Doc/library/datetime.rst:1002 +#, fuzzy msgid "" "For any :class:`.datetime` object *d*, ``d == datetime.combine(d.date(), d." -"time(), d.tzinfo)``. If date is a :class:`.datetime` object, its time " -"components and :attr:`.tzinfo` attributes are ignored." +"time(), d.tzinfo)``." msgstr "" "Para cualquier objeto de :class:`.datetime` *d*, ``d == datetime.combine(d." "date(), d.time(), d.tzinfo)``. Si la fecha es un objeto de :class:`." "datetime`, se ignoran sus componentes de tiempo y :attr:`.tzinfo`." -#: ../Doc/library/datetime.rst:991 +#: ../Doc/library/datetime.rst:1005 msgid "Added the *tzinfo* argument." msgstr "Se agregó el argumento *tzinfo*." -#: ../Doc/library/datetime.rst:997 +#: ../Doc/library/datetime.rst:1011 msgid "" "Return a :class:`.datetime` corresponding to a *date_string* in any valid " "ISO 8601 format, with the following exceptions:" @@ -1605,29 +1633,29 @@ msgstr "" "Devuelve un :class:`.datetime` correspondiente a un *date_string* en " "cualquier formato ISO 8601 válido, con las siguientes excepciones:" -#: ../Doc/library/datetime.rst:1000 ../Doc/library/datetime.rst:1771 +#: ../Doc/library/datetime.rst:1014 ../Doc/library/datetime.rst:1786 msgid "Time zone offsets may have fractional seconds." msgstr "Las compensaciones de zona horaria pueden tener fracciones de segundo." -#: ../Doc/library/datetime.rst:1001 +#: ../Doc/library/datetime.rst:1015 msgid "The ``T`` separator may be replaced by any single unicode character." msgstr "" "El separador ``T`` se puede reemplazar por cualquier carácter Unicode único." -#: ../Doc/library/datetime.rst:1002 +#: ../Doc/library/datetime.rst:1016 msgid "Ordinal dates are not currently supported." msgstr "Las fechas ordinales no se admiten actualmente." -#: ../Doc/library/datetime.rst:1003 ../Doc/library/datetime.rst:1776 +#: ../Doc/library/datetime.rst:1017 ../Doc/library/datetime.rst:1791 msgid "Fractional hours and minutes are not supported." msgstr "No se admiten fracciones de horas y minutos." -#: ../Doc/library/datetime.rst:1005 ../Doc/library/datetime.rst:1434 -#: ../Doc/library/datetime.rst:1778 +#: ../Doc/library/datetime.rst:1019 ../Doc/library/datetime.rst:1448 +#: ../Doc/library/datetime.rst:1793 msgid "Examples::" msgstr "Ejemplos::" -#: ../Doc/library/datetime.rst:1029 +#: ../Doc/library/datetime.rst:1043 msgid "" "Previously, this method only supported formats that could be emitted by :" "meth:`date.isoformat()` or :meth:`datetime.isoformat()`." @@ -1635,7 +1663,7 @@ msgstr "" "Anteriormente, este método solo admitía formatos que podían ser emitidos " "por :meth:`date.isoformat()` o :meth:`datetime.isoformat()`." -#: ../Doc/library/datetime.rst:1036 +#: ../Doc/library/datetime.rst:1050 msgid "" "Return a :class:`.datetime` corresponding to the ISO calendar date specified " "by year, week and day. The non-date components of the datetime are populated " @@ -1647,7 +1675,7 @@ msgstr "" "fecha y hora se rellenan con sus valores predeterminados normales. Esta es " "la inversa de la función :meth:`datetime.isocalendar`." -#: ../Doc/library/datetime.rst:1045 +#: ../Doc/library/datetime.rst:1059 msgid "" "Return a :class:`.datetime` corresponding to *date_string*, parsed according " "to *format*." @@ -1655,23 +1683,26 @@ msgstr "" "Retorna :class:`.datetime` correspondiente a *date_string*, analizado según " "*format*." -#: ../Doc/library/datetime.rst:1048 -msgid "This is equivalent to::" -msgstr "Esto es equivalente a::" +#: ../Doc/library/datetime.rst:1062 +msgid "" +"If *format* does not contain microseconds or timezone information, this is " +"equivalent to::" +msgstr "" -#: ../Doc/library/datetime.rst:1052 +#: ../Doc/library/datetime.rst:1066 +#, fuzzy msgid "" ":exc:`ValueError` is raised if the date_string and format can't be parsed " -"by :func:`time.strptime` or if it returns a value which isn't a time tuple. " -"For a complete list of formatting directives, see :ref:`strftime-strptime-" -"behavior`." +"by :func:`time.strptime` or if it returns a value which isn't a time tuple. " +"See also :ref:`strftime-strptime-behavior` and :meth:`datetime." +"fromisoformat`." msgstr "" "Se genera :exc:`ValueError` se genera si *date_string* y el formato no " "pueden ser analizados por :func:`time.strptime` o si retorna un valor que no " "es una tupla de tiempo. Para obtener una lista completa de las directivas de " "formato, consulte :ref:`strftime-strptime-behavior`." -#: ../Doc/library/datetime.rst:1063 +#: ../Doc/library/datetime.rst:1077 msgid "" "The earliest representable :class:`.datetime`, ``datetime(MINYEAR, 1, 1, " "tzinfo=None)``." @@ -1679,7 +1710,7 @@ msgstr "" "La primera fecha representable :class:`.datetime`, ``datetime(MINYEAR, 1, 1, " "tzinfo=None)``." -#: ../Doc/library/datetime.rst:1069 +#: ../Doc/library/datetime.rst:1083 msgid "" "The latest representable :class:`.datetime`, ``datetime(MAXYEAR, 12, 31, 23, " "59, 59, 999999, tzinfo=None)``." @@ -1687,7 +1718,7 @@ msgstr "" "La última fecha representable :class:`.datetime`, ``datetime(MAXYEAR, 12, " "31, 23, 59, 59, 999999, tzinfo=None)``." -#: ../Doc/library/datetime.rst:1075 +#: ../Doc/library/datetime.rst:1089 msgid "" "The smallest possible difference between non-equal :class:`.datetime` " "objects, ``timedelta(microseconds=1)``." @@ -1695,20 +1726,20 @@ msgstr "" "La diferencia más pequeña posible entre objetos no iguales :class:`." "datetime`, ``timedelta(microseconds=1)``." -#: ../Doc/library/datetime.rst:1098 ../Doc/library/datetime.rst:1701 +#: ../Doc/library/datetime.rst:1112 ../Doc/library/datetime.rst:1716 msgid "In ``range(24)``." msgstr "En ``range(24)``." -#: ../Doc/library/datetime.rst:1103 ../Doc/library/datetime.rst:1108 -#: ../Doc/library/datetime.rst:1706 ../Doc/library/datetime.rst:1711 +#: ../Doc/library/datetime.rst:1117 ../Doc/library/datetime.rst:1122 +#: ../Doc/library/datetime.rst:1721 ../Doc/library/datetime.rst:1726 msgid "In ``range(60)``." msgstr "En ``range(60)``." -#: ../Doc/library/datetime.rst:1113 ../Doc/library/datetime.rst:1716 +#: ../Doc/library/datetime.rst:1127 ../Doc/library/datetime.rst:1731 msgid "In ``range(1000000)``." msgstr "En ``range(1000000)``." -#: ../Doc/library/datetime.rst:1118 +#: ../Doc/library/datetime.rst:1132 msgid "" "The object passed as the *tzinfo* argument to the :class:`.datetime` " "constructor, or ``None`` if none was passed." @@ -1716,7 +1747,7 @@ msgstr "" "El objeto pasó como argumento *tzinfo* al constructor :class:`.datetime`, o " "``None`` si no se pasó ninguno." -#: ../Doc/library/datetime.rst:1124 ../Doc/library/datetime.rst:1727 +#: ../Doc/library/datetime.rst:1138 ../Doc/library/datetime.rst:1742 msgid "" "In ``[0, 1]``. Used to disambiguate wall times during a repeated interval. " "(A repeated interval occurs when clocks are rolled back at the end of " @@ -1731,38 +1762,38 @@ msgstr "" "representa el anterior (posterior) de los dos momentos con la misma " "representación de tiempo real transcurrido (*wall time*)." -#: ../Doc/library/datetime.rst:1137 +#: ../Doc/library/datetime.rst:1151 msgid "``datetime2 = datetime1 + timedelta``" msgstr "``datetime2 = datetime1 + timedelta``" -#: ../Doc/library/datetime.rst:1137 ../Doc/library/datetime.rst:2329 -#: ../Doc/library/datetime.rst:2334 ../Doc/library/datetime.rst:2346 -#: ../Doc/library/datetime.rst:2351 ../Doc/library/datetime.rst:2411 -#: ../Doc/library/datetime.rst:2416 ../Doc/library/datetime.rst:2420 +#: ../Doc/library/datetime.rst:1151 ../Doc/library/datetime.rst:2352 +#: ../Doc/library/datetime.rst:2357 ../Doc/library/datetime.rst:2369 +#: ../Doc/library/datetime.rst:2374 ../Doc/library/datetime.rst:2434 +#: ../Doc/library/datetime.rst:2439 ../Doc/library/datetime.rst:2443 msgid "\\(1)" msgstr "\\(1)" -#: ../Doc/library/datetime.rst:1139 +#: ../Doc/library/datetime.rst:1153 msgid "``datetime2 = datetime1 - timedelta``" msgstr "``datetime2 = datetime1 - timedelta``" -#: ../Doc/library/datetime.rst:1139 ../Doc/library/datetime.rst:2362 +#: ../Doc/library/datetime.rst:1153 ../Doc/library/datetime.rst:2385 msgid "\\(2)" msgstr "\\(2)" -#: ../Doc/library/datetime.rst:1141 +#: ../Doc/library/datetime.rst:1155 msgid "``timedelta = datetime1 - datetime2``" msgstr "``timedelta = datetime1 - datetime2``" -#: ../Doc/library/datetime.rst:1143 +#: ../Doc/library/datetime.rst:1157 msgid "``datetime1 < datetime2``" msgstr "``datetime1 < datetime2``" -#: ../Doc/library/datetime.rst:1143 +#: ../Doc/library/datetime.rst:1157 msgid "Compares :class:`.datetime` to :class:`.datetime`. (4)" msgstr "Compara :class:`.datetime` to :class:`.datetime`. (4)" -#: ../Doc/library/datetime.rst:1148 +#: ../Doc/library/datetime.rst:1162 msgid "" "datetime2 is a duration of timedelta removed from datetime1, moving forward " "in time if ``timedelta.days`` > 0, or backward if ``timedelta.days`` < 0. " @@ -1781,7 +1812,7 @@ msgstr "" "realizan ajustes de zona horaria, incluso si la entrada es un objeto " "consciente." -#: ../Doc/library/datetime.rst:1157 +#: ../Doc/library/datetime.rst:1171 msgid "" "Computes the datetime2 such that datetime2 + timedelta == datetime1. As for " "addition, the result has the same :attr:`~.datetime.tzinfo` attribute as the " @@ -1793,7 +1824,7 @@ msgstr "" "tzinfo` que la fecha y hora de entrada, y no se realizan ajustes de zona " "horaria, incluso si la entrada es consciente." -#: ../Doc/library/datetime.rst:1162 +#: ../Doc/library/datetime.rst:1176 msgid "" "Subtraction of a :class:`.datetime` from a :class:`.datetime` is defined " "only if both operands are naive, or if both are aware. If one is aware and " @@ -1803,7 +1834,7 @@ msgstr "" "ambos operandos son naíf(*naive*), o si ambos son conscientes(*aware*). Si " "uno es consciente y el otro es naíf, :exc:`TypeError` aparece." -#: ../Doc/library/datetime.rst:1166 +#: ../Doc/library/datetime.rst:1180 msgid "" "If both are naive, or both are aware and have the same :attr:`~.datetime." "tzinfo` attribute, the :attr:`~.datetime.tzinfo` attributes are ignored, and " @@ -1816,7 +1847,7 @@ msgstr "" "tal que ``datetime2 + t == datetime1``. No se realizan ajustes de zona " "horaria en este caso." -#: ../Doc/library/datetime.rst:1171 +#: ../Doc/library/datetime.rst:1185 msgid "" "If both are aware and have different :attr:`~.datetime.tzinfo` attributes, " "``a-b`` acts as if *a* and *b* were first converted to naive UTC datetimes " @@ -1830,7 +1861,7 @@ msgstr "" "None) - a.utcoffset()) - (b.replace (tzinfo = None) - b.utcoffset())`` " "excepto que la implementación nunca se desborda." -#: ../Doc/library/datetime.rst:1177 +#: ../Doc/library/datetime.rst:1191 msgid "" "*datetime1* is considered less than *datetime2* when *datetime1* precedes " "*datetime2* in time." @@ -1838,7 +1869,7 @@ msgstr "" "*datetime1* se considera menor que *datetime2* cuando *datetime1* precede " "*datetime2* en el tiempo." -#: ../Doc/library/datetime.rst:1180 +#: ../Doc/library/datetime.rst:1194 msgid "" "If one comparand is naive and the other is aware, :exc:`TypeError` is raised " "if an order comparison is attempted. For equality comparisons, naive " @@ -1849,7 +1880,7 @@ msgstr "" "las comparaciones de igualdad, las instancias naíf nunca son iguales a las " "instancias conscientes (*aware*)." -#: ../Doc/library/datetime.rst:1184 +#: ../Doc/library/datetime.rst:1198 msgid "" "If both comparands are aware, and have the same :attr:`~.datetime.tzinfo` " "attribute, the common :attr:`~.datetime.tzinfo` attribute is ignored and the " @@ -1865,7 +1896,7 @@ msgstr "" "elementos comparados se ajustan primero restando sus compensaciones UTC " "(obtenidas de ``self.utcoffset()``)." -#: ../Doc/library/datetime.rst:1190 +#: ../Doc/library/datetime.rst:1204 msgid "" "Equality comparisons between aware and naive :class:`.datetime` instances " "don't raise :exc:`TypeError`." @@ -1873,7 +1904,7 @@ msgstr "" "Las comparaciones de igualdad entre las instancias conscientes (*aware*) y " "naíf (*naive*) :class:`.datetime` no generan :exc:`TypeError`." -#: ../Doc/library/datetime.rst:1196 +#: ../Doc/library/datetime.rst:1210 msgid "" "In order to stop comparison from falling back to the default scheme of " "comparing object addresses, datetime comparison normally raises :exc:" @@ -1896,11 +1927,11 @@ msgstr "" "`TypeError` a menos que la comparación sea ``==`` o ``!=``. Los últimos " "casos retornan :const:`False` o :const:`True`, respectivamente." -#: ../Doc/library/datetime.rst:1210 +#: ../Doc/library/datetime.rst:1224 msgid "Return :class:`date` object with same year, month and day." msgstr "Retorna el objeto :class:`date` con el mismo año, mes y día." -#: ../Doc/library/datetime.rst:1215 +#: ../Doc/library/datetime.rst:1229 msgid "" "Return :class:`.time` object with same hour, minute, second, microsecond and " "fold. :attr:`.tzinfo` is ``None``. See also method :meth:`timetz`." @@ -1909,13 +1940,13 @@ msgstr "" "microsegundo y doblado(*fold*). :attr:`.tzinfo` es ``None``. Ver también " "método :meth:`timetz`." -#: ../Doc/library/datetime.rst:1218 ../Doc/library/datetime.rst:1227 +#: ../Doc/library/datetime.rst:1232 ../Doc/library/datetime.rst:1241 msgid "The fold value is copied to the returned :class:`.time` object." msgstr "" "El valor de plegado (*fold value*) se copia en el objeto :class:`time` " "retornado." -#: ../Doc/library/datetime.rst:1224 +#: ../Doc/library/datetime.rst:1238 msgid "" "Return :class:`.time` object with same hour, minute, second, microsecond, " "fold, and tzinfo attributes. See also method :meth:`time`." @@ -1923,7 +1954,7 @@ msgstr "" "Retorna el objeto :class:`.time` con los mismos atributos de hora, minuto, " "segundo, microsegundo, pliegue y *tzinfo*. Ver también método :meth:`time`." -#: ../Doc/library/datetime.rst:1235 +#: ../Doc/library/datetime.rst:1249 msgid "" "Return a datetime with the same attributes, except for those attributes " "given new values by whichever keyword arguments are specified. Note that " @@ -1936,7 +1967,7 @@ msgstr "" "especificar para crear una fecha y hora naíf (*naive*) a partir de una fecha " "y hora consciente(*aware*) sin conversión de datos de fecha y hora." -#: ../Doc/library/datetime.rst:1246 +#: ../Doc/library/datetime.rst:1260 msgid "" "Return a :class:`.datetime` object with new :attr:`.tzinfo` attribute *tz*, " "adjusting the date and time data so the result is the same UTC time as " @@ -1946,7 +1977,7 @@ msgstr "" "*tz*, ajustando los datos de fecha y hora para que el resultado sea la misma " "hora UTC que *self*, pero en hora local *tz*." -#: ../Doc/library/datetime.rst:1250 +#: ../Doc/library/datetime.rst:1264 msgid "" "If provided, *tz* must be an instance of a :class:`tzinfo` subclass, and " "its :meth:`utcoffset` and :meth:`dst` methods must not return ``None``. If " @@ -1957,7 +1988,7 @@ msgstr "" "``None``.Si *self* es naíf, se supone que representa la hora en la zona " "horaria del sistema." -#: ../Doc/library/datetime.rst:1254 +#: ../Doc/library/datetime.rst:1268 msgid "" "If called without arguments (or with ``tz=None``) the system local timezone " "is assumed for the target timezone. The ``.tzinfo`` attribute of the " @@ -1970,7 +2001,7 @@ msgstr "" "class:`timezone` con el nombre de zona y el desplazamiento obtenido del " "sistema operativo." -#: ../Doc/library/datetime.rst:1259 +#: ../Doc/library/datetime.rst:1273 msgid "" "If ``self.tzinfo`` is *tz*, ``self.astimezone(tz)`` is equal to *self*: no " "adjustment of date or time data is performed. Else the result is local time " @@ -1985,7 +2016,7 @@ msgstr "" "utcoffset()`` tendrá los mismos datos de fecha y hora que ``dt - dt." "utcoffset()``." -#: ../Doc/library/datetime.rst:1265 +#: ../Doc/library/datetime.rst:1279 msgid "" "If you merely want to attach a time zone object *tz* to a datetime *dt* " "without adjustment of date and time data, use ``dt.replace(tzinfo=tz)``. If " @@ -1998,7 +2029,7 @@ msgstr "" "y hora *dt* sin conversión de datos de fecha y hora, use ``dt.replace " "(tzinfo = None)``." -#: ../Doc/library/datetime.rst:1270 +#: ../Doc/library/datetime.rst:1284 msgid "" "Note that the default :meth:`tzinfo.fromutc` method can be overridden in a :" "class:`tzinfo` subclass to affect the result returned by :meth:`astimezone`. " @@ -2009,11 +2040,11 @@ msgstr "" "retornado por :meth:`astimezone`. :meth:`astimezone` ignora los casos de " "error, actúa como::" -#: ../Doc/library/datetime.rst:1282 +#: ../Doc/library/datetime.rst:1296 msgid "*tz* now can be omitted." msgstr "*tz* ahora puede ser omitido." -#: ../Doc/library/datetime.rst:1285 +#: ../Doc/library/datetime.rst:1299 msgid "" "The :meth:`astimezone` method can now be called on naive instances that are " "presumed to represent system local time." @@ -2021,7 +2052,7 @@ msgstr "" "El método :meth:`astimezone` ahora se puede invocar en instancias naíf " "(*naive*) que se supone representan la hora local del sistema." -#: ../Doc/library/datetime.rst:1292 +#: ../Doc/library/datetime.rst:1306 msgid "" "If :attr:`.tzinfo` is ``None``, returns ``None``, else returns ``self.tzinfo." "utcoffset(self)``, and raises an exception if the latter doesn't return " @@ -2032,13 +2063,13 @@ msgstr "" "retorna ``None`` o un objeto :class:`timedelta` con magnitud inferior a un " "día." -#: ../Doc/library/datetime.rst:1296 ../Doc/library/datetime.rst:1890 -#: ../Doc/library/datetime.rst:1996 ../Doc/library/datetime.rst:2241 -#: ../Doc/library/datetime.rst:2253 ../Doc/library/datetime.rst:2550 +#: ../Doc/library/datetime.rst:1310 ../Doc/library/datetime.rst:1903 +#: ../Doc/library/datetime.rst:2009 ../Doc/library/datetime.rst:2254 +#: ../Doc/library/datetime.rst:2266 ../Doc/library/datetime.rst:2578 msgid "The UTC offset is not restricted to a whole number of minutes." msgstr "El desfase UTC no está restringido a un número entero de minutos." -#: ../Doc/library/datetime.rst:1302 +#: ../Doc/library/datetime.rst:1316 msgid "" "If :attr:`.tzinfo` is ``None``, returns ``None``, else returns ``self.tzinfo." "dst(self)``, and raises an exception if the latter doesn't return ``None`` " @@ -2049,12 +2080,12 @@ msgstr "" "retorna ``None`` o un objeto :class:`timedelta` con magnitud inferior a un " "día." -#: ../Doc/library/datetime.rst:1306 ../Doc/library/datetime.rst:1900 -#: ../Doc/library/datetime.rst:2050 +#: ../Doc/library/datetime.rst:1320 ../Doc/library/datetime.rst:1913 +#: ../Doc/library/datetime.rst:2063 msgid "The DST offset is not restricted to a whole number of minutes." msgstr "El desfase DST no está restringido a un número entero de minutos." -#: ../Doc/library/datetime.rst:1312 +#: ../Doc/library/datetime.rst:1326 msgid "" "If :attr:`.tzinfo` is ``None``, returns ``None``, else returns ``self.tzinfo." "tzname(self)``, raises an exception if the latter doesn't return ``None`` or " @@ -2064,7 +2095,7 @@ msgstr "" "``self.tzinfo.tzname(self)``, genera una excepción si este último no retorna " "``None`` o un objeto de cadena de caracteres," -#: ../Doc/library/datetime.rst:1327 +#: ../Doc/library/datetime.rst:1341 msgid "" "where ``yday = d.toordinal() - date(d.year, 1, 1).toordinal() + 1`` is the " "day number within the current year starting with ``1`` for January 1st. The :" @@ -2081,7 +2112,7 @@ msgstr "" "un valor distinto de cero, :attr:`tm_isdst` se establece en ``1``; de lo " "contrario :attr:`tm_isdst` se establece en ``0``." -#: ../Doc/library/datetime.rst:1338 +#: ../Doc/library/datetime.rst:1352 msgid "" "If :class:`.datetime` instance *d* is naive, this is the same as ``d." "timetuple()`` except that :attr:`tm_isdst` is forced to 0 regardless of what " @@ -2092,7 +2123,7 @@ msgstr "" "independientemente de lo que retorna ``d.dst( )``. El horario de verano " "nunca está en vigencia durante un horario UTC." -#: ../Doc/library/datetime.rst:1342 +#: ../Doc/library/datetime.rst:1356 msgid "" "If *d* is aware, *d* is normalized to UTC time, by subtracting ``d." "utcoffset()``, and a :class:`time.struct_time` for the normalized time is " @@ -2106,12 +2137,13 @@ msgstr "" "`OverflowError` puede aparecer si **d*.year** fue ``MINYEAR`` o ``MAXYEAR`` " "y el ajuste UTC se derrama durante el límite de un año." -#: ../Doc/library/datetime.rst:1351 +#: ../Doc/library/datetime.rst:1365 +#, fuzzy msgid "" "Because naive ``datetime`` objects are treated by many ``datetime`` methods " "as local times, it is preferred to use aware datetimes to represent times in " -"UTC; as a result, using ``utcfromtimetuple`` may give misleading results. If " -"you have a naive ``datetime`` representing UTC, use ``datetime." +"UTC; as a result, using :meth:`datetime.utctimetuple` may give misleading " +"results. If you have a naive ``datetime`` representing UTC, use ``datetime." "replace(tzinfo=timezone.utc)`` to make it aware, at which point you can use :" "meth:`.datetime.timetuple`." msgstr "" @@ -2123,7 +2155,7 @@ msgstr "" "replace(tzinfo=timezone.utc)`` para que sea consciente, en cuyo punto se " "puede usar :meth:`.datetime.timetuple`." -#: ../Doc/library/datetime.rst:1360 +#: ../Doc/library/datetime.rst:1374 msgid "" "Return the proleptic Gregorian ordinal of the date. The same as ``self." "date().toordinal()``." @@ -2131,7 +2163,7 @@ msgstr "" "Retorna el ordinal gregoriano proléptico de la fecha. Lo mismo que ``self." "date().toordinal()``." -#: ../Doc/library/datetime.rst:1365 +#: ../Doc/library/datetime.rst:1379 msgid "" "Return POSIX timestamp corresponding to the :class:`.datetime` instance. The " "return value is a :class:`float` similar to that returned by :func:`time." @@ -2141,13 +2173,15 @@ msgstr "" "instancia :class:`.datetime`. El valor de retorno es :class:`float` similar " "al retornado por :func:`time.time`." -#: ../Doc/library/datetime.rst:1369 +#: ../Doc/library/datetime.rst:1383 +#, fuzzy msgid "" "Naive :class:`.datetime` instances are assumed to represent local time and " "this method relies on the platform C :c:func:`mktime` function to perform " "the conversion. Since :class:`.datetime` supports wider range of values " "than :c:func:`mktime` on many platforms, this method may raise :exc:" -"`OverflowError` for times far in the past or far in the future." +"`OverflowError` or :exc:`OSError` for times far in the past or far in the " +"future." msgstr "" "Se supone que las instancias Naíf :class:`.datetime` representan la hora " "local y este método se basa en la función de plataforma C :c:func:`mktime` " @@ -2156,14 +2190,14 @@ msgstr "" "puede lanzar :exc:`OverflowError` para tiempos lejanos en el pasado o en el " "futuro." -#: ../Doc/library/datetime.rst:1376 +#: ../Doc/library/datetime.rst:1390 msgid "" "For aware :class:`.datetime` instances, the return value is computed as::" msgstr "" "Para las instancias de :class:`.datetime`, el valor de retorno se calcula " "como::" -#: ../Doc/library/datetime.rst:1383 +#: ../Doc/library/datetime.rst:1397 msgid "" "The :meth:`timestamp` method uses the :attr:`.fold` attribute to " "disambiguate the times during a repeated interval." @@ -2171,7 +2205,7 @@ msgstr "" "El método :meth:`timestamp` utiliza el atributo :attr:`.fold` para " "desambiguar los tiempos durante un intervalo repetido." -#: ../Doc/library/datetime.rst:1389 +#: ../Doc/library/datetime.rst:1403 msgid "" "There is no method to obtain the POSIX timestamp directly from a naive :" "class:`.datetime` instance representing UTC time. If your application uses " @@ -2184,11 +2218,11 @@ msgstr "" "sistema no está configurada en UTC, puede obtener la marca de tiempo POSIX " "al proporcionar ``tzinfo = timezone.utc``::" -#: ../Doc/library/datetime.rst:1397 +#: ../Doc/library/datetime.rst:1411 msgid "or by calculating the timestamp directly::" msgstr "o calculando la marca de tiempo (*timestamp*) directamente::" -#: ../Doc/library/datetime.rst:1403 +#: ../Doc/library/datetime.rst:1417 msgid "" "Return the day of the week as an integer, where Monday is 0 and Sunday is 6. " "The same as ``self.date().weekday()``. See also :meth:`isoweekday`." @@ -2196,7 +2230,7 @@ msgstr "" "Retorna el día de la semana como un entero, donde el lunes es 0 y el domingo " "es 6. Lo mismo que ``self.date().weekday()``. Ver también :meth:`isoweekday`." -#: ../Doc/library/datetime.rst:1409 +#: ../Doc/library/datetime.rst:1423 msgid "" "Return the day of the week as an integer, where Monday is 1 and Sunday is 7. " "The same as ``self.date().isoweekday()``. See also :meth:`weekday`, :meth:" @@ -2206,7 +2240,7 @@ msgstr "" "domingo es 7. Lo mismo que ``self.date().isoweekday()``. Ver también :meth:" "`weekday`, :meth:`isocalendar`." -#: ../Doc/library/datetime.rst:1416 +#: ../Doc/library/datetime.rst:1430 msgid "" "Return a :term:`named tuple` with three components: ``year``, ``week`` and " "``weekday``. The same as ``self.date().isocalendar()``." @@ -2214,21 +2248,21 @@ msgstr "" "Retorna una :term:`named tuple` con tres componentes: ``year``, ``week``, y " "``weekday``. Lo mismo que ``self.date().isocalendar()``." -#: ../Doc/library/datetime.rst:1422 +#: ../Doc/library/datetime.rst:1436 msgid "Return a string representing the date and time in ISO 8601 format:" msgstr "" "Retorna una cadena de caracteres representando la fecha y la hora en formato " "ISO 8601:" -#: ../Doc/library/datetime.rst:1424 +#: ../Doc/library/datetime.rst:1438 msgid "``YYYY-MM-DDTHH:MM:SS.ffffff``, if :attr:`microsecond` is not 0" msgstr "``YYYY-MM-DDTHH:MM:SS.ffffff``, si :attr:`microsecond` no es 0" -#: ../Doc/library/datetime.rst:1425 +#: ../Doc/library/datetime.rst:1439 msgid "``YYYY-MM-DDTHH:MM:SS``, if :attr:`microsecond` is 0" msgstr "``YYYY-MM-DDTHH:MM:SS``, si :attr:`microsecond` es 0" -#: ../Doc/library/datetime.rst:1427 +#: ../Doc/library/datetime.rst:1441 msgid "" "If :meth:`utcoffset` does not return ``None``, a string is appended, giving " "the UTC offset:" @@ -2236,7 +2270,7 @@ msgstr "" "Si :meth:`utcoffset` no retorna ``None``, se agrega una cadena de caracteres " "dando el desplazamiento UTC:" -#: ../Doc/library/datetime.rst:1430 +#: ../Doc/library/datetime.rst:1444 msgid "" "``YYYY-MM-DDTHH:MM:SS.ffffff+HH:MM[:SS[.ffffff]]``, if :attr:`microsecond` " "is not 0" @@ -2244,13 +2278,13 @@ msgstr "" "``YYYY-MM-DDTHH:MM:SS.ffffff+HH:MM[:SS[.ffffff]]``, si :attr:`microsecond` " "no es 0" -#: ../Doc/library/datetime.rst:1432 +#: ../Doc/library/datetime.rst:1446 msgid "" "``YYYY-MM-DDTHH:MM:SS+HH:MM[:SS[.ffffff]]``, if :attr:`microsecond` is 0" msgstr "" "``YYYY-MM-DDTHH:MM:SS+HH:MM[:SS[.ffffff]]``, si :attr:`microsecond` es 0" -#: ../Doc/library/datetime.rst:1442 +#: ../Doc/library/datetime.rst:1456 msgid "" "The optional argument *sep* (default ``'T'``) is a one-character separator, " "placed between the date and time portions of the result. For example::" @@ -2259,7 +2293,7 @@ msgstr "" "carácter, ubicado entre las porciones de fecha y hora del resultado. Por " "ejemplo::" -#: ../Doc/library/datetime.rst:1456 ../Doc/library/datetime.rst:1828 +#: ../Doc/library/datetime.rst:1470 ../Doc/library/datetime.rst:1843 msgid "" "The optional argument *timespec* specifies the number of additional " "components of the time to include (the default is ``'auto'``). It can be one " @@ -2269,7 +2303,7 @@ msgstr "" "adicionales del tiempo a incluir (el valor predeterminado es ``‘auto’``). " "Puede ser uno de los siguientes:" -#: ../Doc/library/datetime.rst:1460 ../Doc/library/datetime.rst:1832 +#: ../Doc/library/datetime.rst:1474 ../Doc/library/datetime.rst:1847 msgid "" "``'auto'``: Same as ``'seconds'`` if :attr:`microsecond` is 0, same as " "``'microseconds'`` otherwise." @@ -2277,18 +2311,18 @@ msgstr "" "``’auto’``: Igual que ``’seconds’`` si :attr:`microsecond` es 0, igual que " "``’microseconds’`` de lo contrario." -#: ../Doc/library/datetime.rst:1462 ../Doc/library/datetime.rst:1834 +#: ../Doc/library/datetime.rst:1476 ../Doc/library/datetime.rst:1849 msgid "``'hours'``: Include the :attr:`hour` in the two-digit ``HH`` format." msgstr "" "``’hours’``: incluye el :attr:`hour` en el formato de dos dígitos ``HH``." -#: ../Doc/library/datetime.rst:1463 ../Doc/library/datetime.rst:1835 +#: ../Doc/library/datetime.rst:1477 ../Doc/library/datetime.rst:1850 msgid "" "``'minutes'``: Include :attr:`hour` and :attr:`minute` in ``HH:MM`` format." msgstr "" "``’minutes’``: Incluye :attr:`hour` y :attr:`minute` en formato ``HH:MM``." -#: ../Doc/library/datetime.rst:1464 ../Doc/library/datetime.rst:1836 +#: ../Doc/library/datetime.rst:1478 ../Doc/library/datetime.rst:1851 msgid "" "``'seconds'``: Include :attr:`hour`, :attr:`minute`, and :attr:`second` in " "``HH:MM:SS`` format." @@ -2296,7 +2330,7 @@ msgstr "" "``’seconds’``: Incluye :attr:`hour`, :attr:`minute`, y :attr:`second` en " "formato ``HH:MM:SS``." -#: ../Doc/library/datetime.rst:1466 ../Doc/library/datetime.rst:1838 +#: ../Doc/library/datetime.rst:1480 ../Doc/library/datetime.rst:1853 msgid "" "``'milliseconds'``: Include full time, but truncate fractional second part " "to milliseconds. ``HH:MM:SS.sss`` format." @@ -2304,24 +2338,24 @@ msgstr "" "``’milliseconds’``: Incluye tiempo completo, pero trunca la segunda parte " "fraccionaria a milisegundos. Formato ``HH:MM:SS.sss``." -#: ../Doc/library/datetime.rst:1468 ../Doc/library/datetime.rst:1840 +#: ../Doc/library/datetime.rst:1482 ../Doc/library/datetime.rst:1855 msgid "``'microseconds'``: Include full time in ``HH:MM:SS.ffffff`` format." msgstr "" "``’microseconds’``: Incluye tiempo completo en formato ``HH:MM:SS.ffffff``." -#: ../Doc/library/datetime.rst:1472 ../Doc/library/datetime.rst:1844 +#: ../Doc/library/datetime.rst:1486 ../Doc/library/datetime.rst:1859 msgid "Excluded time components are truncated, not rounded." msgstr "Los componentes de tiempo excluidos están truncados, no redondeados." -#: ../Doc/library/datetime.rst:1474 +#: ../Doc/library/datetime.rst:1488 msgid ":exc:`ValueError` will be raised on an invalid *timespec* argument::" msgstr ":exc:`ValueError` lanzará un argumento inválido *timespec*::" -#: ../Doc/library/datetime.rst:1484 ../Doc/library/datetime.rst:1859 +#: ../Doc/library/datetime.rst:1498 ../Doc/library/datetime.rst:1874 msgid "Added the *timespec* argument." msgstr "Se agregó el argumento *timespec*." -#: ../Doc/library/datetime.rst:1490 +#: ../Doc/library/datetime.rst:1504 msgid "" "For a :class:`.datetime` instance *d*, ``str(d)`` is equivalent to ``d." "isoformat(' ')``." @@ -2329,11 +2363,11 @@ msgstr "" "Para una instancia de la :class:`.datetime` *d*, ``str(d)`` es equivalente a " "``d.isoformat(' ')``." -#: ../Doc/library/datetime.rst:1496 +#: ../Doc/library/datetime.rst:1510 msgid "Return a string representing the date and time::" msgstr "Retorna una cadena de caracteres que representa la fecha y la hora::" -#: ../Doc/library/datetime.rst:1502 +#: ../Doc/library/datetime.rst:1516 msgid "" "The output string will *not* include time zone information, regardless of " "whether the input is aware or naive." @@ -2341,7 +2375,7 @@ msgstr "" "La cadena de salida *no* incluirá información de zona horaria, " "independientemente de si la entrada es consciente (*aware*) o naíf (*naive*)." -#: ../Doc/library/datetime.rst:1509 +#: ../Doc/library/datetime.rst:1523 msgid "" "on platforms where the native C :c:func:`ctime` function (which :func:`time." "ctime` invokes, but which :meth:`datetime.ctime` does not invoke) conforms " @@ -2351,23 +2385,25 @@ msgstr "" "ctime` invoca, pero que :meth:`datetime.ctime` no invoca) se ajusta al " "estándar *C*." -#: ../Doc/library/datetime.rst:1515 +#: ../Doc/library/datetime.rst:1530 +#, fuzzy msgid "" "Return a string representing the date and time, controlled by an explicit " -"format string. For a complete list of formatting directives, see :ref:" -"`strftime-strptime-behavior`." +"format string. See also :ref:`strftime-strptime-behavior` and :meth:" +"`datetime.isoformat`." msgstr "" "Retorna una cadena de caracteres que representa la fecha y la hora, " "controlada por una cadena de formato explícito. Para obtener una lista " "completa de las directivas de formato, consulte :ref:`strftime-strptime-" "behavior`." -#: ../Doc/library/datetime.rst:1522 +#: ../Doc/library/datetime.rst:1537 +#, fuzzy msgid "" "Same as :meth:`.datetime.strftime`. This makes it possible to specify a " "format string for a :class:`.datetime` object in :ref:`formatted string " -"literals ` and when using :meth:`str.format`. For a complete list " -"of formatting directives, see :ref:`strftime-strptime-behavior`." +"literals ` and when using :meth:`str.format`. See also :ref:" +"`strftime-strptime-behavior` and :meth:`datetime.isoformat`." msgstr "" "Igual que :meth:`.date.strftime`. Esto hace posible especificar una cadena " "de formato para un objeto :class:`.date` en :ref:`literales de cadena con " @@ -2375,15 +2411,15 @@ msgstr "" "lista completa de las directivas de formato, consulte :ref:`strftime-" "strptime-behavior`." -#: ../Doc/library/datetime.rst:1529 +#: ../Doc/library/datetime.rst:1544 msgid "Examples of Usage: :class:`.datetime`" msgstr "Ejemplos de uso: :class:`.datetime`" -#: ../Doc/library/datetime.rst:1531 +#: ../Doc/library/datetime.rst:1546 msgid "Examples of working with :class:`~datetime.datetime` objects:" msgstr "Ejemplos de trabajo con objetos :class:`~datetime.datetime`:" -#: ../Doc/library/datetime.rst:1584 +#: ../Doc/library/datetime.rst:1599 msgid "" "The example below defines a :class:`tzinfo` subclass capturing time zone " "information for Kabul, Afghanistan, which used +4 UTC until 1945 and then " @@ -2393,15 +2429,15 @@ msgstr "" "información de zona horaria de *Kabul*, Afganistán, que utilizó +4 UTC hasta " "1945 y +4:30 UTC a partir de entonces::" -#: ../Doc/library/datetime.rst:1631 +#: ../Doc/library/datetime.rst:1646 msgid "Usage of ``KabulTz`` from above::" msgstr "Uso de ``KabulTz`` desde arriba ::" -#: ../Doc/library/datetime.rst:1657 +#: ../Doc/library/datetime.rst:1672 msgid ":class:`.time` Objects" msgstr "Objetos :class:`.time`" -#: ../Doc/library/datetime.rst:1659 +#: ../Doc/library/datetime.rst:1674 msgid "" "A :class:`time` object represents a (local) time of day, independent of any " "particular day, and subject to adjustment via a :class:`tzinfo` object." @@ -2410,7 +2446,7 @@ msgstr "" "de cualquier día en particular, y está sujeto a ajustes a través de un " "objeto :class:`tzinfo`." -#: ../Doc/library/datetime.rst:1664 +#: ../Doc/library/datetime.rst:1679 msgid "" "All arguments are optional. *tzinfo* may be ``None``, or an instance of a :" "class:`tzinfo` subclass. The remaining arguments must be integers in the " @@ -2420,7 +2456,7 @@ msgstr "" "instancia de una subclase :class:`tzinfo`. Los argumentos restantes deben " "ser enteros en los siguientes rangos:" -#: ../Doc/library/datetime.rst:1674 +#: ../Doc/library/datetime.rst:1689 msgid "" "If an argument outside those ranges is given, :exc:`ValueError` is raised. " "All default to ``0`` except *tzinfo*, which defaults to :const:`None`." @@ -2429,15 +2465,15 @@ msgstr "" "`ValueError`. Todo predeterminado a ``0`` excepto *tzinfo*, que por defecto " "es :const:`None`." -#: ../Doc/library/datetime.rst:1682 +#: ../Doc/library/datetime.rst:1697 msgid "The earliest representable :class:`.time`, ``time(0, 0, 0, 0)``." msgstr "El primero representable :class:`.time`,``time (0, 0, 0, 0)``." -#: ../Doc/library/datetime.rst:1687 +#: ../Doc/library/datetime.rst:1702 msgid "The latest representable :class:`.time`, ``time(23, 59, 59, 999999)``." msgstr "El último representable :class:`.time`, ``time(23, 59, 59, 999999)``." -#: ../Doc/library/datetime.rst:1692 +#: ../Doc/library/datetime.rst:1707 msgid "" "The smallest possible difference between non-equal :class:`.time` objects, " "``timedelta(microseconds=1)``, although note that arithmetic on :class:`." @@ -2447,7 +2483,7 @@ msgstr "" "time`, ``timedelta(microseconds=1)``, aunque tenga en cuenta que la " "aritmética en objetos :class:`.time` no es compatible." -#: ../Doc/library/datetime.rst:1721 +#: ../Doc/library/datetime.rst:1736 msgid "" "The object passed as the tzinfo argument to the :class:`.time` constructor, " "or ``None`` if none was passed." @@ -2455,7 +2491,7 @@ msgstr "" "El objeto pasado como argumento *tzinfo* al constructor de la clase :class:`." "time` , o ``None`` si no se pasó ninguno." -#: ../Doc/library/datetime.rst:1735 +#: ../Doc/library/datetime.rst:1750 msgid "" ":class:`.time` objects support comparison of :class:`.time` to :class:`." "time`, where *a* is considered less than *b* when *a* precedes *b* in time. " @@ -2470,7 +2506,7 @@ msgstr "" "comparaciones de igualdad, las instancias naíf nunca son iguales a las " "instancias conscientes (*aware*)." -#: ../Doc/library/datetime.rst:1741 +#: ../Doc/library/datetime.rst:1756 msgid "" "If both comparands are aware, and have the same :attr:`~time.tzinfo` " "attribute, the common :attr:`~time.tzinfo` attribute is ignored and the base " @@ -2495,7 +2531,7 @@ msgstr "" "``!=``. Los últimos casos retornan :const:`False` o :const:`True`, " "respectivamente." -#: ../Doc/library/datetime.rst:1751 +#: ../Doc/library/datetime.rst:1766 msgid "" "Equality comparisons between aware and naive :class:`~datetime.time` " "instances don't raise :exc:`TypeError`." @@ -2503,14 +2539,14 @@ msgstr "" "Las comparaciones de igualdad entre las instancias conscientes (*aware*) y " "naífs (*naive*) :class:`~datetime.time` no generan :exc:`TypeError`." -#: ../Doc/library/datetime.rst:1755 +#: ../Doc/library/datetime.rst:1770 msgid "" "In Boolean contexts, a :class:`.time` object is always considered to be true." msgstr "" "En contextos booleanos, un objeto :class:`.time` siempre se considera " "verdadero." -#: ../Doc/library/datetime.rst:1757 +#: ../Doc/library/datetime.rst:1772 msgid "" "Before Python 3.5, a :class:`.time` object was considered to be false if it " "represented midnight in UTC. This behavior was considered obscure and error-" @@ -2522,11 +2558,11 @@ msgstr "" "propenso a errores y se ha eliminado en Python 3.5. Ver :issue:`13936` para " "más detalles." -#: ../Doc/library/datetime.rst:1764 +#: ../Doc/library/datetime.rst:1779 msgid "Other constructor:" msgstr "Otro constructor:" -#: ../Doc/library/datetime.rst:1768 +#: ../Doc/library/datetime.rst:1783 msgid "" "Return a :class:`.time` corresponding to a *time_string* in any valid ISO " "8601 format, with the following exceptions:" @@ -2534,7 +2570,7 @@ msgstr "" "Devuelve un :class:`.time` correspondiente a un *time_string* en cualquier " "formato ISO 8601 válido, con las siguientes excepciones:" -#: ../Doc/library/datetime.rst:1772 +#: ../Doc/library/datetime.rst:1787 msgid "" "The leading ``T``, normally required in cases where there may be ambiguity " "between a date and a time, is not required." @@ -2542,7 +2578,7 @@ msgstr "" "No se requiere el ``T`` inicial, que normalmente se requiere en los casos en " "que puede haber ambigüedad entre una fecha y una hora." -#: ../Doc/library/datetime.rst:1774 +#: ../Doc/library/datetime.rst:1789 msgid "" "Fractional seconds may have any number of digits (anything beyond 6 will be " "truncated)." @@ -2550,7 +2586,7 @@ msgstr "" "Las fracciones de segundo pueden tener cualquier número de dígitos " "(cualquier número más allá de 6 será truncado)." -#: ../Doc/library/datetime.rst:1800 +#: ../Doc/library/datetime.rst:1815 msgid "" "Previously, this method only supported formats that could be emitted by :" "meth:`time.isoformat()`." @@ -2558,7 +2594,7 @@ msgstr "" "Anteriormente, este método solo admitía formatos que podía emitir :meth:" "`time.isoformat()`." -#: ../Doc/library/datetime.rst:1810 +#: ../Doc/library/datetime.rst:1825 msgid "" "Return a :class:`.time` with the same value, except for those attributes " "given new values by whichever keyword arguments are specified. Note that " @@ -2571,19 +2607,19 @@ msgstr "" "especificar para crear una :class:`.time` naíf (*naive*) desde un consciente " "(*aware*) :class:`.time`, sin conversión de los datos de tiempo." -#: ../Doc/library/datetime.rst:1821 +#: ../Doc/library/datetime.rst:1836 msgid "Return a string representing the time in ISO 8601 format, one of:" msgstr "Retorna una cadena que representa la hora en formato ISO 8601, una de:" -#: ../Doc/library/datetime.rst:1823 +#: ../Doc/library/datetime.rst:1838 msgid "``HH:MM:SS.ffffff``, if :attr:`microsecond` is not 0" msgstr "``HH:MM:SS.ffffff``, si :attr:`microsecond` no es 0" -#: ../Doc/library/datetime.rst:1824 +#: ../Doc/library/datetime.rst:1839 msgid "``HH:MM:SS``, if :attr:`microsecond` is 0" msgstr "``HH:MM:SS``, si :attr:`microsecond` es 0" -#: ../Doc/library/datetime.rst:1825 +#: ../Doc/library/datetime.rst:1840 msgid "" "``HH:MM:SS.ffffff+HH:MM[:SS[.ffffff]]``, if :meth:`utcoffset` does not " "return ``None``" @@ -2591,7 +2627,7 @@ msgstr "" "``HH:MM:SS.ffffff+HH:MM[:SS[.ffffff]]``, si :meth:`utcoffset` no retorna " "``None``" -#: ../Doc/library/datetime.rst:1826 +#: ../Doc/library/datetime.rst:1841 msgid "" "``HH:MM:SS+HH:MM[:SS[.ffffff]]``, if :attr:`microsecond` is 0 and :meth:" "`utcoffset` does not return ``None``" @@ -2599,30 +2635,32 @@ msgstr "" "``HH:MM:SS+HH:MM[:SS[.ffffff]]``, si :attr:`microsecond` es 0 y :meth:" "`utcoffset` no retorna ``None``" -#: ../Doc/library/datetime.rst:1846 +#: ../Doc/library/datetime.rst:1861 msgid ":exc:`ValueError` will be raised on an invalid *timespec* argument." msgstr ":exc:`ValueError` lanzará un argumento inválido *timespec*." -#: ../Doc/library/datetime.rst:1865 +#: ../Doc/library/datetime.rst:1880 msgid "For a time *t*, ``str(t)`` is equivalent to ``t.isoformat()``." msgstr "Durante un tiempo *t*, ``str(t)`` es equivalente a ``t.isoformat()``." -#: ../Doc/library/datetime.rst:1870 +#: ../Doc/library/datetime.rst:1885 +#, fuzzy msgid "" "Return a string representing the time, controlled by an explicit format " -"string. For a complete list of formatting directives, see :ref:`strftime-" -"strptime-behavior`." +"string. See also :ref:`strftime-strptime-behavior` and :meth:`time." +"isoformat`." msgstr "" "Retorna una cadena que representa la hora, controlada por una cadena de " "formato explícito. Para obtener una lista completa de las directivas de " "formato, consulte :ref:`strftime-strptime-behavior`." -#: ../Doc/library/datetime.rst:1877 +#: ../Doc/library/datetime.rst:1891 +#, fuzzy msgid "" "Same as :meth:`.time.strftime`. This makes it possible to specify a format " "string for a :class:`.time` object in :ref:`formatted string literals ` and when using :meth:`str.format`. For a complete list of " -"formatting directives, see :ref:`strftime-strptime-behavior`." +"strings>` and when using :meth:`str.format`. See also :ref:`strftime-" +"strptime-behavior` and :meth:`time.isoformat`." msgstr "" "Igual que :meth:`.time.strftime`. Esto permite especificar una cadena de " "formato para un objeto :class:`.time` en :ref:`cadenas de caracteres " @@ -2630,7 +2668,7 @@ msgstr "" "obtener una lista completa de las directivas de formato, consulte :ref:" "`strftime-strptime-behavior`." -#: ../Doc/library/datetime.rst:1886 +#: ../Doc/library/datetime.rst:1899 msgid "" "If :attr:`.tzinfo` is ``None``, returns ``None``, else returns ``self.tzinfo." "utcoffset(None)``, and raises an exception if the latter doesn't return " @@ -2640,7 +2678,7 @@ msgstr "" "utcoffset(None)``, y genera una excepción si este último no retorna ``None`` " "o un objeto de :class:`timedelta` con magnitud inferior a un día." -#: ../Doc/library/datetime.rst:1896 +#: ../Doc/library/datetime.rst:1909 msgid "" "If :attr:`.tzinfo` is ``None``, returns ``None``, else returns ``self.tzinfo." "dst(None)``, and raises an exception if the latter doesn't return ``None``, " @@ -2650,7 +2688,7 @@ msgstr "" "utcoffset(None)``, y genera una excepción si este último no retorna " "``None``, o un objeto de :class:`timedelta` con magnitud inferior a un día." -#: ../Doc/library/datetime.rst:1905 +#: ../Doc/library/datetime.rst:1918 msgid "" "If :attr:`.tzinfo` is ``None``, returns ``None``, else returns ``self.tzinfo." "tzname(None)``, or raises an exception if the latter doesn't return ``None`` " @@ -2660,19 +2698,19 @@ msgstr "" "tzname(None)``, o genera una excepción si este último no retorna ``None`` o " "un objeto de cadena." -#: ../Doc/library/datetime.rst:1910 +#: ../Doc/library/datetime.rst:1923 msgid "Examples of Usage: :class:`.time`" msgstr "Ejemplos de uso: :class:`.time`" -#: ../Doc/library/datetime.rst:1912 +#: ../Doc/library/datetime.rst:1925 msgid "Examples of working with a :class:`.time` object::" msgstr "Ejemplos de trabajo con el objeto :class:`.time`::" -#: ../Doc/library/datetime.rst:1943 +#: ../Doc/library/datetime.rst:1956 msgid ":class:`tzinfo` Objects" msgstr "Objetos :class:`tzinfo`" -#: ../Doc/library/datetime.rst:1947 +#: ../Doc/library/datetime.rst:1960 msgid "" "This is an abstract base class, meaning that this class should not be " "instantiated directly. Define a subclass of :class:`tzinfo` to capture " @@ -2682,7 +2720,7 @@ msgstr "" "ser instanciada directamente. Defina una subclase de :class:`tzinfo` para " "capturar información sobre una zona horaria particular." -#: ../Doc/library/datetime.rst:1951 +#: ../Doc/library/datetime.rst:1964 msgid "" "An instance of (a concrete subclass of) :class:`tzinfo` can be passed to the " "constructors for :class:`.datetime` and :class:`.time` objects. The latter " @@ -2698,7 +2736,7 @@ msgstr "" "UTC, el nombre de la zona horaria y el desplazamiento DST, todo en relación " "con un objeto de fecha u hora pasó a ellos." -#: ../Doc/library/datetime.rst:1957 +#: ../Doc/library/datetime.rst:1970 msgid "" "You need to derive a concrete subclass, and (at least) supply " "implementations of the standard :class:`tzinfo` methods needed by the :class:" @@ -2714,7 +2752,7 @@ msgstr "" "`tzinfo` que puede representar zonas horarias con desplazamiento fijo desde " "UTC como UTC o Norte América EST y EDT." -#: ../Doc/library/datetime.rst:1964 +#: ../Doc/library/datetime.rst:1977 msgid "" "Special requirement for pickling: A :class:`tzinfo` subclass must have an :" "meth:`__init__` method that can be called with no arguments, otherwise it " @@ -2726,7 +2764,7 @@ msgstr "" "contrario, se puede hacer *pickling* pero posiblemente no se vuelva a " "despegar. Este es un requisito técnico que puede ser relajado en el futuro." -#: ../Doc/library/datetime.rst:1969 +#: ../Doc/library/datetime.rst:1982 msgid "" "A concrete subclass of :class:`tzinfo` may need to implement the following " "methods. Exactly which methods are needed depends on the uses made of aware :" @@ -2737,7 +2775,7 @@ msgstr "" "usos de los objetos conscientes(*aware*) :mod:`datetime`. En caso de duda, " "simplemente implemente todos ellos." -#: ../Doc/library/datetime.rst:1976 +#: ../Doc/library/datetime.rst:1989 msgid "" "Return offset of local time from UTC, as a :class:`timedelta` object that is " "positive east of UTC. If local time is west of UTC, this should be negative." @@ -2746,7 +2784,7 @@ msgstr "" "`timedelta` que es positivo al este de UTC. Si la hora local es al oeste de " "UTC, esto debería ser negativo." -#: ../Doc/library/datetime.rst:1979 +#: ../Doc/library/datetime.rst:1992 msgid "" "This represents the *total* offset from UTC; for example, if a :class:" "`tzinfo` object represents both time zone and DST adjustments, :meth:" @@ -2765,7 +2803,7 @@ msgstr "" "La mayoría de las implementaciones de :meth:`utcoffset` probablemente se " "parecerán a una de estas dos::" -#: ../Doc/library/datetime.rst:1990 +#: ../Doc/library/datetime.rst:2003 msgid "" "If :meth:`utcoffset` does not return ``None``, :meth:`dst` should not return " "``None`` either." @@ -2773,7 +2811,7 @@ msgstr "" "Si :meth:`utcoffset` no retorna ``None``, :meth:`dst` no debería retornar " "``None`` tampoco." -#: ../Doc/library/datetime.rst:1993 +#: ../Doc/library/datetime.rst:2006 msgid "" "The default implementation of :meth:`utcoffset` raises :exc:" "`NotImplementedError`." @@ -2781,7 +2819,7 @@ msgstr "" "La implementación por defecto de :meth:`utcoffset` genera :exc:" "`NotImplementedError`." -#: ../Doc/library/datetime.rst:2002 +#: ../Doc/library/datetime.rst:2015 msgid "" "Return the daylight saving time (DST) adjustment, as a :class:`timedelta` " "object or ``None`` if DST information isn't known." @@ -2789,7 +2827,7 @@ msgstr "" "Retorna el ajuste del horario de verano (DST), como un objeto de :class:" "`timedelta` o ``None`` si no se conoce la información de DST." -#: ../Doc/library/datetime.rst:2006 +#: ../Doc/library/datetime.rst:2019 msgid "" "Return ``timedelta(0)`` if DST is not in effect. If DST is in effect, return " "the offset as a :class:`timedelta` object (see :meth:`utcoffset` for " @@ -2812,7 +2850,7 @@ msgstr "" "indicador :attr:`tm_isdst`, y :meth:`tzinfo.fromutc` llama :meth:`dst` para " "tener en cuenta los cambios de horario de verano al cruzar zonas horarias." -#: ../Doc/library/datetime.rst:2016 +#: ../Doc/library/datetime.rst:2029 msgid "" "An instance *tz* of a :class:`tzinfo` subclass that models both standard and " "daylight times must be consistent in this sense:" @@ -2820,11 +2858,11 @@ msgstr "" "Una instancia *tz* de una subclase :class:`tzinfo` que modela los horarios " "estándar y diurnos debe ser coherente en este sentido:" -#: ../Doc/library/datetime.rst:2019 +#: ../Doc/library/datetime.rst:2032 msgid "``tz.utcoffset(dt) - tz.dst(dt)``" msgstr "``tz.utcoffset(dt) - tz.dst(dt)``" -#: ../Doc/library/datetime.rst:2021 +#: ../Doc/library/datetime.rst:2034 msgid "" "must return the same result for every :class:`.datetime` *dt* with ``dt." "tzinfo == tz`` For sane :class:`tzinfo` subclasses, this expression yields " @@ -2846,7 +2884,7 @@ msgstr "" "implementación predeterminada de :meth:`tzinfo.fromutc` para que funcione " "correctamente con :meth:`astimezone` independientemente." -#: ../Doc/library/datetime.rst:2030 +#: ../Doc/library/datetime.rst:2043 msgid "" "Most implementations of :meth:`dst` will probably look like one of these " "two::" @@ -2854,18 +2892,18 @@ msgstr "" "La mayoría de las implementaciones de :meth:`dst` probablemente se parecerán " "a una de estas dos::" -#: ../Doc/library/datetime.rst:2036 +#: ../Doc/library/datetime.rst:2049 msgid "or::" msgstr "o::" -#: ../Doc/library/datetime.rst:2048 +#: ../Doc/library/datetime.rst:2061 msgid "" "The default implementation of :meth:`dst` raises :exc:`NotImplementedError`." msgstr "" "La implementación predeterminada de :meth:`dst` genera :exc:" "`NotImplementedError`." -#: ../Doc/library/datetime.rst:2056 +#: ../Doc/library/datetime.rst:2069 msgid "" "Return the time zone name corresponding to the :class:`.datetime` object " "*dt*, as a string. Nothing about string names is defined by the :mod:" @@ -2889,7 +2927,7 @@ msgstr "" "especialmente si la clase :class:`tzinfo` es contable para el horario de " "verano." -#: ../Doc/library/datetime.rst:2066 +#: ../Doc/library/datetime.rst:2079 msgid "" "The default implementation of :meth:`tzname` raises :exc:" "`NotImplementedError`." @@ -2897,7 +2935,7 @@ msgstr "" "La implementación predeterminada de :meth:`tzname` genera :exc:" "`NotImplementedError`." -#: ../Doc/library/datetime.rst:2069 +#: ../Doc/library/datetime.rst:2082 msgid "" "These methods are called by a :class:`.datetime` or :class:`.time` object, " "in response to their methods of the same names. A :class:`.datetime` object " @@ -2913,7 +2951,7 @@ msgstr "" "`tzinfo` deben, por lo tanto, estar preparados para aceptar un argumento " "*dt* de ``None``, o de clase :class:`.datetime`." -#: ../Doc/library/datetime.rst:2075 +#: ../Doc/library/datetime.rst:2088 msgid "" "When ``None`` is passed, it's up to the class designer to decide the best " "response. For example, returning ``None`` is appropriate if the class wishes " @@ -2928,7 +2966,7 @@ msgstr "" "desplazamiento UTC estándar, ya que no existe otra convención para descubrir " "el desplazamiento estándar." -#: ../Doc/library/datetime.rst:2081 +#: ../Doc/library/datetime.rst:2094 msgid "" "When a :class:`.datetime` object is passed in response to a :class:`." "datetime` method, ``dt.tzinfo`` is the same object as *self*. :class:" @@ -2944,14 +2982,14 @@ msgstr "" "`tzinfo` interpreten *dt* como si estuvieran en la hora local, y no " "necesiten preocuparse por los objetos en otras zonas horarias." -#: ../Doc/library/datetime.rst:2087 +#: ../Doc/library/datetime.rst:2100 msgid "" "There is one more :class:`tzinfo` method that a subclass may wish to " "override:" msgstr "" "Hay un método más :class:`tzinfo` que una subclase puede desear anular:" -#: ../Doc/library/datetime.rst:2092 +#: ../Doc/library/datetime.rst:2105 msgid "" "This is called from the default :class:`datetime.astimezone()` " "implementation. When called from that, ``dt.tzinfo`` is *self*, and *dt*'s " @@ -2965,7 +3003,7 @@ msgstr "" "propósito de :meth:`fromutc` es ajustar los datos de fecha y hora, " "retornando una fecha y hora equivalente en la hora local de *self*." -#: ../Doc/library/datetime.rst:2098 +#: ../Doc/library/datetime.rst:2111 msgid "" "Most :class:`tzinfo` subclasses should be able to inherit the default :meth:" "`fromutc` implementation without problems. It's strong enough to handle " @@ -2992,7 +3030,7 @@ msgstr "" "el resultado es una de las horas a horcajadas en el momento en que cambia el " "desplazamiento estándar." -#: ../Doc/library/datetime.rst:2109 +#: ../Doc/library/datetime.rst:2122 msgid "" "Skipping code for error cases, the default :meth:`fromutc` implementation " "acts like::" @@ -3000,7 +3038,7 @@ msgstr "" "Código de omisión para casos de error, el valor predeterminado :meth:" "`fromutc` la implementación actúa como ::" -#: ../Doc/library/datetime.rst:2127 +#: ../Doc/library/datetime.rst:2140 msgid "" "In the following :download:`tzinfo_examples.py <../includes/tzinfo_examples." "py>` file there are some examples of :class:`tzinfo` classes:" @@ -3008,7 +3046,7 @@ msgstr "" "En el siguiente archivo :download:`tzinfo_examples.py <../includes/" "tzinfo_examples.py>` hay algunos ejemplos de clases :class:`tzinfo`:" -#: ../Doc/library/datetime.rst:2133 +#: ../Doc/library/datetime.rst:2146 msgid "" "Note that there are unavoidable subtleties twice per year in a :class:" "`tzinfo` subclass accounting for both standard and daylight time, at the DST " @@ -3023,7 +3061,7 @@ msgstr "" "1:59 (EST) el segundo domingo de marzo y termina el minuto después de 1:59 " "(EDT) el primer domingo de noviembre ::" -#: ../Doc/library/datetime.rst:2147 +#: ../Doc/library/datetime.rst:2160 msgid "" "When DST starts (the \"start\" line), the local wall clock leaps from 1:59 " "to 3:00. A wall time of the form 2:MM doesn't really make sense on that day, " @@ -3038,7 +3076,7 @@ msgstr "" "comienza el horario de verano. Por ejemplo, en la transición de primavera de " "2016, obtenemos ::" -#: ../Doc/library/datetime.rst:2166 +#: ../Doc/library/datetime.rst:2179 msgid "" "When DST ends (the \"end\" line), there's a potentially worse problem: " "there's an hour that can't be spelled unambiguously in local wall time: the " @@ -3065,7 +3103,7 @@ msgstr "" "fold` establecido en 0 y los tiempos posteriores configúrelo en 1. Por " "ejemplo, en la transición alternativa de 2016, obtenemos::" -#: ../Doc/library/datetime.rst:2188 +#: ../Doc/library/datetime.rst:2201 msgid "" "Note that the :class:`.datetime` instances that differ only by the value of " "the :attr:`~datetime.fold` attribute are considered equal in comparisons." @@ -3074,7 +3112,7 @@ msgstr "" "el valor del atributo :attr:`~datetime.fold` se consideran iguales en las " "comparaciones." -#: ../Doc/library/datetime.rst:2191 +#: ../Doc/library/datetime.rst:2204 msgid "" "Applications that can't bear wall-time ambiguities should explicitly check " "the value of the :attr:`~datetime.fold` attribute or avoid using hybrid :" @@ -3090,11 +3128,11 @@ msgstr "" "de clase offset :class:`tzinfo` (como una clase que representa solo *EST* " "(desplazamiento fijo -5 horas), o solo EDT (desplazamiento fijo -4 horas))." -#: ../Doc/library/datetime.rst:2205 +#: ../Doc/library/datetime.rst:2218 msgid ":mod:`zoneinfo`" msgstr ":mod:`zoneinfo`" -#: ../Doc/library/datetime.rst:2200 +#: ../Doc/library/datetime.rst:2213 msgid "" "The :mod:`datetime` module has a basic :class:`timezone` class (for handling " "arbitrary fixed offsets from UTC) and its :attr:`timezone.utc` attribute (a " @@ -3104,7 +3142,7 @@ msgstr "" "manejar compensaciones fijas arbitrarias desde UTC) y su atributo :attr:" "`timezone.utc` (una instancia de zona horaria UTC)." -#: ../Doc/library/datetime.rst:2204 +#: ../Doc/library/datetime.rst:2217 msgid "" "``zoneinfo`` brings the *IANA timezone database* (also known as the Olson " "database) to Python, and its usage is recommended." @@ -3112,11 +3150,11 @@ msgstr "" "``zoneinfo`` trae la *base de datos de zonas horarias de la IANA* (también " "conocida como la base de datos Olson) a Python y se recomienda su uso." -#: ../Doc/library/datetime.rst:2211 +#: ../Doc/library/datetime.rst:2224 msgid "`IANA timezone database `_" msgstr "`IANA timezone database `_" -#: ../Doc/library/datetime.rst:2208 +#: ../Doc/library/datetime.rst:2221 msgid "" "The Time Zone Database (often called tz, tzdata or zoneinfo) contains code " "and data that represent the history of local time for many representative " @@ -3131,11 +3169,11 @@ msgstr "" "políticos en los límites de la zona horaria, las compensaciones UTC y las " "reglas de horario de verano." -#: ../Doc/library/datetime.rst:2218 +#: ../Doc/library/datetime.rst:2231 msgid ":class:`timezone` Objects" msgstr "Objetos :class:`timezone`" -#: ../Doc/library/datetime.rst:2220 +#: ../Doc/library/datetime.rst:2233 msgid "" "The :class:`timezone` class is a subclass of :class:`tzinfo`, each instance " "of which represents a timezone defined by a fixed offset from UTC." @@ -3144,7 +3182,7 @@ msgstr "" "las cuales representa una zona horaria definida por un desplazamiento fijo " "desde UTC." -#: ../Doc/library/datetime.rst:2224 +#: ../Doc/library/datetime.rst:2237 msgid "" "Objects of this class cannot be used to represent timezone information in " "the locations where different offsets are used in different days of the year " @@ -3155,7 +3193,7 @@ msgstr "" "diferentes días del año o donde se han realizado cambios históricos en la " "hora civil." -#: ../Doc/library/datetime.rst:2231 +#: ../Doc/library/datetime.rst:2244 msgid "" "The *offset* argument must be specified as a :class:`timedelta` object " "representing the difference between the local time and UTC. It must be " @@ -3167,7 +3205,7 @@ msgstr "" "estar estrictamente entre ``-timedelta(horas = 24)`` y ``timedelta(horas = " "24)``, de lo contrario :exc:`ValueError` se genera." -#: ../Doc/library/datetime.rst:2236 +#: ../Doc/library/datetime.rst:2249 msgid "" "The *name* argument is optional. If specified it must be a string that will " "be used as the value returned by the :meth:`datetime.tzname` method." @@ -3176,7 +3214,7 @@ msgstr "" "caracteres que se utilizará como el valor retornado por el método :meth:" "`datetime.tzname`." -#: ../Doc/library/datetime.rst:2247 ../Doc/library/datetime.rst:2258 +#: ../Doc/library/datetime.rst:2260 ../Doc/library/datetime.rst:2271 msgid "" "Return the fixed value specified when the :class:`timezone` instance is " "constructed." @@ -3184,7 +3222,7 @@ msgstr "" "Retorna el valor fijo especificado cuando se construye la instancia :class:" "`timezone`." -#: ../Doc/library/datetime.rst:2250 +#: ../Doc/library/datetime.rst:2263 msgid "" "The *dt* argument is ignored. The return value is a :class:`timedelta` " "instance equal to the difference between the local time and UTC." @@ -3192,7 +3230,7 @@ msgstr "" "El argumento *dt* se ignora. El valor de retorno es una instancia de :class:" "`timedelta` igual a la diferencia entre la hora local y UTC." -#: ../Doc/library/datetime.rst:2261 +#: ../Doc/library/datetime.rst:2274 msgid "" "If *name* is not provided in the constructor, the name returned by " "``tzname(dt)`` is generated from the value of the ``offset`` as follows. If " @@ -3207,7 +3245,7 @@ msgstr "" "``offset``, HH y MM son dos dígitos de ``offset.hours`` y ``offset.minutes`` " "respectivamente." -#: ../Doc/library/datetime.rst:2267 +#: ../Doc/library/datetime.rst:2280 msgid "" "Name generated from ``offset=timedelta(0)`` is now plain ``'UTC'``, not " "``'UTC+00:00'``." @@ -3215,11 +3253,11 @@ msgstr "" "El nombre generado a partir de ``offset=timedelta(0)`` ahora es simplemente " "``'UTC'``, no ``'UTC+00:00'``." -#: ../Doc/library/datetime.rst:2274 +#: ../Doc/library/datetime.rst:2287 msgid "Always returns ``None``." msgstr "Siempre retorna ``None``." -#: ../Doc/library/datetime.rst:2278 +#: ../Doc/library/datetime.rst:2291 msgid "" "Return ``dt + offset``. The *dt* argument must be an aware :class:`." "datetime` instance, with ``tzinfo`` set to ``self``." @@ -3227,15 +3265,15 @@ msgstr "" "Retorna ``dt + offset``. El argumento *dt* debe ser una instancia consciente " "(*aware*) :class:`.datetime`, con ``tzinfo`` establecido en ``self``." -#: ../Doc/library/datetime.rst:2285 +#: ../Doc/library/datetime.rst:2298 msgid "The UTC timezone, ``timezone(timedelta(0))``." msgstr "La zona horaria UTC, ``timezone(timedelta(0))``." -#: ../Doc/library/datetime.rst:2294 +#: ../Doc/library/datetime.rst:2307 msgid ":meth:`strftime` and :meth:`strptime` Behavior" msgstr "Comportamiento :meth:`strftime` y :meth:`strptime`" -#: ../Doc/library/datetime.rst:2296 +#: ../Doc/library/datetime.rst:2309 msgid "" ":class:`date`, :class:`.datetime`, and :class:`.time` objects all support a " "``strftime(format)`` method, to create a string representing the time under " @@ -3245,7 +3283,7 @@ msgstr "" "método ``strftime(format)``, para crear una cadena que represente el tiempo " "bajo el control de una cadena de caracteres de formato explícito." -#: ../Doc/library/datetime.rst:2300 +#: ../Doc/library/datetime.rst:2313 msgid "" "Conversely, the :meth:`datetime.strptime` class method creates a :class:`." "datetime` object from a string representing a date and time and a " @@ -3255,7 +3293,7 @@ msgstr "" "objeto :class:`.datetime` a partir de una cadena que representa una fecha y " "hora y una cadena de formato correspondiente." -#: ../Doc/library/datetime.rst:2304 +#: ../Doc/library/datetime.rst:2317 msgid "" "The table below provides a high-level comparison of :meth:`strftime` versus :" "meth:`strptime`:" @@ -3263,71 +3301,77 @@ msgstr "" "La siguiente tabla proporciona una comparación de alto nivel de :meth:" "`strftime` versus :meth:`strptime`:" -#: ../Doc/library/datetime.rst:2308 +#: ../Doc/library/datetime.rst:2321 msgid "``strftime``" msgstr "``strftime``" -#: ../Doc/library/datetime.rst:2308 +#: ../Doc/library/datetime.rst:2321 msgid "``strptime``" msgstr "``strptime``" -#: ../Doc/library/datetime.rst:2310 +#: ../Doc/library/datetime.rst:2323 msgid "Usage" msgstr "Uso" -#: ../Doc/library/datetime.rst:2310 +#: ../Doc/library/datetime.rst:2323 msgid "Convert object to a string according to a given format" msgstr "" "Convierte objetos en una cadena de caracteres de acuerdo con un formato dado" -#: ../Doc/library/datetime.rst:2310 +#: ../Doc/library/datetime.rst:2323 msgid "" "Parse a string into a :class:`.datetime` object given a corresponding format" msgstr "" "*parsear* una cadena en un objeto :class:`.datetime` con el formato " "correspondiente" -#: ../Doc/library/datetime.rst:2312 +#: ../Doc/library/datetime.rst:2325 msgid "Type of method" msgstr "Tipo de método" -#: ../Doc/library/datetime.rst:2312 +#: ../Doc/library/datetime.rst:2325 msgid "Instance method" msgstr "Método de instancia" -#: ../Doc/library/datetime.rst:2312 +#: ../Doc/library/datetime.rst:2325 msgid "Class method" msgstr "Método de clase" -#: ../Doc/library/datetime.rst:2314 +#: ../Doc/library/datetime.rst:2327 msgid "Method of" msgstr "Método de" -#: ../Doc/library/datetime.rst:2314 +#: ../Doc/library/datetime.rst:2327 msgid ":class:`date`; :class:`.datetime`; :class:`.time`" msgstr ":class:`date`; :class:`.datetime`; :class:`.time`" -#: ../Doc/library/datetime.rst:2314 +#: ../Doc/library/datetime.rst:2327 msgid ":class:`.datetime`" msgstr ":class:`.datetime`" -#: ../Doc/library/datetime.rst:2316 +#: ../Doc/library/datetime.rst:2329 msgid "Signature" msgstr "Firma" -#: ../Doc/library/datetime.rst:2316 +#: ../Doc/library/datetime.rst:2329 msgid "``strftime(format)``" msgstr "``strftime(format)``" -#: ../Doc/library/datetime.rst:2316 +#: ../Doc/library/datetime.rst:2329 msgid "``strptime(date_string, format)``" msgstr "``strptime(date_string, format)``" -#: ../Doc/library/datetime.rst:2321 +#: ../Doc/library/datetime.rst:2336 msgid ":meth:`strftime` and :meth:`strptime` Format Codes" msgstr "Códigos de formato :meth:`strftime` y :meth:`strptime`" -#: ../Doc/library/datetime.rst:2323 +#: ../Doc/library/datetime.rst:2338 +msgid "" +"These methods accept format codes that can be used to parse and format " +"dates::" +msgstr "" + +#: ../Doc/library/datetime.rst:2346 msgid "" "The following is a list of all the format codes that the 1989 C standard " "requires, and these work on all platforms with a standard C implementation." @@ -3336,27 +3380,27 @@ msgstr "" "estándar 1989 C, y estos funcionan en todas las plataformas con una " "implementación estándar C." -#: ../Doc/library/datetime.rst:2327 ../Doc/library/datetime.rst:2430 +#: ../Doc/library/datetime.rst:2350 ../Doc/library/datetime.rst:2453 msgid "Directive" msgstr "Directiva" -#: ../Doc/library/datetime.rst:2327 ../Doc/library/datetime.rst:2430 +#: ../Doc/library/datetime.rst:2350 ../Doc/library/datetime.rst:2453 msgid "Meaning" msgstr "Significado" -#: ../Doc/library/datetime.rst:2327 ../Doc/library/datetime.rst:2430 +#: ../Doc/library/datetime.rst:2350 ../Doc/library/datetime.rst:2453 msgid "Example" msgstr "Ejemplo" -#: ../Doc/library/datetime.rst:2327 ../Doc/library/datetime.rst:2430 +#: ../Doc/library/datetime.rst:2350 ../Doc/library/datetime.rst:2453 msgid "Notes" msgstr "Notas" -#: ../Doc/library/datetime.rst:2329 +#: ../Doc/library/datetime.rst:2352 msgid "``%a``" msgstr "``%a``" -#: ../Doc/library/datetime.rst:2329 +#: ../Doc/library/datetime.rst:2352 msgid "Weekday as locale's abbreviated name." msgstr "" "Día de la semana como nombre abreviado según la configuración regional." @@ -3369,11 +3413,11 @@ msgstr "*Sun, Mon, …, Sat (en_US)*;" msgid "So, Mo, ..., Sa (de_DE)" msgstr "*So, Mo, …, Sa (de_DE)*" -#: ../Doc/library/datetime.rst:2334 +#: ../Doc/library/datetime.rst:2357 msgid "``%A``" msgstr "``%A``" -#: ../Doc/library/datetime.rst:2334 +#: ../Doc/library/datetime.rst:2357 msgid "Weekday as locale's full name." msgstr "Día de la semana como nombre completo de la localidad." @@ -3385,44 +3429,44 @@ msgstr "*Sunday, Monday, …, Saturday (en_US)*;" msgid "Sonntag, Montag, ..., Samstag (de_DE)" msgstr "*Sonntag, Montag, …, Samstag (de_DE)*" -#: ../Doc/library/datetime.rst:2339 +#: ../Doc/library/datetime.rst:2362 msgid "``%w``" msgstr "``%w``" -#: ../Doc/library/datetime.rst:2339 +#: ../Doc/library/datetime.rst:2362 msgid "Weekday as a decimal number, where 0 is Sunday and 6 is Saturday." msgstr "" "Día de la semana como un número decimal, donde 0 es domingo y 6 es sábado." -#: ../Doc/library/datetime.rst:2339 +#: ../Doc/library/datetime.rst:2362 msgid "0, 1, ..., 6" msgstr "0, 1, …, 6" -#: ../Doc/library/datetime.rst:2343 +#: ../Doc/library/datetime.rst:2366 #, python-format msgid "``%d``" msgstr "``%d``" -#: ../Doc/library/datetime.rst:2343 +#: ../Doc/library/datetime.rst:2366 msgid "Day of the month as a zero-padded decimal number." msgstr "Día del mes como un número decimal rellenado con ceros." -#: ../Doc/library/datetime.rst:2343 +#: ../Doc/library/datetime.rst:2366 msgid "01, 02, ..., 31" msgstr "01, 02, …, 31" -#: ../Doc/library/datetime.rst:2343 ../Doc/library/datetime.rst:2356 -#: ../Doc/library/datetime.rst:2359 ../Doc/library/datetime.rst:2365 -#: ../Doc/library/datetime.rst:2368 ../Doc/library/datetime.rst:2374 -#: ../Doc/library/datetime.rst:2392 +#: ../Doc/library/datetime.rst:2366 ../Doc/library/datetime.rst:2379 +#: ../Doc/library/datetime.rst:2382 ../Doc/library/datetime.rst:2388 +#: ../Doc/library/datetime.rst:2391 ../Doc/library/datetime.rst:2397 +#: ../Doc/library/datetime.rst:2415 msgid "\\(9)" msgstr "\\(9)" -#: ../Doc/library/datetime.rst:2346 +#: ../Doc/library/datetime.rst:2369 msgid "``%b``" msgstr "``%b``" -#: ../Doc/library/datetime.rst:2346 +#: ../Doc/library/datetime.rst:2369 msgid "Month as locale's abbreviated name." msgstr "Mes como nombre abreviado según la configuración regional." @@ -3434,11 +3478,11 @@ msgstr "*Jan, Feb, …, Dec (en_US)*;" msgid "Jan, Feb, ..., Dez (de_DE)" msgstr "*Jan, Feb, …, Dez (de_DE)*" -#: ../Doc/library/datetime.rst:2351 +#: ../Doc/library/datetime.rst:2374 msgid "``%B``" msgstr "``%B``" -#: ../Doc/library/datetime.rst:2351 +#: ../Doc/library/datetime.rst:2374 msgid "Month as locale's full name." msgstr "Mes como nombre completo según la configuración regional." @@ -3450,67 +3494,67 @@ msgstr "*January, February, …, December (en_US)*;" msgid "Januar, Februar, ..., Dezember (de_DE)" msgstr "*Januar, Februar, …, Dezember (de_DE)*" -#: ../Doc/library/datetime.rst:2356 +#: ../Doc/library/datetime.rst:2379 msgid "``%m``" msgstr "``%m``" -#: ../Doc/library/datetime.rst:2356 +#: ../Doc/library/datetime.rst:2379 msgid "Month as a zero-padded decimal number." msgstr "Mes como un número decimal rellenado con ceros." -#: ../Doc/library/datetime.rst:2356 ../Doc/library/datetime.rst:2368 +#: ../Doc/library/datetime.rst:2379 ../Doc/library/datetime.rst:2391 msgid "01, 02, ..., 12" msgstr "01, 02, …, 12" -#: ../Doc/library/datetime.rst:2359 +#: ../Doc/library/datetime.rst:2382 msgid "``%y``" msgstr "``%y``" -#: ../Doc/library/datetime.rst:2359 +#: ../Doc/library/datetime.rst:2382 msgid "Year without century as a zero-padded decimal number." msgstr "Año sin siglo como un número decimal rellenado con ceros." -#: ../Doc/library/datetime.rst:2359 +#: ../Doc/library/datetime.rst:2382 msgid "00, 01, ..., 99" msgstr "00, 01, …, 99" -#: ../Doc/library/datetime.rst:2362 +#: ../Doc/library/datetime.rst:2385 msgid "``%Y``" msgstr "``%Y``" -#: ../Doc/library/datetime.rst:2362 +#: ../Doc/library/datetime.rst:2385 msgid "Year with century as a decimal number." msgstr "Año con siglo como número decimal." -#: ../Doc/library/datetime.rst:2362 ../Doc/library/datetime.rst:2432 +#: ../Doc/library/datetime.rst:2385 ../Doc/library/datetime.rst:2455 msgid "0001, 0002, ..., 2013, 2014, ..., 9998, 9999" msgstr "0001, 0002, …, 2013, 2014, …, 9998, 9999" -#: ../Doc/library/datetime.rst:2365 +#: ../Doc/library/datetime.rst:2388 msgid "``%H``" msgstr "``%H``" -#: ../Doc/library/datetime.rst:2365 +#: ../Doc/library/datetime.rst:2388 msgid "Hour (24-hour clock) as a zero-padded decimal number." msgstr "Hora (reloj de 24 horas) como un número decimal rellenado con ceros." -#: ../Doc/library/datetime.rst:2365 +#: ../Doc/library/datetime.rst:2388 msgid "00, 01, ..., 23" msgstr "00, 01, …, 23" -#: ../Doc/library/datetime.rst:2368 +#: ../Doc/library/datetime.rst:2391 msgid "``%I``" msgstr "``%I``" -#: ../Doc/library/datetime.rst:2368 +#: ../Doc/library/datetime.rst:2391 msgid "Hour (12-hour clock) as a zero-padded decimal number." msgstr "Hora (reloj de 12 horas) como un número decimal rellenado con ceros." -#: ../Doc/library/datetime.rst:2371 +#: ../Doc/library/datetime.rst:2394 msgid "``%p``" msgstr "``%p``" -#: ../Doc/library/datetime.rst:2371 +#: ../Doc/library/datetime.rst:2394 msgid "Locale's equivalent of either AM or PM." msgstr "El equivalente de la configuración regional de AM o PM." @@ -3522,56 +3566,56 @@ msgstr "AM, PM (en_US);" msgid "am, pm (de_DE)" msgstr "am, pm (de_DE)" -#: ../Doc/library/datetime.rst:2371 +#: ../Doc/library/datetime.rst:2394 msgid "\\(1), \\(3)" msgstr "\\(1), \\(3)" -#: ../Doc/library/datetime.rst:2374 +#: ../Doc/library/datetime.rst:2397 msgid "``%M``" msgstr "``%M``" -#: ../Doc/library/datetime.rst:2374 +#: ../Doc/library/datetime.rst:2397 msgid "Minute as a zero-padded decimal number." msgstr "Minuto como un número decimal rellenado con ceros." -#: ../Doc/library/datetime.rst:2374 ../Doc/library/datetime.rst:2377 +#: ../Doc/library/datetime.rst:2397 ../Doc/library/datetime.rst:2400 msgid "00, 01, ..., 59" msgstr "00, 01, …, 59" -#: ../Doc/library/datetime.rst:2377 +#: ../Doc/library/datetime.rst:2400 msgid "``%S``" msgstr "``%S``" -#: ../Doc/library/datetime.rst:2377 +#: ../Doc/library/datetime.rst:2400 msgid "Second as a zero-padded decimal number." msgstr "Segundo como un número decimal rellenado con ceros." -#: ../Doc/library/datetime.rst:2377 +#: ../Doc/library/datetime.rst:2400 msgid "\\(4), \\(9)" msgstr "\\(4), \\(9)" -#: ../Doc/library/datetime.rst:2380 +#: ../Doc/library/datetime.rst:2403 #, python-format msgid "``%f``" msgstr "``%f``" -#: ../Doc/library/datetime.rst:2380 +#: ../Doc/library/datetime.rst:2403 msgid "Microsecond as a decimal number, zero-padded to 6 digits." msgstr "Microsegundo como número decimal, con ceros hasta 6 dígitos." -#: ../Doc/library/datetime.rst:2380 +#: ../Doc/library/datetime.rst:2403 msgid "000000, 000001, ..., 999999" msgstr "000000, 000001, …, 999999" -#: ../Doc/library/datetime.rst:2380 +#: ../Doc/library/datetime.rst:2403 msgid "\\(5)" msgstr "\\(5)" -#: ../Doc/library/datetime.rst:2384 ../Doc/library/datetime.rst:2548 +#: ../Doc/library/datetime.rst:2407 ../Doc/library/datetime.rst:2576 msgid "``%z``" msgstr "``%z``" -#: ../Doc/library/datetime.rst:2384 +#: ../Doc/library/datetime.rst:2407 msgid "" "UTC offset in the form ``±HHMM[SS[.ffffff]]`` (empty string if the object is " "naive)." @@ -3579,45 +3623,46 @@ msgstr "" "Desplazamiento (*offset*) UTC en la forma ``±HHMM[SS[.ffffff]]`` (cadena de " "caracteres vacía si el objeto es naíf (*naive*))." -#: ../Doc/library/datetime.rst:2384 +#: ../Doc/library/datetime.rst:2407 msgid "(empty), +0000, -0400, +1030, +063415, -030712.345216" msgstr "(vacío), +0000, -0400, +1030, +063415, -030712.345216" -#: ../Doc/library/datetime.rst:2384 ../Doc/library/datetime.rst:2389 +#: ../Doc/library/datetime.rst:2407 ../Doc/library/datetime.rst:2412 +#: ../Doc/library/datetime.rst:2469 msgid "\\(6)" msgstr "\\(6)" -#: ../Doc/library/datetime.rst:2389 ../Doc/library/datetime.rst:2572 +#: ../Doc/library/datetime.rst:2412 ../Doc/library/datetime.rst:2604 msgid "``%Z``" msgstr "``%Z``" -#: ../Doc/library/datetime.rst:2389 +#: ../Doc/library/datetime.rst:2412 msgid "Time zone name (empty string if the object is naive)." msgstr "" "Nombre de zona horaria (cadena de caracteres vacía si el objeto es naíf " "(*naive*))." -#: ../Doc/library/datetime.rst:2389 +#: ../Doc/library/datetime.rst:2412 msgid "(empty), UTC, GMT" msgstr "(vacío), UTC, GMT" -#: ../Doc/library/datetime.rst:2392 +#: ../Doc/library/datetime.rst:2415 msgid "``%j``" msgstr "``%j``" -#: ../Doc/library/datetime.rst:2392 +#: ../Doc/library/datetime.rst:2415 msgid "Day of the year as a zero-padded decimal number." msgstr "Día del año como un número decimal rellenado con ceros." -#: ../Doc/library/datetime.rst:2392 +#: ../Doc/library/datetime.rst:2415 msgid "001, 002, ..., 366" msgstr "001, 002, …, 366" -#: ../Doc/library/datetime.rst:2395 +#: ../Doc/library/datetime.rst:2418 msgid "``%U``" msgstr "``%U``" -#: ../Doc/library/datetime.rst:2395 +#: ../Doc/library/datetime.rst:2418 msgid "" "Week number of the year (Sunday as the first day of the week) as a zero-" "padded decimal number. All days in a new year preceding the first Sunday are " @@ -3627,19 +3672,19 @@ msgstr "" "número decimal con ceros. Todos los días de un nuevo año que preceden al " "primer domingo se consideran en la semana 0." -#: ../Doc/library/datetime.rst:2395 ../Doc/library/datetime.rst:2403 +#: ../Doc/library/datetime.rst:2418 ../Doc/library/datetime.rst:2426 msgid "00, 01, ..., 53" msgstr "00, 01, …, 53" -#: ../Doc/library/datetime.rst:2395 ../Doc/library/datetime.rst:2403 +#: ../Doc/library/datetime.rst:2418 ../Doc/library/datetime.rst:2426 msgid "\\(7), \\(9)" msgstr "\\(7), \\(9)" -#: ../Doc/library/datetime.rst:2403 +#: ../Doc/library/datetime.rst:2426 msgid "``%W``" msgstr "``%W``" -#: ../Doc/library/datetime.rst:2403 +#: ../Doc/library/datetime.rst:2426 msgid "" "Week number of the year (Monday as the first day of the week) as a zero-" "padded decimal number. All days in a new year preceding the first Monday are " @@ -3649,12 +3694,12 @@ msgstr "" "decimal con ceros. Todos los días de un nuevo año que preceden al primer " "lunes se consideran en la semana 0." -#: ../Doc/library/datetime.rst:2411 +#: ../Doc/library/datetime.rst:2434 #, python-format msgid "``%c``" msgstr "``%c``" -#: ../Doc/library/datetime.rst:2411 +#: ../Doc/library/datetime.rst:2434 msgid "Locale's appropriate date and time representation." msgstr "Representación apropiada de fecha y hora de la configuración regional." @@ -3666,12 +3711,12 @@ msgstr "*Tue Aug 16 21:30:00 1988 (en_US)*;" msgid "Di 16 Aug 21:30:00 1988 (de_DE)" msgstr "*Di 16 Aug 21:30:00 1988 (de_DE)*" -#: ../Doc/library/datetime.rst:2416 +#: ../Doc/library/datetime.rst:2439 #, python-format msgid "``%x``" msgstr "``%x``" -#: ../Doc/library/datetime.rst:2416 +#: ../Doc/library/datetime.rst:2439 msgid "Locale's appropriate date representation." msgstr "Representación de fecha apropiada de la configuración regional." @@ -3687,12 +3732,12 @@ msgstr "08/16/1988 (en_US);" msgid "16.08.1988 (de_DE)" msgstr "16.08.1988 (de_DE)" -#: ../Doc/library/datetime.rst:2420 +#: ../Doc/library/datetime.rst:2443 #, python-format msgid "``%X``" msgstr "``%X``" -#: ../Doc/library/datetime.rst:2420 +#: ../Doc/library/datetime.rst:2443 msgid "Locale's appropriate time representation." msgstr "Representación de la hora apropiada de la configuración regional." @@ -3704,20 +3749,20 @@ msgstr "21:30:00 (en_US);" msgid "21:30:00 (de_DE)" msgstr "21:30:00 (de_DE)" -#: ../Doc/library/datetime.rst:2423 +#: ../Doc/library/datetime.rst:2446 #, python-format msgid "``%%``" msgstr "``%%``" -#: ../Doc/library/datetime.rst:2423 +#: ../Doc/library/datetime.rst:2446 msgid "A literal ``'%'`` character." msgstr "Un carácter literal ``’%’``." -#: ../Doc/library/datetime.rst:2423 +#: ../Doc/library/datetime.rst:2446 msgid "%" msgstr "%" -#: ../Doc/library/datetime.rst:2426 +#: ../Doc/library/datetime.rst:2449 msgid "" "Several additional directives not required by the C89 standard are included " "for convenience. These parameters all correspond to ISO 8601 date values." @@ -3726,12 +3771,12 @@ msgstr "" "por conveniencia. Todos estos parámetros corresponden a valores de fecha ISO " "8601." -#: ../Doc/library/datetime.rst:2432 +#: ../Doc/library/datetime.rst:2455 #, python-format msgid "``%G``" msgstr "``%G``" -#: ../Doc/library/datetime.rst:2432 +#: ../Doc/library/datetime.rst:2455 msgid "" "ISO 8601 year with century representing the year that contains the greater " "part of the ISO week (``%V``)." @@ -3739,28 +3784,28 @@ msgstr "" "ISO 8601 año con siglo que representa el año que contiene la mayor parte de " "la semana ISO (``%V``)." -#: ../Doc/library/datetime.rst:2432 +#: ../Doc/library/datetime.rst:2455 msgid "\\(8)" msgstr "\\(8)" -#: ../Doc/library/datetime.rst:2437 +#: ../Doc/library/datetime.rst:2460 #, python-format msgid "``%u``" msgstr "``%u``" -#: ../Doc/library/datetime.rst:2437 +#: ../Doc/library/datetime.rst:2460 msgid "ISO 8601 weekday as a decimal number where 1 is Monday." msgstr "ISO 8601 día de la semana como un número decimal donde 1 es lunes." -#: ../Doc/library/datetime.rst:2437 +#: ../Doc/library/datetime.rst:2460 msgid "1, 2, ..., 7" msgstr "1, 2, …, 7" -#: ../Doc/library/datetime.rst:2440 +#: ../Doc/library/datetime.rst:2463 msgid "``%V``" msgstr "``%V``" -#: ../Doc/library/datetime.rst:2440 +#: ../Doc/library/datetime.rst:2463 msgid "" "ISO 8601 week as a decimal number with Monday as the first day of the week. " "Week 01 is the week containing Jan 4." @@ -3768,15 +3813,34 @@ msgstr "" "ISO 8601 semana como un número decimal con lunes como primer día de la " "semana. La semana 01 es la semana que contiene el 4 de enero." -#: ../Doc/library/datetime.rst:2440 +#: ../Doc/library/datetime.rst:2463 msgid "01, 02, ..., 53" msgstr "01, 02, …, 53" -#: ../Doc/library/datetime.rst:2440 +#: ../Doc/library/datetime.rst:2463 msgid "\\(8), \\(9)" msgstr "\\(8), \\(9)" -#: ../Doc/library/datetime.rst:2447 +#: ../Doc/library/datetime.rst:2469 ../Doc/library/datetime.rst:2590 +#, fuzzy +msgid "``%:z``" +msgstr "``%Z``" + +#: ../Doc/library/datetime.rst:2469 +#, fuzzy +msgid "" +"UTC offset in the form ``±HH:MM[:SS[.ffffff]]`` (empty string if the object " +"is naive)." +msgstr "" +"Desplazamiento (*offset*) UTC en la forma ``±HHMM[SS[.ffffff]]`` (cadena de " +"caracteres vacía si el objeto es naíf (*naive*))." + +#: ../Doc/library/datetime.rst:2469 +#, fuzzy +msgid "(empty), +00:00, -04:00, +10:30, +06:34:15, -03:07:12.345216" +msgstr "(vacío), +0000, -0400, +1030, +063415, -030712.345216" + +#: ../Doc/library/datetime.rst:2475 msgid "" "These may not be available on all platforms when used with the :meth:" "`strftime` method. The ISO 8601 year and ISO 8601 week directives are not " @@ -3790,7 +3854,7 @@ msgstr "" "anteriores. Llamar a :meth:`strptime` con directivas ISO 8601 incompletas o " "ambiguas lanzará un :exc:`ValueError`." -#: ../Doc/library/datetime.rst:2452 +#: ../Doc/library/datetime.rst:2480 msgid "" "The full set of format codes supported varies across platforms, because " "Python calls the platform C library's :func:`strftime` function, and " @@ -3807,16 +3871,20 @@ msgstr "" "existen diferencias entre plataformas en el manejo de especificadores de " "formato no admitidos." -#: ../Doc/library/datetime.rst:2458 +#: ../Doc/library/datetime.rst:2486 #, python-format msgid "``%G``, ``%u`` and ``%V`` were added." msgstr "``%G``, ``%u`` y ``%V`` fueron añadidos." -#: ../Doc/library/datetime.rst:2462 +#: ../Doc/library/datetime.rst:2489 +msgid "``%:z`` was added." +msgstr "" + +#: ../Doc/library/datetime.rst:2493 msgid "Technical Detail" msgstr "Detalle técnico" -#: ../Doc/library/datetime.rst:2464 +#: ../Doc/library/datetime.rst:2495 msgid "" "Broadly speaking, ``d.strftime(fmt)`` acts like the :mod:`time` module's " "``time.strftime(fmt, d.timetuple())`` although not all objects support a :" @@ -3826,7 +3894,7 @@ msgstr "" "``time.strftime(fmt, d.timetuple())`` aunque no todos los objetos admiten el " "método :meth:`timetuple`." -#: ../Doc/library/datetime.rst:2468 +#: ../Doc/library/datetime.rst:2499 msgid "" "For the :meth:`datetime.strptime` class method, the default value is " "``1900-01-01T00:00:00.000``: any components not specified in the format " @@ -3836,11 +3904,11 @@ msgstr "" "es ``1900-01-01T00:00:00.000``: cualquier componente no especificado en la " "cadena de formato se extraerá del valor predeterminado. [#]_" -#: ../Doc/library/datetime.rst:2472 +#: ../Doc/library/datetime.rst:2503 msgid "Using ``datetime.strptime(date_string, format)`` is equivalent to::" msgstr "Usar ``datetime.strptime(date_string, format)`` es equivalente a::" -#: ../Doc/library/datetime.rst:2476 +#: ../Doc/library/datetime.rst:2507 msgid "" "except when the format includes sub-second components or timezone offset " "information, which are supported in ``datetime.strptime`` but are discarded " @@ -3850,7 +3918,7 @@ msgstr "" "de compensación de zona horaria, que son compatibles con ``datetime." "strptime`` pero son descartados por ``time.strptime``." -#: ../Doc/library/datetime.rst:2480 +#: ../Doc/library/datetime.rst:2511 msgid "" "For :class:`.time` objects, the format codes for year, month, and day should " "not be used, as :class:`time` objects have no such values. If they're used " @@ -3862,7 +3930,7 @@ msgstr "" "valores. Si se usan de todos modos, ``1900`` se sustituye por el año y ``1`` " "por el mes y el día." -#: ../Doc/library/datetime.rst:2484 +#: ../Doc/library/datetime.rst:2515 msgid "" "For :class:`date` objects, the format codes for hours, minutes, seconds, and " "microseconds should not be used, as :class:`date` objects have no such " @@ -3873,7 +3941,7 @@ msgstr "" "no tienen tales valores. Si se usan de todos modos, ``0`` se sustituye por " "ellos." -#: ../Doc/library/datetime.rst:2488 +#: ../Doc/library/datetime.rst:2519 msgid "" "For the same reason, handling of format strings containing Unicode code " "points that can't be represented in the charset of the current locale is " @@ -3888,15 +3956,13 @@ msgstr "" "mientras que en otros ``strftime`` puede generar :exc:`UnicodeError` o " "retornar una cadena vacía." -#: ../Doc/library/datetime.rst:2497 +#: ../Doc/library/datetime.rst:2528 +#, fuzzy msgid "" "Because the format depends on the current locale, care should be taken when " "making assumptions about the output value. Field orderings will vary (for " "example, \"month/day/year\" versus \"day/month/year\"), and the output may " -"contain Unicode characters encoded using the locale's default encoding (for " -"example, if the current locale is ``ja_JP``, the default encoding could be " -"any one of ``eucJP``, ``SJIS``, or ``utf-8``; use :meth:`locale.getlocale` " -"to determine the current locale's encoding)." +"contain non-ASCII characters." msgstr "" "Debido a que el formato depende de la configuración regional actual, se debe " "tener cuidado al hacer suposiciones sobre el valor de salida. Los " @@ -3908,7 +3974,7 @@ msgstr "" "use :meth:`locale.getlocale` para determinar la codificación de la " "configuración regional actual)." -#: ../Doc/library/datetime.rst:2506 +#: ../Doc/library/datetime.rst:2534 msgid "" "The :meth:`strptime` method can parse years in the full [1, 9999] range, but " "years < 1000 must be zero-filled to 4-digit width." @@ -3917,7 +3983,7 @@ msgstr "" "9999], pero los años < 1000 deben llenarse desde cero hasta un ancho de 4 " "dígitos." -#: ../Doc/library/datetime.rst:2509 +#: ../Doc/library/datetime.rst:2537 msgid "" "In previous versions, :meth:`strftime` method was restricted to years >= " "1900." @@ -3925,14 +3991,14 @@ msgstr "" "En versiones anteriores, el método :meth:`strftime` estaba restringido a " "años >= 1900." -#: ../Doc/library/datetime.rst:2513 +#: ../Doc/library/datetime.rst:2541 msgid "" "In version 3.2, :meth:`strftime` method was restricted to years >= 1000." msgstr "" "En la versión 3.2, el método :meth:`strftime` estaba restringido a años >= " "1000." -#: ../Doc/library/datetime.rst:2518 +#: ../Doc/library/datetime.rst:2546 msgid "" "When used with the :meth:`strptime` method, the ``%p`` directive only " "affects the output hour field if the ``%I`` directive is used to parse the " @@ -3942,7 +4008,7 @@ msgstr "" "afecta el campo de hora de salida si se usa la directiva ``%I`` para " "analizar la hora." -#: ../Doc/library/datetime.rst:2522 +#: ../Doc/library/datetime.rst:2550 msgid "" "Unlike the :mod:`time` module, the :mod:`datetime` module does not support " "leap seconds." @@ -3950,7 +4016,7 @@ msgstr "" "A diferencia del módulo :mod:`time`, el módulo :mod:`datetime` no admite " "segundos intercalares." -#: ../Doc/library/datetime.rst:2526 +#: ../Doc/library/datetime.rst:2554 #, python-format msgid "" "When used with the :meth:`strptime` method, the ``%f`` directive accepts " @@ -3963,19 +4029,20 @@ msgstr "" "conjunto de caracteres de formato en el estándar *C* (pero implementado por " "separado en objetos de fecha y hora y, por lo tanto, siempre disponible)." -#: ../Doc/library/datetime.rst:2533 +#: ../Doc/library/datetime.rst:2561 +#, fuzzy msgid "" -"For a naive object, the ``%z`` and ``%Z`` format codes are replaced by empty " -"strings." +"For a naive object, the ``%z``, ``%:z`` and ``%Z`` format codes are replaced " +"by empty strings." msgstr "" "Para un objeto naíf (*naive*), los códigos de formato ``%z`` y ``%Z`` se " "reemplazan por cadenas vacías." -#: ../Doc/library/datetime.rst:2536 +#: ../Doc/library/datetime.rst:2564 msgid "For an aware object:" msgstr "Para un objeto consciente (*aware*)" -#: ../Doc/library/datetime.rst:2539 +#: ../Doc/library/datetime.rst:2567 msgid "" ":meth:`utcoffset` is transformed into a string of the form ``±HHMM[SS[." "ffffff]]``, where ``HH`` is a 2-digit string giving the number of UTC offset " @@ -4000,7 +4067,7 @@ msgstr "" "`utcoffset` retorna ``timedelta(hours=-3, minutes=-30)``, ``%z`` se " "reemplaza con la cadena ``'-0330'``." -#: ../Doc/library/datetime.rst:2553 +#: ../Doc/library/datetime.rst:2581 msgid "" "When the ``%z`` directive is provided to the :meth:`strptime` method, the " "UTC offsets can have a colon as a separator between hours, minutes and " @@ -4013,7 +4080,13 @@ msgstr "" "compensación de una hora. Además, proporcionar ``'Z'`` es idéntico a " "``’+00:00’``." -#: ../Doc/library/datetime.rst:2561 +#: ../Doc/library/datetime.rst:2589 +msgid "" +"Behaves exactly as ``%z``, but has a colon separator added between hours, " +"minutes and seconds." +msgstr "" + +#: ../Doc/library/datetime.rst:2593 msgid "" "In :meth:`strftime`, ``%Z`` is replaced by an empty string if :meth:`tzname` " "returns ``None``; otherwise ``%Z`` is replaced by the returned value, which " @@ -4023,21 +4096,21 @@ msgstr "" "si :meth:`tzname` retorna ``None``; de lo contrario, ``%Z`` se reemplaza por " "el valor retornado, que debe ser una cadena de caracteres." -#: ../Doc/library/datetime.rst:2565 +#: ../Doc/library/datetime.rst:2597 msgid ":meth:`strptime` only accepts certain values for ``%Z``:" msgstr ":meth:`strptime` solo acepta ciertos valores para ``%Z``:" -#: ../Doc/library/datetime.rst:2567 +#: ../Doc/library/datetime.rst:2599 msgid "any value in ``time.tzname`` for your machine's locale" msgstr "" "cualquier valor en ``time.tzname`` para la configuración regional de su " "máquina" -#: ../Doc/library/datetime.rst:2568 +#: ../Doc/library/datetime.rst:2600 msgid "the hard-coded values ``UTC`` and ``GMT``" msgstr "los valores codificados de forma rígida ``UTC`` y ``GMT``" -#: ../Doc/library/datetime.rst:2570 +#: ../Doc/library/datetime.rst:2602 msgid "" "So someone living in Japan may have ``JST``, ``UTC``, and ``GMT`` as valid " "values, but probably not ``EST``. It will raise ``ValueError`` for invalid " @@ -4047,7 +4120,7 @@ msgstr "" "como valores válidos, pero probablemente no ``EST``. Lanzará ``ValueError`` " "para valores no válidos." -#: ../Doc/library/datetime.rst:2574 +#: ../Doc/library/datetime.rst:2606 msgid "" "When the ``%z`` directive is provided to the :meth:`strptime` method, an " "aware :class:`.datetime` object will be produced. The ``tzinfo`` of the " @@ -4057,7 +4130,7 @@ msgstr "" "lanzará un objeto consciente :class:`.datetime`. El ``tzinfo`` del resultado " "se establecerá en una instancia :class:`timezone`." -#: ../Doc/library/datetime.rst:2580 +#: ../Doc/library/datetime.rst:2612 msgid "" "When used with the :meth:`strptime` method, ``%U`` and ``%W`` are only used " "in calculations when the day of the week and the calendar year (``%Y``) are " @@ -4067,7 +4140,7 @@ msgstr "" "en los cálculos cuando se especifican el día de la semana y el año " "calendario (``%Y``) ." -#: ../Doc/library/datetime.rst:2585 +#: ../Doc/library/datetime.rst:2617 #, python-format msgid "" "Similar to ``%U`` and ``%W``, ``%V`` is only used in calculations when the " @@ -4079,26 +4152,26 @@ msgstr "" "la semana y el año ISO (``%G``) se especifican en :meth:`strptime` cadena de " "formato. También tenga en cuenta que ``%G`` y ``%Y`` no son intercambiables." -#: ../Doc/library/datetime.rst:2591 -#, python-format +#: ../Doc/library/datetime.rst:2623 +#, fuzzy, python-format msgid "" "When used with the :meth:`strptime` method, the leading zero is optional " -"for formats ``%d``, ``%m``, ``%H``, ``%I``, ``%M``, ``%S``, ``%J``, ``%U``, " +"for formats ``%d``, ``%m``, ``%H``, ``%I``, ``%M``, ``%S``, ``%j``, ``%U``, " "``%W``, and ``%V``. Format ``%y`` does require a leading zero." msgstr "" "Cuando se usa con el método :meth:`strptime`, el cero inicial es opcional " "para los formatos ``%d``, ``%m``, ``%H``, ``%I``, ``%M``, ``%S``, ``%J``, " "``%U``, ``%W`` y ``%V``. El formato ``%y`` requiere un cero a la izquierda." -#: ../Doc/library/datetime.rst:2596 +#: ../Doc/library/datetime.rst:2628 msgid "Footnotes" msgstr "Pie de notas" -#: ../Doc/library/datetime.rst:2597 +#: ../Doc/library/datetime.rst:2629 msgid "If, that is, we ignore the effects of Relativity" msgstr "Es decir, si ignoramos los efectos de la relatividad" -#: ../Doc/library/datetime.rst:2599 +#: ../Doc/library/datetime.rst:2631 msgid "" "This matches the definition of the \"proleptic Gregorian\" calendar in " "Dershowitz and Reingold's book *Calendrical Calculations*, where it's the " @@ -4112,7 +4185,7 @@ msgstr "" "para convertir entre ordinales gregorianos prolépticos y muchos otros " "sistemas de calendario." -#: ../Doc/library/datetime.rst:2605 +#: ../Doc/library/datetime.rst:2637 msgid "" "See R. H. van Gent's `guide to the mathematics of the ISO 8601 calendar " "`_ de R. H. van Gent para obtener una buena " "explicación." -#: ../Doc/library/datetime.rst:2609 +#: ../Doc/library/datetime.rst:2641 #, python-format msgid "" "Passing ``datetime.strptime('Feb 29', '%b %d')`` will fail since ``1900`` is " @@ -4131,3 +4204,15 @@ msgid "" msgstr "" "Si se pasa ``datetime.strptime (’29 de febrero’, ‘%b %d’)`` fallará ya que " "``1900`` no es un año bisiesto." + +#: ../Doc/library/datetime.rst:2301 +msgid "% (percent)" +msgstr "" + +#: ../Doc/library/datetime.rst:2301 +#, fuzzy +msgid "datetime format" +msgstr "``strftime(format)``" + +#~ msgid "This is equivalent to::" +#~ msgstr "Esto es equivalente a::" diff --git a/library/dbm.po b/library/dbm.po index acbf4101e3..ecb770509a 100644 --- a/library/dbm.po +++ b/library/dbm.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-03 19:56-0300\n" "Last-Translator: Alfonso Areiza Guerra \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/dbm.rst:2 msgid ":mod:`dbm` --- Interfaces to Unix \"databases\"" @@ -595,3 +594,7 @@ msgstr "" #: ../Doc/library/dbm.rst:407 msgid "Close the ``dumbdbm`` database." msgstr "Cierra la base de datos ``dumbdbm``." + +#: ../Doc/library/dbm.rst:325 +msgid "databases" +msgstr "" diff --git a/library/decimal.po b/library/decimal.po index 6dd19936cd..7a306c04cf 100644 --- a/library/decimal.po +++ b/library/decimal.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-01-03 09:47-0300\n" "Last-Translator: Francisco Mora \n" -"Language-Team: python-doc-es\n" "Language: es_ES\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/decimal.rst:2 msgid ":mod:`decimal` --- Decimal fixed point and floating point arithmetic" @@ -55,11 +54,12 @@ msgstr "" "extracto (traducido) de la especificación de la aritmética decimal." #: ../Doc/library/decimal.rst:42 +#, fuzzy msgid "" -"Decimal numbers can be represented exactly. In contrast, numbers like :" -"const:`1.1` and :const:`2.2` do not have exact representations in binary " -"floating point. End users typically would not expect ``1.1 + 2.2`` to " -"display as :const:`3.3000000000000003` as it does with binary floating point." +"Decimal numbers can be represented exactly. In contrast, numbers like " +"``1.1`` and ``2.2`` do not have exact representations in binary floating " +"point. End users typically would not expect ``1.1 + 2.2`` to display as " +"``3.3000000000000003`` as it does with binary floating point." msgstr "" "Los números decimales se pueden representar de forma exacta en coma flotante " "decimal. En cambio, números como :const:`1.1` y :const:`2.2` no tienen " @@ -69,11 +69,12 @@ msgstr "" "flotante." #: ../Doc/library/decimal.rst:47 +#, fuzzy msgid "" "The exactness carries over into arithmetic. In decimal floating point, " "``0.1 + 0.1 + 0.1 - 0.3`` is exactly equal to zero. In binary floating " -"point, the result is :const:`5.5511151231257827e-017`. While near to zero, " -"the differences prevent reliable equality testing and differences can " +"point, the result is ``5.5511151231257827e-017``. While near to zero, the " +"differences prevent reliable equality testing and differences can " "accumulate. For this reason, decimal is preferred in accounting applications " "which have strict equality invariants." msgstr "" @@ -85,13 +86,14 @@ msgstr "" "aplicaciones de contabilidad con estrictas restricciones de confiabilidad." #: ../Doc/library/decimal.rst:54 +#, fuzzy msgid "" "The decimal module incorporates a notion of significant places so that " -"``1.30 + 1.20`` is :const:`2.50`. The trailing zero is kept to indicate " +"``1.30 + 1.20`` is ``2.50``. The trailing zero is kept to indicate " "significance. This is the customary presentation for monetary applications. " "For multiplication, the \"schoolbook\" approach uses all the figures in the " -"multiplicands. For instance, ``1.3 * 1.2`` gives :const:`1.56` while ``1.30 " -"* 1.20`` gives :const:`1.5600`." +"multiplicands. For instance, ``1.3 * 1.2`` gives ``1.56`` while ``1.30 * " +"1.20`` gives ``1.5600``." msgstr "" "El módulo decimal incorpora una noción de dígitos significativos, de modo " "que ``1.30 + 1.20`` es :const:`2.50`. El cero final se mantiene para indicar " @@ -150,12 +152,13 @@ msgstr "" "contexto aritmético y las señales." #: ../Doc/library/decimal.rst:88 +#, fuzzy msgid "" "A decimal number is immutable. It has a sign, coefficient digits, and an " "exponent. To preserve significance, the coefficient digits do not truncate " -"trailing zeros. Decimals also include special values such as :const:" -"`Infinity`, :const:`-Infinity`, and :const:`NaN`. The standard also " -"differentiates :const:`-0` from :const:`+0`." +"trailing zeros. Decimals also include special values such as ``Infinity``, " +"``-Infinity``, and ``NaN``. The standard also differentiates ``-0`` from " +"``+0``." msgstr "" "Un número decimal es inmutable. Tiene un signo, un coeficiente y un " "exponente. Para conservar el número de dígitos significativos, los ceros " @@ -237,12 +240,13 @@ msgstr "" "habilitadas::" #: ../Doc/library/decimal.rst:139 +#, fuzzy msgid "" "Decimal instances can be constructed from integers, strings, floats, or " "tuples. Construction from an integer or a float performs an exact conversion " "of the value of that integer or float. Decimal numbers include special " -"values such as :const:`NaN` which stands for \"Not a number\", positive and " -"negative :const:`Infinity`, and :const:`-0`::" +"values such as ``NaN`` which stands for \"Not a number\", positive and " +"negative ``Infinity``, and ``-0``::" msgstr "" "Las instancias de la clase Decimal se pueden construir a partir de números " "enteros, cadenas de caracteres, flotantes o tuplas. La construcción a partir " @@ -293,10 +297,11 @@ msgstr "" "Y algunas funciones matemáticas también están disponibles para Decimal:" #: ../Doc/library/decimal.rst:253 +#, fuzzy msgid "" -"The :meth:`quantize` method rounds a number to a fixed exponent. This " -"method is useful for monetary applications that often round results to a " -"fixed number of places:" +"The :meth:`~Decimal.quantize` method rounds a number to a fixed exponent. " +"This method is useful for monetary applications that often round results to " +"a fixed number of places:" msgstr "" "El método :meth:`quantize` redondea un número a un exponente fijo. Este " "método es útil para aplicaciones monetarias, que a menudo redondean los " @@ -335,11 +340,12 @@ msgstr "" "que muchas de las trampas de señales están habilitadas por defecto:" #: ../Doc/library/decimal.rst:299 +#, fuzzy msgid "" "Contexts also have signal flags for monitoring exceptional conditions " "encountered during computations. The flags remain set until explicitly " "cleared, so it is best to clear the flags before each set of monitored " -"computations by using the :meth:`clear_flags` method. ::" +"computations by using the :meth:`~Context.clear_flags` method. ::" msgstr "" "Los objetos Context también tienen flags de señalización para detectar " "condiciones excepcionales detectadas durante los cálculos. Estos flags " @@ -349,10 +355,11 @@ msgstr "" "monitorizados. ::" #: ../Doc/library/decimal.rst:312 +#, fuzzy msgid "" -"The *flags* entry shows that the rational approximation to :const:`Pi` was " -"rounded (digits beyond the context precision were thrown away) and that the " -"result is inexact (some of the discarded digits were non-zero)." +"The *flags* entry shows that the rational approximation to pi was rounded " +"(digits beyond the context precision were thrown away) and that the result " +"is inexact (some of the discarded digits were non-zero)." msgstr "" "La entrada *flags* muestra que la aproximación racional de :const:`Pi` fue " "redondeada (los dígitos más allá de la precisión especificada por el " @@ -360,9 +367,10 @@ msgstr "" "dígitos descartados no eran cero)." #: ../Doc/library/decimal.rst:316 +#, fuzzy msgid "" -"Individual traps are set using the dictionary in the :attr:`traps` field of " -"a context:" +"Individual traps are set using the dictionary in the :attr:`~Context.traps` " +"attribute of a context:" msgstr "" "Las trampas de señales se habilitan a través del diccionario expuesto por el " "atributo :attr:`traps` del objeto Context:" @@ -416,11 +424,12 @@ msgstr "" "junto con los dígitos de ancho completo desde ``'\\uff10'`` a ``'\\uff19'``." #: ../Doc/library/decimal.rst:371 +#, fuzzy msgid "" -"If *value* is a :class:`tuple`, it should have three components, a sign (:" -"const:`0` for positive or :const:`1` for negative), a :class:`tuple` of " -"digits, and an integer exponent. For example, ``Decimal((0, (1, 4, 1, 4), " -"-3))`` returns ``Decimal('1.414')``." +"If *value* is a :class:`tuple`, it should have three components, a sign " +"(``0`` for positive or ``1`` for negative), a :class:`tuple` of digits, and " +"an integer exponent. For example, ``Decimal((0, (1, 4, 1, 4), -3))`` returns " +"``Decimal('1.414')``." msgstr "" "Si *value* es un objeto :class:`tuple`, debe tener tres componentes, un " "signo (:const:`0` para positivo o :const:`1` para negativo), un objeto :" @@ -454,11 +463,12 @@ msgstr "" "precisión del contexto es solo tres." #: ../Doc/library/decimal.rst:387 +#, fuzzy msgid "" "The purpose of the *context* argument is determining what to do if *value* " "is a malformed string. If the context traps :const:`InvalidOperation`, an " "exception is raised; otherwise, the constructor returns a new Decimal with " -"the value of :const:`NaN`." +"the value of ``NaN``." msgstr "" "El propósito del argumento *context* es determinar qué hacer si *value* es " "una cadena de caracteres mal formada. Si el contexto atrapa la señal :const:" @@ -675,7 +685,7 @@ msgstr "" "especificaciones para obtener detalles sobre el ordenamiento total." #: ../Doc/library/decimal.rst:520 ../Doc/library/decimal.rst:531 -#: ../Doc/library/decimal.rst:559 ../Doc/library/decimal.rst:835 +#: ../Doc/library/decimal.rst:559 ../Doc/library/decimal.rst:846 msgid "" "This operation is unaffected by context and is quiet: no flags are changed " "and no rounding is performed. As an exception, the C version may raise " @@ -933,9 +943,10 @@ msgstr "" "exclusiva (\"exclusive or\") dígito a dígito de ambos operandos." #: ../Doc/library/decimal.rst:703 +#, fuzzy msgid "" "Like ``max(self, other)`` except that the context rounding rule is applied " -"before returning and that :const:`NaN` values are either signaled or ignored " +"before returning and that ``NaN`` values are either signaled or ignored " "(depending on the context and whether they are signaling or quiet)." msgstr "" "Como ``max(self, other)``, excepto que la regla de redondeo del contexto se " @@ -952,9 +963,10 @@ msgstr "" "los valores absolutos de los operandos." #: ../Doc/library/decimal.rst:715 +#, fuzzy msgid "" "Like ``min(self, other)`` except that the context rounding rule is applied " -"before returning and that :const:`NaN` values are either signaled or ignored " +"before returning and that ``NaN`` values are either signaled or ignored " "(depending on the context and whether they are signaling or quiet)." msgstr "" "Como ``min(self, other)``, excepto que la regla de redondeo del contexto se " @@ -1003,21 +1015,37 @@ msgstr "" #: ../Doc/library/decimal.rst:746 msgid "" -"Normalize the number by stripping the rightmost trailing zeros and " -"converting any result equal to :const:`Decimal('0')` to :const:" -"`Decimal('0e0')`. Used for producing canonical values for attributes of an " -"equivalence class. For example, ``Decimal('32.100')`` and " -"``Decimal('0.321000e+2')`` both normalize to the equivalent value " -"``Decimal('32.1')``." +"Used for producing canonical values of an equivalence class within either " +"the current context or the specified context." msgstr "" -"Normaliza el número, eliminando los ceros finales situados más a la derecha " -"y convirtiendo cualquier resultado igual a :const:`Decimal('0')` en :const:" -"`Decimal('0e0')`. Se utiliza para producir valores canónicos para atributos " -"de una clase de equivalencia. Por ejemplo, ``Decimal('32 .100')`` y " -"``Decimal('0.321000e+2')`` se normalizan ambos al valor equivalente " -"``Decimal('32 .1')``." -#: ../Doc/library/decimal.rst:755 +#: ../Doc/library/decimal.rst:749 +msgid "" +"This has the same semantics as the unary plus operation, except that if the " +"final result is finite it is reduced to its simplest form, with all trailing " +"zeros removed and its sign preserved. That is, while the coefficient is non-" +"zero and a multiple of ten the coefficient is divided by ten and the " +"exponent is incremented by 1. Otherwise (the coefficient is zero) the " +"exponent is set to 0. In all cases the sign is unchanged." +msgstr "" + +#: ../Doc/library/decimal.rst:756 +msgid "" +"For example, ``Decimal('32.100')`` and ``Decimal('0.321000e+2')`` both " +"normalize to the equivalent value ``Decimal('32.1')``." +msgstr "" + +#: ../Doc/library/decimal.rst:759 +msgid "Note that rounding is applied *before* reducing to simplest form." +msgstr "" + +#: ../Doc/library/decimal.rst:761 +msgid "" +"In the latest versions of the specification, this operation is also known as " +"``reduce``." +msgstr "" + +#: ../Doc/library/decimal.rst:766 msgid "" "Return a string describing the *class* of the operand. The returned value " "is one of the following ten strings." @@ -1025,58 +1053,58 @@ msgstr "" "Retorna una cadena de caracteres que describe la *class* del operando. El " "valor retornado es una de las siguientes diez cadenas de caracteres." -#: ../Doc/library/decimal.rst:758 +#: ../Doc/library/decimal.rst:769 msgid "``\"-Infinity\"``, indicating that the operand is negative infinity." msgstr "``\"-Infinity\"``, que indica que el operando es un infinito negativo." -#: ../Doc/library/decimal.rst:759 +#: ../Doc/library/decimal.rst:770 msgid "" "``\"-Normal\"``, indicating that the operand is a negative normal number." msgstr "" "``\"-Normal\"``, que indica que el operando es un número normal negativo." -#: ../Doc/library/decimal.rst:760 +#: ../Doc/library/decimal.rst:771 msgid "" "``\"-Subnormal\"``, indicating that the operand is negative and subnormal." msgstr "" "``\"-Subnormal\"``, que indica que el operando es negativo y subnormal." -#: ../Doc/library/decimal.rst:761 +#: ../Doc/library/decimal.rst:772 msgid "``\"-Zero\"``, indicating that the operand is a negative zero." msgstr "``\"-Zero\"``, que indica que el operando es un cero negativo." -#: ../Doc/library/decimal.rst:762 +#: ../Doc/library/decimal.rst:773 msgid "``\"+Zero\"``, indicating that the operand is a positive zero." msgstr "``\"+Zero\"``, que indica que el operando es un cero positivo." -#: ../Doc/library/decimal.rst:763 +#: ../Doc/library/decimal.rst:774 msgid "" "``\"+Subnormal\"``, indicating that the operand is positive and subnormal." msgstr "``\"+Subnormal\"``,que indica que el operando es positivo y subnormal." -#: ../Doc/library/decimal.rst:764 +#: ../Doc/library/decimal.rst:775 msgid "" "``\"+Normal\"``, indicating that the operand is a positive normal number." msgstr "" "``\"+Normal\"``, que indica que el operando es un número normal positivo." -#: ../Doc/library/decimal.rst:765 +#: ../Doc/library/decimal.rst:776 msgid "``\"+Infinity\"``, indicating that the operand is positive infinity." msgstr "``\"+Infinity\"``, que indica que el operando es un infinito positivo." -#: ../Doc/library/decimal.rst:766 +#: ../Doc/library/decimal.rst:777 msgid "``\"NaN\"``, indicating that the operand is a quiet NaN (Not a Number)." msgstr "" "``\"NaN\"``, que indica que el operando es un NaN (no es un número) " "silencioso." -#: ../Doc/library/decimal.rst:767 +#: ../Doc/library/decimal.rst:778 msgid "``\"sNaN\"``, indicating that the operand is a signaling NaN." msgstr "" "``\"sNaN\"``, que indica que el operando es un NaN (no es un número) " "señalizador." -#: ../Doc/library/decimal.rst:771 +#: ../Doc/library/decimal.rst:782 msgid "" "Return a value equal to the first operand after rounding and having the " "exponent of the second operand." @@ -1084,7 +1112,7 @@ msgstr "" "Retorna un valor igual al primer operando después de ser redondeado y de " "asignarle el exponente del segundo operando." -#: ../Doc/library/decimal.rst:777 +#: ../Doc/library/decimal.rst:788 msgid "" "Unlike other operations, if the length of the coefficient after the quantize " "operation would be greater than precision, then an :const:`InvalidOperation` " @@ -1097,7 +1125,7 @@ msgstr "" "una condición de error, el exponente cuantificado sea siempre igual al del " "operando de la derecha." -#: ../Doc/library/decimal.rst:783 +#: ../Doc/library/decimal.rst:794 msgid "" "Also unlike other operations, quantize never signals Underflow, even if the " "result is subnormal and inexact." @@ -1105,7 +1133,7 @@ msgstr "" "Además, a diferencia de otras operaciones, quantize nunca genera una señal " "Underflow, incluso si el resultado es subnormal e inexacto." -#: ../Doc/library/decimal.rst:786 +#: ../Doc/library/decimal.rst:797 msgid "" "If the exponent of the second operand is larger than that of the first then " "rounding may be necessary. In this case, the rounding mode is determined by " @@ -1119,15 +1147,16 @@ msgstr "" "en caso contrario. Si no se proporciona ninguno de estos dos argumentos, se " "utiliza el modo de redondeo establecido en el contexto del hilo actual." -#: ../Doc/library/decimal.rst:792 +#: ../Doc/library/decimal.rst:803 +#, fuzzy msgid "" "An error is returned whenever the resulting exponent is greater than :attr:" -"`Emax` or less than :attr:`Etiny`." +"`~Context.Emax` or less than :meth:`~Context.Etiny`." msgstr "" "Se retorna un error siempre que el exponente resultante sea mayor que :attr:" "`Emax` o menor que :attr:`Etiny`." -#: ../Doc/library/decimal.rst:797 +#: ../Doc/library/decimal.rst:808 msgid "" "Return ``Decimal(10)``, the radix (base) in which the :class:`Decimal` class " "does all its arithmetic. Included for compatibility with the specification." @@ -1136,7 +1165,7 @@ msgstr "" "`Decimal` hace toda su aritmética. Este método está incluido solo por " "compatibilidad con la especificación." -#: ../Doc/library/decimal.rst:803 +#: ../Doc/library/decimal.rst:814 #, python-format msgid "" "Return the remainder from dividing *self* by *other*. This differs from " @@ -1152,11 +1181,11 @@ msgstr "" "de ``self / other``. Si dos enteros están igualmente cerca, entonces el " "valor par es el elegido." -#: ../Doc/library/decimal.rst:810 +#: ../Doc/library/decimal.rst:821 msgid "If the result is zero then its sign will be the sign of *self*." msgstr "Si el resultado es cero, entonces su signo será el signo de *self*." -#: ../Doc/library/decimal.rst:821 +#: ../Doc/library/decimal.rst:832 msgid "" "Return the result of rotating the digits of the first operand by an amount " "specified by the second operand. The second operand must be an integer in " @@ -1177,15 +1206,16 @@ msgstr "" "longitud si es necesario. El signo y el exponente del primer operando no se " "modifican." -#: ../Doc/library/decimal.rst:832 +#: ../Doc/library/decimal.rst:843 +#, fuzzy msgid "" -"Test whether self and other have the same exponent or whether both are :" -"const:`NaN`." +"Test whether self and other have the same exponent or whether both are " +"``NaN``." msgstr "" "Comprueba si self y other tienen el mismo exponente o si ambos son :const:" "`NaN`." -#: ../Doc/library/decimal.rst:841 +#: ../Doc/library/decimal.rst:852 msgid "" "Return the first operand with exponent adjusted by the second. Equivalently, " "return the first operand multiplied by ``10**other``. The second operand " @@ -1195,7 +1225,7 @@ msgstr "" "manera equivalente, retorna el primer operando multiplicado por " "``10**other``. El segundo operando debe ser un número entero." -#: ../Doc/library/decimal.rst:847 +#: ../Doc/library/decimal.rst:858 msgid "" "Return the result of shifting the digits of the first operand by an amount " "specified by the second operand. The second operand must be an integer in " @@ -1214,18 +1244,18 @@ msgstr "" "desplazados en el coeficiente son ceros. El signo y el exponente del primer " "operando no se modifican." -#: ../Doc/library/decimal.rst:857 +#: ../Doc/library/decimal.rst:868 msgid "Return the square root of the argument to full precision." msgstr "Retorna la raíz cuadrada del argumento con precisión total." -#: ../Doc/library/decimal.rst:862 ../Doc/library/decimal.rst:1457 +#: ../Doc/library/decimal.rst:873 ../Doc/library/decimal.rst:1468 msgid "" "Convert to a string, using engineering notation if an exponent is needed." msgstr "" "Convierte a una cadena de caracteres, usando notación de ingeniería si se " "necesita un exponente." -#: ../Doc/library/decimal.rst:864 ../Doc/library/decimal.rst:1459 +#: ../Doc/library/decimal.rst:875 ../Doc/library/decimal.rst:1470 msgid "" "Engineering notation has an exponent which is a multiple of 3. This can " "leave up to 3 digits to the left of the decimal place and may require the " @@ -1235,14 +1265,14 @@ msgstr "" "dejar hasta 3 dígitos a la izquierda del punto decimal y puede requerir la " "adición de uno o dos ceros finales." -#: ../Doc/library/decimal.rst:868 +#: ../Doc/library/decimal.rst:879 msgid "" "For example, this converts ``Decimal('123E+1')`` to ``Decimal('1.23E+3')``." msgstr "" "Por ejemplo, este método convierte ``Decimal('123E+1')`` en " "``Decimal('1.23E+3')``." -#: ../Doc/library/decimal.rst:872 +#: ../Doc/library/decimal.rst:883 msgid "" "Identical to the :meth:`to_integral_value` method. The ``to_integral`` name " "has been kept for compatibility with older versions." @@ -1250,7 +1280,7 @@ msgstr "" "Idéntico al método :meth:`to_integral_value`. El nombre ``to_integral`` se " "ha mantenido por compatibilidad con versiones anteriores." -#: ../Doc/library/decimal.rst:877 +#: ../Doc/library/decimal.rst:888 msgid "" "Round to the nearest integer, signaling :const:`Inexact` or :const:`Rounded` " "as appropriate if rounding occurs. The rounding mode is determined by the " @@ -1264,7 +1294,7 @@ msgstr "" "proporciona ninguno de estos dos parámetros, se utiliza el modo de redondeo " "establecido en el contexto actual." -#: ../Doc/library/decimal.rst:885 +#: ../Doc/library/decimal.rst:896 msgid "" "Round to the nearest integer without signaling :const:`Inexact` or :const:" "`Rounded`. If given, applies *rounding*; otherwise, uses the rounding " @@ -1275,27 +1305,29 @@ msgstr "" "especificado por *rounding*; en caso contrario, se utiliza el método de " "redondeo del *context* proporcionado o el del contexto actual." -#: ../Doc/library/decimal.rst:893 +#: ../Doc/library/decimal.rst:904 msgid "Logical operands" msgstr "Operandos lógicos" -#: ../Doc/library/decimal.rst:895 +#: ../Doc/library/decimal.rst:906 +#, fuzzy msgid "" -"The :meth:`logical_and`, :meth:`logical_invert`, :meth:`logical_or`, and :" -"meth:`logical_xor` methods expect their arguments to be *logical operands*. " -"A *logical operand* is a :class:`Decimal` instance whose exponent and sign " -"are both zero, and whose digits are all either :const:`0` or :const:`1`." +"The :meth:`~Decimal.logical_and`, :meth:`~Decimal.logical_invert`, :meth:" +"`~Decimal.logical_or`, and :meth:`~Decimal.logical_xor` methods expect their " +"arguments to be *logical operands*. A *logical operand* is a :class:" +"`Decimal` instance whose exponent and sign are both zero, and whose digits " +"are all either ``0`` or ``1``." msgstr "" "Los métodos :meth:`logical_and`, :meth:`logical_invert`, :meth:`logical_or` " "y :meth:`logical_xor` esperan que sus argumentos sean *operandos lógicos*. " "Un *operando lógico* es una instancia de :class:`Decimal` cuyo exponente y " "signo son ambos cero, y cuyos dígitos son todos :const:`0` o :const:`1`." -#: ../Doc/library/decimal.rst:907 +#: ../Doc/library/decimal.rst:918 msgid "Context objects" msgstr "Objetos context" -#: ../Doc/library/decimal.rst:909 +#: ../Doc/library/decimal.rst:920 msgid "" "Contexts are environments for arithmetic operations. They govern precision, " "set rules for rounding, determine which signals are treated as exceptions, " @@ -1305,7 +1337,7 @@ msgstr "" "precisión, establecen reglas para el redondeo, determinan qué señales se " "tratan como excepciones y limitan el rango para los exponentes." -#: ../Doc/library/decimal.rst:913 +#: ../Doc/library/decimal.rst:924 msgid "" "Each thread has its own current context which is accessed or changed using " "the :func:`getcontext` and :func:`setcontext` functions:" @@ -1313,15 +1345,15 @@ msgstr "" "Cada hilo tiene su propio contexto actual, al que se accede o se reemplaza " "usando las funciones :func:`getcontext` y :func:`setcontext` respectivamente:" -#: ../Doc/library/decimal.rst:919 +#: ../Doc/library/decimal.rst:930 msgid "Return the current context for the active thread." msgstr "Retorna el contexto actual del hilo activo." -#: ../Doc/library/decimal.rst:924 +#: ../Doc/library/decimal.rst:935 msgid "Set the current context for the active thread to *c*." msgstr "Establece *c* como contexto actual para el hilo activo." -#: ../Doc/library/decimal.rst:926 +#: ../Doc/library/decimal.rst:937 msgid "" "You can also use the :keyword:`with` statement and the :func:`localcontext` " "function to temporarily change the active context." @@ -1329,7 +1361,7 @@ msgstr "" "También puedes usar la declaración :keyword:`with` y la función :func:" "`localcontext` para cambiar temporalmente el contexto activo." -#: ../Doc/library/decimal.rst:931 +#: ../Doc/library/decimal.rst:942 #, fuzzy msgid "" "Return a context manager that will set the current context for the active " @@ -1343,7 +1375,7 @@ msgstr "" "restaurará el contexto anterior al salir de la misma. Si no se especifica " "ningún contexto, se utiliza una copia del contexto actual." -#: ../Doc/library/decimal.rst:937 +#: ../Doc/library/decimal.rst:948 msgid "" "For example, the following code sets the current decimal precision to 42 " "places, performs a calculation, and then automatically restores the previous " @@ -1353,11 +1385,11 @@ msgstr "" "lugares, realiza un cálculo y luego restaura automáticamente el contexto " "anterior::" -#: ../Doc/library/decimal.rst:947 +#: ../Doc/library/decimal.rst:958 msgid "Using keyword arguments, the code would be the following::" msgstr "Usando argumentos de palabra clave, el código sería el siguiente::" -#: ../Doc/library/decimal.rst:955 +#: ../Doc/library/decimal.rst:966 msgid "" "Raises :exc:`TypeError` if *kwargs* supplies an attribute that :class:" "`Context` doesn't support. Raises either :exc:`TypeError` or :exc:" @@ -1367,7 +1399,7 @@ msgstr "" "`Context` no soporta. Lanza también :exc:`TypeError` o :exc:`ValueError` si " "*kwargs* proporciona un valor no válido para un atributo." -#: ../Doc/library/decimal.rst:959 +#: ../Doc/library/decimal.rst:970 msgid "" ":meth:`localcontext` now supports setting context attributes through the use " "of keyword arguments." @@ -1375,7 +1407,7 @@ msgstr "" ":meth:`localcontext` ahora admite la configuración de atributos de contexto " "mediante el uso de argumentos de palabra clave." -#: ../Doc/library/decimal.rst:962 +#: ../Doc/library/decimal.rst:973 msgid "" "New contexts can also be created using the :class:`Context` constructor " "described below. In addition, the module provides three pre-made contexts:" @@ -1384,7 +1416,7 @@ msgstr "" "clase :class:`Context` que se describe a continuación. Además, el módulo " "proporciona tres contextos prediseñados:" -#: ../Doc/library/decimal.rst:968 +#: ../Doc/library/decimal.rst:979 msgid "" "This is a standard context defined by the General Decimal Arithmetic " "Specification. Precision is set to nine. Rounding is set to :const:" @@ -1398,14 +1430,14 @@ msgstr "" "las trampas están habilitadas (las señales son tratadas como excepciones) " "excepto :const:`Inexact`, :const:`Rounded` y :const:`Subnormal`." -#: ../Doc/library/decimal.rst:974 +#: ../Doc/library/decimal.rst:985 msgid "" "Because many of the traps are enabled, this context is useful for debugging." msgstr "" "Debido a que la mayoría de las trampas están habilitadas, este contexto es " "especialmente útil para la depuración." -#: ../Doc/library/decimal.rst:979 +#: ../Doc/library/decimal.rst:990 msgid "" "This is a standard context defined by the General Decimal Arithmetic " "Specification. Precision is set to nine. Rounding is set to :const:" @@ -1417,12 +1449,13 @@ msgstr "" "establece en :const:`ROUND_HALF_EVEN`. Se restablecen todos los flags. No se " "habilitan trampas (para que no se generen excepciones durante los cálculos)." -#: ../Doc/library/decimal.rst:984 +#: ../Doc/library/decimal.rst:995 +#, fuzzy msgid "" "Because the traps are disabled, this context is useful for applications that " -"prefer to have result value of :const:`NaN` or :const:`Infinity` instead of " -"raising exceptions. This allows an application to complete a run in the " -"presence of conditions that would otherwise halt the program." +"prefer to have result value of ``NaN`` or ``Infinity`` instead of raising " +"exceptions. This allows an application to complete a run in the presence of " +"conditions that would otherwise halt the program." msgstr "" "Debido a que las trampas están deshabilitadas, este contexto es útil para " "aplicaciones que prefieren tener un valor :const:`NaN` o :const:`Infinity` " @@ -1430,7 +1463,7 @@ msgstr "" "aplicación complete una ejecución en presencia de condiciones que, de otra " "manera, detendrían el programa." -#: ../Doc/library/decimal.rst:992 +#: ../Doc/library/decimal.rst:1003 msgid "" "This context is used by the :class:`Context` constructor as a prototype for " "new contexts. Changing a field (such a precision) has the effect of " @@ -1442,7 +1475,7 @@ msgstr "" "precisión) tiene el efecto de cambiar el valor predeterminado para los " "nuevos contextos creados por el constructor de :class:`Context`." -#: ../Doc/library/decimal.rst:996 +#: ../Doc/library/decimal.rst:1007 msgid "" "This context is most useful in multi-threaded environments. Changing one of " "the fields before threads are started has the effect of setting system-wide " @@ -1456,7 +1489,7 @@ msgstr "" "de mecanismos de sincronización para evitar condiciones de carrera entre los " "hilos." -#: ../Doc/library/decimal.rst:1001 +#: ../Doc/library/decimal.rst:1012 msgid "" "In single threaded environments, it is preferable to not use this context at " "all. Instead, simply create contexts explicitly as described below." @@ -1465,17 +1498,18 @@ msgstr "" "absoluto. En su lugar, simplemente crea contextos explícitamente como se " "describe a continuación." -#: ../Doc/library/decimal.rst:1004 +#: ../Doc/library/decimal.rst:1015 +#, fuzzy msgid "" -"The default values are :attr:`prec`\\ =\\ :const:`28`, :attr:`rounding`\\ " -"=\\ :const:`ROUND_HALF_EVEN`, and enabled traps for :class:`Overflow`, :" -"class:`InvalidOperation`, and :class:`DivisionByZero`." +"The default values are :attr:`Context.prec`\\ =\\ ``28``, :attr:`Context." +"rounding`\\ =\\ :const:`ROUND_HALF_EVEN`, and enabled traps for :class:" +"`Overflow`, :class:`InvalidOperation`, and :class:`DivisionByZero`." msgstr "" "Los valores predeterminados son :attr:`prec`\\ =\\ :const:`28`, :attr:" "`rounding`\\ =\\ :const:`ROUND_HALF_EVEN` y trampas habilitadas para :class:" "`Overflow`, :class:`InvalidOperation` y :class:`DivisionByZero`." -#: ../Doc/library/decimal.rst:1009 +#: ../Doc/library/decimal.rst:1020 msgid "" "In addition to the three supplied contexts, new contexts can be created with " "the :class:`Context` constructor." @@ -1483,7 +1517,7 @@ msgstr "" "Además de los tres contextos proporcionados, se pueden crear nuevos " "contextos mediante el constructor de la clase :class:`Context`." -#: ../Doc/library/decimal.rst:1015 +#: ../Doc/library/decimal.rst:1026 msgid "" "Creates a new context. If a field is not specified or is :const:`None`, the " "default values are copied from the :const:`DefaultContext`. If the *flags* " @@ -1494,15 +1528,16 @@ msgstr "" "campo *flags* no está especificado, o es :const:`None`, se restablecen todas " "los flags." -#: ../Doc/library/decimal.rst:1019 +#: ../Doc/library/decimal.rst:1030 +#, fuzzy msgid "" -"*prec* is an integer in the range [:const:`1`, :const:`MAX_PREC`] that sets " -"the precision for arithmetic operations in the context." +"*prec* is an integer in the range [``1``, :const:`MAX_PREC`] that sets the " +"precision for arithmetic operations in the context." msgstr "" "*prec* es un número entero en el rango [:const:`1`, :const:`MAX_PREC`] que " "establece la precisión para las operaciones aritméticas en el contexto." -#: ../Doc/library/decimal.rst:1022 +#: ../Doc/library/decimal.rst:1033 msgid "" "The *rounding* option is one of the constants listed in the section " "`Rounding Modes`_." @@ -1510,7 +1545,7 @@ msgstr "" "La opción *rounding* es una de las constantes enumeradas en la sección " "`Rounding Modes`_." -#: ../Doc/library/decimal.rst:1025 +#: ../Doc/library/decimal.rst:1036 msgid "" "The *traps* and *flags* fields list any signals to be set. Generally, new " "contexts should only set traps and leave the flags clear." @@ -1519,40 +1554,43 @@ msgstr "" "Generalmente, los nuevos contextos solo deben establecer trampas y dejar los " "flags sin establecer." -#: ../Doc/library/decimal.rst:1028 +#: ../Doc/library/decimal.rst:1039 +#, fuzzy msgid "" "The *Emin* and *Emax* fields are integers specifying the outer limits " -"allowable for exponents. *Emin* must be in the range [:const:`MIN_EMIN`, :" -"const:`0`], *Emax* in the range [:const:`0`, :const:`MAX_EMAX`]." +"allowable for exponents. *Emin* must be in the range [:const:`MIN_EMIN`, " +"``0``], *Emax* in the range [``0``, :const:`MAX_EMAX`]." msgstr "" "Los campos *Emin* y *Emax* son números enteros que especifican los límites " "externos permitidos para los exponentes. *Emin* debe estar en el rango [:" "const:`MIN_EMIN`, :const:`0`] y *Emax* en el rango [:const:`0`, :const:" "`MAX_EMAX`]." -#: ../Doc/library/decimal.rst:1032 +#: ../Doc/library/decimal.rst:1043 +#, fuzzy msgid "" -"The *capitals* field is either :const:`0` or :const:`1` (the default). If " -"set to :const:`1`, exponents are printed with a capital :const:`E`; " -"otherwise, a lowercase :const:`e` is used: :const:`Decimal('6.02e+23')`." +"The *capitals* field is either ``0`` or ``1`` (the default). If set to " +"``1``, exponents are printed with a capital ``E``; otherwise, a lowercase " +"``e`` is used: ``Decimal('6.02e+23')``." msgstr "" "El campo *capitals* es :const:`0` o :const:`1` (por defecto). Si se " "establece en :const:`1`, los exponentes se imprimen usando una :const:`E` " "mayúscula; de lo contrario, se usa una :const:`e` minúscula: :const:" "`Decimal('6.02e+23')`." -#: ../Doc/library/decimal.rst:1036 +#: ../Doc/library/decimal.rst:1047 +#, fuzzy msgid "" -"The *clamp* field is either :const:`0` (the default) or :const:`1`. If set " -"to :const:`1`, the exponent ``e`` of a :class:`Decimal` instance " -"representable in this context is strictly limited to the range ``Emin - prec " -"+ 1 <= e <= Emax - prec + 1``. If *clamp* is :const:`0` then a weaker " -"condition holds: the adjusted exponent of the :class:`Decimal` instance is " -"at most ``Emax``. When *clamp* is :const:`1`, a large normal number will, " -"where possible, have its exponent reduced and a corresponding number of " -"zeros added to its coefficient, in order to fit the exponent constraints; " -"this preserves the value of the number but loses information about " -"significant trailing zeros. For example::" +"The *clamp* field is either ``0`` (the default) or ``1``. If set to ``1``, " +"the exponent ``e`` of a :class:`Decimal` instance representable in this " +"context is strictly limited to the range ``Emin - prec + 1 <= e <= Emax - " +"prec + 1``. If *clamp* is ``0`` then a weaker condition holds: the adjusted " +"exponent of the :class:`Decimal` instance is at most :attr:`~Context.Emax`. " +"When *clamp* is ``1``, a large normal number will, where possible, have its " +"exponent reduced and a corresponding number of zeros added to its " +"coefficient, in order to fit the exponent constraints; this preserves the " +"value of the number but loses information about significant trailing zeros. " +"For example::" msgstr "" "El campo *clamp* es :const:`0` (por defecto) o :const:`1`. Si se establece " "en :const:`1`, el exponente ``e`` representable en este contexto de una " @@ -1566,25 +1604,27 @@ msgstr "" "número pero conlleva una pérdida de información causada por los ceros " "finales significativos. Por ejemplo::" -#: ../Doc/library/decimal.rst:1051 +#: ../Doc/library/decimal.rst:1062 +#, fuzzy msgid "" -"A *clamp* value of :const:`1` allows compatibility with the fixed-width " -"decimal interchange formats specified in IEEE 754." +"A *clamp* value of ``1`` allows compatibility with the fixed-width decimal " +"interchange formats specified in IEEE 754." msgstr "" "Un valor *clamp* de :const:`1` permite la compatibilidad con los formatos de " "intercambio decimal de ancho fijo especificados en IEEE 754." -#: ../Doc/library/decimal.rst:1054 +#: ../Doc/library/decimal.rst:1065 +#, fuzzy msgid "" "The :class:`Context` class defines several general purpose methods as well " "as a large number of methods for doing arithmetic directly in a given " "context. In addition, for each of the :class:`Decimal` methods described " -"above (with the exception of the :meth:`adjusted` and :meth:`as_tuple` " -"methods) there is a corresponding :class:`Context` method. For example, for " -"a :class:`Context` instance ``C`` and :class:`Decimal` instance ``x``, ``C." -"exp(x)`` is equivalent to ``x.exp(context=C)``. Each :class:`Context` " -"method accepts a Python integer (an instance of :class:`int`) anywhere that " -"a Decimal instance is accepted." +"above (with the exception of the :meth:`~Decimal.adjusted` and :meth:" +"`~Decimal.as_tuple` methods) there is a corresponding :class:`Context` " +"method. For example, for a :class:`Context` instance ``C`` and :class:" +"`Decimal` instance ``x``, ``C.exp(x)`` is equivalent to ``x." +"exp(context=C)``. Each :class:`Context` method accepts a Python integer (an " +"instance of :class:`int`) anywhere that a Decimal instance is accepted." msgstr "" "La clase :class:`Context` define varios métodos de propósito general, así " "como una gran cantidad de métodos para hacer aritmética directamente en un " @@ -1597,23 +1637,25 @@ msgstr "" "Python (una instancia de :class:`int`) en cualquier lugar donde se acepte " "una instancia de Decimal." -#: ../Doc/library/decimal.rst:1067 -msgid "Resets all of the flags to :const:`0`." +#: ../Doc/library/decimal.rst:1078 +#, fuzzy +msgid "Resets all of the flags to ``0``." msgstr "Restablece todos los flags a :const:`0`." -#: ../Doc/library/decimal.rst:1071 -msgid "Resets all of the traps to :const:`0`." +#: ../Doc/library/decimal.rst:1082 +#, fuzzy +msgid "Resets all of the traps to ``0``." msgstr "Restablece todas las trampas a :const:`0`." -#: ../Doc/library/decimal.rst:1077 +#: ../Doc/library/decimal.rst:1088 msgid "Return a duplicate of the context." msgstr "Retorna un duplicado del contexto." -#: ../Doc/library/decimal.rst:1081 +#: ../Doc/library/decimal.rst:1092 msgid "Return a copy of the Decimal instance num." msgstr "Retorna una copia de la instancia de Decimal num." -#: ../Doc/library/decimal.rst:1085 +#: ../Doc/library/decimal.rst:1096 msgid "" "Creates a new Decimal instance from *num* but using *self* as context. " "Unlike the :class:`Decimal` constructor, the context precision, rounding " @@ -1624,7 +1666,7 @@ msgstr "" "precisión del contexto, el método de redondeo, los flags y las trampas se " "aplican a la conversión." -#: ../Doc/library/decimal.rst:1089 +#: ../Doc/library/decimal.rst:1100 msgid "" "This is useful because constants are often given to a greater precision than " "is needed by the application. Another benefit is that rounding immediately " @@ -1638,7 +1680,7 @@ msgstr "" "allá de la precisión actual. En el siguiente ejemplo, usar entradas no " "redondeadas significa que agregar cero a una suma puede cambiar el resultado:" -#: ../Doc/library/decimal.rst:1103 +#: ../Doc/library/decimal.rst:1114 msgid "" "This method implements the to-number operation of the IBM specification. If " "the argument is a string, no leading or trailing whitespace or underscores " @@ -1648,7 +1690,7 @@ msgstr "" "Si el argumento es una cadena de caracteres, no se permiten espacios en " "blanco ni guiones bajos, ni al principio ni al final." -#: ../Doc/library/decimal.rst:1109 +#: ../Doc/library/decimal.rst:1120 msgid "" "Creates a new Decimal instance from a float *f* but rounding using *self* as " "the context. Unlike the :meth:`Decimal.from_float` class method, the " @@ -1660,7 +1702,7 @@ msgstr "" "meth:`Decimal.from_float`, la precisión del contexto, el método de redondeo, " "los flags y las trampas se aplican a la conversión." -#: ../Doc/library/decimal.rst:1129 +#: ../Doc/library/decimal.rst:1140 msgid "" "Returns a value equal to ``Emin - prec + 1`` which is the minimum exponent " "value for subnormal results. When underflow occurs, the exponent is set to :" @@ -1671,11 +1713,11 @@ msgstr "" "numérico negativo (\"underflow\"), el exponente se establece en :const:" "`Etiny`." -#: ../Doc/library/decimal.rst:1135 +#: ../Doc/library/decimal.rst:1146 msgid "Returns a value equal to ``Emax - prec + 1``." msgstr "Retorna un valor igual a ``Emax - prec + 1``." -#: ../Doc/library/decimal.rst:1137 +#: ../Doc/library/decimal.rst:1148 msgid "" "The usual approach to working with decimals is to create :class:`Decimal` " "instances and then apply arithmetic operations which take place within the " @@ -1691,203 +1733,203 @@ msgstr "" "específico. Los métodos son similares a los de la clase :class:`Decimal` y " "aquí solo se relatan brevemente." -#: ../Doc/library/decimal.rst:1147 +#: ../Doc/library/decimal.rst:1158 msgid "Returns the absolute value of *x*." msgstr "Retorna el valor absoluto de *x*." -#: ../Doc/library/decimal.rst:1152 +#: ../Doc/library/decimal.rst:1163 msgid "Return the sum of *x* and *y*." msgstr "Retorna la suma de *x* e *y*." -#: ../Doc/library/decimal.rst:1157 +#: ../Doc/library/decimal.rst:1168 msgid "Returns the same Decimal object *x*." msgstr "Retorna el mismo objeto Decimal *x*." -#: ../Doc/library/decimal.rst:1162 +#: ../Doc/library/decimal.rst:1173 msgid "Compares *x* and *y* numerically." msgstr "Compara *x* e *y* numéricamente." -#: ../Doc/library/decimal.rst:1167 +#: ../Doc/library/decimal.rst:1178 msgid "Compares the values of the two operands numerically." msgstr "Compara los valores de los dos operandos numéricamente." -#: ../Doc/library/decimal.rst:1172 +#: ../Doc/library/decimal.rst:1183 msgid "Compares two operands using their abstract representation." msgstr "Compara los dos operandos utilizando su representación abstracta." -#: ../Doc/library/decimal.rst:1177 +#: ../Doc/library/decimal.rst:1188 msgid "" "Compares two operands using their abstract representation, ignoring sign." msgstr "" "Compara los dos operandos utilizando su representación abstracta, ignorando " "el signo." -#: ../Doc/library/decimal.rst:1182 +#: ../Doc/library/decimal.rst:1193 msgid "Returns a copy of *x* with the sign set to 0." msgstr "Retorna una copia de *x* con el signo establecido en 0." -#: ../Doc/library/decimal.rst:1187 +#: ../Doc/library/decimal.rst:1198 msgid "Returns a copy of *x* with the sign inverted." msgstr "Retorna una copia de *x* con el signo invertido." -#: ../Doc/library/decimal.rst:1192 +#: ../Doc/library/decimal.rst:1203 msgid "Copies the sign from *y* to *x*." msgstr "Copia el signo de *y* en *x*." -#: ../Doc/library/decimal.rst:1197 +#: ../Doc/library/decimal.rst:1208 msgid "Return *x* divided by *y*." msgstr "Retorna *x* dividido entre *y*." -#: ../Doc/library/decimal.rst:1202 +#: ../Doc/library/decimal.rst:1213 msgid "Return *x* divided by *y*, truncated to an integer." msgstr "" "Retorna *x* dividido entre *y*, truncando el resultado a un número entero." -#: ../Doc/library/decimal.rst:1207 +#: ../Doc/library/decimal.rst:1218 msgid "Divides two numbers and returns the integer part of the result." msgstr "Divide dos números y retorna la parte entera del resultado." -#: ../Doc/library/decimal.rst:1212 +#: ../Doc/library/decimal.rst:1223 #, fuzzy msgid "Returns ``e ** x``." msgstr "Retorna `e ** x`." -#: ../Doc/library/decimal.rst:1217 +#: ../Doc/library/decimal.rst:1228 msgid "Returns *x* multiplied by *y*, plus *z*." msgstr "Retorna *x* multiplicado por *y*, más *z*." -#: ../Doc/library/decimal.rst:1222 +#: ../Doc/library/decimal.rst:1233 msgid "Returns ``True`` if *x* is canonical; otherwise returns ``False``." msgstr "" "Retorna ``True`` si *x* está en forma canónica, en caso contrario retorna " "``False``." -#: ../Doc/library/decimal.rst:1227 +#: ../Doc/library/decimal.rst:1238 msgid "Returns ``True`` if *x* is finite; otherwise returns ``False``." msgstr "" "Retorna ``True`` si *x* es un valor finito, en caso contrario retorna " "``False``." -#: ../Doc/library/decimal.rst:1232 +#: ../Doc/library/decimal.rst:1243 msgid "Returns ``True`` if *x* is infinite; otherwise returns ``False``." msgstr "" "Retorna ``True`` si *x* es un valor infinito, en caso contrario retorna " "``False``." -#: ../Doc/library/decimal.rst:1237 +#: ../Doc/library/decimal.rst:1248 msgid "Returns ``True`` if *x* is a qNaN or sNaN; otherwise returns ``False``." msgstr "" "Retorna ``True`` si *x* es un valor qNaN o sNaN , en caso contrario retorna " "``False``." -#: ../Doc/library/decimal.rst:1242 +#: ../Doc/library/decimal.rst:1253 msgid "" "Returns ``True`` if *x* is a normal number; otherwise returns ``False``." msgstr "" "Retorna ``True`` si *x* es un número normal, en caso contrario retorna " "``False``." -#: ../Doc/library/decimal.rst:1247 +#: ../Doc/library/decimal.rst:1258 msgid "Returns ``True`` if *x* is a quiet NaN; otherwise returns ``False``." msgstr "" "Retorna ``True`` si *x* es un NaN silencioso, en caso contrario retorna " "``False``." -#: ../Doc/library/decimal.rst:1252 +#: ../Doc/library/decimal.rst:1263 msgid "Returns ``True`` if *x* is negative; otherwise returns ``False``." msgstr "" "Retorna ``True`` si *x* es un valor negativo, en caso contrario retorna " "``False``." -#: ../Doc/library/decimal.rst:1257 +#: ../Doc/library/decimal.rst:1268 msgid "" "Returns ``True`` if *x* is a signaling NaN; otherwise returns ``False``." msgstr "" "Retorna ``True`` si *x* es un NaN señalizador, en caso contrario retorna " "``False``." -#: ../Doc/library/decimal.rst:1262 +#: ../Doc/library/decimal.rst:1273 msgid "Returns ``True`` if *x* is subnormal; otherwise returns ``False``." msgstr "" "Retorna ``True`` si *x* es un número subnormal, en caso contrario retorna " "``False``." -#: ../Doc/library/decimal.rst:1267 +#: ../Doc/library/decimal.rst:1278 msgid "Returns ``True`` if *x* is a zero; otherwise returns ``False``." msgstr "" "Retorna ``True`` si *x* es un cero, en caso contrario retorna ``False``." -#: ../Doc/library/decimal.rst:1272 +#: ../Doc/library/decimal.rst:1283 msgid "Returns the natural (base e) logarithm of *x*." msgstr "Retorna el logaritmo natural (base e) de *x*." -#: ../Doc/library/decimal.rst:1277 +#: ../Doc/library/decimal.rst:1288 msgid "Returns the base 10 logarithm of *x*." msgstr "Retorna el logaritmo en base 10 de *x*." -#: ../Doc/library/decimal.rst:1282 +#: ../Doc/library/decimal.rst:1293 msgid "Returns the exponent of the magnitude of the operand's MSD." msgstr "" "Retorna el exponente de la magnitud del MSD (\"dígito más significativo\") " "del operando." -#: ../Doc/library/decimal.rst:1287 +#: ../Doc/library/decimal.rst:1298 msgid "Applies the logical operation *and* between each operand's digits." msgstr "Aplica la operación lógica *and* entre los dígitos de cada operando." -#: ../Doc/library/decimal.rst:1292 +#: ../Doc/library/decimal.rst:1303 msgid "Invert all the digits in *x*." msgstr "Invierte todos los dígitos en *x*." -#: ../Doc/library/decimal.rst:1297 +#: ../Doc/library/decimal.rst:1308 msgid "Applies the logical operation *or* between each operand's digits." msgstr "Aplica la operación lógica *or* entre los dígitos de cada operando." -#: ../Doc/library/decimal.rst:1302 +#: ../Doc/library/decimal.rst:1313 msgid "Applies the logical operation *xor* between each operand's digits." msgstr "Aplica la operación lógica *xor* entre los dígitos de cada operando." -#: ../Doc/library/decimal.rst:1307 +#: ../Doc/library/decimal.rst:1318 msgid "Compares two values numerically and returns the maximum." msgstr "Compara dos valores numéricamente y retorna el mayor de ellos." -#: ../Doc/library/decimal.rst:1312 ../Doc/library/decimal.rst:1322 +#: ../Doc/library/decimal.rst:1323 ../Doc/library/decimal.rst:1333 msgid "Compares the values numerically with their sign ignored." msgstr "Compara los valores numéricamente ignorando sus signos." -#: ../Doc/library/decimal.rst:1317 +#: ../Doc/library/decimal.rst:1328 msgid "Compares two values numerically and returns the minimum." msgstr "Compara dos valores numéricamente y retorna el menor de ellos." -#: ../Doc/library/decimal.rst:1327 +#: ../Doc/library/decimal.rst:1338 msgid "Minus corresponds to the unary prefix minus operator in Python." msgstr "Se corresponde con el operador unario de resta (prefijo) de Python." -#: ../Doc/library/decimal.rst:1332 +#: ../Doc/library/decimal.rst:1343 msgid "Return the product of *x* and *y*." msgstr "Retorna el producto de *x* por *y*." -#: ../Doc/library/decimal.rst:1337 +#: ../Doc/library/decimal.rst:1348 msgid "Returns the largest representable number smaller than *x*." msgstr "Retorna el número más grande representable menor que *x*." -#: ../Doc/library/decimal.rst:1342 +#: ../Doc/library/decimal.rst:1353 msgid "Returns the smallest representable number larger than *x*." msgstr "Retorna el número más pequeño representable mayor que *x*." -#: ../Doc/library/decimal.rst:1347 +#: ../Doc/library/decimal.rst:1358 msgid "Returns the number closest to *x*, in direction towards *y*." msgstr "Retorna el número más cercano a *x*, en la dirección de *y*." -#: ../Doc/library/decimal.rst:1352 +#: ../Doc/library/decimal.rst:1363 msgid "Reduces *x* to its simplest form." msgstr "Reduce *x* a su forma más simple." -#: ../Doc/library/decimal.rst:1357 +#: ../Doc/library/decimal.rst:1368 msgid "Returns an indication of the class of *x*." msgstr "Retorna una cadena de caracteres indicando la clase de *x*." -#: ../Doc/library/decimal.rst:1362 +#: ../Doc/library/decimal.rst:1373 msgid "" "Plus corresponds to the unary prefix plus operator in Python. This " "operation applies the context precision and rounding, so it is *not* an " @@ -1897,13 +1939,13 @@ msgstr "" "operación aplica la precisión y el redondeo establecidos en el contexto, por " "lo que *no* es una operación de identidad." -#: ../Doc/library/decimal.rst:1369 +#: ../Doc/library/decimal.rst:1380 msgid "Return ``x`` to the power of ``y``, reduced modulo ``modulo`` if given." msgstr "" "Retorna ``x`` elevado a la potencia ``y``, reconduciendo al módulo " "``modulo`` si se proporciona." -#: ../Doc/library/decimal.rst:1371 +#: ../Doc/library/decimal.rst:1382 #, fuzzy msgid "" "With two arguments, compute ``x**y``. If ``x`` is negative then ``y`` must " @@ -1919,7 +1961,7 @@ msgstr "" "establecido en el contexto. Los resultados siempre se redondean " "correctamente en la versión de Python." -#: ../Doc/library/decimal.rst:1377 +#: ../Doc/library/decimal.rst:1388 msgid "" "``Decimal(0) ** Decimal(0)`` results in ``InvalidOperation``, and if " "``InvalidOperation`` is not trapped, then results in ``Decimal('NaN')``." @@ -1928,7 +1970,7 @@ msgstr "" "``InvalidOperation`` no es atrapada, entonces da como resultado " "``Decimal('NaN')``." -#: ../Doc/library/decimal.rst:1380 +#: ../Doc/library/decimal.rst:1391 #, fuzzy msgid "" "The C module computes :meth:`power` in terms of the correctly rounded :meth:" @@ -1939,7 +1981,7 @@ msgstr "" "y :meth:`ln` redondeadas correctamente. El resultado está bien definido pero " "sólo \"casi siempre correctamente redondeado\"." -#: ../Doc/library/decimal.rst:1385 +#: ../Doc/library/decimal.rst:1396 msgid "" "With three arguments, compute ``(x**y) % modulo``. For the three argument " "form, the following restrictions on the arguments hold:" @@ -1947,24 +1989,24 @@ msgstr "" "Con tres argumentos, calcula ``(x**y) % modulo``. Para la forma de tres " "argumentos, se mantienen las siguientes restricciones sobre los argumentos:" -#: ../Doc/library/decimal.rst:1388 +#: ../Doc/library/decimal.rst:1399 msgid "all three arguments must be integral" msgstr "los tres argumentos deben ser enteros" -#: ../Doc/library/decimal.rst:1389 +#: ../Doc/library/decimal.rst:1400 msgid "``y`` must be nonnegative" msgstr "``y`` debe ser un valor no negativo" -#: ../Doc/library/decimal.rst:1390 +#: ../Doc/library/decimal.rst:1401 msgid "at least one of ``x`` or ``y`` must be nonzero" msgstr "al menos uno, ``x`` o ``y`` , no debe ser cero" -#: ../Doc/library/decimal.rst:1391 +#: ../Doc/library/decimal.rst:1402 msgid "``modulo`` must be nonzero and have at most 'precision' digits" msgstr "" "``modulo`` no debe ser cero y tener como mínimo los dígitos de la 'precisión'" -#: ../Doc/library/decimal.rst:1393 +#: ../Doc/library/decimal.rst:1404 msgid "" "The value resulting from ``Context.power(x, y, modulo)`` is equal to the " "value that would be obtained by computing ``(x**y) % modulo`` with unbounded " @@ -1978,21 +2020,21 @@ msgstr "" "resultado es cero, independientemente de los exponentes de ``x``, ``y`` y " "``modulo``. El resultado siempre es exacto." -#: ../Doc/library/decimal.rst:1403 +#: ../Doc/library/decimal.rst:1414 msgid "Returns a value equal to *x* (rounded), having the exponent of *y*." msgstr "" "Retorna un valor igual a *x* (redondeado), pero que tiene el exponente de " "*y*." -#: ../Doc/library/decimal.rst:1408 +#: ../Doc/library/decimal.rst:1419 msgid "Just returns 10, as this is Decimal, :)" msgstr "Simplemente retorna 10, ya que es Decimal, :)" -#: ../Doc/library/decimal.rst:1413 +#: ../Doc/library/decimal.rst:1424 msgid "Returns the remainder from integer division." msgstr "Retorna el resto de la división entera." -#: ../Doc/library/decimal.rst:1415 +#: ../Doc/library/decimal.rst:1426 msgid "" "The sign of the result, if non-zero, is the same as that of the original " "dividend." @@ -2000,7 +2042,7 @@ msgstr "" "El signo del resultado, si no es cero, es el mismo que el del dividendo " "original." -#: ../Doc/library/decimal.rst:1421 +#: ../Doc/library/decimal.rst:1432 msgid "" "Returns ``x - y * n``, where *n* is the integer nearest the exact value of " "``x / y`` (if the result is 0 then its sign will be the sign of *x*)." @@ -2009,48 +2051,48 @@ msgstr "" "exacto de ``x / y`` (si el resultado es 0, entonces su signo será el signo " "de *x*)." -#: ../Doc/library/decimal.rst:1427 +#: ../Doc/library/decimal.rst:1438 msgid "Returns a rotated copy of *x*, *y* times." msgstr "Retorna una copia de *x* rotada *y* veces." -#: ../Doc/library/decimal.rst:1432 +#: ../Doc/library/decimal.rst:1443 msgid "Returns ``True`` if the two operands have the same exponent." msgstr "Retorna ``True`` si los dos operandos tienen el mismo exponente." -#: ../Doc/library/decimal.rst:1437 +#: ../Doc/library/decimal.rst:1448 msgid "Returns the first operand after adding the second value its exp." msgstr "" "Retorna el primer operando después de agregar el segundo valor a su " "exponente." -#: ../Doc/library/decimal.rst:1442 +#: ../Doc/library/decimal.rst:1453 msgid "Returns a shifted copy of *x*, *y* times." msgstr "Retorna una copia de *x* desplazada *y* veces." -#: ../Doc/library/decimal.rst:1447 +#: ../Doc/library/decimal.rst:1458 msgid "Square root of a non-negative number to context precision." msgstr "" "Retorna la raíz cuadrada de un número no negativo para la precisión del " "contexto." -#: ../Doc/library/decimal.rst:1452 +#: ../Doc/library/decimal.rst:1463 msgid "Return the difference between *x* and *y*." msgstr "Retorna la diferencia entre *x* e *y*." -#: ../Doc/library/decimal.rst:1466 +#: ../Doc/library/decimal.rst:1477 msgid "Rounds to an integer." msgstr "Redondea a un entero." -#: ../Doc/library/decimal.rst:1471 +#: ../Doc/library/decimal.rst:1482 msgid "Converts a number to a string using scientific notation." msgstr "" "Convierte un número en una cadena de caracteres usando notación científica." -#: ../Doc/library/decimal.rst:1478 +#: ../Doc/library/decimal.rst:1489 msgid "Constants" msgstr "Constantes" -#: ../Doc/library/decimal.rst:1480 +#: ../Doc/library/decimal.rst:1491 msgid "" "The constants in this section are only relevant for the C module. They are " "also included in the pure Python version for compatibility." @@ -2058,46 +2100,52 @@ msgstr "" "Las constantes detalladas en esta sección solo son relevantes para el módulo " "de C. Se incluyen también en la versión pura de Python por compatibilidad." -#: ../Doc/library/decimal.rst:1484 +#: ../Doc/library/decimal.rst:1495 msgid "32-bit" msgstr "32-bit" -#: ../Doc/library/decimal.rst:1484 +#: ../Doc/library/decimal.rst:1495 msgid "64-bit" msgstr "64-bit" -#: ../Doc/library/decimal.rst:1486 ../Doc/library/decimal.rst:1488 -msgid ":const:`425000000`" +#: ../Doc/library/decimal.rst:1497 ../Doc/library/decimal.rst:1499 +#, fuzzy +msgid "``425000000``" msgstr ":const:`425000000`" -#: ../Doc/library/decimal.rst:1486 ../Doc/library/decimal.rst:1488 -msgid ":const:`999999999999999999`" +#: ../Doc/library/decimal.rst:1497 ../Doc/library/decimal.rst:1499 +#, fuzzy +msgid "``999999999999999999``" msgstr ":const:`999999999999999999`" -#: ../Doc/library/decimal.rst:1490 -msgid ":const:`-425000000`" +#: ../Doc/library/decimal.rst:1501 +#, fuzzy +msgid "``-425000000``" msgstr ":const:`-425000000`" -#: ../Doc/library/decimal.rst:1490 -msgid ":const:`-999999999999999999`" +#: ../Doc/library/decimal.rst:1501 +#, fuzzy +msgid "``-999999999999999999``" msgstr ":const:`-999999999999999999`" -#: ../Doc/library/decimal.rst:1492 -msgid ":const:`-849999999`" +#: ../Doc/library/decimal.rst:1503 +#, fuzzy +msgid "``-849999999``" msgstr ":const:`-849999999`" -#: ../Doc/library/decimal.rst:1492 -msgid ":const:`-1999999999999999997`" +#: ../Doc/library/decimal.rst:1503 +#, fuzzy +msgid "``-1999999999999999997``" msgstr ":const:`-1999999999999999997`" -#: ../Doc/library/decimal.rst:1498 +#: ../Doc/library/decimal.rst:1509 msgid "" "The value is ``True``. Deprecated, because Python now always has threads." msgstr "" "El valor es ``True``. Está obsoleta, debido ha que Python ahora siempre " "tiene soporte para hilos." -#: ../Doc/library/decimal.rst:1504 +#: ../Doc/library/decimal.rst:1515 msgid "" "The default value is ``True``. If Python is :option:`configured using the --" "without-decimal-contextvar option <--without-decimal-contextvar>`, the C " @@ -2111,45 +2159,47 @@ msgstr "" "locales y el valor de la constante es ``False``. Esto es algo más rápido en " "algunos escenarios de contexto anidado." -#: ../Doc/library/decimal.rst:1509 +#: ../Doc/library/decimal.rst:1520 msgid "backported to 3.7 and 3.8." msgstr "retro-portado a las versiones 3.7 y 3.8." -#: ../Doc/library/decimal.rst:1513 +#: ../Doc/library/decimal.rst:1524 msgid "Rounding modes" msgstr "Modos de redondeo" -#: ../Doc/library/decimal.rst:1517 -msgid "Round towards :const:`Infinity`." +#: ../Doc/library/decimal.rst:1528 +#, fuzzy +msgid "Round towards ``Infinity``." msgstr "Redondear hacia :const:`Infinity`." -#: ../Doc/library/decimal.rst:1521 +#: ../Doc/library/decimal.rst:1532 msgid "Round towards zero." msgstr "Redondear hacia cero." -#: ../Doc/library/decimal.rst:1525 -msgid "Round towards :const:`-Infinity`." +#: ../Doc/library/decimal.rst:1536 +#, fuzzy +msgid "Round towards ``-Infinity``." msgstr "Redondear hacia :const:`-Infinity`." -#: ../Doc/library/decimal.rst:1529 +#: ../Doc/library/decimal.rst:1540 msgid "Round to nearest with ties going towards zero." msgstr "Redondear al valor contiguo más cercano, con empates hacia cero." -#: ../Doc/library/decimal.rst:1533 +#: ../Doc/library/decimal.rst:1544 msgid "Round to nearest with ties going to nearest even integer." msgstr "" "Redondear al valor contiguo más cercano, con empates al entero par contiguo." -#: ../Doc/library/decimal.rst:1537 +#: ../Doc/library/decimal.rst:1548 msgid "Round to nearest with ties going away from zero." msgstr "" "Redondear al valor contiguo más cercano, con empates alejándose de cero." -#: ../Doc/library/decimal.rst:1541 +#: ../Doc/library/decimal.rst:1552 msgid "Round away from zero." msgstr "Redondear alejándose de cero." -#: ../Doc/library/decimal.rst:1545 +#: ../Doc/library/decimal.rst:1556 msgid "" "Round away from zero if last digit after rounding towards zero would have " "been 0 or 5; otherwise round towards zero." @@ -2157,11 +2207,11 @@ msgstr "" "Si el último dígito después de redondear hacia cero es 0 ó 5, redondear " "alejándose de cero, en caso contrario, redondear hacia cero." -#: ../Doc/library/decimal.rst:1552 +#: ../Doc/library/decimal.rst:1563 msgid "Signals" msgstr "Señales" -#: ../Doc/library/decimal.rst:1554 +#: ../Doc/library/decimal.rst:1565 msgid "" "Signals represent conditions that arise during computation. Each corresponds " "to one context flag and one context trap enabler." @@ -2170,7 +2220,7 @@ msgstr "" "se corresponde con un solo flag de contexto y un habilitador de trampas de " "contexto." -#: ../Doc/library/decimal.rst:1557 +#: ../Doc/library/decimal.rst:1568 msgid "" "The context flag is set whenever the condition is encountered. After the " "computation, flags may be checked for informational purposes (for instance, " @@ -2183,7 +2233,7 @@ msgstr "" "verificar los flags, asegúrate de borrarlos antes de comenzar con el " "siguiente cálculo." -#: ../Doc/library/decimal.rst:1562 +#: ../Doc/library/decimal.rst:1573 msgid "" "If the context's trap enabler is set for the signal, then the condition " "causes a Python exception to be raised. For example, if the :class:" @@ -2195,46 +2245,47 @@ msgstr "" "ejemplo, si se establece la trampa :class:`DivisionByZero`, se genera una " "excepción :exc:`DivisionByZero` al encontrar la condición." -#: ../Doc/library/decimal.rst:1570 +#: ../Doc/library/decimal.rst:1581 msgid "Altered an exponent to fit representation constraints." msgstr "Cambia un exponente para ajustar las restricciones de representación." -#: ../Doc/library/decimal.rst:1572 +#: ../Doc/library/decimal.rst:1583 +#, fuzzy msgid "" "Typically, clamping occurs when an exponent falls outside the context's :" -"attr:`Emin` and :attr:`Emax` limits. If possible, the exponent is reduced " -"to fit by adding zeros to the coefficient." +"attr:`~Context.Emin` and :attr:`~Context.Emax` limits. If possible, the " +"exponent is reduced to fit by adding zeros to the coefficient." msgstr "" "Normalmente, la restricción ocurre cuando un exponente cae fuera de los " "límites :attr:`Emin` y :attr:`Emax` del contexto. Si es posible, el " "exponente se reduce para ajustar agregando ceros al coeficiente." -#: ../Doc/library/decimal.rst:1579 +#: ../Doc/library/decimal.rst:1590 msgid "Base class for other signals and a subclass of :exc:`ArithmeticError`." msgstr "" "Clase base para otras señales. Es una subclase de :exc:`ArithmeticError`." -#: ../Doc/library/decimal.rst:1584 +#: ../Doc/library/decimal.rst:1595 msgid "Signals the division of a non-infinite number by zero." msgstr "Señala la división de un número no infinito entre cero." -#: ../Doc/library/decimal.rst:1586 +#: ../Doc/library/decimal.rst:1597 +#, fuzzy msgid "" "Can occur with division, modulo division, or when raising a number to a " -"negative power. If this signal is not trapped, returns :const:`Infinity` " -"or :const:`-Infinity` with the sign determined by the inputs to the " -"calculation." +"negative power. If this signal is not trapped, returns ``Infinity`` or ``-" +"Infinity`` with the sign determined by the inputs to the calculation." msgstr "" "Puede ocurrir en la división, en la división modular o al elevar un número a " "una potencia negativa. Si esta señal no es atrapada, se retorna :const:" "`Infinity` o :const:`-Infinity`, con el signo determinado por las entradas " "del cálculo." -#: ../Doc/library/decimal.rst:1593 +#: ../Doc/library/decimal.rst:1604 msgid "Indicates that rounding occurred and the result is not exact." msgstr "Indica que se produjo un redondeo y el resultado no es exacto." -#: ../Doc/library/decimal.rst:1595 +#: ../Doc/library/decimal.rst:1606 msgid "" "Signals when non-zero digits were discarded during rounding. The rounded " "result is returned. The signal flag or trap is used to detect when results " @@ -2244,28 +2295,30 @@ msgstr "" "retorna el resultado redondeado. El flag o la trampa de señal se utiliza " "para detectar cuando los resultados son inexactos." -#: ../Doc/library/decimal.rst:1602 +#: ../Doc/library/decimal.rst:1613 msgid "An invalid operation was performed." msgstr "Señala que se realizó una operación no válida." -#: ../Doc/library/decimal.rst:1604 +#: ../Doc/library/decimal.rst:1615 +#, fuzzy msgid "" "Indicates that an operation was requested that does not make sense. If not " -"trapped, returns :const:`NaN`. Possible causes include::" +"trapped, returns ``NaN``. Possible causes include::" msgstr "" "Indica que se solicitó una operación que no tiene lógica. Si esta señal no " "está atrapada, se retorna :const:`NaN`. Las posibles causas incluyen::" -#: ../Doc/library/decimal.rst:1620 +#: ../Doc/library/decimal.rst:1631 msgid "Numerical overflow." msgstr "Desbordamiento numérico." -#: ../Doc/library/decimal.rst:1622 +#: ../Doc/library/decimal.rst:1633 +#, fuzzy msgid "" -"Indicates the exponent is larger than :attr:`Emax` after rounding has " -"occurred. If not trapped, the result depends on the rounding mode, either " -"pulling inward to the largest representable finite number or rounding " -"outward to :const:`Infinity`. In either case, :class:`Inexact` and :class:" +"Indicates the exponent is larger than :attr:`Context.Emax` after rounding " +"has occurred. If not trapped, the result depends on the rounding mode, " +"either pulling inward to the largest representable finite number or rounding " +"outward to ``Infinity``. In either case, :class:`Inexact` and :class:" "`Rounded` are also signaled." msgstr "" "Indica que el exponente es mayor que :attr:`max` después de que se haya " @@ -2274,28 +2327,29 @@ msgstr "" "representable o redondeando hacia afuera a :const:`Infinity`. En cualquier " "caso, también se activan las señales :class:`Inexact` y :class:`Rounded`." -#: ../Doc/library/decimal.rst:1631 +#: ../Doc/library/decimal.rst:1642 msgid "Rounding occurred though possibly no information was lost." msgstr "" "Se produjo un redondeo, aunque posiblemente no hubo pérdida de información." -#: ../Doc/library/decimal.rst:1633 +#: ../Doc/library/decimal.rst:1644 +#, fuzzy msgid "" "Signaled whenever rounding discards digits; even if those digits are zero " -"(such as rounding :const:`5.00` to :const:`5.0`). If not trapped, returns " -"the result unchanged. This signal is used to detect loss of significant " -"digits." +"(such as rounding ``5.00`` to ``5.0``). If not trapped, returns the result " +"unchanged. This signal is used to detect loss of significant digits." msgstr "" "Señal lanzada cada vez que el redondeo descarta dígitos; incluso si esos " "dígitos son cero (como al redondear :const:`5.00` a :const:`5.0`). Si no " "está atrapada, se retorna el resultado sin cambios. Esta señal se utiliza " "para detectar la pérdida de dígitos significativos." -#: ../Doc/library/decimal.rst:1641 -msgid "Exponent was lower than :attr:`Emin` prior to rounding." +#: ../Doc/library/decimal.rst:1652 +#, fuzzy +msgid "Exponent was lower than :attr:`~Context.Emin` prior to rounding." msgstr "El exponente antes del redondeo era menor que :attr:`Emin`." -#: ../Doc/library/decimal.rst:1643 +#: ../Doc/library/decimal.rst:1654 msgid "" "Occurs when an operation result is subnormal (the exponent is too small). If " "not trapped, returns the result unchanged." @@ -2303,11 +2357,11 @@ msgstr "" "Ocurre cuando el resultado de una operación es subnormal (el exponente es " "demasiado pequeño). Si no está atrapada, se retorna el resultado sin cambios." -#: ../Doc/library/decimal.rst:1649 +#: ../Doc/library/decimal.rst:1660 msgid "Numerical underflow with result rounded to zero." msgstr "Desbordamiento numérico negativo con resultado redondeado a cero." -#: ../Doc/library/decimal.rst:1651 +#: ../Doc/library/decimal.rst:1662 msgid "" "Occurs when a subnormal result is pushed to zero by rounding. :class:" "`Inexact` and :class:`Subnormal` are also signaled." @@ -2315,12 +2369,12 @@ msgstr "" "Ocurre cuando un resultado subnormal se lleva a cero mediante redondeo. :" "class:`Inexact` y :class:`Subnormal` también se señalan." -#: ../Doc/library/decimal.rst:1657 +#: ../Doc/library/decimal.rst:1668 msgid "Enable stricter semantics for mixing floats and Decimals." msgstr "" "Habilita una semántica más estricta para mezclar flotantes y objetos Decimal." -#: ../Doc/library/decimal.rst:1659 +#: ../Doc/library/decimal.rst:1670 msgid "" "If the signal is not trapped (default), mixing floats and Decimals is " "permitted in the :class:`~decimal.Decimal` constructor, :meth:`~decimal." @@ -2339,7 +2393,7 @@ msgstr "" "conversiones explícitas usando :meth:`~decimal.Decimal.from_float` o :meth:" "`~decimal.Context.create_decimal_from_float` no establecen el flag." -#: ../Doc/library/decimal.rst:1667 +#: ../Doc/library/decimal.rst:1678 msgid "" "Otherwise (the signal is trapped), only equality comparisons and explicit " "conversions are silent. All other mixed operations raise :exc:" @@ -2349,31 +2403,32 @@ msgstr "" "igualdad y las conversiones explícitas permanecen silenciadas. Todas las " "demás operaciones mixtas lanzan una excepción :exc:`FloatOperation`." -#: ../Doc/library/decimal.rst:1671 +#: ../Doc/library/decimal.rst:1682 msgid "The following table summarizes the hierarchy of signals::" msgstr "La siguiente tabla resume la jerarquía de señales::" -#: ../Doc/library/decimal.rst:1692 +#: ../Doc/library/decimal.rst:1703 msgid "Floating Point Notes" msgstr "Notas sobre la representación en coma flotante" -#: ../Doc/library/decimal.rst:1696 +#: ../Doc/library/decimal.rst:1707 msgid "Mitigating round-off error with increased precision" msgstr "Mitigación del error de redondeo usando mayor precisión" -#: ../Doc/library/decimal.rst:1698 +#: ../Doc/library/decimal.rst:1709 +#, fuzzy msgid "" "The use of decimal floating point eliminates decimal representation error " -"(making it possible to represent :const:`0.1` exactly); however, some " -"operations can still incur round-off error when non-zero digits exceed the " -"fixed precision." +"(making it possible to represent ``0.1`` exactly); however, some operations " +"can still incur round-off error when non-zero digits exceed the fixed " +"precision." msgstr "" "El uso de la coma flotante decimal elimina el error de representación " "decimal (haciendo posible representar :const:`0.1` de forma exacta). Sin " "embargo, algunas operaciones aún pueden incurrir en errores de redondeo " "cuando los dígitos distintos de cero exceden la precisión fija." -#: ../Doc/library/decimal.rst:1702 +#: ../Doc/library/decimal.rst:1713 msgid "" "The effects of round-off error can be amplified by the addition or " "subtraction of nearly offsetting quantities resulting in loss of " @@ -2387,7 +2442,7 @@ msgstr "" "aritmética de coma flotante redondeada con precisión insuficiente provoca la " "ruptura de las propiedades asociativas y distributivas de la suma:" -#: ../Doc/library/decimal.rst:1726 +#: ../Doc/library/decimal.rst:1737 msgid "" "The :mod:`decimal` module makes it possible to restore the identities by " "expanding the precision sufficiently to avoid loss of significance:" @@ -2395,21 +2450,22 @@ msgstr "" "El módulo :mod:`decimal` permite restaurar las identidades ampliando la " "precisión lo suficiente para evitar la pérdida de significación:" -#: ../Doc/library/decimal.rst:1746 +#: ../Doc/library/decimal.rst:1757 msgid "Special values" msgstr "Valores especiales" -#: ../Doc/library/decimal.rst:1748 +#: ../Doc/library/decimal.rst:1759 +#, fuzzy msgid "" "The number system for the :mod:`decimal` module provides special values " -"including :const:`NaN`, :const:`sNaN`, :const:`-Infinity`, :const:" -"`Infinity`, and two zeros, :const:`+0` and :const:`-0`." +"including ``NaN``, ``sNaN``, ``-Infinity``, ``Infinity``, and two zeros, " +"``+0`` and ``-0``." msgstr "" "El sistema numérico para el módulo :mod:`decimal` proporciona valores " "especiales que incluyen: :const:`NaN`, :const:`sNaN`, :const:`-Infinity`, :" "const:`Infinity`, y dos ceros, :const:`+0` y :const:`-0`." -#: ../Doc/library/decimal.rst:1752 +#: ../Doc/library/decimal.rst:1763 msgid "" "Infinities can be constructed directly with: ``Decimal('Infinity')``. Also, " "they can arise from dividing by zero when the :exc:`DivisionByZero` signal " @@ -2423,7 +2479,7 @@ msgstr "" "`Overflow` no es interceptada, un infinito puede resultar del redondeo más " "allá de los límites del mayor número representable." -#: ../Doc/library/decimal.rst:1757 +#: ../Doc/library/decimal.rst:1768 msgid "" "The infinities are signed (affine) and can be used in arithmetic operations " "where they get treated as very large, indeterminate numbers. For instance, " @@ -2433,13 +2489,14 @@ msgstr "" "aritméticas donde se tratan como números muy grandes e indeterminados. Por " "ejemplo, adicionar una constante a infinito resulta en otro infinito." -#: ../Doc/library/decimal.rst:1761 +#: ../Doc/library/decimal.rst:1772 +#, fuzzy msgid "" -"Some operations are indeterminate and return :const:`NaN`, or if the :exc:" +"Some operations are indeterminate and return ``NaN``, or if the :exc:" "`InvalidOperation` signal is trapped, raise an exception. For example, " -"``0/0`` returns :const:`NaN` which means \"not a number\". This variety of :" -"const:`NaN` is quiet and, once created, will flow through other computations " -"always resulting in another :const:`NaN`. This behavior can be useful for a " +"``0/0`` returns ``NaN`` which means \"not a number\". This variety of " +"``NaN`` is quiet and, once created, will flow through other computations " +"always resulting in another ``NaN``. This behavior can be useful for a " "series of computations that occasionally have missing inputs --- it allows " "the calculation to proceed while flagging specific results as invalid." msgstr "" @@ -2452,32 +2509,34 @@ msgstr "" "ocasionalmente les faltan entradas, permitiendo que el cálculo continúe " "mientras se marcan resultados específicos como no válidos." -#: ../Doc/library/decimal.rst:1769 +#: ../Doc/library/decimal.rst:1780 +#, fuzzy msgid "" -"A variant is :const:`sNaN` which signals rather than remaining quiet after " -"every operation. This is a useful return value when an invalid result needs " -"to interrupt a calculation for special handling." +"A variant is ``sNaN`` which signals rather than remaining quiet after every " +"operation. This is a useful return value when an invalid result needs to " +"interrupt a calculation for special handling." msgstr "" "Una variante es :const:`sNaN`, que emite una señal en lugar de permanecer en " "silencio después de cada operación. Este es un valor de retorno útil cuando " "un resultado no válido requiere interrumpir un cálculo para un manejo " "especial." -#: ../Doc/library/decimal.rst:1773 +#: ../Doc/library/decimal.rst:1784 +#, fuzzy msgid "" "The behavior of Python's comparison operators can be a little surprising " -"where a :const:`NaN` is involved. A test for equality where one of the " -"operands is a quiet or signaling :const:`NaN` always returns :const:`False` " -"(even when doing ``Decimal('NaN')==Decimal('NaN')``), while a test for " -"inequality always returns :const:`True`. An attempt to compare two Decimals " -"using any of the ``<``, ``<=``, ``>`` or ``>=`` operators will raise the :" -"exc:`InvalidOperation` signal if either operand is a :const:`NaN`, and " -"return :const:`False` if this signal is not trapped. Note that the General " -"Decimal Arithmetic specification does not specify the behavior of direct " -"comparisons; these rules for comparisons involving a :const:`NaN` were taken " -"from the IEEE 854 standard (see Table 3 in section 5.7). To ensure strict " -"standards-compliance, use the :meth:`compare` and :meth:`compare-signal` " -"methods instead." +"where a ``NaN`` is involved. A test for equality where one of the operands " +"is a quiet or signaling ``NaN`` always returns :const:`False` (even when " +"doing ``Decimal('NaN')==Decimal('NaN')``), while a test for inequality " +"always returns :const:`True`. An attempt to compare two Decimals using any " +"of the ``<``, ``<=``, ``>`` or ``>=`` operators will raise the :exc:" +"`InvalidOperation` signal if either operand is a ``NaN``, and return :const:" +"`False` if this signal is not trapped. Note that the General Decimal " +"Arithmetic specification does not specify the behavior of direct " +"comparisons; these rules for comparisons involving a ``NaN`` were taken from " +"the IEEE 854 standard (see Table 3 in section 5.7). To ensure strict " +"standards-compliance, use the :meth:`~Decimal.compare` and :meth:`~Decimal." +"compare_signal` methods instead." msgstr "" "El comportamiento de los operadores de comparación de Python puede ser un " "poco sorprendente cuando está involucrado un valor :const:`NaN`. Una prueba " @@ -2495,7 +2554,7 @@ msgstr "" "meth:`compare` y :meth:`compare-signal` para garantizar el cumplimiento " "estricto de los estándares." -#: ../Doc/library/decimal.rst:1786 +#: ../Doc/library/decimal.rst:1797 msgid "" "The signed zeros can result from calculations that underflow. They keep the " "sign that would have resulted if the calculation had been carried out to " @@ -2508,7 +2567,7 @@ msgstr "" "ceros positivos y negativos se tratan como iguales y su signo es solo " "informativo." -#: ../Doc/library/decimal.rst:1791 +#: ../Doc/library/decimal.rst:1802 msgid "" "In addition to the two signed zeros which are distinct yet equal, there are " "various representations of zero with differing precisions yet equivalent in " @@ -2522,11 +2581,11 @@ msgstr "" "habituado a las representaciones normalizadas de coma flotante, no es " "inmediatamente obvio que el siguiente cálculo retorne un valor igual a cero:" -#: ../Doc/library/decimal.rst:1806 +#: ../Doc/library/decimal.rst:1817 msgid "Working with threads" msgstr "Trabajando con hilos" -#: ../Doc/library/decimal.rst:1808 +#: ../Doc/library/decimal.rst:1819 msgid "" "The :func:`getcontext` function accesses a different :class:`Context` object " "for each thread. Having separate thread contexts means that threads may " @@ -2538,7 +2597,7 @@ msgstr "" "pueden realizar cambios (como ``getcontext().prec=10``) sin interferir con " "otros hilos." -#: ../Doc/library/decimal.rst:1812 +#: ../Doc/library/decimal.rst:1823 msgid "" "Likewise, the :func:`setcontext` function automatically assigns its target " "to the current thread." @@ -2546,7 +2605,7 @@ msgstr "" "Asimismo, la función :func:`setcontext` asigna automáticamente su objetivo " "al hilo actual." -#: ../Doc/library/decimal.rst:1815 +#: ../Doc/library/decimal.rst:1826 msgid "" "If :func:`setcontext` has not been called before :func:`getcontext`, then :" "func:`getcontext` will automatically create a new context for use in the " @@ -2556,7 +2615,7 @@ msgstr "" "entonces :func:`getcontext` creará automáticamente un nuevo contexto para " "usar en el hilo actual." -#: ../Doc/library/decimal.rst:1819 +#: ../Doc/library/decimal.rst:1830 msgid "" "The new context is copied from a prototype context called *DefaultContext*. " "To control the defaults so that each thread will use the same values " @@ -2571,11 +2630,11 @@ msgstr "" "inicien los hilos, para evitar que tenga lugar una condición de carrera " "entre los mismos al invocar a :func:`getcontext`. Por ejemplo::" -#: ../Doc/library/decimal.rst:1844 +#: ../Doc/library/decimal.rst:1855 msgid "Recipes" msgstr "Casos prácticos" -#: ../Doc/library/decimal.rst:1846 +#: ../Doc/library/decimal.rst:1857 msgid "" "Here are a few recipes that serve as utility functions and that demonstrate " "ways to work with the :class:`Decimal` class::" @@ -2583,11 +2642,11 @@ msgstr "" "A continuación hay algunos casos prácticos que sirven como funciones de " "utilidad y que muestran formas de trabajar con la clase :class:`Decimal`::" -#: ../Doc/library/decimal.rst:2001 +#: ../Doc/library/decimal.rst:2012 msgid "Decimal FAQ" msgstr "Preguntas frecuentes sobre decimal" -#: ../Doc/library/decimal.rst:2003 +#: ../Doc/library/decimal.rst:2014 msgid "" "Q. It is cumbersome to type ``decimal.Decimal('1234.5')``. Is there a way " "to minimize typing when using the interactive interpreter?" @@ -2595,11 +2654,11 @@ msgstr "" "P. Es engorroso escribir ``decimal.Decimal('1234.5')``. ¿Hay alguna forma de " "minimizar la escritura cuando se usa el intérprete interactivo?" -#: ../Doc/library/decimal.rst:2006 +#: ../Doc/library/decimal.rst:2017 msgid "A. Some users abbreviate the constructor to just a single letter:" msgstr "R. Algunos usuarios abrevian el constructor a una sola letra:" -#: ../Doc/library/decimal.rst:2012 +#: ../Doc/library/decimal.rst:2023 msgid "" "Q. In a fixed-point application with two decimal places, some inputs have " "many places and need to be rounded. Others are not supposed to have excess " @@ -2609,15 +2668,17 @@ msgstr "" "muchos dígitos decimales y deben redondearse. En cambio, otras no tienen " "dígitos en exceso y deben ser validadas. ¿Qué métodos deben utilizarse?" -#: ../Doc/library/decimal.rst:2016 +#: ../Doc/library/decimal.rst:2027 +#, fuzzy msgid "" -"A. The :meth:`quantize` method rounds to a fixed number of decimal places. " -"If the :const:`Inexact` trap is set, it is also useful for validation:" +"A. The :meth:`~Decimal.quantize` method rounds to a fixed number of decimal " +"places. If the :const:`Inexact` trap is set, it is also useful for " +"validation:" msgstr "" "R. El método :meth:`quantize` redondea a un número fijo de decimales. Si se " "establece la trampa :const:`Inexact`, también es útil para la validación:" -#: ../Doc/library/decimal.rst:2034 +#: ../Doc/library/decimal.rst:2045 msgid "" "Q. Once I have valid two place inputs, how do I maintain that invariant " "throughout an application?" @@ -2625,12 +2686,13 @@ msgstr "" "P. Si tengo entradas validadas con dos dígitos decimales, ¿cómo mantengo eso " "invariante en una aplicación?" -#: ../Doc/library/decimal.rst:2037 +#: ../Doc/library/decimal.rst:2048 +#, fuzzy msgid "" "A. Some operations like addition, subtraction, and multiplication by an " "integer will automatically preserve fixed point. Others operations, like " "division and non-integer multiplication, will change the number of decimal " -"places and need to be followed-up with a :meth:`quantize` step:" +"places and need to be followed-up with a :meth:`~Decimal.quantize` step:" msgstr "" "R. Algunas operaciones como la suma, la resta y la multiplicación por un " "número entero conservarán automáticamente el punto fijo. Otras operaciones, " @@ -2638,35 +2700,52 @@ msgstr "" "número de lugares decimales y deberá aplicarse :meth:`quantize` después de " "ellas:" -#: ../Doc/library/decimal.rst:2055 +#: ../Doc/library/decimal.rst:2066 +#, fuzzy msgid "" "In developing fixed-point applications, it is convenient to define functions " -"to handle the :meth:`quantize` step:" +"to handle the :meth:`~Decimal.quantize` step:" msgstr "" "Al desarrollar aplicaciones de coma fija, es conveniente definir funciones " "para gestionar el paso :meth:`quantize`:" -#: ../Doc/library/decimal.rst:2068 +#: ../Doc/library/decimal.rst:2080 +#, fuzzy msgid "" -"Q. There are many ways to express the same value. The numbers :const:" -"`200`, :const:`200.000`, :const:`2E2`, and :const:`.02E+4` all have the same " -"value at various precisions. Is there a way to transform them to a single " -"recognizable canonical value?" +"Q. There are many ways to express the same value. The numbers ``200``, " +"``200.000``, ``2E2``, and ``.02E+4`` all have the same value at various " +"precisions. Is there a way to transform them to a single recognizable " +"canonical value?" msgstr "" "P. Hay muchas formas de expresar un mismo valor. Los números :const:`200`, :" "const:`200.000`, :const:`2E2` y :const:`.02E+4` tienen todos el mismo valor " "pero con varias precisiones. ¿Hay alguna manera de transformarlos en un " "único valor canónico reconocible?" -#: ../Doc/library/decimal.rst:2073 +#: ../Doc/library/decimal.rst:2085 +#, fuzzy msgid "" -"A. The :meth:`normalize` method maps all equivalent values to a single " -"representative:" +"A. The :meth:`~Decimal.normalize` method maps all equivalent values to a " +"single representative:" msgstr "" "R. El método :meth:`normalize` mapea todos los valores equivalentes a un " "solo representante:" -#: ../Doc/library/decimal.rst:2080 +#: ../Doc/library/decimal.rst:2092 +msgid "Q. When does rounding occur in a computation?" +msgstr "" + +#: ../Doc/library/decimal.rst:2094 +msgid "" +"A. It occurs *after* the computation. The philosophy of the decimal " +"specification is that numbers are considered exact and are created " +"independent of the current context. They can even have greater precision " +"than current context. Computations process with those exact inputs and then " +"rounding (or other context operations) is applied to the *result* of the " +"computation::" +msgstr "" + +#: ../Doc/library/decimal.rst:2112 msgid "" "Q. Some decimal values always print with exponential notation. Is there a " "way to get a non-exponential representation?" @@ -2674,11 +2753,12 @@ msgstr "" "P. Algunos valores decimales siempre se imprimen usando notación " "exponencial. ¿Hay alguna forma de obtener una representación no exponencial?" -#: ../Doc/library/decimal.rst:2083 +#: ../Doc/library/decimal.rst:2115 +#, fuzzy msgid "" "A. For some values, exponential notation is the only way to express the " -"number of significant places in the coefficient. For example, expressing :" -"const:`5.0E+3` as :const:`5000` keeps the value constant but cannot show the " +"number of significant places in the coefficient. For example, expressing " +"``5.0E+3`` as ``5000`` keeps the value constant but cannot show the " "original's two-place significance." msgstr "" "R. Para algunos valores, la notación exponencial es la única forma de " @@ -2687,7 +2767,7 @@ msgstr "" "constante, pero no puede mostrar la significación de dos lugares que tiene " "el original." -#: ../Doc/library/decimal.rst:2088 +#: ../Doc/library/decimal.rst:2120 msgid "" "If an application does not care about tracking significance, it is easy to " "remove the exponent and trailing zeroes, losing significance, but keeping " @@ -2697,12 +2777,12 @@ msgstr "" "significación, es fácil eliminar el exponente y los ceros finales, perdiendo " "significación, pero manteniendo el valor sin cambios:" -#: ../Doc/library/decimal.rst:2098 +#: ../Doc/library/decimal.rst:2130 msgid "Q. Is there a way to convert a regular float to a :class:`Decimal`?" msgstr "" "P. ¿Hay alguna forma de convertir un flotante regular en un :class:`Decimal`?" -#: ../Doc/library/decimal.rst:2100 +#: ../Doc/library/decimal.rst:2132 msgid "" "A. Yes, any binary floating point number can be exactly expressed as a " "Decimal though an exact conversion may take more precision than intuition " @@ -2712,7 +2792,7 @@ msgstr "" "exactamente mediante un Decimal, aunque una conversión exacta puede requerir " "más precisión de la que sugiere la intuición:" -#: ../Doc/library/decimal.rst:2109 +#: ../Doc/library/decimal.rst:2141 msgid "" "Q. Within a complex calculation, how can I make sure that I haven't gotten a " "spurious result because of insufficient precision or rounding anomalies." @@ -2721,7 +2801,7 @@ msgstr "" "obtenido un resultado adulterado debido a una precisión insuficiente o " "anomalías de redondeo." -#: ../Doc/library/decimal.rst:2112 +#: ../Doc/library/decimal.rst:2144 msgid "" "A. The decimal module makes it easy to test results. A best practice is to " "re-run calculations using greater precision and with various rounding modes. " @@ -2734,7 +2814,7 @@ msgstr "" "precisión insuficiente, problemas relacionados con el modo de redondeo, " "entradas mal acondicionadas o un algoritmo numéricamente inestable." -#: ../Doc/library/decimal.rst:2117 +#: ../Doc/library/decimal.rst:2149 msgid "" "Q. I noticed that context precision is applied to the results of operations " "but not to the inputs. Is there anything to watch out for when mixing " @@ -2744,7 +2824,7 @@ msgstr "" "operaciones pero no a las entradas. ¿Hay algo a tener en cuenta al mezclar " "valores con distintas precisiones?" -#: ../Doc/library/decimal.rst:2121 +#: ../Doc/library/decimal.rst:2153 msgid "" "A. Yes. The principle is that all values are considered to be exact and so " "is the arithmetic on those values. Only the results are rounded. The " @@ -2758,7 +2838,7 @@ msgstr "" "desventaja es que los resultados pueden parecer extraños si olvidas que las " "entradas no se han redondeado:" -#: ../Doc/library/decimal.rst:2134 +#: ../Doc/library/decimal.rst:2166 msgid "" "The solution is either to increase precision or to force rounding of inputs " "using the unary plus operation:" @@ -2766,7 +2846,7 @@ msgstr "" "La solución es aumentar la precisión o forzar el redondeo de las entradas " "utilizando la operación unaria más:" -#: ../Doc/library/decimal.rst:2143 +#: ../Doc/library/decimal.rst:2175 msgid "" "Alternatively, inputs can be rounded upon creation using the :meth:`Context." "create_decimal` method:" @@ -2774,11 +2854,11 @@ msgstr "" "Alternativamente, las entradas se pueden redondear en el momento que se " "crean usando el método :meth:`Context.create_decimal`:" -#: ../Doc/library/decimal.rst:2149 +#: ../Doc/library/decimal.rst:2181 msgid "Q. Is the CPython implementation fast for large numbers?" msgstr "P. ¿La implementación de CPython es rápida para números grandes?" -#: ../Doc/library/decimal.rst:2151 +#: ../Doc/library/decimal.rst:2183 #, fuzzy msgid "" "A. Yes. In the CPython and PyPy3 implementations, the C/CFFI versions of " @@ -2801,27 +2881,29 @@ msgstr "" "wikipedia.org/wiki/Discrete_Fourier_transform_(general)#Number-" "theoretic_transform>`_) para números muy grandes." -#: ../Doc/library/decimal.rst:2161 +#: ../Doc/library/decimal.rst:2193 +#, fuzzy msgid "" "The context must be adapted for exact arbitrary precision arithmetic. :attr:" -"`Emin` and :attr:`Emax` should always be set to the maximum values, :attr:" -"`clamp` should always be 0 (the default). Setting :attr:`prec` requires " -"some care." +"`~Context.Emin` and :attr:`~Context.Emax` should always be set to the " +"maximum values, :attr:`~Context.clamp` should always be 0 (the default). " +"Setting :attr:`~Context.prec` requires some care." msgstr "" "El contexto debe adaptarse para una aritmética de precisión arbitraria " "exacta. :attr:`Emin` y :attr:`Emax` siempre deben establecerse en sus " "valores máximos, :attr:`clamp` siempre debe ser 0 (el valor predeterminado). " "Establecer :attr:`prec` requiere cierto cuidado." -#: ../Doc/library/decimal.rst:2165 +#: ../Doc/library/decimal.rst:2197 +#, fuzzy msgid "" "The easiest approach for trying out bignum arithmetic is to use the maximum " -"value for :attr:`prec` as well [#]_::" +"value for :attr:`~Context.prec` as well [#]_::" msgstr "" "El enfoque más fácil para probar la aritmética bignum es usar también el " "valor máximo para :attr:`prec` [#]_::" -#: ../Doc/library/decimal.rst:2174 +#: ../Doc/library/decimal.rst:2206 msgid "" "For inexact results, :attr:`MAX_PREC` is far too large on 64-bit platforms " "and the available memory will be insufficient::" @@ -2829,19 +2911,20 @@ msgstr "" "Para resultados inexactos, :attr:`MAX_PREC` es demasiado grande en " "plataformas de 64 bits y la memoria disponible será insuficiente::" -#: ../Doc/library/decimal.rst:2182 +#: ../Doc/library/decimal.rst:2214 +#, fuzzy msgid "" "On systems with overallocation (e.g. Linux), a more sophisticated approach " -"is to adjust :attr:`prec` to the amount of available RAM. Suppose that you " -"have 8GB of RAM and expect 10 simultaneous operands using a maximum of 500MB " -"each::" +"is to adjust :attr:`~Context.prec` to the amount of available RAM. Suppose " +"that you have 8GB of RAM and expect 10 simultaneous operands using a maximum " +"of 500MB each::" msgstr "" "En sistemas con sobreasignación (por ejemplo, Linux), un enfoque más " "sofisticado es establecer :attr:`prec` a la cantidad de RAM disponible. " "Supongamos que tenemos 8GB de RAM y esperamos 10 operandos simultáneos " "usando un máximo de 500 MB cada uno::" -#: ../Doc/library/decimal.rst:2206 +#: ../Doc/library/decimal.rst:2238 msgid "" "In general (and especially on systems without overallocation), it is " "recommended to estimate even tighter bounds and set the :attr:`Inexact` trap " @@ -2851,9 +2934,24 @@ msgstr "" "estimar límites aún más estrictos y establecer la trampa :attr:`Inexact` si " "se espera que todos los cálculos sean exactos." -#: ../Doc/library/decimal.rst:2215 +#: ../Doc/library/decimal.rst:2247 msgid "" "This approach now works for all exact results except for non-integer powers." msgstr "" "Este enfoque ahora funciona para todos los resultados exactos excepto para " "las potencias no enteras. También retro-portado a 3.7 y 3.8." + +#~ msgid "" +#~ "Normalize the number by stripping the rightmost trailing zeros and " +#~ "converting any result equal to :const:`Decimal('0')` to :const:" +#~ "`Decimal('0e0')`. Used for producing canonical values for attributes of " +#~ "an equivalence class. For example, ``Decimal('32.100')`` and " +#~ "``Decimal('0.321000e+2')`` both normalize to the equivalent value " +#~ "``Decimal('32.1')``." +#~ msgstr "" +#~ "Normaliza el número, eliminando los ceros finales situados más a la " +#~ "derecha y convirtiendo cualquier resultado igual a :const:`Decimal('0')` " +#~ "en :const:`Decimal('0e0')`. Se utiliza para producir valores canónicos " +#~ "para atributos de una clase de equivalencia. Por ejemplo, " +#~ "``Decimal('32 .100')`` y ``Decimal('0.321000e+2')`` se normalizan ambos " +#~ "al valor equivalente ``Decimal('32 .1')``." diff --git a/library/devmode.po b/library/devmode.po index 10218f7aaa..bbce61fc6a 100644 --- a/library/devmode.po +++ b/library/devmode.po @@ -8,16 +8,16 @@ msgid "" msgstr "" "Project-Id-Version: Python en Español 3.9\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-16 21:42+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-07 22:10-0500\n" "Last-Translator: \n" -"Language-Team: \n" "Language: es\n" +"Language-Team: \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" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" -"Generated-By: Babel 2.9.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/devmode.rst:4 msgid "Python Development Mode" @@ -158,17 +158,19 @@ msgstr "" "envvar:`PYTHONMALLOC` a ``default``." #: ../Doc/library/devmode.rst:61 +#, fuzzy msgid "" "Call :func:`faulthandler.enable` at Python startup to install handlers for " -"the :const:`SIGSEGV`, :const:`SIGFPE`, :const:`SIGABRT`, :const:`SIGBUS` " -"and :const:`SIGILL` signals to dump the Python traceback on a crash." +"the :const:`~signal.SIGSEGV`, :const:`~signal.SIGFPE`, :const:`~signal." +"SIGABRT`, :const:`~signal.SIGBUS` and :const:`~signal.SIGILL` signals to " +"dump the Python traceback on a crash." msgstr "" "Llama a :func:`faulthandler.enable` al inicio de Python para instalar los " "handlers(manejadores) de las señales :const:`SIGSEGV`, :const:`SIGFPE`, :" "const:`SIGABRT`, :const:`SIGBUS` y :const:`SIGILL` para volcar la traza de " "Python en caso de fallo." -#: ../Doc/library/devmode.rst:65 +#: ../Doc/library/devmode.rst:66 msgid "" "It behaves as if the :option:`-X faulthandler <-X>` command line option is " "used or if the :envvar:`PYTHONFAULTHANDLER` environment variable is set to " @@ -178,7 +180,7 @@ msgstr "" "faulthandler <-X>` o si la variable de entorno :envvar:`PYTHONFAULTHANDLER` " "se establece en ``1``." -#: ../Doc/library/devmode.rst:69 +#: ../Doc/library/devmode.rst:70 msgid "" "Enable :ref:`asyncio debug mode `. For example, :mod:" "`asyncio` checks for coroutines that were not awaited and logs them." @@ -186,7 +188,7 @@ msgstr "" "Habilitar :ref:`asyncio debug mode `. Por ejemplo, :mod:" "`asyncio` comprueba las corutinas que no fueron esperadas y las registra." -#: ../Doc/library/devmode.rst:72 +#: ../Doc/library/devmode.rst:73 msgid "" "It behaves as if the :envvar:`PYTHONASYNCIODEBUG` environment variable is " "set to ``1``." @@ -194,7 +196,7 @@ msgstr "" "Se comporta como si la variable de entorno :envvar:`PYTHONASYNCIODEBUG` " "estuviera establecida en ``1``." -#: ../Doc/library/devmode.rst:75 +#: ../Doc/library/devmode.rst:76 msgid "" "Check the *encoding* and *errors* arguments for string encoding and decoding " "operations. Examples: :func:`open`, :meth:`str.encode` and :meth:`bytes." @@ -204,7 +206,7 @@ msgstr "" "codificación y decodificación de cadenas. Ejemplos: :func:`open`, :meth:`str." "encode` y :meth:`bytes.decode`." -#: ../Doc/library/devmode.rst:79 +#: ../Doc/library/devmode.rst:80 msgid "" "By default, for best performance, the *errors* argument is only checked at " "the first encoding/decoding error and the *encoding* argument is sometimes " @@ -214,20 +216,21 @@ msgstr "" "comprueba en el primer error de codificación/decodificación y el argumento " "*encoding* a veces se ignora para las cadenas vacías." -#: ../Doc/library/devmode.rst:83 +#: ../Doc/library/devmode.rst:84 msgid "The :class:`io.IOBase` destructor logs ``close()`` exceptions." msgstr "" "El destructor de :class:`io.IOBase` registra las excepciones ``close()``." -#: ../Doc/library/devmode.rst:84 +#: ../Doc/library/devmode.rst:85 +#, fuzzy msgid "" -"Set the :attr:`~sys.flags.dev_mode` attribute of :attr:`sys.flags` to " +"Set the :attr:`~sys.flags.dev_mode` attribute of :data:`sys.flags` to " "``True``." msgstr "" "Establece el atributo :attr:`~sys.flags.dev_mode` de :attr:`sys.flags` a " "``True``." -#: ../Doc/library/devmode.rst:87 +#: ../Doc/library/devmode.rst:88 msgid "" "The Python Development Mode does not enable the :mod:`tracemalloc` module by " "default, because the overhead cost (to performance and memory) would be too " @@ -245,7 +248,7 @@ msgstr "" "de desbordamiento de búfer registra la traza donde se asignó el bloque de " "memoria." -#: ../Doc/library/devmode.rst:94 +#: ../Doc/library/devmode.rst:95 msgid "" "The Python Development Mode does not prevent the :option:`-O` command line " "option from removing :keyword:`assert` statements nor from setting :const:" @@ -255,7 +258,7 @@ msgstr "" "comandos :option:`-O` elimine las declaraciones :keyword:`assert` ni que " "establezca :const:`__debug__` a ``False``." -#: ../Doc/library/devmode.rst:98 +#: ../Doc/library/devmode.rst:99 msgid "" "The Python Development Mode can only be enabled at the Python startup. Its " "value can be read from :data:`sys.flags.dev_mode `." @@ -263,13 +266,13 @@ msgstr "" "El modo de desarrollo de Python solo se puede habilitar en el inicio de " "Python. Su valor se puede leer en :data:`sys.flags.dev_mode `." -#: ../Doc/library/devmode.rst:101 +#: ../Doc/library/devmode.rst:102 msgid "The :class:`io.IOBase` destructor now logs ``close()`` exceptions." msgstr "" "El destructor de :class:`io.IOBase` ahora registra las excepciones " "``close()``." -#: ../Doc/library/devmode.rst:104 +#: ../Doc/library/devmode.rst:105 msgid "" "The *encoding* and *errors* arguments are now checked for string encoding " "and decoding operations." @@ -277,11 +280,11 @@ msgstr "" "Los argumentos *enconding* y *errors* se comprueban ahora para las " "operaciones de codificación y descodificación de cadenas." -#: ../Doc/library/devmode.rst:110 +#: ../Doc/library/devmode.rst:111 msgid "ResourceWarning Example" msgstr "Ejemplo de ResourceWarning" -#: ../Doc/library/devmode.rst:112 +#: ../Doc/library/devmode.rst:113 msgid "" "Example of a script counting the number of lines of the text file specified " "in the command line::" @@ -289,7 +292,7 @@ msgstr "" "Ejemplo de un script que cuenta el número de líneas del archivo de texto " "especificado en la línea de comandos::" -#: ../Doc/library/devmode.rst:126 +#: ../Doc/library/devmode.rst:127 msgid "" "The script does not close the file explicitly. By default, Python does not " "emit any warning. Example using README.txt, which has 269 lines:" @@ -297,7 +300,7 @@ msgstr "" "El script no cierra el archivo explícitamente. Por defecto, Python no emite " "ninguna advertencia. Ejemplo usando README.txt, que tiene 269 líneas:" -#: ../Doc/library/devmode.rst:134 +#: ../Doc/library/devmode.rst:135 msgid "" "Enabling the Python Development Mode displays a :exc:`ResourceWarning` " "warning:" @@ -305,7 +308,7 @@ msgstr "" "Al activar el modo de desarrollo de Python aparece una advertencia :exc:" "`ResourceWarning`:" -#: ../Doc/library/devmode.rst:144 +#: ../Doc/library/devmode.rst:145 msgid "" "In addition, enabling :mod:`tracemalloc` shows the line where the file was " "opened:" @@ -313,14 +316,14 @@ msgstr "" "Además, al activar :mod:`tracemalloc` se muestra la línea en la que se abrió " "el archivo:" -#: ../Doc/library/devmode.rst:159 +#: ../Doc/library/devmode.rst:160 msgid "" "The fix is to close explicitly the file. Example using a context manager::" msgstr "" "La solución es cerrar explícitamente el archivo. Ejemplo utilizando un " "gestor de contexto::" -#: ../Doc/library/devmode.rst:167 +#: ../Doc/library/devmode.rst:168 msgid "" "Not closing a resource explicitly can leave a resource open for way longer " "than expected; it can cause severe issues upon exiting Python. It is bad in " @@ -332,19 +335,19 @@ msgstr "" "Python. Es malo en CPython, pero es aún peor en PyPy. Cerrar los recursos " "explícitamente hace que una aplicación sea más detallista y más fiable." -#: ../Doc/library/devmode.rst:174 +#: ../Doc/library/devmode.rst:175 msgid "Bad file descriptor error example" msgstr "Ejemplo de error de descriptor de archivo incorrecto" -#: ../Doc/library/devmode.rst:176 +#: ../Doc/library/devmode.rst:177 msgid "Script displaying the first line of itself::" msgstr "Script que muestra la primera línea de sí mismo::" -#: ../Doc/library/devmode.rst:189 +#: ../Doc/library/devmode.rst:190 msgid "By default, Python does not emit any warning:" msgstr "Por defecto, Python no emite ninguna advertencia:" -#: ../Doc/library/devmode.rst:196 +#: ../Doc/library/devmode.rst:197 msgid "" "The Python Development Mode shows a :exc:`ResourceWarning` and logs a \"Bad " "file descriptor\" error when finalizing the file object:" @@ -352,7 +355,7 @@ msgstr "" "El modo de desarrollo de Python muestra un :exc:`ResourceWarning` y registra " "un error \"Bad file descriptor\" cuando termina el objeto archivo:" -#: ../Doc/library/devmode.rst:212 +#: ../Doc/library/devmode.rst:213 msgid "" "``os.close(fp.fileno())`` closes the file descriptor. When the file object " "finalizer tries to close the file descriptor again, it fails with the ``Bad " @@ -366,7 +369,7 @@ msgstr "" "debe cerrarse sólo una vez. En el peor de los casos, cerrarlo dos veces " "puede provocar un fallo (ver :issue:`18748` para un ejemplo)." -#: ../Doc/library/devmode.rst:218 +#: ../Doc/library/devmode.rst:219 msgid "" "The fix is to remove the ``os.close(fp.fileno())`` line, or open the file " "with ``closefd=False``." diff --git a/library/difflib.po b/library/difflib.po index fd5208ca95..6f5392eeaf 100644 --- a/library/difflib.po +++ b/library/difflib.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-07 15:42+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/difflib.rst:2 msgid ":mod:`difflib` --- Helpers for computing deltas" @@ -109,7 +109,7 @@ msgstr "" "heurístico puede desactivarse estableciendo el argumento ``autojunk`` como " "``False`` al crear la clase :class:`SequenceMatcher`." -#: ../Doc/library/difflib.rst:55 ../Doc/library/difflib.rst:388 +#: ../Doc/library/difflib.rst:55 ../Doc/library/difflib.rst:384 msgid "The *autojunk* parameter." msgstr "El parámetro *autojunk*." @@ -135,7 +135,7 @@ msgstr "" msgid "Code" msgstr "Código" -#: ../Doc/library/difflib.rst:69 ../Doc/library/difflib.rst:498 +#: ../Doc/library/difflib.rst:69 ../Doc/library/difflib.rst:494 msgid "Meaning" msgstr "Significado" @@ -172,10 +172,12 @@ msgid "line not present in either input sequence" msgstr "línea ausente en todas las secuencias de entrada" #: ../Doc/library/difflib.rst:80 +#, fuzzy msgid "" "Lines beginning with '``?``' attempt to guide the eye to intraline " "differences, and were not present in either input sequence. These lines can " -"be confusing if the sequences contain tab characters." +"be confusing if the sequences contain whitespace characters, such as spaces, " +"tabs or line breaks." msgstr "" "Las líneas que empiezan con '``?``' intentan guiar al ojo hacia las " "diferencias intralíneas, y no estuvieron presentes en ninguna de las " @@ -315,15 +317,7 @@ msgstr "" "Los argumentos para este método son los mismos que los del método :meth:" "`make_file`." -#: ../Doc/library/difflib.rst:148 -msgid "" -":file:`Tools/scripts/diff.py` is a command-line front-end to this class and " -"contains a good example of its use." -msgstr "" -":file:`Tools/scripts/diff.py` es una herramienta de línea de comandos para " -"esta clase y contiene un buen ejemplo sobre su uso." - -#: ../Doc/library/difflib.rst:154 +#: ../Doc/library/difflib.rst:152 msgid "" "Compare *a* and *b* (lists of strings); return a delta (a :term:`generator` " "generating the delta lines) in context diff format." @@ -332,7 +326,7 @@ msgstr "" "`generator` que genera las lineas delta) en formato de diferencias de " "contexto." -#: ../Doc/library/difflib.rst:157 +#: ../Doc/library/difflib.rst:155 msgid "" "Context diffs are a compact way of showing just the lines that have changed " "plus a few lines of context. The changes are shown in a before/after " @@ -344,7 +338,7 @@ msgstr "" "número de líneas de contexto es determinado por *n*, cuyo valor por defecto " "es ``3``." -#: ../Doc/library/difflib.rst:161 +#: ../Doc/library/difflib.rst:159 msgid "" "By default, the diff control lines (those with ``***`` or ``---``) are " "created with a trailing newline. This is helpful so that inputs created " @@ -358,7 +352,7 @@ msgstr "" "puedan ser utilizadas con :func:`io.IOBase.writelines` ya que ambas, la " "entrada y la salida, tienen líneas nuevas al final." -#: ../Doc/library/difflib.rst:167 ../Doc/library/difflib.rst:298 +#: ../Doc/library/difflib.rst:165 ../Doc/library/difflib.rst:294 msgid "" "For inputs that do not have trailing newlines, set the *lineterm* argument " "to ``\"\"`` so that the output will be uniformly newline free." @@ -367,7 +361,7 @@ msgstr "" "*lineterm* como ``\"\"`` de forma que la salida sea uniforme y libre de " "nuevas líneas." -#: ../Doc/library/difflib.rst:170 ../Doc/library/difflib.rst:301 +#: ../Doc/library/difflib.rst:168 ../Doc/library/difflib.rst:297 msgid "" "The context diff format normally has a header for filenames and modification " "times. Any or all of these may be specified using strings for *fromfile*, " @@ -382,11 +376,11 @@ msgstr "" "expresados en formato ISO 8601. Si no es especificado las cadenas por " "defecto son espacios en blanco." -#: ../Doc/library/difflib.rst:193 ../Doc/library/difflib.rst:322 +#: ../Doc/library/difflib.rst:191 ../Doc/library/difflib.rst:318 msgid "See :ref:`difflib-interface` for a more detailed example." msgstr "Vea :ref:`difflib-interface` para un ejemplo mas detallado." -#: ../Doc/library/difflib.rst:198 +#: ../Doc/library/difflib.rst:196 msgid "" "Return a list of the best \"good enough\" matches. *word* is a sequence for " "which close matches are desired (typically a string), and *possibilities* is " @@ -399,7 +393,7 @@ msgstr "" "secuencias contra la cual se compara *word* (comúnmente una lista de cadenas " "de caracteres)." -#: ../Doc/library/difflib.rst:202 +#: ../Doc/library/difflib.rst:200 msgid "" "Optional argument *n* (default ``3``) is the maximum number of close matches " "to return; *n* must be greater than ``0``." @@ -407,7 +401,7 @@ msgstr "" "Argumento opcional *n* (por defecto ``3``) es el máximo número de " "coincidencias cercanas a retornar; *n* debe ser mayor que ``0``." -#: ../Doc/library/difflib.rst:205 +#: ../Doc/library/difflib.rst:203 msgid "" "Optional argument *cutoff* (default ``0.6``) is a float in the range [0, 1]. " "Possibilities that don't score at least that similar to *word* are ignored." @@ -416,7 +410,7 @@ msgstr "" "[0, 1]. Las posibilidades que no alcanzan un puntaje al menos similar al de " "*word* son ignoradas." -#: ../Doc/library/difflib.rst:208 +#: ../Doc/library/difflib.rst:206 msgid "" "The best (no more than *n*) matches among the possibilities are returned in " "a list, sorted by similarity score, most similar first." @@ -425,7 +419,7 @@ msgstr "" "retornadas en una lista, ordenadas por similitud de puntaje, las mas " "similares primero." -#: ../Doc/library/difflib.rst:224 +#: ../Doc/library/difflib.rst:222 msgid "" "Compare *a* and *b* (lists of strings); return a :class:`Differ`\\ -style " "delta (a :term:`generator` generating the delta lines)." @@ -433,7 +427,7 @@ msgstr "" "Compara *a* y *b* (listas de cadenas de texto); retorna un delta del estilo :" "class:`Differ` (un :term:`generator` que genera los deltas de las líneas)." -#: ../Doc/library/difflib.rst:227 +#: ../Doc/library/difflib.rst:225 msgid "" "Optional keyword parameters *linejunk* and *charjunk* are filtering " "functions (or ``None``):" @@ -441,7 +435,7 @@ msgstr "" "Parámetros de palabra clave opcional *linejunk* y *charjunk* son funciones " "de filtrado (o ``None``):" -#: ../Doc/library/difflib.rst:230 +#: ../Doc/library/difflib.rst:228 msgid "" "*linejunk*: A function that accepts a single string argument, and returns " "true if the string is junk, or false if not. The default is ``None``. There " @@ -461,7 +455,7 @@ msgstr "" "constituir ruido, y esto usualmente funciona mejor que utilizando esta " "función." -#: ../Doc/library/difflib.rst:238 +#: ../Doc/library/difflib.rst:236 msgid "" "*charjunk*: A function that accepts a character (a string of length 1), and " "returns if the character is junk, or false if not. The default is module-" @@ -475,18 +469,11 @@ msgstr "" "espacios en blanco (un espacio en blanco o tabulación; es una mala idea " "incluir saltos de lineas en esto!)" -#: ../Doc/library/difflib.rst:243 -msgid "" -":file:`Tools/scripts/ndiff.py` is a command-line front-end to this function." -msgstr "" -":file:`Tools/scripts/ndiff.py` es una interfaz de línea de comandos para " -"esta función." - -#: ../Doc/library/difflib.rst:261 +#: ../Doc/library/difflib.rst:257 msgid "Return one of the two sequences that generated a delta." msgstr "Retorna uno de las dos secuencias que generaron un delta." -#: ../Doc/library/difflib.rst:263 +#: ../Doc/library/difflib.rst:259 msgid "" "Given a *sequence* produced by :meth:`Differ.compare` or :func:`ndiff`, " "extract lines originating from file 1 or 2 (parameter *which*), stripping " @@ -496,11 +483,11 @@ msgstr "" "extrae las líneas originadas por el archivo 1 o 2 (parámetro *which*), " "quitando los prefijos de la línea." -#: ../Doc/library/difflib.rst:267 +#: ../Doc/library/difflib.rst:263 msgid "Example:" msgstr "Ejemplo:" -#: ../Doc/library/difflib.rst:284 +#: ../Doc/library/difflib.rst:280 msgid "" "Compare *a* and *b* (lists of strings); return a delta (a :term:`generator` " "generating the delta lines) in unified diff format." @@ -509,7 +496,7 @@ msgstr "" "term:`generator` que genera los delta de líneas) en formato de diferencias " "unificado." -#: ../Doc/library/difflib.rst:287 +#: ../Doc/library/difflib.rst:283 msgid "" "Unified diffs are a compact way of showing just the lines that have changed " "plus a few lines of context. The changes are shown in an inline style " @@ -522,7 +509,7 @@ msgstr "" "después). El número de líneas de contexto se establece mediante *n*, cuyo " "valor por defecto es tres." -#: ../Doc/library/difflib.rst:292 +#: ../Doc/library/difflib.rst:288 msgid "" "By default, the diff control lines (those with ``---``, ``+++``, or ``@@``) " "are created with a trailing newline. This is helpful so that inputs created " @@ -536,7 +523,7 @@ msgstr "" "diferencias que puedan ser utilizadas con :func:`io.IOBase.writelines` ya " "que ambas, la entrada y la salida, tienen líneas nuevas al final." -#: ../Doc/library/difflib.rst:326 +#: ../Doc/library/difflib.rst:322 msgid "" "Compare *a* and *b* (lists of bytes objects) using *dfunc*; yield a sequence " "of delta lines (also bytes) in the format returned by *dfunc*. *dfunc* must " @@ -547,7 +534,7 @@ msgstr "" "*dfunc*. *dfunc* debe ser invocable, comúnmente cualquiera de :func:" "`unified_diff` o :func:`context_diff`." -#: ../Doc/library/difflib.rst:331 +#: ../Doc/library/difflib.rst:327 msgid "" "Allows you to compare data with unknown or inconsistent encoding. All inputs " "except *n* must be bytes objects, not str. Works by losslessly converting " @@ -564,7 +551,7 @@ msgstr "" "nuevamente a bytes, de forma que las líneas delta que son recibidas tienen " "la misma codificación desconocida/inconsistente que *a* y *b*." -#: ../Doc/library/difflib.rst:342 +#: ../Doc/library/difflib.rst:338 msgid "" "Return ``True`` for ignorable lines. The line *line* is ignorable if *line* " "is blank or contains a single ``'#'``, otherwise it is not ignorable. Used " @@ -575,7 +562,7 @@ msgstr "" "cualquier otro caso no es ignorado. Es usado como valor por defecto para el " "parámetro *linejunk* por :func:`ndiff` en versiones anteriores." -#: ../Doc/library/difflib.rst:349 +#: ../Doc/library/difflib.rst:345 msgid "" "Return ``True`` for ignorable characters. The character *ch* is ignorable " "if *ch* is a space or tab, otherwise it is not ignorable. Used as a default " @@ -586,7 +573,7 @@ msgstr "" "otro caso no es ignorado. Es utilizado como valor por defecto para el " "parámetro *charjunk* en :func:`ndiff`." -#: ../Doc/library/difflib.rst:357 +#: ../Doc/library/difflib.rst:353 #, fuzzy msgid "" "`Pattern Matching: The Gestalt Approach `_" -#: ../Doc/library/difflib.rst:357 +#: ../Doc/library/difflib.rst:353 #, fuzzy msgid "" "Discussion of a similar algorithm by John W. Ratcliff and D. E. Metzener. " @@ -606,15 +593,15 @@ msgstr "" "Esto fue publicado en `Dr. Dobb's Journal `_ en " "Julio de 1988." -#: ../Doc/library/difflib.rst:364 +#: ../Doc/library/difflib.rst:360 msgid "SequenceMatcher Objects" msgstr "Objetos *SequenceMatcher*" -#: ../Doc/library/difflib.rst:366 +#: ../Doc/library/difflib.rst:362 msgid "The :class:`SequenceMatcher` class has this constructor:" msgstr "La clase :class:`SequenceMatcher` tiene este constructor:" -#: ../Doc/library/difflib.rst:371 +#: ../Doc/library/difflib.rst:367 msgid "" "Optional argument *isjunk* must be ``None`` (the default) or a one-argument " "function that takes a sequence element and returns true if and only if the " @@ -629,7 +616,7 @@ msgstr "" "pasar ``lambda x: False``; en otras palabras, ningún elemento es ignorado. " "Por ejemplo, pasar:" -#: ../Doc/library/difflib.rst:379 +#: ../Doc/library/difflib.rst:375 msgid "" "if you're comparing lines as sequences of characters, and don't want to " "synch up on blanks or hard tabs." @@ -637,7 +624,7 @@ msgstr "" "si se están comparando líneas como secuencias de caracteres, y no se quiere " "sincronizar en espacios blancos o tabulaciones." -#: ../Doc/library/difflib.rst:382 +#: ../Doc/library/difflib.rst:378 msgid "" "The optional arguments *a* and *b* are sequences to be compared; both " "default to empty strings. The elements of both sequences must be :term:" @@ -647,7 +634,7 @@ msgstr "" "tienen como valor por defecto una cadena de texto vacía. Los elementos de " "ambas secuencias deben ser :term:`hashable`." -#: ../Doc/library/difflib.rst:385 +#: ../Doc/library/difflib.rst:381 msgid "" "The optional argument *autojunk* can be used to disable the automatic junk " "heuristic." @@ -655,7 +642,7 @@ msgstr "" "El argumento opcional *autojunk* puede ser usado para deshabilitar la " "heurística automática de elementos no deseados." -#: ../Doc/library/difflib.rst:391 +#: ../Doc/library/difflib.rst:387 msgid "" "SequenceMatcher objects get three data attributes: *bjunk* is the set of " "elements of *b* for which *isjunk* is ``True``; *bpopular* is the set of non-" @@ -672,19 +659,19 @@ msgstr "" "atributos son reseteados cuando *b* es reseteado mediante :meth:`set_seqs` " "o :meth:`set_seq2`." -#: ../Doc/library/difflib.rst:398 +#: ../Doc/library/difflib.rst:394 msgid "The *bjunk* and *bpopular* attributes." msgstr "Los atributos *bjunk* y *bpopular*." -#: ../Doc/library/difflib.rst:401 +#: ../Doc/library/difflib.rst:397 msgid ":class:`SequenceMatcher` objects have the following methods:" msgstr "Los objetos :class:`SequenceMatcher` tienen los siguientes métodos:" -#: ../Doc/library/difflib.rst:405 +#: ../Doc/library/difflib.rst:401 msgid "Set the two sequences to be compared." msgstr "Establece las dos secuencias a ser comparadas." -#: ../Doc/library/difflib.rst:407 +#: ../Doc/library/difflib.rst:403 msgid "" ":class:`SequenceMatcher` computes and caches detailed information about the " "second sequence, so if you want to compare one sequence against many " @@ -697,7 +684,7 @@ msgstr "" "sola vez y llamar :meth:`set_seq1` repetidamente, una vez por cada una de " "las otras secuencias." -#: ../Doc/library/difflib.rst:415 +#: ../Doc/library/difflib.rst:411 msgid "" "Set the first sequence to be compared. The second sequence to be compared " "is not changed." @@ -705,7 +692,7 @@ msgstr "" "Establece la primer secuencia a ser comparada. La segunda secuencia a ser " "comparada no es modificada." -#: ../Doc/library/difflib.rst:421 +#: ../Doc/library/difflib.rst:417 msgid "" "Set the second sequence to be compared. The first sequence to be compared " "is not changed." @@ -713,13 +700,13 @@ msgstr "" "Establece la segunda secuencia a ser comparada. La primera secuencia a ser " "comparada no es modificada." -#: ../Doc/library/difflib.rst:427 +#: ../Doc/library/difflib.rst:423 msgid "Find longest matching block in ``a[alo:ahi]`` and ``b[blo:bhi]``." msgstr "" "Encuentra el bloque de coincidencia mas largo en ``a[alo:ahi]`` y ``b[blo:" "bhi]``." -#: ../Doc/library/difflib.rst:429 +#: ../Doc/library/difflib.rst:425 msgid "" "If *isjunk* was omitted or ``None``, :meth:`find_longest_match` returns " "``(i, j, k)`` such that ``a[i:i+k]`` is equal to ``b[j:j+k]``, where ``alo " @@ -739,7 +726,7 @@ msgstr "" "en *a*, y de todos esos bloques coincidentes máximos que comienzan antes en " "*a*, retorna aquel que comienza antes en *b*." -#: ../Doc/library/difflib.rst:442 +#: ../Doc/library/difflib.rst:438 msgid "" "If *isjunk* was provided, first the longest matching block is determined as " "above, but with the additional restriction that no junk element appears in " @@ -755,7 +742,7 @@ msgstr "" "nunca hará coincidir ningún elemento no deseado, excepto que un elemento no " "deseado idéntico pase a ser adyacente a una coincidencia interesante." -#: ../Doc/library/difflib.rst:449 +#: ../Doc/library/difflib.rst:445 msgid "" "Here's the same example as before, but considering blanks to be junk. That " "prevents ``' abcd'`` from matching the ``' abcd'`` at the tail end of the " @@ -768,19 +755,19 @@ msgstr "" "En cambio, sólo el ``'abcd'`` puede coincidir, y coincide con el ``'abcd'`` " "que se encuentre mas a la izquierda en la segunda secuencia:" -#: ../Doc/library/difflib.rst:458 +#: ../Doc/library/difflib.rst:454 msgid "If no blocks match, this returns ``(alo, blo, 0)``." msgstr "Si no coincide ningún bloque, esto retorna ``(alo, blo, 0)``." -#: ../Doc/library/difflib.rst:460 +#: ../Doc/library/difflib.rst:456 msgid "This method returns a :term:`named tuple` ``Match(a, b, size)``." msgstr "Este método retorna un :term:`named tuple` ``Match(a, b, size)``." -#: ../Doc/library/difflib.rst:462 +#: ../Doc/library/difflib.rst:458 msgid "Added default arguments." msgstr "Se agregaron argumentos predeterminados." -#: ../Doc/library/difflib.rst:468 +#: ../Doc/library/difflib.rst:464 msgid "" "Return list of triples describing non-overlapping matching subsequences. " "Each triple is of the form ``(i, j, n)``, and means that ``a[i:i+n] == b[j:" @@ -791,7 +778,7 @@ msgstr "" "``(i, j, n)``, y significa que ``a[i:i+n] == b[j:j+n]``. Las triplas son " "monótonamente crecientes en *i* y *j*." -#: ../Doc/library/difflib.rst:473 +#: ../Doc/library/difflib.rst:469 msgid "" "The last triple is a dummy, and has the value ``(len(a), len(b), 0)``. It " "is the only triple with ``n == 0``. If ``(i, j, n)`` and ``(i', j', n')`` " @@ -805,7 +792,7 @@ msgstr "" "elemento de la lista, entonces ``i+n < i'`` o ``j+n < j'``; en otras " "palabras, las triplas adyacentes describen bloques iguales no adyacentes." -#: ../Doc/library/difflib.rst:490 +#: ../Doc/library/difflib.rst:486 msgid "" "Return list of 5-tuples describing how to turn *a* into *b*. Each tuple is " "of the form ``(tag, i1, i2, j1, j2)``. The first tuple has ``i1 == j1 == " @@ -818,37 +805,37 @@ msgstr "" "restantes tienen *i1* igual al *i2* de la tupla precedente, y de igual " "manera, *j1* igual al *j2* de la tupla anterior." -#: ../Doc/library/difflib.rst:495 +#: ../Doc/library/difflib.rst:491 msgid "The *tag* values are strings, with these meanings:" msgstr "" "Los valores de *tag* son cadenas de caracteres, con el siguiente significado:" -#: ../Doc/library/difflib.rst:498 +#: ../Doc/library/difflib.rst:494 msgid "Value" msgstr "Valor" -#: ../Doc/library/difflib.rst:500 +#: ../Doc/library/difflib.rst:496 msgid "``'replace'``" msgstr "``'replace'``" -#: ../Doc/library/difflib.rst:500 +#: ../Doc/library/difflib.rst:496 msgid "``a[i1:i2]`` should be replaced by ``b[j1:j2]``." msgstr "``a[i1:i2]`` debe ser reemplazado por ``b[j1:j2]``." -#: ../Doc/library/difflib.rst:503 +#: ../Doc/library/difflib.rst:499 msgid "``'delete'``" msgstr "``'delete'``" -#: ../Doc/library/difflib.rst:503 +#: ../Doc/library/difflib.rst:499 msgid "``a[i1:i2]`` should be deleted. Note that ``j1 == j2`` in this case." msgstr "" "``a[i1:i2]`` debe ser eliminado. Nótese que en este caso ``j1 == j2``." -#: ../Doc/library/difflib.rst:506 +#: ../Doc/library/difflib.rst:502 msgid "``'insert'``" msgstr "``'insert'``" -#: ../Doc/library/difflib.rst:506 +#: ../Doc/library/difflib.rst:502 msgid "" "``b[j1:j2]`` should be inserted at ``a[i1:i1]``. Note that ``i1 == i2`` in " "this case." @@ -856,24 +843,24 @@ msgstr "" "``b[j1:j2]`` debe ser insertado en ``a[i1:i1]``. Nótese que en este caso " "``i1 == i2``." -#: ../Doc/library/difflib.rst:510 +#: ../Doc/library/difflib.rst:506 msgid "``'equal'``" msgstr "``'equal'``" -#: ../Doc/library/difflib.rst:510 +#: ../Doc/library/difflib.rst:506 msgid "``a[i1:i2] == b[j1:j2]`` (the sub-sequences are equal)." msgstr "``a[i1:i2] == b[j1:j2]`` (las subsecuencias son iguales)." -#: ../Doc/library/difflib.rst:514 +#: ../Doc/library/difflib.rst:510 msgid "For example::" msgstr "Por ejemplo:" -#: ../Doc/library/difflib.rst:531 +#: ../Doc/library/difflib.rst:527 msgid "Return a :term:`generator` of groups with up to *n* lines of context." msgstr "" "Retorna un :term:`generator` de grupos de hasta *n* líneas de contexto." -#: ../Doc/library/difflib.rst:533 +#: ../Doc/library/difflib.rst:529 msgid "" "Starting with the groups returned by :meth:`get_opcodes`, this method splits " "out smaller change clusters and eliminates intervening ranges which have no " @@ -883,18 +870,18 @@ msgstr "" "separa grupos con cambios menores y elimina los rangos intermedios que no " "tienen cambios." -#: ../Doc/library/difflib.rst:537 +#: ../Doc/library/difflib.rst:533 msgid "The groups are returned in the same format as :meth:`get_opcodes`." msgstr "Los grupos son retornados en el mismo formato que :meth:`get_opcodes`." -#: ../Doc/library/difflib.rst:542 +#: ../Doc/library/difflib.rst:538 msgid "" "Return a measure of the sequences' similarity as a float in the range [0, 1]." msgstr "" "Retorna una medida de la similitud de las secuencias como un flotante en el " "rango [0, 1]." -#: ../Doc/library/difflib.rst:545 +#: ../Doc/library/difflib.rst:541 msgid "" "Where T is the total number of elements in both sequences, and M is the " "number of matches, this is 2.0\\*M / T. Note that this is ``1.0`` if the " @@ -904,7 +891,7 @@ msgstr "" "de coincidencias, esto es 2.0\\*M / T. Nótese que esto es ``1.0`` si las " "secuencias son idénticas y ``0.0`` si no tienen nada en común." -#: ../Doc/library/difflib.rst:549 +#: ../Doc/library/difflib.rst:545 msgid "" "This is expensive to compute if :meth:`get_matching_blocks` or :meth:" "`get_opcodes` hasn't already been called, in which case you may want to try :" @@ -915,7 +902,7 @@ msgstr "" "meth:`quick_ratio` o :meth:`real_quick_ratio` para obtener un límite " "superior." -#: ../Doc/library/difflib.rst:556 +#: ../Doc/library/difflib.rst:552 msgid "" "Caution: The result of a :meth:`ratio` call may depend on the order of the " "arguments. For instance::" @@ -923,75 +910,82 @@ msgstr "" "Precaución: El resultado de una llamada a :meth:`ratio` puede depender del " "orden de los argumentos. Por ejemplo::" -#: ../Doc/library/difflib.rst:567 +#: ../Doc/library/difflib.rst:563 msgid "Return an upper bound on :meth:`ratio` relatively quickly." msgstr "Retorna un límite superior en :meth:`ratio` relativamente rápido." -#: ../Doc/library/difflib.rst:572 +#: ../Doc/library/difflib.rst:568 msgid "Return an upper bound on :meth:`ratio` very quickly." msgstr "Retorna un límite superior en :meth:`ratio` muy rápido." -#: ../Doc/library/difflib.rst:575 +#: ../Doc/library/difflib.rst:571 +#, fuzzy msgid "" "The three methods that return the ratio of matching to total characters can " "give different results due to differing levels of approximation, although :" -"meth:`quick_ratio` and :meth:`real_quick_ratio` are always at least as large " -"as :meth:`ratio`:" +"meth:`~SequenceMatcher.quick_ratio` and :meth:`~SequenceMatcher." +"real_quick_ratio` are always at least as large as :meth:`~SequenceMatcher." +"ratio`:" msgstr "" "Los tres métodos que retornan la proporción de coincidencias con el total de " "caracteres pueden dar diferentes resultados debido a los distintos niveles " "de aproximación, a pesar de que :meth:`quick_ratio` y :meth:" "`real_quick_ratio` son siempre al menos tan grandes como :meth:`ratio`:" -#: ../Doc/library/difflib.rst:592 +#: ../Doc/library/difflib.rst:588 msgid "SequenceMatcher Examples" msgstr ":class:`SequenceMatcher` Ejemplos" -#: ../Doc/library/difflib.rst:594 +#: ../Doc/library/difflib.rst:590 msgid "This example compares two strings, considering blanks to be \"junk\":" msgstr "" "Este ejemplo compara dos cadenas de texto, considerando los espacios en " "blanco como caracteres no deseados:" -#: ../Doc/library/difflib.rst:600 +#: ../Doc/library/difflib.rst:596 +#, fuzzy msgid "" -":meth:`ratio` returns a float in [0, 1], measuring the similarity of the " -"sequences. As a rule of thumb, a :meth:`ratio` value over 0.6 means the " -"sequences are close matches:" +":meth:`~SequenceMatcher.ratio` returns a float in [0, 1], measuring the " +"similarity of the sequences. As a rule of thumb, a :meth:`~SequenceMatcher." +"ratio` value over 0.6 means the sequences are close matches:" msgstr "" ":meth:`ratio` retorna un flotante en el rango [0, 1], cuantificando la " "similitud entre las secuencias. Siguiendo la regla del pulgar, un :meth:" "`ratio` por encima de 0.6 significa que las secuencias son coincidencias " "cercanas:" -#: ../Doc/library/difflib.rst:607 +#: ../Doc/library/difflib.rst:603 +#, fuzzy msgid "" "If you're only interested in where the sequences match, :meth:" -"`get_matching_blocks` is handy:" +"`~SequenceMatcher.get_matching_blocks` is handy:" msgstr "" "Si solamente estás interesado en cuándo las secuencias coinciden, :meth:" "`get_matching_blocks` es útil:" -#: ../Doc/library/difflib.rst:616 +#: ../Doc/library/difflib.rst:612 +#, fuzzy msgid "" -"Note that the last tuple returned by :meth:`get_matching_blocks` is always a " -"dummy, ``(len(a), len(b), 0)``, and this is the only case in which the last " -"tuple element (number of elements matched) is ``0``." +"Note that the last tuple returned by :meth:`~SequenceMatcher." +"get_matching_blocks` is always a dummy, ``(len(a), len(b), 0)``, and this is " +"the only case in which the last tuple element (number of elements matched) " +"is ``0``." msgstr "" "Nótese que la última tupla retornada por :meth:`get_matching_blocks` es " "siempre un objeto ficticio (dummy), ``(len(a), len(b), 0)``, y este es el " "único caso en el cual el último elemento de la tupla (el número de elementos " "coincidentes) es ``0``." -#: ../Doc/library/difflib.rst:620 +#: ../Doc/library/difflib.rst:616 +#, fuzzy msgid "" "If you want to know how to change the first sequence into the second, use :" -"meth:`get_opcodes`:" +"meth:`~SequenceMatcher.get_opcodes`:" msgstr "" "Si quieres saber como cambiar la primer secuencia con la segunda, usa :meth:" "`get_opcodes`:" -#: ../Doc/library/difflib.rst:631 +#: ../Doc/library/difflib.rst:627 msgid "" "The :func:`get_close_matches` function in this module which shows how simple " "code building on :class:`SequenceMatcher` can be used to do useful work." @@ -1000,7 +994,7 @@ msgstr "" "que es el código que construye :class:`SequenceMatcher` puede ser utilizada " "para hacer un trabajo útil." -#: ../Doc/library/difflib.rst:635 +#: ../Doc/library/difflib.rst:631 msgid "" "`Simple version control recipe `_ for a small application built with :class:`SequenceMatcher`." @@ -1009,11 +1003,11 @@ msgstr "" "com/recipes/576729/>`_ para una aplicación pequeña construida con :class:" "`SequenceMatcher`." -#: ../Doc/library/difflib.rst:643 +#: ../Doc/library/difflib.rst:639 msgid "Differ Objects" msgstr "Objetos *Differ*" -#: ../Doc/library/difflib.rst:645 +#: ../Doc/library/difflib.rst:641 msgid "" "Note that :class:`Differ`\\ -generated deltas make no claim to be " "**minimal** diffs. To the contrary, minimal diffs are often counter-" @@ -1029,11 +1023,11 @@ msgstr "" "puntos de sincronización a coincidencias contiguas se preserva cierta noción " "de cercanía, con el costo adicional de producir diferencias mas largas." -#: ../Doc/library/difflib.rst:651 +#: ../Doc/library/difflib.rst:647 msgid "The :class:`Differ` class has this constructor:" msgstr "La clase :class:`Differ` tiene el siguiente constructor:" -#: ../Doc/library/difflib.rst:657 +#: ../Doc/library/difflib.rst:653 msgid "" "Optional keyword parameters *linejunk* and *charjunk* are for filter " "functions (or ``None``):" @@ -1041,7 +1035,7 @@ msgstr "" "Parámetros de palabra clave opcionales *linejunk* y *charjunk* son para " "funciones de filtrado (o ``None``):" -#: ../Doc/library/difflib.rst:660 +#: ../Doc/library/difflib.rst:656 msgid "" "*linejunk*: A function that accepts a single string argument, and returns " "true if the string is junk. The default is ``None``, meaning that no line " @@ -1052,7 +1046,7 @@ msgstr "" "por defecto es ``None``, lo que significa que ninguna línea es considerada " "no deseada." -#: ../Doc/library/difflib.rst:664 +#: ../Doc/library/difflib.rst:660 msgid "" "*charjunk*: A function that accepts a single character argument (a string of " "length 1), and returns true if the character is junk. The default is " @@ -1063,7 +1057,7 @@ msgstr "" "elemento no deseado. Su valor por defecto es ``None``, lo que significa que " "ningún carácter es considerado no deseado." -#: ../Doc/library/difflib.rst:668 +#: ../Doc/library/difflib.rst:664 msgid "" "These junk-filtering functions speed up matching to find differences and do " "not cause any differing lines or characters to be ignored. Read the " @@ -1075,21 +1069,21 @@ msgstr "" "diferentes. Lea la descripción del parámetro *isjunk* en el método :meth:" "`~SequenceMatcher.find_longest_match` para una explicación mas detallada." -#: ../Doc/library/difflib.rst:674 +#: ../Doc/library/difflib.rst:670 msgid "" ":class:`Differ` objects are used (deltas generated) via a single method:" msgstr "" "Los objetos :class:`Differ` son usados (una vez generados los deltas) " "mediante un solo método:" -#: ../Doc/library/difflib.rst:679 +#: ../Doc/library/difflib.rst:675 msgid "" "Compare two sequences of lines, and generate the delta (a sequence of lines)." msgstr "" "Compara dos secuencias de líneas y genera el delta correspondiente (una " "secuencia de líneas)." -#: ../Doc/library/difflib.rst:681 +#: ../Doc/library/difflib.rst:677 msgid "" "Each sequence must contain individual single-line strings ending with " "newlines. Such sequences can be obtained from the :meth:`~io.IOBase." @@ -1104,15 +1098,16 @@ msgstr "" "nuevas lineas, listas para imprimirse tal cual a través del método :meth:" "`~io.IOBase.writelines` de un objeto de tipo archivo." -#: ../Doc/library/difflib.rst:692 +#: ../Doc/library/difflib.rst:688 msgid "Differ Example" msgstr "Ejemplo de *Differ*" -#: ../Doc/library/difflib.rst:694 +#: ../Doc/library/difflib.rst:690 +#, fuzzy msgid "" "This example compares two texts. First we set up the texts, sequences of " "individual single-line strings ending with newlines (such sequences can also " -"be obtained from the :meth:`~io.BaseIO.readlines` method of file-like " +"be obtained from the :meth:`~io.IOBase.readlines` method of file-like " "objects):" msgstr "" "Este ejemplo compara dos textos. Primero preparamos los textos, secuencias " @@ -1120,11 +1115,11 @@ msgstr "" "nueva (este tipo de secuencias también pueden ser obtenidas mediante el " "método :meth:`~io.BaseIO.readlines` de objetos de tipo archivo):" -#: ../Doc/library/difflib.rst:713 +#: ../Doc/library/difflib.rst:709 msgid "Next we instantiate a Differ object:" msgstr "Luego instanciamos el objeto *Differ*:" -#: ../Doc/library/difflib.rst:717 +#: ../Doc/library/difflib.rst:713 msgid "" "Note that when instantiating a :class:`Differ` object we may pass functions " "to filter out line and character \"junk.\" See the :meth:`Differ` " @@ -1134,32 +1129,54 @@ msgstr "" "funciones para filtrar lineas y caracteres no deseados. Consulte el " "constructor de :meth:`Differ` para mas detalles." -#: ../Doc/library/difflib.rst:721 +#: ../Doc/library/difflib.rst:717 msgid "Finally, we compare the two:" msgstr "Finalmente, comparamos las dos:" -#: ../Doc/library/difflib.rst:725 +#: ../Doc/library/difflib.rst:721 msgid "``result`` is a list of strings, so let's pretty-print it:" msgstr "" "``result`` es una lista de cadenas de caracteres, entonces vamos a mostrarlo " "de una forma elegante:" -#: ../Doc/library/difflib.rst:740 +#: ../Doc/library/difflib.rst:736 msgid "As a single multi-line string it looks like this:" msgstr "" "Representado como una sola cadena de caracteres de múltiples líneas se ve " "así:" -#: ../Doc/library/difflib.rst:759 +#: ../Doc/library/difflib.rst:755 msgid "A command-line interface to difflib" msgstr "Una interfaz de línea de comandos para :mod:`difflib`" -#: ../Doc/library/difflib.rst:761 +#: ../Doc/library/difflib.rst:757 +#, fuzzy msgid "" -"This example shows how to use difflib to create a ``diff``-like utility. It " -"is also contained in the Python source distribution, as :file:`Tools/scripts/" -"diff.py`." +"This example shows how to use difflib to create a ``diff``-like utility." msgstr "" "Este ejemplo muestra como usar difflib para crear una herramienta de " "diferencias. También puedes encontrarla en la distribución estándar de " "Python como :file:`Tools/scripts/diff.py`." + +#: ../Doc/library/difflib.rst:762 +#, fuzzy +msgid "ndiff example" +msgstr "Ejemplo de *Differ*" + +#: ../Doc/library/difflib.rst:764 +msgid "This example shows how to use :func:`difflib.ndiff`." +msgstr "" + +#~ msgid "" +#~ ":file:`Tools/scripts/diff.py` is a command-line front-end to this class " +#~ "and contains a good example of its use." +#~ msgstr "" +#~ ":file:`Tools/scripts/diff.py` es una herramienta de línea de comandos " +#~ "para esta clase y contiene un buen ejemplo sobre su uso." + +#~ msgid "" +#~ ":file:`Tools/scripts/ndiff.py` is a command-line front-end to this " +#~ "function." +#~ msgstr "" +#~ ":file:`Tools/scripts/ndiff.py` es una interfaz de línea de comandos para " +#~ "esta función." diff --git a/library/dis.po b/library/dis.po index e61d1c8928..2aed47cac8 100644 --- a/library/dis.po +++ b/library/dis.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-11-05 23:34+0800\n" "Last-Translator: Rodrigo Tobar \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/dis.rst:2 msgid ":mod:`dis` --- Disassembler for Python bytecode" @@ -71,38 +71,43 @@ msgstr "" "byte." #: ../Doc/library/dis.rst:37 +#, fuzzy msgid "" "Some instructions are accompanied by one or more inline cache entries, which " "take the form of :opcode:`CACHE` instructions. These instructions are hidden " "by default, but can be shown by passing ``show_caches=True`` to any :mod:" -"`dis` utility." +"`dis` utility. Furthermore, the interpreter now adapts the bytecode to " +"specialize it for different runtime conditions. The adaptive bytecode can be " +"shown by passing ``adaptive=True``." msgstr "" "Algunas instrucciones van acompañadas de una o más entradas de caché en " "línea, que adoptan la forma de instrucciones :opcode:`CACHE`. Estas " "instrucciones están ocultas de forma predeterminada, pero se pueden mostrar " "pasando ``show_caches=True`` a cualquier utilidad :mod:`dis`." -#: ../Doc/library/dis.rst:44 -msgid "Example: Given the function :func:`myfunc`::" +#: ../Doc/library/dis.rst:46 +#, fuzzy +msgid "Example: Given the function :func:`!myfunc`::" msgstr "Ejemplo: dada la función :func:`myfunc`::" -#: ../Doc/library/dis.rst:49 +#: ../Doc/library/dis.rst:51 +#, fuzzy msgid "" -"the following command can be used to display the disassembly of :func:" -"`myfunc`:" +"the following command can be used to display the disassembly of :func:`!" +"myfunc`:" msgstr "" "el siguiente comando se puede utilizar para mostrar el desmontaje de :func:" "`myfunc`:" -#: ../Doc/library/dis.rst:63 +#: ../Doc/library/dis.rst:64 msgid "(The \"2\" is a line number)." msgstr "(El \"2\" es un número de línea)." -#: ../Doc/library/dis.rst:66 +#: ../Doc/library/dis.rst:67 msgid "Bytecode analysis" msgstr "Análisis de bytecode" -#: ../Doc/library/dis.rst:70 +#: ../Doc/library/dis.rst:71 msgid "" "The bytecode analysis API allows pieces of Python code to be wrapped in a :" "class:`Bytecode` object that provides easy access to details of the compiled " @@ -112,7 +117,7 @@ msgstr "" "envuelvan en un objeto :class:`Bytecode` que proporciona un fácil acceso a " "los detalles del código compilado." -#: ../Doc/library/dis.rst:77 +#: ../Doc/library/dis.rst:78 msgid "" "Analyse the bytecode corresponding to a function, generator, asynchronous " "generator, coroutine, method, string of source code, or a code object (as " @@ -122,7 +127,7 @@ msgstr "" "asíncrono, corutina, método, cadena de código fuente o un objeto de código " "(como lo retorna :func:`compile`)." -#: ../Doc/library/dis.rst:81 +#: ../Doc/library/dis.rst:82 msgid "" "This is a convenience wrapper around many of the functions listed below, " "most notably :func:`get_instructions`, as iterating over a :class:`Bytecode` " @@ -133,7 +138,7 @@ msgstr "" "una instancia de :class:`Bytecode` produce las operaciones de bytecode como " "instancias de :class:`Instruction`." -#: ../Doc/library/dis.rst:85 ../Doc/library/dis.rst:262 +#: ../Doc/library/dis.rst:86 ../Doc/library/dis.rst:274 msgid "" "If *first_line* is not ``None``, it indicates the line number that should be " "reported for the first source line in the disassembled code. Otherwise, the " @@ -145,7 +150,7 @@ msgstr "" "contrario, la información de la línea de origen (si la hay) se toma " "directamente del objeto de código desmontado." -#: ../Doc/library/dis.rst:90 +#: ../Doc/library/dis.rst:91 msgid "" "If *current_offset* is not ``None``, it refers to an instruction offset in " "the disassembled code. Setting this means :meth:`.dis` will display a " @@ -156,7 +161,19 @@ msgstr "" "mostrará un marcador de \"instrucción actual\" contra el código de operación " "especificado." -#: ../Doc/library/dis.rst:96 +#: ../Doc/library/dis.rst:95 +msgid "" +"If *show_caches* is ``True``, :meth:`.dis` will display inline cache entries " +"used by the interpreter to specialize the bytecode." +msgstr "" + +#: ../Doc/library/dis.rst:98 +msgid "" +"If *adaptive* is ``True``, :meth:`.dis` will display specialized bytecode " +"that may be different from the original bytecode." +msgstr "" + +#: ../Doc/library/dis.rst:103 msgid "" "Construct a :class:`Bytecode` instance from the given traceback, setting " "*current_offset* to the instruction responsible for the exception." @@ -164,15 +181,15 @@ msgstr "" "Construye una instancia de :class:`Bytecode` a partir del *traceback* dado, " "estableciendo *current_offset* en la instrucción responsable de la excepción." -#: ../Doc/library/dis.rst:101 +#: ../Doc/library/dis.rst:108 msgid "The compiled code object." msgstr "El objeto de código compilado." -#: ../Doc/library/dis.rst:105 +#: ../Doc/library/dis.rst:112 msgid "The first source line of the code object (if available)" msgstr "La primera línea de origen del objeto de código (si está disponible)" -#: ../Doc/library/dis.rst:109 +#: ../Doc/library/dis.rst:116 msgid "" "Return a formatted view of the bytecode operations (the same as printed by :" "func:`dis.dis`, but returned as a multi-line string)." @@ -181,7 +198,7 @@ msgstr "" "impreso por :func:`dis.dis`, pero retornado como una cadena de caracteres " "multilínea)." -#: ../Doc/library/dis.rst:114 +#: ../Doc/library/dis.rst:121 msgid "" "Return a formatted multi-line string with detailed information about the " "code object, like :func:`code_info`." @@ -189,27 +206,28 @@ msgstr "" "Retorna una cadena de caracteres multilínea formateada con información " "detallada sobre el objeto de código, como :func:`code_info`." -#: ../Doc/library/dis.rst:117 ../Doc/library/dis.rst:158 -#: ../Doc/library/dis.rst:204 +#: ../Doc/library/dis.rst:124 ../Doc/library/dis.rst:164 +#: ../Doc/library/dis.rst:216 msgid "This can now handle coroutine and asynchronous generator objects." msgstr "" "Esto ahora puede manejar objetos generadores asíncronos y de corutinas." -#: ../Doc/library/dis.rst:120 ../Doc/library/dis.rst:207 -#: ../Doc/library/dis.rst:223 ../Doc/library/dis.rst:250 -#: ../Doc/library/dis.rst:269 -msgid "Added the ``show_caches`` parameter." +#: ../Doc/library/dis.rst:127 ../Doc/library/dis.rst:219 +#: ../Doc/library/dis.rst:235 ../Doc/library/dis.rst:262 +#: ../Doc/library/dis.rst:283 +#, fuzzy +msgid "Added the *show_caches* and *adaptive* parameters." msgstr "Se agregó el parámetro ``show_caches``." -#: ../Doc/library/dis.rst:123 +#: ../Doc/library/dis.rst:130 msgid "Example:" msgstr "Ejemplo:" -#: ../Doc/library/dis.rst:140 +#: ../Doc/library/dis.rst:146 msgid "Analysis functions" msgstr "Funciones de análisis" -#: ../Doc/library/dis.rst:142 +#: ../Doc/library/dis.rst:148 msgid "" "The :mod:`dis` module also defines the following analysis functions that " "convert the input directly to the desired output. They can be useful if only " @@ -221,7 +239,7 @@ msgstr "" "si solo se realiza una sola operación, por lo que el objeto de análisis " "intermedio no es útil:" -#: ../Doc/library/dis.rst:148 +#: ../Doc/library/dis.rst:154 msgid "" "Return a formatted multi-line string with detailed code object information " "for the supplied function, generator, asynchronous generator, coroutine, " @@ -232,7 +250,7 @@ msgstr "" "asíncrono, corutina, método, cadena de código fuente u objeto de código " "suministrados." -#: ../Doc/library/dis.rst:152 +#: ../Doc/library/dis.rst:158 msgid "" "Note that the exact contents of code info strings are highly implementation " "dependent and they may change arbitrarily across Python VMs or Python " @@ -243,7 +261,7 @@ msgstr "" "arbitrariamente en las diferentes máquinas virtuales Python o las versiones " "de Python." -#: ../Doc/library/dis.rst:164 +#: ../Doc/library/dis.rst:170 msgid "" "Print detailed code object information for the supplied function, method, " "source code string or code object to *file* (or ``sys.stdout`` if *file* is " @@ -253,7 +271,7 @@ msgstr "" "cadena de código fuente u objeto de código suministrado en *file* (o ``sys." "stdout`` si *file* no está especificado)." -#: ../Doc/library/dis.rst:168 +#: ../Doc/library/dis.rst:174 msgid "" "This is a convenient shorthand for ``print(code_info(x), file=file)``, " "intended for interactive exploration at the interpreter prompt." @@ -262,12 +280,13 @@ msgstr "" "destinado a la exploración interactiva en el indicador del intérprete " "(*prompt*)." -#: ../Doc/library/dis.rst:173 ../Doc/library/dis.rst:198 -#: ../Doc/library/dis.rst:220 ../Doc/library/dis.rst:247 +#: ../Doc/library/dis.rst:179 ../Doc/library/dis.rst:210 +#: ../Doc/library/dis.rst:232 ../Doc/library/dis.rst:259 msgid "Added *file* parameter." msgstr "Agrega un parámetro *file*." -#: ../Doc/library/dis.rst:179 +#: ../Doc/library/dis.rst:185 +#, fuzzy msgid "" "Disassemble the *x* object. *x* can denote either a module, a class, a " "method, a function, a generator, an asynchronous generator, a coroutine, a " @@ -275,11 +294,12 @@ msgid "" "a module, it disassembles all functions. For a class, it disassembles all " "methods (including class and static methods). For a code object or sequence " "of raw bytecode, it prints one line per bytecode instruction. It also " -"recursively disassembles nested code objects (the code of comprehensions, " -"generator expressions and nested functions, and the code used for building " -"nested classes). Strings are first compiled to code objects with the :func:" -"`compile` built-in function before being disassembled. If no object is " -"provided, this function disassembles the last traceback." +"recursively disassembles nested code objects. These can include generator " +"expressions, nested functions, the bodies of nested classes, and the code " +"objects used for :ref:`annotation scopes `. Strings are " +"first compiled to code objects with the :func:`compile` built-in function " +"before being disassembled. If no object is provided, this function " +"disassembles the last traceback." msgstr "" "Desmontar el objeto *x*. *x* puede denotar un módulo, una clase, un método, " "una función, un generador, un generador asíncrono, una corutina, un objeto " @@ -295,8 +315,8 @@ msgstr "" "desmontarse. Si no se proporciona ningún objeto, esta función desmonta el " "último rastreo." -#: ../Doc/library/dis.rst:192 ../Doc/library/dis.rst:217 -#: ../Doc/library/dis.rst:244 +#: ../Doc/library/dis.rst:198 ../Doc/library/dis.rst:229 +#: ../Doc/library/dis.rst:256 msgid "" "The disassembly is written as text to the supplied *file* argument if " "provided and to ``sys.stdout`` otherwise." @@ -304,7 +324,7 @@ msgstr "" "El desensamblaje se escribe como texto en el argumento *file* proporcionado " "si se proporciona y, de lo contrario, ``sys.stdout``." -#: ../Doc/library/dis.rst:195 +#: ../Doc/library/dis.rst:201 msgid "" "The maximal depth of recursion is limited by *depth* unless it is ``None``. " "``depth=0`` means no recursion." @@ -312,11 +332,23 @@ msgstr "" "La profundidad máxima de recursión está limitada por *depth* a menos que sea " "``None``. ``depth=0`` significa que no hay recursión." -#: ../Doc/library/dis.rst:201 +#: ../Doc/library/dis.rst:204 +msgid "" +"If *show_caches* is ``True``, this function will display inline cache " +"entries used by the interpreter to specialize the bytecode." +msgstr "" + +#: ../Doc/library/dis.rst:207 +msgid "" +"If *adaptive* is ``True``, this function will display specialized bytecode " +"that may be different from the original bytecode." +msgstr "" + +#: ../Doc/library/dis.rst:213 msgid "Implemented recursive disassembling and added *depth* parameter." msgstr "Desensamblaje recursivo implementado y parámetro agregado *depth*." -#: ../Doc/library/dis.rst:213 +#: ../Doc/library/dis.rst:225 msgid "" "Disassemble the top-of-stack function of a traceback, using the last " "traceback if none was passed. The instruction causing the exception is " @@ -326,7 +358,7 @@ msgstr "" "rastreo si no se pasó ninguno. Se indica la instrucción que causa la " "excepción." -#: ../Doc/library/dis.rst:230 +#: ../Doc/library/dis.rst:242 msgid "" "Disassemble a code object, indicating the last instruction if *lasti* was " "provided. The output is divided in the following columns:" @@ -334,35 +366,35 @@ msgstr "" "Desmonta un objeto de código, que indica la última instrucción si se " "proporcionó *lasti*. La salida se divide en las siguientes columnas:" -#: ../Doc/library/dis.rst:233 +#: ../Doc/library/dis.rst:245 msgid "the line number, for the first instruction of each line" msgstr "el número de línea, para la primera instrucción de cada línea" -#: ../Doc/library/dis.rst:234 +#: ../Doc/library/dis.rst:246 msgid "the current instruction, indicated as ``-->``," msgstr "la instrucción actual, indicada como ``-->``," -#: ../Doc/library/dis.rst:235 +#: ../Doc/library/dis.rst:247 msgid "a labelled instruction, indicated with ``>>``," msgstr "una instrucción etiquetada, indicada con ``>>``," -#: ../Doc/library/dis.rst:236 +#: ../Doc/library/dis.rst:248 msgid "the address of the instruction," msgstr "la dirección de la instrucción," -#: ../Doc/library/dis.rst:237 +#: ../Doc/library/dis.rst:249 msgid "the operation code name," msgstr "el nombre del código de operación," -#: ../Doc/library/dis.rst:238 +#: ../Doc/library/dis.rst:250 msgid "operation parameters, and" msgstr "parámetros de operación, y" -#: ../Doc/library/dis.rst:239 +#: ../Doc/library/dis.rst:251 msgid "interpretation of the parameters in parentheses." msgstr "interpretación de los parámetros entre paréntesis." -#: ../Doc/library/dis.rst:241 +#: ../Doc/library/dis.rst:253 msgid "" "The parameter interpretation recognizes local and global variable names, " "constant values, branch targets, and compare operators." @@ -371,7 +403,7 @@ msgstr "" "globales, valores constantes, objetivos de ramificación y operadores de " "comparación." -#: ../Doc/library/dis.rst:256 +#: ../Doc/library/dis.rst:268 msgid "" "Return an iterator over the instructions in the supplied function, method, " "source code string or code object." @@ -379,7 +411,7 @@ msgstr "" "Retorna un iterador sobre las instrucciones en la función, método, cadena de " "código fuente u objeto de código suministrado." -#: ../Doc/library/dis.rst:259 +#: ../Doc/library/dis.rst:271 msgid "" "The iterator generates a series of :class:`Instruction` named tuples giving " "the details of each operation in the supplied code." @@ -387,7 +419,12 @@ msgstr "" "El iterador genera una serie de tuplas con nombre :class:`Instruction` que " "dan los detalles de cada operación en el código suministrado." -#: ../Doc/library/dis.rst:275 +#: ../Doc/library/dis.rst:279 +msgid "" +"The *show_caches* and *adaptive* parameters work as they do in :func:`dis`." +msgstr "" + +#: ../Doc/library/dis.rst:289 msgid "" "This generator function uses the ``co_lines`` method of the code object " "*code* to find the offsets which are starts of lines in the source code. " @@ -397,13 +434,13 @@ msgstr "" "*code* para encontrar las compensaciones que son los comienzos de las líneas " "en el código fuente. Se generan como pares ``(offset, lineno)``." -#: ../Doc/library/dis.rst:279 +#: ../Doc/library/dis.rst:293 msgid "Line numbers can be decreasing. Before, they were always increasing." msgstr "" "Los números de línea pueden estar disminuyendo. Antes, siempre estaban " "aumentando." -#: ../Doc/library/dis.rst:282 +#: ../Doc/library/dis.rst:296 msgid "" "The :pep:`626` ``co_lines`` method is used instead of the ``co_firstlineno`` " "and ``co_lnotab`` attributes of the code object." @@ -411,7 +448,7 @@ msgstr "" "Se utiliza el método :pep:`626` ``co_lines`` en lugar de los atributos " "``co_firstlineno`` y ``co_lnotab`` del objeto de código." -#: ../Doc/library/dis.rst:289 +#: ../Doc/library/dis.rst:303 msgid "" "Detect all offsets in the raw compiled bytecode string *code* which are jump " "targets, and return a list of these offsets." @@ -420,11 +457,11 @@ msgstr "" "byte compilada *code* que son objetivos de salto y retorna una lista de " "estos desplazamientos." -#: ../Doc/library/dis.rst:295 +#: ../Doc/library/dis.rst:309 msgid "Compute the stack effect of *opcode* with argument *oparg*." msgstr "Calcula el efecto de pila de *opcode* con el argumento *oparg*." -#: ../Doc/library/dis.rst:297 +#: ../Doc/library/dis.rst:311 msgid "" "If the code has a jump target and *jump* is ``True``, :func:`~stack_effect` " "will return the stack effect of jumping. If *jump* is ``False``, it will " @@ -437,15 +474,15 @@ msgstr "" "``None`` (predeterminado), retornará el efecto de acumulación máxima de " "ambos casos." -#: ../Doc/library/dis.rst:304 +#: ../Doc/library/dis.rst:318 msgid "Added *jump* parameter." msgstr "Agrega un parámetro *jump*." -#: ../Doc/library/dis.rst:311 +#: ../Doc/library/dis.rst:325 msgid "Python Bytecode Instructions" msgstr "Instrucciones bytecode de Python" -#: ../Doc/library/dis.rst:313 +#: ../Doc/library/dis.rst:327 msgid "" "The :func:`get_instructions` function and :class:`Bytecode` class provide " "details of bytecode instructions as :class:`Instruction` instances:" @@ -453,11 +490,11 @@ msgstr "" "La función :func:`get_instructions` y clase :class:`Bytecode` proporcionan " "detalles de las instrucciones bytecode como instancias :class:`Instruction`:" -#: ../Doc/library/dis.rst:318 +#: ../Doc/library/dis.rst:332 msgid "Details for a bytecode operation" msgstr "Detalles para una operación de bytecode" -#: ../Doc/library/dis.rst:322 +#: ../Doc/library/dis.rst:336 msgid "" "numeric code for operation, corresponding to the opcode values listed below " "and the bytecode values in the :ref:`opcode_collections`." @@ -466,20 +503,20 @@ msgstr "" "listados a continuación y los valores de bytecode en :ref:" "`opcode_collections`." -#: ../Doc/library/dis.rst:328 +#: ../Doc/library/dis.rst:342 msgid "human readable name for operation" msgstr "nombre legible por humanos para la operación" -#: ../Doc/library/dis.rst:333 +#: ../Doc/library/dis.rst:347 msgid "numeric argument to operation (if any), otherwise ``None``" msgstr "" "argumento numérico para la operación (si existe), de lo contrario ``None``" -#: ../Doc/library/dis.rst:338 +#: ../Doc/library/dis.rst:352 msgid "resolved arg value (if any), otherwise ``None``" msgstr "valor de argumento resuelto (si lo hay); de lo contrario, ``None``" -#: ../Doc/library/dis.rst:343 +#: ../Doc/library/dis.rst:357 msgid "" "human readable description of operation argument (if any), otherwise an " "empty string." @@ -487,21 +524,21 @@ msgstr "" "descripción legible por humanos del argumento de la operación (si lo hay); " "de lo contrario, una cadena vacía." -#: ../Doc/library/dis.rst:349 +#: ../Doc/library/dis.rst:363 msgid "start index of operation within bytecode sequence" msgstr "índice de inicio de operación dentro de la secuencia de bytecode" -#: ../Doc/library/dis.rst:354 +#: ../Doc/library/dis.rst:368 msgid "line started by this opcode (if any), otherwise ``None``" msgstr "" "línea iniciada por este código de operación (si existe), de lo contrario " "``None``" -#: ../Doc/library/dis.rst:359 +#: ../Doc/library/dis.rst:373 msgid "``True`` if other code jumps to here, otherwise ``False``" msgstr "``True`` si otro código salta aquí, de lo contrario, ``False``" -#: ../Doc/library/dis.rst:364 +#: ../Doc/library/dis.rst:378 msgid "" ":class:`dis.Positions` object holding the start and end locations that are " "covered by this instruction." @@ -509,29 +546,36 @@ msgstr "" "Objeto :class:`dis.Positions` que contiene las ubicaciones de inicio y " "finalización cubiertas por esta instrucción." -#: ../Doc/library/dis.rst:371 +#: ../Doc/library/dis.rst:385 msgid "Field ``positions`` is added." msgstr "Se agrega el campo ``positions``." -#: ../Doc/library/dis.rst:376 +#: ../Doc/library/dis.rst:390 msgid "" "In case the information is not available, some fields might be ``None``." msgstr "" "En caso de que la información no esté disponible, algunos campos pueden ser " "``None``." -#: ../Doc/library/dis.rst:386 +#: ../Doc/library/dis.rst:400 msgid "" "The Python compiler currently generates the following bytecode instructions." msgstr "" "El compilador de Python actualmente genera las siguientes instrucciones de " "bytecode." -#: ../Doc/library/dis.rst:389 +#: ../Doc/library/dis.rst:403 msgid "**General instructions**" msgstr "**Instrucciones generales**" -#: ../Doc/library/dis.rst:393 +#: ../Doc/library/dis.rst:405 +msgid "" +"In the following, We will refer to the interpreter stack as ``STACK`` and " +"describe operations on it as if it was a Python list. The top of the stack " +"corresponds to ``STACK[-1]`` in this language." +msgstr "" + +#: ../Doc/library/dis.rst:411 msgid "" "Do nothing code. Used as a placeholder by the bytecode optimizer, and to " "generate line tracing events." @@ -539,23 +583,31 @@ msgstr "" "Código que no hace nada. Utilizado como marcador de posición por el " "optimizador de bytecode y para generar eventos de seguimiento de línea." -#: ../Doc/library/dis.rst:399 -msgid "Removes the top-of-stack (TOS) item." +#: ../Doc/library/dis.rst:417 +#, fuzzy +msgid "Removes the top-of-stack item::" msgstr "Elimina el elemento de la parte superior de la pila (TOS)." -#: ../Doc/library/dis.rst:404 +#: ../Doc/library/dis.rst:424 +msgid "" +"Removes the top two values from the stack. Equivalent to ``POP_TOP``; " +"``POP_TOP``. Used to clean up at the end of loops, hence the name." +msgstr "" + +#: ../Doc/library/dis.rst:433 +#, fuzzy msgid "" -"Push the *i*-th item to the top of the stack. The item is not removed from " -"its original location." +"Push the i-th item to the top of the stack without removing it from its " +"original location::" msgstr "" "Empuje el elemento *i*-th a la parte superior de la pila. El elemento no se " "elimina de su ubicación original." -#: ../Doc/library/dis.rst:412 -msgid "Swap TOS with the item at position *i*." -msgstr "Intercambie TOS con el artículo en la posición *i*." +#: ../Doc/library/dis.rst:444 +msgid "Swap the top of the stack with the i-th element::" +msgstr "" -#: ../Doc/library/dis.rst:419 +#: ../Doc/library/dis.rst:453 msgid "" "Rather than being an actual instruction, this opcode is used to mark extra " "space for the interpreter to cache useful data directly in the bytecode " @@ -567,7 +619,7 @@ msgstr "" "útiles directamente en el bytecode. Todas las utilidades ``dis`` lo ocultan " "automáticamente, pero se puede ver con ``show_caches=True``." -#: ../Doc/library/dis.rst:424 +#: ../Doc/library/dis.rst:458 msgid "" "Logically, this space is part of the preceding instruction. Many opcodes " "expect to be followed by an exact number of caches, and will instruct the " @@ -577,7 +629,7 @@ msgstr "" "códigos de operación esperan ser seguidos por un número exacto de cachés y " "le indicarán al intérprete que los omita en tiempo de ejecución." -#: ../Doc/library/dis.rst:428 +#: ../Doc/library/dis.rst:462 msgid "" "Populated caches can look like arbitrary instructions, so great care should " "be taken when reading or modifying raw, adaptive bytecode containing " @@ -587,11 +639,11 @@ msgstr "" "debe tener mucho cuidado al leer o modificar el bytecode adaptativo sin " "procesar que contiene datos acelerados." -#: ../Doc/library/dis.rst:435 +#: ../Doc/library/dis.rst:469 msgid "**Unary operations**" msgstr "**Operaciones unarias**" -#: ../Doc/library/dis.rst:437 +#: ../Doc/library/dis.rst:471 msgid "" "Unary operations take the top of the stack, apply the operation, and push " "the result back on the stack." @@ -599,94 +651,97 @@ msgstr "" "Las operaciones unarias toman la parte superior de la pila, aplican la " "operación y retornan el resultado a la pila." -#: ../Doc/library/dis.rst:442 -msgid "Implements ``TOS = +TOS``." -msgstr "Implementa ``TOS = +TOS``." - -#: ../Doc/library/dis.rst:447 -msgid "Implements ``TOS = -TOS``." +#: ../Doc/library/dis.rst:477 +#, fuzzy +msgid "Implements ``STACK[-1] = -STACK[-1]``." msgstr "Implementa ``TOS = -TOS``." -#: ../Doc/library/dis.rst:452 -msgid "Implements ``TOS = not TOS``." +#: ../Doc/library/dis.rst:482 +#, fuzzy +msgid "Implements ``STACK[-1] = not STACK[-1]``." msgstr "Implementa ``TOS = not TOS``." -#: ../Doc/library/dis.rst:457 -msgid "Implements ``TOS = ~TOS``." +#: ../Doc/library/dis.rst:487 +#, fuzzy +msgid "Implements ``STACK[-1] = ~STACK[-1]``." msgstr "Implementa ``TOS = ~TOS``." -#: ../Doc/library/dis.rst:462 -msgid "Implements ``TOS = iter(TOS)``." +#: ../Doc/library/dis.rst:492 +#, fuzzy +msgid "Implements ``STACK[-1] = iter(STACK[-1])``." msgstr "Implementa ``TOS = iter(TOS)``." -#: ../Doc/library/dis.rst:467 +#: ../Doc/library/dis.rst:497 +#, fuzzy msgid "" -"If ``TOS`` is a :term:`generator iterator` or :term:`coroutine` object it is " -"left as is. Otherwise, implements ``TOS = iter(TOS)``." +"If ``STACK[-1]`` is a :term:`generator iterator` or :term:`coroutine` object " +"it is left as is. Otherwise, implements ``STACK[-1] = iter(STACK[-1])``." msgstr "" "Si ``TOS`` es un :term:`iterador generador ` o un " "objeto :term:`corutina ` se deja como está. De lo contrario, " "implementa ``TOS = iter(TOS)``." -#: ../Doc/library/dis.rst:473 +#: ../Doc/library/dis.rst:503 msgid "**Binary and in-place operations**" msgstr "**Operaciones binarias e in situ**" -#: ../Doc/library/dis.rst:475 +#: ../Doc/library/dis.rst:505 +#, fuzzy msgid "" -"Binary operations remove the top of the stack (TOS) and the second top-most " -"stack item (TOS1) from the stack. They perform the operation, and put the " -"result back on the stack." +"Binary operations remove the top two items from the stack (``STACK[-1]`` and " +"``STACK[-2]``). They perform the operation, then put the result back on the " +"stack." msgstr "" "Las operaciones binarias eliminan el elemento superior de la pila (TOS) y el " "segundo elemento de la pila superior (TOS1) de la pila. Realizan la " "operación y retornan el resultado a la pila." -#: ../Doc/library/dis.rst:479 +#: ../Doc/library/dis.rst:508 +#, fuzzy msgid "" -"In-place operations are like binary operations, in that they remove TOS and " -"TOS1, and push the result back on the stack, but the operation is done in-" -"place when TOS1 supports it, and the resulting TOS may be (but does not have " -"to be) the original TOS1." +"In-place operations are like binary operations, but the operation is done in-" +"place when ``STACK[-2]`` supports it, and the resulting ``STACK[-1]`` may be " +"(but does not have to be) the original ``STACK[-2]``." msgstr "" "Las operaciones en el lugar son como operaciones binarias, ya que eliminan " "TOS y TOS1, y retornan el resultado a la pila, pero la operación se realiza " "en el lugar cuando TOS1 lo admite, y el TOS resultante puede ser (pero no " "tiene ser) el TOS1 original." -#: ../Doc/library/dis.rst:487 +#: ../Doc/library/dis.rst:515 +#, fuzzy msgid "" "Implements the binary and in-place operators (depending on the value of " -"*op*)." +"*op*)::" msgstr "Implementa los operadores binarios e in situ (según el valor de *op*)." -#: ../Doc/library/dis.rst:495 -msgid "Implements ``TOS = TOS1[TOS]``." -msgstr "Implementa ``TOS = TOS1[TOS]``." - -#: ../Doc/library/dis.rst:500 -msgid "Implements ``TOS1[TOS] = TOS2``." -msgstr "Implementa ``TOS1[TOS] = TOS2``." - -#: ../Doc/library/dis.rst:505 -msgid "Implements ``del TOS1[TOS]``." -msgstr "Implementa ``del TOS1[TOS]``." +#: ../Doc/library/dis.rst:527 ../Doc/library/dis.rst:536 +#: ../Doc/library/dis.rst:546 ../Doc/library/dis.rst:554 +#: ../Doc/library/dis.rst:566 ../Doc/library/dis.rst:654 +#: ../Doc/library/dis.rst:664 ../Doc/library/dis.rst:674 +#: ../Doc/library/dis.rst:894 ../Doc/library/dis.rst:905 +#: ../Doc/library/dis.rst:1005 ../Doc/library/dis.rst:1017 +#: ../Doc/library/dis.rst:1029 +msgid "Implements::" +msgstr "" -#: ../Doc/library/dis.rst:508 +#: ../Doc/library/dis.rst:577 msgid "**Coroutine opcodes**" msgstr "**Opcodes de corutinas**" -#: ../Doc/library/dis.rst:512 +#: ../Doc/library/dis.rst:581 +#, fuzzy msgid "" -"Implements ``TOS = get_awaitable(TOS)``, where ``get_awaitable(o)`` returns " -"``o`` if ``o`` is a coroutine object or a generator object with the " -"CO_ITERABLE_COROUTINE flag, or resolves ``o.__await__``." +"Implements ``STACK[-1] = get_awaitable(STACK[-1])``, where " +"``get_awaitable(o)`` returns ``o`` if ``o`` is a coroutine object or a " +"generator object with the :data:`~inspect.CO_ITERABLE_COROUTINE` flag, or " +"resolves ``o.__await__``." msgstr "" "Implementa ``TOS = get_awaitable(TOS)``, donde ``get_awaitable(o)`` retorna " "``o`` si ``o`` es un objeto de corutina o un objeto generador con el " "indicador CO_ITERABLE_COROUTINE, o resuelve ``o.__await__``." -#: ../Doc/library/dis.rst:517 +#: ../Doc/library/dis.rst:586 msgid "" "If the ``where`` operand is nonzero, it indicates where the instruction " "occurs:" @@ -694,108 +749,106 @@ msgstr "" "Si el operando ``where`` es distinto de cero, indica dónde ocurre la " "instrucción:" -#: ../Doc/library/dis.rst:520 -msgid "``1`` After a call to ``__aenter__``" +#: ../Doc/library/dis.rst:589 +#, fuzzy +msgid "``1``: After a call to ``__aenter__``" msgstr "``1`` Después de una llamada a ``__aenter__``" -#: ../Doc/library/dis.rst:521 -msgid "``2`` After a call to ``__aexit__``" +#: ../Doc/library/dis.rst:590 +#, fuzzy +msgid "``2``: After a call to ``__aexit__``" msgstr "``2`` Después de una llamada a ``__aexit__``" -#: ../Doc/library/dis.rst:525 +#: ../Doc/library/dis.rst:594 msgid "Previously, this instruction did not have an oparg." msgstr "Anteriormente, esta instrucción no tenía un oparg." -#: ../Doc/library/dis.rst:531 -msgid "Implements ``TOS = TOS.__aiter__()``." +#: ../Doc/library/dis.rst:600 +#, fuzzy +msgid "Implements ``STACK[-1] = STACK[-1].__aiter__()``." msgstr "Implementa ``TOS = TOS.__aiter__()``." -#: ../Doc/library/dis.rst:534 +#: ../Doc/library/dis.rst:603 msgid "Returning awaitable objects from ``__aiter__`` is no longer supported." msgstr "Ya no se admite el retorno de objetos *awaitable* de ``__aiter__``." -#: ../Doc/library/dis.rst:541 +#: ../Doc/library/dis.rst:610 +#, fuzzy msgid "" -"Pushes ``get_awaitable(TOS.__anext__())`` to the stack. See " -"``GET_AWAITABLE`` for details about ``get_awaitable``." +"Implement ``STACK.append(get_awaitable(STACK[-1].__anext__()))`` to the " +"stack. See ``GET_AWAITABLE`` for details about ``get_awaitable``." msgstr "" "Agrega ``get_awaitable(TOS.__anext__())`` a la pila. Consulte " "``GET_AWAITABLE`` para obtener detalles sobre ``get_awaitable``." -#: ../Doc/library/dis.rst:549 +#: ../Doc/library/dis.rst:618 msgid "" "Terminates an :keyword:`async for` loop. Handles an exception raised when " -"awaiting a next item. If TOS is :exc:`StopAsyncIteration` pop 3 values from " -"the stack and restore the exception state using the second of them. " -"Otherwise re-raise the exception using the value from the stack. An " -"exception handler block is removed from the block stack." +"awaiting a next item. The stack contains the async iterable in ``STACK[-2]`` " +"and the raised exception in ``STACK[-1]``. Both are popped. If the exception " +"is not :exc:`StopAsyncIteration`, it is re-raised." msgstr "" -"Termina un bucle :keyword:`async for`. Maneja una excepción generada cuando " -"se espera un elemento siguiente. Si TOS es :exc:`StopAsyncIteration`, " -"extraiga 3 valores de la pila y restaure el estado de excepción utilizando " -"el segundo de ellos. De lo contrario, vuelva a generar la excepción " -"utilizando el valor de la pila. Un bloque del controlador de excepciones se " -"elimina de la pila de bloques." -#: ../Doc/library/dis.rst:557 ../Doc/library/dis.rst:635 -#: ../Doc/library/dis.rst:646 +#: ../Doc/library/dis.rst:625 ../Doc/library/dis.rst:730 +#: ../Doc/library/dis.rst:741 msgid "" "Exception representation on the stack now consist of one, not three, items." msgstr "" "La representación de excepciones en la pila ahora consta de uno, no de tres " "elementos." -#: ../Doc/library/dis.rst:562 +#: ../Doc/library/dis.rst:631 msgid "" -"Resolves ``__aenter__`` and ``__aexit__`` from the object on top of the " -"stack. Pushes ``__aexit__`` and result of ``__aenter__()`` to the stack." +"Handles an exception raised during a :meth:`~generator.throw` or :meth:" +"`~generator.close` call through the current frame. If ``STACK[-1]`` is an " +"instance of :exc:`StopIteration`, pop three values from the stack and push " +"its ``value`` member. Otherwise, re-raise ``STACK[-1]``." +msgstr "" + +#: ../Doc/library/dis.rst:641 +#, fuzzy +msgid "" +"Resolves ``__aenter__`` and ``__aexit__`` from ``STACK[-1]``. Pushes " +"``__aexit__`` and result of ``__aenter__()`` to the stack::" msgstr "" "Resuelve ``__aenter__`` y ``__aexit__`` del objeto en la parte superior de " "la pila. Apila ``__aexit__`` y el resultado de ``__aenter__()`` a la pila." -#: ../Doc/library/dis.rst:569 +#: ../Doc/library/dis.rst:650 msgid "**Miscellaneous opcodes**" msgstr "**Opcodes misceláneos**" -#: ../Doc/library/dis.rst:573 -msgid "" -"Implements the expression statement for the interactive mode. TOS is " -"removed from the stack and printed. In non-interactive mode, an expression " -"statement is terminated with :opcode:`POP_TOP`." -msgstr "" -"Implementa la declaración de expresión para el modo interactivo. TOS se " -"elimina de la pila y se imprime. En modo no interactivo, una declaración de " -"expresión termina con :opcode:`POP_TOP`." - -#: ../Doc/library/dis.rst:580 -msgid "" -"Calls ``set.add(TOS1[-i], TOS)``. Used to implement set comprehensions." +#: ../Doc/library/dis.rst:659 +#, fuzzy +msgid "Used to implement set comprehensions." msgstr "" "Llama a ``set.add(TOS1[-i], TOS)``. Se utiliza para implementar " "comprensiones de conjuntos." -#: ../Doc/library/dis.rst:585 -msgid "" -"Calls ``list.append(TOS1[-i], TOS)``. Used to implement list comprehensions." +#: ../Doc/library/dis.rst:669 +#, fuzzy +msgid "Used to implement list comprehensions." msgstr "" "Llama a ``list.append(TOS1[-i], TOS)``. Se utiliza para implementar listas " "por comprensión." -#: ../Doc/library/dis.rst:590 -msgid "" -"Calls ``dict.__setitem__(TOS1[-i], TOS1, TOS)``. Used to implement dict " -"comprehensions." +#: ../Doc/library/dis.rst:680 +#, fuzzy +msgid "Used to implement dict comprehensions." msgstr "" -"Llama a ``dict.__setitem__(TOS1[-i], TOS1, TOS)``. Se utiliza para " -"implementar comprensiones de diccionarios." +"Llama a ``set.add(TOS1[-i], TOS)``. Se utiliza para implementar " +"comprensiones de conjuntos." -#: ../Doc/library/dis.rst:594 -msgid "Map value is TOS and map key is TOS1. Before, those were reversed." +#: ../Doc/library/dis.rst:683 +#, fuzzy +msgid "" +"Map value is ``STACK[-1]`` and map key is ``STACK[-2]``. Before, those were " +"reversed." msgstr "" "El valor del mapa es TOS y la clave del mapa es TOS1. Antes, esos fueron " "revertidos." -#: ../Doc/library/dis.rst:597 +#: ../Doc/library/dis.rst:687 msgid "" "For all of the :opcode:`SET_ADD`, :opcode:`LIST_APPEND` and :opcode:" "`MAP_ADD` instructions, while the added value or key/value pair is popped " @@ -807,15 +860,32 @@ msgstr "" "el objeto contenedor permanece en la pila para que quede disponible para " "futuras iteraciones del bucle." -#: ../Doc/library/dis.rst:605 -msgid "Returns with TOS to the caller of the function." +#: ../Doc/library/dis.rst:695 +#, fuzzy +msgid "Returns with ``STACK[-1]`` to the caller of the function." +msgstr "Retorna con TOS a quien llama la función." + +#: ../Doc/library/dis.rst:700 +#, fuzzy +msgid "Returns with ``co_consts[consti]`` to the caller of the function." msgstr "Retorna con TOS a quien llama la función." -#: ../Doc/library/dis.rst:610 -msgid "Pops TOS and yields it from a :term:`generator`." +#: ../Doc/library/dis.rst:707 +#, fuzzy +msgid "Yields ``STACK.pop()`` from a :term:`generator`." msgstr "Desapila TOS y lo genera (*yield*) de un :term:`generator`." -#: ../Doc/library/dis.rst:616 +#: ../Doc/library/dis.rst:709 +msgid "oparg set to be the stack depth." +msgstr "" + +#: ../Doc/library/dis.rst:712 +msgid "" +"oparg set to be the exception block depth, for efficient closing of " +"generators." +msgstr "" + +#: ../Doc/library/dis.rst:718 msgid "" "Checks whether ``__annotations__`` is defined in ``locals()``, if not it is " "set up to an empty ``dict``. This opcode is only emitted if a class or " @@ -827,24 +897,14 @@ msgstr "" "si el cuerpo de una clase o módulo contiene :term:`anotaciones de variables " "` estáticamente." -#: ../Doc/library/dis.rst:626 -msgid "" -"Loads all symbols not starting with ``'_'`` directly from the module TOS to " -"the local namespace. The module is popped after loading all names. This " -"opcode implements ``from module import *``." -msgstr "" -"Carga todos los símbolos que no comienzan con ``'_'`` directamente desde el " -"TOS del módulo al espacio de nombres local. El módulo se desapila después de " -"cargar todos los nombres. Este opcode implementa ``from module import *``." - -#: ../Doc/library/dis.rst:633 +#: ../Doc/library/dis.rst:728 msgid "" "Pops a value from the stack, which is used to restore the exception state." msgstr "" "Extrae un valor de la pila, que se utiliza para restaurar el estado de " "excepción." -#: ../Doc/library/dis.rst:640 +#: ../Doc/library/dis.rst:735 msgid "" "Re-raises the exception currently on top of the stack. If oparg is non-zero, " "pops an additional value from the stack which is used to set ``f_lasti`` of " @@ -854,7 +914,7 @@ msgstr "" "superior de la pila. Si oparg no es cero, extrae un valor adicional de la " "pila que se usa para establecer ``f_lasti`` del marco actual." -#: ../Doc/library/dis.rst:651 +#: ../Doc/library/dis.rst:746 msgid "" "Pops a value from the stack. Pushes the current exception to the top of the " "stack. Pushes the value originally popped back to the stack. Used in " @@ -864,24 +924,27 @@ msgstr "" "de la pila. Agrega el valor que apareció originalmente de vuelta a la pila. " "Se utiliza en los controladores de excepciones." -#: ../Doc/library/dis.rst:659 +#: ../Doc/library/dis.rst:754 +#, fuzzy msgid "" -"Performs exception matching for ``except``. Tests whether the TOS1 is an " -"exception matching TOS. Pops TOS and pushes the boolean result of the test." +"Performs exception matching for ``except``. Tests whether the ``STACK[-2]`` " +"is an exception matching ``STACK[-1]``. Pops ``STACK[-1]`` and pushes the " +"boolean result of the test." msgstr "" "Realiza coincidencias de excepciones para ``except``. Comprueba si TOS1 es " "una excepción que coincide con TOS. Aparece TOS y agrega el resultado " "booleano de la prueba." -#: ../Doc/library/dis.rst:666 +#: ../Doc/library/dis.rst:762 +#, fuzzy msgid "" -"Performs exception matching for ``except*``. Applies ``split(TOS)`` on the " -"exception group representing TOS1." +"Performs exception matching for ``except*``. Applies ``split(STACK[-1])`` on " +"the exception group representing ``STACK[-2]``." msgstr "" "Realiza coincidencias de excepciones para ``except*``. Aplica ``split(TOS)`` " "en el grupo de excepción que representa TOS1." -#: ../Doc/library/dis.rst:669 +#: ../Doc/library/dis.rst:765 msgid "" "In case of a match, pops two items from the stack and pushes the non-" "matching subgroup (``None`` in case of full match) followed by the matching " @@ -893,21 +956,7 @@ msgstr "" "del subgrupo coincidente. Cuando no hay ninguna coincidencia, muestra un " "elemento (el tipo de coincidencia) y presiona ``None``." -#: ../Doc/library/dis.rst:678 -msgid "" -"Combines the raised and reraised exceptions list from TOS, into an exception " -"group to propagate from a try-except* block. Uses the original exception " -"group from TOS1 to reconstruct the structure of reraised exceptions. Pops " -"two items from the stack and pushes the exception to reraise or ``None`` if " -"there isn't one." -msgstr "" -"Combina la lista de excepciones generadas y re-elevadas de TOS en un grupo " -"de excepciones para propagar desde un bloque try-except*. Utiliza el grupo " -"de excepción original de TOS1 para reconstruir la estructura de las " -"excepciones replanteadas. Saca dos elementos de la pila y agrega la " -"excepción a relanzar o ``None`` si no hay una." - -#: ../Doc/library/dis.rst:688 +#: ../Doc/library/dis.rst:774 msgid "" "Calls the function in position 4 on the stack with arguments (type, val, tb) " "representing the exception at the top of the stack. Used to implement the " @@ -919,7 +968,7 @@ msgstr "" "para implementar la llamada ``context_manager.__exit__(*exc_info())`` cuando " "se ha producido una excepción en una sentencia :keyword:`with`." -#: ../Doc/library/dis.rst:695 +#: ../Doc/library/dis.rst:781 msgid "" "The ``__exit__`` function is in position 4 of the stack rather than 7. " "Exception representation on the stack now consist of one, not three, items." @@ -928,7 +977,7 @@ msgstr "" "La representación de excepciones en la pila ahora consta de uno, no de tres, " "elementos." -#: ../Doc/library/dis.rst:702 +#: ../Doc/library/dis.rst:788 msgid "" "Pushes :exc:`AssertionError` onto the stack. Used by the :keyword:`assert` " "statement." @@ -936,15 +985,16 @@ msgstr "" "Inserta :exc:`AssertionError` en la pila. Utilizado por la declaración :" "keyword:`assert`." -#: ../Doc/library/dis.rst:710 +#: ../Doc/library/dis.rst:796 +#, fuzzy msgid "" -"Pushes :func:`builtins.__build_class__` onto the stack. It is later called " +"Pushes :func:`!builtins.__build_class__` onto the stack. It is later called " "to construct a class." msgstr "" "Agrega :func:`builtins.__build_class__` a la pila. Más tarde se llama para " "construir una clase." -#: ../Doc/library/dis.rst:716 +#: ../Doc/library/dis.rst:802 msgid "" "This opcode performs several operations before a with block starts. First, " "it loads :meth:`~object.__exit__` from the context manager and pushes it " @@ -958,29 +1008,31 @@ msgstr "" "use más tarde. Entonces, se llama :meth:`~object.__enter__`. Finalmente, el " "resultado de llamar al método ``__enter__()`` se agrega en la pila." -#: ../Doc/library/dis.rst:727 -msgid "Push ``len(TOS)`` onto the stack." -msgstr "Apila ``len(TOS)`` en la pila." +#: ../Doc/library/dis.rst:813 +msgid "Perform ``STACK.append(len(STACK[-1]))``." +msgstr "" -#: ../Doc/library/dis.rst:734 +#: ../Doc/library/dis.rst:820 +#, fuzzy msgid "" -"If TOS is an instance of :class:`collections.abc.Mapping` (or, more " -"technically: if it has the :const:`Py_TPFLAGS_MAPPING` flag set in its :c:" -"member:`~PyTypeObject.tp_flags`), push ``True`` onto the stack. Otherwise, " -"push ``False``." +"If ``STACK[-1]`` is an instance of :class:`collections.abc.Mapping` (or, " +"more technically: if it has the :c:macro:`Py_TPFLAGS_MAPPING` flag set in " +"its :c:member:`~PyTypeObject.tp_flags`), push ``True`` onto the stack. " +"Otherwise, push ``False``." msgstr "" "Si TOS es una instancia de :class:`collections.abc.Mapping` (o, más " "técnicamente, si tiene el indicador :const:`Py_TPFLAGS_MAPPING` establecido " "en su :c:member:`~PyTypeObject.tp_flags`), apila ``True`` en la pila. De lo " "contrario apila ``False``." -#: ../Doc/library/dis.rst:744 +#: ../Doc/library/dis.rst:830 +#, fuzzy msgid "" -"If TOS is an instance of :class:`collections.abc.Sequence` and is *not* an " -"instance of :class:`str`/:class:`bytes`/:class:`bytearray` (or, more " -"technically: if it has the :const:`Py_TPFLAGS_SEQUENCE` flag set in its :c:" -"member:`~PyTypeObject.tp_flags`), push ``True`` onto the stack. Otherwise, " -"push ``False``." +"If ``STACK[-1]`` is an instance of :class:`collections.abc.Sequence` and is " +"*not* an instance of :class:`str`/:class:`bytes`/:class:`bytearray` (or, " +"more technically: if it has the :c:macro:`Py_TPFLAGS_SEQUENCE` flag set in " +"its :c:member:`~PyTypeObject.tp_flags`), push ``True`` onto the stack. " +"Otherwise, push ``False``." msgstr "" "Si TOS es una instancia de :class:`collections.abc.Sequence` y *no* es una " "instancia de :class:`str`/:class:`bytes`/:class:`bytearray` (o, más " @@ -988,17 +1040,18 @@ msgstr "" "establecido en su :c:member:`~PyTypeObject.tp_flags`), apila ``True`` en la " "pila. De lo contrario apila ``False``." -#: ../Doc/library/dis.rst:754 +#: ../Doc/library/dis.rst:840 +#, fuzzy msgid "" -"TOS is a tuple of mapping keys, and TOS1 is the match subject. If TOS1 " -"contains all of the keys in TOS, push a :class:`tuple` containing the " -"corresponding values. Otherwise, push ``None``." +"``STACK[-1]`` is a tuple of mapping keys, and ``STACK[-2]`` is the match " +"subject. If ``STACK[-2]`` contains all of the keys in ``STACK[-1]``, push a :" +"class:`tuple` containing the corresponding values. Otherwise, push ``None``." msgstr "" "TOS es una tupla de claves de mapeo y TOS1 es el sujeto de coincidencia. Si " "TOS1 contiene todas las claves en TOS, agrega un :class:`tuple` que contenga " "los valores correspondientes. De lo contrario, agrega ``None``." -#: ../Doc/library/dis.rst:760 ../Doc/library/dis.rst:1305 +#: ../Doc/library/dis.rst:846 ../Doc/library/dis.rst:1467 msgid "" "Previously, this instruction also pushed a boolean value indicating success " "(``True``) or failure (``False``)." @@ -1006,111 +1059,151 @@ msgstr "" "Anteriormente, esta instrucción también generaba un valor booleano que " "indicaba éxito (``True``) o falla (``False``)." -#: ../Doc/library/dis.rst:767 +#: ../Doc/library/dis.rst:853 +#, fuzzy msgid "" -"Implements ``name = TOS``. *namei* is the index of *name* in the attribute :" -"attr:`co_names` of the code object. The compiler tries to use :opcode:" -"`STORE_FAST` or :opcode:`STORE_GLOBAL` if possible." +"Implements ``name = STACK.pop()``. *namei* is the index of *name* in the " +"attribute :attr:`!co_names` of the :ref:`code object `. The " +"compiler tries to use :opcode:`STORE_FAST` or :opcode:`STORE_GLOBAL` if " +"possible." msgstr "" "Implementa ``name = TOS``. *namei* es el índice de *name* en el atributo :" "attr:`co_names` del objeto de código. El compilador intenta usar :opcode:" "`STORE_FAST` o :opcode:`STORE_GLOBAL` si es posible." -#: ../Doc/library/dis.rst:774 +#: ../Doc/library/dis.rst:860 +#, fuzzy msgid "" -"Implements ``del name``, where *namei* is the index into :attr:`co_names` " -"attribute of the code object." +"Implements ``del name``, where *namei* is the index into :attr:`!co_names` " +"attribute of the :ref:`code object `." msgstr "" "Implementa ``del name``, donde *namei* es el índice en atributo :attr:" "`co_names` del objeto de código." -#: ../Doc/library/dis.rst:780 +#: ../Doc/library/dis.rst:866 +#, fuzzy msgid "" -"Unpacks TOS into *count* individual values, which are put onto the stack " -"right-to-left." +"Unpacks ``STACK[-1]`` into *count* individual values, which are put onto the " +"stack right-to-left. Require there to be exactly *count* values.::" msgstr "" "Descomprime TOS en *count* valores individuales, que se colocan en la pila " "de derecha a izquierda." -#: ../Doc/library/dis.rst:786 +#: ../Doc/library/dis.rst:875 +#, fuzzy msgid "" -"Implements assignment with a starred target: Unpacks an iterable in TOS into " -"individual values, where the total number of values can be smaller than the " -"number of items in the iterable: one of the new values will be a list of all " -"leftover items." +"Implements assignment with a starred target: Unpacks an iterable in " +"``STACK[-1]`` into individual values, where the total number of values can " +"be smaller than the number of items in the iterable: one of the new values " +"will be a list of all leftover items." msgstr "" "Implementa la asignación con un objetivo destacado: desempaqueta un iterable " "en TOS en valores individuales, donde el número total de valores puede ser " "menor que el número de elementos en el iterable: uno de los nuevos valores " "será una lista de todos los elementos sobrantes." -#: ../Doc/library/dis.rst:791 +#: ../Doc/library/dis.rst:880 +msgid "The number of values before and after the list value is limited to 255." +msgstr "" + +#: ../Doc/library/dis.rst:882 msgid "" -"The low byte of *counts* is the number of values before the list value, the " -"high byte of *counts* the number of values after it. The resulting values " -"are put onto the stack right-to-left." +"The number of values before the list value is encoded in the argument of the " +"opcode. The number of values after the list if any is encoded using an " +"``EXTENDED_ARG``. As a consequence, the argument can be seen as a two bytes " +"values where the low byte of *counts* is the number of values before the " +"list value, the high byte of *counts* the number of values after it." msgstr "" -"El byte bajo de *count* es el número de valores antes del valor de la lista, " -"el byte alto de *count* es el número de valores después de él. Los valores " -"resultantes se colocan en la pila de derecha a izquierda." -#: ../Doc/library/dis.rst:798 +#: ../Doc/library/dis.rst:888 msgid "" -"Implements ``TOS.name = TOS1``, where *namei* is the index of name in :attr:" -"`co_names`." +"The extracted values are put onto the stack right-to-left, i.e. ``a, *b, c = " +"d`` will be stored after execution as ``STACK.extend((a, b, c))``." msgstr "" -"Implementa ``TOS.name = TOS1``, donde *namei* es el índice del nombre en :" -"attr:`co_names`." -#: ../Doc/library/dis.rst:804 +#: ../Doc/library/dis.rst:900 +#, fuzzy msgid "" -"Implements ``del TOS.name``, using *namei* as index into :attr:`co_names`." +"where *namei* is the index of name in :attr:`!co_names` of the :ref:`code " +"object `." msgstr "" -"Implementa ``del TOS.name``, usando *namei* como índice en :attr:`co_names`." +"Implementa ``del name``, donde *namei* es el índice en atributo :attr:" +"`co_names` del objeto de código." -#: ../Doc/library/dis.rst:809 +#: ../Doc/library/dis.rst:910 +#, fuzzy +msgid "" +"where *namei* is the index of name into :attr:`!co_names` of the :ref:`code " +"object `." +msgstr "" +"Implementa ``del name``, donde *namei* es el índice en atributo :attr:" +"`co_names` del objeto de código." + +#: ../Doc/library/dis.rst:916 msgid "Works as :opcode:`STORE_NAME`, but stores the name as a global." msgstr "" "Funciona como :opcode:`STORE_NAME`, pero almacena el nombre como global." -#: ../Doc/library/dis.rst:814 +#: ../Doc/library/dis.rst:921 msgid "Works as :opcode:`DELETE_NAME`, but deletes a global name." msgstr "Funciona como :opcode:`DELETE_NAME`, pero elimina un nombre global." -#: ../Doc/library/dis.rst:819 +#: ../Doc/library/dis.rst:926 msgid "Pushes ``co_consts[consti]`` onto the stack." msgstr "Apila ``co_consts[consti]`` en la pila." -#: ../Doc/library/dis.rst:824 -msgid "Pushes the value associated with ``co_names[namei]`` onto the stack." +#: ../Doc/library/dis.rst:931 +#, fuzzy +msgid "" +"Pushes the value associated with ``co_names[namei]`` onto the stack. The " +"name is looked up within the locals, then the globals, then the builtins." msgstr "Apila el valor asociado con ``co_names [namei]`` en la pila." -#: ../Doc/library/dis.rst:829 +#: ../Doc/library/dis.rst:937 +msgid "" +"Pushes a reference to the locals dictionary onto the stack. This is used to " +"prepare namespace dictionaries for :opcode:`LOAD_FROM_DICT_OR_DEREF` and :" +"opcode:`LOAD_FROM_DICT_OR_GLOBALS`." +msgstr "" + +#: ../Doc/library/dis.rst:946 +msgid "" +"Pops a mapping off the stack and looks up the value for ``co_names[namei]``. " +"If the name is not found there, looks it up in the globals and then the " +"builtins, similar to :opcode:`LOAD_GLOBAL`. This is used for loading global " +"variables in :ref:`annotation scopes ` within class " +"bodies." +msgstr "" + +#: ../Doc/library/dis.rst:957 +#, fuzzy msgid "" "Creates a tuple consuming *count* items from the stack, and pushes the " -"resulting tuple onto the stack." +"resulting tuple onto the stack.::" msgstr "" "Crea una tupla que consume elementos *count* de la pila, y apila la tupla " "resultante a la pila." -#: ../Doc/library/dis.rst:835 +#: ../Doc/library/dis.rst:967 msgid "Works as :opcode:`BUILD_TUPLE`, but creates a list." msgstr "Funciona como :opcode:`BUILD_TUPLE`, pero crea una lista." -#: ../Doc/library/dis.rst:840 +#: ../Doc/library/dis.rst:972 msgid "Works as :opcode:`BUILD_TUPLE`, but creates a set." msgstr "Funciona como :opcode:`BUILD_TUPLE`, pero crea un conjunto." -#: ../Doc/library/dis.rst:845 +#: ../Doc/library/dis.rst:977 +#, fuzzy msgid "" "Pushes a new dictionary object onto the stack. Pops ``2 * count`` items so " -"that the dictionary holds *count* entries: ``{..., TOS3: TOS2, TOS1: TOS}``." +"that the dictionary holds *count* entries: ``{..., STACK[-4]: STACK[-3], " +"STACK[-2]: STACK[-1]}``." msgstr "" "Apila un nuevo objeto de diccionario en la pila. Desapila ``2 * count`` " "elementos para que el diccionario contenga *count* entradas: ``{..., TOS3: " "TOS2, TOS1: TOS}``." -#: ../Doc/library/dis.rst:849 +#: ../Doc/library/dis.rst:981 msgid "" "The dictionary is created from stack items instead of creating an empty " "dictionary pre-sized to hold *count* items." @@ -1118,18 +1211,19 @@ msgstr "" "El diccionario se crea a partir de elementos de la pila en lugar de crear un " "diccionario vacío dimensionado previamente para contener *count* elementos." -#: ../Doc/library/dis.rst:856 +#: ../Doc/library/dis.rst:988 +#, fuzzy msgid "" "The version of :opcode:`BUILD_MAP` specialized for constant keys. Pops the " "top element on the stack which contains a tuple of keys, then starting from " -"``TOS1``, pops *count* values to form values in the built dictionary." +"``STACK[-2]``, pops *count* values to form values in the built dictionary." msgstr "" "La versión de :opcode:`BUILD_MAP` especializada para claves constantes. " "Desapila el elemento superior en la pila que contiene una tupla de claves, " "luego, a partir de ``TOS1``, muestra los valores *count* para formar valores " "en el diccionario incorporado." -#: ../Doc/library/dis.rst:865 +#: ../Doc/library/dis.rst:997 msgid "" "Concatenates *count* strings from the stack and pushes the resulting string " "onto the stack." @@ -1137,36 +1231,79 @@ msgstr "" "Concatena *count* cadenas de caracteres de la pila y empuja la cadena de " "caracteres resultante en la pila." -#: ../Doc/library/dis.rst:873 -msgid "" -"Pops a list from the stack and pushes a tuple containing the same values." +#: ../Doc/library/dis.rst:1010 +msgid "Used to build lists." msgstr "" -"Saca una lista de la pila y empuja una tupla que contiene los mismos valores." -#: ../Doc/library/dis.rst:880 -msgid "Calls ``list.extend(TOS1[-i], TOS)``. Used to build lists." -msgstr "Llama a ``list.extend(TOS1[-i], TOS)``. Se utiliza para crear listas." - -#: ../Doc/library/dis.rst:887 -msgid "Calls ``set.update(TOS1[-i], TOS)``. Used to build sets." +#: ../Doc/library/dis.rst:1022 +msgid "Used to build sets." msgstr "" -"Llama a ``set.update(TOS1[-i], TOS)``. Se usa para construir decorados." -#: ../Doc/library/dis.rst:894 -msgid "Calls ``dict.update(TOS1[-i], TOS)``. Used to build dicts." +#: ../Doc/library/dis.rst:1034 +msgid "Used to build dicts." msgstr "" -"Llama a ``dict.update(TOS1[-i], TOS)``. Se usa para construir dictados." -#: ../Doc/library/dis.rst:901 +#: ../Doc/library/dis.rst:1041 msgid "Like :opcode:`DICT_UPDATE` but raises an exception for duplicate keys." msgstr "" "Como :opcode:`DICT_UPDATE` pero lanza una excepción para claves duplicadas." -#: ../Doc/library/dis.rst:908 -msgid "Replaces TOS with ``getattr(TOS, co_names[namei])``." -msgstr "Reemplaza TOS con ``getattr(TOS, co_names[namei])``." +#: ../Doc/library/dis.rst:1048 +msgid "" +"If the low bit of ``namei`` is not set, this replaces ``STACK[-1]`` with " +"``getattr(STACK[-1], co_names[namei>>1])``." +msgstr "" + +#: ../Doc/library/dis.rst:1051 +#, fuzzy +msgid "" +"If the low bit of ``namei`` is set, this will attempt to load a method named " +"``co_names[namei>>1]`` from the ``STACK[-1]`` object. ``STACK[-1]`` is " +"popped. This bytecode distinguishes two cases: if ``STACK[-1]`` has a method " +"with the correct name, the bytecode pushes the unbound method and " +"``STACK[-1]``. ``STACK[-1]`` will be used as the first argument (``self``) " +"by :opcode:`CALL` when calling the unbound method. Otherwise, ``NULL`` and " +"the object returned by the attribute lookup are pushed." +msgstr "" +"Carga un método denominado ``co_names[namei]`` desde el objeto TOS. TOS es " +"retirado. Este código de bytes distingue dos casos: si TOS tiene un método " +"con el nombre correcto, el código de bytes agrega el método independiente y " +"TOS. :opcode:`CALL` utilizará TOS como primer argumento (``self``) al llamar " +"al método independiente. De lo contrario, se agregan ``NULL`` y el objeto " +"devuelto por la búsqueda de atributos." + +#: ../Doc/library/dis.rst:1059 +#, fuzzy +msgid "" +"If the low bit of ``namei`` is set, then a ``NULL`` or ``self`` is pushed to " +"the stack before the attribute or unbound method respectively." +msgstr "" +"Si se establece el bit bajo de ``namei``, se agrega un ``NULL`` a la pila " +"antes de la variable global." + +#: ../Doc/library/dis.rst:1066 +msgid "" +"This opcode implements :func:`super` (e.g. ``super().method()`` and " +"``super().attr``). It works the same as :opcode:`LOAD_ATTR`, except that " +"``namei`` is shifted left by 2 bits instead of 1, and instead of expecting a " +"single receiver on the stack, it expects three objects (from top of stack " +"down): ``self`` (the first argument to the current method), ``cls`` (the " +"class within which the current method was defined), and the global ``super``." +msgstr "" -#: ../Doc/library/dis.rst:913 +#: ../Doc/library/dis.rst:1073 +msgid "" +"The low bit of ``namei`` signals to attempt a method load, as with :opcode:" +"`LOAD_ATTR`." +msgstr "" + +#: ../Doc/library/dis.rst:1076 +msgid "" +"The second-low bit of ``namei``, if set, means that this was a two-argument " +"call to :func:`super` (unset means zero-argument)." +msgstr "" + +#: ../Doc/library/dis.rst:1084 msgid "" "Performs a Boolean operation. The operation name can be found in " "``cmp_op[opname]``." @@ -1174,21 +1311,22 @@ msgstr "" "Realiza una operación booleana. El nombre de la operación se puede encontrar " "en ``cmp_op[opname]``." -#: ../Doc/library/dis.rst:919 +#: ../Doc/library/dis.rst:1090 msgid "Performs ``is`` comparison, or ``is not`` if ``invert`` is 1." msgstr "Realiza una comparación ``is`` o ``is not`` si ``invert`` es 1." -#: ../Doc/library/dis.rst:926 +#: ../Doc/library/dis.rst:1097 msgid "Performs ``in`` comparison, or ``not in`` if ``invert`` is 1." msgstr "Realiza una comparación ``in`` o ``not in`` si ``invert`` es 1." -#: ../Doc/library/dis.rst:933 +#: ../Doc/library/dis.rst:1104 +#, fuzzy msgid "" -"Imports the module ``co_names[namei]``. TOS and TOS1 are popped and provide " -"the *fromlist* and *level* arguments of :func:`__import__`. The module " -"object is pushed onto the stack. The current namespace is not affected: for " -"a proper import statement, a subsequent :opcode:`STORE_FAST` instruction " -"modifies the namespace." +"Imports the module ``co_names[namei]``. ``STACK[-1]`` and ``STACK[-2]`` are " +"popped and provide the *fromlist* and *level* arguments of :func:" +"`__import__`. The module object is pushed onto the stack. The current " +"namespace is not affected: for a proper import statement, a subsequent :" +"opcode:`STORE_FAST` instruction modifies the namespace." msgstr "" "Importa el módulo ``co_names[namei]``. TOS y TOS1 aparecen y proporcionan " "los argumentos *fromlist* y *level* de :func:`__import__`. El objeto del " @@ -1196,116 +1334,92 @@ msgstr "" "para una instrucción de importación adecuada, una instrucción posterior :" "opcode:`STORE_FAST` modifica el espacio de nombres." -#: ../Doc/library/dis.rst:942 +#: ../Doc/library/dis.rst:1112 +#, fuzzy msgid "" -"Loads the attribute ``co_names[namei]`` from the module found in TOS. The " -"resulting object is pushed onto the stack, to be subsequently stored by a :" -"opcode:`STORE_FAST` instruction." +"Loads the attribute ``co_names[namei]`` from the module found in " +"``STACK[-1]``. The resulting object is pushed onto the stack, to be " +"subsequently stored by a :opcode:`STORE_FAST` instruction." msgstr "" "Carga el atributo ``co_names[namei]`` del módulo que se encuentra en TOS. El " "objeto resultante se apila en la pila, para luego ser almacenado por la " "instrucción :opcode:`STORE_FAST`." -#: ../Doc/library/dis.rst:949 +#: ../Doc/library/dis.rst:1119 msgid "Increments bytecode counter by *delta*." msgstr "Incrementa el contador de bytecode en *delta*." -#: ../Doc/library/dis.rst:954 +#: ../Doc/library/dis.rst:1124 msgid "Decrements bytecode counter by *delta*. Checks for interrupts." msgstr "" "Decrementa el contador de bytecode en *delta*. Comprueba si hay " "interrupciones." -#: ../Doc/library/dis.rst:961 +#: ../Doc/library/dis.rst:1131 msgid "Decrements bytecode counter by *delta*. Does not check for interrupts." msgstr "" "Decrementa el contador de bytecode en *delta*. No busca interrupciones." -#: ../Doc/library/dis.rst:968 +#: ../Doc/library/dis.rst:1138 +#, fuzzy msgid "" -"If TOS is true, increments the bytecode counter by *delta*. TOS is popped." +"If ``STACK[-1]`` is true, increments the bytecode counter by *delta*. " +"``STACK[-1]`` is popped." msgstr "" "Si TOS es verdadero, incrementa el contador de bytecode en *delta*. TOS es " "retirado." -#: ../Doc/library/dis.rst:975 +#: ../Doc/library/dis.rst:1141 ../Doc/library/dis.rst:1154 msgid "" -"If TOS is true, decrements the bytecode counter by *delta*. TOS is popped." +"The oparg is now a relative delta rather than an absolute target. This " +"opcode is a pseudo-instruction, replaced in final bytecode by the directed " +"versions (forward/backward)." msgstr "" -"Si TOS es verdadero, decrementa el contador de bytecode en *delta*. TOS es " -"retirado." -#: ../Doc/library/dis.rst:982 -msgid "" -"If TOS is false, increments the bytecode counter by *delta*. TOS is popped." +#: ../Doc/library/dis.rst:1146 ../Doc/library/dis.rst:1159 +#: ../Doc/library/dis.rst:1172 ../Doc/library/dis.rst:1186 +msgid "This is no longer a pseudo-instruction." msgstr "" -"Si TOS es falso, incrementa el contador de bytecode en *delta*. TOS es " -"retirado." -#: ../Doc/library/dis.rst:989 +#: ../Doc/library/dis.rst:1151 +#, fuzzy msgid "" -"If TOS is false, decrements the bytecode counter by *delta*. TOS is popped." +"If ``STACK[-1]`` is false, increments the bytecode counter by *delta*. " +"``STACK[-1]`` is popped." msgstr "" -"Si TOS es falso, decrementa el contador de bytecode en *delta*. TOS es " +"Si TOS es falso, incrementa el contador de bytecode en *delta*. TOS es " "retirado." -#: ../Doc/library/dis.rst:996 +#: ../Doc/library/dis.rst:1164 +#, fuzzy msgid "" -"If TOS is not ``None``, increments the bytecode counter by *delta*. TOS is " -"popped." +"If ``STACK[-1]`` is not ``None``, increments the bytecode counter by " +"*delta*. ``STACK[-1]`` is popped." msgstr "" "Si TOS no es ``None``, incrementa el contador de bytecode en *delta*. TOS es " "retirado." -#: ../Doc/library/dis.rst:1003 +#: ../Doc/library/dis.rst:1167 ../Doc/library/dis.rst:1181 msgid "" -"If TOS is not ``None``, decrements the bytecode counter by *delta*. TOS is " -"popped." +"This opcode is a pseudo-instruction, replaced in final bytecode by the " +"directed versions (forward/backward)." msgstr "" -"Si TOS no es ``None``, decrementa el contador de bytecode en *delta*. TOS es " -"retirado." -#: ../Doc/library/dis.rst:1010 +#: ../Doc/library/dis.rst:1178 +#, fuzzy msgid "" -"If TOS is ``None``, increments the bytecode counter by *delta*. TOS is " -"popped." +"If ``STACK[-1]`` is ``None``, increments the bytecode counter by *delta*. " +"``STACK[-1]`` is popped." msgstr "" "Si TOS es ``None``, incrementa el contador de bytecode en *delta*. TOS es " "retirado." -#: ../Doc/library/dis.rst:1017 -msgid "" -"If TOS is ``None``, decrements the bytecode counter by *delta*. TOS is " -"popped." -msgstr "" -"Si TOS es ``None``, decrementa el contador de bytecode en *delta*. TOS es " -"retirado." - -#: ../Doc/library/dis.rst:1024 -msgid "" -"If TOS is true, increments the bytecode counter by *delta* and leaves TOS on " -"the stack. Otherwise (TOS is false), TOS is popped." -msgstr "" -"Si TOS es verdadero, incrementa el contador de bytecode en *delta* y deja " -"TOS en la pila. De lo contrario (TOS es falso), TOS es retirado." - -#: ../Doc/library/dis.rst:1029 ../Doc/library/dis.rst:1039 -msgid "The oparg is now a relative delta rather than an absolute target." -msgstr "El oparg es ahora un delta relativo en lugar de un objetivo absoluto." - -#: ../Doc/library/dis.rst:1034 +#: ../Doc/library/dis.rst:1191 +#, fuzzy msgid "" -"If TOS is false, increments the bytecode counter by *delta* and leaves TOS " -"on the stack. Otherwise (TOS is true), TOS is popped." -msgstr "" -"Si TOS es falso, incrementa el contador de bytecode en *delta* y deja TOS en " -"la pila. De lo contrario (TOS es verdadero), TOS es retirado." - -#: ../Doc/library/dis.rst:1045 -msgid "" -"TOS is an :term:`iterator`. Call its :meth:`~iterator.__next__` method. If " -"this yields a new value, push it on the stack (leaving the iterator below " -"it). If the iterator indicates it is exhausted, TOS is popped, and the byte " +"``STACK[-1]`` is an :term:`iterator`. Call its :meth:`~iterator.__next__` " +"method. If this yields a new value, push it on the stack (leaving the " +"iterator below it). If the iterator indicates it is exhausted then the byte " "code counter is incremented by *delta*." msgstr "" "TOS es un :term:`iterador`. Llama a su método :meth:`~iterator.__next__`. Si " @@ -1313,11 +1427,15 @@ msgstr "" "de él). Si el iterador indica que está agotado, se abre TOS y el contador de " "código de bytes se incrementa en *delta*." -#: ../Doc/library/dis.rst:1053 +#: ../Doc/library/dis.rst:1196 +msgid "Up until 3.11 the iterator was popped when it was exhausted." +msgstr "" + +#: ../Doc/library/dis.rst:1201 msgid "Loads the global named ``co_names[namei>>1]`` onto the stack." msgstr "Carga el ``co_names[namei>>1]`` global llamado en la pila." -#: ../Doc/library/dis.rst:1055 +#: ../Doc/library/dis.rst:1203 msgid "" "If the low bit of ``namei`` is set, then a ``NULL`` is pushed to the stack " "before the global variable." @@ -1325,28 +1443,51 @@ msgstr "" "Si se establece el bit bajo de ``namei``, se agrega un ``NULL`` a la pila " "antes de la variable global." -#: ../Doc/library/dis.rst:1061 +#: ../Doc/library/dis.rst:1209 msgid "" "Pushes a reference to the local ``co_varnames[var_num]`` onto the stack." msgstr "Apila una referencia al local ``co_varnames[var_num]`` sobre la pila." -#: ../Doc/library/dis.rst:1066 -msgid "Stores TOS into the local ``co_varnames[var_num]``." +#: ../Doc/library/dis.rst:1211 +msgid "" +"This opcode is now only used in situations where the local variable is " +"guaranteed to be initialized. It cannot raise :exc:`UnboundLocalError`." +msgstr "" + +#: ../Doc/library/dis.rst:1217 +#, fuzzy +msgid "" +"Pushes a reference to the local ``co_varnames[var_num]`` onto the stack, " +"raising an :exc:`UnboundLocalError` if the local variable has not been " +"initialized." +msgstr "Apila una referencia al local ``co_varnames[var_num]`` sobre la pila." + +#: ../Doc/library/dis.rst:1225 +msgid "" +"Pushes a reference to the local ``co_varnames[var_num]`` onto the stack (or " +"pushes ``NULL`` onto the stack if the local variable has not been " +"initialized) and sets ``co_varnames[var_num]`` to ``NULL``." +msgstr "" + +#: ../Doc/library/dis.rst:1233 +#, fuzzy +msgid "Stores ``STACK.pop()`` into the local ``co_varnames[var_num]``." msgstr "Almacena TOS en el local ``co_varnames[var_num]``." -#: ../Doc/library/dis.rst:1071 +#: ../Doc/library/dis.rst:1238 msgid "Deletes local ``co_varnames[var_num]``." msgstr "Elimina la ``co_varnames[var_num]`` local." -#: ../Doc/library/dis.rst:1076 +#: ../Doc/library/dis.rst:1243 +#, fuzzy msgid "" -"Creates a new cell in slot ``i``. If that slot is empty then that value is " -"stored into the new cell." +"Creates a new cell in slot ``i``. If that slot is nonempty then that value " +"is stored into the new cell." msgstr "" "Crea una nueva celda en la ranura ``i``. Si esa ranura está vacía, ese valor " "se almacena en la nueva celda." -#: ../Doc/library/dis.rst:1084 +#: ../Doc/library/dis.rst:1251 msgid "" "Pushes a reference to the cell contained in slot ``i`` of the \"fast " "locals\" storage. The name of the variable is ``co_fastlocalnames[i]``." @@ -1355,7 +1496,7 @@ msgstr "" "almacenamiento \"locales rápidos\". El nombre de la variable es " "``co_fastlocalnames[i]``." -#: ../Doc/library/dis.rst:1087 +#: ../Doc/library/dis.rst:1254 msgid "" "Note that ``LOAD_CLOSURE`` is effectively an alias for ``LOAD_FAST``. It " "exists to keep bytecode a little more readable." @@ -1363,13 +1504,12 @@ msgstr "" "Tenga en cuenta que ``LOAD_CLOSURE`` es efectivamente un alias para " "``LOAD_FAST``. Existe para mantener el bytecode un poco más legible." -#: ../Doc/library/dis.rst:1090 ../Doc/library/dis.rst:1099 -#: ../Doc/library/dis.rst:1111 ../Doc/library/dis.rst:1120 -#: ../Doc/library/dis.rst:1131 +#: ../Doc/library/dis.rst:1257 ../Doc/library/dis.rst:1266 +#: ../Doc/library/dis.rst:1288 ../Doc/library/dis.rst:1299 msgid "``i`` is no longer offset by the length of ``co_varnames``." msgstr "``i`` ya no se compensa con la longitud de ``co_varnames``." -#: ../Doc/library/dis.rst:1096 +#: ../Doc/library/dis.rst:1263 msgid "" "Loads the cell contained in slot ``i`` of the \"fast locals\" storage. " "Pushes a reference to the object the cell contains on the stack." @@ -1377,25 +1517,26 @@ msgstr "" "Carga la celda contenida en el slot ``i`` del almacenamiento \"fast " "locals\". Agrega una referencia al objeto que contiene la celda en la pila." -#: ../Doc/library/dis.rst:1105 +#: ../Doc/library/dis.rst:1272 msgid "" -"Much like :opcode:`LOAD_DEREF` but first checks the locals dictionary before " -"consulting the cell. This is used for loading free variables in class " -"bodies." +"Pops a mapping off the stack and looks up the name associated with slot " +"``i`` of the \"fast locals\" storage in this mapping. If the name is not " +"found there, loads it from the cell contained in slot ``i``, similar to :" +"opcode:`LOAD_DEREF`. This is used for loading free variables in class bodies " +"(which previously used :opcode:`!LOAD_CLASSDEREF`) and in :ref:`annotation " +"scopes ` within class bodies." msgstr "" -"Al igual que :opcode:`LOAD_DEREF` pero primero verifica el diccionario local " -"antes de consultar la celda. Esto se usa para cargar variables libres en los " -"cuerpos de clase." -#: ../Doc/library/dis.rst:1117 +#: ../Doc/library/dis.rst:1285 +#, fuzzy msgid "" -"Stores TOS into the cell contained in slot ``i`` of the \"fast locals\" " -"storage." +"Stores ``STACK.pop()`` into the cell contained in slot ``i`` of the \"fast " +"locals\" storage." msgstr "" "Almacena TOS en la celda contenida en la ranura ``i`` del almacenamiento " "\"locales rápidos\"." -#: ../Doc/library/dis.rst:1126 +#: ../Doc/library/dis.rst:1294 msgid "" "Empties the cell contained in slot ``i`` of the \"fast locals\" storage. " "Used by the :keyword:`del` statement." @@ -1403,7 +1544,7 @@ msgstr "" "Vacía la celda contenida en la ranura ``i`` del almacenamiento de \"locales " "rápidos\". Utilizado por la instrucción :keyword:`del`." -#: ../Doc/library/dis.rst:1137 +#: ../Doc/library/dis.rst:1305 msgid "" "Copies the ``n`` free variables from the closure into the frame. Removes the " "need for special code on the caller's side when calling closures." @@ -1411,7 +1552,7 @@ msgstr "" "Copia las variables libres ``n`` del cierre al marco. Elimina la necesidad " "de un código especial en el lado del que llama al llamar clausuras." -#: ../Doc/library/dis.rst:1146 +#: ../Doc/library/dis.rst:1314 msgid "" "Raises an exception using one of the 3 forms of the ``raise`` statement, " "depending on the value of *argc*:" @@ -1419,23 +1560,26 @@ msgstr "" "Provoca una excepción utilizando una de las 3 formas de la declaración " "``raise``, dependiendo del valor de *argc*:" -#: ../Doc/library/dis.rst:1149 +#: ../Doc/library/dis.rst:1317 msgid "0: ``raise`` (re-raise previous exception)" msgstr "0: ``raise`` (vuelve a lanzar la excepción anterior)" -#: ../Doc/library/dis.rst:1150 -msgid "1: ``raise TOS`` (raise exception instance or type at ``TOS``)" +#: ../Doc/library/dis.rst:1318 +#, fuzzy +msgid "" +"1: ``raise STACK[-1]`` (raise exception instance or type at ``STACK[-1]``)" msgstr "1: ``raise TOS`` (lanza instancia de excepción o un tipo en ``TOS``)" -#: ../Doc/library/dis.rst:1151 +#: ../Doc/library/dis.rst:1319 +#, fuzzy msgid "" -"2: ``raise TOS1 from TOS`` (raise exception instance or type at ``TOS1`` " -"with ``__cause__`` set to ``TOS``)" +"2: ``raise STACK[-2] from STACK[-1]`` (raise exception instance or type at " +"``STACK[-2]`` with ``__cause__`` set to ``STACK[-1]``)" msgstr "" "2: ``raise TOS1 desde TOS`` (lanza una instancia de excepción o tipo en " "``TOS1`` con ``__cause__`` establecida en ``TOS``)" -#: ../Doc/library/dis.rst:1157 +#: ../Doc/library/dis.rst:1325 msgid "" "Calls a callable object with the number of arguments specified by ``argc``, " "including the named arguments specified by the preceding :opcode:`KW_NAMES`, " @@ -1446,35 +1590,35 @@ msgstr "" "`KW_NAMES` anterior, si los hay. En la pila están (en orden ascendente), ya " "sea:" -#: ../Doc/library/dis.rst:1162 +#: ../Doc/library/dis.rst:1330 msgid "NULL" msgstr "NULL" -#: ../Doc/library/dis.rst:1163 ../Doc/library/dis.rst:1169 +#: ../Doc/library/dis.rst:1331 ../Doc/library/dis.rst:1337 msgid "The callable" msgstr "El llamable" -#: ../Doc/library/dis.rst:1164 +#: ../Doc/library/dis.rst:1332 msgid "The positional arguments" msgstr "Los argumentos posicionales" -#: ../Doc/library/dis.rst:1165 ../Doc/library/dis.rst:1172 +#: ../Doc/library/dis.rst:1333 ../Doc/library/dis.rst:1340 msgid "The named arguments" msgstr "Los argumentos nombrados" -#: ../Doc/library/dis.rst:1167 +#: ../Doc/library/dis.rst:1335 msgid "or:" msgstr "o:" -#: ../Doc/library/dis.rst:1170 +#: ../Doc/library/dis.rst:1338 msgid "``self``" msgstr "``self``" -#: ../Doc/library/dis.rst:1171 +#: ../Doc/library/dis.rst:1339 msgid "The remaining positional arguments" msgstr "Los argumentos posicionales restantes" -#: ../Doc/library/dis.rst:1174 +#: ../Doc/library/dis.rst:1342 msgid "" "``argc`` is the total of the positional and named arguments, excluding " "``self`` when a ``NULL`` is not present." @@ -1482,7 +1626,7 @@ msgstr "" "``argc`` es el total de los argumentos posicionales y con nombre, excluyendo " "``self`` cuando ``NULL`` no está presente." -#: ../Doc/library/dis.rst:1177 +#: ../Doc/library/dis.rst:1345 msgid "" "``CALL`` pops all arguments and the callable object off the stack, calls the " "callable object with those arguments, and pushes the return value returned " @@ -1492,7 +1636,7 @@ msgstr "" "al objeto invocable con esos argumentos y agrega el valor retornado por el " "objeto invocable." -#: ../Doc/library/dis.rst:1186 +#: ../Doc/library/dis.rst:1354 msgid "" "Calls a callable object with variable set of positional and keyword " "arguments. If the lowest bit of *flags* is set, the top of the stack " @@ -1513,33 +1657,7 @@ msgstr "" "invocable de la pila, llama al objeto invocable con esos argumentos y empuja " "el valor de retorno retornado por el objeto invocable." -#: ../Doc/library/dis.rst:1201 -msgid "" -"Loads a method named ``co_names[namei]`` from the TOS object. TOS is popped. " -"This bytecode distinguishes two cases: if TOS has a method with the correct " -"name, the bytecode pushes the unbound method and TOS. TOS will be used as " -"the first argument (``self``) by :opcode:`CALL` when calling the unbound " -"method. Otherwise, ``NULL`` and the object return by the attribute lookup " -"are pushed." -msgstr "" -"Carga un método denominado ``co_names[namei]`` desde el objeto TOS. TOS es " -"retirado. Este código de bytes distingue dos casos: si TOS tiene un método " -"con el nombre correcto, el código de bytes agrega el método independiente y " -"TOS. :opcode:`CALL` utilizará TOS como primer argumento (``self``) al llamar " -"al método independiente. De lo contrario, se agregan ``NULL`` y el objeto " -"devuelto por la búsqueda de atributos." - -#: ../Doc/library/dis.rst:1213 -msgid "" -"Prefixes :opcode:`CALL`. Logically this is a no op. It exists to enable " -"effective specialization of calls. ``argc`` is the number of arguments as " -"described in :opcode:`CALL`." -msgstr "" -"Prefijos :opcode:`CALL`. Lógicamente esto es un no op. Existe para permitir " -"una especialización efectiva de las llamadas. ``argc`` es el número de " -"argumentos como se describe en :opcode:`CALL`." - -#: ../Doc/library/dis.rst:1222 +#: ../Doc/library/dis.rst:1369 msgid "" "Pushes a ``NULL`` to the stack. Used in the call sequence to match the " "``NULL`` pushed by :opcode:`LOAD_METHOD` for non-method calls." @@ -1548,17 +1666,18 @@ msgstr "" "coincidir el ``NULL`` enviado por :opcode:`LOAD_METHOD` para llamadas que no " "son de método." -#: ../Doc/library/dis.rst:1231 +#: ../Doc/library/dis.rst:1378 +#, fuzzy msgid "" -"Prefixes :opcode:`PRECALL`. Stores a reference to ``co_consts[consti]`` into " -"an internal variable for use by :opcode:`CALL`. ``co_consts[consti]`` must " -"be a tuple of strings." +"Prefixes :opcode:`CALL`. Stores a reference to ``co_consts[consti]`` into an " +"internal variable for use by :opcode:`CALL`. ``co_consts[consti]`` must be a " +"tuple of strings." msgstr "" "Prefijos :opcode:`PRECALL`. Almacena una referencia a ``co_consts[consti]`` " "en una variable interna para uso de :opcode:`CALL`. ``co_consts[consti]`` " "debe ser una tupla de cadenas." -#: ../Doc/library/dis.rst:1240 +#: ../Doc/library/dis.rst:1387 msgid "" "Pushes a new function object on the stack. From bottom to top, the consumed " "stack must consist of values if the argument carries a specified flag value" @@ -1567,7 +1686,7 @@ msgstr "" "consumida debe constar de valores si el argumento lleva un valor de marca " "especificado" -#: ../Doc/library/dis.rst:1243 +#: ../Doc/library/dis.rst:1390 msgid "" "``0x01`` a tuple of default values for positional-only and positional-or-" "keyword parameters in positional order" @@ -1575,48 +1694,53 @@ msgstr "" "``0x01``, una tupla de valores predeterminados para solo parámetros " "posicionales y posicionales o de palabras clave en orden posicional" -#: ../Doc/library/dis.rst:1245 +#: ../Doc/library/dis.rst:1392 msgid "``0x02`` a dictionary of keyword-only parameters' default values" msgstr "" "``0x02`` un diccionario de valores predeterminados de solo palabras clave" -#: ../Doc/library/dis.rst:1246 +#: ../Doc/library/dis.rst:1393 msgid "``0x04`` a tuple of strings containing parameters' annotations" msgstr "" "``0x04`` una tupla de cadenas de caracteres que contiene anotaciones de " "parámetros" -#: ../Doc/library/dis.rst:1247 +#: ../Doc/library/dis.rst:1394 msgid "``0x08`` a tuple containing cells for free variables, making a closure" msgstr "" "``0x08`` una tupla que contiene celdas para variables libres, haciendo un " "cierre (*closure*)" -#: ../Doc/library/dis.rst:1248 -msgid "the code associated with the function (at TOS1)" +#: ../Doc/library/dis.rst:1395 +#, fuzzy +msgid "the code associated with the function (at ``STACK[-1]``)" msgstr "el código asociado con la función (en TOS1)" -#: ../Doc/library/dis.rst:1249 -msgid "the :term:`qualified name` of the function (at TOS)" -msgstr "el :term:`nombre calificado` de la función (en TOS)" - -#: ../Doc/library/dis.rst:1251 +#: ../Doc/library/dis.rst:1397 msgid "Flag value ``0x04`` is a tuple of strings instead of dictionary" msgstr "" "El valor indicador ``0x04`` es una tupla de cadena de caracteres en vez de " "un diccionario" -#: ../Doc/library/dis.rst:1258 +#: ../Doc/library/dis.rst:1400 +msgid "Qualified name at ``STACK[-1]`` was removed." +msgstr "" + +#: ../Doc/library/dis.rst:1408 msgid "" "Pushes a slice object on the stack. *argc* must be 2 or 3. If it is 2, " -"``slice(TOS1, TOS)`` is pushed; if it is 3, ``slice(TOS2, TOS1, TOS)`` is " -"pushed. See the :func:`slice` built-in function for more information." +"implements::" +msgstr "" + +#: ../Doc/library/dis.rst:1414 +msgid "if it is 3, implements::" msgstr "" -"Apila un objeto de rebanada en la pila. *argc* debe ser 2 o 3. Si es 2, se " -"apila ``slice(TOS1, TOS)``; si es 3, se apila ``slice(TOS2, TOS1, TOS)``. " -"Consulte la función incorporada :func:`slice` para obtener más información." -#: ../Doc/library/dis.rst:1265 +#: ../Doc/library/dis.rst:1421 +msgid "See the :func:`slice` built-in function for more information." +msgstr "" + +#: ../Doc/library/dis.rst:1426 msgid "" "Prefixes any opcode which has an argument too big to fit into the default " "one byte. *ext* holds an additional byte which act as higher bits in the " @@ -1629,7 +1753,7 @@ msgstr "" "como máximo se permiten tres prefijos ``EXTENDED_ARG``, formando un " "argumento de dos bytes a cuatro bytes." -#: ../Doc/library/dis.rst:1273 +#: ../Doc/library/dis.rst:1434 msgid "" "Used for implementing formatted literal strings (f-strings). Pops an " "optional *fmt_spec* from the stack, then a required *value*. *flags* is " @@ -1639,18 +1763,18 @@ msgstr "" "caracteres f). Desapila un *fmt_spec* opcional de la pila, luego un *value* " "requerido. *flags* se interpreta de la siguiente manera:" -#: ../Doc/library/dis.rst:1277 +#: ../Doc/library/dis.rst:1438 msgid "``(flags & 0x03) == 0x00``: *value* is formatted as-is." msgstr "``(flags & 0x03) == 0x00``: *value* es formateado como está." -#: ../Doc/library/dis.rst:1278 +#: ../Doc/library/dis.rst:1439 msgid "" "``(flags & 0x03) == 0x01``: call :func:`str` on *value* before formatting it." msgstr "" "``(flags & 0x03) == 0x01``: llama :func:`str` sobre *value* antes de " "formatearlo." -#: ../Doc/library/dis.rst:1280 +#: ../Doc/library/dis.rst:1441 msgid "" "``(flags & 0x03) == 0x02``: call :func:`repr` on *value* before formatting " "it." @@ -1658,7 +1782,7 @@ msgstr "" "``(flags & 0x03) == 0x02``: llama :func:`repr` sobre *value* antes de " "formatearlo." -#: ../Doc/library/dis.rst:1282 +#: ../Doc/library/dis.rst:1443 msgid "" "``(flags & 0x03) == 0x03``: call :func:`ascii` on *value* before formatting " "it." @@ -1666,7 +1790,7 @@ msgstr "" "``(flags & 0x03) == 0x03``: llama :func:`ascii` sobre *value* antes de " "formatearlo." -#: ../Doc/library/dis.rst:1284 +#: ../Doc/library/dis.rst:1445 msgid "" "``(flags & 0x04) == 0x04``: pop *fmt_spec* from the stack and use it, else " "use an empty *fmt_spec*." @@ -1674,7 +1798,7 @@ msgstr "" "``(flags & 0x04) == 0x04``: desapila *fmt_spec* de la pila y lo usa, de lo " "contrario usa un *fmt_spec* vacío." -#: ../Doc/library/dis.rst:1287 +#: ../Doc/library/dis.rst:1448 msgid "" "Formatting is performed using :c:func:`PyObject_Format`. The result is " "pushed on the stack." @@ -1682,88 +1806,98 @@ msgstr "" "El formateo se realiza usando :c:func:`PyObject_Format`. El resultado se " "apila en la pila." -#: ../Doc/library/dis.rst:1295 +#: ../Doc/library/dis.rst:1456 +#, fuzzy msgid "" -"TOS is a tuple of keyword attribute names, TOS1 is the class being matched " -"against, and TOS2 is the match subject. *count* is the number of positional " -"sub-patterns." +"``STACK[-1]`` is a tuple of keyword attribute names, ``STACK[-2]`` is the " +"class being matched against, and ``STACK[-3]`` is the match subject. " +"*count* is the number of positional sub-patterns." msgstr "" "TOS es una tupla de nombres de atributos clave, TOS1 es la clase contra la " "cual se hace la coincidencia, y TOS2 es el sujeto de la coincidencia. " "*count* es el número de sub-patrones posicionales." -#: ../Doc/library/dis.rst:1299 +#: ../Doc/library/dis.rst:1460 +#, fuzzy msgid "" -"Pop TOS, TOS1, and TOS2. If TOS2 is an instance of TOS1 and has the " -"positional and keyword attributes required by *count* and TOS, push a tuple " -"of extracted attributes. Otherwise, push ``None``." +"Pop ``STACK[-1]``, ``STACK[-2]``, and ``STACK[-3]``. If ``STACK[-3]`` is an " +"instance of ``STACK[-2]`` and has the positional and keyword attributes " +"required by *count* and ``STACK[-1]``, push a tuple of extracted attributes. " +"Otherwise, push ``None``." msgstr "" "Retira TOS, TOS1 y TOS2. Si TOS2 es una instancia de TOS1 y tiene los " "atributos posicionales y de palabra clave requeridos por *count* y TOS, " "agrega una tupla de atributos extraídos. De lo contrario, agrega ``None``." -#: ../Doc/library/dis.rst:1312 +#: ../Doc/library/dis.rst:1474 msgid "A no-op. Performs internal tracing, debugging and optimization checks." msgstr "" "Un no-op. Realiza comprobaciones internas de seguimiento, depuración y " "optimización." -#: ../Doc/library/dis.rst:1314 +#: ../Doc/library/dis.rst:1476 msgid "The ``where`` operand marks where the ``RESUME`` occurs:" msgstr "El operando ``where`` marca dónde ocurre el ``RESUME``:" -#: ../Doc/library/dis.rst:1316 -msgid "``0`` The start of a function" -msgstr "``0`` El comienzo de una función" +#: ../Doc/library/dis.rst:1478 +msgid "" +"``0`` The start of a function, which is neither a generator, coroutine nor " +"an async generator" +msgstr "" -#: ../Doc/library/dis.rst:1317 +#: ../Doc/library/dis.rst:1480 msgid "``1`` After a ``yield`` expression" msgstr "``1`` Después de una expresión ``yield``" -#: ../Doc/library/dis.rst:1318 +#: ../Doc/library/dis.rst:1481 msgid "``2`` After a ``yield from`` expression" msgstr "``2`` Después de una expresión ``yield from``" -#: ../Doc/library/dis.rst:1319 +#: ../Doc/library/dis.rst:1482 msgid "``3`` After an ``await`` expression" msgstr "``3`` Después de una expresión ``await``" -#: ../Doc/library/dis.rst:1326 +#: ../Doc/library/dis.rst:1489 +#, fuzzy msgid "" "Create a generator, coroutine, or async generator from the current frame. " +"Used as first opcode of in code object for the above mentioned callables. " "Clear the current frame and return the newly created generator." msgstr "" "Crea un generador, corrutina o generador asíncrono a partir del marco " "actual. Borra el marco actual y retorna el generador recién creado." -#: ../Doc/library/dis.rst:1334 +#: ../Doc/library/dis.rst:1498 msgid "" -"Sends ``None`` to the sub-generator of this generator. Used in ``yield " +"Equivalent to ``STACK[-1] = STACK[-2].send(STACK[-1])``. Used in ``yield " "from`` and ``await`` statements." msgstr "" -"Envía ``None`` al subgenerador de este generador. Se utiliza en sentencias " -"``yield from`` y ``await``." -#: ../Doc/library/dis.rst:1342 +#: ../Doc/library/dis.rst:1501 msgid "" -"Wraps the value on top of the stack in an ``async_generator_wrapped_value``. " -"Used to yield in async generators." +"If the call raises :exc:`StopIteration`, pop both items, push the " +"exception's ``value`` attribute, and increment the bytecode counter by " +"*delta*." msgstr "" -"Envuelve el valor en la parte superior de la pila en un " -"``async_generator_wrapped_value``. Se utiliza para producir en generadores " -"asíncronos." -#: ../Doc/library/dis.rst:1350 +#: ../Doc/library/dis.rst:1510 +#, fuzzy msgid "" "This is not really an opcode. It identifies the dividing line between " -"opcodes which don't use their argument and those that do (``< " -"HAVE_ARGUMENT`` and ``>= HAVE_ARGUMENT``, respectively)." +"opcodes in the range [0,255] which don't use their argument and those that " +"do (``< HAVE_ARGUMENT`` and ``>= HAVE_ARGUMENT``, respectively)." msgstr "" "Esto no es realmente un opcode. Identifica la línea divisoria entre los " "opcode que no usan su argumento y los que lo hacen (``< HAVE_ARGUMENT`` y " "``>= HAVE_ARGUMENT``, respectivamente)." -#: ../Doc/library/dis.rst:1354 +#: ../Doc/library/dis.rst:1514 +msgid "" +"If your application uses pseudo instructions, use the :data:`hasarg` " +"collection instead." +msgstr "" + +#: ../Doc/library/dis.rst:1517 msgid "" "Now every instruction has an argument, but opcodes ``< HAVE_ARGUMENT`` " "ignore it. Before, only opcodes ``>= HAVE_ARGUMENT`` had an argument." @@ -1772,11 +1906,239 @@ msgstr "" "`` = " "HAVE_ARGUMENT`` tenían un argumento." -#: ../Doc/library/dis.rst:1362 +#: ../Doc/library/dis.rst:1521 +msgid "" +"Pseudo instructions were added to the :mod:`dis` module, and for them it is " +"not true that comparison with ``HAVE_ARGUMENT`` indicates whether they use " +"their arg." +msgstr "" + +#: ../Doc/library/dis.rst:1529 +msgid "" +"Calls an intrinsic function with one argument. Passes ``STACK[-1]`` as the " +"argument and sets ``STACK[-1]`` to the result. Used to implement " +"functionality that is necessary but not performance critical." +msgstr "" + +#: ../Doc/library/dis.rst:1533 ../Doc/library/dis.rst:1583 +msgid "The operand determines which intrinsic function is called:" +msgstr "" + +#: ../Doc/library/dis.rst:1536 ../Doc/library/dis.rst:1586 +msgid "Operand" +msgstr "" + +#: ../Doc/library/dis.rst:1536 ../Doc/library/dis.rst:1586 +msgid "Description" +msgstr "" + +#: ../Doc/library/dis.rst:1538 +msgid "``INTRINSIC_1_INVALID``" +msgstr "" + +#: ../Doc/library/dis.rst:1538 ../Doc/library/dis.rst:1588 +msgid "Not valid" +msgstr "" + +#: ../Doc/library/dis.rst:1540 +msgid "``INTRINSIC_PRINT``" +msgstr "" + +#: ../Doc/library/dis.rst:1540 +msgid "Prints the argument to standard out. Used in the REPL." +msgstr "" + +#: ../Doc/library/dis.rst:1543 +msgid "``INTRINSIC_IMPORT_STAR``" +msgstr "" + +#: ../Doc/library/dis.rst:1543 +msgid "Performs ``import *`` for the named module." +msgstr "" + +#: ../Doc/library/dis.rst:1546 +msgid "``INTRINSIC_STOPITERATION_ERROR``" +msgstr "" + +#: ../Doc/library/dis.rst:1546 +msgid "Extracts the return value from a ``StopIteration`` exception." +msgstr "" + +#: ../Doc/library/dis.rst:1549 +msgid "``INTRINSIC_ASYNC_GEN_WRAP``" +msgstr "" + +#: ../Doc/library/dis.rst:1549 +msgid "Wraps an aync generator value" +msgstr "" + +#: ../Doc/library/dis.rst:1551 +msgid "``INTRINSIC_UNARY_POSITIVE``" +msgstr "" + +#: ../Doc/library/dis.rst:1551 +msgid "Performs the unary ``+`` operation" +msgstr "" + +#: ../Doc/library/dis.rst:1554 +msgid "``INTRINSIC_LIST_TO_TUPLE``" +msgstr "" + +#: ../Doc/library/dis.rst:1554 +msgid "Converts a list to a tuple" +msgstr "" + +#: ../Doc/library/dis.rst:1556 +msgid "``INTRINSIC_TYPEVAR``" +msgstr "" + +#: ../Doc/library/dis.rst:1556 +msgid "Creates a :class:`typing.TypeVar`" +msgstr "" + +#: ../Doc/library/dis.rst:1558 +msgid "``INTRINSIC_PARAMSPEC``" +msgstr "" + +#: ../Doc/library/dis.rst:1558 +msgid "Creates a :class:`typing.ParamSpec`" +msgstr "" + +#: ../Doc/library/dis.rst:1561 +msgid "``INTRINSIC_TYPEVARTUPLE``" +msgstr "" + +#: ../Doc/library/dis.rst:1561 +msgid "Creates a :class:`typing.TypeVarTuple`" +msgstr "" + +#: ../Doc/library/dis.rst:1564 +msgid "``INTRINSIC_SUBSCRIPT_GENERIC``" +msgstr "" + +#: ../Doc/library/dis.rst:1564 +msgid "Returns :class:`typing.Generic` subscripted with the argument" +msgstr "" + +#: ../Doc/library/dis.rst:1567 +msgid "``INTRINSIC_TYPEALIAS``" +msgstr "" + +#: ../Doc/library/dis.rst:1567 +msgid "" +"Creates a :class:`typing.TypeAliasType`; used in the :keyword:`type` " +"statement. The argument is a tuple of the type alias's name, type " +"parameters, and value." +msgstr "" + +#: ../Doc/library/dis.rst:1579 +msgid "" +"Calls an intrinsic function with two arguments. Passes ``STACK[-2]``, " +"``STACK[-1]`` as the arguments and sets ``STACK[-1]`` to the result. Used to " +"implement functionality that is necessary but not performance critical." +msgstr "" + +#: ../Doc/library/dis.rst:1588 +msgid "``INTRINSIC_2_INVALID``" +msgstr "" + +#: ../Doc/library/dis.rst:1590 +msgid "``INTRINSIC_PREP_RERAISE_STAR``" +msgstr "" + +#: ../Doc/library/dis.rst:1590 +msgid "Calculates the :exc:`ExceptionGroup` to raise from a ``try-except*``." +msgstr "" + +#: ../Doc/library/dis.rst:1594 +msgid "``INTRINSIC_TYPEVAR_WITH_BOUND``" +msgstr "" + +#: ../Doc/library/dis.rst:1594 +msgid "Creates a :class:`typing.TypeVar` with a bound." +msgstr "" + +#: ../Doc/library/dis.rst:1597 +msgid "``INTRINSIC_TYPEVAR_WITH_CONSTRAINTS``" +msgstr "" + +#: ../Doc/library/dis.rst:1597 +msgid "Creates a :class:`typing.TypeVar` with constraints." +msgstr "" + +#: ../Doc/library/dis.rst:1601 +msgid "``INTRINSIC_SET_FUNCTION_TYPE_PARAMS``" +msgstr "" + +#: ../Doc/library/dis.rst:1601 +msgid "Sets the ``__type_params__`` attribute of a function." +msgstr "" + +#: ../Doc/library/dis.rst:1608 +#, fuzzy +msgid "**Pseudo-instructions**" +msgstr "**Instrucciones generales**" + +#: ../Doc/library/dis.rst:1610 +msgid "" +"These opcodes do not appear in Python bytecode. They are used by the " +"compiler but are replaced by real opcodes or removed before bytecode is " +"generated." +msgstr "" + +#: ../Doc/library/dis.rst:1615 +msgid "" +"Set up an exception handler for the following code block. If an exception " +"occurs, the value stack level is restored to its current state and control " +"is transferred to the exception handler at ``target``." +msgstr "" + +#: ../Doc/library/dis.rst:1622 +msgid "" +"Like ``SETUP_FINALLY``, but in case of an exception also pushes the last " +"instruction (``lasti``) to the stack so that ``RERAISE`` can restore it. If " +"an exception occurs, the value stack level and the last instruction on the " +"frame are restored to their current state, and control is transferred to the " +"exception handler at ``target``." +msgstr "" + +#: ../Doc/library/dis.rst:1631 +msgid "" +"Like ``SETUP_CLEANUP``, but in case of an exception one more item is popped " +"from the stack before control is transferred to the exception handler at " +"``target``." +msgstr "" + +#: ../Doc/library/dis.rst:1635 +msgid "" +"This variant is used in :keyword:`with` and :keyword:`async with` " +"constructs, which push the return value of the context manager's :meth:" +"`~object.__enter__` or :meth:`~object.__aenter__` to the stack." +msgstr "" + +#: ../Doc/library/dis.rst:1642 +msgid "" +"Marks the end of the code block associated with the last ``SETUP_FINALLY``, " +"``SETUP_CLEANUP`` or ``SETUP_WITH``." +msgstr "" + +#: ../Doc/library/dis.rst:1648 +msgid "" +"Undirected relative jump instructions which are replaced by their directed " +"(forward/backward) counterparts by the assembler." +msgstr "" + +#: ../Doc/library/dis.rst:1653 +msgid "" +"Optimized unbound method lookup. Emitted as a ``LOAD_ATTR`` opcode with a " +"flag set in the arg." +msgstr "" + +#: ../Doc/library/dis.rst:1660 msgid "Opcode collections" msgstr "Colecciones opcode" -#: ../Doc/library/dis.rst:1364 +#: ../Doc/library/dis.rst:1662 msgid "" "These collections are provided for automatic introspection of bytecode " "instructions:" @@ -1784,28 +2146,40 @@ msgstr "" "Estas colecciones se proporcionan para la introspección automática de " "instrucciones de bytecode:" -#: ../Doc/library/dis.rst:1369 +#: ../Doc/library/dis.rst:1665 +msgid "" +"The collections now contain pseudo instructions as well. These are opcodes " +"with values ``>= MIN_PSEUDO_OPCODE``." +msgstr "" + +#: ../Doc/library/dis.rst:1671 msgid "Sequence of operation names, indexable using the bytecode." msgstr "Secuencia de nombres de operaciones, indexable utilizando el bytecode." -#: ../Doc/library/dis.rst:1374 +#: ../Doc/library/dis.rst:1676 msgid "Dictionary mapping operation names to bytecodes." msgstr "Nombres de operaciones de mapeo de diccionario a bytecodes." -#: ../Doc/library/dis.rst:1379 +#: ../Doc/library/dis.rst:1681 msgid "Sequence of all compare operation names." msgstr "Secuencia de todos los nombres de operaciones de comparación." -#: ../Doc/library/dis.rst:1384 +#: ../Doc/library/dis.rst:1686 +#, fuzzy +msgid "Sequence of bytecodes that use their argument." +msgstr "Secuencia de bytecodes que acceden a una constante." + +#: ../Doc/library/dis.rst:1693 msgid "Sequence of bytecodes that access a constant." msgstr "Secuencia de bytecodes que acceden a una constante." -#: ../Doc/library/dis.rst:1389 +#: ../Doc/library/dis.rst:1698 +#, fuzzy msgid "" -"Sequence of bytecodes that access a free variable (note that 'free' in this " -"context refers to names in the current scope that are referenced by inner " -"scopes or names in outer scopes that are referenced from this scope. It " -"does *not* include references to global or builtin scopes)." +"Sequence of bytecodes that access a free variable. 'free' in this context " +"refers to names in the current scope that are referenced by inner scopes or " +"names in outer scopes that are referenced from this scope. It does *not* " +"include references to global or builtin scopes." msgstr "" "Secuencia de bytecodes que acceden a una variable libre (tenga en cuenta que " "'libre' en este contexto se refiere a nombres en el alcance actual a los que " @@ -1813,22 +2187,244 @@ msgstr "" "a los que se hace referencia desde este ámbito. **No** incluye referencias a " "ámbitos globales o integrados)." -#: ../Doc/library/dis.rst:1397 +#: ../Doc/library/dis.rst:1706 msgid "Sequence of bytecodes that access an attribute by name." msgstr "Secuencia de bytecodes que acceden a un atributo por nombre." -#: ../Doc/library/dis.rst:1402 +#: ../Doc/library/dis.rst:1711 msgid "Sequence of bytecodes that have a relative jump target." msgstr "Secuencia de bytecodes que tienen un objetivo de salto relativo." -#: ../Doc/library/dis.rst:1407 +#: ../Doc/library/dis.rst:1716 msgid "Sequence of bytecodes that have an absolute jump target." msgstr "Secuencia de bytecodes que tienen un objetivo de salto absoluto." -#: ../Doc/library/dis.rst:1412 +#: ../Doc/library/dis.rst:1721 msgid "Sequence of bytecodes that access a local variable." msgstr "Secuencia de códigos de bytes que acceden a una variable local." -#: ../Doc/library/dis.rst:1417 +#: ../Doc/library/dis.rst:1726 msgid "Sequence of bytecodes of Boolean operations." msgstr "Secuencia de bytecodes de operaciones booleanas." + +#: ../Doc/library/dis.rst:1730 +#, fuzzy +msgid "Sequence of bytecodes that set an exception handler." +msgstr "Secuencia de bytecodes que acceden a una constante." + +#: ../Doc/library/dis.rst:1406 +msgid "built-in function" +msgstr "" + +#: ../Doc/library/dis.rst:1406 +msgid "slice" +msgstr "" + +#~ msgid "Swap TOS with the item at position *i*." +#~ msgstr "Intercambie TOS con el artículo en la posición *i*." + +#~ msgid "Implements ``TOS = +TOS``." +#~ msgstr "Implementa ``TOS = +TOS``." + +#~ msgid "Implements ``TOS = TOS1[TOS]``." +#~ msgstr "Implementa ``TOS = TOS1[TOS]``." + +#~ msgid "Implements ``TOS1[TOS] = TOS2``." +#~ msgstr "Implementa ``TOS1[TOS] = TOS2``." + +#~ msgid "Implements ``del TOS1[TOS]``." +#~ msgstr "Implementa ``del TOS1[TOS]``." + +#~ msgid "" +#~ "Terminates an :keyword:`async for` loop. Handles an exception raised " +#~ "when awaiting a next item. If TOS is :exc:`StopAsyncIteration` pop 3 " +#~ "values from the stack and restore the exception state using the second of " +#~ "them. Otherwise re-raise the exception using the value from the stack. " +#~ "An exception handler block is removed from the block stack." +#~ msgstr "" +#~ "Termina un bucle :keyword:`async for`. Maneja una excepción generada " +#~ "cuando se espera un elemento siguiente. Si TOS es :exc:" +#~ "`StopAsyncIteration`, extraiga 3 valores de la pila y restaure el estado " +#~ "de excepción utilizando el segundo de ellos. De lo contrario, vuelva a " +#~ "generar la excepción utilizando el valor de la pila. Un bloque del " +#~ "controlador de excepciones se elimina de la pila de bloques." + +#~ msgid "" +#~ "Implements the expression statement for the interactive mode. TOS is " +#~ "removed from the stack and printed. In non-interactive mode, an " +#~ "expression statement is terminated with :opcode:`POP_TOP`." +#~ msgstr "" +#~ "Implementa la declaración de expresión para el modo interactivo. TOS se " +#~ "elimina de la pila y se imprime. En modo no interactivo, una declaración " +#~ "de expresión termina con :opcode:`POP_TOP`." + +#~ msgid "" +#~ "Calls ``dict.__setitem__(TOS1[-i], TOS1, TOS)``. Used to implement dict " +#~ "comprehensions." +#~ msgstr "" +#~ "Llama a ``dict.__setitem__(TOS1[-i], TOS1, TOS)``. Se utiliza para " +#~ "implementar comprensiones de diccionarios." + +#~ msgid "" +#~ "Loads all symbols not starting with ``'_'`` directly from the module TOS " +#~ "to the local namespace. The module is popped after loading all names. " +#~ "This opcode implements ``from module import *``." +#~ msgstr "" +#~ "Carga todos los símbolos que no comienzan con ``'_'`` directamente desde " +#~ "el TOS del módulo al espacio de nombres local. El módulo se desapila " +#~ "después de cargar todos los nombres. Este opcode implementa ``from module " +#~ "import *``." + +#~ msgid "" +#~ "Combines the raised and reraised exceptions list from TOS, into an " +#~ "exception group to propagate from a try-except* block. Uses the original " +#~ "exception group from TOS1 to reconstruct the structure of reraised " +#~ "exceptions. Pops two items from the stack and pushes the exception to " +#~ "reraise or ``None`` if there isn't one." +#~ msgstr "" +#~ "Combina la lista de excepciones generadas y re-elevadas de TOS en un " +#~ "grupo de excepciones para propagar desde un bloque try-except*. Utiliza " +#~ "el grupo de excepción original de TOS1 para reconstruir la estructura de " +#~ "las excepciones replanteadas. Saca dos elementos de la pila y agrega la " +#~ "excepción a relanzar o ``None`` si no hay una." + +#~ msgid "Push ``len(TOS)`` onto the stack." +#~ msgstr "Apila ``len(TOS)`` en la pila." + +#~ msgid "" +#~ "The low byte of *counts* is the number of values before the list value, " +#~ "the high byte of *counts* the number of values after it. The resulting " +#~ "values are put onto the stack right-to-left." +#~ msgstr "" +#~ "El byte bajo de *count* es el número de valores antes del valor de la " +#~ "lista, el byte alto de *count* es el número de valores después de él. Los " +#~ "valores resultantes se colocan en la pila de derecha a izquierda." + +#~ msgid "" +#~ "Implements ``TOS.name = TOS1``, where *namei* is the index of name in :" +#~ "attr:`co_names`." +#~ msgstr "" +#~ "Implementa ``TOS.name = TOS1``, donde *namei* es el índice del nombre en :" +#~ "attr:`co_names`." + +#~ msgid "" +#~ "Implements ``del TOS.name``, using *namei* as index into :attr:`co_names`." +#~ msgstr "" +#~ "Implementa ``del TOS.name``, usando *namei* como índice en :attr:" +#~ "`co_names`." + +#~ msgid "" +#~ "Pops a list from the stack and pushes a tuple containing the same values." +#~ msgstr "" +#~ "Saca una lista de la pila y empuja una tupla que contiene los mismos " +#~ "valores." + +#~ msgid "Calls ``list.extend(TOS1[-i], TOS)``. Used to build lists." +#~ msgstr "" +#~ "Llama a ``list.extend(TOS1[-i], TOS)``. Se utiliza para crear listas." + +#~ msgid "Calls ``set.update(TOS1[-i], TOS)``. Used to build sets." +#~ msgstr "" +#~ "Llama a ``set.update(TOS1[-i], TOS)``. Se usa para construir decorados." + +#~ msgid "Calls ``dict.update(TOS1[-i], TOS)``. Used to build dicts." +#~ msgstr "" +#~ "Llama a ``dict.update(TOS1[-i], TOS)``. Se usa para construir dictados." + +#~ msgid "Replaces TOS with ``getattr(TOS, co_names[namei])``." +#~ msgstr "Reemplaza TOS con ``getattr(TOS, co_names[namei])``." + +#~ msgid "" +#~ "If TOS is true, decrements the bytecode counter by *delta*. TOS is " +#~ "popped." +#~ msgstr "" +#~ "Si TOS es verdadero, decrementa el contador de bytecode en *delta*. TOS " +#~ "es retirado." + +#~ msgid "" +#~ "If TOS is false, decrements the bytecode counter by *delta*. TOS is " +#~ "popped." +#~ msgstr "" +#~ "Si TOS es falso, decrementa el contador de bytecode en *delta*. TOS es " +#~ "retirado." + +#~ msgid "" +#~ "If TOS is not ``None``, decrements the bytecode counter by *delta*. TOS " +#~ "is popped." +#~ msgstr "" +#~ "Si TOS no es ``None``, decrementa el contador de bytecode en *delta*. TOS " +#~ "es retirado." + +#~ msgid "" +#~ "If TOS is ``None``, decrements the bytecode counter by *delta*. TOS is " +#~ "popped." +#~ msgstr "" +#~ "Si TOS es ``None``, decrementa el contador de bytecode en *delta*. TOS es " +#~ "retirado." + +#~ msgid "" +#~ "If TOS is true, increments the bytecode counter by *delta* and leaves TOS " +#~ "on the stack. Otherwise (TOS is false), TOS is popped." +#~ msgstr "" +#~ "Si TOS es verdadero, incrementa el contador de bytecode en *delta* y deja " +#~ "TOS en la pila. De lo contrario (TOS es falso), TOS es retirado." + +#~ msgid "The oparg is now a relative delta rather than an absolute target." +#~ msgstr "" +#~ "El oparg es ahora un delta relativo en lugar de un objetivo absoluto." + +#~ msgid "" +#~ "If TOS is false, increments the bytecode counter by *delta* and leaves " +#~ "TOS on the stack. Otherwise (TOS is true), TOS is popped." +#~ msgstr "" +#~ "Si TOS es falso, incrementa el contador de bytecode en *delta* y deja TOS " +#~ "en la pila. De lo contrario (TOS es verdadero), TOS es retirado." + +#~ msgid "" +#~ "Much like :opcode:`LOAD_DEREF` but first checks the locals dictionary " +#~ "before consulting the cell. This is used for loading free variables in " +#~ "class bodies." +#~ msgstr "" +#~ "Al igual que :opcode:`LOAD_DEREF` pero primero verifica el diccionario " +#~ "local antes de consultar la celda. Esto se usa para cargar variables " +#~ "libres en los cuerpos de clase." + +#~ msgid "" +#~ "Prefixes :opcode:`CALL`. Logically this is a no op. It exists to enable " +#~ "effective specialization of calls. ``argc`` is the number of arguments as " +#~ "described in :opcode:`CALL`." +#~ msgstr "" +#~ "Prefijos :opcode:`CALL`. Lógicamente esto es un no op. Existe para " +#~ "permitir una especialización efectiva de las llamadas. ``argc`` es el " +#~ "número de argumentos como se describe en :opcode:`CALL`." + +#~ msgid "the :term:`qualified name` of the function (at TOS)" +#~ msgstr "el :term:`nombre calificado` de la función (en TOS)" + +#~ msgid "" +#~ "Pushes a slice object on the stack. *argc* must be 2 or 3. If it is 2, " +#~ "``slice(TOS1, TOS)`` is pushed; if it is 3, ``slice(TOS2, TOS1, TOS)`` is " +#~ "pushed. See the :func:`slice` built-in function for more information." +#~ msgstr "" +#~ "Apila un objeto de rebanada en la pila. *argc* debe ser 2 o 3. Si es 2, " +#~ "se apila ``slice(TOS1, TOS)``; si es 3, se apila ``slice(TOS2, TOS1, " +#~ "TOS)``. Consulte la función incorporada :func:`slice` para obtener más " +#~ "información." + +#~ msgid "``0`` The start of a function" +#~ msgstr "``0`` El comienzo de una función" + +#~ msgid "" +#~ "Sends ``None`` to the sub-generator of this generator. Used in ``yield " +#~ "from`` and ``await`` statements." +#~ msgstr "" +#~ "Envía ``None`` al subgenerador de este generador. Se utiliza en " +#~ "sentencias ``yield from`` y ``await``." + +#~ msgid "" +#~ "Wraps the value on top of the stack in an " +#~ "``async_generator_wrapped_value``. Used to yield in async generators." +#~ msgstr "" +#~ "Envuelve el valor en la parte superior de la pila en un " +#~ "``async_generator_wrapped_value``. Se utiliza para producir en " +#~ "generadores asíncronos." diff --git a/library/doctest.po b/library/doctest.po index e59dd74167..1b6d42f911 100644 --- a/library/doctest.po +++ b/library/doctest.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-30 17:13-0300\n" "Last-Translator: Alfonso Areiza Guerra \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/doctest.rst:2 msgid ":mod:`doctest` --- Test interactive Python examples" @@ -435,7 +434,7 @@ msgstr "" "un docstring crudo, que preservará tus barras invertidas exactamente como " "las escribes::" -#: ../Doc/library/doctest.rst:357 +#: ../Doc/library/doctest.rst:358 msgid "" "Otherwise, the backslash will be interpreted as part of the string. For " "example, the ``\\n`` above would be interpreted as a newline character. " @@ -447,11 +446,11 @@ msgstr "" "de nueva línea. Alternativamente, puedes duplicar cada barra invertida en " "la versión de doctest (y no usar una cadena de caracteres cruda)::" -#: ../Doc/library/doctest.rst:366 +#: ../Doc/library/doctest.rst:368 msgid "The starting column doesn't matter::" msgstr "La columna inicial no importa::" -#: ../Doc/library/doctest.rst:373 +#: ../Doc/library/doctest.rst:375 msgid "" "and as many leading whitespace characters are stripped from the expected " "output as appeared in the initial ``'>>> '`` line that started the example." @@ -459,11 +458,11 @@ msgstr "" "y tantos espacios en blanco al principio se eliminan de la salida esperada " "como aparece en la línea ``'>>>'`` inicial que empezó el ejemplo." -#: ../Doc/library/doctest.rst:380 +#: ../Doc/library/doctest.rst:382 msgid "What's the Execution Context?" msgstr "¿Cuál es el contexto de ejecución?" -#: ../Doc/library/doctest.rst:382 +#: ../Doc/library/doctest.rst:384 msgid "" "By default, each time :mod:`doctest` finds a docstring to test, it uses a " "*shallow copy* of :mod:`M`'s globals, so that running tests doesn't change " @@ -482,7 +481,7 @@ msgstr "" "en los docstrings siendo ejecutados. Los ejemplos no pueden ver nombres " "definidos en otros docstrings." -#: ../Doc/library/doctest.rst:390 +#: ../Doc/library/doctest.rst:392 msgid "" "You can force use of your own dict as the execution context by passing " "``globs=your_dict`` to :func:`testmod` or :func:`testfile` instead." @@ -491,11 +490,11 @@ msgstr "" "al pasar ``globs=your_dict`` a :func:`testmod` o :func:`testfile` en su " "lugar." -#: ../Doc/library/doctest.rst:397 +#: ../Doc/library/doctest.rst:399 msgid "What About Exceptions?" msgstr "¿Y las excepciones?" -#: ../Doc/library/doctest.rst:399 +#: ../Doc/library/doctest.rst:401 msgid "" "No problem, provided that the traceback is the only output produced by the " "example: just paste in the traceback. [#]_ Since tracebacks contain details " @@ -509,11 +508,11 @@ msgstr "" "exactas y números de línea), este es un caso donde doctest trabaja duro para " "ser flexible en lo que acepta." -#: ../Doc/library/doctest.rst:405 +#: ../Doc/library/doctest.rst:407 msgid "Simple example::" msgstr "Ejemplo simple::" -#: ../Doc/library/doctest.rst:412 +#: ../Doc/library/doctest.rst:414 msgid "" "That doctest succeeds if :exc:`ValueError` is raised, with the ``list." "remove(x): x not in list`` detail as shown." @@ -521,7 +520,7 @@ msgstr "" "El doctest tiene éxito si se lanza :exc:`ValueError`, con el detalle ``list." "remove(x): x not in list`` como se muestra." -#: ../Doc/library/doctest.rst:415 +#: ../Doc/library/doctest.rst:417 msgid "" "The expected output for an exception must start with a traceback header, " "which may be either of the following two lines, indented the same as the " @@ -531,7 +530,7 @@ msgstr "" "rastreo, que puede ser una de las siguientes dos líneas, con el mismo " "sangrado de la primera línea del ejemplo:" -#: ../Doc/library/doctest.rst:422 +#: ../Doc/library/doctest.rst:424 msgid "" "The traceback header is followed by an optional traceback stack, whose " "contents are ignored by doctest. The traceback stack is typically omitted, " @@ -541,7 +540,7 @@ msgstr "" "contenido es ignorado por doctest. La pila de rastreo es típicamente " "omitida, o copiada palabra por palabra de una sesión interactiva." -#: ../Doc/library/doctest.rst:426 +#: ../Doc/library/doctest.rst:428 msgid "" "The traceback stack is followed by the most interesting part: the line(s) " "containing the exception type and detail. This is usually the last line of " @@ -553,7 +552,7 @@ msgstr "" "última línea de un rastreo, pero se puede extender a través de múltiples " "líneas si la excepción tiene un detalle de varias líneas::" -#: ../Doc/library/doctest.rst:438 +#: ../Doc/library/doctest.rst:440 msgid "" "The last three lines (starting with :exc:`ValueError`) are compared against " "the exception's type and detail, and the rest are ignored." @@ -561,7 +560,7 @@ msgstr "" "Las últimas tres líneas (empezando con :exc:`ValueError`) son comparados con " "el tipo de excepción y detalle, y el resto es ignorado." -#: ../Doc/library/doctest.rst:441 +#: ../Doc/library/doctest.rst:443 msgid "" "Best practice is to omit the traceback stack, unless it adds significant " "documentation value to the example. So the last example is probably better " @@ -571,7 +570,7 @@ msgstr "" "documentación significante al ejemplo. Por lo que el último ejemplo es " "probablemente mejor como::" -#: ../Doc/library/doctest.rst:451 +#: ../Doc/library/doctest.rst:453 msgid "" "Note that tracebacks are treated very specially. In particular, in the " "rewritten example, the use of ``...`` is independent of doctest's :const:" @@ -585,11 +584,11 @@ msgstr "" "ejemplo, así como también pueden haber tres (o trescientas) comas o dígitos, " "o una transcripción sangrada de un *sketch* de Monty Python." -#: ../Doc/library/doctest.rst:457 +#: ../Doc/library/doctest.rst:459 msgid "Some details you should read once, but won't need to remember:" msgstr "Algunos detalles que debes leer una vez, pero no necesitarás recordar:" -#: ../Doc/library/doctest.rst:459 +#: ../Doc/library/doctest.rst:461 msgid "" "Doctest can't guess whether your expected output came from an exception " "traceback or from ordinary printing. So, e.g., an example that expects " @@ -605,7 +604,7 @@ msgstr "" "práctica, la salida ordinaria raramente comienza con una línea de cabecera " "de rastreo, por lo que esto no crea problemas reales." -#: ../Doc/library/doctest.rst:466 +#: ../Doc/library/doctest.rst:468 msgid "" "Each line of the traceback stack (if present) must be indented further than " "the first line of the example, *or* start with a non-alphanumeric character. " @@ -620,7 +619,7 @@ msgstr "" "detalle de la excepción. Por supuesto que esto es lo correcto para rastreos " "genuinos." -#: ../Doc/library/doctest.rst:472 +#: ../Doc/library/doctest.rst:474 msgid "" "When the :const:`IGNORE_EXCEPTION_DETAIL` doctest option is specified, " "everything following the leftmost colon and any module information in the " @@ -630,7 +629,7 @@ msgstr "" "todo lo que sigue a los dos puntos más a la izquierda y cualquier otra " "información del módulo en el nombre de la excepción se ignora." -#: ../Doc/library/doctest.rst:476 +#: ../Doc/library/doctest.rst:478 msgid "" "The interactive shell omits the traceback header line for some :exc:" "`SyntaxError`\\ s. But doctest uses the traceback header line to " @@ -645,7 +644,7 @@ msgstr "" "rastreo, necesitarás poner manualmente la línea de cabecera de rastreo en tu " "ejemplo de prueba." -#: ../Doc/library/doctest.rst:484 +#: ../Doc/library/doctest.rst:486 msgid "" "For some exceptions, Python displays the position of the error using ``^`` " "markers and tildes::" @@ -653,7 +652,7 @@ msgstr "" "En el caso de algunas excepciones Python señala la posición donde ocurrió el " "error usando un marcador ``^``::" -#: ../Doc/library/doctest.rst:493 +#: ../Doc/library/doctest.rst:495 msgid "" "Since the lines showing the position of the error come before the exception " "type and detail, they are not checked by doctest. For example, the " @@ -665,11 +664,11 @@ msgstr "" "test pasaría, a pesar de que pone el marcador ``^`` en la posición " "equivocada::" -#: ../Doc/library/doctest.rst:508 +#: ../Doc/library/doctest.rst:510 msgid "Option Flags" msgstr "Banderas de Opción" -#: ../Doc/library/doctest.rst:510 +#: ../Doc/library/doctest.rst:512 msgid "" "A number of option flags control various aspects of doctest's behavior. " "Symbolic names for the flags are supplied as module constants, which can be :" @@ -686,11 +685,11 @@ msgstr "" "pasar a la interfaz de la línea de comandos de doctest a través de la opción " "``-o``." -#: ../Doc/library/doctest.rst:516 +#: ../Doc/library/doctest.rst:518 msgid "The ``-o`` command line option." msgstr "La opción de la línea de comandos ``-o``." -#: ../Doc/library/doctest.rst:519 +#: ../Doc/library/doctest.rst:521 msgid "" "The first group of options define test semantics, controlling aspects of how " "doctest decides whether actual output matches an example's expected output:" @@ -699,7 +698,7 @@ msgstr "" "aspectos de cómo doctest decide si la salida de hecho concuerda con la " "salida esperada del ejemplo:" -#: ../Doc/library/doctest.rst:525 +#: ../Doc/library/doctest.rst:527 msgid "" "By default, if an expected output block contains just ``1``, an actual " "output block containing just ``1`` or just ``True`` is considered to be a " @@ -719,7 +718,7 @@ msgstr "" "pequeño enteros\" todavía trabajan en estos casos. Esta opción probablemente " "se vaya, pero no por muchos años." -#: ../Doc/library/doctest.rst:537 +#: ../Doc/library/doctest.rst:539 msgid "" "By default, if an expected output block contains a line containing only the " "string ````, then that line will match a blank line in the actual " @@ -734,7 +733,7 @@ msgstr "" "comunicar que una línea en blanco es esperada. Cuando se especifica :const:" "`DONT_ACCEPT_BLANKLINE`, esta substitución no se permite." -#: ../Doc/library/doctest.rst:546 +#: ../Doc/library/doctest.rst:548 msgid "" "When specified, all sequences of whitespace (blanks and newlines) are " "treated as equal. Any sequence of whitespace within the expected output " @@ -751,7 +750,7 @@ msgstr "" "especialmente útil cuando una línea de la salida esperada es muy larga, y " "quieres envolverla a través de múltiples líneas en tu código fuente." -#: ../Doc/library/doctest.rst:557 +#: ../Doc/library/doctest.rst:559 msgid "" "When specified, an ellipsis marker (``...``) in the expected output can " "match any substring in the actual output. This includes substrings that " @@ -767,7 +766,7 @@ msgstr "" "\"ups, coincidió demasiado\" que ``.*`` es propenso a hacer en expresiones " "regulares." -#: ../Doc/library/doctest.rst:566 +#: ../Doc/library/doctest.rst:568 msgid "" "When specified, doctests expecting exceptions pass so long as an exception " "of the expected type is raised, even if the details (message and fully " @@ -777,7 +776,7 @@ msgstr "" "que sea lanzada una excepción del tipo esperado, incluso si los detalles " "(mensaje y nombre completo de la excepción) no coinciden." -#: ../Doc/library/doctest.rst:570 +#: ../Doc/library/doctest.rst:572 msgid "" "For example, an example expecting ``ValueError: 42`` will pass if the actual " "exception raised is ``ValueError: 3*14``, but will fail if, say, a :exc:" @@ -793,7 +792,7 @@ msgstr "" "versiones de Python y bibliotecas/código en uso. Por lo tanto, las tres " "variaciones funcionarán con la bandera especificada:" -#: ../Doc/library/doctest.rst:592 +#: ../Doc/library/doctest.rst:594 msgid "" "Note that :const:`ELLIPSIS` can also be used to ignore the details of the " "exception message, but such a test may still fail based on whether the " @@ -803,7 +802,7 @@ msgstr "" "detalles del mensaje de la excepción, pero dicha prueba aún podría fallar si " "el nombre del modulo está presente o si hay coincidencias exactas." -#: ../Doc/library/doctest.rst:596 +#: ../Doc/library/doctest.rst:598 msgid "" ":const:`IGNORE_EXCEPTION_DETAIL` now also ignores any information relating " "to the module containing the exception under test." @@ -811,7 +810,7 @@ msgstr "" ":const:`IGNORE_EXCEPTION_DETAIL` también ignora cualquier información " "relacionada al módulo conteniendo la excepción bajo prueba." -#: ../Doc/library/doctest.rst:603 +#: ../Doc/library/doctest.rst:605 msgid "" "When specified, do not run the example at all. This can be useful in " "contexts where doctest examples serve as both documentation and test cases, " @@ -826,25 +825,25 @@ msgstr "" "puede ser aleatoria, o el ejemplo puede depender de recursos que no estarían " "disponibles para el controlador de pruebas." -#: ../Doc/library/doctest.rst:609 +#: ../Doc/library/doctest.rst:611 msgid "" "The SKIP flag can also be used for temporarily \"commenting out\" examples." msgstr "" "La bandera *SKIP* también se puede usar para temporalmente \"quitar\" " "ejemplos." -#: ../Doc/library/doctest.rst:614 +#: ../Doc/library/doctest.rst:616 msgid "A bitmask or'ing together all the comparison flags above." msgstr "" "Una máscara de bits o juntadas lógicamente todas las banderas de arriba." -#: ../Doc/library/doctest.rst:616 +#: ../Doc/library/doctest.rst:618 msgid "The second group of options controls how test failures are reported:" msgstr "" "El segundo grupo de opciones controla cómo las fallas de las pruebas son " "reportadas:" -#: ../Doc/library/doctest.rst:621 +#: ../Doc/library/doctest.rst:623 msgid "" "When specified, failures that involve multi-line expected and actual outputs " "are displayed using a unified diff." @@ -852,7 +851,7 @@ msgstr "" "Cuando se especifica, las fallas que involucran salidas multilínea esperadas " "y reales son mostradas usando una diferencia (*diff*) unificada." -#: ../Doc/library/doctest.rst:627 +#: ../Doc/library/doctest.rst:629 msgid "" "When specified, failures that involve multi-line expected and actual outputs " "will be displayed using a context diff." @@ -860,7 +859,7 @@ msgstr "" "Cuando se especifica, las fallas que involucran salidas multilínea esperadas " "y reales se mostrarán usando una diferencia (*diff*) contextual." -#: ../Doc/library/doctest.rst:633 +#: ../Doc/library/doctest.rst:635 msgid "" "When specified, differences are computed by ``difflib.Differ``, using the " "same algorithm as the popular :file:`ndiff.py` utility. This is the only " @@ -877,7 +876,7 @@ msgstr "" "con una marca de inserción marcando la posición de las columnas que no " "coinciden." -#: ../Doc/library/doctest.rst:642 +#: ../Doc/library/doctest.rst:644 msgid "" "When specified, display the first failing example in each doctest, but " "suppress output for all remaining examples. This will prevent doctest from " @@ -895,7 +894,7 @@ msgstr "" "`REPORT_ONLY_FIRST_FAILURE`, los ejemplos restantes aún se ejecutan, y aún " "cuentan para el número total de fallas reportadas, sólo se suprime la salida." -#: ../Doc/library/doctest.rst:653 +#: ../Doc/library/doctest.rst:655 msgid "" "When specified, exit after the first failing example and don't attempt to " "run the remaining examples. Thus, the number of failures reported will be at " @@ -908,7 +907,7 @@ msgstr "" "depuración, ya que los ejemplos después de la primera falla ni siquiera " "producirán salida de depuración." -#: ../Doc/library/doctest.rst:658 +#: ../Doc/library/doctest.rst:660 msgid "" "The doctest command line accepts the option ``-f`` as a shorthand for ``-o " "FAIL_FAST``." @@ -916,11 +915,11 @@ msgstr "" "La línea de comandos de doctest acepta la opción ``-f`` como un atajo para " "``-o FAIL_FAST``." -#: ../Doc/library/doctest.rst:666 +#: ../Doc/library/doctest.rst:668 msgid "A bitmask or'ing together all the reporting flags above." msgstr "Una máscara de bits o todas las banderas de reporte arriba combinadas." -#: ../Doc/library/doctest.rst:669 +#: ../Doc/library/doctest.rst:671 msgid "" "There is also a way to register new option flag names, though this isn't " "useful unless you intend to extend :mod:`doctest` internals via subclassing:" @@ -929,7 +928,7 @@ msgstr "" "aunque esto no es útil a menos que intentes extender :mod:`doctest` a través " "de herencia:" -#: ../Doc/library/doctest.rst:675 +#: ../Doc/library/doctest.rst:677 msgid "" "Create a new option flag with a given name, and return the new flag's " "integer value. :func:`register_optionflag` can be used when subclassing :" @@ -944,11 +943,11 @@ msgstr "" "`register_optionflag` siempre debe ser llamado usando la siguiente " "expresión::" -#: ../Doc/library/doctest.rst:691 +#: ../Doc/library/doctest.rst:693 msgid "Directives" msgstr "Directivas" -#: ../Doc/library/doctest.rst:693 +#: ../Doc/library/doctest.rst:695 msgid "" "Doctest directives may be used to modify the :ref:`option flags ` for an individual example. Doctest directives are special Python " @@ -959,7 +958,7 @@ msgstr "" "doctest son comentarios de Python especiales que siguen el código fuente de " "un ejemplo:" -#: ../Doc/library/doctest.rst:704 +#: ../Doc/library/doctest.rst:706 msgid "" "Whitespace is not allowed between the ``+`` or ``-`` and the directive " "option name. The directive option name can be any of the option flag names " @@ -970,7 +969,7 @@ msgstr "" "directiva puede ser cualquiera de los nombres de las banderas de opciones " "explicadas arriba." -#: ../Doc/library/doctest.rst:708 +#: ../Doc/library/doctest.rst:710 msgid "" "An example's doctest directives modify doctest's behavior for that single " "example. Use ``+`` to enable the named behavior, or ``-`` to disable it." @@ -979,11 +978,11 @@ msgstr "" "doctest para ese único ejemplo. Usa ``+`` para habilitar el comportamiento " "nombrado, o ``-`` para deshabilitarlo." -#: ../Doc/library/doctest.rst:711 +#: ../Doc/library/doctest.rst:713 msgid "For example, this test passes:" msgstr "Por ejemplo, esta prueba se ejecuta con normalidad:" -#: ../Doc/library/doctest.rst:720 +#: ../Doc/library/doctest.rst:722 msgid "" "Without the directive it would fail, both because the actual output doesn't " "have two blanks before the single-digit list elements, and because the " @@ -996,14 +995,14 @@ msgstr "" "prueba también pasa, y de la misma forma requiere de directivas para " "hacerlo::" -#: ../Doc/library/doctest.rst:731 +#: ../Doc/library/doctest.rst:733 msgid "" "Multiple directives can be used on a single physical line, separated by " "commas:" msgstr "" "Se pueden usar varias directivas en una sola línea, separadas por comas::" -#: ../Doc/library/doctest.rst:740 +#: ../Doc/library/doctest.rst:742 msgid "" "If multiple directive comments are used for a single example, then they are " "combined:" @@ -1011,7 +1010,7 @@ msgstr "" "Si las diferentes directivas se usan para un sólo ejemplo, entonces estas se " "combinarán::" -#: ../Doc/library/doctest.rst:750 +#: ../Doc/library/doctest.rst:752 msgid "" "As the previous example shows, you can add ``...`` lines to your example " "containing only directives. This can be useful when an example is too long " @@ -1022,7 +1021,7 @@ msgstr "" "es demasiado largo para que una directiva pueda caber cómodamente en la " "misma línea::" -#: ../Doc/library/doctest.rst:761 +#: ../Doc/library/doctest.rst:763 msgid "" "Note that since all options are disabled by default, and directives apply " "only to the example they appear in, enabling options (via ``+`` in a " @@ -1039,11 +1038,11 @@ msgstr "" "defecto diferentes. En tales casos, deshabilitar una opción a través de ``-" "`` en una directiva puede ser útil." -#: ../Doc/library/doctest.rst:771 +#: ../Doc/library/doctest.rst:773 msgid "Warnings" msgstr "Advertencias" -#: ../Doc/library/doctest.rst:773 +#: ../Doc/library/doctest.rst:775 msgid "" ":mod:`doctest` is serious about requiring exact matches in expected output. " "If even a single character doesn't match, the test fails. This will " @@ -1059,31 +1058,31 @@ msgstr "" "cuando se imprime un conjunto, Python no asegura que el elemento sea impreso " "en ningún orden particular, por lo que una prueba como: ::" -#: ../Doc/library/doctest.rst:782 +#: ../Doc/library/doctest.rst:784 msgid "is vulnerable! One workaround is to do ::" msgstr "¡es vulnerable! Una solución puede ser hacer::" -#: ../Doc/library/doctest.rst:787 +#: ../Doc/library/doctest.rst:789 msgid "instead. Another is to do ::" msgstr "en su lugar. Otra es hacer ::" -#: ../Doc/library/doctest.rst:793 +#: ../Doc/library/doctest.rst:795 msgid "There are others, but you get the idea." msgstr "Existen otros casos, pero ya captas la idea." -#: ../Doc/library/doctest.rst:795 +#: ../Doc/library/doctest.rst:797 msgid "Another bad idea is to print things that embed an object address, like" msgstr "" "Otra mala idea es imprimir elementos que tienen la dirección de un objeto, " "como por ejemplo" -#: ../Doc/library/doctest.rst:805 +#: ../Doc/library/doctest.rst:807 msgid "" "The :const:`ELLIPSIS` directive gives a nice approach for the last example:" msgstr "" "Con la directiva :const:`ELLIPSIS` podemos sacar ventaja del último ejemplo::" -#: ../Doc/library/doctest.rst:813 +#: ../Doc/library/doctest.rst:815 msgid "" "Floating-point numbers are also subject to small output variations across " "platforms, because Python defers to the platform C library for float " @@ -1094,7 +1093,7 @@ msgstr "" "de la plataforma para el formato de flotantes, y las librerías de C varían " "extensamente en calidad aquí. ::" -#: ../Doc/library/doctest.rst:824 +#: ../Doc/library/doctest.rst:826 msgid "" "Numbers of the form ``I/2.**J`` are safe across all platforms, and I often " "contrive doctest examples to produce numbers of that form::" @@ -1103,7 +1102,7 @@ msgstr "" "plataformas, y yo frecuentemente planeo ejemplos de doctest para producir " "números de esa forma::" -#: ../Doc/library/doctest.rst:830 +#: ../Doc/library/doctest.rst:832 msgid "" "Simple fractions are also easier for people to understand, and that makes " "for better documentation." @@ -1111,11 +1110,11 @@ msgstr "" "Las facciones simples también son más fáciles de entender para las personas, " "y eso conduce a una mejor documentación." -#: ../Doc/library/doctest.rst:837 +#: ../Doc/library/doctest.rst:839 msgid "Basic API" msgstr "API básica" -#: ../Doc/library/doctest.rst:839 +#: ../Doc/library/doctest.rst:841 msgid "" "The functions :func:`testmod` and :func:`testfile` provide a simple " "interface to doctest that should be sufficient for most basic uses. For a " @@ -1127,7 +1126,7 @@ msgstr "" "básicos. Para una introducción menos formal a estas funciones, véase las " "secciones :ref:`doctest-simple-testmod` y :ref:`doctest-simple-testfile`." -#: ../Doc/library/doctest.rst:847 +#: ../Doc/library/doctest.rst:849 msgid "" "All arguments except *filename* are optional, and should be specified in " "keyword form." @@ -1135,7 +1134,7 @@ msgstr "" "Todos los argumentos excepto *filename* son opcionales, y deben ser " "especificados en forma de palabras claves." -#: ../Doc/library/doctest.rst:850 +#: ../Doc/library/doctest.rst:852 msgid "" "Test examples in the file named *filename*. Return ``(failure_count, " "test_count)``." @@ -1143,7 +1142,7 @@ msgstr "" "Prueba los ejemplos en el archivo con nombre *filename*. Retorna " "``(failure_count, test_count)``." -#: ../Doc/library/doctest.rst:853 +#: ../Doc/library/doctest.rst:855 msgid "" "Optional argument *module_relative* specifies how the filename should be " "interpreted:" @@ -1151,7 +1150,7 @@ msgstr "" "El argumento opcional *module_relative* especifica cómo el nombre de archivo " "debe ser interpretado:" -#: ../Doc/library/doctest.rst:856 +#: ../Doc/library/doctest.rst:858 msgid "" "If *module_relative* is ``True`` (the default), then *filename* specifies an " "OS-independent module-relative path. By default, this path is relative to " @@ -1168,7 +1167,7 @@ msgstr "" "caracteres ``/`` para separar segmentos, y no puede ser una ruta absoluta " "(por ejemplo., no puede empezar con ``/``)." -#: ../Doc/library/doctest.rst:863 +#: ../Doc/library/doctest.rst:865 msgid "" "If *module_relative* is ``False``, then *filename* specifies an OS-specific " "path. The path may be absolute or relative; relative paths are resolved " @@ -1178,7 +1177,7 @@ msgstr "" "especifica del SO. La ruta puede ser absoluta o relativa; las rutas " "relativas son resueltas con respecto al directorio de trabajo actual." -#: ../Doc/library/doctest.rst:867 +#: ../Doc/library/doctest.rst:869 msgid "" "Optional argument *name* gives the name of the test; by default, or if " "``None``, ``os.path.basename(filename)`` is used." @@ -1186,7 +1185,7 @@ msgstr "" "El argumento opcional *name* proporciona el nombre de la prueba; por " "defecto, o si es ``None``, se usa ``os.path.basename(filename)``." -#: ../Doc/library/doctest.rst:870 +#: ../Doc/library/doctest.rst:872 msgid "" "Optional argument *package* is a Python package or the name of a Python " "package whose directory should be used as the base directory for a module-" @@ -1201,7 +1200,7 @@ msgstr "" "directorio base para los nombres de archivos relativos al módulo. Es un " "error especificar *package* si *module_relative* es ``False``." -#: ../Doc/library/doctest.rst:876 +#: ../Doc/library/doctest.rst:878 msgid "" "Optional argument *globs* gives a dict to be used as the globals when " "executing examples. A new shallow copy of this dict is created for the " @@ -1214,7 +1213,7 @@ msgstr "" "empiezan con una pizarra en blanco. Por defecto, o si es ``None``, se usa un " "nuevo diccionario vacío." -#: ../Doc/library/doctest.rst:881 +#: ../Doc/library/doctest.rst:883 msgid "" "Optional argument *extraglobs* gives a dict merged into the globals used to " "execute examples. This works like :meth:`dict.update`: if *globs* and " @@ -1237,7 +1236,7 @@ msgstr "" "pasar un diccionario de *extraglobs* mapeando el nombre genérico a la clase " "heredada para ser probada." -#: ../Doc/library/doctest.rst:890 +#: ../Doc/library/doctest.rst:892 msgid "" "Optional argument *verbose* prints lots of stuff if true, and prints only " "failures if false; by default, or if ``None``, it's true if and only if ``'-" @@ -1247,7 +1246,7 @@ msgstr "" "e imprime sólo las fallas si es falso; por defecto, o si es ``None``, es " "verdadero si y sólo si ``'-v'`` está en ``sys.argv``." -#: ../Doc/library/doctest.rst:894 +#: ../Doc/library/doctest.rst:896 msgid "" "Optional argument *report* prints a summary at the end when true, else " "prints nothing at the end. In verbose mode, the summary is detailed, else " @@ -1258,7 +1257,7 @@ msgstr "" "resumen es detallado; si no, el resumen es muy corto (de hecho, vacío si " "todos las pruebas pasan)." -#: ../Doc/library/doctest.rst:898 +#: ../Doc/library/doctest.rst:900 msgid "" "Optional argument *optionflags* (default value 0) takes the :ref:`bitwise OR " "` of option flags. See section :ref:`doctest-options`." @@ -1267,7 +1266,7 @@ msgstr "" "de opciones :ref:`juntadas lógicamente por un OR `. Véase la " "sección :ref:`doctest-options`." -#: ../Doc/library/doctest.rst:902 +#: ../Doc/library/doctest.rst:904 msgid "" "Optional argument *raise_on_error* defaults to false. If true, an exception " "is raised upon the first failure or unexpected exception in an example. " @@ -1280,7 +1279,7 @@ msgstr "" "análisis a posteriori. El comportamiento por defecto es continuar corriendo " "los ejemplos." -#: ../Doc/library/doctest.rst:907 ../Doc/library/doctest.rst:1047 +#: ../Doc/library/doctest.rst:909 ../Doc/library/doctest.rst:1049 msgid "" "Optional argument *parser* specifies a :class:`DocTestParser` (or subclass) " "that should be used to extract tests from the files. It defaults to a " @@ -1291,7 +1290,7 @@ msgstr "" "valor por defecto es un analizador sintáctico normal (i.e., " "``DocTestParser()``)." -#: ../Doc/library/doctest.rst:911 ../Doc/library/doctest.rst:1051 +#: ../Doc/library/doctest.rst:913 ../Doc/library/doctest.rst:1053 msgid "" "Optional argument *encoding* specifies an encoding that should be used to " "convert the file to unicode." @@ -1299,7 +1298,7 @@ msgstr "" "El argumento opcional *encoding* especifica una codificación que debe ser " "usada para convertir el archivo a *unicode*." -#: ../Doc/library/doctest.rst:917 +#: ../Doc/library/doctest.rst:919 msgid "" "All arguments are optional, and all except for *m* should be specified in " "keyword form." @@ -1307,7 +1306,7 @@ msgstr "" "Todos los argumentos son opcionales, y todos excepto por *m* deben ser " "especificados en forma de palabras claves." -#: ../Doc/library/doctest.rst:920 +#: ../Doc/library/doctest.rst:922 msgid "" "Test examples in docstrings in functions and classes reachable from module " "*m* (or module :mod:`__main__` if *m* is not supplied or is ``None``), " @@ -1317,7 +1316,7 @@ msgstr "" "desde el módulo *m* (o desde el módulo :mod:`__main__` si *m* no es " "proporcionado o es ``None``), empezando con ``m.__doc__``." -#: ../Doc/library/doctest.rst:924 +#: ../Doc/library/doctest.rst:926 msgid "" "Also test examples reachable from dict ``m.__test__``, if it exists and is " "not ``None``. ``m.__test__`` maps names (strings) to functions, classes and " @@ -1330,18 +1329,18 @@ msgstr "" "buscan los ejemplos de las funciones y clases; se buscan las cadenas de " "caracteres directamente como si fueran docstrings." -#: ../Doc/library/doctest.rst:929 +#: ../Doc/library/doctest.rst:931 msgid "" "Only docstrings attached to objects belonging to module *m* are searched." msgstr "" "Sólo se buscan los docstrings anexados a los objetos pertenecientes al " "módulo *m*." -#: ../Doc/library/doctest.rst:931 +#: ../Doc/library/doctest.rst:933 msgid "Return ``(failure_count, test_count)``." msgstr "Retorna ``(failure_count, test_count)``." -#: ../Doc/library/doctest.rst:933 +#: ../Doc/library/doctest.rst:935 msgid "" "Optional argument *name* gives the name of the module; by default, or if " "``None``, ``m.__name__`` is used." @@ -1349,7 +1348,7 @@ msgstr "" "El argumento opcional *name* proporciona el nombre del módulo; por defecto, " "o si es ``None``, se usa ``m.__name__``." -#: ../Doc/library/doctest.rst:936 +#: ../Doc/library/doctest.rst:938 msgid "" "Optional argument *exclude_empty* defaults to false. If true, objects for " "which no doctests are found are excluded from consideration. The default is " @@ -1366,7 +1365,7 @@ msgstr "" "argumento *exclude_empty* para el más nuevo constructor :class:" "`DocTestFinder` es por defecto verdadero." -#: ../Doc/library/doctest.rst:943 +#: ../Doc/library/doctest.rst:945 msgid "" "Optional arguments *extraglobs*, *verbose*, *report*, *optionflags*, " "*raise_on_error*, and *globs* are the same as for function :func:`testfile` " @@ -1376,7 +1375,7 @@ msgstr "" "*raise_on_error*, y *globs* son los mismos en cuanto a la función :func:" "`testfile` arriba, excepto que *globs* es por defecto ``m.__dict__``." -#: ../Doc/library/doctest.rst:950 +#: ../Doc/library/doctest.rst:952 msgid "" "Test examples associated with object *f*; for example, *f* may be a string, " "a module, a function, or a class object." @@ -1384,7 +1383,7 @@ msgstr "" "Prueba los ejemplos asociados con el objeto *f*; por ejemplo, *f* puede ser " "una cadena de caracteres, un módulo, una función, o un objeto clase." -#: ../Doc/library/doctest.rst:953 +#: ../Doc/library/doctest.rst:955 msgid "" "A shallow copy of dictionary argument *globs* is used for the execution " "context." @@ -1392,7 +1391,7 @@ msgstr "" "Una copia superficial del diccionario del argumento *globs* se usa para la " "ejecución del contexto." -#: ../Doc/library/doctest.rst:955 +#: ../Doc/library/doctest.rst:957 msgid "" "Optional argument *name* is used in failure messages, and defaults to " "``\"NoName\"``." @@ -1400,7 +1399,7 @@ msgstr "" "Se usa el argumento opcional *name* en mensajes de fallos, y por defecto es " "``\"NoName\"``." -#: ../Doc/library/doctest.rst:958 +#: ../Doc/library/doctest.rst:960 msgid "" "If optional argument *verbose* is true, output is generated even if there " "are no failures. By default, output is generated only in case of an example " @@ -1410,7 +1409,7 @@ msgstr "" "si no hay fallas. Por defecto, la salida se genera sólo en caso de la falla " "de un ejemplo." -#: ../Doc/library/doctest.rst:961 +#: ../Doc/library/doctest.rst:963 msgid "" "Optional argument *compileflags* gives the set of flags that should be used " "by the Python compiler when running the examples. By default, or if " @@ -1422,18 +1421,18 @@ msgstr "" "defecto, o si es ``None``, las banderas se deducen correspondiendo al " "conjunto de características futuras encontradas en *globs*." -#: ../Doc/library/doctest.rst:965 +#: ../Doc/library/doctest.rst:967 msgid "" "Optional argument *optionflags* works as for function :func:`testfile` above." msgstr "" "El argumento opcional *optionflags* trabaja con respecto a la función :func:" "`testfile` de arriba." -#: ../Doc/library/doctest.rst:971 +#: ../Doc/library/doctest.rst:973 msgid "Unittest API" msgstr "API de unittest" -#: ../Doc/library/doctest.rst:973 +#: ../Doc/library/doctest.rst:975 msgid "" "As your collection of doctest'ed modules grows, you'll want a way to run all " "their doctests systematically. :mod:`doctest` provides two functions that " @@ -1449,7 +1448,7 @@ msgstr "" "`unittest` , incluye una función :func:`load_tests` en tu módulo de " "pruebas::" -#: ../Doc/library/doctest.rst:987 +#: ../Doc/library/doctest.rst:989 msgid "" "There are two main functions for creating :class:`unittest.TestSuite` " "instances from text files and modules with doctests:" @@ -1457,7 +1456,7 @@ msgstr "" "Hay dos funciones principales para crear instancias de :class:`unittest." "TestSuite` desde los archivos de texto y módulos con doctests:" -#: ../Doc/library/doctest.rst:993 +#: ../Doc/library/doctest.rst:995 msgid "" "Convert doctest tests from one or more text files to a :class:`unittest." "TestSuite`." @@ -1465,7 +1464,7 @@ msgstr "" "Convierte las pruebas de doctest de uno o más archivos de texto a una :class:" "`unittest.TestSuite`." -#: ../Doc/library/doctest.rst:996 +#: ../Doc/library/doctest.rst:998 msgid "" "The returned :class:`unittest.TestSuite` is to be run by the unittest " "framework and runs the interactive examples in each file. If an example in " @@ -1480,17 +1479,17 @@ msgstr "" "mostrando el nombre del archivo conteniendo la prueba y un número de línea " "(algunas veces aproximado)." -#: ../Doc/library/doctest.rst:1002 +#: ../Doc/library/doctest.rst:1004 msgid "Pass one or more paths (as strings) to text files to be examined." msgstr "" "Pasa una o más rutas (como cadenas de caracteres) a archivos de texto para " "ser examinados." -#: ../Doc/library/doctest.rst:1004 +#: ../Doc/library/doctest.rst:1006 msgid "Options may be provided as keyword arguments:" msgstr "Se pueden proporcionar las opciones como argumentos por palabra clave:" -#: ../Doc/library/doctest.rst:1006 +#: ../Doc/library/doctest.rst:1008 msgid "" "Optional argument *module_relative* specifies how the filenames in *paths* " "should be interpreted:" @@ -1498,7 +1497,7 @@ msgstr "" "El argumento opcional *module_relative* especifica cómo los nombres de " "archivos en *paths* se deben interpretar:" -#: ../Doc/library/doctest.rst:1009 +#: ../Doc/library/doctest.rst:1011 msgid "" "If *module_relative* is ``True`` (the default), then each filename in " "*paths* specifies an OS-independent module-relative path. By default, this " @@ -1517,7 +1516,7 @@ msgstr "" "de rutas, y puede no ser una ruta absoluta (i.e., puede no empezar con ``/" "``)." -#: ../Doc/library/doctest.rst:1017 +#: ../Doc/library/doctest.rst:1019 msgid "" "If *module_relative* is ``False``, then each filename in *paths* specifies " "an OS-specific path. The path may be absolute or relative; relative paths " @@ -1528,7 +1527,7 @@ msgstr "" "relativa; las rutas relativas son resueltas con respecto a directorio de " "trabajo actual." -#: ../Doc/library/doctest.rst:1021 +#: ../Doc/library/doctest.rst:1023 msgid "" "Optional argument *package* is a Python package or the name of a Python " "package whose directory should be used as the base directory for module-" @@ -1545,7 +1544,7 @@ msgstr "" "relativos al módulo. Es un error especificar *package* si *module_relative* " "es ``False``." -#: ../Doc/library/doctest.rst:1028 +#: ../Doc/library/doctest.rst:1030 msgid "" "Optional argument *setUp* specifies a set-up function for the test suite. " "This is called before running the tests in each file. The *setUp* function " @@ -1558,7 +1557,7 @@ msgstr "" "función *setUp* puede acceder a las variables globales de prueba como el " "atributo *globs* de la prueba pasada." -#: ../Doc/library/doctest.rst:1033 +#: ../Doc/library/doctest.rst:1035 msgid "" "Optional argument *tearDown* specifies a tear-down function for the test " "suite. This is called after running the tests in each file. The *tearDown* " @@ -1571,7 +1570,7 @@ msgstr "" "función *setUp* de configuración puede acceder a los globales de la prueba " "como el atributo *globs* de la prueba pasada." -#: ../Doc/library/doctest.rst:1038 ../Doc/library/doctest.rst:1072 +#: ../Doc/library/doctest.rst:1040 ../Doc/library/doctest.rst:1074 msgid "" "Optional argument *globs* is a dictionary containing the initial global " "variables for the tests. A new copy of this dictionary is created for each " @@ -1582,7 +1581,7 @@ msgstr "" "diccionario para cada prueba. Por defecto, *globs* es un nuevo diccionario " "vacío." -#: ../Doc/library/doctest.rst:1042 +#: ../Doc/library/doctest.rst:1044 msgid "" "Optional argument *optionflags* specifies the default doctest options for " "the tests, created by or-ing together individual option flags. See section :" @@ -1595,7 +1594,7 @@ msgstr "" "función :func:`set_unittest_reportflags` abajo para una mejor manera de " "definir las opciones de informe." -#: ../Doc/library/doctest.rst:1054 +#: ../Doc/library/doctest.rst:1056 msgid "" "The global ``__file__`` is added to the globals provided to doctests loaded " "from a text file using :func:`DocFileSuite`." @@ -1603,13 +1602,13 @@ msgstr "" "Se añade el global ``__file__`` a los globales proporcionados a los doctests " "cargados desde un archivo de texto usando :func:`DocFileSuite`." -#: ../Doc/library/doctest.rst:1060 +#: ../Doc/library/doctest.rst:1062 msgid "Convert doctest tests for a module to a :class:`unittest.TestSuite`." msgstr "" "Convierte las pruebas de doctest para un módulo a un :class:`unittest." "TestSuite`." -#: ../Doc/library/doctest.rst:1062 +#: ../Doc/library/doctest.rst:1064 msgid "" "The returned :class:`unittest.TestSuite` is to be run by the unittest " "framework and runs each doctest in the module. If any of the doctests fail, " @@ -1623,7 +1622,7 @@ msgstr "" "una excepción :exc:`failureException` mostrando el nombre del archivo que " "contiene la prueba y un número de línea (a veces aproximado)." -#: ../Doc/library/doctest.rst:1068 +#: ../Doc/library/doctest.rst:1070 msgid "" "Optional argument *module* provides the module to be tested. It can be a " "module object or a (possibly dotted) module name. If not specified, the " @@ -1633,7 +1632,7 @@ msgstr "" "objeto de módulo o un nombre (posiblemente punteado) de módulo. Si no se " "especifica, se usa el módulo que invoca esta función." -#: ../Doc/library/doctest.rst:1076 +#: ../Doc/library/doctest.rst:1078 msgid "" "Optional argument *extraglobs* specifies an extra set of global variables, " "which is merged into *globs*. By default, no extra globals are used." @@ -1642,7 +1641,7 @@ msgstr "" "globales adicionales que son mezcladas con *globs*. Por defecto, no se usa " "ningún global adicional." -#: ../Doc/library/doctest.rst:1079 +#: ../Doc/library/doctest.rst:1081 msgid "" "Optional argument *test_finder* is the :class:`DocTestFinder` object (or a " "drop-in replacement) that is used to extract doctests from the module." @@ -1650,7 +1649,7 @@ msgstr "" "El argumento opcional *test_finder* es el objeto :class:`DocTestFinder` (o " "un reemplazo directo) que se usa para extraer doctests desde el módulo." -#: ../Doc/library/doctest.rst:1082 +#: ../Doc/library/doctest.rst:1084 msgid "" "Optional arguments *setUp*, *tearDown*, and *optionflags* are the same as " "for function :func:`DocFileSuite` above." @@ -1658,11 +1657,11 @@ msgstr "" "Los argumentos opcionales *setUp*, *tearDown*, y *optionflags* son lo mismo " "con respecto a la función :func:`DocFileSuite` arriba." -#: ../Doc/library/doctest.rst:1085 +#: ../Doc/library/doctest.rst:1087 msgid "This function uses the same search technique as :func:`testmod`." msgstr "Esta función usa la misma técnica de búsqueda que :func:`testmod`." -#: ../Doc/library/doctest.rst:1087 +#: ../Doc/library/doctest.rst:1089 msgid "" ":func:`DocTestSuite` returns an empty :class:`unittest.TestSuite` if " "*module* contains no docstrings instead of raising :exc:`ValueError`." @@ -1670,7 +1669,7 @@ msgstr "" ":func:`DocTestSuite` retorna un :class:`unittest.TestSuite` vacío si " "*module* no contiene ningún docstring en vez de lanzar un :exc:`ValueError`." -#: ../Doc/library/doctest.rst:1092 +#: ../Doc/library/doctest.rst:1094 msgid "" "Under the covers, :func:`DocTestSuite` creates a :class:`unittest.TestSuite` " "out of :class:`doctest.DocTestCase` instances, and :class:`DocTestCase` is a " @@ -1685,7 +1684,7 @@ msgstr "" "responder preguntas sobre los detalles exactos de la integración de :mod:" "`unittest`." -#: ../Doc/library/doctest.rst:1098 +#: ../Doc/library/doctest.rst:1100 msgid "" "Similarly, :func:`DocFileSuite` creates a :class:`unittest.TestSuite` out " "of :class:`doctest.DocFileCase` instances, and :class:`DocFileCase` is a " @@ -1695,7 +1694,7 @@ msgstr "" "de las instancias de :class:`doctest.DocFileCase`, y :class:`DocFileCase` es " "una subclase de :class:`DocTestCase`." -#: ../Doc/library/doctest.rst:1102 +#: ../Doc/library/doctest.rst:1104 msgid "" "So both ways of creating a :class:`unittest.TestSuite` run instances of :" "class:`DocTestCase`. This is important for a subtle reason: when you run :" @@ -1719,7 +1718,7 @@ msgstr "" "comandos), pero no hay forma de pasar opciones a través de :mod:`unittest` " "al probador de ejecución (*test runner*) de :mod:`doctest`." -#: ../Doc/library/doctest.rst:1112 +#: ../Doc/library/doctest.rst:1114 msgid "" "For this reason, :mod:`doctest` also supports a notion of :mod:`doctest` " "reporting flags specific to :mod:`unittest` support, via this function:" @@ -1728,11 +1727,11 @@ msgstr "" "informe de :mod:`doctest` específicas para la compatibilidad con :mod:" "`unittest`, a través de esta función:" -#: ../Doc/library/doctest.rst:1118 +#: ../Doc/library/doctest.rst:1120 msgid "Set the :mod:`doctest` reporting flags to use." msgstr "Establece las banderas de informe de :mod:`doctest` a usar." -#: ../Doc/library/doctest.rst:1120 +#: ../Doc/library/doctest.rst:1122 msgid "" "Argument *flags* takes the :ref:`bitwise OR ` of option flags. See " "section :ref:`doctest-options`. Only \"reporting flags\" can be used." @@ -1741,7 +1740,7 @@ msgstr "" "de las banderas de opciones. Véase la sección :ref:`doctest-options`. Sólo " "se pueden usar las \"banderas de informe\"." -#: ../Doc/library/doctest.rst:1123 +#: ../Doc/library/doctest.rst:1125 msgid "" "This is a module-global setting, and affects all future doctests run by " "module :mod:`unittest`: the :meth:`runTest` method of :class:`DocTestCase` " @@ -1767,7 +1766,7 @@ msgstr "" "ignoran las banderas de informe -pertenecientes a :mod:`doctest`- de :mod:" "`unittest`." -#: ../Doc/library/doctest.rst:1134 +#: ../Doc/library/doctest.rst:1136 msgid "" "The value of the :mod:`unittest` reporting flags in effect before the " "function was called is returned by the function." @@ -1775,11 +1774,11 @@ msgstr "" "La función retorna el valor de las banderas de informe de :mod:`unittest` en " "efecto antes de que la función fuera invocada." -#: ../Doc/library/doctest.rst:1141 +#: ../Doc/library/doctest.rst:1143 msgid "Advanced API" msgstr "API avanzada" -#: ../Doc/library/doctest.rst:1143 +#: ../Doc/library/doctest.rst:1145 msgid "" "The basic API is a simple wrapper that's intended to make doctest easy to " "use. It is fairly flexible, and should meet most users' needs; however, if " @@ -1792,7 +1791,7 @@ msgstr "" "o deseas extender las capacidades de doctest, entonces debes usar la API " "avanzada." -#: ../Doc/library/doctest.rst:1148 +#: ../Doc/library/doctest.rst:1150 msgid "" "The advanced API revolves around two container classes, which are used to " "store the interactive examples extracted from doctest cases:" @@ -1800,7 +1799,7 @@ msgstr "" "La API avanzada gira en torno a dos clases contenedoras, que se usan para " "guardar los ejemplos interactivos extraídos de los casos doctest:" -#: ../Doc/library/doctest.rst:1151 +#: ../Doc/library/doctest.rst:1153 msgid "" ":class:`Example`: A single Python :term:`statement`, paired with its " "expected output." @@ -1808,7 +1807,7 @@ msgstr "" ":class:`Example`: Un :term:`statement` de Python, emparejado con su salida " "esperada." -#: ../Doc/library/doctest.rst:1154 +#: ../Doc/library/doctest.rst:1156 msgid "" ":class:`DocTest`: A collection of :class:`Example`\\ s, typically extracted " "from a single docstring or text file." @@ -1816,7 +1815,7 @@ msgstr "" ":class:`DocTest`: Una colección de clases :class:`Example`, típicamente " "extraídos de un sólo docstring o archivo de texto." -#: ../Doc/library/doctest.rst:1157 +#: ../Doc/library/doctest.rst:1159 msgid "" "Additional processing classes are defined to find, parse, and run, and check " "doctest examples:" @@ -1824,7 +1823,7 @@ msgstr "" "Se definen clases de procesamiento adicionales para encontrar, analizar " "sintácticamente, y ejecutar, y comprobar ejemplos de doctest:" -#: ../Doc/library/doctest.rst:1160 +#: ../Doc/library/doctest.rst:1162 msgid "" ":class:`DocTestFinder`: Finds all docstrings in a given module, and uses a :" "class:`DocTestParser` to create a :class:`DocTest` from every docstring that " @@ -1834,7 +1833,7 @@ msgstr "" "usa un :class:`DocTestParser` para crear un :class:`DocTest` de cada " "docstring que contiene ejemplos interactivos." -#: ../Doc/library/doctest.rst:1164 +#: ../Doc/library/doctest.rst:1166 msgid "" ":class:`DocTestParser`: Creates a :class:`DocTest` object from a string " "(such as an object's docstring)." @@ -1842,7 +1841,7 @@ msgstr "" ":class:`DocTestParser`: Crea un objeto :class:`DocTest` de una cadena de " "caracteres (tal como un docstring de un objeto)." -#: ../Doc/library/doctest.rst:1167 +#: ../Doc/library/doctest.rst:1169 msgid "" ":class:`DocTestRunner`: Executes the examples in a :class:`DocTest`, and " "uses an :class:`OutputChecker` to verify their output." @@ -1850,7 +1849,7 @@ msgstr "" ":class:`DocTestRunner`: Ejecuta los ejemplos en un :class:`DocTest`, y usa " "un :class:`OutputChecker` para verificar su salida." -#: ../Doc/library/doctest.rst:1170 +#: ../Doc/library/doctest.rst:1172 msgid "" ":class:`OutputChecker`: Compares the actual output from a doctest example " "with the expected output, and decides whether they match." @@ -1858,7 +1857,7 @@ msgstr "" ":class:`OutputChecker`: Compara la salida real de un ejemplo de doctest con " "la salida esperada, y decide si coinciden." -#: ../Doc/library/doctest.rst:1173 +#: ../Doc/library/doctest.rst:1175 msgid "" "The relationships among these processing classes are summarized in the " "following diagram::" @@ -1866,11 +1865,11 @@ msgstr "" "Las relaciones entre estas clases de procesamiento se resumen en el " "siguiente diagrama::" -#: ../Doc/library/doctest.rst:1189 +#: ../Doc/library/doctest.rst:1191 msgid "DocTest Objects" msgstr "Objetos DocTest" -#: ../Doc/library/doctest.rst:1194 +#: ../Doc/library/doctest.rst:1196 msgid "" "A collection of doctest examples that should be run in a single namespace. " "The constructor arguments are used to initialize the attributes of the same " @@ -1880,7 +1879,7 @@ msgstr "" "de espacios. Se usan los argumentos del constructor para inicializar los " "atributos de los mismos nombres." -#: ../Doc/library/doctest.rst:1198 +#: ../Doc/library/doctest.rst:1200 msgid "" ":class:`DocTest` defines the following attributes. They are initialized by " "the constructor, and should not be modified directly." @@ -1888,7 +1887,7 @@ msgstr "" ":class:`DocTest` define los siguientes atributos. Son inicializados por el " "constructor, y no deben ser modificados directamente." -#: ../Doc/library/doctest.rst:1204 +#: ../Doc/library/doctest.rst:1206 msgid "" "A list of :class:`Example` objects encoding the individual interactive " "Python examples that should be run by this test." @@ -1896,7 +1895,7 @@ msgstr "" "Una lista de objetos :class:`Example` codificando los ejemplos interactivos " "de Python individuales que esta prueba debe ejecutar." -#: ../Doc/library/doctest.rst:1210 +#: ../Doc/library/doctest.rst:1212 msgid "" "The namespace (aka globals) that the examples should be run in. This is a " "dictionary mapping names to values. Any changes to the namespace made by " @@ -1908,7 +1907,7 @@ msgstr "" "cambio al nombre de espacios hecho por los ejemplos (tal como juntar nuevas " "variables) se reflejará en :attr:`globs` después de que se ejecute la prueba." -#: ../Doc/library/doctest.rst:1218 +#: ../Doc/library/doctest.rst:1220 msgid "" "A string name identifying the :class:`DocTest`. Typically, this is the name " "of the object or file that the test was extracted from." @@ -1917,7 +1916,7 @@ msgstr "" "Normalmente, este es el nombre del objeto o archivo del que se extrajo la " "prueba." -#: ../Doc/library/doctest.rst:1224 +#: ../Doc/library/doctest.rst:1226 msgid "" "The name of the file that this :class:`DocTest` was extracted from; or " "``None`` if the filename is unknown, or if the :class:`DocTest` was not " @@ -1927,7 +1926,7 @@ msgstr "" "si el nombre del archivo se desconoce, o si :class:`DocTest` no se extrajo " "de un archivo." -#: ../Doc/library/doctest.rst:1231 +#: ../Doc/library/doctest.rst:1233 msgid "" "The line number within :attr:`filename` where this :class:`DocTest` begins, " "or ``None`` if the line number is unavailable. This line number is zero-" @@ -1937,7 +1936,7 @@ msgstr "" "comienza, o ``None`` si el número de línea no está disponible. Este número " "de línea es comienza en 0 con respecto al comienzo del archivo." -#: ../Doc/library/doctest.rst:1238 +#: ../Doc/library/doctest.rst:1240 msgid "" "The string that the test was extracted from, or ``None`` if the string is " "unavailable, or if the test was not extracted from a string." @@ -1948,11 +1947,11 @@ msgstr "" # Estoy poniendo Example sin traducir porque hace referencia a la clase # :class:`Example` que envuelve los ejemplos interactivos. -#: ../Doc/library/doctest.rst:1245 +#: ../Doc/library/doctest.rst:1247 msgid "Example Objects" msgstr "Objetos *Example*" -#: ../Doc/library/doctest.rst:1250 +#: ../Doc/library/doctest.rst:1252 msgid "" "A single interactive example, consisting of a Python statement and its " "expected output. The constructor arguments are used to initialize the " @@ -1962,7 +1961,7 @@ msgstr "" "salida esperada. Los argumentos del constructor se usan para inicializar los " "atributos del mismo nombre." -#: ../Doc/library/doctest.rst:1255 +#: ../Doc/library/doctest.rst:1257 msgid "" ":class:`Example` defines the following attributes. They are initialized by " "the constructor, and should not be modified directly." @@ -1970,7 +1969,7 @@ msgstr "" "La clase :class:`Example` define los siguientes atributos. Son inicializados " "por el constructor, y no deben ser modificados directamente." -#: ../Doc/library/doctest.rst:1261 +#: ../Doc/library/doctest.rst:1263 msgid "" "A string containing the example's source code. This source code consists of " "a single Python statement, and always ends with a newline; the constructor " @@ -1980,7 +1979,7 @@ msgstr "" "código fuente consiste de una sola sentencia Python, y siempre termina en " "una nueva línea; el constructor añade una nueva línea cuando sea necesario." -#: ../Doc/library/doctest.rst:1268 +#: ../Doc/library/doctest.rst:1270 msgid "" "The expected output from running the example's source code (either from " "stdout, or a traceback in case of exception). :attr:`want` ends with a " @@ -1993,7 +1992,7 @@ msgstr "" "caso es una cadena vacía. El constructor añade una nueva línea cuando sea " "necesario." -#: ../Doc/library/doctest.rst:1276 +#: ../Doc/library/doctest.rst:1278 msgid "" "The exception message generated by the example, if the example is expected " "to generate an exception; or ``None`` if it is not expected to generate an " @@ -2008,7 +2007,7 @@ msgstr "" "línea a menos que sea ``None``. El constructor añade una nueva línea si se " "necesita." -#: ../Doc/library/doctest.rst:1285 +#: ../Doc/library/doctest.rst:1287 msgid "" "The line number within the string containing this example where the example " "begins. This line number is zero-based with respect to the beginning of the " @@ -2018,7 +2017,7 @@ msgstr "" "ejemplo donde el ejemplo comienza. Este número de línea comienza en 0 con " "respecto al comienzo de la cadena que lo contiene." -#: ../Doc/library/doctest.rst:1292 +#: ../Doc/library/doctest.rst:1294 msgid "" "The example's indentation in the containing string, i.e., the number of " "space characters that precede the example's first prompt." @@ -2026,7 +2025,7 @@ msgstr "" "La sangría del ejemplo en la cadena que lo contiene; i.e., el número de " "caracteres de espacio que preceden la primera entrada del ejemplo." -#: ../Doc/library/doctest.rst:1298 +#: ../Doc/library/doctest.rst:1300 msgid "" "A dictionary mapping from option flags to ``True`` or ``False``, which is " "used to override default options for this example. Any option flags not " @@ -2040,11 +2039,11 @@ msgstr "" "defecto (como se especifica por los :attr:`optionflags` de :class:" "`DocTestRunner`). Por defecto, no se establece ninguna opción." -#: ../Doc/library/doctest.rst:1307 +#: ../Doc/library/doctest.rst:1309 msgid "DocTestFinder objects" msgstr "Objetos *DocTestFinder*" -#: ../Doc/library/doctest.rst:1312 +#: ../Doc/library/doctest.rst:1314 msgid "" "A processing class used to extract the :class:`DocTest`\\ s that are " "relevant to a given object, from its docstring and the docstrings of its " @@ -2057,7 +2056,7 @@ msgstr "" "módulos, clases, funciones, métodos, métodos estáticos, métodos de clase, y " "propiedades." -#: ../Doc/library/doctest.rst:1317 +#: ../Doc/library/doctest.rst:1319 msgid "" "The optional argument *verbose* can be used to display the objects searched " "by the finder. It defaults to ``False`` (no output)." @@ -2065,7 +2064,7 @@ msgstr "" "Se puede usar el argumento opcional *verbose* para mostrar los objetos " "buscados por *finder*. Su valor por defecto es ``False`` (ninguna salida)." -#: ../Doc/library/doctest.rst:1320 +#: ../Doc/library/doctest.rst:1322 msgid "" "The optional argument *parser* specifies the :class:`DocTestParser` object " "(or a drop-in replacement) that is used to extract doctests from docstrings." @@ -2073,7 +2072,7 @@ msgstr "" "El argumento opcional *parser* especifica el objeto :class:`DocTestParser` " "(o un reemplazo directo) que se usa para extraer doctests desde docstrings." -#: ../Doc/library/doctest.rst:1323 +#: ../Doc/library/doctest.rst:1325 msgid "" "If the optional argument *recurse* is false, then :meth:`DocTestFinder.find` " "will only examine the given object, and not any contained objects." @@ -2082,7 +2081,7 @@ msgstr "" "`DocTestFinder.find` sólo examinará el objeto dado, y no cualquier objeto " "contenido." -#: ../Doc/library/doctest.rst:1326 +#: ../Doc/library/doctest.rst:1328 msgid "" "If the optional argument *exclude_empty* is false, then :meth:`DocTestFinder." "find` will include tests for objects with empty docstrings." @@ -2090,11 +2089,11 @@ msgstr "" "Si el argumento opcional *exclude_empty* es falso, entonces :meth:" "`DocTestFinder.find` incluirá pruebas para objetos con docstrings vacíos." -#: ../Doc/library/doctest.rst:1330 +#: ../Doc/library/doctest.rst:1332 msgid ":class:`DocTestFinder` defines the following method:" msgstr ":class:`DocTestFinder` define los siguientes métodos:" -#: ../Doc/library/doctest.rst:1335 +#: ../Doc/library/doctest.rst:1337 msgid "" "Return a list of the :class:`DocTest`\\ s that are defined by *obj*'s " "docstring, or by any of its contained objects' docstrings." @@ -2102,7 +2101,7 @@ msgstr "" "Retorna una lista de los :class:`Doctest` que se definen por el docstring de " "*obj*, o por cualquiera de los docstring de sus objetos contenidos." -#: ../Doc/library/doctest.rst:1338 +#: ../Doc/library/doctest.rst:1340 msgid "" "The optional argument *name* specifies the object's name; this name will be " "used to construct names for the returned :class:`DocTest`\\ s. If *name* is " @@ -2112,7 +2111,7 @@ msgstr "" "será usado para construir los nombres de los :class:`DocTest` retornados. Si " "*name* no se especifica, entonces se usa ``obj.__name__``." -#: ../Doc/library/doctest.rst:1342 +#: ../Doc/library/doctest.rst:1344 msgid "" "The optional parameter *module* is the module that contains the given " "object. If the module is not specified or is ``None``, then the test finder " @@ -2124,11 +2123,11 @@ msgstr "" "tratará de determinar automáticamente el módulo correcto. Se usa el módulo " "del objeto:" -#: ../Doc/library/doctest.rst:1346 +#: ../Doc/library/doctest.rst:1348 msgid "As a default namespace, if *globs* is not specified." msgstr "Como un espacio de nombres por defecto, si no se especifica *globs*." -#: ../Doc/library/doctest.rst:1348 +#: ../Doc/library/doctest.rst:1350 msgid "" "To prevent the DocTestFinder from extracting DocTests from objects that are " "imported from other modules. (Contained objects with modules other than " @@ -2138,16 +2137,16 @@ msgstr "" "importan desde otros módulos. (Se ignoran objetos contenidos con módulos " "aparte de *module*.)" -#: ../Doc/library/doctest.rst:1352 +#: ../Doc/library/doctest.rst:1354 msgid "To find the name of the file containing the object." msgstr "Para encontrar el nombre del archivo conteniendo el objeto." -#: ../Doc/library/doctest.rst:1354 +#: ../Doc/library/doctest.rst:1356 msgid "To help find the line number of the object within its file." msgstr "" "Para ayudar a encontrar el número de línea del objeto dentro de su archivo." -#: ../Doc/library/doctest.rst:1356 +#: ../Doc/library/doctest.rst:1358 msgid "" "If *module* is ``False``, no attempt to find the module will be made. This " "is obscure, of use mostly in testing doctest itself: if *module* is " @@ -2162,7 +2161,7 @@ msgstr "" "(inexistente), por lo que todos los objetos contenidos se buscarán " "(recursivamente) por doctests." -#: ../Doc/library/doctest.rst:1362 +#: ../Doc/library/doctest.rst:1364 msgid "" "The globals for each :class:`DocTest` is formed by combining *globs* and " "*extraglobs* (bindings in *extraglobs* override bindings in *globs*). A new " @@ -2178,11 +2177,11 @@ msgstr "" "es el *__dict__* del módulo, si se especifica, o es ``{}`` de lo contrario, " "si *extraglobs* no se especifica, entonces su valor por defecto es ``{}``." -#: ../Doc/library/doctest.rst:1373 +#: ../Doc/library/doctest.rst:1375 msgid "DocTestParser objects" msgstr "Objetos *DocTestParser*" -#: ../Doc/library/doctest.rst:1378 +#: ../Doc/library/doctest.rst:1380 msgid "" "A processing class used to extract interactive examples from a string, and " "use them to create a :class:`DocTest` object." @@ -2190,11 +2189,11 @@ msgstr "" "Un clase de procesamiento usada para extraer ejemplos interactivos de una " "cadena de caracteres, y usarlos para crear un objeto :class:`DocTest`." -#: ../Doc/library/doctest.rst:1382 ../Doc/library/doctest.rst:1450 +#: ../Doc/library/doctest.rst:1384 ../Doc/library/doctest.rst:1452 msgid ":class:`DocTestParser` defines the following methods:" msgstr ":class:`DocTestParser` define los siguientes métodos:" -#: ../Doc/library/doctest.rst:1387 +#: ../Doc/library/doctest.rst:1389 msgid "" "Extract all doctest examples from the given string, and collect them into a :" "class:`DocTest` object." @@ -2202,7 +2201,7 @@ msgstr "" "Extrae todos los ejemplos de *doctest* de una cadena dada, y los recolecta " "en un objeto :class:`DocTest`." -#: ../Doc/library/doctest.rst:1390 +#: ../Doc/library/doctest.rst:1392 msgid "" "*globs*, *name*, *filename*, and *lineno* are attributes for the new :class:" "`DocTest` object. See the documentation for :class:`DocTest` for more " @@ -2212,7 +2211,7 @@ msgstr "" "class:`DocTest`. Véase la documentación de :class:`DocTest` para más " "información." -#: ../Doc/library/doctest.rst:1397 +#: ../Doc/library/doctest.rst:1399 msgid "" "Extract all doctest examples from the given string, and return them as a " "list of :class:`Example` objects. Line numbers are 0-based. The optional " @@ -2224,7 +2223,7 @@ msgstr "" "0. El argumento opcional *name* es una nombre identificando esta cadena, y " "sólo es usada para mensajes de errores." -#: ../Doc/library/doctest.rst:1404 +#: ../Doc/library/doctest.rst:1406 msgid "" "Divide the given string into examples and intervening text, and return them " "as a list of alternating :class:`Example`\\ s and strings. Line numbers for " @@ -2237,11 +2236,11 @@ msgstr "" "argumento opcional *name* es un nombre identificando esta cadena, y sólo se " "usa en mensajes de error." -#: ../Doc/library/doctest.rst:1413 +#: ../Doc/library/doctest.rst:1415 msgid "DocTestRunner objects" msgstr "Objetos *DocTestRunner*" -#: ../Doc/library/doctest.rst:1418 +#: ../Doc/library/doctest.rst:1420 msgid "" "A processing class used to execute and verify the interactive examples in a :" "class:`DocTest`." @@ -2249,7 +2248,7 @@ msgstr "" "Una clase de procesamiento usada para ejecutar y verificar los ejemplos " "interactivos en un :class:`DocTest`." -#: ../Doc/library/doctest.rst:1421 +#: ../Doc/library/doctest.rst:1423 msgid "" "The comparison between expected outputs and actual outputs is done by an :" "class:`OutputChecker`. This comparison may be customized with a number of " @@ -2265,7 +2264,7 @@ msgstr "" "comparación también puede ser personalizada al pasar una subclase de :class:" "`OutputChecker` al constructor." -#: ../Doc/library/doctest.rst:1427 +#: ../Doc/library/doctest.rst:1429 msgid "" "The test runner's display output can be controlled in two ways. First, an " "output function can be passed to :meth:`TestRunner.run`; this function will " @@ -2284,7 +2283,7 @@ msgstr "" "`report_success`, :meth:`report_unexpected_exception`, y :meth:" "`report_failure`." -#: ../Doc/library/doctest.rst:1435 +#: ../Doc/library/doctest.rst:1437 msgid "" "The optional keyword argument *checker* specifies the :class:`OutputChecker` " "object (or drop-in replacement) that should be used to compare the expected " @@ -2295,7 +2294,7 @@ msgstr "" "comparar las salidas esperadas con las salidas reales de los ejemplos de " "doctest." -#: ../Doc/library/doctest.rst:1439 +#: ../Doc/library/doctest.rst:1441 msgid "" "The optional keyword argument *verbose* controls the :class:" "`DocTestRunner`'s verbosity. If *verbose* is ``True``, then information is " @@ -2310,7 +2309,7 @@ msgstr "" "``None``, entonces la salida verbosa se usa si y sólo se usa el modificador " "de la línea de comandos ``-v``." -#: ../Doc/library/doctest.rst:1445 +#: ../Doc/library/doctest.rst:1447 msgid "" "The optional keyword argument *optionflags* can be used to control how the " "test runner compares expected output to actual output, and how it displays " @@ -2321,7 +2320,7 @@ msgstr "" "real, y cómo muestra las fallas. Para más información, véase la sección :ref:" "`doctest-options`." -#: ../Doc/library/doctest.rst:1455 +#: ../Doc/library/doctest.rst:1457 msgid "" "Report that the test runner is about to process the given example. This " "method is provided to allow subclasses of :class:`DocTestRunner` to " @@ -2331,7 +2330,7 @@ msgstr "" "método es proporcionado para permitir que clases heredadas de :class:" "`DocTestRunner` personalicen su salida; no debe ser invocado directamente." -#: ../Doc/library/doctest.rst:1459 +#: ../Doc/library/doctest.rst:1461 msgid "" "*example* is the example about to be processed. *test* is the test " "*containing example*. *out* is the output function that was passed to :meth:" @@ -2341,7 +2340,7 @@ msgstr "" "contiene a *example*. *out* es la función de salida que se pasó a :meth:" "`DocTestRunner.run`." -#: ../Doc/library/doctest.rst:1466 +#: ../Doc/library/doctest.rst:1468 msgid "" "Report that the given example ran successfully. This method is provided to " "allow subclasses of :class:`DocTestRunner` to customize their output; it " @@ -2351,7 +2350,7 @@ msgstr "" "proporcionado para permitir que las clases heredadas de :class:" "`DocTestRunner` personalicen su salida; no debe ser invocado directamente." -#: ../Doc/library/doctest.rst:1470 ../Doc/library/doctest.rst:1481 +#: ../Doc/library/doctest.rst:1472 ../Doc/library/doctest.rst:1483 msgid "" "*example* is the example about to be processed. *got* is the actual output " "from the example. *test* is the test containing *example*. *out* is the " @@ -2361,7 +2360,7 @@ msgstr "" "del ejemplo. *test* es la prueba conteniendo *example*. *out* es la función " "de salida que se pasa a :meth:`DocTestRunner.run`." -#: ../Doc/library/doctest.rst:1477 +#: ../Doc/library/doctest.rst:1479 msgid "" "Report that the given example failed. This method is provided to allow " "subclasses of :class:`DocTestRunner` to customize their output; it should " @@ -2371,7 +2370,7 @@ msgstr "" "permitir que clases heredadas de :class:`DocTestRunner` personalicen su " "salida; no debe ser invocado directamente." -#: ../Doc/library/doctest.rst:1488 +#: ../Doc/library/doctest.rst:1490 msgid "" "Report that the given example raised an unexpected exception. This method is " "provided to allow subclasses of :class:`DocTestRunner` to customize their " @@ -2381,7 +2380,7 @@ msgstr "" "proporcionado para permitir que las clases heredadas de :class:" "`DocTestRunner` personalicen su salida; no debe ser invocado directamente." -#: ../Doc/library/doctest.rst:1492 +#: ../Doc/library/doctest.rst:1494 msgid "" "*example* is the example about to be processed. *exc_info* is a tuple " "containing information about the unexpected exception (as returned by :func:" @@ -2393,7 +2392,7 @@ msgstr "" "func:`sys.exc_info`). *test* es la prueba conteniendo *example*. *out* es la " "función de salida que debe ser pasada a :meth:`DocTestRunner.run`." -#: ../Doc/library/doctest.rst:1500 +#: ../Doc/library/doctest.rst:1502 msgid "" "Run the examples in *test* (a :class:`DocTest` object), and display the " "results using the writer function *out*." @@ -2401,7 +2400,7 @@ msgstr "" "Ejecuta los ejemplos en *test* (un objeto :class:`DocTest`), y muestra los " "resultados usando función de escritura *out*." -#: ../Doc/library/doctest.rst:1503 +#: ../Doc/library/doctest.rst:1505 msgid "" "The examples are run in the namespace ``test.globs``. If *clear_globs* is " "true (the default), then this namespace will be cleared after the test runs, " @@ -2414,7 +2413,7 @@ msgstr "" "colección de basura. Si quisieras examinar el espacio de nombres después de " "que la prueba se complete, entonces use *clear_globs=False*." -#: ../Doc/library/doctest.rst:1508 +#: ../Doc/library/doctest.rst:1510 msgid "" "*compileflags* gives the set of flags that should be used by the Python " "compiler when running the examples. If not specified, then it will default " @@ -2425,7 +2424,7 @@ msgstr "" "entonces su valor por defecto será el conjunto de banderas de *future-" "import* que aplican a *globs*." -#: ../Doc/library/doctest.rst:1512 +#: ../Doc/library/doctest.rst:1514 msgid "" "The output of each example is checked using the :class:`DocTestRunner`'s " "output checker, and the results are formatted by the :meth:`DocTestRunner." @@ -2435,7 +2434,7 @@ msgstr "" "`DocTestRunner`, y los resultados se formatean por los métodos de :meth:" "`DocTestRunner.report_\\*`." -#: ../Doc/library/doctest.rst:1519 +#: ../Doc/library/doctest.rst:1521 msgid "" "Print a summary of all the test cases that have been run by this " "DocTestRunner, and return a :term:`named tuple` ``TestResults(failed, " @@ -2445,7 +2444,7 @@ msgstr "" "este *DocTestRunner*, y retorna un :term:`named tuple` ``TestResults(failed, " "attempted)``." -#: ../Doc/library/doctest.rst:1522 +#: ../Doc/library/doctest.rst:1524 msgid "" "The optional *verbose* argument controls how detailed the summary is. If " "the verbosity is not specified, then the :class:`DocTestRunner`'s verbosity " @@ -2455,11 +2454,11 @@ msgstr "" "no se especifica la verbosidad, entonces se usa la verbosidad de :class:" "`DocTestRunner`." -#: ../Doc/library/doctest.rst:1529 +#: ../Doc/library/doctest.rst:1531 msgid "OutputChecker objects" msgstr "Objetos *OutputChecker*" -#: ../Doc/library/doctest.rst:1534 +#: ../Doc/library/doctest.rst:1536 msgid "" "A class used to check the whether the actual output from a doctest example " "matches the expected output. :class:`OutputChecker` defines two methods: :" @@ -2473,11 +2472,11 @@ msgstr "" "retorna ``True`` si coinciden; y :meth:`output_difference`, que retorna una " "cadena que describe las diferencias entre las dos salidas." -#: ../Doc/library/doctest.rst:1541 +#: ../Doc/library/doctest.rst:1543 msgid ":class:`OutputChecker` defines the following methods:" msgstr ":class:`OutputChecker` define los siguientes métodos:" -#: ../Doc/library/doctest.rst:1545 +#: ../Doc/library/doctest.rst:1547 msgid "" "Return ``True`` iff the actual output from an example (*got*) matches the " "expected output (*want*). These strings are always considered to match if " @@ -2492,7 +2491,7 @@ msgstr "" "Véase la sección :ref:`doctest-options` para más información sobre las " "banderas de opción." -#: ../Doc/library/doctest.rst:1554 +#: ../Doc/library/doctest.rst:1556 msgid "" "Return a string describing the differences between the expected output for a " "given example (*example*) and the actual output (*got*). *optionflags* is " @@ -2502,16 +2501,16 @@ msgstr "" "para un ejemplo dado (*example*) y la salida real (*got*). *optionflags* es " "el conjunto de banderas de opción usado para comparar *want* y *got*." -#: ../Doc/library/doctest.rst:1562 +#: ../Doc/library/doctest.rst:1564 msgid "Debugging" msgstr "Depuración" -#: ../Doc/library/doctest.rst:1564 +#: ../Doc/library/doctest.rst:1566 msgid "Doctest provides several mechanisms for debugging doctest examples:" msgstr "" "Doctest proporciona varios mecanismos para depurar los ejemplos de doctest:" -#: ../Doc/library/doctest.rst:1566 +#: ../Doc/library/doctest.rst:1568 msgid "" "Several functions convert doctests to executable Python programs, which can " "be run under the Python debugger, :mod:`pdb`." @@ -2519,7 +2518,7 @@ msgstr "" "Varias funciones convierten los doctest en programas de Python ejecutables, " "que pueden ser ejecutadas bajo el depurador de Python, :mod:`pdb`." -#: ../Doc/library/doctest.rst:1569 +#: ../Doc/library/doctest.rst:1571 msgid "" "The :class:`DebugRunner` class is a subclass of :class:`DocTestRunner` that " "raises an exception for the first failing example, containing information " @@ -2531,7 +2530,7 @@ msgstr "" "sobre ese ejemplo. Esta información se puede usar para realizar depuración a " "posteriori en el ejemplo." -#: ../Doc/library/doctest.rst:1574 +#: ../Doc/library/doctest.rst:1576 msgid "" "The :mod:`unittest` cases generated by :func:`DocTestSuite` support the :" "meth:`debug` method defined by :class:`unittest.TestCase`." @@ -2539,7 +2538,7 @@ msgstr "" "Los casos de :mod:`unittest` generados por :func:`DocTestSuite` admiten el " "método :meth:`debug` definido por :class:`unittest.TestCase`." -#: ../Doc/library/doctest.rst:1577 +#: ../Doc/library/doctest.rst:1579 msgid "" "You can add a call to :func:`pdb.set_trace` in a doctest example, and you'll " "drop into the Python debugger when that line is executed. Then you can " @@ -2551,11 +2550,11 @@ msgstr "" "puedes inspeccionar los valores de las variables, y demás. Por ejemplo, " "supongamos que :file:`a.py` contiene sólo este docstring de módulo::" -#: ../Doc/library/doctest.rst:1592 +#: ../Doc/library/doctest.rst:1594 msgid "Then an interactive Python session may look like this::" msgstr "Entonces una sesión interactiva puede lucir como esta::" -#: ../Doc/library/doctest.rst:1625 +#: ../Doc/library/doctest.rst:1627 msgid "" "Functions that convert doctests to Python code, and possibly run the " "synthesized code under the debugger:" @@ -2563,11 +2562,11 @@ msgstr "" "Funciones que convierten los doctest a código de Python, y posiblemente " "ejecuten el código sintetizado debajo del depurador:" -#: ../Doc/library/doctest.rst:1631 +#: ../Doc/library/doctest.rst:1633 msgid "Convert text with examples to a script." msgstr "Convierte texto con ejemplos a un script." -#: ../Doc/library/doctest.rst:1633 +#: ../Doc/library/doctest.rst:1635 msgid "" "Argument *s* is a string containing doctest examples. The string is " "converted to a Python script, where doctest examples in *s* are converted to " @@ -2580,11 +2579,11 @@ msgstr "" "comentarios de Python. El script generado se retorna como una cadena, Por " "ejemplo, ::" -#: ../Doc/library/doctest.rst:1648 +#: ../Doc/library/doctest.rst:1650 msgid "displays::" msgstr "muestra::" -#: ../Doc/library/doctest.rst:1658 +#: ../Doc/library/doctest.rst:1660 msgid "" "This function is used internally by other functions (see below), but can " "also be useful when you want to transform an interactive Python session into " @@ -2594,11 +2593,11 @@ msgstr "" "también pueden ser útiles cuando quieres transformar una sesión de Python " "interactiva en un script de Python." -#: ../Doc/library/doctest.rst:1665 +#: ../Doc/library/doctest.rst:1667 msgid "Convert the doctest for an object to a script." msgstr "Convierte el doctest para un objeto en un script." -#: ../Doc/library/doctest.rst:1667 +#: ../Doc/library/doctest.rst:1669 msgid "" "Argument *module* is a module object, or dotted name of a module, containing " "the object whose doctests are of interest. Argument *name* is the name " @@ -2615,7 +2614,7 @@ msgstr "" "`script_from_examples` arriba. Por ejemplo, si el módulo :file:`a.py` " "contiene un función de alto nivel :func:`f`, entonces ::" -#: ../Doc/library/doctest.rst:1677 +#: ../Doc/library/doctest.rst:1679 msgid "" "prints a script version of function :func:`f`'s docstring, with doctests " "converted to code, and the rest placed in comments." @@ -2623,11 +2622,11 @@ msgstr "" "imprime una versión de script del docstring de la función :func:`f`, con los " "doctest convertidos en código, y el resto puesto en comentarios." -#: ../Doc/library/doctest.rst:1683 +#: ../Doc/library/doctest.rst:1685 msgid "Debug the doctests for an object." msgstr "Depura los doctest para un objeto." -#: ../Doc/library/doctest.rst:1685 +#: ../Doc/library/doctest.rst:1687 msgid "" "The *module* and *name* arguments are the same as for function :func:" "`testsource` above. The synthesized Python script for the named object's " @@ -2639,7 +2638,7 @@ msgstr "" "objeto nombrado es escrito en un archivo temporal, y entonces ese archivo es " "ejecutado bajo el control del depurador de PYthon, :mod:`pdb`." -#: ../Doc/library/doctest.rst:1690 +#: ../Doc/library/doctest.rst:1692 msgid "" "A shallow copy of ``module.__dict__`` is used for both local and global " "execution context." @@ -2647,7 +2646,7 @@ msgstr "" "Se usa una copia superficial de ``module.__dict__`` para el contexto de " "ejecución local y global." -#: ../Doc/library/doctest.rst:1693 +#: ../Doc/library/doctest.rst:1695 msgid "" "Optional argument *pm* controls whether post-mortem debugging is used. If " "*pm* has a true value, the script file is run directly, and the debugger " @@ -2667,11 +2666,11 @@ msgstr "" "si es falso, el script se ejecuta bajo el depurador desde el inicio, a " "través de una llamada de :func:`exec` apropiada a :func:`pdb.run`." -#: ../Doc/library/doctest.rst:1704 +#: ../Doc/library/doctest.rst:1706 msgid "Debug the doctests in a string." msgstr "Depura los doctest en una cadena de caracteres." -#: ../Doc/library/doctest.rst:1706 +#: ../Doc/library/doctest.rst:1708 msgid "" "This is like function :func:`debug` above, except that a string containing " "doctest examples is specified directly, via the *src* argument." @@ -2680,7 +2679,7 @@ msgstr "" "caracteres que contiene los ejemplos de doctest se especifica directamente, " "a través del argumento *src*." -#: ../Doc/library/doctest.rst:1709 +#: ../Doc/library/doctest.rst:1711 msgid "" "Optional argument *pm* has the same meaning as in function :func:`debug` " "above." @@ -2688,7 +2687,7 @@ msgstr "" "El argumento opcional *pm* tiene el mismo significado como en la función :" "func:`debug` arriba." -#: ../Doc/library/doctest.rst:1711 +#: ../Doc/library/doctest.rst:1713 msgid "" "Optional argument *globs* gives a dictionary to use as both local and global " "execution context. If not specified, or ``None``, an empty dictionary is " @@ -2699,7 +2698,7 @@ msgstr "" "usa un diccionario vacío. Si se especifica, se usa una copia superficial del " "diccionario." -#: ../Doc/library/doctest.rst:1716 +#: ../Doc/library/doctest.rst:1718 msgid "" "The :class:`DebugRunner` class, and the special exceptions it may raise, are " "of most interest to testing framework authors, and will only be sketched " @@ -2711,7 +2710,7 @@ msgstr "" "serán descritos brevemente aquí. Véase el código fuente, y especialmente el " "docstring de :class:`DebugRunner` (¡que es un doctest!) para más detalles:" -#: ../Doc/library/doctest.rst:1724 +#: ../Doc/library/doctest.rst:1726 msgid "" "A subclass of :class:`DocTestRunner` that raises an exception as soon as a " "failure is encountered. If an unexpected exception occurs, an :exc:" @@ -2727,7 +2726,7 @@ msgstr "" "excepción :exc:`DocTestFailure`, conteniendo la prueba, el ejemplo, y la " "salida real." -#: ../Doc/library/doctest.rst:1731 +#: ../Doc/library/doctest.rst:1733 msgid "" "For information about the constructor parameters and methods, see the " "documentation for :class:`DocTestRunner` in section :ref:`doctest-advanced-" @@ -2737,7 +2736,7 @@ msgstr "" "la documentación para :class:`DocTestRunner` en la sección :ref:`doctest-" "advanced-api`." -#: ../Doc/library/doctest.rst:1734 +#: ../Doc/library/doctest.rst:1736 msgid "" "There are two exceptions that may be raised by :class:`DebugRunner` " "instances:" @@ -2745,7 +2744,7 @@ msgstr "" "Hay dos excepciones que se pueden lanzar por instancias de :class:" "`DebugRunner`:" -#: ../Doc/library/doctest.rst:1739 +#: ../Doc/library/doctest.rst:1741 msgid "" "An exception raised by :class:`DocTestRunner` to signal that a doctest " "example's actual output did not match its expected output. The constructor " @@ -2756,25 +2755,25 @@ msgstr "" "argumentos del constructor se usan para inicializar los atributos del mismo " "nombre." -#: ../Doc/library/doctest.rst:1743 +#: ../Doc/library/doctest.rst:1745 msgid ":exc:`DocTestFailure` defines the following attributes:" msgstr ":exc:`DocTestFailure` define los siguientes atributos:" -#: ../Doc/library/doctest.rst:1748 ../Doc/library/doctest.rst:1772 +#: ../Doc/library/doctest.rst:1750 ../Doc/library/doctest.rst:1774 msgid "The :class:`DocTest` object that was being run when the example failed." msgstr "" "El objeto :class:`DocTest` que estaba siendo ejecutado cuando el ejemplo " "falló." -#: ../Doc/library/doctest.rst:1753 ../Doc/library/doctest.rst:1777 +#: ../Doc/library/doctest.rst:1755 ../Doc/library/doctest.rst:1779 msgid "The :class:`Example` that failed." msgstr "El objeto :class:`Example` que falló." -#: ../Doc/library/doctest.rst:1758 +#: ../Doc/library/doctest.rst:1760 msgid "The example's actual output." msgstr "La salida real del ejemplo." -#: ../Doc/library/doctest.rst:1763 +#: ../Doc/library/doctest.rst:1765 msgid "" "An exception raised by :class:`DocTestRunner` to signal that a doctest " "example raised an unexpected exception. The constructor arguments are used " @@ -2784,11 +2783,11 @@ msgstr "" "de doctest lanzó una excepción inesperada. Los argumentos del constructor se " "usan para inicializar los atributos del mismo nombre." -#: ../Doc/library/doctest.rst:1767 +#: ../Doc/library/doctest.rst:1769 msgid ":exc:`UnexpectedException` defines the following attributes:" msgstr ":exc:`UnexpectedException` define los siguientes atributos:" -#: ../Doc/library/doctest.rst:1782 +#: ../Doc/library/doctest.rst:1784 msgid "" "A tuple containing information about the unexpected exception, as returned " "by :func:`sys.exc_info`." @@ -2796,11 +2795,11 @@ msgstr "" "Una tupla que contiene información sobre la excepción inesperada, como es " "retornado por :func:`sys.exc_info`." -#: ../Doc/library/doctest.rst:1789 +#: ../Doc/library/doctest.rst:1791 msgid "Soapbox" msgstr "Plataforma improvisada" -#: ../Doc/library/doctest.rst:1791 +#: ../Doc/library/doctest.rst:1793 msgid "" "As mentioned in the introduction, :mod:`doctest` has grown to have three " "primary uses:" @@ -2808,19 +2807,19 @@ msgstr "" "Como se menciona en la introducción, :mod:`doctest` ha crecido para tener " "tres usos primarios:" -#: ../Doc/library/doctest.rst:1794 +#: ../Doc/library/doctest.rst:1796 msgid "Checking examples in docstrings." msgstr "Verificar los ejemplos en los docstring." -#: ../Doc/library/doctest.rst:1796 +#: ../Doc/library/doctest.rst:1798 msgid "Regression testing." msgstr "Pruebas de regresión." -#: ../Doc/library/doctest.rst:1798 +#: ../Doc/library/doctest.rst:1800 msgid "Executable documentation / literate testing." msgstr "Documentación ejecutable / pruebas literarias." -#: ../Doc/library/doctest.rst:1800 +#: ../Doc/library/doctest.rst:1802 msgid "" "These uses have different requirements, and it is important to distinguish " "them. In particular, filling your docstrings with obscure test cases makes " @@ -2830,7 +2829,7 @@ msgstr "" "En particular, llenar tus docstring con casos de prueba desconocidos conduce " "a mala documentación." -#: ../Doc/library/doctest.rst:1804 +#: ../Doc/library/doctest.rst:1806 msgid "" "When writing a docstring, choose docstring examples with care. There's an " "art to this that needs to be learned---it may not be natural at first. " @@ -2850,7 +2849,7 @@ msgstr "" "cambian. Todavía estoy sorprendido de qué tan frecuente uno de mis ejemplos " "de :mod:`doctest` paran de funcionar después de un cambio \"inofensivo\"." -#: ../Doc/library/doctest.rst:1812 +#: ../Doc/library/doctest.rst:1814 msgid "" "Doctest also makes an excellent tool for regression testing, especially if " "you don't skimp on explanatory text. By interleaving prose and examples, it " @@ -2889,7 +2888,7 @@ msgstr "" "produce resultados diferentes, difuminando la distinción entre probar y " "explicar." -#: ../Doc/library/doctest.rst:1830 +#: ../Doc/library/doctest.rst:1832 msgid "" "Regression testing is best confined to dedicated objects or files. There " "are several options for organizing tests:" @@ -2897,7 +2896,7 @@ msgstr "" "Pruebas de regresión se limitan mejor a objetos o archivos dedicados. Hay " "varias opciones para organizar pruebas:" -#: ../Doc/library/doctest.rst:1833 +#: ../Doc/library/doctest.rst:1835 msgid "" "Write text files containing test cases as interactive examples, and test the " "files using :func:`testfile` or :func:`DocFileSuite`. This is recommended, " @@ -2909,7 +2908,7 @@ msgstr "" "`DocFileSuite`. Esto es lo recomendado, aunque es más fácil hacerlo para " "nuevos proyectos, diseñados desde el comienzo para usar doctest." -#: ../Doc/library/doctest.rst:1838 +#: ../Doc/library/doctest.rst:1840 msgid "" "Define functions named ``_regrtest_topic`` that consist of single " "docstrings, containing test cases for the named topics. These functions can " @@ -2921,7 +2920,7 @@ msgstr "" "funciones se pueden incluir en el mismo archivo que el módulo, o separadas " "en un archivo de prueba separado." -#: ../Doc/library/doctest.rst:1842 +#: ../Doc/library/doctest.rst:1844 msgid "" "Define a ``__test__`` dictionary mapping from regression test topics to " "docstrings containing test cases." @@ -2929,7 +2928,7 @@ msgstr "" "Define un diccionario ``__test__`` que asigna desde temas de prueba de " "integración a los docstring que contienen casos de prueba." -#: ../Doc/library/doctest.rst:1845 +#: ../Doc/library/doctest.rst:1847 msgid "" "When you have placed your tests in a module, the module can itself be the " "test runner. When a test fails, you can arrange for your test runner to re-" @@ -2941,11 +2940,11 @@ msgstr "" "vuelva a ejecutar sólo los doctest fallidos mientras que tu depuras el " "problema. Aquí hay un ejemplo mínimo de tal *test runner*::" -#: ../Doc/library/doctest.rst:1867 +#: ../Doc/library/doctest.rst:1869 msgid "Footnotes" msgstr "Notas al pie de página" -#: ../Doc/library/doctest.rst:1868 +#: ../Doc/library/doctest.rst:1870 msgid "" "Examples containing both expected output and an exception are not supported. " "Trying to guess where one ends and the other begins is too error-prone, and " @@ -2954,3 +2953,44 @@ msgstr "" "No se admiten los ejemplos que contienen una salida esperada y una " "excepción. Intentar adivinar dónde una termina y la otra empieza es muy " "propenso a errores, y da lugar a una prueba confusa." + +#: ../Doc/library/doctest.rst:318 +msgid ">>>" +msgstr "" + +#: ../Doc/library/doctest.rst:318 +msgid "interpreter prompt" +msgstr "" + +#: ../Doc/library/doctest.rst:318 ../Doc/library/doctest.rst:556 +msgid "..." +msgstr "" + +#: ../Doc/library/doctest.rst:484 +msgid "^ (caret)" +msgstr "" + +#: ../Doc/library/doctest.rst:484 +msgid "marker" +msgstr "" + +#: ../Doc/library/doctest.rst:536 +msgid "" +msgstr "" + +#: ../Doc/library/doctest.rst:556 ../Doc/library/doctest.rst:686 +#, fuzzy +msgid "in doctests" +msgstr "Objetos DocTest" + +#: ../Doc/library/doctest.rst:686 +msgid "# (hash)" +msgstr "" + +#: ../Doc/library/doctest.rst:686 +msgid "+ (plus)" +msgstr "" + +#: ../Doc/library/doctest.rst:686 +msgid "- (minus)" +msgstr "" diff --git a/library/email.charset.po b/library/email.charset.po index 433eab0805..eef8c24c05 100644 --- a/library/email.charset.po +++ b/library/email.charset.po @@ -1,23 +1,25 @@ # Copyright (C) 2001-2020, Python Software Foundation # This file is distributed under the same license as the Python package. # Maintained by the python-doc-es workteam. -# docs-es@python.org / https://mail.python.org/mailman3/lists/docs-es.python.org/ -# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get the list of volunteers +# docs-es@python.org / +# https://mail.python.org/mailman3/lists/docs-es.python.org/ +# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get +# the list of volunteers # msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-06 11:59-0400\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-07 18:14+0200\n" +"Last-Translator: Cristián Maureira-Fredes \n" +"Language: es_ES\n" "Language-Team: python-doc-es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: Cristián Maureira-Fredes \n" -"Language: es_ES\n" -"X-Generator: Poedit 3.0\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/email.charset.rst:2 msgid ":mod:`email.charset`: Representing character sets" @@ -135,10 +137,11 @@ msgstr "" "ascii`` de 7 bits." #: ../Doc/library/email.charset.rst:60 +#, fuzzy msgid "" "If the character set must be encoded before it can be used in an email " -"header, this attribute will be set to ``Charset.QP`` (for quoted-printable), " -"``Charset.BASE64`` (for base64 encoding), or ``Charset.SHORTEST`` for the " +"header, this attribute will be set to ``charset.QP`` (for quoted-printable), " +"``charset.BASE64`` (for base64 encoding), or ``charset.SHORTEST`` for the " "shortest of QP or BASE64 encoding. Otherwise, it will be ``None``." msgstr "" "Si el conjunto de caracteres debe codificarse antes de que pueda usarse en " @@ -148,9 +151,10 @@ msgstr "" "corta QP o BASE64. De lo contrario será ``None``." #: ../Doc/library/email.charset.rst:69 +#, fuzzy msgid "" "Same as *header_encoding*, but describes the encoding for the mail message's " -"body, which indeed may be different than the header encoding. ``Charset." +"body, which indeed may be different than the header encoding. ``charset." "SHORTEST`` is not allowed for *body_encoding*." msgstr "" "Igual que *header_encoding*, pero describe la codificación del cuerpo del " @@ -223,11 +227,11 @@ msgstr "" "la cadena ``base64`` si *body_encoding* es ``BASE64``, y retorna la cadena " "``7bit`` en caso contrario." -#: ../Doc/library/email.charset.rst:148 +#: ../Doc/library/email.charset.rst:115 msgid "Return the output character set." msgstr "Return the output character set." -#: ../Doc/library/email.charset.rst:150 +#: ../Doc/library/email.charset.rst:117 msgid "" "This is the *output_charset* attribute if that is not ``None``, otherwise it " "is *input_charset*." @@ -235,11 +239,11 @@ msgstr "" "Este es el atributo *output_charset* si no es ``None``, en caso contrario es " "*input_charset*." -#: ../Doc/library/email.charset.rst:156 +#: ../Doc/library/email.charset.rst:123 msgid "Header-encode the string *string*." msgstr "Codifica como encabezado la cadena de caracteres *string*." -#: ../Doc/library/email.charset.rst:158 +#: ../Doc/library/email.charset.rst:125 msgid "" "The type of encoding (base64 or quoted-printable) will be based on the " "*header_encoding* attribute." @@ -247,11 +251,11 @@ msgstr "" "El tipo de codificación (base64 o quoted-printable) se basará en el atributo " "*header_encoding*." -#: ../Doc/library/email.charset.rst:164 +#: ../Doc/library/email.charset.rst:131 msgid "Header-encode a *string* by converting it first to bytes." msgstr "Codifica como encabezado *string* convirtiéndolo primero a bytes." -#: ../Doc/library/email.charset.rst:166 +#: ../Doc/library/email.charset.rst:133 msgid "" "This is similar to :meth:`header_encode` except that the string is fit into " "maximum line lengths as given by the argument *maxlengths*, which must be an " @@ -263,11 +267,11 @@ msgstr "" "un iterador: cada elemento retornado por este iterador proporcionará la " "siguiente longitud máxima de línea." -#: ../Doc/library/email.charset.rst:174 +#: ../Doc/library/email.charset.rst:141 msgid "Body-encode the string *string*." msgstr "Codifica como cuerpo la cadena *string*." -#: ../Doc/library/email.charset.rst:176 +#: ../Doc/library/email.charset.rst:143 msgid "" "The type of encoding (base64 or quoted-printable) will be based on the " "*body_encoding* attribute." @@ -275,7 +279,7 @@ msgstr "" "El tipo de codificación (base64 o quoted-printable) se basará en el " "atributo *body_encoding*." -#: ../Doc/library/email.charset.rst:179 +#: ../Doc/library/email.charset.rst:146 msgid "" "The :class:`Charset` class also provides a number of methods to support " "standard operations and built-in functions." @@ -283,22 +287,23 @@ msgstr "" "La clase :class:`Charset` también proporciona una serie de métodos para " "soportar operaciones estándar y funciones integradas." -#: ../Doc/library/email.charset.rst:185 +#: ../Doc/library/email.charset.rst:152 +#, fuzzy msgid "" -"Returns *input_charset* as a string coerced to lower case. :meth:`__repr__` " -"is an alias for :meth:`__str__`." +"Returns *input_charset* as a string coerced to lower case. :meth:`!__repr__` " +"is an alias for :meth:`!__str__`." msgstr "" "Retorna *input_charset* como una cadena de caracteres convertida a " "minúsculas. :meth:`__repr__` es un alias para :meth:`__str__`." -#: ../Doc/library/email.charset.rst:191 +#: ../Doc/library/email.charset.rst:158 msgid "" "This method allows you to compare two :class:`Charset` instances for " "equality." msgstr "" "Este método le permite comparar dos instancias :class:`Charset` por igualdad." -#: ../Doc/library/email.charset.rst:197 +#: ../Doc/library/email.charset.rst:164 msgid "" "This method allows you to compare two :class:`Charset` instances for " "inequality." @@ -306,7 +311,7 @@ msgstr "" "Este método le permite comparar dos instancias :class:`Charset` por " "desigualdad." -#: ../Doc/library/email.charset.rst:200 +#: ../Doc/library/email.charset.rst:167 msgid "" "The :mod:`email.charset` module also provides the following functions for " "adding new entries to the global character set, alias, and codec registries:" @@ -315,11 +320,11 @@ msgstr "" "agregar nuevas entradas al conjunto global de caracteres, alias y registros " "de códecs:" -#: ../Doc/library/email.charset.rst:206 +#: ../Doc/library/email.charset.rst:173 msgid "Add character properties to the global registry." msgstr "Añade propiedades de carácter al registro global." -#: ../Doc/library/email.charset.rst:208 +#: ../Doc/library/email.charset.rst:175 msgid "" "*charset* is the input character set, and must be the canonical name of a " "character set." @@ -327,10 +332,11 @@ msgstr "" "*charset* es el conjunto de caracteres de entrada, y debe ser el nombre " "canónico del conjunto de caracteres." -#: ../Doc/library/email.charset.rst:211 +#: ../Doc/library/email.charset.rst:178 +#, fuzzy msgid "" -"Optional *header_enc* and *body_enc* is either ``Charset.QP`` for quoted-" -"printable, ``Charset.BASE64`` for base64 encoding, ``Charset.SHORTEST`` for " +"Optional *header_enc* and *body_enc* is either ``charset.QP`` for quoted-" +"printable, ``charset.BASE64`` for base64 encoding, ``charset.SHORTEST`` for " "the shortest of quoted-printable or base64 encoding, or ``None`` for no " "encoding. ``SHORTEST`` is only valid for *header_enc*. The default is " "``None`` for no encoding." @@ -341,7 +347,7 @@ msgstr "" "codificar. ``SHORTEST`` solo es válido para *header_enc*. El valor " "predeterminado es ``None`` para no codificar." -#: ../Doc/library/email.charset.rst:217 +#: ../Doc/library/email.charset.rst:184 msgid "" "Optional *output_charset* is the character set that the output should be in. " "Conversions will proceed from input charset, to Unicode, to the output " @@ -354,7 +360,7 @@ msgstr "" "método :meth:`Charset.convert`. El valor predeterminado es la salida en el " "mismo conjunto de caracteres que la entrada." -#: ../Doc/library/email.charset.rst:222 +#: ../Doc/library/email.charset.rst:189 msgid "" "Both *input_charset* and *output_charset* must have Unicode codec entries in " "the module's character set-to-codec mapping; use :func:`add_codec` to add " @@ -366,7 +372,7 @@ msgstr "" "códec; use :func:`add_codec` para agregar códecs que el módulo no conozca. " "Consulte la documentación del módulo :mod:`codecs` para más información." -#: ../Doc/library/email.charset.rst:227 +#: ../Doc/library/email.charset.rst:194 msgid "" "The global character set registry is kept in the module global dictionary " "``CHARSETS``." @@ -374,7 +380,7 @@ msgstr "" "El registro global de conjuntos de caracteres se mantiene en el módulo " "global diccionario ``CHARSETS``." -#: ../Doc/library/email.charset.rst:233 +#: ../Doc/library/email.charset.rst:200 msgid "" "Add a character set alias. *alias* is the alias name, e.g. ``latin-1``. " "*canonical* is the character set's canonical name, e.g. ``iso-8859-1``." @@ -383,7 +389,7 @@ msgstr "" "ej. ``latin-1``. *canonical* es el nombre canónico del conjunto de " "caracteres, p. ej. ``iso-8859-1``." -#: ../Doc/library/email.charset.rst:236 +#: ../Doc/library/email.charset.rst:203 msgid "" "The global charset alias registry is kept in the module global dictionary " "``ALIASES``." @@ -391,7 +397,7 @@ msgstr "" "El registro de alias global de conjuntos de caracteres se mantiene en el " "módulo global diccionario ``ALIASES``." -#: ../Doc/library/email.charset.rst:242 +#: ../Doc/library/email.charset.rst:209 msgid "" "Add a codec that map characters in the given character set to and from " "Unicode." @@ -399,7 +405,7 @@ msgstr "" "Añade un códec que asigna caracteres en el conjunto de caracteres dado hacia " "y desde Unicode." -#: ../Doc/library/email.charset.rst:244 +#: ../Doc/library/email.charset.rst:211 msgid "" "*charset* is the canonical name of a character set. *codecname* is the name " "of a Python codec, as appropriate for the second argument to the :class:" diff --git a/library/email.encoders.po b/library/email.encoders.po index cd6227df1d..3a9f198f21 100644 --- a/library/email.encoders.po +++ b/library/email.encoders.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-03-19 11:16+0100\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-07 18:10+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,8 +19,7 @@ msgstr "" "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" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/email.encoders.rst:2 msgid ":mod:`email.encoders`: Encoders" @@ -75,10 +74,11 @@ msgstr "" "contienen datos binarios." #: ../Doc/library/email.encoders.rst:27 +#, fuzzy msgid "" "The :mod:`email` package provides some convenient encoders in its :mod:" -"`encoders` module. These encoders are actually used by the :class:`~email." -"mime.audio.MIMEAudio` and :class:`~email.mime.image.MIMEImage` class " +"`~email.encoders` module. These encoders are actually used by the :class:" +"`~email.mime.audio.MIMEAudio` and :class:`~email.mime.image.MIMEImage` class " "constructors to provide default encodings. All encoder functions take " "exactly one argument, the message object to encode. They usually extract " "the payload, encode it, and reset the payload to this newly encoded value. " diff --git a/library/email.generator.po b/library/email.generator.po index 8e0d57ab19..2d4fe47032 100644 --- a/library/email.generator.po +++ b/library/email.generator.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-10-10 22:33-0300\n" "Last-Translator: \n" "Language: es_AR\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/email.generator.rst:2 msgid ":mod:`email.generator`: Generating MIME documents" @@ -479,10 +479,11 @@ msgid "Footnotes" msgstr "Notas al pie" #: ../Doc/library/email.generator.rst:276 +#, fuzzy msgid "" "This statement assumes that you use the appropriate setting for " -"``unixfrom``, and that there are no :mod:`policy` settings calling for " -"automatic adjustments (for example, :attr:`~email.policy.Policy." +"``unixfrom``, and that there are no :mod:`email.policy` settings calling for " +"automatic adjustments (for example, :attr:`~email.policy.EmailPolicy." "refold_source` must be ``none``, which is *not* the default). It is also " "not 100% true, since if the message does not conform to the RFC standards " "occasionally information about the exact original text is lost during " diff --git a/library/email.message.po b/library/email.message.po index 2c94ea07fc..4b353a684d 100644 --- a/library/email.message.po +++ b/library/email.message.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-05 12:54+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-07 18:10+0200\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" "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" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/email.message.rst:2 msgid ":mod:`email.message`: Representing an email message" @@ -110,7 +109,8 @@ msgstr "" "proveen métodos adicionales para trabajar con cabeceras que tienen llaves " "duplicadas." -# No encuentro la manera que se me haga correcta de traducir la última oración, la escribí lo mejor que pude. +# No encuentro la manera que se me haga correcta de traducir la última +# oración, la escribí lo mejor que pude. #: ../Doc/library/email.message.rst:47 msgid "" "The *payload* is either a string or bytes object, in the case of simple " @@ -140,15 +140,16 @@ msgstr "" "la documentación del :mod:`~email.policy`." #: ../Doc/library/email.message.rst:64 +#, fuzzy msgid "" "Return the entire message flattened as a string. When optional *unixfrom* " "is true, the envelope header is included in the returned string. *unixfrom* " "defaults to ``False``. For backward compatibility with the base :class:" "`~email.message.Message` class *maxheaderlen* is accepted, but defaults to " "``None``, which means that by default the line length is controlled by the :" -"attr:`~email.policy.EmailPolicy.max_line_length` of the policy. The " -"*policy* argument may be used to override the default policy obtained from " -"the message instance. This can be used to control some of the formatting " +"attr:`~email.policy.Policy.max_line_length` of the policy. The *policy* " +"argument may be used to override the default policy obtained from the " +"message instance. This can be used to control some of the formatting " "produced by the method, since the specified *policy* will be passed to the :" "class:`~email.generator.Generator`." msgstr "" @@ -399,12 +400,13 @@ msgstr "" "el mensaje con el campo 'nombre', borre el campo primero, por ejemplo::" #: ../Doc/library/email.message.rst:216 +#, fuzzy msgid "" -"If the :mod:`policy` defines certain headers to be unique (as the standard " -"policies do), this method may raise a :exc:`ValueError` when an attempt is " -"made to assign a value to such a header when one already exists. This " -"behavior is intentional for consistency's sake, but do not depend on it as " -"we may choose to make such assignments do an automatic deletion of the " +"If the :mod:`policy ` defines certain headers to be unique (as " +"the standard policies do), this method may raise a :exc:`ValueError` when an " +"attempt is made to assign a value to such a header when one already exists. " +"This behavior is intentional for consistency's sake, but do not depend on it " +"as we may choose to make such assignments do an automatic deletion of the " "existing header in the future." msgstr "" "Si el :mod:`policy` define ciertas cabeceras para ser únicos(como lo hace el " @@ -664,10 +666,11 @@ msgstr "" "obsoleto." #: ../Doc/library/email.message.rst:380 +#, fuzzy msgid "" "Note that existing parameter values of headers may be accessed through the :" -"attr:`~email.headerregistry.BaseHeader.params` attribute of the header value " -"(for example, ``msg['Content-Type'].params['charset']``)." +"attr:`~email.headerregistry.ParameterizedMIMEHeader.params` attribute of the " +"header value (for example, ``msg['Content-Type'].params['charset']``)." msgstr "" "Tenga en cuenta que se puede acceder a los parámetros existentes de las " "cabeceras a través del atributo :attr:`~email.headerregistry.BaseHeader." @@ -680,7 +683,8 @@ msgstr "Se agregó la palabra clave ``replace``." # Optional *header* specifies an alternative to :mailheader:`Content-Type`. # sería correcto traducirlo a: -# El header *optional* especifica una alternativa a :mailheader:`Content-Type`. +# El header *optional* especifica una alternativa a +# :mailheader:`Content-Type`. # ? #: ../Doc/library/email.message.rst:389 msgid "" @@ -1137,9 +1141,10 @@ msgid "Remove the payload and all of the headers." msgstr "Elimina la carga útil y todas las cabeceras." #: ../Doc/library/email.message.rst:694 +#, fuzzy msgid "" -"Remove the payload and all of the :exc:`Content-` headers, leaving all other " -"headers intact and in their original order." +"Remove the payload and all of the :mailheader:`!Content-` headers, leaving " +"all other headers intact and in their original order." msgstr "" "Elimina la carga útil y todos los :exc:`Content-` *headers*, dejando a las " "demás cabeceras intactas y en su orden original." diff --git a/library/email.mime.po b/library/email.mime.po index 0e9f735885..c303d0b779 100644 --- a/library/email.mime.po +++ b/library/email.mime.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-21 15:54-0300\n" "Last-Translator: Sofía Denner \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/email.mime.rst:2 msgid ":mod:`email.mime`: Creating email and MIME objects from scratch" @@ -223,12 +223,13 @@ msgid "Module: :mod:`email.mime.application`" msgstr "Módulo: :mod:`email.mime.application`" #: ../Doc/library/email.mime.rst:115 +#, fuzzy msgid "" "A subclass of :class:`~email.mime.nonmultipart.MIMENonMultipart`, the :class:" "`MIMEApplication` class is used to represent MIME message objects of major " -"type :mimetype:`application`. *_data* is a string containing the raw byte " -"data. Optional *_subtype* specifies the MIME subtype and defaults to :" -"mimetype:`octet-stream`." +"type :mimetype:`application`. *_data* contains the bytes for the raw " +"application data. Optional *_subtype* specifies the MIME subtype and " +"defaults to :mimetype:`octet-stream`." msgstr "" "Una subclase de :class:`~email.mime.nonmultipart.MIMENonMultipart`, la " "clase :class:`MIMEApplication` se utiliza para representar objetos de " @@ -267,10 +268,11 @@ msgid "Module: :mod:`email.mime.audio`" msgstr "Módulo: :mod:`email.mime.audio`" #: ../Doc/library/email.mime.rst:146 +#, fuzzy msgid "" "A subclass of :class:`~email.mime.nonmultipart.MIMENonMultipart`, the :class:" "`MIMEAudio` class is used to create MIME message objects of major type :" -"mimetype:`audio`. *_audiodata* is a string containing the raw audio data. " +"mimetype:`audio`. *_audiodata* contains the bytes for the raw audio data. " "If this data can be decoded as au, wav, aiff, or aifc, then the subtype will " "be automatically included in the :mailheader:`Content-Type` header. " "Otherwise you can explicitly specify the audio subtype via the *_subtype* " @@ -313,10 +315,11 @@ msgid "Module: :mod:`email.mime.image`" msgstr "Módulo: :mod:`email.mime.image`" #: ../Doc/library/email.mime.rst:180 +#, fuzzy msgid "" "A subclass of :class:`~email.mime.nonmultipart.MIMENonMultipart`, the :class:" "`MIMEImage` class is used to create MIME message objects of major type :" -"mimetype:`image`. *_imagedata* is a string containing the raw image data. " +"mimetype:`image`. *_imagedata* contains the bytes for the raw image data. " "If this data type can be detected (jpeg, png, gif, tiff, rgb, pbm, pgm, ppm, " "rast, xbm, bmp, webp, and exr attempted), then the subtype will be " "automatically included in the :mailheader:`Content-Type` header. Otherwise " diff --git a/library/email.parser.po b/library/email.parser.po index eb5e1c5ea1..0754bd49af 100644 --- a/library/email.parser.po +++ b/library/email.parser.po @@ -1,23 +1,25 @@ # Copyright (C) 2001-2020, Python Software Foundation # This file is distributed under the same license as the Python package. # Maintained by the python-doc-es workteam. -# docs-es@python.org / https://mail.python.org/mailman3/lists/docs-es.python.org/ -# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get the list of volunteers +# docs-es@python.org / +# https://mail.python.org/mailman3/lists/docs-es.python.org/ +# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get +# the list of volunteers # msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-06 11:59-0400\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-07-26 11:31-0500\n" +"Last-Translator: Adolfo Hristo David Roque Gámez \n" +"Language: es_AR\n" "Language-Team: python-doc-es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: Adolfo Hristo David Roque Gámez \n" -"Language: es_AR\n" -"X-Generator: Poedit 2.4\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/email.parser.rst:2 msgid ":mod:`email.parser`: Parsing email messages" @@ -93,13 +95,15 @@ msgstr "" "el analizador." #: ../Doc/library/email.parser.rst:39 +#, fuzzy msgid "" "Note that the parser can be extended in limited ways, and of course you can " "implement your own parser completely from scratch. All of the logic that " "connects the :mod:`email` package's bundled parser and the :class:`~email." -"message.EmailMessage` class is embodied in the :mod:`policy` class, so a " -"custom parser can create message object trees any way it finds necessary by " -"implementing custom versions of the appropriate :mod:`policy` methods." +"message.EmailMessage` class is embodied in the :class:`~email.policy.Policy` " +"class, so a custom parser can create message object trees any way it finds " +"necessary by implementing custom versions of the appropriate :class:`!" +"Policy` methods." msgstr "" "Tenga en cuenta que el analizador puede ser extendido en formas limitadas, y " "por supuesto puedes implementar tu propio analizador completamente desde " diff --git a/library/email.po b/library/email.po index 491868cb1a..0b316b2cad 100644 --- a/library/email.po +++ b/library/email.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-16 21:42+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-10-16 11:13-0500\n" "Last-Translator: \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" -"Generated-By: Babel 2.9.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/email.rst:2 msgid ":mod:`email` --- An email and MIME handling package" @@ -276,7 +276,7 @@ msgstr "Módulo :mod:`nntplib`" msgid "NNTP (Net News Transport Protocol) client" msgstr "Cliente NNTP (Protocolo de transporte de noticias de red)" -#: ../Doc/library/email.rst:149 +#: ../Doc/library/email.rst:148 msgid "Module :mod:`mailbox`" msgstr "Módulo :mod:`mailbox`" @@ -288,10 +288,8 @@ msgstr "" "Herramientas para crear, leer y administrar colecciones de mensajes en disco " "utilizando una variedad de formatos estándar." -#: ../Doc/library/email.rst:151 -msgid "Module :mod:`smtpd`" -msgstr "Módulo :mod:`smtpd`" +#~ msgid "Module :mod:`smtpd`" +#~ msgstr "Módulo :mod:`smtpd`" -#: ../Doc/library/email.rst:152 -msgid "SMTP server framework (primarily useful for testing)" -msgstr "Marco del servidor SMTP (principalmente útil para pruebas)" +#~ msgid "SMTP server framework (primarily useful for testing)" +#~ msgstr "Marco del servidor SMTP (principalmente útil para pruebas)" diff --git a/library/email.utils.po b/library/email.utils.po index 412054bfd1..d90a9a8bc2 100644 --- a/library/email.utils.po +++ b/library/email.utils.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-16 21:42+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-10-29 22:58+0100\n" "Last-Translator: Juan C. Tello \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" -"Generated-By: Babel 2.9.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/email.utils.rst:2 msgid ":mod:`email.utils`: Miscellaneous utilities" @@ -38,17 +38,14 @@ msgstr "" "utils`:" #: ../Doc/library/email.utils.rst:16 +#, fuzzy msgid "" "Return local time as an aware datetime object. If called without arguments, " "return current time. Otherwise *dt* argument should be a :class:`~datetime." "datetime` instance, and it is converted to the local time zone according to " "the system time zone database. If *dt* is naive (that is, ``dt.tzinfo`` is " -"``None``), it is assumed to be in local time. In this case, a positive or " -"zero value for *isdst* causes ``localtime`` to presume initially that summer " -"time (for example, Daylight Saving Time) is or is not (respectively) in " -"effect for the specified time. A negative value for *isdst* causes the " -"``localtime`` to attempt to divine whether summer time is in effect for the " -"specified time." +"``None``), it is assumed to be in local time. The *isdst* parameter is " +"ignored." msgstr "" "Retorna el tiempo local como un objeto datetime consciente. Si se llama sin " "argumentos, retorna el tiempo actual. De lo contrario, el argumento *dt* " @@ -61,7 +58,11 @@ msgstr "" "negativo para *isdst* hace que el ``localtime`` intente determinar si el " "horario de verano está en efecto para el tiempo especificado." -#: ../Doc/library/email.utils.rst:32 +#: ../Doc/library/email.utils.rst:26 +msgid "The *isdst* parameter." +msgstr "" + +#: ../Doc/library/email.utils.rst:30 msgid "" "Returns a string suitable for an :rfc:`2822`\\ -compliant :mailheader:" "`Message-ID` header. Optional *idstring* if given, is a string used to " @@ -80,11 +81,11 @@ msgstr "" "algunos casos, como cuando se está construyendo un sistema distribuido que " "utiliza un nombre de dominio consistente a lo largo de varios ordenadores." -#: ../Doc/library/email.utils.rst:40 +#: ../Doc/library/email.utils.rst:38 msgid "Added the *domain* keyword." msgstr "Se añadió la palabra clave *domain*." -#: ../Doc/library/email.utils.rst:44 +#: ../Doc/library/email.utils.rst:42 msgid "" "The remaining functions are part of the legacy (``Compat32``) email API. " "There is no need to directly use these with the new API, since the parsing " @@ -97,7 +98,7 @@ msgstr "" "realizado automáticamente por el mecanismo de análisis sintáctico de la " "nueva API." -#: ../Doc/library/email.utils.rst:52 +#: ../Doc/library/email.utils.rst:50 msgid "" "Return a new string with backslashes in *str* replaced by two backslashes, " "and double quotes replaced by backslash-double quote." @@ -106,7 +107,7 @@ msgstr "" "*str* reemplazado por dos barras invertidas, y comillas dobles reemplazadas " "por barra invertida seguido de comillas dobles." -#: ../Doc/library/email.utils.rst:58 +#: ../Doc/library/email.utils.rst:56 msgid "" "Return a new string which is an *unquoted* version of *str*. If *str* ends " "and begins with double quotes, they are stripped off. Likewise if *str* " @@ -117,7 +118,7 @@ msgstr "" "eliminadas. De igual manera si *str* empieza y termina con comillas " "angulares (``<`` y ``>``), éstas son eliminadas." -#: ../Doc/library/email.utils.rst:65 +#: ../Doc/library/email.utils.rst:63 msgid "" "Parse address -- which should be the value of some address-containing field " "such as :mailheader:`To` or :mailheader:`Cc` -- into its constituent " @@ -130,7 +131,7 @@ msgstr "" "información, a menos que la interpretación falle, en cuyo caso una 2-tupla " "de ``('','')`` es retornada." -#: ../Doc/library/email.utils.rst:73 +#: ../Doc/library/email.utils.rst:71 msgid "" "The inverse of :meth:`parseaddr`, this takes a 2-tuple of the form " "``(realname, email_address)`` and returns the string value suitable for a :" @@ -143,7 +144,7 @@ msgstr "" "de *pair* es falso, entonces el segundo elemento es retornado sin " "modificación." -#: ../Doc/library/email.utils.rst:78 +#: ../Doc/library/email.utils.rst:76 msgid "" "Optional *charset* is the character set that will be used in the :rfc:`2047` " "encoding of the ``realname`` if the ``realname`` contains non-ASCII " @@ -155,11 +156,11 @@ msgstr "" "caracteres que no sean ASCII. Puede ser una instancia de :class:`str` o :" "class:`~email.charset.Charset`. El valor predeterminado es ``utf-8``." -#: ../Doc/library/email.utils.rst:83 +#: ../Doc/library/email.utils.rst:81 msgid "Added the *charset* option." msgstr "Se añadió la opción *charset*." -#: ../Doc/library/email.utils.rst:89 +#: ../Doc/library/email.utils.rst:87 msgid "" "This method returns a list of 2-tuples of the form returned by " "``parseaddr()``. *fieldvalues* is a sequence of header field values as might " @@ -172,7 +173,7 @@ msgstr "" "message.Message.get_all>`. Aquí hay un ejemplo sencillo que obtiene todos " "los destinatarios de un mensaje::" -#: ../Doc/library/email.utils.rst:105 +#: ../Doc/library/email.utils.rst:103 msgid "" "Attempts to parse a date according to the rules in :rfc:`2822`. however, " "some mailers don't follow that format as specified, so :func:`parsedate` " @@ -192,7 +193,7 @@ msgstr "" "retornado. Observar que los índices 6,7 y 8 de la tupla resultante no son " "utilizables." -#: ../Doc/library/email.utils.rst:116 +#: ../Doc/library/email.utils.rst:114 msgid "" "Performs the same function as :func:`parsedate`, but returns either ``None`` " "or a 10-tuple; the first 9 elements make up a tuple that can be passed " @@ -211,7 +212,7 @@ msgstr "" "representa UTC. Nótese que los índices 6, 7 y 8 de la tupla resultante no " "son utilizables." -#: ../Doc/library/email.utils.rst:126 +#: ../Doc/library/email.utils.rst:124 msgid "" "The inverse of :func:`format_datetime`. Performs the same function as :func:" "`parsedate`, but on success returns a :mod:`~datetime.datetime`; otherwise " @@ -236,7 +237,7 @@ msgstr "" "el ``datetime`` será un ``datetime`` consciente con el correspondiente :" "class:`~datetime.timezone` :class:`~datetime.tzinfo`." -#: ../Doc/library/email.utils.rst:142 +#: ../Doc/library/email.utils.rst:140 msgid "" "Turn a 10-tuple as returned by :func:`parsedate_tz` into a UTC timestamp " "(seconds since the Epoch). If the timezone item in the tuple is ``None``, " @@ -246,13 +247,13 @@ msgstr "" "de tiempo UTC (segundos desde la Época). Si la zona horaria en la tupla es " "``None``, asume el tiempo local." -#: ../Doc/library/email.utils.rst:149 +#: ../Doc/library/email.utils.rst:147 msgid "Returns a date string as per :rfc:`2822`, e.g.::" msgstr "" "Retorna una fecha como una cadena de caracteres de acuerdo a :rfc:`2822`, " "por ejemplo::" -#: ../Doc/library/email.utils.rst:153 +#: ../Doc/library/email.utils.rst:151 msgid "" "Optional *timeval* if given is a floating point time value as accepted by :" "func:`time.gmtime` and :func:`time.localtime`, otherwise the current time is " @@ -262,7 +263,7 @@ msgstr "" "por :func:`time.gmtime` y :func:`time.localtime`. Si no es dado, el tiempo " "actual es usado." -#: ../Doc/library/email.utils.rst:157 +#: ../Doc/library/email.utils.rst:155 msgid "" "Optional *localtime* is a flag that when ``True``, interprets *timeval*, and " "returns a date relative to the local timezone instead of UTC, properly " @@ -274,7 +275,7 @@ msgstr "" "UTC, tomando apropiadamente en cuenta el horario de verano. El valor " "predeterminado es ``False`` con lo cual UTC es utilizado." -#: ../Doc/library/email.utils.rst:162 +#: ../Doc/library/email.utils.rst:160 msgid "" "Optional *usegmt* is a flag that when ``True``, outputs a date string with " "the timezone as an ascii string ``GMT``, rather than a numeric ``-0000``. " @@ -287,7 +288,7 @@ msgstr "" "algunos protocolos (como HTTP). Sólo aplica cuando *localtime* es ``False``. " "El valor predeterminado es ``False``." -#: ../Doc/library/email.utils.rst:170 +#: ../Doc/library/email.utils.rst:168 msgid "" "Like ``formatdate``, but the input is a :mod:`datetime` instance. If it is " "a naive datetime, it is assumed to be \"UTC with no information about the " @@ -308,11 +309,11 @@ msgstr "" "horaria. Esto provee una manera de generar cabeceras de fecha HTTP conforme " "estándares." -#: ../Doc/library/email.utils.rst:184 +#: ../Doc/library/email.utils.rst:182 msgid "Decode the string *s* according to :rfc:`2231`." msgstr "Decodifica la cadena de caracteres *s* de acuerdo a :rfc:`2231`." -#: ../Doc/library/email.utils.rst:189 +#: ../Doc/library/email.utils.rst:187 msgid "" "Encode the string *s* according to :rfc:`2231`. Optional *charset* and " "*language*, if given is the character set name and language name to use. If " @@ -326,7 +327,7 @@ msgstr "" "Si *charset* es dado pero *language* no, la cadena de caracteres es " "codificada usando la cadena de caracteres vacía para *language*." -#: ../Doc/library/email.utils.rst:197 +#: ../Doc/library/email.utils.rst:195 msgid "" "When a header parameter is encoded in :rfc:`2231` format, :meth:`Message." "get_param ` may return a 3-tuple containing " @@ -347,7 +348,7 @@ msgstr "" "caracteres a utilizar si el especificado en la cabecera :rfc:`2231` no es " "conocido por Python; su valor predeterminado es ``'us-ascii'``." -#: ../Doc/library/email.utils.rst:206 +#: ../Doc/library/email.utils.rst:204 msgid "" "For convenience, if the *value* passed to :func:`collapse_rfc2231_value` is " "not a tuple, it should be a string and it is returned unquoted." @@ -355,7 +356,7 @@ msgstr "" "Por conveniencia, si el *value* pasado a :func:`collapse_rfc2231_value` no " "es una tupla, debería ser una cadena de caracteres y se retorna sin citar." -#: ../Doc/library/email.utils.rst:212 +#: ../Doc/library/email.utils.rst:210 msgid "" "Decode parameters list according to :rfc:`2231`. *params* is a sequence of " "2-tuples containing elements of the form ``(content-type, string-value)``." @@ -364,11 +365,11 @@ msgstr "" "secuencia de 2-tuplas conteniendo elementos de la forma ``(content-type, " "string-value)``." -#: ../Doc/library/email.utils.rst:217 +#: ../Doc/library/email.utils.rst:215 msgid "Footnotes" msgstr "Notas a pie de página" -#: ../Doc/library/email.utils.rst:218 +#: ../Doc/library/email.utils.rst:216 msgid "" "Note that the sign of the timezone offset is the opposite of the sign of the " "``time.timezone`` variable for the same timezone; the latter variable " diff --git a/library/ensurepip.po b/library/ensurepip.po index 648d94e5c4..ae3151ab4e 100644 --- a/library/ensurepip.po +++ b/library/ensurepip.po @@ -10,22 +10,26 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-10-06 15:40+0200\n" "Last-Translator: Juan Biondi \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/ensurepip.rst:2 msgid ":mod:`ensurepip` --- Bootstrapping the ``pip`` installer" msgstr ":mod:`ensurepip` --- Ejecutando el instalador ``pip``" -#: ../Doc/library/ensurepip.rst:12 +#: ../Doc/library/ensurepip.rst:10 +msgid "**Source code:** :source:`Lib/ensurepip`" +msgstr "" + +#: ../Doc/library/ensurepip.rst:14 msgid "" "The :mod:`ensurepip` package provides support for bootstrapping the ``pip`` " "installer into an existing Python installation or virtual environment. This " @@ -41,7 +45,7 @@ msgstr "" "estable disponible se incluye con el mantenimiento y las versiones de " "características del intérprete de referencia CPython." -#: ../Doc/library/ensurepip.rst:19 +#: ../Doc/library/ensurepip.rst:21 msgid "" "In most cases, end users of Python shouldn't need to invoke this module " "directly (as ``pip`` should be bootstrapped by default), but it may be " @@ -54,7 +58,7 @@ msgstr "" "``pip`` al instalar Python (o al crear un entorno virtual) o después de " "desinstalar explícitamente ``pip``." -#: ../Doc/library/ensurepip.rst:27 +#: ../Doc/library/ensurepip.rst:29 msgid "" "This module *does not* access the internet. All of the components needed to " "bootstrap ``pip`` are included as internal parts of the package." @@ -62,27 +66,28 @@ msgstr "" "Este módulo *no* accede a Internet. Todos los componentes necesarios para " "ejecutar ``pip`` se incluyen como partes internas del paquete." -#: ../Doc/library/ensurepip.rst:34 +#: ../Doc/library/ensurepip.rst:36 msgid ":ref:`installing-index`" msgstr ":ref:`installing-index`" -#: ../Doc/library/ensurepip.rst:34 +#: ../Doc/library/ensurepip.rst:36 msgid "The end user guide for installing Python packages" msgstr "La guía del usuario final para instalar paquetes python" -#: ../Doc/library/ensurepip.rst:36 +#: ../Doc/library/ensurepip.rst:38 msgid ":pep:`453`: Explicit bootstrapping of pip in Python installations" msgstr ":pep:`453`: Arranque explícito de pip en instalaciones de Python" -#: ../Doc/library/ensurepip.rst:37 +#: ../Doc/library/ensurepip.rst:39 msgid "The original rationale and specification for this module." msgstr "La justificación original y la especificación de este módulo." +#: ../Doc/includes/wasm-notavail.rst:3 #, fuzzy msgid ":ref:`Availability `: not Emscripten, not WASI." msgstr ":ref:`Disponibilidad `: no Emscripten, no WASI." -#: ../Doc/library/cpython/Doc/includes/wasm-notavail.rst:5 +#: ../Doc/includes/wasm-notavail.rst:5 #, fuzzy msgid "" "This module does not work or is not available on WebAssembly platforms " @@ -93,22 +98,22 @@ msgstr "" "``wasm32-emscripten`` y ``wasm32-wasi``. Consulte :ref:`wasm-availability` " "para obtener más información." -#: ../Doc/library/ensurepip.rst:42 +#: ../Doc/library/ensurepip.rst:44 msgid "Command line interface" msgstr "Interfaz de línea de comandos" -#: ../Doc/library/ensurepip.rst:44 +#: ../Doc/library/ensurepip.rst:46 msgid "" "The command line interface is invoked using the interpreter's ``-m`` switch." msgstr "" "La interfaz de línea de comandos se invoca mediante el modificador ``-m`` " "del intérprete." -#: ../Doc/library/ensurepip.rst:46 +#: ../Doc/library/ensurepip.rst:48 msgid "The simplest possible invocation is::" msgstr "La invocación más simple posible es::" -#: ../Doc/library/ensurepip.rst:50 +#: ../Doc/library/ensurepip.rst:52 msgid "" "This invocation will install ``pip`` if it is not already installed, but " "otherwise does nothing. To ensure the installed version of ``pip`` is at " @@ -120,7 +125,7 @@ msgstr "" "``pip`` sea al menos tan reciente como la disponible en ``ensurepip``, pase " "la opción ``--upgrade``:" -#: ../Doc/library/ensurepip.rst:57 +#: ../Doc/library/ensurepip.rst:59 msgid "" "By default, ``pip`` is installed into the current virtual environment (if " "one is active) or into the system site packages (if there is no active " @@ -132,9 +137,10 @@ msgstr "" "entorno virtual activo). La ubicación de instalación se puede controlar a " "través de dos opciones de línea de comandos adicionales:" -#: ../Doc/library/ensurepip.rst:62 +#: ../Doc/library/ensurepip.rst:64 +#, fuzzy msgid "" -"``--root ``: Installs ``pip`` relative to the given root directory " +":samp:`--root {dir}`: Installs ``pip`` relative to the given root directory " "rather than the root of the currently active virtual environment (if any) or " "the default root for the current Python installation." msgstr "" @@ -142,7 +148,7 @@ msgstr "" "lugar de la raíz del entorno virtual activo actualmente (si existe) o la " "raíz predeterminada para la instalación actual de Python." -#: ../Doc/library/ensurepip.rst:65 +#: ../Doc/library/ensurepip.rst:67 msgid "" "``--user``: Installs ``pip`` into the user site packages directory rather " "than globally for the current Python installation (this option is not " @@ -152,7 +158,7 @@ msgstr "" "en lugar de globalmente para la instalación actual de Python (esta opción no " "está permitida dentro de un entorno virtual activo)." -#: ../Doc/library/ensurepip.rst:69 +#: ../Doc/library/ensurepip.rst:71 msgid "" "By default, the scripts ``pipX`` and ``pipX.Y`` will be installed (where X.Y " "stands for the version of Python used to invoke ``ensurepip``). The scripts " @@ -163,7 +169,7 @@ msgstr "" "``ensurepip``). Los scripts instalados se pueden controlar a través de dos " "opciones de línea de comandos adicionales:" -#: ../Doc/library/ensurepip.rst:74 +#: ../Doc/library/ensurepip.rst:76 msgid "" "``--altinstall``: if an alternate installation is requested, the ``pipX`` " "script will *not* be installed." @@ -171,7 +177,7 @@ msgstr "" "``--altinstall``: si se solicita una instalación alternativa, *no* se " "instalará el script ``pipX``." -#: ../Doc/library/ensurepip.rst:77 +#: ../Doc/library/ensurepip.rst:79 msgid "" "``--default-pip``: if a \"default pip\" installation is requested, the " "``pip`` script will be installed in addition to the two regular scripts." @@ -179,22 +185,22 @@ msgstr "" "``--default-pip``: si se solicita una instalación de \"pip predeterminado\", " "se instalará el script ``pip`` además de los dos scripts regulares." -#: ../Doc/library/ensurepip.rst:80 +#: ../Doc/library/ensurepip.rst:82 msgid "" "Providing both of the script selection options will trigger an exception." msgstr "" "Proporcionar ambas opciones de selección de script desencadenará una " "excepción." -#: ../Doc/library/ensurepip.rst:84 +#: ../Doc/library/ensurepip.rst:86 msgid "Module API" msgstr "API del módulo" -#: ../Doc/library/ensurepip.rst:86 +#: ../Doc/library/ensurepip.rst:88 msgid ":mod:`ensurepip` exposes two functions for programmatic use:" msgstr ":mod:`ensurepip` expone dos funciones para su uso programático:" -#: ../Doc/library/ensurepip.rst:90 +#: ../Doc/library/ensurepip.rst:92 msgid "" "Returns a string specifying the available version of pip that will be " "installed when bootstrapping an environment." @@ -202,11 +208,11 @@ msgstr "" "Retorna una cadena que especifica la versión disponible de pip que se " "instalará al arrancar un entorno." -#: ../Doc/library/ensurepip.rst:97 +#: ../Doc/library/ensurepip.rst:99 msgid "Bootstraps ``pip`` into the current or designated environment." msgstr "Ejecuta ``pip`` en el entorno actual o designado." -#: ../Doc/library/ensurepip.rst:99 +#: ../Doc/library/ensurepip.rst:101 msgid "" "*root* specifies an alternative root directory to install relative to. If " "*root* is ``None``, then installation uses the default install location for " @@ -216,7 +222,7 @@ msgstr "" "con. Si *root* es ``None``, la instalación utiliza la ubicación de " "instalación predeterminada para el entorno actual." -#: ../Doc/library/ensurepip.rst:103 +#: ../Doc/library/ensurepip.rst:105 msgid "" "*upgrade* indicates whether or not to upgrade an existing installation of an " "earlier version of ``pip`` to the available version." @@ -224,7 +230,7 @@ msgstr "" "*upgrade* indica si se debe actualizar o no una instalación existente de una " "versión anterior de ``pip`` a la versión disponible." -#: ../Doc/library/ensurepip.rst:106 +#: ../Doc/library/ensurepip.rst:108 msgid "" "*user* indicates whether to use the user scheme rather than installing " "globally." @@ -232,7 +238,7 @@ msgstr "" "*user* indica si se debe utilizar el esquema de usuario en lugar de instalar " "globalmente." -#: ../Doc/library/ensurepip.rst:109 +#: ../Doc/library/ensurepip.rst:111 msgid "" "By default, the scripts ``pipX`` and ``pipX.Y`` will be installed (where X.Y " "stands for the current version of Python)." @@ -240,11 +246,11 @@ msgstr "" "De forma predeterminada, se instalarán los scripts ``pipX`` y ``pipX.Y`` " "(donde X.Y representa la versión actual de Python)." -#: ../Doc/library/ensurepip.rst:112 +#: ../Doc/library/ensurepip.rst:114 msgid "If *altinstall* is set, then ``pipX`` will *not* be installed." msgstr "Si se establece *altinstall*, *no* se instalará ``pipX``." -#: ../Doc/library/ensurepip.rst:114 +#: ../Doc/library/ensurepip.rst:116 msgid "" "If *default_pip* is set, then ``pip`` will be installed in addition to the " "two regular scripts." @@ -252,14 +258,14 @@ msgstr "" "Si se establece *default_pip*, se instalará ``pip`` además de los dos " "scripts normales." -#: ../Doc/library/ensurepip.rst:117 +#: ../Doc/library/ensurepip.rst:119 msgid "" "Setting both *altinstall* and *default_pip* will trigger :exc:`ValueError`." msgstr "" "Establecer tanto *altinstall* como *default_pip* desencadenará :exc:" "`ValueError`." -#: ../Doc/library/ensurepip.rst:120 +#: ../Doc/library/ensurepip.rst:122 msgid "" "*verbosity* controls the level of output to :data:`sys.stdout` from the " "bootstrapping operation." @@ -267,7 +273,7 @@ msgstr "" "*verbosity* controla el nivel de salida a :data:`sys.stdout` de la operación " "de ejecución." -#: ../Doc/library/ensurepip.rst:132 +#: ../Doc/library/ensurepip.rst:134 msgid "" "Raises an :ref:`auditing event ` ``ensurepip.bootstrap`` with " "argument ``root``." @@ -275,7 +281,7 @@ msgstr "" "Genera un evento :ref:`auditing ` ``ensurepip.bootstrap`` con el " "argumento ``root``." -#: ../Doc/library/ensurepip.rst:127 +#: ../Doc/library/ensurepip.rst:129 msgid "" "The bootstrapping process has side effects on both ``sys.path`` and ``os." "environ``. Invoking the command line interface in a subprocess instead " @@ -285,7 +291,7 @@ msgstr "" "``os.environ``. Invocar la interfaz de línea de comandos en un subproceso en " "su lugar permite evitar estos efectos secundarios." -#: ../Doc/library/ensurepip.rst:133 +#: ../Doc/library/ensurepip.rst:135 msgid "" "The bootstrapping process may install additional modules required by " "``pip``, but other software should not assume those dependencies will always " diff --git a/library/enum.po b/library/enum.po index 55f99ef0d0..d12adefb3b 100644 --- a/library/enum.po +++ b/library/enum.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-07 18:56+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/enum.rst:2 msgid ":mod:`enum` --- Support for enumerations" @@ -59,18 +59,21 @@ msgstr "" "es un conjunto de nombres simbólicos (miembros) vinculados a valores únicos" #: ../Doc/library/enum.rst:30 -msgid "can be iterated over to return its members in definition order" +#, fuzzy +msgid "" +"can be iterated over to return its canonical (i.e. non-alias) members in " +"definition order" msgstr "se puede iterar para retornar sus miembros en orden de definición" -#: ../Doc/library/enum.rst:31 +#: ../Doc/library/enum.rst:32 msgid "uses *call* syntax to return members by value" msgstr "usa la sintaxis *call* para retornar miembros por valor" -#: ../Doc/library/enum.rst:32 +#: ../Doc/library/enum.rst:33 msgid "uses *index* syntax to return members by name" msgstr "usa la sintaxis *index* para retornar miembros por nombre" -#: ../Doc/library/enum.rst:34 +#: ../Doc/library/enum.rst:35 msgid "" "Enumerations are created either by using :keyword:`class` syntax, or by " "using function-call syntax::" @@ -78,7 +81,7 @@ msgstr "" "Las enumeraciones se crean mediante la sintaxis :keyword:`class` o mediante " "la sintaxis de llamadas a funciones:" -#: ../Doc/library/enum.rst:48 +#: ../Doc/library/enum.rst:49 msgid "" "Even though we can use :keyword:`class` syntax to create Enums, Enums are " "not normal Python classes. See :ref:`How are Enums different? ` para más detalles." -#: ../Doc/library/enum.rst:52 +#: ../Doc/library/enum.rst:53 msgid "Nomenclature" msgstr "Nomenclatura" -#: ../Doc/library/enum.rst:54 -msgid "The class :class:`Color` is an *enumeration* (or *enum*)" +#: ../Doc/library/enum.rst:55 +#, fuzzy +msgid "The class :class:`!Color` is an *enumeration* (or *enum*)" msgstr "La clase :class:`Color` es una *enumeración* (o *enum*)" -#: ../Doc/library/enum.rst:55 +#: ../Doc/library/enum.rst:56 +#, fuzzy msgid "" -"The attributes :attr:`Color.RED`, :attr:`Color.GREEN`, etc., are " +"The attributes :attr:`!Color.RED`, :attr:`!Color.GREEN`, etc., are " "*enumeration members* (or *members*) and are functionally constants." msgstr "" "Los atributos :attr:`Color.RED`, :attr:`Color.GREEN`, etc., son " "*enumeraciones miembros* (o *miembros*) y son funcionalmente constantes." -#: ../Doc/library/enum.rst:57 +#: ../Doc/library/enum.rst:58 +#, fuzzy msgid "" -"The enum members have *names* and *values* (the name of :attr:`Color.RED` is " -"``RED``, the value of :attr:`Color.BLUE` is ``3``, etc.)" +"The enum members have *names* and *values* (the name of :attr:`!Color.RED` " +"is ``RED``, the value of :attr:`!Color.BLUE` is ``3``, etc.)" msgstr "" "Los miembros de la enumeración tienen *nombres* y *valores* (el nombre de :" "attr:`Color.RED` es ``ROJO``, el valor de :attr:`Color.BLUE` es ``3``, etc. )" -#: ../Doc/library/enum.rst:64 +#: ../Doc/library/enum.rst:65 msgid "Module Contents" msgstr "Contenido del Módulo" -#: ../Doc/library/enum.rst:66 +#: ../Doc/library/enum.rst:67 msgid ":class:`EnumType`" msgstr ":class:`EnumType`" -#: ../Doc/library/enum.rst:68 +#: ../Doc/library/enum.rst:69 msgid "The ``type`` for Enum and its subclasses." msgstr "El ``type`` para Enum y sus subclases." -#: ../Doc/library/enum.rst:70 +#: ../Doc/library/enum.rst:71 msgid ":class:`Enum`" msgstr ":class:`Enum`" -#: ../Doc/library/enum.rst:72 +#: ../Doc/library/enum.rst:73 msgid "Base class for creating enumerated constants." msgstr "Clase base para crear constantes enumeradas." -#: ../Doc/library/enum.rst:74 +#: ../Doc/library/enum.rst:75 msgid ":class:`IntEnum`" msgstr ":class:`IntEnum`" -#: ../Doc/library/enum.rst:76 +#: ../Doc/library/enum.rst:77 msgid "" "Base class for creating enumerated constants that are also subclasses of :" "class:`int`. (`Notes`_)" @@ -144,11 +150,11 @@ msgstr "" "Clase base para crear constantes enumeradas que también son subclases de :" "class:`int`. (`Notes`_)" -#: ../Doc/library/enum.rst:79 +#: ../Doc/library/enum.rst:80 msgid ":class:`StrEnum`" msgstr ":class:`StrEnum`" -#: ../Doc/library/enum.rst:81 +#: ../Doc/library/enum.rst:82 msgid "" "Base class for creating enumerated constants that are also subclasses of :" "class:`str`. (`Notes`_)" @@ -156,11 +162,11 @@ msgstr "" "Clase base para crear constantes enumeradas que también son subclases de :" "class:`str`. (`Notes`_)" -#: ../Doc/library/enum.rst:84 +#: ../Doc/library/enum.rst:85 msgid ":class:`Flag`" msgstr ":class:`Flag`" -#: ../Doc/library/enum.rst:86 +#: ../Doc/library/enum.rst:87 msgid "" "Base class for creating enumerated constants that can be combined using the " "bitwise operations without losing their :class:`Flag` membership." @@ -168,11 +174,11 @@ msgstr "" "Clase base para crear constantes enumeradas que se pueden combinar " "utilizando las operaciones *bitwise* sin perder su membresía :class:`Flag`." -#: ../Doc/library/enum.rst:89 +#: ../Doc/library/enum.rst:90 msgid ":class:`IntFlag`" msgstr ":class:`IntFlag`" -#: ../Doc/library/enum.rst:91 +#: ../Doc/library/enum.rst:92 msgid "" "Base class for creating enumerated constants that can be combined using the " "bitwise operators without losing their :class:`IntFlag` membership. :class:" @@ -182,11 +188,11 @@ msgstr "" "los operadores bit a bit sin perder su pertenencia a :class:`IntFlag`. Los " "miembros :class:`IntFlag` también son subclases de :class:`int`. (`Notes`_)" -#: ../Doc/library/enum.rst:95 +#: ../Doc/library/enum.rst:96 msgid ":class:`ReprEnum`" msgstr ":class:`ReprEnum`" -#: ../Doc/library/enum.rst:97 +#: ../Doc/library/enum.rst:98 msgid "" "Used by :class:`IntEnum`, :class:`StrEnum`, and :class:`IntFlag` to keep " "the :class:`str() ` of the mixed-in type." @@ -194,11 +200,11 @@ msgstr "" "Usado por :class:`IntEnum`, :class:`StrEnum` y :class:`IntFlag` para " "mantener el :class:`str() ` del tipo mixto." -#: ../Doc/library/enum.rst:100 +#: ../Doc/library/enum.rst:101 msgid ":class:`EnumCheck`" msgstr ":class:`EnumCheck`" -#: ../Doc/library/enum.rst:102 +#: ../Doc/library/enum.rst:103 msgid "" "An enumeration with the values ``CONTINUOUS``, ``NAMED_FLAGS``, and " "``UNIQUE``, for use with :func:`verify` to ensure various constraints are " @@ -208,11 +214,11 @@ msgstr "" "``UNIQUE``, para usar con :func:`verify` para garantizar que una enumeración " "determinada cumpla varias restricciones." -#: ../Doc/library/enum.rst:106 +#: ../Doc/library/enum.rst:107 msgid ":class:`FlagBoundary`" msgstr ":class:`FlagBoundary`" -#: ../Doc/library/enum.rst:108 +#: ../Doc/library/enum.rst:109 msgid "" "An enumeration with the values ``STRICT``, ``CONFORM``, ``EJECT``, and " "``KEEP`` which allows for more fine-grained control over how invalid values " @@ -222,11 +228,11 @@ msgstr "" "``KEEP`` que permite un control más detallado sobre cómo se tratan los " "valores no válidos en una enumeración." -#: ../Doc/library/enum.rst:112 +#: ../Doc/library/enum.rst:113 msgid ":class:`auto`" msgstr ":class:`auto`" -#: ../Doc/library/enum.rst:114 +#: ../Doc/library/enum.rst:115 msgid "" "Instances are replaced with an appropriate value for Enum members. :class:" "`StrEnum` defaults to the lower-cased version of the member name, while " @@ -237,34 +243,36 @@ msgstr "" "del nombre del miembro, mientras que otras enumeraciones tienen el valor " "predeterminado de 1 y aumentan a partir de ahí." -#: ../Doc/library/enum.rst:118 +#: ../Doc/library/enum.rst:119 msgid ":func:`~enum.property`" msgstr ":func:`~enum.property`" -#: ../Doc/library/enum.rst:120 +#: ../Doc/library/enum.rst:121 +#, fuzzy msgid "" "Allows :class:`Enum` members to have attributes without conflicting with " -"member names." +"member names. The ``value`` and ``name`` attributes are implemented this " +"way." msgstr "" "Permite que los miembros :class:`Enum` tengan atributos sin entrar en " "conflicto con los nombres de los miembros." -#: ../Doc/library/enum.rst:123 +#: ../Doc/library/enum.rst:125 msgid ":func:`unique`" msgstr ":func:`unique`" -#: ../Doc/library/enum.rst:125 +#: ../Doc/library/enum.rst:127 msgid "" "Enum class decorator that ensures only one name is bound to any one value." msgstr "" "El decorador de clase Enum que garantiza que solo un nombre esté vinculado a " "cualquier valor." -#: ../Doc/library/enum.rst:127 +#: ../Doc/library/enum.rst:129 msgid ":func:`verify`" msgstr ":func:`verify`" -#: ../Doc/library/enum.rst:129 +#: ../Doc/library/enum.rst:131 msgid "" "Enum class decorator that checks user-selectable constraints on an " "enumeration." @@ -272,52 +280,53 @@ msgstr "" "Decorador de clase Enum que verifica las restricciones seleccionables por el " "usuario en una enumeración." -#: ../Doc/library/enum.rst:132 +#: ../Doc/library/enum.rst:134 msgid ":func:`member`" msgstr ":func:`member`" -#: ../Doc/library/enum.rst:134 +#: ../Doc/library/enum.rst:136 msgid "Make ``obj`` a member. Can be used as a decorator." msgstr "Convierta a ``obj`` en miembro. Se puede utilizar como decorador." -#: ../Doc/library/enum.rst:136 +#: ../Doc/library/enum.rst:138 msgid ":func:`nonmember`" msgstr ":func:`nonmember`" -#: ../Doc/library/enum.rst:138 +#: ../Doc/library/enum.rst:140 msgid "Do not make ``obj`` a member. Can be used as a decorator." msgstr "No convierta a ``obj`` en miembro. Se puede utilizar como decorador." -#: ../Doc/library/enum.rst:140 +#: ../Doc/library/enum.rst:142 msgid ":func:`global_enum`" msgstr ":func:`global_enum`" -#: ../Doc/library/enum.rst:142 +#: ../Doc/library/enum.rst:144 +#, fuzzy msgid "" "Modify the :class:`str() ` and :func:`repr` of an enum to show its " -"members as belonging to the module instead of its class. Should only be used " -"if the enum members will be exported to the module global namespace." +"members as belonging to the module instead of its class, and export the enum " +"members to the global namespace." msgstr "" "Modifique :class:`str() ` y :func:`repr` de una enumeración para " "mostrar sus miembros como pertenecientes al módulo en lugar de a su clase. " "Solo debe usarse si los miembros de la enumeración se exportarán al espacio " "de nombres global del módulo." -#: ../Doc/library/enum.rst:147 +#: ../Doc/library/enum.rst:148 msgid ":func:`show_flag_values`" msgstr ":func:`show_flag_values`" -#: ../Doc/library/enum.rst:149 +#: ../Doc/library/enum.rst:150 msgid "Return a list of all power-of-two integers contained in a flag." msgstr "" "Retorna una lista de todos los enteros de potencia de dos contenidos en una " "bandera." -#: ../Doc/library/enum.rst:152 +#: ../Doc/library/enum.rst:153 msgid "``Flag``, ``IntFlag``, ``auto``" msgstr "``Flag``, ``IntFlag``, ``auto``" -#: ../Doc/library/enum.rst:153 +#: ../Doc/library/enum.rst:154 msgid "" "``StrEnum``, ``EnumCheck``, ``ReprEnum``, ``FlagBoundary``, ``property``, " "``member``, ``nonmember``, ``global_enum``, ``show_flag_values``" @@ -325,11 +334,11 @@ msgstr "" "``StrEnum``, ``EnumCheck``, ``ReprEnum``, ``FlagBoundary``, ``property``, " "``member``, ``nonmember``, ``global_enum``, ``show_flag_values``" -#: ../Doc/library/enum.rst:158 +#: ../Doc/library/enum.rst:159 msgid "Data Types" msgstr "Tipos de datos" -#: ../Doc/library/enum.rst:163 +#: ../Doc/library/enum.rst:164 msgid "" "*EnumType* is the :term:`metaclass` for *enum* enumerations. It is possible " "to subclass *EnumType* -- see :ref:`Subclassing EnumType ` para obtener más detalles." -#: ../Doc/library/enum.rst:167 +#: ../Doc/library/enum.rst:168 +#, fuzzy msgid "" -"*EnumType* is responsible for setting the correct :meth:`__repr__`, :meth:" -"`__str__`, :meth:`__format__`, and :meth:`__reduce__` methods on the final " +"*EnumType* is responsible for setting the correct :meth:`!__repr__`, :meth:`!" +"__str__`, :meth:`!__format__`, and :meth:`!__reduce__` methods on the final " "*enum*, as well as creating the enum members, properly handling duplicates, " "providing iteration over the enum class, etc." msgstr "" @@ -351,11 +361,99 @@ msgstr "" "final, así como de crear los miembros de enumeración, manejar correctamente " "los duplicados, proporcionar iteración sobre la clase de enumeración, etc." -#: ../Doc/library/enum.rst:174 +#: ../Doc/library/enum.rst:175 +msgid "This method is called in two different ways:" +msgstr "Este método se llama de dos maneras diferentes:" + +#: ../Doc/library/enum.rst:177 +msgid "to look up an existing member:" +msgstr "para buscar un miembro existente:" + +#: ../Doc/library/enum.rst +msgid "cls" +msgstr "cls" + +#: ../Doc/library/enum.rst:179 ../Doc/library/enum.rst:185 +msgid "The enum class being called." +msgstr "La clase de enumeración que se llama." + +#: ../Doc/library/enum.rst +msgid "value" +msgstr "value" + +#: ../Doc/library/enum.rst:180 +msgid "The value to lookup." +msgstr "El valor a buscar." + +#: ../Doc/library/enum.rst:182 +#, fuzzy +msgid "" +"to use the ``cls`` enum to create a new enum (only if the existing enum does " +"not have any members):" +msgstr "para usar la enumeración ``cls`` para crear una nueva enumeración:" + +#: ../Doc/library/enum.rst:186 +msgid "The name of the new Enum to create." +msgstr "El nombre del nuevo Enum para crear." + +#: ../Doc/library/enum.rst +msgid "names" +msgstr "names" + +#: ../Doc/library/enum.rst:187 +msgid "The names/values of the members for the new Enum." +msgstr "Los nombres/valores de los miembros para el nuevo Enum." + +#: ../Doc/library/enum.rst +msgid "module" +msgstr "module" + +#: ../Doc/library/enum.rst:188 +msgid "The name of the module the new Enum is created in." +msgstr "El nombre del módulo en el que se crea el nuevo Enum." + +#: ../Doc/library/enum.rst +msgid "qualname" +msgstr "qualname" + +#: ../Doc/library/enum.rst:189 +msgid "The actual location in the module where this Enum can be found." +msgstr "La ubicación real en el módulo donde se puede encontrar este Enum." + +#: ../Doc/library/enum.rst +msgid "type" +msgstr "type" + +#: ../Doc/library/enum.rst:190 +msgid "A mix-in type for the new Enum." +msgstr "Un tipo de mezcla para el nuevo Enum." + +#: ../Doc/library/enum.rst +msgid "start" +msgstr "start" + +#: ../Doc/library/enum.rst:191 +#, fuzzy +msgid "The first integer value for the Enum (used by :class:`auto`)." +msgstr "El primer valor entero para Enum (usado por :class:`auto`)" + +#: ../Doc/library/enum.rst +msgid "boundary" +msgstr "boundary" + +#: ../Doc/library/enum.rst:192 +#, fuzzy +msgid "" +"How to handle out-of-range values from bit operations (:class:`Flag` only)." +msgstr "" +"Cómo manejar valores fuera de rango de operaciones de bits (solo :class:" +"`Flag`)" + +#: ../Doc/library/enum.rst:196 msgid "Returns ``True`` if member belongs to the ``cls``::" msgstr "Retorna ``True`` si el miembro pertenece a ``cls``::" -#: ../Doc/library/enum.rst:182 +#: ../Doc/library/enum.rst:204 msgid "" "In Python 3.12 it will be possible to check for member values and not just " "members; until then, a ``TypeError`` will be raised if a non-Enum-member is " @@ -365,7 +463,7 @@ msgstr "" "los miembros; hasta entonces, se generará un ``TypeError`` si se usa un " "miembro que no sea Enum en una verificación de contención." -#: ../Doc/library/enum.rst:188 +#: ../Doc/library/enum.rst:210 msgid "" "Returns ``['__class__', '__doc__', '__members__', '__module__']`` and the " "names of the members in *cls*::" @@ -373,63 +471,60 @@ msgstr "" "Retorna ``['__class__', '__doc__', '__members__', '__module__']`` y los " "nombres de los miembros en *cls*::" -#: ../Doc/library/enum.rst:196 -msgid "" -"Returns the Enum member in *cls* matching *name*, or raises an :exc:" -"`AttributeError`::" -msgstr "" -"Retorna el miembro Enum en *cls* que coincide con *name*, o genera un :exc:" -"`AttributeError`::" - -#: ../Doc/library/enum.rst:203 +#: ../Doc/library/enum.rst:218 +#, fuzzy msgid "" -"Returns the Enum member in *cls* matching *name*, or raises an :exc:" +"Returns the Enum member in *cls* matching *name*, or raises a :exc:" "`KeyError`::" msgstr "" "Retorna el miembro Enum en *cls* que coincide con *name*, o genera un :exc:" "`KeyError`::" -#: ../Doc/library/enum.rst:210 +#: ../Doc/library/enum.rst:225 msgid "Returns each member in *cls* in definition order::" msgstr "Retorna cada miembro en *cls* en orden de definición::" -#: ../Doc/library/enum.rst:217 +#: ../Doc/library/enum.rst:232 msgid "Returns the number of member in *cls*::" msgstr "Retorna el número de miembro en *cls*::" -#: ../Doc/library/enum.rst:224 +#: ../Doc/library/enum.rst:239 msgid "Returns each member in *cls* in reverse definition order::" msgstr "Retorna cada miembro en *cls* en orden de definición inverso:" -#: ../Doc/library/enum.rst:232 +#: ../Doc/library/enum.rst:246 +msgid "Before 3.11 ``enum`` used ``EnumMeta`` type, which is kept as an alias." +msgstr "" + +#: ../Doc/library/enum.rst:251 msgid "*Enum* is the base class for all *enum* enumerations." msgstr "*Enum* es la clase base para todas las enumeraciones *enum*." -#: ../Doc/library/enum.rst:236 +#: ../Doc/library/enum.rst:255 msgid "The name used to define the ``Enum`` member::" msgstr "El nombre utilizado para definir el miembro ``Enum``::" -#: ../Doc/library/enum.rst:243 +#: ../Doc/library/enum.rst:262 msgid "The value given to the ``Enum`` member::" msgstr "El valor dado al miembro ``Enum``:" -#: ../Doc/library/enum.rst:248 +#: ../Doc/library/enum.rst:267 msgid "Enum member values" msgstr "Valores de miembros de Enum" -#: ../Doc/library/enum.rst:250 +#: ../Doc/library/enum.rst:269 +#, fuzzy msgid "" -"Member values can be anything: :class:`int`, :class:`str`, etc.. If the " +"Member values can be anything: :class:`int`, :class:`str`, etc. If the " "exact value is unimportant you may use :class:`auto` instances and an " -"appropriate value will be chosen for you. Care must be taken if you mix :" -"class:`auto` with other values." +"appropriate value will be chosen for you. See :class:`auto` for the details." msgstr "" "Los valores de los miembros pueden ser cualquier cosa: :class:`int`, :class:" "`str`, etc.. Si el valor exacto no es importante, puede usar instancias :" "class:`auto` y se elegirá un valor apropiado para usted. Se debe tener " "cuidado si se mezcla :class:`auto` con otros valores." -#: ../Doc/library/enum.rst:257 +#: ../Doc/library/enum.rst:276 msgid "" "``_ignore_`` is only used during creation and is removed from the " "enumeration once creation is complete." @@ -437,7 +532,7 @@ msgstr "" "``_ignore_`` solo se usa durante la creación y se elimina de la enumeración " "una vez que se completa la creación." -#: ../Doc/library/enum.rst:260 +#: ../Doc/library/enum.rst:279 msgid "" "``_ignore_`` is a list of names that will not become members, and whose " "names will also be removed from the completed enumeration. See :ref:" @@ -447,90 +542,7 @@ msgstr "" "cuyos nombres también se eliminarán de la enumeración completa. Consulte :" "ref:`TimePeriod ` para ver un ejemplo." -#: ../Doc/library/enum.rst:266 -msgid "This method is called in two different ways:" -msgstr "Este método se llama de dos maneras diferentes:" - -#: ../Doc/library/enum.rst:268 -msgid "to look up an existing member:" -msgstr "para buscar un miembro existente:" - -#: ../Doc/library/enum.rst -msgid "cls" -msgstr "cls" - -#: ../Doc/library/enum.rst:270 ../Doc/library/enum.rst:275 -msgid "The enum class being called." -msgstr "La clase de enumeración que se llama." - -#: ../Doc/library/enum.rst -msgid "value" -msgstr "value" - -#: ../Doc/library/enum.rst:271 -msgid "The value to lookup." -msgstr "El valor a buscar." - -#: ../Doc/library/enum.rst:273 -msgid "to use the ``cls`` enum to create a new enum:" -msgstr "para usar la enumeración ``cls`` para crear una nueva enumeración:" - -#: ../Doc/library/enum.rst:276 -msgid "The name of the new Enum to create." -msgstr "El nombre del nuevo Enum para crear." - -#: ../Doc/library/enum.rst -msgid "names" -msgstr "names" - -#: ../Doc/library/enum.rst:277 -msgid "The names/values of the members for the new Enum." -msgstr "Los nombres/valores de los miembros para el nuevo Enum." - -#: ../Doc/library/enum.rst -msgid "module" -msgstr "module" - -#: ../Doc/library/enum.rst:278 -msgid "The name of the module the new Enum is created in." -msgstr "El nombre del módulo en el que se crea el nuevo Enum." - -#: ../Doc/library/enum.rst -msgid "qualname" -msgstr "qualname" - -#: ../Doc/library/enum.rst:279 -msgid "The actual location in the module where this Enum can be found." -msgstr "La ubicación real en el módulo donde se puede encontrar este Enum." - -#: ../Doc/library/enum.rst -msgid "type" -msgstr "type" - -#: ../Doc/library/enum.rst:280 -msgid "A mix-in type for the new Enum." -msgstr "Un tipo de mezcla para el nuevo Enum." - -#: ../Doc/library/enum.rst -msgid "start" -msgstr "start" - -#: ../Doc/library/enum.rst:281 -msgid "The first integer value for the Enum (used by :class:`auto`)" -msgstr "El primer valor entero para Enum (usado por :class:`auto`)" - -#: ../Doc/library/enum.rst -msgid "boundary" -msgstr "boundary" - -#: ../Doc/library/enum.rst:282 -msgid "" -"How to handle out-of-range values from bit operations (:class:`Flag` only)" -msgstr "" -"Cómo manejar valores fuera de rango de operaciones de bits (solo :class:" -"`Flag`)" - -#: ../Doc/library/enum.rst:286 +#: ../Doc/library/enum.rst:285 msgid "" "Returns ``['__class__', '__doc__', '__module__', 'name', 'value']`` and any " "public methods defined on *self.__class__*::" @@ -574,7 +586,7 @@ msgstr "" "Un *staticmethod* que se usa para determinar el siguiente valor retornado " "por :class:`auto`:" -#: ../Doc/library/enum.rst:326 +#: ../Doc/library/enum.rst:327 msgid "" "A *classmethod* that is used to further configure subsequent subclasses. By " "default, does nothing." @@ -582,7 +594,7 @@ msgstr "" "Un *classmethod* que se usa para configurar más subclases subsiguientes. Por " "defecto, no hace nada." -#: ../Doc/library/enum.rst:331 +#: ../Doc/library/enum.rst:332 msgid "" "A *classmethod* for looking up values not found in *cls*. By default it " "does nothing, but can be overridden to implement custom search behavior::" @@ -591,7 +603,7 @@ msgstr "" "predeterminada, no hace nada, pero se puede anular para implementar un " "comportamiento de búsqueda personalizado:" -#: ../Doc/library/enum.rst:352 +#: ../Doc/library/enum.rst:354 msgid "" "Returns the string used for *repr()* calls. By default, returns the *Enum* " "name, member name, and value, but can be overridden::" @@ -600,7 +612,7 @@ msgstr "" "predeterminada, retorna el nombre *Enum*, el nombre del miembro y el valor, " "pero se puede anular:" -#: ../Doc/library/enum.rst:367 +#: ../Doc/library/enum.rst:370 msgid "" "Returns the string used for *str()* calls. By default, returns the *Enum* " "name and member name, but can be overridden::" @@ -609,15 +621,16 @@ msgstr "" "predeterminada, retorna el nombre *Enum* y el nombre del miembro, pero se " "puede anular:" -#: ../Doc/library/enum.rst:381 +#: ../Doc/library/enum.rst:385 +#, fuzzy msgid "" "Returns the string used for *format()* and *f-string* calls. By default, " -"returns :meth:`__str__` returns, but can be overridden::" +"returns :meth:`__str__` return value, but can be overridden::" msgstr "" "Retorna la cadena utilizada para las llamadas *format()* y *f-string*. De " "forma predeterminada, retorna :meth:`__str__`, pero se puede anular:" -#: ../Doc/library/enum.rst:395 +#: ../Doc/library/enum.rst:400 msgid "" "Using :class:`auto` with :class:`Enum` results in integers of increasing " "value, starting with ``1``." @@ -625,7 +638,11 @@ msgstr "" "El uso de :class:`auto` con :class:`Enum` da como resultado números enteros " "de valor creciente, comenzando con ``1``." -#: ../Doc/library/enum.rst:401 +#: ../Doc/library/enum.rst:403 +msgid "Added :ref:`enum-dataclass-support`" +msgstr "" + +#: ../Doc/library/enum.rst:408 msgid "" "*IntEnum* is the same as *Enum*, but its members are also integers and can " "be used anywhere that an integer can be used. If any integer operation is " @@ -637,7 +654,7 @@ msgstr "" "entero. Si se realiza alguna operación con enteros con un miembro *IntEnum*, " "el valor resultante pierde su estado de enumeración." -#: ../Doc/library/enum.rst:421 +#: ../Doc/library/enum.rst:429 msgid "" "Using :class:`auto` with :class:`IntEnum` results in integers of increasing " "value, starting with ``1``." @@ -645,17 +662,18 @@ msgstr "" "El uso de :class:`auto` con :class:`IntEnum` da como resultado números " "enteros de valor creciente, comenzando con ``1``." -#: ../Doc/library/enum.rst:424 ../Doc/library/enum.rst:595 +#: ../Doc/library/enum.rst:432 +#, fuzzy msgid "" -":meth:`__str__` is now :func:`int.__str__` to better support the " -"*replacement of existing constants* use-case. :meth:`__format__` was " -"already :func:`int.__format__` for that same reason." +":meth:`~object.__str__` is now :meth:`!int.__str__` to better support the " +"*replacement of existing constants* use-case. :meth:`~object.__format__` was " +"already :meth:`!int.__format__` for that same reason." msgstr "" ":meth:`__str__` ahora es :func:`int.__str__` para admitir mejor el caso de " "uso de *replacement of existing constants*. :meth:`__format__` ya era :func:" "`int.__format__` por la misma razón." -#: ../Doc/library/enum.rst:431 +#: ../Doc/library/enum.rst:439 msgid "" "*StrEnum* is the same as *Enum*, but its members are also strings and can be " "used in most of the same places that a string can be used. The result of " @@ -667,7 +685,7 @@ msgstr "" "cadena. El resultado de cualquier operación de cadena realizada en o con un " "miembro *StrEnum* no forma parte de la enumeración." -#: ../Doc/library/enum.rst:435 +#: ../Doc/library/enum.rst:445 msgid "" "There are places in the stdlib that check for an exact :class:`str` instead " "of a :class:`str` subclass (i.e. ``type(unknown) == str`` instead of " @@ -679,7 +697,7 @@ msgstr "" "``isinstance(unknown, str)``), y en esos lugares necesitará usar " "``str(StrEnum.member)``." -#: ../Doc/library/enum.rst:442 +#: ../Doc/library/enum.rst:452 msgid "" "Using :class:`auto` with :class:`StrEnum` results in the lower-cased member " "name as the value." @@ -687,17 +705,18 @@ msgstr "" "El uso de :class:`auto` con :class:`StrEnum` da como resultado el nombre de " "miembro en minúsculas como valor." -#: ../Doc/library/enum.rst:445 +#: ../Doc/library/enum.rst:457 +#, fuzzy msgid "" -":meth:`__str__` is :func:`str.__str__` to better support the *replacement of " -"existing constants* use-case. :meth:`__format__` is likewise :func:`str." -"__format__` for that same reason." +":meth:`~object.__str__` is :meth:`!str.__str__` to better support the " +"*replacement of existing constants* use-case. :meth:`~object.__format__` is " +"likewise :meth:`!str.__format__` for that same reason." msgstr "" ":meth:`__str__` es :func:`str.__str__` para admitir mejor el caso de uso de " "*replacement of existing constants*. :meth:`__format__` también es :func:" "`str.__format__` por la misma razón." -#: ../Doc/library/enum.rst:453 +#: ../Doc/library/enum.rst:465 msgid "" "*Flag* members support the bitwise operators ``&`` (*AND*), ``|`` (*OR*), " "``^`` (*XOR*), and ``~`` (*INVERT*); the results of those operators are " @@ -707,40 +726,45 @@ msgstr "" "(*OR*), ``^`` (*XOR*) y ``~`` (*INVERT*); los resultados de esos operadores " "son miembros de la enumeración." -#: ../Doc/library/enum.rst:459 +#: ../Doc/library/enum.rst:471 msgid "Returns *True* if value is in self::" msgstr "Retorna *True* si el valor está en sí mismo::" -#: ../Doc/library/enum.rst:479 -msgid "Returns all contained members::" +#: ../Doc/library/enum.rst:492 +#, fuzzy +msgid "Returns all contained non-alias members::" msgstr "Retorna todos los miembros contenidos::" -#: ../Doc/library/enum.rst:488 +#: ../Doc/library/enum.rst:501 +msgid "Aliases are no longer returned during iteration." +msgstr "" + +#: ../Doc/library/enum.rst:505 msgid "Returns number of members in flag::" msgstr "Retorna el número de miembros en la bandera::" -#: ../Doc/library/enum.rst:497 +#: ../Doc/library/enum.rst:514 msgid "Returns *True* if any members in flag, *False* otherwise::" msgstr "" "Retorna *True* si hay algún miembro en la bandera, *False* de lo contrario:" -#: ../Doc/library/enum.rst:509 +#: ../Doc/library/enum.rst:526 msgid "Returns current flag binary or'ed with other::" msgstr "Retorna la bandera actual binaria o con otra:" -#: ../Doc/library/enum.rst:516 +#: ../Doc/library/enum.rst:533 msgid "Returns current flag binary and'ed with other::" msgstr "Retorna el binario de la bandera actual y se combina con otro::" -#: ../Doc/library/enum.rst:525 +#: ../Doc/library/enum.rst:542 msgid "Returns current flag binary xor'ed with other::" msgstr "Retorna la bandera actual binaria xor'ed con otra:" -#: ../Doc/library/enum.rst:534 +#: ../Doc/library/enum.rst:551 msgid "Returns all the flags in *type(self)* that are not in self::" msgstr "Retorna todas las banderas en *type(self)* que no están en uno mismo::" -#: ../Doc/library/enum.rst:545 +#: ../Doc/library/enum.rst:562 msgid "" "Function used to format any remaining unnamed numeric values. Default is " "the value's repr; common choices are :func:`hex` and :func:`oct`." @@ -749,7 +773,7 @@ msgstr "" "nombre. El valor predeterminado es la repr del valor; las opciones comunes " "son :func:`hex` y :func:`oct`." -#: ../Doc/library/enum.rst:550 +#: ../Doc/library/enum.rst:567 msgid "" "Using :class:`auto` with :class:`Flag` results in integers that are powers " "of two, starting with ``1``." @@ -757,11 +781,11 @@ msgstr "" "El uso de :class:`auto` con :class:`Flag` da como resultado números enteros " "que son potencias de dos, comenzando con ``1``." -#: ../Doc/library/enum.rst:553 +#: ../Doc/library/enum.rst:570 msgid "The *repr()* of zero-valued flags has changed. It is now::" msgstr "El *repr()* de las banderas de valor cero ha cambiado. Esto es ahora::" -#: ../Doc/library/enum.rst:561 +#: ../Doc/library/enum.rst:578 msgid "" "*IntFlag* is the same as *Flag*, but its members are also integers and can " "be used anywhere that an integer can be used." @@ -770,7 +794,7 @@ msgstr "" "enteros y se pueden usar en cualquier lugar donde se pueda usar un número " "entero." -#: ../Doc/library/enum.rst:574 +#: ../Doc/library/enum.rst:592 msgid "" "If any integer operation is performed with an *IntFlag* member, the result " "is not an *IntFlag*::" @@ -778,15 +802,15 @@ msgstr "" "Si se realiza alguna operación con enteros con un miembro *IntFlag*, el " "resultado no es un *IntFlag*::" -#: ../Doc/library/enum.rst:580 +#: ../Doc/library/enum.rst:598 msgid "If a *Flag* operation is performed with an *IntFlag* member and:" msgstr "Si se realiza una operación *Flag* con un miembro *IntFlag* y:" -#: ../Doc/library/enum.rst:582 +#: ../Doc/library/enum.rst:600 msgid "the result is a valid *IntFlag*: an *IntFlag* is returned" msgstr "el resultado es un *IntFlag* válido: se retorna un *IntFlag*" -#: ../Doc/library/enum.rst:583 +#: ../Doc/library/enum.rst:601 msgid "" "the result is not a valid *IntFlag*: the result depends on the " "*FlagBoundary* setting" @@ -794,13 +818,13 @@ msgstr "" "el resultado no es un *IntFlag* válido: el resultado depende de la " "configuración de *FlagBoundary*" -#: ../Doc/library/enum.rst:585 +#: ../Doc/library/enum.rst:603 msgid "The *repr()* of unnamed zero-valued flags has changed. It is now:" msgstr "" "El *repr()* de indicadores de valor cero sin nombre ha cambiado. Esto es " "ahora:" -#: ../Doc/library/enum.rst:592 +#: ../Doc/library/enum.rst:610 msgid "" "Using :class:`auto` with :class:`IntFlag` results in integers that are " "powers of two, starting with ``1``." @@ -808,25 +832,45 @@ msgstr "" "El uso de :class:`auto` con :class:`IntFlag` da como resultado números " "enteros que son potencias de dos, comenzando con ``1``." -#: ../Doc/library/enum.rst:601 +#: ../Doc/library/enum.rst:615 +#, fuzzy +msgid "" +":meth:`~object.__str__` is now :meth:`!int.__str__` to better support the " +"*replacement of existing constants* use-case. :meth:`~object.__format__` " +"was already :meth:`!int.__format__` for that same reason." +msgstr "" +":meth:`__str__` ahora es :func:`int.__str__` para admitir mejor el caso de " +"uso de *replacement of existing constants*. :meth:`__format__` ya era :func:" +"`int.__format__` por la misma razón." + +#: ../Doc/library/enum.rst:619 msgid "" -":class:`!ReprEum` uses the :meth:`repr() ` of :class:`Enum`, " +"Inversion of an :class:`!IntFlag` now returns a positive value that is the " +"union of all flags not in the given flag, rather than a negative value. This " +"matches the existing :class:`Flag` behavior." +msgstr "" + +#: ../Doc/library/enum.rst:625 +#, fuzzy +msgid "" +":class:`!ReprEnum` uses the :meth:`repr() ` of :class:`Enum`, " "but the :class:`str() ` of the mixed-in data type:" msgstr "" ":class:`!ReprEum` usa el :meth:`repr() ` de :class:`Enum`, " "pero el :class:`str() ` del tipo de datos mixto:" -#: ../Doc/library/enum.rst:604 +#: ../Doc/library/enum.rst:628 msgid ":meth:`!int.__str__` for :class:`IntEnum` and :class:`IntFlag`" msgstr ":meth:`!int.__str__` para :class:`IntEnum` y :class:`IntFlag`" -#: ../Doc/library/enum.rst:605 +#: ../Doc/library/enum.rst:629 msgid ":meth:`!str.__str__` for :class:`StrEnum`" msgstr ":meth:`!str.__str__` para :class:`StrEnum`" -#: ../Doc/library/enum.rst:607 +#: ../Doc/library/enum.rst:631 +#, fuzzy msgid "" -"Inherit from :class:`!ReprEnum` to keep the :class:`str() / :func:" +"Inherit from :class:`!ReprEnum` to keep the :class:`str() ` / :func:" "`format` of the mixed-in data type instead of using the :class:`Enum`-" "default :meth:`str() `." msgstr "" @@ -834,7 +878,7 @@ msgstr "" "`format` del tipo de datos mixto en lugar de utilizar el :class:`Enum` por " "defecto :meth:`str() `." -#: ../Doc/library/enum.rst:616 +#: ../Doc/library/enum.rst:640 msgid "" "*EnumCheck* contains the options used by the :func:`verify` decorator to " "ensure various constraints; failed constraints result in a :exc:`ValueError`." @@ -843,11 +887,11 @@ msgstr "" "para garantizar diversas restricciones; las restricciones fallidas dan como " "resultado un :exc:`ValueError`." -#: ../Doc/library/enum.rst:621 +#: ../Doc/library/enum.rst:645 msgid "Ensure that each value has only one name::" msgstr "Asegúrese de que cada valor tenga un solo nombre:" -#: ../Doc/library/enum.rst:637 +#: ../Doc/library/enum.rst:661 msgid "" "Ensure that there are no missing values between the lowest-valued member and " "the highest-valued member::" @@ -855,23 +899,24 @@ msgstr "" "Asegúrese de que no falten valores entre el miembro de menor valor y el " "miembro de mayor valor::" -#: ../Doc/library/enum.rst:652 +#: ../Doc/library/enum.rst:676 +#, fuzzy msgid "" "Ensure that any flag groups/masks contain only named flags -- useful when " -"values are specified instead of being generated by :func:`auto`" +"values are specified instead of being generated by :func:`auto`::" msgstr "" "Asegúrese de que los grupos/máscaras de banderas contengan solo banderas con " "nombre, lo cual es útil cuando se especifican valores en lugar de " "generarlos :func:`auto`." -#: ../Doc/library/enum.rst:669 +#: ../Doc/library/enum.rst:693 msgid "" "CONTINUOUS and NAMED_FLAGS are designed to work with integer-valued members." msgstr "" "CONTINUOUS y NAMED_FLAGS están diseñados para funcionar con miembros con " "valores enteros." -#: ../Doc/library/enum.rst:675 +#: ../Doc/library/enum.rst:699 msgid "" "*FlagBoundary* controls how out-of-range values are handled in *Flag* and " "its subclasses." @@ -879,15 +924,16 @@ msgstr "" "*FlagBoundary* controla cómo se manejan los valores fuera de rango en *Flag* " "y sus subclases." -#: ../Doc/library/enum.rst:680 +#: ../Doc/library/enum.rst:704 +#, fuzzy msgid "" -"Out-of-range values cause a :exc:`ValueError` to be raised. This is the " +"Out-of-range values cause a :exc:`ValueError` to be raised. This is the " "default for :class:`Flag`::" msgstr "" "Los valores fuera de rango hacen que se genere un :exc:`ValueError`. Este es " "el valor predeterminado para :class:`Flag`::" -#: ../Doc/library/enum.rst:697 +#: ../Doc/library/enum.rst:722 msgid "" "Out-of-range values have invalid values removed, leaving a valid *Flag* " "value::" @@ -895,60 +941,63 @@ msgstr "" "Los valores fuera de rango tienen valores no válidos eliminados, dejando un " "valor *Flag* válido:" -#: ../Doc/library/enum.rst:710 +#: ../Doc/library/enum.rst:736 +#, fuzzy msgid "" -"Out-of-range values lose their *Flag* membership and revert to :class:`int`. " -"This is the default for :class:`IntFlag`::" +"Out-of-range values lose their *Flag* membership and revert to :class:`int`." msgstr "" "Los valores fuera de rango pierden su pertenencia a *Flag* y vuelven a :" "class:`int`. Este es el valor predeterminado para :class:`IntFlag`::" -#: ../Doc/library/enum.rst:723 +#: ../Doc/library/enum.rst:749 +#, fuzzy msgid "" -"Out-of-range values are kept, and the *Flag* membership is kept. This is " -"used for some stdlib flags:" +"Out-of-range values are kept, and the *Flag* membership is kept. This is the " +"default for :class:`IntFlag`::" msgstr "" "Se mantienen los valores fuera de rango y se mantiene la pertenencia a " "*Flag*. Esto se usa para algunas banderas stdlib:" -#: ../Doc/library/enum.rst:739 +#: ../Doc/library/enum.rst:766 msgid "Supported ``__dunder__`` names" msgstr "Nombres soportados ``__dunder__``" -#: ../Doc/library/enum.rst:741 +#: ../Doc/library/enum.rst:768 +#, fuzzy msgid "" -":attr:`__members__` is a read-only ordered mapping of ``member_name``:" -"``member`` items. It is only available on the class." +":attr:`~EnumType.__members__` is a read-only ordered mapping of " +"``member_name``:``member`` items. It is only available on the class." msgstr "" ":attr:`__members__` es una asignación ordenada de solo lectura de artículos " "``member_name``:``member``. Solo está disponible en la clase." -#: ../Doc/library/enum.rst:744 +#: ../Doc/library/enum.rst:771 +#, fuzzy msgid "" -":meth:`__new__`, if specified, must create and return the enum members; it " -"is also a very good idea to set the member's :attr:`_value_` appropriately. " -"Once all the members are created it is no longer used." +":meth:`~object.__new__`, if specified, must create and return the enum " +"members; it is also a very good idea to set the member's :attr:`!_value_` " +"appropriately. Once all the members are created it is no longer used." msgstr "" ":meth:`__new__`, si se especifica, debe crear y retornar los miembros de " "enumeración; también es una muy buena idea establecer el :attr:`_value_` del " "miembro apropiadamente. Una vez que se crean todos los miembros, ya no se " "usa." -#: ../Doc/library/enum.rst:750 +#: ../Doc/library/enum.rst:777 msgid "Supported ``_sunder_`` names" msgstr "Nombres ``_sunder_`` compatibles" -#: ../Doc/library/enum.rst:752 +#: ../Doc/library/enum.rst:779 msgid "``_name_`` -- name of the member" msgstr "``_name_``— nombre del miembro" -#: ../Doc/library/enum.rst:753 +#: ../Doc/library/enum.rst:780 msgid "" "``_value_`` -- value of the member; can be set / modified in ``__new__``" msgstr "" "``_value_`` — valor del miembro; se puede definir / modificar en ``__new__``" -#: ../Doc/library/enum.rst:755 +#: ../Doc/library/enum.rst:782 msgid "" "``_missing_`` -- a lookup function used when a value is not found; may be " "overridden" @@ -956,7 +1005,7 @@ msgstr "" "``_missing_`` — una función de búsqueda utilizada cuando no se encuentra un " "valor; puede ser anulado" -#: ../Doc/library/enum.rst:757 +#: ../Doc/library/enum.rst:784 msgid "" "``_ignore_`` -- a list of names, either as a :class:`list` or a :class:" "`str`, that will not be transformed into members, and will be removed from " @@ -966,7 +1015,7 @@ msgstr "" "func:`str` que no será transformada en miembros, y que se eliminará de la " "clase final" -#: ../Doc/library/enum.rst:760 +#: ../Doc/library/enum.rst:787 msgid "" "``_order_`` -- used in Python 2/3 code to ensure member order is consistent " "(class attribute, removed during class creation)" @@ -975,7 +1024,7 @@ msgstr "" "miembros sea consistente (atributo de clase, eliminado durante la creación " "de la clase)" -#: ../Doc/library/enum.rst:762 +#: ../Doc/library/enum.rst:789 msgid "" "``_generate_next_value_`` -- used to get an appropriate value for an enum " "member; may be overridden" @@ -983,7 +1032,7 @@ msgstr "" "``_generate_next_value_``: se usa para obtener un valor apropiado para un " "miembro de enumeración; puede ser anulado" -#: ../Doc/library/enum.rst:767 +#: ../Doc/library/enum.rst:794 msgid "" "For standard :class:`Enum` classes the next value chosen is the last value " "seen incremented by one." @@ -991,7 +1040,7 @@ msgstr "" "Para las clases :class:`Enum` estándar, el siguiente valor elegido es el " "último valor visto incrementado en uno." -#: ../Doc/library/enum.rst:770 +#: ../Doc/library/enum.rst:797 msgid "" "For :class:`Flag` classes the next value chosen will be the next highest " "power-of-two, regardless of the last value seen." @@ -999,26 +1048,28 @@ msgstr "" "Para las clases :class:`Flag`, el siguiente valor elegido será la siguiente " "potencia de dos más alta, independientemente del último valor visto." -#: ../Doc/library/enum.rst:773 +#: ../Doc/library/enum.rst:800 msgid "``_missing_``, ``_order_``, ``_generate_next_value_``" msgstr "``_missing_``, ``_order_``, ``_generate_next_value_``" -#: ../Doc/library/enum.rst:774 +#: ../Doc/library/enum.rst:801 msgid "``_ignore_``" msgstr "``_ignore_``" -#: ../Doc/library/enum.rst:779 +#: ../Doc/library/enum.rst:806 msgid "Utilities and Decorators" msgstr "Utilidades y decoradores" -#: ../Doc/library/enum.rst:783 +#: ../Doc/library/enum.rst:810 +#, fuzzy msgid "" "*auto* can be used in place of a value. If used, the *Enum* machinery will " -"call an *Enum*'s :meth:`_generate_next_value_` to get an appropriate value. " -"For *Enum* and *IntEnum* that appropriate value will be the last value plus " -"one; for *Flag* and *IntFlag* it will be the first power-of-two greater than " -"the last value; for *StrEnum* it will be the lower-cased version of the " -"member's name." +"call an *Enum*'s :meth:`~Enum._generate_next_value_` to get an appropriate " +"value. For *Enum* and *IntEnum* that appropriate value will be the last " +"value plus one; for *Flag* and *IntFlag* it will be the first power-of-two " +"greater than the highest value; for *StrEnum* it will be the lower-cased " +"version of the member's name. Care must be taken if mixing *auto()* with " +"manually specified values." msgstr "" "*auto* se puede utilizar en lugar de un valor. Si se usa, la maquinaria " "*Enum* llamará a :meth:`_generate_next_value_` de *Enum* para obtener un " @@ -1027,7 +1078,39 @@ msgstr "" "que el último valor; para *StrEnum* será la versión en minúsculas del nombre " "del miembro." -#: ../Doc/library/enum.rst:790 +#: ../Doc/library/enum.rst:818 +msgid "" +"*auto* instances are only resolved when at the top level of an assignment:" +msgstr "" + +#: ../Doc/library/enum.rst:820 +msgid "``FIRST = auto()`` will work (auto() is replaced with ``1``);" +msgstr "" + +#: ../Doc/library/enum.rst:821 +msgid "" +"``SECOND = auto(), -2`` will work (auto is replaced with ``2``, so ``2, -2`` " +"is" +msgstr "" + +#: ../Doc/library/enum.rst:822 +#, fuzzy +msgid "used to create the ``SECOND`` enum member;" +msgstr "El nombre utilizado para definir el miembro ``Enum``::" + +#: ../Doc/library/enum.rst:823 +msgid "" +"``THREE = [auto(), -3]`` will *not* work (``, -3`` is used to " +"create the ``THREE`` enum member)" +msgstr "" + +#: ../Doc/library/enum.rst:828 +msgid "" +"In prior versions, ``auto()`` had to be the only thing on the assignment " +"line to work properly." +msgstr "" + +#: ../Doc/library/enum.rst:831 msgid "" "``_generate_next_value_`` can be overridden to customize the values used by " "*auto*." @@ -1035,17 +1118,18 @@ msgstr "" "``_generate_next_value_`` se puede anular para personalizar los valores " "utilizados por *auto*." -#: ../Doc/library/enum.rst:793 +#: ../Doc/library/enum.rst:834 +#, fuzzy msgid "" -"in 3.13 the default ``\"generate_next_value_`` will always return the " -"highest member value incremented by 1, and will fail if any member is an " +"in 3.13 the default ``_generate_next_value_`` will always return the highest " +"member value incremented by 1, and will fail if any member is an " "incompatible type." msgstr "" "en 3.13, el ``\"generate_next_value_`` predeterminado siempre retornará el " "valor de miembro más alto incrementado en 1 y fallará si algún miembro es de " "un tipo incompatible." -#: ../Doc/library/enum.rst:799 +#: ../Doc/library/enum.rst:840 msgid "" "A decorator similar to the built-in *property*, but specifically for " "enumerations. It allows member attributes to have the same names as members " @@ -1055,7 +1139,7 @@ msgstr "" "enumeraciones. Permite que los atributos de los miembros tengan los mismos " "nombres que los propios miembros." -#: ../Doc/library/enum.rst:803 +#: ../Doc/library/enum.rst:844 msgid "" "the *property* and the member must be defined in separate classes; for " "example, the *value* and *name* attributes are defined in the *Enum* class, " @@ -1066,18 +1150,19 @@ msgstr "" "los atributos *value* y *name* se definen en la clase *Enum* y las subclases " "*Enum* pueden definir miembros con los nombres ``value`` y ``name``." -#: ../Doc/library/enum.rst:812 +#: ../Doc/library/enum.rst:853 +#, fuzzy msgid "" "A :keyword:`class` decorator specifically for enumerations. It searches an " -"enumeration's :attr:`__members__`, gathering any aliases it finds; if any " -"are found :exc:`ValueError` is raised with the details::" +"enumeration's :attr:`~EnumType.__members__`, gathering any aliases it finds; " +"if any are found :exc:`ValueError` is raised with the details::" msgstr "" "Un decorador :keyword:`class` específicamente para enumeraciones. Busca el :" "attr:`__members__` de una enumeración, recopilando cualquier alias que " "encuentre; si se encuentra alguno, se genera :exc:`ValueError` con los " "detalles:" -#: ../Doc/library/enum.rst:830 +#: ../Doc/library/enum.rst:871 msgid "" "A :keyword:`class` decorator specifically for enumerations. Members from :" "class:`EnumCheck` are used to specify which constraints should be checked on " @@ -1087,19 +1172,19 @@ msgstr "" "miembros de :class:`EnumCheck` se utilizan para especificar qué " "restricciones deben verificarse en la enumeración decorada." -#: ../Doc/library/enum.rst:838 +#: ../Doc/library/enum.rst:879 msgid "A decorator for use in enums: its target will become a member." msgstr "" "Un decorador para usar en enumeraciones: su objetivo se convertirá en " "miembro." -#: ../Doc/library/enum.rst:844 +#: ../Doc/library/enum.rst:885 msgid "A decorator for use in enums: its target will not become a member." msgstr "" "Un decorador para usar en enumeraciones: su destino no se convertirá en " "miembro." -#: ../Doc/library/enum.rst:850 +#: ../Doc/library/enum.rst:891 msgid "" "A decorator to change the :class:`str() ` and :func:`repr` of an enum " "to show its members as belonging to the module instead of its class. Should " @@ -1112,21 +1197,21 @@ msgstr "" "exportan al espacio de nombres global del módulo (consulte :class:`re." "RegexFlag` para ver un ejemplo)." -#: ../Doc/library/enum.rst:860 +#: ../Doc/library/enum.rst:901 msgid "Return a list of all power-of-two integers contained in a flag *value*." msgstr "" "Retorna una lista de todos los enteros de potencia de dos contenidos en un " "indicador *value*." -#: ../Doc/library/enum.rst:867 +#: ../Doc/library/enum.rst:908 msgid "Notes" msgstr "Notas" -#: ../Doc/library/enum.rst:869 +#: ../Doc/library/enum.rst:910 msgid ":class:`IntEnum`, :class:`StrEnum`, and :class:`IntFlag`" msgstr ":class:`IntEnum`, :class:`StrEnum` y :class:`IntFlag`" -#: ../Doc/library/enum.rst:871 +#: ../Doc/library/enum.rst:912 msgid "" "These three enum types are designed to be drop-in replacements for existing " "integer- and string-based values; as such, they have extra limitations:" @@ -1135,11 +1220,11 @@ msgstr "" "de los valores existentes basados ​​en cadenas y enteros; como tales, tienen " "limitaciones adicionales:" -#: ../Doc/library/enum.rst:874 +#: ../Doc/library/enum.rst:915 msgid "``__str__`` uses the value and not the name of the enum member" msgstr "``__str__`` usa el valor y no el nombre del miembro de enumeración" -#: ../Doc/library/enum.rst:876 +#: ../Doc/library/enum.rst:917 msgid "" "``__format__``, because it uses ``__str__``, will also use the value of the " "enum member instead of its name" @@ -1147,7 +1232,7 @@ msgstr "" "``__format__``, debido a que usa ``__str__``, también usará el valor del " "miembro de enumeración en lugar de su nombre" -#: ../Doc/library/enum.rst:879 +#: ../Doc/library/enum.rst:920 msgid "" "If you do not need/want those limitations, you can either create your own " "base class by mixing in the ``int`` or ``str`` type yourself::" @@ -1155,6 +1240,13 @@ msgstr "" "Si no necesita/quiere esas limitaciones, puede crear su propia clase base " "mezclando el tipo ``int`` o ``str`` usted mismo:" -#: ../Doc/library/enum.rst:886 +#: ../Doc/library/enum.rst:927 msgid "or you can reassign the appropriate :meth:`str`, etc., in your enum::" msgstr "o puede reasignar el :meth:`str` apropiado, etc., en su enumeración::" + +#~ msgid "" +#~ "Returns the Enum member in *cls* matching *name*, or raises an :exc:" +#~ "`AttributeError`::" +#~ msgstr "" +#~ "Retorna el miembro Enum en *cls* que coincide con *name*, o genera un :" +#~ "exc:`AttributeError`::" diff --git a/library/errno.po b/library/errno.po index f692a27db9..5073cbcc4d 100644 --- a/library/errno.po +++ b/library/errno.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-09-14 17:19-0300\n" "Last-Translator: Federico Jurío \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/errno.rst:2 msgid ":mod:`errno` --- Standard errno system symbols" @@ -491,34 +491,39 @@ msgid "Operation not supported on transport endpoint" msgstr "Operación no soportada en el endpoint de transporte" #: ../Doc/library/errno.rst:516 +#, fuzzy +msgid "Operation not supported" +msgstr "Protocolo no soportado" + +#: ../Doc/library/errno.rst:523 msgid "Protocol family not supported" msgstr "Familia de protocolo no soportada" -#: ../Doc/library/errno.rst:521 +#: ../Doc/library/errno.rst:528 msgid "Address family not supported by protocol" msgstr "Familia de direcciones no soportada por protocolo" -#: ../Doc/library/errno.rst:526 +#: ../Doc/library/errno.rst:533 msgid "Address already in use" msgstr "Dirección ya en uso" -#: ../Doc/library/errno.rst:531 +#: ../Doc/library/errno.rst:538 msgid "Cannot assign requested address" msgstr "No se puede asignar la dirección solicitada" -#: ../Doc/library/errno.rst:536 +#: ../Doc/library/errno.rst:543 msgid "Network is down" msgstr "Red caída" -#: ../Doc/library/errno.rst:541 +#: ../Doc/library/errno.rst:548 msgid "Network is unreachable" msgstr "Red es inalcanzable" -#: ../Doc/library/errno.rst:546 +#: ../Doc/library/errno.rst:553 msgid "Network dropped connection because of reset" msgstr "Conexión de red interrumpida debido al reinicio" -#: ../Doc/library/errno.rst:551 +#: ../Doc/library/errno.rst:558 msgid "" "Software caused connection abort. This error is mapped to the exception :exc:" "`ConnectionAbortedError`." @@ -526,7 +531,7 @@ msgstr "" "El software causó falla de conexión. Este error se asigna a la excepción :" "exc:`ConnectionAbortedError`." -#: ../Doc/library/errno.rst:557 +#: ../Doc/library/errno.rst:564 msgid "" "Connection reset by peer. This error is mapped to the exception :exc:" "`ConnectionResetError`." @@ -534,19 +539,19 @@ msgstr "" "Restablecimiento de la conexión por par. Este error se asigna a la " "excepción :exc:`ConnectionResetError`." -#: ../Doc/library/errno.rst:563 +#: ../Doc/library/errno.rst:570 msgid "No buffer space available" msgstr "No hay espacio de búfer disponible" -#: ../Doc/library/errno.rst:568 +#: ../Doc/library/errno.rst:575 msgid "Transport endpoint is already connected" msgstr "El endpoint de transporte ya está conectado" -#: ../Doc/library/errno.rst:573 +#: ../Doc/library/errno.rst:580 msgid "Transport endpoint is not connected" msgstr "El endpoint final de transporte no está conectado" -#: ../Doc/library/errno.rst:578 +#: ../Doc/library/errno.rst:585 msgid "" "Cannot send after transport endpoint shutdown. This error is mapped to the " "exception :exc:`BrokenPipeError`." @@ -554,11 +559,11 @@ msgstr "" "No se puede enviar después del apagado del endpoint de transporte. Este " "error se asigna a la excepción :exc:`BrokenPipeError`." -#: ../Doc/library/errno.rst:584 +#: ../Doc/library/errno.rst:591 msgid "Too many references: cannot splice" msgstr "Demasiadas referencias: no se puede empalmar" -#: ../Doc/library/errno.rst:589 +#: ../Doc/library/errno.rst:596 msgid "" "Connection timed out. This error is mapped to the exception :exc:" "`TimeoutError`." @@ -566,7 +571,7 @@ msgstr "" "Tiempo de conexión agotado. Este error se asigna a la excepción :exc:" "`TimeoutError`." -#: ../Doc/library/errno.rst:595 +#: ../Doc/library/errno.rst:602 msgid "" "Connection refused. This error is mapped to the exception :exc:" "`ConnectionRefusedError`." @@ -574,15 +579,15 @@ msgstr "" "Conexión denegada. Este error se asigna a la excepción :exc:" "`ConnectionRefusedError`." -#: ../Doc/library/errno.rst:601 +#: ../Doc/library/errno.rst:608 msgid "Host is down" msgstr "Anfitrión caído" -#: ../Doc/library/errno.rst:606 +#: ../Doc/library/errno.rst:613 msgid "No route to host" msgstr "Sin ruta al anfitrión" -#: ../Doc/library/errno.rst:611 +#: ../Doc/library/errno.rst:618 msgid "" "Operation already in progress. This error is mapped to the exception :exc:" "`BlockingIOError`." @@ -590,7 +595,7 @@ msgstr "" "Operación ya en curso. Este error se asigna a la excepción :exc:" "`BlockingIOError`." -#: ../Doc/library/errno.rst:617 +#: ../Doc/library/errno.rst:624 msgid "" "Operation now in progress. This error is mapped to the exception :exc:" "`BlockingIOError`." @@ -598,41 +603,41 @@ msgstr "" "Operación ahora en curso. Este error se asigna a la excepción :exc:" "`BlockingIOError`." -#: ../Doc/library/errno.rst:623 +#: ../Doc/library/errno.rst:630 msgid "Stale NFS file handle" msgstr "" "Manejador de archivos NFS (por su significado en inglés *Network File " "System*) obsoleto" -#: ../Doc/library/errno.rst:628 +#: ../Doc/library/errno.rst:635 msgid "Structure needs cleaning" msgstr "La estructura necesita limpieza" -#: ../Doc/library/errno.rst:633 +#: ../Doc/library/errno.rst:640 msgid "Not a XENIX named type file" msgstr "No es un archivo de tipo con nombre XENIX" -#: ../Doc/library/errno.rst:638 +#: ../Doc/library/errno.rst:645 msgid "No XENIX semaphores available" msgstr "No hay semáforos XENIX disponibles" -#: ../Doc/library/errno.rst:643 +#: ../Doc/library/errno.rst:650 msgid "Is a named type file" msgstr "Es un archivo de tipo con nombre" -#: ../Doc/library/errno.rst:648 +#: ../Doc/library/errno.rst:655 msgid "Remote I/O error" msgstr "Error de E/S remota" -#: ../Doc/library/errno.rst:653 +#: ../Doc/library/errno.rst:660 msgid "Quota exceeded" msgstr "Cuota excedida" -#: ../Doc/library/errno.rst:657 +#: ../Doc/library/errno.rst:664 msgid "Interface output queue is full" msgstr "La cola de salida de la interfaz está llena" -#: ../Doc/library/errno.rst:663 +#: ../Doc/library/errno.rst:670 msgid "" "Capabilities insufficient. This error is mapped to the exception :exc:" "`PermissionError`." @@ -640,7 +645,20 @@ msgstr "" "Capacidades insuficientes. Este error se asigna a la excepción :exc:" "`PermissionError`." -#: ../Doc/library/errno.rst:667 +#: ../Doc/library/errno.rst:673 #, fuzzy msgid ":ref:`Availability `: WASI, FreeBSD" msgstr ":ref:`Disponibilidad `: WASI, FreeBSD" + +#: ../Doc/library/errno.rst:680 +msgid "Operation canceled" +msgstr "" + +#: ../Doc/library/errno.rst:687 +msgid "Owner died" +msgstr "" + +#: ../Doc/library/errno.rst:694 +#, fuzzy +msgid "State not recoverable" +msgstr "Resultado matemático no representable" diff --git a/library/exceptions.po b/library/exceptions.po index 5aca00e187..0978ca3396 100644 --- a/library/exceptions.po +++ b/library/exceptions.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-30 21:19-0300\n" "Last-Translator: Marco Richetta \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.1.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/exceptions.rst:4 msgid "Built-in Exceptions" @@ -389,22 +388,24 @@ msgstr "" #: ../Doc/library/exceptions.rst:223 msgid "" -"The :attr:`name` and :attr:`path` attributes can be set using keyword-only " -"arguments to the constructor. When set they represent the name of the module " -"that was attempted to be imported and the path to any file which triggered " -"the exception, respectively." +"The optional *name* and *path* keyword-only arguments set the corresponding " +"attributes:" msgstr "" -"Los atributos :attr:`name` y :attr:`path` solo se pueden establecer " -"utilizando argumentos de palabra clave en el constructor. Cuando se " -"establece, representan el nombre del módulo que se intentó importar y la " -"ruta de acceso a cualquier archivo que desencadenó la excepción, " -"respectivamente." #: ../Doc/library/exceptions.rst:228 +#, fuzzy +msgid "The name of the module that was attempted to be imported." +msgstr "El nombre de la codificación que provocó el error." + +#: ../Doc/library/exceptions.rst:232 +msgid "The path to any file which triggered the exception." +msgstr "" + +#: ../Doc/library/exceptions.rst:234 msgid "Added the :attr:`name` and :attr:`path` attributes." msgstr "Se han añadido los atributos :attr:`name` y :attr:`path`." -#: ../Doc/library/exceptions.rst:233 +#: ../Doc/library/exceptions.rst:239 msgid "" "A subclass of :exc:`ImportError` which is raised by :keyword:`import` when a " "module could not be located. It is also raised when ``None`` is found in :" @@ -414,7 +415,7 @@ msgstr "" "cuando no se pudo encontrar un módulo. También se genera cuando ``None`` se " "encuentra en :data:`sys.modules`." -#: ../Doc/library/exceptions.rst:242 +#: ../Doc/library/exceptions.rst:248 msgid "" "Raised when a sequence subscript is out of range. (Slice indices are " "silently truncated to fall in the allowed range; if an index is not an " @@ -425,7 +426,7 @@ msgstr "" "intervalo permitido; si un índice no es un entero, se genera :exc:" "`TypeError`.)" -#: ../Doc/library/exceptions.rst:251 +#: ../Doc/library/exceptions.rst:257 msgid "" "Raised when a mapping (dictionary) key is not found in the set of existing " "keys." @@ -433,7 +434,7 @@ msgstr "" "Se genera cuando no se encuentra una clave de asignación (diccionario) en el " "conjunto de claves existentes (mapa)." -#: ../Doc/library/exceptions.rst:258 +#: ../Doc/library/exceptions.rst:264 msgid "" "Raised when the user hits the interrupt key (normally :kbd:`Control-C` or :" "kbd:`Delete`). During execution, a check for interrupts is made regularly. " @@ -447,7 +448,7 @@ msgstr "" "`BaseException` para no ser detectada de forma accidental por :exc:" "`Exception` y, por lo tanto, prevenir que el intérprete salga." -#: ../Doc/library/exceptions.rst:266 +#: ../Doc/library/exceptions.rst:272 msgid "" "Catching a :exc:`KeyboardInterrupt` requires special consideration. Because " "it can be raised at unpredictable points, it may, in some circumstances, " @@ -462,7 +463,7 @@ msgstr "" "programa tan pronto como sea o evitar lanzarla por completo. (Vea :ref:" "`handlers-and-exceptions`.)" -#: ../Doc/library/exceptions.rst:276 +#: ../Doc/library/exceptions.rst:282 msgid "" "Raised when an operation runs out of memory but the situation may still be " "rescued (by deleting some objects). The associated value is a string " @@ -481,7 +482,7 @@ msgstr "" "se pueda imprimir un seguimiento de la pila, en caso de que un programa " "fuera de servicio fuera lo causa." -#: ../Doc/library/exceptions.rst:287 +#: ../Doc/library/exceptions.rst:293 msgid "" "Raised when a local or global name is not found. This applies only to " "unqualified names. The associated value is an error message that includes " @@ -491,7 +492,7 @@ msgstr "" "solo a nombres no calificados. El valor asociado es un mensaje de error que " "incluye el nombre que no se pudo encontrar." -#: ../Doc/library/exceptions.rst:291 +#: ../Doc/library/exceptions.rst:297 msgid "" "The :attr:`name` attribute can be set using a keyword-only argument to the " "constructor. When set it represent the name of the variable that was " @@ -501,11 +502,11 @@ msgstr "" "palabra clave para el constructor. Cuando se establece, representa el nombre " "de la variable a la que se intentó acceder." -#: ../Doc/library/exceptions.rst:295 +#: ../Doc/library/exceptions.rst:301 msgid "Added the :attr:`name` attribute." msgstr "Se agregó el atributo :attr:`name`." -#: ../Doc/library/exceptions.rst:301 +#: ../Doc/library/exceptions.rst:307 msgid "" "This exception is derived from :exc:`RuntimeError`. In user defined base " "classes, abstract methods should raise this exception when they require " @@ -518,7 +519,7 @@ msgstr "" "mientras se desarrolla la clase para indicar que la implementación real aún " "necesita ser agregada." -#: ../Doc/library/exceptions.rst:308 +#: ../Doc/library/exceptions.rst:314 msgid "" "It should not be used to indicate that an operator or method is not meant to " "be supported at all -- in that case either leave the operator / method " @@ -528,7 +529,7 @@ msgstr "" "absoluto -- en ese caso, deje el operador / método sin definir o, si es una " "subclase, se establece en :data:`None`." -#: ../Doc/library/exceptions.rst:314 +#: ../Doc/library/exceptions.rst:320 msgid "" "``NotImplementedError`` and ``NotImplemented`` are not interchangeable, even " "though they have similar names and purposes. See :data:`NotImplemented` for " @@ -538,7 +539,7 @@ msgstr "" "de que tienen nombres y propósitos similares. Consulte :data:" "`NotImplemented` para obtener detalles sobre cuándo usarlo." -#: ../Doc/library/exceptions.rst:323 +#: ../Doc/library/exceptions.rst:329 msgid "" "This exception is raised when a system function returns a system-related " "error, including I/O failures such as \"file not found\" or \"disk " @@ -549,7 +550,7 @@ msgstr "" "found`` o ``disk full`` (no para tipos de argumentos ilegales u otros " "errores incidentales)." -#: ../Doc/library/exceptions.rst:327 +#: ../Doc/library/exceptions.rst:333 msgid "" "The second form of the constructor sets the corresponding attributes, " "described below. The attributes default to :const:`None` if not specified. " @@ -563,7 +564,7 @@ msgstr "" "si se pasan tres argumentos, el atributo :attr:`~BaseException.args` " "contiene solo una tupla de 2 de los dos primeros argumentos del constructor." -#: ../Doc/library/exceptions.rst:333 +#: ../Doc/library/exceptions.rst:339 msgid "" "The constructor often actually returns a subclass of :exc:`OSError`, as " "described in `OS exceptions`_ below. The particular subclass depends on the " @@ -577,11 +578,11 @@ msgstr "" "construye :exc:`OSError` directamente o mediante un alias, y no se hereda al " "derivar." -#: ../Doc/library/exceptions.rst:341 +#: ../Doc/library/exceptions.rst:347 msgid "A numeric error code from the C variable :c:data:`errno`." msgstr "Un código de error numérico de la variable C, :c:data:`errno`." -#: ../Doc/library/exceptions.rst:345 +#: ../Doc/library/exceptions.rst:351 msgid "" "Under Windows, this gives you the native Windows error code. The :attr:`." "errno` attribute is then an approximate translation, in POSIX terms, of that " @@ -591,7 +592,7 @@ msgstr "" "atributo :attr:`.errno` es entonces una traducción aproximada, en términos " "POSIX, de ese código de error nativo." -#: ../Doc/library/exceptions.rst:349 +#: ../Doc/library/exceptions.rst:355 msgid "" "Under Windows, if the *winerror* constructor argument is an integer, the :" "attr:`.errno` attribute is determined from the Windows error code, and the " @@ -603,7 +604,7 @@ msgstr "" "y el argumento ``errno`` se ignora. En otras plataformas, el argumento " "``winerror`` se ignora y el atributo :attr:`winerror` no existe." -#: ../Doc/library/exceptions.rst:357 +#: ../Doc/library/exceptions.rst:363 msgid "" "The corresponding error message, as provided by the operating system. It is " "formatted by the C functions :c:func:`perror` under POSIX, and :c:func:" @@ -613,7 +614,7 @@ msgstr "" "operativo. Está formateado por las funciones de C, :c:func:`perror` en " "POSIX, y :c:func:`FormatMessage` en Windows." -#: ../Doc/library/exceptions.rst:365 +#: ../Doc/library/exceptions.rst:371 msgid "" "For exceptions that involve a file system path (such as :func:`open` or :" "func:`os.unlink`), :attr:`filename` is the file name passed to the function. " @@ -627,7 +628,7 @@ msgstr "" "de archivos (como :func:`os.rename`), :attr:`filename2` corresponde al " "segundo nombre de archivo pasado a la función." -#: ../Doc/library/exceptions.rst:372 +#: ../Doc/library/exceptions.rst:378 msgid "" ":exc:`EnvironmentError`, :exc:`IOError`, :exc:`WindowsError`, :exc:`socket." "error`, :exc:`select.error` and :exc:`mmap.error` have been merged into :exc:" @@ -637,7 +638,7 @@ msgstr "" "error`, :exc:`select.error` y :exc:`mmap.error` se han fusionado en :exc:" "`OSError`, y el constructor puede retornar una subclase." -#: ../Doc/library/exceptions.rst:378 +#: ../Doc/library/exceptions.rst:384 msgid "" "The :attr:`filename` attribute is now the original file name passed to the " "function, instead of the name encoded to or decoded from the :term:" @@ -649,7 +650,7 @@ msgstr "" "`filesystem encoding and error handler`. Además, se agregaron el argumento y " "atributo del constructor *filename2*." -#: ../Doc/library/exceptions.rst:387 +#: ../Doc/library/exceptions.rst:393 msgid "" "Raised when the result of an arithmetic operation is too large to be " "represented. This cannot occur for integers (which would rather raise :exc:" @@ -666,7 +667,7 @@ msgstr "" "estandarización del manejo de excepciones de coma flotante en C, la mayoría " "de las operaciones de coma flotante no se verifican." -#: ../Doc/library/exceptions.rst:397 +#: ../Doc/library/exceptions.rst:403 msgid "" "This exception is derived from :exc:`RuntimeError`. It is raised when the " "interpreter detects that the maximum recursion depth (see :func:`sys." @@ -676,11 +677,11 @@ msgstr "" "intérprete detecta que se excede la profundidad máxima de recursión (ver :" "func:`sys.getrecursionlimit`)." -#: ../Doc/library/exceptions.rst:401 +#: ../Doc/library/exceptions.rst:407 msgid "Previously, a plain :exc:`RuntimeError` was raised." msgstr "Anteriormente, se planteó un simple :exc:`RuntimeError`." -#: ../Doc/library/exceptions.rst:407 +#: ../Doc/library/exceptions.rst:413 msgid "" "This exception is raised when a weak reference proxy, created by the :func:" "`weakref.proxy` function, is used to access an attribute of the referent " @@ -692,7 +693,7 @@ msgstr "" "referente después de que se ha recolectado basura. Para obtener más " "información sobre referencias débiles, consulte el módulo :mod:`weakref` ." -#: ../Doc/library/exceptions.rst:415 +#: ../Doc/library/exceptions.rst:421 msgid "" "Raised when an error is detected that doesn't fall in any of the other " "categories. The associated value is a string indicating what precisely went " @@ -702,7 +703,7 @@ msgstr "" "otras categorías. El valor asociado es una cadena que indica exactamente qué " "salió mal." -#: ../Doc/library/exceptions.rst:422 +#: ../Doc/library/exceptions.rst:428 msgid "" "Raised by built-in function :func:`next` and an :term:`iterator`\\'s :meth:" "`~iterator.__next__` method to signal that there are no further items " @@ -712,7 +713,7 @@ msgstr "" "meth:`~iterator.__next__` para indicar que no hay más elementos producidos " "por el iterador." -#: ../Doc/library/exceptions.rst:426 +#: ../Doc/library/exceptions.rst:432 msgid "" "The exception object has a single attribute :attr:`value`, which is given as " "an argument when constructing the exception, and defaults to :const:`None`." @@ -721,7 +722,7 @@ msgstr "" "proporciona como argumento al construir la excepción, y por defecto es :" "const:`None`." -#: ../Doc/library/exceptions.rst:430 +#: ../Doc/library/exceptions.rst:436 msgid "" "When a :term:`generator` or :term:`coroutine` function returns, a new :exc:" "`StopIteration` instance is raised, and the value returned by the function " @@ -732,7 +733,7 @@ msgstr "" "función se utiliza como parámetro :attr:`value` para constructor de la " "excepción." -#: ../Doc/library/exceptions.rst:435 +#: ../Doc/library/exceptions.rst:441 msgid "" "If a generator code directly or indirectly raises :exc:`StopIteration`, it " "is converted into a :exc:`RuntimeError` (retaining the :exc:`StopIteration` " @@ -742,7 +743,7 @@ msgstr "" "convierte en :exc:`RuntimeError` (conservando :exc:`StopIteration` como la " "causa de la nueva excepción)." -#: ../Doc/library/exceptions.rst:439 +#: ../Doc/library/exceptions.rst:445 msgid "" "Added ``value`` attribute and the ability for generator functions to use it " "to return a value." @@ -750,7 +751,7 @@ msgstr "" "Se agregó el atributo `*value*` y la capacidad de las funciones del " "generador de usarlo para retornar un valor." -#: ../Doc/library/exceptions.rst:443 +#: ../Doc/library/exceptions.rst:449 msgid "" "Introduced the RuntimeError transformation via ``from __future__ import " "generator_stop``, see :pep:`479`." @@ -758,7 +759,7 @@ msgstr "" "Introdujo la transformación *RuntimeError* a través de ``from __future__ " "import generator_stop``, ver :pep:`479`." -#: ../Doc/library/exceptions.rst:447 +#: ../Doc/library/exceptions.rst:453 msgid "" "Enable :pep:`479` for all code by default: a :exc:`StopIteration` error " "raised in a generator is transformed into a :exc:`RuntimeError`." @@ -766,15 +767,16 @@ msgstr "" "Habilitar :pep:`479` para todo el código por defecto: a :exc:`StopIteration` " "generado en un generador se transforma en :exc:`RuntimeError`." -#: ../Doc/library/exceptions.rst:453 +#: ../Doc/library/exceptions.rst:459 +#, fuzzy msgid "" -"Must be raised by :meth:`__anext__` method of an :term:`asynchronous " +"Must be raised by :meth:`~object.__anext__` method of an :term:`asynchronous " "iterator` object to stop the iteration." msgstr "" "Se debe lanzar mediante :meth:`__anext__` de un objeto :term:`asynchronous " "iterator` para detener la iteración." -#: ../Doc/library/exceptions.rst:460 +#: ../Doc/library/exceptions.rst:466 msgid "" "Raised when the parser encounters a syntax error. This may occur in an :" "keyword:`import` statement, in a call to the built-in functions :func:" @@ -786,7 +788,7 @@ msgstr "" "integradas :func:`compile`, :func:`exec` o :func:`eval`, o al leer el script " "inicial o la entrada estándar (también de forma interactiva)." -#: ../Doc/library/exceptions.rst:466 +#: ../Doc/library/exceptions.rst:472 msgid "" "The :func:`str` of the exception instance returns only the error message. " "Details is a tuple whose members are also available as separate attributes." @@ -795,11 +797,11 @@ msgstr "" "error. Detalles es una tupla cuyos miembros también están disponibles como " "atributos separados." -#: ../Doc/library/exceptions.rst:471 +#: ../Doc/library/exceptions.rst:477 msgid "The name of the file the syntax error occurred in." msgstr "El nombre del archivo en el que se produjo el error de sintaxis." -#: ../Doc/library/exceptions.rst:475 +#: ../Doc/library/exceptions.rst:481 msgid "" "Which line number in the file the error occurred in. This is 1-indexed: the " "first line in the file has a ``lineno`` of 1." @@ -807,7 +809,7 @@ msgstr "" "En qué número de línea del archivo se produjo el error. Tiene un índice 1: " "la primera línea del archivo tiene un ``lineno`` de 1." -#: ../Doc/library/exceptions.rst:480 +#: ../Doc/library/exceptions.rst:486 msgid "" "The column in the line where the error occurred. This is 1-indexed: the " "first character in the line has an ``offset`` of 1." @@ -815,11 +817,11 @@ msgstr "" "La columna de la línea donde ocurrió el error. Está indexado a 1: el primer " "carácter de la línea tiene un ``offset`` de 1." -#: ../Doc/library/exceptions.rst:485 +#: ../Doc/library/exceptions.rst:491 msgid "The source code text involved in the error." msgstr "El texto del código fuente involucrado en el error." -#: ../Doc/library/exceptions.rst:489 +#: ../Doc/library/exceptions.rst:495 msgid "" "Which line number in the file the error occurred ends in. This is 1-indexed: " "the first line in the file has a ``lineno`` of 1." @@ -827,7 +829,7 @@ msgstr "" "En qué número de línea del archivo termina el error. Está indexado a 1: la " "primera línea del archivo tiene un ``lineno`` de 1." -#: ../Doc/library/exceptions.rst:494 +#: ../Doc/library/exceptions.rst:500 msgid "" "The column in the end line where the error occurred finishes. This is 1-" "indexed: the first character in the line has an ``offset`` of 1." @@ -835,7 +837,7 @@ msgstr "" "Finaliza la columna de la línea final donde ocurrió el error. Está indexado " "a 1: el primer carácter de la línea tiene un ``offset`` de 1." -#: ../Doc/library/exceptions.rst:497 +#: ../Doc/library/exceptions.rst:503 msgid "" "For errors in f-string fields, the message is prefixed by \"f-string: \" and " "the offsets are offsets in a text constructed from the replacement " @@ -848,11 +850,11 @@ msgstr "" "como resultado este atributo args: (' f-string: ... ', (' ', 1, 2,' (ab) \\ " "n ', 1, 5)) ." -#: ../Doc/library/exceptions.rst:502 +#: ../Doc/library/exceptions.rst:508 msgid "Added the :attr:`end_lineno` and :attr:`end_offset` attributes." msgstr "Se agregaron los atributos :attr:`end_lineno` y :attr:`end_offset`." -#: ../Doc/library/exceptions.rst:507 +#: ../Doc/library/exceptions.rst:513 msgid "" "Base class for syntax errors related to incorrect indentation. This is a " "subclass of :exc:`SyntaxError`." @@ -860,7 +862,7 @@ msgstr "" "Clase base para errores de sintaxis relacionados con sangría incorrecta. " "Esta es una subclase de :exc:`SyntaxError`." -#: ../Doc/library/exceptions.rst:513 +#: ../Doc/library/exceptions.rst:519 msgid "" "Raised when indentation contains an inconsistent use of tabs and spaces. " "This is a subclass of :exc:`IndentationError`." @@ -868,7 +870,7 @@ msgstr "" "Se genera cuando la sangría contiene un uso inconsistente de pestañas y " "espacios. Esta es una subclase de :exc:`IndentationError`." -#: ../Doc/library/exceptions.rst:519 +#: ../Doc/library/exceptions.rst:525 msgid "" "Raised when the interpreter finds an internal error, but the situation does " "not look so serious to cause it to abandon all hope. The associated value is " @@ -878,7 +880,7 @@ msgstr "" "no parece tan grave como para abandonar toda esperanza. El valor asociado es " "una cadena que indica qué salió mal (a bajo nivel)." -#: ../Doc/library/exceptions.rst:523 +#: ../Doc/library/exceptions.rst:529 msgid "" "You should report this to the author or maintainer of your Python " "interpreter. Be sure to report the version of the Python interpreter (``sys." @@ -892,7 +894,7 @@ msgstr "" "mensaje de error exacto (el valor asociado de la excepción) y, si es " "posible, la fuente del programa que activó el error." -#: ../Doc/library/exceptions.rst:532 +#: ../Doc/library/exceptions.rst:538 msgid "" "This exception is raised by the :func:`sys.exit` function. It inherits " "from :exc:`BaseException` instead of :exc:`Exception` so that it is not " @@ -916,7 +918,7 @@ msgstr "" "salida es cero; Si tiene otro tipo (como una cadena), se imprime el valor " "del objeto y el estado de salida es uno." -#: ../Doc/library/exceptions.rst:543 +#: ../Doc/library/exceptions.rst:549 msgid "" "A call to :func:`sys.exit` is translated into an exception so that clean-up " "handlers (:keyword:`finally` clauses of :keyword:`try` statements) can be " @@ -932,7 +934,7 @@ msgstr "" "absolutamente necesario salir (por ejemplo, en el proceso secundario después " "de una llamada a :func:`os.fork`)." -#: ../Doc/library/exceptions.rst:552 +#: ../Doc/library/exceptions.rst:558 msgid "" "The exit status or error message that is passed to the constructor. " "(Defaults to ``None``.)" @@ -940,7 +942,7 @@ msgstr "" "El estado de salida o mensaje de error que se pasa al constructor. (El valor " "predeterminado es ``None``.)" -#: ../Doc/library/exceptions.rst:558 +#: ../Doc/library/exceptions.rst:564 msgid "" "Raised when an operation or function is applied to an object of " "inappropriate type. The associated value is a string giving details about " @@ -950,7 +952,7 @@ msgstr "" "inapropiado. El valor asociado es una cadena que proporciona detalles sobre " "la falta de coincidencia de tipos." -#: ../Doc/library/exceptions.rst:561 +#: ../Doc/library/exceptions.rst:567 msgid "" "This exception may be raised by user code to indicate that an attempted " "operation on an object is not supported, and is not meant to be. If an " @@ -963,7 +965,7 @@ msgstr "" "una implementación, :exc:`NotImplementedError` es la excepción adecuada para " "lanzar." -#: ../Doc/library/exceptions.rst:566 +#: ../Doc/library/exceptions.rst:572 msgid "" "Passing arguments of the wrong type (e.g. passing a :class:`list` when an :" "class:`int` is expected) should result in a :exc:`TypeError`, but passing " @@ -975,7 +977,7 @@ msgstr "" "`TypeError`, pero pasar argumentos con el valor incorrecto (por ejemplo, un " "número fuera límites esperados) debería dar como resultado :exc:`ValueError`." -#: ../Doc/library/exceptions.rst:573 +#: ../Doc/library/exceptions.rst:579 msgid "" "Raised when a reference is made to a local variable in a function or method, " "but no value has been bound to that variable. This is a subclass of :exc:" @@ -985,7 +987,7 @@ msgstr "" "método, pero no se ha vinculado ningún valor a esa variable. Esta es una " "subclase de :exc:`NameError`." -#: ../Doc/library/exceptions.rst:580 +#: ../Doc/library/exceptions.rst:586 msgid "" "Raised when a Unicode-related encoding or decoding error occurs. It is a " "subclass of :exc:`ValueError`." @@ -993,7 +995,7 @@ msgstr "" "Se genera cuando se produce un error de codificación o decodificación " "relacionado con Unicode. Es una subclase de :exc:`ValueError`." -#: ../Doc/library/exceptions.rst:583 +#: ../Doc/library/exceptions.rst:589 msgid "" ":exc:`UnicodeError` has attributes that describe the encoding or decoding " "error. For example, ``err.object[err.start:err.end]`` gives the particular " @@ -1003,27 +1005,27 @@ msgstr "" "decodificación. Por ejemplo, ``err.object[err.start:err.end]`` proporciona " "la entrada inválida particular en la que falló el códec." -#: ../Doc/library/exceptions.rst:589 +#: ../Doc/library/exceptions.rst:595 msgid "The name of the encoding that raised the error." msgstr "El nombre de la codificación que provocó el error." -#: ../Doc/library/exceptions.rst:593 +#: ../Doc/library/exceptions.rst:599 msgid "A string describing the specific codec error." msgstr "Una cadena que describe el error de códec específico." -#: ../Doc/library/exceptions.rst:597 +#: ../Doc/library/exceptions.rst:603 msgid "The object the codec was attempting to encode or decode." msgstr "El objeto que el códec intentaba codificar o decodificar." -#: ../Doc/library/exceptions.rst:601 +#: ../Doc/library/exceptions.rst:607 msgid "The first index of invalid data in :attr:`object`." msgstr "El primer índice de datos no válidos en :attr:`object`." -#: ../Doc/library/exceptions.rst:605 +#: ../Doc/library/exceptions.rst:611 msgid "The index after the last invalid data in :attr:`object`." msgstr "El índice después de los últimos datos no válidos en :attr:`object`." -#: ../Doc/library/exceptions.rst:610 +#: ../Doc/library/exceptions.rst:616 msgid "" "Raised when a Unicode-related error occurs during encoding. It is a " "subclass of :exc:`UnicodeError`." @@ -1031,7 +1033,7 @@ msgstr "" "Se genera cuando se produce un error relacionado con Unicode durante la " "codificación. Es una subclase de :exc:`UnicodeError`." -#: ../Doc/library/exceptions.rst:616 +#: ../Doc/library/exceptions.rst:622 msgid "" "Raised when a Unicode-related error occurs during decoding. It is a " "subclass of :exc:`UnicodeError`." @@ -1039,7 +1041,7 @@ msgstr "" "Se genera cuando se produce un error relacionado con Unicode durante la " "codificación. Es una subclase de :exc:`UnicodeError`." -#: ../Doc/library/exceptions.rst:622 +#: ../Doc/library/exceptions.rst:628 msgid "" "Raised when a Unicode-related error occurs during translating. It is a " "subclass of :exc:`UnicodeError`." @@ -1047,7 +1049,7 @@ msgstr "" "Se genera cuando se produce un error relacionado con Unicode durante la " "codificación. Es una subclase de :exc:`UnicodeError`." -#: ../Doc/library/exceptions.rst:628 +#: ../Doc/library/exceptions.rst:634 msgid "" "Raised when an operation or function receives an argument that has the right " "type but an inappropriate value, and the situation is not described by a " @@ -1057,7 +1059,7 @@ msgstr "" "tipo correcto pero un valor inapropiado, y la situación no se describe con " "una excepción más precisa como :exc:`IndexError`." -#: ../Doc/library/exceptions.rst:635 +#: ../Doc/library/exceptions.rst:641 msgid "" "Raised when the second argument of a division or modulo operation is zero. " "The associated value is a string indicating the type of the operands and the " @@ -1067,7 +1069,7 @@ msgstr "" "es cero. El valor asociado es una cadena que indica el tipo de operandos y " "la operación." -#: ../Doc/library/exceptions.rst:640 +#: ../Doc/library/exceptions.rst:646 msgid "" "The following exceptions are kept for compatibility with previous versions; " "starting from Python 3.3, they are aliases of :exc:`OSError`." @@ -1075,15 +1077,15 @@ msgstr "" "Las siguientes excepciones se mantienen por compatibilidad con versiones " "anteriores; a partir de Python 3.3, son alias de :exc:`OSError`." -#: ../Doc/library/exceptions.rst:649 +#: ../Doc/library/exceptions.rst:655 msgid "Only available on Windows." msgstr "Solo disponible en Windows." -#: ../Doc/library/exceptions.rst:653 +#: ../Doc/library/exceptions.rst:659 msgid "OS exceptions" msgstr "Excepciones del sistema operativo" -#: ../Doc/library/exceptions.rst:655 +#: ../Doc/library/exceptions.rst:661 msgid "" "The following exceptions are subclasses of :exc:`OSError`, they get raised " "depending on the system error code." @@ -1091,19 +1093,20 @@ msgstr "" "Las siguientes excepciones son subclases de :exc:`OSError`, se generan según " "el código de error del sistema." -#: ../Doc/library/exceptions.rst:660 +#: ../Doc/library/exceptions.rst:666 +#, fuzzy msgid "" "Raised when an operation would block on an object (e.g. socket) set for non-" -"blocking operation. Corresponds to :c:data:`errno` :py:data:`~errno." -"EAGAIN`, :py:data:`~errno.EALREADY`, :py:data:`~errno.EWOULDBLOCK` and :py:" -"data:`~errno.EINPROGRESS`." +"blocking operation. Corresponds to :c:data:`errno` :py:const:`~errno." +"EAGAIN`, :py:const:`~errno.EALREADY`, :py:const:`~errno.EWOULDBLOCK` and :py:" +"const:`~errno.EINPROGRESS`." msgstr "" "Se lanza cuando una operación se bloquearía en un objeto (ejemplo: socket) " "configurado para una operación no bloqueante. Corresponde a :c:data:`errno` :" "py:data:`~errno.EAGAIN`, :py:data:`~errno.EALREADY`, :py:data:`~errno." "EWOULDBLOCK` y :py:data:`~errno.EINPROGRESS`." -#: ../Doc/library/exceptions.rst:665 +#: ../Doc/library/exceptions.rst:671 msgid "" "In addition to those of :exc:`OSError`, :exc:`BlockingIOError` can have one " "more attribute:" @@ -1111,7 +1114,7 @@ msgstr "" "Además de los de :exc:`OSError`, :exc:`BlockingIOError` puede tener un " "atributo más:" -#: ../Doc/library/exceptions.rst:670 +#: ../Doc/library/exceptions.rst:676 msgid "" "An integer containing the number of characters written to the stream before " "it blocked. This attribute is available when using the buffered I/O classes " @@ -1121,19 +1124,20 @@ msgstr "" "antes de que se bloquee. Este atributo está disponible cuando se utilizan " "las clases de E/S almacenadas en el modulo :mod:`io`." -#: ../Doc/library/exceptions.rst:676 +#: ../Doc/library/exceptions.rst:682 +#, fuzzy msgid "" "Raised when an operation on a child process failed. Corresponds to :c:data:" -"`errno` :py:data:`~errno.ECHILD`." +"`errno` :py:const:`~errno.ECHILD`." msgstr "" "Se genera cuando falla una operación en un proceso secundario. Corresponde " "a :c:data:`errno` :py:data:`~errno.ECHILD`." -#: ../Doc/library/exceptions.rst:681 +#: ../Doc/library/exceptions.rst:687 msgid "A base class for connection-related issues." msgstr "Una clase base para problemas relacionados con la conexión." -#: ../Doc/library/exceptions.rst:683 +#: ../Doc/library/exceptions.rst:689 msgid "" "Subclasses are :exc:`BrokenPipeError`, :exc:`ConnectionAbortedError`, :exc:" "`ConnectionRefusedError` and :exc:`ConnectionResetError`." @@ -1141,72 +1145,79 @@ msgstr "" "Las subclases son :exc:`BrokenPipeError`, :exc:`ConnectionAbortedError`, :" "exc:`ConnectionRefusedError` y :exc:`ConnectionResetError`." -#: ../Doc/library/exceptions.rst:688 +#: ../Doc/library/exceptions.rst:694 +#, fuzzy msgid "" "A subclass of :exc:`ConnectionError`, raised when trying to write on a pipe " "while the other end has been closed, or trying to write on a socket which " -"has been shutdown for writing. Corresponds to :c:data:`errno` :py:data:" -"`~errno.EPIPE` and :py:data:`~errno.ESHUTDOWN`." +"has been shutdown for writing. Corresponds to :c:data:`errno` :py:const:" +"`~errno.EPIPE` and :py:const:`~errno.ESHUTDOWN`." msgstr "" "Una subclase de :exc:`ConnectionError`, que se genera cuando se intenta " "escribir en una tubería mientras el otro extremo se ha cerrado, o cuando se " "intenta escribir en un *socket* que se ha cerrado por escritura. Corresponde " "a :c:data:`errno` :py:data:`~errno.EPIPE` y :py:data:`~errno.ESHUTDOWN`." -#: ../Doc/library/exceptions.rst:695 +#: ../Doc/library/exceptions.rst:701 +#, fuzzy msgid "" "A subclass of :exc:`ConnectionError`, raised when a connection attempt is " -"aborted by the peer. Corresponds to :c:data:`errno` :py:data:`~errno." +"aborted by the peer. Corresponds to :c:data:`errno` :py:const:`~errno." "ECONNABORTED`." msgstr "" "Una subclase de :exc:`ConnectionError`, que se genera cuando el par " "interrumpe un intento de conexión. Corresponde a :c:data:`errno` :py:data:" "`~errno.ECONNABORTED`." -#: ../Doc/library/exceptions.rst:701 +#: ../Doc/library/exceptions.rst:707 +#, fuzzy msgid "" "A subclass of :exc:`ConnectionError`, raised when a connection attempt is " -"refused by the peer. Corresponds to :c:data:`errno` :py:data:`~errno." +"refused by the peer. Corresponds to :c:data:`errno` :py:const:`~errno." "ECONNREFUSED`." msgstr "" "Una subclase de :exc:`ConnectionError`, que se genera cuando el par " "interrumpe un intento de conexión. Corresponde a :c:data:`errno` :py:data:" "`~errno.ECONNREFUSED`." -#: ../Doc/library/exceptions.rst:707 +#: ../Doc/library/exceptions.rst:713 +#, fuzzy msgid "" "A subclass of :exc:`ConnectionError`, raised when a connection is reset by " -"the peer. Corresponds to :c:data:`errno` :py:data:`~errno.ECONNRESET`." +"the peer. Corresponds to :c:data:`errno` :py:const:`~errno.ECONNRESET`." msgstr "" "Una subclase de :exc:`ConnectionError`, que se genera cuando el par " "restablece una conexión. Corresponde a :c:data:`errno` :py:data:`~errno." "ECONNRESET`." -#: ../Doc/library/exceptions.rst:713 +#: ../Doc/library/exceptions.rst:719 +#, fuzzy msgid "" "Raised when trying to create a file or directory which already exists. " -"Corresponds to :c:data:`errno` :py:data:`~errno.EEXIST`." +"Corresponds to :c:data:`errno` :py:const:`~errno.EEXIST`." msgstr "" "Se genera al intentar crear un archivo o directorio que ya existe. " "Corresponde a :c:data:`errno` :py:data:`~errno.EEXIST`." -#: ../Doc/library/exceptions.rst:718 +#: ../Doc/library/exceptions.rst:724 +#, fuzzy msgid "" "Raised when a file or directory is requested but doesn't exist. Corresponds " -"to :c:data:`errno` :py:data:`~errno.ENOENT`." +"to :c:data:`errno` :py:const:`~errno.ENOENT`." msgstr "" "Se genera cuando se solicita un archivo o directorio pero no existe. " "Corresponde a :c:data:`errno` :py:data:`~errno.ENOENT`." -#: ../Doc/library/exceptions.rst:723 +#: ../Doc/library/exceptions.rst:729 +#, fuzzy msgid "" "Raised when a system call is interrupted by an incoming signal. Corresponds " -"to :c:data:`errno` :py:data:`~errno.EINTR`." +"to :c:data:`errno` :py:const:`~errno.EINTR`." msgstr "" "Se genera cuando una llamada entrante interrumpe una llamada del sistema. " "Corresponde a :c:data:`errno` :py:data:`~errno.EINTR`." -#: ../Doc/library/exceptions.rst:726 +#: ../Doc/library/exceptions.rst:732 msgid "" "Python now retries system calls when a syscall is interrupted by a signal, " "except if the signal handler raises an exception (see :pep:`475` for the " @@ -1217,21 +1228,23 @@ msgstr "" "(ver :pep:`475` para la justificación), en lugar de lanzar :exc:" "`InterruptedError`." -#: ../Doc/library/exceptions.rst:733 +#: ../Doc/library/exceptions.rst:739 +#, fuzzy msgid "" "Raised when a file operation (such as :func:`os.remove`) is requested on a " -"directory. Corresponds to :c:data:`errno` :py:data:`~errno.EISDIR`." +"directory. Corresponds to :c:data:`errno` :py:const:`~errno.EISDIR`." msgstr "" "Se genera cuando se solicita una operación de archivo (como :func:`os." "remove`) en un directorio. Corresponde a: :c:data:`errno` :py:data:`~errno." "EISDIR`." -#: ../Doc/library/exceptions.rst:739 +#: ../Doc/library/exceptions.rst:745 +#, fuzzy msgid "" "Raised when a directory operation (such as :func:`os.listdir`) is requested " "on something which is not a directory. On most POSIX platforms, it may also " "be raised if an operation attempts to open or traverse a non-directory file " -"as if it were a directory. Corresponds to :c:data:`errno` :py:data:`~errno." +"as if it were a directory. Corresponds to :c:data:`errno` :py:const:`~errno." "ENOTDIR`." msgstr "" "Se genera cuando se solicita una operación de directorio (como :func:`os." @@ -1240,54 +1253,60 @@ msgstr "" "archivo que no es de directorio como si fuera un directorio. Corresponde a :" "c:data:`errno` :py:data:`~errno.ENOTDIR`." -#: ../Doc/library/exceptions.rst:747 +#: ../Doc/library/exceptions.rst:753 +#, fuzzy msgid "" "Raised when trying to run an operation without the adequate access rights - " -"for example filesystem permissions. Corresponds to :c:data:`errno` :py:data:" -"`~errno.EACCES`, :py:data:`~errno.EPERM`, and :py:data:`~errno.ENOTCAPABLE`." +"for example filesystem permissions. Corresponds to :c:data:`errno` :py:const:" +"`~errno.EACCES`, :py:const:`~errno.EPERM`, and :py:const:`~errno." +"ENOTCAPABLE`." msgstr "" "Se genera cuando se intenta ejecutar una operación sin los permisos de " "acceso adecuados - por ejemplo permisos del sistema de archivos. Corresponde " "a :c:data:`errno` :py:data:`~errno.EACCES`, :py:data:`~errno.EPERM`, y :py:" "data:`~errno.ENOTCAPABLE`." -#: ../Doc/library/exceptions.rst:752 +#: ../Doc/library/exceptions.rst:758 +#, fuzzy msgid "" -"WASI's :py:data:`~errno.ENOTCAPABLE` is now mapped to :exc:`PermissionError`." +"WASI's :py:const:`~errno.ENOTCAPABLE` is now mapped to :exc:" +"`PermissionError`." msgstr "" "WASI's :py:data:`~errno.ENOTCAPABLE` ahora se mapea a :exc:`PermissionError`." -#: ../Doc/library/exceptions.rst:758 +#: ../Doc/library/exceptions.rst:764 +#, fuzzy msgid "" "Raised when a given process doesn't exist. Corresponds to :c:data:`errno` :" -"py:data:`~errno.ESRCH`." +"py:const:`~errno.ESRCH`." msgstr "" "Generado cuando un proceso dado no existe. Corresponde a :c:data:`errno` :py:" "data:`~errno.ESRCH`." -#: ../Doc/library/exceptions.rst:763 +#: ../Doc/library/exceptions.rst:769 +#, fuzzy msgid "" "Raised when a system function timed out at the system level. Corresponds to :" -"c:data:`errno` :py:data:`~errno.ETIMEDOUT`." +"c:data:`errno` :py:const:`~errno.ETIMEDOUT`." msgstr "" "Se genera cuando se agota el tiempo de espera de una función del sistema a " "nivel del sistema. Corresponde a :c:data:`errno` :py:data:`~errno.ETIMEDOUT`." -#: ../Doc/library/exceptions.rst:766 +#: ../Doc/library/exceptions.rst:772 msgid "All the above :exc:`OSError` subclasses were added." msgstr "Por lo anterior se agregaron las subclases :exc:`OSError`." -#: ../Doc/library/exceptions.rst:772 +#: ../Doc/library/exceptions.rst:778 msgid ":pep:`3151` - Reworking the OS and IO exception hierarchy" msgstr "" ":pep:`3151` - Reelaborando el sistema operativo y la jerarquía de " "excepciones E/S" -#: ../Doc/library/exceptions.rst:778 +#: ../Doc/library/exceptions.rst:784 msgid "Warnings" msgstr "Advertencias" -#: ../Doc/library/exceptions.rst:780 +#: ../Doc/library/exceptions.rst:786 msgid "" "The following exceptions are used as warning categories; see the :ref:" "`warning-categories` documentation for more details." @@ -1296,15 +1315,15 @@ msgstr "" "consulte la documentación de :ref:`warning-categories` para obtener más " "detalles." -#: ../Doc/library/exceptions.rst:785 +#: ../Doc/library/exceptions.rst:791 msgid "Base class for warning categories." msgstr "Clase base para categorías de advertencia." -#: ../Doc/library/exceptions.rst:790 +#: ../Doc/library/exceptions.rst:796 msgid "Base class for warnings generated by user code." msgstr "Clase base para advertencias generadas por código de usuario." -#: ../Doc/library/exceptions.rst:795 +#: ../Doc/library/exceptions.rst:801 msgid "" "Base class for warnings about deprecated features when those warnings are " "intended for other Python developers." @@ -1312,7 +1331,7 @@ msgstr "" "Clase base para advertencias sobre características obsoletas cuando esas " "advertencias están destinadas a otros desarrolladores de Python." -#: ../Doc/library/exceptions.rst:798 +#: ../Doc/library/exceptions.rst:804 msgid "" "Ignored by the default warning filters, except in the ``__main__`` module (:" "pep:`565`). Enabling the :ref:`Python Development Mode ` shows this " @@ -1322,11 +1341,11 @@ msgstr "" "módulo ``__main__`` (:pep:`565`). Habilitando :ref:`Modo Desarrollo de " "Python ` muestra esta advertencia." -#: ../Doc/library/exceptions.rst:802 ../Doc/library/exceptions.rst:818 +#: ../Doc/library/exceptions.rst:808 ../Doc/library/exceptions.rst:824 msgid "The deprecation policy is described in :pep:`387`." msgstr "La política de obsolescencia se describe en :pep:`387`." -#: ../Doc/library/exceptions.rst:807 +#: ../Doc/library/exceptions.rst:813 msgid "" "Base class for warnings about features which are obsolete and expected to be " "deprecated in the future, but are not deprecated at the moment." @@ -1335,7 +1354,7 @@ msgstr "" "se espera que sean obsoletas en el futuro, pero que no lo son en este " "momento." -#: ../Doc/library/exceptions.rst:811 +#: ../Doc/library/exceptions.rst:817 msgid "" "This class is rarely used as emitting a warning about a possible upcoming " "deprecation is unusual, and :exc:`DeprecationWarning` is preferred for " @@ -1345,8 +1364,8 @@ msgstr "" "desaprobación próxima es inusual, y :exc:`DeprecationWarning` se prefiere " "para las desaprobaciones ya activas." -#: ../Doc/library/exceptions.rst:815 ../Doc/library/exceptions.rst:841 -#: ../Doc/library/exceptions.rst:868 +#: ../Doc/library/exceptions.rst:821 ../Doc/library/exceptions.rst:847 +#: ../Doc/library/exceptions.rst:874 msgid "" "Ignored by the default warning filters. Enabling the :ref:`Python " "Development Mode ` shows this warning." @@ -1354,17 +1373,17 @@ msgstr "" "Ignorado por los filtros de advertencia predeterminados. Habilitando :ref:" "`Modo Desarrollo de Python ` muestra esta advertencia." -#: ../Doc/library/exceptions.rst:823 +#: ../Doc/library/exceptions.rst:829 msgid "Base class for warnings about dubious syntax." msgstr "Clase base para advertencias sobre sintaxis dudosa." -#: ../Doc/library/exceptions.rst:828 +#: ../Doc/library/exceptions.rst:834 msgid "Base class for warnings about dubious runtime behavior." msgstr "" "Clase base para advertencias sobre comportamiento dudoso en tiempo de " "ejecución." -#: ../Doc/library/exceptions.rst:833 +#: ../Doc/library/exceptions.rst:839 msgid "" "Base class for warnings about deprecated features when those warnings are " "intended for end users of applications that are written in Python." @@ -1373,40 +1392,40 @@ msgstr "" "advertencias están destinadas a usuarios finales de aplicaciones escritas en " "Python." -#: ../Doc/library/exceptions.rst:839 +#: ../Doc/library/exceptions.rst:845 msgid "Base class for warnings about probable mistakes in module imports." msgstr "" "Clase base para advertencias sobre posibles errores en la importación de " "módulos." -#: ../Doc/library/exceptions.rst:847 +#: ../Doc/library/exceptions.rst:853 msgid "Base class for warnings related to Unicode." msgstr "Clase base para advertencias relacionadas con Unicode." -#: ../Doc/library/exceptions.rst:852 +#: ../Doc/library/exceptions.rst:858 msgid "Base class for warnings related to encodings." msgstr "Clase base para advertencias relacionadas con codificaciones." -#: ../Doc/library/exceptions.rst:854 +#: ../Doc/library/exceptions.rst:860 msgid "See :ref:`io-encoding-warning` for details." msgstr "Consulte :ref:`io-encoding-warning` para obtener más detalles." -#: ../Doc/library/exceptions.rst:861 +#: ../Doc/library/exceptions.rst:867 msgid "" "Base class for warnings related to :class:`bytes` and :class:`bytearray`." msgstr "" "Clase base para advertencias relacionadas con :class:`bytes` y :class:" "`bytearray`." -#: ../Doc/library/exceptions.rst:866 +#: ../Doc/library/exceptions.rst:872 msgid "Base class for warnings related to resource usage." msgstr "Clase base para advertencias relacionadas con el uso de recursos." -#: ../Doc/library/exceptions.rst:875 +#: ../Doc/library/exceptions.rst:883 msgid "Exception groups" msgstr "Grupos de excepciones" -#: ../Doc/library/exceptions.rst:877 +#: ../Doc/library/exceptions.rst:885 msgid "" "The following are used when it is necessary to raise multiple unrelated " "exceptions. They are part of the exception hierarchy so they can be handled " @@ -1420,7 +1439,7 @@ msgstr "" "Además, son reconocidas por :keyword:`except*`, lo que hace " "coincidir sus subgrupos basándose en los tipos de las excepciones contenidas." -#: ../Doc/library/exceptions.rst:886 +#: ../Doc/library/exceptions.rst:894 msgid "" "Both of these exception types wrap the exceptions in the sequence ``excs``. " "The ``msg`` parameter must be a string. The difference between the two " @@ -1438,7 +1457,7 @@ msgstr "" "de :exc:`Exception`. Este diseño está pensado para que ``except Exception`` " "capture un :exc:`ExceptionGroup` pero no :exc:`BaseExceptionGroup`" -#: ../Doc/library/exceptions.rst:894 +#: ../Doc/library/exceptions.rst:902 msgid "" "The :exc:`BaseExceptionGroup` constructor returns an :exc:`ExceptionGroup` " "rather than a :exc:`BaseExceptionGroup` if all contained exceptions are :exc:" @@ -1453,12 +1472,12 @@ msgstr "" "por su parte, lanza un :exc:`TypeError` si alguna de las excepciones " "contenidas no es una subclase de :exc:`Exception`." -#: ../Doc/library/exceptions.rst:903 +#: ../Doc/library/exceptions.rst:911 msgid "The ``msg`` argument to the constructor. This is a read-only attribute." msgstr "" "El argumento ``msg`` para el constructor. Este atributo es de sólo lectura." -#: ../Doc/library/exceptions.rst:907 +#: ../Doc/library/exceptions.rst:915 msgid "" "A tuple of the exceptions in the ``excs`` sequence given to the constructor. " "This is a read-only attribute." @@ -1466,7 +1485,7 @@ msgstr "" "Una tupla de la excepciones en la secuencia ``excs`` pasada al constructor. " "Este atributo es de sólo lectura." -#: ../Doc/library/exceptions.rst:912 +#: ../Doc/library/exceptions.rst:920 msgid "" "Returns an exception group that contains only the exceptions from the " "current group that match *condition*, or ``None`` if the result is empty." @@ -1474,7 +1493,7 @@ msgstr "" "Retorna un grupo de excepciones que contiene sólo las excepciones del grupo " "actual que cumplen con *condition*, o ``None`` si el resultado está vacío." -#: ../Doc/library/exceptions.rst:915 +#: ../Doc/library/exceptions.rst:923 msgid "" "The condition can be either a function that accepts an exception and returns " "true for those that should be in the subgroup, or it can be an exception " @@ -1487,7 +1506,7 @@ msgstr "" "una coincidencia utilizando la misma comprobación que se utiliza en una " "cláusula ``except``." -#: ../Doc/library/exceptions.rst:920 +#: ../Doc/library/exceptions.rst:928 msgid "" "The nesting structure of the current exception is preserved in the result, " "as are the values of its :attr:`message`, :attr:`__traceback__`, :attr:" @@ -1499,7 +1518,7 @@ msgstr "" "`__traceback__`, :attr:`__cause__`, :attr:`__context__` y :attr:`__notes__`. " "Los grupos anidados vacíos son omitidos del resultado." -#: ../Doc/library/exceptions.rst:925 +#: ../Doc/library/exceptions.rst:933 msgid "" "The condition is checked for all exceptions in the nested exception group, " "including the top-level and any nested exception groups. If the condition is " @@ -1510,7 +1529,7 @@ msgstr "" "anidado. Si la condición es verdadera para dicho grupo de excepción, se " "incluye en el resultado en su totalidad." -#: ../Doc/library/exceptions.rst:931 +#: ../Doc/library/exceptions.rst:939 msgid "" "Like :meth:`subgroup`, but returns the pair ``(match, rest)`` where " "``match`` is ``subgroup(condition)`` and ``rest`` is the remaining non-" @@ -1520,27 +1539,36 @@ msgstr "" "``match`` es ``subgroup(condition)`` y ``rest`` es la parte restante que no " "coincide." -#: ../Doc/library/exceptions.rst:937 +#: ../Doc/library/exceptions.rst:945 +#, fuzzy msgid "" -"Returns an exception group with the same :attr:`message`, :attr:" -"`__traceback__`, :attr:`__cause__`, :attr:`__context__` and :attr:" -"`__notes__` but which wraps the exceptions in ``excs``." +"Returns an exception group with the same :attr:`message`, but which wraps " +"the exceptions in ``excs``." msgstr "" "Retorna un grupo de excepción con los mismos :attr:`message`, :attr:" "`__traceback__`, :attr:`__cause__`, :attr:`__context__` y :attr:`__notes__` " "pero que envuelve las excepciones en ``excs``." -#: ../Doc/library/exceptions.rst:941 +#: ../Doc/library/exceptions.rst:948 +#, fuzzy msgid "" "This method is used by :meth:`subgroup` and :meth:`split`. A subclass needs " "to override it in order to make :meth:`subgroup` and :meth:`split` return " -"instances of the subclass rather than :exc:`ExceptionGroup`. ::" +"instances of the subclass rather than :exc:`ExceptionGroup`." msgstr "" "Este método es usado por :meth:`subgroup` y :meth:`split`. Se necesita una " "subclase que lo sobrescriba para que :meth:`subgroup` y :meth:`split` " "retornan instancias de la subclase en lugar de :exc:`ExceptionGroup`. ::" #: ../Doc/library/exceptions.rst:953 +msgid "" +":meth:`subgroup` and :meth:`split` copy the :attr:`__traceback__`, :attr:" +"`__cause__`, :attr:`__context__` and :attr:`__notes__` fields from the " +"original exception group to the one returned by :meth:`derive`, so these " +"fields do not need to be updated by :meth:`derive`. ::" +msgstr "" + +#: ../Doc/library/exceptions.rst:982 #, fuzzy msgid "" "Note that :exc:`BaseExceptionGroup` defines :meth:`__new__`, so subclasses " @@ -1555,10 +1583,59 @@ msgstr "" "define una subclase de grupo de excepción que acepta un *exit_code* y " "construye el mensaje del grupo a partir del mismo. ::" -#: ../Doc/library/exceptions.rst:972 +#: ../Doc/library/exceptions.rst:997 +msgid "" +"Like :exc:`ExceptionGroup`, any subclass of :exc:`BaseExceptionGroup` which " +"is also a subclass of :exc:`Exception` can only wrap instances of :exc:" +"`Exception`." +msgstr "" + +#: ../Doc/library/exceptions.rst:1005 msgid "Exception hierarchy" msgstr "Jerarquía de excepción" -#: ../Doc/library/exceptions.rst:974 +#: ../Doc/library/exceptions.rst:1007 msgid "The class hierarchy for built-in exceptions is:" msgstr "La jerarquía de clases para las excepciones incorporadas es:" + +#: ../Doc/library/exceptions.rst:6 ../Doc/library/exceptions.rst:17 +#: ../Doc/library/exceptions.rst:178 +msgid "statement" +msgstr "" + +#: ../Doc/library/exceptions.rst:6 +msgid "try" +msgstr "" + +#: ../Doc/library/exceptions.rst:6 +#, fuzzy +msgid "except" +msgstr "Excepciones del sistema operativo" + +#: ../Doc/library/exceptions.rst:17 +msgid "raise" +msgstr "" + +#: ../Doc/library/exceptions.rst:178 +msgid "assert" +msgstr "" + +#: ../Doc/library/exceptions.rst:327 +msgid "module" +msgstr "" + +#: ../Doc/library/exceptions.rst:327 +msgid "errno" +msgstr "" + +#~ msgid "" +#~ "The :attr:`name` and :attr:`path` attributes can be set using keyword-" +#~ "only arguments to the constructor. When set they represent the name of " +#~ "the module that was attempted to be imported and the path to any file " +#~ "which triggered the exception, respectively." +#~ msgstr "" +#~ "Los atributos :attr:`name` y :attr:`path` solo se pueden establecer " +#~ "utilizando argumentos de palabra clave en el constructor. Cuando se " +#~ "establece, representan el nombre del módulo que se intentó importar y la " +#~ "ruta de acceso a cualquier archivo que desencadenó la excepción, " +#~ "respectivamente." diff --git a/library/faulthandler.po b/library/faulthandler.po index 2668105cf1..81e40707cd 100644 --- a/library/faulthandler.po +++ b/library/faulthandler.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-16 21:42+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-11-09 10:30+0100\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,8 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.9.1\n" -"X-Generator: Poedit 3.0\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/faulthandler.rst:2 msgid ":mod:`faulthandler` --- Dump the Python traceback" @@ -124,11 +123,29 @@ msgstr "" "El :ref:`Modo de Desarrollo Python ` llama a :func:`failurehandler." "enable` al inicio de Python." -#: ../Doc/library/faulthandler.rst:48 +#: ../Doc/library/faulthandler.rst:49 +msgid "Module :mod:`pdb`" +msgstr "" + +#: ../Doc/library/faulthandler.rst:49 +msgid "Interactive source code debugger for Python programs." +msgstr "" + +#: ../Doc/library/faulthandler.rst:51 +msgid "Module :mod:`traceback`" +msgstr "" + +#: ../Doc/library/faulthandler.rst:52 +msgid "" +"Standard interface to extract, format and print stack traces of Python " +"programs." +msgstr "" + +#: ../Doc/library/faulthandler.rst:55 msgid "Dumping the traceback" msgstr "Volcar el rastreo" -#: ../Doc/library/faulthandler.rst:52 +#: ../Doc/library/faulthandler.rst:59 msgid "" "Dump the tracebacks of all threads into *file*. If *all_threads* is " "``False``, dump only the current thread." @@ -136,16 +153,21 @@ msgstr "" "Vuelca los rastreos de todos los hilos en el archivo *file*. Si " "*all_threads* es ``False``, vuelca solo el hilo actual." -#: ../Doc/library/faulthandler.rst:55 ../Doc/library/faulthandler.rst:73 -#: ../Doc/library/faulthandler.rst:115 ../Doc/library/faulthandler.rst:137 +#: ../Doc/library/faulthandler.rst:62 +msgid "" +":func:`traceback.print_tb`, which can be used to print a traceback object." +msgstr "" + +#: ../Doc/library/faulthandler.rst:64 ../Doc/library/faulthandler.rst:82 +#: ../Doc/library/faulthandler.rst:124 ../Doc/library/faulthandler.rst:146 msgid "Added support for passing file descriptor to this function." msgstr "Se añadió soporte para pasar el descriptor de archivo a esta función." -#: ../Doc/library/faulthandler.rst:60 +#: ../Doc/library/faulthandler.rst:69 msgid "Fault handler state" msgstr "Estado del gestor de fallos" -#: ../Doc/library/faulthandler.rst:64 +#: ../Doc/library/faulthandler.rst:73 msgid "" "Enable the fault handler: install handlers for the :const:`SIGSEGV`, :const:" "`SIGFPE`, :const:`SIGABRT`, :const:`SIGBUS` and :const:`SIGILL` signals to " @@ -158,7 +180,7 @@ msgstr "" "produce rastreos por cada hilo activo. De lo contrario, vuelca solo el hilo " "actual." -#: ../Doc/library/faulthandler.rst:70 +#: ../Doc/library/faulthandler.rst:79 msgid "" "The *file* must be kept open until the fault handler is disabled: see :ref:" "`issue with file descriptors `." @@ -166,11 +188,11 @@ msgstr "" "El archivo *file* se debe mantener abierto hasta que se desactive el gestor " "de fallos: ver :ref:`problema con descriptores de archivo `." -#: ../Doc/library/faulthandler.rst:76 +#: ../Doc/library/faulthandler.rst:85 msgid "On Windows, a handler for Windows exception is also installed." msgstr "En Windows, también se instaló un gestor para la excepción de Windows." -#: ../Doc/library/faulthandler.rst:79 +#: ../Doc/library/faulthandler.rst:88 msgid "" "The dump now mentions if a garbage collector collection is running if " "*all_threads* is true." @@ -178,7 +200,7 @@ msgstr "" "Ahora el volcado menciona si se está ejecutando una colección de " "recolectores de basura si *all_threads* es verdadero." -#: ../Doc/library/faulthandler.rst:85 +#: ../Doc/library/faulthandler.rst:94 msgid "" "Disable the fault handler: uninstall the signal handlers installed by :func:" "`enable`." @@ -186,15 +208,15 @@ msgstr "" "Desactiva el gestor de fallos: desinstala los gestores de señales instalados " "por :func:`enable`." -#: ../Doc/library/faulthandler.rst:90 +#: ../Doc/library/faulthandler.rst:99 msgid "Check if the fault handler is enabled." msgstr "Comprueba si el gestor de fallos está activado." -#: ../Doc/library/faulthandler.rst:94 +#: ../Doc/library/faulthandler.rst:103 msgid "Dumping the tracebacks after a timeout" msgstr "Volcar los rastreos después de un tiempo de espera" -#: ../Doc/library/faulthandler.rst:98 +#: ../Doc/library/faulthandler.rst:107 msgid "" "Dump the tracebacks of all threads, after a timeout of *timeout* seconds, or " "every *timeout* seconds if *repeat* is ``True``. If *exit* is ``True``, " @@ -213,7 +235,7 @@ msgstr "" "parámetros previos y reinicia el tiempo de espera. El temporizador tiene una " "resolución de menos de un segundo." -#: ../Doc/library/faulthandler.rst:106 +#: ../Doc/library/faulthandler.rst:115 msgid "" "The *file* must be kept open until the traceback is dumped or :func:" "`cancel_dump_traceback_later` is called: see :ref:`issue with file " @@ -223,23 +245,23 @@ msgstr "" "se llame a :func:`cancel_dump_traceback_later`: ver :ref:`problema con " "descriptores de archivo `." -#: ../Doc/library/faulthandler.rst:110 +#: ../Doc/library/faulthandler.rst:119 msgid "This function is implemented using a watchdog thread." msgstr "Esta función está implementada utilizando un hilo vigilante." -#: ../Doc/library/faulthandler.rst:112 +#: ../Doc/library/faulthandler.rst:121 msgid "This function is now always available." msgstr "Ahora esta función está siempre disponible." -#: ../Doc/library/faulthandler.rst:120 +#: ../Doc/library/faulthandler.rst:129 msgid "Cancel the last call to :func:`dump_traceback_later`." msgstr "Cancela la última llamada a :func:`dump_traceback_later`." -#: ../Doc/library/faulthandler.rst:124 +#: ../Doc/library/faulthandler.rst:133 msgid "Dumping the traceback on a user signal" msgstr "Volcar el rastreo en una señal del usuario" -#: ../Doc/library/faulthandler.rst:128 +#: ../Doc/library/faulthandler.rst:137 msgid "" "Register a user signal: install a handler for the *signum* signal to dump " "the traceback of all threads, or of the current thread if *all_threads* is " @@ -250,7 +272,7 @@ msgstr "" "*all_threads* es ``False``, en el archivo file. Llama al gestor previo si " "chain es ``True``." -#: ../Doc/library/faulthandler.rst:132 +#: ../Doc/library/faulthandler.rst:141 msgid "" "The *file* must be kept open until the signal is unregistered by :func:" "`unregister`: see :ref:`issue with file descriptors `." @@ -259,11 +281,11 @@ msgstr "" "por :func:`unregister`: ver :ref:`problema con descriptores de archivo " "`." -#: ../Doc/library/faulthandler.rst:135 ../Doc/library/faulthandler.rst:146 +#: ../Doc/library/faulthandler.rst:144 ../Doc/library/faulthandler.rst:155 msgid "Not available on Windows." msgstr "No está disponible en Windows." -#: ../Doc/library/faulthandler.rst:142 +#: ../Doc/library/faulthandler.rst:151 msgid "" "Unregister a user signal: uninstall the handler of the *signum* signal " "installed by :func:`register`. Return ``True`` if the signal was registered, " @@ -273,11 +295,11 @@ msgstr "" "instalada por :func:`register`. Retorna ``True`` si la señal fue registrada, " "``False`` en otro caso." -#: ../Doc/library/faulthandler.rst:152 +#: ../Doc/library/faulthandler.rst:161 msgid "Issue with file descriptors" msgstr "Problema con descriptores de archivo" -#: ../Doc/library/faulthandler.rst:154 +#: ../Doc/library/faulthandler.rst:163 msgid "" ":func:`enable`, :func:`dump_traceback_later` and :func:`register` keep the " "file descriptor of their *file* argument. If the file is closed and its file " @@ -292,11 +314,11 @@ msgstr "" "en un archivo diferente. Llame a estas funciones nuevamente cada vez que se " "reemplace el archivo." -#: ../Doc/library/faulthandler.rst:162 +#: ../Doc/library/faulthandler.rst:171 msgid "Example" msgstr "Ejemplo" -#: ../Doc/library/faulthandler.rst:164 +#: ../Doc/library/faulthandler.rst:173 msgid "" "Example of a segmentation fault on Linux with and without enabling the fault " "handler:" diff --git a/library/fcntl.po b/library/fcntl.po index 22e76026bb..0243f81703 100644 --- a/library/fcntl.po +++ b/library/fcntl.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-05-08 13:38-0400\n" "Last-Translator: Francisco Mora \n" -"Language-Team: python-doc-es\n" "Language: es_ES\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/fcntl.rst:2 msgid ":mod:`fcntl` --- The ``fcntl`` and ``ioctl`` system calls" @@ -38,12 +37,14 @@ msgstr "" "`ioctl`. Para una completa descripción de estas llamadas, ver las páginas " "del manual de Unix :manpage:`fcntl(2)` y :manpage:`ioctl(2)`." -# Dejo fuzzy por que no pasa el pipeline test. Otros archivos tienen esta misma linea como fuzzy. +# Dejo fuzzy por que no pasa el pipeline test. Otros archivos tienen esta +# misma linea como fuzzy. +#: ../Doc/includes/wasm-notavail.rst:3 #, fuzzy msgid ":ref:`Availability `: not Emscripten, not WASI." msgstr ":ref:`Disponibilidad `: no Emscripten, no WASI." -#: ../Doc/library/cpython/Doc/includes/wasm-notavail.rst:5 +#: ../Doc/includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly platforms " "``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for " @@ -119,10 +120,18 @@ msgstr "" "último configurando además el indicador ``FD_CLOEXEC``." #: ../Doc/library/fcntl.rst:55 +msgid "" +"On Linux >= 4.5, the :mod:`fcntl` module exposes the ``FICLONE`` and " +"``FICLONERANGE`` constants, which allow to share some data of one file with " +"another file by reflinking on some filesystems (e.g., btrfs, OCFS2, and " +"XFS). This behavior is commonly referred to as \"copy-on-write\"." +msgstr "" + +#: ../Doc/library/fcntl.rst:61 msgid "The module defines the following functions:" msgstr "El módulo define las siguientes funciones:" -#: ../Doc/library/fcntl.rst:60 +#: ../Doc/library/fcntl.rst:66 msgid "" "Perform the operation *cmd* on file descriptor *fd* (file objects providing " "a :meth:`~io.IOBase.fileno` method are accepted as well). The values used " @@ -158,11 +167,11 @@ msgstr "" "probable es que se produzca una violación de segmento o a una corrupción de " "datos más sutil." -#: ../Doc/library/fcntl.rst:77 +#: ../Doc/library/fcntl.rst:83 msgid "If the :c:func:`fcntl` fails, an :exc:`OSError` is raised." msgstr "Si se produce un error en :c:func:`fcntl`, se lanza un :exc:`OSError`." -#: ../Doc/library/fcntl.rst:88 +#: ../Doc/library/fcntl.rst:94 msgid "" "Raises an :ref:`auditing event ` ``fcntl.fcntl`` with arguments " "``fd``, ``cmd``, ``arg``." @@ -170,7 +179,7 @@ msgstr "" "Lanza un :ref:`auditing event ` ``fcntl.fcntl`` con argumentos " "``fd``, ``cmd``, ``arg``." -#: ../Doc/library/fcntl.rst:84 +#: ../Doc/library/fcntl.rst:90 msgid "" "This function is identical to the :func:`~fcntl.fcntl` function, except that " "the argument handling is even more complicated." @@ -178,7 +187,7 @@ msgstr "" "Esta función es idéntica a la función :func:`~fcntl.fcntl`, excepto por el " "manejo de los argumentos que es aún más complicado." -#: ../Doc/library/fcntl.rst:87 +#: ../Doc/library/fcntl.rst:93 msgid "" "The *request* parameter is limited to values that can fit in 32-bits. " "Additional constants of interest for use as the *request* argument can be " @@ -190,7 +199,7 @@ msgstr "" "argumento *request* en el módulo :mod:`termios`, con los mismos nombres que " "se usan en los archivos de cabecera C relevantes." -#: ../Doc/library/fcntl.rst:92 +#: ../Doc/library/fcntl.rst:98 msgid "" "The parameter *arg* can be one of an integer, an object supporting the read-" "only buffer interface (like :class:`bytes`) or an object supporting the read-" @@ -200,7 +209,7 @@ msgstr "" "búfer de solo lectura (como :class:`bytes`) o un objeto que admita una " "interfaz de búfer de lectura-escritura (como: clase :class:`bytearray`)." -#: ../Doc/library/fcntl.rst:96 +#: ../Doc/library/fcntl.rst:102 msgid "" "In all but the last case, behaviour is as for the :func:`~fcntl.fcntl` " "function." @@ -208,7 +217,7 @@ msgstr "" "En todos los casos excepto en el último, el comportamiento es el de la " "función :func:`~fcntl.fcntl`." -#: ../Doc/library/fcntl.rst:99 +#: ../Doc/library/fcntl.rst:105 msgid "" "If a mutable buffer is passed, then the behaviour is determined by the value " "of the *mutate_flag* parameter." @@ -216,7 +225,7 @@ msgstr "" "Si se pasa un búfer mutable, el comportamiento estará determinado por el " "valor del parámetro *mutate_flag*." -#: ../Doc/library/fcntl.rst:102 +#: ../Doc/library/fcntl.rst:108 msgid "" "If it is false, the buffer's mutability is ignored and behaviour is as for a " "read-only buffer, except that the 1024 byte limit mentioned above is avoided " @@ -229,7 +238,7 @@ msgstr "" "menos tan largo como el sistema operativo quiera colocar allí, las cosas " "deberían funcionar." -#: ../Doc/library/fcntl.rst:107 +#: ../Doc/library/fcntl.rst:113 msgid "" "If *mutate_flag* is true (the default), then the buffer is (in effect) " "passed to the underlying :func:`ioctl` system call, the latter's return code " @@ -248,15 +257,15 @@ msgstr "" "que luego se pasa a :func:`ioctl` y se copia de nuevo en el búfer " "proporcionado." -#: ../Doc/library/fcntl.rst:115 +#: ../Doc/library/fcntl.rst:121 msgid "If the :c:func:`ioctl` fails, an :exc:`OSError` exception is raised." msgstr "Si :c:func:`ioctl` falla, se lanza la excepción :exc:`OSError`." -#: ../Doc/library/fcntl.rst:117 +#: ../Doc/library/fcntl.rst:123 msgid "An example::" msgstr "Un ejemplo:" -#: ../Doc/library/fcntl.rst:139 +#: ../Doc/library/fcntl.rst:145 msgid "" "Raises an :ref:`auditing event ` ``fcntl.ioctl`` with arguments " "``fd``, ``request``, ``arg``." @@ -264,7 +273,7 @@ msgstr "" "Lanza un evento :ref:`auditing event ` ``fcntl.ioctl`` con " "argumentos ``fd``, ``request``, ``arg``." -#: ../Doc/library/fcntl.rst:135 +#: ../Doc/library/fcntl.rst:141 msgid "" "Perform the lock operation *operation* on file descriptor *fd* (file objects " "providing a :meth:`~io.IOBase.fileno` method are accepted as well). See the " @@ -277,11 +286,11 @@ msgstr "" "para más detalles. (En algunos sistemas, esta función es emulada usando :c:" "func:`fcntl`.)" -#: ../Doc/library/fcntl.rst:140 +#: ../Doc/library/fcntl.rst:146 msgid "If the :c:func:`flock` fails, an :exc:`OSError` exception is raised." msgstr "Si :c:func:`flock` falla, una excepción :exc:`OSError` se lanza." -#: ../Doc/library/fcntl.rst:151 +#: ../Doc/library/fcntl.rst:157 msgid "" "Raises an :ref:`auditing event ` ``fcntl.flock`` with arguments " "``fd``, ``operation``." @@ -289,7 +298,7 @@ msgstr "" "Lanza un :ref:`auditing event ` ``fcntl.flock`` con argumentos " "``fd``, ``operation``." -#: ../Doc/library/fcntl.rst:147 +#: ../Doc/library/fcntl.rst:153 msgid "" "This is essentially a wrapper around the :func:`~fcntl.fcntl` locking calls. " "*fd* is the file descriptor (file objects providing a :meth:`~io.IOBase." @@ -302,19 +311,19 @@ msgstr "" "archivo para bloquear o desbloquear, y *cmd* es uno de los siguientes " "valores:" -#: ../Doc/library/fcntl.rst:152 +#: ../Doc/library/fcntl.rst:158 msgid ":const:`LOCK_UN` -- unlock" msgstr ":const:`LOCK_UN` -- desbloquear" -#: ../Doc/library/fcntl.rst:153 +#: ../Doc/library/fcntl.rst:159 msgid ":const:`LOCK_SH` -- acquire a shared lock" msgstr ":const:`LOCK_SH` -- adquirir un bloqueo compartido" -#: ../Doc/library/fcntl.rst:154 +#: ../Doc/library/fcntl.rst:160 msgid ":const:`LOCK_EX` -- acquire an exclusive lock" msgstr ":const:`LOCK_EX` -- adquirir un bloqueo exclusivo" -#: ../Doc/library/fcntl.rst:156 +#: ../Doc/library/fcntl.rst:162 msgid "" "When *cmd* is :const:`LOCK_SH` or :const:`LOCK_EX`, it can also be bitwise " "ORed with :const:`LOCK_NB` to avoid blocking on lock acquisition. If :const:" @@ -334,7 +343,7 @@ msgstr "" "sistemas, :const:`LOCK_EX` solo se puede usar si el descriptor de fichero se " "refiere a un archivo abierto para escritura." -#: ../Doc/library/fcntl.rst:165 +#: ../Doc/library/fcntl.rst:171 msgid "" "*len* is the number of bytes to lock, *start* is the byte offset at which " "the lock starts, relative to *whence*, and *whence* is as with :func:`io." @@ -344,21 +353,23 @@ msgstr "" "el cual comienza el bloqueo, relativo a *whence*, y *whence* es como con :" "func:`io.IOBase.seek`, específicamente:" -#: ../Doc/library/fcntl.rst:169 -msgid ":const:`0` -- relative to the start of the file (:data:`os.SEEK_SET`)" +#: ../Doc/library/fcntl.rst:175 +#, fuzzy +msgid "``0`` -- relative to the start of the file (:const:`os.SEEK_SET`)" msgstr ":const:`0` -- relativo al comienzo del archivo (:data:`os.SEEK_SET`)" -#: ../Doc/library/fcntl.rst:170 -msgid "" -":const:`1` -- relative to the current buffer position (:data:`os.SEEK_CUR`)" +#: ../Doc/library/fcntl.rst:176 +#, fuzzy +msgid "``1`` -- relative to the current buffer position (:const:`os.SEEK_CUR`)" msgstr "" ":const:`1` -- relativa a la posición actual del búfer (:data:`os.SEEK_CUR`)" -#: ../Doc/library/fcntl.rst:171 -msgid ":const:`2` -- relative to the end of the file (:data:`os.SEEK_END`)" +#: ../Doc/library/fcntl.rst:177 +#, fuzzy +msgid "``2`` -- relative to the end of the file (:const:`os.SEEK_END`)" msgstr ":const:`2` -- relativo al final del archivo (:data:`os.SEEK_END`)" -#: ../Doc/library/fcntl.rst:173 +#: ../Doc/library/fcntl.rst:179 msgid "" "The default for *start* is 0, which means to start at the beginning of the " "file. The default for *len* is 0 which means to lock to the end of the " @@ -368,7 +379,7 @@ msgstr "" "del archivo. El valor por defecto para *len* es 0 lo que significa bloquear " "hasta el final del archivo. El valor por defecto para *whence* también es 0." -#: ../Doc/library/fcntl.rst:186 +#: ../Doc/library/fcntl.rst:192 msgid "" "Raises an :ref:`auditing event ` ``fcntl.lockf`` with arguments " "``fd``, ``cmd``, ``len``, ``start``, ``whence``." @@ -376,11 +387,11 @@ msgstr "" "Lanza un :ref:`auditing event ` ``fcntl.lockf`` con argumentos " "``fd``, ``cmd``, ``len``, ``start``, ``whence``." -#: ../Doc/library/fcntl.rst:179 +#: ../Doc/library/fcntl.rst:185 msgid "Examples (all on a SVR4 compliant system)::" msgstr "Ejemplos (todos en un sistema compatible con SVR4)::" -#: ../Doc/library/fcntl.rst:189 +#: ../Doc/library/fcntl.rst:195 msgid "" "Note that in the first example the return value variable *rv* will hold an " "integer value; in the second example it will hold a :class:`bytes` object. " @@ -393,16 +404,29 @@ msgstr "" "depende del sistema --- por lo tanto, usar la llamada :func:`flock` puede " "ser mejor." -#: ../Doc/library/fcntl.rst:200 +#: ../Doc/library/fcntl.rst:206 msgid "Module :mod:`os`" msgstr "Módulo :mod:`os`" -#: ../Doc/library/fcntl.rst:198 +#: ../Doc/library/fcntl.rst:204 +#, fuzzy msgid "" -"If the locking flags :data:`~os.O_SHLOCK` and :data:`~os.O_EXLOCK` are " +"If the locking flags :const:`~os.O_SHLOCK` and :const:`~os.O_EXLOCK` are " "present in the :mod:`os` module (on BSD only), the :func:`os.open` function " "provides an alternative to the :func:`lockf` and :func:`flock` functions." msgstr "" "Si los flags de bloqueo :data:`~os.O_SHLOCK` y :data:`~os.O_EXLOCK` están " "presentes en el módulo :mod:`os` (sólo en BSD), la función :func:`os.open` " "proporciona una alternativa a las funciones :func:`lockf` y :func:`flock`." + +#: ../Doc/library/fcntl.rst:10 +msgid "UNIX" +msgstr "" + +#: ../Doc/library/fcntl.rst:10 +msgid "file control" +msgstr "" + +#: ../Doc/library/fcntl.rst:10 +msgid "I/O control" +msgstr "" diff --git a/library/filecmp.po b/library/filecmp.po index 830cc62369..1390199a6b 100644 --- a/library/filecmp.po +++ b/library/filecmp.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Traduccion-filecmp\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-16 21:42+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-09-27 12:59-0400\n" "Last-Translator: Enrique Giménez \n" "Language: es_PY\n" "Language-Team: Enrique Giménez\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.9.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/filecmp.rst:2 msgid ":mod:`filecmp` --- File and Directory Comparisons" @@ -145,9 +145,10 @@ msgid "The :class:`dircmp` class" msgstr "La clase :class:`dircmp`" #: ../Doc/library/filecmp.rst:75 +#, fuzzy msgid "" "Construct a new directory comparison object, to compare the directories *a* " -"and *b*. *ignore* is a list of names to ignore, and defaults to :attr:" +"and *b*. *ignore* is a list of names to ignore, and defaults to :const:" "`filecmp.DEFAULT_IGNORES`. *hide* is a list of names to hide, and defaults " "to ``[os.curdir, os.pardir]``." msgstr "" @@ -197,10 +198,11 @@ msgstr "" "árboles de directorio que están siendo comparados." #: ../Doc/library/filecmp.rst:103 +#, fuzzy msgid "" -"Note that via :meth:`__getattr__` hooks, all attributes are computed lazily, " -"so there is no speed penalty if only those attributes which are lightweight " -"to compute are used." +"Note that via :meth:`~object.__getattr__` hooks, all attributes are computed " +"lazily, so there is no speed penalty if only those attributes which are " +"lightweight to compute are used." msgstr "" "Note que vía los hooks :meth:`__getattr__`, todos los atributos son " "perezosamente computados, así que no hay penalización de velocidad si sólo " diff --git a/library/fileinput.po b/library/fileinput.po index 109b924172..1dddcdfc4a 100644 --- a/library/fileinput.po +++ b/library/fileinput.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-03-21 17:58-0500\n" "Last-Translator: \n" -"Language-Team: python-doc-es\n" "Language: es_AR\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/fileinput.rst:2 msgid ":mod:`fileinput` --- Iterate over lines from multiple input streams" @@ -321,8 +320,9 @@ msgstr "" "clave." #: ../Doc/library/fileinput.rst:179 +#, fuzzy msgid "" -"The ``'rU'`` and ``'U'`` modes and the :meth:`__getitem__` method have been " +"The ``'rU'`` and ``'U'`` modes and the :meth:`!__getitem__` method have been " "removed." msgstr "" "Los modos ``'rU'`` y ``'U'`` y el método :meth:`__getitem__` han sido " diff --git a/library/fnmatch.po b/library/fnmatch.po index 34d83be20c..f5dcc9bc0a 100644 --- a/library/fnmatch.po +++ b/library/fnmatch.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-03-20 13:03-0300\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/fnmatch.rst:2 msgid ":mod:`fnmatch` --- Unix filename pattern matching" @@ -106,10 +105,11 @@ msgstr "" "``?``." #: ../Doc/library/fnmatch.rst:49 +#, fuzzy msgid "" "Also note that :func:`functools.lru_cache` with the *maxsize* of 32768 is " "used to cache the compiled regex patterns in the following functions: :func:" -"`fnmatch`, :func:`fnmatchcase`, :func:`filter`." +"`fnmatch`, :func:`fnmatchcase`, :func:`.filter`." msgstr "" "También tenga en cuenta que :func:`functools.lru_cache` con el *maxsize* de " "32768 se usa para almacenar en caché los patrones compilados de expresiones " @@ -178,3 +178,47 @@ msgstr "Módulo :mod:`glob`" #: ../Doc/library/fnmatch.rst:105 msgid "Unix shell-style path expansion." msgstr "Expansión de ruta estilo shell en Unix." + +#: ../Doc/library/fnmatch.rst:9 +msgid "filenames" +msgstr "" + +#: ../Doc/library/fnmatch.rst:9 +msgid "wildcard expansion" +msgstr "" + +#: ../Doc/library/fnmatch.rst:11 ../Doc/library/fnmatch.rst:41 +msgid "module" +msgstr "" + +#: ../Doc/library/fnmatch.rst:11 +msgid "re" +msgstr "" + +#: ../Doc/library/fnmatch.rst:19 +msgid "* (asterisk)" +msgstr "" + +#: ../Doc/library/fnmatch.rst:19 +msgid "in glob-style wildcards" +msgstr "" + +#: ../Doc/library/fnmatch.rst:19 +msgid "? (question mark)" +msgstr "" + +#: ../Doc/library/fnmatch.rst:19 +msgid "[] (square brackets)" +msgstr "" + +#: ../Doc/library/fnmatch.rst:19 +msgid "! (exclamation)" +msgstr "" + +#: ../Doc/library/fnmatch.rst:19 +msgid "- (minus)" +msgstr "" + +#: ../Doc/library/fnmatch.rst:41 +msgid "glob" +msgstr "" diff --git a/library/fractions.po b/library/fractions.po index a9b6e9269e..fc8fb33baf 100644 --- a/library/fractions.po +++ b/library/fractions.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-02-20 10:36-0300\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es_AR\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/fractions.rst:2 msgid ":mod:`fractions` --- Rational numbers" @@ -46,11 +45,12 @@ msgstr "" "número racional, o desde una cadena de caracteres." #: ../Doc/library/fractions.rst:26 +#, fuzzy msgid "" "The first version requires that *numerator* and *denominator* are instances " "of :class:`numbers.Rational` and returns a new :class:`Fraction` instance " -"with value ``numerator/denominator``. If *denominator* is :const:`0`, it " -"raises a :exc:`ZeroDivisionError`. The second version requires that " +"with value ``numerator/denominator``. If *denominator* is ``0``, it raises " +"a :exc:`ZeroDivisionError`. The second version requires that " "*other_fraction* is an instance of :class:`numbers.Rational` and returns a :" "class:`Fraction` instance with the same value. The next two versions accept " "either a :class:`float` or a :class:`decimal.Decimal` instance, and return " @@ -98,12 +98,13 @@ msgstr "" "espacios en blanco iniciales y / o finales. Aquí hay unos ejemplos:" #: ../Doc/library/fractions.rst:78 +#, fuzzy msgid "" "The :class:`Fraction` class inherits from the abstract base class :class:" "`numbers.Rational`, and implements all of the methods and operations from " -"that class. :class:`Fraction` instances are hashable, and should be treated " -"as immutable. In addition, :class:`Fraction` has the following properties " -"and methods:" +"that class. :class:`Fraction` instances are :term:`hashable`, and should be " +"treated as immutable. In addition, :class:`Fraction` has the following " +"properties and methods:" msgstr "" "La clase :class:`Fraction` hereda de la clase base abstracta :class:`numbers." "Rational`, e implementa todos los métodos y operaciones de esa clase. Las " @@ -145,23 +146,40 @@ msgstr "" ":class:`Fraction` ahora implementa ``__int__`` para satisfacer las " "comprobaciones de instancia de ``typing.SupportsInt``." -#: ../Doc/library/fractions.rst:103 +#: ../Doc/library/fractions.rst:101 +msgid "" +"Space is allowed around the slash for string inputs: ``Fraction('2 / 3')``." +msgstr "" + +#: ../Doc/library/fractions.rst:104 +msgid "" +":class:`Fraction` instances now support float-style formatting, with " +"presentation types ``\"e\"``, ``\"E\"``, ``\"f\"``, ``\"F\"``, ``\"g\"``, " +"``\"G\"`` and ``\"%\"\"``." +msgstr "" + +#: ../Doc/library/fractions.rst:111 msgid "Numerator of the Fraction in lowest term." msgstr "Numerador de la fracción irreducible." -#: ../Doc/library/fractions.rst:107 +#: ../Doc/library/fractions.rst:115 msgid "Denominator of the Fraction in lowest term." msgstr "Denominador de la fracción irreducible." -#: ../Doc/library/fractions.rst:112 +#: ../Doc/library/fractions.rst:120 +#, fuzzy msgid "" -"Return a tuple of two integers, whose ratio is equal to the Fraction and " -"with a positive denominator." +"Return a tuple of two integers, whose ratio is equal to the original " +"Fraction. The ratio is in lowest terms and has a positive denominator." msgstr "" "Retorna una tupla de dos enteros, cuyo ratio es igual a la fracción y con un " "denominador positivo." -#: ../Doc/library/fractions.rst:119 +#: ../Doc/library/fractions.rst:128 +msgid "Return ``True`` if the Fraction is an integer." +msgstr "" + +#: ../Doc/library/fractions.rst:134 msgid "" "Alternative constructor which only accepts instances of :class:`float` or :" "class:`numbers.Integral`. Beware that ``Fraction.from_float(0.3)`` is not " @@ -171,7 +189,7 @@ msgstr "" "class:`numbers.Integral`. Ten cuidado que ``Fraction.from_float(0.3)`` no es " "lo mismo que ``Fraction(3, 10)``." -#: ../Doc/library/fractions.rst:125 +#: ../Doc/library/fractions.rst:140 msgid "" "From Python 3.2 onwards, you can also construct a :class:`Fraction` instance " "directly from a :class:`float`." @@ -179,7 +197,7 @@ msgstr "" "Desde Python 3.2 en adelante, puedes construir una instancia :class:" "`Fraction` directamente desde :class:`float`." -#: ../Doc/library/fractions.rst:131 +#: ../Doc/library/fractions.rst:146 msgid "" "Alternative constructor which only accepts instances of :class:`decimal." "Decimal` or :class:`numbers.Integral`." @@ -187,7 +205,7 @@ msgstr "" "Constructor alternativo que solo acepta instancias de :class:`decimal." "Decimal` o :class:`numbers.Integral`." -#: ../Doc/library/fractions.rst:136 +#: ../Doc/library/fractions.rst:151 msgid "" "From Python 3.2 onwards, you can also construct a :class:`Fraction` instance " "directly from a :class:`decimal.Decimal` instance." @@ -195,7 +213,7 @@ msgstr "" "Desde Python 3.2 en adelante, puedes construir una instancia :class:" "`Fraction` directamente desde una instancia :class:`decimal.Decimal`." -#: ../Doc/library/fractions.rst:143 +#: ../Doc/library/fractions.rst:158 msgid "" "Finds and returns the closest :class:`Fraction` to ``self`` that has " "denominator at most max_denominator. This method is useful for finding " @@ -205,12 +223,12 @@ msgstr "" "tenga como denominador *max_denominator*. Este método es útil para encontrar " "aproximaciones racionales a un número en punto flotante determinado:" -#: ../Doc/library/fractions.rst:151 +#: ../Doc/library/fractions.rst:166 msgid "or for recovering a rational number that's represented as a float:" msgstr "" "o para recuperar un numero racional que esta representado como flotante:" -#: ../Doc/library/fractions.rst:164 +#: ../Doc/library/fractions.rst:179 msgid "" "Returns the greatest :class:`int` ``<= self``. This method can also be " "accessed through the :func:`math.floor` function:" @@ -218,7 +236,7 @@ msgstr "" "Retorna el máximo :class:`int` ``<= self``. Este método puede accederse " "también a través de la función :func:`math.floor`:" -#: ../Doc/library/fractions.rst:174 +#: ../Doc/library/fractions.rst:189 msgid "" "Returns the least :class:`int` ``>= self``. This method can also be " "accessed through the :func:`math.ceil` function." @@ -226,7 +244,7 @@ msgstr "" "Retorna el mínimo :class:`int` ``>= self``. Este método puede accederse " "también a través de la función :func:`math.ceil`." -#: ../Doc/library/fractions.rst:181 +#: ../Doc/library/fractions.rst:196 msgid "" "The first version returns the nearest :class:`int` to ``self``, rounding " "half to even. The second version rounds ``self`` to the nearest multiple of " @@ -240,10 +258,25 @@ msgstr "" "``ndigits`` es negativo), nuevamente redondeando mitades al valor par. Este " "método también puede accederse a través de la función :func:`round`." -#: ../Doc/library/fractions.rst:190 +#: ../Doc/library/fractions.rst:204 +msgid "" +"Provides support for float-style formatting of :class:`Fraction` instances " +"via the :meth:`str.format` method, the :func:`format` built-in function, or :" +"ref:`Formatted string literals `. The presentation types " +"``\"e\"``, ``\"E\"``, ``\"f\"``, ``\"F\"``, ``\"g\"``, ``\"G\"`` and ``\"%" +"\"`` are supported. For these presentation types, formatting for a :class:" +"`Fraction` object ``x`` follows the rules outlined for the :class:`float` " +"type in the :ref:`formatspec` section." +msgstr "" + +#: ../Doc/library/fractions.rst:212 +msgid "Here are some examples::" +msgstr "" + +#: ../Doc/library/fractions.rst:228 msgid "Module :mod:`numbers`" msgstr "Módulo :mod:`numbers`" -#: ../Doc/library/fractions.rst:191 +#: ../Doc/library/fractions.rst:229 msgid "The abstract base classes making up the numeric tower." msgstr "Las clases base abstractas que representan la jerarquía de números." diff --git a/library/ftplib.po b/library/ftplib.po index eb7b7254a5..9d64af972c 100644 --- a/library/ftplib.po +++ b/library/ftplib.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-02-28 10:21-0300\n" "Last-Translator: Meta Louis-Kosmas \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/ftplib.rst:2 msgid ":mod:`ftplib` --- FTP protocol client" @@ -51,11 +50,12 @@ msgstr "" msgid "The default encoding is UTF-8, following :rfc:`2640`." msgstr "La codificación predeterminada es UTF-8, siguiendo :rfc:`2640`." +#: ../Doc/includes/wasm-notavail.rst:3 #, fuzzy msgid ":ref:`Availability `: not Emscripten, not WASI." msgstr ":ref:`Disponibilidad `: ni Emscripten, ni WASI." -#: ../Doc/library/cpython/Doc/includes/wasm-notavail.rst:5 +#: ../Doc/includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly platforms " "``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for " @@ -106,12 +106,12 @@ msgstr "" msgid "Support for the :keyword:`with` statement was added." msgstr "Se agregó compatibilidad con la instrucción :keyword:`with`." -#: ../Doc/library/ftplib.rst:79 ../Doc/library/ftplib.rst:105 -#: ../Doc/library/ftplib.rst:214 +#: ../Doc/library/ftplib.rst:79 ../Doc/library/ftplib.rst:102 +#: ../Doc/library/ftplib.rst:207 msgid "*source_address* parameter was added." msgstr "Se agregó el parámetro *source_address*." -#: ../Doc/library/ftplib.rst:82 ../Doc/library/ftplib.rst:120 +#: ../Doc/library/ftplib.rst:82 ../Doc/library/ftplib.rst:110 msgid "" "If the *timeout* parameter is set to be zero, it will raise a :class:" "`ValueError` to prevent the creation of a non-blocking socket. The " @@ -123,7 +123,7 @@ msgstr "" "parámetro *encoding*, y el valor predeterminado se cambió de Latin-1 a UTF-8 " "para seguir :rfc:`2640`." -#: ../Doc/library/ftplib.rst:90 +#: ../Doc/library/ftplib.rst:91 msgid "" "A :class:`FTP` subclass which adds TLS support to FTP as described in :rfc:" "`4217`. Connect as usual to port 21 implicitly securing the FTP control " @@ -143,46 +143,31 @@ msgstr "" "y claves privadas en una sola estructura (potencialmente de larga duración). " "Por favor, lee :ref:`ssl-security` para conocer las mejores prácticas." -#: ../Doc/library/ftplib.rst:99 -msgid "" -"*keyfile* and *certfile* are a legacy alternative to *context* -- they can " -"point to PEM-formatted private key and certificate chain files " -"(respectively) for the SSL connection." -msgstr "" -"*keyfile* y *certfile* son una alternativa de legado a *context* -- pueden " -"apuntar a una clave privada en formato PEM y certificar archivos de cadena " -"(respectivamente) para la conexión SSL." - -#: ../Doc/library/ftplib.rst:108 +#: ../Doc/library/ftplib.rst:105 +#, fuzzy msgid "" "The class now supports hostname check with :attr:`ssl.SSLContext." -"check_hostname` and *Server Name Indication* (see :data:`ssl.HAS_SNI`)." +"check_hostname` and *Server Name Indication* (see :const:`ssl.HAS_SNI`)." msgstr "" "La clase ahora admite el chequeo del nombre de *host* con :attr:`ssl." "SSLContext.check_hostname` y *Server Name Indication* (véase :data:`ssl." "HAS_SNI`)." -#: ../Doc/library/ftplib.rst:115 -msgid "" -"*keyfile* and *certfile* are deprecated in favor of *context*. Please use :" -"meth:`ssl.SSLContext.load_cert_chain` instead, or let :func:`ssl." -"create_default_context` select the system's trusted CA certificates for you." +#: ../Doc/library/ftplib.rst:116 +msgid "The deprecated *keyfile* and *certfile* parameters have been removed." msgstr "" -"*keyfile* y *certfile* son rechazados a favor de *context*. Por favor, usa :" -"meth:`ssl.SSLContext.load_cert_chain` en su lugar, o deja que :func:`ssl." -"create_default_context` seleccione los certificados CA confiables para ti." -#: ../Doc/library/ftplib.rst:126 +#: ../Doc/library/ftplib.rst:119 msgid "Here's a sample session using the :class:`FTP_TLS` class::" msgstr "Aquí hay una sesión de ejemplo que usa la clase :class:`FTP_TLS`::" -#: ../Doc/library/ftplib.rst:139 +#: ../Doc/library/ftplib.rst:132 msgid "Exception raised when an unexpected reply is received from the server." msgstr "" "Se lanza una excepción cuando una respuesta inesperada se recibe del " "servidor." -#: ../Doc/library/ftplib.rst:144 +#: ../Doc/library/ftplib.rst:137 msgid "" "Exception raised when an error code signifying a temporary error (response " "codes in the range 400--499) is received." @@ -190,7 +175,7 @@ msgstr "" "Se genera una excepción cuando se recibe un código de error que refiere a " "un error temporal (códigos de respuesta en el rango 400-499)." -#: ../Doc/library/ftplib.rst:150 +#: ../Doc/library/ftplib.rst:143 msgid "" "Exception raised when an error code signifying a permanent error (response " "codes in the range 500--599) is received." @@ -198,7 +183,7 @@ msgstr "" "Se lanza una excepción cuando se recibe un código de error que refiere a un " "error permanente (códigos de respuesta en el rango 500--599)." -#: ../Doc/library/ftplib.rst:156 +#: ../Doc/library/ftplib.rst:149 msgid "" "Exception raised when a reply is received from the server that does not fit " "the response specifications of the File Transfer Protocol, i.e. begin with a " @@ -209,7 +194,7 @@ msgstr "" "transferencia de archivos (FTP), es decir, que comienza con un dígito en el " "rango 1--5." -#: ../Doc/library/ftplib.rst:163 +#: ../Doc/library/ftplib.rst:156 msgid "" "The set of all exceptions (as a tuple) that methods of :class:`FTP` " "instances may raise as a result of problems with the FTP connection (as " @@ -222,11 +207,11 @@ msgstr "" "autor de la llamada). Este conjunto incluye las cuatro excepciones " "enumeradas anteriormente, como también :exc:`OSError` y :exc:`EOFError`." -#: ../Doc/library/ftplib.rst:173 +#: ../Doc/library/ftplib.rst:166 msgid "Module :mod:`netrc`" msgstr "Módulo :mod:`netrc`" -#: ../Doc/library/ftplib.rst:172 +#: ../Doc/library/ftplib.rst:165 msgid "" "Parser for the :file:`.netrc` file format. The file :file:`.netrc` is " "typically used by FTP clients to load user authentication information before " @@ -236,11 +221,11 @@ msgstr "" "netrc` suele ser utilizado por clientes FTP para cargar la información de " "autenticación de usuario antes de solicitarlo al usuario." -#: ../Doc/library/ftplib.rst:180 +#: ../Doc/library/ftplib.rst:173 msgid "FTP Objects" msgstr "Objetos FTP" -#: ../Doc/library/ftplib.rst:182 +#: ../Doc/library/ftplib.rst:175 msgid "" "Several methods are available in two flavors: one for handling text files " "and another for binary files. These are named for the command which is used " @@ -252,11 +237,11 @@ msgstr "" "que se utiliza seguido de ``lines`` para la versión de texto o ``binary`` " "para la versión binaria." -#: ../Doc/library/ftplib.rst:186 +#: ../Doc/library/ftplib.rst:179 msgid ":class:`FTP` instances have the following methods:" msgstr "Las instancias de :class:`FTP` tienen los siguientes métodos:" -#: ../Doc/library/ftplib.rst:191 +#: ../Doc/library/ftplib.rst:184 msgid "" "Set the instance's debugging level. This controls the amount of debugging " "output printed. The default, ``0``, produces no debugging output. A value " @@ -272,7 +257,7 @@ msgstr "" "``2`` produce la cantidad máxima de salida de depuración, registrando cada " "línea enviada y recibida en la conexión de control." -#: ../Doc/library/ftplib.rst:200 +#: ../Doc/library/ftplib.rst:193 msgid "" "Connect to the given host and port. The default port number is ``21``, as " "specified by the FTP protocol specification. It is rarely needed to specify " @@ -295,7 +280,7 @@ msgstr "" "tupla de 2 ``(host, port)`` para que el socket se enlace como su dirección " "de origen antes de conectarse." -#: ../Doc/library/ftplib.rst:221 +#: ../Doc/library/ftplib.rst:214 msgid "" "Raises an :ref:`auditing event ` ``ftplib.connect`` with arguments " "``self``, ``host``, ``port``." @@ -303,7 +288,7 @@ msgstr "" "Lanza un :ref:`evento auditor ` ``ftplib.connect`` con los " "argumentos ``self``, ``host``, ``port``." -#: ../Doc/library/ftplib.rst:220 +#: ../Doc/library/ftplib.rst:213 msgid "" "Return the welcome message sent by the server in reply to the initial " "connection. (This message sometimes contains disclaimers or help " @@ -314,7 +299,7 @@ msgstr "" "responsabilidad o información de ayuda que puede ser relevante para el " "usuario.)" -#: ../Doc/library/ftplib.rst:227 +#: ../Doc/library/ftplib.rst:220 msgid "" "Log in as the given *user*. The *passwd* and *acct* parameters are optional " "and default to the empty string. If no *user* is specified, it defaults to " @@ -336,7 +321,7 @@ msgstr "" "sesión. El parámetro *acct* proporciona \"información contable\"; pocos " "sistemas implementan esto." -#: ../Doc/library/ftplib.rst:239 +#: ../Doc/library/ftplib.rst:232 msgid "" "Abort a file transfer that is in progress. Using this does not always work, " "but it's worth a try." @@ -344,14 +329,14 @@ msgstr "" "Anula una transferencia de archivo que está en progreso. Usarlo no siempre " "funciona, pero vale la pena intentarlo." -#: ../Doc/library/ftplib.rst:245 +#: ../Doc/library/ftplib.rst:238 msgid "" "Send a simple command string to the server and return the response string." msgstr "" "Envía una cadena de comando simple al servidor y retorna la cadena de " "caracteres de respuesta." -#: ../Doc/library/ftplib.rst:256 ../Doc/library/ftplib.rst:265 +#: ../Doc/library/ftplib.rst:249 ../Doc/library/ftplib.rst:258 msgid "" "Raises an :ref:`auditing event ` ``ftplib.sendcmd`` with arguments " "``self``, ``cmd``." @@ -359,7 +344,7 @@ msgstr "" "Genera un :ref:`evento auditor ` ``ftplib.sendcmd`` con los " "argumentos ``self``, ``cmd``." -#: ../Doc/library/ftplib.rst:252 +#: ../Doc/library/ftplib.rst:245 msgid "" "Send a simple command string to the server and handle the response. Return " "nothing if a response code corresponding to success (codes in the range " @@ -370,7 +355,7 @@ msgstr "" "a una transferencia exitosa (códigos en el rango 200--299).Lanza :exc:" "`error_reply` de lo contrario." -#: ../Doc/library/ftplib.rst:261 +#: ../Doc/library/ftplib.rst:254 msgid "" "Retrieve a file in binary transfer mode. *cmd* should be an appropriate " "``RETR`` command: ``'RETR filename'``. The *callback* function is called for " @@ -391,7 +376,7 @@ msgstr "" "predeterminado razonable. *rest* significa lo mismo que en el método :meth:" "`transfercmd`." -#: ../Doc/library/ftplib.rst:273 +#: ../Doc/library/ftplib.rst:266 msgid "" "Retrieve a file or directory listing in the encoding specified by the " "*encoding* parameter at initialization. *cmd* should be an appropriate " @@ -412,7 +397,7 @@ msgstr "" "línea con el CRLF final eliminado. El *callback* predeterminado imprime la " "línea a ``sys.stdout``." -#: ../Doc/library/ftplib.rst:286 +#: ../Doc/library/ftplib.rst:279 msgid "" "Enable \"passive\" mode if *val* is true, otherwise disable passive mode. " "Passive mode is on by default." @@ -420,7 +405,7 @@ msgstr "" "Habilita el modo pasivo si *val* es verdadero, de lo contrario lo " "inhabilita. El modo pasivo es el valor predeterminado." -#: ../Doc/library/ftplib.rst:292 +#: ../Doc/library/ftplib.rst:285 msgid "" "Store a file in binary transfer mode. *cmd* should be an appropriate " "``STOR`` command: ``\"STOR filename\"``. *fp* is a :term:`file object` " @@ -439,11 +424,11 @@ msgstr "" "invocable que se llama en cada bloque de datos luego de que fue enviado. " "*rest* significa lo mismo que en el método :meth:`transfercmd`." -#: ../Doc/library/ftplib.rst:300 +#: ../Doc/library/ftplib.rst:293 msgid "*rest* parameter added." msgstr "Se agregó el parámetro *rest*." -#: ../Doc/library/ftplib.rst:306 +#: ../Doc/library/ftplib.rst:299 msgid "" "Store a file in line mode. *cmd* should be an appropriate ``STOR`` command " "(see :meth:`storbinary`). Lines are read until EOF from the :term:`file " @@ -458,7 +443,7 @@ msgstr "" "es un parámetro único opcional que se puede llamar en cada línea después de " "su envío." -#: ../Doc/library/ftplib.rst:315 +#: ../Doc/library/ftplib.rst:308 msgid "" "Initiate a transfer over the data connection. If the transfer is active, " "send an ``EPRT`` or ``PORT`` command and the transfer command specified by " @@ -472,7 +457,7 @@ msgstr "" "envía un comando ``EPSV`` o ``PASV``, lo conecta, e inicia el comando de " "transferencia. De cualquier manera, retorna el socket para la conexión." -#: ../Doc/library/ftplib.rst:321 +#: ../Doc/library/ftplib.rst:314 msgid "" "If optional *rest* is given, a ``REST`` command is sent to the server, " "passing *rest* as an argument. *rest* is usually a byte offset into the " @@ -495,7 +480,7 @@ msgstr "" "comando ``REST``, se lanzará una excepción :exc:`error_reply`. Si esto " "sucede, simplemente llame a :meth:`transfercmd` sin un argumento *rest*." -#: ../Doc/library/ftplib.rst:334 +#: ../Doc/library/ftplib.rst:327 msgid "" "Like :meth:`transfercmd`, but returns a tuple of the data connection and the " "expected size of the data. If the expected size could not be computed, " @@ -507,7 +492,7 @@ msgstr "" "retornará ``None`` como tal. *cmd* y *rest* significan lo mismo que en :meth:" "`transfercmd`." -#: ../Doc/library/ftplib.rst:342 +#: ../Doc/library/ftplib.rst:335 msgid "" "List a directory in a standardized format by using ``MLSD`` command (:rfc:" "`3659`). If *path* is omitted the current directory is assumed. *facts* is " @@ -528,7 +513,7 @@ msgstr "" "este diccionario puede estar limitado por el argumento *facts*, pero no se " "garantiza que el servidor retorne todos los datos solicitados." -#: ../Doc/library/ftplib.rst:356 +#: ../Doc/library/ftplib.rst:349 msgid "" "Return a list of file names as returned by the ``NLST`` command. The " "optional *argument* is a directory to list (default is the current server " @@ -540,11 +525,11 @@ msgstr "" "predeterminado es el directorio del servidor actual). Se pueden usar varios " "argumentos para pasar opciones no estándar al comando ``NLST``." -#: ../Doc/library/ftplib.rst:361 ../Doc/library/ftplib.rst:373 +#: ../Doc/library/ftplib.rst:354 ../Doc/library/ftplib.rst:366 msgid "If your server supports the command, :meth:`mlsd` offers a better API." msgstr "Si tu servidor admite el comando, :meth:`mlsd` ofrece una API mejor." -#: ../Doc/library/ftplib.rst:366 +#: ../Doc/library/ftplib.rst:359 msgid "" "Produce a directory listing as returned by the ``LIST`` command, printing it " "to standard output. The optional *argument* is a directory to list (default " @@ -561,12 +546,12 @@ msgstr "" "una función, se usa como función *callback* como en :meth:`retrlines`; el " "valor predeterminado imprime a ``sys.stdout``. Este método retorna ``None``." -#: ../Doc/library/ftplib.rst:378 +#: ../Doc/library/ftplib.rst:371 msgid "Rename file *fromname* on the server to *toname*." msgstr "" "Asigna un nombre nuevo al archivo en el servidor desde *fromname* a *toname*." -#: ../Doc/library/ftplib.rst:383 +#: ../Doc/library/ftplib.rst:376 msgid "" "Remove the file named *filename* from the server. If successful, returns " "the text of the response, otherwise raises :exc:`error_perm` on permission " @@ -576,23 +561,23 @@ msgstr "" "retorna el texto de la respuesta, de lo contrario, lanza :exc:`error_perm` " "sobre errores de permiso o :exc:`error_reply` sobre otros errores." -#: ../Doc/library/ftplib.rst:390 +#: ../Doc/library/ftplib.rst:383 msgid "Set the current directory on the server." msgstr "Configura el directorio actual en el servidor." -#: ../Doc/library/ftplib.rst:395 +#: ../Doc/library/ftplib.rst:388 msgid "Create a new directory on the server." msgstr "Crea un nuevo directorio en el servidor." -#: ../Doc/library/ftplib.rst:400 +#: ../Doc/library/ftplib.rst:393 msgid "Return the pathname of the current directory on the server." msgstr "Retorna el nombre de ruta del directorio actual en el servidor." -#: ../Doc/library/ftplib.rst:405 +#: ../Doc/library/ftplib.rst:398 msgid "Remove the directory named *dirname* on the server." msgstr "Elimina el directorio en el servidor llamado *dirname*." -#: ../Doc/library/ftplib.rst:410 +#: ../Doc/library/ftplib.rst:403 msgid "" "Request the size of the file named *filename* on the server. On success, " "the size of the file is returned as an integer, otherwise ``None`` is " @@ -604,7 +589,7 @@ msgstr "" "retorna ``None``. Nótese que el comando ``SIZE`` no está estandarizado, pero " "es admitido por muchas implementaciones comunes de servidor." -#: ../Doc/library/ftplib.rst:418 +#: ../Doc/library/ftplib.rst:411 msgid "" "Send a ``QUIT`` command to the server and close the connection. This is the " "\"polite\" way to close a connection, but it may raise an exception if the " @@ -618,7 +603,7 @@ msgstr "" "implica una llamada al método :meth:`close` que hace inútil la instancia de :" "class:`FTP` para llamadas posteriores (véase más adelante)." -#: ../Doc/library/ftplib.rst:427 +#: ../Doc/library/ftplib.rst:420 msgid "" "Close the connection unilaterally. This should not be applied to an already " "closed connection such as after a successful call to :meth:`~FTP.quit`. " @@ -632,11 +617,11 @@ msgstr "" "(luego de una llamada a :meth:`close` o :meth:`~FTP.quit` no puedes abrir " "nuevamente la conexión emitiendo otro método :meth:`login`." -#: ../Doc/library/ftplib.rst:435 +#: ../Doc/library/ftplib.rst:428 msgid "FTP_TLS Objects" msgstr "Objetos FTP_TLS" -#: ../Doc/library/ftplib.rst:437 +#: ../Doc/library/ftplib.rst:430 msgid "" ":class:`FTP_TLS` class inherits from :class:`FTP`, defining these additional " "objects:" @@ -644,13 +629,14 @@ msgstr "" "La clase :class:`FTP_TLS` hereda de :class:`FTP`, definiendo los siguientes " "objetos adicionales:" -#: ../Doc/library/ftplib.rst:441 -msgid "The SSL version to use (defaults to :attr:`ssl.PROTOCOL_SSLv23`)." +#: ../Doc/library/ftplib.rst:434 +#, fuzzy +msgid "The SSL version to use (defaults to :data:`ssl.PROTOCOL_SSLv23`)." msgstr "" "La versión SSL para usar (toma como predeterminado :attr:`ssl." "PROTOCOL_SSLv23`)." -#: ../Doc/library/ftplib.rst:445 +#: ../Doc/library/ftplib.rst:438 msgid "" "Set up a secure control connection by using TLS or SSL, depending on what is " "specified in the :attr:`ssl_version` attribute." @@ -658,16 +644,17 @@ msgstr "" "Establece una conexión de control segura usando TLS o SSL, dependiendo de " "qué esté especificado en el atributo :attr:`ssl_version`." -#: ../Doc/library/ftplib.rst:448 +#: ../Doc/library/ftplib.rst:441 +#, fuzzy msgid "" "The method now supports hostname check with :attr:`ssl.SSLContext." -"check_hostname` and *Server Name Indication* (see :data:`ssl.HAS_SNI`)." +"check_hostname` and *Server Name Indication* (see :const:`ssl.HAS_SNI`)." msgstr "" "El método ahora admite el chequeo del nombre de *host* con :attr:`ssl." "SSLContext.check_hostname` y *Server Name Indication* (véase :data:`ssl." "HAS_SNI`)." -#: ../Doc/library/ftplib.rst:455 +#: ../Doc/library/ftplib.rst:448 msgid "" "Revert control channel back to plaintext. This can be useful to take " "advantage of firewalls that know how to handle NAT with non-secure FTP " @@ -677,10 +664,42 @@ msgstr "" "aprovechar cortafuegos que saben manejar NAT con FTP no-seguro sin abrir " "puertos fijos." -#: ../Doc/library/ftplib.rst:463 +#: ../Doc/library/ftplib.rst:456 msgid "Set up secure data connection." msgstr "Configura conexión de datos segura." -#: ../Doc/library/ftplib.rst:467 +#: ../Doc/library/ftplib.rst:460 msgid "Set up clear text data connection." msgstr "Configura la conexión de datos de tipo texto común." + +#: ../Doc/library/ftplib.rst:9 +msgid "FTP" +msgstr "" + +#: ../Doc/library/ftplib.rst:9 +msgid "protocol" +msgstr "" + +#: ../Doc/library/ftplib.rst:9 +msgid "ftplib (standard module)" +msgstr "" + +#~ msgid "" +#~ "*keyfile* and *certfile* are a legacy alternative to *context* -- they " +#~ "can point to PEM-formatted private key and certificate chain files " +#~ "(respectively) for the SSL connection." +#~ msgstr "" +#~ "*keyfile* y *certfile* son una alternativa de legado a *context* -- " +#~ "pueden apuntar a una clave privada en formato PEM y certificar archivos " +#~ "de cadena (respectivamente) para la conexión SSL." + +#~ msgid "" +#~ "*keyfile* and *certfile* are deprecated in favor of *context*. Please " +#~ "use :meth:`ssl.SSLContext.load_cert_chain` instead, or let :func:`ssl." +#~ "create_default_context` select the system's trusted CA certificates for " +#~ "you." +#~ msgstr "" +#~ "*keyfile* y *certfile* son rechazados a favor de *context*. Por favor, " +#~ "usa :meth:`ssl.SSLContext.load_cert_chain` en su lugar, o deja que :func:" +#~ "`ssl.create_default_context` seleccione los certificados CA confiables " +#~ "para ti." diff --git a/library/functions.po b/library/functions.po index 4420a952dc..4ca8dff998 100644 --- a/library/functions.po +++ b/library/functions.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-01-15 09:36-0500\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-esMIME-Version: 1.0\n" "Language: es\n" +"Language-Team: python-doc-esMIME-Version: 1.0\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/functions.rst:5 ../Doc/library/functions.rst:11 msgid "Built-in Functions" @@ -50,14 +49,14 @@ msgstr ":func:`aiter`" msgid ":func:`all`" msgstr ":func:`all`" -#: ../Doc/library/functions.rst -msgid ":func:`any`" -msgstr ":func:`any`" - #: ../Doc/library/functions.rst msgid ":func:`anext`" msgstr ":func:`anext`" +#: ../Doc/library/functions.rst +msgid ":func:`any`" +msgstr ":func:`any`" + #: ../Doc/library/functions.rst msgid ":func:`ascii`" msgstr ":func:`ascii`" @@ -479,10 +478,11 @@ msgstr "" "similar a la retornada por :func:`repr` en Python 2." #: ../Doc/library/functions.rst:123 +#, fuzzy msgid "" "Convert an integer number to a binary string prefixed with \"0b\". The " "result is a valid Python expression. If *x* is not a Python :class:`int` " -"object, it has to define an :meth:`__index__` method that returns an " +"object, it has to define an :meth:`~object.__index__` method that returns an " "integer. Some examples:" msgstr "" "Convierte un número entero a una cadena binaria con prefijo \"0b\". El " @@ -498,19 +498,20 @@ msgstr "" "Según se desee o no el prefijo \"0b\", se puede usar uno u otro de las " "siguientes maneras." -#: ../Doc/library/functions.rst:140 ../Doc/library/functions.rst:831 -#: ../Doc/library/functions.rst:1144 +#: ../Doc/library/functions.rst:140 ../Doc/library/functions.rst:842 +#: ../Doc/library/functions.rst:1159 msgid "See also :func:`format` for more information." msgstr "Véase también :func:`format` para más información." #: ../Doc/library/functions.rst:145 +#, fuzzy msgid "" "Return a Boolean value, i.e. one of ``True`` or ``False``. *x* is converted " "using the standard :ref:`truth testing procedure `. If *x* is false " "or omitted, this returns ``False``; otherwise, it returns ``True``. The :" "class:`bool` class is a subclass of :class:`int` (see :ref:`typesnumeric`). " "It cannot be subclassed further. Its only instances are ``False`` and " -"``True`` (see :ref:`bltin-boolean-values`)." +"``True`` (see :ref:`typebool`)." msgstr "" "Retorna un booleano, es decir, o bien ``True`` o ``False``. *x* es " "convertido usando el estándar :ref:`truth testing procedure `. Si *x* " @@ -519,8 +520,8 @@ msgstr "" "`typesnumeric`). De ella no pueden derivarse más subclases. Sus únicas " "instancias son ``False`` y ``True`` (véase :ref:`bltin-boolean-values`)." -#: ../Doc/library/functions.rst:154 ../Doc/library/functions.rst:696 -#: ../Doc/library/functions.rst:916 +#: ../Doc/library/functions.rst:154 ../Doc/library/functions.rst:707 +#: ../Doc/library/functions.rst:931 msgid "*x* is now a positional-only parameter." msgstr "*x* es ahora un argumento solo de posición." @@ -549,13 +550,26 @@ msgstr "" #: ../Doc/library/functions.rst:171 msgid "" +"By default, the behavior of :func:`breakpoint` can be changed with the :" +"envvar:`PYTHONBREAKPOINT` environment variable. See :func:`sys." +"breakpointhook` for usage details." +msgstr "" + +#: ../Doc/library/functions.rst:175 +msgid "" +"Note that this is not guaranteed if :func:`sys.breakpointhook` has been " +"replaced." +msgstr "" + +#: ../Doc/library/functions.rst:178 +msgid "" "Raises an :ref:`auditing event ` ``builtins.breakpoint`` with " "argument ``breakpointhook``." msgstr "" "Lanza un :ref:`evento de auditoría ` ``builtins.breakpoint`` con " "``breakpointhook`` como argumento." -#: ../Doc/library/functions.rst:181 +#: ../Doc/library/functions.rst:188 msgid "" "Return a new array of bytes. The :class:`bytearray` class is a mutable " "sequence of integers in the range 0 <= x < 256. It has most of the usual " @@ -568,7 +582,7 @@ msgstr "" "mutable`, así como la mayoría de los métodos que la clase :class:`bytes` " "tiene, véase :ref:`bytes-methods`." -#: ../Doc/library/functions.rst:186 +#: ../Doc/library/functions.rst:193 msgid "" "The optional *source* parameter can be used to initialize the array in a few " "different ways:" @@ -576,7 +590,7 @@ msgstr "" "El parámetro opcional *source* puede ser empleado para inicializar el vector " "(*array*) de varias maneras distintas:" -#: ../Doc/library/functions.rst:189 +#: ../Doc/library/functions.rst:196 msgid "" "If it is a *string*, you must also give the *encoding* (and optionally, " "*errors*) parameters; :func:`bytearray` then converts the string to bytes " @@ -586,7 +600,7 @@ msgstr "" "opcionalmente, *errors*; entonces :func:`bytearray` convierte la cadena a " "bytes empleando :meth:`str.encode`." -#: ../Doc/library/functions.rst:193 +#: ../Doc/library/functions.rst:200 msgid "" "If it is an *integer*, the array will have that size and will be initialized " "with null bytes." @@ -594,7 +608,7 @@ msgstr "" "Si es un *integer*, el array tendrá ese tamaño y será inicializado con bytes " "nulos." -#: ../Doc/library/functions.rst:196 +#: ../Doc/library/functions.rst:203 msgid "" "If it is an object conforming to the :ref:`buffer interface " "`, a read-only buffer of the object will be used to " @@ -604,7 +618,7 @@ msgstr "" "utilizará un búfer de solo lectura del objeto para inicializar el arreglo de " "bytes." -#: ../Doc/library/functions.rst:199 +#: ../Doc/library/functions.rst:206 msgid "" "If it is an *iterable*, it must be an iterable of integers in the range ``0 " "<= x < 256``, which are used as the initial contents of the array." @@ -612,15 +626,15 @@ msgstr "" "Si es un *iterable*, debe ser un iterable de enteros en el rango ``0 <= x < " "256``, que son usados como los contenidos iniciales del array." -#: ../Doc/library/functions.rst:202 +#: ../Doc/library/functions.rst:209 msgid "Without an argument, an array of size 0 is created." msgstr "Sin argumento, se crea un array de tamaño 0." -#: ../Doc/library/functions.rst:204 +#: ../Doc/library/functions.rst:211 msgid "See also :ref:`binaryseq` and :ref:`typebytearray`." msgstr "Ver también: :ref:`binaryseq` y :ref:`typebytearray`." -#: ../Doc/library/functions.rst:213 +#: ../Doc/library/functions.rst:220 msgid "" "Return a new \"bytes\" object which is an immutable sequence of integers in " "the range ``0 <= x < 256``. :class:`bytes` is an immutable version of :" @@ -632,25 +646,25 @@ msgstr "" "class:`bytearray` -- tiene los mismos métodos no mutables y el mismo " "comportamiento en términos de indexación y segmentación." -#: ../Doc/library/functions.rst:218 +#: ../Doc/library/functions.rst:225 msgid "" "Accordingly, constructor arguments are interpreted as for :func:`bytearray`." msgstr "" "En consecuencia, los argumentos del constructor son interpretados como los " "de :func:`bytearray`." -#: ../Doc/library/functions.rst:220 +#: ../Doc/library/functions.rst:227 msgid "Bytes objects can also be created with literals, see :ref:`strings`." msgstr "" "Los objetos de bytes también pueden ser creados con literales, ver :ref:" "`strings`." -#: ../Doc/library/functions.rst:222 +#: ../Doc/library/functions.rst:229 msgid "See also :ref:`binaryseq`, :ref:`typebytes`, and :ref:`bytes-methods`." msgstr "" "Ver también :ref:`binaryseq`, :ref:`typebytes`, y :ref:`bytes-methods`." -#: ../Doc/library/functions.rst:227 +#: ../Doc/library/functions.rst:234 msgid "" "Return :const:`True` if the *object* argument appears callable, :const:" "`False` if not. If this returns ``True``, it is still possible that a call " @@ -665,14 +679,14 @@ msgstr "" "instancia nueva); y que las instancias lo serán si su clase tiene un método :" "meth:`__call__`." -#: ../Doc/library/functions.rst:233 +#: ../Doc/library/functions.rst:240 msgid "" "This function was first removed in Python 3.0 and then brought back in " "Python 3.2." msgstr "" "Está función fue eliminada en Python 3.0 pero traída de vuelta en Python 3.2." -#: ../Doc/library/functions.rst:240 +#: ../Doc/library/functions.rst:247 msgid "" "Return the string representing a character whose Unicode code point is the " "integer *i*. For example, ``chr(97)`` returns the string ``'a'``, while " @@ -683,7 +697,7 @@ msgstr "" "``chr(8364)`` retorna la cadena ``’€’``. Esta función es la inversa de :func:" "`ord`." -#: ../Doc/library/functions.rst:244 +#: ../Doc/library/functions.rst:251 msgid "" "The valid range for the argument is from 0 through 1,114,111 (0x10FFFF in " "base 16). :exc:`ValueError` will be raised if *i* is outside that range." @@ -692,11 +706,11 @@ msgstr "" "base 16). Se lanzará una excepción :exc:`ValueError` si *i* está fuera de " "ese rango." -#: ../Doc/library/functions.rst:250 +#: ../Doc/library/functions.rst:257 msgid "Transform a method into a class method." msgstr "Transforma un método en un método de clase." -#: ../Doc/library/functions.rst:252 +#: ../Doc/library/functions.rst:259 msgid "" "A class method receives the class as an implicit first argument, just like " "an instance method receives the instance. To declare a class method, use " @@ -706,7 +720,7 @@ msgstr "" "misma forma que un método de instancia recibe la instancia. Para declarar un " "método de clase, emplea la siguiente expresión:" -#: ../Doc/library/functions.rst:260 +#: ../Doc/library/functions.rst:267 msgid "" "The ``@classmethod`` form is a function :term:`decorator` -- see :ref:" "`function` for details." @@ -714,7 +728,7 @@ msgstr "" "La forma ``@classmethod`` es una función :term:`decorator` — ver :ref:" "`function` para más detalles." -#: ../Doc/library/functions.rst:263 +#: ../Doc/library/functions.rst:270 msgid "" "A class method can be called either on the class (such as ``C.f()``) or on " "an instance (such as ``C().f()``). The instance is ignored except for its " @@ -726,7 +740,7 @@ msgstr "" "Si un método de clase es llamado desde una clase derivada, entonces el " "objeto de la clase derivada se pasa como primer argumento implícito." -#: ../Doc/library/functions.rst:268 +#: ../Doc/library/functions.rst:275 msgid "" "Class methods are different than C++ or Java static methods. If you want " "those, see :func:`staticmethod` in this section. For more information on " @@ -736,7 +750,7 @@ msgstr "" "Si los desea, consulte :func:`staticmethod` en esta sección. Para obtener " "más información sobre los métodos de clase, consulte :ref:`types`." -#: ../Doc/library/functions.rst:272 +#: ../Doc/library/functions.rst:279 msgid "" "Class methods can now wrap other :term:`descriptors ` such as :" "func:`property`." @@ -744,7 +758,7 @@ msgstr "" "Los métodos de clase ahora pueden envolver otros :term:`descriptores " "` como :func:`property`." -#: ../Doc/library/functions.rst:276 +#: ../Doc/library/functions.rst:283 msgid "" "Class methods now inherit the method attributes (``__module__``, " "``__name__``, ``__qualname__``, ``__doc__`` and ``__annotations__``) and " @@ -754,7 +768,7 @@ msgstr "" "``__name__``, ``__qualname__``, ``__doc__`` and ``__annotations__``) y " "tienen un nuevo atributo ``__wrapped__``." -#: ../Doc/library/functions.rst:281 +#: ../Doc/library/functions.rst:288 msgid "" "Class methods can no longer wrap other :term:`descriptors ` such " "as :func:`property`." @@ -762,7 +776,7 @@ msgstr "" "Los métodos de clase ya no pueden envolver otros :term:`descriptores " "` como :func:`property`." -#: ../Doc/library/functions.rst:288 +#: ../Doc/library/functions.rst:295 msgid "" "Compile the *source* into a code or AST object. Code objects can be " "executed by :func:`exec` or :func:`eval`. *source* can either be a normal " @@ -775,7 +789,7 @@ msgstr "" "normal, una cadena de bytes o un objeto AST. Para más información sobre cómo " "trabajar con objetos AST, revisa la documentación del módulo :mod:`ast`." -#: ../Doc/library/functions.rst:293 +#: ../Doc/library/functions.rst:300 msgid "" "The *filename* argument should give the file from which the code was read; " "pass some recognizable value if it wasn't read from a file (``''`` " @@ -785,7 +799,7 @@ msgstr "" "leído; pasará un valor reconocible en caso este no fuera leído de un " "fichero (``’’`` es usado comúnmente para esto)." -#: ../Doc/library/functions.rst:297 +#: ../Doc/library/functions.rst:304 msgid "" "The *mode* argument specifies what kind of code must be compiled; it can be " "``'exec'`` if *source* consists of a sequence of statements, ``'eval'`` if " @@ -799,7 +813,7 @@ msgstr "" "en una declaración única interactiva (en este último caso, las declaraciones " "de expresiones que evalúen a algo distinto de ``None`` serán impresas)." -#: ../Doc/library/functions.rst:303 +#: ../Doc/library/functions.rst:310 msgid "" "The optional arguments *flags* and *dont_inherit* control which :ref:" "`compiler options ` should be activated and which :ref:" @@ -824,7 +838,7 @@ msgstr "" "indicadores (características futuras y opciones del compilador) en el código " "circundante se ignoran." -#: ../Doc/library/functions.rst:314 +#: ../Doc/library/functions.rst:321 msgid "" "Compiler options and future statements are specified by bits which can be " "bitwise ORed together to specify multiple options. The bitfield required to " @@ -842,7 +856,7 @@ msgstr "" "` se pueden encontrar en el módulo :mod:`ast`, con el " "prefijo ``PyCF_``." -#: ../Doc/library/functions.rst:322 +#: ../Doc/library/functions.rst:329 msgid "" "The argument *optimize* specifies the optimization level of the compiler; " "the default value of ``-1`` selects the optimization level of the " @@ -857,7 +871,7 @@ msgstr "" "eliminan los asserts, ``__debug__`` es false) or ``2`` (las *docstrings* " "también son eliminadas)." -#: ../Doc/library/functions.rst:328 +#: ../Doc/library/functions.rst:335 msgid "" "This function raises :exc:`SyntaxError` if the compiled source is invalid, " "and :exc:`ValueError` if the source contains null bytes." @@ -865,7 +879,7 @@ msgstr "" "Esta función lanza un :exc:`SyntaxError` si el código compilado es inválido, " "y un :exc:`ValueError` si contiene bytes nulos." -#: ../Doc/library/functions.rst:331 +#: ../Doc/library/functions.rst:338 msgid "" "If you want to parse Python code into its AST representation, see :func:`ast." "parse`." @@ -873,7 +887,7 @@ msgstr "" "Si quieres transformar código Python a su representación AST, revisa :func:" "`ast.parse`." -#: ../Doc/library/functions.rst:334 +#: ../Doc/library/functions.rst:341 msgid "" "Raises an :ref:`auditing event ` ``compile`` with arguments " "``source``, ``filename``." @@ -881,7 +895,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``compile`` con argumentos " "``source``, ``filename``." -#: ../Doc/library/functions.rst:336 +#: ../Doc/library/functions.rst:343 msgid "" "Raises an :ref:`auditing event ` ``compile`` with arguments " "``source`` and ``filename``. This event may also be raised by implicit " @@ -891,7 +905,7 @@ msgstr "" "``source`` y ``filename``. Este evento también puede ser lanzado por la " "compilación implícita." -#: ../Doc/library/functions.rst:342 +#: ../Doc/library/functions.rst:349 msgid "" "When compiling a string with multi-line code in ``'single'`` or ``'eval'`` " "mode, input must be terminated by at least one newline character. This is " @@ -903,7 +917,7 @@ msgstr "" "mínimo. Esto facilita la detección de declaraciones completas e incompletas " "en el módulo :mod:`code`." -#: ../Doc/library/functions.rst:349 +#: ../Doc/library/functions.rst:356 msgid "" "It is possible to crash the Python interpreter with a sufficiently large/" "complex string when compiling to an AST object due to stack depth " @@ -913,7 +927,7 @@ msgstr "" "AST es posible que el intérprete de Python pare inesperadamente debido a las " "limitaciones de la profundidad de la pila en el compilador del AST de Python." -#: ../Doc/library/functions.rst:353 +#: ../Doc/library/functions.rst:360 msgid "" "Allowed use of Windows and Mac newlines. Also, input in ``'exec'`` mode " "does not have to end in a newline anymore. Added the *optimize* parameter." @@ -922,7 +936,7 @@ msgstr "" "entrada en el modo ``’exec’`` ya no tiene que terminar necesariamente en una " "nueva línea. Se añade el parámetro *optimize*." -#: ../Doc/library/functions.rst:357 +#: ../Doc/library/functions.rst:364 msgid "" "Previously, :exc:`TypeError` was raised when null bytes were encountered in " "*source*." @@ -930,7 +944,7 @@ msgstr "" "Anteriormente, un :exc:`TypeError` era lanzado cuando se encontraban bytes " "nulos en *source*." -#: ../Doc/library/functions.rst:361 +#: ../Doc/library/functions.rst:368 msgid "" "``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` can now be passed in flags to enable " "support for top-level ``await``, ``async for``, and ``async with``." @@ -939,7 +953,7 @@ msgstr "" "permitir el soporte de ``await``, ``async for``, y ``async with`` en niveles " "superiores." -#: ../Doc/library/functions.rst:369 +#: ../Doc/library/functions.rst:376 msgid "" "Return a complex number with the value *real* + *imag*\\*1j or convert a " "string or number to a complex number. If the first parameter is a string, " @@ -959,19 +973,20 @@ msgstr "" "constructor sirve como un conversor numérico como :class:`int` y :class:" "`float`. Si ambos argumentos son omitidos, retorna ``0j``." -#: ../Doc/library/functions.rst:378 +#: ../Doc/library/functions.rst:385 +#, fuzzy msgid "" "For a general Python object ``x``, ``complex(x)`` delegates to ``x." -"__complex__()``. If ``__complex__()`` is not defined then it falls back to :" -"meth:`__float__`. If ``__float__()`` is not defined then it falls back to :" -"meth:`__index__`." +"__complex__()``. If :meth:`~object.__complex__` is not defined then it " +"falls back to :meth:`~object.__float__`. If :meth:`!__float__` is not " +"defined then it falls back to :meth:`~object.__index__`." msgstr "" "Para un objeto general de Python ``x``, ``complex(x)`` delega a ``x." "__complex__()``. Si ``__complex__()`` no está definida, entonces llama a :" "meth:`__float__`. Si ``__float__()`` no está definida, entonces llama a :" "meth:`__index__`." -#: ../Doc/library/functions.rst:385 +#: ../Doc/library/functions.rst:392 msgid "" "When converting from a string, the string must not contain whitespace around " "the central ``+`` or ``-`` operator. For example, ``complex('1+2j')`` is " @@ -982,26 +997,27 @@ msgstr "" "``complex(‘1+2j’)`` es correcto, pero ``complex(‘1 + 2j’)`` lanza :exc:" "`ValueError`." -#: ../Doc/library/functions.rst:390 +#: ../Doc/library/functions.rst:397 msgid "The complex type is described in :ref:`typesnumeric`." msgstr "El tipo complejo está descrito en :ref:`typesnumeric`." -#: ../Doc/library/functions.rst:392 ../Doc/library/functions.rst:693 -#: ../Doc/library/functions.rst:913 +#: ../Doc/library/functions.rst:399 ../Doc/library/functions.rst:704 +#: ../Doc/library/functions.rst:928 msgid "Grouping digits with underscores as in code literals is allowed." msgstr "" "Agrupar dígitos con guiones bajos como en los literales de código está " "permitido." -#: ../Doc/library/functions.rst:395 +#: ../Doc/library/functions.rst:402 +#, fuzzy msgid "" -"Falls back to :meth:`__index__` if :meth:`__complex__` and :meth:`__float__` " -"are not defined." +"Falls back to :meth:`~object.__index__` if :meth:`~object.__complex__` and :" +"meth:`~object.__float__` are not defined." msgstr "" "Recurre a :meth:`__index__` si :meth:`__complex__` y :meth:`__float__` no " "están definidos." -#: ../Doc/library/functions.rst:402 +#: ../Doc/library/functions.rst:409 msgid "" "This is a relative of :func:`setattr`. The arguments are an object and a " "string. The string must be the name of one of the object's attributes. The " @@ -1016,7 +1032,7 @@ msgstr "" "foobar``. *name* necesita no ser un identificador Python (ver :func:" "`setattr`)." -#: ../Doc/library/functions.rst:415 +#: ../Doc/library/functions.rst:422 msgid "" "Create a new dictionary. The :class:`dict` object is the dictionary class. " "See :class:`dict` and :ref:`typesmapping` for documentation about this class." @@ -1025,7 +1041,7 @@ msgstr "" "Véase :class:`dict` y :ref:`typesmapping` para más información sobre esta " "clase." -#: ../Doc/library/functions.rst:418 +#: ../Doc/library/functions.rst:425 msgid "" "For other containers see the built-in :class:`list`, :class:`set`, and :" "class:`tuple` classes, as well as the :mod:`collections` module." @@ -1034,7 +1050,7 @@ msgstr "" "`list`, :class:`set`, y :class:`tuple`, así como el módulo :mod:" "`collections`." -#: ../Doc/library/functions.rst:425 +#: ../Doc/library/functions.rst:432 msgid "" "Without arguments, return the list of names in the current local scope. " "With an argument, attempt to return a list of valid attributes for that " @@ -1043,7 +1059,7 @@ msgstr "" "Sin argumentos, retorna la lista de nombres en el ámbito local. Con un " "argumento, intenta retornar una lista de atributos válidos para ese objeto." -#: ../Doc/library/functions.rst:428 +#: ../Doc/library/functions.rst:435 msgid "" "If the object has a method named :meth:`__dir__`, this method will be called " "and must return the list of attributes. This allows objects that implement a " @@ -1056,7 +1072,7 @@ msgstr "" "`__getattribute__` puedan decidir la manera en la que :func:`dir` reporta " "sus atributos." -#: ../Doc/library/functions.rst:433 +#: ../Doc/library/functions.rst:440 msgid "" "If the object does not provide :meth:`__dir__`, the function tries its best " "to gather information from the object's :attr:`~object.__dict__` attribute, " @@ -1070,7 +1086,7 @@ msgstr "" "necesariamente completa, y puede ser inexacta cuando el objeto tiene una " "función :func:`__getattr__` personalizada." -#: ../Doc/library/functions.rst:438 +#: ../Doc/library/functions.rst:445 msgid "" "The default :func:`dir` mechanism behaves differently with different types " "of objects, as it attempts to produce the most relevant, rather than " @@ -1080,7 +1096,7 @@ msgstr "" "diferentes tipos de objeto, ya que intenta producir la información más " "relevante en vez de la más completa:" -#: ../Doc/library/functions.rst:442 +#: ../Doc/library/functions.rst:449 msgid "" "If the object is a module object, the list contains the names of the " "module's attributes." @@ -1088,7 +1104,7 @@ msgstr "" "Si el objeto es un módulo, la lista contiene los nombres de los atributos " "del módulo." -#: ../Doc/library/functions.rst:445 +#: ../Doc/library/functions.rst:452 msgid "" "If the object is a type or class object, the list contains the names of its " "attributes, and recursively of the attributes of its bases." @@ -1096,7 +1112,7 @@ msgstr "" "Si el objeto es un tipo o una clase, la lista contiene los nombres de sus " "atributos, y recursivamente la de los atributos de sus clases base." -#: ../Doc/library/functions.rst:448 +#: ../Doc/library/functions.rst:455 msgid "" "Otherwise, the list contains the object's attributes' names, the names of " "its class's attributes, and recursively of the attributes of its class's " @@ -1106,11 +1122,11 @@ msgstr "" "objeto, los nombres de los atributos de su clase, y recursivamente los " "atributos de sus clases base." -#: ../Doc/library/functions.rst:452 +#: ../Doc/library/functions.rst:459 msgid "The resulting list is sorted alphabetically. For example:" msgstr "La lista resultante está ordenada alfabéticamente. Por ejemplo:" -#: ../Doc/library/functions.rst:471 +#: ../Doc/library/functions.rst:479 msgid "" "Because :func:`dir` is supplied primarily as a convenience for use at an " "interactive prompt, it tries to supply an interesting set of names more than " @@ -1124,7 +1140,7 @@ msgstr "" "cambiar entre versiones. Por ejemplo, los atributos de metaclase no están en " "la lista resultante cuando el argumento es una clase." -#: ../Doc/library/functions.rst:481 +#: ../Doc/library/functions.rst:489 msgid "" "Take two (non-complex) numbers as arguments and return a pair of numbers " "consisting of their quotient and remainder when using integer division. " @@ -1145,7 +1161,7 @@ msgstr "" "es distinto de cero y tiene el mismo signo que *b*, y ``0 <= abs(a % b) < " "abs(b)``." -#: ../Doc/library/functions.rst:493 +#: ../Doc/library/functions.rst:501 msgid "" "Return an enumerate object. *iterable* must be a sequence, an :term:" "`iterator`, or some other object which supports iteration. The :meth:" @@ -1159,11 +1175,11 @@ msgstr "" "`enumerate` retorna una tupla que contiene un contador (desde *start*, cuyo " "valor por defecto es 0) y los valores obtenidos al iterar sobre *iterable*." -#: ../Doc/library/functions.rst:505 +#: ../Doc/library/functions.rst:513 msgid "Equivalent to::" msgstr "Equivalente a::" -#: ../Doc/library/functions.rst:517 +#: ../Doc/library/functions.rst:525 msgid "" "The arguments are a string and optional globals and locals. If provided, " "*globals* must be a dictionary. If provided, *locals* can be any mapping " @@ -1173,7 +1189,7 @@ msgstr "" "introduce, *globals* tiene que ser un diccionario, y *locals* puede ser " "cualquier objeto de mapeo." -#: ../Doc/library/functions.rst:521 +#: ../Doc/library/functions.rst:529 msgid "" "The *expression* argument is parsed and evaluated as a Python expression " "(technically speaking, a condition list) using the *globals* and *locals* " @@ -1204,7 +1220,7 @@ msgstr "" "llamada. Tener en cuenta que *eval()* no tiene acceso al :term:`nested " "scopes ` (no locales) en el entorno que lo contiene." -#: ../Doc/library/functions.rst:536 +#: ../Doc/library/functions.rst:544 msgid "" "The return value is the result of the evaluated expression. Syntax errors " "are reported as exceptions. Example:" @@ -1212,7 +1228,7 @@ msgstr "" "El valor que retorna es el resultado de la expresión evaluada. Los errores " "de sintaxis son reportados como excepciones. Por ejemplo:" -#: ../Doc/library/functions.rst:543 +#: ../Doc/library/functions.rst:551 msgid "" "This function can also be used to execute arbitrary code objects (such as " "those created by :func:`compile`). In this case, pass a code object instead " @@ -1225,7 +1241,7 @@ msgstr "" "código ha sido compilado usando ``'exec'`` como el argumento *mode*, el " "valor que retornará :func:`eval`\\ será ``None``." -#: ../Doc/library/functions.rst:548 +#: ../Doc/library/functions.rst:556 msgid "" "Hints: dynamic execution of statements is supported by the :func:`exec` " "function. The :func:`globals` and :func:`locals` functions return the " @@ -1237,7 +1253,7 @@ msgstr "" "retornan los diccionarios global y local en ese momento, respectivamente, lo " "cual puede ser útil para su uso en :func:`eval` o :func:`exec`." -#: ../Doc/library/functions.rst:553 +#: ../Doc/library/functions.rst:561 msgid "" "If the given source is a string, then leading and trailing spaces and tabs " "are stripped." @@ -1245,7 +1261,7 @@ msgstr "" "Si la fuente dada es una cadena de caracteres, se eliminan los espacios y " "tabulaciones principales y finales." -#: ../Doc/library/functions.rst:556 +#: ../Doc/library/functions.rst:564 msgid "" "See :func:`ast.literal_eval` for a function that can safely evaluate strings " "with expressions containing only literals." @@ -1253,7 +1269,7 @@ msgstr "" "Véase :func:`ast.literal_eval`, una función que puede evaluar de forma " "segura cadenas con expresiones que contienen solo literales." -#: ../Doc/library/functions.rst:559 ../Doc/library/functions.rst:600 +#: ../Doc/library/functions.rst:567 ../Doc/library/functions.rst:608 msgid "" "Raises an :ref:`auditing event ` ``exec`` with argument " "``code_object``." @@ -1261,7 +1277,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``exec`` con un argumento " "``code_object``." -#: ../Doc/library/functions.rst:561 ../Doc/library/functions.rst:602 +#: ../Doc/library/functions.rst:569 ../Doc/library/functions.rst:610 msgid "" "Raises an :ref:`auditing event ` ``exec`` with the code object as " "the argument. Code compilation events may also be raised." @@ -1270,7 +1286,7 @@ msgstr "" "como el argumento. También podrían ser lanzados eventos de compilación de " "código." -#: ../Doc/library/functions.rst:568 +#: ../Doc/library/functions.rst:576 msgid "" "This function supports dynamic execution of Python code. *object* must be " "either a string or a code object. If it is a string, the string is parsed " @@ -1294,7 +1310,7 @@ msgstr "" "del contexto del código pasado a la función :func:`exec` . El valor de " "retorno es ``None``." -#: ../Doc/library/functions.rst:579 +#: ../Doc/library/functions.rst:587 msgid "" "In all cases, if the optional parts are omitted, the code is executed in the " "current scope. If only *globals* is provided, it must be a dictionary (and " @@ -1316,7 +1332,7 @@ msgstr "" "recibe dos objetos separados como *globals* y *locals*, el código será " "ejecutado como si estuviera incorporado en una definición de clase." -#: ../Doc/library/functions.rst:589 +#: ../Doc/library/functions.rst:597 msgid "" "If the *globals* dictionary does not contain a value for the key " "``__builtins__``, a reference to the dictionary of the built-in module :mod:" @@ -1330,7 +1346,7 @@ msgstr "" "*builtins* están disponibles para el código ejecutado insertando tu propio " "diccionario ``__builtins__`` en *globals* antes de pasárselo a :func:`exec`." -#: ../Doc/library/functions.rst:595 +#: ../Doc/library/functions.rst:603 msgid "" "The *closure* argument specifies a closure--a tuple of cellvars. It's only " "valid when the *object* is a code object containing free variables. The " @@ -1342,7 +1358,7 @@ msgstr "" "libres. La longitud de la tupla debe coincidir exactamente con el número de " "variables libres a las que hace referencia el objeto de código." -#: ../Doc/library/functions.rst:607 +#: ../Doc/library/functions.rst:615 msgid "" "The built-in functions :func:`globals` and :func:`locals` return the current " "global and local dictionary, respectively, which may be useful to pass " @@ -1353,7 +1369,7 @@ msgstr "" "para pasarlo y emplearlo como el segundo y el tercer argumento de :func:" "`exec`." -#: ../Doc/library/functions.rst:613 +#: ../Doc/library/functions.rst:621 msgid "" "The default *locals* act as described for function :func:`locals` below: " "modifications to the default *locals* dictionary should not be attempted. " @@ -1366,17 +1382,17 @@ msgstr "" "ver los efectos del código en *locals* después de que la función :func:" "`exec` retorne." -#: ../Doc/library/functions.rst:618 +#: ../Doc/library/functions.rst:626 msgid "Added the *closure* parameter." msgstr "Añadido el parámetro *closure*." -#: ../Doc/library/functions.rst:624 +#: ../Doc/library/functions.rst:632 +#, fuzzy msgid "" "Construct an iterator from those elements of *iterable* for which *function* " -"returns true. *iterable* may be either a sequence, a container which " -"supports iteration, or an iterator. If *function* is ``None``, the identity " -"function is assumed, that is, all elements of *iterable* that are false are " -"removed." +"is true. *iterable* may be either a sequence, a container which supports " +"iteration, or an iterator. If *function* is ``None``, the identity function " +"is assumed, that is, all elements of *iterable* that are false are removed." msgstr "" "Construye un iterador a partir de aquellos elementos de *iterable* para los " "cuales *function* retorna true. *iterable* puede ser una secuencia, un " @@ -1384,7 +1400,7 @@ msgstr "" "se asume la función identidad, es decir, todos los elementos de *iterable* " "que son false son eliminados." -#: ../Doc/library/functions.rst:630 +#: ../Doc/library/functions.rst:638 msgid "" "Note that ``filter(function, iterable)`` is equivalent to the generator " "expression ``(item for item in iterable if function(item))`` if function is " @@ -1396,29 +1412,31 @@ msgstr "" "si *function* no es ``None`` y a ``(item for item in iterable if item)`` si " "*function* es ``None``." -#: ../Doc/library/functions.rst:635 +#: ../Doc/library/functions.rst:643 +#, fuzzy msgid "" "See :func:`itertools.filterfalse` for the complementary function that " -"returns elements of *iterable* for which *function* returns false." +"returns elements of *iterable* for which *function* is false." msgstr "" "Ver :func:`itertools.filterfalse` para la función complementaria que retorna " "los elementos de *iterable* para los cuales *function* retorna false." -#: ../Doc/library/functions.rst:645 +#: ../Doc/library/functions.rst:653 msgid "Return a floating point number constructed from a number or string *x*." msgstr "" "Retorna un número de punto flotante construido a partir de un número o una " "cadena *x*." -#: ../Doc/library/functions.rst:647 +#: ../Doc/library/functions.rst:655 +#, fuzzy msgid "" "If the argument is a string, it should contain a decimal number, optionally " "preceded by a sign, and optionally embedded in whitespace. The optional " "sign may be ``'+'`` or ``'-'``; a ``'+'`` sign has no effect on the value " "produced. The argument may also be a string representing a NaN (not-a-" "number), or positive or negative infinity. More precisely, the input must " -"conform to the following grammar after leading and trailing whitespace " -"characters are removed:" +"conform to the ``floatvalue`` production rule in the following grammar, " +"after leading and trailing whitespace characters are removed:" msgstr "" "Si el argumento es una cadena de caracteres, debe contener un número " "decimal, opcionalmente precedido de un signo, y opcionalmente entre espacios " @@ -1429,12 +1447,13 @@ msgstr "" "siguiente gramática una vez eliminados de la cadena los caracteres en blanco " "por delante o detrás:" -#: ../Doc/library/functions.rst:662 +#: ../Doc/library/functions.rst:673 +#, fuzzy msgid "" -"Here ``floatnumber`` is the form of a Python floating-point literal, " -"described in :ref:`floating`. Case is not significant, so, for example, " -"\"inf\", \"Inf\", \"INFINITY\", and \"iNfINity\" are all acceptable " -"spellings for positive infinity." +"Here ``digit`` is a Unicode decimal digit (character in the Unicode general " +"category ``Nd``). Case is not significant, so, for example, \"inf\", " +"\"Inf\", \"INFINITY\", and \"iNfINity\" are all acceptable spellings for " +"positive infinity." msgstr "" "Aquí ``floatnumber`` es el formato de un literal de punto flotante de " "Python, tal y como está descrito en :ref:`floating`. No es relevante si los " @@ -1442,7 +1461,7 @@ msgstr "" "\"INFINITY\" e \"iNfINity\" son todas formas aceptables de escribir el " "infinito positivo." -#: ../Doc/library/functions.rst:667 +#: ../Doc/library/functions.rst:678 msgid "" "Otherwise, if the argument is an integer or a floating point number, a " "floating point number with the same value (within Python's floating point " @@ -1455,33 +1474,37 @@ msgstr "" "rango de un punto flotante de Python, se lanzará una excepción :exc:" "`OverflowError`." -#: ../Doc/library/functions.rst:672 +#: ../Doc/library/functions.rst:683 +#, fuzzy msgid "" "For a general Python object ``x``, ``float(x)`` delegates to ``x." -"__float__()``. If ``__float__()`` is not defined then it falls back to :" -"meth:`__index__`." +"__float__()``. If :meth:`~object.__float__` is not defined then it falls " +"back to :meth:`~object.__index__`." msgstr "" "Para el objeto general de Python ``x``, ``float(x)`` delega a ``x." "__float__()``. Si ``__float__()`` no está definido entonces recurre a :meth:" "`__index__`." -#: ../Doc/library/functions.rst:676 +#: ../Doc/library/functions.rst:687 msgid "If no argument is given, ``0.0`` is returned." msgstr "Si no se le da un argumento, retorna ``0.0``." -#: ../Doc/library/functions.rst:678 +#: ../Doc/library/functions.rst:689 msgid "Examples::" msgstr "Ejemplos::" -#: ../Doc/library/functions.rst:691 +#: ../Doc/library/functions.rst:702 msgid "The float type is described in :ref:`typesnumeric`." msgstr "El tipo float está descrito en :ref:`typesnumeric`." -#: ../Doc/library/functions.rst:699 -msgid "Falls back to :meth:`__index__` if :meth:`__float__` is not defined." +#: ../Doc/library/functions.rst:710 +#, fuzzy +msgid "" +"Falls back to :meth:`~object.__index__` if :meth:`~object.__float__` is not " +"defined." msgstr "Recurre a :meth:`__index__` si :meth:`__float__` no está definido." -#: ../Doc/library/functions.rst:709 +#: ../Doc/library/functions.rst:720 msgid "" "Convert a *value* to a \"formatted\" representation, as controlled by " "*format_spec*. The interpretation of *format_spec* will depend on the type " @@ -1493,7 +1516,7 @@ msgstr "" "argumento *value*. Sin embargo, hay una sintaxis estándar de formato que " "emplean la mayoría de los tipos incorporados: :ref:`formatspec`." -#: ../Doc/library/functions.rst:714 +#: ../Doc/library/functions.rst:725 msgid "" "The default *format_spec* is an empty string which usually gives the same " "effect as calling :func:`str(value) `." @@ -1501,7 +1524,7 @@ msgstr "" "El *format_spec* por defecto es una cadena vacía que normalmente produce el " "mismo efecto que llamar a :func:`str(value) `." -#: ../Doc/library/functions.rst:717 +#: ../Doc/library/functions.rst:728 msgid "" "A call to ``format(value, format_spec)`` is translated to ``type(value)." "__format__(value, format_spec)`` which bypasses the instance dictionary when " @@ -1517,7 +1540,7 @@ msgstr "" "*format_spec* no está vacío, o si *format_spec* o el valor de retorno no son " "cadenas." -#: ../Doc/library/functions.rst:724 +#: ../Doc/library/functions.rst:735 msgid "" "``object().__format__(format_spec)`` raises :exc:`TypeError` if " "*format_spec* is not an empty string." @@ -1525,7 +1548,7 @@ msgstr "" "``object().__format__(format_spec)`` lanza :exc:`TypeError` si *format_spec* " "no es una cadena vacía." -#: ../Doc/library/functions.rst:733 +#: ../Doc/library/functions.rst:744 msgid "" "Return a new :class:`frozenset` object, optionally with elements taken from " "*iterable*. ``frozenset`` is a built-in class. See :class:`frozenset` and :" @@ -1535,7 +1558,7 @@ msgstr "" "tomados de *iterable*. ``frozenset`` es una clase built-in. Ver :class:" "`frozenset` y :ref:`types-set` para documentación sobre esta clase." -#: ../Doc/library/functions.rst:737 +#: ../Doc/library/functions.rst:748 msgid "" "For other containers see the built-in :class:`set`, :class:`list`, :class:" "`tuple`, and :class:`dict` classes, as well as the :mod:`collections` module." @@ -1544,7 +1567,7 @@ msgstr "" "class:`list`, :class:`tuple`, y :class:`dict`, así como el módulo :mod:" "`collections`." -#: ../Doc/library/functions.rst:745 +#: ../Doc/library/functions.rst:756 msgid "" "Return the value of the named attribute of *object*. *name* must be a " "string. If the string is the name of one of the object's attributes, the " @@ -1561,7 +1584,7 @@ msgstr "" "excepción :exc:`AttributeError`. *name* no necesita ser un identificador de " "Python (ver :func:`setattr`)." -#: ../Doc/library/functions.rst:754 +#: ../Doc/library/functions.rst:765 msgid "" "Since :ref:`private name mangling ` happens at " "compilation time, one must manually mangle a private attribute's (attributes " @@ -1573,7 +1596,7 @@ msgstr "" "atributo privado (atributos con dos guiones bajos principales) para " "recuperarlo con :func:`getattr`." -#: ../Doc/library/functions.rst:762 +#: ../Doc/library/functions.rst:773 msgid "" "Return the dictionary implementing the current module namespace. For code " "within functions, this is set when the function is defined and remains the " @@ -1584,7 +1607,7 @@ msgstr "" "define la función y permanece igual independientemente de dónde se llame a " "la función." -#: ../Doc/library/functions.rst:769 +#: ../Doc/library/functions.rst:780 msgid "" "The arguments are an object and a string. The result is ``True`` if the " "string is the name of one of the object's attributes, ``False`` if not. " @@ -1596,7 +1619,7 @@ msgstr "" "contrario. (Está implementado mediante una llamada a ``getattr(object, " "name)`` que comprueba si se lanza una excepción :exc:`AttributeError` o no)." -#: ../Doc/library/functions.rst:777 +#: ../Doc/library/functions.rst:788 msgid "" "Return the hash value of the object (if it has one). Hash values are " "integers. They are used to quickly compare dictionary keys during a " @@ -1609,17 +1632,18 @@ msgstr "" "tienen el mismo valor hash (incluso si son de tipos diferentes, como es el " "caso para 1 y 1.0)." -#: ../Doc/library/functions.rst:784 +#: ../Doc/library/functions.rst:795 +#, fuzzy msgid "" "For objects with custom :meth:`__hash__` methods, note that :func:`hash` " "truncates the return value based on the bit width of the host machine. See :" -"meth:`__hash__` for details." +"meth:`__hash__ ` for details." msgstr "" "Para objetos que implementan métodos :meth:`__hash__`, ten en cuenta que :" "func:`hash` trunca el valor de retorno en base a la tasa de bits de la " "máquina host. Ver :meth:`__hash__` para más detalles." -#: ../Doc/library/functions.rst:791 +#: ../Doc/library/functions.rst:802 msgid "" "Invoke the built-in help system. (This function is intended for interactive " "use.) If no argument is given, the interactive help system starts on the " @@ -1636,7 +1660,7 @@ msgstr "" "impresa en la consola. Si el argumento es cualquier otro tipo de objeto, una " "página de ayuda sobre el objeto es generada." -#: ../Doc/library/functions.rst:798 +#: ../Doc/library/functions.rst:809 msgid "" "Note that if a slash(/) appears in the parameter list of a function when " "invoking :func:`help`, it means that the parameters prior to the slash are " @@ -1648,14 +1672,14 @@ msgstr "" "la barra son solo posicionales. Para más información, puedes ver :ref:`the " "FAQ entry on positional-only parameters `." -#: ../Doc/library/functions.rst:803 +#: ../Doc/library/functions.rst:814 msgid "" "This function is added to the built-in namespace by the :mod:`site` module." msgstr "" "Esta función se añade al espacio de nombres built-in a través del módulo :" "mod:`site`." -#: ../Doc/library/functions.rst:805 +#: ../Doc/library/functions.rst:816 msgid "" "Changes to :mod:`pydoc` and :mod:`inspect` mean that the reported signatures " "for callables are now more comprehensive and consistent." @@ -1664,18 +1688,19 @@ msgstr "" "signaturas reportadas para objetos invocables son más completas y " "consistentes." -#: ../Doc/library/functions.rst:812 +#: ../Doc/library/functions.rst:823 +#, fuzzy msgid "" "Convert an integer number to a lowercase hexadecimal string prefixed with " "\"0x\". If *x* is not a Python :class:`int` object, it has to define an :" -"meth:`__index__` method that returns an integer. Some examples:" +"meth:`~object.__index__` method that returns an integer. Some examples:" msgstr "" "Convierte un número entero a una cadena hexadecimal de minúsculas con el " "prefijo \"0x\". Si *x* no es un objeto de la clase Python :class:`int`, " "tiene que definir un método :meth:`__index__` que retorne un entero. Algunos " "ejemplos:" -#: ../Doc/library/functions.rst:821 +#: ../Doc/library/functions.rst:832 msgid "" "If you want to convert an integer number to an uppercase or lower " "hexadecimal string with prefix or not, you can use either of the following " @@ -1685,7 +1710,7 @@ msgstr "" "o minúsculas con prefijo o sin el, puedes usar cualquiera de las siguientes " "formas:" -#: ../Doc/library/functions.rst:833 +#: ../Doc/library/functions.rst:844 msgid "" "See also :func:`int` for converting a hexadecimal string to an integer using " "a base of 16." @@ -1693,7 +1718,7 @@ msgstr "" "Ver también :func:`int` para convertir una cadena hexadecimal a un entero " "usando una base de 16." -#: ../Doc/library/functions.rst:838 +#: ../Doc/library/functions.rst:849 msgid "" "To obtain a hexadecimal string representation for a float, use the :meth:" "`float.hex` method." @@ -1701,7 +1726,7 @@ msgstr "" "Para obtener una cadena hexadecimal que represente un punto flotante, " "utiliza el método :meth:`float.hex`." -#: ../Doc/library/functions.rst:844 +#: ../Doc/library/functions.rst:855 msgid "" "Return the \"identity\" of an object. This is an integer which is " "guaranteed to be unique and constant for this object during its lifetime. " @@ -1713,11 +1738,11 @@ msgstr "" "existencia. Dos objetos con existencias en el tiempo que no coincidan pueden " "tener el mismo valor de :func:`id`." -#: ../Doc/library/functions.rst:849 +#: ../Doc/library/functions.rst:860 msgid "This is the address of the object in memory." msgstr "Esta es la dirección del objeto en memoria." -#: ../Doc/library/functions.rst:851 +#: ../Doc/library/functions.rst:862 msgid "" "Raises an :ref:`auditing event ` ``builtins.id`` with argument " "``id``." @@ -1725,7 +1750,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``builtins.id`` con el " "argumento ``id``." -#: ../Doc/library/functions.rst:857 +#: ../Doc/library/functions.rst:868 msgid "" "If the *prompt* argument is present, it is written to standard output " "without a trailing newline. The function then reads a line from input, " @@ -1737,7 +1762,7 @@ msgstr "" "entrada, la convierte en una cadena (eliminando la nueva línea), y retorna " "eso. Cuando se lee EOF, se lanza una excepción :exc:`EOFError`. Ejemplo::" -#: ../Doc/library/functions.rst:867 +#: ../Doc/library/functions.rst:878 msgid "" "If the :mod:`readline` module was loaded, then :func:`input` will use it to " "provide elaborate line editing and history features." @@ -1746,7 +1771,7 @@ msgstr "" "para proporcionar características más elaboradas de edición de líneas e " "historiales." -#: ../Doc/library/functions.rst:870 +#: ../Doc/library/functions.rst:881 msgid "" "Raises an :ref:`auditing event ` ``builtins.input`` with argument " "``prompt``." @@ -1754,7 +1779,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``builtins.input`` con el " "argumento ``prompt``." -#: ../Doc/library/functions.rst:872 +#: ../Doc/library/functions.rst:883 msgid "" "Raises an :ref:`auditing event ` ``builtins.input`` with argument " "``prompt`` before reading input" @@ -1762,7 +1787,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``builtins.input`` con el " "argumento ``prompt`` antes de leer entrada" -#: ../Doc/library/functions.rst:875 +#: ../Doc/library/functions.rst:886 msgid "" "Raises an :ref:`auditing event ` ``builtins.input/result`` with " "argument ``result``." @@ -1770,7 +1795,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``builtins.input/result`` con " "el argumento ``result``." -#: ../Doc/library/functions.rst:877 +#: ../Doc/library/functions.rst:888 msgid "" "Raises an :ref:`auditing event ` ``builtins.input/result`` with " "the result after successfully reading input." @@ -1778,13 +1803,15 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``builtins.input/result`` con " "el resultado justo después de haber leído con éxito la entrada." -#: ../Doc/library/functions.rst:884 +#: ../Doc/library/functions.rst:895 +#, fuzzy msgid "" "Return an integer object constructed from a number or string *x*, or return " -"``0`` if no arguments are given. If *x* defines :meth:`__int__`, ``int(x)`` " -"returns ``x.__int__()``. If *x* defines :meth:`__index__`, it returns ``x." -"__index__()``. If *x* defines :meth:`__trunc__`, it returns ``x." -"__trunc__()``. For floating point numbers, this truncates towards zero." +"``0`` if no arguments are given. If *x* defines :meth:`~object.__int__`, " +"``int(x)`` returns ``x.__int__()``. If *x* defines :meth:`~object." +"__index__`, it returns ``x.__index__()``. If *x* defines :meth:`~object." +"__trunc__`, it returns ``x.__trunc__()``. For floating point numbers, this " +"truncates towards zero." msgstr "" "Retorna un objeto entero construido desde un número o cadena *x*, o retorna " "``0`` si no se le proporcionan argumentos. Si *x* define :meth:`__int__`, " @@ -1793,46 +1820,34 @@ msgstr "" "__trunc__()``. Para números de punto flotante, los valores serán truncados " "hacia cero." -# si he entendido correctamente, radix es una manera latina de referirse a una -# base aritmetica (https://en.wikipedia.org/wiki/Radix) luego en español -# aunque quede redundante debería dejar de base *base* pq una cosa es la cosa -# y la otra el argumento. Lo de las bases tampoco me convence la -# explicación/traducción -#: ../Doc/library/functions.rst:891 +#: ../Doc/library/functions.rst:902 msgid "" "If *x* is not a number or if *base* is given, then *x* must be a string, :" -"class:`bytes`, or :class:`bytearray` instance representing an :ref:`integer " -"literal ` in radix *base*. Optionally, the literal can be " -"preceded by ``+`` or ``-`` (with no space in between) and surrounded by " -"whitespace. A base-n literal consists of the digits 0 to n-1, with ``a`` to " -"``z`` (or ``A`` to ``Z``) having values 10 to 35. The default *base* is 10. " -"The allowed values are 0 and 2--36. Base-2, -8, and -16 literals can be " -"optionally prefixed with ``0b``/``0B``, ``0o``/``0O``, or ``0x``/``0X``, as " -"with integer literals in code. Base 0 means to interpret exactly as a code " -"literal, so that the actual base is 2, 8, 10, or 16, and so that " -"``int('010', 0)`` is not legal, while ``int('010')`` is, as well as " -"``int('010', 8)``." -msgstr "" -"Si *x* no es un número o si se indica *base*, entonces *x* debe ser una " -"cadena, una instancia de :class:`bytes`, o una de :class:`bytearray` que " -"representa un :ref:`integer literal ` de base *base*. " -"Opcionalmente, el literal puede ser precedido de ``+`` or ``-`` (sin " -"espacios entre el número y el signo) y rodeados por espacio en blanco. Un " -"literal de base-n consiste en los dígitos de 0 a n-1, con valores entre 10 y " -"35 para los caracteres de ``a`` a ``z`` (o de ``A`` a ``Z``). La *base* por " -"defecto es 10. Los valores permitidos son 0 y 2--36. Los literales de " -"base-2, -8 y -16 pueden incluir opcionalmente un prefijo ``0b``/``0B``, " -"``0o``/``0O``, o ``0x``/``0X``, de igual forma que los literales enteros en " -"el código. Base-0 indica que se debe interpretar exactamente como un " -"literal de código, de forma que la base real es 2, 8, 10 o 16, y que " -"``int('010', 0)`` no sea legal, mientras que ``int('010')`` sí lo es, así " -"como ``int('010', 8)``." - -#: ../Doc/library/functions.rst:904 +"class:`bytes`, or :class:`bytearray` instance representing an integer in " +"radix *base*. Optionally, the string can be preceded by ``+`` or ``-`` " +"(with no space in between), have leading zeros, be surrounded by whitespace, " +"and have single underscores interspersed between digits." +msgstr "" + +#: ../Doc/library/functions.rst:908 +msgid "" +"A base-n integer string contains digits, each representing a value from 0 to " +"n-1. The values 0--9 can be represented by any Unicode decimal digit. The " +"values 10--35 can be represented by ``a`` to ``z`` (or ``A`` to ``Z``). The " +"default *base* is 10. The allowed bases are 0 and 2--36. Base-2, -8, and -16 " +"strings can be optionally prefixed with ``0b``/``0B``, ``0o``/``0O``, or " +"``0x``/``0X``, as with integer literals in code. For base 0, the string is " +"interpreted in a similar way to an :ref:`integer literal in code " +"`, in that the actual base is 2, 8, 10, or 16 as determined by the " +"prefix. Base 0 also disallows leading zeros: ``int('010', 0)`` is not legal, " +"while ``int('010')`` and ``int('010', 8)`` are." +msgstr "" + +#: ../Doc/library/functions.rst:919 msgid "The integer type is described in :ref:`typesnumeric`." msgstr "El tipo entero se describe en :ref:`typesnumeric`." -#: ../Doc/library/functions.rst:906 +#: ../Doc/library/functions.rst:921 msgid "" "If *base* is not an instance of :class:`int` and the *base* object has a :" "meth:`base.__index__ ` method, that method is called to " @@ -1845,15 +1860,19 @@ msgstr "" "`base.__int__ ` en vez de :meth:`base.__index__ `." -#: ../Doc/library/functions.rst:919 -msgid "Falls back to :meth:`__index__` if :meth:`__int__` is not defined." +#: ../Doc/library/functions.rst:934 +#, fuzzy +msgid "" +"Falls back to :meth:`~object.__index__` if :meth:`~object.__int__` is not " +"defined." msgstr "Recurre a :meth:`__index__` si no está definido :meth:`__int__`." -#: ../Doc/library/functions.rst:922 -msgid "The delegation to :meth:`__trunc__` is deprecated." +#: ../Doc/library/functions.rst:937 +#, fuzzy +msgid "The delegation to :meth:`~object.__trunc__` is deprecated." msgstr "La delegación a :meth:`__trunc__` está obsoleta." -#: ../Doc/library/functions.rst:925 +#: ../Doc/library/functions.rst:940 msgid "" ":class:`int` string inputs and string representations can be limited to help " "avoid denial of service attacks. A :exc:`ValueError` is raised when the " @@ -1869,7 +1888,7 @@ msgstr "" "excedería el límite. Ver la documentación de :ref:`limitación de longitud de " "conversión de cadena `." -#: ../Doc/library/functions.rst:935 +#: ../Doc/library/functions.rst:950 msgid "" "Return ``True`` if the *object* argument is an instance of the *classinfo* " "argument, or of a (direct, indirect, or :term:`virtual `) of *classinfo*. A class is considered a " @@ -1912,7 +1931,7 @@ msgstr "" "una subclase de cualquier entrada en *classinfo*. En cualquier otro caso, se " "lanzará una excepción :exc:`TypeError`." -#: ../Doc/library/functions.rst:967 +#: ../Doc/library/functions.rst:982 msgid "" "Return an :term:`iterator` object. The first argument is interpreted very " "differently depending on the presence of the second argument. Without a " @@ -1939,11 +1958,11 @@ msgstr "" "*sentinel*, una :exc:`StopIteration` será lanzada, de lo contrario el valor " "será retornado." -#: ../Doc/library/functions.rst:980 +#: ../Doc/library/functions.rst:995 msgid "See also :ref:`typeiter`." msgstr "Ver también :ref:`typeiter`." -#: ../Doc/library/functions.rst:982 +#: ../Doc/library/functions.rst:997 msgid "" "One useful application of the second form of :func:`iter` is to build a " "block-reader. For example, reading fixed-width blocks from a binary database " @@ -1954,7 +1973,7 @@ msgstr "" "fijo de una base de datos binaria hasta que el fin del fichero sea " "alcanzado::" -#: ../Doc/library/functions.rst:994 +#: ../Doc/library/functions.rst:1009 msgid "" "Return the length (the number of items) of an object. The argument may be a " "sequence (such as a string, bytes, tuple, list, or range) or a collection " @@ -1964,7 +1983,7 @@ msgstr "" "ser una secuencia (como una cadena, un objeto byte, una tupla, lista o " "rango) o una colección (como un diccionario, un set o un *frozen set*)." -#: ../Doc/library/functions.rst:1000 +#: ../Doc/library/functions.rst:1015 msgid "" "``len`` raises :exc:`OverflowError` on lengths larger than :data:`sys." "maxsize`, such as :class:`range(2 ** 100) `." @@ -1972,7 +1991,7 @@ msgstr "" "``len`` aumenta :exc:`OverflowError` en longitudes mayores que :data:`sys." "maxsize`, como :class:`range(2 ** 100) `." -#: ../Doc/library/functions.rst:1009 +#: ../Doc/library/functions.rst:1024 msgid "" "Rather than being a function, :class:`list` is actually a mutable sequence " "type, as documented in :ref:`typesseq-list` and :ref:`typesseq`." @@ -1980,7 +1999,7 @@ msgstr "" "Más que una función, :class:`list` es realmente un tipo de secuencia " "mutable, como está documentado en :ref:`typesseq-list` y :ref:`typesseq`." -#: ../Doc/library/functions.rst:1015 +#: ../Doc/library/functions.rst:1030 msgid "" "Update and return a dictionary representing the current local symbol table. " "Free variables are returned by :func:`locals` when it is called in function " @@ -1993,7 +2012,7 @@ msgstr "" "clases. Nótese que a nivel de módulo, :func:`locals` y :func:`globals` son " "el mismo diccionario." -#: ../Doc/library/functions.rst:1021 +#: ../Doc/library/functions.rst:1036 msgid "" "The contents of this dictionary should not be modified; changes may not " "affect the values of local and free variables used by the interpreter." @@ -2002,7 +2021,7 @@ msgstr "" "afectarán los valores de las variables locales y libres utilizadas por el " "intérprete." -#: ../Doc/library/functions.rst:1026 +#: ../Doc/library/functions.rst:1041 msgid "" "Return an iterator that applies *function* to every item of *iterable*, " "yielding the results. If additional *iterables* arguments are passed, " @@ -2019,14 +2038,14 @@ msgstr "" "Para casos donde las entradas de la función ya están organizadas como tuplas " "de argumentos, ver :func:`itertools.starmap`\\." -#: ../Doc/library/functions.rst:1038 +#: ../Doc/library/functions.rst:1053 msgid "" "Return the largest item in an iterable or the largest of two or more " "arguments." msgstr "" "Retorna el elemento mayor en un iterable o el mayor de dos o más argumentos." -#: ../Doc/library/functions.rst:1041 +#: ../Doc/library/functions.rst:1056 msgid "" "If one positional argument is provided, it should be an :term:`iterable`. " "The largest item in the iterable is returned. If two or more positional " @@ -2037,7 +2056,7 @@ msgstr "" "posicionales son indicados, el mayor de los argumentos posicionales será " "retornado." -#: ../Doc/library/functions.rst:1046 ../Doc/library/functions.rst:1084 +#: ../Doc/library/functions.rst:1061 ../Doc/library/functions.rst:1099 msgid "" "There are two optional keyword-only arguments. The *key* argument specifies " "a one-argument ordering function like that used for :meth:`list.sort`. The " @@ -2051,7 +2070,7 @@ msgstr "" "retornar si el iterable proporcionado está vacío. Si el iterable está vacío " "y *default* no ha sido indicado, se lanza un :exc:`ValueError`." -#: ../Doc/library/functions.rst:1052 +#: ../Doc/library/functions.rst:1067 msgid "" "If multiple items are maximal, the function returns the first one " "encountered. This is consistent with other sort-stability preserving tools " @@ -2064,15 +2083,15 @@ msgstr "" "key=keyfunc, reverse=True)[0]`` y ``heapq.nlargest(1, iterable, " "key=keyfunc)``." -#: ../Doc/library/functions.rst:1057 ../Doc/library/functions.rst:1095 +#: ../Doc/library/functions.rst:1072 ../Doc/library/functions.rst:1110 msgid "The *default* keyword-only argument." msgstr "El argumento *default* sólo por palabra clave." -#: ../Doc/library/functions.rst:1060 ../Doc/library/functions.rst:1098 +#: ../Doc/library/functions.rst:1075 ../Doc/library/functions.rst:1113 msgid "The *key* can be ``None``." msgstr "*key* puede ser ``None``." -#: ../Doc/library/functions.rst:1068 +#: ../Doc/library/functions.rst:1083 msgid "" "Return a \"memory view\" object created from the given argument. See :ref:" "`typememoryview` for more information." @@ -2080,14 +2099,14 @@ msgstr "" "Retorna un objeto *\"memory view\"* creado a partir del argumento indicado. " "Para más información ver :ref:`typememoryview`." -#: ../Doc/library/functions.rst:1076 +#: ../Doc/library/functions.rst:1091 msgid "" "Return the smallest item in an iterable or the smallest of two or more " "arguments." msgstr "" "Retorna el menor elemento en un iterable o el menor de dos o más argumentos." -#: ../Doc/library/functions.rst:1079 +#: ../Doc/library/functions.rst:1094 msgid "" "If one positional argument is provided, it should be an :term:`iterable`. " "The smallest item in the iterable is returned. If two or more positional " @@ -2098,7 +2117,7 @@ msgstr "" "posicionales son indicados, el menor de los argumentos posicionales es " "retornado." -#: ../Doc/library/functions.rst:1090 +#: ../Doc/library/functions.rst:1105 msgid "" "If multiple items are minimal, the function returns the first one " "encountered. This is consistent with other sort-stability preserving tools " @@ -2110,7 +2129,7 @@ msgstr "" "preservan la estabilidad de la ordenación como ``sorted(iterable, " "key=keyfunc)[0]`` y ``heapq.nsmallest(1, iterable, key=keyfunc)``." -#: ../Doc/library/functions.rst:1105 +#: ../Doc/library/functions.rst:1120 msgid "" "Retrieve the next item from the :term:`iterator` by calling its :meth:" "`~iterator.__next__` method. If *default* is given, it is returned if the " @@ -2120,7 +2139,7 @@ msgstr "" "`~iterator.__next__`. Si se le indica *default*, éste será retornado si se " "agota el iterador, de lo contrario, se lanza un :exc:`StopIteration`." -#: ../Doc/library/functions.rst:1112 +#: ../Doc/library/functions.rst:1127 msgid "" "Return a new featureless object. :class:`object` is a base for all classes. " "It has methods that are common to all instances of Python classes. This " @@ -2130,7 +2149,7 @@ msgstr "" "las clases. Tiene todos los métodos que son comunes a todas las instancias " "de clases de Python. Esta función no acepta ningún argumento." -#: ../Doc/library/functions.rst:1118 +#: ../Doc/library/functions.rst:1133 msgid "" ":class:`object` does *not* have a :attr:`~object.__dict__`, so you can't " "assign arbitrary attributes to an instance of the :class:`object` class." @@ -2138,11 +2157,12 @@ msgstr "" ":class:`object` *no* tiene un :attr:`~object.__dict__`, así que no puedes " "asignar atributos arbitrarios a una instancia de la clase :class:`object`." -#: ../Doc/library/functions.rst:1124 +#: ../Doc/library/functions.rst:1139 +#, fuzzy msgid "" "Convert an integer number to an octal string prefixed with \"0o\". The " "result is a valid Python expression. If *x* is not a Python :class:`int` " -"object, it has to define an :meth:`__index__` method that returns an " +"object, it has to define an :meth:`~object.__index__` method that returns an " "integer. For example:" msgstr "" "Convierte un número entero a una cadena octal con prefijo \"0o\". El " @@ -2150,7 +2170,7 @@ msgstr "" "clase Python :class:`int`, tiene que tener definido un método :meth:" "`__index__` que retorne un entero. Por ejemplo:" -#: ../Doc/library/functions.rst:1134 +#: ../Doc/library/functions.rst:1149 msgid "" "If you want to convert an integer number to an octal string either with the " "prefix \"0o\" or not, you can use either of the following ways." @@ -2158,7 +2178,7 @@ msgstr "" "Si quieres convertir un número entero a una cadena octal, tanto con prefijo " "\"0o\" como sin el, puedes usar cualquiera de las siguientes formas." -#: ../Doc/library/functions.rst:1151 +#: ../Doc/library/functions.rst:1166 msgid "" "Open *file* and return a corresponding :term:`file object`. If the file " "cannot be opened, an :exc:`OSError` is raised. See :ref:`tut-files` for more " @@ -2168,7 +2188,7 @@ msgstr "" "no se puede abrir, se lanza un :exc:`OSError`. Consulte :ref:`tut-files` " "para obtener más ejemplos de cómo utilizar esta función." -#: ../Doc/library/functions.rst:1155 +#: ../Doc/library/functions.rst:1170 msgid "" "*file* is a :term:`path-like object` giving the pathname (absolute or " "relative to the current working directory) of the file to be opened or an " @@ -2183,7 +2203,7 @@ msgstr "" "que *closefd* esté puesto a ``False``.)" # codificación local actual por current locale encoding? -#: ../Doc/library/functions.rst:1161 +#: ../Doc/library/functions.rst:1176 msgid "" "*mode* is an optional string that specifies the mode in which the file is " "opened. It defaults to ``'r'`` which means open for reading in text mode. " @@ -2209,71 +2229,71 @@ msgstr "" "usa el modo binario y deja *encoding* sin especificar). Los modos " "disponibles son:" -#: ../Doc/library/functions.rst:1178 +#: ../Doc/library/functions.rst:1193 msgid "Character" msgstr "Carácter" -#: ../Doc/library/functions.rst:1178 +#: ../Doc/library/functions.rst:1193 msgid "Meaning" msgstr "Significado" -#: ../Doc/library/functions.rst:1180 +#: ../Doc/library/functions.rst:1195 msgid "``'r'``" msgstr "``’r’``" -#: ../Doc/library/functions.rst:1180 +#: ../Doc/library/functions.rst:1195 msgid "open for reading (default)" msgstr "abierto para lectura (por defecto)" -#: ../Doc/library/functions.rst:1181 +#: ../Doc/library/functions.rst:1196 msgid "``'w'``" msgstr "``'w'``" -#: ../Doc/library/functions.rst:1181 +#: ../Doc/library/functions.rst:1196 msgid "open for writing, truncating the file first" msgstr "abierto para escritura, truncando primero el fichero" -#: ../Doc/library/functions.rst:1182 +#: ../Doc/library/functions.rst:1197 msgid "``'x'``" msgstr "``'x'``" -#: ../Doc/library/functions.rst:1182 +#: ../Doc/library/functions.rst:1197 msgid "open for exclusive creation, failing if the file already exists" msgstr "abierto para creación en exclusiva, falla si el fichero ya existe" -#: ../Doc/library/functions.rst:1183 +#: ../Doc/library/functions.rst:1198 msgid "``'a'``" msgstr "``’a’``" -#: ../Doc/library/functions.rst:1183 +#: ../Doc/library/functions.rst:1198 msgid "open for writing, appending to the end of file if it exists" msgstr "abierto para escritura, añadiendo al final del fichero si este existe" -#: ../Doc/library/functions.rst:1184 +#: ../Doc/library/functions.rst:1199 msgid "``'b'``" msgstr "``'b'``" -#: ../Doc/library/functions.rst:1184 +#: ../Doc/library/functions.rst:1199 ../Doc/library/functions.rst:1343 msgid "binary mode" msgstr "modo binario" -#: ../Doc/library/functions.rst:1185 +#: ../Doc/library/functions.rst:1200 msgid "``'t'``" msgstr "``’t’``" -#: ../Doc/library/functions.rst:1185 +#: ../Doc/library/functions.rst:1200 msgid "text mode (default)" msgstr "modo texto (por defecto)" -#: ../Doc/library/functions.rst:1186 +#: ../Doc/library/functions.rst:1201 msgid "``'+'``" msgstr "``’+’``" -#: ../Doc/library/functions.rst:1186 +#: ../Doc/library/functions.rst:1201 msgid "open for updating (reading and writing)" msgstr "abierto para actualizar (lectura y escritura)" -#: ../Doc/library/functions.rst:1189 +#: ../Doc/library/functions.rst:1204 msgid "" "The default mode is ``'r'`` (open for reading text, a synonym of ``'rt'``). " "Modes ``'w+'`` and ``'w+b'`` open and truncate the file. Modes ``'r+'`` and " @@ -2283,7 +2303,7 @@ msgstr "" "de ``’rt’``. Los modos ``’w+’`` y ``’w+b’`` abren y truncan el fichero. " "Los modos ``’r+’`` y ``’r+b’`` abren el fichero sin truncarlo." -#: ../Doc/library/functions.rst:1193 +#: ../Doc/library/functions.rst:1208 msgid "" "As mentioned in the :ref:`io-overview`, Python distinguishes between binary " "and text I/O. Files opened in binary mode (including ``'b'`` in the *mode* " @@ -2301,7 +2321,7 @@ msgstr "" "como :class:`str`, tras descodificar los *bytes* usando una codificación " "dependiente de plataforma o usando el *encoding* especificado como argumento." -#: ../Doc/library/functions.rst:1203 +#: ../Doc/library/functions.rst:1218 msgid "" "Python doesn't depend on the underlying operating system's notion of text " "files; all the processing is done by Python itself, and is therefore " @@ -2312,7 +2332,7 @@ msgstr "" "de plataforma." # norma o normativa, o literalmente política? -#: ../Doc/library/functions.rst:1207 +#: ../Doc/library/functions.rst:1222 msgid "" "*buffering* is an optional integer used to set the buffering policy. Pass 0 " "to switch buffering off (only allowed in binary mode), 1 to select line " @@ -2336,12 +2356,13 @@ msgstr "" "indica el argumento *buffering*, la norma por defecto de buffering funciona " "de la siguiente manera:" -#: ../Doc/library/functions.rst:1217 +#: ../Doc/library/functions.rst:1232 +#, fuzzy msgid "" "Binary files are buffered in fixed-size chunks; the size of the buffer is " "chosen using a heuristic trying to determine the underlying device's \"block " -"size\" and falling back on :attr:`io.DEFAULT_BUFFER_SIZE`. On many systems, " -"the buffer will typically be 4096 or 8192 bytes long." +"size\" and falling back on :const:`io.DEFAULT_BUFFER_SIZE`. On many " +"systems, the buffer will typically be 4096 or 8192 bytes long." msgstr "" "Los ficheros binarios son transmitidos por búferes con tamaños fijos de " "bloque; el tamaño del búfer es escogido usando un intento heurístico para " @@ -2349,7 +2370,7 @@ msgstr "" "`io.DEFAULT_BUFFER_SIZE`. En muchos sistemas, el búfer tendrá normalmente un " "tamaño de 4096 o 8192 bytes." -#: ../Doc/library/functions.rst:1222 +#: ../Doc/library/functions.rst:1237 msgid "" "\"Interactive\" text files (files for which :meth:`~io.IOBase.isatty` " "returns ``True``) use line buffering. Other text files use the policy " @@ -2359,7 +2380,7 @@ msgstr "" "IOBase.isatty` retorna ``True``) usan buffering por líneas. Otros ficheros " "de texto emplean la norma descrita anteriormente para ficheros binarios." -#: ../Doc/library/functions.rst:1226 +#: ../Doc/library/functions.rst:1241 msgid "" "*encoding* is the name of the encoding used to decode or encode the file. " "This should only be used in text mode. The default encoding is platform " @@ -2374,7 +2395,7 @@ msgstr "" "Python. Ver el módulo :mod:`codecs` para la lista de codificaciones " "soportadas." -#: ../Doc/library/functions.rst:1232 +#: ../Doc/library/functions.rst:1247 msgid "" "*errors* is an optional string that specifies how encoding and decoding " "errors are to be handled—this cannot be used in binary mode. A variety of " @@ -2389,7 +2410,7 @@ msgstr "" "error registrado con :func:`codecs.register_error`. Los nombres estándar " "incluyen:" -#: ../Doc/library/functions.rst:1240 +#: ../Doc/library/functions.rst:1255 msgid "" "``'strict'`` to raise a :exc:`ValueError` exception if there is an encoding " "error. The default value of ``None`` has the same effect." @@ -2397,7 +2418,7 @@ msgstr "" "``'strict'`` para lanzar una excepción :exc:`ValueError` si hay un error de " "codificación. El valor por defecto, ``None``, produce el mismo efecto." -#: ../Doc/library/functions.rst:1244 +#: ../Doc/library/functions.rst:1259 msgid "" "``'ignore'`` ignores errors. Note that ignoring encoding errors can lead to " "data loss." @@ -2405,7 +2426,7 @@ msgstr "" "``'ignore'`` ignora los errores. Nótese que ignorar errores de codificación " "puede conllevar la pérdida de datos." -#: ../Doc/library/functions.rst:1247 +#: ../Doc/library/functions.rst:1262 msgid "" "``'replace'`` causes a replacement marker (such as ``'?'``) to be inserted " "where there is malformed data." @@ -2413,7 +2434,7 @@ msgstr "" "``'replace'`` provoca que se inserte un marcador de reemplazo (como " "``'?'``) en aquellos sitios donde hay datos malformados." -#: ../Doc/library/functions.rst:1250 +#: ../Doc/library/functions.rst:1265 msgid "" "``'surrogateescape'`` will represent any incorrect bytes as low surrogate " "code units ranging from U+DC80 to U+DCFF. These surrogate code units will " @@ -2427,17 +2448,18 @@ msgstr "" "de errores ``surrogateescape`` sea usado al escribir datos. Esto es útil " "para el procesado de ficheros con una codificación desconocida." -#: ../Doc/library/functions.rst:1257 +#: ../Doc/library/functions.rst:1272 +#, fuzzy msgid "" "``'xmlcharrefreplace'`` is only supported when writing to a file. Characters " "not supported by the encoding are replaced with the appropriate XML " -"character reference ``&#nnn;``." +"character reference :samp:`&#{nnn};`." msgstr "" "``'xmlcharrefreplace'`` está soportado solamente cuando se escribe a un " "fichero. Los caracteres que no estén soportados por la codificación son " "reemplazados por la referencia al carácter XML apropiado ``&#nnn;``." -#: ../Doc/library/functions.rst:1261 +#: ../Doc/library/functions.rst:1276 msgid "" "``'backslashreplace'`` replaces malformed data by Python's backslashed " "escape sequences." @@ -2445,7 +2467,7 @@ msgstr "" "``'backslashreplace'`` reemplaza datos malformados con las secuencias de " "escapes de barra invertida de Python." -#: ../Doc/library/functions.rst:1264 +#: ../Doc/library/functions.rst:1279 msgid "" "``'namereplace'`` (also only supported when writing) replaces unsupported " "characters with ``\\N{...}`` escape sequences." @@ -2453,7 +2475,7 @@ msgstr "" "``'namereplace'`` reemplaza caracteres no soportados con secuencias de " "escape ``\\N{...}`` (y también está sólo soportado en escritura)." -#: ../Doc/library/functions.rst:1272 +#: ../Doc/library/functions.rst:1287 msgid "" "*newline* determines how to parse newline characters from the stream. It can " "be ``None``, ``''``, ``'\\n'``, ``'\\r'``, and ``'\\r\\n'``. It works as " @@ -2463,7 +2485,7 @@ msgstr "" "secuencia. Puede ser ``None``, ``''``, ``'\\n'``, ``'\\r'``, y " "``'\\r\\n'``. Funciona de la siguiente manera:" -#: ../Doc/library/functions.rst:1276 +#: ../Doc/library/functions.rst:1291 msgid "" "When reading input from the stream, if *newline* is ``None``, universal " "newlines mode is enabled. Lines in the input can end in ``'\\n'``, " @@ -2483,7 +2505,7 @@ msgstr "" "cadena dada, y los finales de línea serán retornados sin traducir a la " "entidad que llama." -#: ../Doc/library/functions.rst:1284 +#: ../Doc/library/functions.rst:1299 msgid "" "When writing output to the stream, if *newline* is ``None``, any ``'\\n'`` " "characters written are translated to the system default line separator, :" @@ -2498,7 +2520,7 @@ msgstr "" "valores válidos, entonces cualquier carácter ``'\\n'`` escrito es traducido " "a la cadena indicada." -#: ../Doc/library/functions.rst:1290 +#: ../Doc/library/functions.rst:1305 msgid "" "If *closefd* is ``False`` and a file descriptor rather than a filename was " "given, the underlying file descriptor will be kept open when the file is " @@ -2510,7 +2532,7 @@ msgstr "" "cierre el fichero. Si se indica un nombre de fichero, *closefd* debe ser " "``True`` (lo es por defecto), ya que de otra forma se lanzará un error." -#: ../Doc/library/functions.rst:1295 +#: ../Doc/library/functions.rst:1310 msgid "" "A custom opener can be used by passing a callable as *opener*. The " "underlying file descriptor for the file object is then obtained by calling " @@ -2524,11 +2546,11 @@ msgstr "" "(pasando :mod:`os.open` como *opener* resulta en una funcionalidad similar a " "``None``)." -#: ../Doc/library/functions.rst:1301 +#: ../Doc/library/functions.rst:1316 msgid "The newly created file is :ref:`non-inheritable `." msgstr "El nuevo fichero creado es :ref:`no-heredable `." -#: ../Doc/library/functions.rst:1303 +#: ../Doc/library/functions.rst:1318 msgid "" "The following example uses the :ref:`dir_fd ` parameter of the :func:" "`os.open` function to open a file relative to a given directory::" @@ -2537,7 +2559,7 @@ msgstr "" "función :func:`os.open` para abrir un fichero relativo a un directorio " "dado::" -#: ../Doc/library/functions.rst:1316 +#: ../Doc/library/functions.rst:1331 msgid "" "The type of :term:`file object` returned by the :func:`open` function " "depends on the mode. When :func:`open` is used to open a file in a text " @@ -2564,7 +2586,7 @@ msgstr "" "flujo en crudo, una subclase de :class:`io.RawIOBase`, :class:`io.FileIO`, " "es retornada." -#: ../Doc/library/functions.rst:1337 +#: ../Doc/library/functions.rst:1352 msgid "" "See also the file handling modules, such as :mod:`fileinput`, :mod:`io` " "(where :func:`open` is declared), :mod:`os`, :mod:`os.path`, :mod:" @@ -2574,7 +2596,7 @@ msgstr "" "mod:`io` (donde es declarada :func:`open`), :mod:`os`, :mod:`os.path`, :mod:" "`tempfile`, y :mod:`shutil`." -#: ../Doc/library/functions.rst:1341 +#: ../Doc/library/functions.rst:1356 msgid "" "Raises an :ref:`auditing event ` ``open`` with arguments ``file``, " "``mode``, ``flags``." @@ -2582,7 +2604,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``open`` con los argumentos " "``file``, ``mode``, ``flags``." -#: ../Doc/library/functions.rst:1343 +#: ../Doc/library/functions.rst:1358 msgid "" "The ``mode`` and ``flags`` arguments may have been modified or inferred from " "the original call." @@ -2590,21 +2612,21 @@ msgstr "" "Los argumentos ``mode`` y ``flags`` pueden haber sido modificados o " "inferidos de la llamada original." -#: ../Doc/library/functions.rst:1348 +#: ../Doc/library/functions.rst:1363 msgid "The *opener* parameter was added." msgstr "El parámetro *opener* fue añadido." -#: ../Doc/library/functions.rst:1349 +#: ../Doc/library/functions.rst:1364 msgid "The ``'x'`` mode was added." msgstr "El modo ``'x'`` fue añadido." -#: ../Doc/library/functions.rst:1350 +#: ../Doc/library/functions.rst:1365 msgid ":exc:`IOError` used to be raised, it is now an alias of :exc:`OSError`." msgstr "" ":exc:`IOError` era la excepción lanzada anteriormente, ahora es un alias " "de :exc:`OSError`." -#: ../Doc/library/functions.rst:1351 +#: ../Doc/library/functions.rst:1366 msgid "" ":exc:`FileExistsError` is now raised if the file opened in exclusive " "creation mode (``'x'``) already exists." @@ -2612,11 +2634,11 @@ msgstr "" "Se lanza :exc:`FileExistsError` si ya existe el fichero abierto en modo de " "creación exclusiva (``'x'``)." -#: ../Doc/library/functions.rst:1356 +#: ../Doc/library/functions.rst:1371 msgid "The file is now non-inheritable." msgstr "El fichero ahora es no-heredable." -#: ../Doc/library/functions.rst:1360 +#: ../Doc/library/functions.rst:1375 msgid "" "If the system call is interrupted and the signal handler does not raise an " "exception, the function now retries the system call instead of raising an :" @@ -2627,16 +2649,16 @@ msgstr "" "una excepción :exc:`InterruptedError` (véase :pep:`475` para la " "justificación)." -#: ../Doc/library/functions.rst:1363 +#: ../Doc/library/functions.rst:1378 msgid "The ``'namereplace'`` error handler was added." msgstr "El gestor de errores ``'namereplace'`` fue añadido." -#: ../Doc/library/functions.rst:1367 +#: ../Doc/library/functions.rst:1382 msgid "Support added to accept objects implementing :class:`os.PathLike`." msgstr "" "Añadido el soporte para aceptar objetos que implementan :class:`os.PathLike`." -#: ../Doc/library/functions.rst:1368 +#: ../Doc/library/functions.rst:1383 msgid "" "On Windows, opening a console buffer may return a subclass of :class:`io." "RawIOBase` other than :class:`io.FileIO`." @@ -2644,11 +2666,11 @@ msgstr "" "En Windows, abrir un búfer en la consola puede retornar una subclase de :" "class:`io.RawIOBase` en vez de :class:`io.FileIO`." -#: ../Doc/library/functions.rst:1371 +#: ../Doc/library/functions.rst:1386 msgid "The ``'U'`` mode has been removed." msgstr "El modo ``'X'`` has ido eliminado." -#: ../Doc/library/functions.rst:1376 +#: ../Doc/library/functions.rst:1391 msgid "" "Given a string representing one Unicode character, return an integer " "representing the Unicode code point of that character. For example, " @@ -2660,7 +2682,7 @@ msgstr "" "``ord('a')`` retorna el entero ``97`` y ``ord('€')`` (símbolo del Euro) " "retorna ``8364``. Esta es la función inversa de :func:`chr`." -#: ../Doc/library/functions.rst:1384 +#: ../Doc/library/functions.rst:1399 msgid "" "Return *base* to the power *exp*; if *mod* is present, return *base* to the " "power *exp*, modulo *mod* (computed more efficiently than ``pow(base, exp) % " @@ -2672,7 +2694,7 @@ msgstr "" "``pow(base, exp) % mod``). La forma con dos argumentos ``pow(base, exp)`` " "es equivalente a usar el operador potencia: ``base**exp``." -#: ../Doc/library/functions.rst:1389 +#: ../Doc/library/functions.rst:1404 msgid "" "The arguments must have numeric types. With mixed operand types, the " "coercion rules for binary arithmetic operators apply. For :class:`int` " @@ -2695,7 +2717,7 @@ msgstr "" "integral, se obtiene un resultado complejo. Por ejemplo, ``pow(-9, 0.5)`` " "retorna un valor cercano a ``3j``." -#: ../Doc/library/functions.rst:1399 +#: ../Doc/library/functions.rst:1414 msgid "" "For :class:`int` operands *base* and *exp*, if *mod* is present, *mod* must " "also be of integer type and *mod* must be nonzero. If *mod* is present and " @@ -2709,12 +2731,12 @@ msgstr "" "*mod*. En ese caso, se retorna ``pow(inv_base, -exp, mod)``, dónde " "*inv_base* es la inversa al módulo *mod* de *base*." -#: ../Doc/library/functions.rst:1405 +#: ../Doc/library/functions.rst:1420 msgid "Here's an example of computing an inverse for ``38`` modulo ``97``::" msgstr "" "Aquí tienes un ejemplo de cómo calcular la inversa de ``38`` módulo ``97``::" -#: ../Doc/library/functions.rst:1412 +#: ../Doc/library/functions.rst:1427 msgid "" "For :class:`int` operands, the three-argument form of ``pow`` now allows the " "second argument to be negative, permitting computation of modular inverses." @@ -2723,14 +2745,14 @@ msgstr "" "ahora que el segundo argumento sea negativo, lo que permite el cálculo de " "inversos modulares." -#: ../Doc/library/functions.rst:1417 +#: ../Doc/library/functions.rst:1432 msgid "" "Allow keyword arguments. Formerly, only positional arguments were supported." msgstr "" "Permite argumentos de palabra clave. Anteriormente, solo se soportaba el uso " "de argumentos posicionales." -#: ../Doc/library/functions.rst:1424 +#: ../Doc/library/functions.rst:1439 msgid "" "Print *objects* to the text stream *file*, separated by *sep* and followed " "by *end*. *sep*, *end*, *file*, and *flush*, if present, must be given as " @@ -2740,7 +2762,7 @@ msgstr "" "seguidos por *end*. *sep*, *end*, *file* y *flush*, si están presentes, " "deben ser dados como argumentos por palabra clave." -#: ../Doc/library/functions.rst:1428 +#: ../Doc/library/functions.rst:1443 msgid "" "All non-keyword arguments are converted to strings like :func:`str` does and " "written to the stream, separated by *sep* and followed by *end*. Both *sep* " @@ -2754,7 +2776,7 @@ msgstr "" "pueden ser ``None``, lo cual significa que se empleen los valores por " "defecto. Si no se indica *objects*, :func:`print` escribirá *end*." -#: ../Doc/library/functions.rst:1434 +#: ../Doc/library/functions.rst:1449 msgid "" "The *file* argument must be an object with a ``write(string)`` method; if it " "is not present or ``None``, :data:`sys.stdout` will be used. Since printed " @@ -2768,24 +2790,25 @@ msgstr "" "binario. Para esos, utiliza en cambio ``file.write(…)``." # no teníamos claro si traducir o no buffered y como, asi como flushed. -#: ../Doc/library/functions.rst:1439 +#: ../Doc/library/functions.rst:1454 +#, fuzzy msgid "" -"Whether the output is buffered is usually determined by *file*, but if the " -"*flush* keyword argument is true, the stream is forcibly flushed." +"Output buffering is usually determined by *file*. However, if *flush* is " +"true, the stream is forcibly flushed." msgstr "" "Que la salida sea en búfer o no suele estar determinado por *file*, pero si " "el argumento por palabra clave *flush* es verdadero, el flujo se descarga " "forzosamente." -#: ../Doc/library/functions.rst:1442 +#: ../Doc/library/functions.rst:1458 msgid "Added the *flush* keyword argument." msgstr "Añadido el argumento por palabra clave *flush*." -#: ../Doc/library/functions.rst:1448 +#: ../Doc/library/functions.rst:1464 msgid "Return a property attribute." msgstr "Retorna un atributo propiedad." -#: ../Doc/library/functions.rst:1450 +#: ../Doc/library/functions.rst:1466 msgid "" "*fget* is a function for getting an attribute value. *fset* is a function " "for setting an attribute value. *fdel* is a function for deleting an " @@ -2796,12 +2819,12 @@ msgstr "" "eliminar el valor de un atributo. Y *doc* crea un *docstring* para el " "atributo." -#: ../Doc/library/functions.rst:1454 +#: ../Doc/library/functions.rst:1470 msgid "A typical use is to define a managed attribute ``x``::" msgstr "" "Un caso de uso típico es la definición de un atributo gestionado ``x``::" -#: ../Doc/library/functions.rst:1471 +#: ../Doc/library/functions.rst:1487 msgid "" "If *c* is an instance of *C*, ``c.x`` will invoke the getter, ``c.x = " "value`` will invoke the setter, and ``del c.x`` the deleter." @@ -2810,7 +2833,7 @@ msgstr "" "``c.x = value`` invocará el asignador (*setter*) y ``del c.x`` el suprimidor " "(*deleter*)." -#: ../Doc/library/functions.rst:1474 +#: ../Doc/library/functions.rst:1490 msgid "" "If given, *doc* will be the docstring of the property attribute. Otherwise, " "the property will copy *fget*'s docstring (if it exists). This makes it " @@ -2822,7 +2845,7 @@ msgstr "" "Esto permite crear propiedades de sólo lectura de forma fácil empleando :" "func:`property` como :term:`decorator`::" -#: ../Doc/library/functions.rst:1487 +#: ../Doc/library/functions.rst:1503 msgid "" "The ``@property`` decorator turns the :meth:`voltage` method into a " "\"getter\" for a read-only attribute with the same name, and it sets the " @@ -2832,7 +2855,7 @@ msgstr "" "\"*getter*\" para un atributo de sólo lectura con el mismo nombre, y asigna " "\"*Get the current voltage.*\" como la *docstring* de *voltage*." -#: ../Doc/library/functions.rst:1491 +#: ../Doc/library/functions.rst:1507 msgid "" "A property object has :attr:`~property.getter`, :attr:`~property.setter`, " "and :attr:`~property.deleter` methods usable as decorators that create a " @@ -2844,7 +2867,7 @@ msgstr "" "crean una copia de la propiedad con su correspondiente función de acceso " "asignada a la función decorada. Esto se explica mejor con un ejemplo::" -#: ../Doc/library/functions.rst:1513 +#: ../Doc/library/functions.rst:1529 msgid "" "This code is exactly equivalent to the first example. Be sure to give the " "additional functions the same name as the original property (``x`` in this " @@ -2854,7 +2877,7 @@ msgstr "" "a las funciones adicionales el mismo nombre que la propiedad original (``x`` " "en este caso.)" -#: ../Doc/library/functions.rst:1517 +#: ../Doc/library/functions.rst:1533 msgid "" "The returned property object also has the attributes ``fget``, ``fset``, and " "``fdel`` corresponding to the constructor arguments." @@ -2862,11 +2885,11 @@ msgstr "" "El objeto propiedad retornado tiene también los atributos ``fget``, " "``fset``, y ``fdel`` correspondientes a los argumentos del constructor." -#: ../Doc/library/functions.rst:1520 +#: ../Doc/library/functions.rst:1536 msgid "The docstrings of property objects are now writeable." msgstr "Las *docstrings* de los objetos propiedad son escribibles." -#: ../Doc/library/functions.rst:1529 +#: ../Doc/library/functions.rst:1545 msgid "" "Rather than being a function, :class:`range` is actually an immutable " "sequence type, as documented in :ref:`typesseq-range` and :ref:`typesseq`." @@ -2875,7 +2898,7 @@ msgstr "" "inmutable, tal y como está documentado en :ref:`typesseq-range` y :ref:" "`typesseq`." -#: ../Doc/library/functions.rst:1535 +#: ../Doc/library/functions.rst:1551 msgid "" "Return a string containing a printable representation of an object. For " "many types, this function makes an attempt to return a string that would " @@ -2897,7 +2920,7 @@ msgstr "" "definiendo un método :meth:`__repr__`. Si no se puede acceder a :func:`sys." "displayhook`, esta función generará :exc:`RuntimeError`." -#: ../Doc/library/functions.rst:1548 +#: ../Doc/library/functions.rst:1564 msgid "" "Return a reverse :term:`iterator`. *seq* must be an object which has a :" "meth:`__reversed__` method or supports the sequence protocol (the :meth:" @@ -2909,7 +2932,7 @@ msgstr "" "método :meth:`__len__` y el método :meth:`__getitem__` con argumentos " "enteros comenzando en ``0``)." -#: ../Doc/library/functions.rst:1556 +#: ../Doc/library/functions.rst:1572 msgid "" "Return *number* rounded to *ndigits* precision after the decimal point. If " "*ndigits* is omitted or is ``None``, it returns the nearest integer to its " @@ -2919,7 +2942,7 @@ msgstr "" "decimal. Si *ndigits* es omitido o es ``None``, retorna el entero más " "cercano a su entrada." -#: ../Doc/library/functions.rst:1560 +#: ../Doc/library/functions.rst:1576 msgid "" "For the built-in types supporting :func:`round`, values are rounded to the " "closest multiple of 10 to the power minus *ndigits*; if two multiples are " @@ -2938,7 +2961,7 @@ msgstr "" "*ndigits* o ``None``. De lo contrario, el valor retornado tiene el mismo " "tipo que *number*." -#: ../Doc/library/functions.rst:1569 +#: ../Doc/library/functions.rst:1585 msgid "" "For a general Python object ``number``, ``round`` delegates to ``number." "__round__``." @@ -2946,7 +2969,7 @@ msgstr "" "Para un objeto ``number`` general de Python, ``round`` delega a ``number." "__round__``." -#: ../Doc/library/functions.rst:1574 +#: ../Doc/library/functions.rst:1590 msgid "" "The behavior of :func:`round` for floats can be surprising: for example, " "``round(2.675, 2)`` gives ``2.67`` instead of the expected ``2.68``. This is " @@ -2960,7 +2983,7 @@ msgstr "" "de fracciones decimales no se puede representar de forma exacta como " "flotantes. Véase :ref:`tut-fp-issues` para más información." -#: ../Doc/library/functions.rst:1586 +#: ../Doc/library/functions.rst:1602 msgid "" "Return a new :class:`set` object, optionally with elements taken from " "*iterable*. ``set`` is a built-in class. See :class:`set` and :ref:`types-" @@ -2970,7 +2993,7 @@ msgstr "" "de *iterable*. ``set`` es una clase integrada (*built-in*). Véase :class:" "`set` y :ref:`types-set` para documentación sobre esta clase." -#: ../Doc/library/functions.rst:1590 +#: ../Doc/library/functions.rst:1606 msgid "" "For other containers see the built-in :class:`frozenset`, :class:`list`, :" "class:`tuple`, and :class:`dict` classes, as well as the :mod:`collections` " @@ -2980,7 +3003,7 @@ msgstr "" "`frozenset`, :class:`list`, :class:`tuple`, y :class:`dict`, así como el " "módulo :mod:`collections`." -#: ../Doc/library/functions.rst:1597 +#: ../Doc/library/functions.rst:1613 msgid "" "This is the counterpart of :func:`getattr`. The arguments are an object, a " "string, and an arbitrary value. The string may name an existing attribute " @@ -2994,7 +3017,7 @@ msgstr "" "asigna el valor al atributo si el objeto lo permite. Por ejemplo, " "``setattr(x, 'foobar', 123)`` es equivalente a ``x.foobar = 123``." -#: ../Doc/library/functions.rst:1603 +#: ../Doc/library/functions.rst:1619 msgid "" "*name* need not be a Python identifier as defined in :ref:`identifiers` " "unless the object chooses to enforce that, for example in a custom :meth:" @@ -3008,7 +3031,7 @@ msgstr "" "__slots__`. Un atributo cuyo nombre no es un identificador no será accesible " "usando la notación de puntos, pero sí a través de :func:`getattr` etc.." -#: ../Doc/library/functions.rst:1611 +#: ../Doc/library/functions.rst:1627 msgid "" "Since :ref:`private name mangling ` happens at " "compilation time, one must manually mangle a private attribute's (attributes " @@ -3019,7 +3042,7 @@ msgstr "" "atributo privado (atributos con dos guiones bajos principales) para " "recuperarlo con :func:`getattr`." -#: ../Doc/library/functions.rst:1620 +#: ../Doc/library/functions.rst:1636 msgid "" "Return a :term:`slice` object representing the set of indices specified by " "``range(start, stop, step)``. The *start* and *step* arguments default to " @@ -3042,19 +3065,25 @@ msgstr "" "Por ejemplo: ``a[start:stop:step]`` o ``a[start:stop, i]``. Véase :func:" "`itertools.islice` para la versión alternativa que retorna un iterador." -#: ../Doc/library/functions.rst:1633 +#: ../Doc/library/functions.rst:1646 +msgid "" +"Slice objects are now :term:`hashable` (provided :attr:`~slice.start`, :attr:" +"`~slice.stop`, and :attr:`~slice.step` are hashable)." +msgstr "" + +#: ../Doc/library/functions.rst:1652 msgid "Return a new sorted list from the items in *iterable*." msgstr "" "Retorna una nueva lista ordenada a partir de los elementos en *iterable*." -#: ../Doc/library/functions.rst:1635 +#: ../Doc/library/functions.rst:1654 msgid "" "Has two optional arguments which must be specified as keyword arguments." msgstr "" "Tiene dos argumentos opcionales que deben ser especificados como argumentos " "de palabra clave." -#: ../Doc/library/functions.rst:1637 +#: ../Doc/library/functions.rst:1656 msgid "" "*key* specifies a function of one argument that is used to extract a " "comparison key from each element in *iterable* (for example, ``key=str." @@ -3065,7 +3094,7 @@ msgstr "" "``key=str.lower``). El valor por defecto es ``None`` (compara los elementos " "directamente)." -#: ../Doc/library/functions.rst:1641 +#: ../Doc/library/functions.rst:1660 msgid "" "*reverse* is a boolean value. If set to ``True``, then the list elements " "are sorted as if each comparison were reversed." @@ -3073,7 +3102,7 @@ msgstr "" "*reverse* es un valor boleado. Si está puesto a ``True``, entonces la lista " "de elementos se ordena como si cada comparación fuera reversa." -#: ../Doc/library/functions.rst:1644 +#: ../Doc/library/functions.rst:1663 msgid "" "Use :func:`functools.cmp_to_key` to convert an old-style *cmp* function to a " "*key* function." @@ -3081,7 +3110,7 @@ msgstr "" "Puedes usar :func:`functools.cmp_to_key` para convertir las funciones *cmp* " "a la antigua usanza en funciones *key*." -#: ../Doc/library/functions.rst:1647 +#: ../Doc/library/functions.rst:1666 msgid "" "The built-in :func:`sorted` function is guaranteed to be stable. A sort is " "stable if it guarantees not to change the relative order of elements that " @@ -3094,7 +3123,7 @@ msgstr "" "ayuda para ordenar en múltiples pases (por ejemplo, ordenar por " "departamento, después por el escalafón de salario)." -#: ../Doc/library/functions.rst:1652 +#: ../Doc/library/functions.rst:1671 msgid "" "The sort algorithm uses only ``<`` comparisons between items. While " "defining an :meth:`~object.__lt__` method will suffice for sorting, :PEP:`8` " @@ -3114,18 +3143,18 @@ msgstr "" "seis comparaciones también ayuda a evitar confusiones por comparaciones de " "tipos mixtos que pueden llamar reflejado al método :meth:`~object.__gt__`." -#: ../Doc/library/functions.rst:1661 +#: ../Doc/library/functions.rst:1680 msgid "" "For sorting examples and a brief sorting tutorial, see :ref:`sortinghowto`." msgstr "" "Para ejemplos de ordenamiento y para un breve tutorial sobre ello, ver :ref:" "`sortinghowto`." -#: ../Doc/library/functions.rst:1665 +#: ../Doc/library/functions.rst:1684 msgid "Transform a method into a static method." msgstr "Transforma un método en un método estático." -#: ../Doc/library/functions.rst:1667 +#: ../Doc/library/functions.rst:1686 msgid "" "A static method does not receive an implicit first argument. To declare a " "static method, use this idiom::" @@ -3133,7 +3162,7 @@ msgstr "" "Un método estático no recibe un primer argumento implícito. Para declarar un " "método estático, utiliza esta expresión::" -#: ../Doc/library/functions.rst:1674 +#: ../Doc/library/functions.rst:1693 msgid "" "The ``@staticmethod`` form is a function :term:`decorator` -- see :ref:" "`function` for details." @@ -3141,7 +3170,7 @@ msgstr "" "La forma ``@staticmethod`` es una función :term:`decorator` — ver :ref:" "`function` para más detalles." -#: ../Doc/library/functions.rst:1677 +#: ../Doc/library/functions.rst:1696 msgid "" "A static method can be called either on the class (such as ``C.f()``) or on " "an instance (such as ``C().f()``). Moreover, they can be called as regular " @@ -3151,7 +3180,7 @@ msgstr "" "una instancia (como ``C().f()``). Además, puede ser llamado como una función " "regular (como ``f()``)." -#: ../Doc/library/functions.rst:1681 +#: ../Doc/library/functions.rst:1700 msgid "" "Static methods in Python are similar to those found in Java or C++. Also, " "see :func:`classmethod` for a variant that is useful for creating alternate " @@ -3161,7 +3190,7 @@ msgstr "" "Java o C++. Ver también :func:`classmethod` para una variante que es útil " "para crear constructores de clase alternativos." -#: ../Doc/library/functions.rst:1685 +#: ../Doc/library/functions.rst:1704 msgid "" "Like all decorators, it is also possible to call ``staticmethod`` as a " "regular function and do something with its result. This is needed in some " @@ -3175,11 +3204,11 @@ msgstr "" "clase y quieres evitar la transformación automática a un método de la " "instancia. Para dichos casos, emplea esta expresión::" -#: ../Doc/library/functions.rst:1697 +#: ../Doc/library/functions.rst:1716 msgid "For more information on static methods, see :ref:`types`." msgstr "Para más información sobre métodos estáticos, ver :ref:`types`." -#: ../Doc/library/functions.rst:1699 +#: ../Doc/library/functions.rst:1718 msgid "" "Static methods now inherit the method attributes (``__module__``, " "``__name__``, ``__qualname__``, ``__doc__`` and ``__annotations__``), have a " @@ -3190,14 +3219,14 @@ msgstr "" "``__annotations__``), tienen un nuevo atributo ``__wrapped__`` y ahora son " "invocables como funciones regulares." -#: ../Doc/library/functions.rst:1714 +#: ../Doc/library/functions.rst:1733 msgid "" "Return a :class:`str` version of *object*. See :func:`str` for details." msgstr "" "Retorna una versión :class:`str` del *object*. Ver :func:`str` para más " "detalles." -#: ../Doc/library/functions.rst:1716 +#: ../Doc/library/functions.rst:1735 msgid "" "``str`` is the built-in string :term:`class`. For general information about " "strings, see :ref:`textseq`." @@ -3205,7 +3234,7 @@ msgstr "" "``str`` es la :term:`class` cadena built-in . Para información general sobre " "strings, ver :ref:`textseq`." -#: ../Doc/library/functions.rst:1722 +#: ../Doc/library/functions.rst:1741 msgid "" "Sums *start* and the items of an *iterable* from left to right and returns " "the total. The *iterable*'s items are normally numbers, and the start value " @@ -3215,7 +3244,7 @@ msgstr "" "Retorna el total. Los elementos del *iterable* son normalmente números, y el " "valor *start* no puede ser una cadena." -#: ../Doc/library/functions.rst:1726 +#: ../Doc/library/functions.rst:1745 msgid "" "For some use cases, there are good alternatives to :func:`sum`. The " "preferred, fast way to concatenate a sequence of strings is by calling ``''." @@ -3229,13 +3258,19 @@ msgstr "" "extendida, ver :func:`math.fsum`\\. Para concatenar series de iterabais, " "considera usar :func:`itertools.chain`." -#: ../Doc/library/functions.rst:1732 +#: ../Doc/library/functions.rst:1751 msgid "The *start* parameter can be specified as a keyword argument." msgstr "" "El parámetro *start* puede ser especificado como un argumento de palabra " "clave." -#: ../Doc/library/functions.rst:1738 +#: ../Doc/library/functions.rst:1754 +msgid "" +"Summation of floats switched to an algorithm that gives higher accuracy on " +"most builds." +msgstr "" + +#: ../Doc/library/functions.rst:1761 msgid "" "Return a proxy object that delegates method calls to a parent or sibling " "class of *type*. This is useful for accessing inherited methods that have " @@ -3245,7 +3280,7 @@ msgstr "" "hermanas de *type*. Esto es útil para acceder métodos heredados que han sido " "invalidados en una clase." -#: ../Doc/library/functions.rst:1742 +#: ../Doc/library/functions.rst:1765 msgid "" "The *object_or_type* determines the :term:`method resolution order` to be " "searched. The search starts from the class right after the *type*." @@ -3253,7 +3288,7 @@ msgstr "" "*object-or-type* determina el :term:`method resolution order` a ser buscado. " "La búsqueda empieza desde la clase justo después de *type*." -#: ../Doc/library/functions.rst:1746 +#: ../Doc/library/functions.rst:1769 msgid "" "For example, if :attr:`~class.__mro__` of *object_or_type* is ``D -> B -> C -" "> A -> object`` and the value of *type* is ``B``, then :func:`super` " @@ -3263,7 +3298,7 @@ msgstr "" "> A -> object`` y el valor de *type* es ``B``, entonces :func:`super` busca " "``C -> A -> object``." -#: ../Doc/library/functions.rst:1750 +#: ../Doc/library/functions.rst:1773 msgid "" "The :attr:`~class.__mro__` attribute of the *object_or_type* lists the " "method resolution search order used by both :func:`getattr` and :func:" @@ -3275,7 +3310,7 @@ msgstr "" "El atributo es dinámico y puede cambiar en cuanto la jerarquía de herencia " "se actualiza." -#: ../Doc/library/functions.rst:1755 +#: ../Doc/library/functions.rst:1778 msgid "" "If the second argument is omitted, the super object returned is unbound. If " "the second argument is an object, ``isinstance(obj, type)`` must be true. " @@ -3287,7 +3322,7 @@ msgstr "" "debe ser verdadero. Si el segundo argumento es un tipo, ``issubclass(type2, " "type)`` debe ser verdadero (esto es útil para classmethods)." -#: ../Doc/library/functions.rst:1760 +#: ../Doc/library/functions.rst:1783 msgid "" "There are two typical use cases for *super*. In a class hierarchy with " "single inheritance, *super* can be used to refer to parent classes without " @@ -3300,7 +3335,7 @@ msgstr "" "mantener. Este uso es muy similar al de *super* en otros lenguajes de " "programación." -#: ../Doc/library/functions.rst:1765 +#: ../Doc/library/functions.rst:1788 msgid "" "The second use case is to support cooperative multiple inheritance in a " "dynamic execution environment. This use case is unique to Python and is not " @@ -3323,11 +3358,11 @@ msgstr "" "y porque ese orden puede incluir clases hermanas que son desconocidas antes " "de la ejecución)." -#: ../Doc/library/functions.rst:1775 +#: ../Doc/library/functions.rst:1798 msgid "For both use cases, a typical superclass call looks like this::" msgstr "Para ambos casos, la llamada típica de una superclase se parece a::" -#: ../Doc/library/functions.rst:1782 +#: ../Doc/library/functions.rst:1805 msgid "" "In addition to method lookups, :func:`super` also works for attribute " "lookups. One possible use case for this is calling :term:`descriptors " @@ -3337,7 +3372,7 @@ msgstr "" "búsquedas de atributos. Un caso de uso posible para esto es llamar a :term:" "`descriptores ` en una clase padre o hermana." -#: ../Doc/library/functions.rst:1786 +#: ../Doc/library/functions.rst:1809 msgid "" "Note that :func:`super` is implemented as part of the binding process for " "explicit dotted attribute lookups such as ``super().__getitem__(name)``. It " @@ -3354,7 +3389,7 @@ msgstr "" "definida para búsquedas implícitas usando declaraciones o operadores como " "``super()[name]``." -#: ../Doc/library/functions.rst:1793 +#: ../Doc/library/functions.rst:1816 msgid "" "Also note that, aside from the zero argument form, :func:`super` is not " "limited to use inside methods. The two argument form specifies the " @@ -3371,7 +3406,7 @@ msgstr "" "correctamente la clase que está siendo definida, así como accediendo a la " "instancia actual para métodos ordinarios." -#: ../Doc/library/functions.rst:1800 +#: ../Doc/library/functions.rst:1823 msgid "" "For practical suggestions on how to design cooperative classes using :func:" "`super`, see `guide to using super() `_." -#: ../Doc/library/functions.rst:1810 +#: ../Doc/library/functions.rst:1833 msgid "" "Rather than being a function, :class:`tuple` is actually an immutable " "sequence type, as documented in :ref:`typesseq-tuple` and :ref:`typesseq`." @@ -3390,7 +3425,7 @@ msgstr "" "inmutable, tal y como está documentado en :ref:`typesseq-tuple` y :ref:" "`typesseq`." -#: ../Doc/library/functions.rst:1819 +#: ../Doc/library/functions.rst:1842 msgid "" "With one argument, return the type of an *object*. The return value is a " "type object and generally the same object as returned by :attr:`object." @@ -3400,7 +3435,7 @@ msgstr "" "objeto tipo y generalmente el mismo objeto que el retornado por :attr:" "`object.__class__ `." -#: ../Doc/library/functions.rst:1823 +#: ../Doc/library/functions.rst:1846 msgid "" "The :func:`isinstance` built-in function is recommended for testing the type " "of an object, because it takes subclasses into account." @@ -3408,7 +3443,7 @@ msgstr "" "La función integrada :func:`isinstance` es la recomendada para testear el " "tipo de un objeto, ya que tiene en cuenta las subclases." -#: ../Doc/library/functions.rst:1827 +#: ../Doc/library/functions.rst:1850 msgid "" "With three arguments, return a new type object. This is essentially a " "dynamic form of the :keyword:`class` statement. The *name* string is the " @@ -3431,11 +3466,11 @@ msgstr "" "__dict__`. Las siguientes dos declaraciones crean objetos idénticos :class:" "`type`:" -#: ../Doc/library/functions.rst:1842 +#: ../Doc/library/functions.rst:1865 msgid "See also :ref:`bltin-type-objects`." msgstr "Ver también :ref:`bltin-type-objects`." -#: ../Doc/library/functions.rst:1844 +#: ../Doc/library/functions.rst:1867 msgid "" "Keyword arguments provided to the three argument form are passed to the " "appropriate metaclass machinery (usually :meth:`~object.__init_subclass__`) " @@ -3447,11 +3482,11 @@ msgstr "" "meth:`~object.__init_subclass__`) de la misma manera que lo harían las " "palabras clave en una definición de clase (además de *metaclase*)." -#: ../Doc/library/functions.rst:1849 +#: ../Doc/library/functions.rst:1872 msgid "See also :ref:`class-customization`." msgstr "Ver también :ref:`class-customization`." -#: ../Doc/library/functions.rst:1851 +#: ../Doc/library/functions.rst:1874 msgid "" "Subclasses of :class:`type` which don't override ``type.__new__`` may no " "longer use the one-argument form to get the type of an object." @@ -3459,7 +3494,7 @@ msgstr "" "Subclases de :class:`type` que no sobrecarguen ``type.__new__`` ya no pueden " "usar la forma con un argumento para obtener el tipo de un objeto." -#: ../Doc/library/functions.rst:1858 +#: ../Doc/library/functions.rst:1881 msgid "" "Return the :attr:`~object.__dict__` attribute for a module, class, instance, " "or any other object with a :attr:`~object.__dict__` attribute." @@ -3467,7 +3502,7 @@ msgstr "" "Retorna el atributo :attr:`~object.__dict__` para un módulo, clase, " "instancia o cualquier otro objeto con un atributo :attr:`~object.__dict__`." -#: ../Doc/library/functions.rst:1861 +#: ../Doc/library/functions.rst:1884 msgid "" "Objects such as modules and instances have an updateable :attr:`~object." "__dict__` attribute; however, other objects may have write restrictions on " @@ -3480,7 +3515,7 @@ msgstr "" "que usan :class:`types.MappingProxyType` para evitar actualizaciones " "directas del diccionario)." -#: ../Doc/library/functions.rst:1866 +#: ../Doc/library/functions.rst:1889 msgid "" "Without an argument, :func:`vars` acts like :func:`locals`. Note, the " "locals dictionary is only useful for reads since updates to the locals " @@ -3490,7 +3525,7 @@ msgstr "" "que el diccionario de *locals* solo es útil para lecturas ya que las " "actualizaciones del diccionario de *locals* son ignoradas." -#: ../Doc/library/functions.rst:1870 +#: ../Doc/library/functions.rst:1893 msgid "" "A :exc:`TypeError` exception is raised if an object is specified but it " "doesn't have a :attr:`~object.__dict__` attribute (for example, if its class " @@ -3500,7 +3535,7 @@ msgstr "" "tiene un atributo :attr:`~object.__dict__` (por ejemplo, si su clase define " "el atributo :attr:`~object.__slots__`)." -#: ../Doc/library/functions.rst:1876 +#: ../Doc/library/functions.rst:1899 msgid "" "Iterate over several iterables in parallel, producing tuples with an item " "from each one." @@ -3508,11 +3543,11 @@ msgstr "" "Iterar sobre varios iterables en paralelo, generando tuplas con un item para " "cada una." -#: ../Doc/library/functions.rst:1879 +#: ../Doc/library/functions.rst:1902 msgid "Example::" msgstr "Ejemplo::" -#: ../Doc/library/functions.rst:1888 +#: ../Doc/library/functions.rst:1911 msgid "" "More formally: :func:`zip` returns an iterator of tuples, where the *i*-th " "tuple contains the *i*-th element from each of the argument iterables." @@ -3521,7 +3556,7 @@ msgstr "" "*i*-ésima contiene el elemento *i*-ésimo de cada uno de los argumentos " "iterables." -#: ../Doc/library/functions.rst:1891 +#: ../Doc/library/functions.rst:1914 msgid "" "Another way to think of :func:`zip` is that it turns rows into columns, and " "columns into rows. This is similar to `transposing a matrix `_." -#: ../Doc/library/functions.rst:1895 +#: ../Doc/library/functions.rst:1918 msgid "" ":func:`zip` is lazy: The elements won't be processed until the iterable is " "iterated on, e.g. by a :keyword:`!for` loop or by wrapping in a :class:" @@ -3541,7 +3576,7 @@ msgstr "" "iterable sea iterado, por ejemplo, mediante un bucle :keyword:`!for` o " "envolviendo en un :class:`list`." -#: ../Doc/library/functions.rst:1899 +#: ../Doc/library/functions.rst:1922 msgid "" "One thing to consider is that the iterables passed to :func:`zip` could have " "different lengths; sometimes by design, and sometimes because of a bug in " @@ -3553,7 +3588,7 @@ msgstr "" "el código que preparó estos iterables. Python ofrece tres enfoques " "diferentes para tratar este problema:" -#: ../Doc/library/functions.rst:1904 +#: ../Doc/library/functions.rst:1927 msgid "" "By default, :func:`zip` stops when the shortest iterable is exhausted. It " "will ignore the remaining items in the longer iterables, cutting off the " @@ -3563,7 +3598,7 @@ msgstr "" "más corto. Ignorará los elementos restantes en las iteraciones más largas, " "cortando el resultado a la longitud del iterable más corto:" -#: ../Doc/library/functions.rst:1911 +#: ../Doc/library/functions.rst:1934 msgid "" ":func:`zip` is often used in cases where the iterables are assumed to be of " "equal length. In such cases, it's recommended to use the ``strict=True`` " @@ -3573,15 +3608,13 @@ msgstr "" "son de igual longitud. En tales casos, se recomienda usar la opción " "``strict=True``. Su salida es la misma que la normal :func:`zip`::" -#: ../Doc/library/functions.rst:1918 +#: ../Doc/library/functions.rst:1941 msgid "" -"Unlike the default behavior, it checks that the lengths of iterables are " -"identical, raising a :exc:`ValueError` if they aren't:" +"Unlike the default behavior, it raises a :exc:`ValueError` if one iterable " +"is exhausted before the others:" msgstr "" -"A diferencia del comportamiento predeterminado, comprueba que las longitudes " -"de las iteraciones son idénticas, lanzando un :exc:`ValueError` si no lo son:" -#: ../Doc/library/functions.rst:1926 +#: ../Doc/library/functions.rst:1959 msgid "" "Without the ``strict=True`` argument, any bug that results in iterables of " "different lengths will be silenced, possibly manifesting as a hard-to-find " @@ -3591,7 +3624,7 @@ msgstr "" "de diferentes longitudes será silenciado, posiblemente manifestándose como " "un error difícil de encontrar en otra parte del programa." -#: ../Doc/library/functions.rst:1930 +#: ../Doc/library/functions.rst:1963 msgid "" "Shorter iterables can be padded with a constant value to make all the " "iterables have the same length. This is done by :func:`itertools." @@ -3601,7 +3634,7 @@ msgstr "" "que todas las iteraciones tengan la misma longitud. Esto lo hace :func:" "`itertools.zip_longest`." -#: ../Doc/library/functions.rst:1934 +#: ../Doc/library/functions.rst:1967 msgid "" "Edge cases: With a single iterable argument, :func:`zip` returns an iterator " "of 1-tuples. With no arguments, it returns an empty iterator." @@ -3609,11 +3642,11 @@ msgstr "" "Casos extremos: con un único argumento iterable, :func:`zip` retorna un " "iterador de 1-tuplas. Sin argumentos, retorna un iterador vacío." -#: ../Doc/library/functions.rst:1937 +#: ../Doc/library/functions.rst:1970 msgid "Tips and tricks:" msgstr "Consejos y trucos:" -#: ../Doc/library/functions.rst:1939 +#: ../Doc/library/functions.rst:1972 msgid "" "The left-to-right evaluation order of the iterables is guaranteed. This " "makes possible an idiom for clustering a data series into n-length groups " @@ -3628,7 +3661,7 @@ msgstr "" "resultado de ``n`` llamadas al iterador. Esto tiene el efecto de dividir la " "entrada en trozos de longitud *n*." -#: ../Doc/library/functions.rst:1945 +#: ../Doc/library/functions.rst:1978 msgid "" ":func:`zip` in conjunction with the ``*`` operator can be used to unzip a " "list::" @@ -3636,11 +3669,11 @@ msgstr "" ":func:`zip` en conjunción con el operador ``*`` puede usar para " "descomprimir (*unzip*) una lista::" -#: ../Doc/library/functions.rst:1956 +#: ../Doc/library/functions.rst:1989 msgid "Added the ``strict`` argument." msgstr "Añadido el argumento ``strict``." -#: ../Doc/library/functions.rst:1968 +#: ../Doc/library/functions.rst:2001 msgid "" "This is an advanced function that is not needed in everyday Python " "programming, unlike :func:`importlib.import_module`." @@ -3648,7 +3681,7 @@ msgstr "" "Ésta es una función avanzada que no se necesita en el uso cotidiano de " "programación en Python, a diferencia de :func:`importlib.import_module`." -#: ../Doc/library/functions.rst:1971 +#: ../Doc/library/functions.rst:2004 msgid "" "This function is invoked by the :keyword:`import` statement. It can be " "replaced (by importing the :mod:`builtins` module and assigning to " @@ -3669,7 +3702,7 @@ msgstr "" "siendo utilizada. El uso directo de :func:`__import__` tampoco está " "recomendado y se prefiere :func:`importlib.import_module`." -#: ../Doc/library/functions.rst:1980 +#: ../Doc/library/functions.rst:2013 msgid "" "The function imports the module *name*, potentially using the given " "*globals* and *locals* to determine how to interpret the name in a package " @@ -3686,7 +3719,7 @@ msgstr "" "para determinar el contexto en un paquete de la declaración :keyword:" "`import`." -#: ../Doc/library/functions.rst:1987 +#: ../Doc/library/functions.rst:2020 msgid "" "*level* specifies whether to use absolute or relative imports. ``0`` (the " "default) means only perform absolute imports. Positive values for *level* " @@ -3700,7 +3733,7 @@ msgstr "" "módulo para buscar llamando a :func:`__import__` (ver :pep:`328` para los " "detalles)." -#: ../Doc/library/functions.rst:1993 +#: ../Doc/library/functions.rst:2026 msgid "" "When the *name* variable is of the form ``package.module``, normally, the " "top-level package (the name up till the first dot) is returned, *not* the " @@ -3712,7 +3745,7 @@ msgstr "" "*no* el modulo llamado por *name*. Sin embargo, cuando un argumento " "*fromlist* no vacío es indicado, el módulo llamado por *name* es retornado." -#: ../Doc/library/functions.rst:1998 +#: ../Doc/library/functions.rst:2031 msgid "" "For example, the statement ``import spam`` results in bytecode resembling " "the following code::" @@ -3720,11 +3753,11 @@ msgstr "" "Por ejemplo, la declaración ``import spam`` resulta en un bytecode similar " "al siguiente código::" -#: ../Doc/library/functions.rst:2003 +#: ../Doc/library/functions.rst:2036 msgid "The statement ``import spam.ham`` results in this call::" msgstr "La declaración ``import spam.ham`` resulta en esta llamada::" -#: ../Doc/library/functions.rst:2007 +#: ../Doc/library/functions.rst:2040 msgid "" "Note how :func:`__import__` returns the toplevel module here because this is " "the object that is bound to a name by the :keyword:`import` statement." @@ -3733,7 +3766,7 @@ msgstr "" "caso porque este es el objeto que está enlazado a un nombre por la " "declaración :keyword:`import`." -#: ../Doc/library/functions.rst:2010 +#: ../Doc/library/functions.rst:2043 msgid "" "On the other hand, the statement ``from spam.ham import eggs, sausage as " "saus`` results in ::" @@ -3741,7 +3774,7 @@ msgstr "" "Por otra parte, la declaración ``from spam.ham import eggs, sausage as " "saus`` resulta en ::" -#: ../Doc/library/functions.rst:2017 +#: ../Doc/library/functions.rst:2050 msgid "" "Here, the ``spam.ham`` module is returned from :func:`__import__`. From " "this object, the names to import are retrieved and assigned to their " @@ -3751,7 +3784,7 @@ msgstr "" "este objeto, los nombres a importar son obtenidos y asignados a sus nombres " "respectivos." -#: ../Doc/library/functions.rst:2021 +#: ../Doc/library/functions.rst:2054 msgid "" "If you simply want to import a module (potentially within a package) by " "name, use :func:`importlib.import_module`." @@ -3759,7 +3792,7 @@ msgstr "" "Si simplemente quieres importar un módulo (potencialmente dentro de un " "paquete) por nombre, usa :func:`importlib.import_module`." -#: ../Doc/library/functions.rst:2024 +#: ../Doc/library/functions.rst:2057 msgid "" "Negative values for *level* are no longer supported (which also changes the " "default value to 0)." @@ -3767,7 +3800,7 @@ msgstr "" "Valores negativos para *level* ya no están soportados (lo que también cambia " "el valor por defecto a 0)." -#: ../Doc/library/functions.rst:2028 +#: ../Doc/library/functions.rst:2061 msgid "" "When the command line options :option:`-E` or :option:`-I` are being used, " "the environment variable :envvar:`PYTHONCASEOK` is now ignored." @@ -3775,11 +3808,11 @@ msgstr "" "Cuando se utilizan las opciones de línea de comando :option:`-E` o :option:`-" "I`, la variable de entorno :envvar:`PYTHONCASEOK` ahora se ignora." -#: ../Doc/library/functions.rst:2033 +#: ../Doc/library/functions.rst:2066 msgid "Footnotes" msgstr "Notas al pie" -#: ../Doc/library/functions.rst:2034 +#: ../Doc/library/functions.rst:2067 msgid "" "Note that the parser only accepts the Unix-style end of line convention. If " "you are reading the code from a file, make sure to use newline conversion " @@ -3789,3 +3822,160 @@ msgstr "" "tipo Unix. Si estás leyendo el código de un fichero, asegúrate de usar la el " "modo de conversión de nueva línea para convertir las líneas de tipo Windows " "o Mac." + +#: ../Doc/library/functions.rst:152 +msgid "Boolean" +msgstr "" + +#: ../Doc/library/functions.rst:152 ../Doc/library/functions.rst:1840 +msgid "type" +msgstr "" + +#: ../Doc/library/functions.rst:572 +#, fuzzy +msgid "built-in function" +msgstr "Funciones Built-in" + +#: ../Doc/library/functions.rst:572 +msgid "exec" +msgstr "" + +#: ../Doc/library/functions.rst:649 +msgid "NaN" +msgstr "" + +#: ../Doc/library/functions.rst:649 +msgid "Infinity" +msgstr "" + +#: ../Doc/library/functions.rst:714 +msgid "__format__" +msgstr "" + +#: ../Doc/library/functions.rst:714 ../Doc/library/functions.rst:1725 +msgid "string" +msgstr "" + +#: ../Doc/library/functions.rst:714 +#, fuzzy +msgid "format() (built-in function)" +msgstr "Funciones Built-in" + +#: ../Doc/library/functions.rst:1161 +msgid "file object" +msgstr "" + +#: ../Doc/library/functions.rst:1161 ../Doc/library/functions.rst:1282 +#, fuzzy +msgid "open() built-in function" +msgstr "Funciones Built-in" + +#: ../Doc/library/functions.rst:1189 +msgid "file" +msgstr "" + +#: ../Doc/library/functions.rst:1189 +msgid "modes" +msgstr "" + +#: ../Doc/library/functions.rst:1282 +msgid "universal newlines" +msgstr "" + +#: ../Doc/library/functions.rst:1343 +msgid "line-buffered I/O" +msgstr "" + +#: ../Doc/library/functions.rst:1343 +msgid "unbuffered I/O" +msgstr "" + +#: ../Doc/library/functions.rst:1343 +msgid "buffer size, I/O" +msgstr "" + +#: ../Doc/library/functions.rst:1343 +msgid "I/O control" +msgstr "" + +#: ../Doc/library/functions.rst:1343 +msgid "buffering" +msgstr "" + +#: ../Doc/library/functions.rst:1343 +#, fuzzy +msgid "text mode" +msgstr "modo texto (por defecto)" + +#: ../Doc/library/functions.rst:1343 ../Doc/library/functions.rst:1995 +msgid "module" +msgstr "" + +#: ../Doc/library/functions.rst:1343 +msgid "sys" +msgstr "" + +#: ../Doc/library/functions.rst:1725 +#, fuzzy +msgid "str() (built-in function)" +msgstr "Funciones Built-in" + +#: ../Doc/library/functions.rst:1840 +#, fuzzy +msgid "object" +msgstr ":func:`object`" + +#: ../Doc/library/functions.rst:1995 +msgid "statement" +msgstr "" + +#: ../Doc/library/functions.rst:1995 +msgid "import" +msgstr "" + +#: ../Doc/library/functions.rst:1995 +#, fuzzy +msgid "builtins" +msgstr "Funciones Built-in" + +# si he entendido correctamente, radix es una manera latina de referirse a una +# base aritmetica (https://en.wikipedia.org/wiki/Radix) luego en español +# aunque quede redundante debería dejar de base *base* pq una cosa es la cosa +# y la otra el argumento. Lo de las bases tampoco me convence la +# explicación/traducción +#~ msgid "" +#~ "If *x* is not a number or if *base* is given, then *x* must be a string, :" +#~ "class:`bytes`, or :class:`bytearray` instance representing an :ref:" +#~ "`integer literal ` in radix *base*. Optionally, the literal " +#~ "can be preceded by ``+`` or ``-`` (with no space in between) and " +#~ "surrounded by whitespace. A base-n literal consists of the digits 0 to " +#~ "n-1, with ``a`` to ``z`` (or ``A`` to ``Z``) having values 10 to 35. The " +#~ "default *base* is 10. The allowed values are 0 and 2--36. Base-2, -8, and " +#~ "-16 literals can be optionally prefixed with ``0b``/``0B``, ``0o``/" +#~ "``0O``, or ``0x``/``0X``, as with integer literals in code. Base 0 means " +#~ "to interpret exactly as a code literal, so that the actual base is 2, 8, " +#~ "10, or 16, and so that ``int('010', 0)`` is not legal, while " +#~ "``int('010')`` is, as well as ``int('010', 8)``." +#~ msgstr "" +#~ "Si *x* no es un número o si se indica *base*, entonces *x* debe ser una " +#~ "cadena, una instancia de :class:`bytes`, o una de :class:`bytearray` que " +#~ "representa un :ref:`integer literal ` de base *base*. " +#~ "Opcionalmente, el literal puede ser precedido de ``+`` or ``-`` (sin " +#~ "espacios entre el número y el signo) y rodeados por espacio en blanco. Un " +#~ "literal de base-n consiste en los dígitos de 0 a n-1, con valores entre " +#~ "10 y 35 para los caracteres de ``a`` a ``z`` (o de ``A`` a ``Z``). La " +#~ "*base* por defecto es 10. Los valores permitidos son 0 y 2--36. Los " +#~ "literales de base-2, -8 y -16 pueden incluir opcionalmente un prefijo " +#~ "``0b``/``0B``, ``0o``/``0O``, o ``0x``/``0X``, de igual forma que los " +#~ "literales enteros en el código. Base-0 indica que se debe interpretar " +#~ "exactamente como un literal de código, de forma que la base real es 2, 8, " +#~ "10 o 16, y que ``int('010', 0)`` no sea legal, mientras que " +#~ "``int('010')`` sí lo es, así como ``int('010', 8)``." + +#~ msgid "" +#~ "Unlike the default behavior, it checks that the lengths of iterables are " +#~ "identical, raising a :exc:`ValueError` if they aren't:" +#~ msgstr "" +#~ "A diferencia del comportamiento predeterminado, comprueba que las " +#~ "longitudes de las iteraciones son idénticas, lanzando un :exc:" +#~ "`ValueError` si no lo son:" diff --git a/library/functools.po b/library/functools.po index fbb017c2ac..ed71794dee 100644 --- a/library/functools.po +++ b/library/functools.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-12-12 12:55-0500\n" "Last-Translator: Adolfo Hristo David Roque Gámez \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/functools.rst:2 msgid "" @@ -68,11 +68,25 @@ msgstr "" "función. Debido a que nunca necesita desalojar los valores antiguos, esto es " "más pequeño y más rápido que :func:`lru_cache()` con un límite de tamaño." -#: ../Doc/library/functools.rst:39 ../Doc/library/functools.rst:267 +#: ../Doc/library/functools.rst:39 ../Doc/library/functools.rst:291 msgid "For example::" msgstr "Por ejemplo::" -#: ../Doc/library/functools.rst:57 +#: ../Doc/library/functools.rst:52 ../Doc/library/functools.rst:158 +msgid "" +"The cache is threadsafe so that the wrapped function can be used in multiple " +"threads. This means that the underlying data structure will remain coherent " +"during concurrent updates." +msgstr "" + +#: ../Doc/library/functools.rst:56 ../Doc/library/functools.rst:162 +msgid "" +"It is possible for the wrapped function to be called more than once if " +"another thread makes an additional call before the initial call has been " +"completed and cached." +msgstr "" + +#: ../Doc/library/functools.rst:65 msgid "" "Transform a method of a class into a property whose value is computed once " "and then cached as a normal attribute for the life of the instance. Similar " @@ -85,12 +99,12 @@ msgstr "" "propiedades calculadas costosas de instancias que de otra manera son " "efectivamente inmutables." -#: ../Doc/library/functools.rst:62 ../Doc/library/functools.rst:127 -#: ../Doc/library/functools.rst:359 +#: ../Doc/library/functools.rst:70 ../Doc/library/functools.rst:142 +#: ../Doc/library/functools.rst:383 msgid "Example::" msgstr "Ejemplo::" -#: ../Doc/library/functools.rst:73 +#: ../Doc/library/functools.rst:81 msgid "" "The mechanics of :func:`cached_property` are somewhat different from :func:" "`property`. A regular property blocks attribute writes unless a setter is " @@ -101,7 +115,7 @@ msgstr "" "se defina un establecedor. Por el contrario, *cached_property* permite " "escrituras." -#: ../Doc/library/functools.rst:77 +#: ../Doc/library/functools.rst:85 msgid "" "The *cached_property* decorator only runs on lookups and only when an " "attribute of the same name doesn't exist. When it does run, the " @@ -115,7 +129,7 @@ msgstr "" "atributos posteriores tienen prioridad sobre el método *cached_property* y " "funciona como un atributo normal." -#: ../Doc/library/functools.rst:83 +#: ../Doc/library/functools.rst:91 msgid "" "The cached value can be cleared by deleting the attribute. This allows the " "*cached_property* method to run again." @@ -123,7 +137,18 @@ msgstr "" "El valor en caché se puede borrar eliminando el atributo. Esto permite que " "el método *cached_property* se ejecute nuevamente." -#: ../Doc/library/functools.rst:86 +#: ../Doc/library/functools.rst:94 +msgid "" +"The *cached_property* does not prevent a possible race condition in multi-" +"threaded usage. The getter function could run more than once on the same " +"instance, with the latest run setting the cached value. If the cached " +"property is idempotent or otherwise not harmful to run more than once on an " +"instance, this is fine. If synchronization is needed, implement the " +"necessary locking inside the decorated getter function or around the cached " +"property access." +msgstr "" + +#: ../Doc/library/functools.rst:102 msgid "" "Note, this decorator interferes with the operation of :pep:`412` key-sharing " "dictionaries. This means that instance dictionaries can take more space " @@ -133,7 +158,7 @@ msgstr "" "diccionarios de intercambio de claves :pep:`412`. Esto significa que los " "diccionarios de instancias pueden ocupar más espacio de lo habitual." -#: ../Doc/library/functools.rst:90 +#: ../Doc/library/functools.rst:106 msgid "" "Also, this decorator requires that the ``__dict__`` attribute on each " "instance be a mutable mapping. This means it will not work with some types, " @@ -150,17 +175,29 @@ msgstr "" "``__dict__`` como una de las ranuras definidas (ya que tales clases no " "proporcionan un atributo ``__dict__`` en absoluto)." -#: ../Doc/library/functools.rst:97 +#: ../Doc/library/functools.rst:113 +#, fuzzy msgid "" "If a mutable mapping is not available or if space-efficient key sharing is " -"desired, an effect similar to :func:`cached_property` can be achieved by a " -"stacking :func:`property` on top of :func:`cache`::" +"desired, an effect similar to :func:`cached_property` can also be achieved " +"by stacking :func:`property` on top of :func:`lru_cache`. See :ref:`faq-" +"cache-method-calls` for more details on how this differs from :func:" +"`cached_property`." msgstr "" "Si un mapeo mutable no está disponible o si se desea compartir claves con " "espacio eficiente, se puede lograr un efecto similar a :func:" "`cached_property` apilando :func:`property` encima de :func:`cache`::" -#: ../Doc/library/functools.rst:115 +#: ../Doc/library/functools.rst:120 +msgid "" +"Prior to Python 3.12, ``cached_property`` included an undocumented lock to " +"ensure that in multi-threaded usage the getter function was guaranteed to " +"run only once per instance. However, the lock was per-property, not per-" +"instance, which could result in unacceptably high lock contention. In Python " +"3.12+ this locking is removed." +msgstr "" + +#: ../Doc/library/functools.rst:130 msgid "" "Transform an old-style comparison function to a :term:`key function`. Used " "with tools that accept key functions (such as :func:`sorted`, :func:`min`, :" @@ -177,7 +214,7 @@ msgstr "" "están convirtiendo a partir de Python 2, que soportaba el uso de funciones " "de comparación." -#: ../Doc/library/functools.rst:122 +#: ../Doc/library/functools.rst:137 msgid "" "A comparison function is any callable that accepts two arguments, compares " "them, and returns a negative number for less-than, zero for equality, or a " @@ -190,14 +227,14 @@ msgstr "" "invocable que acepta un argumento y devuelve otro valor para usar como clave " "de ordenación." -#: ../Doc/library/functools.rst:131 +#: ../Doc/library/functools.rst:146 msgid "" "For sorting examples and a brief sorting tutorial, see :ref:`sortinghowto`." msgstr "" "Para ejemplos de clasificación y un breve tutorial de clasificación, ver :" "ref:`sortinghowto`." -#: ../Doc/library/functools.rst:139 +#: ../Doc/library/functools.rst:154 msgid "" "Decorator to wrap a function with a memoizing callable that saves up to the " "*maxsize* most recent calls. It can save time when an expensive or I/O " @@ -208,16 +245,17 @@ msgstr "" "cuando una función costosa o de E/S es llamada periódicamente con los mismos " "argumentos." -#: ../Doc/library/functools.rst:143 +#: ../Doc/library/functools.rst:166 +#, fuzzy msgid "" "Since a dictionary is used to cache results, the positional and keyword " -"arguments to the function must be hashable." +"arguments to the function must be :term:`hashable`." msgstr "" "Dado que se utiliza un diccionario para guardar los resultados, los " "argumentos posicionales y de las palabras clave de la función deben ser " "hashable." -#: ../Doc/library/functools.rst:146 +#: ../Doc/library/functools.rst:169 msgid "" "Distinct argument patterns may be considered to be distinct calls with " "separate cache entries. For example, ``f(a=1, b=2)`` and ``f(b=2, a=1)`` " @@ -229,7 +267,7 @@ msgstr "" "``f(b=2, a=1)`` difieren en el orden de sus argumentos de palabras clave y " "pueden tener dos entradas de caché separadas." -#: ../Doc/library/functools.rst:151 +#: ../Doc/library/functools.rst:174 msgid "" "If *user_function* is specified, it must be a callable. This allows the " "*lru_cache* decorator to be applied directly to a user function, leaving the " @@ -239,7 +277,7 @@ msgstr "" "decorador *lru_cache* se aplique directamente a una función de usuario, " "dejando el *maxsize* en su valor por defecto de 128::" -#: ../Doc/library/functools.rst:159 +#: ../Doc/library/functools.rst:182 msgid "" "If *maxsize* is set to ``None``, the LRU feature is disabled and the cache " "can grow without bound." @@ -247,7 +285,7 @@ msgstr "" "Si *maxsize* está configurado como ``None``, la función LRU está desactivada " "y la caché puede crecer sin límites." -#: ../Doc/library/functools.rst:162 +#: ../Doc/library/functools.rst:185 msgid "" "If *typed* is set to true, function arguments of different types will be " "cached separately. If *typed* is false, the implementation will usually " @@ -261,7 +299,7 @@ msgstr "" "*int* pueden almacenarse en caché por separado incluso cuando *typed* es " "falso)." -#: ../Doc/library/functools.rst:168 +#: ../Doc/library/functools.rst:191 msgid "" "Note, type specificity applies only to the function's immediate arguments " "rather than their contents. The scalar arguments, ``Decimal(42)`` and " @@ -276,7 +314,7 @@ msgstr "" "tupla ``('answer', Decimal(42))`` y ``('answer', Fraction(42))`` se tratan " "como equivalentes." -#: ../Doc/library/functools.rst:174 +#: ../Doc/library/functools.rst:197 msgid "" "The wrapped function is instrumented with a :func:`cache_parameters` " "function that returns a new :class:`dict` showing the values for *maxsize* " @@ -288,7 +326,7 @@ msgstr "" "valores para *maxsize* y *typed*. Esto es solo para fines informativos. La " "mutación de los valores no tiene ningún efecto." -#: ../Doc/library/functools.rst:179 +#: ../Doc/library/functools.rst:202 msgid "" "To help measure the effectiveness of the cache and tune the *maxsize* " "parameter, the wrapped function is instrumented with a :func:`cache_info` " @@ -300,7 +338,7 @@ msgstr "" "`cache_info` que retorna un :term:`named tuple` mostrando *hits*, *misses*, " "*maxsize* y *currsize*." -#: ../Doc/library/functools.rst:184 +#: ../Doc/library/functools.rst:207 msgid "" "The decorator also provides a :func:`cache_clear` function for clearing or " "invalidating the cache." @@ -308,7 +346,7 @@ msgstr "" "El decorador también proporciona una función :func:`cache_clear` para " "limpiar o invalidar la caché." -#: ../Doc/library/functools.rst:187 +#: ../Doc/library/functools.rst:210 msgid "" "The original underlying function is accessible through the :attr:" "`__wrapped__` attribute. This is useful for introspection, for bypassing " @@ -318,7 +356,7 @@ msgstr "" "`__wrapped__`. Esto es útil para la introspección, para evitar el caché, o " "para volver a envolver la función con un caché diferente." -#: ../Doc/library/functools.rst:191 +#: ../Doc/library/functools.rst:214 msgid "" "The cache keeps references to the arguments and return values until they age " "out of the cache or until the cache is cleared." @@ -326,7 +364,7 @@ msgstr "" "La caché mantiene referencias de los argumentos y retorna los valores hasta " "que se caduquen de la caché o hasta que se borre la caché." -#: ../Doc/library/functools.rst:194 +#: ../Doc/library/functools.rst:217 msgid "" "If a method is cached, the ``self`` instance argument is included in the " "cache. See :ref:`faq-cache-method-calls`" @@ -334,7 +372,7 @@ msgstr "" "Si un método se almacena en caché, el argumento de la instancia ``self`` se " "incluye en el caché. Ver :ref:`faq-cache-method-calls`" -#: ../Doc/library/functools.rst:197 +#: ../Doc/library/functools.rst:220 msgid "" "An `LRU (least recently used) cache `_ works best when the " @@ -351,12 +389,14 @@ msgstr "" "caché asegura que la caché no crezca sin límites en procesos de larga " "ejecución como servidores web." -#: ../Doc/library/functools.rst:204 +#: ../Doc/library/functools.rst:227 +#, fuzzy msgid "" "In general, the LRU cache should only be used when you want to reuse " "previously computed values. Accordingly, it doesn't make sense to cache " "functions with side-effects, functions that need to create distinct mutable " -"objects on each call, or impure functions such as time() or random()." +"objects on each call (such as generators and async functions), or impure " +"functions such as time() or random()." msgstr "" "En general, la caché de la LRU sólo debe utilizarse cuando se desea " "reutilizar valores previamente calculados. Por consiguiente, no tiene " @@ -364,11 +404,11 @@ msgstr "" "que necesitan crear distintos objetos mutables en cada llamada, o funciones " "impuras como time() o random()." -#: ../Doc/library/functools.rst:209 +#: ../Doc/library/functools.rst:233 msgid "Example of an LRU cache for static web content::" msgstr "Ejemplo de un caché de la LRU para contenido web estático::" -#: ../Doc/library/functools.rst:228 +#: ../Doc/library/functools.rst:252 msgid "" "Example of efficiently computing `Fibonacci numbers `_ using a cache to implement a `dynamic " @@ -379,19 +419,19 @@ msgstr "" "implementar una técnica de `programación dinámica `_::" -#: ../Doc/library/functools.rst:248 +#: ../Doc/library/functools.rst:272 msgid "Added the *typed* option." msgstr "Añadida la opción *typed* option." -#: ../Doc/library/functools.rst:251 +#: ../Doc/library/functools.rst:275 msgid "Added the *user_function* option." msgstr "Añadida la opción *user_function*." -#: ../Doc/library/functools.rst:254 +#: ../Doc/library/functools.rst:278 msgid "Added the function :func:`cache_parameters`" msgstr "Añadida la función :func:`cache_parameters`" -#: ../Doc/library/functools.rst:259 +#: ../Doc/library/functools.rst:283 msgid "" "Given a class defining one or more rich comparison ordering methods, this " "class decorator supplies the rest. This simplifies the effort involved in " @@ -401,7 +441,7 @@ msgstr "" "ricos, este decorador de clase suministra el resto. Esto simplifica el " "esfuerzo de especificar todas las posibles operaciones de comparación rica:" -#: ../Doc/library/functools.rst:263 +#: ../Doc/library/functools.rst:287 msgid "" "The class must define one of :meth:`__lt__`, :meth:`__le__`, :meth:`__gt__`, " "or :meth:`__ge__`. In addition, the class should supply an :meth:`__eq__` " @@ -414,7 +454,7 @@ msgstr "" "simplifica el esfuerzo de especificar todas las posibles operaciones de " "comparación rica." -#: ../Doc/library/functools.rst:287 +#: ../Doc/library/functools.rst:311 msgid "" "While this decorator makes it easy to create well behaved totally ordered " "types, it *does* come at the cost of slower execution and more complex stack " @@ -430,7 +470,7 @@ msgstr "" "los seis métodos de comparación ricos en su lugar es probable que " "proporcione un fácil aumento de la velocidad." -#: ../Doc/library/functools.rst:296 +#: ../Doc/library/functools.rst:320 msgid "" "This decorator makes no attempt to override methods that have been declared " "in the class *or its superclasses*. Meaning that if a superclass defines a " @@ -442,7 +482,7 @@ msgstr "" "de comparación, *total_ordering* no lo implementará de nuevo, incluso si el " "método original es abstracto." -#: ../Doc/library/functools.rst:303 +#: ../Doc/library/functools.rst:327 msgid "" "Returning NotImplemented from the underlying comparison function for " "unrecognised types is now supported." @@ -450,7 +490,7 @@ msgstr "" "Retornando NotImplemented de la función de comparación subyacente para los " "tipos no reconocidos está ahora soportado." -#: ../Doc/library/functools.rst:309 +#: ../Doc/library/functools.rst:333 msgid "" "Return a new :ref:`partial object` which when called will " "behave like *func* called with the positional arguments *args* and keyword " @@ -465,7 +505,7 @@ msgstr "" "argumentos de palabras clave, se extienden y anulan las *keywords*. " "Aproximadamente equivalente a::" -#: ../Doc/library/functools.rst:325 +#: ../Doc/library/functools.rst:349 msgid "" "The :func:`partial` is used for partial function application which " "\"freezes\" some portion of a function's arguments and/or keywords resulting " @@ -480,7 +520,7 @@ msgstr "" "llamada que se comporte como la función :func:`int` donde el argumento " "*base* tiene un valor por defecto de dos:" -#: ../Doc/library/functools.rst:340 +#: ../Doc/library/functools.rst:364 msgid "" "Return a new :class:`partialmethod` descriptor which behaves like :class:" "`partial` except that it is designed to be used as a method definition " @@ -490,7 +530,7 @@ msgstr "" "class:`partial` excepto que está diseñado para ser usado como una definición " "de método en lugar de ser directamente invocable." -#: ../Doc/library/functools.rst:344 +#: ../Doc/library/functools.rst:368 msgid "" "*func* must be a :term:`descriptor` or a callable (objects which are both, " "like normal functions, are handled as descriptors)." @@ -498,7 +538,7 @@ msgstr "" "*func* debe ser un :term:`descriptor` o un invocable (los objetos que son " "ambos, como las funciones normales, se manejan como descriptores)." -#: ../Doc/library/functools.rst:347 +#: ../Doc/library/functools.rst:371 msgid "" "When *func* is a descriptor (such as a normal Python function, :func:" "`classmethod`, :func:`staticmethod`, :func:`abstractmethod` or another " @@ -512,7 +552,7 @@ msgstr "" "descriptor subyacente, y se retorna un :ref:`partial object` apropiado como resultado." -#: ../Doc/library/functools.rst:353 +#: ../Doc/library/functools.rst:377 msgid "" "When *func* is a non-descriptor callable, an appropriate bound method is " "created dynamically. This behaves like a normal Python function when used as " @@ -526,7 +566,7 @@ msgstr "" "argumento posicional, incluso antes de las *args* y *keywords* suministradas " "al constructor :class:`partialmethod`." -#: ../Doc/library/functools.rst:384 +#: ../Doc/library/functools.rst:408 msgid "" "Apply *function* of two arguments cumulatively to the items of *iterable*, " "from left to right, so as to reduce the iterable to a single value. For " @@ -548,11 +588,11 @@ msgstr "" "la *iterable* está vacía. Si no se da el *initializer* y el *iterable* " "contiene sólo un elemento, se retorna el primer elemento." -#: ../Doc/library/functools.rst:393 +#: ../Doc/library/functools.rst:417 msgid "Roughly equivalent to::" msgstr "Aproximadamente equivalente a::" -#: ../Doc/library/functools.rst:405 +#: ../Doc/library/functools.rst:429 msgid "" "See :func:`itertools.accumulate` for an iterator that yields all " "intermediate values." @@ -560,7 +600,7 @@ msgstr "" "Ver :func:`itertools.accumulate` para un iterador que produce todos los " "valores intermedios." -#: ../Doc/library/functools.rst:410 +#: ../Doc/library/functools.rst:434 msgid "" "Transform a function into a :term:`single-dispatch ` :term:" "`generic function`." @@ -568,7 +608,7 @@ msgstr "" "Transformar una función en una :term:`single-dispatch ` :" "term:`generic function`." -#: ../Doc/library/functools.rst:413 +#: ../Doc/library/functools.rst:437 msgid "" "To define a generic function, decorate it with the ``@singledispatch`` " "decorator. When defining a function using ``@singledispatch``, note that the " @@ -578,7 +618,7 @@ msgstr "" "``@singledispatch``. Al definir una función usando ``@singledispatch``, " "tenga en cuenta que el envío ocurre en el tipo del primer argumento:" -#: ../Doc/library/functools.rst:424 +#: ../Doc/library/functools.rst:448 msgid "" "To add overloaded implementations to the function, use the :func:`register` " "attribute of the generic function, which can be used as a decorator. For " @@ -590,12 +630,12 @@ msgstr "" "Para las funciones anotadas con tipos, el decorador inferirá automáticamente " "el tipo del primer argumento:" -#: ../Doc/library/functools.rst:442 +#: ../Doc/library/functools.rst:466 msgid ":data:`types.UnionType` and :data:`typing.Union` can also be used::" msgstr "" "También se pueden utilizar :data:`types.UnionType` y :data:`typing.Union`:" -#: ../Doc/library/functools.rst:459 +#: ../Doc/library/functools.rst:483 msgid "" "For code which doesn't use type annotations, the appropriate type argument " "can be passed explicitly to the decorator itself::" @@ -603,7 +643,7 @@ msgstr "" "Para el código que no utiliza anotaciones de tipo, el argumento de tipo " "apropiado puede ser pasado explícitamente al propio decorador::" -#: ../Doc/library/functools.rst:470 +#: ../Doc/library/functools.rst:494 msgid "" "To enable registering :term:`lambdas` and pre-existing functions, " "the :func:`register` attribute can also be used in a functional form::" @@ -612,7 +652,7 @@ msgstr "" "preexistentes, el atributo :func:`register` también se puede utilizar de " "forma funcional:" -#: ../Doc/library/functools.rst:478 +#: ../Doc/library/functools.rst:502 msgid "" "The :func:`register` attribute returns the undecorated function. This " "enables decorator stacking, :mod:`pickling`, and the creation of " @@ -622,7 +662,7 @@ msgstr "" "el apilamiento de decoradores, :mod:`pickling`, y la creación de " "pruebas unitarias para cada variante de forma independiente:" -#: ../Doc/library/functools.rst:492 +#: ../Doc/library/functools.rst:516 msgid "" "When called, the generic function dispatches on the type of the first " "argument::" @@ -630,7 +670,7 @@ msgstr "" "Cuando se llama, la función genérica despacha sobre el tipo del primer " "argumento::" -#: ../Doc/library/functools.rst:512 +#: ../Doc/library/functools.rst:536 msgid "" "Where there is no registered implementation for a specific type, its method " "resolution order is used to find a more generic implementation. The original " @@ -644,7 +684,7 @@ msgstr "" "registrada para el tipo base :class:`object`, lo que significa que se usa si " "no se encuentra una implementación mejor." -#: ../Doc/library/functools.rst:518 +#: ../Doc/library/functools.rst:542 msgid "" "If an implementation is registered to an :term:`abstract base class`, " "virtual subclasses of the base class will be dispatched to that " @@ -653,7 +693,7 @@ msgstr "" "Si una implementación está registrada en un :term:`abstract base class`, las " "subclases virtuales de la clase base se enviarán a esa implementación:" -#: ../Doc/library/functools.rst:533 +#: ../Doc/library/functools.rst:557 msgid "" "To check which implementation the generic function will choose for a given " "type, use the ``dispatch()`` attribute::" @@ -661,7 +701,7 @@ msgstr "" "Para verificar qué implementación elegirá la función genérica para un tipo " "dado, use el atributo ``dispatch()``:" -#: ../Doc/library/functools.rst:541 +#: ../Doc/library/functools.rst:565 msgid "" "To access all registered implementations, use the read-only ``registry`` " "attribute::" @@ -669,12 +709,12 @@ msgstr "" "Para acceder a todas las implementaciones registradas, utilice el atributo " "``registry`` de sólo lectura::" -#: ../Doc/library/functools.rst:555 +#: ../Doc/library/functools.rst:579 msgid "The :func:`register` attribute now supports using type annotations." msgstr "" "El atributo :func:`register` ahora admite el uso de anotaciones de tipo." -#: ../Doc/library/functools.rst:558 +#: ../Doc/library/functools.rst:582 msgid "" "The :func:`register` attribute now supports :data:`types.UnionType` and :" "data:`typing.Union` as type annotations." @@ -682,7 +722,7 @@ msgstr "" "El atributo :func:`register` ahora admite :data:`types.UnionType` y :data:" "`typing.Union` como anotaciones de tipo." -#: ../Doc/library/functools.rst:565 +#: ../Doc/library/functools.rst:589 msgid "" "Transform a method into a :term:`single-dispatch ` :term:" "`generic function`." @@ -690,7 +730,7 @@ msgstr "" "Transformar un método en un :term:`single-dispatch ` :term:" "`generic function`." -#: ../Doc/library/functools.rst:568 +#: ../Doc/library/functools.rst:592 msgid "" "To define a generic method, decorate it with the ``@singledispatchmethod`` " "decorator. When defining a function using ``@singledispatchmethod``, note " @@ -702,7 +742,7 @@ msgstr "" "``@singledispatchmethod``, tenga en cuenta que el envío ocurre en el tipo " "del primer argumento no *self* o no *cls*:" -#: ../Doc/library/functools.rst:586 +#: ../Doc/library/functools.rst:610 msgid "" "``@singledispatchmethod`` supports nesting with other decorators such as :" "func:`@classmethod`. Note that to allow for ``dispatcher." @@ -716,7 +756,7 @@ msgstr "" "externo*. Aquí está la clase ``Negator`` con los métodos ``neg`` vinculados " "a la clase, en lugar de una instancia de la clase:" -#: ../Doc/library/functools.rst:608 +#: ../Doc/library/functools.rst:632 msgid "" "The same pattern can be used for other similar decorators: :func:" "`@staticmethod`, :func:`@abstractmethod`, " @@ -726,7 +766,7 @@ msgstr "" "`@staticmethod`, :func:`@abstractmethod` y " "otros." -#: ../Doc/library/functools.rst:617 +#: ../Doc/library/functools.rst:641 msgid "" "Update a *wrapper* function to look like the *wrapped* function. The " "optional arguments are tuples to specify which attributes of the original " @@ -751,7 +791,7 @@ msgstr "" "(que actualiza el ``__dict__`` de la función contenedora, es decir, el " "diccionario de instancia)." -#: ../Doc/library/functools.rst:627 +#: ../Doc/library/functools.rst:651 msgid "" "To allow access to the original function for introspection and other " "purposes (e.g. bypassing a caching decorator such as :func:`lru_cache`), " @@ -763,7 +803,7 @@ msgstr "" "`lru_cache`), esta función añade automáticamente un atributo ``__wrapped__`` " "al envoltorio que se refiere a la función que se está envolviendo." -#: ../Doc/library/functools.rst:632 +#: ../Doc/library/functools.rst:656 msgid "" "The main intended use for this function is in :term:`decorator` functions " "which wrap the decorated function and return the wrapper. If the wrapper " @@ -777,7 +817,7 @@ msgstr "" "reflejarán la definición de la envoltura en lugar de la definición de la " "función original, lo que normalmente no es de gran ayuda." -#: ../Doc/library/functools.rst:638 +#: ../Doc/library/functools.rst:662 msgid "" ":func:`update_wrapper` may be used with callables other than functions. Any " "attributes named in *assigned* or *updated* that are missing from the object " @@ -792,19 +832,19 @@ msgstr "" "`AttributeError` sigue apareciendo si la propia función de envoltura no " "tiene ningún atributo nombrado en *updated*." -#: ../Doc/library/functools.rst:644 +#: ../Doc/library/functools.rst:668 msgid "Automatic addition of the ``__wrapped__`` attribute." msgstr "Adición automática de ``__wrapped__`` attribute." -#: ../Doc/library/functools.rst:647 +#: ../Doc/library/functools.rst:671 msgid "Copying of the ``__annotations__`` attribute by default." msgstr "Copia del atributo ``__annotations__`` por defecto." -#: ../Doc/library/functools.rst:650 +#: ../Doc/library/functools.rst:674 msgid "Missing attributes no longer trigger an :exc:`AttributeError`." msgstr "Los atributos faltantes ya no desencadenan un :exc:`AtributoError`." -#: ../Doc/library/functools.rst:653 +#: ../Doc/library/functools.rst:677 msgid "" "The ``__wrapped__`` attribute now always refers to the wrapped function, " "even if that function defined a ``__wrapped__`` attribute. (see :issue:" @@ -814,7 +854,7 @@ msgstr "" "incluso si esa función definió un atributo ``__wrapped__``. (see :issue:" "`17482`)" -#: ../Doc/library/functools.rst:661 +#: ../Doc/library/functools.rst:685 msgid "" "This is a convenience function for invoking :func:`update_wrapper` as a " "function decorator when defining a wrapper function. It is equivalent to " @@ -826,7 +866,7 @@ msgstr "" "(*wrapper*). Es equivalente a ``partial(update_wrapper, wrapped=wrapped, " "assigned=assigned, updated=updated)``. Por ejemplo::" -#: ../Doc/library/functools.rst:687 +#: ../Doc/library/functools.rst:711 msgid "" "Without the use of this decorator factory, the name of the example function " "would have been ``'wrapper'``, and the docstring of the original :func:" @@ -836,11 +876,11 @@ msgstr "" "ejemplo habría sido ``'wrapper'``, y el docstring de la :func:`example` se " "habría perdido." -#: ../Doc/library/functools.rst:695 +#: ../Doc/library/functools.rst:719 msgid ":class:`partial` Objects" msgstr ":class:`partial` Objetos" -#: ../Doc/library/functools.rst:697 +#: ../Doc/library/functools.rst:721 msgid "" ":class:`partial` objects are callable objects created by :func:`partial`. " "They have three read-only attributes:" @@ -848,7 +888,7 @@ msgstr "" "Los objetos :class:`partial` son objetos invocables creados por :func:" "`partial`. Tienen tres atributos de sólo lectura:" -#: ../Doc/library/functools.rst:703 +#: ../Doc/library/functools.rst:727 msgid "" "A callable object or function. Calls to the :class:`partial` object will be " "forwarded to :attr:`func` with new arguments and keywords." @@ -856,7 +896,7 @@ msgstr "" "Un objeto o función invocable. Las llamadas al objeto :class:`partial` " "serán reenviadas a :attr:`func` con nuevos argumentos y palabras clave." -#: ../Doc/library/functools.rst:709 +#: ../Doc/library/functools.rst:733 msgid "" "The leftmost positional arguments that will be prepended to the positional " "arguments provided to a :class:`partial` object call." @@ -864,7 +904,7 @@ msgstr "" "Los argumentos posicionales de la izquierda que se prepararán para los " "argumentos posicionales proporcionados un llamado al objeto :class:`partial`." -#: ../Doc/library/functools.rst:715 +#: ../Doc/library/functools.rst:739 msgid "" "The keyword arguments that will be supplied when the :class:`partial` object " "is called." @@ -872,7 +912,7 @@ msgstr "" "Los argumentos de la palabra clave que se suministrarán cuando se llame al " "objeto :class:`partial`." -#: ../Doc/library/functools.rst:718 +#: ../Doc/library/functools.rst:742 msgid "" ":class:`partial` objects are like :class:`function` objects in that they are " "callable, weak referencable, and can have attributes. There are some " diff --git a/library/gc.po b/library/gc.po index 1ddad34ef7..80c55db352 100644 --- a/library/gc.po +++ b/library/gc.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-03-19 11:16+0100\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-07 21:59+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,8 +19,7 @@ msgstr "" "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" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/gc.rst:2 msgid ":mod:`gc` --- Garbage Collector interface" @@ -95,7 +94,13 @@ msgstr "" "listas libres pueden ser liberados, particularmente :class:`float`, debido a " "su implementación particular." -#: ../Doc/library/gc.rst:56 +#: ../Doc/library/gc.rst:53 +msgid "" +"The effect of calling ``gc.collect()`` while the interpreter is already " +"performing a collection is undefined." +msgstr "" + +#: ../Doc/library/gc.rst:59 msgid "" "Set the garbage collection debugging flags. Debugging information will be " "written to ``sys.stderr``. See below for a list of debugging flags which " @@ -106,11 +111,11 @@ msgstr "" "puede consultar una lista con las flags de depuración disponibles, que se " "pueden combinar mediante operaciones de bits para controlar la depuración." -#: ../Doc/library/gc.rst:63 +#: ../Doc/library/gc.rst:66 msgid "Return the debugging flags currently set." msgstr "Retorna las flags de depuración actualmente establecidas." -#: ../Doc/library/gc.rst:68 +#: ../Doc/library/gc.rst:71 msgid "" "Returns a list of all objects tracked by the collector, excluding the list " "returned. If *generation* is not None, return only the objects tracked by " @@ -120,11 +125,11 @@ msgstr "" "excluyendo la lista retornada. Si *generation* no es ``None``, retorna solo " "los objetos rastreados por el recolector que pertenecen a esa generación." -#: ../Doc/library/gc.rst:72 +#: ../Doc/library/gc.rst:75 msgid "New *generation* parameter." msgstr "Se agregó el parámetro *generation*." -#: ../Doc/library/gc.rst:75 +#: ../Doc/library/gc.rst:78 msgid "" "Raises an :ref:`auditing event ` ``gc.get_objects`` with argument " "``generation``." @@ -132,7 +137,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``gc.get_objects`` con el " "argumento ``generation``." -#: ../Doc/library/gc.rst:79 +#: ../Doc/library/gc.rst:82 msgid "" "Return a list of three per-generation dictionaries containing collection " "statistics since interpreter start. The number of keys may change in the " @@ -143,12 +148,12 @@ msgstr "" "número de claves puede cambiar en el futuro, pero actualmente cada " "diccionario contendrá los siguientes elementos:" -#: ../Doc/library/gc.rst:84 +#: ../Doc/library/gc.rst:87 msgid "``collections`` is the number of times this generation was collected;" msgstr "" "``collections`` es el número de veces que se recolectó esta generación;" -#: ../Doc/library/gc.rst:86 +#: ../Doc/library/gc.rst:89 msgid "" "``collected`` is the total number of objects collected inside this " "generation;" @@ -156,7 +161,7 @@ msgstr "" "``collected`` es el número total de objetos recolectados dentro de esta " "generación;" -#: ../Doc/library/gc.rst:89 +#: ../Doc/library/gc.rst:92 msgid "" "``uncollectable`` is the total number of objects which were found to be " "uncollectable (and were therefore moved to the :data:`garbage` list) inside " @@ -166,7 +171,7 @@ msgstr "" "recolectables (y por lo tanto, se movieron a la lista :data:`garbage`) " "dentro de esta generación." -#: ../Doc/library/gc.rst:98 +#: ../Doc/library/gc.rst:101 msgid "" "Set the garbage collection thresholds (the collection frequency). Setting " "*threshold0* to zero disables collection." @@ -174,7 +179,7 @@ msgstr "" "Establece los umbrales de recolección (la frecuencia de recolección). Si se " "establece *threshold0* en cero se deshabilita la recolección." -#: ../Doc/library/gc.rst:101 +#: ../Doc/library/gc.rst:104 msgid "" "The GC classifies objects into three generations depending on how many " "collection sweeps they have survived. New objects are placed in the " @@ -209,7 +214,7 @@ msgstr "" "generación más antigua `_ para obtener más información." -#: ../Doc/library/gc.rst:118 +#: ../Doc/library/gc.rst:121 msgid "" "Return the current collection counts as a tuple of ``(count0, count1, " "count2)``." @@ -217,7 +222,7 @@ msgstr "" "Retorna los recuentos de la recolección actual como una tupla de la forma " "``(count0, count1, count2)``." -#: ../Doc/library/gc.rst:124 +#: ../Doc/library/gc.rst:127 msgid "" "Return the current collection thresholds as a tuple of ``(threshold0, " "threshold1, threshold2)``." @@ -225,7 +230,7 @@ msgstr "" "Retorna los umbrales de la recolección actual como una tupla de la forma " "``(threshold0, threshold1, threshold2)``." -#: ../Doc/library/gc.rst:130 +#: ../Doc/library/gc.rst:133 msgid "" "Return the list of objects that directly refer to any of objs. This function " "will only locate those containers which support garbage collection; " @@ -237,7 +242,7 @@ msgstr "" "recolección de basura; no se localizarán los tipos de extensión que " "referencian a otros objetos pero que no admiten la recolección de basura." -#: ../Doc/library/gc.rst:135 +#: ../Doc/library/gc.rst:138 msgid "" "Note that objects which have already been dereferenced, but which live in " "cycles and have not yet been collected by the garbage collector can be " @@ -250,7 +255,7 @@ msgstr "" "solo los objetos activos actualmente, llame a :func:`collect` antes de " "llamar a :func:`get_referrers`." -#: ../Doc/library/gc.rst:141 +#: ../Doc/library/gc.rst:144 msgid "" "Care must be taken when using objects returned by :func:`get_referrers` " "because some of them could still be under construction and hence in a " @@ -263,7 +268,7 @@ msgstr "" "el uso de :func:`get_referrers` para cualquier propósito que no sea la " "depuración." -#: ../Doc/library/gc.rst:146 +#: ../Doc/library/gc.rst:149 msgid "" "Raises an :ref:`auditing event ` ``gc.get_referrers`` with " "argument ``objs``." @@ -271,7 +276,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``gc.get_referrers`` con el " "argumento ``objs``." -#: ../Doc/library/gc.rst:151 +#: ../Doc/library/gc.rst:154 msgid "" "Return a list of objects directly referred to by any of the arguments. The " "referents returned are those objects visited by the arguments' C-level :c:" @@ -294,7 +299,7 @@ msgstr "" "los argumento, ese objeto entero puede aparecer o no en la lista de " "resultados." -#: ../Doc/library/gc.rst:159 +#: ../Doc/library/gc.rst:162 msgid "" "Raises an :ref:`auditing event ` ``gc.get_referents`` with " "argument ``objs``." @@ -302,7 +307,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``gc.get_referents`` con el " "argumento ``objs``." -#: ../Doc/library/gc.rst:163 +#: ../Doc/library/gc.rst:166 msgid "" "Returns ``True`` if the object is currently tracked by the garbage " "collector, ``False`` otherwise. As a general rule, instances of atomic " @@ -319,7 +324,7 @@ msgstr "" "impacto del recolector de basura en instancias simples (por ejemplo, " "diccionarios que contienen solo claves y valores atómicos)::" -#: ../Doc/library/gc.rst:188 +#: ../Doc/library/gc.rst:191 msgid "" "Returns ``True`` if the given object has been finalized by the garbage " "collector, ``False`` otherwise. ::" @@ -327,26 +332,25 @@ msgstr "" "Retorna ``True`` si el objeto dado ha sido finalizado por el recolector de " "basura, ``False`` en caso contrario. ::" -#: ../Doc/library/gc.rst:209 +#: ../Doc/library/gc.rst:212 msgid "" -"Freeze all the objects tracked by gc - move them to a permanent generation " -"and ignore all the future collections. This can be used before a POSIX " -"fork() call to make the gc copy-on-write friendly or to speed up collection. " -"Also collection before a POSIX fork() call may free pages for future " -"allocation which can cause copy-on-write too so it's advised to disable gc " -"in parent process and freeze before fork and enable gc in child process." +"Freeze all the objects tracked by the garbage collector; move them to a " +"permanent generation and ignore them in all the future collections." msgstr "" -"Congela todos los objetos rastreados por el recolector de basura - los mueve " -"a una generación permanente e ignora todas las recolecciones futuras. Esto " -"se puede usar antes de una llamada a *fork()* de POSIX para hacer el " -"recolector de basura amigable con *copy-on-write* (\"copiar al escribir\") o " -"para acelerar la recolección. Además, la recolección antes de una llamada " -"*fork()* de POSIX puede liberar páginas para futuras asignaciones, lo que " -"también puede causar *copy-on-write*, por lo que se recomienda deshabilitar " -"el recolector de basura en el proceso principal, congelar antes de la " -"bifurcación y habilitarlo posteriormente en el proceso secundario." -#: ../Doc/library/gc.rst:221 +#: ../Doc/library/gc.rst:215 +msgid "" +"If a process will ``fork()`` without ``exec()``, avoiding unnecessary copy-" +"on-write in child processes will maximize memory sharing and reduce overall " +"memory usage. This requires both avoiding creation of freed \"holes\" in " +"memory pages in the parent process and ensuring that GC collections in child " +"processes won't touch the ``gc_refs`` counter of long-lived objects " +"originating in the parent process. To accomplish both, call ``gc.disable()`` " +"early in the parent process, ``gc.freeze()`` right before ``fork()``, and " +"``gc.enable()`` early in child processes." +msgstr "" + +#: ../Doc/library/gc.rst:229 msgid "" "Unfreeze the objects in the permanent generation, put them back into the " "oldest generation." @@ -354,11 +358,11 @@ msgstr "" "Descongela los objetos de la generación permanente y vuelve a colocarlos en " "la generación más antigua." -#: ../Doc/library/gc.rst:229 +#: ../Doc/library/gc.rst:237 msgid "Return the number of objects in the permanent generation." msgstr "Retorna el número de objetos de la generación permanente." -#: ../Doc/library/gc.rst:234 +#: ../Doc/library/gc.rst:242 msgid "" "The following variables are provided for read-only access (you can mutate " "the values but should not rebind them):" @@ -366,7 +370,7 @@ msgstr "" "Las siguientes variables se proporcionan para acceso de solo lectura (se " "pueden mutar los valores pero no se deben vincular de nuevo):" -#: ../Doc/library/gc.rst:239 +#: ../Doc/library/gc.rst:247 msgid "" "A list of objects which the collector found to be unreachable but could not " "be freed (uncollectable objects). Starting with Python 3.4, this list " @@ -379,7 +383,7 @@ msgstr "" "cuando se utilizan instancias de tipos de extensión C en los que la ranura " "(*slot*) ``tp_del`` no sea ``NULL``." -#: ../Doc/library/gc.rst:244 +#: ../Doc/library/gc.rst:252 msgid "" "If :const:`DEBUG_SAVEALL` is set, then all unreachable objects will be added " "to this list rather than freed." @@ -387,7 +391,7 @@ msgstr "" "Si se establece :const:`DEBUG_SAVEALL`, todos los objetos inaccesibles se " "agregarán a esta lista en lugar de ser liberados." -#: ../Doc/library/gc.rst:247 +#: ../Doc/library/gc.rst:255 msgid "" "If this list is non-empty at :term:`interpreter shutdown`, a :exc:" "`ResourceWarning` is emitted, which is silent by default. If :const:" @@ -399,15 +403,16 @@ msgstr "" "Si se establece :const:`DEBUG_UNCOLLECTABLE`, además se imprimen todos los " "objetos no recolectables." -#: ../Doc/library/gc.rst:253 +#: ../Doc/library/gc.rst:261 +#, fuzzy msgid "" -"Following :pep:`442`, objects with a :meth:`__del__` method don't end up in :" -"attr:`gc.garbage` anymore." +"Following :pep:`442`, objects with a :meth:`~object.__del__` method don't " +"end up in :data:`gc.garbage` anymore." msgstr "" "Cumpliendo con :pep:`442`, los objetos con un método :meth:`__del__` ya no " "terminan en :attr:`gc.garbage`." -#: ../Doc/library/gc.rst:259 +#: ../Doc/library/gc.rst:267 msgid "" "A list of callbacks that will be invoked by the garbage collector before and " "after collection. The callbacks will be called with two arguments, *phase* " @@ -417,19 +422,19 @@ msgstr "" "después de la recolección. Las retrollamadas serán llamadas con dos " "argumentos, *phase* e *info*." -#: ../Doc/library/gc.rst:263 +#: ../Doc/library/gc.rst:271 msgid "*phase* can be one of two values:" msgstr "*phase* puede tomar uno de estos valores:" -#: ../Doc/library/gc.rst:265 +#: ../Doc/library/gc.rst:273 msgid "\"start\": The garbage collection is about to start." msgstr "\"start\": la recolección de basura está a punto de comenzar." -#: ../Doc/library/gc.rst:267 +#: ../Doc/library/gc.rst:275 msgid "\"stop\": The garbage collection has finished." msgstr "\"stop\": la recolección de basura ha terminado." -#: ../Doc/library/gc.rst:269 +#: ../Doc/library/gc.rst:277 msgid "" "*info* is a dict providing more information for the callback. The following " "keys are currently defined:" @@ -437,11 +442,11 @@ msgstr "" "*info* es un diccionario que proporciona información adicional para la " "retrollamada. Las siguientes claves están definidas actualmente:" -#: ../Doc/library/gc.rst:272 +#: ../Doc/library/gc.rst:280 msgid "\"generation\": The oldest generation being collected." msgstr "\"generation\": la generación más antigua que ha sido recolectada." -#: ../Doc/library/gc.rst:274 +#: ../Doc/library/gc.rst:282 msgid "" "\"collected\": When *phase* is \"stop\", the number of objects successfully " "collected." @@ -449,7 +454,7 @@ msgstr "" "\"collected\": cuando *phase* es \"stop\", el número de objetos recolectados " "satisfactoriamente." -#: ../Doc/library/gc.rst:277 +#: ../Doc/library/gc.rst:285 msgid "" "\"uncollectable\": When *phase* is \"stop\", the number of objects that " "could not be collected and were put in :data:`garbage`." @@ -457,7 +462,7 @@ msgstr "" "\"uncollectable\": cuando *phase* es \"stop\", el número de objetos que no " "pudieron ser recolectados y fueron ubicados en :data:`garbage`." -#: ../Doc/library/gc.rst:280 +#: ../Doc/library/gc.rst:288 msgid "" "Applications can add their own callbacks to this list. The primary use " "cases are:" @@ -465,7 +470,7 @@ msgstr "" "Las aplicaciones pueden agregar sus propias retrollamadas a esta lista. Los " "principales casos de uso son:" -#: ../Doc/library/gc.rst:283 +#: ../Doc/library/gc.rst:291 msgid "" "Gathering statistics about garbage collection, such as how often various " "generations are collected, and how long the collection takes." @@ -474,7 +479,7 @@ msgstr "" "con la que se recolectan varias generaciones y cuánto tiempo lleva la " "recolección." -#: ../Doc/library/gc.rst:287 +#: ../Doc/library/gc.rst:295 msgid "" "Allowing applications to identify and clear their own uncollectable types " "when they appear in :data:`garbage`." @@ -482,13 +487,13 @@ msgstr "" "Permitir que las aplicaciones identifiquen y borren sus propios tipos no " "recolectables cuando aparecen en :data:`garbage`." -#: ../Doc/library/gc.rst:293 +#: ../Doc/library/gc.rst:301 msgid "The following constants are provided for use with :func:`set_debug`:" msgstr "" "Las siguientes constantes son proporcionadas para ser usadas con :func:" "`set_debug`:" -#: ../Doc/library/gc.rst:298 +#: ../Doc/library/gc.rst:306 msgid "" "Print statistics during collection. This information can be useful when " "tuning the collection frequency." @@ -496,11 +501,11 @@ msgstr "" "Imprime estadísticas durante la recolección. Esta información puede resultar " "útil para ajustar la frecuencia de recolección." -#: ../Doc/library/gc.rst:304 +#: ../Doc/library/gc.rst:312 msgid "Print information on collectable objects found." msgstr "Imprime información sobre los objetos recolectables encontrados." -#: ../Doc/library/gc.rst:309 +#: ../Doc/library/gc.rst:317 msgid "" "Print information of uncollectable objects found (objects which are not " "reachable but cannot be freed by the collector). These objects will be " @@ -510,7 +515,7 @@ msgstr "" "inaccesibles, pero que el recolector no puede liberar). Estos objetos se " "agregarán a la lista ``garbage``." -#: ../Doc/library/gc.rst:313 +#: ../Doc/library/gc.rst:321 msgid "" "Also print the contents of the :data:`garbage` list at :term:`interpreter " "shutdown`, if it isn't empty." @@ -518,7 +523,7 @@ msgstr "" "También imprime el contenido de la lista :data:`garbage` durante :term:" "`interpreter shutdown`, si no está vacía." -#: ../Doc/library/gc.rst:319 +#: ../Doc/library/gc.rst:327 msgid "" "When set, all unreachable objects found will be appended to *garbage* rather " "than being freed. This can be useful for debugging a leaking program." @@ -527,7 +532,7 @@ msgstr "" "a *garbage* en lugar de ser liberados. Esto puede resultar útil para depurar " "un programa con fugas de memoria." -#: ../Doc/library/gc.rst:325 +#: ../Doc/library/gc.rst:333 msgid "" "The debugging flags necessary for the collector to print information about a " "leaking program (equal to ``DEBUG_COLLECTABLE | DEBUG_UNCOLLECTABLE | " @@ -536,3 +541,23 @@ msgstr "" "Las flags de depuración necesarias para que el recolector imprima " "información sobre un programa con fugas de memoria (igual a " "``DEBUG_COLLECTABLE | DEBUG_UNCOLLECTABLE | DEBUG_SAVEALL``)." + +#~ msgid "" +#~ "Freeze all the objects tracked by gc - move them to a permanent " +#~ "generation and ignore all the future collections. This can be used before " +#~ "a POSIX fork() call to make the gc copy-on-write friendly or to speed up " +#~ "collection. Also collection before a POSIX fork() call may free pages for " +#~ "future allocation which can cause copy-on-write too so it's advised to " +#~ "disable gc in parent process and freeze before fork and enable gc in " +#~ "child process." +#~ msgstr "" +#~ "Congela todos los objetos rastreados por el recolector de basura - los " +#~ "mueve a una generación permanente e ignora todas las recolecciones " +#~ "futuras. Esto se puede usar antes de una llamada a *fork()* de POSIX para " +#~ "hacer el recolector de basura amigable con *copy-on-write* (\"copiar al " +#~ "escribir\") o para acelerar la recolección. Además, la recolección antes " +#~ "de una llamada *fork()* de POSIX puede liberar páginas para futuras " +#~ "asignaciones, lo que también puede causar *copy-on-write*, por lo que se " +#~ "recomienda deshabilitar el recolector de basura en el proceso principal, " +#~ "congelar antes de la bifurcación y habilitarlo posteriormente en el " +#~ "proceso secundario." diff --git a/library/gettext.po b/library/gettext.po index 059ccdaa32..61dc6fdadf 100644 --- a/library/gettext.po +++ b/library/gettext.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-07 21:56+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/gettext.rst:2 msgid ":mod:`gettext` --- Multilingual internationalization services" @@ -112,10 +112,11 @@ msgstr "" "establece en *domain*, que se retorna." #: ../Doc/library/gettext.rst:59 +#, fuzzy msgid "" "Return the localized translation of *message*, based on the current global " "domain, language, and locale directory. This function is usually aliased " -"as :func:`_` in the local namespace (see examples below)." +"as :func:`!_` in the local namespace (see examples below)." msgstr "" "Retorna la traducción localizada de *message*, en función del dominio global " "actual, el idioma y el directorio de configuración regional. Esta función " @@ -174,8 +175,9 @@ msgstr "" "`dngettext`), pero la traducción está restringida al mensaje dado *context*." #: ../Doc/library/gettext.rst:101 +#, fuzzy msgid "" -"Note that GNU :program:`gettext` also defines a :func:`dcgettext` method, " +"Note that GNU :program:`gettext` also defines a :func:`!dcgettext` method, " "but this was deemed not useful and so it is currently unimplemented." msgstr "" "Tenga en cuenta que GNU :program:`gettext` también define un método :func:" @@ -191,6 +193,7 @@ msgid "Class-based API" msgstr "API basada en clases" #: ../Doc/library/gettext.rst:117 +#, fuzzy msgid "" "The class-based API of the :mod:`gettext` module gives you more flexibility " "and greater convenience than the GNU :program:`gettext` API. It is the " @@ -198,7 +201,7 @@ msgid "" "gettext` defines a :class:`GNUTranslations` class which implements the " "parsing of GNU :file:`.mo` format files, and has methods for returning " "strings. Instances of this class can also install themselves in the built-in " -"namespace as the function :func:`_`." +"namespace as the function :func:`!_`." msgstr "" "La API basada en clases del módulo :mod:`gettext` le brinda más flexibilidad " "y mayor comodidad que la API GNU :program:`gettext`. Es la forma recomendada " @@ -264,15 +267,14 @@ msgstr "" "aparecen en la lista de idiomas o las variables de entorno." #: ../Doc/library/gettext.rst:153 +#, fuzzy msgid "" -"Return a :class:`*Translations` instance based on the *domain*, *localedir*, " -"and *languages*, which are first passed to :func:`find` to get a list of the " +"Return a ``*Translations`` instance based on the *domain*, *localedir*, and " +"*languages*, which are first passed to :func:`find` to get a list of the " "associated :file:`.mo` file paths. Instances with identical :file:`.mo` " "file names are cached. The actual class instantiated is *class_* if " "provided, otherwise :class:`GNUTranslations`. The class's constructor must " -"take a single :term:`file object` argument. If provided, *codeset* will " -"change the charset used to encode translated strings in the :meth:" -"`~NullTranslations.lgettext` and :meth:`~NullTranslations.lngettext` methods." +"take a single :term:`file object` argument." msgstr "" "Retorna una instancia de :class:`*Translations` basada en *domain*, " "*localedir* y *languages*, que primero se pasan a :func:`find` para obtener " @@ -284,7 +286,7 @@ msgstr "" "caracteres utilizado para codificar cadenas traducidas en los métodos :meth:" "`~NullTranslations.lgettext` y :meth:`~NullTranslations.lngettext`." -#: ../Doc/library/gettext.rst:163 +#: ../Doc/library/gettext.rst:160 msgid "" "If multiple files are found, later files are used as fallbacks for earlier " "ones. To allow setting the fallback, :func:`copy.copy` is used to clone each " @@ -296,7 +298,7 @@ msgstr "" "reserva, :func:`copy.copy` se utiliza para clonar cada objeto de traducción " "del caché; los datos de la instancia real aún se comparten con el caché." -#: ../Doc/library/gettext.rst:168 +#: ../Doc/library/gettext.rst:165 msgid "" "If no :file:`.mo` file is found, this function raises :exc:`OSError` if " "*fallback* is false (which is the default), and returns a :class:" @@ -306,17 +308,18 @@ msgstr "" "`OSError` si *fallback* es falso (que es el valor predeterminado) y retorna " "una instancia de :class:`NullTranslations` si *fallback* is verdadero." -#: ../Doc/library/gettext.rst:172 +#: ../Doc/library/gettext.rst:169 msgid ":exc:`IOError` used to be raised instead of :exc:`OSError`." msgstr ":exc:`IOError` solía aparecer en lugar de :exc:`OSError`." -#: ../Doc/library/gettext.rst:175 +#: ../Doc/library/gettext.rst:172 msgid "*codeset* parameter is removed." msgstr "el parámetro *codeset* se removió." -#: ../Doc/library/gettext.rst:180 +#: ../Doc/library/gettext.rst:177 +#, fuzzy msgid "" -"This installs the function :func:`_` in Python's builtins namespace, based " +"This installs the function :func:`!_` in Python's builtins namespace, based " "on *domain* and *localedir* which are passed to the function :func:" "`translation`." msgstr "" @@ -324,7 +327,7 @@ msgstr "" "Python, basado en *domain* y *localedir* que se pasan a la función :func:" "`translation`." -#: ../Doc/library/gettext.rst:183 +#: ../Doc/library/gettext.rst:180 msgid "" "For the *names* parameter, please see the description of the translation " "object's :meth:`~NullTranslations.install` method." @@ -332,35 +335,37 @@ msgstr "" "Para el parámetro *names*, consulte la descripción del método del objeto de " "traducción :meth:`~NullTranslations.install`." -#: ../Doc/library/gettext.rst:186 +#: ../Doc/library/gettext.rst:183 +#, fuzzy msgid "" "As seen below, you usually mark the strings in your application that are " -"candidates for translation, by wrapping them in a call to the :func:`_` " +"candidates for translation, by wrapping them in a call to the :func:`!_` " "function, like this::" msgstr "" "Como se ve a continuación, generalmente marca las cadenas en su aplicación " "que son candidatas para la traducción, envolviéndolas en una llamada a la " "función :func:`_`, como esta::" -#: ../Doc/library/gettext.rst:192 +#: ../Doc/library/gettext.rst:189 +#, fuzzy msgid "" -"For convenience, you want the :func:`_` function to be installed in Python's " -"builtins namespace, so it is easily accessible in all modules of your " -"application." +"For convenience, you want the :func:`!_` function to be installed in " +"Python's builtins namespace, so it is easily accessible in all modules of " +"your application." msgstr "" "Para mayor comodidad, desea que la función :func:`_` se instale en el " "espacio de nombres integrado de Python, para que sea fácilmente accesible en " "todos los módulos de su aplicación." -#: ../Doc/library/gettext.rst:196 +#: ../Doc/library/gettext.rst:193 msgid "*names* is now a keyword-only parameter." msgstr "*names* ahora es un parámetro de solo palabra clave." -#: ../Doc/library/gettext.rst:200 +#: ../Doc/library/gettext.rst:197 msgid "The :class:`NullTranslations` class" msgstr "La clase :class:`NullTranslations`" -#: ../Doc/library/gettext.rst:202 +#: ../Doc/library/gettext.rst:199 msgid "" "Translation classes are what actually implement the translation of original " "source file message strings to translated message strings. The base class " @@ -375,7 +380,7 @@ msgstr "" "utilizar para escribir sus propias clases de traducción especializadas. " "Estos son los métodos de :class:`!NullTranslations`:" -#: ../Doc/library/gettext.rst:211 +#: ../Doc/library/gettext.rst:208 msgid "" "Takes an optional :term:`file object` *fp*, which is ignored by the base " "class. Initializes \"protected\" instance variables *_info* and *_charset* " @@ -389,7 +394,7 @@ msgstr "" "*_fallback*, que se establece a través de :meth:`add_fallback`. Luego llama " "a ``self._parse(fp)`` if *fp* no es ``None``." -#: ../Doc/library/gettext.rst:219 +#: ../Doc/library/gettext.rst:216 msgid "" "No-op in the base class, this method takes file object *fp*, and reads the " "data from the file, initializing its message catalog. If you have an " @@ -401,7 +406,7 @@ msgstr "" "un formato de archivo de catálogo de mensajes no admitido, debe sobrescribir " "este método para analizar su formato." -#: ../Doc/library/gettext.rst:227 +#: ../Doc/library/gettext.rst:224 msgid "" "Add *fallback* as the fallback object for the current translation object. A " "translation object should consult the fallback if it cannot provide a " @@ -411,7 +416,7 @@ msgstr "" "actual. Un objeto de traducción debe consultar la reserva si no puede " "proporcionar una traducción para un mensaje dado." -#: ../Doc/library/gettext.rst:234 +#: ../Doc/library/gettext.rst:231 msgid "" "If a fallback has been set, forward :meth:`!gettext` to the fallback. " "Otherwise, return *message*. Overridden in derived classes." @@ -419,7 +424,7 @@ msgstr "" "Si se ha establecido una reserva, reenvíe :meth:`!gettext` a la reserva. De " "lo contrario, retorna *message*. Anulado en clases derivadas." -#: ../Doc/library/gettext.rst:240 +#: ../Doc/library/gettext.rst:237 msgid "" "If a fallback has been set, forward :meth:`!ngettext` to the fallback. " "Otherwise, return *singular* if *n* is 1; return *plural* otherwise. " @@ -429,7 +434,7 @@ msgstr "" "lo contrario, retorna *singular* si *n* es 1; volver *plural* de lo " "contrario. Anulado en clases derivadas." -#: ../Doc/library/gettext.rst:247 +#: ../Doc/library/gettext.rst:244 msgid "" "If a fallback has been set, forward :meth:`pgettext` to the fallback. " "Otherwise, return the translated message. Overridden in derived classes." @@ -437,7 +442,7 @@ msgstr "" "Si se ha establecido una reserva, reenvía :meth:`pgettext` a la reserva. De " "lo contrario, retorna el mensaje traducido. Anulado en clases derivadas." -#: ../Doc/library/gettext.rst:255 +#: ../Doc/library/gettext.rst:252 msgid "" "If a fallback has been set, forward :meth:`npgettext` to the fallback. " "Otherwise, return the translated message. Overridden in derived classes." @@ -445,7 +450,7 @@ msgstr "" "Si se ha establecido una reserva, reenvía :meth:`npgettext` a la reserva. De " "lo contrario, retorna el mensaje traducido. Anulado en clases derivadas." -#: ../Doc/library/gettext.rst:263 +#: ../Doc/library/gettext.rst:260 msgid "" "Return the \"protected\" :attr:`_info` variable, a dictionary containing the " "metadata found in the message catalog file." @@ -453,11 +458,11 @@ msgstr "" "Retorna la variable \"*protected*\" :attr:`_info`, un diccionario que " "contiene los metadatos encontrados en el archivo del catálogo de mensajes." -#: ../Doc/library/gettext.rst:269 +#: ../Doc/library/gettext.rst:266 msgid "Return the encoding of the message catalog file." msgstr "Retorna la codificación del archivo de catálogo de mensajes." -#: ../Doc/library/gettext.rst:274 +#: ../Doc/library/gettext.rst:271 msgid "" "This method installs :meth:`.gettext` into the built-in namespace, binding " "it to ``_``." @@ -465,12 +470,13 @@ msgstr "" "Este método instala :meth:`.gettext` en el espacio de nombres incorporado, " "vinculándolo a ``_``." -#: ../Doc/library/gettext.rst:277 +#: ../Doc/library/gettext.rst:274 +#, fuzzy msgid "" "If the *names* parameter is given, it must be a sequence containing the " "names of functions you want to install in the builtins namespace in addition " -"to :func:`_`. Supported names are ``'gettext'``, ``'ngettext'``, " -"``'pgettext'``, ``'npgettext'``, ``'lgettext'``, and ``'lngettext'``." +"to :func:`!_`. Supported names are ``'gettext'``, ``'ngettext'``, " +"``'pgettext'``, and ``'npgettext'``." msgstr "" "Si se proporciona el parámetro *names*, debe ser una secuencia que contenga " "los nombres de las funciones que desea instalar en el espacio de nombres " @@ -478,13 +484,14 @@ msgstr "" "``'ngettext'``, ``'pgettext'``, ``'npgettext'``, ``'lgettext'``, y " "``'lngettext'``." -#: ../Doc/library/gettext.rst:282 +#: ../Doc/library/gettext.rst:279 +#, fuzzy msgid "" "Note that this is only one way, albeit the most convenient way, to make the :" -"func:`_` function available to your application. Because it affects the " +"func:`!_` function available to your application. Because it affects the " "entire application globally, and specifically the built-in namespace, " -"localized modules should never install :func:`_`. Instead, they should use " -"this code to make :func:`_` available to their module::" +"localized modules should never install :func:`!_`. Instead, they should use " +"this code to make :func:`!_` available to their module::" msgstr "" "Tenga en cuenta que esta es solo una forma, aunque la más conveniente, para " "que la función :func:`_` esté disponible para su aplicación. Debido a que " @@ -493,23 +500,24 @@ msgstr "" "`_`. En su lugar, deberían usar este código para hacer que :func:`_` esté " "disponible para su módulo::" -#: ../Doc/library/gettext.rst:292 +#: ../Doc/library/gettext.rst:289 +#, fuzzy msgid "" -"This puts :func:`_` only in the module's global namespace and so only " +"This puts :func:`!_` only in the module's global namespace and so only " "affects calls within this module." msgstr "" "Esto pone :func:`_` solo en el espacio de nombres global del módulo y, por " "lo tanto, solo afecta las llamadas dentro de este módulo." -#: ../Doc/library/gettext.rst:295 +#: ../Doc/library/gettext.rst:292 msgid "Added ``'pgettext'`` and ``'npgettext'``." msgstr "Se agregó ``'pgettext'`` y ``'npgettext'``." -#: ../Doc/library/gettext.rst:300 +#: ../Doc/library/gettext.rst:297 msgid "The :class:`GNUTranslations` class" msgstr "La clase :class:`GNUTranslations`" -#: ../Doc/library/gettext.rst:302 +#: ../Doc/library/gettext.rst:299 msgid "" "The :mod:`gettext` module provides one additional class derived from :class:" "`NullTranslations`: :class:`GNUTranslations`. This class overrides :meth:" @@ -521,7 +529,7 @@ msgstr "" "`_parse` para permitir la lectura de formato GNU :program:`gettext` " "archivos :file:`.mo` en formato big-endian y little-endian." -#: ../Doc/library/gettext.rst:307 +#: ../Doc/library/gettext.rst:304 msgid "" ":class:`GNUTranslations` parses optional metadata out of the translation " "catalog. It is convention with GNU :program:`gettext` to include metadata as " @@ -545,16 +553,17 @@ msgstr "" "catálogo se convierten a Unicode utilizando esta codificación, de lo " "contrario se asume ASCII." -#: ../Doc/library/gettext.rst:317 +#: ../Doc/library/gettext.rst:314 +#, fuzzy msgid "" -"Since message ids are read as Unicode strings too, all :meth:`*gettext` " +"Since message ids are read as Unicode strings too, all ``*gettext()`` " "methods will assume message ids as Unicode strings, not byte strings." msgstr "" "Dado que los identificadores de mensaje también se leen como cadenas " "Unicode, todos los métodos :meth:`*gettext` asumirán los identificadores de " "mensaje como cadenas Unicode, no cadenas de bytes." -#: ../Doc/library/gettext.rst:320 +#: ../Doc/library/gettext.rst:317 msgid "" "The entire set of key/value pairs are placed into a dictionary and set as " "the \"protected\" :attr:`_info` instance variable." @@ -562,7 +571,7 @@ msgstr "" "El conjunto completo de pares clave/valor se colocan en un diccionario y se " "establece como la variable de instancia \"protegida\" :attr:`_info`." -#: ../Doc/library/gettext.rst:323 +#: ../Doc/library/gettext.rst:320 msgid "" "If the :file:`.mo` file's magic number is invalid, the major version number " "is unexpected, or if other problems occur while reading the file, " @@ -573,13 +582,13 @@ msgstr "" "archivo, se crea una instancia de :class:`GNUTranslations` puede generar :" "exc:`OSError`." -#: ../Doc/library/gettext.rst:329 +#: ../Doc/library/gettext.rst:326 msgid "" "The following methods are overridden from the base class implementation:" msgstr "" "Los siguientes métodos se anulan desde la implementación de la clase base:" -#: ../Doc/library/gettext.rst:333 +#: ../Doc/library/gettext.rst:330 msgid "" "Look up the *message* id in the catalog and return the corresponding message " "string, as a Unicode string. If there is no entry in the catalog for the " @@ -593,7 +602,7 @@ msgstr "" "(*fallback*), la búsqueda se reenvía al método de retroceso :meth:" "`~NullTranslations.gettext`. De lo contrario, se retorna el *message* id." -#: ../Doc/library/gettext.rst:342 +#: ../Doc/library/gettext.rst:339 msgid "" "Do a plural-forms lookup of a message id. *singular* is used as the message " "id for purposes of lookup in the catalog, while *n* is used to determine " @@ -604,7 +613,7 @@ msgstr "" "en el catálogo, mientras que *n* se usa para determinar qué forma plural " "usar. La cadena del mensaje retornado es una cadena de caracteres Unicode." -#: ../Doc/library/gettext.rst:346 +#: ../Doc/library/gettext.rst:343 msgid "" "If the message id is not found in the catalog, and a fallback is specified, " "the request is forwarded to the fallback's :meth:`~NullTranslations." @@ -616,11 +625,11 @@ msgstr "" "`~NullTranslations.ngettext`. De lo contrario, cuando *n* es 1 se retorna " "*singular*, y *plural* se retorna en todos los demás casos." -#: ../Doc/library/gettext.rst:351 +#: ../Doc/library/gettext.rst:348 msgid "Here is an example::" msgstr "Aquí hay un ejemplo::" -#: ../Doc/library/gettext.rst:363 +#: ../Doc/library/gettext.rst:360 msgid "" "Look up the *context* and *message* id in the catalog and return the " "corresponding message string, as a Unicode string. If there is no entry in " @@ -635,7 +644,7 @@ msgstr "" "método de retroceso :meth:`pgettext`. De lo contrario, se retorna el " "*message* id." -#: ../Doc/library/gettext.rst:374 +#: ../Doc/library/gettext.rst:371 msgid "" "Do a plural-forms lookup of a message id. *singular* is used as the message " "id for purposes of lookup in the catalog, while *n* is used to determine " @@ -646,7 +655,7 @@ msgstr "" "en el catálogo, mientras que *n* se usa para determinar qué forma plural " "usar." -#: ../Doc/library/gettext.rst:378 +#: ../Doc/library/gettext.rst:375 msgid "" "If the message id for *context* is not found in the catalog, and a fallback " "is specified, the request is forwarded to the fallback's :meth:`npgettext` " @@ -658,11 +667,11 @@ msgstr "" "reserva :meth:`npgettext`. De lo contrario, cuando *n * es 1 se retorna " "*singular*, y *plural* se retorna en todos los demás casos." -#: ../Doc/library/gettext.rst:387 +#: ../Doc/library/gettext.rst:384 msgid "Solaris message catalog support" msgstr "Soporte de catálogo de mensajes de Solaris" -#: ../Doc/library/gettext.rst:389 +#: ../Doc/library/gettext.rst:386 msgid "" "The Solaris operating system defines its own binary :file:`.mo` file format, " "but since no documentation can be found on this format, it is not supported " @@ -672,11 +681,11 @@ msgstr "" "file:`.mo`, pero como no se puede encontrar documentación sobre este " "formato, no es compatible en este momento." -#: ../Doc/library/gettext.rst:395 +#: ../Doc/library/gettext.rst:392 msgid "The Catalog constructor" msgstr "El constructor del catálogo" -#: ../Doc/library/gettext.rst:399 +#: ../Doc/library/gettext.rst:396 msgid "" "GNOME uses a version of the :mod:`gettext` module by James Henstridge, but " "this version has a slightly different API. Its documented usage was::" @@ -684,15 +693,16 @@ msgstr "" "GNOME usa una versión del módulo :mod:`gettext` de James Henstridge, pero " "esta versión tiene una API ligeramente diferente. Su uso documentado fue::" -#: ../Doc/library/gettext.rst:407 +#: ../Doc/library/gettext.rst:404 +#, fuzzy msgid "" -"For compatibility with this older module, the function :func:`Catalog` is an " -"alias for the :func:`translation` function described above." +"For compatibility with this older module, the function :func:`!Catalog` is " +"an alias for the :func:`translation` function described above." msgstr "" "Para la compatibilidad con este módulo anterior, la función :func:`Catalog` " "es un alias para la función :func:`translation` descrita anteriormente." -#: ../Doc/library/gettext.rst:410 +#: ../Doc/library/gettext.rst:407 msgid "" "One difference between this module and Henstridge's: his catalog objects " "supported access through a mapping API, but this appears to be unused and so " @@ -702,11 +712,11 @@ msgstr "" "admitían el acceso a través de una API de mapeo, pero esto parece estar sin " "usar y, por lo tanto, actualmente no es compatible." -#: ../Doc/library/gettext.rst:416 +#: ../Doc/library/gettext.rst:414 msgid "Internationalizing your programs and modules" msgstr "Internacionalizando sus programas y módulos" -#: ../Doc/library/gettext.rst:418 +#: ../Doc/library/gettext.rst:416 msgid "" "Internationalization (I18N) refers to the operation by which a program is " "made aware of multiple languages. Localization (L10N) refers to the " @@ -720,43 +730,44 @@ msgstr "" "hábitos culturales. Para proporcionar mensajes multilingües para sus " "programas de Python, debe seguir los siguientes pasos:" -#: ../Doc/library/gettext.rst:424 +#: ../Doc/library/gettext.rst:422 msgid "" "prepare your program or module by specially marking translatable strings" msgstr "" "prepare su programa o módulo marcando especialmente cadenas traducibles" -#: ../Doc/library/gettext.rst:426 +#: ../Doc/library/gettext.rst:424 msgid "" "run a suite of tools over your marked files to generate raw messages catalogs" msgstr "" "ejecuta un conjunto de herramientas sobre tus archivos marcados para generar " "catálogos de mensajes sin procesar" -#: ../Doc/library/gettext.rst:428 +#: ../Doc/library/gettext.rst:426 msgid "create language-specific translations of the message catalogs" msgstr "crear traducciones específicas del idioma de los catálogos de mensajes" -#: ../Doc/library/gettext.rst:430 +#: ../Doc/library/gettext.rst:428 msgid "" "use the :mod:`gettext` module so that message strings are properly translated" msgstr "" "use el módulo :mod:`gettext` para que las cadenas de caracteres de mensajes " "se traduzcan correctamente" -#: ../Doc/library/gettext.rst:432 +#: ../Doc/library/gettext.rst:430 +#, fuzzy msgid "" "In order to prepare your code for I18N, you need to look at all the strings " "in your files. Any string that needs to be translated should be marked by " -"wrapping it in ``_('...')`` --- that is, a call to the function :func:`_`. " -"For example::" +"wrapping it in ``_('...')`` --- that is, a call to the function :func:`_ " +"`. For example::" msgstr "" "Para preparar su código para I18N, debe mirar todas las cadenas en sus " "archivos. Cualquier cadena que deba traducirse debe marcarse envolviéndola " "en ``_('...')`` --- es decir, una llamada a la función :func:`_`. Por " "ejemplo::" -#: ../Doc/library/gettext.rst:441 +#: ../Doc/library/gettext.rst:439 msgid "" "In this example, the string ``'writing a log message'`` is marked as a " "candidate for translation, while the strings ``'mylog.txt'`` and ``'w'`` are " @@ -766,7 +777,7 @@ msgstr "" "marcada como candidata para la traducción, mientras que las cadenas ``'mylog." "txt'`` y ``'w'`` no lo están." -#: ../Doc/library/gettext.rst:444 +#: ../Doc/library/gettext.rst:442 msgid "" "There are a few tools to extract the strings meant for translation. The " "original GNU :program:`gettext` only supported C or C++ source code but its " @@ -788,7 +799,7 @@ msgstr "" "llamado :program:`xpot` hace un trabajo similar y está disponible como parte " "de su `po-utils package `__." -#: ../Doc/library/gettext.rst:454 +#: ../Doc/library/gettext.rst:452 msgid "" "(Python also includes pure-Python versions of these programs, called :" "program:`pygettext.py` and :program:`msgfmt.py`; some Python distributions " @@ -811,7 +822,7 @@ msgstr "" "`msgfmt`. Con estos dos programas, es posible que no necesite el paquete " "GNU :program:`gettext` para internacionalizar sus aplicaciones Python.)" -#: ../Doc/library/gettext.rst:466 +#: ../Doc/library/gettext.rst:464 msgid "" ":program:`xgettext`, :program:`pygettext`, and similar tools generate :file:" "`.po` files that are message catalogs. They are structured human-readable " @@ -824,7 +835,7 @@ msgstr "" "código fuente, junto con un marcador de posición para las versiones " "traducidas de estas cadenas." -#: ../Doc/library/gettext.rst:472 +#: ../Doc/library/gettext.rst:470 msgid "" "Copies of these :file:`.po` files are then handed over to the individual " "human translators who write translations for every supported natural " @@ -842,7 +853,7 @@ msgstr "" "Los archivos :file:`.mo` son utilizados por el módulo :mod:`gettext` para el " "procesamiento de traducción real en tiempo de ejecución." -#: ../Doc/library/gettext.rst:481 +#: ../Doc/library/gettext.rst:479 msgid "" "How you use the :mod:`gettext` module in your code depends on whether you " "are internationalizing a single module or your entire application. The next " @@ -852,11 +863,11 @@ msgstr "" "internacionalizando un solo módulo o toda su aplicación. Las siguientes dos " "secciones discutirán cada caso." -#: ../Doc/library/gettext.rst:487 +#: ../Doc/library/gettext.rst:485 msgid "Localizing your module" msgstr "Agregar configuración regional a su módulo" -#: ../Doc/library/gettext.rst:489 +#: ../Doc/library/gettext.rst:487 msgid "" "If you are localizing your module, you must take care not to make global " "changes, e.g. to the built-in namespace. You should not use the GNU :program:" @@ -866,7 +877,7 @@ msgstr "" "no realizar cambios globales, por ejemplo, al espacio de nombres integrado. " "No debe utilizar la API GNU :program:`gettext`, sino la API basada en clases." -#: ../Doc/library/gettext.rst:493 +#: ../Doc/library/gettext.rst:491 msgid "" "Let's say your module is called \"spam\" and the module's various natural " "language translation :file:`.mo` files reside in :file:`/usr/share/locale` " @@ -878,13 +889,14 @@ msgstr "" "locale` en formato GNU :program:`gettext`. Esto es lo que pondría en la " "parte superior de su módulo::" -#: ../Doc/library/gettext.rst:504 +#: ../Doc/library/gettext.rst:502 msgid "Localizing your application" msgstr "Agregar configuración regional a su aplicación" -#: ../Doc/library/gettext.rst:506 +#: ../Doc/library/gettext.rst:504 +#, fuzzy msgid "" -"If you are localizing your application, you can install the :func:`_` " +"If you are localizing your application, you can install the :func:`!_` " "function globally into the built-in namespace, usually in the main driver " "file of your application. This will let all your application-specific files " "just use ``_('...')`` without having to explicitly install it in each file." @@ -895,7 +907,7 @@ msgstr "" "permitirá que todos los archivos específicos de su aplicación usen " "``_('...')`` sin tener que instalarlo explícitamente en cada archivo." -#: ../Doc/library/gettext.rst:511 +#: ../Doc/library/gettext.rst:509 msgid "" "In the simple case then, you need only add the following bit of code to the " "main driver file of your application::" @@ -903,7 +915,7 @@ msgstr "" "En el caso simple, entonces, solo necesita agregar el siguiente bit de " "código al archivo del controlador principal de su aplicación:" -#: ../Doc/library/gettext.rst:517 +#: ../Doc/library/gettext.rst:515 msgid "" "If you need to set the locale directory, you can pass it into the :func:" "`install` function::" @@ -911,11 +923,11 @@ msgstr "" "Si necesita establecer el directorio de configuración regional, puede " "pasarlo a la función :func:`install`::" -#: ../Doc/library/gettext.rst:525 +#: ../Doc/library/gettext.rst:523 msgid "Changing languages on the fly" msgstr "Cambiar idiomas sobre la marcha" -#: ../Doc/library/gettext.rst:527 +#: ../Doc/library/gettext.rst:525 msgid "" "If your program needs to support many languages at the same time, you may " "want to create multiple translation instances and then switch between them " @@ -925,11 +937,11 @@ msgstr "" "que desee crear varias instancias de traducción y luego cambiar entre ellas " "explícitamente, de esta manera:" -#: ../Doc/library/gettext.rst:548 +#: ../Doc/library/gettext.rst:546 msgid "Deferred translations" msgstr "Traducciones diferidas" -#: ../Doc/library/gettext.rst:550 +#: ../Doc/library/gettext.rst:548 msgid "" "In most coding situations, strings are translated where they are coded. " "Occasionally however, you need to mark strings for translation, but defer " @@ -940,7 +952,7 @@ msgstr "" "traducción, pero diferir la traducción real hasta más tarde. Un ejemplo " "clásico es::" -#: ../Doc/library/gettext.rst:563 +#: ../Doc/library/gettext.rst:561 msgid "" "Here, you want to mark the strings in the ``animals`` list as being " "translatable, but you don't actually want to translate them until they are " @@ -949,16 +961,17 @@ msgstr "" "Aquí, desea marcar las cadenas en la lista de ``animals`` como traducibles, " "pero en realidad no desea traducirlas hasta que se impriman." -#: ../Doc/library/gettext.rst:567 +#: ../Doc/library/gettext.rst:565 msgid "Here is one way you can handle this situation::" msgstr "Aquí hay una manera de manejar esta situación:" -#: ../Doc/library/gettext.rst:583 +#: ../Doc/library/gettext.rst:581 +#, fuzzy msgid "" -"This works because the dummy definition of :func:`_` simply returns the " +"This works because the dummy definition of :func:`!_` simply returns the " "string unchanged. And this dummy definition will temporarily override any " -"definition of :func:`_` in the built-in namespace (until the :keyword:`del` " -"command). Take care, though if you have a previous definition of :func:`_` " +"definition of :func:`!_` in the built-in namespace (until the :keyword:`del` " +"command). Take care, though if you have a previous definition of :func:`!_` " "in the local namespace." msgstr "" "Esto funciona porque la definición ficticia de :func:`_` simplemente retorna " @@ -967,9 +980,10 @@ msgstr "" "(hasta el comando :keyword:`del`). Sin embargo, tenga cuidado si tiene una " "definición previa de :func:`_` en el espacio de nombres local." -#: ../Doc/library/gettext.rst:589 +#: ../Doc/library/gettext.rst:587 +#, fuzzy msgid "" -"Note that the second use of :func:`_` will not identify \"a\" as being " +"Note that the second use of :func:`!_` will not identify \"a\" as being " "translatable to the :program:`gettext` program, because the parameter is not " "a string literal." msgstr "" @@ -977,20 +991,21 @@ msgstr "" "traducible al programa :program:`gettext`, porque el parámetro no es un " "literal de cadena." -#: ../Doc/library/gettext.rst:593 +#: ../Doc/library/gettext.rst:591 msgid "Another way to handle this is with the following example::" msgstr "Otra forma de manejar esto es con el siguiente ejemplo:" -#: ../Doc/library/gettext.rst:607 +#: ../Doc/library/gettext.rst:605 +#, fuzzy msgid "" -"In this case, you are marking translatable strings with the function :func:" -"`N_`, which won't conflict with any definition of :func:`_`. However, you " +"In this case, you are marking translatable strings with the function :func:`!" +"N_`, which won't conflict with any definition of :func:`!_`. However, you " "will need to teach your message extraction program to look for translatable " -"strings marked with :func:`N_`. :program:`xgettext`, :program:`pygettext`, " +"strings marked with :func:`!N_`. :program:`xgettext`, :program:`pygettext`, " "``pybabel extract``, and :program:`xpot` all support this through the use of " -"the :option:`!-k` command-line switch. The choice of :func:`N_` here is " -"totally arbitrary; it could have just as easily been :func:" -"`MarkThisStringForTranslation`." +"the :option:`!-k` command-line switch. The choice of :func:`!N_` here is " +"totally arbitrary; it could have just as easily been :func:`!" +"MarkThisStringForTranslation`." msgstr "" "En este caso, está marcando cadenas traducibles con la función :func:`N_`, " "que no entrará en conflicto con ninguna definición de :func:`_`. Sin " @@ -1001,11 +1016,11 @@ msgstr "" "elección de :func:`N_` aquí es totalmente arbitraria; podría haber sido " "igual de fácil :func:`MarkThisStringForTranslation`." -#: ../Doc/library/gettext.rst:618 +#: ../Doc/library/gettext.rst:616 msgid "Acknowledgements" msgstr "Agradecimientos" -#: ../Doc/library/gettext.rst:620 +#: ../Doc/library/gettext.rst:618 msgid "" "The following people contributed code, feedback, design suggestions, " "previous implementations, and valuable experience to the creation of this " @@ -1015,43 +1030,43 @@ msgstr "" "de diseño, implementaciones anteriores y una valiosa experiencia para la " "creación de este módulo:" -#: ../Doc/library/gettext.rst:623 +#: ../Doc/library/gettext.rst:621 msgid "Peter Funk" msgstr "*Peter Funk*" -#: ../Doc/library/gettext.rst:625 +#: ../Doc/library/gettext.rst:623 msgid "James Henstridge" msgstr "*James Henstridge*" -#: ../Doc/library/gettext.rst:627 +#: ../Doc/library/gettext.rst:625 msgid "Juan David Ibáñez Palomar" msgstr "*Juan David Ibáñez Palomar*" -#: ../Doc/library/gettext.rst:629 +#: ../Doc/library/gettext.rst:627 msgid "Marc-André Lemburg" msgstr "*Marc-André Lemburg*" -#: ../Doc/library/gettext.rst:631 +#: ../Doc/library/gettext.rst:629 msgid "Martin von Löwis" msgstr "Martin von Löwis" -#: ../Doc/library/gettext.rst:633 +#: ../Doc/library/gettext.rst:631 msgid "François Pinard" msgstr "*François Pinard*" -#: ../Doc/library/gettext.rst:635 +#: ../Doc/library/gettext.rst:633 msgid "Barry Warsaw" msgstr "*Barry Warsaw*" -#: ../Doc/library/gettext.rst:637 +#: ../Doc/library/gettext.rst:635 msgid "Gustavo Niemeyer" msgstr "*Gustavo Niemeyer*" -#: ../Doc/library/gettext.rst:640 +#: ../Doc/library/gettext.rst:638 msgid "Footnotes" msgstr "Notas al pie" -#: ../Doc/library/gettext.rst:641 +#: ../Doc/library/gettext.rst:639 msgid "" "The default locale directory is system dependent; for example, on RedHat " "Linux it is :file:`/usr/share/locale`, but on Solaris it is :file:`/usr/lib/" @@ -1069,6 +1084,18 @@ msgstr "" "base_prefix`). Por esta razón, siempre es mejor llamar a :func:" "`bindtextdomain` con una ruta absoluta explícita al inicio de su aplicación." -#: ../Doc/library/gettext.rst:649 +#: ../Doc/library/gettext.rst:647 msgid "See the footnote for :func:`bindtextdomain` above." msgstr "Vea la nota al pie de página para :func:`bindtextdomain` arriba." + +#: ../Doc/library/gettext.rst:56 +msgid "_ (underscore)" +msgstr "" + +#: ../Doc/library/gettext.rst:56 +msgid "gettext" +msgstr "" + +#: ../Doc/library/gettext.rst:394 +msgid "GNOME" +msgstr "" diff --git a/library/glob.po b/library/glob.po index 70bd0f3056..4b003fa2bb 100644 --- a/library/glob.po +++ b/library/glob.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-01-28 10:41-0300\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/glob.rst:2 msgid ":mod:`glob` --- Unix style pathname pattern expansion" @@ -74,6 +73,7 @@ msgid "The :mod:`pathlib` module offers high-level path objects." msgstr "El módulo :mod:`pathlib` ofrece objetos ruta de alto nivel." #: ../Doc/library/glob.rst:45 +#, fuzzy msgid "" "Return a possibly empty list of path names that match *pathname*, which must " "be a string containing a path specification. *pathname* can be either " @@ -82,7 +82,7 @@ msgid "" "symlinks are included in the results (as in the shell). Whether or not the " "results are sorted depends on the file system. If a file that satisfies " "conditions is removed or added during the call of this function, whether a " -"path name for that file be included is unspecified." +"path name for that file will be included is unspecified." msgstr "" "Retorna una lista posiblemente vacía de nombres de ruta que coincidan con " "*pathname*, que debe ser una cadena de caracteres que contenga una " @@ -223,3 +223,43 @@ msgstr "Módulo :mod:`fnmatch`" #: ../Doc/library/glob.rst:151 msgid "Shell-style filename (not path) expansion" msgstr "Expansión de nombre de fichero (no de ruta) al estilo de la terminal" + +#: ../Doc/library/glob.rst:9 +msgid "filenames" +msgstr "" + +#: ../Doc/library/glob.rst:9 +msgid "pathname expansion" +msgstr "" + +#: ../Doc/library/glob.rst:13 +msgid "* (asterisk)" +msgstr "" + +#: ../Doc/library/glob.rst:13 ../Doc/library/glob.rst:63 +msgid "in glob-style wildcards" +msgstr "" + +#: ../Doc/library/glob.rst:13 +msgid "? (question mark)" +msgstr "" + +#: ../Doc/library/glob.rst:13 +msgid "[] (square brackets)" +msgstr "" + +#: ../Doc/library/glob.rst:13 +msgid "! (exclamation)" +msgstr "" + +#: ../Doc/library/glob.rst:13 +msgid "- (minus)" +msgstr "" + +#: ../Doc/library/glob.rst:13 +msgid ". (dot)" +msgstr "" + +#: ../Doc/library/glob.rst:63 +msgid "**" +msgstr "" diff --git a/library/graphlib.po b/library/graphlib.po index a135a44aab..dda1319ee7 100644 --- a/library/graphlib.po +++ b/library/graphlib.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: Python en Español 3.9\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-16 21:42+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \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.9.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/graphlib.rst:2 msgid ":mod:`graphlib` --- Functionality to operate with graph-like structures" @@ -27,7 +27,10 @@ msgid "**Source code:** :source:`Lib/graphlib.py`" msgstr "**Código fuente:** :source:`Lib/graphlib.py`" #: ../Doc/library/graphlib.rst:20 -msgid "Provides functionality to topologically sort a graph of hashable nodes." +#, fuzzy +msgid "" +"Provides functionality to topologically sort a graph of :term:`hashable` " +"nodes." msgstr "" "Provee una funcionalidad para ordenar topológicamente un grafo de nodos hash." @@ -120,9 +123,10 @@ msgstr "" "de los nodos a medida que estén listos. Para la instancia::" #: ../Doc/library/graphlib.rst:87 +#, fuzzy msgid "" "Add a new node and its predecessors to the graph. Both the *node* and all " -"elements in *predecessors* must be hashable." +"elements in *predecessors* must be :term:`hashable`." msgstr "" "Añade un nuevo nodo y sus predecesores al grafo. Tanto el *node* como todos " "los elementos de *predecessors* deben ser hashables." @@ -187,9 +191,10 @@ msgstr "" "meth:`TopologicalSorter.get_ready`." #: ../Doc/library/graphlib.rst:118 +#, fuzzy msgid "" -"The :meth:`~TopologicalSorter.__bool__` method of this class defers to this " -"function, so instead of::" +"The :meth:`~object.__bool__` method of this class defers to this function, " +"so instead of::" msgstr "" "El método :meth:`~TopologicalSorter.__bool__` de esta clase defiere a esta " "función, por lo que en lugar de::" @@ -301,9 +306,10 @@ msgstr "" "incluirá en la excepción." #: ../Doc/library/graphlib.rst:207 +#, fuzzy msgid "" "The detected cycle can be accessed via the second element in the :attr:" -"`~CycleError.args` attribute of the exception instance and consists in a " +"`~BaseException.args` attribute of the exception instance and consists in a " "list of nodes, such that each node is, in the graph, an immediate " "predecessor of the next node in the list. In the reported list, the first " "and the last node will be the same, to make it clear that it is cyclic." diff --git a/library/gzip.po b/library/gzip.po index 0b8c5ea836..a4018737d5 100644 --- a/library/gzip.po +++ b/library/gzip.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-13 10:19+0100\n" "Last-Translator: Carlos AlMA \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/gzip.rst:2 msgid ":mod:`gzip` --- Support for :program:`gzip` files" @@ -140,7 +139,7 @@ msgstr "" msgid "Added support for the ``'x'``, ``'xb'`` and ``'xt'`` modes." msgstr "Se agregó soporte para los modos ``'x'``, ``'xb'`` y ``'xt'``." -#: ../Doc/library/gzip.rst:59 ../Doc/library/gzip.rst:165 +#: ../Doc/library/gzip.rst:59 ../Doc/library/gzip.rst:171 msgid "Accepts a :term:`path-like object`." msgstr "Acepta un :term:`path-like object`." @@ -155,11 +154,12 @@ msgstr "" "archivos gzip no válidos." #: ../Doc/library/gzip.rst:72 +#, fuzzy msgid "" "Constructor for the :class:`GzipFile` class, which simulates most of the " -"methods of a :term:`file object`, with the exception of the :meth:`truncate` " -"method. At least one of *fileobj* and *filename* must be given a non-" -"trivial value." +"methods of a :term:`file object`, with the exception of the :meth:`~io." +"IOBase.truncate` method. At least one of *fileobj* and *filename* must be " +"given a non-trivial value." msgstr "" "Constructor para la clase :class:`GzipFile`, que simula la mayoría de los " "métodos de :term:`file object`, con la excepción del método :meth:" @@ -262,10 +262,11 @@ msgstr "" "`~io.BytesIO.getvalue`." #: ../Doc/library/gzip.rst:114 +#, fuzzy msgid "" ":class:`GzipFile` supports the :class:`io.BufferedIOBase` interface, " -"including iteration and the :keyword:`with` statement. Only the :meth:" -"`truncate` method isn't implemented." +"including iteration and the :keyword:`with` statement. Only the :meth:`~io." +"IOBase.truncate` method isn't implemented." msgstr "" ":class:`GzipFile` admite la interfaz :class:`io.BufferedIOBase`, incluida la " "iteración y la declaración :keyword:`with`. Solo el método :meth:`truncate` " @@ -320,7 +321,14 @@ msgstr "" "func:`time.time` y el atributo :attr:`~os.stat_result.st_mtime` del objeto " "retornado por :func:`os.stat`." -#: ../Doc/library/gzip.rst:146 +#: ../Doc/library/gzip.rst:148 +msgid "" +"The path to the gzip file on disk, as a :class:`str` or :class:`bytes`. " +"Equivalent to the output of :func:`os.fspath` on the original input path, " +"with no other normalization, resolution or expansion." +msgstr "" + +#: ../Doc/library/gzip.rst:152 msgid "" "Support for the :keyword:`with` statement was added, along with the *mtime* " "constructor argument and :attr:`mtime` attribute." @@ -328,21 +336,21 @@ msgstr "" "Se ha agregado soporte para la declaración :keyword:`with`, junto con el " "argumento del constructor *mtime* y el atributo :attr:`mtime`." -#: ../Doc/library/gzip.rst:150 +#: ../Doc/library/gzip.rst:156 msgid "Support for zero-padded and unseekable files was added." msgstr "" "Se agregó soporte para archivos con relleno de ceros y que no se pueden " "buscar." -#: ../Doc/library/gzip.rst:153 +#: ../Doc/library/gzip.rst:159 msgid "The :meth:`io.BufferedIOBase.read1` method is now implemented." msgstr "El método :meth:`io.BufferedIOBase.read1` ahora está implementado." -#: ../Doc/library/gzip.rst:156 +#: ../Doc/library/gzip.rst:162 msgid "Added support for the ``'x'`` and ``'xb'`` modes." msgstr "Se agregó soporte para los modos ``'x'`` y ``'xb'``." -#: ../Doc/library/gzip.rst:159 +#: ../Doc/library/gzip.rst:165 msgid "" "Added support for writing arbitrary :term:`bytes-like objects `. The :meth:`~io.BufferedIOBase.read` method now accepts an argument " @@ -352,7 +360,13 @@ msgstr "" "objects `. El método :meth:`~io.BufferedIOBase.read` " "ahora acepta un argumento de ``None``." -#: ../Doc/library/gzip.rst:168 +#: ../Doc/library/gzip.rst:174 +msgid "" +"Remove the ``filename`` attribute, use the :attr:`~GzipFile.name` attribute " +"instead." +msgstr "" + +#: ../Doc/library/gzip.rst:178 msgid "" "Opening :class:`GzipFile` for writing without specifying the *mode* argument " "is deprecated." @@ -360,7 +374,7 @@ msgstr "" "Abriendo :class:`GzipFile` para escribir sin especificar el argumento *mode* " "está obsoleto." -#: ../Doc/library/gzip.rst:175 +#: ../Doc/library/gzip.rst:185 msgid "" "Compress the *data*, returning a :class:`bytes` object containing the " "compressed data. *compresslevel* and *mtime* have the same meaning as in " @@ -374,11 +388,11 @@ msgstr "" "en esta función, es equivalente a :func:`zlib.compress` con *wbits* " "configurado a ``31``. La función zlib es más rápida." -#: ../Doc/library/gzip.rst:182 +#: ../Doc/library/gzip.rst:192 msgid "Added the *mtime* parameter for reproducible output." msgstr "Se agregó el parámetro *mtime* para una salida reproducible." -#: ../Doc/library/gzip.rst:184 +#: ../Doc/library/gzip.rst:194 msgid "" "Speed is improved by compressing all data at once instead of in a streamed " "fashion. Calls with *mtime* set to ``0`` are delegated to :func:`zlib." @@ -388,7 +402,7 @@ msgstr "" "transmitirlos. Las llamadas con *mtime* establecido a ``0`` se delegan a :" "func:`zlib.compress` para una mejor velocidad." -#: ../Doc/library/gzip.rst:191 +#: ../Doc/library/gzip.rst:201 msgid "" "Decompress the *data*, returning a :class:`bytes` object containing the " "uncompressed data. This function is capable of decompressing multi-member " @@ -402,7 +416,7 @@ msgstr "" "está seguro de que los datos contienen un solo miembro, la función :func:" "`zlib.decompress` es más rápida si se establece *wbits* a 31." -#: ../Doc/library/gzip.rst:198 +#: ../Doc/library/gzip.rst:208 msgid "" "Speed is improved by decompressing members at once in memory instead of in a " "streamed fashion." @@ -410,31 +424,31 @@ msgstr "" "La velocidad se mejora al descomprimir los miembros simultáneamente en " "memoria en lugar de hacerlo de manera continua." -#: ../Doc/library/gzip.rst:205 +#: ../Doc/library/gzip.rst:215 msgid "Examples of usage" msgstr "Ejemplos de uso" -#: ../Doc/library/gzip.rst:207 +#: ../Doc/library/gzip.rst:217 msgid "Example of how to read a compressed file::" msgstr "Ejemplos de como leer un archivo comprimido::" -#: ../Doc/library/gzip.rst:213 +#: ../Doc/library/gzip.rst:223 msgid "Example of how to create a compressed GZIP file::" msgstr "Ejemplos de como crear un archivo comprimido GZIP::" -#: ../Doc/library/gzip.rst:220 +#: ../Doc/library/gzip.rst:230 msgid "Example of how to GZIP compress an existing file::" msgstr "Ejemplos de como GZIP comprime un archivo existente::" -#: ../Doc/library/gzip.rst:228 +#: ../Doc/library/gzip.rst:238 msgid "Example of how to GZIP compress a binary string::" msgstr "Ejemplo de como GZIP comprime una cadena binaria::" -#: ../Doc/library/gzip.rst:237 +#: ../Doc/library/gzip.rst:247 msgid "Module :mod:`zlib`" msgstr "Módulo :mod:`zlib`" -#: ../Doc/library/gzip.rst:237 +#: ../Doc/library/gzip.rst:247 msgid "" "The basic data compression module needed to support the :program:`gzip` file " "format." @@ -442,11 +456,11 @@ msgstr "" "El módulo básico de compresión de datos necesario para admitir el formato de " "archivo :program:`gzip`." -#: ../Doc/library/gzip.rst:244 +#: ../Doc/library/gzip.rst:254 msgid "Command Line Interface" msgstr "Interfaz de Línea de Comandos" -#: ../Doc/library/gzip.rst:246 +#: ../Doc/library/gzip.rst:256 msgid "" "The :mod:`gzip` module provides a simple command line interface to compress " "or decompress files." @@ -454,12 +468,12 @@ msgstr "" "El módulo :mod:`gzip` proporciona una interfaz de línea de comandos simple " "para comprimir o descomprimir archivos." -#: ../Doc/library/gzip.rst:249 +#: ../Doc/library/gzip.rst:259 msgid "Once executed the :mod:`gzip` module keeps the input file(s)." msgstr "" "Una vez ejecutado el módulo :mod:`gzip` conserva los archivos de entrada." -#: ../Doc/library/gzip.rst:253 +#: ../Doc/library/gzip.rst:263 msgid "" "Add a new command line interface with a usage. By default, when you will " "execute the CLI, the default compression level is 6." @@ -468,26 +482,27 @@ msgstr "" "predeterminada, cuando ejecutará la CLI, el nivel de compresión " "predeterminado es 6." -#: ../Doc/library/gzip.rst:257 +#: ../Doc/library/gzip.rst:267 msgid "Command line options" msgstr "Opciones de línea de comandos" -#: ../Doc/library/gzip.rst:261 -msgid "If *file* is not specified, read from :attr:`sys.stdin`." +#: ../Doc/library/gzip.rst:271 +#, fuzzy +msgid "If *file* is not specified, read from :data:`sys.stdin`." msgstr "Si no se especifica *file*, lee de :attr:`sys.stdin`." -#: ../Doc/library/gzip.rst:265 +#: ../Doc/library/gzip.rst:275 msgid "Indicates the fastest compression method (less compression)." msgstr "Indica el método de compresión más rápido (menos compresión)." -#: ../Doc/library/gzip.rst:269 +#: ../Doc/library/gzip.rst:279 msgid "Indicates the slowest compression method (best compression)." msgstr "Indica el método de compresión más lento (mejor compresión)." -#: ../Doc/library/gzip.rst:273 +#: ../Doc/library/gzip.rst:283 msgid "Decompress the given file." msgstr "Descomprime el archivo dado." -#: ../Doc/library/gzip.rst:277 +#: ../Doc/library/gzip.rst:287 msgid "Show the help message." msgstr "Muestra el mensaje de ayuda." diff --git a/library/hashlib.po b/library/hashlib.po index a2881d5d49..4bbc4d11ce 100644 --- a/library/hashlib.po +++ b/library/hashlib.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-02-10 12:24-0300\n" "Last-Translator: Francisco Mora \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 2.4.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/hashlib.rst:2 msgid ":mod:`hashlib` --- Secure hashes and message digests" @@ -31,13 +30,15 @@ msgid "**Source code:** :source:`Lib/hashlib.py`" msgstr "**Código fuente:** :source:`Lib/hashlib.py`" #: ../Doc/library/hashlib.rst:23 +#, fuzzy msgid "" "This module implements a common interface to many different secure hash and " "message digest algorithms. Included are the FIPS secure hash algorithms " -"SHA1, SHA224, SHA256, SHA384, and SHA512 (defined in FIPS 180-2) as well as " -"RSA's MD5 algorithm (defined in internet :rfc:`1321`). The terms \"secure " -"hash\" and \"message digest\" are interchangeable. Older algorithms were " -"called message digests. The modern term is secure hash." +"SHA1, SHA224, SHA256, SHA384, SHA512, (defined in `the FIPS 180-4 " +"standard`_), the SHA-3 series (defined in `the FIPS 202 standard`_) as well " +"as RSA's MD5 algorithm (defined in internet :rfc:`1321`). The terms " +"\"secure hash\" and \"message digest\" are interchangeable. Older " +"algorithms were called message digests. The modern term is secure hash." msgstr "" "Este módulo implementa una interfaz común a diferentes algoritmos de hash " "seguro y resúmenes de mensajes. Están incluidos los algoritmos de hash " @@ -47,7 +48,7 @@ msgstr "" "algoritmos más antiguos eran denominados resúmenes de mensajes. El término " "moderno es hash seguro." -#: ../Doc/library/hashlib.rst:32 +#: ../Doc/library/hashlib.rst:33 msgid "" "If you want the adler32 or crc32 hash functions, they are available in the :" "mod:`zlib` module." @@ -55,27 +56,21 @@ msgstr "" "Si quieres las funciones de hash adler32 o crc32, están disponibles en el " "módulo :mod:`zlib`." -#: ../Doc/library/hashlib.rst:37 -msgid "" -"Some algorithms have known hash collision weaknesses, refer to the \"See " -"also\" section at the end." -msgstr "" -"Algunos algoritmos tienen conocidas debilidades de colisión de hash, " -"consulte la sección \"Ver también\" al final." - -#: ../Doc/library/hashlib.rst:44 +#: ../Doc/library/hashlib.rst:40 msgid "Hash algorithms" msgstr "Algoritmos de hash" -#: ../Doc/library/hashlib.rst:46 +#: ../Doc/library/hashlib.rst:42 +#, fuzzy msgid "" "There is one constructor method named for each type of :dfn:`hash`. All " "return a hash object with the same simple interface. For example: use :func:" "`sha256` to create a SHA-256 hash object. You can now feed this object with :" "term:`bytes-like objects ` (normally :class:`bytes`) " -"using the :meth:`update` method. At any point you can ask it for the :dfn:" -"`digest` of the concatenation of the data fed to it so far using the :meth:" -"`digest` or :meth:`hexdigest` methods." +"using the :meth:`update` method. At any point you can ask it " +"for the :dfn:`digest` of the concatenation of the data fed to it so far " +"using the :meth:`digest()` or :meth:`hexdigest()` methods." msgstr "" "Hay un método constructor nombrado para cada tipo de :dfn:`hash`. Todos " "retornan un objeto de hash con la misma interfaz simple. Por ejemplo, usa :" @@ -85,33 +80,23 @@ msgstr "" "pedir el resumen (:dfn:`digest`) de la concatenación de los datos " "alimentados al mismo usando los métodos :meth:`digest` o :meth:`hexdigest`." -#: ../Doc/library/hashlib.rst:56 -msgid "" -"For better multithreading performance, the Python :term:`GIL` is released " -"for data larger than 2047 bytes at object creation or on update." -msgstr "" -"Para un rendimiento multihilo mejor, el :term:`GIL` de Python es liberado " -"para datos superiores a 2047 bytes en la creación o actualización de objetos." - -#: ../Doc/library/hashlib.rst:61 +#: ../Doc/library/hashlib.rst:50 msgid "" -"Feeding string objects into :meth:`update` is not supported, as hashes work " -"on bytes, not on characters." +"To allow multithreading, the Python :term:`GIL` is released while computing " +"a hash supplied more than 2047 bytes of data at once in its constructor or :" +"meth:`.update` method." msgstr "" -"La alimentación de objetos de cadenas en :meth:`update` no está soportada, " -"ya que los hashes funcionan en bytes, no en caracteres." -#: ../Doc/library/hashlib.rst:66 +#: ../Doc/library/hashlib.rst:57 +#, fuzzy msgid "" "Constructors for hash algorithms that are always present in this module are :" "func:`sha1`, :func:`sha224`, :func:`sha256`, :func:`sha384`, :func:" -"`sha512`, :func:`blake2b`, and :func:`blake2s`. :func:`md5` is normally " -"available as well, though it may be missing or blocked if you are using a " -"rare \"FIPS compliant\" build of Python. Additional algorithms may also be " -"available depending upon the OpenSSL library that Python uses on your " -"platform. On most platforms the :func:`sha3_224`, :func:`sha3_256`, :func:" -"`sha3_384`, :func:`sha3_512`, :func:`shake_128`, :func:`shake_256` are also " -"available." +"`sha512`, :func:`sha3_224`, :func:`sha3_256`, :func:`sha3_384`, :func:" +"`sha3_512`, :func:`shake_128`, :func:`shake_256`, :func:`blake2b`, and :func:" +"`blake2s`. :func:`md5` is normally available as well, though it may be " +"missing or blocked if you are using a rare \"FIPS compliant\" build of " +"Python. These correspond to :data:`algorithms_guaranteed`." msgstr "" "Los constructores para algoritmos hash que siempre están presentes en este " "módulo son :func:`sha1`, :func:`sha224`, :func:`sha256`, :func:`sha384`, :" @@ -123,19 +108,39 @@ msgstr "" "también están disponibles :func:`sha3_224`, :func:`sha3_256`, :func:" "`sha3_384`, :func:`sha3_512`, :func:`shake_128`, :func:`shake_256`." +#: ../Doc/library/hashlib.rst:65 +msgid "" +"Additional algorithms may also be available if your Python distribution's :" +"mod:`hashlib` was linked against a build of OpenSSL that provides others. " +"Others *are not guaranteed available* on all installations and will only be " +"accessible by name via :func:`new`. See :data:`algorithms_available`." +msgstr "" + +#: ../Doc/library/hashlib.rst:72 +#, fuzzy +msgid "" +"Some algorithms have known hash collision weaknesses (including MD5 and " +"SHA1). Refer to `Attacks on cryptographic hash algorithms`_ and the `hashlib-" +"seealso`_ section at the end of this document." +msgstr "" +"Algunos algoritmos tienen conocidas debilidades de colisión de hash, " +"consulte la sección \"Ver también\" al final." + #: ../Doc/library/hashlib.rst:76 +#, fuzzy msgid "" "SHA3 (Keccak) and SHAKE constructors :func:`sha3_224`, :func:`sha3_256`, :" -"func:`sha3_384`, :func:`sha3_512`, :func:`shake_128`, :func:`shake_256`." +"func:`sha3_384`, :func:`sha3_512`, :func:`shake_128`, :func:`shake_256` were " +"added." msgstr "" "Constructores SHA3 (Keccak) y SHAKE :func:`sha3_224`, :func:`sha3_256`, :" "func:`sha3_384`, :func:`sha3_512`, :func:`shake_128`, :func:`shake_256`." -#: ../Doc/library/hashlib.rst:80 +#: ../Doc/library/hashlib.rst:81 msgid ":func:`blake2b` and :func:`blake2s` were added." msgstr "Fueron añadidas :func:`blake2b` y :func:`blake2s`." -#: ../Doc/library/hashlib.rst:85 +#: ../Doc/library/hashlib.rst:86 msgid "" "All hashlib constructors take a keyword-only argument *usedforsecurity* with " "default value ``True``. A false value allows the use of insecure and blocked " @@ -150,29 +155,47 @@ msgstr "" "contexto de seguridad, por ejemplo, como una función de compresión " "unidireccional no criptográfica." -#: ../Doc/library/hashlib.rst:92 -msgid "Hashlib now uses SHA3 and SHAKE from OpenSSL 1.1.1 and newer." +#: ../Doc/library/hashlib.rst:93 +#, fuzzy +msgid "Hashlib now uses SHA3 and SHAKE from OpenSSL if it provides it." msgstr "Hashlib ahora usa SHA3 y SHAKE de OpenSSL 1.1.1 y posteriores." -#: ../Doc/library/hashlib.rst:94 +#: ../Doc/library/hashlib.rst:96 msgid "" -"For example, to obtain the digest of the byte string ``b\"Nobody inspects " -"the spammish repetition\"``::" +"For any of the MD5, SHA1, SHA2, or SHA3 algorithms that the linked OpenSSL " +"does not provide we fall back to a verified implementation from the `HACL\\* " +"project`_." +msgstr "" + +#: ../Doc/library/hashlib.rst:102 +msgid "Usage" +msgstr "" + +#: ../Doc/library/hashlib.rst:104 +#, fuzzy +msgid "" +"To obtain the digest of the byte string ``b\"Nobody inspects the spammish " +"repetition\"``::" msgstr "" "Por ejemplo, para obtener el resumen de la cadena de bytes ``b'Nobody " "inspects the spammish repetition'``::" -#: ../Doc/library/hashlib.rst:106 +#: ../Doc/library/hashlib.rst:116 msgid "More condensed:" msgstr "Más resumido:" -#: ../Doc/library/hashlib.rst:113 +#: ../Doc/library/hashlib.rst:122 +#, fuzzy +msgid "Constructors" +msgstr "Constantes" + +#: ../Doc/library/hashlib.rst:126 +#, fuzzy msgid "" "Is a generic constructor that takes the string *name* of the desired " "algorithm as its first parameter. It also exists to allow access to the " "above listed hashes as well as any other algorithms that your OpenSSL " -"library may offer. The named constructors are much faster than :func:`new` " -"and should be preferred." +"library may offer." msgstr "" "Es un constructor genérico que toma la cadena *name* del algoritmo deseado " "como su primer parámetro. También existe para permitir acceso a los hashes " @@ -180,15 +203,27 @@ msgstr "" "biblioteca OpenSSL puede ofrecer. Los constructores nombrados son mucho más " "rápidos que :func:`new` y deberían preferirse." -#: ../Doc/library/hashlib.rst:119 -msgid "Using :func:`new` with an algorithm provided by OpenSSL:" +#: ../Doc/library/hashlib.rst:131 +#, fuzzy +msgid "Using :func:`new` with an algorithm name:" msgstr "Usando :func:`new` con un algoritmo provisto por OpenSSL:" -#: ../Doc/library/hashlib.rst:126 -msgid "Hashlib provides the following constant attributes:" +#: ../Doc/library/hashlib.rst:150 +msgid "" +"Named constructors such as these are faster than passing an algorithm name " +"to :func:`new`." +msgstr "" + +#: ../Doc/library/hashlib.rst:154 +msgid "Attributes" +msgstr "" + +#: ../Doc/library/hashlib.rst:156 +#, fuzzy +msgid "Hashlib provides the following constant module attributes:" msgstr "Hashlib provee los siguientes atributos constantes:" -#: ../Doc/library/hashlib.rst:130 +#: ../Doc/library/hashlib.rst:160 msgid "" "A set containing the names of the hash algorithms guaranteed to be supported " "by this module on all platforms. Note that 'md5' is in this list despite " @@ -200,7 +235,7 @@ msgstr "" "se encuentra en esta lista a pesar de que algunos proveedores ofrecen una " "extraña construcción Python \"compatible con FIPS\" que la excluye." -#: ../Doc/library/hashlib.rst:139 +#: ../Doc/library/hashlib.rst:169 msgid "" "A set containing the names of the hash algorithms that are available in the " "running Python interpreter. These names will be recognized when passed to :" @@ -214,7 +249,12 @@ msgstr "" "siempre será un subconjunto. El mismo algoritmo puede aparecer múltiples " "veces en este conjunto bajo diferentes nombres (gracias a OpenSSL)." -#: ../Doc/library/hashlib.rst:147 +#: ../Doc/library/hashlib.rst:178 +#, fuzzy +msgid "Hash Objects" +msgstr "Creando objetos hash" + +#: ../Doc/library/hashlib.rst:180 msgid "" "The following values are provided as constant attributes of the hash objects " "returned by the constructors:" @@ -222,19 +262,19 @@ msgstr "" "Los siguientes valores son provistos como atributos constantes de los " "objetos hash retornados por los constructores:" -#: ../Doc/library/hashlib.rst:153 +#: ../Doc/library/hashlib.rst:185 msgid "The size of the resulting hash in bytes." msgstr "El tamaño del hash resultante en bytes." -#: ../Doc/library/hashlib.rst:157 +#: ../Doc/library/hashlib.rst:189 msgid "The internal block size of the hash algorithm in bytes." msgstr "El tamaño del bloque interno del algoritmo de hash en bytes." -#: ../Doc/library/hashlib.rst:159 +#: ../Doc/library/hashlib.rst:191 msgid "A hash object has the following attributes:" msgstr "Un objeto hash tiene los siguientes atributos:" -#: ../Doc/library/hashlib.rst:163 +#: ../Doc/library/hashlib.rst:195 msgid "" "The canonical name of this hash, always lowercase and always suitable as a " "parameter to :func:`new` to create another hash of this type." @@ -242,7 +282,7 @@ msgstr "" "El nombre canónico de este hash, siempre en minúsculas y siempre adecuado " "como un parámetro a :func:`new` para crear otro hash de este tipo." -#: ../Doc/library/hashlib.rst:166 +#: ../Doc/library/hashlib.rst:198 msgid "" "The name attribute has been present in CPython since its inception, but " "until Python 3.4 was not formally specified, so may not exist on some " @@ -252,11 +292,11 @@ msgstr "" "Python 3.4 no fue especificado formalmente, por lo que puede no existir en " "algunas plataformas." -#: ../Doc/library/hashlib.rst:171 +#: ../Doc/library/hashlib.rst:203 msgid "A hash object has the following methods:" msgstr "Un objeto hash tiene los siguientes métodos:" -#: ../Doc/library/hashlib.rst:176 +#: ../Doc/library/hashlib.rst:208 msgid "" "Update the hash object with the :term:`bytes-like object`. Repeated calls " "are equivalent to a single call with the concatenation of all the arguments: " @@ -267,17 +307,7 @@ msgstr "" "todos los argumentos: ``m.update(a); m.update(b)`` es equivalente a ``m." "update(a+b)``." -#: ../Doc/library/hashlib.rst:181 -msgid "" -"The Python GIL is released to allow other threads to run while hash updates " -"on data larger than 2047 bytes is taking place when using hash algorithms " -"supplied by OpenSSL." -msgstr "" -"El GIL de Python es liberado para permitir a otros hilos ejecutarse mientras " -"ocurren actualizaciones de hash en datos con tamaños superiores a 2047 bytes " -"cuando se usan algoritmos de hash suministrados por OpenSSL." - -#: ../Doc/library/hashlib.rst:189 +#: ../Doc/library/hashlib.rst:216 msgid "" "Return the digest of the data passed to the :meth:`update` method so far. " "This is a bytes object of size :attr:`digest_size` which may contain bytes " @@ -287,7 +317,7 @@ msgstr "" "momento. Este es un objeto de bytes de tamaño :attr:`digest_size` el cual " "puede contener bytes en el rango completo desde 0 a 255." -#: ../Doc/library/hashlib.rst:196 ../Doc/library/hashlib.rst:224 +#: ../Doc/library/hashlib.rst:223 msgid "" "Like :meth:`digest` except the digest is returned as a string object of " "double length, containing only hexadecimal digits. This may be used to " @@ -298,7 +328,7 @@ msgstr "" "puede ser usado para intercambiar el valor de forma segura en correos " "electrónicos u otros entornos no binarios." -#: ../Doc/library/hashlib.rst:203 +#: ../Doc/library/hashlib.rst:230 msgid "" "Return a copy (\"clone\") of the hash object. This can be used to " "efficiently compute the digests of data sharing a common initial substring." @@ -307,11 +337,11 @@ msgstr "" "calcular eficientemente los resúmenes de datos compartiendo una subcadena " "inicial común." -#: ../Doc/library/hashlib.rst:208 +#: ../Doc/library/hashlib.rst:235 msgid "SHAKE variable length digests" msgstr "Resúmenes SHAKE de largo variable" -#: ../Doc/library/hashlib.rst:210 +#: ../Doc/library/hashlib.rst:240 msgid "" "The :func:`shake_128` and :func:`shake_256` algorithms provide variable " "length digests with length_in_bits//2 up to 128 or 256 bits of security. As " @@ -323,21 +353,39 @@ msgstr "" "tales, sus métodos de resumen requieren un largo. El largo máximo no está " "limitado por el algoritmo SHAKE." -#: ../Doc/library/hashlib.rst:217 +#: ../Doc/library/hashlib.rst:247 +#, fuzzy msgid "" -"Return the digest of the data passed to the :meth:`update` method so far. " -"This is a bytes object of size *length* which may contain bytes in the whole " -"range from 0 to 255." +"Return the digest of the data passed to the :meth:`~hash.update` method so " +"far. This is a bytes object of size *length* which may contain bytes in the " +"whole range from 0 to 255." msgstr "" "Retorna el resumen de los datos pasados al método :meth:`update` hasta el " "momento. Este es un objeto de bytes de tamaño *length* el cual puede " "contener bytes en el rango completo desde 0 a 255." -#: ../Doc/library/hashlib.rst:230 +#: ../Doc/library/hashlib.rst:254 +#, fuzzy +msgid "" +"Like :meth:`digest` except the digest is returned as a string object of " +"double length, containing only hexadecimal digits. This may be used to " +"exchange the value in email or other non-binary environments." +msgstr "" +"Como :meth:`digest` excepto que el resumen es retornado como un objeto de " +"cadena del doble de largo, conteniendo sólo dígitos hexadecimales. Este " +"puede ser usado para intercambiar el valor de forma segura en correos " +"electrónicos u otros entornos no binarios." + +#: ../Doc/library/hashlib.rst:258 +#, fuzzy +msgid "Example use:" +msgstr "Ejemplos" + +#: ../Doc/library/hashlib.rst:265 msgid "File hashing" msgstr "Cifrado de archivos" -#: ../Doc/library/hashlib.rst:232 +#: ../Doc/library/hashlib.rst:267 msgid "" "The hashlib module provides a helper function for efficient hashing of a " "file or file-like object." @@ -345,14 +393,14 @@ msgstr "" "El módulo hashlib proporciona una función de ayuda para el cifrado eficiente " "de un archivo o un objeto similar a un archivo." -#: ../Doc/library/hashlib.rst:237 +#: ../Doc/library/hashlib.rst:272 msgid "" "Return a digest object that has been updated with contents of file object." msgstr "" "Retorna un objeto digest que ha sido actualizado con el contenido del objeto " "de tipo archivo." -#: ../Doc/library/hashlib.rst:239 +#: ../Doc/library/hashlib.rst:274 msgid "" "*fileobj* must be a file-like object opened for reading in binary mode. It " "accepts file objects from builtin :func:`open`, :class:`~io.BytesIO` " @@ -370,7 +418,7 @@ msgstr "" "un estado desconocido después de que esta función devuelva o lance. Es " "responsabilidad del que llama cerrar *fileobj*." -#: ../Doc/library/hashlib.rst:247 +#: ../Doc/library/hashlib.rst:282 msgid "" "*digest* must either be a hash algorithm name as a *str*, a hash " "constructor, or a callable that returns a hash object." @@ -378,15 +426,15 @@ msgstr "" "*digest* debe ser un nombre de algoritmo de cifrado como *str*, un " "constructor de cifrado o un invocable que devuelva un objeto cifrado." -#: ../Doc/library/hashlib.rst:250 +#: ../Doc/library/hashlib.rst:285 msgid "Example:" msgstr "Ejemplo:" -#: ../Doc/library/hashlib.rst:273 +#: ../Doc/library/hashlib.rst:308 msgid "Key derivation" msgstr "Derivación de clave" -#: ../Doc/library/hashlib.rst:275 +#: ../Doc/library/hashlib.rst:310 #, python-format msgid "" "Key derivation and key stretching algorithms are designed for secure " @@ -401,7 +449,7 @@ msgstr "" "buena función hash de contraseña debe ser afinable, lenta e incluir una `sal " "`_." -#: ../Doc/library/hashlib.rst:283 +#: ../Doc/library/hashlib.rst:318 msgid "" "The function provides PKCS#5 password-based key derivation function 2. It " "uses HMAC as pseudorandom function." @@ -409,7 +457,7 @@ msgstr "" "La función provee contraseñas PKCS#5 basadas en función de derivación de " "clave 2. Usa HMAC como función de pseudoaleatoriedad." -#: ../Doc/library/hashlib.rst:286 +#: ../Doc/library/hashlib.rst:321 msgid "" "The string *hash_name* is the desired name of the hash digest algorithm for " "HMAC, e.g. 'sha1' or 'sha256'. *password* and *salt* are interpreted as " @@ -423,7 +471,7 @@ msgstr "" "un largo razonable (ej. 1024). *salt* debería ser sobre 16 o más bytes desde " "una fuente adecuada, ej. :func:`os.urandom`." -#: ../Doc/library/hashlib.rst:292 +#: ../Doc/library/hashlib.rst:327 msgid "" "The number of *iterations* should be chosen based on the hash algorithm and " "computing power. As of 2022, hundreds of thousands of iterations of SHA-256 " @@ -437,7 +485,7 @@ msgstr "" "aplicación, lea el *Apéndice A.2.2* de NIST-SP-800-132_. Las respuestas " "sobre `stackexchange pbkdf2 iterations question`_ lo explican en detalle." -#: ../Doc/library/hashlib.rst:298 +#: ../Doc/library/hashlib.rst:333 msgid "" "*dklen* is the length of the derived key. If *dklen* is ``None`` then the " "digest size of the hash algorithm *hash_name* is used, e.g. 64 for SHA-512." @@ -446,26 +494,17 @@ msgstr "" "tamaño de resumen del algoritmo de hash *hash_name* es usado, ej. 64 para " "SHA-512." -#: ../Doc/library/hashlib.rst:311 -msgid "" -"A fast implementation of *pbkdf2_hmac* is available with OpenSSL. The " -"Python implementation uses an inline version of :mod:`hmac`. It is about " -"three times slower and doesn't release the GIL." +#: ../Doc/library/hashlib.rst:342 +msgid "Function only available when Python is compiled with OpenSSL." msgstr "" -"Una implementación rápida de *pbkdf2_hmac* está disponible con OpenSSL. La " -"implementación Python usa una versión en línea de :mod:`hmac`. Es " -"aproximadamente tres veces más lenta y no libera el GIL." -#: ../Doc/library/hashlib.rst:317 +#: ../Doc/library/hashlib.rst:346 msgid "" -"Slow Python implementation of *pbkdf2_hmac* is deprecated. In the future the " -"function will only be available when Python is compiled with OpenSSL." +"Function now only available when Python is built with OpenSSL. The slow pure " +"Python implementation has been removed." msgstr "" -"La implementación lenta en Python de *pbkdf2_hmac* está obsoleta. En el " -"futuro la función estará disponible sólo cuando Python sea compilado con " -"OpenSSL." -#: ../Doc/library/hashlib.rst:323 +#: ../Doc/library/hashlib.rst:352 msgid "" "The function provides scrypt password-based key derivation function as " "defined in :rfc:`7914`." @@ -473,7 +512,7 @@ msgstr "" "La función provee una contraseña scrypt basada en una función derivación de " "clave como es definida en :rfc:`7914`." -#: ../Doc/library/hashlib.rst:326 +#: ../Doc/library/hashlib.rst:355 msgid "" "*password* and *salt* must be :term:`bytes-like objects `. Applications and libraries should limit *password* to a sensible " @@ -485,7 +524,7 @@ msgstr "" "(ej. 1024). *salt* debería ser aproximadamente 16 o más bytes de una fuente " "adecuada, ej. :func:`os.unrandom`." -#: ../Doc/library/hashlib.rst:331 +#: ../Doc/library/hashlib.rst:360 msgid "" "*n* is the CPU/Memory cost factor, *r* the block size, *p* parallelization " "factor and *maxmem* limits memory (OpenSSL 1.1.0 defaults to 32 MiB). " @@ -495,11 +534,11 @@ msgstr "" "factor de paralelización y *maxmem* limita la memoria (OpenSSL 1.1.0 por " "defecto a 32 MiB). *dklen* es el largo de la clave derivada." -#: ../Doc/library/hashlib.rst:339 +#: ../Doc/library/hashlib.rst:368 msgid "BLAKE2" msgstr "BLAKE2" -#: ../Doc/library/hashlib.rst:346 +#: ../Doc/library/hashlib.rst:375 msgid "" "BLAKE2_ is a cryptographic hash function defined in :rfc:`7693` that comes " "in two flavors:" @@ -507,7 +546,7 @@ msgstr "" "BLAKE2_ es una función de hash criptográfico definida en :rfc:`7693` que " "viene en dos sabores:" -#: ../Doc/library/hashlib.rst:349 +#: ../Doc/library/hashlib.rst:378 msgid "" "**BLAKE2b**, optimized for 64-bit platforms and produces digests of any size " "between 1 and 64 bytes," @@ -515,7 +554,7 @@ msgstr "" "**BLAKE2b**, optimizada para plataformas de 64 bits y produce resúmenes de " "cualquier tamaño entre 1 y 64 bytes," -#: ../Doc/library/hashlib.rst:352 +#: ../Doc/library/hashlib.rst:381 msgid "" "**BLAKE2s**, optimized for 8- to 32-bit platforms and produces digests of " "any size between 1 and 32 bytes." @@ -523,7 +562,7 @@ msgstr "" "**BLAKE2s**, optimizada para plataformas de 8 a 32 bits y produce resúmenes " "de cualquier tamaño entre 1 y 32 bytes." -#: ../Doc/library/hashlib.rst:355 +#: ../Doc/library/hashlib.rst:384 msgid "" "BLAKE2 supports **keyed mode** (a faster and simpler replacement for HMAC_), " "**salted hashing**, **personalization**, and **tree hashing**." @@ -532,7 +571,7 @@ msgstr "" "para HMAC_), **cifrado salado** (*salted hashing*), **personalización** y " "**cifrado de árbol**." -#: ../Doc/library/hashlib.rst:358 +#: ../Doc/library/hashlib.rst:387 msgid "" "Hash objects from this module follow the API of standard library's :mod:" "`hashlib` objects." @@ -540,15 +579,15 @@ msgstr "" "Los objetos hash de este módulo siguen los estándares de los objetos de la " "biblioteca :mod:`hashlib`." -#: ../Doc/library/hashlib.rst:363 +#: ../Doc/library/hashlib.rst:392 msgid "Creating hash objects" msgstr "Creando objetos hash" -#: ../Doc/library/hashlib.rst:365 +#: ../Doc/library/hashlib.rst:394 msgid "New hash objects are created by calling constructor functions:" msgstr "Se crean nuevos objetos hash invocando a las funciones de constructor:" -#: ../Doc/library/hashlib.rst:379 +#: ../Doc/library/hashlib.rst:408 msgid "" "These functions return the corresponding hash objects for calculating " "BLAKE2b or BLAKE2s. They optionally take these general parameters:" @@ -556,7 +595,7 @@ msgstr "" "Estas funciones retornan los objetos hash correspondientes para calcular " "BLAKE2b o BLAKE2s. Ellas toman opcionalmente estos parámetros generales:" -#: ../Doc/library/hashlib.rst:382 +#: ../Doc/library/hashlib.rst:411 msgid "" "*data*: initial chunk of data to hash, which must be :term:`bytes-like " "object`. It can be passed only as positional argument." @@ -564,11 +603,11 @@ msgstr "" "*data*: trozo inicial de datos a cifrar, el cual debe ser un :term:`bytes-" "like object`. Puede ser pasado sólo como argumento posicional." -#: ../Doc/library/hashlib.rst:385 +#: ../Doc/library/hashlib.rst:414 msgid "*digest_size*: size of output digest in bytes." msgstr "*digest_size*: tamaño del resumen de salida en bytes." -#: ../Doc/library/hashlib.rst:387 +#: ../Doc/library/hashlib.rst:416 msgid "" "*key*: key for keyed hashing (up to 64 bytes for BLAKE2b, up to 32 bytes for " "BLAKE2s)." @@ -576,7 +615,7 @@ msgstr "" "*key*: clave para el cifrado de clave (*keyed hashing*) (hasta 64 bytes para " "BLAKE2b, hasta 32 bytes para BLAKE2s)." -#: ../Doc/library/hashlib.rst:390 +#: ../Doc/library/hashlib.rst:419 msgid "" "*salt*: salt for randomized hashing (up to 16 bytes for BLAKE2b, up to 8 " "bytes for BLAKE2s)." @@ -584,7 +623,7 @@ msgstr "" "*salt*: sal para el cifrado aleatorio (hasta 16 bytes para BLAKE2b, hasta 8 " "bytes para BLAKE2s)." -#: ../Doc/library/hashlib.rst:393 +#: ../Doc/library/hashlib.rst:422 msgid "" "*person*: personalization string (up to 16 bytes for BLAKE2b, up to 8 bytes " "for BLAKE2s)." @@ -592,56 +631,56 @@ msgstr "" "*person*: cadena de personalización (hasta 16 bytes para BLAKE2b, hasta 8 " "bytes para BLAKE2s)." -#: ../Doc/library/hashlib.rst:396 +#: ../Doc/library/hashlib.rst:425 msgid "The following table shows limits for general parameters (in bytes):" msgstr "" "La siguiente tabla muestra los límites para parámetros generales (en bytes):" -#: ../Doc/library/hashlib.rst:399 +#: ../Doc/library/hashlib.rst:428 msgid "Hash" msgstr "Cifrado" -#: ../Doc/library/hashlib.rst:399 +#: ../Doc/library/hashlib.rst:428 msgid "digest_size" msgstr "digest_size" -#: ../Doc/library/hashlib.rst:399 +#: ../Doc/library/hashlib.rst:428 msgid "len(key)" msgstr "len(key)" -#: ../Doc/library/hashlib.rst:399 +#: ../Doc/library/hashlib.rst:428 msgid "len(salt)" msgstr "len(salt)" -#: ../Doc/library/hashlib.rst:399 +#: ../Doc/library/hashlib.rst:428 msgid "len(person)" msgstr "len(person)" -#: ../Doc/library/hashlib.rst:401 +#: ../Doc/library/hashlib.rst:430 msgid "BLAKE2b" msgstr "BLAKE2b" -#: ../Doc/library/hashlib.rst:401 +#: ../Doc/library/hashlib.rst:430 msgid "64" msgstr "64" -#: ../Doc/library/hashlib.rst:401 +#: ../Doc/library/hashlib.rst:430 msgid "16" msgstr "16" -#: ../Doc/library/hashlib.rst:402 +#: ../Doc/library/hashlib.rst:431 msgid "BLAKE2s" msgstr "BLAKE2s" -#: ../Doc/library/hashlib.rst:402 +#: ../Doc/library/hashlib.rst:431 msgid "32" msgstr "32" -#: ../Doc/library/hashlib.rst:402 +#: ../Doc/library/hashlib.rst:431 msgid "8" msgstr "8" -#: ../Doc/library/hashlib.rst:407 +#: ../Doc/library/hashlib.rst:436 msgid "" "BLAKE2 specification defines constant lengths for salt and personalization " "parameters, however, for convenience, this implementation accepts byte " @@ -657,26 +696,26 @@ msgstr "" "por lo tanto, por ejemplo, ``b'salt'`` y ``b'salt\\x00'`` es el mismo valor. " "(Este no es el caso para *key*.)" -#: ../Doc/library/hashlib.rst:414 +#: ../Doc/library/hashlib.rst:443 msgid "These sizes are available as module `constants`_ described below." msgstr "" "Estos tamaños están disponibles como `constantes`_ del módulo descritas " "abajo." -#: ../Doc/library/hashlib.rst:416 +#: ../Doc/library/hashlib.rst:445 msgid "" "Constructor functions also accept the following tree hashing parameters:" msgstr "" "Las funciones constructoras también aceptan los siguientes parámetros de " "cifrado de árbol:" -#: ../Doc/library/hashlib.rst:418 +#: ../Doc/library/hashlib.rst:447 msgid "*fanout*: fanout (0 to 255, 0 if unlimited, 1 in sequential mode)." msgstr "" "*fanout*: despliegue en abanico (0 a 255, 0 si ilimitado, 1 en modo " "secuencial)." -#: ../Doc/library/hashlib.rst:420 +#: ../Doc/library/hashlib.rst:449 msgid "" "*depth*: maximal depth of tree (1 to 255, 255 if unlimited, 1 in sequential " "mode)." @@ -684,7 +723,7 @@ msgstr "" "*depth*: profundidad máxima del árbol (1 a 255, 255 si ilimitado, 1 en modo " "secuencial)." -#: ../Doc/library/hashlib.rst:423 +#: ../Doc/library/hashlib.rst:452 msgid "" "*leaf_size*: maximal byte length of leaf (0 to ``2**32-1``, 0 if unlimited " "or in sequential mode)." @@ -692,7 +731,7 @@ msgstr "" "*leaf_size*: tamaño máximo en bytes de hoja (0 a ``2**32-1``, 0 si ilimitado " "o en modo secuencial)." -#: ../Doc/library/hashlib.rst:426 +#: ../Doc/library/hashlib.rst:455 msgid "" "*node_offset*: node offset (0 to ``2**64-1`` for BLAKE2b, 0 to ``2**48-1`` " "for BLAKE2s, 0 for the first, leftmost, leaf, or in sequential mode)." @@ -701,14 +740,14 @@ msgstr "" "``2**48-1`` para BLAKE2s, 0 para la primera hoja más a la izquierda, o en " "modo secuencial)." -#: ../Doc/library/hashlib.rst:429 +#: ../Doc/library/hashlib.rst:458 msgid "" "*node_depth*: node depth (0 to 255, 0 for leaves, or in sequential mode)." msgstr "" "*node_depth*: profundidad de nodo (0 a 255, 0 para hojas o en modo " "secuencial)." -#: ../Doc/library/hashlib.rst:431 +#: ../Doc/library/hashlib.rst:460 msgid "" "*inner_size*: inner digest size (0 to 64 for BLAKE2b, 0 to 32 for BLAKE2s, 0 " "in sequential mode)." @@ -716,7 +755,7 @@ msgstr "" "*inner_size*: tamaño interno del resumen (0 a 64 para BLAKE2b, 0 a 32 para " "BLAKE2s, 0 en modo secuencial)." -#: ../Doc/library/hashlib.rst:434 +#: ../Doc/library/hashlib.rst:463 msgid "" "*last_node*: boolean indicating whether the processed node is the last one " "(``False`` for sequential mode)." @@ -727,52 +766,54 @@ msgstr "" msgid "Explanation of tree mode parameters." msgstr "Explicación de los parámetros del modo árbol." -#: ../Doc/library/hashlib.rst:440 +#: ../Doc/library/hashlib.rst:470 +#, fuzzy msgid "" -"See section 2.10 in `BLAKE2 specification `_ for comprehensive review of tree hashing." msgstr "" "Consulta la sección 2.10 en la `especificación BLAKE2 `_ para una revisión integral del cifrado en árbol." -#: ../Doc/library/hashlib.rst:446 +#: ../Doc/library/hashlib.rst:476 msgid "Constants" msgstr "Constantes" -#: ../Doc/library/hashlib.rst:451 +#: ../Doc/library/hashlib.rst:481 msgid "Salt length (maximum length accepted by constructors)." msgstr "Largo de sal (largo máximo aceptado por los constructores)." -#: ../Doc/library/hashlib.rst:457 +#: ../Doc/library/hashlib.rst:487 msgid "" "Personalization string length (maximum length accepted by constructors)." msgstr "" "Largo de cadena de personalización (largo máximo aceptado por los " "constructores)." -#: ../Doc/library/hashlib.rst:463 +#: ../Doc/library/hashlib.rst:493 msgid "Maximum key size." msgstr "Tamaño máximo de clave." -#: ../Doc/library/hashlib.rst:469 +#: ../Doc/library/hashlib.rst:499 msgid "Maximum digest size that the hash function can output." msgstr "Tamaño máximo de resumen que puede producir la función hash." -#: ../Doc/library/hashlib.rst:473 +#: ../Doc/library/hashlib.rst:503 msgid "Examples" msgstr "Ejemplos" -#: ../Doc/library/hashlib.rst:476 +#: ../Doc/library/hashlib.rst:506 msgid "Simple hashing" msgstr "Cifrado simple" -#: ../Doc/library/hashlib.rst:478 +#: ../Doc/library/hashlib.rst:508 +#, fuzzy msgid "" "To calculate hash of some data, you should first construct a hash object by " "calling the appropriate constructor function (:func:`blake2b` or :func:" -"`blake2s`), then update it with the data by calling :meth:`update` on the " -"object, and, finally, get the digest out of the object by calling :meth:" -"`digest` (or :meth:`hexdigest` for hex-encoded string)." +"`blake2s`), then update it with the data by calling :meth:`~hash.update` on " +"the object, and, finally, get the digest out of the object by calling :meth:" +"`~hash.digest` (or :meth:`~hash.hexdigest` for hex-encoded string)." msgstr "" "Para calcular el hash de algunos datos, primero debes construir un objeto " "hash invocando a la función del constructor apropiada (:func:`blake2b` o :" @@ -781,7 +822,7 @@ msgstr "" "invocando :meth:`digest` (o :meth:`hexdigest` para una cadena codificada en " "hexadecimal)." -#: ../Doc/library/hashlib.rst:491 +#: ../Doc/library/hashlib.rst:521 msgid "" "As a shortcut, you can pass the first chunk of data to update directly to " "the constructor as the positional argument:" @@ -789,7 +830,7 @@ msgstr "" "Como atajo, puedes pasar el primer trozo de datos para actualizar " "directamente el constructor como el argumento posicional:" -#: ../Doc/library/hashlib.rst:498 +#: ../Doc/library/hashlib.rst:528 msgid "" "You can call :meth:`hash.update` as many times as you need to iteratively " "update the hash:" @@ -797,11 +838,11 @@ msgstr "" "Puedes invocar :meth:`hash.update` tantas veces como necesites para " "actualizar el hash iterativamente:" -#: ../Doc/library/hashlib.rst:511 +#: ../Doc/library/hashlib.rst:542 msgid "Using different digest sizes" msgstr "Usar diferentes tamaños de resumen" -#: ../Doc/library/hashlib.rst:513 +#: ../Doc/library/hashlib.rst:544 msgid "" "BLAKE2 has configurable size of digests up to 64 bytes for BLAKE2b and up to " "32 bytes for BLAKE2s. For example, to replace SHA-1 with BLAKE2b without " @@ -812,7 +853,7 @@ msgstr "" "BLAKE2b sin cambiar el tamaño de la salida, puedes decirle a BLAKE2b que " "produzca resúmenes de 20 bytes:" -#: ../Doc/library/hashlib.rst:527 +#: ../Doc/library/hashlib.rst:558 msgid "" "Hash objects with different digest sizes have completely different outputs " "(shorter hashes are *not* prefixes of longer hashes); BLAKE2b and BLAKE2s " @@ -823,11 +864,11 @@ msgstr "" "BLAKE2b y BLAKE2s producen salidas diferentes incluso si el largo de salida " "es el mismo:" -#: ../Doc/library/hashlib.rst:543 +#: ../Doc/library/hashlib.rst:574 msgid "Keyed hashing" msgstr "Cifrado de clave" -#: ../Doc/library/hashlib.rst:545 +#: ../Doc/library/hashlib.rst:576 msgid "" "Keyed hashing can be used for authentication as a faster and simpler " "replacement for `Hash-based message authentication code `_)" +"csrc.nist.gov/publications/detail/sp/800-106/archive/2009-02-25>`_)" msgstr "" "(`NIST SP-800-106 \"Randomized Hashing for Digital Signatures\" `_)" -#: ../Doc/library/hashlib.rst:629 +#: ../Doc/library/hashlib.rst:660 msgid "" "In BLAKE2 the salt is processed as a one-time input to the hash function " "during initialization, rather than as an input to each compression function." @@ -937,22 +979,24 @@ msgstr "" "durante la inicialización, en lugar de como una entrada para cada función de " "compresión." -#: ../Doc/library/hashlib.rst:634 +#: ../Doc/library/hashlib.rst:665 +#, fuzzy msgid "" "*Salted hashing* (or just hashing) with BLAKE2 or any other general-purpose " "cryptographic hash function, such as SHA-256, is not suitable for hashing " -"passwords. See `BLAKE2 FAQ `_ for more information." +"passwords. See `BLAKE2 FAQ `_ for more " +"information." msgstr "" "El *cifrado salado* (o sólo cifrado) con BLAKE2 o cualquier otra función de " "hash criptográfico de propósito general, como SHA-256, no son aptas para " "cifrar contraseñas. Ver `BLAKE2 FAQ `_ para más " "información." -#: ../Doc/library/hashlib.rst:657 +#: ../Doc/library/hashlib.rst:688 msgid "Personalization" msgstr "Personalización" -#: ../Doc/library/hashlib.rst:659 +#: ../Doc/library/hashlib.rst:690 msgid "" "Sometimes it is useful to force hash function to produce different digests " "for the same input for different purposes. Quoting the authors of the Skein " @@ -962,7 +1006,7 @@ msgstr "" "para la misma entrada para diferentes propósitos. Citando a los autores de " "la función hash Skein:" -#: ../Doc/library/hashlib.rst:663 +#: ../Doc/library/hashlib.rst:694 msgid "" "We recommend that all application designers seriously consider doing this; " "we have seen many protocols where a hash that is computed in one part of the " @@ -979,7 +1023,7 @@ msgstr "" "entradas hash iguales. Personalizar cada función hash usada en el protocolo " "resumidamente detiene este tipo de ataque." -#: ../Doc/library/hashlib.rst:670 +#: ../Doc/library/hashlib.rst:701 msgid "" "(`The Skein Hash Function Family `_, p. 21)" @@ -987,11 +1031,11 @@ msgstr "" "(`The Skein Hash Function Family `_, p. 21)" -#: ../Doc/library/hashlib.rst:674 +#: ../Doc/library/hashlib.rst:705 msgid "BLAKE2 can be personalized by passing bytes to the *person* argument::" msgstr "BLAKE2 puede ser personalizado pasando bytes al argumento *person*::" -#: ../Doc/library/hashlib.rst:688 +#: ../Doc/library/hashlib.rst:719 msgid "" "Personalization together with the keyed mode can also be used to derive " "different keys from a single one." @@ -999,15 +1043,15 @@ msgstr "" "Se puede usar también personalización en conjunto con el modo de clave para " "derivar diferentes claves desde una sola." -#: ../Doc/library/hashlib.rst:702 +#: ../Doc/library/hashlib.rst:733 msgid "Tree mode" msgstr "Modo de árbol" -#: ../Doc/library/hashlib.rst:704 +#: ../Doc/library/hashlib.rst:735 msgid "Here's an example of hashing a minimal tree with two leaf nodes::" msgstr "Aquí hay un ejemplo de cifrar un árbol mínimo con dos nodos de hoja::" -#: ../Doc/library/hashlib.rst:710 +#: ../Doc/library/hashlib.rst:741 msgid "" "This example uses 64-byte internal digests, and returns the 32-byte final " "digest::" @@ -1015,11 +1059,11 @@ msgstr "" "Este ejemplo usa resúmenes internos de 64 bytes, y retorna el resumen final " "de 32 bytes::" -#: ../Doc/library/hashlib.rst:740 +#: ../Doc/library/hashlib.rst:771 msgid "Credits" msgstr "Créditos" -#: ../Doc/library/hashlib.rst:742 +#: ../Doc/library/hashlib.rst:773 msgid "" "BLAKE2_ was designed by *Jean-Philippe Aumasson*, *Samuel Neves*, *Zooko " "Wilcox-O'Hearn*, and *Christian Winnerlein* based on SHA-3_ finalist BLAKE_ " @@ -1031,7 +1075,7 @@ msgstr "" "BLAKE_ creado por *Jean-Philippe Aumasson*, *Luca Henzen*, *Willi Meier* y " "*Raphael C.-W. Phan*." -#: ../Doc/library/hashlib.rst:747 +#: ../Doc/library/hashlib.rst:778 msgid "" "It uses core algorithm from ChaCha_ cipher designed by *Daniel J. " "Bernstein*." @@ -1039,7 +1083,7 @@ msgstr "" "Usa el algoritmo núcleo del cifrado ChaCha_ diseñado por *Daniel J. " "Bernstein*." -#: ../Doc/library/hashlib.rst:749 +#: ../Doc/library/hashlib.rst:780 msgid "" "The stdlib implementation is based on pyblake2_ module. It was written by " "*Dmitry Chestnykh* based on C implementation written by *Samuel Neves*. The " @@ -1050,12 +1094,12 @@ msgstr "" "La documentación fue copiada desde pyblake2_ y escrita por *Dmitry " "Chestnykh*." -#: ../Doc/library/hashlib.rst:753 +#: ../Doc/library/hashlib.rst:784 msgid "The C code was partly rewritten for Python by *Christian Heimes*." msgstr "" "El código C fue parcialmente reescrito para Python por *Christian Heimes*." -#: ../Doc/library/hashlib.rst:755 +#: ../Doc/library/hashlib.rst:786 msgid "" "The following public domain dedication applies for both C hash function " "implementation, extension code, and this documentation:" @@ -1064,7 +1108,7 @@ msgstr "" "implementación de la función hash C, el código de extensión y su " "documentación:" -#: ../Doc/library/hashlib.rst:758 +#: ../Doc/library/hashlib.rst:789 msgid "" "To the extent possible under law, the author(s) have dedicated all copyright " "and related and neighboring rights to this software to the public domain " @@ -1074,7 +1118,7 @@ msgstr "" "los derechos de autor y los derechos relacionados y vecinos de este software " "al dominio público mundial. Este software se distribuye sin ninguna garantía." -#: ../Doc/library/hashlib.rst:762 +#: ../Doc/library/hashlib.rst:793 msgid "" "You should have received a copy of the CC0 Public Domain Dedication along " "with this software. If not, see https://creativecommons.org/publicdomain/" @@ -1084,7 +1128,7 @@ msgstr "" "junto a este software. Si no, consulta https://creativecommons.org/" "publicdomain/zero/1.0/." -#: ../Doc/library/hashlib.rst:766 +#: ../Doc/library/hashlib.rst:797 msgid "" "The following people have helped with development or contributed their " "changes to the project and the public domain according to the Creative " @@ -1094,56 +1138,64 @@ msgstr "" "sus cambios al proyecto y el dominio público de acuerdo a Creative Commons " "Public Domain Dedication 1.0 Universal:" -#: ../Doc/library/hashlib.rst:770 +#: ../Doc/library/hashlib.rst:801 msgid "*Alexandr Sokolovskiy*" msgstr "*Alexandr Sokolovskiy*" -#: ../Doc/library/hashlib.rst:785 +#: ../Doc/library/hashlib.rst:822 msgid "Module :mod:`hmac`" msgstr "Módulo :mod:`hmac`" -#: ../Doc/library/hashlib.rst:785 +#: ../Doc/library/hashlib.rst:822 msgid "A module to generate message authentication codes using hashes." msgstr "" "Un módulo para generar mensajes de códigos de autentificación usando hashes." -#: ../Doc/library/hashlib.rst:788 +#: ../Doc/library/hashlib.rst:825 msgid "Module :mod:`base64`" msgstr "Módulo :mod:`base64`" -#: ../Doc/library/hashlib.rst:788 +#: ../Doc/library/hashlib.rst:825 msgid "Another way to encode binary hashes for non-binary environments." msgstr "Otra forma de codificar hashes binarios para entornos no binarios." -#: ../Doc/library/hashlib.rst:791 -msgid "https://blake2.net" -msgstr "https://blake2.net" +#: ../Doc/library/hashlib.rst:828 +#, fuzzy +msgid "https://nvlpubs.nist.gov/nistpubs/fips/nist.fips.180-4.pdf" +msgstr "" +"https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf" -#: ../Doc/library/hashlib.rst:791 -msgid "Official BLAKE2 website." -msgstr "Sitio web oficial de BLAKE2." +#: ../Doc/library/hashlib.rst:828 +#, fuzzy +msgid "The FIPS 180-4 publication on Secure Hash Algorithms." +msgstr "La publicación FIPS 180-2 sobre Algoritmos de Cifrado Seguros." -#: ../Doc/library/hashlib.rst:794 -msgid "" -"https://csrc.nist.gov/csrc/media/publications/fips/180/2/archive/2002-08-01/" -"documents/fips180-2.pdf" +#: ../Doc/library/hashlib.rst:831 +msgid "https://csrc.nist.gov/publications/detail/fips/202/final" msgstr "" -"https://csrc.nist.gov/csrc/media/publications/fips/180/2/archive/2002-08-01/" -"documents/fips180-2.pdf" -#: ../Doc/library/hashlib.rst:794 -msgid "The FIPS 180-2 publication on Secure Hash Algorithms." +#: ../Doc/library/hashlib.rst:831 +#, fuzzy +msgid "The FIPS 202 publication on the SHA-3 Standard." msgstr "La publicación FIPS 180-2 sobre Algoritmos de Cifrado Seguros." -#: ../Doc/library/hashlib.rst:798 -msgid "" -"https://en.wikipedia.org/wiki/" -"Cryptographic_hash_function#Cryptographic_hash_algorithms" +#: ../Doc/library/hashlib.rst:834 +#, fuzzy +msgid "https://www.blake2.net/" +msgstr "https://blake2.net" + +#: ../Doc/library/hashlib.rst:834 +msgid "Official BLAKE2 website." +msgstr "Sitio web oficial de BLAKE2." + +#: ../Doc/library/hashlib.rst:838 +#, fuzzy +msgid "https://en.wikipedia.org/wiki/Cryptographic_hash_function" msgstr "" "https://en.wikipedia.org/wiki/" "Cryptographic_hash_function#Cryptographic_hash_algorithms" -#: ../Doc/library/hashlib.rst:797 +#: ../Doc/library/hashlib.rst:837 msgid "" "Wikipedia article with information on which algorithms have known issues and " "what that means regarding their use." @@ -1151,21 +1203,92 @@ msgstr "" "Artículo de Wikipedia con información sobre cuáles algoritmos tienen errores " "conocidos y lo que eso significa con respecto a su uso." -#: ../Doc/library/hashlib.rst:801 +#: ../Doc/library/hashlib.rst:841 msgid "https://www.ietf.org/rfc/rfc8018.txt" msgstr "https://www.ietf.org/rfc/rfc8018.txt" -#: ../Doc/library/hashlib.rst:801 +#: ../Doc/library/hashlib.rst:841 msgid "PKCS #5: Password-Based Cryptography Specification Version 2.1" msgstr "PKCS #5: Password-Based Cryptography Specification Version 2.1" -#: ../Doc/library/hashlib.rst:803 +#: ../Doc/library/hashlib.rst:843 msgid "" "https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf" msgstr "" "https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf" -#: ../Doc/library/hashlib.rst:804 +#: ../Doc/library/hashlib.rst:844 msgid "NIST Recommendation for Password-Based Key Derivation." msgstr "" "Recomendación de NIST para la derivación de claves basadas en contraseña." + +#: ../Doc/library/hashlib.rst:12 +msgid "message digest, MD5" +msgstr "" + +#: ../Doc/library/hashlib.rst:12 +msgid "" +"secure hash algorithm, SHA1, SHA2, SHA224, SHA256, SHA384, SHA512, SHA3, " +"Shake, Blake2" +msgstr "" + +#: ../Doc/library/hashlib.rst:55 +msgid "OpenSSL" +msgstr "" + +#: ../Doc/library/hashlib.rst:55 +msgid "(use in module hashlib)" +msgstr "" + +#: ../Doc/library/hashlib.rst:372 +#, fuzzy +msgid "blake2b, blake2s" +msgstr "BLAKE2s" + +#~ msgid "" +#~ "For better multithreading performance, the Python :term:`GIL` is released " +#~ "for data larger than 2047 bytes at object creation or on update." +#~ msgstr "" +#~ "Para un rendimiento multihilo mejor, el :term:`GIL` de Python es liberado " +#~ "para datos superiores a 2047 bytes en la creación o actualización de " +#~ "objetos." + +#~ msgid "" +#~ "Feeding string objects into :meth:`update` is not supported, as hashes " +#~ "work on bytes, not on characters." +#~ msgstr "" +#~ "La alimentación de objetos de cadenas en :meth:`update` no está " +#~ "soportada, ya que los hashes funcionan en bytes, no en caracteres." + +#~ msgid "" +#~ "The Python GIL is released to allow other threads to run while hash " +#~ "updates on data larger than 2047 bytes is taking place when using hash " +#~ "algorithms supplied by OpenSSL." +#~ msgstr "" +#~ "El GIL de Python es liberado para permitir a otros hilos ejecutarse " +#~ "mientras ocurren actualizaciones de hash en datos con tamaños superiores " +#~ "a 2047 bytes cuando se usan algoritmos de hash suministrados por OpenSSL." + +#~ msgid "" +#~ "A fast implementation of *pbkdf2_hmac* is available with OpenSSL. The " +#~ "Python implementation uses an inline version of :mod:`hmac`. It is about " +#~ "three times slower and doesn't release the GIL." +#~ msgstr "" +#~ "Una implementación rápida de *pbkdf2_hmac* está disponible con OpenSSL. " +#~ "La implementación Python usa una versión en línea de :mod:`hmac`. Es " +#~ "aproximadamente tres veces más lenta y no libera el GIL." + +#~ msgid "" +#~ "Slow Python implementation of *pbkdf2_hmac* is deprecated. In the future " +#~ "the function will only be available when Python is compiled with OpenSSL." +#~ msgstr "" +#~ "La implementación lenta en Python de *pbkdf2_hmac* está obsoleta. En el " +#~ "futuro la función estará disponible sólo cuando Python sea compilado con " +#~ "OpenSSL." + +#~ msgid "" +#~ "https://csrc.nist.gov/csrc/media/publications/fips/180/2/" +#~ "archive/2002-08-01/documents/fips180-2.pdf" +#~ msgstr "" +#~ "https://csrc.nist.gov/csrc/media/publications/fips/180/2/" +#~ "archive/2002-08-01/documents/fips180-2.pdf" diff --git a/library/html.entities.po b/library/html.entities.po index 860c5830bb..2d20fb7933 100644 --- a/library/html.entities.po +++ b/library/html.entities.po @@ -10,14 +10,14 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \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" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/html.entities.rst:2 msgid ":mod:`html.entities` --- Definitions of HTML general entities" @@ -60,13 +60,15 @@ msgstr "" "reemplazo en ISO Latin-1." #: ../Doc/library/html.entities.rst:37 -msgid "A dictionary that maps HTML entity names to the Unicode code points." +#, fuzzy +msgid "A dictionary that maps HTML4 entity names to the Unicode code points." msgstr "" "Un diccionario que asigna nombres de entidades HTML a los puntos de código " "Unicode." #: ../Doc/library/html.entities.rst:42 -msgid "A dictionary that maps Unicode code points to HTML entity names." +#, fuzzy +msgid "A dictionary that maps Unicode code points to HTML4 entity names." msgstr "" "Un diccionario que asigna puntos de código Unicode a nombres de entidades " "HTML." diff --git a/library/html.parser.po b/library/html.parser.po index ea3c4da63f..71c3c6c3a3 100644 --- a/library/html.parser.po +++ b/library/html.parser.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-07-06 20:56+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/html.parser.rst:2 msgid ":mod:`html.parser` --- Simple HTML and XHTML parser" @@ -260,12 +260,13 @@ msgstr "" "llama si *convert_charrefs* es ``True``." #: ../Doc/library/html.parser.rst:175 +#, fuzzy msgid "" "This method is called to process decimal and hexadecimal numeric character " -"references of the form ``&#NNN;`` and ``&#xNNN;``. For example, the decimal " -"equivalent for ``>`` is ``>``, whereas the hexadecimal is ``>``; " -"in this case the method will receive ``'62'`` or ``'x3E'``. This method is " -"never called if *convert_charrefs* is ``True``." +"references of the form :samp:`&#{NNN};` and :samp:`&#x{NNN};`. For example, " +"the decimal equivalent for ``>`` is ``>``, whereas the hexadecimal is " +"``>``; in this case the method will receive ``'62'`` or ``'x3E'``. " +"This method is never called if *convert_charrefs* is ``True``." msgstr "" "Este método se llama para procesar referencias de caracteres numéricos " "decimales y hexadecimales de la forma ``&#NNN;`` y ``&#xNNN;``. Por ejemplo, " @@ -415,3 +416,11 @@ msgid "Parsing invalid HTML (e.g. unquoted attributes) also works::" msgstr "" "Analizar HTML no válido (por ejemplo, atributos sin comillas) también " "funciona::" + +#: ../Doc/library/html.parser.rst:9 +msgid "HTML" +msgstr "" + +#: ../Doc/library/html.parser.rst:9 +msgid "XHTML" +msgstr "" diff --git a/library/http.client.po b/library/http.client.po index c63502112a..4554b74e64 100644 --- a/library/http.client.po +++ b/library/http.client.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-02-07 09:17-0600\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es_AR\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/http.client.rst:2 msgid ":mod:`http.client` --- HTTP protocol client" @@ -40,8 +40,9 @@ msgstr "" "mod:`urllib.request` lo usa para gestionar URLs que utilizan HTTP y HTTPS." #: ../Doc/library/http.client.rst:23 +#, fuzzy msgid "" -"The `Requests package `_ is " +"The `Requests package `_ is " "recommended for a higher-level HTTP client interface." msgstr "" "El `Paquete de solicitudes `_ se " @@ -55,11 +56,12 @@ msgstr "" "El soporte HTTPS solo está disponible si Python se compiló con soporte SSL " "(a través del módulo :mod:`ssl`)." +#: ../Doc/includes/wasm-notavail.rst:3 #, fuzzy msgid ":ref:`Availability `: not Emscripten, not WASI." msgstr ":ref:`Disponibilidad `: no Emscripten, no WASI." -#: ../Doc/library/cpython/Doc/includes/wasm-notavail.rst:5 +#: ../Doc/includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly platforms " "``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for " @@ -123,7 +125,7 @@ msgstr "" msgid "*blocksize* parameter was added." msgstr "argumento *blocksize* fue adicionado." -#: ../Doc/library/http.client.rst:75 +#: ../Doc/library/http.client.rst:74 msgid "" "A subclass of :class:`HTTPConnection` that uses SSL for communication with " "secure servers. Default port is ``443``. If *context* is specified, it " @@ -135,25 +137,26 @@ msgstr "" "*context*, debe ser una instancia de :class:`ssl.SSLContext` que describa " "las diversas opciones de SSL." -#: ../Doc/library/http.client.rst:80 +#: ../Doc/library/http.client.rst:79 msgid "Please read :ref:`ssl-security` for more information on best practices." msgstr "" "Por favor lea :ref:`ssl-security` para obtener más información sobre las " "mejores prácticas." -#: ../Doc/library/http.client.rst:82 +#: ../Doc/library/http.client.rst:81 msgid "*source_address*, *context* and *check_hostname* were added." msgstr "*source_address*, *context* y *check_hostname* fueron adicionados." -#: ../Doc/library/http.client.rst:85 +#: ../Doc/library/http.client.rst:84 +#, fuzzy msgid "" -"This class now supports HTTPS virtual hosts if possible (that is, if :data:" +"This class now supports HTTPS virtual hosts if possible (that is, if :const:" "`ssl.HAS_SNI` is true)." msgstr "" "Esta clase ahora soporta *hosts* virtuales HTTPS si es posible (es decir, " "si :data:`ssl.HAS_SNI` es verdadero)." -#: ../Doc/library/http.client.rst:89 +#: ../Doc/library/http.client.rst:88 msgid "" "The *strict* parameter was removed. HTTP 0.9-style \"Simple Responses\" are " "no longer supported." @@ -161,7 +164,7 @@ msgstr "" "Se eliminó el argumento *strict*. Las \"Respuestas Simples\" de estilo HTTP " "0.9 ya no son compatibles." -#: ../Doc/library/http.client.rst:93 +#: ../Doc/library/http.client.rst:92 msgid "" "This class now performs all the necessary certificate and hostname checks by " "default. To revert to the previous, unverified, behavior :func:`ssl." @@ -172,7 +175,7 @@ msgstr "" "anterior no verificado :func:`ssl._create_unverified_context` se puede pasar " "al argumento *context*." -#: ../Doc/library/http.client.rst:99 +#: ../Doc/library/http.client.rst:98 msgid "" "This class now enables TLS 1.3 :attr:`ssl.SSLContext.post_handshake_auth` " "for the default *context* or when *cert_file* is passed with a custom " @@ -182,7 +185,7 @@ msgstr "" "para el *context* predeterminado o cuando *cert_file* se pasa con un " "*context* personalizado." -#: ../Doc/library/http.client.rst:104 +#: ../Doc/library/http.client.rst:103 msgid "" "This class now sends an ALPN extension with protocol indicator ``http/1.1`` " "when no *context* is given. Custom *context* should set ALPN protocols with :" @@ -193,26 +196,13 @@ msgstr "" "debe configurar los protocolos ALPN con :meth:`~ssl.SSLContext." "set_alpn_protocol`." -#: ../Doc/library/http.client.rst:111 -msgid "" -"*key_file* and *cert_file* are deprecated in favor of *context*. Please use :" -"meth:`ssl.SSLContext.load_cert_chain` instead, or let :func:`ssl." -"create_default_context` select the system's trusted CA certificates for you." -msgstr "" -"*key_file* y *cert_file* están discontinuadas en favor de *context*. Por " -"favor use :meth:`ssl.SSLContext.load_cert_chain` en su lugar, o deje que :" -"func:`ssl.create_default_context` seleccione los certificados de CA de " -"confianza del sistema para usted." - -#: ../Doc/library/http.client.rst:116 +#: ../Doc/library/http.client.rst:108 msgid "" -"The *check_hostname* parameter is also deprecated; the :attr:`ssl.SSLContext." -"check_hostname` attribute of *context* should be used instead." +"The deprecated *key_file*, *cert_file* and *check_hostname* parameters have " +"been removed." msgstr "" -"El argumento *check_hostname* también está discontinuado; el atributo :attr:" -"`ssl.SSLContext.check_hostname` de *context* debe usarse en su lugar." -#: ../Doc/library/http.client.rst:123 +#: ../Doc/library/http.client.rst:115 msgid "" "Class whose instances are returned upon successful connection. Not " "instantiated directly by user." @@ -220,7 +210,7 @@ msgstr "" "Clase cuyas instancias se retornan tras una conexión exitosa. No son " "instancias realizadas directamente por el usuario." -#: ../Doc/library/http.client.rst:126 +#: ../Doc/library/http.client.rst:118 msgid "" "The *strict* parameter was removed. HTTP 0.9 style \"Simple Responses\" are " "no longer supported." @@ -228,11 +218,11 @@ msgstr "" "Se eliminó el argumento *strict*. Las \"Respuestas Simples\" del estilo HTTP " "0.9 ya no están soportadas." -#: ../Doc/library/http.client.rst:130 +#: ../Doc/library/http.client.rst:122 msgid "This module provides the following function:" msgstr "Este módulo proporciona la siguiente función:" -#: ../Doc/library/http.client.rst:134 +#: ../Doc/library/http.client.rst:126 msgid "" "Parse the headers from a file pointer *fp* representing a HTTP request/" "response. The file has to be a :class:`BufferedIOBase` reader (i.e. not " @@ -243,7 +233,7 @@ msgstr "" "`BufferedIOBase` (es decir, no texto) y debe proporcionar un encabezado de " "estilo válido :rfc:`2822`." -#: ../Doc/library/http.client.rst:138 +#: ../Doc/library/http.client.rst:130 msgid "" "This function returns an instance of :class:`http.client.HTTPMessage` that " "holds the header fields, but no payload (the same as :attr:`HTTPResponse." @@ -256,7 +246,7 @@ msgstr "" "Después de regresar, el puntero de archivo *fp* está listo para leer el " "cuerpo HTTP." -#: ../Doc/library/http.client.rst:145 +#: ../Doc/library/http.client.rst:137 msgid "" ":meth:`parse_headers` does not parse the start-line of a HTTP message; it " "only parses the ``Name: value`` lines. The file has to be ready to read " @@ -268,11 +258,11 @@ msgstr "" "leer estas líneas de campo, por lo que la primera línea ya debe consumirse " "antes de llamar a la función." -#: ../Doc/library/http.client.rst:150 +#: ../Doc/library/http.client.rst:142 msgid "The following exceptions are raised as appropriate:" msgstr "Las siguientes excepciones son lanzadas según corresponda:" -#: ../Doc/library/http.client.rst:155 +#: ../Doc/library/http.client.rst:147 msgid "" "The base class of the other exceptions in this module. It is a subclass of :" "exc:`Exception`." @@ -280,13 +270,13 @@ msgstr "" "La clase base de las otras excepciones en este módulo. Es una subclase de :" "exc:`Exception`." -#: ../Doc/library/http.client.rst:161 ../Doc/library/http.client.rst:172 -#: ../Doc/library/http.client.rst:177 ../Doc/library/http.client.rst:182 -#: ../Doc/library/http.client.rst:187 ../Doc/library/http.client.rst:192 +#: ../Doc/library/http.client.rst:153 ../Doc/library/http.client.rst:164 +#: ../Doc/library/http.client.rst:169 ../Doc/library/http.client.rst:174 +#: ../Doc/library/http.client.rst:179 ../Doc/library/http.client.rst:184 msgid "A subclass of :exc:`HTTPException`." msgstr "Una subclase de :exc:`HTTPException`." -#: ../Doc/library/http.client.rst:166 +#: ../Doc/library/http.client.rst:158 msgid "" "A subclass of :exc:`HTTPException`, raised if a port is given and is either " "non-numeric or empty." @@ -294,12 +284,12 @@ msgstr "" "Una subclase de :exc:`HTTPException`, es lanzada si se proporciona un puerto " "y no es numérico o está vacío." -#: ../Doc/library/http.client.rst:197 ../Doc/library/http.client.rst:202 -#: ../Doc/library/http.client.rst:207 +#: ../Doc/library/http.client.rst:189 ../Doc/library/http.client.rst:194 +#: ../Doc/library/http.client.rst:199 msgid "A subclass of :exc:`ImproperConnectionState`." msgstr "Una subclase de :exc:`ImproperConnectionState`." -#: ../Doc/library/http.client.rst:212 +#: ../Doc/library/http.client.rst:204 msgid "" "A subclass of :exc:`HTTPException`. Raised if a server responds with a HTTP " "status code that we don't understand." @@ -307,7 +297,7 @@ msgstr "" "Una subclase de :exc:`HTTPException`. Es lanzada si un servidor responde con " "un código de estado HTTP que no entendemos." -#: ../Doc/library/http.client.rst:218 +#: ../Doc/library/http.client.rst:210 msgid "" "A subclass of :exc:`HTTPException`. Raised if an excessively long line is " "received in the HTTP protocol from the server." @@ -315,7 +305,7 @@ msgstr "" "Una subclase de :exc:`HTTPException`. Es lanzada si se recibe una línea " "excesivamente larga en el protocolo HTTP del servidor." -#: ../Doc/library/http.client.rst:224 +#: ../Doc/library/http.client.rst:216 msgid "" "A subclass of :exc:`ConnectionResetError` and :exc:`BadStatusLine`. Raised " "by :meth:`HTTPConnection.getresponse` when the attempt to read the response " @@ -327,34 +317,34 @@ msgstr "" "respuesta no produce datos leídos de la conexión, indica que el extremo " "remoto ha cerrado la conexión." -#: ../Doc/library/http.client.rst:229 +#: ../Doc/library/http.client.rst:221 msgid "Previously, :exc:`BadStatusLine`\\ ``('')`` was raised." msgstr "Previamente, :exc:`BadStatusLine`\\ ``('')`` fue lanzada." -#: ../Doc/library/http.client.rst:233 +#: ../Doc/library/http.client.rst:225 msgid "The constants defined in this module are:" msgstr "Las constantes definidas en este módulo son:" -#: ../Doc/library/http.client.rst:237 +#: ../Doc/library/http.client.rst:229 msgid "The default port for the HTTP protocol (always ``80``)." msgstr "El puerto predeterminado para el protocolo HTTP (siempre ``80``)." -#: ../Doc/library/http.client.rst:241 +#: ../Doc/library/http.client.rst:233 msgid "The default port for the HTTPS protocol (always ``443``)." msgstr "El puerto predeterminado para el protocolo HTTPS (siempre ``443``)." -#: ../Doc/library/http.client.rst:245 +#: ../Doc/library/http.client.rst:237 msgid "This dictionary maps the HTTP 1.1 status codes to the W3C names." msgstr "" "Este diccionario asigna los códigos de estado HTTP 1.1 a los nombres W3C." -#: ../Doc/library/http.client.rst:247 +#: ../Doc/library/http.client.rst:239 msgid "" "Example: ``http.client.responses[http.client.NOT_FOUND]`` is ``'Not Found'``." msgstr "" "Ejemplo: ``http.client.responses[http.client.NOT_FOUND]`` es ``'Not Found'``." -#: ../Doc/library/http.client.rst:249 +#: ../Doc/library/http.client.rst:241 msgid "" "See :ref:`http-status-codes` for a list of HTTP status codes that are " "available in this module as constants." @@ -362,23 +352,24 @@ msgstr "" "Consulte :ref:`http-status-codes` para obtener una lista de los códigos de " "estado HTTP que están disponibles en este módulo como constantes." -#: ../Doc/library/http.client.rst:256 +#: ../Doc/library/http.client.rst:248 msgid "HTTPConnection Objects" msgstr "Objetos de ``HTTPConnection``" -#: ../Doc/library/http.client.rst:258 +#: ../Doc/library/http.client.rst:250 msgid ":class:`HTTPConnection` instances have the following methods:" msgstr "Las instancias :class:`HTTPConnection` tienen los siguientes métodos:" -#: ../Doc/library/http.client.rst:264 +#: ../Doc/library/http.client.rst:256 msgid "" "This will send a request to the server using the HTTP request method " -"*method* and the selector *url*." +"*method* and the request URI *url*. The provided *url* must be an absolute " +"path to conform with :rfc:`RFC 2616 §5.1.2 <2616#section-5.1.2>` (unless " +"connecting to an HTTP proxy server or using the ``OPTIONS`` or ``CONNECT`` " +"methods)." msgstr "" -"Esto enviará una solicitud al servidor utilizando el método de solicitud " -"HTTP *method* y el selector *url*." -#: ../Doc/library/http.client.rst:267 +#: ../Doc/library/http.client.rst:262 msgid "" "If *body* is specified, the specified data is sent after the headers are " "finished. It may be a :class:`str`, a :term:`bytes-like object`, an open :" @@ -405,15 +396,16 @@ msgstr "" "*body* es un iterable, los elementos del iterable se envían tal cual hasta " "que se agota el iterable." -#: ../Doc/library/http.client.rst:279 +#: ../Doc/library/http.client.rst:274 msgid "" "The *headers* argument should be a mapping of extra HTTP headers to send " -"with the request." +"with the request. A :rfc:`Host header <2616#section-14.23>` must be provided " +"to conform with :rfc:`RFC 2616 §5.1.2 <2616#section-5.1.2>` (unless " +"connecting to an HTTP proxy server or using the ``OPTIONS`` or ``CONNECT`` " +"methods)." msgstr "" -"El argumento *headers* debe ser un mapeo de encabezados HTTP extras para " -"enviar con la solicitud." -#: ../Doc/library/http.client.rst:282 +#: ../Doc/library/http.client.rst:280 msgid "" "If *headers* contains neither Content-Length nor Transfer-Encoding, but " "there is a request body, one of those header fields will be added " @@ -436,7 +428,7 @@ msgstr "" "encabezado ``Transfer-Encoding`` se establecerá automáticamente en lugar de " "``Content-Length``." -#: ../Doc/library/http.client.rst:294 +#: ../Doc/library/http.client.rst:292 msgid "" "The *encode_chunked* argument is only relevant if Transfer-Encoding is " "specified in *headers*. If *encode_chunked* is ``False``, the " @@ -448,7 +440,12 @@ msgstr "" "``HTTPConnection`` supone que toda la codificación es manejada por el código " "de llamada. Si es ``True``, el cuerpo estará codificado en fragmentos." -#: ../Doc/library/http.client.rst:300 +#: ../Doc/library/http.client.rst:297 +msgid "" +"For example, to perform a ``GET`` request to ``https://docs.python.org/3/``::" +msgstr "" + +#: ../Doc/library/http.client.rst:308 msgid "" "Chunked transfer encoding has been added to the HTTP protocol version 1.1. " "Unless the HTTP server is known to handle HTTP 1.1, the caller must either " @@ -461,11 +458,11 @@ msgstr "" "class:`str` o un objeto similar a bytes que no sea también un archivo como " "la representación del cuerpo." -#: ../Doc/library/http.client.rst:306 +#: ../Doc/library/http.client.rst:314 msgid "*body* can now be an iterable." msgstr "*body* ahora puede ser un iterable." -#: ../Doc/library/http.client.rst:309 +#: ../Doc/library/http.client.rst:317 msgid "" "If neither Content-Length nor Transfer-Encoding are set in *headers*, file " "and iterable *body* objects are now chunk-encoded. The *encode_chunked* " @@ -477,7 +474,7 @@ msgstr "" "en fragmentos. Se agregó el argumento *encode_chunked*. No se intenta " "determinar la longitud del contenido para los objetos de archivo." -#: ../Doc/library/http.client.rst:318 +#: ../Doc/library/http.client.rst:326 msgid "" "Should be called after a request is sent to get the response from the " "server. Returns an :class:`HTTPResponse` instance." @@ -485,7 +482,7 @@ msgstr "" "Debe llamarse después de enviar una solicitud para obtener la respuesta del " "servidor. Retorna una instancia de :class:`HTTPResponse`." -#: ../Doc/library/http.client.rst:323 +#: ../Doc/library/http.client.rst:331 msgid "" "Note that you must have read the whole response before you can send a new " "request to the server." @@ -493,7 +490,7 @@ msgstr "" "Tenga en cuenta que debe haber leído la respuesta completa antes de poder " "enviar una nueva solicitud al servidor." -#: ../Doc/library/http.client.rst:326 +#: ../Doc/library/http.client.rst:334 msgid "" "If a :exc:`ConnectionError` or subclass is raised, the :class:" "`HTTPConnection` object will be ready to reconnect when a new request is " @@ -503,7 +500,7 @@ msgstr "" "`HTTPConnection` estará listo para volver a conectarse cuando se envíe una " "nueva solicitud." -#: ../Doc/library/http.client.rst:334 +#: ../Doc/library/http.client.rst:342 msgid "" "Set the debugging level. The default debug level is ``0``, meaning no " "debugging output is printed. Any value greater than ``0`` will cause all " @@ -516,7 +513,7 @@ msgstr "" "definidos actualmente se impriman en *stdout*. El ``debuglevel`` se pasa a " "cualquier objeto nuevo :class:`HTTPResponse` que se cree." -#: ../Doc/library/http.client.rst:344 +#: ../Doc/library/http.client.rst:352 msgid "" "Set the host and the port for HTTP Connect Tunnelling. This allows running " "the connection through a proxy server." @@ -524,25 +521,37 @@ msgstr "" "Configure el host y el puerto para el túnel de conexión HTTP. Esto permite " "ejecutar la conexión a través de un servidor proxy." -#: ../Doc/library/http.client.rst:347 +#: ../Doc/library/http.client.rst:355 +#, fuzzy msgid "" -"The host and port arguments specify the endpoint of the tunneled connection " -"(i.e. the address included in the CONNECT request, *not* the address of the " -"proxy server)." +"The *host* and *port* arguments specify the endpoint of the tunneled " +"connection (i.e. the address included in the CONNECT request, *not* the " +"address of the proxy server)." msgstr "" "Los argumentos de host y puerto especifican el punto final de la conexión " "realizada por el túnel (es decir, la dirección incluida en la solicitud " "CONNECT, da *not* la dirección del servidor proxy)." -#: ../Doc/library/http.client.rst:351 +#: ../Doc/library/http.client.rst:359 +#, fuzzy msgid "" -"The headers argument should be a mapping of extra HTTP headers to send with " -"the CONNECT request." +"The *headers* argument should be a mapping of extra HTTP headers to send " +"with the CONNECT request." msgstr "" "El argumento de los encabezados debe ser un mapeo de encabezados HTTP " "adicionales para enviar con la solicitud CONNECT." -#: ../Doc/library/http.client.rst:354 +#: ../Doc/library/http.client.rst:362 +msgid "" +"As HTTP/1.1 is used for HTTP CONNECT tunnelling request, `as per the RFC " +"`_, a HTTP " +"``Host:`` header must be provided, matching the authority-form of the " +"request target provided as the destination for the CONNECT request. If a " +"HTTP ``Host:`` header is not provided via the headers argument, one is " +"generated and transmitted automatically." +msgstr "" + +#: ../Doc/library/http.client.rst:369 msgid "" "For example, to tunnel through a HTTPS proxy server running locally on port " "8080, we would pass the address of the proxy to the :class:`HTTPSConnection` " @@ -554,7 +563,25 @@ msgstr "" "constructor :class:`HTTPSConnection`, y la dirección del host al que " "finalmente queremos llegar al método :meth:`~HTTPConnection.set_tunnel`::" -#: ../Doc/library/http.client.rst:369 +#: ../Doc/library/http.client.rst:381 +msgid "" +"HTTP CONNECT tunnelling requests use protocol HTTP/1.1, upgraded from " +"protocol HTTP/1.0. ``Host:`` HTTP headers are mandatory for HTTP/1.1, so one " +"will be automatically generated and transmitted if not provided in the " +"headers argument." +msgstr "" + +#: ../Doc/library/http.client.rst:390 +msgid "" +"Returns a dictionary with the headers of the response received from the " +"proxy server to the CONNECT request." +msgstr "" + +#: ../Doc/library/http.client.rst:393 +msgid "If the CONNECT request was not sent, the method returns ``None``." +msgstr "" + +#: ../Doc/library/http.client.rst:400 msgid "" "Connect to the server specified when the object was created. By default, " "this is called automatically when making a request if the client does not " @@ -564,7 +591,7 @@ msgstr "" "defecto, esto se llama automáticamente cuando se realiza una solicitud si el " "cliente aún no tiene una conexión." -#: ../Doc/library/http.client.rst:382 +#: ../Doc/library/http.client.rst:413 msgid "" "Raises an :ref:`auditing event ` ``http.client.connect`` with " "arguments ``self``, ``host``, ``port``." @@ -572,16 +599,16 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``http.client.connect`` con " "los argumentos ``self``, ``host``, ``port``." -#: ../Doc/library/http.client.rst:378 +#: ../Doc/library/http.client.rst:409 msgid "Close the connection to the server." msgstr "Cierre la conexión al servidor." -#: ../Doc/library/http.client.rst:383 +#: ../Doc/library/http.client.rst:414 msgid "Buffer size in bytes for sending a file-like message body." msgstr "" "Tamaño del búfer en bytes para enviar un archivo como cuerpo del mensaje." -#: ../Doc/library/http.client.rst:388 +#: ../Doc/library/http.client.rst:419 msgid "" "As an alternative to using the :meth:`request` method described above, you " "can also send your request step by step, by using the four functions below." @@ -590,7 +617,7 @@ msgstr "" "también puede enviar su solicitud paso a paso, utilizando las cuatro " "funciones a continuación." -#: ../Doc/library/http.client.rst:395 +#: ../Doc/library/http.client.rst:426 msgid "" "This should be the first call after the connection to the server has been " "made. It sends a line to the server consisting of the *method* string, the " @@ -607,7 +634,7 @@ msgstr "" "contenido adicionales), especifique *skip_host* o *skip_accept_encoding* con " "valores no Falsos." -#: ../Doc/library/http.client.rst:405 +#: ../Doc/library/http.client.rst:436 msgid "" "Send an :rfc:`822`\\ -style header to the server. It sends a line to the " "server consisting of the header, a colon and a space, and the first " @@ -619,7 +646,7 @@ msgstr "" "argumento. Si se dan más argumentos, se envían líneas de continuación, cada " "una de las cuales consta de tabulación y un argumento." -#: ../Doc/library/http.client.rst:413 +#: ../Doc/library/http.client.rst:444 msgid "" "Send a blank line to the server, signalling the end of the headers. The " "optional *message_body* argument can be used to pass a message body " @@ -629,7 +656,7 @@ msgstr "" "encabezados. El argumento opcional *message_body* se puede usar para pasar " "un cuerpo de mensaje asociado a la solicitud." -#: ../Doc/library/http.client.rst:417 +#: ../Doc/library/http.client.rst:448 msgid "" "If *encode_chunked* is ``True``, the result of each iteration of " "*message_body* will be chunk-encoded as specified in :rfc:`7230`, Section " @@ -652,7 +679,7 @@ msgstr "" "un fragmento. El método señala automáticamente el final de los datos " "codificados en fragmentos inmediatamente después de *message_body*." -#: ../Doc/library/http.client.rst:428 +#: ../Doc/library/http.client.rst:459 msgid "" "Due to the chunked encoding specification, empty chunks yielded by an " "iterator body will be ignored by the chunk-encoder. This is to avoid " @@ -665,12 +692,12 @@ msgstr "" "solicitud por parte del servidor de destino debido a una codificación con " "formato incorrecto." -#: ../Doc/library/http.client.rst:433 +#: ../Doc/library/http.client.rst:464 msgid "Chunked encoding support. The *encode_chunked* parameter was added." msgstr "" "Soporte de codificación fragmentada. Se agregó el parámetro *encode_chunked*." -#: ../Doc/library/http.client.rst:440 +#: ../Doc/library/http.client.rst:471 msgid "" "Send data to the server. This should be used directly only after the :meth:" "`endheaders` method has been called and before :meth:`getresponse` is called." @@ -679,7 +706,7 @@ msgstr "" "se haya llamado al método :meth:`endheaders` y antes de que se llame al " "método :meth:`getresponse`." -#: ../Doc/library/http.client.rst:453 +#: ../Doc/library/http.client.rst:484 msgid "" "Raises an :ref:`auditing event ` ``http.client.send`` with " "arguments ``self``, ``data``." @@ -687,11 +714,11 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``http.client.send`` con los " "argumentos ``self``, ``data``." -#: ../Doc/library/http.client.rst:450 +#: ../Doc/library/http.client.rst:481 msgid "HTTPResponse Objects" msgstr "Objetos de ``HTTPResponse``" -#: ../Doc/library/http.client.rst:452 +#: ../Doc/library/http.client.rst:483 msgid "" "An :class:`HTTPResponse` instance wraps the HTTP response from the server. " "It provides access to the request headers and the entity body. The response " @@ -702,7 +729,7 @@ msgstr "" "de la entidad. La respuesta es un objeto iterable y puede usarse en una " "declaración ``with``." -#: ../Doc/library/http.client.rst:457 +#: ../Doc/library/http.client.rst:488 msgid "" "The :class:`io.BufferedIOBase` interface is now implemented and all of its " "reader operations are supported." @@ -710,12 +737,12 @@ msgstr "" "La interfaz :class:`io.BufferedIOBase` ahora está implementada y todas sus " "operaciones de lectura están soportadas." -#: ../Doc/library/http.client.rst:464 +#: ../Doc/library/http.client.rst:495 msgid "Reads and returns the response body, or up to the next *amt* bytes." msgstr "" "Lee y retorna el cuerpo de respuesta, o hasta los siguientes bytes *amt*." -#: ../Doc/library/http.client.rst:468 +#: ../Doc/library/http.client.rst:499 msgid "" "Reads up to the next len(b) bytes of the response body into the buffer *b*. " "Returns the number of bytes read." @@ -723,7 +750,7 @@ msgstr "" "Lee hasta los siguientes bytes ``len(b)`` del cuerpo de respuesta en el " "búfer *b*. Retorna el número de bytes leídos." -#: ../Doc/library/http.client.rst:475 +#: ../Doc/library/http.client.rst:506 msgid "" "Return the value of the header *name*, or *default* if there is no header " "matching *name*. If there is more than one header with the name *name*, " @@ -736,15 +763,15 @@ msgstr "" "iterable que no sea una sola cadena de caracteres sus elementos se retornan, " "de manera similar, unidos por comas." -#: ../Doc/library/http.client.rst:482 +#: ../Doc/library/http.client.rst:513 msgid "Return a list of (header, value) tuples." msgstr "Retorna una lista de tuplas (encabezado, valor)." -#: ../Doc/library/http.client.rst:486 +#: ../Doc/library/http.client.rst:517 msgid "Return the ``fileno`` of the underlying socket." msgstr "Retorna el ``fileno`` del socket implícito." -#: ../Doc/library/http.client.rst:490 +#: ../Doc/library/http.client.rst:521 msgid "" "A :class:`http.client.HTTPMessage` instance containing the response " "headers. :class:`http.client.HTTPMessage` is a subclass of :class:`email." @@ -754,14 +781,14 @@ msgstr "" "de respuesta. :class:`http.client.HTTPMessage` es una subclase de :class:" "`email.message.Message`." -#: ../Doc/library/http.client.rst:496 +#: ../Doc/library/http.client.rst:527 msgid "" "HTTP protocol version used by server. 10 for HTTP/1.0, 11 for HTTP/1.1." msgstr "" "Versión del protocolo HTTP utilizada por el servidor. 10 para HTTP/1.0, 11 " "para HTTP/1.1." -#: ../Doc/library/http.client.rst:500 +#: ../Doc/library/http.client.rst:531 msgid "" "URL of the resource retrieved, commonly used to determine if a redirect was " "followed." @@ -769,7 +796,7 @@ msgstr "" "URL del recurso recuperado, comúnmente utilizado para determinar si se " "siguió una redirección." -#: ../Doc/library/http.client.rst:504 +#: ../Doc/library/http.client.rst:535 msgid "" "Headers of the response in the form of an :class:`email.message." "EmailMessage` instance." @@ -777,15 +804,15 @@ msgstr "" "Cabeceras de la respuesta en forma de una instancia :class:`email.message." "EmailMessage`." -#: ../Doc/library/http.client.rst:508 +#: ../Doc/library/http.client.rst:539 msgid "Status code returned by server." msgstr "Código del estado retornado por el servidor." -#: ../Doc/library/http.client.rst:512 +#: ../Doc/library/http.client.rst:543 msgid "Reason phrase returned by server." msgstr "Una frase de la razón es retornada por el servidor." -#: ../Doc/library/http.client.rst:516 +#: ../Doc/library/http.client.rst:547 msgid "" "A debugging hook. If :attr:`debuglevel` is greater than zero, messages will " "be printed to stdout as the response is read and parsed." @@ -793,31 +820,31 @@ msgstr "" "Un depurador. Si :attr:`debuglevel` es mayor que cero, los mensajes se " "imprimirán en ``stdout`` a medida que se lee y analiza la respuesta." -#: ../Doc/library/http.client.rst:521 +#: ../Doc/library/http.client.rst:552 msgid "Is ``True`` if the stream is closed." msgstr "Es ``True`` si la transmisión está cerrada." -#: ../Doc/library/http.client.rst:525 +#: ../Doc/library/http.client.rst:556 msgid "Deprecated in favor of :attr:`~HTTPResponse.url`." msgstr "Deprecada a favor de :attr:`~HTTPResponse.url`." -#: ../Doc/library/http.client.rst:530 +#: ../Doc/library/http.client.rst:561 msgid "Deprecated in favor of :attr:`~HTTPResponse.headers`." msgstr "Deprecada a favor de :attr:`~HTTPResponse.headers`." -#: ../Doc/library/http.client.rst:535 +#: ../Doc/library/http.client.rst:566 msgid "Deprecated in favor of :attr:`~HTTPResponse.status`." msgstr "Deprecada a favor de :attr:`~HTTPResponse.status`." -#: ../Doc/library/http.client.rst:539 +#: ../Doc/library/http.client.rst:570 msgid "Examples" msgstr "Ejemplos" -#: ../Doc/library/http.client.rst:541 +#: ../Doc/library/http.client.rst:572 msgid "Here is an example session that uses the ``GET`` method::" msgstr "Aquí hay una sesión de ejemplo que usa el método ``GET`` *method*::" -#: ../Doc/library/http.client.rst:566 +#: ../Doc/library/http.client.rst:597 msgid "" "Here is an example session that uses the ``HEAD`` method. Note that the " "``HEAD`` method never returns any data. ::" @@ -825,11 +852,11 @@ msgstr "" "Aquí hay una sesión de ejemplo que usa el método ``HEAD``. Tenga en cuenta " "que el método ``HEAD`` nunca retorna ningún dato. ::" -#: ../Doc/library/http.client.rst:581 +#: ../Doc/library/http.client.rst:612 msgid "Here is an example session that uses the ``POST`` method::" msgstr "Aquí hay una sesión de ejemplo que usa el método ``POST``::" -#: ../Doc/library/http.client.rst:597 +#: ../Doc/library/http.client.rst:628 msgid "" "Client side HTTP ``PUT`` requests are very similar to ``POST`` requests. The " "difference lies only on the server side where HTTP servers will allow " @@ -846,11 +873,11 @@ msgstr "" "método apropiado. Aquí hay una sesión de ejemplo que muestra cómo enviar una " "solicitud ``PUT``::" -#: ../Doc/library/http.client.rst:618 +#: ../Doc/library/http.client.rst:649 msgid "HTTPMessage Objects" msgstr "Objetos de ``HTTPMessage``" -#: ../Doc/library/http.client.rst:620 +#: ../Doc/library/http.client.rst:651 msgid "" "An :class:`http.client.HTTPMessage` instance holds the headers from an HTTP " "response. It is implemented using the :class:`email.message.Message` class." @@ -858,3 +885,55 @@ msgstr "" "Una instancia de :class:`http.client.HTTPMessage` contiene los encabezados " "de una respuesta HTTP. Se implementa utilizando la clase :class:`email." "message.Message`." + +#: ../Doc/library/http.client.rst:9 +msgid "HTTP" +msgstr "" + +#: ../Doc/library/http.client.rst:9 +msgid "protocol" +msgstr "" + +#: ../Doc/library/http.client.rst:9 +msgid "http.client (standard module)" +msgstr "" + +#: ../Doc/library/http.client.rst:13 +msgid "module" +msgstr "" + +#: ../Doc/library/http.client.rst:13 +msgid "urllib.request" +msgstr "" + +#~ msgid "" +#~ "*key_file* and *cert_file* are deprecated in favor of *context*. Please " +#~ "use :meth:`ssl.SSLContext.load_cert_chain` instead, or let :func:`ssl." +#~ "create_default_context` select the system's trusted CA certificates for " +#~ "you." +#~ msgstr "" +#~ "*key_file* y *cert_file* están discontinuadas en favor de *context*. Por " +#~ "favor use :meth:`ssl.SSLContext.load_cert_chain` en su lugar, o deje que :" +#~ "func:`ssl.create_default_context` seleccione los certificados de CA de " +#~ "confianza del sistema para usted." + +#~ msgid "" +#~ "The *check_hostname* parameter is also deprecated; the :attr:`ssl." +#~ "SSLContext.check_hostname` attribute of *context* should be used instead." +#~ msgstr "" +#~ "El argumento *check_hostname* también está discontinuado; el atributo :" +#~ "attr:`ssl.SSLContext.check_hostname` de *context* debe usarse en su lugar." + +#~ msgid "" +#~ "This will send a request to the server using the HTTP request method " +#~ "*method* and the selector *url*." +#~ msgstr "" +#~ "Esto enviará una solicitud al servidor utilizando el método de solicitud " +#~ "HTTP *method* y el selector *url*." + +#~ msgid "" +#~ "The *headers* argument should be a mapping of extra HTTP headers to send " +#~ "with the request." +#~ msgstr "" +#~ "El argumento *headers* debe ser un mapeo de encabezados HTTP extras para " +#~ "enviar con la solicitud." diff --git a/library/http.po b/library/http.po index 02c5f0cba4..4cf05625f0 100644 --- a/library/http.po +++ b/library/http.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-29 10:15-0500\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/http.rst:2 msgid ":mod:`http` --- HTTP modules" @@ -82,7 +81,8 @@ msgstr "" "Una subclase de :class:`enum.IntEnum` que define un conjunto de códigos de " "estado HTTP, frases de motivo y descripciones largas escritas en inglés." -#: ../Doc/library/http.rst:34 ../Doc/library/http.rst:146 +#: ../Doc/library/http.rst:34 ../Doc/library/http.rst:157 +#: ../Doc/library/http.rst:171 msgid "Usage::" msgstr "Uso::" @@ -104,11 +104,12 @@ msgstr "" msgid "Code" msgstr "Código" -#: ../Doc/library/http.rst:60 ../Doc/library/http.rst:170 +#: ../Doc/library/http.rst:60 ../Doc/library/http.rst:204 msgid "Enum Name" msgstr "Nombre de la enumeración" -#: ../Doc/library/http.rst:60 ../Doc/library/http.rst:170 +#: ../Doc/library/http.rst:60 ../Doc/library/http.rst:148 +#: ../Doc/library/http.rst:204 msgid "Details" msgstr "Detalle" @@ -882,7 +883,77 @@ msgstr "" "Agregados códigos de estado ``103 EARLY_HINTS``, ``418 IM_A_TEAPOT`` y ``425 " "TOO_EARLY``." -#: ../Doc/library/http.rst:144 +#: ../Doc/library/http.rst:141 +#, fuzzy +msgid "HTTP status category" +msgstr "Códigos de estado HTTP" + +#: ../Doc/library/http.rst:145 +msgid "" +"The enum values have several properties to indicate the HTTP status category:" +msgstr "" + +#: ../Doc/library/http.rst:148 +msgid "Property" +msgstr "" + +#: ../Doc/library/http.rst:148 +msgid "Indicates that" +msgstr "" + +#: ../Doc/library/http.rst:150 +#, fuzzy +msgid "``is_informational``" +msgstr "``NON_AUTHORITATIVE_INFORMATION``" + +#: ../Doc/library/http.rst:150 +msgid "``100 <= status <= 199``" +msgstr "" + +#: ../Doc/library/http.rst:150 ../Doc/library/http.rst:151 +#: ../Doc/library/http.rst:152 ../Doc/library/http.rst:153 +#: ../Doc/library/http.rst:154 +#, fuzzy +msgid "HTTP/1.1 :rfc:`7231`, Section 6" +msgstr "HTTP/1.1 :rfc:`7231`, Sección 6.6.6" + +#: ../Doc/library/http.rst:151 +#, fuzzy +msgid "``is_success``" +msgstr "``IM_USED``" + +#: ../Doc/library/http.rst:151 +msgid "``200 <= status <= 299``" +msgstr "" + +#: ../Doc/library/http.rst:152 +#, fuzzy +msgid "``is_redirection``" +msgstr "``TEMPORARY_REDIRECT``" + +#: ../Doc/library/http.rst:152 +msgid "``300 <= status <= 399``" +msgstr "" + +#: ../Doc/library/http.rst:153 +#, fuzzy +msgid "``is_client_error``" +msgstr "``INSUFFICIENT_STORAGE``" + +#: ../Doc/library/http.rst:153 +msgid "``400 <= status <= 499``" +msgstr "" + +#: ../Doc/library/http.rst:154 +#, fuzzy +msgid "``is_server_error``" +msgstr "``INTERNAL_SERVER_ERROR``" + +#: ../Doc/library/http.rst:154 +msgid "``500 <= status <= 599``" +msgstr "" + +#: ../Doc/library/http.rst:169 msgid "" "A subclass of :class:`enum.StrEnum` that defines a set of HTTP methods and " "descriptions written in English." @@ -890,11 +961,11 @@ msgstr "" "Una subclase de :class:`enum.StrEnum` que define un conjunto de métodos " "HTTP y sus descripciones escritas en inglés." -#: ../Doc/library/http.rst:163 +#: ../Doc/library/http.rst:197 msgid "HTTP methods" msgstr "Métodos HTTP" -#: ../Doc/library/http.rst:165 +#: ../Doc/library/http.rst:199 msgid "" "Supported, `IANA-registered methods `_ available in :class:`http.HTTPMethod` are:" @@ -902,78 +973,91 @@ msgstr "" "Los `métodos registrados por IANA `_ disponibles en :class:`http.HTTPMethod` son:" -#: ../Doc/library/http.rst:170 +#: ../Doc/library/http.rst:204 msgid "Method" msgstr "Método" -#: ../Doc/library/http.rst:172 +#: ../Doc/library/http.rst:206 msgid "``GET``" msgstr "``GET``" -#: ../Doc/library/http.rst:172 +#: ../Doc/library/http.rst:206 msgid "HTTP/1.1 :rfc:`7231`, Section 4.3.1" msgstr "HTTP/1.1 :rfc:`7231`, Section 4.3.1" -#: ../Doc/library/http.rst:173 +#: ../Doc/library/http.rst:207 msgid "``HEAD``" msgstr "``HEAD``" -#: ../Doc/library/http.rst:173 +#: ../Doc/library/http.rst:207 msgid "HTTP/1.1 :rfc:`7231`, Section 4.3.2" msgstr "HTTP/1.1 :rfc:`7231`, Section 4.3.2" -#: ../Doc/library/http.rst:174 +#: ../Doc/library/http.rst:208 msgid "``POST``" msgstr "``POST``" -#: ../Doc/library/http.rst:174 +#: ../Doc/library/http.rst:208 msgid "HTTP/1.1 :rfc:`7231`, Section 4.3.3" msgstr "HTTP/1.1 :rfc:`7231`, Section 4.3.3" -#: ../Doc/library/http.rst:175 +#: ../Doc/library/http.rst:209 msgid "``PUT``" msgstr "``PUT``" -#: ../Doc/library/http.rst:175 +#: ../Doc/library/http.rst:209 msgid "HTTP/1.1 :rfc:`7231`, Section 4.3.4" msgstr "HTTP/1.1 :rfc:`7231`, Section 4.3.4" -#: ../Doc/library/http.rst:176 +#: ../Doc/library/http.rst:210 msgid "``DELETE``" msgstr "``DELETE``" -#: ../Doc/library/http.rst:176 +#: ../Doc/library/http.rst:210 msgid "HTTP/1.1 :rfc:`7231`, Section 4.3.5" msgstr "HTTP/1.1 :rfc:`7231`, Section 4.3.5" -#: ../Doc/library/http.rst:177 +#: ../Doc/library/http.rst:211 msgid "``CONNECT``" msgstr "``CONNECT``" -#: ../Doc/library/http.rst:177 +#: ../Doc/library/http.rst:211 msgid "HTTP/1.1 :rfc:`7231`, Section 4.3.6" msgstr "HTTP/1.1 :rfc:`7231`, Section 4.3.6" -#: ../Doc/library/http.rst:178 +#: ../Doc/library/http.rst:212 msgid "``OPTIONS``" msgstr "``OPTIONS``" -#: ../Doc/library/http.rst:178 +#: ../Doc/library/http.rst:212 msgid "HTTP/1.1 :rfc:`7231`, Section 4.3.7" msgstr "HTTP/1.1 :rfc:`7231`, Section 4.3.7" -#: ../Doc/library/http.rst:179 +#: ../Doc/library/http.rst:213 msgid "``TRACE``" msgstr "``TRACE``" -#: ../Doc/library/http.rst:179 +#: ../Doc/library/http.rst:213 msgid "HTTP/1.1 :rfc:`7231`, Section 4.3.8" msgstr "HTTP/1.1 :rfc:`7231`, Section 4.3.8" -#: ../Doc/library/http.rst:180 +#: ../Doc/library/http.rst:214 msgid "``PATCH``" msgstr "``PATCH``" -#: ../Doc/library/http.rst:180 +#: ../Doc/library/http.rst:214 msgid "HTTP/1.1 :rfc:`5789`" msgstr "HTTP/1.1 :rfc:`5789`" + +#: ../Doc/library/http.rst:9 +msgid "HTTP" +msgstr "" + +#: ../Doc/library/http.rst:9 +msgid "protocol" +msgstr "" + +#: ../Doc/library/http.rst:9 +#, fuzzy +msgid "http (standard module)" +msgstr "Códigos de estado HTTP" diff --git a/library/http.server.po b/library/http.server.po index 606f47f34f..57d9caa678 100644 --- a/library/http.server.po +++ b/library/http.server.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-04-06 22:41+1000\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/http.server.rst:2 msgid ":mod:`http.server` --- HTTP servers" @@ -42,11 +41,12 @@ msgstr "" ":mod:`http.server` no se recomienda para producción. Sólo implementa :ref:" "`controles de seguridad básicos `." +#: ../Doc/includes/wasm-notavail.rst:3 #, fuzzy msgid ":ref:`Availability `: not Emscripten, not WASI." msgstr ":ref:`Disponibilidad `: ni Emscripten, ni WASI." -#: ../Doc/library/cpython/Doc/includes/wasm-notavail.rst:5 +#: ../Doc/includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly platforms " "``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for " @@ -356,6 +356,7 @@ msgstr "" "``return False``." #: ../Doc/library/http.server.rst:211 +#, fuzzy msgid "" "Sends and logs a complete error reply to the client. The numeric *code* " "specifies the HTTP error code, with *message* as an optional, short, human " @@ -366,8 +367,8 @@ msgid "" "attribute holds the default values for *message* and *explain* that will be " "used if no value is provided; for unknown codes the default value for both " "is the string ``???``. The body will be empty if the method is HEAD or the " -"response code is one of the following: ``1xx``, ``204 No Content``, ``205 " -"Reset Content``, ``304 Not Modified``." +"response code is one of the following: :samp:`1{xx}`, ``204 No Content``, " +"``205 Reset Content``, ``304 Not Modified``." msgstr "" "Envía y registra una respuesta de error completa al cliente. El *code* " "numérico especifica el código de error HTTP, con *message* como una " @@ -707,7 +708,14 @@ msgstr "" "manera para crear un servidor web muy básico que sirva archivos relativos al " "directorio actual::" -#: ../Doc/library/http.server.rst:418 +#: ../Doc/library/http.server.rst:417 +msgid "" +":class:`SimpleHTTPRequestHandler` can also be subclassed to enhance " +"behavior, such as using different index file names by overriding the class " +"attribute :attr:`index_pages`." +msgstr "" + +#: ../Doc/library/http.server.rst:423 msgid "" ":mod:`http.server` can also be invoked directly using the :option:`-m` " "switch of the interpreter. Similar to the previous example, this serves " @@ -717,7 +725,7 @@ msgstr "" "option:`-m` del intérprete. Como en el ejemplo anterior, esto sirve a los " "archivos relativos al directorio actual::" -#: ../Doc/library/http.server.rst:424 +#: ../Doc/library/http.server.rst:429 msgid "" "The server listens to port 8000 by default. The default can be overridden by " "passing the desired port number as an argument::" @@ -725,7 +733,7 @@ msgstr "" "Por defecto, el servidor escucha en el puerto 8000. El valor predeterminado " "se puede anular pasando el número de puerto deseado como argumento::" -#: ../Doc/library/http.server.rst:429 +#: ../Doc/library/http.server.rst:434 msgid "" "By default, the server binds itself to all interfaces. The option ``-b/--" "bind`` specifies a specific address to which it should bind. Both IPv4 and " @@ -737,15 +745,15 @@ msgstr "" "las direcciones IPv4 como las IPv6 están soportadas. Por ejemplo, el " "siguiente comando hace que el servidor se vincule sólo al localhost::" -#: ../Doc/library/http.server.rst:436 +#: ../Doc/library/http.server.rst:441 msgid "``--bind`` argument was introduced." msgstr "Se introdujo el argumento ``--bind`` ." -#: ../Doc/library/http.server.rst:439 +#: ../Doc/library/http.server.rst:444 msgid "``--bind`` argument enhanced to support IPv6" msgstr "El argumento ``--bind`` se ha mejorado para soportar IPv6" -#: ../Doc/library/http.server.rst:442 +#: ../Doc/library/http.server.rst:447 msgid "" "By default, the server uses the current directory. The option ``-d/--" "directory`` specifies a directory to which it should serve the files. For " @@ -755,11 +763,11 @@ msgstr "" "directory`` especifica un directorio al que debe servir los archivos. Por " "ejemplo, el siguiente comando utiliza un directorio específico::" -#: ../Doc/library/http.server.rst:448 +#: ../Doc/library/http.server.rst:453 msgid "``--directory`` argument was introduced." msgstr "Se introdujo el argumento ``—directory`` ." -#: ../Doc/library/http.server.rst:451 +#: ../Doc/library/http.server.rst:456 msgid "" "By default, the server is conformant to HTTP/1.0. The option ``-p/--" "protocol`` specifies the HTTP version to which the server is conformant. For " @@ -769,11 +777,11 @@ msgstr "" "protocol`` especifica la versión HTTP con la que cumple el servidor. Por " "ejemplo, el siguiente comando ejecuta un servidor conforme con HTTP/1.1::" -#: ../Doc/library/http.server.rst:457 +#: ../Doc/library/http.server.rst:462 msgid "``--protocol`` argument was introduced." msgstr "Se introdujo el argumento ``—protocol`` ." -#: ../Doc/library/http.server.rst:462 +#: ../Doc/library/http.server.rst:467 msgid "" "This class is used to serve either files or output of CGI scripts from the " "current directory and below. Note that mapping HTTP hierarchic structure to " @@ -784,7 +792,7 @@ msgstr "" "la estructura jerárquica de HTTP a la estructura del directorio local es " "exactamente como en :class:`SimpleHTTPRequestHandler`." -#: ../Doc/library/http.server.rst:468 +#: ../Doc/library/http.server.rst:473 msgid "" "CGI scripts run by the :class:`CGIHTTPRequestHandler` class cannot execute " "redirects (HTTP code 302), because code 200 (script output follows) is sent " @@ -795,7 +803,7 @@ msgstr "" "salida del script sigue) se envía antes de la ejecución del script CGI. " "Esto adelanta el código de estado." -#: ../Doc/library/http.server.rst:473 +#: ../Doc/library/http.server.rst:478 msgid "" "The class will however, run the CGI script, instead of serving it as a file, " "if it guesses it to be a CGI script. Only directory-based CGI are used --- " @@ -807,7 +815,7 @@ msgstr "" "directorios --- la otra configuración común del servidor es tratar las " "extensiones especiales como denotando los scripts CGI." -#: ../Doc/library/http.server.rst:478 +#: ../Doc/library/http.server.rst:483 msgid "" "The :func:`do_GET` and :func:`do_HEAD` functions are modified to run CGI " "scripts and serve the output, instead of serving files, if the request leads " @@ -817,12 +825,12 @@ msgstr "" "scripts CGI y servir la salida, en lugar de servir archivos, si la petición " "lleva a algún lugar por debajo de la ruta ``cgi_directories``." -#: ../Doc/library/http.server.rst:482 +#: ../Doc/library/http.server.rst:487 msgid "The :class:`CGIHTTPRequestHandler` defines the following data member:" msgstr "" "La :class:`CGIHTTPRequestHandler` define el siguiente miembro de datos:" -#: ../Doc/library/http.server.rst:486 +#: ../Doc/library/http.server.rst:491 msgid "" "This defaults to ``['/cgi-bin', '/htbin']`` and describes directories to " "treat as containing CGI scripts." @@ -830,11 +838,11 @@ msgstr "" "Esto por defecto es ``['/cgi-bin', '/htbin']`` y describe los directorios a " "tratar como si contuvieran scripts CGI." -#: ../Doc/library/http.server.rst:489 +#: ../Doc/library/http.server.rst:494 msgid "The :class:`CGIHTTPRequestHandler` defines the following method:" msgstr "La :class:`CGIHTTPRequestHandler` define el siguiente método:" -#: ../Doc/library/http.server.rst:493 +#: ../Doc/library/http.server.rst:498 msgid "" "This method serves the ``'POST'`` request type, only allowed for CGI " "scripts. Error 501, \"Can only POST to CGI scripts\", is output when trying " @@ -844,7 +852,7 @@ msgstr "" "scripts CGI. El error 501, \"Can only POST to CGI scripts\", se produce " "cuando se intenta enviar a una url no CGI." -#: ../Doc/library/http.server.rst:497 +#: ../Doc/library/http.server.rst:502 msgid "" "Note that CGI scripts will be run with UID of user nobody, for security " "reasons. Problems with the CGI script will be translated to error 403." @@ -853,7 +861,7 @@ msgstr "" "*nobody*, por razones de seguridad. Los problemas con el script CGI serán " "traducidos al error 403." -#: ../Doc/library/http.server.rst:500 +#: ../Doc/library/http.server.rst:505 msgid "" ":class:`CGIHTTPRequestHandler` can be enabled in the command line by passing " "the ``--cgi`` option::" @@ -861,11 +869,11 @@ msgstr "" ":class:`CGIHTTPRequestHandler` puede ser activado en la línea de comandos " "pasando la opción ``--cgi``::" -#: ../Doc/library/http.server.rst:508 +#: ../Doc/library/http.server.rst:513 msgid "Security Considerations" msgstr "Consideraciones de seguridad" -#: ../Doc/library/http.server.rst:512 +#: ../Doc/library/http.server.rst:517 msgid "" ":class:`SimpleHTTPRequestHandler` will follow symbolic links when handling " "requests, this makes it possible for files outside of the specified " @@ -874,3 +882,48 @@ msgstr "" ":class:`SimpleHTTPRequestHandler` seguirá los enlaces simbólicos cuando " "gestione peticiones, esto hace posible que se sirvan ficheros fuera del " "directorio especificado." + +#: ../Doc/library/http.server.rst:521 +msgid "" +"Earlier versions of Python did not scrub control characters from the log " +"messages emitted to stderr from ``python -m http.server`` or the default :" +"class:`BaseHTTPRequestHandler` ``.log_message`` implementation. This could " +"allow remote clients connecting to your server to send nefarious control " +"codes to your terminal." +msgstr "" + +#: ../Doc/library/http.server.rst:527 +msgid "Control characters are scrubbed in stderr logs." +msgstr "" + +#: ../Doc/library/http.server.rst:9 +msgid "WWW" +msgstr "" + +#: ../Doc/library/http.server.rst:9 +msgid "server" +msgstr "" + +#: ../Doc/library/http.server.rst:9 +msgid "HTTP" +msgstr "" + +#: ../Doc/library/http.server.rst:9 +msgid "protocol" +msgstr "" + +#: ../Doc/library/http.server.rst:9 +msgid "URL" +msgstr "" + +#: ../Doc/library/http.server.rst:9 +msgid "httpd" +msgstr "" + +#: ../Doc/library/http.server.rst:515 +msgid "http.server" +msgstr "" + +#: ../Doc/library/http.server.rst:515 +msgid "security" +msgstr "" diff --git a/library/idle.po b/library/idle.po index b5043303a8..a7f918dd31 100755 --- a/library/idle.po +++ b/library/idle.po @@ -10,19 +10,18 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-27 17:00-0500\n" "Last-Translator: José Luis Salgado Banda \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2\n" +"Generated-By: Babel 2.13.0\n" -#: ../Doc/library/idle.rst:4 +#: ../Doc/library/idle.rst:4 ../Doc/library/idle.rst:10 msgid "IDLE" msgstr "IDLE" @@ -298,7 +297,8 @@ msgstr "Seleccionar todo" msgid "Select the entire contents of the current window." msgstr "Selecciona el contenido completo de la ventana actual." -#: ../Doc/library/idle.rst:124 ../Doc/library/idle.rst:370 +#: ../Doc/library/idle.rst:124 ../Doc/library/idle.rst:355 +#: ../Doc/library/idle.rst:370 msgid "Cut" msgstr "Cortar" @@ -308,7 +308,8 @@ msgid "" msgstr "" "Copia la selección en el portapapeles global; después elimina la selección." -#: ../Doc/library/idle.rst:127 ../Doc/library/idle.rst:373 +#: ../Doc/library/idle.rst:127 ../Doc/library/idle.rst:355 +#: ../Doc/library/idle.rst:373 msgid "Copy" msgstr "Copiar" @@ -316,7 +317,8 @@ msgstr "Copiar" msgid "Copy selection into the system-wide clipboard." msgstr "Copia la selección en el portapapeles global." -#: ../Doc/library/idle.rst:130 ../Doc/library/idle.rst:376 +#: ../Doc/library/idle.rst:130 ../Doc/library/idle.rst:355 +#: ../Doc/library/idle.rst:376 msgid "Paste" msgstr "Pegar" @@ -905,7 +907,7 @@ msgstr "" "breakpoints para un archivo se guardan en el directorio ``.idlerc`` del " "usuario." -#: ../Doc/library/idle.rst:384 +#: ../Doc/library/idle.rst:355 ../Doc/library/idle.rst:384 msgid "Set Breakpoint" msgstr "Establecer breakpoint" @@ -913,7 +915,7 @@ msgstr "Establecer breakpoint" msgid "Set a breakpoint on the current line." msgstr "Establecer un breakpoint en la línea actual." -#: ../Doc/library/idle.rst:387 +#: ../Doc/library/idle.rst:355 ../Doc/library/idle.rst:387 msgid "Clear Breakpoint" msgstr "Eliminar breakpoint" @@ -1128,10 +1130,11 @@ msgid "Search and Replace" msgstr "Buscar y reemplazar" #: ../Doc/library/idle.rst:480 +#, fuzzy msgid "" "Any selection becomes a search target. However, only selections within a " "line work because searches are only performed within lines with the terminal " -"newline removed. If ``[x] Regular expresion`` is checked, the target is " +"newline removed. If ``[x] Regular expression`` is checked, the target is " "interpreted according to the Python re module." msgstr "" "Cualquier selección se convierte en un objetivo de búsqueda. Sin embargo, " @@ -2238,3 +2241,42 @@ msgstr "" "el elemento. Excepto para archivos enumerados en 'Inicio', el código de " "idlelib es 'privado' en el sentido de que los cambios de características " "pueden ser portados (consultar :pep:`434`)." + +#: ../Doc/library/idle.rst:10 +#, fuzzy +msgid "Python Editor" +msgstr "Documentación de Python" + +#: ../Doc/library/idle.rst:10 +#, fuzzy +msgid "Integrated Development Environment" +msgstr "IDLE es el entorno de desarrollo integrado de Python." + +#: ../Doc/library/idle.rst:70 +#, fuzzy +msgid "Module browser" +msgstr "Navegador de módulo" + +#: ../Doc/library/idle.rst:70 +#, fuzzy +msgid "Path browser" +msgstr "Navegador de ruta" + +#: ../Doc/library/idle.rst:212 +msgid "Run script" +msgstr "" + +#: ../Doc/library/idle.rst:279 +#, fuzzy +msgid "debugger" +msgstr "Depurador (alternar)" + +#: ../Doc/library/idle.rst:279 +#, fuzzy +msgid "stack viewer" +msgstr "Visualizador de pila" + +#: ../Doc/library/idle.rst:355 +#, fuzzy +msgid "breakpoints" +msgstr "Establecer breakpoint" diff --git a/library/imaplib.po b/library/imaplib.po index 11d11d5b79..578cab6da8 100644 --- a/library/imaplib.po +++ b/library/imaplib.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-12-27 14:19-0300\n" "Last-Translator: Francisco Mora \n" -"Language-Team: python-doc-es\n" "Language: es_AR\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/imaplib.rst:2 msgid ":mod:`imaplib` --- IMAP4 protocol client" @@ -44,11 +43,12 @@ msgstr "" "rfc :`2060`. Es compatible con los servidores IMAP4 (:rfc:`1730`), pero " "tenga en cuenta que el comando ``STATUS`` no es compatible con IMAP4." +#: ../Doc/includes/wasm-notavail.rst:3 #, fuzzy msgid ":ref:`Availability `: not Emscripten, not WASI." msgstr ":ref:`Availability `: no Emscripten, no WASI." -#: ../Doc/library/cpython/Doc/includes/wasm-notavail.rst:5 +#: ../Doc/includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly platforms " "``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for " @@ -98,7 +98,7 @@ msgstr "" msgid "Support for the :keyword:`with` statement was added." msgstr "Se agregó soporte para la sentencia :keyword:`with`." -#: ../Doc/library/imaplib.rst:57 ../Doc/library/imaplib.rst:124 +#: ../Doc/library/imaplib.rst:57 ../Doc/library/imaplib.rst:111 msgid "The optional *timeout* parameter was added." msgstr "El parámetro opcional *timeout* fue agregado." @@ -163,21 +163,6 @@ msgstr "" #: ../Doc/library/imaplib.rst:99 msgid "" -"*keyfile* and *certfile* are a legacy alternative to *ssl_context* - they " -"can point to PEM-formatted private key and certificate chain files for the " -"SSL connection. Note that the *keyfile*/*certfile* parameters are mutually " -"exclusive with *ssl_context*, a :class:`ValueError` is raised if *keyfile*/" -"*certfile* is provided along with *ssl_context*." -msgstr "" -"*keyfile* y *certfile* son una alternativa heredada a *ssl_context* - pueden " -"apuntar a claves privadas con formato PEM y archivos de cadena de " -"certificados para la conexión SSL. Tenga en cuenta que los parámetros " -"*keyfile*/*certfile* son mutuamente excluyentes con *ssl_context*, un :class:" -"`ValueError` se lanzará si *keyfile*/*certfile* se proporciona junto con " -"*ssl_context*." - -#: ../Doc/library/imaplib.rst:105 -msgid "" "The optional *timeout* parameter specifies a timeout in seconds for the " "connection attempt. If timeout is not given or is None, the global default " "socket timeout is used." @@ -186,35 +171,29 @@ msgstr "" "intentar realizar la conexión. Si timeout no se especifica, o es None, se " "usa el timeout global por defecto de sockets." -#: ../Doc/library/imaplib.rst:109 +#: ../Doc/library/imaplib.rst:103 msgid "*ssl_context* parameter was added." msgstr "El parámetro *ssl_context* fue agregado." -#: ../Doc/library/imaplib.rst:112 +#: ../Doc/library/imaplib.rst:106 +#, fuzzy msgid "" "The class now supports hostname check with :attr:`ssl.SSLContext." -"check_hostname` and *Server Name Indication* (see :data:`ssl.HAS_SNI`)." +"check_hostname` and *Server Name Indication* (see :const:`ssl.HAS_SNI`)." msgstr "" "La clase ahora admite la verificación del nombre de host con :attr:`ssl." "SSLContext.check_hostname` y *Server Name Indication* (ver :data:`ssl." "HAS_SNI`)." -#: ../Doc/library/imaplib.rst:119 -msgid "" -"*keyfile* and *certfile* are deprecated in favor of *ssl_context*. Please " -"use :meth:`ssl.SSLContext.load_cert_chain` instead, or let :func:`ssl." -"create_default_context` select the system's trusted CA certificates for you." +#: ../Doc/library/imaplib.rst:114 +msgid "The deprecated *keyfile* and *certfile* parameters have been removed." msgstr "" -"*keyfile* y *certfile* están obsoletos en favor de *ssl_context*. Utilice :" -"meth:`ssl.SSLContext.load_cert_chain` en su lugar, o deje que :func:`ssl." -"create_default_context` seleccione los certificados CA de confianza del " -"sistema para usted." -#: ../Doc/library/imaplib.rst:127 +#: ../Doc/library/imaplib.rst:117 msgid "The second subclass allows for connections created by a child process:" msgstr "La segunda subclase permite conexiones creadas por un proceso hijo:" -#: ../Doc/library/imaplib.rst:132 +#: ../Doc/library/imaplib.rst:122 msgid "" "This is a subclass derived from :class:`IMAP4` that connects to the ``stdin/" "stdout`` file descriptors created by passing *command* to ``subprocess." @@ -224,11 +203,11 @@ msgstr "" "descriptores de archivo ``stdin/stdout`` creados al pasar *command* a " "``subprocess.Popen ()``." -#: ../Doc/library/imaplib.rst:137 +#: ../Doc/library/imaplib.rst:127 msgid "The following utility functions are defined:" msgstr "Se definen las siguientes funciones de utilidad:" -#: ../Doc/library/imaplib.rst:142 +#: ../Doc/library/imaplib.rst:132 msgid "" "Parse an IMAP4 ``INTERNALDATE`` string and return corresponding local time. " "The return value is a :class:`time.struct_time` tuple or ``None`` if the " @@ -239,7 +218,7 @@ msgstr "" "struct_time` o ``None`` si la cadena de caracteres tiene un formato " "incorrecto." -#: ../Doc/library/imaplib.rst:148 +#: ../Doc/library/imaplib.rst:138 msgid "" "Converts an integer into a bytes representation using characters from the " "set [``A`` .. ``P``]." @@ -247,13 +226,13 @@ msgstr "" "Convierte un número entero en una representación de bytes utilizando " "caracteres del conjunto [``A`` .. ``P``]." -#: ../Doc/library/imaplib.rst:154 +#: ../Doc/library/imaplib.rst:144 msgid "Converts an IMAP4 ``FLAGS`` response to a tuple of individual flags." msgstr "" "Convierte una respuesta IMAP4 ``FLAGS`` a una tupla de indicadores " "individuales." -#: ../Doc/library/imaplib.rst:159 +#: ../Doc/library/imaplib.rst:149 msgid "" "Convert *date_time* to an IMAP4 ``INTERNALDATE`` representation. The return " "value is a string in the form: ``\"DD-Mmm-YYYY HH:MM:SS +HHMM\"`` (including " @@ -274,7 +253,7 @@ msgstr "" "datetime`, o una cadena de caracteres entre comillas dobles. En el último " "caso, se supone que ya está en el formato correcto." -#: ../Doc/library/imaplib.rst:169 +#: ../Doc/library/imaplib.rst:159 msgid "" "Note that IMAP4 message numbers change as the mailbox changes; in " "particular, after an ``EXPUNGE`` command performs deletions the remaining " @@ -286,7 +265,7 @@ msgstr "" "realiza eliminaciones, los mensajes restantes se vuelven a numerar. Por lo " "tanto, es muy recomendable usar UIDs en su lugar, con el comando UID." -#: ../Doc/library/imaplib.rst:173 +#: ../Doc/library/imaplib.rst:163 msgid "" "At the end of the module, there is a test section that contains a more " "extensive example of usage." @@ -294,7 +273,7 @@ msgstr "" "Al final del módulo, hay una sección de prueba que contiene un ejemplo más " "extenso de uso." -#: ../Doc/library/imaplib.rst:179 +#: ../Doc/library/imaplib.rst:169 msgid "" "Documents describing the protocol, sources for servers implementing it, by " "the University of Washington's IMAP Information Center can all be found at " @@ -305,19 +284,20 @@ msgstr "" "pueden ser encontrados en (**Código Fuente**) https://github.com/uw-imap/" "imap (**Fuera de mantención**)." -#: ../Doc/library/imaplib.rst:187 +#: ../Doc/library/imaplib.rst:177 msgid "IMAP4 Objects" msgstr "Objetos de IMAP4" -#: ../Doc/library/imaplib.rst:189 +#: ../Doc/library/imaplib.rst:179 +#, fuzzy msgid "" "All IMAP4rev1 commands are represented by methods of the same name, either " -"upper-case or lower-case." +"uppercase or lowercase." msgstr "" "Todos los comandos IMAP4rev1 están representados por métodos del mismo " "nombre, mayúsculas o minúsculas." -#: ../Doc/library/imaplib.rst:192 +#: ../Doc/library/imaplib.rst:182 msgid "" "All arguments to commands are converted to strings, except for " "``AUTHENTICATE``, and the last argument to ``APPEND`` which is passed as an " @@ -337,7 +317,7 @@ msgstr "" "una cadena de argumento (por ejemplo: el argumento *flags* para ``STORE``), " "encierre la cadena entre paréntesis (por ejemplo: ``r'(\\Deleted)'``)." -#: ../Doc/library/imaplib.rst:200 +#: ../Doc/library/imaplib.rst:190 msgid "" "Each command returns a tuple: ``(type, [data, ...])`` where *type* is " "usually ``'OK'`` or ``'NO'``, and *data* is either the text from the command " @@ -352,7 +332,7 @@ msgstr "" "respuesta, y la segunda parte contiene los datos (es decir, el valor " "'literal')." -#: ../Doc/library/imaplib.rst:206 +#: ../Doc/library/imaplib.rst:196 msgid "" "The *message_set* options to commands below is a string specifying one or " "more messages to be acted upon. It may be a simple message number " @@ -367,19 +347,19 @@ msgstr "" "(``'1:3,6:9'``). Un rango puede contener un asterisco para indicar un límite " "superior infinito (``'3:*'``)." -#: ../Doc/library/imaplib.rst:212 +#: ../Doc/library/imaplib.rst:202 msgid "An :class:`IMAP4` instance has the following methods:" msgstr "Una instancia de :class:`IMAP4` tiene los siguientes métodos:" -#: ../Doc/library/imaplib.rst:217 +#: ../Doc/library/imaplib.rst:207 msgid "Append *message* to named mailbox." msgstr "Agregar *mensaje* al buzón de correo con nombre." -#: ../Doc/library/imaplib.rst:222 +#: ../Doc/library/imaplib.rst:212 msgid "Authenticate command --- requires response processing." msgstr "Autenticar comando --- requiere procesamiento de respuesta." -#: ../Doc/library/imaplib.rst:224 +#: ../Doc/library/imaplib.rst:214 msgid "" "*mechanism* specifies which authentication mechanism is to be used - it " "should appear in the instance variable ``capabilities`` in the form " @@ -389,11 +369,11 @@ msgstr "" "aparecer en la variable de instancia ``capabilities`` en la forma " "``AUTH=mechanism``." -#: ../Doc/library/imaplib.rst:227 +#: ../Doc/library/imaplib.rst:217 msgid "*authobject* must be a callable object::" msgstr "*authobject* debe ser un objeto invocable::" -#: ../Doc/library/imaplib.rst:231 +#: ../Doc/library/imaplib.rst:221 msgid "" "It will be called to process server continuation responses; the *response* " "argument it is passed will be ``bytes``. It should return ``bytes`` *data* " @@ -406,7 +386,7 @@ msgstr "" "retornar ``None`` si la respuesta de cancelación de cliente ``*`` se debe " "enviar en su lugar." -#: ../Doc/library/imaplib.rst:236 +#: ../Doc/library/imaplib.rst:226 msgid "" "string usernames and passwords are now encoded to ``utf-8`` instead of being " "limited to ASCII." @@ -414,11 +394,11 @@ msgstr "" "los nombres de usuario y las contraseñas de cadena de caracteres ahora están " "codificados para ``utf-8`` en lugar de limitarse a ASCII." -#: ../Doc/library/imaplib.rst:243 +#: ../Doc/library/imaplib.rst:233 msgid "Checkpoint mailbox on server." msgstr "Control del buzón de correo en el servidor." -#: ../Doc/library/imaplib.rst:248 +#: ../Doc/library/imaplib.rst:238 msgid "" "Close currently selected mailbox. Deleted messages are removed from writable " "mailbox. This is the recommended command before ``LOGOUT``." @@ -427,25 +407,25 @@ msgstr "" "se eliminan del buzón de correo de escritura. Este es el comando recomendado " "antes de ``LOGOUT``." -#: ../Doc/library/imaplib.rst:254 +#: ../Doc/library/imaplib.rst:244 msgid "Copy *message_set* messages onto end of *new_mailbox*." msgstr "Copia mensajes *message_set* al final de *new_mailbox*." -#: ../Doc/library/imaplib.rst:259 +#: ../Doc/library/imaplib.rst:249 msgid "Create new mailbox named *mailbox*." msgstr "Crea un nuevo buzón de correo llamado *mailbox*." -#: ../Doc/library/imaplib.rst:264 +#: ../Doc/library/imaplib.rst:254 msgid "Delete old mailbox named *mailbox*." msgstr "Elimina el buzón de correo antiguo llamado *mailbox*." -#: ../Doc/library/imaplib.rst:269 +#: ../Doc/library/imaplib.rst:259 msgid "Delete the ACLs (remove any rights) set for who on mailbox." msgstr "" "Elimina las ACLs (elimina cualquier derecho) establecidas para quién en el " "buzón de correo." -#: ../Doc/library/imaplib.rst:274 +#: ../Doc/library/imaplib.rst:264 msgid "" "Enable *capability* (see :rfc:`5161`). Most capabilities do not need to be " "enabled. Currently only the ``UTF8=ACCEPT`` capability is supported (see :" @@ -455,11 +435,11 @@ msgstr "" "necesitan estar habilitadas. Actualmente solo esta soportada la capacidad " "``UTF8=ACCEPT`` (consulte :RFC:`6855`)." -#: ../Doc/library/imaplib.rst:278 +#: ../Doc/library/imaplib.rst:268 msgid "The :meth:`enable` method itself, and :RFC:`6855` support." msgstr "El método :meth:`enable` en sí, y soporte :RFC:`6855`." -#: ../Doc/library/imaplib.rst:284 +#: ../Doc/library/imaplib.rst:274 msgid "" "Permanently remove deleted items from selected mailbox. Generates an " "``EXPUNGE`` response for each deleted message. Returned data contains a list " @@ -470,7 +450,7 @@ msgstr "" "Los datos retornados contienen una lista de números de mensaje ``EXPUNGE`` " "en el orden recibido." -#: ../Doc/library/imaplib.rst:291 +#: ../Doc/library/imaplib.rst:281 msgid "" "Fetch (parts of) messages. *message_parts* should be a string of message " "part names enclosed within parentheses, eg: ``\"(UID BODY[TEXT])\"``. " @@ -481,7 +461,7 @@ msgstr "" "BODY[TEXT])\"``. Los datos retornados son una tupla de mensaje parte sobre y " "datos." -#: ../Doc/library/imaplib.rst:298 +#: ../Doc/library/imaplib.rst:288 msgid "" "Get the ``ACL``\\ s for *mailbox*. The method is non-standard, but is " "supported by the ``Cyrus`` server." @@ -489,7 +469,7 @@ msgstr "" "Obtiene la ``ACL``\\ s para *mailbox*. El método no es estándar, pero es " "compatible con el servidor ``Cyrus``." -#: ../Doc/library/imaplib.rst:304 +#: ../Doc/library/imaplib.rst:294 msgid "" "Retrieve the specified ``ANNOTATION``\\ s for *mailbox*. The method is non-" "standard, but is supported by the ``Cyrus`` server." @@ -497,7 +477,7 @@ msgstr "" "Recupera la ``ANNOTATION``\\ s especificada para *mailbox*. El método no es " "estándar, pero es compatible con el servidor ``Cyrus``." -#: ../Doc/library/imaplib.rst:310 +#: ../Doc/library/imaplib.rst:300 msgid "" "Get the ``quota`` *root*'s resource usage and limits. This method is part of " "the IMAP4 QUOTA extension defined in rfc2087." @@ -505,7 +485,7 @@ msgstr "" "Obtiene el uso y los límites de los recursos de la ``quota`` de *root*. Este " "método es parte de la extensión IMAP4 QUOTA definida en rfc2087." -#: ../Doc/library/imaplib.rst:316 +#: ../Doc/library/imaplib.rst:306 msgid "" "Get the list of ``quota`` ``roots`` for the named *mailbox*. This method is " "part of the IMAP4 QUOTA extension defined in rfc2087." @@ -513,7 +493,7 @@ msgstr "" "Obtiene la lista de ``quota`` ``roots`` para el nombrado *mailbox*. Este " "método es parte de la extensión IMAP4 QUOTA definida en rfc2087." -#: ../Doc/library/imaplib.rst:322 +#: ../Doc/library/imaplib.rst:312 msgid "" "List mailbox names in *directory* matching *pattern*. *directory* defaults " "to the top-level mail folder, and *pattern* defaults to match anything. " @@ -524,7 +504,7 @@ msgstr "" "superior, y *pattern* por defecto coincide con cualquier cosa. Los datos " "retornados contienen una lista de respuestas ``LIST``." -#: ../Doc/library/imaplib.rst:329 +#: ../Doc/library/imaplib.rst:319 msgid "" "Identify the client using a plaintext password. The *password* will be " "quoted." @@ -532,7 +512,7 @@ msgstr "" "Identifica al cliente con una contraseña de texto sin formato. El *password* " "será citado." -#: ../Doc/library/imaplib.rst:334 +#: ../Doc/library/imaplib.rst:324 msgid "" "Force use of ``CRAM-MD5`` authentication when identifying the client to " "protect the password. Will only work if the server ``CAPABILITY`` response " @@ -542,17 +522,17 @@ msgstr "" "para proteger la contraseña. Solo funcionará si la respuesta ``CAPABILITY`` " "del servidor incluye la frase ``AUTH=CRAM-MD5``." -#: ../Doc/library/imaplib.rst:341 +#: ../Doc/library/imaplib.rst:331 msgid "Shutdown connection to server. Returns server ``BYE`` response." msgstr "" "Cierra la conexión al servidor. Retorna la respuesta ``BYE`` desde el " "servidor ." -#: ../Doc/library/imaplib.rst:343 +#: ../Doc/library/imaplib.rst:333 msgid "The method no longer ignores silently arbitrary exceptions." msgstr "El método ya no ignora las excepciones silenciosamente arbitrarias." -#: ../Doc/library/imaplib.rst:349 +#: ../Doc/library/imaplib.rst:339 msgid "" "List subscribed mailbox names in directory matching pattern. *directory* " "defaults to the top level directory and *pattern* defaults to match any " @@ -563,21 +543,21 @@ msgstr "" "nivel superior y *pattern* por defecto para que coincida con cualquier buzón " "de correo. Los datos retornados son una tupla de mensaje parte sobre y datos." -#: ../Doc/library/imaplib.rst:356 +#: ../Doc/library/imaplib.rst:346 msgid "Show my ACLs for a mailbox (i.e. the rights that I have on mailbox)." msgstr "" "Muestra mis ACLs para un buzón de correo (es decir, los derechos que tengo " "sobre el buzón de correo)." -#: ../Doc/library/imaplib.rst:361 +#: ../Doc/library/imaplib.rst:351 msgid "Returns IMAP namespaces as defined in :rfc:`2342`." msgstr "Retorna espacios de nombres IMAP como se define en :rfc:`2342`." -#: ../Doc/library/imaplib.rst:366 +#: ../Doc/library/imaplib.rst:356 msgid "Send ``NOOP`` to server." msgstr "Envía ``NOOP`` al servidor." -#: ../Doc/library/imaplib.rst:371 +#: ../Doc/library/imaplib.rst:361 msgid "" "Opens socket to *port* at *host*. The optional *timeout* parameter specifies " "a timeout in seconds for the connection attempt. If timeout is not given or " @@ -599,7 +579,7 @@ msgstr "" "`IMAP4.read`, :meth:`IMAP4.readline`, :meth:`IMAP4.send`, y :meth:`IMAP4." "shutdown`. Este método se puede sobreescribir." -#: ../Doc/library/imaplib.rst:390 +#: ../Doc/library/imaplib.rst:380 msgid "" "Raises an :ref:`auditing event ` ``imaplib.open`` with arguments " "``self``, ``host``, ``port``." @@ -607,11 +587,11 @@ msgstr "" "Genera un :ref:`evento de auditoría ` ``imaplib.open`` con " "argumentos ``self``, ``host``, ``port``." -#: ../Doc/library/imaplib.rst:383 +#: ../Doc/library/imaplib.rst:373 msgid "The *timeout* parameter was added." msgstr "El parámetro *timeout* fue agregado." -#: ../Doc/library/imaplib.rst:388 +#: ../Doc/library/imaplib.rst:378 msgid "" "Fetch truncated part of a message. Returned data is a tuple of message part " "envelope and data." @@ -619,7 +599,7 @@ msgstr "" "Obtiene partes truncadas de un mensaje. Los datos retornados son una tupla " "de mensaje parte sobre y datos." -#: ../Doc/library/imaplib.rst:394 +#: ../Doc/library/imaplib.rst:384 msgid "" "Assume authentication as *user*. Allows an authorised administrator to proxy " "into any user's mailbox." @@ -627,17 +607,17 @@ msgstr "" "Asume la autenticación como *user*. Permite a un administrador autorizado " "hacer un proxy en el buzón de correo de cualquier usuario." -#: ../Doc/library/imaplib.rst:400 +#: ../Doc/library/imaplib.rst:390 msgid "" "Reads *size* bytes from the remote server. You may override this method." msgstr "" "Lee *size* bytes del servidor remoto. Podemos sobrescribir este método." -#: ../Doc/library/imaplib.rst:405 +#: ../Doc/library/imaplib.rst:395 msgid "Reads one line from the remote server. You may override this method." msgstr "Lee una línea del servidor remoto. Podemos sobrescribir este método." -#: ../Doc/library/imaplib.rst:410 +#: ../Doc/library/imaplib.rst:400 msgid "" "Prompt server for an update. Returned data is ``None`` if no new messages, " "else value of ``RECENT`` response." @@ -645,12 +625,12 @@ msgstr "" "Solicita al servidor una actualización. Los datos retornados son ``None`` si " "no hay mensajes nuevos, de lo contrario el valor de respuesta es ``RECENT``." -#: ../Doc/library/imaplib.rst:416 +#: ../Doc/library/imaplib.rst:406 msgid "Rename mailbox named *oldmailbox* to *newmailbox*." msgstr "" "Cambia el nombre del buzón de correo llamado *oldmailbox* a *newmailbox*." -#: ../Doc/library/imaplib.rst:421 +#: ../Doc/library/imaplib.rst:411 msgid "" "Return data for response *code* if received, or ``None``. Returns the given " "code, instead of the usual type." @@ -658,7 +638,7 @@ msgstr "" "Retorna los datos para la respuesta *code* si se recibió, o ``None``. " "Retorna el código dado, en lugar del tipo habitual." -#: ../Doc/library/imaplib.rst:427 +#: ../Doc/library/imaplib.rst:417 msgid "" "Search mailbox for matching messages. *charset* may be ``None``, in which " "case no ``CHARSET`` will be specified in the request to the server. The " @@ -674,11 +654,11 @@ msgstr "" "*charset* debe ser ``None`` si la capacidad ``UTF8=ACCEPT`` se habilitó " "utilizando el comando :meth:`enable`." -#: ../Doc/library/imaplib.rst:434 +#: ../Doc/library/imaplib.rst:424 msgid "Example::" msgstr "Ejemplo::" -#: ../Doc/library/imaplib.rst:445 +#: ../Doc/library/imaplib.rst:435 msgid "" "Select a mailbox. Returned data is the count of messages in *mailbox* " "(``EXISTS`` response). The default *mailbox* is ``'INBOX'``. If the " @@ -689,11 +669,11 @@ msgstr "" "``'INBOX'``. Si se establece el indicador *readonly*, no se permiten " "modificaciones en el buzón de correo." -#: ../Doc/library/imaplib.rst:452 +#: ../Doc/library/imaplib.rst:442 msgid "Sends ``data`` to the remote server. You may override this method." msgstr "Envía ``data`` al servidor remoto. Podemos sobrescribir este método." -#: ../Doc/library/imaplib.rst:463 +#: ../Doc/library/imaplib.rst:453 msgid "" "Raises an :ref:`auditing event ` ``imaplib.send`` with arguments " "``self``, ``data``." @@ -701,7 +681,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``imaplib.send`` con " "argumentos ``self``, ``data``." -#: ../Doc/library/imaplib.rst:459 +#: ../Doc/library/imaplib.rst:449 msgid "" "Set an ``ACL`` for *mailbox*. The method is non-standard, but is supported " "by the ``Cyrus`` server." @@ -709,7 +689,7 @@ msgstr "" "Establece una ``ACL`` para *mailbox*. El método no es estándar, pero es " "compatible con el servidor ``Cyrus``." -#: ../Doc/library/imaplib.rst:465 +#: ../Doc/library/imaplib.rst:455 msgid "" "Set ``ANNOTATION``\\ s for *mailbox*. The method is non-standard, but is " "supported by the ``Cyrus`` server." @@ -717,7 +697,7 @@ msgstr "" "Establece ``ANNOTATION``\\ s para *mailbox*. El método no es estándar, pero " "es compatible con el servidor ``Cyrus``." -#: ../Doc/library/imaplib.rst:471 +#: ../Doc/library/imaplib.rst:461 msgid "" "Set the ``quota`` *root*'s resource *limits*. This method is part of the " "IMAP4 QUOTA extension defined in rfc2087." @@ -725,7 +705,7 @@ msgstr "" "Establece los recursos *limits* de la ``quota`` de los *root*. Este método " "es parte de la extensión IMAP4 QUOTA definida en rfc2087." -#: ../Doc/library/imaplib.rst:477 +#: ../Doc/library/imaplib.rst:467 msgid "" "Close connection established in ``open``. This method is implicitly called " "by :meth:`IMAP4.logout`. You may override this method." @@ -733,11 +713,11 @@ msgstr "" "Cierra la conexión establecida en ``open``. Este método es llamado " "implícitamente por :meth:`IMAP4.logout`. Podemos sobrescribir este método." -#: ../Doc/library/imaplib.rst:483 +#: ../Doc/library/imaplib.rst:473 msgid "Returns socket instance used to connect to server." msgstr "Retorna la instancia de socket utilizada para conectarse al servidor." -#: ../Doc/library/imaplib.rst:488 +#: ../Doc/library/imaplib.rst:478 msgid "" "The ``sort`` command is a variant of ``search`` with sorting semantics for " "the results. Returned data contains a space separated list of matching " @@ -747,7 +727,7 @@ msgstr "" "clasificación para los resultados. Los datos retornados contienen una lista " "separada por espacios de números de mensajes coincidentes." -#: ../Doc/library/imaplib.rst:492 +#: ../Doc/library/imaplib.rst:482 msgid "" "Sort has two arguments before the *search_criterion* argument(s); a " "parenthesized list of *sort_criteria*, and the searching *charset*. Note " @@ -768,11 +748,11 @@ msgstr "" "*charset* para la interpretación de cadenas de caracteres en los criterios " "de búsqueda. Luego retorna los números de mensajes coincidentes." -#: ../Doc/library/imaplib.rst:501 ../Doc/library/imaplib.rst:572 +#: ../Doc/library/imaplib.rst:491 ../Doc/library/imaplib.rst:562 msgid "This is an ``IMAP4rev1`` extension command." msgstr "Este es un comando de extensión ``IMAP4rev1``." -#: ../Doc/library/imaplib.rst:506 +#: ../Doc/library/imaplib.rst:496 msgid "" "Send a ``STARTTLS`` command. The *ssl_context* argument is optional and " "should be a :class:`ssl.SSLContext` object. This will enable encryption on " @@ -782,20 +762,21 @@ msgstr "" "ser un objeto :class:`ssl.SSLContext`. Esto habilitará el cifrado en la " "conexión IMAP. Leer :ref:`ssl-security` para conocer las mejores prácticas." -#: ../Doc/library/imaplib.rst:513 +#: ../Doc/library/imaplib.rst:503 +#, fuzzy msgid "" "The method now supports hostname check with :attr:`ssl.SSLContext." -"check_hostname` and *Server Name Indication* (see :data:`ssl.HAS_SNI`)." +"check_hostname` and *Server Name Indication* (see :const:`ssl.HAS_SNI`)." msgstr "" "El método ahora admite la verificación del nombre de host con :attr:`ssl." "SSLContext.check_hostname` y *Server Name Indication* (ver :data:`ssl." "HAS_SNI`)." -#: ../Doc/library/imaplib.rst:521 +#: ../Doc/library/imaplib.rst:511 msgid "Request named status conditions for *mailbox*." msgstr "Solicita condiciones de estado con nombre para *mailbox*." -#: ../Doc/library/imaplib.rst:526 +#: ../Doc/library/imaplib.rst:516 msgid "" "Alters flag dispositions for messages in mailbox. *command* is specified by " "section 6.4.6 of :rfc:`2060` as being one of \"FLAGS\", \"+FLAGS\", or \"-" @@ -806,13 +787,13 @@ msgstr "" "siendo como uno de \"FLAGS\", \"+FLAGS\" o \"-FLAGS\", opcionalmente con un " "sufijo \".SILENT\"." -#: ../Doc/library/imaplib.rst:530 +#: ../Doc/library/imaplib.rst:520 msgid "For example, to set the delete flag on all messages::" msgstr "" "Por ejemplo, para establecer el indicador de eliminación en todos los " "mensajes::" -#: ../Doc/library/imaplib.rst:539 +#: ../Doc/library/imaplib.rst:529 msgid "" "Creating flags containing ']' (for example: \"[test]\") violates :rfc:`3501` " "(the IMAP protocol). However, imaplib has historically allowed creation of " @@ -834,11 +815,11 @@ msgstr "" "3.6, las maneja si se envían desde el servidor, ya que esto mejora la " "compatibilidad en el mundo real." -#: ../Doc/library/imaplib.rst:551 +#: ../Doc/library/imaplib.rst:541 msgid "Subscribe to new mailbox." msgstr "Suscribe al nuevo buzón de correo." -#: ../Doc/library/imaplib.rst:556 +#: ../Doc/library/imaplib.rst:546 msgid "" "The ``thread`` command is a variant of ``search`` with threading semantics " "for the results. Returned data contains a space separated list of thread " @@ -848,7 +829,7 @@ msgstr "" "para los resultados. Los datos retornados contienen una lista de miembros de " "hilos separados por espacios." -#: ../Doc/library/imaplib.rst:559 +#: ../Doc/library/imaplib.rst:549 msgid "" "Thread members consist of zero or more messages numbers, delimited by " "spaces, indicating successive parent and child." @@ -856,7 +837,8 @@ msgstr "" "Los miembros de del hilo (*thread*) consisten en cero o más números de " "mensajes, delimitados por espacios, que indican sucesivos padres e hijos." -#: ../Doc/library/imaplib.rst:562 +#: ../Doc/library/imaplib.rst:552 +#, fuzzy msgid "" "Thread has two arguments before the *search_criterion* argument(s); a " "*threading_algorithm*, and the searching *charset*. Note that unlike " @@ -864,7 +846,7 @@ msgid "" "``uid thread`` command which corresponds to ``thread`` the way that ``uid " "search`` corresponds to ``search``. The ``thread`` command first searches " "the mailbox for messages that match the given searching criteria using the " -"charset argument for the interpretation of strings in the searching " +"*charset* argument for the interpretation of strings in the searching " "criteria. It then returns the matching messages threaded according to the " "specified threading algorithm." msgstr "" @@ -879,7 +861,7 @@ msgstr "" "retorna los mensajes coincidentes enfilados según el algoritmo de subproceso " "especificado." -#: ../Doc/library/imaplib.rst:577 +#: ../Doc/library/imaplib.rst:567 msgid "" "Execute command args with messages identified by UID, rather than message " "number. Returns response appropriate to command. At least one argument " @@ -891,11 +873,11 @@ msgstr "" "proporcionar al menos un argumento; Si no se proporciona ninguno, el " "servidor retornará un error y se lanzará una excepción." -#: ../Doc/library/imaplib.rst:585 +#: ../Doc/library/imaplib.rst:575 msgid "Unsubscribe from old mailbox." msgstr "Darse de baja del antiguo buzón de correo." -#: ../Doc/library/imaplib.rst:589 +#: ../Doc/library/imaplib.rst:579 msgid "" ":meth:`imaplib.IMAP4.unselect` frees server's resources associated with the " "selected mailbox and returns the server to the authenticated state. This " @@ -908,7 +890,7 @@ msgstr "" "con la excepción de que ningún mensaje es permanentemente borrado del buzón " "de correo actualmente seleccionado." -#: ../Doc/library/imaplib.rst:599 +#: ../Doc/library/imaplib.rst:589 msgid "" "Allow simple extension commands notified by server in ``CAPABILITY`` " "response." @@ -916,11 +898,11 @@ msgstr "" "Permite comandos de extensión simples notificados por el servidor en la " "respuesta ``CAPABILITY``." -#: ../Doc/library/imaplib.rst:602 +#: ../Doc/library/imaplib.rst:592 msgid "The following attributes are defined on instances of :class:`IMAP4`:" msgstr "Los siguientes atributos se definen en instancias de :class:`IMAP4`:" -#: ../Doc/library/imaplib.rst:606 +#: ../Doc/library/imaplib.rst:596 msgid "" "The most recent supported protocol in the ``CAPABILITY`` response from the " "server." @@ -928,7 +910,7 @@ msgstr "" "El protocolo mas recientemente admitido en la respuesta ``CAPABILITY`` desde " "el servidor." -#: ../Doc/library/imaplib.rst:612 +#: ../Doc/library/imaplib.rst:602 msgid "" "Integer value to control debugging output. The initialize value is taken " "from the module variable ``Debug``. Values greater than three trace each " @@ -938,7 +920,7 @@ msgstr "" "inicialización se toma de la variable del módulo ``Debug``. Valores mayores " "de tres rastrean cada comando." -#: ../Doc/library/imaplib.rst:618 +#: ../Doc/library/imaplib.rst:608 msgid "" "Boolean value that is normally ``False``, but is set to ``True`` if an :meth:" "`enable` command is successfully issued for the ``UTF8=ACCEPT`` capability." @@ -947,14 +929,56 @@ msgstr "" "si un comando :meth:`enable` es exitosamente emitido para la capacidad " "``UTF8=ACCEPT``." -#: ../Doc/library/imaplib.rst:628 +#: ../Doc/library/imaplib.rst:618 msgid "IMAP4 Example" msgstr "Ejemplo IMAP4" -#: ../Doc/library/imaplib.rst:630 +#: ../Doc/library/imaplib.rst:620 msgid "" "Here is a minimal example (without error checking) that opens a mailbox and " "retrieves and prints all messages::" msgstr "" "Aquí hay un ejemplo mínimo (sin verificación de errores) que abre un buzón " "de correo y recupera e imprime todos los mensajes::" + +#: ../Doc/library/imaplib.rst:16 +msgid "IMAP4" +msgstr "" + +#: ../Doc/library/imaplib.rst:16 +msgid "protocol" +msgstr "" + +#: ../Doc/library/imaplib.rst:16 +msgid "IMAP4_SSL" +msgstr "" + +#: ../Doc/library/imaplib.rst:16 +#, fuzzy +msgid "IMAP4_stream" +msgstr "Ejemplo IMAP4" + +#~ msgid "" +#~ "*keyfile* and *certfile* are a legacy alternative to *ssl_context* - they " +#~ "can point to PEM-formatted private key and certificate chain files for " +#~ "the SSL connection. Note that the *keyfile*/*certfile* parameters are " +#~ "mutually exclusive with *ssl_context*, a :class:`ValueError` is raised if " +#~ "*keyfile*/*certfile* is provided along with *ssl_context*." +#~ msgstr "" +#~ "*keyfile* y *certfile* son una alternativa heredada a *ssl_context* - " +#~ "pueden apuntar a claves privadas con formato PEM y archivos de cadena de " +#~ "certificados para la conexión SSL. Tenga en cuenta que los parámetros " +#~ "*keyfile*/*certfile* son mutuamente excluyentes con *ssl_context*, un :" +#~ "class:`ValueError` se lanzará si *keyfile*/*certfile* se proporciona " +#~ "junto con *ssl_context*." + +#~ msgid "" +#~ "*keyfile* and *certfile* are deprecated in favor of *ssl_context*. Please " +#~ "use :meth:`ssl.SSLContext.load_cert_chain` instead, or let :func:`ssl." +#~ "create_default_context` select the system's trusted CA certificates for " +#~ "you." +#~ msgstr "" +#~ "*keyfile* y *certfile* están obsoletos en favor de *ssl_context*. " +#~ "Utilice :meth:`ssl.SSLContext.load_cert_chain` en su lugar, o deje que :" +#~ "func:`ssl.create_default_context` seleccione los certificados CA de " +#~ "confianza del sistema para usted." diff --git a/library/imghdr.po b/library/imghdr.po index c768e70148..3951212538 100644 --- a/library/imghdr.po +++ b/library/imghdr.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-03-09 12:31-0300\n" "Last-Translator: \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/imghdr.rst:2 msgid ":mod:`imghdr` --- Determine the type of an image" @@ -51,10 +50,11 @@ msgid "The :mod:`imghdr` module defines the following function:" msgstr "El módulo :mod:`imghdr` define la siguiente función:" #: ../Doc/library/imghdr.rst:24 +#, fuzzy msgid "" -"Tests the image data contained in the file named by *file*, and returns a " -"string describing the image type. If optional *h* is provided, the *file* " -"argument is ignored and *h* is assumed to contain the byte stream to test." +"Test the image data contained in the file named *file* and return a string " +"describing the image type. If *h* is provided, the *file* argument is " +"ignored and *h* is assumed to contain the byte stream to test." msgstr "" "Prueba los datos de imagen contenidos en el archivo nombrado por *file* y " "retorna una cadena que describe el tipo de imagen. Si se proporciona *h* " diff --git a/library/importlib.metadata.po b/library/importlib.metadata.po index 845c6bc22d..078f7b4fc3 100644 --- a/library/importlib.metadata.po +++ b/library/importlib.metadata.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python en Español 3.7\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-10-29 07:47-0300\n" "Last-Translator: diecristher@gmail.com\n" "Language: es_AR\n" @@ -17,11 +17,11 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/importlib.metadata.rst:5 -msgid "Using :mod:`!importlib.metadata`" -msgstr "Usando :mod:`!importlib.metadata`" +msgid ":mod:`!importlib.metadata` -- Accessing package metadata" +msgstr "" #: ../Doc/library/importlib.metadata.rst:11 msgid "``importlib.metadata`` is no longer provisional." @@ -35,12 +35,15 @@ msgstr "**Código fuente:** :source:`Lib/importlib/metadata.py`" #: ../Doc/library/importlib.metadata.rst:16 #, fuzzy msgid "" -"``importlib.metadata`` is a library that provides for access to installed " -"package metadata. Built in part on Python's import system, this library " -"intends to replace similar functionality in the `entry point API`_ and " -"`metadata API`_ of ``pkg_resources``. Along with :mod:`importlib.resources` " -"(with new features backported to the `importlib_resources`_ package), this " -"can eliminate the need to use the older and less efficient ``pkg_resources`` " +"``importlib.metadata`` is a library that provides access to the metadata of " +"an installed `Distribution Package `_, such as its entry points or its top-" +"level names (`Import Package `_\\s, modules, if any). Built in part on " +"Python's import system, this library intends to replace similar " +"functionality in the `entry point API`_ and `metadata API`_ of " +"``pkg_resources``. Along with :mod:`importlib.resources`, this package can " +"eliminate the need to use the older and less efficient ``pkg_resources`` " "package." msgstr "" "``importlib.metadata`` es una biblioteca que proporciona acceso a los " @@ -52,15 +55,15 @@ msgstr "" "para versiones anteriores de Python), esto puede eliminar la necesidad de " "usar el paquete ``pkg_resources``, antiguo y menos eficiente." -#: ../Doc/library/importlib.metadata.rst:25 +#: ../Doc/library/importlib.metadata.rst:27 +#, fuzzy msgid "" -"By \"installed package\" we generally mean a third-party package installed " -"into Python's ``site-packages`` directory via tools such as `pip `_. Specifically, it means a package with either a " -"discoverable ``dist-info`` or ``egg-info`` directory, and metadata defined " -"by :pep:`566` or its older specifications. By default, package metadata can " -"live on the file system or in zip archives on :data:`sys.path`. Through an " -"extension mechanism, the metadata can live almost anywhere." +"``importlib.metadata`` operates on third-party *distribution packages* " +"installed into Python's ``site-packages`` directory via tools such as `pip " +"`_. Specifically, it works with distributions " +"with discoverable ``dist-info`` or ``egg-info`` directories, and metadata " +"defined by the `Core metadata specifications `_." msgstr "" "Por \"paquete instalado\" generalmente nos referimos a un paquete de " "terceros instalado en el directorio ``site-packages`` de Python a través de " @@ -73,41 +76,77 @@ msgstr "" "lugar." #: ../Doc/library/importlib.metadata.rst:36 +msgid "" +"These are *not* necessarily equivalent to or correspond 1:1 with the top-" +"level *import package* names that can be imported inside Python code. One " +"*distribution package* can contain multiple *import packages* (and single " +"modules), and one top-level *import package* may map to multiple " +"*distribution packages* if it is a namespace package. You can use :ref:" +"`package_distributions() ` to get a mapping between " +"them." +msgstr "" + +#: ../Doc/library/importlib.metadata.rst:47 +msgid "" +"By default, distribution metadata can live on the file system or in zip " +"archives on :data:`sys.path`. Through an extension mechanism, the metadata " +"can live almost anywhere." +msgstr "" + +#: ../Doc/library/importlib.metadata.rst:62 +msgid "https://importlib-metadata.readthedocs.io/" +msgstr "" + +#: ../Doc/library/importlib.metadata.rst:56 +msgid "" +"The documentation for ``importlib_metadata``, which supplies a backport of " +"``importlib.metadata``. This includes an `API reference `__ for this module's classes and " +"functions, as well as a `migration guide `__ for existing users of " +"``pkg_resources``." +msgstr "" + +#: ../Doc/library/importlib.metadata.rst:67 msgid "Overview" msgstr "Descripción general" -#: ../Doc/library/importlib.metadata.rst:38 +#: ../Doc/library/importlib.metadata.rst:69 +#, fuzzy msgid "" -"Let's say you wanted to get the version string for a package you've " -"installed using ``pip``. We start by creating a virtual environment and " -"installing something into it:" +"Let's say you wanted to get the version string for a `Distribution Package " +"`_ you've installed using ``pip``. We start by creating a virtual " +"environment and installing something into it:" msgstr "" "Supongamos que desea obtener la cadena de versión para un paquete que ha " "instalado con ``pip``. Comenzamos creando un entorno virtual e instalando " "algo en él:" -#: ../Doc/library/importlib.metadata.rst:48 +#: ../Doc/library/importlib.metadata.rst:80 msgid "You can get the version string for ``wheel`` by running the following:" msgstr "" "Se puede obtener la cadena de versión para ``wheel`` ejecutando lo siguiente:" -#: ../Doc/library/importlib.metadata.rst:57 +#: ../Doc/library/importlib.metadata.rst:89 +#, fuzzy msgid "" -"You can also get the set of entry points keyed by group, such as " -"``console_scripts``, ``distutils.commands`` and others. Each group contains " -"a sequence of :ref:`EntryPoint ` objects." +"You can also get a collection of entry points selectable by properties of " +"the EntryPoint (typically 'group' or 'name'), such as ``console_scripts``, " +"``distutils.commands`` and others. Each group contains a collection of :ref:" +"`EntryPoint ` objects." msgstr "" "También se puede obtener el conjunto de los puntos de entrada clasificados " "usando el grupo, como ``console_scripts``, ``distutils.commands`` y otros, " "como claves. Cada grupo contiene una secuencia de objetos :ref:`EntryPoint " "`." -#: ../Doc/library/importlib.metadata.rst:61 +#: ../Doc/library/importlib.metadata.rst:93 msgid "You can get the :ref:`metadata for a distribution `::" msgstr "" "Se pueden obtener los :ref:`metadatos para una distribución `::" -#: ../Doc/library/importlib.metadata.rst:66 +#: ../Doc/library/importlib.metadata.rst:98 msgid "" "You can also get a :ref:`distribution's version number `, list its :" "ref:`constituent files `, and get a list of the distribution's :ref:" @@ -117,20 +156,20 @@ msgstr "" "`, enumerar sus :ref:`archivos constituyentes ` y obtener " "una lista de los :ref:`requirements` de la distribución." -#: ../Doc/library/importlib.metadata.rst:72 +#: ../Doc/library/importlib.metadata.rst:104 msgid "Functional API" msgstr "API funcional" -#: ../Doc/library/importlib.metadata.rst:74 +#: ../Doc/library/importlib.metadata.rst:106 msgid "This package provides the following functionality via its public API." msgstr "" "Este paquete provee la siguiente funcionalidad a través de su API pública." -#: ../Doc/library/importlib.metadata.rst:80 +#: ../Doc/library/importlib.metadata.rst:112 msgid "Entry points" msgstr "Puntos de entrada" -#: ../Doc/library/importlib.metadata.rst:82 +#: ../Doc/library/importlib.metadata.rst:114 msgid "" "The ``entry_points()`` function returns a collection of entry points. Entry " "points are represented by ``EntryPoint`` instances; each ``EntryPoint`` has " @@ -145,21 +184,22 @@ msgstr "" "También hay atributos ``.module``, ``.attr`` y ``.extras`` para obtener los " "componentes del atributo ``.value``." -#: ../Doc/library/importlib.metadata.rst:89 +#: ../Doc/library/importlib.metadata.rst:121 msgid "Query all entry points::" msgstr "Consultar todos los puntos de entrada::" -#: ../Doc/library/importlib.metadata.rst:93 +#: ../Doc/library/importlib.metadata.rst:125 +#, fuzzy msgid "" "The ``entry_points()`` function returns an ``EntryPoints`` object, a " -"sequence of all ``EntryPoint`` objects with ``names`` and ``groups`` " +"collection of all ``EntryPoint`` objects with ``names`` and ``groups`` " "attributes for convenience::" msgstr "" "La función ``entry_points()`` retorna un objeto ``EntryPoints``, una " "secuencia de todos los objetos ``EntryPoint`` con atributos ``names`` y " "``groups`` por conveniencia::" -#: ../Doc/library/importlib.metadata.rst:100 +#: ../Doc/library/importlib.metadata.rst:132 msgid "" "``EntryPoints`` has a ``select`` method to select entry points matching " "specific properties. Select entry points in the ``console_scripts`` group::" @@ -168,7 +208,7 @@ msgstr "" "entrada que coincidan con propiedades específicas. Seleccione los puntos de " "entrada en el grupo ``console_scripts``::" -#: ../Doc/library/importlib.metadata.rst:106 +#: ../Doc/library/importlib.metadata.rst:138 msgid "" "Equivalently, since ``entry_points`` passes keyword arguments through to " "select::" @@ -176,24 +216,24 @@ msgstr "" "De manera equivalente, ya que ``entry_points`` para argumentos de palabra " "clave para seleccionar::" -#: ../Doc/library/importlib.metadata.rst:111 +#: ../Doc/library/importlib.metadata.rst:143 msgid "" "Pick out a specific script named \"wheel\" (found in the wheel project)::" msgstr "" "Elige un script específico llamado \"wheel\" (que se encuentra en el " "proyecto *wheel*)::" -#: ../Doc/library/importlib.metadata.rst:117 +#: ../Doc/library/importlib.metadata.rst:149 msgid "Equivalently, query for that entry point during selection::" msgstr "" "De manera equivalente, consulta por ese punto de entrada durante la " "selección::" -#: ../Doc/library/importlib.metadata.rst:122 +#: ../Doc/library/importlib.metadata.rst:154 msgid "Inspect the resolved entry point::" msgstr "Inspeccionar el punto de entrada resuelto::" -#: ../Doc/library/importlib.metadata.rst:136 +#: ../Doc/library/importlib.metadata.rst:168 #, fuzzy msgid "" "The ``group`` and ``name`` are arbitrary values defined by the package " @@ -209,21 +249,21 @@ msgstr "" "discovery-of-services-and-plugins>`_ para obtener más información sobre los " "puntos de entrada, su definición y uso." -#: ../Doc/library/importlib.metadata.rst:142 +#: ../Doc/library/importlib.metadata.rst:174 msgid "*Compatibility Note*" msgstr "*Nota de compatibilidad*" # keyed by group lo traduje como cifrados, pero no se si hay algo más adecuado -#: ../Doc/library/importlib.metadata.rst:144 +#: ../Doc/library/importlib.metadata.rst:176 +#, fuzzy msgid "" "The \"selectable\" entry points were introduced in ``importlib_metadata`` " "3.6 and Python 3.10. Prior to those changes, ``entry_points`` accepted no " "parameters and always returned a dictionary of entry points, keyed by group. " -"For compatibility, if no parameters are passed to entry_points, a " -"``SelectableGroups`` object is returned, implementing that dict interface. " -"In the future, calling ``entry_points`` with no parameters will return an " -"``EntryPoints`` object. Users should rely on the selection interface to " -"retrieve entry points by group." +"With ``importlib_metadata`` 5.0 and Python 3.12, ``entry_points`` always " +"returns an ``EntryPoints`` object. See `backports.entry_points_selectable " +"`_ for " +"compatibility options." msgstr "" "Los puntos de entrada \"seleccionables\" se introdujeron en " "``importlib_metadata`` 3.6 y Python 3.10. Antes de esos cambios, " @@ -235,19 +275,21 @@ msgstr "" "``EntryPoints``. Los usuarios deberían confiar en la interfaz de selección " "para recuperar los puntos de entrada por grupo." -#: ../Doc/library/importlib.metadata.rst:157 +#: ../Doc/library/importlib.metadata.rst:188 msgid "Distribution metadata" msgstr "Metadatos de distribución" -#: ../Doc/library/importlib.metadata.rst:159 +#: ../Doc/library/importlib.metadata.rst:190 +#, fuzzy msgid "" -"Every distribution includes some metadata, which you can extract using the " -"``metadata()`` function::" +"Every `Distribution Package `_ includes some metadata, which you can extract " +"using the ``metadata()`` function::" msgstr "" "Cada distribución incluye algunos metadatos, que se pueden extraer " "utilizando la función ``metadata()``:" -#: ../Doc/library/importlib.metadata.rst:164 +#: ../Doc/library/importlib.metadata.rst:196 msgid "" "The keys of the returned data structure, a ``PackageMetadata``, name the " "metadata keywords, and the values are returned unparsed from the " @@ -257,7 +299,7 @@ msgstr "" "nombran las palabras clave de los metadatos y sus valores se retornan sin " "analizar de los metadatos de distribución::" -#: ../Doc/library/importlib.metadata.rst:171 +#: ../Doc/library/importlib.metadata.rst:203 msgid "" "``PackageMetadata`` also presents a ``json`` attribute that returns all the " "metadata in a JSON-compatible form per :PEP:`566`::" @@ -265,7 +307,15 @@ msgstr "" "``PackageMetadata`` también presenta un atributo ``json`` que retorna todos " "los metadatos en un formulario compatible con JSON por :PEP:`566`::" -#: ../Doc/library/importlib.metadata.rst:177 +#: ../Doc/library/importlib.metadata.rst:211 +msgid "" +"The actual type of the object returned by ``metadata()`` is an " +"implementation detail and should be accessed only through the interface " +"described by the `PackageMetadata protocol `_." +msgstr "" + +#: ../Doc/library/importlib.metadata.rst:216 msgid "" "The ``Description`` is now included in the metadata when presented through " "the payload. Line continuation characters have been removed." @@ -274,30 +324,34 @@ msgstr "" "través de la carga útil. Se han eliminado los caracteres de continuación de " "línea." -#: ../Doc/library/importlib.metadata.rst:181 +#: ../Doc/library/importlib.metadata.rst:220 msgid "The ``json`` attribute was added." msgstr "El atributo ``json`` fue añadido." -#: ../Doc/library/importlib.metadata.rst:188 +#: ../Doc/library/importlib.metadata.rst:227 msgid "Distribution versions" msgstr "Versiones de distribución" -#: ../Doc/library/importlib.metadata.rst:190 +#: ../Doc/library/importlib.metadata.rst:229 +#, fuzzy msgid "" -"The ``version()`` function is the quickest way to get a distribution's " -"version number, as a string::" +"The ``version()`` function is the quickest way to get a `Distribution " +"Package `_'s version number, as a string::" msgstr "" "La función ``version()`` es la forma más rápida para obtener el número de " "versión de una distribución, como una cadena de caracteres:" -#: ../Doc/library/importlib.metadata.rst:200 +#: ../Doc/library/importlib.metadata.rst:240 msgid "Distribution files" msgstr "Archivos de distribución" -#: ../Doc/library/importlib.metadata.rst:202 +#: ../Doc/library/importlib.metadata.rst:242 +#, fuzzy msgid "" "You can also get the full set of files contained within a distribution. The " -"``files()`` function takes a distribution package name and returns all of " +"``files()`` function takes a `Distribution Package `_ name and returns all of " "the files installed by this distribution. Each file object returned is a " "``PackagePath``, a :class:`pathlib.PurePath` derived object with additional " "``dist``, ``size``, and ``hash`` properties as indicated by the metadata. " @@ -310,11 +364,11 @@ msgstr "" "de :class:`pathlib.PurePath` con las propiedades adicionales ``dist``, " "``size`` y ``hash`` según indican los metadatos. Por ejemplo::" -#: ../Doc/library/importlib.metadata.rst:218 +#: ../Doc/library/importlib.metadata.rst:259 msgid "Once you have the file, you can also read its contents::" msgstr "Una vez que se tiene el archivo, también se puede leer su contenido::" -#: ../Doc/library/importlib.metadata.rst:229 +#: ../Doc/library/importlib.metadata.rst:270 msgid "" "You can also use the ``locate`` method to get a the absolute path to the " "file::" @@ -322,7 +376,7 @@ msgstr "" "También puede usar el método ``locate`` para obtener la ruta absoluta al " "archivo:" -#: ../Doc/library/importlib.metadata.rst:235 +#: ../Doc/library/importlib.metadata.rst:276 msgid "" "In the case where the metadata file listing files (RECORD or SOURCES.txt) is " "missing, ``files()`` will return ``None``. The caller may wish to wrap calls " @@ -338,41 +392,52 @@ msgstr "" "`_ u otra protección similar." -#: ../Doc/library/importlib.metadata.rst:246 +#: ../Doc/library/importlib.metadata.rst:287 msgid "Distribution requirements" msgstr "Requerimientos de la distribución" -#: ../Doc/library/importlib.metadata.rst:248 +#: ../Doc/library/importlib.metadata.rst:289 +#, fuzzy msgid "" -"To get the full set of requirements for a distribution, use the " -"``requires()`` function::" +"To get the full set of requirements for a `Distribution Package `_, use " +"the ``requires()`` function::" msgstr "" "Para obtener el conjunto completo de los requerimientos de una distribución, " "usa la función ``requires()``:" -#: ../Doc/library/importlib.metadata.rst:256 -msgid "Package distributions" -msgstr "Distribuciones de paquetes" +#: ../Doc/library/importlib.metadata.rst:301 +msgid "Mapping import to distribution packages" +msgstr "" + +#: ../Doc/library/importlib.metadata.rst:303 +msgid "" +"A convenience method to resolve the `Distribution Package `_ name (or names, " +"in the case of a namespace package) that provide each importable top-level " +"Python module or `Import Package `_::" +msgstr "" -#: ../Doc/library/importlib.metadata.rst:258 +#: ../Doc/library/importlib.metadata.rst:311 msgid "" -"A convenience method to resolve the distribution or distributions (in the " -"case of a namespace package) for top-level Python packages or modules::" +"Some editable installs, `do not supply top-level names `_, and thus this function is not " +"reliable with such installs." msgstr "" -"Un método conveniente para resolver la distribución o distribuciones (en el " -"caso de un paquete de espacio de nombres) para paquetes o módulos de Python " -"de nivel superior:" -#: ../Doc/library/importlib.metadata.rst:270 +#: ../Doc/library/importlib.metadata.rst:320 msgid "Distributions" msgstr "Distribuciones" -#: ../Doc/library/importlib.metadata.rst:272 +#: ../Doc/library/importlib.metadata.rst:322 +#, fuzzy msgid "" "While the above API is the most common and convenient usage, you can get all " "of that information from the ``Distribution`` class. A ``Distribution`` is " -"an abstract object that represents the metadata for a Python package. You " -"can get the ``Distribution`` instance::" +"an abstract object that represents the metadata for a Python `Distribution " +"Package `_. You can get the ``Distribution`` instance::" msgstr "" "Si bien la API de arriba es el uso más común y conveniente, se puede obtener " "toda esa información de la clase ``Distribution``. Una instancia de " @@ -380,7 +445,7 @@ msgstr "" "paquete de Python. Se puede obtener la instancia de ``Distribución`` de la " "siguiente forma:" -#: ../Doc/library/importlib.metadata.rst:280 +#: ../Doc/library/importlib.metadata.rst:331 msgid "" "Thus, an alternative way to get the version number is through the " "``Distribution`` instance::" @@ -388,7 +453,7 @@ msgstr "" "Por lo tanto, una forma alternativa de obtener el número de versión es " "mediante la instancia de ``Distribución``:" -#: ../Doc/library/importlib.metadata.rst:286 +#: ../Doc/library/importlib.metadata.rst:337 msgid "" "There are all kinds of additional metadata available on the ``Distribution`` " "instance::" @@ -396,25 +461,56 @@ msgstr "" "Hay todo tipo de metadatos disponibles adicionales en la instancia de " "``Distribution``:" -#: ../Doc/library/importlib.metadata.rst:294 +#: ../Doc/library/importlib.metadata.rst:345 +#, fuzzy msgid "" -"The full set of available metadata is not described here. See :pep:`566` " -"for additional details." +"The full set of available metadata is not described here. See the `Core " +"metadata specifications `_ for additional details." msgstr "" "El conjunto completo de metadatos disponible no está descripto aquí. " "Consultar :pep:`566` para detalles adicionales." -#: ../Doc/library/importlib.metadata.rst:299 +#: ../Doc/library/importlib.metadata.rst:350 +#, fuzzy +msgid "Distribution Discovery" +msgstr "Archivos de distribución" + +#: ../Doc/library/importlib.metadata.rst:352 +msgid "" +"By default, this package provides built-in support for discovery of metadata " +"for file system and zip file `Distribution Package `_\\s. This metadata " +"finder search defaults to ``sys.path``, but varies slightly in how it " +"interprets those values from how other import machinery does. In particular:" +msgstr "" + +#: ../Doc/library/importlib.metadata.rst:356 +#, fuzzy +msgid "" +"``importlib.metadata`` does not honor :class:`bytes` objects on ``sys.path``." +msgstr "``importlib.metadata`` ya no es provisional." + +#: ../Doc/library/importlib.metadata.rst:357 +msgid "" +"``importlib.metadata`` will incidentally honor :py:class:`pathlib.Path` " +"objects on ``sys.path`` even though such values will be ignored for imports." +msgstr "" + +#: ../Doc/library/importlib.metadata.rst:361 msgid "Extending the search algorithm" msgstr "Extendiendo el algoritmo de búsqueda" -#: ../Doc/library/importlib.metadata.rst:301 +#: ../Doc/library/importlib.metadata.rst:363 +#, fuzzy msgid "" -"Because package metadata is not available through :data:`sys.path` searches, " -"or package loaders directly, the metadata for a package is found through " -"import system :ref:`finders `. To find a distribution " -"package's metadata, ``importlib.metadata`` queries the list of :term:`meta " -"path finders ` on :data:`sys.meta_path`." +"Because `Distribution Package `_ metadata is not available through :" +"data:`sys.path` searches, or package loaders directly, the metadata for a " +"distribution is found through import system :ref:`finders `. To find a distribution package's metadata, ``importlib." +"metadata`` queries the list of :term:`meta path finders ` " +"on :data:`sys.meta_path`." msgstr "" "Debido a que los metadatos de los paquetes no están disponibles a través de " "las búsquedas en :data:`sys.path`, o en los cargadores de paquetes " @@ -424,17 +520,14 @@ msgstr "" "lista de :term:`meta path finders ` en :data:`sys." "meta_path`." -#: ../Doc/library/importlib.metadata.rst:307 +#: ../Doc/library/importlib.metadata.rst:371 msgid "" -"The default ``PathFinder`` for Python includes a hook that calls into " -"``importlib.metadata.MetadataPathFinder`` for finding distributions loaded " -"from typical file-system-based paths." +"By default ``importlib.metadata`` installs a finder for distribution " +"packages found on the file system. This finder doesn't actually find any " +"*distributions*, but it can find their metadata." msgstr "" -"El ``PathFinder`` predeterminado para Python incluye un enlace que llama a " -"``importlib.metadata.MetadataPathFinder`` para encontrar distribuciones " -"cargadas desde rutas basadas en sistemas de archivos típicos." -#: ../Doc/library/importlib.metadata.rst:311 +#: ../Doc/library/importlib.metadata.rst:376 msgid "" "The abstract class :py:class:`importlib.abc.MetaPathFinder` defines the " "interface expected of finders by Python's import system. ``importlib." @@ -450,7 +543,7 @@ msgstr "" "meta_path` y presenta esta interfaz extendida como la clase base abstracta " "``DistributionFinder``, que define este método abstracto::" -#: ../Doc/library/importlib.metadata.rst:325 +#: ../Doc/library/importlib.metadata.rst:390 msgid "" "The ``DistributionFinder.Context`` object provides ``.path`` and ``.name`` " "properties indicating the path to search and name to match and may supply " @@ -460,7 +553,7 @@ msgstr "" "``.name`` que indican la ruta de búsqueda y los nombres que deben coincidir " "y puede proporcionar otro contexto relevante." -#: ../Doc/library/importlib.metadata.rst:329 +#: ../Doc/library/importlib.metadata.rst:394 msgid "" "What this means in practice is that to support finding distribution package " "metadata in locations other than the file system, subclass ``Distribution`` " @@ -474,3 +567,26 @@ msgstr "" "abstractos. Luego, en el método ``find_distributions()`` de un buscador " "personalizado no hay más que retornar instancias de esta ``Distribution`` " "derivada." + +#~ msgid "Using :mod:`!importlib.metadata`" +#~ msgstr "Usando :mod:`!importlib.metadata`" + +#~ msgid "Package distributions" +#~ msgstr "Distribuciones de paquetes" + +#~ msgid "" +#~ "A convenience method to resolve the distribution or distributions (in the " +#~ "case of a namespace package) for top-level Python packages or modules::" +#~ msgstr "" +#~ "Un método conveniente para resolver la distribución o distribuciones (en " +#~ "el caso de un paquete de espacio de nombres) para paquetes o módulos de " +#~ "Python de nivel superior:" + +#~ msgid "" +#~ "The default ``PathFinder`` for Python includes a hook that calls into " +#~ "``importlib.metadata.MetadataPathFinder`` for finding distributions " +#~ "loaded from typical file-system-based paths." +#~ msgstr "" +#~ "El ``PathFinder`` predeterminado para Python incluye un enlace que llama " +#~ "a ``importlib.metadata.MetadataPathFinder`` para encontrar distribuciones " +#~ "cargadas desde rutas basadas en sistemas de archivos típicos." diff --git a/library/importlib.po b/library/importlib.po index e06a659405..7851b4299e 100644 --- a/library/importlib.po +++ b/library/importlib.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-25 00:29+0800\n" "Last-Translator: Rodrigo Tobar \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/importlib.rst:2 msgid ":mod:`!importlib` --- The implementation of :keyword:`!import`" @@ -296,45 +295,6 @@ msgstr "Paquetes padres son importados automáticamente." #: ../Doc/library/importlib.rst:132 msgid "" -"Find the loader for a module, optionally within the specified *path*. If the " -"module is in :attr:`sys.modules`, then ``sys.modules[name].__loader__`` is " -"returned (unless the loader would be ``None`` or is not set, in which case :" -"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 lanza 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:138 -msgid "" -"A dotted name does not have its parents implicitly imported as that requires " -"loading them and that may not be desired. To properly import a submodule you " -"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:145 -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, lanza un :exc:`ValueError`, igual " -"a si el atributo fuera ``None``." - -#: ../Doc/library/importlib.rst:149 -msgid "Use :func:`importlib.util.find_spec` instead." -msgstr "Utilice :func:`importlib.util.find_spec` en su lugar." - -#: ../Doc/library/importlib.rst:154 -msgid "" "Invalidate the internal caches of finders stored at :data:`sys.meta_path`. " "If a finder implements ``invalidate_caches()`` then it will be called to " "perform the invalidation. This function should be called if any modules are " @@ -348,7 +308,7 @@ msgstr "" "ejecutado para garantizar que todos los buscadores noten la existencia del " "nuevo módulo." -#: ../Doc/library/importlib.rst:162 +#: ../Doc/library/importlib.rst:140 msgid "" "Namespace packages created/installed in a different :data:`sys.path` " "location after the same namespace was already imported are noticed." @@ -357,7 +317,7 @@ msgstr "" "`sys.path` distinta después de que el mismo espacio de nombres fue importado " "son notados." -#: ../Doc/library/importlib.rst:168 +#: ../Doc/library/importlib.rst:146 msgid "" "Reload a previously imported *module*. The argument must be a module " "object, so it must have been successfully imported before. This is useful " @@ -373,11 +333,11 @@ msgstr "" "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:175 +#: ../Doc/library/importlib.rst:153 msgid "When :func:`reload` is executed:" msgstr "Cuando :func:`reload` es ejecutada:" -#: ../Doc/library/importlib.rst:177 +#: ../Doc/library/importlib.rst:155 msgid "" "Python module's code is recompiled and the module-level code re-executed, " "defining a new set of objects which are bound to names in the module's " @@ -391,7 +351,7 @@ msgstr "" "originalmente carga los módulos. El método ``init`` de los módulos de " "extension no es llamado de nuevo." -#: ../Doc/library/importlib.rst:183 +#: ../Doc/library/importlib.rst:161 msgid "" "As with all other objects in Python the old objects are only reclaimed after " "their reference counts drop to zero." @@ -399,7 +359,7 @@ 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:186 +#: ../Doc/library/importlib.rst:164 msgid "" "The names in the module namespace are updated to point to any new or changed " "objects." @@ -407,7 +367,7 @@ 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:189 +#: ../Doc/library/importlib.rst:167 msgid "" "Other references to the old objects (such as names external to the module) " "are not rebound to refer to the new objects and must be updated in each " @@ -418,11 +378,11 @@ msgstr "" "y deben actualizarse en cada espacio de nombres donde se produzcan si se " "desea." -#: ../Doc/library/importlib.rst:193 +#: ../Doc/library/importlib.rst:171 msgid "There are a number of other caveats:" msgstr "Hay una serie de otras advertencias:" -#: ../Doc/library/importlib.rst:195 +#: ../Doc/library/importlib.rst:173 msgid "" "When a module is reloaded, its dictionary (containing the module's global " "variables) is retained. Redefinitions of names will override the old " @@ -442,7 +402,7 @@ msgstr "" "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:209 +#: ../Doc/library/importlib.rst:187 msgid "" "It is generally not very useful to reload built-in or dynamically loaded " "modules. Reloading :mod:`sys`, :mod:`__main__`, :mod:`builtins` and other " @@ -456,7 +416,7 @@ msgstr "" "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:215 +#: ../Doc/library/importlib.rst:193 msgid "" "If a module imports objects from another module using :keyword:`from` ... :" "keyword:`import` ..., calling :func:`reload` for the other module does not " @@ -470,7 +430,7 @@ msgstr "" "a ejecutar la instrucción :keyword:`!from`, otra es usar :keyword:`!import` " "y nombres calificados (*module.name*) en su lugar." -#: ../Doc/library/importlib.rst:221 +#: ../Doc/library/importlib.rst:199 msgid "" "If a module instantiates instances of a class, reloading the module that " "defines the class does not affect the method definitions of the instances " @@ -482,7 +442,7 @@ msgstr "" "continúan usando la definición de clase anterior. Lo mismo ocurre con las " "clases derivadas." -#: ../Doc/library/importlib.rst:227 +#: ../Doc/library/importlib.rst:205 msgid "" ":exc:`ModuleNotFoundError` is raised when the module being reloaded lacks a :" "class:`~importlib.machinery.ModuleSpec`." @@ -490,17 +450,17 @@ msgstr "" ":exc:`ModuleNotFoundError` se lanza cuando el módulo que se está recargando " "carece de :class:`~importlib.machinery.ModuleSpec`." -#: ../Doc/library/importlib.rst:233 +#: ../Doc/library/importlib.rst:211 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:238 +#: ../Doc/library/importlib.rst:216 msgid "**Source code:** :source:`Lib/importlib/abc.py`" msgstr "**Código fuente:** :source:`Lib/importlib/abc.py`" -#: ../Doc/library/importlib.rst:243 +#: ../Doc/library/importlib.rst:221 msgid "" "The :mod:`importlib.abc` module contains all of the core abstract base " "classes used by :keyword:`import`. Some subclasses of the core abstract base " @@ -511,54 +471,20 @@ msgstr "" "algunas subclases de las clases base abstractas centrales para ayudar a " "implementar los ABC centrales." -#: ../Doc/library/importlib.rst:247 +#: ../Doc/library/importlib.rst:225 msgid "ABC hierarchy::" msgstr "Jerarquía ABC::" -#: ../Doc/library/importlib.rst:263 -msgid "An abstract base class representing a :term:`finder`." -msgstr "Una clase base abstracta que representa :term:`finder`." - -#: ../Doc/library/importlib.rst:265 -msgid "Use :class:`MetaPathFinder` or :class:`PathEntryFinder` instead." -msgstr "" -"Utilice :class:`MetaPathFinder` o :class:`PathEntryFinder` en su lugar." - -#: ../Doc/library/importlib.rst:270 -msgid "" -"An abstract method for finding a :term:`loader` for the specified module. " -"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:274 -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:278 -msgid "" -"Implement :meth:`MetaPathFinder.find_spec` or :meth:`PathEntryFinder." -"find_spec` instead." -msgstr "" -"Implemente :meth:`MetaPathFinder.find_spec` o :meth:`PathEntryFinder." -"find_spec` en su lugar." - -#: ../Doc/library/importlib.rst:285 +#: ../Doc/library/importlib.rst:240 msgid "An abstract base class representing a :term:`meta path finder`." msgstr "Una clase base abstracta que representa :term:`meta path finder`." -#: ../Doc/library/importlib.rst:289 ../Doc/library/importlib.rst:344 -msgid "No longer a subclass of :class:`Finder`." +#: ../Doc/library/importlib.rst:244 ../Doc/library/importlib.rst:280 +#, fuzzy +msgid "No longer a subclass of :class:`!Finder`." msgstr "Ya no hereda de :class:`Finder`." -#: ../Doc/library/importlib.rst:294 +#: ../Doc/library/importlib.rst:249 msgid "" "An abstract method for finding a :term:`spec ` for the " "specified module. If this is a top-level import, *path* will be ``None``. " @@ -579,44 +505,7 @@ msgstr "" "`importlib.util.spec_from_loader` puede ser útil para implementar " "``MetaPathFinders`` concretos." -#: ../Doc/library/importlib.rst:308 -msgid "" -"A legacy method for finding a :term:`loader` for the specified module. If " -"this is a top-level import, *path* will be ``None``. Otherwise, this is a " -"search for a subpackage or module and *path* will be the value of :attr:" -"`__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:314 -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:317 -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:322 ../Doc/library/importlib.rst:378 -#: ../Doc/library/importlib.rst:386 ../Doc/library/importlib.rst:902 -#: ../Doc/library/importlib.rst:959 -msgid "Use :meth:`find_spec` instead." -msgstr "Use :meth:`find_spec` en su lugar." - -#: ../Doc/library/importlib.rst:327 +#: ../Doc/library/importlib.rst:263 msgid "" "An optional method which, when called, should invalidate any internal cache " "used by the finder. Used by :func:`importlib.invalidate_caches` when " @@ -627,11 +516,11 @@ msgstr "" "invalidate_caches` al invalidar los cachés de todos los buscadores en :data:" "`sys.meta_path`." -#: ../Doc/library/importlib.rst:331 +#: ../Doc/library/importlib.rst:267 msgid "Returns ``None`` when called instead of ``NotImplemented``." msgstr "Retorna ``None`` cuando se llama en lugar de ``NotImplemented``." -#: ../Doc/library/importlib.rst:337 +#: ../Doc/library/importlib.rst:273 msgid "" "An abstract base class representing a :term:`path entry finder`. Though it " "bears some similarities to :class:`MetaPathFinder`, ``PathEntryFinder`` is " @@ -644,7 +533,7 @@ msgstr "" "del subsistema de importación basado en rutas proporcionado por :class:" "`importlib.machinery.PathFinder`." -#: ../Doc/library/importlib.rst:349 +#: ../Doc/library/importlib.rst:285 msgid "" "An abstract method for finding a :term:`spec ` for the " "specified module. The finder will search for the module only within the :" @@ -662,55 +551,7 @@ msgstr "" "sobre qué especificación retornar. :func:`importlib.util.spec_from_loader` " "puede ser útil para implementar ``PathEntryFinders`` concretos." -#: ../Doc/library/importlib.rst:361 -msgid "" -"A legacy method for finding a :term:`loader` for the specified module. " -"Returns a 2-tuple of ``(loader, portion)`` where ``portion`` is a sequence " -"of file system locations contributing to part of a namespace package. The " -"loader may be ``None`` while specifying ``portion`` to signify the " -"contribution of the file system locations to a namespace package. An empty " -"list can be used for ``portion`` to signify the loader is not part of a " -"namespace package. If ``loader`` is ``None`` and ``portion`` is the empty " -"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:371 -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:374 -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:383 -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:391 +#: ../Doc/library/importlib.rst:297 msgid "" "An optional method which, when called, should invalidate any internal cache " "used by the finder. Used by :meth:`importlib.machinery.PathFinder." @@ -721,7 +562,7 @@ msgstr "" "PathFinder.invalidate_caches` al invalidar las cachés de todos los " "buscadores en caché." -#: ../Doc/library/importlib.rst:399 +#: ../Doc/library/importlib.rst:305 msgid "" "An abstract base class for a :term:`loader`. See :pep:`302` for the exact " "definition for a loader." @@ -729,7 +570,7 @@ msgstr "" "Una clase base abstracta para un :term:`loader`. Consulte :pep:`302` para " "obtener la definición exacta de cargador." -#: ../Doc/library/importlib.rst:402 +#: ../Doc/library/importlib.rst:308 msgid "" "Loaders that wish to support resource reading should implement a :meth:" "`get_resource_reader` method as specified by :class:`importlib.resources.abc." @@ -739,11 +580,11 @@ msgstr "" "un método :meth:`get_resource_reader` según lo especificado por :class:" "`importlib.abc.ResourceReader`." -#: ../Doc/library/importlib.rst:406 +#: ../Doc/library/importlib.rst:312 msgid "Introduced the optional :meth:`get_resource_reader` method." msgstr "Introducido el método opcional :meth:`get_resource_reader`." -#: ../Doc/library/importlib.rst:411 +#: ../Doc/library/importlib.rst:317 msgid "" "A method that returns the module object to use when importing a module. " "This method may return ``None``, indicating that default module creation " @@ -753,11 +594,11 @@ msgstr "" "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:417 +#: ../Doc/library/importlib.rst:323 msgid "This method is no longer optional when :meth:`exec_module` is defined." msgstr "Este método ya no es opcional cuando se defina :meth:`exec_module`." -#: ../Doc/library/importlib.rst:423 +#: ../Doc/library/importlib.rst:329 msgid "" "An abstract method that executes the module in its own namespace when a " "module is imported or reloaded. The module should already be initialized " @@ -769,11 +610,11 @@ msgstr "" "inicializado cuando se llama a :meth:`exec_module`. Cuando existe este " "método, se debe definir :meth:`create_module`." -#: ../Doc/library/importlib.rst:430 +#: ../Doc/library/importlib.rst:336 msgid ":meth:`create_module` must also be defined." msgstr ":meth:`create_module` también debe definirse." -#: ../Doc/library/importlib.rst:435 +#: ../Doc/library/importlib.rst:341 msgid "" "A legacy method for loading a module. If the module cannot be loaded, :exc:" "`ImportError` is raised, otherwise the loaded module is returned." @@ -781,7 +622,8 @@ 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:439 +#: ../Doc/library/importlib.rst:345 +#, fuzzy msgid "" "If the requested module already exists in :data:`sys.modules`, that module " "should be used and reloaded. Otherwise the loader should create a new module " @@ -789,7 +631,7 @@ msgid "" "recursion from the import. If the loader inserted a module and the load " "fails, it must be removed by the loader from :data:`sys.modules`; modules " "already in :data:`sys.modules` before the loader began execution should be " -"left alone (see :func:`importlib.util.module_for_loader`)." +"left alone." 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 " @@ -800,7 +642,7 @@ msgstr "" "comenzara a ejecutarse deben dejarse en paz (ver :func:`importlib.util." "module_for_loader`)." -#: ../Doc/library/importlib.rst:448 +#: ../Doc/library/importlib.rst:354 msgid "" "The loader should set several attributes on the module (note that some of " "these attributes can change when a module is reloaded):" @@ -808,22 +650,22 @@ 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:454 +#: ../Doc/library/importlib.rst:360 msgid ":attr:`__name__`" msgstr ":attr:`__name__`" -#: ../Doc/library/importlib.rst:453 +#: ../Doc/library/importlib.rst:359 msgid "" "The module's fully qualified name. It is ``'__main__'`` for an executed " "module." msgstr "" "El nombre completo del módulo. Es ``'__main__'`` para un módulo ejecutado." -#: ../Doc/library/importlib.rst:459 +#: ../Doc/library/importlib.rst:365 msgid ":attr:`__file__`" msgstr ":attr:`__file__`" -#: ../Doc/library/importlib.rst:457 +#: ../Doc/library/importlib.rst:363 msgid "" "The location the :term:`loader` used to load the module. For example, for " "modules loaded from a .py file this is the filename. It is not set on all " @@ -834,11 +676,11 @@ msgstr "" "archivo. No está establecido para todos los módulos (por ejemplo. módulos " "integrados)." -#: ../Doc/library/importlib.rst:463 +#: ../Doc/library/importlib.rst:369 msgid ":attr:`__cached__`" msgstr ":attr:`__cached__`" -#: ../Doc/library/importlib.rst:462 +#: ../Doc/library/importlib.rst:368 msgid "" "The filename of a compiled version of the module's code. It is not set on " "all modules (e.g. built-in modules)." @@ -846,15 +688,16 @@ msgstr "" "El nombre de archivo de una versión compilada del código del módulo. No está " "establecido para todos los módulos (por ejemplo, módulos integrados)." -#: ../Doc/library/importlib.rst:471 +#: ../Doc/library/importlib.rst:377 msgid ":attr:`__path__`" msgstr ":attr:`__path__`" -#: ../Doc/library/importlib.rst:466 +#: ../Doc/library/importlib.rst:372 +#, fuzzy msgid "" "The list of locations where the package's submodules will be found. Most of " "the time this is a single directory. The import system passes this attribute " -"to ``__import__()`` and to finders in the same way as :attr:`sys.path` but " +"to ``__import__()`` and to finders in the same way as :data:`sys.path` but " "just for the package. It is not set on non-package modules so it can be used " "as an indicator that the module is a package." msgstr "" @@ -865,11 +708,11 @@ msgstr "" "módulos que no son paquetes, por lo que puede ser usado como un indicador si " "el módulo es un paquete." -#: ../Doc/library/importlib.rst:476 +#: ../Doc/library/importlib.rst:382 msgid ":attr:`__package__`" msgstr ":attr:`__package__`" -#: ../Doc/library/importlib.rst:474 +#: ../Doc/library/importlib.rst:380 msgid "" "The fully qualified name of the package the module is in (or the empty " "string for a top-level module). If the module is a package then this is the " @@ -879,15 +722,15 @@ msgstr "" "caracteres vacía para los módulos de nivel superior). Si el módulo es un " "paquete es lo mismo que :attr:`__name__`." -#: ../Doc/library/importlib.rst:479 +#: ../Doc/library/importlib.rst:385 msgid ":attr:`__loader__`" msgstr ":attr:`__loader__`" -#: ../Doc/library/importlib.rst:479 +#: ../Doc/library/importlib.rst:385 msgid "The :term:`loader` used to load the module." msgstr "El :term:`cargador ` usado para cargar el módulo." -#: ../Doc/library/importlib.rst:481 +#: ../Doc/library/importlib.rst:387 msgid "" "When :meth:`exec_module` is available then backwards-compatible " "functionality is provided." @@ -895,7 +738,7 @@ msgstr "" "Cuando :meth:`exec_module` está disponible, se proporciona una funcionalidad " "compatible con versiones anteriores." -#: ../Doc/library/importlib.rst:484 +#: ../Doc/library/importlib.rst:390 msgid "" "Raise :exc:`ImportError` when called instead of :exc:`NotImplementedError`. " "Functionality provided when :meth:`exec_module` is available." @@ -904,7 +747,7 @@ msgstr "" "`NotImplementedError`. Funcionalidad proporcionada cuando :meth:" "`exec_module` está disponible." -#: ../Doc/library/importlib.rst:489 +#: ../Doc/library/importlib.rst:395 msgid "" "The recommended API for loading a module is :meth:`exec_module` (and :meth:" "`create_module`). Loaders should implement it instead of :meth:" @@ -918,26 +761,7 @@ msgstr "" "responsabilidades de :meth:`load_module` cuando se implementa :meth:" "`exec_module`." -#: ../Doc/library/importlib.rst:498 -msgid "" -"A legacy method which when implemented calculates and returns the given " -"module's representation, as a string. The module type's default :meth:" -"`__repr__` will use the result of this method as appropriate." -msgstr "" -"Un método heredado que, cuando se implementa, calcula y retorna la " -"representación del módulo dado, como una cadena. El método :meth:`__repr__` " -"predeterminado del tipo de módulo utilizará el resultado de este método " -"según corresponda." - -#: ../Doc/library/importlib.rst:504 -msgid "Made optional instead of an abstractmethod." -msgstr "Hecho opcional en vez de un método abstracto (*abstractmethod*)" - -#: ../Doc/library/importlib.rst:507 -msgid "The import machinery now takes care of this automatically." -msgstr "La maquinaria de importación ahora se encarga de esto automáticamente." - -#: ../Doc/library/importlib.rst:513 +#: ../Doc/library/importlib.rst:405 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." @@ -946,7 +770,7 @@ msgstr "" "opcional :pep:`302` para cargar recursos arbitrarios desde el back-end de " "almacenamiento." -#: ../Doc/library/importlib.rst:517 +#: ../Doc/library/importlib.rst:409 msgid "" "This ABC is deprecated in favour of supporting resource loading through :" "class:`importlib.resources.abc.ResourceReader`." @@ -954,7 +778,7 @@ msgstr "" "Este ABC está en desuso a favor de admitir la carga de recursos a través de :" "class:`importlib.resources.abc.ResourceReader`." -#: ../Doc/library/importlib.rst:523 +#: ../Doc/library/importlib.rst:415 msgid "" "An abstract method to return the bytes for the data located at *path*. " "Loaders that have a file-like storage back-end that allows storing arbitrary " @@ -971,11 +795,11 @@ msgstr "" "construya utilizando el atributo :attr:`__file__` de un módulo o un elemento " "de un paquete :attr:`__path__`." -#: ../Doc/library/importlib.rst:531 +#: ../Doc/library/importlib.rst:423 msgid "Raises :exc:`OSError` instead of :exc:`NotImplementedError`." msgstr "Lanza :exc:`OSError` en vez de :exc:`NotImplementedError`." -#: ../Doc/library/importlib.rst:537 +#: ../Doc/library/importlib.rst:429 msgid "" "An abstract base class for a :term:`loader` which implements the optional :" "pep:`302` protocol for loaders that inspect modules." @@ -983,7 +807,7 @@ 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:542 +#: ../Doc/library/importlib.rst:434 msgid "" "Return the code object for a module, or ``None`` if the module does not have " "a code object (as would be the case, for example, for a built-in module). " @@ -994,7 +818,7 @@ msgstr "" "Lanza un :exc:`ImportError` si el cargador no puede encontrar el módulo " "solicitado." -#: ../Doc/library/importlib.rst:548 +#: ../Doc/library/importlib.rst:440 msgid "" "While the method has a default implementation, it is suggested that it be " "overridden if possible for performance." @@ -1002,12 +826,12 @@ 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:554 +#: ../Doc/library/importlib.rst:446 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:559 +#: ../Doc/library/importlib.rst:451 msgid "" "An abstract method to return the source of a module. It is returned as a " "text string using :term:`universal newlines`, translating all recognized " @@ -1022,12 +846,12 @@ msgstr "" "módulo integrado). Lanza :exc:`ImportError` si el cargador no puede " "encontrar el módulo especificado." -#: ../Doc/library/importlib.rst:565 ../Doc/library/importlib.rst:574 -#: ../Doc/library/importlib.rst:624 +#: ../Doc/library/importlib.rst:457 ../Doc/library/importlib.rst:466 +#: ../Doc/library/importlib.rst:516 msgid "Raises :exc:`ImportError` instead of :exc:`NotImplementedError`." msgstr "Lanza :exc:`ImportError` en vez de :exc:`NotImplementedError`." -#: ../Doc/library/importlib.rst:570 +#: ../Doc/library/importlib.rst:462 msgid "" "An optional method to return a true value if the module is a package, a " "false value otherwise. :exc:`ImportError` is raised if the :term:`loader` " @@ -1037,11 +861,11 @@ msgstr "" "paquete, un valor falso en caso contrario. Se lanza :exc:`ImportError` si " "el :term:`cargador ` no puede encontrar el módulo." -#: ../Doc/library/importlib.rst:579 +#: ../Doc/library/importlib.rst:471 msgid "Create a code object from Python source." msgstr "Cree un objeto de código a partir de la fuente de Python." -#: ../Doc/library/importlib.rst:581 +#: ../Doc/library/importlib.rst:473 msgid "" "The *data* argument can be whatever the :func:`compile` function supports (i." "e. string or bytes). The *path* argument should be the \"path\" to where the " @@ -1053,7 +877,7 @@ msgstr "" "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:586 +#: ../Doc/library/importlib.rst:478 msgid "" "With the subsequent code object one can execute it in a module by running " "``exec(code, module.__dict__)``." @@ -1061,23 +885,23 @@ msgstr "" "Con el objeto de código subsiguiente, uno puede ejecutarlo en un módulo " "ejecutando ``exec(code, module.__dict__)``." -#: ../Doc/library/importlib.rst:591 +#: ../Doc/library/importlib.rst:483 msgid "Made the method static." msgstr "Hace el método estático." -#: ../Doc/library/importlib.rst:596 +#: ../Doc/library/importlib.rst:488 msgid "Implementation of :meth:`Loader.exec_module`." msgstr "Implementación de :meth:`Loader.exec_module`." -#: ../Doc/library/importlib.rst:602 +#: ../Doc/library/importlib.rst:494 msgid "Implementation of :meth:`Loader.load_module`." msgstr "Implementación de :meth:`Loader.load_module`." -#: ../Doc/library/importlib.rst:604 +#: ../Doc/library/importlib.rst:496 msgid "use :meth:`exec_module` instead." msgstr "use :meth:`exec_module` en su lugar." -#: ../Doc/library/importlib.rst:610 +#: ../Doc/library/importlib.rst:502 msgid "" "An abstract base class which inherits from :class:`InspectLoader` that, when " "implemented, helps a module to be executed as a script. The ABC represents " @@ -1087,7 +911,7 @@ msgstr "" "implementa, ayuda a que un módulo se ejecute como un script. El ABC " "representa un protocolo opcional :pep:`302`." -#: ../Doc/library/importlib.rst:616 +#: ../Doc/library/importlib.rst:508 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." @@ -1095,7 +919,7 @@ 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:620 +#: ../Doc/library/importlib.rst:512 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." @@ -1104,7 +928,7 @@ msgstr "" "ruta al archivo fuente, independientemente de si se utilizó un código de " "bytes para cargar el módulo." -#: ../Doc/library/importlib.rst:630 +#: ../Doc/library/importlib.rst:522 msgid "" "An abstract base class which inherits from :class:`ResourceLoader` and :" "class:`ExecutionLoader`, providing concrete implementations of :meth:" @@ -1114,7 +938,7 @@ msgstr "" "`ExecutionLoader`, proporcionando implementaciones concretas de :meth:" "`ResourceLoader.get_data` y :meth:`ExecutionLoader.get_filename`." -#: ../Doc/library/importlib.rst:634 +#: ../Doc/library/importlib.rst:526 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." @@ -1123,31 +947,31 @@ msgstr "" "el cargador debe manejar. El argumento *path* es la ruta al archivo del " "módulo." -#: ../Doc/library/importlib.rst:641 +#: ../Doc/library/importlib.rst:533 msgid "The name of the module the loader can handle." msgstr "El nombre del módulo que puede manejar el cargador." -#: ../Doc/library/importlib.rst:645 +#: ../Doc/library/importlib.rst:537 msgid "Path to the file of the module." msgstr "Ruta al archivo del módulo." -#: ../Doc/library/importlib.rst:649 +#: ../Doc/library/importlib.rst:541 msgid "Calls super's ``load_module()``." msgstr "Llama a super's ``load_module()``." -#: ../Doc/library/importlib.rst:651 +#: ../Doc/library/importlib.rst:543 msgid "Use :meth:`Loader.exec_module` instead." msgstr "Utilice :meth:`Loader.exec_module` en su lugar." -#: ../Doc/library/importlib.rst:656 ../Doc/library/importlib.rst:1104 +#: ../Doc/library/importlib.rst:548 ../Doc/library/importlib.rst:1143 msgid "Returns :attr:`path`." msgstr "Retorna :attr:`path`." -#: ../Doc/library/importlib.rst:660 +#: ../Doc/library/importlib.rst:552 msgid "Reads *path* as a binary file and returns the bytes from it." msgstr "Lee *path* como un archivo binario y devuelve los bytes de él." -#: ../Doc/library/importlib.rst:665 +#: ../Doc/library/importlib.rst:557 msgid "" "An abstract base class for implementing source (and optionally bytecode) " "file loading. The class inherits from both :class:`ResourceLoader` and :" @@ -1157,15 +981,15 @@ msgstr "" "opcionalmente bytecode). La clase hereda tanto de :class:`ResourceLoader` " "como de :class:`ExecutionLoader`, lo que requiere la implementación de:" -#: ../Doc/library/importlib.rst:669 +#: ../Doc/library/importlib.rst:561 msgid ":meth:`ResourceLoader.get_data`" msgstr ":meth:`ResourceLoader.get_data`" -#: ../Doc/library/importlib.rst:672 +#: ../Doc/library/importlib.rst:564 msgid ":meth:`ExecutionLoader.get_filename`" msgstr ":meth:`ExecutionLoader.get_filename`" -#: ../Doc/library/importlib.rst:671 +#: ../Doc/library/importlib.rst:563 msgid "" "Should only return the path to the source file; sourceless loading is not " "supported." @@ -1173,7 +997,7 @@ msgstr "" "Solo debe devolver la ruta al archivo de origen; la carga sin fuente no es " "compatible." -#: ../Doc/library/importlib.rst:674 +#: ../Doc/library/importlib.rst:566 msgid "" "The abstract methods defined by this class are to add optional bytecode file " "support. Not implementing these optional methods (or causing them to raise :" @@ -1194,7 +1018,7 @@ msgstr "" "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:685 +#: ../Doc/library/importlib.rst:577 msgid "" "Optional abstract method which returns a :class:`dict` containing metadata " "about the specified path. Supported dictionary keys are:" @@ -1203,7 +1027,7 @@ msgstr "" "metadatos sobre la ruta especificada. Las claves de diccionario admitidas " "son:" -#: ../Doc/library/importlib.rst:688 +#: ../Doc/library/importlib.rst:580 msgid "" "``'mtime'`` (mandatory): an integer or floating-point number representing " "the modification time of the source code;" @@ -1211,11 +1035,11 @@ 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:690 +#: ../Doc/library/importlib.rst:582 msgid "``'size'`` (optional): the size in bytes of the source code." msgstr "``'size'`` (opcional): el tamaño en bytes del código fuente." -#: ../Doc/library/importlib.rst:692 +#: ../Doc/library/importlib.rst:584 msgid "" "Any other keys in the dictionary are ignored, to allow for future " "extensions. If the path cannot be handled, :exc:`OSError` is raised." @@ -1223,11 +1047,11 @@ 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:697 ../Doc/library/importlib.rst:710 +#: ../Doc/library/importlib.rst:589 ../Doc/library/importlib.rst:602 msgid "Raise :exc:`OSError` instead of :exc:`NotImplementedError`." msgstr "Lanza :exc:`OSError` en vez de :exc:`NotImplementedError`." -#: ../Doc/library/importlib.rst:702 +#: ../Doc/library/importlib.rst:594 msgid "" "Optional abstract method which returns the modification time for the " "specified path." @@ -1235,7 +1059,7 @@ msgstr "" "Método abstracto opcional que retorna la hora de modificación de la ruta " "especificada." -#: ../Doc/library/importlib.rst:705 +#: ../Doc/library/importlib.rst:597 msgid "" "This method is deprecated in favour of :meth:`path_stats`. You don't have " "to implement it, but it is still available for compatibility purposes. " @@ -1245,7 +1069,7 @@ msgstr "" "implementarlo, pero aún está disponible para fines de compatibilidad. Lanza :" "exc:`OSError` si la ruta no se puede manejar." -#: ../Doc/library/importlib.rst:715 +#: ../Doc/library/importlib.rst:607 msgid "" "Optional abstract method which writes the specified bytes to a file path. " "Any intermediate directories which do not exist are to be created " @@ -1255,39 +1079,40 @@ msgstr "" "archivo. Los directorios intermedios que no existan se crearán " "automáticamente." -#: ../Doc/library/importlib.rst:719 +#: ../Doc/library/importlib.rst:611 +#, fuzzy msgid "" -"When writing to the path fails because the path is read-only (:attr:`errno." +"When writing to the path fails because the path is read-only (:const:`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:723 +#: ../Doc/library/importlib.rst:615 msgid "No longer raises :exc:`NotImplementedError` when called." msgstr "Ya no lanza :exc:`NotImplementedError` cuando se llama." -#: ../Doc/library/importlib.rst:728 +#: ../Doc/library/importlib.rst:620 msgid "Concrete implementation of :meth:`InspectLoader.get_code`." msgstr "Implementación concreta de :meth:`InspectLoader.get_code`." -#: ../Doc/library/importlib.rst:732 +#: ../Doc/library/importlib.rst:624 msgid "Concrete implementation of :meth:`Loader.exec_module`." msgstr "Implementación concreta de :meth:`Loader.exec_module`." -#: ../Doc/library/importlib.rst:738 +#: ../Doc/library/importlib.rst:630 msgid "Concrete implementation of :meth:`Loader.load_module`." msgstr "Implementación concreta de :meth:`Loader.load_module`." -#: ../Doc/library/importlib.rst:740 +#: ../Doc/library/importlib.rst:632 msgid "Use :meth:`exec_module` instead." msgstr "Utilice :meth:`exec_module` en su lugar." -#: ../Doc/library/importlib.rst:745 +#: ../Doc/library/importlib.rst:637 msgid "Concrete implementation of :meth:`InspectLoader.get_source`." msgstr "Implementación concreta de :meth:`InspectLoader.get_source`." -#: ../Doc/library/importlib.rst:749 +#: ../Doc/library/importlib.rst:641 msgid "" "Concrete implementation of :meth:`InspectLoader.is_package`. A module is " "determined to be a package if its file path (as provided by :meth:" @@ -1301,15 +1126,191 @@ msgstr "" "elimina la extensión del archivo **y** el nombre del módulo sí lo hace no " "termina en ``__init__``." -#: ../Doc/library/importlib.rst:758 +#: ../Doc/library/importlib.rst:650 +msgid "*Superseded by TraversableResources*" +msgstr "" + +#: ../Doc/library/importlib.rst:652 +msgid "" +"An :term:`abstract base class` to provide the ability to read *resources*." +msgstr "" + +#: ../Doc/library/importlib.rst:655 +msgid "" +"From the perspective of this ABC, a *resource* is a binary artifact that is " +"shipped within a package. Typically this is something like a data file that " +"lives next to the ``__init__.py`` file of the package. The purpose of this " +"class is to help abstract out the accessing of such data files so that it " +"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 "" + +#: ../Doc/library/importlib.rst:663 +msgid "" +"For any of methods of this class, a *resource* argument is expected to be a :" +"term:`path-like object` which represents conceptually just a file name. This " +"means that no subdirectory paths should be included in the *resource* " +"argument. This is because the location of the package the reader is for, " +"acts as the \"directory\". Hence the metaphor for directories and file names " +"is packages and resources, respectively. This is also why instances of this " +"class are expected to directly correlate to a specific package (instead of " +"potentially representing multiple packages or a module)." +msgstr "" + +#: ../Doc/library/importlib.rst:674 +msgid "" +"Loaders that wish to support resource reading are expected to provide a " +"method called ``get_resource_reader(fullname)`` which returns an object " +"implementing this ABC's interface. If the module specified by fullname is " +"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 "" + +#: ../Doc/library/importlib.rst:685 ../Doc/library/importlib.rst:795 +#, fuzzy +msgid "Use :class:`importlib.resources.abc.TraversableResources` instead." +msgstr "Utilice :meth:`importlib.abc.Loader.exec_module` en su lugar." + +#: ../Doc/library/importlib.rst:688 +msgid "" +"Returns an opened, :term:`file-like object` for binary reading of the " +"*resource*." +msgstr "" + +#: ../Doc/library/importlib.rst:691 +msgid "If the resource cannot be found, :exc:`FileNotFoundError` is raised." +msgstr "" + +#: ../Doc/library/importlib.rst:696 +#, fuzzy +msgid "Returns the file system path to the *resource*." +msgstr "La ruta al archivo de origen." + +#: ../Doc/library/importlib.rst:698 +msgid "" +"If the resource does not concretely exist on the file system, raise :exc:" +"`FileNotFoundError`." +msgstr "" + +#: ../Doc/library/importlib.rst:703 +msgid "" +"Returns ``True`` if the named *name* is considered a resource. :exc:" +"`FileNotFoundError` is raised if *name* does not exist." +msgstr "" + +#: ../Doc/library/importlib.rst:708 +msgid "" +"Returns an :term:`iterable` of strings over the contents of the package. Do " +"note that it is not required that all names returned by the iterator be " +"actual resources, e.g. it is acceptable to return names for which :meth:" +"`is_resource` would be false." +msgstr "" + +#: ../Doc/library/importlib.rst:714 +msgid "" +"Allowing non-resource names to be returned is to allow for situations where " +"how a package and its resources are stored are known a priori and the non-" +"resource names would be useful. For instance, returning subdirectory names " +"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 "" + +#: ../Doc/library/importlib.rst:722 +msgid "The abstract method returns an iterable of no items." +msgstr "" + +#: ../Doc/library/importlib.rst:727 +msgid "" +"An object with a subset of :class:`pathlib.Path` methods suitable for " +"traversing directories and opening files." +msgstr "" + +#: ../Doc/library/importlib.rst:730 +msgid "" +"For a representation of the object on the file-system, use :meth:`importlib." +"resources.as_file`." +msgstr "" + +#: ../Doc/library/importlib.rst:737 +#, fuzzy +msgid "Use :class:`importlib.resources.abc.Traversable` instead." +msgstr "Utilice :meth:`importlib.abc.Loader.exec_module` en su lugar." + +#: ../Doc/library/importlib.rst:740 +msgid "Abstract. The base name of this object without any parent references." +msgstr "" + +#: ../Doc/library/importlib.rst:744 +msgid "Yield ``Traversable`` objects in ``self``." +msgstr "" + +#: ../Doc/library/importlib.rst:748 +msgid "Return ``True`` if ``self`` is a directory." +msgstr "" + +#: ../Doc/library/importlib.rst:752 +msgid "Return ``True`` if ``self`` is a file." +msgstr "" + +#: ../Doc/library/importlib.rst:756 +msgid "Return Traversable child in ``self``." +msgstr "" + +#: ../Doc/library/importlib.rst:760 +msgid "Return ``Traversable`` child in ``self``." +msgstr "" + +#: ../Doc/library/importlib.rst:764 +msgid "" +"*mode* may be 'r' or 'rb' to open as text or binary. Return a handle " +"suitable for reading (same as :attr:`pathlib.Path.open`)." +msgstr "" + +#: ../Doc/library/importlib.rst:767 +msgid "" +"When opening as text, accepts encoding parameters such as those accepted by :" +"attr:`io.TextIOWrapper`." +msgstr "" + +#: ../Doc/library/importlib.rst:772 +msgid "Read contents of ``self`` as bytes." +msgstr "" + +#: ../Doc/library/importlib.rst:776 +msgid "Read contents of ``self`` as text." +msgstr "" + +#: ../Doc/library/importlib.rst:781 +msgid "" +"An abstract base class for resource readers capable of serving the :meth:" +"`importlib.resources.files` interface. Subclasses :class:`importlib." +"resources.abc.ResourceReader` and provides concrete implementations of the :" +"class:`importlib.resources.abc.ResourceReader`'s abstract methods. " +"Therefore, any loader supplying :class:`importlib.abc.TraversableResources` " +"also supplies ResourceReader." +msgstr "" + +#: ../Doc/library/importlib.rst:788 +msgid "" +"Loaders that wish to support resource reading are expected to implement this " +"interface." +msgstr "" + +#: ../Doc/library/importlib.rst:798 +msgid "" +"Returns a :class:`importlib.resources.abc.Traversable` object for the loaded " +"package." +msgstr "" + +#: ../Doc/library/importlib.rst:804 msgid ":mod:`importlib.machinery` -- Importers and path hooks" msgstr ":mod:`importlib.machinery` -- Importadores y enlaces de ruta" -#: ../Doc/library/importlib.rst:763 +#: ../Doc/library/importlib.rst:809 msgid "**Source code:** :source:`Lib/importlib/machinery.py`" msgstr "**Código fuente:** :source:`Lib/importlib/machinery.py`" -#: ../Doc/library/importlib.rst:767 +#: ../Doc/library/importlib.rst:813 msgid "" "This module contains the various objects that help :keyword:`import` find " "and load modules." @@ -1317,7 +1318,7 @@ msgstr "" "Este módulo contiene varios objetos que ayudan :keyword:`import` buscar y " "cargar módulos." -#: ../Doc/library/importlib.rst:772 +#: ../Doc/library/importlib.rst:818 msgid "" "A list of strings representing the recognized file suffixes for source " "modules." @@ -1325,7 +1326,7 @@ msgstr "" "Una lista de cadenas de caracteres que representan los sufijos de archivo " "reconocidos para los módulos de origen." -#: ../Doc/library/importlib.rst:779 +#: ../Doc/library/importlib.rst:825 msgid "" "A list of strings representing the file suffixes for non-optimized bytecode " "modules." @@ -1333,11 +1334,11 @@ 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:784 ../Doc/library/importlib.rst:794 +#: ../Doc/library/importlib.rst:830 ../Doc/library/importlib.rst:840 msgid "Use :attr:`BYTECODE_SUFFIXES` instead." msgstr "Utilice :attr:`BYTECODE_SUFFIXES` en su lugar." -#: ../Doc/library/importlib.rst:789 +#: ../Doc/library/importlib.rst:835 msgid "" "A list of strings representing the file suffixes for optimized bytecode " "modules." @@ -1345,7 +1346,7 @@ 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:799 +#: ../Doc/library/importlib.rst:845 msgid "" "A list of strings representing the recognized file suffixes for bytecode " "modules (including the leading dot)." @@ -1353,11 +1354,11 @@ 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:804 +#: ../Doc/library/importlib.rst:850 msgid "The value is no longer dependent on ``__debug__``." msgstr "El valor ya no depende de ``__debug__``." -#: ../Doc/library/importlib.rst:809 +#: ../Doc/library/importlib.rst:855 msgid "" "A list of strings representing the recognized file suffixes for extension " "modules." @@ -1365,7 +1366,7 @@ 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:816 +#: ../Doc/library/importlib.rst:862 msgid "" "Returns a combined list of strings representing all file suffixes for " "modules recognized by the standard import machinery. This is a helper for " @@ -1380,7 +1381,7 @@ msgstr "" "a un módulo sin necesidad de detalles sobre el tipo de módulo (por ejemplo, :" "func:`inspect.getmodulename`)." -#: ../Doc/library/importlib.rst:827 +#: ../Doc/library/importlib.rst:873 msgid "" "An :term:`importer` for built-in modules. All known built-in modules are " "listed in :data:`sys.builtin_module_names`. This class implements the :class:" @@ -1391,8 +1392,8 @@ msgstr "" "implementa los ABC :class:`importlib.abc.MetaPathFinder` y :class:`importlib." "abc.InspectLoader`." -#: ../Doc/library/importlib.rst:832 ../Doc/library/importlib.rst:846 -#: ../Doc/library/importlib.rst:859 ../Doc/library/importlib.rst:874 +#: ../Doc/library/importlib.rst:878 ../Doc/library/importlib.rst:892 +#: ../Doc/library/importlib.rst:905 ../Doc/library/importlib.rst:920 msgid "" "Only class methods are defined by this class to alleviate the need for " "instantiation." @@ -1400,7 +1401,7 @@ msgstr "" "Esta clase solo define los métodos de clase para aliviar la necesidad de " "instanciación." -#: ../Doc/library/importlib.rst:835 +#: ../Doc/library/importlib.rst:881 msgid "" "As part of :pep:`489`, the builtin importer now implements :meth:`Loader." "create_module` and :meth:`Loader.exec_module`" @@ -1408,7 +1409,7 @@ msgstr "" "Como parte de :pep:`489`, el importador integrado ahora implementa :meth:" "`Loader.create_module` y :meth:`Loader.exec_module`" -#: ../Doc/library/importlib.rst:842 +#: ../Doc/library/importlib.rst:888 msgid "" "An :term:`importer` for frozen modules. This class implements the :class:" "`importlib.abc.MetaPathFinder` and :class:`importlib.abc.InspectLoader` ABCs." @@ -1416,14 +1417,14 @@ 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:849 +#: ../Doc/library/importlib.rst:895 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:856 +#: ../Doc/library/importlib.rst:902 msgid "" ":term:`Finder ` for modules declared in the Windows registry. This " "class implements the :class:`importlib.abc.MetaPathFinder` ABC." @@ -1431,7 +1432,7 @@ 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:864 +#: ../Doc/library/importlib.rst:910 msgid "" "Use :mod:`site` configuration instead. Future versions of Python may not " "enable this finder by default." @@ -1440,7 +1441,7 @@ msgstr "" "versiones futuras de Python no habiliten este buscador de forma " "predeterminada." -#: ../Doc/library/importlib.rst:871 +#: ../Doc/library/importlib.rst:917 msgid "" "A :term:`Finder ` for :data:`sys.path` and package ``__path__`` " "attributes. This class implements the :class:`importlib.abc.MetaPathFinder` " @@ -1450,7 +1451,7 @@ msgstr "" "``__path__``. Esta clase implementa el :class:`importlib.abc.MetaPathFinder` " "ABC." -#: ../Doc/library/importlib.rst:879 +#: ../Doc/library/importlib.rst:925 msgid "" "Class method that attempts to find a :term:`spec ` for the " "module specified by *fullname* on :data:`sys.path` or, if defined, on " @@ -1474,7 +1475,7 @@ msgstr "" "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:893 +#: ../Doc/library/importlib.rst:939 msgid "" "If the current working directory -- represented by an empty string -- is no " "longer valid then ``None`` is returned but no value is cached in :data:`sys." @@ -1484,11 +1485,7 @@ msgstr "" "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:900 -msgid "A legacy wrapper around :meth:`find_spec`." -msgstr "Una envoltura heredada alrededor de :meth:`find_spec`." - -#: ../Doc/library/importlib.rst:907 +#: ../Doc/library/importlib.rst:946 msgid "" "Calls :meth:`importlib.abc.PathEntryFinder.invalidate_caches` on all finders " "stored in :data:`sys.path_importer_cache` that define the method. Otherwise " @@ -1499,12 +1496,12 @@ msgstr "" "método. De lo contrario, las entradas en :data:`sys.path_importer_cache` " "establecidas en ``None`` se eliminan." -#: ../Doc/library/importlib.rst:912 +#: ../Doc/library/importlib.rst:951 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:915 +#: ../Doc/library/importlib.rst:954 msgid "" "Calls objects in :data:`sys.path_hooks` with the current working directory " "for ``''`` (i.e. the empty string)." @@ -1512,7 +1509,7 @@ 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:922 +#: ../Doc/library/importlib.rst:961 msgid "" "A concrete implementation of :class:`importlib.abc.PathEntryFinder` which " "caches results from the file system." @@ -1520,14 +1517,14 @@ msgstr "" "Una implementación concreta de :class:`importlib.abc.PathEntryFinder` que " "almacena en caché los resultados del sistema de archivos." -#: ../Doc/library/importlib.rst:925 +#: ../Doc/library/importlib.rst:964 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:928 +#: ../Doc/library/importlib.rst:967 msgid "" "The *loader_details* argument is a variable number of 2-item tuples each " "containing a loader and a sequence of file suffixes the loader recognizes. " @@ -1540,7 +1537,7 @@ msgstr "" "sean invocables que acepten dos argumentos del nombre del módulo y la ruta " "al archivo encontrado." -#: ../Doc/library/importlib.rst:933 +#: ../Doc/library/importlib.rst:972 msgid "" "The finder will cache the directory contents as necessary, making stat calls " "for each module search to verify the cache is not outdated. Because cache " @@ -1564,28 +1561,24 @@ msgstr "" "cuando cree un módulo dinámicamente, asegúrese de llamar a :func:`importlib." "invalidate_caches`." -#: ../Doc/library/importlib.rst:947 +#: ../Doc/library/importlib.rst:986 msgid "The path the finder will search in." msgstr "La ruta en la que buscará el buscador." -#: ../Doc/library/importlib.rst:951 +#: ../Doc/library/importlib.rst:990 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:957 -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:964 +#: ../Doc/library/importlib.rst:996 msgid "Clear out the internal cache." msgstr "Borrar el caché interno." -#: ../Doc/library/importlib.rst:968 +#: ../Doc/library/importlib.rst:1000 +#, fuzzy msgid "" -"A class method which returns a closure for use on :attr:`sys.path_hooks`. An " +"A class method which returns a closure for use on :data:`sys.path_hooks`. An " "instance of :class:`FileFinder` is returned by the closure using the path " "argument given to the closure directly and *loader_details* indirectly." msgstr "" @@ -1594,7 +1587,7 @@ msgstr "" "usando el argumento de ruta dado al cierre directamente y *loader_details* " "indirectamente." -#: ../Doc/library/importlib.rst:973 +#: ../Doc/library/importlib.rst:1005 msgid "" "If the argument to the closure is not an existing directory, :exc:" "`ImportError` is raised." @@ -1602,7 +1595,7 @@ msgstr "" "Si el argumento del cierre no es un directorio existente, se lanza :exc:" "`ImportError`." -#: ../Doc/library/importlib.rst:979 +#: ../Doc/library/importlib.rst:1011 msgid "" "A concrete implementation of :class:`importlib.abc.SourceLoader` by " "subclassing :class:`importlib.abc.FileLoader` and providing some concrete " @@ -1612,30 +1605,30 @@ msgstr "" "subclasificando :class:`importlib.abc.FileLoader` y proporcionando algunas " "implementaciones concretas de otros métodos." -#: ../Doc/library/importlib.rst:987 +#: ../Doc/library/importlib.rst:1019 msgid "The name of the module that this loader will handle." msgstr "El nombre del módulo que manejará este cargador." -#: ../Doc/library/importlib.rst:991 +#: ../Doc/library/importlib.rst:1023 msgid "The path to the source file." msgstr "La ruta al archivo de origen." -#: ../Doc/library/importlib.rst:995 +#: ../Doc/library/importlib.rst:1027 msgid "Return ``True`` if :attr:`path` appears to be for a package." msgstr "Devuelve ``True`` si :attr:`path` parece ser para un paquete." -#: ../Doc/library/importlib.rst:999 +#: ../Doc/library/importlib.rst:1031 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:1003 +#: ../Doc/library/importlib.rst:1035 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:1007 ../Doc/library/importlib.rst:1050 +#: ../Doc/library/importlib.rst:1039 ../Doc/library/importlib.rst:1082 msgid "" "Concrete implementation of :meth:`importlib.abc.Loader.load_module` where " "specifying the name of the module to load is optional." @@ -1643,11 +1636,11 @@ 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:1012 ../Doc/library/importlib.rst:1055 +#: ../Doc/library/importlib.rst:1044 ../Doc/library/importlib.rst:1087 msgid "Use :meth:`importlib.abc.Loader.exec_module` instead." msgstr "Utilice :meth:`importlib.abc.Loader.exec_module` en su lugar." -#: ../Doc/library/importlib.rst:1017 +#: ../Doc/library/importlib.rst:1049 msgid "" "A concrete implementation of :class:`importlib.abc.FileLoader` which can " "import bytecode files (i.e. no source code files exist)." @@ -1656,7 +1649,7 @@ msgstr "" "importar archivos de código de bytes (es decir, no existen archivos de " "código fuente)." -#: ../Doc/library/importlib.rst:1020 +#: ../Doc/library/importlib.rst:1052 msgid "" "Please note that direct use of bytecode files (and thus not source code " "files) inhibits your modules from being usable by all Python implementations " @@ -1667,32 +1660,32 @@ msgstr "" "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:1029 +#: ../Doc/library/importlib.rst:1061 msgid "The name of the module the loader will handle." msgstr "El nombre del módulo que manejará el cargador." -#: ../Doc/library/importlib.rst:1033 +#: ../Doc/library/importlib.rst:1065 msgid "The path to the bytecode file." msgstr "La ruta al archivo de código de bytes." -#: ../Doc/library/importlib.rst:1037 +#: ../Doc/library/importlib.rst:1069 msgid "Determines if the module is a package based on :attr:`path`." msgstr "Determina si el módulo es un paquete basado en :attr:`path`." -#: ../Doc/library/importlib.rst:1041 +#: ../Doc/library/importlib.rst:1073 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:1045 +#: ../Doc/library/importlib.rst:1077 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:1060 +#: ../Doc/library/importlib.rst:1092 msgid "" "A concrete implementation of :class:`importlib.abc.ExecutionLoader` for " "extension modules." @@ -1700,7 +1693,7 @@ msgstr "" "Una implementación concreta de :class:`importlib.abc.ExecutionLoader` para " "módulos de extensión." -#: ../Doc/library/importlib.rst:1063 +#: ../Doc/library/importlib.rst:1095 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." @@ -1708,15 +1701,26 @@ 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:1070 +#: ../Doc/library/importlib.rst:1098 +msgid "" +"Note that, by default, importing an extension module will fail in " +"subinterpreters if it doesn't implement multi-phase init (see :pep:`489`), " +"even if it would otherwise import successfully." +msgstr "" + +#: ../Doc/library/importlib.rst:1104 +msgid "Multi-phase init is now required for use in subinterpreters." +msgstr "" + +#: ../Doc/library/importlib.rst:1109 msgid "Name of the module the loader supports." msgstr "Nombre del módulo que admite el cargador." -#: ../Doc/library/importlib.rst:1074 +#: ../Doc/library/importlib.rst:1113 msgid "Path to the extension module." msgstr "Ruta al módulo de extensión." -#: ../Doc/library/importlib.rst:1078 +#: ../Doc/library/importlib.rst:1117 msgid "" "Creates the module object from the given specification in accordance with :" "pep:`489`." @@ -1724,11 +1728,11 @@ msgstr "" "Crea el objeto de módulo a partir de la especificación dada de acuerdo con :" "pep:`489`." -#: ../Doc/library/importlib.rst:1085 +#: ../Doc/library/importlib.rst:1124 msgid "Initializes the given module object in accordance with :pep:`489`." msgstr "Inicializa el objeto de módulo dado de acuerdo con :pep:`489`." -#: ../Doc/library/importlib.rst:1091 +#: ../Doc/library/importlib.rst:1130 msgid "" "Returns ``True`` if the file path points to a package's ``__init__`` module " "based on :attr:`EXTENSION_SUFFIXES`." @@ -1736,18 +1740,18 @@ 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:1096 +#: ../Doc/library/importlib.rst:1135 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:1100 +#: ../Doc/library/importlib.rst:1139 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:1111 +#: ../Doc/library/importlib.rst:1150 msgid "" "A concrete implementation of :class:`importlib.abc.InspectLoader` for " "namespace packages. This is an alias for a private class and is only made " @@ -1758,7 +1762,7 @@ msgstr "" "sólo se hace pública para introspeccionar el atributo ``__loader__`` en " "paquetes de espacio de nombres::" -#: ../Doc/library/importlib.rst:1129 +#: ../Doc/library/importlib.rst:1168 msgid "" "A specification for a module's import-system-related state. This is " "typically exposed as the module's :attr:`__spec__` attribute. In the " @@ -1781,11 +1785,11 @@ msgstr "" "ejecución, y esto no se reflejará automáticamente en el :attr:`__spec__." "origin` del módulo, y viceversa." -#: ../Doc/library/importlib.rst:1143 +#: ../Doc/library/importlib.rst:1182 msgid "(:attr:`__name__`)" msgstr "(:attr:`__name__`)" -#: ../Doc/library/importlib.rst:1145 +#: ../Doc/library/importlib.rst:1184 msgid "" "The module's fully qualified name. The :term:`finder` should always set this " "attribute to a non-empty string." @@ -1793,11 +1797,11 @@ msgstr "" "El nombre completo del módulo. El :term:`buscador ` debe siempre " "establecer este atributo a una cadena de caracteres no vacía." -#: ../Doc/library/importlib.rst:1150 +#: ../Doc/library/importlib.rst:1189 msgid "(:attr:`__loader__`)" msgstr "(:attr:`__loader__`)" -#: ../Doc/library/importlib.rst:1152 +#: ../Doc/library/importlib.rst:1191 msgid "" "The :term:`loader` used to load the module. The :term:`finder` should always " "set this attribute." @@ -1805,11 +1809,11 @@ msgstr "" "El :term:`Cargador ` que debe usarse para cargar el módulo. El :term:" "`Buscador ` siempre debe establecer este atributo." -#: ../Doc/library/importlib.rst:1157 +#: ../Doc/library/importlib.rst:1196 msgid "(:attr:`__file__`)" msgstr "(:attr:`__file__`)" -#: ../Doc/library/importlib.rst:1159 +#: ../Doc/library/importlib.rst:1198 msgid "" "The location the :term:`loader` should use to load the module. For example, " "for modules loaded from a .py file this is the filename. The :term:`finder` " @@ -1824,11 +1828,11 @@ msgstr "" "use. El en caso poco común de que no hay uno (como para paquetes de nombre " "de espacio), debe estar establecido en ``None``." -#: ../Doc/library/importlib.rst:1167 +#: ../Doc/library/importlib.rst:1206 msgid "(:attr:`__path__`)" msgstr "(:attr:`__path__`)" -#: ../Doc/library/importlib.rst:1169 +#: ../Doc/library/importlib.rst:1208 msgid "" "The list of locations where the package's submodules will be found. Most of " "the time this is a single directory. The :term:`finder` should set this " @@ -1844,7 +1848,7 @@ msgstr "" "en ``None`` para módulos que no son paquetes. Es establecido automáticamente " "más tarde a un objeto especial para paquetes de espacio de nombres." -#: ../Doc/library/importlib.rst:1178 +#: ../Doc/library/importlib.rst:1217 msgid "" "The :term:`finder` may set this attribute to an object containing " "additional, module-specific data to use when loading the module. Otherwise " @@ -1854,11 +1858,11 @@ msgstr "" "conteniendo datos adicionales y específicos al módulo para usar cuando se " "carga el módulo.. De lo contrario, debe establecerse en ``None``." -#: ../Doc/library/importlib.rst:1184 +#: ../Doc/library/importlib.rst:1223 msgid "(:attr:`__cached__`)" msgstr "(:attr:`__cached__`)" -#: ../Doc/library/importlib.rst:1186 +#: ../Doc/library/importlib.rst:1225 msgid "" "The filename of a compiled version of the module's code. The :term:`finder` " "should always set this attribute but it may be ``None`` for modules that do " @@ -1868,11 +1872,11 @@ msgstr "" "term:`buscador ` siempre debe establecer este atributo pero puede " "ser ``None`` para módulos que no necesitan guardar código compilado." -#: ../Doc/library/importlib.rst:1192 +#: ../Doc/library/importlib.rst:1231 msgid "(:attr:`__package__`)" msgstr "(:attr:`__package__`)" -#: ../Doc/library/importlib.rst:1194 +#: ../Doc/library/importlib.rst:1233 msgid "" "(Read-only) The fully qualified name of the package the module is in (or the " "empty string for a top-level module). If the module is a package then this " @@ -1882,13 +1886,13 @@ msgstr "" "(o la cadena de caracteres vacía para los módulos de nivel superior). Si el " "módulo es un paquete es lo mismo que :attr:`__name__`." -#: ../Doc/library/importlib.rst:1201 +#: ../Doc/library/importlib.rst:1240 msgid "``True`` if the spec's :attr:`origin` refers to a loadable location," msgstr "" "``True`` si el :attr:`origin` de la especificación se refiere a una " "ubicación cargable," -#: ../Doc/library/importlib.rst:1201 +#: ../Doc/library/importlib.rst:1240 msgid "" "``False`` otherwise. This value impacts how :attr:`origin` is interpreted " "and how the module's :attr:`__file__` is populated." @@ -1896,15 +1900,15 @@ msgstr "" "``False`` en caso contrario. Este valor impacta en cómo :attr:`origin` es " "interpretado y cómo el atributo :attr:`__file__` del módulo es poblado." -#: ../Doc/library/importlib.rst:1206 +#: ../Doc/library/importlib.rst:1245 msgid ":mod:`importlib.util` -- Utility code for importers" msgstr ":mod:`importlib.util` -- Código de utilidad para importadores" -#: ../Doc/library/importlib.rst:1212 +#: ../Doc/library/importlib.rst:1251 msgid "**Source code:** :source:`Lib/importlib/util.py`" msgstr "**Código fuente:** :source:`Lib/importlib/util.py`" -#: ../Doc/library/importlib.rst:1216 +#: ../Doc/library/importlib.rst:1255 msgid "" "This module contains the various objects that help in the construction of " "an :term:`importer`." @@ -1912,7 +1916,7 @@ msgstr "" "Este módulo contiene los diversos objetos que ayudan en la construcción de " "un :term:`importer`." -#: ../Doc/library/importlib.rst:1221 +#: ../Doc/library/importlib.rst:1260 msgid "" "The bytes which represent the bytecode version number. If you need help with " "loading/writing bytecode then consider :class:`importlib.abc.SourceLoader`." @@ -1921,7 +1925,7 @@ msgstr "" "necesita ayuda para cargar/escribir código de bytes, considere :class:" "`importlib.abc.SourceLoader`." -#: ../Doc/library/importlib.rst:1228 +#: ../Doc/library/importlib.rst:1267 msgid "" "Return the :pep:`3147`/:pep:`488` path to the byte-compiled file associated " "with the source *path*. For example, if *path* is ``/foo/bar/baz.py`` the " @@ -1937,7 +1941,7 @@ msgstr "" "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:1235 +#: ../Doc/library/importlib.rst:1274 msgid "" "The *optimization* parameter is used to specify the optimization level of " "the bytecode file. An empty string represents no optimization, so ``/foo/bar/" @@ -1961,7 +1965,7 @@ msgstr "" "caracteres *optimization* solo puede ser alfanumérica, de lo contrario se " "lanza :exc:`ValueError`." -#: ../Doc/library/importlib.rst:1245 +#: ../Doc/library/importlib.rst:1284 msgid "" "The *debug_override* parameter is deprecated and can be used to override the " "system's value for ``__debug__``. A ``True`` value is the equivalent of " @@ -1976,7 +1980,7 @@ msgstr "" "*debug_override* como *optimization* no es ``None``, entonces se lanza :exc:" "`TypeError`." -#: ../Doc/library/importlib.rst:1253 +#: ../Doc/library/importlib.rst:1292 msgid "" "The *optimization* parameter was added and the *debug_override* parameter " "was deprecated." @@ -1984,12 +1988,12 @@ msgstr "" "Se agregó el parámetro *optimization* y el parámetro *debug_override* quedó " "obsoleto." -#: ../Doc/library/importlib.rst:1257 ../Doc/library/importlib.rst:1273 -#: ../Doc/library/importlib.rst:1423 +#: ../Doc/library/importlib.rst:1296 ../Doc/library/importlib.rst:1312 +#: ../Doc/library/importlib.rst:1401 msgid "Accepts a :term:`path-like object`." msgstr "Acepta un :term:`path-like object`." -#: ../Doc/library/importlib.rst:1263 +#: ../Doc/library/importlib.rst:1302 msgid "" "Given the *path* to a :pep:`3147` file name, return the associated source " "code file path. For example, if *path* is ``/foo/bar/__pycache__/baz." @@ -2006,7 +2010,7 @@ msgstr "" "implementation.cache_tag` no está definido, se lanza :exc:" "`NotImplementedError`." -#: ../Doc/library/importlib.rst:1278 +#: ../Doc/library/importlib.rst:1317 msgid "" "Decode the given bytes representing source code and return it as a string " "with universal newlines (as required by :meth:`importlib.abc.InspectLoader." @@ -2016,11 +2020,11 @@ msgstr "" "como una cadena de caracteres con nuevas líneas universales (como lo " "requiere :meth:`importlib.abc.InspectLoader.get_source`)." -#: ../Doc/library/importlib.rst:1286 +#: ../Doc/library/importlib.rst:1325 msgid "Resolve a relative module name to an absolute one." msgstr "Resuelve un nombre de módulo relativo a uno absoluto." -#: ../Doc/library/importlib.rst:1288 +#: ../Doc/library/importlib.rst:1327 msgid "" "If **name** has no leading dots, then **name** is simply returned. This " "allows for usage such as ``importlib.util.resolve_name('sys', __spec__." @@ -2031,7 +2035,7 @@ msgstr "" "__spec__.parent)`` sin hacer una verificación para ver si se necesita el " "argumento **package**." -#: ../Doc/library/importlib.rst:1293 +#: ../Doc/library/importlib.rst:1332 msgid "" ":exc:`ImportError` is raised if **name** is a relative module name but " "**package** is a false value (e.g. ``None`` or the empty string). :exc:" @@ -2044,7 +2048,7 @@ msgstr "" "escaparía del paquete que lo contiene (por ejemplo, solicitando ``..bacon`` " "desde el paquete ``spam``)." -#: ../Doc/library/importlib.rst:1301 +#: ../Doc/library/importlib.rst:1340 msgid "" "To improve consistency with import statements, raise :exc:`ImportError` " "instead of :exc:`ValueError` for invalid relative import attempts." @@ -2053,13 +2057,14 @@ msgstr "" "exc:`ImportError` en lugar de :exc:`ValueError` para intentos de importación " "relativa no válidos." -#: ../Doc/library/importlib.rst:1308 +#: ../Doc/library/importlib.rst:1347 +#, fuzzy msgid "" "Find the :term:`spec ` for a module, optionally relative to the " -"specified **package** name. If the module is in :attr:`sys.modules`, then " +"specified **package** name. If the module is in :data:`sys.modules`, then " "``sys.modules[name].__spec__`` is returned (unless the spec would be " "``None`` or is not set, in which case :exc:`ValueError` is raised). " -"Otherwise a search using :attr:`sys.meta_path` is done. ``None`` is returned " +"Otherwise a search using :data:`sys.meta_path` is done. ``None`` is returned " "if no spec is found." msgstr "" "Busca el :term:`spec ` para un módulo, opcionalmente relativo " @@ -2070,7 +2075,7 @@ msgstr "" "`sys.meta_path`. Se retorna ``None`` si no se encuentra ninguna " "especificación." -#: ../Doc/library/importlib.rst:1315 +#: ../Doc/library/importlib.rst:1354 msgid "" "If **name** is for a submodule (contains a dot), the parent module is " "automatically imported." @@ -2078,11 +2083,11 @@ msgstr "" "Si **name** es para un submódulo (contiene un punto), el módulo principal se " "importa automáticamente." -#: ../Doc/library/importlib.rst:1318 +#: ../Doc/library/importlib.rst:1357 msgid "**name** and **package** work the same as for :func:`import_module`." msgstr "**name** y **package** funcionan igual que para :func:`import_module`." -#: ../Doc/library/importlib.rst:1322 +#: ../Doc/library/importlib.rst:1361 msgid "" "Raises :exc:`ModuleNotFoundError` instead of :exc:`AttributeError` if " "**package** is in fact not a package (i.e. lacks a :attr:`__path__` " @@ -2092,7 +2097,7 @@ msgstr "" "**package** no es de hecho un paquete (es decir, carece de un atributo :attr:" "`__path__`)." -#: ../Doc/library/importlib.rst:1329 +#: ../Doc/library/importlib.rst:1368 msgid "" "Create a new module based on **spec** and :meth:`spec.loader.create_module " "`." @@ -2100,7 +2105,7 @@ msgstr "" "Cree un nuevo módulo basado en **spec** y :meth:`spec.loader.create_module " "`." -#: ../Doc/library/importlib.rst:1332 +#: ../Doc/library/importlib.rst:1371 msgid "" "If :meth:`spec.loader.create_module ` " "does not return ``None``, then any pre-existing attributes will not be " @@ -2112,7 +2117,7 @@ msgstr "" "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:1337 +#: ../Doc/library/importlib.rst:1376 msgid "" "This function is preferred over using :class:`types.ModuleType` to create a " "new module as **spec** is used to set as many import-controlled attributes " @@ -2122,113 +2127,7 @@ msgstr "" "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:1345 -msgid "" -"A :term:`decorator` for :meth:`importlib.abc.Loader.load_module` to handle " -"selecting the proper module object to load with. The decorated method is " -"expected to have a call signature taking two positional arguments (e.g. " -"``load_module(self, module)``) for which the second argument will be the " -"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:1354 -msgid "" -"The decorated method will take in the **name** of the module to be loaded as " -"expected for a :term:`loader`. If the module is not found in :data:`sys." -"modules` then a new one is constructed. Regardless of where the module came " -"from, :attr:`__loader__` set to **self** and :attr:`__package__` is set " -"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:1362 -msgid "" -"If an exception is raised by the decorated method and a module was added to :" -"data:`sys.modules`, then the module will be removed to prevent a partially " -"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:1367 -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:1371 -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:1375 -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:1381 -msgid "" -"A :term:`decorator` for :meth:`importlib.abc.Loader.load_module` to set the :" -"attr:`__loader__` attribute on the returned module. If the attribute is " -"already set the decorator does nothing. It is assumed that the first " -"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:1388 -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:1392 ../Doc/library/importlib.rst:1401 -msgid "The import machinery takes care of this automatically." -msgstr "La maquinaria de importación se encarga de esto automáticamente." - -#: ../Doc/library/importlib.rst:1397 -msgid "" -"A :term:`decorator` for :meth:`importlib.abc.Loader.load_module` to set the :" -"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:1406 +#: ../Doc/library/importlib.rst:1384 msgid "" "A factory function for creating a :class:`~importlib.machinery.ModuleSpec` " "instance based on a loader. The parameters have the same meaning as they do " @@ -2242,7 +2141,7 @@ msgstr "" "term:`loader`, tal como :meth:`InspectLoader.is_package`, para completar " "cualquier información que falte en la especificación." -#: ../Doc/library/importlib.rst:1416 +#: ../Doc/library/importlib.rst:1394 msgid "" "A factory function for creating a :class:`~importlib.machinery.ModuleSpec` " "instance based on the path to a file. Missing information will be filled in " @@ -2254,7 +2153,7 @@ msgstr "" "falte se completará en la especificación mediante el uso de las API de " "loader y la implicación de que el módulo estará basado en archivos." -#: ../Doc/library/importlib.rst:1428 +#: ../Doc/library/importlib.rst:1406 msgid "" "Return the hash of *source_bytes* as bytes. A hash-based ``.pyc`` file " "embeds the :func:`source_hash` of the corresponding source file's contents " @@ -2264,7 +2163,36 @@ msgstr "" "hash incrusta :func:`source_hash` del contenido del archivo fuente " "correspondiente en su encabezado." -#: ../Doc/library/importlib.rst:1436 +#: ../Doc/library/importlib.rst:1414 +msgid "" +"A context manager that can temporarily skip the compatibility check for " +"extension modules. By default the check is enabled and will fail when a " +"single-phase init module is imported in a subinterpreter. It will also fail " +"for a multi-phase init module that doesn't explicitly support a per-" +"interpreter GIL, when imported in an interpreter with its own GIL." +msgstr "" + +#: ../Doc/library/importlib.rst:1421 +msgid "" +"Note that this function is meant to accommodate an unusual case; one which " +"is likely to eventually go away. There's is a pretty good chance this is " +"not what you were looking for." +msgstr "" + +#: ../Doc/library/importlib.rst:1425 +msgid "" +"You can get the same effect as this function by implementing the basic " +"interface of multi-phase init (:pep:`489`) and lying about support for " +"multiple interpreters (or per-interpreter GIL)." +msgstr "" + +#: ../Doc/library/importlib.rst:1430 +msgid "" +"Using this function to disable the check can lead to unexpected behavior and " +"even crashes. It should only be used during extension module development." +msgstr "" + +#: ../Doc/library/importlib.rst:1438 msgid "" "A class which postpones the execution of the loader of a module until the " "module has an attribute accessed." @@ -2272,14 +2200,15 @@ 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:1439 +#: ../Doc/library/importlib.rst:1441 +#, fuzzy msgid "" "This class **only** works with loaders that define :meth:`~importlib.abc." "Loader.exec_module` as control over what module type is used for the module " "is required. For those same reasons, the loader's :meth:`~importlib.abc." "Loader.create_module` method must return ``None`` or a type for which its " "``__class__`` attribute can be mutated along with not using :term:`slots " -"<__slots__>`. Finally, modules which substitute the object placed into :attr:" +"<__slots__>`. Finally, modules which substitute the object placed into :data:" "`sys.modules` will not work as there is no way to properly replace the " "module references throughout the interpreter safely; :exc:`ValueError` is " "raised if such a substitution is detected." @@ -2294,7 +2223,7 @@ msgstr "" "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:1450 +#: ../Doc/library/importlib.rst:1452 msgid "" "For projects where startup time is critical, this class allows for " "potentially minimizing the cost of loading a module if it is never used. For " @@ -2309,7 +2238,7 @@ msgstr "" "creados durante la carga se posponen y, por lo tanto, ocurren fuera de " "contexto." -#: ../Doc/library/importlib.rst:1458 +#: ../Doc/library/importlib.rst:1460 msgid "" "Began calling :meth:`~importlib.abc.Loader.create_module`, removing the " "compatibility warning for :class:`importlib.machinery.BuiltinImporter` and :" @@ -2319,9 +2248,10 @@ msgstr "" "advertencia de compatibilidad para :class:`importlib.machinery." "BuiltinImporter` y :class:`importlib.machinery.ExtensionFileLoader`." -#: ../Doc/library/importlib.rst:1465 +#: ../Doc/library/importlib.rst:1467 +#, fuzzy msgid "" -"A static method which returns a callable that creates a lazy loader. This is " +"A class method which returns a callable that creates a lazy loader. This is " "meant to be used in situations where the loader is passed by class instead " "of by instance. ::" msgstr "" @@ -2329,26 +2259,26 @@ msgstr "" "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:1478 +#: ../Doc/library/importlib.rst:1480 msgid "Examples" msgstr "Ejemplos" -#: ../Doc/library/importlib.rst:1481 +#: ../Doc/library/importlib.rst:1483 msgid "Importing programmatically" msgstr "Importar programáticamente" -#: ../Doc/library/importlib.rst:1483 +#: ../Doc/library/importlib.rst:1485 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:1492 +#: ../Doc/library/importlib.rst:1494 msgid "Checking if a module can be imported" msgstr "Comprobando si se puede importar un módulo" -#: ../Doc/library/importlib.rst:1494 +#: ../Doc/library/importlib.rst:1496 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`." @@ -2356,7 +2286,7 @@ 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:1497 +#: ../Doc/library/importlib.rst:1499 msgid "" "Note that if ``name`` is a submodule (contains a dot), :func:`importlib.util." "find_spec` will import the parent module. ::" @@ -2364,37 +2294,38 @@ msgstr "" "Note que si ``name`` es un sub-módulo (contiene sólo un punto), :func:" "`importlib.util.find_spec` importará el módulo padre. ::" -#: ../Doc/library/importlib.rst:1520 +#: ../Doc/library/importlib.rst:1522 msgid "Importing a source file directly" msgstr "Importar un archivo fuente directamente" -#: ../Doc/library/importlib.rst:1522 +#: ../Doc/library/importlib.rst:1524 msgid "To import a Python source file directly, use the following recipe::" msgstr "" "Para importar un archivo fuente de Python directamente, use la siguiente " "receta::" -#: ../Doc/library/importlib.rst:1539 +#: ../Doc/library/importlib.rst:1541 msgid "Implementing lazy imports" msgstr "Implementar importaciones diferidas" -#: ../Doc/library/importlib.rst:1541 +#: ../Doc/library/importlib.rst:1543 msgid "The example below shows how to implement lazy imports::" msgstr "El ejemplo de abajo muestra cómo implementar importaciones diferidas::" -#: ../Doc/library/importlib.rst:1563 +#: ../Doc/library/importlib.rst:1565 msgid "Setting up an importer" msgstr "Configurar un importador" -#: ../Doc/library/importlib.rst:1565 +#: ../Doc/library/importlib.rst:1567 +#, fuzzy msgid "" "For deep customizations of import, you typically want to implement an :term:" "`importer`. This means managing both the :term:`finder` and :term:`loader` " "side of things. For finders there are two flavours to choose from depending " "on your needs: a :term:`meta path finder` or a :term:`path entry finder`. " -"The former is what you would put on :attr:`sys.meta_path` while the latter " -"is what you create using a :term:`path entry hook` on :attr:`sys.path_hooks` " -"which works with :attr:`sys.path` entries to potentially create a finder. " +"The former is what you would put on :data:`sys.meta_path` while the latter " +"is what you create using a :term:`path entry hook` on :data:`sys.path_hooks` " +"which works with :data:`sys.path` entries to potentially create a finder. " "This example will show you how to register your own importers so that import " "will use them (for creating an importer for yourself, read the documentation " "for the appropriate classes defined within this package)::" @@ -2411,11 +2342,11 @@ msgstr "" "crear un importador para usted, lea la documentación de las clases " "apropiadas definidas dentro de este paquete):" -#: ../Doc/library/importlib.rst:1597 +#: ../Doc/library/importlib.rst:1599 msgid "Approximating :func:`importlib.import_module`" msgstr "Aproximando :func:`importlib.import_module`" -#: ../Doc/library/importlib.rst:1599 +#: ../Doc/library/importlib.rst:1601 msgid "" "Import itself is implemented in Python code, making it possible to expose " "most of the import machinery through importlib. The following helps " @@ -2427,3 +2358,278 @@ msgstr "" "importlib. Lo siguiente ayuda a ilustrar las diversas API que importlib " "expone al proporcionar una implementación aproximada de :func:`importlib." "import_module`::" + +#: ../Doc/library/importlib.rst:443 +msgid "universal newlines" +msgstr "" + +#: ../Doc/library/importlib.rst:443 +msgid "importlib.abc.InspectLoader.get_source method" +msgstr "" + +#~ msgid "" +#~ "Find the loader for a module, optionally within the specified *path*. If " +#~ "the module is in :attr:`sys.modules`, then ``sys.modules[name]." +#~ "__loader__`` is returned (unless the loader would be ``None`` or is not " +#~ "set, in which case :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 lanza 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." + +#~ msgid "" +#~ "A dotted name does not have its parents implicitly imported as that " +#~ "requires loading them and that may not be desired. To properly import a " +#~ "submodule you 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*." + +#~ 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, lanza un :exc:`ValueError`, " +#~ "igual a si el atributo fuera ``None``." + +#~ msgid "Use :func:`importlib.util.find_spec` instead." +#~ msgstr "Utilice :func:`importlib.util.find_spec` en su lugar." + +#~ msgid "An abstract base class representing a :term:`finder`." +#~ msgstr "Una clase base abstracta que representa :term:`finder`." + +#~ msgid "Use :class:`MetaPathFinder` or :class:`PathEntryFinder` instead." +#~ msgstr "" +#~ "Utilice :class:`MetaPathFinder` o :class:`PathEntryFinder` en su lugar." + +#~ msgid "" +#~ "An abstract method for finding a :term:`loader` for the specified " +#~ "module. 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." + +#~ msgid "" +#~ "Returns ``None`` when called instead of raising :exc:" +#~ "`NotImplementedError`." +#~ msgstr "" +#~ "Retorna ``None`` cuando se llama en lugar de generar :exc:" +#~ "`NotImplementedError`." + +#~ msgid "" +#~ "Implement :meth:`MetaPathFinder.find_spec` or :meth:`PathEntryFinder." +#~ "find_spec` instead." +#~ msgstr "" +#~ "Implemente :meth:`MetaPathFinder.find_spec` o :meth:`PathEntryFinder." +#~ "find_spec` en su lugar." + +#~ msgid "" +#~ "A legacy method for finding a :term:`loader` for the specified module. " +#~ "If this is a top-level import, *path* will be ``None``. Otherwise, this " +#~ "is a search for a subpackage or module and *path* will be the value of :" +#~ "attr:`__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``." + +#~ 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." + +#~ 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." + +#~ msgid "Use :meth:`find_spec` instead." +#~ msgstr "Use :meth:`find_spec` en su lugar." + +#~ msgid "" +#~ "A legacy method for finding a :term:`loader` for the specified module. " +#~ "Returns a 2-tuple of ``(loader, portion)`` where ``portion`` is a " +#~ "sequence of file system locations contributing to part of a namespace " +#~ "package. The loader may be ``None`` while specifying ``portion`` to " +#~ "signify the contribution of the file system locations to a namespace " +#~ "package. An empty list can be used for ``portion`` to signify the loader " +#~ "is not part of a namespace package. If ``loader`` is ``None`` and " +#~ "``portion`` is the empty 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)." + +#~ 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." + +#~ 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." + +#~ 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]``." + +#~ msgid "" +#~ "A legacy method which when implemented calculates and returns the given " +#~ "module's representation, as a string. The module type's default :meth:" +#~ "`__repr__` will use the result of this method as appropriate." +#~ msgstr "" +#~ "Un método heredado que, cuando se implementa, calcula y retorna la " +#~ "representación del módulo dado, como una cadena. El método :meth:" +#~ "`__repr__` predeterminado del tipo de módulo utilizará el resultado de " +#~ "este método según corresponda." + +#~ msgid "Made optional instead of an abstractmethod." +#~ msgstr "Hecho opcional en vez de un método abstracto (*abstractmethod*)" + +#~ msgid "The import machinery now takes care of this automatically." +#~ msgstr "" +#~ "La maquinaria de importación ahora se encarga de esto automáticamente." + +#~ msgid "A legacy wrapper around :meth:`find_spec`." +#~ msgstr "Una envoltura heredada alrededor de :meth:`find_spec`." + +#~ msgid "Attempt to find the loader to handle *fullname* within :attr:`path`." +#~ msgstr "" +#~ "Intente encontrar el cargador para manejar *fullname* dentro de :attr:" +#~ "`path`." + +#~ msgid "" +#~ "A :term:`decorator` for :meth:`importlib.abc.Loader.load_module` to " +#~ "handle selecting the proper module object to load with. The decorated " +#~ "method is expected to have a call signature taking two positional " +#~ "arguments (e.g. ``load_module(self, module)``) for which the second " +#~ "argument will be the 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." + +#~ msgid "" +#~ "The decorated method will take in the **name** of the module to be loaded " +#~ "as expected for a :term:`loader`. If the module is not found in :data:" +#~ "`sys.modules` then a new one is constructed. Regardless of where the " +#~ "module came from, :attr:`__loader__` set to **self** and :attr:" +#~ "`__package__` is set 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." + +#~ msgid "" +#~ "If an exception is raised by the decorated method and a module was added " +#~ "to :data:`sys.modules`, then the module will be removed to prevent a " +#~ "partially 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." + +#~ msgid "" +#~ ":attr:`__loader__` and :attr:`__package__` are automatically set (when " +#~ "possible)." +#~ msgstr "" +#~ ":attr:`__loader__` y :attr:`__package__` se configuran automáticamente " +#~ "(cuando es posible)." + +#~ 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." + +#~ 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." + +#~ msgid "" +#~ "A :term:`decorator` for :meth:`importlib.abc.Loader.load_module` to set " +#~ "the :attr:`__loader__` attribute on the returned module. If the attribute " +#~ "is already set the decorator does nothing. It is assumed that the first " +#~ "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__`." + +#~ 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." + +#~ msgid "The import machinery takes care of this automatically." +#~ msgstr "La maquinaria de importación se encarga de esto automáticamente." + +#~ msgid "" +#~ "A :term:`decorator` for :meth:`importlib.abc.Loader.load_module` to set " +#~ "the :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á." diff --git a/library/importlib.resources.abc.po b/library/importlib.resources.abc.po index 2d16f2a5e3..2c2b2f13d1 100644 --- a/library/importlib.resources.abc.po +++ b/library/importlib.resources.abc.po @@ -9,14 +9,14 @@ msgid "" msgstr "" "Project-Id-Version: Python en Español 3.11\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/importlib.resources.abc.rst:2 msgid ":mod:`importlib.resources.abc` -- Abstract base classes for resources" @@ -91,7 +91,14 @@ msgstr "" "`None`. Un objeto compatible con este ABC solo debe retornarse cuando el " "módulo especificado es un paquete." -#: ../Doc/library/importlib.resources.abc.rst:50 +#: ../Doc/library/importlib.resources.abc.rst:48 +#, fuzzy +msgid "Use :class:`importlib.resources.abc.TraversableResources` instead." +msgstr "" +"Retorna un objeto :class:`importlib.resources.abc.Traversable` para el " +"paquete cargado." + +#: ../Doc/library/importlib.resources.abc.rst:51 msgid "" "Returns an opened, :term:`file-like object` for binary reading of the " "*resource*." @@ -99,16 +106,16 @@ msgstr "" "Retorna un :term:`file-like object` abierto para la lectura binaria del " "*resource*." -#: ../Doc/library/importlib.resources.abc.rst:53 +#: ../Doc/library/importlib.resources.abc.rst:54 msgid "If the resource cannot be found, :exc:`FileNotFoundError` is raised." msgstr "" "Si no se puede encontrar el recurso, se genera :exc:`FileNotFoundError`." -#: ../Doc/library/importlib.resources.abc.rst:58 +#: ../Doc/library/importlib.resources.abc.rst:59 msgid "Returns the file system path to the *resource*." msgstr "Retorna la ruta del sistema de archivos al *resource*." -#: ../Doc/library/importlib.resources.abc.rst:60 +#: ../Doc/library/importlib.resources.abc.rst:61 msgid "" "If the resource does not concretely exist on the file system, raise :exc:" "`FileNotFoundError`." @@ -116,7 +123,7 @@ msgstr "" "Si el recurso no existe concretamente en el sistema de archivos, lanza :exc:" "`FileNotFoundError`." -#: ../Doc/library/importlib.resources.abc.rst:65 +#: ../Doc/library/importlib.resources.abc.rst:66 msgid "" "Returns ``True`` if the named *name* is considered a resource. :exc:" "`FileNotFoundError` is raised if *name* does not exist." @@ -124,7 +131,7 @@ msgstr "" "Retorna ``True`` si el *name* con nombre se considera un recurso. :exc:" "`FileNotFoundError` se genera si *name* no existe." -#: ../Doc/library/importlib.resources.abc.rst:70 +#: ../Doc/library/importlib.resources.abc.rst:71 msgid "" "Returns an :term:`iterable` of strings over the contents of the package. Do " "note that it is not required that all names returned by the iterator be " @@ -136,7 +143,7 @@ msgstr "" "sean recursos reales, p. es aceptable devolver nombres para los que :meth:" "`is_resource` sería falso." -#: ../Doc/library/importlib.resources.abc.rst:76 +#: ../Doc/library/importlib.resources.abc.rst:77 msgid "" "Allowing non-resource names to be returned is to allow for situations where " "how a package and its resources are stored are known a priori and the non-" @@ -151,41 +158,48 @@ msgstr "" "paquete y los recursos están almacenados en el sistema de archivos, esos " "nombres de subdirectorios se puedan usar directamente." -#: ../Doc/library/importlib.resources.abc.rst:84 +#: ../Doc/library/importlib.resources.abc.rst:85 msgid "The abstract method returns an iterable of no items." msgstr "El método abstracto retorna un iterable sin elementos." -#: ../Doc/library/importlib.resources.abc.rst:89 +#: ../Doc/library/importlib.resources.abc.rst:90 +#, fuzzy msgid "" -"An object with a subset of pathlib.Path methods suitable for traversing " -"directories and opening files." +"An object with a subset of :class:`pathlib.Path` methods suitable for " +"traversing directories and opening files." msgstr "" "Un objeto con un subconjunto de métodos pathlib.Path adecuados para " "atravesar directorios y abrir archivos." -#: ../Doc/library/importlib.resources.abc.rst:96 +#: ../Doc/library/importlib.resources.abc.rst:93 +msgid "" +"For a representation of the object on the file-system, use :meth:`importlib." +"resources.as_file`." +msgstr "" + +#: ../Doc/library/importlib.resources.abc.rst:98 msgid "Abstract. The base name of this object without any parent references." msgstr "" "Resumen. El nombre base de este objeto sin ninguna referencia principal." -#: ../Doc/library/importlib.resources.abc.rst:100 +#: ../Doc/library/importlib.resources.abc.rst:102 msgid "Yield Traversable objects in self." msgstr "Produce generador iterador de objetos Traversable en self." -#: ../Doc/library/importlib.resources.abc.rst:104 +#: ../Doc/library/importlib.resources.abc.rst:106 msgid "Return True if self is a directory." msgstr "Retorna True si self es un directorio." -#: ../Doc/library/importlib.resources.abc.rst:108 +#: ../Doc/library/importlib.resources.abc.rst:110 msgid "Return True if self is a file." msgstr "Retorna True si self es un archivo." -#: ../Doc/library/importlib.resources.abc.rst:112 -#: ../Doc/library/importlib.resources.abc.rst:116 +#: ../Doc/library/importlib.resources.abc.rst:114 +#: ../Doc/library/importlib.resources.abc.rst:118 msgid "Return Traversable child in self." msgstr "Regresar Traversable child en self." -#: ../Doc/library/importlib.resources.abc.rst:120 +#: ../Doc/library/importlib.resources.abc.rst:122 msgid "" "*mode* may be 'r' or 'rb' to open as text or binary. Return a handle " "suitable for reading (same as :attr:`pathlib.Path.open`)." @@ -193,30 +207,31 @@ msgstr "" "*mode* puede ser 'r' o 'rb' para abrir como texto o binario. Retorna un " "identificador adecuado para la lectura (igual que :attr:`pathlib.Path.open`)." -#: ../Doc/library/importlib.resources.abc.rst:123 +#: ../Doc/library/importlib.resources.abc.rst:125 +#, fuzzy msgid "" "When opening as text, accepts encoding parameters such as those accepted by :" -"attr:`io.TextIOWrapper`." +"class:`io.TextIOWrapper`." msgstr "" "Al abrirse como texto, acepta parámetros de codificación como los aceptados " "por :attr:`io.TextIOWrapper`." -#: ../Doc/library/importlib.resources.abc.rst:128 +#: ../Doc/library/importlib.resources.abc.rst:130 msgid "Read contents of self as bytes." msgstr "Lee el contenido de self como bytes." -#: ../Doc/library/importlib.resources.abc.rst:132 +#: ../Doc/library/importlib.resources.abc.rst:134 msgid "Read contents of self as text." msgstr "Lee el contenido de self como texto." -#: ../Doc/library/importlib.resources.abc.rst:137 +#: ../Doc/library/importlib.resources.abc.rst:139 +#, fuzzy msgid "" "An abstract base class for resource readers capable of serving the :meth:" -"`importlib.resources.files` interface. Subclasses :class:`importlib." -"resources.abc.ResourceReader` and provides concrete implementations of the :" -"class:`importlib.resources.abc.ResourceReader`'s abstract methods. " -"Therefore, any loader supplying :class:`importlib.abc.TraversableReader` " -"also supplies ResourceReader." +"`importlib.resources.files` interface. Subclasses :class:`ResourceReader` " +"and provides concrete implementations of the :class:`!ResourceReader`'s " +"abstract methods. Therefore, any loader supplying :class:`!" +"TraversableResources` also supplies :class:`!ResourceReader`." msgstr "" "Una clase base abstracta para lectores de recursos capaz de servir la " "interfaz :meth:`importlib.resources.files`. Subclase :class:`importlib." @@ -225,7 +240,7 @@ msgstr "" "Por lo tanto, cualquier cargador que suministre :class:`importlib.abc." "TraversableReader` también suministre ResourceReader." -#: ../Doc/library/importlib.resources.abc.rst:144 +#: ../Doc/library/importlib.resources.abc.rst:146 msgid "" "Loaders that wish to support resource reading are expected to implement this " "interface." diff --git a/library/importlib.resources.po b/library/importlib.resources.po index 6266c6e6f3..31e5ab0b13 100644 --- a/library/importlib.resources.po +++ b/library/importlib.resources.po @@ -9,17 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: Python en Español 3.11\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/importlib.resources.rst:2 -msgid ":mod:`importlib.resources` -- Resources" +#, fuzzy +msgid "" +":mod:`importlib.resources` -- Package resource reading, opening and access" msgstr ":mod:`importlib.resources` -- Recursos" #: ../Doc/library/importlib.resources.rst:7 @@ -29,16 +31,26 @@ msgstr "**Source code:** :source:`Lib/importlib/resources/__init__.py`" #: ../Doc/library/importlib.resources.rst:13 msgid "" "This module leverages Python's import system to provide access to " -"*resources* within *packages*. If you can import a package, you can access " -"resources within that package. Resources can be opened or read, in either " -"binary or text mode." +"*resources* within *packages*." +msgstr "" + +#: ../Doc/library/importlib.resources.rst:16 +msgid "" +"\"Resources\" are file-like resources associated with a module or package in " +"Python. The resources may be contained directly in a package, within a " +"subdirectory contained in that package, or adjacent to modules outside a " +"package. Resources may be text or binary. As a result, Python module sources " +"(.py) of a package and compilation artifacts (pycache) are technically de-" +"facto resources of that package. In practice, however, resources are " +"primarily those non-Python artifacts exposed specifically by the package " +"author." +msgstr "" + +#: ../Doc/library/importlib.resources.rst:25 +msgid "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 brindar " -"acceso a *recursos* dentro de *paquetes*. 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 de texto." -#: ../Doc/library/importlib.resources.rst:18 +#: ../Doc/library/importlib.resources.rst:27 msgid "" "Resources are roughly akin to files inside directories, though it's " "important to keep in mind that this is just a metaphor. Resources and " @@ -52,7 +64,7 @@ msgstr "" "directorios físicos en el sistema de archivos: por ejemplo, un paquete y sus " "recursos se pueden importar desde un archivo zip usando :py:mod:`zipimport`." -#: ../Doc/library/importlib.resources.rst:26 +#: ../Doc/library/importlib.resources.rst:35 msgid "" "This module provides functionality similar to `pkg_resources `_ `Basic Resource " @@ -68,7 +80,7 @@ msgstr "" "paquete. Esto facilita la lectura de los recursos incluidos en los paquetes, " "con una semántica más estable y consistente." -#: ../Doc/library/importlib.resources.rst:34 +#: ../Doc/library/importlib.resources.rst:43 msgid "" "The standalone backport of this module provides more information on `using " "importlib.resources `_ y `migración de pkg_resources a importlib.resources " "`_." -#: ../Doc/library/importlib.resources.rst:40 +#: ../Doc/library/importlib.resources.rst:49 msgid "" ":class:`Loaders ` that wish to support resource " "reading should implement a ``get_resource_reader(fullname)`` method as " @@ -90,75 +102,82 @@ msgstr "" "de recursos deben implementar un método ``get_resource_reader(fullname)`` " "según lo especificado por :class:`importlib.resources.abc.ResourceReader`." -#: ../Doc/library/importlib.resources.rst:46 +#: ../Doc/library/importlib.resources.rst:55 msgid "" -"Whenever a function accepts a ``Package`` argument, you can pass in either " -"a :class:`module object ` or a module name as a string. " -"You can only pass module objects whose ``__spec__." -"submodule_search_locations`` is not ``None``." +"Represents an anchor for resources, either a :class:`module object ` or a module name as a string. Defined as ``Union[str, " +"ModuleType]``." msgstr "" -"Cada vez que una función acepta un argumento ``Package``, puede pasar un :" -"class:`module object ` o un nombre de módulo como una " -"cadena. Solo puede pasar objetos de módulo cuyo ``__spec__." -"submodule_search_locations`` no sea ``None``." - -#: ../Doc/library/importlib.resources.rst:51 -msgid "The ``Package`` type is defined as ``Union[str, ModuleType]``." -msgstr "El tipo ``Package`` se define como ``Union[str, ModuleType]``." -#: ../Doc/library/importlib.resources.rst:55 +#: ../Doc/library/importlib.resources.rst:61 +#, fuzzy msgid "" "Returns a :class:`~importlib.resources.abc.Traversable` object representing " -"the resource container for the package (think directory) and its resources " -"(think files). A Traversable may contain other containers (think " -"subdirectories)." +"the resource container (think directory) and its resources (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 (imagine directorios) y " "sus recursos (imagine archivos). Un Traversable puede contener otros " "contenedores (piense en subdirectorios)." -#: ../Doc/library/importlib.resources.rst:60 +#: ../Doc/library/importlib.resources.rst:66 msgid "" -"*package* is either a name or a module object which conforms to the :data:" -"`Package` requirements." +"*anchor* is an optional :data:`Anchor`. If the anchor is a package, " +"resources are resolved from that package. If a module, resources are " +"resolved adjacent to that module (in the same package or the package root). " +"If the anchor is omitted, the caller's module is used." msgstr "" -"*paquete* es un nombre o un objeto de módulo que cumple con los requisitos " -"de :data:`Package`." -#: ../Doc/library/importlib.resources.rst:67 +#: ../Doc/library/importlib.resources.rst:74 +msgid "" +"\"package\" parameter was renamed to \"anchor\". \"anchor\" can now be a non-" +"package module and if omitted will default to the caller's module. " +"\"package\" is still accepted for compatibility but will raise a " +"DeprecationWarning. Consider passing the anchor positionally or using " +"``importlib_resources >= 5.10`` for a compatible interface on older Pythons." +msgstr "" + +#: ../Doc/library/importlib.resources.rst:84 +#, fuzzy msgid "" "Given a :class:`~importlib.resources.abc.Traversable` object representing a " -"file, typically from :func:`importlib.resources.files`, return a context " -"manager for use in a :keyword:`with` statement. The context manager provides " -"a :class:`pathlib.Path` object." +"file or directory, typically from :func:`importlib.resources.files`, return " +"a context manager for use in a :keyword:`with` statement. The context " +"manager provides a :class:`pathlib.Path` object." msgstr "" "Dado un objeto :class:`~importlib.resources.abc.Traversable` que representa " "un archivo, generalmente de :func:`importlib.resources.files`, 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.resources.rst:72 +#: ../Doc/library/importlib.resources.rst:89 +#, fuzzy msgid "" -"Exiting the context manager cleans up any temporary file created when the " -"resource was extracted from e.g. a zip file." +"Exiting the context manager cleans up any temporary file or directory " +"created when the resource was extracted from e.g. a zip file." msgstr "" "Al salir del administrador de contexto, se limpia cualquier archivo temporal " "creado cuando se extrajo el recurso, p. ej: un archivo comprimido." -#: ../Doc/library/importlib.resources.rst:75 +#: ../Doc/library/importlib.resources.rst:92 +#, fuzzy msgid "" "Use ``as_file`` when the Traversable methods (``read_text``, etc) are " -"insufficient and an actual file on the file system is required." +"insufficient and an actual file or directory on the file system is required." msgstr "" "Utilice ``as_file`` cuando los métodos Traversable (``read_text``, etc.) " "sean insuficientes y se requiera un archivo real en el sistema de archivos." -#: ../Doc/library/importlib.resources.rst:82 +#: ../Doc/library/importlib.resources.rst:98 +msgid "Added support for ``traversable`` representing a directory." +msgstr "" + +#: ../Doc/library/importlib.resources.rst:103 msgid "Deprecated functions" msgstr "Funciones en desuso" -#: ../Doc/library/importlib.resources.rst:84 +#: ../Doc/library/importlib.resources.rst:105 msgid "" "An older, deprecated set of functions is still available, but is scheduled " "for removal in a future version of Python. The main drawback of these " @@ -171,7 +190,23 @@ msgstr "" "asumen que todos los recursos están ubicados directamente dentro de un " "*paquete*." -#: ../Doc/library/importlib.resources.rst:91 +#: ../Doc/library/importlib.resources.rst:112 +msgid "" +"Whenever a function accepts a ``Package`` argument, you can pass in either " +"a :class:`module object ` or a module name as a string. " +"You can only pass module objects whose ``__spec__." +"submodule_search_locations`` is not ``None``." +msgstr "" +"Cada vez que una función acepta un argumento ``Package``, puede pasar un :" +"class:`module object ` o un nombre de módulo como una " +"cadena. Solo puede pasar objetos de módulo cuyo ``__spec__." +"submodule_search_locations`` no sea ``None``." + +#: ../Doc/library/importlib.resources.rst:117 +msgid "The ``Package`` type is defined as ``Union[str, ModuleType]``." +msgstr "El tipo ``Package`` se define como ``Union[str, ModuleType]``." + +#: ../Doc/library/importlib.resources.rst:124 msgid "" "For *resource* arguments of the functions below, you can pass in the name of " "a resource as a string or a :class:`path-like object `." @@ -180,15 +215,15 @@ msgstr "" "nombre de un recurso como una cadena o :class:`path-like object `." -#: ../Doc/library/importlib.resources.rst:95 +#: ../Doc/library/importlib.resources.rst:128 msgid "The ``Resource`` type is defined as ``Union[str, os.PathLike]``." msgstr "El tipo ``Resource`` se define como ``Union[str, os.PathLike]``." -#: ../Doc/library/importlib.resources.rst:99 +#: ../Doc/library/importlib.resources.rst:133 msgid "Open for binary reading the *resource* within *package*." msgstr "Abierto para lectura binaria de *recurso* dentro de *paquete*." -#: ../Doc/library/importlib.resources.rst:101 +#: ../Doc/library/importlib.resources.rst:135 msgid "" "*package* is either a name or a module object which conforms to the " "``Package`` requirements. *resource* is the name of the resource to open " @@ -202,16 +237,16 @@ msgstr "" "subrecursos (es decir, no puede ser un directorio). Esta función retorna una " "instancia ``typing.BinaryIO``, un flujo de E/S binario abierto para lectura." -#: ../Doc/library/importlib.resources.rst:109 -#: ../Doc/library/importlib.resources.rst:130 -#: ../Doc/library/importlib.resources.rst:148 -#: ../Doc/library/importlib.resources.rst:167 -#: ../Doc/library/importlib.resources.rst:203 -#: ../Doc/library/importlib.resources.rst:219 +#: ../Doc/library/importlib.resources.rst:143 +#: ../Doc/library/importlib.resources.rst:164 +#: ../Doc/library/importlib.resources.rst:182 +#: ../Doc/library/importlib.resources.rst:201 +#: ../Doc/library/importlib.resources.rst:237 +#: ../Doc/library/importlib.resources.rst:253 msgid "Calls to this function can be replaced by::" msgstr "Las llamadas a esta función se pueden reemplazar por:" -#: ../Doc/library/importlib.resources.rst:116 +#: ../Doc/library/importlib.resources.rst:150 msgid "" "Open for text reading the *resource* within *package*. By default, the " "resource is opened for reading as UTF-8." @@ -219,7 +254,7 @@ msgstr "" "Abierto para texto que lea *resource* dentro de *package*. De forma " "predeterminada, el recurso se abre para lectura como UTF-8." -#: ../Doc/library/importlib.resources.rst:119 +#: ../Doc/library/importlib.resources.rst:153 msgid "" "*package* is either a name or a module object which conforms to the " "``Package`` requirements. *resource* is the name of the resource to open " @@ -233,7 +268,7 @@ msgstr "" "subrecursos (es decir, no puede ser un directorio). *encoding* y *errors* " "tienen el mismo significado que con :func:`open` incorporado." -#: ../Doc/library/importlib.resources.rst:125 +#: ../Doc/library/importlib.resources.rst:159 msgid "" "This function returns a ``typing.TextIO`` instance, a text I/O stream open " "for reading." @@ -241,13 +276,13 @@ msgstr "" "Esta función retorna una instancia ``typing.TextIO``, un flujo de E/S de " "texto abierto para lectura." -#: ../Doc/library/importlib.resources.rst:137 +#: ../Doc/library/importlib.resources.rst:171 msgid "" "Read and return the contents of the *resource* within *package* as ``bytes``." msgstr "" "Lee y retorna el contenido de *resource* dentro de *package* como ``bytes``." -#: ../Doc/library/importlib.resources.rst:140 +#: ../Doc/library/importlib.resources.rst:174 msgid "" "*package* is either a name or a module object which conforms to the " "``Package`` requirements. *resource* is the name of the resource to open " @@ -261,7 +296,7 @@ msgstr "" "subrecursos (es decir, no puede ser un directorio). Esta función retorna el " "contenido del recurso como :class:`bytes`." -#: ../Doc/library/importlib.resources.rst:155 +#: ../Doc/library/importlib.resources.rst:189 msgid "" "Read and return the contents of *resource* within *package* as a ``str``. By " "default, the contents are read as strict UTF-8." @@ -269,7 +304,7 @@ msgstr "" "Lee y retorna el contenido de *resource* dentro de *package* como ``str``. " "De forma predeterminada, los contenidos se leen como UTF-8 estricto." -#: ../Doc/library/importlib.resources.rst:158 +#: ../Doc/library/importlib.resources.rst:192 msgid "" "*package* is either a name or a module object which conforms to the " "``Package`` requirements. *resource* is the name of the resource to open " @@ -285,7 +320,7 @@ msgstr "" "tienen el mismo significado que con :func:`open` integrado. Esta función " "retorna el contenido del recurso como :class:`str`." -#: ../Doc/library/importlib.resources.rst:174 +#: ../Doc/library/importlib.resources.rst:208 msgid "" "Return the path to the *resource* as an actual file system path. This " "function returns a context manager for use in a :keyword:`with` statement. " @@ -296,7 +331,7 @@ msgstr "" "declaración :keyword:`with`. El administrador de contexto proporciona un " "objeto :class:`pathlib.Path`." -#: ../Doc/library/importlib.resources.rst:178 +#: ../Doc/library/importlib.resources.rst:212 msgid "" "Exiting the context manager cleans up any temporary file created when the " "resource needs to be extracted from e.g. a zip file." @@ -304,7 +339,7 @@ msgstr "" "Al salir del administrador de contexto, se limpia cualquier archivo temporal " "creado cuando se necesita extraer el recurso, p. ej: un archivo comprimido." -#: ../Doc/library/importlib.resources.rst:181 +#: ../Doc/library/importlib.resources.rst:215 msgid "" "*package* is either a name or a module object which conforms to the " "``Package`` requirements. *resource* is the name of the resource to open " @@ -316,12 +351,12 @@ msgstr "" "*package*; puede que no contenga separadores de ruta y que no tenga " "subrecursos (es decir, no puede ser un directorio)." -#: ../Doc/library/importlib.resources.rst:188 +#: ../Doc/library/importlib.resources.rst:222 msgid "Calls to this function can be replaced using :func:`as_file`::" msgstr "" "Las llamadas a esta función se pueden reemplazar usando :func:`as_file`::" -#: ../Doc/library/importlib.resources.rst:195 +#: ../Doc/library/importlib.resources.rst:229 msgid "" "Return ``True`` if there is a resource named *name* in the package, " "otherwise ``False``. This function does not consider directories to be " @@ -333,7 +368,7 @@ msgstr "" "recursos. *package* es un nombre o un objeto de módulo que cumple con los " "requisitos de ``Package``." -#: ../Doc/library/importlib.resources.rst:210 +#: ../Doc/library/importlib.resources.rst:244 msgid "" "Return an iterable over the named items within the package. The iterable " "returns :class:`str` resources (e.g. files) and non-resources (e.g. " @@ -343,10 +378,28 @@ msgstr "" "iterable retorna recursos :class:`str` (por ejemplo, archivos) y no recursos " "(por ejemplo, directorios). El iterable no recurre a subdirectorios." -#: ../Doc/library/importlib.resources.rst:214 +#: ../Doc/library/importlib.resources.rst:248 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``." + +#~ msgid "" +#~ "This module leverages Python's import system to provide access to " +#~ "*resources* within *packages*. If you can import a package, you can " +#~ "access 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 brindar " +#~ "acceso a *recursos* dentro de *paquetes*. 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 de texto." + +#~ msgid "" +#~ "*package* is either a name or a module object which conforms to the :data:" +#~ "`Package` requirements." +#~ msgstr "" +#~ "*paquete* es un nombre o un objeto de módulo que cumple con los " +#~ "requisitos de :data:`Package`." diff --git a/library/index.po b/library/index.po index 96de031ed4..a78820cb68 100644 --- a/library/index.po +++ b/library/index.po @@ -1,23 +1,26 @@ # Copyright (C) 2001-2020, Python Software Foundation # This file is distributed under the same license as the Python package. # Maintained by the python-doc-es workteam. -# docs-es@python.org / https://mail.python.org/mailman3/lists/docs-es.python.org/ -# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get the list of volunteers +# docs-es@python.org / +# https://mail.python.org/mailman3/lists/docs-es.python.org/ +# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get +# the list of volunteers # msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-06 11:59-0400\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-05-07 18:31-0300\n" +"Last-Translator: María Andrea Vignau\n" +"Language: es\n" "Language-Team: python-doc-es (https://mail.python.org/mailman3/lists/docs-es." "python.org)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\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" -"Last-Translator: María Andrea Vignau\n" -"X-Generator: Poedit 2.0.6\n" -"Language: es\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/index.rst:5 msgid "The Python Standard Library" @@ -79,9 +82,10 @@ msgstr "" # ¿Indice de paquetes de python? # frameworks: marco de trabajo #: ../Doc/library/index.rst:30 +#, fuzzy msgid "" -"In addition to the standard library, there is a growing collection of " -"several thousand components (from individual programs and modules to " +"In addition to the standard library, there is an active collection of " +"hundreds of thousands of components (from individual programs and modules to " "packages and entire application development frameworks), available from the " "`Python Package Index `_." msgstr "" diff --git a/library/inspect.po b/library/inspect.po index 20afebf62a..eba62dce16 100644 --- a/library/inspect.po +++ b/library/inspect.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-10-25 23:15+0100\n" "Last-Translator: Claudia Millan \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/inspect.rst:2 msgid ":mod:`inspect` --- Inspect live objects" @@ -61,12 +61,14 @@ msgid "Types and members" msgstr "Tipos y miembros" #: ../Doc/library/inspect.rst:31 +#, fuzzy msgid "" "The :func:`getmembers` function retrieves the members of an object such as a " "class or module. The functions whose names begin with \"is\" are mainly " "provided as convenient choices for the second argument to :func:" "`getmembers`. They also help you determine when you can expect to find the " -"following special attributes:" +"following special attributes (see :ref:`import-mod-attrs` for module " +"attributes):" msgstr "" "La función :func:`getmembers` recupera los miembros de un objeto como una " "clase o un módulo. Las funciones cuyos nombres comienzan con \"is\" se " @@ -87,149 +89,135 @@ msgid "Description" msgstr "Descripción" #: ../Doc/library/inspect.rst:43 -msgid "module" -msgstr "módulo" +msgid "class" +msgstr "clase" -#: ../Doc/library/inspect.rst:43 ../Doc/library/inspect.rst:48 -#: ../Doc/library/inspect.rst:58 ../Doc/library/inspect.rst:76 -#: ../Doc/library/inspect.rst:238 +#: ../Doc/library/inspect.rst:43 ../Doc/library/inspect.rst:53 +#: ../Doc/library/inspect.rst:71 ../Doc/library/inspect.rst:233 msgid "__doc__" msgstr "__doc__" -#: ../Doc/library/inspect.rst:43 ../Doc/library/inspect.rst:48 -#: ../Doc/library/inspect.rst:58 ../Doc/library/inspect.rst:76 -#: ../Doc/library/inspect.rst:238 +#: ../Doc/library/inspect.rst:43 ../Doc/library/inspect.rst:53 +#: ../Doc/library/inspect.rst:71 ../Doc/library/inspect.rst:233 msgid "documentation string" msgstr "cadena de caracteres de documentación" -#: ../Doc/library/inspect.rst:45 -msgid "__file__" -msgstr "__file__" - -#: ../Doc/library/inspect.rst:45 -msgid "filename (missing for built-in modules)" -msgstr "nombre de archivo (falta para los módulos incorporados)" - -#: ../Doc/library/inspect.rst:48 -msgid "class" -msgstr "clase" - -#: ../Doc/library/inspect.rst:50 ../Doc/library/inspect.rst:60 -#: ../Doc/library/inspect.rst:78 ../Doc/library/inspect.rst:207 -#: ../Doc/library/inspect.rst:221 ../Doc/library/inspect.rst:240 +#: ../Doc/library/inspect.rst:45 ../Doc/library/inspect.rst:55 +#: ../Doc/library/inspect.rst:73 ../Doc/library/inspect.rst:202 +#: ../Doc/library/inspect.rst:216 ../Doc/library/inspect.rst:235 msgid "__name__" msgstr "__name__" -#: ../Doc/library/inspect.rst:50 +#: ../Doc/library/inspect.rst:45 msgid "name with which this class was defined" msgstr "nombre con el que se definió esta clase" -#: ../Doc/library/inspect.rst:53 ../Doc/library/inspect.rst:63 -#: ../Doc/library/inspect.rst:81 ../Doc/library/inspect.rst:209 -#: ../Doc/library/inspect.rst:223 ../Doc/library/inspect.rst:243 +#: ../Doc/library/inspect.rst:48 ../Doc/library/inspect.rst:58 +#: ../Doc/library/inspect.rst:76 ../Doc/library/inspect.rst:204 +#: ../Doc/library/inspect.rst:218 ../Doc/library/inspect.rst:238 msgid "__qualname__" msgstr "__qualname__" -#: ../Doc/library/inspect.rst:53 ../Doc/library/inspect.rst:63 -#: ../Doc/library/inspect.rst:81 ../Doc/library/inspect.rst:209 -#: ../Doc/library/inspect.rst:223 ../Doc/library/inspect.rst:243 +#: ../Doc/library/inspect.rst:48 ../Doc/library/inspect.rst:58 +#: ../Doc/library/inspect.rst:76 ../Doc/library/inspect.rst:204 +#: ../Doc/library/inspect.rst:218 ../Doc/library/inspect.rst:238 msgid "qualified name" msgstr "nombre calificado" -#: ../Doc/library/inspect.rst:55 ../Doc/library/inspect.rst:73 -#: ../Doc/library/inspect.rst:106 +#: ../Doc/library/inspect.rst:50 ../Doc/library/inspect.rst:68 +#: ../Doc/library/inspect.rst:101 msgid "__module__" msgstr "__module__" -#: ../Doc/library/inspect.rst:55 +#: ../Doc/library/inspect.rst:50 msgid "name of module in which this class was defined" msgstr "nombre del módulo en el que se definió esta clase" -#: ../Doc/library/inspect.rst:58 +#: ../Doc/library/inspect.rst:53 msgid "method" msgstr "método" -#: ../Doc/library/inspect.rst:60 +#: ../Doc/library/inspect.rst:55 msgid "name with which this method was defined" msgstr "nombre con el que se definió este método" -#: ../Doc/library/inspect.rst:65 +#: ../Doc/library/inspect.rst:60 msgid "__func__" msgstr "__func__" -#: ../Doc/library/inspect.rst:65 +#: ../Doc/library/inspect.rst:60 msgid "function object containing implementation of method" msgstr "objeto función que contiene la implementación del método" -#: ../Doc/library/inspect.rst:69 ../Doc/library/inspect.rst:245 +#: ../Doc/library/inspect.rst:64 ../Doc/library/inspect.rst:240 msgid "__self__" msgstr "__self__" -#: ../Doc/library/inspect.rst:69 +#: ../Doc/library/inspect.rst:64 msgid "instance to which this method is bound, or ``None``" msgstr "instancia a la que este método está ligado, o ``None``" -#: ../Doc/library/inspect.rst:73 +#: ../Doc/library/inspect.rst:68 msgid "name of module in which this method was defined" msgstr "nombre del módulo en el cual este método fue definido" -#: ../Doc/library/inspect.rst:76 +#: ../Doc/library/inspect.rst:71 msgid "function" msgstr "función" -#: ../Doc/library/inspect.rst:78 +#: ../Doc/library/inspect.rst:73 msgid "name with which this function was defined" msgstr "nombre con el que se definió esta función" -#: ../Doc/library/inspect.rst:83 +#: ../Doc/library/inspect.rst:78 msgid "__code__" msgstr "__code__" -#: ../Doc/library/inspect.rst:83 +#: ../Doc/library/inspect.rst:78 msgid "code object containing compiled function :term:`bytecode`" msgstr "objeto de código que contiene la función compilada :term:`bytecode`" -#: ../Doc/library/inspect.rst:87 +#: ../Doc/library/inspect.rst:82 msgid "__defaults__" msgstr "__defaults__" -#: ../Doc/library/inspect.rst:87 +#: ../Doc/library/inspect.rst:82 msgid "tuple of any default values for positional or keyword parameters" msgstr "" "tupla de cualquier valor por defecto para los parámetros de posición o de " "palabras clave" -#: ../Doc/library/inspect.rst:91 +#: ../Doc/library/inspect.rst:86 msgid "__kwdefaults__" msgstr "__kwdefaults__" -#: ../Doc/library/inspect.rst:91 +#: ../Doc/library/inspect.rst:86 msgid "mapping of any default values for keyword-only parameters" msgstr "" "mapeo de cualquier valor predeterminado para parámetros de sólo palabras " "clave" -#: ../Doc/library/inspect.rst:95 +#: ../Doc/library/inspect.rst:90 msgid "__globals__" msgstr "__globals__" -#: ../Doc/library/inspect.rst:95 +#: ../Doc/library/inspect.rst:90 msgid "global namespace in which this function was defined" msgstr "namespace global en el que se definió esta función" -#: ../Doc/library/inspect.rst:98 +#: ../Doc/library/inspect.rst:93 msgid "__builtins__" msgstr "__builtins__" -#: ../Doc/library/inspect.rst:98 +#: ../Doc/library/inspect.rst:93 msgid "builtins namespace" msgstr "Espacio de nombres builtins" -#: ../Doc/library/inspect.rst:100 +#: ../Doc/library/inspect.rst:95 msgid "__annotations__" msgstr "__annotations__" -#: ../Doc/library/inspect.rst:100 +#: ../Doc/library/inspect.rst:95 msgid "" "mapping of parameters names to annotations; ``\"return\"`` key is reserved " "for return annotations." @@ -237,117 +225,117 @@ msgstr "" "mapeo de los nombres de parámetros a las anotaciones; la tecla " "``\"return\"`` está reservada para las anotaciones de retorno." -#: ../Doc/library/inspect.rst:106 +#: ../Doc/library/inspect.rst:101 msgid "name of module in which this function was defined" msgstr "nombre del módulo en el cual esta función fue definida" -#: ../Doc/library/inspect.rst:109 +#: ../Doc/library/inspect.rst:104 msgid "traceback" msgstr "traceback" -#: ../Doc/library/inspect.rst:109 +#: ../Doc/library/inspect.rst:104 msgid "tb_frame" msgstr "tb_frame" -#: ../Doc/library/inspect.rst:109 +#: ../Doc/library/inspect.rst:104 msgid "frame object at this level" msgstr "enmarcar el objeto a este nivel" -#: ../Doc/library/inspect.rst:112 +#: ../Doc/library/inspect.rst:107 msgid "tb_lasti" msgstr "tb_lasti" -#: ../Doc/library/inspect.rst:112 ../Doc/library/inspect.rst:134 +#: ../Doc/library/inspect.rst:107 ../Doc/library/inspect.rst:129 msgid "index of last attempted instruction in bytecode" msgstr "índice del último intento de instrucción en código de bytes" -#: ../Doc/library/inspect.rst:115 +#: ../Doc/library/inspect.rst:110 msgid "tb_lineno" msgstr "tb_lineno" -#: ../Doc/library/inspect.rst:115 ../Doc/library/inspect.rst:137 +#: ../Doc/library/inspect.rst:110 ../Doc/library/inspect.rst:132 msgid "current line number in Python source code" msgstr "número de línea actual en el código fuente de Python" -#: ../Doc/library/inspect.rst:118 +#: ../Doc/library/inspect.rst:113 msgid "tb_next" msgstr "tb_next" -#: ../Doc/library/inspect.rst:118 +#: ../Doc/library/inspect.rst:113 msgid "next inner traceback object (called by this level)" msgstr "el siguiente objeto de traceback interno (llamado por este nivel)" -#: ../Doc/library/inspect.rst:122 ../Doc/library/inspect.rst:211 -#: ../Doc/library/inspect.rst:228 +#: ../Doc/library/inspect.rst:117 ../Doc/library/inspect.rst:206 +#: ../Doc/library/inspect.rst:223 msgid "frame" msgstr "marco" -#: ../Doc/library/inspect.rst:122 +#: ../Doc/library/inspect.rst:117 msgid "f_back" msgstr "f_back" -#: ../Doc/library/inspect.rst:122 +#: ../Doc/library/inspect.rst:117 msgid "next outer frame object (this frame's caller)" msgstr "el siguiente objeto exterior del marco (el que llama a este marco)" -#: ../Doc/library/inspect.rst:125 +#: ../Doc/library/inspect.rst:120 msgid "f_builtins" msgstr "f_builtins" -#: ../Doc/library/inspect.rst:125 +#: ../Doc/library/inspect.rst:120 msgid "builtins namespace seen by this frame" msgstr "construye el namespace visto por este marco" -#: ../Doc/library/inspect.rst:128 +#: ../Doc/library/inspect.rst:123 msgid "f_code" msgstr "f_code" -#: ../Doc/library/inspect.rst:128 +#: ../Doc/library/inspect.rst:123 msgid "code object being executed in this frame" msgstr "objeto de código que se ejecuta en este marco" -#: ../Doc/library/inspect.rst:131 +#: ../Doc/library/inspect.rst:126 msgid "f_globals" msgstr "f_globals" -#: ../Doc/library/inspect.rst:131 +#: ../Doc/library/inspect.rst:126 msgid "global namespace seen by this frame" msgstr "el namespace global visto por este marco" -#: ../Doc/library/inspect.rst:134 +#: ../Doc/library/inspect.rst:129 msgid "f_lasti" msgstr "f_lasti" -#: ../Doc/library/inspect.rst:137 +#: ../Doc/library/inspect.rst:132 msgid "f_lineno" msgstr "f_lineno" -#: ../Doc/library/inspect.rst:140 +#: ../Doc/library/inspect.rst:135 msgid "f_locals" msgstr "f_locals" -#: ../Doc/library/inspect.rst:140 +#: ../Doc/library/inspect.rst:135 msgid "local namespace seen by this frame" msgstr "el namespace local visto por este marco" -#: ../Doc/library/inspect.rst:143 +#: ../Doc/library/inspect.rst:138 msgid "f_trace" msgstr "f_trace" -#: ../Doc/library/inspect.rst:143 +#: ../Doc/library/inspect.rst:138 msgid "tracing function for this frame, or ``None``" msgstr "función de rastreo para este marco, o ``None``" -#: ../Doc/library/inspect.rst:146 ../Doc/library/inspect.rst:215 -#: ../Doc/library/inspect.rst:232 +#: ../Doc/library/inspect.rst:141 ../Doc/library/inspect.rst:210 +#: ../Doc/library/inspect.rst:227 msgid "code" msgstr "code" -#: ../Doc/library/inspect.rst:146 +#: ../Doc/library/inspect.rst:141 msgid "co_argcount" msgstr "co_argcount" -#: ../Doc/library/inspect.rst:146 +#: ../Doc/library/inspect.rst:141 msgid "" "number of arguments (not including keyword only arguments, \\* or \\*\\* " "args)" @@ -355,227 +343,227 @@ msgstr "" "número de argumentos (sin incluir los argumentos de palabras clave, \\* o " "\\*\\* args)" -#: ../Doc/library/inspect.rst:151 +#: ../Doc/library/inspect.rst:146 msgid "co_code" msgstr "co_code" -#: ../Doc/library/inspect.rst:151 +#: ../Doc/library/inspect.rst:146 msgid "string of raw compiled bytecode" msgstr "cadena de bytecode compilados en bruto" -#: ../Doc/library/inspect.rst:154 +#: ../Doc/library/inspect.rst:149 msgid "co_cellvars" msgstr "co_cellvars" -#: ../Doc/library/inspect.rst:154 +#: ../Doc/library/inspect.rst:149 msgid "tuple of names of cell variables (referenced by containing scopes)" msgstr "" "tupla de nombres de variables de celda (referenciados por contener alcances)" -#: ../Doc/library/inspect.rst:158 +#: ../Doc/library/inspect.rst:153 msgid "co_consts" msgstr "co_consts" -#: ../Doc/library/inspect.rst:158 +#: ../Doc/library/inspect.rst:153 msgid "tuple of constants used in the bytecode" msgstr "tupla de constantes utilizadas en el bytecode" -#: ../Doc/library/inspect.rst:161 +#: ../Doc/library/inspect.rst:156 msgid "co_filename" msgstr "co_filename" -#: ../Doc/library/inspect.rst:161 +#: ../Doc/library/inspect.rst:156 msgid "name of file in which this code object was created" msgstr "nombre del archivo en el que este objeto código fue creado" -#: ../Doc/library/inspect.rst:165 +#: ../Doc/library/inspect.rst:160 msgid "co_firstlineno" msgstr "co_firstlineno" -#: ../Doc/library/inspect.rst:165 +#: ../Doc/library/inspect.rst:160 msgid "number of first line in Python source code" msgstr "número de la primera línea del código fuente de Python" -#: ../Doc/library/inspect.rst:168 +#: ../Doc/library/inspect.rst:163 msgid "co_flags" msgstr "co_flags" -#: ../Doc/library/inspect.rst:168 +#: ../Doc/library/inspect.rst:163 msgid "" "bitmap of ``CO_*`` flags, read more :ref:`here `" msgstr "" "mapa de bits de los flags ``CO_*``, leer más :ref:`aquí `" -#: ../Doc/library/inspect.rst:172 +#: ../Doc/library/inspect.rst:167 msgid "co_lnotab" msgstr "co_lnotab" -#: ../Doc/library/inspect.rst:172 +#: ../Doc/library/inspect.rst:167 msgid "encoded mapping of line numbers to bytecode indices" msgstr "mapeo codificado de los números de línea a los índices de bytecode" -#: ../Doc/library/inspect.rst:176 +#: ../Doc/library/inspect.rst:171 msgid "co_freevars" msgstr "co_freevars" -#: ../Doc/library/inspect.rst:176 +#: ../Doc/library/inspect.rst:171 msgid "tuple of names of free variables (referenced via a function's closure)" msgstr "" "tupla de nombres de variables libres (referenciados a través del cierre de " "una función)" -#: ../Doc/library/inspect.rst:180 +#: ../Doc/library/inspect.rst:175 msgid "co_posonlyargcount" msgstr "co_posonlyargcount" -#: ../Doc/library/inspect.rst:180 +#: ../Doc/library/inspect.rst:175 msgid "number of positional only arguments" msgstr "número de argumentos solo posicionales" -#: ../Doc/library/inspect.rst:183 +#: ../Doc/library/inspect.rst:178 msgid "co_kwonlyargcount" msgstr "co_kwonlyargcount" -#: ../Doc/library/inspect.rst:183 +#: ../Doc/library/inspect.rst:178 msgid "number of keyword only arguments (not including \\*\\* arg)" msgstr "" "número de argumentos de sólo palabras clave (sin incluir el \\*\\* arg)" -#: ../Doc/library/inspect.rst:187 +#: ../Doc/library/inspect.rst:182 msgid "co_name" msgstr "co_name" -#: ../Doc/library/inspect.rst:187 +#: ../Doc/library/inspect.rst:182 msgid "name with which this code object was defined" msgstr "nombre con el que se definió este objeto de código" -#: ../Doc/library/inspect.rst:190 +#: ../Doc/library/inspect.rst:185 msgid "co_qualname" msgstr "co_qualname" -#: ../Doc/library/inspect.rst:190 +#: ../Doc/library/inspect.rst:185 msgid "fully qualified name with which this code object was defined" msgstr "nombre completo con el que se definió este objeto de código" -#: ../Doc/library/inspect.rst:194 +#: ../Doc/library/inspect.rst:189 msgid "co_names" msgstr "co_names" -#: ../Doc/library/inspect.rst:194 +#: ../Doc/library/inspect.rst:189 msgid "tuple of names other than arguments and function locals" msgstr "tupla de nombres que no sean argumentos y funciones locales" -#: ../Doc/library/inspect.rst:198 +#: ../Doc/library/inspect.rst:193 msgid "co_nlocals" msgstr "co_nlocals" -#: ../Doc/library/inspect.rst:198 +#: ../Doc/library/inspect.rst:193 msgid "number of local variables" msgstr "número de variables locales" -#: ../Doc/library/inspect.rst:200 +#: ../Doc/library/inspect.rst:195 msgid "co_stacksize" msgstr "co_stacksize" -#: ../Doc/library/inspect.rst:200 +#: ../Doc/library/inspect.rst:195 msgid "virtual machine stack space required" msgstr "se requiere espacio en la pila de máquina virtual" -#: ../Doc/library/inspect.rst:203 +#: ../Doc/library/inspect.rst:198 msgid "co_varnames" msgstr "co_varnames" -#: ../Doc/library/inspect.rst:203 +#: ../Doc/library/inspect.rst:198 msgid "tuple of names of arguments and local variables" msgstr "tupla de nombres de argumentos y variables locales" -#: ../Doc/library/inspect.rst:207 +#: ../Doc/library/inspect.rst:202 msgid "generator" msgstr "generador" -#: ../Doc/library/inspect.rst:207 ../Doc/library/inspect.rst:221 +#: ../Doc/library/inspect.rst:202 ../Doc/library/inspect.rst:216 msgid "name" msgstr "nombre" -#: ../Doc/library/inspect.rst:211 +#: ../Doc/library/inspect.rst:206 msgid "gi_frame" msgstr "gi_frame" -#: ../Doc/library/inspect.rst:213 +#: ../Doc/library/inspect.rst:208 msgid "gi_running" msgstr "gi_running" -#: ../Doc/library/inspect.rst:213 +#: ../Doc/library/inspect.rst:208 msgid "is the generator running?" msgstr "¿Está el generador en ejecución?" -#: ../Doc/library/inspect.rst:215 +#: ../Doc/library/inspect.rst:210 msgid "gi_code" msgstr "gi_code" -#: ../Doc/library/inspect.rst:217 +#: ../Doc/library/inspect.rst:212 msgid "gi_yieldfrom" msgstr "gi_yieldfrom" -#: ../Doc/library/inspect.rst:217 +#: ../Doc/library/inspect.rst:212 msgid "object being iterated by ``yield from``, or ``None``" msgstr "el objeto siendo iterado por ``yield from``, o ``None``" -#: ../Doc/library/inspect.rst:221 +#: ../Doc/library/inspect.rst:216 msgid "coroutine" msgstr "corutina" -#: ../Doc/library/inspect.rst:225 +#: ../Doc/library/inspect.rst:220 msgid "cr_await" msgstr "cr_await" -#: ../Doc/library/inspect.rst:225 +#: ../Doc/library/inspect.rst:220 msgid "object being awaited on, or ``None``" msgstr "objeto al que se espera, o ``None``" -#: ../Doc/library/inspect.rst:228 +#: ../Doc/library/inspect.rst:223 msgid "cr_frame" msgstr "cr_frame" -#: ../Doc/library/inspect.rst:230 +#: ../Doc/library/inspect.rst:225 msgid "cr_running" msgstr "cr_running" -#: ../Doc/library/inspect.rst:230 +#: ../Doc/library/inspect.rst:225 msgid "is the coroutine running?" msgstr "¿Está la corutina en ejecución?" -#: ../Doc/library/inspect.rst:232 +#: ../Doc/library/inspect.rst:227 msgid "cr_code" msgstr "cr_code" -#: ../Doc/library/inspect.rst:234 +#: ../Doc/library/inspect.rst:229 msgid "cr_origin" msgstr "cr_origin" -#: ../Doc/library/inspect.rst:234 +#: ../Doc/library/inspect.rst:229 msgid "where coroutine was created, or ``None``. See |coroutine-origin-link|" msgstr "donde se creó la corutina, o ``None``. Ver |coroutine-origin-link|" -#: ../Doc/library/inspect.rst:238 +#: ../Doc/library/inspect.rst:233 msgid "builtin" msgstr "incorporado" -#: ../Doc/library/inspect.rst:240 +#: ../Doc/library/inspect.rst:235 msgid "original name of this function or method" msgstr "nombre original de esta función o método" -#: ../Doc/library/inspect.rst:245 +#: ../Doc/library/inspect.rst:240 msgid "instance to which a method is bound, or ``None``" msgstr "instancia a la que está ligada un método, o ``None``" -#: ../Doc/library/inspect.rst:252 +#: ../Doc/library/inspect.rst:247 msgid "Add ``__qualname__`` and ``gi_yieldfrom`` attributes to generators." msgstr "" "Agrega atributos ``__qualname__`` y ``gi_yieldfrom`` a los generadores." -#: ../Doc/library/inspect.rst:254 +#: ../Doc/library/inspect.rst:249 msgid "" "The ``__name__`` attribute of generators is now set from the function name, " "instead of the code name, and it can now be modified." @@ -584,15 +572,15 @@ msgstr "" "nombre de la función, en lugar del nombre del código, y ahora puede ser " "modificado." -#: ../Doc/library/inspect.rst:259 +#: ../Doc/library/inspect.rst:254 msgid "Add ``cr_origin`` attribute to coroutines." msgstr "Agrega el atributo ``cr_origin`` a las corutinas." -#: ../Doc/library/inspect.rst:263 +#: ../Doc/library/inspect.rst:258 msgid "Add ``__builtins__`` attribute to functions." msgstr "Agrega el atributo ``__builtins__`` a funciones." -#: ../Doc/library/inspect.rst:267 +#: ../Doc/library/inspect.rst:262 msgid "" "Return all the members of an object in a list of ``(name, value)`` pairs " "sorted by name. If the optional *predicate* argument—which will be called " @@ -604,7 +592,7 @@ msgstr "" "opcional, que se llamará con el objeto ``value`` de cada miembro, solo se " "incluyen los miembros para los que el predicado retorna un valor verdadero." -#: ../Doc/library/inspect.rst:274 +#: ../Doc/library/inspect.rst:269 msgid "" ":func:`getmembers` will only return class attributes defined in the " "metaclass when the argument is a class and those attributes have been listed " @@ -614,7 +602,7 @@ msgstr "" "metaclase cuando el argumento sea una clase y esos atributos hayan sido " "listados en la costumbre de la metaclase :meth:`__dir__`." -#: ../Doc/library/inspect.rst:281 +#: ../Doc/library/inspect.rst:276 msgid "" "Return all the members of an object in a list of ``(name, value)`` pairs " "sorted by name without triggering dynamic lookup via the descriptor " @@ -626,7 +614,7 @@ msgstr "" "protocolo descriptor, __getattr__ o __getattribute__. Opcionalmente, solo " "retorna miembros que satisfagan un predicado determinado." -#: ../Doc/library/inspect.rst:288 +#: ../Doc/library/inspect.rst:283 msgid "" ":func:`getmembers_static` may not be able to retrieve all members that " "getmembers can fetch (like dynamically created attributes) and may find " @@ -640,7 +628,7 @@ msgstr "" "generan AttributeError). También puede retornar objetos descriptores en " "lugar de miembros de instancia en algunos casos." -#: ../Doc/library/inspect.rst:299 +#: ../Doc/library/inspect.rst:294 msgid "" "Return the name of the module named by the file *path*, without including " "the names of enclosing packages. The file extension is checked against all " @@ -654,7 +642,7 @@ msgstr "" "coincide, el componente final de la ruta se retorna con la extensión " "eliminada. En caso contrario, se retorna ``None``." -#: ../Doc/library/inspect.rst:305 +#: ../Doc/library/inspect.rst:300 msgid "" "Note that this function *only* returns a meaningful name for actual Python " "modules - paths that potentially refer to Python packages will still return " @@ -664,15 +652,15 @@ msgstr "" "los módulos reales de Python - las rutas que potencialmente se refieren a " "los paquetes de Python seguirán retornando ``None``." -#: ../Doc/library/inspect.rst:309 +#: ../Doc/library/inspect.rst:304 msgid "The function is based directly on :mod:`importlib`." msgstr "La función se basa directamente en :mod:`importlib`." -#: ../Doc/library/inspect.rst:315 +#: ../Doc/library/inspect.rst:310 msgid "Return ``True`` if the object is a module." msgstr "Retorna ``True`` si el objeto es un módulo." -#: ../Doc/library/inspect.rst:320 +#: ../Doc/library/inspect.rst:315 msgid "" "Return ``True`` if the object is a class, whether built-in or created in " "Python code." @@ -680,11 +668,11 @@ msgstr "" "Retorna ``True`` si el objeto es una clase, ya sea incorporada o creada en " "código Python." -#: ../Doc/library/inspect.rst:326 +#: ../Doc/library/inspect.rst:321 msgid "Return ``True`` if the object is a bound method written in Python." msgstr "Retorna ``True`` si el objeto es un método ligado escrito en Python." -#: ../Doc/library/inspect.rst:331 +#: ../Doc/library/inspect.rst:326 msgid "" "Return ``True`` if the object is a Python function, which includes functions " "created by a :term:`lambda` expression." @@ -692,11 +680,11 @@ msgstr "" "Retorna ``True`` si el objeto es una función de Python, que incluye " "funciones creadas por una expresión :term:`lambda`." -#: ../Doc/library/inspect.rst:337 +#: ../Doc/library/inspect.rst:332 msgid "Return ``True`` if the object is a Python generator function." msgstr "Retorna ``True`` si el objeto es una función generadora de Python." -#: ../Doc/library/inspect.rst:339 +#: ../Doc/library/inspect.rst:334 msgid "" "Functions wrapped in :func:`functools.partial` now return ``True`` if the " "wrapped function is a Python generator function." @@ -704,19 +692,22 @@ msgstr "" "Funciones envueltas en :func:`functools.partial` ahora retornan ``True`` si " "la función envuelta es una función Python generadora." -#: ../Doc/library/inspect.rst:346 +#: ../Doc/library/inspect.rst:341 msgid "Return ``True`` if the object is a generator." msgstr "Retorna ``True`` si el objeto es un generador." -#: ../Doc/library/inspect.rst:351 +#: ../Doc/library/inspect.rst:346 +#, fuzzy msgid "" "Return ``True`` if the object is a :term:`coroutine function` (a function " -"defined with an :keyword:`async def` syntax)." +"defined with an :keyword:`async def` syntax), a :func:`functools.partial` " +"wrapping a :term:`coroutine function`, or a sync function marked with :func:" +"`markcoroutinefunction`." msgstr "" "Retorna ``True`` si el objeto es una :term:`coroutine function` (una función " "definida con una sintaxis :keyword:`async def`)." -#: ../Doc/library/inspect.rst:356 +#: ../Doc/library/inspect.rst:353 msgid "" "Functions wrapped in :func:`functools.partial` now return ``True`` if the " "wrapped function is a :term:`coroutine function`." @@ -724,7 +715,31 @@ msgstr "" "Funciones envueltas en :func:`functools.partial` ahora retornan ``True`` si " "la función envuelta es un :term:`coroutine function`." -#: ../Doc/library/inspect.rst:363 +#: ../Doc/library/inspect.rst:357 +msgid "" +"Sync functions marked with :func:`markcoroutinefunction` now return ``True``." +msgstr "" + +#: ../Doc/library/inspect.rst:364 +msgid "" +"Decorator to mark a callable as a :term:`coroutine function` if it would not " +"otherwise be detected by :func:`iscoroutinefunction`." +msgstr "" + +#: ../Doc/library/inspect.rst:367 +msgid "" +"This may be of use for sync functions that return a :term:`coroutine`, if " +"the function is passed to an API that requires :func:`iscoroutinefunction`." +msgstr "" + +#: ../Doc/library/inspect.rst:370 +msgid "" +"When possible, using an :keyword:`async def` function is preferred. Also " +"acceptable is calling the function and testing the return with :func:" +"`iscoroutine`." +msgstr "" + +#: ../Doc/library/inspect.rst:379 msgid "" "Return ``True`` if the object is a :term:`coroutine` created by an :keyword:" "`async def` function." @@ -732,14 +747,14 @@ msgstr "" "Retorna verdadero si el objeto es un :term:`coroutine` creado por una " "función :keyword:`async def`." -#: ../Doc/library/inspect.rst:371 +#: ../Doc/library/inspect.rst:387 msgid "" "Return ``True`` if the object can be used in :keyword:`await` expression." msgstr "" "Retorna ``True`` si el objeto puede ser usado en la expresión :keyword:" "`await`." -#: ../Doc/library/inspect.rst:373 +#: ../Doc/library/inspect.rst:389 msgid "" "Can also be used to distinguish generator-based coroutines from regular " "generators::" @@ -747,7 +762,7 @@ msgstr "" "También se puede utilizar para distinguir las corutinas basadas en " "generadores de los generadores normales::" -#: ../Doc/library/inspect.rst:390 +#: ../Doc/library/inspect.rst:406 msgid "" "Return ``True`` if the object is an :term:`asynchronous generator` function, " "for example::" @@ -755,7 +770,7 @@ msgstr "" "Retorna ``True`` si el objeto es una función :term:`asynchronous generator`, " "por ejemplo::" -#: ../Doc/library/inspect.rst:401 +#: ../Doc/library/inspect.rst:417 msgid "" "Functions wrapped in :func:`functools.partial` now return ``True`` if the " "wrapped function is a :term:`asynchronous generator` function." @@ -763,7 +778,7 @@ msgstr "" "Funciones envueltas en :func:`functools.partial` ahora retornan ``True`` si " "la función envuelta es una función :term:`asynchronous generator`." -#: ../Doc/library/inspect.rst:408 +#: ../Doc/library/inspect.rst:424 msgid "" "Return ``True`` if the object is an :term:`asynchronous generator iterator` " "created by an :term:`asynchronous generator` function." @@ -771,19 +786,19 @@ msgstr "" "Retorna verdadero si el objeto es un :term:`asynchronous generator iterator` " "creado por una función :term:`asynchronous generator`." -#: ../Doc/library/inspect.rst:415 +#: ../Doc/library/inspect.rst:431 msgid "Return ``True`` if the object is a traceback." msgstr "Retorna ``True`` si el objeto es un traceback." -#: ../Doc/library/inspect.rst:420 +#: ../Doc/library/inspect.rst:436 msgid "Return ``True`` if the object is a frame." msgstr "Retorna ``True`` si el objeto es un marco." -#: ../Doc/library/inspect.rst:425 +#: ../Doc/library/inspect.rst:441 msgid "Return ``True`` if the object is a code." msgstr "Retorna ``True`` si el objeto es un código." -#: ../Doc/library/inspect.rst:430 +#: ../Doc/library/inspect.rst:446 msgid "" "Return ``True`` if the object is a built-in function or a bound built-in " "method." @@ -791,13 +806,13 @@ msgstr "" "Retorna ``True`` si el objeto es una función incorporada o un método ligado " "incorporado." -#: ../Doc/library/inspect.rst:435 +#: ../Doc/library/inspect.rst:451 msgid "" "Return ``True`` if the type of object is a :class:`~types.MethodWrapperType`." msgstr "" "Retorna ``True`` si el tipo de objeto es :class:`~types.MethodWrapperType`." -#: ../Doc/library/inspect.rst:437 +#: ../Doc/library/inspect.rst:453 msgid "" "These are instances of :class:`~types.MethodWrapperType`, such as :meth:" "`~object.__str__`, :meth:`~object.__eq__` and :meth:`~object.__repr__`." @@ -805,7 +820,7 @@ msgstr "" "Estas son instancias de :class:`~types.MethodWrapperType`, como :meth:" "`~object.__str__`, :meth:`~object.__eq__` y :meth:`~object.__repr__`." -#: ../Doc/library/inspect.rst:445 +#: ../Doc/library/inspect.rst:461 msgid "" "Return ``True`` if the object is a user-defined or built-in function or " "method." @@ -813,11 +828,11 @@ msgstr "" "Retorna ``True`` si el objeto es una función o método definido por el " "usuario o incorporado." -#: ../Doc/library/inspect.rst:450 +#: ../Doc/library/inspect.rst:466 msgid "Return ``True`` if the object is an abstract base class." msgstr "Retorna ``True`` si el objeto es una clase base abstracta." -#: ../Doc/library/inspect.rst:455 +#: ../Doc/library/inspect.rst:471 msgid "" "Return ``True`` if the object is a method descriptor, but not if :func:" "`ismethod`, :func:`isclass`, :func:`isfunction` or :func:`isbuiltin` are " @@ -827,7 +842,7 @@ msgstr "" "`ismethod`, :func:`isclass`, :func:`isfunction` o :func:`isbuiltin` son " "verdaderos." -#: ../Doc/library/inspect.rst:459 +#: ../Doc/library/inspect.rst:475 msgid "" "This, for example, is true of ``int.__add__``. An object passing this test " "has a :meth:`~object.__get__` method but not a :meth:`~object.__set__` " @@ -840,7 +855,7 @@ msgstr "" "atributo :attr:`~definition.__name__` suele ser sensato, y :attr:`__doc__` a " "menudo lo es." -#: ../Doc/library/inspect.rst:465 +#: ../Doc/library/inspect.rst:481 msgid "" "Methods implemented via descriptors that also pass one of the other tests " "return ``False`` from the :func:`ismethoddescriptor` test, simply because " @@ -853,11 +868,11 @@ msgstr "" "contar con tener el atributo :attr:`__func__` (etc) cuando un objeto pasa :" "func:`ismethod`." -#: ../Doc/library/inspect.rst:473 +#: ../Doc/library/inspect.rst:489 msgid "Return ``True`` if the object is a data descriptor." msgstr "Retorna ``True`` si el objeto es un descriptor de datos." -#: ../Doc/library/inspect.rst:475 +#: ../Doc/library/inspect.rst:491 msgid "" "Data descriptors have a :attr:`~object.__set__` or a :attr:`~object." "__delete__` method. Examples are properties (defined in Python), getsets, " @@ -876,11 +891,11 @@ msgstr "" "`__doc__` (las propiedades, conjuntos y miembros tienen ambos atributos), " "pero esto no está garantizado." -#: ../Doc/library/inspect.rst:486 +#: ../Doc/library/inspect.rst:502 msgid "Return ``True`` if the object is a getset descriptor." msgstr "Retorna ``True`` si el objeto es un descriptor de conjunto." -#: ../Doc/library/inspect.rst:490 +#: ../Doc/library/inspect.rst:506 msgid "" "getsets are attributes defined in extension modules via :c:type:" "`PyGetSetDef` structures. For Python implementations without such types, " @@ -890,11 +905,11 @@ msgstr "" "estructuras :c:type:`PyGetSetDef`. Para implementaciones de Python sin " "tales tipos, este método siempre retornará ``False``." -#: ../Doc/library/inspect.rst:497 +#: ../Doc/library/inspect.rst:513 msgid "Return ``True`` if the object is a member descriptor." msgstr "Retorna ``True`` si el objeto es un descriptor de miembro." -#: ../Doc/library/inspect.rst:501 +#: ../Doc/library/inspect.rst:517 msgid "" "Member descriptors are attributes defined in extension modules via :c:type:" "`PyMemberDef` structures. For Python implementations without such types, " @@ -905,11 +920,11 @@ msgstr "" "implementaciones de Python sin tales tipos, este método siempre retornará " "``False``." -#: ../Doc/library/inspect.rst:509 +#: ../Doc/library/inspect.rst:525 msgid "Retrieving source code" msgstr "Recuperar el código fuente" -#: ../Doc/library/inspect.rst:513 +#: ../Doc/library/inspect.rst:529 msgid "" "Get the documentation string for an object, cleaned up with :func:" "`cleandoc`. If the documentation string for an object is not provided and " @@ -923,11 +938,11 @@ msgstr "" "la cadena de documentación de la jerarquía de herencia. Retorna ``None`` si " "la cadena de documentación no es válida o falta." -#: ../Doc/library/inspect.rst:519 +#: ../Doc/library/inspect.rst:535 msgid "Documentation strings are now inherited if not overridden." msgstr "Las cadenas de documentación son ahora heredadas, si no anuladas." -#: ../Doc/library/inspect.rst:525 +#: ../Doc/library/inspect.rst:541 msgid "" "Return in a single string any lines of comments immediately preceding the " "object's source code (for a class, function, or method), or at the top of " @@ -942,7 +957,7 @@ msgstr "" "``None``. Esto podría suceder si el objeto ha sido definido en C o en el " "shell interactivo." -#: ../Doc/library/inspect.rst:534 +#: ../Doc/library/inspect.rst:550 msgid "" "Return the name of the (text or binary) file in which an object was defined. " "This will fail with a :exc:`TypeError` if the object is a built-in module, " @@ -952,7 +967,7 @@ msgstr "" "objeto. Esto fallará con un :exc:`TypeError` si el objeto es un módulo, " "clase o función incorporada." -#: ../Doc/library/inspect.rst:541 +#: ../Doc/library/inspect.rst:557 msgid "" "Try to guess which module an object was defined in. Return ``None`` if the " "module cannot be determined." @@ -960,7 +975,7 @@ msgstr "" "Intenta adivinar en qué módulo se definió un objeto. Retorna ``None`` si no " "se puede determinar el módulo." -#: ../Doc/library/inspect.rst:547 +#: ../Doc/library/inspect.rst:563 msgid "" "Return the name of the Python source file in which an object was defined or " "``None`` if no way can be identified to get the source. This will fail with " @@ -971,14 +986,16 @@ msgstr "" "fuente. Esto fallará con un :exc:`TypeError` si el objeto es un módulo, una " "clase o una función incorporados." -#: ../Doc/library/inspect.rst:555 +#: ../Doc/library/inspect.rst:571 +#, fuzzy msgid "" "Return a list of source lines and starting line number for an object. The " "argument may be a module, class, method, function, traceback, frame, or code " "object. The source code is returned as a list of the lines corresponding to " "the object and the line number indicates where in the original source file " "the first line of code was found. An :exc:`OSError` is raised if the source " -"code cannot be retrieved." +"code cannot be retrieved. A :exc:`TypeError` is raised if the object is a " +"built-in module, class, or function." msgstr "" "Retorna una lista de líneas de origen y el número de línea de inicio de un " "objeto. El argumento puede ser un objeto módulo, clase, método, función, " @@ -987,7 +1004,7 @@ msgstr "" "se encontró la primera línea de código en el archivo fuente original. Un :" "exc:`OSError` es lanzado si el código fuente no puede ser recuperado." -#: ../Doc/library/inspect.rst:562 ../Doc/library/inspect.rst:574 +#: ../Doc/library/inspect.rst:580 ../Doc/library/inspect.rst:594 msgid "" ":exc:`OSError` is raised instead of :exc:`IOError`, now an alias of the " "former." @@ -995,19 +1012,21 @@ msgstr "" ":exc:`OSError` se lanza en lugar de :exc:`IOError`, ahora un alias del " "primero." -#: ../Doc/library/inspect.rst:569 +#: ../Doc/library/inspect.rst:587 +#, fuzzy msgid "" "Return the text of the source code for an object. The argument may be a " "module, class, method, function, traceback, frame, or code object. The " "source code is returned as a single string. An :exc:`OSError` is raised if " -"the source code cannot be retrieved." +"the source code cannot be retrieved. A :exc:`TypeError` is raised if the " +"object is a built-in module, class, or function." msgstr "" "Retorna el texto del código fuente de un objeto. El argumento puede ser un " "objeto de módulo, clase, método, función, rastreo, marco o código. El " "código fuente se retorna como una sola cadena. Un :exc:`OSError` es lanzado " "si el código fuente no puede ser recuperado." -#: ../Doc/library/inspect.rst:581 +#: ../Doc/library/inspect.rst:601 msgid "" "Clean up indentation from docstrings that are indented to line up with " "blocks of code." @@ -1015,7 +1034,7 @@ msgstr "" "Limpiar la indentación de los docstrings que están indentados para alinearse " "con los bloques de código." -#: ../Doc/library/inspect.rst:584 +#: ../Doc/library/inspect.rst:604 msgid "" "All leading whitespace is removed from the first line. Any leading " "whitespace that can be uniformly removed from the second line onwards is " @@ -1028,11 +1047,11 @@ msgstr "" "al final se eliminan posteriormente. Además, todas las pestañas se expanden " "a los espacios." -#: ../Doc/library/inspect.rst:593 +#: ../Doc/library/inspect.rst:613 msgid "Introspecting callables with the Signature object" msgstr "Introspección de los invocables con el objeto Signature" -#: ../Doc/library/inspect.rst:597 +#: ../Doc/library/inspect.rst:617 msgid "" "The Signature object represents the call signature of a callable object and " "its return annotation. To retrieve a Signature object, use the :func:" @@ -1042,11 +1061,11 @@ msgstr "" "su anotación de retorno. Para recuperar un objeto Signature, utilice la " "función :func:`signature`." -#: ../Doc/library/inspect.rst:603 +#: ../Doc/library/inspect.rst:623 msgid "Return a :class:`Signature` object for the given ``callable``::" msgstr "Retorna un objeto :class:`Signature` para el ``callable`` dado::" -#: ../Doc/library/inspect.rst:620 +#: ../Doc/library/inspect.rst:640 msgid "" "Accepts a wide range of Python callables, from plain functions and classes " "to :func:`functools.partial` objects." @@ -1054,7 +1073,7 @@ msgstr "" "Acepta un amplio rango de invocables de Python, desde funciones y clases " "simples hasta objetos :func:`functools.partial`." -#: ../Doc/library/inspect.rst:623 +#: ../Doc/library/inspect.rst:643 msgid "" "For objects defined in modules using stringized annotations (``from " "__future__ import annotations``), :func:`signature` will attempt to " @@ -1073,7 +1092,7 @@ msgstr "" "de :func:`inspect.get_annotations()` para obtener instrucciones sobre cómo " "utilizar estos parámetros." -#: ../Doc/library/inspect.rst:632 +#: ../Doc/library/inspect.rst:652 msgid "" "Raises :exc:`ValueError` if no signature can be provided, and :exc:" "`TypeError` if that type of object is not supported. Also, if the " @@ -1087,7 +1106,7 @@ msgstr "" "llamadas ``eval()`` para invertir la conversión a cadenas de las " "anotaciones podrían generar cualquier tipo de excepción." -#: ../Doc/library/inspect.rst:638 +#: ../Doc/library/inspect.rst:658 msgid "" "A slash(/) in the signature of a function denotes that the parameters prior " "to it are positional-only. For more info, see :ref:`the FAQ entry on " @@ -1098,7 +1117,7 @@ msgstr "" "pregunta frecuente en parámetros solo posicionales `." -#: ../Doc/library/inspect.rst:642 +#: ../Doc/library/inspect.rst:662 msgid "" "``follow_wrapped`` parameter. Pass ``False`` to get a signature of " "``callable`` specifically (``callable.__wrapped__`` will not be used to " @@ -1108,11 +1127,11 @@ msgstr "" "``callable`` específicamente (``callable.__wrapped__`` no se usará para " "desenvolver los invocables decorados.)" -#: ../Doc/library/inspect.rst:647 +#: ../Doc/library/inspect.rst:667 msgid "``globals``, ``locals``, and ``eval_str`` parameters." msgstr "Parámetros ``globals``, ``locals``, y ``eval_str``" -#: ../Doc/library/inspect.rst:652 +#: ../Doc/library/inspect.rst:672 msgid "" "Some callables may not be introspectable in certain implementations of " "Python. For example, in CPython, some built-in functions defined in C " @@ -1122,7 +1141,7 @@ msgstr "" "implementaciones de Python. Por ejemplo, en CPython, algunas funciones " "incorporadas definidas en C no proporcionan metadatos sobre sus argumentos." -#: ../Doc/library/inspect.rst:659 +#: ../Doc/library/inspect.rst:679 msgid "" "A Signature object represents the call signature of a function and its " "return annotation. For each parameter accepted by the function it stores a :" @@ -1132,7 +1151,7 @@ msgstr "" "anotación de retorno. Por cada parámetro aceptado por la función, almacena " "un objeto :class:`Parameter` en su colección :attr:`parameters`." -#: ../Doc/library/inspect.rst:663 +#: ../Doc/library/inspect.rst:683 msgid "" "The optional *parameters* argument is a sequence of :class:`Parameter` " "objects, which is validated to check that there are no parameters with " @@ -1147,7 +1166,7 @@ msgstr "" "parámetros con valores por defecto siguen a los parámetros sin valores por " "defecto." -#: ../Doc/library/inspect.rst:669 +#: ../Doc/library/inspect.rst:689 msgid "" "The optional *return_annotation* argument, can be an arbitrary Python " "object, is the \"return\" annotation of the callable." @@ -1155,7 +1174,7 @@ msgstr "" "El argumento opcional *return_annotation*, puede ser un objeto Python " "arbitrario, es la anotación \"return\" del invocable." -#: ../Doc/library/inspect.rst:672 +#: ../Doc/library/inspect.rst:692 msgid "" "Signature objects are *immutable*. Use :meth:`Signature.replace` to make a " "modified copy." @@ -1163,17 +1182,18 @@ msgstr "" "Los objetos signature son *inmutables*. Usar :meth:`Signature.replace` para " "hacer una copia modificada." -#: ../Doc/library/inspect.rst:675 -msgid "Signature objects are picklable and hashable." +#: ../Doc/library/inspect.rst:695 +#, fuzzy +msgid "Signature objects are picklable and :term:`hashable`." msgstr "Los objetos Signature se pueden seleccionar y se pueden manipular." -#: ../Doc/library/inspect.rst:680 +#: ../Doc/library/inspect.rst:700 msgid "A special class-level marker to specify absence of a return annotation." msgstr "" "Un marcador especial de clase para especificar la ausencia de una anotación " "de retorno." -#: ../Doc/library/inspect.rst:684 +#: ../Doc/library/inspect.rst:704 msgid "" "An ordered mapping of parameters' names to the corresponding :class:" "`Parameter` objects. Parameters appear in strict definition order, " @@ -1183,7 +1203,7 @@ msgstr "" "objetos :class:`Parameter`. Los parámetros aparecen en estricto orden de " "definición, incluyendo parámetros de sólo palabras clave." -#: ../Doc/library/inspect.rst:688 ../Doc/library/inspect.rst:1012 +#: ../Doc/library/inspect.rst:708 ../Doc/library/inspect.rst:1034 msgid "" "Python only explicitly guaranteed that it preserved the declaration order of " "keyword-only parameters as of version 3.7, although in practice this order " @@ -1193,7 +1213,7 @@ msgstr "" "de los parámetros de sólo palabras clave a partir de la versión 3.7, aunque " "en la práctica este orden siempre se había conservado en Python 3." -#: ../Doc/library/inspect.rst:695 +#: ../Doc/library/inspect.rst:715 msgid "" "The \"return\" annotation for the callable. If the callable has no " "\"return\" annotation, this attribute is set to :attr:`Signature.empty`." @@ -1202,7 +1222,7 @@ msgstr "" "ninguna anotación de \"return\", este atributo se establece en :attr:" "`Signature.empty`." -#: ../Doc/library/inspect.rst:700 +#: ../Doc/library/inspect.rst:720 msgid "" "Create a mapping from positional and keyword arguments to parameters. " "Returns :class:`BoundArguments` if ``*args`` and ``**kwargs`` match the " @@ -1212,7 +1232,7 @@ msgstr "" "parámetros. Retorna :class:`BoundArguments` si ``*args`` y ``**kwargs`` " "coinciden con el signature, o lanza un :exc:`TypeError`." -#: ../Doc/library/inspect.rst:706 +#: ../Doc/library/inspect.rst:726 msgid "" "Works the same way as :meth:`Signature.bind`, but allows the omission of " "some required arguments (mimics :func:`functools.partial` behavior.) " @@ -1224,10 +1244,11 @@ msgstr "" "`functools.partial`.) Retorna :class:`BoundArguments`, o lanza un :exc:" "`TypeError` si los argumentos pasados no coinciden con la firma." -#: ../Doc/library/inspect.rst:713 +#: ../Doc/library/inspect.rst:733 +#, fuzzy msgid "" -"Create a new Signature instance based on the instance replace was invoked " -"on. It is possible to pass different ``parameters`` and/or " +"Create a new Signature instance based on the instance :meth:`replace` was " +"invoked on. It is possible to pass different ``parameters`` and/or " "``return_annotation`` to override the corresponding properties of the base " "signature. To remove return_annotation from the copied Signature, pass in :" "attr:`Signature.empty`." @@ -1238,7 +1259,7 @@ msgstr "" "la firma base. Para eliminar return_annotation del Signature copiado, pasar " "en :attr:`Signature.empty`." -#: ../Doc/library/inspect.rst:730 +#: ../Doc/library/inspect.rst:751 msgid "" "Return a :class:`Signature` (or its subclass) object for a given callable " "``obj``. Pass ``follow_wrapped=False`` to get a signature of ``obj`` " @@ -1251,15 +1272,15 @@ msgstr "" "``localns`` serán usados como los espacios de nombre cuando se resuelvan las " "anotaciones." -#: ../Doc/library/inspect.rst:735 +#: ../Doc/library/inspect.rst:756 msgid "This method simplifies subclassing of :class:`Signature`::" msgstr "Este método simplifica la subclasificación de :class:`Signature`::" -#: ../Doc/library/inspect.rst:744 +#: ../Doc/library/inspect.rst:765 msgid "``globalns`` and ``localns`` parameters." msgstr "Parámetros ``globalns`` y ``localns``." -#: ../Doc/library/inspect.rst:750 +#: ../Doc/library/inspect.rst:771 msgid "" "Parameter objects are *immutable*. Instead of modifying a Parameter object, " "you can use :meth:`Parameter.replace` to create a modified copy." @@ -1268,11 +1289,12 @@ msgstr "" "Parámetro, puedes usar :meth:`Parameter.replace` para crear una copia " "modificada." -#: ../Doc/library/inspect.rst:753 -msgid "Parameter objects are picklable and hashable." +#: ../Doc/library/inspect.rst:774 +#, fuzzy +msgid "Parameter objects are picklable and :term:`hashable`." msgstr "Los objetos Parámetro se pueden seleccionar y manipular." -#: ../Doc/library/inspect.rst:758 +#: ../Doc/library/inspect.rst:779 msgid "" "A special class-level marker to specify absence of default values and " "annotations." @@ -1280,7 +1302,7 @@ msgstr "" "Un marcador especial de clase para especificar la ausencia de valores " "predeterminados y anotaciones." -#: ../Doc/library/inspect.rst:763 +#: ../Doc/library/inspect.rst:784 msgid "" "The name of the parameter as a string. The name must be a valid Python " "identifier." @@ -1288,7 +1310,7 @@ msgstr "" "El nombre del parámetro como una cadena. El nombre debe ser un " "identificador Python válido." -#: ../Doc/library/inspect.rst:768 +#: ../Doc/library/inspect.rst:789 msgid "" "CPython generates implicit parameter names of the form ``.0`` on the code " "objects used to implement comprehensions and generator expressions." @@ -1297,14 +1319,14 @@ msgstr "" "objetos de código utilizados para implementar expresiones de comprensiones y " "generadores." -#: ../Doc/library/inspect.rst:772 +#: ../Doc/library/inspect.rst:793 msgid "" "These parameter names are exposed by this module as names like ``implicit0``." msgstr "" "Los nombres de estos parámetros son expuestos por este módulo como nombres " "como ``implicit0``." -#: ../Doc/library/inspect.rst:778 +#: ../Doc/library/inspect.rst:799 msgid "" "The default value for the parameter. If the parameter has no default value, " "this attribute is set to :attr:`Parameter.empty`." @@ -1312,7 +1334,7 @@ msgstr "" "El valor por defecto del parámetro. Si el parámetro no tiene un valor por " "defecto, este atributo se establece en :attr:`Parameter.empty`." -#: ../Doc/library/inspect.rst:783 +#: ../Doc/library/inspect.rst:804 msgid "" "The annotation for the parameter. If the parameter has no annotation, this " "attribute is set to :attr:`Parameter.empty`." @@ -1320,28 +1342,30 @@ msgstr "" "La anotación para el parámetro. Si el parámetro no tiene ninguna anotación, " "este atributo se establece como :attr:`Parameter.empty`." -#: ../Doc/library/inspect.rst:788 +#: ../Doc/library/inspect.rst:809 +#, fuzzy msgid "" -"Describes how argument values are bound to the parameter. Possible values " -"(accessible via :class:`Parameter`, like ``Parameter.KEYWORD_ONLY``):" +"Describes how argument values are bound to the parameter. The possible " +"values are accessible via :class:`Parameter` (like ``Parameter." +"KEYWORD_ONLY``), and support comparison and ordering, in the following order:" msgstr "" "Describe cómo los valores de los argumentos están vinculados al parámetro. " "Valores posibles (accesibles a través de :class:`Parameter`, como " "``Parameter.KEYWORD_ONLY``):" -#: ../Doc/library/inspect.rst:794 +#: ../Doc/library/inspect.rst:816 msgid "Name" msgstr "Nombre" -#: ../Doc/library/inspect.rst:794 +#: ../Doc/library/inspect.rst:816 msgid "Meaning" msgstr "Significado" -#: ../Doc/library/inspect.rst:796 +#: ../Doc/library/inspect.rst:818 msgid "*POSITIONAL_ONLY*" msgstr "*POSITIONAL_ONLY*" -#: ../Doc/library/inspect.rst:796 +#: ../Doc/library/inspect.rst:818 msgid "" "Value must be supplied as a positional argument. Positional only parameters " "are those which appear before a ``/`` entry (if present) in a Python " @@ -1352,11 +1376,11 @@ msgstr "" "está presente) en una definición de función de Python. aceptan sólo uno o " "dos parámetros) los aceptan." -#: ../Doc/library/inspect.rst:801 +#: ../Doc/library/inspect.rst:823 msgid "*POSITIONAL_OR_KEYWORD*" msgstr "*POSITIONAL_OR_KEYWORD*" -#: ../Doc/library/inspect.rst:801 +#: ../Doc/library/inspect.rst:823 msgid "" "Value may be supplied as either a keyword or positional argument (this is " "the standard binding behaviour for functions implemented in Python.)" @@ -1365,11 +1389,11 @@ msgstr "" "posicional (este es el comportamiento estándar de unión para las funciones " "implementadas en Python)" -#: ../Doc/library/inspect.rst:806 +#: ../Doc/library/inspect.rst:828 msgid "*VAR_POSITIONAL*" msgstr "*VAR_POSITIONAL*" -#: ../Doc/library/inspect.rst:806 +#: ../Doc/library/inspect.rst:828 msgid "" "A tuple of positional arguments that aren't bound to any other parameter. " "This corresponds to a ``*args`` parameter in a Python function definition." @@ -1378,11 +1402,11 @@ msgstr "" "parámetro. Esto corresponde a un parámetro ``*args`` en una definición de " "función Python." -#: ../Doc/library/inspect.rst:811 +#: ../Doc/library/inspect.rst:833 msgid "*KEYWORD_ONLY*" msgstr "*KEYWORD_ONLY*" -#: ../Doc/library/inspect.rst:811 +#: ../Doc/library/inspect.rst:833 msgid "" "Value must be supplied as a keyword argument. Keyword only parameters are " "those which appear after a ``*`` or ``*args`` entry in a Python function " @@ -1392,11 +1416,11 @@ msgstr "" "parámetros de sólo palabras clave son los que aparecen después de una " "entrada ``*`` o ``*args`` en una definición de función Python." -#: ../Doc/library/inspect.rst:816 +#: ../Doc/library/inspect.rst:838 msgid "*VAR_KEYWORD*" msgstr "*VAR_KEYWORD*" -#: ../Doc/library/inspect.rst:816 +#: ../Doc/library/inspect.rst:838 msgid "" "A dict of keyword arguments that aren't bound to any other parameter. This " "corresponds to a ``**kwargs`` parameter in a Python function definition." @@ -1405,21 +1429,21 @@ msgstr "" "otro parámetro. Esto corresponde a un parámetro ``**kwargs`` en una " "definición de función Python." -#: ../Doc/library/inspect.rst:822 +#: ../Doc/library/inspect.rst:844 msgid "Example: print all keyword-only arguments without default values::" msgstr "" "Ejemplo: imprimir todos los argumentos de sólo palabras clave sin valores " "por defecto::" -#: ../Doc/library/inspect.rst:836 +#: ../Doc/library/inspect.rst:858 msgid "Describes a enum value of Parameter.kind." msgstr "Describe un valor enum como *Parameter.kind*." -#: ../Doc/library/inspect.rst:840 +#: ../Doc/library/inspect.rst:862 msgid "Example: print all descriptions of arguments::" msgstr "Ejemplo: imprimir todas las descripciones de los argumentos:" -#: ../Doc/library/inspect.rst:855 +#: ../Doc/library/inspect.rst:877 msgid "" "Create a new Parameter instance based on the instance replaced was invoked " "on. To override a :class:`Parameter` attribute, pass the corresponding " @@ -1431,7 +1455,7 @@ msgstr "" "argumento correspondiente. Para eliminar un valor por defecto y/o una " "anotación de un parámetro, pasa :attr:`Parameter.empty`." -#: ../Doc/library/inspect.rst:873 +#: ../Doc/library/inspect.rst:895 msgid "" "In Python 3.3 Parameter objects were allowed to have ``name`` set to " "``None`` if their ``kind`` was set to ``POSITIONAL_ONLY``. This is no longer " @@ -1441,7 +1465,7 @@ msgstr "" "puesto en ``None`` si su ``kind`` estaba puesto en ``POSITIONAL_ONLY``. Esto " "ya no está permitido." -#: ../Doc/library/inspect.rst:880 +#: ../Doc/library/inspect.rst:902 msgid "" "Result of a :meth:`Signature.bind` or :meth:`Signature.bind_partial` call. " "Holds the mapping of arguments to the function's parameters." @@ -1450,7 +1474,7 @@ msgstr "" "bind_partial`. Mantiene el mapeo de los argumentos a los parámetros de la " "función." -#: ../Doc/library/inspect.rst:885 +#: ../Doc/library/inspect.rst:907 msgid "" "A mutable mapping of parameters' names to arguments' values. Contains only " "explicitly bound arguments. Changes in :attr:`arguments` will reflect in :" @@ -1460,7 +1484,7 @@ msgstr "" "argumentos. Contiene solo argumentos vinculados explícitamente. Los cambios " "en :attr:`arguments` se reflejarán en :attr:`args` y :attr:`kwargs`." -#: ../Doc/library/inspect.rst:889 +#: ../Doc/library/inspect.rst:911 msgid "" "Should be used in conjunction with :attr:`Signature.parameters` for any " "argument processing purposes." @@ -1468,7 +1492,7 @@ msgstr "" "Debe ser usado en conjunto con :attr:`Signature.parameters` para cualquier " "propósito de procesamiento de argumentos." -#: ../Doc/library/inspect.rst:894 +#: ../Doc/library/inspect.rst:916 msgid "" "Arguments for which :meth:`Signature.bind` or :meth:`Signature.bind_partial` " "relied on a default value are skipped. However, if needed, use :meth:" @@ -1478,7 +1502,7 @@ msgstr "" "bind_partial` se basaban en un valor por defecto se saltan. Sin embargo, si " "es necesario, use :meth:`BoundArguments.apply_defaults` para añadirlos." -#: ../Doc/library/inspect.rst:899 +#: ../Doc/library/inspect.rst:921 msgid "" ":attr:`arguments` is now of type :class:`dict`. Formerly, it was of type :" "class:`collections.OrderedDict`." @@ -1486,7 +1510,7 @@ msgstr "" ":attr:`arguments` ahora es de tipo :class:`dict`. Anteriormente, era de " "tipo :class:`collections.OrderedDict`." -#: ../Doc/library/inspect.rst:905 +#: ../Doc/library/inspect.rst:927 msgid "" "A tuple of positional arguments values. Dynamically computed from the :attr:" "`arguments` attribute." @@ -1494,7 +1518,7 @@ msgstr "" "Una tupla de valores de argumentos posicionales. Calculados dinámicamente a " "partir del atributo :attr:`arguments`." -#: ../Doc/library/inspect.rst:910 +#: ../Doc/library/inspect.rst:932 msgid "" "A dict of keyword arguments values. Dynamically computed from the :attr:" "`arguments` attribute." @@ -1502,29 +1526,29 @@ msgstr "" "Un diccionario de valores de argumentos de palabras clave. Calculados " "dinámicamente a partir del atributo :attr:`arguments`." -#: ../Doc/library/inspect.rst:915 +#: ../Doc/library/inspect.rst:937 msgid "A reference to the parent :class:`Signature` object." msgstr "Una referencia al objeto padre :class:`Signature`." -#: ../Doc/library/inspect.rst:919 +#: ../Doc/library/inspect.rst:941 msgid "Set default values for missing arguments." msgstr "Establece valores por defecto para los argumentos que faltan." -#: ../Doc/library/inspect.rst:921 +#: ../Doc/library/inspect.rst:943 msgid "" "For variable-positional arguments (``*args``) the default is an empty tuple." msgstr "" "Para los argumentos de posición variable (``*args``) el valor por defecto es " "una tupla vacía." -#: ../Doc/library/inspect.rst:924 +#: ../Doc/library/inspect.rst:946 msgid "" "For variable-keyword arguments (``**kwargs``) the default is an empty dict." msgstr "" "Para los argumentos de palabras clave variables (``**kwargs``) el valor por " "defecto es un diccionario vacío." -#: ../Doc/library/inspect.rst:937 +#: ../Doc/library/inspect.rst:959 msgid "" "The :attr:`args` and :attr:`kwargs` properties can be used to invoke " "functions::" @@ -1532,20 +1556,20 @@ msgstr "" "Las propiedades :attr:`args` y :attr:`kwargs` pueden ser usadas para invocar " "funciones::" -#: ../Doc/library/inspect.rst:950 +#: ../Doc/library/inspect.rst:972 msgid ":pep:`362` - Function Signature Object." msgstr ":pep:`362` - Función Objeto Signature." -#: ../Doc/library/inspect.rst:951 +#: ../Doc/library/inspect.rst:973 msgid "The detailed specification, implementation details and examples." msgstr "" "La especificación detallada, los detalles de implementación y los ejemplos." -#: ../Doc/library/inspect.rst:957 +#: ../Doc/library/inspect.rst:979 msgid "Classes and functions" msgstr "Clases y funciones" -#: ../Doc/library/inspect.rst:961 +#: ../Doc/library/inspect.rst:983 msgid "" "Arrange the given list of classes into a hierarchy of nested lists. Where a " "nested list appears, it contains classes derived from the class whose entry " @@ -1564,7 +1588,7 @@ msgstr "" "clases que utilizan la herencia múltiple y sus descendientes aparecerán " "varias veces." -#: ../Doc/library/inspect.rst:972 +#: ../Doc/library/inspect.rst:994 msgid "" "Get the names and default values of a Python function's parameters. A :term:" "`named tuple` is returned:" @@ -1572,7 +1596,7 @@ msgstr "" "Obtener los nombres y valores por defecto de los parámetros de una función " "de Python. Se retorna un :term:`named tuple`:" -#: ../Doc/library/inspect.rst:975 +#: ../Doc/library/inspect.rst:997 msgid "" "``FullArgSpec(args, varargs, varkw, defaults, kwonlyargs, kwonlydefaults, " "annotations)``" @@ -1580,7 +1604,7 @@ msgstr "" "``FullArgSpec(args, varargs, varkw, defaults, kwonlyargs, kwonlydefaults, " "annotations)``" -#: ../Doc/library/inspect.rst:978 +#: ../Doc/library/inspect.rst:1000 msgid "" "*args* is a list of the positional parameter names. *varargs* is the name of " "the ``*`` parameter or ``None`` if arbitrary positional arguments are not " @@ -1608,7 +1632,7 @@ msgstr "" "las anotaciones. La tecla especial ``\"return\"`` se utiliza para informar " "de la anotación del valor de retorno de la función (si existe)." -#: ../Doc/library/inspect.rst:993 +#: ../Doc/library/inspect.rst:1015 msgid "" "Note that :func:`signature` and :ref:`Signature Object ` provide the recommended API for callable introspection, and support " @@ -1624,7 +1648,7 @@ msgstr "" "función se conserva principalmente para su uso en el código que necesita " "mantener la compatibilidad con la API de módulos de ``inspect`` de Python 2." -#: ../Doc/library/inspect.rst:1000 +#: ../Doc/library/inspect.rst:1022 msgid "" "This function is now based on :func:`signature`, but still ignores " "``__wrapped__`` attributes and includes the already bound first parameter in " @@ -1634,7 +1658,7 @@ msgstr "" "atributos ``__wrapped__`` e incluye el primer parámetro ya ligado en la " "salida del signature para los métodos ligados." -#: ../Doc/library/inspect.rst:1005 +#: ../Doc/library/inspect.rst:1027 msgid "" "This method was previously documented as deprecated in favour of :func:" "`signature` in Python 3.5, but that decision has been reversed in order to " @@ -1646,7 +1670,7 @@ msgstr "" "una interfaz estándar claramente soportada para el código de una sola fuente " "en Python 2/3 que se aleja de la API heredada :func:`getargspec`." -#: ../Doc/library/inspect.rst:1020 +#: ../Doc/library/inspect.rst:1042 msgid "" "Get information about arguments passed into a particular frame. A :term:" "`named tuple` ``ArgInfo(args, varargs, keywords, locals)`` is returned. " @@ -1660,11 +1684,11 @@ msgstr "" "y *keywords* son los nombres de los argumentos ``*`` y ``**`` o ``None``. " "*locals* es el diccionario local del marco dado." -#: ../Doc/library/inspect.rst:1027 ../Doc/library/inspect.rst:1037 +#: ../Doc/library/inspect.rst:1049 ../Doc/library/inspect.rst:1059 msgid "This function was inadvertently marked as deprecated in Python 3.5." msgstr "Esta función fue inadvertidamente marcada como obsoleta en Python 3.5." -#: ../Doc/library/inspect.rst:1032 +#: ../Doc/library/inspect.rst:1054 msgid "" "Format a pretty argument spec from the four values returned by :func:" "`getargvalues`. The format\\* arguments are the corresponding optional " @@ -1675,7 +1699,7 @@ msgstr "" "correspondientes funciones de formato opcionales que se llaman para " "convertir nombres y valores en cadenas." -#: ../Doc/library/inspect.rst:1042 +#: ../Doc/library/inspect.rst:1064 msgid "" "Return a tuple of class cls's base classes, including cls, in method " "resolution order. No class appears more than once in this tuple. Note that " @@ -1688,7 +1712,7 @@ msgstr "" "cls. A menos que se utilice un meta tipo muy peculiar definido por el " "usuario, cls será el primer elemento de la tupla." -#: ../Doc/library/inspect.rst:1050 +#: ../Doc/library/inspect.rst:1072 msgid "" "Bind the *args* and *kwds* to the argument names of the Python function or " "method *func*, as if it was called with them. For bound methods, bind also " @@ -1710,12 +1734,12 @@ msgstr "" "excepción por firma incompatible, se plantea una excepción del mismo tipo y " "del mismo o similar mensaje. Por ejemplo::" -#: ../Doc/library/inspect.rst:1073 +#: ../Doc/library/inspect.rst:1096 msgid "Use :meth:`Signature.bind` and :meth:`Signature.bind_partial` instead." msgstr "" "Usa :meth:`Signature.bind` y :meth:`Signature.bind_partial` en su lugar." -#: ../Doc/library/inspect.rst:1079 +#: ../Doc/library/inspect.rst:1102 msgid "" "Get the mapping of external name references in a Python function or method " "*func* to their current values. A :term:`named tuple` " @@ -1735,13 +1759,13 @@ msgstr "" "nombres referenciados en la función que no pudieron ser resueltos en " "absoluto dados los actuales globals y builtins del módulo." -#: ../Doc/library/inspect.rst:1088 +#: ../Doc/library/inspect.rst:1111 msgid "" ":exc:`TypeError` is raised if *func* is not a Python function or method." msgstr "" ":exc:`TypeError` es lanzado si *func* no es una función o método de Python." -#: ../Doc/library/inspect.rst:1095 +#: ../Doc/library/inspect.rst:1118 msgid "" "Get the object wrapped by *func*. It follows the chain of :attr:" "`__wrapped__` attributes returning the last object in the chain." @@ -1749,7 +1773,7 @@ msgstr "" "Obtiene el objeto envuelto por *func*. Sigue la cadena de atributos :attr:" "`__wrapped__` retornando el último objeto de la cadena." -#: ../Doc/library/inspect.rst:1098 +#: ../Doc/library/inspect.rst:1121 msgid "" "*stop* is an optional callback accepting an object in the wrapper chain as " "its sole argument that allows the unwrapping to be terminated early if the " @@ -1766,15 +1790,15 @@ msgstr "" "desenvolvimiento si algún objeto de la cadena tiene definido el atributo " "``__signature__``." -#: ../Doc/library/inspect.rst:1105 +#: ../Doc/library/inspect.rst:1128 msgid ":exc:`ValueError` is raised if a cycle is encountered." msgstr ":exc:`ValueError` es lanzado si se encuentra un ciclo." -#: ../Doc/library/inspect.rst:1112 +#: ../Doc/library/inspect.rst:1135 msgid "Compute the annotations dict for an object." msgstr "Calcular el diccionario de anotaciones de un objeto." -#: ../Doc/library/inspect.rst:1114 +#: ../Doc/library/inspect.rst:1137 msgid "" "``obj`` may be a callable, class, or module. Passing in an object of any " "other type raises :exc:`TypeError`." @@ -1782,7 +1806,7 @@ msgstr "" "``obj`` puede ser un invocable, clase o módulo. Al pasar un objeto de " "cualquier otro tipo, se genera :exc:`TypeError`." -#: ../Doc/library/inspect.rst:1117 +#: ../Doc/library/inspect.rst:1140 msgid "" "Returns a dict. ``get_annotations()`` returns a new dict every time it's " "called; calling it twice on the same object will return two different but " @@ -1792,11 +1816,11 @@ msgstr "" "cada vez que se invoca; llamarlo dos veces en el mismo objeto retornara dos " "diccionarios diferentes pero equivalentes." -#: ../Doc/library/inspect.rst:1121 +#: ../Doc/library/inspect.rst:1144 msgid "This function handles several details for you:" msgstr "Esta función maneja varios detalles por usted:" -#: ../Doc/library/inspect.rst:1123 +#: ../Doc/library/inspect.rst:1146 msgid "" "If ``eval_str`` is true, values of type ``str`` will be un-stringized using :" "func:`eval()`. This is intended for use with stringized annotations (``from " @@ -1806,7 +1830,7 @@ msgstr "" "cadenas usando :func:`eval()`. La intención de este diseño es su uso con " "anotaciones convertidas a cadenas (``from __future__ import annotations``)." -#: ../Doc/library/inspect.rst:1127 +#: ../Doc/library/inspect.rst:1150 msgid "" "If ``obj`` doesn't have an annotations dict, returns an empty dict. " "(Functions and methods always have an annotations dict; classes, modules, " @@ -1817,7 +1841,7 @@ msgstr "" "anotaciones; las clases, los módulos y otros tipos de intocables pueden no " "tenerlo)." -#: ../Doc/library/inspect.rst:1131 +#: ../Doc/library/inspect.rst:1154 msgid "" "Ignores inherited annotations on classes. If a class doesn't have its own " "annotations dict, returns an empty dict." @@ -1825,7 +1849,7 @@ msgstr "" "Ignora las anotaciones heredadas en las clases. Si una clase no tiene su " "propio diccionario de anotaciones, retorna un diccionario vacío." -#: ../Doc/library/inspect.rst:1133 +#: ../Doc/library/inspect.rst:1156 msgid "" "All accesses to object members and dict values are done using ``getattr()`` " "and ``dict.get()`` for safety." @@ -1833,11 +1857,11 @@ msgstr "" "Todos los accesos a los miembros del objeto y a los valores del diccionario " "se realizan mediante ``getattr()`` y ``dict.get()`` para mayor seguridad." -#: ../Doc/library/inspect.rst:1135 +#: ../Doc/library/inspect.rst:1158 msgid "Always, always, always returns a freshly created dict." msgstr "Siempre, siempre, siempre retorna un dict recién creado." -#: ../Doc/library/inspect.rst:1137 +#: ../Doc/library/inspect.rst:1160 msgid "" "``eval_str`` controls whether or not values of type ``str`` are replaced " "with the result of calling :func:`eval()` on those values:" @@ -1845,7 +1869,7 @@ msgstr "" "``eval_str`` controla si los valores del tipo ``str`` se sustituyen o no " "por el resultado de llamar a :func:`eval()` sobre esos valores:" -#: ../Doc/library/inspect.rst:1140 +#: ../Doc/library/inspect.rst:1163 msgid "" "If eval_str is true, :func:`eval()` is called on values of type ``str``. " "(Note that ``get_annotations`` doesn't catch exceptions; if :func:`eval()` " @@ -1857,14 +1881,14 @@ msgstr "" "`eval()` genera una excepción, desenrollará la pila más allá de la llamada " "``get_annotations``)." -#: ../Doc/library/inspect.rst:1144 +#: ../Doc/library/inspect.rst:1167 msgid "" "If eval_str is false (the default), values of type ``str`` are unchanged." msgstr "" "Si eval_str es false (el valor predeterminado), los valores del tipo " "``str`` no cambian." -#: ../Doc/library/inspect.rst:1146 +#: ../Doc/library/inspect.rst:1169 msgid "" "``globals`` and ``locals`` are passed in to :func:`eval()`; see the " "documentation for :func:`eval()` for more information. If ``globals`` or " @@ -1877,12 +1901,12 @@ msgstr "" "valor con un valor predeterminado específico del contexto, supeditado a " "``type(obj)``:" -#: ../Doc/library/inspect.rst:1151 +#: ../Doc/library/inspect.rst:1174 msgid "If ``obj`` is a module, ``globals`` defaults to ``obj.__dict__``." msgstr "" "Si ``obj`` es un módulo, ``globals`` por defecto es ``obj.__dict__``." -#: ../Doc/library/inspect.rst:1152 +#: ../Doc/library/inspect.rst:1175 msgid "" "If ``obj`` is a class, ``globals`` defaults to ``sys.modules[obj.__module__]." "__dict__`` and ``locals`` defaults to the ``obj`` class namespace." @@ -1891,7 +1915,7 @@ msgstr "" "modules[obj.__module__].__dict__`` y ``locals`` es de forma predeterminada " "el espacio de nombres de clase ``obj`` ." -#: ../Doc/library/inspect.rst:1155 +#: ../Doc/library/inspect.rst:1178 msgid "" "If ``obj`` is a callable, ``globals`` defaults to ``obj.__globals__``, " "although if ``obj`` is a wrapped function (using ``functools." @@ -1901,7 +1925,7 @@ msgstr "" "__globals__``, aunque si ``obj`` es una función envuelta (usando " "``functools.update_wrapper()``) primero se desenvuelve." -#: ../Doc/library/inspect.rst:1159 +#: ../Doc/library/inspect.rst:1182 msgid "" "Calling ``get_annotations`` is best practice for accessing the annotations " "dict of any object. See :ref:`annotations-howto` for more information on " @@ -1912,11 +1936,11 @@ msgstr "" "howto` para obtener más información sobre las prácticas recomendadas de " "anotaciones." -#: ../Doc/library/inspect.rst:1169 +#: ../Doc/library/inspect.rst:1192 msgid "The interpreter stack" msgstr "La pila del interprete" -#: ../Doc/library/inspect.rst:1171 +#: ../Doc/library/inspect.rst:1194 msgid "" "Some of the following functions return :class:`FrameInfo` objects. For " "backwards compatibility these objects allow tuple-like operations on all " @@ -1928,11 +1952,11 @@ msgstr "" "similares a tuplas en todos los atributos excepto ``positions``. Este " "comportamiento se considera obsoleto y puede eliminarse en el futuro." -#: ../Doc/library/inspect.rst:1180 +#: ../Doc/library/inspect.rst:1203 msgid "The :ref:`frame object ` that the record corresponds to." msgstr "El :ref:`frame object ` al que corresponde el registro." -#: ../Doc/library/inspect.rst:1184 +#: ../Doc/library/inspect.rst:1207 msgid "" "The file name associated with the code being executed by the frame this " "record corresponds to." @@ -1940,7 +1964,7 @@ msgstr "" "El nombre del archivo asociado con el código que está ejecutando el marco al " "que corresponde este registro." -#: ../Doc/library/inspect.rst:1189 +#: ../Doc/library/inspect.rst:1212 msgid "" "The line number of the current line associated with the code being executed " "by the frame this record corresponds to." @@ -1948,7 +1972,7 @@ msgstr "" "El número de línea de la línea actual asociada con el código que está " "ejecutando el marco al que corresponde este registro." -#: ../Doc/library/inspect.rst:1194 +#: ../Doc/library/inspect.rst:1217 msgid "" "The function name that is being executed by the frame this record " "corresponds to." @@ -1956,7 +1980,7 @@ msgstr "" "El nombre de la función que está ejecutando el marco al que corresponde este " "registro." -#: ../Doc/library/inspect.rst:1198 +#: ../Doc/library/inspect.rst:1221 msgid "" "A list of lines of context from the source code that's being executed by the " "frame this record corresponds to." @@ -1964,7 +1988,7 @@ msgstr "" "Una lista de líneas de contexto del código fuente que ejecuta el marco al " "que corresponde este registro." -#: ../Doc/library/inspect.rst:1203 ../Doc/library/inspect.rst:1242 +#: ../Doc/library/inspect.rst:1226 ../Doc/library/inspect.rst:1265 msgid "" "The index of the current line being executed in the :attr:`code_context` " "list." @@ -1972,7 +1996,7 @@ msgstr "" "El índice de la línea actual que se está ejecutando en la lista :attr:" "`code_context`." -#: ../Doc/library/inspect.rst:1207 +#: ../Doc/library/inspect.rst:1230 msgid "" "A :class:`dis.Positions` object containing the start line number, end line " "number, start column offset, and end column offset associated with the " @@ -1983,11 +2007,11 @@ msgstr "" "desplazamiento de columna final asociado con la instrucción que ejecuta el " "marco al que corresponde este registro." -#: ../Doc/library/inspect.rst:1211 +#: ../Doc/library/inspect.rst:1234 msgid "Return a :term:`named tuple` instead of a :class:`tuple`." msgstr "Retorna un :term:`named tuple` en lugar de un :class:`tuple`." -#: ../Doc/library/inspect.rst:1214 +#: ../Doc/library/inspect.rst:1237 msgid "" ":class:`!FrameInfo` is now a class instance (that is backwards compatible " "with the previous :term:`named tuple`)." @@ -1995,7 +2019,7 @@ msgstr "" ":class:`!FrameInfo` ahora es una instancia de clase (que es retrocompatible " "con el anterior :term:`named tuple`)." -#: ../Doc/library/inspect.rst:1223 +#: ../Doc/library/inspect.rst:1246 msgid "" "The file name associated with the code being executed by the frame this " "traceback corresponds to." @@ -2003,7 +2027,7 @@ msgstr "" "El nombre de archivo asociado con el código que ejecuta el marco al que " "corresponde este rastreo." -#: ../Doc/library/inspect.rst:1228 +#: ../Doc/library/inspect.rst:1251 msgid "" "The line number of the current line associated with the code being executed " "by the frame this traceback corresponds to." @@ -2011,7 +2035,7 @@ msgstr "" "El número de línea de la línea actual asociada con el código que está " "ejecutando el marco al que corresponde este rastreo." -#: ../Doc/library/inspect.rst:1233 +#: ../Doc/library/inspect.rst:1256 msgid "" "The function name that is being executed by the frame this traceback " "corresponds to." @@ -2019,7 +2043,7 @@ msgstr "" "El nombre de la función que está ejecutando el marco al que corresponde este " "rastreo." -#: ../Doc/library/inspect.rst:1237 +#: ../Doc/library/inspect.rst:1260 msgid "" "A list of lines of context from the source code that's being executed by the " "frame this traceback corresponds to." @@ -2027,7 +2051,7 @@ msgstr "" "Una lista de líneas de contexto del código fuente que ejecuta el marco al " "que corresponde este rastreo." -#: ../Doc/library/inspect.rst:1246 +#: ../Doc/library/inspect.rst:1269 msgid "" "A :class:`dis.Positions` object containing the start line number, end line " "number, start column offset, and end column offset associated with the " @@ -2038,7 +2062,7 @@ msgstr "" "desplazamiento de columna final asociado con la instrucción que ejecuta el " "marco al que corresponde este rastreo." -#: ../Doc/library/inspect.rst:1251 +#: ../Doc/library/inspect.rst:1274 msgid "" ":class:`!Traceback` is now a class instance (that is backwards compatible " "with the previous :term:`named tuple`)." @@ -2046,7 +2070,7 @@ msgstr "" ":class:`!Traceback` ahora es una instancia de clase (que es retrocompatible " "con el anterior :term:`named tuple`)." -#: ../Doc/library/inspect.rst:1258 +#: ../Doc/library/inspect.rst:1281 msgid "" "Keeping references to frame objects, as found in the first element of the " "frame records these functions return, can cause your program to create " @@ -2067,7 +2091,7 @@ msgstr "" "evitar la destrucción retardada de los objetos y el aumento del consumo de " "memoria que se produce." -#: ../Doc/library/inspect.rst:1266 +#: ../Doc/library/inspect.rst:1289 msgid "" "Though the cycle detector will catch these, destruction of the frames (and " "local variables) can be made deterministic by removing the cycle in a :" @@ -2080,7 +2104,7 @@ msgstr "" "detector de ciclos fue desactivado cuando se compiló Python o usando :func:" "`gc.disable`. Por ejemplo::" -#: ../Doc/library/inspect.rst:1278 +#: ../Doc/library/inspect.rst:1301 msgid "" "If you want to keep the frame around (for example to print a traceback " "later), you can also break reference cycles by using the :meth:`frame.clear` " @@ -2090,7 +2114,7 @@ msgstr "" "traceback más tarde), también puedes romper los ciclos de referencia " "utilizando el método :meth:`frame.clear`." -#: ../Doc/library/inspect.rst:1282 +#: ../Doc/library/inspect.rst:1305 msgid "" "The optional *context* argument supported by most of these functions " "specifies the number of lines of context to return, which are centered " @@ -2100,7 +2124,7 @@ msgstr "" "funciones, especifica el número de líneas de contexto a retornar, que se " "centran en la línea actual." -#: ../Doc/library/inspect.rst:1289 +#: ../Doc/library/inspect.rst:1312 msgid "" "Get information about a frame or traceback object. A :class:`Traceback` " "object is returned." @@ -2108,12 +2132,12 @@ msgstr "" "Obtiene información sobre un marco o un objeto de rastreo. Se retorna un " "objeto :class:`Traceback`." -#: ../Doc/library/inspect.rst:1292 +#: ../Doc/library/inspect.rst:1315 msgid "A :class:`Traceback` object is returned instead of a named tuple." msgstr "" "Se retorna un objeto :class:`Traceback` en lugar de una tupla con nombre." -#: ../Doc/library/inspect.rst:1297 +#: ../Doc/library/inspect.rst:1320 msgid "" "Get a list of :class:`FrameInfo` objects for a frame and all outer frames. " "These frames represent the calls that lead to the creation of *frame*. The " @@ -2126,8 +2150,8 @@ msgstr "" "*frame*; la última entrada representa la llamada más externa en la pila de " "*frame*." -#: ../Doc/library/inspect.rst:1302 ../Doc/library/inspect.rst:1317 -#: ../Doc/library/inspect.rst:1343 ../Doc/library/inspect.rst:1358 +#: ../Doc/library/inspect.rst:1325 ../Doc/library/inspect.rst:1340 +#: ../Doc/library/inspect.rst:1366 ../Doc/library/inspect.rst:1381 msgid "" "A list of :term:`named tuples ` ``FrameInfo(frame, filename, " "lineno, function, code_context, index)`` is returned." @@ -2135,12 +2159,12 @@ msgstr "" "Una lista de :term:`named tuples ` ``FrameInfo(frame, filename, " "lineno, function, code_context, index)`` es retornada." -#: ../Doc/library/inspect.rst:1307 ../Doc/library/inspect.rst:1322 -#: ../Doc/library/inspect.rst:1348 ../Doc/library/inspect.rst:1363 +#: ../Doc/library/inspect.rst:1330 ../Doc/library/inspect.rst:1345 +#: ../Doc/library/inspect.rst:1371 ../Doc/library/inspect.rst:1386 msgid "A list of :class:`FrameInfo` objects is returned." msgstr "Se retorna una lista de objetos :class:`FrameInfo`." -#: ../Doc/library/inspect.rst:1312 +#: ../Doc/library/inspect.rst:1335 msgid "" "Get a list of :class:`FrameInfo` objects for a traceback's frame and all " "inner frames. These frames represent calls made as a consequence of " @@ -2152,11 +2176,11 @@ msgstr "" "como consecuencia de *frame*. La primera entrada de la lista representa " "*traceback*; la última entrada representa dónde se generó la excepción." -#: ../Doc/library/inspect.rst:1327 +#: ../Doc/library/inspect.rst:1350 msgid "Return the frame object for the caller's stack frame." msgstr "Retorna el objeto marco para el marco de la pila del que llama." -#: ../Doc/library/inspect.rst:1331 +#: ../Doc/library/inspect.rst:1354 msgid "" "This function relies on Python stack frame support in the interpreter, which " "isn't guaranteed to exist in all implementations of Python. If running in " @@ -2168,7 +2192,7 @@ msgstr "" "de Python. Si se ejecuta en una implementación sin soporte de marcos de " "pila de Python, esta función retorna ``None``." -#: ../Doc/library/inspect.rst:1339 +#: ../Doc/library/inspect.rst:1362 msgid "" "Return a list of :class:`FrameInfo` objects for the caller's stack. The " "first entry in the returned list represents the caller; the last entry " @@ -2178,7 +2202,7 @@ msgstr "" "La primera entrada en la lista retornada representa al que llama; la última " "entrada representa la llamada más externa de la pila." -#: ../Doc/library/inspect.rst:1353 +#: ../Doc/library/inspect.rst:1376 msgid "" "Return a list of :class:`FrameInfo` objects for the stack between the " "current frame and the frame in which an exception currently being handled " @@ -2190,11 +2214,11 @@ msgstr "" "actualmente. La primera entrada en la lista representa al que llama; la " "última entrada representa dónde se generó la excepción." -#: ../Doc/library/inspect.rst:1367 +#: ../Doc/library/inspect.rst:1390 msgid "Fetching attributes statically" msgstr "Obteniendo atributos estáticamente" -#: ../Doc/library/inspect.rst:1369 +#: ../Doc/library/inspect.rst:1392 msgid "" "Both :func:`getattr` and :func:`hasattr` can trigger code execution when " "fetching or checking for the existence of attributes. Descriptors, like " @@ -2206,7 +2230,7 @@ msgstr "" "descriptores, como las propiedades, serán invocados y se podrá llamar a :" "meth:`__getattr__` y :meth:`__getattribute__`." -#: ../Doc/library/inspect.rst:1374 +#: ../Doc/library/inspect.rst:1397 msgid "" "For cases where you want passive introspection, like documentation tools, " "this can be inconvenient. :func:`getattr_static` has the same signature as :" @@ -2217,7 +2241,7 @@ msgstr "" "`getattr_static` tiene la misma firma que :func:`getattr` pero evita la " "ejecución de código cuando obtiene atributos." -#: ../Doc/library/inspect.rst:1380 +#: ../Doc/library/inspect.rst:1403 msgid "" "Retrieve attributes without triggering dynamic lookup via the descriptor " "protocol, :meth:`__getattr__` or :meth:`__getattribute__`." @@ -2225,7 +2249,7 @@ msgstr "" "Recuperar los atributos sin activar la búsqueda dinámica a través del " "protocolo descriptor, :meth:`__getattr__` o :meth:`__getattribute__`." -#: ../Doc/library/inspect.rst:1383 +#: ../Doc/library/inspect.rst:1406 msgid "" "Note: this function may not be able to retrieve all attributes that getattr " "can fetch (like dynamically created attributes) and may find attributes that " @@ -2238,7 +2262,7 @@ msgstr "" "AttributeError). También puede retornar objetos descriptores en lugar de " "miembros de la instancia." -#: ../Doc/library/inspect.rst:1389 +#: ../Doc/library/inspect.rst:1412 msgid "" "If the instance :attr:`~object.__dict__` is shadowed by another member (for " "example a property) then this function will be unable to find instance " @@ -2248,7 +2272,7 @@ msgstr "" "(por ejemplo una propiedad) entonces esta función no podrá encontrar " "miembros de la instancia." -#: ../Doc/library/inspect.rst:1395 +#: ../Doc/library/inspect.rst:1418 msgid "" ":func:`getattr_static` does not resolve descriptors, for example slot " "descriptors or getset descriptors on objects implemented in C. The " @@ -2259,7 +2283,7 @@ msgstr "" "implementados en C. El objeto descriptor se retorna en lugar del atributo " "subyacente." -#: ../Doc/library/inspect.rst:1399 +#: ../Doc/library/inspect.rst:1422 msgid "" "You can handle these with code like the following. Note that for arbitrary " "getset descriptors invoking these may trigger code execution::" @@ -2268,11 +2292,12 @@ msgstr "" "invocación de los descriptores de getset arbitrarios pueden desencadenar la " "ejecución del código::" -#: ../Doc/library/inspect.rst:1425 -msgid "Current State of Generators and Coroutines" +#: ../Doc/library/inspect.rst:1448 +#, fuzzy +msgid "Current State of Generators, Coroutines, and Asynchronous Generators" msgstr "Estado actual de los Generadores y las Corutinas" -#: ../Doc/library/inspect.rst:1427 +#: ../Doc/library/inspect.rst:1450 msgid "" "When implementing coroutine schedulers and for other advanced uses of " "generators, it is useful to determine whether a generator is currently " @@ -2286,31 +2311,32 @@ msgstr "" "terminado. :func:`getgeneratorstate` permite determinar fácilmente el estado " "actual de un generador." -#: ../Doc/library/inspect.rst:1435 +#: ../Doc/library/inspect.rst:1458 msgid "Get current state of a generator-iterator." msgstr "Obtener el estado actual de un generador-iterador." -#: ../Doc/library/inspect.rst:1441 ../Doc/library/inspect.rst:1456 +#: ../Doc/library/inspect.rst:1464 ../Doc/library/inspect.rst:1479 +#: ../Doc/library/inspect.rst:1495 msgid "Possible states are:" msgstr "Los posibles estados son:" -#: ../Doc/library/inspect.rst:1438 +#: ../Doc/library/inspect.rst:1461 msgid "GEN_CREATED: Waiting to start execution." msgstr "GEN_CREATED: Esperando para iniciar la ejecución." -#: ../Doc/library/inspect.rst:1439 +#: ../Doc/library/inspect.rst:1462 msgid "GEN_RUNNING: Currently being executed by the interpreter." msgstr "GEN_RUNNING: Actualmente está siendo ejecutado por el intérprete." -#: ../Doc/library/inspect.rst:1440 +#: ../Doc/library/inspect.rst:1463 msgid "GEN_SUSPENDED: Currently suspended at a yield expression." msgstr "GEN_SUSPENDED: Actualmente suspendido en una expresión yield." -#: ../Doc/library/inspect.rst:1441 +#: ../Doc/library/inspect.rst:1464 msgid "GEN_CLOSED: Execution has completed." msgstr "GEN_CLOSED: La ejecución se ha completado." -#: ../Doc/library/inspect.rst:1447 +#: ../Doc/library/inspect.rst:1470 msgid "" "Get current state of a coroutine object. The function is intended to be " "used with coroutine objects created by :keyword:`async def` functions, but " @@ -2322,23 +2348,57 @@ msgstr "" "`async def`, pero aceptará cualquier objeto de corutina que tenga los " "atributos ``cr_running`` y ``cr_frame``." -#: ../Doc/library/inspect.rst:1453 +#: ../Doc/library/inspect.rst:1476 msgid "CORO_CREATED: Waiting to start execution." msgstr "CORO_CREATED: Esperando para iniciar la ejecución." -#: ../Doc/library/inspect.rst:1454 +#: ../Doc/library/inspect.rst:1477 msgid "CORO_RUNNING: Currently being executed by the interpreter." msgstr "CORO_RUNNING: Actualmente está siendo ejecutado por el intérprete." -#: ../Doc/library/inspect.rst:1455 +#: ../Doc/library/inspect.rst:1478 msgid "CORO_SUSPENDED: Currently suspended at an await expression." msgstr "CORO_SUSPENDED: Actualmente suspendido en una expresión de espera." -#: ../Doc/library/inspect.rst:1456 +#: ../Doc/library/inspect.rst:1479 msgid "CORO_CLOSED: Execution has completed." msgstr "CORO_CLOSED: La ejecución se ha completado." -#: ../Doc/library/inspect.rst:1460 +#: ../Doc/library/inspect.rst:1485 +#, fuzzy +msgid "" +"Get current state of an asynchronous generator object. The function is " +"intended to be used with asynchronous iterator objects created by :keyword:" +"`async def` functions which use the :keyword:`yield` statement, but will " +"accept any asynchronous generator-like object that has ``ag_running`` and " +"``ag_frame`` attributes." +msgstr "" +"Obtener el estado actual de un objeto de corutina. La función está pensada " +"para ser usada con objetos de corutina creados por las funciones :keyword:" +"`async def`, pero aceptará cualquier objeto de corutina que tenga los " +"atributos ``cr_running`` y ``cr_frame``." + +#: ../Doc/library/inspect.rst:1492 +#, fuzzy +msgid "AGEN_CREATED: Waiting to start execution." +msgstr "GEN_CREATED: Esperando para iniciar la ejecución." + +#: ../Doc/library/inspect.rst:1493 +#, fuzzy +msgid "AGEN_RUNNING: Currently being executed by the interpreter." +msgstr "GEN_RUNNING: Actualmente está siendo ejecutado por el intérprete." + +#: ../Doc/library/inspect.rst:1494 +#, fuzzy +msgid "AGEN_SUSPENDED: Currently suspended at a yield expression." +msgstr "GEN_SUSPENDED: Actualmente suspendido en una expresión yield." + +#: ../Doc/library/inspect.rst:1495 +#, fuzzy +msgid "AGEN_CLOSED: Execution has completed." +msgstr "GEN_CLOSED: La ejecución se ha completado." + +#: ../Doc/library/inspect.rst:1499 msgid "" "The current internal state of the generator can also be queried. This is " "mostly useful for testing purposes, to ensure that internal state is being " @@ -2348,7 +2408,7 @@ msgstr "" "mayormente útil para fines de prueba, para asegurar que el estado interno se " "actualiza como se espera:" -#: ../Doc/library/inspect.rst:1466 +#: ../Doc/library/inspect.rst:1505 msgid "" "Get the mapping of live local variables in *generator* to their current " "values. A dictionary is returned that maps from variable names to values. " @@ -2360,7 +2420,7 @@ msgstr "" "variables a los valores. Esto es el equivalente a llamar :func:`locals` en " "el cuerpo del generador, y se aplican todas las mismas advertencias." -#: ../Doc/library/inspect.rst:1471 +#: ../Doc/library/inspect.rst:1510 msgid "" "If *generator* is a :term:`generator` with no currently associated frame, " "then an empty dictionary is returned. :exc:`TypeError` is raised if " @@ -2370,7 +2430,7 @@ msgstr "" "entonces se retorna un diccionario vacío. :exc:`TypeError` es lanzado si " "*generator* no es un objeto generador de Python." -#: ../Doc/library/inspect.rst:1477 +#: ../Doc/library/inspect.rst:1516 msgid "" "This function relies on the generator exposing a Python stack frame for " "introspection, which isn't guaranteed to be the case in all implementations " @@ -2382,7 +2442,7 @@ msgstr "" "implementaciones de Python. En tales casos, esta función siempre retornará " "un diccionario vacío." -#: ../Doc/library/inspect.rst:1486 +#: ../Doc/library/inspect.rst:1525 msgid "" "This function is analogous to :func:`~inspect.getgeneratorlocals`, but works " "for coroutine objects created by :keyword:`async def` functions." @@ -2390,11 +2450,21 @@ msgstr "" "Esta función es análoga a :func:`~inspect.getgeneratorlocals`, pero funciona " "para los objetos de corutina creados por funciones :keyword:`async def`." -#: ../Doc/library/inspect.rst:1495 +#: ../Doc/library/inspect.rst:1532 +#, fuzzy +msgid "" +"This function is analogous to :func:`~inspect.getgeneratorlocals`, but works " +"for asynchronous generator objects created by :keyword:`async def` functions " +"which use the :keyword:`yield` statement." +msgstr "" +"Esta función es análoga a :func:`~inspect.getgeneratorlocals`, pero funciona " +"para los objetos de corutina creados por funciones :keyword:`async def`." + +#: ../Doc/library/inspect.rst:1542 msgid "Code Objects Bit Flags" msgstr "Objetos de código Bit Flags" -#: ../Doc/library/inspect.rst:1497 +#: ../Doc/library/inspect.rst:1544 msgid "" "Python code objects have a ``co_flags`` attribute, which is a bitmap of the " "following flags:" @@ -2402,12 +2472,12 @@ msgstr "" "Los objetos de código Python tienen un atributo ``co_flags``, que es un mapa " "de bits de los siguientes flags:" -#: ../Doc/library/inspect.rst:1502 +#: ../Doc/library/inspect.rst:1549 msgid "The code object is optimized, using fast locals." msgstr "" "El objeto del código está optimizado, usando locales rápidas (*fast locals*)." -#: ../Doc/library/inspect.rst:1506 +#: ../Doc/library/inspect.rst:1553 msgid "" "If set, a new dict will be created for the frame's ``f_locals`` when the " "code object is executed." @@ -2415,23 +2485,23 @@ msgstr "" "Si se establece, se creará un nuevo diccionario para el marco ``f_locals`` " "cuando se ejecute el objeto código." -#: ../Doc/library/inspect.rst:1511 +#: ../Doc/library/inspect.rst:1558 msgid "The code object has a variable positional parameter (``*args``-like)." msgstr "" "El objeto del código tiene un parámetro posicional variable (similar a " "``*args``)." -#: ../Doc/library/inspect.rst:1515 +#: ../Doc/library/inspect.rst:1562 msgid "The code object has a variable keyword parameter (``**kwargs``-like)." msgstr "" "El objeto del código tiene un parámetro de palabra clave variable (similar a " "``**kwargs``)." -#: ../Doc/library/inspect.rst:1519 +#: ../Doc/library/inspect.rst:1566 msgid "The flag is set when the code object is a nested function." msgstr "El flag se fija cuando el objeto del código es una función anidada." -#: ../Doc/library/inspect.rst:1523 +#: ../Doc/library/inspect.rst:1570 msgid "" "The flag is set when the code object is a generator function, i.e. a " "generator object is returned when the code object is executed." @@ -2440,7 +2510,7 @@ msgstr "" "decir, un objeto generador es retornado cuando el objeto del código se " "ejecuta." -#: ../Doc/library/inspect.rst:1528 +#: ../Doc/library/inspect.rst:1575 msgid "" "The flag is set when the code object is a coroutine function. When the code " "object is executed it returns a coroutine object. See :pep:`492` for more " @@ -2450,7 +2520,7 @@ msgstr "" "Cuando el objeto código se ejecuta, retorna un objeto de corutina. Ver :pep:" "`492` para más detalles." -#: ../Doc/library/inspect.rst:1536 +#: ../Doc/library/inspect.rst:1583 msgid "" "The flag is used to transform generators into generator-based coroutines. " "Generator objects with this flag can be used in ``await`` expression, and " @@ -2461,7 +2531,7 @@ msgstr "" "expresión ``await``, y objetos de corutina ``yield from``. Ver :pep:`492` " "para más detalles." -#: ../Doc/library/inspect.rst:1545 +#: ../Doc/library/inspect.rst:1592 msgid "" "The flag is set when the code object is an asynchronous generator function. " "When the code object is executed it returns an asynchronous generator " @@ -2471,7 +2541,7 @@ msgstr "" "asíncrona. Cuando el objeto código se ejecuta, retorna un objeto generador " "asíncrono. Ver :pep:`525` para más detalles." -#: ../Doc/library/inspect.rst:1552 +#: ../Doc/library/inspect.rst:1599 msgid "" "The flags are specific to CPython, and may not be defined in other Python " "implementations. Furthermore, the flags are an implementation detail, and " @@ -2484,11 +2554,26 @@ msgstr "" "de Python. Se recomienda utilizar las APIs públicas del módulo :mod:" "`inspect` para cualquier necesidad de introspección." -#: ../Doc/library/inspect.rst:1562 +#: ../Doc/library/inspect.rst:1607 +msgid "Buffer flags" +msgstr "" + +#: ../Doc/library/inspect.rst:1611 +msgid "" +"This is an :class:`enum.IntFlag` that represents the flags that can be " +"passed to the :meth:`~object.__buffer__` method of objects implementing the :" +"ref:`buffer protocol `." +msgstr "" + +#: ../Doc/library/inspect.rst:1615 +msgid "The meaning of the flags is explained at :ref:`buffer-request-types`." +msgstr "" + +#: ../Doc/library/inspect.rst:1642 msgid "Command Line Interface" msgstr "Interfaz de la línea de comando" -#: ../Doc/library/inspect.rst:1564 +#: ../Doc/library/inspect.rst:1644 msgid "" "The :mod:`inspect` module also provides a basic introspection capability " "from the command line." @@ -2496,7 +2581,7 @@ msgstr "" "El módulo :mod:`inspect` también proporciona una capacidad básica de " "introspección desde la línea de comandos." -#: ../Doc/library/inspect.rst:1569 +#: ../Doc/library/inspect.rst:1649 msgid "" "By default, accepts the name of a module and prints the source of that " "module. A class or function within the module can be printed instead by " @@ -2506,8 +2591,17 @@ msgstr "" "módulo. Una clase o función dentro del módulo puede imprimirse en su lugar " "añadiendo dos puntos y el nombre calificado del objeto objetivo." -#: ../Doc/library/inspect.rst:1575 +#: ../Doc/library/inspect.rst:1655 msgid "" "Print information about the specified object rather than the source code" msgstr "" "Imprimir información sobre el objeto especificado en lugar del código fuente" + +#~ msgid "module" +#~ msgstr "módulo" + +#~ msgid "__file__" +#~ msgstr "__file__" + +#~ msgid "filename (missing for built-in modules)" +#~ msgstr "nombre de archivo (falta para los módulos incorporados)" diff --git a/library/internet.po b/library/internet.po index 98717fc1c5..afbb183764 100644 --- a/library/internet.po +++ b/library/internet.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-16 21:42+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-10-03 18:44+0100\n" "Last-Translator: \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" -"Generated-By: Babel 2.9.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/internet.rst:5 msgid "Internet Protocols and Support" @@ -38,3 +38,23 @@ msgstr "" "Python. La mayoría de estos módulos requieren la presencia del módulo " "dependiente del sistema :mod:`socket`, que actualmente es compatible con las " "plataformas más populares. Aquí hay una descripción general:" + +#: ../Doc/library/internet.rst:7 +msgid "WWW" +msgstr "" + +#: ../Doc/library/internet.rst:7 +msgid "Internet" +msgstr "" + +#: ../Doc/library/internet.rst:7 +msgid "World Wide Web" +msgstr "" + +#: ../Doc/library/internet.rst:12 +msgid "module" +msgstr "" + +#: ../Doc/library/internet.rst:12 +msgid "socket" +msgstr "" diff --git a/library/io.po b/library/io.po index 81f8a56cc6..f49bfa3f3d 100644 --- a/library/io.po +++ b/library/io.po @@ -10,16 +10,15 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-03-02 17:32-0300\n" "Last-Translator: Francisco Mora \n" -"Language-Team: python-doc-es\n" "Language: io\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" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/io.rst:2 msgid ":mod:`io` --- Core tools for working with streams" @@ -64,11 +63,12 @@ msgstr "" "(por ejemplo en el caso de un *socket* o *pipe*)." #: ../Doc/library/io.rst:40 +#, fuzzy msgid "" "All streams are careful about the type of data you give to them. For " -"example giving a :class:`str` object to the ``write()`` method of a binary " -"stream will raise a :exc:`TypeError`. So will giving a :class:`bytes` " -"object to the ``write()`` method of a text stream." +"example giving a :class:`str` object to the :meth:`!write` method of a " +"binary stream will raise a :exc:`TypeError`. So will giving a :class:" +"`bytes` object to the :meth:`!write` method of a text stream." msgstr "" "Todas los *streams* son cuidadosas del tipo de datos que se les provee. Por " "ejemplo dando un objeto de clase :class:`str` al método ``write()`` de un " @@ -84,7 +84,7 @@ msgstr "" "que :exc:`IOError` es un alias de :exc:`OSError`." #: ../Doc/library/io.rst:51 ../Doc/library/io.rst:855 -#: ../Doc/library/io.rst:1122 +#: ../Doc/library/io.rst:1149 msgid "Text I/O" msgstr "E/S Texto" @@ -125,7 +125,7 @@ msgstr "" "El *API* (interfaz de programación de aplicaciones) de *streams* tipo texto " "está descrito con detalle en la documentación de :class:`TextIOBase`." -#: ../Doc/library/io.rst:72 ../Doc/library/io.rst:1110 +#: ../Doc/library/io.rst:72 ../Doc/library/io.rst:1137 msgid "Binary I/O" msgstr "E/S Binaria" @@ -272,11 +272,12 @@ msgid "See :pep:`597` for more details." msgstr "Consulte :pep:`597` para más detalles." #: ../Doc/library/io.rst:148 +#, fuzzy msgid "" -"To find where the default locale encoding is used, you can enable the ``-X " -"warn_default_encoding`` command line option or set the :envvar:" -"`PYTHONWARNDEFAULTENCODING` environment variable, which will emit an :exc:" -"`EncodingWarning` when the default encoding is used." +"To find where the default locale encoding is used, you can enable the :" +"option:`-X warn_default_encoding <-X>` command line option or set the :" +"envvar:`PYTHONWARNDEFAULTENCODING` environment variable, which will emit an :" +"exc:`EncodingWarning` when the default encoding is used." msgstr "" "Para encontrar dónde se usa la codificación de configuración regional " "predeterminada, puede habilitar la opción de línea de comando ``-X " @@ -325,10 +326,11 @@ msgstr "" "``path``, ``mode``, ``flags``." #: ../Doc/library/io.rst:177 +#, fuzzy msgid "" "This function raises an :ref:`auditing event ` ``open`` with " -"arguments ``path``, ``mode`` and ``flags``. The ``mode`` and ``flags`` " -"arguments may have been modified or inferred from the original call." +"arguments *path*, *mode* and *flags*. The *mode* and *flags* arguments may " +"have been modified or inferred from the original call." msgstr "" "Esta función lanza un :ref:`evento de auditoría ` ``open`` con los " "argumentos ``path``, ``mode`` y ``flags``. Los argumentos ``mode`` y " @@ -343,13 +345,15 @@ msgstr "" "cuando la intención es tratar el contenido como código ejecutable." #: ../Doc/library/io.rst:187 -msgid "``path`` should be a :class:`str` and an absolute path." +#, fuzzy +msgid "*path* should be a :class:`str` and an absolute path." msgstr "``path`` debe ser un :class:`str` y una ruta absoluta." #: ../Doc/library/io.rst:189 +#, fuzzy msgid "" "The behavior of this function may be overridden by an earlier call to the :c:" -"func:`PyFile_SetOpenCodeHook`. However, assuming that ``path`` is a :class:" +"func:`PyFile_SetOpenCodeHook`. However, assuming that *path* is a :class:" "`str` and an absolute path, ``open_code(path)`` should always behave the " "same as ``open(path, 'rb')``. Overriding the behavior is intended for " "additional validation or preprocessing of the file." @@ -455,11 +459,12 @@ msgstr "" "las clases concretas proveen un *stream* estándar de implementaciones." #: ../Doc/library/io.rst:258 +#, fuzzy msgid "" "The abstract base classes also provide default implementations of some " "methods in order to help implementation of concrete stream classes. For " "example, :class:`BufferedIOBase` provides unoptimized implementations of :" -"meth:`~IOBase.readinto` and :meth:`~IOBase.readline`." +"meth:`!readinto` and :meth:`!readline`." msgstr "" "Las clases abstractas base también proveen implementaciones predeterminadas " "de algunos métodos para ayudar implementar clases de *streams* concretos. " @@ -634,8 +639,9 @@ msgstr "" "buscado." #: ../Doc/library/io.rst:323 +#, fuzzy msgid "" -"Even though :class:`IOBase` does not declare :meth:`read` or :meth:`write` " +"Even though :class:`IOBase` does not declare :meth:`!read` or :meth:`!write` " "because their signatures will vary, implementations and clients should " "consider those methods part of the interface. Also, implementations may " "raise a :exc:`ValueError` (or :exc:`UnsupportedOperation`) when operations " @@ -746,8 +752,9 @@ msgstr "" "terminal o dispositivo tty)." #: ../Doc/library/io.rst:382 +#, fuzzy msgid "" -"Return ``True`` if the stream can be read from. If ``False``, :meth:`read` " +"Return ``True`` if the stream can be read from. If ``False``, :meth:`!read` " "will raise :exc:`OSError`." msgstr "" "Retorna ``True`` si el *stream* puede ser leída. Si es ``False``, el método :" @@ -791,64 +798,68 @@ msgstr "" "pista." #: ../Doc/library/io.rst:403 +#, fuzzy msgid "" "Note that it's already possible to iterate on file objects using ``for line " -"in file: ...`` without calling ``file.readlines()``." +"in file: ...`` without calling :meth:`!file.readlines`." msgstr "" "Tenga en cuenta que ya es posible iterar sobre objetos de archivo usando " "``for line in file: …`` sin llamar ``file.readlines()``." #: ../Doc/library/io.rst:408 +#, fuzzy msgid "" -"Change the stream position to the given byte *offset*. *offset* is " -"interpreted relative to the position indicated by *whence*. The default " -"value for *whence* is :data:`SEEK_SET`. Values for *whence* are:" +"Change the stream position to the given byte *offset*, interpreted relative " +"to the position indicated by *whence*, and return the new absolute position. " +"Values for *whence* are:" msgstr "" "Cambiar la posición del *stream* al dado *byte* *offset*. *offset* se " "interpreta en relación con la posición indicada por *whence*. El valor dado " "para *whence* es :data:`SEEK_SET`. Valores para *whence* son:" -#: ../Doc/library/io.rst:412 +#: ../Doc/library/io.rst:413 +#, fuzzy msgid "" -":data:`SEEK_SET` or ``0`` -- start of the stream (the default); *offset* " +":data:`os.SEEK_SET` or ``0`` -- start of the stream (the default); *offset* " "should be zero or positive" msgstr "" ":data:`SEEK_SET` o ``0`` -- inicio del *stream* (el dado); *offset* debería " "ser cero o positivo" -#: ../Doc/library/io.rst:414 +#: ../Doc/library/io.rst:415 +#, fuzzy msgid "" -":data:`SEEK_CUR` or ``1`` -- current stream position; *offset* may be " +":data:`os.SEEK_CUR` or ``1`` -- current stream position; *offset* may be " "negative" msgstr "" ":data:`SEEK_CUR` o ``1`` -- posición actual del *stream*; *offset* puede ser " "negativo" -#: ../Doc/library/io.rst:416 +#: ../Doc/library/io.rst:417 +#, fuzzy msgid "" -":data:`SEEK_END` or ``2`` -- end of the stream; *offset* is usually negative" +":data:`os.SEEK_END` or ``2`` -- end of the stream; *offset* is usually " +"negative" msgstr "" ":data:`SEEK_END` o ``2`` -- fin del *stream*; *offset* is usualmente negativo" -#: ../Doc/library/io.rst:419 -msgid "Return the new absolute position." -msgstr "Retorna la nueva posición absoluta." - -#: ../Doc/library/io.rst:421 ../Doc/library/io.rst:930 -msgid "The ``SEEK_*`` constants." +#: ../Doc/library/io.rst:420 ../Doc/library/io.rst:930 +#, fuzzy +msgid "The :data:`!SEEK_*` constants." msgstr "Los constantes ``SEEK_*``." -#: ../Doc/library/io.rst:424 +#: ../Doc/library/io.rst:423 +#, fuzzy msgid "" -"Some operating systems could support additional values, like :data:`os." -"SEEK_HOLE` or :data:`os.SEEK_DATA`. The valid values for a file could depend " -"on it being open in text or binary mode." +"Some operating systems could support additional values, like :const:`os." +"SEEK_HOLE` or :const:`os.SEEK_DATA`. The valid values for a file could " +"depend on it being open in text or binary mode." msgstr "" "Algunos sistemas operativos pueden apoyar valores adicionales, como :data:" "`os.SEEK_HOLE` o :data:`os.SEEK_DATA`. Los valores válidos para un archivo " "podrían depender de que esté abierto en modo texto o binario." -#: ../Doc/library/io.rst:431 +#: ../Doc/library/io.rst:430 msgid "" "Return ``True`` if the stream supports random access. If ``False``, :meth:" "`seek`, :meth:`tell` and :meth:`truncate` will raise :exc:`OSError`." @@ -857,11 +868,11 @@ msgstr "" "``False``, :meth:`seek`, :meth:`tell` y :meth:`truncate` lanzarán :exc:" "`OSError`." -#: ../Doc/library/io.rst:436 +#: ../Doc/library/io.rst:435 msgid "Return the current stream position." msgstr "Retorna la posición actual del *stream*." -#: ../Doc/library/io.rst:440 +#: ../Doc/library/io.rst:439 msgid "" "Resize the stream to the given *size* in bytes (or the current position if " "*size* is not specified). The current stream position isn't changed. This " @@ -876,19 +887,20 @@ msgstr "" "depende de la plataforma (en la mayoría de los sistemas *bytes* adicionales " "son llenos de cero). Se retorna el nuevo tamaño del archivo." -#: ../Doc/library/io.rst:447 +#: ../Doc/library/io.rst:446 msgid "Windows will now zero-fill files when extending." msgstr "*Windows* llenará los archivos con cero cuando extienda." -#: ../Doc/library/io.rst:452 +#: ../Doc/library/io.rst:451 +#, fuzzy msgid "" -"Return ``True`` if the stream supports writing. If ``False``, :meth:`write` " -"and :meth:`truncate` will raise :exc:`OSError`." +"Return ``True`` if the stream supports writing. If ``False``, :meth:`!" +"write` and :meth:`truncate` will raise :exc:`OSError`." msgstr "" "Retorna ``True`` si el *stream* apoya grabación. Si retorna ``False``, :" "meth:`write` y :meth:`truncate` lanzarán :exc:`OSError`." -#: ../Doc/library/io.rst:457 +#: ../Doc/library/io.rst:456 msgid "" "Write a list of lines to the stream. Line separators are not added, so it " "is usual for each of the lines provided to have a line separator at the end." @@ -896,7 +908,7 @@ msgstr "" "Escribir una lista de líneas al *stream*. No se agrega separadores de " "líneas, así que es usual que las líneas tengan separador al final." -#: ../Doc/library/io.rst:463 +#: ../Doc/library/io.rst:462 msgid "" "Prepare for object destruction. :class:`IOBase` provides a default " "implementation of this method that calls the instance's :meth:`~IOBase." @@ -906,14 +918,14 @@ msgstr "" "implementación dada de este método que ejecuta las instancias del método :" "meth:`~IOBase.close`." -#: ../Doc/library/io.rst:470 +#: ../Doc/library/io.rst:469 #, fuzzy msgid "Base class for raw binary streams. It inherits :class:`IOBase`." msgstr "" "Clase base para flujos binarios sin procesar. Hereda :class:`IOBase`. No hay " "ningún constructor público." -#: ../Doc/library/io.rst:472 +#: ../Doc/library/io.rst:471 msgid "" "Raw binary streams typically provide low-level access to an underlying OS " "device or API, and do not try to encapsulate it in high-level primitives " @@ -926,7 +938,7 @@ msgstr "" "en flujos binarios almacenados en búfer y flujos de texto, que se describen " "más adelante en esta página)." -#: ../Doc/library/io.rst:477 +#: ../Doc/library/io.rst:476 msgid "" ":class:`RawIOBase` provides these methods in addition to those from :class:" "`IOBase`:" @@ -934,7 +946,7 @@ msgstr "" ":class:`RawIOBase` proporciona estos métodos además de los de :class:" "`IOBase`:" -#: ../Doc/library/io.rst:482 +#: ../Doc/library/io.rst:481 msgid "" "Read up to *size* bytes from the object and return them. As a convenience, " "if *size* is unspecified or -1, all bytes until EOF are returned. Otherwise, " @@ -947,7 +959,7 @@ msgstr "" "llamado al sistema. Se pueden retornar menos de *size* *bytes* si la llamada " "del sistema operativo retorna menos de *size* *bytes*." -#: ../Doc/library/io.rst:487 +#: ../Doc/library/io.rst:486 msgid "" "If 0 bytes are returned, and *size* was not 0, this indicates end of file. " "If the object is in non-blocking mode and no bytes are available, ``None`` " @@ -957,13 +969,13 @@ msgstr "" "archivo. Si el objeto está en modo sin bloqueo y no hay *bytes* disponibles, " "se retorna ``None``." -#: ../Doc/library/io.rst:491 +#: ../Doc/library/io.rst:490 msgid "" "The default implementation defers to :meth:`readall` and :meth:`readinto`." msgstr "" "La implementación dada difiera al método :meth:`readall` y :meth:`readinto`." -#: ../Doc/library/io.rst:496 +#: ../Doc/library/io.rst:495 msgid "" "Read and return all the bytes from the stream until EOF, using multiple " "calls to the stream if necessary." @@ -971,7 +983,7 @@ msgstr "" "Lee y retorna todos los *bytes* del *stream* hasta llegar al fin del " "archivo, usando, si es necesario, varias llamadas al *stream*." -#: ../Doc/library/io.rst:501 +#: ../Doc/library/io.rst:500 msgid "" "Read bytes into a pre-allocated, writable :term:`bytes-like object` *b*, and " "return the number of bytes read. For example, *b* might be a :class:" @@ -983,7 +995,7 @@ msgstr "" "de tipo :class:`bytearray`. Si el objeto está en modo sin bloquear y no hay " "*bytes* disponibles, se retorna ``None``." -#: ../Doc/library/io.rst:509 +#: ../Doc/library/io.rst:508 msgid "" "Write the given :term:`bytes-like object`, *b*, to the underlying raw " "stream, and return the number of bytes written. This can be less than the " @@ -1002,7 +1014,7 @@ msgstr "" "después que retorne este método, así que la implementación solo debería " "acceder *b* durante la ejecución al método." -#: ../Doc/library/io.rst:522 +#: ../Doc/library/io.rst:521 #, fuzzy msgid "" "Base class for binary streams that support some kind of buffering. It " @@ -1011,7 +1023,7 @@ msgstr "" "Clase base para *streams* binarios que apoyan algún tipo de búfer. Hereda :" "class:`IOBase`. No hay constructor público." -#: ../Doc/library/io.rst:525 +#: ../Doc/library/io.rst:524 msgid "" "The main difference with :class:`RawIOBase` is that methods :meth:`read`, :" "meth:`readinto` and :meth:`write` will try (respectively) to read as much " @@ -1023,7 +1035,7 @@ msgstr "" "la cantidad de información solicitada o consumir toda la salida dada, a " "expensas de hacer más de una llamada al sistema." -#: ../Doc/library/io.rst:530 +#: ../Doc/library/io.rst:529 msgid "" "In addition, those methods can raise :exc:`BlockingIOError` if the " "underlying raw stream is in non-blocking mode and cannot take or give enough " @@ -1035,7 +1047,7 @@ msgstr "" "or dar más datos; a diferencia de sus contrapartes :class:`RawIOBase`, estos " "nunca retornarán ``None``." -#: ../Doc/library/io.rst:535 +#: ../Doc/library/io.rst:534 msgid "" "Besides, the :meth:`read` method does not have a default implementation that " "defers to :meth:`readinto`." @@ -1043,7 +1055,7 @@ msgstr "" "Además, el método :meth:`read` no tiene una implementación dada que difiere " "al método :meth:`readinto`." -#: ../Doc/library/io.rst:538 +#: ../Doc/library/io.rst:537 msgid "" "A typical :class:`BufferedIOBase` implementation should not inherit from a :" "class:`RawIOBase` implementation, but wrap one, like :class:`BufferedWriter` " @@ -1053,7 +1065,7 @@ msgstr "" "implementación de :class:`RawIOBase`, es más, debería envolver como uno, así " "como hacen las clases :class:`BufferedWriter` y :class:`BufferedReader`." -#: ../Doc/library/io.rst:542 +#: ../Doc/library/io.rst:541 msgid "" ":class:`BufferedIOBase` provides or overrides these data attributes and " "methods in addition to those from :class:`IOBase`:" @@ -1061,7 +1073,7 @@ msgstr "" ":class:`BufferedIOBase` proporciona o anula estos atributos y métodos de " "datos además de los de :class:`IOBase`:" -#: ../Doc/library/io.rst:547 +#: ../Doc/library/io.rst:546 msgid "" "The underlying raw stream (a :class:`RawIOBase` instance) that :class:" "`BufferedIOBase` deals with. This is not part of the :class:" @@ -1071,18 +1083,18 @@ msgstr "" "class:`BufferedIOBase` maneja. Esto no es parte de la API :class:" "`BufferedIOBase` y posiblemente no exista en algunas implementaciones." -#: ../Doc/library/io.rst:553 +#: ../Doc/library/io.rst:552 msgid "Separate the underlying raw stream from the buffer and return it." msgstr "Separa el *stream* subyacente del búfer y lo retorna." -#: ../Doc/library/io.rst:555 +#: ../Doc/library/io.rst:554 msgid "" "After the raw stream has been detached, the buffer is in an unusable state." msgstr "" "Luego que el *stream* sin formato ha sido separado, el búfer está en un " "estado inutilizable." -#: ../Doc/library/io.rst:558 +#: ../Doc/library/io.rst:557 msgid "" "Some buffers, like :class:`BytesIO`, do not have the concept of a single raw " "stream to return from this method. They raise :exc:`UnsupportedOperation`." @@ -1091,7 +1103,7 @@ msgstr "" "sin formato singular para retornar de este método. Lanza un :exc:" "`UnsupportedOperation`." -#: ../Doc/library/io.rst:566 +#: ../Doc/library/io.rst:565 msgid "" "Read and return up to *size* bytes. If the argument is omitted, ``None``, " "or negative, data is read and returned until EOF is reached. An empty :" @@ -1102,7 +1114,7 @@ msgstr "" "alcance el fin del archivo. Un objeto :class:`bytes` vacío se retorna si el " "*stream* está al final del archivo." -#: ../Doc/library/io.rst:570 +#: ../Doc/library/io.rst:569 msgid "" "If the argument is positive, and the underlying raw stream is not " "interactive, multiple raw reads may be issued to satisfy the byte count " @@ -1117,8 +1129,8 @@ msgstr "" "emitida y un resultado corto no implica que se haya llegado al fin del " "archivo." -#: ../Doc/library/io.rst:576 ../Doc/library/io.rst:599 -#: ../Doc/library/io.rst:609 +#: ../Doc/library/io.rst:575 ../Doc/library/io.rst:598 +#: ../Doc/library/io.rst:608 msgid "" "A :exc:`BlockingIOError` is raised if the underlying raw stream is in non " "blocking-mode, and has no data available at the moment." @@ -1126,7 +1138,7 @@ msgstr "" "Un :exc:`BlockingIOError` se lanza si el *stream* subyacente está en modo no " "bloqueo y no tiene datos al momento." -#: ../Doc/library/io.rst:581 +#: ../Doc/library/io.rst:580 msgid "" "Read and return up to *size* bytes, with at most one call to the underlying " "raw stream's :meth:`~RawIOBase.read` (or :meth:`~RawIOBase.readinto`) " @@ -1138,7 +1150,7 @@ msgstr "" "subyacente. Esto puede ser útil si estás implementando tu propio búfer por " "encima de un objeto :class:`BufferedIOBase`." -#: ../Doc/library/io.rst:587 +#: ../Doc/library/io.rst:586 msgid "" "If *size* is ``-1`` (the default), an arbitrary number of bytes are returned " "(more than zero unless EOF is reached)." @@ -1146,7 +1158,7 @@ msgstr "" "Si *size* es ``-1`` (el valor dado) se retorna un monto arbitrario de " "*bytes* (más que cero al menos que se haya llegado al fin del archivo)." -#: ../Doc/library/io.rst:592 +#: ../Doc/library/io.rst:591 msgid "" "Read bytes into a pre-allocated, writable :term:`bytes-like object` *b* and " "return the number of bytes read. For example, *b* might be a :class:" @@ -1156,7 +1168,7 @@ msgstr "" "*b* y retorna el número de *bytes* leídos. Por ejemplo, *b* puede ser un :" "class:`bytearray`." -#: ../Doc/library/io.rst:596 +#: ../Doc/library/io.rst:595 msgid "" "Like :meth:`read`, multiple reads may be issued to the underlying raw " "stream, unless the latter is interactive." @@ -1164,7 +1176,7 @@ msgstr "" "Como :meth:`read`, varias lecturas pueden ser otorgadas al *stream* sin " "formato subyacente al menos que esto último sea interactivo." -#: ../Doc/library/io.rst:604 +#: ../Doc/library/io.rst:603 msgid "" "Read bytes into a pre-allocated, writable :term:`bytes-like object` *b*, " "using at most one call to the underlying raw stream's :meth:`~RawIOBase." @@ -1176,7 +1188,7 @@ msgstr "" "meth:`~RawIOBase.readinto`) del *stream* subyacente. Retorna la cantidad de " "*bytes* leídas." -#: ../Doc/library/io.rst:616 +#: ../Doc/library/io.rst:615 msgid "" "Write the given :term:`bytes-like object`, *b*, and return the number of " "bytes written (always equal to the length of *b* in bytes, since if the " @@ -1191,7 +1203,7 @@ msgstr "" "*stream* subyacente o mantenido en un búfer por razones de rendimiento y " "latencia." -#: ../Doc/library/io.rst:623 +#: ../Doc/library/io.rst:622 msgid "" "When in non-blocking mode, a :exc:`BlockingIOError` is raised if the data " "needed to be written to the raw stream but it couldn't accept all the data " @@ -1201,7 +1213,7 @@ msgstr "" "datos tenían que ser grabadas al *stream* sin formato pero no pudo aceptar " "todos los datos sin bloquear." -#: ../Doc/library/io.rst:627 +#: ../Doc/library/io.rst:626 msgid "" "The caller may release or mutate *b* after this method returns, so the " "implementation should only access *b* during the method call." @@ -1210,11 +1222,11 @@ msgstr "" "entonces la implementación debería acceder solamente a *b* durante la " "llamada al método." -#: ../Doc/library/io.rst:632 +#: ../Doc/library/io.rst:631 msgid "Raw File I/O" msgstr "Archivo sin formato E/S" -#: ../Doc/library/io.rst:636 +#: ../Doc/library/io.rst:635 msgid "" "A raw binary stream representing an OS-level file containing bytes data. It " "inherits :class:`RawIOBase`." @@ -1222,11 +1234,11 @@ msgstr "" "Una secuencia binaria sin procesar que representa un archivo de nivel de " "sistema operativo que contiene datos en bytes. Hereda :class:`RawIOBase`." -#: ../Doc/library/io.rst:639 +#: ../Doc/library/io.rst:638 msgid "The *name* can be one of two things:" msgstr "El *name* puede ser una de dos cosas:" -#: ../Doc/library/io.rst:641 +#: ../Doc/library/io.rst:640 msgid "" "a character string or :class:`bytes` object representing the path to the " "file which will be opened. In this case closefd must be ``True`` (the " @@ -1236,7 +1248,7 @@ msgstr "" "ruta del archivo en la que fue abierto. En este caso *closefd* es ``True`` " "(el valor dado) de otra manera un error será dada." -#: ../Doc/library/io.rst:644 +#: ../Doc/library/io.rst:643 msgid "" "an integer representing the number of an existing OS-level file descriptor " "to which the resulting :class:`FileIO` object will give access. When the " @@ -1248,7 +1260,7 @@ msgstr "" "objeto *FileIO* está cerrado este fd cerrará también a no ser que *closefd* " "esté configurado a ``False``." -#: ../Doc/library/io.rst:649 +#: ../Doc/library/io.rst:648 msgid "" "The *mode* can be ``'r'``, ``'w'``, ``'x'`` or ``'a'`` for reading " "(default), writing, exclusive creation or appending. The file will be " @@ -1266,10 +1278,12 @@ msgstr "" "entonces este modo se comporta similarmente a ``'w'``. Agrega un ``'+'`` al " "modo para permitir lectura y grabación simultáneas." -#: ../Doc/library/io.rst:657 +#: ../Doc/library/io.rst:656 +#, fuzzy msgid "" -"The :meth:`read` (when called with a positive argument), :meth:`readinto` " -"and :meth:`write` methods on this class will only make one system call." +"The :meth:`~RawIOBase.read` (when called with a positive argument), :meth:" +"`~RawIOBase.readinto` and :meth:`~RawIOBase.write` methods on this class " +"will only make one system call." msgstr "" "Los métodos :meth:`read` (cuando se llama con un argumento positivo), :meth:" "`readinto` y :meth:`write` en esta clase harán solo una llamada al sistema." @@ -1499,12 +1513,15 @@ msgstr "" "cuando el búfer se vuelve demasiado pequeño para todos los datos pendientes;" #: ../Doc/library/io.rst:794 -msgid "when :meth:`flush()` is called;" +#, fuzzy +msgid "when :meth:`flush` is called;" msgstr "cuando se llama :meth:`flush()`;" #: ../Doc/library/io.rst:795 +#, fuzzy msgid "" -"when a :meth:`seek()` is requested (for :class:`BufferedRandom` objects);" +"when a :meth:`~IOBase.seek` is requested (for :class:`BufferedRandom` " +"objects);" msgstr "" "cuando se pide un método :meth:`seek()` (para objetos :class:" "`BufferedRandom`);" @@ -1571,10 +1588,11 @@ msgstr "" "recae sobre el valor predeterminado :data:`DEFAULT_BUFFER_SIZE`." #: ../Doc/library/io.rst:828 +#, fuzzy msgid "" ":class:`BufferedRandom` is capable of anything :class:`BufferedReader` or :" -"class:`BufferedWriter` can do. In addition, :meth:`seek` and :meth:`tell` " -"are guaranteed to be implemented." +"class:`BufferedWriter` can do. In addition, :meth:`~IOBase.seek` and :meth:" +"`~IOBase.tell` are guaranteed to be implemented." msgstr "" ":class:`BufferedRandom` es capaz de todo lo que puede hacer :class:" "`BufferedReader` o :class:`BufferedWriter`. Adicionalmente, se garantiza " @@ -1707,9 +1725,10 @@ msgstr "" "del archivo." #: ../Doc/library/io.rst:907 +#, fuzzy msgid "" -"Read until newline or EOF and return a single ``str``. If the stream is " -"already at EOF, an empty string is returned." +"Read until newline or EOF and return a single :class:`str`. If the stream " +"is already at EOF, an empty string is returned." msgstr "" "Leer hasta la nueva línea o fin del archivo y retorna un ``str`` singular. " "Si el *stream* está al fin del archivo una cadena de caracteres se retorna." @@ -1719,16 +1738,18 @@ msgid "If *size* is specified, at most *size* characters will be read." msgstr "Si se especifica *size* como máximo *size* de caracteres será leído." #: ../Doc/library/io.rst:914 +#, fuzzy msgid "" "Change the stream position to the given *offset*. Behaviour depends on the " -"*whence* parameter. The default value for *whence* is :data:`SEEK_SET`." +"*whence* parameter. The default value for *whence* is :data:`!SEEK_SET`." msgstr "" "Cambia la posición del *stream* dada *offset*. El comportamiento depende del " "parámetro *whence*. El valor dado de *whence* es :data:`SEEK_SET`." #: ../Doc/library/io.rst:918 +#, fuzzy msgid "" -":data:`SEEK_SET` or ``0``: seek from the start of the stream (the default); " +":data:`!SEEK_SET` or ``0``: seek from the start of the stream (the default); " "*offset* must either be a number returned by :meth:`TextIOBase.tell`, or " "zero. Any other *offset* value produces undefined behaviour." msgstr "" @@ -1737,16 +1758,18 @@ msgstr "" "otro valor *offset* produce comportamiento indefinido." #: ../Doc/library/io.rst:922 +#, fuzzy msgid "" -":data:`SEEK_CUR` or ``1``: \"seek\" to the current position; *offset* must " +":data:`!SEEK_CUR` or ``1``: \"seek\" to the current position; *offset* must " "be zero, which is a no-operation (all other values are unsupported)." msgstr "" ":data:`SEEK_CUR` o ``1``: buscar la posición actual; *offset* debería ser " "cero, que es una operación no (no se apoya ningún otro valor)." #: ../Doc/library/io.rst:925 +#, fuzzy msgid "" -":data:`SEEK_END` or ``2``: seek to the end of the stream; *offset* must be " +":data:`!SEEK_END` or ``2``: seek to the end of the stream; *offset* must be " "zero (all other values are unsupported)." msgstr "" ":data:`SEEK_END` o ``2``: buscar el fin del *stream*; *offset* debería ser " @@ -1870,18 +1893,21 @@ msgstr "" "caracteres dada." #: ../Doc/library/io.rst:991 +#, fuzzy msgid "" -"If *line_buffering* is ``True``, :meth:`flush` is implied when a call to " -"write contains a newline character or a carriage return." +"If *line_buffering* is ``True``, :meth:`~IOBase.flush` is implied when a " +"call to write contains a newline character or a carriage return." msgstr "" "Si *line_buffering* es ``True``, se implica :meth:`flush` cuando una llamada " "a grabar contiene un carácter de nueva línea o un retorno." #: ../Doc/library/io.rst:994 +#, fuzzy msgid "" -"If *write_through* is ``True``, calls to :meth:`write` are guaranteed not to " -"be buffered: any data written on the :class:`TextIOWrapper` object is " -"immediately handled to its underlying binary *buffer*." +"If *write_through* is ``True``, calls to :meth:`~BufferedIOBase.write` are " +"guaranteed not to be buffered: any data written on the :class:" +"`TextIOWrapper` object is immediately handled to its underlying binary " +"*buffer*." msgstr "" "Si *write_through* es ``True``, llamadas a :meth:`write` no garantizan ser " "pasados por el proceso de búfer: cualquier dato grabado en el objeto :class:" @@ -1966,7 +1992,51 @@ msgstr "" msgid "The method supports ``encoding=\"locale\"`` option." msgstr "El método admite la opción ``encoding=\"locale\"``." -#: ../Doc/library/io.rst:1049 +#: ../Doc/library/io.rst:1048 +msgid "" +"Set the stream position. Return the new stream position as an :class:`int`." +msgstr "" + +#: ../Doc/library/io.rst:1051 +msgid "" +"Four operations are supported, given by the following argument combinations:" +msgstr "" + +#: ../Doc/library/io.rst:1054 +msgid "``seek(0, SEEK_SET)``: Rewind to the start of the stream." +msgstr "" + +#: ../Doc/library/io.rst:1055 +msgid "" +"``seek(cookie, SEEK_SET)``: Restore a previous position; *cookie* **must " +"be** a number returned by :meth:`tell`." +msgstr "" + +#: ../Doc/library/io.rst:1057 +msgid "``seek(0, SEEK_END)``: Fast-forward to the end of the stream." +msgstr "" + +#: ../Doc/library/io.rst:1058 +#, fuzzy +msgid "``seek(0, SEEK_CUR)``: Leave the current stream position unchanged." +msgstr "Retorna la posición actual del *stream*." + +#: ../Doc/library/io.rst:1060 +msgid "Any other argument combinations are invalid, and may raise exceptions." +msgstr "" + +#: ../Doc/library/io.rst:1065 +msgid ":data:`os.SEEK_SET`, :data:`os.SEEK_CUR`, and :data:`os.SEEK_END`." +msgstr "" + +#: ../Doc/library/io.rst:1069 +msgid "" +"Return the stream position as an opaque number. The return value of :meth:`!" +"tell` can be given as input to :meth:`seek`, to restore a previous stream " +"position." +msgstr "" + +#: ../Doc/library/io.rst:1076 msgid "" "A text stream using an in-memory text buffer. It inherits :class:" "`TextIOBase`." @@ -1974,14 +2044,14 @@ msgstr "" "Una secuencia de texto que utiliza un búfer de texto en memoria. Hereda :" "class:`TextIOBase`." -#: ../Doc/library/io.rst:1052 +#: ../Doc/library/io.rst:1079 msgid "" "The text buffer is discarded when the :meth:`~IOBase.close` method is called." msgstr "" "El búfer de texto se descarta cuando se llama al método :meth:`~IOBase." "close`." -#: ../Doc/library/io.rst:1055 +#: ../Doc/library/io.rst:1082 msgid "" "The initial value of the buffer can be set by providing *initial_value*. If " "newline translation is enabled, newlines will be encoded as if by :meth:" @@ -2002,7 +2072,7 @@ msgstr "" "para anexar, use ``f.seek(0, io.SEEK_END)`` para reponer la secuencia al " "final del búfer." -#: ../Doc/library/io.rst:1064 +#: ../Doc/library/io.rst:1091 msgid "" "The *newline* argument works like that of :class:`TextIOWrapper`, except " "that when writing output to the stream, if *newline* is ``None``, newlines " @@ -2012,7 +2082,7 @@ msgstr "" "excepto que cuando escribe al flujo de salida, si *newline* es ``None``, se " "escriben líneas nuevas como ``\\n`` en todas las plataformas" -#: ../Doc/library/io.rst:1068 +#: ../Doc/library/io.rst:1095 msgid "" ":class:`StringIO` provides this method in addition to those from :class:" "`TextIOBase` and :class:`IOBase`:" @@ -2020,21 +2090,22 @@ msgstr "" ":class:`StringIO` proporciona este método además de los de :class:" "`TextIOBase` y :class:`IOBase`:" -#: ../Doc/library/io.rst:1073 +#: ../Doc/library/io.rst:1100 +#, fuzzy msgid "" -"Return a ``str`` containing the entire contents of the buffer. Newlines are " -"decoded as if by :meth:`~TextIOBase.read`, although the stream position is " -"not changed." +"Return a :class:`str` containing the entire contents of the buffer. Newlines " +"are decoded as if by :meth:`~TextIOBase.read`, although the stream position " +"is not changed." msgstr "" "Retorna un ``str`` que contiene el contenido entero de los búfer. Nuevas " "lineas son descodificados como si fuera :meth:`~TextIOBase.read`, aunque la " "posición de la transmisión no haya cambiado." -#: ../Doc/library/io.rst:1077 +#: ../Doc/library/io.rst:1104 msgid "Example usage::" msgstr "Ejemplos de uso::" -#: ../Doc/library/io.rst:1099 +#: ../Doc/library/io.rst:1126 msgid "" "A helper codec that decodes newlines for :term:`universal newlines` mode. It " "inherits :class:`codecs.IncrementalDecoder`." @@ -2042,11 +2113,11 @@ msgstr "" "Un códec auxiliar que descodifica nuevas líneas para el modo :term:" "`universal newlines`. Hereda :class:`codecs.IncrementalDecoder`." -#: ../Doc/library/io.rst:1104 +#: ../Doc/library/io.rst:1131 msgid "Performance" msgstr "Rendimiento" -#: ../Doc/library/io.rst:1106 +#: ../Doc/library/io.rst:1133 msgid "" "This section discusses the performance of the provided concrete I/O " "implementations." @@ -2054,7 +2125,7 @@ msgstr "" "Esta sección discute el rendimiento de las implementaciones concretas de E/S " "proporcionadas." -#: ../Doc/library/io.rst:1112 +#: ../Doc/library/io.rst:1139 msgid "" "By reading and writing only large chunks of data even when the user asks for " "a single byte, buffered I/O hides any inefficiency in calling and executing " @@ -2076,14 +2147,15 @@ msgstr "" "independientemente de la plataforma y el dispositivo de respaldo. Entonces " "es siempre preferible user E/S búfer que E/S sin búfer para datos binarios." -#: ../Doc/library/io.rst:1124 +#: ../Doc/library/io.rst:1151 +#, fuzzy msgid "" "Text I/O over a binary storage (such as a file) is significantly slower than " "binary I/O over the same storage, because it requires conversions between " "unicode and binary data using a character codec. This can become noticeable " "handling huge amounts of text data like large log files. Also, :meth:" -"`TextIOWrapper.tell` and :meth:`TextIOWrapper.seek` are both quite slow due " -"to the reconstruction algorithm used." +"`~TextIOBase.tell` and :meth:`~TextIOBase.seek` are both quite slow due to " +"the reconstruction algorithm used." msgstr "" "E/S de tipo texto por sobre un almacenamiento binario (como un archivo) es " "más lento que un E/S binario sobre el mismo almacenamiento porque requiere " @@ -2092,7 +2164,7 @@ msgstr "" "registro. También :meth:`TextIOWrapper.tell` y :meth:`TextIOWrapper.seek` " "son bastante lentos debido al uso del algoritmo de reconstrucción." -#: ../Doc/library/io.rst:1131 +#: ../Doc/library/io.rst:1158 msgid "" ":class:`StringIO`, however, is a native in-memory unicode container and will " "exhibit similar speed to :class:`BytesIO`." @@ -2100,20 +2172,22 @@ msgstr "" ":class:`StringIO`, sin embargo, es un contenedor unicode nativo en memoria y " "exhibirá una velocidad similar a :class:`BytesIO`." -#: ../Doc/library/io.rst:1135 +#: ../Doc/library/io.rst:1162 msgid "Multi-threading" msgstr "Multihilo" -#: ../Doc/library/io.rst:1137 +#: ../Doc/library/io.rst:1164 +#, fuzzy msgid "" ":class:`FileIO` objects are thread-safe to the extent that the operating " -"system calls (such as ``read(2)`` under Unix) they wrap are thread-safe too." +"system calls (such as :manpage:`read(2)` under Unix) they wrap are thread-" +"safe too." msgstr "" "objetos :class:`FileIO` son seguros para subprocesos en la medida en que las " "llamadas al sistema operativo(como ``read(2)`` en Unix) que envuelven " "también son seguros para subprocesos." -#: ../Doc/library/io.rst:1140 +#: ../Doc/library/io.rst:1167 msgid "" "Binary buffered objects (instances of :class:`BufferedReader`, :class:" "`BufferedWriter`, :class:`BufferedRandom` and :class:`BufferedRWPair`) " @@ -2125,15 +2199,15 @@ msgstr "" "protegen sus estructuras internas usando un bloqueo; es seguro, entonces, " "llamarlos de varios hilos a la vez." -#: ../Doc/library/io.rst:1145 +#: ../Doc/library/io.rst:1172 msgid ":class:`TextIOWrapper` objects are not thread-safe." msgstr "objetos :class:`TextIOWrapper` no son seguros para subprocesos." -#: ../Doc/library/io.rst:1148 +#: ../Doc/library/io.rst:1175 msgid "Reentrancy" msgstr "Reentrada" -#: ../Doc/library/io.rst:1150 +#: ../Doc/library/io.rst:1177 msgid "" "Binary buffered objects (instances of :class:`BufferedReader`, :class:" "`BufferedWriter`, :class:`BufferedRandom` and :class:`BufferedRWPair`) are " @@ -2151,7 +2225,7 @@ msgstr "" "lanza un :exc:`RuntimeError`. Tenga en cuenta que esto no prohíbe un hilo " "diferente entrando un objeto búfer." -#: ../Doc/library/io.rst:1158 +#: ../Doc/library/io.rst:1185 msgid "" "The above implicitly extends to text files, since the :func:`open()` " "function will wrap a buffered object inside a :class:`TextIOWrapper`. This " @@ -2162,3 +2236,26 @@ msgstr "" "función :func:`open()` envolverá un objeto almacenado en búfer dentro de un :" "class:`TextIOWrapper`. Esto incluye transmisiones estándar y, por lo tanto, " "también afecta a la función :func:`print()` incorporada." + +#: ../Doc/library/io.rst:24 +msgid "file object" +msgstr "" + +#: ../Doc/library/io.rst:24 +msgid "io module" +msgstr "" + +#: ../Doc/library/io.rst:970 ../Doc/library/io.rst:1121 +msgid "universal newlines" +msgstr "" + +#: ../Doc/library/io.rst:970 +msgid "io.TextIOWrapper class" +msgstr "" + +#: ../Doc/library/io.rst:1121 +msgid "io.IncrementalNewlineDecoder class" +msgstr "" + +#~ msgid "Return the new absolute position." +#~ msgstr "Retorna la nueva posición absoluta." diff --git a/library/itertools.po b/library/itertools.po index afbc0beebb..2c74a05630 100644 --- a/library/itertools.po +++ b/library/itertools.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-04 21:35+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/itertools.rst:2 msgid ":mod:`itertools` --- Functions creating iterators for efficient looping" @@ -60,11 +60,13 @@ msgstr "" "count())``." #: ../Doc/library/itertools.rst:33 +#, fuzzy msgid "" "These tools and their built-in counterparts also work well with the high-" "speed functions in the :mod:`operator` module. For example, the " "multiplication operator can be mapped across two vectors to form an " -"efficient dot-product: ``sum(map(operator.mul, vector1, vector2))``." +"efficient dot-product: ``sum(starmap(operator.mul, zip(vec1, vec2, " +"strict=True)))``." msgstr "" "Estas herramientas y sus contrapartes incorporadas también funcionan bien " "con funciones de alta velocidad del módulo :mod:`operator`. Por ejemplo, el " @@ -77,17 +79,17 @@ msgid "**Infinite iterators:**" msgstr "**Iteradores infinitos:**" #: ../Doc/library/itertools.rst:42 ../Doc/library/itertools.rst:52 -#: ../Doc/library/itertools.rst:72 +#: ../Doc/library/itertools.rst:73 msgid "Iterator" msgstr "Iterador" #: ../Doc/library/itertools.rst:42 ../Doc/library/itertools.rst:52 -#: ../Doc/library/itertools.rst:72 +#: ../Doc/library/itertools.rst:73 msgid "Arguments" msgstr "Argumentos" #: ../Doc/library/itertools.rst:42 ../Doc/library/itertools.rst:52 -#: ../Doc/library/itertools.rst:72 ../Doc/library/itertools.rst:81 +#: ../Doc/library/itertools.rst:73 ../Doc/library/itertools.rst:82 msgid "Results" msgstr "Resultados" @@ -164,260 +166,280 @@ msgid "``accumulate([1,2,3,4,5]) --> 1 3 6 10 15``" msgstr "``accumulate([1,2,3,4,5]) --> 1 3 6 10 15``" #: ../Doc/library/itertools.rst:55 +#, fuzzy +msgid ":func:`batched`" +msgstr ":func:`tee`" + +#: ../Doc/library/itertools.rst:55 +#, fuzzy +msgid "p, n" +msgstr "p, r" + +#: ../Doc/library/itertools.rst:55 +#, fuzzy +msgid "(p0, p1, ..., p_n-1), ..." +msgstr "p0, p1, ... plast, p0, p1, ..." + +#: ../Doc/library/itertools.rst:55 +#, fuzzy +msgid "``batched('ABCDEFG', n=3) --> ABC DEF G``" +msgstr "``islice('ABCDEFG', 2, None) --> C D E F G``" + +#: ../Doc/library/itertools.rst:56 msgid ":func:`chain`" msgstr ":func:`chain`" -#: ../Doc/library/itertools.rst:55 ../Doc/library/itertools.rst:66 +#: ../Doc/library/itertools.rst:56 ../Doc/library/itertools.rst:67 msgid "p, q, ..." msgstr "p, q, ..." -#: ../Doc/library/itertools.rst:55 ../Doc/library/itertools.rst:56 +#: ../Doc/library/itertools.rst:56 ../Doc/library/itertools.rst:57 msgid "p0, p1, ... plast, q0, q1, ..." msgstr "p0, p1, ... plast, q0, q1, ..." -#: ../Doc/library/itertools.rst:55 +#: ../Doc/library/itertools.rst:56 msgid "``chain('ABC', 'DEF') --> A B C D E F``" msgstr "``chain('ABC', 'DEF') --> A B C D E F``" -#: ../Doc/library/itertools.rst:56 +#: ../Doc/library/itertools.rst:57 msgid ":func:`chain.from_iterable`" msgstr ":func:`chain.from_iterable`" -#: ../Doc/library/itertools.rst:56 ../Doc/library/itertools.rst:62 +#: ../Doc/library/itertools.rst:57 ../Doc/library/itertools.rst:63 msgid "iterable" msgstr "iterable" -#: ../Doc/library/itertools.rst:56 +#: ../Doc/library/itertools.rst:57 msgid "``chain.from_iterable(['ABC', 'DEF']) --> A B C D E F``" msgstr "``chain.from_iterable(['ABC', 'DEF']) --> A B C D E F``" -#: ../Doc/library/itertools.rst:57 +#: ../Doc/library/itertools.rst:58 msgid ":func:`compress`" msgstr ":func:`compress`" -#: ../Doc/library/itertools.rst:57 +#: ../Doc/library/itertools.rst:58 msgid "data, selectors" msgstr "data, selectors" -#: ../Doc/library/itertools.rst:57 +#: ../Doc/library/itertools.rst:58 msgid "(d[0] if s[0]), (d[1] if s[1]), ..." msgstr "(d[0] if s[0]), (d[1] if s[1]), ..." -#: ../Doc/library/itertools.rst:57 +#: ../Doc/library/itertools.rst:58 msgid "``compress('ABCDEF', [1,0,1,0,1,1]) --> A C E F``" msgstr "``compress('ABCDEF', [1,0,1,0,1,1]) --> A C E F``" -#: ../Doc/library/itertools.rst:58 +#: ../Doc/library/itertools.rst:59 msgid ":func:`dropwhile`" msgstr ":func:`dropwhile`" -#: ../Doc/library/itertools.rst:58 ../Doc/library/itertools.rst:59 -#: ../Doc/library/itertools.rst:64 +#: ../Doc/library/itertools.rst:59 ../Doc/library/itertools.rst:60 +#: ../Doc/library/itertools.rst:65 msgid "pred, seq" msgstr "pred, seq" -#: ../Doc/library/itertools.rst:58 +#: ../Doc/library/itertools.rst:59 msgid "seq[n], seq[n+1], starting when pred fails" msgstr "seq[n], seq[n+1], comenzando cuando pred falla" -#: ../Doc/library/itertools.rst:58 +#: ../Doc/library/itertools.rst:59 msgid "``dropwhile(lambda x: x<5, [1,4,6,4,1]) --> 6 4 1``" msgstr "``dropwhile(lambda x: x<5, [1,4,6,4,1]) --> 6 4 1``" -#: ../Doc/library/itertools.rst:59 +#: ../Doc/library/itertools.rst:60 msgid ":func:`filterfalse`" msgstr ":func:`filterfalse`" -#: ../Doc/library/itertools.rst:59 +#: ../Doc/library/itertools.rst:60 msgid "elements of seq where pred(elem) is false" msgstr "elementos de seq donde pred(elem) es falso" -#: ../Doc/library/itertools.rst:59 +#: ../Doc/library/itertools.rst:60 msgid "``filterfalse(lambda x: x%2, range(10)) --> 0 2 4 6 8``" msgstr "``filterfalse(lambda x: x%2, range(10)) --> 0 2 4 6 8``" -#: ../Doc/library/itertools.rst:60 +#: ../Doc/library/itertools.rst:61 msgid ":func:`groupby`" msgstr ":func:`groupby`" -#: ../Doc/library/itertools.rst:60 +#: ../Doc/library/itertools.rst:61 msgid "iterable[, key]" msgstr "iterable[, key]" -#: ../Doc/library/itertools.rst:60 +#: ../Doc/library/itertools.rst:61 msgid "sub-iterators grouped by value of key(v)" msgstr "sub-iteradores agrupados según el valor de key(v)" -#: ../Doc/library/itertools.rst:61 +#: ../Doc/library/itertools.rst:62 msgid ":func:`islice`" msgstr ":func:`islice`" -#: ../Doc/library/itertools.rst:61 +#: ../Doc/library/itertools.rst:62 msgid "seq, [start,] stop [, step]" msgstr "seq, [start,] stop [, step]" -#: ../Doc/library/itertools.rst:61 +#: ../Doc/library/itertools.rst:62 msgid "elements from seq[start:stop:step]" msgstr "elementos de seq[start:stop:step]" -#: ../Doc/library/itertools.rst:61 +#: ../Doc/library/itertools.rst:62 msgid "``islice('ABCDEFG', 2, None) --> C D E F G``" msgstr "``islice('ABCDEFG', 2, None) --> C D E F G``" -#: ../Doc/library/itertools.rst:62 +#: ../Doc/library/itertools.rst:63 msgid ":func:`pairwise`" msgstr ":func:`pairwise`" -#: ../Doc/library/itertools.rst:62 +#: ../Doc/library/itertools.rst:63 msgid "(p[0], p[1]), (p[1], p[2])" msgstr "(p[0], p[1]), (p[1], p[2])" -#: ../Doc/library/itertools.rst:62 +#: ../Doc/library/itertools.rst:63 msgid "``pairwise('ABCDEFG') --> AB BC CD DE EF FG``" msgstr "``pairwise('ABCDEFG') --> AB BC CD DE EF FG``" -#: ../Doc/library/itertools.rst:63 +#: ../Doc/library/itertools.rst:64 msgid ":func:`starmap`" msgstr ":func:`starmap`" -#: ../Doc/library/itertools.rst:63 +#: ../Doc/library/itertools.rst:64 msgid "func, seq" msgstr "func, seq" -#: ../Doc/library/itertools.rst:63 +#: ../Doc/library/itertools.rst:64 msgid "func(\\*seq[0]), func(\\*seq[1]), ..." msgstr "func(\\*seq[0]), func(\\*seq[1]), ..." -#: ../Doc/library/itertools.rst:63 +#: ../Doc/library/itertools.rst:64 msgid "``starmap(pow, [(2,5), (3,2), (10,3)]) --> 32 9 1000``" msgstr "``starmap(pow, [(2,5), (3,2), (10,3)]) --> 32 9 1000``" -#: ../Doc/library/itertools.rst:64 +#: ../Doc/library/itertools.rst:65 msgid ":func:`takewhile`" msgstr ":func:`takewhile`" -#: ../Doc/library/itertools.rst:64 +#: ../Doc/library/itertools.rst:65 msgid "seq[0], seq[1], until pred fails" msgstr "seq[0], seq[1], hasta que pred falle" -#: ../Doc/library/itertools.rst:64 +#: ../Doc/library/itertools.rst:65 msgid "``takewhile(lambda x: x<5, [1,4,6,4,1]) --> 1 4``" msgstr "``takewhile(lambda x: x<5, [1,4,6,4,1]) --> 1 4``" -#: ../Doc/library/itertools.rst:65 +#: ../Doc/library/itertools.rst:66 msgid ":func:`tee`" msgstr ":func:`tee`" -#: ../Doc/library/itertools.rst:65 +#: ../Doc/library/itertools.rst:66 msgid "it, n" msgstr "it, n" -#: ../Doc/library/itertools.rst:65 +#: ../Doc/library/itertools.rst:66 msgid "it1, it2, ... itn splits one iterator into n" msgstr "it1, it2, ... itn divide un iterador en n" -#: ../Doc/library/itertools.rst:66 +#: ../Doc/library/itertools.rst:67 msgid ":func:`zip_longest`" msgstr ":func:`zip_longest`" -#: ../Doc/library/itertools.rst:66 +#: ../Doc/library/itertools.rst:67 msgid "(p[0], q[0]), (p[1], q[1]), ..." msgstr "(p[0], q[0]), (p[1], q[1]), ..." -#: ../Doc/library/itertools.rst:66 +#: ../Doc/library/itertools.rst:67 msgid "``zip_longest('ABCD', 'xy', fillvalue='-') --> Ax By C- D-``" msgstr "``zip_longest('ABCD', 'xy', fillvalue='-') --> Ax By C- D-``" -#: ../Doc/library/itertools.rst:69 +#: ../Doc/library/itertools.rst:70 msgid "**Combinatoric iterators:**" msgstr "**Iteradores combinatorios:**" -#: ../Doc/library/itertools.rst:74 +#: ../Doc/library/itertools.rst:75 msgid ":func:`product`" msgstr ":func:`product`" -#: ../Doc/library/itertools.rst:74 +#: ../Doc/library/itertools.rst:75 msgid "p, q, ... [repeat=1]" msgstr "p, q, ... [repeat=1]" -#: ../Doc/library/itertools.rst:74 +#: ../Doc/library/itertools.rst:75 msgid "cartesian product, equivalent to a nested for-loop" msgstr "producto cartesiano, equivalente a un bucle `for` anidado" -#: ../Doc/library/itertools.rst:75 +#: ../Doc/library/itertools.rst:76 msgid ":func:`permutations`" msgstr ":func:`permutations`" -#: ../Doc/library/itertools.rst:75 +#: ../Doc/library/itertools.rst:76 msgid "p[, r]" msgstr "p[, r]" -#: ../Doc/library/itertools.rst:75 +#: ../Doc/library/itertools.rst:76 msgid "r-length tuples, all possible orderings, no repeated elements" msgstr "" "tuplas de longitud r, en todas los órdenes posibles, sin elementos repetidos" -#: ../Doc/library/itertools.rst:76 +#: ../Doc/library/itertools.rst:77 msgid ":func:`combinations`" msgstr ":func:`combinations`" -#: ../Doc/library/itertools.rst:76 ../Doc/library/itertools.rst:77 +#: ../Doc/library/itertools.rst:77 ../Doc/library/itertools.rst:78 msgid "p, r" msgstr "p, r" -#: ../Doc/library/itertools.rst:76 +#: ../Doc/library/itertools.rst:77 msgid "r-length tuples, in sorted order, no repeated elements" msgstr "tuplas de longitud r, ordenadas, sin elementos repetidos" -#: ../Doc/library/itertools.rst:77 +#: ../Doc/library/itertools.rst:78 msgid ":func:`combinations_with_replacement`" msgstr ":func:`combinations_with_replacement`" -#: ../Doc/library/itertools.rst:77 +#: ../Doc/library/itertools.rst:78 msgid "r-length tuples, in sorted order, with repeated elements" msgstr "tuplas de longitud r, ordenadas, con elementos repetidos" -#: ../Doc/library/itertools.rst:81 +#: ../Doc/library/itertools.rst:82 msgid "Examples" msgstr "Ejemplos" -#: ../Doc/library/itertools.rst:83 +#: ../Doc/library/itertools.rst:84 msgid "``product('ABCD', repeat=2)``" msgstr "``product('ABCD', repeat=2)``" -#: ../Doc/library/itertools.rst:83 +#: ../Doc/library/itertools.rst:84 msgid "``AA AB AC AD BA BB BC BD CA CB CC CD DA DB DC DD``" msgstr "``AA AB AC AD BA BB BC BD CA CB CC CD DA DB DC DD``" -#: ../Doc/library/itertools.rst:84 +#: ../Doc/library/itertools.rst:85 msgid "``permutations('ABCD', 2)``" msgstr "``permutations('ABCD', 2)``" -#: ../Doc/library/itertools.rst:84 +#: ../Doc/library/itertools.rst:85 msgid "``AB AC AD BA BC BD CA CB CD DA DB DC``" msgstr "``AB AC AD BA BC BD CA CB CD DA DB DC``" -#: ../Doc/library/itertools.rst:85 +#: ../Doc/library/itertools.rst:86 msgid "``combinations('ABCD', 2)``" msgstr "``combinations('ABCD', 2)``" -#: ../Doc/library/itertools.rst:85 +#: ../Doc/library/itertools.rst:86 msgid "``AB AC AD BC BD CD``" msgstr "``AB AC AD BC BD CD``" -#: ../Doc/library/itertools.rst:86 +#: ../Doc/library/itertools.rst:87 msgid "``combinations_with_replacement('ABCD', 2)``" msgstr "``combinations_with_replacement('ABCD', 2)``" -#: ../Doc/library/itertools.rst:86 +#: ../Doc/library/itertools.rst:87 msgid "``AA AB AC AD BB BC BD CC CD DD``" msgstr "``AA AB AC AD BB BC BD CC CD DD``" -#: ../Doc/library/itertools.rst:93 +#: ../Doc/library/itertools.rst:94 msgid "Itertool functions" msgstr "Funciones de itertools" -#: ../Doc/library/itertools.rst:95 +#: ../Doc/library/itertools.rst:96 msgid "" "The following module functions all construct and return iterators. Some " "provide streams of infinite length, so they should only be accessed by " @@ -427,7 +449,7 @@ msgstr "" "Algunas proveen flujos infinitos, por lo que deberían ser sólo manipuladas " "por funciones o bucles que cortan el flujo." -#: ../Doc/library/itertools.rst:101 +#: ../Doc/library/itertools.rst:102 msgid "" "Make an iterator that returns accumulated sums, or accumulated results of " "other binary functions (specified via the optional *func* argument)." @@ -435,7 +457,7 @@ msgstr "" "Crea un iterador que retorna sumas acumuladas o resultados acumulados de " "otra función binaria (especificada a través del argumento opcional *func*)." -#: ../Doc/library/itertools.rst:105 +#: ../Doc/library/itertools.rst:106 msgid "" "If *func* is supplied, it should be a function of two arguments. Elements of " "the input *iterable* may be any type that can be accepted as arguments to " @@ -449,7 +471,7 @@ msgstr "" "defecto –adición, los elementos pueden ser cualquier tipo que sea sumable, " "incluyendo :class:`~decimal.Decimal` o :class:`~fractions.Fraction`.)" -#: ../Doc/library/itertools.rst:112 +#: ../Doc/library/itertools.rst:113 msgid "" "Usually, the number of elements output matches the input iterable. However, " "if the keyword argument *initial* is provided, the accumulation leads off " @@ -461,14 +483,14 @@ msgstr "" "*initial* es suministrado, la acumulación empieza con *initial* como valor " "inicial y el resultado contiene un elemento más que el iterador de entrada." -#: ../Doc/library/itertools.rst:117 ../Doc/library/itertools.rst:203 -#: ../Doc/library/itertools.rst:252 ../Doc/library/itertools.rst:452 -#: ../Doc/library/itertools.rst:488 ../Doc/library/itertools.rst:515 -#: ../Doc/library/itertools.rst:595 +#: ../Doc/library/itertools.rst:118 ../Doc/library/itertools.rst:191 +#: ../Doc/library/itertools.rst:242 ../Doc/library/itertools.rst:291 +#: ../Doc/library/itertools.rst:491 ../Doc/library/itertools.rst:527 +#: ../Doc/library/itertools.rst:554 ../Doc/library/itertools.rst:634 msgid "Roughly equivalent to::" msgstr "Aproximadamente equivalente a::" -#: ../Doc/library/itertools.rst:136 +#: ../Doc/library/itertools.rst:137 msgid "" "There are a number of uses for the *func* argument. It can be set to :func:" "`min` for a running minimum, :func:`max` for a running maximum, or :func:" @@ -480,7 +502,7 @@ msgstr "" "`operator.mul` para un producto en ejecución. Las tablas de amortización se " "pueden construir acumulando intereses y aplicando pagos:" -#: ../Doc/library/itertools.rst:154 +#: ../Doc/library/itertools.rst:155 msgid "" "See :func:`functools.reduce` for a similar function that returns only the " "final accumulated value." @@ -488,15 +510,29 @@ msgstr "" "Para una función similar que retorne únicamente el valor final acumulado, " "revisa :func:`functools.reduce`." -#: ../Doc/library/itertools.rst:159 +#: ../Doc/library/itertools.rst:160 msgid "Added the optional *func* parameter." msgstr "Adicionó el argumento opcional *func*." -#: ../Doc/library/itertools.rst:162 +#: ../Doc/library/itertools.rst:163 msgid "Added the optional *initial* parameter." msgstr "Adicionó el argumento opcional *initial*." -#: ../Doc/library/itertools.rst:167 +#: ../Doc/library/itertools.rst:169 +msgid "" +"Batch data from the *iterable* into tuples of length *n*. The last batch may " +"be shorter than *n*." +msgstr "" + +#: ../Doc/library/itertools.rst:172 +msgid "" +"Loops over the input iterable and accumulates data into tuples up to size " +"*n*. The input is consumed lazily, just enough to fill a batch. The result " +"is yielded as soon as the batch is full or when the input iterable is " +"exhausted:" +msgstr "" + +#: ../Doc/library/itertools.rst:206 msgid "" "Make an iterator that returns elements from the first iterable until it is " "exhausted, then proceeds to the next iterable, until all of the iterables " @@ -508,7 +544,7 @@ msgstr "" "los iterables son consumidos. Se utiliza para tratar secuencias " "consecutivas como unas sola secuencia. Aproximadamente equivalente a::" -#: ../Doc/library/itertools.rst:181 +#: ../Doc/library/itertools.rst:220 msgid "" "Alternate constructor for :func:`chain`. Gets chained inputs from a single " "iterable argument that is evaluated lazily. Roughly equivalent to::" @@ -517,13 +553,13 @@ msgstr "" "un mismo argumento que se evalúa perezosamente. Aproximadamente equivalente " "a::" -#: ../Doc/library/itertools.rst:193 +#: ../Doc/library/itertools.rst:232 msgid "Return *r* length subsequences of elements from the input *iterable*." msgstr "" "Retorna subsecuencias de longitud *r* con elementos del *iterable* de " "entrada." -#: ../Doc/library/itertools.rst:195 ../Doc/library/itertools.rst:244 +#: ../Doc/library/itertools.rst:234 ../Doc/library/itertools.rst:283 msgid "" "The combination tuples are emitted in lexicographic ordering according to " "the order of the input *iterable*. So, if the input *iterable* is sorted, " @@ -533,7 +569,7 @@ msgstr "" "la entrada *iterable*. Por lo tanto, si se ordena la entrada *iterable*, las " "tuplas de salida se producirán en orden." -#: ../Doc/library/itertools.rst:199 +#: ../Doc/library/itertools.rst:238 msgid "" "Elements are treated as unique based on their position, not on their value. " "So if the input elements are unique, there will be no repeated values in " @@ -543,7 +579,7 @@ msgstr "" "valor. Entonces, si los elementos de entrada son únicos, no habrá valores " "repetidos en cada combinación." -#: ../Doc/library/itertools.rst:225 +#: ../Doc/library/itertools.rst:264 msgid "" "The code for :func:`combinations` can be also expressed as a subsequence of :" "func:`permutations` after filtering entries where the elements are not in " @@ -554,7 +590,7 @@ msgstr "" "elementos no están ordenados (de acuerdo a su posición en el conjunto de " "entrada)::" -#: ../Doc/library/itertools.rst:236 +#: ../Doc/library/itertools.rst:275 msgid "" "The number of items returned is ``n! / r! / (n-r)!`` when ``0 <= r <= n`` or " "zero when ``r > n``." @@ -562,7 +598,7 @@ msgstr "" "El número de elementos retornados es ``n! / r! / (n-r)!`` cuando ``0 <= r <= " "n`` o cero cuando ``r > n``." -#: ../Doc/library/itertools.rst:241 +#: ../Doc/library/itertools.rst:280 msgid "" "Return *r* length subsequences of elements from the input *iterable* " "allowing individual elements to be repeated more than once." @@ -571,7 +607,7 @@ msgstr "" "entrada, permitiendo que haya elementos individuales repetidos más de una " "vez." -#: ../Doc/library/itertools.rst:248 +#: ../Doc/library/itertools.rst:287 msgid "" "Elements are treated as unique based on their position, not on their value. " "So if the input elements are unique, the generated combinations will also be " @@ -581,7 +617,7 @@ msgstr "" "valor. De esta manera, si los elementos de entrada son únicos, las " "combinaciones generadas también serán únicas." -#: ../Doc/library/itertools.rst:271 +#: ../Doc/library/itertools.rst:310 msgid "" "The code for :func:`combinations_with_replacement` can be also expressed as " "a subsequence of :func:`product` after filtering entries where the elements " @@ -592,14 +628,14 @@ msgstr "" "donde los elementos no están ordenados (de acuerdo a su posición en el " "conjunto de entrada)::" -#: ../Doc/library/itertools.rst:282 +#: ../Doc/library/itertools.rst:321 msgid "" "The number of items returned is ``(n+r-1)! / r! / (n-1)!`` when ``n > 0``." msgstr "" "El número de elementos retornados es ``(n+r-1)! / r! / (n-1)!`` cuando ``n > " "0``." -#: ../Doc/library/itertools.rst:289 +#: ../Doc/library/itertools.rst:328 msgid "" "Make an iterator that filters elements from *data* returning only those that " "have a corresponding element in *selectors* that evaluates to ``True``. " @@ -611,7 +647,7 @@ msgstr "" "El iterador se detiene cuando alguno de los iterables (*data* o *selectors*) " "ha sido consumido. Aproximadamente equivalente a::" -#: ../Doc/library/itertools.rst:303 +#: ../Doc/library/itertools.rst:342 msgid "" "Make an iterator that returns evenly spaced values starting with number " "*start*. Often used as an argument to :func:`map` to generate consecutive " @@ -623,7 +659,7 @@ msgstr "" "para generar puntos de datos consecutivos. También se utiliza en :func:`zip` " "para agregar secuencias de números. Aproximadamente equivalente a::" -#: ../Doc/library/itertools.rst:315 +#: ../Doc/library/itertools.rst:354 msgid "" "When counting with floating point numbers, better accuracy can sometimes be " "achieved by substituting multiplicative code such as: ``(start + step * i " @@ -633,13 +669,13 @@ msgstr "" "mejor precisión al sustituir código multiplicativo como: ``(start + step * i " "for i in count())``." -#: ../Doc/library/itertools.rst:319 +#: ../Doc/library/itertools.rst:358 msgid "Added *step* argument and allowed non-integer arguments." msgstr "" "Se adicionó el argumento *step* y se permitieron argumentos diferentes a " "enteros." -#: ../Doc/library/itertools.rst:324 +#: ../Doc/library/itertools.rst:363 msgid "" "Make an iterator returning elements from the iterable and saving a copy of " "each. When the iterable is exhausted, return elements from the saved copy. " @@ -649,7 +685,7 @@ msgstr "" "uno. Cuando el iterable es consumido, retornar los elementos de la copia " "almacenada. Se repite indefinidamente. Aproximadamente equivalente a::" -#: ../Doc/library/itertools.rst:338 +#: ../Doc/library/itertools.rst:377 msgid "" "Note, this member of the toolkit may require significant auxiliary storage " "(depending on the length of the iterable)." @@ -657,7 +693,7 @@ msgstr "" "Ten en cuenta, este miembro del conjunto de herramientas puede requerir " "almacenamiento auxiliar importante (dependiendo de la longitud del iterable)." -#: ../Doc/library/itertools.rst:344 +#: ../Doc/library/itertools.rst:383 msgid "" "Make an iterator that drops elements from the iterable as long as the " "predicate is true; afterwards, returns every element. Note, the iterator " @@ -670,10 +706,11 @@ msgstr "" "pudiendo incurrir en un tiempo de arranque extenso. Aproximadamente " "equivalente a::" -#: ../Doc/library/itertools.rst:361 +#: ../Doc/library/itertools.rst:400 +#, fuzzy msgid "" "Make an iterator that filters elements from iterable returning only those " -"for which the predicate is ``False``. If *predicate* is ``None``, return the " +"for which the predicate is false. If *predicate* is ``None``, return the " "items that are false. Roughly equivalent to::" msgstr "" "Crea un iterador que filtra elementos de un iterable, retornando sólo " @@ -681,7 +718,7 @@ msgstr "" "``None``, retorna los elementos que son falsos. Aproximadamente equivalente " "a::" -#: ../Doc/library/itertools.rst:376 +#: ../Doc/library/itertools.rst:415 msgid "" "Make an iterator that returns consecutive keys and groups from the " "*iterable*. The *key* is a function computing a key value for each element. " @@ -695,7 +732,7 @@ msgstr "" "retorna el elemento sin cambios. Generalmente, el iterable necesita estar " "ordenado con la misma función *key*." -#: ../Doc/library/itertools.rst:382 +#: ../Doc/library/itertools.rst:421 msgid "" "The operation of :func:`groupby` is similar to the ``uniq`` filter in Unix. " "It generates a break or new group every time the value of the key function " @@ -709,7 +746,7 @@ msgstr "" "misma función clave). Ese comportamiento difiere del de GROUP BY de SQL, el " "cual agrega elementos comunes sin importar el orden de entrada." -#: ../Doc/library/itertools.rst:388 +#: ../Doc/library/itertools.rst:427 msgid "" "The returned group is itself an iterator that shares the underlying iterable " "with :func:`groupby`. Because the source is shared, when the :func:" @@ -721,11 +758,11 @@ msgstr "" "`groupby` se avanza, el grupo previo deja de ser visible. En ese caso, si " "los datos se necesitan posteriormente, se deberían almacenar como lista::" -#: ../Doc/library/itertools.rst:400 +#: ../Doc/library/itertools.rst:439 msgid ":func:`groupby` is roughly equivalent to::" msgstr ":func:`groupby` es aproximadamente equivalente a::" -#: ../Doc/library/itertools.rst:437 +#: ../Doc/library/itertools.rst:476 msgid "" "Make an iterator that returns selected elements from the iterable. If " "*start* is non-zero, then elements from the iterable are skipped until start " @@ -742,7 +779,7 @@ msgstr "" "``None``, la iteración continúa hasta que se agota el iterador, si es que se " "agota; de lo contrario, se detiene en la posición especificada." -#: ../Doc/library/itertools.rst:444 +#: ../Doc/library/itertools.rst:483 msgid "" "If *start* is ``None``, then iteration starts at zero. If *step* is " "``None``, then the step defaults to one." @@ -750,7 +787,7 @@ msgstr "" "Si *start* es ``None``, la iteración empieza en cero. Si *step* es ``None``, " "step se establece en uno por defecto." -#: ../Doc/library/itertools.rst:447 +#: ../Doc/library/itertools.rst:486 msgid "" "Unlike regular slicing, :func:`islice` does not support negative values for " "*start*, *stop*, or *step*. Can be used to extract related fields from data " @@ -763,12 +800,12 @@ msgstr "" "ejemplo, un informe de varias líneas puede incluir un campo de nombre cada " "tres líneas)." -#: ../Doc/library/itertools.rst:482 +#: ../Doc/library/itertools.rst:521 msgid "Return successive overlapping pairs taken from the input *iterable*." msgstr "" "Retorna los sucesivos pares superpuestos tomados de la entrada *iterable*." -#: ../Doc/library/itertools.rst:484 +#: ../Doc/library/itertools.rst:523 msgid "" "The number of 2-tuples in the output iterator will be one fewer than the " "number of inputs. It will be empty if the input iterable has fewer than two " @@ -778,14 +815,14 @@ msgstr "" "que el número de entradas. Estará vacío si la entrada iterable tiene menos " "de dos valores." -#: ../Doc/library/itertools.rst:501 +#: ../Doc/library/itertools.rst:540 msgid "" "Return successive *r* length permutations of elements in the *iterable*." msgstr "" "Retorna permutaciones de elementos sucesivas de longitud *r* en el " "*iterable*." -#: ../Doc/library/itertools.rst:503 +#: ../Doc/library/itertools.rst:542 msgid "" "If *r* is not specified or is ``None``, then *r* defaults to the length of " "the *iterable* and all possible full-length permutations are generated." @@ -794,7 +831,7 @@ msgstr "" "igual a la longitud de *iterable* y todas las permutaciones de máxima " "longitud serán generadas." -#: ../Doc/library/itertools.rst:507 +#: ../Doc/library/itertools.rst:546 msgid "" "The permutation tuples are emitted in lexicographic order according to the " "order of the input *iterable*. So, if the input *iterable* is sorted, the " @@ -804,7 +841,7 @@ msgstr "" "la entrada *iterable*. Por lo tanto, si se ordena la entrada *iterable*, las " "tuplas de salida se producirán en orden." -#: ../Doc/library/itertools.rst:511 +#: ../Doc/library/itertools.rst:550 msgid "" "Elements are treated as unique based on their position, not on their value. " "So if the input elements are unique, there will be no repeated values within " @@ -814,7 +851,7 @@ msgstr "" "valor. Entonces, si los elementos de entrada son únicos, no habrá valores " "repetidos dentro de una permutación." -#: ../Doc/library/itertools.rst:542 +#: ../Doc/library/itertools.rst:581 msgid "" "The code for :func:`permutations` can be also expressed as a subsequence of :" "func:`product`, filtered to exclude entries with repeated elements (those " @@ -825,7 +862,7 @@ msgstr "" "elementos repetidos (aquellos en la misma posición que en el conjunto de " "entrada)::" -#: ../Doc/library/itertools.rst:554 +#: ../Doc/library/itertools.rst:593 msgid "" "The number of items returned is ``n! / (n-r)!`` when ``0 <= r <= n`` or zero " "when ``r > n``." @@ -833,11 +870,11 @@ msgstr "" "El número de elementos retornados es ``n! / (n-r)!`` cuando ``0 <= r <= n`` " "o cero cuando ``r > n``." -#: ../Doc/library/itertools.rst:559 +#: ../Doc/library/itertools.rst:598 msgid "Cartesian product of input iterables." msgstr "Producto cartesiano de los iterables de entrada." -#: ../Doc/library/itertools.rst:561 +#: ../Doc/library/itertools.rst:600 msgid "" "Roughly equivalent to nested for-loops in a generator expression. For " "example, ``product(A, B)`` returns the same as ``((x,y) for x in A for y in " @@ -847,7 +884,7 @@ msgstr "" "Por ejemplo, ``product(A, B)`` es equivalente a ``((x,y) for x in A for y in " "B)``." -#: ../Doc/library/itertools.rst:564 +#: ../Doc/library/itertools.rst:603 msgid "" "The nested loops cycle like an odometer with the rightmost element advancing " "on every iteration. This pattern creates a lexicographic ordering so that " @@ -859,7 +896,7 @@ msgstr "" "un orden lexicográfico en el que, si los iterables de entrada están " "ordenados, las tuplas producidas son emitidas de manera ordenada." -#: ../Doc/library/itertools.rst:569 +#: ../Doc/library/itertools.rst:608 msgid "" "To compute the product of an iterable with itself, specify the number of " "repetitions with the optional *repeat* keyword argument. For example, " @@ -869,7 +906,7 @@ msgstr "" "de repeticiones con el argumento opcional *repeat*. Por ejemplo, " "``product(A, repeat=4)`` es equivalente a ``product(A, A, A, A)``." -#: ../Doc/library/itertools.rst:573 +#: ../Doc/library/itertools.rst:612 msgid "" "This function is roughly equivalent to the following code, except that the " "actual implementation does not build up intermediate results in memory::" @@ -877,7 +914,7 @@ msgstr "" "Esta función es aproximadamente equivalente al código siguiente, exceptuando " "que la implementación real no acumula resultados intermedios en memoria::" -#: ../Doc/library/itertools.rst:586 +#: ../Doc/library/itertools.rst:625 msgid "" "Before :func:`product` runs, it completely consumes the input iterables, " "keeping pools of values in memory to generate the products. Accordingly, it " @@ -887,7 +924,7 @@ msgstr "" "de entrada, manteniendo grupos de valores en la memoria para generar los " "productos. En consecuencia, solo es útil con entradas finitas." -#: ../Doc/library/itertools.rst:592 +#: ../Doc/library/itertools.rst:631 msgid "" "Make an iterator that returns *object* over and over again. Runs " "indefinitely unless the *times* argument is specified." @@ -895,7 +932,7 @@ msgstr "" "Crea un iterador que retorna *object* una y otra vez. Se ejecuta " "indefinidamente a menos que se especifique el argumento *times*." -#: ../Doc/library/itertools.rst:606 +#: ../Doc/library/itertools.rst:645 msgid "" "A common use for *repeat* is to supply a stream of constant values to *map* " "or *zip*:" @@ -903,7 +940,7 @@ msgstr "" "Un uso común de *repeat* es proporcionar un flujo de valores constantes a " "*map* o *zip*:" -#: ../Doc/library/itertools.rst:616 +#: ../Doc/library/itertools.rst:655 msgid "" "Make an iterator that computes the function using arguments obtained from " "the iterable. Used instead of :func:`map` when argument parameters are " @@ -915,7 +952,7 @@ msgstr "" "ya están agrupados en tuplas de un solo iterable (cuando los datos se han " "\"comprimido previamente\")." -#: ../Doc/library/itertools.rst:621 +#: ../Doc/library/itertools.rst:660 msgid "" "The difference between :func:`map` and :func:`starmap` parallels the " "distinction between ``function(a,b)`` and ``function(*c)``. Roughly " @@ -925,7 +962,7 @@ msgstr "" "distinción entre ``function(a,b)`` y ``function(*c)``. Aproximadamente " "equivalente a:" -#: ../Doc/library/itertools.rst:633 +#: ../Doc/library/itertools.rst:672 msgid "" "Make an iterator that returns elements from the iterable as long as the " "predicate is true. Roughly equivalent to::" @@ -933,11 +970,11 @@ msgstr "" "Crea un iterador que retorna elementos del iterador siempre y cuando el " "predicado sea cierto. Aproximadamente equivalente a::" -#: ../Doc/library/itertools.rst:647 +#: ../Doc/library/itertools.rst:686 msgid "Return *n* independent iterators from a single iterable." msgstr "Retorna *n* iteradores independientes de un mismo iterador." -#: ../Doc/library/itertools.rst:649 +#: ../Doc/library/itertools.rst:688 msgid "" "The following Python code helps explain what *tee* does (although the actual " "implementation is more complex and uses only a single underlying :abbr:`FIFO " @@ -947,7 +984,7 @@ msgstr "" "implementación real es más compleja y usa solo una sola cola subyacente :" "abbr:`FIFO (primero en entrar, primero en salir)`):" -#: ../Doc/library/itertools.rst:668 +#: ../Doc/library/itertools.rst:707 msgid "" "Once a :func:`tee` has been created, the original *iterable* should not be " "used anywhere else; otherwise, the *iterable* could get advanced without the " @@ -957,10 +994,11 @@ msgstr "" "usarse en ningún otro lugar; de lo contrario, el *iterable* podría avanzar " "sin que se informe a los objetos en T." -#: ../Doc/library/itertools.rst:672 +#: ../Doc/library/itertools.rst:711 +#, fuzzy msgid "" "``tee`` iterators are not threadsafe. A :exc:`RuntimeError` may be raised " -"when using simultaneously iterators returned by the same :func:`tee` call, " +"when simultaneously using iterators returned by the same :func:`tee` call, " "even if the original *iterable* is threadsafe." msgstr "" "Los iteradores ``tee`` no son *threadsafe*. :exc:`RuntimeError` puede " @@ -968,7 +1006,7 @@ msgstr "" "llamada a :func:`tee` call, aún cuando el *iterable* original sea " "*threadsafe*." -#: ../Doc/library/itertools.rst:676 +#: ../Doc/library/itertools.rst:715 msgid "" "This itertool may require significant auxiliary storage (depending on how " "much temporary data needs to be stored). In general, if one iterator uses " @@ -981,7 +1019,7 @@ msgstr "" "otro iterador comience, es más rápido utilizar :func:`list` en vez de :func:" "`tee`." -#: ../Doc/library/itertools.rst:684 +#: ../Doc/library/itertools.rst:723 msgid "" "Make an iterator that aggregates elements from each of the iterables. If the " "iterables are of uneven length, missing values are filled-in with " @@ -993,7 +1031,7 @@ msgstr "" "*fillvalue*. La iteración continúa hasta que el iterable más largo sea " "consumido. Aproximadamente equivalente a::" -#: ../Doc/library/itertools.rst:708 +#: ../Doc/library/itertools.rst:747 msgid "" "If one of the iterables is potentially infinite, then the :func:" "`zip_longest` function should be wrapped with something that limits the " @@ -1005,11 +1043,11 @@ msgstr "" "llamadas (por ejemplo, :func:`islice` o :func:`takewhile`). Si no se " "especifica, *fillvalue* es ``None`` por defecto." -#: ../Doc/library/itertools.rst:717 +#: ../Doc/library/itertools.rst:756 msgid "Itertools Recipes" msgstr "Fórmulas con itertools" -#: ../Doc/library/itertools.rst:719 +#: ../Doc/library/itertools.rst:758 msgid "" "This section shows recipes for creating an extended toolset using the " "existing itertools as building blocks." @@ -1017,14 +1055,15 @@ msgstr "" "Esta sección muestra fórmulas para crear un conjunto de herramientas " "extendido usando las herramientas de itertools como piezas básicas." -#: ../Doc/library/itertools.rst:722 +#: ../Doc/library/itertools.rst:761 +#, fuzzy msgid "" "The primary purpose of the itertools recipes is educational. The recipes " "show various ways of thinking about individual tools — for example, that " "``chain.from_iterable`` is related to the concept of flattening. The " "recipes also give ideas about ways that the tools can be combined — for " -"example, how `compress()` and `range()` can work together. The recipes also " -"show patterns for using itertools with the :mod:`operator` and :mod:" +"example, how ``compress()`` and ``range()`` can work together. The recipes " +"also show patterns for using itertools with the :mod:`operator` and :mod:" "`collections` modules as well as with the built-in itertools such as " "``map()``, ``filter()``, ``reversed()``, and ``enumerate()``." msgstr "" @@ -1038,19 +1077,20 @@ msgstr "" "las itertools integradas, como ``map()``, ``filter()``, ``reversed()`` y " "``enumerate()``." -#: ../Doc/library/itertools.rst:731 +#: ../Doc/library/itertools.rst:770 +#, fuzzy msgid "" "A secondary purpose of the recipes is to serve as an incubator. The " "``accumulate()``, ``compress()``, and ``pairwise()`` itertools started out " -"as recipes. Currently, the ``iter_index()`` recipe is being tested to see " -"whether it proves its worth." +"as recipes. Currently, the ``sliding_window()`` and ``iter_index()`` " +"recipes are being tested to see whether they prove their worth." msgstr "" "Un propósito secundario de las recetas es servir como incubadora. Las " "itertools ``accumulate()``, ``compress()`` y ``pairwise()`` comenzaron como " "recetas. Actualmente, la receta ``iter_index()`` se está probando para ver " "si demuestra su valor." -#: ../Doc/library/itertools.rst:736 +#: ../Doc/library/itertools.rst:775 msgid "" "Substantially all of these recipes and many, many others can be installed " "from the `more-itertools project `_, ubicado en el Python Package Index::" -#: ../Doc/library/itertools.rst:742 +#: ../Doc/library/itertools.rst:781 msgid "" "Many of the recipes offer the same high performance as the underlying " "toolset. Superior memory performance is kept by processing elements one at a " @@ -1078,3 +1118,7 @@ msgstr "" "variables temporales. Se mantiene la alta velocidad al preferir bloques de " "construcción \"vectorizados\" sobre el uso de bucles for y :term:" "`generator`\\s que incurren en una sobrecarga del intérprete." + +#: ../Doc/library/itertools.rst:1022 +msgid "The following recipes have a more mathematical flavor:" +msgstr "" diff --git a/library/json.po b/library/json.po index 37cbe8bc30..50f5f2c584 100644 --- a/library/json.po +++ b/library/json.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-30 21:44+0800\n" "Last-Translator: Juan Pablo Esparza R. \n" "Language: es_ES\n" @@ -19,8 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/json.rst:2 msgid ":mod:`json` --- JSON encoder and decoder" @@ -248,10 +247,11 @@ msgstr "" "diccionarios se ordenará por llave." #: ../Doc/library/json.rst:194 +#, fuzzy msgid "" "To use a custom :class:`JSONEncoder` subclass (e.g. one that overrides the :" -"meth:`default` method to serialize additional types), specify it with the " -"*cls* kwarg; otherwise :class:`JSONEncoder` is used." +"meth:`~JSONEncoder.default` method to serialize additional types), specify " +"it with the *cls* kwarg; otherwise :class:`JSONEncoder` is used." msgstr "" "Para usar una subclase personalizada de :class:`JSONEncoder` (por ejemplo, " "una que sobre escriba el método :meth:`default` para serializar tipos " @@ -650,11 +650,12 @@ msgid "Added support for int- and float-derived Enum classes." msgstr "Compatibilidad añadida con las clases Enum derivadas de int y float." #: ../Doc/library/json.rst:424 +#, fuzzy msgid "" "To extend this to recognize other objects, subclass and implement a :meth:" -"`default` method with another method that returns a serializable object for " -"``o`` if possible, otherwise it should call the superclass implementation " -"(to raise :exc:`TypeError`)." +"`~JSONEncoder.default` method with another method that returns a " +"serializable object for ``o`` if possible, otherwise it should call the " +"superclass implementation (to raise :exc:`TypeError`)." msgstr "" "A fin de extender esto para reconocer otros objetos, implementar una " "subclase con un método :meth:`default` con otro método que retorna un objeto " @@ -720,9 +721,10 @@ msgstr "" "exc:`TypeError`)." #: ../Doc/library/json.rst:485 +#, fuzzy msgid "" "For example, to support arbitrary iterators, you could implement :meth:" -"`default` like this::" +"`~JSONEncoder.default` like this::" msgstr "" "Por ejemplo, para admitir iteradores arbitrarios, podría implementar :meth:" "`default` de esta manera::" @@ -1034,9 +1036,10 @@ msgstr "" "simple para validar e imprimir objetos JSON." #: ../Doc/library/json.rst:685 +#, fuzzy msgid "" "If the optional ``infile`` and ``outfile`` arguments are not specified, :" -"attr:`sys.stdin` and :attr:`sys.stdout` will be used respectively:" +"data:`sys.stdin` and :data:`sys.stdout` will be used respectively:" msgstr "" "Si no se especifican los argumentos opcionales ``infile`` y ``outfile``, se " "utilizarán :attr:`sys.stdin` y :attr:`sys.stdout` respectivamente:" @@ -1059,13 +1062,15 @@ msgid "The JSON file to be validated or pretty-printed:" msgstr "El archivo JSON que se va a validar o imprimir con impresión linda:" #: ../Doc/library/json.rst:724 -msgid "If *infile* is not specified, read from :attr:`sys.stdin`." +#, fuzzy +msgid "If *infile* is not specified, read from :data:`sys.stdin`." msgstr "Si no se especifica *infile*, lee :attr:`sys.stdin`." #: ../Doc/library/json.rst:728 +#, fuzzy msgid "" "Write the output of the *infile* to the given *outfile*. Otherwise, write it " -"to :attr:`sys.stdout`." +"to :data:`sys.stdout`." msgstr "" "Escribe la salida de *infile* en el *outfile* dado. De lo contrario, lo " "escribe en :attr:`sys.stdout`." diff --git a/library/linecache.po b/library/linecache.po index 0760921ed2..0f7f45f154 100644 --- a/library/linecache.po +++ b/library/linecache.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-05 12:54+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-10-31 23:49+0100\n" +"Last-Translator: \n" +"Language: es\n" "Language-Team: python-doc-es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\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.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/linecache.rst:2 msgid ":mod:`linecache` --- Random access to text lines" @@ -120,3 +119,15 @@ msgstr "" #: ../Doc/library/linecache.rst:63 msgid "Example::" msgstr "Ejemplo::" + +#: ../Doc/library/linecache.rst:31 +msgid "module" +msgstr "" + +#: ../Doc/library/linecache.rst:31 +msgid "search" +msgstr "" + +#: ../Doc/library/linecache.rst:31 +msgid "path" +msgstr "" diff --git a/library/locale.po b/library/locale.po index 7bba7d7a4c..3dcd9441c4 100644 --- a/library/locale.po +++ b/library/locale.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-12-16 00:36-0500\n" "Last-Translator: Adolfo Hristo David Roque Gámez \n" -"Language-Team: python-doc-es\n" "Language: es_AR\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/locale.rst:2 msgid ":mod:`locale` --- Internationalization services" @@ -361,8 +361,9 @@ msgid "Nothing is specified in this locale." msgstr "No se especifica nada en esta configuración regional." #: ../Doc/library/locale.rst:150 +#, fuzzy msgid "" -"The function sets temporarily the ``LC_CTYPE`` locale to the ``LC_NUMERIC`` " +"The function temporarily sets the ``LC_CTYPE`` locale to the ``LC_NUMERIC`` " "locale or the ``LC_MONETARY`` locale if locales are different and numeric or " "monetary strings are non-ASCII. This temporary change affects other threads." msgstr "" @@ -373,8 +374,9 @@ msgstr "" "temporal afecta a otros hilos." #: ../Doc/library/locale.rst:154 +#, fuzzy msgid "" -"The function now sets temporarily the ``LC_CTYPE`` locale to the " +"The function now temporarily sets the ``LC_CTYPE`` locale to the " "``LC_NUMERIC`` locale in some cases." msgstr "" "La función ahora establece temporalmente el ``LC_CTYPE`` de la configuración " @@ -489,21 +491,23 @@ msgstr "" #: ../Doc/library/locale.rst:232 msgid "" -"The expression is in the syntax suitable for the :c:func:`regex` function " -"from the C library, which might differ from the syntax used in :mod:`re`." -msgstr "" -"La expresión está en la sintaxis adecuada para la función :c:func:`regex` de " -"la biblioteca C, que podría diferir de la sintaxis utilizada en :mod:`re`." - -#: ../Doc/library/locale.rst:237 -msgid "" "Get a regular expression that can be used with the regex(3) function to " "recognize a negative response to a yes/no question." msgstr "" "Obtener una expresión regular que se puede usar con la función regex(3) para " "reconocer una respuesta negativa a una pregunta de sí/no." -#: ../Doc/library/locale.rst:242 +#: ../Doc/library/locale.rst:237 +#, fuzzy +msgid "" +"The regular expressions for :const:`YESEXPR` and :const:`NOEXPR` use syntax " +"suitable for the :c:func:`regex` function from the C library, which might " +"differ from the syntax used in :mod:`re`." +msgstr "" +"La expresión está en la sintaxis adecuada para la función :c:func:`regex` de " +"la biblioteca C, que podría diferir de la sintaxis utilizada en :mod:`re`." + +#: ../Doc/library/locale.rst:244 msgid "" "Get the currency symbol, preceded by \"-\" if the symbol should appear " "before the value, \"+\" if the symbol should appear after the value, or \"." @@ -513,13 +517,13 @@ msgstr "" "aparecer antes del valor, \"+\" si el símbolo debe aparecer después del " "valor, o \".\" si el símbolo debe reemplazar el carácter raíz." -#: ../Doc/library/locale.rst:248 +#: ../Doc/library/locale.rst:250 msgid "Get a string that represents the era used in the current locale." msgstr "" "Obtener una cadena de caracteres que represente la era utilizada en la " "configuración regional actual." -#: ../Doc/library/locale.rst:250 +#: ../Doc/library/locale.rst:252 msgid "" "Most locales do not define this value. An example of a locale which does " "define this value is the Japanese one. In Japan, the traditional " @@ -531,7 +535,7 @@ msgstr "" "la representación tradicional de fechas incluye el nombre de la época " "correspondiente al reinado del entonces emperador." -#: ../Doc/library/locale.rst:255 +#: ../Doc/library/locale.rst:257 msgid "" "Normally it should not be necessary to use this value directly. Specifying " "the ``E`` modifier in their format strings causes the :func:`time.strftime` " @@ -545,7 +549,7 @@ msgstr "" "de la cadena de caracteres retornada no está especificado, y por lo tanto no " "debe asumir conocimiento de él en diferentes sistemas." -#: ../Doc/library/locale.rst:263 +#: ../Doc/library/locale.rst:265 msgid "" "Get a format string for :func:`time.strftime` to represent date and time in " "a locale-specific era-based way." @@ -553,7 +557,7 @@ msgstr "" "Obtener una cadena de caracteres de formato para :func:`time.strftime` para " "representar la fecha y la hora de una manera específica de la era." -#: ../Doc/library/locale.rst:268 +#: ../Doc/library/locale.rst:270 msgid "" "Get a format string for :func:`time.strftime` to represent a date in a " "locale-specific era-based way." @@ -561,7 +565,7 @@ msgstr "" "Obtener una cadena de caracteres de formato para :func:`time.strftime` para " "representar una fecha de una manera basada en una era específica." -#: ../Doc/library/locale.rst:273 +#: ../Doc/library/locale.rst:275 msgid "" "Get a format string for :func:`time.strftime` to represent a time in a " "locale-specific era-based way." @@ -569,7 +573,7 @@ msgstr "" "Obtener una cadena de caracteres de formato para :func:`time.strftime` para " "representar una hora de una manera basada en una era específica." -#: ../Doc/library/locale.rst:278 +#: ../Doc/library/locale.rst:280 msgid "" "Get a representation of up to 100 values used to represent the values 0 to " "99." @@ -577,7 +581,7 @@ msgstr "" "Obtener una representación de hasta 100 valores utilizados para representar " "los valores 0 a 99." -#: ../Doc/library/locale.rst:284 +#: ../Doc/library/locale.rst:286 msgid "" "Tries to determine the default locale settings and returns them as a tuple " "of the form ``(language code, encoding)``." @@ -585,7 +589,7 @@ msgstr "" "Intenta determinar la configuración regional por defecto y los retorna como " "una tupla del formulario ``(código de idioma, codificación)``." -#: ../Doc/library/locale.rst:287 +#: ../Doc/library/locale.rst:289 msgid "" "According to POSIX, a program which has not called ``setlocale(LC_ALL, '')`` " "runs using the portable ``'C'`` locale. Calling ``setlocale(LC_ALL, '')`` " @@ -600,7 +604,7 @@ msgstr "" "no queremos interferir con la configuración de configuración regional " "actual, emulamos el comportamiento de la manera descrita anteriormente." -#: ../Doc/library/locale.rst:293 +#: ../Doc/library/locale.rst:295 msgid "" "To maintain compatibility with other platforms, not only the :envvar:`LANG` " "variable is tested, but a list of variables given as envvars parameter. The " @@ -617,7 +621,7 @@ msgstr "" "gettext contiene ``'LC_ALL '``, ``'LC_CTYPE '``, ``'LANG '`` y ``'LANGUAGE " "'``, en ese orden." -#: ../Doc/library/locale.rst:300 ../Doc/library/locale.rst:313 +#: ../Doc/library/locale.rst:302 ../Doc/library/locale.rst:315 msgid "" "Except for the code ``'C'``, the language code corresponds to :rfc:`1766`. " "*language code* and *encoding* may be ``None`` if their values cannot be " @@ -627,7 +631,7 @@ msgstr "" "`1766`. *language code* y *encoding* pueden ser ``None`` si sus valores no " "pueden determinarse." -#: ../Doc/library/locale.rst:309 +#: ../Doc/library/locale.rst:311 msgid "" "Returns the current setting for the given locale category as sequence " "containing *language code*, *encoding*. *category* may be one of the :const:" @@ -638,7 +642,7 @@ msgstr "" "ser uno de los valores :const:`LC_ *` excepto :const:`LC_ALL`. Por defecto " "es :const:`LC_CTYPE`." -#: ../Doc/library/locale.rst:320 +#: ../Doc/library/locale.rst:322 msgid "" "Return the :term:`locale encoding` used for text data, according to user " "preferences. User preferences are expressed differently on different " @@ -651,7 +655,7 @@ msgstr "" "programáticamente en algunos sistemas, por lo que esta función solo retorna " "una suposición." -#: ../Doc/library/locale.rst:325 +#: ../Doc/library/locale.rst:327 msgid "" "On some systems, it is necessary to invoke :func:`setlocale` to obtain the " "user preferences, so this function is not thread-safe. If invoking setlocale " @@ -662,7 +666,7 @@ msgstr "" "subprocesos. Si invocar *setlocale* no es necesario o deseado, " "*do_setlocale* se debe ajustar a ``False``." -#: ../Doc/library/locale.rst:329 +#: ../Doc/library/locale.rst:331 msgid "" "On Android or if the :ref:`Python UTF-8 Mode ` is enabled, always " "return ``'utf-8'``, the :term:`locale encoding` and the *do_setlocale* " @@ -672,7 +676,7 @@ msgstr "" "siempre retorna ``'utf-8'``, el argumento :term:`locale encoding` y " "*do_setlocale* se ignoran." -#: ../Doc/library/locale.rst:333 ../Doc/library/locale.rst:351 +#: ../Doc/library/locale.rst:335 ../Doc/library/locale.rst:353 msgid "" "The :ref:`Python preinitialization ` configures the LC_CTYPE " "locale. See also the :term:`filesystem encoding and error handler`." @@ -682,7 +686,7 @@ msgstr "" "sistema de archivos y manejador de errores `." -#: ../Doc/library/locale.rst:336 +#: ../Doc/library/locale.rst:338 msgid "" "The function now always returns ``\"utf-8\"`` on Android or if the :ref:" "`Python UTF-8 Mode ` is enabled." @@ -690,15 +694,15 @@ msgstr "" "La función ahora siempre retorna ``\"utf-8\"`` en Android o si :ref:`Python " "UTF-8 Mode ` está habilitado." -#: ../Doc/library/locale.rst:343 +#: ../Doc/library/locale.rst:345 msgid "Get the current :term:`locale encoding`:" msgstr "Obtenga el :term:`locale encoding` actual:" -#: ../Doc/library/locale.rst:345 +#: ../Doc/library/locale.rst:347 msgid "On Android and VxWorks, return ``\"utf-8\"``." msgstr "En Android y VxWorks, retorna ``\"utf-8\"``." -#: ../Doc/library/locale.rst:346 +#: ../Doc/library/locale.rst:348 msgid "" "On Unix, return the encoding of the current :data:`LC_CTYPE` locale. Return " "``\"utf-8\"`` if ``nl_langinfo(CODESET)`` returns an empty string: for " @@ -709,11 +713,11 @@ msgstr "" "una cadena vacía: por ejemplo, si no se admite la configuración regional " "actual de LC_CTYPE." -#: ../Doc/library/locale.rst:349 +#: ../Doc/library/locale.rst:351 msgid "On Windows, return the ANSI code page." msgstr "En Windows, retorna la página de códigos ANSI." -#: ../Doc/library/locale.rst:354 +#: ../Doc/library/locale.rst:356 msgid "" "This function is similar to :func:`getpreferredencoding(False) " "` except this function ignores the :ref:`Python UTF-8 " @@ -723,7 +727,7 @@ msgstr "" "` excepto que esta función ignora :ref:`Python UTF-8 " "Mode `." -#: ../Doc/library/locale.rst:363 +#: ../Doc/library/locale.rst:365 msgid "" "Returns a normalized locale code for the given locale name. The returned " "locale code is formatted for use with :func:`setlocale`. If normalization " @@ -734,7 +738,7 @@ msgstr "" "está formateado para usarse con :func:`setlocale`. Si la normalización " "falla, el nombre original se retorna sin cambios." -#: ../Doc/library/locale.rst:367 +#: ../Doc/library/locale.rst:369 msgid "" "If the given encoding is not known, the function defaults to the default " "encoding for the locale code just like :func:`setlocale`." @@ -742,13 +746,13 @@ msgstr "" "Si no se conoce la codificación dada, la función por defecto codifica el " "código de configuración regional como :func:`setlocale`." -#: ../Doc/library/locale.rst:373 +#: ../Doc/library/locale.rst:375 msgid "Sets the locale for *category* to the default setting." msgstr "" "Establece la configuración regional de *category* a la configuración " "predeterminada." -#: ../Doc/library/locale.rst:375 +#: ../Doc/library/locale.rst:377 msgid "" "The default setting is determined by calling :func:`getdefaultlocale`. " "*category* defaults to :const:`LC_ALL`." @@ -756,7 +760,7 @@ msgstr "" "La configuración predeterminada se determina llamando a :func:" "`getdefaultlocale`. *category* por defecto a :const:`LC_ALL`." -#: ../Doc/library/locale.rst:383 +#: ../Doc/library/locale.rst:385 msgid "" "Compares two strings according to the current :const:`LC_COLLATE` setting. " "As any other compare function, returns a negative, or a positive value, or " @@ -768,7 +772,7 @@ msgstr "" "o ``0``, dependiendo de si *string1* compila antes o después de *string2* o " "es igual a él." -#: ../Doc/library/locale.rst:391 +#: ../Doc/library/locale.rst:393 msgid "" "Transforms a string to one that can be used in locale-aware comparisons. " "For example, ``strxfrm(s1) < strxfrm(s2)`` is equivalent to ``strcoll(s1, " @@ -780,19 +784,20 @@ msgstr "" "``strcoll(s1, s2) < 0``. Esta función se puede utilizar cuando la misma " "cadena se compara repetidamente, p. ej., al agrupar una secuencia de cadenas." -#: ../Doc/library/locale.rst:400 +#: ../Doc/library/locale.rst:402 +#, fuzzy msgid "" "Formats a number *val* according to the current :const:`LC_NUMERIC` setting. " "The format follows the conventions of the ``%`` operator. For floating " "point values, the decimal point is modified if appropriate. If *grouping* " -"is true, also takes the grouping into account." +"is ``True``, also takes the grouping into account." msgstr "" "Formatea un número *val* según la configuración actual :const:`LC_NUMERIC` . " "El formato sigue las convenciones del operador ``%``. Para los valores en " "coma flotante, el punto decimal se modifica si procede. Si *grouping* es " "verdadero, también se tiene en cuenta el agrupamiento." -#: ../Doc/library/locale.rst:405 +#: ../Doc/library/locale.rst:407 msgid "" "If *monetary* is true, the conversion uses monetary thousands separator and " "grouping strings." @@ -800,7 +805,7 @@ msgstr "" "Si *monetary* es verdadero, la conversión utiliza separador monetario de " "miles y cadenas de caracteres de agrupación." -#: ../Doc/library/locale.rst:408 +#: ../Doc/library/locale.rst:410 msgid "" "Processes formatting specifiers as in ``format % val``, but takes the " "current locale settings into account." @@ -808,44 +813,24 @@ msgstr "" "Procesa especificadores de formato como en ``format % val``, pero tiene en " "cuenta los ajustes de configuración regional actuales." -#: ../Doc/library/locale.rst:411 +#: ../Doc/library/locale.rst:413 msgid "The *monetary* keyword parameter was added." msgstr "Se añadió el parámetro de la palabra clave *monetary*." -#: ../Doc/library/locale.rst:417 -#, python-format -msgid "" -"Please note that this function works like :meth:`format_string` but will " -"only work for exactly one ``%char`` specifier. For example, ``'%f'`` and " -"``'%.0f'`` are both valid specifiers, but ``'%f KiB'`` is not." -msgstr "" -"Tenga en cuenta que esta función funciona como :meth:`format_string` pero " -"sólo funcionará para exactamente un especificador ``%char``. Por ejemplo, " -"``'%f'`` y ``'%.0f'`` son especificadores válidos, pero ``'%f KiB'`` no lo " -"es." - -#: ../Doc/library/locale.rst:421 -msgid "For whole format strings, use :func:`format_string`." -msgstr "" -"Para cadenas de caracteres de formato completas, use :func:`format_string`." - -#: ../Doc/library/locale.rst:423 -msgid "Use :meth:`format_string` instead." -msgstr "Use :meth:`format_string` en su lugar." - -#: ../Doc/library/locale.rst:429 +#: ../Doc/library/locale.rst:419 msgid "" "Formats a number *val* according to the current :const:`LC_MONETARY` " "settings." msgstr "" "Formatea un número *val* según la configuración actual :const:`LC_MONETARY` ." -#: ../Doc/library/locale.rst:431 +#: ../Doc/library/locale.rst:421 +#, fuzzy msgid "" "The returned string includes the currency symbol if *symbol* is true, which " -"is the default. If *grouping* is true (which is not the default), grouping " -"is done with the value. If *international* is true (which is not the " -"default), the international currency symbol is used." +"is the default. If *grouping* is ``True`` (which is not the default), " +"grouping is done with the value. If *international* is ``True`` (which is " +"not the default), the international currency symbol is used." msgstr "" "La cadena de caracteres retornada incluye el símbolo de moneda si *symbol* " "es verdadero, que es el valor predeterminado. Si *grouping* es verdadero " @@ -853,16 +838,17 @@ msgstr "" "Si *international* es verdadero (que no es el valor predeterminado), se " "utiliza el símbolo de moneda internacional." -#: ../Doc/library/locale.rst:436 +#: ../Doc/library/locale.rst:428 +#, fuzzy msgid "" -"Note that this function will not work with the 'C' locale, so you have to " -"set a locale via :func:`setlocale` first." +"This function will not work with the 'C' locale, so you have to set a locale " +"via :func:`setlocale` first." msgstr "" "Tenga en cuenta que esta función no funcionará con la configuración " "regional 'C', por lo que primero debe establecer una configuración regional " "(*locale*) a través de :func:`setlocale` ." -#: ../Doc/library/locale.rst:442 +#: ../Doc/library/locale.rst:434 msgid "" "Formats a floating point number using the same format as the built-in " "function ``str(float)``, but takes the decimal point into account." @@ -870,7 +856,7 @@ msgstr "" "Formatea un número de punto flotante usando el mismo formato que la función " "integrada ``str(float)``, pero toma en cuenta el punto decimal." -#: ../Doc/library/locale.rst:448 +#: ../Doc/library/locale.rst:440 msgid "" "Converts a string into a normalized number string, following the :const:" "`LC_NUMERIC` settings." @@ -878,7 +864,7 @@ msgstr "" "Convierte una cadena de caracteres en una cadena de números normalizada, " "siguiendo la configuración :const:`LC_NUMERIC`." -#: ../Doc/library/locale.rst:456 +#: ../Doc/library/locale.rst:448 msgid "" "Converts a normalized number string into a formatted string following the :" "const:`LC_NUMERIC` settings." @@ -886,7 +872,7 @@ msgstr "" "Convierte una cadena de números normalizada en una cadena de caracteres " "formateada siguiendo la configuración :const:`LC_NUMERIC`." -#: ../Doc/library/locale.rst:464 +#: ../Doc/library/locale.rst:456 msgid "" "Converts a string to a number, following the :const:`LC_NUMERIC` settings, " "by calling *func* on the result of calling :func:`delocalize` on *string*." @@ -895,7 +881,7 @@ msgstr "" "`LC_NUMERIC`, llamando a *func* según el resultado de llamar a :func:" "`delocalize` en *string*." -#: ../Doc/library/locale.rst:470 +#: ../Doc/library/locale.rst:462 msgid "" "Converts a string to an integer, following the :const:`LC_NUMERIC` " "conventions." @@ -903,7 +889,7 @@ msgstr "" "Convierte una cadena de caracteres a un entero, siguiendo las convenciones :" "const:`LC_NUMERIC` ." -#: ../Doc/library/locale.rst:477 +#: ../Doc/library/locale.rst:469 msgid "" "Locale category for the character type functions. Depending on the settings " "of this category, the functions of module :mod:`string` dealing with case " @@ -913,7 +899,7 @@ msgstr "" "Dependiendo de la configuración de esta categoría, las funciones del módulo :" "mod:`string` que se ocupan de casos cambian su comportamiento." -#: ../Doc/library/locale.rst:484 +#: ../Doc/library/locale.rst:476 msgid "" "Locale category for sorting strings. The functions :func:`strcoll` and :" "func:`strxfrm` of the :mod:`locale` module are affected." @@ -922,7 +908,7 @@ msgstr "" "funciones :func:`strcoll` y :func:`strxfrm` del módulo :mod:`locale` están " "afectadas." -#: ../Doc/library/locale.rst:490 +#: ../Doc/library/locale.rst:482 msgid "" "Locale category for the formatting of time. The function :func:`time." "strftime` follows these conventions." @@ -930,7 +916,7 @@ msgstr "" "Categoría de configuración regional para el formateo de hora. La función :" "func:`time.strftime` sigue estas convenciones." -#: ../Doc/library/locale.rst:496 +#: ../Doc/library/locale.rst:488 msgid "" "Locale category for formatting of monetary values. The available options " "are available from the :func:`localeconv` function." @@ -938,7 +924,7 @@ msgstr "" "Categoría de configuración regional para el formateo de valores monetarios. " "Las opciones disponibles están disponibles en la función :func:`localeconv` ." -#: ../Doc/library/locale.rst:502 +#: ../Doc/library/locale.rst:494 msgid "" "Locale category for message display. Python currently does not support " "application specific locale-aware messages. Messages displayed by the " @@ -951,19 +937,26 @@ msgstr "" "retornados por :func:`os.strerror` podrían verse afectados por esta " "categoría." -#: ../Doc/library/locale.rst:510 +#: ../Doc/library/locale.rst:499 +msgid "" +"This value may not be available on operating systems not conforming to the " +"POSIX standard, most notably Windows." +msgstr "" + +#: ../Doc/library/locale.rst:505 +#, fuzzy msgid "" -"Locale category for formatting numbers. The functions :func:`.format`, :" -"func:`atoi`, :func:`atof` and :func:`.str` of the :mod:`locale` module are " -"affected by that category. All other numeric formatting operations are not " -"affected." +"Locale category for formatting numbers. The functions :func:" +"`format_string`, :func:`atoi`, :func:`atof` and :func:`.str` of the :mod:" +"`locale` module are affected by that category. All other numeric formatting " +"operations are not affected." msgstr "" "Categoría de configuración regional para formateo de números. Las " "funciones :func:`. format`, :func:`atoi`, :func:`atof` y :func:`.str` del " "módulo :mod:`locale` están afectados por esa categoría. Todas las demás " "operaciones de formato numérico no están afectadas." -#: ../Doc/library/locale.rst:518 +#: ../Doc/library/locale.rst:513 msgid "" "Combination of all locale settings. If this flag is used when the locale is " "changed, setting the locale for all categories is attempted. If that fails " @@ -980,7 +973,7 @@ msgstr "" "caracteres que indica la configuración para todas las categorías. Esta " "cadena de caracteres se puede usar más tarde para restaurar la configuración." -#: ../Doc/library/locale.rst:527 +#: ../Doc/library/locale.rst:522 msgid "" "This is a symbolic constant used for different values returned by :func:" "`localeconv`." @@ -988,15 +981,15 @@ msgstr "" "Esta es una constante simbólica utilizada para diferentes valores retornados " "por :func:`localeconv`." -#: ../Doc/library/locale.rst:531 +#: ../Doc/library/locale.rst:526 msgid "Example::" msgstr "Ejemplo::" -#: ../Doc/library/locale.rst:544 +#: ../Doc/library/locale.rst:539 msgid "Background, details, hints, tips and caveats" msgstr "Segundo plano, detalles, indicaciones, consejos y advertencias" -#: ../Doc/library/locale.rst:546 +#: ../Doc/library/locale.rst:541 msgid "" "The C standard defines the locale as a program-wide property that may be " "relatively expensive to change. On top of that, some implementations are " @@ -1009,7 +1002,7 @@ msgstr "" "configuración local frecuentes pueden causar volcados de núcleo. Esto hace " "que la configuración regional sea algo dolorosa de usar correctamente." -#: ../Doc/library/locale.rst:551 +#: ../Doc/library/locale.rst:546 msgid "" "Initially, when a program is started, the locale is the ``C`` locale, no " "matter what the user's preferred locale is. There is one exception: the :" @@ -1027,7 +1020,7 @@ msgstr "" "regional preferida del usuario para otras categorías llamando a " "``setlocale(LC_ALL, '')``." -#: ../Doc/library/locale.rst:558 +#: ../Doc/library/locale.rst:553 msgid "" "It is generally a bad idea to call :func:`setlocale` in some library " "routine, since as a side effect it affects the entire program. Saving and " @@ -1039,7 +1032,7 @@ msgstr "" "Guardar y restaurar es casi igual de malo: es caro y afecta a otros hilos " "que se ejecutan antes de que los ajustes se hayan restaurado." -#: ../Doc/library/locale.rst:563 +#: ../Doc/library/locale.rst:558 msgid "" "If, when coding a module for general use, you need a locale independent " "version of an operation that is affected by the locale (such as certain " @@ -1058,17 +1051,18 @@ msgstr "" "documentar que su módulo no es compatible con la configuración regional " "no- ``C``." -#: ../Doc/library/locale.rst:570 +#: ../Doc/library/locale.rst:565 +#, fuzzy msgid "" "The only way to perform numeric operations according to the locale is to use " "the special functions defined by this module: :func:`atof`, :func:`atoi`, :" -"func:`.format`, :func:`.str`." +"func:`format_string`, :func:`.str`." msgstr "" "La única manera de realizar operaciones numéricas según la configuración " "regional es utilizar las funciones especiales definidas por este módulo: :" "func:`atof`, :func:`atoi`, :func:`. formato`, :func:`. str`." -#: ../Doc/library/locale.rst:574 +#: ../Doc/library/locale.rst:569 msgid "" "There is no way to perform case conversions and character classifications " "according to the locale. For (Unicode) text strings these are done " @@ -1086,11 +1080,11 @@ msgstr "" "establece (es decir, bytes no ASCII) nunca se convierten o se consideran " "parte de una clase de caracteres como letra o espacio en blanco." -#: ../Doc/library/locale.rst:585 +#: ../Doc/library/locale.rst:580 msgid "For extension writers and programs that embed Python" msgstr "Para escritores de extensión y programas que incrustan Python" -#: ../Doc/library/locale.rst:587 +#: ../Doc/library/locale.rst:582 msgid "" "Extension modules should never call :func:`setlocale`, except to find out " "what the current locale is. But since the return value can only be used " @@ -1103,7 +1097,7 @@ msgstr "" "no es muy útil (excepto quizás para averiguar si la localización es o no es " "``C``)." -#: ../Doc/library/locale.rst:592 +#: ../Doc/library/locale.rst:587 msgid "" "When Python code uses the :mod:`locale` module to change the locale, this " "also affects the embedding application. If the embedding application " @@ -1120,11 +1114,11 @@ msgstr "" "file:`config.c`, y asegúrese de que el módulo :mod:`_locale` no es accesible " "como una biblioteca compartida." -#: ../Doc/library/locale.rst:603 +#: ../Doc/library/locale.rst:598 msgid "Access to message catalogs" msgstr "Acceso a los catálogos de mensajes" -#: ../Doc/library/locale.rst:611 +#: ../Doc/library/locale.rst:606 msgid "" "The locale module exposes the C library's gettext interface on systems that " "provide this interface. It consists of the functions :func:`!gettext`, :" @@ -1143,7 +1137,7 @@ msgstr "" "y los algoritmos de búsqueda de la biblioteca C para localizar catálogos de " "mensajes." -#: ../Doc/library/locale.rst:618 +#: ../Doc/library/locale.rst:613 msgid "" "Python applications should normally find no need to invoke these functions, " "and should use :mod:`gettext` instead. A known exception to this rule are " @@ -1159,3 +1153,33 @@ msgstr "" "`dcgettext`. Para estas aplicaciones, puede ser necesario vincular el " "dominio de texto, para que las bibliotecas puedan localizar adecuadamente " "sus catálogos de mensajes." + +#: ../Doc/library/locale.rst:19 ../Doc/library/locale.rst:467 +msgid "module" +msgstr "" + +#: ../Doc/library/locale.rst:19 +msgid "_locale" +msgstr "" + +#: ../Doc/library/locale.rst:467 +msgid "string" +msgstr "" + +#~ msgid "" +#~ "Please note that this function works like :meth:`format_string` but will " +#~ "only work for exactly one ``%char`` specifier. For example, ``'%f'`` and " +#~ "``'%.0f'`` are both valid specifiers, but ``'%f KiB'`` is not." +#~ msgstr "" +#~ "Tenga en cuenta que esta función funciona como :meth:`format_string` pero " +#~ "sólo funcionará para exactamente un especificador ``%char``. Por " +#~ "ejemplo, ``'%f'`` y ``'%.0f'`` son especificadores válidos, pero ``'%f " +#~ "KiB'`` no lo es." + +#~ msgid "For whole format strings, use :func:`format_string`." +#~ msgstr "" +#~ "Para cadenas de caracteres de formato completas, use :func:" +#~ "`format_string`." + +#~ msgid "Use :meth:`format_string` instead." +#~ msgstr "Use :meth:`format_string` en su lugar." diff --git a/library/logging.config.po b/library/logging.config.po index 743b113b4a..1c8b454dc5 100644 --- a/library/logging.config.po +++ b/library/logging.config.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-12-03 13:30+0100\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/logging.config.rst:2 msgid ":mod:`logging.config` --- Logging configuration" @@ -178,11 +178,17 @@ msgstr "" "varias configuraciones predeterminadas (si el desarrollador proporciona un " "mecanismo para presentar las opciones y cargar la configuración elegida)." +#: ../Doc/library/logging.config.rst:90 +msgid "" +"It will raise :exc:`FileNotFoundError` if the file doesn't exist and :exc:" +"`RuntimeError` if the file is invalid or empty." +msgstr "" + #: ../Doc/library/logging.config.rst msgid "Parameters" msgstr "Parámetros" -#: ../Doc/library/logging.config.rst:90 +#: ../Doc/library/logging.config.rst:94 msgid "" "A filename, or a file-like object, or an instance derived from :class:" "`~configparser.RawConfigParser`. If a ``RawConfigParser``-derived instance " @@ -202,48 +208,21 @@ msgstr "" "meth:`~configparser.ConfigParser.read_file`; de lo contrario, se supone que " "es un nombre de archivo y se pasa a :meth:`~configparser.ConfigParser.read`." -#: ../Doc/library/logging.config.rst:102 +#: ../Doc/library/logging.config.rst:106 msgid "" "Defaults to be passed to the ConfigParser can be specified in this argument." msgstr "" "Los valores predeterminados para pasar al ConfigParser se pueden especificar " "en este argumento." -#: ../Doc/library/logging.config.rst:105 -msgid "" -"If specified as ``False``, loggers which " -"exist when this call is made are left " -"enabled. The default is ``True`` because " -"this enables old behaviour in " -"a backward-compatible way. This behaviour is " -"to disable any existing non-root loggers " -"unless they or their ancestors are " -"explicitly named in the logging " -"configuration. :param encoding: The encoding used to open file when *fname* " -"is filename." -msgstr "" -"Si se especifican como ``False``, los " -"registradores que existen cuando se hace " -"esta llamada se deshabilitan. El valor por " -"defecto es ``True`` porque esto habilita " -"comportamientos antiguos de una manera " -"compatible con versiones anteriores. Este comportamiento consiste " -"en deshabilitar cualquier registrador que no " -"sea raíz a menos que ellos o sus " -"antecesores sean explícitamente nombrados en " -"la configuración del registro. :param encoding: La codificación que se usa " -"para abrir archivos cuando *fname* es nombre del archivo." - -#: ../Doc/library/logging.config.rst:112 -msgid "If specified as ``False``, loggers which" -msgstr "Si se especifican como ``False``, los registradores que" - -#: ../Doc/library/logging.config.rst:106 +#: ../Doc/library/logging.config.rst:109 +#, fuzzy msgid "" -"exist when this call is made are left enabled. The default is ``True`` " -"because this enables old behaviour in a backward-compatible way. This " -"behaviour is to disable any existing non-root loggers unless they or their " -"ancestors are explicitly named in the logging configuration." +"If specified as ``False``, loggers which exist when this call is made are " +"left enabled. The default is ``True`` because this enables old behaviour in " +"a backward-compatible way. This behaviour is to disable any existing non-" +"root loggers unless they or their ancestors are explicitly named in the " +"logging configuration." msgstr "" "existen cuando se realiza esta llamada se dejan habilitados. El valor " "predeterminado es ``True`` porque esto permite un comportamiento antiguo de " @@ -252,17 +231,13 @@ msgstr "" "ellos o sus antepasados se mencionen explícitamente en la configuración de " "registro." -#: ../Doc/library/logging.config.rst -msgid "param encoding" -msgstr "param codificación" - -#: ../Doc/library/logging.config.rst:114 +#: ../Doc/library/logging.config.rst:118 msgid "The encoding used to open file when *fname* is filename." msgstr "" "La codificación que se usa para abrir archivos cuando *fname* es nombre del " "archivo." -#: ../Doc/library/logging.config.rst:116 +#: ../Doc/library/logging.config.rst:120 msgid "" "An instance of a subclass of :class:`~configparser.RawConfigParser` is now " "accepted as a value for ``fname``. This facilitates:" @@ -270,7 +245,7 @@ msgstr "" "Una instancia de una subclase de :class:`~configparser.RawConfigParser` " "ahora se acepta como un valor para ``fname``. Esto facilita:" -#: ../Doc/library/logging.config.rst:120 +#: ../Doc/library/logging.config.rst:124 msgid "" "Use of a configuration file where logging configuration is just part of the " "overall application configuration." @@ -278,7 +253,7 @@ msgstr "" "Uso de un archivo de configuración donde la configuración de registro es " "solo parte de la configuración general de la aplicación." -#: ../Doc/library/logging.config.rst:122 +#: ../Doc/library/logging.config.rst:126 msgid "" "Use of a configuration read from a file, and then modified by the using " "application (e.g. based on command-line parameters or other aspects of the " @@ -289,11 +264,17 @@ msgstr "" "comandos u otros aspectos del entorno de ejecución) antes de pasar a " "``fileConfig``." -#: ../Doc/library/logging.config.rst:126 +#: ../Doc/library/logging.config.rst:130 msgid "The *encoding* parameter is added." msgstr "El parámetro *codificación* se añade." -#: ../Doc/library/logging.config.rst:131 +#: ../Doc/library/logging.config.rst:133 +msgid "" +"An exception will be thrown if the provided file doesn't exist or is invalid " +"or empty." +msgstr "" + +#: ../Doc/library/logging.config.rst:139 msgid "" "Starts up a socket server on the specified port, and listens for new " "configurations. If no port is specified, the module's default :const:" @@ -314,7 +295,7 @@ msgstr "" "`~threading.Thread.join` cuando corresponda . Para detener el servidor, " "llame a :func:`stopListening`." -#: ../Doc/library/logging.config.rst:140 +#: ../Doc/library/logging.config.rst:148 msgid "" "The ``verify`` argument, if specified, should be a callable which should " "verify whether bytes received across the socket are valid and should be " @@ -338,7 +319,7 @@ msgstr "" "bytes (por ejemplo, cuando solo se realiza la verificación), o podrían ser " "completamente diferentes (tal vez si se realizó el descifrado)." -#: ../Doc/library/logging.config.rst:151 +#: ../Doc/library/logging.config.rst:159 msgid "" "To send a configuration to the socket, read in the configuration file and " "send it to the socket as a sequence of bytes preceded by a four-byte length " @@ -349,7 +330,7 @@ msgstr "" "longitud de cuatro bytes empaquetada en binario usando ``struct.pack('>L', " "n)``." -#: ../Doc/library/logging.config.rst:159 +#: ../Doc/library/logging.config.rst:167 msgid "" "Because portions of the configuration are passed through :func:`eval`, use " "of this function may open its users to a security risk. While the function " @@ -383,11 +364,11 @@ msgstr "" "``verify`` para :func:`listen` para escuchar y evitar que se apliquen " "configuraciones no reconocidas." -#: ../Doc/library/logging.config.rst:175 +#: ../Doc/library/logging.config.rst:183 msgid "The ``verify`` argument was added." msgstr "Se agregó el argumento ``verify``." -#: ../Doc/library/logging.config.rst:180 +#: ../Doc/library/logging.config.rst:188 msgid "" "If you want to send configurations to the listener which don't disable " "existing loggers, you will need to use a JSON format for the configuration, " @@ -401,7 +382,7 @@ msgstr "" "permite especificar ``disable_existing_loggers`` como ``False`` en la " "configuración que envía." -#: ../Doc/library/logging.config.rst:189 +#: ../Doc/library/logging.config.rst:197 msgid "" "Stops the listening server which was created with a call to :func:`listen`. " "This is typically called before calling :meth:`join` on the return value " @@ -411,11 +392,11 @@ msgstr "" "Esto normalmente se llama antes de llamar :meth:`join` en el valor de " "retorno de :func:`listen`." -#: ../Doc/library/logging.config.rst:195 +#: ../Doc/library/logging.config.rst:203 msgid "Security considerations" msgstr "Consideraciones de seguridad" -#: ../Doc/library/logging.config.rst:197 +#: ../Doc/library/logging.config.rst:205 msgid "" "The logging configuration functionality tries to offer convenience, and in " "part this is done by offering the ability to convert text in configuration " @@ -428,11 +409,11 @@ msgid "" "bad can happen if you load them, before actually loading them." msgstr "" -#: ../Doc/library/logging.config.rst:211 +#: ../Doc/library/logging.config.rst:219 msgid "Configuration dictionary schema" msgstr "Esquema del diccionario de configuración" -#: ../Doc/library/logging.config.rst:213 +#: ../Doc/library/logging.config.rst:221 msgid "" "Describing a logging configuration requires listing the various objects to " "create and the connections between them; for example, you may create a " @@ -454,18 +435,18 @@ msgstr "" "stderr``. La sintaxis para describir estos objetos y conexiones se define " "en :ref:`logging-config-dict-connections` a continuación." -#: ../Doc/library/logging.config.rst:225 +#: ../Doc/library/logging.config.rst:233 msgid "Dictionary Schema Details" msgstr "Detalles del esquema del diccionario" -#: ../Doc/library/logging.config.rst:227 +#: ../Doc/library/logging.config.rst:235 msgid "" "The dictionary passed to :func:`dictConfig` must contain the following keys:" msgstr "" "El diccionario pasado a :func:`dictConfig` debe contener las siguientes " "claves:" -#: ../Doc/library/logging.config.rst:230 +#: ../Doc/library/logging.config.rst:238 msgid "" "*version* - to be set to an integer value representing the schema version. " "The only valid value at present is 1, but having this key allows the schema " @@ -476,7 +457,7 @@ msgstr "" "permite que el esquema evolucione sin perder la compatibilidad con versiones " "anteriores." -#: ../Doc/library/logging.config.rst:235 +#: ../Doc/library/logging.config.rst:243 msgid "" "All other keys are optional, but if present they will be interpreted as " "described below. In all cases below where a 'configuring dict' is " @@ -493,7 +474,7 @@ msgstr "" "userdef` a continuación se usa para crear una instancia; de lo contrario, el " "contexto se usa para determinar qué instanciar." -#: ../Doc/library/logging.config.rst:244 +#: ../Doc/library/logging.config.rst:252 msgid "" "*formatters* - the corresponding value will be a dict in which each key is a " "formatter id and each value is a dict describing how to configure the " @@ -504,7 +485,7 @@ msgstr "" "que describe cómo configurar la instancia correspondiente :class:`~logging." "Formatter`." -#: ../Doc/library/logging.config.rst:248 +#: ../Doc/library/logging.config.rst:256 msgid "" "The configuring dict is searched for the following optional keys which " "correspond to the arguments passed to create a :class:`~logging.Formatter` " @@ -514,23 +495,28 @@ msgstr "" "opcionales que corresponden a los argumentos pasados para crear un objeto :" "class:`~logging.Formatter`:" -#: ../Doc/library/logging.config.rst:252 +#: ../Doc/library/logging.config.rst:260 msgid "``format``" msgstr "``format``" -#: ../Doc/library/logging.config.rst:253 +#: ../Doc/library/logging.config.rst:261 msgid "``datefmt``" msgstr "``datefmt``" -#: ../Doc/library/logging.config.rst:254 +#: ../Doc/library/logging.config.rst:262 msgid "``style``" msgstr "``style``" -#: ../Doc/library/logging.config.rst:255 +#: ../Doc/library/logging.config.rst:263 msgid "``validate`` (since version >=3.8)" msgstr "``validate`` (desde la versión >=3.8)" -#: ../Doc/library/logging.config.rst:257 +#: ../Doc/library/logging.config.rst:264 +#, fuzzy +msgid "``defaults`` (since version >=3.12)" +msgstr "``validate`` (desde la versión >=3.8)" + +#: ../Doc/library/logging.config.rst:266 msgid "" "An optional ``class`` key indicates the name of the formatter's class (as a " "dotted module and class name). The instantiation arguments are as for :" @@ -549,7 +535,7 @@ msgstr "" "claves de configuración diferentes o extra debes usar :ref:`logging-config-" "dict-userdef`." -#: ../Doc/library/logging.config.rst:266 +#: ../Doc/library/logging.config.rst:275 msgid "" "*filters* - the corresponding value will be a dict in which each key is a " "filter id and each value is a dict describing how to configure the " @@ -559,7 +545,7 @@ msgstr "" "clave es una identificación de filtro y cada valor es un diccionario que " "describe cómo configurar la instancia de filtro correspondiente." -#: ../Doc/library/logging.config.rst:270 +#: ../Doc/library/logging.config.rst:279 msgid "" "The configuring dict is searched for the key ``name`` (defaulting to the " "empty string) and this is used to construct a :class:`logging.Filter` " @@ -569,7 +555,7 @@ msgstr "" "cadena vacía) y esto se utiliza para construir una instancia de :class:" "`logging.Filter`." -#: ../Doc/library/logging.config.rst:274 +#: ../Doc/library/logging.config.rst:283 msgid "" "*handlers* - the corresponding value will be a dict in which each key is a " "handler id and each value is a dict describing how to configure the " @@ -579,38 +565,38 @@ msgstr "" "clave es una identificación de gestor y cada valor es un diccionario que " "describe cómo configurar la instancia del gestor correspondiente." -#: ../Doc/library/logging.config.rst:278 ../Doc/library/logging.config.rst:323 +#: ../Doc/library/logging.config.rst:287 ../Doc/library/logging.config.rst:332 msgid "The configuring dict is searched for the following keys:" msgstr "El diccionario de configuración busca las siguientes claves:" -#: ../Doc/library/logging.config.rst:280 +#: ../Doc/library/logging.config.rst:289 msgid "" "``class`` (mandatory). This is the fully qualified name of the handler " "class." msgstr "" "``clase`` (obligatorio). Este es el nombre completo de la clase de gestor." -#: ../Doc/library/logging.config.rst:283 +#: ../Doc/library/logging.config.rst:292 msgid "``level`` (optional). The level of the handler." msgstr "``level`` (opcional). El nivel del gestor." -#: ../Doc/library/logging.config.rst:285 +#: ../Doc/library/logging.config.rst:294 msgid "``formatter`` (optional). The id of the formatter for this handler." msgstr "" "``formatter`` (opcional). La identificación del formateador para este " "gestor." -#: ../Doc/library/logging.config.rst:288 +#: ../Doc/library/logging.config.rst:297 msgid "``filters`` (optional). A list of ids of the filters for this handler." msgstr "" "``filters`` (opcional). Una lista de identificadores de los filtros para " "este gestor." -#: ../Doc/library/logging.config.rst:291 ../Doc/library/logging.config.rst:332 +#: ../Doc/library/logging.config.rst:300 ../Doc/library/logging.config.rst:341 msgid "``filters`` can take filter instances in addition to ids." msgstr "" -#: ../Doc/library/logging.config.rst:294 +#: ../Doc/library/logging.config.rst:303 msgid "" "All *other* keys are passed through as keyword arguments to the handler's " "constructor. For example, given the snippet:" @@ -618,7 +604,7 @@ msgstr "" "Todas las claves *other* se pasan como argumentos de palabras clave al " "constructor del gestor. Por ejemplo, dado el fragmento:" -#: ../Doc/library/logging.config.rst:313 +#: ../Doc/library/logging.config.rst:322 msgid "" "the handler with id ``console`` is instantiated as a :class:`logging." "StreamHandler`, using ``sys.stdout`` as the underlying stream. The handler " @@ -632,7 +618,7 @@ msgstr "" "handlers.RotatingFileHandler` con los argumentos de la palabra clave " "``filename='logconfig.log', maxBytes=1024, backupCount=3``." -#: ../Doc/library/logging.config.rst:319 +#: ../Doc/library/logging.config.rst:328 msgid "" "*loggers* - the corresponding value will be a dict in which each key is a " "logger name and each value is a dict describing how to configure the " @@ -642,29 +628,29 @@ msgstr "" "clave es un nombre de *logger* y cada valor es un diccionario que describe " "cómo configurar la instancia de *Logger* correspondiente." -#: ../Doc/library/logging.config.rst:325 +#: ../Doc/library/logging.config.rst:334 msgid "``level`` (optional). The level of the logger." msgstr "``level`` (opcional). El nivel del registrador." -#: ../Doc/library/logging.config.rst:327 +#: ../Doc/library/logging.config.rst:336 msgid "``propagate`` (optional). The propagation setting of the logger." msgstr "" "``propagate`` (opcional). La configuración de propagación del registrador." -#: ../Doc/library/logging.config.rst:329 +#: ../Doc/library/logging.config.rst:338 msgid "``filters`` (optional). A list of ids of the filters for this logger." msgstr "" "``filters`` (opcional). Una lista de identificadores de los filtros para " "este registrador." -#: ../Doc/library/logging.config.rst:335 +#: ../Doc/library/logging.config.rst:344 msgid "" "``handlers`` (optional). A list of ids of the handlers for this logger." msgstr "" "``handlers`` (opcional). Una lista de identificadores de los gestores para " "este registrador." -#: ../Doc/library/logging.config.rst:338 +#: ../Doc/library/logging.config.rst:347 msgid "" "The specified loggers will be configured according to the level, " "propagation, filters and handlers specified." @@ -672,7 +658,7 @@ msgstr "" "Los registradores especificados se configurarán de acuerdo con el nivel, la " "propagación, los filtros y los gestores especificados." -#: ../Doc/library/logging.config.rst:341 +#: ../Doc/library/logging.config.rst:350 msgid "" "*root* - this will be the configuration for the root logger. Processing of " "the configuration will be as for any logger, except that the ``propagate`` " @@ -682,7 +668,7 @@ msgstr "" "procesamiento de la configuración será como para cualquier registrador, " "excepto que la configuración de ``propagate`` no será aplicable." -#: ../Doc/library/logging.config.rst:345 +#: ../Doc/library/logging.config.rst:354 msgid "" "*incremental* - whether the configuration is to be interpreted as " "incremental to the existing configuration. This value defaults to " @@ -696,7 +682,7 @@ msgstr "" "existente con la misma semántica que la utilizada por la API existente :func:" "`fileConfig`." -#: ../Doc/library/logging.config.rst:351 +#: ../Doc/library/logging.config.rst:360 msgid "" "If the specified value is ``True``, the configuration is processed as " "described in the section on :ref:`logging-config-dict-incremental`." @@ -704,7 +690,7 @@ msgstr "" "Si el valor especificado es ``True``, la configuración se procesa como se " "describe en la sección sobre :ref:`logging-config-dict-incremental`." -#: ../Doc/library/logging.config.rst:354 +#: ../Doc/library/logging.config.rst:363 msgid "" "*disable_existing_loggers* - whether any existing non-root loggers are to be " "disabled. This setting mirrors the parameter of the same name in :func:" @@ -716,11 +702,11 @@ msgstr "" "nombre en :func:`fileConfig`. Si está ausente, este parámetro tiene el valor " "predeterminado ``True``. Este valor se ignora si *incremental* es ``True``." -#: ../Doc/library/logging.config.rst:362 +#: ../Doc/library/logging.config.rst:371 msgid "Incremental Configuration" msgstr "Configuración incremental" -#: ../Doc/library/logging.config.rst:364 +#: ../Doc/library/logging.config.rst:373 msgid "" "It is difficult to provide complete flexibility for incremental " "configuration. For example, because objects such as filters and formatters " @@ -733,7 +719,7 @@ msgstr "" "es posible hacer referencia a dichos objetos anónimos al aumentar una " "configuración." -#: ../Doc/library/logging.config.rst:370 +#: ../Doc/library/logging.config.rst:379 msgid "" "Furthermore, there is not a compelling case for arbitrarily altering the " "object graph of loggers, handlers, filters, formatters at run-time, once a " @@ -752,7 +738,7 @@ msgstr "" "entorno de subprocesos múltiples; Si bien no es imposible, los beneficios no " "valen la complejidad que agrega a la implementación." -#: ../Doc/library/logging.config.rst:379 +#: ../Doc/library/logging.config.rst:388 msgid "" "Thus, when the ``incremental`` key of a configuration dict is present and is " "``True``, the system will completely ignore any ``formatters`` and " @@ -767,7 +753,7 @@ msgstr "" "configuraciones de ``level`` y ``propagate`` en las entradas de ``loggers`` " "y ``root``." -#: ../Doc/library/logging.config.rst:385 +#: ../Doc/library/logging.config.rst:394 msgid "" "Using a value in the configuration dict lets configurations to be sent over " "the wire as pickled dicts to a socket listener. Thus, the logging verbosity " @@ -780,11 +766,11 @@ msgstr "" "de larga ejecución puede modificarse con el tiempo sin necesidad de detener " "y reiniciar la aplicación." -#: ../Doc/library/logging.config.rst:393 +#: ../Doc/library/logging.config.rst:402 msgid "Object connections" msgstr "Conexiones de objeto" -#: ../Doc/library/logging.config.rst:395 +#: ../Doc/library/logging.config.rst:404 msgid "" "The schema describes a set of logging objects - loggers, handlers, " "formatters, filters - which are connected to each other in an object graph. " @@ -813,11 +799,11 @@ msgstr "" "para indicar que existe una conexión entre el origen y el objeto de destino " "con esa identificación." -#: ../Doc/library/logging.config.rst:409 +#: ../Doc/library/logging.config.rst:418 msgid "So, for example, consider the following YAML snippet:" msgstr "Entonces, por ejemplo, considere el siguiente fragmento de YAML:" -#: ../Doc/library/logging.config.rst:430 +#: ../Doc/library/logging.config.rst:439 msgid "" "(Note: YAML used here because it's a little more readable than the " "equivalent Python source form for the dictionary.)" @@ -825,7 +811,7 @@ msgstr "" "(Nota: YAML se usa aquí porque es un poco más legible que el formulario " "fuente Python equivalente para el diccionario.)" -#: ../Doc/library/logging.config.rst:433 +#: ../Doc/library/logging.config.rst:442 msgid "" "The ids for loggers are the logger names which would be used " "programmatically to obtain a reference to those loggers, e.g. ``foo.bar." @@ -844,7 +830,7 @@ msgstr "" "utilizan para determinar conexiones entre objetos , y no persisten en " "ninguna parte cuando se completa la llamada de configuración." -#: ../Doc/library/logging.config.rst:441 +#: ../Doc/library/logging.config.rst:450 msgid "" "The above snippet indicates that logger named ``foo.bar.baz`` should have " "two handlers attached to it, which are described by the handler ids ``h1`` " @@ -857,11 +843,11 @@ msgstr "" "identificador ``brief``, y el formateador para ``h2`` es el descrito por " "identificador ``precise``." -#: ../Doc/library/logging.config.rst:451 +#: ../Doc/library/logging.config.rst:460 msgid "User-defined objects" msgstr "Objetos definidos por el usuario" -#: ../Doc/library/logging.config.rst:453 +#: ../Doc/library/logging.config.rst:462 msgid "" "The schema supports user-defined objects for handlers, filters and " "formatters. (Loggers do not need to have different types for different " @@ -873,7 +859,7 @@ msgstr "" "diferentes instancias, por lo que no hay soporte en este esquema de " "configuración para las clases de registrador definidas por el usuario)." -#: ../Doc/library/logging.config.rst:458 +#: ../Doc/library/logging.config.rst:467 msgid "" "Objects to be configured are described by dictionaries which detail their " "configuration. In some places, the logging system will be able to infer " @@ -896,7 +882,7 @@ msgstr "" "importación absoluta a la fábrica disponible bajo la tecla especial " "``'()'``. Aquí hay un ejemplo concreto:" -#: ../Doc/library/logging.config.rst:484 +#: ../Doc/library/logging.config.rst:493 msgid "" "The above YAML snippet defines three formatters. The first, with id " "``brief``, is a standard :class:`logging.Formatter` instance with the " @@ -915,11 +901,11 @@ msgstr "" "de fuente Python, los formateadores ``breve`` y ``predeterminado`` tienen " "sub-diccionarios de configuración::" -#: ../Doc/library/logging.config.rst:496 +#: ../Doc/library/logging.config.rst:505 msgid "and::" msgstr "y::" -#: ../Doc/library/logging.config.rst:503 +#: ../Doc/library/logging.config.rst:512 msgid "" "respectively, and as these dictionaries do not contain the special key " "``'()'``, the instantiation is inferred from the context: as a result, " @@ -932,7 +918,7 @@ msgstr "" "las instancias estándar :class:`logging.Formatter`. El sub-diccionario de " "configuración para el tercer formateador, con identificador ``custom``, es::" -#: ../Doc/library/logging.config.rst:516 +#: ../Doc/library/logging.config.rst:525 msgid "" "and this contains the special key ``'()'``, which means that user-defined " "instantiation is wanted. In this case, the specified factory callable will " @@ -953,7 +939,15 @@ msgstr "" "ejemplo anterior, se supondrá que el formateador con identificador " "``custom`` será retornado por la llamada::" -#: ../Doc/library/logging.config.rst:528 +#: ../Doc/library/logging.config.rst:537 +msgid "" +"The values for keys such as ``bar``, ``spam`` and ``answer`` in the above " +"example should not be configuration dictionaries or references such as " +"``cfg://foo`` or ``ext://bar``, because they will not be processed by the " +"configuration machinery, but passed to the callable as-is." +msgstr "" + +#: ../Doc/library/logging.config.rst:542 msgid "" "The key ``'()'`` has been used as the special key because it is not a valid " "keyword parameter name, and so will not clash with the names of the keyword " @@ -966,7 +960,7 @@ msgstr "" "``'()'`` también sirve como mnemónico de que el valor correspondiente es " "invocable." -#: ../Doc/library/logging.config.rst:533 +#: ../Doc/library/logging.config.rst:547 msgid "" "The ``filters`` member of ``handlers`` and ``loggers`` can take filter " "instances in addition to ids." @@ -974,7 +968,7 @@ msgstr "" "Los miembros ``filter`` de ``handlers`` y ``loggers`` pueden tomar " "instancias de filtro en adición a identificadores." -#: ../Doc/library/logging.config.rst:537 +#: ../Doc/library/logging.config.rst:551 msgid "" "You can also specify a special key ``'.'`` whose value is a dictionary is a " "mapping of attribute names to values. If found, the specified attributes " @@ -987,7 +981,7 @@ msgstr "" "definido por el usuario antes de ser retornado. En consecuencia, con la " "configuración siguiente::" -#: ../Doc/library/logging.config.rst:553 +#: ../Doc/library/logging.config.rst:567 msgid "" "the returned formatter will have attribute ``foo`` set to ``'bar'`` and " "attribute ``baz`` set to ``'bozz'``." @@ -995,11 +989,45 @@ msgstr "" "el formateador retornado tendrá el atributo ``foo`` establecido en ``'bar'`` " "y el atributo ``baz`` establecido en ``'bozz'``." -#: ../Doc/library/logging.config.rst:560 +#: ../Doc/library/logging.config.rst:570 +msgid "" +"The values for attributes such as ``foo`` and ``baz`` in the above example " +"should not be configuration dictionaries or references such as ``cfg://foo`` " +"or ``ext://bar``, because they will not be processed by the configuration " +"machinery, but set as attribute values as-is." +msgstr "" + +#: ../Doc/library/logging.config.rst:579 +#, fuzzy +msgid "Handler configuration order" +msgstr "Configuración incremental" + +#: ../Doc/library/logging.config.rst:581 +msgid "" +"Handlers are configured in alphabetical order of their keys, and a " +"configured handler replaces the configuration dictionary in (a working copy " +"of) the ``handlers`` dictionary in the schema. If you use a construct such " +"as ``cfg://handlers.foo``, then initially ``handlers['foo']`` points to the " +"configuration dictionary for the handler named ``foo``, and later (once that " +"handler has been configured) it points to the configured handler instance. " +"Thus, ``cfg://handlers.foo`` could resolve to either a dictionary or a " +"handler instance. In general, it is wise to name handlers in a way such that " +"dependent handlers are configured _after_ any handlers they depend on; that " +"allows something like ``cfg://handlers.foo`` to be used in configuring a " +"handler that depends on handler ``foo``. If that dependent handler were " +"named ``bar``, problems would result, because the configuration of ``bar`` " +"would be attempted before that of ``foo``, and ``foo`` would not yet have " +"been configured. However, if the dependent handler were named ``foobar``, it " +"would be configured after ``foo``, with the result that ``cfg://handlers." +"foo`` would resolve to configured handler ``foo``, and not its configuration " +"dictionary." +msgstr "" + +#: ../Doc/library/logging.config.rst:602 msgid "Access to external objects" msgstr "Acceso a objetos externos" -#: ../Doc/library/logging.config.rst:562 +#: ../Doc/library/logging.config.rst:604 msgid "" "There are times where a configuration needs to refer to objects external to " "the configuration, for example ``sys.stderr``. If the configuration dict is " @@ -1025,7 +1053,7 @@ msgstr "" "un valor en la configuración, entonces la ``ext://`` se eliminará y se " "procesará el resto del valor utilizando mecanismos normales de importación." -#: ../Doc/library/logging.config.rst:575 +#: ../Doc/library/logging.config.rst:617 msgid "" "The handling of such prefixes is done in a way analogous to protocol " "handling: there is a generic mechanism to look for prefixes which match the " @@ -1042,11 +1070,11 @@ msgstr "" "de la cadena. Si no se reconoce el prefijo, el valor de la cadena se dejará " "tal cual." -#: ../Doc/library/logging.config.rst:587 +#: ../Doc/library/logging.config.rst:629 msgid "Access to internal objects" msgstr "Acceso a objetos internos" -#: ../Doc/library/logging.config.rst:589 +#: ../Doc/library/logging.config.rst:631 msgid "" "As well as external objects, there is sometimes also a need to refer to " "objects in the configuration. This will be done implicitly by the " @@ -1064,7 +1092,7 @@ msgstr "" "``handlers``, ``filters`` y ``formatter`` tomarán una identificación de " "objeto y se resuelven en el objeto de destino apropiado." -#: ../Doc/library/logging.config.rst:597 +#: ../Doc/library/logging.config.rst:639 msgid "" "However, a more generic mechanism is needed for user-defined objects which " "are not known to the :mod:`logging` module. For example, consider :class:" @@ -1089,7 +1117,7 @@ msgstr "" "refería a un gestor. Para atender esto, un sistema de resolución genérico " "permite al usuario especificar:" -#: ../Doc/library/logging.config.rst:619 +#: ../Doc/library/logging.config.rst:661 msgid "" "The literal string ``'cfg://handlers.file'`` will be resolved in an " "analogous way to strings with the ``ext://`` prefix, but looking in the " @@ -1103,7 +1131,7 @@ msgstr "" "el acceso por punto o por índice, de manera similar a la proporcionada por " "``str.format``. Por lo tanto, dado el siguiente fragmento:" -#: ../Doc/library/logging.config.rst:637 +#: ../Doc/library/logging.config.rst:679 msgid "" "in the configuration, the string ``'cfg://handlers'`` would resolve to the " "dict with key ``handlers``, the string ``'cfg://handlers.email`` would " @@ -1131,7 +1159,7 @@ msgstr "" "de dígitos decimales, se intentará acceder utilizando el valor entero " "correspondiente, volviendo al valor de cadena si es necesario." -#: ../Doc/library/logging.config.rst:651 +#: ../Doc/library/logging.config.rst:693 msgid "" "Given a string ``cfg://handlers.myhandler.mykey.123``, this will resolve to " "``config_dict['handlers']['myhandler']['mykey']['123']``. If the string is " @@ -1147,11 +1175,11 @@ msgstr "" "['mykey'][123]``, y vuelva a ``config_dict['handlers']['myhandler']['mykey']" "['123']`` si eso falla." -#: ../Doc/library/logging.config.rst:663 +#: ../Doc/library/logging.config.rst:705 msgid "Import resolution and custom importers" msgstr "Resolución de importación e importadores personalizados" -#: ../Doc/library/logging.config.rst:665 +#: ../Doc/library/logging.config.rst:707 msgid "" "Import resolution, by default, uses the builtin :func:`__import__` function " "to do its importing. You may want to replace this with your own importing " @@ -1172,7 +1200,7 @@ msgstr "" "desea definir a nivel de clase en lugar de a nivel de instancia, debe " "envolverlo con :func:`staticmethod`. Por ejemplo::" -#: ../Doc/library/logging.config.rst:680 +#: ../Doc/library/logging.config.rst:722 msgid "" "You don't need to wrap with :func:`staticmethod` if you're setting the " "import callable on a configurator *instance*." @@ -1180,11 +1208,113 @@ msgstr "" "No necesita envolver con :func:`staticmethod` si está configurando la " "importación invocable en un configurador *instance*." -#: ../Doc/library/logging.config.rst:687 +#: ../Doc/library/logging.config.rst:728 +msgid "Configuring QueueHandler and QueueListener" +msgstr "" + +#: ../Doc/library/logging.config.rst:730 +msgid "" +"If you want to configure a :class:`~logging.handlers.QueueHandler`, noting " +"that this is normally used in conjunction with a :class:`~logging.handlers." +"QueueListener`, you can configure both together. After the configuration, " +"the ``QueueListener`` instance will be available as the :attr:`~logging." +"handlers.QueueHandler.listener` attribute of the created handler, and that " +"in turn will be available to you using :func:`~logging.getHandlerByName` and " +"passing the name you have used for the ``QueueHandler`` in your " +"configuration. The dictionary schema for configuring the pair is shown in " +"the example YAML snippet below." +msgstr "" + +#: ../Doc/library/logging.config.rst:751 +msgid "The ``queue`` and ``listener`` keys are optional." +msgstr "" + +#: ../Doc/library/logging.config.rst:753 +msgid "" +"If the ``queue`` key is present, the corresponding value can be one of the " +"following:" +msgstr "" + +#: ../Doc/library/logging.config.rst:755 +msgid "" +"An actual instance of :class:`queue.Queue` or a subclass thereof. This is of " +"course only possible if you are constructing or modifying the configuration " +"dictionary in code." +msgstr "" + +#: ../Doc/library/logging.config.rst:759 +msgid "" +"A string that resolves to a callable which, when called with no arguments, " +"returns the :class:`queue.Queue` instance to use. That callable could be a :" +"class:`queue.Queue` subclass or a function which returns a suitable queue " +"instance, such as ``my.module.queue_factory()``." +msgstr "" + +#: ../Doc/library/logging.config.rst:764 +msgid "" +"A dict with a ``'()'`` key which is constructed in the usual way as " +"discussed in :ref:`logging-config-dict-userdef`. The result of this " +"construction should be a :class:`queue.Queue` instance." +msgstr "" + +#: ../Doc/library/logging.config.rst:768 +msgid "" +"If the ``queue`` key is absent, a standard unbounded :class:`queue.Queue` " +"instance is created and used." +msgstr "" + +#: ../Doc/library/logging.config.rst:771 +msgid "" +"If the ``listener`` key is present, the corresponding value can be one of " +"the following:" +msgstr "" + +#: ../Doc/library/logging.config.rst:773 +msgid "" +"A subclass of :class:`logging.handlers.QueueListener`. This is of course " +"only possible if you are constructing or modifying the configuration " +"dictionary in code." +msgstr "" + +#: ../Doc/library/logging.config.rst:777 +msgid "" +"A string which resolves to a class which is a subclass of ``QueueListener``, " +"such as ``'my.package.CustomListener'``." +msgstr "" + +#: ../Doc/library/logging.config.rst:780 +msgid "" +"A dict with a ``'()'`` key which is constructed in the usual way as " +"discussed in :ref:`logging-config-dict-userdef`. The result of this " +"construction should be a callable with the same signature as the " +"``QueueListener`` initializer." +msgstr "" + +#: ../Doc/library/logging.config.rst:784 +msgid "" +"If the ``listener`` key is absent, :class:`logging.handlers.QueueListener` " +"is used." +msgstr "" + +#: ../Doc/library/logging.config.rst:786 +msgid "" +"The values under the ``handlers`` key are the names of other handlers in the " +"configuration (not shown in the above snippet) which will be passed to the " +"queue listener." +msgstr "" + +#: ../Doc/library/logging.config.rst:790 +msgid "" +"Any custom queue handler and listener classes will need to be defined with " +"the same initialization signatures as :class:`~logging.handlers." +"QueueHandler` and :class:`~logging.handlers.QueueListener`." +msgstr "" + +#: ../Doc/library/logging.config.rst:799 msgid "Configuration file format" msgstr "Formato de archivo de configuración" -#: ../Doc/library/logging.config.rst:689 +#: ../Doc/library/logging.config.rst:801 msgid "" "The configuration file format understood by :func:`fileConfig` is based on :" "mod:`configparser` functionality. The file must contain sections called " @@ -1215,7 +1345,7 @@ msgstr "" "configuración del registrador raíz debe especificarse en una sección llamada " "``[logger_root]``." -#: ../Doc/library/logging.config.rst:704 +#: ../Doc/library/logging.config.rst:816 msgid "" "The :func:`fileConfig` API is older than the :func:`dictConfig` API and does " "not provide functionality to cover certain aspects of logging. For example, " @@ -1237,11 +1367,11 @@ msgstr "" "func:`dictConfig`, por lo que vale la pena considerar la transición a esta " "API más nueva cuando sea conveniente hacerlo." -#: ../Doc/library/logging.config.rst:714 +#: ../Doc/library/logging.config.rst:826 msgid "Examples of these sections in the file are given below." msgstr "A continuación se dan ejemplos de estas secciones en el archivo." -#: ../Doc/library/logging.config.rst:727 +#: ../Doc/library/logging.config.rst:839 msgid "" "The root logger must specify a level and a list of handlers. An example of a " "root logger section is given below." @@ -1249,7 +1379,7 @@ msgstr "" "El registrador raíz debe especificar un nivel y una lista de gestores. A " "continuación se muestra un ejemplo de una sección de registrador raíz." -#: ../Doc/library/logging.config.rst:736 +#: ../Doc/library/logging.config.rst:848 msgid "" "The ``level`` entry can be one of ``DEBUG, INFO, WARNING, ERROR, CRITICAL`` " "or ``NOTSET``. For the root logger only, ``NOTSET`` means that all messages " @@ -1262,7 +1392,7 @@ msgstr "" "`evaluados ` en el contexto del espacio de nombres del paquete " "``logging``." -#: ../Doc/library/logging.config.rst:741 +#: ../Doc/library/logging.config.rst:853 msgid "" "The ``handlers`` entry is a comma-separated list of handler names, which " "must appear in the ``[handlers]`` section. These names must appear in the " @@ -1274,7 +1404,7 @@ msgstr "" "deben aparecer en la sección ``[handlers]`` y tener las secciones " "correspondientes en el archivo de configuración." -#: ../Doc/library/logging.config.rst:746 +#: ../Doc/library/logging.config.rst:858 msgid "" "For loggers other than the root logger, some additional information is " "required. This is illustrated by the following example." @@ -1282,7 +1412,7 @@ msgstr "" "Para los registradores que no sean el registrador raíz, se requiere " "información adicional. Esto se ilustra en el siguiente ejemplo." -#: ../Doc/library/logging.config.rst:757 +#: ../Doc/library/logging.config.rst:869 msgid "" "The ``level`` and ``handlers`` entries are interpreted as for the root " "logger, except that if a non-root logger's level is specified as ``NOTSET``, " @@ -1305,7 +1435,7 @@ msgstr "" "jerárquico del canal del registrador, es decir, el nombre utilizado por la " "aplicación para obtener el registrador." -#: ../Doc/library/logging.config.rst:766 +#: ../Doc/library/logging.config.rst:878 msgid "" "Sections which specify handler configuration are exemplified by the " "following." @@ -1313,7 +1443,7 @@ msgstr "" "Las secciones que especifican la configuración del gestor se ejemplifican a " "continuación." -#: ../Doc/library/logging.config.rst:776 +#: ../Doc/library/logging.config.rst:888 msgid "" "The ``class`` entry indicates the handler's class (as determined by :func:" "`eval` in the ``logging`` package's namespace). The ``level`` is interpreted " @@ -1324,7 +1454,7 @@ msgstr "" "se interpreta como para los registradores, y ``NOTSET`` se entiende como " "'registrar todo'." -#: ../Doc/library/logging.config.rst:780 +#: ../Doc/library/logging.config.rst:892 msgid "" "The ``formatter`` entry indicates the key name of the formatter for this " "handler. If blank, a default formatter (``logging._defaultFormatter``) is " @@ -1337,7 +1467,7 @@ msgstr "" "en la sección ``[formatters]`` y tener una sección correspondiente en el " "archivo de configuración." -#: ../Doc/library/logging.config.rst:785 +#: ../Doc/library/logging.config.rst:897 msgid "" "The ``args`` entry, when :ref:`evaluated ` in the context of the " "``logging`` package's namespace, is the list of arguments to the constructor " @@ -1352,7 +1482,7 @@ msgstr "" "construyen las entradas típicas. Si no se proporciona, el valor " "predeterminado es ``()``." -#: ../Doc/library/logging.config.rst:791 +#: ../Doc/library/logging.config.rst:903 msgid "" "The optional ``kwargs`` entry, when :ref:`evaluated ` in the " "context of the ``logging`` package's namespace, is the keyword argument dict " @@ -1364,14 +1494,14 @@ msgstr "" "generado a partir de los argumentos de palabra clave para el constructor de " "la clase gestor. Si no se proporciona, el valor predeterminado es ``{}``." -#: ../Doc/library/logging.config.rst:848 +#: ../Doc/library/logging.config.rst:960 msgid "" "Sections which specify formatter configuration are typified by the following." msgstr "" "Las secciones que especifican la configuración del formateador se " "caracterizan por lo siguiente." -#: ../Doc/library/logging.config.rst:859 +#: ../Doc/library/logging.config.rst:972 msgid "" "The arguments for the formatter configuration are the same as the keys in " "the dictionary schema :ref:`formatters section `." -#: ../Doc/library/logging.config.rst:865 +#: ../Doc/library/logging.config.rst:976 +#, fuzzy +msgid "" +"The ``defaults`` entry, when :ref:`evaluated ` in the context of " +"the ``logging`` package's namespace, is a dictionary of default values for " +"custom formatting fields. If not provided, it defaults to ``None``." +msgstr "" +"La entrada opcional ``kwargs``, cuando es :func:`evaluada ` en el " +"contexto del espacio de nombres del paquete ``logging``, es el diccionario " +"generado a partir de los argumentos de palabra clave para el constructor de " +"la clase gestor. Si no se proporciona, el valor predeterminado es ``{}``." + +#: ../Doc/library/logging.config.rst:983 msgid "" "Due to the use of :func:`eval` as described above, there are potential " "security risks which result from using the :func:`listen` to send and " @@ -1396,18 +1538,49 @@ msgstr "" "máquina; consulte la documentación de :func:`listen` para obtener más " "información." -#: ../Doc/library/logging.config.rst:874 +#: ../Doc/library/logging.config.rst:992 msgid "Module :mod:`logging`" msgstr "Módulo :mod:`logging`" -#: ../Doc/library/logging.config.rst:874 +#: ../Doc/library/logging.config.rst:992 msgid "API reference for the logging module." msgstr "Referencia de API para el módulo de registro." -#: ../Doc/library/logging.config.rst:876 +#: ../Doc/library/logging.config.rst:994 msgid "Module :mod:`logging.handlers`" msgstr "Módulo :mod:`logging.handlers`" -#: ../Doc/library/logging.config.rst:877 +#: ../Doc/library/logging.config.rst:995 msgid "Useful handlers included with the logging module." msgstr "Gestores útiles incluidos con el módulo de registro." + +#~ msgid "" +#~ "If specified as ``False``, loggers which " +#~ "exist when this call is made are left " +#~ "enabled. The default is ``True`` because " +#~ "this enables old behaviour in " +#~ "a backward-compatible way. This behaviour " +#~ "is to disable any existing non-root " +#~ "loggers unless they or their ancestors " +#~ "are explicitly named in the logging " +#~ "configuration. :param encoding: The encoding used to open file when " +#~ "*fname* is filename." +#~ msgstr "" +#~ "Si se especifican como ``False``, los " +#~ "registradores que existen cuando se hace " +#~ "esta llamada se deshabilitan. El valor " +#~ "por defecto es ``True`` porque esto " +#~ "habilita comportamientos " +#~ "antiguos de una manera compatible con " +#~ "versiones anteriores. Este comportamiento consiste " +#~ "en deshabilitar cualquier registrador que " +#~ "no sea raíz a menos que ellos o sus " +#~ "antecesores sean explícitamente nombrados " +#~ "en la configuración del registro. :param encoding: La codificación que " +#~ "se usa para abrir archivos cuando *fname* es nombre del archivo." + +#~ msgid "If specified as ``False``, loggers which" +#~ msgstr "Si se especifican como ``False``, los registradores que" + +#~ msgid "param encoding" +#~ msgstr "param codificación" diff --git a/library/logging.handlers.po b/library/logging.handlers.po index b0008feaa6..db162b8c2a 100644 --- a/library/logging.handlers.po +++ b/library/logging.handlers.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-31 14:33-0300\n" "Last-Translator: Diego Cristobal Herreros \n" -"Language-Team: python-doc-es\n" "Language: es_AR\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/logging.handlers.rst:2 msgid ":mod:`logging.handlers` --- Logging handlers" @@ -171,14 +170,15 @@ msgstr "" "funcionalidad de salida de la clase :class:`StreamHandler`." #: ../Doc/library/logging.handlers.rst:98 +#, fuzzy msgid "" "Returns a new instance of the :class:`FileHandler` class. The specified file " -"is opened and used as the stream for logging. If *mode* is not specified, :" -"const:`'a'` is used. If *encoding* is not ``None``, it is used to open the " -"file with that encoding. If *delay* is true, then file opening is deferred " -"until the first call to :meth:`emit`. By default, the file grows " -"indefinitely. If *errors* is specified, it's used to determine how encoding " -"errors are handled." +"is opened and used as the stream for logging. If *mode* is not specified, " +"``'a'`` is used. If *encoding* is not ``None``, it is used to open the file " +"with that encoding. If *delay* is true, then file opening is deferred until " +"the first call to :meth:`emit`. By default, the file grows indefinitely. If " +"*errors* is specified, it's used to determine how encoding errors are " +"handled." msgstr "" "Retorna una nueva instancia de la clase :class:`FileHandler`. El archivo " "especificado se abre y se utiliza como flujo para el registro. Si no se " @@ -310,13 +310,14 @@ msgstr "" "func:`~os.stat` siempre retorna cero para este valor." #: ../Doc/library/logging.handlers.rst:183 +#, fuzzy msgid "" "Returns a new instance of the :class:`WatchedFileHandler` class. The " "specified file is opened and used as the stream for logging. If *mode* is " -"not specified, :const:`'a'` is used. If *encoding* is not ``None``, it is " -"used to open the file with that encoding. If *delay* is true, then file " -"opening is deferred until the first call to :meth:`emit`. By default, the " -"file grows indefinitely. If *errors* is provided, it determines how encoding " +"not specified, ``'a'`` is used. If *encoding* is not ``None``, it is used " +"to open the file with that encoding. If *delay* is true, then file opening " +"is deferred until the first call to :meth:`emit`. By default, the file " +"grows indefinitely. If *errors* is provided, it determines how encoding " "errors are handled." msgstr "" "Retorna una nueva instancia de la clase :class:`WatchedFileHandler`. El " @@ -1742,13 +1743,12 @@ msgstr "" #: ../Doc/library/logging.handlers.rst:920 msgid "" -"You can override this to implement custom flushing behavior. This version " -"just zaps the buffer to empty." +"For a :class:`BufferingHandler` instance, flushing means that it sets the " +"buffer to an empty list. This method can be overwritten to implement more " +"useful flushing behavior." msgstr "" -"Puedes sobrescribir (*override*) esto para implementar un comportamiento 'a " -"medida' de la descarga. Esta versión solo vacía el búfer." -#: ../Doc/library/logging.handlers.rst:926 +#: ../Doc/library/logging.handlers.rst:927 msgid "" "Return ``True`` if the buffer is up to capacity. This method can be " "overridden to implement custom flushing strategies." @@ -1756,7 +1756,7 @@ msgstr "" "Retorna ``True`` si el búfer tiene aún capacidad. Este método puede ser " "omitido para implementar estrategias a medida de vaciado." -#: ../Doc/library/logging.handlers.rst:932 +#: ../Doc/library/logging.handlers.rst:933 msgid "" "Returns a new instance of the :class:`MemoryHandler` class. The instance is " "initialized with a buffer size of *capacity* (number of records buffered). " @@ -1777,42 +1777,44 @@ msgstr "" "comportamiento previo de vaciado del búfer sucederá cuando se cierre el " "gestor." -#: ../Doc/library/logging.handlers.rst:941 +#: ../Doc/library/logging.handlers.rst:942 msgid "The *flushOnClose* parameter was added." msgstr "Se añadió el parámetro *flushOnClose*." -#: ../Doc/library/logging.handlers.rst:947 +#: ../Doc/library/logging.handlers.rst:948 msgid "Calls :meth:`flush`, sets the target to ``None`` and clears the buffer." msgstr "" "Invoca al método :meth:`flush` y establece el objetivo a 'None' y vacía el " "búfer." -#: ../Doc/library/logging.handlers.rst:953 +#: ../Doc/library/logging.handlers.rst:954 +#, fuzzy msgid "" -"For a :class:`MemoryHandler`, flushing means just sending the buffered " -"records to the target, if there is one. The buffer is also cleared when this " -"happens. Override if you want different behavior." +"For a :class:`MemoryHandler` instance, flushing means just sending the " +"buffered records to the target, if there is one. The buffer is also cleared " +"when buffered records are sent to the target. Override if you want different " +"behavior." msgstr "" "Para la clase :class:`MemoryHandler` el vaciado significa simplemente enviar " "los registros del búfer al objetivo, si es que hay uno. El búfer además se " "vacía cuando esto ocurre. Sobrescribe (*override*) si deseas un " "comportamiento diferente." -#: ../Doc/library/logging.handlers.rst:960 +#: ../Doc/library/logging.handlers.rst:961 msgid "Sets the target handler for this handler." msgstr "Establece el gestor de objetivo para este gestor." -#: ../Doc/library/logging.handlers.rst:965 +#: ../Doc/library/logging.handlers.rst:966 msgid "Checks for buffer full or a record at the *flushLevel* or higher." msgstr "" "Comprueba si el búfer esta lleno o un registro igual o mas alto que " "*flushLevel*." -#: ../Doc/library/logging.handlers.rst:971 +#: ../Doc/library/logging.handlers.rst:972 msgid "HTTPHandler" msgstr "HTTPHandler" -#: ../Doc/library/logging.handlers.rst:973 +#: ../Doc/library/logging.handlers.rst:974 msgid "" "The :class:`HTTPHandler` class, located in the :mod:`logging.handlers` " "module, supports sending logging messages to a web server, using either " @@ -1822,7 +1824,7 @@ msgstr "" "admite el envío de mensajes de registro a un servidor web, utilizando la " "semántica ``GET`` o ``POST``." -#: ../Doc/library/logging.handlers.rst:980 +#: ../Doc/library/logging.handlers.rst:981 msgid "" "Returns a new instance of the :class:`HTTPHandler` class. The *host* can be " "of the form ``host:port``, should you need to use a specific port number. " @@ -1847,11 +1849,11 @@ msgstr "" "*secure=True* así tu usuario y contraseña no son pasados como texto en " "blanco por la conexión." -#: ../Doc/library/logging.handlers.rst:991 +#: ../Doc/library/logging.handlers.rst:992 msgid "The *context* parameter was added." msgstr "Se agregó el parámetro *context*." -#: ../Doc/library/logging.handlers.rst:996 +#: ../Doc/library/logging.handlers.rst:997 msgid "" "Provides a dictionary, based on ``record``, which is to be URL-encoded and " "sent to the web server. The default implementation just returns ``record." @@ -1865,7 +1867,7 @@ msgstr "" "servidor web un subconjunto de la clase :class:`~logging.LogRecord` o si se " "requiere enviar al servidor algo mas específico." -#: ../Doc/library/logging.handlers.rst:1004 +#: ../Doc/library/logging.handlers.rst:1005 msgid "" "Sends the record to the web server as a URL-encoded dictionary. The :meth:" "`mapLogRecord` method is used to convert the record to the dictionary to be " @@ -1875,7 +1877,7 @@ msgstr "" "método :meth:`mapLogRecord` se utiliza para convertir el registro al " "diccionario que se enviará." -#: ../Doc/library/logging.handlers.rst:1008 +#: ../Doc/library/logging.handlers.rst:1009 msgid "" "Since preparing a record for sending it to a web server is not the same as a " "generic formatting operation, using :meth:`~logging.Handler.setFormatter` to " @@ -1892,11 +1894,11 @@ msgstr "" "func:`urllib.parse.urlencode` para codificar el diccionario en una forma " "adecuada para enviar a un servidor web." -#: ../Doc/library/logging.handlers.rst:1021 +#: ../Doc/library/logging.handlers.rst:1022 msgid "QueueHandler" msgstr "QueueHandler" -#: ../Doc/library/logging.handlers.rst:1025 +#: ../Doc/library/logging.handlers.rst:1026 msgid "" "The :class:`QueueHandler` class, located in the :mod:`logging.handlers` " "module, supports sending logging messages to a queue, such as those " @@ -1906,7 +1908,7 @@ msgstr "" "handlers` soporta el envío de mensajes de *logging* a una cola, tal como los " "implementados en los módulos :mod:`queue` o :mod:`multiprocessing` ." -#: ../Doc/library/logging.handlers.rst:1029 +#: ../Doc/library/logging.handlers.rst:1030 msgid "" "Along with the :class:`QueueListener` class, :class:`QueueHandler` can be " "used to let handlers do their work on a separate thread from the one which " @@ -1923,7 +1925,7 @@ msgstr "" "cualquier operación potencialmente lenta (como enviar un correo electrónico " "a través de :class:`SMTPHandler`) se realiza en un subproceso separado." -#: ../Doc/library/logging.handlers.rst:1038 +#: ../Doc/library/logging.handlers.rst:1039 msgid "" "Returns a new instance of the :class:`QueueHandler` class. The instance is " "initialized with the queue to send messages to. The *queue* can be any queue-" @@ -1939,8 +1941,8 @@ msgstr "" "*requerida* para tener una API de rastreo de tareas, lo que significa que " "puedes usar instancias de :class:`~queue.SimpleQueue` como *queue*." -#: ../Doc/library/logging.handlers.rst:1045 -#: ../Doc/library/logging.handlers.rst:1128 +#: ../Doc/library/logging.handlers.rst:1046 +#: ../Doc/library/logging.handlers.rst:1135 msgid "" "If you are using :mod:`multiprocessing`, you should avoid using :class:" "`~queue.SimpleQueue` and instead use :class:`multiprocessing.Queue`." @@ -1948,13 +1950,14 @@ msgstr "" "Si estás usando :mod:`multiprocessing`, debes evitar usar :class:`~queue." "SimpleQueue` y en su lugar usar :class:`multiprocessing.Queue`." -#: ../Doc/library/logging.handlers.rst:1050 +#: ../Doc/library/logging.handlers.rst:1051 +#, fuzzy msgid "" "Enqueues the result of preparing the LogRecord. Should an exception occur (e." "g. because a bounded queue has filled up), the :meth:`~logging.Handler." "handleError` method is called to handle the error. This can result in the " -"record silently being dropped (if :attr:`logging.raiseExceptions` is " -"``False``) or a message printed to ``sys.stderr`` (if :attr:`logging." +"record silently being dropped (if :data:`logging.raiseExceptions` is " +"``False``) or a message printed to ``sys.stderr`` (if :data:`logging." "raiseExceptions` is ``True``)." msgstr "" "Pone en la cola el resultado de preparar el registro historial de log. Si " @@ -1964,7 +1967,7 @@ msgstr "" "es ``False``) o que se imprima un mensaje a ``sys.stderr`` (si :attr:" "`logging.raiseExceptions` es ``True``)." -#: ../Doc/library/logging.handlers.rst:1059 +#: ../Doc/library/logging.handlers.rst:1060 msgid "" "Prepares a record for queuing. The object returned by this method is " "enqueued." @@ -1972,7 +1975,7 @@ msgstr "" "Prepara un registro para poner en la cola. El objeto que retorna este método " "se colocará en cola." -#: ../Doc/library/logging.handlers.rst:1062 +#: ../Doc/library/logging.handlers.rst:1063 msgid "" "The base implementation formats the record to merge the message, arguments, " "exception and stack information, if present. It also removes unpickleable " @@ -1989,7 +1992,7 @@ msgstr "" "al método :meth:`format` del controlador) y establece los atributos :attr:" "`args`, :attr:`exc_info` y :attr:`exc_text` a ``None``." -#: ../Doc/library/logging.handlers.rst:1070 +#: ../Doc/library/logging.handlers.rst:1071 msgid "" "You might want to override this method if you want to convert the record to " "a dict or JSON string, or send a modified copy of the record while leaving " @@ -1999,7 +2002,7 @@ msgstr "" "registro en un diccionario o cadena de caracteres JSON, o enviar una copia " "modificada del registro mientras dejas el original intacto." -#: ../Doc/library/logging.handlers.rst:1074 +#: ../Doc/library/logging.handlers.rst:1075 msgid "" "The base implementation formats the message with arguments, sets the " "``message`` and ``msg`` attributes to the formatted message and sets the " @@ -2028,7 +2031,7 @@ msgstr "" "cuenta que es posible que debas considerar no solo tu propio código, sino " "también el código en cualquier biblioteca que uses)." -#: ../Doc/library/logging.handlers.rst:1090 +#: ../Doc/library/logging.handlers.rst:1091 msgid "" "Enqueues the record on the queue using ``put_nowait()``; you may want to " "override this if you want to use blocking behaviour, or a timeout, or a " @@ -2038,11 +2041,18 @@ msgstr "" "sobrescribe (*override*) esto si quieres usar una acción de bloqueo, o un " "tiempo de espera, o una implementación de cola a medida." -#: ../Doc/library/logging.handlers.rst:1099 +#: ../Doc/library/logging.handlers.rst:1097 +msgid "" +"When created via configuration using :func:`~logging.config.dictConfig`, " +"this attribute will contain a :class:`QueueListener` instance for use with " +"this handler. Otherwise, it will be ``None``." +msgstr "" + +#: ../Doc/library/logging.handlers.rst:1106 msgid "QueueListener" msgstr "QueueListener" -#: ../Doc/library/logging.handlers.rst:1103 +#: ../Doc/library/logging.handlers.rst:1110 msgid "" "The :class:`QueueListener` class, located in the :mod:`logging.handlers` " "module, supports receiving logging messages from a queue, such as those " @@ -2060,7 +2070,7 @@ msgstr "" "`QueueListener` no es en si misma un gestor, esta documentada aquí porque " "trabaja mano a mano con la clase :class:`QueueHandler`." -#: ../Doc/library/logging.handlers.rst:1111 +#: ../Doc/library/logging.handlers.rst:1118 msgid "" "Along with the :class:`QueueHandler` class, :class:`QueueListener` can be " "used to let handlers do their work on a separate thread from the one which " @@ -2077,7 +2087,7 @@ msgstr "" "cualquier operación potencialmente lenta (como enviar un correo electrónico " "a través de :class:`SMTPHandler`) se realiza en un subproceso separado." -#: ../Doc/library/logging.handlers.rst:1120 +#: ../Doc/library/logging.handlers.rst:1127 msgid "" "Returns a new instance of the :class:`QueueListener` class. The instance is " "initialized with the queue to send messages to and a list of handlers which " @@ -2096,7 +2106,7 @@ msgstr "" "disponible), lo que significa que puede usar instancias :class:`~queue." "SimpleQueue` para *queue*." -#: ../Doc/library/logging.handlers.rst:1131 +#: ../Doc/library/logging.handlers.rst:1138 msgid "" "If ``respect_handler_level`` is ``True``, a handler's level is respected " "(compared with the level for the message) when deciding whether to pass " @@ -2108,15 +2118,15 @@ msgstr "" "gestor; de otra manera, el comportamiento es como en versiones anteriores de " "Python - de pasar cada mensaje a cada gestor." -#: ../Doc/library/logging.handlers.rst:1136 +#: ../Doc/library/logging.handlers.rst:1143 msgid "The ``respect_handler_level`` argument was added." msgstr "Se agregó el argumento ``respect_handler_levels``." -#: ../Doc/library/logging.handlers.rst:1141 +#: ../Doc/library/logging.handlers.rst:1148 msgid "Dequeues a record and return it, optionally blocking." msgstr "Extrae de la cola un registro y lo retorna, con opción a bloquearlo." -#: ../Doc/library/logging.handlers.rst:1143 +#: ../Doc/library/logging.handlers.rst:1150 msgid "" "The base implementation uses ``get()``. You may want to override this method " "if you want to use timeouts or work with custom queue implementations." @@ -2125,11 +2135,11 @@ msgstr "" "método si quieres usar tiempos de espera o trabajar con colas implementadas " "a medida." -#: ../Doc/library/logging.handlers.rst:1149 +#: ../Doc/library/logging.handlers.rst:1156 msgid "Prepare a record for handling." msgstr "Prepara un registro para ser gestionado." -#: ../Doc/library/logging.handlers.rst:1151 +#: ../Doc/library/logging.handlers.rst:1158 msgid "" "This implementation just returns the passed-in record. You may want to " "override this method if you need to do any custom marshalling or " @@ -2139,11 +2149,11 @@ msgstr "" "sobrescribir (*override*) este método para hacer una serialización a medida " "o una manipulación del registro antes de pasarlo a los gestores." -#: ../Doc/library/logging.handlers.rst:1157 +#: ../Doc/library/logging.handlers.rst:1164 msgid "Handle a record." msgstr "Manejar un registro." -#: ../Doc/library/logging.handlers.rst:1159 +#: ../Doc/library/logging.handlers.rst:1166 msgid "" "This just loops through the handlers offering them the record to handle. The " "actual object passed to the handlers is that which is returned from :meth:" @@ -2153,11 +2163,11 @@ msgstr "" "registro para ser gestionado. El objeto actual pasado a los gestores es " "aquel que es retornado por el método :meth:`prepare`." -#: ../Doc/library/logging.handlers.rst:1165 +#: ../Doc/library/logging.handlers.rst:1172 msgid "Starts the listener." msgstr "Da comienzo al oyente (*listener*)." -#: ../Doc/library/logging.handlers.rst:1167 +#: ../Doc/library/logging.handlers.rst:1174 msgid "" "This starts up a background thread to monitor the queue for LogRecords to " "process." @@ -2165,11 +2175,11 @@ msgstr "" "Esto da comienzo a un hilo en segundo plano para supervisar la cola de " "registros log a procesar." -#: ../Doc/library/logging.handlers.rst:1172 +#: ../Doc/library/logging.handlers.rst:1179 msgid "Stops the listener." msgstr "Detiene el oyente (*listener*)." -#: ../Doc/library/logging.handlers.rst:1174 +#: ../Doc/library/logging.handlers.rst:1181 msgid "" "This asks the thread to terminate, and then waits for it to do so. Note that " "if you don't call this before your application exits, there may be some " @@ -2179,7 +2189,7 @@ msgstr "" "si no llamas a esto antes de que tu aplicación salga, puede haber algunos " "registros que aun están en la cola, que no serán procesados." -#: ../Doc/library/logging.handlers.rst:1180 +#: ../Doc/library/logging.handlers.rst:1187 msgid "" "Writes a sentinel to the queue to tell the listener to quit. This " "implementation uses ``put_nowait()``. You may want to override this method " @@ -2190,18 +2200,25 @@ msgstr "" "sobrescribir (*override*) este método si quieres usar tiempos de espera o " "trabajar con implementaciones de cola a tu medida." -#: ../Doc/library/logging.handlers.rst:1191 +#: ../Doc/library/logging.handlers.rst:1198 msgid "Module :mod:`logging`" msgstr "Módulo :mod:`logging`" -#: ../Doc/library/logging.handlers.rst:1191 +#: ../Doc/library/logging.handlers.rst:1198 msgid "API reference for the logging module." msgstr "Referencia API para el módulo de *logging*." -#: ../Doc/library/logging.handlers.rst:1193 +#: ../Doc/library/logging.handlers.rst:1200 msgid "Module :mod:`logging.config`" msgstr "Módulo :mod:`logging.config`" -#: ../Doc/library/logging.handlers.rst:1194 +#: ../Doc/library/logging.handlers.rst:1201 msgid "Configuration API for the logging module." msgstr "Configuración API para el módulo de *logging*." + +#~ msgid "" +#~ "You can override this to implement custom flushing behavior. This version " +#~ "just zaps the buffer to empty." +#~ msgstr "" +#~ "Puedes sobrescribir (*override*) esto para implementar un comportamiento " +#~ "'a medida' de la descarga. Esta versión solo vacía el búfer." diff --git a/library/logging.po b/library/logging.po index 56ee1b953c..0cf5d3d4ae 100644 --- a/library/logging.po +++ b/library/logging.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-01-16 09:30-0300\n" "Last-Translator: Francisco Mora \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/logging.rst:2 msgid ":mod:`logging` --- Logging facility for Python" @@ -288,7 +287,7 @@ msgstr "" "mensajes. De lo contrario, el nivel de la raíz se utilizará como el nivel " "efectivo." -#: ../Doc/library/logging.rst:134 ../Doc/library/logging.rst:447 +#: ../Doc/library/logging.rst:134 ../Doc/library/logging.rst:477 msgid "See :ref:`levels` for a list of levels." msgstr "Ver :ref:`levels` para obtener una lista de niveles." @@ -348,6 +347,16 @@ msgstr "" "principal se nombra usando e.j. ``__name__`` en lugar de una cadena literal." #: ../Doc/library/logging.rst:175 +msgid "" +"Returns a set of loggers which are immediate children of this logger. So for " +"example ``logging.getLogger().getChildren()`` might return a set containing " +"loggers named ``foo`` and ``bar``, but a logger named ``foo.bar`` wouldn't " +"be included in the set. Likewise, ``logging.getLogger('foo').getChildren()`` " +"might return a set including a logger named ``foo.bar``, but it wouldn't " +"include one named ``foo.bar.baz``." +msgstr "" + +#: ../Doc/library/logging.rst:187 #, fuzzy, python-format msgid "" "Logs a message with level :const:`DEBUG` on this logger. The *msg* is the " @@ -364,7 +373,7 @@ msgstr "" "formato, junto con un solo argumento de diccionario). No se realiza ninguna " "operación de %formateo en *msg* cuando no se suministran *args*." -#: ../Doc/library/logging.rst:181 +#: ../Doc/library/logging.rst:193 msgid "" "There are four keyword arguments in *kwargs* which are inspected: " "*exc_info*, *stack_info*, *stacklevel* and *extra*." @@ -372,7 +381,7 @@ msgstr "" "Hay cuatro argumentos de palabras clave *kwargs* que se inspeccionan: " "*exc_info*, *stack_info*, *stacklevel* y *extra*." -#: ../Doc/library/logging.rst:184 +#: ../Doc/library/logging.rst:196 msgid "" "If *exc_info* does not evaluate as false, it causes exception information to " "be added to the logging message. If an exception tuple (in the format " @@ -386,7 +395,7 @@ msgstr "" "instancia de excepción, se utiliza; de lo contrario, se llama a :func:`sys." "exc_info` para obtener la información de excepción." -#: ../Doc/library/logging.rst:189 ../Doc/library/logging.rst:1066 +#: ../Doc/library/logging.rst:201 ../Doc/library/logging.rst:1116 msgid "" "The second optional keyword argument is *stack_info*, which defaults to " "``False``. If true, stack information is added to the logging message, " @@ -406,7 +415,7 @@ msgstr "" "que la segunda es la información sobre los cuadros de la pila que se han " "desenrollado, siguiendo una excepción, mientras busca gestores de excepción." -#: ../Doc/library/logging.rst:198 ../Doc/library/logging.rst:1075 +#: ../Doc/library/logging.rst:210 ../Doc/library/logging.rst:1125 msgid "" "You can specify *stack_info* independently of *exc_info*, e.g. to just show " "how you got to a certain point in your code, even when no exceptions were " @@ -417,7 +426,7 @@ msgstr "" "no se lanzaron excepciones. Los marcos de la pila se imprimen siguiendo una " "línea de encabezado que dice:" -#: ../Doc/library/logging.rst:206 ../Doc/library/logging.rst:1083 +#: ../Doc/library/logging.rst:218 ../Doc/library/logging.rst:1133 msgid "" "This mimics the ``Traceback (most recent call last):`` which is used when " "displaying exception frames." @@ -425,7 +434,7 @@ msgstr "" "Esto imita el ``Traceback (most recent call last):`` que se usa cuando se " "muestran marcos de excepción." -#: ../Doc/library/logging.rst:209 +#: ../Doc/library/logging.rst:221 msgid "" "The third optional keyword argument is *stacklevel*, which defaults to " "``1``. If greater than 1, the corresponding number of stack frames are " @@ -445,7 +454,7 @@ msgstr "" "información para la función/método auxiliar, sino más bien su llamador. El " "nombre de este parámetro refleja el equivalente en el modulo :mod:`warnings`." -#: ../Doc/library/logging.rst:217 +#: ../Doc/library/logging.rst:229 msgid "" "The fourth keyword argument is *extra* which can be used to pass a " "dictionary which is used to populate the __dict__ of the :class:`LogRecord` " @@ -459,11 +468,11 @@ msgstr "" "usuario. Estos atributos personalizados se pueden usar a su gusto. Podrían " "incorporarse en mensajes registrados. Por ejemplo::" -#: ../Doc/library/logging.rst:229 +#: ../Doc/library/logging.rst:241 msgid "would print something like" msgstr "imprimiría algo como" -#: ../Doc/library/logging.rst:235 +#: ../Doc/library/logging.rst:247 #, fuzzy msgid "" "The keys in the dictionary passed in *extra* should not clash with the keys " @@ -475,7 +484,7 @@ msgstr "" "class:`Formatter` para obtener más información sobre qué claves utiliza el " "sistema de registro)." -#: ../Doc/library/logging.rst:239 +#: ../Doc/library/logging.rst:251 msgid "" "If you choose to use these attributes in logged messages, you need to " "exercise some care. In the above example, for instance, the :class:" @@ -492,7 +501,7 @@ msgstr "" "porque se producirá una excepción de formato de cadena. En este caso, " "siempre debe pasar el diccionario *extra* con estas teclas." -#: ../Doc/library/logging.rst:246 ../Doc/library/logging.rst:1114 +#: ../Doc/library/logging.rst:258 ../Doc/library/logging.rst:1164 msgid "" "While this might be annoying, this feature is intended for use in " "specialized circumstances, such as multi-threaded servers where the same " @@ -510,7 +519,7 @@ msgstr "" "tales circunstancias, es probable que se especialice :class:`Formatter`\\ s " "con particular :class:`Handler`\\ s." -#: ../Doc/library/logging.rst:253 +#: ../Doc/library/logging.rst:265 msgid "" "If no handler is attached to this logger (or any of its ancestors, taking " "into account the relevant :attr:`Logger.propagate` attributes), the message " @@ -521,19 +530,19 @@ msgstr "" "propagate`), el mensaje se enviará al controlador establecido en :attr:" "`lastResort`." -#: ../Doc/library/logging.rst:257 ../Doc/library/logging.rst:1125 +#: ../Doc/library/logging.rst:269 ../Doc/library/logging.rst:1175 msgid "The *stack_info* parameter was added." msgstr "Se agregó el parámetro *stack_info*." -#: ../Doc/library/logging.rst:260 +#: ../Doc/library/logging.rst:272 msgid "The *exc_info* parameter can now accept exception instances." msgstr "El parámetro *exc_info* ahora puede aceptar instancias de excepción." -#: ../Doc/library/logging.rst:263 +#: ../Doc/library/logging.rst:275 msgid "The *stacklevel* parameter was added." msgstr "Se agregó el parámetro *stacklevel*." -#: ../Doc/library/logging.rst:269 +#: ../Doc/library/logging.rst:281 msgid "" "Logs a message with level :const:`INFO` on this logger. The arguments are " "interpreted as for :meth:`debug`." @@ -541,7 +550,7 @@ msgstr "" "Registra un mensaje con el nivel :const:`INFO` en este logger. Los " "argumentos se interpretan como :meth:`debug`." -#: ../Doc/library/logging.rst:275 +#: ../Doc/library/logging.rst:287 msgid "" "Logs a message with level :const:`WARNING` on this logger. The arguments are " "interpreted as for :meth:`debug`." @@ -549,7 +558,7 @@ msgstr "" "Registra un mensaje con el nivel :const:`WARNING` en este logger. Los " "argumentos se interpretan como :meth:`debug`." -#: ../Doc/library/logging.rst:278 +#: ../Doc/library/logging.rst:290 msgid "" "There is an obsolete method ``warn`` which is functionally identical to " "``warning``. As ``warn`` is deprecated, please do not use it - use " @@ -559,7 +568,7 @@ msgstr "" "``warning``. Como ``warn`` está en desuso, no lo use, use ``warning`` en su " "lugar." -#: ../Doc/library/logging.rst:284 +#: ../Doc/library/logging.rst:296 msgid "" "Logs a message with level :const:`ERROR` on this logger. The arguments are " "interpreted as for :meth:`debug`." @@ -567,7 +576,7 @@ msgstr "" "Registra un mensaje con nivel :const:`ERROR` en este logger. Los argumentos " "se interpretan como :meth:`debug`." -#: ../Doc/library/logging.rst:290 +#: ../Doc/library/logging.rst:302 msgid "" "Logs a message with level :const:`CRITICAL` on this logger. The arguments " "are interpreted as for :meth:`debug`." @@ -575,7 +584,7 @@ msgstr "" "Registra un mensaje con el nivel :const:`CRITICAL` en este logger. Los " "argumentos se interpretan como :meth:`debug`." -#: ../Doc/library/logging.rst:296 +#: ../Doc/library/logging.rst:308 msgid "" "Logs a message with integer level *level* on this logger. The other " "arguments are interpreted as for :meth:`debug`." @@ -583,7 +592,7 @@ msgstr "" "Registra un mensaje con nivel entero *level* en este logger. Los otros " "argumentos se interpretan como :meth:`debug`." -#: ../Doc/library/logging.rst:302 +#: ../Doc/library/logging.rst:314 msgid "" "Logs a message with level :const:`ERROR` on this logger. The arguments are " "interpreted as for :meth:`debug`. Exception info is added to the logging " @@ -594,15 +603,15 @@ msgstr "" "mensaje de registro. Este método solo debe llamarse desde un gestor de " "excepciones." -#: ../Doc/library/logging.rst:309 +#: ../Doc/library/logging.rst:321 msgid "Adds the specified filter *filter* to this logger." msgstr "Agrega el filtro *filter* especificado a este logger." -#: ../Doc/library/logging.rst:314 +#: ../Doc/library/logging.rst:326 msgid "Removes the specified filter *filter* from this logger." msgstr "Elimina el filtro *filter* especificado de este logger." -#: ../Doc/library/logging.rst:319 +#: ../Doc/library/logging.rst:331 msgid "" "Apply this logger's filters to the record and return ``True`` if the record " "is to be processed. The filters are consulted in turn, until one of them " @@ -616,15 +625,15 @@ msgstr "" "registro será procesado (pasado a los gestores). Si se retorna un valor " "falso, no se produce más procesamiento del registro." -#: ../Doc/library/logging.rst:328 +#: ../Doc/library/logging.rst:340 msgid "Adds the specified handler *hdlr* to this logger." msgstr "Agrega el gestor especificado *hdlr* a este logger." -#: ../Doc/library/logging.rst:333 +#: ../Doc/library/logging.rst:345 msgid "Removes the specified handler *hdlr* from this logger." msgstr "Elimina el gestor especificado *hdlr* de este logger." -#: ../Doc/library/logging.rst:338 +#: ../Doc/library/logging.rst:350 msgid "" "Finds the caller's source filename and line number. Returns the filename, " "line number, function name and stack information as a 4-element tuple. The " @@ -635,7 +644,7 @@ msgstr "" "la información de la pila como una tupla de 4 elementos. La información de " "la pila se retorna como ``None`` a menos que *stack_info* sea ``True``." -#: ../Doc/library/logging.rst:342 +#: ../Doc/library/logging.rst:354 msgid "" "The *stacklevel* parameter is passed from code calling the :meth:`debug` and " "other APIs. If greater than 1, the excess is used to skip stack frames " @@ -651,7 +660,7 @@ msgstr "" "wrapper*, de modo que la información en el registro de eventos no se refiera " "al *helper/wrapper*, sino al código que lo llama." -#: ../Doc/library/logging.rst:352 +#: ../Doc/library/logging.rst:364 msgid "" "Handles a record by passing it to all handlers associated with this logger " "and its ancestors (until a false value of *propagate* is found). This method " @@ -665,7 +674,7 @@ msgstr "" "de un socket, así como para aquellos creados localmente. El filtrado a nivel " "de logger se aplica usando :meth:`~Logger.filter`." -#: ../Doc/library/logging.rst:360 +#: ../Doc/library/logging.rst:372 msgid "" "This is a factory method which can be overridden in subclasses to create " "specialized :class:`LogRecord` instances." @@ -673,7 +682,7 @@ msgstr "" "Este es un método *factory* que se puede sobreescribir en subclases para " "crear instancias especializadas :class:`LogRecord`." -#: ../Doc/library/logging.rst:365 +#: ../Doc/library/logging.rst:377 msgid "" "Checks to see if this logger has any handlers configured. This is done by " "looking for handlers in this logger and its parents in the logger hierarchy. " @@ -689,17 +698,17 @@ msgstr "" "con el atributo *propagate* establecido en falso: ese será el último logger " "que verificará la existencia de gestores." -#: ../Doc/library/logging.rst:374 +#: ../Doc/library/logging.rst:386 msgid "Loggers can now be pickled and unpickled." msgstr "" "Los logger ahora se pueden serializar y deserializar (*pickled and " "unpickled*)." -#: ../Doc/library/logging.rst:380 +#: ../Doc/library/logging.rst:392 msgid "Logging Levels" msgstr "Niveles de logging" -#: ../Doc/library/logging.rst:382 +#: ../Doc/library/logging.rst:394 msgid "" "The numeric values of logging levels are given in the following table. These " "are primarily of interest if you want to define your own levels, and need " @@ -713,71 +722,88 @@ msgstr "" "niveles predefinidos. Si define un nivel con el mismo valor numérico, " "sobrescribe el valor predefinido; se pierde el nombre predefinido." -#: ../Doc/library/logging.rst:389 +#: ../Doc/library/logging.rst:401 msgid "Level" msgstr "Nivel" -#: ../Doc/library/logging.rst:389 +#: ../Doc/library/logging.rst:401 msgid "Numeric value" msgstr "Valor numérico" -#: ../Doc/library/logging.rst:391 -msgid "``CRITICAL``" -msgstr "``CRITICAL``" +#: ../Doc/library/logging.rst:401 +msgid "What it means / When to use it" +msgstr "" -#: ../Doc/library/logging.rst:391 -msgid "50" -msgstr "50" +#: ../Doc/library/logging.rst:403 +msgid "0" +msgstr "0" -#: ../Doc/library/logging.rst:393 -msgid "``ERROR``" -msgstr "``ERROR``" +#: ../Doc/library/logging.rst:403 +msgid "" +"When set on a logger, indicates that ancestor loggers are to be consulted to " +"determine the effective level. If that still resolves to :const:`!NOTSET`, " +"then all events are logged. When set on a handler, all events are handled." +msgstr "" -#: ../Doc/library/logging.rst:393 -msgid "40" -msgstr "40" +#: ../Doc/library/logging.rst:411 +msgid "10" +msgstr "10" + +#: ../Doc/library/logging.rst:411 +msgid "" +"Detailed information, typically only of interest to a developer trying to " +"diagnose a problem." +msgstr "" -#: ../Doc/library/logging.rst:395 -msgid "``WARNING``" -msgstr "``WARNING``" +#: ../Doc/library/logging.rst:415 +msgid "20" +msgstr "20" -#: ../Doc/library/logging.rst:395 +#: ../Doc/library/logging.rst:415 +msgid "Confirmation that things are working as expected." +msgstr "" + +#: ../Doc/library/logging.rst:418 msgid "30" msgstr "30" -#: ../Doc/library/logging.rst:397 -msgid "``INFO``" -msgstr "``INFO``" - -#: ../Doc/library/logging.rst:397 -msgid "20" -msgstr "20" +#: ../Doc/library/logging.rst:418 +msgid "" +"An indication that something unexpected happened, or that a problem might " +"occur in the near future (e.g. 'disk space low'). The software is still " +"working as expected." +msgstr "" -#: ../Doc/library/logging.rst:399 -msgid "``DEBUG``" -msgstr "``DEBUG``" +#: ../Doc/library/logging.rst:425 +msgid "40" +msgstr "40" -#: ../Doc/library/logging.rst:399 -msgid "10" -msgstr "10" +#: ../Doc/library/logging.rst:425 +msgid "" +"Due to a more serious problem, the software has not been able to perform " +"some function." +msgstr "" -#: ../Doc/library/logging.rst:401 -msgid "``NOTSET``" -msgstr "``NOTSET``" +#: ../Doc/library/logging.rst:429 +msgid "50" +msgstr "50" -#: ../Doc/library/logging.rst:401 -msgid "0" -msgstr "0" +#: ../Doc/library/logging.rst:429 +msgid "" +"A serious error, indicating that the program itself may be unable to " +"continue running." +msgstr "" -#: ../Doc/library/logging.rst:408 +#: ../Doc/library/logging.rst:438 msgid "Handler Objects" msgstr "Gestor de objetos" -#: ../Doc/library/logging.rst:410 +#: ../Doc/library/logging.rst:440 +#, fuzzy msgid "" "Handlers have the following attributes and methods. Note that :class:" "`Handler` is never instantiated directly; this class acts as a base for more " -"useful subclasses. However, the :meth:`__init__` method in subclasses needs " +"useful subclasses. However, the :meth:`!__init__` method in subclasses needs " "to call :meth:`Handler.__init__`." msgstr "" "Los gestores tienen los siguientes atributos y métodos. Tenga en cuenta que :" @@ -785,7 +811,7 @@ msgstr "" "para subclases más útiles. Sin embargo, el método :meth:`__init__` en las " "subclases debe llamar a :meth:`Handler.__init__`." -#: ../Doc/library/logging.rst:419 +#: ../Doc/library/logging.rst:449 msgid "" "Initializes the :class:`Handler` instance by setting its level, setting the " "list of filters to the empty list and creating a lock (using :meth:" @@ -795,7 +821,7 @@ msgstr "" "configurando la lista de filtros en la lista vacía y creando un bloqueo " "(usando :meth:`createLock`) para serializar el acceso a un mecanismo de E/S." -#: ../Doc/library/logging.rst:426 +#: ../Doc/library/logging.rst:456 msgid "" "Initializes a thread lock which can be used to serialize access to " "underlying I/O functionality which may not be threadsafe." @@ -804,15 +830,15 @@ msgstr "" "el acceso a la funcionalidad de E/S subyacente que puede no ser segura para " "subprocesos." -#: ../Doc/library/logging.rst:432 +#: ../Doc/library/logging.rst:462 msgid "Acquires the thread lock created with :meth:`createLock`." msgstr "Adquiere el bloqueo de hilo creado con :meth:`createLock`." -#: ../Doc/library/logging.rst:437 +#: ../Doc/library/logging.rst:467 msgid "Releases the thread lock acquired with :meth:`acquire`." msgstr "Libera el bloqueo de hilo adquirido con :meth:`acquire`." -#: ../Doc/library/logging.rst:442 +#: ../Doc/library/logging.rst:472 msgid "" "Sets the threshold for this handler to *level*. Logging messages which are " "less severe than *level* will be ignored. When a handler is created, the " @@ -823,7 +849,7 @@ msgstr "" "controlador, el nivel se establece en :const:`NOTSET` (lo que hace que se " "procesen todos los mensajes)." -#: ../Doc/library/logging.rst:449 +#: ../Doc/library/logging.rst:479 msgid "" "The *level* parameter now accepts a string representation of the level such " "as 'INFO' as an alternative to the integer constants such as :const:`INFO`." @@ -831,19 +857,19 @@ msgstr "" "El parámetro *level* ahora acepta una representación de cadena del nivel " "como 'INFO' como alternativa a las constantes de enteros como :const:`INFO`." -#: ../Doc/library/logging.rst:457 +#: ../Doc/library/logging.rst:487 msgid "Sets the :class:`Formatter` for this handler to *fmt*." msgstr "Establece :class:`Formatter` para este controlador en *fmt*." -#: ../Doc/library/logging.rst:462 +#: ../Doc/library/logging.rst:492 msgid "Adds the specified filter *filter* to this handler." msgstr "Agrega el filtro *filter* especificado a este gestor." -#: ../Doc/library/logging.rst:467 +#: ../Doc/library/logging.rst:497 msgid "Removes the specified filter *filter* from this handler." msgstr "Elimina el filtro especificado *filter* de este gestor." -#: ../Doc/library/logging.rst:472 +#: ../Doc/library/logging.rst:502 msgid "" "Apply this handler's filters to the record and return ``True`` if the record " "is to be processed. The filters are consulted in turn, until one of them " @@ -857,7 +883,7 @@ msgstr "" "emitirá el registro. Si uno retorna un valor falso, el controlador no " "emitirá el registro." -#: ../Doc/library/logging.rst:481 +#: ../Doc/library/logging.rst:511 msgid "" "Ensure all logging output has been flushed. This version does nothing and is " "intended to be implemented by subclasses." @@ -865,7 +891,7 @@ msgstr "" "Asegúrese de que toda la salida de logging se haya vaciado. Esta versión no " "hace nada y está destinada a ser implementada por subclases." -#: ../Doc/library/logging.rst:487 +#: ../Doc/library/logging.rst:517 msgid "" "Tidy up any resources used by the handler. This version does no output but " "removes the handler from an internal list of handlers which is closed when :" @@ -877,7 +903,7 @@ msgstr "" "cierra cuando se llama a :func:`shutdown`. Las subclases deben garantizar " "que esto se llame desde métodos :meth:`close` sobreescritos." -#: ../Doc/library/logging.rst:495 +#: ../Doc/library/logging.rst:525 msgid "" "Conditionally emits the specified logging record, depending on filters which " "may have been added to the handler. Wraps the actual emission of the record " @@ -887,7 +913,7 @@ msgstr "" "hayan agregado al controlador. Envuelve la actual emisión del registro con " "*acquisition/release* del hilo de bloqueo E/S." -#: ../Doc/library/logging.rst:502 +#: ../Doc/library/logging.rst:532 msgid "" "This method should be called from handlers when an exception is encountered " "during an :meth:`emit` call. If the module-level attribute " @@ -910,7 +936,7 @@ msgstr "" "excepción. (El valor predeterminado de ``raiseExceptions`` es ``True``, ya " "que es más útil durante el desarrollo)." -#: ../Doc/library/logging.rst:515 +#: ../Doc/library/logging.rst:545 msgid "" "Do formatting for a record - if a formatter is set, use it. Otherwise, use " "the default formatter for the module." @@ -918,7 +944,7 @@ msgstr "" "Formato para un registro - si se configura un formateador, úselo. De lo " "contrario, use el formateador predeterminado para el módulo." -#: ../Doc/library/logging.rst:521 +#: ../Doc/library/logging.rst:551 msgid "" "Do whatever it takes to actually log the specified logging record. This " "version is intended to be implemented by subclasses and so raises a :exc:" @@ -928,7 +954,7 @@ msgstr "" "Esta versión está destinada a ser implementada por subclases y, por lo " "tanto, lanza un :exc:`NotImplementedError`." -#: ../Doc/library/logging.rst:525 +#: ../Doc/library/logging.rst:555 msgid "" "This method is called after a handler-level lock is acquired, which is " "released after this method returns. When you override this method, note that " @@ -942,7 +968,7 @@ msgstr "" "cualquier cosa que invoque a otras partes de la API de registro que puedan " "realizar bloqueos, ya que esto podría provocar un bloqueo. Específicamente:" -#: ../Doc/library/logging.rst:531 +#: ../Doc/library/logging.rst:561 msgid "" "Logging configuration APIs acquire the module-level lock, and then " "individual handler-level locks as those handlers are configured." @@ -951,7 +977,7 @@ msgstr "" "y, a continuación, los bloqueos a nivel de gestor individual a medida que se " "configuran dichos gestores." -#: ../Doc/library/logging.rst:534 +#: ../Doc/library/logging.rst:564 #, fuzzy msgid "" "Many logging APIs lock the module-level lock. If such an API is called from " @@ -969,88 +995,53 @@ msgstr "" "*después* del bloqueo a nivel de gestor (porque en este método, el bloqueo a " "nivel de gestor ya se ha adquirido)." -#: ../Doc/library/logging.rst:541 +#: ../Doc/library/logging.rst:571 msgid "" "For a list of handlers included as standard, see :mod:`logging.handlers`." msgstr "" "Para obtener una lista de gestores incluidos como estándar, consulte :mod:" "`logging.handlers`." -#: ../Doc/library/logging.rst:546 +#: ../Doc/library/logging.rst:576 msgid "Formatter Objects" msgstr "Objetos formateadores" -#: ../Doc/library/logging.rst:550 -#, python-format -msgid "" -":class:`Formatter` objects have the following attributes and methods. They " -"are responsible for converting a :class:`LogRecord` to (usually) a string " -"which can be interpreted by either a human or an external system. The base :" -"class:`Formatter` allows a formatting string to be specified. If none is " -"supplied, the default value of ``'%(message)s'`` is used, which just " -"includes the message in the logging call. To have additional items of " -"information in the formatted output (such as a timestamp), keep reading." -msgstr "" -":class:`Formatter` tiene los siguientes atributos y métodos. Son " -"responsables de convertir una :class:`LogRecord` a (generalmente) una cadena " -"que puede ser interpretada por un sistema humano o externo. La base :class:" -"`Formatter` permite especificar una cadena de formato. Si no se proporciona " -"ninguno, se utiliza el valor predeterminado de ``'%(message)s'``, que solo " -"incluye el mensaje en la llamada de registro. Para tener elementos de " -"información adicionales en la salida formateada (como una marca de tiempo), " -"siga leyendo." - -#: ../Doc/library/logging.rst:558 -#, python-format +#: ../Doc/library/logging.rst:582 msgid "" -"A Formatter can be initialized with a format string which makes use of " -"knowledge of the :class:`LogRecord` attributes - such as the default value " -"mentioned above making use of the fact that the user's message and arguments " -"are pre-formatted into a :class:`LogRecord`'s *message* attribute. This " -"format string contains standard Python %-style mapping keys. See section :" -"ref:`old-string-formatting` for more information on string formatting." +"Responsible for converting a :class:`LogRecord` to an output string to be " +"interpreted by a human or external system." msgstr "" -"Un formateador se puede inicializar con una cadena de formato que utiliza el " -"conocimiento de los atributos :class:`LogRecord`, como el valor " -"predeterminado mencionado anteriormente, haciendo uso del hecho de que el " -"mensaje y los argumentos del usuario están formateados previamente en :class:" -"`LogRecord`'s con *message* como atributo. Esta cadena de formato contiene " -"claves de mapeo de Python %-style estándar. Ver la sección :ref:`old-string-" -"formatting` para obtener más información sobre el formato de cadenas." -#: ../Doc/library/logging.rst:565 +#: ../Doc/library/logging.rst +msgid "Parameters" +msgstr "Parámetros" + +#: ../Doc/library/logging.rst:585 +#, python-format msgid "" -"The useful mapping keys in a :class:`LogRecord` are given in the section on :" -"ref:`logrecord-attributes`." +"A format string in the given *style* for the logged output as a whole. The " +"possible mapping keys are drawn from the :class:`LogRecord` object's :ref:" +"`logrecord-attributes`. If not specified, ``'%(message)s'`` is used, which " +"is just the logged message." msgstr "" -"Las claves de mapeo útiles en a :class:`LogRecord` se dan en la sección " -"sobre :ref:`logrecord-attributes`." -#: ../Doc/library/logging.rst:571 -#, python-format +#: ../Doc/library/logging.rst:593 msgid "" -"Returns a new instance of the :class:`Formatter` class. The instance is " -"initialized with a format string for the message as a whole, as well as a " -"format string for the date/time portion of a message. If no *fmt* is " -"specified, ``'%(message)s'`` is used. If no *datefmt* is specified, a " -"format is used which is described in the :meth:`formatTime` documentation." +"A format string in the given *style* for the date/time portion of the logged " +"output. If not specified, the default described in :meth:`formatTime` is " +"used." msgstr "" -"Retorna una nueva instancia de :class:`Formatter`. La instancia se " -"inicializa con una cadena de formato para el mensaje en su conjunto, así " -"como una cadena de formato para la porción fecha/hora de un mensaje. Si no " -"se especifica *fmt*, se utiliza ``'%(message)s'``. Si no se especifica " -"*datefmt*, se utiliza un formato que se describe en la documentación :meth:" -"`formatTime`." -#: ../Doc/library/logging.rst:577 -#, python-format +#: ../Doc/library/logging.rst:598 +#, fuzzy, python-format msgid "" -"The *style* parameter can be one of '%', '{' or '$' and determines how the " -"format string will be merged with its data: using one of %-formatting, :meth:" -"`str.format` or :class:`string.Template`. This only applies to the format " -"string *fmt* (e.g. ``'%(message)s'`` or ``{message}``), not to the actual " -"log messages passed to ``Logger.debug`` etc; see :ref:`formatting-styles` " -"for more information on using {- and $-formatting for log messages." +"Can be one of ``'%'``, ``'{'`` or ``'$'`` and determines how the format " +"string will be merged with its data: using one of :ref:`old-string-" +"formatting` (``%``), :meth:`str.format` (``{``) or :class:`string.Template` " +"(``$``). This only applies to *fmt* and *datefmt* (e.g. ``'%(message)s'`` " +"versus ``'{message}'``), not to the actual log messages passed to the " +"logging methods. However, there are :ref:`other ways ` to " +"use ``{``- and ``$``-formatting for log messages." msgstr "" "El parámetro *style* puede ser uno de '%', '{'' o '$' y determina cómo se " "fusionará la cadena de formato con sus datos: usando uno de %-formatting, :" @@ -1060,37 +1051,43 @@ msgstr "" "styles` para más información sobre usar {- y formateado-$ para mensajes de " "log." -#: ../Doc/library/logging.rst:585 -#, python-format +#: ../Doc/library/logging.rst:608 +#, fuzzy, python-format msgid "" -"The *defaults* parameter can be a dictionary with default values to use in " -"custom fields. For example: ``logging.Formatter('%(ip)s %(message)s', " -"defaults={\"ip\": None})``" +"If ``True`` (the default), incorrect or mismatched *fmt* and *style* will " +"raise a :exc:`ValueError`; for example, ``logging.Formatter('%(asctime)s - " +"%(message)s', style='{')``." +msgstr "" +"Se agregó el parámetro *validate*. Si el estilo es incorrecto o no " +"coincidente, *fmt* lanzará un ``ValueError``. Por ejemplo: ``logging." +"Formatter('%(asctime)s - %(message)s', style='{')``." + +#: ../Doc/library/logging.rst:613 +#, fuzzy, python-format +msgid "" +"A dictionary with default values to use in custom fields. For example, " +"``logging.Formatter('%(ip)s %(message)s', defaults={\"ip\": None})``" msgstr "" "El parámetro *defaults* puede ser un diccionario con valores por defecto " "para usar en campos personalizados. Por ejemplo: ``logging.Formatter('%(ip)s " "%(message)s', defaults={\"ip\": None})``" -#: ../Doc/library/logging.rst:589 -msgid "The *style* parameter was added." +#: ../Doc/library/logging.rst:618 +#, fuzzy +msgid "The *style* parameter." msgstr "Se agregó el parámetro *style*." -#: ../Doc/library/logging.rst:592 -#, python-format -msgid "" -"The *validate* parameter was added. Incorrect or mismatched style and fmt " -"will raise a ``ValueError``. For example: ``logging.Formatter('%(asctime)s - " -"%(message)s', style='{')``." -msgstr "" -"Se agregó el parámetro *validate*. Si el estilo es incorrecto o no " -"coincidente, *fmt* lanzará un ``ValueError``. Por ejemplo: ``logging." -"Formatter('%(asctime)s - %(message)s', style='{')``." +#: ../Doc/library/logging.rst:621 +#, fuzzy +msgid "The *validate* parameter." +msgstr "Se agregó el parámetro *style*." -#: ../Doc/library/logging.rst:597 -msgid "The *defaults* parameter was added." +#: ../Doc/library/logging.rst:624 +#, fuzzy +msgid "The *defaults* parameter." msgstr "Se agregó el parámetro *defaults*." -#: ../Doc/library/logging.rst:602 +#: ../Doc/library/logging.rst:630 #, fuzzy msgid "" "The record's attribute dictionary is used as the operand to a string " @@ -1126,7 +1123,7 @@ msgstr "" "siguiente formateador que maneje el evento no use el valor almacenado en " "caché sino que lo recalcule de nuevo." -#: ../Doc/library/logging.rst:618 +#: ../Doc/library/logging.rst:646 msgid "" "If stack information is available, it's appended after the exception " "information, using :meth:`formatStack` to transform it if necessary." @@ -1135,7 +1132,7 @@ msgstr "" "información de la excepción, usando :meth:`formatStack` para transformarla " "si es necesario." -#: ../Doc/library/logging.rst:624 +#: ../Doc/library/logging.rst:652 #, python-format msgid "" "This method should be called from :meth:`format` by a formatter which wants " @@ -1158,7 +1155,7 @@ msgstr "" "strftime` . Un ejemplo de tiempo en este formato es ``2003-01-23 " "00:29:50,411``. Se retorna la cadena resultante." -#: ../Doc/library/logging.rst:634 +#: ../Doc/library/logging.rst:662 msgid "" "This function uses a user-configurable function to convert the creation time " "to a tuple. By default, :func:`time.localtime` is used; to change this for a " @@ -1175,7 +1172,7 @@ msgstr "" "formateadores, por ejemplo, si desea que todos los tiempos de registro se " "muestren en GMT, agregue el atributo ``converter`` en la clase ``Formatter``." -#: ../Doc/library/logging.rst:642 +#: ../Doc/library/logging.rst:670 #, python-format msgid "" "Previously, the default format was hard-coded as in this example: " @@ -1202,11 +1199,11 @@ msgstr "" "``default_time_format`` (para una cadena de formato strptime) y " "``default_msec_format`` (para agregar el valor de milisegundos)." -#: ../Doc/library/logging.rst:655 +#: ../Doc/library/logging.rst:683 msgid "The ``default_msec_format`` can be ``None``." msgstr "El formato ``default_msec_format`` puede ser ``None``." -#: ../Doc/library/logging.rst:660 +#: ../Doc/library/logging.rst:688 msgid "" "Formats the specified exception information (a standard exception tuple as " "returned by :func:`sys.exc_info`) as a string. This default implementation " @@ -1218,7 +1215,7 @@ msgstr "" "Esta implementación predeterminada solo usa :func:`traceback." "print_exception`. La cadena resultantes retornada." -#: ../Doc/library/logging.rst:667 +#: ../Doc/library/logging.rst:695 msgid "" "Formats the specified stack information (a string as returned by :func:" "`traceback.print_stack`, but with the last newline removed) as a string. " @@ -1229,7 +1226,7 @@ msgstr "" "una cadena. Esta implementación predeterminada solo retorna el valor de " "entrada." -#: ../Doc/library/logging.rst:673 +#: ../Doc/library/logging.rst:701 #, fuzzy msgid "" "A base formatter class suitable for subclassing when you want to format a " @@ -1244,7 +1241,7 @@ msgstr "" "un único registro). Si no se especifica, el formateador por defecto (que " "sólo muestra el mensaje del evento) se utiliza como formateador de línea." -#: ../Doc/library/logging.rst:681 +#: ../Doc/library/logging.rst:709 msgid "" "Return a header for a list of *records*. The base implementation just " "returns the empty string. You will need to override this method if you want " @@ -1256,7 +1253,7 @@ msgstr "" "comportamiento específico, por ejemplo, mostrar el recuento de registros, un " "título o una línea separadora." -#: ../Doc/library/logging.rst:688 +#: ../Doc/library/logging.rst:716 msgid "" "Return a footer for a list of *records*. The base implementation just " "returns the empty string. You will need to override this method if you want " @@ -1267,7 +1264,7 @@ msgstr "" "comportamiento específico, por ejemplo, para mostrar el recuento de " "registros o una línea separadora." -#: ../Doc/library/logging.rst:695 +#: ../Doc/library/logging.rst:723 msgid "" "Return formatted text for a list of *records*. The base implementation just " "returns the empty string if there are no records; otherwise, it returns the " @@ -1279,11 +1276,11 @@ msgstr "" "retorna la concatenación de la cabecera, cada registro formateado con el " "formateador de líneas y el pie de página." -#: ../Doc/library/logging.rst:703 +#: ../Doc/library/logging.rst:731 msgid "Filter Objects" msgstr "Filtro de Objetos" -#: ../Doc/library/logging.rst:705 +#: ../Doc/library/logging.rst:733 msgid "" "``Filters`` can be used by ``Handlers`` and ``Loggers`` for more " "sophisticated filtering than is provided by levels. The base filter class " @@ -1300,7 +1297,7 @@ msgstr "" "'A.B.D' etc., pero no 'A.BB', 'B.A.B', etc. Si se inicializa con una cadena " "vacía, se pasan todos los eventos." -#: ../Doc/library/logging.rst:715 +#: ../Doc/library/logging.rst:743 msgid "" "Returns an instance of the :class:`Filter` class. If *name* is specified, it " "names a logger which, together with its children, will have its events " @@ -1311,16 +1308,15 @@ msgstr "" "nombra un logger que, junto con sus hijos, tendrá sus eventos permitidos a " "través del filtro. Si *name* es una cadena vacía, permite todos los eventos." -#: ../Doc/library/logging.rst:722 +#: ../Doc/library/logging.rst:750 msgid "" -"Is the specified record to be logged? Returns zero for no, nonzero for yes. " -"If deemed appropriate, the record may be modified in-place by this method." +"Is the specified record to be logged? Returns false for no, true for yes. " +"Filters can either modify log records in-place or return a completely " +"different record instance which will replace the original log record in any " +"future processing of the event." msgstr "" -"¿Se apuntará el registro especificado? Retorna cero para no, distinto de " -"cero para sí. Si se considera apropiado, el registro puede modificarse in " -"situ mediante este método." -#: ../Doc/library/logging.rst:726 +#: ../Doc/library/logging.rst:755 msgid "" "Note that filters attached to handlers are consulted before an event is " "emitted by the handler, whereas filters attached to loggers are consulted " @@ -1337,7 +1333,7 @@ msgstr "" "no serán filtrados por la configuración del filtro del logger, a menos que " "el filtro también se haya aplicado a esos loggers descendientes." -#: ../Doc/library/logging.rst:733 +#: ../Doc/library/logging.rst:762 msgid "" "You don't actually need to subclass ``Filter``: you can pass any instance " "which has a ``filter`` method with the same semantics." @@ -1345,7 +1341,7 @@ msgstr "" "En realidad, no se necesita la subclase ``Filtro``: se puede pasar cualquier " "instancia que tenga un método de ``filter`` con la misma semántica." -#: ../Doc/library/logging.rst:736 +#: ../Doc/library/logging.rst:765 msgid "" "You don't need to create specialized ``Filter`` classes, or use other " "classes with a ``filter`` method: you can use a function (or other callable) " @@ -1363,7 +1359,15 @@ msgstr "" "invocable y se llama con el registro como único parámetro. El valor " "retornado debe ajustarse al retornado por :meth:`~Filter.filter`." -#: ../Doc/library/logging.rst:746 +#: ../Doc/library/logging.rst:775 +msgid "" +"You can now return a :class:`LogRecord` instance from filters to replace the " +"log record rather than modifying it in place. This allows filters attached " +"to a :class:`Handler` to modify the log record before it is emitted, without " +"having side effects on other handlers." +msgstr "" + +#: ../Doc/library/logging.rst:781 msgid "" "Although filters are used primarily to filter records based on more " "sophisticated criteria than levels, they get to see every record which is " @@ -1384,11 +1388,11 @@ msgstr "" "inyección de información contextual en los registros (ver :ref:`filters-" "contextual`)." -#: ../Doc/library/logging.rst:759 +#: ../Doc/library/logging.rst:794 msgid "LogRecord Objects" msgstr "Objetos LogRecord" -#: ../Doc/library/logging.rst:761 +#: ../Doc/library/logging.rst:796 msgid "" ":class:`LogRecord` instances are created automatically by the :class:" "`Logger` every time something is logged, and can be created manually via :" @@ -1400,11 +1404,11 @@ msgstr "" "través de :func:`makeLogRecord` (por ejemplo, a partir de un evento " "serializado (*pickled*) recibido en la transmisión)." -#: ../Doc/library/logging.rst:769 +#: ../Doc/library/logging.rst:804 msgid "Contains all the information pertinent to the event being logged." msgstr "Contiene toda la información pertinente al evento que se registra." -#: ../Doc/library/logging.rst:771 +#: ../Doc/library/logging.rst:806 #, fuzzy msgid "" "The primary information is passed in *msg* and *args*, which are combined " @@ -1414,11 +1418,7 @@ msgstr "" "combinan usando ``msg % args`` para crear el campo :attr:`message` del " "registro." -#: ../Doc/library/logging.rst -msgid "Parameters" -msgstr "Parámetros" - -#: ../Doc/library/logging.rst:775 +#: ../Doc/library/logging.rst:810 #, fuzzy msgid "" "The name of the logger used to log the event represented by this :class:`!" @@ -1431,7 +1431,7 @@ msgstr "" "aunque puede ser emitido por un gestor adjunto a un logger diferente " "(ancestro)." -#: ../Doc/library/logging.rst:783 +#: ../Doc/library/logging.rst:818 msgid "" "The :ref:`numeric level ` of the logging event (such as ``10`` for " "``DEBUG``, ``20`` for ``INFO``, etc). Note that this is converted to *two* " @@ -1443,7 +1443,7 @@ msgstr "" "en *dos* atributos del LogRecord: :attr:`!levelno` para el valor numérico y :" "attr:`!levelname` para el nombre del nivel correspondiente." -#: ../Doc/library/logging.rst:790 +#: ../Doc/library/logging.rst:825 #, fuzzy msgid "" "The full string path of the source file where the logging call was made." @@ -1451,22 +1451,23 @@ msgstr "" "El nombre de ruta completo del archivo de origen donde se realizó la llamada " "logging." -#: ../Doc/library/logging.rst:794 +#: ../Doc/library/logging.rst:829 msgid "The line number in the source file where the logging call was made." msgstr "" "El número de línea en el archivo de origen donde se realizó la llamada " "logging." -#: ../Doc/library/logging.rst:798 +#: ../Doc/library/logging.rst:833 #, fuzzy, python-format msgid "" "The event description message, which can be a %-format string with " -"placeholders for variable data." +"placeholders for variable data, or an arbitrary object (see :ref:`arbitrary-" +"object-messages`)." msgstr "" "El mensaje de descripción del evento, posiblemente una cadena de %- formato " "con marcadores de posición para datos variables." -#: ../Doc/library/logging.rst:802 +#: ../Doc/library/logging.rst:838 msgid "" "Variable data to merge into the *msg* argument to obtain the event " "description." @@ -1474,7 +1475,7 @@ msgstr "" "Datos variables para fusionar en el argumento *msg* para obtener la " "descripción del evento." -#: ../Doc/library/logging.rst:806 +#: ../Doc/library/logging.rst:842 #, fuzzy msgid "" "An exception tuple with the current exception information, as returned by :" @@ -1483,14 +1484,14 @@ msgstr "" "Una tupla de excepción con la información de excepción actual, o ``None`` si " "no hay información de excepción disponible." -#: ../Doc/library/logging.rst:811 +#: ../Doc/library/logging.rst:847 msgid "" "The name of the function or method from which the logging call was invoked." msgstr "" "El nombre de la función o método desde el que se invocó la llamada de " "logging." -#: ../Doc/library/logging.rst:815 +#: ../Doc/library/logging.rst:851 msgid "" "A text string representing stack information from the base of the stack in " "the current thread, up to the logging call." @@ -1498,7 +1499,7 @@ msgstr "" "Una cadena de texto que representa la información de la pila desde la base " "de la pila en el hilo actual, hasta la llamada de logging." -#: ../Doc/library/logging.rst:822 +#: ../Doc/library/logging.rst:858 msgid "" "Returns the message for this :class:`LogRecord` instance after merging any " "user-supplied arguments with the message. If the user-supplied message " @@ -1514,7 +1515,7 @@ msgstr "" "usuario como mensajes, cuyo método ``__str__`` puede retornar la cadena de " "formato real que se utilizará." -#: ../Doc/library/logging.rst:829 +#: ../Doc/library/logging.rst:865 msgid "" "The creation of a :class:`LogRecord` has been made more configurable by " "providing a factory which is used to create the record. The factory can be " @@ -1526,7 +1527,7 @@ msgstr "" "se puede configurar usando :func:`getLogRecordFactory` y :func:" "`setLogRecordFactory` (ver esto para la firma de la fábrica)." -#: ../Doc/library/logging.rst:835 +#: ../Doc/library/logging.rst:871 msgid "" "This functionality can be used to inject your own values into a :class:" "`LogRecord` at creation time. You can use the following pattern::" @@ -1535,7 +1536,7 @@ msgstr "" "class:`LogRecord` en el momento de la creación. Puede utilizar el siguiente " "patrón::" -#: ../Doc/library/logging.rst:847 +#: ../Doc/library/logging.rst:883 msgid "" "With this pattern, multiple factories could be chained, and as long as they " "don't overwrite each other's attributes or unintentionally overwrite the " @@ -1545,11 +1546,11 @@ msgstr "" "sobrescriban los atributos de las demás o se sobrescriban involuntariamente " "los atributos estándar enumerados anteriormente, no debería haber sorpresas." -#: ../Doc/library/logging.rst:856 +#: ../Doc/library/logging.rst:892 msgid "LogRecord attributes" msgstr "Atributos LogRecord" -#: ../Doc/library/logging.rst:858 +#: ../Doc/library/logging.rst:894 #, fuzzy, python-format msgid "" "The LogRecord has a number of attributes, most of which are derived from the " @@ -1569,7 +1570,7 @@ msgstr "" "sus significados y el correspondiente marcador de posición en una cadena de " "formato de %-estilo." -#: ../Doc/library/logging.rst:866 +#: ../Doc/library/logging.rst:902 msgid "" "If you are using {}-formatting (:func:`str.format`), you can use ``{attrname}" "`` as the placeholder in the format string. If you are using $-formatting (:" @@ -1582,11 +1583,12 @@ msgstr "" "``. En ambos casos, por supuesto, reemplace ``attrname`` con el nombre de " "atributo real que desea utilizar." -#: ../Doc/library/logging.rst:872 +#: ../Doc/library/logging.rst:908 +#, fuzzy msgid "" "In the case of {}-formatting, you can specify formatting flags by placing " "them after the attribute name, separated from it with a colon. For example: " -"a placeholder of ``{msecs:03d}`` would format a millisecond value of ``4`` " +"a placeholder of ``{msecs:03.0f}`` would format a millisecond value of ``4`` " "as ``004``. Refer to the :meth:`str.format` documentation for full details " "on the options available to you." msgstr "" @@ -1596,28 +1598,28 @@ msgstr "" "de ``4`` como ``004``. Consulte la documentación :meth:`str.format` para " "obtener detalles completos sobre las opciones disponibles." -#: ../Doc/library/logging.rst:879 +#: ../Doc/library/logging.rst:915 msgid "Attribute name" msgstr "Nombre del atributo" -#: ../Doc/library/logging.rst:879 ../Doc/library/logging.rst:1270 +#: ../Doc/library/logging.rst:915 ../Doc/library/logging.rst:1333 msgid "Format" msgstr "Formato" -#: ../Doc/library/logging.rst:879 ../Doc/library/logging.rst:1270 +#: ../Doc/library/logging.rst:915 ../Doc/library/logging.rst:1333 msgid "Description" msgstr "Descripción" -#: ../Doc/library/logging.rst ../Doc/library/logging.rst:881 +#: ../Doc/library/logging.rst ../Doc/library/logging.rst:917 msgid "args" msgstr "args" -#: ../Doc/library/logging.rst:881 ../Doc/library/logging.rst:895 -#: ../Doc/library/logging.rst:923 ../Doc/library/logging.rst:941 +#: ../Doc/library/logging.rst:917 ../Doc/library/logging.rst:931 +#: ../Doc/library/logging.rst:959 ../Doc/library/logging.rst:977 msgid "You shouldn't need to format this yourself." msgstr "No debería necesitar formatear esto usted mismo." -#: ../Doc/library/logging.rst:881 +#: ../Doc/library/logging.rst:917 msgid "" "The tuple of arguments merged into ``msg`` to produce ``message``, or a dict " "whose values are used for the merge (when there is only one argument, and it " @@ -1627,16 +1629,16 @@ msgstr "" "o un dict cuyos valores se utilizan para la fusión (cuando solo hay un " "argumento y es un diccionario)." -#: ../Doc/library/logging.rst:886 +#: ../Doc/library/logging.rst:922 msgid "asctime" msgstr "asctime" -#: ../Doc/library/logging.rst:886 +#: ../Doc/library/logging.rst:922 #, python-format msgid "``%(asctime)s``" msgstr "``%(asctime)s``" -#: ../Doc/library/logging.rst:886 +#: ../Doc/library/logging.rst:922 msgid "" "Human-readable time when the :class:`LogRecord` was created. By default " "this is of the form '2003-07-08 16:49:45,896' (the numbers after the comma " @@ -1646,16 +1648,16 @@ msgstr "" "`LogRecord`. De forma predeterminada, tiene el formato '2003-07-08 16: 49: " "45,896' (los números después de la coma son milisegundos)." -#: ../Doc/library/logging.rst:892 +#: ../Doc/library/logging.rst:928 msgid "created" msgstr "created" -#: ../Doc/library/logging.rst:892 +#: ../Doc/library/logging.rst:928 #, python-format msgid "``%(created)f``" msgstr "``%(created)f``" -#: ../Doc/library/logging.rst:892 +#: ../Doc/library/logging.rst:928 msgid "" "Time when the :class:`LogRecord` was created (as returned by :func:`time." "time`)." @@ -1663,11 +1665,11 @@ msgstr "" "Tiempo en que se creó :class:`LogRecord` (según lo retornado por :func:`time." "time`)." -#: ../Doc/library/logging.rst ../Doc/library/logging.rst:895 +#: ../Doc/library/logging.rst ../Doc/library/logging.rst:931 msgid "exc_info" msgstr "exc_info" -#: ../Doc/library/logging.rst:895 +#: ../Doc/library/logging.rst:931 msgid "" "Exception tuple (à la ``sys.exc_info``) or, if no exception has occurred, " "``None``." @@ -1675,42 +1677,42 @@ msgstr "" "Tupla de excepción (al modo ``sys.exc_info``) o, si no se ha producido " "ninguna excepción, ``None``." -#: ../Doc/library/logging.rst:898 +#: ../Doc/library/logging.rst:934 msgid "filename" msgstr "filename" -#: ../Doc/library/logging.rst:898 +#: ../Doc/library/logging.rst:934 #, python-format msgid "``%(filename)s``" msgstr "``%(filename)s``" -#: ../Doc/library/logging.rst:898 +#: ../Doc/library/logging.rst:934 msgid "Filename portion of ``pathname``." msgstr "Parte del nombre de archivo de ``pathname``." -#: ../Doc/library/logging.rst:900 +#: ../Doc/library/logging.rst:936 msgid "funcName" msgstr "funcName" -#: ../Doc/library/logging.rst:900 +#: ../Doc/library/logging.rst:936 #, python-format msgid "``%(funcName)s``" msgstr "``%(funcName)s``" -#: ../Doc/library/logging.rst:900 +#: ../Doc/library/logging.rst:936 msgid "Name of function containing the logging call." msgstr "Nombre de la función que contiene la llamada de logging." -#: ../Doc/library/logging.rst:902 +#: ../Doc/library/logging.rst:938 msgid "levelname" msgstr "levelname" -#: ../Doc/library/logging.rst:902 +#: ../Doc/library/logging.rst:938 #, python-format msgid "``%(levelname)s``" msgstr "``%(levelname)s``" -#: ../Doc/library/logging.rst:902 +#: ../Doc/library/logging.rst:938 msgid "" "Text logging level for the message (``'DEBUG'``, ``'INFO'``, ``'WARNING'``, " "``'ERROR'``, ``'CRITICAL'``)." @@ -1718,16 +1720,16 @@ msgstr "" "Texto de nivel de logging para el mensaje (``'DEBUG'``, ``'INFO'``, " "``'WARNING'``, ``'ERROR'``, ``'CRITICAL'``)." -#: ../Doc/library/logging.rst:906 +#: ../Doc/library/logging.rst:942 msgid "levelno" msgstr "levelno" -#: ../Doc/library/logging.rst:906 +#: ../Doc/library/logging.rst:942 #, python-format msgid "``%(levelno)s``" msgstr "``%(levelno)s``" -#: ../Doc/library/logging.rst:906 +#: ../Doc/library/logging.rst:942 msgid "" "Numeric logging level for the message (:const:`DEBUG`, :const:`INFO`, :const:" "`WARNING`, :const:`ERROR`, :const:`CRITICAL`)." @@ -1735,31 +1737,31 @@ msgstr "" "Número de nivel de logging para el mensaje (:const:`DEBUG`, :const:`INFO`, :" "const:`WARNING`, :const:`ERROR`, :const:`CRITICAL`)." -#: ../Doc/library/logging.rst:911 +#: ../Doc/library/logging.rst:947 msgid "lineno" msgstr "lineno" -#: ../Doc/library/logging.rst:911 +#: ../Doc/library/logging.rst:947 #, python-format msgid "``%(lineno)d``" msgstr "``%(lineno)d``" -#: ../Doc/library/logging.rst:911 +#: ../Doc/library/logging.rst:947 msgid "Source line number where the logging call was issued (if available)." msgstr "" "Número de línea original donde se emitió la llamada de logging (si está " "disponible)." -#: ../Doc/library/logging.rst:914 +#: ../Doc/library/logging.rst:950 msgid "message" msgstr "message" -#: ../Doc/library/logging.rst:914 +#: ../Doc/library/logging.rst:950 #, python-format msgid "``%(message)s``" msgstr "``%(message)s``" -#: ../Doc/library/logging.rst:914 +#: ../Doc/library/logging.rst:950 msgid "" "The logged message, computed as ``msg % args``. This is set when :meth:" "`Formatter.format` is invoked." @@ -1767,38 +1769,38 @@ msgstr "" "El mensaje registrado, computado como ``msg % args``. Esto se establece " "cuando se invoca :meth:`Formatter.format`." -#: ../Doc/library/logging.rst:918 +#: ../Doc/library/logging.rst:954 msgid "module" msgstr "module" -#: ../Doc/library/logging.rst:918 +#: ../Doc/library/logging.rst:954 #, python-format msgid "``%(module)s``" msgstr "``%(module)s``" -#: ../Doc/library/logging.rst:918 +#: ../Doc/library/logging.rst:954 msgid "Module (name portion of ``filename``)." msgstr "Módulo (parte del nombre de ``filename``)." -#: ../Doc/library/logging.rst:920 +#: ../Doc/library/logging.rst:956 msgid "msecs" msgstr "msecs" -#: ../Doc/library/logging.rst:920 +#: ../Doc/library/logging.rst:956 #, python-format msgid "``%(msecs)d``" msgstr "``%(msecs)d``" -#: ../Doc/library/logging.rst:920 +#: ../Doc/library/logging.rst:956 msgid "" "Millisecond portion of the time when the :class:`LogRecord` was created." msgstr "Porción de milisegundos del tiempo en que se creó :class:`LogRecord`." -#: ../Doc/library/logging.rst ../Doc/library/logging.rst:923 +#: ../Doc/library/logging.rst ../Doc/library/logging.rst:959 msgid "msg" msgstr "msg" -#: ../Doc/library/logging.rst:923 +#: ../Doc/library/logging.rst:959 msgid "" "The format string passed in the original logging call. Merged with ``args`` " "to produce ``message``, or an arbitrary object (see :ref:`arbitrary-object-" @@ -1808,29 +1810,29 @@ msgstr "" "fusionó con ``args`` para producir un ``message``, o un objeto arbitrario " "(ver :ref:`arbitrary-object-messages`)." -#: ../Doc/library/logging.rst ../Doc/library/logging.rst:928 +#: ../Doc/library/logging.rst ../Doc/library/logging.rst:964 msgid "name" msgstr "name" -#: ../Doc/library/logging.rst:928 +#: ../Doc/library/logging.rst:964 #, python-format msgid "``%(name)s``" msgstr "``%(name)s``" -#: ../Doc/library/logging.rst:928 +#: ../Doc/library/logging.rst:964 msgid "Name of the logger used to log the call." msgstr "Nombre del logger usado para registrar la llamada." -#: ../Doc/library/logging.rst:930 +#: ../Doc/library/logging.rst:966 msgid "pathname" msgstr "pathname" -#: ../Doc/library/logging.rst:930 +#: ../Doc/library/logging.rst:966 #, python-format msgid "``%(pathname)s``" msgstr "``%(pathname)s``" -#: ../Doc/library/logging.rst:930 +#: ../Doc/library/logging.rst:966 msgid "" "Full pathname of the source file where the logging call was issued (if " "available)." @@ -1838,42 +1840,42 @@ msgstr "" "Nombre de ruta completo del archivo de origen donde se emitió la llamada de " "logging (si está disponible)." -#: ../Doc/library/logging.rst:933 +#: ../Doc/library/logging.rst:969 msgid "process" msgstr "process" -#: ../Doc/library/logging.rst:933 +#: ../Doc/library/logging.rst:969 #, python-format msgid "``%(process)d``" msgstr "``%(process)d``" -#: ../Doc/library/logging.rst:933 +#: ../Doc/library/logging.rst:969 msgid "Process ID (if available)." msgstr "ID de proceso (si está disponible)." -#: ../Doc/library/logging.rst:935 +#: ../Doc/library/logging.rst:971 msgid "processName" msgstr "processName" -#: ../Doc/library/logging.rst:935 +#: ../Doc/library/logging.rst:971 #, python-format msgid "``%(processName)s``" msgstr "``%(processName)s``" -#: ../Doc/library/logging.rst:935 +#: ../Doc/library/logging.rst:971 msgid "Process name (if available)." msgstr "Nombre del proceso (si está disponible)." -#: ../Doc/library/logging.rst:937 +#: ../Doc/library/logging.rst:973 msgid "relativeCreated" msgstr "relativeCreated" -#: ../Doc/library/logging.rst:937 +#: ../Doc/library/logging.rst:973 #, python-format msgid "``%(relativeCreated)d``" msgstr "``%(relativeCreated)d``" -#: ../Doc/library/logging.rst:937 +#: ../Doc/library/logging.rst:973 msgid "" "Time in milliseconds when the LogRecord was created, relative to the time " "the logging module was loaded." @@ -1881,11 +1883,11 @@ msgstr "" "Tiempo en milisegundos cuando se creó el LogRecord, en relación con el " "tiempo en que se cargó el módulo logging." -#: ../Doc/library/logging.rst:941 +#: ../Doc/library/logging.rst:977 msgid "stack_info" msgstr "stack_info" -#: ../Doc/library/logging.rst:941 +#: ../Doc/library/logging.rst:977 msgid "" "Stack frame information (where available) from the bottom of the stack in " "the current thread, up to and including the stack frame of the logging call " @@ -1895,41 +1897,61 @@ msgstr "" "de la pila en el hilo actual hasta la llamada de registro que dio como " "resultado la generación de este registro." -#: ../Doc/library/logging.rst:947 +#: ../Doc/library/logging.rst:983 msgid "thread" msgstr "thread" -#: ../Doc/library/logging.rst:947 +#: ../Doc/library/logging.rst:983 #, python-format msgid "``%(thread)d``" msgstr "``%(thread)d``" -#: ../Doc/library/logging.rst:947 +#: ../Doc/library/logging.rst:983 msgid "Thread ID (if available)." msgstr "ID de hilo (si está disponible)." -#: ../Doc/library/logging.rst:949 +#: ../Doc/library/logging.rst:985 msgid "threadName" msgstr "threadName" -#: ../Doc/library/logging.rst:949 +#: ../Doc/library/logging.rst:985 #, python-format msgid "``%(threadName)s``" msgstr "``%(threadName)s``" -#: ../Doc/library/logging.rst:949 +#: ../Doc/library/logging.rst:985 msgid "Thread name (if available)." msgstr "Nombre del hilo (si está disponible)." -#: ../Doc/library/logging.rst:952 +#: ../Doc/library/logging.rst:987 +#, fuzzy +msgid "taskName" +msgstr "threadName" + +#: ../Doc/library/logging.rst:987 +#, fuzzy, python-format +msgid "``%(taskName)s``" +msgstr "``%(name)s``" + +#: ../Doc/library/logging.rst:987 +#, fuzzy +msgid ":class:`asyncio.Task` name (if available)." +msgstr "Nombre del proceso (si está disponible)." + +#: ../Doc/library/logging.rst:990 msgid "*processName* was added." msgstr "*processName* fue agregado." -#: ../Doc/library/logging.rst:959 +#: ../Doc/library/logging.rst:993 +#, fuzzy +msgid "*taskName* was added." +msgstr "*processName* fue agregado." + +#: ../Doc/library/logging.rst:999 msgid "LoggerAdapter Objects" msgstr "Objetos LoggerAdapter" -#: ../Doc/library/logging.rst:961 +#: ../Doc/library/logging.rst:1001 msgid "" ":class:`LoggerAdapter` instances are used to conveniently pass contextual " "information into logging calls. For a usage example, see the section on :ref:" @@ -1940,7 +1962,7 @@ msgstr "" "un ejemplo de uso, consulte la sección sobre :ref:`agregar información " "contextual a su salida de logging `." -#: ../Doc/library/logging.rst:967 +#: ../Doc/library/logging.rst:1007 msgid "" "Returns an instance of :class:`LoggerAdapter` initialized with an " "underlying :class:`Logger` instance and a dict-like object." @@ -1948,7 +1970,7 @@ msgstr "" "Retorna una instancia de :class:`LoggerAdapter` inicializada con una " "instancia subyacente :class:`Logger` y un objeto del tipo *dict*." -#: ../Doc/library/logging.rst:972 +#: ../Doc/library/logging.rst:1012 msgid "" "Modifies the message and/or keyword arguments passed to a logging call in " "order to insert contextual information. This implementation takes the object " @@ -1962,7 +1984,15 @@ msgstr "" "usando la clave 'extra'. El valor de retorno es una tupla (*msg*, *kwargs*) " "que tiene las versiones (posiblemente modificadas) de los argumentos pasados." -#: ../Doc/library/logging.rst:978 +#: ../Doc/library/logging.rst:1020 +msgid "Delegates to the underlying :attr:`!manager`` on *logger*." +msgstr "" + +#: ../Doc/library/logging.rst:1024 +msgid "Delegates to the underlying :meth:`!_log`` method on *logger*." +msgstr "" + +#: ../Doc/library/logging.rst:1026 msgid "" "In addition to the above, :class:`LoggerAdapter` supports the following " "methods of :class:`Logger`: :meth:`~Logger.debug`, :meth:`~Logger.info`, :" @@ -1982,7 +2012,7 @@ msgstr "" "en :class:`Logger`, por lo que puede usar los dos tipos de instancias " "indistintamente." -#: ../Doc/library/logging.rst:987 +#: ../Doc/library/logging.rst:1037 msgid "" "The :meth:`~Logger.isEnabledFor`, :meth:`~Logger.getEffectiveLevel`, :meth:" "`~Logger.setLevel` and :meth:`~Logger.hasHandlers` methods were added to :" @@ -1993,19 +2023,20 @@ msgstr "" "se agregaron a :class:`LoggerAdapter` . Estos métodos se delegan al logger " "subyacente." -#: ../Doc/library/logging.rst:992 +#: ../Doc/library/logging.rst:1043 +#, fuzzy msgid "" -"Attribute :attr:`manager` and method :meth:`_log` were added, which delegate " -"to the underlying logger and allow adapters to be nested." +"Attribute :attr:`!manager` and method :meth:`!_log` were added, which " +"delegate to the underlying logger and allow adapters to be nested." msgstr "" "Se añadieron el atributo Attribute :attr:`manager` y el método :meth:`_log`, " "que delegan al logger subyacente y permiten que los adaptadores se aniden." -#: ../Doc/library/logging.rst:998 +#: ../Doc/library/logging.rst:1048 msgid "Thread Safety" msgstr "Seguridad del hilo" -#: ../Doc/library/logging.rst:1000 +#: ../Doc/library/logging.rst:1050 msgid "" "The logging module is intended to be thread-safe without any special work " "needing to be done by its clients. It achieves this though using threading " @@ -2019,7 +2050,7 @@ msgstr "" "datos compartidos del módulo, y cada gestor también crea un bloqueo para " "serializar el acceso a su E/S subyacente." -#: ../Doc/library/logging.rst:1005 +#: ../Doc/library/logging.rst:1055 msgid "" "If you are implementing asynchronous signal handlers using the :mod:`signal` " "module, you may not be able to use logging from within such handlers. This " @@ -2032,11 +2063,11 @@ msgstr "" "no siempre son reentrantes y, por lo tanto, no se pueden invocar desde " "dichos gestores de señales." -#: ../Doc/library/logging.rst:1012 +#: ../Doc/library/logging.rst:1062 msgid "Module-Level Functions" msgstr "Funciones a nivel de módulo" -#: ../Doc/library/logging.rst:1014 +#: ../Doc/library/logging.rst:1064 msgid "" "In addition to the classes described above, there are a number of module-" "level functions." @@ -2044,7 +2075,7 @@ msgstr "" "Además de las clases descritas anteriormente, hay una serie de funciones a " "nivel de módulo." -#: ../Doc/library/logging.rst:1020 +#: ../Doc/library/logging.rst:1070 msgid "" "Return a logger with the specified name or, if name is ``None``, return a " "logger which is the root logger of the hierarchy. If specified, the name is " @@ -2058,7 +2089,7 @@ msgstr "" "como *'a'*, *'a.b'* or *'a.b.c.d'*. La elección de estos nombres depende " "totalmente del desarrollador que utiliza logging." -#: ../Doc/library/logging.rst:1025 +#: ../Doc/library/logging.rst:1075 msgid "" "All calls to this function with a given name return the same logger " "instance. This means that logger instances never need to be passed between " @@ -2068,7 +2099,7 @@ msgstr "" "instancia de logger. Esto significa que las instancias del logger nunca " "necesitan pasar entre diferentes partes de una aplicación." -#: ../Doc/library/logging.rst:1032 +#: ../Doc/library/logging.rst:1082 msgid "" "Return either the standard :class:`Logger` class, or the last class passed " "to :func:`setLoggerClass`. This function may be called from within a new " @@ -2082,11 +2113,11 @@ msgstr "" "personalizada :class:`Logger` no deshaga las *customizaciones* ya aplicadas " "por otro código. Por ejemplo::" -#: ../Doc/library/logging.rst:1043 +#: ../Doc/library/logging.rst:1093 msgid "Return a callable which is used to create a :class:`LogRecord`." msgstr "Retorna un invocable que se usa para crear una :class:`LogRecord`." -#: ../Doc/library/logging.rst:1045 +#: ../Doc/library/logging.rst:1095 msgid "" "This function has been provided, along with :func:`setLogRecordFactory`, to " "allow developers more control over how the :class:`LogRecord` representing a " @@ -2096,7 +2127,7 @@ msgstr "" "para permitir a los desarrolladores un mayor control sobre cómo :class:" "`LogRecord` representa un evento logging construido." -#: ../Doc/library/logging.rst:1050 +#: ../Doc/library/logging.rst:1100 msgid "" "See :func:`setLogRecordFactory` for more information about the how the " "factory is called." @@ -2104,7 +2135,7 @@ msgstr "" "Consulte :func:`setLogRecordFactory` para obtener más información sobre cómo " "se llama a la fábrica." -#: ../Doc/library/logging.rst:1055 +#: ../Doc/library/logging.rst:1105 msgid "" "Logs a message with level :const:`DEBUG` on the root logger. The *msg* is " "the message format string, and the *args* are the arguments which are merged " @@ -2118,7 +2149,7 @@ msgstr "" "cuenta que esto significa que puede utilizar palabras clave en la cadena de " "formato, junto con un único argumento de diccionario)." -#: ../Doc/library/logging.rst:1060 +#: ../Doc/library/logging.rst:1110 msgid "" "There are three keyword arguments in *kwargs* which are inspected: " "*exc_info* which, if it does not evaluate as false, causes exception " @@ -2134,7 +2165,7 @@ msgstr "" "de excepción, se utiliza; de lo contrario, se llama a :func:`sys.exc_info` " "para obtener la información de la excepción." -#: ../Doc/library/logging.rst:1086 +#: ../Doc/library/logging.rst:1136 msgid "" "The third optional keyword argument is *extra* which can be used to pass a " "dictionary which is used to populate the __dict__ of the LogRecord created " @@ -2148,11 +2179,11 @@ msgstr "" "Estos atributos personalizados se pueden utilizar como desee. Por ejemplo, " "podrían incorporarse a mensajes registrados. Por ejemplo::" -#: ../Doc/library/logging.rst:1097 +#: ../Doc/library/logging.rst:1147 msgid "would print something like:" msgstr "imprimiría algo como:" -#: ../Doc/library/logging.rst:1103 +#: ../Doc/library/logging.rst:1153 msgid "" "The keys in the dictionary passed in *extra* should not clash with the keys " "used by the logging system. (See the :class:`Formatter` documentation for " @@ -2163,7 +2194,7 @@ msgstr "" "class:`Formatter` para obtener más información sobre qué claves utiliza el " "sistema de registro)." -#: ../Doc/library/logging.rst:1107 +#: ../Doc/library/logging.rst:1157 msgid "" "If you choose to use these attributes in logged messages, you need to " "exercise some care. In the above example, for instance, the :class:" @@ -2181,7 +2212,7 @@ msgstr "" "Entonces, en este caso, siempre debe pasar el diccionario *extra* con estas " "claves." -#: ../Doc/library/logging.rst:1121 +#: ../Doc/library/logging.rst:1171 msgid "" "This function (as well as :func:`info`, :func:`warning`, :func:`error` and :" "func:`critical`) will call :func:`basicConfig` if the root logger doesn't " @@ -2191,7 +2222,7 @@ msgstr "" "func:`critical`) llamará a :func:`basicConfig` si el registrador raíz no " "tiene ningún controlador conectado." -#: ../Doc/library/logging.rst:1130 +#: ../Doc/library/logging.rst:1180 msgid "" "Logs a message with level :const:`INFO` on the root logger. The arguments " "are interpreted as for :func:`debug`." @@ -2199,7 +2230,7 @@ msgstr "" "Registra un mensaje con nivel :const:`INFO` en el logger raíz. Los " "argumentos se interpretan como :func:`debug`." -#: ../Doc/library/logging.rst:1136 +#: ../Doc/library/logging.rst:1186 msgid "" "Logs a message with level :const:`WARNING` on the root logger. The arguments " "are interpreted as for :func:`debug`." @@ -2207,7 +2238,7 @@ msgstr "" "Registra un mensaje con nivel :const:`WARNING` en el logger raíz. Los " "argumentos se interpretan como :func:`debug`." -#: ../Doc/library/logging.rst:1139 +#: ../Doc/library/logging.rst:1189 msgid "" "There is an obsolete function ``warn`` which is functionally identical to " "``warning``. As ``warn`` is deprecated, please do not use it - use " @@ -2217,7 +2248,7 @@ msgstr "" "``warning``. Como ``warn`` está deprecado, por favor no lo use, use " "``warning`` en su lugar." -#: ../Doc/library/logging.rst:1146 +#: ../Doc/library/logging.rst:1196 msgid "" "Logs a message with level :const:`ERROR` on the root logger. The arguments " "are interpreted as for :func:`debug`." @@ -2225,7 +2256,7 @@ msgstr "" "Registra un mensaje con nivel :const:`ERROR` en el logger raíz. Los " "argumentos se interpretan como :func:`debug`." -#: ../Doc/library/logging.rst:1152 +#: ../Doc/library/logging.rst:1202 msgid "" "Logs a message with level :const:`CRITICAL` on the root logger. The " "arguments are interpreted as for :func:`debug`." @@ -2233,7 +2264,7 @@ msgstr "" "Registra un mensaje con nivel :const:`CRITICAL` en el logger raíz. Los " "argumentos se interpretan como :func:`debug`." -#: ../Doc/library/logging.rst:1158 +#: ../Doc/library/logging.rst:1208 msgid "" "Logs a message with level :const:`ERROR` on the root logger. The arguments " "are interpreted as for :func:`debug`. Exception info is added to the logging " @@ -2244,7 +2275,7 @@ msgstr "" "excepción al mensaje de logging. Esta función solo se debe llamar desde un " "gestor de excepciones." -#: ../Doc/library/logging.rst:1164 +#: ../Doc/library/logging.rst:1214 msgid "" "Logs a message with level *level* on the root logger. The other arguments " "are interpreted as for :func:`debug`." @@ -2252,7 +2283,7 @@ msgstr "" "Registra un mensaje con nivel *level* en el logger raíz. Los argumentos " "restantes se interpretan como :func:`debug`." -#: ../Doc/library/logging.rst:1169 +#: ../Doc/library/logging.rst:1219 msgid "" "Provides an overriding level *level* for all loggers which takes precedence " "over the logger's own level. When the need arises to temporarily throttle " @@ -2276,7 +2307,7 @@ msgstr "" "efectivamente este nivel primordial, de modo que la salida del registro " "depende nuevamente de los niveles efectivos de los loggers individuales." -#: ../Doc/library/logging.rst:1180 +#: ../Doc/library/logging.rst:1230 msgid "" "Note that if you have defined any custom logging level higher than " "``CRITICAL`` (this is not recommended), you won't be able to rely on the " @@ -2288,7 +2319,7 @@ msgstr "" "valor predeterminado para el parámetro *level*, pero tendrá que proporcionar " "explícitamente un valor adecuado." -#: ../Doc/library/logging.rst:1185 +#: ../Doc/library/logging.rst:1235 msgid "" "The *level* parameter was defaulted to level ``CRITICAL``. See :issue:" "`28524` for more information about this change." @@ -2296,7 +2327,7 @@ msgstr "" "El parámetro *level* se estableció por defecto en el nivel ``CRITICAL``. " "Consulte el Issue #28524 para obtener más información sobre este cambio." -#: ../Doc/library/logging.rst:1191 +#: ../Doc/library/logging.rst:1241 msgid "" "Associates level *level* with text *levelName* in an internal dictionary, " "which is used to map numeric levels to a textual representation, for example " @@ -2313,7 +2344,7 @@ msgstr "" "función, los niveles deben ser números enteros positivos y deben aumentar en " "orden creciente de severidad." -#: ../Doc/library/logging.rst:1198 +#: ../Doc/library/logging.rst:1248 msgid "" "If you are thinking of defining your own levels, please see the section on :" "ref:`custom-levels`." @@ -2321,7 +2352,7 @@ msgstr "" "Si está pensando en definir sus propios niveles, consulte la sección sobre :" "ref:`custom-levels`." -#: ../Doc/library/logging.rst:1203 +#: ../Doc/library/logging.rst:1253 msgid "" "Returns a mapping from level names to their corresponding logging levels. " "For example, the string \"CRITICAL\" maps to :const:`CRITICAL`. The returned " @@ -2332,12 +2363,12 @@ msgstr "" "corresponde a :const:`CRITICAL`. La correspondencia retornada se copia de " "una correspondencia interna en cada llamada a esta función." -#: ../Doc/library/logging.rst:1211 +#: ../Doc/library/logging.rst:1261 msgid "Returns the textual or numeric representation of logging level *level*." msgstr "" "Retorna la representación textual o numérica del nivel de registro *level*." -#: ../Doc/library/logging.rst:1213 +#: ../Doc/library/logging.rst:1263 msgid "" "If *level* is one of the predefined levels :const:`CRITICAL`, :const:" "`ERROR`, :const:`WARNING`, :const:`INFO` or :const:`DEBUG` then you get the " @@ -2353,7 +2384,7 @@ msgstr "" "con *level*. Si se pasa un valor numérico correspondiente a uno de los " "niveles definidos, se retorna la representación de cadena correspondiente." -#: ../Doc/library/logging.rst:1220 +#: ../Doc/library/logging.rst:1270 msgid "" "The *level* parameter also accepts a string representation of the level such " "as 'INFO'. In such cases, this functions returns the corresponding numeric " @@ -2363,7 +2394,7 @@ msgstr "" "como, por ejemplo, \"INFO\". En estos casos, esta función retorna el " "correspondiente valor numérico del nivel." -#: ../Doc/library/logging.rst:1224 +#: ../Doc/library/logging.rst:1274 #, fuzzy, python-format msgid "" "If no matching numeric or string value is passed in, the string 'Level %s' " @@ -2372,7 +2403,7 @@ msgstr "" "Si no se pasa un valor numérico o de cadena que coincida, se retorna la " "cadena de caracteres 'Level %s' % nivel." -#: ../Doc/library/logging.rst:1227 +#: ../Doc/library/logging.rst:1277 #, python-format msgid "" "Levels are internally integers (as they need to be compared in the logging " @@ -2387,7 +2418,7 @@ msgstr "" "formateado mediante el especificador de formato ``%(levelname)s`` (ver :ref:" "`logrecord-attributes`)." -#: ../Doc/library/logging.rst:1233 +#: ../Doc/library/logging.rst:1283 msgid "" "In Python versions earlier than 3.4, this function could also be passed a " "text level, and would return the corresponding numeric value of the level. " @@ -2400,7 +2431,17 @@ msgstr "" "en Python 3.4, pero se restableció en 3.4.2 debido a que conserva la " "compatibilidad con versiones anteriores." -#: ../Doc/library/logging.rst:1241 +#: ../Doc/library/logging.rst:1291 +msgid "" +"Returns a handler with the specified *name*, or ``None`` if there is no " +"handler with that name." +msgstr "" + +#: ../Doc/library/logging.rst:1298 +msgid "Returns an immutable set of all known handler names." +msgstr "" + +#: ../Doc/library/logging.rst:1304 msgid "" "Creates and returns a new :class:`LogRecord` instance whose attributes are " "defined by *attrdict*. This function is useful for taking a pickled :class:" @@ -2413,7 +2454,7 @@ msgstr "" "socket, y reconstituido como una instancia :class:`LogRecord` en el extremo " "receptor." -#: ../Doc/library/logging.rst:1249 +#: ../Doc/library/logging.rst:1312 msgid "" "Does basic configuration for the logging system by creating a :class:" "`StreamHandler` with a default :class:`Formatter` and adding it to the root " @@ -2427,7 +2468,7 @@ msgstr "" "func:`error` y :func:`critical` llamarán :func:`basicConfig` automáticamente " "si no se definen gestores para el logger raíz." -#: ../Doc/library/logging.rst:1255 +#: ../Doc/library/logging.rst:1318 msgid "" "This function does nothing if the root logger already has handlers " "configured, unless the keyword argument *force* is set to ``True``." @@ -2436,7 +2477,7 @@ msgstr "" "a menos que el argumento de palabra clave *force* esté establecido como " "``True``." -#: ../Doc/library/logging.rst:1258 +#: ../Doc/library/logging.rst:1321 msgid "" "This function should be called from the main thread before other threads are " "started. In versions of Python prior to 2.7.1 and 3.2, if this function is " @@ -2450,15 +2491,15 @@ msgstr "" "circunstancias) que se agregue un gestor al logger raíz más de una vez, lo " "que genera resultados inesperados como mensajes duplicados en el registro." -#: ../Doc/library/logging.rst:1265 +#: ../Doc/library/logging.rst:1328 msgid "The following keyword arguments are supported." msgstr "Se admiten los siguientes argumentos de palabras clave." -#: ../Doc/library/logging.rst:1272 +#: ../Doc/library/logging.rst:1335 msgid "*filename*" msgstr "*filename*" -#: ../Doc/library/logging.rst:1272 +#: ../Doc/library/logging.rst:1335 #, fuzzy msgid "" "Specifies that a :class:`FileHandler` be created, using the specified " @@ -2467,11 +2508,11 @@ msgstr "" "Especifica que se cree un *FileHandler*, utilizando el nombre de archivo " "especificado, en lugar de *StreamHandler*." -#: ../Doc/library/logging.rst:1276 +#: ../Doc/library/logging.rst:1339 msgid "*filemode*" msgstr "*filemode*" -#: ../Doc/library/logging.rst:1276 +#: ../Doc/library/logging.rst:1339 msgid "" "If *filename* is specified, open the file in this :ref:`mode `. " "Defaults to ``'a'``." @@ -2479,11 +2520,11 @@ msgstr "" "Si se especifica *filename*, abre el archivo en :ref:`mode `. Por " "defecto es ``'a'``." -#: ../Doc/library/logging.rst:1280 +#: ../Doc/library/logging.rst:1343 msgid "*format*" msgstr "*format*" -#: ../Doc/library/logging.rst:1280 +#: ../Doc/library/logging.rst:1343 msgid "" "Use the specified format string for the handler. Defaults to attributes " "``levelname``, ``name`` and ``message`` separated by colons." @@ -2492,22 +2533,22 @@ msgstr "" "atributos por defecto son ``levelname``, ``name`` y ``message`` separado por " "dos puntos." -#: ../Doc/library/logging.rst:1285 +#: ../Doc/library/logging.rst:1348 msgid "*datefmt*" msgstr "*datefmt*" -#: ../Doc/library/logging.rst:1285 +#: ../Doc/library/logging.rst:1348 msgid "" "Use the specified date/time format, as accepted by :func:`time.strftime`." msgstr "" "Utiliza el formato de fecha/hora especificado, aceptado por :func:`time." "strftime`." -#: ../Doc/library/logging.rst:1288 +#: ../Doc/library/logging.rst:1351 msgid "*style*" msgstr "*style*" -#: ../Doc/library/logging.rst:1288 +#: ../Doc/library/logging.rst:1351 msgid "" "If *format* is specified, use this style for the format string. One of " "``'%'``, ``'{'`` or ``'$'`` for :ref:`printf-style `, :meth:`str.format` o :class:`string." "Template` respectivamente. El valor predeterminado es ``'%'``." -#: ../Doc/library/logging.rst:1296 +#: ../Doc/library/logging.rst:1359 msgid "*level*" msgstr "*level*" -#: ../Doc/library/logging.rst:1296 +#: ../Doc/library/logging.rst:1359 msgid "Set the root logger level to the specified :ref:`level `." msgstr "" "Establece el nivel del logger raíz en el :ref:`level ` especificado." -#: ../Doc/library/logging.rst:1299 +#: ../Doc/library/logging.rst:1362 msgid "*stream*" msgstr "*stream*" -#: ../Doc/library/logging.rst:1299 +#: ../Doc/library/logging.rst:1362 msgid "" "Use the specified stream to initialize the :class:`StreamHandler`. Note that " "this argument is incompatible with *filename* - if both are present, a " @@ -2542,11 +2583,11 @@ msgstr "" "Tenga en cuenta que este argumento es incompatible con *filename* - si ambos " "están presentes, se lanza un ``ValueError``." -#: ../Doc/library/logging.rst:1305 +#: ../Doc/library/logging.rst:1368 msgid "*handlers*" msgstr "*handlers*" -#: ../Doc/library/logging.rst:1305 +#: ../Doc/library/logging.rst:1368 msgid "" "If specified, this should be an iterable of already created handlers to add " "to the root logger. Any handlers which don't already have a formatter set " @@ -2560,11 +2601,11 @@ msgstr "" "función. Tenga en cuenta que este argumento es incompatible con *filename* o " "*stream*; si ambos están presentes, se lanza un ``ValueError``." -#: ../Doc/library/logging.rst:1314 +#: ../Doc/library/logging.rst:1377 msgid "*force*" msgstr "*force*" -#: ../Doc/library/logging.rst:1314 +#: ../Doc/library/logging.rst:1377 msgid "" "If this keyword argument is specified as true, any existing handlers " "attached to the root logger are removed and closed, before carrying out the " @@ -2575,11 +2616,11 @@ msgstr "" "llevar a cabo la configuración tal como se especifica en los otros " "argumentos." -#: ../Doc/library/logging.rst:1320 +#: ../Doc/library/logging.rst:1383 msgid "*encoding*" msgstr "*encoding*" -#: ../Doc/library/logging.rst:1320 +#: ../Doc/library/logging.rst:1383 #, fuzzy msgid "" "If this keyword argument is specified along with *filename*, its value is " @@ -2590,11 +2631,11 @@ msgstr "" "valor se utiliza cuando se crea el FileHandler, y por lo tanto se utiliza al " "abrir el archivo de salida." -#: ../Doc/library/logging.rst:1325 +#: ../Doc/library/logging.rst:1388 msgid "*errors*" msgstr "*errors*" -#: ../Doc/library/logging.rst:1325 +#: ../Doc/library/logging.rst:1388 #, fuzzy msgid "" "If this keyword argument is specified along with *filename*, its value is " @@ -2610,11 +2651,11 @@ msgstr "" "pasará como tal a :func:`open`, lo que significa que se tratará igual que " "pasar 'errores'. " -#: ../Doc/library/logging.rst:1336 +#: ../Doc/library/logging.rst:1399 msgid "The *style* argument was added." msgstr "Se agregó el argumento *style*." -#: ../Doc/library/logging.rst:1339 +#: ../Doc/library/logging.rst:1402 msgid "" "The *handlers* argument was added. Additional checks were added to catch " "situations where incompatible arguments are specified (e.g. *handlers* " @@ -2625,15 +2666,15 @@ msgstr "" "(por ejemplo, *handlers* junto con *stream* o *filename*, o *stream* junto " "con *filename*)." -#: ../Doc/library/logging.rst:1345 +#: ../Doc/library/logging.rst:1408 msgid "The *force* argument was added." msgstr "Se agregó el argumento *force*." -#: ../Doc/library/logging.rst:1348 +#: ../Doc/library/logging.rst:1411 msgid "The *encoding* and *errors* arguments were added." msgstr "Se han añadido los argumentos *encoding* y *errors*." -#: ../Doc/library/logging.rst:1353 +#: ../Doc/library/logging.rst:1416 msgid "" "Informs the logging system to perform an orderly shutdown by flushing and " "closing all handlers. This should be called at application exit and no " @@ -2644,7 +2685,7 @@ msgstr "" "y no se debe hacer ningún uso posterior del sistema de logging después de " "esta llamada." -#: ../Doc/library/logging.rst:1357 +#: ../Doc/library/logging.rst:1420 msgid "" "When the logging module is imported, it registers this function as an exit " "handler (see :mod:`atexit`), so normally there's no need to do that manually." @@ -2653,11 +2694,12 @@ msgstr "" "de salida (ver :mod:`atexit`), por lo que normalmente no es necesario " "hacerlo manualmente." -#: ../Doc/library/logging.rst:1364 +#: ../Doc/library/logging.rst:1427 +#, fuzzy msgid "" "Tells the logging system to use the class *klass* when instantiating a " -"logger. The class should define :meth:`__init__` such that only a name " -"argument is required, and the :meth:`__init__` should call :meth:`Logger." +"logger. The class should define :meth:`!__init__` such that only a name " +"argument is required, and the :meth:`!__init__` should call :meth:`!Logger." "__init__`. This function is typically called before any loggers are " "instantiated by applications which need to use custom logger behavior. After " "this call, as at any other time, do not instantiate loggers directly using " @@ -2674,17 +2716,17 @@ msgstr "" "subclase: continúe usando la API :func:`logging.getLogger` para obtener sus " "loggers." -#: ../Doc/library/logging.rst:1375 +#: ../Doc/library/logging.rst:1438 msgid "Set a callable which is used to create a :class:`LogRecord`." msgstr "Establece un invocable que se utiliza para crear :class:`LogRecord`." -#: ../Doc/library/logging.rst:1377 +#: ../Doc/library/logging.rst:1440 msgid "The factory callable to be used to instantiate a log record." msgstr "" "La fábrica invocable que se utilizará para crear una instancia de un " "registro." -#: ../Doc/library/logging.rst:1379 +#: ../Doc/library/logging.rst:1442 msgid "" "This function has been provided, along with :func:`getLogRecordFactory`, to " "allow developers more control over how the :class:`LogRecord` representing a " @@ -2694,11 +2736,11 @@ msgstr "" "para permitir a los desarrolladores un mayor control sobre cómo se " "construye :class:`LogRecord` que representa un evento de logging." -#: ../Doc/library/logging.rst:1384 +#: ../Doc/library/logging.rst:1447 msgid "The factory has the following signature:" msgstr "La fábrica tiene la siguiente firma:" -#: ../Doc/library/logging.rst:1386 +#: ../Doc/library/logging.rst:1449 msgid "" "``factory(name, level, fn, lno, msg, args, exc_info, func=None, sinfo=None, " "**kwargs)``" @@ -2706,7 +2748,7 @@ msgstr "" "``factory(name, level, fn, lno, msg, args, exc_info, func=None, sinfo=None, " "**kwargs)``" -#: ../Doc/library/logging.rst:1388 +#: ../Doc/library/logging.rst:1451 msgid "The logger name." msgstr "El nombre del logger." @@ -2714,7 +2756,7 @@ msgstr "El nombre del logger." msgid "level" msgstr "level" -#: ../Doc/library/logging.rst:1389 +#: ../Doc/library/logging.rst:1452 msgid "The logging level (numeric)." msgstr "El nivel de logging (numérico)." @@ -2722,7 +2764,7 @@ msgstr "El nivel de logging (numérico)." msgid "fn" msgstr "fn" -#: ../Doc/library/logging.rst:1390 +#: ../Doc/library/logging.rst:1453 msgid "The full pathname of the file where the logging call was made." msgstr "" "El nombre de ruta completo del archivo donde se realizó la llamada de " @@ -2732,20 +2774,20 @@ msgstr "" msgid "lno" msgstr "lno" -#: ../Doc/library/logging.rst:1391 +#: ../Doc/library/logging.rst:1454 msgid "The line number in the file where the logging call was made." msgstr "" "El número de línea en el archivo donde se realizó la llamada de logging." -#: ../Doc/library/logging.rst:1392 +#: ../Doc/library/logging.rst:1455 msgid "The logging message." msgstr "El mensaje de logging." -#: ../Doc/library/logging.rst:1393 +#: ../Doc/library/logging.rst:1456 msgid "The arguments for the logging message." msgstr "Los argumentos para el mensaje de logging." -#: ../Doc/library/logging.rst:1394 +#: ../Doc/library/logging.rst:1457 msgid "An exception tuple, or ``None``." msgstr "Una tupla de excepción o ``None``." @@ -2753,7 +2795,7 @@ msgstr "Una tupla de excepción o ``None``." msgid "func" msgstr "func" -#: ../Doc/library/logging.rst:1395 +#: ../Doc/library/logging.rst:1458 msgid "The name of the function or method which invoked the logging call." msgstr "El nombre de la función o método que invocó la llamada de logging." @@ -2761,7 +2803,7 @@ msgstr "El nombre de la función o método que invocó la llamada de logging." msgid "sinfo" msgstr "sinfo" -#: ../Doc/library/logging.rst:1397 +#: ../Doc/library/logging.rst:1460 msgid "" "A stack traceback such as is provided by :func:`traceback.print_stack`, " "showing the call hierarchy." @@ -2773,15 +2815,15 @@ msgstr "" msgid "kwargs" msgstr "kwargs" -#: ../Doc/library/logging.rst:1399 +#: ../Doc/library/logging.rst:1462 msgid "Additional keyword arguments." msgstr "Argumentos de palabras clave adicionales." -#: ../Doc/library/logging.rst:1403 +#: ../Doc/library/logging.rst:1466 msgid "Module-Level Attributes" msgstr "Atributos a nivel de módulo" -#: ../Doc/library/logging.rst:1407 +#: ../Doc/library/logging.rst:1470 msgid "" "A \"handler of last resort\" is available through this attribute. This is a :" "class:`StreamHandler` writing to ``sys.stderr`` with a level of ``WARNING``, " @@ -2800,11 +2842,11 @@ msgstr "" "XYZ\". Si necesita el comportamiento anterior por alguna razón, " "``lastResort`` se puede configurar en ``None``." -#: ../Doc/library/logging.rst:1418 +#: ../Doc/library/logging.rst:1481 msgid "Integration with the warnings module" msgstr "Integración con el módulo de advertencias" -#: ../Doc/library/logging.rst:1420 +#: ../Doc/library/logging.rst:1483 msgid "" "The :func:`captureWarnings` function can be used to integrate :mod:`logging` " "with the :mod:`warnings` module." @@ -2812,14 +2854,14 @@ msgstr "" "La función :func:`captureWarnings` se puede utilizar para integrar :mod:" "`logging` con el módulo :mod:`warnings`." -#: ../Doc/library/logging.rst:1425 +#: ../Doc/library/logging.rst:1488 msgid "" "This function is used to turn the capture of warnings by logging on and off." msgstr "" "Esta función se utiliza para activar y desactivar la captura de advertencias " "(*warnings*)." -#: ../Doc/library/logging.rst:1428 +#: ../Doc/library/logging.rst:1491 msgid "" "If *capture* is ``True``, warnings issued by the :mod:`warnings` module will " "be redirected to the logging system. Specifically, a warning will be " @@ -2833,7 +2875,7 @@ msgstr "" "de caracteres resultante se registrará en un logger llamado ``'py." "warnings'`` con severidad :const:`WARNING`." -#: ../Doc/library/logging.rst:1433 +#: ../Doc/library/logging.rst:1496 msgid "" "If *capture* is ``False``, the redirection of warnings to the logging system " "will stop, and warnings will be redirected to their original destinations (i." @@ -2844,27 +2886,27 @@ msgstr "" "originales (es decir, aquellos en vigor antes de que se llamara a " "``captureWarnings(True)``)." -#: ../Doc/library/logging.rst:1441 +#: ../Doc/library/logging.rst:1504 msgid "Module :mod:`logging.config`" msgstr "Módulo :mod:`logging.config`" -#: ../Doc/library/logging.rst:1441 +#: ../Doc/library/logging.rst:1504 msgid "Configuration API for the logging module." msgstr "API de configuración para el módulo logging." -#: ../Doc/library/logging.rst:1444 +#: ../Doc/library/logging.rst:1507 msgid "Module :mod:`logging.handlers`" msgstr "Módulo :mod:`logging.handlers`" -#: ../Doc/library/logging.rst:1444 +#: ../Doc/library/logging.rst:1507 msgid "Useful handlers included with the logging module." msgstr "Gestores útiles incluidos con el módulo logging." -#: ../Doc/library/logging.rst:1448 +#: ../Doc/library/logging.rst:1511 msgid ":pep:`282` - A Logging System" msgstr ":pep:`282` - A Logging System" -#: ../Doc/library/logging.rst:1447 +#: ../Doc/library/logging.rst:1510 msgid "" "The proposal which described this feature for inclusion in the Python " "standard library." @@ -2872,7 +2914,7 @@ msgstr "" "La propuesta que describió esta característica para su inclusión en la " "biblioteca estándar de Python." -#: ../Doc/library/logging.rst:1453 +#: ../Doc/library/logging.rst:1516 msgid "" "`Original Python logging package `_" @@ -2880,7 +2922,7 @@ msgstr "" "`Paquete logging original de Python `_" -#: ../Doc/library/logging.rst:1451 +#: ../Doc/library/logging.rst:1514 msgid "" "This is the original source for the :mod:`logging` package. The version of " "the package available from this site is suitable for use with Python 1.5.2, " @@ -2891,3 +2933,98 @@ msgstr "" "paquete disponible en este sitio es adecuada para usar con Python 1.5.2, 2.1." "xy 2.2.x, que no incluyen el paquete :mod:`logging` en la biblioteca " "estándar." + +#: ../Doc/library/logging.rst:12 +#, fuzzy +msgid "Errors" +msgstr "*errors*" + +#: ../Doc/library/logging.rst:12 +#, fuzzy +msgid "logging" +msgstr "Niveles de logging" + +#~ msgid "``CRITICAL``" +#~ msgstr "``CRITICAL``" + +#~ msgid "``ERROR``" +#~ msgstr "``ERROR``" + +#~ msgid "``WARNING``" +#~ msgstr "``WARNING``" + +#~ msgid "``INFO``" +#~ msgstr "``INFO``" + +#~ msgid "``DEBUG``" +#~ msgstr "``DEBUG``" + +#~ msgid "``NOTSET``" +#~ msgstr "``NOTSET``" + +#~ msgid "" +#~ ":class:`Formatter` objects have the following attributes and methods. " +#~ "They are responsible for converting a :class:`LogRecord` to (usually) a " +#~ "string which can be interpreted by either a human or an external system. " +#~ "The base :class:`Formatter` allows a formatting string to be specified. " +#~ "If none is supplied, the default value of ``'%(message)s'`` is used, " +#~ "which just includes the message in the logging call. To have additional " +#~ "items of information in the formatted output (such as a timestamp), keep " +#~ "reading." +#~ msgstr "" +#~ ":class:`Formatter` tiene los siguientes atributos y métodos. Son " +#~ "responsables de convertir una :class:`LogRecord` a (generalmente) una " +#~ "cadena que puede ser interpretada por un sistema humano o externo. La " +#~ "base :class:`Formatter` permite especificar una cadena de formato. Si no " +#~ "se proporciona ninguno, se utiliza el valor predeterminado de " +#~ "``'%(message)s'``, que solo incluye el mensaje en la llamada de registro. " +#~ "Para tener elementos de información adicionales en la salida formateada " +#~ "(como una marca de tiempo), siga leyendo." + +#~ msgid "" +#~ "A Formatter can be initialized with a format string which makes use of " +#~ "knowledge of the :class:`LogRecord` attributes - such as the default " +#~ "value mentioned above making use of the fact that the user's message and " +#~ "arguments are pre-formatted into a :class:`LogRecord`'s *message* " +#~ "attribute. This format string contains standard Python %-style mapping " +#~ "keys. See section :ref:`old-string-formatting` for more information on " +#~ "string formatting." +#~ msgstr "" +#~ "Un formateador se puede inicializar con una cadena de formato que utiliza " +#~ "el conocimiento de los atributos :class:`LogRecord`, como el valor " +#~ "predeterminado mencionado anteriormente, haciendo uso del hecho de que el " +#~ "mensaje y los argumentos del usuario están formateados previamente en :" +#~ "class:`LogRecord`'s con *message* como atributo. Esta cadena de formato " +#~ "contiene claves de mapeo de Python %-style estándar. Ver la sección :ref:" +#~ "`old-string-formatting` para obtener más información sobre el formato de " +#~ "cadenas." + +#~ msgid "" +#~ "The useful mapping keys in a :class:`LogRecord` are given in the section " +#~ "on :ref:`logrecord-attributes`." +#~ msgstr "" +#~ "Las claves de mapeo útiles en a :class:`LogRecord` se dan en la sección " +#~ "sobre :ref:`logrecord-attributes`." + +#~ msgid "" +#~ "Returns a new instance of the :class:`Formatter` class. The instance is " +#~ "initialized with a format string for the message as a whole, as well as a " +#~ "format string for the date/time portion of a message. If no *fmt* is " +#~ "specified, ``'%(message)s'`` is used. If no *datefmt* is specified, a " +#~ "format is used which is described in the :meth:`formatTime` documentation." +#~ msgstr "" +#~ "Retorna una nueva instancia de :class:`Formatter`. La instancia se " +#~ "inicializa con una cadena de formato para el mensaje en su conjunto, así " +#~ "como una cadena de formato para la porción fecha/hora de un mensaje. Si " +#~ "no se especifica *fmt*, se utiliza ``'%(message)s'``. Si no se especifica " +#~ "*datefmt*, se utiliza un formato que se describe en la documentación :" +#~ "meth:`formatTime`." + +#~ msgid "" +#~ "Is the specified record to be logged? Returns zero for no, nonzero for " +#~ "yes. If deemed appropriate, the record may be modified in-place by this " +#~ "method." +#~ msgstr "" +#~ "¿Se apuntará el registro especificado? Retorna cero para no, distinto de " +#~ "cero para sí. Si se considera apropiado, el registro puede modificarse in " +#~ "situ mediante este método." diff --git a/library/lzma.po b/library/lzma.po index 0001cf09e9..a73ccd222b 100644 --- a/library/lzma.po +++ b/library/lzma.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-10-01 21:27-0400\n" "Last-Translator: Enrique Giménez \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/lzma.rst:2 msgid ":mod:`lzma` --- Compression using the LZMA algorithm" @@ -141,7 +141,7 @@ msgstr "" msgid "Added support for the ``\"x\"``, ``\"xb\"`` and ``\"xt\"`` modes." msgstr "Agregado soporte para los modos ``\"x\"``, ``\"xb\"`` y ``\"xt\"``." -#: ../Doc/library/lzma.rst:68 ../Doc/library/lzma.rst:126 +#: ../Doc/library/lzma.rst:68 ../Doc/library/lzma.rst:127 msgid "Accepts a :term:`path-like object`." msgstr "Acepta un :term:`path-like object`." @@ -197,20 +197,21 @@ msgstr "" "transparentemente decodificados como un único flujo lógico." #: ../Doc/library/lzma.rst:102 +#, fuzzy msgid "" ":class:`LZMAFile` supports all the members specified by :class:`io." -"BufferedIOBase`, except for :meth:`detach` and :meth:`truncate`. Iteration " -"and the :keyword:`with` statement are supported." +"BufferedIOBase`, except for :meth:`~io.BufferedIOBase.detach` and :meth:`~io." +"IOBase.truncate`. Iteration and the :keyword:`with` statement are supported." msgstr "" ":class:`LZMAFile` soporta todos los miembros especificados por :class:`io." "BufferedIOBase`, excepto por :meth:`detach` y :meth:`truncate`. La " "declaración de iteración y :keyword:`with` son soportados." -#: ../Doc/library/lzma.rst:106 +#: ../Doc/library/lzma.rst:107 msgid "The following method is also provided:" msgstr "El siguiente método también es proveído:" -#: ../Doc/library/lzma.rst:110 +#: ../Doc/library/lzma.rst:111 msgid "" "Return buffered data without advancing the file position. At least one byte " "of data will be returned, unless EOF has been reached. The exact number of " @@ -221,7 +222,7 @@ msgstr "" "número exacto de bytes retornado no está especificado (el argumento *size* " "es ignorado)." -#: ../Doc/library/lzma.rst:114 +#: ../Doc/library/lzma.rst:115 msgid "" "While calling :meth:`peek` does not change the file position of the :class:" "`LZMAFile`, it may change the position of the underlying file object (e.g. " @@ -233,11 +234,11 @@ msgstr "" "ejemplo si el :class:`LZMAFile` fue construido pasando un objeto de fichero " "por *filename*)." -#: ../Doc/library/lzma.rst:119 +#: ../Doc/library/lzma.rst:120 msgid "Added support for the ``\"x\"`` and ``\"xb\"`` modes." msgstr "Agregado soporte para los modos ``\"x\"`` y ``\"xb\"``." -#: ../Doc/library/lzma.rst:122 +#: ../Doc/library/lzma.rst:123 msgid "" "The :meth:`~io.BufferedIOBase.read` method now accepts an argument of " "``None``." @@ -245,18 +246,18 @@ msgstr "" "El método :meth:`~io.BufferedIOBase.read` acepta ahora un argumento de " "``None``." -#: ../Doc/library/lzma.rst:131 +#: ../Doc/library/lzma.rst:132 msgid "Compressing and decompressing data in memory" msgstr "Comprimiendo y descomprimiendo datos en memoria" -#: ../Doc/library/lzma.rst:135 +#: ../Doc/library/lzma.rst:136 msgid "" "Create a compressor object, which can be used to compress data incrementally." msgstr "" "Crea un objeto compresor, el cual puede ser utilizado para comprimir datos " "incrementalmente." -#: ../Doc/library/lzma.rst:137 +#: ../Doc/library/lzma.rst:138 msgid "" "For a more convenient way of compressing a single chunk of data, see :func:" "`compress`." @@ -264,7 +265,7 @@ msgstr "" "Para una forma más conveniente de comprimir un único fragmento de datos, " "vea :func:`compress`." -#: ../Doc/library/lzma.rst:140 +#: ../Doc/library/lzma.rst:141 msgid "" "The *format* argument specifies what container format should be used. " "Possible values are:" @@ -272,19 +273,19 @@ msgstr "" "El argumento *format* especifica qué formato de contenedor debería ser " "utilizado. Posibles valores son:" -#: ../Doc/library/lzma.rst:144 +#: ../Doc/library/lzma.rst:145 msgid ":const:`FORMAT_XZ`: The ``.xz`` container format." msgstr ":const:`FORMAT_XZ`: El formato de contenedor ``.xz``." -#: ../Doc/library/lzma.rst:144 +#: ../Doc/library/lzma.rst:145 msgid "This is the default format." msgstr "Este es el formato por defecto." -#: ../Doc/library/lzma.rst:148 +#: ../Doc/library/lzma.rst:149 msgid ":const:`FORMAT_ALONE`: The legacy ``.lzma`` container format." msgstr ":const:`FORMAT_ALONE`: El formato de contenedor ``.lzma`` heredado." -#: ../Doc/library/lzma.rst:147 +#: ../Doc/library/lzma.rst:148 msgid "" "This format is more limited than ``.xz`` -- it does not support integrity " "checks or multiple filters." @@ -292,13 +293,13 @@ msgstr "" "Este formato es más limitado que ``.xz`` -- no soporta chequeos de " "integridad o múltiples filtros." -#: ../Doc/library/lzma.rst:154 +#: ../Doc/library/lzma.rst:155 msgid ":const:`FORMAT_RAW`: A raw data stream, not using any container format." msgstr "" ":const:`FORMAT_RAW`: Un flujo de datos sin procesar, sin utilizar ningún " "formato de contenedor." -#: ../Doc/library/lzma.rst:151 +#: ../Doc/library/lzma.rst:152 msgid "" "This format specifier does not support integrity checks, and requires that " "you always specify a custom filter chain (for both compression and " @@ -311,7 +312,7 @@ msgstr "" "pueden ser descomprimidos utilizando :const:`FORMAT_AUTO` (vea :class:" "`LZMADecompressor`)." -#: ../Doc/library/lzma.rst:156 +#: ../Doc/library/lzma.rst:157 msgid "" "The *check* argument specifies the type of integrity check to include in the " "compressed data. This check is used when decompressing, to ensure that the " @@ -321,7 +322,7 @@ msgstr "" "en los datos descomprimidos. Este chequeo es utilizado al descomprimir, para " "asegurarse que los datos no han sido corrompidos. Los posibles valores son:" -#: ../Doc/library/lzma.rst:160 +#: ../Doc/library/lzma.rst:161 msgid "" ":const:`CHECK_NONE`: No integrity check. This is the default (and the only " "acceptable value) for :const:`FORMAT_ALONE` and :const:`FORMAT_RAW`." @@ -330,11 +331,11 @@ msgstr "" "defecto (y el único valor aceptable) para :const:`FORMAT_ALONE` y :const:" "`FORMAT_RAW`." -#: ../Doc/library/lzma.rst:164 +#: ../Doc/library/lzma.rst:165 msgid ":const:`CHECK_CRC32`: 32-bit Cyclic Redundancy Check." msgstr ":const:`CHECK_CRC32`: Chequeo de Redundancia Cíclica de 32 bits." -#: ../Doc/library/lzma.rst:166 +#: ../Doc/library/lzma.rst:167 msgid "" ":const:`CHECK_CRC64`: 64-bit Cyclic Redundancy Check. This is the default " "for :const:`FORMAT_XZ`." @@ -342,18 +343,18 @@ msgstr "" ":const:`CHECK_CRC64`: Chequeo de Redundancia Cíclica de 64 bits. Este es el " "valor por defecto para :const:`FORMAT_XZ`." -#: ../Doc/library/lzma.rst:169 +#: ../Doc/library/lzma.rst:170 msgid ":const:`CHECK_SHA256`: 256-bit Secure Hash Algorithm." msgstr ":const:`CHECK_SHA256`: Algoritmo Hash Seguro de 256 bits." -#: ../Doc/library/lzma.rst:171 +#: ../Doc/library/lzma.rst:172 msgid "" "If the specified check is not supported, an :class:`LZMAError` is raised." msgstr "" "Si el chequeo especificado no es soportado, un :class:`LZMAError` es " "generado." -#: ../Doc/library/lzma.rst:173 +#: ../Doc/library/lzma.rst:174 msgid "" "The compression settings can be specified either as a preset compression " "level (with the *preset* argument), or in detail as a custom filter chain " @@ -363,7 +364,7 @@ msgstr "" "compresión predefinido (con el argumento *preset*), o en detalle como una " "cadena de filtro personalizada (con el argumento *filters*)." -#: ../Doc/library/lzma.rst:177 +#: ../Doc/library/lzma.rst:178 msgid "" "The *preset* argument (if provided) should be an integer between ``0`` and " "``9`` (inclusive), optionally OR-ed with the constant :const:" @@ -378,7 +379,7 @@ msgstr "" "preestablecido ``6``). Altos preestablecidos producen salidas más pequeñas, " "pero vuelve el proceso de compresión más lento." -#: ../Doc/library/lzma.rst:186 +#: ../Doc/library/lzma.rst:187 msgid "" "In addition to being more CPU-intensive, compression with higher presets " "also requires much more memory (and produces output that needs more memory " @@ -393,7 +394,7 @@ msgstr "" "800MiB. Por esta razón, es generalmente mejor quedarse con el preestablecido " "por defecto." -#: ../Doc/library/lzma.rst:192 +#: ../Doc/library/lzma.rst:193 msgid "" "The *filters* argument (if provided) should be a filter chain specifier. " "See :ref:`filter-chain-specs` for details." @@ -401,7 +402,7 @@ msgstr "" "El argumento *filters* (si es proveído) debería ser un especificador de " "cadena de filtro. Vea :ref:`filter-chain-specs` para detalles." -#: ../Doc/library/lzma.rst:197 +#: ../Doc/library/lzma.rst:198 msgid "" "Compress *data* (a :class:`bytes` object), returning a :class:`bytes` object " "containing compressed data for at least part of the input. Some of *data* " @@ -416,7 +417,7 @@ msgstr "" "debería ser concatenada con la salida en cualquier llamada previa a :meth:" "`compress`." -#: ../Doc/library/lzma.rst:205 +#: ../Doc/library/lzma.rst:206 msgid "" "Finish the compression process, returning a :class:`bytes` object containing " "any data stored in the compressor's internal buffers." @@ -425,12 +426,12 @@ msgstr "" "conteniendo cualquier información almacenada en los búferes internos del " "compresor." -#: ../Doc/library/lzma.rst:208 +#: ../Doc/library/lzma.rst:209 msgid "The compressor cannot be used after this method has been called." msgstr "" "El compresor no puede ser utilizado después de que este método es llamado." -#: ../Doc/library/lzma.rst:213 +#: ../Doc/library/lzma.rst:214 msgid "" "Create a decompressor object, which can be used to decompress data " "incrementally." @@ -438,7 +439,7 @@ msgstr "" "Crea un objeto descompresor, el cual puede ser utilizado para descomprimir " "datos incrementalmente." -#: ../Doc/library/lzma.rst:216 +#: ../Doc/library/lzma.rst:217 msgid "" "For a more convenient way of decompressing an entire compressed stream at " "once, see :func:`decompress`." @@ -446,7 +447,7 @@ msgstr "" "Para una forma más conveniente de descomprimir un flujo completo de " "compresión a la vez, vea :func:`decompress`." -#: ../Doc/library/lzma.rst:219 +#: ../Doc/library/lzma.rst:220 msgid "" "The *format* argument specifies the container format that should be used. " "The default is :const:`FORMAT_AUTO`, which can decompress both ``.xz`` and " @@ -458,7 +459,7 @@ msgstr "" "descomprimir los ficheros ``.xz`` y ``.lzma``. Otros posibles valores son :" "const:`FORMAT_XZ`, :const:`FORMAT_ALONE`, y :const:`FORMAT_RAW`." -#: ../Doc/library/lzma.rst:224 +#: ../Doc/library/lzma.rst:225 msgid "" "The *memlimit* argument specifies a limit (in bytes) on the amount of memory " "that the decompressor can use. When this argument is used, decompression " @@ -470,7 +471,7 @@ msgstr "" "utilizado, la descompresión fallará con un :class:`LZMAError` si no es " "posible descomprimir la entrada dentro del límite de memoria dado." -#: ../Doc/library/lzma.rst:229 +#: ../Doc/library/lzma.rst:230 msgid "" "The *filters* argument specifies the filter chain that was used to create " "the stream being decompressed. This argument is required if *format* is :" @@ -482,7 +483,7 @@ msgstr "" "const:`FORMAT_RAW`, pero no debería ser utilizado para otros formatos. Vea :" "ref:`filter-chain-specs` para más información sobre cadenas de filtro." -#: ../Doc/library/lzma.rst:235 +#: ../Doc/library/lzma.rst:236 msgid "" "This class does not transparently handle inputs containing multiple " "compressed streams, unlike :func:`decompress` and :class:`LZMAFile`. To " @@ -494,7 +495,7 @@ msgstr "" "Para descomprimir una entrada multi-flujo con :class:`LZMADecompressor`, " "debería crear un nuevo descompresor para cada flujo." -#: ../Doc/library/lzma.rst:242 +#: ../Doc/library/lzma.rst:243 msgid "" "Decompress *data* (a :term:`bytes-like object`), returning uncompressed data " "as bytes. Some of *data* may be buffered internally, for use in later calls " @@ -507,7 +508,7 @@ msgstr "" "retornada debería ser concatenada con la salida de cualquier llamada " "anterior a :meth:`decompress`." -#: ../Doc/library/lzma.rst:248 +#: ../Doc/library/lzma.rst:249 msgid "" "If *max_length* is nonnegative, returns at most *max_length* bytes of " "decompressed data. If this limit is reached and further output can be " @@ -521,7 +522,7 @@ msgstr "" "``False``. En este caso, la siguiente llamada a :meth:`~.decompress` podría " "proveer *data* como ``\"b''`` para obtener más de la salida." -#: ../Doc/library/lzma.rst:255 +#: ../Doc/library/lzma.rst:256 msgid "" "If all of the input data was decompressed and returned (either because this " "was less than *max_length* bytes, or because *max_length* was negative), " @@ -531,7 +532,7 @@ msgstr "" "porque esto fue menos que *max_length* bytes, o porque *max_length* fue " "negativo), el atributo :attr:`~.needs_input` será establecido a ``True``." -#: ../Doc/library/lzma.rst:260 +#: ../Doc/library/lzma.rst:261 #, fuzzy msgid "" "Attempting to decompress data after the end of stream is reached raises an :" @@ -543,11 +544,11 @@ msgstr "" "después de que el fin del flujo es ignorada y guardada en el atributo :attr:" "`~.unused_data`." -#: ../Doc/library/lzma.rst:264 +#: ../Doc/library/lzma.rst:265 msgid "Added the *max_length* parameter." msgstr "Agregado el parámetro *max_length*." -#: ../Doc/library/lzma.rst:269 +#: ../Doc/library/lzma.rst:270 msgid "" "The ID of the integrity check used by the input stream. This may be :const:" "`CHECK_UNKNOWN` until enough of the input has been decoded to determine what " @@ -557,19 +558,19 @@ msgstr "" "puede ser :const:`CHECK_UNKNOWN` hasta que suficiente de la entrada ha sido " "decodificada para determinar qué chequeo de integridad utiliza." -#: ../Doc/library/lzma.rst:275 +#: ../Doc/library/lzma.rst:276 msgid "``True`` if the end-of-stream marker has been reached." msgstr "``True`` si el marcador de fin-de-flujo ha sido alcanzado." -#: ../Doc/library/lzma.rst:279 +#: ../Doc/library/lzma.rst:280 msgid "Data found after the end of the compressed stream." msgstr "Información encontrada después del fin del flujo comprimido." -#: ../Doc/library/lzma.rst:281 +#: ../Doc/library/lzma.rst:282 msgid "Before the end of the stream is reached, this will be ``b\"\"``." msgstr "Antes de que el fin del flujo es alcanzado, este será ``\"b\"``." -#: ../Doc/library/lzma.rst:285 +#: ../Doc/library/lzma.rst:286 msgid "" "``False`` if the :meth:`.decompress` method can provide more decompressed " "data before requiring new uncompressed input." @@ -577,7 +578,7 @@ msgstr "" "``False`` si el método :meth:`.decompress` puede proveer más información " "descomprimida antes de requerir nueva entrada descomprimida." -#: ../Doc/library/lzma.rst:292 +#: ../Doc/library/lzma.rst:293 msgid "" "Compress *data* (a :class:`bytes` object), returning the compressed data as " "a :class:`bytes` object." @@ -585,7 +586,7 @@ msgstr "" "Comprime *data* (un objeto :class:`bytes`), retornando la información " "comprimida como un objeto :class:`bytes`." -#: ../Doc/library/lzma.rst:295 +#: ../Doc/library/lzma.rst:296 msgid "" "See :class:`LZMACompressor` above for a description of the *format*, " "*check*, *preset* and *filters* arguments." @@ -593,7 +594,7 @@ msgstr "" "Vea :class:`LZMACompressor` arriba para una descripción de los argumentos " "*format*, *check*, *preset* y *filters*." -#: ../Doc/library/lzma.rst:301 +#: ../Doc/library/lzma.rst:302 msgid "" "Decompress *data* (a :class:`bytes` object), returning the uncompressed data " "as a :class:`bytes` object." @@ -601,7 +602,7 @@ msgstr "" "Descomprime *data* (un objeto :class:`bytes`), retornando la información " "descomprimida como un objeto :class:`bytes`." -#: ../Doc/library/lzma.rst:304 +#: ../Doc/library/lzma.rst:305 msgid "" "If *data* is the concatenation of multiple distinct compressed streams, " "decompress all of these streams, and return the concatenation of the results." @@ -609,7 +610,7 @@ msgstr "" "Si *data* es la concatenación de múltiples flujos comprimidos distintos, " "descomprime todos esos flujos, y retorna la concatenación de los resultados." -#: ../Doc/library/lzma.rst:307 +#: ../Doc/library/lzma.rst:308 msgid "" "See :class:`LZMADecompressor` above for a description of the *format*, " "*memlimit* and *filters* arguments." @@ -617,18 +618,18 @@ msgstr "" "Vea :class:`LZMADecompressor` arriba para una descripción de los argumentos " "*format*, *memlimit* y *filters*." -#: ../Doc/library/lzma.rst:312 +#: ../Doc/library/lzma.rst:313 msgid "Miscellaneous" msgstr "Misceláneas" -#: ../Doc/library/lzma.rst:316 +#: ../Doc/library/lzma.rst:317 msgid "" "Return ``True`` if the given integrity check is supported on this system." msgstr "" "Retorna ``True`` si el chequeo de integridad dado es soportado en este " "sistema." -#: ../Doc/library/lzma.rst:318 +#: ../Doc/library/lzma.rst:319 msgid "" ":const:`CHECK_NONE` and :const:`CHECK_CRC32` are always supported. :const:" "`CHECK_CRC64` and :const:`CHECK_SHA256` may be unavailable if you are using " @@ -639,11 +640,11 @@ msgstr "" "utilizando una versión de :program:`liblzma` que fue compilada con un " "conjunto de funciones limitado." -#: ../Doc/library/lzma.rst:327 +#: ../Doc/library/lzma.rst:328 msgid "Specifying custom filter chains" msgstr "Especificando cadenas de filtro personalizadas" -#: ../Doc/library/lzma.rst:329 +#: ../Doc/library/lzma.rst:330 msgid "" "A filter chain specifier is a sequence of dictionaries, where each " "dictionary contains the ID and options for a single filter. Each dictionary " @@ -656,15 +657,15 @@ msgstr "" "adicionales para especificar opciones filtro-dependientes. Los ID de filtro " "válidos son como sigue:" -#: ../Doc/library/lzma.rst:336 +#: ../Doc/library/lzma.rst:337 msgid "Compression filters:" msgstr "Filtro de compresión:" -#: ../Doc/library/lzma.rst:335 +#: ../Doc/library/lzma.rst:336 msgid ":const:`FILTER_LZMA1` (for use with :const:`FORMAT_ALONE`)" msgstr ":const:`FILTER_LZMA1` (para uso con :const:`FORMAT_ALONE`)" -#: ../Doc/library/lzma.rst:336 +#: ../Doc/library/lzma.rst:337 msgid "" ":const:`FILTER_LZMA2` (for use with :const:`FORMAT_XZ` and :const:" "`FORMAT_RAW`)" @@ -672,43 +673,43 @@ msgstr "" ":const:`FILTER_LZMA2` (para uso con :const:`FORMAT_XZ` y :const:" "`bytesFORMAT_RAW`)" -#: ../Doc/library/lzma.rst:339 +#: ../Doc/library/lzma.rst:340 msgid "Delta filter:" msgstr "Filtro delta:" -#: ../Doc/library/lzma.rst:339 +#: ../Doc/library/lzma.rst:340 msgid ":const:`FILTER_DELTA`" msgstr ":const:`FILTER_DELTA`" -#: ../Doc/library/lzma.rst:347 +#: ../Doc/library/lzma.rst:348 msgid "Branch-Call-Jump (BCJ) filters:" msgstr "Filtros *Branch-Call-Jump (BCJ)*:" -#: ../Doc/library/lzma.rst:342 +#: ../Doc/library/lzma.rst:343 msgid ":const:`FILTER_X86`" msgstr ":const:`FILTER_X86`" -#: ../Doc/library/lzma.rst:343 +#: ../Doc/library/lzma.rst:344 msgid ":const:`FILTER_IA64`" msgstr ":const:`FILTER_IA64`" -#: ../Doc/library/lzma.rst:344 +#: ../Doc/library/lzma.rst:345 msgid ":const:`FILTER_ARM`" msgstr ":const:`FILTER_ARM`" -#: ../Doc/library/lzma.rst:345 +#: ../Doc/library/lzma.rst:346 msgid ":const:`FILTER_ARMTHUMB`" msgstr ":const:`FILTER_ARMTHUMB`" -#: ../Doc/library/lzma.rst:346 +#: ../Doc/library/lzma.rst:347 msgid ":const:`FILTER_POWERPC`" msgstr ":const:`FILTER_POWERPC`" -#: ../Doc/library/lzma.rst:347 +#: ../Doc/library/lzma.rst:348 msgid ":const:`FILTER_SPARC`" msgstr ":const:`FILTER_SPARC`" -#: ../Doc/library/lzma.rst:349 +#: ../Doc/library/lzma.rst:350 msgid "" "A filter chain can consist of up to 4 filters, and cannot be empty. The last " "filter in the chain must be a compression filter, and any other filters must " @@ -718,7 +719,7 @@ msgstr "" "vacía. El último filtro en la cadena debe ser un filtro de compresión, y " "cualquier otro filtro debe ser un filtro delta o BCJ." -#: ../Doc/library/lzma.rst:353 +#: ../Doc/library/lzma.rst:354 msgid "" "Compression filters support the following options (specified as additional " "entries in the dictionary representing the filter):" @@ -726,7 +727,7 @@ msgstr "" "Los filtros de compresión soportan las siguientes opciones (especificadas " "como entradas adicionales:" -#: ../Doc/library/lzma.rst:356 +#: ../Doc/library/lzma.rst:357 msgid "" "``preset``: A compression preset to use as a source of default values for " "options that are not specified explicitly." @@ -734,7 +735,7 @@ msgstr "" "``preset``: Un ajuste de compresión a utilizar como una fuente de valores " "por defecto para opciones que no están especificadas explícitamente." -#: ../Doc/library/lzma.rst:358 +#: ../Doc/library/lzma.rst:359 msgid "" "``dict_size``: Dictionary size in bytes. This should be between 4 KiB and " "1.5 GiB (inclusive)." @@ -742,11 +743,11 @@ msgstr "" "``dict_size``: Tamaño del diccionario en bytes. Esto debería estar entre 4 " "kiB y 1.5 GiB (inclusive)." -#: ../Doc/library/lzma.rst:360 +#: ../Doc/library/lzma.rst:361 msgid "``lc``: Number of literal context bits." msgstr "``lc`` Número de bits de contexto literal." -#: ../Doc/library/lzma.rst:361 +#: ../Doc/library/lzma.rst:362 msgid "" "``lp``: Number of literal position bits. The sum ``lc + lp`` must be at most " "4." @@ -754,15 +755,15 @@ msgstr "" "``lp``: Número de bits de posición literal. La suma ``lc + lp`` debe ser al " "menos 4." -#: ../Doc/library/lzma.rst:363 +#: ../Doc/library/lzma.rst:364 msgid "``pb``: Number of position bits; must be at most 4." msgstr "``pb``: Número de bits de posición; debe ser al menos 4." -#: ../Doc/library/lzma.rst:364 +#: ../Doc/library/lzma.rst:365 msgid "``mode``: :const:`MODE_FAST` or :const:`MODE_NORMAL`." msgstr "``mode``: :const:`MODE_FAST` o :const:`MODE_NORMAL`." -#: ../Doc/library/lzma.rst:365 +#: ../Doc/library/lzma.rst:366 msgid "" "``nice_len``: What should be considered a \"nice length\" for a match. This " "should be 273 or less." @@ -770,7 +771,7 @@ msgstr "" "``nice_len``: Lo que debería ser considerado una \"buena longitud\" para una " "coincidencia. Esto debería ser 273 o menos." -#: ../Doc/library/lzma.rst:367 +#: ../Doc/library/lzma.rst:368 msgid "" "``mf``: What match finder to use -- :const:`MF_HC3`, :const:`MF_HC4`, :const:" "`MF_BT2`, :const:`MF_BT3`, or :const:`MF_BT4`." @@ -778,7 +779,7 @@ msgstr "" "``mf``: Qué buscador de coincidencias utilizar -- :const:`MF_HC3`, :const:" "`MF_HC4`. :const:`MF_BT2`, :const:`MF_BT3`, o :const:`MF_BT4`." -#: ../Doc/library/lzma.rst:369 +#: ../Doc/library/lzma.rst:370 msgid "" "``depth``: Maximum search depth used by match finder. 0 (default) means to " "select automatically based on other filter options." @@ -787,7 +788,7 @@ msgstr "" "coincidencias. 0 (por defecto) significa seleccionar automáticamente basado " "en otras opciones de filtro." -#: ../Doc/library/lzma.rst:372 +#: ../Doc/library/lzma.rst:373 msgid "" "The delta filter stores the differences between bytes, producing more " "repetitive input for the compressor in certain circumstances. It supports " @@ -800,7 +801,7 @@ msgstr "" "opción, ``dist``. Esto indica la distancia entre bytes a ser sustraída. Por " "defecto es 1, por ejemplo toma las diferencias entre bytes adyacentes." -#: ../Doc/library/lzma.rst:377 +#: ../Doc/library/lzma.rst:378 msgid "" "The BCJ filters are intended to be applied to machine code. They convert " "relative branches, calls and jumps in the code to use absolute addressing, " @@ -816,31 +817,31 @@ msgstr "" "``start_offset``. Esto especifica la dirección que debería ser mapeada al " "comienzo de la entrada de información. Por defecto es 0." -#: ../Doc/library/lzma.rst:385 +#: ../Doc/library/lzma.rst:386 msgid "Examples" msgstr "Ejemplos" -#: ../Doc/library/lzma.rst:387 +#: ../Doc/library/lzma.rst:388 msgid "Reading in a compressed file::" msgstr "Leyendo un fichero comprimido::" -#: ../Doc/library/lzma.rst:393 +#: ../Doc/library/lzma.rst:394 msgid "Creating a compressed file::" msgstr "Creando un fichero comprimido::" -#: ../Doc/library/lzma.rst:400 +#: ../Doc/library/lzma.rst:401 msgid "Compressing data in memory::" msgstr "Comprimiendo información en memoria::" -#: ../Doc/library/lzma.rst:406 +#: ../Doc/library/lzma.rst:407 msgid "Incremental compression::" msgstr "Compresión incremental::" -#: ../Doc/library/lzma.rst:417 +#: ../Doc/library/lzma.rst:418 msgid "Writing compressed data to an already-open file::" msgstr "Escribiendo información comprimida en fichero ya abierto::" -#: ../Doc/library/lzma.rst:426 +#: ../Doc/library/lzma.rst:427 msgid "Creating a compressed file using a custom filter chain::" msgstr "" "Creando un fichero comprimido utilizando una cadena de filtro personalizada::" diff --git a/library/mailbox.po b/library/mailbox.po index d572c02271..eacbb296c3 100644 --- a/library/mailbox.po +++ b/library/mailbox.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-04 21:38+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/mailbox.rst:2 msgid ":mod:`mailbox` --- Manipulate mailboxes in various formats" @@ -789,9 +789,10 @@ msgstr "" #: ../Doc/library/mailbox.rst:479 ../Doc/library/mailbox.rst:688 #: ../Doc/library/mailbox.rst:739 +#, fuzzy msgid "" "Three locking mechanisms are used---dot locking and, if available, the :c:" -"func:`flock` and :c:func:`lockf` system calls." +"func:`!flock` and :c:func:`!lockf` system calls." msgstr "" "Se utilizan tres mecanismos de bloqueo... el bloqueo por puntos y, si está " "disponible, las llamadas del sistema :c:func:`flock` y :c:func:`lockf`." @@ -965,10 +966,11 @@ msgstr "" "del MH de marcar un mensaje para borrarlo poniendo una coma en su nombre." #: ../Doc/library/mailbox.rst:590 +#, fuzzy msgid "" "Three locking mechanisms are used---dot locking and, if available, the :c:" -"func:`flock` and :c:func:`lockf` system calls. For MH mailboxes, locking the " -"mailbox means locking the :file:`.mh_sequences` file and, only for the " +"func:`!flock` and :c:func:`!lockf` system calls. For MH mailboxes, locking " +"the mailbox means locking the :file:`.mh_sequences` file and, only for the " "duration of any operations that affect them, locking individual message " "files." msgstr "" diff --git a/library/marshal.po b/library/marshal.po index f07791b46d..2f6abec4e4 100644 --- a/library/marshal.po +++ b/library/marshal.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-16 21:42+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-01-05 16:41+0100\n" "Last-Translator: Marcos Medrano \n" "Language: es_AR\n" @@ -19,8 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.9.1\n" -"X-Generator: Poedit 3.0\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/marshal.rst:2 msgid ":mod:`marshal` --- Internal Python object serialization" @@ -274,3 +273,27 @@ msgstr "" "Estrictamente hablando \"marshalling\", significa convertir algunos datos " "internos en un formato externo (por ejemplo, en un búfer RPC) y " "\"unmarshalling\" es el proceso inverso." + +#: ../Doc/library/marshal.rst:17 +msgid "module" +msgstr "" + +#: ../Doc/library/marshal.rst:17 +msgid "pickle" +msgstr "" + +#: ../Doc/library/marshal.rst:17 +msgid "shelve" +msgstr "" + +#: ../Doc/library/marshal.rst:37 +msgid "object" +msgstr "" + +#: ../Doc/library/marshal.rst:37 +msgid "code" +msgstr "" + +#: ../Doc/library/marshal.rst:37 +msgid "code object" +msgstr "" diff --git a/library/math.po b/library/math.po index 097f47bc47..ef6e770b35 100644 --- a/library/math.po +++ b/library/math.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-25 02:25-0500\n" "Last-Translator: Francisco Jesús Sevilla García \n" -"Language-Team: python-doc-es\n" "Language: es_ES\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/math.rst:2 msgid ":mod:`math` --- Mathematical functions" @@ -102,7 +101,7 @@ msgstr "" "También llamado coeficiente binomial porque es equivalente al coeficiente " "del k-ésimo término en la expansión polinomial de ``(1 + x)ⁿ``." -#: ../Doc/library/math.rst:51 ../Doc/library/math.rst:260 +#: ../Doc/library/math.rst:51 ../Doc/library/math.rst:258 msgid "" "Raises :exc:`TypeError` if either of the arguments are not integers. Raises :" "exc:`ValueError` if either of the arguments are negative." @@ -192,15 +191,16 @@ msgstr "" "representación interna de un flotante." #: ../Doc/library/math.rst:110 +#, fuzzy msgid "" "Return an accurate floating point sum of values in the iterable. Avoids " -"loss of precision by tracking multiple intermediate partial sums::" +"loss of precision by tracking multiple intermediate partial sums." msgstr "" "Retorna una suma precisa en coma flotante de los valores de un iterable. " "Evita la pérdida de precisión mediante el seguimiento de múltiples sumas " "parciales intermedias::" -#: ../Doc/library/math.rst:118 +#: ../Doc/library/math.rst:113 msgid "" "The algorithm's accuracy depends on IEEE-754 arithmetic guarantees and the " "typical case where the rounding mode is half-even. On some non-Windows " @@ -215,7 +215,7 @@ msgstr "" "ocasionalmente, puede realizar un doble redondeo en una suma intermedia, " "haciendo que el bit menos significativo tome el valor incorrecto." -#: ../Doc/library/math.rst:124 +#: ../Doc/library/math.rst:119 msgid "" "For further discussion and two alternative approaches, see the `ASPN " "cookbook recipes for accurate floating point summation `_\\." -#: ../Doc/library/math.rst:131 +#: ../Doc/library/math.rst:126 msgid "" "Return the greatest common divisor of the specified integer arguments. If " "any of the arguments is nonzero, then the returned value is the largest " @@ -239,7 +239,7 @@ msgstr "" "cero, entonces el valor retornado es ``0``. ``gcd()`` sin argumentos retorna " "``0``." -#: ../Doc/library/math.rst:139 +#: ../Doc/library/math.rst:134 msgid "" "Added support for an arbitrary number of arguments. Formerly, only two " "arguments were supported." @@ -247,7 +247,7 @@ msgstr "" "Agregado soporte para un número arbitrario de argumentos. Anteriormente sólo " "se soportaba dos argumentos." -#: ../Doc/library/math.rst:146 +#: ../Doc/library/math.rst:141 msgid "" "Return ``True`` if the values *a* and *b* are close to each other and " "``False`` otherwise." @@ -255,7 +255,7 @@ msgstr "" "Retorna ``True`` si los valores *a* y *b* están cerca el uno del otro y " "``False`` en caso contrario." -#: ../Doc/library/math.rst:149 +#: ../Doc/library/math.rst:144 msgid "" "Whether or not two values are considered close is determined according to " "given absolute and relative tolerances." @@ -263,7 +263,7 @@ msgstr "" "Que dos valores se consideren cercanos o no, se determina de acuerdo con las " "tolerancias absolutas y relativas dadas." -#: ../Doc/library/math.rst:152 +#: ../Doc/library/math.rst:147 msgid "" "*rel_tol* is the relative tolerance -- it is the maximum allowed difference " "between *a* and *b*, relative to the larger absolute value of *a* or *b*. " @@ -278,7 +278,7 @@ msgstr "" "sean iguales considerando 9 dígitos decimales aproximadamente. *rel_tol* " "debe ser mayor que cero." -#: ../Doc/library/math.rst:158 +#: ../Doc/library/math.rst:153 msgid "" "*abs_tol* is the minimum absolute tolerance -- useful for comparisons near " "zero. *abs_tol* must be at least zero." @@ -286,7 +286,7 @@ msgstr "" "*abs_tol* es la tolerancia absoluta mínima, útil para las comparaciones " "cercanas a cero. *abs_tol* debe valer al menos cero." -#: ../Doc/library/math.rst:161 +#: ../Doc/library/math.rst:156 msgid "" "If no errors occur, the result will be: ``abs(a-b) <= max(rel_tol * " "max(abs(a), abs(b)), abs_tol)``." @@ -294,7 +294,7 @@ msgstr "" "Si no se encuentran errores, el resultado será: ``abs(a-b) <= max(rel_tol * " "max(abs(a), abs(b)), abs_tol)``." -#: ../Doc/library/math.rst:164 +#: ../Doc/library/math.rst:159 msgid "" "The IEEE 754 special values of ``NaN``, ``inf``, and ``-inf`` will be " "handled according to IEEE rules. Specifically, ``NaN`` is not considered " @@ -306,11 +306,11 @@ msgstr "" "cercano a ningún otro valor, incluido ``NaN``. Por su parte, ``inf`` e ``-" "inf`` solo se consideran cercanos a sí mismos." -#: ../Doc/library/math.rst:173 +#: ../Doc/library/math.rst:168 msgid ":pep:`485` -- A function for testing approximate equality" msgstr ":pep:`485` -- Una función para comprobar la igualdad aproximada" -#: ../Doc/library/math.rst:178 +#: ../Doc/library/math.rst:173 msgid "" "Return ``True`` if *x* is neither an infinity nor a NaN, and ``False`` " "otherwise. (Note that ``0.0`` *is* considered finite.)" @@ -318,7 +318,7 @@ msgstr "" "Retorna ``True`` si *x* no es infinito ni NaN, o ``False`` en caso " "contrario. (Ten en cuenta que ``0.0`` *es* considerado finito.)" -#: ../Doc/library/math.rst:186 +#: ../Doc/library/math.rst:181 msgid "" "Return ``True`` if *x* is a positive or negative infinity, and ``False`` " "otherwise." @@ -326,14 +326,14 @@ msgstr "" "Retorna ``True`` si *x* es infinito positivo o negativo, o ``False`` en caso " "contrario." -#: ../Doc/library/math.rst:192 +#: ../Doc/library/math.rst:187 msgid "" "Return ``True`` if *x* is a NaN (not a number), and ``False`` otherwise." msgstr "" "Retorna ``True`` si *x* es NaN (not a number, en español: no es un número), " "o ``False`` en caso contrario." -#: ../Doc/library/math.rst:197 +#: ../Doc/library/math.rst:192 msgid "" "Return the integer square root of the nonnegative integer *n*. This is the " "floor of the exact square root of *n*, or equivalently the greatest integer " @@ -343,7 +343,7 @@ msgstr "" "de aplicar la función suelo al valor exacto de la raíz cuadrada de *n*, o de " "forma equivalente, el mayor entero *a* tal que *a*\\ ² |nbsp| ≤ |nbsp| *n*." -#: ../Doc/library/math.rst:201 +#: ../Doc/library/math.rst:196 msgid "" "For some applications, it may be more convenient to have the least integer " "*a* such that *n* |nbsp| ≤ |nbsp| *a*\\ ², or in other words the ceiling of " @@ -355,7 +355,7 @@ msgstr "" "resultado de aplicar la función techo a la raíz cuadrada exacta de *n*. Para " "*n* positivo, esto se puede calcular usando ``a = 1 + isqrt(n - 1)``." -#: ../Doc/library/math.rst:211 +#: ../Doc/library/math.rst:206 msgid "" "Return the least common multiple of the specified integer arguments. If all " "arguments are nonzero, then the returned value is the smallest positive " @@ -369,7 +369,7 @@ msgstr "" "argumentos es cero, entonces el valor retornado es ``0``. ``lcm()`` sin " "argumentos retorna ``1``." -#: ../Doc/library/math.rst:222 +#: ../Doc/library/math.rst:217 msgid "" "Return ``x * (2**i)``. This is essentially the inverse of function :func:" "`frexp`." @@ -377,7 +377,7 @@ msgstr "" "Retorna ``x * (2**i)``. Esta es esencialmente la función inversa de :func:" "`frexp`." -#: ../Doc/library/math.rst:228 +#: ../Doc/library/math.rst:223 msgid "" "Return the fractional and integer parts of *x*. Both results carry the sign " "of *x* and are floats." @@ -385,40 +385,46 @@ msgstr "" "Retorna la parte fraccionaria y entera de *x*. Ambos resultados son " "flotantes y tienen el mismo signo que *x* ." -#: ../Doc/library/math.rst:234 -msgid "Return the next floating-point value after *x* towards *y*." +#: ../Doc/library/math.rst:229 +#, fuzzy +msgid "Return the floating-point value *steps* steps after *x* towards *y*." msgstr "" "Retorna el siguiente valor flotante después de *x* en la dirección de *y*." -#: ../Doc/library/math.rst:236 -msgid "If *x* is equal to *y*, return *y*." +#: ../Doc/library/math.rst:231 +#, fuzzy +msgid "If *x* is equal to *y*, return *y*, unless *steps* is zero." msgstr "Si *x* es igual a *y*, retorna *y*." -#: ../Doc/library/math.rst:238 +#: ../Doc/library/math.rst:233 msgid "Examples:" msgstr "Ejemplos:" -#: ../Doc/library/math.rst:240 +#: ../Doc/library/math.rst:235 msgid "``math.nextafter(x, math.inf)`` goes up: towards positive infinity." msgstr "``math.nextafter(x, math.inf)`` va hacia el infinito positivo." -#: ../Doc/library/math.rst:241 +#: ../Doc/library/math.rst:236 msgid "``math.nextafter(x, -math.inf)`` goes down: towards minus infinity." msgstr "``math.nextafter(x, -math.inf)`` va hacia el infinito negativo." -#: ../Doc/library/math.rst:242 +#: ../Doc/library/math.rst:237 msgid "``math.nextafter(x, 0.0)`` goes towards zero." msgstr "``math.nextafter(x, 0.0)`` va hacia cero." -#: ../Doc/library/math.rst:243 +#: ../Doc/library/math.rst:238 msgid "``math.nextafter(x, math.copysign(math.inf, x))`` goes away from zero." msgstr "``math.nextafter(x, math.copysign(math.inf, x))`` se aleja de cero." -#: ../Doc/library/math.rst:245 +#: ../Doc/library/math.rst:240 msgid "See also :func:`math.ulp`." msgstr "Ver también :func:`math.ulp`." -#: ../Doc/library/math.rst:251 +#: ../Doc/library/math.rst:242 +msgid "Added the *steps* argument." +msgstr "" + +#: ../Doc/library/math.rst:249 msgid "" "Return the number of ways to choose *k* items from *n* items without " "repetition and with order." @@ -426,7 +432,7 @@ msgstr "" "Retorna el número de formas posibles de elegir *k* elementos de *n* " "elementos, sin repetición y en orden." -#: ../Doc/library/math.rst:254 +#: ../Doc/library/math.rst:252 msgid "" "Evaluates to ``n! / (n - k)!`` when ``k <= n`` and evaluates to zero when " "``k > n``." @@ -434,7 +440,7 @@ msgstr "" "Se evalúa como ``n! / (n - k)!`` cuando ``k <= n`` y como cero cuando ``k > " "n``." -#: ../Doc/library/math.rst:257 +#: ../Doc/library/math.rst:255 msgid "" "If *k* is not specified or is None, then *k* defaults to *n* and the " "function returns ``n!``." @@ -442,7 +448,7 @@ msgstr "" "Si *k* no se especifica o es None, *k* será igual a *n* por defecto y la " "función retornará ``n!``." -#: ../Doc/library/math.rst:268 +#: ../Doc/library/math.rst:266 msgid "" "Calculate the product of all the elements in the input *iterable*. The " "default *start* value for the product is ``1``." @@ -450,7 +456,7 @@ msgstr "" "Calcula el producto de todos los elementos en la entrada *iterable*. El " "valor *start* predeterminado para el producto es ``1``." -#: ../Doc/library/math.rst:271 +#: ../Doc/library/math.rst:269 msgid "" "When the iterable is empty, return the start value. This function is " "intended specifically for use with numeric values and may reject non-numeric " @@ -460,7 +466,7 @@ msgstr "" "diseñada específicamente para su uso con valores numéricos y puede rechazar " "tipos no numéricos." -#: ../Doc/library/math.rst:280 +#: ../Doc/library/math.rst:278 msgid "" "Return the IEEE 754-style remainder of *x* with respect to *y*. For finite " "*x* and finite nonzero *y*, this is the difference ``x - n*y``, where ``n`` " @@ -477,7 +483,7 @@ msgstr "" "``n``. Por lo tanto, el residuo ``r = remainder(x, y)`` siempre satisface " "``abs(r) <= 0.5 * abs(y)``." -#: ../Doc/library/math.rst:287 +#: ../Doc/library/math.rst:285 msgid "" "Special cases follow IEEE 754: in particular, ``remainder(x, math.inf)`` is " "*x* for any finite *x*, and ``remainder(x, 0)`` and ``remainder(math.inf, " @@ -490,7 +496,7 @@ msgstr "" "`ValueError` para todo *x* que no sea NaN. Si el resultado de la operación " "residuo es cero, este cero tendrá el mismo signo que *x*." -#: ../Doc/library/math.rst:293 +#: ../Doc/library/math.rst:291 msgid "" "On platforms using IEEE 754 binary floating-point, the result of this " "operation is always exactly representable: no rounding error is introduced." @@ -499,7 +505,25 @@ msgstr "" "binarios, el resultado de esta operación siempre es exactamente " "representable: no se introduce ningún error de redondeo." +#: ../Doc/library/math.rst:299 +msgid "Return the sum of products of values from two iterables *p* and *q*." +msgstr "" + #: ../Doc/library/math.rst:301 +msgid "Raises :exc:`ValueError` if the inputs do not have the same length." +msgstr "" + +#: ../Doc/library/math.rst:303 ../Doc/library/math.rst:498 +msgid "Roughly equivalent to::" +msgstr "Aproximadamente equivalente a::" + +#: ../Doc/library/math.rst:307 +msgid "" +"For float and mixed int/float inputs, the intermediate products and sums are " +"computed with extended precision." +msgstr "" + +#: ../Doc/library/math.rst:315 msgid "" "Return *x* with the fractional part removed, leaving the integer part. This " "rounds toward 0: ``trunc()`` is equivalent to :func:`floor` for positive " @@ -513,23 +537,23 @@ msgstr "" "flotante, delega a :meth:`x.__trunc__ `, que debería " "retornar un valor :class:`~numbers.Integral`." -#: ../Doc/library/math.rst:309 +#: ../Doc/library/math.rst:323 msgid "Return the value of the least significant bit of the float *x*:" msgstr "Retorna el valor del bit menos significativo del flotante *x*:" -#: ../Doc/library/math.rst:311 +#: ../Doc/library/math.rst:325 msgid "If *x* is a NaN (not a number), return *x*." msgstr "Si *x* es un NaN (*not a number*), retorna *x*." -#: ../Doc/library/math.rst:312 +#: ../Doc/library/math.rst:326 msgid "If *x* is negative, return ``ulp(-x)``." msgstr "Si *x* es negativo, retorna ``ulp(-x)``." -#: ../Doc/library/math.rst:313 +#: ../Doc/library/math.rst:327 msgid "If *x* is a positive infinity, return *x*." msgstr "Si *x* es un infinito positivo, retorna *x*." -#: ../Doc/library/math.rst:314 +#: ../Doc/library/math.rst:328 msgid "" "If *x* is equal to zero, return the smallest positive *denormalized* " "representable float (smaller than the minimum positive *normalized* float, :" @@ -539,7 +563,7 @@ msgstr "" "positivo más pequeño (menor que el flotante *normalizado* positivo mínimo, :" "data:`sys.float_info.min `)." -#: ../Doc/library/math.rst:317 +#: ../Doc/library/math.rst:331 msgid "" "If *x* is equal to the largest positive representable float, return the " "value of the least significant bit of *x*, such that the first float smaller " @@ -549,7 +573,7 @@ msgstr "" "bit menos significativo de *x*, de tal manera que el primer flotante menor " "que *x* es ``x - ulp(x)``." -#: ../Doc/library/math.rst:320 +#: ../Doc/library/math.rst:334 msgid "" "Otherwise (*x* is a positive finite number), return the value of the least " "significant bit of *x*, such that the first float bigger than *x* is ``x + " @@ -559,11 +583,11 @@ msgstr "" "menos significativo de *x* , de tal forma que el primer flotante mayor a *x* " "es ``x + ulp(x)``." -#: ../Doc/library/math.rst:324 +#: ../Doc/library/math.rst:338 msgid "ULP stands for \"Unit in the Last Place\"." msgstr "ULP significa *Unit in the Last Place* (unidad en el último lugar)." -#: ../Doc/library/math.rst:326 +#: ../Doc/library/math.rst:340 msgid "" "See also :func:`math.nextafter` and :data:`sys.float_info.epsilon `." @@ -571,7 +595,7 @@ msgstr "" "Ver también :func:`math.nextafter` y :data:`sys.float_info.epsilon `." -#: ../Doc/library/math.rst:332 +#: ../Doc/library/math.rst:346 msgid "" "Note that :func:`frexp` and :func:`modf` have a different call/return " "pattern than their C equivalents: they take a single argument and return a " @@ -583,7 +607,7 @@ msgstr "" "retornan un par de valores, en lugar de retornar su segundo valor de retorno " "a través de un `parámetro de salida` (no existe tal cosa en Python)." -#: ../Doc/library/math.rst:337 +#: ../Doc/library/math.rst:351 msgid "" "For the :func:`ceil`, :func:`floor`, and :func:`modf` functions, note that " "*all* floating-point numbers of sufficiently large magnitude are exact " @@ -598,15 +622,15 @@ msgstr "" "cuyo caso cualquier flotante *x* con ``abs(x) >= 2**52`` no necesariamente " "tiene bits fraccionarios." -#: ../Doc/library/math.rst:345 +#: ../Doc/library/math.rst:359 msgid "Power and logarithmic functions" msgstr "Funciones logarítmicas y exponenciales" -#: ../Doc/library/math.rst:349 +#: ../Doc/library/math.rst:363 msgid "Return the cube root of *x*." msgstr "Retorna la raíz cúbica de *x*." -#: ../Doc/library/math.rst:356 +#: ../Doc/library/math.rst:370 msgid "" "Return *e* raised to the power *x*, where *e* = 2.718281... is the base of " "natural logarithms. This is usually more accurate than ``math.e ** x`` or " @@ -616,17 +640,18 @@ msgstr "" "los logaritmos naturales. Esto generalmente es más preciso que ``math.e ** " "x`` o ``pow(math.e, x)``." -#: ../Doc/library/math.rst:363 +#: ../Doc/library/math.rst:377 msgid "Return *2* raised to the power *x*." msgstr "Retorna *2* elevado a la potencia *x*." -#: ../Doc/library/math.rst:370 +#: ../Doc/library/math.rst:384 +#, fuzzy msgid "" "Return *e* raised to the power *x*, minus 1. Here *e* is the base of " "natural logarithms. For small floats *x*, the subtraction in ``exp(x) - 1`` " "can result in a `significant loss of precision `_\\; the :func:`expm1` function provides a way to " -"compute this quantity to full precision::" +"compute this quantity to full precision:" msgstr "" "Retorna *e* elevado a la *x* potencia, menos 1. Aquí *e* es la base de los " "logaritmos naturales. Para flotantes *x* pequeños, la resta en ``exp(x) - " @@ -634,11 +659,11 @@ msgstr "" "wikipedia.org/wiki/Loss_of_significance>`_\\; la función :func:`expm1` " "proporciona una forma de calcular este valor con una precisión total::" -#: ../Doc/library/math.rst:387 +#: ../Doc/library/math.rst:401 msgid "With one argument, return the natural logarithm of *x* (to base *e*)." msgstr "Con un argumento, retorna el logaritmo natural de *x* (en base *e*)." -#: ../Doc/library/math.rst:389 +#: ../Doc/library/math.rst:403 msgid "" "With two arguments, return the logarithm of *x* to the given *base*, " "calculated as ``log(x)/log(base)``." @@ -646,7 +671,7 @@ msgstr "" "Con dos argumentos, retorna el logaritmo de *x* en la *base* dada, calculado " "como ``log(x)/log(base)``." -#: ../Doc/library/math.rst:395 +#: ../Doc/library/math.rst:409 msgid "" "Return the natural logarithm of *1+x* (base *e*). The result is calculated " "in a way which is accurate for *x* near zero." @@ -654,7 +679,7 @@ msgstr "" "Retorna el logaritmo natural de *1+x* (base *e*). El resultado se calcula de " "forma precisa para *x* cercano a cero." -#: ../Doc/library/math.rst:401 +#: ../Doc/library/math.rst:415 msgid "" "Return the base-2 logarithm of *x*. This is usually more accurate than " "``log(x, 2)``." @@ -662,7 +687,7 @@ msgstr "" "Retorna el logaritmo en base 2 de *x*. Esto suele ser más preciso que " "``log(x, 2)``." -#: ../Doc/library/math.rst:408 +#: ../Doc/library/math.rst:422 msgid "" ":meth:`int.bit_length` returns the number of bits necessary to represent an " "integer in binary, excluding the sign and leading zeros." @@ -670,7 +695,7 @@ msgstr "" ":meth:`int.bit_length` retorna el número de bits necesarios para representar " "un entero en binario, excluyendo el signo y los ceros iniciales." -#: ../Doc/library/math.rst:414 +#: ../Doc/library/math.rst:428 msgid "" "Return the base-10 logarithm of *x*. This is usually more accurate than " "``log(x, 10)``." @@ -678,7 +703,7 @@ msgstr "" "Retorna el logaritmo en base 10 de *x*. Esto suele ser más preciso que " "``log(x, 10)``." -#: ../Doc/library/math.rst:420 +#: ../Doc/library/math.rst:434 msgid "" "Return ``x`` raised to the power ``y``. Exceptional cases follow the IEEE " "754 standard as far as possible. In particular, ``pow(1.0, x)`` and " @@ -693,7 +718,7 @@ msgstr "" "un número entero, entonces ``pow(x, y)`` no está definido y se lanza una " "excepción :exc:`ValueError`." -#: ../Doc/library/math.rst:427 +#: ../Doc/library/math.rst:441 msgid "" "Unlike the built-in ``**`` operator, :func:`math.pow` converts both its " "arguments to type :class:`float`. Use ``**`` or the built-in :func:`pow` " @@ -703,7 +728,7 @@ msgstr "" "ambos argumentos al tipo :class:`float`. Utiliza ``**`` o la función " "incorporada :func:`pow` para calcular potencias enteras exactas." -#: ../Doc/library/math.rst:431 +#: ../Doc/library/math.rst:445 msgid "" "The special cases ``pow(0.0, -inf)`` and ``pow(-0.0, -inf)`` were changed to " "return ``inf`` instead of raising :exc:`ValueError`, for consistency with " @@ -713,15 +738,15 @@ msgstr "" "para devolver ``inf`` en lugar de generar :exc:`ValueError`, por " "consistencia con IEEE 754." -#: ../Doc/library/math.rst:439 +#: ../Doc/library/math.rst:453 msgid "Return the square root of *x*." msgstr "Retorna la raíz cuadrada de *x*." -#: ../Doc/library/math.rst:443 +#: ../Doc/library/math.rst:457 msgid "Trigonometric functions" msgstr "Funciones trigonométricas" -#: ../Doc/library/math.rst:447 +#: ../Doc/library/math.rst:461 msgid "" "Return the arc cosine of *x*, in radians. The result is between ``0`` and " "``pi``." @@ -729,7 +754,7 @@ msgstr "" "Retorna el arcocoseno de *x*, en radianes. El resultado está entre ``0`` y " "``pi``." -#: ../Doc/library/math.rst:453 +#: ../Doc/library/math.rst:467 msgid "" "Return the arc sine of *x*, in radians. The result is between ``-pi/2`` and " "``pi/2``." @@ -737,7 +762,7 @@ msgstr "" "Retorna el arcoseno de *x*, en radianes. El resultado está entre ``-pi/2`` y " "``pi/2``." -#: ../Doc/library/math.rst:459 +#: ../Doc/library/math.rst:473 msgid "" "Return the arc tangent of *x*, in radians. The result is between ``-pi/2`` " "and ``pi/2``." @@ -745,7 +770,7 @@ msgstr "" "Retorna la arcotangente de *x*, en radianes. El resultado está entre ``-" "pi/2`` y ``pi/2``." -#: ../Doc/library/math.rst:465 +#: ../Doc/library/math.rst:479 msgid "" "Return ``atan(y / x)``, in radians. The result is between ``-pi`` and " "``pi``. The vector in the plane from the origin to point ``(x, y)`` makes " @@ -761,11 +786,11 @@ msgstr "" "cuadrante correcto para el ángulo. Por ejemplo, ``atan(1)`` y ``atan2(1, " "1)`` son ambas ``pi/4``, pero ``atan2(-1, -1)`` es ``-3*pi/4``." -#: ../Doc/library/math.rst:475 +#: ../Doc/library/math.rst:489 msgid "Return the cosine of *x* radians." msgstr "Retorna el coseno de *x* radianes." -#: ../Doc/library/math.rst:480 +#: ../Doc/library/math.rst:494 msgid "" "Return the Euclidean distance between two points *p* and *q*, each given as " "a sequence (or iterable) of coordinates. The two points must have the same " @@ -775,11 +800,7 @@ msgstr "" "ellos dado como una secuencia (o iterable) de coordenadas. Los dos puntos " "deben tener la misma dimensión." -#: ../Doc/library/math.rst:484 -msgid "Roughly equivalent to::" -msgstr "Aproximadamente equivalente a::" - -#: ../Doc/library/math.rst:493 +#: ../Doc/library/math.rst:507 msgid "" "Return the Euclidean norm, ``sqrt(sum(x**2 for x in coordinates))``. This is " "the length of the vector from the origin to the point given by the " @@ -789,7 +810,7 @@ msgstr "" "es la longitud del vector que va desde el origen hasta el punto dado por las " "coordenadas." -#: ../Doc/library/math.rst:497 +#: ../Doc/library/math.rst:511 msgid "" "For a two dimensional point ``(x, y)``, this is equivalent to computing the " "hypotenuse of a right triangle using the Pythagorean theorem, ``sqrt(x*x + " @@ -799,7 +820,7 @@ msgstr "" "hipotenusa de un triángulo rectángulo usando el teorema de Pitágoras, " "``sqrt(x*x + y*y)``." -#: ../Doc/library/math.rst:501 +#: ../Doc/library/math.rst:515 msgid "" "Added support for n-dimensional points. Formerly, only the two dimensional " "case was supported." @@ -807,7 +828,7 @@ msgstr "" "Agregado soporte para puntos n-dimensionales. Anteriormente, solo se admitía " "el caso bidimensional." -#: ../Doc/library/math.rst:505 +#: ../Doc/library/math.rst:519 msgid "" "Improved the algorithm's accuracy so that the maximum error is under 1 ulp " "(unit in the last place). More typically, the result is almost always " @@ -817,33 +838,34 @@ msgstr "" "1 ulp (unidad en último lugar). Más típicamente, el resultado casi siempre " "se redondea correctamente dentro de 1/2 ulp." -#: ../Doc/library/math.rst:513 +#: ../Doc/library/math.rst:527 msgid "Return the sine of *x* radians." msgstr "Retorna el seno de *x* radianes." -#: ../Doc/library/math.rst:518 +#: ../Doc/library/math.rst:532 msgid "Return the tangent of *x* radians." msgstr "Retorna la tangente de *x* radianes." -#: ../Doc/library/math.rst:522 +#: ../Doc/library/math.rst:536 msgid "Angular conversion" msgstr "Conversión angular" -#: ../Doc/library/math.rst:526 +#: ../Doc/library/math.rst:540 msgid "Convert angle *x* from radians to degrees." msgstr "Convierte el ángulo *x* de radianes a grados." -#: ../Doc/library/math.rst:531 +#: ../Doc/library/math.rst:545 msgid "Convert angle *x* from degrees to radians." msgstr "Convierte el ángulo *x* de grados a radianes." -#: ../Doc/library/math.rst:535 +#: ../Doc/library/math.rst:549 msgid "Hyperbolic functions" msgstr "Funciones hiperbólicas" -#: ../Doc/library/math.rst:537 +#: ../Doc/library/math.rst:551 +#, fuzzy msgid "" -"`Hyperbolic functions `_ " +"`Hyperbolic functions `_ " "are analogs of trigonometric functions that are based on hyperbolas instead " "of circles." msgstr "" @@ -851,35 +873,35 @@ msgstr "" "Funci%C3%B3n_hiperb%C3%B3lica>`_ son análogas a las funciones " "trigonométricas pero basadas en hipérbolas en lugar de en círculos." -#: ../Doc/library/math.rst:543 +#: ../Doc/library/math.rst:557 msgid "Return the inverse hyperbolic cosine of *x*." msgstr "Retorna el coseno hiperbólico inverso de *x*." -#: ../Doc/library/math.rst:548 +#: ../Doc/library/math.rst:562 msgid "Return the inverse hyperbolic sine of *x*." msgstr "Retorna el seno hiperbólico inverso de *x*." -#: ../Doc/library/math.rst:553 +#: ../Doc/library/math.rst:567 msgid "Return the inverse hyperbolic tangent of *x*." msgstr "Retorna la tangente hiperbólica inversa de *x*." -#: ../Doc/library/math.rst:558 +#: ../Doc/library/math.rst:572 msgid "Return the hyperbolic cosine of *x*." msgstr "Retorna el coseno hiperbólico de *x*." -#: ../Doc/library/math.rst:563 +#: ../Doc/library/math.rst:577 msgid "Return the hyperbolic sine of *x*." msgstr "Retorna el seno hiperbólico de *x*." -#: ../Doc/library/math.rst:568 +#: ../Doc/library/math.rst:582 msgid "Return the hyperbolic tangent of *x*." msgstr "Retorna la tangente hiperbólica de *x*." -#: ../Doc/library/math.rst:572 +#: ../Doc/library/math.rst:586 msgid "Special functions" msgstr "Funciones especiales" -#: ../Doc/library/math.rst:576 +#: ../Doc/library/math.rst:590 msgid "" "Return the `error function `_ " "at *x*." @@ -887,7 +909,7 @@ msgstr "" "Retorna la `función error `_ en *x*." -#: ../Doc/library/math.rst:579 +#: ../Doc/library/math.rst:593 msgid "" "The :func:`erf` function can be used to compute traditional statistical " "functions such as the `cumulative standard normal distribution `_::" -#: ../Doc/library/math.rst:592 +#: ../Doc/library/math.rst:606 msgid "" "Return the complementary error function at *x*. The `complementary error " "function `_ is defined as " @@ -912,7 +934,7 @@ msgstr "" "resta de 1 causaría una `pérdida de presición `_\\." -#: ../Doc/library/math.rst:603 +#: ../Doc/library/math.rst:617 msgid "" "Return the `Gamma function `_ " "at *x*." @@ -920,28 +942,28 @@ msgstr "" "Retorna la `función gamma `_ en *x*." -#: ../Doc/library/math.rst:611 +#: ../Doc/library/math.rst:625 msgid "" "Return the natural logarithm of the absolute value of the Gamma function at " "*x*." msgstr "" "Retorna el logaritmo natural del valor absoluto de la función gamma en *x*." -#: ../Doc/library/math.rst:618 +#: ../Doc/library/math.rst:632 msgid "Constants" msgstr "Constantes" -#: ../Doc/library/math.rst:622 +#: ../Doc/library/math.rst:636 msgid "The mathematical constant *π* = 3.141592..., to available precision." msgstr "" "La constante matemática *π* = 3.141592..., hasta la precisión disponible." -#: ../Doc/library/math.rst:627 +#: ../Doc/library/math.rst:641 msgid "The mathematical constant *e* = 2.718281..., to available precision." msgstr "" "La constante matemática *e* = 2.718281..., hasta la precisión disponible." -#: ../Doc/library/math.rst:632 +#: ../Doc/library/math.rst:646 msgid "" "The mathematical constant *τ* = 6.283185..., to available precision. Tau is " "a circle constant equal to 2\\ *π*, the ratio of a circle's circumference to " @@ -956,7 +978,7 @@ msgstr "" "com/watch?v=jG7vhMMXagQ>`_, y comienza a celebrar el `el día de Tau `_ ¡comiendo el doble de tarta!" -#: ../Doc/library/math.rst:643 +#: ../Doc/library/math.rst:657 msgid "" "A floating-point positive infinity. (For negative infinity, use ``-math." "inf``.) Equivalent to the output of ``float('inf')``." @@ -964,14 +986,15 @@ msgstr "" "Un valor infinito positivo en punto flotante. (Para un valor infinito " "negativo, usa ``-math.inf``.) Equivalente a la salida de ``float('inf')``." -#: ../Doc/library/math.rst:651 +#: ../Doc/library/math.rst:665 +#, fuzzy msgid "" "A floating-point \"not a number\" (NaN) value. Equivalent to the output of " "``float('nan')``. Due to the requirements of the `IEEE-754 standard `_, ``math.nan`` and ``float('nan')`` are not " "considered to equal to any other numeric value, including themselves. To " "check whether a number is a NaN, use the :func:`isnan` function to test for " -"NaNs instead of ``is`` or ``==``. Example::" +"NaNs instead of ``is`` or ``==``. Example:" msgstr "" "Un valor de punto flotante \"no es un número\" (NaN). Equivalente a la " "salida de ``float('nan')``. Debido a los requisitos del `estándar IEEE-754 " @@ -980,11 +1003,11 @@ msgstr "" "mismos. Para verificar si un número es NaN, use la función :func:`isnan` " "para probar NaN en lugar de ``is`` o ``==``. Ejemplo::" -#: ../Doc/library/math.rst:669 +#: ../Doc/library/math.rst:683 msgid "It is now always available." msgstr "Ahora está siempre disponible." -#: ../Doc/library/math.rst:677 +#: ../Doc/library/math.rst:691 msgid "" "The :mod:`math` module consists mostly of thin wrappers around the platform " "C math library functions. Behavior in exceptional cases follows Annex F of " @@ -1012,7 +1035,7 @@ msgstr "" "estándar C99) hay algunas excepciones a esta regla, por ejemplo " "``pow(float('nan'), 0.0)`` o ``hypot(float('nan'), float('inf'))``." -#: ../Doc/library/math.rst:689 +#: ../Doc/library/math.rst:703 msgid "" "Note that Python makes no effort to distinguish signaling NaNs from quiet " "NaNs, and behavior for signaling NaNs remains unspecified. Typical behavior " @@ -1023,10 +1046,10 @@ msgstr "" "los NaN permanece sin especificar. El comportamiento estándar es tratar a " "todos los NaN como silenciosos." -#: ../Doc/library/math.rst:696 +#: ../Doc/library/math.rst:710 msgid "Module :mod:`cmath`" msgstr "Módulo :mod:`cmath`" -#: ../Doc/library/math.rst:697 +#: ../Doc/library/math.rst:711 msgid "Complex number versions of many of these functions." msgstr "Versiones de muchas de estas funciones para números complejos." diff --git a/library/mimetypes.po b/library/mimetypes.po index 36ed3022d0..9f4ca06509 100644 --- a/library/mimetypes.po +++ b/library/mimetypes.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-05 12:54+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-09-06 10:53-0600\n" +"Last-Translator: \n" +"Language: es\n" "Language-Team: python-doc-es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\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.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/mimetypes.rst:2 msgid ":mod:`mimetypes` --- Map filenames to MIME types" @@ -443,6 +442,27 @@ msgid "Load MIME type information from the Windows registry." msgstr "" "Carga información desde el registro de Windows del tipo de metadato MIME." -#: ../Doc/library/mimetypes.rst:270 +#: ../Doc/library/mimetypes.rst:269 msgid ":ref:`Availability `: Windows." msgstr ":ref:`Disponibilidad `: Windows." + +#: ../Doc/library/mimetypes.rst:11 ../Doc/library/mimetypes.rst:31 +msgid "MIME" +msgstr "" + +#: ../Doc/library/mimetypes.rst:11 +msgid "content type" +msgstr "" + +#: ../Doc/library/mimetypes.rst:31 +msgid "headers" +msgstr "" + +#: ../Doc/library/mimetypes.rst:130 +msgid "file" +msgstr "" + +#: ../Doc/library/mimetypes.rst:130 +#, fuzzy +msgid "mime.types" +msgstr "Objetos MimeTypes" diff --git a/library/mmap.po b/library/mmap.po index 833a7abd42..067fe65c41 100644 --- a/library/mmap.po +++ b/library/mmap.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.11\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-12-08 17:03-0500\n" "Last-Translator: Adolfo Hristo David Roque Gámez \n" "Language: es\n" @@ -19,16 +19,17 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/mmap.rst:2 msgid ":mod:`mmap` --- Memory-mapped file support" msgstr ":mod:`mmap` --- Soporte de archivos mapeados en memoria" +#: ../Doc/includes/wasm-notavail.rst:3 msgid ":ref:`Availability `: not Emscripten, not WASI." msgstr "" -#: ../Doc/library/cpython/Doc/includes/wasm-notavail.rst:5 +#: ../Doc/includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly platforms " "``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for " @@ -545,20 +546,29 @@ msgstr "Disponibilidad: Sistemas con la llamada al sistema *madvise()*." msgid "MAP_* Constants" msgstr "Constantes MAP_*" -#: ../Doc/library/mmap.rst:374 +#: ../Doc/library/mmap.rst:376 +#, fuzzy msgid "" -"These are the various flags that can be passed to :meth:`mmap.mmap`. Note " -"that some options might not be present on some systems." +"These are the various flags that can be passed to :meth:`mmap.mmap`. :data:" +"`MAP_ALIGNED_SUPER` is only available at FreeBSD and :data:`MAP_CONCEAL` is " +"only available at OpenBSD. Note that some options might not be present on " +"some systems." msgstr "" "Estas son las diferentes banderas que se pueden pasar al método :meth:`mmap." "mmap`. Note que algunas opciones puedan no estar presentes en todos los " "sistemas." -#: ../Doc/library/mmap.rst:376 -msgid "Added MAP_POPULATE constant." +#: ../Doc/library/mmap.rst:380 +#, fuzzy +msgid "Added :data:`MAP_POPULATE` constant." msgstr "Se añadió la constante MAP_POPULATE." -#: ../Doc/library/mmap.rst:379 +#: ../Doc/library/mmap.rst:383 #, fuzzy -msgid "Added MAP_STACK constant." +msgid "Added :data:`MAP_STACK` constant." msgstr "Se añadió la constante MAP_POPULATE." + +#: ../Doc/library/mmap.rst:386 +msgid "" +"Added :data:`MAP_ALIGNED_SUPER` constant. Added :data:`MAP_CONCEAL` constant." +msgstr "" diff --git a/library/msilib.po b/library/msilib.po index c2725a7d46..2ace5ffad3 100644 --- a/library/msilib.po +++ b/library/msilib.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-02-20 11:02-0300\n" "Last-Translator: \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/msilib.rst:2 msgid ":mod:`msilib` --- Read and write Microsoft Installer files" @@ -852,3 +851,7 @@ msgid "" msgstr "" "Este módulo contiene definiciones para las tablas *UIText* y *ActionText*, " "para las acciones estándar del instalador." + +#: ../Doc/library/msilib.rst:14 +msgid "msi" +msgstr "" diff --git a/library/msvcrt.po b/library/msvcrt.po index 2d114fa6ae..ceeb481df9 100644 --- a/library/msvcrt.po +++ b/library/msvcrt.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-05 12:54+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-10-09 11:16+0100\n" +"Last-Translator: \n" +"Language: es_ES\n" "Language-Team: python-doc-es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\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_ES\n" -"X-Generator: Poedit 2.4.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/msvcrt.rst:2 msgid ":mod:`msvcrt` --- Useful routines from the MS VC++ runtime" @@ -72,11 +71,12 @@ msgid "File Operations" msgstr "Operaciones con archivos" #: ../Doc/library/msvcrt.rst:38 +#, fuzzy msgid "" "Lock part of a file based on file descriptor *fd* from the C runtime. " "Raises :exc:`OSError` on failure. The locked region of the file extends " "from the current file position for *nbytes* bytes, and may continue beyond " -"the end of the file. *mode* must be one of the :const:`LK_\\*` constants " +"the end of the file. *mode* must be one of the :const:`!LK_\\*` constants " "listed below. Multiple regions in a file may be locked at the same time, but " "may not overlap. Adjacent regions are not merged; they must be unlocked " "individually." diff --git a/library/multiprocessing.po b/library/multiprocessing.po index dc5899321a..8e8219dc10 100644 --- a/library/multiprocessing.po +++ b/library/multiprocessing.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-12-12 13:14-0500\n" "Last-Translator: Adolfo Hristo David Roque Gámez \n" -"Language-Team: python-doc-es\n" "Language: es_ES\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/multiprocessing.rst:2 msgid ":mod:`multiprocessing` --- Process-based parallelism" @@ -29,11 +29,12 @@ msgstr ":mod:`multiprocessing` --- Paralelismo basado en procesos" msgid "**Source code:** :source:`Lib/multiprocessing/`" msgstr "**Código fuente:** :source:`Lib/multiprocessing/`" +#: ../Doc/includes/wasm-notavail.rst:3 #, fuzzy msgid ":ref:`Availability `: not Emscripten, not WASI." msgstr ":ref:`Availability `: no Emscripten, no WASI." -#: ../Doc/library/cpython/Doc/includes/wasm-notavail.rst:5 +#: ../Doc/includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly platforms " "``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for " @@ -48,6 +49,7 @@ msgid "Introduction" msgstr "Introducción" #: ../Doc/library/multiprocessing.rst:16 +#, fuzzy msgid "" ":mod:`multiprocessing` is a package that supports spawning processes using " "an API similar to the :mod:`threading` module. The :mod:`multiprocessing` " @@ -55,7 +57,7 @@ msgid "" "the :term:`Global Interpreter Lock ` by using " "subprocesses instead of threads. Due to this, the :mod:`multiprocessing` " "module allows the programmer to fully leverage multiple processors on a " -"given machine. It runs on both Unix and Windows." +"given machine. It runs on both POSIX and Windows." msgstr "" ":mod:`multiprocessing` es un paquete que permite crear procesos (*spawning*) " "utilizando una API similar al módulo :mod:`threading`. El paquete :mod:" @@ -139,7 +141,7 @@ msgstr "" "Para obtener una explicación de por qué es necesaria la parte ``if __name__ " "== '__main__'`` , consulte :ref:`multiprocessing-programming`." -#: ../Doc/library/multiprocessing.rst:103 +#: ../Doc/library/multiprocessing.rst:105 msgid "Contexts and start methods" msgstr "Contextos y métodos de inicio" @@ -172,10 +174,12 @@ msgstr "" "comparación con *fork* o *forkserver*." #: ../Doc/library/multiprocessing.rst:118 -msgid "Available on Unix and Windows. The default on Windows and macOS." +#, fuzzy +msgid "" +"Available on POSIX and Windows platforms. The default on Windows and macOS." msgstr "Disponible en Unix y Windows. Por defecto en Windows y macOS." -#: ../Doc/library/multiprocessing.rst:127 +#: ../Doc/library/multiprocessing.rst:138 msgid "*fork*" msgstr "*fork*" @@ -193,20 +197,39 @@ msgstr "" "proceso multihilo es problemático." #: ../Doc/library/multiprocessing.rst:127 -msgid "Available on Unix only. The default on Unix." +#, fuzzy +msgid "" +"Available on POSIX systems. Currently the default on POSIX except macOS." msgstr "Disponible solo en Unix. Por defecto en Unix." -#: ../Doc/library/multiprocessing.rst:138 +#: ../Doc/library/multiprocessing.rst:130 +msgid "" +"The default start method will change away from *fork* in Python 3.14. Code " +"that requires *fork* should explicitly specify that via :func:`get_context` " +"or :func:`set_start_method`." +msgstr "" + +#: ../Doc/library/multiprocessing.rst:134 +msgid "" +"If Python is able to detect that your process has multiple threads, the :" +"func:`os.fork` function that this start method calls internally will raise " +"a :exc:`DeprecationWarning`. Use a different start method. See the :func:`os." +"fork` documentation for further explanation." +msgstr "" + +#: ../Doc/library/multiprocessing.rst:151 msgid "*forkserver*" msgstr "*forkserver*" -#: ../Doc/library/multiprocessing.rst:130 +#: ../Doc/library/multiprocessing.rst:141 +#, fuzzy msgid "" "When the program starts and selects the *forkserver* start method, a server " -"process is started. From then on, whenever a new process is needed, the " +"process is spawned. From then on, whenever a new process is needed, the " "parent process connects to the server and requests that it fork a new " -"process. The fork server process is single threaded so it is safe for it to " -"use :func:`os.fork`. No unnecessary resources are inherited." +"process. The fork server process is single threaded unless system libraries " +"or preloaded imports spawn threads as a side-effect so it is generally safe " +"for it to use :func:`os.fork`. No unnecessary resources are inherited." msgstr "" "Cuando el programa se inicia y selecciona el método de inicio *forkserver*, " "se inicia un proceso de servidor. A partir de ese momento, cada vez que se " @@ -215,28 +238,30 @@ msgstr "" "un solo hilo, por lo que es seguro usarlo :func:`os.fork`. No se heredan " "recursos innecesarios." -#: ../Doc/library/multiprocessing.rst:137 +#: ../Doc/library/multiprocessing.rst:149 +#, fuzzy msgid "" -"Available on Unix platforms which support passing file descriptors over Unix " -"pipes." +"Available on POSIX platforms which support passing file descriptors over " +"Unix pipes such as Linux." msgstr "" "Disponible en plataformas Unix que admiten pasar descriptores de archivo a " "través de tuberías (*pipes*) Unix." -#: ../Doc/library/multiprocessing.rst:142 -#: ../Doc/library/multiprocessing.rst:1070 +#: ../Doc/library/multiprocessing.rst:155 +#, fuzzy msgid "" "On macOS, the *spawn* start method is now the default. The *fork* start " "method should be considered unsafe as it can lead to crashes of the " -"subprocess. See :issue:`33725`." +"subprocess as macOS system libraries may start threads. See :issue:`33725`." msgstr "" "En macOS, el método de inicio *spawn* ahora es el predeterminado. El método " "de inicio *fork* debe considerarse inseguro ya que puede provocar bloqueos " "del subproceso. Consulte :issue:`33725`." -#: ../Doc/library/multiprocessing.rst:146 +#: ../Doc/library/multiprocessing.rst:159 +#, fuzzy msgid "" -"*spawn* added on all Unix platforms, and *forkserver* added for some Unix " +"*spawn* added on all POSIX platforms, and *forkserver* added for some POSIX " "platforms. Child processes no longer inherit all of the parents inheritable " "handles on Windows." msgstr "" @@ -244,9 +269,10 @@ msgstr "" "para algunas plataformas Unix. Los procesos secundarios ya no heredan todos " "los identificadores heredables principales en Windows." -#: ../Doc/library/multiprocessing.rst:152 +#: ../Doc/library/multiprocessing.rst:165 +#, fuzzy msgid "" -"On Unix using the *spawn* or *forkserver* start methods will also start a " +"On POSIX using the *spawn* or *forkserver* start methods will also start a " "*resource tracker* process which tracks the unlinked named system resources " "(such as named semaphores or :class:`~multiprocessing.shared_memory." "SharedMemory` objects) created by processes of the program. When all " @@ -271,7 +297,7 @@ msgstr "" "permite un número limitado de semáforos con nombre, y los segmentos de " "memoria compartida ocupan algo de espacio en la memoria principal)." -#: ../Doc/library/multiprocessing.rst:165 +#: ../Doc/library/multiprocessing.rst:178 msgid "" "To select a start method you use the :func:`set_start_method` in the ``if " "__name__ == '__main__'`` clause of the main module. For example::" @@ -280,13 +306,13 @@ msgstr "" "`set_start_method` en la cláusula ``if __name__ == '__main__'`` del módulo " "principal. Por ejemplo::" -#: ../Doc/library/multiprocessing.rst:182 +#: ../Doc/library/multiprocessing.rst:195 msgid "" ":func:`set_start_method` should not be used more than once in the program." msgstr "" ":func:`set_start_method` no debería ser usada más de una vez en el programa." -#: ../Doc/library/multiprocessing.rst:185 +#: ../Doc/library/multiprocessing.rst:198 msgid "" "Alternatively, you can use :func:`get_context` to obtain a context object. " "Context objects have the same API as the multiprocessing module, and allow " @@ -297,7 +323,7 @@ msgstr "" "multiprocesamiento, y permiten utilizar múltiples métodos de inicio en el " "mismo programa. ::" -#: ../Doc/library/multiprocessing.rst:203 +#: ../Doc/library/multiprocessing.rst:216 msgid "" "Note that objects related to one context may not be compatible with " "processes for a different context. In particular, locks created using the " @@ -309,7 +335,7 @@ msgstr "" "*locks* creados con el contexto *fork* no se pueden pasar a los procesos " "iniciados con los métodos de inicio *spawn* o *forkserver* ." -#: ../Doc/library/multiprocessing.rst:208 +#: ../Doc/library/multiprocessing.rst:221 msgid "" "A library which wants to use a particular start method should probably use :" "func:`get_context` to avoid interfering with the choice of the library user." @@ -318,23 +344,24 @@ msgstr "" "debería usar :func:`get_context` para evitar interferir con la elección del " "usuario de la biblioteca." -#: ../Doc/library/multiprocessing.rst:214 +#: ../Doc/library/multiprocessing.rst:227 +#, fuzzy msgid "" -"The ``'spawn'`` and ``'forkserver'`` start methods cannot currently be used " +"The ``'spawn'`` and ``'forkserver'`` start methods generally cannot be used " "with \"frozen\" executables (i.e., binaries produced by packages like " -"**PyInstaller** and **cx_Freeze**) on Unix. The ``'fork'`` start method does " -"work." +"**PyInstaller** and **cx_Freeze**) on POSIX systems. The ``'fork'`` start " +"method may work if code does not use threads." msgstr "" "Los métodos de inicio ``'spawn'`` y ``'forkserver'`` actualmente no pueden " "ser usados con ejecutables \"congelados\" (*frozen*)(es decir, binarios " "producidos por paquetes como **PyInstaller** y **cx_Freeze**) en Unix. El " "método de inicio ``'fork'`` funciona." -#: ../Doc/library/multiprocessing.rst:221 +#: ../Doc/library/multiprocessing.rst:234 msgid "Exchanging objects between processes" msgstr "Intercambiando objetos entre procesos" -#: ../Doc/library/multiprocessing.rst:223 +#: ../Doc/library/multiprocessing.rst:236 msgid "" ":mod:`multiprocessing` supports two types of communication channel between " "processes:" @@ -342,11 +369,11 @@ msgstr "" ":mod:`multiprocessing` admite dos tipos de canales de comunicación entre " "procesos:" -#: ../Doc/library/multiprocessing.rst:226 +#: ../Doc/library/multiprocessing.rst:239 msgid "**Queues**" msgstr "**Colas (*queues*)**" -#: ../Doc/library/multiprocessing.rst:228 +#: ../Doc/library/multiprocessing.rst:241 msgid "" "The :class:`Queue` class is a near clone of :class:`queue.Queue`. For " "example::" @@ -354,15 +381,15 @@ msgstr "" "La clase :class:`Queue` es prácticamente un clon de :class:`queue.Queue`. " "Por ejemplo::" -#: ../Doc/library/multiprocessing.rst:243 +#: ../Doc/library/multiprocessing.rst:256 msgid "Queues are thread and process safe." msgstr "Las colas (*queues*) son hilos y procesos seguro." -#: ../Doc/library/multiprocessing.rst:245 +#: ../Doc/library/multiprocessing.rst:258 msgid "**Pipes**" msgstr "**Tuberías (*Pipes*)**" -#: ../Doc/library/multiprocessing.rst:247 +#: ../Doc/library/multiprocessing.rst:260 msgid "" "The :func:`Pipe` function returns a pair of connection objects connected by " "a pipe which by default is duplex (two-way). For example::" @@ -371,7 +398,7 @@ msgstr "" "una tubería (*pipe*) que, por defecto, es un dúplex (bidireccional). Por " "ejemplo::" -#: ../Doc/library/multiprocessing.rst:263 +#: ../Doc/library/multiprocessing.rst:276 msgid "" "The two connection objects returned by :func:`Pipe` represent the two ends " "of the pipe. Each connection object has :meth:`~Connection.send` and :meth:" @@ -388,11 +415,11 @@ msgstr "" "al mismo tiempo. Por supuesto, no hay riesgo de corrupción por procesos que " "utilizan diferentes extremos de la tubería (*pipe*) al mismo tiempo." -#: ../Doc/library/multiprocessing.rst:273 +#: ../Doc/library/multiprocessing.rst:286 msgid "Synchronization between processes" msgstr "Sincronización entre procesos" -#: ../Doc/library/multiprocessing.rst:275 +#: ../Doc/library/multiprocessing.rst:288 msgid "" ":mod:`multiprocessing` contains equivalents of all the synchronization " "primitives from :mod:`threading`. For instance one can use a lock to ensure " @@ -403,7 +430,7 @@ msgstr "" "(*lock*) para garantizar que solo un proceso se imprima a la salida estándar " "a la vez::" -#: ../Doc/library/multiprocessing.rst:294 +#: ../Doc/library/multiprocessing.rst:307 msgid "" "Without using the lock output from the different processes is liable to get " "all mixed up." @@ -411,11 +438,11 @@ msgstr "" "Sin usar el candado (*lock*) de salida de los diferentes procesos, es " "probable que todo se mezcle." -#: ../Doc/library/multiprocessing.rst:299 +#: ../Doc/library/multiprocessing.rst:312 msgid "Sharing state between processes" msgstr "Compartiendo estado entre procesos" -#: ../Doc/library/multiprocessing.rst:301 +#: ../Doc/library/multiprocessing.rst:314 msgid "" "As mentioned above, when doing concurrent programming it is usually best to " "avoid using shared state as far as possible. This is particularly true when " @@ -426,7 +453,7 @@ msgstr "" "medida de lo posible. Esto es particularmente cierto cuando se utilizan " "múltiples procesos." -#: ../Doc/library/multiprocessing.rst:305 +#: ../Doc/library/multiprocessing.rst:318 msgid "" "However, if you really do need to use some shared data then :mod:" "`multiprocessing` provides a couple of ways of doing so." @@ -434,11 +461,11 @@ msgstr "" "Sin embargo, si usted realmente necesita usar algunos datos compartidos el :" "mod:`multiprocessing` proporciona un par de maneras de hacerlo." -#: ../Doc/library/multiprocessing.rst:308 +#: ../Doc/library/multiprocessing.rst:321 msgid "**Shared memory**" msgstr "**Memoria compartida**" -#: ../Doc/library/multiprocessing.rst:310 +#: ../Doc/library/multiprocessing.rst:323 msgid "" "Data can be stored in a shared memory map using :class:`Value` or :class:" "`Array`. For example, the following code ::" @@ -446,12 +473,12 @@ msgstr "" "Los datos se pueden almacenar en un mapa de memoria compartida usando :class:" "`Value` o :class:`Array`. Por ejemplo, el siguiente código ::" -#: ../Doc/library/multiprocessing.rst:331 -#: ../Doc/library/multiprocessing.rst:377 +#: ../Doc/library/multiprocessing.rst:344 +#: ../Doc/library/multiprocessing.rst:390 msgid "will print ::" msgstr "imprimirá ::" -#: ../Doc/library/multiprocessing.rst:336 +#: ../Doc/library/multiprocessing.rst:349 msgid "" "The ``'d'`` and ``'i'`` arguments used when creating ``num`` and ``arr`` are " "typecodes of the kind used by the :mod:`array` module: ``'d'`` indicates a " @@ -463,7 +490,7 @@ msgstr "" "un flotador de doble precisión y ``'i'`` indica un entero con signo. Estos " "objetos compartidos serán seguros para procesos y subprocesos." -#: ../Doc/library/multiprocessing.rst:341 +#: ../Doc/library/multiprocessing.rst:354 msgid "" "For more flexibility in using shared memory one can use the :mod:" "`multiprocessing.sharedctypes` module which supports the creation of " @@ -473,11 +500,11 @@ msgstr "" "usar el módulo :mod:`multiprocessing.sharedctypes` que admite la creación " "arbitraria de objetos *ctypes* asignados desde la memoria compartida." -#: ../Doc/library/multiprocessing.rst:345 +#: ../Doc/library/multiprocessing.rst:358 msgid "**Server process**" msgstr "**Proceso servidor (*Server process*)**" -#: ../Doc/library/multiprocessing.rst:347 +#: ../Doc/library/multiprocessing.rst:360 msgid "" "A manager object returned by :func:`Manager` controls a server process which " "holds Python objects and allows other processes to manipulate them using " @@ -487,7 +514,7 @@ msgstr "" "de servidor que contiene objetos de Python y permite que otros procesos los " "manipulen usando proxies." -#: ../Doc/library/multiprocessing.rst:351 +#: ../Doc/library/multiprocessing.rst:364 msgid "" "A manager returned by :func:`Manager` will support types :class:`list`, :" "class:`dict`, :class:`~managers.Namespace`, :class:`Lock`, :class:`RLock`, :" @@ -501,7 +528,7 @@ msgstr "" "class:`Condition`, :class:`Event`, :class:`Barrier`, :class:`Queue`, :class:" "`Value` y :class:`Array`. Por ejemplo, ::" -#: ../Doc/library/multiprocessing.rst:382 +#: ../Doc/library/multiprocessing.rst:395 msgid "" "Server process managers are more flexible than using shared memory objects " "because they can be made to support arbitrary object types. Also, a single " @@ -514,11 +541,11 @@ msgstr "" "compartido por procesos en diferentes ordenadores a través de una red. Sin " "embargo, son más lentos que usar memoria compartida." -#: ../Doc/library/multiprocessing.rst:389 +#: ../Doc/library/multiprocessing.rst:402 msgid "Using a pool of workers" msgstr "Usando una piscina de trabajadores (*pool of workers*)" -#: ../Doc/library/multiprocessing.rst:391 +#: ../Doc/library/multiprocessing.rst:404 msgid "" "The :class:`~multiprocessing.pool.Pool` class represents a pool of worker " "processes. It has methods which allows tasks to be offloaded to the worker " @@ -528,11 +555,11 @@ msgstr "" "de trabajadores (*pool of workers*). Tiene métodos que permiten que las " "tareas se descarguen a los procesos de trabajo de diferentes maneras." -#: ../Doc/library/multiprocessing.rst:395 +#: ../Doc/library/multiprocessing.rst:408 msgid "For example::" msgstr "Por ejemplo::" -#: ../Doc/library/multiprocessing.rst:439 +#: ../Doc/library/multiprocessing.rst:452 msgid "" "Note that the methods of a pool should only ever be used by the process " "which created it." @@ -540,7 +567,7 @@ msgstr "" "Tenga en cuenta que los métodos de una piscina (*pool*) solo deben ser " "utilizados por el proceso que lo creó." -#: ../Doc/library/multiprocessing.rst:444 +#: ../Doc/library/multiprocessing.rst:457 msgid "" "Functionality within this package requires that the ``__main__`` module be " "importable by the children. This is covered in :ref:`multiprocessing-" @@ -554,7 +581,7 @@ msgstr "" "Esto significa que algunos ejemplos, como :class:`multiprocessing.pool.Pool` " "no funcionarán en el intérprete interactivo. Por ejemplo::" -#: ../Doc/library/multiprocessing.rst:467 +#: ../Doc/library/multiprocessing.rst:480 msgid "" "(If you try this it will actually output three full tracebacks interleaved " "in a semi-random fashion, and then you may have to stop the parent process " @@ -564,11 +591,11 @@ msgstr "" "forma semialeatoria, y luego tendrá que detener el proceso principal de " "alguna manera)" -#: ../Doc/library/multiprocessing.rst:473 +#: ../Doc/library/multiprocessing.rst:486 msgid "Reference" msgstr "Referencia" -#: ../Doc/library/multiprocessing.rst:475 +#: ../Doc/library/multiprocessing.rst:488 msgid "" "The :mod:`multiprocessing` package mostly replicates the API of the :mod:" "`threading` module." @@ -576,11 +603,11 @@ msgstr "" "El paquete :mod:`multiprocessing` mayoritariamente replica la API del " "módulo :mod:`threading`." -#: ../Doc/library/multiprocessing.rst:480 +#: ../Doc/library/multiprocessing.rst:493 msgid ":class:`Process` and exceptions" msgstr ":class:`Process` y excepciones" -#: ../Doc/library/multiprocessing.rst:485 +#: ../Doc/library/multiprocessing.rst:498 msgid "" "Process objects represent activity that is run in a separate process. The :" "class:`Process` class has equivalents of all the methods of :class:" @@ -590,7 +617,7 @@ msgstr "" "separado. La clase :class:`Process` tiene equivalentes para todos los " "métodos :class:`threading.Thread`." -#: ../Doc/library/multiprocessing.rst:489 +#: ../Doc/library/multiprocessing.rst:502 msgid "" "The constructor should always be called with keyword arguments. *group* " "should always be ``None``; it exists solely for compatibility with :class:" @@ -615,7 +642,7 @@ msgstr "" "``True`` o ``False``. Si ``None`` (el valor predeterminado), este indicador " "se heredará del proceso de creación." -#: ../Doc/library/multiprocessing.rst:500 +#: ../Doc/library/multiprocessing.rst:513 msgid "" "By default, no arguments are passed to *target*. The *args* argument, which " "defaults to ``()``, can be used to specify a list or tuple of the arguments " @@ -625,7 +652,7 @@ msgstr "" "*args*, que por defecto es ``()``, se puede usar para especificar una lista " "o tupla de los argumentos para pasar a *target*." -#: ../Doc/library/multiprocessing.rst:504 +#: ../Doc/library/multiprocessing.rst:517 msgid "" "If a subclass overrides the constructor, it must make sure it invokes the " "base class constructor (:meth:`Process.__init__`) before doing anything else " @@ -635,15 +662,15 @@ msgstr "" "constructor de la clase base (:meth:`Process.__init__`) antes de hacer " "cualquier otra cosa al proceso." -#: ../Doc/library/multiprocessing.rst:508 +#: ../Doc/library/multiprocessing.rst:521 msgid "Added the *daemon* argument." msgstr "Añadido el argumento *daemon*." -#: ../Doc/library/multiprocessing.rst:513 +#: ../Doc/library/multiprocessing.rst:526 msgid "Method representing the process's activity." msgstr "Método que representa la actividad del proceso." -#: ../Doc/library/multiprocessing.rst:515 +#: ../Doc/library/multiprocessing.rst:528 msgid "" "You may override this method in a subclass. The standard :meth:`run` method " "invokes the callable object passed to the object's constructor as the target " @@ -655,7 +682,7 @@ msgstr "" "objetivo, si lo hay, con argumentos posicionares y de palabras clave tomados " "de los argumentos *args* y *kwargs*, respectivamente." -#: ../Doc/library/multiprocessing.rst:520 +#: ../Doc/library/multiprocessing.rst:533 msgid "" "Using a list or tuple as the *args* argument passed to :class:`Process` " "achieves the same effect." @@ -663,15 +690,15 @@ msgstr "" "El uso de una lista o tupla como argumento *args* pasado a :class:`Process` " "logra el mismo efecto." -#: ../Doc/library/multiprocessing.rst:523 +#: ../Doc/library/multiprocessing.rst:536 msgid "Example::" msgstr "Ejemplo::" -#: ../Doc/library/multiprocessing.rst:535 +#: ../Doc/library/multiprocessing.rst:548 msgid "Start the process's activity." msgstr "Comienza la actividad del proceso." -#: ../Doc/library/multiprocessing.rst:537 +#: ../Doc/library/multiprocessing.rst:550 msgid "" "This must be called at most once per process object. It arranges for the " "object's :meth:`run` method to be invoked in a separate process." @@ -679,7 +706,7 @@ msgstr "" "Esto debe llamarse como máximo una vez por objeto de proceso. Organiza la " "invocación del método :meth:`run` del objeto en un proceso separado." -#: ../Doc/library/multiprocessing.rst:542 +#: ../Doc/library/multiprocessing.rst:555 msgid "" "If the optional argument *timeout* is ``None`` (the default), the method " "blocks until the process whose :meth:`join` method is called terminates. If " @@ -695,11 +722,11 @@ msgstr "" "finaliza o si el método agota el tiempo de espera. Verifique el proceso :" "attr:`exitcode` para determinar si terminó." -#: ../Doc/library/multiprocessing.rst:549 +#: ../Doc/library/multiprocessing.rst:562 msgid "A process can be joined many times." msgstr "Un proceso puede unirse muchas veces." -#: ../Doc/library/multiprocessing.rst:551 +#: ../Doc/library/multiprocessing.rst:564 msgid "" "A process cannot join itself because this would cause a deadlock. It is an " "error to attempt to join a process before it has been started." @@ -708,7 +735,7 @@ msgstr "" "muerto. Es un error intentar unirse a un proceso antes de que se haya " "iniciado." -#: ../Doc/library/multiprocessing.rst:556 +#: ../Doc/library/multiprocessing.rst:569 msgid "" "The process's name. The name is a string used for identification purposes " "only. It has no semantics. Multiple processes may be given the same name." @@ -717,7 +744,7 @@ msgstr "" "identificación. No tiene semántica. Múltiples procesos pueden tener el mismo " "nombre." -#: ../Doc/library/multiprocessing.rst:560 +#: ../Doc/library/multiprocessing.rst:573 msgid "" "The initial name is set by the constructor. If no explicit name is provided " "to the constructor, a name of the form 'Process-N\\ :sub:`1`:N\\ :sub:" @@ -729,11 +756,11 @@ msgstr "" "sub:`1`:N\\ :sub:`2`:...:N\\ :sub:`k`'* se construye, donde cada *N\\ :sub:" "`k`* es el *N-enésimo* hijo del parental." -#: ../Doc/library/multiprocessing.rst:567 +#: ../Doc/library/multiprocessing.rst:580 msgid "Return whether the process is alive." msgstr "Retorna si el proceso está vivo." -#: ../Doc/library/multiprocessing.rst:569 +#: ../Doc/library/multiprocessing.rst:582 msgid "" "Roughly, a process object is alive from the moment the :meth:`start` method " "returns until the child process terminates." @@ -741,7 +768,7 @@ msgstr "" "Aproximadamente, un objeto de proceso está vivo desde el momento en que el " "método :meth:`start` retorna hasta que finaliza el proceso hijo." -#: ../Doc/library/multiprocessing.rst:574 +#: ../Doc/library/multiprocessing.rst:587 msgid "" "The process's daemon flag, a Boolean value. This must be set before :meth:" "`start` is called." @@ -749,11 +776,11 @@ msgstr "" "La bandera del proceso *daemon* , es un valor booleano. Esto debe " "establecerse antes de que :meth:`start` sea llamado." -#: ../Doc/library/multiprocessing.rst:577 +#: ../Doc/library/multiprocessing.rst:590 msgid "The initial value is inherited from the creating process." msgstr "El valor inicial se hereda del proceso de creación." -#: ../Doc/library/multiprocessing.rst:579 +#: ../Doc/library/multiprocessing.rst:592 msgid "" "When a process exits, it attempts to terminate all of its daemonic child " "processes." @@ -761,7 +788,7 @@ msgstr "" "Cuando un proceso sale, intenta terminar todos sus procesos demoníacos " "(*daemonic*) hijos." -#: ../Doc/library/multiprocessing.rst:582 +#: ../Doc/library/multiprocessing.rst:595 msgid "" "Note that a daemonic process is not allowed to create child processes. " "Otherwise a daemonic process would leave its children orphaned if it gets " @@ -776,7 +803,7 @@ msgstr "" "normales qué finalizarán (y no se unirán) si los procesos no demoníacos han " "salido." -#: ../Doc/library/multiprocessing.rst:588 +#: ../Doc/library/multiprocessing.rst:601 msgid "" "In addition to the :class:`threading.Thread` API, :class:`Process` objects " "also support the following attributes and methods:" @@ -784,14 +811,14 @@ msgstr "" "Además de API :class:`threading.Thread`, los objetos :class:`Process` " "también admiten los siguientes atributos y métodos:" -#: ../Doc/library/multiprocessing.rst:593 +#: ../Doc/library/multiprocessing.rst:606 msgid "" "Return the process ID. Before the process is spawned, this will be ``None``." msgstr "" "Retorna el ID del proceso. Antes de que se genere el proceso, esto será " "``None``." -#: ../Doc/library/multiprocessing.rst:598 +#: ../Doc/library/multiprocessing.rst:611 msgid "" "The child's exit code. This will be ``None`` if the process has not yet " "terminated." @@ -799,7 +826,7 @@ msgstr "" "El código de salida del proceso secundario. Será ``None`` si el proceso aún " "no ha finalizado." -#: ../Doc/library/multiprocessing.rst:601 +#: ../Doc/library/multiprocessing.rst:614 msgid "" "If the child's :meth:`run` method returned normally, the exit code will be " "0. If it terminated via :func:`sys.exit` with an integer argument *N*, the " @@ -809,7 +836,7 @@ msgstr "" "código de salida será 0. Si terminó a través de :func:`sys.exit` con un " "argumento entero *N*, el código de salida será *N*." -#: ../Doc/library/multiprocessing.rst:605 +#: ../Doc/library/multiprocessing.rst:618 msgid "" "If the child terminated due to an exception not caught within :meth:`run`, " "the exit code will be 1. If it was terminated by signal *N*, the exit code " @@ -819,11 +846,11 @@ msgstr "" "de :meth:`run`, el código de salida será 1. Si fue terminado por la señal " "*N*, el código de salida será el valor negativo *-N*." -#: ../Doc/library/multiprocessing.rst:611 +#: ../Doc/library/multiprocessing.rst:624 msgid "The process's authentication key (a byte string)." msgstr "La clave de autenticación del proceso (una cadena de bytes)." -#: ../Doc/library/multiprocessing.rst:613 +#: ../Doc/library/multiprocessing.rst:626 msgid "" "When :mod:`multiprocessing` is initialized the main process is assigned a " "random string using :func:`os.urandom`." @@ -831,7 +858,7 @@ msgstr "" "Cuando el :mod:`multiprocessing` se inicializa el proceso principal se le " "asigna una cadena aleatoria usando :func:`os.urandom`." -#: ../Doc/library/multiprocessing.rst:616 +#: ../Doc/library/multiprocessing.rst:629 msgid "" "When a :class:`Process` object is created, it will inherit the " "authentication key of its parent process, although this may be changed by " @@ -841,11 +868,11 @@ msgstr "" "autenticación de su proceso parental, aunque esto puede cambiarse " "configurando :attr:`authkey` a otra cadena de bytes." -#: ../Doc/library/multiprocessing.rst:620 +#: ../Doc/library/multiprocessing.rst:633 msgid "See :ref:`multiprocessing-auth-keys`." msgstr "Consulte :ref:`multiprocessing-auth-keys`." -#: ../Doc/library/multiprocessing.rst:624 +#: ../Doc/library/multiprocessing.rst:637 msgid "" "A numeric handle of a system object which will become \"ready\" when the " "process ends." @@ -853,7 +880,7 @@ msgstr "" "Un identificador numérico de un objeto del sistema que estará \"listo\" " "cuando finalice el proceso." -#: ../Doc/library/multiprocessing.rst:627 +#: ../Doc/library/multiprocessing.rst:640 msgid "" "You can use this value if you want to wait on several events at once using :" "func:`multiprocessing.connection.wait`. Otherwise calling :meth:`join()` is " @@ -863,10 +890,11 @@ msgstr "" "func:`multiprocessing.connection.wait`. De lo contrario, llamar a :meth:" "`join()` es más simple." -#: ../Doc/library/multiprocessing.rst:631 +#: ../Doc/library/multiprocessing.rst:644 +#, fuzzy msgid "" "On Windows, this is an OS handle usable with the ``WaitForSingleObject`` and " -"``WaitForMultipleObjects`` family of API calls. On Unix, this is a file " +"``WaitForMultipleObjects`` family of API calls. On POSIX, this is a file " "descriptor usable with primitives from the :mod:`select` module." msgstr "" "En Windows, este es un sistema operativo manejable con la familia de " @@ -874,9 +902,10 @@ msgstr "" "este es un descriptor de archivo utilizable con primitivas del módulo :mod:" "`select`." -#: ../Doc/library/multiprocessing.rst:639 +#: ../Doc/library/multiprocessing.rst:652 +#, fuzzy msgid "" -"Terminate the process. On Unix this is done using the ``SIGTERM`` signal; " +"Terminate the process. On POSIX this is done using the ``SIGTERM`` signal; " "on Windows :c:func:`TerminateProcess` is used. Note that exit handlers and " "finally clauses, etc., will not be executed." msgstr "" @@ -884,7 +913,7 @@ msgstr "" "Windows se utiliza :c:func:`TerminateProcess` . Tenga en cuenta que los " "manejadores de salida y finalmente las cláusulas, etc., no se ejecutarán." -#: ../Doc/library/multiprocessing.rst:643 +#: ../Doc/library/multiprocessing.rst:656 msgid "" "Note that descendant processes of the process will *not* be terminated -- " "they will simply become orphaned." @@ -892,7 +921,7 @@ msgstr "" "Tenga en cuenta que los procesos descendientes del proceso *no* finalizarán " "-- simplemente quedarán huérfanos." -#: ../Doc/library/multiprocessing.rst:648 +#: ../Doc/library/multiprocessing.rst:661 msgid "" "If this method is used when the associated process is using a pipe or queue " "then the pipe or queue is liable to become corrupted and may become unusable " @@ -906,13 +935,14 @@ msgstr "" "si el proceso ha adquirido un *lock* o un semáforo, etc., su finalización " "puede provocar el bloqueo de otros procesos." -#: ../Doc/library/multiprocessing.rst:656 -msgid "Same as :meth:`terminate()` but using the ``SIGKILL`` signal on Unix." +#: ../Doc/library/multiprocessing.rst:669 +#, fuzzy +msgid "Same as :meth:`terminate()` but using the ``SIGKILL`` signal on POSIX." msgstr "" "Siempre como :meth:`terminate()` pero utilizando la señal ``SIGKILL`` en " "Unix." -#: ../Doc/library/multiprocessing.rst:662 +#: ../Doc/library/multiprocessing.rst:675 msgid "" "Close the :class:`Process` object, releasing all resources associated with " "it. :exc:`ValueError` is raised if the underlying process is still " @@ -925,7 +955,7 @@ msgstr "" "otros métodos y atributos del objeto :class:`Process` lanzará :exc:" "`ValueError`." -#: ../Doc/library/multiprocessing.rst:670 +#: ../Doc/library/multiprocessing.rst:683 msgid "" "Note that the :meth:`start`, :meth:`join`, :meth:`is_alive`, :meth:" "`terminate` and :attr:`exitcode` methods should only be called by the " @@ -935,15 +965,15 @@ msgstr "" "`is_alive`, :meth:`terminate` y :attr:`exitcode` deberían solo ser llamados " "por el proceso que creó el objeto del proceso." -#: ../Doc/library/multiprocessing.rst:674 +#: ../Doc/library/multiprocessing.rst:687 msgid "Example usage of some of the methods of :class:`Process`:" msgstr "Ejemplo de uso de algunos métodos de la :class:`Process`:" -#: ../Doc/library/multiprocessing.rst:694 +#: ../Doc/library/multiprocessing.rst:708 msgid "The base class of all :mod:`multiprocessing` exceptions." msgstr "La clase base de todas las excepciones :mod:`multiprocessing`." -#: ../Doc/library/multiprocessing.rst:698 +#: ../Doc/library/multiprocessing.rst:712 msgid "" "Exception raised by :meth:`Connection.recv_bytes_into()` when the supplied " "buffer object is too small for the message read." @@ -951,7 +981,7 @@ msgstr "" "La excepción :meth:`Connection.recv_bytes_into()` es lanzada cuando el " "objeto de búfer suministrado es demasiado pequeño para el mensaje leído." -#: ../Doc/library/multiprocessing.rst:701 +#: ../Doc/library/multiprocessing.rst:715 msgid "" "If ``e`` is an instance of :exc:`BufferTooShort` then ``e.args[0]`` will " "give the message as a byte string." @@ -959,20 +989,20 @@ msgstr "" "Si ``e`` es una instancia de :exc:`BufferTooShort` entonces ``e.args[0]`` " "dará el mensaje como una cadena de *bytes*." -#: ../Doc/library/multiprocessing.rst:706 +#: ../Doc/library/multiprocessing.rst:720 msgid "Raised when there is an authentication error." msgstr "Lanzada cuando hay un error de autenticación." -#: ../Doc/library/multiprocessing.rst:710 +#: ../Doc/library/multiprocessing.rst:724 msgid "Raised by methods with a timeout when the timeout expires." msgstr "" "Lanzada por métodos con un tiempo de espera (*timeout*) cuando este expira." -#: ../Doc/library/multiprocessing.rst:713 +#: ../Doc/library/multiprocessing.rst:727 msgid "Pipes and Queues" msgstr "Tuberías (*Pipes*) y Colas (*Queues*)" -#: ../Doc/library/multiprocessing.rst:715 +#: ../Doc/library/multiprocessing.rst:729 msgid "" "When using multiple processes, one generally uses message passing for " "communication between processes and avoids having to use any synchronization " @@ -982,7 +1012,7 @@ msgstr "" "para la comunicación entre procesos y evita tener que usar primitivas de " "sincronización como *locks*." -#: ../Doc/library/multiprocessing.rst:719 +#: ../Doc/library/multiprocessing.rst:733 msgid "" "For passing messages one can use :func:`Pipe` (for a connection between two " "processes) or a queue (which allows multiple producers and consumers)." @@ -991,7 +1021,7 @@ msgstr "" "procesos) o una cola (*queue*)(que permite múltiples productores y " "consumidores)." -#: ../Doc/library/multiprocessing.rst:722 +#: ../Doc/library/multiprocessing.rst:736 msgid "" "The :class:`Queue`, :class:`SimpleQueue` and :class:`JoinableQueue` types " "are multi-producer, multi-consumer :abbr:`FIFO (first-in, first-out)` queues " @@ -1007,7 +1037,7 @@ msgstr "" "`~queue.Queue.task_done` y :meth:`~queue.Queue.join` métodos introducidos en " "Python 2.5 :class:`queue.Queue` class." -#: ../Doc/library/multiprocessing.rst:729 +#: ../Doc/library/multiprocessing.rst:743 msgid "" "If you use :class:`JoinableQueue` then you **must** call :meth:" "`JoinableQueue.task_done` for each task removed from the queue or else the " @@ -1019,7 +1049,7 @@ msgstr "" "de lo contrario el semáforo utilizado para contar el número de tareas sin " "terminar puede eventualmente desbordarse, lanzando un excepción." -#: ../Doc/library/multiprocessing.rst:734 +#: ../Doc/library/multiprocessing.rst:748 msgid "" "Note that one can also create a shared queue by using a manager object -- " "see :ref:`multiprocessing-managers`." @@ -1028,7 +1058,7 @@ msgstr "" "uso de un objeto de administrador -- consulte :ref:`multiprocessing-" "managers`." -#: ../Doc/library/multiprocessing.rst:739 +#: ../Doc/library/multiprocessing.rst:753 msgid "" ":mod:`multiprocessing` uses the usual :exc:`queue.Empty` and :exc:`queue." "Full` exceptions to signal a timeout. They are not available in the :mod:" @@ -1039,7 +1069,7 @@ msgstr "" "en el espacio de nombres :mod:`multiprocessing`, por lo que debe importarlos " "desde :mod:`queue`." -#: ../Doc/library/multiprocessing.rst:746 +#: ../Doc/library/multiprocessing.rst:760 msgid "" "When an object is put on a queue, the object is pickled and a background " "thread later flushes the pickled data to an underlying pipe. This has some " @@ -1054,7 +1084,7 @@ msgstr "" "realmente causan molestias, se puede usar una cola creada con un :ref:" "`manager `." -#: ../Doc/library/multiprocessing.rst:753 +#: ../Doc/library/multiprocessing.rst:767 msgid "" "After putting an object on an empty queue there may be an infinitesimal " "delay before the queue's :meth:`~Queue.empty` method returns :const:`False` " @@ -1065,7 +1095,7 @@ msgstr "" "retorne :const:`False` y :meth:`~Queue.get_nowait` puede retornar sin " "lanzar :exc:`queue.Empty`." -#: ../Doc/library/multiprocessing.rst:758 +#: ../Doc/library/multiprocessing.rst:772 msgid "" "If multiple processes are enqueuing objects, it is possible for the objects " "to be received at the other end out-of-order. However, objects enqueued by " @@ -1077,7 +1107,7 @@ msgstr "" "objetos en cola por el mismo proceso siempre estarán en el orden esperado " "entre sí." -#: ../Doc/library/multiprocessing.rst:765 +#: ../Doc/library/multiprocessing.rst:779 msgid "" "If a process is killed using :meth:`Process.terminate` or :func:`os.kill` " "while it is trying to use a :class:`Queue`, then the data in the queue is " @@ -1089,7 +1119,7 @@ msgstr "" "la cola(*queue*) se corrompan. Esto puede hacer que cualquier otro proceso " "obtenga una excepción cuando intente usar la cola más adelante." -#: ../Doc/library/multiprocessing.rst:772 +#: ../Doc/library/multiprocessing.rst:786 msgid "" "As mentioned above, if a child process has put items on a queue (and it has " "not used :meth:`JoinableQueue.cancel_join_thread ` -- see also :ref:`multiprocessing-listeners-clients`." @@ -1687,7 +1759,7 @@ msgstr "" "` -- ver también :ref:`multiprocessing-listeners-" "clients`." -#: ../Doc/library/multiprocessing.rst:1127 +#: ../Doc/library/multiprocessing.rst:1161 msgid "" "Send an object to the other end of the connection which should be read " "using :meth:`recv`." @@ -1695,7 +1767,7 @@ msgstr "" "Envía un objeto al otro extremo de la conexión que debe leerse usando :meth:" "`recv`." -#: ../Doc/library/multiprocessing.rst:1130 +#: ../Doc/library/multiprocessing.rst:1164 msgid "" "The object must be picklable. Very large pickles (approximately 32 MiB+, " "though it depends on the OS) may raise a :exc:`ValueError` exception." @@ -1704,7 +1776,7 @@ msgstr "" "muy grandes (aproximadamente 32 *MiB+* , aunque depende del sistema " "operativo) pueden generar una excepción :exc:`ValueError`." -#: ../Doc/library/multiprocessing.rst:1135 +#: ../Doc/library/multiprocessing.rst:1169 msgid "" "Return an object sent from the other end of the connection using :meth:" "`send`. Blocks until there is something to receive. Raises :exc:`EOFError` " @@ -1714,25 +1786,25 @@ msgstr "" "`send`. Se bloquea hasta que haya algo para recibir. Se lanza :exc:" "`EOFError` si no queda nada por recibir y el otro extremo está cerrado." -#: ../Doc/library/multiprocessing.rst:1142 +#: ../Doc/library/multiprocessing.rst:1176 msgid "Return the file descriptor or handle used by the connection." msgstr "" "Retorna el descriptor de archivo o identificador utilizado por la conexión." -#: ../Doc/library/multiprocessing.rst:1146 +#: ../Doc/library/multiprocessing.rst:1180 msgid "Close the connection." msgstr "Cierra la conexión." -#: ../Doc/library/multiprocessing.rst:1148 +#: ../Doc/library/multiprocessing.rst:1182 msgid "This is called automatically when the connection is garbage collected." msgstr "" "Esto se llama automáticamente cuando la conexión es basura recolectada." -#: ../Doc/library/multiprocessing.rst:1152 +#: ../Doc/library/multiprocessing.rst:1186 msgid "Return whether there is any data available to be read." msgstr "Retorna si hay datos disponibles para leer." -#: ../Doc/library/multiprocessing.rst:1154 +#: ../Doc/library/multiprocessing.rst:1188 msgid "" "If *timeout* is not specified then it will return immediately. If *timeout* " "is a number then this specifies the maximum time in seconds to block. If " @@ -1742,7 +1814,7 @@ msgstr "" "número, esto especifica el tiempo máximo en segundos para bloquear. Si " "*timeout* es ``None``, se usa un tiempo de espera infinito." -#: ../Doc/library/multiprocessing.rst:1158 +#: ../Doc/library/multiprocessing.rst:1192 msgid "" "Note that multiple connection objects may be polled at once by using :func:" "`multiprocessing.connection.wait`." @@ -1750,13 +1822,13 @@ msgstr "" "Tenga en cuenta que se pueden sondear varios objetos de conexión a la vez " "utilizando :func:`multiprocessing.connection.wait`." -#: ../Doc/library/multiprocessing.rst:1163 +#: ../Doc/library/multiprocessing.rst:1197 msgid "Send byte data from a :term:`bytes-like object` as a complete message." msgstr "" "Envía datos de *bytes* desde a :term:`bytes-like object` como un mensaje " "completo." -#: ../Doc/library/multiprocessing.rst:1165 +#: ../Doc/library/multiprocessing.rst:1199 msgid "" "If *offset* is given then data is read from that position in *buffer*. If " "*size* is given then that many bytes will be read from buffer. Very large " @@ -1768,7 +1840,7 @@ msgstr "" "grandes (aproximadamente *32 MiB+*, aunque depende del sistema operativo) " "pueden generar una excepción :exc:`ValueError`" -#: ../Doc/library/multiprocessing.rst:1172 +#: ../Doc/library/multiprocessing.rst:1206 msgid "" "Return a complete message of byte data sent from the other end of the " "connection as a string. Blocks until there is something to receive. Raises :" @@ -1780,7 +1852,7 @@ msgstr "" "haya algo para recibir. Aumenta :exc:`EOFError` si no queda nada por recibir " "y el otro extremo se ha cerrado." -#: ../Doc/library/multiprocessing.rst:1177 +#: ../Doc/library/multiprocessing.rst:1211 msgid "" "If *maxlength* is specified and the message is longer than *maxlength* then :" "exc:`OSError` is raised and the connection will no longer be readable." @@ -1788,7 +1860,7 @@ msgstr "" "Si se especifica *maxlength* y el mensaje es más largo que *maxlength*, " "entonces se lanza un :exc:`OSError` y la conexión ya no será legible." -#: ../Doc/library/multiprocessing.rst:1181 +#: ../Doc/library/multiprocessing.rst:1215 msgid "" "This function used to raise :exc:`IOError`, which is now an alias of :exc:" "`OSError`." @@ -1796,7 +1868,7 @@ msgstr "" "Esta función solía lanzar un :exc:`IOError`, que ahora es un alias de :exc:" "`OSError`." -#: ../Doc/library/multiprocessing.rst:1188 +#: ../Doc/library/multiprocessing.rst:1222 msgid "" "Read into *buffer* a complete message of byte data sent from the other end " "of the connection and return the number of bytes in the message. Blocks " @@ -1808,7 +1880,7 @@ msgstr "" "bloquea hasta que haya algo para recibir. Si no queda nada por recibir y el " "otro extremo está cerrándose se lanza :exc:`EOFError`." -#: ../Doc/library/multiprocessing.rst:1194 +#: ../Doc/library/multiprocessing.rst:1228 msgid "" "*buffer* must be a writable :term:`bytes-like object`. If *offset* is given " "then the message will be written into the buffer from that position. Offset " @@ -1819,7 +1891,7 @@ msgstr "" "compensación debe ser un número entero no negativo menor que la longitud de " "*buffer* (en *bytes*)." -#: ../Doc/library/multiprocessing.rst:1199 +#: ../Doc/library/multiprocessing.rst:1233 msgid "" "If the buffer is too short then a :exc:`BufferTooShort` exception is raised " "and the complete message is available as ``e.args[0]`` where ``e`` is the " @@ -1829,7 +1901,7 @@ msgstr "" "`BufferTooShort` y el mensaje completo está disponible como ``e.args[0]`` " "donde ``e`` es la instancia de excepción." -#: ../Doc/library/multiprocessing.rst:1203 +#: ../Doc/library/multiprocessing.rst:1237 msgid "" "Connection objects themselves can now be transferred between processes " "using :meth:`Connection.send` and :meth:`Connection.recv`." @@ -1837,7 +1909,7 @@ msgstr "" "Los objetos de conexión ahora pueden transferirse entre procesos usando :" "meth:`Connection.send` y :meth:`Connection.recv`." -#: ../Doc/library/multiprocessing.rst:1207 +#: ../Doc/library/multiprocessing.rst:1241 msgid "" "Connection objects now support the context management protocol -- see :ref:" "`typecontextmanager`. :meth:`~contextmanager.__enter__` returns the " @@ -1848,11 +1920,11 @@ msgstr "" "__enter__` retorna el objeto de conexión, y :meth:`~contextmanager.__exit__` " "llama a :meth:`close`." -#: ../Doc/library/multiprocessing.rst:1212 +#: ../Doc/library/multiprocessing.rst:1246 msgid "For example:" msgstr "Por ejemplo:" -#: ../Doc/library/multiprocessing.rst:1237 +#: ../Doc/library/multiprocessing.rst:1271 msgid "" "The :meth:`Connection.recv` method automatically unpickles the data it " "receives, which can be a security risk unless you can trust the process " @@ -1862,7 +1934,7 @@ msgstr "" "recibe, lo que puede ser un riesgo de seguridad a menos que pueda confiar en " "el proceso que envió el mensaje." -#: ../Doc/library/multiprocessing.rst:1241 +#: ../Doc/library/multiprocessing.rst:1275 msgid "" "Therefore, unless the connection object was produced using :func:`Pipe` you " "should only use the :meth:`~Connection.recv` and :meth:`~Connection.send` " @@ -1874,7 +1946,7 @@ msgstr "" "`~Connection.send` después de realizar algún tipo de autenticación. " "Consulte :ref:`multiprocessing-auth-keys`." -#: ../Doc/library/multiprocessing.rst:1248 +#: ../Doc/library/multiprocessing.rst:1282 msgid "" "If a process is killed while it is trying to read or write to a pipe then " "the data in the pipe is likely to become corrupted, because it may become " @@ -1885,11 +1957,11 @@ msgstr "" "porque puede ser imposible estar seguro de dónde se encuentran los límites " "del mensaje." -#: ../Doc/library/multiprocessing.rst:1254 +#: ../Doc/library/multiprocessing.rst:1288 msgid "Synchronization primitives" msgstr "Primitivas de sincronización (*Synchronization primitives*)" -#: ../Doc/library/multiprocessing.rst:1258 +#: ../Doc/library/multiprocessing.rst:1292 msgid "" "Generally synchronization primitives are not as necessary in a multiprocess " "program as they are in a multithreaded program. See the documentation for :" @@ -1899,7 +1971,7 @@ msgstr "" "programa multiproceso como en un programa *multihilos* (*multithreaded*). " "Consulte la documentación para :mod:`threading` ." -#: ../Doc/library/multiprocessing.rst:1262 +#: ../Doc/library/multiprocessing.rst:1296 msgid "" "Note that one can also create synchronization primitives by using a manager " "object -- see :ref:`multiprocessing-managers`." @@ -1908,11 +1980,11 @@ msgstr "" "utilizando un objeto administrador -- consulte :ref:`multiprocessing-" "managers`." -#: ../Doc/library/multiprocessing.rst:1267 +#: ../Doc/library/multiprocessing.rst:1301 msgid "A barrier object: a clone of :class:`threading.Barrier`." msgstr "Un objeto de barrera: un clon de :class:`threading.Barrier`." -#: ../Doc/library/multiprocessing.rst:1273 +#: ../Doc/library/multiprocessing.rst:1307 msgid "" "A bounded semaphore object: a close analog of :class:`threading." "BoundedSemaphore`." @@ -1920,8 +1992,8 @@ msgstr "" "Un objeto semáforo (*semaphore object*) acotado: un análogo cercano de la :" "class:`threading.BoundedSemaphore`." -#: ../Doc/library/multiprocessing.rst:1276 -#: ../Doc/library/multiprocessing.rst:1414 +#: ../Doc/library/multiprocessing.rst:1310 +#: ../Doc/library/multiprocessing.rst:1448 msgid "" "A solitary difference from its close analog exists: its ``acquire`` method's " "first argument is named *block*, as is consistent with :meth:`Lock.acquire`." @@ -1930,7 +2002,7 @@ msgstr "" "de su método ``acquire`` es nombrado *block*, es consistente con :meth:`Lock." "acquire`." -#: ../Doc/library/multiprocessing.rst:1280 +#: ../Doc/library/multiprocessing.rst:1314 msgid "" "On macOS, this is indistinguishable from :class:`Semaphore` because " "``sem_getvalue()`` is not implemented on that platform." @@ -1938,12 +2010,12 @@ msgstr "" "En macOS, esto no se puede distinguir de :class:`Semaphore` porque " "``sem_getvalue()`` no está implementado en esa plataforma." -#: ../Doc/library/multiprocessing.rst:1285 +#: ../Doc/library/multiprocessing.rst:1319 msgid "A condition variable: an alias for :class:`threading.Condition`." msgstr "" "Una variable de condición: un alias para la :class:`threading.Condition`." -#: ../Doc/library/multiprocessing.rst:1287 +#: ../Doc/library/multiprocessing.rst:1321 msgid "" "If *lock* is specified then it should be a :class:`Lock` or :class:`RLock` " "object from :mod:`multiprocessing`." @@ -1951,16 +2023,16 @@ msgstr "" "Si se especifica *lock*, entonces debería ser una :class:`Lock` o :class:" "`RLock` objeto de :mod:`multiprocessing`." -#: ../Doc/library/multiprocessing.rst:1290 -#: ../Doc/library/multiprocessing.rst:1839 +#: ../Doc/library/multiprocessing.rst:1324 +#: ../Doc/library/multiprocessing.rst:1873 msgid "The :meth:`~threading.Condition.wait_for` method was added." msgstr "El método :meth:`~threading.Condition.wait_for` fue a añadido." -#: ../Doc/library/multiprocessing.rst:1295 +#: ../Doc/library/multiprocessing.rst:1329 msgid "A clone of :class:`threading.Event`." msgstr "Un clon de :class:`threading.Event`." -#: ../Doc/library/multiprocessing.rst:1300 +#: ../Doc/library/multiprocessing.rst:1334 msgid "" "A non-recursive lock object: a close analog of :class:`threading.Lock`. Once " "a process or thread has acquired a lock, subsequent attempts to acquire it " @@ -1978,7 +2050,7 @@ msgstr "" "los subprocesos se replican aquí en :class:`multiprocessing.Lock` como se " "aplica a los procesos o subprocesos, excepto como se indica." -#: ../Doc/library/multiprocessing.rst:1308 +#: ../Doc/library/multiprocessing.rst:1342 msgid "" "Note that :class:`Lock` is actually a factory function which returns an " "instance of ``multiprocessing.synchronize.Lock`` initialized with a default " @@ -1988,7 +2060,7 @@ msgstr "" "retorna una instancia de ``multiprocessing.synchronize.Lock`` inicializada " "con un contexto predeterminado." -#: ../Doc/library/multiprocessing.rst:1312 +#: ../Doc/library/multiprocessing.rst:1346 msgid "" ":class:`Lock` supports the :term:`context manager` protocol and thus may be " "used in :keyword:`with` statements." @@ -1996,12 +2068,12 @@ msgstr "" "La :class:`Lock` soporta el protocolo :term:`context manager` y, por lo " "tanto, se puede usar en la declaración :keyword:`with`." -#: ../Doc/library/multiprocessing.rst:1317 -#: ../Doc/library/multiprocessing.rst:1368 +#: ../Doc/library/multiprocessing.rst:1351 +#: ../Doc/library/multiprocessing.rst:1402 msgid "Acquire a lock, blocking or non-blocking." msgstr "Adquiriendo un candado (*lock*), bloqueante o no bloqueante." -#: ../Doc/library/multiprocessing.rst:1319 +#: ../Doc/library/multiprocessing.rst:1353 msgid "" "With the *block* argument set to ``True`` (the default), the method call " "will block until the lock is in an unlocked state, then set it to locked and " @@ -2014,7 +2086,7 @@ msgstr "" "cuenta que el nombre de este primer argumento difiere del que aparece en :" "meth:`threading.Lock.acquire`." -#: ../Doc/library/multiprocessing.rst:1324 +#: ../Doc/library/multiprocessing.rst:1358 msgid "" "With the *block* argument set to ``False``, the method call does not block. " "If the lock is currently in a locked state, return ``False``; otherwise set " @@ -2025,7 +2097,7 @@ msgstr "" "``False``; de lo contrario, configure el bloqueo en un estado bloqueado y " "retorne ``True``." -#: ../Doc/library/multiprocessing.rst:1328 +#: ../Doc/library/multiprocessing.rst:1362 msgid "" "When invoked with a positive, floating-point value for *timeout*, block for " "at most the number of seconds specified by *timeout* as long as the lock can " @@ -2050,7 +2122,7 @@ msgstr "" "Retorna ``True`` si se ha adquirido el candado o ``False`` si ha " "transcurrido el tiempo de espera." -#: ../Doc/library/multiprocessing.rst:1343 +#: ../Doc/library/multiprocessing.rst:1377 msgid "" "Release a lock. This can be called from any process or thread, not only the " "process or thread which originally acquired the lock." @@ -2059,7 +2131,7 @@ msgstr "" "subproceso, no solo desde el proceso o subproceso que originalmente adquirió " "el candado." -#: ../Doc/library/multiprocessing.rst:1346 +#: ../Doc/library/multiprocessing.rst:1380 msgid "" "Behavior is the same as in :meth:`threading.Lock.release` except that when " "invoked on an unlocked lock, a :exc:`ValueError` is raised." @@ -2068,7 +2140,7 @@ msgstr "" "que cuando se invoca en un bloqueo desbloqueado, se genera a :exc:" "`ValueError`." -#: ../Doc/library/multiprocessing.rst:1352 +#: ../Doc/library/multiprocessing.rst:1386 msgid "" "A recursive lock object: a close analog of :class:`threading.RLock`. A " "recursive lock must be released by the process or thread that acquired it. " @@ -2083,7 +2155,7 @@ msgstr "" "bloquearlo; ese proceso o hilo debe liberarlo una vez por cada vez que se " "haya adquirido." -#: ../Doc/library/multiprocessing.rst:1358 +#: ../Doc/library/multiprocessing.rst:1392 msgid "" "Note that :class:`RLock` is actually a factory function which returns an " "instance of ``multiprocessing.synchronize.RLock`` initialized with a default " @@ -2093,7 +2165,7 @@ msgstr "" "retorna una instancia de ``multiprocessing.synchronize.RLock`` inicializada " "con un contexto predeterminado." -#: ../Doc/library/multiprocessing.rst:1362 +#: ../Doc/library/multiprocessing.rst:1396 msgid "" ":class:`RLock` supports the :term:`context manager` protocol and thus may be " "used in :keyword:`with` statements." @@ -2101,7 +2173,7 @@ msgstr "" "La :class:`RLock` admite el protocolo :term:`context manager` y, por lo " "tanto, puede usarse en :keyword:`with`." -#: ../Doc/library/multiprocessing.rst:1370 +#: ../Doc/library/multiprocessing.rst:1404 msgid "" "When invoked with the *block* argument set to ``True``, block until the lock " "is in an unlocked state (not owned by any process or thread) unless the lock " @@ -2123,7 +2195,7 @@ msgstr "" "argumento en comparación con la implementación de :meth:`threading.RLock." "acquire`, comenzando con el nombre del argumento en sí." -#: ../Doc/library/multiprocessing.rst:1380 +#: ../Doc/library/multiprocessing.rst:1414 msgid "" "When invoked with the *block* argument set to ``False``, do not block. If " "the lock has already been acquired (and thus is owned) by another process or " @@ -2141,7 +2213,7 @@ msgstr "" "proceso o subproceso actual toma posesión y el nivel de recurrencia se " "incrementa, lo que resulta en un valor de retorno de ``True``." -#: ../Doc/library/multiprocessing.rst:1388 +#: ../Doc/library/multiprocessing.rst:1422 msgid "" "Use and behaviors of the *timeout* argument are the same as in :meth:`Lock." "acquire`. Note that some of these behaviors of *timeout* differ from the " @@ -2152,7 +2224,7 @@ msgstr "" "*timeout* difieren de los comportamientos implementados en :meth:`threading." "RLock.acquire`." -#: ../Doc/library/multiprocessing.rst:1395 +#: ../Doc/library/multiprocessing.rst:1429 msgid "" "Release a lock, decrementing the recursion level. If after the decrement " "the recursion level is zero, reset the lock to unlocked (not owned by any " @@ -2169,7 +2241,7 @@ msgstr "" "decremento el nivel de recursión sigue siendo distinto de cero, el candado " "permanece bloqueado y pertenece al proceso de llamada o subproceso." -#: ../Doc/library/multiprocessing.rst:1403 +#: ../Doc/library/multiprocessing.rst:1437 msgid "" "Only call this method when the calling process or thread owns the lock. An :" "exc:`AssertionError` is raised if this method is called by a process or " @@ -2184,12 +2256,12 @@ msgstr "" "que el tipo de excepción planteada en esta situación difiere del " "comportamiento implementado en :meth:`threading.RLock.release`." -#: ../Doc/library/multiprocessing.rst:1412 +#: ../Doc/library/multiprocessing.rst:1446 msgid "A semaphore object: a close analog of :class:`threading.Semaphore`." msgstr "" "Un objeto semáforo: un análogo cercano de :class:`threading.Semaphore`." -#: ../Doc/library/multiprocessing.rst:1419 +#: ../Doc/library/multiprocessing.rst:1453 msgid "" "On macOS, ``sem_timedwait`` is unsupported, so calling ``acquire()`` with a " "timeout will emulate that function's behavior using a sleeping loop." @@ -2198,7 +2270,7 @@ msgstr "" "``acquire()`` con un tiempo de espera emulará el comportamiento de esa " "función utilizando un bucle inactivo." -#: ../Doc/library/multiprocessing.rst:1424 +#: ../Doc/library/multiprocessing.rst:1458 msgid "" "If the SIGINT signal generated by :kbd:`Ctrl-C` arrives while the main " "thread is blocked by a call to :meth:`BoundedSemaphore.acquire`, :meth:`Lock." @@ -2212,7 +2284,7 @@ msgstr "" "acquire`, :meth:`Condition.acquire` o :meth:`Condition.wait`, la llamada se " "interrumpirá inmediatamente y :exc:`KeyboardInterrupt` se lanzará." -#: ../Doc/library/multiprocessing.rst:1430 +#: ../Doc/library/multiprocessing.rst:1464 msgid "" "This differs from the behaviour of :mod:`threading` where SIGINT will be " "ignored while the equivalent blocking calls are in progress." @@ -2220,7 +2292,7 @@ msgstr "" "Esto difiere del comportamiento de :mod:`threading` donde SIGINT será " "ignorado mientras las llamadas de candado equivalentes están en progreso." -#: ../Doc/library/multiprocessing.rst:1435 +#: ../Doc/library/multiprocessing.rst:1469 msgid "" "Some of this package's functionality requires a functioning shared semaphore " "implementation on the host operating system. Without one, the :mod:" @@ -2234,11 +2306,11 @@ msgstr "" "importarlo darán como resultado :exc:`ImportError`. Consulte :issue:`3770` " "para información adicional." -#: ../Doc/library/multiprocessing.rst:1443 +#: ../Doc/library/multiprocessing.rst:1477 msgid "Shared :mod:`ctypes` Objects" msgstr "Objetos compartidos :mod:`ctypes`" -#: ../Doc/library/multiprocessing.rst:1445 +#: ../Doc/library/multiprocessing.rst:1479 msgid "" "It is possible to create shared objects using shared memory which can be " "inherited by child processes." @@ -2246,7 +2318,7 @@ msgstr "" "Es posible crear objetos compartidos utilizando memoria compartida que puede " "ser heredada por procesos secundarios." -#: ../Doc/library/multiprocessing.rst:1450 +#: ../Doc/library/multiprocessing.rst:1484 msgid "" "Return a :mod:`ctypes` object allocated from shared memory. By default the " "return value is actually a synchronized wrapper for the object. The object " @@ -2257,8 +2329,8 @@ msgstr "" "el objeto. Se puede acceder al objeto en sí a través del atributo *value* de " "la :class:`Value`." -#: ../Doc/library/multiprocessing.rst:1454 -#: ../Doc/library/multiprocessing.rst:1541 +#: ../Doc/library/multiprocessing.rst:1488 +#: ../Doc/library/multiprocessing.rst:1575 msgid "" "*typecode_or_type* determines the type of the returned object: it is either " "a ctypes type or a one character typecode of the kind used by the :mod:" @@ -2268,7 +2340,7 @@ msgstr "" "*ctypes* o un código de tipo de un carácter del tipo utilizado por el " "módulo :mod:`array`. *\\*args* se pasa al constructor para el tipo." -#: ../Doc/library/multiprocessing.rst:1458 +#: ../Doc/library/multiprocessing.rst:1492 msgid "" "If *lock* is ``True`` (the default) then a new recursive lock object is " "created to synchronize access to the value. If *lock* is a :class:`Lock` " @@ -2284,7 +2356,7 @@ msgstr "" "estará protegido automáticamente por un candado, por lo que no será " "necesariamente \"proceso-seguro\"." -#: ../Doc/library/multiprocessing.rst:1465 +#: ../Doc/library/multiprocessing.rst:1499 msgid "" "Operations like ``+=`` which involve a read and write are not atomic. So " "if, for instance, you want to atomically increment a shared value it is " @@ -2294,7 +2366,7 @@ msgstr "" "atómicas. Entonces, si, por ejemplo, desea incrementar atómicamente un valor " "compartido, es insuficiente simplemente hacer::" -#: ../Doc/library/multiprocessing.rst:1471 +#: ../Doc/library/multiprocessing.rst:1505 msgid "" "Assuming the associated lock is recursive (which it is by default) you can " "instead do ::" @@ -2302,13 +2374,13 @@ msgstr "" "Suponiendo que el candado asociado es recursivo (que es por defecto), puede " "hacer ::" -#: ../Doc/library/multiprocessing.rst:1477 -#: ../Doc/library/multiprocessing.rst:1567 -#: ../Doc/library/multiprocessing.rst:1582 +#: ../Doc/library/multiprocessing.rst:1511 +#: ../Doc/library/multiprocessing.rst:1601 +#: ../Doc/library/multiprocessing.rst:1616 msgid "Note that *lock* is a keyword-only argument." msgstr "Véase que *lock* es un argumento de solo una palabra clave." -#: ../Doc/library/multiprocessing.rst:1481 +#: ../Doc/library/multiprocessing.rst:1515 msgid "" "Return a ctypes array allocated from shared memory. By default the return " "value is actually a synchronized wrapper for the array." @@ -2317,7 +2389,7 @@ msgstr "" "defecto, el valor de retorno es en realidad un contenedor sincronizado para " "el arreglo." -#: ../Doc/library/multiprocessing.rst:1484 +#: ../Doc/library/multiprocessing.rst:1518 msgid "" "*typecode_or_type* determines the type of the elements of the returned " "array: it is either a ctypes type or a one character typecode of the kind " @@ -2334,7 +2406,7 @@ msgstr "" "secuencia que se utiliza para inicializar la matriz y cuya longitud " "determina la longitud de la matriz." -#: ../Doc/library/multiprocessing.rst:1491 +#: ../Doc/library/multiprocessing.rst:1525 msgid "" "If *lock* is ``True`` (the default) then a new lock object is created to " "synchronize access to the value. If *lock* is a :class:`Lock` or :class:" @@ -2350,11 +2422,11 @@ msgstr "" "protegido automáticamente por un candado, por lo que no será necesariamente " "\"proceso seguro\"." -#: ../Doc/library/multiprocessing.rst:1498 +#: ../Doc/library/multiprocessing.rst:1532 msgid "Note that *lock* is a keyword only argument." msgstr "Véase que *lock* es un argumento de solo una palabra clave." -#: ../Doc/library/multiprocessing.rst:1500 +#: ../Doc/library/multiprocessing.rst:1534 msgid "" "Note that an array of :data:`ctypes.c_char` has *value* and *raw* attributes " "which allow one to use it to store and retrieve strings." @@ -2363,11 +2435,11 @@ msgstr "" "*value* y *raw* que le permiten a uno usarlo para almacenar y recuperar " "cadenas de caracteres." -#: ../Doc/library/multiprocessing.rst:1505 +#: ../Doc/library/multiprocessing.rst:1539 msgid "The :mod:`multiprocessing.sharedctypes` module" msgstr "El módulo :mod:`multiprocessing.sharedctypes`" -#: ../Doc/library/multiprocessing.rst:1510 +#: ../Doc/library/multiprocessing.rst:1544 msgid "" "The :mod:`multiprocessing.sharedctypes` module provides functions for " "allocating :mod:`ctypes` objects from shared memory which can be inherited " @@ -2377,7 +2449,7 @@ msgstr "" "asignar objetos :mod:`ctypes` de la memoria compartida que pueden ser " "heredados por procesos secundarios." -#: ../Doc/library/multiprocessing.rst:1516 +#: ../Doc/library/multiprocessing.rst:1550 msgid "" "Although it is possible to store a pointer in shared memory remember that " "this will refer to a location in the address space of a specific process. " @@ -2391,11 +2463,11 @@ msgstr "" "en el contexto de un segundo proceso y tratar de desreferenciar el puntero " "del segundo proceso puede causar un bloqueo." -#: ../Doc/library/multiprocessing.rst:1524 +#: ../Doc/library/multiprocessing.rst:1558 msgid "Return a ctypes array allocated from shared memory." msgstr "Retorna una matriz *ctypes* asignada desde la memoria compartida." -#: ../Doc/library/multiprocessing.rst:1526 +#: ../Doc/library/multiprocessing.rst:1560 msgid "" "*typecode_or_type* determines the type of the elements of the returned " "array: it is either a ctypes type or a one character typecode of the kind " @@ -2412,7 +2484,7 @@ msgstr "" "secuencia que se usa para inicializar la matriz y cuya longitud determina la " "longitud del arreglo." -#: ../Doc/library/multiprocessing.rst:1533 +#: ../Doc/library/multiprocessing.rst:1567 msgid "" "Note that setting and getting an element is potentially non-atomic -- use :" "func:`Array` instead to make sure that access is automatically synchronized " @@ -2422,11 +2494,11 @@ msgstr "" "atómico -- utiliza :func:`Array` en su lugar para asegurarse de que el " "acceso se sincronice automáticamente mediante un candado." -#: ../Doc/library/multiprocessing.rst:1539 +#: ../Doc/library/multiprocessing.rst:1573 msgid "Return a ctypes object allocated from shared memory." msgstr "Retorna un objeto *ctypes* asignado desde la memoria compartida." -#: ../Doc/library/multiprocessing.rst:1545 +#: ../Doc/library/multiprocessing.rst:1579 msgid "" "Note that setting and getting the value is potentially non-atomic -- use :" "func:`Value` instead to make sure that access is automatically synchronized " @@ -2436,7 +2508,7 @@ msgstr "" "atómico -- use :func:`Value` en su lugar para asegurarse de que el acceso se " "sincronice automáticamente mediante un candado." -#: ../Doc/library/multiprocessing.rst:1549 +#: ../Doc/library/multiprocessing.rst:1583 msgid "" "Note that an array of :data:`ctypes.c_char` has ``value`` and ``raw`` " "attributes which allow one to use it to store and retrieve strings -- see " @@ -2446,7 +2518,7 @@ msgstr "" "``value`` y ``raw`` que le permiten a uno usarlo para almacenar y recuperar " "cadenas de caracteres -- consulte la documentación para :mod:`ctypes`." -#: ../Doc/library/multiprocessing.rst:1555 +#: ../Doc/library/multiprocessing.rst:1589 msgid "" "The same as :func:`RawArray` except that depending on the value of *lock* a " "process-safe synchronization wrapper may be returned instead of a raw ctypes " @@ -2456,8 +2528,8 @@ msgstr "" "se puede retornar un contenedor de sincronización seguro para el proceso en " "lugar de un arreglo de tipos crudos." -#: ../Doc/library/multiprocessing.rst:1559 -#: ../Doc/library/multiprocessing.rst:1575 +#: ../Doc/library/multiprocessing.rst:1593 +#: ../Doc/library/multiprocessing.rst:1609 msgid "" "If *lock* is ``True`` (the default) then a new lock object is created to " "synchronize access to the value. If *lock* is a :class:`~multiprocessing." @@ -2473,7 +2545,7 @@ msgstr "" "al objeto retornado no estará protegido automáticamente por un candado, por " "lo que no será necesariamente \"seguro para el proceso\"." -#: ../Doc/library/multiprocessing.rst:1571 +#: ../Doc/library/multiprocessing.rst:1605 msgid "" "The same as :func:`RawValue` except that depending on the value of *lock* a " "process-safe synchronization wrapper may be returned instead of a raw ctypes " @@ -2483,7 +2555,7 @@ msgstr "" "se puede retornar una envoltura de sincronización segura para el proceso en " "lugar de un objeto *ctypes* sin procesar." -#: ../Doc/library/multiprocessing.rst:1586 +#: ../Doc/library/multiprocessing.rst:1620 msgid "" "Return a ctypes object allocated from shared memory which is a copy of the " "ctypes object *obj*." @@ -2491,7 +2563,7 @@ msgstr "" "Retorna un objeto *ctypes* asignado de la memoria compartida, que es una " "copia del objeto *ctypes* *obj*." -#: ../Doc/library/multiprocessing.rst:1591 +#: ../Doc/library/multiprocessing.rst:1625 msgid "" "Return a process-safe wrapper object for a ctypes object which uses *lock* " "to synchronize access. If *lock* is ``None`` (the default) then a :class:" @@ -2501,7 +2573,7 @@ msgstr "" "para sincronizar el acceso. Si *lock* es ``None`` (el valor predeterminado), " "se crea automáticamente un objeto :class:`multiprocessing.RLock`." -#: ../Doc/library/multiprocessing.rst:1595 +#: ../Doc/library/multiprocessing.rst:1629 msgid "" "A synchronized wrapper will have two methods in addition to those of the " "object it wraps: :meth:`get_obj` returns the wrapped object and :meth:" @@ -2511,7 +2583,7 @@ msgstr "" "envuelve: :meth:`get_obj` retorna el objeto envuelto y :meth:`get_lock` " "retorna el objeto de bloqueo utilizado para la sincronización." -#: ../Doc/library/multiprocessing.rst:1599 +#: ../Doc/library/multiprocessing.rst:1633 msgid "" "Note that accessing the ctypes object through the wrapper can be a lot " "slower than accessing the raw ctypes object." @@ -2519,12 +2591,12 @@ msgstr "" "Tenga en cuenta que acceder al objeto *ctypes* a través del contenedor puede " "ser mucho más lento que acceder al objeto *ctypes* sin formato." -#: ../Doc/library/multiprocessing.rst:1602 +#: ../Doc/library/multiprocessing.rst:1636 msgid "Synchronized objects support the :term:`context manager` protocol." msgstr "" "Los objetos sincronizados admiten el protocolo: :term:`context manager`." -#: ../Doc/library/multiprocessing.rst:1606 +#: ../Doc/library/multiprocessing.rst:1640 msgid "" "The table below compares the syntax for creating shared ctypes objects from " "shared memory with the normal ctypes syntax. (In the table ``MyStruct`` is " @@ -2534,63 +2606,63 @@ msgstr "" "compartidos desde la memoria compartida con la sintaxis *ctypes* normal. (En " "la tabla ``MyStruct`` hay alguna subclase de :class:`ctypes.Structure`.)" -#: ../Doc/library/multiprocessing.rst:1611 +#: ../Doc/library/multiprocessing.rst:1645 msgid "ctypes" msgstr "*ctypes*" -#: ../Doc/library/multiprocessing.rst:1611 +#: ../Doc/library/multiprocessing.rst:1645 msgid "sharedctypes using type" msgstr "*sharedctypes* usando *type*" -#: ../Doc/library/multiprocessing.rst:1611 +#: ../Doc/library/multiprocessing.rst:1645 msgid "sharedctypes using typecode" msgstr "*sharedctypes* usando *typecode*" -#: ../Doc/library/multiprocessing.rst:1613 +#: ../Doc/library/multiprocessing.rst:1647 msgid "c_double(2.4)" msgstr "*c_double(2.4)*" -#: ../Doc/library/multiprocessing.rst:1613 +#: ../Doc/library/multiprocessing.rst:1647 msgid "RawValue(c_double, 2.4)" msgstr "*RawValue(c_double, 2.4)*" -#: ../Doc/library/multiprocessing.rst:1613 +#: ../Doc/library/multiprocessing.rst:1647 msgid "RawValue('d', 2.4)" msgstr "*RawValue('d', 2.4)*" -#: ../Doc/library/multiprocessing.rst:1614 +#: ../Doc/library/multiprocessing.rst:1648 msgid "MyStruct(4, 6)" msgstr "*MyStruct(4, 6)*" -#: ../Doc/library/multiprocessing.rst:1614 +#: ../Doc/library/multiprocessing.rst:1648 msgid "RawValue(MyStruct, 4, 6)" msgstr "*RawValue(MyStruct, 4, 6)*" -#: ../Doc/library/multiprocessing.rst:1615 +#: ../Doc/library/multiprocessing.rst:1649 msgid "(c_short * 7)()" msgstr "*(c_short * 7)()*" -#: ../Doc/library/multiprocessing.rst:1615 +#: ../Doc/library/multiprocessing.rst:1649 msgid "RawArray(c_short, 7)" msgstr "*RawArray(c_short, 7)*" -#: ../Doc/library/multiprocessing.rst:1615 +#: ../Doc/library/multiprocessing.rst:1649 msgid "RawArray('h', 7)" msgstr "*RawArray(‘h’, 7)*" -#: ../Doc/library/multiprocessing.rst:1616 +#: ../Doc/library/multiprocessing.rst:1650 msgid "(c_int * 3)(9, 2, 8)" msgstr "*(c_int * 3)(9, 2, 8)*" -#: ../Doc/library/multiprocessing.rst:1616 +#: ../Doc/library/multiprocessing.rst:1650 msgid "RawArray(c_int, (9, 2, 8))" msgstr "*RawArray(c_int, (9, 2, 8))*" -#: ../Doc/library/multiprocessing.rst:1616 +#: ../Doc/library/multiprocessing.rst:1650 msgid "RawArray('i', (9, 2, 8))" msgstr "*RawArray('i', (9, 2, 8))*" -#: ../Doc/library/multiprocessing.rst:1620 +#: ../Doc/library/multiprocessing.rst:1654 msgid "" "Below is an example where a number of ctypes objects are modified by a child " "process::" @@ -2598,15 +2670,15 @@ msgstr "" "A continuación se muestra un ejemplo donde un número de objetos *ctypes* son " "modificados por un proceso hijo::" -#: ../Doc/library/multiprocessing.rst:1658 +#: ../Doc/library/multiprocessing.rst:1692 msgid "The results printed are ::" msgstr "Los resultados impresos son ::" -#: ../Doc/library/multiprocessing.rst:1671 +#: ../Doc/library/multiprocessing.rst:1705 msgid "Managers" msgstr "Administradores (*Managers*)" -#: ../Doc/library/multiprocessing.rst:1673 +#: ../Doc/library/multiprocessing.rst:1707 msgid "" "Managers provide a way to create data which can be shared between different " "processes, including sharing over a network between processes running on " @@ -2621,7 +2693,7 @@ msgstr "" "(*objetos compartidos*). Otros procesos pueden acceder a los objetos " "compartidos mediante el uso de servidores proxy." -#: ../Doc/library/multiprocessing.rst:1682 +#: ../Doc/library/multiprocessing.rst:1716 msgid "" "Returns a started :class:`~multiprocessing.managers.SyncManager` object " "which can be used for sharing objects between processes. The returned " @@ -2634,7 +2706,7 @@ msgstr "" "métodos que crearán objetos compartidos y retornarán los proxies " "correspondientes." -#: ../Doc/library/multiprocessing.rst:1690 +#: ../Doc/library/multiprocessing.rst:1724 msgid "" "Manager processes will be shutdown as soon as they are garbage collected or " "their parent process exits. The manager classes are defined in the :mod:" @@ -2644,11 +2716,11 @@ msgstr "" "basura o salga su proceso padre. Las clases de administrador se definen en " "el módulo :mod:`multiprocessing.managers`:" -#: ../Doc/library/multiprocessing.rst:1696 +#: ../Doc/library/multiprocessing.rst:1730 msgid "Create a BaseManager object." msgstr "Crear un objeto *BaseManager*." -#: ../Doc/library/multiprocessing.rst:1698 +#: ../Doc/library/multiprocessing.rst:1732 msgid "" "Once created one should call :meth:`start` or ``get_server()." "serve_forever()`` to ensure that the manager object refers to a started " @@ -2658,7 +2730,7 @@ msgstr "" "serve_forever()`` para asegurarse de que el objeto de administrador se " "refiera a un proceso de administrador iniciado." -#: ../Doc/library/multiprocessing.rst:1701 +#: ../Doc/library/multiprocessing.rst:1735 msgid "" "*address* is the address on which the manager process listens for new " "connections. If *address* is ``None`` then an arbitrary one is chosen." @@ -2666,7 +2738,7 @@ msgstr "" "*address* es la dirección en la que el proceso del administrador escucha las " "nuevas conexiones. Si *address* es ``None``, se elige una arbitrariamente." -#: ../Doc/library/multiprocessing.rst:1704 +#: ../Doc/library/multiprocessing.rst:1738 msgid "" "*authkey* is the authentication key which will be used to check the validity " "of incoming connections to the server process. If *authkey* is ``None`` " @@ -2678,7 +2750,7 @@ msgstr "" "``None``, entonces se usa ``current_process().authkey``. De lo contrario, se " "usa *authkey* y debe ser una cadena de *bytes*." -#: ../Doc/library/multiprocessing.rst:1709 +#: ../Doc/library/multiprocessing.rst:1743 msgid "" "*serializer* must be ``'pickle'`` (use :mod:`pickle` serialization) or " "``'xmlrpclib'`` (use :mod:`xmlrpc.client` serialization)." @@ -2686,7 +2758,7 @@ msgstr "" "*serializer* debe ser ``'pickle'`` (usar serialización :mod:`pickle`) o " "``'xmlrpclib'`` (usar serialización :mod:`xmlrpc.client`)." -#: ../Doc/library/multiprocessing.rst:1712 +#: ../Doc/library/multiprocessing.rst:1746 msgid "" "*ctx* is a context object, or ``None`` (use the current context). See the :" "func:`get_context` function." @@ -2694,7 +2766,7 @@ msgstr "" "*ctx* es un objeto de contexto, o ``None`` (utilice el contexto actual). " "Consulte la función :func:`get_context`." -#: ../Doc/library/multiprocessing.rst:1715 +#: ../Doc/library/multiprocessing.rst:1749 msgid "" "*shutdown_timeout* is a timeout in seconds used to wait until the process " "used by the manager completes in the :meth:`shutdown` method. If the " @@ -2707,11 +2779,11 @@ msgstr "" "finaliza. Si la finalización del proceso también supera el tiempo de espera, " "el proceso se cancela." -#: ../Doc/library/multiprocessing.rst:1720 +#: ../Doc/library/multiprocessing.rst:1754 msgid "Added the *shutdown_timeout* parameter." msgstr "Se agregó el parámetro *shutdown_timeout*." -#: ../Doc/library/multiprocessing.rst:1725 +#: ../Doc/library/multiprocessing.rst:1759 msgid "" "Start a subprocess to start the manager. If *initializer* is not ``None`` " "then the subprocess will call ``initializer(*initargs)`` when it starts." @@ -2720,7 +2792,7 @@ msgstr "" "es ``None``, entonces el subproceso llamará ``initializer(*initargs)`` " "cuando se inicie." -#: ../Doc/library/multiprocessing.rst:1730 +#: ../Doc/library/multiprocessing.rst:1764 msgid "" "Returns a :class:`Server` object which represents the actual server under " "the control of the Manager. The :class:`Server` object supports the :meth:" @@ -2730,17 +2802,17 @@ msgstr "" "control del Administrador. El objeto :class:`Server` admite el método :meth:" "`serve_forever`::" -#: ../Doc/library/multiprocessing.rst:1739 +#: ../Doc/library/multiprocessing.rst:1773 msgid ":class:`Server` additionally has an :attr:`address` attribute." msgstr ":class:`Server` tiene un atributo adicional :attr:`address`." -#: ../Doc/library/multiprocessing.rst:1743 +#: ../Doc/library/multiprocessing.rst:1777 msgid "Connect a local manager object to a remote manager process::" msgstr "" "Conecta un objeto de administrador (*manager*) local a un proceso de " "administrador remoto::" -#: ../Doc/library/multiprocessing.rst:1751 +#: ../Doc/library/multiprocessing.rst:1785 msgid "" "Stop the process used by the manager. This is only available if :meth:" "`start` has been used to start the server process." @@ -2749,11 +2821,11 @@ msgstr "" "disponible si :meth:`start` se ha utilizado para iniciar el proceso del " "servidor." -#: ../Doc/library/multiprocessing.rst:1754 +#: ../Doc/library/multiprocessing.rst:1788 msgid "This can be called multiple times." msgstr "Esto se puede llamar múltiples veces." -#: ../Doc/library/multiprocessing.rst:1758 +#: ../Doc/library/multiprocessing.rst:1792 msgid "" "A classmethod which can be used for registering a type or callable with the " "manager class." @@ -2761,7 +2833,7 @@ msgstr "" "Un método de clase que puede usarse para registrar un tipo o invocarse con " "la clase de administrador (*manager*)." -#: ../Doc/library/multiprocessing.rst:1761 +#: ../Doc/library/multiprocessing.rst:1795 msgid "" "*typeid* is a \"type identifier\" which is used to identify a particular " "type of shared object. This must be a string." @@ -2769,7 +2841,7 @@ msgstr "" "*typeid* es un \"identificador de tipo\" que se utiliza para identificar un " "tipo particular de objeto compartido. Esto debe ser una cadena de caracteres." -#: ../Doc/library/multiprocessing.rst:1764 +#: ../Doc/library/multiprocessing.rst:1798 msgid "" "*callable* is a callable used for creating objects for this type " "identifier. If a manager instance will be connected to the server using " @@ -2781,7 +2853,7 @@ msgstr "" "servidor utilizando el método :meth:`connect`, o si el argumento " "*create_method* es ``False``, esto se puede dejar como ``None``." -#: ../Doc/library/multiprocessing.rst:1770 +#: ../Doc/library/multiprocessing.rst:1804 msgid "" "*proxytype* is a subclass of :class:`BaseProxy` which is used to create " "proxies for shared objects with this *typeid*. If ``None`` then a proxy " @@ -2791,7 +2863,7 @@ msgstr "" "*proxies* para objetos compartidos con este *typeid*. Si ``None``, se crea " "automáticamente una clase proxy." -#: ../Doc/library/multiprocessing.rst:1774 +#: ../Doc/library/multiprocessing.rst:1808 msgid "" "*exposed* is used to specify a sequence of method names which proxies for " "this typeid should be allowed to access using :meth:`BaseProxy." @@ -2810,7 +2882,7 @@ msgstr "" "\"método público\" significa cualquier atributo que tenga un método :meth:" "`~object.__call__` y cuyo nombre no comience con ``'_'``.)" -#: ../Doc/library/multiprocessing.rst:1783 +#: ../Doc/library/multiprocessing.rst:1817 msgid "" "*method_to_typeid* is a mapping used to specify the return type of those " "exposed methods which should return a proxy. It maps method names to typeid " @@ -2827,7 +2899,7 @@ msgstr "" "asignación es ``None`` entonces el objeto retornado por el método se copiará " "por valor." -#: ../Doc/library/multiprocessing.rst:1790 +#: ../Doc/library/multiprocessing.rst:1824 msgid "" "*create_method* determines whether a method should be created with name " "*typeid* which can be used to tell the server process to create a new shared " @@ -2837,17 +2909,17 @@ msgstr "" "que se puede usar para indicarle al proceso del servidor que cree un nuevo " "objeto compartido y retornando un proxy para él. Por defecto es ``True``." -#: ../Doc/library/multiprocessing.rst:1794 +#: ../Doc/library/multiprocessing.rst:1828 msgid ":class:`BaseManager` instances also have one read-only property:" msgstr "" ":class:`BaseManager` las instancias también tienen una propiedad de solo " "lectura:" -#: ../Doc/library/multiprocessing.rst:1798 +#: ../Doc/library/multiprocessing.rst:1832 msgid "The address used by the manager." msgstr "La dirección utilizada por el administrador." -#: ../Doc/library/multiprocessing.rst:1800 +#: ../Doc/library/multiprocessing.rst:1834 msgid "" "Manager objects support the context management protocol -- see :ref:" "`typecontextmanager`. :meth:`~contextmanager.__enter__` starts the server " @@ -2859,7 +2931,7 @@ msgstr "" "el proceso del servidor (si aún no se ha iniciado) y luego retorna el objeto " "de administrador. :meth:`~contextmanager .__exit__` llama :meth:`shutdown`." -#: ../Doc/library/multiprocessing.rst:1806 +#: ../Doc/library/multiprocessing.rst:1840 msgid "" "In previous versions :meth:`~contextmanager.__enter__` did not start the " "manager's server process if it was not already started." @@ -2867,7 +2939,7 @@ msgstr "" "En versiones anteriores :meth:`~contextmanager.__enter__` no iniciaba el " "proceso del servidor del administrador si aún no se había iniciado." -#: ../Doc/library/multiprocessing.rst:1811 +#: ../Doc/library/multiprocessing.rst:1845 msgid "" "A subclass of :class:`BaseManager` which can be used for the synchronization " "of processes. Objects of this type are returned by :func:`multiprocessing." @@ -2877,7 +2949,7 @@ msgstr "" "sincronización de procesos. Los objetos de este tipo son retornados por :" "func:`multiprocessing.Manager`." -#: ../Doc/library/multiprocessing.rst:1815 +#: ../Doc/library/multiprocessing.rst:1849 msgid "" "Its methods create and return :ref:`multiprocessing-proxy_objects` for a " "number of commonly used data types to be synchronized across processes. This " @@ -2887,14 +2959,14 @@ msgstr "" "varios tipos de datos de uso común que se sincronizarán entre procesos. Esto " "incluye notablemente listas compartidas y diccionarios." -#: ../Doc/library/multiprocessing.rst:1821 +#: ../Doc/library/multiprocessing.rst:1855 msgid "" "Create a shared :class:`threading.Barrier` object and return a proxy for it." msgstr "" ":class:`threading.Barrier` crea un objeto compartido y retorna un proxy para " "él." -#: ../Doc/library/multiprocessing.rst:1828 +#: ../Doc/library/multiprocessing.rst:1862 msgid "" "Create a shared :class:`threading.BoundedSemaphore` object and return a " "proxy for it." @@ -2902,7 +2974,7 @@ msgstr "" "Crea un objeto compartido :class:`threading.BoundedSemaphore` y retorna un " "proxy para él." -#: ../Doc/library/multiprocessing.rst:1833 +#: ../Doc/library/multiprocessing.rst:1867 msgid "" "Create a shared :class:`threading.Condition` object and return a proxy for " "it." @@ -2910,7 +2982,7 @@ msgstr "" "Crea un objeto compartido :class:`threading.Condition` y retorna un proxy " "para él." -#: ../Doc/library/multiprocessing.rst:1836 +#: ../Doc/library/multiprocessing.rst:1870 msgid "" "If *lock* is supplied then it should be a proxy for a :class:`threading." "Lock` or :class:`threading.RLock` object." @@ -2918,37 +2990,37 @@ msgstr "" "Si se proporciona *lock*, debería ser un proxy para un objeto :class:" "`threading.Lock` o :class:`threading.RLock`." -#: ../Doc/library/multiprocessing.rst:1844 +#: ../Doc/library/multiprocessing.rst:1878 msgid "" "Create a shared :class:`threading.Event` object and return a proxy for it." msgstr "" "Crea un objeto compartido :class:`threading.Event` y retorna un proxy para " "él." -#: ../Doc/library/multiprocessing.rst:1848 +#: ../Doc/library/multiprocessing.rst:1882 msgid "" "Create a shared :class:`threading.Lock` object and return a proxy for it." msgstr "" "Crea un objeto compartido :class:`threading.Lock` y retorna un proxy para él." -#: ../Doc/library/multiprocessing.rst:1852 +#: ../Doc/library/multiprocessing.rst:1886 msgid "Create a shared :class:`Namespace` object and return a proxy for it." msgstr "" "Crea un objeto compartido :class:`Namespace` y retorna un proxy para él." -#: ../Doc/library/multiprocessing.rst:1856 +#: ../Doc/library/multiprocessing.rst:1890 msgid "Create a shared :class:`queue.Queue` object and return a proxy for it." msgstr "" "Crea un objeto compartido :class:`queue.Queue` y retorna un proxy para él." -#: ../Doc/library/multiprocessing.rst:1860 +#: ../Doc/library/multiprocessing.rst:1894 msgid "" "Create a shared :class:`threading.RLock` object and return a proxy for it." msgstr "" "Crea un objeto compartido :class:`threading.RLock` y retorna un proxy para " "él." -#: ../Doc/library/multiprocessing.rst:1864 +#: ../Doc/library/multiprocessing.rst:1898 msgid "" "Create a shared :class:`threading.Semaphore` object and return a proxy for " "it." @@ -2956,11 +3028,11 @@ msgstr "" "Crea un objeto compartido :class:`threading.Semaphore` y retorna un proxy " "para él." -#: ../Doc/library/multiprocessing.rst:1869 +#: ../Doc/library/multiprocessing.rst:1903 msgid "Create an array and return a proxy for it." msgstr "Crea un arreglo y retorna un proxy para ello." -#: ../Doc/library/multiprocessing.rst:1873 +#: ../Doc/library/multiprocessing.rst:1907 msgid "" "Create an object with a writable ``value`` attribute and return a proxy for " "it." @@ -2968,15 +3040,15 @@ msgstr "" "Crea un objeto con un atributo de escritura ``value`` y retorna un proxy " "para él." -#: ../Doc/library/multiprocessing.rst:1880 +#: ../Doc/library/multiprocessing.rst:1914 msgid "Create a shared :class:`dict` object and return a proxy for it." msgstr "Crea un objeto compartido :class:`dict` y retorna un proxy para él." -#: ../Doc/library/multiprocessing.rst:1885 +#: ../Doc/library/multiprocessing.rst:1919 msgid "Create a shared :class:`list` object and return a proxy for it." msgstr "Crea un objeto compartido :class:`list` y retorna un proxy para él." -#: ../Doc/library/multiprocessing.rst:1887 +#: ../Doc/library/multiprocessing.rst:1921 msgid "" "Shared objects are capable of being nested. For example, a shared container " "object such as a shared list can contain other shared objects which will all " @@ -2986,11 +3058,11 @@ msgstr "" "compartido, como una lista compartida, puede contener otros objetos " "compartidos que serán administrados y sincronizados por :class:`SyncManager`." -#: ../Doc/library/multiprocessing.rst:1894 +#: ../Doc/library/multiprocessing.rst:1928 msgid "A type that can register with :class:`SyncManager`." msgstr "Un tipo que puede registrarse con :class:`SyncManager`." -#: ../Doc/library/multiprocessing.rst:1896 +#: ../Doc/library/multiprocessing.rst:1930 msgid "" "A namespace object has no public methods, but does have writable attributes. " "Its representation shows the values of its attributes." @@ -2999,7 +3071,7 @@ msgstr "" "atributos de escritura. Su representación muestra los valores de sus " "atributos." -#: ../Doc/library/multiprocessing.rst:1899 +#: ../Doc/library/multiprocessing.rst:1933 msgid "" "However, when using a proxy for a namespace object, an attribute beginning " "with ``'_'`` will be an attribute of the proxy and not an attribute of the " @@ -3009,11 +3081,11 @@ msgstr "" "atributo que comience con ``'_'`` será un atributo del proxy y no un " "atributo del referente:" -#: ../Doc/library/multiprocessing.rst:1915 +#: ../Doc/library/multiprocessing.rst:1950 msgid "Customized managers" msgstr "Administradores customizables (*Customized managers*)" -#: ../Doc/library/multiprocessing.rst:1917 +#: ../Doc/library/multiprocessing.rst:1952 msgid "" "To create one's own manager, one creates a subclass of :class:`BaseManager` " "and uses the :meth:`~BaseManager.register` classmethod to register new types " @@ -3024,11 +3096,11 @@ msgstr "" "para registrar nuevos tipos o llamadas con la clase de administrador. Por " "ejemplo::" -#: ../Doc/library/multiprocessing.rst:1942 +#: ../Doc/library/multiprocessing.rst:1977 msgid "Using a remote manager" msgstr "Utilizando un administrador remoto" -#: ../Doc/library/multiprocessing.rst:1944 +#: ../Doc/library/multiprocessing.rst:1979 msgid "" "It is possible to run a manager server on one machine and have clients use " "it from other machines (assuming that the firewalls involved allow it)." @@ -3037,7 +3109,7 @@ msgstr "" "clientes lo usen desde otras máquinas (suponiendo que los cortafuegos " "involucrados lo permitan)." -#: ../Doc/library/multiprocessing.rst:1947 +#: ../Doc/library/multiprocessing.rst:1982 msgid "" "Running the following commands creates a server for a single shared queue " "which remote clients can access::" @@ -3045,15 +3117,15 @@ msgstr "" "La ejecución de los siguientes comandos crea un servidor para una única cola " "compartida a la que los clientes remotos pueden acceder::" -#: ../Doc/library/multiprocessing.rst:1959 +#: ../Doc/library/multiprocessing.rst:1994 msgid "One client can access the server as follows::" msgstr "Un cliente puede tener accesos al servidor de la siguiente manera::" -#: ../Doc/library/multiprocessing.rst:1969 +#: ../Doc/library/multiprocessing.rst:2004 msgid "Another client can also use it::" msgstr "Otro cliente puede también usarlo::" -#: ../Doc/library/multiprocessing.rst:1980 +#: ../Doc/library/multiprocessing.rst:2015 msgid "" "Local processes can also access that queue, using the code from above on the " "client to access it remotely::" @@ -3061,11 +3133,11 @@ msgstr "" "Los procesos locales también pueden acceder a esa cola (*queue*), utilizando " "el código de arriba en el cliente para acceder de forma remota::" -#: ../Doc/library/multiprocessing.rst:2005 +#: ../Doc/library/multiprocessing.rst:2040 msgid "Proxy Objects" msgstr "Objetos Proxy (*Proxy Objects*)" -#: ../Doc/library/multiprocessing.rst:2007 +#: ../Doc/library/multiprocessing.rst:2042 msgid "" "A proxy is an object which *refers* to a shared object which lives " "(presumably) in a different process. The shared object is said to be the " @@ -3076,7 +3148,7 @@ msgstr "" "es el *referente* del proxy. Varios objetos proxy pueden tener el mismo " "referente." -#: ../Doc/library/multiprocessing.rst:2011 +#: ../Doc/library/multiprocessing.rst:2046 msgid "" "A proxy object has methods which invoke corresponding methods of its " "referent (although not every method of the referent will necessarily be " @@ -3088,7 +3160,7 @@ msgstr "" "disponibles a través del proxy). De esta manera, un proxy se puede usar al " "igual que su referente:" -#: ../Doc/library/multiprocessing.rst:2029 +#: ../Doc/library/multiprocessing.rst:2064 msgid "" "Notice that applying :func:`str` to a proxy will return the representation " "of the referent, whereas applying :func:`repr` will return the " @@ -3098,7 +3170,7 @@ msgstr "" "representación del referente, mientras que la aplicación :func:`repr` " "retornará la representación del proxy." -#: ../Doc/library/multiprocessing.rst:2033 +#: ../Doc/library/multiprocessing.rst:2068 msgid "" "An important feature of proxy objects is that they are picklable so they can " "be passed between processes. As such, a referent can contain :ref:" @@ -3110,13 +3182,13 @@ msgstr "" "contener :ref:`multiprocessing-proxy_objects`. Esto permite anidar estas " "listas administradas, dictados y otros :ref:`multiprocessing-proxy_objects`:" -#: ../Doc/library/multiprocessing.rst:2049 +#: ../Doc/library/multiprocessing.rst:2084 msgid "Similarly, dict and list proxies may be nested inside one another::" msgstr "" "Del mismo modo, los proxies *dict* y *list* pueden estar anidados uno dentro " "del otro::" -#: ../Doc/library/multiprocessing.rst:2062 +#: ../Doc/library/multiprocessing.rst:2097 msgid "" "If standard (non-proxy) :class:`list` or :class:`dict` objects are contained " "in a referent, modifications to those mutable values will not be propagated " @@ -3135,7 +3207,7 @@ msgstr "" "por lo tanto, para modificar efectivamente dicho elemento, uno podría " "reasignar el valor modificado al proxy de contenedor::" -#: ../Doc/library/multiprocessing.rst:2081 +#: ../Doc/library/multiprocessing.rst:2116 msgid "" "This approach is perhaps less convenient than employing nested :ref:" "`multiprocessing-proxy_objects` for most use cases but also demonstrates a " @@ -3145,7 +3217,7 @@ msgstr "" "`multiprocessing-proxy_objects` para la mayoría de los casos de uso, pero " "también demuestra un nivel de control sobre la sincronización." -#: ../Doc/library/multiprocessing.rst:2087 +#: ../Doc/library/multiprocessing.rst:2122 msgid "" "The proxy types in :mod:`multiprocessing` do nothing to support comparisons " "by value. So, for instance, we have:" @@ -3153,35 +3225,35 @@ msgstr "" "Los tipos de proxy en :mod:`multiprocessing` no hacen nada para admitir " "comparaciones por valor. Entonces, por ejemplo, tenemos:" -#: ../Doc/library/multiprocessing.rst:2095 +#: ../Doc/library/multiprocessing.rst:2130 msgid "" "One should just use a copy of the referent instead when making comparisons." msgstr "" "En su lugar, se debe usar una copia del referente al hacer comparaciones." -#: ../Doc/library/multiprocessing.rst:2099 +#: ../Doc/library/multiprocessing.rst:2134 msgid "Proxy objects are instances of subclasses of :class:`BaseProxy`." msgstr "Los objetos proxy son instancias de subclases de :class:`BaseProxy`." -#: ../Doc/library/multiprocessing.rst:2103 +#: ../Doc/library/multiprocessing.rst:2138 msgid "Call and return the result of a method of the proxy's referent." msgstr "Llama y retorna el resultado de un método del referente del proxy." -#: ../Doc/library/multiprocessing.rst:2105 +#: ../Doc/library/multiprocessing.rst:2140 msgid "" "If ``proxy`` is a proxy whose referent is ``obj`` then the expression ::" msgstr "" "Si ``proxy`` es un proxy cuyo referente es ``obj`` entonces la expresión ::" -#: ../Doc/library/multiprocessing.rst:2109 +#: ../Doc/library/multiprocessing.rst:2144 msgid "will evaluate the expression ::" msgstr "evaluará la expresión ::" -#: ../Doc/library/multiprocessing.rst:2113 +#: ../Doc/library/multiprocessing.rst:2148 msgid "in the manager's process." msgstr "en el proceso del administrador." -#: ../Doc/library/multiprocessing.rst:2115 +#: ../Doc/library/multiprocessing.rst:2150 msgid "" "The returned value will be a copy of the result of the call or a proxy to a " "new shared object -- see documentation for the *method_to_typeid* argument " @@ -3191,7 +3263,7 @@ msgstr "" "un nuevo objeto compartido; consulte la documentación del argumento " "*method_to_typeid* de :meth:`BaseManager.register`." -#: ../Doc/library/multiprocessing.rst:2119 +#: ../Doc/library/multiprocessing.rst:2154 msgid "" "If an exception is raised by the call, then is re-raised by :meth:" "`_callmethod`. If some other exception is raised in the manager's process " @@ -3203,7 +3275,7 @@ msgstr "" "administrador, esto se convierte en una excepción :exc:`RemoteError` y se " "genera mediante :meth:`_callmethod`." -#: ../Doc/library/multiprocessing.rst:2124 +#: ../Doc/library/multiprocessing.rst:2159 msgid "" "Note in particular that an exception will be raised if *methodname* has not " "been *exposed*." @@ -3211,33 +3283,33 @@ msgstr "" "Tenga en cuenta en particular que se lanzará una excepción si *methodname* " "no ha sido *exposed*." -#: ../Doc/library/multiprocessing.rst:2127 +#: ../Doc/library/multiprocessing.rst:2162 msgid "An example of the usage of :meth:`_callmethod`:" msgstr "Un ejemplo de uso de :meth:`_callmethod`:" -#: ../Doc/library/multiprocessing.rst:2143 +#: ../Doc/library/multiprocessing.rst:2178 msgid "Return a copy of the referent." msgstr "Retorna una copia del referente." -#: ../Doc/library/multiprocessing.rst:2145 +#: ../Doc/library/multiprocessing.rst:2180 msgid "If the referent is unpicklable then this will raise an exception." msgstr "" "Si el referente no se puede deserializar (*unpicklable*), esto lanzará una " "excepción." -#: ../Doc/library/multiprocessing.rst:2149 +#: ../Doc/library/multiprocessing.rst:2184 msgid "Return a representation of the proxy object." msgstr "Retorna una representación de un objeto proxy." -#: ../Doc/library/multiprocessing.rst:2153 +#: ../Doc/library/multiprocessing.rst:2188 msgid "Return the representation of the referent." msgstr "Retorna una representación del referente." -#: ../Doc/library/multiprocessing.rst:2157 +#: ../Doc/library/multiprocessing.rst:2192 msgid "Cleanup" msgstr "Limpieza (*Cleanup*)" -#: ../Doc/library/multiprocessing.rst:2159 +#: ../Doc/library/multiprocessing.rst:2194 msgid "" "A proxy object uses a weakref callback so that when it gets garbage " "collected it deregisters itself from the manager which owns its referent." @@ -3246,7 +3318,7 @@ msgstr "" "débil (*weakref*) para que cuando sea recolectado por el recolector de " "basura se da de baja del administrador que posee su referente." -#: ../Doc/library/multiprocessing.rst:2162 +#: ../Doc/library/multiprocessing.rst:2197 msgid "" "A shared object gets deleted from the manager process when there are no " "longer any proxies referring to it." @@ -3254,11 +3326,11 @@ msgstr "" "Un objeto compartido se elimina del proceso del administrador cuando ya no " "hay ningún proxy que se refiera a él." -#: ../Doc/library/multiprocessing.rst:2167 +#: ../Doc/library/multiprocessing.rst:2202 msgid "Process Pools" msgstr "Piscinas de procesos (*Process Pools*)" -#: ../Doc/library/multiprocessing.rst:2172 +#: ../Doc/library/multiprocessing.rst:2207 msgid "" "One can create a pool of processes which will carry out tasks submitted to " "it with the :class:`Pool` class." @@ -3266,7 +3338,7 @@ msgstr "" "Se puede crear un grupo de procesos que llevarán a cabo las tareas que se le " "presenten con la :class:`Pool` class." -#: ../Doc/library/multiprocessing.rst:2177 +#: ../Doc/library/multiprocessing.rst:2212 msgid "" "A process pool object which controls a pool of worker processes to which " "jobs can be submitted. It supports asynchronous results with timeouts and " @@ -3277,7 +3349,7 @@ msgstr "" "tiempos de espera y devoluciones de llamada y tiene una implementación de " "mapa paralelo." -#: ../Doc/library/multiprocessing.rst:2181 +#: ../Doc/library/multiprocessing.rst:2216 msgid "" "*processes* is the number of worker processes to use. If *processes* is " "``None`` then the number returned by :func:`os.cpu_count` is used." @@ -3285,8 +3357,8 @@ msgstr "" "*processes* es el número de procesos de trabajo a utilizar. Si *processes* " "es ``None`` , se utiliza el número retornado por :func:`os.cpu_count`." -#: ../Doc/library/multiprocessing.rst:2184 -#: ../Doc/library/multiprocessing.rst:2745 +#: ../Doc/library/multiprocessing.rst:2219 +#: ../Doc/library/multiprocessing.rst:2780 msgid "" "If *initializer* is not ``None`` then each worker process will call " "``initializer(*initargs)`` when it starts." @@ -3294,7 +3366,7 @@ msgstr "" "Si *initializer* no es ``None``, cada proceso de trabajo llamará " "``initializer(*initargs)`` cuando se inicie." -#: ../Doc/library/multiprocessing.rst:2187 +#: ../Doc/library/multiprocessing.rst:2222 msgid "" "*maxtasksperchild* is the number of tasks a worker process can complete " "before it will exit and be replaced with a fresh worker process, to enable " @@ -3307,7 +3379,7 @@ msgstr "" "predeterminado *maxtasksperchild* es ``None``, lo que significa que los " "procesos de trabajo vivirán tanto tiempo como el grupo." -#: ../Doc/library/multiprocessing.rst:2192 +#: ../Doc/library/multiprocessing.rst:2227 msgid "" "*context* can be used to specify the context used for starting the worker " "processes. Usually a pool is created using the function :func:" @@ -3320,7 +3392,7 @@ msgstr "" "contexto :meth:`Pool`. En ambos casos, *context* se establece de manera " "adecuada." -#: ../Doc/library/multiprocessing.rst:2198 +#: ../Doc/library/multiprocessing.rst:2233 msgid "" "Note that the methods of the pool object should only be called by the " "process which created the pool." @@ -3328,7 +3400,7 @@ msgstr "" "Tenga en cuenta que los métodos del objeto de grupo solo deben ser invocados " "por el proceso que creó el grupo." -#: ../Doc/library/multiprocessing.rst:2202 +#: ../Doc/library/multiprocessing.rst:2237 msgid "" ":class:`multiprocessing.pool` objects have internal resources that need to " "be properly managed (like any other resource) by using the pool as a context " @@ -3341,7 +3413,7 @@ msgstr "" "`close` y :meth:`terminate` manualmente. De lo contrario, el proceso puede " "demorarse en la finalización." -#: ../Doc/library/multiprocessing.rst:2207 +#: ../Doc/library/multiprocessing.rst:2242 msgid "" "Note that it is **not correct** to rely on the garbage collector to destroy " "the pool as CPython does not assure that the finalizer of the pool will be " @@ -3352,15 +3424,15 @@ msgstr "" "finalizador del grupo (consulte :meth:`object.__del__` para obtener más " "información)." -#: ../Doc/library/multiprocessing.rst:2211 +#: ../Doc/library/multiprocessing.rst:2246 msgid "*maxtasksperchild*" msgstr "*maxtasksperchild*" -#: ../Doc/library/multiprocessing.rst:2214 +#: ../Doc/library/multiprocessing.rst:2249 msgid "*context*" msgstr "*context*" -#: ../Doc/library/multiprocessing.rst:2219 +#: ../Doc/library/multiprocessing.rst:2254 msgid "" "Worker processes within a :class:`Pool` typically live for the complete " "duration of the Pool's work queue. A frequent pattern found in other systems " @@ -3379,7 +3451,7 @@ msgstr "" "el viejo. El argumento *maxtasksperchild* para :class:`Pool` expone esta " "capacidad al usuario final." -#: ../Doc/library/multiprocessing.rst:2229 +#: ../Doc/library/multiprocessing.rst:2264 msgid "" "Call *func* with arguments *args* and keyword arguments *kwds*. It blocks " "until the result is ready. Given this blocks, :meth:`apply_async` is better " @@ -3391,7 +3463,7 @@ msgstr "" "`apply_async` es más adecuado para realizar trabajos en paralelo. Además, " "*func* solo se ejecuta en uno de los trabajadores de piscina." -#: ../Doc/library/multiprocessing.rst:2236 +#: ../Doc/library/multiprocessing.rst:2271 msgid "" "A variant of the :meth:`apply` method which returns a :class:" "`~multiprocessing.pool.AsyncResult` object." @@ -3399,8 +3471,8 @@ msgstr "" "Una variante del método :meth:`apply` que retorna un objeto :class:" "`~multiprocessing.pool.AsyncResult`." -#: ../Doc/library/multiprocessing.rst:2239 -#: ../Doc/library/multiprocessing.rst:2270 +#: ../Doc/library/multiprocessing.rst:2274 +#: ../Doc/library/multiprocessing.rst:2305 msgid "" "If *callback* is specified then it should be a callable which accepts a " "single argument. When the result becomes ready *callback* is applied to it, " @@ -3411,8 +3483,8 @@ msgstr "" "argumento. Cuando el resultado está listo, se le aplica *callback*, a menos " "que la llamada falle, en cuyo caso se aplica *error_callback*." -#: ../Doc/library/multiprocessing.rst:2244 -#: ../Doc/library/multiprocessing.rst:2275 +#: ../Doc/library/multiprocessing.rst:2279 +#: ../Doc/library/multiprocessing.rst:2310 msgid "" "If *error_callback* is specified then it should be a callable which accepts " "a single argument. If the target function fails, then the *error_callback* " @@ -3422,8 +3494,8 @@ msgstr "" "único argumento. Si la función de destino falla, se llama a *error_callback* " "con la instancia de excepción." -#: ../Doc/library/multiprocessing.rst:2248 -#: ../Doc/library/multiprocessing.rst:2279 +#: ../Doc/library/multiprocessing.rst:2283 +#: ../Doc/library/multiprocessing.rst:2314 msgid "" "Callbacks should complete immediately since otherwise the thread which " "handles the results will get blocked." @@ -3431,7 +3503,7 @@ msgstr "" "Las devoluciones de llamada deben completarse inmediatamente ya que de lo " "contrario el hilo que maneja los resultados se bloqueará." -#: ../Doc/library/multiprocessing.rst:2253 +#: ../Doc/library/multiprocessing.rst:2288 msgid "" "A parallel equivalent of the :func:`map` built-in function (it supports only " "one *iterable* argument though, for multiple iterables see :meth:`starmap`). " @@ -3441,7 +3513,7 @@ msgstr "" "admite un argumento *iterable*, para varios iterables consulte :meth:" "`starmap`). Bloquea hasta que el resultado esté listo." -#: ../Doc/library/multiprocessing.rst:2257 +#: ../Doc/library/multiprocessing.rst:2292 msgid "" "This method chops the iterable into a number of chunks which it submits to " "the process pool as separate tasks. The (approximate) size of these chunks " @@ -3451,7 +3523,7 @@ msgstr "" "procesos como tareas separadas. El tamaño (aproximado) de estos fragmentos " "se puede especificar estableciendo *chunksize* en un entero positivo." -#: ../Doc/library/multiprocessing.rst:2261 +#: ../Doc/library/multiprocessing.rst:2296 msgid "" "Note that it may cause high memory usage for very long iterables. Consider " "using :meth:`imap` or :meth:`imap_unordered` with explicit *chunksize* " @@ -3461,7 +3533,7 @@ msgstr "" "largos. Considere usar :meth:`imap` o :meth:`imap_unordered` con la opción " "explícita *chunksize* para una mejor eficiencia." -#: ../Doc/library/multiprocessing.rst:2267 +#: ../Doc/library/multiprocessing.rst:2302 msgid "" "A variant of the :meth:`.map` method which returns a :class:" "`~multiprocessing.pool.AsyncResult` object." @@ -3469,11 +3541,11 @@ msgstr "" "Una variante del método :meth:`.map` que retorna un objeto :class:" "`~multiprocessing.pool.AsyncResult`." -#: ../Doc/library/multiprocessing.rst:2284 +#: ../Doc/library/multiprocessing.rst:2319 msgid "A lazier version of :meth:`.map`." msgstr "Una versión más perezosa (*lazier*) de :meth:`.map`." -#: ../Doc/library/multiprocessing.rst:2286 +#: ../Doc/library/multiprocessing.rst:2321 msgid "" "The *chunksize* argument is the same as the one used by the :meth:`.map` " "method. For very long iterables using a large value for *chunksize* can " @@ -3484,7 +3556,7 @@ msgstr "" "hacer que el trabajo se complete **much** (**mucho**) más rápido que usar el " "valor predeterminado de ``1``." -#: ../Doc/library/multiprocessing.rst:2291 +#: ../Doc/library/multiprocessing.rst:2326 msgid "" "Also if *chunksize* is ``1`` then the :meth:`!next` method of the iterator " "returned by the :meth:`imap` method has an optional *timeout* parameter: " @@ -3496,7 +3568,7 @@ msgstr "" "``next (timeout)`` lanzará :exc:`multiprocessing.TimeoutError` si el " "resultado no puede retornarse dentro de *timeout* segundos." -#: ../Doc/library/multiprocessing.rst:2298 +#: ../Doc/library/multiprocessing.rst:2333 msgid "" "The same as :meth:`imap` except that the ordering of the results from the " "returned iterator should be considered arbitrary. (Only when there is only " @@ -3506,7 +3578,7 @@ msgstr "" "iterador retornado debe considerarse arbitrario. (Solo cuando hay un solo " "proceso de trabajo se garantiza que el orden sea \"correcto\")." -#: ../Doc/library/multiprocessing.rst:2304 +#: ../Doc/library/multiprocessing.rst:2339 msgid "" "Like :meth:`~multiprocessing.pool.Pool.map` except that the elements of the " "*iterable* are expected to be iterables that are unpacked as arguments." @@ -3514,7 +3586,7 @@ msgstr "" "Como :meth:`~multiprocessing.pool.Pool.map`, excepto que se espera que los " "elementos de *iterable* sean iterables que se desempaquetan como argumentos." -#: ../Doc/library/multiprocessing.rst:2308 +#: ../Doc/library/multiprocessing.rst:2343 msgid "" "Hence an *iterable* of ``[(1,2), (3, 4)]`` results in ``[func(1,2), " "func(3,4)]``." @@ -3522,7 +3594,7 @@ msgstr "" "Por lo tanto, un *iterable* de ``[(1,2), (3, 4)]`` da como resultado " "``[func(1,2), func(3,4)]``." -#: ../Doc/library/multiprocessing.rst:2315 +#: ../Doc/library/multiprocessing.rst:2350 msgid "" "A combination of :meth:`starmap` and :meth:`map_async` that iterates over " "*iterable* of iterables and calls *func* with the iterables unpacked. " @@ -3532,7 +3604,7 @@ msgstr "" "*iterable* de iterables y llama a *func* con los iterables desempaquetados. " "Como resultado se retorna un objeto." -#: ../Doc/library/multiprocessing.rst:2323 +#: ../Doc/library/multiprocessing.rst:2358 msgid "" "Prevents any more tasks from being submitted to the pool. Once all the " "tasks have been completed the worker processes will exit." @@ -3540,7 +3612,7 @@ msgstr "" "Impide que se envíen más tareas a la piscina (*pool*). Una vez que se hayan " "completado todas las tareas, se cerrarán los procesos de trabajo." -#: ../Doc/library/multiprocessing.rst:2328 +#: ../Doc/library/multiprocessing.rst:2363 msgid "" "Stops the worker processes immediately without completing outstanding work. " "When the pool object is garbage collected :meth:`terminate` will be called " @@ -3550,7 +3622,7 @@ msgstr "" "pendiente. Cuando el objeto del grupo es basura recolectada :meth:" "`terminate` se llamará inmediatamente." -#: ../Doc/library/multiprocessing.rst:2334 +#: ../Doc/library/multiprocessing.rst:2369 msgid "" "Wait for the worker processes to exit. One must call :meth:`close` or :meth:" "`terminate` before using :meth:`join`." @@ -3558,7 +3630,7 @@ msgstr "" "Espera a que salgan los procesos de trabajo. Se debe llamar :meth:`close` o :" "meth:`terminate` antes de usar :meth:`join`." -#: ../Doc/library/multiprocessing.rst:2337 +#: ../Doc/library/multiprocessing.rst:2372 msgid "" "Pool objects now support the context management protocol -- see :ref:" "`typecontextmanager`. :meth:`~contextmanager.__enter__` returns the pool " @@ -3569,7 +3641,7 @@ msgstr "" "enter__` retorna el objeto de grupo, y :meth:`~ contextmanager.__ exit__` " "llama :meth:`terminate`." -#: ../Doc/library/multiprocessing.rst:2345 +#: ../Doc/library/multiprocessing.rst:2380 msgid "" "The class of the result returned by :meth:`Pool.apply_async` and :meth:`Pool." "map_async`." @@ -3577,7 +3649,7 @@ msgstr "" "La clase del resultado retornado por :meth:`Pool.apply_async` y :meth:`Pool." "map_async`." -#: ../Doc/library/multiprocessing.rst:2350 +#: ../Doc/library/multiprocessing.rst:2385 msgid "" "Return the result when it arrives. If *timeout* is not ``None`` and the " "result does not arrive within *timeout* seconds then :exc:`multiprocessing." @@ -3589,17 +3661,17 @@ msgstr "" "`multiprocessing.TimeoutError`. Si la llamada remota generó una excepción, " "esa excepción se volverá a plantear mediante :meth:`get`." -#: ../Doc/library/multiprocessing.rst:2357 +#: ../Doc/library/multiprocessing.rst:2392 msgid "Wait until the result is available or until *timeout* seconds pass." msgstr "" "Espera hasta que el resultado esté disponible o hasta que pase *timeout* " "segundos." -#: ../Doc/library/multiprocessing.rst:2361 +#: ../Doc/library/multiprocessing.rst:2396 msgid "Return whether the call has completed." msgstr "Retorna si la llamada se ha completado." -#: ../Doc/library/multiprocessing.rst:2365 +#: ../Doc/library/multiprocessing.rst:2400 msgid "" "Return whether the call completed without raising an exception. Will raise :" "exc:`ValueError` if the result is not ready." @@ -3607,7 +3679,7 @@ msgstr "" "Retorna si la llamada se completó sin generar una excepción. Lanzará :exc:" "`ValueError` si el resultado no está listo." -#: ../Doc/library/multiprocessing.rst:2368 +#: ../Doc/library/multiprocessing.rst:2403 msgid "" "If the result is not ready, :exc:`ValueError` is raised instead of :exc:" "`AssertionError`." @@ -3615,15 +3687,15 @@ msgstr "" "Si el resultado no está listo :exc:`ValueError` aparece en lugar de :exc:" "`AssertionError`." -#: ../Doc/library/multiprocessing.rst:2372 +#: ../Doc/library/multiprocessing.rst:2407 msgid "The following example demonstrates the use of a pool::" msgstr "El siguiente ejemplo demuestra el uso de una piscina(*pool*)::" -#: ../Doc/library/multiprocessing.rst:2399 +#: ../Doc/library/multiprocessing.rst:2434 msgid "Listeners and Clients" msgstr "Oyentes y clientes (*Listeners and Clients*)" -#: ../Doc/library/multiprocessing.rst:2404 +#: ../Doc/library/multiprocessing.rst:2439 msgid "" "Usually message passing between processes is done using queues or by using :" "class:`~Connection` objects returned by :func:`~multiprocessing.Pipe`." @@ -3632,7 +3704,7 @@ msgstr "" "o mediante objetos :class:`~Connection` retornados por :func:" "`~multiprocessing.Pipe`." -#: ../Doc/library/multiprocessing.rst:2408 +#: ../Doc/library/multiprocessing.rst:2443 msgid "" "However, the :mod:`multiprocessing.connection` module allows some extra " "flexibility. It basically gives a high level message oriented API for " @@ -3646,7 +3718,7 @@ msgstr "" "Windows. También tiene soporte para *digest authentication* usando el " "módulo :mod:`hmac`, y para sondear múltiples conexiones al mismo tiempo." -#: ../Doc/library/multiprocessing.rst:2417 +#: ../Doc/library/multiprocessing.rst:2452 msgid "" "Send a randomly generated message to the other end of the connection and " "wait for a reply." @@ -3654,7 +3726,7 @@ msgstr "" "Envía un mensaje generado aleatoriamente al otro extremo de la conexión y " "espera una respuesta." -#: ../Doc/library/multiprocessing.rst:2420 +#: ../Doc/library/multiprocessing.rst:2455 msgid "" "If the reply matches the digest of the message using *authkey* as the key " "then a welcome message is sent to the other end of the connection. " @@ -3665,7 +3737,7 @@ msgstr "" "conexión. De lo contrario se lanza :exc:`~multiprocessing." "AuthenticationError`." -#: ../Doc/library/multiprocessing.rst:2426 +#: ../Doc/library/multiprocessing.rst:2461 msgid "" "Receive a message, calculate the digest of the message using *authkey* as " "the key, and then send the digest back." @@ -3673,7 +3745,7 @@ msgstr "" "Recibe un mensaje, calcula el resumen del mensaje usando *authkey* como la " "clave y luego envía el resumen de vuelta." -#: ../Doc/library/multiprocessing.rst:2429 +#: ../Doc/library/multiprocessing.rst:2464 msgid "" "If a welcome message is not received, then :exc:`~multiprocessing." "AuthenticationError` is raised." @@ -3681,7 +3753,7 @@ msgstr "" "Si no se recibe un mensaje de bienvenida, se lanza :exc:`~multiprocessing." "AuthenticationError`." -#: ../Doc/library/multiprocessing.rst:2434 +#: ../Doc/library/multiprocessing.rst:2469 msgid "" "Attempt to set up a connection to the listener which is using address " "*address*, returning a :class:`~Connection`." @@ -3689,7 +3761,7 @@ msgstr "" "Se intenta configurar una conexión con el oyente que utiliza la dirección " "*address*, retornando :class:`~Connection`." -#: ../Doc/library/multiprocessing.rst:2437 +#: ../Doc/library/multiprocessing.rst:2472 msgid "" "The type of the connection is determined by *family* argument, but this can " "generally be omitted since it can usually be inferred from the format of " @@ -3699,8 +3771,8 @@ msgstr "" "generalmente se puede omitir ya que generalmente se puede inferir del " "formato de *address*. (Consulte :ref:`multiprocessing-address-formats`)" -#: ../Doc/library/multiprocessing.rst:2441 #: ../Doc/library/multiprocessing.rst:2476 +#: ../Doc/library/multiprocessing.rst:2511 msgid "" "If *authkey* is given and not None, it should be a byte string and will be " "used as the secret key for an HMAC-based authentication challenge. No " @@ -3714,7 +3786,7 @@ msgstr "" "autenticación se lanza :exc:`~multiprocessing.AuthenticationError`. " "Consulte :ref:`multiprocessing-auth-keys`." -#: ../Doc/library/multiprocessing.rst:2449 +#: ../Doc/library/multiprocessing.rst:2484 msgid "" "A wrapper for a bound socket or Windows named pipe which is 'listening' for " "connections." @@ -3722,7 +3794,7 @@ msgstr "" "Un contenedor para un *socket* vinculado o una tubería (*pipe*) con nombre " "de Windows que está 'escuchando' las conexiones." -#: ../Doc/library/multiprocessing.rst:2452 +#: ../Doc/library/multiprocessing.rst:2487 msgid "" "*address* is the address to be used by the bound socket or named pipe of the " "listener object." @@ -3730,7 +3802,7 @@ msgstr "" "*address* es la dirección que utilizará el *socket* vinculado o la conocida " "tubería (*pipe*) con nombre del objeto de escucha." -#: ../Doc/library/multiprocessing.rst:2457 +#: ../Doc/library/multiprocessing.rst:2492 msgid "" "If an address of '0.0.0.0' is used, the address will not be a connectable " "end point on Windows. If you require a connectable end-point, you should use " @@ -3740,7 +3812,7 @@ msgstr "" "conectable en Windows. Si necesita un punto final conectable, debe usar " "'127.0.0.1'." -#: ../Doc/library/multiprocessing.rst:2461 +#: ../Doc/library/multiprocessing.rst:2496 msgid "" "*family* is the type of socket (or named pipe) to use. This can be one of " "the strings ``'AF_INET'`` (for a TCP socket), ``'AF_UNIX'`` (for a Unix " @@ -3765,7 +3837,7 @@ msgstr "" "*socket* se creará en un directorio temporal privado usando :func:`tempfile." "mkstemp`." -#: ../Doc/library/multiprocessing.rst:2472 +#: ../Doc/library/multiprocessing.rst:2507 msgid "" "If the listener object uses a socket then *backlog* (1 by default) is passed " "to the :meth:`~socket.socket.listen` method of the socket once it has been " @@ -3775,7 +3847,7 @@ msgstr "" "defecto) se pasa al método :meth:`~socket.socket.listen` del *socket* una " "vez que se ha vinculado." -#: ../Doc/library/multiprocessing.rst:2484 +#: ../Doc/library/multiprocessing.rst:2519 msgid "" "Accept a connection on the bound socket or named pipe of the listener object " "and return a :class:`~Connection` object. If authentication is attempted and " @@ -3786,7 +3858,7 @@ msgstr "" "autenticación y falla, entonces se lanza una :exc:`~multiprocessing." "AuthenticationError`." -#: ../Doc/library/multiprocessing.rst:2491 +#: ../Doc/library/multiprocessing.rst:2526 msgid "" "Close the bound socket or named pipe of the listener object. This is called " "automatically when the listener is garbage collected. However it is " @@ -3796,16 +3868,16 @@ msgstr "" "Esto se llama automáticamente cuando el oyente es recolectado por el " "recolector de basura. Sin embargo, es aconsejable llamarlo explícitamente." -#: ../Doc/library/multiprocessing.rst:2495 +#: ../Doc/library/multiprocessing.rst:2530 msgid "Listener objects have the following read-only properties:" msgstr "" "Los objetos de escucha tienen las siguientes propiedades de solo lectura:" -#: ../Doc/library/multiprocessing.rst:2499 +#: ../Doc/library/multiprocessing.rst:2534 msgid "The address which is being used by the Listener object." msgstr "La dirección que está utilizando el objeto *Listener*." -#: ../Doc/library/multiprocessing.rst:2503 +#: ../Doc/library/multiprocessing.rst:2538 msgid "" "The address from which the last accepted connection came. If this is " "unavailable then it is ``None``." @@ -3813,7 +3885,7 @@ msgstr "" "La dirección de donde vino la última conexión aceptada. Si esto no está " "disponible, entonces es ``None``." -#: ../Doc/library/multiprocessing.rst:2506 +#: ../Doc/library/multiprocessing.rst:2541 msgid "" "Listener objects now support the context management protocol -- see :ref:" "`typecontextmanager`. :meth:`~contextmanager.__enter__` returns the " @@ -3824,7 +3896,7 @@ msgstr "" "`~contextmanager.__enter__`, y :meth:`~contextmanager.__exit__` llama a :" "meth:`close`." -#: ../Doc/library/multiprocessing.rst:2513 +#: ../Doc/library/multiprocessing.rst:2548 msgid "" "Wait till an object in *object_list* is ready. Returns the list of those " "objects in *object_list* which are ready. If *timeout* is a float then the " @@ -3838,22 +3910,23 @@ msgstr "" "```None``, se bloqueará por un período ilimitado. Un tiempo de espera " "negativo es equivalente a un tiempo de espera cero." -#: ../Doc/library/multiprocessing.rst:2519 +#: ../Doc/library/multiprocessing.rst:2554 +#, fuzzy msgid "" -"For both Unix and Windows, an object can appear in *object_list* if it is" +"For both POSIX and Windows, an object can appear in *object_list* if it is" msgstr "" "Tanto para Unix como para Windows, un objeto puede aparecer en *object_list* " "si este es" -#: ../Doc/library/multiprocessing.rst:2522 +#: ../Doc/library/multiprocessing.rst:2557 msgid "a readable :class:`~multiprocessing.connection.Connection` object;" msgstr "un objeto legible de :class:`~multiprocessing.connection.Connection`;" -#: ../Doc/library/multiprocessing.rst:2523 +#: ../Doc/library/multiprocessing.rst:2558 msgid "a connected and readable :class:`socket.socket` object; or" msgstr "un objeto conectado y legible de :class:`socket.socket`; o" -#: ../Doc/library/multiprocessing.rst:2524 +#: ../Doc/library/multiprocessing.rst:2559 msgid "" "the :attr:`~multiprocessing.Process.sentinel` attribute of a :class:" "`~multiprocessing.Process` object." @@ -3861,7 +3934,7 @@ msgstr "" "el atributo :attr:`~multiprocessing.Process.sentinel` de un objeto :class:" "`~multiprocessing.Process`." -#: ../Doc/library/multiprocessing.rst:2527 +#: ../Doc/library/multiprocessing.rst:2562 msgid "" "A connection or socket object is ready when there is data available to be " "read from it, or the other end has been closed." @@ -3869,9 +3942,10 @@ msgstr "" "Un objeto de conexión o *socket* está listo cuando hay datos disponibles " "para leer, o el otro extremo se ha cerrado." -#: ../Doc/library/multiprocessing.rst:2530 +#: ../Doc/library/multiprocessing.rst:2565 +#, fuzzy msgid "" -"**Unix**: ``wait(object_list, timeout)`` almost equivalent ``select." +"**POSIX**: ``wait(object_list, timeout)`` almost equivalent ``select." "select(object_list, [], [], timeout)``. The difference is that, if :func:" "`select.select` is interrupted by a signal, it can raise :exc:`OSError` with " "an error number of ``EINTR``, whereas :func:`wait` will not." @@ -3881,7 +3955,7 @@ msgstr "" "interrumpe :func:`select.select` por una señal, este lanza :exc:`OSError` " "con un número de error ``EINTR``, a diferencia de :func:`wait`." -#: ../Doc/library/multiprocessing.rst:2536 +#: ../Doc/library/multiprocessing.rst:2571 msgid "" "**Windows**: An item in *object_list* must either be an integer handle which " "is waitable (according to the definition used by the documentation of the " @@ -3896,11 +3970,11 @@ msgstr "" "tubo o manejador de tubería. (Tenga en cuenta que las manijas de las " "tuberías y las manijas de los zócalos son **no** manijas aptas)" -#: ../Doc/library/multiprocessing.rst:2546 +#: ../Doc/library/multiprocessing.rst:2581 msgid "**Examples**" msgstr "**Ejemplos**" -#: ../Doc/library/multiprocessing.rst:2548 +#: ../Doc/library/multiprocessing.rst:2583 msgid "" "The following server code creates a listener which uses ``'secret " "password'`` as an authentication key. It then waits for a connection and " @@ -3910,7 +3984,7 @@ msgstr "" "password'`` como clave de autenticación. Luego espera una conexión y envía " "algunos datos al cliente::" -#: ../Doc/library/multiprocessing.rst:2567 +#: ../Doc/library/multiprocessing.rst:2602 msgid "" "The following code connects to the server and receives some data from the " "server::" @@ -3918,7 +3992,7 @@ msgstr "" "El siguiente código se conecta al servidor y recibe algunos datos del " "servidor::" -#: ../Doc/library/multiprocessing.rst:2584 +#: ../Doc/library/multiprocessing.rst:2619 msgid "" "The following code uses :func:`~multiprocessing.connection.wait` to wait for " "messages from multiple processes at once::" @@ -3926,11 +4000,11 @@ msgstr "" "El siguiente código utiliza :func:`~multiprocessing.connection.wait` para " "esperar mensajes de múltiples procesos a la vez::" -#: ../Doc/library/multiprocessing.rst:2623 +#: ../Doc/library/multiprocessing.rst:2658 msgid "Address Formats" msgstr "Formatos de dirección (*Address formats*)" -#: ../Doc/library/multiprocessing.rst:2625 +#: ../Doc/library/multiprocessing.rst:2660 msgid "" "An ``'AF_INET'`` address is a tuple of the form ``(hostname, port)`` where " "*hostname* is a string and *port* is an integer." @@ -3938,7 +4012,7 @@ msgstr "" "Una dirección ``'AF_INET'`` es una tupla de la forma ``(hostname, port)`` " "donde *hostname* es una cadena de caracteres y *port* es un número entero." -#: ../Doc/library/multiprocessing.rst:2628 +#: ../Doc/library/multiprocessing.rst:2663 msgid "" "An ``'AF_UNIX'`` address is a string representing a filename on the " "filesystem." @@ -3946,7 +4020,7 @@ msgstr "" "Una dirección ``'AF_UNIX'`` es una cadena que representa un nombre de " "archivo en el sistema de archivos." -#: ../Doc/library/multiprocessing.rst:2631 +#: ../Doc/library/multiprocessing.rst:2666 msgid "" "An ``'AF_PIPE'`` address is a string of the form :samp:`r'\\\\\\\\\\\\.\\" "\\pipe\\\\\\\\{PipeName}'`. To use :func:`Client` to connect to a named " @@ -3960,7 +4034,7 @@ msgstr "" "debe usar una dirección de la forma :samp:`r'\\\\\\\\\\\\\\\\{ServerName}\\" "\\pipe\\\\\\\\{PipeName}'` en cambio." -#: ../Doc/library/multiprocessing.rst:2636 +#: ../Doc/library/multiprocessing.rst:2671 msgid "" "Note that any string beginning with two backslashes is assumed by default to " "be an ``'AF_PIPE'`` address rather than an ``'AF_UNIX'`` address." @@ -3969,11 +4043,11 @@ msgstr "" "invertidas se asume por defecto como una dirección ``'AF_PIPE'`` en lugar de " "una dirección ``'AF_UNIX'``." -#: ../Doc/library/multiprocessing.rst:2643 +#: ../Doc/library/multiprocessing.rst:2678 msgid "Authentication keys" msgstr "Llaves de autentificación" -#: ../Doc/library/multiprocessing.rst:2645 +#: ../Doc/library/multiprocessing.rst:2680 msgid "" "When one uses :meth:`Connection.recv `, the data received " "is automatically unpickled. Unfortunately unpickling data from an untrusted " @@ -3986,7 +4060,7 @@ msgstr "" "class:`Listener` y :func:`Client` usan el módulo :mod:`hmac` para " "proporcionar autenticación de resumen." -#: ../Doc/library/multiprocessing.rst:2651 +#: ../Doc/library/multiprocessing.rst:2686 msgid "" "An authentication key is a byte string which can be thought of as a " "password: once a connection is established both ends will demand proof that " @@ -3999,7 +4073,7 @@ msgstr "" "que ambos extremos están usando la misma clave **no** implica enviar la " "clave a través de la conexión)." -#: ../Doc/library/multiprocessing.rst:2657 +#: ../Doc/library/multiprocessing.rst:2692 msgid "" "If authentication is requested but no authentication key is specified then " "the return value of ``current_process().authkey`` is used (see :class:" @@ -4017,7 +4091,7 @@ msgstr "" "los procesos de un programa multiproceso compartirán una única clave de " "autenticación que se puede usar al configurar conexiones entre ellos." -#: ../Doc/library/multiprocessing.rst:2665 +#: ../Doc/library/multiprocessing.rst:2700 msgid "" "Suitable authentication keys can also be generated by using :func:`os." "urandom`." @@ -4025,11 +4099,11 @@ msgstr "" "Las claves de autenticación adecuadas también se pueden generar utilizando :" "func:`os.urandom`." -#: ../Doc/library/multiprocessing.rst:2669 +#: ../Doc/library/multiprocessing.rst:2704 msgid "Logging" msgstr "*Logging*" -#: ../Doc/library/multiprocessing.rst:2671 +#: ../Doc/library/multiprocessing.rst:2706 msgid "" "Some support for logging is available. Note, however, that the :mod:" "`logging` package does not use process shared locks so it is possible " @@ -4041,7 +4115,7 @@ msgstr "" "que es posible (dependiendo del tipo de controlador) que los mensajes de " "diferentes procesos se mezclen." -#: ../Doc/library/multiprocessing.rst:2678 +#: ../Doc/library/multiprocessing.rst:2713 msgid "" "Returns the logger used by :mod:`multiprocessing`. If necessary, a new one " "will be created." @@ -4049,9 +4123,10 @@ msgstr "" "Retorna el registrador utilizado por :mod:`multiprocessing`. Si es " "necesario, se creará uno nuevo." -#: ../Doc/library/multiprocessing.rst:2681 +#: ../Doc/library/multiprocessing.rst:2716 +#, fuzzy msgid "" -"When first created the logger has level :data:`logging.NOTSET` and no " +"When first created the logger has level :const:`logging.NOTSET` and no " "default handler. Messages sent to this logger will not by default propagate " "to the root logger." msgstr "" @@ -4059,7 +4134,7 @@ msgstr "" "NOTSET` y no tiene un controlador predeterminado. Los mensajes enviados a " "este registrador no se propagarán por defecto al registrador raíz." -#: ../Doc/library/multiprocessing.rst:2685 +#: ../Doc/library/multiprocessing.rst:2720 msgid "" "Note that on Windows child processes will only inherit the level of the " "parent process's logger -- any other customization of the logger will not be " @@ -4069,7 +4144,7 @@ msgstr "" "del registrador del proceso parental -- no se heredará ninguna otra " "personalización del registrador." -#: ../Doc/library/multiprocessing.rst:2692 +#: ../Doc/library/multiprocessing.rst:2727 #, python-format msgid "" "This function performs a call to :func:`get_logger` but in addition to " @@ -4084,22 +4159,22 @@ msgstr "" "%(processName)s] %(message)s'``. Puede modificar ``levelname`` del " "registrador pasando un argumento ``level``." -#: ../Doc/library/multiprocessing.rst:2698 +#: ../Doc/library/multiprocessing.rst:2733 msgid "Below is an example session with logging turned on::" msgstr "" "A continuación se muestra una sesión de ejemplo con el registro activado::" -#: ../Doc/library/multiprocessing.rst:2713 +#: ../Doc/library/multiprocessing.rst:2748 msgid "For a full table of logging levels, see the :mod:`logging` module." msgstr "" "Para obtener una tabla completa de niveles de registro, consulte el módulo :" "mod:`logging`." -#: ../Doc/library/multiprocessing.rst:2717 +#: ../Doc/library/multiprocessing.rst:2752 msgid "The :mod:`multiprocessing.dummy` module" msgstr "El módulo :mod:`multiprocessing.dummy`" -#: ../Doc/library/multiprocessing.rst:2722 +#: ../Doc/library/multiprocessing.rst:2757 msgid "" ":mod:`multiprocessing.dummy` replicates the API of :mod:`multiprocessing` " "but is no more than a wrapper around the :mod:`threading` module." @@ -4107,7 +4182,7 @@ msgstr "" "El :mod:`multiprocessing.dummy` replica la API de :mod:`multiprocessing` " "pero no es más que un contenedor alrededor del módulo :mod:`threading`." -#: ../Doc/library/multiprocessing.rst:2727 +#: ../Doc/library/multiprocessing.rst:2762 msgid "" "In particular, the ``Pool`` function provided by :mod:`multiprocessing." "dummy` returns an instance of :class:`ThreadPool`, which is a subclass of :" @@ -4119,7 +4194,7 @@ msgstr "" "class:`Pool` que soporta todas las mismas llamadas, pero usa un *pool* de " "hebras trabajadoras en vez de procesos trabajadores." -#: ../Doc/library/multiprocessing.rst:2735 +#: ../Doc/library/multiprocessing.rst:2770 msgid "" "A thread pool object which controls a pool of worker threads to which jobs " "can be submitted. :class:`ThreadPool` instances are fully interface " @@ -4136,7 +4211,7 @@ msgstr "" "`~multiprocessing.pool.Pool.close` y :meth:`~multiprocessing.pool.Pool." "terminate` manualmente." -#: ../Doc/library/multiprocessing.rst:2742 +#: ../Doc/library/multiprocessing.rst:2777 msgid "" "*processes* is the number of worker threads to use. If *processes* is " "``None`` then the number returned by :func:`os.cpu_count` is used." @@ -4144,14 +4219,14 @@ msgstr "" "*processes* es el número de hebras de trabajo a utilizar. Si *processes* es " "``None`` , se utiliza el número retornado por :func:`os.cpu_count`." -#: ../Doc/library/multiprocessing.rst:2748 +#: ../Doc/library/multiprocessing.rst:2783 msgid "" "Unlike :class:`Pool`, *maxtasksperchild* and *context* cannot be provided." msgstr "" "A diferencia de :class:`Pool`, *maxtasksperchild* and *context* no se pueden " "entregar." -#: ../Doc/library/multiprocessing.rst:2752 +#: ../Doc/library/multiprocessing.rst:2787 msgid "" "A :class:`ThreadPool` shares the same interface as :class:`Pool`, which is " "designed around a pool of processes and predates the introduction of the :" @@ -4167,7 +4242,7 @@ msgstr "" "tipo para representar el estado de trabajos asíncronos, :class:" "`AsyncResult`, el cual no es entendido por otras librerías." -#: ../Doc/library/multiprocessing.rst:2759 +#: ../Doc/library/multiprocessing.rst:2794 msgid "" "Users should generally prefer to use :class:`concurrent.futures." "ThreadPoolExecutor`, which has a simpler interface that was designed around " @@ -4181,11 +4256,11 @@ msgstr "" "de :class:`concurrent.futures.Future`, las que son compatibles con muchas " "más librerías, incluyendo :mod:`asyncio`." -#: ../Doc/library/multiprocessing.rst:2769 +#: ../Doc/library/multiprocessing.rst:2804 msgid "Programming guidelines" msgstr "Pautas de programación" -#: ../Doc/library/multiprocessing.rst:2771 +#: ../Doc/library/multiprocessing.rst:2806 msgid "" "There are certain guidelines and idioms which should be adhered to when " "using :mod:`multiprocessing`." @@ -4193,19 +4268,19 @@ msgstr "" "Hay ciertas pautas y expresiones idiomáticas que deben tenerse en cuenta al " "usar :mod:`multiprocessing` ." -#: ../Doc/library/multiprocessing.rst:2776 +#: ../Doc/library/multiprocessing.rst:2811 msgid "All start methods" msgstr "Todos los métodos de inicio" -#: ../Doc/library/multiprocessing.rst:2778 +#: ../Doc/library/multiprocessing.rst:2813 msgid "The following applies to all start methods." msgstr "Lo siguiente se aplica a todos los métodos de inicio." -#: ../Doc/library/multiprocessing.rst:2780 +#: ../Doc/library/multiprocessing.rst:2815 msgid "Avoid shared state" msgstr "Evita estado compartido" -#: ../Doc/library/multiprocessing.rst:2782 +#: ../Doc/library/multiprocessing.rst:2817 msgid "" "As far as possible one should try to avoid shifting large amounts of data " "between processes." @@ -4213,7 +4288,7 @@ msgstr "" "En la medida de lo posible, se debe tratar de evitar el desplazamiento de " "grandes cantidades de datos entre procesos." -#: ../Doc/library/multiprocessing.rst:2785 +#: ../Doc/library/multiprocessing.rst:2820 msgid "" "It is probably best to stick to using queues or pipes for communication " "between processes rather than using the lower level synchronization " @@ -4223,21 +4298,21 @@ msgstr "" "para la comunicación entre procesos en lugar de usar las primitivas de " "sincronización de nivel inferior." -#: ../Doc/library/multiprocessing.rst:2789 +#: ../Doc/library/multiprocessing.rst:2824 msgid "Picklability" msgstr "Serialización (*picklability*)" -#: ../Doc/library/multiprocessing.rst:2791 +#: ../Doc/library/multiprocessing.rst:2826 msgid "Ensure that the arguments to the methods of proxies are picklable." msgstr "" "Asegúrese que todos los argumentos de los métodos de *proxies* son " "serializables (*pickable*)" -#: ../Doc/library/multiprocessing.rst:2793 +#: ../Doc/library/multiprocessing.rst:2828 msgid "Thread safety of proxies" msgstr "Seguridad de hilos de *proxies*" -#: ../Doc/library/multiprocessing.rst:2795 +#: ../Doc/library/multiprocessing.rst:2830 msgid "" "Do not use a proxy object from more than one thread unless you protect it " "with a lock." @@ -4245,25 +4320,26 @@ msgstr "" "No usa un objeto proxy de más de un hilo a menos que lo proteja con un " "candado (*lock*)." -#: ../Doc/library/multiprocessing.rst:2798 +#: ../Doc/library/multiprocessing.rst:2833 msgid "" "(There is never a problem with different processes using the *same* proxy.)" msgstr "" "(Nunca hay un problema con diferentes procesos que usan el *mismo* proxy.)" -#: ../Doc/library/multiprocessing.rst:2800 +#: ../Doc/library/multiprocessing.rst:2835 msgid "Joining zombie processes" msgstr "Uniéndose a procesos zombies" -#: ../Doc/library/multiprocessing.rst:2802 +#: ../Doc/library/multiprocessing.rst:2837 +#, fuzzy msgid "" -"On Unix when a process finishes but has not been joined it becomes a zombie. " -"There should never be very many because each time a new process starts (or :" -"func:`~multiprocessing.active_children` is called) all completed processes " -"which have not yet been joined will be joined. Also calling a finished " -"process's :meth:`Process.is_alive ` will " -"join the process. Even so it is probably good practice to explicitly join " -"all the processes that you start." +"On POSIX when a process finishes but has not been joined it becomes a " +"zombie. There should never be very many because each time a new process " +"starts (or :func:`~multiprocessing.active_children` is called) all completed " +"processes which have not yet been joined will be joined. Also calling a " +"finished process's :meth:`Process.is_alive ` will join the process. Even so it is probably good practice to " +"explicitly join all the processes that you start." msgstr "" "En Unix, cuando un proceso finaliza pero no se ha unido, se convierte en un " "zombie. Nunca debería haber muchos porque cada vez que se inicia un nuevo " @@ -4273,11 +4349,11 @@ msgstr "" "is_alive>` se unirá al proceso. Aun así, probablemente sea una buena " "práctica unir explícitamente todos los procesos que comience." -#: ../Doc/library/multiprocessing.rst:2810 +#: ../Doc/library/multiprocessing.rst:2845 msgid "Better to inherit than pickle/unpickle" msgstr "Mejor heredar que serializar/deserializar (*pickle/unpickle*)" -#: ../Doc/library/multiprocessing.rst:2812 +#: ../Doc/library/multiprocessing.rst:2847 msgid "" "When using the *spawn* or *forkserver* start methods many types from :mod:" "`multiprocessing` need to be picklable so that child processes can use " @@ -4294,11 +4370,11 @@ msgstr "" "recurso compartido creado en otro lugar pueda heredarlo de un proceso " "ancestro." -#: ../Doc/library/multiprocessing.rst:2820 +#: ../Doc/library/multiprocessing.rst:2855 msgid "Avoid terminating processes" msgstr "Evita procesos de finalización" -#: ../Doc/library/multiprocessing.rst:2822 +#: ../Doc/library/multiprocessing.rst:2857 msgid "" "Using the :meth:`Process.terminate ` " "method to stop a process is liable to cause any shared resources (such as " @@ -4310,7 +4386,7 @@ msgstr "" "compartidos (como candados, semáforos, tuberías y colas) que el proceso " "utiliza actualmente se rompan o no disponible para otros procesos." -#: ../Doc/library/multiprocessing.rst:2828 +#: ../Doc/library/multiprocessing.rst:2863 msgid "" "Therefore it is probably best to only consider using :meth:`Process." "terminate ` on processes which never use " @@ -4320,11 +4396,11 @@ msgstr "" "terminate ` en procesos que nunca usan " "recursos compartidos." -#: ../Doc/library/multiprocessing.rst:2832 +#: ../Doc/library/multiprocessing.rst:2867 msgid "Joining processes that use queues" msgstr "Unirse a procesos que usan colas" -#: ../Doc/library/multiprocessing.rst:2834 +#: ../Doc/library/multiprocessing.rst:2869 msgid "" "Bear in mind that a process that has put items in a queue will wait before " "terminating until all the buffered items are fed by the \"feeder\" thread to " @@ -4339,7 +4415,7 @@ msgstr "" "` de la cola para evitar este " "comportamiento)." -#: ../Doc/library/multiprocessing.rst:2840 +#: ../Doc/library/multiprocessing.rst:2875 msgid "" "This means that whenever you use a queue you need to make sure that all " "items which have been put on the queue will eventually be removed before the " @@ -4353,11 +4429,11 @@ msgstr "" "puesto elementos en la cola finalizarán. Recuerde también que los procesos " "no demoníacos se unirán automáticamente." -#: ../Doc/library/multiprocessing.rst:2846 +#: ../Doc/library/multiprocessing.rst:2881 msgid "An example which will deadlock is the following::" msgstr "Un ejemplo que de bloqueo mutuo (*deadlock*) es el siguiente ::" -#: ../Doc/library/multiprocessing.rst:2860 +#: ../Doc/library/multiprocessing.rst:2895 msgid "" "A fix here would be to swap the last two lines (or simply remove the ``p." "join()`` line)." @@ -4365,13 +4441,14 @@ msgstr "" "Una solución aquí sería intercambiar las dos últimas líneas (o simplemente " "eliminar la línea ``p.join()``)." -#: ../Doc/library/multiprocessing.rst:2863 +#: ../Doc/library/multiprocessing.rst:2898 msgid "Explicitly pass resources to child processes" msgstr "Se pasan recursos explícitamente a procesos hijos" -#: ../Doc/library/multiprocessing.rst:2865 +#: ../Doc/library/multiprocessing.rst:2900 +#, fuzzy msgid "" -"On Unix using the *fork* start method, a child process can make use of a " +"On POSIX using the *fork* start method, a child process can make use of a " "shared resource created in a parent process using a global resource. " "However, it is better to pass the object as an argument to the constructor " "for the child process." @@ -4381,7 +4458,7 @@ msgstr "" "un recurso global. Sin embargo, es mejor pasar el objeto como argumento al " "constructor para el proceso secundario." -#: ../Doc/library/multiprocessing.rst:2870 +#: ../Doc/library/multiprocessing.rst:2905 msgid "" "Apart from making the code (potentially) compatible with Windows and the " "other start methods this also ensures that as long as the child process is " @@ -4395,24 +4472,24 @@ msgstr "" "Esto podría ser importante si se libera algún recurso cuando el objeto es " "basura recolectada en el proceso padre." -#: ../Doc/library/multiprocessing.rst:2877 +#: ../Doc/library/multiprocessing.rst:2912 msgid "So for instance ::" msgstr "Entonces por ejemplo ::" -#: ../Doc/library/multiprocessing.rst:2889 +#: ../Doc/library/multiprocessing.rst:2924 msgid "should be rewritten as ::" msgstr "debería ser reescrito como ::" -#: ../Doc/library/multiprocessing.rst:2901 +#: ../Doc/library/multiprocessing.rst:2936 msgid "Beware of replacing :data:`sys.stdin` with a \"file like object\"" msgstr "" "Tenga cuidado de reemplazar :data:`sys.stdin` con un *\"file like object\"*" -#: ../Doc/library/multiprocessing.rst:2903 +#: ../Doc/library/multiprocessing.rst:2938 msgid ":mod:`multiprocessing` originally unconditionally called::" msgstr ":mod:`multiprocessing` original e incondicionalmente llamado::" -#: ../Doc/library/multiprocessing.rst:2907 +#: ../Doc/library/multiprocessing.rst:2942 msgid "" "in the :meth:`multiprocessing.Process._bootstrap` method --- this resulted " "in issues with processes-in-processes. This has been changed to::" @@ -4420,7 +4497,7 @@ msgstr "" "en el método :meth:`multiprocessing.Process._bootstrap` --- Esto dio lugar a " "problemas con los procesos en proceso. Esto ha sido cambiado a::" -#: ../Doc/library/multiprocessing.rst:2913 +#: ../Doc/library/multiprocessing.rst:2948 msgid "" "Which solves the fundamental issue of processes colliding with each other " "resulting in a bad file descriptor error, but introduces a potential danger " @@ -4438,7 +4515,7 @@ msgstr "" "los mismos datos se vacíen al objeto varias veces, lo que provocaría " "corrupción." -#: ../Doc/library/multiprocessing.rst:2920 +#: ../Doc/library/multiprocessing.rst:2955 msgid "" "If you write a file-like object and implement your own caching, you can make " "it fork-safe by storing the pid whenever you append to the cache, and " @@ -4449,17 +4526,17 @@ msgstr "" "(*fork-safe*) almacenando el pid cada vez que se agrega al caché y " "descartando el caché cuando cambia el pid. Por ejemplo::" -#: ../Doc/library/multiprocessing.rst:2932 +#: ../Doc/library/multiprocessing.rst:2967 msgid "" "For more information, see :issue:`5155`, :issue:`5313` and :issue:`5331`" msgstr "" "Para más información, consulte :issue:`5155`, :issue:`5313` y :issue:`5331`" -#: ../Doc/library/multiprocessing.rst:2935 +#: ../Doc/library/multiprocessing.rst:2970 msgid "The *spawn* and *forkserver* start methods" msgstr "Los métodos de inicio *spawn* y *forkserver*" -#: ../Doc/library/multiprocessing.rst:2937 +#: ../Doc/library/multiprocessing.rst:2972 msgid "" "There are a few extra restriction which don't apply to the *fork* start " "method." @@ -4467,11 +4544,11 @@ msgstr "" "Hay algunas restricciones adicionales que no se aplican al método de inicio " "*fork*." -#: ../Doc/library/multiprocessing.rst:2940 +#: ../Doc/library/multiprocessing.rst:2975 msgid "More picklability" msgstr "Más serialización (*pickability*)" -#: ../Doc/library/multiprocessing.rst:2942 +#: ../Doc/library/multiprocessing.rst:2977 msgid "" "Ensure that all arguments to :meth:`Process.__init__` are picklable. Also, " "if you subclass :class:`~multiprocessing.Process` then make sure that " @@ -4484,11 +4561,11 @@ msgstr "" "serializables cuando se llame al método :meth:`Process.start " "`." -#: ../Doc/library/multiprocessing.rst:2947 +#: ../Doc/library/multiprocessing.rst:2982 msgid "Global variables" msgstr "Variables globales" -#: ../Doc/library/multiprocessing.rst:2949 +#: ../Doc/library/multiprocessing.rst:2984 msgid "" "Bear in mind that if code run in a child process tries to access a global " "variable, then the value it sees (if any) may not be the same as the value " @@ -4500,7 +4577,7 @@ msgstr "" "puede no ser el mismo que el valor en el proceso primario en el momento en " "que fue llamado :meth:`Process.start `." -#: ../Doc/library/multiprocessing.rst:2954 +#: ../Doc/library/multiprocessing.rst:2989 msgid "" "However, global variables which are just module level constants cause no " "problems." @@ -4508,21 +4585,22 @@ msgstr "" "Sin embargo, las variables globales que son solo constantes de nivel de " "módulo no causan problemas." -#: ../Doc/library/multiprocessing.rst:2959 +#: ../Doc/library/multiprocessing.rst:2994 msgid "Safe importing of main module" msgstr "Importando de manera segura el módulo principal" -#: ../Doc/library/multiprocessing.rst:2961 +#: ../Doc/library/multiprocessing.rst:2996 +#, fuzzy msgid "" "Make sure that the main module can be safely imported by a new Python " -"interpreter without causing unintended side effects (such a starting a new " +"interpreter without causing unintended side effects (such as starting a new " "process)." msgstr "" "Asegúrese de que un nuevo intérprete de Python pueda importar de forma " "segura el módulo principal sin causar efectos secundarios no deseados (como " "comenzar un nuevo proceso)." -#: ../Doc/library/multiprocessing.rst:2965 +#: ../Doc/library/multiprocessing.rst:3000 msgid "" "For example, using the *spawn* or *forkserver* start method running the " "following module would fail with a :exc:`RuntimeError`::" @@ -4530,7 +4608,7 @@ msgstr "" "Por ejemplo, usando el método de inicio *spawn* o *forkserver* ejecutando " "este módulo fallaría produciendo :exc:`RuntimeError`::" -#: ../Doc/library/multiprocessing.rst:2977 +#: ../Doc/library/multiprocessing.rst:3012 msgid "" "Instead one should protect the \"entry point\" of the program by using ``if " "__name__ == '__main__':`` as follows::" @@ -4538,7 +4616,7 @@ msgstr "" "En su lugar, se debe proteger el \"punto de entrada\" (*\"entry point\"*) " "del programa utilizando como sigue ``if __name__ == '__main__':`` ::" -#: ../Doc/library/multiprocessing.rst:2991 +#: ../Doc/library/multiprocessing.rst:3026 msgid "" "(The ``freeze_support()`` line can be omitted if the program will be run " "normally instead of frozen.)" @@ -4546,7 +4624,7 @@ msgstr "" "(La línea ``freeze_support()`` puede omitirse si el programa se ejecuta " "normalmente en lugar de congelarse)." -#: ../Doc/library/multiprocessing.rst:2994 +#: ../Doc/library/multiprocessing.rst:3029 msgid "" "This allows the newly spawned Python interpreter to safely import the module " "and then run the module's ``foo()`` function." @@ -4554,7 +4632,7 @@ msgstr "" "Esto permite que el intérprete de Python recién generado importe de forma " "segura el módulo y luego ejecute la función del módulo ``foo()``." -#: ../Doc/library/multiprocessing.rst:2997 +#: ../Doc/library/multiprocessing.rst:3032 msgid "" "Similar restrictions apply if a pool or manager is created in the main " "module." @@ -4562,22 +4640,30 @@ msgstr "" "Se aplican restricciones similares si se crea un grupo o administrador en el " "módulo principal." -#: ../Doc/library/multiprocessing.rst:3004 +#: ../Doc/library/multiprocessing.rst:3039 msgid "Examples" msgstr "Ejemplos" -#: ../Doc/library/multiprocessing.rst:3006 +#: ../Doc/library/multiprocessing.rst:3041 msgid "Demonstration of how to create and use customized managers and proxies:" msgstr "Demostración de cómo crear y usar gerentes y proxies personalizados:" -#: ../Doc/library/multiprocessing.rst:3012 +#: ../Doc/library/multiprocessing.rst:3047 msgid "Using :class:`~multiprocessing.pool.Pool`:" msgstr "Usando :class:`~multiprocessing.pool.Pool`:" -#: ../Doc/library/multiprocessing.rst:3018 +#: ../Doc/library/multiprocessing.rst:3053 msgid "" "An example showing how to use queues to feed tasks to a collection of worker " "processes and collect the results:" msgstr "" "Un ejemplo que muestra cómo usar las colas para alimentar tareas a una " "colección de procesos de trabajo y recopilar los resultados:" + +#~ msgid "" +#~ "Set the method which should be used to start child processes. *method* " +#~ "can be ``'fork'``, ``'spawn'`` or ``'forkserver'``." +#~ msgstr "" +#~ "Se establece el método que se debe usar para iniciar procesos " +#~ "secundarios. *method* puede ser ``'fork'``, ``'spawn'`` o " +#~ "``'forkserver'``." diff --git a/library/multiprocessing.shared_memory.po b/library/multiprocessing.shared_memory.po index 2fd2c9e849..fc3cf85073 100644 --- a/library/multiprocessing.shared_memory.po +++ b/library/multiprocessing.shared_memory.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python en Español 3.7\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-11-08 22:08-0300\n" "Last-Translator: \n" "Language: es_AR\n" @@ -17,7 +17,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/multiprocessing.shared_memory.rst:2 #, fuzzy @@ -316,15 +316,16 @@ msgstr "" "finaliza la ejecución." #: ../Doc/library/multiprocessing.shared_memory.rst:260 +#, fuzzy msgid "" "Provides a mutable list-like object where all values stored within are " "stored in a shared memory block. This constrains storable values to only " -"the ``int``, ``float``, ``bool``, ``str`` (less than 10M bytes each), " -"``bytes`` (less than 10M bytes each), and ``None`` built-in data types. It " -"also notably differs from the built-in ``list`` type in that these lists can " -"not change their overall length (i.e. no append, insert, etc.) and do not " -"support the dynamic creation of new :class:`ShareableList` instances via " -"slicing." +"the ``int`` (signed 64-bit), ``float``, ``bool``, ``str`` (less than 10M " +"bytes each when encoded as utf-8), ``bytes`` (less than 10M bytes each), and " +"``None`` built-in data types. It also notably differs from the built-in " +"``list`` type in that these lists can not change their overall length (i.e. " +"no append, insert, etc.) and do not support the dynamic creation of new :" +"class:`ShareableList` instances via slicing." msgstr "" "Construye un objeto mutable compatible con el tipo de lista cuyos valores se " "almacenan en un bloque de memoria compartida. Esto reduce los valores de " @@ -335,7 +336,7 @@ msgstr "" "lista, sin inserción, etc.) y que no es posible crear nuevas instancias de :" "class:`ShareableList` mediante la división." -#: ../Doc/library/multiprocessing.shared_memory.rst:269 +#: ../Doc/library/multiprocessing.shared_memory.rst:270 msgid "" "*sequence* is used in populating a new ``ShareableList`` full of values. Set " "to ``None`` to instead attach to an already existing ``ShareableList`` by " @@ -345,7 +346,7 @@ msgstr "" "valores. Establezca en ``None`` para registrar en su lugar una " "``ShareableList`` ya existente por su nombre único de memoria compartida." -#: ../Doc/library/multiprocessing.shared_memory.rst:273 +#: ../Doc/library/multiprocessing.shared_memory.rst:274 msgid "" "*name* is the unique name for the requested shared memory, as described in " "the definition for :class:`SharedMemory`. When attaching to an existing " @@ -357,11 +358,27 @@ msgstr "" "``ShareableList`` existente, especifique el nombre único de su bloque de " "memoria compartida mientras deja ``sequence`` establecida en ``None``." -#: ../Doc/library/multiprocessing.shared_memory.rst:280 +#: ../Doc/library/multiprocessing.shared_memory.rst:281 +msgid "" +"A known issue exists for :class:`bytes` and :class:`str` values. If they end " +"with ``\\x00`` nul bytes or characters, those may be *silently stripped* " +"when fetching them by index from the :class:`ShareableList`. This ``." +"rstrip(b'\\x00')`` behavior is considered a bug and may go away in the " +"future. See :gh:`106939`." +msgstr "" + +#: ../Doc/library/multiprocessing.shared_memory.rst:287 +msgid "" +"For applications where rstripping of trailing nulls is a problem, work " +"around it by always unconditionally appending an extra non-0 byte to the end " +"of such values when storing and unconditionally removing it when fetching:" +msgstr "" + +#: ../Doc/library/multiprocessing.shared_memory.rst:310 msgid "Returns the number of occurrences of ``value``." msgstr "Retorna el número de ocurrencias de ``value``." -#: ../Doc/library/multiprocessing.shared_memory.rst:284 +#: ../Doc/library/multiprocessing.shared_memory.rst:314 msgid "" "Returns first index position of ``value``. Raises :exc:`ValueError` if " "``value`` is not present." @@ -369,7 +386,7 @@ msgstr "" "Retorna la primera posición del índice de ``value``. Lanza :exc:`ValueError` " "si ``value`` no está presente." -#: ../Doc/library/multiprocessing.shared_memory.rst:289 +#: ../Doc/library/multiprocessing.shared_memory.rst:319 msgid "" "Read-only attribute containing the :mod:`struct` packing format used by all " "currently stored values." @@ -377,11 +394,11 @@ msgstr "" "Atributo de solo lectura que contiene el formato de empaquetado :mod:" "`struct` utilizado por todos los valores almacenados actualmente." -#: ../Doc/library/multiprocessing.shared_memory.rst:294 +#: ../Doc/library/multiprocessing.shared_memory.rst:324 msgid "The :class:`SharedMemory` instance where the values are stored." msgstr "La instancia de :class:`SharedMemory` donde se almacenan los valores." -#: ../Doc/library/multiprocessing.shared_memory.rst:297 +#: ../Doc/library/multiprocessing.shared_memory.rst:327 msgid "" "The following example demonstrates basic use of a :class:`ShareableList` " "instance:" @@ -389,7 +406,7 @@ msgstr "" "El siguiente ejemplo muestra el uso básico de una instancia :class:" "`ShareableList`:" -#: ../Doc/library/multiprocessing.shared_memory.rst:330 +#: ../Doc/library/multiprocessing.shared_memory.rst:360 msgid "" "The following example depicts how one, two, or many processes may access the " "same :class:`ShareableList` by supplying the name of the shared memory block " @@ -399,7 +416,7 @@ msgstr "" "al mismo :class:`ShareableList` al proporcionar el nombre del bloque de " "memoria compartida detrás de él:" -#: ../Doc/library/multiprocessing.shared_memory.rst:345 +#: ../Doc/library/multiprocessing.shared_memory.rst:375 msgid "" "The following examples demonstrates that ``ShareableList`` (and underlying " "``SharedMemory``) objects can be pickled and unpickled if needed. Note, that " @@ -413,3 +430,15 @@ msgstr "" "siendo el mismo objeto compartido. Esto sucede, porque el objeto " "deserializado tiene el mismo nombre único y simplemente se adjunta a un " "objeto existente con el mismo nombre (si el objeto todavía sigue vivo):" + +#: ../Doc/library/multiprocessing.shared_memory.rst:11 +msgid "Shared Memory" +msgstr "" + +#: ../Doc/library/multiprocessing.shared_memory.rst:11 +msgid "POSIX Shared Memory" +msgstr "" + +#: ../Doc/library/multiprocessing.shared_memory.rst:11 +msgid "Named Shared Memory" +msgstr "" diff --git a/library/netrc.po b/library/netrc.po index 64947dd5cb..032fe5abac 100644 --- a/library/netrc.po +++ b/library/netrc.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-11 17:56-0300\n" "Last-Translator: Sofía Denner \n" -"Language-Team: python-doc-es\n" "Language: es_ES\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/netrc.rst:3 msgid ":mod:`netrc` --- netrc file processing" @@ -100,12 +99,11 @@ msgstr "" "disparará el chequeo de seguridad." #: ../Doc/library/netrc.rst:52 +#, fuzzy msgid "" "Exception raised by the :class:`~netrc.netrc` class when syntactical errors " "are encountered in source text. Instances of this exception provide three " -"interesting attributes: :attr:`msg` is a textual explanation of the error, :" -"attr:`filename` is the name of the source file, and :attr:`lineno` gives the " -"line number on which the error was found." +"interesting attributes:" msgstr "" "Excepción lanzada por la clase :class:`~netrc.netrc` cuando se encuentran " "errores sintácticos en el texto origen. Las instancias de esta excepción " @@ -113,15 +111,27 @@ msgstr "" "del error, :attr:`filename` es el nombre del fichero origen, y :attr:" "`lineno` indica el número de línea en el que se encontró el error." +#: ../Doc/library/netrc.rst:58 +msgid "Textual explanation of the error." +msgstr "" + #: ../Doc/library/netrc.rst:62 +msgid "The name of the source file." +msgstr "" + +#: ../Doc/library/netrc.rst:66 +msgid "The line number on which the error was found." +msgstr "" + +#: ../Doc/library/netrc.rst:72 msgid "netrc Objects" msgstr "Objetos netrc" -#: ../Doc/library/netrc.rst:64 +#: ../Doc/library/netrc.rst:74 msgid "A :class:`~netrc.netrc` instance has the following methods:" msgstr "Una instancia :class:`~netrc.netrc` tiene los siguientes métodos:" -#: ../Doc/library/netrc.rst:69 +#: ../Doc/library/netrc.rst:79 msgid "" "Return a 3-tuple ``(login, account, password)`` of authenticators for " "*host*. If the netrc file did not contain an entry for the given host, " @@ -134,7 +144,7 @@ msgstr "" "disponibles ni el host correspondiente ni la entrada por defecto, retorna " "``None``." -#: ../Doc/library/netrc.rst:77 +#: ../Doc/library/netrc.rst:87 msgid "" "Dump the class data as a string in the format of a netrc file. (This " "discards comments and may reorder the entries.)" @@ -142,13 +152,13 @@ msgstr "" "Vuelca los datos de la clase como una cadena de caracteres en el formato de " "un fichero netrc. (Esto descarta comentarios y puede reordenar las entradas.)" -#: ../Doc/library/netrc.rst:80 +#: ../Doc/library/netrc.rst:90 msgid "Instances of :class:`~netrc.netrc` have public instance variables:" msgstr "" "Las instancias de :class:`~netrc.netrc` tienen variables de instancia " "públicas:" -#: ../Doc/library/netrc.rst:85 +#: ../Doc/library/netrc.rst:95 msgid "" "Dictionary mapping host names to ``(login, account, password)`` tuples. The " "'default' entry, if any, is represented as a pseudo-host by that name." @@ -157,7 +167,7 @@ msgstr "" "password)``. La entrada por defecto, si existe, está representada como un " "pseudo-host por ese nombre." -#: ../Doc/library/netrc.rst:91 +#: ../Doc/library/netrc.rst:101 msgid "Dictionary mapping macro names to string lists." msgstr "" "Diccionario que asocia nombres de macros a listas de cadenas de caracteres." diff --git a/library/nntplib.po b/library/nntplib.po index 838152f810..47ecf43476 100644 --- a/library/nntplib.po +++ b/library/nntplib.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-04 21:40+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/nntplib.rst:2 msgid ":mod:`nntplib` --- NNTP protocol client" @@ -34,7 +34,7 @@ msgid "The :mod:`nntplib` module is deprecated (see :pep:`594` for details)." msgstr "" "El módulo :mod:`nntplib` está en desuso (ver :pep:`594` para más detalles)." -#: ../Doc/library/nntplib.rst:19 +#: ../Doc/library/nntplib.rst:36 msgid "" "This module defines the class :class:`NNTP` which implements the client side " "of the Network News Transfer Protocol. It can be used to implement a news " @@ -47,11 +47,12 @@ msgstr "" "automatizados. Es compatible con :rfc:`3977` así como con los antiguos :rfc:" "`977` y :rfc:`2980`." +#: ../Doc/includes/wasm-notavail.rst:3 #, fuzzy msgid ":ref:`Availability `: not Emscripten, not WASI." msgstr ":ref:`Disponibilidad `: no Emscripten, no WASI." -#: ../Doc/library/cpython/Doc/includes/wasm-notavail.rst:5 +#: ../Doc/includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly platforms " "``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for " @@ -61,7 +62,7 @@ msgstr "" "``wasm32-emscripten`` y ``wasm32-wasi``. Consulte :ref:`wasm-availability` " "para obtener más información." -#: ../Doc/library/nntplib.rst:26 +#: ../Doc/library/nntplib.rst:43 msgid "" "Here are two small examples of how it can be used. To list some statistics " "about a newsgroup and print the subjects of the last 10 articles::" @@ -70,7 +71,7 @@ msgstr "" "algunas estadísticas sobre un grupo de noticias e imprimir los temas de los " "últimos 10 artículos::" -#: ../Doc/library/nntplib.rst:50 +#: ../Doc/library/nntplib.rst:67 msgid "" "To post an article from a binary file (this assumes that the article has " "valid headers, and that you have right to post on the particular newsgroup)::" @@ -79,11 +80,11 @@ msgstr "" "artículo tiene encabezados válidos y que tienes permitido publicar en el " "grupo de noticias en particular)::" -#: ../Doc/library/nntplib.rst:60 +#: ../Doc/library/nntplib.rst:77 msgid "The module itself defines the following classes:" msgstr "El módulo en sí define las siguientes clases:" -#: ../Doc/library/nntplib.rst:65 +#: ../Doc/library/nntplib.rst:82 msgid "" "Return a new :class:`NNTP` object, representing a connection to the NNTP " "server running on host *host*, listening at port *port*. An optional " @@ -116,7 +117,7 @@ msgstr "" "keyword:`with` para consumir incondicionalmente las excepciones :exc:" "`OSError` y para cerrar la conexión NNTP cuando haya terminado, e.g.:" -#: ../Doc/library/nntplib.rst:97 ../Doc/library/nntplib.rst:129 +#: ../Doc/library/nntplib.rst:114 ../Doc/library/nntplib.rst:146 msgid "" "Raises an :ref:`auditing event ` ``nntplib.connect`` with " "arguments ``self``, ``host``, ``port``." @@ -124,7 +125,7 @@ msgstr "" "Genera un :ref:`evento de auditoría ` ``nntplib.connect`` con los " "argumentos ``self``, ``host``, ``port``." -#: ../Doc/library/nntplib.rst:99 ../Doc/library/nntplib.rst:131 +#: ../Doc/library/nntplib.rst:116 ../Doc/library/nntplib.rst:148 msgid "" "Raises an :ref:`auditing event ` ``nntplib.putline`` with " "arguments ``self``, ``line``." @@ -132,7 +133,7 @@ msgstr "" "Genera un :ref:`evento de auditoría ` ``nntplib.putline`` con los " "argumentos ``self``, ``line``." -#: ../Doc/library/nntplib.rst:92 ../Doc/library/nntplib.rst:124 +#: ../Doc/library/nntplib.rst:109 ../Doc/library/nntplib.rst:141 msgid "" "All commands will raise an :ref:`auditing event ` ``nntplib." "putline`` with arguments ``self`` and ``line``, where ``line`` is the bytes " @@ -142,15 +143,15 @@ msgstr "" "``nntplib.putline`` con los argumentos ``self`` y ``line``, donde ``line`` " "es los bytes a punto de ser enviados al host remoto." -#: ../Doc/library/nntplib.rst:96 +#: ../Doc/library/nntplib.rst:113 msgid "*usenetrc* is now ``False`` by default." msgstr "*usenetrc* es ahora ``False`` por defecto." -#: ../Doc/library/nntplib.rst:99 +#: ../Doc/library/nntplib.rst:116 msgid "Support for the :keyword:`with` statement was added." msgstr "El soporte para la declaración :keyword:`with` fue añadido." -#: ../Doc/library/nntplib.rst:102 ../Doc/library/nntplib.rst:135 +#: ../Doc/library/nntplib.rst:119 ../Doc/library/nntplib.rst:152 msgid "" "If the *timeout* parameter is set to be zero, it will raise a :class:" "`ValueError` to prevent the creation of a non-blocking socket." @@ -158,7 +159,7 @@ msgstr "" "Si el parámetro *timeout* se establece en cero, lanzará un :class:" "`ValueError` para evitar la creación de un socket sin bloqueo." -#: ../Doc/library/nntplib.rst:108 +#: ../Doc/library/nntplib.rst:125 msgid "" "Return a new :class:`NNTP_SSL` object, representing an encrypted connection " "to the NNTP server running on host *host*, listening at port *port*. :class:" @@ -177,7 +178,7 @@ msgstr "" "buenas prácticas. Todos los demás parámetros se comportan igual que para :" "class:`NNTP`." -#: ../Doc/library/nntplib.rst:116 +#: ../Doc/library/nntplib.rst:133 msgid "" "Note that SSL-on-563 is discouraged per :rfc:`4642`, in favor of STARTTLS as " "described below. However, some servers only support the former." @@ -186,7 +187,7 @@ msgstr "" "de STARTTLS como se describe abajo. Sin embargo, algunos servidores solo " "admiten el primero." -#: ../Doc/library/nntplib.rst:130 +#: ../Doc/library/nntplib.rst:147 msgid "" "The class now supports hostname check with :attr:`ssl.SSLContext." "check_hostname` and *Server Name Indication* (see :data:`ssl.HAS_SNI`)." @@ -195,7 +196,7 @@ msgstr "" "SSLContext.check_hostname` e *Indicador del nombre del servidor* (SNI por " "sus siglas en inglés, consulte :data:`ssl.HAS_SNI`)." -#: ../Doc/library/nntplib.rst:141 +#: ../Doc/library/nntplib.rst:158 msgid "" "Derived from the standard exception :exc:`Exception`, this is the base class " "for all exceptions raised by the :mod:`nntplib` module. Instances of this " @@ -205,31 +206,31 @@ msgstr "" "para todas las excepciones generadas por el módulo :mod:`nntplib`. Las " "instancias de esta clase tienen el siguiente atributo:" -#: ../Doc/library/nntplib.rst:147 +#: ../Doc/library/nntplib.rst:164 msgid "The response of the server if available, as a :class:`str` object." msgstr "" "La respuesta del servidor, si está disponible, como un objeto :class:`str`." -#: ../Doc/library/nntplib.rst:152 +#: ../Doc/library/nntplib.rst:169 msgid "Exception raised when an unexpected reply is received from the server." msgstr "" "Excepción generada cuando se recibe una respuesta inesperada del servidor." -#: ../Doc/library/nntplib.rst:157 +#: ../Doc/library/nntplib.rst:174 msgid "" "Exception raised when a response code in the range 400--499 is received." msgstr "" "Excepción generada cuando se recibe un código de respuesta dentro del rango " "del 400--499." -#: ../Doc/library/nntplib.rst:162 +#: ../Doc/library/nntplib.rst:179 msgid "" "Exception raised when a response code in the range 500--599 is received." msgstr "" "Excepción generada cuando se recibe un código de respuesta dentro del rango " "del 500--599." -#: ../Doc/library/nntplib.rst:167 +#: ../Doc/library/nntplib.rst:184 msgid "" "Exception raised when a reply is received from the server that does not " "begin with a digit in the range 1--5." @@ -237,16 +238,16 @@ msgstr "" "Excepción generada cuando se recibe una respuesta del servidor que no " "comienza con un dígito dentro del rango 1--5." -#: ../Doc/library/nntplib.rst:173 +#: ../Doc/library/nntplib.rst:190 msgid "Exception raised when there is some error in the response data." msgstr "" "Excepción generada cuando hay algún error en los datos de la respuesta." -#: ../Doc/library/nntplib.rst:179 +#: ../Doc/library/nntplib.rst:196 msgid "NNTP Objects" msgstr "Objetos NNTP" -#: ../Doc/library/nntplib.rst:181 +#: ../Doc/library/nntplib.rst:198 msgid "" "When connected, :class:`NNTP` and :class:`NNTP_SSL` objects support the " "following methods and attributes." @@ -254,11 +255,11 @@ msgstr "" "Cuando están conectados, los objetos :class:`NNTP` y :class:`NNTP_SSL` " "admiten los siguientes métodos y atributos." -#: ../Doc/library/nntplib.rst:185 +#: ../Doc/library/nntplib.rst:202 msgid "Attributes" msgstr "Atributos" -#: ../Doc/library/nntplib.rst:189 +#: ../Doc/library/nntplib.rst:206 msgid "" "An integer representing the version of the NNTP protocol supported by the " "server. In practice, this should be ``2`` for servers advertising :rfc:" @@ -268,7 +269,7 @@ msgstr "" "servidor. En la práctica, esto debería ser ``2`` para los servidores que " "anuncian el cumplimiento :rfc:`3977` y ``1`` para otros." -#: ../Doc/library/nntplib.rst:197 +#: ../Doc/library/nntplib.rst:214 msgid "" "A string describing the software name and version of the NNTP server, or :" "const:`None` if not advertised by the server." @@ -276,11 +277,11 @@ msgstr "" "Cadena que describe el nombre de software y la versión del servidor NNTP, o :" "const:`None` si el servidor no lo anuncia." -#: ../Doc/library/nntplib.rst:203 +#: ../Doc/library/nntplib.rst:220 msgid "Methods" msgstr "Métodos" -#: ../Doc/library/nntplib.rst:205 +#: ../Doc/library/nntplib.rst:222 msgid "" "The *response* that is returned as the first item in the return tuple of " "almost all methods is the server's response: a string beginning with a three-" @@ -292,7 +293,7 @@ msgstr "" "que comienza con un código de tres dígitos. Si la respuesta del servidor " "indica un error, el método genera una de las excepciones anteriores." -#: ../Doc/library/nntplib.rst:210 +#: ../Doc/library/nntplib.rst:227 msgid "" "Many of the following methods take an optional keyword-only argument *file*. " "When the *file* argument is supplied, it must be either a :term:`file " @@ -309,7 +310,7 @@ msgstr "" "archivo; cualquier lista de líneas, tuplas u objetos que el método retorna " "normalmente estará vacía." -#: ../Doc/library/nntplib.rst:217 +#: ../Doc/library/nntplib.rst:234 msgid "" "Many of the following methods have been reworked and fixed, which makes them " "incompatible with their 3.1 counterparts." @@ -317,7 +318,7 @@ msgstr "" "Muchos de los siguientes métodos se han rediseñado y corregido, lo que los " "hace incompatibles con sus contrapartes 3.1." -#: ../Doc/library/nntplib.rst:224 +#: ../Doc/library/nntplib.rst:241 msgid "" "Send a ``QUIT`` command and close the connection. Once this method has been " "called, no other methods of the NNTP object should be called." @@ -325,7 +326,7 @@ msgstr "" "Envía un comando ``QUIT`` y cierra la conexión. Una vez que se ha invocado " "este método, no se debe invocar ningún otro método del objeto NNTP." -#: ../Doc/library/nntplib.rst:230 +#: ../Doc/library/nntplib.rst:247 msgid "" "Return the welcome message sent by the server in reply to the initial " "connection. (This message sometimes contains disclaimers or help " @@ -335,7 +336,7 @@ msgstr "" "conexión inicial. (Este mensaje a veces contiene aclaraciones o información " "de ayuda que puede ser relevante para el usuario.)" -#: ../Doc/library/nntplib.rst:237 +#: ../Doc/library/nntplib.rst:254 msgid "" "Return the :rfc:`3977` capabilities advertised by the server, as a :class:" "`dict` instance mapping capability names to (possibly empty) lists of " @@ -347,7 +348,7 @@ msgstr "" "(posiblemente vacías). En los servidores heredados que no entienden el " "comando ``CAPABILITIES``, se retorna un diccionario vacío en su lugar." -#: ../Doc/library/nntplib.rst:251 +#: ../Doc/library/nntplib.rst:268 msgid "" "Send ``AUTHINFO`` commands with the user name and password. If *user* and " "*password* are ``None`` and *usenetrc* is true, credentials from ``~/." @@ -357,7 +358,7 @@ msgstr "" "*user* y *password* son ``None`` y *usenetrc* es verdadero, se utilizarán " "las credenciales de ``~/.netrc`` si su uso es posible." -#: ../Doc/library/nntplib.rst:255 +#: ../Doc/library/nntplib.rst:272 msgid "" "Unless intentionally delayed, login is normally performed during the :class:" "`NNTP` object initialization and separately calling this function is " @@ -370,7 +371,7 @@ msgstr "" "autenticación, no debes establecer *user* o *password* al crear el objeto y " "debes establecer *usenetrc* en *False*." -#: ../Doc/library/nntplib.rst:266 +#: ../Doc/library/nntplib.rst:283 msgid "" "Send a ``STARTTLS`` command. This will enable encryption on the NNTP " "connection. The *context* argument is optional and should be a :class:`ssl." @@ -381,7 +382,7 @@ msgstr "" "SSLContext`. Por favor lea :ref:`ssl-security` para conocer las buenas " "prácticas." -#: ../Doc/library/nntplib.rst:271 +#: ../Doc/library/nntplib.rst:288 msgid "" "Note that this may not be done after authentication information has been " "transmitted, and authentication occurs by default if possible during a :" @@ -394,7 +395,7 @@ msgstr "" "class:`NNTP`. Consulte :meth:`NNTP.login` para obtener información sobre " "cómo suprimir este comportamiento." -#: ../Doc/library/nntplib.rst:278 +#: ../Doc/library/nntplib.rst:295 msgid "" "The method now supports hostname check with :attr:`ssl.SSLContext." "check_hostname` and *Server Name Indication* (see :data:`ssl.HAS_SNI`)." @@ -403,7 +404,7 @@ msgstr "" "SSLContext.check_hostname` y *Indicador del nombre del servidor* (SNI por " "sus siglas en inglés, consulte :data:`ssl.HAS_SNI`)." -#: ../Doc/library/nntplib.rst:285 +#: ../Doc/library/nntplib.rst:302 msgid "" "Send a ``NEWGROUPS`` command. The *date* argument should be a :class:" "`datetime.date` or :class:`datetime.datetime` object. Return a pair " @@ -417,7 +418,7 @@ msgstr "" "que son nuevos desde la fecha determinada. Sin embargo, si se proporciona " "*file*, entonces *groups* estará vacío." -#: ../Doc/library/nntplib.rst:301 +#: ../Doc/library/nntplib.rst:318 msgid "" "Send a ``NEWNEWS`` command. Here, *group* is a group name or ``'*'``, and " "*date* has the same meaning as for :meth:`newgroups`. Return a pair " @@ -428,13 +429,13 @@ msgstr "" "par ``(response, articles)`` donde *articles* es una lista de " "identificadores de mensaje." -#: ../Doc/library/nntplib.rst:305 +#: ../Doc/library/nntplib.rst:322 msgid "This command is frequently disabled by NNTP server administrators." msgstr "" "Este comando es inhabilitado frecuentemente por los administradores del " "servidor NNTP." -#: ../Doc/library/nntplib.rst:310 +#: ../Doc/library/nntplib.rst:327 msgid "" "Send a ``LIST`` or ``LIST ACTIVE`` command. Return a pair ``(response, " "list)`` where *list* is a list of tuples representing all the groups " @@ -451,35 +452,35 @@ msgstr "" "son los últimos y primeros números de artículo, y *flag* suele tomar uno de " "estos valores:" -#: ../Doc/library/nntplib.rst:318 +#: ../Doc/library/nntplib.rst:335 msgid "``y``: Local postings and articles from peers are allowed." msgstr "``y``: Se permiten publicaciones locales y artículos de pares." -#: ../Doc/library/nntplib.rst:319 +#: ../Doc/library/nntplib.rst:336 msgid "``m``: The group is moderated and all postings must be approved." msgstr "" "``m``: El grupo está moderado y todas las publicaciones deben ser aprobadas." -#: ../Doc/library/nntplib.rst:320 +#: ../Doc/library/nntplib.rst:337 msgid "``n``: No local postings are allowed, only articles from peers." msgstr "``n``: No se permiten publicaciones locales, solo artículos de pares." -#: ../Doc/library/nntplib.rst:321 +#: ../Doc/library/nntplib.rst:338 msgid "``j``: Articles from peers are filed in the junk group instead." msgstr "" "``j``: Los artículos de pares se archivan en el grupo de basura en su lugar." -#: ../Doc/library/nntplib.rst:322 +#: ../Doc/library/nntplib.rst:339 msgid "``x``: No local postings, and articles from peers are ignored." msgstr "" "``x``: No hay publicaciones locales y los artículos de pares son ignorados." -#: ../Doc/library/nntplib.rst:323 +#: ../Doc/library/nntplib.rst:340 msgid "``=foo.bar``: Articles are filed in the ``foo.bar`` group instead." msgstr "" "``=foo.bar``: Los artículos se archivan en el grupo ``foo.bar`` en su lugar." -#: ../Doc/library/nntplib.rst:325 +#: ../Doc/library/nntplib.rst:342 msgid "" "If *flag* has another value, then the status of the newsgroup should be " "considered unknown." @@ -487,7 +488,7 @@ msgstr "" "Si *flag* tiene otro valor, el estado del grupo de noticias debe " "considerarse como desconocido." -#: ../Doc/library/nntplib.rst:328 +#: ../Doc/library/nntplib.rst:345 msgid "" "This command can return very large results, especially if *group_pattern* is " "not specified. It is best to cache the results offline unless you really " @@ -497,11 +498,11 @@ msgstr "" "especifica *group_pattern*. Es mejor almacenar en caché los resultados sin " "conexión a menos que realmente necesite actualizarlos." -#: ../Doc/library/nntplib.rst:332 +#: ../Doc/library/nntplib.rst:349 msgid "*group_pattern* was added." msgstr "*group_pattern* fue añadido." -#: ../Doc/library/nntplib.rst:338 +#: ../Doc/library/nntplib.rst:355 msgid "" "Send a ``LIST NEWSGROUPS`` command, where *grouppattern* is a wildmat string " "as specified in :rfc:`3977` (it's essentially the same as DOS or UNIX shell " @@ -514,7 +515,7 @@ msgstr "" "descriptions)``, donde *descriptions* es un diccionario que asigna nombres " "de grupos a descripciones textuales." -#: ../Doc/library/nntplib.rst:352 +#: ../Doc/library/nntplib.rst:369 msgid "" "Get a description for a single group *group*. If more than one group " "matches (if 'group' is a real wildmat string), return the first match. If " @@ -524,7 +525,7 @@ msgstr "" "coincide (si *'group'* es una cadena comodín real), retorna la primera " "coincidencia. Si ningún grupo coincide, retorna una cadena vacía." -#: ../Doc/library/nntplib.rst:356 +#: ../Doc/library/nntplib.rst:373 msgid "" "This elides the response code from the server. If the response code is " "needed, use :meth:`descriptions`." @@ -532,7 +533,7 @@ msgstr "" "Esto elude el código de respuesta del servidor. Si necesita el código de " "respuesta, use :meth:`descriptions`." -#: ../Doc/library/nntplib.rst:362 +#: ../Doc/library/nntplib.rst:379 msgid "" "Send a ``GROUP`` command, where *name* is the group name. The group is " "selected as the current group, if it exists. Return a tuple ``(response, " @@ -547,7 +548,7 @@ msgstr "" "del grupo, *last* es el último número de artículo en el grupo y *name* es el " "nombre del grupo." -#: ../Doc/library/nntplib.rst:372 +#: ../Doc/library/nntplib.rst:389 msgid "" "Send an ``OVER`` command, or an ``XOVER`` command on legacy servers. " "*message_spec* can be either a string representing a message id, or a " @@ -564,7 +565,7 @@ msgstr "" "grupo actual, o :const:`None` para seleccionar el artículo actual en el " "grupo actual." -#: ../Doc/library/nntplib.rst:379 +#: ../Doc/library/nntplib.rst:396 msgid "" "Return a pair ``(response, overviews)``. *overviews* is a list of " "``(article_number, overview)`` tuples, one for each article selected by " @@ -583,7 +584,7 @@ msgstr "" "metadatos precedido de ``\":\"``). Se garantiza la presencia de los " "siguientes elementos por la especificación NNTP:" -#: ../Doc/library/nntplib.rst:387 +#: ../Doc/library/nntplib.rst:404 msgid "" "the ``subject``, ``from``, ``date``, ``message-id`` and ``references`` " "headers" @@ -591,7 +592,7 @@ msgstr "" "los encabezados ``subject``, ``from``, ``date``, ``message-id`` y " "``references``" -#: ../Doc/library/nntplib.rst:389 +#: ../Doc/library/nntplib.rst:406 msgid "" "the ``:bytes`` metadata: the number of bytes in the entire raw article " "(including headers and body)" @@ -599,18 +600,18 @@ msgstr "" "los metadatos ``:bytes``: el número de bytes en todo el artículo sin " "procesar (incluidos los encabezados y el cuerpo)" -#: ../Doc/library/nntplib.rst:391 +#: ../Doc/library/nntplib.rst:408 msgid "the ``:lines`` metadata: the number of lines in the article body" msgstr "" "los metadatos ``:lines``: el número de líneas en el cuerpo del artículo" -#: ../Doc/library/nntplib.rst:393 +#: ../Doc/library/nntplib.rst:410 msgid "" "The value of each item is either a string, or :const:`None` if not present." msgstr "" "El valor de cada elemento es una cadena o :const:`None` si no está presente." -#: ../Doc/library/nntplib.rst:395 +#: ../Doc/library/nntplib.rst:412 msgid "" "It is advisable to use the :func:`decode_header` function on header values " "when they may contain non-ASCII characters::" @@ -618,7 +619,7 @@ msgstr "" "Es aconsejable utilizar la función :func:`decode_header` en los valores del " "encabezado cuando pueden contener caracteres no-ASCII::" -#: ../Doc/library/nntplib.rst:415 +#: ../Doc/library/nntplib.rst:432 msgid "" "Send a ``HELP`` command. Return a pair ``(response, list)`` where *list* is " "a list of help strings." @@ -626,7 +627,7 @@ msgstr "" "Envía un comando ``HELP``. Retorna un par ``(response, list)`` donde *list* " "es una lista de cadenas de caracteres de ayuda." -#: ../Doc/library/nntplib.rst:421 +#: ../Doc/library/nntplib.rst:438 msgid "" "Send a ``STAT`` command, where *message_spec* is either a message id " "(enclosed in ``'<'`` and ``'>'``) or an article number in the current group. " @@ -641,15 +642,15 @@ msgstr "" "id)`` donde *number* es el número de artículo e *id* es el identificador del " "mensaje." -#: ../Doc/library/nntplib.rst:435 +#: ../Doc/library/nntplib.rst:452 msgid "Send a ``NEXT`` command. Return as for :meth:`.stat`." msgstr "Envía un comando ``NEXT``. Retorna como para :meth:`.stat`." -#: ../Doc/library/nntplib.rst:440 +#: ../Doc/library/nntplib.rst:457 msgid "Send a ``LAST`` command. Return as for :meth:`.stat`." msgstr "Envía un comando ``LAST``. Retorna como para :meth:`.stat`." -#: ../Doc/library/nntplib.rst:445 +#: ../Doc/library/nntplib.rst:462 msgid "" "Send an ``ARTICLE`` command, where *message_spec* has the same meaning as " "for :meth:`.stat`. Return a tuple ``(response, info)`` where *info* is a :" @@ -668,7 +669,7 @@ msgstr "" "(sin terminar líneas nuevas) que comprende el mensaje sin procesar, " "incluidos los encabezados y el cuerpo." -#: ../Doc/library/nntplib.rst:470 +#: ../Doc/library/nntplib.rst:487 msgid "" "Same as :meth:`article()`, but sends a ``HEAD`` command. The *lines* " "returned (or written to *file*) will only contain the message headers, not " @@ -678,7 +679,7 @@ msgstr "" "retornadas (o escritas a *file*) solo contendrán los encabezados del " "mensaje, no el cuerpo." -#: ../Doc/library/nntplib.rst:477 +#: ../Doc/library/nntplib.rst:494 msgid "" "Same as :meth:`article()`, but sends a ``BODY`` command. The *lines* " "returned (or written to *file*) will only contain the message body, not the " @@ -688,7 +689,7 @@ msgstr "" "retornadas (o escritas a *file*) solo contendrán los encabezados del " "mensaje, no el cuerpo." -#: ../Doc/library/nntplib.rst:484 +#: ../Doc/library/nntplib.rst:501 msgid "" "Post an article using the ``POST`` command. The *data* argument is either " "a :term:`file object` opened for binary reading, or any iterable of bytes " @@ -705,7 +706,7 @@ msgstr "" "automáticamente las líneas que comienzan con ``.`` y añade la línea de " "terminación." -#: ../Doc/library/nntplib.rst:491 +#: ../Doc/library/nntplib.rst:508 msgid "" "If the method succeeds, the server's response is returned. If the server " "refuses posting, a :class:`NNTPReplyError` is raised." @@ -713,7 +714,7 @@ msgstr "" "Si el método tiene éxito, se retorna la respuesta del servidor. Si el " "servidor se niega a publicarlo, se genera un :class:`NNTPReplyError`." -#: ../Doc/library/nntplib.rst:497 +#: ../Doc/library/nntplib.rst:514 msgid "" "Send an ``IHAVE`` command. *message_id* is the id of the message to send to " "the server (enclosed in ``'<'`` and ``'>'``). The *data* parameter and the " @@ -723,7 +724,7 @@ msgstr "" "se enviará al servidor (incluido entre ``'<'`` y ``'>'``). El parámetro " "*data* y el valor de retorno son los mismos que para :meth:`post()`." -#: ../Doc/library/nntplib.rst:504 +#: ../Doc/library/nntplib.rst:521 msgid "" "Return a pair ``(response, date)``. *date* is a :class:`~datetime.datetime` " "object containing the current date and time of the server." @@ -731,11 +732,11 @@ msgstr "" "Retorna un par ``(response, date)``. *date* es un objeto :class:`~datetime." "datetime` que contiene la fecha y hora actuales del servidor." -#: ../Doc/library/nntplib.rst:510 +#: ../Doc/library/nntplib.rst:527 msgid "Send a ``SLAVE`` command. Return the server's *response*." msgstr "Envía un comando ``SLAVE``. Retorna la *response* del servidor." -#: ../Doc/library/nntplib.rst:515 +#: ../Doc/library/nntplib.rst:532 msgid "" "Set the instance's debugging level. This controls the amount of debugging " "output printed. The default, ``0``, produces no debugging output. A value " @@ -752,7 +753,7 @@ msgstr "" "de depuración, registrando cada línea enviada y recibida en la conexión " "(incluyendo el texto del mensaje)." -#: ../Doc/library/nntplib.rst:523 +#: ../Doc/library/nntplib.rst:540 msgid "" "The following are optional NNTP extensions defined in :rfc:`2980`. Some of " "them have been superseded by newer commands in :rfc:`3977`." @@ -761,7 +762,7 @@ msgstr "" "Algunas de ellas han sido reemplazados por comandos más nuevos en :rfc:" "`3977`." -#: ../Doc/library/nntplib.rst:529 +#: ../Doc/library/nntplib.rst:546 msgid "" "Send an ``XHDR`` command. The *hdr* argument is a header keyword, e.g. " "``'subject'``. The *str* argument should have the form ``'first-last'`` " @@ -788,7 +789,7 @@ msgstr "" "invocando :meth:`write` en él para almacenar las líneas de la salida del " "comando. Si se proporciona *file*, entonces retorna *list* o una lista vacía." -#: ../Doc/library/nntplib.rst:544 +#: ../Doc/library/nntplib.rst:561 msgid "" "Send an ``XOVER`` command. *start* and *end* are article numbers delimiting " "the range of articles to select. The return value is the same of for :meth:" @@ -801,15 +802,15 @@ msgstr "" "lugar, ya que se usará automáticamente el comando más nuevo ``OVER`` si está " "disponible." -#: ../Doc/library/nntplib.rst:552 +#: ../Doc/library/nntplib.rst:569 msgid "Utility functions" msgstr "Funciones de utilidad" -#: ../Doc/library/nntplib.rst:554 +#: ../Doc/library/nntplib.rst:571 msgid "The module also defines the following utility function:" msgstr "El módulo también define la siguiente función de utilidad:" -#: ../Doc/library/nntplib.rst:559 +#: ../Doc/library/nntplib.rst:576 msgid "" "Decode a header value, un-escaping any escaped non-ASCII characters. " "*header_str* must be a :class:`str` object. The unescaped value is " @@ -820,3 +821,15 @@ msgstr "" "no sean ASCII. *header_str* debe ser un objeto :class:`str`. Se retorna el " "valor sin escape. Se recomienda utilizar esta función para mostrar algunos " "encabezados en una forma legible por humanos::" + +#: ../Doc/library/nntplib.rst:10 +msgid "NNTP" +msgstr "" + +#: ../Doc/library/nntplib.rst:10 +msgid "protocol" +msgstr "" + +#: ../Doc/library/nntplib.rst:10 +msgid "Network News Transfer Protocol" +msgstr "" diff --git a/library/operator.po b/library/operator.po index 2ff0f24973..cacb9a4e6f 100644 --- a/library/operator.po +++ b/library/operator.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-03-17 20:03-0500\n" "Last-Translator: Brian Bokser\n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/operator.rst:2 msgid ":mod:`operator` --- Standard operators as functions" @@ -93,11 +92,12 @@ msgstr "" "admiten pruebas de verdad, pruebas de identidad y operaciones booleanas:" #: ../Doc/library/operator.rst:61 +#, fuzzy msgid "" -"Return the outcome of :keyword:`not` *obj*. (Note that there is no :meth:" -"`__not__` method for object instances; only the interpreter core defines " -"this operation. The result is affected by the :meth:`__bool__` and :meth:" -"`__len__` methods.)" +"Return the outcome of :keyword:`not` *obj*. (Note that there is no :meth:`!" +"__not__` method for object instances; only the interpreter core defines this " +"operation. The result is affected by the :meth:`~object.__bool__` and :meth:" +"`~object.__len__` methods.)" msgstr "" "Retorna el resultado de :keyword:`not` *obj*. (Tenga en cuenta que no hay " "ningún método :meth:`__not__` para las instancias de objeto; solo el núcleo " @@ -254,8 +254,9 @@ msgid "Set the value of *a* at index *b* to *c*." msgstr "Establece el valor de *a* en el índice *b* a *c*." #: ../Doc/library/operator.rst:247 +#, fuzzy msgid "" -"Return an estimated length for the object *o*. First try to return its " +"Return an estimated length for the object *obj*. First try to return its " "actual length, then an estimate using :meth:`object.__length_hint__`, and " "finally return the default value." msgstr "" @@ -345,10 +346,11 @@ msgstr "" "r[5], r[3])``." #: ../Doc/library/operator.rst:329 +#, fuzzy msgid "" "The items can be any type accepted by the operand's :meth:`__getitem__` " -"method. Dictionaries accept any hashable value. Lists, tuples, and strings " -"accept an index or a slice:" +"method. Dictionaries accept any :term:`hashable` value. Lists, tuples, and " +"strings accept an index or a slice:" msgstr "" "Los ítems pueden ser de cualquier tipo aceptado por el método :meth:" "`__getitem__` del operando. Los diccionarios aceptan cualquier valor " diff --git a/library/optparse.po b/library/optparse.po index f4b382cb96..7e5d73388f 100644 --- a/library/optparse.po +++ b/library/optparse.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-04 21:42+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/optparse.rst:2 msgid ":mod:`optparse` --- Parser for command line options" @@ -73,15 +73,17 @@ msgstr "" "ejemplo::" #: ../Doc/library/optparse.rst:44 +#, fuzzy msgid "" "As it parses the command line, :mod:`optparse` sets attributes of the " -"``options`` object returned by :meth:`parse_args` based on user-supplied " -"command-line values. When :meth:`parse_args` returns from parsing this " -"command line, ``options.filename`` will be ``\"outfile\"`` and ``options." -"verbose`` will be ``False``. :mod:`optparse` supports both long and short " -"options, allows short options to be merged together, and allows options to " -"be associated with their arguments in a variety of ways. Thus, the " -"following command lines are all equivalent to the above example::" +"``options`` object returned by :meth:`~OptionParser.parse_args` based on " +"user-supplied command-line values. When :meth:`~OptionParser.parse_args` " +"returns from parsing this command line, ``options.filename`` will be " +"``\"outfile\"`` and ``options.verbose`` will be ``False``. :mod:`optparse` " +"supports both long and short options, allows short options to be merged " +"together, and allows options to be associated with their arguments in a " +"variety of ways. Thus, the following command lines are all equivalent to " +"the above example::" msgstr "" "A medida que analiza la línea de comandos, :mod:`optparse` establece los " "atributos del objeto ``options`` retornado por :meth:`parse_args` basándose " @@ -522,16 +524,19 @@ msgstr "" "analice sintácticamente la línea de comandos de tu programa::" #: ../Doc/library/optparse.rst:288 +#, fuzzy msgid "" -"(If you like, you can pass a custom argument list to :meth:`parse_args`, but " -"that's rarely necessary: by default it uses ``sys.argv[1:]``.)" +"(If you like, you can pass a custom argument list to :meth:`~OptionParser." +"parse_args`, but that's rarely necessary: by default it uses ``sys." +"argv[1:]``.)" msgstr "" "(Si lo deseas, puedes pasar una lista de argumentos personalizada a :meth:" "`parse_args`, pero eso rara vez es necesario: por defecto se usa ``sys.argv " "[1:]``.)" #: ../Doc/library/optparse.rst:291 -msgid ":meth:`parse_args` returns two values:" +#, fuzzy +msgid ":meth:`~OptionParser.parse_args` returns two values:" msgstr ":meth:`parse_args` retorna dos valores:" #: ../Doc/library/optparse.rst:293 @@ -621,10 +626,12 @@ msgstr "" "que la analice::" #: ../Doc/library/optparse.rst:340 +#, fuzzy msgid "" "When :mod:`optparse` sees the option string ``-f``, it consumes the next " "argument, ``foo.txt``, and stores it in ``options.filename``. So, after " -"this call to :meth:`parse_args`, ``options.filename`` is ``\"foo.txt\"``." +"this call to :meth:`~OptionParser.parse_args`, ``options.filename`` is " +"``\"foo.txt\"``." msgstr "" "Cuando :mod:`optparse` se encuentra con la cadena de opción ``-f``, consume " "el siguiente argumento, ``foo.txt`` y lo almacena en ``options.filename``. " @@ -741,35 +748,35 @@ msgstr "Otras acciones" msgid "Some other actions supported by :mod:`optparse` are:" msgstr "Algunas de las otras acciones soportadas por :mod:`optparse` son:" -#: ../Doc/library/optparse.rst:407 ../Doc/library/optparse.rst:928 +#: ../Doc/library/optparse.rst:407 ../Doc/library/optparse.rst:929 msgid "``\"store_const\"``" msgstr "``\"store_const\"``" -#: ../Doc/library/optparse.rst:407 ../Doc/library/optparse.rst:928 -msgid "store a constant value" -msgstr "almacena un valor constante" +#: ../Doc/library/optparse.rst:407 ../Doc/library/optparse.rst:929 +msgid "store a constant value, pre-set via :attr:`Option.const`" +msgstr "" -#: ../Doc/library/optparse.rst:410 ../Doc/library/optparse.rst:937 +#: ../Doc/library/optparse.rst:410 ../Doc/library/optparse.rst:938 msgid "``\"append\"``" msgstr "``\"append\"``" -#: ../Doc/library/optparse.rst:410 ../Doc/library/optparse.rst:937 +#: ../Doc/library/optparse.rst:410 ../Doc/library/optparse.rst:938 msgid "append this option's argument to a list" msgstr "agrega el argumento de esta opción a una lista" -#: ../Doc/library/optparse.rst:413 ../Doc/library/optparse.rst:943 +#: ../Doc/library/optparse.rst:413 ../Doc/library/optparse.rst:944 msgid "``\"count\"``" msgstr "``\"count\"``" -#: ../Doc/library/optparse.rst:413 ../Doc/library/optparse.rst:943 +#: ../Doc/library/optparse.rst:413 ../Doc/library/optparse.rst:944 msgid "increment a counter by one" msgstr "incrementa un contador en uno" -#: ../Doc/library/optparse.rst:416 ../Doc/library/optparse.rst:946 +#: ../Doc/library/optparse.rst:416 ../Doc/library/optparse.rst:947 msgid "``\"callback\"``" msgstr "``\"callback\"``" -#: ../Doc/library/optparse.rst:416 ../Doc/library/optparse.rst:946 +#: ../Doc/library/optparse.rst:416 ../Doc/library/optparse.rst:947 msgid "call a specified function" msgstr "llama a una función específica" @@ -835,16 +842,17 @@ msgstr "" "particular es el único que se tendrá en cuenta." #: ../Doc/library/optparse.rst:455 +#, fuzzy msgid "" "A clearer way to specify default values is the :meth:`set_defaults` method " "of OptionParser, which you can call at any time before calling :meth:" -"`parse_args`::" +"`~OptionParser.parse_args`::" msgstr "" "Una forma más clara de especificar valores predeterminados es el método :" "meth:`set_defaults` de OptionParser, al que puedes llamar en cualquier " "momento antes de llamar a :meth:`parse_args`::" -#: ../Doc/library/optparse.rst:462 +#: ../Doc/library/optparse.rst:463 msgid "" "As before, the last value specified for a given option destination is the " "one that counts. For clarity, try to use one method or the other of setting " @@ -854,11 +862,11 @@ msgstr "" "dado es el que cuenta. Para mayor claridad, intenta utilizar un método u " "otro para establecer valores predeterminados, no ambos." -#: ../Doc/library/optparse.rst:470 +#: ../Doc/library/optparse.rst:471 msgid "Generating help" msgstr "Generando ayuda" -#: ../Doc/library/optparse.rst:472 +#: ../Doc/library/optparse.rst:473 msgid "" ":mod:`optparse`'s ability to generate help and usage text automatically is " "useful for creating user-friendly command-line interfaces. All you have to " @@ -873,7 +881,7 @@ msgstr "" "el programa en general. A continuación hay un OptionParser al que se le han " "añadido múltiples opciones fáciles de usar (documentadas)::" -#: ../Doc/library/optparse.rst:493 +#: ../Doc/library/optparse.rst:494 msgid "" "If :mod:`optparse` encounters either ``-h`` or ``--help`` on the command-" "line, or if you just call :meth:`parser.print_help`, it prints the following " @@ -883,7 +891,7 @@ msgstr "" "si simplemente se llama al método :meth:`parser.print_help`, se imprime lo " "siguiente en la salida estándar:" -#: ../Doc/library/optparse.rst:510 +#: ../Doc/library/optparse.rst:511 msgid "" "(If the help output is triggered by a help option, :mod:`optparse` exits " "after printing the help text.)" @@ -891,7 +899,7 @@ msgstr "" "(Si la salida de ayuda se activa mediante una opción de ayuda, :mod:" "`optparse` termina la ejecución después de imprimir el texto de ayuda.)" -#: ../Doc/library/optparse.rst:513 +#: ../Doc/library/optparse.rst:514 msgid "" "There's a lot going on here to help :mod:`optparse` generate the best " "possible help message:" @@ -899,11 +907,11 @@ msgstr "" "Estamos haciendo muchas cosas aquí con el fin de ayudar a que :mod:" "`optparse` genere el mejor mensaje de ayuda posible:" -#: ../Doc/library/optparse.rst:516 +#: ../Doc/library/optparse.rst:517 msgid "the script defines its own usage message::" msgstr "el script define su propio mensaje de uso::" -#: ../Doc/library/optparse.rst:520 +#: ../Doc/library/optparse.rst:521 msgid "" ":mod:`optparse` expands ``%prog`` in the usage string to the name of the " "current program, i.e. ``os.path.basename(sys.argv[0])``. The expanded " @@ -914,7 +922,7 @@ msgstr "" "continuación, la cadena expandida se imprime antes de la ayuda detallada de " "la opción." -#: ../Doc/library/optparse.rst:524 +#: ../Doc/library/optparse.rst:525 msgid "" "If you don't supply a usage string, :mod:`optparse` uses a bland but " "sensible default: ``\"Usage: %prog [options]\"``, which is fine if your " @@ -924,7 +932,7 @@ msgstr "" "predeterminado anodino pero apropiado: ``\"Usage: %prog [options]\"``, lo " "cual está bien si tu script no toma ningún argumento posicional." -#: ../Doc/library/optparse.rst:528 +#: ../Doc/library/optparse.rst:529 msgid "" "every option defines a help string, and doesn't worry about line-wrapping---" "\\ :mod:`optparse` takes care of wrapping lines and making the help output " @@ -934,7 +942,7 @@ msgstr "" "ajuste de línea. :mod:`optparse` se encarga de ajustar las líneas y hacer " "que la salida de ayuda se vea bien." -#: ../Doc/library/optparse.rst:532 +#: ../Doc/library/optparse.rst:533 #, fuzzy msgid "" "options that take a value indicate this fact in their automatically " @@ -943,7 +951,7 @@ msgstr "" "las opciones que toman un valor indican este hecho en su mensaje de ayuda " "generado automáticamente, por ejemplo, para la opción \"*mode*\"::" -#: ../Doc/library/optparse.rst:537 +#: ../Doc/library/optparse.rst:538 #, fuzzy msgid "" "Here, \"MODE\" is called the meta-variable: it stands for the argument that " @@ -961,7 +969,7 @@ msgstr "" "explícitamente ``metavar=\"FILE\"``, lo que da como resultado la siguiente " "descripción de opción generada automáticamente::" -#: ../Doc/library/optparse.rst:546 +#: ../Doc/library/optparse.rst:547 msgid "" "This is important for more than just saving space, though: the manually " "written help text uses the meta-variable ``FILE`` to clue the user in that " @@ -977,7 +985,7 @@ msgstr "" "Esta es una manera simple pero efectiva de hacer que tu texto de ayuda sea " "mucho más claro y útil para los usuarios finales." -#: ../Doc/library/optparse.rst:552 +#: ../Doc/library/optparse.rst:553 #, python-format msgid "" "options that have a default value can include ``%default`` in the help " @@ -991,11 +999,11 @@ msgstr "" "opción no tiene un valor por defecto (o el valor por defecto es ``None``), " "``%default`` se reemplazará por ``none``." -#: ../Doc/library/optparse.rst:558 +#: ../Doc/library/optparse.rst:559 msgid "Grouping Options" msgstr "Agrupando opciones" -#: ../Doc/library/optparse.rst:560 +#: ../Doc/library/optparse.rst:561 msgid "" "When dealing with many options, it is convenient to group these options for " "better help output. An :class:`OptionParser` can contain several option " @@ -1006,31 +1014,31 @@ msgstr "" "contener varios grupos de opciones, cada uno de los cuales puede contener " "múltiples opciones." -#: ../Doc/library/optparse.rst:564 +#: ../Doc/library/optparse.rst:565 msgid "An option group is obtained using the class :class:`OptionGroup`:" msgstr "" "Podemos obtener un grupo de opciones usando la clase :class:`OptionGroup`:" -#: ../Doc/library/optparse.rst:568 ../Doc/library/optparse.rst:1620 +#: ../Doc/library/optparse.rst:569 ../Doc/library/optparse.rst:1640 msgid "where" msgstr "donde" -#: ../Doc/library/optparse.rst:570 +#: ../Doc/library/optparse.rst:571 msgid "" "parser is the :class:`OptionParser` instance the group will be inserted in to" msgstr "" "*parser* es la instancia de :class:`OptionParser` en la que se insertará el " "grupo" -#: ../Doc/library/optparse.rst:572 +#: ../Doc/library/optparse.rst:573 msgid "title is the group title" msgstr "*title* es el título dado al grupo" -#: ../Doc/library/optparse.rst:573 +#: ../Doc/library/optparse.rst:574 msgid "description, optional, is a long description of the group" msgstr "*description*, opcional, es la descripción larga del grupo" -#: ../Doc/library/optparse.rst:575 +#: ../Doc/library/optparse.rst:576 msgid "" ":class:`OptionGroup` inherits from :class:`OptionContainer` (like :class:" "`OptionParser`) and so the :meth:`add_option` method can be used to add an " @@ -1040,7 +1048,7 @@ msgstr "" "que :class:`OptionParser`), por lo que el método :meth:`add_option` se puede " "usar para agregar una opción al grupo." -#: ../Doc/library/optparse.rst:579 +#: ../Doc/library/optparse.rst:580 msgid "" "Once all the options are declared, using the :class:`OptionParser` method :" "meth:`add_option_group` the group is added to the previously defined parser." @@ -1049,7 +1057,7 @@ msgstr "" "`add_option_group` de la clase :class:`OptionParser` el grupo se agrega al " "analizador sintáctico previamente definido." -#: ../Doc/library/optparse.rst:582 +#: ../Doc/library/optparse.rst:583 msgid "" "Continuing with the parser defined in the previous section, adding an :class:" "`OptionGroup` to a parser is easy::" @@ -1057,11 +1065,11 @@ msgstr "" "Agregar un :class:`OptionGroup` a un analizador es fácil, continuando con el " "analizador definido en la sección anterior::" -#: ../Doc/library/optparse.rst:591 +#: ../Doc/library/optparse.rst:592 msgid "This would result in the following help output:" msgstr "Esto daría como resultado la siguiente salida de ayuda:" -#: ../Doc/library/optparse.rst:612 +#: ../Doc/library/optparse.rst:613 msgid "" "A bit more complete example might involve using more than one group: still " "extending the previous example::" @@ -1069,11 +1077,11 @@ msgstr "" "Un ejemplo un poco más completo podría implicar el uso de más de un grupo, " "ampliando el ejemplo anterior::" -#: ../Doc/library/optparse.rst:629 +#: ../Doc/library/optparse.rst:630 msgid "that results in the following output:" msgstr "lo que da como resultado la siguiente salida:" -#: ../Doc/library/optparse.rst:655 +#: ../Doc/library/optparse.rst:656 msgid "" "Another interesting method, in particular when working programmatically with " "option groups is:" @@ -1081,7 +1089,7 @@ msgstr "" "Otro método interesante, particularmente cuando se trabaja programáticamente " "con grupos de opciones, es:" -#: ../Doc/library/optparse.rst:660 +#: ../Doc/library/optparse.rst:661 msgid "" "Return the :class:`OptionGroup` to which the short or long option string " "*opt_str* (e.g. ``'-o'`` or ``'--option'``) belongs. If there's no such :" @@ -1091,11 +1099,11 @@ msgstr "" "larga *opt_str* (por ejemplo, ``'-o'`` o ``' --option'``). Si no existe " "dicho :class:`OptionGroup`, el método retorna ``None``." -#: ../Doc/library/optparse.rst:667 +#: ../Doc/library/optparse.rst:668 msgid "Printing a version string" msgstr "Imprimir una cadena de caracteres con la versión del programa" -#: ../Doc/library/optparse.rst:669 +#: ../Doc/library/optparse.rst:670 msgid "" "Similar to the brief usage string, :mod:`optparse` can also print a version " "string for your program. You have to supply the string as the ``version`` " @@ -1106,7 +1114,7 @@ msgstr "" "Debes proporcionar la cadena mediante el argumento ``version`` de " "OptionParser::" -#: ../Doc/library/optparse.rst:675 +#: ../Doc/library/optparse.rst:676 msgid "" "``%prog`` is expanded just like it is in ``usage``. Apart from that, " "``version`` can contain anything you like. When you supply it, :mod:" @@ -1121,11 +1129,11 @@ msgstr "" "(reemplazando ``%prog``), la imprime en la salida estándar y termina la " "ejecución." -#: ../Doc/library/optparse.rst:681 +#: ../Doc/library/optparse.rst:682 msgid "For example, if your script is called ``/usr/bin/foo``:" msgstr "Por ejemplo, si tu script se llama ``/usr/bin/foo``:" -#: ../Doc/library/optparse.rst:688 +#: ../Doc/library/optparse.rst:689 msgid "" "The following two methods can be used to print and get the ``version`` " "string:" @@ -1133,7 +1141,7 @@ msgstr "" "Para imprimir y obtener la cadena de caracteres ``version``, se pueden " "utilizar cualquiera de los siguientes métodos:" -#: ../Doc/library/optparse.rst:692 +#: ../Doc/library/optparse.rst:693 msgid "" "Print the version message for the current program (``self.version``) to " "*file* (default stdout). As with :meth:`print_usage`, any occurrence of " @@ -1146,7 +1154,7 @@ msgstr "" "reemplaza con el nombre del programa actual. El método no hace nada si " "``self.version`` está vacío o no está definido." -#: ../Doc/library/optparse.rst:699 +#: ../Doc/library/optparse.rst:700 msgid "" "Same as :meth:`print_version` but returns the version string instead of " "printing it." @@ -1154,11 +1162,11 @@ msgstr "" "Igual que :meth:`print_version`, pero retorna la cadena de versión en lugar " "de imprimirla." -#: ../Doc/library/optparse.rst:706 +#: ../Doc/library/optparse.rst:707 msgid "How :mod:`optparse` handles errors" msgstr "Cómo maneja los errores el módulo :mod:`optparse`" -#: ../Doc/library/optparse.rst:708 +#: ../Doc/library/optparse.rst:709 msgid "" "There are two broad classes of errors that :mod:`optparse` has to worry " "about: programmer errors and user errors. Programmer errors are usually " @@ -1175,7 +1183,7 @@ msgstr "" "forma habitual: generan una excepción (ya sea :exc:`optparse.OptionError` o :" "exc:`TypeError`) y hacen que el programa se bloquee." -#: ../Doc/library/optparse.rst:715 +#: ../Doc/library/optparse.rst:716 msgid "" "Handling user errors is much more important, since they are guaranteed to " "happen no matter how stable your code is. :mod:`optparse` can automatically " @@ -1194,7 +1202,7 @@ msgstr "" "puedes llamar a :func:`OptionParser.error` para establecer una condición de " "error definida por la propia aplicación::" -#: ../Doc/library/optparse.rst:728 +#: ../Doc/library/optparse.rst:729 msgid "" "In either case, :mod:`optparse` handles the error the same way: it prints " "the program's usage message and an error message to standard error and exits " @@ -1204,7 +1212,7 @@ msgstr "" "imprime el mensaje de uso del programa junto a un mensaje de error en la " "salida de errores estándar y termina la ejecución con el estado de error 2." -#: ../Doc/library/optparse.rst:732 +#: ../Doc/library/optparse.rst:733 msgid "" "Consider the first example above, where the user passes ``4x`` to an option " "that takes an integer:" @@ -1212,12 +1220,12 @@ msgstr "" "Considera el primero de los dos ejemplos anteriores, donde el usuario pasa " "``4x`` a una opción que toma un número entero:" -#: ../Doc/library/optparse.rst:742 +#: ../Doc/library/optparse.rst:743 msgid "Or, where the user fails to pass a value at all:" msgstr "" "O, en el caso en el que el usuario definitivamente no pase ningún valor:" -#: ../Doc/library/optparse.rst:751 +#: ../Doc/library/optparse.rst:752 msgid "" ":mod:`optparse`\\ -generated error messages take care always to mention the " "option involved in the error; be sure to do the same when calling :func:" @@ -1227,7 +1235,7 @@ msgstr "" "de mencionar la opción involucrada en el error. Asegúrate de hacer lo mismo " "cuando llames a :func:`OptionParser.error` desde el código de tu aplicación." -#: ../Doc/library/optparse.rst:755 +#: ../Doc/library/optparse.rst:756 msgid "" "If :mod:`optparse`'s default error-handling behaviour does not suit your " "needs, you'll need to subclass OptionParser and override its :meth:" @@ -1238,23 +1246,23 @@ msgstr "" "redefinir su método :meth:`~OptionParser.exit` y/o :meth:`~OptionParser." "error`." -#: ../Doc/library/optparse.rst:763 +#: ../Doc/library/optparse.rst:764 msgid "Putting it all together" msgstr "Reuniendo todas las piezas" -#: ../Doc/library/optparse.rst:765 +#: ../Doc/library/optparse.rst:766 msgid "Here's what :mod:`optparse`\\ -based scripts usually look like::" msgstr "Así es como los scripts basados en :mod:`optparse` usualmente se ven:" -#: ../Doc/library/optparse.rst:793 +#: ../Doc/library/optparse.rst:794 msgid "Reference Guide" msgstr "Guía de referencia" -#: ../Doc/library/optparse.rst:799 +#: ../Doc/library/optparse.rst:800 msgid "Creating the parser" msgstr "Creando el analizador sintáctico (parser)" -#: ../Doc/library/optparse.rst:801 +#: ../Doc/library/optparse.rst:802 msgid "" "The first step in using :mod:`optparse` is to create an OptionParser " "instance." @@ -1262,7 +1270,7 @@ msgstr "" "El primer paso para poder usar :mod:`optparse` es crear una instancia de " "OptionParser." -#: ../Doc/library/optparse.rst:805 +#: ../Doc/library/optparse.rst:806 msgid "" "The OptionParser constructor has no required arguments, but a number of " "optional keyword arguments. You should always pass them as keyword " @@ -1273,17 +1281,18 @@ msgstr "" "pasarse como argumentos por palabras clave, es decir, no se debe confiar " "nunca en el orden en que se declaran los argumentos." -#: ../Doc/library/optparse.rst:814 +#: ../Doc/library/optparse.rst:815 msgid "``usage`` (default: ``\"%prog [options]\"``)" msgstr "``usage`` (por defecto: ``\"%prog [options]\"``)" -#: ../Doc/library/optparse.rst:810 +#: ../Doc/library/optparse.rst:811 +#, fuzzy msgid "" "The usage summary to print when your program is run incorrectly or with a " "help option. When :mod:`optparse` prints the usage string, it expands " "``%prog`` to ``os.path.basename(sys.argv[0])`` (or to ``prog`` if you passed " "that keyword argument). To suppress a usage message, pass the special " -"value :data:`optparse.SUPPRESS_USAGE`." +"value :const:`optparse.SUPPRESS_USAGE`." msgstr "" "El resumen de uso a imprimir cuando el programa se ejecuta incorrectamente o " "con una opción de ayuda. Cuando :mod:`optparse` imprime la cadena de uso, " @@ -1291,11 +1300,11 @@ msgstr "" "se proporcionó eso argumento por palabra clave). Para suprimir un mensaje de " "uso, se debe pasar el valor especial :data:`optparse.SUPPRESS_USAGE`." -#: ../Doc/library/optparse.rst:821 +#: ../Doc/library/optparse.rst:822 msgid "``option_list`` (default: ``[]``)" msgstr "``option_list`` (por defecto: ``[]``)" -#: ../Doc/library/optparse.rst:817 +#: ../Doc/library/optparse.rst:818 msgid "" "A list of Option objects to populate the parser with. The options in " "``option_list`` are added after any options in ``standard_option_list`` (a " @@ -1310,21 +1319,21 @@ msgstr "" "ayuda. Obsoleto: usar en su lugar el método :meth:`add_option`, una vez " "creado el analizador." -#: ../Doc/library/optparse.rst:824 +#: ../Doc/library/optparse.rst:825 msgid "``option_class`` (default: optparse.Option)" msgstr "``option_class`` (por defecto: *optparse.Option*)" -#: ../Doc/library/optparse.rst:824 +#: ../Doc/library/optparse.rst:825 msgid "Class to use when adding options to the parser in :meth:`add_option`." msgstr "" "Clase usada por el método :meth:`add_option` para añadir opciones al " "analizador." -#: ../Doc/library/optparse.rst:830 +#: ../Doc/library/optparse.rst:831 msgid "``version`` (default: ``None``)" msgstr "``version`` (por defecto: ``None``)" -#: ../Doc/library/optparse.rst:827 +#: ../Doc/library/optparse.rst:828 msgid "" "A version string to print when the user supplies a version option. If you " "supply a true value for ``version``, :mod:`optparse` automatically adds a " @@ -1337,11 +1346,11 @@ msgstr "" "opción de versión con ``--version`` como única cadena de opción. La " "subcadena ``%prog`` se expande de la misma manera que en ``usage``." -#: ../Doc/library/optparse.rst:835 +#: ../Doc/library/optparse.rst:836 msgid "``conflict_handler`` (default: ``\"error\"``)" msgstr "``conflict_handler`` (por defecto: ``\"error\"``)" -#: ../Doc/library/optparse.rst:833 +#: ../Doc/library/optparse.rst:834 msgid "" "Specifies what to do when options with conflicting option strings are added " "to the parser; see section :ref:`optparse-conflicts-between-options`." @@ -1350,11 +1359,11 @@ msgstr "" "opción en conflicto entre si. Ver sección :ref:`optparse-conflicts-between-" "options`." -#: ../Doc/library/optparse.rst:841 +#: ../Doc/library/optparse.rst:842 msgid "``description`` (default: ``None``)" msgstr "``description`` (por defecto: ``None``)" -#: ../Doc/library/optparse.rst:838 +#: ../Doc/library/optparse.rst:839 msgid "" "A paragraph of text giving a brief overview of your program. :mod:`optparse` " "reformats this paragraph to fit the current terminal width and prints it " @@ -1366,13 +1375,13 @@ msgstr "" "terminal y lo imprime cuando el usuario solicita ayuda (después de " "``usage``, pero antes de la lista de opciones)." -#: ../Doc/library/optparse.rst:846 +#: ../Doc/library/optparse.rst:847 msgid "``formatter`` (default: a new :class:`IndentedHelpFormatter`)" msgstr "" "``formatter`` (por defecto: una nueva instancia de la clase :class:" "`IndentedHelpFormatter`)" -#: ../Doc/library/optparse.rst:844 +#: ../Doc/library/optparse.rst:845 msgid "" "An instance of optparse.HelpFormatter that will be used for printing help " "text. :mod:`optparse` provides two concrete classes for this purpose: " @@ -1382,11 +1391,11 @@ msgstr "" "imprimir el texto de ayuda. El módulo :mod:`optparse` proporciona dos clases " "concretas para este propósito: IndentedHelpFormatter y TitledHelpFormatter." -#: ../Doc/library/optparse.rst:850 +#: ../Doc/library/optparse.rst:851 msgid "``add_help_option`` (default: ``True``)" msgstr "``add_help_option`` (por defecto: ``True``)" -#: ../Doc/library/optparse.rst:849 +#: ../Doc/library/optparse.rst:850 msgid "" "If true, :mod:`optparse` will add a help option (with option strings ``-h`` " "and ``--help``) to the parser." @@ -1394,11 +1403,11 @@ msgstr "" "Si es verdadero, :mod:`optparse` agregará al analizador una opción de ayuda " "(con las cadenas de opción ``-h`` y ``--help``)." -#: ../Doc/library/optparse.rst:854 +#: ../Doc/library/optparse.rst:855 msgid "``prog``" msgstr "``prog``" -#: ../Doc/library/optparse.rst:853 +#: ../Doc/library/optparse.rst:854 msgid "" "The string to use when expanding ``%prog`` in ``usage`` and ``version`` " "instead of ``os.path.basename(sys.argv[0])``." @@ -1406,20 +1415,20 @@ msgstr "" "La cadena de caracteres a usar como substituta de ``os.path.basename(sys." "argv[0])`` cuando se expanda ``%prog`` en ``usage`` y en ``version``." -#: ../Doc/library/optparse.rst:856 +#: ../Doc/library/optparse.rst:857 msgid "``epilog`` (default: ``None``)" msgstr "``epilog`` (por defecto: ``None``)" -#: ../Doc/library/optparse.rst:857 +#: ../Doc/library/optparse.rst:858 msgid "A paragraph of help text to print after the option help." msgstr "" "Un párrafo con texto de ayuda que se imprimirá después de la opción de ayuda." -#: ../Doc/library/optparse.rst:862 +#: ../Doc/library/optparse.rst:863 msgid "Populating the parser" msgstr "Completando el analizador con opciones" -#: ../Doc/library/optparse.rst:864 +#: ../Doc/library/optparse.rst:865 msgid "" "There are several ways to populate the parser with options. The preferred " "way is by using :meth:`OptionParser.add_option`, as shown in section :ref:" @@ -1430,12 +1439,12 @@ msgstr "" "en la sección del :ref:`optparse-tutorial`. El método :meth:`add_option` se " "puede llamar de dos formas diferentes:" -#: ../Doc/library/optparse.rst:868 +#: ../Doc/library/optparse.rst:869 msgid "pass it an Option instance (as returned by :func:`make_option`)" msgstr "" "pasándole una instancia de Option (como la que retorna :func:`make_option`)" -#: ../Doc/library/optparse.rst:870 +#: ../Doc/library/optparse.rst:871 msgid "" "pass it any combination of positional and keyword arguments that are " "acceptable to :func:`make_option` (i.e., to the Option constructor), and it " @@ -1446,7 +1455,7 @@ msgstr "" "constructor de la clase Option), lo que creará la instancia Option " "automáticamente" -#: ../Doc/library/optparse.rst:874 +#: ../Doc/library/optparse.rst:875 msgid "" "The other alternative is to pass a list of pre-constructed Option instances " "to the OptionParser constructor, as in::" @@ -1454,7 +1463,7 @@ msgstr "" "La otra alternativa es pasar una lista de instancias de Option previamente " "construidas al constructor OptionParser, como en el siguiente ejemplo::" -#: ../Doc/library/optparse.rst:885 +#: ../Doc/library/optparse.rst:886 msgid "" "(:func:`make_option` is a factory function for creating Option instances; " "currently it is an alias for the Option constructor. A future version of :" @@ -1469,11 +1478,11 @@ msgstr "" "instanciar. Esta es la razón por la que no se debe instanciar Option " "directamente.)" -#: ../Doc/library/optparse.rst:894 +#: ../Doc/library/optparse.rst:895 msgid "Defining options" msgstr "Definiendo las opciones" -#: ../Doc/library/optparse.rst:896 +#: ../Doc/library/optparse.rst:897 msgid "" "Each Option instance represents a set of synonymous command-line option " "strings, e.g. ``-f`` and ``--file``. You can specify any number of short or " @@ -1484,7 +1493,7 @@ msgstr "" "puede especificar cualquier número de cadenas de opción cortas o largas, " "pero se debe proporcionar al menos una cadena de opción en total." -#: ../Doc/library/optparse.rst:900 +#: ../Doc/library/optparse.rst:901 msgid "" "The canonical way to create an :class:`Option` instance is with the :meth:" "`add_option` method of :class:`OptionParser`." @@ -1492,15 +1501,15 @@ msgstr "" "La forma canónica de crear una instancia de :class:`Option` es mediante el " "método :meth:`add_option` de la clase :class:`OptionParser`." -#: ../Doc/library/optparse.rst:906 +#: ../Doc/library/optparse.rst:907 msgid "To define an option with only a short option string::" msgstr "Para definir una opción con solo una cadena de opción corta::" -#: ../Doc/library/optparse.rst:910 +#: ../Doc/library/optparse.rst:911 msgid "And to define an option with only a long option string::" msgstr "Y para definir una opción con solo una cadena de opción larga::" -#: ../Doc/library/optparse.rst:914 +#: ../Doc/library/optparse.rst:915 msgid "" "The keyword arguments define attributes of the new Option object. The most " "important option attribute is :attr:`~Option.action`, and it largely " @@ -1515,7 +1524,7 @@ msgstr "" "requeridos, :mod:`optparse` lanza una excepción :exc:`OptionError` " "explicando el error." -#: ../Doc/library/optparse.rst:920 +#: ../Doc/library/optparse.rst:921 msgid "" "An option's *action* determines what :mod:`optparse` does when it encounters " "this option on the command-line. The standard option actions hard-coded " @@ -1525,50 +1534,51 @@ msgstr "" "`optparse` cuando encuentra dicha opción en la línea de comandos. Las " "acciones de opción estándares codificadas en :mod:`optparse` son:" -#: ../Doc/library/optparse.rst:925 +#: ../Doc/library/optparse.rst:926 msgid "``\"store\"``" msgstr "``\"store\"``" -#: ../Doc/library/optparse.rst:925 +#: ../Doc/library/optparse.rst:926 msgid "store this option's argument (default)" msgstr "almacena el argumento de esta opción (por defecto)" -#: ../Doc/library/optparse.rst:931 +#: ../Doc/library/optparse.rst:932 msgid "``\"store_true\"``" msgstr "``\"store_true\"``" -#: ../Doc/library/optparse.rst:931 +#: ../Doc/library/optparse.rst:932 msgid "store ``True``" msgstr "almacena ``True``" -#: ../Doc/library/optparse.rst:934 +#: ../Doc/library/optparse.rst:935 msgid "``\"store_false\"``" msgstr "``\"store_false\"``" -#: ../Doc/library/optparse.rst:934 +#: ../Doc/library/optparse.rst:935 msgid "store ``False``" msgstr "almacena ``False``" -#: ../Doc/library/optparse.rst:940 +#: ../Doc/library/optparse.rst:941 msgid "``\"append_const\"``" msgstr "``\"append_const\"``" -#: ../Doc/library/optparse.rst:940 -msgid "append a constant value to a list" +#: ../Doc/library/optparse.rst:941 +#, fuzzy +msgid "append a constant value to a list, pre-set via :attr:`Option.const`" msgstr "agrega un valor constante a una lista" -#: ../Doc/library/optparse.rst:949 ../Doc/library/optparse.rst:1226 +#: ../Doc/library/optparse.rst:950 ../Doc/library/optparse.rst:1244 msgid "``\"help\"``" msgstr "``\"help\"``" -#: ../Doc/library/optparse.rst:949 +#: ../Doc/library/optparse.rst:950 msgid "" "print a usage message including all options and the documentation for them" msgstr "" "imprime un mensaje de uso que incluye todas las opciones y la documentación " "correspondiente" -#: ../Doc/library/optparse.rst:951 +#: ../Doc/library/optparse.rst:952 msgid "" "(If you don't supply an action, the default is ``\"store\"``. For this " "action, you may also supply :attr:`~Option.type` and :attr:`~Option.dest` " @@ -1579,14 +1589,12 @@ msgstr "" "de opción :attr:`~Option.type` y :attr:`~Option.dest`. Consultar :ref:" "`optparse-standard-option-actions` para más información.)" -#: ../Doc/library/optparse.rst:955 +#: ../Doc/library/optparse.rst:956 +#, fuzzy msgid "" "As you can see, most actions involve storing or updating a value somewhere. :" "mod:`optparse` always creates a special object for this, conventionally " -"called ``options`` (it happens to be an instance of :class:`optparse." -"Values`). Option arguments (and various other values) are stored as " -"attributes of this object, according to the :attr:`~Option.dest` " -"(destination) option attribute." +"called ``options``, which is an instance of :class:`optparse.Values`." msgstr "" "Como se puede observar, la mayoría de las acciones implican almacenar o " "actualizar un valor en algún lugar. :mod:`optparse` siempre crea un objeto " @@ -1596,11 +1604,26 @@ msgstr "" "acuerdo con el atributo de opción :attr:`~ Option.dest` (destino) " "establecido." -#: ../Doc/library/optparse.rst:961 +#: ../Doc/library/optparse.rst:962 +msgid "" +"An object holding parsed argument names and values as attributes. Normally " +"created by calling when calling :meth:`OptionParser.parse_args`, and can be " +"overridden by a custom subclass passed to the *values* argument of :meth:" +"`OptionParser.parse_args` (as described in :ref:`optparse-parsing-" +"arguments`)." +msgstr "" + +#: ../Doc/library/optparse.rst:967 +msgid "" +"Option arguments (and various other values) are stored as attributes of this " +"object, according to the :attr:`~Option.dest` (destination) option attribute." +msgstr "" + +#: ../Doc/library/optparse.rst:971 msgid "For example, when you call ::" msgstr "Por ejemplo, cuando se llama a::" -#: ../Doc/library/optparse.rst:965 +#: ../Doc/library/optparse.rst:975 msgid "" "one of the first things :mod:`optparse` does is create the ``options`` " "object::" @@ -1608,24 +1631,24 @@ msgstr "" "una de las primeras cosas que hace el módulo :mod:`optparse` es crear el " "objeto ``options``::" -#: ../Doc/library/optparse.rst:969 +#: ../Doc/library/optparse.rst:979 msgid "If one of the options in this parser is defined with ::" msgstr "Si una de las opciones de este analizador es definida con::" -#: ../Doc/library/optparse.rst:973 +#: ../Doc/library/optparse.rst:983 msgid "and the command-line being parsed includes any of the following::" msgstr "" "y la línea de comandos que se analiza incluye cualquiera de las siguientes " "variantes::" -#: ../Doc/library/optparse.rst:980 +#: ../Doc/library/optparse.rst:990 msgid "" "then :mod:`optparse`, on seeing this option, will do the equivalent of ::" msgstr "" "entonces el módulo :mod:`optparse`, al encontrar esta opción, hará algo " "equivalente a::" -#: ../Doc/library/optparse.rst:984 +#: ../Doc/library/optparse.rst:994 msgid "" "The :attr:`~Option.type` and :attr:`~Option.dest` option attributes are " "almost as important as :attr:`~Option.action`, but :attr:`~Option.action` is " @@ -1635,11 +1658,19 @@ msgstr "" "tan importantes como :attr:`~Option.action`, pero :attr:`~Option.action` es " "el único de ellos que es apropiado para *todas* las opciones." -#: ../Doc/library/optparse.rst:992 +#: ../Doc/library/optparse.rst:1002 msgid "Option attributes" msgstr "Atributos de opción" -#: ../Doc/library/optparse.rst:994 +#: ../Doc/library/optparse.rst:1006 +msgid "" +"A single command line argument, with various attributes passed by keyword to " +"the constructor. Normally created with :meth:`OptionParser.add_option` " +"rather than directly, and can be overridden by a custom class via the " +"*option_class* argument to :class:`OptionParser`." +msgstr "" + +#: ../Doc/library/optparse.rst:1012 msgid "" "The following option attributes may be passed as keyword arguments to :meth:" "`OptionParser.add_option`. If you pass an option attribute that is not " @@ -1652,11 +1683,11 @@ msgstr "" "se pasa un atributo de opción obligatorio, :mod:`optparse` lanza una " "excepción :exc:`OptionError`." -#: ../Doc/library/optparse.rst:1001 +#: ../Doc/library/optparse.rst:1019 msgid "(default: ``\"store\"``)" msgstr "(por defecto: ``\"store\"``)" -#: ../Doc/library/optparse.rst:1003 +#: ../Doc/library/optparse.rst:1021 msgid "" "Determines :mod:`optparse`'s behaviour when this option is seen on the " "command line; the available options are documented :ref:`here `." -#: ../Doc/library/optparse.rst:1009 +#: ../Doc/library/optparse.rst:1027 msgid "(default: ``\"string\"``)" msgstr "(por defecto: ``\"string\"``)" -#: ../Doc/library/optparse.rst:1011 +#: ../Doc/library/optparse.rst:1029 msgid "" "The argument type expected by this option (e.g., ``\"string\"`` or " "``\"int\"``); the available option types are documented :ref:`here `." -#: ../Doc/library/optparse.rst:1017 ../Doc/library/optparse.rst:1067 +#: ../Doc/library/optparse.rst:1035 ../Doc/library/optparse.rst:1085 msgid "(default: derived from option strings)" msgstr "(por defecto: derivado de las cadenas de opción)" -#: ../Doc/library/optparse.rst:1019 +#: ../Doc/library/optparse.rst:1037 msgid "" "If the option's action implies writing or modifying a value somewhere, this " "tells :mod:`optparse` where to write it: :attr:`~Option.dest` names an " @@ -1696,7 +1727,7 @@ msgstr "" "`~Option.dest` es el nombre de un atributo del objeto ``options`` que :mod:" "`optparse` construye a medida que analiza la línea de comandos." -#: ../Doc/library/optparse.rst:1026 +#: ../Doc/library/optparse.rst:1044 msgid "" "The value to use for this option's destination if the option is not seen on " "the command line. See also :meth:`OptionParser.set_defaults`." @@ -1705,11 +1736,11 @@ msgstr "" "aparece en la línea de comandos. Ver también :meth:`OptionParser." "set_defaults`." -#: ../Doc/library/optparse.rst:1031 +#: ../Doc/library/optparse.rst:1049 msgid "(default: 1)" msgstr "(por defecto: 1)" -#: ../Doc/library/optparse.rst:1033 +#: ../Doc/library/optparse.rst:1051 msgid "" "How many arguments of type :attr:`~Option.type` should be consumed when this " "option is seen. If > 1, :mod:`optparse` will store a tuple of values to :" @@ -1719,13 +1750,13 @@ msgstr "" "encuentre esta opción. Si es mayor a 1, :mod:`optparse` almacenará una tupla " "con los valores de los argumentos en :attr:`~Option.dest`." -#: ../Doc/library/optparse.rst:1039 +#: ../Doc/library/optparse.rst:1057 msgid "For actions that store a constant value, the constant value to store." msgstr "" "Para acciones que almacenan un valor constante, el valor constante a " "almacenar." -#: ../Doc/library/optparse.rst:1043 +#: ../Doc/library/optparse.rst:1061 msgid "" "For options of type ``\"choice\"``, the list of strings the user may choose " "from." @@ -1733,7 +1764,7 @@ msgstr "" "Para opciones de tipo ``\"choice\"``, la lista con las cadenas que el " "usuario puede elegir." -#: ../Doc/library/optparse.rst:1048 +#: ../Doc/library/optparse.rst:1066 msgid "" "For options with action ``\"callback\"``, the callable to call when this " "option is seen. See section :ref:`optparse-option-callbacks` for detail on " @@ -1744,7 +1775,7 @@ msgstr "" "ref:`optparse-option-callbacks` para obtener más detalles sobre los " "argumentos que son pasados al objeto invocable." -#: ../Doc/library/optparse.rst:1055 +#: ../Doc/library/optparse.rst:1073 msgid "" "Additional positional and keyword arguments to pass to ``callback`` after " "the four standard callback arguments." @@ -1753,12 +1784,13 @@ msgstr "" "``callback`` después de los cuatro argumentos pasados a la retrollamada " "estándar." -#: ../Doc/library/optparse.rst:1060 +#: ../Doc/library/optparse.rst:1078 +#, fuzzy msgid "" "Help text to print for this option when listing all available options after " "the user supplies a :attr:`~Option.help` option (such as ``--help``). If no " "help text is supplied, the option will be listed without help text. To hide " -"this option, use the special value :data:`optparse.SUPPRESS_HELP`." +"this option, use the special value :const:`optparse.SUPPRESS_HELP`." msgstr "" "Texto de ayuda a imprimir para esta opción cuando se enumeran todas las " "opciones disponibles, después de que el usuario proporcione una opción :attr:" @@ -1767,7 +1799,7 @@ msgstr "" "ocultar esta opción completamente, se debe asignar al atributo el valor " "especial :data:`optparse.SUPPRESS_HELP`." -#: ../Doc/library/optparse.rst:1069 +#: ../Doc/library/optparse.rst:1087 msgid "" "Stand-in for the option argument(s) to use when printing help text. See " "section :ref:`optparse-tutorial` for an example." @@ -1776,11 +1808,11 @@ msgstr "" "texto de ayuda. Consultar la sección :ref:`optparse-tutorial` para ver un " "ejemplo." -#: ../Doc/library/optparse.rst:1076 +#: ../Doc/library/optparse.rst:1094 msgid "Standard option actions" msgstr "Acciones de opción estándares" -#: ../Doc/library/optparse.rst:1078 +#: ../Doc/library/optparse.rst:1096 msgid "" "The various option actions all have slightly different requirements and " "effects. Most actions have several relevant option attributes which you may " @@ -1794,7 +1826,7 @@ msgstr "" "requeridos, que se deben especificar para cualquier opción que utilice esa " "acción." -#: ../Doc/library/optparse.rst:1083 +#: ../Doc/library/optparse.rst:1101 msgid "" "``\"store\"`` [relevant: :attr:`~Option.type`, :attr:`~Option.dest`, :attr:" "`~Option.nargs`, :attr:`~Option.choices`]" @@ -1802,7 +1834,7 @@ msgstr "" "``\"store\"`` [atributos relacionados: :attr:`~Option.type`, :attr:`~Option." "dest`, :attr:`~Option.nargs`, :attr:`~Option.choices`]" -#: ../Doc/library/optparse.rst:1086 +#: ../Doc/library/optparse.rst:1104 msgid "" "The option must be followed by an argument, which is converted to a value " "according to :attr:`~Option.type` and stored in :attr:`~Option.dest`. If :" @@ -1818,7 +1850,7 @@ msgstr "" "type` y se almacenarán en :attr:`~Option.dest` como una tupla. Consultar la " "sección :ref:`optparse-standard-option-types` para más información." -#: ../Doc/library/optparse.rst:1093 +#: ../Doc/library/optparse.rst:1111 msgid "" "If :attr:`~Option.choices` is supplied (a list or tuple of strings), the " "type defaults to ``\"choice\"``." @@ -1826,13 +1858,13 @@ msgstr "" "Si se proporciona :attr:`~Option.choices` (una lista o tupla de cadenas de " "caracteres), el tipo por defecto es ``\"choice\"``." -#: ../Doc/library/optparse.rst:1096 +#: ../Doc/library/optparse.rst:1114 msgid "If :attr:`~Option.type` is not supplied, it defaults to ``\"string\"``." msgstr "" "Si no se proporciona :attr:`~Option.type`, el tipo por defecto es " "``\"string\"``." -#: ../Doc/library/optparse.rst:1098 +#: ../Doc/library/optparse.rst:1116 msgid "" "If :attr:`~Option.dest` is not supplied, :mod:`optparse` derives a " "destination from the first long option string (e.g., ``--foo-bar`` implies " @@ -1845,21 +1877,21 @@ msgstr "" "largas, :mod:`optparse` obtiene el destino a partir de la primera cadena de " "opción corta (por ejemplo, ``-f`` conlleva que se usará ``f``)." -#: ../Doc/library/optparse.rst:1103 ../Doc/library/optparse.rst:1123 -#: ../Doc/library/optparse.rst:1145 ../Doc/library/optparse.rst:1163 -#: ../Doc/library/optparse.rst:1202 ../Doc/library/optparse.rst:1240 +#: ../Doc/library/optparse.rst:1121 ../Doc/library/optparse.rst:1141 +#: ../Doc/library/optparse.rst:1163 ../Doc/library/optparse.rst:1181 +#: ../Doc/library/optparse.rst:1220 ../Doc/library/optparse.rst:1258 msgid "Example::" msgstr "Ejemplo::" -#: ../Doc/library/optparse.rst:1108 +#: ../Doc/library/optparse.rst:1126 msgid "As it parses the command line ::" msgstr "Mientras analiza la línea de comandos::" -#: ../Doc/library/optparse.rst:1112 +#: ../Doc/library/optparse.rst:1130 msgid ":mod:`optparse` will set ::" msgstr ":mod:`optparse` establecerá::" -#: ../Doc/library/optparse.rst:1118 +#: ../Doc/library/optparse.rst:1136 msgid "" "``\"store_const\"`` [required: :attr:`~Option.const`; relevant: :attr:" "`~Option.dest`]" @@ -1867,19 +1899,19 @@ msgstr "" "``\"store_const\"`` [atributo requerido: :attr:`~Option.const`; atributo " "relacionado: :attr:`~Option.dest`]" -#: ../Doc/library/optparse.rst:1121 +#: ../Doc/library/optparse.rst:1139 msgid "The value :attr:`~Option.const` is stored in :attr:`~Option.dest`." msgstr "El valor :attr:`~Option.const` es almacenado en :attr:`~Option.dest`." -#: ../Doc/library/optparse.rst:1132 +#: ../Doc/library/optparse.rst:1150 msgid "If ``--noisy`` is seen, :mod:`optparse` will set ::" msgstr "Si se encuentra ``--noisy``, :mod:`optparse` establecerá::" -#: ../Doc/library/optparse.rst:1136 +#: ../Doc/library/optparse.rst:1154 msgid "``\"store_true\"`` [relevant: :attr:`~Option.dest`]" msgstr "``\"store_true\"`` [atributo relacionado: :attr:`~Option.dest`]" -#: ../Doc/library/optparse.rst:1138 +#: ../Doc/library/optparse.rst:1156 msgid "" "A special case of ``\"store_const\"`` that stores ``True`` to :attr:`~Option." "dest`." @@ -1887,15 +1919,15 @@ msgstr "" "Un caso especial de ``\"store_const\"`` que almacena ``True`` en :attr:" "`~Option.dest`." -#: ../Doc/library/optparse.rst:1141 +#: ../Doc/library/optparse.rst:1159 msgid "``\"store_false\"`` [relevant: :attr:`~Option.dest`]" msgstr "``\"store_false\"`` [atributo relacionado: :attr:`~Option.dest`]" -#: ../Doc/library/optparse.rst:1143 +#: ../Doc/library/optparse.rst:1161 msgid "Like ``\"store_true\"``, but stores ``False``." msgstr "Como ``\"store_true\"``, pero almacena ``False``." -#: ../Doc/library/optparse.rst:1150 +#: ../Doc/library/optparse.rst:1168 msgid "" "``\"append\"`` [relevant: :attr:`~Option.type`, :attr:`~Option.dest`, :attr:" "`~Option.nargs`, :attr:`~Option.choices`]" @@ -1903,7 +1935,7 @@ msgstr "" "``\"append\"`` [atributos relacionados: :attr:`~Option.type`, :attr:`~Option." "dest`, :attr:`~Option.nargs`, :attr:`~Option.choices`]" -#: ../Doc/library/optparse.rst:1153 +#: ../Doc/library/optparse.rst:1171 msgid "" "The option must be followed by an argument, which is appended to the list " "in :attr:`~Option.dest`. If no default value for :attr:`~Option.dest` is " @@ -1919,7 +1951,7 @@ msgstr "" "Si :attr:`~Option.nargs` es mayor que 1, se consumen varios argumentos y se " "agrega una tupla de longitud :attr:`~Option.nargs` a :attr:`~Option.dest`." -#: ../Doc/library/optparse.rst:1160 +#: ../Doc/library/optparse.rst:1178 msgid "" "The defaults for :attr:`~Option.type` and :attr:`~Option.dest` are the same " "as for the ``\"store\"`` action." @@ -1927,7 +1959,7 @@ msgstr "" "Los valores por defecto para los atributos :attr:`~Option.type` y :attr:" "`~Option.dest` son los mismos que para la acción ``\"store\"``." -#: ../Doc/library/optparse.rst:1167 +#: ../Doc/library/optparse.rst:1185 msgid "" "If ``-t3`` is seen on the command-line, :mod:`optparse` does the equivalent " "of::" @@ -1935,11 +1967,11 @@ msgstr "" "Si se encuentra ``-t3`` en la línea de comandos, :mod:`optparse` procede de " "forma equivalente a::" -#: ../Doc/library/optparse.rst:1173 +#: ../Doc/library/optparse.rst:1191 msgid "If, a little later on, ``--tracks=4`` is seen, it does::" msgstr "Si, un poco más adelante, se encuentra ``--tracks=4``, procede así::" -#: ../Doc/library/optparse.rst:1177 +#: ../Doc/library/optparse.rst:1195 msgid "" "The ``append`` action calls the ``append`` method on the current value of " "the option. This means that any default value specified must have an " @@ -1954,7 +1986,7 @@ msgstr "" "para la opción, con todos los valores de la línea de comandos agregados a la " "lista a continuación de ellos::" -#: ../Doc/library/optparse.rst:1188 +#: ../Doc/library/optparse.rst:1206 msgid "" "``\"append_const\"`` [required: :attr:`~Option.const`; relevant: :attr:" "`~Option.dest`]" @@ -1962,7 +1994,7 @@ msgstr "" "``\"append_const\"`` [atributo requerido: :attr:`~Option.const`; atributo " "relacionado: :attr:`~Option.dest`]" -#: ../Doc/library/optparse.rst:1191 +#: ../Doc/library/optparse.rst:1209 msgid "" "Like ``\"store_const\"``, but the value :attr:`~Option.const` is appended " "to :attr:`~Option.dest`; as with ``\"append\"``, :attr:`~Option.dest` " @@ -1974,11 +2006,11 @@ msgstr "" "por defecto es ``None`` y se crea automáticamente una lista vacía la primera " "vez que se encuentra la opción en la linea de comandos." -#: ../Doc/library/optparse.rst:1196 +#: ../Doc/library/optparse.rst:1214 msgid "``\"count\"`` [relevant: :attr:`~Option.dest`]" msgstr "``\"count\"`` [atributo relacionado: :attr:`~Option.dest`]" -#: ../Doc/library/optparse.rst:1198 +#: ../Doc/library/optparse.rst:1216 msgid "" "Increment the integer stored at :attr:`~Option.dest`. If no default value " "is supplied, :attr:`~Option.dest` is set to zero before being incremented " @@ -1988,7 +2020,7 @@ msgstr "" "proporciona un valor por defecto, :attr:`~Option.dest` se establece en cero " "antes de incrementarse por primera vez." -#: ../Doc/library/optparse.rst:1206 +#: ../Doc/library/optparse.rst:1224 msgid "" "The first time ``-v`` is seen on the command line, :mod:`optparse` does the " "equivalent of::" @@ -1996,11 +2028,11 @@ msgstr "" "La primera vez que se encuentra ``-v`` en la línea de comandos, :mod:" "`optparse` procede de forma equivalente a::" -#: ../Doc/library/optparse.rst:1212 +#: ../Doc/library/optparse.rst:1230 msgid "Every subsequent occurrence of ``-v`` results in ::" msgstr "Cada aparición posterior de ``-v`` da como resultado::" -#: ../Doc/library/optparse.rst:1216 +#: ../Doc/library/optparse.rst:1234 msgid "" "``\"callback\"`` [required: :attr:`~Option.callback`; relevant: :attr:" "`~Option.type`, :attr:`~Option.nargs`, :attr:`~Option.callback_args`, :attr:" @@ -2010,7 +2042,7 @@ msgstr "" "relacionados: :attr:`~Option.type`, :attr:`~Option.nargs`, :attr:`~Option." "callback_args`, :attr:`~Option.callback_kwargs`]" -#: ../Doc/library/optparse.rst:1220 +#: ../Doc/library/optparse.rst:1238 msgid "" "Call the function specified by :attr:`~Option.callback`, which is called " "as ::" @@ -2018,11 +2050,11 @@ msgstr "" "Llama a la función especificada por :attr:`~Option.callback`, que es llamada " "como::" -#: ../Doc/library/optparse.rst:1224 +#: ../Doc/library/optparse.rst:1242 msgid "See section :ref:`optparse-option-callbacks` for more detail." msgstr "Ver sección :ref:`optparse-option-callbacks` para más detalles." -#: ../Doc/library/optparse.rst:1228 +#: ../Doc/library/optparse.rst:1246 msgid "" "Prints a complete help message for all the options in the current option " "parser. The help message is constructed from the ``usage`` string passed to " @@ -2034,17 +2066,18 @@ msgstr "" "la cadena ``usage``, pasada al constructor de OptionParser, y la cadena :" "attr:`~Option.help`, pasada a cada opción." -#: ../Doc/library/optparse.rst:1233 +#: ../Doc/library/optparse.rst:1251 +#, fuzzy msgid "" "If no :attr:`~Option.help` string is supplied for an option, it will still " "be listed in the help message. To omit an option entirely, use the special " -"value :data:`optparse.SUPPRESS_HELP`." +"value :const:`optparse.SUPPRESS_HELP`." msgstr "" "Si no se proporciona una cadena :attr:`~Option.help` para una opción, dicha " "opción seguirá apareciendo en el mensaje de ayuda. Para omitir una opción " "por completo, debe usarse el valor especial :data:`optparse.SUPPRESS_HELP`." -#: ../Doc/library/optparse.rst:1237 +#: ../Doc/library/optparse.rst:1255 msgid "" ":mod:`optparse` automatically adds a :attr:`~Option.help` option to all " "OptionParsers, so you do not normally need to create one." @@ -2053,7 +2086,7 @@ msgstr "" "help` a todos los OptionParsers, por lo que normalmente no es necesario " "crear una." -#: ../Doc/library/optparse.rst:1255 +#: ../Doc/library/optparse.rst:1273 msgid "" "If :mod:`optparse` sees either ``-h`` or ``--help`` on the command line, it " "will print something like the following help message to stdout (assuming " @@ -2063,7 +2096,7 @@ msgstr "" "imprimirá un mensaje de ayuda en la salida estándar como el siguiente " "(asumiendo que ``sys.argv [0]`` es ``\"foo.py\"``):" -#: ../Doc/library/optparse.rst:1268 +#: ../Doc/library/optparse.rst:1286 msgid "" "After printing the help message, :mod:`optparse` terminates your process " "with ``sys.exit(0)``." @@ -2071,11 +2104,11 @@ msgstr "" "Después de imprimir el mensaje de ayuda, :mod:`optparse` termina su proceso " "con ``sys.exit(0)``." -#: ../Doc/library/optparse.rst:1271 +#: ../Doc/library/optparse.rst:1289 msgid "``\"version\"``" msgstr "``\"version\"``" -#: ../Doc/library/optparse.rst:1273 +#: ../Doc/library/optparse.rst:1291 msgid "" "Prints the version number supplied to the OptionParser to stdout and exits. " "The version number is actually formatted and printed by the " @@ -2092,11 +2125,11 @@ msgstr "" "`~Option.help`, rara vez será necesario crear opciones de ``version``, ya " "que :mod:`optparse` las agrega automáticamente cuando es necesario." -#: ../Doc/library/optparse.rst:1284 +#: ../Doc/library/optparse.rst:1302 msgid "Standard option types" msgstr "Tipos de opción estándares" -#: ../Doc/library/optparse.rst:1286 +#: ../Doc/library/optparse.rst:1304 msgid "" ":mod:`optparse` has five built-in option types: ``\"string\"``, ``\"int\"``, " "``\"choice\"``, ``\"float\"`` and ``\"complex\"``. If you need to add new " @@ -2107,7 +2140,7 @@ msgstr "" "``\"complex\"``. Consultar la sección :ref:`optparse-extending-optparse` si " "se necesitan agregar nuevos tipos de opción." -#: ../Doc/library/optparse.rst:1290 +#: ../Doc/library/optparse.rst:1308 msgid "" "Arguments to string options are not checked or converted in any way: the " "text on the command line is stored in the destination (or passed to the " @@ -2117,29 +2150,29 @@ msgstr "" "convierten de ninguna manera: el texto de la línea de comandos se almacena " "en el destino (o se pasa a la retrollamada) tal cual." -#: ../Doc/library/optparse.rst:1293 +#: ../Doc/library/optparse.rst:1311 msgid "Integer arguments (type ``\"int\"``) are parsed as follows:" msgstr "" "Los argumentos enteros (tipo ``\"int\"``) se analizan de la siguiente manera:" -#: ../Doc/library/optparse.rst:1295 +#: ../Doc/library/optparse.rst:1313 msgid "if the number starts with ``0x``, it is parsed as a hexadecimal number" msgstr "" "si el número comienza con ``0x``, se analiza como un número hexadecimal" -#: ../Doc/library/optparse.rst:1297 +#: ../Doc/library/optparse.rst:1315 msgid "if the number starts with ``0``, it is parsed as an octal number" msgstr "si el número comienza con ``0``, se analiza como un número octal" -#: ../Doc/library/optparse.rst:1299 +#: ../Doc/library/optparse.rst:1317 msgid "if the number starts with ``0b``, it is parsed as a binary number" msgstr "si el número comienza con ``0b``, se analiza como un número binario" -#: ../Doc/library/optparse.rst:1301 +#: ../Doc/library/optparse.rst:1319 msgid "otherwise, the number is parsed as a decimal number" msgstr "en cualquier otro caso, el número se analiza como un número decimal" -#: ../Doc/library/optparse.rst:1304 +#: ../Doc/library/optparse.rst:1322 msgid "" "The conversion is done by calling :func:`int` with the appropriate base (2, " "8, 10, or 16). If this fails, so will :mod:`optparse`, although with a more " @@ -2149,7 +2182,7 @@ msgstr "" "10 o 16). Si esto falla, también lo hará :mod:`optparse`, aunque mostrando " "un mensaje de error más útil para el usuario." -#: ../Doc/library/optparse.rst:1308 +#: ../Doc/library/optparse.rst:1326 msgid "" "``\"float\"`` and ``\"complex\"`` option arguments are converted directly " "with :func:`float` and :func:`complex`, with similar error-handling." @@ -2158,7 +2191,7 @@ msgstr "" "convierten directamente usando :func:`float` y :func:`complex` " "respectivamente, con un manejo de errores similar." -#: ../Doc/library/optparse.rst:1311 +#: ../Doc/library/optparse.rst:1329 msgid "" "``\"choice\"`` options are a subtype of ``\"string\"`` options. The :attr:" "`~Option.choices` option attribute (a sequence of strings) defines the set " @@ -2173,74 +2206,84 @@ msgstr "" "las opciones proporcionadas por el usuario con esta lista maestra y lanzará " "una excepción :exc:`OptionValueError` si se proporciona una cadena no válida." -#: ../Doc/library/optparse.rst:1321 +#: ../Doc/library/optparse.rst:1339 msgid "Parsing arguments" msgstr "Analizando los argumentos" -#: ../Doc/library/optparse.rst:1323 +#: ../Doc/library/optparse.rst:1341 +#, fuzzy msgid "" "The whole point of creating and populating an OptionParser is to call its :" -"meth:`parse_args` method::" +"meth:`~OptionParser.parse_args` method." msgstr "" "El objetivo primario de crear y agregar opciones a un OptionParser es llamar " "a su método :meth:`parse_args`::" -#: ../Doc/library/optparse.rst:1328 -msgid "where the input parameters are" +#: ../Doc/library/optparse.rst:1346 +msgid "Parse the command-line options found in *args*." +msgstr "" + +#: ../Doc/library/optparse.rst:1348 +#, fuzzy +msgid "The input parameters are" msgstr "donde los parámetros de entrada son" -#: ../Doc/library/optparse.rst:1331 ../Doc/library/optparse.rst:1345 -#: ../Doc/library/optparse.rst:1664 +#: ../Doc/library/optparse.rst:1351 ../Doc/library/optparse.rst:1364 +#: ../Doc/library/optparse.rst:1684 msgid "``args``" msgstr "``args``" -#: ../Doc/library/optparse.rst:1331 +#: ../Doc/library/optparse.rst:1351 msgid "the list of arguments to process (default: ``sys.argv[1:]``)" msgstr "la lista de argumentos a procesar (por defecto: ``sys.argv [1:]``)" -#: ../Doc/library/optparse.rst:1336 +#: ../Doc/library/optparse.rst:1356 msgid "``values``" msgstr "``values``" -#: ../Doc/library/optparse.rst:1334 +#: ../Doc/library/optparse.rst:1354 +#, fuzzy msgid "" -"an :class:`optparse.Values` object to store option arguments in (default: a " -"new instance of :class:`Values`) -- if you give an existing object, the " -"option defaults will not be initialized on it" +"an :class:`Values` object to store option arguments in (default: a new " +"instance of :class:`Values`) -- if you give an existing object, the option " +"defaults will not be initialized on it" msgstr "" "un objeto de la clase :class:`optparse.Values` para almacenar en él los " "argumentos de las opciones. Por defecto es una nueva instancia de la clase :" "class:`Values`. Si se proporciona un objeto previamente creado, los valores " "predeterminados de la opción no se inicializarán en el mismo" -#: ../Doc/library/optparse.rst:1338 -msgid "and the return values are" +#: ../Doc/library/optparse.rst:1358 +#, fuzzy +msgid "and the return value is a pair ``(options, args)`` where" msgstr "y los valores de retorno son" -#: ../Doc/library/optparse.rst:1342 +#: ../Doc/library/optparse.rst:1362 msgid "``options``" msgstr "``options``" -#: ../Doc/library/optparse.rst:1341 +#: ../Doc/library/optparse.rst:1361 +#, fuzzy msgid "" -"the same object that was passed in as ``values``, or the optparse.Values " +"the same object that was passed in as *values*, or the ``optparse.Values`` " "instance created by :mod:`optparse`" msgstr "" "el mismo objeto que se pasó como ``values``, o la instancia *optparse." "Values* creada por :mod:`optparse`" -#: ../Doc/library/optparse.rst:1345 +#: ../Doc/library/optparse.rst:1365 msgid "the leftover positional arguments after all options have been processed" msgstr "" "los argumentos posicionales que quedan en la linea de comandos después de " "que se hayan procesado todas las opciones" -#: ../Doc/library/optparse.rst:1347 +#: ../Doc/library/optparse.rst:1367 +#, fuzzy msgid "" "The most common usage is to supply neither keyword argument. If you supply " "``values``, it will be modified with repeated :func:`setattr` calls (roughly " "one for every option argument stored to an option destination) and returned " -"by :meth:`parse_args`." +"by :meth:`~OptionParser.parse_args`." msgstr "" "El uso más habitual es no proporcionar ningún argumento por palabra clave. " "Si se proporciona ``values``, dicho argumento será modificado mediante " @@ -2248,12 +2291,13 @@ msgstr "" "de opción a almacenar en un destino de opción) y finalmente será retornado " "por el método :meth:`parse_args`." -#: ../Doc/library/optparse.rst:1352 +#: ../Doc/library/optparse.rst:1372 +#, fuzzy msgid "" -"If :meth:`parse_args` encounters any errors in the argument list, it calls " -"the OptionParser's :meth:`error` method with an appropriate end-user error " -"message. This ultimately terminates your process with an exit status of 2 " -"(the traditional Unix exit status for command-line errors)." +"If :meth:`~OptionParser.parse_args` encounters any errors in the argument " +"list, it calls the OptionParser's :meth:`error` method with an appropriate " +"end-user error message. This ultimately terminates your process with an exit " +"status of 2 (the traditional Unix exit status for command-line errors)." msgstr "" "Si el método :meth:`parse_args` encuentra algún error en la lista de " "argumentos, llama al método :meth:`error` de OptionParser con un mensaje de " @@ -2261,11 +2305,11 @@ msgstr "" "un estado de salida de 2 (el estado de salida tradicional en Unix para " "errores en la línea de comandos)." -#: ../Doc/library/optparse.rst:1361 +#: ../Doc/library/optparse.rst:1381 msgid "Querying and manipulating your option parser" msgstr "Consultar y manipular el analizador de opciones" -#: ../Doc/library/optparse.rst:1363 +#: ../Doc/library/optparse.rst:1383 msgid "" "The default behavior of the option parser can be customized slightly, and " "you can also poke around your option parser and see what's there. " @@ -2276,7 +2320,7 @@ msgstr "" "opciones y ver qué hay en él. OptionParser proporciona varios métodos para " "ayudar con éstos propósitos:" -#: ../Doc/library/optparse.rst:1369 +#: ../Doc/library/optparse.rst:1389 msgid "" "Set parsing to stop on the first non-option. For example, if ``-a`` and ``-" "b`` are both simple options that take no arguments, :mod:`optparse` normally " @@ -2286,11 +2330,11 @@ msgstr "" "sea una opción. Por ejemplo, si ``-a`` y ``-b`` son opciones simples que no " "toman argumentos, :mod:`optparse` normalmente acepta esta sintaxis::" -#: ../Doc/library/optparse.rst:1375 +#: ../Doc/library/optparse.rst:1395 msgid "and treats it as equivalent to ::" msgstr "y la trata de forma equivalente a::" -#: ../Doc/library/optparse.rst:1379 +#: ../Doc/library/optparse.rst:1399 msgid "" "To disable this feature, call :meth:`disable_interspersed_args`. This " "restores traditional Unix syntax, where option parsing stops with the first " @@ -2301,7 +2345,7 @@ msgstr "" "Unix, donde el análisis de opción se detiene con el primer argumento que no " "es una opción." -#: ../Doc/library/optparse.rst:1383 +#: ../Doc/library/optparse.rst:1403 msgid "" "Use this if you have a command processor which runs another command which " "has options of its own and you want to make sure these options don't get " @@ -2312,7 +2356,7 @@ msgstr "" "estas opciones no se confunden entre si. Lo que puede ocurrir si, por " "ejemplo, cada comando tiene un conjunto diferente de opciones." -#: ../Doc/library/optparse.rst:1389 +#: ../Doc/library/optparse.rst:1409 msgid "" "Set parsing to not stop on the first non-option, allowing interspersing " "switches with command arguments. This is the default behavior." @@ -2321,7 +2365,7 @@ msgstr "" "no sea una opción, lo que permite intercalar modificadores con argumentos de " "linea de comandos. Este es el comportamiento por defecto." -#: ../Doc/library/optparse.rst:1394 +#: ../Doc/library/optparse.rst:1414 msgid "" "Returns the Option instance with the option string *opt_str*, or ``None`` if " "no options have that option string." @@ -2329,7 +2373,7 @@ msgstr "" "Retorna la instancia de Option con la cadena de opción *opt_str*, o ``None`` " "si ninguna opción tiene esa cadena de opción." -#: ../Doc/library/optparse.rst:1399 +#: ../Doc/library/optparse.rst:1419 msgid "" "Return ``True`` if the OptionParser has an option with option string " "*opt_str* (e.g., ``-q`` or ``--verbose``)." @@ -2337,7 +2381,7 @@ msgstr "" "Retorna ``True`` si OptionParser tiene una opción con la cadena de opción " "*opt_str* (por ejemplo, ``-q`` o ``--verbose``)." -#: ../Doc/library/optparse.rst:1404 +#: ../Doc/library/optparse.rst:1424 msgid "" "If the :class:`OptionParser` has an option corresponding to *opt_str*, that " "option is removed. If that option provided any other option strings, all of " @@ -2350,11 +2394,11 @@ msgstr "" "aparece en ninguna opción que pertenezca a este :class:`OptionParser`, se " "lanza una excepción :exc:`ValueError`." -#: ../Doc/library/optparse.rst:1413 +#: ../Doc/library/optparse.rst:1433 msgid "Conflicts between options" msgstr "Conflictos entre opciones" -#: ../Doc/library/optparse.rst:1415 +#: ../Doc/library/optparse.rst:1435 msgid "" "If you're not careful, it's easy to define options with conflicting option " "strings::" @@ -2362,7 +2406,7 @@ msgstr "" "Si no se tiene cuidado, es fácil definir opciones con cadenas de opción en " "conflicto entre si::" -#: ../Doc/library/optparse.rst:1422 +#: ../Doc/library/optparse.rst:1442 msgid "" "(This is particularly true if you've defined your own OptionParser subclass " "with some standard options.)" @@ -2370,7 +2414,7 @@ msgstr "" "(Esto es particularmente cierto si se ha definido una subclase propia de " "OptionParser con algunas opciones estándar.)" -#: ../Doc/library/optparse.rst:1425 +#: ../Doc/library/optparse.rst:1445 msgid "" "Every time you add an option, :mod:`optparse` checks for conflicts with " "existing options. If it finds any, it invokes the current conflict-handling " @@ -2382,19 +2426,19 @@ msgstr "" "mecanismo de manejo de conflictos actualmente establecido. Se puede " "establecer el mecanismo de manejo de conflictos desde el propio constructor::" -#: ../Doc/library/optparse.rst:1431 +#: ../Doc/library/optparse.rst:1451 msgid "or with a separate call::" msgstr "o mediante una llamada separada::" -#: ../Doc/library/optparse.rst:1435 +#: ../Doc/library/optparse.rst:1455 msgid "The available conflict handlers are:" msgstr "Los administradores de conflictos disponibles son:" -#: ../Doc/library/optparse.rst:1439 +#: ../Doc/library/optparse.rst:1459 msgid "``\"error\"`` (default)" msgstr "``\"error\"`` (por defecto)" -#: ../Doc/library/optparse.rst:1438 +#: ../Doc/library/optparse.rst:1458 msgid "" "assume option conflicts are a programming error and raise :exc:" "`OptionConflictError`" @@ -2402,15 +2446,15 @@ msgstr "" "se asume que los conflictos entre opciones son un error de programación y, " "por tanto, generarán una excepción :exc:`OptionConflictError`" -#: ../Doc/library/optparse.rst:1443 +#: ../Doc/library/optparse.rst:1463 msgid "``\"resolve\"``" msgstr "``\"resolve\"``" -#: ../Doc/library/optparse.rst:1442 +#: ../Doc/library/optparse.rst:1462 msgid "resolve option conflicts intelligently (see below)" msgstr "resuelve conflictos de opciones de forma inteligente (ver más abajo)" -#: ../Doc/library/optparse.rst:1445 +#: ../Doc/library/optparse.rst:1465 msgid "" "As an example, let's define an :class:`OptionParser` that resolves conflicts " "intelligently and add conflicting options to it::" @@ -2419,7 +2463,7 @@ msgstr "" "conflictos de manera inteligente y agregaremos algunas opciones " "conflictivas::" -#: ../Doc/library/optparse.rst:1452 +#: ../Doc/library/optparse.rst:1472 #, fuzzy msgid "" "At this point, :mod:`optparse` detects that a previously added option is " @@ -2436,7 +2480,7 @@ msgstr "" "que el usuario tiene para poder activar esa opción. Si el usuario solicita " "ayuda, el mensaje de ayuda reflejará la nueva situación::" -#: ../Doc/library/optparse.rst:1463 +#: ../Doc/library/optparse.rst:1483 #, fuzzy msgid "" "It's possible to whittle away the option strings for a previously added " @@ -2452,7 +2496,7 @@ msgstr "" "texto de ayuda ni en ningún otro lugar. Continuando con nuestro analizador " "de opciones previo::" -#: ../Doc/library/optparse.rst:1471 +#: ../Doc/library/optparse.rst:1491 msgid "" "At this point, the original ``-n``/``--dry-run`` option is no longer " "accessible, so :mod:`optparse` removes it, leaving this help text::" @@ -2460,11 +2504,11 @@ msgstr "" "En este punto, la opción original ``-n``/``--dry-run`` ya no es accesible, " "por lo que :mod:`optparse` la elimina, dejando el siguiente texto de ayuda::" -#: ../Doc/library/optparse.rst:1483 +#: ../Doc/library/optparse.rst:1503 msgid "Cleanup" msgstr "Limpieza" -#: ../Doc/library/optparse.rst:1485 +#: ../Doc/library/optparse.rst:1505 msgid "" "OptionParser instances have several cyclic references. This should not be a " "problem for Python's garbage collector, but you may wish to break the cyclic " @@ -2481,19 +2525,20 @@ msgstr "" "ejecución en las que OptionParser puede terminar accediendo a grafos de " "objetos considerablemente grandes." -#: ../Doc/library/optparse.rst:1496 +#: ../Doc/library/optparse.rst:1516 msgid "Other methods" msgstr "Otros métodos" -#: ../Doc/library/optparse.rst:1498 +#: ../Doc/library/optparse.rst:1518 msgid "OptionParser supports several other public methods:" msgstr "OptionParser admite varios métodos públicos más:" -#: ../Doc/library/optparse.rst:1502 +#: ../Doc/library/optparse.rst:1522 +#, fuzzy msgid "" "Set the usage string according to the rules described above for the " "``usage`` constructor keyword argument. Passing ``None`` sets the default " -"usage string; use :data:`optparse.SUPPRESS_USAGE` to suppress a usage " +"usage string; use :const:`optparse.SUPPRESS_USAGE` to suppress a usage " "message." msgstr "" "Establece la cadena de caracteres de uso de acuerdo a las reglas descritas " @@ -2502,7 +2547,7 @@ msgstr "" "el mensaje de uso totalmente, se debe pasar el valor especial :data:" "`optparse.SUPPRESS_USAGE`." -#: ../Doc/library/optparse.rst:1508 +#: ../Doc/library/optparse.rst:1528 msgid "" "Print the usage message for the current program (``self.usage``) to *file* " "(default stdout). Any occurrence of the string ``%prog`` in ``self.usage`` " @@ -2515,7 +2560,7 @@ msgstr "" "programa actual. No hace nada si ``self.usage`` está vacío o no ha sido " "definido." -#: ../Doc/library/optparse.rst:1515 +#: ../Doc/library/optparse.rst:1535 msgid "" "Same as :meth:`print_usage` but returns the usage string instead of printing " "it." @@ -2523,7 +2568,7 @@ msgstr "" "Igual que :meth:`print_usage` pero retorna la cadena de uso en vez de " "imprimirla." -#: ../Doc/library/optparse.rst:1520 +#: ../Doc/library/optparse.rst:1540 msgid "" "Set default values for several option destinations at once. Using :meth:" "`set_defaults` is the preferred way to set default values for options, since " @@ -2538,15 +2583,15 @@ msgstr "" "destino, cualquiera de ellas puede establecer el valor por defecto, pero el " "último establecido es el que finalmente queda establecido::" -#: ../Doc/library/optparse.rst:1533 +#: ../Doc/library/optparse.rst:1553 msgid "To avoid this confusion, use :meth:`set_defaults`::" msgstr "Para evitar esta confusión, usa el método :meth:`set_defaults`::" -#: ../Doc/library/optparse.rst:1545 +#: ../Doc/library/optparse.rst:1565 msgid "Option Callbacks" msgstr "Retrollamadas de opción" -#: ../Doc/library/optparse.rst:1547 +#: ../Doc/library/optparse.rst:1567 msgid "" "When :mod:`optparse`'s built-in actions and types aren't quite enough for " "your needs, you have two choices: extend :mod:`optparse` or define a " @@ -2559,15 +2604,15 @@ msgstr "" "`optparse` es más general, pero algo exagerado para muchos casos simples. Es " "frecuente que una simple retrollamada sea todo lo que necesitas." -#: ../Doc/library/optparse.rst:1552 +#: ../Doc/library/optparse.rst:1572 msgid "There are two steps to defining a callback option:" msgstr "Hay dos pasos a seguir para definir una opción con retrollamada:" -#: ../Doc/library/optparse.rst:1554 +#: ../Doc/library/optparse.rst:1574 msgid "define the option itself using the ``\"callback\"`` action" msgstr "definir la opción en sí usando la acción ``\"callback\"``" -#: ../Doc/library/optparse.rst:1556 +#: ../Doc/library/optparse.rst:1576 msgid "" "write the callback; this is a function (or method) that takes at least four " "arguments, as described below" @@ -2575,11 +2620,11 @@ msgstr "" "escribir la retrollamada. Esta es una función (o método) que toma al menos " "cuatro argumentos, los cuales son descritos a continuación" -#: ../Doc/library/optparse.rst:1563 +#: ../Doc/library/optparse.rst:1583 msgid "Defining a callback option" msgstr "Definición de una opción con retrollamada" -#: ../Doc/library/optparse.rst:1565 +#: ../Doc/library/optparse.rst:1585 msgid "" "As always, the easiest way to define a callback option is by using the :meth:" "`OptionParser.add_option` method. Apart from :attr:`~Option.action`, the " @@ -2591,7 +2636,7 @@ msgstr "" "`~Option.action`, el único atributo de opción que debes especificar es " "``callback``, que es la función a llamar::" -#: ../Doc/library/optparse.rst:1571 +#: ../Doc/library/optparse.rst:1591 msgid "" "``callback`` is a function (or other callable object), so you must have " "already defined ``my_callback()`` when you create this callback option. In " @@ -2613,7 +2658,7 @@ msgstr "" "donde escribir retrollamadas se vuelve complicado; se tratará más adelante " "en esta sección." -#: ../Doc/library/optparse.rst:1580 +#: ../Doc/library/optparse.rst:1600 msgid "" ":mod:`optparse` always passes four particular arguments to your callback, " "and it will only pass additional arguments if you specify them via :attr:" @@ -2625,12 +2670,12 @@ msgstr "" "a través de :attr:`~Option.callback_args` y :attr:`~Option.callback_kwargs`. " "Por lo tanto, la firma mínima de la retrollamada es:" -#: ../Doc/library/optparse.rst:1587 +#: ../Doc/library/optparse.rst:1607 msgid "The four arguments to a callback are described below." msgstr "" "Los cuatro argumentos para la retrollamada se describen a continuación." -#: ../Doc/library/optparse.rst:1589 +#: ../Doc/library/optparse.rst:1609 msgid "" "There are several other option attributes that you can supply when you " "define a callback option:" @@ -2638,11 +2683,11 @@ msgstr "" "Hay varios atributos de opción adicionales que se pueden proporcionar cuando " "se define una opción con retrollamada:" -#: ../Doc/library/optparse.rst:1596 +#: ../Doc/library/optparse.rst:1616 msgid ":attr:`~Option.type`" msgstr ":attr:`~Option.type`" -#: ../Doc/library/optparse.rst:1593 +#: ../Doc/library/optparse.rst:1613 msgid "" "has its usual meaning: as with the ``\"store\"`` or ``\"append\"`` actions, " "it instructs :mod:`optparse` to consume one argument and convert it to :attr:" @@ -2655,11 +2700,11 @@ msgstr "" "valor (o valores) convertido en algún lugar, :mod:`optparse` lo pasa a la " "retrollamada." -#: ../Doc/library/optparse.rst:1602 +#: ../Doc/library/optparse.rst:1622 msgid ":attr:`~Option.nargs`" msgstr ":attr:`~Option.nargs`" -#: ../Doc/library/optparse.rst:1599 +#: ../Doc/library/optparse.rst:1619 msgid "" "also has its usual meaning: if it is supplied and > 1, :mod:`optparse` will " "consume :attr:`~Option.nargs` arguments, each of which must be convertible " @@ -2672,47 +2717,47 @@ msgstr "" "type`. Hecho esto, se pasa una tupla con los valores convertidos a la " "retrollamada." -#: ../Doc/library/optparse.rst:1605 +#: ../Doc/library/optparse.rst:1625 msgid ":attr:`~Option.callback_args`" msgstr ":attr:`~Option.callback_args`" -#: ../Doc/library/optparse.rst:1605 +#: ../Doc/library/optparse.rst:1625 msgid "a tuple of extra positional arguments to pass to the callback" msgstr "" "una tupla con los argumentos posicionales adicionales para pasar a la " "retrollamada" -#: ../Doc/library/optparse.rst:1609 +#: ../Doc/library/optparse.rst:1629 msgid ":attr:`~Option.callback_kwargs`" msgstr ":attr:`~Option.callback_kwargs`" -#: ../Doc/library/optparse.rst:1608 +#: ../Doc/library/optparse.rst:1628 msgid "a dictionary of extra keyword arguments to pass to the callback" msgstr "" "un diccionario con los argumentos por palabra clave para pasar a la " "retrollamada" -#: ../Doc/library/optparse.rst:1614 +#: ../Doc/library/optparse.rst:1634 msgid "How callbacks are called" msgstr "Cómo son invocadas las retrollamadas" -#: ../Doc/library/optparse.rst:1616 +#: ../Doc/library/optparse.rst:1636 msgid "All callbacks are called as follows::" msgstr "Todas las retrollamadas son invocadas de la siguiente forma::" -#: ../Doc/library/optparse.rst:1623 +#: ../Doc/library/optparse.rst:1643 msgid "``option``" msgstr "``option``" -#: ../Doc/library/optparse.rst:1623 +#: ../Doc/library/optparse.rst:1643 msgid "is the Option instance that's calling the callback" msgstr "es la instancia de Option que invoca a la retrollamada" -#: ../Doc/library/optparse.rst:1630 +#: ../Doc/library/optparse.rst:1650 msgid "``opt_str``" msgstr "``opt_str``" -#: ../Doc/library/optparse.rst:1626 +#: ../Doc/library/optparse.rst:1646 msgid "" "is the option string seen on the command-line that's triggering the " "callback. (If an abbreviated long option was used, ``opt_str`` will be the " @@ -2726,11 +2771,11 @@ msgstr "" "``--foo`` en la línea de comandos como una abreviatura de ``--foobar``, " "entonces ``opt_str`` será ``\"--foobar\"``.)" -#: ../Doc/library/optparse.rst:1637 +#: ../Doc/library/optparse.rst:1657 msgid "``value``" msgstr "``value``" -#: ../Doc/library/optparse.rst:1633 +#: ../Doc/library/optparse.rst:1653 msgid "" "is the argument to this option seen on the command-line. :mod:`optparse` " "will only expect an argument if :attr:`~Option.type` is set; the type of " @@ -2747,11 +2792,11 @@ msgstr "" "`~Option.nargs` es mayor que 1, ``value`` será una tupla con los valores del " "tipo apropiado." -#: ../Doc/library/optparse.rst:1660 +#: ../Doc/library/optparse.rst:1680 msgid "``parser``" msgstr "``parser``" -#: ../Doc/library/optparse.rst:1640 +#: ../Doc/library/optparse.rst:1660 msgid "" "is the OptionParser instance driving the whole thing, mainly useful because " "you can access some other interesting data through its instance attributes:" @@ -2760,16 +2805,18 @@ msgstr "" "radica en que permite acceder a otros datos de interés a través de sus " "atributos de instancia:" -#: ../Doc/library/optparse.rst:1647 +#: ../Doc/library/optparse.rst:1667 msgid "``parser.largs``" msgstr "``parser.largs``" -#: ../Doc/library/optparse.rst:1644 +#: ../Doc/library/optparse.rst:1664 +#, fuzzy msgid "" "the current list of leftover arguments, ie. arguments that have been " "consumed but are neither options nor option arguments. Feel free to modify " "``parser.largs``, e.g. by adding more arguments to it. (This list will " -"become ``args``, the second return value of :meth:`parse_args`.)" +"become ``args``, the second return value of :meth:`~OptionParser." +"parse_args`.)" msgstr "" "la lista actual de argumentos que sobran, es decir, argumentos que se han " "consumido pero que no son opciones ni argumentos de opción. Siéntete libre " @@ -2777,11 +2824,11 @@ msgstr "" "lista se convertirá en ``args``, el segundo valor de retorno del método :" "meth:`parse_args`.)" -#: ../Doc/library/optparse.rst:1653 +#: ../Doc/library/optparse.rst:1673 msgid "``parser.rargs``" msgstr "``parser.rargs``" -#: ../Doc/library/optparse.rst:1650 +#: ../Doc/library/optparse.rst:1670 msgid "" "the current list of remaining arguments, ie. with ``opt_str`` and ``value`` " "(if applicable) removed, and only the arguments following them still there. " @@ -2792,11 +2839,11 @@ msgstr "" "eliminados ambos. Siéntete libre de modificar ``parser.rargs``, por ejemplo, " "consumiendo más argumentos." -#: ../Doc/library/optparse.rst:1660 +#: ../Doc/library/optparse.rst:1680 msgid "``parser.values``" msgstr "``parser.values``" -#: ../Doc/library/optparse.rst:1656 +#: ../Doc/library/optparse.rst:1676 msgid "" "the object where option values are by default stored (an instance of " "optparse.OptionValues). This lets callbacks use the same mechanism as the " @@ -2811,7 +2858,7 @@ msgstr "" "clausuras. También se puede acceder a los valores de las opciones o " "modificarlos si ya se encuentran en la línea de comandos." -#: ../Doc/library/optparse.rst:1663 +#: ../Doc/library/optparse.rst:1683 msgid "" "is a tuple of arbitrary positional arguments supplied via the :attr:`~Option." "callback_args` option attribute." @@ -2819,11 +2866,11 @@ msgstr "" "es una tupla de argumentos posicionales arbitrarios suministrados a través " "del atributo de opción :attr:`~Option.callback_args`." -#: ../Doc/library/optparse.rst:1669 +#: ../Doc/library/optparse.rst:1689 msgid "``kwargs``" msgstr "``kwargs``" -#: ../Doc/library/optparse.rst:1667 +#: ../Doc/library/optparse.rst:1687 msgid "" "is a dictionary of arbitrary keyword arguments supplied via :attr:`~Option." "callback_kwargs`." @@ -2831,11 +2878,11 @@ msgstr "" "es un diccionario con argumentos por palabra clave arbitrarios " "proporcionados por :attr:`~Option.callback_kwargs`." -#: ../Doc/library/optparse.rst:1674 +#: ../Doc/library/optparse.rst:1694 msgid "Raising errors in a callback" msgstr "Lanzando errores en una retrollamada" -#: ../Doc/library/optparse.rst:1676 +#: ../Doc/library/optparse.rst:1696 msgid "" "The callback function should raise :exc:`OptionValueError` if there are any " "problems with the option or its argument(s). :mod:`optparse` catches this " @@ -2852,11 +2899,11 @@ msgstr "" "excepción. De lo contrario, el usuario tendrá dificultades para descubrir " "qué hizo mal." -#: ../Doc/library/optparse.rst:1686 +#: ../Doc/library/optparse.rst:1706 msgid "Callback example 1: trivial callback" msgstr "Ejemplo de retrollamada 1: una retrollamada trivial" -#: ../Doc/library/optparse.rst:1688 +#: ../Doc/library/optparse.rst:1708 msgid "" "Here's an example of a callback option that takes no arguments, and simply " "records that the option was seen::" @@ -2864,17 +2911,17 @@ msgstr "" "Aquí hay un ejemplo de una opción con retrollamada que no tiene argumentos y " "simplemente registra que se encontró la opción en la línea de comandos:" -#: ../Doc/library/optparse.rst:1696 +#: ../Doc/library/optparse.rst:1716 msgid "Of course, you could do that with the ``\"store_true\"`` action." msgstr "" "Ciertamente, se puede hacer lo mismo simplemente con la acción " "``\"store_true\"``." -#: ../Doc/library/optparse.rst:1702 +#: ../Doc/library/optparse.rst:1722 msgid "Callback example 2: check option order" msgstr "Ejemplo de retrollamada 2: comprobar el orden de las opciones" -#: ../Doc/library/optparse.rst:1704 +#: ../Doc/library/optparse.rst:1724 msgid "" "Here's a slightly more interesting example: record the fact that ``-a`` is " "seen, but blow up if it comes after ``-b`` in the command-line. ::" @@ -2883,12 +2930,12 @@ msgstr "" "ha encontrado ``-a``, pero lanza un error si viene después de ``-b`` en la " "línea de comandos ::" -#: ../Doc/library/optparse.rst:1719 +#: ../Doc/library/optparse.rst:1739 msgid "Callback example 3: check option order (generalized)" msgstr "" "Ejemplo de retrollamada 3: comprobar el orden de las opciones (generalizado)" -#: ../Doc/library/optparse.rst:1721 +#: ../Doc/library/optparse.rst:1741 msgid "" "If you want to re-use this callback for several similar options (set a flag, " "but blow up if ``-b`` has already been seen), it needs a bit of work: the " @@ -2899,11 +2946,11 @@ msgstr "" "necesitas un poco más de trabajo: tanto el mensaje de error como el flag que " "estableces deben generalizarse::" -#: ../Doc/library/optparse.rst:1738 +#: ../Doc/library/optparse.rst:1758 msgid "Callback example 4: check arbitrary condition" msgstr "Ejemplo de retrollamada 4: comprobar una condición arbitraria" -#: ../Doc/library/optparse.rst:1740 +#: ../Doc/library/optparse.rst:1760 msgid "" "Of course, you could put any condition in there---you're not limited to " "checking the values of already-defined options. For example, if you have " @@ -2915,17 +2962,17 @@ msgstr "" "tienes opciones que no deberían llamarse cuando hay luna llena, todo lo que " "tienes que hacer es lo siguiente::" -#: ../Doc/library/optparse.rst:1753 +#: ../Doc/library/optparse.rst:1773 msgid "" "(The definition of ``is_moon_full()`` is left as an exercise for the reader.)" msgstr "" "(La definición de ``is_moon_full()`` se deja como ejercicio para el lector)." -#: ../Doc/library/optparse.rst:1759 +#: ../Doc/library/optparse.rst:1779 msgid "Callback example 5: fixed arguments" msgstr "Ejemplo de retrollamada 5: argumentos fijos" -#: ../Doc/library/optparse.rst:1761 +#: ../Doc/library/optparse.rst:1781 msgid "" "Things get slightly more interesting when you define callback options that " "take a fixed number of arguments. Specifying that a callback option takes " @@ -2942,13 +2989,13 @@ msgstr "" "se define :attr:`~Option.nargs`, entonces la opción toma :attr:`~Option." "nargs` argumentos." -#: ../Doc/library/optparse.rst:1768 +#: ../Doc/library/optparse.rst:1788 msgid "" "Here's an example that just emulates the standard ``\"store\"`` action::" msgstr "" "Aquí hay un ejemplo que simplemente emula la acción ``\"store\"`` estándar::" -#: ../Doc/library/optparse.rst:1777 +#: ../Doc/library/optparse.rst:1797 msgid "" "Note that :mod:`optparse` takes care of consuming 3 arguments and converting " "them to integers for you; all you have to do is store them. (Or whatever; " @@ -2959,11 +3006,11 @@ msgstr "" "almacenarlos. (En cualquier caso, obviamente no necesitas hacer uso de una " "retrollamada para este ejemplo)." -#: ../Doc/library/optparse.rst:1785 +#: ../Doc/library/optparse.rst:1805 msgid "Callback example 6: variable arguments" msgstr "Ejemplo de retrollamada 6: argumentos variables" -#: ../Doc/library/optparse.rst:1787 +#: ../Doc/library/optparse.rst:1807 msgid "" "Things get hairy when you want an option to take a variable number of " "arguments. For this case, you must write a callback, as :mod:`optparse` " @@ -2981,11 +3028,11 @@ msgstr "" "deben implementar las reglas convencionales para los argumentos ``--`` y ``-" "`` desnudos:" -#: ../Doc/library/optparse.rst:1794 +#: ../Doc/library/optparse.rst:1814 msgid "either ``--`` or ``-`` can be option arguments" msgstr "tanto ``--`` como ``-`` pueden ser argumentos de opción" -#: ../Doc/library/optparse.rst:1796 +#: ../Doc/library/optparse.rst:1816 msgid "" "bare ``--`` (if not the argument to some option): halt command-line " "processing and discard the ``--``" @@ -2993,7 +3040,7 @@ msgstr "" "``--`` desnudo (si no es el argumento de alguna opción): detener el " "procesamiento de la línea de comandos y descartar el ``--``" -#: ../Doc/library/optparse.rst:1799 +#: ../Doc/library/optparse.rst:1819 msgid "" "bare ``-`` (if not the argument to some option): halt command-line " "processing but keep the ``-`` (append it to ``parser.largs``)" @@ -3002,7 +3049,7 @@ msgstr "" "procesamiento de la línea de comandos pero mantener el ``-`` (añadiéndolo a " "``parser.largs``)" -#: ../Doc/library/optparse.rst:1802 +#: ../Doc/library/optparse.rst:1822 msgid "" "If you want an option that takes a variable number of arguments, there are " "several subtle, tricky issues to worry about. The exact implementation you " @@ -3016,7 +3063,7 @@ msgstr "" "dispuesto a hacer en tu aplicación (razón por la cual, el módulo :mod:" "`optparse` no admite directamente este tipo de cosas)." -#: ../Doc/library/optparse.rst:1808 +#: ../Doc/library/optparse.rst:1828 msgid "" "Nevertheless, here's a stab at a callback for an option with variable " "arguments::" @@ -3024,11 +3071,11 @@ msgstr "" "En cualquier caso, aquí hay un intento de una retrollamada para una opción " "con un número de argumentos variable::" -#: ../Doc/library/optparse.rst:1842 +#: ../Doc/library/optparse.rst:1862 msgid "Extending :mod:`optparse`" msgstr "Extendiendo el módulo :mod:`optparse`" -#: ../Doc/library/optparse.rst:1844 +#: ../Doc/library/optparse.rst:1864 msgid "" "Since the two major controlling factors in how :mod:`optparse` interprets " "command-line options are the action and type of each option, the most likely " @@ -3039,11 +3086,11 @@ msgstr "" "el tipo de cada opción, los objetivos más probables de extensión son agregar " "nuevas acciones y nuevos tipos." -#: ../Doc/library/optparse.rst:1852 +#: ../Doc/library/optparse.rst:1872 msgid "Adding new types" msgstr "Agregando nuevos tipos" -#: ../Doc/library/optparse.rst:1854 +#: ../Doc/library/optparse.rst:1874 msgid "" "To add new types, you need to define your own subclass of :mod:`optparse`'s :" "class:`Option` class. This class has a couple of attributes that define :" @@ -3055,7 +3102,7 @@ msgstr "" "definen los tipos de :mod:`optparse`: :attr:`~Option.TYPES` y :attr:`~Option." "TYPE_CHECKER`." -#: ../Doc/library/optparse.rst:1860 +#: ../Doc/library/optparse.rst:1880 msgid "" "A tuple of type names; in your subclass, simply define a new tuple :attr:" "`TYPES` that builds on the standard one." @@ -3063,7 +3110,7 @@ msgstr "" "Una tupla con nombres de tipos. En tu subclase, simplemente define una nueva " "tupla :attr:`TYPES` que se base en la estándar." -#: ../Doc/library/optparse.rst:1865 +#: ../Doc/library/optparse.rst:1885 msgid "" "A dictionary mapping type names to type-checking functions. A type-checking " "function has the following signature::" @@ -3071,7 +3118,7 @@ msgstr "" "Un diccionario que asigna nombres de tipos a funciones de verificación de " "tipo. Una función de verificación de tipo tiene la siguiente firma:" -#: ../Doc/library/optparse.rst:1870 +#: ../Doc/library/optparse.rst:1890 msgid "" "where ``option`` is an :class:`Option` instance, ``opt`` is an option string " "(e.g., ``-f``), and ``value`` is the string from the command line that must " @@ -3090,7 +3137,7 @@ msgstr "" "método :meth:`OptionParser.parse_args` o será pasada a una retrollamada como " "parámetro ``value``." -#: ../Doc/library/optparse.rst:1878 +#: ../Doc/library/optparse.rst:1898 msgid "" "Your type-checking function should raise :exc:`OptionValueError` if it " "encounters any problems. :exc:`OptionValueError` takes a single string " @@ -3105,7 +3152,7 @@ msgstr "" "antepone a la misma el nombre del programa y la cadena ``\"error:\"`` e " "imprime todo en la salida de error estándar antes de finalizar el proceso." -#: ../Doc/library/optparse.rst:1884 +#: ../Doc/library/optparse.rst:1904 msgid "" "Here's a silly example that demonstrates adding a ``\"complex\"`` option " "type to parse Python-style complex numbers on the command line. (This is " @@ -3118,11 +3165,11 @@ msgstr "" "en al versión 1.3 de :mod:`optparse` se agregó soporte incorporado para " "números complejos, pero no importa)." -#: ../Doc/library/optparse.rst:1889 +#: ../Doc/library/optparse.rst:1909 msgid "First, the necessary imports::" msgstr "Primero, las importaciones necesarias::" -#: ../Doc/library/optparse.rst:1894 +#: ../Doc/library/optparse.rst:1914 msgid "" "You need to define your type-checker first, since it's referred to later (in " "the :attr:`~Option.TYPE_CHECKER` class attribute of your Option subclass)::" @@ -3131,11 +3178,11 @@ msgstr "" "referencia a él más adelante (en el atributo de clase :attr:`~Option." "TYPE_CHECKER` de tu subclase de Option)::" -#: ../Doc/library/optparse.rst:1904 +#: ../Doc/library/optparse.rst:1924 msgid "Finally, the Option subclass::" msgstr "Finalmente, la subclase de Option::" -#: ../Doc/library/optparse.rst:1911 +#: ../Doc/library/optparse.rst:1931 msgid "" "(If we didn't make a :func:`copy` of :attr:`Option.TYPE_CHECKER`, we would " "end up modifying the :attr:`~Option.TYPE_CHECKER` attribute of :mod:" @@ -3147,7 +3194,7 @@ msgstr "" "TYPE_CHECKER` de la clase Option de :mod:`optparse`. Tratándose de Python, " "nada te impide hacer eso, excepto los buenos modales y el sentido común.)" -#: ../Doc/library/optparse.rst:1916 +#: ../Doc/library/optparse.rst:1936 msgid "" "That's it! Now you can write a script that uses the new option type just " "like any other :mod:`optparse`\\ -based script, except you have to instruct " @@ -3157,7 +3204,7 @@ msgstr "" "opción como cualquier otro script basado en :mod:`optparse`, excepto que " "debes indicarle a tu OptionParser que use MyOption en lugar de Option::" -#: ../Doc/library/optparse.rst:1923 +#: ../Doc/library/optparse.rst:1943 msgid "" "Alternately, you can build your own option list and pass it to OptionParser; " "if you don't use :meth:`add_option` in the above way, you don't need to tell " @@ -3167,11 +3214,11 @@ msgstr "" "OptionParser; si no usas :meth:`add_option` de la manera anterior, no " "necesitas decirle a OptionParser qué clase de opción usar::" -#: ../Doc/library/optparse.rst:1934 +#: ../Doc/library/optparse.rst:1954 msgid "Adding new actions" msgstr "Agregando nuevas acciones" -#: ../Doc/library/optparse.rst:1936 +#: ../Doc/library/optparse.rst:1956 msgid "" "Adding new actions is a bit trickier, because you have to understand that :" "mod:`optparse` has a couple of classifications for actions:" @@ -3180,11 +3227,11 @@ msgstr "" "comprender que :mod:`optparse` establece un par de categorías para las " "acciones:" -#: ../Doc/library/optparse.rst:1942 +#: ../Doc/library/optparse.rst:1962 msgid "\"store\" actions" msgstr "Acciones \"store\"" -#: ../Doc/library/optparse.rst:1940 +#: ../Doc/library/optparse.rst:1960 msgid "" "actions that result in :mod:`optparse` storing a value to an attribute of " "the current OptionValues instance; these options require a :attr:`~Option." @@ -3195,11 +3242,11 @@ msgstr "" "atributo :attr:`~Option.dest` para que pueda ser proporcionado al " "constructor de Option." -#: ../Doc/library/optparse.rst:1948 +#: ../Doc/library/optparse.rst:1968 msgid "\"typed\" actions" msgstr "Acciones \"typed\"" -#: ../Doc/library/optparse.rst:1945 +#: ../Doc/library/optparse.rst:1965 msgid "" "actions that take a value from the command line and expect it to be of a " "certain type; or rather, a string that can be converted to a certain type. " @@ -3211,7 +3258,7 @@ msgstr "" "a un determinado tipo. Estas opciones requieren un atributo :attr:`~Option." "type` para el constructor de Option." -#: ../Doc/library/optparse.rst:1950 +#: ../Doc/library/optparse.rst:1970 msgid "" "These are overlapping sets: some default \"store\" actions are " "``\"store\"``, ``\"store_const\"``, ``\"append\"``, and ``\"count\"``, while " @@ -3223,7 +3270,7 @@ msgstr "" "``\"count\"``, mientras que las acciones \"typed\" predeterminadas son " "``\"store\"``, ``\"append\"`` y ``\"callback\"``." -#: ../Doc/library/optparse.rst:1954 +#: ../Doc/library/optparse.rst:1974 msgid "" "When you add an action, you need to categorize it by listing it in at least " "one of the following class attributes of Option (all are lists of strings):" @@ -3232,19 +3279,19 @@ msgstr "" "de los siguientes atributos de clase de la clase Option (todos ellos son " "listas de cadenas de caracteres):" -#: ../Doc/library/optparse.rst:1959 +#: ../Doc/library/optparse.rst:1979 msgid "All actions must be listed in ACTIONS." msgstr "Todas las acciones deben aparecer en ACTIONS." -#: ../Doc/library/optparse.rst:1963 +#: ../Doc/library/optparse.rst:1983 msgid "\"store\" actions are additionally listed here." msgstr "Las acciones \"store\" también se enumeran aquí." -#: ../Doc/library/optparse.rst:1967 +#: ../Doc/library/optparse.rst:1987 msgid "\"typed\" actions are additionally listed here." msgstr "Las acciones \"typed\" también se enumeran aquí." -#: ../Doc/library/optparse.rst:1971 +#: ../Doc/library/optparse.rst:1991 msgid "" "Actions that always take a type (i.e. whose options always take a value) are " "additionally listed here. The only effect of this is that :mod:`optparse` " @@ -3257,7 +3304,7 @@ msgstr "" "las opciones cuya acción se enumera en :attr:`ALWAYS_TYPED_ACTIONS` pero que " "no tienen asignado un tipo explícito." -#: ../Doc/library/optparse.rst:1976 +#: ../Doc/library/optparse.rst:1996 msgid "" "In order to actually implement your new action, you must override Option's :" "meth:`take_action` method and add a case that recognizes your action." @@ -3266,7 +3313,7 @@ msgstr "" "`take_action` de Option, implementando un nuevo método que reconozca tu " "acción." -#: ../Doc/library/optparse.rst:1979 +#: ../Doc/library/optparse.rst:1999 msgid "" "For example, let's add an ``\"extend\"`` action. This is similar to the " "standard ``\"append\"`` action, but instead of taking a single value from " @@ -3283,19 +3330,19 @@ msgstr "" "names`` es una opción ``\"extend\"`` de tipo ``\"string\"``, la línea de " "comandos ::" -#: ../Doc/library/optparse.rst:1988 +#: ../Doc/library/optparse.rst:2008 msgid "would result in a list ::" msgstr "daría como resultado una lista como la siguiente::" -#: ../Doc/library/optparse.rst:1992 +#: ../Doc/library/optparse.rst:2012 msgid "Again we define a subclass of Option::" msgstr "De nuevo, definimos una subclase de Option::" -#: ../Doc/library/optparse.rst:2009 +#: ../Doc/library/optparse.rst:2029 msgid "Features of note:" msgstr "Detalles a tener en cuenta:" -#: ../Doc/library/optparse.rst:2011 +#: ../Doc/library/optparse.rst:2031 msgid "" "``\"extend\"`` both expects a value on the command-line and stores that " "value somewhere, so it goes in both :attr:`~Option.STORE_ACTIONS` and :attr:" @@ -3305,7 +3352,7 @@ msgstr "" "ese valor en algún lugar, por lo que lo agregamos tanto a :attr:`~Option." "STORE_ACTIONS` como a :attr:`~Option.TYPED_ACTIONS`." -#: ../Doc/library/optparse.rst:2015 +#: ../Doc/library/optparse.rst:2035 msgid "" "to ensure that :mod:`optparse` assigns the default type of ``\"string\"`` to " "``\"extend\"`` actions, we put the ``\"extend\"`` action in :attr:`~Option." @@ -3315,7 +3362,7 @@ msgstr "" "``\"string\"`` a las acciones ``\"extend\"``, agregamos también la acción " "``\"extend\"`` a :attr:`~Opción.ALWAYS_TYPED_ACTIONS`." -#: ../Doc/library/optparse.rst:2019 +#: ../Doc/library/optparse.rst:2039 msgid "" ":meth:`MyOption.take_action` implements just this one new action, and passes " "control back to :meth:`Option.take_action` for the standard :mod:`optparse` " @@ -3325,7 +3372,7 @@ msgstr "" "nueva acción y posteriormente le pasa el control al método :meth:`Option." "take_action` para las acciones estándar de :mod:`optparse`." -#: ../Doc/library/optparse.rst:2023 +#: ../Doc/library/optparse.rst:2043 msgid "" "``values`` is an instance of the optparse_parser.Values class, which " "provides the very useful :meth:`ensure_value` method. :meth:`ensure_value` " @@ -3336,11 +3383,12 @@ msgstr "" "`ensure_value` es en esencia lo mismo que :func:`getattr` pero con un " "mecanismo de seguridad agregado. Es llamado como::" -#: ../Doc/library/optparse.rst:2029 +#: ../Doc/library/optparse.rst:2049 +#, fuzzy msgid "" "If the ``attr`` attribute of ``values`` doesn't exist or is ``None``, then " -"ensure_value() first sets it to ``value``, and then returns 'value. This is " -"very handy for actions like ``\"extend\"``, ``\"append\"``, and " +"ensure_value() first sets it to ``value``, and then returns ``value``. This " +"is very handy for actions like ``\"extend\"``, ``\"append\"``, and " "``\"count\"``, all of which accumulate data in a variable and expect that " "variable to be of a certain type (a list for the first two, an integer for " "the latter). Using :meth:`ensure_value` means that scripts using your " @@ -3359,3 +3407,34 @@ msgstr "" "opción en cuestión; simplemente pueden dejar el valor predeterminado como " "``None`` y :meth:`secure_value` se encargará de que todo esté correcto " "cuando sea necesario." + +#: ../Doc/library/optparse.rst:2060 +#, fuzzy +msgid "Exceptions" +msgstr "opción" + +#: ../Doc/library/optparse.rst:2064 +msgid "" +"Raised if an :class:`Option` instance is created with invalid or " +"inconsistent arguments." +msgstr "" + +#: ../Doc/library/optparse.rst:2069 +msgid "Raised if conflicting options are added to an :class:`OptionParser`." +msgstr "" + +#: ../Doc/library/optparse.rst:2073 +msgid "Raised if an invalid option value is encountered on the command line." +msgstr "" + +#: ../Doc/library/optparse.rst:2077 +#, fuzzy +msgid "Raised if an invalid option is passed on the command line." +msgstr "Mientras analiza la línea de comandos::" + +#: ../Doc/library/optparse.rst:2081 +msgid "Raised if an ambiguous option is passed on the command line." +msgstr "" + +#~ msgid "store a constant value" +#~ msgstr "almacena un valor constante" diff --git a/library/os.path.po b/library/os.path.po index de0dd7b041..b0a7001929 100644 --- a/library/os.path.po +++ b/library/os.path.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-02 13:49-0300\n" "Last-Translator: Claudia Millan \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/os.path.rst:2 msgid ":mod:`os.path` --- Common pathname manipulations" @@ -128,12 +127,12 @@ msgstr "" #: ../Doc/library/os.path.rst:214 ../Doc/library/os.path.rst:226 #: ../Doc/library/os.path.rst:235 ../Doc/library/os.path.rst:245 #: ../Doc/library/os.path.rst:255 ../Doc/library/os.path.rst:265 -#: ../Doc/library/os.path.rst:275 ../Doc/library/os.path.rst:294 -#: ../Doc/library/os.path.rst:324 ../Doc/library/os.path.rst:344 -#: ../Doc/library/os.path.rst:367 ../Doc/library/os.path.rst:389 -#: ../Doc/library/os.path.rst:407 ../Doc/library/os.path.rst:420 -#: ../Doc/library/os.path.rst:436 ../Doc/library/os.path.rst:452 -#: ../Doc/library/os.path.rst:477 ../Doc/library/os.path.rst:508 +#: ../Doc/library/os.path.rst:284 ../Doc/library/os.path.rst:303 +#: ../Doc/library/os.path.rst:352 ../Doc/library/os.path.rst:372 +#: ../Doc/library/os.path.rst:395 ../Doc/library/os.path.rst:417 +#: ../Doc/library/os.path.rst:435 ../Doc/library/os.path.rst:448 +#: ../Doc/library/os.path.rst:464 ../Doc/library/os.path.rst:480 +#: ../Doc/library/os.path.rst:505 ../Doc/library/os.path.rst:569 msgid "Accepts a :term:`path-like object`." msgstr "Acepta un :term:`path-like object`." @@ -164,9 +163,9 @@ msgstr "" "*paths* está vacío. A diferencia de :func:`commonprefix`, retorna una ruta " "valida." -#: ../Doc/library/os.path.rst:89 ../Doc/library/os.path.rst:388 -#: ../Doc/library/os.path.rst:400 ../Doc/library/os.path.rst:416 -#: ../Doc/library/os.path.rst:432 +#: ../Doc/library/os.path.rst:88 ../Doc/library/os.path.rst:415 +#: ../Doc/library/os.path.rst:427 ../Doc/library/os.path.rst:443 +#: ../Doc/library/os.path.rst:459 msgid ":ref:`Availability `: Unix, Windows." msgstr ":ref:`Availability `: Unix, Windows." @@ -377,6 +376,17 @@ msgstr "" "`isdir` pueden ser verdaderos para la misma ruta." #: ../Doc/library/os.path.rst:271 +#, fuzzy +msgid "" +"Return ``True`` if *path* refers to an :func:`existing ` directory " +"entry that is a junction. Always return ``False`` if junctions are not " +"supported on the current platform." +msgstr "" +"Retorna ``True`` si *path* hace referencia a una entrada de directorio :" +"func:`existing ` que es un enlace simbólico. Siempre ``False`` si el " +"entorno de ejecución de Python no admite vínculos simbólicos.." + +#: ../Doc/library/os.path.rst:280 msgid "" "Return ``True`` if *path* refers to an :func:`existing ` directory " "entry that is a symbolic link. Always ``False`` if symbolic links are not " @@ -386,7 +396,7 @@ msgstr "" "func:`existing ` que es un enlace simbólico. Siempre ``False`` si el " "entorno de ejecución de Python no admite vínculos simbólicos.." -#: ../Doc/library/os.path.rst:281 +#: ../Doc/library/os.path.rst:290 msgid "" "Return ``True`` if pathname *path* is a :dfn:`mount point`: a point in a " "file system where a different file system has been mounted. On POSIX, the " @@ -410,18 +420,42 @@ msgstr "" "cualquier otra ruta de acceso ``GetVolumePathName`` se llama para ver si es " "diferente de la ruta de acceso de entrada." -#: ../Doc/library/os.path.rst:291 +#: ../Doc/library/os.path.rst:300 msgid "Support for detecting non-root mount points on Windows." msgstr "Soporte para detectar puntos de montaje *non-root* en Windows." -#: ../Doc/library/os.path.rst:300 +#: ../Doc/library/os.path.rst:309 +msgid "" +"Return ``True`` if pathname *path* is located on a Windows Dev Drive. A Dev " +"Drive is optimized for developer scenarios, and offers faster performance " +"for reading and writing files. It is recommended for use for source code, " +"temporary build directories, package caches, and other IO-intensive " +"operations." +msgstr "" + +#: ../Doc/library/os.path.rst:315 +msgid "" +"May raise an error for an invalid path, for example, one without a " +"recognizable drive, but returns ``False`` on platforms that do not support " +"Dev Drives. See `the Windows documentation `_ for information on enabling and creating Dev Drives." +msgstr "" + +#: ../Doc/library/os.path.rst:320 +#, fuzzy +msgid ":ref:`Availability `: Windows." +msgstr ":ref:`Availability `: Unix, Windows." + +#: ../Doc/library/os.path.rst:327 +#, fuzzy msgid "" -"Join one or more path components intelligently. The return value is the " -"concatenation of *path* and any members of *\\*paths* with exactly one " -"directory separator following each non-empty part except the last, meaning " -"that the result will only end in a separator if the last part is empty. If " -"a component is an absolute path, all previous components are thrown away and " -"joining continues from the absolute path component." +"Join one or more path segments intelligently. The return value is the " +"concatenation of *path* and all members of *\\*paths*, with exactly one " +"directory separator following each non-empty part, except the last. That is, " +"the result will only end in a separator if the last part is either empty or " +"ends in a separator. If a segment is an absolute path (which on Windows " +"requires both a drive and a root), then all previous segments are ignored " +"and joining continues from the absolute path segment." msgstr "" "Une uno o más componentes de ruta de forma inteligente. El valor retornado " "es la concatenación de *path* y cualquier miembro de *\\*paths* con " @@ -431,14 +465,15 @@ msgstr "" "absoluta, todos los componentes anteriores se desechan y la unión continúa " "desde el componente de ruta absoluta." -#: ../Doc/library/os.path.rst:307 +#: ../Doc/library/os.path.rst:335 +#, fuzzy msgid "" -"On Windows, the drive letter is not reset when an absolute path component (e." -"g., ``r'\\foo'``) is encountered. If a component contains a drive letter, " -"all previous components are thrown away and the drive letter is reset. Note " -"that since there is a current directory for each drive, ``os.path.join(\"c:" -"\", \"foo\")`` represents a path relative to the current directory on drive :" -"file:`C:` (:file:`c:foo`), not :file:`c:\\\\foo`." +"On Windows, the drive is not reset when a rooted path segment (e.g., " +"``r'\\foo'``) is encountered. If a segment is on a different drive or is an " +"absolute path, all previous segments are ignored and the drive is reset. " +"Note that since there is a current directory for each drive, ``os.path." +"join(\"c:\", \"foo\")`` represents a path relative to the current directory " +"on drive :file:`C:` (:file:`c:foo`), not :file:`c:\\\\foo`." msgstr "" "En Windows, la letra de la unidad no se restablece cuando se encuentra un " "componente de ruta absoluta (por ejemplo, ``r'\\foo'``). Si un componente " @@ -448,11 +483,11 @@ msgstr "" "representa una ruta relativa al directorio actual en la unidad :file:`C:` (:" "file:`c:foo`),, no :file:`c:\\\\foo`." -#: ../Doc/library/os.path.rst:314 +#: ../Doc/library/os.path.rst:342 msgid "Accepts a :term:`path-like object` for *path* and *paths*." msgstr "Acepta un objeto :term:`path-like object` para *path* y *paths*." -#: ../Doc/library/os.path.rst:320 +#: ../Doc/library/os.path.rst:348 msgid "" "Normalize the case of a pathname. On Windows, convert all characters in the " "pathname to lowercase, and also convert forward slashes to backward slashes. " @@ -463,7 +498,7 @@ msgstr "" "convierte las barras inclinadas hacia atrás en barras inclinadas hacia " "atrás. En otros sistemas operativos, retorna la ruta sin cambios." -#: ../Doc/library/os.path.rst:330 +#: ../Doc/library/os.path.rst:358 msgid "" "Normalize a pathname by collapsing redundant separators and up-level " "references so that ``A//B``, ``A/B/``, ``A/./B`` and ``A/foo/../B`` all " @@ -478,7 +513,7 @@ msgstr "" "convierte las barras inclinadas hacia adelante en barras hacia atrás. Para " "normalizar mayúsculas y minúsculas, utiliza :func:`normcase`." -#: ../Doc/library/os.path.rst:337 +#: ../Doc/library/os.path.rst:365 msgid "" "On POSIX systems, in accordance with `IEEE Std 1003.1 2013 Edition; 4.13 " "Pathname Resolution `_.) For example::" +msgstr "" + +#: ../Doc/library/os.path.rst:530 +msgid "" +"On Windows, *drive* may be empty, a drive-letter name, a UNC share, or a " +"device name. The *root* may be empty, a forward slash, or a backward slash. " +"For example::" +msgstr "" + +#: ../Doc/library/os.path.rst:544 msgid "" "Split the pathname *path* into a pair ``(root, ext)`` such that ``root + " "ext == path``, and the extension, *ext*, is empty or begins with a period " @@ -671,11 +737,11 @@ msgstr "" "que ``root + ext == path``, y *ext* queda vacío o inicia con un punto y " "contiene a lo mucho un punto." -#: ../Doc/library/os.path.rst:487 +#: ../Doc/library/os.path.rst:548 msgid "If the path contains no extension, *ext* will be ``''``::" msgstr "Si la ruta no contiene ninguna extensión, *ext* será ``’’``::" -#: ../Doc/library/os.path.rst:492 +#: ../Doc/library/os.path.rst:553 msgid "" "If the path contains an extension, then *ext* will be set to this extension, " "including the leading period. Note that previous periods will be ignored::" @@ -684,7 +750,7 @@ msgstr "" "incluido el punto por delante. Tenga en cuenta que los puntos anteriores se " "ignorarán:" -#: ../Doc/library/os.path.rst:500 +#: ../Doc/library/os.path.rst:561 msgid "" "Leading periods of the last component of the path are considered to be part " "of the root::" @@ -692,10 +758,50 @@ msgstr "" "Los puntos que están por delante del último componente de la ruta son " "considerados parte de la raíz::" -#: ../Doc/library/os.path.rst:514 +#: ../Doc/library/os.path.rst:575 msgid "" "``True`` if arbitrary Unicode strings can be used as file names (within " "limitations imposed by the file system)." msgstr "" "``True`` si se pueden utilizar cadenas Unicode arbitrarias como nombres de " "archivo (dentro de las limitaciones impuestas por el sistema de archivos)." + +#: ../Doc/library/os.path.rst:10 +msgid "path" +msgstr "" + +#: ../Doc/library/os.path.rst:10 +msgid "operations" +msgstr "" + +#: ../Doc/library/os.path.rst:155 +msgid "~ (tilde)" +msgstr "" + +#: ../Doc/library/os.path.rst:155 +msgid "home directory expansion" +msgstr "" + +#: ../Doc/library/os.path.rst:162 +msgid "module" +msgstr "" + +#: ../Doc/library/os.path.rst:162 +msgid "pwd" +msgstr "" + +#: ../Doc/library/os.path.rst:183 +msgid "$ (dollar)" +msgstr "" + +#: ../Doc/library/os.path.rst:183 +msgid "environment variables expansion" +msgstr "" + +#: ../Doc/library/os.path.rst:183 +msgid "% (percent)" +msgstr "" + +#: ../Doc/library/os.path.rst:183 +msgid "environment variables expansion (Windows)" +msgstr "" diff --git a/library/os.po b/library/os.po index 5e04633aad..4c57018c7f 100644 --- a/library/os.po +++ b/library/os.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-19 21:45-0500\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/os.rst:2 msgid ":mod:`os` --- Miscellaneous operating system interfaces" @@ -130,8 +130,9 @@ msgstr "" "siguientes nombres están registrados: ``'posix'``, ``'nt'``, ``'java'``." #: ../Doc/library/os.rst:63 +#, fuzzy msgid "" -":attr:`sys.platform` has a finer granularity. :func:`os.uname` gives system-" +":data:`sys.platform` has a finer granularity. :func:`os.uname` gives system-" "dependent version information." msgstr "" ":attr:`sys.platform` tiene un mayor nivel de detalle. :func:`os.uname` " @@ -181,12 +182,13 @@ msgstr "" "de :c:type:`PyConfig`." #: ../Doc/library/os.rst:87 +#, fuzzy msgid "" "On some systems, conversion using the file system encoding may fail. In this " "case, Python uses the :ref:`surrogateescape encoding error handler " "`, which means that undecodable bytes are replaced by a " -"Unicode character U+DCxx on decoding, and these are again translated to the " -"original byte on encoding." +"Unicode character U+DC\\ *xx* on decoding, and these are again translated to " +"the original byte on encoding." msgstr "" "En algunos sistemas, la conversión usando la codificación del sistema de " "archivos puede fallar. En este caso, Python usa el :ref:`controlador de " @@ -397,45 +399,46 @@ msgstr "" "Retorna el nombre del archivo correspondiente al terminal que controla el " "proceso." -#: ../Doc/library/os.rst:181 ../Doc/library/os.rst:353 -#: ../Doc/library/os.rst:362 ../Doc/library/os.rst:385 -#: ../Doc/library/os.rst:394 ../Doc/library/os.rst:429 -#: ../Doc/library/os.rst:437 ../Doc/library/os.rst:476 -#: ../Doc/library/os.rst:487 ../Doc/library/os.rst:497 -#: ../Doc/library/os.rst:507 ../Doc/library/os.rst:530 -#: ../Doc/library/os.rst:563 ../Doc/library/os.rst:570 -#: ../Doc/library/os.rst:577 ../Doc/library/os.rst:587 -#: ../Doc/library/os.rst:598 ../Doc/library/os.rst:607 -#: ../Doc/library/os.rst:625 ../Doc/library/os.rst:633 -#: ../Doc/library/os.rst:641 ../Doc/library/os.rst:650 -#: ../Doc/library/os.rst:658 ../Doc/library/os.rst:665 -#: ../Doc/library/os.rst:672 ../Doc/library/os.rst:681 -#: ../Doc/library/os.rst:1047 ../Doc/library/os.rst:1191 -#: ../Doc/library/os.rst:1217 ../Doc/library/os.rst:1454 -#: ../Doc/library/os.rst:1489 ../Doc/library/os.rst:1498 -#: ../Doc/library/os.rst:1862 ../Doc/library/os.rst:1951 -#: ../Doc/library/os.rst:1991 ../Doc/library/os.rst:2208 -#: ../Doc/library/os.rst:2230 ../Doc/library/os.rst:3755 -#: ../Doc/library/os.rst:3762 ../Doc/library/os.rst:3769 -#: ../Doc/library/os.rst:3776 ../Doc/library/os.rst:3783 -#: ../Doc/library/os.rst:3790 ../Doc/library/os.rst:3797 -#: ../Doc/library/os.rst:3805 ../Doc/library/os.rst:3813 -#: ../Doc/library/os.rst:3820 ../Doc/library/os.rst:3827 -#: ../Doc/library/os.rst:3836 ../Doc/library/os.rst:3844 -#: ../Doc/library/os.rst:3852 ../Doc/library/os.rst:3859 -#: ../Doc/library/os.rst:3866 ../Doc/library/os.rst:3887 -#: ../Doc/library/os.rst:3904 ../Doc/library/os.rst:3944 -#: ../Doc/library/os.rst:3951 ../Doc/library/os.rst:3972 -#: ../Doc/library/os.rst:4099 ../Doc/library/os.rst:4149 -#: ../Doc/library/os.rst:4383 ../Doc/library/os.rst:4404 -#: ../Doc/library/os.rst:4415 ../Doc/library/os.rst:4435 -#: ../Doc/library/os.rst:4450 ../Doc/library/os.rst:4488 -#: ../Doc/library/os.rst:4507 ../Doc/library/os.rst:4521 -#: ../Doc/library/os.rst:4561 ../Doc/library/os.rst:4579 -#: ../Doc/library/os.rst:4593 ../Doc/library/os.rst:4604 -#: ../Doc/library/os.rst:4616 ../Doc/library/os.rst:4623 -#: ../Doc/library/os.rst:4632 ../Doc/library/os.rst:4641 -#: ../Doc/library/os.rst:4650 ../Doc/library/os.rst:4659 +#: ../Doc/library/os.rst:181 ../Doc/library/os.rst:358 +#: ../Doc/library/os.rst:367 ../Doc/library/os.rst:389 +#: ../Doc/library/os.rst:398 ../Doc/library/os.rst:434 +#: ../Doc/library/os.rst:442 ../Doc/library/os.rst:480 +#: ../Doc/library/os.rst:491 ../Doc/library/os.rst:512 +#: ../Doc/library/os.rst:522 ../Doc/library/os.rst:545 +#: ../Doc/library/os.rst:579 ../Doc/library/os.rst:586 +#: ../Doc/library/os.rst:593 ../Doc/library/os.rst:602 +#: ../Doc/library/os.rst:652 ../Doc/library/os.rst:661 +#: ../Doc/library/os.rst:678 ../Doc/library/os.rst:687 +#: ../Doc/library/os.rst:694 ../Doc/library/os.rst:703 +#: ../Doc/library/os.rst:712 ../Doc/library/os.rst:719 +#: ../Doc/library/os.rst:726 ../Doc/library/os.rst:735 +#: ../Doc/library/os.rst:1161 ../Doc/library/os.rst:1345 +#: ../Doc/library/os.rst:1371 ../Doc/library/os.rst:1608 +#: ../Doc/library/os.rst:1628 ../Doc/library/os.rst:1637 +#: ../Doc/library/os.rst:2021 ../Doc/library/os.rst:2110 +#: ../Doc/library/os.rst:2150 ../Doc/library/os.rst:2430 +#: ../Doc/library/os.rst:2452 ../Doc/library/os.rst:4036 +#: ../Doc/library/os.rst:4043 ../Doc/library/os.rst:4050 +#: ../Doc/library/os.rst:4057 ../Doc/library/os.rst:4064 +#: ../Doc/library/os.rst:4071 ../Doc/library/os.rst:4078 +#: ../Doc/library/os.rst:4086 ../Doc/library/os.rst:4094 +#: ../Doc/library/os.rst:4101 ../Doc/library/os.rst:4108 +#: ../Doc/library/os.rst:4117 ../Doc/library/os.rst:4125 +#: ../Doc/library/os.rst:4133 ../Doc/library/os.rst:4140 +#: ../Doc/library/os.rst:4147 ../Doc/library/os.rst:4213 +#: ../Doc/library/os.rst:4253 ../Doc/library/os.rst:4260 +#: ../Doc/library/os.rst:4290 ../Doc/library/os.rst:4417 +#: ../Doc/library/os.rst:4466 ../Doc/library/os.rst:4703 +#: ../Doc/library/os.rst:4737 ../Doc/library/os.rst:4795 +#: ../Doc/library/os.rst:4809 ../Doc/library/os.rst:4826 +#: ../Doc/library/os.rst:4841 ../Doc/library/os.rst:4852 +#: ../Doc/library/os.rst:4864 ../Doc/library/os.rst:4877 +#: ../Doc/library/os.rst:4886 ../Doc/library/os.rst:4896 +#: ../Doc/library/os.rst:4909 ../Doc/library/os.rst:4960 +#: ../Doc/library/os.rst:4971 ../Doc/library/os.rst:4983 +#: ../Doc/library/os.rst:4990 ../Doc/library/os.rst:4999 +#: ../Doc/library/os.rst:5008 ../Doc/library/os.rst:5017 +#: ../Doc/library/os.rst:5026 #, fuzzy msgid ":ref:`Availability `: Unix, not Emscripten, not WASI." msgstr ":ref:`Disponibilidad `: Unix, no Emscripten, no WASI." @@ -486,7 +489,14 @@ msgstr "" "y el controlador de errores ``'surrogateescape'``. Hay que utilizar :data:" "`environb` si se quiere usar una codificación diferente." -#: ../Doc/library/os.rst:206 +#: ../Doc/library/os.rst:204 +msgid "" +"On Windows, the keys are converted to uppercase. This also applies when " +"getting, setting, or deleting an item. For example, ``environ['monty'] = " +"'python'`` maps the key ``'MONTY'`` to the value ``'python'``." +msgstr "" + +#: ../Doc/library/os.rst:211 msgid "" "Calling :func:`putenv` directly does not change :data:`os.environ`, so it's " "better to modify :data:`os.environ`." @@ -494,16 +504,17 @@ msgstr "" "Llamar a :func:`putenv` directamente no cambia :data:`os.environ`, por lo " "que es mejor modificar :data:`os.environ`." -#: ../Doc/library/os.rst:211 +#: ../Doc/library/os.rst:216 +#, fuzzy msgid "" "On some platforms, including FreeBSD and macOS, setting ``environ`` may " -"cause memory leaks. Refer to the system documentation for :c:func:`putenv`." +"cause memory leaks. Refer to the system documentation for :c:func:`!putenv`." msgstr "" "En algunas plataformas, incluidas FreeBSD y macOS, configurar ``environ`` " "puede provocar pérdidas de memoria. Consulte la documentación del sistema " "para :c:func:`putenv`." -#: ../Doc/library/os.rst:215 +#: ../Doc/library/os.rst:220 msgid "" "You can delete items in this mapping to unset environment variables. :func:" "`unsetenv` will be called automatically when an item is deleted from :data:" @@ -515,14 +526,14 @@ msgstr "" "elemento de :data:`os.environ` y cuando se llame a uno de los métodos :meth:" "`pop` o :meth:`clear`." -#: ../Doc/library/os.rst:220 ../Doc/library/os.rst:236 +#: ../Doc/library/os.rst:225 ../Doc/library/os.rst:241 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:226 +#: ../Doc/library/os.rst:231 msgid "" "Bytes version of :data:`environ`: a :term:`mapping` object where both keys " "and values are :class:`bytes` objects representing the process environment. :" @@ -534,19 +545,20 @@ msgstr "" "entorno del proceso. :data:`environ` y :data:`environb` están sincronizados " "(modificando :data:`environb` actualiza :data:`environ`, y viceversa)." -#: ../Doc/library/os.rst:231 +#: ../Doc/library/os.rst:236 +#, fuzzy msgid "" -":data:`environb` is only available if :data:`supports_bytes_environ` is " +":data:`environb` is only available if :const:`supports_bytes_environ` is " "``True``." msgstr "" ":data:`environb` está disponible sólo si :data:`supports_bytes_environ` está " "establecido en ``True``." -#: ../Doc/library/os.rst:245 +#: ../Doc/library/os.rst:250 msgid "These functions are described in :ref:`os-file-dir`." msgstr "Estas funciones están detalladas en :ref:`os-file-dir`." -#: ../Doc/library/os.rst:250 +#: ../Doc/library/os.rst:255 msgid "" "Encode :term:`path-like ` *filename* to the :term:" "`filesystem encoding and error handler`; return :class:`bytes` unchanged." @@ -554,11 +566,11 @@ msgstr "" "Codifique :term:`path-like ` *filename* en :term:" "`filesystem encoding and error handler`; retorna :class:`bytes` sin cambios." -#: ../Doc/library/os.rst:254 +#: ../Doc/library/os.rst:259 msgid ":func:`fsdecode` is the reverse function." msgstr ":func:`fsdecode` es la función inversa." -#: ../Doc/library/os.rst:258 ../Doc/library/os.rst:273 +#: ../Doc/library/os.rst:263 ../Doc/library/os.rst:278 msgid "" "Support added to accept objects implementing the :class:`os.PathLike` " "interface." @@ -566,7 +578,7 @@ msgstr "" "Soporte agregado para aceptar objetos que implementan una interfaz :class:" "`os.PathLike`." -#: ../Doc/library/os.rst:265 +#: ../Doc/library/os.rst:270 msgid "" "Decode the :term:`path-like ` *filename* from the :term:" "`filesystem encoding and error handler`; return :class:`str` unchanged." @@ -574,15 +586,15 @@ msgstr "" "Decodifica el :term:`path-like ` *filename* del :term:" "`filesystem encoding and error handler`; retorna :class:`str` sin cambios." -#: ../Doc/library/os.rst:269 +#: ../Doc/library/os.rst:274 msgid ":func:`fsencode` is the reverse function." msgstr ":func:`fsencode` es la función inversa." -#: ../Doc/library/os.rst:280 +#: ../Doc/library/os.rst:285 msgid "Return the file system representation of the path." msgstr "Retorna la representación en el sistema de archivos de la ruta." -#: ../Doc/library/os.rst:282 +#: ../Doc/library/os.rst:287 msgid "" "If :class:`str` or :class:`bytes` is passed in, it is returned unchanged. " "Otherwise :meth:`~os.PathLike.__fspath__` is called and its value is " @@ -594,7 +606,7 @@ msgstr "" "siempre que sea un objeto :class:`str` o :class:`bytes`. En los demás casos " "se lanza una excepción del tipo :exc:`TypeError`." -#: ../Doc/library/os.rst:292 +#: ../Doc/library/os.rst:297 msgid "" "An :term:`abstract base class` for objects representing a file system path, " "e.g. :class:`pathlib.PurePath`." @@ -602,12 +614,12 @@ msgstr "" "Una :term:`clase base abstracta` para objetos que representan una ruta del " "sistema de archivos, i.e. :class:`pathlib.PurePath`." -#: ../Doc/library/os.rst:299 +#: ../Doc/library/os.rst:304 msgid "Return the file system path representation of the object." msgstr "" "Retorna la representación de la ruta del sistema de archivos del objeto." -#: ../Doc/library/os.rst:301 +#: ../Doc/library/os.rst:306 msgid "" "The method should only return a :class:`str` or :class:`bytes` object, with " "the preference being for :class:`str`." @@ -615,7 +627,7 @@ msgstr "" "Este método sólo retornará objetos :class:`str` or :class:`bytes`, " "preferentemente :class:`str`." -#: ../Doc/library/os.rst:307 +#: ../Doc/library/os.rst:312 msgid "" "Return the value of the environment variable *key* as a string if it exists, " "or *default* if it doesn't. *key* is a string. Note that since :func:" @@ -629,7 +641,7 @@ msgstr "" "también se captura de manera similar en la importación, y es posible que la " "función no refleje futuros cambios en el entorno." -#: ../Doc/library/os.rst:313 +#: ../Doc/library/os.rst:318 msgid "" "On Unix, keys and values are decoded with :func:`sys.getfilesystemencoding` " "and ``'surrogateescape'`` error handler. Use :func:`os.getenvb` if you would " @@ -640,17 +652,18 @@ msgstr "" "``'surrogateescape'``. Usar :func:`os.getenvb` si se quiere usar una " "codificación diferente." -#: ../Doc/library/os.rst:317 ../Doc/library/os.rst:975 -#: ../Doc/library/os.rst:987 ../Doc/library/os.rst:1203 -#: ../Doc/library/os.rst:1637 ../Doc/library/os.rst:2035 -#: ../Doc/library/os.rst:2308 ../Doc/library/os.rst:3133 -#: ../Doc/library/os.rst:3747 ../Doc/library/os.rst:4236 -#: ../Doc/library/os.rst:4247 ../Doc/library/os.rst:4365 +#: ../Doc/library/os.rst:322 ../Doc/library/os.rst:1086 +#: ../Doc/library/os.rst:1097 ../Doc/library/os.rst:1110 +#: ../Doc/library/os.rst:1357 ../Doc/library/os.rst:1649 +#: ../Doc/library/os.rst:1797 ../Doc/library/os.rst:2530 +#: ../Doc/library/os.rst:3375 ../Doc/library/os.rst:3412 +#: ../Doc/library/os.rst:4028 ../Doc/library/os.rst:4554 +#: ../Doc/library/os.rst:4565 ../Doc/library/os.rst:4682 #, fuzzy msgid ":ref:`Availability `: Unix, Windows." msgstr ":ref:`Disponibilidad `: Unix, Windows." -#: ../Doc/library/os.rst:322 +#: ../Doc/library/os.rst:327 msgid "" "Return the value of the environment variable *key* as bytes if it exists, or " "*default* if it doesn't. *key* must be bytes. Note that since :func:" @@ -664,33 +677,36 @@ msgstr "" "también se captura de manera similar en la importación, y es posible que la " "función no refleje futuros cambios en el entorno." -#: ../Doc/library/os.rst:329 +#: ../Doc/library/os.rst:334 +#, fuzzy msgid "" -":func:`getenvb` is only available if :data:`supports_bytes_environ` is " +":func:`getenvb` is only available if :const:`supports_bytes_environ` is " "``True``." msgstr "" ":func:`getenvb` está disponible sólo si :data:`supports_bytes_environ` está " "establecido en ``True``." -#: ../Doc/library/os.rst:333 ../Doc/library/os.rst:734 -#: ../Doc/library/os.rst:920 ../Doc/library/os.rst:942 -#: ../Doc/library/os.rst:963 ../Doc/library/os.rst:1024 -#: ../Doc/library/os.rst:1036 ../Doc/library/os.rst:1242 -#: ../Doc/library/os.rst:1257 ../Doc/library/os.rst:1270 -#: ../Doc/library/os.rst:1339 ../Doc/library/os.rst:1549 -#: ../Doc/library/os.rst:1575 ../Doc/library/os.rst:1611 -#: ../Doc/library/os.rst:1964 ../Doc/library/os.rst:2006 -#: ../Doc/library/os.rst:2019 ../Doc/library/os.rst:2274 -#: ../Doc/library/os.rst:2285 ../Doc/library/os.rst:2962 -#: ../Doc/library/os.rst:3119 ../Doc/library/os.rst:3352 -#: ../Doc/library/os.rst:4805 ../Doc/library/os.rst:4814 -#: ../Doc/library/os.rst:4835 ../Doc/library/os.rst:4845 -#: ../Doc/library/os.rst:4855 +#: ../Doc/library/os.rst:337 ../Doc/library/os.rst:376 +#: ../Doc/library/os.rst:533 ../Doc/library/os.rst:787 +#: ../Doc/library/os.rst:1004 ../Doc/library/os.rst:1019 +#: ../Doc/library/os.rst:1030 ../Doc/library/os.rst:1053 +#: ../Doc/library/os.rst:1074 ../Doc/library/os.rst:1138 +#: ../Doc/library/os.rst:1150 ../Doc/library/os.rst:1396 +#: ../Doc/library/os.rst:1411 ../Doc/library/os.rst:1424 +#: ../Doc/library/os.rst:1493 ../Doc/library/os.rst:1708 +#: ../Doc/library/os.rst:1735 ../Doc/library/os.rst:1770 +#: ../Doc/library/os.rst:2093 ../Doc/library/os.rst:2124 +#: ../Doc/library/os.rst:2165 ../Doc/library/os.rst:2178 +#: ../Doc/library/os.rst:2496 ../Doc/library/os.rst:2508 +#: ../Doc/library/os.rst:3241 ../Doc/library/os.rst:3398 +#: ../Doc/library/os.rst:3631 ../Doc/library/os.rst:5172 +#: ../Doc/library/os.rst:5181 ../Doc/library/os.rst:5202 +#: ../Doc/library/os.rst:5212 ../Doc/library/os.rst:5221 #, fuzzy msgid ":ref:`Availability `: Unix." msgstr ":ref:`Disponibilidad `: Unix." -#: ../Doc/library/os.rst:339 +#: ../Doc/library/os.rst:344 msgid "" "Returns the list of directories that will be searched for a named " "executable, similar to a shell, when launching a process. *env*, when " @@ -702,7 +718,7 @@ msgstr "" "tienen que ser un diccionario de variables de entorno donde buscar el " "*PATH*. Por defecto cuando *env* es ``None``, se usa :data:`environ`." -#: ../Doc/library/os.rst:350 +#: ../Doc/library/os.rst:355 msgid "" "Return the effective group id of the current process. This corresponds to " "the \"set id\" bit on the file being executed in the current process." @@ -711,20 +727,20 @@ msgstr "" "está ejecutando. Esto corresponde al bit de *\"set id\"* en el archivo que " "se está ejecutando en el proceso actual." -#: ../Doc/library/os.rst:360 +#: ../Doc/library/os.rst:365 msgid "Return the current process's effective user id." msgstr "" "Retorna el id el usuario correspondiente al proceso que se está ejecutando " "actualmente." -#: ../Doc/library/os.rst:369 +#: ../Doc/library/os.rst:374 msgid "Return the real group id of the current process." msgstr "" "Retorna el id del grupo real correspondiente al proceso que se está " "ejecutando actualmente." -#: ../Doc/library/os.rst:373 ../Doc/library/os.rst:446 -#: ../Doc/library/os.rst:519 ../Doc/library/os.rst:704 +#: ../Doc/library/os.rst:378 ../Doc/library/os.rst:451 +#: ../Doc/library/os.rst:535 ../Doc/library/os.rst:758 msgid "" "The function is a stub on Emscripten and WASI, see :ref:`wasm-availability` " "for more information." @@ -732,7 +748,7 @@ msgstr "" "La función es un código auxiliar en Emscripten y WASI, consulte :ref:`wasm-" "availability` para obtener más información." -#: ../Doc/library/os.rst:379 +#: ../Doc/library/os.rst:384 msgid "" "Return list of group ids that *user* belongs to. If *group* is not in the " "list, it is included; typically, *group* is specified as the group ID field " @@ -744,26 +760,27 @@ msgstr "" "campo de ID de grupo del registro de contraseña para *user*, porque de lo " "contrario, esa ID de grupo podría omitirse." -#: ../Doc/library/os.rst:391 +#: ../Doc/library/os.rst:396 msgid "" "Return list of supplemental group ids associated with the current process." msgstr "" "Retorna la lista de *ids* de grupos secundarios asociados con el proceso " "actual." -#: ../Doc/library/os.rst:397 +#: ../Doc/library/os.rst:402 +#, fuzzy msgid "" "On macOS, :func:`getgroups` behavior differs somewhat from other Unix " -"platforms. If the Python interpreter was built with a deployment target of :" -"const:`10.5` or earlier, :func:`getgroups` returns the list of effective " -"group ids associated with the current user process; this list is limited to " -"a system-defined number of entries, typically 16, and may be modified by " -"calls to :func:`setgroups` if suitably privileged. If built with a " -"deployment target greater than :const:`10.5`, :func:`getgroups` returns the " -"current group access list for the user associated with the effective user id " -"of the process; the group access list may change over the lifetime of the " -"process, it is not affected by calls to :func:`setgroups`, and its length is " -"not limited to 16. The deployment target value, :const:" +"platforms. If the Python interpreter was built with a deployment target of " +"``10.5`` or earlier, :func:`getgroups` returns the list of effective group " +"ids associated with the current user process; this list is limited to a " +"system-defined number of entries, typically 16, and may be modified by calls " +"to :func:`setgroups` if suitably privileged. If built with a deployment " +"target greater than ``10.5``, :func:`getgroups` returns the current group " +"access list for the user associated with the effective user id of the " +"process; the group access list may change over the lifetime of the process, " +"it is not affected by calls to :func:`setgroups`, and its length is not " +"limited to 16. The deployment target value, :const:" "`MACOSX_DEPLOYMENT_TARGET`, can be obtained with :func:`sysconfig." "get_config_var`." msgstr "" @@ -782,7 +799,7 @@ msgstr "" "de implementación, :const:`MACOSX_DEPLOYMENT_TARGET`, se puede obtener con :" "func:`sysconfig.get_config_var`." -#: ../Doc/library/os.rst:414 +#: ../Doc/library/os.rst:419 msgid "" "Return the name of the user logged in on the controlling terminal of the " "process. For most purposes, it is more useful to use :func:`getpass." @@ -797,16 +814,17 @@ msgstr "" "a ``pwd.getpwuid(os.getuid())[0]`` para obtener el nombre de inicio de " "sesión del ID de usuario real actual." -#: ../Doc/library/os.rst:421 ../Doc/library/os.rst:458 -#: ../Doc/library/os.rst:3713 ../Doc/library/os.rst:3929 -#: ../Doc/library/os.rst:4341 ../Doc/library/os.rst:4552 +#: ../Doc/library/os.rst:426 ../Doc/library/os.rst:462 +#: ../Doc/library/os.rst:3993 ../Doc/library/os.rst:4237 +#: ../Doc/library/os.rst:4535 ../Doc/library/os.rst:4659 +#: ../Doc/library/os.rst:4775 ../Doc/library/os.rst:4944 #, fuzzy msgid "" ":ref:`Availability `: Unix, Windows, not Emscripten, not WASI." msgstr "" ":ref:`Disponibilidad `: Unix, Windows, no Emscripten, no WASI." -#: ../Doc/library/os.rst:426 +#: ../Doc/library/os.rst:431 msgid "" "Return the process group id of the process with process id *pid*. If *pid* " "is 0, the process group id of the current process is returned." @@ -815,15 +833,15 @@ msgstr "" "proceso *pid*. Si *pid* es 0, se retorna la identificación del grupo de " "proceso del proceso actual." -#: ../Doc/library/os.rst:435 +#: ../Doc/library/os.rst:440 msgid "Return the id of the current process group." msgstr "Retorna el *id* del grupo de proceso actual." -#: ../Doc/library/os.rst:444 +#: ../Doc/library/os.rst:449 msgid "Return the current process id." msgstr "Retorna el *id* del proceso actual." -#: ../Doc/library/os.rst:453 +#: ../Doc/library/os.rst:458 msgid "" "Return the parent's process id. When the parent process has exited, on Unix " "the id returned is the one of the init process (1), on Windows it is still " @@ -834,11 +852,11 @@ msgstr "" "Windows sigue siendo la misma identificación, que ya puede ser reutilizada " "por otro proceso." -#: ../Doc/library/os.rst:459 +#: ../Doc/library/os.rst:464 msgid "Added support for Windows." msgstr "Se agregó soporte para Windows." -#: ../Doc/library/os.rst:467 +#: ../Doc/library/os.rst:472 msgid "" "Get program scheduling priority. The value *which* is one of :const:" "`PRIO_PROCESS`, :const:`PRIO_PGRP`, or :const:`PRIO_USER`, and *who* is " @@ -856,13 +874,18 @@ msgstr "" "*who* denota (respectivamente) el proceso llamado, el grupo de proceso del " "proceso llamado o el ID de usuario real del proceso llamado." -#: ../Doc/library/os.rst:484 +#: ../Doc/library/os.rst:489 ../Doc/library/os.rst:501 msgid "" "Parameters for the :func:`getpriority` and :func:`setpriority` functions." msgstr "" "Parámetros para las funciones :func:`getpriority` y :func:`setpriority`." -#: ../Doc/library/os.rst:493 +#: ../Doc/library/os.rst:503 +#, fuzzy +msgid ":ref:`Availability `: macOS" +msgstr ":ref:`Disponibilidad `: Windows." + +#: ../Doc/library/os.rst:509 msgid "" "Return a tuple (ruid, euid, suid) denoting the current process's real, " "effective, and saved user ids." @@ -870,7 +893,7 @@ msgstr "" "Retorna una tupla (ruid, euid, suid) que denota los ID de usuario reales, " "efectivos y guardados del proceso actual." -#: ../Doc/library/os.rst:503 +#: ../Doc/library/os.rst:519 msgid "" "Return a tuple (rgid, egid, sgid) denoting the current process's real, " "effective, and saved group ids." @@ -878,11 +901,11 @@ msgstr "" "Retorna una tupla (rgid, egid, sgid) que denota los ID de grupo reales, " "efectivos y guardados del proceso actual." -#: ../Doc/library/os.rst:515 +#: ../Doc/library/os.rst:531 msgid "Return the current process's real user id." msgstr "Retorna el *id* del usuario real del proceso actual." -#: ../Doc/library/os.rst:525 +#: ../Doc/library/os.rst:541 msgid "" "Call the system initgroups() to initialize the group access list with all of " "the groups of which the specified username is a member, plus the specified " @@ -892,7 +915,7 @@ msgstr "" "con todos los grupos de los que es miembro el nombre de usuario " "especificado, más el ID del grupo especificado." -#: ../Doc/library/os.rst:538 +#: ../Doc/library/os.rst:554 msgid "" "Set the environment variable named *key* to the string *value*. Such " "changes to the environment affect subprocesses started with :func:`os." @@ -902,7 +925,7 @@ msgstr "" "*value*. Dichos cambios en el entorno impactan a los subprocesos iniciados " "con :func:`os.system`, :func:`popen` o :func:`fork` y :func:`execv`." -#: ../Doc/library/os.rst:542 +#: ../Doc/library/os.rst:558 msgid "" "Assignments to items in :data:`os.environ` are automatically translated into " "corresponding calls to :func:`putenv`; however, calls to :func:`putenv` " @@ -919,16 +942,17 @@ msgstr "" "respectivamente :data:`os.environ` y :data:`os.environb` en sus " "implementaciones." -#: ../Doc/library/os.rst:550 +#: ../Doc/library/os.rst:566 +#, fuzzy msgid "" "On some platforms, including FreeBSD and macOS, setting ``environ`` may " -"cause memory leaks. Refer to the system documentation for :c:func:`putenv`." +"cause memory leaks. Refer to the system documentation for :c:func:`!putenv`." msgstr "" "En algunas plataformas, incluidas FreeBSD y macOS, configurar ``environ`` " "puede provocar pérdidas de memoria. Consulte la documentación del sistema " "para :c:func:`putenv`." -#: ../Doc/library/os.rst:553 +#: ../Doc/library/os.rst:569 msgid "" "Raises an :ref:`auditing event ` ``os.putenv`` with arguments " "``key``, ``value``." @@ -936,23 +960,23 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.putenv`` con argumentos " "``key``, ``value``." -#: ../Doc/library/os.rst:555 +#: ../Doc/library/os.rst:571 msgid "The function is now always available." msgstr "Esta función actualmente siempre esta disponible." -#: ../Doc/library/os.rst:561 +#: ../Doc/library/os.rst:577 msgid "Set the current process's effective group id." msgstr "Establece el *id* de grupo efectivo del proceso actual." -#: ../Doc/library/os.rst:568 +#: ../Doc/library/os.rst:584 msgid "Set the current process's effective user id." msgstr "Establece el *id* de usuario efectivo del proceso actual." -#: ../Doc/library/os.rst:575 +#: ../Doc/library/os.rst:591 msgid "Set the current process' group id." msgstr "Establece el *id* de grupo del proceso actual." -#: ../Doc/library/os.rst:582 +#: ../Doc/library/os.rst:598 msgid "" "Set the list of supplemental group ids associated with the current process " "to *groups*. *groups* must be a sequence, and each element must be an " @@ -964,7 +988,7 @@ msgstr "" "un número entero que identifique un grupo. Esta operación generalmente está " "disponible sólo para el superusuario." -#: ../Doc/library/os.rst:588 +#: ../Doc/library/os.rst:604 msgid "" "On macOS, the length of *groups* may not exceed the system-defined maximum " "number of effective group ids, typically 16. See the documentation for :func:" @@ -976,9 +1000,58 @@ msgstr "" "documentación de :func:`getgroups` para ver los casos en los que puede no " "retornar la misma lista de grupos establecida llamando a setgroups()." -#: ../Doc/library/os.rst:595 +#: ../Doc/library/os.rst:611 +msgid "" +"Reassociate the current thread with a Linux namespace. See the :manpage:" +"`setns(2)` and :manpage:`namespaces(7)` man pages for more details." +msgstr "" + +#: ../Doc/library/os.rst:615 +msgid "" +"If *fd* refers to a :file:`/proc/{pid}/ns/` link, ``setns()`` reassociates " +"the calling thread with the namespace associated with that link, and " +"*nstype* may be set to one of the :ref:`CLONE_NEW* constants ` to impose constraints on the operation (``0`` means no " +"constraints)." +msgstr "" + +#: ../Doc/library/os.rst:622 +msgid "" +"Since Linux 5.8, *fd* may refer to a PID file descriptor obtained from :func:" +"`~os.pidfd_open`. In this case, ``setns()`` reassociates the calling thread " +"into one or more of the same namespaces as the thread referred to by *fd*. " +"This is subject to any constraints imposed by *nstype*, which is a bit mask " +"combining one or more of the :ref:`CLONE_NEW* constants `, e.g. ``setns(fd, os.CLONE_NEWUTS | os.CLONE_NEWPID)``. The caller's " +"memberships in unspecified namespaces are left unchanged." +msgstr "" + +#: ../Doc/library/os.rst:631 +msgid "" +"*fd* can be any object with a :meth:`~io.IOBase.fileno` method, or a raw " +"file descriptor." +msgstr "" + +#: ../Doc/library/os.rst:633 +msgid "" +"This example reassociates the thread with the ``init`` process's network " +"namespace::" +msgstr "" + +#: ../Doc/library/os.rst:639 +#, fuzzy +msgid ":ref:`Availability `: Linux >= 3.0 with glibc >= 2.14." +msgstr ":ref:`Disponibilidad `: Linux >= 3.17 con glibc >= 2.27." + +#: ../Doc/library/os.rst:645 +#, fuzzy +msgid "The :func:`~os.unshare` function." +msgstr "La función :func:`.stat`." + +#: ../Doc/library/os.rst:649 +#, fuzzy msgid "" -"Call the system call :c:func:`setpgrp` or ``setpgrp(0, 0)`` depending on " +"Call the system call :c:func:`!setpgrp` or ``setpgrp(0, 0)`` depending on " "which version is implemented (if any). See the Unix manual for the " "semantics." msgstr "" @@ -986,9 +1059,10 @@ msgstr "" "dependiendo de la versión que se implemente (si la hay). Vea el manual de " "Unix para la semántica." -#: ../Doc/library/os.rst:603 +#: ../Doc/library/os.rst:657 +#, fuzzy msgid "" -"Call the system call :c:func:`setpgid` to set the process group id of the " +"Call the system call :c:func:`!setpgid` to set the process group id of the " "process with id *pid* to the process group with id *pgrp*. See the Unix " "manual for the semantics." msgstr "" @@ -996,7 +1070,7 @@ msgstr "" "identificación del grupo de procesos del *id* del proceso como *pid* al " "grupo de procesos con id *pgrp*. Vea el manual de Unix para la semántica." -#: ../Doc/library/os.rst:614 +#: ../Doc/library/os.rst:668 msgid "" "Set program scheduling priority. The value *which* is one of :const:" "`PRIO_PROCESS`, :const:`PRIO_PGRP`, or :const:`PRIO_USER`, and *who* is " @@ -1018,57 +1092,60 @@ msgstr "" "un valor en el rango de -20 a 19. La prioridad predeterminada es 0; las " "prioridades más bajas causan una programación más favorable." -#: ../Doc/library/os.rst:631 +#: ../Doc/library/os.rst:685 msgid "Set the current process's real and effective group ids." msgstr "Establece los *ids* de grupos reales y efectivos del proceso actual." -#: ../Doc/library/os.rst:638 +#: ../Doc/library/os.rst:692 msgid "Set the current process's real, effective, and saved group ids." msgstr "" "Establece los *ids* de grupo reales, efectivos y guardados del proceso " "actual." -#: ../Doc/library/os.rst:647 +#: ../Doc/library/os.rst:701 msgid "Set the current process's real, effective, and saved user ids." msgstr "" "Establece los *ids* de usuario reales, efectivos y guardados del proceso " "actual." -#: ../Doc/library/os.rst:656 +#: ../Doc/library/os.rst:710 msgid "Set the current process's real and effective user ids." msgstr "Establece los *ids* de usuario reales y efectivos del proceso actual." -#: ../Doc/library/os.rst:663 +#: ../Doc/library/os.rst:717 +#, fuzzy msgid "" -"Call the system call :c:func:`getsid`. See the Unix manual for the " +"Call the system call :c:func:`!getsid`. See the Unix manual for the " "semantics." msgstr "" "Invoca a la llamada de sistema :c:func:`getsid`. Vea el manual de Unix para " "la semántica." -#: ../Doc/library/os.rst:670 +#: ../Doc/library/os.rst:724 +#, fuzzy msgid "" -"Call the system call :c:func:`setsid`. See the Unix manual for the " +"Call the system call :c:func:`!setsid`. See the Unix manual for the " "semantics." msgstr "" "Invoca a la llamada de sistema :c:func:`setsid`. Vea el manual de Unix para " "la semántica." -#: ../Doc/library/os.rst:679 +#: ../Doc/library/os.rst:733 msgid "Set the current process's user id." msgstr "Establece *id* del usuario del proceso actual." -#: ../Doc/library/os.rst:687 +#: ../Doc/library/os.rst:741 +#, fuzzy msgid "" "Return the error message corresponding to the error code in *code*. On " -"platforms where :c:func:`strerror` returns ``NULL`` when given an unknown " +"platforms where :c:func:`!strerror` returns ``NULL`` when given an unknown " "error number, :exc:`ValueError` is raised." msgstr "" "Retorna el mensaje de error correspondiente al código de error en *code*. En " "plataformas donde :c:func:`strerror` retorna ``NULL`` cuando se le da un " "número de error desconocido lanza un :exc:`ValueError`." -#: ../Doc/library/os.rst:694 +#: ../Doc/library/os.rst:748 msgid "" "``True`` if the native OS type of the environment is bytes (eg. ``False`` on " "Windows)." @@ -1076,11 +1153,11 @@ msgstr "" "``True`` si el tipo de entorno nativo del sistema operativo es bytes (por " "ejemplo, ``False`` en Windows)." -#: ../Doc/library/os.rst:702 +#: ../Doc/library/os.rst:756 msgid "Set the current numeric umask and return the previous umask." msgstr "Establece la *umask* numérica actual y retorna la *umask* anterior." -#: ../Doc/library/os.rst:714 +#: ../Doc/library/os.rst:768 msgid "" "Returns information identifying the current operating system. The return " "value is an object with five attributes:" @@ -1088,29 +1165,29 @@ msgstr "" "Retorna información que identifica el sistema operativo actual. El valor " "retornado es un objeto con cinco atributos:" -#: ../Doc/library/os.rst:717 +#: ../Doc/library/os.rst:771 msgid ":attr:`sysname` - operating system name" msgstr ":attr:`sysname` - nombre del sistema operativo" -#: ../Doc/library/os.rst:718 +#: ../Doc/library/os.rst:772 msgid ":attr:`nodename` - name of machine on network (implementation-defined)" msgstr "" ":attr:`nodename` - nombre de la máquina en la red (definida por la " "implementación)" -#: ../Doc/library/os.rst:719 +#: ../Doc/library/os.rst:773 msgid ":attr:`release` - operating system release" msgstr ":attr:`release` - *release* del sistema operativo" -#: ../Doc/library/os.rst:720 +#: ../Doc/library/os.rst:774 msgid ":attr:`version` - operating system version" msgstr ":attr:`version` - versión del sistema operativo" -#: ../Doc/library/os.rst:721 +#: ../Doc/library/os.rst:775 msgid ":attr:`machine` - hardware identifier" msgstr ":attr:`machine` - identificador de hardware" -#: ../Doc/library/os.rst:723 +#: ../Doc/library/os.rst:777 msgid "" "For backwards compatibility, this object is also iterable, behaving like a " "five-tuple containing :attr:`sysname`, :attr:`nodename`, :attr:`release`, :" @@ -1120,7 +1197,7 @@ msgstr "" "iterable, se comporta como una tupla que contiene :attr:`sysname`, :attr:" "`nodename`, :attr:`release`, :attr:`version`, y :attr:`machine` en ese orden." -#: ../Doc/library/os.rst:728 +#: ../Doc/library/os.rst:782 msgid "" "Some systems truncate :attr:`nodename` to 8 characters or to the leading " "component; a better way to get the hostname is :func:`socket.gethostname` " @@ -1131,7 +1208,7 @@ msgstr "" "`socket.gethostname` o incluso ``socket.gethostbyaddr(socket." "gethostname())``." -#: ../Doc/library/os.rst:735 ../Doc/library/os.rst:4366 +#: ../Doc/library/os.rst:789 ../Doc/library/os.rst:4684 msgid "" "Return type changed from a tuple to a tuple-like object with named " "attributes." @@ -1139,7 +1216,7 @@ msgstr "" "El tipo de objeto retornado cambió de una tupla a un objeto tipo tupla con " "atributos con nombre." -#: ../Doc/library/os.rst:744 +#: ../Doc/library/os.rst:798 msgid "" "Unset (delete) the environment variable named *key*. Such changes to the " "environment affect subprocesses started with :func:`os.system`, :func:" @@ -1149,7 +1226,7 @@ msgstr "" "en el entorno afectan a los subprocesos iniciados con :func:`os.system`, :" "func:`popen` o :func:`fork` y :func:`execv`." -#: ../Doc/library/os.rst:748 +#: ../Doc/library/os.rst:802 msgid "" "Deletion of items in :data:`os.environ` is automatically translated into a " "corresponding call to :func:`unsetenv`; however, calls to :func:`unsetenv` " @@ -1161,7 +1238,7 @@ msgstr "" "a :func:`unsetenv` no actualizan :data:`os.environ`, por lo que en realidad " "es preferible eliminar elementos de :data:`os.environ`." -#: ../Doc/library/os.rst:753 +#: ../Doc/library/os.rst:807 msgid "" "Raises an :ref:`auditing event ` ``os.unsetenv`` with argument " "``key``." @@ -1169,17 +1246,45 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.unsetenv`` con argumento " "``key``." -#: ../Doc/library/os.rst:755 +#: ../Doc/library/os.rst:809 msgid "The function is now always available and is also available on Windows." msgstr "" "Estas funciones se encuentra ahora siempre disponible y también esta " "disponible en Windows" -#: ../Doc/library/os.rst:762 +#: ../Doc/library/os.rst:815 +msgid "" +"Disassociate parts of the process execution context, and move them into a " +"newly created namespace. See the :manpage:`unshare(2)` man page for more " +"details. The *flags* argument is a bit mask, combining zero or more of the :" +"ref:`CLONE_* constants `, that specifies which parts " +"of the execution context should be unshared from their existing associations " +"and moved to a new namespace. If the *flags* argument is ``0``, no changes " +"are made to the calling process's execution context." +msgstr "" + +#: ../Doc/library/os.rst:826 +#, fuzzy +msgid ":ref:`Availability `: Linux >= 2.6.16." +msgstr ":ref:`Disponibilidad `: Linux >= 4.16." + +#: ../Doc/library/os.rst:832 +#, fuzzy +msgid "The :func:`~os.setns` function." +msgstr "La función :func:`.stat`." + +#: ../Doc/library/os.rst:836 +msgid "" +"Flags to the :func:`unshare` function, if the implementation supports them. " +"See :manpage:`unshare(2)` in the Linux manual for their exact effect and " +"availability." +msgstr "" + +#: ../Doc/library/os.rst:859 msgid "File Object Creation" msgstr "Creación de objetos de tipo archivo" -#: ../Doc/library/os.rst:764 +#: ../Doc/library/os.rst:861 msgid "" "These functions create new :term:`file objects `. (See also :" "func:`~os.open` for opening file descriptors.)" @@ -1187,7 +1292,7 @@ msgstr "" "Estas funciones crean nuevos :term:`objetos de archivo `. " "(Consulte también :func:`~os.open` para abrir los descriptores de archivos)." -#: ../Doc/library/os.rst:770 +#: ../Doc/library/os.rst:867 msgid "" "Return an open file object connected to the file descriptor *fd*. This is " "an alias of the :func:`open` built-in function and accepts the same " @@ -1199,18 +1304,18 @@ msgstr "" "mismos argumentos. La única diferencia es que el primer argumento de :func:" "`fdopen` siempre debe ser un número entero." -#: ../Doc/library/os.rst:779 +#: ../Doc/library/os.rst:876 msgid "File Descriptor Operations" msgstr "Operaciones de descriptores de archivos" -#: ../Doc/library/os.rst:781 +#: ../Doc/library/os.rst:878 msgid "" "These functions operate on I/O streams referenced using file descriptors." msgstr "" "Estas funciones operan en flujos de E/S a los que se hace referencia " "mediante descriptores de archivo." -#: ../Doc/library/os.rst:783 +#: ../Doc/library/os.rst:880 msgid "" "File descriptors are small integers corresponding to a file that has been " "opened by the current process. For example, standard input is usually file " @@ -1227,7 +1332,7 @@ msgstr "" "es ligeramente engañoso; en las plataformas Unix, los descriptores de " "archivo también hacen referencia a *sockets* y tuberías." -#: ../Doc/library/os.rst:790 +#: ../Doc/library/os.rst:887 msgid "" "The :meth:`~io.IOBase.fileno` method can be used to obtain the file " "descriptor associated with a :term:`file object` when required. Note that " @@ -1240,11 +1345,11 @@ msgstr "" "omitirá los métodos de objeto de archivo, ignorando aspectos como el " "almacenamiento interno interno de datos." -#: ../Doc/library/os.rst:798 +#: ../Doc/library/os.rst:895 msgid "Close file descriptor *fd*." msgstr "Cierra el descriptor de archivo *fd*." -#: ../Doc/library/os.rst:802 +#: ../Doc/library/os.rst:899 msgid "" "This function is intended for low-level I/O and must be applied to a file " "descriptor as returned by :func:`os.open` or :func:`pipe`. To close a " @@ -1257,7 +1362,7 @@ msgstr "" "func:`open` o por :func:`popen` o :func:`fdopen`, use el método :meth:`~io." "IOBase.close`." -#: ../Doc/library/os.rst:810 +#: ../Doc/library/os.rst:907 msgid "" "Close all file descriptors from *fd_low* (inclusive) to *fd_high* " "(exclusive), ignoring errors. Equivalent to (but much faster than)::" @@ -1266,14 +1371,13 @@ msgstr "" "*fd_high* (exclusivo), ignorando los errores. Equivalente a (pero mucho más " "rápido que)::" -#: ../Doc/library/os.rst:822 +#: ../Doc/library/os.rst:919 +#, fuzzy msgid "" "Copy *count* bytes from file descriptor *src*, starting from offset " "*offset_src*, to file descriptor *dst*, starting from offset *offset_dst*. " "If *offset_src* is None, then *src* is read from the current position; " -"respectively for *offset_dst*. The files pointed by *src* and *dst* must " -"reside in the same filesystem, otherwise an :exc:`OSError` is raised with :" -"attr:`~OSError.errno` set to :data:`errno.EXDEV`." +"respectively for *offset_dst*." msgstr "" "Copia *count* bytes del descriptor de archivo *src*, comenzando desde offset " "*offset_src*, al descriptor de archivo *dst*, comenzando desde offset " @@ -1283,19 +1387,35 @@ msgstr "" "contrario, se genera una :exc:`OSError` con :attr:`~OSError.errno` " "establecido en :data:`errno.EXDEV`." -#: ../Doc/library/os.rst:829 ../Doc/library/os.rst:1513 +#: ../Doc/library/os.rst:924 +msgid "" +"In Linux kernel older than 5.3, the files pointed by *src* and *dst* must " +"reside in the same filesystem, otherwise an :exc:`OSError` is raised with :" +"attr:`~OSError.errno` set to :const:`errno.EXDEV`." +msgstr "" + +#: ../Doc/library/os.rst:928 +#, fuzzy msgid "" "This copy is done without the additional cost of transferring data from the " "kernel to user space and then back into the kernel. Additionally, some " -"filesystems could implement extra optimizations. The copy is done as if both " -"files are opened as binary." +"filesystems could implement extra optimizations, such as the use of reflinks " +"(i.e., two or more inodes that share pointers to the same copy-on-write disk " +"blocks; supported file systems include btrfs and XFS) and server-side copy " +"(in the case of NFS)." msgstr "" "Esta copia se realiza sin el costo adicional de transferir datos desde el " "kernel al espacio del usuario y luego nuevamente al kernel. También, algunos " "sistemas de archivos podrían implementar optimizaciones adicionales. La " "copia se realiza como si ambos archivos se abrieran como binarios." -#: ../Doc/library/os.rst:834 +#: ../Doc/library/os.rst:935 +msgid "" +"The function copies bytes between two file descriptors. Text options, like " +"the encoding and the line ending, are ignored." +msgstr "" + +#: ../Doc/library/os.rst:938 msgid "" "The return value is the amount of bytes copied. This could be less than the " "amount requested." @@ -1303,12 +1423,20 @@ msgstr "" "El valor de retorno es la cantidad de bytes copiados. Esto podría ser menor " "que la cantidad solicitada." -#: ../Doc/library/os.rst:838 +#: ../Doc/library/os.rst:943 +msgid "" +"On Linux, :func:`os.copy_file_range` should not be used for copying a range " +"of a pseudo file from a special filesystem like procfs and sysfs. It will " +"always copy no bytes and return 0 as if the file was empty because of a " +"known Linux kernel issue." +msgstr "" + +#: ../Doc/library/os.rst:948 #, fuzzy msgid ":ref:`Availability `: Linux >= 4.5 with glibc >= 2.27." msgstr ":ref:`Disponibilidad `: Linux >= 4.5 con glibc >= 2.27." -#: ../Doc/library/os.rst:844 +#: ../Doc/library/os.rst:955 msgid "" "Return a string describing the encoding of the device associated with *fd* " "if it is connected to a terminal; else return :const:`None`." @@ -1316,7 +1444,7 @@ msgstr "" "Retorna una cadena que describe la codificación del dispositivo asociado con " "*fd* si está conectado a una terminal; sino retorna :const:`None`." -#: ../Doc/library/os.rst:847 +#: ../Doc/library/os.rst:958 msgid "" "On Unix, if the :ref:`Python UTF-8 Mode ` is enabled, return " "``'UTF-8'`` rather than the device encoding." @@ -1324,11 +1452,11 @@ msgstr "" "En Unix, si el :ref:`Modo Python UTF-8 ` está habilitado, retorna " "``'UTF-8'`` en lugar de la codificación del dispositivo." -#: ../Doc/library/os.rst:850 +#: ../Doc/library/os.rst:961 msgid "On Unix, the function now implements the Python UTF-8 Mode." msgstr "En Unix, la función ahora implementa el modo Python UTF-8." -#: ../Doc/library/os.rst:856 +#: ../Doc/library/os.rst:967 msgid "" "Return a duplicate of file descriptor *fd*. The new file descriptor is :ref:" "`non-inheritable `." @@ -1336,7 +1464,7 @@ msgstr "" "Retorna un duplicado del descriptor de archivo *fd*. El nuevo descriptor de " "archivo es :ref:`no heredable `." -#: ../Doc/library/os.rst:859 +#: ../Doc/library/os.rst:970 msgid "" "On Windows, when duplicating a standard stream (0: stdin, 1: stdout, 2: " "stderr), the new file descriptor is :ref:`inheritable `." @@ -1344,16 +1472,16 @@ msgstr "" "En Windows, al duplicar un flujo estándar (0: stdin, 1: stdout, 2: stderr), " "el nuevo descriptor de archivo es :ref:`heredable `." -#: ../Doc/library/os.rst:864 ../Doc/library/os.rst:877 +#: ../Doc/library/os.rst:974 ../Doc/library/os.rst:987 #, fuzzy msgid ":ref:`Availability `: not WASI." msgstr ":ref:`Disponibilidad `: no WASI." -#: ../Doc/library/os.rst:865 ../Doc/library/os.rst:1089 +#: ../Doc/library/os.rst:976 ../Doc/library/os.rst:1244 msgid "The new file descriptor is now non-inheritable." msgstr "El nuevo descriptor de archivo ahora es no heredable." -#: ../Doc/library/os.rst:871 +#: ../Doc/library/os.rst:982 msgid "" "Duplicate file descriptor *fd* to *fd2*, closing the latter first if " "necessary. Return *fd2*. The new file descriptor is :ref:`inheritable " @@ -1364,16 +1492,16 @@ msgstr "" "necesario. Retorna *fd2*. El nuevo descriptor de archivo es :ref:`heredable " "` por defecto o no heredable si *inheritable* es ``False``." -#: ../Doc/library/os.rst:878 +#: ../Doc/library/os.rst:989 msgid "Add the optional *inheritable* parameter." msgstr "Agrega el parámetro opcional *inheritable*." -#: ../Doc/library/os.rst:881 +#: ../Doc/library/os.rst:992 msgid "Return *fd2* on success. Previously, ``None`` was always returned." msgstr "" "Retorna *fd2* en caso de éxito. Anteriormente se retornaba siempre ``None``." -#: ../Doc/library/os.rst:887 +#: ../Doc/library/os.rst:998 msgid "" "Change the mode of the file given by *fd* to the numeric *mode*. See the " "docs for :func:`chmod` for possible values of *mode*. As of Python 3.3, " @@ -1383,8 +1511,8 @@ msgstr "" "los documentos para :func:`chmod` para conocer los posibles valores de " "*mode*. A partir de Python 3.3, esto es equivalente a ``os.chmod(fd, mode)``." -#: ../Doc/library/os.rst:891 ../Doc/library/os.rst:1909 -#: ../Doc/library/os.rst:2003 +#: ../Doc/library/os.rst:1002 ../Doc/library/os.rst:2069 +#: ../Doc/library/os.rst:2163 msgid "" "Raises an :ref:`auditing event ` ``os.chmod`` with arguments " "``path``, ``mode``, ``dir_fd``." @@ -1392,10 +1520,10 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.chmod`` con argumentos " "``path``, ``mode``, ``dir_fd``." -#: ../Doc/library/os.rst:895 ../Doc/library/os.rst:910 -#: ../Doc/library/os.rst:1001 ../Doc/library/os.rst:1475 -#: ../Doc/library/os.rst:1906 ../Doc/library/os.rst:1935 -#: ../Doc/library/os.rst:3097 +#: ../Doc/library/os.rst:1006 ../Doc/library/os.rst:1021 +#: ../Doc/library/os.rst:1112 ../Doc/library/os.rst:1651 +#: ../Doc/library/os.rst:2066 ../Doc/library/os.rst:2095 +#: ../Doc/library/os.rst:3377 msgid "" "The function is limited on Emscripten and WASI, see :ref:`wasm-availability` " "for more information." @@ -1403,7 +1531,7 @@ msgstr "" "La función está limitada en Emscripten y WASI, consulte :ref:`wasm-" "availability` para obtener más información." -#: ../Doc/library/os.rst:901 +#: ../Doc/library/os.rst:1012 msgid "" "Change the owner and group id of the file given by *fd* to the numeric *uid* " "and *gid*. To leave one of the ids unchanged, set it to -1. See :func:" @@ -1414,8 +1542,8 @@ msgstr "" "identificadores sin cambios, configúrelo en -1. Ver :func:`chown`. A partir " "de Python 3.3, esto es equivalente a ``os.chown(fd, uid, gid)``." -#: ../Doc/library/os.rst:906 ../Doc/library/os.rst:1931 -#: ../Doc/library/os.rst:2016 +#: ../Doc/library/os.rst:1017 ../Doc/library/os.rst:2091 +#: ../Doc/library/os.rst:2176 msgid "" "Raises an :ref:`auditing event ` ``os.chown`` with arguments " "``path``, ``uid``, ``gid``, ``dir_fd``." @@ -1423,7 +1551,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.chown`` con argumentos " "``path``, ``uid``, ``gid``, ``dir_fd``." -#: ../Doc/library/os.rst:916 +#: ../Doc/library/os.rst:1027 msgid "" "Force write of file with filedescriptor *fd* to disk. Does not force update " "of metadata." @@ -1431,11 +1559,11 @@ msgstr "" "Fuerza la escritura del archivo con el descriptor de archivo *fd* en el " "disco. No fuerza la actualización de metadatos." -#: ../Doc/library/os.rst:922 +#: ../Doc/library/os.rst:1033 msgid "This function is not available on MacOS." msgstr "Esta función no está disponible en MacOS." -#: ../Doc/library/os.rst:927 +#: ../Doc/library/os.rst:1038 msgid "" "Return system configuration information relevant to an open file. *name* " "specifies the configuration value to retrieve; it may be a string which is " @@ -1454,7 +1582,7 @@ msgstr "" "``pathconf_names``. Para las variables de configuración no incluidas en esa " "asignación, también se acepta pasar un número entero para *name*." -#: ../Doc/library/os.rst:935 ../Doc/library/os.rst:2265 +#: ../Doc/library/os.rst:1046 ../Doc/library/os.rst:2488 msgid "" "If *name* is a string and is not known, :exc:`ValueError` is raised. If a " "specific value for *name* is not supported by the host system, even if it is " @@ -1466,12 +1594,12 @@ msgstr "" "incluido en ``pathconf_names``, se genera un :exc:`OSError` con :const:" "`errno.EINVAL` para el número de error." -#: ../Doc/library/os.rst:940 +#: ../Doc/library/os.rst:1051 msgid "As of Python 3.3, this is equivalent to ``os.pathconf(fd, name)``." msgstr "" "A partir de Python 3.3, esto es equivalente a ``os.pathconf(fd, name)``." -#: ../Doc/library/os.rst:947 +#: ../Doc/library/os.rst:1058 msgid "" "Get the status of the file descriptor *fd*. Return a :class:`stat_result` " "object." @@ -1479,15 +1607,15 @@ msgstr "" "Obtiene el estado del descriptor de archivo *fd*. Retorna un objeto :class:" "`stat_result`." -#: ../Doc/library/os.rst:950 +#: ../Doc/library/os.rst:1061 msgid "As of Python 3.3, this is equivalent to ``os.stat(fd)``." msgstr "A partir de Python 3.3, esto es equivalente a ``os.stat(fd)``." -#: ../Doc/library/os.rst:954 ../Doc/library/os.rst:2100 +#: ../Doc/library/os.rst:1065 ../Doc/library/os.rst:2323 msgid "The :func:`.stat` function." msgstr "La función :func:`.stat`." -#: ../Doc/library/os.rst:959 +#: ../Doc/library/os.rst:1070 msgid "" "Return information about the filesystem containing the file associated with " "file descriptor *fd*, like :func:`statvfs`. As of Python 3.3, this is " @@ -1497,17 +1625,18 @@ msgstr "" "asociado con el descriptor de archivo *fd*, como :func:`statvfs`. A partir " "de Python 3.3, esto es equivalente a ``os.statvfs(fd)``." -#: ../Doc/library/os.rst:968 +#: ../Doc/library/os.rst:1079 +#, fuzzy msgid "" "Force write of file with filedescriptor *fd* to disk. On Unix, this calls " -"the native :c:func:`fsync` function; on Windows, the MS :c:func:`_commit` " +"the native :c:func:`!fsync` function; on Windows, the MS :c:func:`!_commit` " "function." msgstr "" "Fuerza la escritura del archivo con el descriptor de archivo *fd* en el " "disco. En Unix, esto llama a la función nativa :c:func:`fsync`; en Windows, " "la función MS :c:func:`_commit`." -#: ../Doc/library/os.rst:971 +#: ../Doc/library/os.rst:1082 msgid "" "If you're starting with a buffered Python :term:`file object` *f*, first do " "``f.flush()``, and then do ``os.fsync(f.fileno())``, to ensure that all " @@ -1518,7 +1647,7 @@ msgstr "" "garantizar que todas las memorias intermedias internas asociadas con *f* se " "escriban en disco." -#: ../Doc/library/os.rst:980 +#: ../Doc/library/os.rst:1091 msgid "" "Truncate the file corresponding to file descriptor *fd*, so that it is at " "most *length* bytes in size. As of Python 3.3, this is equivalent to ``os." @@ -1528,7 +1657,7 @@ msgstr "" "tenga como máximo *length* bytes de tamaño. A partir de Python 3.3, esto es " "equivalente a ``os.truncate(fd, length)``." -#: ../Doc/library/os.rst:984 +#: ../Doc/library/os.rst:1095 msgid "" "Raises an :ref:`auditing event ` ``os.truncate`` with arguments " "``fd``, ``length``." @@ -1536,11 +1665,11 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.truncate`` con " "argumentos ``fd``, ``length``." -#: ../Doc/library/os.rst:988 ../Doc/library/os.rst:3136 +#: ../Doc/library/os.rst:1099 ../Doc/library/os.rst:3416 msgid "Added support for Windows" msgstr "Se agregó soporte para Windows" -#: ../Doc/library/os.rst:994 +#: ../Doc/library/os.rst:1105 msgid "" "Get the blocking mode of the file descriptor: ``False`` if the :data:" "`O_NONBLOCK` flag is set, ``True`` if the flag is cleared." @@ -1548,12 +1677,21 @@ msgstr "" "Obtiene el modo de bloqueo del descriptor de archivo: ``False`` si se " "establece el indicador :data:`O_NONBLOCK`, ``True`` si el indicador se borra." -#: ../Doc/library/os.rst:997 +#: ../Doc/library/os.rst:1108 msgid "See also :func:`set_blocking` and :meth:`socket.socket.setblocking`." msgstr "" "Consulte también :func:`set_blocking` y :meth:`socket.socket.setblocking`." -#: ../Doc/library/os.rst:1009 +#: ../Doc/library/os.rst:1115 ../Doc/library/os.rst:1654 +msgid "On Windows, this function is limited to pipes." +msgstr "" + +#: ../Doc/library/os.rst:1119 ../Doc/library/os.rst:1658 +#, fuzzy +msgid "Added support for pipes on Windows." +msgstr "Se agregó soporte para Windows." + +#: ../Doc/library/os.rst:1124 msgid "" "Return ``True`` if the file descriptor *fd* is open and connected to a tty(-" "like) device, else ``False``." @@ -1561,7 +1699,7 @@ msgstr "" "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:1015 +#: ../Doc/library/os.rst:1130 msgid "" "Apply, test or remove a POSIX lock on an open file descriptor. *fd* is an " "open file descriptor. *cmd* specifies the command to use - one of :data:" @@ -1573,7 +1711,7 @@ msgstr "" "comando a usar - uno de :data:`F_LOCK`, :data:`F_TLOCK`, :data:`F_ULOCK` o :" "data:`F_TEST`. *len* especifica la sección del archivo a bloquear." -#: ../Doc/library/os.rst:1021 +#: ../Doc/library/os.rst:1136 msgid "" "Raises an :ref:`auditing event ` ``os.lockf`` with arguments " "``fd``, ``cmd``, ``len``." @@ -1581,11 +1719,11 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.lockf`` con argumentos " "``fd``, ``cmd``, ``len``." -#: ../Doc/library/os.rst:1033 +#: ../Doc/library/os.rst:1148 msgid "Flags that specify what action :func:`lockf` will take." msgstr "Indicadores que especifican qué acción tomará :func:`lockf`." -#: ../Doc/library/os.rst:1042 +#: ../Doc/library/os.rst:1157 msgid "" "Prepare the tty of which fd is a file descriptor for a new login session. " "Make the calling process a session leader; make the tty the controlling tty, " @@ -1596,39 +1734,118 @@ msgstr "" "sesión; hacer que el tty sea el tty controlador, el stdin, el stdout y el " "stderr del proceso de llamada; cerrar fd." -#: ../Doc/library/os.rst:1053 +#: ../Doc/library/os.rst:1168 msgid "" "Set the current position of file descriptor *fd* to position *pos*, modified " -"by *how*: :const:`SEEK_SET` or ``0`` to set the position relative to the " -"beginning of the file; :const:`SEEK_CUR` or ``1`` to set it relative to the " -"current position; :const:`SEEK_END` or ``2`` to set it relative to the end " -"of the file. Return the new cursor position in bytes, starting from the " -"beginning." -msgstr "" -"Establece la posición actual del descriptor de archivo *fd* en la posición " -"*pos*, modificada por *how*: :const:`SEEK_SET` o ``0`` para establecer la " -"posición relativa al comienzo del archivo; :const:`SEEK_CUR` o ``1`` para " -"establecerlo en relación con la posición actual; :const:`SEEK_END` o ``2`` " -"para establecerlo en relación con el final del archivo. Retorna la nueva " -"posición del cursor en bytes, comenzando desde el principio." - -#: ../Doc/library/os.rst:1064 -msgid "" -"Parameters to the :func:`lseek` function. Their values are 0, 1, and 2, " -"respectively." +"by *whence*, and return the new position in bytes relative to the start of " +"the file. Valid values for *whence* are:" +msgstr "" + +#: ../Doc/library/os.rst:1173 +msgid "" +":const:`SEEK_SET` or ``0`` -- set *pos* relative to the beginning of the file" +msgstr "" + +#: ../Doc/library/os.rst:1174 +msgid "" +":const:`SEEK_CUR` or ``1`` -- set *pos* relative to the current file position" +msgstr "" + +#: ../Doc/library/os.rst:1175 +msgid ":const:`SEEK_END` or ``2`` -- set *pos* relative to the end of the file" +msgstr "" + +#: ../Doc/library/os.rst:1176 +msgid "" +":const:`SEEK_HOLE` -- set *pos* to the next data location, relative to *pos*" +msgstr "" + +#: ../Doc/library/os.rst:1177 +msgid "" +":const:`SEEK_DATA` -- set *pos* to the next data hole, relative to *pos*" +msgstr "" + +#: ../Doc/library/os.rst:1181 +msgid "Add support for :const:`!SEEK_HOLE` and :const:`!SEEK_DATA`." +msgstr "" + +#: ../Doc/library/os.rst:1188 +msgid "" +"Parameters to the :func:`lseek` function and the :meth:`~io.IOBase.seek` " +"method on :term:`file-like objects `, for whence to adjust the " +"file position indicator." +msgstr "" + +#: ../Doc/library/os.rst:1192 +msgid ":const:`SEEK_SET`" +msgstr "" + +#: ../Doc/library/os.rst:1193 +msgid "Adjust the file position relative to the beginning of the file." +msgstr "" + +#: ../Doc/library/os.rst:1194 +msgid ":const:`SEEK_CUR`" +msgstr "" + +#: ../Doc/library/os.rst:1195 +msgid "Adjust the file position relative to the current file position." +msgstr "" + +#: ../Doc/library/os.rst:1197 +msgid ":const:`SEEK_END`" +msgstr "" + +#: ../Doc/library/os.rst:1197 +msgid "Adjust the file position relative to the end of the file." +msgstr "" + +#: ../Doc/library/os.rst:1199 +#, fuzzy +msgid "Their values are 0, 1, and 2, respectively." msgstr "" "Parámetros para la función :func:`lseek`. Sus valores son 0, 1 y 2, " "respectivamente." -#: ../Doc/library/os.rst:1067 +#: ../Doc/library/os.rst:1205 +msgid "" +"Parameters to the :func:`lseek` function and the :meth:`~io.IOBase.seek` " +"method on :term:`file-like objects `, for seeking file data and " +"holes on sparsely allocated files." +msgstr "" + +#: ../Doc/library/os.rst:1211 +#, fuzzy +msgid ":data:`!SEEK_DATA`" +msgstr ":data:`RWF_NOWAIT`" + +#: ../Doc/library/os.rst:1210 +msgid "" +"Adjust the file offset to the next location containing data, relative to the " +"seek position." +msgstr "" + +#: ../Doc/library/os.rst:1216 +#, fuzzy +msgid ":data:`!SEEK_HOLE`" +msgstr ":data:`stat.UF_OPAQUE`" + +#: ../Doc/library/os.rst:1214 msgid "" -"Some operating systems could support additional values, like :data:`os." -"SEEK_HOLE` or :data:`os.SEEK_DATA`." +"Adjust the file offset to the next location containing a hole, relative to " +"the seek position. A hole is defined as a sequence of zeros." msgstr "" -"Algunos sistemas operativos pueden admitir valores adicionales, como :data:" -"`os.SEEK_HOLE` o :data:`os.SEEK_DATA`." -#: ../Doc/library/os.rst:1074 +#: ../Doc/library/os.rst:1220 +msgid "These operations only make sense for filesystems that support them." +msgstr "" + +#: ../Doc/library/os.rst:1222 +#, fuzzy +msgid ":ref:`Availability `: Linux >= 3.1, macOS, Unix" +msgstr ":ref:`Disponibilidad `: Linux >= 3.17." + +#: ../Doc/library/os.rst:1229 msgid "" "Open the file *path* and set various flags according to *flags* and possibly " "its mode according to *mode*. When computing *mode*, the current umask " @@ -1641,7 +1858,7 @@ msgstr "" "abierto. El nuevo descriptor de archivo es :ref:`no heredable " "`." -#: ../Doc/library/os.rst:1079 +#: ../Doc/library/os.rst:1234 msgid "" "For a description of the flag and mode values, see the C run-time " "documentation; flag constants (like :const:`O_RDONLY` and :const:`O_WRONLY`) " @@ -1654,7 +1871,7 @@ msgstr "" "se definen en el módulo :mod:`os`. En particular, en Windows agregar :const:" "`O_BINARY` es necesario para abrir archivos en modo binario." -#: ../Doc/library/os.rst:1084 +#: ../Doc/library/os.rst:1239 msgid "" "This function can support :ref:`paths relative to directory descriptors " "` with the *dir_fd* parameter." @@ -1662,7 +1879,7 @@ msgstr "" "Esta función puede admitir :ref:`rutas relativas a descriptores de " "directorio ` con el parámetro *dir_fd*." -#: ../Doc/library/os.rst:1087 +#: ../Doc/library/os.rst:1242 msgid "" "Raises an :ref:`auditing event ` ``open`` with arguments ``path``, " "``mode``, ``flags``." @@ -1670,7 +1887,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``open`` con argumentos " "``path``, ``mode``, ``flags``." -#: ../Doc/library/os.rst:1094 +#: ../Doc/library/os.rst:1249 msgid "" "This function is intended for low-level I/O. For normal usage, use the " "built-in function :func:`open`, which returns a :term:`file object` with :" @@ -1683,14 +1900,14 @@ msgstr "" "envolver un descriptor de archivo en un objeto de archivo, use :func:" "`fdopen`." -#: ../Doc/library/os.rst:1099 ../Doc/library/os.rst:2141 -#: ../Doc/library/os.rst:2209 ../Doc/library/os.rst:2231 -#: ../Doc/library/os.rst:2312 ../Doc/library/os.rst:2343 +#: ../Doc/library/os.rst:1254 ../Doc/library/os.rst:2364 +#: ../Doc/library/os.rst:2432 ../Doc/library/os.rst:2454 +#: ../Doc/library/os.rst:2535 ../Doc/library/os.rst:2566 msgid "The *dir_fd* argument." msgstr "El argumento *dir_fd*." -#: ../Doc/library/os.rst:1102 ../Doc/library/os.rst:1421 -#: ../Doc/library/os.rst:1592 ../Doc/library/os.rst:4489 +#: ../Doc/library/os.rst:1257 ../Doc/library/os.rst:1576 +#: ../Doc/library/os.rst:1752 ../Doc/library/os.rst:4777 msgid "" "If the system call is interrupted and the signal handler does not raise an " "exception, the function now retries the system call instead of raising an :" @@ -1701,25 +1918,25 @@ msgstr "" "de generar una excepción :exc:`InterruptedError` (ver :pep:`475` para la " "justificación)." -#: ../Doc/library/os.rst:1107 ../Doc/library/os.rst:1803 -#: ../Doc/library/os.rst:1835 ../Doc/library/os.rst:1866 -#: ../Doc/library/os.rst:1915 ../Doc/library/os.rst:1952 -#: ../Doc/library/os.rst:1992 ../Doc/library/os.rst:2007 -#: ../Doc/library/os.rst:2020 ../Doc/library/os.rst:2079 -#: ../Doc/library/os.rst:2108 ../Doc/library/os.rst:2144 -#: ../Doc/library/os.rst:2185 ../Doc/library/os.rst:2212 -#: ../Doc/library/os.rst:2234 ../Doc/library/os.rst:2275 -#: ../Doc/library/os.rst:2346 ../Doc/library/os.rst:2365 -#: ../Doc/library/os.rst:2451 ../Doc/library/os.rst:2724 -#: ../Doc/library/os.rst:2975 ../Doc/library/os.rst:3139 -#: ../Doc/library/os.rst:3155 ../Doc/library/os.rst:3195 -#: ../Doc/library/os.rst:3294 ../Doc/library/os.rst:3355 -#: ../Doc/library/os.rst:3539 ../Doc/library/os.rst:3718 -#: ../Doc/library/os.rst:4224 +#: ../Doc/library/os.rst:1262 ../Doc/library/os.rst:1963 +#: ../Doc/library/os.rst:1995 ../Doc/library/os.rst:2026 +#: ../Doc/library/os.rst:2075 ../Doc/library/os.rst:2112 +#: ../Doc/library/os.rst:2152 ../Doc/library/os.rst:2167 +#: ../Doc/library/os.rst:2180 ../Doc/library/os.rst:2239 +#: ../Doc/library/os.rst:2331 ../Doc/library/os.rst:2367 +#: ../Doc/library/os.rst:2408 ../Doc/library/os.rst:2435 +#: ../Doc/library/os.rst:2457 ../Doc/library/os.rst:2498 +#: ../Doc/library/os.rst:2569 ../Doc/library/os.rst:2588 +#: ../Doc/library/os.rst:2676 ../Doc/library/os.rst:2966 +#: ../Doc/library/os.rst:3255 ../Doc/library/os.rst:3419 +#: ../Doc/library/os.rst:3435 ../Doc/library/os.rst:3475 +#: ../Doc/library/os.rst:3574 ../Doc/library/os.rst:3635 +#: ../Doc/library/os.rst:3819 ../Doc/library/os.rst:3999 +#: ../Doc/library/os.rst:4542 msgid "Accepts a :term:`path-like object`." msgstr "Acepta un :term:`objeto tipo ruta`." -#: ../Doc/library/os.rst:1110 +#: ../Doc/library/os.rst:1265 msgid "" "The following constants are options for the *flags* parameter to the :func:" "`~os.open` function. They can be combined using the bitwise OR operator ``|" @@ -1735,27 +1952,27 @@ msgstr "" "manual :manpage:`open(2)` en Unix o `la MSDN `_ en Windows." -#: ../Doc/library/os.rst:1125 +#: ../Doc/library/os.rst:1280 msgid "The above constants are available on Unix and Windows." msgstr "Las constantes anteriores están disponibles en Unix y Windows." -#: ../Doc/library/os.rst:1136 +#: ../Doc/library/os.rst:1291 msgid "The above constants are only available on Unix." msgstr "Las constantes anteriores sólo están disponibles en Unix." -#: ../Doc/library/os.rst:1138 +#: ../Doc/library/os.rst:1293 msgid "Add :data:`O_CLOEXEC` constant." msgstr "Se agregó la constante :data:`O_CLOEXEC`." -#: ../Doc/library/os.rst:1149 +#: ../Doc/library/os.rst:1304 msgid "The above constants are only available on Windows." msgstr "Las constantes anteriores sólo están disponibles en Windows." -#: ../Doc/library/os.rst:1156 +#: ../Doc/library/os.rst:1311 msgid "The above constants are only available on macOS." msgstr "Las constantes anteriores solo están disponibles en macOS." -#: ../Doc/library/os.rst:1158 +#: ../Doc/library/os.rst:1313 msgid "" "Add :data:`O_EVTONLY`, :data:`O_FSYNC`, :data:`O_SYMLINK` and :data:" "`O_NOFOLLOW_ANY` constants." @@ -1763,7 +1980,7 @@ msgstr "" "Agregue las constantes :data:`O_EVTONLY`, :data:`O_FSYNC`, :data:`O_SYMLINK` " "y :data:`O_NOFOLLOW_ANY`." -#: ../Doc/library/os.rst:1172 +#: ../Doc/library/os.rst:1327 msgid "" "The above constants are extensions and not present if they are not defined " "by the C library." @@ -1771,7 +1988,7 @@ msgstr "" "Las constantes anteriores son extensiones y no están presentes si no están " "definidas por la biblioteca de C." -#: ../Doc/library/os.rst:1175 +#: ../Doc/library/os.rst:1330 msgid "" "Add :data:`O_PATH` on systems that support it. Add :data:`O_TMPFILE`, only " "available on Linux Kernel 3.11 or newer." @@ -1780,7 +1997,7 @@ msgstr "" "agrega :data:`O_TMPFILE`, sólo disponible en Linux para el Kernel 3.11 o " "posterior." -#: ../Doc/library/os.rst:1185 +#: ../Doc/library/os.rst:1340 msgid "" "Open a new pseudo-terminal pair. Return a pair of file descriptors " "``(master, slave)`` for the pty and the tty, respectively. The new file " @@ -1792,11 +2009,11 @@ msgstr "" "descriptores de archivo son :ref:`no heredable `. Para un " "enfoque (ligeramente) más portátil, use el módulo :mod:`pty`." -#: ../Doc/library/os.rst:1192 ../Doc/library/os.rst:1204 +#: ../Doc/library/os.rst:1347 ../Doc/library/os.rst:1359 msgid "The new file descriptors are now non-inheritable." msgstr "Los nuevos descriptores de archivo ahora son no heredables." -#: ../Doc/library/os.rst:1198 +#: ../Doc/library/os.rst:1353 msgid "" "Create a pipe. Return a pair of file descriptors ``(r, w)`` usable for " "reading and writing, respectively. The new file descriptor is :ref:`non-" @@ -1806,7 +2023,7 @@ msgstr "" "se pueden usar para leer y escribir, respectivamente. El nuevo descriptor de " "archivo es :ref:`no heredable `." -#: ../Doc/library/os.rst:1210 +#: ../Doc/library/os.rst:1365 msgid "" "Create a pipe with *flags* set atomically. *flags* can be constructed by " "ORing together one or more of these values: :data:`O_NONBLOCK`, :data:" @@ -1818,7 +2035,7 @@ msgstr "" "`O_CLOEXEC` con el operador OR. Retorna un par de descriptores de archivo " "``(r, w)`` que se pueden usar para leer y escribir, respectivamente." -#: ../Doc/library/os.rst:1223 +#: ../Doc/library/os.rst:1378 msgid "" "Ensures that enough disk space is allocated for the file specified by *fd* " "starting from *offset* and continuing for *len* bytes." @@ -1826,12 +2043,12 @@ msgstr "" "Asegura que se asigne suficiente espacio en disco para el archivo " "especificado por *fd* a partir de *offset* y se extiende por *len* bytes." -#: ../Doc/library/os.rst:1227 +#: ../Doc/library/os.rst:1381 #, fuzzy msgid ":ref:`Availability `: Unix, not Emscripten." msgstr ":ref:`Disponibilidad `: Unix, no Emscripten." -#: ../Doc/library/os.rst:1233 +#: ../Doc/library/os.rst:1388 msgid "" "Announces an intention to access data in a specific pattern thus allowing " "the kernel to make optimizations. The advice applies to the region of the " @@ -1849,7 +2066,7 @@ msgstr "" "`POSIX_FADV_NOREUSE`, :data:`POSIX_FADV_WILLNEED` o :data:" "`POSIX_FADV_DONTNEED`." -#: ../Doc/library/os.rst:1253 +#: ../Doc/library/os.rst:1408 msgid "" "Flags that can be used in *advice* in :func:`posix_fadvise` that specify the " "access pattern that is likely to be used." @@ -1857,7 +2074,7 @@ msgstr "" "Indicadores que se pueden usar en *advice* en :func:`posix_fadvise` que " "especifican el patrón de acceso que es probable que se use." -#: ../Doc/library/os.rst:1263 +#: ../Doc/library/os.rst:1418 msgid "" "Read at most *n* bytes from file descriptor *fd* at a position of *offset*, " "leaving the file offset unchanged." @@ -1865,7 +2082,7 @@ msgstr "" "Lee como máximo *n* bytes del descriptor de archivo *fd* en una posición de " "*offset*, sin modificar el desplazamiento (*offset*) del archivo." -#: ../Doc/library/os.rst:1266 ../Doc/library/os.rst:1410 +#: ../Doc/library/os.rst:1421 ../Doc/library/os.rst:1565 msgid "" "Return a bytestring containing the bytes read. If the end of the file " "referred to by *fd* has been reached, an empty bytes object is returned." @@ -1874,7 +2091,7 @@ msgstr "" "final del archivo al que hace referencia *fd*, se retorna un objeto de bytes " "vacío." -#: ../Doc/library/os.rst:1276 +#: ../Doc/library/os.rst:1431 msgid "" "Read from a file descriptor *fd* at a position of *offset* into mutable :" "term:`bytes-like objects ` *buffers*, leaving the file " @@ -1887,7 +2104,7 @@ msgstr "" "que esté lleno y luego pase al siguiente búfer en la secuencia para contener " "el resto de los datos." -#: ../Doc/library/os.rst:1281 ../Doc/library/os.rst:1351 +#: ../Doc/library/os.rst:1436 ../Doc/library/os.rst:1506 msgid "" "The flags argument contains a bitwise OR of zero or more of the following " "flags:" @@ -1895,15 +2112,15 @@ msgstr "" "El argumento flags contiene un operador de bit a bit OR de cero o más de las " "siguientes flags:" -#: ../Doc/library/os.rst:1284 +#: ../Doc/library/os.rst:1439 msgid ":data:`RWF_HIPRI`" msgstr ":data:`RWF_HIPRI`" -#: ../Doc/library/os.rst:1285 +#: ../Doc/library/os.rst:1440 msgid ":data:`RWF_NOWAIT`" msgstr ":data:`RWF_NOWAIT`" -#: ../Doc/library/os.rst:1287 ../Doc/library/os.rst:1542 +#: ../Doc/library/os.rst:1442 ../Doc/library/os.rst:1702 msgid "" "Return the total number of bytes actually read which can be less than the " "total capacity of all the objects." @@ -1911,8 +2128,8 @@ msgstr "" "Retorna el número total de bytes realmente leídos que puede ser menor que la " "capacidad total de todos los objetos." -#: ../Doc/library/os.rst:1290 ../Doc/library/os.rst:1360 -#: ../Doc/library/os.rst:1545 ../Doc/library/os.rst:1607 +#: ../Doc/library/os.rst:1445 ../Doc/library/os.rst:1515 +#: ../Doc/library/os.rst:1705 ../Doc/library/os.rst:1767 msgid "" "The operating system may set a limit (:func:`sysconf` value " "``'SC_IOV_MAX'``) on the number of buffers that can be used." @@ -1920,10 +2137,11 @@ msgstr "" "El sistema operativo puede establecer un límite (:func:`sysconf` valor " "``'SC_IOV_MAX'``) en el número de búferes que se pueden usar." -#: ../Doc/library/os.rst:1293 +#: ../Doc/library/os.rst:1448 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:1450 ../Doc/library/os.rst:1520 #, fuzzy msgid "" ":ref:`Availability `: Linux >= 2.6.30, FreeBSD >= 6.0, OpenBSD " @@ -1932,11 +2150,11 @@ msgstr "" ":ref:`Disponibilidad `: Linux >= 2.6.30, FreeBSD >= 6.0, " "OpenBSD >= 2.7, AIX >= 7.1." -#: ../Doc/library/os.rst:1297 ../Doc/library/os.rst:1367 +#: ../Doc/library/os.rst:1452 ../Doc/library/os.rst:1522 msgid "Using flags requires Linux >= 4.6." msgstr "El uso de banderas requiere Linux >= 4.6." -#: ../Doc/library/os.rst:1304 +#: ../Doc/library/os.rst:1459 msgid "" "Do not wait for data which is not immediately available. If this flag is " "specified, the system call will return instantly if it would have to read " @@ -1946,22 +2164,23 @@ msgstr "" "indicador, la llamada al sistema regresará instantáneamente si tuviera que " "leer datos del almacenamiento de respaldo o esperar por un bloqueo." -#: ../Doc/library/os.rst:1308 +#: ../Doc/library/os.rst:1463 +#, fuzzy msgid "" "If some data was successfully read, it will return the number of bytes read. " -"If no bytes were read, it will return ``-1`` and set errno to :data:`errno." +"If no bytes were read, it will return ``-1`` and set errno to :const:`errno." "EAGAIN`." msgstr "" "Si algunos datos se leyeron con éxito, retornará el número de bytes leídos. " "Si no se leyeron bytes, retornará ``-1`` y establecerá errno en :data:`errno." "EAGAIN`." -#: ../Doc/library/os.rst:1313 +#: ../Doc/library/os.rst:1467 #, fuzzy msgid ":ref:`Availability `: Linux >= 4.14." msgstr ":ref:`Disponibilidad `: Linux >= 4.14." -#: ../Doc/library/os.rst:1319 +#: ../Doc/library/os.rst:1474 msgid "" "High priority read/write. Allows block-based filesystems to use polling of " "the device, which provides lower latency, but may use additional resources." @@ -1970,7 +2189,7 @@ msgstr "" "basados en bloques utilicen el sondeo del dispositivo, lo que proporciona " "una latencia más baja, pero puede usar recursos adicionales." -#: ../Doc/library/os.rst:1323 +#: ../Doc/library/os.rst:1478 msgid "" "Currently, on Linux, this feature is usable only on a file descriptor opened " "using the :data:`O_DIRECT` flag." @@ -1978,12 +2197,12 @@ msgstr "" "Actualmente, en Linux, esta función sólo se puede usar en un descriptor de " "archivo abierto con el indicador :data:`O_DIRECT`." -#: ../Doc/library/os.rst:1327 +#: ../Doc/library/os.rst:1481 #, fuzzy msgid ":ref:`Availability `: Linux >= 4.6." msgstr ":ref:`Disponibilidad `: Linux >= 4.6." -#: ../Doc/library/os.rst:1333 +#: ../Doc/library/os.rst:1488 msgid "" "Write the bytestring in *str* to file descriptor *fd* at position of " "*offset*, leaving the file offset unchanged." @@ -1991,11 +2210,11 @@ msgstr "" "Escribe la cadena de bytes en *str* en el descriptor de archivo *fd* en la " "posición *offset*, sin modificar el desplazamiento del archivo." -#: ../Doc/library/os.rst:1336 ../Doc/library/os.rst:1582 +#: ../Doc/library/os.rst:1491 ../Doc/library/os.rst:1742 msgid "Return the number of bytes actually written." msgstr "Retorna el número de bytes realmente escritos." -#: ../Doc/library/os.rst:1345 +#: ../Doc/library/os.rst:1500 msgid "" "Write the *buffers* contents to file descriptor *fd* at a offset *offset*, " "leaving the file offset unchanged. *buffers* must be a sequence of :term:" @@ -2010,27 +2229,27 @@ msgstr "" "escribe todo el contenido del primer búfer antes de pasar al segundo, y así " "sucesivamente." -#: ../Doc/library/os.rst:1354 +#: ../Doc/library/os.rst:1509 msgid ":data:`RWF_DSYNC`" msgstr ":data:`RWF_DSYNC`" -#: ../Doc/library/os.rst:1355 +#: ../Doc/library/os.rst:1510 msgid ":data:`RWF_SYNC`" msgstr ":data:`RWF_SYNC`" -#: ../Doc/library/os.rst:1356 +#: ../Doc/library/os.rst:1511 msgid ":data:`RWF_APPEND`" msgstr ":data:`RWF_APPEND`" -#: ../Doc/library/os.rst:1358 +#: ../Doc/library/os.rst:1513 msgid "Return the total number of bytes actually written." msgstr "Retorna el número total de bytes realmente escritos." -#: ../Doc/library/os.rst:1363 +#: ../Doc/library/os.rst:1518 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:1374 +#: ../Doc/library/os.rst:1529 msgid "" "Provide a per-write equivalent of the :data:`O_DSYNC` :func:`os.open` flag. " "This flag effect applies only to the data range written by the system call." @@ -2039,12 +2258,12 @@ msgstr "" "`os.open`. Este efecto de bandera se aplica solo al rango de datos escrito " "por la llamada al sistema." -#: ../Doc/library/os.rst:1378 ../Doc/library/os.rst:1388 +#: ../Doc/library/os.rst:1532 ../Doc/library/os.rst:1542 #, fuzzy msgid ":ref:`Availability `: Linux >= 4.7." msgstr ":ref:`Disponibilidad `: Linux > 4.7." -#: ../Doc/library/os.rst:1384 +#: ../Doc/library/os.rst:1539 msgid "" "Provide a per-write equivalent of the :data:`O_SYNC` :func:`os.open` flag. " "This flag effect applies only to the data range written by the system call." @@ -2053,7 +2272,7 @@ msgstr "" "`os.open`. Este efecto de bandera se aplica solo al rango de datos escrito " "por la llamada al sistema." -#: ../Doc/library/os.rst:1394 +#: ../Doc/library/os.rst:1549 msgid "" "Provide a per-write equivalent of the :data:`O_APPEND` :func:`os.open` flag. " "This flag is meaningful only for :func:`os.pwritev`, and its effect applies " @@ -2069,16 +2288,16 @@ msgstr "" "datos siempre se añaden al final del archivo. Sin embargo, si el argumento " "*offset* es ``-1``, se actualiza el *offset* actual del archivo." -#: ../Doc/library/os.rst:1402 +#: ../Doc/library/os.rst:1556 #, fuzzy msgid ":ref:`Availability `: Linux >= 4.16." msgstr ":ref:`Disponibilidad `: Linux >= 4.16." -#: ../Doc/library/os.rst:1408 +#: ../Doc/library/os.rst:1563 msgid "Read at most *n* bytes from file descriptor *fd*." msgstr "Lee como máximo *n* bytes del descriptor de archivo *fd*." -#: ../Doc/library/os.rst:1415 +#: ../Doc/library/os.rst:1570 msgid "" "This function is intended for low-level I/O and must be applied to a file " "descriptor as returned by :func:`os.open` or :func:`pipe`. To read a \"file " @@ -2092,7 +2311,7 @@ msgstr "" "`open` o por :func:`popen` o :func:`fdopen`, o :data:`sys.stdin`, use los " "métodos :meth:`~file.read` o :meth:`~file.readline`." -#: ../Doc/library/os.rst:1430 +#: ../Doc/library/os.rst:1585 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 " @@ -2102,7 +2321,7 @@ msgstr "" "archivo *out_fd* comenzando en *offset*. Retorna el número de bytes " "enviados. Cuando se alcanza EOF, retorna ``0``." -#: ../Doc/library/os.rst:1434 +#: ../Doc/library/os.rst:1589 msgid "" "The first function notation is supported by all platforms that define :func:" "`sendfile`." @@ -2110,7 +2329,7 @@ msgstr "" "La primera notación de la función es compatible con todas las plataformas " "que definen :func:`sendfile`." -#: ../Doc/library/os.rst:1437 +#: ../Doc/library/os.rst:1592 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." @@ -2118,7 +2337,7 @@ msgstr "" "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:1440 +#: ../Doc/library/os.rst:1595 msgid "" "The second case may be used on macOS and FreeBSD where *headers* and " "*trailers* are arbitrary sequences of buffers that are written before and " @@ -2130,7 +2349,7 @@ msgstr "" "después de que se escriban los datos de *in_fd*. Retorna lo mismo que el " "primer caso." -#: ../Doc/library/os.rst:1444 +#: ../Doc/library/os.rst:1599 msgid "" "On macOS and FreeBSD, a value of ``0`` for *count* specifies to send until " "the end of *in_fd* is reached." @@ -2138,7 +2357,7 @@ msgstr "" "En macOS y FreeBSD, un valor de ``0`` para *count* especifica enviar hasta " "que se alcanza el final de *in_fd*." -#: ../Doc/library/os.rst:1447 +#: ../Doc/library/os.rst:1602 msgid "" "All platforms support sockets as *out_fd* file descriptor, and some " "platforms allow other types (e.g. regular file, pipe) as well." @@ -2147,7 +2366,7 @@ msgstr "" "algunas plataformas también permiten otros tipos (por ejemplo, archivo " "regular, tuberías)." -#: ../Doc/library/os.rst:1450 +#: ../Doc/library/os.rst:1605 msgid "" "Cross-platform applications should not use *headers*, *trailers* and *flags* " "arguments." @@ -2155,7 +2374,7 @@ msgstr "" "Las aplicaciones multiplataforma no deben usar los argumentos *headers*, " "*trailers* y *flags*." -#: ../Doc/library/os.rst:1457 +#: ../Doc/library/os.rst:1612 msgid "" "For a higher-level wrapper of :func:`sendfile`, see :meth:`socket.socket." "sendfile`." @@ -2163,32 +2382,18 @@ msgstr "" "Para un contenedor de alto nivel de :func:`sendfile`, vea :meth:`socket." "socket.sendfile`." -#: ../Doc/library/os.rst:1462 +#: ../Doc/library/os.rst:1617 msgid "Parameters *out* and *in* was renamed to *out_fd* and *in_fd*." msgstr "Parámetros *out* e *in* han sido renombrados a *out_fd* e *in_fd*." -#: ../Doc/library/os.rst:1468 -msgid "" -"Set the blocking mode of the specified file descriptor. Set the :data:" -"`O_NONBLOCK` flag if blocking is ``False``, clear the flag otherwise." -msgstr "" -"Establece el modo de bloqueo del descriptor de archivo especificado. " -"Establece la flag :data:`O_NONBLOCK` si se quiere que el bloqueo sea " -"``False``, borre la flag de lo contrario." - -#: ../Doc/library/os.rst:1471 -msgid "See also :func:`get_blocking` and :meth:`socket.socket.setblocking`." -msgstr "" -"Consulte también :func:`get_blocking` y :meth:`socket.socket.setblocking`." - -#: ../Doc/library/os.rst:1485 +#: ../Doc/library/os.rst:1625 msgid "" "Parameters to the :func:`sendfile` function, if the implementation supports " "them." msgstr "" "Parámetros para la función :func:`sendfile`, si la implementación los admite." -#: ../Doc/library/os.rst:1494 +#: ../Doc/library/os.rst:1634 msgid "" "Parameter to the :func:`sendfile` function, if the implementation supports " "it. The data won't be cached in the virtual memory and will be freed " @@ -2198,7 +2403,22 @@ msgstr "" "datos no se almacenarán en caché en la memoria virtual y se liberarán " "después." -#: ../Doc/library/os.rst:1504 +#: ../Doc/library/os.rst:1644 +msgid "" +"Set the blocking mode of the specified file descriptor. Set the :data:" +"`O_NONBLOCK` flag if blocking is ``False``, clear the flag otherwise." +msgstr "" +"Establece el modo de bloqueo del descriptor de archivo especificado. " +"Establece la flag :data:`O_NONBLOCK` si se quiere que el bloqueo sea " +"``False``, borre la flag de lo contrario." + +#: ../Doc/library/os.rst:1647 +msgid "See also :func:`get_blocking` and :meth:`socket.socket.setblocking`." +msgstr "" +"Consulte también :func:`get_blocking` y :meth:`socket.socket.setblocking`." + +#: ../Doc/library/os.rst:1664 +#, fuzzy msgid "" "Transfer *count* bytes from file descriptor *src*, starting from offset " "*offset_src*, to file descriptor *dst*, starting from offset *offset_dst*. " @@ -2207,7 +2427,7 @@ msgid "" "*offset_dst*. The offset associated to the file descriptor that refers to a " "pipe must be ``None``. The files pointed by *src* and *dst* must reside in " "the same filesystem, otherwise an :exc:`OSError` is raised with :attr:" -"`~OSError.errno` set to :data:`errno.EXDEV`." +"`~OSError.errno` set to :const:`errno.EXDEV`." msgstr "" "Transfiera *count* bytes desde el descriptor de archivo *src*, comenzando " "desde el desplazamiento *offset_src*, al descriptor de archivo *dst*, " @@ -2220,7 +2440,19 @@ msgstr "" "contrario, se genera un :exc:`OSError` con :attr:`~OSError.errno` " "configurado en :data:`errno.EXDEV`." -#: ../Doc/library/os.rst:1518 +#: ../Doc/library/os.rst:1673 +msgid "" +"This copy is done without the additional cost of transferring data from the " +"kernel to user space and then back into the kernel. Additionally, some " +"filesystems could implement extra optimizations. The copy is done as if both " +"files are opened as binary." +msgstr "" +"Esta copia se realiza sin el costo adicional de transferir datos desde el " +"kernel al espacio del usuario y luego nuevamente al kernel. También, algunos " +"sistemas de archivos podrían implementar optimizaciones adicionales. La " +"copia se realiza como si ambos archivos se abrieran como binarios." + +#: ../Doc/library/os.rst:1678 msgid "" "Upon successful completion, returns the number of bytes spliced to or from " "the pipe. A return value of 0 means end of input. If *src* refers to a pipe, " @@ -2234,13 +2466,13 @@ msgstr "" "transferir y no tendría sentido bloquear porque no hay escritores conectados " "al extremo de escritura de la tubería." -#: ../Doc/library/os.rst:1525 +#: ../Doc/library/os.rst:1684 #, fuzzy msgid ":ref:`Availability `: Linux >= 2.6.17 with glibc >= 2.5" msgstr "" ":ref:`Disponibilidad `: Linux >= 2.6.17 con glibc >= 2.5." -#: ../Doc/library/os.rst:1537 +#: ../Doc/library/os.rst:1697 msgid "" "Read from a file descriptor *fd* into a number of mutable :term:`bytes-like " "objects ` *buffers*. Transfer data into each buffer until " @@ -2252,7 +2484,7 @@ msgstr "" "búfer hasta que esté lleno y luego pase al siguiente búfer en la secuencia " "para contener el resto de los datos." -#: ../Doc/library/os.rst:1555 +#: ../Doc/library/os.rst:1715 msgid "" "Return the process group associated with the terminal given by *fd* (an open " "file descriptor as returned by :func:`os.open`)." @@ -2260,12 +2492,12 @@ msgstr "" "Retorna el grupo del proceso asociado con la terminal proporcionada por *fd* " "(un descriptor de archivo abierto como lo retorna :func:`os.open`)." -#: ../Doc/library/os.rst:1558 ../Doc/library/os.rst:1566 +#: ../Doc/library/os.rst:1718 ../Doc/library/os.rst:1726 #, fuzzy msgid ":ref:`Availability `: Unix, not WASI." msgstr ":ref:`Disponibilidad `: Unix, no WASI." -#: ../Doc/library/os.rst:1563 +#: ../Doc/library/os.rst:1723 msgid "" "Set the process group associated with the terminal given by *fd* (an open " "file descriptor as returned by :func:`os.open`) to *pg*." @@ -2273,7 +2505,7 @@ msgstr "" "Establece el grupo del proceso asociado con la terminal dada por *fd* (un " "descriptor de archivo abierto como lo retorna :func:`os.open`) a *pg*." -#: ../Doc/library/os.rst:1571 +#: ../Doc/library/os.rst:1731 msgid "" "Return a string which specifies the terminal device associated with file " "descriptor *fd*. If *fd* is not associated with a terminal device, an " @@ -2283,11 +2515,11 @@ msgstr "" "descriptor de archivo *fd*. Si *fd* no está asociado con un dispositivo de " "terminal, se genera una excepción." -#: ../Doc/library/os.rst:1580 +#: ../Doc/library/os.rst:1740 msgid "Write the bytestring in *str* to file descriptor *fd*." msgstr "Escribe la cadena de bytes en *str* en el descriptor de archivo *fd*." -#: ../Doc/library/os.rst:1586 +#: ../Doc/library/os.rst:1746 msgid "" "This function is intended for low-level I/O and must be applied to a file " "descriptor as returned by :func:`os.open` or :func:`pipe`. To write a " @@ -2301,7 +2533,7 @@ msgstr "" "func:`open` o por :func:`popen` o :func:`fdopen`, o :data:`sys.stdout` o :" "data:`sys.stderr`, use el método :meth:`~file.write`." -#: ../Doc/library/os.rst:1600 +#: ../Doc/library/os.rst:1760 msgid "" "Write the contents of *buffers* to file descriptor *fd*. *buffers* must be a " "sequence of :term:`bytes-like objects `. Buffers are " @@ -2313,15 +2545,15 @@ msgstr "" "object>`. Los búferes se procesan en orden secuencial. Se escribe todo el " "contenido del primer búfer antes de pasar al segundo, y así sucesivamente." -#: ../Doc/library/os.rst:1605 +#: ../Doc/library/os.rst:1765 msgid "Returns the total number of bytes actually written." msgstr "Retorna el número total de bytes realmente escritos." -#: ../Doc/library/os.rst:1618 +#: ../Doc/library/os.rst:1778 msgid "Querying the size of a terminal" msgstr "Consultando las dimensiones de una terminal" -#: ../Doc/library/os.rst:1624 +#: ../Doc/library/os.rst:1784 msgid "" "Return the size of the terminal window as ``(columns, lines)``, tuple of " "type :class:`terminal_size`." @@ -2329,7 +2561,7 @@ msgstr "" "Retorna el tamaño de la ventana de la terminal como ``(columns, lines)``, " "una tupla del tipo :class:`terminal_size`." -#: ../Doc/library/os.rst:1627 +#: ../Doc/library/os.rst:1787 msgid "" "The optional argument ``fd`` (default ``STDOUT_FILENO``, or standard output) " "specifies which file descriptor should be queried." @@ -2337,7 +2569,7 @@ msgstr "" "El argumento opcional ``fd`` (por defecto es ``STDOUT_FILENO``, o la salida " "estándar) especifica qué descriptor de archivo debe consultarse." -#: ../Doc/library/os.rst:1630 +#: ../Doc/library/os.rst:1790 msgid "" "If the file descriptor is not connected to a terminal, an :exc:`OSError` is " "raised." @@ -2345,7 +2577,7 @@ msgstr "" "Si el descriptor de archivo no está conectado a una terminal, se genera un :" "exc:`OSError`." -#: ../Doc/library/os.rst:1633 +#: ../Doc/library/os.rst:1793 msgid "" ":func:`shutil.get_terminal_size` is the high-level function which should " "normally be used, ``os.get_terminal_size`` is the low-level implementation." @@ -2353,7 +2585,7 @@ msgstr "" ":func:`shutil.get_terminal_size` es la función de alto nivel que normalmente " "debería usarse, ``os.get_terminal_size`` es la implementación de bajo nivel." -#: ../Doc/library/os.rst:1641 +#: ../Doc/library/os.rst:1801 msgid "" "A subclass of tuple, holding ``(columns, lines)`` of the terminal window " "size." @@ -2361,19 +2593,19 @@ msgstr "" "Una subclase de tupla, que contiene ``(columns, lines)`` representando el " "tamaño de la ventana de la terminal." -#: ../Doc/library/os.rst:1645 +#: ../Doc/library/os.rst:1805 msgid "Width of the terminal window in characters." msgstr "Ancho de la ventana de la terminal en caracteres." -#: ../Doc/library/os.rst:1649 +#: ../Doc/library/os.rst:1809 msgid "Height of the terminal window in characters." msgstr "Alto de la ventana de la terminal en caracteres." -#: ../Doc/library/os.rst:1655 +#: ../Doc/library/os.rst:1815 msgid "Inheritance of File Descriptors" msgstr "Herencia de los descriptores de archivos" -#: ../Doc/library/os.rst:1659 +#: ../Doc/library/os.rst:1819 msgid "" "A file descriptor has an \"inheritable\" flag which indicates if the file " "descriptor can be inherited by child processes. Since Python 3.4, file " @@ -2384,7 +2616,7 @@ msgstr "" "secundarios. Desde Python 3.4, los descriptores de archivo creados por " "Python son no heredables por defecto." -#: ../Doc/library/os.rst:1663 +#: ../Doc/library/os.rst:1823 msgid "" "On UNIX, non-inheritable file descriptors are closed in child processes at " "the execution of a new program, other file descriptors are inherited." @@ -2393,7 +2625,7 @@ msgstr "" "hijos en la ejecución de un nuevo programa, otros descriptores de archivos " "sí se heredan." -#: ../Doc/library/os.rst:1666 +#: ../Doc/library/os.rst:1826 msgid "" "On Windows, non-inheritable handles and file descriptors are closed in child " "processes, except for standard streams (file descriptors 0, 1 and 2: stdin, " @@ -2412,7 +2644,7 @@ msgstr "" "archivo, excepto los flujos estándar, están cerrados, y los identificadores " "heredables sólo se heredan si el parámetro *close_fds* es ``False``." -#: ../Doc/library/os.rst:1674 +#: ../Doc/library/os.rst:1834 msgid "" "On WebAssembly platforms ``wasm32-emscripten`` and ``wasm32-wasi``, the file " "descriptor cannot be modified." @@ -2420,42 +2652,42 @@ msgstr "" "En las plataformas WebAssembly ``wasm32-emscripten`` y ``wasm32-wasi``, el " "descriptor de archivo no se puede modificar." -#: ../Doc/library/os.rst:1679 +#: ../Doc/library/os.rst:1839 msgid "" "Get the \"inheritable\" flag of the specified file descriptor (a boolean)." msgstr "" "Obtiene el indicador heredable (*inheritable*) del descriptor de archivo " "especificado (un valor booleano)." -#: ../Doc/library/os.rst:1683 +#: ../Doc/library/os.rst:1843 msgid "Set the \"inheritable\" flag of the specified file descriptor." msgstr "" "Establece el indicador heredable (*inheritable*) del descriptor de archivo " "especificado." -#: ../Doc/library/os.rst:1687 +#: ../Doc/library/os.rst:1847 msgid "Get the \"inheritable\" flag of the specified handle (a boolean)." msgstr "" "Obtiene el indicador heredable (*inheritable*) del identificador " "especificado (un valor booleano)." -#: ../Doc/library/os.rst:1689 ../Doc/library/os.rst:1695 -#: ../Doc/library/os.rst:3645 ../Doc/library/os.rst:4259 -#: ../Doc/library/os.rst:4305 +#: ../Doc/library/os.rst:1849 ../Doc/library/os.rst:1855 +#: ../Doc/library/os.rst:3924 ../Doc/library/os.rst:4577 +#: ../Doc/library/os.rst:4622 msgid ":ref:`Availability `: Windows." msgstr ":ref:`Disponibilidad `: Windows." -#: ../Doc/library/os.rst:1693 +#: ../Doc/library/os.rst:1853 msgid "Set the \"inheritable\" flag of the specified handle." msgstr "" "Establece el indicador heredable (*inheritable*) del identificador " "especificado." -#: ../Doc/library/os.rst:1701 +#: ../Doc/library/os.rst:1861 msgid "Files and Directories" msgstr "Archivos y directorios" -#: ../Doc/library/os.rst:1703 +#: ../Doc/library/os.rst:1863 msgid "" "On some Unix platforms, many of these functions support one or more of these " "features:" @@ -2463,7 +2695,7 @@ msgstr "" "En algunas plataformas Unix, muchas de estas funciones admiten una o más de " "estas características:" -#: ../Doc/library/os.rst:1708 +#: ../Doc/library/os.rst:1868 msgid "" "**specifying a file descriptor:** Normally the *path* argument provided to " "functions in the :mod:`os` module must be a string specifying a file path. " @@ -2482,7 +2714,7 @@ msgstr "" "función con el prefijo ``f`` (por ejemplo, llamará a ``fchdir`` en lugar de " "``chdir``))." -#: ../Doc/library/os.rst:1716 +#: ../Doc/library/os.rst:1876 msgid "" "You can check whether or not *path* can be specified as a file descriptor " "for a particular function on your platform using :data:`os.supports_fd`. If " @@ -2494,7 +2726,7 @@ msgstr "" "supports_fd`. Si esta funcionalidad no está disponible, su uso lanzará un :" "exc:`NotImplementedError`." -#: ../Doc/library/os.rst:1721 +#: ../Doc/library/os.rst:1881 msgid "" "If the function also supports *dir_fd* or *follow_symlinks* arguments, it's " "an error to specify one of those when supplying *path* as a file descriptor." @@ -2503,7 +2735,7 @@ msgstr "" "error especificar uno de esos al suministrar *path* como descriptor de " "archivo." -#: ../Doc/library/os.rst:1726 +#: ../Doc/library/os.rst:1886 msgid "" "**paths relative to directory descriptors:** If *dir_fd* is not ``None``, it " "should be a file descriptor referring to a directory, and the path to " @@ -2521,7 +2753,7 @@ msgstr "" "``at`` y posiblemente con el prefijo ``f`` (por ejemplo, llamará a " "``faccessat`` en lugar de ``access``)." -#: ../Doc/library/os.rst:1733 +#: ../Doc/library/os.rst:1893 msgid "" "You can check whether or not *dir_fd* is supported for a particular function " "on your platform using :data:`os.supports_dir_fd`. If it's unavailable, " @@ -2531,7 +2763,7 @@ msgstr "" "en su plataforma usando :data:`os.supports_dir_fd`. Si no está disponible, " "usarlo lanzará un :exc:`NotImplementedError`." -#: ../Doc/library/os.rst:1739 +#: ../Doc/library/os.rst:1899 msgid "" "**not following symlinks:** If *follow_symlinks* is ``False``, and the last " "element of the path to operate on is a symbolic link, the function will " @@ -2545,7 +2777,7 @@ msgstr "" "(Para los sistemas POSIX, Python llamará a la variante ``l...`` de la " "función)." -#: ../Doc/library/os.rst:1745 +#: ../Doc/library/os.rst:1905 msgid "" "You can check whether or not *follow_symlinks* is supported for a particular " "function on your platform using :data:`os.supports_follow_symlinks`. If it's " @@ -2555,7 +2787,7 @@ msgstr "" "particular en su plataforma usando :data:`os.supports_follow_symlinks`. Si " "no está disponible, usarlo lanzará un :exc:`NotImplementedError`." -#: ../Doc/library/os.rst:1753 +#: ../Doc/library/os.rst:1913 msgid "" "Use the real uid/gid to test for access to *path*. Note that most " "operations will use the effective uid/gid, therefore this routine can be " @@ -2576,7 +2808,7 @@ msgstr "" "si no. Consulte la página de manual de Unix :manpage:`access (2)` para " "obtener más información." -#: ../Doc/library/os.rst:1762 +#: ../Doc/library/os.rst:1922 msgid "" "This function can support specifying :ref:`paths relative to directory " "descriptors ` and :ref:`not following symlinks `." @@ -2585,7 +2817,7 @@ msgstr "" "descriptores de directorio ` y :ref:`no seguir los enlaces " "simbólicos `." -#: ../Doc/library/os.rst:1765 +#: ../Doc/library/os.rst:1925 msgid "" "If *effective_ids* is ``True``, :func:`access` will perform its access " "checks using the effective uid/gid instead of the real uid/gid. " @@ -2599,7 +2831,7 @@ msgstr "" "si está disponible o no usando :data:`os.supports_effective_ids`. Si no está " "disponible, usarlo lanzará un :exc:`NotImplementedError`." -#: ../Doc/library/os.rst:1773 +#: ../Doc/library/os.rst:1933 msgid "" "Using :func:`access` to check if a user is authorized to e.g. open a file " "before actually doing so using :func:`open` creates a security hole, because " @@ -2613,11 +2845,11 @@ msgstr "" "de tiempo entre verificar y abrir el archivo para manipularlo es preferible " "utilizar técnicas :term:`EAFP`. Por ejemplo::" -#: ../Doc/library/os.rst:1784 +#: ../Doc/library/os.rst:1944 msgid "is better written as::" msgstr "está mejor escrito como::" -#: ../Doc/library/os.rst:1796 +#: ../Doc/library/os.rst:1956 msgid "" "I/O operations may fail even when :func:`access` indicates that they would " "succeed, particularly for operations on network filesystems which may have " @@ -2628,12 +2860,12 @@ msgstr "" "de red que pueden tener una semántica de permisos más allá del modelo " "habitual de bits de permiso POSIX." -#: ../Doc/library/os.rst:1800 +#: ../Doc/library/os.rst:1960 msgid "Added the *dir_fd*, *effective_ids*, and *follow_symlinks* parameters." msgstr "" "Se agregaron los parámetros *dir_fd*, *effective_ids* y *follow_symlinks*." -#: ../Doc/library/os.rst:1812 +#: ../Doc/library/os.rst:1972 msgid "" "Values to pass as the *mode* parameter of :func:`access` to test the " "existence, readability, writability and executability of *path*, " @@ -2643,11 +2875,11 @@ msgstr "" "existencia, legibilidad, escritura y ejecutabilidad de *path*, " "respectivamente." -#: ../Doc/library/os.rst:1821 +#: ../Doc/library/os.rst:1981 msgid "Change the current working directory to *path*." msgstr "Cambia el directorio de trabajo actual a *path*." -#: ../Doc/library/os.rst:1823 +#: ../Doc/library/os.rst:1983 msgid "" "This function can support :ref:`specifying a file descriptor `. " "The descriptor must refer to an opened directory, not an open file." @@ -2656,7 +2888,7 @@ msgstr "" "`. El descriptor debe hacer referencia a un directorio abierto, no " "a un archivo abierto." -#: ../Doc/library/os.rst:1826 +#: ../Doc/library/os.rst:1986 msgid "" "This function can raise :exc:`OSError` and subclasses such as :exc:" "`FileNotFoundError`, :exc:`PermissionError`, and :exc:`NotADirectoryError`." @@ -2664,7 +2896,7 @@ msgstr "" "Esta función puede generar :exc:`OSError` y subclases como :exc:" "`FileNotFoundError`, :exc:`PermissionError`, y :exc:`NotADirectoryError`." -#: ../Doc/library/os.rst:1829 ../Doc/library/os.rst:1962 +#: ../Doc/library/os.rst:1989 ../Doc/library/os.rst:2122 msgid "" "Raises an :ref:`auditing event ` ``os.chdir`` with argument " "``path``." @@ -2672,14 +2904,14 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.chdir`` con argumento " "``path``." -#: ../Doc/library/os.rst:1831 +#: ../Doc/library/os.rst:1991 msgid "" "Added support for specifying *path* as a file descriptor on some platforms." msgstr "" "Se agregó soporte para especificar *path* como descriptor de archivo en " "algunas plataformas." -#: ../Doc/library/os.rst:1841 +#: ../Doc/library/os.rst:2001 msgid "" "Set the flags of *path* to the numeric *flags*. *flags* may take a " "combination (bitwise OR) of the following values (as defined in the :mod:" @@ -2689,62 +2921,74 @@ msgstr "" "una combinación (OR bit a bit) de los siguientes valores (como se define en " "el módulo :mod:`stat`):" -#: ../Doc/library/os.rst:1844 -msgid ":data:`stat.UF_NODUMP`" +#: ../Doc/library/os.rst:2004 +#, fuzzy +msgid ":const:`stat.UF_NODUMP`" msgstr ":data:`stat.UF_NODUMP`" -#: ../Doc/library/os.rst:1845 -msgid ":data:`stat.UF_IMMUTABLE`" +#: ../Doc/library/os.rst:2005 +#, fuzzy +msgid ":const:`stat.UF_IMMUTABLE`" msgstr ":data:`stat.UF_IMMUTABLE`" -#: ../Doc/library/os.rst:1846 -msgid ":data:`stat.UF_APPEND`" +#: ../Doc/library/os.rst:2006 +#, fuzzy +msgid ":const:`stat.UF_APPEND`" msgstr ":data:`stat.UF_APPEND`" -#: ../Doc/library/os.rst:1847 -msgid ":data:`stat.UF_OPAQUE`" +#: ../Doc/library/os.rst:2007 +#, fuzzy +msgid ":const:`stat.UF_OPAQUE`" msgstr ":data:`stat.UF_OPAQUE`" -#: ../Doc/library/os.rst:1848 -msgid ":data:`stat.UF_NOUNLINK`" +#: ../Doc/library/os.rst:2008 +#, fuzzy +msgid ":const:`stat.UF_NOUNLINK`" msgstr ":data:`stat.UF_NOUNLINK`" -#: ../Doc/library/os.rst:1849 -msgid ":data:`stat.UF_COMPRESSED`" +#: ../Doc/library/os.rst:2009 +#, fuzzy +msgid ":const:`stat.UF_COMPRESSED`" msgstr ":data:`stat.UF_COMPRESSED`" -#: ../Doc/library/os.rst:1850 -msgid ":data:`stat.UF_HIDDEN`" +#: ../Doc/library/os.rst:2010 +#, fuzzy +msgid ":const:`stat.UF_HIDDEN`" msgstr ":data:`stat.UF_HIDDEN`" -#: ../Doc/library/os.rst:1851 -msgid ":data:`stat.SF_ARCHIVED`" +#: ../Doc/library/os.rst:2011 +#, fuzzy +msgid ":const:`stat.SF_ARCHIVED`" msgstr ":data:`stat.SF_ARCHIVED`" -#: ../Doc/library/os.rst:1852 -msgid ":data:`stat.SF_IMMUTABLE`" +#: ../Doc/library/os.rst:2012 +#, fuzzy +msgid ":const:`stat.SF_IMMUTABLE`" msgstr ":data:`stat.SF_IMMUTABLE`" -#: ../Doc/library/os.rst:1853 -msgid ":data:`stat.SF_APPEND`" +#: ../Doc/library/os.rst:2013 +#, fuzzy +msgid ":const:`stat.SF_APPEND`" msgstr ":data:`stat.SF_APPEND`" -#: ../Doc/library/os.rst:1854 -msgid ":data:`stat.SF_NOUNLINK`" +#: ../Doc/library/os.rst:2014 +#, fuzzy +msgid ":const:`stat.SF_NOUNLINK`" msgstr ":data:`stat.SF_NOUNLINK`" -#: ../Doc/library/os.rst:1855 -msgid ":data:`stat.SF_SNAPSHOT`" +#: ../Doc/library/os.rst:2015 +#, fuzzy +msgid ":const:`stat.SF_SNAPSHOT`" msgstr ":data:`stat.SF_SNAPSHOT`" -#: ../Doc/library/os.rst:1857 +#: ../Doc/library/os.rst:2017 msgid "" "This function can support :ref:`not following symlinks `." msgstr "" "Esta función puede soportar :ref:`no seguir enlaces simbólicos " "`." -#: ../Doc/library/os.rst:1859 ../Doc/library/os.rst:1988 +#: ../Doc/library/os.rst:2019 ../Doc/library/os.rst:2148 msgid "" "Raises an :ref:`auditing event ` ``os.chflags`` with arguments " "``path``, ``flags``." @@ -2752,11 +2996,11 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.chflags`` con argumentos " "``path``, ``flags``." -#: ../Doc/library/os.rst:1863 +#: ../Doc/library/os.rst:2023 msgid "The *follow_symlinks* argument." msgstr "El argumento *follow_symlinks*." -#: ../Doc/library/os.rst:1872 +#: ../Doc/library/os.rst:2032 msgid "" "Change the mode of *path* to the numeric *mode*. *mode* may take one of the " "following values (as defined in the :mod:`stat` module) or bitwise ORed " @@ -2766,84 +3010,103 @@ msgstr "" "los siguientes valores (como se define en el módulo :mod:`stat`) o " "combinaciones OR de bit a bit de ellos:" -#: ../Doc/library/os.rst:1876 -msgid ":data:`stat.S_ISUID`" +#: ../Doc/library/os.rst:2036 +#, fuzzy +msgid ":const:`stat.S_ISUID`" msgstr ":data:`stat.S_ISUID`" -#: ../Doc/library/os.rst:1877 -msgid ":data:`stat.S_ISGID`" +#: ../Doc/library/os.rst:2037 +#, fuzzy +msgid ":const:`stat.S_ISGID`" msgstr ":data:`stat.S_ISGID`" -#: ../Doc/library/os.rst:1878 -msgid ":data:`stat.S_ENFMT`" +#: ../Doc/library/os.rst:2038 +#, fuzzy +msgid ":const:`stat.S_ENFMT`" msgstr ":data:`stat.S_ENFMT`" -#: ../Doc/library/os.rst:1879 -msgid ":data:`stat.S_ISVTX`" +#: ../Doc/library/os.rst:2039 +#, fuzzy +msgid ":const:`stat.S_ISVTX`" msgstr ":data:`stat.S_ISVTX`" -#: ../Doc/library/os.rst:1880 -msgid ":data:`stat.S_IREAD`" +#: ../Doc/library/os.rst:2040 +#, fuzzy +msgid ":const:`stat.S_IREAD`" msgstr ":data:`stat.S_IREAD`" -#: ../Doc/library/os.rst:1881 -msgid ":data:`stat.S_IWRITE`" +#: ../Doc/library/os.rst:2041 +#, fuzzy +msgid ":const:`stat.S_IWRITE`" msgstr ":data:`stat.S_IWRITE`" -#: ../Doc/library/os.rst:1882 -msgid ":data:`stat.S_IEXEC`" +#: ../Doc/library/os.rst:2042 +#, fuzzy +msgid ":const:`stat.S_IEXEC`" msgstr ":data:`stat.S_IEXEC`" -#: ../Doc/library/os.rst:1883 -msgid ":data:`stat.S_IRWXU`" +#: ../Doc/library/os.rst:2043 +#, fuzzy +msgid ":const:`stat.S_IRWXU`" msgstr ":data:`stat.S_IRWXU`" -#: ../Doc/library/os.rst:1884 -msgid ":data:`stat.S_IRUSR`" +#: ../Doc/library/os.rst:2044 +#, fuzzy +msgid ":const:`stat.S_IRUSR`" msgstr ":data:`stat.S_IRUSR`" -#: ../Doc/library/os.rst:1885 -msgid ":data:`stat.S_IWUSR`" +#: ../Doc/library/os.rst:2045 +#, fuzzy +msgid ":const:`stat.S_IWUSR`" msgstr ":data:`stat.S_IWUSR`" -#: ../Doc/library/os.rst:1886 -msgid ":data:`stat.S_IXUSR`" +#: ../Doc/library/os.rst:2046 +#, fuzzy +msgid ":const:`stat.S_IXUSR`" msgstr ":data:`stat.S_IXUSR`" -#: ../Doc/library/os.rst:1887 -msgid ":data:`stat.S_IRWXG`" +#: ../Doc/library/os.rst:2047 +#, fuzzy +msgid ":const:`stat.S_IRWXG`" msgstr ":data:`stat.S_IRWXG`" -#: ../Doc/library/os.rst:1888 -msgid ":data:`stat.S_IRGRP`" +#: ../Doc/library/os.rst:2048 +#, fuzzy +msgid ":const:`stat.S_IRGRP`" msgstr ":data:`stat.S_IRGRP`" -#: ../Doc/library/os.rst:1889 -msgid ":data:`stat.S_IWGRP`" +#: ../Doc/library/os.rst:2049 +#, fuzzy +msgid ":const:`stat.S_IWGRP`" msgstr ":data:`stat.S_IWGRP`" -#: ../Doc/library/os.rst:1890 -msgid ":data:`stat.S_IXGRP`" +#: ../Doc/library/os.rst:2050 +#, fuzzy +msgid ":const:`stat.S_IXGRP`" msgstr ":data:`stat.S_IXGRP`" -#: ../Doc/library/os.rst:1891 -msgid ":data:`stat.S_IRWXO`" +#: ../Doc/library/os.rst:2051 +#, fuzzy +msgid ":const:`stat.S_IRWXO`" msgstr ":data:`stat.S_IRWXO`" -#: ../Doc/library/os.rst:1892 -msgid ":data:`stat.S_IROTH`" +#: ../Doc/library/os.rst:2052 +#, fuzzy +msgid ":const:`stat.S_IROTH`" msgstr ":data:`stat.S_IROTH`" -#: ../Doc/library/os.rst:1893 -msgid ":data:`stat.S_IWOTH`" +#: ../Doc/library/os.rst:2053 +#, fuzzy +msgid ":const:`stat.S_IWOTH`" msgstr ":data:`stat.S_IWOTH`" -#: ../Doc/library/os.rst:1894 -msgid ":data:`stat.S_IXOTH`" +#: ../Doc/library/os.rst:2054 +#, fuzzy +msgid ":const:`stat.S_IXOTH`" msgstr ":data:`stat.S_IXOTH`" -#: ../Doc/library/os.rst:1896 ../Doc/library/os.rst:1924 -#: ../Doc/library/os.rst:3185 +#: ../Doc/library/os.rst:2056 ../Doc/library/os.rst:2084 +#: ../Doc/library/os.rst:3465 msgid "" "This function can support :ref:`specifying a file descriptor `, :" "ref:`paths relative to directory descriptors ` and :ref:`not " @@ -2853,7 +3116,7 @@ msgstr "" "`, :ref:`rutas relativas a los descriptores de directorio ` " "y :ref:`no seguir enlaces simbólicos `." -#: ../Doc/library/os.rst:1902 +#: ../Doc/library/os.rst:2062 msgid "" "Although Windows supports :func:`chmod`, you can only set the file's read-" "only flag with it (via the ``stat.S_IWRITE`` and ``stat.S_IREAD`` constants " @@ -2864,7 +3127,7 @@ msgstr "" "``stat.S_IREAD`` o un valor entero correspondiente). Todos los demás bits " "son ignorados." -#: ../Doc/library/os.rst:1911 ../Doc/library/os.rst:1938 +#: ../Doc/library/os.rst:2071 ../Doc/library/os.rst:2098 msgid "" "Added support for specifying *path* as an open file descriptor, and the " "*dir_fd* and *follow_symlinks* arguments." @@ -2872,7 +3135,7 @@ msgstr "" "Se agregó soporte para especificar *path* como un descriptor de archivo " "abierto, y los argumentos *dir_fd* y *follow_symlinks*." -#: ../Doc/library/os.rst:1921 +#: ../Doc/library/os.rst:2081 msgid "" "Change the owner and group id of *path* to the numeric *uid* and *gid*. To " "leave one of the ids unchanged, set it to -1." @@ -2880,7 +3143,7 @@ msgstr "" "Cambia el propietario y el *id* del grupo de *path* a los numéricos *uid* y " "*gid*. Para dejar uno de los identificadores sin cambios, configúrelo en -1." -#: ../Doc/library/os.rst:1928 +#: ../Doc/library/os.rst:2088 msgid "" "See :func:`shutil.chown` for a higher-level function that accepts names in " "addition to numeric ids." @@ -2888,15 +3151,15 @@ msgstr "" "Ver :func:`shutil.chown` para una función de nivel superior que acepta " "nombres además de identificadores numéricos." -#: ../Doc/library/os.rst:1942 +#: ../Doc/library/os.rst:2102 msgid "Supports a :term:`path-like object`." msgstr "Admite un :term:`objeto tipo ruta`." -#: ../Doc/library/os.rst:1948 +#: ../Doc/library/os.rst:2108 msgid "Change the root directory of the current process to *path*." msgstr "Cambia el directorio raíz del proceso actual a *path*." -#: ../Doc/library/os.rst:1958 +#: ../Doc/library/os.rst:2118 msgid "" "Change the current working directory to the directory represented by the " "file descriptor *fd*. The descriptor must refer to an opened directory, not " @@ -2907,16 +3170,16 @@ msgstr "" "directorio abierto, no a un archivo abierto. A partir de Python 3.3, esto es " "equivalente a ``os.chdir(fd)``." -#: ../Doc/library/os.rst:1969 +#: ../Doc/library/os.rst:2129 msgid "Return a string representing the current working directory." msgstr "Retorna una cadena que representa el directorio de trabajo actual." -#: ../Doc/library/os.rst:1974 +#: ../Doc/library/os.rst:2134 msgid "Return a bytestring representing the current working directory." msgstr "" "Retorna una cadena de bytes que representa el directorio de trabajo actual." -#: ../Doc/library/os.rst:1976 +#: ../Doc/library/os.rst:2136 msgid "" "The function now uses the UTF-8 encoding on Windows, rather than the ANSI " "code page: see :pep:`529` for the rationale. The function is no longer " @@ -2926,7 +3189,7 @@ msgstr "" "códigos ANSI: consulte :pep:`529` para ver la justificación. La función ya " "no está en desuso en Windows." -#: ../Doc/library/os.rst:1984 +#: ../Doc/library/os.rst:2144 msgid "" "Set the flags of *path* to the numeric *flags*, like :func:`chflags`, but do " "not follow symbolic links. As of Python 3.3, this is equivalent to ``os." @@ -2936,7 +3199,7 @@ msgstr "" "pero no siga los enlaces simbólicos. A partir de Python 3.3, esto es " "equivalente a ``os.chflags(path, flags, follow_symlinks=False)``." -#: ../Doc/library/os.rst:1998 +#: ../Doc/library/os.rst:2158 msgid "" "Change the mode of *path* to the numeric *mode*. If path is a symlink, this " "affects the symlink rather than the target. See the docs for :func:`chmod` " @@ -2949,7 +3212,7 @@ msgstr "" "*mode*. A partir de Python 3.3, esto es equivalente a ``os.chmod(path, mode, " "follow_symlinks=False)``." -#: ../Doc/library/os.rst:2012 +#: ../Doc/library/os.rst:2172 msgid "" "Change the owner and group id of *path* to the numeric *uid* and *gid*. " "This function will not follow symbolic links. As of Python 3.3, this is " @@ -2960,11 +3223,11 @@ msgstr "" "partir de Python 3.3, esto es equivalente a ``os.chown(path, uid, gid, " "follow_symlinks=False)``." -#: ../Doc/library/os.rst:2026 +#: ../Doc/library/os.rst:2186 msgid "Create a hard link pointing to *src* named *dst*." msgstr "Cree un enlace rígido que apunte a *src* llamado *dst*." -#: ../Doc/library/os.rst:2028 +#: ../Doc/library/os.rst:2188 msgid "" "This function can support specifying *src_dir_fd* and/or *dst_dir_fd* to " "supply :ref:`paths relative to directory descriptors `, and :ref:" @@ -2974,7 +3237,7 @@ msgstr "" "para proporcionar :ref:`rutas relativas a los descriptores de directorio " "`, y :ref:`no sigue enlaces simbólicos `." -#: ../Doc/library/os.rst:2032 +#: ../Doc/library/os.rst:2192 msgid "" "Raises an :ref:`auditing event ` ``os.link`` with arguments " "``src``, ``dst``, ``src_dir_fd``, ``dst_dir_fd``." @@ -2982,21 +3245,27 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.link`` con argumentos " "``src``, ``dst``, ``src_dir_fd``, ``dst_dir_fd``." -#: ../Doc/library/os.rst:2036 +#: ../Doc/library/os.rst:2194 +#, fuzzy +msgid ":ref:`Availability `: Unix, Windows, not Emscripten." +msgstr "" +":ref:`Disponibilidad `: Unix, Windows, no Emscripten, no WASI." + +#: ../Doc/library/os.rst:2196 msgid "Added Windows support." msgstr "Se agregó soporte para Windows." -#: ../Doc/library/os.rst:2039 +#: ../Doc/library/os.rst:2199 msgid "Added the *src_dir_fd*, *dst_dir_fd*, and *follow_symlinks* arguments." msgstr "" "Se agregaron los argumentos *src_dir_fd*, *dst_dir_fd* y *follow_symlinks*." -#: ../Doc/library/os.rst:2042 ../Doc/library/os.rst:2395 -#: ../Doc/library/os.rst:2432 ../Doc/library/os.rst:3107 +#: ../Doc/library/os.rst:2202 ../Doc/library/os.rst:2620 +#: ../Doc/library/os.rst:2657 ../Doc/library/os.rst:3387 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:2048 +#: ../Doc/library/os.rst:2208 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 " @@ -3011,7 +3280,7 @@ msgstr "" "llama a esta función, no se especifica si el nombre para el archivo será " "incluido." -#: ../Doc/library/os.rst:2054 +#: ../Doc/library/os.rst:2214 msgid "" "*path* may be a :term:`path-like object`. If *path* is of type ``bytes`` " "(directly or indirectly through the :class:`PathLike` interface), the " @@ -3023,7 +3292,7 @@ msgstr "" "nombres de archivo retornados también serán de tipo ``bytes``; en todas las " "demás circunstancias, serán del tipo ``str``." -#: ../Doc/library/os.rst:2059 ../Doc/library/os.rst:2480 +#: ../Doc/library/os.rst:2219 ../Doc/library/os.rst:2705 msgid "" "This function can also support :ref:`specifying a file descriptor " "`; the file descriptor must refer to a directory." @@ -3032,7 +3301,7 @@ msgstr "" "archivo `; el descriptor de archivo debe hacer referencia a un " "directorio." -#: ../Doc/library/os.rst:2062 +#: ../Doc/library/os.rst:2222 msgid "" "Raises an :ref:`auditing event ` ``os.listdir`` with argument " "``path``." @@ -3040,13 +3309,13 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.listdir`` con el " "argumento ``ruta``." -#: ../Doc/library/os.rst:2065 +#: ../Doc/library/os.rst:2225 msgid "To encode ``str`` filenames to ``bytes``, use :func:`~os.fsencode`." msgstr "" "Para codificar los nombres de archivo ``str`` en ``bytes``, use :func:`~os." "fsencode`." -#: ../Doc/library/os.rst:2069 +#: ../Doc/library/os.rst:2229 msgid "" "The :func:`scandir` function returns directory entries along with file " "attribute information, giving better performance for many common use cases." @@ -3055,19 +3324,109 @@ msgstr "" "información de atributos de archivo, lo que proporciona un mejor rendimiento " "para muchos casos de uso comunes." -#: ../Doc/library/os.rst:2073 +#: ../Doc/library/os.rst:2233 msgid "The *path* parameter became optional." msgstr "El parámetro *path* se convirtió en opcional." -#: ../Doc/library/os.rst:2076 ../Doc/library/os.rst:2966 +#: ../Doc/library/os.rst:2236 ../Doc/library/os.rst:3246 msgid "Added support for specifying *path* as an open file descriptor." msgstr "" "Se agregó soporte para especificar *path* como un descriptor de archivo " "abierto." -#: ../Doc/library/os.rst:2085 +#: ../Doc/library/os.rst:2245 +msgid "Return a list containing the names of drives on a Windows system." +msgstr "" + +#: ../Doc/library/os.rst:2247 +msgid "" +"A drive name typically looks like ``'C:\\\\'``. Not every drive name will be " +"associated with a volume, and some may be inaccessible for a variety of " +"reasons, including permissions, network connectivity or missing media. This " +"function does not test for access." +msgstr "" + +#: ../Doc/library/os.rst:2252 +msgid "May raise :exc:`OSError` if an error occurs collecting the drive names." +msgstr "" + +#: ../Doc/library/os.rst:2255 +#, fuzzy +msgid "" +"Raises an :ref:`auditing event ` ``os.listdrives`` with no " +"arguments." +msgstr "" +"Lanza un :ref:`evento de auditoría ` ``os.fork`` sin argumentos." + +#: ../Doc/library/os.rst:2257 ../Doc/library/os.rst:2281 +#: ../Doc/library/os.rst:2301 +#, fuzzy +msgid ":ref:`Availability `: Windows" +msgstr ":ref:`Disponibilidad `: Windows." + +#: ../Doc/library/os.rst:2264 +msgid "" +"Return a list containing the mount points for a volume on a Windows system." +msgstr "" + +#: ../Doc/library/os.rst:2267 +msgid "" +"*volume* must be represented as a GUID path, like those returned by :func:" +"`os.listvolumes`. Volumes may be mounted in multiple locations or not at " +"all. In the latter case, the list will be empty. Mount points that are not " +"associated with a volume will not be returned by this function." +msgstr "" + +#: ../Doc/library/os.rst:2273 +msgid "" +"The mount points return by this function will be absolute paths, and may be " +"longer than the drive name." +msgstr "" + +#: ../Doc/library/os.rst:2276 +msgid "" +"Raises :exc:`OSError` if the volume is not recognized or if an error occurs " +"collecting the paths." +msgstr "" + +#: ../Doc/library/os.rst:2279 +#, fuzzy +msgid "" +"Raises an :ref:`auditing event ` ``os.listmounts`` with argument " +"``volume``." +msgstr "" +"Lanza un :ref:`evento de auditoría ` ``os.system`` con argumento " +"``command``." + +#: ../Doc/library/os.rst:2288 +msgid "Return a list containing the volumes in the system." +msgstr "" + +#: ../Doc/library/os.rst:2290 +msgid "" +"Volumes are typically represented as a GUID path that looks like ``\\\\?" +"\\Volume{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\\``. Files can usually be " +"accessed through a GUID path, permissions allowing. However, users are " +"generally not familiar with them, and so the recommended use of this " +"function is to retrieve mount points using :func:`os.listmounts`." +msgstr "" + +#: ../Doc/library/os.rst:2297 +msgid "May raise :exc:`OSError` if an error occurs collecting the volumes." +msgstr "" + +#: ../Doc/library/os.rst:2299 +#, fuzzy +msgid "" +"Raises an :ref:`auditing event ` ``os.listvolumes`` with no " +"arguments." +msgstr "" +"Lanza un :ref:`evento de auditoría ` ``os.fork`` sin argumentos." + +#: ../Doc/library/os.rst:2308 +#, fuzzy msgid "" -"Perform the equivalent of an :c:func:`lstat` system call on the given path. " +"Perform the equivalent of an :c:func:`!lstat` system call on the given path. " "Similar to :func:`~os.stat`, but does not follow symbolic links. Return a :" "class:`stat_result` object." msgstr "" @@ -3075,7 +3434,7 @@ msgstr "" "dada. Similar a :func:`~os.stat`, pero no sigue enlaces simbólicos. Retorna " "un objeto :class:`stat_result`." -#: ../Doc/library/os.rst:2089 +#: ../Doc/library/os.rst:2312 msgid "" "On platforms that do not support symbolic links, this is an alias for :func:" "`~os.stat`." @@ -3083,7 +3442,7 @@ msgstr "" "En plataformas que no admiten enlaces simbólicos, este es un alias para :" "func:`~ os.stat`." -#: ../Doc/library/os.rst:2092 +#: ../Doc/library/os.rst:2315 msgid "" "As of Python 3.3, this is equivalent to ``os.stat(path, dir_fd=dir_fd, " "follow_symlinks=False)``." @@ -3091,9 +3450,9 @@ msgstr "" "A partir de Python 3.3, esto es equivalente a ``os.stat(path, dir_fd=dir_fd, " "follow_symlinks=False)``." -#: ../Doc/library/os.rst:2095 ../Doc/library/os.rst:2133 -#: ../Doc/library/os.rst:2198 ../Doc/library/os.rst:2226 -#: ../Doc/library/os.rst:2300 +#: ../Doc/library/os.rst:2318 ../Doc/library/os.rst:2356 +#: ../Doc/library/os.rst:2421 ../Doc/library/os.rst:2449 +#: ../Doc/library/os.rst:2523 msgid "" "This function can also support :ref:`paths relative to directory descriptors " "`." @@ -3101,16 +3460,16 @@ msgstr "" "Esta función también puede admitir :ref:`rutas relativas a descriptores de " "directorio `." -#: ../Doc/library/os.rst:2102 ../Doc/library/os.rst:2309 -#: ../Doc/library/os.rst:3100 +#: ../Doc/library/os.rst:2325 ../Doc/library/os.rst:2532 +#: ../Doc/library/os.rst:3380 msgid "Added support for Windows 6.0 (Vista) symbolic links." msgstr "Se agregó soporte para enlaces simbólicos de Windows 6.0 (Vista)." -#: ../Doc/library/os.rst:2105 +#: ../Doc/library/os.rst:2328 msgid "Added the *dir_fd* parameter." msgstr "Se agregó el parámetro *dir_fd*." -#: ../Doc/library/os.rst:2111 +#: ../Doc/library/os.rst:2334 msgid "" "On Windows, now opens reparse points that represent another path (name " "surrogates), including symbolic links and directory junctions. Other kinds " @@ -3122,11 +3481,11 @@ msgstr "" "sistema operativo resuelve otros tipos de puntos de análisis como :func:`~os." "stat`." -#: ../Doc/library/os.rst:2120 +#: ../Doc/library/os.rst:2343 msgid "Create a directory named *path* with numeric mode *mode*." msgstr "Cree un directorio llamado *path* con modo numérico *mode*." -#: ../Doc/library/os.rst:2122 +#: ../Doc/library/os.rst:2345 msgid "" "If the directory already exists, :exc:`FileExistsError` is raised. If a " "parent directory in the path does not exist, :exc:`FileNotFoundError` is " @@ -3135,7 +3494,7 @@ msgstr "" "Si el directorio ya existe, se genera :exc:`FileExistsError`. Si no existe " "un directorio principal en la ruta, se genera :exc:`FileNotFoundError`." -#: ../Doc/library/os.rst:2127 +#: ../Doc/library/os.rst:2350 msgid "" "On some systems, *mode* is ignored. Where it is used, the current umask " "value is first masked out. If bits other than the last 9 (i.e. the last 3 " @@ -3149,7 +3508,7 @@ msgstr "" "significado depende de la plataforma. En algunas plataformas, se ignoran y " "debe llamar a :func:`chmod` explícitamente para configurarlos." -#: ../Doc/library/os.rst:2136 +#: ../Doc/library/os.rst:2359 msgid "" "It is also possible to create temporary directories; see the :mod:`tempfile` " "module's :func:`tempfile.mkdtemp` function." @@ -3157,7 +3516,7 @@ msgstr "" "También es posible crear directorios temporales; vea la función :mod:" "`tempfile` del módulo :func:`tempfile.mkdtemp`." -#: ../Doc/library/os.rst:2139 ../Doc/library/os.rst:2173 +#: ../Doc/library/os.rst:2362 ../Doc/library/os.rst:2396 msgid "" "Raises an :ref:`auditing event ` ``os.mkdir`` with arguments " "``path``, ``mode``, ``dir_fd``." @@ -3165,7 +3524,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.mkdir`` con argumentos " "``ruta``, ``modo``, ``dir_fd``." -#: ../Doc/library/os.rst:2154 +#: ../Doc/library/os.rst:2377 msgid "" "Recursive directory creation function. Like :func:`mkdir`, but makes all " "intermediate-level directories needed to contain the leaf directory." @@ -3174,7 +3533,7 @@ msgstr "" "que todos los directorios de nivel intermedio sean necesarios para contener " "el directorio hoja." -#: ../Doc/library/os.rst:2157 +#: ../Doc/library/os.rst:2380 msgid "" "The *mode* parameter is passed to :func:`mkdir` for creating the leaf " "directory; see :ref:`the mkdir() description ` for how it is " @@ -3189,7 +3548,7 @@ msgstr "" "func:`makedirs`. Los bits de permiso de archivo de los directorios " "principales existentes no se modifican." -#: ../Doc/library/os.rst:2163 +#: ../Doc/library/os.rst:2386 msgid "" "If *exist_ok* is ``False`` (the default), a :exc:`FileExistsError` is raised " "if the target directory already exists." @@ -3197,7 +3556,7 @@ msgstr "" "Si *exist_ok* es ``False`` (el valor predeterminado), se genera un :exc:" "`FileExistsError` si el directorio de destino ya existe." -#: ../Doc/library/os.rst:2168 +#: ../Doc/library/os.rst:2391 msgid "" ":func:`makedirs` will become confused if the path elements to create " "include :data:`pardir` (eg. \"..\" on UNIX systems)." @@ -3205,15 +3564,15 @@ msgstr "" ":func:`makedirs` se confundirá si los elementos de ruta a crear incluyen :" "data:`pardir` (por ejemplo, \"..\" en sistemas UNIX)." -#: ../Doc/library/os.rst:2171 +#: ../Doc/library/os.rst:2394 msgid "This function handles UNC paths correctly." msgstr "Esta función maneja las rutas UNC correctamente." -#: ../Doc/library/os.rst:2175 +#: ../Doc/library/os.rst:2398 msgid "The *exist_ok* parameter." msgstr "El parámetro *exist_ok*." -#: ../Doc/library/os.rst:2180 +#: ../Doc/library/os.rst:2403 msgid "" "Before Python 3.4.1, if *exist_ok* was ``True`` and the directory existed, :" "func:`makedirs` would still raise an error if *mode* did not match the mode " @@ -3225,7 +3584,7 @@ msgstr "" "del directorio existente. Como este comportamiento era imposible de " "implementar de forma segura, se eliminó en Python 3.4.1. Ver :issue:`21082`." -#: ../Doc/library/os.rst:2188 +#: ../Doc/library/os.rst:2411 msgid "" "The *mode* argument no longer affects the file permission bits of newly " "created intermediate-level directories." @@ -3233,7 +3592,7 @@ msgstr "" "El argumento *mode* ya no afecta los bits de permiso de archivo de los " "directorios de nivel intermedio recién creados." -#: ../Doc/library/os.rst:2195 +#: ../Doc/library/os.rst:2418 msgid "" "Create a FIFO (a named pipe) named *path* with numeric mode *mode*. The " "current umask value is first masked out from the mode." @@ -3241,7 +3600,7 @@ msgstr "" "Cree una FIFO (una tubería con nombre) llamada *path* con modo numérico " "*modo*. El valor actual de umask se enmascara primero del modo." -#: ../Doc/library/os.rst:2201 +#: ../Doc/library/os.rst:2424 msgid "" "FIFOs are pipes that can be accessed like regular files. FIFOs exist until " "they are deleted (for example with :func:`os.unlink`). Generally, FIFOs are " @@ -3257,7 +3616,7 @@ msgstr "" "cliente lo abre para escribir. Tenga en cuenta que :func:`mkfifo` no abre el " "FIFO --- solo crea el punto de encuentro." -#: ../Doc/library/os.rst:2218 +#: ../Doc/library/os.rst:2441 msgid "" "Create a filesystem node (file, device special file or named pipe) named " "*path*. *mode* specifies both the permissions to use and the type of node to " @@ -3276,31 +3635,33 @@ msgstr "" "archivo especial del dispositivo recién creado (probablemente usando :func:" "`os.makedev`), de lo contrario se ignora." -#: ../Doc/library/os.rst:2240 +#: ../Doc/library/os.rst:2463 +#, fuzzy msgid "" "Extract the device major number from a raw device number (usually the :attr:" -"`st_dev` or :attr:`st_rdev` field from :c:type:`stat`)." +"`st_dev` or :attr:`st_rdev` field from :c:struct:`stat`)." msgstr "" "Extrae el número principal del dispositivo de un número de dispositivo sin " "formato (generalmente el campo :attr:`st_dev` o :attr:`st_rdev` de :c:type:" "`stat`)." -#: ../Doc/library/os.rst:2246 +#: ../Doc/library/os.rst:2469 +#, fuzzy msgid "" "Extract the device minor number from a raw device number (usually the :attr:" -"`st_dev` or :attr:`st_rdev` field from :c:type:`stat`)." +"`st_dev` or :attr:`st_rdev` field from :c:struct:`stat`)." msgstr "" "Extrae el número menor del dispositivo de un número de dispositivo sin " "formato (generalmente el campo :attr:`st_dev` o :attr:`st_rdev` de :c:type:" "`stat`)." -#: ../Doc/library/os.rst:2252 +#: ../Doc/library/os.rst:2475 msgid "Compose a raw device number from the major and minor device numbers." msgstr "" "Compone un número de dispositivo sin procesar a partir de los números de " "dispositivo mayor y menor." -#: ../Doc/library/os.rst:2257 +#: ../Doc/library/os.rst:2480 msgid "" "Return system configuration information relevant to a named file. *name* " "specifies the configuration value to retrieve; it may be a string which is " @@ -3319,15 +3680,15 @@ msgstr "" "``pathconf_names``. Para las variables de configuración no incluidas en esa " "asignación, también se acepta pasar un número entero para *name*." -#: ../Doc/library/os.rst:2270 ../Doc/library/os.rst:2959 -#: ../Doc/library/os.rst:3128 +#: ../Doc/library/os.rst:2493 ../Doc/library/os.rst:3239 +#: ../Doc/library/os.rst:3408 msgid "" "This function can support :ref:`specifying a file descriptor `." msgstr "" "Esta función puede soportar :ref:`especificando un descriptor de archivo " "`." -#: ../Doc/library/os.rst:2281 +#: ../Doc/library/os.rst:2504 msgid "" "Dictionary mapping names accepted by :func:`pathconf` and :func:`fpathconf` " "to the integer values defined for those names by the host operating system. " @@ -3338,7 +3699,7 @@ msgstr "" "operativo host. Esto se puede usar para determinar el conjunto de nombres " "conocidos por el sistema." -#: ../Doc/library/os.rst:2290 +#: ../Doc/library/os.rst:2513 msgid "" "Return a string representing the path to which the symbolic link points. " "The result may be either an absolute or relative pathname; if it is " @@ -3350,7 +3711,7 @@ msgstr "" "es relativo, se puede convertir a un nombre de ruta absoluto usando ``os." "path.join(os.path.dirname(path), result)``." -#: ../Doc/library/os.rst:2295 +#: ../Doc/library/os.rst:2518 msgid "" "If the *path* is a string object (directly or indirectly through a :class:" "`PathLike` interface), the result will also be a string object, and the call " @@ -3363,7 +3724,7 @@ msgstr "" "objeto de bytes (directa o indirectamente), el resultado será un objeto de " "bytes." -#: ../Doc/library/os.rst:2303 +#: ../Doc/library/os.rst:2526 msgid "" "When trying to resolve a path that may contain links, use :func:`~os.path." "realpath` to properly handle recursion and platform differences." @@ -3372,15 +3733,15 @@ msgstr "" "path.realpath` para manejar adecuadamente la recurrencia y las diferencias " "de plataforma." -#: ../Doc/library/os.rst:2315 +#: ../Doc/library/os.rst:2538 msgid "Accepts a :term:`path-like object` on Unix." msgstr "Acepta un :term:`path-like object` en Unix." -#: ../Doc/library/os.rst:2318 +#: ../Doc/library/os.rst:2541 msgid "Accepts a :term:`path-like object` and a bytes object on Windows." msgstr "Acepta un :term:`path-like object` y un objeto de bytes en Windows." -#: ../Doc/library/os.rst:2321 +#: ../Doc/library/os.rst:2544 msgid "" "Added support for directory junctions, and changed to return the " "substitution path (which typically includes ``\\\\?\\`` prefix) rather than " @@ -3391,18 +3752,19 @@ msgstr "" "lugar del campo opcional \"nombre de impresión\" que se retornó " "anteriormente." -#: ../Doc/library/os.rst:2328 +#: ../Doc/library/os.rst:2551 +#, fuzzy msgid "" "Remove (delete) the file *path*. If *path* is a directory, an :exc:" -"`IsADirectoryError` is raised. Use :func:`rmdir` to remove directories. If " -"the file does not exist, a :exc:`FileNotFoundError` is raised." +"`OSError` is raised. Use :func:`rmdir` to remove directories. If the file " +"does not exist, a :exc:`FileNotFoundError` is raised." msgstr "" "Quite (elimine) el archivo *path*. Si *path* es un directorio, se genera un :" "exc:`IsADirectoryError`. Utilice :func:`rmdir` para eliminar directorios. Si " "el archivo no existe, se lanza un :exc:`FileNotFoundError`." -#: ../Doc/library/os.rst:2332 ../Doc/library/os.rst:2443 -#: ../Doc/library/os.rst:3079 +#: ../Doc/library/os.rst:2555 ../Doc/library/os.rst:2668 +#: ../Doc/library/os.rst:3359 msgid "" "This function can support :ref:`paths relative to directory descriptors " "`." @@ -3410,7 +3772,7 @@ msgstr "" "Esta función puede admitir :ref:`rutas relativas a descriptores de " "directorio `." -#: ../Doc/library/os.rst:2335 +#: ../Doc/library/os.rst:2558 msgid "" "On Windows, attempting to remove a file that is in use causes an exception " "to be raised; on Unix, the directory entry is removed but the storage " @@ -3422,12 +3784,12 @@ msgstr "" "almacenamiento asignado al archivo no está disponible hasta que el archivo " "original ya no esté en uso." -#: ../Doc/library/os.rst:2339 +#: ../Doc/library/os.rst:2562 msgid "This function is semantically identical to :func:`unlink`." msgstr "Esta función es semánticamente idéntica a :func:`unlink`." -#: ../Doc/library/os.rst:2341 ../Doc/library/os.rst:2363 -#: ../Doc/library/os.rst:3150 +#: ../Doc/library/os.rst:2564 ../Doc/library/os.rst:2586 +#: ../Doc/library/os.rst:3430 msgid "" "Raises an :ref:`auditing event ` ``os.remove`` with arguments " "``path``, ``dir_fd``." @@ -3435,7 +3797,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.remove`` con argumentos " "``ruta``, ``dir_fd``." -#: ../Doc/library/os.rst:2354 +#: ../Doc/library/os.rst:2577 msgid "" "Remove directories recursively. Works like :func:`rmdir` except that, if " "the leaf directory is successfully removed, :func:`removedirs` tries to " @@ -3455,7 +3817,7 @@ msgstr "" "``'foo/bar'`` y ``'foo'`` si están vacíos. Genera :exc:`OSError` si el " "directorio hoja no se pudo eliminar con éxito." -#: ../Doc/library/os.rst:2371 +#: ../Doc/library/os.rst:2594 msgid "" "Rename the file or directory *src* to *dst*. If *dst* exists, the operation " "will fail with an :exc:`OSError` subclass in a number of cases:" @@ -3463,12 +3825,14 @@ msgstr "" "Cambia el nombre del archivo o directorio *src* a *dst*. Si *dst* existe, la " "operación fallará con una subclase :exc:`OSError` en varios casos:" -#: ../Doc/library/os.rst:2374 -msgid "On Windows, if *dst* exists a :exc:`FileExistsError` is always raised." +#: ../Doc/library/os.rst:2597 +msgid "" +"On Windows, if *dst* exists a :exc:`FileExistsError` is always raised. The " +"operation may fail if *src* and *dst* are on different filesystems. Use :" +"func:`shutil.move` to support moves to a different filesystem." msgstr "" -"En Windows, si *dst* existe a :exc:`FileExistsError` siempre se genera." -#: ../Doc/library/os.rst:2376 +#: ../Doc/library/os.rst:2601 msgid "" "On Unix, if *src* is a file and *dst* is a directory or vice-versa, an :exc:" "`IsADirectoryError` or a :exc:`NotADirectoryError` will be raised " @@ -3489,7 +3853,7 @@ msgstr "" "diferentes. Si tiene éxito, el cambio de nombre será una operación atómica " "(este es un requisito POSIX)." -#: ../Doc/library/os.rst:2385 ../Doc/library/os.rst:2425 +#: ../Doc/library/os.rst:2610 ../Doc/library/os.rst:2650 msgid "" "This function can support specifying *src_dir_fd* and/or *dst_dir_fd* to " "supply :ref:`paths relative to directory descriptors `." @@ -3498,15 +3862,15 @@ msgstr "" "para proporcionar :ref:`rutas relativas a los descriptores de directorio " "`." -#: ../Doc/library/os.rst:2388 +#: ../Doc/library/os.rst:2613 msgid "" "If you want cross-platform overwriting of the destination, use :func:" "`replace`." msgstr "" "Si desea sobrescribir multiplataforma del destino, use :func:`replace`." -#: ../Doc/library/os.rst:2390 ../Doc/library/os.rst:2411 -#: ../Doc/library/os.rst:2428 +#: ../Doc/library/os.rst:2615 ../Doc/library/os.rst:2636 +#: ../Doc/library/os.rst:2653 msgid "" "Raises an :ref:`auditing event ` ``os.rename`` with arguments " "``src``, ``dst``, ``src_dir_fd``, ``dst_dir_fd``." @@ -3514,11 +3878,11 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.rename`` con argumentos " "``src``, ``dst``, ``src_dir_fd``, ``dst_dir_fd``." -#: ../Doc/library/os.rst:2392 +#: ../Doc/library/os.rst:2617 msgid "The *src_dir_fd* and *dst_dir_fd* arguments." msgstr "Los argumentos *src_dir_fd* y *dst_dir_fd*." -#: ../Doc/library/os.rst:2401 +#: ../Doc/library/os.rst:2626 msgid "" "Recursive directory or file renaming function. Works like :func:`rename`, " "except creation of any intermediate directories needed to make the new " @@ -3533,7 +3897,7 @@ msgstr "" "segmentos de ruta más a la derecha del nombre anterior se eliminarán usando :" "func:`removeirs`." -#: ../Doc/library/os.rst:2408 +#: ../Doc/library/os.rst:2633 msgid "" "This function can fail with the new directory structure made if you lack " "permissions needed to remove the leaf directory or file." @@ -3542,11 +3906,11 @@ msgstr "" "si carece de los permisos necesarios para eliminar el directorio o archivo " "hoja." -#: ../Doc/library/os.rst:2413 +#: ../Doc/library/os.rst:2638 msgid "Accepts a :term:`path-like object` for *old* and *new*." msgstr "Acepta un :term:`path-like object` para *old* y *new*." -#: ../Doc/library/os.rst:2419 +#: ../Doc/library/os.rst:2644 msgid "" "Rename the file or directory *src* to *dst*. If *dst* is a non-empty " "directory, :exc:`OSError` will be raised. If *dst* exists and is a file, it " @@ -3561,7 +3925,7 @@ msgstr "" "diferentes. Si tiene éxito, el cambio de nombre será una operación atómica " "(este es un requisito POSIX)." -#: ../Doc/library/os.rst:2438 +#: ../Doc/library/os.rst:2663 msgid "" "Remove (delete) the directory *path*. If the directory does not exist or is " "not empty, a :exc:`FileNotFoundError` or an :exc:`OSError` is raised " @@ -3573,7 +3937,7 @@ msgstr "" "respectivamente. Para eliminar árboles de directorios completos, se puede " "utilizar :func:`shutil.rmtree`." -#: ../Doc/library/os.rst:2446 +#: ../Doc/library/os.rst:2671 msgid "" "Raises an :ref:`auditing event ` ``os.rmdir`` with arguments " "``path``, ``dir_fd``." @@ -3581,11 +3945,11 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.rmdir`` con argumentos " "``ruta``, ``dir_fd``." -#: ../Doc/library/os.rst:2448 ../Doc/library/os.rst:3152 +#: ../Doc/library/os.rst:2673 ../Doc/library/os.rst:3432 msgid "The *dir_fd* parameter." msgstr "El parámetro *dir_fd*." -#: ../Doc/library/os.rst:2457 +#: ../Doc/library/os.rst:2682 msgid "" "Return an iterator of :class:`os.DirEntry` objects corresponding to the " "entries in the directory given by *path*. The entries are yielded in " @@ -3600,7 +3964,7 @@ msgstr "" "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:2464 +#: ../Doc/library/os.rst:2689 msgid "" "Using :func:`scandir` instead of :func:`listdir` can significantly increase " "the performance of code that also needs file type or file attribute " @@ -3622,7 +3986,7 @@ msgstr "" "requiere una llamada al sistema en Unix, pero solo requiere una para enlaces " "simbólicos en Windows." -#: ../Doc/library/os.rst:2474 +#: ../Doc/library/os.rst:2699 msgid "" "*path* may be a :term:`path-like object`. If *path* is of type ``bytes`` " "(directly or indirectly through the :class:`PathLike` interface), the type " @@ -3636,7 +4000,7 @@ msgstr "" "de cada :class:`os.DirEntry` serán ``bytes``; en todas las demás " "circunstancias, serán del tipo ``str``." -#: ../Doc/library/os.rst:2483 +#: ../Doc/library/os.rst:2708 msgid "" "Raises an :ref:`auditing event ` ``os.scandir`` with argument " "``path``." @@ -3644,7 +4008,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.scandir`` con argumento " "``ruta``." -#: ../Doc/library/os.rst:2485 +#: ../Doc/library/os.rst:2710 msgid "" "The :func:`scandir` iterator supports the :term:`context manager` protocol " "and has the following method:" @@ -3652,11 +4016,11 @@ msgstr "" "El iterador :func:`scandir` admite el protocolo :term:`context manager` y " "tiene el siguiente método:" -#: ../Doc/library/os.rst:2490 +#: ../Doc/library/os.rst:2715 msgid "Close the iterator and free acquired resources." msgstr "Cierre el iterador y libere los recursos adquiridos." -#: ../Doc/library/os.rst:2492 +#: ../Doc/library/os.rst:2717 msgid "" "This is called automatically when the iterator is exhausted or garbage " "collected, or when an error happens during iterating. However it is " @@ -3667,7 +4031,7 @@ msgstr "" "aconsejable llamarlo explícitamente o utilizar la palabra clave :keyword:" "`with`." -#: ../Doc/library/os.rst:2499 +#: ../Doc/library/os.rst:2724 msgid "" "The following example shows a simple use of :func:`scandir` to display all " "the files (excluding directories) in the given *path* that don't start with " @@ -3679,7 +4043,7 @@ msgstr "" "comienzan con ``'.'``. La llamada ``entry.is_file()`` generalmente no " "realizará una llamada adicional al sistema::" -#: ../Doc/library/os.rst:2511 +#: ../Doc/library/os.rst:2736 msgid "" "On Unix-based systems, :func:`scandir` uses the system's `opendir() `_ and " @@ -3698,7 +4062,7 @@ msgstr "" "`_." -#: ../Doc/library/os.rst:2523 +#: ../Doc/library/os.rst:2748 msgid "" "Added support for the :term:`context manager` protocol and the :func:" "`~scandir.close()` method. If a :func:`scandir` iterator is neither " @@ -3709,16 +4073,16 @@ msgstr "" "func:`~scandir.close()`. Si un iterador :func:`scandir` no está agotado ni " "cerrado explícitamente, se emitirá a :exc:`ResourceWarning` en su destructor." -#: ../Doc/library/os.rst:2529 +#: ../Doc/library/os.rst:2754 msgid "The function accepts a :term:`path-like object`." msgstr "La función acepta un :term:`path-like object`." -#: ../Doc/library/os.rst:2531 +#: ../Doc/library/os.rst:2756 msgid "Added support for :ref:`file descriptors ` on Unix." msgstr "" "Soporte agregado para :ref:`descriptores de archivo ` en Unix." -#: ../Doc/library/os.rst:2537 +#: ../Doc/library/os.rst:2762 msgid "" "Object yielded by :func:`scandir` to expose the file path and other file " "attributes of a directory entry." @@ -3726,7 +4090,7 @@ msgstr "" "Objeto generado por :func:`scandir` para exponer la ruta del archivo y otros " "atributos de archivo de una entrada de directorio." -#: ../Doc/library/os.rst:2540 +#: ../Doc/library/os.rst:2765 msgid "" ":func:`scandir` will provide as much of this information as possible without " "making additional system calls. When a ``stat()`` or ``lstat()`` system call " @@ -3737,7 +4101,7 @@ msgstr "" "``stat()`` o ``lstat()``, el objeto ``os.DirEntry`` almacenará en caché el " "resultado." -#: ../Doc/library/os.rst:2544 +#: ../Doc/library/os.rst:2769 msgid "" "``os.DirEntry`` instances are not intended to be stored in long-lived data " "structures; if you know the file metadata has changed or if a long time has " @@ -3750,7 +4114,7 @@ msgstr "" "func:`scandir`, llame a ``os.stat(entry.path)`` para obtener información " "actualizada." -#: ../Doc/library/os.rst:2549 +#: ../Doc/library/os.rst:2774 msgid "" "Because the ``os.DirEntry`` methods can make operating system calls, they " "may also raise :exc:`OSError`. If you need very fine-grained control over " @@ -3762,7 +4126,7 @@ msgstr "" "preciso sobre los errores, puede detectar :exc:`OSError` cuando llame a uno " "de los métodos ``os.DirEntry`` y maneje según corresponda." -#: ../Doc/library/os.rst:2554 +#: ../Doc/library/os.rst:2779 msgid "" "To be directly usable as a :term:`path-like object`, ``os.DirEntry`` " "implements the :class:`PathLike` interface." @@ -3770,20 +4134,20 @@ msgstr "" "Para ser directamente utilizable como :term:`path-like object`, ``os." "DirEntry`` implementa la interfaz :class:`PathLike`." -#: ../Doc/library/os.rst:2557 +#: ../Doc/library/os.rst:2782 msgid "Attributes and methods on a ``os.DirEntry`` instance are as follows:" msgstr "" "Los atributos y métodos en una instancia de ``os.DirEntry`` son los " "siguientes:" -#: ../Doc/library/os.rst:2561 +#: ../Doc/library/os.rst:2786 msgid "" "The entry's base filename, relative to the :func:`scandir` *path* argument." msgstr "" "El nombre de archivo base de la entrada, relativo al argumento :func:" "`scandir` *path*." -#: ../Doc/library/os.rst:2564 +#: ../Doc/library/os.rst:2789 msgid "" "The :attr:`name` attribute will be ``bytes`` if the :func:`scandir` *path* " "argument is of type ``bytes`` and ``str`` otherwise. Use :func:`~os." @@ -3793,7 +4157,7 @@ msgstr "" "*path* es de tipo ``bytes`` y ``str`` de lo contrario. Utilice :func:`~os." "fsdecode` para decodificar los nombres de archivo de bytes." -#: ../Doc/library/os.rst:2570 +#: ../Doc/library/os.rst:2795 msgid "" "The entry's full path name: equivalent to ``os.path.join(scandir_path, entry." "name)`` where *scandir_path* is the :func:`scandir` *path* argument. The " @@ -3809,7 +4173,7 @@ msgstr "" "`descriptor de archivo `, el atributo :attr:`path` es el mismo que " "el atributo :attr:`name`." -#: ../Doc/library/os.rst:2577 +#: ../Doc/library/os.rst:2802 msgid "" "The :attr:`path` attribute will be ``bytes`` if the :func:`scandir` *path* " "argument is of type ``bytes`` and ``str`` otherwise. Use :func:`~os." @@ -3819,11 +4183,11 @@ msgstr "" "*path* es de tipo ``bytes`` y ``str`` de lo contrario. Utilice :func:`~os." "fsdecode` para decodificar los nombres de archivo de bytes." -#: ../Doc/library/os.rst:2583 +#: ../Doc/library/os.rst:2808 msgid "Return the inode number of the entry." msgstr "Retorna el número de inodo de la entrada." -#: ../Doc/library/os.rst:2585 +#: ../Doc/library/os.rst:2810 msgid "" "The result is cached on the ``os.DirEntry`` object. Use ``os.stat(entry." "path, follow_symlinks=False).st_ino`` to fetch up-to-date information." @@ -3832,7 +4196,7 @@ msgstr "" "stat(entry.path, follow_symlinks=False).st_ino`` para obtener información " "actualizada." -#: ../Doc/library/os.rst:2589 +#: ../Doc/library/os.rst:2814 msgid "" "On the first, uncached call, a system call is required on Windows but not on " "Unix." @@ -3840,7 +4204,7 @@ msgstr "" "En la primera llamada no almacenada en caché, se requiere una llamada del " "sistema en Windows pero no en Unix." -#: ../Doc/library/os.rst:2594 +#: ../Doc/library/os.rst:2819 msgid "" "Return ``True`` if this entry is a directory or a symbolic link pointing to " "a directory; return ``False`` if the entry is or points to any other kind of " @@ -3850,7 +4214,7 @@ msgstr "" "apunta a un directorio; retorna ``False`` si la entrada es o apunta a " "cualquier otro tipo de archivo, o si ya no existe." -#: ../Doc/library/os.rst:2598 +#: ../Doc/library/os.rst:2823 msgid "" "If *follow_symlinks* is ``False``, return ``True`` only if this entry is a " "directory (without following symlinks); return ``False`` if the entry is any " @@ -3860,7 +4224,7 @@ msgstr "" "un directorio (sin seguir los enlaces simbólicos); retorna ``False`` si la " "entrada es cualquier otro tipo de archivo o si ya no existe." -#: ../Doc/library/os.rst:2602 +#: ../Doc/library/os.rst:2827 msgid "" "The result is cached on the ``os.DirEntry`` object, with a separate cache " "for *follow_symlinks* ``True`` and ``False``. Call :func:`os.stat` along " @@ -3870,7 +4234,7 @@ msgstr "" "separado para *follow_symlinks* ``True`` y ``False``. Llame a :func:`os." "stat` junto con :func:`stat.S_ISDIR` para obtener información actualizada." -#: ../Doc/library/os.rst:2606 +#: ../Doc/library/os.rst:2831 msgid "" "On the first, uncached call, no system call is required in most cases. " "Specifically, for non-symlinks, neither Windows or Unix require a system " @@ -3887,7 +4251,7 @@ msgstr "" "simbólico, se requerirá una llamada al sistema para seguir el enlace " "simbólico a menos que *follow_symlinks* sea ``False``." -#: ../Doc/library/os.rst:2613 ../Doc/library/os.rst:2643 +#: ../Doc/library/os.rst:2838 ../Doc/library/os.rst:2868 msgid "" "This method can raise :exc:`OSError`, such as :exc:`PermissionError`, but :" "exc:`FileNotFoundError` is caught and not raised." @@ -3895,7 +4259,7 @@ msgstr "" "Este método puede generar :exc:`OSError`, como :exc:`PermissionError`, pero :" "exc:`FileNotFoundError` se captura y no se genera." -#: ../Doc/library/os.rst:2618 +#: ../Doc/library/os.rst:2843 msgid "" "Return ``True`` if this entry is a file or a symbolic link pointing to a " "file; return ``False`` if the entry is or points to a directory or other non-" @@ -3905,7 +4269,7 @@ msgstr "" "apunta a un archivo; retorna ``False`` si la entrada es o apunta a un " "directorio u otra entrada que no sea de archivo, o si ya no existe." -#: ../Doc/library/os.rst:2622 +#: ../Doc/library/os.rst:2847 msgid "" "If *follow_symlinks* is ``False``, return ``True`` only if this entry is a " "file (without following symlinks); return ``False`` if the entry is a " @@ -3916,7 +4280,7 @@ msgstr "" "entrada es un directorio u otra entrada que no sea de archivo, o si ya no " "existe." -#: ../Doc/library/os.rst:2626 +#: ../Doc/library/os.rst:2851 msgid "" "The result is cached on the ``os.DirEntry`` object. Caching, system calls " "made, and exceptions raised are as per :func:`~os.DirEntry.is_dir`." @@ -3925,7 +4289,7 @@ msgstr "" "almacenamiento en caché, las llamadas realizadas al sistema y las " "excepciones generadas son las siguientes :func:`~os.DirEntry.is_dir`." -#: ../Doc/library/os.rst:2631 +#: ../Doc/library/os.rst:2856 msgid "" "Return ``True`` if this entry is a symbolic link (even if broken); return " "``False`` if the entry points to a directory or any kind of file, or if it " @@ -3935,7 +4299,7 @@ msgstr "" "roto); retorna ``False`` si la entrada apunta a un directorio o cualquier " "tipo de archivo, o si ya no existe." -#: ../Doc/library/os.rst:2635 +#: ../Doc/library/os.rst:2860 msgid "" "The result is cached on the ``os.DirEntry`` object. Call :func:`os.path." "islink` to fetch up-to-date information." @@ -3943,7 +4307,7 @@ msgstr "" "El resultado se almacena en caché en el objeto ``os.DirEntry``. Llame a :" "func:`os.path.islink` para obtener información actualizada." -#: ../Doc/library/os.rst:2638 +#: ../Doc/library/os.rst:2863 msgid "" "On the first, uncached call, no system call is required in most cases. " "Specifically, neither Windows or Unix require a system call, except on " @@ -3956,7 +4320,27 @@ msgstr "" "Unix, como los sistemas de archivos de red, que retornan ``dirent.d_type == " "DT_UNKNOWN``." -#: ../Doc/library/os.rst:2648 +#: ../Doc/library/os.rst:2873 +#, fuzzy +msgid "" +"Return ``True`` if this entry is a junction (even if broken); return " +"``False`` if the entry points to a regular directory, any kind of file, a " +"symlink, or if it doesn't exist anymore." +msgstr "" +"Retorna ``True`` si esta entrada es un enlace simbólico (incluso si está " +"roto); retorna ``False`` si la entrada apunta a un directorio o cualquier " +"tipo de archivo, o si ya no existe." + +#: ../Doc/library/os.rst:2877 +#, fuzzy +msgid "" +"The result is cached on the ``os.DirEntry`` object. Call :func:`os.path." +"isjunction` to fetch up-to-date information." +msgstr "" +"El resultado se almacena en caché en el objeto ``os.DirEntry``. Llame a :" +"func:`os.path.islink` para obtener información actualizada." + +#: ../Doc/library/os.rst:2884 msgid "" "Return a :class:`stat_result` object for this entry. This method follows " "symbolic links by default; to stat a symbolic link add the " @@ -3966,7 +4350,7 @@ msgstr "" "sigue enlaces simbólicos por defecto; para crear un enlace simbólico agregue " "el argumento ``follow_symlinks=False``." -#: ../Doc/library/os.rst:2652 +#: ../Doc/library/os.rst:2888 msgid "" "On Unix, this method always requires a system call. On Windows, it only " "requires a system call if *follow_symlinks* is ``True`` and the entry is a " @@ -3977,7 +4361,7 @@ msgstr "" "entrada es un punto de análisis (por ejemplo, un enlace simbólico o una " "unión de directorio)." -#: ../Doc/library/os.rst:2657 +#: ../Doc/library/os.rst:2893 msgid "" "On Windows, the ``st_ino``, ``st_dev`` and ``st_nlink`` attributes of the :" "class:`stat_result` are always set to zero. Call :func:`os.stat` to get " @@ -3987,7 +4371,7 @@ msgstr "" "`stat_result` siempre se establecen en cero. Llame a :func:`os.stat` para " "obtener estos atributos." -#: ../Doc/library/os.rst:2661 +#: ../Doc/library/os.rst:2897 msgid "" "The result is cached on the ``os.DirEntry`` object, with a separate cache " "for *follow_symlinks* ``True`` and ``False``. Call :func:`os.stat` to fetch " @@ -3997,19 +4381,20 @@ msgstr "" "separado para *follow_symlinks* ``True`` y ``False``. Llame a :func:`os." "stat` para obtener información actualizada." -#: ../Doc/library/os.rst:2665 +#: ../Doc/library/os.rst:2901 +#, fuzzy msgid "" "Note that there is a nice correspondence between several attributes and " "methods of ``os.DirEntry`` and of :class:`pathlib.Path`. In particular, the " "``name`` attribute has the same meaning, as do the ``is_dir()``, " -"``is_file()``, ``is_symlink()`` and ``stat()`` methods." +"``is_file()``, ``is_symlink()``, ``is_junction()``, and ``stat()`` methods." msgstr "" "Tenga en cuenta que existe una buena correspondencia entre varios atributos " "y métodos de ``os.DirEntry`` y de :class:`pathlib.Path`. En particular, el " "atributo ``name`` tiene el mismo significado, al igual que los métodos " "``is_dir()``, ``is_file()``, ``is_symlink()`` y ``stat()``." -#: ../Doc/library/os.rst:2673 +#: ../Doc/library/os.rst:2909 msgid "" "Added support for the :class:`~os.PathLike` interface. Added support for :" "class:`bytes` paths on Windows." @@ -4017,7 +4402,15 @@ msgstr "" "Se agregó soporte para la interfaz :class:`~os.PathLike`. Se agregó soporte " "para rutas de :class:`bytes` en Windows." -#: ../Doc/library/os.rst:2680 +#: ../Doc/library/os.rst:2913 +msgid "" +"The ``st_ctime`` attribute of a stat result is deprecated on Windows. The " +"file creation time is properly available as ``st_birthtime``, and in the " +"future ``st_ctime`` may be changed to return zero or the metadata change " +"time, if available." +msgstr "" + +#: ../Doc/library/os.rst:2922 msgid "" "Get the status of a file or a file descriptor. Perform the equivalent of a :" "c:func:`stat` system call on the given path. *path* may be specified as " @@ -4031,7 +4424,7 @@ msgstr "" "través de la interfaz :class:`PathLike`, o como un descriptor de archivo " "abierto. Retorna un objeto :class:`stat_result`." -#: ../Doc/library/os.rst:2686 +#: ../Doc/library/os.rst:2928 msgid "" "This function normally follows symlinks; to stat a symlink add the argument " "``follow_symlinks=False``, or use :func:`lstat`." @@ -4040,9 +4433,9 @@ msgstr "" "simbólico agregue el argumento ``follow_symlinks=False``, o use :func:" "`lstat`." -#: ../Doc/library/os.rst:2689 ../Doc/library/os.rst:3518 -#: ../Doc/library/os.rst:3534 ../Doc/library/os.rst:3550 -#: ../Doc/library/os.rst:3570 +#: ../Doc/library/os.rst:2931 ../Doc/library/os.rst:3798 +#: ../Doc/library/os.rst:3814 ../Doc/library/os.rst:3830 +#: ../Doc/library/os.rst:3850 msgid "" "This function can support :ref:`specifying a file descriptor ` and :" "ref:`not following symlinks `." @@ -4050,7 +4443,7 @@ msgstr "" "Esta función puede soportar :ref:`especificando un descriptor de archivo " "` y :ref:`no siguen enlaces simbólicos `." -#: ../Doc/library/os.rst:2692 +#: ../Doc/library/os.rst:2934 msgid "" "On Windows, passing ``follow_symlinks=False`` will disable following all " "name-surrogate reparse points, which includes symlinks and directory " @@ -4075,7 +4468,7 @@ msgstr "" "`lstat` en el resultado. Esto no se aplica a enlaces simbólicos o puntos de " "unión colgantes, lo que lanzará las excepciones habituales." -#: ../Doc/library/os.rst:2705 ../Doc/library/os.rst:3438 +#: ../Doc/library/os.rst:2947 ../Doc/library/os.rst:3718 msgid "Example::" msgstr "" "El diseño de todos los módulos incorporados de Python dependientes del " @@ -4084,11 +4477,11 @@ msgstr "" "estadísticas sobre la ruta (*path*) en el mismo formato (lo que sucede " "originalmente con la interfaz POSIX)." -#: ../Doc/library/os.rst:2718 +#: ../Doc/library/os.rst:2960 msgid ":func:`fstat` and :func:`lstat` functions." msgstr ":func:`fstat` y funciones :func:`lstat`." -#: ../Doc/library/os.rst:2720 +#: ../Doc/library/os.rst:2962 msgid "" "Added the *dir_fd* and *follow_symlinks* arguments, specifying a file " "descriptor instead of a path." @@ -4096,7 +4489,7 @@ msgstr "" "Se agregaron los argumentos *dir_fd* y *follow_symlinks*, especificando un " "descriptor de archivo en lugar de una ruta." -#: ../Doc/library/os.rst:2727 +#: ../Doc/library/os.rst:2969 msgid "" "On Windows, all reparse points that can be resolved by the operating system " "are now followed, and passing ``follow_symlinks=False`` disables following " @@ -4112,9 +4505,10 @@ msgstr "" "información de la ruta original como si se hubiera especificado " "``follow_symlinks=False`` en lugar de generar un error." -#: ../Doc/library/os.rst:2738 +#: ../Doc/library/os.rst:2980 +#, fuzzy msgid "" -"Object whose attributes correspond roughly to the members of the :c:type:" +"Object whose attributes correspond roughly to the members of the :c:struct:" "`stat` structure. It is used for the result of :func:`os.stat`, :func:`os." "fstat` and :func:`os.lstat`." msgstr "" @@ -4122,15 +4516,15 @@ msgstr "" "estructura :c:type:`stat`. Se utiliza para el resultado de :func:`os.stat`, :" "func:`os.fstat` y :func:`os.lstat`." -#: ../Doc/library/os.rst:2742 +#: ../Doc/library/os.rst:2984 msgid "Attributes:" msgstr "Atributos:" -#: ../Doc/library/os.rst:2746 +#: ../Doc/library/os.rst:2988 msgid "File mode: file type and file mode bits (permissions)." msgstr "Modo de archivo: tipo de archivo y bits de modo de archivo (permisos)." -#: ../Doc/library/os.rst:2750 +#: ../Doc/library/os.rst:2992 msgid "" "Platform dependent, but if non-zero, uniquely identifies the file for a " "given value of ``st_dev``. Typically:" @@ -4138,11 +4532,11 @@ msgstr "" "Dependiendo de la plataforma, pero si no es cero, identifica de forma " "exclusiva el archivo para un valor dado de ``st_dev``. Típicamente:" -#: ../Doc/library/os.rst:2753 +#: ../Doc/library/os.rst:2995 msgid "the inode number on Unix," msgstr "el número de inodo en Unix," -#: ../Doc/library/os.rst:2754 +#: ../Doc/library/os.rst:2996 msgid "" "the `file index `_ on " "Windows" @@ -4150,23 +4544,23 @@ msgstr "" "el `índice del archivo `_ " "en Windows" -#: ../Doc/library/os.rst:2760 +#: ../Doc/library/os.rst:3002 msgid "Identifier of the device on which this file resides." msgstr "Identificador del dispositivo en el que reside este archivo." -#: ../Doc/library/os.rst:2764 +#: ../Doc/library/os.rst:3006 msgid "Number of hard links." msgstr "Número de enlaces duros." -#: ../Doc/library/os.rst:2768 +#: ../Doc/library/os.rst:3010 msgid "User identifier of the file owner." msgstr "Identificador de usuario del propietario del archivo." -#: ../Doc/library/os.rst:2772 +#: ../Doc/library/os.rst:3014 msgid "Group identifier of the file owner." msgstr "Identificador de grupo del propietario del archivo." -#: ../Doc/library/os.rst:2776 +#: ../Doc/library/os.rst:3018 msgid "" "Size of the file in bytes, if it is a regular file or a symbolic link. The " "size of a symbolic link is the length of the pathname it contains, without a " @@ -4176,37 +4570,37 @@ msgstr "" "El tamaño de un enlace simbólico es la longitud del nombre de ruta que " "contiene, sin un byte nulo de terminación." -#: ../Doc/library/os.rst:2780 +#: ../Doc/library/os.rst:3022 msgid "Timestamps:" msgstr "Marcas de tiempo:" -#: ../Doc/library/os.rst:2784 +#: ../Doc/library/os.rst:3026 msgid "Time of most recent access expressed in seconds." msgstr "Tiempo de acceso más reciente expresado en segundos." -#: ../Doc/library/os.rst:2788 +#: ../Doc/library/os.rst:3030 msgid "Time of most recent content modification expressed in seconds." msgstr "" "Tiempo de modificación de contenido más reciente expresado en segundos." -#: ../Doc/library/os.rst:2792 ../Doc/library/os.rst:2808 -msgid "Platform dependent:" -msgstr "Depende de la plataforma:" - -#: ../Doc/library/os.rst:2794 ../Doc/library/os.rst:2810 -msgid "the time of most recent metadata change on Unix," -msgstr "el momento del cambio de metadatos más reciente en Unix," +#: ../Doc/library/os.rst:3034 +#, fuzzy +msgid "Time of most recent metadata change expressed in seconds." +msgstr "Tiempo de acceso más reciente expresado en segundos." -#: ../Doc/library/os.rst:2795 -msgid "the time of creation on Windows, expressed in seconds." -msgstr "el tiempo de creación en Windows, expresado en segundos." +#: ../Doc/library/os.rst:3036 +msgid "" +"``st_ctime`` is deprecated on Windows. Use ``st_birthtime`` for the file " +"creation time. In the future, ``st_ctime`` will contain the time of the most " +"recent metadata change, as for other platforms." +msgstr "" -#: ../Doc/library/os.rst:2799 +#: ../Doc/library/os.rst:3043 msgid "Time of most recent access expressed in nanoseconds as an integer." msgstr "" "Tiempo de acceso más reciente expresado en nanosegundos como un entero." -#: ../Doc/library/os.rst:2803 +#: ../Doc/library/os.rst:3047 msgid "" "Time of most recent content modification expressed in nanoseconds as an " "integer." @@ -4214,19 +4608,46 @@ msgstr "" "Hora de la modificación de contenido más reciente expresada en nanosegundos " "como un entero." -#: ../Doc/library/os.rst:2811 +#: ../Doc/library/os.rst:3052 +#, fuzzy +msgid "" +"Time of most recent metadata change expressed in nanoseconds as an integer." +msgstr "" +"Tiempo de acceso más reciente expresado en nanosegundos como un entero." + +#: ../Doc/library/os.rst:3055 +msgid "" +"``st_ctime_ns`` is deprecated on Windows. Use ``st_birthtime_ns`` for the " +"file creation time. In the future, ``st_ctime`` will contain the time of the " +"most recent metadata change, as for other platforms." +msgstr "" + +#: ../Doc/library/os.rst:3062 msgid "" -"the time of creation on Windows, expressed in nanoseconds as an integer." +"Time of file creation expressed in seconds. This attribute is not always " +"available, and may raise :exc:`AttributeError`." msgstr "" -"el tiempo de creación en Windows, expresado en nanosegundos como un entero." -#: ../Doc/library/os.rst:2816 +#: ../Doc/library/os.rst:3065 +#, fuzzy +msgid "``st_birthtime`` is now available on Windows." +msgstr "Esta función no está disponible en MacOS." + +#: ../Doc/library/os.rst:3070 +msgid "" +"Time of file creation expressed in nanoseconds as an integer. This attribute " +"is not always available, and may raise :exc:`AttributeError`." +msgstr "" + +#: ../Doc/library/os.rst:3078 +#, fuzzy msgid "" -"The exact meaning and resolution of the :attr:`st_atime`, :attr:`st_mtime`, " -"and :attr:`st_ctime` attributes depend on the operating system and the file " -"system. For example, on Windows systems using the FAT or FAT32 file " -"systems, :attr:`st_mtime` has 2-second resolution, and :attr:`st_atime` has " -"only 1-day resolution. See your operating system documentation for details." +"The exact meaning and resolution of the :attr:`st_atime`, :attr:`st_mtime`, :" +"attr:`st_ctime` and :attr:`st_birthtime` attributes depend on the operating " +"system and the file system. For example, on Windows systems using the FAT32 " +"file systems, :attr:`st_mtime` has 2-second resolution, and :attr:`st_atime` " +"has only 1-day resolution. See your operating system documentation for " +"details." msgstr "" "El significado exacto y la resolución de los atributos :attr:`st_atime`, :" "attr:`st_mtime` y :attr:`st_ctime` dependen del sistema operativo y del " @@ -4235,15 +4656,18 @@ msgstr "" "segundos y :attr:`st_atime` tiene una resolución de solo 1 día. Consulte la " "documentación de su sistema operativo para más detalles." -#: ../Doc/library/os.rst:2823 +#: ../Doc/library/os.rst:3085 +#, fuzzy msgid "" -"Similarly, although :attr:`st_atime_ns`, :attr:`st_mtime_ns`, and :attr:" -"`st_ctime_ns` are always expressed in nanoseconds, many systems do not " -"provide nanosecond precision. On systems that do provide nanosecond " -"precision, the floating-point object used to store :attr:`st_atime`, :attr:" -"`st_mtime`, and :attr:`st_ctime` cannot preserve all of it, and as such will " -"be slightly inexact. If you need the exact timestamps you should always use :" -"attr:`st_atime_ns`, :attr:`st_mtime_ns`, and :attr:`st_ctime_ns`." +"Similarly, although :attr:`st_atime_ns`, :attr:`st_mtime_ns`, :attr:" +"`st_ctime_ns` and :attr:`st_birthtime_ns` are always expressed in " +"nanoseconds, many systems do not provide nanosecond precision. On systems " +"that do provide nanosecond precision, the floating-point object used to " +"store :attr:`st_atime`, :attr:`st_mtime`, :attr:`st_ctime` and :attr:" +"`st_birthtime` cannot preserve all of it, and as such will be slightly " +"inexact. If you need the exact timestamps you should always use :attr:" +"`st_atime_ns`, :attr:`st_mtime_ns`, :attr:`st_ctime_ns` and :attr:" +"`st_birthtime_ns`." msgstr "" "De manera similar, aunque :attr:`st_atime_ns`, :attr:`st_mtime_ns` y :attr:" "`st_ctime_ns` siempre se expresan en nanosegundos, muchos sistemas no " @@ -4254,7 +4678,7 @@ msgstr "" "marcas de tiempo exactas, siempre debe usar :attr:`st_atime_ns`, :attr:" "`st_mtime_ns` y :attr:`st_ctime_ns`." -#: ../Doc/library/os.rst:2832 +#: ../Doc/library/os.rst:3095 msgid "" "On some Unix systems (such as Linux), the following attributes may also be " "available:" @@ -4262,7 +4686,7 @@ msgstr "" "En algunos sistemas Unix (como Linux), los siguientes atributos también " "pueden estar disponibles:" -#: ../Doc/library/os.rst:2837 +#: ../Doc/library/os.rst:3100 msgid "" "Number of 512-byte blocks allocated for file. This may be smaller than :attr:" "`st_size`/512 when the file has holes." @@ -4270,7 +4694,7 @@ msgstr "" "Número de bloques de 512 bytes asignados para el archivo. Esto puede ser más " "pequeño que :attr:`st_size` / 512 cuando el archivo tiene agujeros." -#: ../Doc/library/os.rst:2842 +#: ../Doc/library/os.rst:3105 msgid "" "\"Preferred\" blocksize for efficient file system I/O. Writing to a file in " "smaller chunks may cause an inefficient read-modify-rewrite." @@ -4279,15 +4703,15 @@ msgstr "" "archivos. Escribir en un archivo en fragmentos más pequeños puede causar una " "lectura-modificación-reescritura ineficiente." -#: ../Doc/library/os.rst:2847 +#: ../Doc/library/os.rst:3110 msgid "Type of device if an inode device." msgstr "Tipo de dispositivo si es un dispositivo inodo." -#: ../Doc/library/os.rst:2851 +#: ../Doc/library/os.rst:3114 msgid "User defined flags for file." msgstr "Indicadores definidos por el usuario para el archivo." -#: ../Doc/library/os.rst:2853 +#: ../Doc/library/os.rst:3116 msgid "" "On other Unix systems (such as FreeBSD), the following attributes may be " "available (but may be only filled out if root tries to use them):" @@ -4295,22 +4719,18 @@ msgstr "" "En otros sistemas Unix (como FreeBSD), los siguientes atributos pueden estar " "disponibles (pero solo se pueden completar si la raíz intenta usarlos):" -#: ../Doc/library/os.rst:2858 +#: ../Doc/library/os.rst:3121 msgid "File generation number." msgstr "Número de generación de archivos." -#: ../Doc/library/os.rst:2862 -msgid "Time of file creation." -msgstr "Hora de creación del archivo." - -#: ../Doc/library/os.rst:2864 +#: ../Doc/library/os.rst:3123 msgid "" "On Solaris and derivatives, the following attributes may also be available:" msgstr "" "En Solaris y derivados, los siguientes atributos también pueden estar " "disponibles:" -#: ../Doc/library/os.rst:2869 +#: ../Doc/library/os.rst:3128 msgid "" "String that uniquely identifies the type of the filesystem that contains the " "file." @@ -4318,67 +4738,72 @@ msgstr "" "Cadena que identifica de forma exclusiva el tipo de sistema de archivos que " "contiene el archivo." -#: ../Doc/library/os.rst:2872 +#: ../Doc/library/os.rst:3131 msgid "On macOS systems, the following attributes may also be available:" msgstr "" "En los sistemas macOS, los siguientes atributos también pueden estar " "disponibles:" -#: ../Doc/library/os.rst:2876 +#: ../Doc/library/os.rst:3135 msgid "Real size of the file." msgstr "Tamaño real del archivo." -#: ../Doc/library/os.rst:2880 +#: ../Doc/library/os.rst:3139 msgid "Creator of the file." msgstr "Creador del archivo." -#: ../Doc/library/os.rst:2884 +#: ../Doc/library/os.rst:3143 msgid "File type." msgstr "Tipo de archivo." -#: ../Doc/library/os.rst:2886 +#: ../Doc/library/os.rst:3145 msgid "On Windows systems, the following attributes are also available:" msgstr "" "En los sistemas Windows, los siguientes atributos también están disponibles:" -#: ../Doc/library/os.rst:2890 +#: ../Doc/library/os.rst:3149 +#, fuzzy msgid "" "Windows file attributes: ``dwFileAttributes`` member of the " -"``BY_HANDLE_FILE_INFORMATION`` structure returned by :c:func:" -"`GetFileInformationByHandle`. See the ``FILE_ATTRIBUTE_*`` constants in the :" -"mod:`stat` module." +"``BY_HANDLE_FILE_INFORMATION`` structure returned by :c:func:`!" +"GetFileInformationByHandle`. See the :const:`!FILE_ATTRIBUTE_* ` constants in the :mod:`stat` module." msgstr "" "Atributos del archivo de Windows: miembro ``dwFileAttributes`` de la " "estructura ``BY_HANDLE_FILE_INFORMATION`` retornado por :c:func:" "`GetFileInformationByHandle`. Vea las constantes ``FILE_ATTRIBUTE_*`` en el " "módulo :mod:`stat`." -#: ../Doc/library/os.rst:2897 +#: ../Doc/library/os.rst:3157 +#, fuzzy msgid "" -"When :attr:`st_file_attributes` has the ``FILE_ATTRIBUTE_REPARSE_POINT`` " -"set, this field contains the tag identifying the type of reparse point. See " -"the ``IO_REPARSE_TAG_*`` constants in the :mod:`stat` module." +"When :attr:`st_file_attributes` has the :const:`~stat." +"FILE_ATTRIBUTE_REPARSE_POINT` set, this field contains the tag identifying " +"the type of reparse point. See the :const:`IO_REPARSE_TAG_* ` constants in the :mod:`stat` module." msgstr "" "Cuando :attr:`st_file_attributes` tiene el conjunto " "``FILE_ATTRIBUTE_REPARSE_POINT``, este campo contiene la etiqueta que " "identifica el tipo de punto de análisis. Vea las constantes " "``IO_REPARSE_TAG_*`` en el módulo :mod:`stat`." -#: ../Doc/library/os.rst:2901 +#: ../Doc/library/os.rst:3162 +#, fuzzy msgid "" "The standard module :mod:`stat` defines functions and constants that are " -"useful for extracting information from a :c:type:`stat` structure. (On " +"useful for extracting information from a :c:struct:`stat` structure. (On " "Windows, some items are filled with dummy values.)" msgstr "" "El módulo estándar :mod:`stat` define funciones y constantes que son útiles " "para extraer información de la estructura a :c:type:`stat`. (En Windows, " "algunos elementos están llenos de valores ficticios)." -#: ../Doc/library/os.rst:2905 +#: ../Doc/library/os.rst:3166 +#, fuzzy msgid "" "For backward compatibility, a :class:`stat_result` instance is also " "accessible as a tuple of at least 10 integers giving the most important (and " -"portable) members of the :c:type:`stat` structure, in the order :attr:" +"portable) members of the :c:struct:`stat` structure, in the order :attr:" "`st_mode`, :attr:`st_ino`, :attr:`st_dev`, :attr:`st_nlink`, :attr:" "`st_uid`, :attr:`st_gid`, :attr:`st_size`, :attr:`st_atime`, :attr:" "`st_mtime`, :attr:`st_ctime`. More items may be added at the end by some " @@ -4395,7 +4820,7 @@ msgstr "" "anteriores de Python, acceder a :class:`stat_result` como una tupla siempre " "retorna enteros." -#: ../Doc/library/os.rst:2914 +#: ../Doc/library/os.rst:3175 msgid "" "Added the :attr:`st_atime_ns`, :attr:`st_mtime_ns`, and :attr:`st_ctime_ns` " "members." @@ -4403,25 +4828,25 @@ msgstr "" "Se agregaron los miembros :attr:`st_atime_ns`, :attr:`st_mtime_ns` y :attr:" "`st_ctime_ns`." -#: ../Doc/library/os.rst:2918 +#: ../Doc/library/os.rst:3179 msgid "Added the :attr:`st_file_attributes` member on Windows." msgstr "Se agregó el miembro :attr:`st_file_attributes` en Windows." -#: ../Doc/library/os.rst:2921 +#: ../Doc/library/os.rst:3182 msgid "Windows now returns the file index as :attr:`st_ino` when available." msgstr "" "Windows ahora retorna el índice del archivo como :attr:`st_ino` cuando está " "disponible." -#: ../Doc/library/os.rst:2925 +#: ../Doc/library/os.rst:3186 msgid "Added the :attr:`st_fstype` member to Solaris/derivatives." msgstr "Se agregó el miembro :attr:`st_fstype` a Solaris/derivados." -#: ../Doc/library/os.rst:2928 +#: ../Doc/library/os.rst:3189 msgid "Added the :attr:`st_reparse_tag` member on Windows." msgstr "Se agregó el miembro :attr:`st_reparse_tag` en Windows." -#: ../Doc/library/os.rst:2931 +#: ../Doc/library/os.rst:3192 msgid "" "On Windows, the :attr:`st_mode` member now identifies special files as :" "const:`S_IFCHR`, :const:`S_IFIFO` or :const:`S_IFBLK` as appropriate." @@ -4429,14 +4854,40 @@ msgstr "" "En Windows, el miembro :attr:`st_mode` ahora identifica archivos especiales " "como :const:`S_IFCHR`, :const:`S_IFIFO` o :const:`S_IFBLK` según corresponda." -#: ../Doc/library/os.rst:2938 +#: ../Doc/library/os.rst:3197 +msgid "" +"On Windows, :attr:`st_ctime` is deprecated. Eventually, it will contain the " +"last metadata change time, for consistency with other platforms, but for now " +"still contains creation time. Use :attr:`st_birthtime` for the creation time." +msgstr "" + +#: ../Doc/library/os.rst:3203 +msgid "" +"On Windows, :attr:`st_ino` may now be up to 128 bits, depending on the file " +"system. Previously it would not be above 64 bits, and larger file " +"identifiers would be arbitrarily packed." +msgstr "" + +#: ../Doc/library/os.rst:3208 +msgid "" +"On Windows, :attr:`st_rdev` no longer returns a value. Previously it would " +"contain the same as :attr:`st_dev`, which was incorrect." +msgstr "" + +#: ../Doc/library/os.rst:3212 +#, fuzzy +msgid "Added the :attr:`st_birthtime` member on Windows." +msgstr "Se agregó el miembro :attr:`st_reparse_tag` en Windows." + +#: ../Doc/library/os.rst:3218 +#, fuzzy msgid "" -"Perform a :c:func:`statvfs` system call on the given path. The return value " -"is an object whose attributes describe the filesystem on the given path, and " -"correspond to the members of the :c:type:`statvfs` structure, namely: :attr:" -"`f_bsize`, :attr:`f_frsize`, :attr:`f_blocks`, :attr:`f_bfree`, :attr:" -"`f_bavail`, :attr:`f_files`, :attr:`f_ffree`, :attr:`f_favail`, :attr:" -"`f_flag`, :attr:`f_namemax`, :attr:`f_fsid`." +"Perform a :c:func:`!statvfs` system call on the given path. The return " +"value is an object whose attributes describe the filesystem on the given " +"path, and correspond to the members of the :c:struct:`statvfs` structure, " +"namely: :attr:`f_bsize`, :attr:`f_frsize`, :attr:`f_blocks`, :attr:" +"`f_bfree`, :attr:`f_bavail`, :attr:`f_files`, :attr:`f_ffree`, :attr:" +"`f_favail`, :attr:`f_flag`, :attr:`f_namemax`, :attr:`f_fsid`." msgstr "" "Realice una llamada al sistema a :c:func:`statvfs` en la ruta dada. El valor " "de retorno es un objeto cuyos atributos describen el sistema de archivos en " @@ -4445,7 +4896,7 @@ msgstr "" "attr:`f_bfree`, :attr:`f_bavail`, :attr:`f_files`, :attr:`f_ffree`, :attr:" "`f_favail`, :attr:`f_flag`, :attr:`f_namemax`, :attr:`f_fsid`." -#: ../Doc/library/os.rst:2945 +#: ../Doc/library/os.rst:3225 msgid "" "Two module-level constants are defined for the :attr:`f_flag` attribute's " "bit-flags: if :const:`ST_RDONLY` is set, the filesystem is mounted read-" @@ -4458,7 +4909,7 @@ msgstr "" "configurado, el la semántica de los bits setuid/setgid está deshabilitada o " "no es compatible." -#: ../Doc/library/os.rst:2950 +#: ../Doc/library/os.rst:3230 msgid "" "Additional module-level constants are defined for GNU/glibc based systems. " "These are :const:`ST_NODEV` (disallow access to device special files), :" @@ -4482,11 +4933,11 @@ msgstr "" "acceso al directorio), :const:`ST_RELATIME` (tiempo de actualización " "relativo a mtime/ctime)." -#: ../Doc/library/os.rst:2963 +#: ../Doc/library/os.rst:3243 msgid "The :const:`ST_RDONLY` and :const:`ST_NOSUID` constants were added." msgstr "Se agregaron las constantes :const:`ST_RDONLY` y :const:`ST_NOSUID`." -#: ../Doc/library/os.rst:2969 +#: ../Doc/library/os.rst:3249 msgid "" "The :const:`ST_NODEV`, :const:`ST_NOEXEC`, :const:`ST_SYNCHRONOUS`, :const:" "`ST_MANDLOCK`, :const:`ST_WRITE`, :const:`ST_APPEND`, :const:" @@ -4498,11 +4949,11 @@ msgstr "" "`ST_IMMUTABLE`, :const:`ST_NOATIME`, :const:`ST_NODIRATIME`, y :const:" "`ST_RELATIME` se agregaron constantes." -#: ../Doc/library/os.rst:2978 +#: ../Doc/library/os.rst:3258 msgid "Added :attr:`f_fsid`." msgstr "Agregado :attr:`f_fsid`." -#: ../Doc/library/os.rst:2984 +#: ../Doc/library/os.rst:3264 msgid "" "A :class:`set` object indicating which functions in the :mod:`os` module " "accept an open file descriptor for their *dir_fd* parameter. Different " @@ -4523,7 +4974,7 @@ msgstr "" "funcionalidad se utiliza cuando no está disponible localmente. (Especificar " "``None`` para *dir_fd* siempre es compatible con todas las plataformas)." -#: ../Doc/library/os.rst:2994 +#: ../Doc/library/os.rst:3274 msgid "" "To check whether a particular function accepts an open file descriptor for " "its *dir_fd* parameter, use the ``in`` operator on ``supports_dir_fd``. As " @@ -4536,7 +4987,7 @@ msgstr "" "si :func:`os.stat` acepta descriptores de archivos abiertos para *dir_fd* en " "la plataforma local::" -#: ../Doc/library/os.rst:3001 +#: ../Doc/library/os.rst:3281 msgid "" "Currently *dir_fd* parameters only work on Unix platforms; none of them work " "on Windows." @@ -4544,7 +4995,7 @@ msgstr "" "Actualmente, los parámetros *dir_fd* solo funcionan en plataformas Unix; " "ninguno de ellos funciona en Windows." -#: ../Doc/library/os.rst:3009 +#: ../Doc/library/os.rst:3289 msgid "" "A :class:`set` object indicating whether :func:`os.access` permits " "specifying ``True`` for its *effective_ids* parameter on the local platform. " @@ -4558,7 +5009,7 @@ msgstr "" "las plataformas). Si la plataforma local lo admite, la colección contendrá :" "func:`os.access`; de lo contrario estará vacío." -#: ../Doc/library/os.rst:3015 +#: ../Doc/library/os.rst:3295 msgid "" "This expression evaluates to ``True`` if :func:`os.access` supports " "``effective_ids=True`` on the local platform::" @@ -4566,7 +5017,7 @@ msgstr "" "Esta expresión se evalúa como ``True`` si :func:`os.access` admite " "``effective_id=True`` en la plataforma local::" -#: ../Doc/library/os.rst:3020 +#: ../Doc/library/os.rst:3300 msgid "" "Currently *effective_ids* is only supported on Unix platforms; it does not " "work on Windows." @@ -4574,7 +5025,7 @@ msgstr "" "Actualmente, *effective_ids* solo es compatible con plataformas Unix; No " "funciona en Windows." -#: ../Doc/library/os.rst:3028 +#: ../Doc/library/os.rst:3308 msgid "" "A :class:`set` object indicating which functions in the :mod:`os` module " "permit specifying their *path* parameter as an open file descriptor on the " @@ -4589,7 +5040,7 @@ msgstr "" "para aceptar descriptores de archivos abiertos como argumentos *path* no " "está disponible en todas las plataformas que admite Python." -#: ../Doc/library/os.rst:3035 +#: ../Doc/library/os.rst:3315 msgid "" "To determine whether a particular function permits specifying an open file " "descriptor for its *path* parameter, use the ``in`` operator on " @@ -4603,7 +5054,7 @@ msgstr "" "``True`` si :func:`os.chdir` acepta descriptores de archivo abiertos para " "*path* en su plataforma local::" -#: ../Doc/library/os.rst:3048 +#: ../Doc/library/os.rst:3328 msgid "" "A :class:`set` object indicating which functions in the :mod:`os` module " "accept ``False`` for their *follow_symlinks* parameter on the local " @@ -4626,7 +5077,7 @@ msgstr "" "localmente. (Especificar ``True`` para *follow_symlinks* siempre se admite " "en todas las plataformas)." -#: ../Doc/library/os.rst:3058 +#: ../Doc/library/os.rst:3338 msgid "" "To check whether a particular function accepts ``False`` for its " "*follow_symlinks* parameter, use the ``in`` operator on " @@ -4640,11 +5091,11 @@ msgstr "" "``follow_symlinks=False`` al llamar a :func:`os.stat` en la plataforma " "local::" -#: ../Doc/library/os.rst:3071 +#: ../Doc/library/os.rst:3351 msgid "Create a symbolic link pointing to *src* named *dst*." msgstr "Cree un enlace simbólico que apunte a *src* llamado *dst*." -#: ../Doc/library/os.rst:3073 +#: ../Doc/library/os.rst:3353 msgid "" "On Windows, a symlink represents either a file or a directory, and does not " "morph to the target dynamically. If the target is present, the type of the " @@ -4661,7 +5112,7 @@ msgstr "" "contrario. En plataformas que no son de Windows, *target_is_directory* se " "ignora." -#: ../Doc/library/os.rst:3084 +#: ../Doc/library/os.rst:3364 msgid "" "On newer versions of Windows 10, unprivileged accounts can create symlinks " "if Developer Mode is enabled. When Developer Mode is not available/enabled, " @@ -4674,13 +5125,13 @@ msgstr "" "privilegio *SeCreateSymbolicLinkPrivilege*, o el proceso debe ejecutarse " "como administrador." -#: ../Doc/library/os.rst:3090 +#: ../Doc/library/os.rst:3370 msgid "" ":exc:`OSError` is raised when the function is called by an unprivileged user." msgstr "" ":exc:`OSError` se lanza cuando un usuario sin privilegios llama a la función." -#: ../Doc/library/os.rst:3093 +#: ../Doc/library/os.rst:3373 msgid "" "Raises an :ref:`auditing event ` ``os.symlink`` with arguments " "``src``, ``dst``, ``dir_fd``." @@ -4688,7 +5139,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.symlink`` con argumentos " "``src``, ``dst``, ``dir_fd``." -#: ../Doc/library/os.rst:3103 +#: ../Doc/library/os.rst:3383 msgid "" "Added the *dir_fd* argument, and now allow *target_is_directory* on non-" "Windows platforms." @@ -4696,17 +5147,17 @@ msgstr "" "Se agregó el argumento *dir_fd* y ahora permite *target_is_directory* en " "plataformas que no son de Windows." -#: ../Doc/library/os.rst:3110 +#: ../Doc/library/os.rst:3390 msgid "Added support for unelevated symlinks on Windows with Developer Mode." msgstr "" "Se agregó soporte para enlaces simbólicos sin elevar en Windows con el modo " "de desarrollador." -#: ../Doc/library/os.rst:3116 +#: ../Doc/library/os.rst:3396 msgid "Force write of everything to disk." msgstr "Forzar la escritura de todo en el disco." -#: ../Doc/library/os.rst:3125 +#: ../Doc/library/os.rst:3405 msgid "" "Truncate the file corresponding to *path*, so that it is at most *length* " "bytes in size." @@ -4714,7 +5165,7 @@ msgstr "" "Trunca el archivo correspondiente a *path*, para que tenga como máximo " "*length* bytes de tamaño." -#: ../Doc/library/os.rst:3130 +#: ../Doc/library/os.rst:3410 msgid "" "Raises an :ref:`auditing event ` ``os.truncate`` with arguments " "``path``, ``length``." @@ -4722,7 +5173,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.truncate`` con " "argumentos ``path``, ``length``." -#: ../Doc/library/os.rst:3145 +#: ../Doc/library/os.rst:3425 msgid "" "Remove (delete) the file *path*. This function is semantically identical " "to :func:`remove`; the ``unlink`` name is its traditional Unix name. Please " @@ -4732,13 +5183,13 @@ msgstr "" "a :func:`remove`; El nombre ``unlink`` es su nombre tradicional de Unix. " "Consulte la documentación de :func:`remove` para obtener más información." -#: ../Doc/library/os.rst:3161 +#: ../Doc/library/os.rst:3441 msgid "Set the access and modified times of the file specified by *path*." msgstr "" "Establece el acceso y los tiempos modificados del archivo especificado por " "*path*." -#: ../Doc/library/os.rst:3163 +#: ../Doc/library/os.rst:3443 msgid "" ":func:`utime` takes two optional parameters, *times* and *ns*. These specify " "the times set on *path* and are used as follows:" @@ -4747,7 +5198,7 @@ msgstr "" "especifican los tiempos establecidos en *path* y se utilizan de la siguiente " "manera:" -#: ../Doc/library/os.rst:3166 +#: ../Doc/library/os.rst:3446 msgid "" "If *ns* is specified, it must be a 2-tuple of the form ``(atime_ns, " "mtime_ns)`` where each member is an int expressing nanoseconds." @@ -4755,7 +5206,7 @@ msgstr "" "Si se especifica *ns*, debe ser una tupla de 2 de la forma ``(atime_ns, " "mtime_ns)`` donde cada miembro es un int que expresa nanosegundos." -#: ../Doc/library/os.rst:3169 +#: ../Doc/library/os.rst:3449 msgid "" "If *times* is not ``None``, it must be a 2-tuple of the form ``(atime, " "mtime)`` where each member is an int or float expressing seconds." @@ -4763,7 +5214,7 @@ msgstr "" "Si *times* no es ``None``, debe ser una 2-tupla de la forma ``(atime, " "mtime)`` donde cada miembro es un int o flotante que expresa segundos." -#: ../Doc/library/os.rst:3172 +#: ../Doc/library/os.rst:3452 msgid "" "If *times* is ``None`` and *ns* is unspecified, this is equivalent to " "specifying ``ns=(atime_ns, mtime_ns)`` where both times are the current time." @@ -4771,11 +5222,11 @@ msgstr "" "Si *times* es ``None`` y *ns* no está especificado, esto es equivalente a " "especificar ``ns=(atime_ns, mtime_ns)`` donde ambas horas son la hora actual." -#: ../Doc/library/os.rst:3176 +#: ../Doc/library/os.rst:3456 msgid "It is an error to specify tuples for both *times* and *ns*." msgstr "Es un error especificar tuplas para *times* y *ns*." -#: ../Doc/library/os.rst:3178 +#: ../Doc/library/os.rst:3458 msgid "" "Note that the exact times you set here may not be returned by a subsequent :" "func:`~os.stat` call, depending on the resolution with which your operating " @@ -4791,7 +5242,7 @@ msgstr "" "exactas es usar los campos *st_atime_ns* y *st_mtime_ns* del objeto de " "resultado :func:`os.stat` con el parámetro *ns* a :func:`utime`." -#: ../Doc/library/os.rst:3189 +#: ../Doc/library/os.rst:3469 msgid "" "Raises an :ref:`auditing event ` ``os.utime`` with arguments " "``path``, ``times``, ``ns``, ``dir_fd``." @@ -4799,7 +5250,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.utime`` con argumentos " "``path``, ``times``, ``ns``, ``dir_fd``." -#: ../Doc/library/os.rst:3191 +#: ../Doc/library/os.rst:3471 msgid "" "Added support for specifying *path* as an open file descriptor, and the " "*dir_fd*, *follow_symlinks*, and *ns* parameters." @@ -4807,7 +5258,7 @@ msgstr "" "Se agregó soporte para especificar *path* como un descriptor de archivo " "abierto, y los parámetros *dir_fd*, *follow_symlinks* y *ns*." -#: ../Doc/library/os.rst:3205 +#: ../Doc/library/os.rst:3485 msgid "" "Generate the file names in a directory tree by walking the tree either top-" "down or bottom-up. For each directory in the tree rooted at directory *top* " @@ -4819,7 +5270,7 @@ msgstr "" "el árbol enraizado en el directorio *top* (incluido *top*), produce una " "tupla de 3 tuplas ``(dirpath, dirnames, filenames)``." -#: ../Doc/library/os.rst:3210 +#: ../Doc/library/os.rst:3490 msgid "" "*dirpath* is a string, the path to the directory. *dirnames* is a list of " "the names of the subdirectories in *dirpath* (including symlinks to " @@ -4844,7 +5295,7 @@ msgstr "" "durante la generación de las listas, no se especifica si se incluirá un " "nombre para ese archivo." -#: ../Doc/library/os.rst:3221 +#: ../Doc/library/os.rst:3501 msgid "" "If optional argument *topdown* is ``True`` or not specified, the triple for " "a directory is generated before the triples for any of its subdirectories " @@ -4863,7 +5314,7 @@ msgstr "" "subdirectorios se recupera antes de que se generen las tuplas para el " "directorio y sus subdirectorios." -#: ../Doc/library/os.rst:3229 +#: ../Doc/library/os.rst:3509 msgid "" "When *topdown* is ``True``, the caller can modify the *dirnames* list in-" "place (perhaps using :keyword:`del` or slice assignment), and :func:`walk` " @@ -4886,7 +5337,7 @@ msgstr "" "caminata, porque en el modo ascendente los directorios en *dirnames* se " "generan antes de que se genere *dirpath*." -#: ../Doc/library/os.rst:3238 +#: ../Doc/library/os.rst:3518 msgid "" "By default, errors from the :func:`scandir` call are ignored. If optional " "argument *onerror* is specified, it should be a function; it will be called " @@ -4902,7 +5353,7 @@ msgstr "" "caminata. Tenga en cuenta que el nombre de archivo está disponible como el " "atributo ``filename`` del objeto de excepción." -#: ../Doc/library/os.rst:3244 +#: ../Doc/library/os.rst:3524 msgid "" "By default, :func:`walk` will not walk down into symbolic links that resolve " "to directories. Set *followlinks* to ``True`` to visit directories pointed " @@ -4913,7 +5364,7 @@ msgstr "" "directorios señalados por los enlaces simbólicos, en los sistemas que los " "admiten." -#: ../Doc/library/os.rst:3250 +#: ../Doc/library/os.rst:3530 msgid "" "Be aware that setting *followlinks* to ``True`` can lead to infinite " "recursion if a link points to a parent directory of itself. :func:`walk` " @@ -4924,7 +5375,7 @@ msgstr "" "mismo. :func:`walk` no realiza un seguimiento de los directorios que ya " "visitó." -#: ../Doc/library/os.rst:3256 +#: ../Doc/library/os.rst:3536 msgid "" "If you pass a relative pathname, don't change the current working directory " "between resumptions of :func:`walk`. :func:`walk` never changes the current " @@ -4934,7 +5385,7 @@ msgstr "" "actual entre las reanudaciones de :func:`walk`. :func:`walk` nunca cambia el " "directorio actual, y supone que la persona que llama tampoco." -#: ../Doc/library/os.rst:3260 ../Doc/library/os.rst:3321 +#: ../Doc/library/os.rst:3540 ../Doc/library/os.rst:3601 msgid "" "This example displays the number of bytes taken by non-directory files in " "each directory under the starting directory, except that it doesn't look " @@ -4944,7 +5395,7 @@ msgstr "" "directorio en cada directorio bajo el directorio inicial, excepto que no se " "ve en ningún subdirectorio CVS::" -#: ../Doc/library/os.rst:3273 +#: ../Doc/library/os.rst:3553 msgid "" "In the next example (simple implementation of :func:`shutil.rmtree`), " "walking the tree bottom-up is essential, :func:`rmdir` doesn't allow " @@ -4954,7 +5405,7 @@ msgstr "" "recorrer el árbol de abajo hacia arriba es esencial, :func:`rmdir` no " "permite eliminar un directorio antes de que el directorio esté vacío::" -#: ../Doc/library/os.rst:3288 +#: ../Doc/library/os.rst:3568 msgid "" "Raises an :ref:`auditing event ` ``os.walk`` with arguments " "``top``, ``topdown``, ``onerror``, ``followlinks``." @@ -4962,7 +5413,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.spawn`` con argumentos " "``top``, ``topdown``, ``onerror``, ``followlinks``." -#: ../Doc/library/os.rst:3290 +#: ../Doc/library/os.rst:3570 msgid "" "This function now calls :func:`os.scandir` instead of :func:`os.listdir`, " "making it faster by reducing the number of calls to :func:`os.stat`." @@ -4970,7 +5421,7 @@ msgstr "" "Esta función ahora llama :func:`os.scandir` en lugar de :func:`os.listdir`, " "lo que lo hace más rápido al reducir el número de llamadas a :func:`os.stat`." -#: ../Doc/library/os.rst:3304 +#: ../Doc/library/os.rst:3584 msgid "" "This behaves exactly like :func:`walk`, except that it yields a 4-tuple " "``(dirpath, dirnames, filenames, dirfd)``, and it supports ``dir_fd``." @@ -4978,7 +5429,7 @@ msgstr "" "Esto se comporta exactamente como :func:`walk`, excepto que produce 4 tuplas " "``(dirpath, dirnames, filenames, dirfd)``, y admite ``dir_fd``." -#: ../Doc/library/os.rst:3307 +#: ../Doc/library/os.rst:3587 msgid "" "*dirpath*, *dirnames* and *filenames* are identical to :func:`walk` output, " "and *dirfd* is a file descriptor referring to the directory *dirpath*." @@ -4986,7 +5437,7 @@ msgstr "" "*dirpath*, *dirnames* y *filenames* son idénticos a :func:`walk` output, y " "*dirfd* es un descriptor de archivo que se refiere al directorio *dirpath*." -#: ../Doc/library/os.rst:3310 +#: ../Doc/library/os.rst:3590 msgid "" "This function always supports :ref:`paths relative to directory descriptors " "` and :ref:`not following symlinks `. Note however " @@ -4999,7 +5450,7 @@ msgstr "" "funciones, el valor predeterminado :func:`fwalk` para *follow_symlinks* es " "``False``." -#: ../Doc/library/os.rst:3317 +#: ../Doc/library/os.rst:3597 msgid "" "Since :func:`fwalk` yields file descriptors, those are only valid until the " "next iteration step, so you should duplicate them (e.g. with :func:`dup`) if " @@ -5009,7 +5460,7 @@ msgstr "" "válidos hasta el siguiente paso de iteración, por lo que debe duplicarlos " "(por ejemplo, con :func:`dup`) si desea mantenerlos más tiempo." -#: ../Doc/library/os.rst:3334 +#: ../Doc/library/os.rst:3614 msgid "" "In the next example, walking the tree bottom-up is essential: :func:`rmdir` " "doesn't allow deleting a directory before the directory is empty::" @@ -5018,7 +5469,7 @@ msgstr "" "esencial: :func:`rmdir` no permite eliminar un directorio antes de que el " "directorio esté vacío::" -#: ../Doc/library/os.rst:3349 +#: ../Doc/library/os.rst:3629 msgid "" "Raises an :ref:`auditing event ` ``os.fwalk`` with arguments " "``top``, ``topdown``, ``onerror``, ``follow_symlinks``, ``dir_fd``." @@ -5026,11 +5477,11 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.chown`` con argumentos " "``top``, ``topdown``, ``onerror``, ``follow_symlinks``, ``dir_fd``." -#: ../Doc/library/os.rst:3358 +#: ../Doc/library/os.rst:3638 msgid "Added support for :class:`bytes` paths." msgstr "Se agregó soporte para rutas de acceso :class:`bytes`." -#: ../Doc/library/os.rst:3364 +#: ../Doc/library/os.rst:3644 msgid "" "Create an anonymous file and return a file descriptor that refers to it. " "*flags* must be one of the ``os.MFD_*`` constants available on the system " @@ -5042,7 +5493,7 @@ msgstr "" "sistema (o una combinación ORed bit a bit de ellas). Por defecto, el nuevo " "descriptor de archivo es :ref:`no heredable `." -#: ../Doc/library/os.rst:3369 +#: ../Doc/library/os.rst:3649 msgid "" "The name supplied in *name* is used as a filename and will be displayed as " "the target of the corresponding symbolic link in the directory ``/proc/self/" @@ -5058,24 +5509,25 @@ msgstr "" "afectan el comportamiento del descriptor de archivo y, como tal, varios " "archivos pueden tener el mismo nombre sin efectos secundarios." -#: ../Doc/library/os.rst:3377 +#: ../Doc/library/os.rst:3656 #, fuzzy msgid ":ref:`Availability `: Linux >= 3.17 with glibc >= 2.27." msgstr ":ref:`Disponibilidad `: Linux >= 3.17 con glibc >= 2.27." -#: ../Doc/library/os.rst:3399 +#: ../Doc/library/os.rst:3679 msgid "These flags can be passed to :func:`memfd_create`." msgstr "Estas flags se pueden pasar a :func:`memfd_create`." +#: ../Doc/library/os.rst:3681 #, fuzzy msgid ":ref:`Availability `: Linux >= 3.17 with glibc >= 2.27" msgstr ":ref:`Disponibilidad `: Linux >= 3.17 con glibc >= 2.27." -#: ../Doc/library/os.rst:3403 +#: ../Doc/library/os.rst:3683 msgid "The ``MFD_HUGE*`` flags are only available since Linux 4.14." msgstr "Las banderas ``MFD_HUGE*`` solo están disponibles desde Linux 4.14." -#: ../Doc/library/os.rst:3410 +#: ../Doc/library/os.rst:3690 msgid "" "Create and return an event file descriptor. The file descriptors supports " "raw :func:`read` and :func:`write` with a buffer size of 8, :func:`~select." @@ -5090,7 +5542,7 @@ msgstr "" "información. De forma predeterminada, el nuevo descriptor de archivo :ref:" "`no es heredable `." -#: ../Doc/library/os.rst:3416 +#: ../Doc/library/os.rst:3696 msgid "" "*initval* is the initial value of the event counter. The initial value must " "be an 32 bit unsigned integer. Please note that the initial value is limited " @@ -5103,7 +5555,7 @@ msgstr "" "eventos es un entero de 64 bits sin signo con un valor máximo de 2 \\ :sup:" "`64`\\ -\\ 2." -#: ../Doc/library/os.rst:3421 +#: ../Doc/library/os.rst:3701 msgid "" "*flags* can be constructed from :const:`EFD_CLOEXEC`, :const:`EFD_NONBLOCK`, " "and :const:`EFD_SEMAPHORE`." @@ -5111,7 +5563,7 @@ msgstr "" "*flags* se puede construir a partir de :const:`EFD_CLOEXEC`, :const:" "`EFD_NONBLOCK` y :const:`EFD_SEMAPHORE`." -#: ../Doc/library/os.rst:3424 +#: ../Doc/library/os.rst:3704 msgid "" "If :const:`EFD_SEMAPHORE` is specified and the event counter is non-zero, :" "func:`eventfd_read` returns 1 and decrements the counter by one." @@ -5119,7 +5571,7 @@ msgstr "" "Si se especifica :const:`EFD_SEMAPHORE` y el contador de eventos no es " "cero, :func:`eventfd_read` retorna 1 y reduce el contador en uno." -#: ../Doc/library/os.rst:3427 +#: ../Doc/library/os.rst:3707 msgid "" "If :const:`EFD_SEMAPHORE` is not specified and the event counter is non-" "zero, :func:`eventfd_read` returns the current event counter value and " @@ -5129,7 +5581,7 @@ msgstr "" "cero, :func:`eventfd_read` retorna el valor actual del contador de eventos y " "restablece el contador a cero." -#: ../Doc/library/os.rst:3431 +#: ../Doc/library/os.rst:3711 msgid "" "If the event counter is zero and :const:`EFD_NONBLOCK` is not specified, :" "func:`eventfd_read` blocks." @@ -5137,7 +5589,7 @@ msgstr "" "Si el contador de eventos es cero y no se especifica :const:`EFD_NONBLOCK`, :" "func:`eventfd_read` se bloquea." -#: ../Doc/library/os.rst:3434 +#: ../Doc/library/os.rst:3714 msgid "" ":func:`eventfd_write` increments the event counter. Write blocks if the " "write operation would increment the counter to a value larger than 2\\ :sup:" @@ -5147,13 +5599,13 @@ msgstr "" "la operación de escritura incrementaría el contador a un valor mayor que \\ :" "sup:`64`\\ -\\ 2." -#: ../Doc/library/os.rst:3456 +#: ../Doc/library/os.rst:3735 #, fuzzy msgid ":ref:`Availability `: Linux >= 2.6.27 with glibc >= 2.8" msgstr "" ":ref:`Disponibilidad `: Linux >= 2.6.27 con glibc >= 2.8." -#: ../Doc/library/os.rst:3461 +#: ../Doc/library/os.rst:3741 msgid "" "Read value from an :func:`eventfd` file descriptor and return a 64 bit " "unsigned int. The function does not verify that *fd* is an :func:`eventfd`." @@ -5161,13 +5613,13 @@ msgstr "" "Lee el valor de un descriptor de archivo :func:`eventfd` y retorna un int " "sin signo de 64 bits. La función no verifica que *fd* sea un :func:`eventfd`." -#: ../Doc/library/os.rst:3465 ../Doc/library/os.rst:3474 -#: ../Doc/library/os.rst:3482 ../Doc/library/os.rst:3491 +#: ../Doc/library/os.rst:3744 ../Doc/library/os.rst:3753 +#: ../Doc/library/os.rst:3761 ../Doc/library/os.rst:3770 #, fuzzy msgid ":ref:`Availability `: Linux >= 2.6.27" msgstr ":ref:`Disponibilidad `: Linux >= 2.6.27" -#: ../Doc/library/os.rst:3470 +#: ../Doc/library/os.rst:3750 msgid "" "Add value to an :func:`eventfd` file descriptor. *value* must be a 64 bit " "unsigned int. The function does not verify that *fd* is an :func:`eventfd`." @@ -5176,20 +5628,20 @@ msgstr "" "un int sin signo de 64 bits. La función no verifica que *fd* sea un :func:" "`eventfd`." -#: ../Doc/library/os.rst:3479 +#: ../Doc/library/os.rst:3759 msgid "Set close-on-exec flag for new :func:`eventfd` file descriptor." msgstr "" "Establezca el indicador close-on-exec para el nuevo descriptor de archivo :" "func:`eventfd`." -#: ../Doc/library/os.rst:3487 +#: ../Doc/library/os.rst:3767 msgid "" "Set :const:`O_NONBLOCK` status flag for new :func:`eventfd` file descriptor." msgstr "" "Establezca el indicador de estado :const:`O_NONBLOCK` para el nuevo " "descriptor de archivo :func:`eventfd`." -#: ../Doc/library/os.rst:3496 +#: ../Doc/library/os.rst:3776 msgid "" "Provide semaphore-like semantics for reads from a :func:`eventfd` file " "descriptor. On read the internal counter is decremented by one." @@ -5198,20 +5650,20 @@ msgstr "" "descriptor de archivo :func:`eventfd`. Al leer, el contador interno se " "reduce en uno." -#: ../Doc/library/os.rst:3500 +#: ../Doc/library/os.rst:3779 #, fuzzy msgid ":ref:`Availability `: Linux >= 2.6.30" msgstr ":ref:`Disponibilidad `: Linux >= 2.6.30" -#: ../Doc/library/os.rst:3505 +#: ../Doc/library/os.rst:3785 msgid "Linux extended attributes" msgstr "Atributos extendidos de Linux" -#: ../Doc/library/os.rst:3509 +#: ../Doc/library/os.rst:3789 msgid "These functions are all available on Linux only." msgstr "Estas funciones están disponibles solo en Linux." -#: ../Doc/library/os.rst:3513 +#: ../Doc/library/os.rst:3793 msgid "" "Return the value of the extended filesystem attribute *attribute* for " "*path*. *attribute* can be bytes or str (directly or indirectly through the :" @@ -5223,7 +5675,7 @@ msgstr "" "través de la interfaz :class:`PathLike`). Si es str, se codifica con la " "codificación del sistema de archivos." -#: ../Doc/library/os.rst:3521 +#: ../Doc/library/os.rst:3801 msgid "" "Raises an :ref:`auditing event ` ``os.getxattr`` with arguments " "``path``, ``attribute``." @@ -5231,12 +5683,12 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.getxattr`` con " "argumentos ``path``, ``atributo``." -#: ../Doc/library/os.rst:3523 ../Doc/library/os.rst:3555 -#: ../Doc/library/os.rst:3580 +#: ../Doc/library/os.rst:3803 ../Doc/library/os.rst:3835 +#: ../Doc/library/os.rst:3860 msgid "Accepts a :term:`path-like object` for *path* and *attribute*." msgstr "Acepta un :term:`path-like object` para *path*y *attribute*." -#: ../Doc/library/os.rst:3529 +#: ../Doc/library/os.rst:3809 msgid "" "Return a list of the extended filesystem attributes on *path*. The " "attributes in the list are represented as strings decoded with the " @@ -5248,7 +5700,7 @@ msgstr "" "con la codificación del sistema de archivos. Si *path* es ``None``, :func:" "`listxattr` examinará el directorio actual." -#: ../Doc/library/os.rst:3537 +#: ../Doc/library/os.rst:3817 msgid "" "Raises an :ref:`auditing event ` ``os.listxattr`` with argument " "``path``." @@ -5256,7 +5708,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.listxattr`` con el " "argumento ``path``." -#: ../Doc/library/os.rst:3545 +#: ../Doc/library/os.rst:3825 msgid "" "Removes the extended filesystem attribute *attribute* from *path*. " "*attribute* should be bytes or str (directly or indirectly through the :" @@ -5268,7 +5720,7 @@ msgstr "" "interfaz :class:`PathLike`). Si es una cadena, está codificada con :term:" "`filesystem encoding and error handler`." -#: ../Doc/library/os.rst:3553 +#: ../Doc/library/os.rst:3833 msgid "" "Raises an :ref:`auditing event ` ``os.removexattr`` with arguments " "``path``, ``attribute``." @@ -5276,7 +5728,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.removexattr`` con " "argumentos ``path``, ``attribute``." -#: ../Doc/library/os.rst:3561 +#: ../Doc/library/os.rst:3841 msgid "" "Set the extended filesystem attribute *attribute* on *path* to *value*. " "*attribute* must be a bytes or str with no embedded NULs (directly or " @@ -5296,7 +5748,7 @@ msgstr "" "existe, se lanzará ``ENODATA``. Si se proporciona :data:`XATTR_CREATE` y el " "atributo ya existe, no se creará el atributo y se lanza ``EEXISTS``." -#: ../Doc/library/os.rst:3575 +#: ../Doc/library/os.rst:3855 msgid "" "A bug in Linux kernel versions less than 2.6.39 caused the flags argument to " "be ignored on some filesystems." @@ -5304,7 +5756,7 @@ msgstr "" "Un error en las versiones de kernel de Linux anteriores a 2.6.39 hizo que el " "argumento de las flags se ignorara en algunos sistemas de archivos." -#: ../Doc/library/os.rst:3578 +#: ../Doc/library/os.rst:3858 msgid "" "Raises an :ref:`auditing event ` ``os.setxattr`` with arguments " "``path``, ``attribute``, ``value``, ``flags``." @@ -5312,7 +5764,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.setxattr`` con " "argumentos ``path``, ``attribute``, ``value``, ``flags``." -#: ../Doc/library/os.rst:3586 +#: ../Doc/library/os.rst:3866 msgid "" "The maximum size the value of an extended attribute can be. Currently, this " "is 64 KiB on Linux." @@ -5320,7 +5772,7 @@ msgstr "" "El tamaño máximo que puede tener el valor de un atributo extendido. " "Actualmente, esto es 64 KiB en Linux." -#: ../Doc/library/os.rst:3592 +#: ../Doc/library/os.rst:3872 msgid "" "This is a possible value for the flags argument in :func:`setxattr`. It " "indicates the operation must create an attribute." @@ -5328,7 +5780,7 @@ msgstr "" "Este es un valor posible para el argumento flags en :func:`setxattr`. Indica " "que la operación debe crear un atributo." -#: ../Doc/library/os.rst:3598 +#: ../Doc/library/os.rst:3878 msgid "" "This is a possible value for the flags argument in :func:`setxattr`. It " "indicates the operation must replace an existing attribute." @@ -5336,15 +5788,15 @@ msgstr "" "Este es un valor posible para el argumento flags en :func:`setxattr`. Indica " "que la operación debe reemplazar un atributo existente." -#: ../Doc/library/os.rst:3605 +#: ../Doc/library/os.rst:3885 msgid "Process Management" msgstr "Gestión de proceso" -#: ../Doc/library/os.rst:3607 +#: ../Doc/library/os.rst:3887 msgid "These functions may be used to create and manage processes." msgstr "Estas funciones pueden usarse para crear y administrar procesos." -#: ../Doc/library/os.rst:3609 +#: ../Doc/library/os.rst:3889 msgid "" "The various :func:`exec\\* ` functions take a list of arguments for " "the new program loaded into the process. In each case, the first of these " @@ -5362,7 +5814,7 @@ msgstr "" "c:func:`main`. Por ejemplo, ``os.execv('/bin/echo', ['foo', 'bar'])`` solo " "imprimirá ``bar`` en la salida estándar; ``foo`` parecerá ignorado." -#: ../Doc/library/os.rst:3620 +#: ../Doc/library/os.rst:3900 msgid "" "Generate a :const:`SIGABRT` signal to the current process. On Unix, the " "default behavior is to produce a core dump; on Windows, the process " @@ -5376,11 +5828,11 @@ msgstr "" "cuenta que llamar a esta función no llamará al controlador de señal Python " "registrado para :const:`SIGABRT` con :func:`signal.signal`." -#: ../Doc/library/os.rst:3629 +#: ../Doc/library/os.rst:3909 msgid "Add a path to the DLL search path." msgstr "Agregue una ruta a la ruta de búsqueda de DLL." -#: ../Doc/library/os.rst:3631 +#: ../Doc/library/os.rst:3911 msgid "" "This search path is used when resolving dependencies for imported extension " "modules (the module itself is resolved through :data:`sys.path`), and also " @@ -5390,7 +5842,7 @@ msgstr "" "extensión importados (el propio módulo se resuelve mediante :data:`sys." "path`) y también mediante :mod:`ctypes`." -#: ../Doc/library/os.rst:3635 +#: ../Doc/library/os.rst:3915 msgid "" "Remove the directory by calling **close()** on the returned object or using " "it in a :keyword:`with` statement." @@ -5398,7 +5850,7 @@ msgstr "" "Elimina el directorio llamando a **close()** en el objeto retornado o " "utilizándolo en una :keyword:`with` instrucción." -#: ../Doc/library/os.rst:3638 +#: ../Doc/library/os.rst:3918 msgid "" "See the `Microsoft documentation `_ for more information about how " @@ -5408,7 +5860,7 @@ msgstr "" "com/44228cf2-6306-466c-8f16-f513cd3ba8b5>`_ para obtener más información " "sobre cómo se cargan las DLL." -#: ../Doc/library/os.rst:3642 +#: ../Doc/library/os.rst:3922 msgid "" "Raises an :ref:`auditing event ` ``os.add_dll_directory`` with " "argument ``path``." @@ -5416,7 +5868,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.add_dll_directory`` con " "el argumento ``path``." -#: ../Doc/library/os.rst:3646 +#: ../Doc/library/os.rst:3926 msgid "" "Previous versions of CPython would resolve DLLs using the default behavior " "for the current process. This led to inconsistencies, such as only sometimes " @@ -5429,7 +5881,7 @@ msgstr "" "trabajo actual, y las funciones del sistema operativo como " "``AddDllDirectory`` no tienen ningún efecto." -#: ../Doc/library/os.rst:3653 +#: ../Doc/library/os.rst:3933 msgid "" "In 3.8, the two primary ways DLLs are loaded now explicitly override the " "process-wide behavior to ensure consistency. See the :ref:`porting notes " @@ -5440,7 +5892,7 @@ msgstr "" "coherencia. Ver el :ref:`notas de portabilidad ` para " "obtener información sobre la actualización de bibliotecas." -#: ../Doc/library/os.rst:3668 +#: ../Doc/library/os.rst:3948 msgid "" "These functions all execute a new program, replacing the current process; " "they do not return. On Unix, the new executable is loaded into the current " @@ -5452,7 +5904,7 @@ msgstr "" "actual y tendrá la misma identificación de proceso que la persona que llama. " "Los errores se informarán como excepciones :exc:`OSError`." -#: ../Doc/library/os.rst:3673 +#: ../Doc/library/os.rst:3953 msgid "" "The current process is replaced immediately. Open file objects and " "descriptors are not flushed, so if there may be data buffered on these open " @@ -5465,7 +5917,7 @@ msgstr "" "stdout.flush` o :func:`os.fsync` antes de llamar a :func:`exec\\* ` " "función." -#: ../Doc/library/os.rst:3679 +#: ../Doc/library/os.rst:3959 msgid "" "The \"l\" and \"v\" variants of the :func:`exec\\* ` functions differ " "in how command-line arguments are passed. The \"l\" variants are perhaps " @@ -5487,7 +5939,8 @@ msgstr "" "*args*. En cualquier caso, los argumentos del proceso secundario deben " "comenzar con el nombre del comando que se ejecuta, pero esto no se aplica." -#: ../Doc/library/os.rst:3688 +#: ../Doc/library/os.rst:3968 +#, fuzzy msgid "" "The variants which include a \"p\" near the end (:func:`execlp`, :func:" "`execlpe`, :func:`execvp`, and :func:`execvpe`) will use the :envvar:`PATH` " @@ -5497,7 +5950,8 @@ msgid "" "of the :envvar:`PATH` variable. The other variants, :func:`execl`, :func:" "`execle`, :func:`execv`, and :func:`execve`, will not use the :envvar:`PATH` " "variable to locate the executable; *path* must contain an appropriate " -"absolute or relative path." +"absolute or relative path. Relative paths must include at least one slash, " +"even on Windows, as plain names will not be resolved." msgstr "" "Las variantes que incluyen una \"p\" cerca del final (:func:`execlp`, :func:" "`execlpe`, :func:`execvp`, y :func:`execvpe`) usarán :envvar:`PATH` variable " @@ -5509,7 +5963,7 @@ msgstr "" "variable :envvar:`PATH` para localizar el ejecutable; *path* debe contener " "una ruta absoluta o relativa apropiada." -#: ../Doc/library/os.rst:3698 +#: ../Doc/library/os.rst:3979 msgid "" "For :func:`execle`, :func:`execlpe`, :func:`execve`, and :func:`execvpe` " "(note that these all end in \"e\"), the *env* parameter must be a mapping " @@ -5525,7 +5979,7 @@ msgstr "" "funciones :func:`execl`, :func:`execlp`, :func:`execv` y :func:`execvp` " "hacen que el nuevo proceso herede el entorno del proceso actual." -#: ../Doc/library/os.rst:3705 +#: ../Doc/library/os.rst:3986 msgid "" "For :func:`execve` on some platforms, *path* may also be specified as an " "open file descriptor. This functionality may not be supported on your " @@ -5539,7 +5993,7 @@ msgstr "" "disponible o no usando :data:`os.supports_fd`. Si no está disponible, su uso " "lanzará un :exc:`NotImplementedError`." -#: ../Doc/library/os.rst:3710 +#: ../Doc/library/os.rst:3991 msgid "" "Raises an :ref:`auditing event ` ``os.exec`` with arguments " "``path``, ``args``, ``env``." @@ -5547,7 +6001,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.exec`` con argumentos " "``ruta``, ``args``, ``env``." -#: ../Doc/library/os.rst:3714 +#: ../Doc/library/os.rst:3995 msgid "" "Added support for specifying *path* as an open file descriptor for :func:" "`execve`." @@ -5555,7 +6009,7 @@ msgstr "" "Se agregó soporte para especificar *path* como un descriptor de archivo " "abierto para :func:`execve`." -#: ../Doc/library/os.rst:3723 +#: ../Doc/library/os.rst:4004 msgid "" "Exit the process with status *n*, without calling cleanup handlers, flushing " "stdio buffers, etc." @@ -5563,15 +6017,16 @@ msgstr "" "Salga del proceso con el estado *n*, sin llamar a los controladores de " "limpieza, vaciar los buffers stdio, etc." -#: ../Doc/library/os.rst:3728 +#: ../Doc/library/os.rst:4009 +#, fuzzy msgid "" -"The standard way to exit is ``sys.exit(n)``. :func:`_exit` should normally " -"only be used in the child process after a :func:`fork`." +"The standard way to exit is :func:`sys.exit(n) `. :func:`!_exit` " +"should normally only be used in the child process after a :func:`fork`." msgstr "" "La forma estándar de salir es ``sys.exit(n)``. :func:`_exit` normalmente " "solo debe usarse en el proceso secundario después de :func:`fork`." -#: ../Doc/library/os.rst:3731 +#: ../Doc/library/os.rst:4012 msgid "" "The following exit codes are defined and can be used with :func:`_exit`, " "although they are not required. These are typically used for system " @@ -5583,7 +6038,7 @@ msgstr "" "del sistema escritos en Python, como el programa de entrega de comandos " "externos de un servidor de correo." -#: ../Doc/library/os.rst:3737 +#: ../Doc/library/os.rst:4018 msgid "" "Some of these may not be available on all Unix platforms, since there is " "some variation. These constants are defined where they are defined by the " @@ -5593,7 +6048,7 @@ msgstr "" "plataformas Unix, ya que hay alguna variación. Estas constantes se definen " "donde están definidas por la plataforma subyacente." -#: ../Doc/library/os.rst:3744 +#: ../Doc/library/os.rst:4025 msgid "" "Exit code that means no error occurred. May be taken from the defined value " "of ``EXIT_SUCCESS`` on some platforms. Generally has a value of zero." @@ -5602,7 +6057,7 @@ msgstr "" "del valor definido de ``EXIT_SUCCESS`` en algunas plataformas. Generalmente " "tiene un valor de cero." -#: ../Doc/library/os.rst:3752 +#: ../Doc/library/os.rst:4033 msgid "" "Exit code that means the command was used incorrectly, such as when the " "wrong number of arguments are given." @@ -5610,36 +6065,36 @@ msgstr "" "Código de salida que significa que el comando se usó incorrectamente, como " "cuando se da un número incorrecto de argumentos." -#: ../Doc/library/os.rst:3760 +#: ../Doc/library/os.rst:4041 msgid "Exit code that means the input data was incorrect." msgstr "" "Código de salida que significa que los datos de entrada eran incorrectos." -#: ../Doc/library/os.rst:3767 +#: ../Doc/library/os.rst:4048 msgid "Exit code that means an input file did not exist or was not readable." msgstr "" "Código de salida que significa que no existía un archivo de entrada o que no " "era legible." -#: ../Doc/library/os.rst:3774 +#: ../Doc/library/os.rst:4055 msgid "Exit code that means a specified user did not exist." msgstr "Código de salida que significa que un usuario especificado no existía." -#: ../Doc/library/os.rst:3781 +#: ../Doc/library/os.rst:4062 msgid "Exit code that means a specified host did not exist." msgstr "Código de salida que significa que no existía un host especificado." -#: ../Doc/library/os.rst:3788 +#: ../Doc/library/os.rst:4069 msgid "Exit code that means that a required service is unavailable." msgstr "" "Código de salida que significa que un servicio requerido no está disponible." -#: ../Doc/library/os.rst:3795 +#: ../Doc/library/os.rst:4076 msgid "Exit code that means an internal software error was detected." msgstr "" "Código de salida que significa que se detectó un error interno de software." -#: ../Doc/library/os.rst:3802 +#: ../Doc/library/os.rst:4083 msgid "" "Exit code that means an operating system error was detected, such as the " "inability to fork or create a pipe." @@ -5647,7 +6102,7 @@ msgstr "" "Código de salida que significa que se detectó un error del sistema " "operativo, como la imposibilidad de bifurcar o crear una tubería." -#: ../Doc/library/os.rst:3810 +#: ../Doc/library/os.rst:4091 msgid "" "Exit code that means some system file did not exist, could not be opened, or " "had some other kind of error." @@ -5655,20 +6110,20 @@ msgstr "" "Código de salida que significa que algunos archivos del sistema no existían, " "no podían abrirse o tenían algún otro tipo de error." -#: ../Doc/library/os.rst:3818 +#: ../Doc/library/os.rst:4099 msgid "Exit code that means a user specified output file could not be created." msgstr "" "Código de salida que significa que no se pudo crear un archivo de salida " "especificado por el usuario." -#: ../Doc/library/os.rst:3825 +#: ../Doc/library/os.rst:4106 msgid "" "Exit code that means that an error occurred while doing I/O on some file." msgstr "" "Código de salida que significa que se produjo un error al realizar E / S en " "algún archivo." -#: ../Doc/library/os.rst:3832 +#: ../Doc/library/os.rst:4113 msgid "" "Exit code that means a temporary failure occurred. This indicates something " "that may not really be an error, such as a network connection that couldn't " @@ -5678,7 +6133,7 @@ msgstr "" "algo que puede no ser realmente un error, como una conexión de red que no se " "pudo realizar durante una operación recuperable." -#: ../Doc/library/os.rst:3841 +#: ../Doc/library/os.rst:4122 msgid "" "Exit code that means that a protocol exchange was illegal, invalid, or not " "understood." @@ -5686,7 +6141,7 @@ msgstr "" "Código de salida que significa que un intercambio de protocolo fue ilegal, " "inválido o no se entendió." -#: ../Doc/library/os.rst:3849 +#: ../Doc/library/os.rst:4130 msgid "" "Exit code that means that there were insufficient permissions to perform the " "operation (but not intended for file system problems)." @@ -5694,18 +6149,18 @@ msgstr "" "Código de salida que significa que no había permisos suficientes para " "realizar la operación (pero no para problemas del sistema de archivos)." -#: ../Doc/library/os.rst:3857 +#: ../Doc/library/os.rst:4138 msgid "Exit code that means that some kind of configuration error occurred." msgstr "" "Código de salida que significa que se produjo algún tipo de error de " "configuración." -#: ../Doc/library/os.rst:3864 +#: ../Doc/library/os.rst:4145 msgid "Exit code that means something like \"an entry was not found\"." msgstr "" "Código de salida que significa algo así como \"no se encontró una entrada\"." -#: ../Doc/library/os.rst:3871 +#: ../Doc/library/os.rst:4152 msgid "" "Fork a child process. Return ``0`` in the child and the child's process id " "in the parent. If an error occurs :exc:`OSError` is raised." @@ -5714,7 +6169,7 @@ msgstr "" "proceso del niño en el padre. Si se produce un error se genera :exc:" "`OSError`." -#: ../Doc/library/os.rst:3874 +#: ../Doc/library/os.rst:4155 msgid "" "Note that some platforms including FreeBSD <= 6.3 and Cygwin have known " "issues when using ``fork()`` from a thread." @@ -5722,13 +6177,19 @@ msgstr "" "Tenga en cuenta que algunas plataformas que incluyen FreeBSD <= 6.3 y " "Cygwin tienen problemas conocidos al usar ``fork()`` desde un hilo." -#: ../Doc/library/os.rst:3877 +#: ../Doc/library/os.rst:4158 msgid "" "Raises an :ref:`auditing event ` ``os.fork`` with no arguments." msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.fork`` sin argumentos." -#: ../Doc/library/os.rst:3879 +#: ../Doc/library/os.rst:4162 +msgid "" +"If you use TLS sockets in an application calling ``fork()``, see the warning " +"in the :mod:`ssl` documentation." +msgstr "" + +#: ../Doc/library/os.rst:4165 msgid "" "Calling ``fork()`` in a subinterpreter is no longer supported (:exc:" "`RuntimeError` is raised)." @@ -5736,32 +6197,71 @@ msgstr "" "Llamar a ``fork()`` en un subinterpretador ya no es compatible (:exc:" "`RuntimeError` está activado)." -#: ../Doc/library/os.rst:3885 -msgid "See :mod:`ssl` for applications that use the SSL module with fork()." -msgstr "Ver :mod:`ssl` para aplicaciones que usan el módulo SSL con fork()." +#: ../Doc/library/os.rst:4169 +msgid "" +"If Python is able to detect that your process has multiple threads, :func:" +"`os.fork` now raises a :exc:`DeprecationWarning`." +msgstr "" -#: ../Doc/library/os.rst:3892 +#: ../Doc/library/os.rst:4173 msgid "" -"Fork a child process, using a new pseudo-terminal as the child's controlling " -"terminal. Return a pair of ``(pid, fd)``, where *pid* is ``0`` in the child, " -"the new child's process id in the parent, and *fd* is the file descriptor of " -"the master end of the pseudo-terminal. For a more portable approach, use " -"the :mod:`pty` module. If an error occurs :exc:`OSError` is raised." +"We chose to surface this as a warning, when detectable, to better inform " +"developers of a design problem that the POSIX platform specifically notes as " +"not supported. Even in code that *appears* to work, it has never been safe " +"to mix threading with :func:`os.fork` on POSIX platforms. The CPython " +"runtime itself has always made API calls that are not safe for use in the " +"child process when threads existed in the parent (such as ``malloc`` and " +"``free``)." msgstr "" -"Bifurca un proceso hijo, usando un nuevo pseudo-terminal como terminal de " + +#: ../Doc/library/os.rst:4182 +msgid "" +"Users of macOS or users of libc or malloc implementations other than those " +"typically found in glibc to date are among those already more likely to " +"experience deadlocks running such code." +msgstr "" + +#: ../Doc/library/os.rst:4186 +msgid "" +"See `this discussion on fork being incompatible with threads `_ for technical details of why we're surfacing " +"this longstanding platform compatibility problem to developers." +msgstr "" + +#: ../Doc/library/os.rst:4191 ../Doc/library/os.rst:4433 +#, fuzzy +msgid ":ref:`Availability `: POSIX, not Emscripten, not WASI." +msgstr ":ref:`Disponibilidad `: POSIX, no Emscripten, no WASI." + +#: ../Doc/library/os.rst:4196 +msgid "" +"Fork a child process, using a new pseudo-terminal as the child's controlling " +"terminal. Return a pair of ``(pid, fd)``, where *pid* is ``0`` in the child, " +"the new child's process id in the parent, and *fd* is the file descriptor of " +"the master end of the pseudo-terminal. For a more portable approach, use " +"the :mod:`pty` module. If an error occurs :exc:`OSError` is raised." +msgstr "" +"Bifurca un proceso hijo, usando un nuevo pseudo-terminal como terminal de " "control del niño. Retorna un par de ``(pid, fd)``, donde *pid* es ``0`` en " "el elemento secundario, la identificación del proceso del elemento " "secundario nuevo en el elemento primario y *fd* es el descriptor de archivo " "del final maestro de El pseudo-terminal. Para un enfoque más portátil, use " "el módulo :mod:`pty`. Si se produce un error se genera :exc:`OSError`." -#: ../Doc/library/os.rst:3898 +#: ../Doc/library/os.rst:4202 msgid "" "Raises an :ref:`auditing event ` ``os.forkpty`` with no arguments." msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.forkpty`` sin argumentos." -#: ../Doc/library/os.rst:3900 +#: ../Doc/library/os.rst:4204 +msgid "" +"If Python is able to detect that your process has multiple threads, this now " +"raises a :exc:`DeprecationWarning`. See the longer explanation on :func:`os." +"fork`." +msgstr "" + +#: ../Doc/library/os.rst:4209 msgid "" "Calling ``forkpty()`` in a subinterpreter is no longer supported (:exc:" "`RuntimeError` is raised)." @@ -5769,7 +6269,7 @@ msgstr "" "Llamar a ``forkpty()`` en un subinterpretador ya no es compatible (:exc:" "`RuntimeError` está activado)." -#: ../Doc/library/os.rst:3913 +#: ../Doc/library/os.rst:4222 msgid "" "Send signal *sig* to the process *pid*. Constants for the specific signals " "available on the host platform are defined in the :mod:`signal` module." @@ -5778,14 +6278,16 @@ msgstr "" "específicas disponibles en la plataforma host se definen en el módulo :mod:" "`signal`." -#: ../Doc/library/os.rst:3916 +#: ../Doc/library/os.rst:4225 +#, fuzzy msgid "" -"Windows: The :data:`signal.CTRL_C_EVENT` and :data:`signal.CTRL_BREAK_EVENT` " -"signals are special signals which can only be sent to console processes " -"which share a common console window, e.g., some subprocesses. Any other " -"value for *sig* will cause the process to be unconditionally killed by the " -"TerminateProcess API, and the exit code will be set to *sig*. The Windows " -"version of :func:`kill` additionally takes process handles to be killed." +"Windows: The :const:`signal.CTRL_C_EVENT` and :const:`signal." +"CTRL_BREAK_EVENT` signals are special signals which can only be sent to " +"console processes which share a common console window, e.g., some " +"subprocesses. Any other value for *sig* will cause the process to be " +"unconditionally killed by the TerminateProcess API, and the exit code will " +"be set to *sig*. The Windows version of :func:`kill` additionally takes " +"process handles to be killed." msgstr "" "Windows: Las señales :data:`signal.CTRL_C_EVENT` y :data:`signal." "CTRL_BREAK_EVENT` son señales especiales que solo pueden enviarse a procesos " @@ -5795,11 +6297,11 @@ msgstr "" "salida se establecerá en *sig*. La versión de Windows de :func:`kill` " "también requiere que los identificadores de proceso sean eliminados." -#: ../Doc/library/os.rst:3924 +#: ../Doc/library/os.rst:4233 msgid "See also :func:`signal.pthread_kill`." msgstr "Ver también :func:`signal.pthread_kill`." -#: ../Doc/library/os.rst:3926 +#: ../Doc/library/os.rst:4235 msgid "" "Raises an :ref:`auditing event ` ``os.kill`` with arguments " "``pid``, ``sig``." @@ -5807,15 +6309,15 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.kill`` con argumentos " "``pid``, ``sig``." -#: ../Doc/library/os.rst:3930 +#: ../Doc/library/os.rst:4239 msgid "Windows support." msgstr "Soporte de Windows." -#: ../Doc/library/os.rst:3940 +#: ../Doc/library/os.rst:4249 msgid "Send the signal *sig* to the process group *pgid*." msgstr "Envíe la señal *sig* al grupo de procesos *pgid*." -#: ../Doc/library/os.rst:3942 +#: ../Doc/library/os.rst:4251 msgid "" "Raises an :ref:`auditing event ` ``os.killpg`` with arguments " "``pgid``, ``sig``." @@ -5823,19 +6325,19 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.killpg`` con argumentos " "``pgid``, ``sig``." -#: ../Doc/library/os.rst:3949 +#: ../Doc/library/os.rst:4258 msgid "" "Add *increment* to the process's \"niceness\". Return the new niceness." msgstr "" "Agregue *increment* a la \"simpatía\" del proceso. Retorna la nueva " "amabilidad." -#: ../Doc/library/os.rst:3956 +#: ../Doc/library/os.rst:4265 +#, fuzzy msgid "" -"Return a file descriptor referring to the process *pid*. This descriptor " -"can be used to perform process management without races and signals. The " -"*flags* argument is provided for future extensions; no flag values are " -"currently defined." +"Return a file descriptor referring to the process *pid* with *flags* set. " +"This descriptor can be used to perform process management without races and " +"signals." msgstr "" "Retorna un descriptor de archivo referente al *pid* del proceso. Este " "descriptor puede ser usado para realizar gestión de procesos sin necesidad " @@ -5843,16 +6345,29 @@ msgstr "" "extensiones futuras; ningún valor se encuentra definido en las banderas " "actualmente." -#: ../Doc/library/os.rst:3961 +#: ../Doc/library/os.rst:4269 msgid "See the :manpage:`pidfd_open(2)` man page for more details." msgstr "Ver la página manual de :manpage:`pidfd_open(2)` para mas detalles." -#: ../Doc/library/os.rst:3963 +#: ../Doc/library/os.rst:4271 #, fuzzy msgid ":ref:`Availability `: Linux >= 5.3" msgstr ":ref:`Disponibilidad `: Linux >= 5.3" -#: ../Doc/library/os.rst:3969 +#: ../Doc/library/os.rst:4276 +msgid "" +"This flag indicates that the file descriptor will be non-blocking. If the " +"process referred to by the file descriptor has not yet terminated, then an " +"attempt to wait on the file descriptor using :manpage:`waitid(2)` will " +"immediately return the error :const:`~errno.EAGAIN` rather than blocking." +msgstr "" + +#: ../Doc/library/os.rst:4281 +#, fuzzy +msgid ":ref:`Availability `: Linux >= 5.10" +msgstr ":ref:`Disponibilidad `: Linux >= 5.4" + +#: ../Doc/library/os.rst:4287 msgid "" "Lock program segments into memory. The value of *op* (defined in ````) determines which segments are locked." @@ -5860,7 +6375,7 @@ msgstr "" "Bloquee segmentos del programa en la memoria. El valor de *op* (definido en " "````) determina qué segmentos están bloqueados." -#: ../Doc/library/os.rst:3977 +#: ../Doc/library/os.rst:4295 msgid "" "Open a pipe to or from command *cmd*. The return value is an open file " "object connected to the pipe, which can be read or written depending on " @@ -5876,7 +6391,7 @@ msgstr "" "correspondiente a la función integrada :func:`open`. El objeto de archivo " "retornado lee o escribe cadenas de texto en lugar de bytes." -#: ../Doc/library/os.rst:3985 +#: ../Doc/library/os.rst:4303 msgid "" "The ``close`` method returns :const:`None` if the subprocess exited " "successfully, or the subprocess's return code if there was an error. On " @@ -5897,7 +6412,7 @@ msgstr "" "el valor de retorno contiene el código de retorno entero firmado del proceso " "secundario." -#: ../Doc/library/os.rst:3995 +#: ../Doc/library/os.rst:4313 msgid "" "On Unix, :func:`waitstatus_to_exitcode` can be used to convert the ``close`` " "method result (exit status) into an exit code if it is not ``None``. On " @@ -5908,7 +6423,7 @@ msgstr "" "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:4000 +#: ../Doc/library/os.rst:4318 msgid "" "This is implemented using :class:`subprocess.Popen`; see that class's " "documentation for more powerful ways to manage and communicate with " @@ -5918,12 +6433,12 @@ msgstr "" "documentación de esa clase para obtener formas más potentes de administrar y " "comunicarse con subprocesos." -#: ../Doc/library/os.rst:4005 +#: ../Doc/library/os.rst:4322 #, fuzzy msgid ":ref:`Availability `: not Emscripten, not WASI." msgstr ":ref:`Disponibilidad `: no Emscripten, no WASI." -#: ../Doc/library/os.rst:4007 +#: ../Doc/library/os.rst:4325 msgid "" "The :ref:`Python UTF-8 Mode ` affects encodings used for *cmd* " "and pipe contents." @@ -5931,7 +6446,7 @@ msgstr "" "El :ref:`Python UTF-8 Mode ` afecta las codificaciones utilizadas " "para *cmd* y el contenido de la canalización." -#: ../Doc/library/os.rst:4010 +#: ../Doc/library/os.rst:4328 msgid "" ":func:`popen` is a simple wrapper around :class:`subprocess.Popen`. Use :" "class:`subprocess.Popen` or :func:`subprocess.run` to control options like " @@ -5941,20 +6456,21 @@ msgstr "" "Popen`. Use :class:`subprocess.Popen` o :func:`subprocess.run` para " "controlar opciones como codificaciones." -#: ../Doc/library/os.rst:4019 -msgid "Wraps the :c:func:`posix_spawn` C library API for use from Python." +#: ../Doc/library/os.rst:4337 +#, fuzzy +msgid "Wraps the :c:func:`!posix_spawn` C library API for use from Python." msgstr "" "Envuelve la API de la biblioteca C :c:func:`posix_spawn` para usar desde " "Python." -#: ../Doc/library/os.rst:4021 +#: ../Doc/library/os.rst:4339 msgid "" "Most users should use :func:`subprocess.run` instead of :func:`posix_spawn`." msgstr "" "La mayoría de los usuarios deberían usar :func:`subprocess.run` en lugar de :" "func:`posix_spawn`." -#: ../Doc/library/os.rst:4023 +#: ../Doc/library/os.rst:4341 msgid "" "The positional-only arguments *path*, *args*, and *env* are similar to :func:" "`execve`." @@ -5962,7 +6478,7 @@ msgstr "" "Los argumentos de solo posición *path*, *args* y *env* son similares a :func:" "`execve`." -#: ../Doc/library/os.rst:4026 +#: ../Doc/library/os.rst:4344 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 " @@ -5972,7 +6488,7 @@ msgstr "" "contener un directorio. Utilice :func:`posix_spawnp` para pasar un archivo " "ejecutable sin directorio." -#: ../Doc/library/os.rst:4030 +#: ../Doc/library/os.rst:4348 msgid "" "The *file_actions* argument may be a sequence of tuples describing actions " "to take on specific file descriptors in the child process between the C " @@ -5987,37 +6503,38 @@ msgstr "" "los tres indicadores de tipo que se enumeran a continuación y que describen " "los elementos de tupla restantes:" -#: ../Doc/library/os.rst:4038 +#: ../Doc/library/os.rst:4356 msgid "(``os.POSIX_SPAWN_OPEN``, *fd*, *path*, *flags*, *mode*)" msgstr "(``os.POSIX_SPAWN_OPEN``, *fd*, *path*, *flags*, *mode*)" -#: ../Doc/library/os.rst:4040 +#: ../Doc/library/os.rst:4358 msgid "Performs ``os.dup2(os.open(path, flags, mode), fd)``." msgstr "Realiza ``os.dup2(os.open(path, flags, mode), fd)``." -#: ../Doc/library/os.rst:4044 +#: ../Doc/library/os.rst:4362 msgid "(``os.POSIX_SPAWN_CLOSE``, *fd*)" msgstr "(``os.POSIX_SPAWN_CLOSE``, *fd*)" -#: ../Doc/library/os.rst:4046 +#: ../Doc/library/os.rst:4364 msgid "Performs ``os.close(fd)``." msgstr "Realiza ``os.close(fd)``." -#: ../Doc/library/os.rst:4050 +#: ../Doc/library/os.rst:4368 msgid "(``os.POSIX_SPAWN_DUP2``, *fd*, *new_fd*)" msgstr "(``os.POSIX_SPAWN_DUP2``, *fd*, *new_fd*)" -#: ../Doc/library/os.rst:4052 +#: ../Doc/library/os.rst:4370 msgid "Performs ``os.dup2(fd, new_fd)``." msgstr "Realiza ``os.dup2(fd, new_fd)``." -#: ../Doc/library/os.rst:4054 +#: ../Doc/library/os.rst:4372 +#, fuzzy msgid "" -"These tuples correspond to the C library :c:func:" -"`posix_spawn_file_actions_addopen`, :c:func:" -"`posix_spawn_file_actions_addclose`, and :c:func:" -"`posix_spawn_file_actions_adddup2` API calls used to prepare for the :c:func:" -"`posix_spawn` call itself." +"These tuples correspond to the C library :c:func:`!" +"posix_spawn_file_actions_addopen`, :c:func:`!" +"posix_spawn_file_actions_addclose`, and :c:func:`!" +"posix_spawn_file_actions_adddup2` API calls used to prepare for the :c:func:" +"`!posix_spawn` call itself." msgstr "" "Estas tuplas corresponden a la biblioteca C :c:func:" "`posix_spawn_file_actions_addopen`, :c:func:" @@ -6025,13 +6542,14 @@ msgstr "" "`posix_spawn_file_actions_adddup2` Llamadas API utilizadas para prepararse " "para :c:func:`posix_spawn` se llame a sí mismo." -#: ../Doc/library/os.rst:4060 +#: ../Doc/library/os.rst:4378 +#, fuzzy msgid "" "The *setpgroup* argument will set the process group of the child to the " "value specified. If the value specified is 0, the child's process group ID " "will be made the same as its process ID. If the value of *setpgroup* is not " "set, the child will inherit the parent's process group ID. This argument " -"corresponds to the C library :c:data:`POSIX_SPAWN_SETPGROUP` flag." +"corresponds to the C library :c:macro:`!POSIX_SPAWN_SETPGROUP` flag." msgstr "" "El argumento *setpgroup* establecerá el grupo de proceso del elemento " "secundario en el valor especificado. Si el valor especificado es 0, la ID " @@ -6040,7 +6558,8 @@ msgstr "" "ID del grupo de proceso del elemento primario. Este argumento corresponde al " "flag :c:data:`POSIX_SPAWN_SETPGROUP` de la biblioteca de C." -#: ../Doc/library/os.rst:4066 +#: ../Doc/library/os.rst:4384 +#, fuzzy msgid "" "If the *resetids* argument is ``True`` it will reset the effective UID and " "GID of the child to the real UID and GID of the parent process. If the " @@ -6048,7 +6567,7 @@ msgid "" "the parent. In either case, if the set-user-ID and set-group-ID permission " "bits are enabled on the executable file, their effect will override the " "setting of the effective UID and GID. This argument corresponds to the C " -"library :c:data:`POSIX_SPAWN_RESETIDS` flag." +"library :c:macro:`!POSIX_SPAWN_RESETIDS` flag." msgstr "" "Si el argumento *resetids* es ``True``, restablecerá el UID y el GID " "efectivos del niño al UID y GID reales del proceso padre. Si el argumento es " @@ -6058,48 +6577,52 @@ msgstr "" "UID y GID efectivos. Este argumento corresponde a la flag de la biblioteca " "C :c:data:`POSIX_SPAWN_RESETIDS`." -#: ../Doc/library/os.rst:4074 +#: ../Doc/library/os.rst:4392 +#, fuzzy msgid "" "If the *setsid* argument is ``True``, it will create a new session ID for " -"``posix_spawn``. *setsid* requires :c:data:`POSIX_SPAWN_SETSID` or :c:data:" -"`POSIX_SPAWN_SETSID_NP` flag. Otherwise, :exc:`NotImplementedError` is " -"raised." +"``posix_spawn``. *setsid* requires :c:macro:`!POSIX_SPAWN_SETSID` or :c:" +"macro:`!POSIX_SPAWN_SETSID_NP` flag. Otherwise, :exc:`NotImplementedError` " +"is raised." msgstr "" "Si el argumento *setsid* es ``True``, creará una nueva ID de sesión para " "``posix_spawn``. *setsid* requiere el indicador :c:data:`POSIX_SPAWN_SETSID` " "o :c:data:`POSIX_SPAWN_SETSID_NP`. De lo contrario, se genera :exc:" "`NotImplementedError`." -#: ../Doc/library/os.rst:4079 +#: ../Doc/library/os.rst:4397 +#, fuzzy msgid "" "The *setsigmask* argument will set the signal mask to the signal set " "specified. If the parameter is not used, then the child inherits the " -"parent's signal mask. This argument corresponds to the C library :c:data:" -"`POSIX_SPAWN_SETSIGMASK` flag." +"parent's signal mask. This argument corresponds to the C library :c:macro:`!" +"POSIX_SPAWN_SETSIGMASK` flag." msgstr "" "El argumento *setsigmask* establecerá la máscara de señal en el conjunto de " "señal especificado. Si no se usa el parámetro, el niño hereda la máscara de " "señal del padre. Este argumento corresponde al flag :c:data:" "`POSIX_SPAWN_SETSIGMASK` de la biblioteca en C." -#: ../Doc/library/os.rst:4084 +#: ../Doc/library/os.rst:4402 +#, fuzzy msgid "" "The *sigdef* argument will reset the disposition of all signals in the set " -"specified. This argument corresponds to the C library :c:data:" -"`POSIX_SPAWN_SETSIGDEF` flag." +"specified. This argument corresponds to the C library :c:macro:`!" +"POSIX_SPAWN_SETSIGDEF` flag." msgstr "" "El argumento *sigdef* restablecerá la disposición de todas las señales en el " "conjunto especificado. Este argumento corresponde al flag :c:data:" "`POSIX_SPAWN_SETSIGDEF` de la biblioteca de C." -#: ../Doc/library/os.rst:4088 +#: ../Doc/library/os.rst:4406 +#, fuzzy msgid "" "The *scheduler* argument must be a tuple containing the (optional) scheduler " "policy and an instance of :class:`sched_param` with the scheduler " "parameters. A value of ``None`` in the place of the scheduler policy " "indicates that is not being provided. This argument is a combination of the " -"C library :c:data:`POSIX_SPAWN_SETSCHEDPARAM` and :c:data:" -"`POSIX_SPAWN_SETSCHEDULER` flags." +"C library :c:macro:`!POSIX_SPAWN_SETSCHEDPARAM` and :c:macro:`!" +"POSIX_SPAWN_SETSCHEDULER` flags." msgstr "" "El argumento *scheduler* debe ser una tupla que contenga la política del " "planificador (opcional) y una instancia de :class:`sched_param` con los " @@ -6108,7 +6631,7 @@ msgstr "" "combinación de la biblioteca C :c:data:`POSIX_SPAWN_SETSCHEDPARAM` y flags :" "c:data:`POSIX_SPAWN_SETSCHEDULER`." -#: ../Doc/library/os.rst:4095 ../Doc/library/os.rst:4111 +#: ../Doc/library/os.rst:4413 ../Doc/library/os.rst:4429 msgid "" "Raises an :ref:`auditing event ` ``os.posix_spawn`` with arguments " "``path``, ``argv``, ``env``." @@ -6116,13 +6639,14 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.posix_spawn`` con " "argumentos ``ruta``, ``argv``, ``env``." -#: ../Doc/library/os.rst:4105 -msgid "Wraps the :c:func:`posix_spawnp` C library API for use from Python." +#: ../Doc/library/os.rst:4423 +#, fuzzy +msgid "Wraps the :c:func:`!posix_spawnp` C library API for use from Python." msgstr "" "Envuelve la API de la biblioteca :c:func:`posix_spawnp` C para usar desde " "Python." -#: ../Doc/library/os.rst:4107 +#: ../Doc/library/os.rst:4425 msgid "" "Similar to :func:`posix_spawn` except that the system searches for the " "*executable* file in the list of directories specified by the :envvar:`PATH` " @@ -6132,15 +6656,11 @@ msgstr "" "*executable* en la lista de directorios especificada por la variable de " "entorno :envvar:`PATH` (de la misma manera que para ``execvp(3)`` )" -#, fuzzy -msgid ":ref:`Availability `: POSIX, not Emscripten, not WASI." -msgstr ":ref:`Disponibilidad `: POSIX, no Emscripten, no WASI." - -#: ../Doc/library/os.rst:4117 +#: ../Doc/library/os.rst:4435 msgid "See :func:`posix_spawn` documentation." msgstr "Consulte la documentación de :func:`posix_spawn`." -#: ../Doc/library/os.rst:4123 +#: ../Doc/library/os.rst:4441 msgid "" "Register callables to be executed when a new child process is forked using :" "func:`os.fork` or similar process cloning APIs. The parameters are optional " @@ -6151,11 +6671,11 @@ msgstr "" "similares. Los parámetros son opcionales y solo de palabras clave. Cada uno " "especifica un punto de llamada diferente." -#: ../Doc/library/os.rst:4128 +#: ../Doc/library/os.rst:4446 msgid "*before* is a function called before forking a child process." msgstr "*before* es una función llamada antes de bifurcar un proceso hijo." -#: ../Doc/library/os.rst:4129 +#: ../Doc/library/os.rst:4447 msgid "" "*after_in_parent* is a function called from the parent process after forking " "a child process." @@ -6163,11 +6683,11 @@ msgstr "" "*after_in_parent* es una función llamada desde el proceso padre después de " "bifurcar un proceso hijo." -#: ../Doc/library/os.rst:4131 +#: ../Doc/library/os.rst:4449 msgid "*after_in_child* is a function called from the child process." msgstr "*after_in_child* es una función llamada desde el proceso hijo." -#: ../Doc/library/os.rst:4133 +#: ../Doc/library/os.rst:4451 msgid "" "These calls are only made if control is expected to return to the Python " "interpreter. A typical :mod:`subprocess` launch will not trigger them as " @@ -6177,7 +6697,7 @@ msgstr "" "intérprete de Python. Un lanzamiento típico :mod:`subprocess` no los " "activará ya que el niño no va a volver a ingresar al intérprete." -#: ../Doc/library/os.rst:4137 +#: ../Doc/library/os.rst:4455 msgid "" "Functions registered for execution before forking are called in reverse " "registration order. Functions registered for execution after forking " @@ -6188,7 +6708,7 @@ msgstr "" "ejecución después de la bifurcación (ya sea en el padre o en el hijo) se " "invocan en orden de registro." -#: ../Doc/library/os.rst:4142 +#: ../Doc/library/os.rst:4460 msgid "" "Note that :c:func:`fork` calls made by third-party C code may not call those " "functions, unless it explicitly calls :c:func:`PyOS_BeforeFork`, :c:func:" @@ -6199,15 +6719,15 @@ msgstr "" "a :c:func:`PyOS_BeforeFork`, :c:func:`PyOS_AfterFork_Parent` y :c:func:" "`PyOS_AfterFork_Child`." -#: ../Doc/library/os.rst:4146 +#: ../Doc/library/os.rst:4464 msgid "There is no way to unregister a function." msgstr "No hay forma de cancelar el registro de una función." -#: ../Doc/library/os.rst:4162 +#: ../Doc/library/os.rst:4480 msgid "Execute the program *path* in a new process." msgstr "Ejecute el programa *path* en un nuevo proceso." -#: ../Doc/library/os.rst:4164 +#: ../Doc/library/os.rst:4482 msgid "" "(Note that the :mod:`subprocess` module provides more powerful facilities " "for spawning new processes and retrieving their results; using that module " @@ -6219,7 +6739,7 @@ msgstr "" "preferible usar ese módulo que usar estas funciones. Compruebe especialmente " "la sección :ref:`subprocess-replacements`.)" -#: ../Doc/library/os.rst:4169 +#: ../Doc/library/os.rst:4487 msgid "" "If *mode* is :const:`P_NOWAIT`, this function returns the process id of the " "new process; if *mode* is :const:`P_WAIT`, returns the process's exit code " @@ -6234,7 +6754,7 @@ msgstr "" "realidad será el identificador del proceso, por lo que se puede usar con la " "función :func:`waitpid`." -#: ../Doc/library/os.rst:4175 +#: ../Doc/library/os.rst:4493 msgid "" "Note on VxWorks, this function doesn't return ``-signal`` when the new " "process is killed. Instead it raises OSError exception." @@ -6242,7 +6762,7 @@ msgstr "" "Nota sobre VxWorks, esta función no retorna ``-signal`` cuando se cierra el " "nuevo proceso. En su lugar, genera una excepción OSError." -#: ../Doc/library/os.rst:4178 +#: ../Doc/library/os.rst:4496 msgid "" "The \"l\" and \"v\" variants of the :func:`spawn\\* ` functions " "differ in how command-line arguments are passed. The \"l\" variants are " @@ -6263,7 +6783,7 @@ msgstr "" "*args*. En cualquier caso, los argumentos del proceso secundario deben " "comenzar con el nombre del comando que se está ejecutando." -#: ../Doc/library/os.rst:4187 +#: ../Doc/library/os.rst:4505 msgid "" "The variants which include a second \"p\" near the end (:func:`spawnlp`, :" "func:`spawnlpe`, :func:`spawnvp`, and :func:`spawnvpe`) will use the :envvar:" @@ -6285,7 +6805,7 @@ msgstr "" "utilizarán la variable :envvar:`PATH` para localizar el ejecutable; *path* " "debe contener una ruta absoluta o relativa apropiada." -#: ../Doc/library/os.rst:4197 +#: ../Doc/library/os.rst:4515 msgid "" "For :func:`spawnle`, :func:`spawnlpe`, :func:`spawnve`, and :func:`spawnvpe` " "(note that these all end in \"e\"), the *env* parameter must be a mapping " @@ -6306,7 +6826,7 @@ msgstr "" "cadenas; Las teclas o valores no válidos harán que la función falle, con un " "valor de retorno de ``127``." -#: ../Doc/library/os.rst:4206 +#: ../Doc/library/os.rst:4524 msgid "" "As an example, the following calls to :func:`spawnlp` and :func:`spawnvpe` " "are equivalent::" @@ -6314,7 +6834,7 @@ msgstr "" "Como ejemplo, las siguientes llamadas a :func:`spawnlp` y :func:`spawnvpe` " "son equivalentes::" -#: ../Doc/library/os.rst:4215 +#: ../Doc/library/os.rst:4533 msgid "" "Raises an :ref:`auditing event ` ``os.spawn`` with arguments " "``mode``, ``path``, ``args``, ``env``." @@ -6322,7 +6842,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.spawn`` con argumentos " "``mode``, ``path``, ``args``, ``env``." -#: ../Doc/library/os.rst:4219 +#: ../Doc/library/os.rst:4537 msgid "" ":func:`spawnlp`, :func:`spawnlpe`, :func:`spawnvp` and :func:`spawnvpe` are " "not available on Windows. :func:`spawnle` and :func:`spawnve` are not " @@ -6334,7 +6854,7 @@ msgstr "" "seguros para subprocesos en Windows; le recomendamos que utilice el módulo :" "mod:`subprocess` en su lugar." -#: ../Doc/library/os.rst:4231 +#: ../Doc/library/os.rst:4549 msgid "" "Possible values for the *mode* parameter to the :func:`spawn\\* ` " "family of functions. If either of these values is given, the :func:" @@ -6346,7 +6866,7 @@ msgstr "" "`spawn\\*` volverán tan pronto como se haya creado el nuevo proceso, con la " "identificación del proceso como valor de retorno." -#: ../Doc/library/os.rst:4241 +#: ../Doc/library/os.rst:4559 msgid "" "Possible value for the *mode* parameter to the :func:`spawn\\* ` " "family of functions. If this is given as *mode*, the :func:`spawn\\*` " @@ -6360,7 +6880,7 @@ msgstr "" "retornará el código de salida del proceso, la ejecución es exitosa, o ``-" "signal`` si una señal mata el proceso." -#: ../Doc/library/os.rst:4253 +#: ../Doc/library/os.rst:4571 msgid "" "Possible values for the *mode* parameter to the :func:`spawn\\* ` " "family of functions. These are less portable than those listed above. :" @@ -6376,17 +6896,17 @@ msgstr "" "const:`P_OVERLAY`, el proceso actual será reemplazado; la función :func:" "`spawn\\* ` no volverá." -#: ../Doc/library/os.rst:4264 +#: ../Doc/library/os.rst:4582 msgid "Start a file with its associated application." msgstr "Inicie un archivo con su aplicación asociada." -#: ../Doc/library/os.rst:4266 +#: ../Doc/library/os.rst:4584 +#, fuzzy msgid "" -"When *operation* is not specified or ``'open'``, this acts like double-" -"clicking the file in Windows Explorer, or giving the file name as an " -"argument to the :program:`start` command from the interactive command shell: " -"the file is opened with whatever application (if any) its extension is " -"associated." +"When *operation* is not specified, this acts like double-clicking the file " +"in Windows Explorer, or giving the file name as an argument to the :program:" +"`start` command from the interactive command shell: the file is opened with " +"whatever application (if any) its extension is associated." msgstr "" "Cuando *operation* no se especifica o ``'abre'``, esto actúa como hacer " "doble clic en el archivo en el Explorador de Windows, o dar el nombre del " @@ -6394,19 +6914,20 @@ msgstr "" "comandos interactivo: el archivo se abre con cualquier aplicación (si la " "hay) a la que está asociada su extensión." -#: ../Doc/library/os.rst:4271 +#: ../Doc/library/os.rst:4589 +#, fuzzy msgid "" "When another *operation* is given, it must be a \"command verb\" that " "specifies what should be done with the file. Common verbs documented by " -"Microsoft are ``'print'`` and ``'edit'`` (to be used on files) as well as " -"``'explore'`` and ``'find'`` (to be used on directories)." +"Microsoft are ``'open'``, ``'print'`` and ``'edit'`` (to be used on files) " +"as well as ``'explore'`` and ``'find'`` (to be used on directories)." msgstr "" "Cuando se da otra *operation*, debe ser un \"verbo de comando\" que " "especifica qué se debe hacer con el archivo. Los verbos comunes documentados " "por Microsoft son ``'print'`` y ``'edit'`` (para usar en archivos), así como " "``'explore'`` y ``'find'`` (para usar en directorios)." -#: ../Doc/library/os.rst:4276 +#: ../Doc/library/os.rst:4594 msgid "" "When launching an application, specify *arguments* to be passed as a single " "string. This argument may have no effect when using this function to launch " @@ -6416,7 +6937,7 @@ msgstr "" "sola cadena. Es posible que este argumento no tenga ningún efecto cuando se " "utiliza esta función para iniciar un documento." -#: ../Doc/library/os.rst:4280 +#: ../Doc/library/os.rst:4598 msgid "" "The default working directory is inherited, but may be overridden by the " "*cwd* argument. This should be an absolute path. A relative *path* will be " @@ -6426,18 +6947,19 @@ msgstr "" "puede anularlo. Este debería ser un camino absoluto. Un *path* relativo se " "resolverá contra este argumento." -#: ../Doc/library/os.rst:4284 +#: ../Doc/library/os.rst:4602 +#, fuzzy msgid "" "Use *show_cmd* to override the default window style. Whether this has any " "effect will depend on the application being launched. Values are integers as " -"supported by the Win32 :c:func:`ShellExecute` function." +"supported by the Win32 :c:func:`!ShellExecute` function." msgstr "" "Utilice *show_cmd* para anular el estilo de ventana predeterminado. Si esto " "tiene algún efecto dependerá de la aplicación que se esté iniciando. Los " "valores son números enteros admitidos por la función Win32 :c:func:" "`ShellExecute`." -#: ../Doc/library/os.rst:4288 +#: ../Doc/library/os.rst:4606 msgid "" ":func:`startfile` returns as soon as the associated application is launched. " "There is no option to wait for the application to close, and no way to " @@ -6455,9 +6977,10 @@ msgstr "" "`pathlib` o la función :func:`os.path.normpath` para asegurarse de que las " "rutas estén codificadas correctamente para Win32." -#: ../Doc/library/os.rst:4296 +#: ../Doc/library/os.rst:4614 +#, fuzzy msgid "" -"To reduce interpreter startup overhead, the Win32 :c:func:`ShellExecute` " +"To reduce interpreter startup overhead, the Win32 :c:func:`!ShellExecute` " "function is not resolved until this function is first called. If the " "function cannot be resolved, :exc:`NotImplementedError` will be raised." msgstr "" @@ -6466,7 +6989,7 @@ msgstr "" "primera vez. Si la función no se puede resolver, se lanzará :exc:" "`NotImplementedError`." -#: ../Doc/library/os.rst:4300 +#: ../Doc/library/os.rst:4618 msgid "" "Raises an :ref:`auditing event ` ``os.startfile`` with arguments " "``path``, ``operation``." @@ -6474,7 +6997,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.startfile`` con " "argumentos ``path``, ``operation``." -#: ../Doc/library/os.rst:4302 +#: ../Doc/library/os.rst:4620 msgid "" "Raises an :ref:`auditing event ` ``os.startfile/2`` with arguments " "``path``, ``operation``, ``arguments``, ``cwd``, ``show_cmd``." @@ -6482,7 +7005,7 @@ msgstr "" "Lanza un :ref:`evento de auditoria ` ``os.startfile/2`` con " "argumentos ``path``, ``operation``, ``arguments``, ``cwd``, ``show_cmd``." -#: ../Doc/library/os.rst:4306 +#: ../Doc/library/os.rst:4624 msgid "" "Added the *arguments*, *cwd* and *show_cmd* arguments, and the ``os." "startfile/2`` audit event." @@ -6490,7 +7013,7 @@ msgstr "" "Se agregaron los argumentos *arguments*, *cwd* y *show_cmd*, y el evento de " "auditoría ``os.startfile/2``." -#: ../Doc/library/os.rst:4313 +#: ../Doc/library/os.rst:4631 msgid "" "Execute the command (a string) in a subshell. This is implemented by " "calling the Standard C function :c:func:`system`, and has the same " @@ -6508,7 +7031,7 @@ msgstr "" "del valor de retorno de la función C, por lo que el valor de retorno de la " "función de Python depende del sistema." -#: ../Doc/library/os.rst:4321 +#: ../Doc/library/os.rst:4639 msgid "" "On Unix, the return value is the exit status of the process encoded in the " "format specified for :func:`wait`." @@ -6516,7 +7039,7 @@ msgstr "" "En Unix, el valor de retorno es el estado de salida del proceso codificado " "en el formato especificado para :func:`wait`." -#: ../Doc/library/os.rst:4324 +#: ../Doc/library/os.rst:4642 msgid "" "On Windows, the return value is that returned by the system shell after " "running *command*. The shell is given by the Windows environment variable :" @@ -6530,7 +7053,7 @@ msgstr "" "que retorna el estado de salida de la ejecución del comando; En sistemas que " "utilizan un shell no nativo, consulte la documentación del shell." -#: ../Doc/library/os.rst:4330 +#: ../Doc/library/os.rst:4648 msgid "" "The :mod:`subprocess` module provides more powerful facilities for spawning " "new processes and retrieving their results; using that module is preferable " @@ -6543,7 +7066,7 @@ msgstr "" "replacements` en la documentación de :mod:`subprocess` para obtener algunas " "recetas útiles." -#: ../Doc/library/os.rst:4335 +#: ../Doc/library/os.rst:4653 msgid "" "On Unix, :func:`waitstatus_to_exitcode` can be used to convert the result " "(exit status) into an exit code. On Windows, the result is directly the exit " @@ -6553,7 +7076,7 @@ msgstr "" "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:4339 +#: ../Doc/library/os.rst:4657 msgid "" "Raises an :ref:`auditing event ` ``os.system`` with argument " "``command``." @@ -6561,7 +7084,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``os.system`` con argumento " "``command``." -#: ../Doc/library/os.rst:4346 +#: ../Doc/library/os.rst:4664 msgid "" "Returns the current global process times. The return value is an object with " "five attributes:" @@ -6569,30 +7092,30 @@ msgstr "" "Retorna los tiempos de proceso globales actuales. El valor de retorno es un " "objeto con cinco atributos:" -#: ../Doc/library/os.rst:4349 +#: ../Doc/library/os.rst:4667 msgid ":attr:`!user` - user time" msgstr ":attr:`!user` - tiempo de usuario" -#: ../Doc/library/os.rst:4350 +#: ../Doc/library/os.rst:4668 msgid ":attr:`!system` - system time" msgstr ":attr:`!system` - tiempo de sistema" -#: ../Doc/library/os.rst:4351 +#: ../Doc/library/os.rst:4669 msgid ":attr:`!children_user` - user time of all child processes" msgstr "" ":attr:`!children_user` - tiempo de usuario de todos los procesos secundarios" -#: ../Doc/library/os.rst:4352 +#: ../Doc/library/os.rst:4670 msgid ":attr:`!children_system` - system time of all child processes" msgstr "" ":attr:`!children_system` - hora del sistema de todos los procesos secundarios" -#: ../Doc/library/os.rst:4353 +#: ../Doc/library/os.rst:4671 msgid ":attr:`!elapsed` - elapsed real time since a fixed point in the past" msgstr "" ":attr:`!elapsed`: tiempo real transcurrido desde un punto fijo en el pasado" -#: ../Doc/library/os.rst:4355 +#: ../Doc/library/os.rst:4673 msgid "" "For backwards compatibility, this object also behaves like a five-tuple " "containing :attr:`!user`, :attr:`!system`, :attr:`!children_user`, :attr:`!" @@ -6602,9 +7125,10 @@ msgstr "" "como una tupla de cinco que contiene :attr:`!user`, :attr:`!system`, :attr:`!" "children_user`, :attr:`!children_system` y :attr:`!elapsed` en ese orden." -#: ../Doc/library/os.rst:4359 +#: ../Doc/library/os.rst:4677 +#, fuzzy msgid "" -"See the Unix manual page :manpage:`times(2)` and `times(3) `_ manual page on Unix or `the " "GetProcessTimes MSDN `_ on Windows. On " @@ -6618,7 +7142,7 @@ msgstr "" "Windows, solo se conocen :attr:`!user` y :attr:`!system`; los otros " "atributos son cero." -#: ../Doc/library/os.rst:4373 +#: ../Doc/library/os.rst:4691 msgid "" "Wait for completion of a child process, and return a tuple containing its " "pid and exit status indication: a 16-bit number, whose low byte is the " @@ -6632,7 +7156,13 @@ msgstr "" "estado de salida (si la señal el número es cero); el bit alto del byte bajo " "se establece si se produjo un archivo central." -#: ../Doc/library/os.rst:4379 ../Doc/library/os.rst:4484 +#: ../Doc/library/os.rst:4697 +msgid "" +"If there are no children that could be waited for, :exc:`ChildProcessError` " +"is raised." +msgstr "" + +#: ../Doc/library/os.rst:4700 ../Doc/library/os.rst:4772 msgid "" ":func:`waitstatus_to_exitcode` can be used to convert the exit status into " "an exit code." @@ -6640,82 +7170,74 @@ msgstr "" ":func:`waitstatus_to_exitcode` puede ser usado para convertir el estado de " "salida en el código de salida." -#: ../Doc/library/os.rst:4386 +#: ../Doc/library/os.rst:4707 +#, fuzzy msgid "" -":func:`waitpid` can be used to wait for the completion of a specific child " -"process and has more options." +"The other :func:`!wait*` functions documented below can be used to wait for " +"the completion of a specific child process and have more options. :func:" +"`waitpid` is the only one also available on Windows." 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:4391 -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. " -"*id* specifies the pid to wait on. *options* is constructed from the ORing " -"of one or more of :data:`WEXITED`, :data:`WSTOPPED` or :data:`WCONTINUED` " -"and additionally may be ORed with :data:`WNOHANG` or :data:`WNOWAIT`. The " -"return value is an object representing the data contained in the :c:type:" -"`siginfo_t` structure, namely: :attr:`si_pid`, :attr:`si_uid`, :attr:" -"`si_signo`, :attr:`si_status`, :attr:`si_code` or ``None`` if :data:" -"`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`, :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:4411 -msgid "" -"These are the possible values for *idtype* in :func:`waitid`. They affect " -"how *id* is interpreted." +#: ../Doc/library/os.rst:4714 +msgid "Wait for the completion of a child process." msgstr "" -"Estos son los valores posibles para *idtype* en :func:`waitid`. Afectan cómo " -"se interpreta *id*." -#: ../Doc/library/os.rst:4420 +#: ../Doc/library/os.rst:4716 msgid "" -"This is a Linux-specific *idtype* that indicates that *id* is a file " -"descriptor that refers to a process." +"*idtype* can be :data:`P_PID`, :data:`P_PGID`, :data:`P_ALL`, or (on Linux) :" +"data:`P_PIDFD`. The interpretation of *id* depends on it; see their " +"individual descriptions." 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:4424 -#, fuzzy -msgid ":ref:`Availability `: Linux >= 5.4" -msgstr ":ref:`Disponibilidad `: Linux >= 5.4" +#: ../Doc/library/os.rst:4719 +msgid "" +"*options* is an OR combination of flags. At least one of :data:`WEXITED`, :" +"data:`WSTOPPED` or :data:`WCONTINUED` is required; :data:`WNOHANG` and :data:" +"`WNOWAIT` are additional optional flags." +msgstr "" -#: ../Doc/library/os.rst:4431 +#: ../Doc/library/os.rst:4723 msgid "" -"Flags that can be used in *options* in :func:`waitid` that specify what " -"child signal to wait for." +"The return value is an object representing the data contained in the :c:type:" +"`siginfo_t` structure with the following attributes:" msgstr "" -"Indicadores que se pueden usar en *options* en :func:`waitid` que " -"especifican qué señal secundaria esperar." -#: ../Doc/library/os.rst:4446 +#: ../Doc/library/os.rst:4726 +msgid ":attr:`!si_pid` (process ID)" +msgstr "" + +#: ../Doc/library/os.rst:4727 +msgid ":attr:`!si_uid` (real user ID of the child)" +msgstr "" + +#: ../Doc/library/os.rst:4728 +msgid ":attr:`!si_signo` (always :const:`~signal.SIGCHLD`)" +msgstr "" + +#: ../Doc/library/os.rst:4729 msgid "" -"These are the possible values for :attr:`si_code` in the result returned by :" -"func:`waitid`." +":attr:`!si_status` (the exit status or signal number, depending on :attr:`!" +"si_code`)" msgstr "" -"Estos son los valores posibles para :attr:`si_code` en el resultado " -"retornado por :func:`waitid`." -#: ../Doc/library/os.rst:4453 -msgid "Added :data:`CLD_KILLED` and :data:`CLD_STOPPED` values." -msgstr "Agregado los valores :data:`CLD_KILLED` y :data:`CLD_STOPPED`." +#: ../Doc/library/os.rst:4730 +msgid ":attr:`!si_code` (see :data:`CLD_EXITED` for possible values)" +msgstr "" -#: ../Doc/library/os.rst:4459 +#: ../Doc/library/os.rst:4732 +msgid "" +"If :data:`WNOHANG` is specified and there are no matching children in the " +"requested state, ``None`` is returned. Otherwise, if there are no matching " +"children that could be waited for, :exc:`ChildProcessError` is raised." +msgstr "" + +#: ../Doc/library/os.rst:4744 msgid "The details of this function differ on Unix and Windows." msgstr "Los detalles de esta función difieren en Unix y Windows." -#: ../Doc/library/os.rst:4461 +#: ../Doc/library/os.rst:4746 msgid "" "On Unix: Wait for completion of a child process given by process id *pid*, " "and return a tuple containing its process id and exit status indication " @@ -6730,7 +7252,7 @@ msgstr "" "valor del número entero *options*, que debe ser ``0`` para el funcionamiento " "normal." -#: ../Doc/library/os.rst:4466 +#: ../Doc/library/os.rst:4751 msgid "" "If *pid* is greater than ``0``, :func:`waitpid` requests status information " "for that specific process. If *pid* is ``0``, the request is for the status " @@ -6747,14 +7269,16 @@ msgstr "" "cualquier proceso en el grupo de procesos ``-pid`` (el valor absoluto de " "*pid*)." -#: ../Doc/library/os.rst:4473 +#: ../Doc/library/os.rst:4758 msgid "" -"An :exc:`OSError` is raised with the value of errno when the syscall returns " -"-1." +"*options* is an OR combination of flags. If it contains :data:`WNOHANG` and " +"there are no matching children in the requested state, ``(0, 0)`` is " +"returned. Otherwise, if there are no matching children that could be waited " +"for, :exc:`ChildProcessError` is raised. Other options that can be used " +"are :data:`WUNTRACED` and :data:`WCONTINUED`." msgstr "" -"Un :exc:`OSError` se lanza con el valor de errno cuando syscall retorna -1." -#: ../Doc/library/os.rst:4476 +#: ../Doc/library/os.rst:4764 msgid "" "On Windows: Wait for completion of a process given by process handle *pid*, " "and return a tuple containing *pid*, and its exit status shifted left by 8 " @@ -6775,13 +7299,14 @@ msgstr "" "funciones :func:`spawn\\* ` llamadas con :const:`P_NOWAIT` retornan " "manejadores de proceso adecuados." -#: ../Doc/library/os.rst:4497 +#: ../Doc/library/os.rst:4785 +#, fuzzy msgid "" "Similar to :func:`waitpid`, except no process id argument is given and a 3-" "element tuple containing the child's process id, exit status indication, and " -"resource usage information is returned. Refer to :mod:`resource`.\\ :func:" -"`~resource.getrusage` for details on resource usage information. The option " -"argument is the same as that provided to :func:`waitpid` and :func:`wait4`." +"resource usage information is returned. Refer to :func:`resource.getrusage` " +"for details on resource usage information. The *options* argument is the " +"same as that provided to :func:`waitpid` and :func:`wait4`." msgstr "" "Similar a :func:`waitpid`, excepto que no se proporciona ningún argumento de " "identificación de proceso y se retorna una tupla de 3 elementos que contiene " @@ -6791,7 +7316,7 @@ msgstr "" "recursos. El argumento de la opción es el mismo que se proporciona a :func:" "`waitpid` y :func:`wait4`." -#: ../Doc/library/os.rst:4504 ../Doc/library/os.rst:4518 +#: ../Doc/library/os.rst:4792 ../Doc/library/os.rst:4806 msgid "" ":func:`waitstatus_to_exitcode` can be used to convert the exit status into " "an exitcode." @@ -6799,13 +7324,14 @@ msgstr "" ":func:`waitstatus_to_exitcode` puede ser usado para convertir el estado de " "salida al código de salida." -#: ../Doc/library/os.rst:4512 +#: ../Doc/library/os.rst:4800 +#, fuzzy msgid "" "Similar to :func:`waitpid`, except a 3-element tuple, containing the child's " "process id, exit status indication, and resource usage information is " -"returned. Refer to :mod:`resource`.\\ :func:`~resource.getrusage` for " -"details on resource usage information. The arguments to :func:`wait4` are " -"the same as those provided to :func:`waitpid`." +"returned. Refer to :func:`resource.getrusage` for details on resource usage " +"information. The arguments to :func:`wait4` are the same as those provided " +"to :func:`waitpid`." msgstr "" "Similar a :func:`waitpid`, excepto una tupla de 3 elementos, que contiene la " "identificación del proceso del niño, la indicación del estado de salida y la " @@ -6814,15 +7340,127 @@ msgstr "" "Los argumentos para :func:`wait4` son los mismos que los proporcionados " "para :func:`waitpid`." -#: ../Doc/library/os.rst:4526 +#: ../Doc/library/os.rst:4817 +#, fuzzy +msgid "" +"These are the possible values for *idtype* in :func:`waitid`. They affect " +"how *id* is interpreted:" +msgstr "" +"Estos son los valores posibles para *idtype* en :func:`waitid`. Afectan cómo " +"se interpreta *id*." + +#: ../Doc/library/os.rst:4820 +msgid ":data:`!P_PID` - wait for the child whose PID is *id*." +msgstr "" + +#: ../Doc/library/os.rst:4821 +msgid ":data:`!P_PGID` - wait for any child whose progress group ID is *id*." +msgstr "" + +#: ../Doc/library/os.rst:4822 +msgid ":data:`!P_ALL` - wait for any child; *id* is ignored." +msgstr "" + +#: ../Doc/library/os.rst:4823 +msgid "" +":data:`!P_PIDFD` - wait for the child identified by the file descriptor *id* " +"(a process file descriptor created with :func:`pidfd_open`)." +msgstr "" + +#: ../Doc/library/os.rst:4828 +msgid ":data:`!P_PIDFD` is only available on Linux >= 5.4." +msgstr "" + +#: ../Doc/library/os.rst:4831 +#, fuzzy +msgid "The :data:`!P_PIDFD` constant." +msgstr "Se agregó la constante :data:`O_CLOEXEC`." + +#: ../Doc/library/os.rst:4837 +#, fuzzy +msgid "" +"This *options* flag for :func:`waitpid`, :func:`wait3`, :func:`wait4`, and :" +"func:`waitid` causes child processes to be reported if they have been " +"continued from a job control stop since they were last reported." +msgstr "" +"Esta opción hace que se informen los procesos secundarios si se han " +"continuado desde una parada de control de trabajo desde la última vez que se " +"informó su estado." + +#: ../Doc/library/os.rst:4846 +msgid "" +"This *options* flag for :func:`waitid` causes child processes that have " +"terminated to be reported." +msgstr "" + +#: ../Doc/library/os.rst:4849 +msgid "" +"The other ``wait*`` functions always report children that have terminated, " +"so this option is not available for them." +msgstr "" + +#: ../Doc/library/os.rst:4859 +msgid "" +"This *options* flag for :func:`waitid` causes child processes that have been " +"stopped by the delivery of a signal to be reported." +msgstr "" + +#: ../Doc/library/os.rst:4862 ../Doc/library/os.rst:4894 +#, fuzzy +msgid "This option is not available for the other ``wait*`` functions." +msgstr "Esta función no está disponible en MacOS." + +#: ../Doc/library/os.rst:4871 +#, fuzzy +msgid "" +"This *options* flag for :func:`waitpid`, :func:`wait3`, and :func:`wait4` " +"causes child processes to also be reported if they have been stopped but " +"their current state has not been reported since they were stopped." +msgstr "" +"Esta opción hace que se informen los procesos secundarios si se han detenido " +"pero su estado actual no se ha informado desde que se detuvieron." + +#: ../Doc/library/os.rst:4875 +#, fuzzy +msgid "This option is not available for :func:`waitid`." +msgstr "Esta función no está disponible en MacOS." + +#: ../Doc/library/os.rst:4882 +msgid "" +"This *options* flag causes :func:`waitpid`, :func:`wait3`, :func:`wait4`, " +"and :func:`waitid` to return right away if no child process status is " +"available immediately." +msgstr "" + +#: ../Doc/library/os.rst:4891 +msgid "" +"This *options* flag causes :func:`waitid` to leave the child in a waitable " +"state, so that a later :func:`!wait*` call can be used to retrieve the child " +"status information again." +msgstr "" + +#: ../Doc/library/os.rst:4906 +#, fuzzy +msgid "" +"These are the possible values for :attr:`!si_code` in the result returned " +"by :func:`waitid`." +msgstr "" +"Estos son los valores posibles para :attr:`si_code` en el resultado " +"retornado por :func:`waitid`." + +#: ../Doc/library/os.rst:4913 +msgid "Added :data:`CLD_KILLED` and :data:`CLD_STOPPED` values." +msgstr "Agregado los valores :data:`CLD_KILLED` y :data:`CLD_STOPPED`." + +#: ../Doc/library/os.rst:4919 msgid "Convert a wait status to an exit code." msgstr "Convertir un estado de espera a un código de salida." -#: ../Doc/library/os.rst:4528 +#: ../Doc/library/os.rst:4921 msgid "On Unix:" msgstr "En Unix:" -#: ../Doc/library/os.rst:4530 +#: ../Doc/library/os.rst:4923 msgid "" "If the process exited normally (if ``WIFEXITED(status)`` is true), return " "the process exit status (return ``WEXITSTATUS(status)``): result greater " @@ -6832,7 +7470,7 @@ msgstr "" "retornan el estado de salida del proceso (return ``WEXITSTATUS(status)``): " "resultado mayor o igual a 0." -#: ../Doc/library/os.rst:4533 +#: ../Doc/library/os.rst:4926 msgid "" "If the process was terminated by a signal (if ``WIFSIGNALED(status)`` is " "true), return ``-signum`` where *signum* is the number of the signal that " @@ -6843,15 +7481,15 @@ msgstr "" "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:4537 +#: ../Doc/library/os.rst:4930 msgid "Otherwise, raise a :exc:`ValueError`." msgstr "En el caso contrario, se lanza un :exc:`ValueError`." -#: ../Doc/library/os.rst:4539 +#: ../Doc/library/os.rst:4932 msgid "On Windows, return *status* shifted right by 8 bits." msgstr "En Windows, retorna *status* desplazado a la derecha en 8 bits." -#: ../Doc/library/os.rst:4541 +#: ../Doc/library/os.rst:4934 msgid "" "On Unix, if the process is being traced or if :func:`waitpid` was called " "with :data:`WUNTRACED` option, the caller must first check if " @@ -6863,7 +7501,7 @@ msgstr "" "si ``WIFSTOPPED(status)`` es verdadero. La función no debe de ser llamada si " "``WIFSTOPPED(status)`` es verdadero." -#: ../Doc/library/os.rst:4548 +#: ../Doc/library/os.rst:4941 msgid "" ":func:`WIFEXITED`, :func:`WEXITSTATUS`, :func:`WIFSIGNALED`, :func:" "`WTERMSIG`, :func:`WIFSTOPPED`, :func:`WSTOPSIG` functions." @@ -6871,38 +7509,7 @@ msgstr "" "Funciones :func:`WIFEXITED`, :func:`WEXITSTATUS`, :func:`WIFSIGNALED`, :func:" "`WTERMSIG`, :func:`WIFSTOPPED`, :func:`WSTOPSIG`." -#: ../Doc/library/os.rst:4558 -msgid "" -"The option for :func:`waitpid` to return immediately if no child process " -"status is available immediately. The function returns ``(0, 0)`` in this " -"case." -msgstr "" -"La opción para :func:`waitpid` para regresar inmediatamente si no hay un " -"estado de proceso secundario disponible de inmediato. La función retorna " -"``(0, 0)`` en este caso." - -#: ../Doc/library/os.rst:4566 -msgid "" -"This option causes child processes to be reported if they have been " -"continued from a job control stop since their status was last reported." -msgstr "" -"Esta opción hace que se informen los procesos secundarios si se han " -"continuado desde una parada de control de trabajo desde la última vez que se " -"informó su estado." - -#: ../Doc/library/os.rst:4571 -msgid "Some Unix systems." -msgstr "Algunos sistemas Unix." - -#: ../Doc/library/os.rst:4576 -msgid "" -"This option causes child processes to be reported if they have been stopped " -"but their current state has not been reported since they were stopped." -msgstr "" -"Esta opción hace que se informen los procesos secundarios si se han detenido " -"pero su estado actual no se ha informado desde que se detuvieron." - -#: ../Doc/library/os.rst:4582 +#: ../Doc/library/os.rst:4949 msgid "" "The following functions take a process status code as returned by :func:" "`system`, :func:`wait`, or :func:`waitpid` as a parameter. They may be used " @@ -6912,7 +7519,7 @@ msgstr "" "por :func:`system`, :func:`wait`, o :func:`waitpid` como parámetro. Pueden " "usarse para determinar la disposición de un proceso." -#: ../Doc/library/os.rst:4588 +#: ../Doc/library/os.rst:4955 msgid "" "Return ``True`` if a core dump was generated for the process, otherwise " "return ``False``." @@ -6920,13 +7527,14 @@ msgstr "" "Retorna ``True`` si se generó un volcado de núcleo para el proceso; de lo " "contrario, retorna ``False``." -#: ../Doc/library/os.rst:4591 ../Doc/library/os.rst:4657 +#: ../Doc/library/os.rst:4958 ../Doc/library/os.rst:5024 msgid "This function should be employed only if :func:`WIFSIGNALED` is true." msgstr "Esta función debe emplearse solo si :func:`WIFSIGNALED` es verdadero." -#: ../Doc/library/os.rst:4598 +#: ../Doc/library/os.rst:4965 +#, fuzzy msgid "" -"Return ``True`` if a stopped child has been resumed by delivery of :data:" +"Return ``True`` if a stopped child has been resumed by delivery of :const:" "`~signal.SIGCONT` (if the process has been continued from a job control " "stop), otherwise return ``False``." msgstr "" @@ -6934,11 +7542,11 @@ msgstr "" "data:`~signal.SIGCONT` (si el proceso se ha continuado desde una parada de " "control de trabajo), de lo contrario, retorna ``False``." -#: ../Doc/library/os.rst:4602 +#: ../Doc/library/os.rst:4969 msgid "See :data:`WCONTINUED` option." msgstr "Ver opción :data:`WCONTINUED`." -#: ../Doc/library/os.rst:4609 +#: ../Doc/library/os.rst:4976 msgid "" "Return ``True`` if the process was stopped by delivery of a signal, " "otherwise return ``False``." @@ -6946,7 +7554,7 @@ msgstr "" "Retorna ``True`` si el proceso se detuvo mediante la entrega de una señal; " "de lo contrario, retorna ``False``." -#: ../Doc/library/os.rst:4612 +#: ../Doc/library/os.rst:4979 msgid "" ":func:`WIFSTOPPED` only returns ``True`` if the :func:`waitpid` call was " "done using :data:`WUNTRACED` option or when the process is being traced " @@ -6956,7 +7564,7 @@ msgstr "" "realizó utilizando la opción :data:`WUNTRACED` o cuando se rastrea el " "proceso (consulte :manpage:`ptrace(2)`)" -#: ../Doc/library/os.rst:4620 +#: ../Doc/library/os.rst:4987 msgid "" "Return ``True`` if the process was terminated by a signal, otherwise return " "``False``." @@ -6964,7 +7572,7 @@ msgstr "" "Retorna ``True`` si el proceso finalizó con una señal; de lo contrario, " "retorna ``False``." -#: ../Doc/library/os.rst:4628 +#: ../Doc/library/os.rst:4995 msgid "" "Return ``True`` if the process exited terminated normally, that is, by " "calling ``exit()`` or ``_exit()``, or by returning from ``main()``; " @@ -6974,31 +7582,31 @@ msgstr "" "``exit()`` o ``_exit()``, o volviendo de ``main()``; de lo contrario, " "retorna ``False``." -#: ../Doc/library/os.rst:4637 +#: ../Doc/library/os.rst:5004 msgid "Return the process exit status." msgstr "Retorna el estado de salida del proceso." -#: ../Doc/library/os.rst:4639 +#: ../Doc/library/os.rst:5006 msgid "This function should be employed only if :func:`WIFEXITED` is true." msgstr "Esta función debe emplearse solo si :func:`WIFEXITED` es verdadero." -#: ../Doc/library/os.rst:4646 +#: ../Doc/library/os.rst:5013 msgid "Return the signal which caused the process to stop." msgstr "Retorna la señal que hizo que el proceso se detuviera." -#: ../Doc/library/os.rst:4648 +#: ../Doc/library/os.rst:5015 msgid "This function should be employed only if :func:`WIFSTOPPED` is true." msgstr "Esta función debe emplearse solo si :func:`WIFSTOPPED` es verdadero." -#: ../Doc/library/os.rst:4655 +#: ../Doc/library/os.rst:5022 msgid "Return the number of the signal that caused the process to terminate." msgstr "Retorna el número de la señal que provocó la finalización del proceso." -#: ../Doc/library/os.rst:4663 +#: ../Doc/library/os.rst:5030 msgid "Interface to the scheduler" msgstr "Interfaz al planificador" -#: ../Doc/library/os.rst:4665 +#: ../Doc/library/os.rst:5032 msgid "" "These functions control how a process is allocated CPU time by the operating " "system. They are only available on some Unix platforms. For more detailed " @@ -7008,7 +7616,7 @@ msgstr "" "a un proceso. Solo están disponibles en algunas plataformas Unix. Para " "obtener información más detallada, consulte las páginas de manual de Unix." -#: ../Doc/library/os.rst:4671 +#: ../Doc/library/os.rst:5038 msgid "" "The following scheduling policies are exposed if they are supported by the " "operating system." @@ -7016,11 +7624,11 @@ msgstr "" "Las siguientes políticas de programación están expuestas si son compatibles " "con el sistema operativo." -#: ../Doc/library/os.rst:4676 +#: ../Doc/library/os.rst:5043 msgid "The default scheduling policy." msgstr "La política de programación predeterminada." -#: ../Doc/library/os.rst:4680 +#: ../Doc/library/os.rst:5047 msgid "" "Scheduling policy for CPU-intensive processes that tries to preserve " "interactivity on the rest of the computer." @@ -7028,25 +7636,25 @@ msgstr "" "Política de programación para procesos intensivos en CPU que intenta " "preservar la interactividad en el resto de la computadora." -#: ../Doc/library/os.rst:4685 +#: ../Doc/library/os.rst:5052 msgid "Scheduling policy for extremely low priority background tasks." msgstr "" "Política de programación para tareas en segundo plano de prioridad " "extremadamente baja." -#: ../Doc/library/os.rst:4689 +#: ../Doc/library/os.rst:5056 msgid "Scheduling policy for sporadic server programs." msgstr "Política de programación para programas de servidor esporádicos." -#: ../Doc/library/os.rst:4693 +#: ../Doc/library/os.rst:5060 msgid "A First In First Out scheduling policy." msgstr "Una política de programación *First In First Out*." -#: ../Doc/library/os.rst:4697 +#: ../Doc/library/os.rst:5064 msgid "A round-robin scheduling policy." msgstr "Una política de programación round-robin." -#: ../Doc/library/os.rst:4701 +#: ../Doc/library/os.rst:5068 msgid "" "This flag can be OR'ed with any other scheduling policy. When a process with " "this flag set forks, its child's scheduling policy and priority are reset to " @@ -7057,7 +7665,7 @@ msgstr "" "programación y la prioridad de su hijo se restablecen a los valores " "predeterminados." -#: ../Doc/library/os.rst:4708 +#: ../Doc/library/os.rst:5075 msgid "" "This class represents tunable scheduling parameters used in :func:" "`sched_setparam`, :func:`sched_setscheduler`, and :func:`sched_getparam`. It " @@ -7067,15 +7675,15 @@ msgstr "" "en :func:`sched_setparam`, :func:`sched_setscheduler` y :func:" "`sched_getparam`. Es inmutable." -#: ../Doc/library/os.rst:4712 +#: ../Doc/library/os.rst:5079 msgid "At the moment, there is only one possible parameter:" msgstr "Por el momento, solo hay un parámetro posible:" -#: ../Doc/library/os.rst:4716 +#: ../Doc/library/os.rst:5083 msgid "The scheduling priority for a scheduling policy." msgstr "La prioridad de programación para una política de programación." -#: ../Doc/library/os.rst:4721 +#: ../Doc/library/os.rst:5088 msgid "" "Get the minimum priority value for *policy*. *policy* is one of the " "scheduling policy constants above." @@ -7083,7 +7691,7 @@ msgstr "" "Obtiene el valor de prioridad mínimo para *policy*. *policy* es una de las " "constantes de política de programación anteriores." -#: ../Doc/library/os.rst:4727 +#: ../Doc/library/os.rst:5094 msgid "" "Get the maximum priority value for *policy*. *policy* is one of the " "scheduling policy constants above." @@ -7091,7 +7699,7 @@ msgstr "" "Obtiene el valor de prioridad máxima para *policy*. *policy* es una de las " "constantes de política de programación anteriores." -#: ../Doc/library/os.rst:4733 +#: ../Doc/library/os.rst:5100 msgid "" "Set the scheduling policy for the process with PID *pid*. A *pid* of 0 means " "the calling process. *policy* is one of the scheduling policy constants " @@ -7102,7 +7710,7 @@ msgstr "" "constantes de política de programación anteriores. *param* es una instancia " "de :class:`sched_param`." -#: ../Doc/library/os.rst:4740 +#: ../Doc/library/os.rst:5107 msgid "" "Return the scheduling policy for the process with PID *pid*. A *pid* of 0 " "means the calling process. The result is one of the scheduling policy " @@ -7112,7 +7720,7 @@ msgstr "" "de 0 significa el proceso de llamada. El resultado es una de las constantes " "de política de programación anteriores." -#: ../Doc/library/os.rst:4747 +#: ../Doc/library/os.rst:5114 msgid "" "Set the scheduling parameters for the process with PID *pid*. A *pid* of 0 " "means the calling process. *param* is a :class:`sched_param` instance." @@ -7121,7 +7729,7 @@ msgstr "" "*pid* de 0 significa el proceso de llamada. *param* es una instancia de :" "class:`sched_param`." -#: ../Doc/library/os.rst:4753 +#: ../Doc/library/os.rst:5120 msgid "" "Return the scheduling parameters as a :class:`sched_param` instance for the " "process with PID *pid*. A *pid* of 0 means the calling process." @@ -7130,7 +7738,7 @@ msgstr "" "`sched_param` para el proceso con PID *pid*. Un *pid* de 0 significa el " "proceso de llamada." -#: ../Doc/library/os.rst:4759 +#: ../Doc/library/os.rst:5126 msgid "" "Return the round-robin quantum in seconds for the process with PID *pid*. A " "*pid* of 0 means the calling process." @@ -7138,11 +7746,11 @@ msgstr "" "Retorna el round-robin quantum en segundos para el proceso con PID *pid*. Un " "*pid* de 0 significa el proceso de llamada." -#: ../Doc/library/os.rst:4765 +#: ../Doc/library/os.rst:5132 msgid "Voluntarily relinquish the CPU." msgstr "Renunciar voluntariamente a la CPU." -#: ../Doc/library/os.rst:4770 +#: ../Doc/library/os.rst:5137 msgid "" "Restrict the process with PID *pid* (or the current process if zero) to a " "set of CPUs. *mask* is an iterable of integers representing the set of CPUs " @@ -7152,7 +7760,7 @@ msgstr "" "conjunto de CPU. *mask* es un entero iterable que representa el conjunto de " "CPU a las que se debe restringir el proceso." -#: ../Doc/library/os.rst:4777 +#: ../Doc/library/os.rst:5144 msgid "" "Return the set of CPUs the process with PID *pid* (or the current process if " "zero) is restricted to." @@ -7160,11 +7768,11 @@ msgstr "" "Retorna el conjunto de CPU al proceso con PID *pid* (o el proceso actual si " "es cero) está restringido." -#: ../Doc/library/os.rst:4784 +#: ../Doc/library/os.rst:5151 msgid "Miscellaneous System Information" msgstr "Información miscelánea del sistema" -#: ../Doc/library/os.rst:4789 +#: ../Doc/library/os.rst:5156 msgid "" "Return string-valued system configuration values. *name* specifies the " "configuration value to retrieve; it may be a string which is the name of a " @@ -7183,7 +7791,7 @@ msgstr "" "``confstr_names``. Para las variables de configuración no incluidas en esa " "asignación, también se acepta pasar un número entero para *name*." -#: ../Doc/library/os.rst:4797 +#: ../Doc/library/os.rst:5164 msgid "" "If the configuration value specified by *name* isn't defined, ``None`` is " "returned." @@ -7191,7 +7799,7 @@ msgstr "" "Si el valor de configuración especificado por *name* no está definido, se " "retorna ``None``." -#: ../Doc/library/os.rst:4800 +#: ../Doc/library/os.rst:5167 msgid "" "If *name* is a string and is not known, :exc:`ValueError` is raised. If a " "specific value for *name* is not supported by the host system, even if it is " @@ -7203,7 +7811,7 @@ msgstr "" "incluido en ``confstr_names``, se lanza un :exc:`OSError` con :const:`errno." "EINVAL` para el número de error ." -#: ../Doc/library/os.rst:4810 +#: ../Doc/library/os.rst:5177 msgid "" "Dictionary mapping names accepted by :func:`confstr` to the integer values " "defined for those names by the host operating system. This can be used to " @@ -7213,14 +7821,14 @@ msgstr "" "enteros definidos para esos nombres por el sistema operativo host. Esto se " "puede usar para determinar el conjunto de nombres conocidos por el sistema." -#: ../Doc/library/os.rst:4819 +#: ../Doc/library/os.rst:5186 msgid "" "Return the number of CPUs in the system. Returns ``None`` if undetermined." msgstr "" "Retorna el número de CPU en el sistema. Retorna ``None`` si no está " "determinado." -#: ../Doc/library/os.rst:4821 +#: ../Doc/library/os.rst:5188 msgid "" "This number is not equivalent to the number of CPUs the current process can " "use. The number of usable CPUs can be obtained with ``len(os." @@ -7230,7 +7838,7 @@ msgstr "" "actual. El número de CPU utilizables se puede obtener con ``len(os." "sched_getaffinity(0))``" -#: ../Doc/library/os.rst:4831 +#: ../Doc/library/os.rst:5198 msgid "" "Return the number of processes in the system run queue averaged over the " "last 1, 5, and 15 minutes or raises :exc:`OSError` if the load average was " @@ -7240,7 +7848,7 @@ msgstr "" "durante los últimos 1, 5 y 15 minutos o aumentos :exc:`OSError` si el " "promedio de carga no se pudo obtener." -#: ../Doc/library/os.rst:4840 +#: ../Doc/library/os.rst:5207 msgid "" "Return integer-valued system configuration values. If the configuration " "value specified by *name* isn't defined, ``-1`` is returned. The comments " @@ -7254,7 +7862,7 @@ msgstr "" "aplican aquí también; El diccionario que proporciona información sobre los " "nombres conocidos viene dado por ``sysconf_names``." -#: ../Doc/library/os.rst:4850 +#: ../Doc/library/os.rst:5217 msgid "" "Dictionary mapping names accepted by :func:`sysconf` to the integer values " "defined for those names by the host operating system. This can be used to " @@ -7265,11 +7873,11 @@ msgstr "" "Esto se puede usar para determinar el conjunto de nombres conocidos por el " "sistema." -#: ../Doc/library/os.rst:4856 +#: ../Doc/library/os.rst:5223 msgid "Add ``'SC_MINSIGSTKSZ'`` name." msgstr "Agregue el nombre ``'SC_MINSIGSTKSZ'``." -#: ../Doc/library/os.rst:4859 +#: ../Doc/library/os.rst:5226 msgid "" "The following data values are used to support path manipulation operations. " "These are defined for all platforms." @@ -7277,7 +7885,7 @@ msgstr "" "Los siguientes valores de datos se utilizan para admitir operaciones de " "manipulación de rutas. Estos están definidos para todas las plataformas." -#: ../Doc/library/os.rst:4862 +#: ../Doc/library/os.rst:5229 msgid "" "Higher-level operations on pathnames are defined in the :mod:`os.path` " "module." @@ -7285,7 +7893,7 @@ msgstr "" "Las operaciones de nivel superior en los nombres de ruta se definen en el " "módulo :mod:`os.path`." -#: ../Doc/library/os.rst:4868 +#: ../Doc/library/os.rst:5235 msgid "" "The constant string used by the operating system to refer to the current " "directory. This is ``'.'`` for Windows and POSIX. Also available via :mod:" @@ -7295,7 +7903,7 @@ msgstr "" "directorio actual. Esto es ``'.'`` Para Windows y POSIX. También disponible " "a través de :mod:`os.path`." -#: ../Doc/library/os.rst:4876 +#: ../Doc/library/os.rst:5243 msgid "" "The constant string used by the operating system to refer to the parent " "directory. This is ``'..'`` for Windows and POSIX. Also available via :mod:" @@ -7305,7 +7913,7 @@ msgstr "" "al directorio principal. Esto es ``'...'`` para Windows y POSIX. También " "disponible a través de :mod:`os.path`." -#: ../Doc/library/os.rst:4885 +#: ../Doc/library/os.rst:5252 msgid "" "The character used by the operating system to separate pathname components. " "This is ``'/'`` for POSIX and ``'\\\\'`` for Windows. Note that knowing " @@ -7320,7 +7928,7 @@ msgstr "" "join` --- pero en ocasiones es útil. También disponible a través de :mod:`os." "path`." -#: ../Doc/library/os.rst:4895 +#: ../Doc/library/os.rst:5262 msgid "" "An alternative character used by the operating system to separate pathname " "components, or ``None`` if only one separator character exists. This is set " @@ -7333,7 +7941,7 @@ msgstr "" "``sep`` es una barra invertida. También disponible a través de :mod:`os." "path`." -#: ../Doc/library/os.rst:4904 +#: ../Doc/library/os.rst:5271 msgid "" "The character which separates the base filename from the extension; for " "example, the ``'.'`` in :file:`os.py`. Also available via :mod:`os.path`." @@ -7342,7 +7950,7 @@ msgstr "" "ejemplo, el ``'.'`` en :file:`os.py`. También disponible a través de :mod:" "`os.path`." -#: ../Doc/library/os.rst:4912 +#: ../Doc/library/os.rst:5279 msgid "" "The character conventionally used by the operating system to separate search " "path components (as in :envvar:`PATH`), such as ``':'`` for POSIX or ``';'`` " @@ -7353,7 +7961,7 @@ msgstr "" "como ``':'`` para POSIX o ``';'`` para Windows. También disponible a través " "de :mod:`os.path`." -#: ../Doc/library/os.rst:4919 +#: ../Doc/library/os.rst:5286 msgid "" "The default search path used by :func:`exec\\*p\\* ` and :func:" "`spawn\\*p\\* ` if the environment doesn't have a ``'PATH'`` key. " @@ -7363,7 +7971,7 @@ msgstr "" "y :func:`spawn\\*p\\* ` si el entorno no tiene una tecla ``'RUTA'``. " "También disponible a través de :mod:`os.path`." -#: ../Doc/library/os.rst:4926 +#: ../Doc/library/os.rst:5293 msgid "" "The string used to separate (or, rather, terminate) lines on the current " "platform. This may be a single character, such as ``'\\n'`` for POSIX, or " @@ -7378,7 +7986,7 @@ msgstr "" "abiertos en modo texto (el valor predeterminado); use un solo ``'\\n'`` en " "su lugar, en todas las plataformas." -#: ../Doc/library/os.rst:4935 +#: ../Doc/library/os.rst:5302 msgid "" "The file path of the null device. For example: ``'/dev/null'`` for POSIX, " "``'nul'`` for Windows. Also available via :mod:`os.path`." @@ -7386,7 +7994,7 @@ msgstr "" "La ruta del archivo del dispositivo nulo. Por ejemplo: ``'/dev/null'`` para " "POSIX, ``'nul'`` para Windows. También disponible a través de :mod:`os.path`." -#: ../Doc/library/os.rst:4946 +#: ../Doc/library/os.rst:5313 msgid "" "Flags for use with the :func:`~sys.setdlopenflags` and :func:`~sys." "getdlopenflags` functions. See the Unix manual page :manpage:`dlopen(3)` " @@ -7396,11 +8004,11 @@ msgstr "" "getdlopenflags`. Consulte la página del manual de Unix :manpage:`dlopen(3)` " "para saber qué significan las diferentes flags." -#: ../Doc/library/os.rst:4954 +#: ../Doc/library/os.rst:5321 msgid "Random numbers" msgstr "Números al azar" -#: ../Doc/library/os.rst:4959 +#: ../Doc/library/os.rst:5326 msgid "" "Get up to *size* random bytes. The function can return less bytes than " "requested." @@ -7408,7 +8016,7 @@ msgstr "" "Obtiene hasta *size* bytes aleatorios. La función puede retornar menos bytes " "que los solicitados." -#: ../Doc/library/os.rst:4962 +#: ../Doc/library/os.rst:5329 msgid "" "These bytes can be used to seed user-space random number generators or for " "cryptographic purposes." @@ -7416,7 +8024,7 @@ msgstr "" "Estos bytes se pueden usar para generar generadores de números aleatorios en " "el espacio del usuario o para fines criptográficos." -#: ../Doc/library/os.rst:4965 +#: ../Doc/library/os.rst:5332 msgid "" "``getrandom()`` relies on entropy gathered from device drivers and other " "sources of environmental noise. Unnecessarily reading large quantities of " @@ -7428,17 +8036,18 @@ msgstr "" "grandes cantidades de datos tendrá un impacto negativo en otros usuarios de " "los dispositivos ``/dev/random`` y ``/dev/urandom``." -#: ../Doc/library/os.rst:4970 +#: ../Doc/library/os.rst:5337 +#, fuzzy msgid "" "The flags argument is a bit mask that can contain zero or more of the " -"following values ORed together: :py:data:`os.GRND_RANDOM` and :py:data:" +"following values ORed together: :py:const:`os.GRND_RANDOM` and :py:data:" "`GRND_NONBLOCK`." msgstr "" "El argumento de las flags es una máscara de bits que puede contener cero o " "más de los siguientes valores OR juntos:: py :data:`os.GRND_RANDOM` y :py:" "data:`GRND_NONBLOCK`." -#: ../Doc/library/os.rst:4974 +#: ../Doc/library/os.rst:5341 msgid "" "See also the `Linux getrandom() manual page `_." @@ -7446,19 +8055,19 @@ msgstr "" "Véase también el `Linux getrandom() manual page `_." -#: ../Doc/library/os.rst:4978 +#: ../Doc/library/os.rst:5344 #, fuzzy msgid ":ref:`Availability `: Linux >= 3.17." msgstr ":ref:`Disponibilidad `: Linux >= 3.17." -#: ../Doc/library/os.rst:4983 +#: ../Doc/library/os.rst:5350 msgid "" "Return a bytestring of *size* random bytes suitable for cryptographic use." msgstr "" "Retorna una cadena de bytes de bytes aleatorios *size* adecuados para uso " "criptográfico." -#: ../Doc/library/os.rst:4985 +#: ../Doc/library/os.rst:5352 msgid "" "This function returns random bytes from an OS-specific randomness source. " "The returned data should be unpredictable enough for cryptographic " @@ -7469,7 +8078,7 @@ msgstr "" "suficientemente impredecibles para las aplicaciones criptográficas, aunque " "su calidad exacta depende de la implementación del sistema operativo." -#: ../Doc/library/os.rst:4989 +#: ../Doc/library/os.rst:5356 msgid "" "On Linux, if the ``getrandom()`` syscall is available, it is used in " "blocking mode: block until the system urandom entropy pool is initialized " @@ -7486,7 +8095,7 @@ msgstr "" "indicador :data:`GRND_NONBLOCK`) o para sondear hasta que el grupo de " "entropía urandom del sistema se inicialice." -#: ../Doc/library/os.rst:4996 +#: ../Doc/library/os.rst:5363 msgid "" "On a Unix-like system, random bytes are read from the ``/dev/urandom`` " "device. If the ``/dev/urandom`` device is not available or not readable, " @@ -7496,11 +8105,11 @@ msgstr "" "``/dev/urandom``. Si el dispositivo ``/dev/urandom`` no está disponible o no " "es legible, se genera la excepción :exc:`NotImplementedError`." -#: ../Doc/library/os.rst:5000 +#: ../Doc/library/os.rst:5367 msgid "On Windows, it will use ``BCryptGenRandom()``." msgstr "En Windows, usará ``BCryptGenRandom()``." -#: ../Doc/library/os.rst:5003 +#: ../Doc/library/os.rst:5370 msgid "" "The :mod:`secrets` module provides higher level functions. For an easy-to-" "use interface to the random number generator provided by your platform, " @@ -7510,7 +8119,7 @@ msgstr "" "obtener una interfaz fácil de usar con el generador de números aleatorios " "proporcionado por su plataforma, consulte :class:`random.SystemRandom`." -#: ../Doc/library/os.rst:5007 +#: ../Doc/library/os.rst:5374 msgid "" "On Linux, ``getrandom()`` is now used in blocking mode to increase the " "security." @@ -7518,7 +8127,7 @@ msgstr "" "En Linux, ``getrandom()`` ahora se usa en modo de bloqueo para aumentar la " "seguridad." -#: ../Doc/library/os.rst:5011 +#: ../Doc/library/os.rst:5378 msgid "" "On Linux, if the ``getrandom()`` syscall blocks (the urandom entropy pool is " "not initialized yet), fall back on reading ``/dev/urandom``." @@ -7526,7 +8135,7 @@ msgstr "" "En Linux, si el syscall ``getrandom()`` bloquea (el grupo de entropía " "urandom aún no está inicializado), recurra a la lectura ``/dev/urandom``." -#: ../Doc/library/os.rst:5015 +#: ../Doc/library/os.rst:5382 msgid "" "On Linux 3.17 and newer, the ``getrandom()`` syscall is now used when " "available. On OpenBSD 5.6 and newer, the C ``getentropy()`` function is now " @@ -7537,7 +8146,7 @@ msgstr "" "usa la función C ``getentropy()``. Estas funciones evitan el uso de un " "descriptor de archivo interno." -#: ../Doc/library/os.rst:5021 +#: ../Doc/library/os.rst:5388 msgid "" "On Windows, ``BCryptGenRandom()`` is used instead of ``CryptGenRandom()`` " "which is deprecated." @@ -7545,7 +8154,7 @@ msgstr "" "En Windows, se utiliza ``BCryptGenRandom()`` en lugar de " "``CryptGenRandom()``, que está en desuso." -#: ../Doc/library/os.rst:5027 +#: ../Doc/library/os.rst:5394 msgid "" "By default, when reading from ``/dev/random``, :func:`getrandom` blocks if " "no random bytes are available, and when reading from ``/dev/urandom``, it " @@ -7555,7 +8164,7 @@ msgstr "" "no hay bytes aleatorios disponibles, y cuando lee desde ``/dev/urandom``, " "bloquea si el grupo de entropía no tiene, sin embargo, se ha inicializado." -#: ../Doc/library/os.rst:5031 +#: ../Doc/library/os.rst:5398 msgid "" "If the :py:data:`GRND_NONBLOCK` flag is set, then :func:`getrandom` does not " "block in these cases, but instead immediately raises :exc:`BlockingIOError`." @@ -7564,10 +8173,260 @@ msgstr "" "`getrandom` no se bloquea en estos casos, sino que inmediatamente genera :" "exc:`BlockingIOError`." -#: ../Doc/library/os.rst:5038 +#: ../Doc/library/os.rst:5405 msgid "" "If this bit is set, then random bytes are drawn from the ``/dev/" "random`` pool instead of the ``/dev/urandom`` pool." msgstr "" "Si se establece este bit, los bytes aleatorios se extraen del grupo ``/dev/" "random`` en lugar del grupo ``/dev/urandom``." + +#: ../Doc/library/os.rst:363 ../Doc/library/os.rst:529 +#: ../Doc/library/os.rst:731 +msgid "user" +msgstr "" + +#: ../Doc/library/os.rst:363 +msgid "effective id" +msgstr "" + +#: ../Doc/library/os.rst:372 ../Doc/library/os.rst:438 +#: ../Doc/library/os.rst:447 ../Doc/library/os.rst:456 +#: ../Doc/library/os.rst:470 ../Doc/library/os.rst:666 +#: ../Doc/library/os.rst:4218 ../Doc/library/os.rst:4245 +msgid "process" +msgstr "" + +#: ../Doc/library/os.rst:372 ../Doc/library/os.rst:438 +msgid "group" +msgstr "" + +#: ../Doc/library/os.rst:447 ../Doc/library/os.rst:529 +msgid "id" +msgstr "" + +#: ../Doc/library/os.rst:456 +msgid "id of parent" +msgstr "" + +#: ../Doc/library/os.rst:470 ../Doc/library/os.rst:666 +#, fuzzy +msgid "scheduling priority" +msgstr "La política de programación predeterminada." + +#: ../Doc/library/os.rst:552 ../Doc/library/os.rst:796 +msgid "environment variables" +msgstr "" + +#: ../Doc/library/os.rst:552 +msgid "setting" +msgstr "" + +#: ../Doc/library/os.rst:731 +msgid "id, setting" +msgstr "" + +#: ../Doc/library/os.rst:764 +msgid "gethostname() (in module socket)" +msgstr "" + +#: ../Doc/library/os.rst:764 +msgid "gethostbyaddr() (in module socket)" +msgstr "" + +#: ../Doc/library/os.rst:796 ../Doc/library/os.rst:2575 +msgid "deleting" +msgstr "" + +#: ../Doc/library/os.rst:1338 ../Doc/library/os.rst:2945 +msgid "module" +msgstr "" + +#: ../Doc/library/os.rst:1338 +msgid "pty" +msgstr "" + +#: ../Doc/library/os.rst:1979 ../Doc/library/os.rst:2373 +#: ../Doc/library/os.rst:2575 ../Doc/library/os.rst:3481 +#: ../Doc/library/os.rst:3580 +msgid "directory" +msgstr "" + +#: ../Doc/library/os.rst:1979 +msgid "changing" +msgstr "" + +#: ../Doc/library/os.rst:2373 +msgid "creating" +msgstr "" + +#: ../Doc/library/os.rst:2373 +msgid "UNC paths" +msgstr "" + +#: ../Doc/library/os.rst:2373 +msgid "and os.makedirs()" +msgstr "" + +#: ../Doc/library/os.rst:2945 +msgid "stat" +msgstr "" + +#: ../Doc/library/os.rst:3481 ../Doc/library/os.rst:3580 +msgid "walking" +msgstr "" + +#: ../Doc/library/os.rst:3481 ../Doc/library/os.rst:3580 +msgid "traversal" +msgstr "" + +#: ../Doc/library/os.rst:4218 ../Doc/library/os.rst:4245 +msgid "killing" +msgstr "" + +#: ../Doc/library/os.rst:4218 ../Doc/library/os.rst:4245 +msgid "signalling" +msgstr "" + +#: ../Doc/library/os.rst:5232 ../Doc/library/os.rst:5268 +msgid ". (dot)" +msgstr "" + +#: ../Doc/library/os.rst:5232 ../Doc/library/os.rst:5240 +#: ../Doc/library/os.rst:5248 ../Doc/library/os.rst:5259 +#: ../Doc/library/os.rst:5268 +msgid "in pathnames" +msgstr "" + +#: ../Doc/library/os.rst:5240 +msgid ".." +msgstr "" + +#: ../Doc/library/os.rst:5248 ../Doc/library/os.rst:5259 +msgid "/ (slash)" +msgstr "" + +#: ../Doc/library/os.rst:5249 +msgid "\\ (backslash)" +msgstr "" + +#: ../Doc/library/os.rst:5249 +msgid "in pathnames (Windows)" +msgstr "" + +#: ../Doc/library/os.rst:5275 +msgid ": (colon)" +msgstr "" + +#: ../Doc/library/os.rst:5275 +msgid "path separator (POSIX)" +msgstr "" + +#: ../Doc/library/os.rst:5275 +msgid "; (semicolon)" +msgstr "" + +#~ msgid "" +#~ "Set the current position of file descriptor *fd* to position *pos*, " +#~ "modified by *how*: :const:`SEEK_SET` or ``0`` to set the position " +#~ "relative to the beginning of the file; :const:`SEEK_CUR` or ``1`` to set " +#~ "it relative to the current position; :const:`SEEK_END` or ``2`` to set it " +#~ "relative to the end of the file. Return the new cursor position in bytes, " +#~ "starting from the beginning." +#~ msgstr "" +#~ "Establece la posición actual del descriptor de archivo *fd* en la " +#~ "posición *pos*, modificada por *how*: :const:`SEEK_SET` o ``0`` para " +#~ "establecer la posición relativa al comienzo del archivo; :const:" +#~ "`SEEK_CUR` o ``1`` para establecerlo en relación con la posición actual; :" +#~ "const:`SEEK_END` o ``2`` para establecerlo en relación con el final del " +#~ "archivo. Retorna la nueva posición del cursor en bytes, comenzando desde " +#~ "el principio." + +#~ msgid "" +#~ "Some operating systems could support additional values, like :data:`os." +#~ "SEEK_HOLE` or :data:`os.SEEK_DATA`." +#~ msgstr "" +#~ "Algunos sistemas operativos pueden admitir valores adicionales, como :" +#~ "data:`os.SEEK_HOLE` o :data:`os.SEEK_DATA`." + +#~ msgid "" +#~ "On Windows, if *dst* exists a :exc:`FileExistsError` is always raised." +#~ msgstr "" +#~ "En Windows, si *dst* existe a :exc:`FileExistsError` siempre se genera." + +#~ msgid "Platform dependent:" +#~ msgstr "Depende de la plataforma:" + +#~ msgid "the time of most recent metadata change on Unix," +#~ msgstr "el momento del cambio de metadatos más reciente en Unix," + +#~ msgid "the time of creation on Windows, expressed in seconds." +#~ msgstr "el tiempo de creación en Windows, expresado en segundos." + +#~ 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." + +#~ msgid "Time of file creation." +#~ msgstr "Hora de creación del archivo." + +#~ msgid "See :mod:`ssl` for applications that use the SSL module with fork()." +#~ msgstr "Ver :mod:`ssl` para aplicaciones que usan el módulo SSL con fork()." + +#~ 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. " +#~ "*id* specifies the pid to wait on. *options* is constructed from the " +#~ "ORing of one or more of :data:`WEXITED`, :data:`WSTOPPED` or :data:" +#~ "`WCONTINUED` and additionally may be ORed with :data:`WNOHANG` or :data:" +#~ "`WNOWAIT`. The return value is an object representing the data contained " +#~ "in the :c:type:`siginfo_t` structure, namely: :attr:`si_pid`, :attr:" +#~ "`si_uid`, :attr:`si_signo`, :attr:`si_status`, :attr:`si_code` or " +#~ "``None`` if :data:`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`, :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." + +#~ 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." + +#~ msgid "" +#~ "Flags that can be used in *options* in :func:`waitid` that specify what " +#~ "child signal to wait for." +#~ msgstr "" +#~ "Indicadores que se pueden usar en *options* en :func:`waitid` que " +#~ "especifican qué señal secundaria esperar." + +#~ msgid "" +#~ "An :exc:`OSError` is raised with the value of errno when the syscall " +#~ "returns -1." +#~ msgstr "" +#~ "Un :exc:`OSError` se lanza con el valor de errno cuando syscall retorna " +#~ "-1." + +#~ msgid "" +#~ "The option for :func:`waitpid` to return immediately if no child process " +#~ "status is available immediately. The function returns ``(0, 0)`` in this " +#~ "case." +#~ msgstr "" +#~ "La opción para :func:`waitpid` para regresar inmediatamente si no hay un " +#~ "estado de proceso secundario disponible de inmediato. La función retorna " +#~ "``(0, 0)`` en este caso." + +#~ msgid "Some Unix systems." +#~ msgstr "Algunos sistemas Unix." diff --git a/library/pathlib.po b/library/pathlib.po index b2e907cc44..9a48ba2548 100644 --- a/library/pathlib.po +++ b/library/pathlib.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-12-16 21:29-0300\n" "Last-Translator: Carlos A. Crespo \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/pathlib.rst:3 msgid ":mod:`pathlib` --- Object-oriented filesystem paths" @@ -44,7 +44,7 @@ msgstr "" "paths>`, que heredan de rutas puras pero también proporcionan operaciones de " "E/S." -#: ../Doc/library/pathlib.rst:25 +#: ../Doc/library/pathlib.rst:26 msgid "" "If you've never used this module before or just aren't sure which class is " "right for your task, :class:`Path` is most likely what you need. It " @@ -56,11 +56,11 @@ msgstr "" "Crea una instancia :ref:`ruta concreta ` para la plataforma " "en la que se ejecuta el código." -#: ../Doc/library/pathlib.rst:29 +#: ../Doc/library/pathlib.rst:30 msgid "Pure paths are useful in some special cases; for example:" msgstr "Las rutas puras son útiles en algunos casos especiales, por ejemplo:" -#: ../Doc/library/pathlib.rst:31 +#: ../Doc/library/pathlib.rst:32 msgid "" "If you want to manipulate Windows paths on a Unix machine (or vice versa). " "You cannot instantiate a :class:`WindowsPath` when running on Unix, but you " @@ -70,7 +70,7 @@ msgstr "" "No puedes crear una instancia de :class:`WindowsPath` cuando se ejecuta en " "Unix, pero puedes crear una instancia de :class:`PureWindowsPath`." -#: ../Doc/library/pathlib.rst:34 +#: ../Doc/library/pathlib.rst:35 msgid "" "You want to make sure that your code only manipulates paths without actually " "accessing the OS. In this case, instantiating one of the pure classes may be " @@ -81,12 +81,12 @@ msgstr "" "puede ser útil, ya que simplemente no tienen ninguna operación de acceso al " "sistema operativo." -#: ../Doc/library/pathlib.rst:39 +#: ../Doc/library/pathlib.rst:40 msgid ":pep:`428`: The pathlib module -- object-oriented filesystem paths." msgstr "" ":pep:`428`: El módulo pathlib -- rutas de sistema orientadas a objetos." -#: ../Doc/library/pathlib.rst:42 +#: ../Doc/library/pathlib.rst:43 msgid "" "For low-level path manipulation on strings, you can also use the :mod:`os." "path` module." @@ -94,39 +94,39 @@ msgstr "" "Para la manipulación de rutas de bajo nivel en cadenas, también puede usar " "el módulo :mod:`os.path`." -#: ../Doc/library/pathlib.rst:47 +#: ../Doc/library/pathlib.rst:48 msgid "Basic use" msgstr "Uso básico" -#: ../Doc/library/pathlib.rst:49 +#: ../Doc/library/pathlib.rst:50 msgid "Importing the main class::" msgstr "Importar la clase principal::" -#: ../Doc/library/pathlib.rst:53 +#: ../Doc/library/pathlib.rst:54 msgid "Listing subdirectories::" msgstr "Listado de subdirectorios::" -#: ../Doc/library/pathlib.rst:60 +#: ../Doc/library/pathlib.rst:61 msgid "Listing Python source files in this directory tree::" msgstr "Listado de archivos fuente de Python en este árbol de directorios::" -#: ../Doc/library/pathlib.rst:67 +#: ../Doc/library/pathlib.rst:68 msgid "Navigating inside a directory tree::" msgstr "Navegar dentro de un árbol de directorios::" -#: ../Doc/library/pathlib.rst:76 +#: ../Doc/library/pathlib.rst:77 msgid "Querying path properties::" msgstr "Consultar propiedades de ruta::" -#: ../Doc/library/pathlib.rst:83 +#: ../Doc/library/pathlib.rst:84 msgid "Opening a file::" msgstr "Abrir un archivo::" -#: ../Doc/library/pathlib.rst:93 +#: ../Doc/library/pathlib.rst:94 msgid "Pure paths" msgstr "Rutas puras" -#: ../Doc/library/pathlib.rst:95 +#: ../Doc/library/pathlib.rst:96 msgid "" "Pure path objects provide path-handling operations which don't actually " "access a filesystem. There are three ways to access these classes, which we " @@ -136,7 +136,7 @@ msgstr "" "realidad no acceden al sistema de archivos. Hay tres formas de acceder a " "estas clases, que llamaremos *familias*:" -#: ../Doc/library/pathlib.rst:101 +#: ../Doc/library/pathlib.rst:102 msgid "" "A generic class that represents the system's path flavour (instantiating it " "creates either a :class:`PurePosixPath` or a :class:`PureWindowsPath`)::" @@ -144,37 +144,35 @@ msgstr "" "Una clase genérica que representa la familia de rutas del sistema (al crear " "una instancia se crea :class:`PurePosixPath` o :class:`PureWindowsPath`)::" -#: ../Doc/library/pathlib.rst:107 +#: ../Doc/library/pathlib.rst:108 +#, fuzzy msgid "" "Each element of *pathsegments* can be either a string representing a path " -"segment, an object implementing the :class:`os.PathLike` interface which " -"returns a string, or another path object::" +"segment, or an object implementing the :class:`os.PathLike` interface where " +"the :meth:`~os.PathLike.__fspath__` method returns a string, such as another " +"path object::" msgstr "" "Cada elemento de *pathsegments* puede ser una cadena que representa un " "segmento de ruta, un objeto que implemente la interfaz :class:`os.PathLike` " "la cual retorna una cadena o bien otro objeto ruta::" -#: ../Doc/library/pathlib.rst:116 +#: ../Doc/library/pathlib.rst:118 msgid "When *pathsegments* is empty, the current directory is assumed::" msgstr "Cuando *pathsegments* está vacío, se asume el directorio actual::" -#: ../Doc/library/pathlib.rst:121 +#: ../Doc/library/pathlib.rst:123 msgid "" -"When several absolute paths are given, the last is taken as an anchor " -"(mimicking :func:`os.path.join`'s behaviour)::" +"If a segment is an absolute path, all previous segments are ignored (like :" +"func:`os.path.join`)::" msgstr "" -"Cuando se proporcionan varias rutas absolutas, la última se toma como un " -"ancla (copiando el comportamiento de :func:`os.path.join`)::" -#: ../Doc/library/pathlib.rst:129 +#: ../Doc/library/pathlib.rst:131 msgid "" -"However, in a Windows path, changing the local root doesn't discard the " -"previous drive setting::" +"On Windows, the drive is not reset when a rooted relative path segment (e." +"g., ``r'\\foo'``) is encountered::" msgstr "" -"Sin embargo, en una ruta de Windows, cambiar la raíz local no elimina la " -"configuración de la unidad anterior:" -#: ../Doc/library/pathlib.rst:135 +#: ../Doc/library/pathlib.rst:137 msgid "" "Spurious slashes and single dots are collapsed, but double dots (``'..'``) " "and leading double slashes (``'//'``) are not, since this would change the " @@ -185,7 +183,7 @@ msgstr "" "cambiaría el significado de una ruta por varias razones (por ejemplo, " "enlaces simbólicos, rutas UNC):" -#: ../Doc/library/pathlib.rst:148 +#: ../Doc/library/pathlib.rst:150 msgid "" "(a naïve approach would make ``PurePosixPath('foo/../bar')`` equivalent to " "``PurePosixPath('bar')``, which is wrong if ``foo`` is a symbolic link to " @@ -195,7 +193,7 @@ msgstr "" "equivalente a ``PurePosixPath('bar')``, lo cual es incorrecto si ``foo`` es " "un enlace simbólico a otro directorio)" -#: ../Doc/library/pathlib.rst:152 +#: ../Doc/library/pathlib.rst:154 msgid "" "Pure path objects implement the :class:`os.PathLike` interface, allowing " "them to be used anywhere the interface is accepted." @@ -203,11 +201,11 @@ msgstr "" "Los objetos ruta pura implementan la interfaz :class:`os.PathLike`, lo que " "permite su uso en cualquier lugar donde se acepte la interfaz." -#: ../Doc/library/pathlib.rst:155 +#: ../Doc/library/pathlib.rst:157 msgid "Added support for the :class:`os.PathLike` interface." msgstr "Se agregó soporte para la interfaz :class:`os.PathLike`." -#: ../Doc/library/pathlib.rst:160 +#: ../Doc/library/pathlib.rst:162 msgid "" "A subclass of :class:`PurePath`, this path flavour represents non-Windows " "filesystem paths::" @@ -215,13 +213,13 @@ msgstr "" "Una subclase de :class:`PurePath`, esta *familia* representa rutas que no " "son del sistema de archivos de Windows::" -#: ../Doc/library/pathlib.rst:166 ../Doc/library/pathlib.rst:178 -#: ../Doc/library/pathlib.rst:664 ../Doc/library/pathlib.rst:674 -#: ../Doc/library/pathlib.rst:684 +#: ../Doc/library/pathlib.rst:168 ../Doc/library/pathlib.rst:180 +#: ../Doc/library/pathlib.rst:739 ../Doc/library/pathlib.rst:749 +#: ../Doc/library/pathlib.rst:759 msgid "*pathsegments* is specified similarly to :class:`PurePath`." msgstr "*pathsegments* se especifica de manera similar a :class:`PurePath`." -#: ../Doc/library/pathlib.rst:170 +#: ../Doc/library/pathlib.rst:172 msgid "" "A subclass of :class:`PurePath`, this path flavour represents Windows " "filesystem paths, including `UNC paths`_::" @@ -229,7 +227,7 @@ msgstr "" "Una subclase de :class:`PurePath`, este tipo de ruta representa las rutas " "del sistema de archivos de Windows, incluido `UNC paths`_:" -#: ../Doc/library/pathlib.rst:182 +#: ../Doc/library/pathlib.rst:184 msgid "" "Regardless of the system you're running on, you can instantiate all of these " "classes, since they don't provide any operation that does system calls." @@ -238,37 +236,38 @@ msgstr "" "instancias de todas estas clases, ya que no proporcionan ninguna operación " "que llame al sistema operativo." -#: ../Doc/library/pathlib.rst:187 +#: ../Doc/library/pathlib.rst:189 msgid "General properties" msgstr "Propiedades generales" -#: ../Doc/library/pathlib.rst:189 +#: ../Doc/library/pathlib.rst:191 +#, fuzzy msgid "" -"Paths are immutable and hashable. Paths of a same flavour are comparable " -"and orderable. These properties respect the flavour's case-folding " -"semantics::" +"Paths are immutable and :term:`hashable`. Paths of a same flavour are " +"comparable and orderable. These properties respect the flavour's case-" +"folding semantics::" msgstr "" "Las rutas son inmutables y hashables. Las rutas de una misma familia son " "comparables y ordenables. Estas propiedades respetan el orden lexicográfico " "definido por la familia::" -#: ../Doc/library/pathlib.rst:202 +#: ../Doc/library/pathlib.rst:204 msgid "Paths of a different flavour compare unequal and cannot be ordered::" msgstr "Rutas de diferentes familias no son iguales y no se pueden ordenar::" -#: ../Doc/library/pathlib.rst:213 +#: ../Doc/library/pathlib.rst:215 msgid "Operators" msgstr "Operadores" -#: ../Doc/library/pathlib.rst:215 +#: ../Doc/library/pathlib.rst:217 msgid "" -"The slash operator helps create child paths, similarly to :func:`os.path." -"join`::" +"The slash operator helps create child paths, like :func:`os.path.join`. If " +"the argument is an absolute path, the previous path is ignored. On Windows, " +"the drive is not reset when the argument is a rooted relative path (e.g., " +"``r'\\foo'``)::" msgstr "" -"El operador barra ayuda a crear rutas secundarias, similar a :func:`os.path." -"join`::" -#: ../Doc/library/pathlib.rst:226 +#: ../Doc/library/pathlib.rst:235 msgid "" "A path object can be used anywhere an object implementing :class:`os." "PathLike` is accepted::" @@ -276,7 +275,7 @@ msgstr "" "Se puede usar un objeto ruta en cualquier lugar donde se acepte un objeto " "que implemente :class:`os.PathLike`::" -#: ../Doc/library/pathlib.rst:234 +#: ../Doc/library/pathlib.rst:243 msgid "" "The string representation of a path is the raw filesystem path itself (in " "native form, e.g. with backslashes under Windows), which you can pass to any " @@ -287,7 +286,7 @@ msgstr "" "barras invertidas en Windows), y que puede pasar a cualquier función que " "tome una ruta como una cadena de caracteres:" -#: ../Doc/library/pathlib.rst:245 +#: ../Doc/library/pathlib.rst:254 msgid "" "Similarly, calling :class:`bytes` on a path gives the raw filesystem path as " "a bytes object, as encoded by :func:`os.fsencode`::" @@ -296,7 +295,7 @@ msgstr "" "cruda del sistema de archivos como un objeto bytes, codificado por :func:`os." "fsencode`::" -#: ../Doc/library/pathlib.rst:252 +#: ../Doc/library/pathlib.rst:261 msgid "" "Calling :class:`bytes` is only recommended under Unix. Under Windows, the " "unicode form is the canonical representation of filesystem paths." @@ -304,11 +303,11 @@ msgstr "" "Llamar a :class:`bytes` solo se recomienda en Unix. En Windows, la forma " "unicode es la representación canónica de las rutas del sistema de archivos." -#: ../Doc/library/pathlib.rst:257 +#: ../Doc/library/pathlib.rst:266 msgid "Accessing individual parts" msgstr "Acceso a partes individuales" -#: ../Doc/library/pathlib.rst:259 +#: ../Doc/library/pathlib.rst:268 msgid "" "To access the individual \"parts\" (components) of a path, use the following " "property:" @@ -316,41 +315,41 @@ msgstr "" "Para acceder a las \"partes\" (componentes) individuales de una ruta, use la " "siguiente propiedad:" -#: ../Doc/library/pathlib.rst:264 +#: ../Doc/library/pathlib.rst:273 msgid "A tuple giving access to the path's various components::" msgstr "Una tupla que da acceso a los diversos componentes de la ruta::" -#: ../Doc/library/pathlib.rst:274 +#: ../Doc/library/pathlib.rst:283 msgid "(note how the drive and local root are regrouped in a single part)" msgstr "" "(obsérvese cómo la unidad y la raíz local se reagrupan en una sola parte)" -#: ../Doc/library/pathlib.rst:278 +#: ../Doc/library/pathlib.rst:287 msgid "Methods and properties" msgstr "Métodos y propiedades" -#: ../Doc/library/pathlib.rst:284 +#: ../Doc/library/pathlib.rst:293 msgid "Pure paths provide the following methods and properties:" msgstr "Las rutas puras proporcionan los siguientes métodos y propiedades:" -#: ../Doc/library/pathlib.rst:288 +#: ../Doc/library/pathlib.rst:297 msgid "A string representing the drive letter or name, if any::" msgstr "" "Una cadena que representa la letra o el nombre de la unidad, si corresponde::" -#: ../Doc/library/pathlib.rst:297 +#: ../Doc/library/pathlib.rst:306 msgid "UNC shares are also considered drives::" msgstr "Las localizaciones UNC también son consideradas como unidades::" -#: ../Doc/library/pathlib.rst:304 +#: ../Doc/library/pathlib.rst:313 msgid "A string representing the (local or global) root, if any::" msgstr "Una cadena que representa la raíz (local o global), si la hay::" -#: ../Doc/library/pathlib.rst:313 +#: ../Doc/library/pathlib.rst:322 msgid "UNC shares always have a root::" msgstr "Las localizaciones UNC siempre tienen una raíz::" -#: ../Doc/library/pathlib.rst:318 +#: ../Doc/library/pathlib.rst:327 msgid "" "If the path starts with more than two successive slashes, :class:`~pathlib." "PurePosixPath` collapses them::" @@ -358,7 +357,7 @@ msgstr "" "Si la ruta comienza con más de dos barras diagonales sucesivas, :class:" "`~pathlib.PurePosixPath` las contrae:" -#: ../Doc/library/pathlib.rst:330 +#: ../Doc/library/pathlib.rst:339 msgid "" "This behavior conforms to *The Open Group Base Specifications Issue 6*, " "paragraph `4.11 Pathname Resolution `_:" -#: ../Doc/library/pathlib.rst:334 +#: ../Doc/library/pathlib.rst:343 msgid "" "*\"A pathname that begins with two successive slashes may be interpreted in " "an implementation-defined manner, although more than two leading slashes " @@ -378,18 +377,18 @@ msgstr "" "interpretar de una manera definida por la implementación, aunque más de dos " "barras oblicuas iniciales se tratarán como una sola barra oblicua.\"*" -#: ../Doc/library/pathlib.rst:340 +#: ../Doc/library/pathlib.rst:349 msgid "The concatenation of the drive and root::" msgstr "La concatenación de la unidad y la raíz::" -#: ../Doc/library/pathlib.rst:354 +#: ../Doc/library/pathlib.rst:363 msgid "" "An immutable sequence providing access to the logical ancestors of the path::" msgstr "" "Una secuencia inmutable que proporciona acceso a los ancestros lógicos de la " "ruta::" -#: ../Doc/library/pathlib.rst:365 +#: ../Doc/library/pathlib.rst:374 msgid "" "The parents sequence now supports :term:`slices ` and negative index " "values." @@ -397,20 +396,20 @@ msgstr "" "La secuencia de padres ahora admite :term:`rebanada ` y valores de " "índice negativos." -#: ../Doc/library/pathlib.rst:370 +#: ../Doc/library/pathlib.rst:379 msgid "The logical parent of the path::" msgstr "El padre lógico de la ruta ::" -#: ../Doc/library/pathlib.rst:376 +#: ../Doc/library/pathlib.rst:385 msgid "You cannot go past an anchor, or empty path::" msgstr "No puede ir más allá de un ancla o una ruta vacía::" -#: ../Doc/library/pathlib.rst:386 +#: ../Doc/library/pathlib.rst:395 msgid "This is a purely lexical operation, hence the following behaviour::" msgstr "" "Esta es una operación puramente léxica, de ahí el siguiente comportamiento::" -#: ../Doc/library/pathlib.rst:392 +#: ../Doc/library/pathlib.rst:401 msgid "" "If you want to walk an arbitrary filesystem path upwards, it is recommended " "to first call :meth:`Path.resolve` so as to resolve symlinks and eliminate " @@ -420,7 +419,7 @@ msgstr "" "se recomienda llamar primero a :meth:`Path.resolve` para resolver los " "enlaces simbólicos y eliminar los componentes ``\"..\"``." -#: ../Doc/library/pathlib.rst:399 +#: ../Doc/library/pathlib.rst:408 msgid "" "A string representing the final path component, excluding the drive and " "root, if any::" @@ -428,29 +427,29 @@ msgstr "" "Una cadena que representa el componente final de la ruta, excluyendo la " "unidad y la raíz, si hay alguna::" -#: ../Doc/library/pathlib.rst:405 +#: ../Doc/library/pathlib.rst:414 msgid "UNC drive names are not considered::" msgstr "Los nombres de unidad UNC no se consideran::" -#: ../Doc/library/pathlib.rst:415 +#: ../Doc/library/pathlib.rst:424 msgid "The file extension of the final component, if any::" msgstr "La extensión del archivo del componente final, si lo hay::" -#: ../Doc/library/pathlib.rst:427 +#: ../Doc/library/pathlib.rst:436 msgid "A list of the path's file extensions::" msgstr "Una lista de las extensiones de archivo de la ruta::" -#: ../Doc/library/pathlib.rst:439 +#: ../Doc/library/pathlib.rst:448 msgid "The final path component, without its suffix::" msgstr "El componente final de la ruta, sin su sufijo::" -#: ../Doc/library/pathlib.rst:451 +#: ../Doc/library/pathlib.rst:460 msgid "" "Return a string representation of the path with forward slashes (``/``)::" msgstr "" "Retorna una cadena que representa la ruta con barras invertidas (``/``)::" -#: ../Doc/library/pathlib.rst:462 +#: ../Doc/library/pathlib.rst:471 msgid "" "Represent the path as a ``file`` URI. :exc:`ValueError` is raised if the " "path isn't absolute." @@ -458,7 +457,7 @@ msgstr "" "Representa la ruta como un ``file`` URI. :exc:`ValueError` se genera si la " "ruta no es absoluta." -#: ../Doc/library/pathlib.rst:475 +#: ../Doc/library/pathlib.rst:484 msgid "" "Return whether the path is absolute or not. A path is considered absolute " "if it has both a root and (if the flavour allows) a drive::" @@ -466,11 +465,17 @@ msgstr "" "Retorna si la ruta es absoluta o no. Una ruta se considera absoluta si tiene " "una raíz y (si la **familia** lo permite) una unidad::" -#: ../Doc/library/pathlib.rst:495 +#: ../Doc/library/pathlib.rst:504 msgid "Return whether or not this path is relative to the *other* path." msgstr "Retorna si esta ruta es relativa o no a la *otra* ruta." -#: ../Doc/library/pathlib.rst:508 +#: ../Doc/library/pathlib.rst:516 +msgid "" +"Passing additional arguments is deprecated; if supplied, they are joined " +"with *other*." +msgstr "" + +#: ../Doc/library/pathlib.rst:521 msgid "" "With :class:`PureWindowsPath`, return ``True`` if the path is considered " "reserved under Windows, ``False`` otherwise. With :class:`PurePosixPath`, " @@ -480,7 +485,7 @@ msgstr "" "reservada en Windows, ``False`` en caso contrario. Con :class:" "`PurePosixPath`, siempre retorna ``False``." -#: ../Doc/library/pathlib.rst:517 +#: ../Doc/library/pathlib.rst:530 msgid "" "File system calls on reserved paths can fail mysteriously or have unintended " "effects." @@ -488,15 +493,16 @@ msgstr "" "Las llamadas al sistema de archivos en rutas reservadas pueden fallar " "inesperadamente o tener efectos no deseados." -#: ../Doc/library/pathlib.rst:523 +#: ../Doc/library/pathlib.rst:536 +#, fuzzy msgid "" "Calling this method is equivalent to combining the path with each of the " -"*other* arguments in turn::" +"given *pathsegments* in turn::" msgstr "" "Llamar a este método es equivalente a combinar la ruta con cada uno de los " "*other* argumentos::" -#: ../Doc/library/pathlib.rst:538 +#: ../Doc/library/pathlib.rst:551 msgid "" "Match this path against the provided glob-style pattern. Return ``True`` if " "matching is successful, ``False`` otherwise." @@ -504,7 +510,7 @@ msgstr "" "Haga coincidir esta ruta con el *pattern* global proporcionado. Retorna " "``True`` si la coincidencia es exitosa, ``False`` en caso contrario." -#: ../Doc/library/pathlib.rst:541 +#: ../Doc/library/pathlib.rst:554 msgid "" "If *pattern* is relative, the path can be either relative or absolute, and " "matching is done from the right::" @@ -512,7 +518,7 @@ msgstr "" "Si *pattern* es relativo, la ruta puede ser relativa o absoluta, y la " "coincidencia se realiza desde la derecha::" -#: ../Doc/library/pathlib.rst:551 +#: ../Doc/library/pathlib.rst:564 msgid "" "If *pattern* is absolute, the path must be absolute, and the whole path must " "match::" @@ -520,29 +526,70 @@ msgstr "" "Si *pattern* es absoluto, la ruta debe ser absoluta y toda la ruta debe " "coincidir::" -#: ../Doc/library/pathlib.rst:559 +#: ../Doc/library/pathlib.rst:572 +msgid "" +"The *pattern* may be another path object; this speeds up matching the same " +"pattern against multiple files::" +msgstr "" + +#: ../Doc/library/pathlib.rst:579 msgid "As with other methods, case-sensitivity follows platform defaults::" msgstr "" "Al igual que con otros métodos, la distinción entre mayúsculas y minúsculas " "sigue los valores predeterminados de la plataforma::" -#: ../Doc/library/pathlib.rst:569 +#: ../Doc/library/pathlib.rst:586 +msgid "" +"Set *case_sensitive* to ``True`` or ``False`` to override this behaviour." +msgstr "" + +#: ../Doc/library/pathlib.rst:588 ../Doc/library/pathlib.rst:931 +#: ../Doc/library/pathlib.rst:1344 +#, fuzzy +msgid "The *case_sensitive* parameter was added." +msgstr "Se agregó el parámetro *newline*." + +#: ../Doc/library/pathlib.rst:594 +#, fuzzy msgid "" "Compute a version of this path relative to the path represented by *other*. " -"If it's impossible, ValueError is raised::" +"If it's impossible, :exc:`ValueError` is raised::" msgstr "" "Computa una versión de la ruta en relación a la ruta representada por " "*other*. Si es imposible, se genera *ValueError*::" -#: ../Doc/library/pathlib.rst:584 +#: ../Doc/library/pathlib.rst:609 +msgid "" +"When *walk_up* is False (the default), the path must start with *other*. " +"When the argument is True, ``..`` entries may be added to form the relative " +"path. In all other cases, such as the paths referencing different drives, :" +"exc:`ValueError` is raised.::" +msgstr "" + +#: ../Doc/library/pathlib.rst:624 +#, fuzzy msgid "" -"NOTE: This function is part of :class:`PurePath` and works with strings. It " -"does not check or access the underlying file structure." +"This function is part of :class:`PurePath` and works with strings. It does " +"not check or access the underlying file structure. This can impact the " +"*walk_up* option as it assumes that no symlinks are present in the path; " +"call :meth:`~Path.resolve` first if necessary to resolve symlinks." msgstr "" "NOTA: Esta función es parte de :class:`PurePath` y trabaja con strings. No " "revisa ni accede a la estructura de archivos subyacentes." -#: ../Doc/library/pathlib.rst:589 +#: ../Doc/library/pathlib.rst:630 +msgid "" +"The *walk_up* parameter was added (old behavior is the same as " +"``walk_up=False``)." +msgstr "" + +#: ../Doc/library/pathlib.rst:635 +msgid "" +"Passing additional positional arguments is deprecated; if supplied, they are " +"joined with *other*." +msgstr "" + +#: ../Doc/library/pathlib.rst:640 msgid "" "Return a new path with the :attr:`name` changed. If the original path " "doesn't have a name, ValueError is raised::" @@ -550,7 +597,7 @@ msgstr "" "Retorna una nueva ruta con :attr:`name` cambiado. Si la ruta original no " "tiene nombre, se genera *ValueError*::" -#: ../Doc/library/pathlib.rst:606 +#: ../Doc/library/pathlib.rst:657 msgid "" "Return a new path with the :attr:`stem` changed. If the original path " "doesn't have a name, ValueError is raised::" @@ -558,7 +605,7 @@ msgstr "" "Retorna una nueva ruta con :attr:`stem` cambiado. Si la ruta original no " "tiene nombre, se lanza *ValueError*::" -#: ../Doc/library/pathlib.rst:630 +#: ../Doc/library/pathlib.rst:681 msgid "" "Return a new path with the :attr:`suffix` changed. If the original path " "doesn't have a suffix, the new *suffix* is appended instead. If the " @@ -568,11 +615,19 @@ msgstr "" "tiene un sufijo, se agrega el nuevo *suffix*. Si *suffix* es una cadena " "vacía, el sufijo original se elimina::" -#: ../Doc/library/pathlib.rst:649 +#: ../Doc/library/pathlib.rst:698 +msgid "" +"Create a new path object of the same type by combining the given " +"*pathsegments*. This method is called whenever a derivative path is created, " +"such as from :attr:`parent` and :meth:`relative_to`. Subclasses may override " +"this method to pass information to derivative paths, for example::" +msgstr "" + +#: ../Doc/library/pathlib.rst:724 msgid "Concrete paths" msgstr "Rutas concretas" -#: ../Doc/library/pathlib.rst:651 +#: ../Doc/library/pathlib.rst:726 msgid "" "Concrete paths are subclasses of the pure path classes. In addition to " "operations provided by the latter, they also provide methods to do system " @@ -583,7 +638,7 @@ msgstr "" "realizar llamadas del sistema a objetos ruta. Hay tres formas de crear " "instancias de rutas concretas:" -#: ../Doc/library/pathlib.rst:657 +#: ../Doc/library/pathlib.rst:732 msgid "" "A subclass of :class:`PurePath`, this class represents concrete paths of the " "system's path flavour (instantiating it creates either a :class:`PosixPath` " @@ -593,7 +648,7 @@ msgstr "" "la *familia* ruta del sistema (al crear una instancia crea ya sea :class:" "`PosixPath` o :class:`WindowsPath`)::" -#: ../Doc/library/pathlib.rst:668 +#: ../Doc/library/pathlib.rst:743 msgid "" "A subclass of :class:`Path` and :class:`PurePosixPath`, this class " "represents concrete non-Windows filesystem paths::" @@ -601,7 +656,7 @@ msgstr "" "Una subclase de :class:`Path` y :class:`PurePosixPath`, esta clase " "representa rutas concretas de sistemas de archivos que no son de Windows::" -#: ../Doc/library/pathlib.rst:678 +#: ../Doc/library/pathlib.rst:753 msgid "" "A subclass of :class:`Path` and :class:`PureWindowsPath`, this class " "represents concrete Windows filesystem paths::" @@ -609,7 +664,7 @@ msgstr "" "Una subclase de :class:`Path` y :class:`PureWindowsPath`, esta clase " "representa rutas concretas del sistema de archivos de Windows::" -#: ../Doc/library/pathlib.rst:686 +#: ../Doc/library/pathlib.rst:761 msgid "" "You can only instantiate the class flavour that corresponds to your system " "(allowing system calls on non-compatible path flavours could lead to bugs or " @@ -619,11 +674,11 @@ msgstr "" "sistema operativo (permitir llamadas del sistema no compatibles podría " "provocar errores o fallas en su aplicación)::" -#: ../Doc/library/pathlib.rst:706 +#: ../Doc/library/pathlib.rst:781 msgid "Methods" msgstr "Métodos" -#: ../Doc/library/pathlib.rst:708 +#: ../Doc/library/pathlib.rst:783 msgid "" "Concrete paths provide the following methods in addition to pure paths " "methods. Many of these methods can raise an :exc:`OSError` if a system call " @@ -634,7 +689,7 @@ msgstr "" "`OSError` si falla una llamada al sistema (por ejemplo, porque la ruta no " "existe)." -#: ../Doc/library/pathlib.rst:714 +#: ../Doc/library/pathlib.rst:789 msgid "" ":meth:`~Path.exists()`, :meth:`~Path.is_dir()`, :meth:`~Path.is_file()`, :" "meth:`~Path.is_mount()`, :meth:`~Path.is_symlink()`, :meth:`~Path." @@ -650,7 +705,7 @@ msgstr "" "generar una excepción para las rutas que contienen caracteres que no se " "pueden representar a nivel del sistema operativo." -#: ../Doc/library/pathlib.rst:724 +#: ../Doc/library/pathlib.rst:799 msgid "" "Return a new path object representing the current directory (as returned by :" "func:`os.getcwd`)::" @@ -658,7 +713,7 @@ msgstr "" "Retorna un nuevo objeto ruta que representa el directorio actual (como lo " "retorna :func:`os.getcwd`)::" -#: ../Doc/library/pathlib.rst:733 +#: ../Doc/library/pathlib.rst:808 msgid "" "Return a new path object representing the user's home directory (as returned " "by :func:`os.path.expanduser` with ``~`` construct). If the home directory " @@ -669,7 +724,7 @@ msgstr "" "Si el directorio de inicio no se puede resolver, se lanza :exc:" "`RuntimeError`." -#: ../Doc/library/pathlib.rst:747 +#: ../Doc/library/pathlib.rst:822 msgid "" "Return a :class:`os.stat_result` object containing information about this " "path, like :func:`os.stat`. The result is looked up at each call to this " @@ -679,7 +734,7 @@ msgstr "" "esta ruta, del mismo modo que :func:`os.stat`. El resultado se consulta en " "cada llamada a este método." -#: ../Doc/library/pathlib.rst:750 +#: ../Doc/library/pathlib.rst:825 msgid "" "This method normally follows symlinks; to stat a symlink add the argument " "``follow_symlinks=False``, or use :meth:`~Path.lstat`." @@ -688,15 +743,16 @@ msgstr "" "simbólicos, agregue el argumento ``follow_symlinks = False``, o use :meth:`~ " "Path.lstat`." -#: ../Doc/library/pathlib.rst:761 ../Doc/library/pathlib.rst:781 +#: ../Doc/library/pathlib.rst:836 ../Doc/library/pathlib.rst:856 +#: ../Doc/library/pathlib.rst:877 msgid "The *follow_symlinks* parameter was added." msgstr "Se agregó el parámetro *follow_symlinks*." -#: ../Doc/library/pathlib.rst:766 +#: ../Doc/library/pathlib.rst:841 msgid "Change the file mode and permissions, like :func:`os.chmod`." msgstr "Cambia el modo y los permisos de archivo, como :func:`os.chmod`." -#: ../Doc/library/pathlib.rst:768 +#: ../Doc/library/pathlib.rst:843 msgid "" "This method normally follows symlinks. Some Unix flavours support changing " "permissions on the symlink itself; on these platforms you may add the " @@ -707,19 +763,22 @@ msgstr "" "plataformas puede agregar el argumento ``follow_symlinks=False``, o usar :" "meth:`~Path.lchmod`." -#: ../Doc/library/pathlib.rst:786 -msgid "Whether the path points to an existing file or directory::" +#: ../Doc/library/pathlib.rst:861 +#, fuzzy +msgid "Return ``True`` if the path points to an existing file or directory." msgstr "Si la ruta apunta a un archivo o directorio existente::" -#: ../Doc/library/pathlib.rst:798 +#: ../Doc/library/pathlib.rst:863 +#, fuzzy msgid "" -"If the path points to a symlink, :meth:`exists` returns whether the symlink " -"*points to* an existing file or directory." +"This method normally follows symlinks; to check if a symlink exists, add the " +"argument ``follow_symlinks=False``." msgstr "" -"Si la ruta apunta a un enlace simbólico, :meth:`exist` retorna si el enlace " -"simbólico *apunta a* un archivo o directorio existente." +"Este método normalmente sigue enlaces simbólicos; para evitar enlaces " +"simbólicos, agregue el argumento ``follow_symlinks = False``, o use :meth:`~ " +"Path.lstat`." -#: ../Doc/library/pathlib.rst:804 +#: ../Doc/library/pathlib.rst:882 msgid "" "Return a new path with expanded ``~`` and ``~user`` constructs, as returned " "by :meth:`os.path.expanduser`. If a home directory can't be resolved, :exc:" @@ -729,7 +788,7 @@ msgstr "" "como lo retorna :meth:`os.path.expanduser`. Si el directorio de inicio no se " "puede resolver, se lanza :exc:`RuntimeError`." -#: ../Doc/library/pathlib.rst:819 +#: ../Doc/library/pathlib.rst:897 msgid "" "Glob the given relative *pattern* in the directory represented by this path, " "yielding all matching files (of any kind)::" @@ -737,7 +796,7 @@ msgstr "" "Analiza el patrón comodín relativo a esta ruta para producir todos los " "archivos coincidentes (de cualquier tipo):" -#: ../Doc/library/pathlib.rst:827 +#: ../Doc/library/pathlib.rst:905 msgid "" "Patterns are the same as for :mod:`fnmatch`, with the addition of \"``**``\" " "which means \"this directory and all subdirectories, recursively\". In " @@ -747,7 +806,15 @@ msgstr "" "\"``**``\" que significa \"este directorio y todos los subdirectorios de " "forma recursiva\". En otras palabras, habilita el comodín recursivo::" -#: ../Doc/library/pathlib.rst:839 +#: ../Doc/library/pathlib.rst:916 ../Doc/library/pathlib.rst:1333 +msgid "" +"By default, or when the *case_sensitive* keyword-only argument is set to " +"``None``, this method matches paths using platform-specific casing rules: " +"typically, case-sensitive on POSIX, and case-insensitive on Windows. Set " +"*case_sensitive* to ``True`` or ``False`` to override this behaviour." +msgstr "" + +#: ../Doc/library/pathlib.rst:922 msgid "" "Using the \"``**``\" pattern in large directory trees may consume an " "inordinate amount of time." @@ -755,7 +822,7 @@ msgstr "" "El uso del patrón \"``**``\" en grandes árboles de directorios puede " "consumir una cantidad excesiva de tiempo." -#: ../Doc/library/pathlib.rst:842 +#: ../Doc/library/pathlib.rst:925 msgid "" "Raises an :ref:`auditing event ` ``pathlib.Path.glob`` with " "arguments ``self``, ``pattern``." @@ -763,7 +830,7 @@ msgstr "" "Levanta un :ref:`auditing event ` ``pathlib.Path.glob`` con " "argumentos ``self``, ``pattern``." -#: ../Doc/library/pathlib.rst:844 ../Doc/library/pathlib.rst:1137 +#: ../Doc/library/pathlib.rst:927 ../Doc/library/pathlib.rst:1340 msgid "" "Return only directories if *pattern* ends with a pathname components " "separator (:data:`~os.sep` or :data:`~os.altsep`)." @@ -771,7 +838,7 @@ msgstr "" "Retorna solo directorios si *pattern* termina con un separador de " "componentes de nombre de ruta (:data:`~os.sep` o :data:`~os.altsep`)." -#: ../Doc/library/pathlib.rst:850 +#: ../Doc/library/pathlib.rst:937 msgid "" "Return the name of the group owning the file. :exc:`KeyError` is raised if " "the file's gid isn't found in the system database." @@ -780,7 +847,7 @@ msgstr "" "genera si el *gid* del archivo no se encuentra en la base de datos del " "sistema." -#: ../Doc/library/pathlib.rst:856 +#: ../Doc/library/pathlib.rst:943 msgid "" "Return ``True`` if the path points to a directory (or a symbolic link " "pointing to a directory), ``False`` if it points to another kind of file." @@ -788,9 +855,9 @@ msgstr "" "Retorna ``True`` si la ruta apunta a un directorio (o un enlace simbólico " "que apunta a un directorio), ``False`` si apunta a otro tipo de archivo." -#: ../Doc/library/pathlib.rst:859 ../Doc/library/pathlib.rst:868 -#: ../Doc/library/pathlib.rst:897 ../Doc/library/pathlib.rst:906 -#: ../Doc/library/pathlib.rst:915 ../Doc/library/pathlib.rst:924 +#: ../Doc/library/pathlib.rst:946 ../Doc/library/pathlib.rst:955 +#: ../Doc/library/pathlib.rst:997 ../Doc/library/pathlib.rst:1006 +#: ../Doc/library/pathlib.rst:1015 ../Doc/library/pathlib.rst:1024 msgid "" "``False`` is also returned if the path doesn't exist or is a broken symlink; " "other errors (such as permission errors) are propagated." @@ -798,7 +865,7 @@ msgstr "" "``False`` también se retorna si la ruta no existe o es un enlace simbólico " "roto; se propagan otros errores (como errores de permiso)." -#: ../Doc/library/pathlib.rst:865 +#: ../Doc/library/pathlib.rst:952 msgid "" "Return ``True`` if the path points to a regular file (or a symbolic link " "pointing to a regular file), ``False`` if it points to another kind of file." @@ -807,14 +874,26 @@ msgstr "" "simbólico que apunta a un archivo normal), ``Falso`` si apunta a otro tipo " "de archivo." -#: ../Doc/library/pathlib.rst:874 +#: ../Doc/library/pathlib.rst:961 +#, fuzzy +msgid "" +"Return ``True`` if the path points to a junction, and ``False`` for any " +"other type of file. Currently only Windows supports junctions." +msgstr "" +"Retorna ``True`` si la ruta apunta a un enlace simbólico, ``False`` de lo " +"contrario." + +#: ../Doc/library/pathlib.rst:969 +#, fuzzy msgid "" "Return ``True`` if the path is a :dfn:`mount point`: a point in a file " "system where a different file system has been mounted. On POSIX, the " "function checks whether *path*'s parent, :file:`path/..`, is on a different " "device than *path*, or whether :file:`path/..` and *path* point to the same " "i-node on the same device --- this should detect mount points for all Unix " -"and POSIX variants. Not implemented on Windows." +"and POSIX variants. On Windows, a mount point is considered to be a drive " +"letter root (e.g. ``c:\\``), a UNC share (e.g. ``\\\\server\\share``), or a " +"mounted filesystem directory." msgstr "" "Retorna ``True`` si la ruta es un :dfn:`punto de montaje`; un punto en un " "sistema de archivos donde otro sistema de archivo se encuentra montado. En " @@ -824,14 +903,19 @@ msgstr "" "detectar puntos de montajes para todas las variantes Unix y POSIX. No está " "implementado en Windows." -#: ../Doc/library/pathlib.rst:886 +#: ../Doc/library/pathlib.rst:980 +#, fuzzy +msgid "Windows support was added." +msgstr "Se agregó el parámetro *newline*." + +#: ../Doc/library/pathlib.rst:986 msgid "" "Return ``True`` if the path points to a symbolic link, ``False`` otherwise." msgstr "" "Retorna ``True`` si la ruta apunta a un enlace simbólico, ``False`` de lo " "contrario." -#: ../Doc/library/pathlib.rst:888 +#: ../Doc/library/pathlib.rst:988 msgid "" "``False`` is also returned if the path doesn't exist; other errors (such as " "permission errors) are propagated." @@ -839,7 +923,7 @@ msgstr "" "``False`` también se retorna si la ruta no existe; se extiende a otros " "errores (como errores de permiso)." -#: ../Doc/library/pathlib.rst:894 +#: ../Doc/library/pathlib.rst:994 msgid "" "Return ``True`` if the path points to a Unix socket (or a symbolic link " "pointing to a Unix socket), ``False`` if it points to another kind of file." @@ -847,7 +931,7 @@ msgstr "" "Retorna ``True`` si la ruta apunta a un *socket* Unix (o un enlace simbólico " "que apunta a uno), ``False`` si apunta a otro tipo de archivo." -#: ../Doc/library/pathlib.rst:903 +#: ../Doc/library/pathlib.rst:1003 msgid "" "Return ``True`` if the path points to a FIFO (or a symbolic link pointing to " "a FIFO), ``False`` if it points to another kind of file." @@ -855,7 +939,7 @@ msgstr "" "Retorna ``True`` si la ruta apunta a un *FIFO* (o un enlace simbólico que " "apunta a un *FIFO*), ``False`` si apunta a otro tipo de archivo." -#: ../Doc/library/pathlib.rst:912 +#: ../Doc/library/pathlib.rst:1012 msgid "" "Return ``True`` if the path points to a block device (or a symbolic link " "pointing to a block device), ``False`` if it points to another kind of file." @@ -863,7 +947,7 @@ msgstr "" "Retorna ``True`` si la ruta apunta a un dispositivo de bloques (o un enlace " "simbólico que apunta a uno), ``False`` si apunta a otro tipo de archivo." -#: ../Doc/library/pathlib.rst:921 +#: ../Doc/library/pathlib.rst:1021 msgid "" "Return ``True`` if the path points to a character device (or a symbolic link " "pointing to a character device), ``False`` if it points to another kind of " @@ -873,7 +957,7 @@ msgstr "" "enlace simbólico que apunta a uno), ``False`` si apunta a otro tipo de " "archivo." -#: ../Doc/library/pathlib.rst:930 +#: ../Doc/library/pathlib.rst:1030 msgid "" "When the path points to a directory, yield path objects of the directory " "contents::" @@ -881,7 +965,7 @@ msgstr "" "Cuando la ruta apunta a un directorio, produce objetos de ruta del contenido " "del directorio::" -#: ../Doc/library/pathlib.rst:944 +#: ../Doc/library/pathlib.rst:1044 msgid "" "The children are yielded in arbitrary order, and the special entries ``'.'`` " "and ``'..'`` are not included. If a file is removed from or added to the " @@ -893,7 +977,107 @@ msgstr "" "directorio después de crear el iterador, no se especifica si se incluirá un " "objeto de ruta para ese archivo." -#: ../Doc/library/pathlib.rst:951 +#: ../Doc/library/pathlib.rst:1051 +msgid "" +"Generate the file names in a directory tree by walking the tree either top-" +"down or bottom-up." +msgstr "" + +#: ../Doc/library/pathlib.rst:1054 +msgid "" +"For each directory in the directory tree rooted at *self* (including *self* " +"but excluding '.' and '..'), the method yields a 3-tuple of ``(dirpath, " +"dirnames, filenames)``." +msgstr "" + +#: ../Doc/library/pathlib.rst:1058 +msgid "" +"*dirpath* is a :class:`Path` to the directory currently being walked, " +"*dirnames* is a list of strings for the names of subdirectories in *dirpath* " +"(excluding ``'.'`` and ``'..'``), and *filenames* is a list of strings for " +"the names of the non-directory files in *dirpath*. To get a full path (which " +"begins with *self*) to a file or directory in *dirpath*, do ``dirpath / " +"name``. Whether or not the lists are sorted is file system-dependent." +msgstr "" + +#: ../Doc/library/pathlib.rst:1066 +msgid "" +"If the optional argument *top_down* is true (which is the default), the " +"triple for a directory is generated before the triples for any of its " +"subdirectories (directories are walked top-down). If *top_down* is false, " +"the triple for a directory is generated after the triples for all of its " +"subdirectories (directories are walked bottom-up). No matter the value of " +"*top_down*, the list of subdirectories is retrieved before the triples for " +"the directory and its subdirectories are walked." +msgstr "" + +#: ../Doc/library/pathlib.rst:1074 +msgid "" +"When *top_down* is true, the caller can modify the *dirnames* list in-place " +"(for example, using :keyword:`del` or slice assignment), and :meth:`Path." +"walk` will only recurse into the subdirectories whose names remain in " +"*dirnames*. This can be used to prune the search, or to impose a specific " +"order of visiting, or even to inform :meth:`Path.walk` about directories the " +"caller creates or renames before it resumes :meth:`Path.walk` again. " +"Modifying *dirnames* when *top_down* is false has no effect on the behavior " +"of :meth:`Path.walk()` since the directories in *dirnames* have already been " +"generated by the time *dirnames* is yielded to the caller." +msgstr "" + +#: ../Doc/library/pathlib.rst:1084 +msgid "" +"By default, errors from :func:`os.scandir` are ignored. If the optional " +"argument *on_error* is specified, it should be a callable; it will be called " +"with one argument, an :exc:`OSError` instance. The callable can handle the " +"error to continue the walk or re-raise it to stop the walk. Note that the " +"filename is available as the ``filename`` attribute of the exception object." +msgstr "" + +#: ../Doc/library/pathlib.rst:1090 +msgid "" +"By default, :meth:`Path.walk` does not follow symbolic links, and instead " +"adds them to the *filenames* list. Set *follow_symlinks* to true to resolve " +"symlinks and place them in *dirnames* and *filenames* as appropriate for " +"their targets, and consequently visit directories pointed to by symlinks " +"(where supported)." +msgstr "" + +#: ../Doc/library/pathlib.rst:1097 +msgid "" +"Be aware that setting *follow_symlinks* to true can lead to infinite " +"recursion if a link points to a parent directory of itself. :meth:`Path." +"walk` does not keep track of the directories it has already visited." +msgstr "" + +#: ../Doc/library/pathlib.rst:1102 +msgid "" +":meth:`Path.walk` assumes the directories it walks are not modified during " +"execution. For example, if a directory from *dirnames* has been replaced " +"with a symlink and *follow_symlinks* is false, :meth:`Path.walk` will still " +"try to descend into it. To prevent such behavior, remove directories from " +"*dirnames* as appropriate." +msgstr "" + +#: ../Doc/library/pathlib.rst:1110 +msgid "" +"Unlike :func:`os.walk`, :meth:`Path.walk` lists symlinks to directories in " +"*filenames* if *follow_symlinks* is false." +msgstr "" + +#: ../Doc/library/pathlib.rst:1113 +msgid "" +"This example displays the number of bytes used by all files in each " +"directory, while ignoring ``__pycache__`` directories::" +msgstr "" + +#: ../Doc/library/pathlib.rst:1129 +msgid "" +"This next example is a simple implementation of :func:`shutil.rmtree`. " +"Walking the tree bottom-up is essential as :func:`rmdir` doesn't allow " +"deleting a directory before it is empty::" +msgstr "" + +#: ../Doc/library/pathlib.rst:1146 msgid "" "Like :meth:`Path.chmod` but, if the path points to a symbolic link, the " "symbolic link's mode is changed rather than its target's." @@ -901,7 +1085,7 @@ msgstr "" "Del mismo modo que :meth:`Path.chmod` pero si la ruta apunta a un enlace " "simbólico, el modo del enlace simbólico cambia en lugar del de su objetivo." -#: ../Doc/library/pathlib.rst:957 +#: ../Doc/library/pathlib.rst:1152 msgid "" "Like :meth:`Path.stat` but, if the path points to a symbolic link, return " "the symbolic link's information rather than its target's." @@ -910,7 +1094,7 @@ msgstr "" "simbólico, retorna la información del enlace simbólico en lugar de la de su " "objetivo." -#: ../Doc/library/pathlib.rst:963 +#: ../Doc/library/pathlib.rst:1158 msgid "" "Create a new directory at this given path. If *mode* is given, it is " "combined with the process' ``umask`` value to determine the file mode and " @@ -921,7 +1105,7 @@ msgstr "" "archivo y los derechos de acceso. Si la ruta ya existe, se genera :exc:" "`FileExistsError`." -#: ../Doc/library/pathlib.rst:968 +#: ../Doc/library/pathlib.rst:1163 msgid "" "If *parents* is true, any missing parents of this path are created as " "needed; they are created with the default permissions without taking *mode* " @@ -931,7 +1115,7 @@ msgstr "" "sea necesario; se crean con los permisos predeterminados sin tener en cuenta " "*mode* (imitando el comando POSIX ``mkdir -p``)." -#: ../Doc/library/pathlib.rst:972 +#: ../Doc/library/pathlib.rst:1167 msgid "" "If *parents* is false (the default), a missing parent raises :exc:" "`FileNotFoundError`." @@ -939,7 +1123,7 @@ msgstr "" "Si *parents* es falso (el valor predeterminado), se genera un padre que " "falta :exc:`FileNotFoundError`." -#: ../Doc/library/pathlib.rst:975 +#: ../Doc/library/pathlib.rst:1170 msgid "" "If *exist_ok* is false (the default), :exc:`FileExistsError` is raised if " "the target directory already exists." @@ -947,7 +1131,7 @@ msgstr "" "Si *exist_ok* es falso (el valor predeterminado), se genera :exc:" "`FileExistsError` si el directorio de destino ya existe." -#: ../Doc/library/pathlib.rst:978 +#: ../Doc/library/pathlib.rst:1173 msgid "" "If *exist_ok* is true, :exc:`FileExistsError` exceptions will be ignored " "(same behavior as the POSIX ``mkdir -p`` command), but only if the last path " @@ -958,11 +1142,11 @@ msgstr "" "p``), pero solo si el último componente de ruta no es un archivo existente " "que no sea de directorio." -#: ../Doc/library/pathlib.rst:982 +#: ../Doc/library/pathlib.rst:1177 msgid "The *exist_ok* parameter was added." msgstr "Se agregó el parámetro *exist_ok*." -#: ../Doc/library/pathlib.rst:988 +#: ../Doc/library/pathlib.rst:1183 msgid "" "Open the file pointed to by the path, like the built-in :func:`open` " "function does::" @@ -970,7 +1154,7 @@ msgstr "" "Abre el archivo señalado por la ruta, como lo hace la función incorporada :" "func:`open`::" -#: ../Doc/library/pathlib.rst:1000 +#: ../Doc/library/pathlib.rst:1195 msgid "" "Return the name of the user owning the file. :exc:`KeyError` is raised if " "the file's uid isn't found in the system database." @@ -979,17 +1163,17 @@ msgstr "" "genera si el *uid* del archivo no se encuentra en la base de datos del " "sistema." -#: ../Doc/library/pathlib.rst:1006 +#: ../Doc/library/pathlib.rst:1201 msgid "Return the binary contents of the pointed-to file as a bytes object::" msgstr "" "Retorna el contenido binario del archivo apuntado como un objeto bytes::" -#: ../Doc/library/pathlib.rst:1019 +#: ../Doc/library/pathlib.rst:1214 msgid "Return the decoded contents of the pointed-to file as a string::" msgstr "" "Retorna el contenido decodificado del archivo apuntado como una cadena::" -#: ../Doc/library/pathlib.rst:1027 +#: ../Doc/library/pathlib.rst:1222 msgid "" "The file is opened and then closed. The optional parameters have the same " "meaning as in :func:`open`." @@ -997,7 +1181,7 @@ msgstr "" "El archivo se abre y luego se cierra. Los parámetros opcionales funcionan de " "la misma manera que en :func:`open`." -#: ../Doc/library/pathlib.rst:1035 +#: ../Doc/library/pathlib.rst:1230 msgid "" "Return the path to which the symbolic link points (as returned by :func:`os." "readlink`)::" @@ -1005,7 +1189,7 @@ msgstr "" "Retorna la ruta a la que apunta el vínculo simbólico (como lo retorna :func:" "`os.readlink`)::" -#: ../Doc/library/pathlib.rst:1048 +#: ../Doc/library/pathlib.rst:1243 msgid "" "Rename this file or directory to the given *target*, and return a new Path " "instance pointing to *target*. On Unix, if *target* exists and is a file, " @@ -1019,7 +1203,7 @@ msgstr "" "permiso. En Windows, si el *target* existe, se lanzará una excepción :exc:" "`FileExistsError`. El *target* puede ser una cadena u otro objeto de ruta:" -#: ../Doc/library/pathlib.rst:1063 ../Doc/library/pathlib.rst:1077 +#: ../Doc/library/pathlib.rst:1258 ../Doc/library/pathlib.rst:1274 msgid "" "The target path may be absolute or relative. Relative paths are interpreted " "relative to the current working directory, *not* the directory of the Path " @@ -1029,11 +1213,17 @@ msgstr "" "relativas se interpretan en relación con el directorio de trabajo actual, " "*no* el directorio del objeto Path." -#: ../Doc/library/pathlib.rst:1067 ../Doc/library/pathlib.rst:1081 +#: ../Doc/library/pathlib.rst:1262 +msgid "" +"It is implemented in terms of :func:`os.rename` and gives the same " +"guarantees." +msgstr "" + +#: ../Doc/library/pathlib.rst:1264 ../Doc/library/pathlib.rst:1278 msgid "Added return value, return the new Path instance." msgstr "Valor de retorno agregado, retorna la nueva instancia de *Path*." -#: ../Doc/library/pathlib.rst:1073 +#: ../Doc/library/pathlib.rst:1270 msgid "" "Rename this file or directory to the given *target*, and return a new Path " "instance pointing to *target*. If *target* points to an existing file or " @@ -1043,7 +1233,7 @@ msgstr "" "nueva instancia de *Path* que apunte a *target*. Si *target* apunta a un " "archivo existente o a un directorio vacío, se reemplazará incondicionalmente." -#: ../Doc/library/pathlib.rst:1087 +#: ../Doc/library/pathlib.rst:1284 msgid "" "Make the path absolute, without normalization or resolving symlinks. Returns " "a new path object::" @@ -1051,7 +1241,7 @@ msgstr "" "Hace que la ruta sea absoluta, sin normalización ni resolución de enlaces " "simbólicos. Retorna un nuevo objeto de ruta::" -#: ../Doc/library/pathlib.rst:1099 +#: ../Doc/library/pathlib.rst:1296 msgid "" "Make the path absolute, resolving any symlinks. A new path object is " "returned::" @@ -1059,7 +1249,7 @@ msgstr "" "Hace que la ruta sea absoluta, resolviendo los enlaces simbólicos. Se " "retorna un nuevo objeto ruta::" -#: ../Doc/library/pathlib.rst:1108 +#: ../Doc/library/pathlib.rst:1305 msgid "" "\"``..``\" components are also eliminated (this is the only method to do " "so)::" @@ -1067,7 +1257,7 @@ msgstr "" "Los componentes \"``..``\" también se eliminan (este es el único método para " "hacerlo)::" -#: ../Doc/library/pathlib.rst:1114 +#: ../Doc/library/pathlib.rst:1311 msgid "" "If the path doesn't exist and *strict* is ``True``, :exc:`FileNotFoundError` " "is raised. If *strict* is ``False``, the path is resolved as far as " @@ -1081,21 +1271,24 @@ msgstr "" "encuentra un bucle infinito en la resolución de la ruta se genera :exc:" "`RuntimeError`." -#: ../Doc/library/pathlib.rst:1120 -msgid "The *strict* argument (pre-3.6 behavior is strict)." +#: ../Doc/library/pathlib.rst:1317 +#, fuzzy +msgid "The *strict* parameter was added (pre-3.6 behavior is strict)." msgstr "" "El argumento *strict* (el comportamiento previo a 3.6 es *strict* = " "``True``)." -#: ../Doc/library/pathlib.rst:1125 +#: ../Doc/library/pathlib.rst:1322 +#, fuzzy msgid "" -"This is like calling :func:`Path.glob` with \"``**/``\" added in front of " -"the given relative *pattern*::" +"Glob the given relative *pattern* recursively. This is like calling :func:" +"`Path.glob` with \"``**/``\" added in front of the *pattern*, where " +"*patterns* are the same as for :mod:`fnmatch`::" msgstr "" "Idéntico a llamar a :func:`Path.glob` con \"``**/``\" agregado delante del " "*pattern* relativo::" -#: ../Doc/library/pathlib.rst:1135 +#: ../Doc/library/pathlib.rst:1338 msgid "" "Raises an :ref:`auditing event ` ``pathlib.Path.rglob`` with " "arguments ``self``, ``pattern``." @@ -1103,11 +1296,11 @@ msgstr "" "Levanta un :ref:`auditing event ` ``pathlib.Path.rglob`` con " "argumentos ``self``, ``pattern``." -#: ../Doc/library/pathlib.rst:1143 +#: ../Doc/library/pathlib.rst:1350 msgid "Remove this directory. The directory must be empty." msgstr "Elimina el directorio. El directorio debe estar vacío." -#: ../Doc/library/pathlib.rst:1148 +#: ../Doc/library/pathlib.rst:1355 msgid "" "Return whether this path points to the same file as *other_path*, which can " "be either a Path object, or a string. The semantics are similar to :func:" @@ -1117,7 +1310,7 @@ msgstr "" "un objeto *Path* o una cadena. La semántica es similar a :func:`os.path." "samefile` y :func:`os.path.samestat`." -#: ../Doc/library/pathlib.rst:1152 +#: ../Doc/library/pathlib.rst:1359 msgid "" "An :exc:`OSError` can be raised if either file cannot be accessed for some " "reason." @@ -1125,7 +1318,7 @@ msgstr "" "Se puede generar :exc:`OSError` si no se accede a alguno de los archivos por " "algún motivo." -#: ../Doc/library/pathlib.rst:1169 +#: ../Doc/library/pathlib.rst:1376 msgid "" "Make this path a symbolic link to *target*. Under Windows, " "*target_is_directory* must be true (default ``False``) if the link's target " @@ -1136,51 +1329,25 @@ msgstr "" "directorio (``False`` es predeterminado). En POSIX, el valor de " "*target_is_directory* se ignora." -#: ../Doc/library/pathlib.rst:1185 +#: ../Doc/library/pathlib.rst:1392 msgid "" "The order of arguments (link, target) is the reverse of :func:`os.symlink`'s." msgstr "" "El orden de los argumentos (*link*, *target*) es el reverso de :func:`os." "symlink`'s." -#: ../Doc/library/pathlib.rst:1190 +#: ../Doc/library/pathlib.rst:1397 msgid "Make this path a hard link to the same file as *target*." msgstr "" "Hace de esta ruta un enlace fijo que apunta al mismo archivo que *target*." -#: ../Doc/library/pathlib.rst:1193 +#: ../Doc/library/pathlib.rst:1400 msgid "" "The order of arguments (link, target) is the reverse of :func:`os.link`'s." msgstr "" "El orden de los argumentos (link, target) es el reverso de :func:`os.link`." -#: ../Doc/library/pathlib.rst:1200 -msgid "Make *target* a hard link to this path." -msgstr "Hace que *taget* sea un enlace fijo a esta ruta." - -#: ../Doc/library/pathlib.rst:1204 -msgid "" -"This function does not make this path a hard link to *target*, despite the " -"implication of the function and argument names. The argument order (target, " -"link) is the reverse of :func:`Path.symlink_to` and :func:`Path." -"hardlink_to`, but matches that of :func:`os.link`." -msgstr "" -"Esta función no hace que esta ruta sea un enlace fijo a *target*, a pesar de " -"la implicación de los nombres de la función y los argumentos. El orden de " -"los argumentos (target, link) es el inverso de :func:`Path.symlink_to` y :" -"func:`Path.hardlink_to`, pero coincide con el de :func:`os.link`." - -#: ../Doc/library/pathlib.rst:1213 -msgid "" -"This method is deprecated in favor of :meth:`Path.hardlink_to`, as the " -"argument order of :meth:`Path.link_to` does not match that of :meth:`Path." -"symlink_to`." -msgstr "" -"Este método está deprecado en favor de :meth:`Path.hardlink_to`, ya que el " -"orden de los argumentos de :meth:`Path.link_to` no coincide con el de :meth:" -"`Path.symlink_to`." - -#: ../Doc/library/pathlib.rst:1220 +#: ../Doc/library/pathlib.rst:1408 msgid "" "Create a file at this given path. If *mode* is given, it is combined with " "the process' ``umask`` value to determine the file mode and access flags. " @@ -1194,7 +1361,7 @@ msgstr "" "*exist_ok* es verdadero (y su hora de modificación se actualiza a la hora " "actual), de lo contrario se genera :exc:`FileExistsError`." -#: ../Doc/library/pathlib.rst:1229 +#: ../Doc/library/pathlib.rst:1417 msgid "" "Remove this file or symbolic link. If the path points to a directory, use :" "func:`Path.rmdir` instead." @@ -1202,7 +1369,7 @@ msgstr "" "Elimine el archivo o enlace simbólico. Si la ruta apunta a un directorio, " "use :func:`Path.rmdir` en su lugar." -#: ../Doc/library/pathlib.rst:1232 +#: ../Doc/library/pathlib.rst:1420 msgid "" "If *missing_ok* is false (the default), :exc:`FileNotFoundError` is raised " "if the path does not exist." @@ -1210,7 +1377,7 @@ msgstr "" "Si *missing_ok* es falso (el valor predeterminado), se genera :exc:" "`FileNotFoundError` si la ruta no existe." -#: ../Doc/library/pathlib.rst:1235 +#: ../Doc/library/pathlib.rst:1423 msgid "" "If *missing_ok* is true, :exc:`FileNotFoundError` exceptions will be ignored " "(same behavior as the POSIX ``rm -f`` command)." @@ -1218,29 +1385,29 @@ msgstr "" "Si *missing_ok* es verdadero, las excepciones :exc:`FileNotFoundError` serán " "ignoradas (el mismo comportamiento que el comando POSIX ``rm -f``)." -#: ../Doc/library/pathlib.rst:1238 +#: ../Doc/library/pathlib.rst:1426 msgid "The *missing_ok* parameter was added." msgstr "Se agregó el parámetro *missing_ok*." -#: ../Doc/library/pathlib.rst:1244 +#: ../Doc/library/pathlib.rst:1432 msgid "" "Open the file pointed to in bytes mode, write *data* to it, and close the " "file::" msgstr "" "Abre el archivo apuntado en modo bytes, escribe *data* y cierra el archivo::" -#: ../Doc/library/pathlib.rst:1253 +#: ../Doc/library/pathlib.rst:1441 msgid "An existing file of the same name is overwritten." msgstr "Se sobrescribe un archivo existente con el mismo nombre." -#: ../Doc/library/pathlib.rst:1260 +#: ../Doc/library/pathlib.rst:1448 msgid "" "Open the file pointed to in text mode, write *data* to it, and close the " "file::" msgstr "" "Abre el archivo apuntado en modo texto, escribe *data* y cierra el archivo::" -#: ../Doc/library/pathlib.rst:1269 +#: ../Doc/library/pathlib.rst:1457 msgid "" "An existing file of the same name is overwritten. The optional parameters " "have the same meaning as in :func:`open`." @@ -1248,15 +1415,15 @@ msgstr "" "Se sobrescribe un archivo existente con el mismo nombre. Los parámetros " "opcionales tienen el mismo significado que en :func:`open`." -#: ../Doc/library/pathlib.rst:1274 +#: ../Doc/library/pathlib.rst:1462 msgid "The *newline* parameter was added." msgstr "Se agregó el parámetro *newline*." -#: ../Doc/library/pathlib.rst:1278 +#: ../Doc/library/pathlib.rst:1466 msgid "Correspondence to tools in the :mod:`os` module" msgstr "Correspondencia a herramientas en el módulo :mod:`os`" -#: ../Doc/library/pathlib.rst:1280 +#: ../Doc/library/pathlib.rst:1468 msgid "" "Below is a table mapping various :mod:`os` functions to their corresponding :" "class:`PurePath`/:class:`Path` equivalent." @@ -1264,7 +1431,7 @@ msgstr "" "A continuación se muestra una tabla que asigna varias funciones :mod:`os` a " "sus equivalentes en :class:`PurePath`/:class:`Path`." -#: ../Doc/library/pathlib.rst:1285 +#: ../Doc/library/pathlib.rst:1473 msgid "" "Not all pairs of functions/methods below are equivalent. Some of them, " "despite having some overlapping use-cases, have different semantics. They " @@ -1276,231 +1443,244 @@ msgstr "" "una semántica diferente. Incluyen :func:`os.path.abspath` y :meth:`Path." "absolute`, :func:`os.path.relpath` y :meth:`PurePath.relative_to`." -#: ../Doc/library/pathlib.rst:1291 +#: ../Doc/library/pathlib.rst:1479 msgid ":mod:`os` and :mod:`os.path`" msgstr ":mod:`os` y :mod:`os.path`" -#: ../Doc/library/pathlib.rst:1291 +#: ../Doc/library/pathlib.rst:1479 msgid ":mod:`pathlib`" msgstr ":mod:`pathlib`" -#: ../Doc/library/pathlib.rst:1293 +#: ../Doc/library/pathlib.rst:1481 msgid ":func:`os.path.abspath`" msgstr ":func:`os.path.abspath`" -#: ../Doc/library/pathlib.rst:1293 +#: ../Doc/library/pathlib.rst:1481 msgid ":meth:`Path.absolute` [#]_" msgstr ":meth:`Path.absolute` [#]_" -#: ../Doc/library/pathlib.rst:1294 +#: ../Doc/library/pathlib.rst:1482 msgid ":func:`os.path.realpath`" msgstr ":func:`os.path.realpath`" -#: ../Doc/library/pathlib.rst:1294 +#: ../Doc/library/pathlib.rst:1482 msgid ":meth:`Path.resolve`" msgstr ":meth:`Path.resolve`" -#: ../Doc/library/pathlib.rst:1295 +#: ../Doc/library/pathlib.rst:1483 msgid ":func:`os.chmod`" msgstr ":func:`os.chmod`" -#: ../Doc/library/pathlib.rst:1295 +#: ../Doc/library/pathlib.rst:1483 msgid ":meth:`Path.chmod`" msgstr ":meth:`Path.chmod`" -#: ../Doc/library/pathlib.rst:1296 +#: ../Doc/library/pathlib.rst:1484 msgid ":func:`os.mkdir`" msgstr ":func:`os.mkdir`" -#: ../Doc/library/pathlib.rst:1296 ../Doc/library/pathlib.rst:1297 +#: ../Doc/library/pathlib.rst:1484 ../Doc/library/pathlib.rst:1485 msgid ":meth:`Path.mkdir`" msgstr ":meth:`Path.mkdir`" -#: ../Doc/library/pathlib.rst:1297 +#: ../Doc/library/pathlib.rst:1485 msgid ":func:`os.makedirs`" msgstr ":func:`os.makedirs`" -#: ../Doc/library/pathlib.rst:1298 +#: ../Doc/library/pathlib.rst:1486 msgid ":func:`os.rename`" msgstr ":func:`os.rename`" -#: ../Doc/library/pathlib.rst:1298 +#: ../Doc/library/pathlib.rst:1486 msgid ":meth:`Path.rename`" msgstr ":meth:`Path.rename`" -#: ../Doc/library/pathlib.rst:1299 +#: ../Doc/library/pathlib.rst:1487 msgid ":func:`os.replace`" msgstr ":func:`os.replace`" -#: ../Doc/library/pathlib.rst:1299 +#: ../Doc/library/pathlib.rst:1487 msgid ":meth:`Path.replace`" msgstr ":meth:`Path.replace`" -#: ../Doc/library/pathlib.rst:1300 +#: ../Doc/library/pathlib.rst:1488 msgid ":func:`os.rmdir`" msgstr ":func:`os.rmdir`" -#: ../Doc/library/pathlib.rst:1300 +#: ../Doc/library/pathlib.rst:1488 msgid ":meth:`Path.rmdir`" msgstr ":meth:`Path.rmdir`" -#: ../Doc/library/pathlib.rst:1301 +#: ../Doc/library/pathlib.rst:1489 msgid ":func:`os.remove`, :func:`os.unlink`" msgstr ":func:`os.remove`, :func:`os.unlink`" -#: ../Doc/library/pathlib.rst:1301 +#: ../Doc/library/pathlib.rst:1489 msgid ":meth:`Path.unlink`" msgstr ":meth:`Path.unlink`" -#: ../Doc/library/pathlib.rst:1302 +#: ../Doc/library/pathlib.rst:1490 msgid ":func:`os.getcwd`" msgstr ":func:`os.getcwd`" -#: ../Doc/library/pathlib.rst:1302 +#: ../Doc/library/pathlib.rst:1490 msgid ":func:`Path.cwd`" msgstr ":func:`Path.cwd`" -#: ../Doc/library/pathlib.rst:1303 +#: ../Doc/library/pathlib.rst:1491 msgid ":func:`os.path.exists`" msgstr ":func:`os.path.exists`" -#: ../Doc/library/pathlib.rst:1303 +#: ../Doc/library/pathlib.rst:1491 msgid ":meth:`Path.exists`" msgstr ":meth:`Path.exists`" -#: ../Doc/library/pathlib.rst:1304 +#: ../Doc/library/pathlib.rst:1492 msgid ":func:`os.path.expanduser`" msgstr ":func:`os.path.expanduser`" -#: ../Doc/library/pathlib.rst:1304 +#: ../Doc/library/pathlib.rst:1492 msgid ":meth:`Path.expanduser` and :meth:`Path.home`" msgstr ":meth:`Path.expanduser` y :meth:`Path.home`" -#: ../Doc/library/pathlib.rst:1306 +#: ../Doc/library/pathlib.rst:1494 msgid ":func:`os.listdir`" msgstr ":func:`os.listdir`" -#: ../Doc/library/pathlib.rst:1306 +#: ../Doc/library/pathlib.rst:1494 msgid ":meth:`Path.iterdir`" msgstr ":meth:`Path.iterdir`" -#: ../Doc/library/pathlib.rst:1307 +#: ../Doc/library/pathlib.rst:1495 +#, fuzzy +msgid ":func:`os.walk`" +msgstr ":func:`os.link`" + +#: ../Doc/library/pathlib.rst:1495 +#, fuzzy +msgid ":meth:`Path.walk`" +msgstr ":meth:`Path.readlink`" + +#: ../Doc/library/pathlib.rst:1496 msgid ":func:`os.path.isdir`" msgstr ":func:`os.path.isdir`" -#: ../Doc/library/pathlib.rst:1307 +#: ../Doc/library/pathlib.rst:1496 msgid ":meth:`Path.is_dir`" msgstr ":meth:`Path.is_dir`" -#: ../Doc/library/pathlib.rst:1308 +#: ../Doc/library/pathlib.rst:1497 msgid ":func:`os.path.isfile`" msgstr ":func:`os.path.isfile`" -#: ../Doc/library/pathlib.rst:1308 +#: ../Doc/library/pathlib.rst:1497 msgid ":meth:`Path.is_file`" msgstr ":meth:`Path.is_file`" -#: ../Doc/library/pathlib.rst:1309 +#: ../Doc/library/pathlib.rst:1498 msgid ":func:`os.path.islink`" msgstr ":func:`os.path.islink`" -#: ../Doc/library/pathlib.rst:1309 +#: ../Doc/library/pathlib.rst:1498 msgid ":meth:`Path.is_symlink`" msgstr ":meth:`Path.is_symlink`" -#: ../Doc/library/pathlib.rst:1310 +#: ../Doc/library/pathlib.rst:1499 msgid ":func:`os.link`" msgstr ":func:`os.link`" -#: ../Doc/library/pathlib.rst:1310 +#: ../Doc/library/pathlib.rst:1499 msgid ":meth:`Path.hardlink_to`" msgstr ":meth:`Path.hardlink_to`" -#: ../Doc/library/pathlib.rst:1311 +#: ../Doc/library/pathlib.rst:1500 msgid ":func:`os.symlink`" msgstr ":func:`os.symlink`" -#: ../Doc/library/pathlib.rst:1311 +#: ../Doc/library/pathlib.rst:1500 msgid ":meth:`Path.symlink_to`" msgstr ":meth:`Path.symlink_to`" -#: ../Doc/library/pathlib.rst:1312 +#: ../Doc/library/pathlib.rst:1501 msgid ":func:`os.readlink`" msgstr ":func:`os.readlink`" -#: ../Doc/library/pathlib.rst:1312 +#: ../Doc/library/pathlib.rst:1501 msgid ":meth:`Path.readlink`" msgstr ":meth:`Path.readlink`" -#: ../Doc/library/pathlib.rst:1313 +#: ../Doc/library/pathlib.rst:1502 msgid ":func:`os.path.relpath`" msgstr ":func:`os.path.relpath`" -#: ../Doc/library/pathlib.rst:1313 +#: ../Doc/library/pathlib.rst:1502 msgid ":meth:`PurePath.relative_to` [#]_" msgstr ":meth:`PurePath.relative_to` [#]_" -#: ../Doc/library/pathlib.rst:1314 +#: ../Doc/library/pathlib.rst:1503 msgid ":func:`os.stat`" msgstr ":func:`os.stat`" -#: ../Doc/library/pathlib.rst:1314 +#: ../Doc/library/pathlib.rst:1503 msgid ":meth:`Path.stat`, :meth:`Path.owner`, :meth:`Path.group`" msgstr ":meth:`Path.stat`, :meth:`Path.owner`, :meth:`Path.group`" -#: ../Doc/library/pathlib.rst:1317 +#: ../Doc/library/pathlib.rst:1506 msgid ":func:`os.path.isabs`" msgstr ":func:`os.path.isabs`" -#: ../Doc/library/pathlib.rst:1317 +#: ../Doc/library/pathlib.rst:1506 msgid ":meth:`PurePath.is_absolute`" msgstr ":meth:`PurePath.is_absolute`" -#: ../Doc/library/pathlib.rst:1318 +#: ../Doc/library/pathlib.rst:1507 msgid ":func:`os.path.join`" msgstr ":func:`os.path.join`" -#: ../Doc/library/pathlib.rst:1318 +#: ../Doc/library/pathlib.rst:1507 msgid ":func:`PurePath.joinpath`" msgstr ":func:`PurePath.joinpath`" -#: ../Doc/library/pathlib.rst:1319 +#: ../Doc/library/pathlib.rst:1508 msgid ":func:`os.path.basename`" msgstr ":func:`os.path.basename`" -#: ../Doc/library/pathlib.rst:1319 -msgid ":data:`PurePath.name`" +#: ../Doc/library/pathlib.rst:1508 +#, fuzzy +msgid ":attr:`PurePath.name`" msgstr ":data:`PurePath.name`" -#: ../Doc/library/pathlib.rst:1320 +#: ../Doc/library/pathlib.rst:1509 msgid ":func:`os.path.dirname`" msgstr ":func:`os.path.dirname`" -#: ../Doc/library/pathlib.rst:1320 -msgid ":data:`PurePath.parent`" +#: ../Doc/library/pathlib.rst:1509 +#, fuzzy +msgid ":attr:`PurePath.parent`" msgstr ":data:`PurePath.parent`" -#: ../Doc/library/pathlib.rst:1321 +#: ../Doc/library/pathlib.rst:1510 msgid ":func:`os.path.samefile`" msgstr ":func:`os.path.samefile`" -#: ../Doc/library/pathlib.rst:1321 +#: ../Doc/library/pathlib.rst:1510 msgid ":meth:`Path.samefile`" msgstr ":meth:`Path.samefile`" -#: ../Doc/library/pathlib.rst:1322 +#: ../Doc/library/pathlib.rst:1511 msgid ":func:`os.path.splitext`" msgstr ":func:`os.path.splitext`" -#: ../Doc/library/pathlib.rst:1322 -msgid ":data:`PurePath.stem` and :data:`PurePath.suffix`" +#: ../Doc/library/pathlib.rst:1511 +#, fuzzy +msgid ":attr:`PurePath.stem` and :attr:`PurePath.suffix`" msgstr ":data:`PurePath.stem` y :data:`PurePath.suffix`" -#: ../Doc/library/pathlib.rst:1327 +#: ../Doc/library/pathlib.rst:1516 msgid "Footnotes" msgstr "Notas al pie" -#: ../Doc/library/pathlib.rst:1328 +#: ../Doc/library/pathlib.rst:1517 msgid "" ":func:`os.path.abspath` normalizes the resulting path, which may change its " "meaning in the presence of symlinks, while :meth:`Path.absolute` does not." @@ -1509,10 +1689,70 @@ msgstr "" "su significado en presencia de enlaces simbólicos, mientras que :meth:`Path." "absolute` no lo hace." -#: ../Doc/library/pathlib.rst:1329 +#: ../Doc/library/pathlib.rst:1518 msgid "" ":meth:`PurePath.relative_to` requires ``self`` to be the subpath of the " "argument, but :func:`os.path.relpath` does not." msgstr "" ":meth:`PurePath.relative_to` requiere que ``self`` sea la ruta secundaria " "del argumento, pero :func:`os.path.relpath` no." + +#: ../Doc/library/pathlib.rst:12 +msgid "path" +msgstr "" + +#: ../Doc/library/pathlib.rst:12 +#, fuzzy +msgid "operations" +msgstr "Operadores" + +#~ msgid "" +#~ "When several absolute paths are given, the last is taken as an anchor " +#~ "(mimicking :func:`os.path.join`'s behaviour)::" +#~ msgstr "" +#~ "Cuando se proporcionan varias rutas absolutas, la última se toma como un " +#~ "ancla (copiando el comportamiento de :func:`os.path.join`)::" + +#~ msgid "" +#~ "However, in a Windows path, changing the local root doesn't discard the " +#~ "previous drive setting::" +#~ msgstr "" +#~ "Sin embargo, en una ruta de Windows, cambiar la raíz local no elimina la " +#~ "configuración de la unidad anterior:" + +#~ msgid "" +#~ "The slash operator helps create child paths, similarly to :func:`os.path." +#~ "join`::" +#~ msgstr "" +#~ "El operador barra ayuda a crear rutas secundarias, similar a :func:`os." +#~ "path.join`::" + +#~ msgid "" +#~ "If the path points to a symlink, :meth:`exists` returns whether the " +#~ "symlink *points to* an existing file or directory." +#~ msgstr "" +#~ "Si la ruta apunta a un enlace simbólico, :meth:`exist` retorna si el " +#~ "enlace simbólico *apunta a* un archivo o directorio existente." + +#~ msgid "Make *target* a hard link to this path." +#~ msgstr "Hace que *taget* sea un enlace fijo a esta ruta." + +#~ msgid "" +#~ "This function does not make this path a hard link to *target*, despite " +#~ "the implication of the function and argument names. The argument order " +#~ "(target, link) is the reverse of :func:`Path.symlink_to` and :func:`Path." +#~ "hardlink_to`, but matches that of :func:`os.link`." +#~ msgstr "" +#~ "Esta función no hace que esta ruta sea un enlace fijo a *target*, a pesar " +#~ "de la implicación de los nombres de la función y los argumentos. El orden " +#~ "de los argumentos (target, link) es el inverso de :func:`Path.symlink_to` " +#~ "y :func:`Path.hardlink_to`, pero coincide con el de :func:`os.link`." + +#~ msgid "" +#~ "This method is deprecated in favor of :meth:`Path.hardlink_to`, as the " +#~ "argument order of :meth:`Path.link_to` does not match that of :meth:" +#~ "`Path.symlink_to`." +#~ msgstr "" +#~ "Este método está deprecado en favor de :meth:`Path.hardlink_to`, ya que " +#~ "el orden de los argumentos de :meth:`Path.link_to` no coincide con el de :" +#~ "meth:`Path.symlink_to`." diff --git a/library/pdb.po b/library/pdb.po index 802197a4f1..30a87d3980 100644 --- a/library/pdb.po +++ b/library/pdb.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-31 09:15+0100\n" "Last-Translator: Krystal Jean Austin\n" "Language: es\n" @@ -19,8 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 2.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/pdb.rst:4 msgid ":mod:`pdb` --- The Python Debugger" @@ -57,15 +56,63 @@ msgstr "" "leyendo la fuente. La interfaz de extensión usa los módulos :mod:`bdb` y :" "mod:`cmd`." -#: ../Doc/library/pdb.rst:30 +#: ../Doc/library/pdb.rst:34 +msgid "Module :mod:`faulthandler`" +msgstr "" + +#: ../Doc/library/pdb.rst:33 msgid "" -"The debugger's prompt is ``(Pdb)``. Typical usage to run a program under " -"control of the debugger is::" +"Used to dump Python tracebacks explicitly, on a fault, after a timeout, or " +"on a user signal." msgstr "" -"El mensaje del depurador es ``(Pdb)``. El uso típico para ejecutar un " -"programa bajo el control del depurador es::" -#: ../Doc/library/pdb.rst:44 +#: ../Doc/library/pdb.rst:36 +msgid "Module :mod:`traceback`" +msgstr "" + +#: ../Doc/library/pdb.rst:37 +msgid "" +"Standard interface to extract, format and print stack traces of Python " +"programs." +msgstr "" + +#: ../Doc/library/pdb.rst:39 +#, fuzzy +msgid "The typical usage to break into the debugger is to insert::" +msgstr "" +"El uso típico para entrar en el depurador de un programa en ejecución es " +"insertar::" + +#: ../Doc/library/pdb.rst:43 +msgid "Or::" +msgstr "" + +#: ../Doc/library/pdb.rst:47 +#, fuzzy +msgid "" +"at the location you want to break into the debugger, and then run the " +"program. You can then step through the code following this statement, and " +"continue running without the debugger using the :pdbcmd:`continue` command." +msgstr "" +"En el lugar donde quieres ingresar en el depurador. Entonces puedes pasar a " +"través del código siguiendo esta declaración, y continuar corriendo sin el " +"depurador usando el comando :pdbcmd:`continue`." + +#: ../Doc/library/pdb.rst:51 +msgid "" +"The built-in :func:`breakpoint()`, when called with defaults, can be used " +"instead of ``import pdb; pdb.set_trace()``." +msgstr "" +"La :func:`breakpoint()` incorporada cuando se llama con los valores por " +"defecto, puede ser usado en lugar del ``import pdb; pdb.set_trace()``." + +#: ../Doc/library/pdb.rst:63 +msgid "" +"The debugger's prompt is ``(Pdb)``, which is the indicator that you are in " +"debug mode::" +msgstr "" + +#: ../Doc/library/pdb.rst:72 msgid "" "Tab-completion via the :mod:`readline` module is available for commands and " "command arguments, e.g. the current global and local names are offered as " @@ -75,17 +122,19 @@ msgstr "" "disponible para comandos y argumentos de comando, por ejemplo. Los nombres " "globales y locales actuales se ofrecen como argumentos del comando ``p``." -#: ../Doc/library/pdb.rst:49 +#: ../Doc/library/pdb.rst:78 +#, fuzzy msgid "" -":file:`pdb.py` can also be invoked as a script to debug other scripts. For " -"example::" +"You can also invoke :mod:`pdb` from the command line to debug other " +"scripts. For example::" msgstr "" ":file:`pdb.py` también puede ser invocado como un script para depurar otros " "scripts. Por ejemplo::" -#: ../Doc/library/pdb.rst:54 +#: ../Doc/library/pdb.rst:83 +#, fuzzy msgid "" -"When invoked as a script, pdb will automatically enter post-mortem debugging " +"When invoked as a module, pdb will automatically enter post-mortem debugging " "if the program being debugged exits abnormally. After post-mortem debugging " "(or after normal exit of the program), pdb will restart the program. " "Automatic restarting preserves pdb's state (such as breakpoints) and in most " @@ -98,55 +147,38 @@ msgstr "" "(como los puntos de ruptura) y en la mayoría de los casos es más útil que " "abandonar el depurador al salir del programa." -#: ../Doc/library/pdb.rst:60 +#: ../Doc/library/pdb.rst:89 +#, fuzzy msgid "" -":file:`pdb.py` now accepts a ``-c`` option that executes commands as if " -"given in a :file:`.pdbrc` file, see :ref:`debugger-commands`." +"``-c`` option is introduced to execute commands as if given in a :file:`." +"pdbrc` file, see :ref:`debugger-commands`." msgstr "" ":file:`pdb.py` ahora acepta una opción ``-c`` que ejecuta comandos como si " "se dieran en un archivo :file:`.pdbrc`, ver :ref:`debugger-commands`." -#: ../Doc/library/pdb.rst:64 +#: ../Doc/library/pdb.rst:93 +#, fuzzy msgid "" -":file:`pdb.py` now accepts a ``-m`` option that execute modules similar to " -"the way ``python3 -m`` does. As with a script, the debugger will pause " -"execution just before the first line of the module." +"``-m`` option is introduced to execute modules similar to the way ``python -" +"m`` does. As with a script, the debugger will pause execution just before " +"the first line of the module." msgstr "" ":file:`pdb.py` ahora acepta una opción ``-m`` que ejecuta módulos similares " "a los que ``python3 -m`` hace. Como con un script, el depurador detendrá la " "ejecución justo antes de la primera línea del módulo." -#: ../Doc/library/pdb.rst:70 +#: ../Doc/library/pdb.rst:98 #, fuzzy -msgid "The typical usage to break into the debugger is to insert::" +msgid "Typical usage to execute a statement under control of the debugger is::" msgstr "" -"El uso típico para entrar en el depurador de un programa en ejecución es " -"insertar::" - -#: ../Doc/library/pdb.rst:74 -#, fuzzy -msgid "" -"at the location you want to break into the debugger, and then run the " -"program. You can then step through the code following this statement, and " -"continue running without the debugger using the :pdbcmd:`continue` command." -msgstr "" -"En el lugar donde quieres ingresar en el depurador. Entonces puedes pasar a " -"través del código siguiendo esta declaración, y continuar corriendo sin el " -"depurador usando el comando :pdbcmd:`continue`." - -#: ../Doc/library/pdb.rst:78 -msgid "" -"The built-in :func:`breakpoint()`, when called with defaults, can be used " -"instead of ``import pdb; pdb.set_trace()``." -msgstr "" -"La :func:`breakpoint()` incorporada cuando se llama con los valores por " -"defecto, puede ser usado en lugar del ``import pdb; pdb.set_trace()``." +"El mensaje del depurador es ``(Pdb)``. El uso típico para ejecutar un " +"programa bajo el control del depurador es::" -#: ../Doc/library/pdb.rst:82 +#: ../Doc/library/pdb.rst:109 msgid "The typical usage to inspect a crashed program is::" msgstr "El uso típico para inspeccionar un programa que se ha estrellado es:" -#: ../Doc/library/pdb.rst:100 +#: ../Doc/library/pdb.rst:127 msgid "" "The module defines the following functions; each enters the debugger in a " "slightly different way:" @@ -154,7 +186,7 @@ msgstr "" "El módulo define las siguientes funciones; cada una de ellas entra en el " "depurador de una manera ligeramente diferente:" -#: ../Doc/library/pdb.rst:105 +#: ../Doc/library/pdb.rst:132 msgid "" "Execute the *statement* (given as a string or a code object) under debugger " "control. The debugger prompt appears before any code is executed; you can " @@ -175,17 +207,18 @@ msgstr "" "`__main__`. (Ver la explicación de las funciones incorporadas :func:`exec` " "o :func:`eval`)." -#: ../Doc/library/pdb.rst:117 +#: ../Doc/library/pdb.rst:144 +#, fuzzy msgid "" "Evaluate the *expression* (given as a string or a code object) under " "debugger control. When :func:`runeval` returns, it returns the value of the " -"expression. Otherwise this function is similar to :func:`run`." +"*expression*. Otherwise this function is similar to :func:`run`." msgstr "" "Evalúa la *expression* (dada como una cadena o un objeto de código) bajo el " "control del depurador. Cuando vuelve :func:`runeval`, retorna el valor de " "la expresión. En caso contrario, esta función es similar a :func:`run`." -#: ../Doc/library/pdb.rst:124 +#: ../Doc/library/pdb.rst:151 msgid "" "Call the *function* (a function or method object, not a string) with the " "given arguments. When :func:`runcall` returns, it returns whatever the " @@ -197,7 +230,7 @@ msgstr "" "llamada de la función haya retornado. El aviso del depurador aparece tan " "pronto como se introduce la función." -#: ../Doc/library/pdb.rst:132 +#: ../Doc/library/pdb.rst:159 msgid "" "Enter the debugger at the calling stack frame. This is useful to hard-code " "a breakpoint at a given point in a program, even if the code is not " @@ -210,11 +243,11 @@ msgstr "" "cuando una afirmación falla). Si se da, se imprime el *header* en la " "consola justo antes de que comience la depuración." -#: ../Doc/library/pdb.rst:137 +#: ../Doc/library/pdb.rst:164 msgid "The keyword-only argument *header*." msgstr "El argumento de la palabra clave *header*." -#: ../Doc/library/pdb.rst:143 +#: ../Doc/library/pdb.rst:170 msgid "" "Enter post-mortem debugging of the given *traceback* object. If no " "*traceback* is given, it uses the one of the exception that is currently " @@ -226,7 +259,7 @@ msgstr "" "actualmente (una excepción debe ser manejada si se va a utilizar el " "predeterminado)." -#: ../Doc/library/pdb.rst:151 +#: ../Doc/library/pdb.rst:178 msgid "" "Enter post-mortem debugging of the traceback found in :data:`sys." "last_traceback`." @@ -234,7 +267,7 @@ msgstr "" "Ingresa a la depuración post-mortem de la traza encontrada en :data:`sys." "last_traceback`." -#: ../Doc/library/pdb.rst:155 +#: ../Doc/library/pdb.rst:182 msgid "" "The ``run*`` functions and :func:`set_trace` are aliases for instantiating " "the :class:`Pdb` class and calling the method of the same name. If you want " @@ -244,11 +277,11 @@ msgstr "" "clase :class:`Pdb` y llamar al método del mismo nombre. Si quieres acceder " "a más funciones, tienes que hacerlo tú mismo:" -#: ../Doc/library/pdb.rst:162 +#: ../Doc/library/pdb.rst:189 msgid ":class:`Pdb` is the debugger class." msgstr ":class:`Pdb` es la clase de depuración." -#: ../Doc/library/pdb.rst:164 +#: ../Doc/library/pdb.rst:191 msgid "" "The *completekey*, *stdin* and *stdout* arguments are passed to the " "underlying :class:`cmd.Cmd` class; see the description there." @@ -256,7 +289,7 @@ msgstr "" "Los argumentos *completekey*, *stdin* y *stdout* se pasan a la subyacente :" "class:`cmd.Cmd` class; ver la descripción allí." -#: ../Doc/library/pdb.rst:167 +#: ../Doc/library/pdb.rst:194 msgid "" "The *skip* argument, if given, must be an iterable of glob-style module name " "patterns. The debugger will not step into frames that originate in a module " @@ -266,13 +299,14 @@ msgstr "" "nombre de los módulos de estilo global. El depurador no entrará en marcos " "que se originen en un módulo que coincida con uno de estos patrones. [1]_" -#: ../Doc/library/pdb.rst:171 +#: ../Doc/library/pdb.rst:198 +#, fuzzy msgid "" "By default, Pdb sets a handler for the SIGINT signal (which is sent when the " -"user presses :kbd:`Ctrl-C` on the console) when you give a ``continue`` " -"command. This allows you to break into the debugger again by pressing :kbd:" -"`Ctrl-C`. If you want Pdb not to touch the SIGINT handler, set *nosigint* " -"to true." +"user presses :kbd:`Ctrl-C` on the console) when you give a :pdbcmd:" +"`continue` command. This allows you to break into the debugger again by " +"pressing :kbd:`Ctrl-C`. If you want Pdb not to touch the SIGINT handler, " +"set *nosigint* to true." msgstr "" "Por defecto, Pdb establece un manejador para la señal de SIGINT (que se " "envía cuando el usuario presiona :kbd:`Ctrl-C` en la consola) cuando da un " @@ -280,7 +314,7 @@ msgstr "" "presionando :kbd:`Ctrl-C`. Si quieres que Pdb no toque el manejador de " "SIGINT, pon *nosigint* en true." -#: ../Doc/library/pdb.rst:176 +#: ../Doc/library/pdb.rst:203 msgid "" "The *readrc* argument defaults to true and controls whether Pdb will load ." "pdbrc files from the filesystem." @@ -288,40 +322,40 @@ msgstr "" "El argumento * readrc * por defecto es verdadero y controla si Pdb cargará " "archivos .pdbrc desde el sistema de archivos." -#: ../Doc/library/pdb.rst:179 +#: ../Doc/library/pdb.rst:206 msgid "Example call to enable tracing with *skip*::" msgstr "Ejemplo de llamada para permitir el rastreo con *skip*::" -#: ../Doc/library/pdb.rst:183 +#: ../Doc/library/pdb.rst:210 msgid "" "Raises an :ref:`auditing event ` ``pdb.Pdb`` with no arguments." msgstr "" "Levanta una :ref:`auditing event ` ``pdb.Pdb`` sin argumentos." -#: ../Doc/library/pdb.rst:185 +#: ../Doc/library/pdb.rst:212 msgid "The *skip* argument." msgstr "El argumento *skip*." -#: ../Doc/library/pdb.rst:188 +#: ../Doc/library/pdb.rst:215 msgid "" "The *nosigint* argument. Previously, a SIGINT handler was never set by Pdb." msgstr "" "El argumento del *nosigint*. Anteriormente, un manejador SIGINT nunca fue " "establecido por Pdb." -#: ../Doc/library/pdb.rst:192 +#: ../Doc/library/pdb.rst:219 msgid "The *readrc* argument." msgstr "El argumento *readrc*." -#: ../Doc/library/pdb.rst:200 +#: ../Doc/library/pdb.rst:227 msgid "See the documentation for the functions explained above." msgstr "Véase la documentación para las funciones explicadas anteriormente." -#: ../Doc/library/pdb.rst:206 +#: ../Doc/library/pdb.rst:233 msgid "Debugger Commands" msgstr "Comandos del depurador" -#: ../Doc/library/pdb.rst:208 +#: ../Doc/library/pdb.rst:235 msgid "" "The commands recognized by the debugger are listed below. Most commands can " "be abbreviated to one or two letters as indicated; e.g. ``h(elp)`` means " @@ -342,7 +376,7 @@ msgstr "" "corchetes no deben escribirse. Las alternativas en la sintaxis de los " "comandos están separadas por una barra vertical (``|``)." -#: ../Doc/library/pdb.rst:217 +#: ../Doc/library/pdb.rst:244 msgid "" "Entering a blank line repeats the last command entered. Exception: if the " "last command was a :pdbcmd:`list` command, the next 11 lines are listed." @@ -351,7 +385,7 @@ msgstr "" "Excepción: si el último comando fue un :pdbcmd:`list` comando, las " "siguientes 11 líneas están listadas." -#: ../Doc/library/pdb.rst:220 +#: ../Doc/library/pdb.rst:247 msgid "" "Commands that the debugger doesn't recognize are assumed to be Python " "statements and are executed in the context of the program being debugged. " @@ -370,7 +404,7 @@ msgstr "" "este tipo, se imprime el nombre de la excepción pero no se cambia el estado " "del depurador." -#: ../Doc/library/pdb.rst:228 +#: ../Doc/library/pdb.rst:255 msgid "" "The debugger supports :ref:`aliases `. Aliases can have " "parameters which allows one a certain level of adaptability to the context " @@ -380,7 +414,7 @@ msgstr "" "tener parámetros que permiten un cierto nivel de adaptabilidad al contexto " "que se está examinando." -#: ../Doc/library/pdb.rst:232 +#: ../Doc/library/pdb.rst:259 #, fuzzy msgid "" "Multiple commands may be entered on a single line, separated by ``;;``. (A " @@ -397,7 +431,34 @@ msgstr "" "inteligencia para separar los comandos; la entrada se divide en el primer " "par ``;;``, incluso si está en medio de una cadena citada." -#: ../Doc/library/pdb.rst:243 +#: ../Doc/library/pdb.rst:266 +msgid "" +"To set a temporary global variable, use a *convenience variable*. A " +"*convenience variable* is a variable whose name starts with ``$``. For " +"example, ``$foo = 1`` sets a global variable ``$foo`` which you can use in " +"the debugger session. The *convenience variables* are cleared when the " +"program resumes execution so it's less likely to interfere with your program " +"compared to using normal variables like ``foo = 1``." +msgstr "" + +#: ../Doc/library/pdb.rst:273 +msgid "There are three preset *convenience variables*:" +msgstr "" + +#: ../Doc/library/pdb.rst:275 +msgid "``$_frame``: the current frame you are debugging" +msgstr "" + +#: ../Doc/library/pdb.rst:276 +#, fuzzy +msgid "``$_retval``: the return value if the frame is returning" +msgstr "Imprime el valor de retorno para el último retorno de una función." + +#: ../Doc/library/pdb.rst:277 +msgid "``$_exception``: the exception if the frame is raising an exception" +msgstr "" + +#: ../Doc/library/pdb.rst:285 #, fuzzy msgid "" "If a file :file:`.pdbrc` exists in the user's home directory or in the " @@ -415,7 +476,7 @@ msgstr "" # Según wikipedia: # Encoding -> Codificación # Locale -> Configuración regional -#: ../Doc/library/pdb.rst:249 +#: ../Doc/library/pdb.rst:291 msgid "" ":file:`.pdbrc` is now read with ``'utf-8'`` encoding. Previously, it was " "read with the system locale encoding." @@ -423,7 +484,7 @@ msgstr "" ":file:`.pdbrc` es ahora leído con codificación ``'utf-8'``. Antes, era leído " "con la codificación correspondiente a la configuración regional del sistema." -#: ../Doc/library/pdb.rst:253 +#: ../Doc/library/pdb.rst:295 msgid "" ":file:`.pdbrc` can now contain commands that continue debugging, such as :" "pdbcmd:`continue` or :pdbcmd:`next`. Previously, these commands had no " @@ -433,7 +494,7 @@ msgstr "" "pdbcmd:`continue` o :pdbcmd:`next`. Anteriormente, estos comandos no tenían " "ningún efecto." -#: ../Doc/library/pdb.rst:261 +#: ../Doc/library/pdb.rst:303 msgid "" "Without argument, print the list of available commands. With a *command* as " "argument, print help about that command. ``help pdb`` displays the full " @@ -447,16 +508,18 @@ msgstr "" "argumento *command* debe ser un identificador, hay que introducir ``help " "exec`` para obtener ayuda sobre el comando ``!``." -#: ../Doc/library/pdb.rst:269 +#: ../Doc/library/pdb.rst:311 +#, fuzzy msgid "" "Print a stack trace, with the most recent frame at the bottom. An arrow " -"indicates the current frame, which determines the context of most commands." +"(``>``) indicates the current frame, which determines the context of most " +"commands." msgstr "" "Imprime un rastro de la pila (*stack trace*), con el marco más reciente en " "la parte inferior. Una flecha indica el marco actual, que determina el " "contexto de la mayoría de los comandos." -#: ../Doc/library/pdb.rst:274 +#: ../Doc/library/pdb.rst:316 msgid "" "Move the current frame *count* (default one) levels down in the stack trace " "(to a newer frame)." @@ -464,7 +527,7 @@ msgstr "" "Mueve los niveles del marco actual *count* (por defecto uno) hacia abajo en " "el trazado de la pila (*stack trace*) (a un marco más nuevo)." -#: ../Doc/library/pdb.rst:279 +#: ../Doc/library/pdb.rst:321 msgid "" "Move the current frame *count* (default one) levels up in the stack trace " "(to an older frame)." @@ -472,7 +535,7 @@ msgstr "" "Mueve el marco actual *count* (por defecto uno) niveles hacia arriba en el " "trazado de la pila (*stack trace*) (a un marco más antiguo)." -#: ../Doc/library/pdb.rst:284 +#: ../Doc/library/pdb.rst:326 msgid "" "With a *lineno* argument, set a break there in the current file. With a " "*function* argument, set a break at the first executable statement within " @@ -491,7 +554,7 @@ msgstr "" "le asigna un número al que se refieren todos los demás comandos de puntos de " "interrupción." -#: ../Doc/library/pdb.rst:291 +#: ../Doc/library/pdb.rst:333 msgid "" "If a second argument is present, it is an expression which must evaluate to " "true before the breakpoint is honored." @@ -499,7 +562,7 @@ msgstr "" "Si un segundo argumento está presente, es una expresión que debe ser " "evaluada como verdadera antes de que el punto de ruptura sea honrado." -#: ../Doc/library/pdb.rst:294 +#: ../Doc/library/pdb.rst:336 msgid "" "Without argument, list all breaks, including for each breakpoint, the number " "of times that breakpoint has been hit, the current ignore count, and the " @@ -510,7 +573,7 @@ msgstr "" "interrupción, el conteo de ignorancia actual y la condición asociada, si la " "hay." -#: ../Doc/library/pdb.rst:300 +#: ../Doc/library/pdb.rst:342 msgid "" "Temporary breakpoint, which is removed automatically when it is first hit. " "The arguments are the same as for :pdbcmd:`break`." @@ -519,7 +582,7 @@ msgstr "" "ejecuta por primera vez. Los argumentos son los mismos que para :pdbcmd:" "`break`." -#: ../Doc/library/pdb.rst:305 +#: ../Doc/library/pdb.rst:347 msgid "" "With a *filename:lineno* argument, clear all the breakpoints at this line. " "With a space separated list of breakpoint numbers, clear those breakpoints. " @@ -530,7 +593,7 @@ msgstr "" "por espacios, despeja esos puntos de interrupción. Sin el argumento, despeja " "todos los puntos de interrupción (pero primero pide confirmación)." -#: ../Doc/library/pdb.rst:311 +#: ../Doc/library/pdb.rst:353 msgid "" "Disable the breakpoints given as a space separated list of breakpoint " "numbers. Disabling a breakpoint means it cannot cause the program to stop " @@ -543,17 +606,18 @@ msgstr "" "ejecución, pero a diferencia de borrar un punto de interrupción, permanece " "en la lista de puntos de interrupción y puede ser (re)activado." -#: ../Doc/library/pdb.rst:318 +#: ../Doc/library/pdb.rst:360 msgid "Enable the breakpoints specified." msgstr "Habilitar los puntos de interrupción especificados." -#: ../Doc/library/pdb.rst:322 +#: ../Doc/library/pdb.rst:364 +#, fuzzy msgid "" -"Set the ignore count for the given breakpoint number. If count is omitted, " -"the ignore count is set to 0. A breakpoint becomes active when the ignore " -"count is zero. When non-zero, the count is decremented each time the " -"breakpoint is reached and the breakpoint is not disabled and any associated " -"condition evaluates to true." +"Set the ignore count for the given breakpoint number. If *count* is " +"omitted, the ignore count is set to 0. A breakpoint becomes active when the " +"ignore count is zero. When non-zero, the *count* is decremented each time " +"the breakpoint is reached and the breakpoint is not disabled and any " +"associated condition evaluates to true." msgstr "" "Establece el conteo de ignorar el número de punto de interrupción dado. Si " "se omite el recuento, el recuento de ignorar se establece en 0. Un punto de " @@ -562,7 +626,7 @@ msgstr "" "el punto de ruptura no se desactiva y cualquier condición asociada se evalúa " "como verdadera." -#: ../Doc/library/pdb.rst:330 +#: ../Doc/library/pdb.rst:372 msgid "" "Set a new *condition* for the breakpoint, an expression which must evaluate " "to true before the breakpoint is honored. If *condition* is absent, any " @@ -573,7 +637,7 @@ msgstr "" "honrado. Si la condición está ausente, se elimina cualquier condición " "existente, es decir, el punto de ruptura se hace incondicional." -#: ../Doc/library/pdb.rst:336 +#: ../Doc/library/pdb.rst:378 msgid "" "Specify a list of commands for breakpoint number *bpnumber*. The commands " "themselves appear on the following lines. Type a line containing just " @@ -583,7 +647,7 @@ msgstr "" "*bpnumber*. Los comandos mismos aparecen en las siguientes líneas. Escriba " "una línea que contenga sólo ``end`` para terminar los comandos. Un ejemplo::" -#: ../Doc/library/pdb.rst:345 +#: ../Doc/library/pdb.rst:387 msgid "" "To remove all commands from a breakpoint, type ``commands`` and follow it " "immediately with ``end``; that is, give no commands." @@ -591,14 +655,14 @@ msgstr "" "Para eliminar todos los comandos de un punto de interrupción, escribe " "``commands`` y sigue inmediatamente con ``end`` , es decir, no des órdenes." -#: ../Doc/library/pdb.rst:348 +#: ../Doc/library/pdb.rst:390 msgid "" "With no *bpnumber* argument, ``commands`` refers to the last breakpoint set." msgstr "" "Sin el argumento *bpnumber*, ``commands`` se refiere al último punto de " "interrupción establecido." -#: ../Doc/library/pdb.rst:350 +#: ../Doc/library/pdb.rst:392 msgid "" "You can use breakpoint commands to start your program up again. Simply use " "the :pdbcmd:`continue` command, or :pdbcmd:`step`, or any other command that " @@ -608,7 +672,7 @@ msgstr "" "programa de nuevo. Simplemente usa el comando :pdbcmd:`continue`, o :pdbcmd:" "`step`, o cualquier otro comando que reanude la ejecución." -#: ../Doc/library/pdb.rst:354 +#: ../Doc/library/pdb.rst:396 msgid "" "Specifying any command resuming execution (currently :pdbcmd:`continue`, :" "pdbcmd:`step`, :pdbcmd:`next`, :pdbcmd:`return`, :pdbcmd:`jump`, :pdbcmd:" @@ -627,10 +691,11 @@ msgstr "" "propia lista de comandos, lo que conduce a ambigüedades sobre qué lista " "ejecutar." -#: ../Doc/library/pdb.rst:363 +#: ../Doc/library/pdb.rst:405 +#, fuzzy msgid "" -"If you use the 'silent' command in the command list, the usual message about " -"stopping at a breakpoint is not printed. This may be desirable for " +"If you use the ``silent`` command in the command list, the usual message " +"about stopping at a breakpoint is not printed. This may be desirable for " "breakpoints that are to print a specific message and then continue. If none " "of the other commands print anything, you see no sign that the breakpoint " "was reached." @@ -642,7 +707,7 @@ msgstr "" "nada, no se ve ninguna señal de que se haya alcanzado el punto de " "interrupción." -#: ../Doc/library/pdb.rst:370 +#: ../Doc/library/pdb.rst:412 msgid "" "Execute the current line, stop at the first possible occasion (either in a " "function that is called or on the next line in the current function)." @@ -650,7 +715,7 @@ msgstr "" "Ejecutar la línea actual, detenerse en la primera ocasión posible (ya sea en " "una función que se llame o en la siguiente línea de la función actual)." -#: ../Doc/library/pdb.rst:375 +#: ../Doc/library/pdb.rst:417 msgid "" "Continue execution until the next line in the current function is reached or " "it returns. (The difference between :pdbcmd:`next` and :pdbcmd:`step` is " @@ -664,7 +729,7 @@ msgstr "" "pdbcmd:`next` ejecuta las funciones llamadas a (casi) toda velocidad, " "deteniéndose sólo en la siguiente línea de la función actual)." -#: ../Doc/library/pdb.rst:383 +#: ../Doc/library/pdb.rst:425 msgid "" "Without argument, continue execution until the line with a number greater " "than the current one is reached." @@ -672,31 +737,32 @@ msgstr "" "Sin argumento, continúe la ejecución hasta que se alcance la línea con un " "número mayor que el actual." -#: ../Doc/library/pdb.rst:386 +#: ../Doc/library/pdb.rst:428 +#, fuzzy msgid "" -"With a line number, continue execution until a line with a number greater or " -"equal to that is reached. In both cases, also stop when the current frame " -"returns." +"With *lineno*, continue execution until a line with a number greater or " +"equal to *lineno* is reached. In both cases, also stop when the current " +"frame returns." msgstr "" "Con un número de línea, continúe la ejecución hasta que se alcance una línea " "con un número mayor o igual a ese. En ambos casos, también se detiene " "cuando vuelve la trama actual." -#: ../Doc/library/pdb.rst:390 +#: ../Doc/library/pdb.rst:432 msgid "Allow giving an explicit line number." msgstr "Permita dar un número de línea explícito." -#: ../Doc/library/pdb.rst:395 +#: ../Doc/library/pdb.rst:437 msgid "Continue execution until the current function returns." msgstr "Continúe la ejecución hasta que vuelva la función actual." -#: ../Doc/library/pdb.rst:399 +#: ../Doc/library/pdb.rst:441 msgid "Continue execution, only stop when a breakpoint is encountered." msgstr "" "Continúa la ejecución, sólo se detiene cuando se encuentra un punto de " "ruptura." -#: ../Doc/library/pdb.rst:403 +#: ../Doc/library/pdb.rst:445 msgid "" "Set the next line that will be executed. Only available in the bottom-most " "frame. This lets you jump back and execute code again, or jump forward to " @@ -707,7 +773,7 @@ msgstr "" "de nuevo, o saltar hacia adelante para saltar el código que no quieres " "ejecutar." -#: ../Doc/library/pdb.rst:407 +#: ../Doc/library/pdb.rst:449 msgid "" "It should be noted that not all jumps are allowed -- for instance it is not " "possible to jump into the middle of a :keyword:`for` loop or out of a :" @@ -717,7 +783,7 @@ msgstr "" "posible saltar en medio de un bucle :keyword:`for` o fuera de una cláusula :" "keyword:`finally`." -#: ../Doc/library/pdb.rst:413 +#: ../Doc/library/pdb.rst:455 msgid "" "List source code for the current file. Without arguments, list 11 lines " "around the current line or continue the previous listing. With ``.`` as " @@ -732,7 +798,7 @@ msgstr "" "enumere el rango dado; si el segundo argumento es menor que el primero, se " "interpreta como un conteo." -#: ../Doc/library/pdb.rst:419 +#: ../Doc/library/pdb.rst:461 msgid "" "The current line in the current frame is indicated by ``->``. If an " "exception is being debugged, the line where the exception was originally " @@ -743,11 +809,11 @@ msgstr "" "depurando una excepción, la línea donde la excepción fue originalmente " "planteada o propagada se indica con ``>>``, si difiere de la línea actual." -#: ../Doc/library/pdb.rst:424 +#: ../Doc/library/pdb.rst:466 msgid "The ``>>`` marker." msgstr "El marcador ``>>`` ." -#: ../Doc/library/pdb.rst:429 +#: ../Doc/library/pdb.rst:471 msgid "" "List all source code for the current function or frame. Interesting lines " "are marked as for :pdbcmd:`list`." @@ -755,15 +821,17 @@ msgstr "" "Enumere todos los códigos fuente de la función o marco actual. Las líneas " "interesantes están marcadas como :pdbcmd:`list`." -#: ../Doc/library/pdb.rst:436 -msgid "Print the argument list of the current function." +#: ../Doc/library/pdb.rst:478 +#, fuzzy +msgid "Print the arguments of the current function and their current values." msgstr "Imprime la lista de argumentos de la función actual." -#: ../Doc/library/pdb.rst:440 -msgid "Evaluate the *expression* in the current context and print its value." +#: ../Doc/library/pdb.rst:482 +#, fuzzy +msgid "Evaluate *expression* in the current context and print its value." msgstr "Evalúa la *expression* en el contexto actual e imprime su valor." -#: ../Doc/library/pdb.rst:444 +#: ../Doc/library/pdb.rst:486 msgid "" "``print()`` can also be used, but is not a debugger command --- this " "executes the Python :func:`print` function." @@ -771,45 +839,73 @@ msgstr "" "``print()`` también se puede usar, pero no es un comando de depuración --- " "esto ejecuta la función Python :func:`print`." -#: ../Doc/library/pdb.rst:450 +#: ../Doc/library/pdb.rst:492 +#, fuzzy msgid "" -"Like the :pdbcmd:`p` command, except the value of the expression is pretty-" +"Like the :pdbcmd:`p` command, except the value of *expression* is pretty-" "printed using the :mod:`pprint` module." msgstr "" "Como el comando :pdbcmd:`p`, excepto que el valor de la expresión se imprime " "bastante usando el módulo :mod:`pprint`." -#: ../Doc/library/pdb.rst:455 -msgid "Print the type of the *expression*." +#: ../Doc/library/pdb.rst:497 +#, fuzzy +msgid "Print the type of *expression*." msgstr "Imprime el tipo de la *expression*." -#: ../Doc/library/pdb.rst:459 -msgid "Try to get source code for the given object and display it." +#: ../Doc/library/pdb.rst:501 +#, fuzzy +msgid "Try to get source code of *expression* and display it." msgstr "Intenta obtener el código fuente del objeto dado y mostrarlo." -#: ../Doc/library/pdb.rst:465 +#: ../Doc/library/pdb.rst:507 +#, fuzzy msgid "" -"Display the value of the expression if it changed, each time execution stops " +"Display the value of *expression* if it changed, each time execution stops " "in the current frame." msgstr "" "Muestra el valor de la expresión si ha cambiado, cada vez que se detenga la " "ejecución en el marco actual." -#: ../Doc/library/pdb.rst:468 -msgid "Without expression, list all display expressions for the current frame." +#: ../Doc/library/pdb.rst:510 +#, fuzzy +msgid "" +"Without *expression*, list all display expressions for the current frame." msgstr "" "Sin expresión, enumere todas las expresiones de visualización para el cuadro " "actual." -#: ../Doc/library/pdb.rst:474 +#: ../Doc/library/pdb.rst:514 msgid "" -"Do not display the expression any more in the current frame. Without " -"expression, clear all display expressions for the current frame." +"Display evaluates *expression* and compares to the result of the previous " +"evaluation of *expression*, so when the result is mutable, display may not " +"be able to pick up the changes." +msgstr "" + +#: ../Doc/library/pdb.rst:518 +msgid "Example::" +msgstr "" + +#: ../Doc/library/pdb.rst:526 +msgid "" +"Display won't realize ``lst`` has been changed because the result of " +"evaluation is modified in place by ``lst.append(1)`` before being compared::" +msgstr "" + +#: ../Doc/library/pdb.rst:541 +msgid "You can do some tricks with copy mechanism to make it work::" +msgstr "" + +#: ../Doc/library/pdb.rst:560 +#, fuzzy +msgid "" +"Do not display *expression* anymore in the current frame. Without " +"*expression*, clear all display expressions for the current frame." msgstr "" "No muestren más la expresión en el cuadro actual. Sin la expresión, borre " "todas las expresiones de la pantalla para el marco actual." -#: ../Doc/library/pdb.rst:481 +#: ../Doc/library/pdb.rst:567 msgid "" "Start an interactive interpreter (using the :mod:`code` module) whose global " "namespace contains all the (global and local) names found in the current " @@ -819,12 +915,13 @@ msgstr "" "de nombres global contiene todos los nombres (globales y locales) que se " "encuentran en el ámbito actual." -#: ../Doc/library/pdb.rst:491 +#: ../Doc/library/pdb.rst:577 +#, fuzzy msgid "" -"Create an alias called *name* that executes *command*. The command must " +"Create an alias called *name* that executes *command*. The *command* must " "*not* be enclosed in quotes. Replaceable parameters can be indicated by " "``%1``, ``%2``, and so on, while ``%*`` is replaced by all the parameters. " -"If no command is given, the current alias for *name* is shown. If no " +"If *command* is omitted, the current alias for *name* is shown. If no " "arguments are given, all aliases are listed." msgstr "" "Crear un alias llamado *name* que ejecute el *command*. El comando no debe " @@ -833,7 +930,7 @@ msgstr "" "todos los parámetros. Si no se da ningún comando, se muestra el alias actual " "de *name*. Si no se dan argumentos, se muestran todos los alias." -#: ../Doc/library/pdb.rst:497 +#: ../Doc/library/pdb.rst:583 msgid "" "Aliases may be nested and can contain anything that can be legally typed at " "the pdb prompt. Note that internal pdb commands *can* be overridden by " @@ -848,7 +945,7 @@ msgstr "" "a la primera palabra de la línea de comandos; todas las demás palabras de la " "línea se dejan en paz." -#: ../Doc/library/pdb.rst:503 +#: ../Doc/library/pdb.rst:589 msgid "" "As an example, here are two useful aliases (especially when placed in the :" "file:`.pdbrc` file)::" @@ -856,17 +953,17 @@ msgstr "" "Como ejemplo, aquí hay dos alias útiles (especialmente cuando se colocan en " "el archivo :file:`.pdbrc`)::" -#: ../Doc/library/pdb.rst:513 -msgid "Delete the specified alias." +#: ../Doc/library/pdb.rst:599 +#, fuzzy +msgid "Delete the specified alias *name*." msgstr "Elimine el alias especificado." -#: ../Doc/library/pdb.rst:517 +#: ../Doc/library/pdb.rst:603 +#, fuzzy msgid "" "Execute the (one-line) *statement* in the context of the current stack " "frame. The exclamation point can be omitted unless the first word of the " -"statement resembles a debugger command. To set a global variable, you can " -"prefix the assignment command with a :keyword:`global` statement on the same " -"line, e.g.::" +"statement resembles a debugger command, e.g.:" msgstr "" "Ejecute (una línea) *statement* en el contexto del marco de la pila actual. " "El signo de exclamación puede ser omitido a menos que la primera palabra de " @@ -874,10 +971,17 @@ msgstr "" "variable global, puede anteponer al comando de asignación una declaración :" "keyword:`global` en la misma línea, por ejemplo::" -#: ../Doc/library/pdb.rst:529 +#: ../Doc/library/pdb.rst:612 msgid "" -"Restart the debugged Python program. If an argument is supplied, it is " -"split with :mod:`shlex` and the result is used as the new :data:`sys.argv`. " +"To set a global variable, you can prefix the assignment command with a :" +"keyword:`global` statement on the same line, e.g.:" +msgstr "" + +#: ../Doc/library/pdb.rst:623 +#, fuzzy +msgid "" +"Restart the debugged Python program. If *args* is supplied, it is split " +"with :mod:`shlex` and the result is used as the new :data:`sys.argv`. " "History, breakpoints, actions and debugger options are preserved. :pdbcmd:" "`restart` is an alias for :pdbcmd:`run`." msgstr "" @@ -886,31 +990,70 @@ msgstr "" "argv`. Se conservan el historial, los puntos de interrupción, las acciones y " "las opciones del depurador. :pdbcmd:`restart` es un alias de :pdbcmd:`run`." -#: ../Doc/library/pdb.rst:536 +#: ../Doc/library/pdb.rst:630 msgid "Quit from the debugger. The program being executed is aborted." msgstr "Salga del depurador. El programa que se está ejecutando fue abortado." -#: ../Doc/library/pdb.rst:540 +#: ../Doc/library/pdb.rst:634 +#, fuzzy msgid "" -"Enter a recursive debugger that steps through the code argument (which is an " -"arbitrary expression or statement to be executed in the current environment)." +"Enter a recursive debugger that steps through *code* (which is an arbitrary " +"expression or statement to be executed in the current environment)." msgstr "" "Introduce un depurador recursivo que pasa por el argumento del código (que " "es una expresión o declaración arbitraria que debe ejecutarse en el entorno " "actual)." -#: ../Doc/library/pdb.rst:546 -msgid "Print the return value for the last return of a function." +#: ../Doc/library/pdb.rst:640 +#, fuzzy +msgid "Print the return value for the last return of the current function." msgstr "Imprime el valor de retorno para el último retorno de una función." -#: ../Doc/library/pdb.rst:549 +#: ../Doc/library/pdb.rst:643 msgid "Footnotes" msgstr "Notas de pie de página" -#: ../Doc/library/pdb.rst:550 +#: ../Doc/library/pdb.rst:644 msgid "" "Whether a frame is considered to originate in a certain module is determined " "by the ``__name__`` in the frame globals." msgstr "" "Si se considera que un marco se origina en un determinado módulo se " "determina por el ``__name__`` en el marcos globales." + +#: ../Doc/library/pdb.rst:11 +msgid "debugging" +msgstr "" + +#: ../Doc/library/pdb.rst:21 +msgid "Pdb (class in pdb)" +msgstr "" + +#: ../Doc/library/pdb.rst:21 +msgid "module" +msgstr "" + +#: ../Doc/library/pdb.rst:21 +msgid "bdb" +msgstr "" + +#: ../Doc/library/pdb.rst:21 +msgid "cmd" +msgstr "" + +#: ../Doc/library/pdb.rst:281 +msgid ".pdbrc" +msgstr "" + +#: ../Doc/library/pdb.rst:281 +msgid "file" +msgstr "" + +#: ../Doc/library/pdb.rst:281 +#, fuzzy +msgid "debugger" +msgstr "Comandos del depurador" + +#: ../Doc/library/pdb.rst:281 +msgid "configuration" +msgstr "" diff --git a/library/pickle.po b/library/pickle.po index 7812e8c9c1..5f139f6941 100644 --- a/library/pickle.po +++ b/library/pickle.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-09-19 20:01-0300\n" "Last-Translator: Manuel Ramos \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/pickle.rst:2 msgid ":mod:`pickle` --- Python object serialization" @@ -964,25 +964,27 @@ msgid "The following types can be pickled:" msgstr "Los siguientes tipos se pueden serializar con `pickle` (pickled):" #: ../Doc/library/pickle.rst:497 -msgid "``None``, ``True``, and ``False``;" -msgstr "``None``, ``True``, y ``False``;" +msgid "" +"built-in constants (``None``, ``True``, ``False``, ``Ellipsis``, and " +"``NotImplemented``);" +msgstr "" -#: ../Doc/library/pickle.rst:499 +#: ../Doc/library/pickle.rst:500 msgid "integers, floating-point numbers, complex numbers;" msgstr "enteros, números de coma flotante, números complejos;" -#: ../Doc/library/pickle.rst:501 +#: ../Doc/library/pickle.rst:502 msgid "strings, bytes, bytearrays;" msgstr "cadenas de caracteres, bytes, bytearrays;" -#: ../Doc/library/pickle.rst:503 +#: ../Doc/library/pickle.rst:504 msgid "" "tuples, lists, sets, and dictionaries containing only picklable objects;" msgstr "" "tuplas, listas, conjuntos y diccionarios que contienen solo objetos " "serializables con pickle;" -#: ../Doc/library/pickle.rst:505 +#: ../Doc/library/pickle.rst:506 #, fuzzy msgid "" "functions (built-in and user-defined) accessible from the top level of a " @@ -991,11 +993,11 @@ msgstr "" "funciones definidas en el nivel superior de un módulo (usando :keyword:" "`def`, no :keyword:`lambda`)" -#: ../Doc/library/pickle.rst:508 +#: ../Doc/library/pickle.rst:509 msgid "classes accessible from the top level of a module;" msgstr "clases accesibles desde el nivel superior de un módulo;" -#: ../Doc/library/pickle.rst:510 +#: ../Doc/library/pickle.rst:511 msgid "" "instances of such classes whose the result of calling :meth:`__getstate__` " "is picklable (see section :ref:`pickle-inst` for details)." @@ -1004,7 +1006,7 @@ msgstr "" "es serializable con `pickle` (ver la sección :ref:`pickle-inst` para más " "detalles)." -#: ../Doc/library/pickle.rst:513 +#: ../Doc/library/pickle.rst:514 msgid "" "Attempts to pickle unpicklable objects will raise the :exc:`PicklingError` " "exception; when this happens, an unspecified number of bytes may have " @@ -1021,7 +1023,7 @@ msgstr "" "este caso se lanzará un :exc:`RecursionError`. Puede aumentar " "cuidadosamente este límite con :func:`sys.setrecursionlimit`." -#: ../Doc/library/pickle.rst:520 +#: ../Doc/library/pickle.rst:521 msgid "" "Note that functions (built-in and user-defined) are pickled by fully :term:" "`qualified name`, not by value. [#]_ This means that only the function name " @@ -1040,7 +1042,7 @@ msgstr "" "deserialización y el módulo debe contener el objeto nombrado; de lo " "contrario, se generará una excepción. [#]_" -#: ../Doc/library/pickle.rst:527 +#: ../Doc/library/pickle.rst:528 msgid "" "Similarly, classes are pickled by fully qualified name, so the same " "restrictions in the unpickling environment apply. Note that none of the " @@ -1053,7 +1055,7 @@ msgstr "" "lo que en el siguiente ejemplo, el atributo de clase ``attr`` no se restaura " "en el entorno de deserializado:" -#: ../Doc/library/pickle.rst:537 +#: ../Doc/library/pickle.rst:538 msgid "" "These restrictions are why picklable functions and classes must be defined " "at the top level of a module." @@ -1061,7 +1063,7 @@ msgstr "" "Estas restricciones son la razón por la que las funciones y clases " "serializables con pickle deben definirse en el nivel superior de un módulo." -#: ../Doc/library/pickle.rst:540 +#: ../Doc/library/pickle.rst:541 msgid "" "Similarly, when class instances are pickled, their class's code and data are " "not pickled along with them. Only the instance data are pickled. This is " @@ -1082,11 +1084,11 @@ msgstr "" "poner un número de versión en los objetos para que las conversiones " "adecuadas se puedan realizar mediante el método :meth:`__setstate__`." -#: ../Doc/library/pickle.rst:552 +#: ../Doc/library/pickle.rst:553 msgid "Pickling Class Instances" msgstr "`Pickling` de Instancias de clases" -#: ../Doc/library/pickle.rst:556 +#: ../Doc/library/pickle.rst:557 msgid "" "In this section, we describe the general mechanisms available to you to " "define, customize, and control how class instances are pickled and unpickled." @@ -1095,7 +1097,7 @@ msgstr "" "usted defina, personalice y controle cómo se serializan y deserializan con " "`Pickle` las instancias de clase." -#: ../Doc/library/pickle.rst:559 +#: ../Doc/library/pickle.rst:560 msgid "" "In most cases, no additional code is needed to make instances picklable. By " "default, pickle will retrieve the class and the attributes of an instance " @@ -1113,7 +1115,7 @@ msgstr "" "inicializada y luego restaura los atributos guardados. El siguiente código " "muestra una implementación de este comportamiento::" -#: ../Doc/library/pickle.rst:574 +#: ../Doc/library/pickle.rst:575 msgid "" "Classes can alter the default behaviour by providing one or several special " "methods:" @@ -1121,7 +1123,7 @@ msgstr "" "Las clases pueden alterar el comportamiento predeterminado proporcionando " "uno o varios métodos especiales:" -#: ../Doc/library/pickle.rst:579 +#: ../Doc/library/pickle.rst:580 msgid "" "In protocols 2 and newer, classes that implements the :meth:" "`__getnewargs_ex__` method can dictate the values passed to the :meth:" @@ -1137,7 +1139,7 @@ msgstr "" "diccionario de argumentos con nombre para construir el objeto. Estos se " "pasarán al método :meth:`__new__` al hacer `unpickling`." -#: ../Doc/library/pickle.rst:587 +#: ../Doc/library/pickle.rst:588 msgid "" "You should implement this method if the :meth:`__new__` method of your class " "requires keyword-only arguments. Otherwise, it is recommended for " @@ -1147,11 +1149,11 @@ msgstr "" "requiere argumentos de solo palabras clave. De lo contrario, se recomienda " "para la compatibilidad implementar :meth:`__getnewargs__`." -#: ../Doc/library/pickle.rst:591 +#: ../Doc/library/pickle.rst:592 msgid ":meth:`__getnewargs_ex__` is now used in protocols 2 and 3." msgstr ":meth:`__getnewargs_ex__` ahora se usa en los protocolos 2 y 3." -#: ../Doc/library/pickle.rst:597 +#: ../Doc/library/pickle.rst:598 msgid "" "This method serves a similar purpose as :meth:`__getnewargs_ex__`, but " "supports only positional arguments. It must return a tuple of arguments " @@ -1161,7 +1163,7 @@ msgstr "" "solo admite argumentos posicionales. Debe retornar una tupla de argumentos " "``args`` que se pasarán al método :meth:`__new__` al hacer `unpickling`." -#: ../Doc/library/pickle.rst:601 +#: ../Doc/library/pickle.rst:602 msgid "" ":meth:`__getnewargs__` will not be called if :meth:`__getnewargs_ex__` is " "defined." @@ -1169,7 +1171,7 @@ msgstr "" ":meth:`__getnewargs__` no se llamará si :meth:`__getnewargs_ex__` está " "definido." -#: ../Doc/library/pickle.rst:604 +#: ../Doc/library/pickle.rst:605 msgid "" "Before Python 3.6, :meth:`__getnewargs__` was called instead of :meth:" "`__getnewargs_ex__` in protocols 2 and 3." @@ -1177,7 +1179,7 @@ msgstr "" "Antes de Python 3.6, se llamaba a, :meth:`__getnewargs__` en lugar de :meth:" "`__getnewargs_ex__` en los protocolos 2 y 3." -#: ../Doc/library/pickle.rst:611 +#: ../Doc/library/pickle.rst:612 msgid "" "Classes can further influence how their instances are pickled by overriding " "the method :meth:`__getstate__`. It is called and the returned object is " @@ -1189,7 +1191,7 @@ msgstr "" "objeto devuelto se conserva como el contenido de la instancia, en lugar de " "un estado predeterminado. Hay varios casos:" -#: ../Doc/library/pickle.rst:616 +#: ../Doc/library/pickle.rst:617 msgid "" "For a class that has no instance :attr:`~object.__dict__` and no :attr:" "`~object.__slots__`, the default state is ``None``." @@ -1197,7 +1199,7 @@ msgstr "" "Para una clase que no tiene instancias :attr:`~object.__dict__` ni :attr:" "`~object.__slots__`, el estado predeterminado es ``None``." -#: ../Doc/library/pickle.rst:619 +#: ../Doc/library/pickle.rst:620 msgid "" "For a class that has an instance :attr:`~object.__dict__` and no :attr:" "`~object.__slots__`, the default state is ``self.__dict__``." @@ -1205,7 +1207,7 @@ msgstr "" "Para una clase que tiene una instancia :attr:`~object.__dict__` y no tiene :" "attr:`~object.__slots__`, el estado predeterminado es ``self.__dict__``." -#: ../Doc/library/pickle.rst:622 +#: ../Doc/library/pickle.rst:623 msgid "" "For a class that has an instance :attr:`~object.__dict__` and :attr:`~object." "__slots__`, the default state is a tuple consisting of two dictionaries: " @@ -1218,7 +1220,7 @@ msgstr "" "ranura a valores de ranura. Solo las ranuras que tienen un valor se incluyen " "en este último." -#: ../Doc/library/pickle.rst:628 +#: ../Doc/library/pickle.rst:629 msgid "" "For a class that has :attr:`~object.__slots__` and no instance :attr:" "`~object.__dict__`, the default state is a tuple whose first item is " @@ -1230,7 +1232,7 @@ msgstr "" "elemento es ``None`` y cuyo segundo elemento es un diccionario que asigna " "nombres de ranura a valores de ranura descritos en la viñeta anterior." -#: ../Doc/library/pickle.rst:633 +#: ../Doc/library/pickle.rst:634 msgid "" "Added the default implementation of the ``__getstate__()`` method in the :" "class:`object` class." @@ -1238,7 +1240,7 @@ msgstr "" "Se agregó la implementación predeterminada del método ``__getstate__()`` en " "la clase :class:`object`." -#: ../Doc/library/pickle.rst:640 +#: ../Doc/library/pickle.rst:641 msgid "" "Upon unpickling, if the class defines :meth:`__setstate__`, it is called " "with the unpickled state. In that case, there is no requirement for the " @@ -1251,7 +1253,7 @@ msgstr "" "contrario, el estado `pickled` (`pickled state`) debe ser un diccionario y " "sus elementos se asignan al diccionario de la nueva instancia." -#: ../Doc/library/pickle.rst:647 +#: ../Doc/library/pickle.rst:648 msgid "" "If :meth:`__getstate__` returns a false value, the :meth:`__setstate__` " "method will not be called upon unpickling." @@ -1259,7 +1261,7 @@ msgstr "" "Si :meth:`__getstate__` retorna un valor falso, el método :meth:" "`__setstate__` no se llamará al hacer `unpickling`." -#: ../Doc/library/pickle.rst:651 +#: ../Doc/library/pickle.rst:652 msgid "" "Refer to the section :ref:`pickle-state` for more information about how to " "use the methods :meth:`__getstate__` and :meth:`__setstate__`." @@ -1267,7 +1269,7 @@ msgstr "" "Consulte la sección :ref:`pickle-state` para obtener más información sobre " "cómo utilizar los métodos :meth:`__getstate__` y :meth:`__setstate__`." -#: ../Doc/library/pickle.rst:656 +#: ../Doc/library/pickle.rst:657 msgid "" "At unpickling time, some methods like :meth:`__getattr__`, :meth:" "`__getattribute__`, or :meth:`__setattr__` may be called upon the instance. " @@ -1282,7 +1284,7 @@ msgstr "" "establecer tal invariante, ya que :meth:`__init__` no se llama cuando se " "hace `unpickling` de una instancia." -#: ../Doc/library/pickle.rst:665 +#: ../Doc/library/pickle.rst:666 msgid "" "As we shall see, pickle does not use directly the methods described above. " "In fact, these methods are part of the copy protocol which implements the :" @@ -1296,7 +1298,7 @@ msgstr "" "proporciona una interfaz unificada para recuperar los datos necesarios para " "hacer el `pickling` y la copia de objetos. [#]_" -#: ../Doc/library/pickle.rst:671 +#: ../Doc/library/pickle.rst:672 msgid "" "Although powerful, implementing :meth:`__reduce__` directly in your classes " "is error prone. For this reason, class designers should use the high-level " @@ -1312,7 +1314,7 @@ msgstr "" "embargo, mostraremos casos en los que usar :meth:`__reduce__` es la única " "opción o conduce a un `pickling` más eficiente o ambos." -#: ../Doc/library/pickle.rst:680 +#: ../Doc/library/pickle.rst:681 msgid "" "The interface is currently defined as follows. The :meth:`__reduce__` " "method takes no argument and shall return either a string or preferably a " @@ -1323,7 +1325,7 @@ msgstr "" "preferiblemente una tupla (el objeto retornado a menudo se denomina \"valor " "reducido\")." -#: ../Doc/library/pickle.rst:684 +#: ../Doc/library/pickle.rst:685 msgid "" "If a string is returned, the string should be interpreted as the name of a " "global variable. It should be the object's local name relative to its " @@ -1335,7 +1337,7 @@ msgstr "" "el módulo `pickle` busca en el espacio de nombres del módulo para determinar " "el módulo del objeto. Este comportamiento suele ser útil para singletons." -#: ../Doc/library/pickle.rst:689 +#: ../Doc/library/pickle.rst:690 msgid "" "When a tuple is returned, it must be between two and six items long. " "Optional items can either be omitted, or ``None`` can be provided as their " @@ -1345,14 +1347,14 @@ msgstr "" "elementos opcionales se pueden omitir o se puede proporcionar ``None`` como " "su valor. La semántica de cada elemento está en orden:" -#: ../Doc/library/pickle.rst:695 +#: ../Doc/library/pickle.rst:696 msgid "" "A callable object that will be called to create the initial version of the " "object." msgstr "" "Un objeto invocable que se llamará para crear la versión inicial del objeto." -#: ../Doc/library/pickle.rst:698 +#: ../Doc/library/pickle.rst:699 msgid "" "A tuple of arguments for the callable object. An empty tuple must be given " "if the callable does not accept any argument." @@ -1360,7 +1362,7 @@ msgstr "" "Una tupla de argumentos para el objeto invocable. Se debe proporcionar una " "tupla vacía si el invocable no acepta ningún argumento." -#: ../Doc/library/pickle.rst:701 +#: ../Doc/library/pickle.rst:702 msgid "" "Optionally, the object's state, which will be passed to the object's :meth:" "`__setstate__` method as previously described. If the object has no such " @@ -1372,7 +1374,7 @@ msgstr "" "tiene dicho método, el valor debe ser un diccionario y se agregará al " "atributo :attr:`~object.__dict__` del objeto." -#: ../Doc/library/pickle.rst:706 +#: ../Doc/library/pickle.rst:707 msgid "" "Optionally, an iterator (and not a sequence) yielding successive items. " "These items will be appended to the object either using ``obj.append(item)`` " @@ -1392,7 +1394,7 @@ msgstr "" "`pickle` que se use, así como de la cantidad de elementos que se agregarán, " "por lo que ambos deben ser soportados.)" -#: ../Doc/library/pickle.rst:715 +#: ../Doc/library/pickle.rst:716 msgid "" "Optionally, an iterator (not a sequence) yielding successive key-value " "pairs. These items will be stored to the object using ``obj[key] = " @@ -1404,7 +1406,7 @@ msgstr "" "value``. Esto se usa principalmente para subclases de diccionario, pero " "otras clases pueden usarlo siempre que implementen :meth:`__setitem__`." -#: ../Doc/library/pickle.rst:720 +#: ../Doc/library/pickle.rst:721 msgid "" "Optionally, a callable with a ``(obj, state)`` signature. This callable " "allows the user to programmatically control the state-updating behavior of a " @@ -1418,11 +1420,11 @@ msgstr "" "estático de ``obj`` :meth:`__setstate__`. Si no es ``None``, este invocable " "tendrá prioridad sobre ``obj``'s :meth:`__setstate__`." -#: ../Doc/library/pickle.rst:726 +#: ../Doc/library/pickle.rst:727 msgid "The optional sixth tuple item, ``(obj, state)``, was added." msgstr "Se agregó el sexto elemento opcional de tupla ``(obj, state)``." -#: ../Doc/library/pickle.rst:732 +#: ../Doc/library/pickle.rst:733 msgid "" "Alternatively, a :meth:`__reduce_ex__` method may be defined. The only " "difference is this method should take a single integer argument, the " @@ -1439,11 +1441,11 @@ msgstr "" "este método es proporcionar valores reducidos compatibles con versiones " "anteriores para versiones anteriores de Python." -#: ../Doc/library/pickle.rst:744 +#: ../Doc/library/pickle.rst:745 msgid "Persistence of External Objects" msgstr "Persistencia de objetos externos" -#: ../Doc/library/pickle.rst:750 +#: ../Doc/library/pickle.rst:751 msgid "" "For the benefit of object persistence, the :mod:`pickle` module supports the " "notion of a reference to an object outside the pickled data stream. Such " @@ -1458,7 +1460,7 @@ msgstr "" "protocolo 0) [#]_ o simplemente un objeto arbitrario (para cualquier " "protocolo más nuevo)." -#: ../Doc/library/pickle.rst:756 +#: ../Doc/library/pickle.rst:757 msgid "" "The resolution of such persistent IDs is not defined by the :mod:`pickle` " "module; it will delegate this resolution to the user-defined methods on the " @@ -1470,7 +1472,7 @@ msgstr "" "el `pickler` y el `unpickler`, :meth:`~Pickler.persistent_id` y :meth:" "`~Unpickler.persistent_load` respectivamente." -#: ../Doc/library/pickle.rst:761 +#: ../Doc/library/pickle.rst:762 msgid "" "To pickle objects that have an external persistent ID, the pickler must have " "a custom :meth:`~Pickler.persistent_id` method that takes an object as an " @@ -1488,7 +1490,7 @@ msgstr "" "persistente, el `pickler` serializará ese objeto, junto con un marcador para " "que el `unpickler` lo reconozca como una identificación persistente." -#: ../Doc/library/pickle.rst:768 +#: ../Doc/library/pickle.rst:769 msgid "" "To unpickle external objects, the unpickler must have a custom :meth:" "`~Unpickler.persistent_load` method that takes a persistent ID object and " @@ -1498,7 +1500,7 @@ msgstr "" "método personalizado :meth:`~Unpickler.persistent_load` que toma un objeto " "de identificación persistente y retorna el objeto referenciado." -#: ../Doc/library/pickle.rst:772 +#: ../Doc/library/pickle.rst:773 msgid "" "Here is a comprehensive example presenting how persistent ID can be used to " "pickle external objects by reference." @@ -1507,11 +1509,11 @@ msgstr "" "identificación persistente para hacer el `pickling` objetos externos por " "referencia." -#: ../Doc/library/pickle.rst:780 +#: ../Doc/library/pickle.rst:781 msgid "Dispatch Tables" msgstr "Tablas de despacho" -#: ../Doc/library/pickle.rst:782 +#: ../Doc/library/pickle.rst:783 msgid "" "If one wants to customize pickling of some classes without disturbing any " "other code which depends on pickling, then one can create a pickler with a " @@ -1521,7 +1523,7 @@ msgstr "" "otro código que dependa del `pickling`, se puede crear un `pickler` con una " "tabla de despacho privada." -#: ../Doc/library/pickle.rst:786 +#: ../Doc/library/pickle.rst:787 msgid "" "The global dispatch table managed by the :mod:`copyreg` module is available " "as :data:`copyreg.dispatch_table`. Therefore, one may choose to use a " @@ -1532,11 +1534,11 @@ msgstr "" "optar por utilizar una copia modificada de :data:`copyreg.dispatch_table` " "como tabla de envío privada." -#: ../Doc/library/pickle.rst:791 +#: ../Doc/library/pickle.rst:792 msgid "For example ::" msgstr "Por ejemplo ::" -#: ../Doc/library/pickle.rst:798 +#: ../Doc/library/pickle.rst:799 msgid "" "creates an instance of :class:`pickle.Pickler` with a private dispatch table " "which handles the ``SomeClass`` class specially. Alternatively, the code ::" @@ -1545,7 +1547,7 @@ msgstr "" "privada que maneja la clase ``AlgunaClase`` especialmente. " "Alternativamente, el código ::" -#: ../Doc/library/pickle.rst:808 +#: ../Doc/library/pickle.rst:809 msgid "" "does the same but all instances of ``MyPickler`` will by default share the " "private dispatch table. On the other hand, the code ::" @@ -1554,7 +1556,7 @@ msgstr "" "forma predeterminada la tabla de despacho privada. Por otro lado, el " "código ::" -#: ../Doc/library/pickle.rst:815 +#: ../Doc/library/pickle.rst:816 msgid "" "modifies the global dispatch table shared by all users of the :mod:`copyreg` " "module." @@ -1562,11 +1564,11 @@ msgstr "" "modifica la tabla de despacho global compartida por todos los usuarios del " "módulo :mod:`copyreg`." -#: ../Doc/library/pickle.rst:820 +#: ../Doc/library/pickle.rst:821 msgid "Handling Stateful Objects" msgstr "Manejo de objetos con estado" -#: ../Doc/library/pickle.rst:826 +#: ../Doc/library/pickle.rst:827 msgid "" "Here's an example that shows how to modify pickling behavior for a class. " "The :class:`TextReader` class opens a text file, and returns the line number " @@ -1587,15 +1589,15 @@ msgstr "" "Los métodos :meth:`__setstate__` y :meth:`__getstate__` se utilizan para " "implementar este comportamiento. ::" -#: ../Doc/library/pickle.rst:872 +#: ../Doc/library/pickle.rst:873 msgid "A sample usage might be something like this::" msgstr "Un ejemplo de uso podría ser algo como esto::" -#: ../Doc/library/pickle.rst:886 +#: ../Doc/library/pickle.rst:887 msgid "Custom Reduction for Types, Functions, and Other Objects" msgstr "Reducción personalizada para tipos, funciones y otros objetos" -#: ../Doc/library/pickle.rst:890 +#: ../Doc/library/pickle.rst:891 msgid "" "Sometimes, :attr:`~Pickler.dispatch_table` may not be flexible enough. In " "particular we may want to customize pickling based on another criterion than " @@ -1607,7 +1609,7 @@ msgstr "" "en función de otro criterio que no sea el tipo de objeto, o es posible que " "deseemos personalizar el `pickling` de funciones y clases." -#: ../Doc/library/pickle.rst:895 +#: ../Doc/library/pickle.rst:896 msgid "" "For those cases, it is possible to subclass from the :class:`Pickler` class " "and implement a :meth:`~Pickler.reducer_override` method. This method can " @@ -1621,7 +1623,7 @@ msgstr "" "Alternativamente, puede retornar ``NotImplemented`` para volver al " "comportamiento tradicional." -#: ../Doc/library/pickle.rst:900 +#: ../Doc/library/pickle.rst:901 msgid "" "If both the :attr:`~Pickler.dispatch_table` and :meth:`~Pickler." "reducer_override` are defined, then :meth:`~Pickler.reducer_override` method " @@ -1631,7 +1633,7 @@ msgstr "" "reducer_override`, entonces :meth:`~Pickler.reducer_override` tiene " "prioridad." -#: ../Doc/library/pickle.rst:905 +#: ../Doc/library/pickle.rst:906 msgid "" "For performance reasons, :meth:`~Pickler.reducer_override` may not be called " "for the following objects: ``None``, ``True``, ``False``, and exact " @@ -1645,7 +1647,7 @@ msgstr "" "`bytes`, :class:`str`, :class:`dict`, :class:`set`, :class:`frozenset`, :" "class:`list` y :class:`tuple`." -#: ../Doc/library/pickle.rst:911 +#: ../Doc/library/pickle.rst:912 msgid "" "Here is a simple example where we allow pickling and reconstructing a given " "class::" @@ -1653,11 +1655,11 @@ msgstr "" "Aquí hay un ejemplo simple donde permitimos el `pickling` y reconstruir una " "clase dada class::" -#: ../Doc/library/pickle.rst:946 +#: ../Doc/library/pickle.rst:947 msgid "Out-of-band Buffers" msgstr "Búferes fuera de banda" -#: ../Doc/library/pickle.rst:950 +#: ../Doc/library/pickle.rst:951 msgid "" "In some contexts, the :mod:`pickle` module is used to transfer massive " "amounts of data. Therefore, it can be important to minimize the number of " @@ -1674,7 +1676,7 @@ msgstr "" "de bytes, implica intrínsecamente copiar datos hacia y desde el flujo " "`pickle`." -#: ../Doc/library/pickle.rst:957 +#: ../Doc/library/pickle.rst:958 msgid "" "This constraint can be eschewed if both the *provider* (the implementation " "of the object types to be transferred) and the *consumer* (the " @@ -1686,11 +1688,11 @@ msgstr "" "del sistema de comunicaciones) admiten las facilidades de transferencia " "fuera de banda proporcionadas por el protocolo `pickle` 5 y mayor." -#: ../Doc/library/pickle.rst:963 +#: ../Doc/library/pickle.rst:964 msgid "Provider API" msgstr "API de proveedor" -#: ../Doc/library/pickle.rst:965 +#: ../Doc/library/pickle.rst:966 msgid "" "The large data objects to be pickled must implement a :meth:`__reduce_ex__` " "method specialized for protocol 5 and higher, which returns a :class:" @@ -1702,7 +1704,7 @@ msgstr "" "5 y superior, que retorna una instancia de :class:`PickleBuffer` (en lugar " "de, por ejemplo, un objeto :class:`bytes` object) para cualquier datos." -#: ../Doc/library/pickle.rst:970 +#: ../Doc/library/pickle.rst:971 msgid "" "A :class:`PickleBuffer` object *signals* that the underlying buffer is " "eligible for out-of-band data transfer. Those objects remain compatible " @@ -1716,11 +1718,11 @@ msgstr "" "consumidores también pueden optar por decirle a :mod:`pickle` que manejarán " "esos búferes por sí mismos." -#: ../Doc/library/pickle.rst:977 +#: ../Doc/library/pickle.rst:978 msgid "Consumer API" msgstr "API de consumidor" -#: ../Doc/library/pickle.rst:979 +#: ../Doc/library/pickle.rst:980 msgid "" "A communications system can enable custom handling of the :class:" "`PickleBuffer` objects generated when serializing an object graph." @@ -1728,7 +1730,7 @@ msgstr "" "Un sistema de comunicaciones puede permitir el manejo personalizado de los " "objetos :class:`PickleBuffer` generados al serializar un gráfico de objetos." -#: ../Doc/library/pickle.rst:982 +#: ../Doc/library/pickle.rst:983 msgid "" "On the sending side, it needs to pass a *buffer_callback* argument to :class:" "`Pickler` (or to the :func:`dump` or :func:`dumps` function), which will be " @@ -1742,7 +1744,7 @@ msgstr "" "objeto. Los búferes acumulados por *buffer_callback* no verán sus datos " "copiados en el flujo de `pickle`, solo se insertará un marcador barato." -#: ../Doc/library/pickle.rst:989 +#: ../Doc/library/pickle.rst:990 msgid "" "On the receiving side, it needs to pass a *buffers* argument to :class:" "`Unpickler` (or to the :func:`load` or :func:`loads` function), which is an " @@ -1760,7 +1762,7 @@ msgstr "" "reconstructores de los objetos cuyo `pickling` produjo los objetos " "originales :class:`PickleBuffer`." -#: ../Doc/library/pickle.rst:997 +#: ../Doc/library/pickle.rst:998 msgid "" "Between the sending side and the receiving side, the communications system " "is free to implement its own transfer mechanism for out-of-band buffers. " @@ -1772,11 +1774,11 @@ msgstr "" "intermedias fuera de banda. Las posibles optimizaciones incluyen el uso de " "memoria compartida o compresión dependiente del tipo de datos." -#: ../Doc/library/pickle.rst:1003 +#: ../Doc/library/pickle.rst:1004 msgid "Example" msgstr "Ejemplo" -#: ../Doc/library/pickle.rst:1005 +#: ../Doc/library/pickle.rst:1006 msgid "" "Here is a trivial example where we implement a :class:`bytearray` subclass " "able to participate in out-of-band buffer pickling::" @@ -1784,7 +1786,7 @@ msgstr "" "Aquí hay un ejemplo trivial donde implementamos una subclase :class:" "`bytearray` capaz de participar en el `pickling` de un búfer fuera de banda::" -#: ../Doc/library/pickle.rst:1029 +#: ../Doc/library/pickle.rst:1030 msgid "" "The reconstructor (the ``_reconstruct`` class method) returns the buffer's " "providing object if it has the right type. This is an easy way to simulate " @@ -1794,7 +1796,7 @@ msgstr "" "proporciona el búfer si tiene el tipo correcto. Esta es una manera fácil de " "simular el comportamiento de copia cero en este ejemplo de juguete." -#: ../Doc/library/pickle.rst:1033 +#: ../Doc/library/pickle.rst:1034 msgid "" "On the consumer side, we can pickle those objects the usual way, which when " "unserialized will give us a copy of the original object::" @@ -1803,7 +1805,7 @@ msgstr "" "la forma habitual, que cuando no se serializan nos dará una copia del objeto " "original::" -#: ../Doc/library/pickle.rst:1042 +#: ../Doc/library/pickle.rst:1043 msgid "" "But if we pass a *buffer_callback* and then give back the accumulated " "buffers when unserializing, we are able to get back the original object::" @@ -1811,7 +1813,7 @@ msgstr "" "Pero si pasamos un *buffer_callback* y luego retornamos los búferes " "acumulados al anular la serialización, podemos recuperar el objeto original::" -#: ../Doc/library/pickle.rst:1052 +#: ../Doc/library/pickle.rst:1053 msgid "" "This example is limited by the fact that :class:`bytearray` allocates its " "own memory: you cannot create a :class:`bytearray` instance that is backed " @@ -1827,15 +1829,15 @@ msgstr "" "uso de `pickling` de copia cero (o realizar la menor cantidad de copias " "posible) cuando se transfieren entre procesos o sistemas distintos." -#: ../Doc/library/pickle.rst:1059 +#: ../Doc/library/pickle.rst:1060 msgid ":pep:`574` -- Pickle protocol 5 with out-of-band data" msgstr ":pep:`574` -- Protocolo Pickle 5 con datos fuera de banda" -#: ../Doc/library/pickle.rst:1065 +#: ../Doc/library/pickle.rst:1066 msgid "Restricting Globals" msgstr "Restricción de globals" -#: ../Doc/library/pickle.rst:1070 +#: ../Doc/library/pickle.rst:1071 msgid "" "By default, unpickling will import any class or function that it finds in " "the pickle data. For many applications, this behaviour is unacceptable as " @@ -1848,7 +1850,7 @@ msgstr "" "invocar código arbitrario. Solo considere lo que hace este flujo de datos " "de `pickle` hechos a mano cuando se carga::" -#: ../Doc/library/pickle.rst:1080 +#: ../Doc/library/pickle.rst:1081 msgid "" "In this example, the unpickler imports the :func:`os.system` function and " "then apply the string argument \"echo hello world\". Although this example " @@ -1859,7 +1861,7 @@ msgstr "" "aplica el argumento de cadena `\"echo hello world\"`. Aunque este ejemplo " "es inofensivo, no es difícil imaginar uno que pueda dañar su sistema." -#: ../Doc/library/pickle.rst:1084 +#: ../Doc/library/pickle.rst:1085 msgid "" "For this reason, you may want to control what gets unpickled by customizing :" "meth:`Unpickler.find_class`. Unlike its name suggests, :meth:`Unpickler." @@ -1874,7 +1876,7 @@ msgstr "" "posible prohibir completamente los globales o restringirlos a un subconjunto " "seguro." -#: ../Doc/library/pickle.rst:1090 +#: ../Doc/library/pickle.rst:1091 msgid "" "Here is an example of an unpickler allowing only few safe classes from the :" "mod:`builtins` module to be loaded::" @@ -1882,12 +1884,12 @@ msgstr "" "Aquí hay un ejemplo de un `unpickler` que permite cargar solo unas pocas " "clases seguras del módulo :mod:`builtins`::" -#: ../Doc/library/pickle.rst:1119 +#: ../Doc/library/pickle.rst:1120 msgid "A sample usage of our unpickler working as intended::" msgstr "" "Un ejemplo de uso de nuestro deserializador que funciona según lo previsto::" -#: ../Doc/library/pickle.rst:1138 +#: ../Doc/library/pickle.rst:1139 msgid "" "As our examples shows, you have to be careful with what you allow to be " "unpickled. Therefore if security is a concern, you may want to consider " @@ -1899,11 +1901,11 @@ msgstr "" "puede considerar alternativas como la API de `marshalling` en :mod:`xmlrpc." "client` o soluciones de terceros." -#: ../Doc/library/pickle.rst:1145 +#: ../Doc/library/pickle.rst:1146 msgid "Performance" msgstr "Performance" -#: ../Doc/library/pickle.rst:1147 +#: ../Doc/library/pickle.rst:1148 msgid "" "Recent versions of the pickle protocol (from protocol 2 and upwards) feature " "efficient binary encodings for several common features and built-in types. " @@ -1914,71 +1916,71 @@ msgstr "" "características comunes y tipos integrados. Además, el módulo :mod:`pickle` " "tiene un optimizador transparente escrito en C." -#: ../Doc/library/pickle.rst:1155 +#: ../Doc/library/pickle.rst:1156 msgid "Examples" msgstr "Ejemplos" -#: ../Doc/library/pickle.rst:1157 +#: ../Doc/library/pickle.rst:1158 msgid "" "For the simplest code, use the :func:`dump` and :func:`load` functions. ::" msgstr "" "Para obtener el código más simple, use las funciones :func:`dump` y :func:" "`load`. ::" -#: ../Doc/library/pickle.rst:1173 +#: ../Doc/library/pickle.rst:1174 msgid "The following example reads the resulting pickled data. ::" msgstr "" "El siguiente ejemplo lee los datos serializados con `pickle` resultantes. ::" -#: ../Doc/library/pickle.rst:1190 +#: ../Doc/library/pickle.rst:1191 msgid "Module :mod:`copyreg`" msgstr "Módulo :mod:`copyreg`" -#: ../Doc/library/pickle.rst:1190 +#: ../Doc/library/pickle.rst:1191 msgid "Pickle interface constructor registration for extension types." msgstr "Registro de constructor de interfaz `Pickle` para tipos de extensión." -#: ../Doc/library/pickle.rst:1193 +#: ../Doc/library/pickle.rst:1194 msgid "Module :mod:`pickletools`" msgstr "Módulo :mod:`pickletools`" -#: ../Doc/library/pickle.rst:1193 +#: ../Doc/library/pickle.rst:1194 msgid "Tools for working with and analyzing pickled data." msgstr "Herramientas para trabajar y analizar datos serializados con `pickle`." -#: ../Doc/library/pickle.rst:1196 +#: ../Doc/library/pickle.rst:1197 msgid "Module :mod:`shelve`" msgstr "Módulo :mod:`shelve`" -#: ../Doc/library/pickle.rst:1196 +#: ../Doc/library/pickle.rst:1197 msgid "Indexed databases of objects; uses :mod:`pickle`." msgstr "Bases de datos indexadas de objetos; usa :mod:`pickle`." -#: ../Doc/library/pickle.rst:1199 +#: ../Doc/library/pickle.rst:1200 msgid "Module :mod:`copy`" msgstr "Module :mod:`copy`" -#: ../Doc/library/pickle.rst:1199 +#: ../Doc/library/pickle.rst:1200 msgid "Shallow and deep object copying." msgstr "Copia de objetos superficial y profunda." -#: ../Doc/library/pickle.rst:1201 +#: ../Doc/library/pickle.rst:1202 msgid "Module :mod:`marshal`" msgstr "Módulo :mod:`marshal`" -#: ../Doc/library/pickle.rst:1202 +#: ../Doc/library/pickle.rst:1203 msgid "High-performance serialization of built-in types." msgstr "Serialización de alto rendimiento de tipos integrados." -#: ../Doc/library/pickle.rst:1206 +#: ../Doc/library/pickle.rst:1207 msgid "Footnotes" msgstr "Notas al pie" -#: ../Doc/library/pickle.rst:1207 +#: ../Doc/library/pickle.rst:1208 msgid "Don't confuse this with the :mod:`marshal` module" msgstr "No confunda esto con el módulo :mod:`marshal`" -#: ../Doc/library/pickle.rst:1209 +#: ../Doc/library/pickle.rst:1210 msgid "" "This is why :keyword:`lambda` functions cannot be pickled: all :keyword:`!" "lambda` functions share the same name: ````." @@ -1987,7 +1989,7 @@ msgstr "" "serializar con `pickle`: todas las funciones :keyword:`!lambda` comparten " "el mismo nombre: ````." -#: ../Doc/library/pickle.rst:1212 +#: ../Doc/library/pickle.rst:1213 msgid "" "The exception raised will likely be an :exc:`ImportError` or an :exc:" "`AttributeError` but it could be something else." @@ -1995,7 +1997,7 @@ msgstr "" "La excepción generada probablemente será un :exc:`ImportError` o un :exc:" "`AttributeError` pero podría ser otra cosa." -#: ../Doc/library/pickle.rst:1215 +#: ../Doc/library/pickle.rst:1216 msgid "" "The :mod:`copy` module uses this protocol for shallow and deep copying " "operations." @@ -2003,7 +2005,7 @@ msgstr "" "El módulo :mod:`copy` utiliza este protocolo para operaciones de copia " "superficial y profunda." -#: ../Doc/library/pickle.rst:1218 +#: ../Doc/library/pickle.rst:1219 msgid "" "The limitation on alphanumeric characters is due to the fact that persistent " "IDs in protocol 0 are delimited by the newline character. Therefore if any " @@ -2014,3 +2016,66 @@ msgstr "" "en el protocolo 0 están delimitados por el carácter de nueva línea. Por lo " "tanto, si se produce algún tipo de carácter de nueva línea en los ID " "persistentes, los datos serializados resultantes se volverán ilegibles." + +#: ../Doc/library/pickle.rst:12 +msgid "persistence" +msgstr "" + +#: ../Doc/library/pickle.rst:12 +msgid "persistent" +msgstr "" + +#: ../Doc/library/pickle.rst:12 +msgid "objects" +msgstr "" + +#: ../Doc/library/pickle.rst:12 +msgid "serializing" +msgstr "" + +#: ../Doc/library/pickle.rst:12 +msgid "marshalling" +msgstr "" + +#: ../Doc/library/pickle.rst:12 +msgid "flattening" +msgstr "" + +#: ../Doc/library/pickle.rst:12 +msgid "pickling" +msgstr "" + +#: ../Doc/library/pickle.rst:123 +msgid "External Data Representation" +msgstr "" + +#: ../Doc/library/pickle.rst:664 +msgid "copy" +msgstr "" + +#: ../Doc/library/pickle.rst:664 +msgid "protocol" +msgstr "" + +#: ../Doc/library/pickle.rst:747 +msgid "persistent_id (pickle protocol)" +msgstr "" + +#: ../Doc/library/pickle.rst:747 +msgid "persistent_load (pickle protocol)" +msgstr "" + +#: ../Doc/library/pickle.rst:823 +msgid "__getstate__() (copy protocol)" +msgstr "" + +#: ../Doc/library/pickle.rst:823 +msgid "__setstate__() (copy protocol)" +msgstr "" + +#: ../Doc/library/pickle.rst:1068 +msgid "find_class() (pickle protocol)" +msgstr "" + +#~ msgid "``None``, ``True``, and ``False``;" +#~ msgstr "``None``, ``True``, y ``False``;" diff --git a/library/pkgutil.po b/library/pkgutil.po index 524fdfe6b6..9995830cfb 100644 --- a/library/pkgutil.po +++ b/library/pkgutil.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-24 09:57+0800\n" "Last-Translator: Rodrigo Tobar \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/pkgutil.rst:2 msgid ":mod:`pkgutil` --- Package extension utility" @@ -55,10 +55,10 @@ msgstr "" #: ../Doc/library/pkgutil.rst:28 #, fuzzy msgid "" -"This will add to the package's ``__path__`` all subdirectories of " -"directories on :data:`sys.path` named after the package. This is useful if " -"one wants to distribute different parts of a single logical package as " -"multiple directories." +"For each directory on :data:`sys.path` that has a subdirectory that matches " +"the package name, add the subdirectory to the package's :attr:`__path__`. " +"This is useful if one wants to distribute different parts of a single " +"logical package as multiple directories." msgstr "" "Esto agregará al ``__path__`` del paquete todos los subdirectorios de " "directorios en ``sys.path`` con el nombre del paquete. Esto es útil si se " @@ -110,66 +110,26 @@ msgstr "" "función lance una excepción (en línea con el comportamiento de :func:`os." "path.isdir`)." -#: ../Doc/library/pkgutil.rst:54 -msgid ":pep:`302` Finder that wraps Python's \"classic\" import algorithm." -msgstr "" -"Buscador :pep:`302` que envuelve el algoritmo de importación \"clásico\" de " -"Python." - -#: ../Doc/library/pkgutil.rst:56 -msgid "" -"If *dirname* is a string, a :pep:`302` finder is created that searches that " -"directory. If *dirname* is ``None``, a :pep:`302` finder is created that " -"searches the current :data:`sys.path`, plus any modules that are frozen or " -"built-in." -msgstr "" -"Si *dirname* es una cadena de caracteres, se crea un buscador :pep:`302` que " -"busca ese directorio. Si *dirname* es ``None``, se crea un buscador :pep:" -"`302` que busca en el actual :data:`sys.path`, más cualquier módulo que esté " -"congelado o incorporado." - -#: ../Doc/library/pkgutil.rst:61 -msgid "" -"Note that :class:`ImpImporter` does not currently support being used by " -"placement on :data:`sys.meta_path`." -msgstr "" -"Tenga en cuenta que :class:`ImpImporter` no admite actualmente el uso de " -"ubicación :data:`sys.meta_path`." - -#: ../Doc/library/pkgutil.rst:64 ../Doc/library/pkgutil.rst:73 -msgid "" -"This emulation is no longer needed, as the standard import mechanism is now " -"fully :pep:`302` compliant and available in :mod:`importlib`." -msgstr "" -"Esta emulación ya no es necesaria, ya que ahora lo es el mecanismo de " -"importación estándar totalmente compatible con :pep:`302` y disponible en :" -"mod:`importlib`." - -#: ../Doc/library/pkgutil.rst:71 -msgid "" -":term:`Loader ` that wraps Python's \"classic\" import algorithm." -msgstr "" -":term:`Loader ` que envuelve el algoritmo de importación \"clásico\" " -"de Python." - -#: ../Doc/library/pkgutil.rst:80 +#: ../Doc/library/pkgutil.rst:53 msgid "Retrieve a module :term:`loader` for the given *fullname*." msgstr "Recupera un módulo :term:`loader` para un *fullname* dado." -#: ../Doc/library/pkgutil.rst:82 +#: ../Doc/library/pkgutil.rst:55 +#, fuzzy msgid "" "This is a backwards compatibility wrapper around :func:`importlib.util." "find_spec` that converts most failures to :exc:`ImportError` and only " -"returns the loader rather than the full :class:`ModuleSpec`." +"returns the loader rather than the full :class:`importlib.machinery." +"ModuleSpec`." msgstr "" "Este es un contenedor de compatibilidad con versiones anteriores de :func:" "`importlib.util.find_spec` que convierte la mayoría de los errores en :exc:" "`ImportError` y solo retorna el cargador en lugar del completo :class:" "`ModuleSpec`." -#: ../Doc/library/pkgutil.rst:87 ../Doc/library/pkgutil.rst:104 -#: ../Doc/library/pkgutil.rst:119 ../Doc/library/pkgutil.rst:140 -#: ../Doc/library/pkgutil.rst:161 ../Doc/library/pkgutil.rst:200 +#: ../Doc/library/pkgutil.rst:60 ../Doc/library/pkgutil.rst:81 +#: ../Doc/library/pkgutil.rst:96 ../Doc/library/pkgutil.rst:120 +#: ../Doc/library/pkgutil.rst:141 ../Doc/library/pkgutil.rst:180 msgid "" "Updated to be based directly on :mod:`importlib` rather than relying on the " "package internal :pep:`302` import emulation." @@ -177,15 +137,19 @@ msgstr "" "Actualizado para basarse directamente en :mod:`importlib` en lugar de " "depender del paquete interno :pep:`302` emulación de importación." -#: ../Doc/library/pkgutil.rst:91 ../Doc/library/pkgutil.rst:123 +#: ../Doc/library/pkgutil.rst:64 ../Doc/library/pkgutil.rst:100 msgid "Updated to be based on :pep:`451`" msgstr "Actualizado basado en :pep:`451`" -#: ../Doc/library/pkgutil.rst:96 +#: ../Doc/library/pkgutil.rst:68 ../Doc/library/pkgutil.rst:104 +msgid "Use :func:`importlib.util.find_spec` instead." +msgstr "" + +#: ../Doc/library/pkgutil.rst:73 msgid "Retrieve a :term:`finder` for the given *path_item*." msgstr "Recupera un :term:`finder` para el *path_item*." -#: ../Doc/library/pkgutil.rst:98 +#: ../Doc/library/pkgutil.rst:75 msgid "" "The returned finder is cached in :data:`sys.path_importer_cache` if it was " "newly created by a path hook." @@ -193,7 +157,7 @@ msgstr "" "El buscador retornado se almacena en caché en :data:`sys." "path_importer_cache` si fue creado recientemente por un enlace de ruta." -#: ../Doc/library/pkgutil.rst:101 +#: ../Doc/library/pkgutil.rst:78 msgid "" "The cache (or part of it) can be cleared manually if a rescan of :data:`sys." "path_hooks` is necessary." @@ -201,11 +165,11 @@ msgstr "" "La caché (o parte de ella) puede ser borrada manualmente si el escaneo de :" "data:`sys.path_hooks` es necesario." -#: ../Doc/library/pkgutil.rst:111 +#: ../Doc/library/pkgutil.rst:88 msgid "Get a :term:`loader` object for *module_or_name*." msgstr "Obtiene un objeto :term:`loader` para *module_or_name*." -#: ../Doc/library/pkgutil.rst:113 +#: ../Doc/library/pkgutil.rst:90 msgid "" "If the module or package is accessible via the normal import mechanism, a " "wrapper around the relevant part of that machinery is returned. Returns " @@ -220,11 +184,11 @@ msgstr "" "importa el paquete que lo contiene (si lo hay), para establecer el paquete " "``__path__``." -#: ../Doc/library/pkgutil.rst:129 +#: ../Doc/library/pkgutil.rst:109 msgid "Yield :term:`finder` objects for the given module name." msgstr "Cede (*yield*) objetos :term:`finder` para el nombre de módulo dado." -#: ../Doc/library/pkgutil.rst:131 +#: ../Doc/library/pkgutil.rst:111 #, fuzzy msgid "" "If fullname contains a ``'.'``, the finders will be for the package " @@ -236,7 +200,7 @@ msgstr "" "de nivel superior registrados (es decir, los de sys.meta_path y sys." "path_hooks)." -#: ../Doc/library/pkgutil.rst:135 +#: ../Doc/library/pkgutil.rst:115 msgid "" "If the named module is in a package, that package is imported as a side " "effect of invoking this function." @@ -244,13 +208,13 @@ msgstr "" "Si el módulo nombrado está en un paquete, ese paquete se importa como un " "efecto secundario de invocar esta función." -#: ../Doc/library/pkgutil.rst:138 +#: ../Doc/library/pkgutil.rst:118 msgid "If no module name is specified, all top level finders are produced." msgstr "" "Si no se especifica ningún nombre de módulo, se generan todos los buscadores " "de nivel superior." -#: ../Doc/library/pkgutil.rst:147 +#: ../Doc/library/pkgutil.rst:127 #, fuzzy msgid "" "Yields :class:`ModuleInfo` for all submodules on *path*, or, if *path* is " @@ -259,21 +223,21 @@ msgstr "" "Cede (*yield*) :class:`ModuleInfo` para todos los submódulos en *path*, o, " "si *path* es ``None``, todos los módulos de nivel superior en ``sys.path``." -#: ../Doc/library/pkgutil.rst:150 ../Doc/library/pkgutil.rst:171 +#: ../Doc/library/pkgutil.rst:130 ../Doc/library/pkgutil.rst:151 msgid "" "*path* should be either ``None`` or a list of paths to look for modules in." msgstr "" "*path* tendría que ser ``None`` o una list de rutas en las que buscar " "módulos." -#: ../Doc/library/pkgutil.rst:152 ../Doc/library/pkgutil.rst:173 +#: ../Doc/library/pkgutil.rst:132 ../Doc/library/pkgutil.rst:153 msgid "" "*prefix* is a string to output on the front of every module name on output." msgstr "" "*prefix* es una cadena para mostrar delante de cada nombre de módulo en la " "salida." -#: ../Doc/library/pkgutil.rst:156 ../Doc/library/pkgutil.rst:195 +#: ../Doc/library/pkgutil.rst:136 ../Doc/library/pkgutil.rst:175 msgid "" "Only works for a :term:`finder` which defines an ``iter_modules()`` method. " "This interface is non-standard, so the module also provides implementations " @@ -285,7 +249,7 @@ msgstr "" "también proporciona implementaciones para :class:`importlib.machinery." "FileFinder` y :class:`zipimport.zipimporter`." -#: ../Doc/library/pkgutil.rst:168 +#: ../Doc/library/pkgutil.rst:148 msgid "" "Yields :class:`ModuleInfo` for all modules recursively on *path*, or, if " "*path* is ``None``, all accessible modules." @@ -293,7 +257,7 @@ msgstr "" "Cede (*yield*) :class:`ModuleInfo` para todos los módulos de forma recursiva " "en *path*, o, si *path* es ``None``, todos los módulos accesibles." -#: ../Doc/library/pkgutil.rst:175 +#: ../Doc/library/pkgutil.rst:155 msgid "" "Note that this function must import all *packages* (*not* all modules!) on " "the given *path*, in order to access the ``__path__`` attribute to find " @@ -303,7 +267,7 @@ msgstr "" "módulos!) en el *path* especificado, para acceder al atributo ``__path__`` " "para encontrar submódulos." -#: ../Doc/library/pkgutil.rst:179 +#: ../Doc/library/pkgutil.rst:159 msgid "" "*onerror* is a function which gets called with one argument (the name of the " "package which was being imported) if any exception occurs while trying to " @@ -317,15 +281,15 @@ msgstr "" "exc:`ImportError` se capturan e ignoran, mientras que todas las demás " "excepciones se propagan, terminando la búsqueda." -#: ../Doc/library/pkgutil.rst:185 +#: ../Doc/library/pkgutil.rst:165 msgid "Examples::" msgstr "Ejemplos::" -#: ../Doc/library/pkgutil.rst:207 +#: ../Doc/library/pkgutil.rst:187 msgid "Get a resource from a package." msgstr "Obtiene un recurso de un paquete." -#: ../Doc/library/pkgutil.rst:209 +#: ../Doc/library/pkgutil.rst:189 msgid "" "This is a wrapper for the :term:`loader` :meth:`get_data ` API. The *package* argument should be the name of " @@ -341,7 +305,7 @@ msgstr "" "``/`` como separador de ruta.El nombre del directorio principal ``..`` no " "está permitido, ni tampoco un nombre raíz (empezando por ``/``)." -#: ../Doc/library/pkgutil.rst:216 +#: ../Doc/library/pkgutil.rst:196 msgid "" "The function returns a binary string that is the contents of the specified " "resource." @@ -349,7 +313,7 @@ msgstr "" "La función retorna una cadena de caracteres binaria que es el contenido del " "recurso especificado." -#: ../Doc/library/pkgutil.rst:219 +#: ../Doc/library/pkgutil.rst:199 msgid "" "For packages located in the filesystem, which have already been imported, " "this is the rough equivalent of::" @@ -357,7 +321,7 @@ msgstr "" "Para los paquetes ubicados en el sistema de archivos, que ya se han " "importado, este es el equivalente aproximado de::" -#: ../Doc/library/pkgutil.rst:225 +#: ../Doc/library/pkgutil.rst:205 msgid "" "If the package cannot be located or loaded, or it uses a :term:`loader` " "which does not support :meth:`get_data ` no soporta :meth:`get_data " "`." -#: ../Doc/library/pkgutil.rst:234 +#: ../Doc/library/pkgutil.rst:214 msgid "Resolve a name to an object." msgstr "Resuelve un nombre a un objeto." -#: ../Doc/library/pkgutil.rst:236 +#: ../Doc/library/pkgutil.rst:216 msgid "" "This functionality is used in numerous places in the standard library (see :" "issue:`12915`) - and equivalent functionality is also in widely used third-" @@ -386,7 +350,7 @@ msgstr "" "librerías de terceros ampliamente usadas, tales como setuptools, Django y " "Pyramid." -#: ../Doc/library/pkgutil.rst:240 +#: ../Doc/library/pkgutil.rst:220 msgid "" "It is expected that *name* will be a string in one of the following formats, " "where W is shorthand for a valid Python identifier and dot stands for a " @@ -397,15 +361,15 @@ msgstr "" "representa literalmente un punto en las siguientes pseudo-expresiones " "regulares:" -#: ../Doc/library/pkgutil.rst:244 +#: ../Doc/library/pkgutil.rst:224 msgid "``W(.W)*``" msgstr "``W(.W)*``" -#: ../Doc/library/pkgutil.rst:245 +#: ../Doc/library/pkgutil.rst:225 msgid "``W(.W)*:(W(.W)*)?``" msgstr "``W(.W)*:(W(.W)*)?``" -#: ../Doc/library/pkgutil.rst:247 +#: ../Doc/library/pkgutil.rst:227 msgid "" "The first form is intended for backward compatibility only. It assumes that " "some part of the dotted name is a package, and the rest is an object " @@ -421,7 +385,7 @@ msgstr "" "jerarquía de objetos comienza no puede ser inferida por inspección, con esta " "forma se debe realizar repetidos intentos de importación." -#: ../Doc/library/pkgutil.rst:254 +#: ../Doc/library/pkgutil.rst:234 msgid "" "In the second form, the caller makes the division point clear through the " "provision of a single colon: the dotted name to the left of the colon is a " @@ -436,7 +400,7 @@ msgstr "" "necesaria con esta forma. Si termina con dos puntos, entonces se retorna un " "objeto módulo." -#: ../Doc/library/pkgutil.rst:260 +#: ../Doc/library/pkgutil.rst:240 msgid "" "The function will return an object (which might be a module), or raise one " "of the following exceptions:" @@ -444,17 +408,17 @@ msgstr "" "La función retornará un objeto (el cual puede ser un módulo), o lanzará una " "de las siguientes excepciones:" -#: ../Doc/library/pkgutil.rst:263 +#: ../Doc/library/pkgutil.rst:243 msgid ":exc:`ValueError` -- if *name* isn't in a recognised format." msgstr ":exc:`ValueError` -- si *name* no tiene un formato reconocido." -#: ../Doc/library/pkgutil.rst:265 +#: ../Doc/library/pkgutil.rst:245 msgid ":exc:`ImportError` -- if an import failed when it shouldn't have." msgstr "" ":exc:`ImportError` -- si una importación falló cuando no lo debería haber " "hecho." -#: ../Doc/library/pkgutil.rst:267 +#: ../Doc/library/pkgutil.rst:247 msgid "" ":exc:`AttributeError` -- If a failure occurred when traversing the object " "hierarchy within the imported package to get to the desired object." @@ -462,3 +426,40 @@ msgstr "" ":exc:`AttributeError` -- Si un fallo ocurrió mientras se atravesaba la " "jerarquía de objetos dentro del paquete importado para obtener el objeto " "deseado." + +#~ msgid ":pep:`302` Finder that wraps Python's \"classic\" import algorithm." +#~ msgstr "" +#~ "Buscador :pep:`302` que envuelve el algoritmo de importación \"clásico\" " +#~ "de Python." + +#~ msgid "" +#~ "If *dirname* is a string, a :pep:`302` finder is created that searches " +#~ "that directory. If *dirname* is ``None``, a :pep:`302` finder is created " +#~ "that searches the current :data:`sys.path`, plus any modules that are " +#~ "frozen or built-in." +#~ msgstr "" +#~ "Si *dirname* es una cadena de caracteres, se crea un buscador :pep:`302` " +#~ "que busca ese directorio. Si *dirname* es ``None``, se crea un buscador :" +#~ "pep:`302` que busca en el actual :data:`sys.path`, más cualquier módulo " +#~ "que esté congelado o incorporado." + +#~ msgid "" +#~ "Note that :class:`ImpImporter` does not currently support being used by " +#~ "placement on :data:`sys.meta_path`." +#~ msgstr "" +#~ "Tenga en cuenta que :class:`ImpImporter` no admite actualmente el uso de " +#~ "ubicación :data:`sys.meta_path`." + +#~ msgid "" +#~ "This emulation is no longer needed, as the standard import mechanism is " +#~ "now fully :pep:`302` compliant and available in :mod:`importlib`." +#~ msgstr "" +#~ "Esta emulación ya no es necesaria, ya que ahora lo es el mecanismo de " +#~ "importación estándar totalmente compatible con :pep:`302` y disponible " +#~ "en :mod:`importlib`." + +#~ msgid "" +#~ ":term:`Loader ` that wraps Python's \"classic\" import algorithm." +#~ msgstr "" +#~ ":term:`Loader ` que envuelve el algoritmo de importación " +#~ "\"clásico\" de Python." diff --git a/library/platform.po b/library/platform.po index 9cf38e5eba..7c4ee2afda 100644 --- a/library/platform.po +++ b/library/platform.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-17 13:04-0300\n" "Last-Translator: \n" -"Language-Team: python-doc-es\n" "Language: es_ES\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/platform.rst:2 msgid ":mod:`platform` --- Access to underlying platform's identifying data" @@ -96,9 +95,10 @@ msgstr "" "ser archivos universales que contienen múltiples arquitecturas." #: ../Doc/library/platform.rst:48 +#, fuzzy msgid "" "To get at the \"64-bitness\" of the current interpreter, it is more reliable " -"to query the :attr:`sys.maxsize` attribute::" +"to query the :data:`sys.maxsize` attribute::" msgstr "" "Para llegar a los \"64-bits\" del intérprete actual, es más seguro consultar " "el atributo :attr:`sys.maxsize`::" @@ -293,35 +293,37 @@ msgstr "" "`release`, :attr:`version`, :attr:`machine`, and :attr:`processor`." #: ../Doc/library/platform.rst:171 +msgid ":attr:`processor` is resolved late, on demand." +msgstr "" + +#: ../Doc/library/platform.rst:173 msgid "" -"Note that this adds a sixth attribute (:attr:`processor`) not present in " -"the :func:`os.uname` result. Also, the attribute names are different for " -"the first two attributes; :func:`os.uname` names them :attr:`sysname` and :" -"attr:`nodename`." +"Note: the first two attribute names differ from the names presented by :func:" +"`os.uname`, where they are named :attr:`sysname` and :attr:`nodename`." msgstr "" -"Destacar que añade un sexto atributo (:attr:`processor`) que no está " -"presente en el resultado de la función :func:`os.uname`. Los dos primeros " -"atributos tienen nombres diferentes a los que tiene :func:`os.uname`, que " -"los llama :attr:`sysname` y :attr:`nodename`." -#: ../Doc/library/platform.rst:176 +#: ../Doc/library/platform.rst:177 msgid "Entries which cannot be determined are set to ``''``." msgstr "" "Cualquier entrada que no pueda ser determinada se establece como ``''``." -#: ../Doc/library/platform.rst:178 +#: ../Doc/library/platform.rst:179 msgid "Result changed from a tuple to a :func:`~collections.namedtuple`." msgstr "El resultado ha cambiado de tupla :func:`~collections.namedtuple`.." -#: ../Doc/library/platform.rst:183 +#: ../Doc/library/platform.rst:182 +msgid ":attr:`processor` is resolved late instead of immediately." +msgstr "" + +#: ../Doc/library/platform.rst:187 msgid "Java Platform" msgstr "Plataforma Java" -#: ../Doc/library/platform.rst:188 +#: ../Doc/library/platform.rst:192 msgid "Version interface for Jython." msgstr "Versión de la interfaz de Jython." -#: ../Doc/library/platform.rst:190 +#: ../Doc/library/platform.rst:194 msgid "" "Returns a tuple ``(release, vendor, vminfo, osinfo)`` with *vminfo* being a " "tuple ``(vm_name, vm_release, vm_vendor)`` and *osinfo* being a tuple " @@ -334,11 +336,11 @@ msgstr "" "son establecidos por defecto por los parámetros (todos los valores " "predeterminados son ``''``)." -#: ../Doc/library/platform.rst:197 +#: ../Doc/library/platform.rst:201 msgid "Windows Platform" msgstr "Plataforma windows" -#: ../Doc/library/platform.rst:202 +#: ../Doc/library/platform.rst:206 msgid "" "Get additional version information from the Windows Registry and return a " "tuple ``(release, version, csd, ptype)`` referring to OS release, version " @@ -353,7 +355,7 @@ msgstr "" "pueden determinar son establecidos por defecto por los parámetros (todos los " "valores predeterminados son una cadena vacía)." -#: ../Doc/library/platform.rst:208 +#: ../Doc/library/platform.rst:212 msgid "" "As a hint: *ptype* is ``'Uniprocessor Free'`` on single processor NT " "machines and ``'Multiprocessor Free'`` on multi processor machines. The " @@ -368,7 +370,7 @@ msgstr "" "que la versión del sistema operativo utiliza código de depuración, es decir, " "código que comprueba argumentos, rangos, etc." -#: ../Doc/library/platform.rst:216 +#: ../Doc/library/platform.rst:220 msgid "" "Returns a string representing the current Windows edition, or ``None`` if " "the value cannot be determined. Possible values include but are not limited " @@ -380,7 +382,7 @@ msgstr "" "otros, ``'Enterprise'``, ``'IoTUAP'``, ``'ServerStandard'`` y " "``'nanoserver'``." -#: ../Doc/library/platform.rst:224 +#: ../Doc/library/platform.rst:228 msgid "" "Return ``True`` if the Windows edition returned by :func:`win32_edition` is " "recognized as an IoT edition." @@ -388,11 +390,11 @@ msgstr "" "Retorna ``True`` si la edición de Windows retornada por :func:" "`win32_edition` se reconoce como una edición IoT." -#: ../Doc/library/platform.rst:231 +#: ../Doc/library/platform.rst:235 msgid "macOS Platform" msgstr "Plataforma macOS" -#: ../Doc/library/platform.rst:236 +#: ../Doc/library/platform.rst:240 msgid "" "Get macOS version information and return it as tuple ``(release, " "versioninfo, machine)`` with *versioninfo* being a tuple ``(version, " @@ -402,7 +404,7 @@ msgstr "" "``(release, versioninfo, machine)`` con *versioninfo* como tupla ``(version, " "dev_stage, non_release_version)``." -#: ../Doc/library/platform.rst:240 +#: ../Doc/library/platform.rst:244 msgid "" "Entries which cannot be determined are set to ``''``. All tuple entries are " "strings." @@ -410,11 +412,11 @@ msgstr "" "Cualquier registro que no puede ser determinado se establece como ``''``. " "Todas los registros de la tupla son cadenas." -#: ../Doc/library/platform.rst:245 +#: ../Doc/library/platform.rst:249 msgid "Unix Platforms" msgstr "Plataformas Unix" -#: ../Doc/library/platform.rst:249 +#: ../Doc/library/platform.rst:253 msgid "" "Tries to determine the libc version against which the file executable " "(defaults to the Python interpreter) is linked. Returns a tuple of strings " @@ -426,7 +428,7 @@ msgstr "" "cadenas ``(lib, version)`` que tiene por defecto los parámetros que han sido " "introducidos en caso de que la búsqueda fallase." -#: ../Doc/library/platform.rst:253 +#: ../Doc/library/platform.rst:257 msgid "" "Note that this function has intimate knowledge of how different libc " "versions add symbols to the executable is probably only usable for " @@ -437,15 +439,15 @@ msgstr "" "sólo se puede utilizar para los ejecutables compilados mediante :program:" "`gcc`." -#: ../Doc/library/platform.rst:257 +#: ../Doc/library/platform.rst:261 msgid "The file is read and scanned in chunks of *chunksize* bytes." msgstr "El archivo se lee y se analiza en fragmentos de bytes *chunksize*." -#: ../Doc/library/platform.rst:261 +#: ../Doc/library/platform.rst:265 msgid "Linux Platforms" msgstr "Plataformas Linux" -#: ../Doc/library/platform.rst:265 +#: ../Doc/library/platform.rst:269 msgid "" "Get operating system identification from ``os-release`` file and return it " "as a dict. The ``os-release`` file is a `freedesktop.org standard `_ y está disponible en la mayoría de las distribuciones de Linux. Una " "excepción notable son las distribuciones de Android y basadas en Android." -#: ../Doc/library/platform.rst:271 +#: ../Doc/library/platform.rst:275 msgid "" "Raises :exc:`OSError` or subclass when neither ``/etc/os-release`` nor ``/" "usr/lib/os-release`` can be read." @@ -467,7 +469,7 @@ msgstr "" "Lanza :exc:`OSError` o subclase cuando no se pueden leer ni ``/etc/os-" "release`` ni ``/usr/lib/os-release``." -#: ../Doc/library/platform.rst:274 +#: ../Doc/library/platform.rst:278 msgid "" "On success, the function returns a dictionary where keys and values are " "strings. Values have their special characters like ``\"`` and ``$`` " @@ -482,7 +484,7 @@ msgstr "" "demás campos son opcionales. Los proveedores pueden incluir campos " "adicionales." -#: ../Doc/library/platform.rst:280 +#: ../Doc/library/platform.rst:284 msgid "" "Note that fields like ``NAME``, ``VERSION``, and ``VARIANT`` are strings " "suitable for presentation to users. Programs should use fields like ``ID``, " @@ -494,6 +496,17 @@ msgstr "" "programas deben usar campos como ``ID``, ``ID_LIKE``, ``VERSION_ID`` o " "``VARIANT_ID`` para identificar distribuciones de Linux." -#: ../Doc/library/platform.rst:285 +#: ../Doc/library/platform.rst:289 msgid "Example::" msgstr "Ejemplo::" + +#~ msgid "" +#~ "Note that this adds a sixth attribute (:attr:`processor`) not present in " +#~ "the :func:`os.uname` result. Also, the attribute names are different for " +#~ "the first two attributes; :func:`os.uname` names them :attr:`sysname` " +#~ "and :attr:`nodename`." +#~ msgstr "" +#~ "Destacar que añade un sexto atributo (:attr:`processor`) que no está " +#~ "presente en el resultado de la función :func:`os.uname`. Los dos primeros " +#~ "atributos tienen nombres diferentes a los que tiene :func:`os.uname`, que " +#~ "los llama :attr:`sysname` y :attr:`nodename`." diff --git a/library/plistlib.po b/library/plistlib.po index f2e02ccd37..70f4217df6 100644 --- a/library/plistlib.po +++ b/library/plistlib.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-16 21:42+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-04 21:46+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" -"Generated-By: Babel 2.9.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/plistlib.rst:2 msgid ":mod:`plistlib` --- Generate and parse Apple ``.plist`` files" @@ -94,8 +94,9 @@ msgid "Old API removed." msgstr "API antigua eliminada." #: ../Doc/library/plistlib.rst:49 +#, fuzzy msgid "" -"`PList manual page `_" msgstr "" "`Página del manual PList \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/poplib.rst:2 msgid ":mod:`poplib` --- POP3 protocol client" @@ -68,11 +68,12 @@ msgstr "" "clase :class:`imaplib.IMAP4`, ya que los servidores IMAP tienden a estar " "mejor implementados." +#: ../Doc/includes/wasm-notavail.rst:3 #, fuzzy msgid ":ref:`Availability `: not Emscripten, not WASI." msgstr ":ref:`Disponibilidad `: no Emscripten, no WASI." -#: ../Doc/library/cpython/Doc/includes/wasm-notavail.rst:5 +#: ../Doc/includes/wasm-notavail.rst:5 #, fuzzy msgid "" "This module does not work or is not available on WebAssembly platforms " @@ -101,7 +102,7 @@ msgstr "" "espera en segundos para el intento de conexión (si no se especifica, la " "configuración global de tiempo de espera será utilizada)." -#: ../Doc/library/poplib.rst:53 ../Doc/library/poplib.rst:79 +#: ../Doc/library/poplib.rst:53 ../Doc/library/poplib.rst:75 msgid "" "Raises an :ref:`auditing event ` ``poplib.connect`` with arguments " "``self``, ``host``, ``port``." @@ -109,7 +110,7 @@ msgstr "" "Genera un :ref:`evento de auditoría ` ``poplib.connect`` con " "argumentos ``self``, ``host``, ``port``." -#: ../Doc/library/poplib.rst:55 ../Doc/library/poplib.rst:81 +#: ../Doc/library/poplib.rst:55 ../Doc/library/poplib.rst:77 msgid "" "Raises an :ref:`auditing event ` ``poplib.putline`` with arguments " "``self``, ``line``." @@ -117,7 +118,7 @@ msgstr "" "Genera un :ref:`evento de auditoría ` ``poplib.putline`` con " "argumentos ``self``, ``line``." -#: ../Doc/library/poplib.rst:48 ../Doc/library/poplib.rst:74 +#: ../Doc/library/poplib.rst:48 ../Doc/library/poplib.rst:70 msgid "" "All commands will raise an :ref:`auditing event ` ``poplib." "putline`` with arguments ``self`` and ``line``, where ``line`` is the bytes " @@ -127,7 +128,7 @@ msgstr "" "``poplib.putline`` con argumentos ``self`` y ``line``, donde ``line`` son " "los bytes a ser enviados al host remoto." -#: ../Doc/library/poplib.rst:52 ../Doc/library/poplib.rst:93 +#: ../Doc/library/poplib.rst:52 ../Doc/library/poplib.rst:82 msgid "" "If the *timeout* parameter is set to be zero, it will raise a :class:" "`ValueError` to prevent the creation of a non-blocking socket." @@ -153,45 +154,29 @@ msgstr "" "privadas en una única (potencialmente longeva) estructura. Por favor lea :" "ref:`ssl-security` para buenas prácticas." -#: ../Doc/library/poplib.rst:66 -msgid "" -"*keyfile* and *certfile* are a legacy alternative to *context* - they can " -"point to PEM-formatted private key and certificate chain files, " -"respectively, for the SSL connection." -msgstr "" -"*keyfile* y *certfile* son una alternativa heredada a *context* - pueden " -"apuntar a llaves privadas PEM - y archivos de cadena de certificados, " -"respectivamente, para la conexión SSL." - -#: ../Doc/library/poplib.rst:78 +#: ../Doc/library/poplib.rst:74 msgid "*context* parameter added." msgstr "Parámetro *context* agregado." -#: ../Doc/library/poplib.rst:81 +#: ../Doc/library/poplib.rst:77 +#, fuzzy msgid "" "The class now supports hostname check with :attr:`ssl.SSLContext." -"check_hostname` and *Server Name Indication* (see :data:`ssl.HAS_SNI`)." +"check_hostname` and *Server Name Indication* (see :const:`ssl.HAS_SNI`)." msgstr "" "La clase ahora soporta verificación de nombre de host con :attr:`ssl." "SSLContext.check_hostname` e *Indicación de Nombre de Servidor* (vea :data:" "`ssl.HAS_SNI`)." -#: ../Doc/library/poplib.rst:88 -msgid "" -"*keyfile* and *certfile* are deprecated in favor of *context*. Please use :" -"meth:`ssl.SSLContext.load_cert_chain` instead, or let :func:`ssl." -"create_default_context` select the system's trusted CA certificates for you." +#: ../Doc/library/poplib.rst:86 +msgid "The deprecated *keyfile* and *certfile* parameters have been removed." msgstr "" -"*keyfile* y *certfile* están obsoletos en favor de *context*. Por favor " -"utilice :meth:`ssl.SSLContext.load_cert_chain` en su lugar, o permita que :" -"func:`ssl.create_default_context` seleccione el sistema de certificados CA " -"de confianza para usted." -#: ../Doc/library/poplib.rst:97 +#: ../Doc/library/poplib.rst:89 msgid "One exception is defined as an attribute of the :mod:`poplib` module:" msgstr "Una excepción es definida como un atributo del módulo :mod:`poplib`:" -#: ../Doc/library/poplib.rst:102 +#: ../Doc/library/poplib.rst:94 msgid "" "Exception raised on any errors from this module (errors from :mod:`socket` " "module are not caught). The reason for the exception is passed to the " @@ -201,15 +186,15 @@ msgstr "" "mod:`socket` no son capturadas). La razón para la excepción es pasada al " "constructor como una cadena." -#: ../Doc/library/poplib.rst:110 +#: ../Doc/library/poplib.rst:102 msgid "Module :mod:`imaplib`" msgstr "Módulo :mod:`imaplib`" -#: ../Doc/library/poplib.rst:110 +#: ../Doc/library/poplib.rst:102 msgid "The standard Python IMAP module." msgstr "El módulo IMAP de Python." -#: ../Doc/library/poplib.rst:114 +#: ../Doc/library/poplib.rst:106 msgid "" "`Frequently Asked Questions About Fetchmail `_" @@ -217,7 +202,7 @@ msgstr "" "`Preguntas Frecuentes Sobre Fetchmail `_" -#: ../Doc/library/poplib.rst:113 +#: ../Doc/library/poplib.rst:105 msgid "" "The FAQ for the :program:`fetchmail` POP/IMAP client collects information on " "POP3 server variations and RFC noncompliance that may be useful if you need " @@ -228,11 +213,11 @@ msgstr "" "de RFC que puede ser útil si usted necesita escribir una aplicación basada " "en el protocolo POP." -#: ../Doc/library/poplib.rst:121 +#: ../Doc/library/poplib.rst:113 msgid "POP3 Objects" msgstr "Objetos POP3" -#: ../Doc/library/poplib.rst:123 +#: ../Doc/library/poplib.rst:115 msgid "" "All POP3 commands are represented by methods of the same name, in lowercase; " "most return the response text sent by the server." @@ -240,11 +225,11 @@ msgstr "" "Todos los comandos POP3 están representados por métodos del mismo nombre, en " "minúsculas; la mayoría retorna el texto de respuesta enviado por el servidor." -#: ../Doc/library/poplib.rst:126 +#: ../Doc/library/poplib.rst:118 msgid "A :class:`POP3` instance has the following methods:" msgstr "Una instancia :class:`POP3` tiene los siguientes métodos:" -#: ../Doc/library/poplib.rst:131 +#: ../Doc/library/poplib.rst:123 msgid "" "Set the instance's debugging level. This controls the amount of debugging " "output printed. The default, ``0``, produces no debugging output. A value " @@ -260,11 +245,11 @@ msgstr "" "mayor produce la máxima cantidad de salida de depuración, registrando cada " "línea enviada y recibida en la conexión de control." -#: ../Doc/library/poplib.rst:140 +#: ../Doc/library/poplib.rst:132 msgid "Returns the greeting string sent by the POP3 server." msgstr "Retorna la cadena de saludo enviada por el servidor POP3." -#: ../Doc/library/poplib.rst:145 +#: ../Doc/library/poplib.rst:137 msgid "" "Query the server's capabilities as specified in :rfc:`2449`. Returns a " "dictionary in the form ``{'name': ['param'...]}``." @@ -272,36 +257,37 @@ msgstr "" "Consulta las capacidades del servidor como está especificado en :rfc:`2449`. " "Retorna un diccionario en la forma ``{'nombre': ['param'...]}``." -#: ../Doc/library/poplib.rst:153 +#: ../Doc/library/poplib.rst:145 msgid "" "Send user command, response should indicate that a password is required." msgstr "" "Envía el comando del usuario, la respuesta debería indicar que una " "contraseña es requerida." -#: ../Doc/library/poplib.rst:158 +#: ../Doc/library/poplib.rst:150 +#, fuzzy msgid "" "Send password, response includes message count and mailbox size. Note: the " -"mailbox on the server is locked until :meth:`~poplib.quit` is called." +"mailbox on the server is locked until :meth:`~POP3.quit` is called." msgstr "" "Envía la contraseña, la respuesta incluye un conteo de mensaje y el tamaño " "del buzón de correo. Nota: el buzón de correo en el servidor está bloqueado " "hasta que :meth:`~poplib.quit` es llamado." -#: ../Doc/library/poplib.rst:164 +#: ../Doc/library/poplib.rst:156 msgid "Use the more secure APOP authentication to log into the POP3 server." msgstr "" "Utiliza la autenticación APOP (más segura) para registrar en el servidor " "POP3." -#: ../Doc/library/poplib.rst:169 +#: ../Doc/library/poplib.rst:161 msgid "" "Use RPOP authentication (similar to UNIX r-commands) to log into POP3 server." msgstr "" "Utiliza autenticación RPOP (similar a los comandos r de UNIX) para registrar " "en el servidor POP3." -#: ../Doc/library/poplib.rst:174 +#: ../Doc/library/poplib.rst:166 msgid "" "Get mailbox status. The result is a tuple of 2 integers: ``(message count, " "mailbox size)``." @@ -309,7 +295,7 @@ msgstr "" "Obtiene el estado del buzón de correo. El resultado es una tupla de 2 " "enteros: ``(conteo de mensaje, tamaño del buzón de correo)``." -#: ../Doc/library/poplib.rst:180 +#: ../Doc/library/poplib.rst:172 msgid "" "Request message list, result is in the form ``(response, ['mesg_num " "octets', ...], octets)``. If *which* is set, it is the message to list." @@ -318,7 +304,7 @@ msgstr "" "['mesg_num octets', ...], octets)``. Si *which* está establecido, es el " "mensaje a listar." -#: ../Doc/library/poplib.rst:186 +#: ../Doc/library/poplib.rst:178 msgid "" "Retrieve whole message number *which*, and set its seen flag. Result is in " "form ``(response, ['line', ...], octets)``." @@ -326,7 +312,7 @@ msgstr "" "Recupera el número de mensaje completo *which*, y establece marca de visto. " "El resultado es en la forma ``(respuesta, ['line', ...], octets)``." -#: ../Doc/library/poplib.rst:192 +#: ../Doc/library/poplib.rst:184 msgid "" "Flag message number *which* for deletion. On most servers deletions are not " "actually performed until QUIT (the major exception is Eudora QPOP, which " @@ -337,20 +323,20 @@ msgstr "" "mayor excepción es Eudora QPOP, que deliberadamente viola las RFC haciendo " "eliminaciones pendientes en cada desconexión)." -#: ../Doc/library/poplib.rst:199 +#: ../Doc/library/poplib.rst:191 msgid "Remove any deletion marks for the mailbox." msgstr "Remueve las marcas de eliminación para el buzón de correo." -#: ../Doc/library/poplib.rst:204 +#: ../Doc/library/poplib.rst:196 msgid "Do nothing. Might be used as a keep-alive." msgstr "No hace nada. Puede ser utilizado como keep-alive." -#: ../Doc/library/poplib.rst:209 +#: ../Doc/library/poplib.rst:201 msgid "Signoff: commit changes, unlock mailbox, drop connection." msgstr "" "Cierra sesión: envía los cambios, desbloquea el buzón de correo, desconecta." -#: ../Doc/library/poplib.rst:214 +#: ../Doc/library/poplib.rst:206 msgid "" "Retrieves the message header plus *howmuch* lines of the message after the " "header of message number *which*. Result is in form ``(response, " @@ -360,7 +346,7 @@ msgstr "" "después del cabecera del número de mensajes *which*. El resultado es en la " "forma ``(respuesta, ['línea', ...]. octets)``." -#: ../Doc/library/poplib.rst:218 +#: ../Doc/library/poplib.rst:210 msgid "" "The POP3 TOP command this method uses, unlike the RETR command, doesn't set " "the message's seen flag; unfortunately, TOP is poorly specified in the RFCs " @@ -373,7 +359,7 @@ msgstr "" "off-brand. Pruebe este método a mano contra los servidores POP3 que usted " "utilizará antes de confiar en él." -#: ../Doc/library/poplib.rst:226 +#: ../Doc/library/poplib.rst:218 msgid "" "Return message digest (unique id) list. If *which* is specified, result " "contains the unique id for that message in the form ``'response mesgnum " @@ -384,7 +370,7 @@ msgstr "" "``'response mesgnum uid``, de otra forma el resultado es una lista " "``(respuesta, ['mengnum uid', ...], octets)``." -#: ../Doc/library/poplib.rst:233 +#: ../Doc/library/poplib.rst:225 msgid "" "Try to switch to UTF-8 mode. Returns the server response if successful, " "raises :class:`error_proto` if not. Specified in :RFC:`6856`." @@ -392,7 +378,7 @@ msgstr "" "Trata de cambiar al modo UTF-8. Retorna la respuesta del servidor si es " "exitosa, genera :class:`error_proto` si no. Especificado en :RFC:`6856`." -#: ../Doc/library/poplib.rst:241 +#: ../Doc/library/poplib.rst:233 msgid "" "Start a TLS session on the active connection as specified in :rfc:`2595`. " "This is only allowed before user authentication" @@ -400,7 +386,7 @@ msgstr "" "Comienza una sesión TLS en la conexión activa como está especificado en :rfc:" "`2595`. Esto es únicamente permitido antes de la autenticación de usuario" -#: ../Doc/library/poplib.rst:244 +#: ../Doc/library/poplib.rst:236 msgid "" "*context* parameter is a :class:`ssl.SSLContext` object which allows " "bundling SSL configuration options, certificates and private keys into a " @@ -412,16 +398,17 @@ msgstr "" "una única (potencialmente longeva) estructura. Por favor lea :ref:`ssl-" "security` para buenas prácticas." -#: ../Doc/library/poplib.rst:249 +#: ../Doc/library/poplib.rst:241 +#, fuzzy msgid "" "This method supports hostname checking via :attr:`ssl.SSLContext." -"check_hostname` and *Server Name Indication* (see :data:`ssl.HAS_SNI`)." +"check_hostname` and *Server Name Indication* (see :const:`ssl.HAS_SNI`)." msgstr "" "Este método soporta verificación de nombre del host vía :attr:`ssl." "SSLContext.check_hostname` e *Indicación de Nombre del Servidor* (vea :data:" "`ssl.HAS_SNI`)." -#: ../Doc/library/poplib.rst:256 +#: ../Doc/library/poplib.rst:248 msgid "" "Instances of :class:`POP3_SSL` have no additional methods. The interface of " "this subclass is identical to its parent." @@ -429,11 +416,11 @@ msgstr "" "Instancias de :class:`POP3_SSL` no tienen métodos adicionales. La interfaz " "de esta subclase es idéntica a su padre." -#: ../Doc/library/poplib.rst:263 +#: ../Doc/library/poplib.rst:255 msgid "POP3 Example" msgstr "Ejemplo POP3" -#: ../Doc/library/poplib.rst:265 +#: ../Doc/library/poplib.rst:257 msgid "" "Here is a minimal example (without error checking) that opens a mailbox and " "retrieves and prints all messages::" @@ -441,10 +428,38 @@ msgstr "" "Este es un ejemplo mínimo (sin chequeo de errores) que abre un buzón de " "correo y retorna e imprime todos los mensajes::" -#: ../Doc/library/poplib.rst:278 +#: ../Doc/library/poplib.rst:270 msgid "" "At the end of the module, there is a test section that contains a more " "extensive example of usage." msgstr "" "Al final del módulo, hay una sección de test que contiene un ejemplo más " "extensivo de uso." + +#: ../Doc/library/poplib.rst:12 +msgid "POP3" +msgstr "" + +#: ../Doc/library/poplib.rst:12 +msgid "protocol" +msgstr "" + +#~ msgid "" +#~ "*keyfile* and *certfile* are a legacy alternative to *context* - they can " +#~ "point to PEM-formatted private key and certificate chain files, " +#~ "respectively, for the SSL connection." +#~ msgstr "" +#~ "*keyfile* y *certfile* son una alternativa heredada a *context* - pueden " +#~ "apuntar a llaves privadas PEM - y archivos de cadena de certificados, " +#~ "respectivamente, para la conexión SSL." + +#~ msgid "" +#~ "*keyfile* and *certfile* are deprecated in favor of *context*. Please " +#~ "use :meth:`ssl.SSLContext.load_cert_chain` instead, or let :func:`ssl." +#~ "create_default_context` select the system's trusted CA certificates for " +#~ "you." +#~ msgstr "" +#~ "*keyfile* y *certfile* están obsoletos en favor de *context*. Por favor " +#~ "utilice :meth:`ssl.SSLContext.load_cert_chain` en su lugar, o permita " +#~ "que :func:`ssl.create_default_context` seleccione el sistema de " +#~ "certificados CA de confianza para usted." diff --git a/library/posix.po b/library/posix.po index 5b1f51b6a9..0f616f515a 100644 --- a/library/posix.po +++ b/library/posix.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-01-15 09:58+0100\n" "Last-Translator: Juan Biondi \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/posix.rst:2 msgid ":mod:`posix` --- The most common POSIX system calls" @@ -163,3 +163,20 @@ msgstr "" "también que la actualización :data:`os.environ` hará que este diccionario " "sea obsoleto. El uso de la versión del módulo :mod:`os` de esto se " "recomienda sobre el acceso directo al módulo :mod:`posix`." + +#: ../Doc/library/posix.rst:14 +msgid "module" +msgstr "" + +#: ../Doc/library/posix.rst:14 +msgid "os" +msgstr "" + +#: ../Doc/library/posix.rst:34 +#, fuzzy +msgid "large files" +msgstr "Soporte de archivos grandes" + +#: ../Doc/library/posix.rst:34 +msgid "file" +msgstr "" diff --git a/library/pprint.po b/library/pprint.po index 0741c47aeb..6c7d59582e 100644 --- a/library/pprint.po +++ b/library/pprint.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-05-07 18:59-0400\n" "Last-Translator: Pedro Aarón \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/pprint.rst:2 msgid ":mod:`pprint` --- Data pretty printer" @@ -91,9 +90,9 @@ msgstr "" #, fuzzy msgid "" "*stream* (default ``sys.stdout``) is a :term:`file-like object` to which the " -"output will be written by calling its :meth:`write` method. If both *stream* " -"and ``sys.stdout`` are ``None``, then :meth:`~PrettyPrinter.pprint` silently " -"returns." +"output will be written by calling its :meth:`!write` method. If both " +"*stream* and ``sys.stdout`` are ``None``, then :meth:`~PrettyPrinter.pprint` " +"silently returns." msgstr "" "*stream* (por defecto ``sys.stdout``) es un :term:`file-like object` el cual " "la salida va a ser escrita usando el :meth:`write`. Si tanto *stream* como " @@ -253,18 +252,24 @@ msgstr "" "retorna ``False`` para objetos recursivos." #: ../Doc/library/pprint.rst:174 -msgid "Determine if *object* requires a recursive representation." -msgstr "Determina si *object* requiere una representación recursiva." +msgid "" +"Determine if *object* requires a recursive representation. This function is " +"subject to the same limitations as noted in :func:`saferepr` below and may " +"raise an :exc:`RecursionError` if it fails to detect a recursive object." +msgstr "" -#: ../Doc/library/pprint.rst:177 +#: ../Doc/library/pprint.rst:179 msgid "One more support function is also defined:" msgstr "Una función extra de soporte es también definida:" -#: ../Doc/library/pprint.rst:181 +#: ../Doc/library/pprint.rst:183 +#, fuzzy msgid "" -"Return a string representation of *object*, protected against recursive data " -"structures. If the representation of *object* exposes a recursive entry, " -"the recursive reference will be represented as ````. The representation is not otherwise formatted." msgstr "" "Retorna una representación en forma de cadena de caracteres de *object*, que " @@ -273,16 +278,16 @@ msgstr "" "representará como ````. Además, la " "representación no tendrá otro formato." -#: ../Doc/library/pprint.rst:193 +#: ../Doc/library/pprint.rst:197 msgid "PrettyPrinter Objects" msgstr "Objetos *PrettyPrinter*" -#: ../Doc/library/pprint.rst:195 +#: ../Doc/library/pprint.rst:199 msgid ":class:`PrettyPrinter` instances have the following methods:" msgstr "" "Las instancias de :class:`PrettyPrinter` tienen los siguientes métodos:" -#: ../Doc/library/pprint.rst:200 +#: ../Doc/library/pprint.rst:204 msgid "" "Return the formatted representation of *object*. This takes into account " "the options passed to the :class:`PrettyPrinter` constructor." @@ -290,7 +295,7 @@ msgstr "" "Retorna la representación formateada de *object*. Tiene en cuenta las " "opciones pasadas al constructor de la clase :class:`PrettyPrinter`." -#: ../Doc/library/pprint.rst:206 +#: ../Doc/library/pprint.rst:210 msgid "" "Print the formatted representation of *object* on the configured stream, " "followed by a newline." @@ -298,7 +303,7 @@ msgstr "" "Imprime la representación formateada de *object* en la secuencia " "configurada, seguida de una nueva línea." -#: ../Doc/library/pprint.rst:209 +#: ../Doc/library/pprint.rst:213 msgid "" "The following methods provide the implementations for the corresponding " "functions of the same names. Using these methods on an instance is slightly " @@ -310,7 +315,7 @@ msgstr "" "es algo más eficiente, ya que no es necesario crear nuevos objetos :class:" "`PrettyPrinter`." -#: ../Doc/library/pprint.rst:219 +#: ../Doc/library/pprint.rst:223 msgid "" "Determine if the formatted representation of the object is \"readable,\" or " "can be used to reconstruct the value using :func:`eval`. Note that this " @@ -324,11 +329,11 @@ msgstr "" "*depth* de :class:`PrettyPrinter` es proporcionado y el objeto es más " "profundo de lo permitido, también se retorna ``False``." -#: ../Doc/library/pprint.rst:228 +#: ../Doc/library/pprint.rst:232 msgid "Determine if the object requires a recursive representation." msgstr "Determina si *object* requiere una representación recursiva." -#: ../Doc/library/pprint.rst:230 +#: ../Doc/library/pprint.rst:234 msgid "" "This method is provided as a hook to allow subclasses to modify the way " "objects are converted to strings. The default implementation uses the " @@ -340,7 +345,7 @@ msgstr "" "implementación por defecto utiliza la implementación interna de :func:" "`saferepr`." -#: ../Doc/library/pprint.rst:237 +#: ../Doc/library/pprint.rst:241 msgid "" "Returns three values: the formatted version of *object* as a string, a flag " "indicating whether the result is readable, and a flag indicating whether " @@ -373,11 +378,11 @@ msgstr "" "llamadas recursivas sucesivas deben pasar un valor menor que el de la " "llamada actual." -#: ../Doc/library/pprint.rst:255 +#: ../Doc/library/pprint.rst:259 msgid "Example" msgstr "Ejemplo" -#: ../Doc/library/pprint.rst:257 +#: ../Doc/library/pprint.rst:261 msgid "" "To demonstrate several uses of the :func:`pprint` function and its " "parameters, let's fetch information about a project from `PyPI `_::" -#: ../Doc/library/pprint.rst:266 +#: ../Doc/library/pprint.rst:270 msgid "In its basic form, :func:`pprint` shows the whole object::" msgstr "" "En su forma básica, la función :func:`pprint` muestra el objeto completo::" -#: ../Doc/library/pprint.rst:322 +#: ../Doc/library/pprint.rst:326 msgid "" "The result can be limited to a certain *depth* (ellipsis is used for deeper " "contents)::" @@ -399,7 +404,7 @@ msgstr "" "El resultado puede limitarse a una cierta profundidad asignando un valor al " "argumento *depth* (``...`` se utiliza para contenidos más \"profundos\"):" -#: ../Doc/library/pprint.rst:368 +#: ../Doc/library/pprint.rst:372 msgid "" "Additionally, maximum character *width* can be suggested. If a long object " "cannot be split, the specified width will be exceeded::" @@ -407,3 +412,22 @@ msgstr "" "Además, se puede establecer un valor máximo de caracteres por línea " "asignando un valor al parámetro *width*. Si un objeto largo no se puede " "dividir, el valor dado al ancho se anulará y será excedido::" + +#: ../Doc/library/pprint.rst:39 +msgid "..." +msgstr "" + +#: ../Doc/library/pprint.rst:39 +msgid "placeholder" +msgstr "" + +#: ../Doc/library/pprint.rst:162 ../Doc/library/pprint.rst:221 +msgid "built-in function" +msgstr "" + +#: ../Doc/library/pprint.rst:162 ../Doc/library/pprint.rst:221 +msgid "eval" +msgstr "" + +#~ msgid "Determine if *object* requires a recursive representation." +#~ msgstr "Determina si *object* requiere una representación recursiva." diff --git a/library/profile.po b/library/profile.po index 7d92c99e9b..df225cbc1e 100644 --- a/library/profile.po +++ b/library/profile.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-03-14 20:55-0500\n" "Last-Translator: Rodrigo Tobar \n" -"Language-Team: python-doc-es\n" "Language: es_CO\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/profile.rst:5 msgid "The Python Profilers" @@ -133,10 +132,11 @@ msgstr "" "perfil como los siguientes::" #: ../Doc/library/profile.rst:83 +#, fuzzy msgid "" "The first line indicates that 214 calls were monitored. Of those calls, 207 " "were :dfn:`primitive`, meaning that the call was not induced via recursion. " -"The next line: ``Ordered by: cumulative name``, indicates that the text " +"The next line: ``Ordered by: cumulative time``, indicates that the text " "string in the far right column was used to sort the output. The column " "headings include:" msgstr "" @@ -1332,3 +1332,12 @@ msgstr "" "Python 3.3 agrega varias funciones nuevas en :mod:`time` que se puede usar " "para realizar mediciones precisas del proceso o el tiempo del reloj de pared " "(*wall-clock time*). Por ejemplo, vea :func:`time.perf_counter`." + +#: ../Doc/library/profile.rst:16 +#, fuzzy +msgid "deterministic profiling" +msgstr "¿Qué es el perfil determinista?" + +#: ../Doc/library/profile.rst:16 +msgid "profiling, deterministic" +msgstr "" diff --git a/library/pty.po b/library/pty.po index da602d0897..701c4ae16c 100644 --- a/library/pty.po +++ b/library/pty.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-16 21:42+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-04 21:47+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" -"Generated-By: Babel 2.9.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/pty.rst:2 msgid ":mod:`pty` --- Pseudo-terminal utilities" @@ -153,9 +153,10 @@ msgstr "" "hijo." #: ../Doc/library/pty.rst:74 +#, fuzzy msgid "" -":func:`waitstatus_to_exitcode` can be used to convert the exit status into " -"an exit code." +":func:`os.waitstatus_to_exitcode` can be used to convert the exit status " +"into an exit code." msgstr "" ":func:`waitstatus_to_exitcode` se puede utilizar para convertir el estado de " "salida en un código de salida." diff --git a/library/pwd.po b/library/pwd.po index d98138e209..285afa0278 100644 --- a/library/pwd.po +++ b/library/pwd.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-13 12:56-0300\n" "Last-Translator: Alfonso Areiza Guerra \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/pwd.rst:2 msgid ":mod:`pwd` --- The password database" @@ -35,11 +34,12 @@ msgstr "" "contraseñas de Unix. Está disponible en todas las versiones de Unix." # fuzzy +#: ../Doc/includes/wasm-notavail.rst:3 #, fuzzy msgid ":ref:`Availability `: not Emscripten, not WASI." msgstr ":ref:`Availability `: ni Emscripten, ni WASI." -#: ../Doc/library/cpython/Doc/includes/wasm-notavail.rst:5 +#: ../Doc/includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly platforms " "``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for " @@ -223,3 +223,11 @@ msgstr "Módulo :mod:`spwd`" msgid "An interface to the shadow password database, similar to this." msgstr "" "Una interfaz para la base de datos de contraseñas ocultas, similar a esta." + +#: ../Doc/library/pwd.rst:42 +msgid "module" +msgstr "" + +#: ../Doc/library/pwd.rst:42 +msgid "crypt" +msgstr "" diff --git a/library/py_compile.po b/library/py_compile.po index 1cf23f31e5..dc9d4d469d 100644 --- a/library/py_compile.po +++ b/library/py_compile.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-04 21:51+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/py_compile.rst:2 msgid ":mod:`py_compile` --- Compile Python source files" @@ -299,3 +299,11 @@ msgid "Utilities to compile all Python source files in a directory tree." msgstr "" "Utilidades para compilar todos los archivos fuente Python en el árbol del " "directorio." + +#: ../Doc/library/py_compile.rst:12 +msgid "file" +msgstr "" + +#: ../Doc/library/py_compile.rst:12 +msgid "byte-code" +msgstr "" diff --git a/library/pydoc.po b/library/pydoc.po index 0c18a3a447..b683883e32 100644 --- a/library/pydoc.po +++ b/library/pydoc.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-16 21:42+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-07-14 13:47-0500\n" "Last-Translator: Adolfo Hristo David Roque Gámez \n" -"Language-Team: python-doc-es\n" "Language: es_PE\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" -"Generated-By: Babel 2.9.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/pydoc.rst:2 msgid ":mod:`pydoc` --- Documentation generator and online help system" @@ -141,13 +141,14 @@ msgstr "" "cadena de documentación." #: ../Doc/library/pydoc.rst:67 +#, fuzzy msgid "" "You can also use :program:`pydoc` to start an HTTP server on the local " "machine that will serve documentation to visiting web browsers. :program:" -"`pydoc -p 1234` will start a HTTP server on port 1234, allowing you to " -"browse the documentation at ``http://localhost:1234/`` in your preferred web " -"browser. Specifying ``0`` as the port number will select an arbitrary unused " -"port." +"`python -m pydoc -p 1234` will start a HTTP server on port 1234, allowing " +"you to browse the documentation at ``http://localhost:1234/`` in your " +"preferred web browser. Specifying ``0`` as the port number will select an " +"arbitrary unused port." msgstr "" "También puede utilizar :program:`pydoc` para iniciar un servidor HTTP en la " "máquina local que proporcionará documentación a los navegadores web " @@ -157,12 +158,13 @@ msgstr "" "número de puerto, se seleccionará un puerto arbitrario no utilizado." #: ../Doc/library/pydoc.rst:73 +#, fuzzy msgid "" -":program:`pydoc -n ` will start the server listening at the given " -"hostname. By default the hostname is 'localhost' but if you want the server " -"to be reached from other machines, you may want to change the host name that " -"the server responds to. During development this is especially useful if you " -"want to run pydoc from within a container." +":program:`python -m pydoc -n ` will start the server listening at " +"the given hostname. By default the hostname is 'localhost' but if you want " +"the server to be reached from other machines, you may want to change the " +"host name that the server responds to. During development this is " +"especially useful if you want to run pydoc from within a container." msgstr "" ":program:`pydoc -n ` empezará el servidor escuchando al *hostname* " "(nombre del servidor) dado. Por defecto, el nombre del servidor es " @@ -172,11 +174,12 @@ msgstr "" "dentro de un contenedor." #: ../Doc/library/pydoc.rst:79 +#, fuzzy msgid "" -":program:`pydoc -b` will start the server and additionally open a web " -"browser to a module index page. Each served page has a navigation bar at " -"the top where you can *Get* help on an individual item, *Search* all modules " -"with a keyword in their synopsis line, and go to the *Module index*, " +":program:`python -m pydoc -b` will start the server and additionally open a " +"web browser to a module index page. Each served page has a navigation bar " +"at the top where you can *Get* help on an individual item, *Search* all " +"modules with a keyword in their synopsis line, and go to the *Module index*, " "*Topics* and *Keywords* pages." msgstr "" ":program:`pydoc -b` empezará un servidor y adicionalmente abrirá un buscador " @@ -232,3 +235,19 @@ msgstr "" #: ../Doc/library/pydoc.rst:108 msgid "Added the ``-n`` option." msgstr "Se añadió la opción ``-n``." + +#: ../Doc/library/pydoc.rst:12 +msgid "documentation" +msgstr "" + +#: ../Doc/library/pydoc.rst:12 +msgid "generation" +msgstr "" + +#: ../Doc/library/pydoc.rst:12 +msgid "online" +msgstr "" + +#: ../Doc/library/pydoc.rst:12 +msgid "help" +msgstr "" diff --git a/library/pyexpat.po b/library/pyexpat.po index 27a43759d8..6334351167 100644 --- a/library/pyexpat.po +++ b/library/pyexpat.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-11-03 20:53-0300\n" "Last-Translator: \n" "Language: es_AR\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/pyexpat.rst:2 msgid ":mod:`xml.parsers.expat` --- Fast XML parsing using Expat" @@ -1177,3 +1177,15 @@ msgstr "" "estándares apropiados. Por ejemplo, \"UTF-8\" es válido, pero \"UTF8\" no lo " "es. Consulte https://www.w3.org/TR/2006/REC-xml11-20060816/#NT-EncodingDecl " "y https://www.iana.org/assignments/character-sets/character-sets.xhtml." + +#: ../Doc/library/pyexpat.rst:26 +msgid "Expat" +msgstr "" + +#: ../Doc/library/pyexpat.rst:36 +msgid "module" +msgstr "" + +#: ../Doc/library/pyexpat.rst:36 +msgid "pyexpat" +msgstr "" diff --git a/library/queue.po b/library/queue.po index 1aaca58c8d..8755a6815f 100644 --- a/library/queue.po +++ b/library/queue.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-17 12:05-0300\n" "Last-Translator: \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/queue.rst:2 msgid ":mod:`queue` --- A synchronized queue class" @@ -43,13 +42,14 @@ msgstr "" "`Queue` de este módulo implementa toda la semántica de bloqueo necesaria." #: ../Doc/library/queue.rst:16 +#, fuzzy msgid "" "The module implements three types of queue, which differ only in the order " "in which the entries are retrieved. In a :abbr:`FIFO (first-in, first-out)` " -"queue, the first tasks added are the first retrieved. In a :abbr:`LIFO (last-" -"in, first-out)` queue, the most recently added entry is the first retrieved " -"(operating like a stack). With a priority queue, the entries are kept " -"sorted (using the :mod:`heapq` module) and the lowest valued entry is " +"queue, the first tasks added are the first retrieved. In a :abbr:`LIFO " +"(last-in, first-out)` queue, the most recently added entry is the first " +"retrieved (operating like a stack). With a priority queue, the entries are " +"kept sorted (using the :mod:`heapq` module) and the lowest valued entry is " "retrieved first." msgstr "" "El módulo implementa tres tipos de cola, que difieren sólo en el orden en " @@ -129,9 +129,10 @@ msgstr "" "*maxsize* es menor o igual a cero, el tamaño de la cola es infinito." #: ../Doc/library/queue.rst:59 +#, fuzzy msgid "" "The lowest valued entries are retrieved first (the lowest valued entry is " -"the one returned by ``sorted(list(entries))[0]``). A typical pattern for " +"the one that would be returned by ``min(entries)``). A typical pattern for " "entries is a tuple in the form: ``(priority_number, data)``." msgstr "" "Las entradas de menor valor se recuperan primero (la entrada de menor valor " @@ -221,14 +222,15 @@ msgstr "" "posterior a put() no se bloquee." #: ../Doc/library/queue.rst:130 +#, fuzzy msgid "" -"Put *item* into the queue. If optional args *block* is true and *timeout* is " -"``None`` (the default), block if necessary until a free slot is available. " -"If *timeout* is a positive number, it blocks at most *timeout* seconds and " -"raises the :exc:`Full` exception if no free slot was available within that " -"time. Otherwise (*block* is false), put an item on the queue if a free slot " -"is immediately available, else raise the :exc:`Full` exception (*timeout* is " -"ignored in that case)." +"Put *item* into the queue. If optional args *block* is true and *timeout* " +"is ``None`` (the default), block if necessary until a free slot is " +"available. If *timeout* is a positive number, it blocks at most *timeout* " +"seconds and raises the :exc:`Full` exception if no free slot was available " +"within that time. Otherwise (*block* is false), put an item on the queue if " +"a free slot is immediately available, else raise the :exc:`Full` exception " +"(*timeout* is ignored in that case)." msgstr "" "Pone el *item* en la cola. Si el argumento opcional *block* es verdadero y " "*timeout* es ``None`` (el predeterminado), bloquea si es necesario hasta que " @@ -243,9 +245,9 @@ msgstr "" msgid "Equivalent to ``put(item, block=False)``." msgstr "Equivalente a ``put(item, block=False)``." -#: ../Doc/library/queue.rst:146 +#: ../Doc/library/queue.rst:146 ../Doc/library/queue.rst:258 msgid "" -"Remove and return an item from the queue. If optional args *block* is true " +"Remove and return an item from the queue. If optional args *block* is true " "and *timeout* is ``None`` (the default), block if necessary until an item is " "available. If *timeout* is a positive number, it blocks at most *timeout* " "seconds and raises the :exc:`Empty` exception if no item was available " @@ -253,20 +255,21 @@ msgid "" "immediately available, else raise the :exc:`Empty` exception (*timeout* is " "ignored in that case)." msgstr "" -"Retira y retorna un elemento de la cola. Si el argumento opcional *block* es " -"verdadero y *timeout* es ``None`` (el predeterminado), bloquea si es " +"Retira y retorna un elemento de la cola. Si los argumentos opcionales " +"*block* son true y *timeout* es ``None`` (el predeterminado), bloquea si es " "necesario hasta que un elemento esté disponible. Si *timeout* es un número " -"positivo, bloquea como máximo *timeout* segundos y aumenta la excepción :exc:" +"positivo, bloquea como máximo *timeout* segundos y lanza la excepción :exc:" "`Empty` si no había ningún elemento disponible en ese tiempo. De lo " "contrario (*block* es falso), retorna un elemento si uno está disponible " "inmediatamente, o bien lanza la excepción :exc:`Empty` (*timeout* es " "ignorado en ese caso)." #: ../Doc/library/queue.rst:153 +#, fuzzy msgid "" "Prior to 3.0 on POSIX systems, and for all versions on Windows, if *block* " "is true and *timeout* is ``None``, this operation goes into an " -"uninterruptible wait on an underlying lock. This means that no exceptions " +"uninterruptible wait on an underlying lock. This means that no exceptions " "can occur, and in particular a SIGINT will not trigger a :exc:" "`KeyboardInterrupt`." msgstr "" @@ -325,11 +328,12 @@ msgstr "" "procesado." #: ../Doc/library/queue.rst:185 +#, fuzzy msgid "" "The count of unfinished tasks goes up whenever an item is added to the " "queue. The count goes down whenever a consumer thread calls :meth:" "`task_done` to indicate that the item was retrieved and all work on it is " -"complete. When the count of unfinished tasks drops to zero, :meth:`join` " +"complete. When the count of unfinished tasks drops to zero, :meth:`join` " "unblocks." msgstr "" "El conteo de tareas sin terminar sube cada vez que se añade un elemento a la " @@ -362,8 +366,9 @@ msgstr "" "un get() posterior no se bloquee." #: ../Doc/library/queue.rst:230 +#, fuzzy msgid "" -"Return ``True`` if the queue is empty, ``False`` otherwise. If empty() " +"Return ``True`` if the queue is empty, ``False`` otherwise. If empty() " "returns ``False`` it doesn't guarantee that a subsequent call to get() will " "not block." msgstr "" @@ -404,25 +409,6 @@ msgstr "" "Equivalente a ``put(item, block=False)``, siempre y cuando sea compatible " "con :meth:`Queue.put_nowait``." -#: ../Doc/library/queue.rst:258 -msgid "" -"Remove and return an item from the queue. If optional args *block* is true " -"and *timeout* is ``None`` (the default), block if necessary until an item is " -"available. If *timeout* is a positive number, it blocks at most *timeout* " -"seconds and raises the :exc:`Empty` exception if no item was available " -"within that time. Otherwise (*block* is false), return an item if one is " -"immediately available, else raise the :exc:`Empty` exception (*timeout* is " -"ignored in that case)." -msgstr "" -"Retira y retorna un elemento de la cola. Si los argumentos opcionales " -"*block* son true y *timeout* es ``None`` (el predeterminado), bloquea si es " -"necesario hasta que un elemento esté disponible. Si *timeout* es un número " -"positivo, bloquea como máximo *timeout* segundos y lanza la excepción :exc:" -"`Empty` si no había ningún elemento disponible en ese tiempo. De lo " -"contrario (*block* es falso), retorna un elemento si uno está disponible " -"inmediatamente, o bien lanza la excepción :exc:`Empty` (*timeout* es " -"ignorado en ese caso)." - #: ../Doc/library/queue.rst:275 msgid "Class :class:`multiprocessing.Queue`" msgstr "Clase :class:`multiprocessing.Queue`" @@ -446,3 +432,21 @@ msgstr "" "límites con operaciones atómicas rápidas :meth:`~collections.deque.append` " "y :meth:`~collections.deque.popleft` que no requieren bloqueo y también " "soportan indexación." + +#~ msgid "" +#~ "Remove and return an item from the queue. If optional args *block* is " +#~ "true and *timeout* is ``None`` (the default), block if necessary until an " +#~ "item is available. If *timeout* is a positive number, it blocks at most " +#~ "*timeout* seconds and raises the :exc:`Empty` exception if no item was " +#~ "available within that time. Otherwise (*block* is false), return an item " +#~ "if one is immediately available, else raise the :exc:`Empty` exception " +#~ "(*timeout* is ignored in that case)." +#~ msgstr "" +#~ "Retira y retorna un elemento de la cola. Si el argumento opcional *block* " +#~ "es verdadero y *timeout* es ``None`` (el predeterminado), bloquea si es " +#~ "necesario hasta que un elemento esté disponible. Si *timeout* es un " +#~ "número positivo, bloquea como máximo *timeout* segundos y aumenta la " +#~ "excepción :exc:`Empty` si no había ningún elemento disponible en ese " +#~ "tiempo. De lo contrario (*block* es falso), retorna un elemento si uno " +#~ "está disponible inmediatamente, o bien lanza la excepción :exc:`Empty` " +#~ "(*timeout* es ignorado en ese caso)." diff --git a/library/quopri.po b/library/quopri.po index db773c0530..4e097d995d 100644 --- a/library/quopri.po +++ b/library/quopri.po @@ -1,23 +1,25 @@ # Copyright (C) 2001-2020, Python Software Foundation # This file is distributed under the same license as the Python package. # Maintained by the python-doc-es workteam. -# docs-es@python.org / https://mail.python.org/mailman3/lists/docs-es.python.org/ -# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get the list of volunteers +# docs-es@python.org / +# https://mail.python.org/mailman3/lists/docs-es.python.org/ +# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get +# the list of volunteers # msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-06 11:59-0400\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-11-11 09:18+0100\n" +"Last-Translator: Juan Biondi \n" +"Language: es\n" "Language-Team: python-doc-es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: Juan Biondi \n" -"Language: es\n" -"X-Generator: Poedit 2.4.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/quopri.rst:2 msgid ":mod:`quopri` --- Encode and decode MIME quoted-printable data" @@ -112,3 +114,19 @@ msgstr "Módulo :mod:`base64`" #: ../Doc/library/quopri.rst:63 msgid "Encode and decode MIME base64 data" msgstr "Codificar y decodificar datos MIME base64" + +#: ../Doc/library/quopri.rst:9 +msgid "quoted-printable" +msgstr "" + +#: ../Doc/library/quopri.rst:9 +msgid "encoding" +msgstr "" + +#: ../Doc/library/quopri.rst:9 +msgid "MIME" +msgstr "" + +#: ../Doc/library/quopri.rst:9 +msgid "quoted-printable encoding" +msgstr "" diff --git a/library/random.po b/library/random.po index bafc94205c..34ba49df84 100644 --- a/library/random.po +++ b/library/random.po @@ -7,17 +7,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.7\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-01-27 17:19-0300\n" "Last-Translator: Adolfo Hristo David Roque Gámez \n" -"Language-Team: \n" "Language: es_ES\n" +"Language-Team: \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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/random.rst:2 msgid ":mod:`random` --- Generate pseudo-random numbers" @@ -59,11 +58,12 @@ msgstr "" "distribución de von Mises." #: ../Doc/library/random.rst:23 +#, fuzzy msgid "" "Almost all module functions depend on the basic function :func:`.random`, " -"which generates a random float uniformly in the semi-open range [0.0, 1.0). " -"Python uses the Mersenne Twister as the core generator. It produces 53-bit " -"precision floats and has a period of 2\\*\\*19937-1. The underlying " +"which generates a random float uniformly in the half-open range ``0.0 <= X < " +"1.0``. Python uses the Mersenne Twister as the core generator. It produces " +"53-bit precision floats and has a period of 2\\*\\*19937-1. The underlying " "implementation in C is both fast and threadsafe. The Mersenne Twister is " "one of the most extensively tested random number generators in existence. " "However, being completely deterministic, it is not suitable for all " @@ -244,27 +244,28 @@ msgid "Functions for integers" msgstr "Funciones para enteros" #: ../Doc/library/random.rst:126 -msgid "" -"Return a randomly selected element from ``range(start, stop, step)``. This " -"is equivalent to ``choice(range(start, stop, step))``, but doesn't actually " -"build a range object." +msgid "Return a randomly selected element from ``range(start, stop, step)``." msgstr "" -"Retorna un elemento de ``range(start, stop, step)`` seleccionado " -"aleatoriamente. Esto es equivalente a ``choice(range(start, stop, step))``, " -"pero en realidad no crea un objeto rango." -#: ../Doc/library/random.rst:130 +#: ../Doc/library/random.rst:128 msgid "" -"The positional argument pattern matches that of :func:`range`. Keyword " -"arguments should not be used because the function may use them in unexpected " -"ways." +"This is roughly equivalent to ``choice(range(start, stop, step))`` but " +"supports arbitrarily large ranges and is optimized for common cases." +msgstr "" + +#: ../Doc/library/random.rst:131 +msgid "The positional argument pattern matches the :func:`range` function." msgstr "" -"El patrón de argumento posicional coincide con el de :func:`range`. Los " -"argumentos no deben usarse porque la función puede usarlos de forma " -"inesperada." #: ../Doc/library/random.rst:133 msgid "" +"Keyword arguments should not be used because they can be interpreted in " +"unexpected ways. For example ``randrange(start=100)`` is interpreted as " +"``randrange(0, 100, 1)``." +msgstr "" + +#: ../Doc/library/random.rst:137 +msgid "" ":meth:`randrange` is more sophisticated about producing equally distributed " "values. Formerly it used a style like ``int(random()*n)`` which could " "produce slightly uneven distributions." @@ -273,26 +274,18 @@ msgstr "" "distribuidos. Anteriormente utilizaba un estilo como ``int(random()*n)`` el " "cual puede producir distribuciones ligeramente desiguales." -#: ../Doc/library/random.rst:138 +#: ../Doc/library/random.rst:142 +#, fuzzy msgid "" -"The automatic conversion of non-integer types to equivalent integers is " -"deprecated. Currently ``randrange(10.0)`` is losslessly converted to " -"``randrange(10)``. In the future, this will raise a :exc:`TypeError`." +"Automatic conversion of non-integer types is no longer supported. Calls such " +"as ``randrange(10.0)`` and ``randrange(Fraction(10, 1))`` now raise a :exc:" +"`TypeError`." msgstr "" "La conversión automática de tipos que no son enteros a enteros equivalentes " "está obsoleta. Actualmente ``randrange(10.0)`` se convierte sin pérdidas a " "``randrange(10)``. En el futuro, esto lanzará un :exc:`TypeError`." -#: ../Doc/library/random.rst:143 -msgid "" -"The exception raised for non-integral values such as ``randrange(10.5)`` or " -"``randrange('10')`` will be changed from :exc:`ValueError` to :exc:" -"`TypeError`." -msgstr "" -"La excepción que se lanza de valores no enteros como ``randrange(10.5)`` o " -"``randrange('10')`` se cambiará de :exc:`ValueError` a :exc:`TypeError`." - -#: ../Doc/library/random.rst:150 +#: ../Doc/library/random.rst:149 msgid "" "Return a random integer *N* such that ``a <= N <= b``. Alias for " "``randrange(a, b+1)``." @@ -300,10 +293,11 @@ msgstr "" "Retorna un entero aleatorio *N* tal que ``a <= N <= b``. Alias de " "``randrange(a, b+1)``." -#: ../Doc/library/random.rst:155 +#: ../Doc/library/random.rst:154 +#, fuzzy msgid "" "Returns a non-negative Python integer with *k* random bits. This method is " -"supplied with the MersenneTwister generator and some other generators may " +"supplied with the Mersenne Twister generator and some other generators may " "also provide it as an optional part of the API. When available, :meth:" "`getrandbits` enables :meth:`randrange` to handle arbitrarily large ranges." msgstr "" @@ -313,15 +307,15 @@ msgstr "" "disponible, :meth:`getrandbits` permite a :meth:`randrange` manejar rangos " "arbitrariamente grandes." -#: ../Doc/library/random.rst:161 +#: ../Doc/library/random.rst:160 msgid "This method now accepts zero for *k*." msgstr "Este método ahora acepta cero para *k*." -#: ../Doc/library/random.rst:166 +#: ../Doc/library/random.rst:165 msgid "Functions for sequences" msgstr "Funciones para secuencias" -#: ../Doc/library/random.rst:170 +#: ../Doc/library/random.rst:169 msgid "" "Return a random element from the non-empty sequence *seq*. If *seq* is " "empty, raises :exc:`IndexError`." @@ -329,7 +323,7 @@ msgstr "" "Retorna un elemento aleatorio de una secuencia *seq* no vacía. Si *seq* está " "vacía, lanza :exc:`IndexError`." -#: ../Doc/library/random.rst:175 +#: ../Doc/library/random.rst:174 msgid "" "Return a *k* sized list of elements chosen from the *population* with " "replacement. If the *population* is empty, raises :exc:`IndexError`." @@ -337,7 +331,7 @@ msgstr "" "Retorna una lista de elementos de tamaño *k* elegidos de la *population* con " "reemplazo. Si la *population* está vacía, lanza :exc:`IndexError`." -#: ../Doc/library/random.rst:178 +#: ../Doc/library/random.rst:177 msgid "" "If a *weights* sequence is specified, selections are made according to the " "relative weights. Alternatively, if a *cum_weights* sequence is given, the " @@ -356,7 +350,7 @@ msgstr "" "convierten en pesos cumulativos antes de hacer selecciones, por lo cual " "suplir los pesos cumulativos ahorra trabajo." -#: ../Doc/library/random.rst:187 +#: ../Doc/library/random.rst:186 msgid "" "If neither *weights* nor *cum_weights* are specified, selections are made " "with equal probability. If a weights sequence is supplied, it must be the " @@ -368,7 +362,7 @@ msgstr "" "ponderaciones, debe tener la misma longitud que la secuencia *population*. " "Es un :exc:`TypeError` especificar ambas *weights* y *cum_weights*." -#: ../Doc/library/random.rst:192 +#: ../Doc/library/random.rst:191 msgid "" "The *weights* or *cum_weights* can use any numeric type that interoperates " "with the :class:`float` values returned by :func:`random` (that includes " @@ -382,7 +376,7 @@ msgstr "" "asume que los pesos son no negativos y finitos. Se lanza un :exc:" "`ValueError` si todos los pesos son cero." -#: ../Doc/library/random.rst:198 +#: ../Doc/library/random.rst:197 msgid "" "For a given seed, the :func:`choices` function with equal weighting " "typically produces a different sequence than repeated calls to :func:" @@ -398,15 +392,15 @@ msgstr "" "por :func:`choice` emplea por defecto aritmética de enteros con selecciones " "repetidas para evitar pequeños sesgos de errores de redondeo." -#: ../Doc/library/random.rst:207 +#: ../Doc/library/random.rst:206 msgid "Raises a :exc:`ValueError` if all weights are zero." msgstr "Genera un :exc:`ValueError` si todos los pesos son cero." -#: ../Doc/library/random.rst:213 +#: ../Doc/library/random.rst:212 msgid "Shuffle the sequence *x* in place." msgstr "Mezcla la secuencia *x* in-situ." -#: ../Doc/library/random.rst:215 +#: ../Doc/library/random.rst:214 msgid "" "To shuffle an immutable sequence and return a new shuffled list, use " "``sample(x, k=len(x))`` instead." @@ -414,7 +408,7 @@ msgstr "" "Para mezclar una secuencia inmutable y retornar una nueva lista mezclada, " "utilice ``muestra(x, k=len(x))`` en su lugar." -#: ../Doc/library/random.rst:218 +#: ../Doc/library/random.rst:217 msgid "" "Note that even for small ``len(x)``, the total number of permutations of *x* " "can quickly grow larger than the period of most random number generators. " @@ -429,11 +423,11 @@ msgstr "" "una secuencia de longitud 2080 es la más grande que cabe dentro del período " "del generador de números aleatorios de Mersenne Twister." -#: ../Doc/library/random.rst:225 +#: ../Doc/library/random.rst:224 msgid "The optional parameter *random*." msgstr "El parámetro opcional *random*." -#: ../Doc/library/random.rst:230 +#: ../Doc/library/random.rst:229 #, fuzzy msgid "" "Return a *k* length list of unique elements chosen from the population " @@ -443,7 +437,7 @@ msgstr "" "secuencia de población o conjunto. Se utiliza para el muestreo aleatorio sin " "reemplazo." -#: ../Doc/library/random.rst:233 +#: ../Doc/library/random.rst:232 msgid "" "Returns a new list containing elements from the population while leaving the " "original population unchanged. The resulting list is in selection order so " @@ -457,7 +451,7 @@ msgstr "" "Esto permite que los ganadores de la rifa (la muestra) se dividan en primer " "premio y ganadores del segundo lugar (los subsectores)." -#: ../Doc/library/random.rst:239 +#: ../Doc/library/random.rst:238 msgid "" "Members of the population need not be :term:`hashable` or unique. If the " "population contains repeats, then each occurrence is a possible selection in " @@ -467,7 +461,7 @@ msgstr "" "Si la población incluye repeticiones, entonces cada ocurrencia es una " "posible selección en la muestra." -#: ../Doc/library/random.rst:242 +#: ../Doc/library/random.rst:241 msgid "" "Repeated elements can be specified one at a time or with the optional " "keyword-only *counts* parameter. For example, ``sample(['red', 'blue'], " @@ -479,7 +473,7 @@ msgstr "" "``sample(['red', 'blue'], counts=[4, 2], k=5)`` es equivalente a " "``sample(['red', 'red', 'red', 'red', 'blue', 'blue'], k=5)``." -#: ../Doc/library/random.rst:247 +#: ../Doc/library/random.rst:246 msgid "" "To choose a sample from a range of integers, use a :func:`range` object as " "an argument. This is especially fast and space efficient for sampling from " @@ -489,7 +483,7 @@ msgstr "" "como argumento. Esto es especialmente rápido y eficiente en espacio para el " "muestreo de poblaciones grandes: ``sample(range(10000000), k=60)``." -#: ../Doc/library/random.rst:251 +#: ../Doc/library/random.rst:250 msgid "" "If the sample size is larger than the population size, a :exc:`ValueError` " "is raised." @@ -497,11 +491,11 @@ msgstr "" "Si el tamaño de la muestra es mayor que el tamaño de la población, se " "lanzará un :exc:`ValueError`." -#: ../Doc/library/random.rst:254 +#: ../Doc/library/random.rst:253 msgid "Added the *counts* parameter." msgstr "Se añadió el parámetro *counts*." -#: ../Doc/library/random.rst:259 +#: ../Doc/library/random.rst:258 msgid "" "The *population* must be a sequence. Automatic conversion of sets to lists " "is no longer supported." @@ -509,12 +503,39 @@ msgstr "" "La población debe ser una secuencia. La conversión automática de sets a " "listas ya no es compatible." -#: ../Doc/library/random.rst:266 -msgid "Real-valued distributions" +#: ../Doc/library/random.rst:262 +#, fuzzy +msgid "Discrete distributions" msgstr "Distribuciones para los nombres reales" +#: ../Doc/library/random.rst:264 +msgid "The following function generates a discrete distribution." +msgstr "" + #: ../Doc/library/random.rst:268 msgid "" +"`Binomial distribution `_. Return the number of successes for *n* independent trials with the " +"probability of success in each trial being *p*:" +msgstr "" + +#: ../Doc/library/random.rst:273 +msgid "Mathematically equivalent to::" +msgstr "" + +#: ../Doc/library/random.rst:277 +msgid "" +"The number of trials *n* should be a non-negative integer. The probability " +"of success *p* should be between ``0.0 <= p <= 1.0``. The result is an " +"integer in the range ``0 <= X <= n``." +msgstr "" + +#: ../Doc/library/random.rst:287 +msgid "Real-valued distributions" +msgstr "Distribuciones para los nombres reales" + +#: ../Doc/library/random.rst:289 +msgid "" "The following functions generate specific real-valued distributions. " "Function parameters are named after the corresponding variables in the " "distribution's equation, as used in common mathematical practice; most of " @@ -526,13 +547,15 @@ msgstr "" "la práctica matemática común.; la mayoría de estas ecuaciones se pueden " "encontrar en cualquier texto estadístico." -#: ../Doc/library/random.rst:276 -msgid "Return the next random floating point number in the range [0.0, 1.0)." +#: ../Doc/library/random.rst:297 +#, fuzzy +msgid "" +"Return the next random floating point number in the range ``0.0 <= X < 1.0``" msgstr "" "Retorna el siguiente número en coma flotante aleatorio dentro del rango " "[0.0, 1.0)." -#: ../Doc/library/random.rst:281 +#: ../Doc/library/random.rst:302 msgid "" "Return a random floating point number *N* such that ``a <= N <= b`` for ``a " "<= b`` and ``b <= N <= a`` for ``b < a``." @@ -540,7 +563,7 @@ msgstr "" "Retorna un número en coma flotante aleatorio *N* tal que ``a <= N <= b`` " "para ``a <= b`` y ``b <= N <= a`` para ``b < a``." -#: ../Doc/library/random.rst:284 +#: ../Doc/library/random.rst:305 msgid "" "The end-point value ``b`` may or may not be included in the range depending " "on floating-point rounding in the equation ``a + (b-a) * random()``." @@ -548,7 +571,7 @@ msgstr "" "El valor final ``b`` puede o no estar incluido en el rango, dependiendo del " "redondeo de coma flotante en la ecuación ``a + (b-a) * random()``." -#: ../Doc/library/random.rst:290 +#: ../Doc/library/random.rst:311 msgid "" "Return a random floating point number *N* such that ``low <= N <= high`` and " "with the specified *mode* between those bounds. The *low* and *high* bounds " @@ -561,7 +584,7 @@ msgstr "" "valor por defecto el punto medio entre los límites, dando lugar a una " "distribución simétrica." -#: ../Doc/library/random.rst:298 +#: ../Doc/library/random.rst:319 msgid "" "Beta distribution. Conditions on the parameters are ``alpha > 0`` and " "``beta > 0``. Returned values range between 0 and 1." @@ -569,7 +592,7 @@ msgstr "" "Distribución beta. Las condiciones de los parámetros son ``alpha > 0`` y " "``beta > 0``. Retorna valores dentro del rango entre 0 y 1." -#: ../Doc/library/random.rst:304 +#: ../Doc/library/random.rst:325 msgid "" "Exponential distribution. *lambd* is 1.0 divided by the desired mean. It " "should be nonzero. (The parameter would be called \"lambda\", but that is a " @@ -583,21 +606,25 @@ msgstr "" "infinito positivo si *lambd* es positivo, y de infinito negativo a 0 si " "*lambd* es negativo." -#: ../Doc/library/random.rst:313 +#: ../Doc/library/random.rst:331 +msgid "Added the default value for ``lambd``." +msgstr "" + +#: ../Doc/library/random.rst:337 msgid "" -"Gamma distribution. (*Not* the gamma function!) Conditions on the " -"parameters are ``alpha > 0`` and ``beta > 0``." +"Gamma distribution. (*Not* the gamma function!) The shape and scale " +"parameters, *alpha* and *beta*, must have positive values. (Calling " +"conventions vary and some sources define 'beta' as the inverse of the scale)." msgstr "" -"Distribución gamma. (¡*No* la función gamma!) Las condiciones en los " -"parámetros son ``alpha > 0`` y ``beta > 0``." -#: ../Doc/library/random.rst:316 +#: ../Doc/library/random.rst:342 msgid "The probability distribution function is::" msgstr "La función de distribución de la probabilidad es::" -#: ../Doc/library/random.rst:325 +#: ../Doc/library/random.rst:351 +#, fuzzy msgid "" -"Normal distribution, also called the Gaussian distribution. *mu* is the " +"Normal distribution, also called the Gaussian distribution. *mu* is the " "mean, and *sigma* is the standard deviation. This is slightly faster than " "the :func:`normalvariate` function defined below." msgstr "" @@ -605,7 +632,7 @@ msgstr "" "media y *sigma* es la desviación estándar. Es un poco más rápida que la " "función :func:`normalvariate` definida debajo." -#: ../Doc/library/random.rst:329 +#: ../Doc/library/random.rst:356 msgid "" "Multithreading note: When two threads call this function simultaneously, it " "is possible that they will receive the same return value. This can be " @@ -620,11 +647,11 @@ msgstr "" "de todas las llamadas. 3) Utilizar la función :func:`normalvariate`, más " "lenta pero segura para los hilos, en su lugar." -#: ../Doc/library/random.rst:336 ../Doc/library/random.rst:352 +#: ../Doc/library/random.rst:363 ../Doc/library/random.rst:379 msgid "*mu* and *sigma* now have default arguments." msgstr "*mu* y *sigma* ahora tienen argumentos predeterminados." -#: ../Doc/library/random.rst:342 +#: ../Doc/library/random.rst:369 msgid "" "Log normal distribution. If you take the natural logarithm of this " "distribution, you'll get a normal distribution with mean *mu* and standard " @@ -636,14 +663,14 @@ msgstr "" "desviación estándar *sigma*. *mu* puede tener cualquier valor, y *sigma* " "debe ser mayor que cero." -#: ../Doc/library/random.rst:350 +#: ../Doc/library/random.rst:377 msgid "" "Normal distribution. *mu* is the mean, and *sigma* is the standard " "deviation." msgstr "" "Distribución normal. *mu* es la media y *sigma* es la desviación estándar." -#: ../Doc/library/random.rst:358 +#: ../Doc/library/random.rst:385 msgid "" "*mu* is the mean angle, expressed in radians between 0 and 2\\*\\ *pi*, and " "*kappa* is the concentration parameter, which must be greater than or equal " @@ -655,11 +682,11 @@ msgstr "" "Si *kappa* es igual a cero, esta distribución se reduce a un ángulo " "aleatorio uniforme sobre el rango de 0 a 2\\*\\ *pi*." -#: ../Doc/library/random.rst:366 +#: ../Doc/library/random.rst:393 msgid "Pareto distribution. *alpha* is the shape parameter." msgstr "Distribución de Pareto. *alpha* es el parámetro de forma." -#: ../Doc/library/random.rst:371 +#: ../Doc/library/random.rst:398 msgid "" "Weibull distribution. *alpha* is the scale parameter and *beta* is the " "shape parameter." @@ -667,11 +694,11 @@ msgstr "" "Distribución de Weibull. *alpha* es el parámetro de escala y *beta* es el " "parámetro de forma." -#: ../Doc/library/random.rst:376 +#: ../Doc/library/random.rst:403 msgid "Alternative Generator" msgstr "Generador alternativo" -#: ../Doc/library/random.rst:380 +#: ../Doc/library/random.rst:407 msgid "" "Class that implements the default pseudo-random number generator used by " "the :mod:`random` module." @@ -679,17 +706,18 @@ msgstr "" "Esta clase implementa el generador de números pseudoaleatorios " "predeterminado que usa el módulo :mod:`random` ." -#: ../Doc/library/random.rst:383 +#: ../Doc/library/random.rst:413 +#, fuzzy msgid "" -"In the future, the *seed* must be one of the following types: :class:" -"`NoneType`, :class:`int`, :class:`float`, :class:`str`, :class:`bytes`, or :" -"class:`bytearray`." +"Formerly the *seed* could be any hashable object. Now it is limited to: :" +"class:`NoneType`, :class:`int`, :class:`float`, :class:`str`, :class:" +"`bytes`, or :class:`bytearray`." msgstr "" "En el futuro, la *semilla* debe ser de uno de los siguientes tipos: :class:" "`NoneType`, :class:`int`, :class:`float`, :class:`str`, :class:`bytes`, o :" "class:`bytearray`." -#: ../Doc/library/random.rst:390 +#: ../Doc/library/random.rst:417 msgid "" "Class that uses the :func:`os.urandom` function for generating random " "numbers from sources provided by the operating system. Not available on all " @@ -705,14 +733,15 @@ msgstr "" "`seed` no tiene efecto y es ignorado. Los métodos :meth:`getstate` y :meth:" "`setstate` lanzan :exc:`NotImplementedError` si se les llama." -#: ../Doc/library/random.rst:399 +#: ../Doc/library/random.rst:426 msgid "Notes on Reproducibility" msgstr "Notas sobre la Reproducibilidad" -#: ../Doc/library/random.rst:401 +#: ../Doc/library/random.rst:428 +#, fuzzy msgid "" "Sometimes it is useful to be able to reproduce the sequences given by a " -"pseudo-random number generator. By re-using a seed value, the same sequence " +"pseudo-random number generator. By reusing a seed value, the same sequence " "should be reproducible from run to run as long as multiple threads are not " "running." msgstr "" @@ -721,7 +750,7 @@ msgstr "" "secuencia debería ser reproducible de una ejecución a otra siempre que no se " "estén ejecutando múltiples hilos." -#: ../Doc/library/random.rst:405 +#: ../Doc/library/random.rst:432 msgid "" "Most of the random module's algorithms and seeding functions are subject to " "change across Python versions, but two aspects are guaranteed not to change:" @@ -730,7 +759,7 @@ msgstr "" "módulo aleatorio pueden cambiar entre versiones de Python, pero se garantiza " "que dos aspectos no cambien::" -#: ../Doc/library/random.rst:408 +#: ../Doc/library/random.rst:435 msgid "" "If a new seeding method is added, then a backward compatible seeder will be " "offered." @@ -738,7 +767,7 @@ msgstr "" "Si se añade un nuevo método de generación de semilla, se ofrecerá un " "generador de semilla retrocompatible." -#: ../Doc/library/random.rst:411 +#: ../Doc/library/random.rst:438 msgid "" "The generator's :meth:`~Random.random` method will continue to produce the " "same sequence when the compatible seeder is given the same seed." @@ -747,19 +776,19 @@ msgstr "" "secuencia cuando se le da la misma semilla al generador de semilla " "compatible." -#: ../Doc/library/random.rst:417 +#: ../Doc/library/random.rst:444 msgid "Examples" msgstr "Ejemplos" -#: ../Doc/library/random.rst:419 +#: ../Doc/library/random.rst:446 msgid "Basic examples::" msgstr "Ejemplos básicos::" -#: ../Doc/library/random.rst:447 +#: ../Doc/library/random.rst:474 msgid "Simulations::" msgstr "Simulaciones::" -#: ../Doc/library/random.rst:475 +#: ../Doc/library/random.rst:499 msgid "" "Example of `statistical bootstrapping `_ using resampling with replacement to estimate " @@ -769,7 +798,7 @@ msgstr "" "Bootstrapping_(statistics)>`_ utilizando el remuestreo con reemplazo para " "estimar un intervalo de confianza para la media de una muestra::" -#: ../Doc/library/random.rst:488 +#: ../Doc/library/random.rst:512 msgid "" "Example of a `resampling permutation test `_ to determine the statistical " @@ -782,14 +811,14 @@ msgstr "" "Valor_p>`_ de una diferencia observada entre los efectos de un fármaco y un " "placebo::" -#: ../Doc/library/random.rst:515 +#: ../Doc/library/random.rst:539 msgid "" "Simulation of arrival times and service deliveries for a multiserver queue::" msgstr "" "Simulación de tiempos de llegada y entrega de servicios para una cola de " "múltiples servidores::" -#: ../Doc/library/random.rst:544 +#: ../Doc/library/random.rst:568 msgid "" "`Statistics for Hackers `_ a " "video tutorial by `Jake Vanderplas `_ sobre análisis estadístico usando sólo algunos conceptos " "fundamentales incluyendo simulación, muestreo, baraja y validación cruzada." -#: ../Doc/library/random.rst:550 +#: ../Doc/library/random.rst:574 #, fuzzy msgid "" "`Economics Simulation ` in the " "class will use the new method::" @@ -880,7 +909,7 @@ msgstr "" "Todas las :ref:`distribuciones de valor real ` de " "la clase utilizarán el nuevo método::" -#: ../Doc/library/random.rst:635 +#: ../Doc/library/random.rst:660 msgid "" "The recipe is conceptually equivalent to an algorithm that chooses from all " "the multiples of 2⁻¹⁰⁷⁴ in the range *0.0 ≤ x < 1.0*. All such numbers are " @@ -894,7 +923,7 @@ msgstr "" "flotante de Python representable más cercano. (El valor 2⁻¹⁰⁷⁴ es el menor " "flotante positivo no normalizado y es igual a ``math.ulp(0.0)``.)" -#: ../Doc/library/random.rst:644 +#: ../Doc/library/random.rst:669 msgid "" "`Generating Pseudo-random Floating-Point Values `_ a paper by Allen B. Downey describing " @@ -905,3 +934,36 @@ msgstr "" "research/rand/downey07randfloat.pdf>`_ un artículo de Allen B. Downey en el " "que se describen formas de generar flotantes más refinados que los generados " "normalmente por :func:`.random`." + +#~ msgid "" +#~ "Return a randomly selected element from ``range(start, stop, step)``. " +#~ "This is equivalent to ``choice(range(start, stop, step))``, but doesn't " +#~ "actually build a range object." +#~ msgstr "" +#~ "Retorna un elemento de ``range(start, stop, step)`` seleccionado " +#~ "aleatoriamente. Esto es equivalente a ``choice(range(start, stop, " +#~ "step))``, pero en realidad no crea un objeto rango." + +#~ msgid "" +#~ "The positional argument pattern matches that of :func:`range`. Keyword " +#~ "arguments should not be used because the function may use them in " +#~ "unexpected ways." +#~ msgstr "" +#~ "El patrón de argumento posicional coincide con el de :func:`range`. Los " +#~ "argumentos no deben usarse porque la función puede usarlos de forma " +#~ "inesperada." + +#~ msgid "" +#~ "The exception raised for non-integral values such as ``randrange(10.5)`` " +#~ "or ``randrange('10')`` will be changed from :exc:`ValueError` to :exc:" +#~ "`TypeError`." +#~ msgstr "" +#~ "La excepción que se lanza de valores no enteros como ``randrange(10.5)`` " +#~ "o ``randrange('10')`` se cambiará de :exc:`ValueError` a :exc:`TypeError`." + +#~ msgid "" +#~ "Gamma distribution. (*Not* the gamma function!) Conditions on the " +#~ "parameters are ``alpha > 0`` and ``beta > 0``." +#~ msgstr "" +#~ "Distribución gamma. (¡*No* la función gamma!) Las condiciones en los " +#~ "parámetros son ``alpha > 0`` y ``beta > 0``." diff --git a/library/re.po b/library/re.po index c41fecea9d..6f687bb6ad 100644 --- a/library/re.po +++ b/library/re.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-01-04 17:03-0300\n" "Last-Translator: Francisco Mora \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/re.rst:2 msgid ":mod:`re` --- Regular expression operations" @@ -56,6 +55,7 @@ msgstr "" "sustitución debe ser del mismo tipo que el patrón y la cadena de búsqueda." #: ../Doc/library/re.rst:24 +#, fuzzy msgid "" "Regular expressions use the backslash character (``'\\'``) to indicate " "special forms or to allow special characters to be used without invoking " @@ -65,8 +65,8 @@ msgid "" "string, because the regular expression must be ``\\\\``, and each backslash " "must be expressed as ``\\\\`` inside a regular Python string literal. Also, " "please note that any invalid escape sequences in Python's usage of the " -"backslash in string literals now generate a :exc:`DeprecationWarning` and in " -"the future this will become a :exc:`SyntaxError`. This behaviour will happen " +"backslash in string literals now generate a :exc:`SyntaxWarning` and in the " +"future this will become a :exc:`SyntaxError`. This behaviour will happen " "even if it is a valid escape sequence for a regular expression." msgstr "" "Las expresiones regulares usan el carácter de barra inversa (``'\\'``) para " @@ -222,7 +222,7 @@ msgstr "" msgid "The special characters are:" msgstr "Los caracteres especiales son:" -#: ../Doc/library/re.rst:104 ../Doc/library/re.rst:1523 +#: ../Doc/library/re.rst:104 ../Doc/library/re.rst:1552 msgid "``.``" msgstr "``.``" @@ -494,7 +494,7 @@ msgstr "" "complicado y difícil de entender, por lo que se recomienda encarecidamente " "utilizar cadenas *raw* para todas las expresiones salvo las más simples." -#: ../Doc/library/re.rst:293 +#: ../Doc/library/re.rst:294 msgid "``[]``" msgstr "``[]``" @@ -565,17 +565,19 @@ msgstr "" "tiene un significado especial si no es el primer carácter del conjunto." #: ../Doc/library/re.rst:272 +#, fuzzy msgid "" "To match a literal ``']'`` inside a set, precede it with a backslash, or " "place it at the beginning of the set. For example, both ``[()[\\]{}]`` and " -"``[]()[{}]`` will both match a parenthesis." +"``[]()[{}]`` will match a right bracket, as well as left bracket, braces, " +"and parentheses." msgstr "" "Para coincidir con un ``']'`` literal dentro de un set, se debe preceder con " "una barra inversa, o colocarlo al principio del set. Por ejemplo, tanto ``[()" "[\\][{}]`` como ``[]()[{}]`` coincidirá con los paréntesis, corchetes y " "llaves." -#: ../Doc/library/re.rst:281 +#: ../Doc/library/re.rst:282 msgid "" "Support of nested sets and set operations as in `Unicode Technical Standard " "#18`_ might be added in the future. This would change the syntax, so to " @@ -592,7 +594,7 @@ msgstr "" "literales ``'—'``, ``'&&'``, ``'~~'`` y ``'||'``. Para evitar una " "advertencia, utilizar el código de escape con una barra inversa." -#: ../Doc/library/re.rst:291 +#: ../Doc/library/re.rst:292 msgid "" ":exc:`FutureWarning` is raised if a character set contains constructs that " "will change semantically in the future." @@ -600,11 +602,11 @@ msgstr "" ":exc:`FutureWarning` se genera si un conjunto de caracteres contiene " "construcciones que cambiarán semánticamente en el futuro." -#: ../Doc/library/re.rst:306 +#: ../Doc/library/re.rst:307 msgid "``|``" msgstr "``|``" -#: ../Doc/library/re.rst:298 +#: ../Doc/library/re.rst:299 msgid "" "``A|B``, where *A* and *B* can be arbitrary REs, creates a regular " "expression that will match either *A* or *B*. An arbitrary number of REs " @@ -627,11 +629,11 @@ msgstr "" "nunca es codicioso. Para emparejar un literal ``'|'``, se usa ``\\|``, o se " "envuelve dentro de una clase de caracteres, como en ``[|]``." -#: ../Doc/library/re.rst:316 +#: ../Doc/library/re.rst:317 msgid "``(...)``" msgstr "``(...)``" -#: ../Doc/library/re.rst:312 +#: ../Doc/library/re.rst:313 msgid "" "Matches whatever regular expression is inside the parentheses, and indicates " "the start and end of a group; the contents of a group can be retrieved after " @@ -648,11 +650,11 @@ msgstr "" "``')'``, se usa ``\\(`` o ``\\)``, o se envuelve dentro de una clase de " "caracteres: ``[(]``, ``[)]``." -#: ../Doc/library/re.rst:325 +#: ../Doc/library/re.rst:326 msgid "``(?...)``" msgstr "``(?...)``" -#: ../Doc/library/re.rst:321 +#: ../Doc/library/re.rst:322 msgid "" "This is an extension notation (a ``'?'`` following a ``'('`` is not " "meaningful otherwise). The first character after the ``'?'`` determines " @@ -666,11 +668,11 @@ msgstr "" "crean un nuevo grupo; ``(?P…)`` es la única excepción a esta regla. A " "continuación se muestran las extensiones actualmente soportadas." -#: ../Doc/library/re.rst:342 +#: ../Doc/library/re.rst:343 msgid "``(?aiLmsux)``" msgstr "``(?aiLmsux)``" -#: ../Doc/library/re.rst:328 +#: ../Doc/library/re.rst:329 msgid "" "(One or more letters from the set ``'a'``, ``'i'``, ``'L'``, ``'m'``, " "``'s'``, ``'u'``, ``'x'``.) The group matches the empty string; the letters " @@ -695,15 +697,15 @@ msgstr "" "lugar de pasar un argumento *flag* (indicador) a la función :func:`re." "compile`. Los indicadores deben ser usados primero en la cadena de expresión." -#: ../Doc/library/re.rst:341 +#: ../Doc/library/re.rst:342 msgid "This construction can only be used at the start of the expression." msgstr "Esta construcción solo se puede usar al comienzo de la expresión." -#: ../Doc/library/re.rst:350 +#: ../Doc/library/re.rst:351 msgid "``(?:...)``" msgstr "``(?:...)``" -#: ../Doc/library/re.rst:347 +#: ../Doc/library/re.rst:348 msgid "" "A non-capturing version of regular parentheses. Matches whatever regular " "expression is inside the parentheses, but the substring matched by the group " @@ -715,11 +717,11 @@ msgstr "" "subcadena coincidente con el grupo *no puede* ser recuperada después de " "realizar una coincidencia o referenciada más adelante en el patrón." -#: ../Doc/library/re.rst:376 +#: ../Doc/library/re.rst:377 msgid "``(?aiLmsux-imsx:...)``" msgstr "``(?aiLmsux-imsx:...)``" -#: ../Doc/library/re.rst:353 +#: ../Doc/library/re.rst:354 msgid "" "(Zero or more letters from the set ``'a'``, ``'i'``, ``'L'``, ``'m'``, " "``'s'``, ``'u'``, ``'x'``, optionally followed by ``'-'`` followed by one or " @@ -740,7 +742,7 @@ msgstr "" "`re.X` (modo *verbose*) para la parte de la expresión. (Los indicadores se " "describen en :ref:`contents-of-module-re`.)" -#: ../Doc/library/re.rst:363 +#: ../Doc/library/re.rst:364 msgid "" "The letters ``'a'``, ``'L'`` and ``'u'`` are mutually exclusive when used as " "inline flags, so they can't be combined or follow ``'-'``. Instead, when " @@ -764,16 +766,16 @@ msgstr "" "línea restringida, y el modo de coincidencia original se restaura fuera del " "grupo." -#: ../Doc/library/re.rst:375 +#: ../Doc/library/re.rst:376 msgid "The letters ``'a'``, ``'L'`` and ``'u'`` also can be used in a group." msgstr "" "Las letras ``'a'``, ``'L'`` y ``'u'`` también pueden ser usadas en un grupo." -#: ../Doc/library/re.rst:391 +#: ../Doc/library/re.rst:392 msgid "``(?>...)``" msgstr "``(?>...)``" -#: ../Doc/library/re.rst:379 +#: ../Doc/library/re.rst:380 #, fuzzy msgid "" "Attempts to match ``...`` as if it was a separate regular expression, and if " @@ -798,16 +800,18 @@ msgstr "" "no hay puntos de pila guardados en el Grupo Atómico, y no hay ningún punto " "de pila antes de él, toda la expresión no coincidiría." -#: ../Doc/library/re.rst:421 +#: ../Doc/library/re.rst:424 msgid "``(?P...)``" msgstr "``(?P...)``" -#: ../Doc/library/re.rst:396 +#: ../Doc/library/re.rst:397 +#, fuzzy msgid "" "Similar to regular parentheses, but the substring matched by the group is " "accessible via the symbolic group name *name*. Group names must be valid " -"Python identifiers, and each group name must be defined only once within a " -"regular expression. A symbolic group is also a numbered group, just as if " +"Python identifiers, and in :class:`bytes` patterns they can only contain " +"bytes in the ASCII range. Each group name must be defined only once within " +"a regular expression. A symbolic group is also a numbered group, just as if " "the group were not named." msgstr "" "Similar a los paréntesis regulares, pero la subcadena coincidente con el " @@ -817,7 +821,7 @@ msgstr "" "grupo simbólico es también un grupo numerado, del mismo modo que si el grupo " "no tuviera nombre." -#: ../Doc/library/re.rst:402 +#: ../Doc/library/re.rst:404 msgid "" "Named groups can be referenced in three contexts. If the pattern is ``(?" "P['\"]).*?(?P=quote)`` (i.e. matching a string quoted with either " @@ -827,59 +831,61 @@ msgstr "" "patrón es ``(?P['\"]).*?(?P=quote)`` (es decir, hacer coincidir una " "cadena citada con comillas simples o dobles):" -#: ../Doc/library/re.rst:407 +#: ../Doc/library/re.rst:409 msgid "Context of reference to group \"quote\"" msgstr "Contexto de la referencia al grupo *quote* (cita)" -#: ../Doc/library/re.rst:407 +#: ../Doc/library/re.rst:409 msgid "Ways to reference it" msgstr "Formas de hacer referencia" -#: ../Doc/library/re.rst:409 +#: ../Doc/library/re.rst:411 msgid "in the same pattern itself" msgstr "en el mismo patrón en sí mismo" -#: ../Doc/library/re.rst:409 +#: ../Doc/library/re.rst:411 msgid "``(?P=quote)`` (as shown)" msgstr "``(?P=quote)`` (como se muestra)" -#: ../Doc/library/re.rst:410 ../Doc/library/re.rst:417 +#: ../Doc/library/re.rst:412 ../Doc/library/re.rst:419 msgid "``\\1``" msgstr "``\\1``" -#: ../Doc/library/re.rst:412 +#: ../Doc/library/re.rst:414 msgid "when processing match object *m*" msgstr "cuando se procesa el objeto de la coincidencia *m*" -#: ../Doc/library/re.rst:412 +#: ../Doc/library/re.rst:414 msgid "``m.group('quote')``" msgstr "``m.group('quote')``" -#: ../Doc/library/re.rst:413 +#: ../Doc/library/re.rst:415 msgid "``m.end('quote')`` (etc.)" msgstr "``m.end('quote')`` (etc.)" -#: ../Doc/library/re.rst:415 +#: ../Doc/library/re.rst:417 msgid "in a string passed to the *repl* argument of ``re.sub()``" msgstr "en una cadena pasada al argumento *repl* de ``re.sub()``" -#: ../Doc/library/re.rst:415 +#: ../Doc/library/re.rst:417 msgid "``\\g``" msgstr "``\\g``" -#: ../Doc/library/re.rst:416 +#: ../Doc/library/re.rst:418 msgid "``\\g<1>``" msgstr "``\\g<1>``" -#: ../Doc/library/re.rst:420 -msgid "Group names containing non-ASCII characters in bytes patterns." -msgstr "Nombres de grupo contiene caracteres no-ASCII en patrones de bytes." +#: ../Doc/library/re.rst:422 +msgid "" +"In :class:`bytes` patterns, group *name* can only contain bytes in the ASCII " +"range (``b'\\x00'``-``b'\\x7f'``)." +msgstr "" -#: ../Doc/library/re.rst:427 +#: ../Doc/library/re.rst:430 msgid "``(?P=name)``" msgstr "``(?P=name)``" -#: ../Doc/library/re.rst:426 +#: ../Doc/library/re.rst:429 msgid "" "A backreference to a named group; it matches whatever text was matched by " "the earlier group named *name*." @@ -887,19 +893,19 @@ msgstr "" "Una referencia inversa a un grupo nombrado; coincide con cualquier texto " "correspondido por el grupo anterior llamado *name*." -#: ../Doc/library/re.rst:432 +#: ../Doc/library/re.rst:435 msgid "``(?#...)``" msgstr "``(?#...)``" -#: ../Doc/library/re.rst:432 +#: ../Doc/library/re.rst:435 msgid "A comment; the contents of the parentheses are simply ignored." msgstr "Un comentario; el contenido de los paréntesis es simplemente ignorado." -#: ../Doc/library/re.rst:439 +#: ../Doc/library/re.rst:442 msgid "``(?=...)``" msgstr "``(?=...)``" -#: ../Doc/library/re.rst:437 +#: ../Doc/library/re.rst:440 msgid "" "Matches if ``...`` matches next, but doesn't consume any of the string. " "This is called a :dfn:`lookahead assertion`. For example, ``Isaac (?" @@ -910,11 +916,11 @@ msgstr "" "búsqueda anticipada). Por ejemplo, ``Isaac (?=Asimov)`` coincidirá con " "``'Isaac '`` sólo si va seguido de ``'Asimov'``." -#: ../Doc/library/re.rst:446 +#: ../Doc/library/re.rst:449 msgid "``(?!...)``" msgstr "``(?!...)``" -#: ../Doc/library/re.rst:444 +#: ../Doc/library/re.rst:447 msgid "" "Matches if ``...`` doesn't match next. This is a :dfn:`negative lookahead " "assertion`. For example, ``Isaac (?!Asimov)`` will match ``'Isaac '`` only " @@ -925,11 +931,11 @@ msgstr "" "ejemplo, ``Isaac (?!Asimov)`` coincidirá con ``'Isaac '`` sólo si *no* es " "seguido por ``'Asimov'``." -#: ../Doc/library/re.rst:473 +#: ../Doc/library/re.rst:476 msgid "``(?<=...)``" msgstr "``(?<=...)``" -#: ../Doc/library/re.rst:451 +#: ../Doc/library/re.rst:454 msgid "" "Matches if the current position in the string is preceded by a match for " "``...`` that ends at the current position. This is called a :dfn:`positive " @@ -955,19 +961,19 @@ msgstr "" "más probable es que se quiera usar la función :func:`search` en lugar de la " "función :func:`match`:" -#: ../Doc/library/re.rst:466 +#: ../Doc/library/re.rst:469 msgid "This example looks for a word following a hyphen:" msgstr "Este ejemplo busca una palabra seguida de un guión:" -#: ../Doc/library/re.rst:472 +#: ../Doc/library/re.rst:475 msgid "Added support for group references of fixed length." msgstr "Se añadió soporte a las referencias de grupo de longitud fija." -#: ../Doc/library/re.rst:482 +#: ../Doc/library/re.rst:485 msgid "``(?'``." -#: ../Doc/library/re.rst:492 -msgid "Group *id* containing anything except ASCII digits." -msgstr "Grupo *id* que contenga cualquier cosa excepto dígitos ASCII." +#: ../Doc/library/re.rst:498 +msgid "" +"Group *id* can only contain ASCII digits. In :class:`bytes` patterns, group " +"*name* can only contain bytes in the ASCII range (``b'\\x00'``-``b'\\x7f'``)." +msgstr "" -#: ../Doc/library/re.rst:496 +#: ../Doc/library/re.rst:506 msgid "" "The special sequences consist of ``'\\'`` and a character from the list " "below. If the ordinary character is not an ASCII digit or an ASCII letter, " @@ -1020,11 +1028,11 @@ msgstr "" "una letra ASCII, entonces el RE resultante coincidirá con el segundo " "carácter. Por ejemplo, ``\\$`` coincide con el carácter ``'$'``." -#: ../Doc/library/re.rst:511 +#: ../Doc/library/re.rst:521 msgid "``\\number``" msgstr "``\\number``" -#: ../Doc/library/re.rst:504 +#: ../Doc/library/re.rst:514 msgid "" "Matches the contents of the group of the same number. Groups are numbered " "starting from 1. For example, ``(.+) \\1`` matches ``'the the'`` or ``'55 " @@ -1045,19 +1053,19 @@ msgstr "" "``']'`` de una clase de caracteres, todos los escapes numéricos son tratados " "como caracteres." -#: ../Doc/library/re.rst:516 +#: ../Doc/library/re.rst:526 msgid "``\\A``" msgstr "``\\A``" -#: ../Doc/library/re.rst:516 +#: ../Doc/library/re.rst:526 msgid "Matches only at the start of the string." msgstr "Coincide sólo al principio de la cadena." -#: ../Doc/library/re.rst:532 +#: ../Doc/library/re.rst:542 msgid "``\\b``" msgstr "``\\b``" -#: ../Doc/library/re.rst:521 +#: ../Doc/library/re.rst:531 msgid "" "Matches the empty string, but only at the beginning or end of a word. A word " "is defined as a sequence of word characters. Note that formally, ``\\b`` is " @@ -1074,7 +1082,7 @@ msgstr "" "``'foo'``, ``'foo.'``, ``'(foo)'``, ``'bar foo baz'`` pero no ``'foobar'`` o " "``'foo3'``." -#: ../Doc/library/re.rst:528 +#: ../Doc/library/re.rst:538 msgid "" "By default Unicode alphanumerics are the ones used in Unicode patterns, but " "this can be changed by using the :const:`ASCII` flag. Word boundaries are " @@ -1089,11 +1097,11 @@ msgstr "" "caracteres, ``\\b`` representa el carácter de retroceso (*backspace*), para " "compatibilidad con los literales de las cadenas de Python." -#: ../Doc/library/re.rst:543 +#: ../Doc/library/re.rst:553 msgid "``\\B``" msgstr "``\\B``" -#: ../Doc/library/re.rst:537 +#: ../Doc/library/re.rst:547 msgid "" "Matches the empty string, but only when it is *not* at the beginning or end " "of a word. This means that ``r'py\\B'`` matches ``'python'``, ``'py3'``, " @@ -1112,16 +1120,16 @@ msgstr "" "límites de las palabras están determinados por la configuración regional " "actual si se usa el indicador :const:`LOCALE`." -#: ../Doc/library/re.rst:555 +#: ../Doc/library/re.rst:565 msgid "``\\d``" msgstr "``\\d``" -#: ../Doc/library/re.rst:552 ../Doc/library/re.rst:572 -#: ../Doc/library/re.rst:592 +#: ../Doc/library/re.rst:562 ../Doc/library/re.rst:582 +#: ../Doc/library/re.rst:601 msgid "For Unicode (str) patterns:" msgstr "Para los patrones de Unicode (str):" -#: ../Doc/library/re.rst:549 +#: ../Doc/library/re.rst:559 msgid "" "Matches any Unicode decimal digit (that is, any character in Unicode " "character category [Nd]). This includes ``[0-9]``, and also many other " @@ -1133,20 +1141,20 @@ msgstr "" "``[0-9]``, y también muchos otros caracteres de dígitos. Si se usa el " "indicador :const:`ASCII`, sólo coincide con ``[0-9]``." -#: ../Doc/library/re.rst:555 ../Doc/library/re.rst:576 -#: ../Doc/library/re.rst:598 +#: ../Doc/library/re.rst:565 ../Doc/library/re.rst:586 +#: ../Doc/library/re.rst:607 msgid "For 8-bit (bytes) patterns:" msgstr "Para patrones de 8 bits (bytes):" -#: ../Doc/library/re.rst:555 +#: ../Doc/library/re.rst:565 msgid "Matches any decimal digit; this is equivalent to ``[0-9]``." msgstr "Coincide con cualquier dígito decimal; esto equivale a ``[0-9]``." -#: ../Doc/library/re.rst:562 +#: ../Doc/library/re.rst:572 msgid "``\\D``" msgstr "``\\D``" -#: ../Doc/library/re.rst:560 +#: ../Doc/library/re.rst:570 msgid "" "Matches any character which is not a decimal digit. This is the opposite of " "``\\d``. If the :const:`ASCII` flag is used this becomes the equivalent of " @@ -1156,11 +1164,11 @@ msgstr "" "opuesto a ``\\d``. Si se usa el indicador :const:`ASCII` esto se convierte " "en el equivalente a ``[^0-9]``." -#: ../Doc/library/re.rst:576 +#: ../Doc/library/re.rst:586 msgid "``\\s``" msgstr "``\\s``" -#: ../Doc/library/re.rst:568 +#: ../Doc/library/re.rst:578 msgid "" "Matches Unicode whitespace characters (which includes " "``[ \\t\\n\\r\\f\\v]``, and also many other characters, for example the non-" @@ -1173,7 +1181,7 @@ msgstr "" "idiomas). Si se usa el indicador :const:`ASCII``, sólo " "``[ \\t\\n\\r\\f\\v]`` coincide." -#: ../Doc/library/re.rst:575 +#: ../Doc/library/re.rst:585 msgid "" "Matches characters considered whitespace in the ASCII character set; this is " "equivalent to ``[ \\t\\n\\r\\f\\v]``." @@ -1181,11 +1189,11 @@ msgstr "" "Coincide con los caracteres considerados como espacios en blanco en el " "conjunto de caracteres ASCII, lo que equivale a ``[ \\t\\n\\r\\f\\v]``." -#: ../Doc/library/re.rst:583 +#: ../Doc/library/re.rst:593 msgid "``\\S``" msgstr "``\\S``" -#: ../Doc/library/re.rst:581 +#: ../Doc/library/re.rst:591 msgid "" "Matches any character which is not a whitespace character. This is the " "opposite of ``\\s``. If the :const:`ASCII` flag is used this becomes the " @@ -1195,22 +1203,23 @@ msgstr "" "Esto es lo opuesto a ``\\s``. Si se usa el indicador :const:`ASCII` se " "convierte en el equivalente a `[^ \\t\\n\\r\\f\\v]`." -#: ../Doc/library/re.rst:598 +#: ../Doc/library/re.rst:607 msgid "``\\w``" msgstr "``\\w``" -#: ../Doc/library/re.rst:589 +#: ../Doc/library/re.rst:599 +#, fuzzy msgid "" -"Matches Unicode word characters; this includes most characters that can be " -"part of a word in any language, as well as numbers and the underscore. If " -"the :const:`ASCII` flag is used, only ``[a-zA-Z0-9_]`` is matched." +"Matches Unicode word characters; this includes alphanumeric characters (as " +"defined by :meth:`str.isalnum`) as well as the underscore (``_``). If the :" +"const:`ASCII` flag is used, only ``[a-zA-Z0-9_]`` is matched." msgstr "" "Coincide con los caracteres de palabras de Unicode; esto incluye la mayoría " "de los caracteres que pueden formar parte de una palabra en cualquier " "idioma, así como los números y el guión bajo. Si se usa el indicador :const:" "`ASCII`, sólo coincide con ``[a-zA-Z0-9_]``." -#: ../Doc/library/re.rst:595 +#: ../Doc/library/re.rst:604 msgid "" "Matches characters considered alphanumeric in the ASCII character set; this " "is equivalent to ``[a-zA-Z0-9_]``. If the :const:`LOCALE` flag is used, " @@ -1222,11 +1231,11 @@ msgstr "" "const:`LOCALE`, coincide con los caracteres considerados alfanuméricos en la " "configuración regional actual y el guión bajo." -#: ../Doc/library/re.rst:607 +#: ../Doc/library/re.rst:616 msgid "``\\W``" msgstr "``\\W``" -#: ../Doc/library/re.rst:603 +#: ../Doc/library/re.rst:612 msgid "" "Matches any character which is not a word character. This is the opposite of " "``\\w``. If the :const:`ASCII` flag is used this becomes the equivalent of " @@ -1239,23 +1248,24 @@ msgstr "" "const:`LOCALE`, coincide con los caracteres que no son ni alfanuméricos en " "la configuración regional actual ni con el guión bajo." -#: ../Doc/library/re.rst:612 +#: ../Doc/library/re.rst:621 msgid "``\\Z``" msgstr "``\\Z``" -#: ../Doc/library/re.rst:612 +#: ../Doc/library/re.rst:621 msgid "Matches only at the end of the string." msgstr "Coincide sólo el final de la cadena." -#: ../Doc/library/re.rst:628 +#: ../Doc/library/re.rst:637 +#, fuzzy msgid "" -"Most of the standard escapes supported by Python string literals are also " -"accepted by the regular expression parser::" +"Most of the :ref:`escape sequences ` supported by Python " +"string literals are also accepted by the regular expression parser::" msgstr "" "La mayoría de los escapes estándar soportados por los literales de la cadena " "de Python también son aceptados por el analizador de expresiones regulares::" -#: ../Doc/library/re.rst:635 +#: ../Doc/library/re.rst:644 msgid "" "(Note that ``\\b`` is used to represent word boundaries, and means " "\"backspace\" only inside character classes.)" @@ -1264,7 +1274,7 @@ msgstr "" "significa \"retroceso\" (*backspace*) sólo dentro de las clases de " "caracteres.)" -#: ../Doc/library/re.rst:638 +#: ../Doc/library/re.rst:647 msgid "" "``'\\u'``, ``'\\U'``, and ``'\\N'`` escape sequences are only recognized in " "Unicode patterns. In bytes patterns they are errors. Unknown escapes of " @@ -1275,7 +1285,7 @@ msgstr "" "desconocidos de las letras ASCII se reservan para su uso posterior y se " "consideran errores." -#: ../Doc/library/re.rst:642 +#: ../Doc/library/re.rst:651 msgid "" "Octal escapes are included in a limited form. If the first digit is a 0, or " "if there are three octal digits, it is considered an octal escape. " @@ -1287,30 +1297,32 @@ msgstr "" "contrario, es una referencia de grupo. En cuanto a los literales de cadena, " "los escapes octales siempre tienen como máximo tres dígitos de longitud." -#: ../Doc/library/re.rst:647 +#: ../Doc/library/re.rst:656 msgid "The ``'\\u'`` and ``'\\U'`` escape sequences have been added." msgstr "Se han añadido las secuencias de escape ``'\\u'`` y ``'\\U'``." -#: ../Doc/library/re.rst:650 +#: ../Doc/library/re.rst:659 msgid "" "Unknown escapes consisting of ``'\\'`` and an ASCII letter now are errors." msgstr "" "Los escapes desconocidos que consisten en ``'\\'`` y una letra ASCII ahora " "son errores." -#: ../Doc/library/re.rst:653 +#: ../Doc/library/re.rst:662 +#, fuzzy msgid "" -"The ``'\\N{name}'`` escape sequence has been added. As in string literals, " -"it expands to the named Unicode character (e.g. ``'\\N{EM DASH}'``)." +"The :samp:`'\\\\N\\\\{{name}\\\\}'` escape sequence has been added. As in " +"string literals, it expands to the named Unicode character (e.g. ``'\\N{EM " +"DASH}'``)." msgstr "" "Se añadió la secuencia de escape ``'\\N{name}'``. Como en los literales de " "cadena, se expande al carácter Unicode nombrado (por ej. ``'\\N{EM DASH}'``)." -#: ../Doc/library/re.rst:661 +#: ../Doc/library/re.rst:670 msgid "Module Contents" msgstr "Contenidos del módulo" -#: ../Doc/library/re.rst:663 +#: ../Doc/library/re.rst:672 msgid "" "The module defines several functions, constants, and an exception. Some of " "the functions are simplified versions of the full featured methods for " @@ -1322,11 +1334,11 @@ msgstr "" "expresiones regulares compiladas. La mayoría de las aplicaciones no " "triviales utilizan siempre la forma compilada." -#: ../Doc/library/re.rst:670 +#: ../Doc/library/re.rst:679 msgid "Flags" msgstr "Indicadores" -#: ../Doc/library/re.rst:672 +#: ../Doc/library/re.rst:681 msgid "" "Flag constants are now instances of :class:`RegexFlag`, which is a subclass " "of :class:`enum.IntFlag`." @@ -1334,18 +1346,18 @@ msgstr "" "Ahora las constantes de indicadores son instancias de :class:`RegexFlag`, " "que es una subclase de :class:`enum.IntFlag`." -#: ../Doc/library/re.rst:679 +#: ../Doc/library/re.rst:688 msgid "" "An :class:`enum.IntFlag` class containing the regex options listed below." msgstr "" "Una clase :class:`enum.IntFlag` contiene las opciones regex que se enumeran " "a continuación." -#: ../Doc/library/re.rst:681 +#: ../Doc/library/re.rst:690 msgid "- added to ``__all__``" msgstr "- agregado a ``__all__``" -#: ../Doc/library/re.rst:686 +#: ../Doc/library/re.rst:695 msgid "" "Make ``\\w``, ``\\W``, ``\\b``, ``\\B``, ``\\d``, ``\\D``, ``\\s`` and " "``\\S`` perform ASCII-only matching instead of full Unicode matching. This " @@ -1357,7 +1369,7 @@ msgstr "" "Unicode. Esto sólo tiene sentido para los patrones de Unicode, y se ignora " "para los patrones de bytes. Corresponde al indicador en línea ``(?a)``." -#: ../Doc/library/re.rst:691 +#: ../Doc/library/re.rst:700 msgid "" "Note that for backward compatibility, the :const:`re.U` flag still exists " "(as well as its synonym :const:`re.UNICODE` and its embedded counterpart ``(?" @@ -1370,7 +1382,7 @@ msgstr "" "que las coincidencias son Unicode por defecto para las cadenas (y no se " "permite la coincidencia Unicode para los bytes)." -#: ../Doc/library/re.rst:700 +#: ../Doc/library/re.rst:709 msgid "" "Display debug information about compiled expression. No corresponding inline " "flag." @@ -1378,7 +1390,7 @@ msgstr "" "Muestra información de depuración (*debug*) sobre la expresión compilada. No " "hay un indicador en línea que corresponda." -#: ../Doc/library/re.rst:707 +#: ../Doc/library/re.rst:716 msgid "" "Perform case-insensitive matching; expressions like ``[A-Z]`` will also " "match lowercase letters. Full Unicode matching (such as ``Ü`` matching " @@ -1395,7 +1407,7 @@ msgstr "" "vigente no cambia el efecto de este indicador a menos que también se use el " "indicador :const:`re.LOCALE`. Corresponde al indicador en línea ``(?i)``." -#: ../Doc/library/re.rst:714 +#: ../Doc/library/re.rst:723 msgid "" "Note that when the Unicode patterns ``[a-z]`` or ``[A-Z]`` are used in " "combination with the :const:`IGNORECASE` flag, they will match the 52 ASCII " @@ -1413,7 +1425,7 @@ msgstr "" "Si se usa el indicador :const:`ASCII`, sólo las letras de la 'a' a la 'z' y " "de la 'A' a la 'Z' coinciden." -#: ../Doc/library/re.rst:725 +#: ../Doc/library/re.rst:734 msgid "" "Make ``\\w``, ``\\W``, ``\\b``, ``\\B`` and case-insensitive matching " "dependent on the current locale. This flag can be used only with bytes " @@ -1433,7 +1445,7 @@ msgstr "" "de manejar diferentes localizaciones/idiomas. Corresponde al indicador en " "línea ``(?L)``." -#: ../Doc/library/re.rst:734 +#: ../Doc/library/re.rst:743 msgid "" ":const:`re.LOCALE` can be used only with bytes patterns and is not " "compatible with :const:`re.ASCII`." @@ -1441,7 +1453,7 @@ msgstr "" ":const:`re.LOCALE` sólo se puede usar con patrones de bytes y no es " "compatible con :const:`re.ASCII`." -#: ../Doc/library/re.rst:738 +#: ../Doc/library/re.rst:747 msgid "" "Compiled regular expression objects with the :const:`re.LOCALE` flag no " "longer depend on the locale at compile time. Only the locale at matching " @@ -1451,7 +1463,7 @@ msgstr "" "ya no dependen del lugar en el momento de la compilación. Sólo la " "configuración regional durante la coincidencia afecta al resultado obtenido." -#: ../Doc/library/re.rst:747 +#: ../Doc/library/re.rst:756 msgid "" "When specified, the pattern character ``'^'`` matches at the beginning of " "the string and at the beginning of each line (immediately following each " @@ -1469,7 +1481,7 @@ msgstr "" "al final de la cadena e inmediatamente antes de la nueva línea (si la hay) " "al final de la cadena. Corresponde al indicador en línea ``(?m)``." -#: ../Doc/library/re.rst:757 +#: ../Doc/library/re.rst:766 #, fuzzy msgid "" "Indicates no flag being applied, the value is ``0``. This flag may be used " @@ -1482,7 +1494,7 @@ msgstr "" "clave de función o como un valor base que sea ORed condicionalmente con " "otros indicadores. Ejemplo de uso como valor predeterminado:" -#: ../Doc/library/re.rst:770 +#: ../Doc/library/re.rst:779 msgid "" "Make the ``'.'`` special character match any character at all, including a " "newline; without this flag, ``'.'`` will match anything *except* a newline. " @@ -1493,7 +1505,22 @@ msgstr "" "cualquier cosa, *excepto* con una nueva línea. Corresponde al indicador en " "línea ``(?s)``." -#: ../Doc/library/re.rst:780 +#: ../Doc/library/re.rst:787 +msgid "" +"In Python 2, this flag made :ref:`special sequences ` " +"include Unicode characters in matches. Since Python 3, Unicode characters " +"are matched by default." +msgstr "" + +#: ../Doc/library/re.rst:791 +msgid "See :const:`A` for restricting matching on ASCII characters instead." +msgstr "" + +#: ../Doc/library/re.rst:793 +msgid "This flag is only kept for backward compatibility." +msgstr "" + +#: ../Doc/library/re.rst:800 #, fuzzy msgid "" "This flag allows you to write regular expressions that look nicer and are " @@ -1516,7 +1543,7 @@ msgstr "" "escapada, se ignoran todos los caracteres desde el más a la izquierda (como " "``#``) hasta el final de la línea." -#: ../Doc/library/re.rst:790 +#: ../Doc/library/re.rst:810 msgid "" "This means that the two following regular expression objects that match a " "decimal number are functionally equal::" @@ -1524,15 +1551,15 @@ msgstr "" "Esto significa que los dos siguientes objetos expresión regular que " "coinciden con un número decimal son funcionalmente iguales::" -#: ../Doc/library/re.rst:798 +#: ../Doc/library/re.rst:818 msgid "Corresponds to the inline flag ``(?x)``." msgstr "Corresponde al indicador en línea ``(?x)``." -#: ../Doc/library/re.rst:802 +#: ../Doc/library/re.rst:822 msgid "Functions" msgstr "Funciones" -#: ../Doc/library/re.rst:806 +#: ../Doc/library/re.rst:826 msgid "" "Compile a regular expression pattern into a :ref:`regular expression object " "`, which can be used for matching using its :func:`~Pattern." @@ -1543,7 +1570,7 @@ msgstr "" "func:`~Pattern.match`, :func:`~Pattern.search` y otros métodos, descritos " "más adelante." -#: ../Doc/library/re.rst:811 +#: ../Doc/library/re.rst:831 msgid "" "The expression's behaviour can be modified by specifying a *flags* value. " "Values can be any of the following variables, combined using bitwise OR (the " @@ -1553,15 +1580,15 @@ msgstr "" "de *indicadores*. Los valores pueden ser cualquiera de las siguientes " "variables, combinadas usando el operador OR (el operador ``|``)." -#: ../Doc/library/re.rst:815 +#: ../Doc/library/re.rst:835 msgid "The sequence ::" msgstr "La secuencia ::" -#: ../Doc/library/re.rst:820 +#: ../Doc/library/re.rst:840 msgid "is equivalent to ::" msgstr "es equivalente a ::" -#: ../Doc/library/re.rst:824 +#: ../Doc/library/re.rst:844 msgid "" "but using :func:`re.compile` and saving the resulting regular expression " "object for reuse is more efficient when the expression will be used several " @@ -1571,7 +1598,7 @@ msgstr "" "expresión regular para su reutilización es más eficiente cuando la expresión " "será usada varias veces en un solo programa." -#: ../Doc/library/re.rst:830 +#: ../Doc/library/re.rst:850 msgid "" "The compiled versions of the most recent patterns passed to :func:`re." "compile` and the module-level matching functions are cached, so programs " @@ -1583,13 +1610,14 @@ msgstr "" "así que los programas que usan sólo unas pocas expresiones regulares a la " "vez no tienen que preocuparse de compilar expresiones regulares." -#: ../Doc/library/re.rst:838 +#: ../Doc/library/re.rst:858 +#, fuzzy msgid "" "Scan through *string* looking for the first location where the regular " -"expression *pattern* produces a match, and return a corresponding :ref:" -"`match object `. Return ``None`` if no position in the " -"string matches the pattern; note that this is different from finding a zero-" -"length match at some point in the string." +"expression *pattern* produces a match, and return a corresponding :class:" +"`~re.Match`. Return ``None`` if no position in the string matches the " +"pattern; note that this is different from finding a zero-length match at " +"some point in the string." msgstr "" "Examina a través de la *string* (\"cadena\") buscando el primer lugar donde " "el *pattern* (\"patrón\") de la expresión regular produce una coincidencia, " @@ -1598,12 +1626,13 @@ msgstr "" "esto es diferente a encontrar una coincidencia de longitud cero en algún " "punto de la cadena." -#: ../Doc/library/re.rst:847 +#: ../Doc/library/re.rst:866 +#, fuzzy msgid "" "If zero or more characters at the beginning of *string* match the regular " -"expression *pattern*, return a corresponding :ref:`match object `. Return ``None`` if the string does not match the pattern; note " -"that this is different from a zero-length match." +"expression *pattern*, return a corresponding :class:`~re.Match`. Return " +"``None`` if the string does not match the pattern; note that this is " +"different from a zero-length match." msgstr "" "Si cero o más caracteres al principio de la *string* (\"cadena\") coinciden " "con el *pattern* (\"patrón\") de la expresión regular, retorna un :ref:" @@ -1611,7 +1640,7 @@ msgstr "" "cadena no coincide con el patrón; notar que esto es diferente de una " "coincidencia de longitud cero." -#: ../Doc/library/re.rst:852 +#: ../Doc/library/re.rst:871 msgid "" "Note that even in :const:`MULTILINE` mode, :func:`re.match` will only match " "at the beginning of the string and not at the beginning of each line." @@ -1619,7 +1648,7 @@ msgstr "" "Notar que incluso en el modo :const:`MULTILINE`, :func:`re.match` sólo " "coincidirá al principio de la cadena y no al principio de cada línea." -#: ../Doc/library/re.rst:855 +#: ../Doc/library/re.rst:874 msgid "" "If you want to locate a match anywhere in *string*, use :func:`search` " "instead (see also :ref:`search-vs-match`)." @@ -1628,19 +1657,19 @@ msgstr "" "(\"cadena\"), se utiliza :func:`search` en su lugar (ver también :ref:" "`search-vs-match`)." -#: ../Doc/library/re.rst:861 +#: ../Doc/library/re.rst:880 +#, fuzzy msgid "" "If the whole *string* matches the regular expression *pattern*, return a " -"corresponding :ref:`match object `. Return ``None`` if the " -"string does not match the pattern; note that this is different from a zero-" -"length match." +"corresponding :class:`~re.Match`. Return ``None`` if the string does not " +"match the pattern; note that this is different from a zero-length match." msgstr "" "Si toda la *string* (\"cadena\") coincide con el *pattern* (\"patrón\") de " "la expresión regular, retorna un correspondiente :ref:`objeto match `. Retorna ``None`` si la cadena no coincide con el patrón; notar " "que esto es diferente de una coincidencia de longitud cero." -#: ../Doc/library/re.rst:871 +#: ../Doc/library/re.rst:889 msgid "" "Split *string* by the occurrences of *pattern*. If capturing parentheses " "are used in *pattern*, then the text of all groups in the pattern are also " @@ -1655,7 +1684,7 @@ msgstr "" "cero, como mucho se producen *maxsplit* divisiones, y el resto de la cadena " "se retorna como elemento final de la lista. ::" -#: ../Doc/library/re.rst:886 +#: ../Doc/library/re.rst:904 msgid "" "If there are capturing groups in the separator and it matches at the start " "of the string, the result will start with an empty string. The same holds " @@ -1665,7 +1694,7 @@ msgstr "" "cadena, el resultado comenzará con una cadena vacía. Lo mismo ocurre con el " "final de la cadena::" -#: ../Doc/library/re.rst:893 +#: ../Doc/library/re.rst:911 msgid "" "That way, separator components are always found at the same relative indices " "within the result list." @@ -1673,7 +1702,7 @@ msgstr "" "De esa manera, los componentes de los separadores se encuentran siempre en " "los mismos índices relativos dentro de la lista de resultados." -#: ../Doc/library/re.rst:896 +#: ../Doc/library/re.rst:914 msgid "" "Empty matches for the pattern split the string only when not adjacent to a " "previous empty match." @@ -1681,19 +1710,19 @@ msgstr "" "Las coincidencias vacías para el patrón dividen la cadena sólo cuando no " "están adyacentes a una coincidencia vacía anterior." -#: ../Doc/library/re.rst:906 ../Doc/library/re.rst:996 -#: ../Doc/library/re.rst:1024 +#: ../Doc/library/re.rst:924 ../Doc/library/re.rst:1015 +#: ../Doc/library/re.rst:1044 msgid "Added the optional flags argument." msgstr "Se añadió el argumento de los indicadores opcionales." -#: ../Doc/library/re.rst:909 +#: ../Doc/library/re.rst:927 msgid "" "Added support of splitting on a pattern that could match an empty string." msgstr "" "Se añadió el soporte de la división en un patrón que podría coincidir con " "una cadena vacía." -#: ../Doc/library/re.rst:915 +#: ../Doc/library/re.rst:933 msgid "" "Return all non-overlapping matches of *pattern* in *string*, as a list of " "strings or tuples. The *string* is scanned left-to-right, and matches are " @@ -1704,7 +1733,7 @@ msgstr "" "derecha y las coincidencias se retornan en el orden en que se encuentran. " "Las coincidencias vacías se incluyen en el resultado." -#: ../Doc/library/re.rst:919 +#: ../Doc/library/re.rst:937 msgid "" "The result depends on the number of capturing groups in the pattern. If " "there are no groups, return a list of strings matching the whole pattern. " @@ -1720,18 +1749,19 @@ msgstr "" "de strings que coinciden con los grupos. Los grupos que no son detectados no " "afectan la forma del resultado." -#: ../Doc/library/re.rst:931 ../Doc/library/re.rst:942 +#: ../Doc/library/re.rst:949 ../Doc/library/re.rst:960 msgid "Non-empty matches can now start just after a previous empty match." msgstr "" "Las coincidencias no vacías ahora pueden empezar justo después de una " "coincidencia vacía anterior." -#: ../Doc/library/re.rst:937 +#: ../Doc/library/re.rst:955 +#, fuzzy msgid "" -"Return an :term:`iterator` yielding :ref:`match objects ` " -"over all non-overlapping matches for the RE *pattern* in *string*. The " -"*string* is scanned left-to-right, and matches are returned in the order " -"found. Empty matches are included in the result." +"Return an :term:`iterator` yielding :class:`~re.Match` objects over all non-" +"overlapping matches for the RE *pattern* in *string*. The *string* is " +"scanned left-to-right, and matches are returned in the order found. Empty " +"matches are included in the result." msgstr "" "Retorna un :term:`iterator` que produce :ref:`objetos de coincidencia " "` sobre todas las coincidencias no superpuestas para " @@ -1740,7 +1770,7 @@ msgstr "" "orden en que se encuentran. Las coincidencias vacías se incluyen en el " "resultado." -#: ../Doc/library/re.rst:948 +#: ../Doc/library/re.rst:966 msgid "" "Return the string obtained by replacing the leftmost non-overlapping " "occurrences of *pattern* in *string* by the replacement *repl*. If the " @@ -1765,21 +1795,23 @@ msgstr "" "``\\6``, se reemplazan por la subcadena que corresponde al grupo 6 del " "patrón. Por ejemplo::" -#: ../Doc/library/re.rst:964 +#: ../Doc/library/re.rst:982 +#, fuzzy msgid "" "If *repl* is a function, it is called for every non-overlapping occurrence " -"of *pattern*. The function takes a single :ref:`match object ` argument, and returns the replacement string. For example::" +"of *pattern*. The function takes a single :class:`~re.Match` argument, and " +"returns the replacement string. For example::" msgstr "" "Si *repl* es una función, se llama para cada ocurrencia no superpuesta de " "*pattern*. La función toma un solo argumento :ref:`objeto match `, y retorna la cadena de sustitución. Por ejemplo::" -#: ../Doc/library/re.rst:976 -msgid "The pattern may be a string or a :ref:`pattern object `." +#: ../Doc/library/re.rst:995 +#, fuzzy +msgid "The pattern may be a string or a :class:`~re.Pattern`." msgstr "El patrón puede ser una cadena o un :ref:`objeto patrón `." -#: ../Doc/library/re.rst:978 +#: ../Doc/library/re.rst:997 msgid "" "The optional argument *count* is the maximum number of pattern occurrences " "to be replaced; *count* must be a non-negative integer. If omitted or zero, " @@ -1794,7 +1826,7 @@ msgstr "" "no están adyacentes a una coincidencia vacía anterior, así que ``sub('x*', " "'-', 'abxd')`` retorna ``'-a-b--d-'``." -#: ../Doc/library/re.rst:986 +#: ../Doc/library/re.rst:1005 msgid "" "In string-type *repl* arguments, in addition to the character escapes and " "backreferences described above, ``\\g`` will use the substring matched " @@ -1816,12 +1848,12 @@ msgstr "" "grupo 2 seguido del carácter literal ``'0'``. La referencia inversa " "``\\g<0>`` sustituye en toda la subcadena coincidente con la RE." -#: ../Doc/library/re.rst:999 ../Doc/library/re.rst:1027 -#: ../Doc/library/re.rst:1261 +#: ../Doc/library/re.rst:1018 ../Doc/library/re.rst:1047 +#: ../Doc/library/re.rst:1290 msgid "Unmatched groups are replaced with an empty string." msgstr "Los grupos no coincidentes son reemplazados por una cadena vacía." -#: ../Doc/library/re.rst:1002 +#: ../Doc/library/re.rst:1021 msgid "" "Unknown escapes in *pattern* consisting of ``'\\'`` and an ASCII letter now " "are errors." @@ -1829,7 +1861,7 @@ msgstr "" "Los escapes desconocidos en el *pattern* que consisten en ``'\\'`` y una " "letra ASCII ahora son errores." -#: ../Doc/library/re.rst:1006 +#: ../Doc/library/re.rst:1025 msgid "" "Unknown escapes in *repl* consisting of ``'\\'`` and an ASCII letter now are " "errors." @@ -1837,7 +1869,7 @@ msgstr "" "Los escapes desconocidos en *repl* que consisten en ``'\\'`` y una letra " "ASCII ahora son errores." -#: ../Doc/library/re.rst:1010 +#: ../Doc/library/re.rst:1029 msgid "" "Empty matches for the pattern are replaced when adjacent to a previous non-" "empty match." @@ -1845,15 +1877,14 @@ msgstr "" "Las coincidencias vacías para el patrón se reemplazan cuando están " "adyacentes a una coincidencia anterior no vacía." -#: ../Doc/library/re.rst:1014 +#: ../Doc/library/re.rst:1033 msgid "" -"Group *id* containing anything except ASCII digits. Group names containing " -"non-ASCII characters in bytes replacement strings." +"Group *id* can only contain ASCII digits. In :class:`bytes` replacement " +"strings, group *name* can only contain bytes in the ASCII range " +"(``b'\\x00'``-``b'\\x7f'``)." msgstr "" -"Grupo *id* que contengan cualquier cosa excepto dígitos ASCII. Nombres de " -"grupo que contengan caracteres no ASCII en cadenas de reemplazo de bytes." -#: ../Doc/library/re.rst:1021 +#: ../Doc/library/re.rst:1041 msgid "" "Perform the same operation as :func:`sub`, but return a tuple ``(new_string, " "number_of_subs_made)``." @@ -1861,7 +1892,7 @@ msgstr "" "Realiza la misma operación que :func:`sub`, pero retorna una tupla " "``(new_string, number_of_subs_made)``." -#: ../Doc/library/re.rst:1033 +#: ../Doc/library/re.rst:1053 msgid "" "Escape special characters in *pattern*. This is useful if you want to match " "an arbitrary literal string that may have regular expression metacharacters " @@ -1871,7 +1902,7 @@ msgstr "" "quieres hacer coincidir una cadena literal arbitraria que puede tener " "metacaracteres de expresión regular en ella. Por ejemplo::" -#: ../Doc/library/re.rst:1048 +#: ../Doc/library/re.rst:1068 msgid "" "This function must not be used for the replacement string in :func:`sub` " "and :func:`subn`, only backslashes should be escaped. For example::" @@ -1879,11 +1910,11 @@ msgstr "" "Esta función no debe usarse para la cadena de reemplazo en :func:`sub` y :" "func:`subn`, sólo deben escaparse las barras inversas. Por ejemplo::" -#: ../Doc/library/re.rst:1056 +#: ../Doc/library/re.rst:1076 msgid "The ``'_'`` character is no longer escaped." msgstr "El carácter de ``'_'`` ya no se escapa." -#: ../Doc/library/re.rst:1059 +#: ../Doc/library/re.rst:1079 msgid "" "Only characters that can have special meaning in a regular expression are " "escaped. As a result, ``'!'``, ``'\"'``, ``'%'``, ``\"'\"``, ``','``, " @@ -1895,15 +1926,15 @@ msgstr "" "``\"'\"``, ``','``, ``'/'``, ``':'``, ``';'``, ``'<'``, ``'='``, ``'>'``, " "``'@'`` y ``\"`\"`` ya no se escapan." -#: ../Doc/library/re.rst:1068 +#: ../Doc/library/re.rst:1088 msgid "Clear the regular expression cache." msgstr "Despeja la caché de expresión regular." -#: ../Doc/library/re.rst:1072 +#: ../Doc/library/re.rst:1092 msgid "Exceptions" msgstr "Excepciones" -#: ../Doc/library/re.rst:1076 +#: ../Doc/library/re.rst:1096 msgid "" "Exception raised when a string passed to one of the functions here is not a " "valid regular expression (for example, it might contain unmatched " @@ -1918,51 +1949,54 @@ msgstr "" "no contiene ninguna coincidencia para un patrón. La instancia de error " "tiene los siguientes atributos adicionales:" -#: ../Doc/library/re.rst:1084 +#: ../Doc/library/re.rst:1104 msgid "The unformatted error message." msgstr "El mensaje de error sin formato." -#: ../Doc/library/re.rst:1088 +#: ../Doc/library/re.rst:1108 msgid "The regular expression pattern." msgstr "El patrón de expresión regular." -#: ../Doc/library/re.rst:1092 +#: ../Doc/library/re.rst:1112 msgid "The index in *pattern* where compilation failed (may be ``None``)." msgstr "" "El índice en *pattern* (\"patrón\") donde la compilación falló (puede ser " "``None``)." -#: ../Doc/library/re.rst:1096 +#: ../Doc/library/re.rst:1116 msgid "The line corresponding to *pos* (may be ``None``)." msgstr "La línea correspondiente a *pos* (puede ser ``None``)." -#: ../Doc/library/re.rst:1100 +#: ../Doc/library/re.rst:1120 msgid "The column corresponding to *pos* (may be ``None``)." msgstr "La columna correspondiente a *pos* (puede ser ``None``)." -#: ../Doc/library/re.rst:1102 +#: ../Doc/library/re.rst:1122 msgid "Added additional attributes." msgstr "Se añadieron atributos adicionales." -#: ../Doc/library/re.rst:1108 +#: ../Doc/library/re.rst:1128 msgid "Regular Expression Objects" msgstr "Objetos expresión regular" -#: ../Doc/library/re.rst:1110 +#: ../Doc/library/re.rst:1132 +msgid "Compiled regular expression object returned by :func:`re.compile`." +msgstr "" + +#: ../Doc/library/re.rst:1134 msgid "" -"Compiled regular expression objects support the following methods and " -"attributes:" +":py:class:`re.Pattern` supports ``[]`` to indicate a Unicode (str) or bytes " +"pattern. See :ref:`types-genericalias`." msgstr "" -"Los objetos expresión regular compilados soportan los siguientes métodos y " -"atributos:" -#: ../Doc/library/re.rst:1115 +#: ../Doc/library/re.rst:1140 +#, fuzzy msgid "" "Scan through *string* looking for the first location where this regular " -"expression produces a match, and return a corresponding :ref:`match object " -"`. Return ``None`` if no position in the string matches the " -"pattern; note that this is different from finding a zero-length match at " -"some point in the string." +"expression produces a match, and return a corresponding :class:`~re.Match`. " +"Return ``None`` if no position in the string matches the pattern; note that " +"this is different from finding a zero-length match at some point in the " +"string." msgstr "" "Escanea a través de la *string* (\"cadena\") buscando la primera ubicación " "donde esta expresión regular produce una coincidencia, y retorna un :ref:" @@ -1970,7 +2004,7 @@ msgstr "" "posición en la cadena coincide con el patrón; notar que esto es diferente a " "encontrar una coincidencia de longitud cero en algún punto de la cadena." -#: ../Doc/library/re.rst:1121 +#: ../Doc/library/re.rst:1145 msgid "" "The optional second parameter *pos* gives an index in the string where the " "search is to start; it defaults to ``0``. This is not completely equivalent " @@ -1984,7 +2018,7 @@ msgstr "" "el inicio real de la cadena y en las posiciones justo después de una nueva " "línea, pero no necesariamente en el índice donde la búsqueda va a comenzar." -#: ../Doc/library/re.rst:1127 +#: ../Doc/library/re.rst:1151 msgid "" "The optional parameter *endpos* limits how far the string will be searched; " "it will be as if the string is *endpos* characters long, so only the " @@ -2000,12 +2034,13 @@ msgstr "" "contrario, si *rx* es un objeto de expresión regular compilado, ``rx." "search(string, 0, 50)`` es equivalente a ``rx.search(string[:50], 0)``. ::" -#: ../Doc/library/re.rst:1142 +#: ../Doc/library/re.rst:1166 +#, fuzzy msgid "" "If zero or more characters at the *beginning* of *string* match this regular " -"expression, return a corresponding :ref:`match object `. " -"Return ``None`` if the string does not match the pattern; note that this is " -"different from a zero-length match." +"expression, return a corresponding :class:`~re.Match`. Return ``None`` if " +"the string does not match the pattern; note that this is different from a " +"zero-length match." msgstr "" "Si cero o más caracteres en el *beginning* (\"comienzo\") de la *string* " "(\"cadena\") coinciden con esta expresión regular, retorna un :ref:`objeto " @@ -2013,7 +2048,7 @@ msgstr "" "coincide con el patrón; notar que esto es diferente de una coincidencia de " "longitud cero." -#: ../Doc/library/re.rst:1147 ../Doc/library/re.rst:1165 +#: ../Doc/library/re.rst:1171 ../Doc/library/re.rst:1189 msgid "" "The optional *pos* and *endpos* parameters have the same meaning as for the :" "meth:`~Pattern.search` method. ::" @@ -2021,7 +2056,7 @@ msgstr "" "Los parámetros opcionales *pos* y *endpos* tienen el mismo significado que " "para el método :meth:`~Pattern.search`. ::" -#: ../Doc/library/re.rst:1155 +#: ../Doc/library/re.rst:1179 msgid "" "If you want to locate a match anywhere in *string*, use :meth:`~Pattern." "search` instead (see also :ref:`search-vs-match`)." @@ -2030,23 +2065,23 @@ msgstr "" "utilizar :meth:`~Pattern.search` en su lugar (ver también :ref:`search-vs-" "match`)." -#: ../Doc/library/re.rst:1161 +#: ../Doc/library/re.rst:1185 +#, fuzzy msgid "" "If the whole *string* matches this regular expression, return a " -"corresponding :ref:`match object `. Return ``None`` if the " -"string does not match the pattern; note that this is different from a zero-" -"length match." +"corresponding :class:`~re.Match`. Return ``None`` if the string does not " +"match the pattern; note that this is different from a zero-length match." msgstr "" "Si toda la *string* (\"cadena\") coincide con esta expresión regular, " "retorna un :ref:`objeto match ` correspondiente. Retorna " "``None`` si la cadena no coincide con el patrón; notar que esto es diferente " "de una coincidencia de longitud cero." -#: ../Doc/library/re.rst:1179 +#: ../Doc/library/re.rst:1203 msgid "Identical to the :func:`split` function, using the compiled pattern." msgstr "Idéntico a la función :func:`split`, usando el patrón compilado." -#: ../Doc/library/re.rst:1184 +#: ../Doc/library/re.rst:1208 msgid "" "Similar to the :func:`findall` function, using the compiled pattern, but " "also accepts optional *pos* and *endpos* parameters that limit the search " @@ -2056,7 +2091,7 @@ msgstr "" "también acepta parámetros opcionales *pos* y *endpos* que limitan la región " "de búsqueda como para :meth:`search`." -#: ../Doc/library/re.rst:1191 +#: ../Doc/library/re.rst:1215 msgid "" "Similar to the :func:`finditer` function, using the compiled pattern, but " "also accepts optional *pos* and *endpos* parameters that limit the search " @@ -2066,15 +2101,15 @@ msgstr "" "también acepta parámetros opcionales *pos* y *endpos* que limitan la región " "de búsqueda como para :meth:`search`." -#: ../Doc/library/re.rst:1198 +#: ../Doc/library/re.rst:1222 msgid "Identical to the :func:`sub` function, using the compiled pattern." msgstr "Idéntico a la función :func:`sub`, usando el patrón compilado." -#: ../Doc/library/re.rst:1203 +#: ../Doc/library/re.rst:1227 msgid "Identical to the :func:`subn` function, using the compiled pattern." msgstr "Idéntico a la función :func:`subn`, usando el patrón compilado." -#: ../Doc/library/re.rst:1208 +#: ../Doc/library/re.rst:1232 msgid "" "The regex matching flags. This is a combination of the flags given to :func:" "`.compile`, any ``(?...)`` inline flags in the pattern, and implicit flags " @@ -2085,11 +2120,11 @@ msgstr "" "línea en el patrón, y los indicadores implícitos como :data:`UNICODE` si el " "patrón es una cadena de Unicode." -#: ../Doc/library/re.rst:1215 +#: ../Doc/library/re.rst:1239 msgid "The number of capturing groups in the pattern." msgstr "El número de grupos de captura en el patrón." -#: ../Doc/library/re.rst:1220 +#: ../Doc/library/re.rst:1244 msgid "" "A dictionary mapping any symbolic group names defined by ``(?P)`` to " "group numbers. The dictionary is empty if no symbolic groups were used in " @@ -2099,12 +2134,12 @@ msgstr "" "``(?P)`` para agrupar números. El diccionario está vacío si no se " "utilizaron grupos simbólicos en el patrón." -#: ../Doc/library/re.rst:1227 +#: ../Doc/library/re.rst:1251 msgid "The pattern string from which the pattern object was compiled." msgstr "" "La cadena de patrones a partir de la cual el objeto de patrón fue compilado." -#: ../Doc/library/re.rst:1230 +#: ../Doc/library/re.rst:1254 msgid "" "Added support of :func:`copy.copy` and :func:`copy.deepcopy`. Compiled " "regular expression objects are considered atomic." @@ -2112,11 +2147,11 @@ msgstr "" "Se añadió el soporte de :func:`copy.copy` y :func:`copy.deepcopy`. Los " "objetos expresión regular compilados se consideran atómicos." -#: ../Doc/library/re.rst:1238 +#: ../Doc/library/re.rst:1262 msgid "Match Objects" msgstr "Objetos de coincidencia" -#: ../Doc/library/re.rst:1240 +#: ../Doc/library/re.rst:1264 msgid "" "Match objects always have a boolean value of ``True``. Since :meth:`~Pattern." "match` and :meth:`~Pattern.search` return ``None`` when there is no match, " @@ -2127,12 +2162,17 @@ msgstr "" "retornan ``None`` cuando no hay coincidencia. Se puede probar si hubo una " "coincidencia con una simple declaración ``if``::" -#: ../Doc/library/re.rst:1249 -msgid "Match objects support the following methods and attributes:" +#: ../Doc/library/re.rst:1275 +msgid "Match object returned by successful ``match``\\ es and ``search``\\ es." msgstr "" -"Los objetos de coincidencia admiten los siguientes métodos y atributos:" -#: ../Doc/library/re.rst:1254 +#: ../Doc/library/re.rst:1277 +msgid "" +":py:class:`re.Match` supports ``[]`` to indicate a Unicode (str) or bytes " +"match. See :ref:`types-genericalias`." +msgstr "" + +#: ../Doc/library/re.rst:1283 msgid "" "Return the string obtained by doing backslash substitution on the template " "string *template*, as done by the :meth:`~Pattern.sub` method. Escapes such " @@ -2147,7 +2187,7 @@ msgstr "" "referencias inversas con nombre (``\\g<1>``, ``\\g``) son reemplazadas " "por el contenido del grupo correspondiente." -#: ../Doc/library/re.rst:1266 +#: ../Doc/library/re.rst:1295 msgid "" "Returns one or more subgroups of the match. If there is a single argument, " "the result is a single string; if there are multiple arguments, the result " @@ -2174,7 +2214,7 @@ msgstr "" "Si un grupo está contenido en una parte del patrón que coincidió varias " "veces, se retorna la última coincidencia. ::" -#: ../Doc/library/re.rst:1288 +#: ../Doc/library/re.rst:1317 msgid "" "If the regular expression uses the ``(?P...)`` syntax, the *groupN* " "arguments may also be strings identifying groups by their group name. If a " @@ -2186,21 +2226,21 @@ msgstr "" "nombre de grupo. Si un argumento de cadena no se usa como nombre de grupo " "en el patrón, se produce una excepción :exc:`IndexError`." -#: ../Doc/library/re.rst:1293 +#: ../Doc/library/re.rst:1322 msgid "A moderately complicated example::" msgstr "Un ejemplo moderadamente complicado::" -#: ../Doc/library/re.rst:1301 +#: ../Doc/library/re.rst:1330 msgid "Named groups can also be referred to by their index::" msgstr "Los grupos nombrados también pueden ser referidos por su índice::" -#: ../Doc/library/re.rst:1308 +#: ../Doc/library/re.rst:1337 msgid "If a group matches multiple times, only the last match is accessible::" msgstr "" "Si un grupo coincide varias veces, sólo se puede acceder a la última " "coincidencia::" -#: ../Doc/library/re.rst:1317 +#: ../Doc/library/re.rst:1346 msgid "" "This is identical to ``m.group(g)``. This allows easier access to an " "individual group from a match::" @@ -2208,11 +2248,11 @@ msgstr "" "Esto es idéntico a ``m.group(g)``. Esto permite un acceso más fácil a un " "grupo individual de una coincidencia::" -#: ../Doc/library/re.rst:1328 +#: ../Doc/library/re.rst:1357 msgid "Named groups are supported as well::" msgstr "Los grupos con nombre también son compatibles::" -#: ../Doc/library/re.rst:1341 +#: ../Doc/library/re.rst:1370 msgid "" "Return a tuple containing all the subgroups of the match, from 1 up to " "however many groups are in the pattern. The *default* argument is used for " @@ -2223,11 +2263,11 @@ msgstr "" "defecto\") se utiliza para los grupos que no participaron en la " "coincidencia; por defecto es ``None``." -#: ../Doc/library/re.rst:1345 ../Doc/library/re.rst:1567 +#: ../Doc/library/re.rst:1374 ../Doc/library/re.rst:1599 msgid "For example::" msgstr "Por ejemplo::" -#: ../Doc/library/re.rst:1351 +#: ../Doc/library/re.rst:1380 msgid "" "If we make the decimal place and everything after it optional, not all " "groups might participate in the match. These groups will default to " @@ -2237,7 +2277,7 @@ msgstr "" "grupos podrían participar en la coincidencia. Estos grupos serán por " "defecto ``None`` a menos que se utilice el argumento *default*::" -#: ../Doc/library/re.rst:1364 +#: ../Doc/library/re.rst:1393 msgid "" "Return a dictionary containing all the *named* subgroups of the match, keyed " "by the subgroup name. The *default* argument is used for groups that did " @@ -2248,7 +2288,7 @@ msgstr "" "defecto* se usa para los grupos que no participaron en la coincidencia; por " "defecto es ``None``. Por ejemplo::" -#: ../Doc/library/re.rst:1376 +#: ../Doc/library/re.rst:1405 msgid "" "Return the indices of the start and end of the substring matched by *group*; " "*group* defaults to zero (meaning the whole matched substring). Return " @@ -2263,7 +2303,7 @@ msgstr "" "contribuyó a la coincidencia, la subcadena coincidente con el grupo *g* " "(equivalente a ``m.group(g)``) es ::" -#: ../Doc/library/re.rst:1384 +#: ../Doc/library/re.rst:1413 msgid "" "Note that ``m.start(group)`` will equal ``m.end(group)`` if *group* matched " "a null string. For example, after ``m = re.search('b(c?)', 'cba')``, ``m." @@ -2276,13 +2316,13 @@ msgstr "" "start(1)`` y ``m.end(1)`` son ambos 2, y ``m.start(2)`` produce una " "excepción :exc:`IndexError`." -#: ../Doc/library/re.rst:1389 +#: ../Doc/library/re.rst:1418 msgid "An example that will remove *remove_this* from email addresses::" msgstr "" "Un ejemplo que eliminará *remove_this* (\"quita esto\") de las direcciones " "de correo electrónico::" -#: ../Doc/library/re.rst:1399 +#: ../Doc/library/re.rst:1428 msgid "" "For a match *m*, return the 2-tuple ``(m.start(group), m.end(group))``. Note " "that if *group* did not contribute to the match, this is ``(-1, -1)``. " @@ -2292,7 +2332,7 @@ msgstr "" "fin(grupo))``. Notar que si *group* no contribuyó a la coincidencia, esto es " "``(-1, -1)``. *group* por se convierte a cero para toda la coincidencia." -#: ../Doc/library/re.rst:1406 +#: ../Doc/library/re.rst:1435 msgid "" "The value of *pos* which was passed to the :meth:`~Pattern.search` or :meth:" "`~Pattern.match` method of a :ref:`regex object `. This is the " @@ -2302,7 +2342,7 @@ msgstr "" "`~Pattern.match` de un :ref:`objeto regex `. Este es el índice " "de la cadena en la que el motor RE comenzó a buscar una coincidencia." -#: ../Doc/library/re.rst:1413 +#: ../Doc/library/re.rst:1442 msgid "" "The value of *endpos* which was passed to the :meth:`~Pattern.search` or :" "meth:`~Pattern.match` method of a :ref:`regex object `. This is " @@ -2312,7 +2352,7 @@ msgstr "" "`~Pattern.match` de un :ref:`objeto regex `. Este es el índice " "de la cadena más allá de la cual el motor RE no irá." -#: ../Doc/library/re.rst:1420 +#: ../Doc/library/re.rst:1449 msgid "" "The integer index of the last matched capturing group, or ``None`` if no " "group was matched at all. For example, the expressions ``(a)b``, ``((a)" @@ -2326,7 +2366,7 @@ msgstr "" "``'ab'``, mientras que la expresión ``(a)(b)`` tendrá ``lastindex == 2``, si " "se aplica a la misma cadena." -#: ../Doc/library/re.rst:1429 +#: ../Doc/library/re.rst:1458 msgid "" "The name of the last matched capturing group, or ``None`` if the group " "didn't have a name, or if no group was matched at all." @@ -2334,7 +2374,7 @@ msgstr "" "El nombre del último grupo capturador coincidente, o``None`` si el grupo no " "tenía nombre, o si no había ningún grupo coincidente." -#: ../Doc/library/re.rst:1435 +#: ../Doc/library/re.rst:1464 msgid "" "The :ref:`regular expression object ` whose :meth:`~Pattern." "match` or :meth:`~Pattern.search` method produced this match instance." @@ -2343,11 +2383,11 @@ msgstr "" "`~Pattern.match` o :meth:`~Pattern.search` produce esta instancia de " "coincidencia." -#: ../Doc/library/re.rst:1441 +#: ../Doc/library/re.rst:1470 msgid "The string passed to :meth:`~Pattern.match` or :meth:`~Pattern.search`." msgstr "La cadena pasada a :meth:`~Pattern.match` o :meth:`~Pattern.search`." -#: ../Doc/library/re.rst:1444 +#: ../Doc/library/re.rst:1473 msgid "" "Added support of :func:`copy.copy` and :func:`copy.deepcopy`. Match objects " "are considered atomic." @@ -2355,15 +2395,15 @@ msgstr "" "Se añadió el soporte de :func:`copy.copy` y :func:`copy.deepcopy`. Los " "objetos de coincidencia se consideran atómicos." -#: ../Doc/library/re.rst:1452 +#: ../Doc/library/re.rst:1481 msgid "Regular Expression Examples" msgstr "Ejemplos de expresiones regulares" -#: ../Doc/library/re.rst:1456 +#: ../Doc/library/re.rst:1485 msgid "Checking for a Pair" msgstr "Buscando un par" -#: ../Doc/library/re.rst:1458 +#: ../Doc/library/re.rst:1487 msgid "" "In this example, we'll use the following helper function to display match " "objects a little more gracefully::" @@ -2371,7 +2411,7 @@ msgstr "" "En este ejemplo, se utilizará la siguiente función de ayuda para mostrar los " "objetos de coincidencia con un poco más de elegancia::" -#: ../Doc/library/re.rst:1466 +#: ../Doc/library/re.rst:1495 msgid "" "Suppose you are writing a poker program where a player's hand is represented " "as a 5-character string with each character representing a card, \"a\" for " @@ -2384,13 +2424,13 @@ msgstr "" "para la reina, \"j\" para la jota, \"t\" para el 10, y del \" 2\" al \"9\" " "representando la carta con ese valor." -#: ../Doc/library/re.rst:1471 +#: ../Doc/library/re.rst:1500 msgid "To see if a given string is a valid hand, one could do the following::" msgstr "" "Para ver si una cadena dada es una mano válida, se podría hacer lo " "siguiente::" -#: ../Doc/library/re.rst:1481 +#: ../Doc/library/re.rst:1510 msgid "" "That last hand, ``\"727ak\"``, contained a pair, or two of the same valued " "cards. To match this with a regular expression, one could use backreferences " @@ -2400,7 +2440,7 @@ msgstr "" "de valor. Para igualar esto con una expresión regular, se podrían usar " "referencias inversas como tales::" -#: ../Doc/library/re.rst:1491 +#: ../Doc/library/re.rst:1520 msgid "" "To find out what card the pair consists of, one could use the :meth:`~Match." "group` method of the match object in the following manner::" @@ -2408,16 +2448,17 @@ msgstr "" "Para averiguar en qué carta consiste el par, se podría utilizar el método :" "meth:`~Match.group` del objeto de coincidencia de la siguiente manera::" -#: ../Doc/library/re.rst:1510 +#: ../Doc/library/re.rst:1539 msgid "Simulating scanf()" msgstr "Simular scanf()" -#: ../Doc/library/re.rst:1514 +#: ../Doc/library/re.rst:1543 +#, fuzzy msgid "" -"Python does not currently have an equivalent to :c:func:`scanf`. Regular " +"Python does not currently have an equivalent to :c:func:`!scanf`. Regular " "expressions are generally more powerful, though also more verbose, than :c:" -"func:`scanf` format strings. The table below offers some more-or-less " -"equivalent mappings between :c:func:`scanf` format tokens and regular " +"func:`!scanf` format strings. The table below offers some more-or-less " +"equivalent mappings between :c:func:`!scanf` format tokens and regular " "expressions." msgstr "" "Python no tiene actualmente un equivalente a :c:func:`scanf`. Las " @@ -2426,121 +2467,130 @@ msgstr "" "ofrece algunos mapeos más o menos equivalentes entre tokens de formato :c:" "func:`scanf` y expresiones regulares." -#: ../Doc/library/re.rst:1521 -msgid ":c:func:`scanf` Token" +#: ../Doc/library/re.rst:1550 +#, fuzzy +msgid ":c:func:`!scanf` Token" msgstr "Token :c:func:`scanf`" -#: ../Doc/library/re.rst:1521 +#: ../Doc/library/re.rst:1550 msgid "Regular Expression" msgstr "Expresión regular" -#: ../Doc/library/re.rst:1523 +#: ../Doc/library/re.rst:1552 #, python-format msgid "``%c``" msgstr "``%c``" -#: ../Doc/library/re.rst:1525 +#: ../Doc/library/re.rst:1554 #, python-format msgid "``%5c``" msgstr "``%5c``" -#: ../Doc/library/re.rst:1525 +#: ../Doc/library/re.rst:1554 msgid "``.{5}``" msgstr "``.{5}``" -#: ../Doc/library/re.rst:1527 +#: ../Doc/library/re.rst:1556 #, python-format msgid "``%d``" msgstr "``%d``" -#: ../Doc/library/re.rst:1527 +#: ../Doc/library/re.rst:1556 msgid "``[-+]?\\d+``" msgstr "``[-+]?\\d+``" -#: ../Doc/library/re.rst:1529 +#: ../Doc/library/re.rst:1558 #, python-format msgid "``%e``, ``%E``, ``%f``, ``%g``" msgstr "``%e``, ``%E``, ``%f``, ``%g``" -#: ../Doc/library/re.rst:1529 +#: ../Doc/library/re.rst:1558 msgid "``[-+]?(\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?``" msgstr "``[-+]?(\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?``" -#: ../Doc/library/re.rst:1531 +#: ../Doc/library/re.rst:1560 #, python-format msgid "``%i``" msgstr "``%i``" -#: ../Doc/library/re.rst:1531 +#: ../Doc/library/re.rst:1560 msgid "``[-+]?(0[xX][\\dA-Fa-f]+|0[0-7]*|\\d+)``" msgstr "``[-+]?(0[xX][\\dA-Fa-f]+|0[0-7]*|\\d+)``" -#: ../Doc/library/re.rst:1533 +#: ../Doc/library/re.rst:1562 #, python-format msgid "``%o``" msgstr "``%o``" -#: ../Doc/library/re.rst:1533 +#: ../Doc/library/re.rst:1562 msgid "``[-+]?[0-7]+``" msgstr "``[-+]?[0-7]+``" -#: ../Doc/library/re.rst:1535 +#: ../Doc/library/re.rst:1564 #, python-format msgid "``%s``" msgstr "``%s``" -#: ../Doc/library/re.rst:1535 +#: ../Doc/library/re.rst:1564 msgid "``\\S+``" msgstr "``\\S+``" -#: ../Doc/library/re.rst:1537 +#: ../Doc/library/re.rst:1566 #, python-format msgid "``%u``" msgstr "``%u``" -#: ../Doc/library/re.rst:1537 +#: ../Doc/library/re.rst:1566 msgid "``\\d+``" msgstr "``\\d+``" -#: ../Doc/library/re.rst:1539 +#: ../Doc/library/re.rst:1568 #, python-format msgid "``%x``, ``%X``" msgstr "``%x``, ``%X``" -#: ../Doc/library/re.rst:1539 +#: ../Doc/library/re.rst:1568 msgid "``[-+]?(0[xX])?[\\dA-Fa-f]+``" msgstr "``[-+]?(0[xX])?[\\dA-Fa-f]+``" -#: ../Doc/library/re.rst:1542 +#: ../Doc/library/re.rst:1571 msgid "To extract the filename and numbers from a string like ::" msgstr "Para extraer el nombre de archivo y los números de una cadena como ::" -#: ../Doc/library/re.rst:1546 -msgid "you would use a :c:func:`scanf` format like ::" +#: ../Doc/library/re.rst:1575 +#, fuzzy +msgid "you would use a :c:func:`!scanf` format like ::" msgstr "se usaría un formato :c:func:`scanf` como ::" -#: ../Doc/library/re.rst:1550 +#: ../Doc/library/re.rst:1579 msgid "The equivalent regular expression would be ::" msgstr "La expresión regular equivalente sería ::" -#: ../Doc/library/re.rst:1558 +#: ../Doc/library/re.rst:1587 msgid "search() vs. match()" msgstr "search() vs. match()" -#: ../Doc/library/re.rst:1562 +#: ../Doc/library/re.rst:1591 msgid "" -"Python offers two different primitive operations based on regular " -"expressions: :func:`re.match` checks for a match only at the beginning of " -"the string, while :func:`re.search` checks for a match anywhere in the " -"string (this is what Perl does by default)." +"Python offers different primitive operations based on regular expressions:" +msgstr "" + +#: ../Doc/library/re.rst:1593 +#, fuzzy +msgid ":func:`re.match` checks for a match only at the beginning of the string" +msgstr "Coincide sólo el final de la cadena." + +#: ../Doc/library/re.rst:1594 +msgid "" +":func:`re.search` checks for a match anywhere in the string (this is what " +"Perl does by default)" +msgstr "" + +#: ../Doc/library/re.rst:1596 +msgid ":func:`re.fullmatch` checks for entire string to be a match" msgstr "" -"Python ofrece dos operaciones primitivas diferentes basadas en expresiones " -"regulares: :func:`re.match` comprueba si hay una coincidencia sólo al " -"principio de la cadena, mientras que :func:`re.search` comprueba si hay una " -"coincidencia en cualquier parte de la cadena (esto es lo que hace Perl por " -"defecto)." -#: ../Doc/library/re.rst:1573 +#: ../Doc/library/re.rst:1608 msgid "" "Regular expressions beginning with ``'^'`` can be used with :func:`search` " "to restrict the match at the beginning of the string::" @@ -2548,7 +2598,7 @@ msgstr "" "Las expresiones regulares que comienzan con ``'^'`` pueden ser usadas con :" "func:`search` para restringir la coincidencia al principio de la cadena::" -#: ../Doc/library/re.rst:1581 +#: ../Doc/library/re.rst:1616 msgid "" "Note however that in :const:`MULTILINE` mode :func:`match` only matches at " "the beginning of the string, whereas using :func:`search` with a regular " @@ -2560,11 +2610,11 @@ msgstr "" "una expresión regular que comienza con ``'^'`` coincidirá al principio de " "cada línea. ::" -#: ../Doc/library/re.rst:1591 +#: ../Doc/library/re.rst:1626 msgid "Making a Phonebook" msgstr "Haciendo una guía telefónica" -#: ../Doc/library/re.rst:1593 +#: ../Doc/library/re.rst:1628 msgid "" ":func:`split` splits a string into a list delimited by the passed pattern. " "The method is invaluable for converting textual data into data structures " @@ -2577,7 +2627,7 @@ msgstr "" "Python, como se demuestra en el siguiente ejemplo en el que se crea una guía " "telefónica." -#: ../Doc/library/re.rst:1598 +#: ../Doc/library/re.rst:1633 msgid "" "First, here is the input. Normally it may come from a file, here we are " "using triple-quoted string syntax" @@ -2585,7 +2635,7 @@ msgstr "" "Primero, aquí está la información. Normalmente puede venir de un archivo, " "aquí se usa la sintaxis de cadena de triple comilla" -#: ../Doc/library/re.rst:1611 +#: ../Doc/library/re.rst:1646 msgid "" "The entries are separated by one or more newlines. Now we convert the string " "into a list with each nonempty line having its own entry:" @@ -2594,7 +2644,7 @@ msgstr "" "se convierte la cadena en una lista en la que cada línea no vacía tiene su " "propia entrada:" -#: ../Doc/library/re.rst:1624 +#: ../Doc/library/re.rst:1659 msgid "" "Finally, split each entry into a list with first name, last name, telephone " "number, and address. We use the ``maxsplit`` parameter of :func:`split` " @@ -2605,7 +2655,7 @@ msgstr "" "máxima) de :func:`split` porque la dirección tiene espacios dentro del " "patrón de división:" -#: ../Doc/library/re.rst:1637 +#: ../Doc/library/re.rst:1672 msgid "" "The ``:?`` pattern matches the colon after the last name, so that it does " "not occur in the result list. With a ``maxsplit`` of ``4``, we could " @@ -2615,11 +2665,11 @@ msgstr "" "que no aparezca en la lista de resultados. Con ``maxsplit`` de ``4``, se " "podría separar el número de casa del nombre de la calle:" -#: ../Doc/library/re.rst:1652 +#: ../Doc/library/re.rst:1687 msgid "Text Munging" msgstr "Mungear texto" -#: ../Doc/library/re.rst:1654 +#: ../Doc/library/re.rst:1689 msgid "" ":func:`sub` replaces every occurrence of a pattern with a string or the " "result of a function. This example demonstrates using :func:`sub` with a " @@ -2632,11 +2682,11 @@ msgstr "" "todos los caracteres en cada palabra de una frase excepto el primer y último " "carácter::" -#: ../Doc/library/re.rst:1671 +#: ../Doc/library/re.rst:1707 msgid "Finding all Adverbs" msgstr "Encontrar todos los adverbios" -#: ../Doc/library/re.rst:1673 +#: ../Doc/library/re.rst:1709 msgid "" ":func:`findall` matches *all* occurrences of a pattern, not just the first " "one as :func:`search` does. For example, if a writer wanted to find all of " @@ -2648,17 +2698,18 @@ msgstr "" "quisiera encontrar todos los adverbios en algún texto, podría usar :func:" "`findall` de la siguiente manera::" -#: ../Doc/library/re.rst:1684 +#: ../Doc/library/re.rst:1720 msgid "Finding all Adverbs and their Positions" msgstr "Encontrar todos los adverbios y sus posiciones" -#: ../Doc/library/re.rst:1686 +#: ../Doc/library/re.rst:1722 +#, fuzzy msgid "" "If one wants more information about all matches of a pattern than the " -"matched text, :func:`finditer` is useful as it provides :ref:`match objects " -"` instead of strings. Continuing with the previous example, " -"if a writer wanted to find all of the adverbs *and their positions* in some " -"text, they would use :func:`finditer` in the following manner::" +"matched text, :func:`finditer` is useful as it provides :class:`~re.Match` " +"objects instead of strings. Continuing with the previous example, if a " +"writer wanted to find all of the adverbs *and their positions* in some text, " +"they would use :func:`finditer` in the following manner::" msgstr "" "Si uno quiere más información sobre todas las coincidencias de un patrón en " "lugar del texto coincidente, :func:`finditer` es útil ya que proporciona :" @@ -2667,11 +2718,11 @@ msgstr "" "los adverbios *y sus posiciones* en algún texto, usaría :func:`finditer` de " "la siguiente manera::" -#: ../Doc/library/re.rst:1700 +#: ../Doc/library/re.rst:1736 msgid "Raw String Notation" msgstr "Notación de cadena *raw*" -#: ../Doc/library/re.rst:1702 +#: ../Doc/library/re.rst:1738 msgid "" "Raw string notation (``r\"text\"``) keeps regular expressions sane. Without " "it, every backslash (``'\\'``) in a regular expression would have to be " @@ -2683,7 +2734,7 @@ msgstr "" "(``'\\'``) en una expresión regular tendría que ser precedida por otra. Por " "ejemplo, las dos siguientes líneas de código son funcionalmente idénticas::" -#: ../Doc/library/re.rst:1712 +#: ../Doc/library/re.rst:1748 msgid "" "When one wants to match a literal backslash, it must be escaped in the " "regular expression. With raw string notation, this means ``r\"\\\\\"``. " @@ -2695,11 +2746,11 @@ msgstr "" "\"``. Sin la notación de cadena, uno debe usar ``\"\\\\\\\\\"``, haciendo " "que las siguientes líneas de código sean funcionalmente idénticas::" -#: ../Doc/library/re.rst:1724 +#: ../Doc/library/re.rst:1760 msgid "Writing a Tokenizer" msgstr "Escribir un Tokenizador" -#: ../Doc/library/re.rst:1726 +#: ../Doc/library/re.rst:1762 msgid "" "A `tokenizer or scanner `_ " "analyzes a string to categorize groups of characters. This is a useful " @@ -2710,7 +2761,7 @@ msgstr "" "caracteres. Este es un primer paso útil para escribir un compilador o " "intérprete." -#: ../Doc/library/re.rst:1730 +#: ../Doc/library/re.rst:1766 msgid "" "The text categories are specified with regular expressions. The technique " "is to combine those into a single master regular expression and to loop over " @@ -2720,11 +2771,11 @@ msgstr "" "técnica consiste en combinarlas en una única expresión regular maestra y en " "hacer un bucle sobre las sucesivas coincidencias::" -#: ../Doc/library/re.rst:1786 +#: ../Doc/library/re.rst:1822 msgid "The tokenizer produces the following output::" msgstr "El tokenizador produce el siguiente resultado::" -#: ../Doc/library/re.rst:1809 +#: ../Doc/library/re.rst:1845 msgid "" "Friedl, Jeffrey. Mastering Regular Expressions. 3rd ed., O'Reilly Media, " "2009. The third edition of the book no longer covers Python at all, but the " @@ -2735,3 +2786,272 @@ msgstr "" "2009. La tercera edición del libro ya no abarca a Python en absoluto, pero " "la primera edición cubría la escritura de buenos patrones de expresiones " "regulares con gran detalle." + +#: ../Doc/library/re.rst:99 +msgid ". (dot)" +msgstr "" + +#: ../Doc/library/re.rst:99 ../Doc/library/re.rst:106 ../Doc/library/re.rst:112 +#: ../Doc/library/re.rst:123 ../Doc/library/re.rst:130 +#: ../Doc/library/re.rst:137 ../Doc/library/re.rst:143 +#: ../Doc/library/re.rst:157 ../Doc/library/re.rst:181 +#: ../Doc/library/re.rst:220 ../Doc/library/re.rst:235 +#: ../Doc/library/re.rst:244 ../Doc/library/re.rst:257 +#: ../Doc/library/re.rst:263 ../Doc/library/re.rst:296 +#: ../Doc/library/re.rst:309 ../Doc/library/re.rst:319 +#: ../Doc/library/re.rst:345 ../Doc/library/re.rst:394 +#: ../Doc/library/re.rst:426 ../Doc/library/re.rst:432 +#: ../Doc/library/re.rst:437 ../Doc/library/re.rst:444 +#: ../Doc/library/re.rst:451 ../Doc/library/re.rst:478 +#: ../Doc/library/re.rst:488 ../Doc/library/re.rst:511 +#: ../Doc/library/re.rst:523 ../Doc/library/re.rst:528 +#: ../Doc/library/re.rst:544 ../Doc/library/re.rst:555 +#: ../Doc/library/re.rst:567 ../Doc/library/re.rst:574 +#: ../Doc/library/re.rst:588 ../Doc/library/re.rst:595 +#: ../Doc/library/re.rst:609 ../Doc/library/re.rst:618 +#: ../Doc/library/re.rst:623 ../Doc/library/re.rst:798 +#: ../Doc/library/re.rst:1003 +#, fuzzy +msgid "in regular expressions" +msgstr "Expresión regular" + +#: ../Doc/library/re.rst:106 ../Doc/library/re.rst:263 +msgid "^ (caret)" +msgstr "" + +#: ../Doc/library/re.rst:112 +msgid "$ (dollar)" +msgstr "" + +#: ../Doc/library/re.rst:123 +msgid "* (asterisk)" +msgstr "" + +#: ../Doc/library/re.rst:130 +msgid "+ (plus)" +msgstr "" + +#: ../Doc/library/re.rst:137 +msgid "? (question mark)" +msgstr "" + +#: ../Doc/library/re.rst:143 +msgid "*?" +msgstr "" + +#: ../Doc/library/re.rst:143 +msgid "+?" +msgstr "" + +#: ../Doc/library/re.rst:143 +msgid "??" +msgstr "" + +#: ../Doc/library/re.rst:157 +msgid "*+" +msgstr "" + +#: ../Doc/library/re.rst:157 +msgid "++" +msgstr "" + +#: ../Doc/library/re.rst:157 +msgid "?+" +msgstr "" + +#: ../Doc/library/re.rst:181 +msgid "{} (curly brackets)" +msgstr "" + +#: ../Doc/library/re.rst:220 ../Doc/library/re.rst:257 +#: ../Doc/library/re.rst:511 +msgid "\\ (backslash)" +msgstr "" + +#: ../Doc/library/re.rst:235 +msgid "[] (square brackets)" +msgstr "" + +#: ../Doc/library/re.rst:244 +msgid "- (minus)" +msgstr "" + +#: ../Doc/library/re.rst:296 +msgid "| (vertical bar)" +msgstr "" + +#: ../Doc/library/re.rst:309 +msgid "() (parentheses)" +msgstr "" + +#: ../Doc/library/re.rst:319 +msgid "(?" +msgstr "" + +#: ../Doc/library/re.rst:345 +msgid "(?:" +msgstr "" + +#: ../Doc/library/re.rst:394 +msgid "(?P<" +msgstr "" + +#: ../Doc/library/re.rst:426 +msgid "(?P=" +msgstr "" + +#: ../Doc/library/re.rst:432 +msgid "(?#" +msgstr "" + +#: ../Doc/library/re.rst:437 +msgid "(?=" +msgstr "" + +#: ../Doc/library/re.rst:444 +msgid "(?!" +msgstr "" + +#: ../Doc/library/re.rst:451 +msgid "(?<=" +msgstr "" + +#: ../Doc/library/re.rst:478 +msgid "(?\n" -"Language-Team: \n" "Language: es_AR\n" +"Language-Team: \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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/readline.rst:2 msgid ":mod:`readline` --- GNU readline interface" @@ -45,12 +44,14 @@ msgstr "" "como de los avisos ofrecidos por la función incorporada :func:`input`." #: ../Doc/library/readline.rst:20 +#, fuzzy msgid "" "Readline keybindings may be configured via an initialization file, typically " "``.inputrc`` in your home directory. See `Readline Init File `_ in the GNU Readline " -"manual for information about the format and allowable constructs of that " -"file, and the capabilities of the Readline library in general." +"tiswww.cwru.edu/php/chet/readline/rluserman.html#Readline-Init-File>`_ in " +"the GNU Readline manual for information about the format and allowable " +"constructs of that file, and the capabilities of the Readline library in " +"general." msgstr "" "Las combinaciones de teclas de Readline se pueden configurar mediante un " "archivo de inicialización, generalmente ``.inputrc`` en su directorio de " diff --git a/library/reprlib.po b/library/reprlib.po index cc338d4332..ad5e1501d5 100644 --- a/library/reprlib.po +++ b/library/reprlib.po @@ -11,14 +11,14 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \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" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/reprlib.rst:2 msgid ":mod:`reprlib` --- Alternate :func:`repr` implementation" @@ -43,7 +43,7 @@ msgstr "" msgid "This module provides a class, an instance, and a function:" msgstr "Este módulo provee una clase, una instancia y una función:" -#: ../Doc/library/reprlib.rst:22 +#: ../Doc/library/reprlib.rst:24 msgid "" "Class which provides formatting services useful in implementing functions " "similar to the built-in :func:`repr`; size limits for different object " @@ -55,7 +55,28 @@ msgstr "" "diferentes tipos de objetos son añadidos para evitar la generación de " "representaciones que son excesivamente largas." -#: ../Doc/library/reprlib.rst:29 +#: ../Doc/library/reprlib.rst:28 +msgid "" +"The keyword arguments of the constructor can be used as a shortcut to set " +"the attributes of the :class:`Repr` instance. Which means that the following " +"initialization::" +msgstr "" + +#: ../Doc/library/reprlib.rst:34 +msgid "Is equivalent to::" +msgstr "" + +#: ../Doc/library/reprlib.rst:39 +msgid "" +"See section `Repr Objects`_ for more information about :class:`Repr` " +"attributes." +msgstr "" + +#: ../Doc/library/reprlib.rst:42 +msgid "Allow attributes to be set via keyword arguments." +msgstr "" + +#: ../Doc/library/reprlib.rst:48 msgid "" "This is an instance of :class:`Repr` which is used to provide the :func:`." "repr` function described below. Changing the attributes of this object will " @@ -65,7 +86,7 @@ msgstr "" "func:`.repr` descrita debajo. Cambiar los atributos de este objeto afectará " "los límites de tamaño usados por :func:`.repr` y el depurador de Python." -#: ../Doc/library/reprlib.rst:37 +#: ../Doc/library/reprlib.rst:56 msgid "" "This is the :meth:`~Repr.repr` method of ``aRepr``. It returns a string " "similar to that returned by the built-in function of the same name, but with " @@ -75,7 +96,7 @@ msgstr "" "similar a la retornada por la función integrada del mismo nombre, pero con " "límites en la mayoría de tamaños." -#: ../Doc/library/reprlib.rst:41 +#: ../Doc/library/reprlib.rst:60 msgid "" "In addition to size-limiting tools, the module also provides a decorator for " "detecting recursive calls to :meth:`__repr__` and substituting a placeholder " @@ -85,7 +106,7 @@ msgstr "" "un decorador para detectar invocaciones recursivas a :meth:`__repr__` y " "sustituyendo por un marcador de posición de cadena en su lugar." -#: ../Doc/library/reprlib.rst:50 +#: ../Doc/library/reprlib.rst:69 msgid "" "Decorator for :meth:`__repr__` methods to detect recursive calls within the " "same thread. If a recursive call is made, the *fillvalue* is returned, " @@ -96,11 +117,11 @@ msgstr "" "*fillvalue* es retornado, si no, se produce la invocación :meth:`__repr__` " "habitual. Por ejemplo:" -#: ../Doc/library/reprlib.rst:72 +#: ../Doc/library/reprlib.rst:91 msgid "Repr Objects" msgstr "Objetos Repr" -#: ../Doc/library/reprlib.rst:74 +#: ../Doc/library/reprlib.rst:93 msgid "" ":class:`Repr` instances provide several attributes which can be used to " "provide size limits for the representations of different object types, and " @@ -110,14 +131,14 @@ msgstr "" "para proporcionar límites de tamaño para las representaciones de diferentes " "tipos de objetos, y métodos que formatean tipos de objetos específicos." -#: ../Doc/library/reprlib.rst:81 +#: ../Doc/library/reprlib.rst:100 msgid "" "This string is displayed for recursive references. It defaults to ``...``." msgstr "" "Esta cadena se muestra para referencias recursivas. El valor predeterminado " "es ``...``." -#: ../Doc/library/reprlib.rst:89 +#: ../Doc/library/reprlib.rst:108 msgid "" "Depth limit on the creation of recursive representations. The default is " "``6``." @@ -125,7 +146,7 @@ msgstr "" "Límite de profundidad en la creación de representaciones recursivas. El " "valor por defecto es ``6``." -#: ../Doc/library/reprlib.rst:100 +#: ../Doc/library/reprlib.rst:119 msgid "" "Limits on the number of entries represented for the named object type. The " "default is ``4`` for :attr:`maxdict`, ``5`` for :attr:`maxarray`, and ``6`` " @@ -135,7 +156,7 @@ msgstr "" "nombrado. El valor por defecto es ``4`` para :attr:`maxdict`, ``5`` para :" "attr:`maxarray`, y ``6`` para los otros." -#: ../Doc/library/reprlib.rst:107 +#: ../Doc/library/reprlib.rst:126 msgid "" "Maximum number of characters in the representation for an integer. Digits " "are dropped from the middle. The default is ``40``." @@ -143,7 +164,7 @@ msgstr "" "Máximo número de caracteres en la representación para un entero. Los dígitos " "son eliminados desde el medio. El valor por defecto es ``40``." -#: ../Doc/library/reprlib.rst:113 +#: ../Doc/library/reprlib.rst:132 msgid "" "Limit on the number of characters in the representation of the string. Note " "that the \"normal\" representation of the string is used as the character " @@ -156,7 +177,7 @@ msgstr "" "pueden ser desordenadas cuando la representación se ha acortado. El valor " "por defecto es ``30``." -#: ../Doc/library/reprlib.rst:121 +#: ../Doc/library/reprlib.rst:140 msgid "" "This limit is used to control the size of object types for which no specific " "formatting method is available on the :class:`Repr` object. It is applied in " @@ -167,7 +188,26 @@ msgstr "" "`Repr`. Se aplica de una manera similar a :attr:`maxstring`. El valor por " "defecto es ``20``." -#: ../Doc/library/reprlib.rst:128 +#: ../Doc/library/reprlib.rst:147 +msgid "" +"If this attribute is set to ``None`` (the default), the output is formatted " +"with no line breaks or indentation, like the standard :func:`repr`. For " +"example:" +msgstr "" + +#: ../Doc/library/reprlib.rst:160 +msgid "" +"If :attr:`~Repr.indent` is set to a string, each recursion level is placed " +"on its own line, indented by that string:" +msgstr "" + +#: ../Doc/library/reprlib.rst:181 +msgid "" +"Setting :attr:`~Repr.indent` to a positive integer value behaves as if it " +"was set to a string with that number of spaces:" +msgstr "" + +#: ../Doc/library/reprlib.rst:207 msgid "" "The equivalent to the built-in :func:`repr` that uses the formatting imposed " "by the instance." @@ -175,7 +215,7 @@ msgstr "" "El equivalente a la función integrada :func:`repr` que usa el formateo " "impuesto por la instancia." -#: ../Doc/library/reprlib.rst:134 +#: ../Doc/library/reprlib.rst:213 msgid "" "Recursive implementation used by :meth:`.repr`. This uses the type of *obj* " "to determine which formatting method to call, passing it *obj* and *level*. " @@ -189,7 +229,7 @@ msgstr "" "recursivo, con ``level - 1`` para el valor de *level* en la invocación " "recursiva." -#: ../Doc/library/reprlib.rst:143 +#: ../Doc/library/reprlib.rst:222 msgid "" "Formatting methods for specific types are implemented as methods with a name " "based on the type name. In the method name, **TYPE** is replaced by ``'_'." @@ -204,11 +244,11 @@ msgstr "" "específico que necesitan formatear recursivamente un valor deben invocar " "``self.repr1(subobj, level - 1)``." -#: ../Doc/library/reprlib.rst:153 +#: ../Doc/library/reprlib.rst:232 msgid "Subclassing Repr Objects" msgstr "Subclasificando Objetos Repr" -#: ../Doc/library/reprlib.rst:155 +#: ../Doc/library/reprlib.rst:234 msgid "" "The use of dynamic dispatching by :meth:`Repr.repr1` allows subclasses of :" "class:`Repr` to add support for additional built-in object types or to " @@ -219,3 +259,11 @@ msgstr "" "de :class:`Repr` añadir soporte para tipos adicionales de objetos integrados " "o modificar el manejo de tipos ya soportados. Este ejemplo muestra como el " "soporte especial para objetos de tipo archivo puede ser añadido." + +#: ../Doc/library/reprlib.rst:65 +msgid "..." +msgstr "" + +#: ../Doc/library/reprlib.rst:65 +msgid "placeholder" +msgstr "" diff --git a/library/resource.po b/library/resource.po index 0738e66109..89bbd12852 100644 --- a/library/resource.po +++ b/library/resource.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-31 10:07+0100\n" "Last-Translator: \n" "Language: es\n" @@ -19,8 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 2.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/resource.rst:2 msgid ":mod:`resource` --- Resource usage information" @@ -34,11 +33,12 @@ msgstr "" "Este módulo proporciona mecanismos básicos para medir y controlar los " "recursos del sistema utilizados por un programa." +#: ../Doc/includes/wasm-notavail.rst:3 #, fuzzy msgid ":ref:`Availability `: not Emscripten, not WASI." msgstr ":ref:`Disponibilidad `: FreeBSD 9 o posterior." -#: ../Doc/library/cpython/Doc/includes/wasm-notavail.rst:5 +#: ../Doc/includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly platforms " "``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for " @@ -217,7 +217,7 @@ msgstr "" "Genera un :ref:`evento de auditoría ` ``resource.prlimit`` con los " "argumentos ``pid``, ``resource``, ``limits``." -#: ../Doc/library/resource.rst:105 +#: ../Doc/library/resource.rst:104 #, fuzzy msgid ":ref:`Availability `: Linux >= 2.6.36 with glibc >= 2.13." msgstr "" @@ -330,7 +330,7 @@ msgid "The number of bytes that can be allocated for POSIX message queues." msgstr "" "El número de bytes que se pueden asignar a las colas de mensajes POSIX." -#: ../Doc/library/resource.rst:191 ../Doc/library/resource.rst:228 +#: ../Doc/library/resource.rst:190 ../Doc/library/resource.rst:227 #, fuzzy msgid ":ref:`Availability `: Linux >= 2.6.8." msgstr ":ref:`Disponibilidad `: Linux 2.6.8 o posterior." @@ -339,7 +339,7 @@ msgstr ":ref:`Disponibilidad `: Linux 2.6.8 o posterior." msgid "The ceiling for the process's nice level (calculated as 20 - rlim_cur)." msgstr "El techo del nivel del proceso *nice* (calculado como 20 - rlim_cur)." -#: ../Doc/library/resource.rst:200 ../Doc/library/resource.rst:209 +#: ../Doc/library/resource.rst:199 ../Doc/library/resource.rst:208 #, fuzzy msgid ":ref:`Availability `: Linux >= 2.6.12." msgstr ":ref:`Disponibilidad `: Linux 2.6.12 o posterior." @@ -357,7 +357,7 @@ msgstr "" "proceso de programación en tiempo real sin hacer una llamada al sistema de " "bloqueo." -#: ../Doc/library/resource.rst:219 +#: ../Doc/library/resource.rst:218 #, fuzzy msgid ":ref:`Availability `: Linux >= 2.6.25." msgstr ":ref:`Disponibilidad `: Linux 2.6.25 o posterior." @@ -376,17 +376,18 @@ msgstr "" "Esto limita la cantidad de memoria de red, y por lo tanto la cantidad de " "mbufs, que este usuario puede retener en todo momento." -#: ../Doc/library/resource.rst:238 ../Doc/library/resource.rst:251 -#: ../Doc/library/resource.rst:259 +#: ../Doc/library/resource.rst:237 ../Doc/library/resource.rst:250 +#: ../Doc/library/resource.rst:258 #, fuzzy msgid ":ref:`Availability `: FreeBSD." msgstr ":ref:`Disponibilidad `: FreeBSD 9 o posterior." #: ../Doc/library/resource.rst:243 +#, fuzzy msgid "" "The maximum size (in bytes) of the swap space that may be reserved or used " "by all of this user id's processes. This limit is enforced only if bit 1 of " -"the vm.overcommit sysctl is set. Please see `tuning(7) `__ for a complete description of " "this sysctl." msgstr "" @@ -406,7 +407,7 @@ msgstr "" msgid "The maximum number of kqueues this user id is allowed to create." msgstr "El número máximo de kqueues que este ID de usuario puede crear." -#: ../Doc/library/resource.rst:267 +#: ../Doc/library/resource.rst:266 #, fuzzy msgid ":ref:`Availability `: FreeBSD >= 11." msgstr ":ref:`Disponibilidad `: FreeBSD 11 o posterior." diff --git a/library/runpy.po b/library/runpy.po index b33bc81f70..e750507f84 100644 --- a/library/runpy.po +++ b/library/runpy.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-10-08 06:30-0500\n" "Last-Translator: \n" "Language: es_EC\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/runpy.rst:2 msgid ":mod:`runpy` --- Locating and executing Python modules" @@ -84,11 +84,12 @@ msgstr "" "nombres de módulo nuevo." #: ../Doc/library/runpy.rst:40 +#, fuzzy msgid "" "The *mod_name* argument should be an absolute module name. If the module " "name refers to a package rather than a normal module, then that package is " -"imported and the ``__main__`` submodule within that package is then executed " -"and the resulting module globals dictionary returned." +"imported and the :mod:`__main__` submodule within that package is then " +"executed and the resulting module globals dictionary returned." msgstr "" "El argumento *mod_name* debe ser un nombre de módulo absoluto. Si el nombre " "del paquete se refiere a un paquete en lugar de un módulo normal, entonces " @@ -109,7 +110,7 @@ msgstr "" "variables globales especiales siguientes se define en el diccionario " "proporcionado, esas definiciones se reemplazan por :func:`run_module`." -#: ../Doc/library/runpy.rst:52 ../Doc/library/runpy.rst:121 +#: ../Doc/library/runpy.rst:52 ../Doc/library/runpy.rst:127 msgid "" "The special global variables ``__name__``, ``__spec__``, ``__file__``, " "``__cached__``, ``__loader__`` and ``__package__`` are set in the globals " @@ -168,10 +169,11 @@ msgstr "" "retorno de la función." #: ../Doc/library/runpy.rst:75 +#, fuzzy msgid "" "Note that this manipulation of :mod:`sys` is not thread-safe. Other threads " "may see the partially initialised module, as well as the altered list of " -"arguments. It is recommended that the :mod:`sys` module be left alone when " +"arguments. It is recommended that the ``sys`` module be left alone when " "invoking this function from threaded code." msgstr "" "Tenga en cuenta que esta manipulación de :mod:`sys` no es segura para " @@ -188,8 +190,9 @@ msgstr "" "de comandos." #: ../Doc/library/runpy.rst:84 +#, fuzzy msgid "" -"Added ability to execute packages by looking for a ``__main__`` submodule." +"Added ability to execute packages by looking for a :mod:`__main__` submodule." msgstr "" "Se agrego la capacidad de ejecutar paquetes buscando un submódulo " "``__main__``." @@ -211,13 +214,21 @@ msgstr "" "asegurarse de que el nombre real del módulo siempre sea accesible como " "``__spec__.name``." -#: ../Doc/library/runpy.rst:101 +#: ../Doc/library/runpy.rst:96 +msgid "" +"The setting of ``__cached__``, ``__loader__``, and ``__package__`` are " +"deprecated. See :class:`~importlib.machinery.ModuleSpec` for alternatives." +msgstr "" + +#: ../Doc/library/runpy.rst:106 +#, fuzzy msgid "" "Execute the code at the named filesystem location and return the resulting " "module globals dictionary. As with a script name supplied to the CPython " "command line, the supplied path may refer to a Python source file, a " -"compiled bytecode file or a valid sys.path entry containing a ``__main__`` " -"module (e.g. a zipfile containing a top-level ``__main__.py`` file)." +"compiled bytecode file or a valid :data:`sys.path` entry containing a :mod:" +"`__main__` module (e.g. a zipfile containing a top-level ``__main__.py`` " +"file)." msgstr "" "Ejecute el código en la ubicación del sistema de archivos con nombre y " "devuelva el diccionario de globales de módulo resultante. Al igual que con " @@ -227,15 +238,16 @@ msgstr "" "válida que contiene un módulo ``__main__`` (por ejemplo, un archivo zip que " "contiene un archivo ``__main__.py`` de nivel superior)." -#: ../Doc/library/runpy.rst:107 +#: ../Doc/library/runpy.rst:113 +#, fuzzy msgid "" "For a simple script, the specified code is simply executed in a fresh module " -"namespace. For a valid sys.path entry (typically a zipfile or directory), " -"the entry is first added to the beginning of ``sys.path``. The function then " -"looks for and executes a :mod:`__main__` module using the updated path. Note " -"that there is no special protection against invoking an existing :mod:" -"`__main__` entry located elsewhere on ``sys.path`` if there is no such " -"module at the specified location." +"namespace. For a valid :data:`sys.path` entry (typically a zipfile or " +"directory), the entry is first added to the beginning of ``sys.path``. The " +"function then looks for and executes a :mod:`__main__` module using the " +"updated path. Note that there is no special protection against invoking an " +"existing ``__main__`` entry located elsewhere on ``sys.path`` if there is no " +"such module at the specified location." msgstr "" "Para un *script* simple, el código especificado se ejecuta simplemente en un " "espacio de nombres de un módulo nuevo. Para un entrada *sys.path* valida " @@ -246,7 +258,7 @@ msgstr "" "`__main__` ubicada en otro lugar en ``sys.path`` si no hay tal módulo en la " "ubicación especificada." -#: ../Doc/library/runpy.rst:115 +#: ../Doc/library/runpy.rst:121 msgid "" "The optional dictionary argument *init_globals* may be used to pre-populate " "the module's globals dictionary before the code is executed. The supplied " @@ -260,7 +272,7 @@ msgstr "" "variables globales especiales siguientes se define en el diccionario " "proporcionado, esas definiciones se reemplazan por :func:`run_path`." -#: ../Doc/library/runpy.rst:127 +#: ../Doc/library/runpy.rst:133 msgid "" "``__name__`` is set to *run_name* if this optional argument is not :const:" "`None` and to ``''`` otherwise." @@ -268,7 +280,7 @@ msgstr "" "``__name__`` se establece para *run_name* si el argumento opcional no es :" "const:`None` y a ``''`` de lo contrario." -#: ../Doc/library/runpy.rst:130 +#: ../Doc/library/runpy.rst:136 msgid "" "If the supplied path directly references a script file (whether as source or " "as precompiled byte code), then ``__file__`` will be set to the supplied " @@ -280,13 +292,14 @@ msgstr "" "establecerá en la ruta proporcionada, y ``__spec__``, ``__cached__``, " "``__loader__`` y ``__package__`` se establecerán todos en :const:`None`." -#: ../Doc/library/runpy.rst:135 +#: ../Doc/library/runpy.rst:141 +#, fuzzy msgid "" -"If the supplied path is a reference to a valid sys.path entry, then " -"``__spec__`` will be set appropriately for the imported ``__main__`` module " -"(that is, ``__spec__.name`` will always be ``__main__``). ``__file__``, " -"``__cached__``, ``__loader__`` and ``__package__`` will be :ref:`set as " -"normal ` based on the module spec." +"If the supplied path is a reference to a valid :data:`sys.path` entry, then " +"``__spec__`` will be set appropriately for the imported :mod:`__main__` " +"module (that is, ``__spec__.name`` will always be ``__main__``). " +"``__file__``, ``__cached__``, ``__loader__`` and ``__package__`` will be :" +"ref:`set as normal ` based on the module spec." msgstr "" "Si la ruta proporciona es una referencia a una entrada *sys.path* valida, " "entonces ``__spec__`` se establece apropiadamente para la importación del " @@ -295,13 +308,13 @@ msgstr "" "``__package__`` estarán basadas en la especificación del modulo :ref:" "`establecidas como normal `." -#: ../Doc/library/runpy.rst:141 +#: ../Doc/library/runpy.rst:147 #, fuzzy msgid "" -"A number of alterations are also made to the :mod:`sys` module. Firstly, " -"``sys.path`` may be altered as described above. ``sys.argv[0]`` is updated " -"with the value of ``path_name`` and ``sys.modules[__name__]`` is updated " -"with a temporary module object for the module being executed. All " +"A number of alterations are also made to the :mod:`sys` module. Firstly, :" +"data:`sys.path` may be altered as described above. ``sys.argv[0]`` is " +"updated with the value of ``path_name`` and ``sys.modules[__name__]`` is " +"updated with a temporary module object for the module being executed. All " "modifications to items in :mod:`sys` are reverted before the function " "returns." msgstr "" @@ -312,13 +325,14 @@ msgstr "" "el módulo que se está ejecutando. Todas las modificaciones de los elementos " "de :mod:`sys` se revierten antes de que se devuelva la función." -#: ../Doc/library/runpy.rst:148 +#: ../Doc/library/runpy.rst:154 +#, fuzzy msgid "" "Note that, unlike :func:`run_module`, the alterations made to :mod:`sys` are " "not optional in this function as these adjustments are essential to allowing " -"the execution of sys.path entries. As the thread-safety limitations still " -"apply, use of this function in threaded code should be either serialised " -"with the import lock or delegated to a separate process." +"the execution of :data:`sys.path` entries. As the thread-safety limitations " +"still apply, use of this function in threaded code should be either " +"serialised with the import lock or delegated to a separate process." msgstr "" "Tenga en cuenta que, diferente a :func:`run_module`, las alteraciones hecha " "a :mod:`sys` no son opcionales en esta función ya que estos ajustes son " @@ -327,7 +341,7 @@ msgstr "" "función en un código procesado debe serializarse con el bloqueo de " "importación o delegarse a un proceso separado." -#: ../Doc/library/runpy.rst:155 +#: ../Doc/library/runpy.rst:161 msgid "" ":ref:`using-on-interface-options` for equivalent functionality on the " "command line (``python path/to/script``)." @@ -335,42 +349,57 @@ msgstr "" ":ref:`using-on-interface-options` para una funcionalidad equivalente en la " "linea de comandos (``python path/to/script``)." -#: ../Doc/library/runpy.rst:160 +#: ../Doc/library/runpy.rst:166 +#, fuzzy msgid "" "Updated to take advantage of the module spec feature added by :pep:`451`. " "This allows ``__cached__`` to be set correctly in the case where " -"``__main__`` is imported from a valid sys.path entry rather than being " -"executed directly." +"``__main__`` is imported from a valid :data:`sys.path` entry rather than " +"being executed directly." msgstr "" "Actualizado para aprovechar la función de especificación del módulo agregada " "por :pep:`451`. Esto permite que ``__cached__`` se configure correctamente " "en el caso de que ``__main__`` se importe de una entrada *sys.path* valida " "en lugar de ejecutarse directamente." -#: ../Doc/library/runpy.rst:169 +#: ../Doc/library/runpy.rst:172 +msgid "" +"The setting of ``__cached__``, ``__loader__``, and ``__package__`` are " +"deprecated." +msgstr "" + +#: ../Doc/library/runpy.rst:179 msgid ":pep:`338` -- Executing modules as scripts" msgstr ":pep:`338` -- Ejecutando módulos como *scripts*" -#: ../Doc/library/runpy.rst:169 ../Doc/library/runpy.rst:172 +#: ../Doc/library/runpy.rst:179 ../Doc/library/runpy.rst:182 msgid "PEP written and implemented by Nick Coghlan." msgstr "*PEP* escrito y implementado por *Nick Coghlan*." -#: ../Doc/library/runpy.rst:172 +#: ../Doc/library/runpy.rst:182 msgid ":pep:`366` -- Main module explicit relative imports" msgstr ":pep:`366` -- Importaciones relativas explícitas del módulo principal" -#: ../Doc/library/runpy.rst:175 +#: ../Doc/library/runpy.rst:185 msgid ":pep:`451` -- A ModuleSpec Type for the Import System" msgstr ":pep:`451` — Un tipo *ModuleSpec* para el sistema de Importación" -#: ../Doc/library/runpy.rst:175 +#: ../Doc/library/runpy.rst:185 msgid "PEP written and implemented by Eric Snow" msgstr "*PEP* escrito y implementado por *Eric Snow*" -#: ../Doc/library/runpy.rst:177 +#: ../Doc/library/runpy.rst:187 msgid ":ref:`using-on-general` - CPython command line details" msgstr ":ref:`using-on-general` - Detalles de la linea de comandos *CPython*" -#: ../Doc/library/runpy.rst:179 +#: ../Doc/library/runpy.rst:189 msgid "The :func:`importlib.import_module` function" msgstr "La función :func:`importlib.import_module`" + +#: ../Doc/library/runpy.rst:32 ../Doc/library/runpy.rst:103 +msgid "module" +msgstr "" + +#: ../Doc/library/runpy.rst:32 ../Doc/library/runpy.rst:103 +msgid "__main__" +msgstr "" diff --git a/library/sched.po b/library/sched.po index 5f1708d4f2..0d58de9464 100644 --- a/library/sched.po +++ b/library/sched.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-05 12:54+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-07-09 11:20-0300\n" +"Last-Translator: \n" +"Language: es_AR\n" "Language-Team: python-doc-es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\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_AR\n" -"X-Generator: Poedit 2.2.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/sched.rst:2 msgid ":mod:`sched` --- Event scheduler" @@ -73,16 +72,16 @@ msgstr "" msgid "Example::" msgstr "Ejemplo::" -#: ../Doc/library/sched.rst:61 +#: ../Doc/library/sched.rst:67 msgid "Scheduler Objects" msgstr "Objetos de ``Scheduler``" -#: ../Doc/library/sched.rst:63 +#: ../Doc/library/sched.rst:69 msgid ":class:`scheduler` instances have the following methods and attributes:" msgstr "" ":class:`scheduler` Las sentencias tienen los siguientes métodos y atributos:" -#: ../Doc/library/sched.rst:68 +#: ../Doc/library/sched.rst:74 msgid "" "Schedule a new event. The *time* argument should be a numeric type " "compatible with the return value of the *timefunc* function passed to the " @@ -95,7 +94,7 @@ msgstr "" "el orden de su *priority*. Un número más bajo representa una prioridad más " "alta." -#: ../Doc/library/sched.rst:73 +#: ../Doc/library/sched.rst:79 msgid "" "Executing the event means executing ``action(*argument, **kwargs)``. " "*argument* is a sequence holding the positional arguments for *action*. " @@ -106,7 +105,7 @@ msgstr "" "*action*. *kwargs* es un diccionario que contiene los argumentos de palabras " "clave para *action*." -#: ../Doc/library/sched.rst:77 +#: ../Doc/library/sched.rst:83 msgid "" "Return value is an event which may be used for later cancellation of the " "event (see :meth:`cancel`)." @@ -114,15 +113,15 @@ msgstr "" "El valor de retorno es un evento que puede usarse para una cancelación " "posterior del evento (ver :meth:`cancel`)." -#: ../Doc/library/sched.rst:80 ../Doc/library/sched.rst:93 +#: ../Doc/library/sched.rst:86 ../Doc/library/sched.rst:99 msgid "*argument* parameter is optional." msgstr "El argumento *argument* es opcional." -#: ../Doc/library/sched.rst:83 ../Doc/library/sched.rst:96 +#: ../Doc/library/sched.rst:89 ../Doc/library/sched.rst:102 msgid "*kwargs* parameter was added." msgstr "Se agregó el argumento *kwargs*." -#: ../Doc/library/sched.rst:89 +#: ../Doc/library/sched.rst:95 msgid "" "Schedule an event for *delay* more time units. Other than the relative time, " "the other arguments, the effect and the return value are the same as those " @@ -132,7 +131,7 @@ msgstr "" "relativo, los otros argumentos, el efecto y el valor de retorno son los " "mismos que para :meth:`enterabs`." -#: ../Doc/library/sched.rst:101 +#: ../Doc/library/sched.rst:107 msgid "" "Remove the event from the queue. If *event* is not an event currently in the " "queue, this method will raise a :exc:`ValueError`." @@ -140,21 +139,22 @@ msgstr "" "Elimina el evento de la cola. Si *event* no es un evento actualmente en la " "cola, este método lanzará un :exc:`ValueError`." -#: ../Doc/library/sched.rst:107 +#: ../Doc/library/sched.rst:113 msgid "Return ``True`` if the event queue is empty." msgstr "Retorna ``True`` si la cola de eventos está vacía." -#: ../Doc/library/sched.rst:112 +#: ../Doc/library/sched.rst:118 +#, fuzzy msgid "" -"Run all scheduled events. This method will wait (using the :func:" -"`delayfunc` function passed to the constructor) for the next event, then " -"execute it and so on until there are no more scheduled events." +"Run all scheduled events. This method will wait (using the *delayfunc* " +"function passed to the constructor) for the next event, then execute it and " +"so on until there are no more scheduled events." msgstr "" "Ejecuta todos los eventos programados. Este método esperará (usando la " "función :func:`delayfunc` enviada al constructor) el próximo evento, luego " "lo ejecutará y así sucesivamente hasta que no haya más eventos programados." -#: ../Doc/library/sched.rst:116 +#: ../Doc/library/sched.rst:122 msgid "" "If *blocking* is false executes the scheduled events due to expire soonest " "(if any) and then return the deadline of the next scheduled call in the " @@ -164,7 +164,7 @@ msgstr "" "pronto (si corresponde) y luego retorna la fecha límite de la próxima " "llamada programada en el planificador (si corresponde)." -#: ../Doc/library/sched.rst:120 +#: ../Doc/library/sched.rst:126 msgid "" "Either *action* or *delayfunc* can raise an exception. In either case, the " "scheduler will maintain a consistent state and propagate the exception. If " @@ -176,7 +176,7 @@ msgstr "" "*action* genera una excepción, el evento no se intentará en futuras llamadas " "a :meth:`run`." -#: ../Doc/library/sched.rst:125 +#: ../Doc/library/sched.rst:131 msgid "" "If a sequence of events takes longer to run than the time available before " "the next event, the scheduler will simply fall behind. No events will be " @@ -188,11 +188,11 @@ msgstr "" "descartarán eventos; el código de llamada es responsable de cancelar eventos " "que ya no son oportunos." -#: ../Doc/library/sched.rst:130 +#: ../Doc/library/sched.rst:136 msgid "*blocking* parameter was added." msgstr "Se agregó el argumento *blocking*." -#: ../Doc/library/sched.rst:135 +#: ../Doc/library/sched.rst:141 msgid "" "Read-only attribute returning a list of upcoming events in the order they " "will be run. Each event is shown as a :term:`named tuple` with the " @@ -202,3 +202,7 @@ msgstr "" "orden en que se ejecutarán. Cada evento se muestra como un :term:`named " "tuple` con los siguientes campos : *time, priority, action, argument, " "kwargs*." + +#: ../Doc/library/sched.rst:11 +msgid "event scheduling" +msgstr "" diff --git a/library/secrets.po b/library/secrets.po index c3ab166b03..773c1f69f3 100644 --- a/library/secrets.po +++ b/library/secrets.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-04 21:52+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/secrets.rst:2 msgid ":mod:`secrets` --- Generate secure random numbers for managing secrets" @@ -195,21 +195,22 @@ msgstr "Otras funciones" #: ../Doc/library/secrets.rst:131 #, fuzzy msgid "" -"Return ``True`` if strings *a* and *b* are equal, otherwise ``False``, using " -"a \"constant-time compare\" to reduce the risk of `timing attacks `_. See :func:`hmac.compare_digest` " -"for additional details." +"Return ``True`` if strings or :term:`bytes-like objects ` " +"*a* and *b* are equal, otherwise ``False``, using a \"constant-time " +"compare\" to reduce the risk of `timing attacks `_. See :func:`hmac.compare_digest` for additional " +"details." msgstr "" "Retorna ``True`` si las cadenas de caracteres *a* y *b* son iguales, de lo " "contrario, ``False``, de forma tal que se reduzca el riesgo de `ataques de " "análisis temporal `_. Ver :" "func:`hmac.compare_digest`` para detalles adicionales." -#: ../Doc/library/secrets.rst:138 +#: ../Doc/library/secrets.rst:140 msgid "Recipes and best practices" msgstr "Recetas y mejores prácticas" -#: ../Doc/library/secrets.rst:140 +#: ../Doc/library/secrets.rst:142 msgid "" "This section shows recipes and best practices for using :mod:`secrets` to " "manage a basic level of security." @@ -217,11 +218,11 @@ msgstr "" "Esta sección muestra las recetas y las mejores prácticas para usar :mod:" "`secrets` para conseguir un nivel mínimo de seguridad." -#: ../Doc/library/secrets.rst:143 +#: ../Doc/library/secrets.rst:145 msgid "Generate an eight-character alphanumeric password:" msgstr "Generar una contraseña alfanumérica de ocho caracteres:" -#: ../Doc/library/secrets.rst:155 +#: ../Doc/library/secrets.rst:157 #, fuzzy msgid "" "Applications should not `store passwords in a recoverable format `_:" msgstr "Generar una `contraseña al estilo XKCD `_:" -#: ../Doc/library/secrets.rst:190 +#: ../Doc/library/secrets.rst:192 msgid "" "Generate a hard-to-guess temporary URL containing a security token suitable " "for password recovery applications:" diff --git a/library/security_warnings.po b/library/security_warnings.po index 775d5f682f..30ff000496 100644 --- a/library/security_warnings.po +++ b/library/security_warnings.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python en Español 3.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-31 09:53+0100\n" "Last-Translator: \n" "Language: es_ES\n" @@ -17,8 +17,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 2.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/security_warnings.rst:6 msgid "Security Considerations" @@ -143,3 +142,8 @@ msgstr "" "variable de entorno :envvar:`PYTHONSAFEPATH` pueden usarse para no anteponer " "un camino potencialmente inseguro al :data:`sys.path` como el directorio " "actual, el directorio del script o un string vacío." + +#: ../Doc/library/security_warnings.rst:3 +#, fuzzy +msgid "security considerations" +msgstr "Consideraciones de seguridad" diff --git a/library/select.po b/library/select.po index f264cc72d6..5f933ee036 100644 --- a/library/select.po +++ b/library/select.po @@ -10,31 +10,31 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-03-09 20:37+0100\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/select.rst:2 msgid ":mod:`select` --- Waiting for I/O completion" msgstr ":mod:`select` --- Esperando la finalización de E/S" #: ../Doc/library/select.rst:9 +#, fuzzy msgid "" -"This module provides access to the :c:func:`select` and :c:func:`poll` " -"functions available in most operating systems, :c:func:`devpoll` available " -"on Solaris and derivatives, :c:func:`epoll` available on Linux 2.5+ and :c:" -"func:`kqueue` available on most BSD. Note that on Windows, it only works for " -"sockets; on other operating systems, it also works for other file types (in " -"particular, on Unix, it works on pipes). It cannot be used on regular files " -"to determine whether a file has grown since it was last read." +"This module provides access to the :c:func:`!select` and :c:func:`!poll` " +"functions available in most operating systems, :c:func:`!devpoll` available " +"on Solaris and derivatives, :c:func:`!epoll` available on Linux 2.5+ and :c:" +"func:`!kqueue` available on most BSD. Note that on Windows, it only works " +"for sockets; on other operating systems, it also works for other file types " +"(in particular, on Unix, it works on pipes). It cannot be used on regular " +"files to determine whether a file has grown since it was last read." msgstr "" "Este módulo proporciona acceso a las funciones :c:func:`select` y :c:func:" "`poll` disponibles en la mayoría de los sistemas operativos, :c:func:" @@ -58,11 +58,12 @@ msgstr "" "menos que quieran un control preciso sobre las primitivas utilizadas de " "nivel OS." +#: ../Doc/includes/wasm-notavail.rst:3 #, fuzzy msgid ":ref:`Availability `: not Emscripten, not WASI." msgstr ":ref:`Disponibilidad `: no en Emscripten, no en WASI." -#: ../Doc/library/cpython/Doc/includes/wasm-notavail.rst:5 +#: ../Doc/includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly platforms " "``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for " @@ -96,11 +97,12 @@ msgstr "" "los métodos admitidos por los objetos *devpoll*." #: ../Doc/library/select.rst:44 +#, fuzzy msgid "" -":c:func:`devpoll` objects are linked to the number of file descriptors " +":c:func:`!devpoll` objects are linked to the number of file descriptors " "allowed at the time of instantiation. If your program reduces this value, :c:" -"func:`devpoll` will fail. If your program increases this value, :c:func:" -"`devpoll` may return an incomplete list of active file descriptors." +"func:`!devpoll` will fail. If your program increases this value, :c:func:`!" +"devpoll` may return an incomplete list of active file descriptors." msgstr "" "Los objetos :c:func:`devpoll` están vinculados a la cantidad de descriptores " "de archivo permitidos en el momento de la creación de instancias. Si su " @@ -128,10 +130,11 @@ msgstr "" "borde para eventos de E/S." #: ../Doc/library/select.rst:63 +#, fuzzy msgid "" "*sizehint* informs epoll about the expected number of events to be " "registered. It must be positive, or ``-1`` to use the default. It is only " -"used on older systems where :c:func:`epoll_create1` is not available; " +"used on older systems where :c:func:`!epoll_create1` is not available; " "otherwise it has no effect (though its value is still checked)." msgstr "" "*sizehint* informa a epoll sobre el número esperado de eventos a ser " @@ -221,8 +224,9 @@ msgstr "" "admitidos por los objetos kevent." #: ../Doc/library/select.rst:120 +#, fuzzy msgid "" -"This is a straightforward interface to the Unix :c:func:`select` system " +"This is a straightforward interface to the Unix :c:func:`!select` system " "call. The first three arguments are iterables of 'waitable objects': either " "integers representing file descriptors or objects with a parameterless " "method named :meth:`~io.IOBase.fileno` returning such an integer:" @@ -295,10 +299,12 @@ msgstr "" "aleatorio)." #: ../Doc/library/select.rst:156 +#, fuzzy msgid "" "File objects on Windows are not acceptable, but sockets are. On Windows, " -"the underlying :c:func:`select` function is provided by the WinSock library, " -"and does not handle file descriptors that don't originate from WinSock." +"the underlying :c:func:`!select` function is provided by the WinSock " +"library, and does not handle file descriptors that don't originate from " +"WinSock." msgstr "" "Los objetos de archivo en Windows no son admisibles, pero los sockets sí. En " "Windows, la función subyacente :c:func:`select` es proporcionada por la " @@ -319,10 +325,11 @@ msgstr "" "de generar :exc:`InterruptedError`." #: ../Doc/library/select.rst:170 +#, fuzzy msgid "" "The minimum number of bytes which can be written without blocking to a pipe " "when the pipe has been reported as ready for writing by :func:`~select." -"select`, :func:`poll` or another interface in this module. This doesn't " +"select`, :func:`!poll` or another interface in this module. This doesn't " "apply to other kind of file-like objects such as sockets." msgstr "" "El número mínimo de bytes que se pueden escribir sin bloquear en una tubería " @@ -334,7 +341,7 @@ msgstr "" msgid "This value is guaranteed by POSIX to be at least 512." msgstr "Este valor es garantizado por POSIX para ser menor a 512." -#: ../Doc/library/select.rst:178 +#: ../Doc/library/select.rst:177 msgid ":ref:`Availability `: Unix" msgstr ":ref:`Availability`: Unix" @@ -343,9 +350,10 @@ msgid "``/dev/poll`` Polling Objects" msgstr "Objetos de sondeo ``/dev/poll``" #: ../Doc/library/select.rst:187 +#, fuzzy msgid "" -"Solaris and derivatives have ``/dev/poll``. While :c:func:`select` is " -"O(highest file descriptor) and :c:func:`poll` is O(number of file " +"Solaris and derivatives have ``/dev/poll``. While :c:func:`!select` is " +"O(highest file descriptor) and :c:func:`!poll` is O(number of file " "descriptors), ``/dev/poll`` is O(active file descriptors)." msgstr "" "Solaris y derivados tienen ``/dev/poll``. Mientras que :c:func:`select` es " @@ -354,8 +362,9 @@ msgstr "" "activos)." #: ../Doc/library/select.rst:191 +#, fuzzy msgid "" -"``/dev/poll`` behaviour is very close to the standard :c:func:`poll` object." +"``/dev/poll`` behaviour is very close to the standard :c:func:`!poll` object." msgstr "" "El comportamiento ``/dev/poll`` está muy cerca del estándar objeto :c:func:" "`poll`." @@ -388,9 +397,10 @@ msgstr "" "argumento." #: ../Doc/library/select.rst:224 +#, fuzzy msgid "" "*eventmask* is an optional bitmask describing the type of events you want to " -"check for. The constants are the same that with :c:func:`poll` object. The " +"check for. The constants are the same that with :c:func:`!poll` object. The " "default value is a combination of the constants :const:`POLLIN`, :const:" "`POLLPRI`, and :const:`POLLOUT`." msgstr "" @@ -400,10 +410,11 @@ msgstr "" "`POLLIN`, :const:`POLLPRI` y :const:`POLLOUT`." #: ../Doc/library/select.rst:231 +#, fuzzy msgid "" "Registering a file descriptor that's already registered is not an error, but " "the result is undefined. The appropriate action is to unregister or modify " -"it first. This is an important difference compared with :c:func:`poll`." +"it first. This is an important difference compared with :c:func:`!poll`." msgstr "" "Registra un descriptor de archivo que ya está registrado no es un error, " "pero el resultado no está definido. La acción apropiada es anular el " @@ -663,14 +674,15 @@ msgid "Polling Objects" msgstr "Sondeo de objetos" #: ../Doc/library/select.rst:379 +#, fuzzy msgid "" -"The :c:func:`poll` system call, supported on most Unix systems, provides " +"The :c:func:`!poll` system call, supported on most Unix systems, provides " "better scalability for network servers that service many, many clients at " -"the same time. :c:func:`poll` scales better because the system call only " -"requires listing the file descriptors of interest, while :c:func:`select` " +"the same time. :c:func:`!poll` scales better because the system call only " +"requires listing the file descriptors of interest, while :c:func:`!select` " "builds a bitmap, turns on bits for the fds of interest, and then afterward " -"the whole bitmap has to be linearly scanned again. :c:func:`select` is " -"O(highest file descriptor), while :c:func:`poll` is O(number of file " +"the whole bitmap has to be linearly scanned again. :c:func:`!select` is " +"O(highest file descriptor), while :c:func:`!poll` is O(number of file " "descriptors)." msgstr "" "La llamada al sistema: :c:func:`poll`, compatible con la mayoría de los " @@ -851,7 +863,8 @@ msgid "Kevent Objects" msgstr "Objetos Kevent" #: ../Doc/library/select.rst:508 -msgid "https://www.freebsd.org/cgi/man.cgi?query=kqueue&sektion=2" +#, fuzzy +msgid "https://man.freebsd.org/cgi/man.cgi?query=kqueue&sektion=2" msgstr "https://www.freebsd.org/cgi/man.cgi?query=kqueue&sektion=2" #: ../Doc/library/select.rst:512 @@ -1196,3 +1209,15 @@ msgstr "Filtrar datos específicos." #: ../Doc/library/select.rst:650 msgid "User defined value." msgstr "Valor definido por el usuario." + +#: ../Doc/library/select.rst:141 +msgid "socket() (in module socket)" +msgstr "" + +#: ../Doc/library/select.rst:141 +msgid "popen() (in module os)" +msgstr "" + +#: ../Doc/library/select.rst:154 +msgid "WinSock" +msgstr "" diff --git a/library/selectors.po b/library/selectors.po index edacbcd931..5a1e0623ad 100644 --- a/library/selectors.po +++ b/library/selectors.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-27 20:02-0300\n" "Last-Translator: Alfonso Areiza Guerra \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/selectors.rst:2 msgid ":mod:`selectors` --- High-level I/O multiplexing" @@ -92,11 +91,12 @@ msgstr ":mod:`select`" msgid "Low-level I/O multiplexing module." msgstr "Módulo de multiplexación de E/S de bajo nivel." +#: ../Doc/includes/wasm-notavail.rst:3 #, fuzzy msgid ":ref:`Availability `: not Emscripten, not WASI." msgstr ":ref:`Disponibilidad `: ni Emscripten, ni WASI." -#: ../Doc/library/cpython/Doc/includes/wasm-notavail.rst:5 +#: ../Doc/includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly platforms " "``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for " @@ -132,18 +132,10 @@ msgstr "Constante" msgid "Meaning" msgstr "Significado" -#: ../Doc/library/selectors.rst:63 -msgid ":const:`EVENT_READ`" -msgstr ":const:`EVENT_READ`" - #: ../Doc/library/selectors.rst:63 msgid "Available for read" msgstr "Disponible para lectura" -#: ../Doc/library/selectors.rst:65 -msgid ":const:`EVENT_WRITE`" -msgstr ":const:`EVENT_WRITE`" - #: ../Doc/library/selectors.rst:65 msgid "Available for write" msgstr "Disponible para escritura" @@ -258,9 +250,10 @@ msgstr "" "datos adjuntos." #: ../Doc/library/selectors.rst:135 +#, fuzzy msgid "" -"This is equivalent to :meth:`BaseSelector.unregister(fileobj)` followed by :" -"meth:`BaseSelector.register(fileobj, events, data)`, except that it can be " +"This is equivalent to ``BaseSelector.unregister(fileobj)`` followed by " +"``BaseSelector.register(fileobj, events, data)``, except that it can be " "implemented more efficiently." msgstr "" "Esto es equivalente a :meth:`BaseSelector.unregister(fileobj)` seguido de :" @@ -434,3 +427,9 @@ msgstr "Ejemplos" #: ../Doc/library/selectors.rst:245 msgid "Here is a simple echo server implementation::" msgstr "Aquí hay una implementación simple de un servidor de eco::" + +#~ msgid ":const:`EVENT_READ`" +#~ msgstr ":const:`EVENT_READ`" + +#~ msgid ":const:`EVENT_WRITE`" +#~ msgstr ":const:`EVENT_WRITE`" diff --git a/library/shelve.po b/library/shelve.po index f635c93609..98ec7ed7d0 100644 --- a/library/shelve.po +++ b/library/shelve.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-03-20 02:18-0500\n" "Last-Translator: Rodrigo Tobar \n" -"Language-Team: \n" "Language: es_ES\n" +"Language-Team: \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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/shelve.rst:2 msgid ":mod:`shelve` --- Python object persistence" @@ -64,10 +63,11 @@ msgstr "" "tiene la misma interpretación que el parámetro *flag* de :func:`dbm.open`." #: ../Doc/library/shelve.rst:28 +#, fuzzy msgid "" -"By default, pickles created with :data:`pickle.DEFAULT_PROTOCOL` are used to " -"serialize values. The version of the pickle protocol can be specified with " -"the *protocol* parameter." +"By default, pickles created with :const:`pickle.DEFAULT_PROTOCOL` are used " +"to serialize values. The version of the pickle protocol can be specified " +"with the *protocol* parameter." msgstr "" "De forma predeterminada, *pickles* creados con :data:`pickle." "DEFAULT_PROTOCOL` se utilizan para serializar valores. La versión del " @@ -102,8 +102,9 @@ msgstr "" "mutaron realmente)." #: ../Doc/library/shelve.rst:44 ../Doc/library/shelve.rst:145 +#, fuzzy msgid "" -":data:`pickle.DEFAULT_PROTOCOL` is now used as the default pickle protocol." +":const:`pickle.DEFAULT_PROTOCOL` is now used as the default pickle protocol." msgstr "" "Ahora se usa :data:`pickle.DEFAULT_PROTOCOL` como el protocolo *pickle* por " "defecto." @@ -227,10 +228,11 @@ msgstr "" "*pickle* en el objeto *dict*." #: ../Doc/library/shelve.rst:122 +#, fuzzy msgid "" -"By default, pickles created with :data:`pickle.DEFAULT_PROTOCOL` are used to " -"serialize values. The version of the pickle protocol can be specified with " -"the *protocol* parameter. See the :mod:`pickle` documentation for a " +"By default, pickles created with :const:`pickle.DEFAULT_PROTOCOL` are used " +"to serialize values. The version of the pickle protocol can be specified " +"with the *protocol* parameter. See the :mod:`pickle` documentation for a " "discussion of the pickle protocols." msgstr "" "De forma predeterminada, *pickles* creados con :data:`pickle." @@ -347,3 +349,19 @@ msgstr "Módulo :mod:`pickle`" #: ../Doc/library/shelve.rst:218 msgid "Object serialization used by :mod:`shelve`." msgstr "Serialización de objetos utilizada por :mod:`shelve`." + +#: ../Doc/library/shelve.rst:9 ../Doc/library/shelve.rst:97 +msgid "module" +msgstr "" + +#: ../Doc/library/shelve.rst:9 +msgid "pickle" +msgstr "" + +#: ../Doc/library/shelve.rst:97 +msgid "dbm.ndbm" +msgstr "" + +#: ../Doc/library/shelve.rst:97 +msgid "dbm.gnu" +msgstr "" diff --git a/library/shlex.po b/library/shlex.po index bd88cded0f..3981e902f9 100644 --- a/library/shlex.po +++ b/library/shlex.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-16 21:42+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-10-29 22:00-0500\n" "Last-Translator: Pedro Aarón \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" -"Generated-By: Babel 2.9.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/shlex.rst:2 msgid ":mod:`shlex` --- Simple lexical analysis" @@ -63,23 +63,15 @@ msgstr "" "función trabaja en modo POSIX por defecto, pero utiliza el modo non-POSIX si " "el argumento *posix* es falso." -#: ../Doc/library/shlex.rst:35 -msgid "" -"Since the :func:`split` function instantiates a :class:`~shlex.shlex` " -"instance, passing ``None`` for *s* will read the string to split from " -"standard input." -msgstr "" -"Como la función :func:`split` inicia una instancia :class:`~shlex.shlex`, al " -"pasar ``None`` por *s* se leerá la cadena de caracteres para separarse de la " -"entrada estándar." - -#: ../Doc/library/shlex.rst:39 +#: ../Doc/library/shlex.rst:33 +#, fuzzy msgid "" -"Passing ``None`` for *s* will raise an exception in future Python versions." +"Passing ``None`` for *s* argument now raises an exception, rather than " +"reading :data:`sys.stdin`." msgstr "" "Pasar ``None`` para *s* lanzará una excepción en futuras versiones de Python." -#: ../Doc/library/shlex.rst:45 +#: ../Doc/library/shlex.rst:39 msgid "" "Concatenate the tokens of the list *split_command* and return a string. This " "function is the inverse of :func:`split`." @@ -87,7 +79,7 @@ msgstr "" "Concatena los tokens de la lista *split_command* y retorna una cadena. Esta " "función es la inversa de :func:`split`." -#: ../Doc/library/shlex.rst:52 +#: ../Doc/library/shlex.rst:46 msgid "" "The returned value is shell-escaped to protect against injection " "vulnerabilities (see :func:`quote`)." @@ -95,7 +87,7 @@ msgstr "" "El valor retornado se escapa del intérprete de comandos para protegerlo " "contra vulnerabilidades de inyección (consulte :func:`quote`)." -#: ../Doc/library/shlex.rst:60 +#: ../Doc/library/shlex.rst:54 msgid "" "Return a shell-escaped version of the string *s*. The returned value is a " "string that can safely be used as one token in a shell command line, for " @@ -106,13 +98,13 @@ msgstr "" "token en un intérprete de línea de comandos, para los casos en los que no se " "puede usar una lista." -#: ../Doc/library/shlex.rst:68 +#: ../Doc/library/shlex.rst:62 msgid "The ``shlex`` module is **only designed for Unix shells**." msgstr "" "El módulo ``shlex`` **solo está diseñado para los intérpretes de comandos " "UNIX**." -#: ../Doc/library/shlex.rst:70 +#: ../Doc/library/shlex.rst:64 msgid "" "The :func:`quote` function is not guaranteed to be correct on non-POSIX " "compliant shells or shells from other operating systems such as Windows. " @@ -124,7 +116,7 @@ msgstr "" "ejecución de comandos citados por este módulo en tales shells puede abrir la " "posibilidad de una vulnerabilidad de inyección de comandos." -#: ../Doc/library/shlex.rst:75 +#: ../Doc/library/shlex.rst:69 msgid "" "Consider using functions that pass command arguments with lists such as :" "func:`subprocess.run` with ``shell=False``." @@ -132,25 +124,25 @@ msgstr "" "Considere el uso de funciones que pasen argumentos mediante listas tal como :" "func:`subprocess.run` con ``shell=False``." -#: ../Doc/library/shlex.rst:78 +#: ../Doc/library/shlex.rst:72 msgid "This idiom would be unsafe:" msgstr "Este idioma sería inseguro:" -#: ../Doc/library/shlex.rst:85 +#: ../Doc/library/shlex.rst:79 msgid ":func:`quote` lets you plug the security hole:" msgstr ":func:`quote` te permite tapar el agujero de seguridad:" -#: ../Doc/library/shlex.rst:95 +#: ../Doc/library/shlex.rst:89 msgid "The quoting is compatible with UNIX shells and with :func:`split`:" msgstr "" "La cita es compatible con los intérpretes de comandos UNIX y con :func:" "`split`:" -#: ../Doc/library/shlex.rst:107 +#: ../Doc/library/shlex.rst:101 msgid "The :mod:`shlex` module defines the following class:" msgstr "El módulo :mod:`shlex` define las siguientes clases:" -#: ../Doc/library/shlex.rst:112 +#: ../Doc/library/shlex.rst:106 msgid "" "A :class:`~shlex.shlex` instance or subclass instance is a lexical analyzer " "object. The initialization argument, if present, specifies where to read " @@ -204,30 +196,30 @@ msgstr "" "información. *punctuation_chars* solo se puede establecer en la creación de " "la instancia :class:`~shlex.shlex` y no se puede modificar más adelante." -#: ../Doc/library/shlex.rst:137 +#: ../Doc/library/shlex.rst:131 msgid "The *punctuation_chars* parameter was added." msgstr "Se añadió el parámetro *punctuation_chars*." -#: ../Doc/library/shlex.rst:142 +#: ../Doc/library/shlex.rst:136 msgid "Module :mod:`configparser`" msgstr "Módulo :mod:`configparser`" -#: ../Doc/library/shlex.rst:143 +#: ../Doc/library/shlex.rst:137 msgid "" "Parser for configuration files similar to the Windows :file:`.ini` files." msgstr "" "Analizador de archivos de configuración similares a los archivos :file:`." "ini` de Windows." -#: ../Doc/library/shlex.rst:149 +#: ../Doc/library/shlex.rst:143 msgid "shlex Objects" msgstr "objetos ``shlex``" -#: ../Doc/library/shlex.rst:151 +#: ../Doc/library/shlex.rst:145 msgid "A :class:`~shlex.shlex` instance has the following methods:" msgstr "Una instancia :class:`~shlex.shlex` tiene los siguientes métodos:" -#: ../Doc/library/shlex.rst:156 +#: ../Doc/library/shlex.rst:150 msgid "" "Return a token. If tokens have been stacked using :meth:`push_token`, pop a " "token off the stack. Otherwise, read one from the input stream. If reading " @@ -240,11 +232,11 @@ msgstr "" "attr:`eof` se retorna (la cadena de caracteres vacía (``''``) en modo no-" "POSIX, y ``None`` en modo POSIX)." -#: ../Doc/library/shlex.rst:164 +#: ../Doc/library/shlex.rst:158 msgid "Push the argument onto the token stack." msgstr "Coloca el argumento en la pila de tokens." -#: ../Doc/library/shlex.rst:169 +#: ../Doc/library/shlex.rst:163 msgid "" "Read a raw token. Ignore the pushback stack, and do not interpret source " "requests. (This is not ordinarily a useful entry point, and is documented " @@ -254,7 +246,7 @@ msgstr "" "peticiones de la fuente. (Este no es normalmente un punto de entrada útil, " "y está documentado aquí sólo para completarlo.)" -#: ../Doc/library/shlex.rst:176 +#: ../Doc/library/shlex.rst:170 msgid "" "When :class:`~shlex.shlex` detects a source request (see :attr:`source` " "below) this method is given the following token as argument, and expected to " @@ -265,7 +257,7 @@ msgstr "" "espera que retorne una tupla que consista en un nombre de archivo y un " "archivo abierto como objeto." -#: ../Doc/library/shlex.rst:180 +#: ../Doc/library/shlex.rst:174 msgid "" "Normally, this method first strips any quotes off the argument. If the " "result is an absolute pathname, or there was no previous source request in " @@ -284,7 +276,7 @@ msgstr "" "comportamiento es similar a la forma en que el preprocesador de C controla " "``#include \"file.h\"``)." -#: ../Doc/library/shlex.rst:188 +#: ../Doc/library/shlex.rst:182 msgid "" "The result of the manipulations is treated as a filename, and returned as " "the first component of the tuple, with :func:`open` called on it to yield " @@ -296,7 +288,7 @@ msgstr "" "él para producir el segundo componente. (Nota: esto es lo contrario del " "orden de los argumentos en la inicialización de instancia!)" -#: ../Doc/library/shlex.rst:193 +#: ../Doc/library/shlex.rst:187 msgid "" "This hook is exposed so that you can use it to implement directory search " "paths, addition of file extensions, and other namespace hacks. There is no " @@ -309,7 +301,7 @@ msgstr "" "instancia de ``shlex`` llamará el método :meth:`~io.IOBase.close` de la " "secuencia de entrada de origen cuando retorna EOF." -#: ../Doc/library/shlex.rst:199 +#: ../Doc/library/shlex.rst:193 msgid "" "For more explicit control of source stacking, use the :meth:`push_source` " "and :meth:`pop_source` methods." @@ -317,7 +309,7 @@ msgstr "" "Para un control más explícito del apilamiento de código fuente, utilice los " "métodos :meth:`push_source` y :meth:`pop_source`." -#: ../Doc/library/shlex.rst:205 +#: ../Doc/library/shlex.rst:199 msgid "" "Push an input source stream onto the input stack. If the filename argument " "is specified it will later be available for use in error messages. This is " @@ -328,7 +320,7 @@ msgstr "" "para su uso en mensajes de error. Este es el mismo método utilizado " "internamente por el método :meth:`sourcehook`." -#: ../Doc/library/shlex.rst:212 +#: ../Doc/library/shlex.rst:206 msgid "" "Pop the last-pushed input source from the input stack. This is the same " "method used internally when the lexer reaches EOF on a stacked input stream." @@ -337,7 +329,7 @@ msgstr "" "método que el analizador léxico utiliza cuando llega al EOF en una secuencia " "de entrada apilada." -#: ../Doc/library/shlex.rst:218 +#: ../Doc/library/shlex.rst:212 #, python-format msgid "" "This method generates an error message leader in the format of a Unix C " @@ -352,7 +344,7 @@ msgstr "" "``%d`` con el número de línea de entrada actual (los argumentos opcionales " "pueden ser usado para sobrescribir estos)." -#: ../Doc/library/shlex.rst:223 +#: ../Doc/library/shlex.rst:217 msgid "" "This convenience is provided to encourage :mod:`shlex` users to generate " "error messages in the standard, parseable format understood by Emacs and " @@ -362,7 +354,7 @@ msgstr "" "a generar mensajes de error en el formato estándar y analizable que " "entienden Emacs y otras herramientas de Unix." -#: ../Doc/library/shlex.rst:227 +#: ../Doc/library/shlex.rst:221 msgid "" "Instances of :class:`~shlex.shlex` subclasses have some public instance " "variables which either control lexical analysis or can be used for debugging:" @@ -371,7 +363,7 @@ msgstr "" "variables de instancia pública que controlan el análisis léxico o pueden ser " "usadas para la depuración:" -#: ../Doc/library/shlex.rst:233 +#: ../Doc/library/shlex.rst:227 msgid "" "The string of characters that are recognized as comment beginners. All " "characters from the comment beginner to end of line are ignored. Includes " @@ -381,7 +373,7 @@ msgstr "" "principiantes. Todos los caracteres desde el comentario principiante hasta " "el final de la línea son ignorados. Incluye sólo ``'#'`` por defecto." -#: ../Doc/library/shlex.rst:240 +#: ../Doc/library/shlex.rst:234 msgid "" "The string of characters that will accumulate into multi-character tokens. " "By default, includes all ASCII alphanumerics and underscore. In POSIX mode, " @@ -403,7 +395,7 @@ msgstr "" "eliminado de ``wordchars`` si están presentes allí. Si :attr:" "`whitespace_split` se establece en ``True``, esto no tendrá ningún efecto." -#: ../Doc/library/shlex.rst:253 +#: ../Doc/library/shlex.rst:247 msgid "" "Characters that will be considered whitespace and skipped. Whitespace " "bounds tokens. By default, includes space, tab, linefeed and carriage-" @@ -413,7 +405,7 @@ msgstr "" "espacio blanco limita los tokens. Por defecto, incluye espacio, tabulación, " "salto de línea y retorno de carro." -#: ../Doc/library/shlex.rst:259 +#: ../Doc/library/shlex.rst:253 msgid "" "Characters that will be considered as escape. This will be only used in " "POSIX mode, and includes just ``'\\'`` by default." @@ -421,7 +413,7 @@ msgstr "" "Caracteres que serán considerados como de escape. Esto sólo se usará en el " "modo POSIX, e incluye sólo ``'\\'`` por defecto." -#: ../Doc/library/shlex.rst:265 +#: ../Doc/library/shlex.rst:259 msgid "" "Characters that will be considered string quotes. The token accumulates " "until the same quote is encountered again (thus, different quote types " @@ -433,7 +425,7 @@ msgstr "" "tipos de citas se protegen entre sí como en el intérprete de comandos.) Por " "defecto, incluye ASCII comillas simples y dobles." -#: ../Doc/library/shlex.rst:272 +#: ../Doc/library/shlex.rst:266 msgid "" "Characters in :attr:`quotes` that will interpret escape characters defined " "in :attr:`escape`. This is only used in POSIX mode, and includes just " @@ -443,7 +435,7 @@ msgstr "" "definidos en :attr:`escape`. Esto sólo se usa en el modo POSIX, e incluye " "sólo ``'\"'`` por defecto." -#: ../Doc/library/shlex.rst:279 +#: ../Doc/library/shlex.rst:273 msgid "" "If ``True``, tokens will only be split in whitespaces. This is useful, for " "example, for parsing command lines with :class:`~shlex.shlex`, getting " @@ -458,7 +450,7 @@ msgstr "" "`puntuation_chars`, los tokens se dividirán en espacios en blanco además de " "esos caracteres." -#: ../Doc/library/shlex.rst:285 +#: ../Doc/library/shlex.rst:279 msgid "" "The :attr:`punctuation_chars` attribute was made compatible with the :attr:" "`whitespace_split` attribute." @@ -466,7 +458,7 @@ msgstr "" "El atributo :attr:`puntuation_chars` se hizo compatible con el atributo :" "attr:`whitespace_split`." -#: ../Doc/library/shlex.rst:292 +#: ../Doc/library/shlex.rst:286 msgid "" "The name of the current input file, as initially set at class instantiation " "time or stacked by later source requests. It may be useful to examine this " @@ -477,7 +469,7 @@ msgstr "" "posteriores. Puede ser útil examinar esto cuando se construyan mensajes de " "error." -#: ../Doc/library/shlex.rst:299 +#: ../Doc/library/shlex.rst:293 msgid "" "The input stream from which this :class:`~shlex.shlex` instance is reading " "characters." @@ -485,7 +477,7 @@ msgstr "" "El flujo de entrada del cual esta instancia :class:`~shlex.shlex` está " "leyendo caracteres." -#: ../Doc/library/shlex.rst:305 +#: ../Doc/library/shlex.rst:299 msgid "" "This attribute is ``None`` by default. If you assign a string to it, that " "string will be recognized as a lexical-level inclusion request similar to " @@ -505,7 +497,7 @@ msgstr "" "convertirá de nuevo en el flujo de entrada original. Las peticiones de " "origen pueden ser apiladas a cualquier número de niveles de profundidad." -#: ../Doc/library/shlex.rst:316 +#: ../Doc/library/shlex.rst:310 msgid "" "If this attribute is numeric and ``1`` or more, a :class:`~shlex.shlex` " "instance will print verbose progress output on its behavior. If you need to " @@ -516,20 +508,20 @@ msgstr "" "necesitas usar esto, puedes leer el código fuente del módulo para conocer " "los detalles." -#: ../Doc/library/shlex.rst:323 +#: ../Doc/library/shlex.rst:317 msgid "Source line number (count of newlines seen so far plus one)." msgstr "" "Numero de linea de fuente (conteo de las nuevas lineas vistas hasta ahora " "mas uno)." -#: ../Doc/library/shlex.rst:328 +#: ../Doc/library/shlex.rst:322 msgid "" "The token buffer. It may be useful to examine this when catching exceptions." msgstr "" "El buffer de tokens. Puede ser útil examinarlo cuando se capturan " "excepciones." -#: ../Doc/library/shlex.rst:333 +#: ../Doc/library/shlex.rst:327 msgid "" "Token used to determine end of file. This will be set to the empty string " "(``''``), in non-POSIX mode, and to ``None`` in POSIX mode." @@ -538,7 +530,7 @@ msgstr "" "cadena de caracteres vacía (``''``), en el modo no-POSIX, y a ``None`` en el " "modo POSIX." -#: ../Doc/library/shlex.rst:339 +#: ../Doc/library/shlex.rst:333 msgid "" "A read-only property. Characters that will be considered punctuation. Runs " "of punctuation characters will be returned as a single token. However, note " @@ -553,11 +545,11 @@ msgstr "" "como un token, aunque no sea reconocido como tal por los intérpretes de " "comandos." -#: ../Doc/library/shlex.rst:350 +#: ../Doc/library/shlex.rst:344 msgid "Parsing Rules" msgstr "Reglas de análisis" -#: ../Doc/library/shlex.rst:352 +#: ../Doc/library/shlex.rst:346 msgid "" "When operating in non-POSIX mode, :class:`~shlex.shlex` will try to obey to " "the following rules." @@ -565,7 +557,7 @@ msgstr "" "Cuando se opera en modo no-POSIX, :class:`~shlex.shlex` intentará obedecer " "las siguientes reglas." -#: ../Doc/library/shlex.rst:355 +#: ../Doc/library/shlex.rst:349 msgid "" "Quote characters are not recognized within words (``Do\"Not\"Separate`` is " "parsed as the single word ``Do\"Not\"Separate``);" @@ -574,11 +566,11 @@ msgstr "" "(``Do\"Not\"Separate`` es analizado como la única palabra " "``Do\"Not\"Separate``);" -#: ../Doc/library/shlex.rst:358 +#: ../Doc/library/shlex.rst:352 msgid "Escape characters are not recognized;" msgstr "Los caracteres de escape no son reconocidos;" -#: ../Doc/library/shlex.rst:360 +#: ../Doc/library/shlex.rst:354 msgid "" "Enclosing characters in quotes preserve the literal value of all characters " "within the quotes;" @@ -586,7 +578,7 @@ msgstr "" "El encerrar los caracteres entre comillas preserva el valor literal de todos " "los caracteres dentro de las comillas;" -#: ../Doc/library/shlex.rst:363 +#: ../Doc/library/shlex.rst:357 msgid "" "Closing quotes separate words (``\"Do\"Separate`` is parsed as ``\"Do\"`` " "and ``Separate``);" @@ -594,7 +586,7 @@ msgstr "" "Las comillas finales separan las palabras (``\"Do\"Separate`` es analizado " "como ``\"Do\"`` y ``Separate``);" -#: ../Doc/library/shlex.rst:366 +#: ../Doc/library/shlex.rst:360 msgid "" "If :attr:`~shlex.whitespace_split` is ``False``, any character not declared " "to be a word character, whitespace, or a quote will be returned as a single-" @@ -606,16 +598,16 @@ msgstr "" "será retornado como un token de un solo carácter. Si es ``True``, :class:" "`~shlex.shlex` sólo dividirá las palabras en espacios en blanco;" -#: ../Doc/library/shlex.rst:371 +#: ../Doc/library/shlex.rst:365 msgid "EOF is signaled with an empty string (``''``);" msgstr "EOF es señalado con una cadena de caracteres vacía (``''``);" -#: ../Doc/library/shlex.rst:373 +#: ../Doc/library/shlex.rst:367 msgid "It's not possible to parse empty strings, even if quoted." msgstr "" "No es posible analizar cadenas de caracteres vacías, incluso si se citan." -#: ../Doc/library/shlex.rst:375 +#: ../Doc/library/shlex.rst:369 msgid "" "When operating in POSIX mode, :class:`~shlex.shlex` will try to obey to the " "following parsing rules." @@ -623,7 +615,7 @@ msgstr "" "Cuando se opera en el modo POSIX, :class:`~shlex.shlex` intentará obedecer a " "las siguientes reglas de análisis." -#: ../Doc/library/shlex.rst:378 +#: ../Doc/library/shlex.rst:372 msgid "" "Quotes are stripped out, and do not separate words " "(``\"Do\"Not\"Separate\"`` is parsed as the single word ``DoNotSeparate``);" @@ -632,7 +624,7 @@ msgstr "" "(``\"Do\"Not\"Separate\"`` se analiza como la sola palabra " "``DoNotSeparate``);" -#: ../Doc/library/shlex.rst:381 +#: ../Doc/library/shlex.rst:375 msgid "" "Non-quoted escape characters (e.g. ``'\\'``) preserve the literal value of " "the next character that follows;" @@ -640,7 +632,7 @@ msgstr "" "Los caracteres de escape no citados (por ejemplo ``'\\'``) conservan el " "valor literal del siguiente carácter que continua;" -#: ../Doc/library/shlex.rst:384 +#: ../Doc/library/shlex.rst:378 msgid "" "Enclosing characters in quotes which are not part of :attr:`~shlex." "escapedquotes` (e.g. ``\"'\"``) preserve the literal value of all characters " @@ -650,7 +642,7 @@ msgstr "" "escapedquotes` (por ejemplo, ``\"\"``) conservan el valor literal de todos " "los caracteres dentro de las comillas;" -#: ../Doc/library/shlex.rst:388 +#: ../Doc/library/shlex.rst:382 msgid "" "Enclosing characters in quotes which are part of :attr:`~shlex." "escapedquotes` (e.g. ``'\"'``) preserves the literal value of all characters " @@ -667,19 +659,19 @@ msgstr "" "propio carácter de escape. De lo contrario, el carácter de escape sera " "considerado un carácter normal." -#: ../Doc/library/shlex.rst:396 +#: ../Doc/library/shlex.rst:390 msgid "EOF is signaled with a :const:`None` value;" msgstr "EOF es señalado con un valor :const:`None`;" -#: ../Doc/library/shlex.rst:398 +#: ../Doc/library/shlex.rst:392 msgid "Quoted empty strings (``''``) are allowed." msgstr "Se permiten cadenas de caracteres vacías entrecomilladas (``''``)." -#: ../Doc/library/shlex.rst:403 +#: ../Doc/library/shlex.rst:397 msgid "Improved Compatibility with Shells" msgstr "Compatibilidad mejorada con intérprete de comandos" -#: ../Doc/library/shlex.rst:407 +#: ../Doc/library/shlex.rst:401 msgid "" "The :class:`shlex` class provides compatibility with the parsing performed " "by common Unix shells like ``bash``, ``dash``, and ``sh``. To take " @@ -707,7 +699,7 @@ msgstr "" "de lo que podrías hacerlo de otra manera. Para ilustrarlo, puede ver la " "diferencia en el siguiente fragmento:" -#: ../Doc/library/shlex.rst:433 +#: ../Doc/library/shlex.rst:427 msgid "" "Of course, tokens will be returned which are not valid for shells, and " "you'll need to implement your own error checks on the returned tokens." @@ -716,7 +708,7 @@ msgstr "" "de comandos y deberá implementar sus propias comprobaciones de errores en " "los tokens retornados." -#: ../Doc/library/shlex.rst:436 +#: ../Doc/library/shlex.rst:430 msgid "" "Instead of passing ``True`` as the value for the punctuation_chars " "parameter, you can pass a string with specific characters, which will be " @@ -726,7 +718,7 @@ msgstr "" "puede pasar una cadena con caracteres específicos, que se usará para " "determinar qué caracteres constituyen puntuación. Por ejemplo::" -#: ../Doc/library/shlex.rst:445 +#: ../Doc/library/shlex.rst:439 msgid "" "When ``punctuation_chars`` is specified, the :attr:`~shlex.wordchars` " "attribute is augmented with the characters ``~-./*?=``. That is because " @@ -739,7 +731,7 @@ msgstr "" "comodines) y en los argumentos de la línea de comandos (por ejemplo, ``--" "color=auto``). Por lo tanto::" -#: ../Doc/library/shlex.rst:456 +#: ../Doc/library/shlex.rst:450 msgid "" "However, to match the shell as closely as possible, it is recommended to " "always use ``posix`` and :attr:`~shlex.whitespace_split` when using :attr:" @@ -751,7 +743,7 @@ msgstr "" "whitespace_split` cuando se utiliza :attr:`~shlex.punctuation_chars`, el " "cual negará por completo :attr:`~shlex.wordchars`." -#: ../Doc/library/shlex.rst:461 +#: ../Doc/library/shlex.rst:455 msgid "" "For best effect, ``punctuation_chars`` should be set in conjunction with " "``posix=True``. (Note that ``posix=False`` is the default for :class:`~shlex." @@ -760,3 +752,12 @@ msgstr "" "Para obtener el mejor efecto, ``punctuation_chars`` debe establecerse junto " "con ``posix=True``. (Tenga en cuenta que ``posix=False`` es el valor " "predeterminado para :class:`~shlex.shlex`.)" + +#~ msgid "" +#~ "Since the :func:`split` function instantiates a :class:`~shlex.shlex` " +#~ "instance, passing ``None`` for *s* will read the string to split from " +#~ "standard input." +#~ msgstr "" +#~ "Como la función :func:`split` inicia una instancia :class:`~shlex.shlex`, " +#~ "al pasar ``None`` por *s* se leerá la cadena de caracteres para separarse " +#~ "de la entrada estándar." diff --git a/library/shutil.po b/library/shutil.po index 29728005dc..0dd5fe597f 100644 --- a/library/shutil.po +++ b/library/shutil.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-30 14:38-0600\n" "Last-Translator: \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/shutil.rst:2 msgid ":mod:`shutil` --- High-level file operations" @@ -157,7 +157,7 @@ msgstr "" #: ../Doc/library/shutil.rst:81 ../Doc/library/shutil.rst:185 #: ../Doc/library/shutil.rst:217 ../Doc/library/shutil.rst:287 -#: ../Doc/library/shutil.rst:381 +#: ../Doc/library/shutil.rst:387 msgid "" "Platform-specific fast-copy syscalls may be used internally in order to copy " "the file more efficiently. See :ref:`shutil-platform-dependent-efficient-" @@ -531,12 +531,13 @@ msgid "The *dirs_exist_ok* parameter." msgstr "El parámetro *dirs_exist_ok*." #: ../Doc/library/shutil.rst:299 +#, fuzzy msgid "" "Delete an entire directory tree; *path* must point to a directory (but not a " "symbolic link to a directory). If *ignore_errors* is true, errors resulting " "from failed removals will be ignored; if false or omitted, such errors are " -"handled by calling a handler specified by *onerror* or, if that is omitted, " -"they raise an exception." +"handled by calling a handler specified by *onexc* or *onerror* or, if both " +"are omitted, exceptions are propagated to the caller." msgstr "" "Elimina un árbol de directorios entero; *path* debe apuntar a un directorio " "(pero no a un enlace simbólico a un directorio). Si *ignore_errors* es " @@ -573,20 +574,22 @@ msgstr "" "aplica." #: ../Doc/library/shutil.rst:318 +#, fuzzy msgid "" -"If *onerror* is provided, it must be a callable that accepts three " -"parameters: *function*, *path*, and *excinfo*." +"If *onexc* is provided, it must be a callable that accepts three parameters: " +"*function*, *path*, and *excinfo*." msgstr "" "Si se *onerror* está dado, debe ser un invocable que acepte tres parámetros: " "*function*, *path*, y *excinfo*." #: ../Doc/library/shutil.rst:321 +#, fuzzy msgid "" "The first parameter, *function*, is the function which raised the exception; " "it depends on the platform and implementation. The second parameter, " "*path*, will be the path name passed to *function*. The third parameter, " -"*excinfo*, will be the exception information returned by :func:`sys." -"exc_info`. Exceptions raised by *onerror* will not be caught." +"*excinfo*, is the exception that was raised. Exceptions raised by *onexc* " +"will not be caught." msgstr "" "El primer parámetro, *function*, es la función que generó la excepción; " "depende de la plataforma y de la implementación. El segundo parámetro, " @@ -596,13 +599,19 @@ msgstr "" #: ../Doc/library/shutil.rst:327 msgid "" +"The deprecated *onerror* is similar to *onexc*, except that the third " +"parameter it receives is the tuple returned from :func:`sys.exc_info`." +msgstr "" + +#: ../Doc/library/shutil.rst:330 +msgid "" "Raises an :ref:`auditing event ` ``shutil.rmtree`` with arguments " "``path``, ``dir_fd``." msgstr "" "Genera un :ref:`evento de auditoría ` ``shutil.rmtree`` con " "argumentos ``path``, ``dir_fd``." -#: ../Doc/library/shutil.rst:329 +#: ../Doc/library/shutil.rst:332 msgid "" "Added a symlink attack resistant version that is used automatically if " "platform supports fd-based functions." @@ -611,7 +620,7 @@ msgstr "" "usan automáticamente si la plataforma admite funciones pasadas en " "descriptores de archivo." -#: ../Doc/library/shutil.rst:333 +#: ../Doc/library/shutil.rst:336 msgid "" "On Windows, will no longer delete the contents of a directory junction " "before removing the junction." @@ -619,11 +628,15 @@ msgstr "" "En Windows, ya no eliminará los contenidos de un cruce de directorios antes " "de quitar el cruce." -#: ../Doc/library/shutil.rst:337 +#: ../Doc/library/shutil.rst:340 msgid "The *dir_fd* parameter." msgstr "El parámetro *dir_fd*." -#: ../Doc/library/shutil.rst:342 +#: ../Doc/library/shutil.rst:343 +msgid "Added the *onexc* parameter, deprecated *onerror*." +msgstr "" + +#: ../Doc/library/shutil.rst:348 msgid "" "Indicates whether the current platform and implementation provides a symlink " "attack resistant version of :func:`rmtree`. Currently this is only true for " @@ -634,7 +647,7 @@ msgstr "" "esto solo sucede para plataformas que admitan funciones de acceso a " "directorios basadas en descriptores de archivo." -#: ../Doc/library/shutil.rst:351 +#: ../Doc/library/shutil.rst:357 msgid "" "Recursively move a file or directory (*src*) to another location (*dst*) and " "return the destination." @@ -642,7 +655,7 @@ msgstr "" "Mueve de forma recursiva un archivo o directorio (*src*) a otra ubicación " "(*dst*) y retorna el destino." -#: ../Doc/library/shutil.rst:354 +#: ../Doc/library/shutil.rst:360 msgid "" "If the destination is an existing directory, then *src* is moved inside that " "directory. If the destination already exists but is not a directory, it may " @@ -652,7 +665,7 @@ msgstr "" "ese directorio. Si el destino existe pero no es un directorio, puede " "sobrescribirse dependiendo de la semántica :func:`os.rename`." -#: ../Doc/library/shutil.rst:358 +#: ../Doc/library/shutil.rst:364 msgid "" "If the destination is on the current filesystem, then :func:`os.rename` is " "used. Otherwise, *src* is copied to *dst* using *copy_function* and then " @@ -665,15 +678,16 @@ msgstr "" "enlace simbólico nuevo que apunta al destino de *src* en o como *dst* y será " "eliminado." -#: ../Doc/library/shutil.rst:363 +#: ../Doc/library/shutil.rst:369 +#, fuzzy msgid "" "If *copy_function* is given, it must be a callable that takes two arguments " "*src* and *dst*, and will be used to copy *src* to *dst* if :func:`os." "rename` cannot be used. If the source is a directory, :func:`copytree` is " -"called, passing it the :func:`copy_function`. The default *copy_function* " -"is :func:`copy2`. Using :func:`~shutil.copy` as the *copy_function* allows " -"the move to succeed when it is not possible to also copy the metadata, at " -"the expense of not copying any of the metadata." +"called, passing it the *copy_function*. The default *copy_function* is :func:" +"`copy2`. Using :func:`~shutil.copy` as the *copy_function* allows the move " +"to succeed when it is not possible to also copy the metadata, at the expense " +"of not copying any of the metadata." msgstr "" "Si *copy_function* se proporciona, debe ser un invocable que toma dos " "argumentos *src* y *dst*, y se usará para copiar *src* a *dest* si no se " @@ -684,7 +698,7 @@ msgstr "" "es posible copiar los metadatos también, a expensas de no copiar ninguno de " "los metadatos." -#: ../Doc/library/shutil.rst:371 +#: ../Doc/library/shutil.rst:377 msgid "" "Raises an :ref:`auditing event ` ``shutil.move`` with arguments " "``src``, ``dst``." @@ -692,7 +706,7 @@ msgstr "" "Genera un :ref:`evento de auditoría ` ``shutil.move`` con " "argumentos ``src``, ``dst``." -#: ../Doc/library/shutil.rst:373 +#: ../Doc/library/shutil.rst:379 msgid "" "Added explicit symlink handling for foreign filesystems, thus adapting it to " "the behavior of GNU's :program:`mv`. Now returns *dst*." @@ -701,16 +715,16 @@ msgstr "" "archivos extranjeros, de manera que se adapta al comportamiento del :program:" "`mv` del GNU. Ahora retorna *dst*." -#: ../Doc/library/shutil.rst:378 +#: ../Doc/library/shutil.rst:384 msgid "Added the *copy_function* keyword argument." msgstr "Se agregó el argumento de keyword *copy_function*." -#: ../Doc/library/shutil.rst:386 +#: ../Doc/library/shutil.rst:392 msgid "Accepts a :term:`path-like object` for both *src* and *dst*." msgstr "" "Acepta un :term:`objeto tipo ruta ` como *src* y *dst*." -#: ../Doc/library/shutil.rst:391 +#: ../Doc/library/shutil.rst:397 msgid "" "Return disk usage statistics about the given path as a :term:`named tuple` " "with the attributes *total*, *used* and *free*, which are the amount of " @@ -721,19 +735,26 @@ msgstr "" "las cantidades del espacio total, el usado y el libre, en bytes. *path* " "puede ser un archivo o un directorio." -#: ../Doc/library/shutil.rst:398 +#: ../Doc/library/shutil.rst:404 +msgid "" +"On Unix filesystems, *path* must point to a path within a **mounted** " +"filesystem partition. On those platforms, CPython doesn't attempt to " +"retrieve disk usage information from non-mounted filesystems." +msgstr "" + +#: ../Doc/library/shutil.rst:410 msgid "On Windows, *path* can now be a file or directory." msgstr "En Windows, *path* ahora puede ser un archivo o un directorio." -#: ../Doc/library/shutil.rst:401 +#: ../Doc/library/shutil.rst:413 msgid ":ref:`Availability `: Unix, Windows." msgstr ":ref:`Disponibilidad `: Unix, Windows." -#: ../Doc/library/shutil.rst:405 +#: ../Doc/library/shutil.rst:417 msgid "Change owner *user* and/or *group* of the given *path*." msgstr "Cambia el propietario *user* y/o *group* de la *ruta* dada." -#: ../Doc/library/shutil.rst:407 +#: ../Doc/library/shutil.rst:419 msgid "" "*user* can be a system user name or a uid; the same applies to *group*. At " "least one argument is required." @@ -741,11 +762,11 @@ msgstr "" "*user* puede ser un nombre usuario de sistema o un UID (identificador de " "usuario); lo mismo aplica a *group*. Se requiere al menos un argumento." -#: ../Doc/library/shutil.rst:410 +#: ../Doc/library/shutil.rst:422 msgid "See also :func:`os.chown`, the underlying function." msgstr "Véase también :func:`os.chown`, la función subyacente." -#: ../Doc/library/shutil.rst:412 +#: ../Doc/library/shutil.rst:424 msgid "" "Raises an :ref:`auditing event ` ``shutil.chown`` with arguments " "``path``, ``user``, ``group``." @@ -753,11 +774,11 @@ msgstr "" "Genera un :ref:`evento de auditoría ` ``shutil.chown`` con " "argumentos ``path``, ``user``, ``group``." -#: ../Doc/library/shutil.rst:415 +#: ../Doc/library/shutil.rst:426 msgid ":ref:`Availability `: Unix." msgstr ":ref:`Disponibilidad `: Unix." -#: ../Doc/library/shutil.rst:421 +#: ../Doc/library/shutil.rst:433 msgid "" "Return the path to an executable which would be run if the given *cmd* was " "called. If no *cmd* would be called, return ``None``." @@ -765,7 +786,7 @@ msgstr "" "Retorna la ruta de acceso a un ejecutable que se ejecutaría si el *cmd* dado " "se invoca. Si no se invoca a *cmd*, retorna ``None``." -#: ../Doc/library/shutil.rst:424 +#: ../Doc/library/shutil.rst:436 msgid "" "*mode* is a permission mask passed to :func:`os.access`, by default " "determining if the file exists and executable." @@ -773,34 +794,41 @@ msgstr "" "*mode* es una máscara de permiso que se pasa a :func:`os.access`, que " "determinar por defecto si el archivo existe y es ejecutable." -#: ../Doc/library/shutil.rst:427 +#: ../Doc/library/shutil.rst:439 +#, fuzzy msgid "" "When no *path* is specified, the results of :func:`os.environ` are used, " -"returning either the \"PATH\" value or a fallback of :attr:`os.defpath`." +"returning either the \"PATH\" value or a fallback of :data:`os.defpath`." msgstr "" "Cuando no se especifica *path*, se usan los resultados de :func:`os.environ` " "y se retorna el valor de \"PATH\" o una reserva de :attr:`os.defpath`." -#: ../Doc/library/shutil.rst:430 +#: ../Doc/library/shutil.rst:442 +msgid "" +"On Windows, the current directory is prepended to the *path* if *mode* does " +"not include ``os.X_OK``. When the *mode* does include ``os.X_OK``, the " +"Windows API ``NeedCurrentDirectoryForExePathW`` will be consulted to " +"determine if the current directory should be prepended to *path*. To avoid " +"consulting the current working directory for executables: set the " +"environment variable ``NoDefaultCurrentDirectoryInExePath``." +msgstr "" + +#: ../Doc/library/shutil.rst:449 +msgid "" +"Also on Windows, the ``PATHEXT`` variable is used to resolve commands that " +"may not already include an extension. For example, if you call ``shutil." +"which(\"python\")``, :func:`which` will search ``PATHEXT`` to know that it " +"should look for ``python.exe`` within the *path* directories. For example, " +"on Windows::" +msgstr "" + +#: ../Doc/library/shutil.rst:458 msgid "" -"On Windows, the current directory is always prepended to the *path* whether " -"or not you use the default or provide your own, which is the behavior the " -"command shell uses when finding executables. Additionally, when finding the " -"*cmd* in the *path*, the ``PATHEXT`` environment variable is checked. For " -"example, if you call ``shutil.which(\"python\")``, :func:`which` will search " -"``PATHEXT`` to know that it should look for ``python.exe`` within the *path* " -"directories. For example, on Windows::" +"This is also applied when *cmd* is a path that contains a directory " +"component::" msgstr "" -"En Windows, el directorio actual siempre se antepone a *path*, " -"independientemente de si usa el valor predeterminado o si tú provees el tuyo " -"propio, que es el comportamiento que el comando *shell* usa cuando encuentra " -"ejecutables. Además, al encontrar el *cmd* en el *path*, se comprueba la " -"variable de entorno ``PATHEXT``. Por ejemplo, si invocas ``shutil." -"which(\"python\")``, :func:`which` buscará ``PATHEXT`` para saber si debe " -"buscar ``python.exe`` dentro de los directorios *path*. Por ejemplo, en " -"Windows::" -#: ../Doc/library/shutil.rst:443 +#: ../Doc/library/shutil.rst:466 msgid "" "The :class:`bytes` type is now accepted. If *cmd* type is :class:`bytes`, " "the result type is also :class:`bytes`." @@ -808,7 +836,18 @@ msgstr "" "Ahora se acepta el tipo :class:`bytes`. Si el tipo *cmd* es :class:`bytes`, " "el tipo resultante también es :class:`bytes`." -#: ../Doc/library/shutil.rst:449 +#: ../Doc/library/shutil.rst:470 +msgid "" +"On Windows, the current directory is no longer prepended to the search path " +"if *mode* includes ``os.X_OK`` and WinAPI " +"``NeedCurrentDirectoryForExePathW(cmd)`` is false, else the current " +"directory is prepended even if it is already in the search path; ``PATHEXT`` " +"is used now even when *cmd* includes a directory component or ends with an " +"extension that is in ``PATHEXT``; and filenames that have no extension can " +"now be found." +msgstr "" + +#: ../Doc/library/shutil.rst:481 msgid "" "This exception collects exceptions that are raised during a multi-file " "operation. For :func:`copytree`, the exception argument is a list of 3-" @@ -818,11 +857,11 @@ msgstr "" "de varios archivos. Para :func:`copytree`, el argumento de excepción es una " "lista de 3 tuplas (*scrname*, *dstname*, *exception*)." -#: ../Doc/library/shutil.rst:456 +#: ../Doc/library/shutil.rst:488 msgid "Platform-dependent efficient copy operations" msgstr "Operaciones de copia eficientes dependientes de la plataforma" -#: ../Doc/library/shutil.rst:458 +#: ../Doc/library/shutil.rst:490 msgid "" "Starting from Python 3.8, all functions involving a file copy (:func:" "`copyfile`, :func:`~shutil.copy`, :func:`copy2`, :func:`copytree`, and :func:" @@ -839,17 +878,17 @@ msgstr "" "dentro del núcleo, evitando el uso de búferes en espacio de usuario en " "Python como en \"``outfd.write(infd.read())``\"." -#: ../Doc/library/shutil.rst:466 +#: ../Doc/library/shutil.rst:498 msgid "On macOS `fcopyfile`_ is used to copy the file content (not metadata)." msgstr "" "En macOS, se usa `fcopyfile`_ para copiar el contenido del archivo (pero no " "los metadatos)." -#: ../Doc/library/shutil.rst:468 +#: ../Doc/library/shutil.rst:500 msgid "On Linux :func:`os.sendfile` is used." msgstr "En Linux, se usa :func:`os.sendfile`." -#: ../Doc/library/shutil.rst:470 +#: ../Doc/library/shutil.rst:502 msgid "" "On Windows :func:`shutil.copyfile` uses a bigger default buffer size (1 MiB " "instead of 64 KiB) and a :func:`memoryview`-based variant of :func:`shutil." @@ -859,7 +898,7 @@ msgstr "" "más grande (1 MiB en lugar de 64 KiB) y se usa una variante de :func:`shutil." "copyfileobj` basada en :func:`memoryview`." -#: ../Doc/library/shutil.rst:474 +#: ../Doc/library/shutil.rst:506 msgid "" "If the fast-copy operation fails and no data was written in the destination " "file then shutil will silently fallback on using less efficient :func:" @@ -869,15 +908,15 @@ msgstr "" "dato en el archivo de destino, entonces shutil recurrirá silenciosamente a " "usar la función :func:`copyfileobj` menos eficiente internamente." -#: ../Doc/library/shutil.rst:483 +#: ../Doc/library/shutil.rst:515 msgid "copytree example" msgstr "ejemplo de *copytree*" -#: ../Doc/library/shutil.rst:485 +#: ../Doc/library/shutil.rst:517 msgid "An example that uses the :func:`ignore_patterns` helper::" msgstr "Un ejemplo que usa el auxiliar :func:`ignore_patterns`::" -#: ../Doc/library/shutil.rst:491 +#: ../Doc/library/shutil.rst:523 msgid "" "This will copy everything except ``.pyc`` files and files or directories " "whose name starts with ``tmp``." @@ -885,21 +924,22 @@ msgstr "" "Esto copiará todo excepto archivos ``.pyc`` y archivos o directorios cuyo " "nombre comience con ``tmp``." -#: ../Doc/library/shutil.rst:494 +#: ../Doc/library/shutil.rst:526 msgid "Another example that uses the *ignore* argument to add a logging call::" msgstr "" "Otro ejemplo que usa el argumento *ignore* para agregar una llamada a " "iniciar sesión::" -#: ../Doc/library/shutil.rst:509 +#: ../Doc/library/shutil.rst:541 msgid "rmtree example" msgstr "ejemplo de rmtree" -#: ../Doc/library/shutil.rst:511 +#: ../Doc/library/shutil.rst:543 +#, fuzzy msgid "" "This example shows how to remove a directory tree on Windows where some of " -"the files have their read-only bit set. It uses the onerror callback to " -"clear the readonly bit and reattempt the remove. Any subsequent failure will " +"the files have their read-only bit set. It uses the onexc callback to clear " +"the readonly bit and reattempt the remove. Any subsequent failure will " "propagate. ::" msgstr "" "Este ejemplo muestra como eliminar un árbol de directorio en Windows donde " @@ -907,15 +947,15 @@ msgstr "" "*onerror callback* para limpiar el *bit* de sólo lectura y reintentar " "eliminarlo. Cualquier fallo que le siga, se propagará. ::" -#: ../Doc/library/shutil.rst:529 +#: ../Doc/library/shutil.rst:561 msgid "Archiving operations" msgstr "Operaciones de archivado" -#: ../Doc/library/shutil.rst:533 +#: ../Doc/library/shutil.rst:565 msgid "Added support for the *xztar* format." msgstr "Se agregó soporte para el formato *xztar*." -#: ../Doc/library/shutil.rst:537 +#: ../Doc/library/shutil.rst:569 msgid "" "High-level utilities to create and read compressed and archived files are " "also provided. They rely on the :mod:`zipfile` and :mod:`tarfile` modules." @@ -924,11 +964,11 @@ msgstr "" "comprimidos y archivados. Utilizan para esto los módulos :mod:`zipfile` y :" "mod:`tarfile`." -#: ../Doc/library/shutil.rst:542 +#: ../Doc/library/shutil.rst:574 msgid "Create an archive file (such as zip or tar) and return its name." msgstr "Crea un documento de archivado (como zip o tar) y retorna su nombre." -#: ../Doc/library/shutil.rst:544 +#: ../Doc/library/shutil.rst:576 msgid "" "*base_name* is the name of the file to create, including the path, minus any " "format-specific extension. *format* is the archive format: one of " @@ -942,7 +982,7 @@ msgstr "" "\"gztar\" (si el módulo :mod:`zlib` está disponible), \"bztar\" (si el " "módulo :mod:`bz2` está disponible), o \"xztar\" (si el módulo :mod:`lzma`)." -#: ../Doc/library/shutil.rst:550 +#: ../Doc/library/shutil.rst:582 msgid "" "*root_dir* is a directory that will be the root directory of the archive, " "all paths in the archive will be relative to it; for example, we typically " @@ -952,7 +992,7 @@ msgstr "" "las rutas en el archivo serán relativas a él; por ejemplo, típicamente nos " "cambiaremos de directorio (*chdir*) a *root_dir* antes de crear el archivo." -#: ../Doc/library/shutil.rst:554 +#: ../Doc/library/shutil.rst:586 msgid "" "*base_dir* is the directory where we start archiving from; i.e. *base_dir* " "will be the common prefix of all files and directories in the archive. " @@ -965,11 +1005,11 @@ msgstr "" "`shutil-archiving-example-with-basedir` se ve un ejemplo de cómo usar " "*base_dir* y *root_dir* juntos." -#: ../Doc/library/shutil.rst:560 +#: ../Doc/library/shutil.rst:592 msgid "*root_dir* and *base_dir* both default to the current directory." msgstr "*root_dir* y *base_dir* irán por defecto al directorio actual." -#: ../Doc/library/shutil.rst:562 +#: ../Doc/library/shutil.rst:594 msgid "" "If *dry_run* is true, no archive is created, but the operations that would " "be executed are logged to *logger*." @@ -977,7 +1017,7 @@ msgstr "" "If *dry_run* es verdadero, no se crea un archivo, pero las operaciones que " "se ejecutarán están registradas en *logger*." -#: ../Doc/library/shutil.rst:565 +#: ../Doc/library/shutil.rst:597 msgid "" "*owner* and *group* are used when creating a tar archive. By default, uses " "the current owner and group." @@ -985,7 +1025,7 @@ msgstr "" "*owner* y *group* se usan al crear un archivador tar. Por defecto, usa el " "propietario y el grupo actual." -#: ../Doc/library/shutil.rst:568 +#: ../Doc/library/shutil.rst:600 msgid "" "*logger* must be an object compatible with :pep:`282`, usually an instance " "of :class:`logging.Logger`." @@ -993,11 +1033,11 @@ msgstr "" "*logger* debe ser un objeto compatible con :pep:`282`, usualmente una " "instancia de :class:`logging.Logger`." -#: ../Doc/library/shutil.rst:571 +#: ../Doc/library/shutil.rst:603 msgid "The *verbose* argument is unused and deprecated." msgstr "El argumento *verbose* está fuera de uso y es obsoleto." -#: ../Doc/library/shutil.rst:573 +#: ../Doc/library/shutil.rst:605 msgid "" "Raises an :ref:`auditing event ` ``shutil.make_archive`` with " "arguments ``base_name``, ``format``, ``root_dir``, ``base_dir``." @@ -1005,18 +1045,20 @@ msgstr "" "Genera un :ref:`evento de auditoría ` ``shutil.make_archive`` con " "argumentos ``base_name``, ``format``, ``root_dir``, ``base_dir``." -#: ../Doc/library/shutil.rst:577 +#: ../Doc/library/shutil.rst:609 +#, fuzzy msgid "" "This function is not thread-safe when custom archivers registered with :func:" -"`register_archive_format` are used. In this case it temporarily changes the " -"current working directory of the process to perform archiving." +"`register_archive_format` do not support the *root_dir* argument. In this " +"case it temporarily changes the current working directory of the process to " +"*root_dir* to perform archiving." msgstr "" "Esta función no es segura para hilos cuando son usados archivos " "personalizados registrados con :func:`register_archive_format`. En este caso " "temporalmente cambia el directorio de trabajo actual del proceso para " "realizar el archivado." -#: ../Doc/library/shutil.rst:582 +#: ../Doc/library/shutil.rst:615 msgid "" "The modern pax (POSIX.1-2001) format is now used instead of the legacy GNU " "format for archives created with ``format=\"tar\"``." @@ -1024,7 +1066,7 @@ msgstr "" "El formato de *pax* moderno (POSIX.1-2001) se usa ahora en lugar del formato " "de legado GNU para archivadores creados con ``format=\"tar\"``." -#: ../Doc/library/shutil.rst:586 +#: ../Doc/library/shutil.rst:619 msgid "" "This function is now made thread-safe during creation of standard ``.zip`` " "and tar archives." @@ -1032,7 +1074,7 @@ msgstr "" "Esta función ahora es segura para hilos durante la creación de archivos " "estándar ``.zip`` y tar." -#: ../Doc/library/shutil.rst:592 +#: ../Doc/library/shutil.rst:625 msgid "" "Return a list of supported formats for archiving. Each element of the " "returned sequence is a tuple ``(name, description)``." @@ -1040,40 +1082,40 @@ msgstr "" "Retorna una lista de formatos admitidos para archivado. Cada elemento de una " "secuencia retornada es una tupla ``(name, description)``." -#: ../Doc/library/shutil.rst:595 ../Doc/library/shutil.rst:683 +#: ../Doc/library/shutil.rst:628 ../Doc/library/shutil.rst:739 msgid "By default :mod:`shutil` provides these formats:" msgstr "Por defecto, :mod:`shutil` provee los siguientes formatos:" -#: ../Doc/library/shutil.rst:597 +#: ../Doc/library/shutil.rst:630 msgid "*zip*: ZIP file (if the :mod:`zlib` module is available)." msgstr "*zip*: archivo ZIP (si el módulo :mod:`zlib` está disponible)." -#: ../Doc/library/shutil.rst:598 +#: ../Doc/library/shutil.rst:631 msgid "" "*tar*: Uncompressed tar file. Uses POSIX.1-2001 pax format for new archives." msgstr "" "*tar*: archivo tar sin comprimir. Utiliza el formato pax POSIX.1-2001 para " "archivos nuevos." -#: ../Doc/library/shutil.rst:599 ../Doc/library/shutil.rst:688 +#: ../Doc/library/shutil.rst:632 ../Doc/library/shutil.rst:744 msgid "*gztar*: gzip'ed tar-file (if the :mod:`zlib` module is available)." msgstr "" "*gztar*: archivo tar comprimido con gzip (si el módulo :mod:`zlib` está " "disponible)." -#: ../Doc/library/shutil.rst:600 ../Doc/library/shutil.rst:689 +#: ../Doc/library/shutil.rst:633 ../Doc/library/shutil.rst:745 msgid "*bztar*: bzip2'ed tar-file (if the :mod:`bz2` module is available)." msgstr "" "*bztar*: archivo tar comprimido con bzip2 (si el módulo :mod:`bz2` está " "disponible)." -#: ../Doc/library/shutil.rst:601 ../Doc/library/shutil.rst:690 +#: ../Doc/library/shutil.rst:634 ../Doc/library/shutil.rst:746 msgid "*xztar*: xz'ed tar-file (if the :mod:`lzma` module is available)." msgstr "" "*xztar*: archivo tar comprimido con xz (si el módulo :mod:`lzma` está " "disponible)." -#: ../Doc/library/shutil.rst:603 +#: ../Doc/library/shutil.rst:636 msgid "" "You can register new formats or provide your own archiver for any existing " "formats, by using :func:`register_archive_format`." @@ -1081,11 +1123,11 @@ msgstr "" "Puedes registrar formatos nuevos o proporcionar tu propio archivador para " "cualquier formato existente, usando :func:`register_archive_format`." -#: ../Doc/library/shutil.rst:609 +#: ../Doc/library/shutil.rst:642 msgid "Register an archiver for the format *name*." msgstr "Registra un archivador para el formato *name*." -#: ../Doc/library/shutil.rst:611 +#: ../Doc/library/shutil.rst:644 msgid "" "*function* is the callable that will be used to unpack archives. The " "callable will receive the *base_name* of the file to create, followed by the " @@ -1100,7 +1142,16 @@ msgstr "" "clave: *owner*, *group*, *dry_run* y *logger* (como se pasa en :func:" "`make_archive`)." -#: ../Doc/library/shutil.rst:617 +#: ../Doc/library/shutil.rst:650 +msgid "" +"If *function* has the custom attribute ``function.supports_root_dir`` set to " +"``True``, the *root_dir* argument is passed as a keyword argument. Otherwise " +"the current working directory of the process is temporarily changed to " +"*root_dir* before calling *function*. In this case :func:`make_archive` is " +"not thread-safe." +msgstr "" + +#: ../Doc/library/shutil.rst:656 msgid "" "If given, *extra_args* is a sequence of ``(name, value)`` pairs that will be " "used as extra keywords arguments when the archiver callable is used." @@ -1109,7 +1160,7 @@ msgstr "" "se usarán como argumentos de palabras clave extra cuando se usa el " "archivador invocable." -#: ../Doc/library/shutil.rst:620 +#: ../Doc/library/shutil.rst:659 msgid "" "*description* is used by :func:`get_archive_formats` which returns the list " "of archivers. Defaults to an empty string." @@ -1117,16 +1168,21 @@ msgstr "" "*description* se usa por :func:`get_archive_formats` que retorna la lista de " "archivadores. Cae por defecto en una cadena de caracteres vacía." -#: ../Doc/library/shutil.rst:626 +#: ../Doc/library/shutil.rst:662 +#, fuzzy +msgid "Added support for functions supporting the *root_dir* argument." +msgstr "Se agregó soporte para el formato *xztar*." + +#: ../Doc/library/shutil.rst:668 msgid "Remove the archive format *name* from the list of supported formats." msgstr "" "Elimina el formato de archivo *name* de la lista de formatos admitidos." -#: ../Doc/library/shutil.rst:631 +#: ../Doc/library/shutil.rst:673 msgid "Unpack an archive. *filename* is the full path of the archive." msgstr "Desempaqueta un archivo. *filename* es la ruta completa del archivo." -#: ../Doc/library/shutil.rst:633 +#: ../Doc/library/shutil.rst:675 msgid "" "*extract_dir* is the name of the target directory where the archive is " "unpacked. If not provided, the current working directory is used." @@ -1134,7 +1190,7 @@ msgstr "" "*extract_dir* es el nombre del directorio donde se desempaca el archivo. Si " "no está provisto, se usa el nombre del directorio actual." -#: ../Doc/library/shutil.rst:636 +#: ../Doc/library/shutil.rst:678 msgid "" "*format* is the archive format: one of \"zip\", \"tar\", \"gztar\", " "\"bztar\", or \"xztar\". Or any other format registered with :func:" @@ -1149,7 +1205,17 @@ msgstr "" "para esa extensión. En caso de que no se encuentre ninguno, se genera un :" "exc:`ValueError`." -#: ../Doc/library/shutil.rst:643 +#: ../Doc/library/shutil.rst:685 +msgid "" +"The keyword-only *filter* argument is passed to the underlying unpacking " +"function. For zip files, *filter* is not accepted. For tar files, it is " +"recommended to set it to ``'data'``, unless using features specific to tar " +"and UNIX-like filesystems. (See :ref:`tarfile-extraction-filter` for " +"details.) The ``'data'`` filter will become the default for tar files in " +"Python 3.14." +msgstr "" + +#: ../Doc/library/shutil.rst:693 msgid "" "Raises an :ref:`auditing event ` ``shutil.unpack_archive`` with " "arguments ``filename``, ``extract_dir``, ``format``." @@ -1157,7 +1223,7 @@ msgstr "" "Se genera un :ref:`evento de auditoría ` ``shutil.unpack_archive`` " "con argumentos ``filename``, ``extract_dir``, ``format``." -#: ../Doc/library/shutil.rst:647 +#: ../Doc/library/shutil.rst:697 msgid "" "Never extract archives from untrusted sources without prior inspection. It " "is possible that files are created outside of the path specified in the " @@ -1170,11 +1236,16 @@ msgstr "" "absolutos comenzando con \\\"/\\\" or nombres de archivos con dos puntos \\" "\"..\\\"." -#: ../Doc/library/shutil.rst:652 +#: ../Doc/library/shutil.rst:702 msgid "Accepts a :term:`path-like object` for *filename* and *extract_dir*." msgstr "Acepta un :term:`path-like object` como *filename* y *extract_dir*." -#: ../Doc/library/shutil.rst:657 +#: ../Doc/library/shutil.rst:705 +#, fuzzy +msgid "Added the *filter* argument." +msgstr "Se agregó el argumento de keyword *copy_function*." + +#: ../Doc/library/shutil.rst:710 msgid "" "Registers an unpack format. *name* is the name of the format and " "*extensions* is a list of extensions corresponding to the format, like ``." @@ -1184,25 +1255,38 @@ msgstr "" "*extensions* es una lista de extensiones que corresponden al formato, como " "``.zip`` para archivos zip." -#: ../Doc/library/shutil.rst:661 +#: ../Doc/library/shutil.rst:714 +#, fuzzy msgid "" "*function* is the callable that will be used to unpack archives. The " -"callable will receive the path of the archive, followed by the directory the " -"archive must be extracted to." +"callable will receive:" msgstr "" "*function* es el invocable que se usará para desempacar archivadores. El " "invocable recibirá la ruta del archivador, seguida del directorio al que el " "archivador debe extraerse." -#: ../Doc/library/shutil.rst:665 +#: ../Doc/library/shutil.rst:717 +msgid "the path of the archive, as a positional argument;" +msgstr "" + +#: ../Doc/library/shutil.rst:718 msgid "" -"When provided, *extra_args* is a sequence of ``(name, value)`` tuples that " -"will be passed as keywords arguments to the callable." +"the directory the archive must be extracted to, as a positional argument;" msgstr "" -"Cuando está dado, *extra_args* es una secuencia de tuplas ``(name, value)`` " -"que se pasarán como argumentos de palabra clave al invocable." -#: ../Doc/library/shutil.rst:668 +#: ../Doc/library/shutil.rst:719 +msgid "" +"possibly a *filter* keyword argument, if it was given to :func:" +"`unpack_archive`;" +msgstr "" + +#: ../Doc/library/shutil.rst:721 +msgid "" +"additional keyword arguments, specified by *extra_args* as a sequence of " +"``(name, value)`` tuples." +msgstr "" + +#: ../Doc/library/shutil.rst:724 msgid "" "*description* can be provided to describe the format, and will be returned " "by the :func:`get_unpack_formats` function." @@ -1210,12 +1294,12 @@ msgstr "" "*description* se puede proporcionar para describir el formato y será " "retornado por la función :func:`get_unpack_formats`." -#: ../Doc/library/shutil.rst:674 +#: ../Doc/library/shutil.rst:730 msgid "Unregister an unpack format. *name* is the name of the format." msgstr "" "Anula el registro del formato de desempaque. *name* es el nombre del formato." -#: ../Doc/library/shutil.rst:679 +#: ../Doc/library/shutil.rst:735 msgid "" "Return a list of all registered formats for unpacking. Each element of the " "returned sequence is a tuple ``(name, extensions, description)``." @@ -1223,7 +1307,7 @@ msgstr "" "Retorna una lista de todos los formatos registrados para desempaquetar. Cada " "elemento de la secuencia es una tupla ``(name, extensions, description)``." -#: ../Doc/library/shutil.rst:685 +#: ../Doc/library/shutil.rst:741 msgid "" "*zip*: ZIP file (unpacking compressed files works only if the corresponding " "module is available)." @@ -1231,11 +1315,11 @@ msgstr "" "*zip*: archivo zip (desempaquetar archivos comprimidos funciona solo si el " "módulo correspondiente está disponible)." -#: ../Doc/library/shutil.rst:687 +#: ../Doc/library/shutil.rst:743 msgid "*tar*: uncompressed tar file." msgstr "*tar*: archivo tar sin comprimir." -#: ../Doc/library/shutil.rst:692 +#: ../Doc/library/shutil.rst:748 msgid "" "You can register new formats or provide your own unpacker for any existing " "formats, by using :func:`register_unpack_format`." @@ -1243,11 +1327,11 @@ msgstr "" "Puedes registrar formatos nuevos o proporcionar tu propio desempaquetado " "para cualquier formato existente, usando :func:`register_unpack_format`." -#: ../Doc/library/shutil.rst:699 +#: ../Doc/library/shutil.rst:755 msgid "Archiving example" msgstr "Ejemplo de archivado" -#: ../Doc/library/shutil.rst:701 +#: ../Doc/library/shutil.rst:757 msgid "" "In this example, we create a gzip'ed tar-file archive containing all files " "found in the :file:`.ssh` directory of the user::" @@ -1255,15 +1339,15 @@ msgstr "" "En este ejemplo, creamos un archivo tar de tipo gzip que contiene todos los " "archivos que se encuentran en el directorio :file:`.ssh` del usuario::" -#: ../Doc/library/shutil.rst:711 +#: ../Doc/library/shutil.rst:767 msgid "The resulting archive contains:" msgstr "El archivo resultante contiene:" -#: ../Doc/library/shutil.rst:729 +#: ../Doc/library/shutil.rst:785 msgid "Archiving example with *base_dir*" msgstr "Ejemplo de archivado con *base_dir*" -#: ../Doc/library/shutil.rst:731 +#: ../Doc/library/shutil.rst:787 msgid "" "In this example, similar to the `one above `_, we " "show how to use :func:`make_archive`, but this time with the usage of " @@ -1273,7 +1357,7 @@ msgstr "" "mostramos cómo usar :func:`make_archive`, pero esta vez utilizando " "*base_dir*. Ahora tenemos la siguiente estructura de directorios:" -#: ../Doc/library/shutil.rst:745 +#: ../Doc/library/shutil.rst:801 msgid "" "In the final archive, :file:`please_add.txt` should be included, but :file:" "`do_not_add.txt` should not. Therefore we use the following::" @@ -1281,19 +1365,19 @@ msgstr "" "En el archivo final, :file:`please_add.txt` debería estar incluido, pero :" "file:`do_not_add.txt` no. Por lo tanto usamos lo siguiente::" -#: ../Doc/library/shutil.rst:759 +#: ../Doc/library/shutil.rst:815 msgid "Listing the files in the resulting archive gives us:" msgstr "Listando los archivos en el archivo resultante nos da:" -#: ../Doc/library/shutil.rst:769 +#: ../Doc/library/shutil.rst:825 msgid "Querying the size of the output terminal" msgstr "Consulta el tamaño de la terminal de salida" -#: ../Doc/library/shutil.rst:773 +#: ../Doc/library/shutil.rst:829 msgid "Get the size of the terminal window." msgstr "Obtén el tamaño de la ventana de la terminal." -#: ../Doc/library/shutil.rst:775 +#: ../Doc/library/shutil.rst:831 msgid "" "For each of the two dimensions, the environment variable, ``COLUMNS`` and " "``LINES`` respectively, is checked. If the variable is defined and the value " @@ -1303,7 +1387,7 @@ msgstr "" "``COLUMNS`` y ``LINES`` respectivamente. Si la variable está definida y el " "valor es un entero positivo, se utiliza." -#: ../Doc/library/shutil.rst:779 +#: ../Doc/library/shutil.rst:835 msgid "" "When ``COLUMNS`` or ``LINES`` is not defined, which is the common case, the " "terminal connected to :data:`sys.__stdout__` is queried by invoking :func:" @@ -1313,7 +1397,7 @@ msgstr "" "terminal conectada a :data:`sys.__stdout__` se consulta invocando :func:`os." "get_terminal_size`." -#: ../Doc/library/shutil.rst:783 +#: ../Doc/library/shutil.rst:839 msgid "" "If the terminal size cannot be successfully queried, either because the " "system doesn't support querying, or because we are not connected to a " @@ -1327,13 +1411,13 @@ msgstr "" "tiene por defecto ``(80, 24)``, que es el tamaño por defecto que se usa en " "muchos emuladores de terminal." -#: ../Doc/library/shutil.rst:789 +#: ../Doc/library/shutil.rst:845 msgid "The value returned is a named tuple of type :class:`os.terminal_size`." msgstr "" "El valor retornado es una tupla con su respectivo nombre, de tipo :class:`os." "terminal_size`." -#: ../Doc/library/shutil.rst:791 +#: ../Doc/library/shutil.rst:847 msgid "" "See also: The Single UNIX Specification, Version 2, `Other Environment " "Variables`_." @@ -1341,10 +1425,56 @@ msgstr "" "Ver también: *The Single UNIX Specification*, Versión 2, `Other Environment " "Variables`_." -#: ../Doc/library/shutil.rst:796 +#: ../Doc/library/shutil.rst:852 msgid "" "The ``fallback`` values are also used if :func:`os.get_terminal_size` " "returns zeroes." msgstr "" "Los valores ``fallback`` son usados también si :func:`os.get_terminal_size` " "devuelve zeros." + +#: ../Doc/library/shutil.rst:12 +msgid "file" +msgstr "" + +#: ../Doc/library/shutil.rst:12 +msgid "copying" +msgstr "" + +#: ../Doc/library/shutil.rst:12 +msgid "copying files" +msgstr "" + +#: ../Doc/library/shutil.rst:297 +msgid "directory" +msgstr "" + +#: ../Doc/library/shutil.rst:297 +msgid "deleting" +msgstr "" + +#~ msgid "" +#~ "On Windows, the current directory is always prepended to the *path* " +#~ "whether or not you use the default or provide your own, which is the " +#~ "behavior the command shell uses when finding executables. Additionally, " +#~ "when finding the *cmd* in the *path*, the ``PATHEXT`` environment " +#~ "variable is checked. For example, if you call ``shutil." +#~ "which(\"python\")``, :func:`which` will search ``PATHEXT`` to know that " +#~ "it should look for ``python.exe`` within the *path* directories. For " +#~ "example, on Windows::" +#~ msgstr "" +#~ "En Windows, el directorio actual siempre se antepone a *path*, " +#~ "independientemente de si usa el valor predeterminado o si tú provees el " +#~ "tuyo propio, que es el comportamiento que el comando *shell* usa cuando " +#~ "encuentra ejecutables. Además, al encontrar el *cmd* en el *path*, se " +#~ "comprueba la variable de entorno ``PATHEXT``. Por ejemplo, si invocas " +#~ "``shutil.which(\"python\")``, :func:`which` buscará ``PATHEXT`` para " +#~ "saber si debe buscar ``python.exe`` dentro de los directorios *path*. Por " +#~ "ejemplo, en Windows::" + +#~ msgid "" +#~ "When provided, *extra_args* is a sequence of ``(name, value)`` tuples " +#~ "that will be passed as keywords arguments to the callable." +#~ msgstr "" +#~ "Cuando está dado, *extra_args* es una secuencia de tuplas ``(name, " +#~ "value)`` que se pasarán como argumentos de palabra clave al invocable." diff --git a/library/signal.po b/library/signal.po index ddf62a9697..4d9211924f 100644 --- a/library/signal.po +++ b/library/signal.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-18 10:12+0800\n" "Last-Translator: Rodrigo Tobar \n" "Language: es\n" @@ -19,22 +19,26 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/signal.rst:2 msgid ":mod:`signal` --- Set handlers for asynchronous events" msgstr ":mod:`signal` --- Establece gestores para eventos asíncronos" -#: ../Doc/library/signal.rst:9 +#: ../Doc/library/signal.rst:7 +msgid "**Source code:** :source:`Lib/signal.py`" +msgstr "" + +#: ../Doc/library/signal.rst:11 msgid "This module provides mechanisms to use signal handlers in Python." msgstr "" "Este módulo proporciona mecanismos para usar gestores de señales en Python." -#: ../Doc/library/signal.rst:13 +#: ../Doc/library/signal.rst:15 msgid "General rules" msgstr "Reglas generales" -#: ../Doc/library/signal.rst:15 +#: ../Doc/library/signal.rst:17 msgid "" "The :func:`signal.signal` function allows defining custom handlers to be " "executed when a signal is received. A small number of default handlers are " @@ -50,7 +54,7 @@ msgstr "" "excepciones ordinarias de Python) y :const:`SIGINT` es trasladada en una " "excepción :exc:`KeyboardInterrupt` si el proceso padre no lo ha cambiado." -#: ../Doc/library/signal.rst:22 +#: ../Doc/library/signal.rst:24 msgid "" "A handler for a particular signal, once set, remains installed until it is " "explicitly reset (Python emulates the BSD style interface regardless of the " @@ -63,7 +67,7 @@ msgstr "" "excepción del gestor para :const:`SIGCHLD`, que sigue la implementación " "subyacente." -#: ../Doc/library/signal.rst:27 +#: ../Doc/library/signal.rst:29 msgid "" "On WebAssembly platforms ``wasm32-emscripten`` and ``wasm32-wasi``, signals " "are emulated and therefore behave differently. Several functions and signals " @@ -73,11 +77,11 @@ msgstr "" "señales son emuladas y por lo tanto tiene un comportamiento diferente. " "Muchas de las funciones no están disponible en estas plataformas." -#: ../Doc/library/signal.rst:32 +#: ../Doc/library/signal.rst:34 msgid "Execution of Python signal handlers" msgstr "Ejecución de los gestores de señales de Python" -#: ../Doc/library/signal.rst:34 +#: ../Doc/library/signal.rst:36 msgid "" "A Python signal handler does not get executed inside the low-level (C) " "signal handler. Instead, the low-level signal handler sets a flag which " @@ -92,7 +96,7 @@ msgstr "" "ejemplo en la próxima instrucción :term:`bytecode`). Esto tiene " "consecuencias:" -#: ../Doc/library/signal.rst:40 +#: ../Doc/library/signal.rst:42 msgid "" "It makes little sense to catch synchronous errors like :const:`SIGFPE` or :" "const:`SIGSEGV` that are caused by an invalid operation in C code. Python " @@ -108,7 +112,7 @@ msgstr "" "aparentemente. Desde Python 3.3 en adelante, puedes usar el módulo :mod:" "`faulthandler` para reportar errores síncronos." -#: ../Doc/library/signal.rst:47 +#: ../Doc/library/signal.rst:49 msgid "" "A long-running calculation implemented purely in C (such as regular " "expression matching on a large body of text) may run uninterrupted for an " @@ -121,7 +125,7 @@ msgstr "" "independientemente de las señales recibidas. Los gestores de señales de " "Python serán llamados cuando el cálculo finalice." -#: ../Doc/library/signal.rst:52 +#: ../Doc/library/signal.rst:54 msgid "" "If the handler raises an exception, it will be raised \"out of thin air\" in " "the main thread. See the :ref:`note below ` for a " @@ -130,11 +134,11 @@ msgstr "" "Si el gestor genera alguna excepción, será lanzada inesperadamente. Vea la :" "ref:`nota abajo ` para discusión." -#: ../Doc/library/signal.rst:60 +#: ../Doc/library/signal.rst:62 msgid "Signals and threads" msgstr "Señales e hilos" -#: ../Doc/library/signal.rst:62 +#: ../Doc/library/signal.rst:64 msgid "" "Python signal handlers are always executed in the main Python thread of the " "main interpreter, even if the signal was received in another thread. This " @@ -148,18 +152,18 @@ msgstr "" "hilos. Puedes usar las primitivas de sincronización desde el módulo :mod:" "`threading` en su lugar." -#: ../Doc/library/signal.rst:67 +#: ../Doc/library/signal.rst:69 msgid "" "Besides, only the main thread of the main interpreter is allowed to set a " "new signal handler." msgstr "" "Además, solo el hilo principal puede configurar un nuevo gestor de señal." -#: ../Doc/library/signal.rst:71 +#: ../Doc/library/signal.rst:73 msgid "Module contents" msgstr "Contenidos del módulo" -#: ../Doc/library/signal.rst:73 +#: ../Doc/library/signal.rst:75 #, fuzzy msgid "" "signal (SIG*), handler (:const:`SIG_DFL`, :const:`SIG_IGN`) and sigmask (:" @@ -177,19 +181,19 @@ msgstr "" "func:`sigwait` que retornan :class:`enums ` que pueden ser " "leídas por humanos." -#: ../Doc/library/signal.rst:83 +#: ../Doc/library/signal.rst:85 #, fuzzy msgid "The signal module defines three enums:" msgstr "El módulo :mod:`signal` define una excepción:" -#: ../Doc/library/signal.rst:87 +#: ../Doc/library/signal.rst:89 msgid "" ":class:`enum.IntEnum` collection of SIG* constants and the CTRL_* constants." msgstr "" ":class:`enum.IntEnum` colección de constantes SIG* y colección de constantes " "CTRL_*" -#: ../Doc/library/signal.rst:93 +#: ../Doc/library/signal.rst:95 msgid "" ":class:`enum.IntEnum` collection the constants :const:`SIG_DFL` and :const:" "`SIG_IGN`." @@ -197,7 +201,7 @@ msgstr "" ":class:`enum.IntEnum` colección de constantes :const:`SIG_DFL` y :const:" "`SIG_IGN`." -#: ../Doc/library/signal.rst:99 +#: ../Doc/library/signal.rst:101 msgid "" ":class:`enum.IntEnum` collection the constants :const:`SIG_BLOCK`, :const:" "`SIG_UNBLOCK` and :const:`SIG_SETMASK`." @@ -205,16 +209,21 @@ msgstr "" ":class:`enum.IntEnum` colección de constantes :const:`SIG_BLOCK`, :const:" "`SIG_UNBLOCK` y :const:`SIG_SETMASK`." -#: ../Doc/library/signal.rst:134 ../Doc/library/signal.rst:146 -#: ../Doc/library/signal.rst:152 ../Doc/library/signal.rst:162 -#: ../Doc/library/signal.rst:176 ../Doc/library/signal.rst:194 -#: ../Doc/library/signal.rst:202 ../Doc/library/signal.rst:228 -#: ../Doc/library/signal.rst:234 ../Doc/library/signal.rst:240 -#: ../Doc/library/signal.rst:497 ../Doc/library/signal.rst:504 +#: ../Doc/library/signal.rst:103 ../Doc/library/signal.rst:136 +#: ../Doc/library/signal.rst:148 ../Doc/library/signal.rst:154 +#: ../Doc/library/signal.rst:164 ../Doc/library/signal.rst:178 +#: ../Doc/library/signal.rst:196 ../Doc/library/signal.rst:204 +#: ../Doc/library/signal.rst:230 ../Doc/library/signal.rst:236 +#: ../Doc/library/signal.rst:242 ../Doc/library/signal.rst:349 +#: ../Doc/library/signal.rst:388 ../Doc/library/signal.rst:435 +#: ../Doc/library/signal.rst:469 ../Doc/library/signal.rst:499 +#: ../Doc/library/signal.rst:506 ../Doc/library/signal.rst:559 +#: ../Doc/library/signal.rst:601 ../Doc/library/signal.rst:616 +#: ../Doc/library/signal.rst:642 ../Doc/library/signal.rst:662 msgid ":ref:`Availability `: Unix." msgstr ":ref:`Disponibilidad `: Unix." -#: ../Doc/library/signal.rst:103 ../Doc/library/signal.rst:469 +#: ../Doc/library/signal.rst:105 ../Doc/library/signal.rst:471 #, fuzzy msgid "" "See the man page :manpage:`sigprocmask(2)` and :manpage:`pthread_sigmask(3)` " @@ -224,11 +233,11 @@ msgstr "" "manpage:`sigprocmask(2)` y :manpage:`pthread_sigmask(3)` para obtener más " "información." -#: ../Doc/library/signal.rst:109 +#: ../Doc/library/signal.rst:111 msgid "The variables defined in the :mod:`signal` module are:" msgstr "Las variables definidas en el módulo :mod:`signal` son:" -#: ../Doc/library/signal.rst:114 +#: ../Doc/library/signal.rst:116 msgid "" "This is one of two standard signal handling options; it will simply perform " "the default function for the signal. For example, on most systems the " @@ -241,7 +250,7 @@ msgstr "" "volcar el núcleo y salir, mientras que la acción predeterminada para :const:" "`SIGCHLD` es simplemente ignorarlo." -#: ../Doc/library/signal.rst:122 +#: ../Doc/library/signal.rst:124 msgid "" "This is another standard signal handler, which will simply ignore the given " "signal." @@ -249,44 +258,44 @@ msgstr "" "Este es otro manejador de señales estándar, que simplemente ignorará la " "señal dada." -#: ../Doc/library/signal.rst:128 +#: ../Doc/library/signal.rst:130 msgid "Abort signal from :manpage:`abort(3)`." msgstr "Abortar señal de :manpage:`abort(3)`." -#: ../Doc/library/signal.rst:132 +#: ../Doc/library/signal.rst:134 msgid "Timer signal from :manpage:`alarm(2)`." msgstr "Señal de temporizador de :manpage:`alarm(2)`." -#: ../Doc/library/signal.rst:138 +#: ../Doc/library/signal.rst:140 msgid "Interrupt from keyboard (CTRL + BREAK)." msgstr "Interrumpir desde el teclado (CTRL + BREAK)." -#: ../Doc/library/signal.rst:140 ../Doc/library/signal.rst:259 -#: ../Doc/library/signal.rst:269 +#: ../Doc/library/signal.rst:142 ../Doc/library/signal.rst:260 +#: ../Doc/library/signal.rst:270 msgid ":ref:`Availability `: Windows." msgstr ":ref:`Disponibilidad `: Windows." -#: ../Doc/library/signal.rst:144 +#: ../Doc/library/signal.rst:146 msgid "Bus error (bad memory access)." msgstr "Error de bus (mal acceso a la memoria)." -#: ../Doc/library/signal.rst:150 +#: ../Doc/library/signal.rst:152 msgid "Child process stopped or terminated." msgstr "El proceso hijo se detuvo o terminó." -#: ../Doc/library/signal.rst:156 +#: ../Doc/library/signal.rst:158 msgid "Alias to :data:`SIGCHLD`." msgstr "Alias para :data:`SIGCHLD`." -#: ../Doc/library/signal.rst:160 +#: ../Doc/library/signal.rst:162 msgid "Continue the process if it is currently stopped" msgstr "Continuar el proceso si está detenido actualmente" -#: ../Doc/library/signal.rst:166 +#: ../Doc/library/signal.rst:168 msgid "Floating-point exception. For example, division by zero." msgstr "Excepción de coma flotante. Por ejemplo, división por cero." -#: ../Doc/library/signal.rst:169 +#: ../Doc/library/signal.rst:171 msgid "" ":exc:`ZeroDivisionError` is raised when the second argument of a division or " "modulo operation is zero." @@ -294,46 +303,46 @@ msgstr "" ":exc:`ZeroDivisionError` se genera cuando el segundo argumento de una " "operación de división o módulo es cero." -#: ../Doc/library/signal.rst:174 +#: ../Doc/library/signal.rst:176 msgid "" "Hangup detected on controlling terminal or death of controlling process." msgstr "" "Se detectó un bloqueo en el terminal de control o muerte del proceso de " "control." -#: ../Doc/library/signal.rst:180 +#: ../Doc/library/signal.rst:182 msgid "Illegal instruction." msgstr "Instrucción ilegal." -#: ../Doc/library/signal.rst:184 +#: ../Doc/library/signal.rst:186 msgid "Interrupt from keyboard (CTRL + C)." msgstr "Interrumpir desde el teclado (CTRL + C)." -#: ../Doc/library/signal.rst:186 +#: ../Doc/library/signal.rst:188 msgid "Default action is to raise :exc:`KeyboardInterrupt`." msgstr "La acción predeterminada es generar :exc:`KeyboardInterrupt`." -#: ../Doc/library/signal.rst:190 +#: ../Doc/library/signal.rst:192 msgid "Kill signal." msgstr "Señal de muerte." -#: ../Doc/library/signal.rst:192 +#: ../Doc/library/signal.rst:194 msgid "It cannot be caught, blocked, or ignored." msgstr "No se puede detectar, bloquear ni ignorar." -#: ../Doc/library/signal.rst:198 +#: ../Doc/library/signal.rst:200 msgid "Broken pipe: write to pipe with no readers." msgstr "Tubería rota: escriba en la tubería sin lectores." -#: ../Doc/library/signal.rst:200 +#: ../Doc/library/signal.rst:202 msgid "Default action is to ignore the signal." msgstr "La acción predeterminada es ignorar la señal." -#: ../Doc/library/signal.rst:206 +#: ../Doc/library/signal.rst:208 msgid "Segmentation fault: invalid memory reference." msgstr "Fallo de segmentación: referencia de memoria no válida." -#: ../Doc/library/signal.rst:210 +#: ../Doc/library/signal.rst:212 msgid "" "Stack fault on coprocessor. The Linux kernel does not raise this signal: it " "can only be raised in user space." @@ -341,11 +350,12 @@ msgstr "" "Fallo en el coprocesador del stack. El kernel de Linux no lanza esta señal," "esta sólo puede ser lanzada en el espacio de usuario." +#: ../Doc/library/signal.rst:215 #, fuzzy msgid ":ref:`Availability `: Linux." msgstr ":ref:`Disponibilidad `: Unix." -#: ../Doc/library/signal.rst:215 +#: ../Doc/library/signal.rst:217 #, fuzzy msgid "" "On architectures where the signal is available. See the man page :manpage:" @@ -354,23 +364,23 @@ msgstr "" ":ref:`Disponibilidad `: Unix. Consulte la página man :manpage:" "`signal(2)` para obtener más información." -#: ../Doc/library/signal.rst:222 +#: ../Doc/library/signal.rst:224 msgid "Termination signal." msgstr "Señal de terminación." -#: ../Doc/library/signal.rst:226 +#: ../Doc/library/signal.rst:228 msgid "User-defined signal 1." msgstr "Señal definida por el usuario 1." -#: ../Doc/library/signal.rst:232 +#: ../Doc/library/signal.rst:234 msgid "User-defined signal 2." msgstr "Señal definida por el usuario 2." -#: ../Doc/library/signal.rst:238 +#: ../Doc/library/signal.rst:240 msgid "Window resize signal." msgstr "Señal de cambio de tamaño de ventana." -#: ../Doc/library/signal.rst:244 +#: ../Doc/library/signal.rst:246 msgid "" "All the signal numbers are defined symbolically. For example, the hangup " "signal is defined as :const:`signal.SIGHUP`; the variable names are " @@ -390,7 +400,7 @@ msgstr "" "nombres de señales; Este módulo solo define los nombres definidos por el " "sistema." -#: ../Doc/library/signal.rst:255 +#: ../Doc/library/signal.rst:257 msgid "" "The signal corresponding to the :kbd:`Ctrl+C` keystroke event. This signal " "can only be used with :func:`os.kill`." @@ -398,7 +408,7 @@ msgstr "" "La señal correspondiente al evento de pulsación de tecla :kbd:`Ctrl + C`. " "Esta señal solo se puede utilizar con :func:`os.kill`." -#: ../Doc/library/signal.rst:265 +#: ../Doc/library/signal.rst:267 msgid "" "The signal corresponding to the :kbd:`Ctrl+Break` keystroke event. This " "signal can only be used with :func:`os.kill`." @@ -406,7 +416,7 @@ msgstr "" "La señal correspondiente al evento de pulsación de tecla :kbd:`Ctrl + " "Break`. Esta señal solo se puede utilizar con :func:`os.kill`." -#: ../Doc/library/signal.rst:275 +#: ../Doc/library/signal.rst:277 msgid "" "One more than the number of the highest signal number. Use :func:" "`valid_signals` to get valid signal numbers." @@ -414,7 +424,7 @@ msgstr "" "Un número más alto que el número más alto de señal. Use :func:" "`valid_signals` para obtener números válidos de señales." -#: ../Doc/library/signal.rst:281 +#: ../Doc/library/signal.rst:283 msgid "" "Decrements interval timer in real time, and delivers :const:`SIGALRM` upon " "expiration." @@ -422,7 +432,7 @@ msgstr "" "Reduce el temporizador de intervalo en tiempo real y entrega :const:" "`SIGALRM` al vencimiento." -#: ../Doc/library/signal.rst:287 +#: ../Doc/library/signal.rst:289 msgid "" "Decrements interval timer only when the process is executing, and delivers " "SIGVTALRM upon expiration." @@ -430,7 +440,7 @@ msgstr "" "Disminuye el temporizador de intervalo solo cuando el proceso se está " "ejecutando y entrega SIGVTALRM al vencimiento." -#: ../Doc/library/signal.rst:293 +#: ../Doc/library/signal.rst:295 msgid "" "Decrements interval timer both when the process executes and when the system " "is executing on behalf of the process. Coupled with ITIMER_VIRTUAL, this " @@ -443,7 +453,7 @@ msgstr "" "tiempo que pasa la aplicación en el espacio del usuario y del kernel. " "SIGPROF se entrega al vencimiento." -#: ../Doc/library/signal.rst:301 +#: ../Doc/library/signal.rst:303 msgid "" "A possible value for the *how* parameter to :func:`pthread_sigmask` " "indicating that signals are to be blocked." @@ -451,7 +461,7 @@ msgstr "" "Un valor posible para el parámetro *how* para :func:`pthread_sigmask` que " "indica que las señales deben bloquearse." -#: ../Doc/library/signal.rst:308 +#: ../Doc/library/signal.rst:310 msgid "" "A possible value for the *how* parameter to :func:`pthread_sigmask` " "indicating that signals are to be unblocked." @@ -459,7 +469,7 @@ msgstr "" "Un valor posible para el parámetro *how* para :func:`pthread_sigmask` que " "indica que las señales deben desbloquearse." -#: ../Doc/library/signal.rst:315 +#: ../Doc/library/signal.rst:317 msgid "" "A possible value for the *how* parameter to :func:`pthread_sigmask` " "indicating that the signal mask is to be replaced." @@ -467,11 +477,11 @@ msgstr "" "Un valor posible para el parámetro *how* para :func:`pthread_sigmask` que " "indica que la máscara de señal debe ser reemplazada." -#: ../Doc/library/signal.rst:321 +#: ../Doc/library/signal.rst:323 msgid "The :mod:`signal` module defines one exception:" msgstr "El módulo :mod:`signal` define una excepción:" -#: ../Doc/library/signal.rst:325 +#: ../Doc/library/signal.rst:327 msgid "" "Raised to signal an error from the underlying :func:`setitimer` or :func:" "`getitimer` implementation. Expect this error if an invalid interval timer " @@ -483,7 +493,7 @@ msgstr "" "temporizador de intervalo no válido o un tiempo negativo a :func:" "`setitimer`. Este error es un subtipo de :exc:`OSError`." -#: ../Doc/library/signal.rst:330 +#: ../Doc/library/signal.rst:332 msgid "" "This error used to be a subtype of :exc:`IOError`, which is now an alias of :" "exc:`OSError`." @@ -491,11 +501,11 @@ msgstr "" "Este error solía ser un subtipo de :exc:`IOError`, que ahora es un alias de :" "exc:`OSError`." -#: ../Doc/library/signal.rst:335 +#: ../Doc/library/signal.rst:337 msgid "The :mod:`signal` module defines the following functions:" msgstr "El módulo :mod:`signal` define las siguientes funciones:" -#: ../Doc/library/signal.rst:340 +#: ../Doc/library/signal.rst:342 msgid "" "If *time* is non-zero, this function requests that a :const:`SIGALRM` signal " "be sent to the process in *time* seconds. Any previously scheduled alarm is " @@ -513,14 +523,14 @@ msgstr "" "se programa ninguna alarma y se cancela cualquier alarma programada. Si el " "valor de retorno es cero, no hay ninguna alarma programada actualmente." -#: ../Doc/library/signal.rst:349 +#: ../Doc/library/signal.rst:351 #, fuzzy msgid "See the man page :manpage:`alarm(2)` for further information." msgstr "" ":ref:`Disponibilidad `: Unix. Consulte la página de manual :" "manpage:`alarm(2)` para obtener más información." -#: ../Doc/library/signal.rst:354 +#: ../Doc/library/signal.rst:356 msgid "" "Return the current signal handler for the signal *signalnum*. The returned " "value may be a callable Python object, or one of the special values :const:" @@ -538,17 +548,18 @@ msgstr "" "manejar la señal estaba en uso anteriormente, y el gestor de señales no se " "instaló desde Python." -#: ../Doc/library/signal.rst:365 +#: ../Doc/library/signal.rst:367 +#, fuzzy msgid "" -"Return the system description of the signal *signalnum*, such as " -"\"Interrupt\", \"Segmentation fault\", etc. Returns :const:`None` if the " -"signal is not recognized." +"Returns the description of signal *signalnum*, such as \"Interrupt\" for :" +"const:`SIGINT`. Returns :const:`None` if *signalnum* has no description. " +"Raises :exc:`ValueError` if *signalnum* is invalid." msgstr "" "Retorna la descripción del sistema de la señal *signalnum*, como " "\"Interrupción\", \"Fallo de segmentación\", etc. Retorna :const:`None` si " "no se reconoce la señal." -#: ../Doc/library/signal.rst:374 +#: ../Doc/library/signal.rst:376 msgid "" "Return the set of valid signal numbers on this platform. This can be less " "than ``range(1, NSIG)`` if some signals are reserved by the system for " @@ -558,7 +569,7 @@ msgstr "" "puede ser menor que ``rango(1, NSIG)`` si el sistema reserva algunas señales " "para uso interno." -#: ../Doc/library/signal.rst:383 +#: ../Doc/library/signal.rst:385 msgid "" "Cause the process to sleep until a signal is received; the appropriate " "handler will then be called. Returns nothing." @@ -566,14 +577,14 @@ msgstr "" "Hacer que el proceso duerma hasta que se reciba una señal; entonces se " "llamará al manejador apropiado. No retorna nada." -#: ../Doc/library/signal.rst:388 +#: ../Doc/library/signal.rst:390 #, fuzzy msgid "See the man page :manpage:`signal(2)` for further information." msgstr "" ":ref:`Disponibilidad `: Unix. Consulte la página man :manpage:" "`signal(2)` para obtener más información." -#: ../Doc/library/signal.rst:390 +#: ../Doc/library/signal.rst:392 msgid "" "See also :func:`sigwait`, :func:`sigwaitinfo`, :func:`sigtimedwait` and :" "func:`sigpending`." @@ -581,11 +592,11 @@ msgstr "" "Vea también :func:`sigwait`, :func:`sigwaitinfo`, :func:`sigtimedwait` y :" "func:`sigpending`." -#: ../Doc/library/signal.rst:396 +#: ../Doc/library/signal.rst:398 msgid "Sends a signal to the calling process. Returns nothing." msgstr "Envía una señal al proceso de llamada. No retorna nada." -#: ../Doc/library/signal.rst:403 +#: ../Doc/library/signal.rst:405 msgid "" "Send signal *sig* to the process referred to by file descriptor *pidfd*. " "Python does not currently support the *siginfo* parameter; it must be " @@ -597,17 +608,17 @@ msgstr "" "``None``. El argumento *flags* está proveído para extensiones futuras; no " "hay valores actualmente definidos para *flags*." -#: ../Doc/library/signal.rst:408 +#: ../Doc/library/signal.rst:410 msgid "See the :manpage:`pidfd_send_signal(2)` man page for more information." msgstr "" "Para más información vea la página de manual :manpage:`pidfd_send_signal(2)`." -#: ../Doc/library/signal.rst:410 +#: ../Doc/library/signal.rst:412 #, fuzzy msgid ":ref:`Availability `: Linux >= 5.1" msgstr ":ref:`Disponibilidad `: Linux 5.1+" -#: ../Doc/library/signal.rst:416 +#: ../Doc/library/signal.rst:418 msgid "" "Send the signal *signalnum* to the thread *thread_id*, another thread in the " "same process as the caller. The target thread can be executing any code " @@ -626,7 +637,7 @@ msgstr "" "forzar que una llamada al sistema en ejecución falle con :exc:" "`InterruptedError`." -#: ../Doc/library/signal.rst:424 +#: ../Doc/library/signal.rst:426 msgid "" "Use :func:`threading.get_ident()` or the :attr:`~threading.Thread.ident` " "attribute of :class:`threading.Thread` objects to get a suitable value for " @@ -636,7 +647,7 @@ msgstr "" "ident` de los objetos :class:`threading.Thread` para obtener un valor " "adecuado para *thread_id*." -#: ../Doc/library/signal.rst:428 +#: ../Doc/library/signal.rst:430 msgid "" "If *signalnum* is 0, then no signal is sent, but error checking is still " "performed; this can be used to check if the target thread is still running." @@ -645,7 +656,7 @@ msgstr "" "comprobación de errores; esto se puede usar para verificar si el hilo de " "destino aún se está ejecutando." -#: ../Doc/library/signal.rst:431 +#: ../Doc/library/signal.rst:433 msgid "" "Raises an :ref:`auditing event ` ``signal.pthread_kill`` with " "arguments ``thread_id``, ``signalnum``." @@ -653,18 +664,18 @@ msgstr "" "Genera un :ref:`evento de auditoría ` ``signal.pthread_kill`` con " "argumentos ``thread_id``, ``signalnum``." -#: ../Doc/library/signal.rst:435 +#: ../Doc/library/signal.rst:437 #, fuzzy msgid "See the man page :manpage:`pthread_kill(3)` for further information." msgstr "" ":ref:`Disponibilidad `: Unix. Consulte la página del manual :" "manpage:`pthread_kill(3)` para obtener más información." -#: ../Doc/library/signal.rst:437 +#: ../Doc/library/signal.rst:439 msgid "See also :func:`os.kill`." msgstr "Vea también :func:`os.kill`." -#: ../Doc/library/signal.rst:444 +#: ../Doc/library/signal.rst:446 msgid "" "Fetch and/or change the signal mask of the calling thread. The signal mask " "is the set of signals whose delivery is currently blocked for the caller. " @@ -675,13 +686,13 @@ msgstr "" "persona que llama. Retorna la máscara de señal anterior como un conjunto de " "señales." -#: ../Doc/library/signal.rst:448 +#: ../Doc/library/signal.rst:450 msgid "" "The behavior of the call is dependent on the value of *how*, as follows." msgstr "" "El comportamiento de la llamada depende del valor de *how*, como sigue." -#: ../Doc/library/signal.rst:450 +#: ../Doc/library/signal.rst:452 msgid "" ":data:`SIG_BLOCK`: The set of blocked signals is the union of the current " "set and the *mask* argument." @@ -689,7 +700,7 @@ msgstr "" ":data:`SIG_BLOCK`: El conjunto de señales bloqueadas es la unión del " "conjunto actual y el argumento *mask*." -#: ../Doc/library/signal.rst:452 +#: ../Doc/library/signal.rst:454 msgid "" ":data:`SIG_UNBLOCK`: The signals in *mask* are removed from the current set " "of blocked signals. It is permissible to attempt to unblock a signal which " @@ -699,7 +710,7 @@ msgstr "" "de señales bloqueadas. Está permitido intentar desbloquear una señal que no " "esté bloqueada." -#: ../Doc/library/signal.rst:455 +#: ../Doc/library/signal.rst:457 msgid "" ":data:`SIG_SETMASK`: The set of blocked signals is set to the *mask* " "argument." @@ -707,7 +718,7 @@ msgstr "" ":data:`SIG_SETMASK`: El conjunto de señales bloqueadas se establece en el " "argumento *mask*." -#: ../Doc/library/signal.rst:458 +#: ../Doc/library/signal.rst:460 msgid "" "*mask* is a set of signal numbers (e.g. {:const:`signal.SIGINT`, :const:" "`signal.SIGTERM`}). Use :func:`~signal.valid_signals` for a full mask " @@ -717,7 +728,7 @@ msgstr "" "SIGINT`, :const:`signal.SIGTERM`}). Utilice :func:`~signal.valid_signals` " "para una máscara completa que incluya todas las señales." -#: ../Doc/library/signal.rst:462 +#: ../Doc/library/signal.rst:464 msgid "" "For example, ``signal.pthread_sigmask(signal.SIG_BLOCK, [])`` reads the " "signal mask of the calling thread." @@ -725,15 +736,15 @@ msgstr "" "Por ejemplo, ``signal.pthread_sigmask(signal.SIG_BLOCK, [])`` lee la máscara " "de señal del hilo de llamada." -#: ../Doc/library/signal.rst:465 +#: ../Doc/library/signal.rst:467 msgid ":data:`SIGKILL` and :data:`SIGSTOP` cannot be blocked." msgstr ":data:`SIGKILL` y :data:`SIGSTOP` no se pueden bloquear." -#: ../Doc/library/signal.rst:472 +#: ../Doc/library/signal.rst:474 msgid "See also :func:`pause`, :func:`sigpending` and :func:`sigwait`." msgstr "Vea también :func:`pause`, :func:`sigpending` y :func:`sigwait`." -#: ../Doc/library/signal.rst:479 +#: ../Doc/library/signal.rst:481 msgid "" "Sets given interval timer (one of :const:`signal.ITIMER_REAL`, :const:" "`signal.ITIMER_VIRTUAL` or :const:`signal.ITIMER_PROF`) specified by *which* " @@ -749,7 +760,7 @@ msgstr "" "segundos (si *interval* es distinto de cero). El temporizador de intervalo " "especificado por *which* se puede borrar estableciendo *seconds* en cero." -#: ../Doc/library/signal.rst:486 +#: ../Doc/library/signal.rst:488 msgid "" "When an interval timer fires, a signal is sent to the process. The signal " "sent is dependent on the timer being used; :const:`signal.ITIMER_REAL` will " @@ -762,11 +773,11 @@ msgstr "" "ITIMER_VIRTUAL` envía :const:`SIGVTALRM`, y :const:`signal.ITIMER_PROF` " "entregará :const:`SIGPROF`." -#: ../Doc/library/signal.rst:492 +#: ../Doc/library/signal.rst:494 msgid "The old values are returned as a tuple: (delay, interval)." msgstr "Los valores antiguos se retornan como una tupla: (retraso, intervalo)." -#: ../Doc/library/signal.rst:494 +#: ../Doc/library/signal.rst:496 msgid "" "Attempting to pass an invalid interval timer will cause an :exc:" "`ItimerError`." @@ -774,13 +785,13 @@ msgstr "" "Si intenta pasar un temporizador de intervalo no válido, se producirá un :" "exc:`ItimerError`." -#: ../Doc/library/signal.rst:502 +#: ../Doc/library/signal.rst:504 msgid "Returns current value of a given interval timer specified by *which*." msgstr "" "Retorna el valor actual de un temporizador de intervalo dado especificado " "por *which*." -#: ../Doc/library/signal.rst:509 +#: ../Doc/library/signal.rst:511 msgid "" "Set the wakeup file descriptor to *fd*. When a signal is received, the " "signal number is written as a single byte into the fd. This can be used by " @@ -792,7 +803,7 @@ msgstr "" "puede ser utilizado por una biblioteca para despertar una encuesta o " "seleccionar una llamada, permitiendo que la señal se procese por completo." -#: ../Doc/library/signal.rst:514 +#: ../Doc/library/signal.rst:516 msgid "" "The old wakeup fd is returned (or -1 if file descriptor wakeup was not " "enabled). If *fd* is -1, file descriptor wakeup is disabled. If not -1, " @@ -805,7 +816,7 @@ msgstr "" "bloqueo. Depende de la biblioteca eliminar los bytes de *fd* antes de llamar " "a poll o seleccionar nuevamente." -#: ../Doc/library/signal.rst:519 ../Doc/library/signal.rst:574 +#: ../Doc/library/signal.rst:521 ../Doc/library/signal.rst:576 msgid "" "When threads are enabled, this function can only be called from :ref:`the " "main thread of the main interpreter `; attempting to " @@ -817,7 +828,7 @@ msgstr "" "threads>`; intentar llamarlo desde otros hilos hará que se lance una " "excepción :exc:`ValueError`." -#: ../Doc/library/signal.rst:524 +#: ../Doc/library/signal.rst:526 msgid "" "There are two common ways to use this function. In both approaches, you use " "the fd to wake up when a signal arrives, but then they differ in how they " @@ -827,7 +838,7 @@ msgstr "" "el fd para despertarse cuando llega una señal, pero luego difieren en cómo " "determinan *which* señal o señales han llegado." -#: ../Doc/library/signal.rst:529 +#: ../Doc/library/signal.rst:531 msgid "" "In the first approach, we read the data out of the fd's buffer, and the byte " "values give you the signal numbers. This is simple, but in rare cases it can " @@ -846,7 +857,7 @@ msgstr "" "al menos causará que se imprima una advertencia en stderr cuando se pierdan " "las señales." -#: ../Doc/library/signal.rst:538 +#: ../Doc/library/signal.rst:540 msgid "" "In the second approach, we use the wakeup fd *only* for wakeups, and ignore " "the actual byte values. In this case, all we care about is whether the fd's " @@ -861,15 +872,15 @@ msgstr "" "utiliza este enfoque, debe configurar ``warn_on_full_buffer = False``, para " "que sus usuarios no se confundan con mensajes de advertencia falsos." -#: ../Doc/library/signal.rst:545 +#: ../Doc/library/signal.rst:547 msgid "On Windows, the function now also supports socket handles." msgstr "En Windows, la función ahora también admite identificadores de socket." -#: ../Doc/library/signal.rst:548 +#: ../Doc/library/signal.rst:550 msgid "Added ``warn_on_full_buffer`` parameter." msgstr "Se agregó el parámetro ``warn_on_full_buffer``." -#: ../Doc/library/signal.rst:553 +#: ../Doc/library/signal.rst:555 msgid "" "Change system call restart behaviour: if *flag* is :const:`False`, system " "calls will be restarted when interrupted by signal *signalnum*, otherwise " @@ -880,25 +891,26 @@ msgstr "" "interrumpa la señal *signalnum*, de lo contrario, las llamadas al sistema se " "interrumpirán. No retorna nada." -#: ../Doc/library/signal.rst:559 +#: ../Doc/library/signal.rst:561 #, fuzzy msgid "See the man page :manpage:`siginterrupt(3)` for further information." msgstr "" ":ref:`Disponibilidad `: Unix. Consulte la página man :manpage:" "`siginterrupt(3)` para obtener más información." -#: ../Doc/library/signal.rst:561 +#: ../Doc/library/signal.rst:563 +#, fuzzy msgid "" "Note that installing a signal handler with :func:`signal` will reset the " -"restart behaviour to interruptible by implicitly calling :c:func:" -"`siginterrupt` with a true *flag* value for the given signal." +"restart behaviour to interruptible by implicitly calling :c:func:`!" +"siginterrupt` with a true *flag* value for the given signal." msgstr "" "Tenga en cuenta que la instalación de un gestor de señales con :func:" "`signal` restablecerá el comportamiento de reinicio a interrumpible llamando " "implícitamente a :c:func:`siginterrupt` con un valor de *flag* verdadero " "para la señal dada." -#: ../Doc/library/signal.rst:568 +#: ../Doc/library/signal.rst:570 msgid "" "Set the handler for signal *signalnum* to the function *handler*. *handler* " "can be a callable Python object taking two arguments (see below), or one of " @@ -914,7 +926,7 @@ msgstr "" "anterior (vea la descripción de :func:`getsignal` arriba). (Consulte la " "página del manual de Unix :manpage:`signal(2)` para obtener más información)." -#: ../Doc/library/signal.rst:579 +#: ../Doc/library/signal.rst:581 msgid "" "The *handler* is called with two arguments: the signal number and the " "current stack frame (``None`` or a frame object; for a description of frame " @@ -927,7 +939,7 @@ msgstr "" "objects>` o vea las descripciones de los atributos en el módulo :mod:" "`inspect`)." -#: ../Doc/library/signal.rst:584 +#: ../Doc/library/signal.rst:586 msgid "" "On Windows, :func:`signal` can only be called with :const:`SIGABRT`, :const:" "`SIGFPE`, :const:`SIGILL`, :const:`SIGINT`, :const:`SIGSEGV`, :const:" @@ -943,7 +955,7 @@ msgstr "" "conjunto de nombres de señales; un :exc:`AttributeError` se lanzará si un " "nombre de señal no está definido como constante de nivel de módulo ``SIG*``." -#: ../Doc/library/signal.rst:595 +#: ../Doc/library/signal.rst:597 msgid "" "Examine the set of signals that are pending for delivery to the calling " "thread (i.e., the signals which have been raised while blocked). Return the " @@ -953,18 +965,18 @@ msgstr "" "llamada (es decir, las señales que se han generado mientras estaban " "bloqueadas). Retorna el conjunto de señales pendientes." -#: ../Doc/library/signal.rst:601 +#: ../Doc/library/signal.rst:603 #, fuzzy msgid "See the man page :manpage:`sigpending(2)` for further information." msgstr "" ":ref:`Disponibilidad `: Unix. Consulte la página de manual :" "manpage:`sigpending(2)` para obtener más información." -#: ../Doc/library/signal.rst:603 +#: ../Doc/library/signal.rst:605 msgid "See also :func:`pause`, :func:`pthread_sigmask` and :func:`sigwait`." msgstr "Vea también :func:`pause`, :func:`pthread_sigmask` y :func:`sigwait`." -#: ../Doc/library/signal.rst:610 +#: ../Doc/library/signal.rst:612 msgid "" "Suspend execution of the calling thread until the delivery of one of the " "signals specified in the signal set *sigset*. The function accepts the " @@ -976,14 +988,14 @@ msgstr "" "la señal (la elimina de la lista pendiente de señales) y retorna el número " "de señal." -#: ../Doc/library/signal.rst:616 +#: ../Doc/library/signal.rst:618 #, fuzzy msgid "See the man page :manpage:`sigwait(3)` for further information." msgstr "" ":ref:`Disponibilidad `: Unix. Consulte la página man :manpage:" "`sigwait(3)` para obtener más información." -#: ../Doc/library/signal.rst:618 +#: ../Doc/library/signal.rst:620 msgid "" "See also :func:`pause`, :func:`pthread_sigmask`, :func:`sigpending`, :func:" "`sigwaitinfo` and :func:`sigtimedwait`." @@ -991,7 +1003,7 @@ msgstr "" "Vea también :func:`pause`, :func:`pthread_sigmask`, :func:`sigpending`, :" "func:`sigwaitinfo` y :func:`sigtimedwait`." -#: ../Doc/library/signal.rst:626 +#: ../Doc/library/signal.rst:628 msgid "" "Suspend execution of the calling thread until the delivery of one of the " "signals specified in the signal set *sigset*. The function accepts the " @@ -1009,7 +1021,7 @@ msgstr "" "gestor de señales para la señal enviada. La función genera un :exc:" "`InterruptedError` si es interrumpida por una señal que no está en *sigset*." -#: ../Doc/library/signal.rst:635 +#: ../Doc/library/signal.rst:637 msgid "" "The return value is an object representing the data contained in the :c:type:" "`siginfo_t` structure, namely: :attr:`si_signo`, :attr:`si_code`, :attr:" @@ -1021,18 +1033,18 @@ msgstr "" "attr:`si_errno`, :attr:`si_pid`, :attr:`si_uid`, :attr:`si_status`, :attr:" "`si_band`." -#: ../Doc/library/signal.rst:642 +#: ../Doc/library/signal.rst:644 #, fuzzy msgid "See the man page :manpage:`sigwaitinfo(2)` for further information." msgstr "" ":ref:`Disponibilidad `: Unix. Consulte la página man :manpage:" "`sigwaitinfo(2)` para obtener más información." -#: ../Doc/library/signal.rst:644 +#: ../Doc/library/signal.rst:646 msgid "See also :func:`pause`, :func:`sigwait` and :func:`sigtimedwait`." msgstr "Vea también :func:`pause`, :func:`sigwait` y :func:`sigtimedwait`." -#: ../Doc/library/signal.rst:648 +#: ../Doc/library/signal.rst:650 msgid "" "The function is now retried if interrupted by a signal not in *sigset* and " "the signal handler does not raise an exception (see :pep:`475` for the " @@ -1042,10 +1054,11 @@ msgstr "" "no está en *sigset* y el manejador de señales no genera una excepción (ver :" "pep:`475` para la justificación)." -#: ../Doc/library/signal.rst:656 +#: ../Doc/library/signal.rst:658 +#, fuzzy msgid "" "Like :func:`sigwaitinfo`, but takes an additional *timeout* argument " -"specifying a timeout. If *timeout* is specified as :const:`0`, a poll is " +"specifying a timeout. If *timeout* is specified as ``0``, a poll is " "performed. Returns :const:`None` if a timeout occurs." msgstr "" "Como :func:`sigwaitinfo`, pero toma un argumento *timeout* adicional que " @@ -1053,18 +1066,18 @@ msgstr "" "se realiza una encuesta. Retorna :const:`None` si se agota el tiempo de " "espera." -#: ../Doc/library/signal.rst:662 +#: ../Doc/library/signal.rst:664 #, fuzzy msgid "See the man page :manpage:`sigtimedwait(2)` for further information." msgstr "" ":ref:`Disponibilidad `: Unix. Consulte la página de manual :" "manpage:`sigtimedwait(2)` para obtener más información." -#: ../Doc/library/signal.rst:664 +#: ../Doc/library/signal.rst:666 msgid "See also :func:`pause`, :func:`sigwait` and :func:`sigwaitinfo`." msgstr "Vea también :func:`pause`, :func:`sigwait` y :func:`sigwaitinfo`." -#: ../Doc/library/signal.rst:668 +#: ../Doc/library/signal.rst:670 msgid "" "The function is now retried with the recomputed *timeout* if interrupted by " "a signal not in *sigset* and the signal handler does not raise an exception " @@ -1074,12 +1087,12 @@ msgstr "" "por una señal que no está en *sigset* y el manejador de señales no genera " "una excepción (ver :pep:`475` para la justificación)." -#: ../Doc/library/signal.rst:677 +#: ../Doc/library/signal.rst:679 #, fuzzy msgid "Examples" msgstr "Ejemplo" -#: ../Doc/library/signal.rst:679 +#: ../Doc/library/signal.rst:681 msgid "" "Here is a minimal example program. It uses the :func:`alarm` function to " "limit the time spent waiting to open a file; this is useful if the file is " @@ -1096,11 +1109,11 @@ msgstr "" "si la operación lleva demasiado tiempo, se enviará la señal de alarma y el " "gestor genera una excepción. ::" -#: ../Doc/library/signal.rst:703 +#: ../Doc/library/signal.rst:705 msgid "Note on SIGPIPE" msgstr "Nota sobre SIGPIPE" -#: ../Doc/library/signal.rst:705 +#: ../Doc/library/signal.rst:707 msgid "" "Piping output of your program to tools like :manpage:`head(1)` will cause a :" "const:`SIGPIPE` signal to be sent to your process when the receiver of its " @@ -1115,7 +1128,7 @@ msgstr "" "caso, envuelva su punto de entrada para detectar esta excepción de la " "siguiente manera:" -#: ../Doc/library/signal.rst:732 +#: ../Doc/library/signal.rst:734 #, fuzzy msgid "" "Do not set :const:`SIGPIPE`'s disposition to :const:`SIG_DFL` in order to " @@ -1128,12 +1141,12 @@ msgstr "" "inesperadamente también cuando se interrumpa cualquier conexión de socket " "mientras su programa todavía está escribiendo en él." -#: ../Doc/library/signal.rst:741 +#: ../Doc/library/signal.rst:743 #, fuzzy msgid "Note on Signal Handlers and Exceptions" msgstr "El módulo :mod:`signal` define una excepción:" -#: ../Doc/library/signal.rst:743 +#: ../Doc/library/signal.rst:745 msgid "" "If a signal handler raises an exception, the exception will be propagated to " "the main thread and may be raised after any :term:`bytecode` instruction. " @@ -1152,11 +1165,11 @@ msgstr "" "de un gestor de señal) podría poner el programa en un estado inesperado en " "raras ocasiones." -#: ../Doc/library/signal.rst:750 +#: ../Doc/library/signal.rst:752 msgid "To illustrate this issue, consider the following code::" msgstr "Para ilustrar esto, considere el siguiente código::" -#: ../Doc/library/signal.rst:767 +#: ../Doc/library/signal.rst:769 msgid "" "For many programs, especially those that merely want to exit on :exc:" "`KeyboardInterrupt`, this is not a problem, but applications that are " diff --git a/library/site.po b/library/site.po index e04b329974..a751ff83c3 100644 --- a/library/site.po +++ b/library/site.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-03-09 12:08-0300\n" "Last-Translator: Pedro Aarón \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/site.rst:2 msgid ":mod:`site` --- Site-specific configuration hook" @@ -41,12 +40,13 @@ msgstr "" "opción :option:`-S` ." #: ../Doc/library/site.rst:18 +#, fuzzy msgid "" "Importing this module will append site-specific paths to the module search " "path and add a few builtins, unless :option:`-S` was used. In that case, " "this module can be safely imported with no automatic modifications to the " "module search path or additions to the builtins. To explicitly trigger the " -"usual site-specific additions, call the :func:`site.main` function." +"usual site-specific additions, call the :func:`main` function." msgstr "" "La importación de este módulo agregará rutas específicas del sitio a la ruta " "de búsqueda del módulo y agregará algunas incorporaciones, a menos que :" @@ -192,18 +192,23 @@ msgstr "" "alfabéticamente antes de :file:`foo.pth`; y :file:`spam` se omite porque no " "se menciona en ninguno de los archivos de configuración de ruta." -#: ../Doc/library/site.rst:114 +#: ../Doc/library/site.rst:113 +msgid ":mod:`sitecustomize`" +msgstr "" + +#: ../Doc/library/site.rst:117 +#, fuzzy msgid "" "After these path manipulations, an attempt is made to import a module named :" "mod:`sitecustomize`, which can perform arbitrary site-specific " "customizations. It is typically created by a system administrator in the " "site-packages directory. If this import fails with an :exc:`ImportError` or " -"its subclass exception, and the exception's :attr:`name` attribute equals to " -"``'sitecustomize'``, it is silently ignored. If Python is started without " -"output streams available, as with :file:`pythonw.exe` on Windows (which is " -"used by default to start IDLE), attempted output from :mod:`sitecustomize` " -"is ignored. Any other exception causes a silent and perhaps mysterious " -"failure of the process." +"its subclass exception, and the exception's :attr:`~ImportError.name` " +"attribute equals to ``'sitecustomize'``, it is silently ignored. If Python " +"is started without output streams available, as with :file:`pythonw.exe` on " +"Windows (which is used by default to start IDLE), attempted output from :mod:" +"`sitecustomize` is ignored. Any other exception causes a silent and perhaps " +"mysterious failure of the process." msgstr "" "Después de estas manipulaciones de ruta, se intenta importar un módulo " "llamado :mod:`sitecustomize`, que puede realizar personalizaciones " @@ -216,15 +221,21 @@ msgstr "" "ignora el intento de salida de :mod:`sitecustomize`. Cualquier otra " "excepción provoca una falla silenciosa y quizás misteriosa del proceso." -#: ../Doc/library/site.rst:126 +#: ../Doc/library/site.rst:129 +msgid ":mod:`usercustomize`" +msgstr "" + +#: ../Doc/library/site.rst:133 +#, fuzzy msgid "" "After this, an attempt is made to import a module named :mod:" "`usercustomize`, which can perform arbitrary user-specific customizations, " -"if :data:`ENABLE_USER_SITE` is true. This file is intended to be created in " -"the user site-packages directory (see below), which is part of ``sys.path`` " -"unless disabled by :option:`-s`. If this import fails with an :exc:" -"`ImportError` or its subclass exception, and the exception's :attr:`name` " -"attribute equals to ``'usercustomize'``, it is silently ignored." +"if :data:`~site.ENABLE_USER_SITE` is true. This file is intended to be " +"created in the user site-packages directory (see below), which is part of " +"``sys.path`` unless disabled by :option:`-s`. If this import fails with an :" +"exc:`ImportError` or its subclass exception, and the exception's :attr:" +"`~ImportError.name` attribute equals to ``'usercustomize'``, it is silently " +"ignored." msgstr "" "Después de esto, se intenta importar un módulo llamado :mod:`usercustomize`, " "que puede realizar personalizaciones arbitrarias específicas del usuario, " @@ -235,7 +246,7 @@ msgstr "" "atributo :attr:`name` de la excepción es igual a ``'usercustomize'``, se " "ignora silenciosamente." -#: ../Doc/library/site.rst:134 +#: ../Doc/library/site.rst:141 msgid "" "Note that for some non-Unix systems, ``sys.prefix`` and ``sys.exec_prefix`` " "are empty, and the path manipulations are skipped; however the import of :" @@ -246,11 +257,11 @@ msgstr "" "sin embargo, se sigue intentando importar :mod:`sitecustomize` y :mod:" "`usercustomize`." -#: ../Doc/library/site.rst:142 +#: ../Doc/library/site.rst:150 msgid "Readline configuration" msgstr "Configuración de *Readline*" -#: ../Doc/library/site.rst:144 +#: ../Doc/library/site.rst:152 msgid "" "On systems that support :mod:`readline`, this module will also import and " "configure the :mod:`rlcompleter` module, if Python is started in :ref:" @@ -270,19 +281,19 @@ msgstr "" "en su :mod:`sitecustomize` o :mod:`usercustomize` module o su archivo :" "envvar:`PYTHONSTARTUP`." -#: ../Doc/library/site.rst:153 +#: ../Doc/library/site.rst:161 msgid "Activation of rlcompleter and history was made automatic." msgstr "La activación de *rlcompleter* y el historial se hizo automática." -#: ../Doc/library/site.rst:158 +#: ../Doc/library/site.rst:166 msgid "Module contents" msgstr "Contenido del módulo" -#: ../Doc/library/site.rst:162 +#: ../Doc/library/site.rst:170 msgid "A list of prefixes for site-packages directories." msgstr "Una lista de prefijos para directorios de site-packages." -#: ../Doc/library/site.rst:167 +#: ../Doc/library/site.rst:175 msgid "" "Flag showing the status of the user site-packages directory. ``True`` means " "that it is enabled and was added to ``sys.path``. ``False`` means that it " @@ -297,7 +308,7 @@ msgstr "" "razones de seguridad (falta de coincidencia entre la identificación de " "usuario o grupo y la identificación efectiva) o por un administrador." -#: ../Doc/library/site.rst:177 +#: ../Doc/library/site.rst:185 msgid "" "Path to the user site-packages for the running Python. Can be ``None`` if :" "func:`getusersitepackages` hasn't been called yet. Default value is :file:" @@ -316,16 +327,16 @@ msgstr "" "directorio es un directorio de sitio, lo que significa que se procesarán " "los archivos :file:`.pth` que contiene." -#: ../Doc/library/site.rst:188 +#: ../Doc/library/site.rst:196 +#, fuzzy msgid "" "Path to the base directory for the user site-packages. Can be ``None`` if :" "func:`getuserbase` hasn't been called yet. Default value is :file:`~/." "local` for UNIX and macOS non-framework builds, :file:`~/Library/Python/{X.Y}" "` for macOS framework builds, and :file:`{%APPDATA%}\\\\Python` for " -"Windows. This value is used by Distutils to compute the installation " -"directories for scripts, data files, Python modules, etc. for the :ref:`user " -"installation scheme `. See also :envvar:" -"`PYTHONUSERBASE`." +"Windows. This value is used to compute the installation directories for " +"scripts, data files, Python modules, etc. for the :ref:`user installation " +"scheme `. See also :envvar:`PYTHONUSERBASE`." msgstr "" "Ruta al directorio base para los paquetes de sitio del usuario. Puede ser " "``None`` si aún no se ha llamado a :func:`getuserbase`. El valor " @@ -337,7 +348,7 @@ msgstr "" "instalación del usuario `. Vea también :envvar:" "`PYTHONUSERBASE`." -#: ../Doc/library/site.rst:200 +#: ../Doc/library/site.rst:208 msgid "" "Adds all the standard site-specific directories to the module search path. " "This function is called automatically when this module is imported, unless " @@ -348,11 +359,11 @@ msgstr "" "este módulo, a menos que el intérprete de Python se haya iniciado con la " "opción :option:`-S`." -#: ../Doc/library/site.rst:204 +#: ../Doc/library/site.rst:212 msgid "This function used to be called unconditionally." msgstr "Esta función solía llamarse incondicionalmente." -#: ../Doc/library/site.rst:210 +#: ../Doc/library/site.rst:218 msgid "" "Add a directory to sys.path and process its :file:`.pth` files. Typically " "used in :mod:`sitecustomize` or :mod:`usercustomize` (see above)." @@ -361,13 +372,13 @@ msgstr "" "Típicamente utilizado en :mod:`sitecustomize` o :mod:`usercustomize` (ver " "arriba)." -#: ../Doc/library/site.rst:216 +#: ../Doc/library/site.rst:224 msgid "Return a list containing all global site-packages directories." msgstr "" "Retorna una lista que contiene todos los directorios *site-packages* " "globales." -#: ../Doc/library/site.rst:223 +#: ../Doc/library/site.rst:231 msgid "" "Return the path of the user base directory, :data:`USER_BASE`. If it is not " "initialized yet, this function will also set it, respecting :envvar:" @@ -377,7 +388,7 @@ msgstr "" "aún no fue inicializado, esta función también lo configurará, respetando :" "envvar:`PYTHONUSERBASE`." -#: ../Doc/library/site.rst:232 +#: ../Doc/library/site.rst:240 msgid "" "Return the path of the user-specific site-packages directory, :data:" "`USER_SITE`. If it is not initialized yet, this function will also set it, " @@ -389,11 +400,11 @@ msgstr "" "data:`USER_BASE`. Para determinar si los paquetes específicos del sitio de " "usuario fueron añadidos a ``sys.path`` debe usarse :data:`ENABLE_USER_SITE`." -#: ../Doc/library/site.rst:244 +#: ../Doc/library/site.rst:252 msgid "Command Line Interface" msgstr "Interfaz de línea de comando" -#: ../Doc/library/site.rst:248 +#: ../Doc/library/site.rst:256 msgid "" "The :mod:`site` module also provides a way to get the user directories from " "the command line:" @@ -401,7 +412,7 @@ msgstr "" "El módulo :mod:`site` también proporciona una forma de obtener los " "directorios del usuario desde la línea de comandos:" -#: ../Doc/library/site.rst:256 +#: ../Doc/library/site.rst:264 msgid "" "If it is called without arguments, it will print the contents of :data:`sys." "path` on the standard output, followed by the value of :data:`USER_BASE` and " @@ -413,15 +424,15 @@ msgstr "" "existe, entonces lo mismo para :data:`USER_SITE`, y finalmente el valor de :" "data:`ENABLE_USER_SITE`." -#: ../Doc/library/site.rst:263 +#: ../Doc/library/site.rst:271 msgid "Print the path to the user base directory." msgstr "Imprime la ruta al directorio base del usuario." -#: ../Doc/library/site.rst:267 +#: ../Doc/library/site.rst:275 msgid "Print the path to the user site-packages directory." msgstr "Imprime la ruta al directorio *site-packages* del usuario." -#: ../Doc/library/site.rst:269 +#: ../Doc/library/site.rst:277 msgid "" "If both options are given, user base and user site will be printed (always " "in this order), separated by :data:`os.pathsep`." @@ -430,7 +441,7 @@ msgstr "" "*site-packages* del usuario se imprimirán (siempre en este orden), separados " "por :data:`os.pathsep`." -#: ../Doc/library/site.rst:272 +#: ../Doc/library/site.rst:280 msgid "" "If any option is given, the script will exit with one of these values: ``0`` " "if the user site-packages directory is enabled, ``1`` if it was disabled by " @@ -442,10 +453,59 @@ msgstr "" "deshabilitado por el usuario, ``2`` si está deshabilitado por razones de " "seguridad o por un administrador, y un valor mayor que 2 si hay un error." -#: ../Doc/library/site.rst:279 +#: ../Doc/library/site.rst:287 msgid ":pep:`370` -- Per user site-packages directory" msgstr ":pep:`370` - Directorio *site-packages* de cada usuario" -#: ../Doc/library/site.rst:280 +#: ../Doc/library/site.rst:288 msgid ":ref:`sys-path-init` -- The initialization of :data:`sys.path`." msgstr ":ref:`sys-path-init` -- Inicialización de :data:`sys.path`." + +#: ../Doc/library/site.rst:16 +msgid "module" +msgstr "" + +#: ../Doc/library/site.rst:16 +msgid "search" +msgstr "" + +#: ../Doc/library/site.rst:16 ../Doc/library/site.rst:77 +msgid "path" +msgstr "" + +#: ../Doc/library/site.rst:28 +msgid "site-packages" +msgstr "" + +#: ../Doc/library/site.rst:28 +msgid "directory" +msgstr "" + +#: ../Doc/library/site.rst:52 +msgid "# (hash)" +msgstr "" + +#: ../Doc/library/site.rst:52 +msgid "comment" +msgstr "" + +#: ../Doc/library/site.rst:52 +msgid "statement" +msgstr "" + +#: ../Doc/library/site.rst:52 +msgid "import" +msgstr "" + +#: ../Doc/library/site.rst:77 +msgid "package" +msgstr "" + +#: ../Doc/library/site.rst:77 +#, fuzzy +msgid "configuration" +msgstr "Configuración de *Readline*" + +#: ../Doc/library/site.rst:77 +msgid "file" +msgstr "" diff --git a/library/smtplib.po b/library/smtplib.po index 84d0fbd2aa..d35bf487a1 100644 --- a/library/smtplib.po +++ b/library/smtplib.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-17 12:38-0300\n" "Last-Translator: Diego Cristobal Herreros \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/smtplib.rst:2 msgid ":mod:`smtplib` --- SMTP protocol client" @@ -43,11 +42,12 @@ msgstr "" "funcionamiento de SMTP y ESMTP, consulte :rfc:`821` (Protocolo simple de " "transferencia de correo) y :rfc:`1869` (Extensiones de servicio SMTP)." +#: ../Doc/includes/wasm-notavail.rst:3 #, fuzzy msgid ":ref:`Availability `: not Emscripten, not WASI." msgstr ":ref:`Availability `: ni Emscripten, ni WASI." -#: ../Doc/library/cpython/Doc/includes/wasm-notavail.rst:5 +#: ../Doc/includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly platforms " "``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for " @@ -58,10 +58,11 @@ msgstr "" "para más información." #: ../Doc/library/smtplib.rst:26 +#, fuzzy msgid "" "An :class:`SMTP` instance encapsulates an SMTP connection. It has methods " "that support a full repertoire of SMTP and ESMTP operations. If the optional " -"host and port parameters are given, the SMTP :meth:`connect` method is " +"*host* and *port* parameters are given, the SMTP :meth:`connect` method is " "called with those parameters during initialization. If specified, " "*local_hostname* is used as the FQDN of the local host in the HELO/EHLO " "command. Otherwise, the local hostname is found using :func:`socket." @@ -70,11 +71,11 @@ msgid "" "specifies a timeout in seconds for blocking operations like the connection " "attempt (if not specified, the global default timeout setting will be " "used). If the timeout expires, :exc:`TimeoutError` is raised. The optional " -"source_address parameter allows binding to some specific source address in a " -"machine with multiple network interfaces, and/or to some specific source TCP " -"port. It takes a 2-tuple (host, port), for the socket to bind to as its " -"source address before connecting. If omitted (or if host or port are ``''`` " -"and/or 0 respectively) the OS default behavior will be used." +"*source_address* parameter allows binding to some specific source address in " +"a machine with multiple network interfaces, and/or to some specific source " +"TCP port. It takes a 2-tuple ``(host, port)``, for the socket to bind to as " +"its source address before connecting. If omitted (or if *host* or *port* are " +"``''`` and/or ``0`` respectively) the OS default behavior will be used." msgstr "" "Una instancia :class:`SMTP` encapsula una conexión SMTP. Tiene métodos que " "admiten un repertorio completo de operaciones SMTP y ESMTP. Si se " @@ -135,23 +136,25 @@ msgstr "" msgid "Support for the :keyword:`with` statement was added." msgstr "Se agregó soporte para la sentencia :keyword:`with`." -#: ../Doc/library/smtplib.rst:68 ../Doc/library/smtplib.rst:100 -msgid "source_address argument was added." +#: ../Doc/library/smtplib.rst:68 +#, fuzzy +msgid "*source_address* argument was added." msgstr "se agrego el argumento source_address." #: ../Doc/library/smtplib.rst:71 msgid "The SMTPUTF8 extension (:rfc:`6531`) is now supported." msgstr "La extensión SMTPUTF8 (:rfc:`6531`) ahora es compatible." -#: ../Doc/library/smtplib.rst:74 ../Doc/library/smtplib.rst:115 +#: ../Doc/library/smtplib.rst:74 +#, fuzzy msgid "" "If the *timeout* parameter is set to be zero, it will raise a :class:" -"`ValueError` to prevent the creation of a non-blocking socket" +"`ValueError` to prevent the creation of a non-blocking socket." msgstr "" "Si el parámetro *timeout* se mantiene en cero, lanzará un :class:" "`ValueError` para evitar la creación de un socket no bloqueante" -#: ../Doc/library/smtplib.rst:82 +#: ../Doc/library/smtplib.rst:81 msgid "" "An :class:`SMTP_SSL` instance behaves exactly the same as instances of :" "class:`SMTP`. :class:`SMTP_SSL` should be used for situations where SSL is " @@ -175,46 +178,44 @@ msgstr "" "permite configurar varios aspectos de la conexión segura. Por favor lea :ref:" "`ssl-security` para conocer las mejores prácticas." -#: ../Doc/library/smtplib.rst:93 -msgid "" -"*keyfile* and *certfile* are a legacy alternative to *context*, and can " -"point to a PEM formatted private key and certificate chain file for the SSL " -"connection." -msgstr "" -"*keyfile* y *certfile* son una alternativa heredada a *context* y pueden " -"apuntar a una clave privada con formato PEM y un archivo de cadena de " -"certificados para la conexión SSL." - -#: ../Doc/library/smtplib.rst:97 ../Doc/library/smtplib.rst:428 +#: ../Doc/library/smtplib.rst:92 ../Doc/library/smtplib.rst:415 msgid "*context* was added." msgstr "se agregó *contexto*." -#: ../Doc/library/smtplib.rst:103 +#: ../Doc/library/smtplib.rst:95 +#, fuzzy +msgid "The *source_address* argument was added." +msgstr "se agrego el argumento source_address." + +#: ../Doc/library/smtplib.rst:98 +#, fuzzy msgid "" "The class now supports hostname check with :attr:`ssl.SSLContext." -"check_hostname` and *Server Name Indication* (see :data:`ssl.HAS_SNI`)." +"check_hostname` and *Server Name Indication* (see :const:`ssl.HAS_SNI`)." msgstr "" "La clase ahora admite la verificación del nombre de host con :attr:`ssl." "SSLContext.check_hostname` y *Server Name Indication* (ver :data:`ssl." "HAS_SNI`)." -#: ../Doc/library/smtplib.rst:110 ../Doc/library/smtplib.rst:414 +#: ../Doc/library/smtplib.rst:103 msgid "" -"*keyfile* and *certfile* are deprecated in favor of *context*. Please use :" -"meth:`ssl.SSLContext.load_cert_chain` instead, or let :func:`ssl." -"create_default_context` select the system's trusted CA certificates for you." +"If the *timeout* parameter is set to be zero, it will raise a :class:" +"`ValueError` to prevent the creation of a non-blocking socket" +msgstr "" +"Si el parámetro *timeout* se mantiene en cero, lanzará un :class:" +"`ValueError` para evitar la creación de un socket no bloqueante" + +#: ../Doc/library/smtplib.rst:107 ../Doc/library/smtplib.rst:403 +msgid "The deprecated *keyfile* and *certfile* parameters have been removed." msgstr "" -"*keyfile* y *certfile* están obsoletos en favor de *context*. Por favor use :" -"meth:`ssl.SSLContext.load_cert_chain` en su lugar, o deje que :func:`ssl." -"create_default_context` seleccione los certificados CA confiables del " -"sistema para usted." -#: ../Doc/library/smtplib.rst:122 +#: ../Doc/library/smtplib.rst:113 +#, fuzzy msgid "" "The LMTP protocol, which is very similar to ESMTP, is heavily based on the " "standard SMTP client. It's common to use Unix sockets for LMTP, so our :meth:" "`connect` method must support that as well as a regular host:port server. " -"The optional arguments local_hostname and source_address have the same " +"The optional arguments *local_hostname* and *source_address* have the same " "meaning as they do in the :class:`SMTP` class. To specify a Unix socket, you " "must use an absolute path for *host*, starting with a '/'." msgstr "" @@ -226,7 +227,7 @@ msgstr "" "Para especificar un socket Unix, debe usar una ruta absoluta para *host*, " "comenzando con '/'." -#: ../Doc/library/smtplib.rst:129 +#: ../Doc/library/smtplib.rst:120 msgid "" "Authentication is supported, using the regular SMTP mechanism. When using a " "Unix socket, LMTP generally don't support or require any authentication, but " @@ -236,15 +237,15 @@ msgstr "" "usa un socket Unix, LMTP generalmente no admite ni requiere autenticación, " "pero su millaje puede variar." -#: ../Doc/library/smtplib.rst:133 +#: ../Doc/library/smtplib.rst:124 msgid "The optional *timeout* parameter was added." msgstr "Se ha añadido el parámetro opcional *timeout*." -#: ../Doc/library/smtplib.rst:137 +#: ../Doc/library/smtplib.rst:128 msgid "A nice selection of exceptions is defined as well:" msgstr "También se define una buena selección de excepciones:" -#: ../Doc/library/smtplib.rst:142 +#: ../Doc/library/smtplib.rst:133 msgid "" "Subclass of :exc:`OSError` that is the base exception class for all the " "other exceptions provided by this module." @@ -252,11 +253,11 @@ msgstr "" "Subclase de :exc:`OSError` que es la clase de excepción base para todas las " "demás excepciones proporcionadas por este módulo." -#: ../Doc/library/smtplib.rst:145 +#: ../Doc/library/smtplib.rst:136 msgid "SMTPException became subclass of :exc:`OSError`" msgstr "SMTPException se convirtió en subclase de :exc:`OSError`" -#: ../Doc/library/smtplib.rst:151 +#: ../Doc/library/smtplib.rst:142 msgid "" "This exception is raised when the server unexpectedly disconnects, or when " "an attempt is made to use the :class:`SMTP` instance before connecting it to " @@ -266,7 +267,7 @@ msgstr "" "cuando se intenta usar la instancia :class:`SMTP` antes de conectarlo a un " "servidor." -#: ../Doc/library/smtplib.rst:158 +#: ../Doc/library/smtplib.rst:149 msgid "" "Base class for all exceptions that include an SMTP error code. These " "exceptions are generated in some instances when the SMTP server returns an " @@ -279,7 +280,7 @@ msgstr "" "attr:`smtp_code` del error, y el atributo :attr:`smtp_error` se establece en " "el mensaje de error." -#: ../Doc/library/smtplib.rst:166 +#: ../Doc/library/smtplib.rst:157 msgid "" "Sender address refused. In addition to the attributes set by on all :exc:" "`SMTPResponseException` exceptions, this sets 'sender' to the string that " @@ -289,7 +290,7 @@ msgstr "" "todas las excepciones :exc:`SMTPResponseException`, éste establece " "'remitente' para la cadena de caracteres que el servidor SMTP rechazó." -#: ../Doc/library/smtplib.rst:173 +#: ../Doc/library/smtplib.rst:164 msgid "" "All recipient addresses refused. The errors for each recipient are " "accessible through the attribute :attr:`recipients`, which is a dictionary " @@ -299,24 +300,24 @@ msgstr "" "destinatario son accesibles mediante el atributo :attr:`recipients`, el cual " "es un diccionario del mismo tipo que el :meth:`SMTP.sendmail` retorna." -#: ../Doc/library/smtplib.rst:180 +#: ../Doc/library/smtplib.rst:171 msgid "The SMTP server refused to accept the message data." msgstr "El servidor SMTP se negó a aceptar los datos del mensaje." -#: ../Doc/library/smtplib.rst:185 +#: ../Doc/library/smtplib.rst:176 msgid "Error occurred during establishment of a connection with the server." msgstr "" "Se produjo un error durante el establecimiento de conexión con el servidor." -#: ../Doc/library/smtplib.rst:190 +#: ../Doc/library/smtplib.rst:181 msgid "The server refused our ``HELO`` message." msgstr "El servidor rechazó nuestro mensaje ``HELO``." -#: ../Doc/library/smtplib.rst:195 +#: ../Doc/library/smtplib.rst:186 msgid "The command or option attempted is not supported by the server." msgstr "El servidor no admite el comando o la opción que se intentó." -#: ../Doc/library/smtplib.rst:202 +#: ../Doc/library/smtplib.rst:193 msgid "" "SMTP authentication went wrong. Most probably the server didn't accept the " "username/password combination provided." @@ -324,11 +325,11 @@ msgstr "" "La autenticación SMTP salió mal. Lo más probable es que el servidor no " "aceptó la combinación proporcionada de username/password." -#: ../Doc/library/smtplib.rst:210 +#: ../Doc/library/smtplib.rst:201 msgid ":rfc:`821` - Simple Mail Transfer Protocol" msgstr ":rfc:`821` - Simple Mail Transfer Protocol" -#: ../Doc/library/smtplib.rst:209 +#: ../Doc/library/smtplib.rst:200 msgid "" "Protocol definition for SMTP. This document covers the model, operating " "procedure, and protocol details for SMTP." @@ -336,11 +337,11 @@ msgstr "" "Definición de protocolo para SMTP. Este documento cubre el modelo, el " "procedimiento operativo y los detalles del protocolo para SMTP." -#: ../Doc/library/smtplib.rst:214 +#: ../Doc/library/smtplib.rst:205 msgid ":rfc:`1869` - SMTP Service Extensions" msgstr ":rfc:`1869` - Extensiones de Servicio SMTP" -#: ../Doc/library/smtplib.rst:213 +#: ../Doc/library/smtplib.rst:204 msgid "" "Definition of the ESMTP extensions for SMTP. This describes a framework for " "extending SMTP with new commands, supporting dynamic discovery of the " @@ -351,15 +352,15 @@ msgstr "" "los comandos proporcionados por el servidor y define algunos comandos " "adicionales." -#: ../Doc/library/smtplib.rst:221 +#: ../Doc/library/smtplib.rst:212 msgid "SMTP Objects" msgstr "Objetos SMTP" -#: ../Doc/library/smtplib.rst:223 +#: ../Doc/library/smtplib.rst:214 msgid "An :class:`SMTP` instance has the following methods:" msgstr "Una instancia :class:`SMTP` tiene los siguientes métodos:" -#: ../Doc/library/smtplib.rst:228 +#: ../Doc/library/smtplib.rst:219 msgid "" "Set the debug output level. A value of 1 or ``True`` for *level* results in " "debug messages for connection and for all messages sent to and received from " @@ -371,11 +372,11 @@ msgstr "" "todos los mensajes enviados y recibidos desde el servidor. Un valor de 2 " "para *level* da como resultado que estos mensajes tengan una marca de tiempo." -#: ../Doc/library/smtplib.rst:233 +#: ../Doc/library/smtplib.rst:224 msgid "Added debuglevel 2." msgstr "Se agregó el nivel de depuración 2." -#: ../Doc/library/smtplib.rst:238 +#: ../Doc/library/smtplib.rst:229 msgid "" "Send a command *cmd* to the server. The optional argument *args* is simply " "concatenated to the command, separated by a space." @@ -383,7 +384,7 @@ msgstr "" "Envíe un comando *cmd* al servidor. El argumento opcional *args* simplemente " "se concatena al comando, separado por un espacio." -#: ../Doc/library/smtplib.rst:241 +#: ../Doc/library/smtplib.rst:232 msgid "" "This returns a 2-tuple composed of a numeric response code and the actual " "response line (multiline responses are joined into one long line.)" @@ -392,7 +393,7 @@ msgstr "" "y la línea de respuesta real (las respuestas de varias líneas se unen en una " "línea larga)." -#: ../Doc/library/smtplib.rst:244 +#: ../Doc/library/smtplib.rst:235 msgid "" "In normal operation it should not be necessary to call this method " "explicitly. It is used to implement other methods and may be useful for " @@ -402,7 +403,7 @@ msgstr "" "explícitamente. Se utiliza para implementar otros métodos y puede resultar " "útil para probar extensiones privadas." -#: ../Doc/library/smtplib.rst:248 +#: ../Doc/library/smtplib.rst:239 msgid "" "If the connection to the server is lost while waiting for the reply, :exc:" "`SMTPServerDisconnected` will be raised." @@ -410,7 +411,7 @@ msgstr "" "Si se pierde la conexión con el servidor mientras se espera la respuesta, se " "activará :exc:`SMTPServerDisconnected`." -#: ../Doc/library/smtplib.rst:254 +#: ../Doc/library/smtplib.rst:245 msgid "" "Connect to a host on a given port. The defaults are to connect to the local " "host at the standard SMTP port (25). If the hostname ends with a colon " @@ -428,7 +429,7 @@ msgstr "" "un host durante la instanciación. Devuelve una tupla de 2 del código de " "respuesta y el mensaje enviado por el servidor en su respuesta de conexión." -#: ../Doc/library/smtplib.rst:271 +#: ../Doc/library/smtplib.rst:262 msgid "" "Raises an :ref:`auditing event ` ``smtplib.connect`` with " "arguments ``self``, ``host``, ``port``." @@ -436,7 +437,7 @@ msgstr "" "Genera un :ref:`evento de auditoría ` ``smtplib.connect`` con " "argumentos ``self``, ``host``, ``port``." -#: ../Doc/library/smtplib.rst:267 +#: ../Doc/library/smtplib.rst:258 msgid "" "Identify yourself to the SMTP server using ``HELO``. The hostname argument " "defaults to the fully qualified domain name of the local host. The message " @@ -448,7 +449,7 @@ msgstr "" "host local. El mensaje devuelto por el servidor se almacena como el " "atributo :attr:`helo_resp` del objeto." -#: ../Doc/library/smtplib.rst:272 +#: ../Doc/library/smtplib.rst:263 msgid "" "In normal operation it should not be necessary to call this method " "explicitly. It will be implicitly called by the :meth:`sendmail` when " @@ -458,7 +459,7 @@ msgstr "" "explícitamente. Será llamado implícitamente por :meth:`sendmail` cuando sea " "necesario." -#: ../Doc/library/smtplib.rst:278 +#: ../Doc/library/smtplib.rst:269 msgid "" "Identify yourself to an ESMTP server using ``EHLO``. The hostname argument " "defaults to the fully qualified domain name of the local host. Examine the " @@ -480,7 +481,7 @@ msgstr "" "extensiones de servicio SMTP de este servidor soportes, y sus parámetros (si " "los hay)." -#: ../Doc/library/smtplib.rst:288 +#: ../Doc/library/smtplib.rst:279 msgid "" "Unless you wish to use :meth:`has_extn` before sending mail, it should not " "be necessary to call this method explicitly. It will be implicitly called " @@ -490,7 +491,7 @@ msgstr "" "debería ser necesario llamar a este método explícitamente. Se llamará " "implícitamente por :meth:`sendmail` cuando sea necesario." -#: ../Doc/library/smtplib.rst:294 +#: ../Doc/library/smtplib.rst:285 msgid "" "This method calls :meth:`ehlo` and/or :meth:`helo` if there has been no " "previous ``EHLO`` or ``HELO`` command this session. It tries ESMTP ``EHLO`` " @@ -500,17 +501,17 @@ msgstr "" "comando ``EHLO`` o ``HELO`` anterior en esta sesión. Primero prueba ESMTP " "``EHLO``." -#: ../Doc/library/smtplib.rst:298 ../Doc/library/smtplib.rst:328 -#: ../Doc/library/smtplib.rst:420 ../Doc/library/smtplib.rst:489 +#: ../Doc/library/smtplib.rst:289 ../Doc/library/smtplib.rst:319 +#: ../Doc/library/smtplib.rst:407 ../Doc/library/smtplib.rst:476 msgid ":exc:`SMTPHeloError`" msgstr ":exc:`SMTPHeloError`" -#: ../Doc/library/smtplib.rst:299 ../Doc/library/smtplib.rst:328 -#: ../Doc/library/smtplib.rst:420 ../Doc/library/smtplib.rst:489 +#: ../Doc/library/smtplib.rst:290 ../Doc/library/smtplib.rst:319 +#: ../Doc/library/smtplib.rst:407 ../Doc/library/smtplib.rst:476 msgid "The server didn't reply properly to the ``HELO`` greeting." msgstr "El servidor no respondió correctamente al saludo ``HELO``." -#: ../Doc/library/smtplib.rst:303 +#: ../Doc/library/smtplib.rst:294 msgid "" "Return :const:`True` if *name* is in the set of SMTP service extensions " "returned by the server, :const:`False` otherwise. Case is ignored." @@ -519,7 +520,7 @@ msgstr "" "servicio SMTP devueltas por el servidor, :const:`False` en caso contrario. " "El método es insensible a la presencia de mayúsculas en *name*." -#: ../Doc/library/smtplib.rst:309 +#: ../Doc/library/smtplib.rst:300 msgid "" "Check the validity of an address on this server using SMTP ``VRFY``. Returns " "a tuple consisting of code 250 and a full :rfc:`822` address (including " @@ -532,11 +533,11 @@ msgstr "" "lo contrario, devuelve un código de error SMTP de 400 o más y una cadena de " "error." -#: ../Doc/library/smtplib.rst:316 +#: ../Doc/library/smtplib.rst:307 msgid "Many sites disable SMTP ``VRFY`` in order to foil spammers." msgstr "Muchos sitios desactivan SMTP ``VRFY`` para frustrar a los spammers." -#: ../Doc/library/smtplib.rst:321 +#: ../Doc/library/smtplib.rst:312 msgid "" "Log in on an SMTP server that requires authentication. The arguments are the " "username and the password to authenticate with. If there has been no " @@ -550,32 +551,32 @@ msgstr "" "prueba primero ESMTP ``EHLO``. Este método regresará normalmente si la " "autenticación fue exitosa o puede generar las siguientes excepciones:" -#: ../Doc/library/smtplib.rst:331 +#: ../Doc/library/smtplib.rst:322 msgid ":exc:`SMTPAuthenticationError`" msgstr ":exc:`SMTPAuthenticationError`" -#: ../Doc/library/smtplib.rst:331 +#: ../Doc/library/smtplib.rst:322 msgid "The server didn't accept the username/password combination." msgstr "El servidor no aceptó la combinación de nombre de username/password." -#: ../Doc/library/smtplib.rst:334 ../Doc/library/smtplib.rst:423 -#: ../Doc/library/smtplib.rst:500 +#: ../Doc/library/smtplib.rst:325 ../Doc/library/smtplib.rst:410 +#: ../Doc/library/smtplib.rst:487 msgid ":exc:`SMTPNotSupportedError`" msgstr ":exc:`SMTPNotSupportedError`" -#: ../Doc/library/smtplib.rst:334 +#: ../Doc/library/smtplib.rst:325 msgid "The ``AUTH`` command is not supported by the server." msgstr "El servidor no admite el comando ``AUTH``." -#: ../Doc/library/smtplib.rst:337 +#: ../Doc/library/smtplib.rst:328 msgid ":exc:`SMTPException`" msgstr ":exc:`SMTPException`" -#: ../Doc/library/smtplib.rst:337 +#: ../Doc/library/smtplib.rst:328 msgid "No suitable authentication method was found." msgstr "No se encontró ningún método de autenticación adecuado." -#: ../Doc/library/smtplib.rst:339 +#: ../Doc/library/smtplib.rst:330 msgid "" "Each of the authentication methods supported by :mod:`smtplib` are tried in " "turn if they are advertised as supported by the server. See :meth:`auth` " @@ -587,7 +588,7 @@ msgstr "" "meth:`auth` para obtener una lista de los métodos de autenticación " "admitidos. *initial_response_ok* se pasa a :meth:`auth`." -#: ../Doc/library/smtplib.rst:344 +#: ../Doc/library/smtplib.rst:335 msgid "" "Optional keyword argument *initial_response_ok* specifies whether, for " "authentication methods that support it, an \"initial response\" as specified " @@ -599,7 +600,7 @@ msgstr "" "\"respuesta inicial\" como se especifica en :rfc:`4954` junto con el comando " "``AUTH``, en lugar de requerir un desafío/respuesta ." -#: ../Doc/library/smtplib.rst:349 +#: ../Doc/library/smtplib.rst:340 msgid "" ":exc:`SMTPNotSupportedError` may be raised, and the *initial_response_ok* " "parameter was added." @@ -607,7 +608,7 @@ msgstr "" ":exc:`SMTPNotSupportedError` se puede generar y se agregó el parámetro " "*initial_response_ok*." -#: ../Doc/library/smtplib.rst:356 +#: ../Doc/library/smtplib.rst:347 msgid "" "Issue an ``SMTP`` ``AUTH`` command for the specified authentication " "*mechanism*, and handle the challenge response via *authobject*." @@ -615,7 +616,7 @@ msgstr "" "Emita un comando ``SMTP`` ``AUTH`` para el *mechanism* de autenticación " "especificado y maneje la respuesta de desafío a través de *authobject*." -#: ../Doc/library/smtplib.rst:359 +#: ../Doc/library/smtplib.rst:350 msgid "" "*mechanism* specifies which authentication mechanism is to be used as " "argument to the ``AUTH`` command; the valid values are those listed in the " @@ -625,18 +626,15 @@ msgstr "" "argumento para el comando ``AUTH``; los valores válidos son los enumerados " "en el elemento ``auth`` de :attr:`esmtp_features`." -#: ../Doc/library/smtplib.rst:363 +#: ../Doc/library/smtplib.rst:354 +#, fuzzy msgid "" -"*authobject* must be a callable object taking an optional single argument:" +"*authobject* must be a callable object taking an optional single argument::" msgstr "" "*authobject* debe ser un objeto invocable que tome un único argumento " "opcional:" -#: ../Doc/library/smtplib.rst:365 -msgid "data = authobject(challenge=None)" -msgstr "data = authobject(challenge=None)" - -#: ../Doc/library/smtplib.rst:367 +#: ../Doc/library/smtplib.rst:358 msgid "" "If optional keyword argument *initial_response_ok* is true, ``authobject()`` " "will be called first with no argument. It can return the :rfc:`4954` " @@ -652,7 +650,7 @@ msgstr "" "será un ``bytes``. Debería devolver *data* ASCII ``str`` que serán " "codificados en base64 y enviados al servidor." -#: ../Doc/library/smtplib.rst:375 +#: ../Doc/library/smtplib.rst:366 msgid "" "If the initial response check returns ``None``, or if *initial_response_ok* " "is false, ``authobject()`` will be called to process the server's challenge " @@ -666,7 +664,7 @@ msgstr "" "será un ``bytes``. Debería devolver *data* ASCII ``str`` que serán " "codificados en base64 y enviados al servidor." -#: ../Doc/library/smtplib.rst:381 +#: ../Doc/library/smtplib.rst:372 msgid "" "The ``SMTP`` class provides ``authobjects`` for the ``CRAM-MD5``, ``PLAIN``, " "and ``LOGIN`` mechanisms; they are named ``SMTP.auth_cram_md5``, ``SMTP." @@ -680,7 +678,7 @@ msgstr "" "propiedades de ``user`` y ``password`` de la instancia ``SMTP`` se " "establezcan en los valores adecuados." -#: ../Doc/library/smtplib.rst:387 +#: ../Doc/library/smtplib.rst:378 msgid "" "User code does not normally need to call ``auth`` directly, but can instead " "call the :meth:`login` method, which will try each of the above mechanisms " @@ -694,7 +692,7 @@ msgstr "" "para facilitar la implementación de métodos de autenticación que no (o aún " "no) son compatibles directamente con :mod:`smtplib`." -#: ../Doc/library/smtplib.rst:398 +#: ../Doc/library/smtplib.rst:389 msgid "" "Put the SMTP connection in TLS (Transport Layer Security) mode. All SMTP " "commands that follow will be encrypted. You should then call :meth:`ehlo` " @@ -704,7 +702,7 @@ msgstr "" "Todos los comandos SMTP que siguen se cifrarán. Entonces deberías llamar a :" "meth:`ehlo` de nuevo." -#: ../Doc/library/smtplib.rst:402 +#: ../Doc/library/smtplib.rst:393 msgid "" "If *keyfile* and *certfile* are provided, they are used to create an :class:" "`ssl.SSLContext`." @@ -712,7 +710,7 @@ msgstr "" "Si se proporcionan *keyfile* y *certfile*, se utilizan para crear una :class:" "`ssl.SSLContext`." -#: ../Doc/library/smtplib.rst:405 +#: ../Doc/library/smtplib.rst:396 msgid "" "Optional *context* parameter is an :class:`ssl.SSLContext` object; This is " "an alternative to using a keyfile and a certfile and if specified both " @@ -723,7 +721,7 @@ msgstr "" "certificado y, si se especifica, tanto *keyfile* como *certfile* deben ser " "``None``." -#: ../Doc/library/smtplib.rst:409 +#: ../Doc/library/smtplib.rst:400 msgid "" "If there has been no previous ``EHLO`` or ``HELO`` command this session, " "this method tries ESMTP ``EHLO`` first." @@ -731,30 +729,31 @@ msgstr "" "Si no ha habido ningún comando ``EHLO`` o ``HELO`` anterior en esta sesión, " "este método intenta ESMTP ``EHLO`` primero." -#: ../Doc/library/smtplib.rst:423 +#: ../Doc/library/smtplib.rst:410 msgid "The server does not support the STARTTLS extension." msgstr "El servidor no admite la extensión STARTTLS." -#: ../Doc/library/smtplib.rst:426 +#: ../Doc/library/smtplib.rst:413 msgid ":exc:`RuntimeError`" msgstr ":exc:`RuntimeError`" -#: ../Doc/library/smtplib.rst:426 +#: ../Doc/library/smtplib.rst:413 msgid "SSL/TLS support is not available to your Python interpreter." msgstr "" "La compatibilidad con SSL/TLS no está disponible para su intérprete de " "Python." -#: ../Doc/library/smtplib.rst:431 +#: ../Doc/library/smtplib.rst:418 +#, fuzzy msgid "" "The method now supports hostname check with :attr:`SSLContext." -"check_hostname` and *Server Name Indicator* (see :data:`~ssl.HAS_SNI`)." +"check_hostname` and *Server Name Indicator* (see :const:`~ssl.HAS_SNI`)." msgstr "" "El método ahora admite la verificación del nombre de host con :attr:" "`SSLContext.check_hostname` y *Server Name Indicator* (ver :data:`~ssl." "HAS_SNI`)." -#: ../Doc/library/smtplib.rst:436 +#: ../Doc/library/smtplib.rst:423 msgid "" "The error raised for lack of STARTTLS support is now the :exc:" "`SMTPNotSupportedError` subclass instead of the base :exc:`SMTPException`." @@ -763,7 +762,7 @@ msgstr "" "subclase :exc:`SMTPNotSupportedError` en lugar de la base :exc:" "`SMTPException`." -#: ../Doc/library/smtplib.rst:444 +#: ../Doc/library/smtplib.rst:431 msgid "" "Send mail. The required arguments are an :rfc:`822` from-address string, a " "list of :rfc:`822` to-address strings (a bare string will be treated as a " @@ -786,7 +785,7 @@ msgstr "" "métodos de bajo nivel como :meth:`mail`, :meth:`rcpt` y :meth:`data` para " "enviar el mensaje)." -#: ../Doc/library/smtplib.rst:455 +#: ../Doc/library/smtplib.rst:442 msgid "" "The *from_addr* and *to_addrs* parameters are used to construct the message " "envelope used by the transport agents. ``sendmail`` does not modify the " @@ -796,7 +795,7 @@ msgstr "" "del mensaje utilizado por los agentes de transporte. ``sendmail`` no " "modifica los encabezados de los mensajes de ninguna manera." -#: ../Doc/library/smtplib.rst:459 +#: ../Doc/library/smtplib.rst:446 msgid "" "*msg* may be a string containing characters in the ASCII range, or a byte " "string. A string is encoded to bytes using the ascii codec, and lone " @@ -808,7 +807,7 @@ msgstr "" "y los caracteres ``\\r`` y ``\\n`` solitarios se convierten en caracteres " "``\\ r\\n``. Una cadena de bytes no se modifica." -#: ../Doc/library/smtplib.rst:464 +#: ../Doc/library/smtplib.rst:451 msgid "" "If there has been no previous ``EHLO`` or ``HELO`` command this session, " "this method tries ESMTP ``EHLO`` first. If the server does ESMTP, message " @@ -822,7 +821,7 @@ msgstr "" "la opción está en el conjunto de funciones que anuncia el servidor). Si " "``EHLO`` falla, se probará ``HELO`` y se eliminarán las opciones de ESMTP." -#: ../Doc/library/smtplib.rst:470 +#: ../Doc/library/smtplib.rst:457 msgid "" "This method will return normally if the mail is accepted for at least one " "recipient. Otherwise it will raise an exception. That is, if this method " @@ -838,7 +837,7 @@ msgstr "" "para cada destinatario rechazado. Cada entrada contiene una tupla del código " "de error SMTP y el mensaje de error adjunto enviado por el servidor." -#: ../Doc/library/smtplib.rst:477 +#: ../Doc/library/smtplib.rst:464 msgid "" "If ``SMTPUTF8`` is included in *mail_options*, and the server supports it, " "*from_addr* and *to_addrs* may contain non-ASCII characters." @@ -846,15 +845,15 @@ msgstr "" "Si se incluye ``SMTPUTF8``' en *mail_options * y el servidor lo admite, " "*from_addr* y *to_addrs* pueden contener caracteres no ASCII." -#: ../Doc/library/smtplib.rst:480 +#: ../Doc/library/smtplib.rst:467 msgid "This method may raise the following exceptions:" msgstr "Este método puede lanzar las siguientes excepciones:" -#: ../Doc/library/smtplib.rst:486 +#: ../Doc/library/smtplib.rst:473 msgid ":exc:`SMTPRecipientsRefused`" msgstr ":exc:`SMTPRecipientsRefused`" -#: ../Doc/library/smtplib.rst:483 +#: ../Doc/library/smtplib.rst:470 msgid "" "All recipients were refused. Nobody got the mail. The :attr:`recipients` " "attribute of the exception object is a dictionary with information about the " @@ -866,19 +865,19 @@ msgstr "" "información sobre los destinatarios rechazados (como el que se retorna " "cuando se aceptó al menos un destinatario)." -#: ../Doc/library/smtplib.rst:492 +#: ../Doc/library/smtplib.rst:479 msgid ":exc:`SMTPSenderRefused`" msgstr ":exc:`SMTPSenderRefused`" -#: ../Doc/library/smtplib.rst:492 +#: ../Doc/library/smtplib.rst:479 msgid "The server didn't accept the *from_addr*." msgstr "El servidor no aceptó el *from_addr*." -#: ../Doc/library/smtplib.rst:496 +#: ../Doc/library/smtplib.rst:483 msgid ":exc:`SMTPDataError`" msgstr ":exc:`SMTPDataError`" -#: ../Doc/library/smtplib.rst:495 +#: ../Doc/library/smtplib.rst:482 msgid "" "The server replied with an unexpected error code (other than a refusal of a " "recipient)." @@ -886,14 +885,14 @@ msgstr "" "El servidor respondió con un código de error inesperado (que no sea el " "rechazo de un destinatario)." -#: ../Doc/library/smtplib.rst:499 +#: ../Doc/library/smtplib.rst:486 msgid "" "``SMTPUTF8`` was given in the *mail_options* but is not supported by the " "server." msgstr "" "Se proporcionó ``SMTPUTF8`` en *mail_options* pero el servidor no lo admite." -#: ../Doc/library/smtplib.rst:502 +#: ../Doc/library/smtplib.rst:489 msgid "" "Unless otherwise noted, the connection will be open even after an exception " "is raised." @@ -901,11 +900,11 @@ msgstr "" "A menos que se indique lo contrario, la conexión estará abierta incluso " "después de que se lance una excepción." -#: ../Doc/library/smtplib.rst:505 +#: ../Doc/library/smtplib.rst:492 msgid "*msg* may be a byte string." msgstr "*msg* puede ser una cadena de bytes." -#: ../Doc/library/smtplib.rst:508 +#: ../Doc/library/smtplib.rst:495 msgid "" "``SMTPUTF8`` support added, and :exc:`SMTPNotSupportedError` may be raised " "if ``SMTPUTF8`` is specified but the server does not support it." @@ -914,7 +913,7 @@ msgstr "" "`SMTPNotSupportedError` puede ser lanzada si se especifica ``SMTPUTF8`` ya " "que el servidor no lo admite." -#: ../Doc/library/smtplib.rst:516 +#: ../Doc/library/smtplib.rst:503 msgid "" "This is a convenience method for calling :meth:`sendmail` with the message " "represented by an :class:`email.message.Message` object. The arguments have " @@ -926,7 +925,7 @@ msgstr "" "tienen el mismo significado que para :meth:`sendmail`, excepto que *msg* es " "un objeto ``Mensaje``." -#: ../Doc/library/smtplib.rst:521 +#: ../Doc/library/smtplib.rst:508 msgid "" "If *from_addr* is ``None`` or *to_addrs* is ``None``, ``send_message`` fills " "those arguments with addresses extracted from the headers of *msg* as " @@ -953,7 +952,7 @@ msgstr "" "`ValueError`, ya que no hay forma de detectar sin ambigüedades el conjunto " "más reciente de encabezados :mailheader:`Resent-`." -#: ../Doc/library/smtplib.rst:533 +#: ../Doc/library/smtplib.rst:520 msgid "" "``send_message`` serializes *msg* using :class:`~email.generator." "BytesGenerator` with ``\\r\\n`` as the *linesep*, and calls :meth:`sendmail` " @@ -979,11 +978,11 @@ msgstr "" "atributo :attr:`~email.policy.EmailPolicy.utf8` establecido en ``True`` y " "``SMTPUTF8`` y ``BODY=8BITMIME`` se agregan a *mail_options*." -#: ../Doc/library/smtplib.rst:547 +#: ../Doc/library/smtplib.rst:534 msgid "Support for internationalized addresses (``SMTPUTF8``)." msgstr "Soporte para direcciones internacionalizadas (``SMTPUTF8``)." -#: ../Doc/library/smtplib.rst:553 +#: ../Doc/library/smtplib.rst:540 msgid "" "Terminate the SMTP session and close the connection. Return the result of " "the SMTP ``QUIT`` command." @@ -991,7 +990,7 @@ msgstr "" "Termine la sesión SMTP y cierre la conexión. Retorna el resultado del " "comando SMTP ``QUIT``." -#: ../Doc/library/smtplib.rst:557 +#: ../Doc/library/smtplib.rst:544 msgid "" "Low-level methods corresponding to the standard SMTP/ESMTP commands " "``HELP``, ``RSET``, ``NOOP``, ``MAIL``, ``RCPT``, and ``DATA`` are also " @@ -1004,11 +1003,11 @@ msgstr "" "lo que no se documentan aquí. Para más detalles, consulte el código del " "módulo." -#: ../Doc/library/smtplib.rst:566 +#: ../Doc/library/smtplib.rst:553 msgid "SMTP Example" msgstr "Ejemplo SMTP" -#: ../Doc/library/smtplib.rst:568 +#: ../Doc/library/smtplib.rst:555 msgid "" "This example prompts the user for addresses needed in the message envelope " "('To' and 'From' addresses), and the message to be delivered. Note that the " @@ -1024,7 +1023,7 @@ msgstr "" "encabezados :rfc:`822` . En particular, las direcciones 'To' y 'From deben " "incluirse explícitamente en los encabezados de los mensajes. ::" -#: ../Doc/library/smtplib.rst:604 +#: ../Doc/library/smtplib.rst:591 msgid "" "In general, you will want to use the :mod:`email` package's features to " "construct an email message, which you can then send via :meth:`~smtplib.SMTP." @@ -1033,3 +1032,39 @@ msgstr "" "En general, querrá usar las características del paquete :mod:`email` para " "construir un mensaje de correo electrónico, que luego puede enviar a través " "de :meth:`~smtplib.SMTP.send_message`; ver :ref:`email-examples`." + +#: ../Doc/library/smtplib.rst:11 +msgid "SMTP" +msgstr "" + +#: ../Doc/library/smtplib.rst:11 +msgid "protocol" +msgstr "" + +#: ../Doc/library/smtplib.rst:11 +#, fuzzy +msgid "Simple Mail Transfer Protocol" +msgstr ":rfc:`821` - Simple Mail Transfer Protocol" + +#~ msgid "" +#~ "*keyfile* and *certfile* are a legacy alternative to *context*, and can " +#~ "point to a PEM formatted private key and certificate chain file for the " +#~ "SSL connection." +#~ msgstr "" +#~ "*keyfile* y *certfile* son una alternativa heredada a *context* y pueden " +#~ "apuntar a una clave privada con formato PEM y un archivo de cadena de " +#~ "certificados para la conexión SSL." + +#~ msgid "" +#~ "*keyfile* and *certfile* are deprecated in favor of *context*. Please " +#~ "use :meth:`ssl.SSLContext.load_cert_chain` instead, or let :func:`ssl." +#~ "create_default_context` select the system's trusted CA certificates for " +#~ "you." +#~ msgstr "" +#~ "*keyfile* y *certfile* están obsoletos en favor de *context*. Por favor " +#~ "use :meth:`ssl.SSLContext.load_cert_chain` en su lugar, o deje que :func:" +#~ "`ssl.create_default_context` seleccione los certificados CA confiables " +#~ "del sistema para usted." + +#~ msgid "data = authobject(challenge=None)" +#~ msgstr "data = authobject(challenge=None)" diff --git a/library/sndhdr.po b/library/sndhdr.po index 30e66b0af0..cfda5b2c62 100644 --- a/library/sndhdr.po +++ b/library/sndhdr.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-11-14 11:58-0300\n" "Last-Translator: \n" -"Language-Team: python-doc-es\n" "Language: en\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/sndhdr.rst:2 msgid ":mod:`sndhdr` --- Determine type of sound file" @@ -220,3 +220,11 @@ msgstr "" #: ../Doc/library/sndhdr.rst:95 msgid "Example:" msgstr "Ejemplo:" + +#: ../Doc/library/sndhdr.rst:13 +msgid "A-LAW" +msgstr "" + +#: ../Doc/library/sndhdr.rst:13 +msgid "u-LAW" +msgstr "" diff --git a/library/socket.po b/library/socket.po index f884ff39ed..17bcea02d4 100644 --- a/library/socket.po +++ b/library/socket.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-30 15:53+0100\n" "Last-Translator: \n" -"Language-Team: python-doc-es\n" "Language: es_ES\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.1.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/socket.rst:2 msgid ":mod:`socket` --- Low-level networking interface" @@ -48,11 +47,12 @@ msgstr "" "Algunos comportamientos pueden depender de la plataforma, ya que las " "llamadas se realizan a las API de socket del sistema operativo." +#: ../Doc/includes/wasm-notavail.rst:3 #, fuzzy msgid ":ref:`Availability `: not Emscripten, not WASI." msgstr ":ref:`Availability `: no Emscripten, no WASI." -#: ../Doc/library/cpython/Doc/includes/wasm-notavail.rst:5 +#: ../Doc/includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly platforms " "``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for " @@ -151,8 +151,8 @@ msgstr "" "Anteriormente, se suponía que las rutas de socket :const:`AF_UNIX` " "utilizaban codificación UTF-8." -#: ../Doc/library/socket.rst:66 ../Doc/library/socket.rst:1043 -#: ../Doc/library/socket.rst:1085 ../Doc/library/socket.rst:1844 +#: ../Doc/library/socket.rst:66 ../Doc/library/socket.rst:1142 +#: ../Doc/library/socket.rst:1184 ../Doc/library/socket.rst:1943 msgid "Writable :term:`bytes-like object` is now accepted." msgstr "Ahora se acepta la grabación :term:`bytes-like object`." @@ -404,6 +404,11 @@ msgstr "" msgid "*feat* and *mask* are unsigned 32bit integers." msgstr "*feat* y *mask* son enteros de 32 bits sin signo." +#: ../Doc/library/socket.rst:171 ../Doc/library/socket.rst:583 +#: ../Doc/library/socket.rst:1865 +msgid ":ref:`Availability `: Linux >= 2.6.38." +msgstr ":ref:`Availability `: Linux >= 2.6.38." + #: ../Doc/library/socket.rst:173 msgid "Some algorithm types require more recent Kernels." msgstr "Algunos tipos de algoritmos requieren Kernels mas recientes." @@ -418,6 +423,10 @@ msgstr "" "Los sockets están representando como una tupla ``(CID, port)`` donde el " "contexto del ID o CID y el puerto son enteros." +#: ../Doc/library/socket.rst:181 ../Doc/library/socket.rst:656 +msgid ":ref:`Availability `: Linux >= 3.9" +msgstr ":ref:`Availability `: Linux >= 3.9" + #: ../Doc/library/socket.rst:183 msgid "See :manpage:`vsock(7)`" msgstr "Véase :manpage:`vsock(7)`" @@ -438,32 +447,32 @@ msgstr "*ifname* - Cadena que especifica el nombre del dispositivo." #: ../Doc/library/socket.rst:192 msgid "" -"*proto* - An in network-byte-order integer specifying the Ethernet protocol " -"number." +"*proto* - The Ethernet protocol number. May be :data:`ETH_P_ALL` to capture " +"all protocols, one of the :ref:`ETHERTYPE_* constants ` or any other Ethernet protocol number. Value must be in network-byte-" +"order." msgstr "" -"*proto* - Un entero en orden de byte de red que especifica el número de " -"protocolo Ethernet." -#: ../Doc/library/socket.rst:194 +#: ../Doc/library/socket.rst:197 msgid "*pkttype* - Optional integer specifying the packet type:" msgstr "*pkttype* - Entero opcional especificando el tipo de paquete:" -#: ../Doc/library/socket.rst:196 +#: ../Doc/library/socket.rst:199 msgid "``PACKET_HOST`` (the default) - Packet addressed to the local host." msgstr "``PACKET_HOST`` (por defecto) - Paquetes diseccionado al local host." -#: ../Doc/library/socket.rst:197 +#: ../Doc/library/socket.rst:200 msgid "``PACKET_BROADCAST`` - Physical-layer broadcast packet." msgstr "``PACKET_BROADCAST`` - Paquete de transmisión de la capa física." -#: ../Doc/library/socket.rst:198 +#: ../Doc/library/socket.rst:201 msgid "" "``PACKET_MULTICAST`` - Packet sent to a physical-layer multicast address." msgstr "" "``PACKET_MULTICAST`` - Paquete enviado a una dirección de multidifusión de " "capa física." -#: ../Doc/library/socket.rst:199 +#: ../Doc/library/socket.rst:202 msgid "" "``PACKET_OTHERHOST`` - Packet to some other host that has been caught by a " "device driver in promiscuous mode." @@ -471,7 +480,7 @@ msgstr "" "``PACKET_OTHERHOST`` - Paquete a otro host que haya sido capturado por un " "controlador de dispositivo en modo promiscuo." -#: ../Doc/library/socket.rst:201 +#: ../Doc/library/socket.rst:204 msgid "" "``PACKET_OUTGOING`` - Packet originating from the local host that is looped " "back to a packet socket." @@ -479,13 +488,13 @@ msgstr "" "``PACKET_OUTGOING`` - Paquete originalmente desde el local host que se " "enlaza de nuevo a un conector de paquetes." -#: ../Doc/library/socket.rst:203 +#: ../Doc/library/socket.rst:206 msgid "*hatype* - Optional integer specifying the ARP hardware address type." msgstr "" "*hatype* - Entero opcional que especifica el tipo de dirección de hardware " "ARP." -#: ../Doc/library/socket.rst:204 +#: ../Doc/library/socket.rst:207 msgid "" "*addr* - Optional bytes-like object specifying the hardware physical " "address, whose interpretation depends on the device." @@ -493,7 +502,11 @@ msgstr "" "*addr* - Objeto opcional en forma de bytes que especifica la dirección " "física del hardware, cuya interpretación depende del dispositivo." -#: ../Doc/library/socket.rst:209 +#: ../Doc/library/socket.rst:210 ../Doc/library/socket.rst:531 +msgid ":ref:`Availability `: Linux >= 2.2." +msgstr ":ref:`Availability `: Linux >= 2.2." + +#: ../Doc/library/socket.rst:212 msgid "" ":const:`AF_QIPCRTR` is a Linux-only socket based interface for communicating " "with services running on co-processors in Qualcomm platforms. The address " @@ -505,7 +518,11 @@ msgstr "" "Qualcomm. La familia de direcciones se representa como una tupla ``(node, " "port)`` donde el *node* y *port* son enteros no negativos." -#: ../Doc/library/socket.rst:218 +#: ../Doc/library/socket.rst:217 ../Doc/library/socket.rst:632 +msgid ":ref:`Availability `: Linux >= 4.7." +msgstr ":ref:`Availability `: Linux >= 4.7." + +#: ../Doc/library/socket.rst:221 msgid "" ":const:`IPPROTO_UDPLITE` is a variant of UDP which allows you to specify " "what portion of a packet is covered with the checksum. It adds two socket " @@ -524,7 +541,7 @@ msgstr "" "los paquetes que permitirá cubrir una pequeña parte de tu datos. En ambos " "casos ``length`` deben estar en ``range(8, 2**16, 8)``." -#: ../Doc/library/socket.rst:227 +#: ../Doc/library/socket.rst:230 msgid "" "Such a socket should be constructed with ``socket(AF_INET, SOCK_DGRAM, " "IPPROTO_UDPLITE)`` for IPv4 or ``socket(AF_INET6, SOCK_DGRAM, " @@ -534,7 +551,67 @@ msgstr "" "IPPROTO_UDPLITE)`` para IPV4 o ``socket(AF_INET6, SOCK_DGRAM, " "IPPROTO_UDPLITE)`` para IPV6." -#: ../Doc/library/socket.rst:235 +#: ../Doc/library/socket.rst:234 +#, fuzzy +msgid ":ref:`Availability `: Linux >= 2.6.20, FreeBSD >= 10.1" +msgstr ":ref:`Availability `: Linux >= 2.6.25, NetBSD >= 8." + +#: ../Doc/library/socket.rst:238 +#, fuzzy +msgid "" +":const:`AF_HYPERV` is a Windows-only socket based interface for " +"communicating with Hyper-V hosts and guests. The address family is " +"represented as a ``(vm_id, service_id)`` tuple where the ``vm_id`` and " +"``service_id`` are UUID strings." +msgstr "" +":const:`AF_QIPCRTR` es una interfaz basada en sockets solo para Linux para " +"comunicarse con servicios que se ejecutan en co-procesadores en plataformas " +"Qualcomm. La familia de direcciones se representa como una tupla ``(node, " +"port)`` donde el *node* y *port* son enteros no negativos." + +#: ../Doc/library/socket.rst:243 +msgid "" +"The ``vm_id`` is the virtual machine identifier or a set of known VMID " +"values if the target is not a specific virtual machine. Known VMID constants " +"defined on ``socket`` are:" +msgstr "" + +#: ../Doc/library/socket.rst:247 +msgid "``HV_GUID_ZERO``" +msgstr "" + +#: ../Doc/library/socket.rst:248 +msgid "``HV_GUID_BROADCAST``" +msgstr "" + +#: ../Doc/library/socket.rst:249 +msgid "" +"``HV_GUID_WILDCARD`` - Used to bind on itself and accept connections from " +"all partitions." +msgstr "" + +#: ../Doc/library/socket.rst:251 +msgid "" +"``HV_GUID_CHILDREN`` - Used to bind on itself and accept connection from " +"child partitions." +msgstr "" + +#: ../Doc/library/socket.rst:253 +msgid "``HV_GUID_LOOPBACK`` - Used as a target to itself." +msgstr "" + +#: ../Doc/library/socket.rst:254 +msgid "" +"``HV_GUID_PARENT`` - When used as a bind accepts connection from the parent " +"partition. When used as an address target it will connect to the parent " +"partition." +msgstr "" + +#: ../Doc/library/socket.rst:257 +msgid "The ``service_id`` is the service identifier of the registered service." +msgstr "" + +#: ../Doc/library/socket.rst:261 msgid "" "If you use a hostname in the *host* portion of IPv4/v6 socket address, the " "program may show a nondeterministic behavior, as Python uses the first " @@ -551,7 +628,7 @@ msgstr "" "configuración del host. Para un comportamiento determinista, utilice una " "dirección numérica en la parte *host*." -#: ../Doc/library/socket.rst:242 +#: ../Doc/library/socket.rst:268 msgid "" "All errors raise exceptions. The normal exceptions for invalid argument " "types and out-of-memory conditions can be raised. Errors related to socket " @@ -562,7 +639,7 @@ msgstr "" "lanzadas. Los errores relacionados con la semántica de los sockets o de las " "direcciones lanzan :exc:`OSError` o una de sus subclases." -#: ../Doc/library/socket.rst:247 +#: ../Doc/library/socket.rst:273 msgid "" "Non-blocking mode is supported through :meth:`~socket.setblocking`. A " "generalization of this based on timeouts is supported through :meth:`~socket." @@ -572,28 +649,28 @@ msgstr "" "setblocking`. Se admite una generalización de esto basada en los tiempos de " "espera a través de :meth:`~socket.settimeout`." -#: ../Doc/library/socket.rst:253 +#: ../Doc/library/socket.rst:279 msgid "Module contents" msgstr "Contenido del módulo" -#: ../Doc/library/socket.rst:255 +#: ../Doc/library/socket.rst:281 msgid "The module :mod:`socket` exports the following elements." msgstr "El módulo :mod:`socket` exporta los siguientes elementos." -#: ../Doc/library/socket.rst:259 +#: ../Doc/library/socket.rst:285 msgid "Exceptions" msgstr "Excepciones" -#: ../Doc/library/socket.rst:263 +#: ../Doc/library/socket.rst:289 msgid "A deprecated alias of :exc:`OSError`." msgstr "Un alias en desuso de :exc:`OSError`." -#: ../Doc/library/socket.rst:265 +#: ../Doc/library/socket.rst:291 msgid "Following :pep:`3151`, this class was made an alias of :exc:`OSError`." msgstr "" "Siguiendo :pep:`3151`, es clase fue creada como un alias de :exc:`OSError`." -#: ../Doc/library/socket.rst:271 +#: ../Doc/library/socket.rst:297 msgid "" "A subclass of :exc:`OSError`, this exception is raised for address-related " "errors, i.e. for functions that use *h_errno* in the POSIX C API, including :" @@ -610,12 +687,12 @@ msgstr "" "un valor numérico, mientras que *string* representa la descripción de " "*h_errno*, devuelta por la función :c:func:`hstrerror` C." -#: ../Doc/library/socket.rst:279 ../Doc/library/socket.rst:292 -#: ../Doc/library/socket.rst:305 +#: ../Doc/library/socket.rst:305 ../Doc/library/socket.rst:318 +#: ../Doc/library/socket.rst:331 msgid "This class was made a subclass of :exc:`OSError`." msgstr "Esta clase fue creada como una subclase de :exc:`OSError`." -#: ../Doc/library/socket.rst:284 +#: ../Doc/library/socket.rst:310 msgid "" "A subclass of :exc:`OSError`, this exception is raised for address-related " "errors by :func:`getaddrinfo` and :func:`getnameinfo`. The accompanying " @@ -632,11 +709,11 @@ msgstr "" "`gai_strerror`. El valor numérico *error* coincide con una de las " "constantes :const:`EAI_\\*` definidas en este modulo." -#: ../Doc/library/socket.rst:297 +#: ../Doc/library/socket.rst:323 msgid "A deprecated alias of :exc:`TimeoutError`." msgstr "Un alias obsoleto de :exc:`TimeoutError`." -#: ../Doc/library/socket.rst:299 +#: ../Doc/library/socket.rst:325 msgid "" "A subclass of :exc:`OSError`, this exception is raised when a timeout occurs " "on a socket which has had timeouts enabled via a prior call to :meth:" @@ -651,15 +728,15 @@ msgstr "" "una cadena de caracteres cuyo valor es actualmente siempre “tiempo de " "espera”." -#: ../Doc/library/socket.rst:308 +#: ../Doc/library/socket.rst:334 msgid "This class was made an alias of :exc:`TimeoutError`." msgstr "Esta clase se convirtió en un alias de :exc:`TimeoutError`." -#: ../Doc/library/socket.rst:313 +#: ../Doc/library/socket.rst:339 msgid "Constants" msgstr "Constantes" -#: ../Doc/library/socket.rst:315 +#: ../Doc/library/socket.rst:341 msgid "" "The AF_* and SOCK_* constants are now :class:`AddressFamily` and :class:" "`SocketKind` :class:`.IntEnum` collections." @@ -667,7 +744,7 @@ msgstr "" "Las constantes AF_* y SOCK_* ahora son colecciones: :class:`AddressFamily` " "y :class:`SocketKind` :class:`.IntEnum`." -#: ../Doc/library/socket.rst:324 +#: ../Doc/library/socket.rst:350 msgid "" "These constants represent the address (and protocol) families, used for the " "first argument to :func:`.socket`. If the :const:`AF_UNIX` constant is not " @@ -679,7 +756,7 @@ msgstr "" "`AF_UNIX` no esta definida entonces este protocolo no es compatible. Mas " "constantes podrían estar disponibles dependiendo del sistema." -#: ../Doc/library/socket.rst:336 +#: ../Doc/library/socket.rst:362 msgid "" "These constants represent the socket types, used for the second argument to :" "func:`.socket`. More constants may be available depending on the system. " @@ -691,7 +768,7 @@ msgstr "" "dependiendo del sistema. ( Solamente :const:`SOCK_STREAM` y :const:" "`SOCK_DGRAM` parecen ser útiles en general.)" -#: ../Doc/library/socket.rst:344 +#: ../Doc/library/socket.rst:370 msgid "" "These two constants, if defined, can be combined with the socket types and " "allow you to set some flags atomically (thus avoiding possible race " @@ -701,7 +778,7 @@ msgstr "" "socket y le permiten establecer algunas banderas atómicamente (evitando así " "posibles condiciones de carrera y la necesidad de llamadas separadas)." -#: ../Doc/library/socket.rst:350 +#: ../Doc/library/socket.rst:376 msgid "" "`Secure File Descriptor Handling `_ for a more thorough explanation." @@ -709,11 +786,11 @@ msgstr "" "`Secure File Descriptor Handling `_ para una explicación más completa." -#: ../Doc/library/socket.rst:354 +#: ../Doc/library/socket.rst:379 msgid ":ref:`Availability `: Linux >= 2.6.27." msgstr ":ref:`Availability `: Linux >= 2.6.27." -#: ../Doc/library/socket.rst:372 +#: ../Doc/library/socket.rst:398 msgid "" "Many constants of these forms, documented in the Unix documentation on " "sockets and/or the IP protocol, are also defined in the socket module. They " @@ -729,7 +806,7 @@ msgstr "" "casos, solo se definen los símbolos definidos en los archivos de encabezado " "Unix; para algunos símbolos, se proporcionan valores predeterminados." -#: ../Doc/library/socket.rst:379 +#: ../Doc/library/socket.rst:405 msgid "" "``SO_DOMAIN``, ``SO_PROTOCOL``, ``SO_PEERSEC``, ``SO_PASSSEC``, " "``TCP_USER_TIMEOUT``, ``TCP_CONGESTION`` were added." @@ -737,7 +814,7 @@ msgstr "" "``SO_DOMAIN``, ``SO_PROTOCOL``, ``SO_PEERSEC``, ``SO_PASSSEC``, " "``TCP_USER_TIMEOUT``, ``TCP_CONGESTION`` han sido agregados." -#: ../Doc/library/socket.rst:383 +#: ../Doc/library/socket.rst:409 msgid "" "On Windows, ``TCP_FASTOPEN``, ``TCP_KEEPCNT`` appear if run-time Windows " "supports." @@ -745,11 +822,11 @@ msgstr "" "En Windows, ``TCP_FASTOPEN``, ``TCP_KEEPCNT`` aparecen si el tiempo de " "ejecución de Windows lo admite." -#: ../Doc/library/socket.rst:387 +#: ../Doc/library/socket.rst:413 msgid "``TCP_NOTSENT_LOWAT`` was added." msgstr "``TCP_NOTSENT_LOWAT`` ha sido agregada." -#: ../Doc/library/socket.rst:390 +#: ../Doc/library/socket.rst:416 msgid "" "On Windows, ``TCP_KEEPIDLE``, ``TCP_KEEPINTVL`` appear if run-time Windows " "supports." @@ -757,7 +834,7 @@ msgstr "" "En Windows, ``TCP_KEEPIDLE``, ``TCP_KEEPINTVL`` aparecen si el tiempo de " "ejecución de Windows lo admite." -#: ../Doc/library/socket.rst:393 +#: ../Doc/library/socket.rst:419 msgid "" "``IP_RECVTOS`` was added. Added ``TCP_KEEPALIVE``. On MacOS this constant " "can be used in the same way that ``TCP_KEEPIDLE`` is used on Linux." @@ -765,7 +842,7 @@ msgstr "" "Se agregó ``IP_RECVTOS``. Se agregó ``TCP_KEEPALIVE``. En MacOS, esta " "constante se puede utilizar de la misma forma que ``TCP_KEEPIDLE`` en Linux." -#: ../Doc/library/socket.rst:398 +#: ../Doc/library/socket.rst:424 msgid "" "Added ``TCP_CONNECTION_INFO``. On MacOS this constant can be used in the " "same way that ``TCP_INFO`` is used on Linux and BSD." @@ -773,8 +850,24 @@ msgstr "" "Se agregó ``TCP_CONNECTION_INFO``. En MacOS esta constante se puede utilizar " "de la misma manera que ``TCP_INFO`` se utiliza en Linux y BSD." -#: ../Doc/library/socket.rst:407 ../Doc/library/socket.rst:477 -#: ../Doc/library/socket.rst:488 +#: ../Doc/library/socket.rst:428 +msgid "" +"Added ``SO_RTABLE`` and ``SO_USER_COOKIE``. On OpenBSD and FreeBSD " +"respectively those constants can be used in the same way that ``SO_MARK`` is " +"used on Linux. Also added missing TCP socket options from Linux: " +"``TCP_MD5SIG``, ``TCP_THIN_LINEAR_TIMEOUTS``, ``TCP_THIN_DUPACK``, " +"``TCP_REPAIR``, ``TCP_REPAIR_QUEUE``, ``TCP_QUEUE_SEQ``, " +"``TCP_REPAIR_OPTIONS``, ``TCP_TIMESTAMP``, ``TCP_CC_INFO``, " +"``TCP_SAVE_SYN``, ``TCP_SAVED_SYN``, ``TCP_REPAIR_WINDOW``, " +"``TCP_FASTOPEN_CONNECT``, ``TCP_ULP``, ``TCP_MD5SIG_EXT``, " +"``TCP_FASTOPEN_KEY``, ``TCP_FASTOPEN_NO_COOKIE``, ``TCP_ZEROCOPY_RECEIVE``, " +"``TCP_INQ``, ``TCP_TX_DELAY``. Added ``IP_PKTINFO``, ``IP_UNBLOCK_SOURCE``, " +"``IP_BLOCK_SOURCE``, ``IP_ADD_SOURCE_MEMBERSHIP``, " +"``IP_DROP_SOURCE_MEMBERSHIP``." +msgstr "" + +#: ../Doc/library/socket.rst:447 ../Doc/library/socket.rst:528 +#: ../Doc/library/socket.rst:552 msgid "" "Many constants of these forms, documented in the Linux documentation, are " "also defined in the socket module." @@ -782,15 +875,15 @@ msgstr "" "Muchas constantes de estos formularios, documentadas en la documentación de " "Linux, también se definen en el módulo de socket." -#: ../Doc/library/socket.rst:411 +#: ../Doc/library/socket.rst:450 msgid ":ref:`Availability `: Linux >= 2.6.25, NetBSD >= 8." msgstr ":ref:`Availability `: Linux >= 2.6.25, NetBSD >= 8." -#: ../Doc/library/socket.rst:414 +#: ../Doc/library/socket.rst:454 msgid "NetBSD support was added." msgstr "Se ha agregado compatibilidad con NetBSD." -#: ../Doc/library/socket.rst:420 +#: ../Doc/library/socket.rst:460 msgid "" "CAN_BCM, in the CAN protocol family, is the broadcast manager (BCM) " "protocol. Broadcast manager constants, documented in the Linux " @@ -800,18 +893,18 @@ msgstr "" "de difusión (BCM. Las constantes del administrador de difusión, documentada " "en la documentación de Linux, también esta definidos en el modulo socket." -#: ../Doc/library/socket.rst:425 ../Doc/library/socket.rst:460 +#: ../Doc/library/socket.rst:464 ../Doc/library/socket.rst:499 msgid ":ref:`Availability `: Linux >= 2.6.25." msgstr ":ref:`Availability `: Linux >= 2.6.25." -#: ../Doc/library/socket.rst:427 +#: ../Doc/library/socket.rst:467 msgid "" "The :data:`CAN_BCM_CAN_FD_FRAME` flag is only available on Linux >= 4.8." msgstr "" "El indicador :data:`CAN_BCM_CAN_FD_FRAME` esta solamente disponible en Linux " ">= 4.8." -#: ../Doc/library/socket.rst:433 +#: ../Doc/library/socket.rst:473 msgid "" "Enables CAN FD support in a CAN_RAW socket. This is disabled by default. " "This allows your application to send both CAN and CAN FD frames; however, " @@ -822,15 +915,15 @@ msgstr "" "tramas CAN y CAN FD; sin embargo, debe aceptar las tramas CAN y CAN FD al " "leer desde el socket." -#: ../Doc/library/socket.rst:437 ../Doc/library/socket.rst:448 +#: ../Doc/library/socket.rst:477 ../Doc/library/socket.rst:488 msgid "This constant is documented in the Linux documentation." msgstr "Esta constante se documenta en la documentación de Linux." -#: ../Doc/library/socket.rst:440 +#: ../Doc/library/socket.rst:479 msgid ":ref:`Availability `: Linux >= 3.6." msgstr ":ref:`Availability `: Linux >= 3.6." -#: ../Doc/library/socket.rst:445 +#: ../Doc/library/socket.rst:485 msgid "" "Joins the applied CAN filters such that only CAN frames that match all given " "CAN filters are passed to user space." @@ -838,11 +931,11 @@ msgstr "" "Se une a los filtros CAN aplicados de modo que solo las tramas CAN que " "coinciden con todos los filtros CAN dados se pasan al espacio del usuario." -#: ../Doc/library/socket.rst:451 +#: ../Doc/library/socket.rst:490 msgid ":ref:`Availability `: Linux >= 4.1." msgstr ":ref:`Availability `: Linux >= 4.1." -#: ../Doc/library/socket.rst:456 +#: ../Doc/library/socket.rst:496 msgid "" "CAN_ISOTP, in the CAN protocol family, is the ISO-TP (ISO 15765-2) protocol. " "ISO-TP constants, documented in the Linux documentation." @@ -850,7 +943,7 @@ msgstr "" "CAN_ISOTP, en el protocolo de familia CAN, es el protocolo ISO-TP (ISO " "15765-2). Constantes ISO-TP, documentadas en la documentación Linux." -#: ../Doc/library/socket.rst:465 +#: ../Doc/library/socket.rst:505 msgid "" "CAN_J1939, in the CAN protocol family, is the SAE J1939 protocol. J1939 " "constants, documented in the Linux documentation." @@ -858,19 +951,45 @@ msgstr "" "CAN_J1939, en el protocolo de familias CAN, es el protocolo SAE J1939. " "Constantes J1939, documentadas en el documentación Linux." -#: ../Doc/library/socket.rst:469 +#: ../Doc/library/socket.rst:508 msgid ":ref:`Availability `: Linux >= 5.4." msgstr ":ref:`Availability `: Linux >= 5.4." -#: ../Doc/library/socket.rst:480 -msgid ":ref:`Availability `: Linux >= 2.2." -msgstr ":ref:`Availability `: Linux >= 2.2." +#: ../Doc/library/socket.rst:516 +#, fuzzy +msgid "" +"These two constants, documented in the FreeBSD divert(4) manual page, are " +"also defined in the socket module." +msgstr "" +"Muchas constantes de estos formularios, documentadas en la documentación de " +"Linux, también se definen en el módulo de socket." + +#: ../Doc/library/socket.rst:519 +#, fuzzy +msgid ":ref:`Availability `: FreeBSD >= 14.0." +msgstr ":ref:`Availability `: FreeBSD." + +#: ../Doc/library/socket.rst:536 +msgid "" +":data:`!ETH_P_ALL` can be used in the :class:`~socket.socket` constructor as " +"*proto* for the :const:`AF_PACKET` family in order to capture every packet, " +"regardless of protocol." +msgstr "" + +#: ../Doc/library/socket.rst:540 +msgid "For more information, see the :manpage:`packet(7)` manpage." +msgstr "" + +#: ../Doc/library/socket.rst:542 +#, fuzzy +msgid ":ref:`Availability `: Linux." +msgstr ":ref:`Availability `: Unix." -#: ../Doc/library/socket.rst:492 +#: ../Doc/library/socket.rst:555 msgid ":ref:`Availability `: Linux >= 2.6.30." msgstr ":ref:`Availability `: Linux >= 2.6.30." -#: ../Doc/library/socket.rst:501 +#: ../Doc/library/socket.rst:565 msgid "" "Constants for Windows' WSAIoctl(). The constants are used as arguments to " "the :meth:`~socket.socket.ioctl` method of socket objects." @@ -878,11 +997,11 @@ msgstr "" "Constantes para Windows’ WSAIoctl(). Las constantes se utiliza como " "argumentos al método :meth:`~socket.socket.ioctl` de objetos de sockets." -#: ../Doc/library/socket.rst:504 ../Doc/library/socket.rst:1458 +#: ../Doc/library/socket.rst:568 ../Doc/library/socket.rst:1557 msgid "``SIO_LOOPBACK_FAST_PATH`` was added." msgstr "``SIO_LOOPBACK_FAST_PATH`` ha sido agregado." -#: ../Doc/library/socket.rst:510 +#: ../Doc/library/socket.rst:574 msgid "" "TIPC related constants, matching the ones exported by the C socket API. See " "the TIPC documentation for more information." @@ -891,27 +1010,23 @@ msgstr "" "la API de socket de C. Consulte la documentación de TIPC para obtener más " "información." -#: ../Doc/library/socket.rst:517 +#: ../Doc/library/socket.rst:581 msgid "Constants for Linux Kernel cryptography." msgstr "Constantes para la criptográfica del Kernel de Linux." -#: ../Doc/library/socket.rst:520 ../Doc/library/socket.rst:1767 -msgid ":ref:`Availability `: Linux >= 2.6.38." -msgstr ":ref:`Availability `: Linux >= 2.6.38." - -#: ../Doc/library/socket.rst:529 +#: ../Doc/library/socket.rst:593 msgid "Constants for Linux host/guest communication." msgstr "Constantes para la comunicación host/invitado de Linux." -#: ../Doc/library/socket.rst:532 +#: ../Doc/library/socket.rst:595 msgid ":ref:`Availability `: Linux >= 4.8." msgstr ":ref:`Availability `: Linux >= 4.8." -#: ../Doc/library/socket.rst:538 +#: ../Doc/library/socket.rst:601 msgid ":ref:`Availability `: BSD, macOS." msgstr ":ref:`Availability `: BSD, macOS." -#: ../Doc/library/socket.rst:543 +#: ../Doc/library/socket.rst:607 msgid "" "This constant contains a boolean value which indicates if IPv6 is supported " "on this platform." @@ -919,7 +1034,7 @@ msgstr "" "Esta constante contiene un valor booleano que indica si IPv6 se admite en " "esta plataforma." -#: ../Doc/library/socket.rst:549 +#: ../Doc/library/socket.rst:613 msgid "" "These are string constants containing Bluetooth addresses with special " "meanings. For example, :const:`BDADDR_ANY` can be used to indicate any " @@ -930,7 +1045,7 @@ msgstr "" "indicar cualquier dirección al especificar el socket vinculante con :const:" "`BTPROTO_RFCOMM`." -#: ../Doc/library/socket.rst:558 +#: ../Doc/library/socket.rst:622 msgid "" "For use with :const:`BTPROTO_HCI`. :const:`HCI_FILTER` is not available for " "NetBSD or DragonFlyBSD. :const:`HCI_TIME_STAMP` and :const:`HCI_DATA_DIR` " @@ -940,7 +1055,7 @@ msgstr "" "para NetBSD o DragonFlyBSD. :const:`HCI_TIME_STAMP` y :const:`HCI_DATA_DIR` " "no esta disponible para FreeBSD, NetBSD, o DragonFlyBSD." -#: ../Doc/library/socket.rst:565 +#: ../Doc/library/socket.rst:629 msgid "" "Constant for Qualcomm's IPC router protocol, used to communicate with " "service providing remote processors." @@ -948,11 +1063,7 @@ msgstr "" "Constante para el protocolo de router IPC de Qualcomm, que se utiliza para " "comunicarse con procesadores remotos que brindan servicios." -#: ../Doc/library/socket.rst:568 -msgid ":ref:`Availability `: Linux >= 4.7." -msgstr ":ref:`Availability `: Linux >= 4.7." - -#: ../Doc/library/socket.rst:574 +#: ../Doc/library/socket.rst:638 msgid "" "LOCAL_CREDS and LOCAL_CREDS_PERSISTENT can be used with SOCK_DGRAM, " "SOCK_STREAM sockets, equivalent to Linux/DragonFlyBSD SO_PASSCRED, while " @@ -966,11 +1077,11 @@ msgstr "" "LOCAL_CREDS_PERSISTENT envía para cada lectura, SCM_CREDS2 debe entonces ser " "usado para este último para el tipo de mensaje." -#: ../Doc/library/socket.rst:583 +#: ../Doc/library/socket.rst:647 msgid ":ref:`Availability `: FreeBSD." msgstr ":ref:`Availability `: FreeBSD." -#: ../Doc/library/socket.rst:587 +#: ../Doc/library/socket.rst:651 msgid "" "Constant to optimize CPU locality, to be used in conjunction with :data:" "`SO_REUSEPORT`." @@ -978,25 +1089,42 @@ msgstr "" "Constante para optimizar la localidad CPU, a ser usada en conjunto con :data:" "`SO_REUSEPORT`." -#: ../Doc/library/socket.rst:592 -msgid ":ref:`Availability `: Linux >= 3.9" -msgstr ":ref:`Availability `: Linux >= 3.9" +#: ../Doc/library/socket.rst:671 +#, fuzzy +msgid "Constants for Windows Hyper-V sockets for host/guest communications." +msgstr "Constantes para la comunicación host/invitado de Linux." -#: ../Doc/library/socket.rst:595 +#: ../Doc/library/socket.rst:673 ../Doc/library/socket.rst:880 +#: ../Doc/library/socket.rst:1971 +msgid ":ref:`Availability `: Windows." +msgstr ":ref:`Availability `: Windows." + +#: ../Doc/library/socket.rst:684 +msgid "" +"`IEEE 802.3 protocol number `_. constants." +msgstr "" + +#: ../Doc/library/socket.rst:688 +#, fuzzy +msgid ":ref:`Availability `: Linux, FreeBSD, macOS." +msgstr ":ref:`Availability `: BSD, macOS." + +#: ../Doc/library/socket.rst:694 msgid "Functions" msgstr "Funciones" -#: ../Doc/library/socket.rst:598 +#: ../Doc/library/socket.rst:697 msgid "Creating sockets" msgstr "Creación de sockets" -#: ../Doc/library/socket.rst:600 +#: ../Doc/library/socket.rst:699 msgid "" "The following functions all create :ref:`socket objects `." msgstr "" "Todas las siguientes funciones crean :ref:`socket objects `." -#: ../Doc/library/socket.rst:605 +#: ../Doc/library/socket.rst:704 msgid "" "Create a new socket using the given address family, socket type and protocol " "number. The address family should be :const:`AF_INET` (the default), :const:" @@ -1018,7 +1146,7 @@ msgstr "" "`AF_CAN` el protocolo debería ser uno de :const:`CAN_RAW`, :const:" "`CAN_BCM`, :const:`CAN_ISOTP` o :const:`CAN_J1939`." -#: ../Doc/library/socket.rst:615 +#: ../Doc/library/socket.rst:714 msgid "" "If *fileno* is specified, the values for *family*, *type*, and *proto* are " "auto-detected from the specified file descriptor. Auto-detection can be " @@ -1037,12 +1165,12 @@ msgstr "" "retornara el mismo socket y no un duplicado. Esto puede ayudar a cerrar un " "socket desconectado usando :meth:`socket.close()`." -#: ../Doc/library/socket.rst:624 ../Doc/library/socket.rst:770 -#: ../Doc/library/socket.rst:1277 ../Doc/library/socket.rst:1371 +#: ../Doc/library/socket.rst:723 ../Doc/library/socket.rst:869 +#: ../Doc/library/socket.rst:1376 ../Doc/library/socket.rst:1470 msgid "The newly created socket is :ref:`non-inheritable `." msgstr "El socket recién creado es :ref:`non-inheritable `." -#: ../Doc/library/socket.rst:635 +#: ../Doc/library/socket.rst:734 msgid "" "Raises an :ref:`auditing event ` ``socket.__new__`` with arguments " "``self``, ``family``, ``type``, ``protocol``." @@ -1050,23 +1178,23 @@ msgstr "" "Genera un :ref:`auditing event ` ``socket.__new__`` con los " "argumentos ``self``, ``family``, ``type``, ``protocol``." -#: ../Doc/library/socket.rst:628 +#: ../Doc/library/socket.rst:727 msgid "The AF_CAN family was added. The AF_RDS family was added." msgstr "Se añadió la familia AF_CAN. Se añadió la familia AF_RDS." -#: ../Doc/library/socket.rst:632 +#: ../Doc/library/socket.rst:731 msgid "The CAN_BCM protocol was added." msgstr "El protocolo CAN_BCM ha sido agregado." -#: ../Doc/library/socket.rst:635 ../Doc/library/socket.rst:772 +#: ../Doc/library/socket.rst:734 ../Doc/library/socket.rst:871 msgid "The returned socket is now non-inheritable." msgstr "Los sockets devueltos ahora no son heredables." -#: ../Doc/library/socket.rst:638 +#: ../Doc/library/socket.rst:737 msgid "The CAN_ISOTP protocol was added." msgstr "El protocolo CAN_ISOTP ha sido agregado." -#: ../Doc/library/socket.rst:641 +#: ../Doc/library/socket.rst:740 msgid "" "When :const:`SOCK_NONBLOCK` or :const:`SOCK_CLOEXEC` bit flags are applied " "to *type* they are cleared, and :attr:`socket.type` will not reflect them. " @@ -1076,7 +1204,7 @@ msgstr "" "están aplicadas a *type*, se borran, y :attr:`socket.type` no las reflejará. " "Igual se pasan a la llamada `socket ()` del sistema subyacente. Por lo tanto," -#: ../Doc/library/socket.rst:653 +#: ../Doc/library/socket.rst:752 msgid "" "will still create a non-blocking socket on OSes that support " "``SOCK_NONBLOCK``, but ``sock.type`` will be set to ``socket.SOCK_STREAM``." @@ -1085,15 +1213,15 @@ msgstr "" "``SOCK_NONBLOCK``, pero ``sock.type`` se establecerá en ``socket." "SOCK_STREAM``." -#: ../Doc/library/socket.rst:657 +#: ../Doc/library/socket.rst:756 msgid "The CAN_J1939 protocol was added." msgstr "El protocolo CAN_J1939 ha sido agregado." -#: ../Doc/library/socket.rst:660 +#: ../Doc/library/socket.rst:759 msgid "The IPPROTO_MPTCP protocol was added." msgstr "Se agregó el protocolo IPPROTO_MPTCP." -#: ../Doc/library/socket.rst:665 +#: ../Doc/library/socket.rst:764 msgid "" "Build a pair of connected socket objects using the given address family, " "socket type, and protocol number. Address family, socket type, and protocol " @@ -1108,13 +1236,13 @@ msgstr "" "predeterminada es :const:`AF_UNIX` si se define en la plataforma; de lo " "contrario, el valor predeterminado es :const:`AF_INET`." -#: ../Doc/library/socket.rst:670 +#: ../Doc/library/socket.rst:769 msgid "The newly created sockets are :ref:`non-inheritable `." msgstr "" "Los sockets creados recientemente son :ref:`non-inheritable " "`." -#: ../Doc/library/socket.rst:672 +#: ../Doc/library/socket.rst:771 msgid "" "The returned socket objects now support the whole socket API, rather than a " "subset." @@ -1122,15 +1250,15 @@ msgstr "" "Los objetos de socket devueltos ahora admiten toda la API de socket, en " "lugar de un subconjunto." -#: ../Doc/library/socket.rst:676 +#: ../Doc/library/socket.rst:775 msgid "The returned sockets are now non-inheritable." msgstr "Los sockets devueltos ahora no son heredables." -#: ../Doc/library/socket.rst:679 +#: ../Doc/library/socket.rst:778 msgid "Windows support added." msgstr "Se ha agregado compatibilidad con Windows." -#: ../Doc/library/socket.rst:685 +#: ../Doc/library/socket.rst:784 msgid "" "Connect to a TCP service listening on the internet *address* (a 2-tuple " "``(host, port)``), and return the socket object. This is a higher-level " @@ -1148,7 +1276,7 @@ msgstr "" "sucesivamente hasta que la conexión se realice correctamente. Esto facilita " "la escritura de clientes que sean compatibles con IPv4 e IPv6." -#: ../Doc/library/socket.rst:693 +#: ../Doc/library/socket.rst:792 msgid "" "Passing the optional *timeout* parameter will set the timeout on the socket " "instance before attempting to connect. If no *timeout* is supplied, the " @@ -1159,7 +1287,7 @@ msgstr "" "configuración global de tiempo de espera predeterminada retornada por :func:" "`getdefaulttimeout` es usada." -#: ../Doc/library/socket.rst:698 +#: ../Doc/library/socket.rst:797 msgid "" "If supplied, *source_address* must be a 2-tuple ``(host, port)`` for the " "socket to bind to as its source address before connecting. If host or port " @@ -1170,7 +1298,7 @@ msgstr "" "conectarse. Si el host o el puerto son '' o 0 respectivamente, se utilizará " "el comportamiento predeterminado del sistema operativo." -#: ../Doc/library/socket.rst:702 +#: ../Doc/library/socket.rst:801 msgid "" "When a connection cannot be created, an exception is raised. By default, it " "is the exception from the last address in the list. If *all_errors* is " @@ -1182,26 +1310,28 @@ msgstr "" "es ``True``, es un :exc:`ExceptionGroup` conteniendo los errores de todos " "los intentos." -#: ../Doc/library/socket.rst:707 +#: ../Doc/library/socket.rst:806 msgid "*source_address* was added." msgstr "*source_address* ha sido agregado." -#: ../Doc/library/socket.rst:710 +#: ../Doc/library/socket.rst:809 msgid "*all_errors* was added." msgstr "*all_errors* ha sido agregado." -#: ../Doc/library/socket.rst:716 +#: ../Doc/library/socket.rst:815 +#, fuzzy msgid "" "Convenience function which creates a TCP socket bound to *address* (a 2-" -"tuple ``(host, port)``) and return the socket object." +"tuple ``(host, port)``) and returns the socket object." msgstr "" "Función de conveniencia que crea un socket TCP enlazado a *address* (una " "tupla de 2 ``(host, puerto)``) y devuelve el objeto de socket." -#: ../Doc/library/socket.rst:719 +#: ../Doc/library/socket.rst:818 +#, fuzzy msgid "" "*family* should be either :data:`AF_INET` or :data:`AF_INET6`. *backlog* is " -"the queue size passed to :meth:`socket.listen`; when ``0`` a default " +"the queue size passed to :meth:`socket.listen`; if not specified , a default " "reasonable value is chosen. *reuse_port* dictates whether to set the :data:" "`SO_REUSEPORT` socket option." msgstr "" @@ -1210,7 +1340,7 @@ msgstr "" "predeterminado razonable. *reuse_port* dicta si se debe establecer la opción " "de socket :data:`SO_REUSEPORT`." -#: ../Doc/library/socket.rst:724 +#: ../Doc/library/socket.rst:823 msgid "" "If *dualstack_ipv6* is true and the platform supports it the socket will be " "able to accept both IPv4 and IPv6 connections, else it will raise :exc:" @@ -1233,7 +1363,7 @@ msgstr "" "Linux). Este parámetro se puede utilizar junto con :func:" "`has_dualstack_ipv6`:" -#: ../Doc/library/socket.rst:746 +#: ../Doc/library/socket.rst:845 msgid "" "On POSIX platforms the :data:`SO_REUSEADDR` socket option is set in order to " "immediately reuse previous sockets which were bound on the same *address* " @@ -1243,7 +1373,7 @@ msgstr "" "configurado para inmediatamente rehusar los sockets previos que estaban " "vinculados la misma *address* y permanecer en estado TIME_WAIT." -#: ../Doc/library/socket.rst:754 +#: ../Doc/library/socket.rst:853 msgid "" "Return ``True`` if the platform supports creating a TCP socket which can " "handle both IPv4 and IPv6 connections." @@ -1251,7 +1381,7 @@ msgstr "" "Retorna ``True`` si la plataforma admite la creación de un socket TCP que " "pueda manejar conexiones IPv4 e IPv6." -#: ../Doc/library/socket.rst:761 +#: ../Doc/library/socket.rst:860 msgid "" "Duplicate the file descriptor *fd* (an integer as returned by a file " "object's :meth:`fileno` method) and build a socket object from the result. " @@ -1274,7 +1404,7 @@ msgstr "" "programa como entrada o salida estándar (como un servidor iniciado por el " "demonio inet de Unix). Se supone que el socket está en modo de bloqueo." -#: ../Doc/library/socket.rst:778 +#: ../Doc/library/socket.rst:877 msgid "" "Instantiate a socket from data obtained from the :meth:`socket.share` " "method. The socket is assumed to be in blocking mode." @@ -1282,11 +1412,7 @@ msgstr "" "Cree una instancia de un socket a partir de los datos obtenidos del método :" "meth:`socket.share`. Se supone que el socket está en modo de bloqueo." -#: ../Doc/library/socket.rst:782 ../Doc/library/socket.rst:1873 -msgid ":ref:`Availability `: Windows." -msgstr ":ref:`Availability `: Windows." - -#: ../Doc/library/socket.rst:788 +#: ../Doc/library/socket.rst:887 msgid "" "This is a Python type object that represents the socket object type. It is " "the same as ``type(socket(...))``." @@ -1294,16 +1420,16 @@ msgstr "" "Este es un tipo de objeto Python que representa el tipo de objeto del " "socket. Es lo mismo que decir ``type(socket(…))``." -#: ../Doc/library/socket.rst:793 +#: ../Doc/library/socket.rst:892 msgid "Other functions" msgstr "Otras funciones" -#: ../Doc/library/socket.rst:795 +#: ../Doc/library/socket.rst:894 msgid "The :mod:`socket` module also offers various network-related services:" msgstr "" "El modulo :mod:`socket` también ofrece varios servicios de red relacionados:" -#: ../Doc/library/socket.rst:800 +#: ../Doc/library/socket.rst:899 msgid "" "Close a socket file descriptor. This is like :func:`os.close`, but for " "sockets. On some platforms (most noticeable Windows) :func:`os.close` does " @@ -1313,7 +1439,7 @@ msgstr "" "pero para sockets. En algunas plataformas (la mayoría notable de Windows) :" "func:`os.close` no funciona para descriptores de archivos de socket." -#: ../Doc/library/socket.rst:808 +#: ../Doc/library/socket.rst:907 msgid "" "Translate the *host*/*port* argument into a sequence of 5-tuples that " "contain all the necessary arguments for creating a socket connected to that " @@ -1330,7 +1456,7 @@ msgstr "" "``None`` como el valor del *host* y *port*, pasando ``NULL`` a la API C " "subyacente." -#: ../Doc/library/socket.rst:815 +#: ../Doc/library/socket.rst:914 msgid "" "The *family*, *type* and *proto* arguments can be optionally specified in " "order to narrow the list of addresses returned. Passing zero as a value for " @@ -1348,15 +1474,15 @@ msgstr "" "devueltos. Por ejemplo, :const:`AI_NUMERICHOST` desactivará la resolución de " "nombres de dominio y lanzará un error sí *host* es un nombre de dominio." -#: ../Doc/library/socket.rst:823 +#: ../Doc/library/socket.rst:922 msgid "The function returns a list of 5-tuples with the following structure:" msgstr "La función devuelve una lista de 5 tuplas con la siguiente estructura:" -#: ../Doc/library/socket.rst:825 +#: ../Doc/library/socket.rst:924 msgid "``(family, type, proto, canonname, sockaddr)``" msgstr "``(family, type, proto, canonname, sockaddr)``" -#: ../Doc/library/socket.rst:827 +#: ../Doc/library/socket.rst:926 msgid "" "In these tuples, *family*, *type*, *proto* are all integers and are meant to " "be passed to the :func:`.socket` function. *canonname* will be a string " @@ -1377,7 +1503,7 @@ msgstr "" "tupla de 4 para una :const:`AF_INET6`), y está destinado a ser pasado a el " "método :meth:`socket.connect`." -#: ../Doc/library/socket.rst:846 +#: ../Doc/library/socket.rst:945 msgid "" "Raises an :ref:`auditing event ` ``socket.getaddrinfo`` with " "arguments ``host``, ``port``, ``family``, ``type``, ``protocol``." @@ -1385,7 +1511,7 @@ msgstr "" "Genera un :ref:`auditing event ` ``socket.getaddrinfo`` con los " "argumentos ``host``, ``port``, ``family``, ``type``, ``protocol``." -#: ../Doc/library/socket.rst:839 +#: ../Doc/library/socket.rst:938 msgid "" "The following example fetches address information for a hypothetical TCP " "connection to ``example.org`` on port 80 (results may differ on your system " @@ -1395,12 +1521,12 @@ msgstr "" "conexión TCP hipotética a ``example.org`` en el puerto 80 (los resultados " "pueden diferir en el sistema si IPv6 no está habilitado)::" -#: ../Doc/library/socket.rst:849 +#: ../Doc/library/socket.rst:948 msgid "parameters can now be passed using keyword arguments." msgstr "" "los parámetros ahora se pueden pasar mediante argumentos de palabra clave." -#: ../Doc/library/socket.rst:852 +#: ../Doc/library/socket.rst:951 #, python-format msgid "" "for IPv6 multicast addresses, string representing an address will not " @@ -1409,7 +1535,7 @@ msgstr "" "para direcciones de multidifusión IPv6, la cadena que representa una " "dirección no contendrá partes ``%scope_id``." -#: ../Doc/library/socket.rst:858 +#: ../Doc/library/socket.rst:957 msgid "" "Return a fully qualified domain name for *name*. If *name* is omitted or " "empty, it is interpreted as the local host. To find the fully qualified " @@ -1428,7 +1554,7 @@ msgstr "" "estaba vacío o era igual a ``'0.0.0.0'``, se retorna el nombre de host de :" "func:`gethostname`." -#: ../Doc/library/socket.rst:869 +#: ../Doc/library/socket.rst:968 msgid "" "Translate a host name to IPv4 address format. The IPv4 address is returned " "as a string, such as ``'100.50.200.5'``. If the host name is an IPv4 " @@ -1444,7 +1570,7 @@ msgstr "" "soporta la resolución de nombres IPV6, y :func:`getaddrinfo` debe utilizarse " "en su lugar para compatibilidad con doble pila IPv4/v6." -#: ../Doc/library/socket.rst:884 ../Doc/library/socket.rst:900 +#: ../Doc/library/socket.rst:983 ../Doc/library/socket.rst:999 msgid "" "Raises an :ref:`auditing event ` ``socket.gethostbyname`` with " "argument ``hostname``." @@ -1452,22 +1578,23 @@ msgstr "" "Genera un evento :ref:`auditing ` ``socket.gethostbyname`` con el " "argumento ``hostname``." -#: ../Doc/library/socket.rst:877 ../Doc/library/socket.rst:893 -#: ../Doc/library/socket.rst:906 ../Doc/library/socket.rst:921 -#: ../Doc/library/socket.rst:938 ../Doc/library/socket.rst:949 -#: ../Doc/library/socket.rst:960 ../Doc/library/socket.rst:971 -#: ../Doc/library/socket.rst:1295 ../Doc/library/socket.rst:1342 -#: ../Doc/library/socket.rst:1356 ../Doc/library/socket.rst:1376 -#: ../Doc/library/socket.rst:1423 ../Doc/library/socket.rst:1469 -#: ../Doc/library/socket.rst:1850 ../Doc/library/socket.rst:1860 +#: ../Doc/library/socket.rst:976 ../Doc/library/socket.rst:992 +#: ../Doc/library/socket.rst:1005 ../Doc/library/socket.rst:1020 +#: ../Doc/library/socket.rst:1037 ../Doc/library/socket.rst:1048 +#: ../Doc/library/socket.rst:1059 ../Doc/library/socket.rst:1070 +#: ../Doc/library/socket.rst:1394 ../Doc/library/socket.rst:1441 +#: ../Doc/library/socket.rst:1455 ../Doc/library/socket.rst:1475 +#: ../Doc/library/socket.rst:1522 ../Doc/library/socket.rst:1567 +#: ../Doc/library/socket.rst:1949 ../Doc/library/socket.rst:1959 #, fuzzy msgid ":ref:`Availability `: not WASI." msgstr ":ref:`Availability `: no WASI." -#: ../Doc/library/socket.rst:882 +#: ../Doc/library/socket.rst:981 +#, fuzzy msgid "" -"Translate a host name to IPv4 address format, extended interface. Return a " -"triple ``(hostname, aliaslist, ipaddrlist)`` where *hostname* is the host's " +"Translate a host name to IPv4 address format, extended interface. Return a 3-" +"tuple ``(hostname, aliaslist, ipaddrlist)`` where *hostname* is the host's " "primary host name, *aliaslist* is a (possibly empty) list of alternative " "host names for the same address, and *ipaddrlist* is a list of IPv4 " "addresses for the same interface on the same host (often but not always a " @@ -1485,7 +1612,7 @@ msgstr "" "su lugar, se debe utilizar :func:`getaddrinfo` para el soporte de pila dual " "IPv4 / v6." -#: ../Doc/library/socket.rst:898 +#: ../Doc/library/socket.rst:997 msgid "" "Return a string containing the hostname of the machine where the Python " "interpreter is currently executing." @@ -1493,7 +1620,7 @@ msgstr "" "Retorna una cadena que contenga el nombre de host de la máquina donde se " "está ejecutando actualmente el intérprete de Python." -#: ../Doc/library/socket.rst:910 +#: ../Doc/library/socket.rst:1009 msgid "" "Raises an :ref:`auditing event ` ``socket.gethostname`` with no " "arguments." @@ -1501,7 +1628,7 @@ msgstr "" "Genera un :ref:`auditing event ` ``socket.gethostname`` sin " "argumentos." -#: ../Doc/library/socket.rst:903 +#: ../Doc/library/socket.rst:1002 msgid "" "Note: :func:`gethostname` doesn't always return the fully qualified domain " "name; use :func:`getfqdn` for that." @@ -1509,9 +1636,10 @@ msgstr "" "Nota: :func:`gethostname` no siempre retorna el nombre de dominio completo, " "usa :func:`getfqdn` para eso." -#: ../Doc/library/socket.rst:911 +#: ../Doc/library/socket.rst:1010 +#, fuzzy msgid "" -"Return a triple ``(hostname, aliaslist, ipaddrlist)`` where *hostname* is " +"Return a 3-tuple ``(hostname, aliaslist, ipaddrlist)`` where *hostname* is " "the primary host name responding to the given *ip_address*, *aliaslist* is a " "(possibly empty) list of alternative host names for the same address, and " "*ipaddrlist* is a list of IPv4/v6 addresses for the same interface on the " @@ -1527,7 +1655,7 @@ msgstr "" "dirección ). Para encontrar el nombre de dominio completo, use la función :" "func:`getfqdn`. :func:`gethostbyaddr` admite tanto IPv4 como IPv6." -#: ../Doc/library/socket.rst:928 +#: ../Doc/library/socket.rst:1027 msgid "" "Raises an :ref:`auditing event ` ``socket.gethostbyaddr`` with " "argument ``ip_address``." @@ -1535,7 +1663,7 @@ msgstr "" "Generar un :ref:`auditing event ` ``socket.gethostbyaddr`` con los " "argumentos ``ip_address``." -#: ../Doc/library/socket.rst:926 +#: ../Doc/library/socket.rst:1025 msgid "" "Translate a socket address *sockaddr* into a 2-tuple ``(host, port)``. " "Depending on the settings of *flags*, the result can contain a fully " @@ -1548,7 +1676,7 @@ msgstr "" "*host*. De igual manera, *port* puede contener un nombre de puerto de cadena " "de caracteres o un numero de puerto numérico." -#: ../Doc/library/socket.rst:931 +#: ../Doc/library/socket.rst:1030 #, python-format msgid "" "For IPv6 addresses, ``%scope_id`` is appended to the host part if *sockaddr* " @@ -1558,14 +1686,14 @@ msgstr "" "*sockaddr* contiene *scopeid* significativo. Generalmente esto sucede para " "las direcciones de multidifusión." -#: ../Doc/library/socket.rst:934 +#: ../Doc/library/socket.rst:1033 msgid "" "For more information about *flags* you can consult :manpage:`getnameinfo(3)`." msgstr "" "Para mas información sobre *flags* pueden consultar :manpage:" "`getnameinfo(3)`." -#: ../Doc/library/socket.rst:945 +#: ../Doc/library/socket.rst:1044 msgid "" "Raises an :ref:`auditing event ` ``socket.getnameinfo`` with " "argument ``sockaddr``." @@ -1573,7 +1701,7 @@ msgstr "" "Plantea un :ref:`auditing event ` ``socket.getnameinfo`` con el " "argumento ``sockaddr``." -#: ../Doc/library/socket.rst:943 +#: ../Doc/library/socket.rst:1042 msgid "" "Translate an internet protocol name (for example, ``'icmp'``) to a constant " "suitable for passing as the (optional) third argument to the :func:`.socket` " @@ -1588,7 +1716,7 @@ msgstr "" "protocolo correcto se elige automáticamente si el protocolo se omite o se " "pone a cero." -#: ../Doc/library/socket.rst:954 +#: ../Doc/library/socket.rst:1053 msgid "" "Translate an internet service name and protocol name to a port number for " "that service. The optional protocol name, if given, should be ``'tcp'`` or " @@ -1599,7 +1727,7 @@ msgstr "" "proporciona, debe ser ``'tcp'`` o ``'udp'``; de lo contrario, cualquier " "protocolo coincidirá." -#: ../Doc/library/socket.rst:967 +#: ../Doc/library/socket.rst:1066 msgid "" "Raises an :ref:`auditing event ` ``socket.getservbyname`` with " "arguments ``servicename``, ``protocolname``." @@ -1607,7 +1735,7 @@ msgstr "" "Genera un :ref:`auditing event ` ``socket.getservbyname`` con los " "argumentos ``servicename``, ``protocolname``." -#: ../Doc/library/socket.rst:965 +#: ../Doc/library/socket.rst:1064 msgid "" "Translate an internet port number and protocol name to a service name for " "that service. The optional protocol name, if given, should be ``'tcp'`` or " @@ -1618,7 +1746,7 @@ msgstr "" "proporciona, debe ser ``'tcp'`` o ``'udp'``; de lo contrario, cualquier " "protocolo coincidirá." -#: ../Doc/library/socket.rst:978 +#: ../Doc/library/socket.rst:1077 msgid "" "Raises an :ref:`auditing event ` ``socket.getservbyport`` with " "arguments ``port``, ``protocolname``." @@ -1626,7 +1754,7 @@ msgstr "" "Genera un :ref:`auditing event ` ``socket.getservbyport`` con los " "argumentos ``port``, ``protocolname``." -#: ../Doc/library/socket.rst:976 +#: ../Doc/library/socket.rst:1075 msgid "" "Convert 32-bit positive integers from network to host byte order. On " "machines where the host byte order is the same as network byte order, this " @@ -1637,7 +1765,7 @@ msgstr "" "red, se trata de un no-op; de lo contrario, realiza una operación de " "intercambio de 4 bytes." -#: ../Doc/library/socket.rst:983 +#: ../Doc/library/socket.rst:1082 msgid "" "Convert 16-bit positive integers from network to host byte order. On " "machines where the host byte order is the same as network byte order, this " @@ -1648,13 +1776,13 @@ msgstr "" "red, se trata de un no-op; de lo contrario, realiza una operación de " "intercambio de 2 bytes." -#: ../Doc/library/socket.rst:987 ../Doc/library/socket.rst:1005 +#: ../Doc/library/socket.rst:1086 ../Doc/library/socket.rst:1104 msgid "" "Raises :exc:`OverflowError` if *x* does not fit in a 16-bit unsigned integer." msgstr "" "Lanza :exc:`OverflowError` si *x* no cabe en un entero sin signo de 16 bits." -#: ../Doc/library/socket.rst:994 +#: ../Doc/library/socket.rst:1093 msgid "" "Convert 32-bit positive integers from host to network byte order. On " "machines where the host byte order is the same as network byte order, this " @@ -1665,7 +1793,7 @@ msgstr "" "de red, se trata de un no-op; de lo contrario, realiza una operación de " "intercambio de 4 bytes." -#: ../Doc/library/socket.rst:1001 +#: ../Doc/library/socket.rst:1100 msgid "" "Convert 16-bit positive integers from host to network byte order. On " "machines where the host byte order is the same as network byte order, this " @@ -1676,7 +1804,7 @@ msgstr "" "de red, se trata de un no-op; de lo contrario, realiza una operación de " "intercambio de 2 bytes." -#: ../Doc/library/socket.rst:1012 +#: ../Doc/library/socket.rst:1111 msgid "" "Convert an IPv4 address from dotted-quad string format (for example, " "'123.45.67.89') to 32-bit packed binary format, as a bytes object four " @@ -1691,7 +1819,7 @@ msgstr "" "de tipo :c:struct:`in_addr`, que es el tipo C para el binario empaquetado de " "32 bits que devuelve esta función." -#: ../Doc/library/socket.rst:1018 +#: ../Doc/library/socket.rst:1117 msgid "" ":func:`inet_aton` also accepts strings with less than three dots; see the " "Unix manual page :manpage:`inet(3)` for details." @@ -1700,7 +1828,7 @@ msgstr "" "puntos, observar la pagina del manual Unix :manpage:`inet(3)` para mas " "detalles." -#: ../Doc/library/socket.rst:1021 +#: ../Doc/library/socket.rst:1120 msgid "" "If the IPv4 address string passed to this function is invalid, :exc:" "`OSError` will be raised. Note that exactly what is valid depends on the " @@ -1710,7 +1838,7 @@ msgstr "" "`OSError` se lanzará. Tenga en cuenta que exactamente lo que es valido " "depende de la implementación C de :c:func:`inet_aton`." -#: ../Doc/library/socket.rst:1025 +#: ../Doc/library/socket.rst:1124 msgid "" ":func:`inet_aton` does not support IPv6, and :func:`inet_pton` should be " "used instead for IPv4/v6 dual stack support." @@ -1718,7 +1846,7 @@ msgstr "" ":func:`inet_aton` no admite IPV6, y :func:`inet_pton` deberían utilizarse en " "su lugar para compatibilidad con doble pilas IPV4/v6." -#: ../Doc/library/socket.rst:1031 +#: ../Doc/library/socket.rst:1130 msgid "" "Convert a 32-bit packed IPv4 address (a :term:`bytes-like object` four bytes " "in length) to its standard dotted-quad string representation (for example, " @@ -1734,7 +1862,7 @@ msgstr "" "struct:`in_addr`, que es el tipo C para los datos binarios empaquetados de " "32 bits que esta función toma como argumento." -#: ../Doc/library/socket.rst:1038 +#: ../Doc/library/socket.rst:1137 msgid "" "If the byte sequence passed to this function is not exactly 4 bytes in " "length, :exc:`OSError` will be raised. :func:`inet_ntoa` does not support " @@ -1746,7 +1874,7 @@ msgstr "" "y :func:`inet_ntop` debe utilizarse en su lugar para compatibilidad con " "doble pila IPv4 / v6." -#: ../Doc/library/socket.rst:1049 +#: ../Doc/library/socket.rst:1148 msgid "" "Convert an IP address from its family-specific string format to a packed, " "binary format. :func:`inet_pton` is useful when a library or network " @@ -1758,7 +1886,7 @@ msgstr "" "una librería o protocolo de red llama desde un objeto de tipo :c:struct:" "`in_addr` (similar a :func:`inet_aton`) o :c:struct:`in6_addr`." -#: ../Doc/library/socket.rst:1054 +#: ../Doc/library/socket.rst:1153 msgid "" "Supported values for *address_family* are currently :const:`AF_INET` and :" "const:`AF_INET6`. If the IP address string *ip_string* is invalid, :exc:" @@ -1772,15 +1900,15 @@ msgstr "" "es válido depende tanto del valor de *address_family* como de la " "implementación subyacente de :c:func:`inet_pton`." -#: ../Doc/library/socket.rst:1061 ../Doc/library/socket.rst:1081 +#: ../Doc/library/socket.rst:1159 ../Doc/library/socket.rst:1179 msgid ":ref:`Availability `: Unix, Windows." msgstr ":ref:`Availability `: Unix, Windows." -#: ../Doc/library/socket.rst:1062 ../Doc/library/socket.rst:1082 +#: ../Doc/library/socket.rst:1161 ../Doc/library/socket.rst:1181 msgid "Windows support added" msgstr "Se ha añadido compatibilidad con Windows" -#: ../Doc/library/socket.rst:1068 +#: ../Doc/library/socket.rst:1167 msgid "" "Convert a packed IP address (a :term:`bytes-like object` of some number of " "bytes) to its standard, family-specific string representation (for example, " @@ -1795,7 +1923,7 @@ msgstr "" "de tipo :c:struct:`in_addr` (similar para :func:`inet_ntoa`) o :c:struct:" "`in6_addr`." -#: ../Doc/library/socket.rst:1075 +#: ../Doc/library/socket.rst:1174 msgid "" "Supported values for *address_family* are currently :const:`AF_INET` and :" "const:`AF_INET6`. If the bytes object *packed_ip* is not the correct length " @@ -1808,7 +1936,7 @@ msgstr "" "`ValueError` podría generarse. :exc:`OSError` se genera para errores desde " "la llamada a :func:`inet_ntop`." -#: ../Doc/library/socket.rst:1097 +#: ../Doc/library/socket.rst:1196 msgid "" "Return the total length, without trailing padding, of an ancillary data item " "with associated data of the given *length*. This value can often be used as " @@ -1826,16 +1954,17 @@ msgstr "" "relleno, incluso cuando el elemento será el último en el búfer. Genera :exc:" "`OverflowError` si *length* está fuera del rango de valores permitido." +#: ../Doc/library/socket.rst:1205 ../Doc/library/socket.rst:1228 #, fuzzy msgid ":ref:`Availability `: Unix, not Emscripten, not WASI." msgstr ":ref:`Availability `: Unix, no Emscripten, no WASI." -#: ../Doc/library/socket.rst:1108 ../Doc/library/socket.rst:1598 -#: ../Doc/library/socket.rst:1642 ../Doc/library/socket.rst:1750 +#: ../Doc/library/socket.rst:1207 ../Doc/library/socket.rst:1697 +#: ../Doc/library/socket.rst:1741 ../Doc/library/socket.rst:1849 msgid "Most Unix platforms." msgstr "La mayoría de las plataformas Unix." -#: ../Doc/library/socket.rst:1115 +#: ../Doc/library/socket.rst:1214 msgid "" "Return the buffer size needed for :meth:`~socket.recvmsg` to receive an " "ancillary data item with associated data of the given *length*, along with " @@ -1851,7 +1980,7 @@ msgstr "" "para los datos asociados con la longitudes. Genera :exc:`OverflowError` si " "*length* está fuera del rango de valores permitido." -#: ../Doc/library/socket.rst:1123 +#: ../Doc/library/socket.rst:1222 msgid "" "Note that some systems might support ancillary data without providing this " "function. Also note that setting the buffer size using the results of this " @@ -1864,11 +1993,11 @@ msgstr "" "precisión la cantidad de datos auxiliares que se pueden recibir, ya que los " "datos adicionales pueden caber en el área de relleno." -#: ../Doc/library/socket.rst:1131 +#: ../Doc/library/socket.rst:1230 msgid "most Unix platforms." msgstr "la mayoría de las plataformas Unix." -#: ../Doc/library/socket.rst:1138 +#: ../Doc/library/socket.rst:1237 msgid "" "Return the default timeout in seconds (float) for new socket objects. A " "value of ``None`` indicates that new socket objects have no timeout. When " @@ -1879,7 +2008,7 @@ msgstr "" "del nuevo socket no tiene un tiempo de espera. Cuando el modulo socket es " "importado primero, por defecto es ``None``." -#: ../Doc/library/socket.rst:1145 +#: ../Doc/library/socket.rst:1244 msgid "" "Set the default timeout in seconds (float) for new socket objects. When the " "socket module is first imported, the default is ``None``. See :meth:" @@ -1890,7 +2019,7 @@ msgstr "" "valor por defecto es ``None``. Observar :meth:`~socket.settimeout` para " "posible valores y sus respectivos significados." -#: ../Doc/library/socket.rst:1153 +#: ../Doc/library/socket.rst:1252 msgid "" "Set the machine's hostname to *name*. This will raise an :exc:`OSError` if " "you don't have enough rights." @@ -1898,7 +2027,7 @@ msgstr "" "Establece el nombre de host de la maquina en *name*. Esto genera un :exc:" "`OSError` si no tiene suficientes derechos." -#: ../Doc/library/socket.rst:1165 +#: ../Doc/library/socket.rst:1264 msgid "" "Raises an :ref:`auditing event ` ``socket.sethostname`` with " "argument ``name``." @@ -1906,11 +2035,12 @@ msgstr "" "Plantea un :ref:`auditing event ` ``socket.sethostname`` con el " "argumento ``name``." -#: ../Doc/library/socket.rst:1159 +#: ../Doc/library/socket.rst:1257 ../Doc/library/socket.rst:1695 +#: ../Doc/library/socket.rst:1739 msgid ":ref:`Availability `: Unix." msgstr ":ref:`Availability `: Unix." -#: ../Doc/library/socket.rst:1165 +#: ../Doc/library/socket.rst:1264 msgid "" "Return a list of network interface information (index int, name string) " "tuples. :exc:`OSError` if the system call fails." @@ -1919,20 +2049,21 @@ msgstr "" "cadena de nombre). :exc:`OSError` si se produce un error en la llamada del " "sistema." -#: ../Doc/library/socket.rst:1170 ../Doc/library/socket.rst:1197 -#: ../Doc/library/socket.rst:1214 +#: ../Doc/library/socket.rst:1268 ../Doc/library/socket.rst:1295 +#: ../Doc/library/socket.rst:1312 ../Doc/library/socket.rst:1329 +#: ../Doc/library/socket.rst:1343 #, fuzzy msgid "" ":ref:`Availability `: Unix, Windows, not Emscripten, not WASI." msgstr "" ":ref:`Availability `: Unix, Windows, no Emscripten, no WASI." -#: ../Doc/library/socket.rst:1173 ../Doc/library/socket.rst:1200 -#: ../Doc/library/socket.rst:1217 +#: ../Doc/library/socket.rst:1272 ../Doc/library/socket.rst:1299 +#: ../Doc/library/socket.rst:1316 msgid "Windows support was added." msgstr "Se ha agregado compatibilidad con Windows." -#: ../Doc/library/socket.rst:1178 +#: ../Doc/library/socket.rst:1277 msgid "" "On Windows network interfaces have different names in different contexts " "(all names are examples):" @@ -1940,23 +2071,23 @@ msgstr "" "En Windows las interfaces de redes tienen diferentes nombres en diferentes " "contextos (todos los nombres son ejemplos):" -#: ../Doc/library/socket.rst:1181 +#: ../Doc/library/socket.rst:1280 msgid "UUID: ``{FB605B73-AAC2-49A6-9A2F-25416AEA0573}``" msgstr "UUID: ``{FB605B73-AAC2-49A6-9A2F-25416AEA0573}``" -#: ../Doc/library/socket.rst:1182 +#: ../Doc/library/socket.rst:1281 msgid "name: ``ethernet_32770``" msgstr "nombre: ``ethernet_32770``" -#: ../Doc/library/socket.rst:1183 +#: ../Doc/library/socket.rst:1282 msgid "friendly name: ``vEthernet (nat)``" msgstr "nombre amigable: ``vEthernet (nat)``" -#: ../Doc/library/socket.rst:1184 +#: ../Doc/library/socket.rst:1283 msgid "description: ``Hyper-V Virtual Ethernet Adapter``" msgstr "descripción: ``Hyper-V Virtual Ethernet Adapter``" -#: ../Doc/library/socket.rst:1186 +#: ../Doc/library/socket.rst:1285 msgid "" "This function returns names of the second form from the list, " "``ethernet_32770`` in this example case." @@ -1964,7 +2095,7 @@ msgstr "" "Esta función retorna los nombres del segundo formulario de la lista, en este " "caso de ejemplo ``ethernet_32770``." -#: ../Doc/library/socket.rst:1192 +#: ../Doc/library/socket.rst:1291 msgid "" "Return a network interface index number corresponding to an interface name. :" "exc:`OSError` if no interface with the given name exists." @@ -1973,12 +2104,12 @@ msgstr "" "de interfaz. :exc:`OSError` si no existe ninguna interfaz con el nombre " "especificado." -#: ../Doc/library/socket.rst:1204 ../Doc/library/socket.rst:1221 +#: ../Doc/library/socket.rst:1303 ../Doc/library/socket.rst:1320 msgid "\"Interface name\" is a name as documented in :func:`if_nameindex`." msgstr "" "“\\”Interface name\\” es un nombre como se documenta en :func:`if_nameindex`." -#: ../Doc/library/socket.rst:1209 +#: ../Doc/library/socket.rst:1308 msgid "" "Return a network interface name corresponding to an interface index number. :" "exc:`OSError` if no interface with the given index exists." @@ -1986,7 +2117,7 @@ msgstr "" "Retorna un nombre de interfaz de red correspondiente a un número de índice " "de interfaz. :exc:`OSError` si no existe ninguna interfaz con el índice dado." -#: ../Doc/library/socket.rst:1226 +#: ../Doc/library/socket.rst:1325 msgid "" "Send the list of file descriptors *fds* over an :const:`AF_UNIX` socket " "*sock*. The *fds* parameter is a sequence of file descriptors. Consult :meth:" @@ -1997,7 +2128,7 @@ msgstr "" "de archivo. Consulte :meth:`sendmsg` para obtener la documentación de estos " "parámetros." -#: ../Doc/library/socket.rst:1232 ../Doc/library/socket.rst:1246 +#: ../Doc/library/socket.rst:1331 ../Doc/library/socket.rst:1345 msgid "" "Unix platforms supporting :meth:`~socket.sendmsg` and :const:`SCM_RIGHTS` " "mechanism." @@ -2005,7 +2136,7 @@ msgstr "" "Plataformas Unix que soporten :meth:`~socket.sendmsg` y el mecanismo :const:" "`SCM_RIGHTS`." -#: ../Doc/library/socket.rst:1240 +#: ../Doc/library/socket.rst:1339 msgid "" "Receive up to *maxfds* file descriptors from an :const:`AF_UNIX` socket " "*sock*. Return ``(msg, list(fds), flags, addr)``. Consult :meth:`recvmsg` " @@ -2015,17 +2146,17 @@ msgstr "" "`AF_UNIX` *sock*. Retorna ``(msg, list(fds), flags, addr)``. Consulte :meth:" "`recvmsg` para obtener la documentación de estos parámetros." -#: ../Doc/library/socket.rst:1253 +#: ../Doc/library/socket.rst:1352 msgid "Any truncated integers at the end of the list of file descriptors." msgstr "" "Cualquier número entero truncado al final de la lista de descriptores de " "archivo." -#: ../Doc/library/socket.rst:1259 +#: ../Doc/library/socket.rst:1358 msgid "Socket Objects" msgstr "Objetos Socket" -#: ../Doc/library/socket.rst:1261 +#: ../Doc/library/socket.rst:1360 msgid "" "Socket objects have the following methods. Except for :meth:`~socket." "makefile`, these correspond to Unix system calls applicable to sockets." @@ -2034,7 +2165,7 @@ msgstr "" "`~socket.makefile`, esto corresponde al sistema de llamadas Unix para " "sockets." -#: ../Doc/library/socket.rst:1265 +#: ../Doc/library/socket.rst:1364 msgid "" "Support for the :term:`context manager` protocol was added. Exiting the " "context manager is equivalent to calling :meth:`~socket.close`." @@ -2042,7 +2173,7 @@ msgstr "" "El soporte para el protocolo :term:`context manager` ha sido agregado. Salir " "del gestor de contexto es equivalente para el llamado :meth:`~socket.close`." -#: ../Doc/library/socket.rst:1272 +#: ../Doc/library/socket.rst:1371 msgid "" "Accept a connection. The socket must be bound to an address and listening " "for connections. The return value is a pair ``(conn, address)`` where *conn* " @@ -2056,14 +2187,14 @@ msgstr "" "información en la conexión, y *address* es la dirección vinculada al socket " "en el extremo de la conexión." -#: ../Doc/library/socket.rst:1279 ../Doc/library/socket.rst:1373 +#: ../Doc/library/socket.rst:1378 ../Doc/library/socket.rst:1472 msgid "The socket is now non-inheritable." msgstr "El socket ahora no es heredable." -#: ../Doc/library/socket.rst:1282 ../Doc/library/socket.rst:1511 -#: ../Doc/library/socket.rst:1525 ../Doc/library/socket.rst:1602 -#: ../Doc/library/socket.rst:1675 ../Doc/library/socket.rst:1694 -#: ../Doc/library/socket.rst:1711 ../Doc/library/socket.rst:1756 +#: ../Doc/library/socket.rst:1381 ../Doc/library/socket.rst:1610 +#: ../Doc/library/socket.rst:1624 ../Doc/library/socket.rst:1701 +#: ../Doc/library/socket.rst:1774 ../Doc/library/socket.rst:1793 +#: ../Doc/library/socket.rst:1810 ../Doc/library/socket.rst:1855 msgid "" "If the system call is interrupted and the signal handler does not raise an " "exception, the method now retries the system call instead of raising an :exc:" @@ -2074,7 +2205,7 @@ msgstr "" "lugar de generar una excepción :exc:`InterruptedError` (consulte :pep:`475` " "para la lógica)." -#: ../Doc/library/socket.rst:1290 +#: ../Doc/library/socket.rst:1389 msgid "" "Bind the socket to *address*. The socket must not already be bound. (The " "format of *address* depends on the address family --- see above.)" @@ -2082,7 +2213,7 @@ msgstr "" "Enlaza el socket a *address*. El socket no debe estar ya unido. (El formato " "de *address* depende de la familia de direcciones, consulte más arriba)." -#: ../Doc/library/socket.rst:1302 +#: ../Doc/library/socket.rst:1401 msgid "" "Raises an :ref:`auditing event ` ``socket.bind`` with arguments " "``self``, ``address``." @@ -2090,7 +2221,7 @@ msgstr "" "Genera un :ref:`auditing event ` ``socket.getaddrinfo`` con los " "argumentos ``host``, ``port``, ``family``, ``type``, ``protocol``." -#: ../Doc/library/socket.rst:1300 +#: ../Doc/library/socket.rst:1399 msgid "" "Mark the socket closed. The underlying system resource (e.g. a file " "descriptor) is also closed when all file objects from :meth:`makefile()` are " @@ -2104,7 +2235,7 @@ msgstr "" "operaciones futuras en el objeto socket fallarán. El extremo remoto no " "recibirá más datos (después de que se vacíen los datos en cola)." -#: ../Doc/library/socket.rst:1306 +#: ../Doc/library/socket.rst:1405 msgid "" "Sockets are automatically closed when they are garbage-collected, but it is " "recommended to :meth:`close` them explicitly, or to use a :keyword:`with` " @@ -2114,7 +2245,7 @@ msgstr "" "recomienda :meth:`cerrarlos` explícitamente, o usar una instrucción :keyword:" "`with` alrededor de ellos." -#: ../Doc/library/socket.rst:1310 +#: ../Doc/library/socket.rst:1409 msgid "" ":exc:`OSError` is now raised if an error occurs when the underlying :c:func:" "`close` call is made." @@ -2122,7 +2253,7 @@ msgstr "" ":exc:`OSError` ahora se lanza si se produce un error cuando se realiza la " "llamada :c:func:`close` subyacente." -#: ../Doc/library/socket.rst:1316 +#: ../Doc/library/socket.rst:1415 msgid "" ":meth:`close()` releases the resource associated with a connection but does " "not necessarily close the connection immediately. If you want to close the " @@ -2133,7 +2264,7 @@ msgstr "" "necesariamente cierra la conexión inmediatamente. Si desea cerrar la " "conexión a tiempo, llame a :meth:`shutdown()` antes de :meth:`close()`." -#: ../Doc/library/socket.rst:1324 +#: ../Doc/library/socket.rst:1423 msgid "" "Connect to a remote socket at *address*. (The format of *address* depends on " "the address family --- see above.)" @@ -2141,7 +2272,7 @@ msgstr "" "Conectar a un socket remoto en *address*. (El formato de *address* depende " "de la familia de direcciones --- ver arriba.)" -#: ../Doc/library/socket.rst:1327 +#: ../Doc/library/socket.rst:1426 msgid "" "If the connection is interrupted by a signal, the method waits until the " "connection completes, or raise a :exc:`TimeoutError` on timeout, if the " @@ -2157,7 +2288,7 @@ msgstr "" "excepción :exc:`InterruptedError` si la conexión es interrumpida por una " "señal (o la excepción lanzada por el manejador de señales)." -#: ../Doc/library/socket.rst:1343 ../Doc/library/socket.rst:1363 +#: ../Doc/library/socket.rst:1442 ../Doc/library/socket.rst:1462 msgid "" "Raises an :ref:`auditing event ` ``socket.connect`` with arguments " "``self``, ``address``." @@ -2165,7 +2296,7 @@ msgstr "" "Genera un :ref:`auditing event ` ``socket.connect`` con los " "argumentos ``self``, ``address``." -#: ../Doc/library/socket.rst:1336 +#: ../Doc/library/socket.rst:1435 msgid "" "The method now waits until the connection completes instead of raising an :" "exc:`InterruptedError` exception if the connection is interrupted by a " @@ -2178,7 +2309,7 @@ msgstr "" "bloqueando o tiene un tiempo de espera (consulte el :pep:`475` para la razón " "de ser)." -#: ../Doc/library/socket.rst:1347 +#: ../Doc/library/socket.rst:1446 msgid "" "Like ``connect(address)``, but return an error indicator instead of raising " "an exception for errors returned by the C-level :c:func:`connect` call " @@ -2194,7 +2325,7 @@ msgstr "" "éxito, caso contrario es el valor de la variable :c:data:`errno`. Esto es " "útil para admitir, por ejemplo, conexiones asincrónicas." -#: ../Doc/library/socket.rst:1360 +#: ../Doc/library/socket.rst:1459 msgid "" "Put the socket object into closed state without actually closing the " "underlying file descriptor. The file descriptor is returned, and can be " @@ -2204,11 +2335,11 @@ msgstr "" "descriptor de archivo subyacente. Se devuelve el descriptor de archivo y se " "puede reutilizar para otros fines." -#: ../Doc/library/socket.rst:1369 +#: ../Doc/library/socket.rst:1468 msgid "Duplicate the socket." msgstr "Duplica el socket." -#: ../Doc/library/socket.rst:1381 +#: ../Doc/library/socket.rst:1480 msgid "" "Return the socket's file descriptor (a small integer), or -1 on failure. " "This is useful with :func:`select.select`." @@ -2216,7 +2347,7 @@ msgstr "" "Retorna un archivo descriptor del socket (un entero pequeño), o -1 si falla. " "Esto es útil con :func:`select.select`." -#: ../Doc/library/socket.rst:1384 +#: ../Doc/library/socket.rst:1483 msgid "" "Under Windows the small integer returned by this method cannot be used where " "a file descriptor can be used (such as :func:`os.fdopen`). Unix does not " @@ -2226,7 +2357,7 @@ msgstr "" "donde un descriptor de un archivo pueda ser usado (como una :func:`os." "fdopen`). Unix no tiene esta limitación." -#: ../Doc/library/socket.rst:1390 +#: ../Doc/library/socket.rst:1489 msgid "" "Get the :ref:`inheritable flag ` of the socket's file " "descriptor or socket's handle: ``True`` if the socket can be inherited in " @@ -2236,7 +2367,7 @@ msgstr "" "archivo del socket o el controlador del socket: ``True`` si el socket puede " "ser heredada en procesos secundarios, ``False`` si falla." -#: ../Doc/library/socket.rst:1399 +#: ../Doc/library/socket.rst:1498 msgid "" "Return the remote address to which the socket is connected. This is useful " "to find out the port number of a remote IPv4/v6 socket, for instance. (The " @@ -2248,7 +2379,7 @@ msgstr "" "(El formato de la dirección devuelta depende de la familia de direcciones, " "consulte más arriba). En algunos sistemas, esta función no es compatible." -#: ../Doc/library/socket.rst:1407 +#: ../Doc/library/socket.rst:1506 msgid "" "Return the socket's own address. This is useful to find out the port number " "of an IPv4/v6 socket, for instance. (The format of the address returned " @@ -2259,7 +2390,7 @@ msgstr "" "dirección devuelta depende de la familia de direcciones, consulte más " "arriba)." -#: ../Doc/library/socket.rst:1414 +#: ../Doc/library/socket.rst:1513 msgid "" "Return the value of the given socket option (see the Unix man page :manpage:" "`getsockopt(2)`). The needed symbolic constants (:const:`SO_\\*` etc.) are " @@ -2280,18 +2411,19 @@ msgstr "" "(consulte el módulo integrado opcional :mod:`struct` para obtener una manera " "de decodificar las estructuras C codificadas como cadenas de bytes)." -#: ../Doc/library/socket.rst:1428 +#: ../Doc/library/socket.rst:1527 msgid "" "Return ``True`` if socket is in blocking mode, ``False`` if in non-blocking." msgstr "" "Retorna ``True`` si el socket está en modo de bloqueo, ``False`` si está en " "sin bloqueo." -#: ../Doc/library/socket.rst:1431 -msgid "This is equivalent to checking ``socket.gettimeout() == 0``." +#: ../Doc/library/socket.rst:1530 +#, fuzzy +msgid "This is equivalent to checking ``socket.gettimeout() != 0``." msgstr "Esto es equivalente a comprobar ``socket.gettimeout() == 0``." -#: ../Doc/library/socket.rst:1438 +#: ../Doc/library/socket.rst:1537 msgid "" "Return the timeout in seconds (float) associated with socket operations, or " "``None`` if no timeout is set. This reflects the last call to :meth:" @@ -2306,11 +2438,11 @@ msgstr "" msgid "platform" msgstr "plataforma" -#: ../Doc/library/socket.rst:1445 +#: ../Doc/library/socket.rst:1544 msgid "Windows" msgstr "Windows" -#: ../Doc/library/socket.rst:1447 +#: ../Doc/library/socket.rst:1546 msgid "" "The :meth:`ioctl` method is a limited interface to the WSAIoctl system " "interface. Please refer to the `Win32 documentation `_ para mas " "información." -#: ../Doc/library/socket.rst:1452 +#: ../Doc/library/socket.rst:1551 msgid "" "On other platforms, the generic :func:`fcntl.fcntl` and :func:`fcntl.ioctl` " "functions may be used; they accept a socket object as their first argument." @@ -2330,7 +2462,7 @@ msgstr "" "`fcntl.ioctl` podrían ser usadas; ellas aceptan un objeto socket como su " "primer argumento." -#: ../Doc/library/socket.rst:1455 +#: ../Doc/library/socket.rst:1554 msgid "" "Currently only the following control codes are supported: ``SIO_RCVALL``, " "``SIO_KEEPALIVE_VALS``, and ``SIO_LOOPBACK_FAST_PATH``." @@ -2338,7 +2470,7 @@ msgstr "" "Actualmente solo el siguiente control de códigos está soportados: " "``SIO_RCVALL``, ``SIO_KEEPALIVE_VALS``, y ``SIO_LOOPBACK_FAST_PATH``." -#: ../Doc/library/socket.rst:1463 +#: ../Doc/library/socket.rst:1562 msgid "" "Enable a server to accept connections. If *backlog* is specified, it must " "be at least 0 (if it is lower, it is set to 0); it specifies the number of " @@ -2350,11 +2482,11 @@ msgstr "" "de conexiones no aceptadas que permitirá el sistema antes de rechazar nuevas " "conexiones. Si no se especifica, se elige un valor razonable predeterminado." -#: ../Doc/library/socket.rst:1470 +#: ../Doc/library/socket.rst:1569 msgid "The *backlog* parameter is now optional." msgstr "El parámetro *backlog* ahora es opcional." -#: ../Doc/library/socket.rst:1479 +#: ../Doc/library/socket.rst:1578 msgid "" "Return a :term:`file object` associated with the socket. The exact returned " "type depends on the arguments given to :meth:`makefile`. These arguments " @@ -2368,7 +2500,7 @@ msgstr "" "excepto que los únicos valores de *mode* admitidos son ``’r’`` (default), " "``’w’`` and ``’b’``." -#: ../Doc/library/socket.rst:1484 +#: ../Doc/library/socket.rst:1583 msgid "" "The socket must be in blocking mode; it can have a timeout, but the file " "object's internal buffer may end up in an inconsistent state if a timeout " @@ -2378,7 +2510,7 @@ msgstr "" "pero el búfer interno del objeto de archivo puede terminar en un estado " "incoherente si se produce un tiempo de espera." -#: ../Doc/library/socket.rst:1488 +#: ../Doc/library/socket.rst:1587 msgid "" "Closing the file object returned by :meth:`makefile` won't close the " "original socket unless all other file objects have been closed and :meth:" @@ -2388,7 +2520,7 @@ msgstr "" "socket original a menos que se hayan cerrado todos los demás objetos de " "archivo y :meth:`socket.close` se haya llamado al objeto socket." -#: ../Doc/library/socket.rst:1494 +#: ../Doc/library/socket.rst:1593 msgid "" "On Windows, the file-like object created by :meth:`makefile` cannot be used " "where a file object with a file descriptor is expected, such as the stream " @@ -2398,7 +2530,7 @@ msgstr "" "puede utilizar cuando se espera un objeto de archivo con un descriptor de " "archivo, como los argumentos de secuencia de :meth:`subprocess.Popen`." -#: ../Doc/library/socket.rst:1501 +#: ../Doc/library/socket.rst:1600 msgid "" "Receive data from the socket. The return value is a bytes object " "representing the data received. The maximum amount of data to be received " @@ -2412,7 +2544,7 @@ msgstr "" "manpage:`recv(2)` para conocer el significado del argumento opcional " "*flags*; por defecto es cero." -#: ../Doc/library/socket.rst:1508 +#: ../Doc/library/socket.rst:1607 msgid "" "For best match with hardware and network realities, the value of *bufsize* " "should be a relatively small power of 2, for example, 4096." @@ -2421,7 +2553,7 @@ msgstr "" "de *bufsize* debe ser una potencia relativamente pequeña de 2, por ejemplo, " "4096." -#: ../Doc/library/socket.rst:1519 +#: ../Doc/library/socket.rst:1618 msgid "" "Receive data from the socket. The return value is a pair ``(bytes, " "address)`` where *bytes* is a bytes object representing the data received " @@ -2437,7 +2569,7 @@ msgstr "" "del argumento opcional *flags*; por defecto es cero. (El formato de " "*address* depende de la familia de direcciones, consulte más arriba)." -#: ../Doc/library/socket.rst:1530 +#: ../Doc/library/socket.rst:1629 #, python-format msgid "" "For multicast IPv6 address, first item of *address* does not contain " @@ -2448,7 +2580,7 @@ msgstr "" "no contiene la parte ``%scope_id``. Para obtener la dirección IPV6 completa, " "use :func:`getnameinfo`." -#: ../Doc/library/socket.rst:1537 +#: ../Doc/library/socket.rst:1636 msgid "" "Receive normal data (up to *bufsize* bytes) and ancillary data from the " "socket. The *ancbufsize* argument sets the size in bytes of the internal " @@ -2467,7 +2599,7 @@ msgstr "" "pueden truncarse o descartarse. El valor predeterminado del argumento " "*flags* es 0 y tiene el mismo significado que para :meth:`recv`." -#: ../Doc/library/socket.rst:1547 +#: ../Doc/library/socket.rst:1646 msgid "" "The return value is a 4-tuple: ``(data, ancdata, msg_flags, address)``. The " "*data* item is a :class:`bytes` object holding the non-ancillary data " @@ -2494,7 +2626,7 @@ msgstr "" "recepción no está conectada, *address* es la dirección de el socket enviado, " "si está disponible; de lo contrario, su valor no se especifica." -#: ../Doc/library/socket.rst:1561 +#: ../Doc/library/socket.rst:1660 msgid "" "On some systems, :meth:`sendmsg` and :meth:`recvmsg` can be used to pass " "file descriptors between processes over an :const:`AF_UNIX` socket. When " @@ -2517,7 +2649,7 @@ msgstr "" "del retorno de la llamada al sistema, primero intentará cerrar cualquier " "descriptor de fichero recibido a través de este mecanismo." -#: ../Doc/library/socket.rst:1572 +#: ../Doc/library/socket.rst:1671 msgid "" "Some systems do not indicate the truncated length of ancillary data items " "which have been only partially received. If an item appears to extend " @@ -2531,7 +2663,7 @@ msgstr "" "`RuntimeWarning`, y devolverá la parte de él que está dentro del búfer " "siempre que no se haya truncado antes del inicio de sus datos asociados." -#: ../Doc/library/socket.rst:1579 +#: ../Doc/library/socket.rst:1678 msgid "" "On systems which support the :const:`SCM_RIGHTS` mechanism, the following " "function will receive up to *maxfds* file descriptors, returning the message " @@ -2545,7 +2677,7 @@ msgstr "" "condiciones inesperadas, como la recepción de mensajes de control no " "relacionados). Ver también :meth:`sendmsg`. ::" -#: ../Doc/library/socket.rst:1610 +#: ../Doc/library/socket.rst:1709 msgid "" "Receive normal data and ancillary data from the socket, behaving as :meth:" "`recvmsg` would, but scatter the non-ancillary data into a series of buffers " @@ -2568,7 +2700,7 @@ msgstr "" "utilizar. Los argumentos *ancbufsize* y *flags* tienen el mismo significado " "que para :meth:`recvmsg`." -#: ../Doc/library/socket.rst:1621 +#: ../Doc/library/socket.rst:1720 msgid "" "The return value is a 4-tuple: ``(nbytes, ancdata, msg_flags, address)``, " "where *nbytes* is the total number of bytes of non-ancillary data written " @@ -2580,11 +2712,11 @@ msgstr "" "auxiliares escrito dentro de los bufetes, y *ancdata*, *msg_flags* y " "*address* son lo mismo que para :meth:`recvmsg`." -#: ../Doc/library/socket.rst:1626 +#: ../Doc/library/socket.rst:1725 msgid "Example::" msgstr "Ejemplo::" -#: ../Doc/library/socket.rst:1649 +#: ../Doc/library/socket.rst:1748 msgid "" "Receive data from the socket, writing it into *buffer* instead of creating a " "new bytestring. The return value is a pair ``(nbytes, address)`` where " @@ -2601,7 +2733,7 @@ msgstr "" "*flags*; por defecto es cero. (El formato de *address* depende de la " "familia de direcciones --- ver arriba.)" -#: ../Doc/library/socket.rst:1659 +#: ../Doc/library/socket.rst:1758 msgid "" "Receive up to *nbytes* bytes from the socket, storing the data into a buffer " "rather than creating a new bytestring. If *nbytes* is not specified (or 0), " @@ -2616,7 +2748,7 @@ msgstr "" "manpage:`recv(2)` para el significado del argumento opcional *flags*; por " "defecto es cero." -#: ../Doc/library/socket.rst:1668 +#: ../Doc/library/socket.rst:1767 msgid "" "Send data to the socket. The socket must be connected to a remote socket. " "The optional *flags* argument has the same meaning as for :meth:`recv` " @@ -2633,7 +2765,7 @@ msgstr "" "de los datos restantes. Para obtener más información sobre este tema, " "consulte :ref:`socket-howto`." -#: ../Doc/library/socket.rst:1683 +#: ../Doc/library/socket.rst:1782 msgid "" "Send data to the socket. The socket must be connected to a remote socket. " "The optional *flags* argument has the same meaning as for :meth:`recv` " @@ -2650,16 +2782,17 @@ msgstr "" "excepción y no hay forma de determinar cuántos datos, si los hay, se " "enviaron correctamente." -#: ../Doc/library/socket.rst:1690 +#: ../Doc/library/socket.rst:1789 +#, fuzzy msgid "" -"The socket timeout is no more reset each time data is sent successfully. The " -"socket timeout is now the maximum total duration to send all data." +"The socket timeout is no longer reset each time data is sent successfully. " +"The socket timeout is now the maximum total duration to send all data." msgstr "" "El tiempo de espera del socket no se restablece más cada vez que los datos " "se envían correctamente. El tiempo de espera del socket es ahora la duración " "total máxima para enviar todos los datos." -#: ../Doc/library/socket.rst:1703 +#: ../Doc/library/socket.rst:1802 msgid "" "Send data to the socket. The socket should not be connected to a remote " "socket, since the destination socket is specified by *address*. The " @@ -2673,7 +2806,7 @@ msgstr "" "arriba. Devolver el número de bytes enviados. (El formato de *address* " "depende de la familia de direcciones --- ver arriba.)" -#: ../Doc/library/socket.rst:1718 +#: ../Doc/library/socket.rst:1817 msgid "" "Raises an :ref:`auditing event ` ``socket.sendto`` with arguments " "``self``, ``address``." @@ -2681,7 +2814,7 @@ msgstr "" "Genera un :ref:`auditing event ` ``socket.sendto`` con los " "argumentos ``self``, ``address``." -#: ../Doc/library/socket.rst:1719 +#: ../Doc/library/socket.rst:1818 msgid "" "Send normal and ancillary data to the socket, gathering the non-ancillary " "data from a series of buffers and concatenating it into a single message. " @@ -2718,7 +2851,7 @@ msgstr "" "``None``, establece una dirección de destino para el mensaje. El valor " "devuelto es el número de bytes de datos no auxiliares enviados." -#: ../Doc/library/socket.rst:1739 +#: ../Doc/library/socket.rst:1838 msgid "" "The following function sends the list of file descriptors *fds* over an :" "const:`AF_UNIX` socket, on systems which support the :const:`SCM_RIGHTS` " @@ -2728,11 +2861,12 @@ msgstr "" "un socket :const:`AF_UNIX`, estos sistemas pueden soportar la mecánica :" "const:`SCM_RIGHTS`. Observar también :meth:`recvmsg`. ::" +#: ../Doc/library/socket.rst:1847 #, fuzzy msgid ":ref:`Availability `: Unix, not WASI." msgstr ":ref:`Availability `: Unix, no WASI." -#: ../Doc/library/socket.rst:1761 +#: ../Doc/library/socket.rst:1860 msgid "" "Raises an :ref:`auditing event ` ``socket.sendmsg`` with arguments " "``self``, ``address``." @@ -2740,7 +2874,7 @@ msgstr "" "Genera un :ref:`auditing event ` ``socket.sendmsg`` con los " "argumentos ``self``, ``address``." -#: ../Doc/library/socket.rst:1763 +#: ../Doc/library/socket.rst:1862 msgid "" "Specialized version of :meth:`~socket.sendmsg` for :const:`AF_ALG` socket. " "Set mode, IV, AEAD associated data length and flags for :const:`AF_ALG` " @@ -2750,7 +2884,7 @@ msgstr "" "`AF_ALG`. Modo de ajuste, IV, longitud de datos asociados a AEAD y banderas " "para el socket :const:`AF_ALG`." -#: ../Doc/library/socket.rst:1772 +#: ../Doc/library/socket.rst:1871 msgid "" "Send a file until EOF is reached by using high-performance :mod:`os." "sendfile` and return the total number of bytes which were sent. *file* must " @@ -2776,7 +2910,7 @@ msgstr "" "El socket debe ser de tipo :const:`SOCK_STREAM` No se admiten sockets sin " "bloqueo." -#: ../Doc/library/socket.rst:1788 +#: ../Doc/library/socket.rst:1887 msgid "" "Set the :ref:`inheritable flag ` of the socket's file " "descriptor or socket's handle." @@ -2784,7 +2918,7 @@ msgstr "" "Selecciona el :ref:`inheritable flag ` descriptor del " "archivo del socket o el controlador del socket." -#: ../Doc/library/socket.rst:1796 +#: ../Doc/library/socket.rst:1895 msgid "" "Set blocking or non-blocking mode of the socket: if *flag* is false, the " "socket is set to non-blocking, else to blocking mode." @@ -2793,22 +2927,22 @@ msgstr "" "el socket se establece en modo sin bloqueo, de lo contrario en modo de " "bloqueo." -#: ../Doc/library/socket.rst:1799 +#: ../Doc/library/socket.rst:1898 msgid "" "This method is a shorthand for certain :meth:`~socket.settimeout` calls:" msgstr "" "El método es una abreviatura para ciertas llamadas :meth:`~socket." "settimeout`:" -#: ../Doc/library/socket.rst:1801 +#: ../Doc/library/socket.rst:1900 msgid "``sock.setblocking(True)`` is equivalent to ``sock.settimeout(None)``" msgstr "``sock.setblocking(True)`` es equivalente a ``sock.settimeout(None)``" -#: ../Doc/library/socket.rst:1803 +#: ../Doc/library/socket.rst:1902 msgid "``sock.setblocking(False)`` is equivalent to ``sock.settimeout(0.0)``" msgstr "``sock.setblocking(False)`` es equivalente a ``sock.settimeout(0.0)``" -#: ../Doc/library/socket.rst:1805 +#: ../Doc/library/socket.rst:1904 msgid "" "The method no longer applies :const:`SOCK_NONBLOCK` flag on :attr:`socket." "type`." @@ -2816,7 +2950,7 @@ msgstr "" "El método ya no aplica la bandera :const:`SOCK_NONBLOCK` en :attr:`socket." "type`." -#: ../Doc/library/socket.rst:1812 +#: ../Doc/library/socket.rst:1911 msgid "" "Set a timeout on blocking socket operations. The *value* argument can be a " "nonnegative floating point number expressing seconds, or ``None``. If a non-" @@ -2833,7 +2967,7 @@ msgstr "" "complete la operación. Si se da cero, el socket se pone en modo sin bloqueo. " "Si se da ``None``, el enchufe se pone en modo de bloqueo." -#: ../Doc/library/socket.rst:1819 +#: ../Doc/library/socket.rst:1918 msgid "" "For further information, please consult the :ref:`notes on socket timeouts " "`." @@ -2841,7 +2975,7 @@ msgstr "" "Para obtener más información, consulte las notas :ref:`notas sobre los " "tiempos de espera del socket `." -#: ../Doc/library/socket.rst:1821 +#: ../Doc/library/socket.rst:1920 msgid "" "The method no longer toggles :const:`SOCK_NONBLOCK` flag on :attr:`socket." "type`." @@ -2849,7 +2983,7 @@ msgstr "" "El método ya no cambia la bandera :const:`SOCK_NONBLOCK` en :attr:`socket." "type`." -#: ../Doc/library/socket.rst:1834 +#: ../Doc/library/socket.rst:1933 msgid "" "Set the value of the given socket option (see the Unix manual page :manpage:" "`setsockopt(2)`). The needed symbolic constants are defined in the :mod:" @@ -2872,11 +3006,11 @@ msgstr "" "*optlen* es requerido. Esto es equivalente a llamar a una función C :c:func:" "`setsockopt` con ``optval=NULL`` y ``optlen=optlen``." -#: ../Doc/library/socket.rst:1847 +#: ../Doc/library/socket.rst:1946 msgid "setsockopt(level, optname, None, optlen: int) form added." msgstr "setsockopt(level, optname, None, optlen: int) form added." -#: ../Doc/library/socket.rst:1855 +#: ../Doc/library/socket.rst:1954 msgid "" "Shut down one or both halves of the connection. If *how* is :const:" "`SHUT_RD`, further receives are disallowed. If *how* is :const:`SHUT_WR`, " @@ -2887,7 +3021,7 @@ msgstr "" "recibe no se permiten. Si *how* es :const:`SHUT_WR`, mas recibe no se " "permiten. Si *how* es :const:`SHUT_RDWR`, más recibe no se permiten." -#: ../Doc/library/socket.rst:1865 +#: ../Doc/library/socket.rst:1964 msgid "" "Duplicate a socket and prepare it for sharing with a target process. The " "target process must be provided with *process_id*. The resulting bytes " @@ -2905,7 +3039,7 @@ msgstr "" "seguro cerrar el socket ya que el sistema operativo ya lo ha duplicado para " "el proceso de destino." -#: ../Doc/library/socket.rst:1877 +#: ../Doc/library/socket.rst:1976 msgid "" "Note that there are no methods :meth:`read` or :meth:`write`; use :meth:" "`~socket.recv` and :meth:`~socket.send` without *flags* argument instead." @@ -2913,7 +3047,7 @@ msgstr "" "Tenga en cuenta que no hay métodos :meth:`read` o :meth:`write`; use :meth:" "`~socket.recv` y :meth:`~socket.send` sin el argumento *flags* en su lugar." -#: ../Doc/library/socket.rst:1880 +#: ../Doc/library/socket.rst:1979 msgid "" "Socket objects also have these (read-only) attributes that correspond to the " "values given to the :class:`~socket.socket` constructor." @@ -2921,23 +3055,23 @@ msgstr "" "Los objetos de socket también tienen estos atributos (de solo lectura) que " "corresponden a los valores dados al constructor :class:`~socket.socket`." -#: ../Doc/library/socket.rst:1886 +#: ../Doc/library/socket.rst:1985 msgid "The socket family." msgstr "La familia socket." -#: ../Doc/library/socket.rst:1891 +#: ../Doc/library/socket.rst:1990 msgid "The socket type." msgstr "El tipo de socket." -#: ../Doc/library/socket.rst:1896 +#: ../Doc/library/socket.rst:1995 msgid "The socket protocol." msgstr "The socket protocol." -#: ../Doc/library/socket.rst:1903 +#: ../Doc/library/socket.rst:2002 msgid "Notes on socket timeouts" msgstr "Notas sobre los tiempos de espera del socket" -#: ../Doc/library/socket.rst:1905 +#: ../Doc/library/socket.rst:2004 msgid "" "A socket object can be in one of three modes: blocking, non-blocking, or " "timeout. Sockets are by default always created in blocking mode, but this " @@ -2948,7 +3082,7 @@ msgstr "" "siempre en modo de bloqueo, pero esto se puede cambiar llamando a :func:" "`setdefaulttimeout`." -#: ../Doc/library/socket.rst:1909 +#: ../Doc/library/socket.rst:2008 msgid "" "In *blocking mode*, operations block until complete or the system returns an " "error (such as connection timed out)." @@ -2956,19 +3090,20 @@ msgstr "" "En el modo *bloqueo*, las operaciones se bloquean hasta que se completan o " "el sistema devuelve un error (como tiempo de espera de conexión agotado)." -#: ../Doc/library/socket.rst:1912 +#: ../Doc/library/socket.rst:2011 +#, fuzzy msgid "" "In *non-blocking mode*, operations fail (with an error that is unfortunately " "system-dependent) if they cannot be completed immediately: functions from " -"the :mod:`select` can be used to know when and whether a socket is available " -"for reading or writing." +"the :mod:`select` module can be used to know when and whether a socket is " +"available for reading or writing." msgstr "" "En el modo *sin bloqueo*, las operaciones fallan (con un error que, por " "desgracia, depende del sistema) si no se pueden completar inmediatamente: " "las funciones de :mod:`select` se pueden utilizar para saber cuándo y si un " "socket está disponible para leer o escribir." -#: ../Doc/library/socket.rst:1917 +#: ../Doc/library/socket.rst:2016 msgid "" "In *timeout mode*, operations fail if they cannot be completed within the " "timeout specified for the socket (they raise a :exc:`timeout` exception) or " @@ -2978,7 +3113,7 @@ msgstr "" "de espera especifico para el socket (ellos lanzan una excepción :exc:" "`timeout`) o si el sistema devuelve un error." -#: ../Doc/library/socket.rst:1922 +#: ../Doc/library/socket.rst:2021 msgid "" "At the operating system level, sockets in *timeout mode* are internally set " "in non-blocking mode. Also, the blocking and timeout modes are shared " @@ -2993,11 +3128,11 @@ msgstr "" "de implementación puede tener consecuencias visibles si, por ejemplo, decide " "utilizar el :meth:`~socket.fileno()` de un socket." -#: ../Doc/library/socket.rst:1929 +#: ../Doc/library/socket.rst:2028 msgid "Timeouts and the ``connect`` method" msgstr "Tiempos de espera y el método ``connect``" -#: ../Doc/library/socket.rst:1931 +#: ../Doc/library/socket.rst:2030 msgid "" "The :meth:`~socket.connect` operation is also subject to the timeout " "setting, and in general it is recommended to call :meth:`~socket.settimeout` " @@ -3014,11 +3149,11 @@ msgstr "" "conexión propio independientemente de cualquier configuración de tiempo de " "espera del socket de Python." -#: ../Doc/library/socket.rst:1939 +#: ../Doc/library/socket.rst:2038 msgid "Timeouts and the ``accept`` method" msgstr "Tiempos de espera y el método ``accept``" -#: ../Doc/library/socket.rst:1941 +#: ../Doc/library/socket.rst:2040 msgid "" "If :func:`getdefaulttimeout` is not :const:`None`, sockets returned by the :" "meth:`~socket.accept` method inherit that timeout. Otherwise, the behaviour " @@ -3029,7 +3164,7 @@ msgstr "" "contrario, el comportamiento depende de la configuración de la toma de " "escucha:" -#: ../Doc/library/socket.rst:1945 +#: ../Doc/library/socket.rst:2044 msgid "" "if the listening socket is in *blocking mode* or in *timeout mode*, the " "socket returned by :meth:`~socket.accept` is in *blocking mode*;" @@ -3037,7 +3172,7 @@ msgstr "" "si los sockets están escuchando en *blocking mode* o en el *timeout mode*, " "el socket devuelve el :meth:`~socket.accept` en un *blocking mode*;" -#: ../Doc/library/socket.rst:1948 +#: ../Doc/library/socket.rst:2047 msgid "" "if the listening socket is in *non-blocking mode*, whether the socket " "returned by :meth:`~socket.accept` is in blocking or non-blocking mode is " @@ -3049,11 +3184,11 @@ msgstr "" "depende del sistema operativo. Si desea garantizar un comportamiento " "multiplataforma, se recomienda que se anule manualmente esta configuración." -#: ../Doc/library/socket.rst:1957 +#: ../Doc/library/socket.rst:2056 msgid "Example" msgstr "Ejemplo" -#: ../Doc/library/socket.rst:1959 +#: ../Doc/library/socket.rst:2058 msgid "" "Here are four minimal example programs using the TCP/IP protocol: a server " "that echoes all data that it receives back (servicing only one client), and " @@ -3076,11 +3211,11 @@ msgstr "" "el socket esta escuchando pero en el nuevo socket devuelto por :meth:" "`~socket.accept`." -#: ../Doc/library/socket.rst:1969 +#: ../Doc/library/socket.rst:2068 msgid "The first two examples support IPv4 only. ::" msgstr "Los dos primeros ejemplos solo admiten IPv4. ::" -#: ../Doc/library/socket.rst:2000 +#: ../Doc/library/socket.rst:2099 msgid "" "The next two examples are identical to the above two, but support both IPv4 " "and IPv6. The server side will listen to the first address family available " @@ -3097,7 +3232,7 @@ msgstr "" "todas las direcciones devueltas como resultado de la resolución de nombres y " "enviará el tráfico al primero conectado correctamente. ::" -#: ../Doc/library/socket.rst:2072 +#: ../Doc/library/socket.rst:2171 msgid "" "The next example shows how to write a very simple network sniffer with raw " "sockets on Windows. The example requires administrator privileges to modify " @@ -3107,7 +3242,7 @@ msgstr "" "con sockets sin procesar en Windows. El ejemplo requiere privilegios de " "administrador para modificar la interfaz:" -#: ../Doc/library/socket.rst:2097 +#: ../Doc/library/socket.rst:2196 msgid "" "The next example shows how to use the socket interface to communicate to a " "CAN network using the raw socket protocol. To use CAN with the broadcast " @@ -3118,21 +3253,22 @@ msgstr "" "Para utilizar CAN con el protocolo de gestor de difusión en su lugar, abra " "un socket con:" -#: ../Doc/library/socket.rst:2103 +#: ../Doc/library/socket.rst:2202 +#, fuzzy msgid "" "After binding (:const:`CAN_RAW`) or connecting (:const:`CAN_BCM`) the " -"socket, you can use the :meth:`socket.send`, and the :meth:`socket.recv` " +"socket, you can use the :meth:`socket.send` and :meth:`socket.recv` " "operations (and their counterparts) on the socket object as usual." msgstr "" "Después de enlazar (:const:`CAN_RAW`) o conectar (:const:`CAN_BCM`) el " "socket, puede usar las operaciones :meth:`socket.send` y :meth:`socket.recv` " "(y sus contrapartes) en el objeto de socket como de costumbre." -#: ../Doc/library/socket.rst:2107 +#: ../Doc/library/socket.rst:2206 msgid "This last example might require special privileges::" msgstr "Este último ejemplo puede requerir privilegios especiales:" -#: ../Doc/library/socket.rst:2147 +#: ../Doc/library/socket.rst:2246 msgid "" "Running an example several times with too small delay between executions, " "could lead to this error::" @@ -3140,7 +3276,7 @@ msgstr "" "Ejecutar un ejemplo varias veces con un retraso demasiado pequeño entre " "ejecuciones, podría dar lugar a este error::" -#: ../Doc/library/socket.rst:2152 +#: ../Doc/library/socket.rst:2251 msgid "" "This is because the previous execution has left the socket in a " "``TIME_WAIT`` state, and can't be immediately reused." @@ -3148,15 +3284,16 @@ msgstr "" "Esto se debe a que la ejecución anterior ha dejado el socket en un estado " "``TIME_WAIT`` y no se puede reutilizar inmediatamente." -#: ../Doc/library/socket.rst:2155 +#: ../Doc/library/socket.rst:2254 +#, fuzzy msgid "" -"There is a :mod:`socket` flag to set, in order to prevent this, :data:" +"There is a :mod:`socket` flag to set, in order to prevent this, :const:" "`socket.SO_REUSEADDR`::" msgstr "" "Este es una bandera :mod:`socket` para establecer, en orden para prevenir " "esto, :data:`socket.SO_REUSEADDR`::" -#: ../Doc/library/socket.rst:2162 +#: ../Doc/library/socket.rst:2261 msgid "" "the :data:`SO_REUSEADDR` flag tells the kernel to reuse a local socket in " "``TIME_WAIT`` state, without waiting for its natural timeout to expire." @@ -3165,14 +3302,14 @@ msgstr "" "local en estado ``TIME_WAIT``, sin esperar a que expire su tiempo de espera " "natural." -#: ../Doc/library/socket.rst:2168 +#: ../Doc/library/socket.rst:2267 msgid "" "For an introduction to socket programming (in C), see the following papers:" msgstr "" "Para obtener una introducción a la programación de sockets (en C), consulte " "los siguientes documentos:" -#: ../Doc/library/socket.rst:2170 +#: ../Doc/library/socket.rst:2269 msgid "" "*An Introductory 4.3BSD Interprocess Communication Tutorial*, by Stuart " "Sechrest" @@ -3180,7 +3317,7 @@ msgstr "" "*An Introductory 4.3BSD Interprocess Communication Tutorial*, por Stuart " "Sechrest" -#: ../Doc/library/socket.rst:2172 +#: ../Doc/library/socket.rst:2271 msgid "" "*An Advanced 4.3BSD Interprocess Communication Tutorial*, by Samuel J. " "Leffler et al," @@ -3188,7 +3325,7 @@ msgstr "" "*An Advanced 4.3BSD Interprocess Communication Tutorial*, por Samuel J. " "Leffler et al," -#: ../Doc/library/socket.rst:2175 +#: ../Doc/library/socket.rst:2274 msgid "" "both in the UNIX Programmer's Manual, Supplementary Documents 1 (sections " "PS1:7 and PS1:8). The platform-specific reference material for the various " @@ -3206,3 +3343,36 @@ msgstr "" "WinSock (o WinSock 2). Para APIS listas IPV6, los lectores pueden querer " "referirse al titulado Extensiones básicas de interfaz de socket para IPv6 :" "rfc:`3493` ." + +#: ../Doc/library/socket.rst:22 +#, fuzzy +msgid "object" +msgstr "Objetos Socket" + +#: ../Doc/library/socket.rst:22 +#, fuzzy +msgid "socket" +msgstr "Objetos Socket" + +#: ../Doc/library/socket.rst:1576 +msgid "I/O control" +msgstr "" + +#: ../Doc/library/socket.rst:1576 +msgid "buffering" +msgstr "" + +#: ../Doc/library/socket.rst:1931 +msgid "module" +msgstr "" + +#: ../Doc/library/socket.rst:1931 +msgid "struct" +msgstr "" + +#~ msgid "" +#~ "*proto* - An in network-byte-order integer specifying the Ethernet " +#~ "protocol number." +#~ msgstr "" +#~ "*proto* - Un entero en orden de byte de red que especifica el número de " +#~ "protocolo Ethernet." diff --git a/library/socketserver.po b/library/socketserver.po index cccde4a30b..d7dab53d67 100644 --- a/library/socketserver.po +++ b/library/socketserver.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-02-07 17:04+0100\n" "Last-Translator: \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/socketserver.rst:2 msgid ":mod:`socketserver` --- A framework for network servers" @@ -38,11 +37,12 @@ msgstr "" "El módulo :mod:`socketserver` simplifica la tarea de escribir servidores de " "red." +#: ../Doc/includes/wasm-notavail.rst:3 #, fuzzy msgid ":ref:`Availability `: not Emscripten, not WASI." msgstr ":ref:`Disponibilidad `: no Emscripten, no WASI." -#: ../Doc/library/cpython/Doc/includes/wasm-notavail.rst:5 +#: ../Doc/includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly platforms " "``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for " @@ -175,18 +175,18 @@ msgstr "" "representan servidores síncronos de cuatro tipos:" #: ../Doc/library/socketserver.rst:97 +#, fuzzy msgid "" "Note that :class:`UnixDatagramServer` derives from :class:`UDPServer`, not " "from :class:`UnixStreamServer` --- the only difference between an IP and a " -"Unix stream server is the address family, which is simply repeated in both " -"Unix server classes." +"Unix server is the address family." msgstr "" "Tenga en cuenta que :class:`UnixDatagramServer` deriva de :class:" "`UDPServer`, no de :class:`UnixStreamServer` --- la única diferencia entre " "una IP y un servidor de flujo Unix es la familia de direcciones, que " "simplemente se repite en ambos Clases de servidor Unix." -#: ../Doc/library/socketserver.rst:106 +#: ../Doc/library/socketserver.rst:105 msgid "" "Forking and threading versions of each type of server can be created using " "these mix-in classes. For instance, :class:`ThreadingUDPServer` is created " @@ -196,7 +196,7 @@ msgstr "" "utilizando estas clases mixtas. Por ejemplo, :class:`ThreadingUDPServer` se " "crea de la siguiente manera:" -#: ../Doc/library/socketserver.rst:113 +#: ../Doc/library/socketserver.rst:112 msgid "" "The mix-in class comes first, since it overrides a method defined in :class:" "`UDPServer`. Setting the various attributes also changes the behavior of " @@ -206,7 +206,7 @@ msgstr "" "`UDPServer`. La configuración de los distintos atributos también cambia el " "comportamiento del mecanismo del servidor subyacente." -#: ../Doc/library/socketserver.rst:117 +#: ../Doc/library/socketserver.rst:116 msgid "" ":class:`ForkingMixIn` and the Forking classes mentioned below are only " "available on POSIX platforms that support :func:`~os.fork`." @@ -214,7 +214,7 @@ msgstr "" ":class:`ForkingMixIn` y las clases de Forking mencionadas a continuación " "solo están disponibles en plataformas POSIX que admiten :func:`os.fork`." -#: ../Doc/library/socketserver.rst:120 +#: ../Doc/library/socketserver.rst:119 msgid "" ":meth:`socketserver.ForkingMixIn.server_close` waits until all child " "processes complete, except if :attr:`socketserver.ForkingMixIn." @@ -224,7 +224,7 @@ msgstr "" "todos los procesos secundarios, excepto si :attr:`socketserver.ForkingMixIn." "block_on_close` atributo es falso." -#: ../Doc/library/socketserver.rst:124 +#: ../Doc/library/socketserver.rst:123 msgid "" ":meth:`socketserver.ThreadingMixIn.server_close` waits until all non-daemon " "threads complete, except if :attr:`socketserver.ThreadingMixIn." @@ -238,7 +238,7 @@ msgstr "" "demoníacos configurando :data:`ThreadingMixIn.daemon_threads` en " "``Verdadero`` para no esperar hasta que se completen los subprocesos." -#: ../Doc/library/socketserver.rst:133 +#: ../Doc/library/socketserver.rst:132 msgid "" ":meth:`socketserver.ForkingMixIn.server_close` and :meth:`socketserver." "ThreadingMixIn.server_close` now waits until all child processes and non-" @@ -251,11 +251,17 @@ msgstr "" "atributo de clase :attr:`socketserver.ForkingMixIn.block_on_close` para " "optar por el comportamiento anterior a 3.7." -#: ../Doc/library/socketserver.rst:145 +#: ../Doc/library/socketserver.rst:148 msgid "These classes are pre-defined using the mix-in classes." msgstr "Estas clases están predefinidas utilizando las clases mixtas." -#: ../Doc/library/socketserver.rst:148 +#: ../Doc/library/socketserver.rst:150 +msgid "" +"The ``ForkingUnixStreamServer`` and ``ForkingUnixDatagramServer`` classes " +"were added." +msgstr "" + +#: ../Doc/library/socketserver.rst:154 msgid "" "To implement a service, you must derive a class from :class:" "`BaseRequestHandler` and redefine its :meth:`~BaseRequestHandler.handle` " @@ -273,7 +279,7 @@ msgstr "" "de datagramas o flujos. Esto se puede ocultar usando las subclases del " "controlador :class:`StreamRequestHandler` o :class:`DatagramRequestHandler`." -#: ../Doc/library/socketserver.rst:156 +#: ../Doc/library/socketserver.rst:162 msgid "" "Of course, you still have to use your head! For instance, it makes no sense " "to use a forking server if the service contains state in memory that can be " @@ -290,7 +296,7 @@ msgstr "" "un servidor de subprocesos, pero probablemente tendrá que usar bloqueos para " "proteger la integridad de los datos compartidos." -#: ../Doc/library/socketserver.rst:163 +#: ../Doc/library/socketserver.rst:169 msgid "" "On the other hand, if you are building an HTTP server where all data is " "stored externally (for instance, in the file system), a synchronous class " @@ -306,7 +312,7 @@ msgstr "" "recibir todos los datos que ha solicitado. Aquí es apropiado un servidor de " "enhebrado o bifurcación." -#: ../Doc/library/socketserver.rst:169 +#: ../Doc/library/socketserver.rst:175 msgid "" "In some cases, it may be appropriate to process part of a request " "synchronously, but to finish processing in a forked child depending on the " @@ -320,7 +326,8 @@ msgstr "" "servidor sincrónico y haciendo un fork explicito en la clase del controlador " "de solicitudes el método :meth:`~BaseRequestHandler.handle`." -#: ../Doc/library/socketserver.rst:174 +#: ../Doc/library/socketserver.rst:180 +#, fuzzy msgid "" "Another approach to handling multiple simultaneous requests in an " "environment that supports neither threads nor :func:`~os.fork` (or where " @@ -329,8 +336,7 @@ msgid "" "decide which request to work on next (or whether to handle a new incoming " "request). This is particularly important for stream services where each " "client can potentially be connected for a long time (if threads or " -"subprocesses cannot be used). See :mod:`asyncore` for another way to manage " -"this." +"subprocesses cannot be used)." msgstr "" "Otro enfoque para manejar múltiples solicitudes simultáneas en un entorno " "que no admite subprocesos ni :func:`~os.fork` (o donde estos son demasiado " @@ -342,11 +348,11 @@ msgstr "" "durante mucho tiempo (si no se pueden utilizar subprocesos o subprocesos). " "Consulte :mod:`asyncore` para ver otra forma de gestionar esto." -#: ../Doc/library/socketserver.rst:188 +#: ../Doc/library/socketserver.rst:193 msgid "Server Objects" msgstr "Objetos de servidor" -#: ../Doc/library/socketserver.rst:192 +#: ../Doc/library/socketserver.rst:197 msgid "" "This is the superclass of all Server objects in the module. It defines the " "interface, given below, but does not implement most of the methods, which is " @@ -359,7 +365,7 @@ msgstr "" "los atributos respectivos :attr:`server_address` y :attr:" "`RequestHandlerClass`." -#: ../Doc/library/socketserver.rst:200 +#: ../Doc/library/socketserver.rst:205 msgid "" "Return an integer file descriptor for the socket on which the server is " "listening. This function is most commonly passed to :mod:`selectors`, to " @@ -369,7 +375,7 @@ msgstr "" "servidor. Esta función se pasa comúnmente a :mod:`selectors`, para permitir " "monitorear múltiples servidores en el mismo proceso." -#: ../Doc/library/socketserver.rst:207 +#: ../Doc/library/socketserver.rst:212 msgid "" "Process a single request. This function calls the following methods in " "order: :meth:`get_request`, :meth:`verify_request`, and :meth:" @@ -387,7 +393,7 @@ msgstr "" "recibe ninguna solicitud en :attr:`timeout` segundos, se llamará a :meth:" "`handle_timeout` y :meth:`handle_request` regresará." -#: ../Doc/library/socketserver.rst:219 +#: ../Doc/library/socketserver.rst:224 msgid "" "Handle requests until an explicit :meth:`shutdown` request. Poll for " "shutdown every *poll_interval* seconds. Ignores the :attr:`timeout` " @@ -403,11 +409,11 @@ msgstr "" "servicio dado. Por ejemplo, la clase :class:`ForkingMixIn` usa :meth:" "`service_actions` para limpiar procesos secundarios zombies." -#: ../Doc/library/socketserver.rst:227 +#: ../Doc/library/socketserver.rst:232 msgid "Added ``service_actions`` call to the ``serve_forever`` method." msgstr "Se agregó la llamada ``service_actions`` al método ``serve_forever``." -#: ../Doc/library/socketserver.rst:233 +#: ../Doc/library/socketserver.rst:238 msgid "" "This is called in the :meth:`serve_forever` loop. This method can be " "overridden by subclasses or mixin classes to perform actions specific to a " @@ -417,7 +423,7 @@ msgstr "" "reemplazado por subclases o clases mixtas para realizar acciones específicas " "para un servicio dado, como acciones de limpieza." -#: ../Doc/library/socketserver.rst:241 +#: ../Doc/library/socketserver.rst:246 msgid "" "Tell the :meth:`serve_forever` loop to stop and wait until it does. :meth:" "`shutdown` must be called while :meth:`serve_forever` is running in a " @@ -427,11 +433,11 @@ msgstr "" "haga. :meth:`shutdown` debe llamarse mientras :meth:`serve_forever` se está " "ejecutando en un hilo diferente, de lo contrario, se bloqueará." -#: ../Doc/library/socketserver.rst:248 +#: ../Doc/library/socketserver.rst:253 msgid "Clean up the server. May be overridden." msgstr "Limpiar el servidor. Puede ser sobrescrito." -#: ../Doc/library/socketserver.rst:253 +#: ../Doc/library/socketserver.rst:258 msgid "" "The family of protocols to which the server's socket belongs. Common " "examples are :const:`socket.AF_INET` and :const:`socket.AF_UNIX`." @@ -439,7 +445,7 @@ msgstr "" "La familia de protocolos a la que pertenece el socket del servidor. Algunos " "ejemplos comunes son :const:`socket.AF_INET` y :const:`socket.AF_UNIX`." -#: ../Doc/library/socketserver.rst:259 +#: ../Doc/library/socketserver.rst:264 msgid "" "The user-provided request handler class; an instance of this class is " "created for each request." @@ -447,7 +453,7 @@ msgstr "" "La clase de controlador de solicitudes proporcionada por el usuario; se crea " "una instancia de esta clase para cada solicitud." -#: ../Doc/library/socketserver.rst:265 +#: ../Doc/library/socketserver.rst:270 msgid "" "The address on which the server is listening. The format of addresses " "varies depending on the protocol family; see the documentation for the :mod:" @@ -461,18 +467,18 @@ msgstr "" "esta es una tupla que contiene una cadena que da la dirección y un número de " "puerto entero: ``('127.0.0.1', 80)``, por ejemplo." -#: ../Doc/library/socketserver.rst:274 +#: ../Doc/library/socketserver.rst:279 msgid "" "The socket object on which the server will listen for incoming requests." msgstr "" "El objeto de socket en el que el servidor escuchará las solicitudes " "entrantes." -#: ../Doc/library/socketserver.rst:277 +#: ../Doc/library/socketserver.rst:282 msgid "The server classes support the following class variables:" msgstr "Las clases de servidor admiten las siguientes variables de clase:" -#: ../Doc/library/socketserver.rst:283 +#: ../Doc/library/socketserver.rst:288 msgid "" "Whether the server will allow the reuse of an address. This defaults to :" "const:`False`, and can be set in subclasses to change the policy." @@ -481,7 +487,7 @@ msgstr "" "predeterminado es :const:`False`, y se puede establecer en subclases para " "cambiar la política." -#: ../Doc/library/socketserver.rst:289 +#: ../Doc/library/socketserver.rst:294 msgid "" "The size of the request queue. If it takes a long time to process a single " "request, any requests that arrive while the server is busy are placed into a " @@ -496,7 +502,7 @@ msgstr "" "denegada\". El valor predeterminado suele ser 5, pero las subclases pueden " "anularlo." -#: ../Doc/library/socketserver.rst:298 +#: ../Doc/library/socketserver.rst:303 msgid "" "The type of socket used by the server; :const:`socket.SOCK_STREAM` and :" "const:`socket.SOCK_DGRAM` are two common values." @@ -504,7 +510,7 @@ msgstr "" "El tipo de socket utilizado por el servidor; :const:`socket.SOCK_STREAM` y :" "const:`socket.SOCK_DGRAM` son dos valores comunes." -#: ../Doc/library/socketserver.rst:304 +#: ../Doc/library/socketserver.rst:309 msgid "" "Timeout duration, measured in seconds, or :const:`None` if no timeout is " "desired. If :meth:`handle_request` receives no incoming requests within the " @@ -515,7 +521,7 @@ msgstr "" "entrantes dentro del período de tiempo de espera, se llama al método :meth:" "`handle_timeout`." -#: ../Doc/library/socketserver.rst:309 +#: ../Doc/library/socketserver.rst:314 msgid "" "There are various server methods that can be overridden by subclasses of " "base server classes like :class:`TCPServer`; these methods aren't useful to " @@ -525,7 +531,7 @@ msgstr "" "clases de servidor base como :class:`TCPServer`; estos métodos no son útiles " "para los usuarios externos del objeto de servidor." -#: ../Doc/library/socketserver.rst:318 +#: ../Doc/library/socketserver.rst:323 msgid "" "Actually processes the request by instantiating :attr:`RequestHandlerClass` " "and calling its :meth:`~BaseRequestHandler.handle` method." @@ -534,7 +540,7 @@ msgstr "" "`RequestHandlerClass` y llamando a su método :meth:`~BaseRequestHandler." "handle`." -#: ../Doc/library/socketserver.rst:324 +#: ../Doc/library/socketserver.rst:329 msgid "" "Must accept a request from the socket, and return a 2-tuple containing the " "*new* socket object to be used to communicate with the client, and the " @@ -544,7 +550,7 @@ msgstr "" "el objeto de socket *nuevo* que se utilizará para comunicarse con el cliente " "y la dirección del cliente." -#: ../Doc/library/socketserver.rst:331 +#: ../Doc/library/socketserver.rst:336 msgid "" "This function is called if the :meth:`~BaseRequestHandler.handle` method of " "a :attr:`RequestHandlerClass` instance raises an exception. The default " @@ -556,12 +562,12 @@ msgstr "" "predeterminada es imprimir el rastreo al error estándar y continuar " "manejando más solicitudes." -#: ../Doc/library/socketserver.rst:336 +#: ../Doc/library/socketserver.rst:341 msgid "Now only called for exceptions derived from the :exc:`Exception` class." msgstr "" "Ahora solo se solicitan excepciones derivadas de la clase :exc:`Exception`." -#: ../Doc/library/socketserver.rst:343 +#: ../Doc/library/socketserver.rst:348 msgid "" "This function is called when the :attr:`timeout` attribute has been set to a " "value other than :const:`None` and the timeout period has passed with no " @@ -575,7 +581,7 @@ msgstr "" "forking es recopilar el estado de cualquier proceso hijo que haya salido, " "mientras que en los servidores de threading este método no hace nada." -#: ../Doc/library/socketserver.rst:352 +#: ../Doc/library/socketserver.rst:357 msgid "" "Calls :meth:`finish_request` to create an instance of the :attr:" "`RequestHandlerClass`. If desired, this function can create a new process " @@ -587,7 +593,7 @@ msgstr "" "proceso o hilo para manejar la solicitud; las clases :class:`ForkingMixIn` " "y :class:`ThreadingMixIn` hacen esto." -#: ../Doc/library/socketserver.rst:364 +#: ../Doc/library/socketserver.rst:369 msgid "" "Called by the server's constructor to activate the server. The default " "behavior for a TCP server just invokes :meth:`~socket.socket.listen` on the " @@ -597,7 +603,7 @@ msgstr "" "comportamiento predeterminado para un servidor TCP simplemente invoca :meth:" "`~socket.socket.listen` en el socket del servidor. Puede anularse." -#: ../Doc/library/socketserver.rst:371 +#: ../Doc/library/socketserver.rst:376 msgid "" "Called by the server's constructor to bind the socket to the desired " "address. May be overridden." @@ -605,7 +611,7 @@ msgstr "" "Lo llama el constructor del servidor para vincular el socket a la dirección " "deseada. Puede anularse." -#: ../Doc/library/socketserver.rst:377 +#: ../Doc/library/socketserver.rst:382 msgid "" "Must return a Boolean value; if the value is :const:`True`, the request will " "be processed, and if it's :const:`False`, the request will be denied. This " @@ -617,7 +623,7 @@ msgstr "" "función se puede anular para implementar controles de acceso para un " "servidor. La implementación predeterminada siempre retorna :const:`True`." -#: ../Doc/library/socketserver.rst:383 +#: ../Doc/library/socketserver.rst:388 msgid "" "Support for the :term:`context manager` protocol was added. Exiting the " "context manager is equivalent to calling :meth:`server_close`." @@ -625,11 +631,11 @@ msgstr "" "Se agregó soporte para el protocolo :term:`context manager`. Salir del " "administrador de contexto es equivalente a llamar a :meth:`server_close`." -#: ../Doc/library/socketserver.rst:389 +#: ../Doc/library/socketserver.rst:394 msgid "Request Handler Objects" msgstr "Solicitar objetos de controlador" -#: ../Doc/library/socketserver.rst:393 +#: ../Doc/library/socketserver.rst:398 msgid "" "This is the superclass of all request handler objects. It defines the " "interface, given below. A concrete request handler subclass must define a " @@ -642,7 +648,7 @@ msgstr "" "anular cualquiera de los otros métodos. Se crea una nueva instancia de la " "subclase para cada solicitud." -#: ../Doc/library/socketserver.rst:402 +#: ../Doc/library/socketserver.rst:407 msgid "" "Called before the :meth:`handle` method to perform any initialization " "actions required. The default implementation does nothing." @@ -650,7 +656,7 @@ msgstr "" "Se llama antes del método :meth:`handle` para realizar las acciones de " "inicialización necesarias. La implementación predeterminada no hace nada." -#: ../Doc/library/socketserver.rst:408 +#: ../Doc/library/socketserver.rst:413 msgid "" "This function must do all the work required to service a request. The " "default implementation does nothing. Several instance attributes are " @@ -665,7 +671,7 @@ msgstr "" "instancia del servidor como :attr:`self.server`, en caso de que necesite " "acceder a la información por servidor." -#: ../Doc/library/socketserver.rst:414 +#: ../Doc/library/socketserver.rst:419 msgid "" "The type of :attr:`self.request` is different for datagram or stream " "services. For stream services, :attr:`self.request` is a socket object; for " @@ -676,7 +682,7 @@ msgstr "" "de socket; para servicios de datagramas, :attr:`self.request` es un par de " "string y socket." -#: ../Doc/library/socketserver.rst:421 +#: ../Doc/library/socketserver.rst:426 msgid "" "Called after the :meth:`handle` method to perform any clean-up actions " "required. The default implementation does nothing. If :meth:`setup` raises " @@ -686,13 +692,17 @@ msgstr "" "limpieza necesarias. La implementación predeterminada no hace nada. Si :meth:" "`setup` lanza una excepción, no se llamará a esta función." -#: ../Doc/library/socketserver.rst:429 +#: ../Doc/library/socketserver.rst:434 +#, fuzzy msgid "" "These :class:`BaseRequestHandler` subclasses override the :meth:" "`~BaseRequestHandler.setup` and :meth:`~BaseRequestHandler.finish` methods, " "and provide :attr:`self.rfile` and :attr:`self.wfile` attributes. The :attr:" "`self.rfile` and :attr:`self.wfile` attributes can be read or written, " -"respectively, to get the request data or return data to the client." +"respectively, to get the request data or return data to the client. The :" +"attr:`!rfile` attributes support the :class:`io.BufferedIOBase` readable " +"interface, and :attr:`!wfile` attributes support the :class:`!io." +"BufferedIOBase` writable interface." msgstr "" "Estas subclases :class:`BaseRequestHandler` anulan los métodos :meth:" "`~BaseRequestHandler.setup` y :meth:`~BaseRequestHandler.finish`, y " @@ -701,17 +711,7 @@ msgstr "" "respectivamente, para obtener los datos de la solicitud o retornar los datos " "al cliente." -#: ../Doc/library/socketserver.rst:436 -msgid "" -"The :attr:`rfile` attributes of both classes support the :class:`io." -"BufferedIOBase` readable interface, and :attr:`DatagramRequestHandler.wfile` " -"supports the :class:`io.BufferedIOBase` writable interface." -msgstr "" -"Los atributos :attr:`rfile` de ambas clases admiten la interfaz legible :" -"class:`io.BufferedIOBase`, y :attr:`DatagramRequestHandler.wfile` admite la :" -"class:`io.BufferedIOBase` interfaz de escritura." - -#: ../Doc/library/socketserver.rst:441 +#: ../Doc/library/socketserver.rst:443 msgid "" ":attr:`StreamRequestHandler.wfile` also supports the :class:`io." "BufferedIOBase` writable interface." @@ -719,19 +719,19 @@ msgstr "" ":attr:`StreamRequestHandler.wfile` también admite la interfaz de escritura :" "class:`io.BufferedIOBase`." -#: ../Doc/library/socketserver.rst:447 +#: ../Doc/library/socketserver.rst:449 msgid "Examples" msgstr "Ejemplos" -#: ../Doc/library/socketserver.rst:450 +#: ../Doc/library/socketserver.rst:452 msgid ":class:`socketserver.TCPServer` Example" msgstr ":class:`socketserver.TCPServer` Ejemplo" -#: ../Doc/library/socketserver.rst:452 ../Doc/library/socketserver.rst:551 +#: ../Doc/library/socketserver.rst:454 ../Doc/library/socketserver.rst:553 msgid "This is the server side::" msgstr "Este es el lado del servidor:" -#: ../Doc/library/socketserver.rst:482 +#: ../Doc/library/socketserver.rst:484 msgid "" "An alternative request handler class that makes use of streams (file-like " "objects that simplify communication by providing the standard file " @@ -741,7 +741,7 @@ msgstr "" "secuencias (objetos similares a archivos que simplifican la comunicación al " "proporcionar la interfaz de archivo estándar):" -#: ../Doc/library/socketserver.rst:497 +#: ../Doc/library/socketserver.rst:499 msgid "" "The difference is that the ``readline()`` call in the second handler will " "call ``recv()`` multiple times until it encounters a newline character, " @@ -754,27 +754,27 @@ msgstr "" "simplemente retornará lo que se ha enviado desde el cliente en una llamada " "``sendall()`` ." -#: ../Doc/library/socketserver.rst:503 ../Doc/library/socketserver.rst:575 +#: ../Doc/library/socketserver.rst:505 ../Doc/library/socketserver.rst:577 msgid "This is the client side::" msgstr "Este es el lado del cliente:" -#: ../Doc/library/socketserver.rst:524 ../Doc/library/socketserver.rst:650 +#: ../Doc/library/socketserver.rst:526 ../Doc/library/socketserver.rst:652 msgid "The output of the example should look something like this:" msgstr "La salida del ejemplo debería verse así:" -#: ../Doc/library/socketserver.rst:526 +#: ../Doc/library/socketserver.rst:528 msgid "Server:" msgstr "Servidor:" -#: ../Doc/library/socketserver.rst:536 +#: ../Doc/library/socketserver.rst:538 msgid "Client:" msgstr "Cliente:" -#: ../Doc/library/socketserver.rst:549 +#: ../Doc/library/socketserver.rst:551 msgid ":class:`socketserver.UDPServer` Example" msgstr ":class:`socketserver.UDPServer` Ejemplo" -#: ../Doc/library/socketserver.rst:594 +#: ../Doc/library/socketserver.rst:596 msgid "" "The output of the example should look exactly like for the TCP server " "example." @@ -782,11 +782,11 @@ msgstr "" "La salida del ejemplo debería verse exactamente como en el ejemplo del " "servidor TCP." -#: ../Doc/library/socketserver.rst:598 +#: ../Doc/library/socketserver.rst:600 msgid "Asynchronous Mixins" msgstr "Mixins asincrónicos" -#: ../Doc/library/socketserver.rst:600 +#: ../Doc/library/socketserver.rst:602 msgid "" "To build asynchronous handlers, use the :class:`ThreadingMixIn` and :class:" "`ForkingMixIn` classes." @@ -794,11 +794,11 @@ msgstr "" "Para construir controladores asincrónicos, use las clases :class:" "`ThreadingMixIn` y :class:`ForkingMixIn`." -#: ../Doc/library/socketserver.rst:603 +#: ../Doc/library/socketserver.rst:605 msgid "An example for the :class:`ThreadingMixIn` class::" msgstr "Un ejemplo para la clase :class:`ThreadingMixIn` class ::" -#: ../Doc/library/socketserver.rst:661 +#: ../Doc/library/socketserver.rst:663 msgid "" "The :class:`ForkingMixIn` class is used in the same way, except that the " "server will spawn a new process for each request. Available only on POSIX " @@ -807,3 +807,12 @@ msgstr "" "La clase :class:`ForkingMixIn` se usa de la misma manera, excepto que el " "servidor generará un nuevo proceso para cada solicitud. Disponible solo en " "plataformas POSIX que admitan :func:`~os.fork`." + +#~ msgid "" +#~ "The :attr:`rfile` attributes of both classes support the :class:`io." +#~ "BufferedIOBase` readable interface, and :attr:`DatagramRequestHandler." +#~ "wfile` supports the :class:`io.BufferedIOBase` writable interface." +#~ msgstr "" +#~ "Los atributos :attr:`rfile` de ambas clases admiten la interfaz legible :" +#~ "class:`io.BufferedIOBase`, y :attr:`DatagramRequestHandler.wfile` admite " +#~ "la :class:`io.BufferedIOBase` interfaz de escritura." diff --git a/library/sqlite3.po b/library/sqlite3.po index d0c6ff3663..50a94ec2e5 100644 --- a/library/sqlite3.po +++ b/library/sqlite3.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-01-04 10:09-0300\n" "Last-Translator: Alfonso Areiza Guerra \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/sqlite3.rst:2 msgid ":mod:`sqlite3` --- DB-API 2.0 interface for SQLite databases" @@ -129,9 +128,10 @@ msgstr "" "`transactions`_." #: ../Doc/library/sqlite3.rst:73 +#, fuzzy msgid "" "First, we need to create a new database and open a database connection to " -"allow :mod:`!sqlite3` to work with it. Call :func:`sqlite3.connect` to to " +"allow :mod:`!sqlite3` to work with it. Call :func:`sqlite3.connect` to " "create a connection to the database :file:`tutorial.db` in the current " "working directory, implicitly creating it if it does not exist:" msgstr "" @@ -317,26 +317,31 @@ msgstr ":ref:`sqlite3-adapters`" msgid ":ref:`sqlite3-converters`" msgstr ":ref:`sqlite3-converters`" -#: ../Doc/library/sqlite3.rst:241 ../Doc/library/sqlite3.rst:556 +#: ../Doc/library/sqlite3.rst:241 ../Doc/library/sqlite3.rst:625 msgid ":ref:`sqlite3-connection-context-manager`" msgstr ":ref:`sqlite3-connection-context-manager`" -#: ../Doc/library/sqlite3.rst:243 +#: ../Doc/library/sqlite3.rst:242 +#, fuzzy +msgid ":ref:`sqlite3-howto-row-factory`" +msgstr ":ref:`sqlite3-adapters`" + +#: ../Doc/library/sqlite3.rst:244 msgid "" ":ref:`sqlite3-explanation` for in-depth background on transaction control." msgstr "" ":ref:`sqlite3-explanation` para obtener información detallada sobre el " "control de transacciones.." -#: ../Doc/library/sqlite3.rst:248 +#: ../Doc/library/sqlite3.rst:249 msgid "Reference" msgstr "Referencia" -#: ../Doc/library/sqlite3.rst:256 +#: ../Doc/library/sqlite3.rst:257 msgid "Module functions" msgstr "Funciones del módulo" -#: ../Doc/library/sqlite3.rst:263 +#: ../Doc/library/sqlite3.rst:265 msgid "Open a connection to an SQLite database." msgstr "Abre una conexión con una base de datos SQLite." @@ -344,28 +349,27 @@ msgstr "Abre una conexión con una base de datos SQLite." msgid "Parameters" msgstr "Parámetros" -#: ../Doc/library/sqlite3.rst:265 +#: ../Doc/library/sqlite3.rst:267 msgid "" -"The path to the database file to be opened. Pass ``\":memory:\"`` to open a " -"connection to a database that is in RAM instead of on disk." +"The path to the database file to be opened. You can pass ``\":memory:\"`` to " +"create an `SQLite database existing only in memory `_, and open a connection to it." msgstr "" -"La ruta al archivo de la base de datos que se pretende abrir. Pasa ``\":" -"memory:\"`` para abrir la conexión con la base de datos en memoria RAM en " -"lugar de el disco local." -#: ../Doc/library/sqlite3.rst:271 +#: ../Doc/library/sqlite3.rst:274 +#, fuzzy msgid "" -"How many seconds the connection should wait before raising an exception, if " -"the database is locked by another connection. If another connection opens a " -"transaction to modify the database, it will be locked until that transaction " -"is committed. Default five seconds." +"How many seconds the connection should wait before raising an :exc:" +"`OperationalError` when a table is locked. If another connection opens a " +"transaction to modify a table, that table will be locked until the " +"transaction is committed. Default five seconds." msgstr "" "Cuántos segundos la conexión debe esperar antes de lanzar una excepción si " "la base de datos está bloqueada por otra conexión. Si otra conexión abre una " "transacción para alterar la base de datos, será bloqueada antes que la " "transacción sea confirmada. Por defecto son 5 segundos." -#: ../Doc/library/sqlite3.rst:278 +#: ../Doc/library/sqlite3.rst:281 msgid "" "Control whether and how data types not :ref:`natively supported by SQLite " "` are looked up to be converted to Python types, using the " @@ -388,13 +392,15 @@ msgstr "" "establecido; :class:`str` será el retorno en su lugar. Por defecto (``0``), " "la detección de tipos está deshabilitada." -#: ../Doc/library/sqlite3.rst:292 +#: ../Doc/library/sqlite3.rst:295 +#, fuzzy msgid "" -"The :attr:`~Connection.isolation_level` of the connection, controlling " -"whether and how transactions are implicitly opened. Can be ``\"DEFERRED\"`` " -"(default), ``\"EXCLUSIVE\"`` or ``\"IMMEDIATE\"``; or ``None`` to disable " -"opening transactions implicitly. See :ref:`sqlite3-controlling-transactions` " -"for more." +"Control legacy transaction handling behaviour. See :attr:`Connection." +"isolation_level` and :ref:`sqlite3-transaction-control-isolation-level` for " +"more information. Can be ``\"DEFERRED\"`` (default), ``\"EXCLUSIVE\"`` or " +"``\"IMMEDIATE\"``; or ``None`` to disable opening transactions implicitly. " +"Has no effect unless :attr:`Connection.autocommit` is set to :const:" +"`~sqlite3.LEGACY_TRANSACTION_CONTROL` (the default)." msgstr "" "El :attr:`~Connection.isolation_level` de la conexión, controla si y cómo " "las transacciones son implícitamente abiertas. Puede ser ``\"DEFERRED\"`` " @@ -402,18 +408,21 @@ msgstr "" "deshabilitar transacciones abiertas implícitamente. Consulte :ref:`sqlite3-" "controlling-transactions` para más información." -#: ../Doc/library/sqlite3.rst:300 +#: ../Doc/library/sqlite3.rst:305 +#, fuzzy msgid "" -"If ``True`` (default), only the creating thread may use the connection. If " -"``False``, the connection may be shared across multiple threads; if so, " -"write operations should be serialized by the user to avoid data corruption." +"If ``True`` (default), :exc:`ProgrammingError` will be raised if the " +"database connection is used by a thread other than the one that created it. " +"If ``False``, the connection may be accessed in multiple threads; write " +"operations may need to be serialized by the user to avoid data corruption. " +"See :attr:`threadsafety` for more information." msgstr "" "Si es ``True`` (por defecto), sólo el hilo creador puede utilizar la " "conexión. Si es ``False``, la conexión se puede compartir entre varios " "hilos; de ser así, las operaciones de escritura deben ser serializadas por " "el usuario para evitar daños en los datos." -#: ../Doc/library/sqlite3.rst:306 +#: ../Doc/library/sqlite3.rst:314 msgid "" "A custom subclass of :class:`Connection` to create the connection with, if " "not the default :class:`Connection` class." @@ -421,7 +430,7 @@ msgstr "" "Una subclase personalizada de :class:`Connection` con la que crear la " "conexión, sino la :class:`Connection` será la predeterminada." -#: ../Doc/library/sqlite3.rst:310 +#: ../Doc/library/sqlite3.rst:318 msgid "" "The number of statements that :mod:`!sqlite3` should internally cache for " "this connection, to avoid parsing overhead. By default, 128 statements." @@ -430,7 +439,7 @@ msgstr "" "en caché para esta conexión, para evitar la sobrecarga de análisis. El valor " "predeterminada, son 128 instrucciones." -#: ../Doc/library/sqlite3.rst:315 +#: ../Doc/library/sqlite3.rst:323 msgid "" "If set to ``True``, *database* is interpreted as a :abbr:`URI (Uniform " "Resource Identifier)` with a file path and an optional query string. The " @@ -444,11 +453,20 @@ msgstr "" "``\"file:\"``, y la ruta puede ser relativa o absoluta. La consulta permite " "pasar parámetros a SQLite, habilitando varias :ref:`sqlite3-uri-tricks`." +#: ../Doc/library/sqlite3.rst:332 +msgid "" +"Control :pep:`249` transaction handling behaviour. See :attr:`Connection." +"autocommit` and :ref:`sqlite3-transaction-control-autocommit` for more " +"information. *autocommit* currently defaults to :const:`~sqlite3." +"LEGACY_TRANSACTION_CONTROL`. The default will change to ``False`` in a " +"future Python release." +msgstr "" + #: ../Doc/library/sqlite3.rst msgid "Return type" msgstr "Tipo de retorno" -#: ../Doc/library/sqlite3.rst:326 +#: ../Doc/library/sqlite3.rst:343 msgid "" "Raises an :ref:`auditing event ` ``sqlite3.connect`` with argument " "``database``." @@ -456,7 +474,7 @@ msgstr "" "Lanza un :ref:`auditing event ` ``sqlite3.connect`` con el " "argumento ``database``." -#: ../Doc/library/sqlite3.rst:327 +#: ../Doc/library/sqlite3.rst:344 msgid "" "Raises an :ref:`auditing event ` ``sqlite3.connect/handle`` with " "argument ``connection_handle``." @@ -464,22 +482,27 @@ msgstr "" "Lanza un :ref:`auditing event ` ``sqlite3.connect/handle`` con el " "argumento ``connection_handle``." -#: ../Doc/library/sqlite3.rst:329 +#: ../Doc/library/sqlite3.rst:346 msgid "The *uri* parameter." msgstr "Parámetro *uri*." -#: ../Doc/library/sqlite3.rst:332 +#: ../Doc/library/sqlite3.rst:349 msgid "" "*database* can now also be a :term:`path-like object`, not only a string." msgstr "" "*database* ahora también puede ser un :term:`path-like object`, no solo una " "cadena de caracteres." -#: ../Doc/library/sqlite3.rst:335 +#: ../Doc/library/sqlite3.rst:352 msgid "The ``sqlite3.connect/handle`` auditing event." msgstr "El evento de auditoría ``sqlite3.connect/handle``." -#: ../Doc/library/sqlite3.rst:340 +#: ../Doc/library/sqlite3.rst:355 +#, fuzzy +msgid "The *autocommit* parameter." +msgstr "Parámetro *uri*." + +#: ../Doc/library/sqlite3.rst:360 msgid "" "Return ``True`` if the string *statement* appears to contain one or more " "complete SQL statements. No syntactic verification or parsing of any kind is " @@ -492,11 +515,11 @@ msgstr "" "caracteres literales sin cerrar y que la sentencia se termine con un punto y " "coma." -#: ../Doc/library/sqlite3.rst:346 +#: ../Doc/library/sqlite3.rst:366 msgid "For example:" msgstr "Por ejemplo:" -#: ../Doc/library/sqlite3.rst:355 +#: ../Doc/library/sqlite3.rst:375 msgid "" "This function may be useful during command-line input to determine if the " "entered text seems to form a complete SQL statement, or if additional input " @@ -506,7 +529,13 @@ msgstr "" "si los textos introducidos parecen formar una sentencia completa SQL, o si " "una entrada adicional se necesita antes de llamar a :meth:`~Cursor.execute`." -#: ../Doc/library/sqlite3.rst:361 +#: ../Doc/library/sqlite3.rst:379 +msgid "" +"See :func:`!runsource` in :source:`Lib/sqlite3/__main__.py` for real-world " +"use." +msgstr "" + +#: ../Doc/library/sqlite3.rst:384 msgid "" "Enable or disable callback tracebacks. By default you will not get any " "tracebacks in user-defined functions, aggregates, converters, authorizer " @@ -521,7 +550,7 @@ msgstr "" "``True``. Después se obtendrán *tracebacks* de los *callbacks* en ``sys." "stderr``. Usar :const:`False` para deshabilitar la característica de nuevo." -#: ../Doc/library/sqlite3.rst:368 +#: ../Doc/library/sqlite3.rst:391 msgid "" "Register an :func:`unraisable hook handler ` for an " "improved debug experience:" @@ -529,10 +558,11 @@ msgstr "" "Registra una :func:`unraisable hook handler ` para una " "experiencia de depuración mejorada:" -#: ../Doc/library/sqlite3.rst:393 +#: ../Doc/library/sqlite3.rst:417 +#, fuzzy msgid "" -"Register an *adapter* callable to adapt the Python type *type* into an " -"SQLite type. The adapter is called with a Python object of type *type* as " +"Register an *adapter* :term:`callable` to adapt the Python type *type* into " +"an SQLite type. The adapter is called with a Python object of type *type* as " "its sole argument, and must return a value of a :ref:`type that SQLite " "natively understands `." msgstr "" @@ -541,9 +571,10 @@ msgstr "" "único argumento, y debe retornar un valor de un :ref:`tipo que SQLite " "entiende de forma nativa `." -#: ../Doc/library/sqlite3.rst:401 +#: ../Doc/library/sqlite3.rst:425 +#, fuzzy msgid "" -"Register the *converter* callable to convert SQLite objects of type " +"Register the *converter* :term:`callable` to convert SQLite objects of type " "*typename* into a Python object of a specific type. The converter is invoked " "for all SQLite values of type *typename*; it is passed a :class:`bytes` " "object and should return an object of the desired Python type. Consult the " @@ -557,7 +588,7 @@ msgstr "" "deseado. Consulte el parámetro *detect_types* de :func:`connect` para más " "información en cuanto a cómo funciona la detección de tipos." -#: ../Doc/library/sqlite3.rst:409 +#: ../Doc/library/sqlite3.rst:433 msgid "" "Note: *typename* and the name of the type in your query are matched case-" "insensitively." @@ -565,11 +596,18 @@ msgstr "" "Nota: *typename* y el nombre del tipo en tu consulta coinciden sin " "distinción entre mayúsculas y minúsculas." -#: ../Doc/library/sqlite3.rst:416 +#: ../Doc/library/sqlite3.rst:440 msgid "Module constants" msgstr "Constantes del módulo" -#: ../Doc/library/sqlite3.rst:420 +#: ../Doc/library/sqlite3.rst:444 +msgid "" +"Set :attr:`~Connection.autocommit` to this constant to select old style (pre-" +"Python 3.12) transaction control behaviour. See :ref:`sqlite3-transaction-" +"control-isolation-level` for more information." +msgstr "" + +#: ../Doc/library/sqlite3.rst:450 msgid "" "Pass this flag value to the *detect_types* parameter of :func:`connect` to " "look up a converter function by using the type name, parsed from the query " @@ -581,7 +619,7 @@ msgstr "" "nombre de la columna consultada, como la llave de diccionario del conversor. " "El nombre del tipo debe estar entre corchetes (``[]``)." -#: ../Doc/library/sqlite3.rst:430 +#: ../Doc/library/sqlite3.rst:460 msgid "" "This flag may be combined with :const:`PARSE_DECLTYPES` using the ``|`` " "(bitwise or) operator." @@ -589,7 +627,7 @@ msgstr "" "Esta flag puede ser combinada con :const:`PARSE_DECLTYPES` usando el " "operador ``|`` (*bitwise or*) ." -#: ../Doc/library/sqlite3.rst:435 +#: ../Doc/library/sqlite3.rst:465 msgid "" "Pass this flag value to the *detect_types* parameter of :func:`connect` to " "look up a converter function using the declared types for each column. The " @@ -604,7 +642,7 @@ msgstr "" "palabra del tipo declarado como la llave del diccionario conversor. Por " "ejemplo:" -#: ../Doc/library/sqlite3.rst:451 +#: ../Doc/library/sqlite3.rst:481 msgid "" "This flag may be combined with :const:`PARSE_COLNAMES` using the ``|`` " "(bitwise or) operator." @@ -612,32 +650,33 @@ msgstr "" "Esta puede ser combinada con :const:`PARSE_COLNAMES` usando el operador ``|" "`` (*bitwise or*)." -#: ../Doc/library/sqlite3.rst:458 +#: ../Doc/library/sqlite3.rst:488 +#, fuzzy msgid "" -"Flags that should be returned by the *authorizer_callback* callable passed " -"to :meth:`Connection.set_authorizer`, to indicate whether:" +"Flags that should be returned by the *authorizer_callback* :term:`callable` " +"passed to :meth:`Connection.set_authorizer`, to indicate whether:" msgstr "" "Flags que deben ser retornadas por el invocable *authorizer_callback* que se " "le pasa a :meth:`Connection.set_authorizer`, para indicar lo siguiente:" -#: ../Doc/library/sqlite3.rst:461 +#: ../Doc/library/sqlite3.rst:491 msgid "Access is allowed (:const:`!SQLITE_OK`)," msgstr "Acceso es permitido (:const:`!SQLITE_OK`)," -#: ../Doc/library/sqlite3.rst:462 +#: ../Doc/library/sqlite3.rst:492 msgid "" "The SQL statement should be aborted with an error (:const:`!SQLITE_DENY`)" msgstr "" "La sentencia SQL debería ser abortada con un error (:const:`!SQLITE_DENY`)" -#: ../Doc/library/sqlite3.rst:463 +#: ../Doc/library/sqlite3.rst:493 msgid "" "The column should be treated as a ``NULL`` value (:const:`!SQLITE_IGNORE`)" msgstr "" "La columna debería ser tratada como un valor ``NULL`` (:const:`!" "SQLITE_IGNORE`)" -#: ../Doc/library/sqlite3.rst:467 +#: ../Doc/library/sqlite3.rst:497 msgid "" "String constant stating the supported DB-API level. Required by the DB-API. " "Hard-coded to ``\"2.0\"``." @@ -645,7 +684,7 @@ msgstr "" "Cadena de caracteres constante que indica el nivel DB-API soportado. " "Requerido por DB-API. Codificado de forma rígida en ``\"2.0\"``." -#: ../Doc/library/sqlite3.rst:472 +#: ../Doc/library/sqlite3.rst:502 msgid "" "String constant stating the type of parameter marker formatting expected by " "the :mod:`!sqlite3` module. Required by the DB-API. Hard-coded to " @@ -655,25 +694,18 @@ msgstr "" "parámetros esperado por el módulo :mod:`!sqlite3`. Requerido por DB-API. " "Codificado de forma rígida en ``\"qmark\"``." -#: ../Doc/library/sqlite3.rst:478 -msgid "" -"The :mod:`!sqlite3` module supports both ``qmark`` and ``numeric`` DB-API " -"parameter styles, because that is what the underlying SQLite library " -"supports. However, the DB-API does not allow multiple values for the " -"``paramstyle`` attribute." +#: ../Doc/library/sqlite3.rst:508 +msgid "The ``named`` DB-API parameter style is also supported." msgstr "" -"El módulo :mod:`!sqlite3` soporta los parámetros de estilo DB-API ``qmark`` " -"y ``numeric``, porque eso es lo que admite la biblioteca. Sin embargo, la DB-" -"API no permite varios valores para el atributo ``paramstyle``." -#: ../Doc/library/sqlite3.rst:485 +#: ../Doc/library/sqlite3.rst:512 msgid "" "Version number of the runtime SQLite library as a :class:`string `." msgstr "" "El número de versión de la librería SQLite en tiempo de ejecución, como una :" "class:`cadena de caracteres `." -#: ../Doc/library/sqlite3.rst:489 +#: ../Doc/library/sqlite3.rst:516 msgid "" "Version number of the runtime SQLite library as a :class:`tuple` of :class:" "`integers `." @@ -681,7 +713,7 @@ msgstr "" "El número de versión de la librería SQLite en tiempo de ejecución, como una :" "class:`tupla ` de :class:`enteros `." -#: ../Doc/library/sqlite3.rst:494 +#: ../Doc/library/sqlite3.rst:521 msgid "" "Integer constant required by the DB-API 2.0, stating the level of thread " "safety the :mod:`!sqlite3` module supports. This attribute is set based on " @@ -694,7 +726,7 @@ msgstr "" "threadsafe.html>`_ por defecto con el que la biblioteca SQLite se compila. " "Los modos de subprocesamiento de SQLite son:" -#: ../Doc/library/sqlite3.rst:499 +#: ../Doc/library/sqlite3.rst:526 msgid "" "**Single-thread**: In this mode, all mutexes are disabled and SQLite is " "unsafe to use in more than a single thread at once." @@ -702,7 +734,7 @@ msgstr "" "**Single-thread**: En este modo, todos los *mutexes* son deshabilitados y no " "es seguro usar SQLite en más de un solo hilo a la vez." -#: ../Doc/library/sqlite3.rst:501 +#: ../Doc/library/sqlite3.rst:528 msgid "" "**Multi-thread**: In this mode, SQLite can be safely used by multiple " "threads provided that no single database connection is used simultaneously " @@ -712,7 +744,7 @@ msgstr "" "dado que que ninguna conexión de base de datos sea usada simultáneamente en " "dos o más hilos." -#: ../Doc/library/sqlite3.rst:504 +#: ../Doc/library/sqlite3.rst:531 msgid "" "**Serialized**: In serialized mode, SQLite can be safely used by multiple " "threads with no restriction." @@ -720,7 +752,7 @@ msgstr "" "**Serialized**: En el modo serializado, es seguro usar SQLite por varios " "hilos sin restricción." -#: ../Doc/library/sqlite3.rst:507 +#: ../Doc/library/sqlite3.rst:534 msgid "" "The mappings from SQLite threading modes to DB-API 2.0 threadsafety levels " "are as follows:" @@ -728,69 +760,69 @@ msgstr "" "Las asignaciones de los modos de subprocesos SQLite a los niveles de " "seguridad de subprocesos de DB-API 2.0 son las siguientes:" -#: ../Doc/library/sqlite3.rst:511 +#: ../Doc/library/sqlite3.rst:538 msgid "SQLite threading mode" msgstr "Modo de subprocesamiento SQLite" -#: ../Doc/library/sqlite3.rst:511 +#: ../Doc/library/sqlite3.rst:538 msgid "`threadsafety`_" msgstr "`threadsafety`_" -#: ../Doc/library/sqlite3.rst:511 +#: ../Doc/library/sqlite3.rst:538 msgid "`SQLITE_THREADSAFE`_" msgstr "`SQLITE_THREADSAFE`_" -#: ../Doc/library/sqlite3.rst:511 +#: ../Doc/library/sqlite3.rst:538 msgid "DB-API 2.0 meaning" msgstr "Significado de DB-API 2.0" -#: ../Doc/library/sqlite3.rst:514 +#: ../Doc/library/sqlite3.rst:541 msgid "single-thread" msgstr "single-thread" -#: ../Doc/library/sqlite3.rst:514 +#: ../Doc/library/sqlite3.rst:541 msgid "0" msgstr "0" -#: ../Doc/library/sqlite3.rst:514 +#: ../Doc/library/sqlite3.rst:541 msgid "Threads may not share the module" msgstr "Hilos no pueden compartir el módulo" -#: ../Doc/library/sqlite3.rst:517 +#: ../Doc/library/sqlite3.rst:544 msgid "multi-thread" msgstr "multi-thread" -#: ../Doc/library/sqlite3.rst:517 ../Doc/library/sqlite3.rst:520 +#: ../Doc/library/sqlite3.rst:544 ../Doc/library/sqlite3.rst:547 msgid "1" msgstr "1" -#: ../Doc/library/sqlite3.rst:517 +#: ../Doc/library/sqlite3.rst:544 msgid "2" msgstr "2" -#: ../Doc/library/sqlite3.rst:517 +#: ../Doc/library/sqlite3.rst:544 msgid "Threads may share the module, but not connections" msgstr "Hilos pueden compartir el módulo, pero no conexiones" -#: ../Doc/library/sqlite3.rst:520 +#: ../Doc/library/sqlite3.rst:547 msgid "serialized" msgstr "serialized" -#: ../Doc/library/sqlite3.rst:520 +#: ../Doc/library/sqlite3.rst:547 msgid "3" msgstr "3" -#: ../Doc/library/sqlite3.rst:520 +#: ../Doc/library/sqlite3.rst:547 msgid "Threads may share the module, connections and cursors" msgstr "Hilos pueden compartir el módulo, conexiones y cursores" -#: ../Doc/library/sqlite3.rst:527 +#: ../Doc/library/sqlite3.rst:554 msgid "Set *threadsafety* dynamically instead of hard-coding it to ``1``." msgstr "" "Establece *threadsafety* dinámicamente en vez de codificarlo rígidamente a " "``1``." -#: ../Doc/library/sqlite3.rst:532 +#: ../Doc/library/sqlite3.rst:559 msgid "" "Version number of this module as a :class:`string `. This is not the " "version of the SQLite library." @@ -798,7 +830,14 @@ msgstr "" "El número de versión de este módulo, como una :class:`cadena de caracteres " "`. Este no es la versión de la librería SQLite." -#: ../Doc/library/sqlite3.rst:537 +#: ../Doc/library/sqlite3.rst:565 ../Doc/library/sqlite3.rst:575 +msgid "" +"This constant used to reflect the version number of the ``pysqlite`` " +"package, a third-party library which used to upstream changes to :mod:`!" +"sqlite3`. Today, it carries no meaning or practical value." +msgstr "" + +#: ../Doc/library/sqlite3.rst:569 msgid "" "Version number of this module as a :class:`tuple` of :class:`integers " "`. This is not the version of the SQLite library." @@ -806,11 +845,31 @@ msgstr "" "El número de versión de este módulo, como una :class:`tupla ` de :" "class:`enteros `. Este no es la versión de la librería SQLite." -#: ../Doc/library/sqlite3.rst:544 +#: ../Doc/library/sqlite3.rst:596 +msgid "" +"These constants are used for the :meth:`Connection.setconfig` and :meth:" +"`~Connection.getconfig` methods." +msgstr "" + +#: ../Doc/library/sqlite3.rst:599 +msgid "" +"The availability of these constants varies depending on the version of " +"SQLite Python was compiled with." +msgstr "" + +#: ../Doc/library/sqlite3.rst:606 +msgid "https://www.sqlite.org/c3ref/c_dbconfig_defensive.html" +msgstr "" + +#: ../Doc/library/sqlite3.rst:607 +msgid "SQLite docs: Database Connection Configuration Options" +msgstr "" + +#: ../Doc/library/sqlite3.rst:613 msgid "Connection objects" msgstr "Objetos de conexión" -#: ../Doc/library/sqlite3.rst:548 +#: ../Doc/library/sqlite3.rst:617 msgid "" "Each open SQLite database is represented by a ``Connection`` object, which " "is created using :func:`sqlite3.connect`. Their main purpose is creating :" @@ -821,27 +880,28 @@ msgstr "" "principal es crear objetos :class:`Cursor`, y :ref:`sqlite3-controlling-" "transactions`." -#: ../Doc/library/sqlite3.rst:555 +#: ../Doc/library/sqlite3.rst:624 msgid ":ref:`sqlite3-connection-shortcuts`" msgstr ":ref:`sqlite3-connection-shortcuts`" -#: ../Doc/library/sqlite3.rst:558 +#: ../Doc/library/sqlite3.rst:627 msgid "An SQLite database connection has the following attributes and methods:" msgstr "" "Una conexión a una base de datos SQLite tiene los siguientes atributos y " "métodos:" -#: ../Doc/library/sqlite3.rst:562 +#: ../Doc/library/sqlite3.rst:631 +#, fuzzy msgid "" "Create and return a :class:`Cursor` object. The cursor method accepts a " -"single optional parameter *factory*. If supplied, this must be a callable " -"returning an instance of :class:`Cursor` or its subclasses." +"single optional parameter *factory*. If supplied, this must be a :term:" +"`callable` returning an instance of :class:`Cursor` or its subclasses." msgstr "" "Crea y retorna un objeto :class:`Cursor`. El método cursor acepta un único " "parámetro opcional *factory*. Si es agregado, éste debe ser un invocable que " "retorna una instancia de :class:`Cursor` o sus subclases." -#: ../Doc/library/sqlite3.rst:569 +#: ../Doc/library/sqlite3.rst:638 msgid "" "Open a :class:`Blob` handle to an existing :abbr:`BLOB (Binary Large " "OBject)`." @@ -849,19 +909,19 @@ msgstr "" "Abre una :class:`Blob` para manejar un :abbr:`BLOB (Binary Large OBject)` " "existente." -#: ../Doc/library/sqlite3.rst:572 +#: ../Doc/library/sqlite3.rst:641 msgid "The name of the table where the blob is located." msgstr "El nombre de la tabla donde el *blob* está ubicado." -#: ../Doc/library/sqlite3.rst:575 +#: ../Doc/library/sqlite3.rst:644 msgid "The name of the column where the blob is located." msgstr "El nombre de la columna donde el *blob* está ubicado." -#: ../Doc/library/sqlite3.rst:578 +#: ../Doc/library/sqlite3.rst:647 msgid "The name of the row where the blob is located." msgstr "El nombre de la fila donde el *blob* está ubicado." -#: ../Doc/library/sqlite3.rst:581 +#: ../Doc/library/sqlite3.rst:650 msgid "" "Set to ``True`` if the blob should be opened without write permissions. " "Defaults to ``False``." @@ -869,7 +929,7 @@ msgstr "" "Se define como ``True`` si el *blob* deberá ser abierto sin permisos de " "escritura. El valor por defecto es ``False``." -#: ../Doc/library/sqlite3.rst:586 +#: ../Doc/library/sqlite3.rst:655 msgid "" "The name of the database where the blob is located. Defaults to ``\"main\"``." msgstr "" @@ -880,11 +940,11 @@ msgstr "" msgid "Raises" msgstr "Lanza" -#: ../Doc/library/sqlite3.rst:590 +#: ../Doc/library/sqlite3.rst:659 msgid "When trying to open a blob in a ``WITHOUT ROWID`` table." msgstr "Cuando se intenta abrir un *blob* en una tabla ``WITHOUT ROWID``." -#: ../Doc/library/sqlite3.rst:597 +#: ../Doc/library/sqlite3.rst:666 msgid "" "The blob size cannot be changed using the :class:`Blob` class. Use the SQL " "function ``zeroblob`` to create a blob with a fixed size." @@ -892,33 +952,36 @@ msgstr "" "El tamaño de un *blob* no puede ser cambiado usando la clase :class:`Blob`. " "Usa la función de SQL ``zeroblob`` para crear un *blob* con un tamaño fijo." -#: ../Doc/library/sqlite3.rst:604 +#: ../Doc/library/sqlite3.rst:673 msgid "" -"Commit any pending transaction to the database. If there is no open " -"transaction, this method is a no-op." +"Commit any pending transaction to the database. If :attr:`autocommit` is " +"``True``, or there is no open transaction, this method does nothing. If :" +"attr:`!autocommit` is ``False``, a new transaction is implicitly opened if a " +"pending transaction was committed by this method." msgstr "" -"Guarda cualquier transacción pendiente en la base de datos. Si no hay " -"transacciones abiertas, este método es un *no-op*." -#: ../Doc/library/sqlite3.rst:609 +#: ../Doc/library/sqlite3.rst:681 msgid "" -"Roll back to the start of any pending transaction. If there is no open " -"transaction, this method is a no-op." +"Roll back to the start of any pending transaction. If :attr:`autocommit` is " +"``True``, or there is no open transaction, this method does nothing. If :" +"attr:`!autocommit` is ``False``, a new transaction is implicitly opened if a " +"pending transaction was rolled back by this method." msgstr "" -"Restaura a su comienzo, cualquier transacción pendiente. Si no hay " -"transacciones abiertas, este método es un *no-op*." -#: ../Doc/library/sqlite3.rst:614 +#: ../Doc/library/sqlite3.rst:689 +#, fuzzy msgid "" -"Close the database connection. Any pending transaction is not committed " -"implicitly; make sure to :meth:`commit` before closing to avoid losing " -"pending changes." +"Close the database connection. If :attr:`autocommit` is ``False``, any " +"pending transaction is implicitly rolled back. If :attr:`!autocommit` is " +"``True`` or :data:`LEGACY_TRANSACTION_CONTROL`, no implicit transaction " +"control is executed. Make sure to :meth:`commit` before closing to avoid " +"losing pending changes." msgstr "" "Cierra la conexión con la base de datos, y si hay alguna transacción " "pendiente, esta no será guardada; asegúrese de :meth:`commit` antes de " "cerrar la conexión, para evitar perder los cambios realizados." -#: ../Doc/library/sqlite3.rst:621 +#: ../Doc/library/sqlite3.rst:699 msgid "" "Create a new :class:`Cursor` object and call :meth:`~Cursor.execute` on it " "with the given *sql* and *parameters*. Return the new cursor object." @@ -926,7 +989,7 @@ msgstr "" "Crea un nuevo objeto :class:`Cursor` y llama :meth:`~Cursor.execute` con los " "parámetros y el SQL dados. Retorna el nuevo objeto cursor." -#: ../Doc/library/sqlite3.rst:627 +#: ../Doc/library/sqlite3.rst:705 msgid "" "Create a new :class:`Cursor` object and call :meth:`~Cursor.executemany` on " "it with the given *sql* and *parameters*. Return the new cursor object." @@ -934,7 +997,7 @@ msgstr "" "Crea una nueva :class:`Cursor` object and call :meth:`~Cursor.executemany` " "con los parámetros y el SQL dados. Retorna el nuevo objeto cursor." -#: ../Doc/library/sqlite3.rst:633 +#: ../Doc/library/sqlite3.rst:711 msgid "" "Create a new :class:`Cursor` object and call :meth:`~Cursor.executescript` " "on it with the given *sql_script*. Return the new cursor object." @@ -942,15 +1005,15 @@ msgstr "" "Crea una nueva :class:`Cursor` object and call :meth:`~Cursor.executescript` " "con el *sql_script* dado. Retorna el nuevo objeto cursor." -#: ../Doc/library/sqlite3.rst:639 +#: ../Doc/library/sqlite3.rst:717 msgid "Create or remove a user-defined SQL function." msgstr "Crea o elimina una función SQL definida por el usuario." -#: ../Doc/library/sqlite3.rst:641 +#: ../Doc/library/sqlite3.rst:719 msgid "The name of the SQL function." msgstr "El nombre de la función SQL." -#: ../Doc/library/sqlite3.rst:644 +#: ../Doc/library/sqlite3.rst:722 msgid "" "The number of arguments the SQL function can accept. If ``-1``, it may take " "any number of arguments." @@ -958,18 +1021,19 @@ msgstr "" "El número de argumentos que la función SQL puede aceptar. Si es ``-1``, " "podrá entonces recibir cualquier cantidad de argumentos." -#: ../Doc/library/sqlite3.rst:648 +#: ../Doc/library/sqlite3.rst:726 +#, fuzzy msgid "" -"A callable that is called when the SQL function is invoked. The callable " -"must return :ref:`a type natively supported by SQLite `. Set " -"to ``None`` to remove an existing SQL function." +"A :term:`callable` that is called when the SQL function is invoked. The " +"callable must return :ref:`a type natively supported by SQLite `. Set to ``None`` to remove an existing SQL function." msgstr "" "Un invocable que es llamado cuando la función SQL se invoca. El invocable " "debe retornar una :ref:`un tipo soportado de forma nativa por SQLite " "`. Se establece como ``None`` para eliminar una función SQL " "existente." -#: ../Doc/library/sqlite3.rst:655 +#: ../Doc/library/sqlite3.rst:733 msgid "" "If ``True``, the created SQL function is marked as `deterministic `_, which allows SQLite to perform additional " @@ -979,31 +1043,30 @@ msgstr "" "`determinista `_, lo cual permite a " "SQLite realizar optimizaciones adicionales." -#: ../Doc/library/sqlite3.rst:660 +#: ../Doc/library/sqlite3.rst:738 msgid "If *deterministic* is used with SQLite versions older than 3.8.3." msgstr "Si *deterministic* se usa con versiones anteriores a SQLite 3.8.3." -#: ../Doc/library/sqlite3.rst:663 +#: ../Doc/library/sqlite3.rst:741 msgid "The *deterministic* parameter." msgstr "El parámetro *deterministic*." -#: ../Doc/library/sqlite3.rst:666 ../Doc/library/sqlite3.rst:704 -#: ../Doc/library/sqlite3.rst:767 ../Doc/library/sqlite3.rst:1018 -#: ../Doc/library/sqlite3.rst:1242 ../Doc/library/sqlite3.rst:1272 -#: ../Doc/library/sqlite3.rst:1378 ../Doc/library/sqlite3.rst:1399 -#: ../Doc/library/sqlite3.rst:1538 +#: ../Doc/library/sqlite3.rst:744 ../Doc/library/sqlite3.rst:782 +#: ../Doc/library/sqlite3.rst:845 ../Doc/library/sqlite3.rst:1115 +#: ../Doc/library/sqlite3.rst:1415 ../Doc/library/sqlite3.rst:1552 +#: ../Doc/library/sqlite3.rst:1591 msgid "Example:" msgstr "Ejemplo:" -#: ../Doc/library/sqlite3.rst:682 +#: ../Doc/library/sqlite3.rst:760 msgid "Create or remove a user-defined SQL aggregate function." msgstr "Crea o elimina una función agregada SQL definida por el usuario." -#: ../Doc/library/sqlite3.rst:684 +#: ../Doc/library/sqlite3.rst:762 msgid "The name of the SQL aggregate function." msgstr "El nombre de la función agregada SQL." -#: ../Doc/library/sqlite3.rst:687 +#: ../Doc/library/sqlite3.rst:765 msgid "" "The number of arguments the SQL aggregate function can accept. If ``-1``, it " "may take any number of arguments." @@ -1011,7 +1074,7 @@ msgstr "" "El número de argumentos que la función agregada SQL puede aceptar. Si es " "``-1``, podrá entonces recibir cualquier cantidad de argumentos." -#: ../Doc/library/sqlite3.rst:691 +#: ../Doc/library/sqlite3.rst:769 msgid "" "A class must implement the following methods: * ``step()``: Add a row to " "the aggregate. * ``finalize()``: Return the final result of the aggregate " @@ -1026,15 +1089,15 @@ msgstr "" "es controlado por *n_arg*. Establece ``None`` para eliminar una función " "agregada SQL existente." -#: ../Doc/library/sqlite3.rst:692 +#: ../Doc/library/sqlite3.rst:770 msgid "A class must implement the following methods:" msgstr "Una clase debe implementar los siguiente métodos:" -#: ../Doc/library/sqlite3.rst:694 +#: ../Doc/library/sqlite3.rst:772 msgid "``step()``: Add a row to the aggregate." msgstr "``step()``: Agrega una fila al *aggregate*." -#: ../Doc/library/sqlite3.rst:695 ../Doc/library/sqlite3.rst:751 +#: ../Doc/library/sqlite3.rst:773 ../Doc/library/sqlite3.rst:829 msgid "" "``finalize()``: Return the final result of the aggregate as :ref:`a type " "natively supported by SQLite `." @@ -1042,7 +1105,7 @@ msgstr "" "``finalize()``: Retorna el final del resultado del aggregate como una :ref:" "`un tipo soportado nativamente por SQLite `." -#: ../Doc/library/sqlite3.rst:698 +#: ../Doc/library/sqlite3.rst:776 msgid "" "The number of arguments that the ``step()`` method must accept is controlled " "by *n_arg*." @@ -1050,20 +1113,20 @@ msgstr "" "La cantidad de argumentos que el método ``step()`` acepta es controlado por " "*n_arg*." -#: ../Doc/library/sqlite3.rst:701 +#: ../Doc/library/sqlite3.rst:779 msgid "Set to ``None`` to remove an existing SQL aggregate function." msgstr "Establece ``None`` para eliminar una función agregada SQL existente." -#: ../Doc/library/sqlite3.rst:736 +#: ../Doc/library/sqlite3.rst:814 msgid "Create or remove a user-defined aggregate window function." msgstr "" "Crea o elimina una función agregada de ventana definida por el usuario." -#: ../Doc/library/sqlite3.rst:738 +#: ../Doc/library/sqlite3.rst:816 msgid "The name of the SQL aggregate window function to create or remove." msgstr "El nombre de la función agregada de ventana a ser creada o eliminada." -#: ../Doc/library/sqlite3.rst:741 +#: ../Doc/library/sqlite3.rst:819 msgid "" "The number of arguments the SQL aggregate window function can accept. If " "``-1``, it may take any number of arguments." @@ -1071,7 +1134,7 @@ msgstr "" "La cantidad de argumentos que la función agregada de ventana SQL acepta. Si " "es ``-1``, podrá entonces recibir cualquier cantidad de argumentos." -#: ../Doc/library/sqlite3.rst:745 +#: ../Doc/library/sqlite3.rst:823 msgid "" "A class that must implement the following methods: * ``step()``: Add a row " "to the current window. * ``value()``: Return the current value of the " @@ -1091,23 +1154,23 @@ msgstr "" "controlados por *num_params*. Establece ``None`` para eliminar una función " "agregada de ventana SQL." -#: ../Doc/library/sqlite3.rst:746 +#: ../Doc/library/sqlite3.rst:824 msgid "A class that must implement the following methods:" msgstr "Una clase debe implementar los siguientes métodos:" -#: ../Doc/library/sqlite3.rst:748 +#: ../Doc/library/sqlite3.rst:826 msgid "``step()``: Add a row to the current window." msgstr "``step()``: Agrega una fila a la ventana actual." -#: ../Doc/library/sqlite3.rst:749 +#: ../Doc/library/sqlite3.rst:827 msgid "``value()``: Return the current value of the aggregate." msgstr "``value()``: Retorna el valor actual al *aggregate*." -#: ../Doc/library/sqlite3.rst:750 +#: ../Doc/library/sqlite3.rst:828 msgid "``inverse()``: Remove a row from the current window." msgstr "``inverse()``: Elimina una fila de la ventana actual." -#: ../Doc/library/sqlite3.rst:754 +#: ../Doc/library/sqlite3.rst:832 msgid "" "The number of arguments that the ``step()`` and ``value()`` methods must " "accept is controlled by *num_params*." @@ -1115,13 +1178,13 @@ msgstr "" "La cantidad de argumentos que los métodos ``step()`` y ``value()`` pueden " "aceptar son controlados por *num_params*." -#: ../Doc/library/sqlite3.rst:757 +#: ../Doc/library/sqlite3.rst:835 msgid "Set to ``None`` to remove an existing SQL aggregate window function." msgstr "" "Establece ``None`` para eliminar una función agregada de ventana SQL " "existente." -#: ../Doc/library/sqlite3.rst:759 +#: ../Doc/library/sqlite3.rst:837 msgid "" "If used with a version of SQLite older than 3.25.0, which does not support " "aggregate window functions." @@ -1129,7 +1192,7 @@ msgstr "" "Si es usado con una versión de SQLite inferior a 3.25.0, la cual no soporte " "funciones agregadas de ventana." -#: ../Doc/library/sqlite3.rst:822 +#: ../Doc/library/sqlite3.rst:900 msgid "" "Create a collation named *name* using the collating function *callable*. " "*callable* is passed two :class:`string ` arguments, and it should " @@ -1139,28 +1202,28 @@ msgstr "" "A *callable* se le pasan dos argumentos :class:`string `, y este " "debería retornar un :class:`entero `:" -#: ../Doc/library/sqlite3.rst:826 +#: ../Doc/library/sqlite3.rst:904 msgid "``1`` if the first is ordered higher than the second" msgstr "``1`` si el primero es ordenado más alto que el segundo" -#: ../Doc/library/sqlite3.rst:827 +#: ../Doc/library/sqlite3.rst:905 msgid "``-1`` if the first is ordered lower than the second" msgstr "``-1`` si el primero es ordenado más pequeño que el segundo" -#: ../Doc/library/sqlite3.rst:828 +#: ../Doc/library/sqlite3.rst:906 msgid "``0`` if they are ordered equal" msgstr "``0`` si están ordenados de manera igual" -#: ../Doc/library/sqlite3.rst:830 +#: ../Doc/library/sqlite3.rst:908 msgid "The following example shows a reverse sorting collation:" msgstr "El siguiente ejemplo muestra una ordenación de colación inversa:" -#: ../Doc/library/sqlite3.rst:858 +#: ../Doc/library/sqlite3.rst:936 msgid "Remove a collation function by setting *callable* to ``None``." msgstr "" "Elimina una función de colación al establecer el *callable* como ``None``." -#: ../Doc/library/sqlite3.rst:860 +#: ../Doc/library/sqlite3.rst:938 msgid "" "The collation name can contain any Unicode character. Earlier, only ASCII " "characters were allowed." @@ -1168,22 +1231,25 @@ msgstr "" "El nombre de la colación puede contener cualquier caracter Unicode. " "Anteriormente, solamente caracteres ASCII eran permitidos." -#: ../Doc/library/sqlite3.rst:867 +#: ../Doc/library/sqlite3.rst:945 +#, fuzzy msgid "" "Call this method from a different thread to abort any queries that might be " -"executing on the connection. Aborted queries will raise an exception." +"executing on the connection. Aborted queries will raise an :exc:" +"`OperationalError`." msgstr "" "Se puede llamar este método desde un hilo diferente para abortar cualquier " "consulta que pueda estar ejecutándose en la conexión. Consultas abortadas " "lanzaran una excepción." -#: ../Doc/library/sqlite3.rst:874 +#: ../Doc/library/sqlite3.rst:952 +#, fuzzy msgid "" -"Register callable *authorizer_callback* to be invoked for each attempt to " -"access a column of a table in the database. The callback should return one " -"of :const:`SQLITE_OK`, :const:`SQLITE_DENY`, or :const:`SQLITE_IGNORE` to " -"signal how access to the column should be handled by the underlying SQLite " -"library." +"Register :term:`callable` *authorizer_callback* to be invoked for each " +"attempt to access a column of a table in the database. The callback should " +"return one of :const:`SQLITE_OK`, :const:`SQLITE_DENY`, or :const:" +"`SQLITE_IGNORE` to signal how access to the column should be handled by the " +"underlying SQLite library." msgstr "" "Registra un invocable *authorizer_callback* que será invocado por cada " "intento de acceso a la columna de la tabla en la base de datos. La " @@ -1191,7 +1257,7 @@ msgstr "" "un :const:`SQLITE_IGNORE` para indicar cómo el acceso a la columna deberá " "ser manipulado por las capas inferiores de la biblioteca SQLite." -#: ../Doc/library/sqlite3.rst:880 +#: ../Doc/library/sqlite3.rst:959 msgid "" "The first argument to the callback signifies what kind of operation is to be " "authorized. The second and third argument will be arguments or ``None`` " @@ -1208,7 +1274,7 @@ msgstr "" "intentos de acceso o ``None`` si este intento de acceso es directo desde el " "código SQL de entrada." -#: ../Doc/library/sqlite3.rst:887 +#: ../Doc/library/sqlite3.rst:966 msgid "" "Please consult the SQLite documentation about the possible values for the " "first argument and the meaning of the second and third argument depending on " @@ -1220,18 +1286,19 @@ msgstr "" "dependiendo del primero. Todas las constantes necesarias están disponibles " "en el módulo :mod:`!sqlite3`." -#: ../Doc/library/sqlite3.rst:891 +#: ../Doc/library/sqlite3.rst:970 msgid "Passing ``None`` as *authorizer_callback* will disable the authorizer." msgstr "" "Pasando ``None`` como *authorizer_callback* deshabilitará el autorizador." -#: ../Doc/library/sqlite3.rst:893 +#: ../Doc/library/sqlite3.rst:972 msgid "Added support for disabling the authorizer using ``None``." msgstr "Agregado soporte para deshabilitar el autorizador usando ``None``." -#: ../Doc/library/sqlite3.rst:899 +#: ../Doc/library/sqlite3.rst:978 +#, fuzzy msgid "" -"Register callable *progress_handler* to be invoked for every *n* " +"Register :term:`callable` *progress_handler* to be invoked for every *n* " "instructions of the SQLite virtual machine. This is useful if you want to " "get called from SQLite during long-running operations, for example to update " "a GUI." @@ -1241,7 +1308,7 @@ msgstr "" "recibir llamados de SQLite durante una operación de larga duración, como por " "ejemplo la actualización de una GUI." -#: ../Doc/library/sqlite3.rst:904 +#: ../Doc/library/sqlite3.rst:983 msgid "" "If you want to clear any previously installed progress handler, call the " "method with ``None`` for *progress_handler*." @@ -1249,24 +1316,26 @@ msgstr "" "Si se desea limpiar cualquier *progress_handler* instalado anteriormente, " "llame el método con ``None`` para *progress_handler*." -#: ../Doc/library/sqlite3.rst:907 +#: ../Doc/library/sqlite3.rst:986 +#, fuzzy msgid "" "Returning a non-zero value from the handler function will terminate the " -"currently executing query and cause it to raise an :exc:`OperationalError` " +"currently executing query and cause it to raise a :exc:`DatabaseError` " "exception." msgstr "" "Retornando un valor diferente a 0 de la función gestora terminará la actual " "consulta en ejecución y causará lanzar una excepción :exc:`OperationalError`." -#: ../Doc/library/sqlite3.rst:914 +#: ../Doc/library/sqlite3.rst:993 +#, fuzzy msgid "" -"Register callable *trace_callback* to be invoked for each SQL statement that " -"is actually executed by the SQLite backend." +"Register :term:`callable` *trace_callback* to be invoked for each SQL " +"statement that is actually executed by the SQLite backend." msgstr "" "Registra un invocable *trace_callback* que será llamado por cada sentencia " "SQL que sea de hecho ejecutada por el *backend* de SQLite." -#: ../Doc/library/sqlite3.rst:917 +#: ../Doc/library/sqlite3.rst:996 msgid "" "The only argument passed to the callback is the statement (as :class:`str`) " "that is being executed. The return value of the callback is ignored. Note " @@ -1283,12 +1352,12 @@ msgstr "" "`!sqlite3` y la ejecución de disparadores definidos en la base de datos " "actual." -#: ../Doc/library/sqlite3.rst:925 +#: ../Doc/library/sqlite3.rst:1004 msgid "Passing ``None`` as *trace_callback* will disable the trace callback." msgstr "" "Pasando ``None`` como *trace_callback* deshabilitará el *trace callback*." -#: ../Doc/library/sqlite3.rst:928 +#: ../Doc/library/sqlite3.rst:1007 msgid "" "Exceptions raised in the trace callback are not propagated. As a development " "and debugging aid, use :meth:`~sqlite3.enable_callback_tracebacks` to enable " @@ -1299,7 +1368,7 @@ msgstr "" "enable_callback_tracebacks` para habilitar la impresión de *tracebacks* de " "las excepciones que se producen en la llamada de retorno." -#: ../Doc/library/sqlite3.rst:938 +#: ../Doc/library/sqlite3.rst:1017 msgid "" "Enable the SQLite engine to load SQLite extensions from shared libraries if " "*enabled* is ``True``; else, disallow loading SQLite extensions. SQLite " @@ -1314,7 +1383,7 @@ msgstr "" "enteras. Una extensión bien conocida es *fulltext-search* distribuida con " "SQLite." -#: ../Doc/library/sqlite3.rst:947 +#: ../Doc/library/sqlite3.rst:1026 msgid "" "The :mod:`!sqlite3` module is not built with loadable extension support by " "default, because some platforms (notably macOS) have SQLite libraries which " @@ -1328,7 +1397,7 @@ msgstr "" "obtener soporte para extensiones cargables, debe pasar la opción :option:`--" "enable-loadable-sqlite-extensions` a :program:`configure`." -#: ../Doc/library/sqlite3.rst:954 +#: ../Doc/library/sqlite3.rst:1033 msgid "" "Raises an :ref:`auditing event ` ``sqlite3.enable_load_extension`` " "with arguments ``connection``, ``enabled``." @@ -1336,21 +1405,33 @@ msgstr "" "Lanza un :ref:`auditing event ` ``sqlite3.enable_load_extension`` " "con los argumentos ``connection``, ``enabled``." -#: ../Doc/library/sqlite3.rst:958 +#: ../Doc/library/sqlite3.rst:1037 msgid "Added the ``sqlite3.enable_load_extension`` auditing event." msgstr "Agregado el evento de auditoría ``sqlite3.enable_load_extension``." -#: ../Doc/library/sqlite3.rst:1001 +#: ../Doc/library/sqlite3.rst:1080 +#, fuzzy msgid "" -"Load an SQLite extension from a shared library located at *path*. Enable " -"extension loading with :meth:`enable_load_extension` before calling this " -"method." +"Load an SQLite extension from a shared library. Enable extension loading " +"with :meth:`enable_load_extension` before calling this method." msgstr "" "Carga una extensión SQLite de una biblioteca compartida ubicada en *path*. " "Se debe habilitar la carga de extensiones con :meth:`enable_load_extension` " "antes de llamar este método." -#: ../Doc/library/sqlite3.rst:1005 +#: ../Doc/library/sqlite3.rst:1084 +#, fuzzy +msgid "The path to the SQLite extension." +msgstr "El nombre de la función SQL." + +#: ../Doc/library/sqlite3.rst:1088 +msgid "" +"Entry point name. If ``None`` (the default), SQLite will come up with an " +"entry point name of its own; see the SQLite docs `Loading an Extension`_ for " +"details." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1097 msgid "" "Raises an :ref:`auditing event ` ``sqlite3.load_extension`` with " "arguments ``connection``, ``path``." @@ -1358,11 +1439,16 @@ msgstr "" "Lanza un :ref:`auditing event ` ``sqlite3.load_extension`` con " "argumentos ``connection``, ``path``." -#: ../Doc/library/sqlite3.rst:1009 +#: ../Doc/library/sqlite3.rst:1101 msgid "Added the ``sqlite3.load_extension`` auditing event." msgstr "Agregado el evento de auditoría ``sqlite3.load_extension``." -#: ../Doc/library/sqlite3.rst:1014 +#: ../Doc/library/sqlite3.rst:1104 +#, fuzzy +msgid "The *entrypoint* parameter." +msgstr "Parámetro *uri*." + +#: ../Doc/library/sqlite3.rst:1111 msgid "" "Return an :term:`iterator` to dump the database as SQL source code. Useful " "when saving an in-memory database for later restoration. Similar to the ``." @@ -1373,11 +1459,11 @@ msgstr "" "posterior restauración. Esta función provee las mismas capacidades que el " "comando ``.dump`` en el *shell* :program:`sqlite3`." -#: ../Doc/library/sqlite3.rst:1032 +#: ../Doc/library/sqlite3.rst:1129 msgid "Create a backup of an SQLite database." msgstr "Crea una copia de seguridad de la base de datos SQLite." -#: ../Doc/library/sqlite3.rst:1034 +#: ../Doc/library/sqlite3.rst:1131 msgid "" "Works even if the database is being accessed by other clients or " "concurrently by the same connection." @@ -1385,11 +1471,11 @@ msgstr "" "Funciona incluso si la base de datos está siendo accedida por otros clientes " "al mismo tiempo sobre la misma conexión." -#: ../Doc/library/sqlite3.rst:1037 +#: ../Doc/library/sqlite3.rst:1134 msgid "The database connection to save the backup to." msgstr "La conexión de la base de datos para guardar la copia de seguridad." -#: ../Doc/library/sqlite3.rst:1040 +#: ../Doc/library/sqlite3.rst:1137 msgid "" "The number of pages to copy at a time. If equal to or less than ``0``, the " "entire database is copied in a single step. Defaults to ``-1``." @@ -1398,12 +1484,13 @@ msgstr "" "``0``, toda la base de datos será copiada en un solo paso. El valor por " "defecto es ``-1``." -#: ../Doc/library/sqlite3.rst:1046 +#: ../Doc/library/sqlite3.rst:1143 +#, fuzzy msgid "" -"If set to a callable, it is invoked with three integer arguments for every " -"backup iteration: the *status* of the last iteration, the *remaining* number " -"of pages still to be copied, and the *total* number of pages. Defaults to " -"``None``." +"If set to a :term:`callable`, it is invoked with three integer arguments for " +"every backup iteration: the *status* of the last iteration, the *remaining* " +"number of pages still to be copied, and the *total* number of pages. " +"Defaults to ``None``." msgstr "" "Si se establece un invocable, este será invocado con 3 argumentos enteros " "para cada iteración sobre la copia de seguridad: el *status* de la última " @@ -1411,7 +1498,7 @@ msgstr "" "copiadas, y el *total* que indica le número total de páginas. El valor por " "defecto es ``None``." -#: ../Doc/library/sqlite3.rst:1055 +#: ../Doc/library/sqlite3.rst:1152 msgid "" "The name of the database to back up. Either ``\"main\"`` (the default) for " "the main database, ``\"temp\"`` for the temporary database, or the name of a " @@ -1422,7 +1509,7 @@ msgstr "" "datos temporal, o el nombre de una base de datos personalizada adjuntada " "usando la sentencia ``ATTACH DATABASE``." -#: ../Doc/library/sqlite3.rst:1062 +#: ../Doc/library/sqlite3.rst:1159 msgid "" "The number of seconds to sleep between successive attempts to back up " "remaining pages." @@ -1430,30 +1517,30 @@ msgstr "" "Número de segundos a dormir entre sucesivos intentos para respaldar páginas " "restantes." -#: ../Doc/library/sqlite3.rst:1066 +#: ../Doc/library/sqlite3.rst:1163 msgid "Example 1, copy an existing database into another:" msgstr "Ejemplo 1, copiar una base de datos existente en otra:" -#: ../Doc/library/sqlite3.rst:1085 +#: ../Doc/library/sqlite3.rst:1182 msgid "Example 2, copy an existing database into a transient copy:" msgstr "" "Ejemplo 2: copiar una base de datos existente en una copia transitoria:" -#: ../Doc/library/sqlite3.rst:1097 +#: ../Doc/library/sqlite3.rst:1194 msgid "Get a connection runtime limit." msgstr "Obtiene el límite de tiempo de ejecución de una conexión." -#: ../Doc/library/sqlite3.rst:1099 +#: ../Doc/library/sqlite3.rst:1196 msgid "The `SQLite limit category`_ to be queried." msgstr "La `SQLite limit category`_ a ser consultada." -#: ../Doc/library/sqlite3.rst:1104 ../Doc/library/sqlite3.rst:1141 +#: ../Doc/library/sqlite3.rst:1201 ../Doc/library/sqlite3.rst:1238 msgid "If *category* is not recognised by the underlying SQLite library." msgstr "" "Si *category* no se reconoce por las capas inferiores de la biblioteca " "SQLite." -#: ../Doc/library/sqlite3.rst:1107 +#: ../Doc/library/sqlite3.rst:1204 msgid "" "Example, query the maximum length of an SQL statement for :class:" "`Connection` ``con`` (the default is 1000000000):" @@ -1461,7 +1548,7 @@ msgstr "" "Ejemplo, consulta el tamaño máximo de una sentencia SQL para la :class:" "`Connection` ``con`` (el valor por defecto es 1000000000):" -#: ../Doc/library/sqlite3.rst:1127 +#: ../Doc/library/sqlite3.rst:1224 #, fuzzy msgid "" "Set a connection runtime limit. Attempts to increase a limit above its hard " @@ -1474,16 +1561,16 @@ msgstr "" "límite superior duro. Independientemente de si se cambió o no el límite, se " "retorna el valor anterior del límite." -#: ../Doc/library/sqlite3.rst:1132 +#: ../Doc/library/sqlite3.rst:1229 msgid "The `SQLite limit category`_ to be set." msgstr "La `SQLite limit category`_ a ser establecido." -#: ../Doc/library/sqlite3.rst:1135 +#: ../Doc/library/sqlite3.rst:1232 msgid "" "The value of the new limit. If negative, the current limit is unchanged." msgstr "El valor del nuevo límite. Si es negativo, el límite actual no cambia." -#: ../Doc/library/sqlite3.rst:1144 +#: ../Doc/library/sqlite3.rst:1241 msgid "" "Example, limit the number of attached databases to 1 for :class:`Connection` " "``con`` (the default limit is 10):" @@ -1491,7 +1578,25 @@ msgstr "" "Por ejemplo, limite el número de bases de datos adjuntas a 1 para la :class:" "`Connection` ``con`` (el valor por defecto es 10):" -#: ../Doc/library/sqlite3.rst:1161 +#: ../Doc/library/sqlite3.rst:1258 +msgid "Query a boolean connection configuration option." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1260 ../Doc/library/sqlite3.rst:1271 +msgid "A :ref:`SQLITE_DBCONFIG code `." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1269 +msgid "Set a boolean connection configuration option." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1274 +msgid "" +"``True`` if the configuration option should be enabled (default); ``False`` " +"if it should be disabled." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1282 msgid "" "Serialize a database into a :class:`bytes` object. For an ordinary on-disk " "database file, the serialization is just a copy of the disk file. For an in-" @@ -1506,13 +1611,13 @@ msgstr "" "escribiría en el disco si se hiciera una copia de seguridad de esa base de " "datos en el disco." -#: ../Doc/library/sqlite3.rst:1167 +#: ../Doc/library/sqlite3.rst:1288 msgid "The database name to be serialized. Defaults to ``\"main\"``." msgstr "" "El nombre de la base de datos a ser serializada. El valor por defecto es " "``\"main\"``." -#: ../Doc/library/sqlite3.rst:1175 +#: ../Doc/library/sqlite3.rst:1296 msgid "" "This method is only available if the underlying SQLite library has the " "serialize API." @@ -1520,7 +1625,7 @@ msgstr "" "Este método solo está disponible si las capas internas de la biblioteca " "SQLite tienen la API *serialise*." -#: ../Doc/library/sqlite3.rst:1183 +#: ../Doc/library/sqlite3.rst:1304 msgid "" "Deserialize a :meth:`serialized ` database into a :class:" "`Connection`. This method causes the database connection to disconnect from " @@ -1532,17 +1637,17 @@ msgstr "" "desconecte de la base de datos *name*, y la abre nuevamente como una base de " "datos en memoria, basada en la serialización contenida en *data*." -#: ../Doc/library/sqlite3.rst:1189 +#: ../Doc/library/sqlite3.rst:1310 msgid "A serialized database." msgstr "Una base de datos serializada." -#: ../Doc/library/sqlite3.rst:1192 +#: ../Doc/library/sqlite3.rst:1313 msgid "The database name to deserialize into. Defaults to ``\"main\"``." msgstr "" "El nombre de la base de datos a ser deserializada. El valor por defecto es " "``\"main\"``." -#: ../Doc/library/sqlite3.rst:1196 +#: ../Doc/library/sqlite3.rst:1317 msgid "" "If the database connection is currently involved in a read transaction or a " "backup operation." @@ -1550,15 +1655,15 @@ msgstr "" "Si la conexión con la base de datos está actualmente involucrada en una " "transacción de lectura o una operación de copia de seguridad." -#: ../Doc/library/sqlite3.rst:1200 +#: ../Doc/library/sqlite3.rst:1321 msgid "If *data* does not contain a valid SQLite database." msgstr "Si *data* no contiene una base de datos SQLite válida." -#: ../Doc/library/sqlite3.rst:1203 +#: ../Doc/library/sqlite3.rst:1324 msgid "If :func:`len(data) ` is larger than ``2**63 - 1``." msgstr "Si :func:`len(data) ` es más grande que ``2**63 - 1``." -#: ../Doc/library/sqlite3.rst:1208 +#: ../Doc/library/sqlite3.rst:1329 msgid "" "This method is only available if the underlying SQLite library has the " "deserialize API." @@ -1566,7 +1671,56 @@ msgstr "" "Este método solo está disponible si las capas internas de la biblioteca " "SQLite tienen la API *deserialize*." -#: ../Doc/library/sqlite3.rst:1215 +#: ../Doc/library/sqlite3.rst:1336 +msgid "" +"This attribute controls :pep:`249`-compliant transaction behaviour. :attr:`!" +"autocommit` has three allowed values:" +msgstr "" + +#: ../Doc/library/sqlite3.rst:1339 +msgid "" +"``False``: Select :pep:`249`-compliant transaction behaviour, implying that :" +"mod:`!sqlite3` ensures a transaction is always open. Use :meth:`commit` and :" +"meth:`rollback` to close transactions." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1343 +msgid "This is the recommended value of :attr:`!autocommit`." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1345 +msgid "" +"``True``: Use SQLite's `autocommit mode`_. :meth:`commit` and :meth:" +"`rollback` have no effect in this mode." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1348 +msgid "" +":data:`LEGACY_TRANSACTION_CONTROL`: Pre-Python 3.12 (non-:pep:`249`-" +"compliant) transaction control. See :attr:`isolation_level` for more details." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1352 +msgid "This is currently the default value of :attr:`!autocommit`." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1354 +msgid "" +"Changing :attr:`!autocommit` to ``False`` will open a new transaction, and " +"changing it to ``True`` will commit any pending transaction." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1357 +msgid "See :ref:`sqlite3-transaction-control-autocommit` for more details." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1361 +msgid "" +"The :attr:`isolation_level` attribute has no effect unless :attr:" +"`autocommit` is :data:`LEGACY_TRANSACTION_CONTROL`." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1368 msgid "" "This read-only attribute corresponds to the low-level SQLite `autocommit " "mode`_." @@ -1574,7 +1728,7 @@ msgstr "" "Este atributo de solo lectura corresponde al `autocommit mode`_ de SQLite de " "bajo nivel." -#: ../Doc/library/sqlite3.rst:1218 +#: ../Doc/library/sqlite3.rst:1371 msgid "" "``True`` if a transaction is active (there are uncommitted changes), " "``False`` otherwise." @@ -1582,14 +1736,15 @@ msgstr "" "``True`` si una transacción está activa (existen cambios sin confirmar)," "``False`` en caso contrario." -#: ../Doc/library/sqlite3.rst:1225 +#: ../Doc/library/sqlite3.rst:1378 +#, fuzzy msgid "" -"This attribute controls the :ref:`transaction handling ` performed by :mod:`!sqlite3`. If set to ``None``, " +"Controls the :ref:`legacy transaction handling mode ` of :mod:`!sqlite3`. If set to ``None``, " "transactions are never implicitly opened. If set to one of ``\"DEFERRED\"``, " "``\"IMMEDIATE\"``, or ``\"EXCLUSIVE\"``, corresponding to the underlying " -"`SQLite transaction behaviour`_, implicit :ref:`transaction management " -"` is performed." +"`SQLite transaction behaviour`_, :ref:`implicit transaction management " +"` is performed." msgstr "" "Este atributo controla la :ref:`transaction handling ` realizado por :mod:`!sqlite3`. Si se establece como ``None``, " @@ -1598,7 +1753,7 @@ msgstr "" "al `SQLite transaction behaviour`_, de las capas inferiores, implícitamente " "se realiza :ref:`transaction management `." -#: ../Doc/library/sqlite3.rst:1233 +#: ../Doc/library/sqlite3.rst:1386 msgid "" "If not overridden by the *isolation_level* parameter of :func:`connect`, the " "default is ``\"\"``, which is an alias for ``\"DEFERRED\"``." @@ -1606,39 +1761,36 @@ msgstr "" "Si no se sobreescribe por el parámetro *isolation_level* de :func:`connect`, " "el valor predeterminado es ``\"\"``, que es un alias para ``\"DEFERRED\"``." -#: ../Doc/library/sqlite3.rst:1238 +#: ../Doc/library/sqlite3.rst:1391 msgid "" -"A callable that accepts two arguments, a :class:`Cursor` object and the raw " -"row results as a :class:`tuple`, and returns a custom object representing an " -"SQLite row." +"Using :attr:`autocommit` to control transaction handling is recommended over " +"using :attr:`!isolation_level`. :attr:`!isolation_level` has no effect " +"unless :attr:`autocommit` is set to :data:`LEGACY_TRANSACTION_CONTROL` (the " +"default)." msgstr "" -"Un objeto invocable que acepta dos argumentos, un objeto :class:`Cursor` y " -"los resultados de la fila sin procesar como una :class:`tupla `, y " -"retorna un objeto personalizado que representa una fila SQLite." -#: ../Doc/library/sqlite3.rst:1255 +#: ../Doc/library/sqlite3.rst:1398 msgid "" -"If returning a tuple doesn't suffice and you want name-based access to " -"columns, you should consider setting :attr:`row_factory` to the highly " -"optimized :class:`sqlite3.Row` type. :class:`Row` provides both index-based " -"and case-insensitive name-based access to columns with almost no memory " -"overhead. It will probably be better than your own custom dictionary-based " -"approach or even a db_row based solution." +"The initial :attr:`~Cursor.row_factory` for :class:`Cursor` objects created " +"from this connection. Assigning to this attribute does not affect the :attr:" +"`!row_factory` of existing cursors belonging to this connection, only new " +"ones. Is ``None`` by default, meaning each row is returned as a :class:" +"`tuple`." msgstr "" -"Si retorna una tupla no es suficiente y desea acceso basado en nombres a las " -"columnas se debe considerar configurar :attr:`row_factory` a la altamente " -"optimizada tipo :class:`sqlite3.Row`. :class:`Row` provee ambos accesos a " -"columnas basada en índice y tipado insensible con casi nada de sobrecoste de " -"memoria. Será probablemente mejor que tú propio enfoque de basado en " -"diccionario personalizado o incluso mejor que una solución basada en " -"*db_row*." -#: ../Doc/library/sqlite3.rst:1266 +#: ../Doc/library/sqlite3.rst:1405 ../Doc/library/sqlite3.rst:1718 +#: ../Doc/library/sqlite3.rst:1741 +#, fuzzy +msgid "See :ref:`sqlite3-howto-row-factory` for more details." +msgstr ":ref:`sqlite3-howtos` para lecturas de interés:" + +#: ../Doc/library/sqlite3.rst:1409 +#, fuzzy msgid "" -"A callable that accepts a :class:`bytes` parameter and returns a text " -"representation of it. The callable is invoked for SQLite values with the " -"``TEXT`` data type. By default, this attribute is set to :class:`str`. If " -"you want to return ``bytes`` instead, set *text_factory* to ``bytes``." +"A :term:`callable` that accepts a :class:`bytes` parameter and returns a " +"text representation of it. The callable is invoked for SQLite values with " +"the ``TEXT`` data type. By default, this attribute is set to :class:`str`. " +"If you want to return ``bytes`` instead, set *text_factory* to ``bytes``." msgstr "" "A invocable que acepta una :class:`bytes`como parámetro y retorna una " "representación del texto de el. El invocable es llamado por valores SQLite " @@ -1646,7 +1798,7 @@ msgstr "" "una :class:`str`. Si quieres retornar en su lugar, ``bytes``, entonces se " "establece *text_factory* como ``bytes``." -#: ../Doc/library/sqlite3.rst:1306 +#: ../Doc/library/sqlite3.rst:1449 msgid "" "Return the total number of database rows that have been modified, inserted, " "or deleted since the database connection was opened." @@ -1655,11 +1807,11 @@ msgstr "" "modificadas, insertadas o borradas desde que la conexión a la base de datos " "fue abierta." -#: ../Doc/library/sqlite3.rst:1313 +#: ../Doc/library/sqlite3.rst:1456 msgid "Cursor objects" msgstr "Objetos cursor" -#: ../Doc/library/sqlite3.rst:1315 +#: ../Doc/library/sqlite3.rst:1458 msgid "" "A ``Cursor`` object represents a `database cursor`_ which is used to execute " "SQL statements, and manage the context of a fetch operation. Cursors are " @@ -1672,7 +1824,7 @@ msgstr "" "usar alguno de los :ref:`connection shortcut methods `." -#: ../Doc/library/sqlite3.rst:1322 +#: ../Doc/library/sqlite3.rst:1465 msgid "" "Cursor objects are :term:`iterators `, meaning that if you :meth:" "`~Cursor.execute` a ``SELECT`` query, you can simply iterate over the cursor " @@ -1682,62 +1834,102 @@ msgstr "" "si :meth:`~Cursor.execute` una consulta ``SELECT``, simplemente podrás " "iterar sobre el cursor para obtener las filas resultantes:" -#: ../Doc/library/sqlite3.rst:1347 +#: ../Doc/library/sqlite3.rst:1490 msgid "A :class:`Cursor` instance has the following attributes and methods." msgstr "" "Una instancia :class:`Cursor` tiene los siguientes atributos y métodos." -#: ../Doc/library/sqlite3.rst:1354 +#: ../Doc/library/sqlite3.rst:1497 msgid "" -"Execute SQL statement *sql*. Bind values to the statement using :ref:" -"`placeholders ` that map to the :term:`sequence` or :" -"class:`dict` *parameters*." +"Execute SQL a single SQL statement, optionally binding Python values using :" +"ref:`placeholders `." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1501 +msgid "A single SQL statement." msgstr "" -"Ejecuta una sentencia SQL *sql*. Los valores pueden vincularse a la " -"sentencia utilizando :ref:`placeholders ` que mapea " -"*parameters* :term:`sequence` o :class:`dict` ." -#: ../Doc/library/sqlite3.rst:1359 +#: ../Doc/library/sqlite3.rst:1504 msgid "" -":meth:`execute` will only execute a single SQL statement. If you try to " -"execute more than one statement with it, it will raise a :exc:" -"`ProgrammingError`. Use :meth:`executescript` if you want to execute " -"multiple SQL statements with one call." +"Python values to bind to placeholders in *sql*. A :class:`!dict` if named " +"placeholders are used. A :term:`!sequence` if unnamed placeholders are used. " +"See :ref:`sqlite3-placeholders`." msgstr "" -":meth:`execute` solamente ejecutará sentencias únicas SQL. Si intenta " -"ejecutar más de una instrucción con él, se lanzará un :exc:" -"`ProgrammingError`. Use :meth:`executescript` si desea ejecutar varias " -"instrucciones SQL con una sola llamada." -#: ../Doc/library/sqlite3.rst:1364 +#: ../Doc/library/sqlite3.rst:1511 +msgid "If *sql* contains more than one SQL statement." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1514 +#, fuzzy msgid "" -"If :attr:`~Connection.isolation_level` is not ``None``, *sql* is an " -"``INSERT``, ``UPDATE``, ``DELETE``, or ``REPLACE`` statement, and there is " -"no open transaction, a transaction is implicitly opened before executing " -"*sql*." +"If :attr:`~Connection.autocommit` is :data:`LEGACY_TRANSACTION_CONTROL`, :" +"attr:`~Connection.isolation_level` is not ``None``, *sql* is an ``INSERT``, " +"``UPDATE``, ``DELETE``, or ``REPLACE`` statement, and there is no open " +"transaction, a transaction is implicitly opened before executing *sql*." msgstr "" "Si el :attr:`~Connection.isolation_level` no es ``None``, y *sql* es una " "sentencia ``INSERT``, ``UPDATE``, ``DELETE``, o ``REPLACE``, y no hay " "transacciones abierta, entonces una transacción se abre implícitamente antes " "de ejecutar el *sql*." -#: ../Doc/library/sqlite3.rst:1372 +#: ../Doc/library/sqlite3.rst:1523 msgid "" -"Execute :ref:`parameterized ` SQL statement *sql* " -"against all parameter sequences or mappings found in the sequence " -"*parameters*. It is also possible to use an :term:`iterator` yielding " -"parameters instead of a sequence. Uses the same implicit transaction " -"handling as :meth:`~Cursor.execute`." +":exc:`DeprecationWarning` is emitted if :ref:`named placeholders ` are used and *parameters* is a sequence instead of a :class:" +"`dict`. Starting with Python 3.14, :exc:`ProgrammingError` will be raised " +"instead." msgstr "" -"Ejecuta una sentencia SQL *sql* :ref:`parameterized ` " -"contra todas las secuencias de parámetros o asignaciones encontradas en la " -"secuencia *parameters*. También es posible utilizar un :term:`iterator` que " -"produzca parámetros en lugar de una secuencia. Utiliza el mismo control de " -"transacciones implícitas que :meth:`~Cursor.execute`." -#: ../Doc/library/sqlite3.rst:1391 +#: ../Doc/library/sqlite3.rst:1529 +msgid "Use :meth:`executescript` to execute multiple SQL statements." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1533 +msgid "" +"For every item in *parameters*, repeatedly execute the :ref:`parameterized " +"` :abbr:`DML (Data Manipulation Language)` SQL " +"statement *sql*." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1537 +msgid "Uses the same implicit transaction handling as :meth:`~Cursor.execute`." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1539 +msgid "A single SQL DML statement." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1542 +msgid "" +"An :term:`!iterable` of parameters to bind with the placeholders in *sql*. " +"See :ref:`sqlite3-placeholders`." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1548 +msgid "" +"If *sql* contains more than one SQL statement, or is not a DML statement." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1565 msgid "" -"Execute the SQL statements in *sql_script*. If there is a pending " +"Any resulting rows are discarded, including DML statements with `RETURNING " +"clauses`_." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1572 +msgid "" +":exc:`DeprecationWarning` is emitted if :ref:`named placeholders ` are used and the items in *parameters* are sequences instead " +"of :class:`dict`\\s. Starting with Python 3.14, :exc:`ProgrammingError` will " +"be raised instead." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1581 +#, fuzzy +msgid "" +"Execute the SQL statements in *sql_script*. If the :attr:`~Connection." +"autocommit` is :data:`LEGACY_TRANSACTION_CONTROL` and there is a pending " "transaction, an implicit ``COMMIT`` statement is executed first. No other " "implicit transaction control is performed; any transaction control must be " "added to *sql_script*." @@ -1747,22 +1939,23 @@ msgstr "" "se realiza ningún otro control de transacción implícito; Cualquier control " "de transacción debe agregarse a *sql_script*." -#: ../Doc/library/sqlite3.rst:1397 +#: ../Doc/library/sqlite3.rst:1589 msgid "*sql_script* must be a :class:`string `." msgstr "*sql_script* debe ser una instancia de :class:`string `." -#: ../Doc/library/sqlite3.rst:1415 +#: ../Doc/library/sqlite3.rst:1607 +#, fuzzy msgid "" -"If :attr:`~Connection.row_factory` is ``None``, return the next row query " -"result set as a :class:`tuple`. Else, pass it to the row factory and return " -"its result. Return ``None`` if no more data is available." +"If :attr:`~Cursor.row_factory` is ``None``, return the next row query result " +"set as a :class:`tuple`. Else, pass it to the row factory and return its " +"result. Return ``None`` if no more data is available." msgstr "" "Si el :attr:`~Connection.row_factory` es ``None``, retorna el conjunto de " "resultados de la consulta de la siguiente fila como un :class:`tuple`. De lo " "contrario, páselo a la fábrica de filas y retorne su resultado. Retorna " "``None`` si no hay más datos disponibles." -#: ../Doc/library/sqlite3.rst:1423 +#: ../Doc/library/sqlite3.rst:1615 msgid "" "Return the next set of rows of a query result as a :class:`list`. Return an " "empty list if no more rows are available." @@ -1771,7 +1964,7 @@ msgstr "" "una :class:`list`. Una lista vacía será retornada cuando no hay más filas " "disponibles." -#: ../Doc/library/sqlite3.rst:1426 +#: ../Doc/library/sqlite3.rst:1618 msgid "" "The number of rows to fetch per call is specified by the *size* parameter. " "If *size* is not given, :attr:`arraysize` determines the number of rows to " @@ -1783,7 +1976,7 @@ msgstr "" "determinará el número de filas que se van a recuperar. Si hay menos filas " "*size* disponibles, se retornan tantas filas como estén disponibles." -#: ../Doc/library/sqlite3.rst:1432 +#: ../Doc/library/sqlite3.rst:1624 msgid "" "Note there are performance considerations involved with the *size* " "parameter. For optimal performance, it is usually best to use the arraysize " @@ -1795,7 +1988,7 @@ msgstr "" "*arraysize*. Si el parámetro *size* es usado, entonces es mejor retener el " "mismo valor de una llamada :meth:`fetchmany` a la siguiente." -#: ../Doc/library/sqlite3.rst:1439 +#: ../Doc/library/sqlite3.rst:1631 msgid "" "Return all (remaining) rows of a query result as a :class:`list`. Return an " "empty list if no rows are available. Note that the :attr:`arraysize` " @@ -1806,11 +1999,11 @@ msgstr "" "que el atributo :attr:`arraysize` puede afectar al rendimiento de esta " "operación." -#: ../Doc/library/sqlite3.rst:1446 +#: ../Doc/library/sqlite3.rst:1638 msgid "Close the cursor now (rather than whenever ``__del__`` is called)." msgstr "Cierra el cursor ahora (en lugar que cuando ``__del__`` es llamado)" -#: ../Doc/library/sqlite3.rst:1448 +#: ../Doc/library/sqlite3.rst:1640 msgid "" "The cursor will be unusable from this point forward; a :exc:" "`ProgrammingError` exception will be raised if any operation is attempted " @@ -1820,11 +2013,11 @@ msgstr "" "`ProgrammingError` será lanzada si se intenta cualquier operación con el " "cursor." -#: ../Doc/library/sqlite3.rst:1453 ../Doc/library/sqlite3.rst:1457 +#: ../Doc/library/sqlite3.rst:1645 ../Doc/library/sqlite3.rst:1649 msgid "Required by the DB-API. Does nothing in :mod:`!sqlite3`." msgstr "Requerido por la DB-API. No hace nada en :mod:`!sqlite3`." -#: ../Doc/library/sqlite3.rst:1461 +#: ../Doc/library/sqlite3.rst:1653 msgid "" "Read/write attribute that controls the number of rows returned by :meth:" "`fetchmany`. The default value is 1 which means a single row would be " @@ -1834,7 +2027,7 @@ msgstr "" "por :meth:`fetchmany`. El valor por defecto es 1, lo cual significa que una " "única fila será obtenida por llamada." -#: ../Doc/library/sqlite3.rst:1466 +#: ../Doc/library/sqlite3.rst:1658 msgid "" "Read-only attribute that provides the SQLite database :class:`Connection` " "belonging to the cursor. A :class:`Cursor` object created by calling :meth:" @@ -1846,7 +2039,7 @@ msgstr "" "llamando a :meth:`con.cursor() ` tendrá un atributo :attr:" "`connection` que hace referencia a *con*:" -#: ../Doc/library/sqlite3.rst:1480 +#: ../Doc/library/sqlite3.rst:1672 msgid "" "Read-only attribute that provides the column names of the last query. To " "remain compatible with the Python DB API, it returns a 7-tuple for each " @@ -1857,13 +2050,13 @@ msgstr "" "Python, retornará una tupla de 7 elementos para cada columna donde los " "últimos seis elementos de cada tupla son ``Ninguno``." -#: ../Doc/library/sqlite3.rst:1484 +#: ../Doc/library/sqlite3.rst:1676 msgid "It is set for ``SELECT`` statements without any matching rows as well." msgstr "" "También es configurado para sentencias ``SELECT`` sin ninguna fila " "coincidente." -#: ../Doc/library/sqlite3.rst:1488 +#: ../Doc/library/sqlite3.rst:1680 msgid "" "Read-only attribute that provides the row id of the last inserted row. It is " "only updated after successful ``INSERT`` or ``REPLACE`` statements using " @@ -1879,21 +2072,23 @@ msgstr "" "o si se produjo un error en la inserción, el valor de ``lastrowid`` se deja " "sin cambios. El valor inicial de ``lastrowid`` es ``None``." -#: ../Doc/library/sqlite3.rst:1496 +#: ../Doc/library/sqlite3.rst:1688 msgid "Inserts into ``WITHOUT ROWID`` tables are not recorded." msgstr "Las inserciones en tablas ``WITHOUT ROWID`` no se registran." -#: ../Doc/library/sqlite3.rst:1498 +#: ../Doc/library/sqlite3.rst:1690 msgid "Added support for the ``REPLACE`` statement." msgstr "Se agregó soporte para sentencias ``REPLACE``." -#: ../Doc/library/sqlite3.rst:1503 +#: ../Doc/library/sqlite3.rst:1695 +#, fuzzy msgid "" "Read-only attribute that provides the number of modified rows for " "``INSERT``, ``UPDATE``, ``DELETE``, and ``REPLACE`` statements; is ``-1`` " "for other statements, including :abbr:`CTE (Common Table Expression)` " "queries. It is only updated by the :meth:`execute` and :meth:`executemany` " -"methods." +"methods, after the statement has run to completion. This means that any " +"resulting rows must be fetched in order for :attr:`!rowcount` to be updated." msgstr "" "Atributo de solo lectura que proporciona el número de filas modificadas para " "las sentencias ``INSERT``, ``UPDATE``, ``DELETE`` y ``REPLACE``; se usa " @@ -1901,11 +2096,27 @@ msgstr "" "Table Expression)`. Sólo se actualiza mediante los métodos :meth:`execute` " "y :meth:`executemany`." -#: ../Doc/library/sqlite3.rst:1518 +#: ../Doc/library/sqlite3.rst:1706 +msgid "" +"Control how a row fetched from this :class:`!Cursor` is represented. If " +"``None``, a row is represented as a :class:`tuple`. Can be set to the " +"included :class:`sqlite3.Row`; or a :term:`callable` that accepts two " +"arguments, a :class:`Cursor` object and the :class:`!tuple` of row values, " +"and returns a custom object representing an SQLite row." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1713 +msgid "" +"Defaults to what :attr:`Connection.row_factory` was set to when the :class:`!" +"Cursor` was created. Assigning to this attribute does not affect :attr:" +"`Connection.row_factory` of the parent connection." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1729 msgid "Row objects" msgstr "Objetos fila (*Row*)" -#: ../Doc/library/sqlite3.rst:1522 +#: ../Doc/library/sqlite3.rst:1733 msgid "" "A :class:`!Row` instance serves as a highly optimized :attr:`~Connection." "row_factory` for :class:`Connection` objects. It supports iteration, " @@ -1917,13 +2128,16 @@ msgstr "" "iteración, pruebas de igualdad, acceso a :func:`len` y :term:`mapping` por " "nombre de columna e índice." -#: ../Doc/library/sqlite3.rst:1527 -msgid "Two row objects compare equal if have equal columns and equal members." +#: ../Doc/library/sqlite3.rst:1738 +#, fuzzy +msgid "" +"Two :class:`!Row` objects compare equal if they have identical column names " +"and values." msgstr "" "Dos objetos de fila comparan iguales si tienen columnas iguales y miembros " "iguales." -#: ../Doc/library/sqlite3.rst:1531 +#: ../Doc/library/sqlite3.rst:1745 msgid "" "Return a :class:`list` of column names as :class:`strings `. " "Immediately after a query, it is the first member of each tuple in :attr:" @@ -1933,15 +2147,15 @@ msgstr "" "`strings `. Inmediatamente después de una consulta, es el primer " "miembro de cada tupla en :attr:`Cursor.description`." -#: ../Doc/library/sqlite3.rst:1535 +#: ../Doc/library/sqlite3.rst:1749 msgid "Added support of slicing." msgstr "Agrega soporte para segmentación." -#: ../Doc/library/sqlite3.rst:1557 +#: ../Doc/library/sqlite3.rst:1756 msgid "Blob objects" msgstr "Objetos fila (*Row*)" -#: ../Doc/library/sqlite3.rst:1563 +#: ../Doc/library/sqlite3.rst:1762 msgid "" "A :class:`Blob` instance is a :term:`file-like object` that can read and " "write data in an SQLite :abbr:`BLOB (Binary Large OBject)`. Call :func:" @@ -1954,7 +2168,7 @@ msgstr "" "Use índices y :term:`slices ` para obtener acceso directo a los datos " "del blob." -#: ../Doc/library/sqlite3.rst:1568 +#: ../Doc/library/sqlite3.rst:1767 msgid "" "Use the :class:`Blob` as a :term:`context manager` to ensure that the blob " "handle is closed after use." @@ -1962,11 +2176,11 @@ msgstr "" "Use :class:`Blob` como :term:`context manager` para asegurarse de que el " "identificador de blob se cierra después de su uso." -#: ../Doc/library/sqlite3.rst:1598 +#: ../Doc/library/sqlite3.rst:1797 msgid "Close the blob." msgstr "Cierra el *blob*." -#: ../Doc/library/sqlite3.rst:1600 +#: ../Doc/library/sqlite3.rst:1799 msgid "" "The blob will be unusable from this point onward. An :class:`~sqlite3." "Error` (or subclass) exception will be raised if any further operation is " @@ -1976,7 +2190,7 @@ msgstr "" "`~sqlite3.Error` (o subclase) será lanzada si se intenta cualquier operación " "con el cursor." -#: ../Doc/library/sqlite3.rst:1606 +#: ../Doc/library/sqlite3.rst:1805 msgid "" "Read *length* bytes of data from the blob at the current offset position. If " "the end of the blob is reached, the data up to :abbr:`EOF (End of File)` " @@ -1988,7 +2202,7 @@ msgstr "" "`EOF (End of File)`. Cuando *length* no se especifica, o es negativo, :meth:" "`~Blob.read` se leerá hasta el final del blob." -#: ../Doc/library/sqlite3.rst:1614 +#: ../Doc/library/sqlite3.rst:1813 msgid "" "Write *data* to the blob at the current offset. This function cannot change " "the blob length. Writing beyond the end of the blob will raise :exc:" @@ -1998,16 +2212,17 @@ msgstr "" "cambiar la longitud del blob. Escribir más allá del final del blob generará " "un :exc:`ValueError`." -#: ../Doc/library/sqlite3.rst:1620 +#: ../Doc/library/sqlite3.rst:1819 msgid "Return the current access position of the blob." msgstr "Devolver la posición de acceso actual del blob." -#: ../Doc/library/sqlite3.rst:1624 +#: ../Doc/library/sqlite3.rst:1823 +#, fuzzy msgid "" "Set the current access position of the blob to *offset*. The *origin* " -"argument defaults to :data:`os.SEEK_SET` (absolute blob positioning). Other " -"values for *origin* are :data:`os.SEEK_CUR` (seek relative to the current " -"position) and :data:`os.SEEK_END` (seek relative to the blob’s end)." +"argument defaults to :const:`os.SEEK_SET` (absolute blob positioning). Other " +"values for *origin* are :const:`os.SEEK_CUR` (seek relative to the current " +"position) and :const:`os.SEEK_END` (seek relative to the blob’s end)." msgstr "" "Establezca la posición de acceso actual del blob en *offset*. El valor " "predeterminado del argumento *origin* es :data:`os. SEEK_SET` " @@ -2015,11 +2230,11 @@ msgstr "" "`os. SEEK_CUR` (busca en relación con la posición actual) y :data:`os. " "SEEK_END` (buscar en relación con el final del blob)." -#: ../Doc/library/sqlite3.rst:1632 +#: ../Doc/library/sqlite3.rst:1831 msgid "PrepareProtocol objects" msgstr "Objetos PrepareProtocol" -#: ../Doc/library/sqlite3.rst:1636 +#: ../Doc/library/sqlite3.rst:1835 msgid "" "The PrepareProtocol type's single purpose is to act as a :pep:`246` style " "adaption protocol for objects that can :ref:`adapt themselves ` a :ref:`native SQLite types `." -#: ../Doc/library/sqlite3.rst:1644 +#: ../Doc/library/sqlite3.rst:1843 msgid "Exceptions" msgstr "Excepciones" -#: ../Doc/library/sqlite3.rst:1646 +#: ../Doc/library/sqlite3.rst:1845 msgid "The exception hierarchy is defined by the DB-API 2.0 (:pep:`249`)." msgstr "La jerarquía de excepciones está definida por DB-API 2.0 (:pep:`249`)." -#: ../Doc/library/sqlite3.rst:1650 +#: ../Doc/library/sqlite3.rst:1849 msgid "" "This exception is not currently raised by the :mod:`!sqlite3` module, but " "may be raised by applications using :mod:`!sqlite3`, for example if a user-" @@ -2049,7 +2264,7 @@ msgstr "" "si una función definida por el usuario trunca datos durante la inserción. " "``Warning`` es una subclase de :exc:`Exception`." -#: ../Doc/library/sqlite3.rst:1657 +#: ../Doc/library/sqlite3.rst:1856 msgid "" "The base class of the other exceptions in this module. Use this to catch all " "errors with one single :keyword:`except` statement. ``Error`` is a subclass " @@ -2059,7 +2274,7 @@ msgstr "" "detectar todos los errores con una sola instrucción :keyword:`except`." "``Error`` is una subclase de :exc:`Exception`." -#: ../Doc/library/sqlite3.rst:1661 +#: ../Doc/library/sqlite3.rst:1860 msgid "" "If the exception originated from within the SQLite library, the following " "two attributes are added to the exception:" @@ -2067,7 +2282,7 @@ msgstr "" "Si la excepción se originó dentro de la biblioteca SQLite, se agregan los " "siguientes dos atributos a la excepción:" -#: ../Doc/library/sqlite3.rst:1666 +#: ../Doc/library/sqlite3.rst:1865 msgid "" "The numeric error code from the `SQLite API `_" @@ -2075,7 +2290,7 @@ msgstr "" "El código de error numérico de `SQLite API `_" -#: ../Doc/library/sqlite3.rst:1673 +#: ../Doc/library/sqlite3.rst:1872 msgid "" "The symbolic name of the numeric error code from the `SQLite API `_" @@ -2083,7 +2298,7 @@ msgstr "" "El nombre simbólico del código de error numérico de `SQLite API `_" -#: ../Doc/library/sqlite3.rst:1680 +#: ../Doc/library/sqlite3.rst:1879 msgid "" "Exception raised for misuse of the low-level SQLite C API. In other words, " "if this exception is raised, it probably indicates a bug in the :mod:`!" @@ -2094,7 +2309,7 @@ msgstr "" "en el módulo :mod:`!sqlite3`. ``InterfaceError`` es una subclase de :exc:" "`Error`." -#: ../Doc/library/sqlite3.rst:1687 +#: ../Doc/library/sqlite3.rst:1886 msgid "" "Exception raised for errors that are related to the database. This serves as " "the base exception for several types of database errors. It is only raised " @@ -2106,7 +2321,7 @@ msgstr "" "genera implícitamente a través de las subclases especializadas. " "``DatabaseError`` es una subclase de :exc:`Error`." -#: ../Doc/library/sqlite3.rst:1694 +#: ../Doc/library/sqlite3.rst:1893 msgid "" "Exception raised for errors caused by problems with the processed data, like " "numeric values out of range, and strings which are too long. ``DataError`` " @@ -2116,7 +2331,7 @@ msgstr "" "procesados, como valores numéricos fuera de rango y cadenas de caracteres " "demasiado largas. ``DataError`` es una subclase de :exc:`DatabaseError`." -#: ../Doc/library/sqlite3.rst:1700 +#: ../Doc/library/sqlite3.rst:1899 msgid "" "Exception raised for errors that are related to the database's operation, " "and not necessarily under the control of the programmer. For example, the " @@ -2129,7 +2344,7 @@ msgstr "" "una transacción. ``OperationalError`` es una subclase de :exc:" "`DatabaseError`." -#: ../Doc/library/sqlite3.rst:1708 +#: ../Doc/library/sqlite3.rst:1907 msgid "" "Exception raised when the relational integrity of the database is affected, " "e.g. a foreign key check fails. It is a subclass of :exc:`DatabaseError`." @@ -2138,7 +2353,7 @@ msgstr "" "ejemplo la comprobación de una llave foránea falla. Es una subclase de :exc:" "`DatabaseError`." -#: ../Doc/library/sqlite3.rst:1713 +#: ../Doc/library/sqlite3.rst:1912 msgid "" "Exception raised when SQLite encounters an internal error. If this is " "raised, it may indicate that there is a problem with the runtime SQLite " @@ -2149,7 +2364,7 @@ msgstr "" "tiempo de ejecución. ``InternalError`` es una subclase de :exc:" "`DatabaseError`." -#: ../Doc/library/sqlite3.rst:1720 +#: ../Doc/library/sqlite3.rst:1919 msgid "" "Exception raised for :mod:`!sqlite3` API programming errors, for example " "supplying the wrong number of bindings to a query, or trying to operate on a " @@ -2161,7 +2376,7 @@ msgstr "" "intentar operar en una :class:`Connection` cerrada. ``ProgrammingError`` es " "una subclase de :exc:`DatabaseError`." -#: ../Doc/library/sqlite3.rst:1727 +#: ../Doc/library/sqlite3.rst:1926 msgid "" "Exception raised in case a method or database API is not supported by the " "underlying SQLite library. For example, setting *deterministic* to ``True`` " @@ -2175,11 +2390,11 @@ msgstr "" "SQLite subyacente no admite funciones *deterministic*. ``NotSupportedError`` " "es una subclase de :exc:`DatabaseError`." -#: ../Doc/library/sqlite3.rst:1737 +#: ../Doc/library/sqlite3.rst:1936 msgid "SQLite and Python types" msgstr "SQLite y tipos de Python" -#: ../Doc/library/sqlite3.rst:1739 +#: ../Doc/library/sqlite3.rst:1938 msgid "" "SQLite natively supports the following types: ``NULL``, ``INTEGER``, " "``REAL``, ``TEXT``, ``BLOB``." @@ -2187,71 +2402,71 @@ msgstr "" "SQLite soporta de forma nativa los siguientes tipos: ``NULL``, ``INTEGER``, " "``REAL``, ``TEXT``, ``BLOB``." -#: ../Doc/library/sqlite3.rst:1742 +#: ../Doc/library/sqlite3.rst:1941 msgid "" "The following Python types can thus be sent to SQLite without any problem:" msgstr "" "Los siguientes tipos de Python se pueden enviar a SQLite sin problema alguno:" -#: ../Doc/library/sqlite3.rst:1745 ../Doc/library/sqlite3.rst:1762 +#: ../Doc/library/sqlite3.rst:1944 ../Doc/library/sqlite3.rst:1961 msgid "Python type" msgstr "Tipo de Python" -#: ../Doc/library/sqlite3.rst:1745 ../Doc/library/sqlite3.rst:1762 +#: ../Doc/library/sqlite3.rst:1944 ../Doc/library/sqlite3.rst:1961 msgid "SQLite type" msgstr "Tipo de SQLite" -#: ../Doc/library/sqlite3.rst:1747 ../Doc/library/sqlite3.rst:1764 +#: ../Doc/library/sqlite3.rst:1946 ../Doc/library/sqlite3.rst:1963 msgid "``None``" msgstr "``None``" -#: ../Doc/library/sqlite3.rst:1747 ../Doc/library/sqlite3.rst:1764 +#: ../Doc/library/sqlite3.rst:1946 ../Doc/library/sqlite3.rst:1963 msgid "``NULL``" msgstr "``NULL``" -#: ../Doc/library/sqlite3.rst:1749 ../Doc/library/sqlite3.rst:1766 +#: ../Doc/library/sqlite3.rst:1948 ../Doc/library/sqlite3.rst:1965 msgid ":class:`int`" msgstr ":class:`int`" -#: ../Doc/library/sqlite3.rst:1749 ../Doc/library/sqlite3.rst:1766 +#: ../Doc/library/sqlite3.rst:1948 ../Doc/library/sqlite3.rst:1965 msgid "``INTEGER``" msgstr "``INTEGER``" -#: ../Doc/library/sqlite3.rst:1751 ../Doc/library/sqlite3.rst:1768 +#: ../Doc/library/sqlite3.rst:1950 ../Doc/library/sqlite3.rst:1967 msgid ":class:`float`" msgstr ":class:`float`" -#: ../Doc/library/sqlite3.rst:1751 ../Doc/library/sqlite3.rst:1768 +#: ../Doc/library/sqlite3.rst:1950 ../Doc/library/sqlite3.rst:1967 msgid "``REAL``" msgstr "``REAL``" -#: ../Doc/library/sqlite3.rst:1753 +#: ../Doc/library/sqlite3.rst:1952 msgid ":class:`str`" msgstr ":class:`str`" -#: ../Doc/library/sqlite3.rst:1753 ../Doc/library/sqlite3.rst:1770 +#: ../Doc/library/sqlite3.rst:1952 ../Doc/library/sqlite3.rst:1969 msgid "``TEXT``" msgstr "``TEXT``" -#: ../Doc/library/sqlite3.rst:1755 ../Doc/library/sqlite3.rst:1773 +#: ../Doc/library/sqlite3.rst:1954 ../Doc/library/sqlite3.rst:1972 msgid ":class:`bytes`" msgstr ":class:`bytes`" -#: ../Doc/library/sqlite3.rst:1755 ../Doc/library/sqlite3.rst:1773 +#: ../Doc/library/sqlite3.rst:1954 ../Doc/library/sqlite3.rst:1972 msgid "``BLOB``" msgstr "``BLOB``" -#: ../Doc/library/sqlite3.rst:1759 +#: ../Doc/library/sqlite3.rst:1958 msgid "This is how SQLite types are converted to Python types by default:" msgstr "" "De esta forma es como los tipos de SQLite son convertidos a tipos de Python " "por defecto:" -#: ../Doc/library/sqlite3.rst:1770 +#: ../Doc/library/sqlite3.rst:1969 msgid "depends on :attr:`~Connection.text_factory`, :class:`str` by default" msgstr "depende de :attr:`~Connection.text_factory`, :class:`str` por defecto" -#: ../Doc/library/sqlite3.rst:1776 +#: ../Doc/library/sqlite3.rst:1975 msgid "" "The type system of the :mod:`!sqlite3` module is extensible in two ways: you " "can store additional Python types in an SQLite database via :ref:`object " @@ -2265,53 +2480,49 @@ msgstr "" "que :mod:`!sqlite3` convierta tipos SQLite a diferentes tipos de Python vía :" "ref:`converters `." -#: ../Doc/library/sqlite3.rst:1786 -msgid "Default adapters and converters" +#: ../Doc/library/sqlite3.rst:1985 +#, fuzzy +msgid "Default adapters and converters (deprecated)" msgstr "Adaptadores y convertidores por defecto" -#: ../Doc/library/sqlite3.rst:1788 +#: ../Doc/library/sqlite3.rst:1989 msgid "" -"There are default adapters for the date and datetime types in the datetime " -"module. They will be sent as ISO dates/ISO timestamps to SQLite." +"The default adapters and converters are deprecated as of Python 3.12. " +"Instead, use the :ref:`sqlite3-adapter-converter-recipes` and tailor them to " +"your needs." msgstr "" -"Hay adaptadores por defecto para los tipos date y datetime en el módulo " -"datetime. Éstos serán enviados como fechas/marcas de tiempo ISO a SQLite." -#: ../Doc/library/sqlite3.rst:1791 +#: ../Doc/library/sqlite3.rst:1993 +#, fuzzy +msgid "The deprecated default adapters and converters consist of:" +msgstr "Adaptadores y convertidores por defecto" + +#: ../Doc/library/sqlite3.rst:1995 msgid "" -"The default converters are registered under the name \"date\" for :class:" -"`datetime.date` and under the name \"timestamp\" for :class:`datetime." -"datetime`." +"An adapter for :class:`datetime.date` objects to :class:`strings ` in " +"`ISO 8601`_ format." msgstr "" -"Los convertidores por defecto están registrados bajo el nombre \"date\" " -"para :class:`datetime.date` y bajo el mismo nombre para \"timestamp\" para :" -"class:`datetime.datetime`." -#: ../Doc/library/sqlite3.rst:1795 +#: ../Doc/library/sqlite3.rst:1997 msgid "" -"This way, you can use date/timestamps from Python without any additional " -"fiddling in most cases. The format of the adapters is also compatible with " -"the experimental SQLite date/time functions." +"An adapter for :class:`datetime.datetime` objects to strings in ISO 8601 " +"format." msgstr "" -"De esta forma, se puede usar date/timestamps para Python sin ajuste " -"adicional en la mayoría de los casos. El formato de los adaptadores también " -"es compatible con las funciones experimentales de SQLite date/time." -#: ../Doc/library/sqlite3.rst:1799 -msgid "The following example demonstrates this." -msgstr "El siguiente ejemplo demuestra esto." +#: ../Doc/library/sqlite3.rst:1999 +msgid "" +"A converter for :ref:`declared ` \"date\" types to :" +"class:`datetime.date` objects." +msgstr "" -#: ../Doc/library/sqlite3.rst:1803 +#: ../Doc/library/sqlite3.rst:2001 msgid "" -"If a timestamp stored in SQLite has a fractional part longer than 6 numbers, " -"its value will be truncated to microsecond precision by the timestamp " -"converter." +"A converter for declared \"timestamp\" types to :class:`datetime.datetime` " +"objects. Fractional parts will be truncated to 6 digits (microsecond " +"precision)." msgstr "" -"Si un *timestamp* almacenado en SQLite tiene una parte fraccional mayor a 6 " -"números, este valor será truncado a precisión de microsegundos por el " -"convertidor de *timestamp*." -#: ../Doc/library/sqlite3.rst:1809 +#: ../Doc/library/sqlite3.rst:2007 msgid "" "The default \"timestamp\" converter ignores UTC offsets in the database and " "always returns a naive :class:`datetime.datetime` object. To preserve UTC " @@ -2324,21 +2535,45 @@ msgstr "" "los convertidores deshabilitados o registre un convertidor que reconozca la " "compensación con :func:`register_converter`." -#: ../Doc/library/sqlite3.rst:1818 +#: ../Doc/library/sqlite3.rst:2020 +msgid "Command-line interface" +msgstr "" + +#: ../Doc/library/sqlite3.rst:2022 +msgid "" +"The :mod:`!sqlite3` module can be invoked as a script, using the " +"interpreter's :option:`-m` switch, in order to provide a simple SQLite " +"shell. The argument signature is as follows::" +msgstr "" + +#: ../Doc/library/sqlite3.rst:2029 +msgid "Type ``.quit`` or CTRL-D to exit the shell." +msgstr "" + +#: ../Doc/library/sqlite3.rst:2035 +msgid "Print CLI help." +msgstr "" + +#: ../Doc/library/sqlite3.rst:2039 +msgid "Print underlying SQLite library version." +msgstr "" + +#: ../Doc/library/sqlite3.rst:2047 msgid "How-to guides" msgstr "Guías prácticas" -#: ../Doc/library/sqlite3.rst:1823 +#: ../Doc/library/sqlite3.rst:2052 msgid "How to use placeholders to bind values in SQL queries" msgstr "" "Cómo usar marcadores de posición para vincular valores en consultas SQL" -#: ../Doc/library/sqlite3.rst:1825 +#: ../Doc/library/sqlite3.rst:2054 +#, fuzzy msgid "" "SQL operations usually need to use values from Python variables. However, " "beware of using Python's string operations to assemble queries, as they are " -"vulnerable to `SQL injection attacks`_ (see the `xkcd webcomic `_ for a humorous example of what can go wrong)::" +"vulnerable to `SQL injection attacks`_. For example, an attacker can simply " +"close the single quote and inject ``OR TRUE`` to select all rows::" msgstr "" "Las operaciones de SQL generalmente necesitan usar valores de variables de " "Python. Sin embargo, tenga cuidado con el uso de las operaciones de cadena " @@ -2346,19 +2581,23 @@ msgstr "" "los `SQL injection attacks`_ (see the `xkcd webcomic `_ para ver un ejemplo gracioso de lo que puede ir mal)::" -#: ../Doc/library/sqlite3.rst:1834 +#: ../Doc/library/sqlite3.rst:2067 msgid "" "Instead, use the DB-API's parameter substitution. To insert a variable into " "a query string, use a placeholder in the string, and substitute the actual " "values into the query by providing them as a :class:`tuple` of values to the " -"second argument of the cursor's :meth:`~Cursor.execute` method. An SQL " -"statement may use one of two kinds of placeholders: question marks (qmark " -"style) or named placeholders (named style). For the qmark style, " -"``parameters`` must be a :term:`sequence `. For the named style, " -"it can be either a :term:`sequence ` or :class:`dict` instance. " -"The length of the :term:`sequence ` must match the number of " -"placeholders, or a :exc:`ProgrammingError` is raised. If a :class:`dict` is " -"given, it must contain keys for all named parameters. Any extra items are " +"second argument of the cursor's :meth:`~Cursor.execute` method." +msgstr "" + +#: ../Doc/library/sqlite3.rst:2072 +#, fuzzy +msgid "" +"An SQL statement may use one of two kinds of placeholders: question marks " +"(qmark style) or named placeholders (named style). For the qmark style, " +"*parameters* must be a :term:`sequence` whose length must match the number " +"of placeholders, or a :exc:`ProgrammingError` is raised. For the named " +"style, *parameters* must be an instance of a :class:`dict` (or a subclass), " +"which must contain keys for all named parameters; any extra items are " "ignored. Here's an example of both styles:" msgstr "" "En su lugar, utilice la sustitución de parámetros de la DB-API. Para " @@ -2375,11 +2614,17 @@ msgstr "" "contener claves para todos los parámetros nombrados. Cualquier item " "adicional se ignorará. Aquí un ejemplo de ambos estilos:" -#: ../Doc/library/sqlite3.rst:1876 +#: ../Doc/library/sqlite3.rst:2109 +msgid "" +":pep:`249` numeric placeholders are *not* supported. If used, they will be " +"interpreted as named placeholders." +msgstr "" + +#: ../Doc/library/sqlite3.rst:2116 msgid "How to adapt custom Python types to SQLite values" msgstr "Cómo adaptar tipos de Python personalizados a valores de SQLite" -#: ../Doc/library/sqlite3.rst:1878 +#: ../Doc/library/sqlite3.rst:2118 msgid "" "SQLite supports only a limited set of data types natively. To store custom " "Python types in SQLite databases, *adapt* them to one of the :ref:`Python " @@ -2390,7 +2635,7 @@ msgstr "" "adáptelos a uno de los :ref:`tipos Python que SQLite entiende de forma " "nativa `." -#: ../Doc/library/sqlite3.rst:1882 +#: ../Doc/library/sqlite3.rst:2122 msgid "" "There are two ways to adapt Python objects to SQLite types: letting your " "object adapt itself, or using an *adapter callable*. The latter will take " @@ -2406,11 +2651,11 @@ msgstr "" "desarrollador de aplicaciones, puede tener más sentido tomar el control " "directo registrando funciones de adaptador personalizadas." -#: ../Doc/library/sqlite3.rst:1894 +#: ../Doc/library/sqlite3.rst:2134 msgid "How to write adaptable objects" msgstr "Cómo escribir objetos adaptables" -#: ../Doc/library/sqlite3.rst:1896 +#: ../Doc/library/sqlite3.rst:2136 msgid "" "Suppose we have a :class:`!Point` class that represents a pair of " "coordinates, ``x`` and ``y``, in a Cartesian coordinate system. The " @@ -2427,11 +2672,11 @@ msgstr "" "el valor adaptado. El objeto pasado a *protocolo* será de tipo :class:" "`PrepareProtocol`." -#: ../Doc/library/sqlite3.rst:1927 +#: ../Doc/library/sqlite3.rst:2167 msgid "How to register adapter callables" msgstr "Como registrar un adaptador invocable" -#: ../Doc/library/sqlite3.rst:1929 +#: ../Doc/library/sqlite3.rst:2169 msgid "" "The other possibility is to create a function that converts the Python " "object to an SQLite-compatible type. This function can then be registered " @@ -2441,11 +2686,11 @@ msgstr "" "tipo compatible de SQLite. Esta función puede de esta forma ser registrada " "usando un :func:`register_adapter`." -#: ../Doc/library/sqlite3.rst:1959 +#: ../Doc/library/sqlite3.rst:2199 msgid "How to convert SQLite values to custom Python types" msgstr "Como convertir valores SQLite a tipos de Python personalizados" -#: ../Doc/library/sqlite3.rst:1961 +#: ../Doc/library/sqlite3.rst:2201 msgid "" "Writing an adapter lets you convert *from* custom Python types *to* SQLite " "values. To be able to convert *from* SQLite values *to* custom Python types, " @@ -2455,7 +2700,7 @@ msgstr "" "Python *a* valores SQLite. Para poder convertir *de* valores SQLite *a* " "tipos personalizados de Python, usamos *convertidores*." -#: ../Doc/library/sqlite3.rst:1966 +#: ../Doc/library/sqlite3.rst:2206 msgid "" "Let's go back to the :class:`!Point` class. We stored the x and y " "coordinates separated via semicolons as strings in SQLite." @@ -2463,7 +2708,7 @@ msgstr "" "Regresemos a la clase :class:`!Point`. Almacenamos las coordenadas x y y " "separadas por punto y coma como una cadena de caracteres en SQLite." -#: ../Doc/library/sqlite3.rst:1969 +#: ../Doc/library/sqlite3.rst:2209 msgid "" "First, we'll define a converter function that accepts the string as a " "parameter and constructs a :class:`!Point` object from it." @@ -2471,7 +2716,7 @@ msgstr "" "Primero, se define una función de conversión que acepta la cadena de texto " "como un parámetro y construya un objeto :class:`!Point` de ahí." -#: ../Doc/library/sqlite3.rst:1974 +#: ../Doc/library/sqlite3.rst:2214 msgid "" "Converter functions are **always** passed a :class:`bytes` object, no matter " "the underlying SQLite data type." @@ -2479,7 +2724,7 @@ msgstr "" "Las funciones de conversión **siempre** son llamadas con un objeto :class:" "`bytes`, no importa bajo qué tipo de dato se envió el valor a SQLite." -#: ../Doc/library/sqlite3.rst:1983 +#: ../Doc/library/sqlite3.rst:2223 msgid "" "We now need to tell :mod:`!sqlite3` when it should convert a given SQLite " "value. This is done when connecting to a database, using the *detect_types* " @@ -2489,15 +2734,15 @@ msgstr "" "valor dado SQLite. Esto se hace cuando se conecta a una base de datos, " "utilizando el parámetro *detect_types* de :func:`connect`. Hay tres opciones:" -#: ../Doc/library/sqlite3.rst:1987 +#: ../Doc/library/sqlite3.rst:2227 msgid "Implicit: set *detect_types* to :const:`PARSE_DECLTYPES`" msgstr "Implícito: establece *detect_types* para que :const:`PARSE_DECLTYPES`" -#: ../Doc/library/sqlite3.rst:1988 +#: ../Doc/library/sqlite3.rst:2228 msgid "Explicit: set *detect_types* to :const:`PARSE_COLNAMES`" msgstr "Explícito: establece *detect_types* para que :const:`PARSE_COLNAMES`" -#: ../Doc/library/sqlite3.rst:1989 +#: ../Doc/library/sqlite3.rst:2229 msgid "" "Both: set *detect_types* to ``sqlite3.PARSE_DECLTYPES | sqlite3." "PARSE_COLNAMES``. Column names take precedence over declared types." @@ -2506,25 +2751,25 @@ msgstr "" "PARSE_COLNAMES``. Los nombres de columna tienen prioridad sobre los tipos " "declarados." -#: ../Doc/library/sqlite3.rst:1993 +#: ../Doc/library/sqlite3.rst:2233 msgid "The following example illustrates the implicit and explicit approaches:" msgstr "El siguiente ejemplo ilustra ambos enfoques:" -#: ../Doc/library/sqlite3.rst:2044 +#: ../Doc/library/sqlite3.rst:2284 msgid "Adapter and converter recipes" msgstr "Ejemplos para adaptadores y convertidores" -#: ../Doc/library/sqlite3.rst:2046 +#: ../Doc/library/sqlite3.rst:2286 msgid "This section shows recipes for common adapters and converters." msgstr "" "En esta sección se muestran ejemplos para adaptadores y convertidores " "comunes." -#: ../Doc/library/sqlite3.rst:2089 +#: ../Doc/library/sqlite3.rst:2348 msgid "How to use connection shortcut methods" msgstr "Cómo utilizar los métodos de acceso directo de conexión" -#: ../Doc/library/sqlite3.rst:2091 +#: ../Doc/library/sqlite3.rst:2350 msgid "" "Using the :meth:`~Connection.execute`, :meth:`~Connection.executemany`, and :" "meth:`~Connection.executescript` methods of the :class:`Connection` class, " @@ -2545,18 +2790,21 @@ msgstr "" "ella directamente usando un simple llamado sobre el objeto de clase :class:" "`Connection`." -#: ../Doc/library/sqlite3.rst:2132 +#: ../Doc/library/sqlite3.rst:2391 msgid "How to use the connection context manager" msgstr "Como usar la conexión con un administrador de contexto" -#: ../Doc/library/sqlite3.rst:2134 +#: ../Doc/library/sqlite3.rst:2393 +#, fuzzy msgid "" "A :class:`Connection` object can be used as a context manager that " "automatically commits or rolls back open transactions when leaving the body " "of the context manager. If the body of the :keyword:`with` statement " "finishes without exceptions, the transaction is committed. If this commit " "fails, or if the body of the ``with`` statement raises an uncaught " -"exception, the transaction is rolled back." +"exception, the transaction is rolled back. If :attr:`~Connection.autocommit` " +"is ``False``, a new transaction is implicitly opened after committing or " +"rolling back." msgstr "" "Un objeto :class:`Connection` se puede utilizar como un administrador de " "contexto que confirma o revierte automáticamente las transacciones abiertas " @@ -2565,15 +2813,17 @@ msgstr "" "falla, o si el cuerpo del ``with`` lanza una excepción que no es capturada, " "la transacción se revierte." -#: ../Doc/library/sqlite3.rst:2143 +#: ../Doc/library/sqlite3.rst:2404 +#, fuzzy msgid "" "If there is no open transaction upon leaving the body of the ``with`` " -"statement, the context manager is a no-op." +"statement, or if :attr:`~Connection.autocommit` is ``True``, the context " +"manager does nothing." msgstr "" "Si no hay una transacción abierta al salir del cuerpo de la declaración " "``with``, el administrador de contexto no funciona." -#: ../Doc/library/sqlite3.rst:2148 +#: ../Doc/library/sqlite3.rst:2410 msgid "" "The context manager neither implicitly opens a new transaction nor closes " "the connection." @@ -2581,19 +2831,19 @@ msgstr "" "El administrador de contexto no abre implícitamente una nueva transacción ni " "cierra la conexión." -#: ../Doc/library/sqlite3.rst:2181 +#: ../Doc/library/sqlite3.rst:2443 msgid "How to work with SQLite URIs" msgstr "Como trabajar con URIs SQLite" -#: ../Doc/library/sqlite3.rst:2183 +#: ../Doc/library/sqlite3.rst:2445 msgid "Some useful URI tricks include:" msgstr "Algunos trucos útiles de URI incluyen:" -#: ../Doc/library/sqlite3.rst:2185 +#: ../Doc/library/sqlite3.rst:2447 msgid "Open a database in read-only mode:" msgstr "Abra una base de datos en modo de solo lectura:" -#: ../Doc/library/sqlite3.rst:2194 +#: ../Doc/library/sqlite3.rst:2456 msgid "" "Do not implicitly create a new database file if it does not already exist; " "will raise :exc:`~sqlite3.OperationalError` if unable to create a new file:" @@ -2602,11 +2852,11 @@ msgstr "" "esto lanzará un :exc:`~sqlite3.OperationalError` si no puede crear un nuevo " "archivo:" -#: ../Doc/library/sqlite3.rst:2204 +#: ../Doc/library/sqlite3.rst:2466 msgid "Create a shared named in-memory database:" msgstr "Crea un nombre compartido sobre una base de datos en memoria:" -#: ../Doc/library/sqlite3.rst:2218 +#: ../Doc/library/sqlite3.rst:2480 msgid "" "More information about this feature, including a list of parameters, can be " "found in the `SQLite URI documentation`_." @@ -2614,23 +2864,163 @@ msgstr "" "Más información sobre esta característica, incluyendo una lista de opciones " "reconocidas, pueden encontrarse en `SQLite URI documentation`_." -#: ../Doc/library/sqlite3.rst:2227 +#: ../Doc/library/sqlite3.rst:2489 +msgid "How to create and use row factories" +msgstr "" + +#: ../Doc/library/sqlite3.rst:2491 +msgid "" +"By default, :mod:`!sqlite3` represents each row as a :class:`tuple`. If a :" +"class:`!tuple` does not suit your needs, you can use the :class:`sqlite3." +"Row` class or a custom :attr:`~Cursor.row_factory`." +msgstr "" + +#: ../Doc/library/sqlite3.rst:2496 +msgid "" +"While :attr:`!row_factory` exists as an attribute both on the :class:" +"`Cursor` and the :class:`Connection`, it is recommended to set :class:" +"`Connection.row_factory`, so all cursors created from the connection will " +"use the same row factory." +msgstr "" + +#: ../Doc/library/sqlite3.rst:2501 +msgid "" +":class:`!Row` provides indexed and case-insensitive named access to columns, " +"with minimal memory overhead and performance impact over a :class:`!tuple`. " +"To use :class:`!Row` as a row factory, assign it to the :attr:`!row_factory` " +"attribute:" +msgstr "" + +#: ../Doc/library/sqlite3.rst:2511 +msgid "Queries now return :class:`!Row` objects:" +msgstr "" + +#: ../Doc/library/sqlite3.rst:2528 +msgid "" +"The ``FROM`` clause can be omitted in the ``SELECT`` statement, as in the " +"above example. In such cases, SQLite returns a single row with columns " +"defined by expressions, e.g. literals, with the given aliases ``expr AS " +"alias``." +msgstr "" + +#: ../Doc/library/sqlite3.rst:2533 +msgid "" +"You can create a custom :attr:`~Cursor.row_factory` that returns each row as " +"a :class:`dict`, with column names mapped to values:" +msgstr "" + +#: ../Doc/library/sqlite3.rst:2542 +msgid "" +"Using it, queries now return a :class:`!dict` instead of a :class:`!tuple`:" +msgstr "" + +#: ../Doc/library/sqlite3.rst:2552 +msgid "The following row factory returns a :term:`named tuple`:" +msgstr "" + +#: ../Doc/library/sqlite3.rst:2563 +msgid ":func:`!namedtuple_factory` can be used as follows:" +msgstr "" + +#: ../Doc/library/sqlite3.rst:2578 +msgid "" +"With some adjustments, the above recipe can be adapted to use a :class:" +"`~dataclasses.dataclass`, or any other custom class, instead of a :class:" +"`~collections.namedtuple`." +msgstr "" + +#: ../Doc/library/sqlite3.rst:2586 msgid "Explanation" msgstr "Explicación" -#: ../Doc/library/sqlite3.rst:2232 +#: ../Doc/library/sqlite3.rst:2592 msgid "Transaction control" msgstr "Control transaccional" -#: ../Doc/library/sqlite3.rst:2234 +#: ../Doc/library/sqlite3.rst:2594 +msgid "" +":mod:`!sqlite3` offers multiple methods of controlling whether, when and how " +"database transactions are opened and closed. :ref:`sqlite3-transaction-" +"control-autocommit` is recommended, while :ref:`sqlite3-transaction-control-" +"isolation-level` retains the pre-Python 3.12 behaviour." +msgstr "" + +#: ../Doc/library/sqlite3.rst:2603 +msgid "Transaction control via the ``autocommit`` attribute" +msgstr "" + +#: ../Doc/library/sqlite3.rst:2605 +msgid "" +"The recommended way of controlling transaction behaviour is through the :" +"attr:`Connection.autocommit` attribute, which should preferably be set using " +"the *autocommit* parameter of :func:`connect`." +msgstr "" + +#: ../Doc/library/sqlite3.rst:2610 +msgid "" +"It is suggested to set *autocommit* to ``False``, which implies :pep:`249`-" +"compliant transaction control. This means:" +msgstr "" + +#: ../Doc/library/sqlite3.rst:2614 +msgid "" +":mod:`!sqlite3` ensures that a transaction is always open, so :func:" +"`connect`, :meth:`Connection.commit`, and :meth:`Connection.rollback` will " +"implicitly open a new transaction (immediately after closing the pending " +"one, for the latter two). :mod:`!sqlite3` uses ``BEGIN DEFERRED`` statements " +"when opening transactions." +msgstr "" + +#: ../Doc/library/sqlite3.rst:2619 +msgid "Transactions should be committed explicitly using :meth:`!commit`." +msgstr "" + +#: ../Doc/library/sqlite3.rst:2620 +msgid "Transactions should be rolled back explicitly using :meth:`!rollback`." +msgstr "" + +#: ../Doc/library/sqlite3.rst:2621 +msgid "" +"An implicit rollback is performed if the database is :meth:`~Connection." +"close`-ed with pending changes." +msgstr "" + +#: ../Doc/library/sqlite3.rst:2624 +msgid "" +"Set *autocommit* to ``True`` to enable SQLite's `autocommit mode`_. In this " +"mode, :meth:`Connection.commit` and :meth:`Connection.rollback` have no " +"effect. Note that SQLite's autocommit mode is distinct from the :pep:`249`-" +"compliant :attr:`Connection.autocommit` attribute; use :attr:`Connection." +"in_transaction` to query the low-level SQLite autocommit mode." +msgstr "" + +#: ../Doc/library/sqlite3.rst:2632 msgid "" -"The :mod:`!sqlite3` module does not adhere to the transaction handling " -"recommended by :pep:`249`." +"Set *autocommit* to :data:`LEGACY_TRANSACTION_CONTROL` to leave transaction " +"control behaviour to the :attr:`Connection.isolation_level` attribute. See :" +"ref:`sqlite3-transaction-control-isolation-level` for more information." msgstr "" -"El :mod:`!sqlite3` no cumple con el manejo de transacciones recomendado por :" -"pep:`249`." -#: ../Doc/library/sqlite3.rst:2237 +#: ../Doc/library/sqlite3.rst:2641 +msgid "Transaction control via the ``isolation_level`` attribute" +msgstr "" + +#: ../Doc/library/sqlite3.rst:2645 +msgid "" +"The recommended way of controlling transactions is via the :attr:" +"`~Connection.autocommit` attribute. See :ref:`sqlite3-transaction-control-" +"autocommit`." +msgstr "" + +#: ../Doc/library/sqlite3.rst:2649 +msgid "" +"If :attr:`Connection.autocommit` is set to :data:" +"`LEGACY_TRANSACTION_CONTROL` (the default), transaction behaviour is " +"controlled using the :attr:`Connection.isolation_level` attribute. " +"Otherwise, :attr:`!isolation_level` has no effect." +msgstr "" + +#: ../Doc/library/sqlite3.rst:2655 msgid "" "If the connection attribute :attr:`~Connection.isolation_level` is not " "``None``, new transactions are implicitly opened before :meth:`~Cursor." @@ -2654,7 +3044,7 @@ msgstr "" "declaraciones ``BEGIN`` :mod:`!sqlite3` se ejecutarán implícitamente, a " "través del atributo :attr:`~Connection.isolation_level`." -#: ../Doc/library/sqlite3.rst:2250 +#: ../Doc/library/sqlite3.rst:2668 msgid "" "If :attr:`~Connection.isolation_level` is set to ``None``, no transactions " "are implicitly opened at all. This leaves the underlying SQLite library in " @@ -2671,7 +3061,7 @@ msgstr "" "subyacente se puede consultar mediante el atributo :attr:`~Connection." "in_transaction`." -#: ../Doc/library/sqlite3.rst:2258 +#: ../Doc/library/sqlite3.rst:2676 msgid "" "The :meth:`~Cursor.executescript` method implicitly commits any pending " "transaction before execution of the given SQL script, regardless of the " @@ -2681,10 +3071,165 @@ msgstr "" "transacción pendiente antes de la ejecución del script SQL dado, " "independientemente del valor de :attr:`~Connection.isolation_level`." -#: ../Doc/library/sqlite3.rst:2262 +#: ../Doc/library/sqlite3.rst:2680 msgid "" ":mod:`!sqlite3` used to implicitly commit an open transaction before DDL " "statements. This is no longer the case." msgstr "" ":mod:`!sqlite3` solía realizar commit en transacciones implícitamente antes " "de sentencias DDL. Este ya no es el caso." + +#: ../Doc/library/sqlite3.rst:2684 +msgid "" +"The recommended way of controlling transactions is now via the :attr:" +"`~Connection.autocommit` attribute." +msgstr "" + +#: ../Doc/library/sqlite3.rst:1492 +msgid "? (question mark)" +msgstr "" + +#: ../Doc/library/sqlite3.rst:1492 ../Doc/library/sqlite3.rst:1493 +msgid "in SQL statements" +msgstr "" + +#: ../Doc/library/sqlite3.rst:1493 +msgid ": (colon)" +msgstr "" + +#~ msgid "" +#~ "The path to the database file to be opened. Pass ``\":memory:\"`` to open " +#~ "a connection to a database that is in RAM instead of on disk." +#~ msgstr "" +#~ "La ruta al archivo de la base de datos que se pretende abrir. Pasa ``\":" +#~ "memory:\"`` para abrir la conexión con la base de datos en memoria RAM en " +#~ "lugar de el disco local." + +#~ msgid "" +#~ "The :mod:`!sqlite3` module supports both ``qmark`` and ``numeric`` DB-API " +#~ "parameter styles, because that is what the underlying SQLite library " +#~ "supports. However, the DB-API does not allow multiple values for the " +#~ "``paramstyle`` attribute." +#~ msgstr "" +#~ "El módulo :mod:`!sqlite3` soporta los parámetros de estilo DB-API " +#~ "``qmark`` y ``numeric``, porque eso es lo que admite la biblioteca. Sin " +#~ "embargo, la DB-API no permite varios valores para el atributo " +#~ "``paramstyle``." + +#~ msgid "" +#~ "Commit any pending transaction to the database. If there is no open " +#~ "transaction, this method is a no-op." +#~ msgstr "" +#~ "Guarda cualquier transacción pendiente en la base de datos. Si no hay " +#~ "transacciones abiertas, este método es un *no-op*." + +#~ msgid "" +#~ "Roll back to the start of any pending transaction. If there is no open " +#~ "transaction, this method is a no-op." +#~ msgstr "" +#~ "Restaura a su comienzo, cualquier transacción pendiente. Si no hay " +#~ "transacciones abiertas, este método es un *no-op*." + +#~ msgid "" +#~ "A callable that accepts two arguments, a :class:`Cursor` object and the " +#~ "raw row results as a :class:`tuple`, and returns a custom object " +#~ "representing an SQLite row." +#~ msgstr "" +#~ "Un objeto invocable que acepta dos argumentos, un objeto :class:`Cursor` " +#~ "y los resultados de la fila sin procesar como una :class:`tupla `, " +#~ "y retorna un objeto personalizado que representa una fila SQLite." + +#~ msgid "" +#~ "If returning a tuple doesn't suffice and you want name-based access to " +#~ "columns, you should consider setting :attr:`row_factory` to the highly " +#~ "optimized :class:`sqlite3.Row` type. :class:`Row` provides both index-" +#~ "based and case-insensitive name-based access to columns with almost no " +#~ "memory overhead. It will probably be better than your own custom " +#~ "dictionary-based approach or even a db_row based solution." +#~ msgstr "" +#~ "Si retorna una tupla no es suficiente y desea acceso basado en nombres a " +#~ "las columnas se debe considerar configurar :attr:`row_factory` a la " +#~ "altamente optimizada tipo :class:`sqlite3.Row`. :class:`Row` provee ambos " +#~ "accesos a columnas basada en índice y tipado insensible con casi nada de " +#~ "sobrecoste de memoria. Será probablemente mejor que tú propio enfoque de " +#~ "basado en diccionario personalizado o incluso mejor que una solución " +#~ "basada en *db_row*." + +#~ msgid "" +#~ "Execute SQL statement *sql*. Bind values to the statement using :ref:" +#~ "`placeholders ` that map to the :term:`sequence` " +#~ "or :class:`dict` *parameters*." +#~ msgstr "" +#~ "Ejecuta una sentencia SQL *sql*. Los valores pueden vincularse a la " +#~ "sentencia utilizando :ref:`placeholders ` que mapea " +#~ "*parameters* :term:`sequence` o :class:`dict` ." + +#~ msgid "" +#~ ":meth:`execute` will only execute a single SQL statement. If you try to " +#~ "execute more than one statement with it, it will raise a :exc:" +#~ "`ProgrammingError`. Use :meth:`executescript` if you want to execute " +#~ "multiple SQL statements with one call." +#~ msgstr "" +#~ ":meth:`execute` solamente ejecutará sentencias únicas SQL. Si intenta " +#~ "ejecutar más de una instrucción con él, se lanzará un :exc:" +#~ "`ProgrammingError`. Use :meth:`executescript` si desea ejecutar varias " +#~ "instrucciones SQL con una sola llamada." + +#~ msgid "" +#~ "Execute :ref:`parameterized ` SQL statement *sql* " +#~ "against all parameter sequences or mappings found in the sequence " +#~ "*parameters*. It is also possible to use an :term:`iterator` yielding " +#~ "parameters instead of a sequence. Uses the same implicit transaction " +#~ "handling as :meth:`~Cursor.execute`." +#~ msgstr "" +#~ "Ejecuta una sentencia SQL *sql* :ref:`parameterized ` contra todas las secuencias de parámetros o asignaciones " +#~ "encontradas en la secuencia *parameters*. También es posible utilizar un :" +#~ "term:`iterator` que produzca parámetros en lugar de una secuencia. " +#~ "Utiliza el mismo control de transacciones implícitas que :meth:`~Cursor." +#~ "execute`." + +#~ msgid "" +#~ "There are default adapters for the date and datetime types in the " +#~ "datetime module. They will be sent as ISO dates/ISO timestamps to SQLite." +#~ msgstr "" +#~ "Hay adaptadores por defecto para los tipos date y datetime en el módulo " +#~ "datetime. Éstos serán enviados como fechas/marcas de tiempo ISO a SQLite." + +#~ msgid "" +#~ "The default converters are registered under the name \"date\" for :class:" +#~ "`datetime.date` and under the name \"timestamp\" for :class:`datetime." +#~ "datetime`." +#~ msgstr "" +#~ "Los convertidores por defecto están registrados bajo el nombre \"date\" " +#~ "para :class:`datetime.date` y bajo el mismo nombre para \"timestamp\" " +#~ "para :class:`datetime.datetime`." + +#~ msgid "" +#~ "This way, you can use date/timestamps from Python without any additional " +#~ "fiddling in most cases. The format of the adapters is also compatible " +#~ "with the experimental SQLite date/time functions." +#~ msgstr "" +#~ "De esta forma, se puede usar date/timestamps para Python sin ajuste " +#~ "adicional en la mayoría de los casos. El formato de los adaptadores " +#~ "también es compatible con las funciones experimentales de SQLite date/" +#~ "time." + +#~ msgid "The following example demonstrates this." +#~ msgstr "El siguiente ejemplo demuestra esto." + +#~ msgid "" +#~ "If a timestamp stored in SQLite has a fractional part longer than 6 " +#~ "numbers, its value will be truncated to microsecond precision by the " +#~ "timestamp converter." +#~ msgstr "" +#~ "Si un *timestamp* almacenado en SQLite tiene una parte fraccional mayor a " +#~ "6 números, este valor será truncado a precisión de microsegundos por el " +#~ "convertidor de *timestamp*." + +#~ msgid "" +#~ "The :mod:`!sqlite3` module does not adhere to the transaction handling " +#~ "recommended by :pep:`249`." +#~ msgstr "" +#~ "El :mod:`!sqlite3` no cumple con el manejo de transacciones recomendado " +#~ "por :pep:`249`." diff --git a/library/ssl.po b/library/ssl.po index d3532baf2c..54b2321d89 100644 --- a/library/ssl.po +++ b/library/ssl.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.9\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-04 16:45+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/ssl.rst:2 msgid ":mod:`ssl` --- TLS/SSL wrapper for socket objects" @@ -69,11 +69,12 @@ msgstr "" "falsa sensación de seguridad, ya que la configuración predeterminada del " "módulo ssl no es necesariamente la adecuada para su aplicación." +#: ../Doc/includes/wasm-notavail.rst:3 #, fuzzy msgid ":ref:`Availability `: not Emscripten, not WASI." msgstr ":ref:`Disponibilidad `: no Emscripten, no WASI." -#: ../Doc/library/cpython/Doc/includes/wasm-notavail.rst:5 +#: ../Doc/includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly platforms " "``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for " @@ -155,43 +156,34 @@ msgstr "Funciones, constantes y excepciones" msgid "Socket creation" msgstr "Creación de sockets" -# el término en inglés "hostname matching" me parece mucho mas claro que -# cualquier traducción al español ("coincidencia de nombres de anfitrión" ?) #: ../Doc/library/ssl.rst:77 +#, fuzzy msgid "" -"Since Python 3.2 and 2.7.9, it is recommended to use the :meth:`SSLContext." -"wrap_socket` of an :class:`SSLContext` instance to wrap sockets as :class:" -"`SSLSocket` objects. The helper functions :func:`create_default_context` " -"returns a new context with secure default settings. The old :func:" -"`wrap_socket` function is deprecated since it is both inefficient and has no " -"support for server name indication (SNI) and hostname matching." -msgstr "" -"Desde Python 3.2 y 2.7.9, se recomienda utilizar :meth:`SSLContext." -"wrap_socket` de una instancia de :class:`SSLContext` para envolver sockets " -"como objetos :class:`SSLSocket`. La función utilitaria :func:" -"`create_default_context` retorna un nuevo contexto con ajustes por defecto " -"seguros. La vieja función :func:`wrap_socket` es obsoleta debido a que es " -"ineficiente y que no tiene soporte para la indicación de nombre de servidor " -"(SNI) ni hostname matching." - -#: ../Doc/library/ssl.rst:85 +"Instances of :class:`SSLSocket` must be created using the :meth:`SSLContext." +"wrap_socket` method. The helper function :func:`create_default_context` " +"returns a new context with secure default settings." +msgstr "" +"Instancias de :class:`SSLSocket` deben ser creadas usando el método :meth:" +"`SSLContext.wrap_socket`." + +#: ../Doc/library/ssl.rst:82 msgid "Client socket example with default context and IPv4/IPv6 dual stack::" msgstr "" "Ejemplo de socket cliente con contexto por defecto y doble pila IPv4/IPv6::" -#: ../Doc/library/ssl.rst:98 +#: ../Doc/library/ssl.rst:95 msgid "Client socket example with custom context and IPv4::" msgstr "Ejemplo de socket cliente con contexto personalizado y IPv4::" -#: ../Doc/library/ssl.rst:110 +#: ../Doc/library/ssl.rst:107 msgid "Server socket example listening on localhost IPv4::" msgstr "Ejemplo de socket servidor escuchando en localhost IPv4::" -#: ../Doc/library/ssl.rst:124 +#: ../Doc/library/ssl.rst:121 msgid "Context creation" msgstr "Creación de contexto" -#: ../Doc/library/ssl.rst:126 +#: ../Doc/library/ssl.rst:123 msgid "" "A convenience function helps create :class:`SSLContext` objects for common " "purposes." @@ -199,7 +191,7 @@ msgstr "" "Una función conveniente ayuda a crear objetos :class:`SSLContext` para " "propósitos comunes." -#: ../Doc/library/ssl.rst:131 +#: ../Doc/library/ssl.rst:128 msgid "" "Return a new :class:`SSLContext` object with default settings for the given " "*purpose*. The settings are chosen by the :mod:`ssl` module, and usually " @@ -211,7 +203,7 @@ msgstr "" "generalmente representan un nivel de seguridad mas alto que invocando " "directamente el constructor de :class:`SSLContext`." -#: ../Doc/library/ssl.rst:136 +#: ../Doc/library/ssl.rst:133 msgid "" "*cafile*, *capath*, *cadata* represent optional CA certificates to trust for " "certificate verification, as in :meth:`SSLContext.load_verify_locations`. " @@ -224,12 +216,13 @@ msgstr "" "función puede optar por confiar en su lugar en los certificados CA por " "defecto del sistema." -#: ../Doc/library/ssl.rst:142 +#: ../Doc/library/ssl.rst:139 +#, fuzzy msgid "" "The settings are: :data:`PROTOCOL_TLS_CLIENT` or :data:" "`PROTOCOL_TLS_SERVER`, :data:`OP_NO_SSLv2`, and :data:`OP_NO_SSLv3` with " "high encryption cipher suites without RC4 and without unauthenticated cipher " -"suites. Passing :data:`~Purpose.SERVER_AUTH` as *purpose* sets :data:" +"suites. Passing :const:`~Purpose.SERVER_AUTH` as *purpose* sets :data:" "`~SSLContext.verify_mode` to :data:`CERT_REQUIRED` and either loads CA " "certificates (when at least one of *cafile*, *capath* or *cadata* is given) " "or uses :meth:`SSLContext.load_default_certs` to load default CA " @@ -244,7 +237,7 @@ msgstr "" "`SSLContext.load_default_certs` para cargar certificados de CA " "predeterminados." -#: ../Doc/library/ssl.rst:151 +#: ../Doc/library/ssl.rst:148 msgid "" "When :attr:`~SSLContext.keylog_filename` is supported and the environment " "variable :envvar:`SSLKEYLOGFILE` is set, :func:`create_default_context` " @@ -254,7 +247,7 @@ msgstr "" "entorno :envvar:`SSLKEYLOGFILE` está establecida, :func:" "`create_default_context` activa el registro de claves." -#: ../Doc/library/ssl.rst:156 +#: ../Doc/library/ssl.rst:153 msgid "" "The protocol, options, cipher and other settings may change to more " "restrictive values anytime without prior deprecation. The values represent " @@ -264,7 +257,7 @@ msgstr "" "valores mas restrictivos en cualquier momento sin previa obsolescencia. Los " "valores representan un equilibrio justo entre compatibilidad y seguridad." -#: ../Doc/library/ssl.rst:160 +#: ../Doc/library/ssl.rst:157 msgid "" "If your application needs specific settings, you should create a :class:" "`SSLContext` and apply the settings yourself." @@ -274,7 +267,7 @@ msgstr "" # Es necesario traducir los mensajes de error ? # ("Protocol or cipher suite mismatch") -#: ../Doc/library/ssl.rst:164 +#: ../Doc/library/ssl.rst:161 msgid "" "If you find that when certain older clients or servers attempt to connect " "with a :class:`SSLContext` created by this function that they get an error " @@ -293,27 +286,27 @@ msgstr "" "esta función pero permitir conexiones SSL 3.0, puede volver a activarlas " "mediante::" -#: ../Doc/library/ssl.rst:180 +#: ../Doc/library/ssl.rst:177 msgid "RC4 was dropped from the default cipher string." msgstr "RC4 ha sido abandonado de la cadena de cifrado por defecto." -#: ../Doc/library/ssl.rst:184 +#: ../Doc/library/ssl.rst:181 msgid "ChaCha20/Poly1305 was added to the default cipher string." msgstr "" "ChaCha20/Poly1305 ha sido agregado a la cadena de caracteres de cifrado por " "defecto." -#: ../Doc/library/ssl.rst:186 +#: ../Doc/library/ssl.rst:183 msgid "3DES was dropped from the default cipher string." msgstr "" "3DES ha sido abandonado de la cadena de caracteres de cifrado por defecto." -#: ../Doc/library/ssl.rst:190 +#: ../Doc/library/ssl.rst:187 msgid "Support for key logging to :envvar:`SSLKEYLOGFILE` was added." msgstr "" "Soporte del registro de claves en :envvar:`SSLKEYLOGFILE` ha sido agregado." -#: ../Doc/library/ssl.rst:194 +#: ../Doc/library/ssl.rst:191 msgid "" "The context now uses :data:`PROTOCOL_TLS_CLIENT` or :data:" "`PROTOCOL_TLS_SERVER` protocol instead of generic :data:`PROTOCOL_TLS`." @@ -321,11 +314,11 @@ msgstr "" "El contexto ahora usa el protocolo :data:`PROTOCOL_TLS_CLIENT` o :data:" "`PROTOCOL_TLS_SERVER` en lugar del :data:`PROTOCOL_TLS` genérico." -#: ../Doc/library/ssl.rst:200 +#: ../Doc/library/ssl.rst:197 msgid "Exceptions" msgstr "Excepciones" -#: ../Doc/library/ssl.rst:204 +#: ../Doc/library/ssl.rst:201 msgid "" "Raised to signal an error from the underlying SSL implementation (currently " "provided by the OpenSSL library). This signifies some problem in the higher-" @@ -341,11 +334,11 @@ msgstr "" "`OSError`. El código de error y el mensaje de las instancias de :exc:" "`SSLError` son proporcionados por la biblioteca OpenSSL." -#: ../Doc/library/ssl.rst:211 +#: ../Doc/library/ssl.rst:208 msgid ":exc:`SSLError` used to be a subtype of :exc:`socket.error`." msgstr ":exc:`SSLError` era un subtipo de :exc:`socket.error`." -#: ../Doc/library/ssl.rst:216 +#: ../Doc/library/ssl.rst:213 msgid "" "A string mnemonic designating the OpenSSL submodule in which the error " "occurred, such as ``SSL``, ``PEM`` or ``X509``. The range of possible " @@ -355,7 +348,7 @@ msgstr "" "el que se ha producido el error, como ``SSL``, ``PEM`` o ``X509``. El rango " "de valores posibles depende de la versión de OpenSSL." -#: ../Doc/library/ssl.rst:224 +#: ../Doc/library/ssl.rst:221 msgid "" "A string mnemonic designating the reason this error occurred, for example " "``CERTIFICATE_VERIFY_FAILED``. The range of possible values depends on the " @@ -365,7 +358,7 @@ msgstr "" "produjo el error, por ejemplo ``CERTIFICATE_VERIFY_FAILED``. El rango de " "valores posibles depende de la versión de OpenSSL." -#: ../Doc/library/ssl.rst:232 +#: ../Doc/library/ssl.rst:229 msgid "" "A subclass of :exc:`SSLError` raised when trying to read or write and the " "SSL connection has been closed cleanly. Note that this doesn't mean that " @@ -375,7 +368,7 @@ msgstr "" "la conexión SSL ha sido cerrada limpiamente. Tenga en cuenta que esto no " "significa que el transporte subyacente (lectura TCP) haya sido cerrado." -#: ../Doc/library/ssl.rst:240 +#: ../Doc/library/ssl.rst:237 msgid "" "A subclass of :exc:`SSLError` raised by a :ref:`non-blocking SSL socket ` when trying to read or write data, but more data needs to be " @@ -386,7 +379,7 @@ msgstr "" "mas datos necesitan ser recibidos en el transporte TCP subyacente antes de " "que la solicitud pueda ser completada." -#: ../Doc/library/ssl.rst:249 +#: ../Doc/library/ssl.rst:246 msgid "" "A subclass of :exc:`SSLError` raised by a :ref:`non-blocking SSL socket ` when trying to read or write data, but more data needs to be " @@ -397,7 +390,7 @@ msgstr "" "mas datos necesitan ser enviados en el transporte TCP subyacente antes de " "que la solicitud pueda ser completada." -#: ../Doc/library/ssl.rst:258 +#: ../Doc/library/ssl.rst:255 msgid "" "A subclass of :exc:`SSLError` raised when a system error was encountered " "while trying to fulfill an operation on a SSL socket. Unfortunately, there " @@ -407,7 +400,7 @@ msgstr "" "sistema mientras se intenta completar una operación en un socket SSL. Por " "desgracia, no hay una manera fácil de inspeccionar el número errno original." -#: ../Doc/library/ssl.rst:266 +#: ../Doc/library/ssl.rst:263 msgid "" "A subclass of :exc:`SSLError` raised when the SSL connection has been " "terminated abruptly. Generally, you shouldn't try to reuse the underlying " @@ -417,34 +410,34 @@ msgstr "" "cancelada abruptamente. Generalmente, no debería intentar reutilizar el " "transporte subyacente cuando este error se produce." -#: ../Doc/library/ssl.rst:274 +#: ../Doc/library/ssl.rst:271 msgid "" "A subclass of :exc:`SSLError` raised when certificate validation has failed." msgstr "" "Una subclase de :exc:`SSLError` lanzada cuando la validación del certificado " "ha fallado." -#: ../Doc/library/ssl.rst:281 +#: ../Doc/library/ssl.rst:278 msgid "A numeric error number that denotes the verification error." msgstr "Un número de error numérico que indica el error de verificación." -#: ../Doc/library/ssl.rst:285 +#: ../Doc/library/ssl.rst:282 msgid "A human readable string of the verification error." msgstr "Una cadena de caracteres legible del error de verificación." -#: ../Doc/library/ssl.rst:289 +#: ../Doc/library/ssl.rst:286 msgid "An alias for :exc:`SSLCertVerificationError`." msgstr "Un alias para :exc:`SSLCertVerificationError`." -#: ../Doc/library/ssl.rst:291 +#: ../Doc/library/ssl.rst:288 msgid "The exception is now an alias for :exc:`SSLCertVerificationError`." msgstr "La excepción es ahora un alias para :exc:`SSLCertVerificationError`." -#: ../Doc/library/ssl.rst:296 +#: ../Doc/library/ssl.rst:293 msgid "Random generation" msgstr "Generación aleatoria" -#: ../Doc/library/ssl.rst:300 +#: ../Doc/library/ssl.rst:297 msgid "" "Return *num* cryptographically strong pseudo-random bytes. Raises an :class:" "`SSLError` if the PRNG has not been seeded with enough data or if the " @@ -458,11 +451,11 @@ msgstr "" "puede ser usada para verificar el estado de PRNG y :func:`RAND_add` puede " "ser usada para sembrar el PRNG." -#: ../Doc/library/ssl.rst:306 ../Doc/library/ssl.rst:327 +#: ../Doc/library/ssl.rst:303 msgid "For almost all applications :func:`os.urandom` is preferable." msgstr "Para casi todas las aplicaciones :func:`os.urandom` es preferible." -#: ../Doc/library/ssl.rst:308 +#: ../Doc/library/ssl.rst:305 msgid "" "Read the Wikipedia article, `Cryptographically secure pseudorandom number " "generator (CSPRNG) `_, " "para obtener los requisitos para un generador criptográficamente seguro." -#: ../Doc/library/ssl.rst:317 -msgid "" -"Return (bytes, is_cryptographic): bytes are *num* pseudo-random bytes, " -"is_cryptographic is ``True`` if the bytes generated are cryptographically " -"strong. Raises an :class:`SSLError` if the operation is not supported by the " -"current RAND method." -msgstr "" -"Retorna (bytes, is_cryptographic): bytes es *num* bytes pseudoaleatorios, " -"is_cryptographic es ``True`` si los bytes generados son criptográficamente " -"fuertes. Lanza un :class:`SSLError` si la operación no es soportada por el " -"método RAND actual." - -#: ../Doc/library/ssl.rst:322 -msgid "" -"Generated pseudo-random byte sequences will be unique if they are of " -"sufficient length, but are not necessarily unpredictable. They can be used " -"for non-cryptographic purposes and for certain purposes in cryptographic " -"protocols, but usually not for key generation etc." -msgstr "" -"Las secuencias de bytes pseudoaleatorios generadas serán únicas si tienen " -"una longitud suficiente, pero no son necesariamente impredecibles. Pueden " -"utilizarse para fines no criptográficos y para ciertos fines en protocolos " -"criptográficos, pero normalmente no para la generación de claves, etc." - -#: ../Doc/library/ssl.rst:333 -msgid "" -"OpenSSL has deprecated :func:`ssl.RAND_pseudo_bytes`, use :func:`ssl." -"RAND_bytes` instead." -msgstr "" -"OpenSSL a dejado obsoleta :func:`ssl.RAND_pseudo_bytes`, utilice :func:`ssl." -"RAND_bytes` en su lugar." - -#: ../Doc/library/ssl.rst:338 +#: ../Doc/library/ssl.rst:314 msgid "" "Return ``True`` if the SSL pseudo-random number generator has been seeded " "with 'enough' randomness, and ``False`` otherwise. You can use :func:`ssl." @@ -518,11 +479,12 @@ msgstr "" "utilizarse :func:`ssl.RAND_egd` y :func:`ssl.RAND_add` para aumentar la " "aleatoriedad del generador de números pseudoaleatorios." -#: ../Doc/library/ssl.rst:345 +#: ../Doc/library/ssl.rst:321 +#, fuzzy msgid "" "Mix the given *bytes* into the SSL pseudo-random number generator. The " "parameter *entropy* (a float) is a lower bound on the entropy contained in " -"string (so you can always use :const:`0.0`). See :rfc:`1750` for more " +"string (so you can always use ``0.0``). See :rfc:`1750` for more " "information on sources of entropy." msgstr "" "Mezcla los *bytes* dados en el generador de números pseudoaleatorios de SSL. " @@ -531,79 +493,15 @@ msgstr "" "const:`0.0`). Véase :rfc:`1750` para mas información sobre las fuentes de " "entropía." -#: ../Doc/library/ssl.rst:350 +#: ../Doc/library/ssl.rst:326 msgid "Writable :term:`bytes-like object` is now accepted." msgstr "Ahora se acepta :term:`bytes-like object` modificable." -#: ../Doc/library/ssl.rst:354 +#: ../Doc/library/ssl.rst:330 msgid "Certificate handling" msgstr "Gestión de certificados" -#: ../Doc/library/ssl.rst:362 -msgid "" -"Verify that *cert* (in decoded format as returned by :meth:`SSLSocket." -"getpeercert`) matches the given *hostname*. The rules applied are those for " -"checking the identity of HTTPS servers as outlined in :rfc:`2818`, :rfc:" -"`5280` and :rfc:`6125`. In addition to HTTPS, this function should be " -"suitable for checking the identity of servers in various SSL-based protocols " -"such as FTPS, IMAPS, POPS and others." -msgstr "" -"Verifica que *cert* (en formato decodificado tal y como es retornado por :" -"meth:`SSLSocket.getpeercert`) coincide con el *hostname* dado. Las reglas " -"aplicadas son las de comprobación de la identidad de los servidores HTTPS, " -"como se indica en :rfc:`2818`, :rfc:`5280` y :rfc:`6125`. Además de HTTPS, " -"esta función debería ser adecuada para comprobar la identidad de servidores " -"en varios protocolos basados en SSL como FTPS, IMAPS, POPS y otros." - -#: ../Doc/library/ssl.rst:369 -msgid "" -":exc:`CertificateError` is raised on failure. On success, the function " -"returns nothing::" -msgstr "" -":exc:`CertificateError` es lanzado en caso de error. En caso de éxito, la " -"función no retorna nada::" - -#: ../Doc/library/ssl.rst:382 -msgid "" -"The function now follows :rfc:`6125`, section 6.4.3 and does neither match " -"multiple wildcards (e.g. ``*.*.com`` or ``*a*.example.org``) nor a wildcard " -"inside an internationalized domain names (IDN) fragment. IDN A-labels such " -"as ``www*.xn--pthon-kva.org`` are still supported, but ``x*.python.org`` no " -"longer matches ``xn--tda.python.org``." -msgstr "" -"La función ahora sigue :rfc:`6125` sección 6.4.3 y no soporta múltiples " -"caracteres comodín (por ejemplo ``*.*.com`` o ``*a*.example.org``) ni " -"tampoco un carácter comodín dentro de un fragmento de un nombre de dominio " -"internacionalizado (IDN). Etiquetas A de IDN tales como ``www*.xn--pthon-kva." -"org`` son todavía soportadas, pero ``x*.python.org`` ya no corresponde con " -"``xn--tda.python.org``." - -#: ../Doc/library/ssl.rst:389 -msgid "" -"Matching of IP addresses, when present in the subjectAltName field of the " -"certificate, is now supported." -msgstr "" -"Ahora se admite la coincidencia de direcciones IP cuando están presentes en " -"el campo subjectAltName del certificado." - -#: ../Doc/library/ssl.rst:393 -msgid "" -"The function is no longer used to TLS connections. Hostname matching is now " -"performed by OpenSSL." -msgstr "" -"La función ya no se utiliza para las conexiones TLS. La coincidencia de " -"hostname es ahora realizada por OpenSSL." - -#: ../Doc/library/ssl.rst:397 -msgid "" -"Allow wildcard when it is the leftmost and the only character in that " -"segment. Partial wildcards like ``www*.example.com`` are no longer supported." -msgstr "" -"Se permite el carácter comodín cuando es el carácter más a la izquierda y el " -"único en ese segmento. Ya no se admiten comodines parciales como ``www*." -"example.com`` ." - -#: ../Doc/library/ssl.rst:405 +#: ../Doc/library/ssl.rst:338 #, python-format msgid "" "Return the time in seconds since the Epoch, given the ``cert_time`` string " @@ -614,15 +512,15 @@ msgstr "" "``cert_time`` que representa la fecha *notBefore* o *notAfter* de un " "certificado en formato strptime ``\"%b %d %H:%M:%S %Y %Z\"`` (C locale)." -#: ../Doc/library/ssl.rst:410 +#: ../Doc/library/ssl.rst:343 msgid "Here's an example:" msgstr "He aquí un ejemplo:" -#: ../Doc/library/ssl.rst:422 +#: ../Doc/library/ssl.rst:355 msgid "\"notBefore\" or \"notAfter\" dates must use GMT (:rfc:`5280`)." msgstr "Las fechas *notBefore* o *notAfter* deben utilizar GMT (:rfc:`5280`)." -#: ../Doc/library/ssl.rst:424 +#: ../Doc/library/ssl.rst:357 msgid "" "Interpret the input time as a time in UTC as specified by 'GMT' timezone in " "the input string. Local timezone was used previously. Return an integer (no " @@ -633,17 +531,19 @@ msgstr "" "se utilizaba la zona horaria local. Retorna un número entero (sin fracciones " "de segundo en el formato de entrada)" -#: ../Doc/library/ssl.rst:433 +#: ../Doc/library/ssl.rst:366 +#, fuzzy msgid "" "Given the address ``addr`` of an SSL-protected server, as a (*hostname*, " "*port-number*) pair, fetches the server's certificate, and returns it as a " "PEM-encoded string. If ``ssl_version`` is specified, uses that version of " -"the SSL protocol to attempt to connect to the server. If ``ca_certs`` is " +"the SSL protocol to attempt to connect to the server. If *ca_certs* is " "specified, it should be a file containing a list of root certificates, the " -"same format as used for the same parameter in :meth:`SSLContext." -"wrap_socket`. The call will attempt to validate the server certificate " -"against that set of root certificates, and will fail if the validation " -"attempt fails. A timeout can be specified with the ``timeout`` parameter." +"same format as used for the *cafile* parameter in :meth:`SSLContext." +"load_verify_locations`. The call will attempt to validate the server " +"certificate against that set of root certificates, and will fail if the " +"validation attempt fails. A timeout can be specified with the ``timeout`` " +"parameter." msgstr "" "Dada la dirección ``addr`` de un servidor protegido con SSL, como un par " "(*hostname*, *port-number*), obtiene el certificado del servidor, y lo " @@ -655,11 +555,11 @@ msgstr "" "llamada intentará validar el certificado del servidor contra ese conjunto de " "certificados raíz, y fallará si el intento de validación falla." -#: ../Doc/library/ssl.rst:444 +#: ../Doc/library/ssl.rst:377 msgid "This function is now IPv6-compatible." msgstr "Esta función es ahora compatible IPv6." -#: ../Doc/library/ssl.rst:447 +#: ../Doc/library/ssl.rst:380 msgid "" "The default *ssl_version* is changed from :data:`PROTOCOL_SSLv3` to :data:" "`PROTOCOL_TLS` for maximum compatibility with modern servers." @@ -667,11 +567,11 @@ msgstr "" "La *ssl_version* por defecto se cambia de :data:`PROTOCOL_SSLv3` a :data:" "`PROTOCOL_TLS` para una máxima compatibilidad con los servidores modernos." -#: ../Doc/library/ssl.rst:451 +#: ../Doc/library/ssl.rst:384 msgid "The *timeout* parameter was added." msgstr "Se agregó el argumento *session*." -#: ../Doc/library/ssl.rst:456 +#: ../Doc/library/ssl.rst:389 msgid "" "Given a certificate as a DER-encoded blob of bytes, returns a PEM-encoded " "string version of the same certificate." @@ -679,7 +579,7 @@ msgstr "" "Dado un certificado como blob de bytes codificado en DER, retorna una " "versión de cadena de caracteres codificada en PEM del mismo certificado." -#: ../Doc/library/ssl.rst:461 +#: ../Doc/library/ssl.rst:394 msgid "" "Given a certificate as an ASCII PEM string, returns a DER-encoded sequence " "of bytes for that same certificate." @@ -687,7 +587,7 @@ msgstr "" "Dado un certificado como cadena de caracteres ASCII PEM, retorna una " "secuencia de bytes codificada con DER para ese mismo certificado." -#: ../Doc/library/ssl.rst:466 +#: ../Doc/library/ssl.rst:399 msgid "" "Returns a named tuple with paths to OpenSSL's default cafile and capath. The " "paths are the same as used by :meth:`SSLContext.set_default_verify_paths`. " @@ -698,14 +598,14 @@ msgstr "" "set_default_verify_paths`. El valor de retorno es una :term:`named tuple` " "``DefaultVerifyPaths``:" -#: ../Doc/library/ssl.rst:471 +#: ../Doc/library/ssl.rst:404 msgid "" ":attr:`cafile` - resolved path to cafile or ``None`` if the file doesn't " "exist," msgstr "" ":attr:`cafile` - ruta resuelta a cafile o ``None`` si el archivo no existe," -#: ../Doc/library/ssl.rst:472 +#: ../Doc/library/ssl.rst:405 msgid "" ":attr:`capath` - resolved path to capath or ``None`` if the directory " "doesn't exist," @@ -713,7 +613,7 @@ msgstr "" ":attr:`capath` - ruta resuelta a capath o ``None`` si el directorio no " "existe," -#: ../Doc/library/ssl.rst:473 +#: ../Doc/library/ssl.rst:406 msgid "" ":attr:`openssl_cafile_env` - OpenSSL's environment key that points to a " "cafile," @@ -721,12 +621,12 @@ msgstr "" ":attr:`openssl_cafile_env` - clave de entorno de OpenSSL que apunta a un " "cafile," -#: ../Doc/library/ssl.rst:474 +#: ../Doc/library/ssl.rst:407 msgid ":attr:`openssl_cafile` - hard coded path to a cafile," msgstr "" ":attr:`openssl_cafile` - camino codificado de forma rígida a un cafile," -#: ../Doc/library/ssl.rst:475 +#: ../Doc/library/ssl.rst:408 msgid "" ":attr:`openssl_capath_env` - OpenSSL's environment key that points to a " "capath," @@ -734,13 +634,13 @@ msgstr "" ":attr:`openssl_capath_env` - clave de entorno de OpenSSL que apunta a un " "capath," -#: ../Doc/library/ssl.rst:476 +#: ../Doc/library/ssl.rst:409 msgid ":attr:`openssl_capath` - hard coded path to a capath directory" msgstr "" ":attr:`openssl_capath` - camino codificado de forma rígida a un directorio " "capath" -#: ../Doc/library/ssl.rst:482 +#: ../Doc/library/ssl.rst:415 msgid "" "Retrieve certificates from Windows' system cert store. *store_name* may be " "one of ``CA``, ``ROOT`` or ``MY``. Windows may provide additional cert " @@ -751,7 +651,7 @@ msgstr "" "``MY``. Windows también puede proporcionar almacenes de certificados " "adicionales." -#: ../Doc/library/ssl.rst:486 +#: ../Doc/library/ssl.rst:419 msgid "" "The function returns a list of (cert_bytes, encoding_type, trust) tuples. " "The encoding_type specifies the encoding of cert_bytes. It is either :const:" @@ -766,16 +666,16 @@ msgstr "" "OIDS o exactamente ``True`` si el certificado es de confianza para todos los " "propósitos." -#: ../Doc/library/ssl.rst:493 ../Doc/library/ssl.rst:1637 -#: ../Doc/library/ssl.rst:1932 +#: ../Doc/library/ssl.rst:426 ../Doc/library/ssl.rst:1542 +#: ../Doc/library/ssl.rst:1837 msgid "Example::" msgstr "Ejemplo::" -#: ../Doc/library/ssl.rst:500 ../Doc/library/ssl.rst:515 +#: ../Doc/library/ssl.rst:432 ../Doc/library/ssl.rst:447 msgid ":ref:`Availability `: Windows." msgstr ":ref:`Disponibilidad `: Windows." -#: ../Doc/library/ssl.rst:505 +#: ../Doc/library/ssl.rst:438 msgid "" "Retrieve CRLs from Windows' system cert store. *store_name* may be one of " "``CA``, ``ROOT`` or ``MY``. Windows may provide additional cert stores, too." @@ -784,7 +684,7 @@ msgstr "" "*store_name* puede ser uno de los siguientes: ``CA``, ``ROOT`` o ``MY``. " "Windows también puede proporcionar almacenes de certificados adicionales." -#: ../Doc/library/ssl.rst:509 +#: ../Doc/library/ssl.rst:442 msgid "" "The function returns a list of (cert_bytes, encoding_type, trust) tuples. " "The encoding_type specifies the encoding of cert_bytes. It is either :const:" @@ -795,59 +695,11 @@ msgstr "" "`x509_asn` para datos X.509 ASN.1 o :const:`pkcs_7_asn` para datos PKCS#7 " "ASN.1." -#: ../Doc/library/ssl.rst:523 -msgid "" -"Takes an instance ``sock`` of :class:`socket.socket`, and returns an " -"instance of :class:`ssl.SSLSocket`, a subtype of :class:`socket.socket`, " -"which wraps the underlying socket in an SSL context. ``sock`` must be a :" -"data:`~socket.SOCK_STREAM` socket; other socket types are unsupported." -msgstr "" -"Toma una instancia ``sock`` de :class:`socket.socket`, y retorna una " -"instancia de :class:`ssl.SSLSocket`, un subtipo de :class:`socket.socket`, " -"que envuelve el socket de base en un contexto SSL. ``sock`` debe ser un " -"socket :data:`~socket.SOCK_STREAM`; otros tipos de socket no son compatibles." - -#: ../Doc/library/ssl.rst:528 -msgid "" -"Internally, function creates a :class:`SSLContext` with protocol " -"*ssl_version* and :attr:`SSLContext.options` set to *cert_reqs*. If " -"parameters *keyfile*, *certfile*, *ca_certs* or *ciphers* are set, then the " -"values are passed to :meth:`SSLContext.load_cert_chain`, :meth:`SSLContext." -"load_verify_locations`, and :meth:`SSLContext.set_ciphers`." -msgstr "" -"Internamente, la función crea un :class:`SSLContext` con un protocolo " -"*ssl_version* y :attr:`SSLContext.options` establecido a *cert_reqs*. Si los " -"parámetros *keyfile*, *certfile*, *ca_certs* o *ciphers* son establecidos, " -"entonces los valores son pasados a :meth:`SSLContext.load_cert_chain`, :meth:" -"`SSLContext.load_verify_locations`, y :meth:`SSLContext.set_ciphers`." - -#: ../Doc/library/ssl.rst:535 -msgid "" -"The arguments *server_side*, *do_handshake_on_connect*, and " -"*suppress_ragged_eofs* have the same meaning as :meth:`SSLContext." -"wrap_socket`." -msgstr "" -"Los argumentos *server_side*, *do_handshake_on_connect*, y " -"*supress_ragged_eofs* tienen el mismo significado que :meth:`SSLContext." -"wrap_socket`." - -#: ../Doc/library/ssl.rst:541 -msgid "" -"Since Python 3.2 and 2.7.9, it is recommended to use the :meth:`SSLContext." -"wrap_socket` instead of :func:`wrap_socket`. The top-level function is " -"limited and creates an insecure client socket without server name indication " -"or hostname matching." -msgstr "" -"Desde Python 3.2 y 2.7.9, se recomienda usar :meth:`SSLContext.wrap_socket` " -"en lugar de :func:`wrap_socket`. La función de alto nivel tiene limitaciones " -"y crea un socket cliente no seguro sin indicación de nombre de servidor ni " -"hostname matching." - -#: ../Doc/library/ssl.rst:547 +#: ../Doc/library/ssl.rst:453 msgid "Constants" msgstr "Constantes" -#: ../Doc/library/ssl.rst:549 +#: ../Doc/library/ssl.rst:455 msgid "" "All constants are now :class:`enum.IntEnum` or :class:`enum.IntFlag` " "collections." @@ -855,13 +707,13 @@ msgstr "" "Todas las constantes son ahora colecciones :class:`enum.IntEnum` o :class:" "`enum.IntFlag`." -#: ../Doc/library/ssl.rst:555 +#: ../Doc/library/ssl.rst:461 +#, fuzzy msgid "" -"Possible value for :attr:`SSLContext.verify_mode`, or the ``cert_reqs`` " -"parameter to :func:`wrap_socket`. Except for :const:`PROTOCOL_TLS_CLIENT`, " -"it is the default mode. With client-side sockets, just about any cert is " -"accepted. Validation errors, such as untrusted or expired cert, are ignored " -"and do not abort the TLS/SSL handshake." +"Possible value for :attr:`SSLContext.verify_mode`. Except for :const:" +"`PROTOCOL_TLS_CLIENT`, it is the default mode. With client-side sockets, " +"just about any cert is accepted. Validation errors, such as untrusted or " +"expired cert, are ignored and do not abort the TLS/SSL handshake." msgstr "" "Valor posible para :attr:`SSLContext.verify_mode`, o el parámetro " "``cert_reqs`` de :func:`wrap_socket`. A excepción de :const:" @@ -870,7 +722,7 @@ msgstr "" "certificado no confiable o caducado, son ignorados y no abortan el handshake " "TLS/SSL." -#: ../Doc/library/ssl.rst:561 +#: ../Doc/library/ssl.rst:467 msgid "" "In server mode, no certificate is requested from the client, so the client " "does not send any for client cert authentication." @@ -879,16 +731,16 @@ msgstr "" "el cliente no envía ninguno para la autenticación del certificado del " "cliente." -#: ../Doc/library/ssl.rst:564 ../Doc/library/ssl.rst:2340 +#: ../Doc/library/ssl.rst:470 ../Doc/library/ssl.rst:2245 msgid "See the discussion of :ref:`ssl-security` below." msgstr "Vea la discusión sobre :ref:`ssl-security` más abajo." -#: ../Doc/library/ssl.rst:568 +#: ../Doc/library/ssl.rst:474 +#, fuzzy msgid "" -"Possible value for :attr:`SSLContext.verify_mode`, or the ``cert_reqs`` " -"parameter to :func:`wrap_socket`. In client mode, :const:`CERT_OPTIONAL` " -"has the same meaning as :const:`CERT_REQUIRED`. It is recommended to use :" -"const:`CERT_REQUIRED` for client-side sockets instead." +"Possible value for :attr:`SSLContext.verify_mode`. In client mode, :const:" +"`CERT_OPTIONAL` has the same meaning as :const:`CERT_REQUIRED`. It is " +"recommended to use :const:`CERT_REQUIRED` for client-side sockets instead." msgstr "" "Valor posible para :attr:`SSLContext.verify_mode`, o el parámetro " "``cert_reqs`` de :func:`wrap_socket`. En modo cliente, :const:" @@ -896,7 +748,7 @@ msgstr "" "recomienda usar en su lugar :const:`CERT_REQUIRED` para sockets del lado del " "cliente." -#: ../Doc/library/ssl.rst:573 +#: ../Doc/library/ssl.rst:479 msgid "" "In server mode, a client certificate request is sent to the client. The " "client may either ignore the request or send a certificate in order perform " @@ -910,27 +762,27 @@ msgstr "" "por enviar un certificado, éste se verifica. Cualquier error de verificación " "aborta inmediatamente el handshake TLS." -#: ../Doc/library/ssl.rst:579 ../Doc/library/ssl.rst:599 +#: ../Doc/library/ssl.rst:485 ../Doc/library/ssl.rst:504 +#, fuzzy msgid "" -"Use of this setting requires a valid set of CA certificates to be passed, " -"either to :meth:`SSLContext.load_verify_locations` or as a value of the " -"``ca_certs`` parameter to :func:`wrap_socket`." +"Use of this setting requires a valid set of CA certificates to be passed to :" +"meth:`SSLContext.load_verify_locations`." msgstr "" "El uso de esta configuración requiere que se pase un conjunto válido de " "certificados de CA, ya sea a :meth:`SSLContext.load_verify_locations` o como " "valor del parámetro ``ca_certs`` de :func:`wrap_socket`." -#: ../Doc/library/ssl.rst:585 +#: ../Doc/library/ssl.rst:490 +#, fuzzy msgid "" -"Possible value for :attr:`SSLContext.verify_mode`, or the ``cert_reqs`` " -"parameter to :func:`wrap_socket`. In this mode, certificates are required " -"from the other side of the socket connection; an :class:`SSLError` will be " -"raised if no certificate is provided, or if its validation fails. This mode " -"is **not** sufficient to verify a certificate in client mode as it does not " -"match hostnames. :attr:`~SSLContext.check_hostname` must be enabled as well " -"to verify the authenticity of a cert. :const:`PROTOCOL_TLS_CLIENT` uses :" -"const:`CERT_REQUIRED` and enables :attr:`~SSLContext.check_hostname` by " -"default." +"Possible value for :attr:`SSLContext.verify_mode`. In this mode, " +"certificates are required from the other side of the socket connection; an :" +"class:`SSLError` will be raised if no certificate is provided, or if its " +"validation fails. This mode is **not** sufficient to verify a certificate in " +"client mode as it does not match hostnames. :attr:`~SSLContext." +"check_hostname` must be enabled as well to verify the authenticity of a " +"cert. :const:`PROTOCOL_TLS_CLIENT` uses :const:`CERT_REQUIRED` and enables :" +"attr:`~SSLContext.check_hostname` by default." msgstr "" "Valor posible para :attr:`SSLContext.verify_mode`, o el parámetro " "``cert_reqs`` de :func:`wrap_socket`. En este modo, se requieren " @@ -942,7 +794,7 @@ msgstr "" "de un certificado. :const:`PROTOCOL_TLS_CLIENT` utiliza :const:" "`CERT_REQUIRED` y activa :attr:`~SSLContext.check_hostname` por defecto." -#: ../Doc/library/ssl.rst:595 +#: ../Doc/library/ssl.rst:500 msgid "" "With server socket, this mode provides mandatory TLS client cert " "authentication. A client certificate request is sent to the client and the " @@ -953,11 +805,11 @@ msgstr "" "al cliente y el cliente debe proporcionar un certificado válido y de " "confianza." -#: ../Doc/library/ssl.rst:605 +#: ../Doc/library/ssl.rst:509 msgid ":class:`enum.IntEnum` collection of CERT_* constants." msgstr "Colección :class:`enum.IntEnum` de constantes CERT_*." -#: ../Doc/library/ssl.rst:611 +#: ../Doc/library/ssl.rst:515 msgid "" "Possible value for :attr:`SSLContext.verify_flags`. In this mode, " "certificate revocation lists (CRLs) are not checked. By default OpenSSL does " @@ -967,7 +819,7 @@ msgstr "" "de revocación de certificado (CRLs) no son verificadas. Por defecto OpenSSL " "no requiere ni verifica CRLs." -#: ../Doc/library/ssl.rst:619 +#: ../Doc/library/ssl.rst:523 msgid "" "Possible value for :attr:`SSLContext.verify_flags`. In this mode, only the " "peer cert is checked but none of the intermediate CA certificates. The mode " @@ -982,7 +834,7 @@ msgstr "" "CRL adecuada con :attr:`SSLContext.load_verify_locations`, la validación " "fallará." -#: ../Doc/library/ssl.rst:629 +#: ../Doc/library/ssl.rst:533 msgid "" "Possible value for :attr:`SSLContext.verify_flags`. In this mode, CRLs of " "all certificates in the peer cert chain are checked." @@ -991,7 +843,7 @@ msgstr "" "de todos los certificados en la cadena de certificado de pares son " "verificadas." -#: ../Doc/library/ssl.rst:636 +#: ../Doc/library/ssl.rst:540 msgid "" "Possible value for :attr:`SSLContext.verify_flags` to disable workarounds " "for broken X.509 certificates." @@ -999,7 +851,7 @@ msgstr "" "Valor posible para :attr:`SSLContext.verify_flags` para desactivar " "soluciones alternativas para certificados X.509 rotos." -#: ../Doc/library/ssl.rst:643 +#: ../Doc/library/ssl.rst:547 msgid "" "Possible value for :attr:`SSLContext.verify_flags` to enables proxy " "certificate verification." @@ -1007,7 +859,7 @@ msgstr "" "Valor posible para :attr:`SSLContext.verify_flags` para desactivar " "soluciones alternativas para certificados X.509 rotos." -#: ../Doc/library/ssl.rst:650 +#: ../Doc/library/ssl.rst:554 msgid "" "Possible value for :attr:`SSLContext.verify_flags`. It instructs OpenSSL to " "prefer trusted certificates when building the trust chain to validate a " @@ -1017,7 +869,7 @@ msgstr "" "preferir certificados de confianza al construir la cadena de confianza para " "validar un certificado. Esta opción está activada por defecto." -#: ../Doc/library/ssl.rst:658 +#: ../Doc/library/ssl.rst:562 msgid "" "Possible value for :attr:`SSLContext.verify_flags`. It instructs OpenSSL to " "accept intermediate CAs in the trust store to be treated as trust-anchors, " @@ -1031,11 +883,11 @@ msgstr "" "autofirmados. Esto hace posible confiar en los certificados emitidos por una " "CA intermedia sin tener que confiar en su CA raíz antecesora." -#: ../Doc/library/ssl.rst:669 +#: ../Doc/library/ssl.rst:573 msgid ":class:`enum.IntFlag` collection of VERIFY_* constants." msgstr "Colección :class:`enum.IntFlag` de constantes VERIFY_*." -#: ../Doc/library/ssl.rst:675 +#: ../Doc/library/ssl.rst:579 msgid "" "Selects the highest protocol version that both the client and server " "support. Despite the name, this option can select both \"SSL\" and \"TLS\" " @@ -1045,7 +897,7 @@ msgstr "" "como por el servidor. A pesar de su nombre, esta opción puede seleccionar " "ambos protocolos \"SSL\" y \"TLS\"." -#: ../Doc/library/ssl.rst:682 +#: ../Doc/library/ssl.rst:586 msgid "" "TLS clients and servers require different default settings for secure " "communication. The generic TLS protocol constant is deprecated in favor of :" @@ -1056,7 +908,7 @@ msgstr "" "genérico está en desuso en favor de :data:`PROTOCOL_TLS_CLIENT` y :data:" "`PROTOCOL_TLS_SERVER`." -#: ../Doc/library/ssl.rst:688 +#: ../Doc/library/ssl.rst:592 msgid "" "Auto-negotiate the highest protocol version that both the client and server " "support, and configure the context client-side connections. The protocol " @@ -1068,7 +920,7 @@ msgstr "" "de contexto. El protocolo habilita :data:`CERT_REQUIRED` y :attr:" "`~SSLContext.check_hostname` de forma predeterminada." -#: ../Doc/library/ssl.rst:697 +#: ../Doc/library/ssl.rst:601 msgid "" "Auto-negotiate the highest protocol version that both the client and server " "support, and configure the context server-side connections." @@ -1077,39 +929,19 @@ msgstr "" "como por el servidor. A pesar de su nombre, esta opción puede seleccionar " "ambos protocolos \"SSL\" y \"TLS\"." -#: ../Doc/library/ssl.rst:704 +#: ../Doc/library/ssl.rst:608 msgid "Alias for :data:`PROTOCOL_TLS`." msgstr "Alias para :data:`PROTOCOL_TLS`." -#: ../Doc/library/ssl.rst:708 +#: ../Doc/library/ssl.rst:612 msgid "Use :data:`PROTOCOL_TLS` instead." msgstr "Utilice en su lugar :data:`PROTOCOL_TLS`." -#: ../Doc/library/ssl.rst:712 -msgid "Selects SSL version 2 as the channel encryption protocol." -msgstr "Selecciona la versión 2 de SSL como protocolo de cifrado del canal." - -#: ../Doc/library/ssl.rst:714 -msgid "" -"This protocol is not available if OpenSSL is compiled with the ``no-ssl2`` " -"option." -msgstr "" -"Este protocolo no está disponible si se compila OpenSSL con la opción ``no-" -"ssl2``." - -#: ../Doc/library/ssl.rst:719 -msgid "SSL version 2 is insecure. Its use is highly discouraged." -msgstr "La versión 2 de SSL es insegura. Su uso es muy desaconsejado." - -#: ../Doc/library/ssl.rst:723 -msgid "OpenSSL has removed support for SSLv2." -msgstr "OpenSSL a eliminado el soporte para SSLv2." - -#: ../Doc/library/ssl.rst:727 +#: ../Doc/library/ssl.rst:616 msgid "Selects SSL version 3 as the channel encryption protocol." msgstr "Selecciona la versión 3 de SSL como protocolo de cifrado del canal." -#: ../Doc/library/ssl.rst:729 +#: ../Doc/library/ssl.rst:618 msgid "" "This protocol is not available if OpenSSL is compiled with the ``no-ssl3`` " "option." @@ -1117,11 +949,11 @@ msgstr "" "Este protocolo no está disponible si se compila OpenSSL con la opción ``no-" "ssl3``." -#: ../Doc/library/ssl.rst:734 +#: ../Doc/library/ssl.rst:623 msgid "SSL version 3 is insecure. Its use is highly discouraged." msgstr "La versión 3 de SSL es insegura. Su uso es muy desaconsejado." -#: ../Doc/library/ssl.rst:738 +#: ../Doc/library/ssl.rst:627 msgid "" "OpenSSL has deprecated all version specific protocols. Use the default " "protocol :data:`PROTOCOL_TLS_SERVER` or :data:`PROTOCOL_TLS_CLIENT` with :" @@ -1133,17 +965,17 @@ msgstr "" "`PROTOCOL_TLS_CLIENT` con :attr:`SSLContext.minimum_version` y :attr:" "`SSLContext.maximum_version` en su lugar." -#: ../Doc/library/ssl.rst:746 +#: ../Doc/library/ssl.rst:635 msgid "Selects TLS version 1.0 as the channel encryption protocol." msgstr "Selecciona la versión 1.0 de TLS como protocolo de cifrado del canal." -#: ../Doc/library/ssl.rst:750 ../Doc/library/ssl.rst:761 -#: ../Doc/library/ssl.rst:772 +#: ../Doc/library/ssl.rst:639 ../Doc/library/ssl.rst:650 +#: ../Doc/library/ssl.rst:661 msgid "OpenSSL has deprecated all version specific protocols." msgstr "" "OpenSSL ha descontinuado todos los protocolos específicos de la versión." -#: ../Doc/library/ssl.rst:754 +#: ../Doc/library/ssl.rst:643 msgid "" "Selects TLS version 1.1 as the channel encryption protocol. Available only " "with openssl version 1.0.1+." @@ -1151,7 +983,7 @@ msgstr "" "Selecciona la versión 1.1 de TLS como protocolo de cifrado del canal. " "Disponible sólo con openssl en versión 1.0.1+." -#: ../Doc/library/ssl.rst:765 +#: ../Doc/library/ssl.rst:654 msgid "" "Selects TLS version 1.2 as the channel encryption protocol. Available only " "with openssl version 1.0.1+." @@ -1159,7 +991,7 @@ msgstr "" "Selecciona la versión 1.1 de TLS como protocolo de cifrado del canal. " "Disponible sólo con openssl en versión 1.0.1+." -#: ../Doc/library/ssl.rst:776 +#: ../Doc/library/ssl.rst:665 msgid "" "Enables workarounds for various bugs present in other SSL implementations. " "This option is set by default. It does not necessarily set the same flags " @@ -1170,7 +1002,7 @@ msgstr "" "necesariamente activa las mismas opciones como la constante ``SSL_OP_ALL`` " "de OpenSSL." -#: ../Doc/library/ssl.rst:784 +#: ../Doc/library/ssl.rst:673 msgid "" "Prevents an SSLv2 connection. This option is only applicable in conjunction " "with :const:`PROTOCOL_TLS`. It prevents the peers from choosing SSLv2 as " @@ -1179,11 +1011,11 @@ msgstr "" "Evita una conexión SSLv2. Esta opción sólo es aplicable junto con :const:" "`PROTOCOL_TLS`. Evita que los pares elijan SSLv2 como versión del protocolo." -#: ../Doc/library/ssl.rst:792 +#: ../Doc/library/ssl.rst:681 msgid "SSLv2 is deprecated" msgstr "SSLv2 es obsoleto" -#: ../Doc/library/ssl.rst:796 +#: ../Doc/library/ssl.rst:685 msgid "" "Prevents an SSLv3 connection. This option is only applicable in conjunction " "with :const:`PROTOCOL_TLS`. It prevents the peers from choosing SSLv3 as " @@ -1192,11 +1024,11 @@ msgstr "" "Evita una conexión SSLv3. Esta opción sólo es aplicable junto con :const:" "`PROTOCOL_TLS`. Evita que los pares elijan SSLv3 como versión del protocolo." -#: ../Doc/library/ssl.rst:804 +#: ../Doc/library/ssl.rst:693 msgid "SSLv3 is deprecated" msgstr "SSLv3 es obsoleto" -#: ../Doc/library/ssl.rst:808 +#: ../Doc/library/ssl.rst:697 msgid "" "Prevents a TLSv1 connection. This option is only applicable in conjunction " "with :const:`PROTOCOL_TLS`. It prevents the peers from choosing TLSv1 as " @@ -1205,7 +1037,7 @@ msgstr "" "Evita una conexión TLSv1. Esta opción sólo es aplicable junto con :const:" "`PROTOCOL_TLS`. Evita que los pares elijan TLSv1 como versión del protocolo." -#: ../Doc/library/ssl.rst:814 +#: ../Doc/library/ssl.rst:703 msgid "" "The option is deprecated since OpenSSL 1.1.0, use the new :attr:`SSLContext." "minimum_version` and :attr:`SSLContext.maximum_version` instead." @@ -1213,7 +1045,7 @@ msgstr "" "Esta opción es obsoleta desde OpenSSL 1.1.0, utilice en su lugar los nuevos :" "attr:`SSLContext.minimum_version` y :attr:`SSLContext.maximum_version`." -#: ../Doc/library/ssl.rst:821 +#: ../Doc/library/ssl.rst:710 msgid "" "Prevents a TLSv1.1 connection. This option is only applicable in conjunction " "with :const:`PROTOCOL_TLS`. It prevents the peers from choosing TLSv1.1 as " @@ -1223,11 +1055,11 @@ msgstr "" "`PROTOCOL_TLS`. Evita que los pares elijan TLSv1.1 como versión del " "protocolo. Disponible sólo con openssl en versión 1.0.1+." -#: ../Doc/library/ssl.rst:827 ../Doc/library/ssl.rst:838 +#: ../Doc/library/ssl.rst:716 ../Doc/library/ssl.rst:727 msgid "The option is deprecated since OpenSSL 1.1.0." msgstr "Esta opción es obsoleta desde OpenSSL 1.1.0." -#: ../Doc/library/ssl.rst:832 +#: ../Doc/library/ssl.rst:721 msgid "" "Prevents a TLSv1.2 connection. This option is only applicable in conjunction " "with :const:`PROTOCOL_TLS`. It prevents the peers from choosing TLSv1.2 as " @@ -1237,7 +1069,7 @@ msgstr "" "`PROTOCOL_TLS`. Evita que los pares elijan TLSv1.2 como versión del " "protocolo. Disponible sólo con openssl en versión 1.0.1+." -#: ../Doc/library/ssl.rst:843 +#: ../Doc/library/ssl.rst:732 msgid "" "Prevents a TLSv1.3 connection. This option is only applicable in conjunction " "with :const:`PROTOCOL_TLS`. It prevents the peers from choosing TLSv1.3 as " @@ -1251,7 +1083,7 @@ msgstr "" "Python es compilado contra una versión mas antigua de OpenSSL, la opción " "vale *0* por defecto." -#: ../Doc/library/ssl.rst:851 +#: ../Doc/library/ssl.rst:740 msgid "" "The option is deprecated since OpenSSL 1.1.0. It was added to 2.7.15, 3.6.3 " "and 3.7.0 for backwards compatibility with OpenSSL 1.0.2." @@ -1259,7 +1091,7 @@ msgstr "" "Esta opción es obsoleta desde OpenSSL 1.1.0. Ha sido agregada a 2.7.15, " "3.6.3 y 3.7.0 por retro-compatibilidad con OpenSSL 1.0.2." -#: ../Doc/library/ssl.rst:857 +#: ../Doc/library/ssl.rst:746 msgid "" "Disable all renegotiation in TLSv1.2 and earlier. Do not send HelloRequest " "messages, and ignore renegotiation requests via ClientHello." @@ -1267,11 +1099,11 @@ msgstr "" "Desactiva toda re-negociación en TLSv1.2 y anteriores. No envía mensajes " "HelloRequest e ignora solicitudes de re-negociación vía ClientHello." -#: ../Doc/library/ssl.rst:860 +#: ../Doc/library/ssl.rst:749 msgid "This option is only available with OpenSSL 1.1.0h and later." msgstr "Esta opción sólo está disponible con OpenSSL 1.1.0h y posteriores." -#: ../Doc/library/ssl.rst:866 +#: ../Doc/library/ssl.rst:755 msgid "" "Use the server's cipher ordering preference, rather than the client's. This " "option has no effect on client sockets and SSLv2 server sockets." @@ -1280,7 +1112,7 @@ msgstr "" "del cliente. Esta opción no tiene efecto en los sockets del cliente ni en " "los sockets del servidor SSLv2." -#: ../Doc/library/ssl.rst:873 +#: ../Doc/library/ssl.rst:762 msgid "" "Prevents re-use of the same DH key for distinct SSL sessions. This improves " "forward secrecy but requires more computational resources. This option only " @@ -1290,7 +1122,7 @@ msgstr "" "Esto mejora el secreto hacia adelante pero requiere más recursos " "computacionales. Esta opción sólo se aplica a los sockets del servidor." -#: ../Doc/library/ssl.rst:881 +#: ../Doc/library/ssl.rst:770 msgid "" "Prevents re-use of the same ECDH key for distinct SSL sessions. This " "improves forward secrecy but requires more computational resources. This " @@ -1300,7 +1132,7 @@ msgstr "" "Esto mejora el secreto hacia adelante pero requiere más recursos " "computacionales. Esta opción sólo se aplica a los sockets del servidor." -#: ../Doc/library/ssl.rst:889 +#: ../Doc/library/ssl.rst:778 msgid "" "Send dummy Change Cipher Spec (CCS) messages in TLS 1.3 handshake to make a " "TLS 1.3 connection look more like a TLS 1.2 connection." @@ -1308,11 +1140,11 @@ msgstr "" "Enviar mensajes Change Cipher Spec (CCS) ficticios en el handshake de TLS " "1.3 para que una conexión TLS 1.3 se parezca más a una conexión TLS 1.2." -#: ../Doc/library/ssl.rst:892 +#: ../Doc/library/ssl.rst:781 msgid "This option is only available with OpenSSL 1.1.1 and later." msgstr "Esta opción sólo está disponible con OpenSSL 1.1.1 y posteriores." -#: ../Doc/library/ssl.rst:898 +#: ../Doc/library/ssl.rst:787 msgid "" "Disable compression on the SSL channel. This is useful if the application " "protocol supports its own compression scheme." @@ -1320,23 +1152,45 @@ msgstr "" "Desactivar la compresión en el canal SSL. Esto es útil si el protocolo de la " "aplicación soporta su propio esquema de compresión." -#: ../Doc/library/ssl.rst:905 +#: ../Doc/library/ssl.rst:794 msgid ":class:`enum.IntFlag` collection of OP_* constants." msgstr "Colección :class:`enum.IntFlag` de constantes OP_*." -#: ../Doc/library/ssl.rst:909 +#: ../Doc/library/ssl.rst:798 msgid "Prevent client side from requesting a session ticket." msgstr "Evita que el lado del cliente solicite un ticket de sesión." -#: ../Doc/library/ssl.rst:915 +#: ../Doc/library/ssl.rst:804 msgid "Ignore unexpected shutdown of TLS connections." msgstr "Ignore el cierre inesperado de las conexiones TLS." -#: ../Doc/library/ssl.rst:917 +#: ../Doc/library/ssl.rst:806 ../Doc/library/ssl.rst:822 msgid "This option is only available with OpenSSL 3.0.0 and later." msgstr "Esta opción sólo está disponible con OpenSSL 1.0.0 y posteriores." -#: ../Doc/library/ssl.rst:923 +#: ../Doc/library/ssl.rst:812 +msgid "" +"Enable the use of the kernel TLS. To benefit from the feature, OpenSSL must " +"have been compiled with support for it, and the negotiated cipher suites and " +"extensions must be supported by it (a list of supported ones may vary by " +"platform and kernel version)." +msgstr "" + +#: ../Doc/library/ssl.rst:817 +msgid "" +"Note that with enabled kernel TLS some cryptographic operations are " +"performed by the kernel directly and not via any available OpenSSL " +"Providers. This might be undesirable if, for example, the application " +"requires all cryptographic operations to be performed by the FIPS provider." +msgstr "" + +#: ../Doc/library/ssl.rst:828 +msgid "" +"Allow legacy insecure renegotiation between OpenSSL and unpatched servers " +"only." +msgstr "" + +#: ../Doc/library/ssl.rst:835 msgid "" "Whether the OpenSSL library has built-in support for the *Application-Layer " "Protocol Negotiation* TLS extension as described in :rfc:`7301`." @@ -1344,7 +1198,7 @@ msgstr "" "Si la biblioteca OpenSSL tiene soporte incorporado para la extensión TLS " "*Application-Layer Protocol Negotiation* como se describe en :rfc:`7301`." -#: ../Doc/library/ssl.rst:930 +#: ../Doc/library/ssl.rst:842 msgid "" "Whether the OpenSSL library has built-in support not checking subject common " "name and :attr:`SSLContext.hostname_checks_common_name` is writeable." @@ -1353,7 +1207,7 @@ msgstr "" "nombre común del sujeto y :attr:`SSLContext.hostname_checks_common_name` es " "modificable." -#: ../Doc/library/ssl.rst:938 +#: ../Doc/library/ssl.rst:850 msgid "" "Whether the OpenSSL library has built-in support for the Elliptic Curve-" "based Diffie-Hellman key exchange. This should be true unless the feature " @@ -1364,7 +1218,7 @@ msgstr "" "menos que la función haya sido desactivada explícitamente por el " "distribuidor." -#: ../Doc/library/ssl.rst:946 +#: ../Doc/library/ssl.rst:858 msgid "" "Whether the OpenSSL library has built-in support for the *Server Name " "Indication* extension (as defined in :rfc:`6066`)." @@ -1372,7 +1226,7 @@ msgstr "" "Si la biblioteca OpenSSL tiene soporte incorporado para la extensión *Server " "Name Indication* (como se define en :rfc:`6066`)." -#: ../Doc/library/ssl.rst:953 +#: ../Doc/library/ssl.rst:865 msgid "" "Whether the OpenSSL library has built-in support for the *Next Protocol " "Negotiation* as described in the `Application Layer Protocol Negotiation " @@ -1386,43 +1240,43 @@ msgstr "" "Cuando es verdadero, puede utilizar el método :meth:`SSLContext." "set_npn_protocols` para anunciar los protocolos que desea soportar." -#: ../Doc/library/ssl.rst:963 +#: ../Doc/library/ssl.rst:875 msgid "" "Whether the OpenSSL library has built-in support for the SSL 2.0 protocol." msgstr "" "Si la biblioteca OpenSSL tiene soporte incorporado para el protocolo SSL 2.0." -#: ../Doc/library/ssl.rst:969 +#: ../Doc/library/ssl.rst:881 msgid "" "Whether the OpenSSL library has built-in support for the SSL 3.0 protocol." msgstr "" "Si la biblioteca OpenSSL tiene soporte incorporado para el protocolo SSL 3.0." -#: ../Doc/library/ssl.rst:975 +#: ../Doc/library/ssl.rst:887 msgid "" "Whether the OpenSSL library has built-in support for the TLS 1.0 protocol." msgstr "" "Si la biblioteca OpenSSL tiene soporte incorporado para el protocolo TLS 1.0." -#: ../Doc/library/ssl.rst:981 +#: ../Doc/library/ssl.rst:893 msgid "" "Whether the OpenSSL library has built-in support for the TLS 1.1 protocol." msgstr "" "Si la biblioteca OpenSSL tiene soporte incorporado para el protocolo TLS 1.1." -#: ../Doc/library/ssl.rst:987 +#: ../Doc/library/ssl.rst:899 msgid "" "Whether the OpenSSL library has built-in support for the TLS 1.2 protocol." msgstr "" "Si la biblioteca OpenSSL tiene soporte incorporado para el protocolo TLS 1.2." -#: ../Doc/library/ssl.rst:993 +#: ../Doc/library/ssl.rst:905 msgid "" "Whether the OpenSSL library has built-in support for the TLS 1.3 protocol." msgstr "" "Si la biblioteca OpenSSL tiene soporte incorporado para el protocolo TLS 1.3." -#: ../Doc/library/ssl.rst:999 +#: ../Doc/library/ssl.rst:911 msgid "" "List of supported TLS channel binding types. Strings in this list can be " "used as arguments to :meth:`SSLSocket.get_channel_binding`." @@ -1431,12 +1285,12 @@ msgstr "" "en esta lista pueden ser usadas como argumentos para :meth:`SSLSocket." "get_channel_binding`." -#: ../Doc/library/ssl.rst:1006 +#: ../Doc/library/ssl.rst:918 msgid "The version string of the OpenSSL library loaded by the interpreter::" msgstr "" "La cadena de versión de la biblioteca OpenSSL cargada por el intérprete::" -#: ../Doc/library/ssl.rst:1015 +#: ../Doc/library/ssl.rst:927 msgid "" "A tuple of five integers representing version information about the OpenSSL " "library::" @@ -1444,13 +1298,13 @@ msgstr "" "Una tupla de cinco números enteros representando la información de versión " "de la biblioteca OpenSSL::" -#: ../Doc/library/ssl.rst:1025 +#: ../Doc/library/ssl.rst:937 msgid "The raw version number of the OpenSSL library, as a single integer::" msgstr "" "El número de versión en bruto de la biblioteca OpenSSL, como un único número " "entero::" -#: ../Doc/library/ssl.rst:1038 +#: ../Doc/library/ssl.rst:950 msgid "" "Alert Descriptions from :rfc:`5246` and others. The `IANA TLS Alert Registry " "`_ contiene esta lista y las referencias a las RFC donde se " "define su significado." -#: ../Doc/library/ssl.rst:1042 +#: ../Doc/library/ssl.rst:954 msgid "" "Used as the return value of the callback function in :meth:`SSLContext." "set_servername_callback`." @@ -1470,11 +1324,11 @@ msgstr "" "Se utiliza como valor de retorno de la función callback en :meth:`SSLContext." "set_servername_callback`." -#: ../Doc/library/ssl.rst:1049 +#: ../Doc/library/ssl.rst:961 msgid ":class:`enum.IntEnum` collection of ALERT_DESCRIPTION_* constants." msgstr "Colección :class:`enum.IntEnum` de constantes ALERT_DESCRIPTION_*." -#: ../Doc/library/ssl.rst:1055 +#: ../Doc/library/ssl.rst:967 msgid "" "Option for :func:`create_default_context` and :meth:`SSLContext." "load_default_certs`. This value indicates that the context may be used to " @@ -1486,7 +1340,7 @@ msgstr "" "autenticar servidores web (por lo tanto, se utilizará para crear sockets del " "lado del cliente)." -#: ../Doc/library/ssl.rst:1064 +#: ../Doc/library/ssl.rst:976 msgid "" "Option for :func:`create_default_context` and :meth:`SSLContext." "load_default_certs`. This value indicates that the context may be used to " @@ -1498,11 +1352,11 @@ msgstr "" "autenticar clientes web (por lo tanto, se utilizará para crear sockets del " "lado del servidor)." -#: ../Doc/library/ssl.rst:1073 +#: ../Doc/library/ssl.rst:985 msgid ":class:`enum.IntEnum` collection of SSL_ERROR_* constants." msgstr "Colección :class:`enum.IntEnum` de constantes SSL_ERROR_*." -#: ../Doc/library/ssl.rst:1079 +#: ../Doc/library/ssl.rst:991 msgid "" ":class:`enum.IntEnum` collection of SSL and TLS versions for :attr:" "`SSLContext.maximum_version` and :attr:`SSLContext.minimum_version`." @@ -1510,7 +1364,7 @@ msgstr "" "Colección :class:`enum.IntEnum` de versiones SSL y TLS para :attr:" "`SSLContext.maximum_version` y :attr:`SSLContext.minimum_version`." -#: ../Doc/library/ssl.rst:1087 +#: ../Doc/library/ssl.rst:999 msgid "" "The minimum or maximum supported SSL or TLS version. These are magic " "constants. Their values don't reflect the lowest and highest available TLS/" @@ -1520,11 +1374,11 @@ msgstr "" "mágicas. Sus valores no reflejan la mas baja o mas alta versión TLS/SSL " "disponible." -#: ../Doc/library/ssl.rst:1097 +#: ../Doc/library/ssl.rst:1009 msgid "SSL 3.0 to TLS 1.3." msgstr "SSL 3.0 a TLS 1.3." -#: ../Doc/library/ssl.rst:1101 +#: ../Doc/library/ssl.rst:1013 msgid "" "All :class:`TLSVersion` members except :attr:`TLSVersion.TLSv1_2` and :attr:" "`TLSVersion.TLSv1_3` are deprecated." @@ -1532,52 +1386,52 @@ msgstr "" "Todos los miembros de :class:`TLSVersion`, excepto :attr:`TLSVersion." "TLSv1_2` y :attr:`TLSVersion.TLSv1_3`, están en desuso." -#: ../Doc/library/ssl.rst:1106 +#: ../Doc/library/ssl.rst:1018 msgid "SSL Sockets" msgstr "Sockets SSL" -#: ../Doc/library/ssl.rst:1110 +#: ../Doc/library/ssl.rst:1022 msgid "SSL sockets provide the following methods of :ref:`socket-objects`:" msgstr "" "Los sockets SSL proporcionan los siguientes métodos de :ref:`socket-objects`:" -#: ../Doc/library/ssl.rst:1112 +#: ../Doc/library/ssl.rst:1024 msgid ":meth:`~socket.socket.accept()`" msgstr ":meth:`~socket.socket.accept()`" -#: ../Doc/library/ssl.rst:1113 +#: ../Doc/library/ssl.rst:1025 msgid ":meth:`~socket.socket.bind()`" msgstr ":meth:`~socket.socket.bind()`" -#: ../Doc/library/ssl.rst:1114 +#: ../Doc/library/ssl.rst:1026 msgid ":meth:`~socket.socket.close()`" msgstr ":meth:`~socket.socket.close()`" -#: ../Doc/library/ssl.rst:1115 +#: ../Doc/library/ssl.rst:1027 msgid ":meth:`~socket.socket.connect()`" msgstr ":meth:`~socket.socket.connect()`" -#: ../Doc/library/ssl.rst:1116 +#: ../Doc/library/ssl.rst:1028 msgid ":meth:`~socket.socket.detach()`" msgstr ":meth:`~socket.socket.detach()`" -#: ../Doc/library/ssl.rst:1117 +#: ../Doc/library/ssl.rst:1029 msgid ":meth:`~socket.socket.fileno()`" msgstr ":meth:`~socket.socket.fileno()`" -#: ../Doc/library/ssl.rst:1118 +#: ../Doc/library/ssl.rst:1030 msgid "" ":meth:`~socket.socket.getpeername()`, :meth:`~socket.socket.getsockname()`" msgstr "" ":meth:`~socket.socket.getpeername()`, :meth:`~socket.socket.getsockname()`" -#: ../Doc/library/ssl.rst:1119 +#: ../Doc/library/ssl.rst:1031 msgid "" ":meth:`~socket.socket.getsockopt()`, :meth:`~socket.socket.setsockopt()`" msgstr "" ":meth:`~socket.socket.getsockopt()`, :meth:`~socket.socket.setsockopt()`" -#: ../Doc/library/ssl.rst:1120 +#: ../Doc/library/ssl.rst:1032 msgid "" ":meth:`~socket.socket.gettimeout()`, :meth:`~socket.socket.settimeout()`, :" "meth:`~socket.socket.setblocking()`" @@ -1585,15 +1439,15 @@ msgstr "" ":meth:`~socket.socket.gettimeout()`, :meth:`~socket.socket.settimeout()`, :" "meth:`~socket.socket.setblocking()`" -#: ../Doc/library/ssl.rst:1122 +#: ../Doc/library/ssl.rst:1034 msgid ":meth:`~socket.socket.listen()`" msgstr ":meth:`~socket.socket.listen()`" -#: ../Doc/library/ssl.rst:1123 +#: ../Doc/library/ssl.rst:1035 msgid ":meth:`~socket.socket.makefile()`" msgstr ":meth:`~socket.socket.makefile()`" -#: ../Doc/library/ssl.rst:1124 +#: ../Doc/library/ssl.rst:1036 msgid "" ":meth:`~socket.socket.recv()`, :meth:`~socket.socket.recv_into()` (but " "passing a non-zero ``flags`` argument is not allowed)" @@ -1601,7 +1455,7 @@ msgstr "" ":meth:`~socket.socket.recv()`, :meth:`~socket.socket.recv_into()` (pero no " "se admite pasar un argumento ``flags`` diferente de cero)" -#: ../Doc/library/ssl.rst:1126 +#: ../Doc/library/ssl.rst:1038 msgid "" ":meth:`~socket.socket.send()`, :meth:`~socket.socket.sendall()` (with the " "same limitation)" @@ -1609,7 +1463,7 @@ msgstr "" ":meth:`~socket.socket.send()`, :meth:`~socket.socket.sendall()` (con la " "misma limitación)" -#: ../Doc/library/ssl.rst:1128 +#: ../Doc/library/ssl.rst:1040 msgid "" ":meth:`~socket.socket.sendfile()` (but :mod:`os.sendfile` will be used for " "plain-text sockets only, else :meth:`~socket.socket.send()` will be used)" @@ -1618,11 +1472,11 @@ msgstr "" "sólo para sockets de texto simple, sino :meth:`~socket.socket.send()` sera " "utilizado)" -#: ../Doc/library/ssl.rst:1130 +#: ../Doc/library/ssl.rst:1042 msgid ":meth:`~socket.socket.shutdown()`" msgstr ":meth:`~socket.socket.shutdown()`" -#: ../Doc/library/ssl.rst:1132 +#: ../Doc/library/ssl.rst:1044 msgid "" "However, since the SSL (and TLS) protocol has its own framing atop of TCP, " "the SSL sockets abstraction can, in certain respects, diverge from the " @@ -1635,7 +1489,7 @@ msgstr "" "especialmente las :ref:`notas sobre sockets no bloqueantes `." -#: ../Doc/library/ssl.rst:1137 +#: ../Doc/library/ssl.rst:1049 msgid "" "Instances of :class:`SSLSocket` must be created using the :meth:`SSLContext." "wrap_socket` method." @@ -1643,21 +1497,22 @@ msgstr "" "Instancias de :class:`SSLSocket` deben ser creadas usando el método :meth:" "`SSLContext.wrap_socket`." -#: ../Doc/library/ssl.rst:1140 +#: ../Doc/library/ssl.rst:1052 msgid "The :meth:`sendfile` method was added." msgstr "El método :meth:`sendfile` ha sido agregado." -#: ../Doc/library/ssl.rst:1143 +#: ../Doc/library/ssl.rst:1055 +#, fuzzy msgid "" "The :meth:`shutdown` does not reset the socket timeout each time bytes are " -"received or sent. The socket timeout is now to maximum total duration of the " -"shutdown." +"received or sent. The socket timeout is now the maximum total duration of " +"the shutdown." msgstr "" "El método :meth:`shutdown` no reinicia el tiempo de espera del socket cada " "vez que se reciben o envían bytes. El tiempo de espera del socket es ahora " "la máxima duración del cierre." -#: ../Doc/library/ssl.rst:1148 +#: ../Doc/library/ssl.rst:1060 msgid "" "It is deprecated to create a :class:`SSLSocket` instance directly, use :meth:" "`SSLContext.wrap_socket` to wrap a socket." @@ -1665,7 +1520,7 @@ msgstr "" "Crear una instancia de :class:`SSLSocket` directamente es obsoleto, utilice :" "meth:`SSLContext.wrap_socket` para envolver un socket." -#: ../Doc/library/ssl.rst:1152 +#: ../Doc/library/ssl.rst:1064 msgid "" ":class:`SSLSocket` instances must to created with :meth:`~SSLContext." "wrap_socket`. In earlier versions, it was possible to create instances " @@ -1675,7 +1530,7 @@ msgstr "" "wrap_socket`. En versiones anteriores, era posible crear instancias " "directamente. Esto nunca fue documentado ni soportado oficialmente." -#: ../Doc/library/ssl.rst:1158 +#: ../Doc/library/ssl.rst:1070 msgid "" "Python now uses ``SSL_read_ex`` and ``SSL_write_ex`` internally. The " "functions support reading and writing of data larger than 2 GB. Writing zero-" @@ -1686,13 +1541,13 @@ msgstr "" "escritura de datos de longitud cero ya no falla con un error de violación de " "protocolo." -#: ../Doc/library/ssl.rst:1163 +#: ../Doc/library/ssl.rst:1075 msgid "SSL sockets also have the following additional methods and attributes:" msgstr "" "Los sockets SSL tienen también los siguientes métodos y atributos " "adicionales:" -#: ../Doc/library/ssl.rst:1167 +#: ../Doc/library/ssl.rst:1079 msgid "" "Read up to *len* bytes of data from the SSL socket and return the result as " "a ``bytes`` instance. If *buffer* is specified, then read into the buffer " @@ -1702,7 +1557,7 @@ msgstr "" "una instancia ``bytes``. Si *buffer* es especificado, entonces se lee hacia " "el búfer en su lugar, y retorna el número de bytes leídos." -#: ../Doc/library/ssl.rst:1171 +#: ../Doc/library/ssl.rst:1083 msgid "" "Raise :exc:`SSLWantReadError` or :exc:`SSLWantWriteError` if the socket is :" "ref:`non-blocking ` and the read would block." @@ -1710,7 +1565,7 @@ msgstr "" "Lanza :exc:`SSLWantReadError` o :exc:`SSLWantWriteError` si el socket es :" "ref:`no-bloqueante ` y la lectura se bloquearía." -#: ../Doc/library/ssl.rst:1174 +#: ../Doc/library/ssl.rst:1086 msgid "" "As at any time a re-negotiation is possible, a call to :meth:`read` can also " "cause write operations." @@ -1718,21 +1573,22 @@ msgstr "" "Como en cualquier momento es posible una re-negociación, una llamada a :meth:" "`read` también puede provocar operaciones de escritura." -#: ../Doc/library/ssl.rst:1177 +#: ../Doc/library/ssl.rst:1089 +#, fuzzy msgid "" -"The socket timeout is no more reset each time bytes are received or sent. " -"The socket timeout is now to maximum total duration to read up to *len* " +"The socket timeout is no longer reset each time bytes are received or sent. " +"The socket timeout is now the maximum total duration to read up to *len* " "bytes." msgstr "" "El tiempo de espera del socket ya no se reinicia cada vez que se reciben o " "envían bytes. El tiempo de espera del socket es ahora la duración total " "máxima para leer hasta *len* bytes." -#: ../Doc/library/ssl.rst:1182 +#: ../Doc/library/ssl.rst:1094 msgid "Use :meth:`~SSLSocket.recv` instead of :meth:`~SSLSocket.read`." msgstr "Utilice :meth:`~SSLSocket.recv` en lugar de :meth:`~SSLSocket.read`." -#: ../Doc/library/ssl.rst:1187 +#: ../Doc/library/ssl.rst:1099 msgid "" "Write *buf* to the SSL socket and return the number of bytes written. The " "*buf* argument must be an object supporting the buffer interface." @@ -1740,7 +1596,7 @@ msgstr "" "Escribe *buf* en el socket SSL y retorna el número de bytes escritos. El " "argumento *buf* debe ser un objeto que soporte la interfaz búfer." -#: ../Doc/library/ssl.rst:1190 +#: ../Doc/library/ssl.rst:1102 msgid "" "Raise :exc:`SSLWantReadError` or :exc:`SSLWantWriteError` if the socket is :" "ref:`non-blocking ` and the write would block." @@ -1748,7 +1604,7 @@ msgstr "" "Lanza :exc:`SSLWantReadError` o :exc:`SSLWantWriteError` si el socket es :" "ref:`no-bloqueante ` y la escritura se bloquearía." -#: ../Doc/library/ssl.rst:1193 +#: ../Doc/library/ssl.rst:1105 msgid "" "As at any time a re-negotiation is possible, a call to :meth:`write` can " "also cause read operations." @@ -1756,20 +1612,21 @@ msgstr "" "Como en cualquier momento es posible una re-negociación, una llamada a :meth:" "`write` también puede provocar operaciones de lectura." -#: ../Doc/library/ssl.rst:1196 +#: ../Doc/library/ssl.rst:1108 +#, fuzzy msgid "" -"The socket timeout is no more reset each time bytes are received or sent. " -"The socket timeout is now to maximum total duration to write *buf*." +"The socket timeout is no longer reset each time bytes are received or sent. " +"The socket timeout is now the maximum total duration to write *buf*." msgstr "" "El tiempo de espera del socket ya no se reinicia cada vez que se reciben o " "envían bytes. El tiempo de espera del socket es ahora la duración total " "máxima para escribir *buf*." -#: ../Doc/library/ssl.rst:1200 +#: ../Doc/library/ssl.rst:1112 msgid "Use :meth:`~SSLSocket.send` instead of :meth:`~SSLSocket.write`." msgstr "Utilice :meth:`~SSLSocket.send` en lugar de :meth:`~SSLSocket.write`." -#: ../Doc/library/ssl.rst:1205 +#: ../Doc/library/ssl.rst:1117 msgid "" "The :meth:`~SSLSocket.read` and :meth:`~SSLSocket.write` methods are the low-" "level methods that read and write unencrypted, application-level data and " @@ -1783,7 +1640,7 @@ msgstr "" "métodos requieren una conexión SSL activa, es decir, que se haya completado " "el handshake y no se haya llamado a :meth:`SSLSocket.unwrap`." -#: ../Doc/library/ssl.rst:1211 +#: ../Doc/library/ssl.rst:1123 msgid "" "Normally you should use the socket API methods like :meth:`~socket.socket." "recv` and :meth:`~socket.socket.send` instead of these methods." @@ -1792,11 +1649,11 @@ msgstr "" "`~socket.socket.recv` y :meth:`~socket.socket.send` en lugar de estos " "métodos." -#: ../Doc/library/ssl.rst:1217 +#: ../Doc/library/ssl.rst:1129 msgid "Perform the SSL setup handshake." msgstr "Realiza el handshake de configuración SSL." -#: ../Doc/library/ssl.rst:1219 +#: ../Doc/library/ssl.rst:1131 msgid "" "The handshake method also performs :func:`match_hostname` when the :attr:" "`~SSLContext.check_hostname` attribute of the socket's :attr:`~SSLSocket." @@ -1806,28 +1663,30 @@ msgstr "" "atributo :attr:`~SSLContext.check_hostname` del :attr:`~SSLSocket.context` " "del socket es verdadero." -#: ../Doc/library/ssl.rst:1224 +#: ../Doc/library/ssl.rst:1136 +#, fuzzy msgid "" -"The socket timeout is no more reset each time bytes are received or sent. " -"The socket timeout is now to maximum total duration of the handshake." +"The socket timeout is no longer reset each time bytes are received or sent. " +"The socket timeout is now the maximum total duration of the handshake." msgstr "" "El tiempo de espera del socket ya no se reinicia cada vez que se reciben o " "envían bytes. El tiempo de espera del socket es ahora la duración total " "máxima del handshake." -#: ../Doc/library/ssl.rst:1228 +#: ../Doc/library/ssl.rst:1140 +#, fuzzy msgid "" "Hostname or IP address is matched by OpenSSL during handshake. The function :" "func:`match_hostname` is no longer used. In case OpenSSL refuses a hostname " "or IP address, the handshake is aborted early and a TLS alert message is " -"send to the peer." +"sent to the peer." msgstr "" "El hostname o la dirección IP son comparados por OpenSSL durante el " "handshake. La función :func:`match_hostname` ya no se utiliza. En caso de " "que OpenSSL rechace un hostname o dirección IP, el handshake se aborta antes " "de tiempo y se envía un mensaje de alerta TLS al peer." -#: ../Doc/library/ssl.rst:1236 +#: ../Doc/library/ssl.rst:1148 msgid "" "If there is no certificate for the peer on the other end of the connection, " "return ``None``. If the SSL handshake hasn't been done yet, raise :exc:" @@ -1837,7 +1696,7 @@ msgstr "" "retorna ``None``. Si el handshake SSL no se ha realizado todavía, lanza :exc:" "`ValueError`." -#: ../Doc/library/ssl.rst:1240 +#: ../Doc/library/ssl.rst:1152 msgid "" "If the ``binary_form`` parameter is :const:`False`, and a certificate was " "received from the peer, this method returns a :class:`dict` instance. If " @@ -1857,7 +1716,7 @@ msgstr "" "extensión *Subject Alternative Name* (véase :rfc:`3280`), también habrá una " "clave ``subjectAltName`` en el diccionario." -#: ../Doc/library/ssl.rst:1249 +#: ../Doc/library/ssl.rst:1161 msgid "" "The ``subject`` and ``issuer`` fields are tuples containing the sequence of " "relative distinguished names (RDNs) given in the certificate's data " @@ -1869,15 +1728,7 @@ msgstr "" "del certificado para los campos respectivos, y cada RDN es una secuencia de " "pares nombre-valor. Este es un ejemplo del mundo real::" -#: ../Doc/library/ssl.rst:1275 -msgid "" -"To validate a certificate for a particular service, you can use the :func:" -"`match_hostname` function." -msgstr "" -"Para validar un certificado para un servicio concreto, puede utilizar la " -"función :func:`match_hostname`." - -#: ../Doc/library/ssl.rst:1278 +#: ../Doc/library/ssl.rst:1185 msgid "" "If the ``binary_form`` parameter is :const:`True`, and a certificate was " "provided, this method returns the DER-encoded form of the entire certificate " @@ -1891,7 +1742,7 @@ msgstr "" "proporcionó un certificado. El hecho de que el par proporcione un " "certificado depende del rol del socket SSL:" -#: ../Doc/library/ssl.rst:1284 +#: ../Doc/library/ssl.rst:1191 msgid "" "for a client SSL socket, the server will always provide a certificate, " "regardless of whether validation was required;" @@ -1899,7 +1750,7 @@ msgstr "" "para un socket SSL cliente, el servidor siempre proporcionará un " "certificado, independientemente de si se requirió la validación;" -#: ../Doc/library/ssl.rst:1287 +#: ../Doc/library/ssl.rst:1194 msgid "" "for a server SSL socket, the client will only provide a certificate when " "requested by the server; therefore :meth:`getpeercert` will return :const:" @@ -1911,7 +1762,11 @@ msgstr "" "const:`None` si ha utilizado :const:`CERT_NONE` (en lugar de :const:" "`CERT_OPTIONAL` o :const:`CERT REQUIRED`)." -#: ../Doc/library/ssl.rst:1292 +#: ../Doc/library/ssl.rst:1199 +msgid "See also :attr:`SSLContext.check_hostname`." +msgstr "" + +#: ../Doc/library/ssl.rst:1201 msgid "" "The returned dictionary includes additional items such as ``issuer`` and " "``notBefore``." @@ -1919,7 +1774,7 @@ msgstr "" "El diccionario retornado incluye elementos adicionales tales como ``issuer`` " "y ``notBefore``." -#: ../Doc/library/ssl.rst:1296 +#: ../Doc/library/ssl.rst:1205 msgid "" ":exc:`ValueError` is raised when the handshake isn't done. The returned " "dictionary includes additional X509v3 extension items such as " @@ -1929,11 +1784,11 @@ msgstr "" "retornado incluye elementos de extensión X509v3 adicionales como " "``crlDistributionPoints``, ``caIssuers`` y ``OCSP`` URIs." -#: ../Doc/library/ssl.rst:1301 +#: ../Doc/library/ssl.rst:1210 msgid "IPv6 address strings no longer have a trailing new line." msgstr "Las cadenas de direcciones IPv6 ya no tienen una nueva línea al final." -#: ../Doc/library/ssl.rst:1306 +#: ../Doc/library/ssl.rst:1215 msgid "" "Returns a three-value tuple containing the name of the cipher being used, " "the version of the SSL protocol that defines its use, and the number of " @@ -1945,9 +1800,10 @@ msgstr "" "de bits secretos que se están utilizando. Si no se ha establecido ninguna " "conexión, retorna ``None``." -#: ../Doc/library/ssl.rst:1312 +#: ../Doc/library/ssl.rst:1221 +#, fuzzy msgid "" -"Return the list of ciphers shared by the client during the handshake. Each " +"Return the list of ciphers available in both the client and server. Each " "entry of the returned list is a three-value tuple containing the name of the " "cipher, the version of the SSL protocol that defines its use, and the number " "of secret bits the cipher uses. :meth:`~SSLSocket.shared_ciphers` returns " @@ -1961,7 +1817,7 @@ msgstr "" "`~SSLSocket.shared_ciphers`` retorna ``None`` si no se ha establecido " "ninguna conexión o el socket es un socket cliente." -#: ../Doc/library/ssl.rst:1323 +#: ../Doc/library/ssl.rst:1232 msgid "" "Return the compression algorithm being used as a string, or ``None`` if the " "connection isn't compressed." @@ -1969,7 +1825,7 @@ msgstr "" "Retorna el algoritmo de compresión utilizado como una cadena de caracteres, " "o ``None`` si la conexión no está comprimida." -#: ../Doc/library/ssl.rst:1326 +#: ../Doc/library/ssl.rst:1235 msgid "" "If the higher-level protocol supports its own compression mechanism, you can " "use :data:`OP_NO_COMPRESSION` to disable SSL-level compression." @@ -1978,7 +1834,7 @@ msgstr "" "puede utilizar :data:`OP_NO_COMPRESSION` para desactivar la compresión a " "nivel de SSL." -#: ../Doc/library/ssl.rst:1333 +#: ../Doc/library/ssl.rst:1242 msgid "" "Get channel binding data for current connection, as a bytes object. Returns " "``None`` if not connected or the handshake has not been completed." @@ -1987,7 +1843,7 @@ msgstr "" "objeto bytes. Retorna ``None`` si no está conectado o no se ha completado el " "handshake." -#: ../Doc/library/ssl.rst:1336 +#: ../Doc/library/ssl.rst:1245 msgid "" "The *cb_type* parameter allow selection of the desired channel binding type. " "Valid channel binding types are listed in the :data:`CHANNEL_BINDING_TYPES` " @@ -2001,7 +1857,7 @@ msgstr "" "'tls-unique', definida por :rfc:`5929`. :exc:`ValueError` se lanzará si se " "solicita un tipo de vinculación de canal no admitido." -#: ../Doc/library/ssl.rst:1346 +#: ../Doc/library/ssl.rst:1255 msgid "" "Return the protocol that was selected during the TLS handshake. If :meth:" "`SSLContext.set_alpn_protocols` was not called, if the other party does not " @@ -2014,7 +1870,7 @@ msgstr "" "por el cliente, o si el handshake no ha ocurrido todavía, se retorna " "``None``." -#: ../Doc/library/ssl.rst:1356 +#: ../Doc/library/ssl.rst:1265 msgid "" "Return the higher-level protocol that was selected during the TLS/SSL " "handshake. If :meth:`SSLContext.set_npn_protocols` was not called, or if the " @@ -2026,11 +1882,11 @@ msgstr "" "si la otra parte no soporta NPN, o si el handshake aún no ha ocurrido, esto " "devolverá ``None``." -#: ../Doc/library/ssl.rst:1365 ../Doc/library/ssl.rst:1725 +#: ../Doc/library/ssl.rst:1274 ../Doc/library/ssl.rst:1630 msgid "NPN has been superseded by ALPN" msgstr "NPN ha sido reemplazada por ALPN" -#: ../Doc/library/ssl.rst:1369 +#: ../Doc/library/ssl.rst:1278 msgid "" "Performs the SSL shutdown handshake, which removes the TLS layer from the " "underlying socket, and returns the underlying socket object. This can be " @@ -2044,7 +1900,7 @@ msgstr "" "encriptar. El socket retornado debe utilizarse siempre para la comunicación " "posterior con el otro lado de la conexión, en lugar del socket original." -#: ../Doc/library/ssl.rst:1377 +#: ../Doc/library/ssl.rst:1286 msgid "" "Requests post-handshake authentication (PHA) from a TLS 1.3 client. PHA can " "only be initiated for a TLS 1.3 connection from a server-side socket, after " @@ -2056,7 +1912,7 @@ msgstr "" "servidor, después del handshake TLS inicial y con PHA habilitado en ambos " "lados, ver :attr:`SSLContext.post_handshake_auth`." -#: ../Doc/library/ssl.rst:1382 +#: ../Doc/library/ssl.rst:1291 msgid "" "The method does not perform a cert exchange immediately. The server-side " "sends a CertificateRequest during the next write event and expects the " @@ -2067,7 +1923,7 @@ msgstr "" "escritura y espera que el cliente responda con un certificado en el " "siguiente evento de lectura." -#: ../Doc/library/ssl.rst:1386 +#: ../Doc/library/ssl.rst:1295 msgid "" "If any precondition isn't met (e.g. not TLS 1.3, PHA not enabled), an :exc:" "`SSLError` is raised." @@ -2075,7 +1931,7 @@ msgstr "" "Si alguna precondición no se cumple (por ejemplo, no es TLS 1.3, PHA no está " "habilitado), se genera un :exc:`SSLError`." -#: ../Doc/library/ssl.rst:1390 +#: ../Doc/library/ssl.rst:1299 msgid "" "Only available with OpenSSL 1.1.1 and TLS 1.3 enabled. Without TLS 1.3 " "support, the method raises :exc:`NotImplementedError`." @@ -2083,7 +1939,7 @@ msgstr "" "Sólo está disponible con OpenSSL 1.1.1 y TLS 1.3 habilitados. Sin el soporte " "de TLS 1.3, el método lanza :exc:`NotImplementedError`." -#: ../Doc/library/ssl.rst:1397 +#: ../Doc/library/ssl.rst:1306 msgid "" "Return the actual SSL protocol version negotiated by the connection as a " "string, or ``None`` if no secure connection is established. As of this " @@ -2097,7 +1953,7 @@ msgstr "" "``\"SSLv3\"``, ``\"TLSv1\"``, ``\"TLSv1.1\"`` y ``\"TLSv1.2\"``. Las " "versiones recientes de OpenSSL pueden definir más valores de retorno." -#: ../Doc/library/ssl.rst:1407 +#: ../Doc/library/ssl.rst:1316 msgid "" "Returns the number of already decrypted bytes available for read, pending on " "the connection." @@ -2105,19 +1961,11 @@ msgstr "" "Retorna el número de bytes ya descifrados disponibles para leer, pendientes " "de la conexión." -#: ../Doc/library/ssl.rst:1412 -msgid "" -"The :class:`SSLContext` object this SSL socket is tied to. If the SSL " -"socket was created using the deprecated :func:`wrap_socket` function (rather " -"than :meth:`SSLContext.wrap_socket`), this is a custom context object " -"created for this SSL socket." +#: ../Doc/library/ssl.rst:1321 +msgid "The :class:`SSLContext` object this SSL socket is tied to." msgstr "" -"El objeto :class:`SSLContext` al que está vinculado este socket SSL. Si el " -"socket SSL fue creado usando la función obsoleta :func:`wrap_socket` (en " -"lugar de :meth:`SSLContext.wrap_socket`), este es un objeto de contexto " -"personalizado creado para este socket SSL." -#: ../Doc/library/ssl.rst:1421 +#: ../Doc/library/ssl.rst:1327 msgid "" "A boolean which is ``True`` for server-side sockets and ``False`` for client-" "side sockets." @@ -2125,7 +1973,7 @@ msgstr "" "Un booleano que es ``True`` para los sockets del lado del servidor y " "``False`` para los sockets del lado del cliente." -#: ../Doc/library/ssl.rst:1428 +#: ../Doc/library/ssl.rst:1334 msgid "" "Hostname of the server: :class:`str` type, or ``None`` for server-side " "socket or if the hostname was not specified in the constructor." @@ -2133,7 +1981,7 @@ msgstr "" "Hostname del servidor: tipo :class:`str`, o ``None`` para el socket del lado " "del servidor o si el hostname no fue especificado en el constructor." -#: ../Doc/library/ssl.rst:1433 +#: ../Doc/library/ssl.rst:1339 msgid "" "The attribute is now always ASCII text. When ``server_hostname`` is an " "internationalized domain name (IDN), this attribute now stores the A-label " @@ -2145,7 +1993,7 @@ msgstr "" "forma de etiqueta A (``\"xn--pythn-mua.org\"``), en lugar de la forma de " "etiqueta U (``\"pythön.org\"``)." -#: ../Doc/library/ssl.rst:1441 +#: ../Doc/library/ssl.rst:1347 msgid "" "The :class:`SSLSession` for this SSL connection. The session is available " "for client and server side sockets after the TLS handshake has been " @@ -2158,11 +2006,11 @@ msgstr "" "establecida antes de que :meth:`~SSLSocket.do_handshake` haya sido llamado " "para reutilizar una sesión." -#: ../Doc/library/ssl.rst:1454 +#: ../Doc/library/ssl.rst:1360 msgid "SSL Contexts" msgstr "Contextos SSL" -#: ../Doc/library/ssl.rst:1458 +#: ../Doc/library/ssl.rst:1364 msgid "" "An SSL context holds various data longer-lived than single SSL connections, " "such as SSL configuration options, certificate(s) and private key(s). It " @@ -2174,7 +2022,7 @@ msgstr "" "privada(s). También gestiona un cache de sesiones SSL para sockets del lado " "del servidor, para acelerar conexiones repetidas de los mismos clientes." -#: ../Doc/library/ssl.rst:1465 +#: ../Doc/library/ssl.rst:1371 msgid "" "Create a new SSL context. You may pass *protocol* which must be one of the " "``PROTOCOL_*`` constants defined in this module. The parameter specifies " @@ -2192,7 +2040,7 @@ msgstr "" "demás. Si no se especifica, el valor por defecto es :data:`PROTOCOL_TLS`; " "proporciona la mayor compatibilidad con otras versiones." -#: ../Doc/library/ssl.rst:1474 +#: ../Doc/library/ssl.rst:1380 msgid "" "Here's a table showing which versions in a client (down the side) can " "connect to which versions in a server (along the top):" @@ -2201,93 +2049,93 @@ msgstr "" "inferior) pueden conectarse a qué versiones de un servidor (en la parte " "superior):" -#: ../Doc/library/ssl.rst:1480 +#: ../Doc/library/ssl.rst:1386 msgid "*client* / **server**" msgstr "*cliente* / **servidor**" -#: ../Doc/library/ssl.rst:1480 +#: ../Doc/library/ssl.rst:1386 msgid "**SSLv2**" msgstr "**SSLv2**" -#: ../Doc/library/ssl.rst:1480 +#: ../Doc/library/ssl.rst:1386 msgid "**SSLv3**" msgstr "**SSLv3**" -#: ../Doc/library/ssl.rst:1480 +#: ../Doc/library/ssl.rst:1386 msgid "**TLS** [3]_" msgstr "**TLS** [3]_" -#: ../Doc/library/ssl.rst:1480 +#: ../Doc/library/ssl.rst:1386 msgid "**TLSv1**" msgstr "**TLSv1**" -#: ../Doc/library/ssl.rst:1480 +#: ../Doc/library/ssl.rst:1386 msgid "**TLSv1.1**" msgstr "**TLSv1.1**" -#: ../Doc/library/ssl.rst:1480 +#: ../Doc/library/ssl.rst:1386 msgid "**TLSv1.2**" msgstr "**TLSv1.2**" -#: ../Doc/library/ssl.rst:1482 +#: ../Doc/library/ssl.rst:1388 msgid "*SSLv2*" msgstr "*SSLv2*" -#: ../Doc/library/ssl.rst:1482 ../Doc/library/ssl.rst:1483 -#: ../Doc/library/ssl.rst:1484 ../Doc/library/ssl.rst:1485 -#: ../Doc/library/ssl.rst:1486 ../Doc/library/ssl.rst:1487 +#: ../Doc/library/ssl.rst:1388 ../Doc/library/ssl.rst:1389 +#: ../Doc/library/ssl.rst:1390 ../Doc/library/ssl.rst:1391 +#: ../Doc/library/ssl.rst:1392 ../Doc/library/ssl.rst:1393 msgid "yes" msgstr "si" -#: ../Doc/library/ssl.rst:1482 ../Doc/library/ssl.rst:1483 -#: ../Doc/library/ssl.rst:1485 ../Doc/library/ssl.rst:1486 -#: ../Doc/library/ssl.rst:1487 +#: ../Doc/library/ssl.rst:1388 ../Doc/library/ssl.rst:1389 +#: ../Doc/library/ssl.rst:1391 ../Doc/library/ssl.rst:1392 +#: ../Doc/library/ssl.rst:1393 msgid "no" msgstr "no" -#: ../Doc/library/ssl.rst:1482 ../Doc/library/ssl.rst:1484 +#: ../Doc/library/ssl.rst:1388 ../Doc/library/ssl.rst:1390 msgid "no [1]_" msgstr "no [1]_" -#: ../Doc/library/ssl.rst:1483 +#: ../Doc/library/ssl.rst:1389 msgid "*SSLv3*" msgstr "*SSLv3*" -#: ../Doc/library/ssl.rst:1483 ../Doc/library/ssl.rst:1484 +#: ../Doc/library/ssl.rst:1389 ../Doc/library/ssl.rst:1390 msgid "no [2]_" msgstr "no [2]_" -#: ../Doc/library/ssl.rst:1484 +#: ../Doc/library/ssl.rst:1390 msgid "*TLS* (*SSLv23*) [3]_" msgstr "*TLS* (*SSLv23*) [3]_" -#: ../Doc/library/ssl.rst:1485 +#: ../Doc/library/ssl.rst:1391 msgid "*TLSv1*" msgstr "*TLSv1*" -#: ../Doc/library/ssl.rst:1486 +#: ../Doc/library/ssl.rst:1392 msgid "*TLSv1.1*" msgstr "*TLSv1.1*" -#: ../Doc/library/ssl.rst:1487 +#: ../Doc/library/ssl.rst:1393 msgid "*TLSv1.2*" msgstr "*TLSv1.2*" -#: ../Doc/library/ssl.rst:1490 +#: ../Doc/library/ssl.rst:1396 msgid "Footnotes" msgstr "Notas a pie de página" -#: ../Doc/library/ssl.rst:1491 +#: ../Doc/library/ssl.rst:1397 msgid ":class:`SSLContext` disables SSLv2 with :data:`OP_NO_SSLv2` by default." msgstr "" ":class:`SSLContext` desactiva SSLv2 con :data:`OP_NO_SSLv2` por defecto." -#: ../Doc/library/ssl.rst:1492 +#: ../Doc/library/ssl.rst:1398 msgid ":class:`SSLContext` disables SSLv3 with :data:`OP_NO_SSLv3` by default." msgstr "" ":class:`SSLContext` desactiva SSLv3 con :data:`OP_NO_SSLv3` por defecto." -#: ../Doc/library/ssl.rst:1493 +#: ../Doc/library/ssl.rst:1399 msgid "" "TLS 1.3 protocol will be available with :data:`PROTOCOL_TLS` in OpenSSL >= " "1.1.1. There is no dedicated PROTOCOL constant for just TLS 1.3." @@ -2295,7 +2143,7 @@ msgstr "" "El protocolo TLS 1.3 estará disponible con :data:`PROTOCOL_TLS` en OpenSSL " ">= 1.1.1. No existe una constante PROTOCOL dedicada sólo a TLS 1.3." -#: ../Doc/library/ssl.rst:1498 +#: ../Doc/library/ssl.rst:1404 msgid "" ":func:`create_default_context` lets the :mod:`ssl` module choose security " "settings for a given purpose." @@ -2303,15 +2151,15 @@ msgstr "" ":func:`create_default_context` permite al módulo :mod:`ssl` elegir la " "configuración de seguridad para un propósito determinado." -#: ../Doc/library/ssl.rst:1503 +#: ../Doc/library/ssl.rst:1409 +#, fuzzy msgid "" "The context is created with secure default values. The options :data:" "`OP_NO_COMPRESSION`, :data:`OP_CIPHER_SERVER_PREFERENCE`, :data:" -"`OP_SINGLE_DH_USE`, :data:`OP_SINGLE_ECDH_USE`, :data:`OP_NO_SSLv2` (except " -"for :data:`PROTOCOL_SSLv2`), and :data:`OP_NO_SSLv3` (except for :data:" -"`PROTOCOL_SSLv3`) are set by default. The initial cipher suite list contains " -"only ``HIGH`` ciphers, no ``NULL`` ciphers and no ``MD5`` ciphers (except " -"for :data:`PROTOCOL_SSLv2`)." +"`OP_SINGLE_DH_USE`, :data:`OP_SINGLE_ECDH_USE`, :data:`OP_NO_SSLv2`, and :" +"data:`OP_NO_SSLv3` (except for :data:`PROTOCOL_SSLv3`) are set by default. " +"The initial cipher suite list contains only ``HIGH`` ciphers, no ``NULL`` " +"ciphers and no ``MD5`` ciphers." msgstr "" "El contexto se crea con valores seguros por defecto. Las opciones :data:" "`OP_NO_COMPRESSION`, :data:`OP_CIPHER_SERVER_PREFERENCE`, :data:" @@ -2321,7 +2169,7 @@ msgstr "" "conjuntos de cifrado sólo contiene cifrados ``HIGH``, ningún cifrado " "``NULL`` y ningún cifrado ``MD5`` (excepto para :data:`PROTOCOL_SSLv2`)." -#: ../Doc/library/ssl.rst:1514 +#: ../Doc/library/ssl.rst:1419 msgid "" ":class:`SSLContext` without protocol argument is deprecated. The context " "class will either require :data:`PROTOCOL_TLS_CLIENT` or :data:" @@ -2331,7 +2179,7 @@ msgstr "" "contexto requerirá el protocolo :data:`PROTOCOL_TLS_CLIENT` o :data:" "`PROTOCOL_TLS_SERVER` en el futuro." -#: ../Doc/library/ssl.rst:1520 +#: ../Doc/library/ssl.rst:1425 msgid "" "The default cipher suites now include only secure AES and ChaCha20 ciphers " "with forward secrecy and security level 2. RSA and DH keys with less than " @@ -2345,12 +2193,12 @@ msgstr "" "menos de 224 bits. :data:`PROTOCOL_TLS`, :data:`PROTOCOL_TLS_CLIENT` y :data:" "`PROTOCOL_TLS_SERVER` usan TLS 1.2 como versión mínima de TLS." -#: ../Doc/library/ssl.rst:1527 +#: ../Doc/library/ssl.rst:1432 msgid ":class:`SSLContext` objects have the following methods and attributes:" msgstr "" "Los objetos :class:`SSLContext` tienen los siguientes métodos y atributos:" -#: ../Doc/library/ssl.rst:1531 +#: ../Doc/library/ssl.rst:1436 msgid "" "Get statistics about quantities of loaded X.509 certificates, count of X.509 " "certificates flagged as CA certificates and certificate revocation lists as " @@ -2360,11 +2208,11 @@ msgstr "" "cantidad de certificados X.509 marcados como certificados CA y las listas de " "revocación de certificados como diccionario." -#: ../Doc/library/ssl.rst:1535 +#: ../Doc/library/ssl.rst:1440 msgid "Example for a context with one CA cert and one other cert::" msgstr "Ejemplo para un contexto con un certificado CA y otro certificado::" -#: ../Doc/library/ssl.rst:1545 +#: ../Doc/library/ssl.rst:1450 msgid "" "Load a private key and the corresponding certificate. The *certfile* string " "must be the path to a single file in PEM format containing the certificate " @@ -2383,7 +2231,7 @@ msgstr "" "discusión de :ref:`ssl-certificates` para obtener más información sobre cómo " "se almacena el certificado en *certfile*." -#: ../Doc/library/ssl.rst:1554 +#: ../Doc/library/ssl.rst:1459 msgid "" "The *password* argument may be a function to call to get the password for " "decrypting the private key. It will only be called if the private key is " @@ -2404,7 +2252,7 @@ msgstr "" "como argumento *password*. Se ignorará si la clave privada no está cifrada y " "no se necesita una contraseña." -#: ../Doc/library/ssl.rst:1563 +#: ../Doc/library/ssl.rst:1468 msgid "" "If the *password* argument is not specified and a password is required, " "OpenSSL's built-in password prompting mechanism will be used to " @@ -2414,7 +2262,7 @@ msgstr "" "el mecanismo de solicitud de contraseña incorporado de OpenSSL se usará para " "solicitarle una contraseña al usuario de forma interactiva." -#: ../Doc/library/ssl.rst:1567 +#: ../Doc/library/ssl.rst:1472 msgid "" "An :class:`SSLError` is raised if the private key doesn't match with the " "certificate." @@ -2422,11 +2270,11 @@ msgstr "" "Un :class:`SSLError` es lanzado si la clave privada no coincide con el " "certificado." -#: ../Doc/library/ssl.rst:1570 +#: ../Doc/library/ssl.rst:1475 msgid "New optional argument *password*." msgstr "Nuevo argumento opcional *password*." -#: ../Doc/library/ssl.rst:1575 +#: ../Doc/library/ssl.rst:1480 msgid "" "Load a set of default \"certification authority\" (CA) certificates from " "default locations. On Windows it loads CA certs from the ``CA`` and ``ROOT`` " @@ -2441,12 +2289,13 @@ msgstr "" "futuro, el método también puede cargar certificados de CA desde otras " "ubicaciones." -#: ../Doc/library/ssl.rst:1581 +#: ../Doc/library/ssl.rst:1486 +#, fuzzy msgid "" "The *purpose* flag specifies what kind of CA certificates are loaded. The " -"default settings :data:`Purpose.SERVER_AUTH` loads certificates, that are " +"default settings :const:`Purpose.SERVER_AUTH` loads certificates, that are " "flagged and trusted for TLS web server authentication (client side " -"sockets). :data:`Purpose.CLIENT_AUTH` loads CA certificates for client " +"sockets). :const:`Purpose.CLIENT_AUTH` loads CA certificates for client " "certificate verification on the server side." msgstr "" "La opción *purpose* especifica qué tipo de certificados CA se cargan. La " @@ -2456,7 +2305,7 @@ msgstr "" "certificados CA para la verificación de certificados de cliente en el lado " "del servidor." -#: ../Doc/library/ssl.rst:1591 +#: ../Doc/library/ssl.rst:1496 msgid "" "Load a set of \"certification authority\" (CA) certificates used to validate " "other peers' certificates when :data:`verify_mode` is other than :data:" @@ -2467,7 +2316,7 @@ msgstr "" "es distinto de :data:`CERT_NONE`. Debe especificarse al menos uno de " "*cafile* o *capath*." -#: ../Doc/library/ssl.rst:1595 +#: ../Doc/library/ssl.rst:1500 msgid "" "This method can also load certification revocation lists (CRLs) in PEM or " "DER format. In order to make use of CRLs, :attr:`SSLContext.verify_flags` " @@ -2477,7 +2326,7 @@ msgstr "" "en formato PEM o DER. Para poder usar CRLs, :attr:`SSLContext.verify_flags` " "debe ser configurado correctamente." -#: ../Doc/library/ssl.rst:1599 +#: ../Doc/library/ssl.rst:1504 msgid "" "The *cafile* string, if present, is the path to a file of concatenated CA " "certificates in PEM format. See the discussion of :ref:`ssl-certificates` " @@ -2488,7 +2337,7 @@ msgstr "" "`ssl-certificates` para más información acerca de como organizar los " "certificados en este archivo." -#: ../Doc/library/ssl.rst:1604 +#: ../Doc/library/ssl.rst:1509 msgid "" "The *capath* string, if present, is the path to a directory containing " "several CA certificates in PEM format, following an `OpenSSL specific layout " @@ -2500,7 +2349,7 @@ msgstr "" "`disposición específica de OpenSSL `_." -#: ../Doc/library/ssl.rst:1609 +#: ../Doc/library/ssl.rst:1514 msgid "" "The *cadata* object, if present, is either an ASCII string of one or more " "PEM-encoded certificates or a :term:`bytes-like object` of DER-encoded " @@ -2513,11 +2362,11 @@ msgstr "" "adicionales alrededor de los certificados codificados en PEM se ignoran, " "pero debe haber al menos un certificado." -#: ../Doc/library/ssl.rst:1614 +#: ../Doc/library/ssl.rst:1519 msgid "New optional argument *cadata*" msgstr "Nuevo argumento opcional *cadata*" -#: ../Doc/library/ssl.rst:1619 +#: ../Doc/library/ssl.rst:1524 msgid "" "Get a list of loaded \"certification authority\" (CA) certificates. If the " "``binary_form`` parameter is :const:`False` each list entry is a dict like " @@ -2533,7 +2382,7 @@ msgstr "" "con DER. La lista retornada no contiene certificados de *capath* a menos que " "un certificado haya sido solicitado y cargado por una conexión SSL." -#: ../Doc/library/ssl.rst:1627 +#: ../Doc/library/ssl.rst:1532 msgid "" "Certificates in a capath directory aren't loaded unless they have been used " "at least once." @@ -2541,7 +2390,7 @@ msgstr "" "Los certificados de un directorio capath no se cargan a menos que se hayan " "utilizado al menos una vez." -#: ../Doc/library/ssl.rst:1634 +#: ../Doc/library/ssl.rst:1539 msgid "" "Get a list of enabled ciphers. The list is in order of cipher priority. See :" "meth:`SSLContext.set_ciphers`." @@ -2549,7 +2398,7 @@ msgstr "" "Obtiene una lista de cifrados habilitados. La lista está en orden de " "prioridad de cifrado. Véase :meth:`SSLContext.set_ciphers`." -#: ../Doc/library/ssl.rst:1671 +#: ../Doc/library/ssl.rst:1576 msgid "" "Load a set of default \"certification authority\" (CA) certificates from a " "filesystem path defined when building the OpenSSL library. Unfortunately, " @@ -2565,7 +2414,7 @@ msgstr "" "certificados. Sin embargo, cuando la biblioteca OpenSSL se proporciona como " "parte del sistema operativo, es probable que esté configurada correctamente." -#: ../Doc/library/ssl.rst:1680 +#: ../Doc/library/ssl.rst:1585 msgid "" "Set the available ciphers for sockets created with this context. It should " "be a string in the `OpenSSL cipher list format `_. Después de un handshake exitoso, el método :" "meth:`SSLSocket.selected_npn_protocol` devolverá el protocolo acordado." -#: ../Doc/library/ssl.rst:1718 +#: ../Doc/library/ssl.rst:1623 msgid "" "This method will raise :exc:`NotImplementedError` if :data:`HAS_NPN` is " "``False``." @@ -2649,7 +2498,7 @@ msgstr "" # No traduzco el título de la sección 3 de la RFC porque la RFC está sólo en # inglés. -#: ../Doc/library/ssl.rst:1729 +#: ../Doc/library/ssl.rst:1634 msgid "" "Register a callback function that will be called after the TLS Client Hello " "handshake message has been received by the SSL/TLS server when the TLS " @@ -2662,7 +2511,7 @@ msgstr "" "indicación de nombre de servidor se especifica en :rfc:`6066` sección 3 - " "Server Name Indication." -#: ../Doc/library/ssl.rst:1734 +#: ../Doc/library/ssl.rst:1639 msgid "" "Only one callback can be set per ``SSLContext``. If *sni_callback* is set " "to ``None`` then the callback is disabled. Calling this function a " @@ -2673,7 +2522,7 @@ msgstr "" "Si se llama a esta función una vez más, se desactivará la función callback " "registrada anteriormente." -#: ../Doc/library/ssl.rst:1738 +#: ../Doc/library/ssl.rst:1643 msgid "" "The callback function will be called with three arguments; the first being " "the :class:`ssl.SSLSocket`, the second is a string that represents the " @@ -2691,7 +2540,7 @@ msgstr "" "texto. En el caso de los nombres de dominio internacionalizados, el nombre " "del servidor es un IDN etiqueta A (``\"xn--pythn-mua.org\"``)." -#: ../Doc/library/ssl.rst:1746 +#: ../Doc/library/ssl.rst:1651 msgid "" "A typical use of this callback is to change the :class:`ssl.SSLSocket`'s :" "attr:`SSLSocket.context` attribute to a new object of type :class:" @@ -2702,7 +2551,7 @@ msgstr "" "class:`SSLContext` que representa una cadena de certificados que coincide " "con el nombre del servidor." -#: ../Doc/library/ssl.rst:1751 +#: ../Doc/library/ssl.rst:1656 msgid "" "Due to the early negotiation phase of the TLS connection, only limited " "methods and attributes are usable like :meth:`SSLSocket." @@ -2720,7 +2569,7 @@ msgstr "" "Client Hello de TLS y, por lo tanto, no devolverán valores significativos ni " "se pueden llamar de forma segura." -#: ../Doc/library/ssl.rst:1759 +#: ../Doc/library/ssl.rst:1664 msgid "" "The *sni_callback* function must return ``None`` to allow the TLS " "negotiation to continue. If a TLS failure is required, a constant :const:" @@ -2734,7 +2583,7 @@ msgstr "" "Otros valores de retorno resultarán en un error fatal TLS con :const:" "`ALERT_DESCRIPTION_INTERNAL_ERROR`." -#: ../Doc/library/ssl.rst:1765 +#: ../Doc/library/ssl.rst:1670 msgid "" "If an exception is raised from the *sni_callback* function the TLS " "connection will terminate with a fatal TLS alert message :const:" @@ -2744,7 +2593,7 @@ msgstr "" "terminará con un mensaje de alerta TLS fatal :const:" "`ALERT_DESCRIPTION_HANDSHAKE_FAILURE`." -#: ../Doc/library/ssl.rst:1769 +#: ../Doc/library/ssl.rst:1674 msgid "" "This method will raise :exc:`NotImplementedError` if the OpenSSL library had " "OPENSSL_NO_TLSEXT defined when it was built." @@ -2752,7 +2601,7 @@ msgstr "" "Este método lanzará :exc:`NotImplementedError` si la biblioteca OpenSSL " "tenía definido OPENSSL_NO_TLSEXT cuando se construyó." -#: ../Doc/library/ssl.rst:1776 +#: ../Doc/library/ssl.rst:1681 msgid "" "This is a legacy API retained for backwards compatibility. When possible, " "you should use :attr:`sni_callback` instead. The given " @@ -2767,7 +2616,7 @@ msgstr "" "dominio internacionalizado codificado con IDN, el *server_name_callback* " "recibe una etiqueta U decodificada (``\"pythön.org\"``)." -#: ../Doc/library/ssl.rst:1782 +#: ../Doc/library/ssl.rst:1687 msgid "" "If there is an decoding error on the server name, the TLS connection will " "terminate with an :const:`ALERT_DESCRIPTION_INTERNAL_ERROR` fatal TLS alert " @@ -2777,7 +2626,7 @@ msgstr "" "terminará con un mensaje fatal de alerta TLS :const:" "`ALERT_DESCRIPTION_INTERNAL_ERROR` al cliente." -#: ../Doc/library/ssl.rst:1790 +#: ../Doc/library/ssl.rst:1695 msgid "" "Load the key generation parameters for Diffie-Hellman (DH) key exchange. " "Using DH key exchange improves forward secrecy at the expense of " @@ -2791,7 +2640,7 @@ msgstr "" "como en el cliente). El parámetro *dhfile* debe ser la ruta de un archivo " "que contenga los parámetros DH en formato PEM." -#: ../Doc/library/ssl.rst:1796 +#: ../Doc/library/ssl.rst:1701 msgid "" "This setting doesn't apply to client sockets. You can also use the :data:" "`OP_SINGLE_DH_USE` option to further improve security." @@ -2800,7 +2649,7 @@ msgstr "" "utilizar la opción :data:`OP_SINGLE_DH_USE` para mejorar aún más la " "seguridad." -#: ../Doc/library/ssl.rst:1803 +#: ../Doc/library/ssl.rst:1708 msgid "" "Set the curve name for Elliptic Curve-based Diffie-Hellman (ECDH) key " "exchange. ECDH is significantly faster than regular DH while arguably as " @@ -2814,7 +2663,7 @@ msgstr "" "*curve_name* debe ser una cadena que describa una curva elíptica conocida, " "por ejemplo ``prime256v1`` para una curva ampliamente soportada." -#: ../Doc/library/ssl.rst:1809 +#: ../Doc/library/ssl.rst:1714 msgid "" "This setting doesn't apply to client sockets. You can also use the :data:" "`OP_SINGLE_ECDH_USE` option to further improve security." @@ -2823,28 +2672,30 @@ msgstr "" "utilizar la opción :data:`OP_SINGLE_ECDH_USE` para mejorar aún más la " "seguridad." -#: ../Doc/library/ssl.rst:1812 +#: ../Doc/library/ssl.rst:1717 msgid "This method is not available if :data:`HAS_ECDH` is ``False``." msgstr "Este método no está disponible si :data:`HAS_ECDH` es ``False``." -#: ../Doc/library/ssl.rst:1817 +#: ../Doc/library/ssl.rst:1722 +#, fuzzy msgid "" -"`SSL/TLS & Perfect Forward Secrecy `_" msgstr "" "`SSL/TLS & Perfect Forward Secrecy `_" -#: ../Doc/library/ssl.rst:1818 +#: ../Doc/library/ssl.rst:1723 msgid "Vincent Bernat." msgstr "Vincent Bernat." -#: ../Doc/library/ssl.rst:1824 +#: ../Doc/library/ssl.rst:1729 +#, fuzzy msgid "" "Wrap an existing Python socket *sock* and return an instance of :attr:" "`SSLContext.sslsocket_class` (default :class:`SSLSocket`). The returned SSL " "socket is tied to the context, its settings and certificates. *sock* must be " -"a :data:`~socket.SOCK_STREAM` socket; other socket types are unsupported." +"a :const:`~socket.SOCK_STREAM` socket; other socket types are unsupported." msgstr "" "Envuelve un socket Python existente *sock* y retorna una instancia de :attr:" "`SSLContext.sslsocket_class` (por defecto :class:`SSLSocket`). El socket SSL " @@ -2852,7 +2703,7 @@ msgstr "" "debe ser un socket :data:`~socket.SOCK_STREAM`; otros tipos de socket no son " "soportados." -#: ../Doc/library/ssl.rst:1830 +#: ../Doc/library/ssl.rst:1735 msgid "" "The parameter ``server_side`` is a boolean which identifies whether server-" "side or client-side behavior is desired from this socket." @@ -2860,7 +2711,7 @@ msgstr "" "El parámetro ``server_side`` es un booleano que identifica si se desea un " "comportamiento del lado del servidor o del lado del cliente en este socket." -#: ../Doc/library/ssl.rst:1833 +#: ../Doc/library/ssl.rst:1738 msgid "" "For client-side sockets, the context construction is lazy; if the underlying " "socket isn't connected yet, the context construction will be performed " @@ -2878,7 +2729,7 @@ msgstr "" "servidor se realiza automáticamente en las conexiones del cliente aceptadas " "a través del método :meth:`accept`. El método puede lanzar :exc:`SSLError`." -#: ../Doc/library/ssl.rst:1841 +#: ../Doc/library/ssl.rst:1746 msgid "" "On client connections, the optional parameter *server_hostname* specifies " "the hostname of the service which we are connecting to. This allows a " @@ -2893,7 +2744,7 @@ msgstr "" "especificar *server_hostname* se producirá un :exc:`ValueError` si " "*server_side* es verdadero." -#: ../Doc/library/ssl.rst:1847 +#: ../Doc/library/ssl.rst:1752 msgid "" "The parameter ``do_handshake_on_connect`` specifies whether to do the SSL " "handshake automatically after doing a :meth:`socket.connect`, or whether the " @@ -2909,7 +2760,7 @@ msgstr "" "do_handshake` da al programa el control sobre el comportamiento de bloqueo " "de la E/S del socket involucrada en el handshake." -#: ../Doc/library/ssl.rst:1854 +#: ../Doc/library/ssl.rst:1759 msgid "" "The parameter ``suppress_ragged_eofs`` specifies how the :meth:`SSLSocket." "recv` method should signal unexpected EOF from the other end of the " @@ -2925,22 +2776,22 @@ msgstr "" "inesperados que se produzcan desde el socket subyacente; si :const:`False`, " "lanzará las excepciones al llamador." -#: ../Doc/library/ssl.rst:1861 +#: ../Doc/library/ssl.rst:1766 msgid "*session*, see :attr:`~SSLSocket.session`." msgstr "*session*, véase :attr:`~SSLSocket.session`." -#: ../Doc/library/ssl.rst:1863 +#: ../Doc/library/ssl.rst:1768 msgid "" "Always allow a server_hostname to be passed, even if OpenSSL does not have " "SNI." msgstr "" "Siempre permite pasar un server_hostname, incluso si OpenSSL no tiene SNI." -#: ../Doc/library/ssl.rst:1867 ../Doc/library/ssl.rst:1893 +#: ../Doc/library/ssl.rst:1772 ../Doc/library/ssl.rst:1798 msgid "*session* argument was added." msgstr "Se agregó el argumento *session*." -#: ../Doc/library/ssl.rst:1870 +#: ../Doc/library/ssl.rst:1775 msgid "" "The method returns an instance of :attr:`SSLContext.sslsocket_class` instead " "of hard-coded :class:`SSLSocket`." @@ -2948,7 +2799,7 @@ msgstr "" "El método retorna una instancia de :attr:`SSLContext.sslsocket_class` en " "lugar de :class:`SSLSocket` codificado de forma rígida." -#: ../Doc/library/ssl.rst:1876 +#: ../Doc/library/ssl.rst:1781 msgid "" "The return type of :meth:`SSLContext.wrap_socket`, defaults to :class:" "`SSLSocket`. The attribute can be overridden on instance of class in order " @@ -2958,7 +2809,7 @@ msgstr "" "`SSLSocket`. El atributo puede anularse en la instancia de la clase para " "devolver una subclase personalizada de :class:`SSLSocket`." -#: ../Doc/library/ssl.rst:1885 +#: ../Doc/library/ssl.rst:1790 msgid "" "Wrap the BIO objects *incoming* and *outgoing* and return an instance of :" "attr:`SSLContext.sslobject_class` (default :class:`SSLObject`). The SSL " @@ -2970,7 +2821,7 @@ msgstr "" "rutinas SSL leerán los datos de entrada de la BIO entrante y escribirán los " "datos en la BIO saliente." -#: ../Doc/library/ssl.rst:1890 +#: ../Doc/library/ssl.rst:1795 msgid "" "The *server_side*, *server_hostname* and *session* parameters have the same " "meaning as in :meth:`SSLContext.wrap_socket`." @@ -2978,7 +2829,7 @@ msgstr "" "Los parámetros *server_side*, *server_hostname* y *session* tienen el mismo " "significado que en :meth:`SSLContext.wrap_socket`." -#: ../Doc/library/ssl.rst:1896 +#: ../Doc/library/ssl.rst:1801 msgid "" "The method returns an instance of :attr:`SSLContext.sslobject_class` instead " "of hard-coded :class:`SSLObject`." @@ -2986,7 +2837,7 @@ msgstr "" "El método retorna una instancia de :attr:`SSLContext.sslobject_class` en " "lugar de :class:`SSLObject` codificado de forma rígida." -#: ../Doc/library/ssl.rst:1902 +#: ../Doc/library/ssl.rst:1807 msgid "" "The return type of :meth:`SSLContext.wrap_bio`, defaults to :class:" "`SSLObject`. The attribute can be overridden on instance of class in order " @@ -2996,7 +2847,7 @@ msgstr "" "`SSLObject`. El atributo puede anularse en la instancia de la clase para " "devolver una subclase personalizada de :class:`SSLObject`." -#: ../Doc/library/ssl.rst:1910 +#: ../Doc/library/ssl.rst:1815 msgid "" "Get statistics about the SSL sessions created or managed by this context. A " "dictionary is returned which maps the names of each `piece of information " @@ -3011,7 +2862,7 @@ msgstr "" "aciertos y errores en la memoria caché de la sesión desde que se creó el " "contexto:" -#: ../Doc/library/ssl.rst:1921 +#: ../Doc/library/ssl.rst:1826 msgid "" "Whether to match the peer cert's hostname in :meth:`SSLSocket.do_handshake`. " "The context's :attr:`~SSLContext.verify_mode` must be set to :data:" @@ -3036,7 +2887,7 @@ msgstr "" "protocolos, la verificación del nombre de host debe habilitarse " "explícitamente." -#: ../Doc/library/ssl.rst:1949 +#: ../Doc/library/ssl.rst:1854 msgid "" ":attr:`~SSLContext.verify_mode` is now automatically changed to :data:" "`CERT_REQUIRED` when hostname checking is enabled and :attr:`~SSLContext." @@ -3048,7 +2899,7 @@ msgstr "" "`~SSLContext.verify_mode` es :data:`CERT_NONE`. Anteriormente la misma " "operación habría fallado con un :exc:`ValueError`." -#: ../Doc/library/ssl.rst:1956 +#: ../Doc/library/ssl.rst:1861 msgid "" "Write TLS keys to a keylog file, whenever key material is generated or " "received. The keylog file is designed for debugging purposes only. The file " @@ -3063,7 +2914,7 @@ msgstr "" "abre en modo sólo añadir. Las escrituras se sincronizan entre hilos, pero no " "entre procesos." -#: ../Doc/library/ssl.rst:1966 +#: ../Doc/library/ssl.rst:1871 msgid "" "A :class:`TLSVersion` enum member representing the highest supported TLS " "version. The value defaults to :attr:`TLSVersion.MAXIMUM_SUPPORTED`. The " @@ -3076,7 +2927,7 @@ msgstr "" "de :attr:`PROTOCOL_TLS`, :attr:`PROTOCOL_TLS_CLIENT` y :attr:" "`PROTOCOL_TLS_SERVER`." -#: ../Doc/library/ssl.rst:1971 +#: ../Doc/library/ssl.rst:1876 msgid "" "The attributes :attr:`~SSLContext.maximum_version`, :attr:`~SSLContext." "minimum_version` and :attr:`SSLContext.options` all affect the supported SSL " @@ -3092,7 +2943,7 @@ msgstr "" "`~SSLContext.options` y :attr:`~SSLContext.maximum_version` establecido en :" "attr:`TLSVersion.TLSv1_2` no podrá establecer una conexión TLS 1.2." -#: ../Doc/library/ssl.rst:1984 +#: ../Doc/library/ssl.rst:1889 msgid "" "Like :attr:`SSLContext.maximum_version` except it is the lowest supported " "version or :attr:`TLSVersion.MINIMUM_SUPPORTED`." @@ -3100,7 +2951,7 @@ msgstr "" "Igual que :attr:`SSLContext.maximum_version` excepto que es la versión más " "baja soportada o :attr:`TLSVersion.MINIMUM_SUPPORTED`." -#: ../Doc/library/ssl.rst:1991 +#: ../Doc/library/ssl.rst:1896 msgid "" "Control the number of TLS 1.3 session tickets of a :attr:" "`PROTOCOL_TLS_SERVER` context. The setting has no impact on TLS 1.0 to 1.2 " @@ -3110,7 +2961,7 @@ msgstr "" "`TLS_PROTOCOL_SERVER`. El ajuste no tiene impacto en las conexiones TLS 1.0 " "a 1.2." -#: ../Doc/library/ssl.rst:1999 +#: ../Doc/library/ssl.rst:1904 msgid "" "An integer representing the set of SSL options enabled on this context. The " "default value is :data:`OP_ALL`, but you can specify other options such as :" @@ -3121,11 +2972,11 @@ msgstr "" "especificar otras opciones como :data:`OP_NO_SSLv2` mediante la combinación " "OR." -#: ../Doc/library/ssl.rst:2003 +#: ../Doc/library/ssl.rst:1908 msgid ":attr:`SSLContext.options` returns :class:`Options` flags:" msgstr ":attr:`SSLContext.options` retorna opciones :class:`Options`:" -#: ../Doc/library/ssl.rst:2011 +#: ../Doc/library/ssl.rst:1916 msgid "" "All ``OP_NO_SSL*`` and ``OP_NO_TLS*`` options have been deprecated since " "Python 3.7. Use :attr:`SSLContext.minimum_version` and :attr:`SSLContext." @@ -3134,7 +2985,7 @@ msgstr "" "Esta opción es obsoleta desde OpenSSL 1.1.0, utilice en su lugar los nuevos :" "attr:`SSLContext.minimum_version` y :attr:`SSLContext.maximum_version`." -#: ../Doc/library/ssl.rst:2017 +#: ../Doc/library/ssl.rst:1922 msgid "" "Enable TLS 1.3 post-handshake client authentication. Post-handshake auth is " "disabled by default and a server can only request a TLS client certificate " @@ -3147,7 +2998,7 @@ msgstr "" "inicial. Cuando se habilita, un servidor puede solicitar un certificado de " "cliente TLS en cualquier momento después del handshake." -#: ../Doc/library/ssl.rst:2022 +#: ../Doc/library/ssl.rst:1927 msgid "" "When enabled on client-side sockets, the client signals the server that it " "supports post-handshake authentication." @@ -3155,7 +3006,7 @@ msgstr "" "Cuando se activa en los sockets del lado del cliente, el cliente indica al " "servidor que soporta la autenticación post-handshake." -#: ../Doc/library/ssl.rst:2025 +#: ../Doc/library/ssl.rst:1930 msgid "" "When enabled on server-side sockets, :attr:`SSLContext.verify_mode` must be " "set to :data:`CERT_OPTIONAL` or :data:`CERT_REQUIRED`, too. The actual " @@ -3168,7 +3019,7 @@ msgstr "" "hasta que se llama a :meth:`SSLSocket.verify_client_post_handshake` y se " "realiza alguna E/S." -#: ../Doc/library/ssl.rst:2035 +#: ../Doc/library/ssl.rst:1940 msgid "" "The protocol version chosen when constructing the context. This attribute " "is read-only." @@ -3176,7 +3027,7 @@ msgstr "" "La versión del protocolo elegida cuando se construyó el contexto. Este " "atributo es de sólo lectura." -#: ../Doc/library/ssl.rst:2040 +#: ../Doc/library/ssl.rst:1945 msgid "" "Whether :attr:`~SSLContext.check_hostname` falls back to verify the cert's " "subject common name in the absence of a subject alternative name extension " @@ -3186,7 +3037,7 @@ msgstr "" "sujeto del certificado en ausencia de una extensión de nombre alternativo " "del sujeto (por defecto: true)." -#: ../Doc/library/ssl.rst:2048 +#: ../Doc/library/ssl.rst:1953 msgid "" "The flag had no effect with OpenSSL before version 1.1.1k. Python 3.8.9, " "3.9.3, and 3.10 include workarounds for previous versions." @@ -3194,7 +3045,7 @@ msgstr "" "La bandera no tuvo ningún efecto con OpenSSL antes de la versión 1.1.1k. " "Python 3.8.9, 3.9.3 y 3.10 incluyen soluciones para versiones anteriores." -#: ../Doc/library/ssl.rst:2053 +#: ../Doc/library/ssl.rst:1958 msgid "" "An integer representing the `security level `_ for the context. This " @@ -3204,7 +3055,7 @@ msgstr "" "docs/manmaster/man3/SSL_CTX_get_security_level.html>`_ para el contexto. " "Este atributo es de solo lectura." -#: ../Doc/library/ssl.rst:2061 +#: ../Doc/library/ssl.rst:1966 msgid "" "The flags for certificate verification operations. You can set flags like :" "data:`VERIFY_CRL_CHECK_LEAF` by ORing them together. By default OpenSSL does " @@ -3216,11 +3067,11 @@ msgstr "" "revocación de certificados (CRL). Disponible sólo con la versión 0.9.8+ de " "openssl." -#: ../Doc/library/ssl.rst:2067 +#: ../Doc/library/ssl.rst:1972 msgid ":attr:`SSLContext.verify_flags` returns :class:`VerifyFlags` flags:" msgstr ":attr:`SSLContext.verify_flags` retorna opciones :class:`VerifyFlags`:" -#: ../Doc/library/ssl.rst:2075 +#: ../Doc/library/ssl.rst:1980 msgid "" "Whether to try to verify other peers' certificates and how to behave if " "verification fails. This attribute must be one of :data:`CERT_NONE`, :data:" @@ -3230,15 +3081,15 @@ msgstr "" "si la verificación falla. Este atributo debe ser uno de los siguientes: :" "data:`CERT_NONE`, :data:`CERT_OPTIONAL` o :data:`CERT_REQUIRED`." -#: ../Doc/library/ssl.rst:2079 +#: ../Doc/library/ssl.rst:1984 msgid ":attr:`SSLContext.verify_mode` returns :class:`VerifyMode` enum:" msgstr ":attr:`SSLContext.verify_mode` retorna :class:`VerifyMode` enum:" -#: ../Doc/library/ssl.rst:2092 +#: ../Doc/library/ssl.rst:1997 msgid "Certificates" msgstr "Certificados" -#: ../Doc/library/ssl.rst:2094 +#: ../Doc/library/ssl.rst:1999 msgid "" "Certificates in general are part of a public-key / private-key system. In " "this system, each *principal*, (which may be a machine, or a person, or an " @@ -3257,7 +3108,7 @@ msgstr "" "mensaje con una de las partes, se puede descifrar con la otra parte, y " "**sólo** con la otra parte." -#: ../Doc/library/ssl.rst:2102 +#: ../Doc/library/ssl.rst:2007 msgid "" "A certificate contains information about two principals. It contains the " "name of a *subject*, and the subject's public key. It also contains a " @@ -3281,7 +3132,7 @@ msgstr "" "contiene información sobre el periodo de tiempo en el que es válido. Esto se " "expresa en dos campos, llamados *notBefore* y *notAfter*." -#: ../Doc/library/ssl.rst:2112 +#: ../Doc/library/ssl.rst:2017 msgid "" "In the Python use of certificates, a client or server can use a certificate " "to prove who they are. The other side of a network connection can also be " @@ -3304,7 +3155,7 @@ msgstr "" "necesita proporcionar conjuntos de certificados para permitir que este " "proceso tenga lugar." -#: ../Doc/library/ssl.rst:2122 +#: ../Doc/library/ssl.rst:2027 msgid "" "Python uses files to contain certificates. They should be formatted as " "\"PEM\" (see :rfc:`1422`), which is a base-64 encoded form wrapped with a " @@ -3314,11 +3165,11 @@ msgstr "" "como \"PEM\" (ver :rfc:`1422`), que es una forma codificada en base-64 " "envuelta con una línea de cabecera y una línea de pie de página::" -#: ../Doc/library/ssl.rst:2131 +#: ../Doc/library/ssl.rst:2036 msgid "Certificate chains" msgstr "Cadenas de certificados" -#: ../Doc/library/ssl.rst:2133 +#: ../Doc/library/ssl.rst:2038 msgid "" "The Python files which contain certificates can contain a sequence of " "certificates, sometimes called a *certificate chain*. This chain should " @@ -3347,11 +3198,11 @@ msgstr "" "el certificado raíz de la agencia que emitió el certificado de la autoridad " "de certificación::" -#: ../Doc/library/ssl.rst:2157 +#: ../Doc/library/ssl.rst:2062 msgid "CA certificates" msgstr "Certificados CA" -#: ../Doc/library/ssl.rst:2159 +#: ../Doc/library/ssl.rst:2064 msgid "" "If you are going to require validation of the other side of the connection's " "certificate, you need to provide a \"CA certs\" file, filled with the " @@ -3371,17 +3222,17 @@ msgstr "" "llamando a :meth:`SSLContext.load_default_certs`, esto se hace " "automáticamente con :func:`.create_default_context`." -#: ../Doc/library/ssl.rst:2168 +#: ../Doc/library/ssl.rst:2073 msgid "Combined key and certificate" msgstr "Clave y certificado combinados" -#: ../Doc/library/ssl.rst:2170 +#: ../Doc/library/ssl.rst:2075 +#, fuzzy msgid "" "Often the private key is stored in the same file as the certificate; in this " "case, only the ``certfile`` parameter to :meth:`SSLContext.load_cert_chain` " -"and :func:`wrap_socket` needs to be passed. If the private key is stored " -"with the certificate, it should come before the first certificate in the " -"certificate chain::" +"needs to be passed. If the private key is stored with the certificate, it " +"should come before the first certificate in the certificate chain::" msgstr "" "A menudo la clave privada se almacena en el mismo archivo que el " "certificado; en este caso, sólo es necesario pasar el parámetro ``certfile`` " @@ -3389,11 +3240,11 @@ msgstr "" "privada se almacena con el certificado, debe ir antes del primer certificado " "de la cadena de certificados::" -#: ../Doc/library/ssl.rst:2184 +#: ../Doc/library/ssl.rst:2089 msgid "Self-signed certificates" msgstr "Certificados auto-firmados" -#: ../Doc/library/ssl.rst:2186 +#: ../Doc/library/ssl.rst:2091 msgid "" "If you are going to create a server that provides SSL-encrypted connection " "services, you will need to acquire a certificate for that service. There " @@ -3409,7 +3260,7 @@ msgstr "" "La forma más sencilla de hacerlo es con el paquete OpenSSL, utilizando algo " "como lo siguiente:" -#: ../Doc/library/ssl.rst:2215 +#: ../Doc/library/ssl.rst:2120 msgid "" "The disadvantage of a self-signed certificate is that it is its own root " "certificate, and no one else will have it in their cache of known (and " @@ -3419,15 +3270,15 @@ msgstr "" "raíz, y nadie más lo tendrá en su caché de certificados raíz conocidos (y de " "confianza)." -#: ../Doc/library/ssl.rst:2221 +#: ../Doc/library/ssl.rst:2126 msgid "Examples" msgstr "Ejemplos" -#: ../Doc/library/ssl.rst:2224 +#: ../Doc/library/ssl.rst:2129 msgid "Testing for SSL support" msgstr "Pruebas de compatibilidad con SSL" -#: ../Doc/library/ssl.rst:2226 +#: ../Doc/library/ssl.rst:2131 msgid "" "To test for the presence of SSL support in a Python installation, user code " "should use the following idiom::" @@ -3435,11 +3286,11 @@ msgstr "" "Para comprobar la presencia de soporte SSL en una instalación de Python, el " "código del usuario debe utilizar el siguiente modismo::" -#: ../Doc/library/ssl.rst:2237 +#: ../Doc/library/ssl.rst:2142 msgid "Client-side operation" msgstr "Operación del lado del cliente" -#: ../Doc/library/ssl.rst:2239 +#: ../Doc/library/ssl.rst:2144 msgid "" "This example creates a SSL context with the recommended security settings " "for client sockets, including automatic certificate verification::" @@ -3448,7 +3299,7 @@ msgstr "" "recomendada para los sockets del cliente, incluyendo la verificación " "automática de certificados::" -#: ../Doc/library/ssl.rst:2244 +#: ../Doc/library/ssl.rst:2149 msgid "" "If you prefer to tune security settings yourself, you might create a context " "from scratch (but beware that you might not get the settings right)::" @@ -3457,7 +3308,7 @@ msgstr "" "contexto desde cero (pero ten en cuenta que podrías no acertar con la " "configuración)::" -#: ../Doc/library/ssl.rst:2251 +#: ../Doc/library/ssl.rst:2156 msgid "" "(this snippet assumes your operating system places a bundle of all CA " "certificates in ``/etc/ssl/certs/ca-bundle.crt``; if not, you'll get an " @@ -3467,7 +3318,7 @@ msgstr "" "los certificados CA en ``/etc/ssl/certs/ca-bundle.crt``; si no es así, " "obtendrá un error y tendrá que ajustar la ubicación)" -#: ../Doc/library/ssl.rst:2255 +#: ../Doc/library/ssl.rst:2160 msgid "" "The :data:`PROTOCOL_TLS_CLIENT` protocol configures the context for cert " "validation and hostname verification. :attr:`~SSLContext.verify_mode` is set " @@ -3480,7 +3331,7 @@ msgstr "" "`~SSLContext.check_hostname` se establece en ``True``. Todos los demás " "protocolos crean contextos SSL con valores predeterminados inseguros." -#: ../Doc/library/ssl.rst:2260 +#: ../Doc/library/ssl.rst:2165 msgid "" "When you use the context to connect to a server, :const:`CERT_REQUIRED` and :" "attr:`~SSLContext.check_hostname` validate the server certificate: it " @@ -3495,11 +3346,11 @@ msgstr "" "y se verifican otras propiedades como la validez y la identidad del " "hostname::" -#: ../Doc/library/ssl.rst:2270 +#: ../Doc/library/ssl.rst:2175 msgid "You may then fetch the certificate::" msgstr "A continuación, puede obtener el certificado::" -#: ../Doc/library/ssl.rst:2274 +#: ../Doc/library/ssl.rst:2179 msgid "" "Visual inspection shows that the certificate does identify the desired " "service (that is, the HTTPS host ``www.python.org``)::" @@ -3507,7 +3358,7 @@ msgstr "" "La inspección visual muestra que el certificado sí identifica el servicio " "deseado (es decir, el host HTTPS ``www.python.org``)::" -#: ../Doc/library/ssl.rst:2317 +#: ../Doc/library/ssl.rst:2222 msgid "" "Now the SSL channel is established and the certificate verified, you can " "proceed to talk with the server::" @@ -3515,11 +3366,11 @@ msgstr "" "Ahora que se ha establecido el canal SSL y se ha verificado el certificado, " "se puede proceder a hablar con el servidor::" -#: ../Doc/library/ssl.rst:2344 +#: ../Doc/library/ssl.rst:2249 msgid "Server-side operation" msgstr "Operación del lado del servidor" -#: ../Doc/library/ssl.rst:2346 +#: ../Doc/library/ssl.rst:2251 msgid "" "For server operation, typically you'll need to have a server certificate, " "and private key, each in a file. You'll first create a context holding the " @@ -3534,7 +3385,7 @@ msgstr "" "enlazarás a un puerto, llamarás a :meth:`listen` en él, y empezarás a " "esperar a que los clientes se conecten::" -#: ../Doc/library/ssl.rst:2361 +#: ../Doc/library/ssl.rst:2266 msgid "" "When a client connects, you'll call :meth:`accept` on the socket to get the " "new socket from the other end, and use the context's :meth:`SSLContext." @@ -3545,7 +3396,7 @@ msgstr "" "`SSLContext.wrap_socket` del contexto para crear un socket SSL del lado del " "servidor para la conexión::" -#: ../Doc/library/ssl.rst:2374 +#: ../Doc/library/ssl.rst:2279 msgid "" "Then you'll read data from the ``connstream`` and do something with it till " "you are finished with the client (or the client is finished with you)::" @@ -3553,7 +3404,7 @@ msgstr "" "Entonces leerás los datos del ``connstream`` y harás algo con ellos hasta " "que hayas terminado con el cliente (o el cliente haya terminado contigo)::" -#: ../Doc/library/ssl.rst:2388 +#: ../Doc/library/ssl.rst:2293 msgid "" "And go back to listening for new client connections (of course, a real " "server would probably handle each client connection in a separate thread, or " @@ -3565,11 +3416,11 @@ msgstr "" "pondría los sockets en modo :ref:`no-bloqueo ` y usaría un " "bucle de eventos)." -#: ../Doc/library/ssl.rst:2396 +#: ../Doc/library/ssl.rst:2301 msgid "Notes on non-blocking sockets" msgstr "Notas sobre los sockets no bloqueantes" -#: ../Doc/library/ssl.rst:2398 +#: ../Doc/library/ssl.rst:2303 msgid "" "SSL sockets behave slightly different than regular sockets in non-blocking " "mode. When working with non-blocking sockets, there are thus several things " @@ -3579,7 +3430,7 @@ msgstr "" "normales en modo no bloqueante. Cuando se trabaja con sockets no " "bloqueantes, hay varias cosas que hay que tener en cuenta:" -#: ../Doc/library/ssl.rst:2402 +#: ../Doc/library/ssl.rst:2307 msgid "" "Most :class:`SSLSocket` methods will raise either :exc:`SSLWantWriteError` " "or :exc:`SSLWantReadError` instead of :exc:`BlockingIOError` if an I/O " @@ -3600,7 +3451,7 @@ msgstr "" "primero, y los intentos de *leer* del socket SSL pueden requerir una " "*escritura* previa en el socket subyacente." -#: ../Doc/library/ssl.rst:2414 +#: ../Doc/library/ssl.rst:2319 msgid "" "In earlier Python versions, the :meth:`!SSLSocket.send` method returned zero " "instead of raising :exc:`SSLWantWriteError` or :exc:`SSLWantReadError`." @@ -3609,7 +3460,7 @@ msgstr "" "devolvía cero en lugar de lanzar :exc:`SSLWantWriteError` o :exc:" "`SSLWantReadError`." -#: ../Doc/library/ssl.rst:2418 +#: ../Doc/library/ssl.rst:2323 msgid "" "Calling :func:`~select.select` tells you that the OS-level socket can be " "read from (or written to), but it does not imply that there is sufficient " @@ -3625,7 +3476,7 @@ msgstr "" "meth:`SSLSocket.recv` y :meth:`SSLSocket.send`, y re-intentar después de " "otra llamada a :func:`~select.select`." -#: ../Doc/library/ssl.rst:2425 +#: ../Doc/library/ssl.rst:2330 msgid "" "Conversely, since the SSL layer has its own framing, a SSL socket may still " "have data available for reading without :func:`~select.select` being aware " @@ -3639,7 +3490,7 @@ msgstr "" "drenar cualquier dato potencialmente disponible, y luego sólo bloquear en " "una llamada a :func:`~select.select` si todavía es necesario." -#: ../Doc/library/ssl.rst:2431 +#: ../Doc/library/ssl.rst:2336 msgid "" "(of course, similar provisions apply when using other primitives such as :" "func:`~select.poll`, or those in the :mod:`selectors` module)" @@ -3647,7 +3498,7 @@ msgstr "" "(por supuesto, se aplican disposiciones similares cuando se utilizan otras " "primitivas como :func:`~select.poll`, o las del módulo :mod:`selectors`)" -#: ../Doc/library/ssl.rst:2434 +#: ../Doc/library/ssl.rst:2339 msgid "" "The SSL handshake itself will be non-blocking: the :meth:`SSLSocket." "do_handshake` method has to be retried until it returns successfully. Here " @@ -3659,7 +3510,7 @@ msgstr "" "hay una sinopsis usando :func:`~select.select` para esperar la " "disponibilidad del socket::" -#: ../Doc/library/ssl.rst:2450 +#: ../Doc/library/ssl.rst:2355 msgid "" "The :mod:`asyncio` module supports :ref:`non-blocking SSL sockets ` and provides a higher level API. It polls for events using " @@ -3673,11 +3524,11 @@ msgstr "" "exc:`SSLWantReadError` y :exc:`BlockingIOError`. También ejecuta el " "handshake SSL de forma asíncrona." -#: ../Doc/library/ssl.rst:2459 +#: ../Doc/library/ssl.rst:2364 msgid "Memory BIO Support" msgstr "Soporte de memoria BIO" -#: ../Doc/library/ssl.rst:2463 +#: ../Doc/library/ssl.rst:2368 msgid "" "Ever since the SSL module was introduced in Python 2.6, the :class:" "`SSLSocket` class has provided two related but distinct areas of " @@ -3687,15 +3538,15 @@ msgstr "" "`SSLSocket` ha proporcionado dos áreas de funcionalidad relacionadas pero " "distintas:" -#: ../Doc/library/ssl.rst:2466 +#: ../Doc/library/ssl.rst:2371 msgid "SSL protocol handling" msgstr "Manejo del protocolo SSL" -#: ../Doc/library/ssl.rst:2467 +#: ../Doc/library/ssl.rst:2372 msgid "Network IO" msgstr "E/S de red" -#: ../Doc/library/ssl.rst:2469 +#: ../Doc/library/ssl.rst:2374 msgid "" "The network IO API is identical to that provided by :class:`socket.socket`, " "from which :class:`SSLSocket` also inherits. This allows an SSL socket to be " @@ -3707,7 +3558,7 @@ msgstr "" "socket SSL sea utilizado como un reemplazo de un socket normal, haciendo que " "sea muy fácil añadir soporte SSL a una aplicación existente." -#: ../Doc/library/ssl.rst:2474 +#: ../Doc/library/ssl.rst:2379 msgid "" "Combining SSL protocol handling and network IO usually works well, but there " "are some cases where it doesn't. An example is async IO frameworks that want " @@ -3728,7 +3579,7 @@ msgstr "" "no es eficiente. Para este propósito, se proporciona una variante de ámbito " "reducido de :class:`SSLSocket` llamada :class:`SSLObject`." -#: ../Doc/library/ssl.rst:2485 +#: ../Doc/library/ssl.rst:2390 msgid "" "A reduced-scope variant of :class:`SSLSocket` representing an SSL protocol " "instance that does not contain any network IO methods. This class is " @@ -3740,7 +3591,7 @@ msgstr "" "Esta clase suele ser utilizada por los autores de frameworks que quieren " "implementar E/S asíncrona para SSL a través de búfers de memoria." -#: ../Doc/library/ssl.rst:2490 +#: ../Doc/library/ssl.rst:2395 msgid "" "This class implements an interface on top of a low-level SSL object as " "implemented by OpenSSL. This object captures the state of an SSL connection " @@ -3753,7 +3604,7 @@ msgstr "" "través de objetos \"BIO\" separados que son la capa de abstracción de E/S de " "OpenSSL." -#: ../Doc/library/ssl.rst:2495 +#: ../Doc/library/ssl.rst:2400 msgid "" "This class has no public constructor. An :class:`SSLObject` instance must " "be created using the :meth:`~SSLContext.wrap_bio` method. This method will " @@ -3768,87 +3619,87 @@ msgstr "" "instancia del protocolo SSL, mientras que el BIO *de salida* se utiliza para " "pasar los datos a la inversa." -#: ../Doc/library/ssl.rst:2502 +#: ../Doc/library/ssl.rst:2407 msgid "The following methods are available:" msgstr "Los siguientes métodos son disponibles:" -#: ../Doc/library/ssl.rst:2504 +#: ../Doc/library/ssl.rst:2409 msgid ":attr:`~SSLSocket.context`" msgstr ":attr:`~SSLSocket.context`" -#: ../Doc/library/ssl.rst:2505 +#: ../Doc/library/ssl.rst:2410 msgid ":attr:`~SSLSocket.server_side`" msgstr ":attr:`~SSLSocket.server_side`" -#: ../Doc/library/ssl.rst:2506 +#: ../Doc/library/ssl.rst:2411 msgid ":attr:`~SSLSocket.server_hostname`" msgstr ":attr:`~SSLSocket.server_hostname`" -#: ../Doc/library/ssl.rst:2507 +#: ../Doc/library/ssl.rst:2412 msgid ":attr:`~SSLSocket.session`" msgstr ":attr:`~SSLSocket.session`" -#: ../Doc/library/ssl.rst:2508 +#: ../Doc/library/ssl.rst:2413 msgid ":attr:`~SSLSocket.session_reused`" msgstr ":attr:`~SSLSocket.session_reused`" -#: ../Doc/library/ssl.rst:2509 +#: ../Doc/library/ssl.rst:2414 msgid ":meth:`~SSLSocket.read`" msgstr ":meth:`~SSLSocket.read`" -#: ../Doc/library/ssl.rst:2510 +#: ../Doc/library/ssl.rst:2415 msgid ":meth:`~SSLSocket.write`" msgstr ":meth:`~SSLSocket.write`" -#: ../Doc/library/ssl.rst:2511 +#: ../Doc/library/ssl.rst:2416 msgid ":meth:`~SSLSocket.getpeercert`" msgstr ":meth:`~SSLSocket.getpeercert`" -#: ../Doc/library/ssl.rst:2512 +#: ../Doc/library/ssl.rst:2417 msgid ":meth:`~SSLSocket.selected_alpn_protocol`" msgstr ":meth:`~SSLSocket.selected_alpn_protocol`" -#: ../Doc/library/ssl.rst:2513 +#: ../Doc/library/ssl.rst:2418 msgid ":meth:`~SSLSocket.selected_npn_protocol`" msgstr ":meth:`~SSLSocket.selected_npn_protocol`" -#: ../Doc/library/ssl.rst:2514 +#: ../Doc/library/ssl.rst:2419 msgid ":meth:`~SSLSocket.cipher`" msgstr ":meth:`~SSLSocket.cipher`" -#: ../Doc/library/ssl.rst:2515 +#: ../Doc/library/ssl.rst:2420 msgid ":meth:`~SSLSocket.shared_ciphers`" msgstr ":meth:`~SSLSocket.shared_ciphers`" -#: ../Doc/library/ssl.rst:2516 +#: ../Doc/library/ssl.rst:2421 msgid ":meth:`~SSLSocket.compression`" msgstr ":meth:`~SSLSocket.compression`" -#: ../Doc/library/ssl.rst:2517 +#: ../Doc/library/ssl.rst:2422 msgid ":meth:`~SSLSocket.pending`" msgstr ":meth:`~SSLSocket.pending`" -#: ../Doc/library/ssl.rst:2518 +#: ../Doc/library/ssl.rst:2423 msgid ":meth:`~SSLSocket.do_handshake`" msgstr ":meth:`~SSLSocket.do_handshake`" -#: ../Doc/library/ssl.rst:2519 +#: ../Doc/library/ssl.rst:2424 msgid ":meth:`~SSLSocket.verify_client_post_handshake`" msgstr ":meth:`~SSLSocket.verify_client_post_handshake`" -#: ../Doc/library/ssl.rst:2520 +#: ../Doc/library/ssl.rst:2425 msgid ":meth:`~SSLSocket.unwrap`" msgstr ":meth:`~SSLSocket.unwrap`" -#: ../Doc/library/ssl.rst:2521 +#: ../Doc/library/ssl.rst:2426 msgid ":meth:`~SSLSocket.get_channel_binding`" msgstr ":meth:`~SSLSocket.get_channel_binding`" -#: ../Doc/library/ssl.rst:2522 +#: ../Doc/library/ssl.rst:2427 msgid ":meth:`~SSLSocket.version`" msgstr ":meth:`~SSLSocket.version`" -#: ../Doc/library/ssl.rst:2524 +#: ../Doc/library/ssl.rst:2429 msgid "" "When compared to :class:`SSLSocket`, this object lacks the following " "features:" @@ -3856,7 +3707,7 @@ msgstr "" "En comparación con :class:`SSLSocket`, este objeto carece de las siguientes " "características:" -#: ../Doc/library/ssl.rst:2527 +#: ../Doc/library/ssl.rst:2432 msgid "" "Any form of network IO; ``recv()`` and ``send()`` read and write only to the " "underlying :class:`MemoryBIO` buffers." @@ -3864,7 +3715,7 @@ msgstr "" "Cualquier forma de E/S de red; ``recv()`` y ``send()`` leen y escriben sólo " "en los búfers subyacentes de :class:`MemoryBIO`." -#: ../Doc/library/ssl.rst:2530 +#: ../Doc/library/ssl.rst:2435 msgid "" "There is no *do_handshake_on_connect* machinery. You must always manually " "call :meth:`~SSLSocket.do_handshake` to start the handshake." @@ -3872,7 +3723,7 @@ msgstr "" "No existe la maquinaria *do_handshake_on_connect*. Siempre hay que llamar " "manualmente a :meth:`~SSLSocket.do_handshake` para iniciar el handshake." -#: ../Doc/library/ssl.rst:2533 +#: ../Doc/library/ssl.rst:2438 msgid "" "There is no handling of *suppress_ragged_eofs*. All end-of-file conditions " "that are in violation of the protocol are reported via the :exc:" @@ -3882,7 +3733,7 @@ msgstr "" "archivo que violan el protocolo se reportan a través de la excepción :exc:" "`SSLEOFError`." -#: ../Doc/library/ssl.rst:2537 +#: ../Doc/library/ssl.rst:2442 msgid "" "The method :meth:`~SSLSocket.unwrap` call does not return anything, unlike " "for an SSL socket where it returns the underlying socket." @@ -3890,7 +3741,7 @@ msgstr "" "La llamada al método :meth:`~SSLSocket.unwrap` no retorna nada, a diferencia " "de lo que ocurre con un socket SSL, que retorna el socket subyacente." -#: ../Doc/library/ssl.rst:2540 +#: ../Doc/library/ssl.rst:2445 msgid "" "The *server_name_callback* callback passed to :meth:`SSLContext." "set_servername_callback` will get an :class:`SSLObject` instance instead of " @@ -3900,11 +3751,11 @@ msgstr "" "set_servername_callback` obtendrá una instancia de :class:`SSLObject` en " "lugar de una instancia de :class:`SSLSocket` como primer parámetro." -#: ../Doc/library/ssl.rst:2544 +#: ../Doc/library/ssl.rst:2449 msgid "Some notes related to the use of :class:`SSLObject`:" msgstr "Algunas notas relacionadas con el uso de :class:`SSLObject`:" -#: ../Doc/library/ssl.rst:2546 +#: ../Doc/library/ssl.rst:2451 msgid "" "All IO on an :class:`SSLObject` is :ref:`non-blocking `. " "This means that for example :meth:`~SSLSocket.read` will raise an :exc:" @@ -3915,7 +3766,7 @@ msgstr "" "lanzará un :exc:`SSLWantReadError` si necesita más datos de los que la BIO " "entrante tiene disponibles." -#: ../Doc/library/ssl.rst:2551 +#: ../Doc/library/ssl.rst:2456 msgid "" "There is no module-level ``wrap_bio()`` call like there is for :meth:" "`~SSLContext.wrap_socket`. An :class:`SSLObject` is always created via an :" @@ -3925,7 +3776,7 @@ msgstr "" "meth:`~SSLContext.wrap_socket`. Un :class:`SSLObject` siempre se crea a " "través de un :class:`SSLContext`." -#: ../Doc/library/ssl.rst:2555 +#: ../Doc/library/ssl.rst:2460 msgid "" ":class:`SSLObject` instances must to created with :meth:`~SSLContext." "wrap_bio`. In earlier versions, it was possible to create instances " @@ -3935,7 +3786,7 @@ msgstr "" "wrap_bio`. En versiones anteriores, era posible crear instancias " "directamente. Esto nunca fue documentado ni soportado oficialmente." -#: ../Doc/library/ssl.rst:2561 +#: ../Doc/library/ssl.rst:2466 msgid "" "An SSLObject communicates with the outside world using memory buffers. The " "class :class:`MemoryBIO` provides a memory buffer that can be used for this " @@ -3946,7 +3797,7 @@ msgstr "" "utilizado para este propósito. Envuelve un objeto BIO (Basic IO) de memoria " "de OpenSSL:" -#: ../Doc/library/ssl.rst:2567 +#: ../Doc/library/ssl.rst:2472 msgid "" "A memory buffer that can be used to pass data between Python and an SSL " "protocol instance." @@ -3954,12 +3805,12 @@ msgstr "" "Un búfer de memoria que se puede utilizar para pasar datos entre Python y " "una instancia del protocolo SSL." -#: ../Doc/library/ssl.rst:2572 +#: ../Doc/library/ssl.rst:2477 msgid "Return the number of bytes currently in the memory buffer." msgstr "" "Retorna el número de bytes que se encuentran actualmente en la memoria búfer." -#: ../Doc/library/ssl.rst:2576 +#: ../Doc/library/ssl.rst:2481 msgid "" "A boolean indicating whether the memory BIO is current at the end-of-file " "position." @@ -3967,7 +3818,7 @@ msgstr "" "Un booleano que indica si la memoria BIO es actual en la posición de fin de " "archivo." -#: ../Doc/library/ssl.rst:2581 +#: ../Doc/library/ssl.rst:2486 msgid "" "Read up to *n* bytes from the memory buffer. If *n* is not specified or " "negative, all bytes are returned." @@ -3975,7 +3826,7 @@ msgstr "" "Lee hasta *n* bytes del búfer de memoria. Si *n* no se especifica o es " "negativo, se retornan todos los bytes." -#: ../Doc/library/ssl.rst:2586 +#: ../Doc/library/ssl.rst:2491 msgid "" "Write the bytes from *buf* to the memory BIO. The *buf* argument must be an " "object supporting the buffer protocol." @@ -3983,7 +3834,7 @@ msgstr "" "Escribe los bytes de *buf* en la memoria BIO. El argumento *buf* debe ser un " "objeto que soporte el protocolo de búfer." -#: ../Doc/library/ssl.rst:2589 +#: ../Doc/library/ssl.rst:2494 msgid "" "The return value is the number of bytes written, which is always equal to " "the length of *buf*." @@ -3991,7 +3842,7 @@ msgstr "" "El valor de retorno es el número de bytes escritos, que siempre es igual a " "la longitud de *buf*." -#: ../Doc/library/ssl.rst:2594 +#: ../Doc/library/ssl.rst:2499 msgid "" "Write an EOF marker to the memory BIO. After this method has been called, it " "is illegal to call :meth:`~MemoryBIO.write`. The attribute :attr:`eof` will " @@ -4002,23 +3853,23 @@ msgstr "" "convertirá en verdadero después de que se hayan leído todos los datos que " "hay actualmente en el búfer." -#: ../Doc/library/ssl.rst:2600 +#: ../Doc/library/ssl.rst:2505 msgid "SSL session" msgstr "Sesión SSL" -#: ../Doc/library/ssl.rst:2606 +#: ../Doc/library/ssl.rst:2511 msgid "Session object used by :attr:`~SSLSocket.session`." msgstr "Objeto sesión usado por :attr:`~SSLSocket.session`." -#: ../Doc/library/ssl.rst:2618 +#: ../Doc/library/ssl.rst:2523 msgid "Security considerations" msgstr "Consideraciones de seguridad" -#: ../Doc/library/ssl.rst:2621 +#: ../Doc/library/ssl.rst:2526 msgid "Best defaults" msgstr "Los mejores valores por defecto" -#: ../Doc/library/ssl.rst:2623 +#: ../Doc/library/ssl.rst:2528 msgid "" "For **client use**, if you don't have any special requirements for your " "security policy, it is highly recommended that you use the :func:" @@ -4034,7 +3885,7 @@ msgstr "" "certificados y la comprobación del hostname, e intentará elegir una " "configuración de protocolo y cifrado razonablemente segura." -#: ../Doc/library/ssl.rst:2630 +#: ../Doc/library/ssl.rst:2535 msgid "" "For example, here is how you would use the :class:`smtplib.SMTP` class to " "create a trusted, secure connection to a SMTP server::" @@ -4042,7 +3893,7 @@ msgstr "" "Por ejemplo, así es como se utiliza la clase :class:`smtplib.SMTP` para " "crear una conexión segura y de confianza con un servidor SMTP::" -#: ../Doc/library/ssl.rst:2639 +#: ../Doc/library/ssl.rst:2544 msgid "" "If a client certificate is needed for the connection, it can be added with :" "meth:`SSLContext.load_cert_chain`." @@ -4050,7 +3901,7 @@ msgstr "" "Si se necesita un certificado de cliente para la conexión, se puede añadir " "con :meth:`SSLContext.load_cert_chain`." -#: ../Doc/library/ssl.rst:2642 +#: ../Doc/library/ssl.rst:2547 msgid "" "By contrast, if you create the SSL context by calling the :class:" "`SSLContext` constructor yourself, it will not have certificate validation " @@ -4062,15 +3913,16 @@ msgstr "" "validación de certificados ni la comprobación de hostname. Si lo hace, lea " "los párrafos siguientes para conseguir un buen nivel de seguridad." -#: ../Doc/library/ssl.rst:2648 +#: ../Doc/library/ssl.rst:2553 msgid "Manual settings" msgstr "Ajustes manuales" -#: ../Doc/library/ssl.rst:2651 +#: ../Doc/library/ssl.rst:2556 msgid "Verifying certificates" msgstr "Verificación de certificados" -#: ../Doc/library/ssl.rst:2653 +#: ../Doc/library/ssl.rst:2558 +#, fuzzy msgid "" "When calling the :class:`SSLContext` constructor directly, :const:" "`CERT_NONE` is the default. Since it does not authenticate the other peer, " @@ -4080,9 +3932,9 @@ msgid "" "`CERT_REQUIRED`. However, it is in itself not sufficient; you also have to " "check that the server certificate, which can be obtained by calling :meth:" "`SSLSocket.getpeercert`, matches the desired service. For many protocols " -"and applications, the service can be identified by the hostname; in this " -"case, the :func:`match_hostname` function can be used. This common check is " -"automatically performed when :attr:`SSLContext.check_hostname` is enabled." +"and applications, the service can be identified by the hostname. This common " +"check is automatically performed when :attr:`SSLContext.check_hostname` is " +"enabled." msgstr "" "Cuando se llama al constructor de :class:`SSLContext` directamente, :const:" "`CERT_NONE` es el valor por defecto. Dado que no autentifica al otro peer, " @@ -4100,7 +3952,7 @@ msgstr "" # La expresión "hostname matching" suena un poco raro aquí. Sin embargo, como # no lo he traducido en el resto del documento, lo dejo aquí también en # inglés. -#: ../Doc/library/ssl.rst:2666 +#: ../Doc/library/ssl.rst:2570 msgid "" "Hostname matchings is now performed by OpenSSL. Python no longer uses :func:" "`match_hostname`." @@ -4108,7 +3960,7 @@ msgstr "" "Las hostname matchings son ahora realizadas por OpenSSL. Python ya no " "utiliza :func:`match_hostname`." -#: ../Doc/library/ssl.rst:2670 +#: ../Doc/library/ssl.rst:2574 msgid "" "In server mode, if you want to authenticate your clients using the SSL layer " "(rather than using a higher-level authentication mechanism), you'll also " @@ -4120,11 +3972,11 @@ msgstr "" "también tendrá que especificar :const:`CERT_REQUIRED` y comprobar de forma " "similar el certificado del cliente." -#: ../Doc/library/ssl.rst:2676 +#: ../Doc/library/ssl.rst:2580 msgid "Protocol versions" msgstr "Versiones del protocolo" -#: ../Doc/library/ssl.rst:2678 +#: ../Doc/library/ssl.rst:2582 msgid "" "SSL versions 2 and 3 are considered insecure and are therefore dangerous to " "use. If you want maximum compatibility between clients and servers, it is " @@ -4138,9 +3990,10 @@ msgstr "" "`PROTOCOL_TLS_SERVER` como versión del protocolo. SSLv2 y SSLv3 están " "desactivados por defecto." -#: ../Doc/library/ssl.rst:2691 +#: ../Doc/library/ssl.rst:2595 +#, fuzzy msgid "" -"The SSL context created above will only allow TLSv1.2 and later (if " +"The SSL context created above will only allow TLSv1.3 and later (if " "supported by your system) connections to a server. :const:" "`PROTOCOL_TLS_CLIENT` implies certificate validation and hostname checks by " "default. You have to load certificates into the context." @@ -4151,11 +4004,11 @@ msgstr "" "comprobación del nombre de host por defecto. Tiene que cargar los " "certificados en el contexto." -#: ../Doc/library/ssl.rst:2698 +#: ../Doc/library/ssl.rst:2602 msgid "Cipher selection" msgstr "Selección de cifrado" -#: ../Doc/library/ssl.rst:2700 +#: ../Doc/library/ssl.rst:2604 msgid "" "If you have advanced security requirements, fine-tuning of the ciphers " "enabled when negotiating a SSL session is possible through the :meth:" @@ -4177,19 +4030,20 @@ msgstr "" "verificar qué cifrados están habilitados por una lista de cifrado dada, use :" "meth:`SSLContext.get_ciphers` o el comando ``openssl ciphers`` en su sistema." -#: ../Doc/library/ssl.rst:2711 +#: ../Doc/library/ssl.rst:2615 msgid "Multi-processing" msgstr "Multiprocesamiento" -#: ../Doc/library/ssl.rst:2713 +#: ../Doc/library/ssl.rst:2617 +#, fuzzy msgid "" "If using this module as part of a multi-processed application (using, for " "example the :mod:`multiprocessing` or :mod:`concurrent.futures` modules), be " "aware that OpenSSL's internal random number generator does not properly " "handle forked processes. Applications must change the PRNG state of the " "parent process if they use any SSL feature with :func:`os.fork`. Any " -"successful call of :func:`~ssl.RAND_add`, :func:`~ssl.RAND_bytes` or :func:" -"`~ssl.RAND_pseudo_bytes` is sufficient." +"successful call of :func:`~ssl.RAND_add` or :func:`~ssl.RAND_bytes` is " +"sufficient." msgstr "" "Si utiliza este módulo como parte de una aplicación multiproceso " "(utilizando, por ejemplo, los módulos :mod:`multiprocessing` o :mod:" @@ -4200,11 +4054,11 @@ msgstr "" "llamada exitosa de :func:`~ssl.RAND_add`, :func:`~ssl.RAND_bytes` o :func:" "`~ssl.RAND_pseudo_bytes` es suficiente." -#: ../Doc/library/ssl.rst:2725 +#: ../Doc/library/ssl.rst:2629 msgid "TLS 1.3" msgstr "TLS 1.3" -#: ../Doc/library/ssl.rst:2729 +#: ../Doc/library/ssl.rst:2633 msgid "" "The TLS 1.3 protocol behaves slightly differently than previous version of " "TLS/SSL. Some new TLS 1.3 features are not yet available." @@ -4214,7 +4068,7 @@ msgstr "" "versión anterior de TLS/SSL. Algunas de las nuevas características de TLS " "1.3 aún no están disponibles." -#: ../Doc/library/ssl.rst:2732 +#: ../Doc/library/ssl.rst:2636 msgid "" "TLS 1.3 uses a disjunct set of cipher suites. All AES-GCM and ChaCha20 " "cipher suites are enabled by default. The method :meth:`SSLContext." @@ -4226,7 +4080,7 @@ msgstr "" "meth:`SSLContext.set_ciphers` aún no puede habilitar o deshabilitar ningún " "cifrado de TLS 1.3, pero :meth:`SSLContext.get_ciphers` los retorna." -#: ../Doc/library/ssl.rst:2736 +#: ../Doc/library/ssl.rst:2640 msgid "" "Session tickets are no longer sent as part of the initial handshake and are " "handled differently. :attr:`SSLSocket.session` and :class:`SSLSession` are " @@ -4236,7 +4090,7 @@ msgstr "" "manejan de forma diferente. :attr:`SSLSocket.session` y :class:`SSLSession` " "no son compatibles con TLS 1.3." -#: ../Doc/library/ssl.rst:2739 +#: ../Doc/library/ssl.rst:2643 msgid "" "Client-side certificates are also no longer verified during the initial " "handshake. A server can request a certificate at any time. Clients process " @@ -4248,7 +4102,7 @@ msgstr "" "momento. Los clientes procesan las solicitudes de certificados mientras " "envían o reciben datos de la aplicación desde el servidor." -#: ../Doc/library/ssl.rst:2743 +#: ../Doc/library/ssl.rst:2647 msgid "" "TLS 1.3 features like early data, deferred TLS client cert request, " "signature algorithm configuration, and rekeying are not supported yet." @@ -4257,15 +4111,15 @@ msgstr "" "certificado de cliente TLS diferida, la configuración del algoritmo de firma " "y la repetición de claves, aún no son compatibles." -#: ../Doc/library/ssl.rst:2750 +#: ../Doc/library/ssl.rst:2654 msgid "Class :class:`socket.socket`" msgstr "Clase :class:`socket.socket`" -#: ../Doc/library/ssl.rst:2750 +#: ../Doc/library/ssl.rst:2654 msgid "Documentation of underlying :mod:`socket` class" msgstr "Documentación de la clase :mod:`socket` subyacente" -#: ../Doc/library/ssl.rst:2753 +#: ../Doc/library/ssl.rst:2657 msgid "" "`SSL/TLS Strong Encryption: An Introduction `_" @@ -4273,11 +4127,11 @@ msgstr "" "`SSL/TLS Strong Encryption: An Introduction `_" -#: ../Doc/library/ssl.rst:2753 +#: ../Doc/library/ssl.rst:2657 msgid "Intro from the Apache HTTP Server documentation" msgstr "Introducción de la documentación del servidor HTTP Apache" -#: ../Doc/library/ssl.rst:2756 +#: ../Doc/library/ssl.rst:2660 msgid "" ":rfc:`RFC 1422: Privacy Enhancement for Internet Electronic Mail: Part II: " "Certificate-Based Key Management <1422>`" @@ -4285,19 +4139,19 @@ msgstr "" ":rfc:`RFC 1422: Privacy Enhancement for Internet Electronic Mail: Part II: " "Certificate-Based Key Management <1422>`" -#: ../Doc/library/ssl.rst:2756 +#: ../Doc/library/ssl.rst:2660 msgid "Steve Kent" msgstr "Steve Kent" -#: ../Doc/library/ssl.rst:2759 +#: ../Doc/library/ssl.rst:2663 msgid ":rfc:`RFC 4086: Randomness Requirements for Security <4086>`" msgstr ":rfc:`RFC 4086: Randomness Requirements for Security <4086>`" -#: ../Doc/library/ssl.rst:2759 +#: ../Doc/library/ssl.rst:2663 msgid "Donald E., Jeffrey I. Schiller" msgstr "Donald E., Jeffrey I. Schiller" -#: ../Doc/library/ssl.rst:2762 +#: ../Doc/library/ssl.rst:2666 msgid "" ":rfc:`RFC 5280: Internet X.509 Public Key Infrastructure Certificate and " "Certificate Revocation List (CRL) Profile <5280>`" @@ -4305,11 +4159,11 @@ msgstr "" ":rfc:`RFC 5280: Internet X.509 Public Key Infrastructure Certificate and " "Certificate Revocation List (CRL) Profile <5280>`" -#: ../Doc/library/ssl.rst:2762 +#: ../Doc/library/ssl.rst:2666 msgid "D. Cooper" msgstr "D. Cooper" -#: ../Doc/library/ssl.rst:2765 +#: ../Doc/library/ssl.rst:2669 msgid "" ":rfc:`RFC 5246: The Transport Layer Security (TLS) Protocol Version 1.2 " "<5246>`" @@ -4317,19 +4171,19 @@ msgstr "" ":rfc:`RFC 5246: The Transport Layer Security (TLS) Protocol Version 1.2 " "<5246>`" -#: ../Doc/library/ssl.rst:2765 +#: ../Doc/library/ssl.rst:2669 msgid "T. Dierks et. al." msgstr "T. Dierks et. al." -#: ../Doc/library/ssl.rst:2768 +#: ../Doc/library/ssl.rst:2672 msgid ":rfc:`RFC 6066: Transport Layer Security (TLS) Extensions <6066>`" msgstr ":rfc:`RFC 6066: Transport Layer Security (TLS) Extensions <6066>`" -#: ../Doc/library/ssl.rst:2768 +#: ../Doc/library/ssl.rst:2672 msgid "D. Eastlake" msgstr "D. Eastlake" -#: ../Doc/library/ssl.rst:2771 +#: ../Doc/library/ssl.rst:2675 msgid "" "`IANA TLS: Transport Layer Security (TLS) Parameters `_" @@ -4337,11 +4191,11 @@ msgstr "" "`IANA TLS: Transport Layer Security (TLS) Parameters `_" -#: ../Doc/library/ssl.rst:2771 +#: ../Doc/library/ssl.rst:2675 msgid "IANA" msgstr "IANA" -#: ../Doc/library/ssl.rst:2774 +#: ../Doc/library/ssl.rst:2678 msgid "" ":rfc:`RFC 7525: Recommendations for Secure Use of Transport Layer Security " "(TLS) and Datagram Transport Layer Security (DTLS) <7525>`" @@ -4349,11 +4203,11 @@ msgstr "" ":rfc:`RFC 7525: Recommendations for Secure Use of Transport Layer Security " "(TLS) and Datagram Transport Layer Security (DTLS) <7525>`" -#: ../Doc/library/ssl.rst:2774 +#: ../Doc/library/ssl.rst:2678 msgid "IETF" msgstr "IETF" -#: ../Doc/library/ssl.rst:2776 +#: ../Doc/library/ssl.rst:2680 msgid "" "`Mozilla's Server Side TLS recommendations `_" @@ -4361,6 +4215,231 @@ msgstr "" "`Mozilla's Server Side TLS recommendations `_" -#: ../Doc/library/ssl.rst:2777 +#: ../Doc/library/ssl.rst:2681 msgid "Mozilla" msgstr "Mozilla" + +#: ../Doc/library/ssl.rst:12 +msgid "OpenSSL" +msgstr "" + +#: ../Doc/library/ssl.rst:12 +msgid "(use in module ssl)" +msgstr "" + +#: ../Doc/library/ssl.rst:14 +#, fuzzy +msgid "TLS" +msgstr "TLS 1.3" + +#: ../Doc/library/ssl.rst:14 +#, fuzzy +msgid "SSL" +msgstr "*SSLv3*" + +#: ../Doc/library/ssl.rst:14 +msgid "Transport Layer Security" +msgstr "" + +#: ../Doc/library/ssl.rst:14 +msgid "Secure Sockets Layer" +msgstr "" + +#: ../Doc/library/ssl.rst:1990 +#, fuzzy +msgid "certificates" +msgstr "Certificados" + +#: ../Doc/library/ssl.rst:1992 +#, fuzzy +msgid "X509 certificate" +msgstr "Certificados" + +# el término en inglés "hostname matching" me parece mucho mas claro que +# cualquier traducción al español ("coincidencia de nombres de anfitrión" ?) +#~ msgid "" +#~ "Since Python 3.2 and 2.7.9, it is recommended to use the :meth:" +#~ "`SSLContext.wrap_socket` of an :class:`SSLContext` instance to wrap " +#~ "sockets as :class:`SSLSocket` objects. The helper functions :func:" +#~ "`create_default_context` returns a new context with secure default " +#~ "settings. The old :func:`wrap_socket` function is deprecated since it is " +#~ "both inefficient and has no support for server name indication (SNI) and " +#~ "hostname matching." +#~ msgstr "" +#~ "Desde Python 3.2 y 2.7.9, se recomienda utilizar :meth:`SSLContext." +#~ "wrap_socket` de una instancia de :class:`SSLContext` para envolver " +#~ "sockets como objetos :class:`SSLSocket`. La función utilitaria :func:" +#~ "`create_default_context` retorna un nuevo contexto con ajustes por " +#~ "defecto seguros. La vieja función :func:`wrap_socket` es obsoleta debido " +#~ "a que es ineficiente y que no tiene soporte para la indicación de nombre " +#~ "de servidor (SNI) ni hostname matching." + +#~ msgid "" +#~ "Return (bytes, is_cryptographic): bytes are *num* pseudo-random bytes, " +#~ "is_cryptographic is ``True`` if the bytes generated are cryptographically " +#~ "strong. Raises an :class:`SSLError` if the operation is not supported by " +#~ "the current RAND method." +#~ msgstr "" +#~ "Retorna (bytes, is_cryptographic): bytes es *num* bytes pseudoaleatorios, " +#~ "is_cryptographic es ``True`` si los bytes generados son " +#~ "criptográficamente fuertes. Lanza un :class:`SSLError` si la operación no " +#~ "es soportada por el método RAND actual." + +#~ msgid "" +#~ "Generated pseudo-random byte sequences will be unique if they are of " +#~ "sufficient length, but are not necessarily unpredictable. They can be " +#~ "used for non-cryptographic purposes and for certain purposes in " +#~ "cryptographic protocols, but usually not for key generation etc." +#~ msgstr "" +#~ "Las secuencias de bytes pseudoaleatorios generadas serán únicas si tienen " +#~ "una longitud suficiente, pero no son necesariamente impredecibles. Pueden " +#~ "utilizarse para fines no criptográficos y para ciertos fines en " +#~ "protocolos criptográficos, pero normalmente no para la generación de " +#~ "claves, etc." + +#~ msgid "" +#~ "OpenSSL has deprecated :func:`ssl.RAND_pseudo_bytes`, use :func:`ssl." +#~ "RAND_bytes` instead." +#~ msgstr "" +#~ "OpenSSL a dejado obsoleta :func:`ssl.RAND_pseudo_bytes`, utilice :func:" +#~ "`ssl.RAND_bytes` en su lugar." + +#~ msgid "" +#~ "Verify that *cert* (in decoded format as returned by :meth:`SSLSocket." +#~ "getpeercert`) matches the given *hostname*. The rules applied are those " +#~ "for checking the identity of HTTPS servers as outlined in :rfc:`2818`, :" +#~ "rfc:`5280` and :rfc:`6125`. In addition to HTTPS, this function should " +#~ "be suitable for checking the identity of servers in various SSL-based " +#~ "protocols such as FTPS, IMAPS, POPS and others." +#~ msgstr "" +#~ "Verifica que *cert* (en formato decodificado tal y como es retornado por :" +#~ "meth:`SSLSocket.getpeercert`) coincide con el *hostname* dado. Las reglas " +#~ "aplicadas son las de comprobación de la identidad de los servidores " +#~ "HTTPS, como se indica en :rfc:`2818`, :rfc:`5280` y :rfc:`6125`. Además " +#~ "de HTTPS, esta función debería ser adecuada para comprobar la identidad " +#~ "de servidores en varios protocolos basados en SSL como FTPS, IMAPS, POPS " +#~ "y otros." + +#~ msgid "" +#~ ":exc:`CertificateError` is raised on failure. On success, the function " +#~ "returns nothing::" +#~ msgstr "" +#~ ":exc:`CertificateError` es lanzado en caso de error. En caso de éxito, la " +#~ "función no retorna nada::" + +#~ msgid "" +#~ "The function now follows :rfc:`6125`, section 6.4.3 and does neither " +#~ "match multiple wildcards (e.g. ``*.*.com`` or ``*a*.example.org``) nor a " +#~ "wildcard inside an internationalized domain names (IDN) fragment. IDN A-" +#~ "labels such as ``www*.xn--pthon-kva.org`` are still supported, but ``x*." +#~ "python.org`` no longer matches ``xn--tda.python.org``." +#~ msgstr "" +#~ "La función ahora sigue :rfc:`6125` sección 6.4.3 y no soporta múltiples " +#~ "caracteres comodín (por ejemplo ``*.*.com`` o ``*a*.example.org``) ni " +#~ "tampoco un carácter comodín dentro de un fragmento de un nombre de " +#~ "dominio internacionalizado (IDN). Etiquetas A de IDN tales como ``www*." +#~ "xn--pthon-kva.org`` son todavía soportadas, pero ``x*.python.org`` ya no " +#~ "corresponde con ``xn--tda.python.org``." + +#~ msgid "" +#~ "Matching of IP addresses, when present in the subjectAltName field of the " +#~ "certificate, is now supported." +#~ msgstr "" +#~ "Ahora se admite la coincidencia de direcciones IP cuando están presentes " +#~ "en el campo subjectAltName del certificado." + +#~ msgid "" +#~ "The function is no longer used to TLS connections. Hostname matching is " +#~ "now performed by OpenSSL." +#~ msgstr "" +#~ "La función ya no se utiliza para las conexiones TLS. La coincidencia de " +#~ "hostname es ahora realizada por OpenSSL." + +#~ msgid "" +#~ "Allow wildcard when it is the leftmost and the only character in that " +#~ "segment. Partial wildcards like ``www*.example.com`` are no longer " +#~ "supported." +#~ msgstr "" +#~ "Se permite el carácter comodín cuando es el carácter más a la izquierda y " +#~ "el único en ese segmento. Ya no se admiten comodines parciales como " +#~ "``www*.example.com`` ." + +#~ msgid "" +#~ "Takes an instance ``sock`` of :class:`socket.socket`, and returns an " +#~ "instance of :class:`ssl.SSLSocket`, a subtype of :class:`socket.socket`, " +#~ "which wraps the underlying socket in an SSL context. ``sock`` must be a :" +#~ "data:`~socket.SOCK_STREAM` socket; other socket types are unsupported." +#~ msgstr "" +#~ "Toma una instancia ``sock`` de :class:`socket.socket`, y retorna una " +#~ "instancia de :class:`ssl.SSLSocket`, un subtipo de :class:`socket." +#~ "socket`, que envuelve el socket de base en un contexto SSL. ``sock`` debe " +#~ "ser un socket :data:`~socket.SOCK_STREAM`; otros tipos de socket no son " +#~ "compatibles." + +#~ msgid "" +#~ "Internally, function creates a :class:`SSLContext` with protocol " +#~ "*ssl_version* and :attr:`SSLContext.options` set to *cert_reqs*. If " +#~ "parameters *keyfile*, *certfile*, *ca_certs* or *ciphers* are set, then " +#~ "the values are passed to :meth:`SSLContext.load_cert_chain`, :meth:" +#~ "`SSLContext.load_verify_locations`, and :meth:`SSLContext.set_ciphers`." +#~ msgstr "" +#~ "Internamente, la función crea un :class:`SSLContext` con un protocolo " +#~ "*ssl_version* y :attr:`SSLContext.options` establecido a *cert_reqs*. Si " +#~ "los parámetros *keyfile*, *certfile*, *ca_certs* o *ciphers* son " +#~ "establecidos, entonces los valores son pasados a :meth:`SSLContext." +#~ "load_cert_chain`, :meth:`SSLContext.load_verify_locations`, y :meth:" +#~ "`SSLContext.set_ciphers`." + +#~ msgid "" +#~ "The arguments *server_side*, *do_handshake_on_connect*, and " +#~ "*suppress_ragged_eofs* have the same meaning as :meth:`SSLContext." +#~ "wrap_socket`." +#~ msgstr "" +#~ "Los argumentos *server_side*, *do_handshake_on_connect*, y " +#~ "*supress_ragged_eofs* tienen el mismo significado que :meth:`SSLContext." +#~ "wrap_socket`." + +#~ msgid "" +#~ "Since Python 3.2 and 2.7.9, it is recommended to use the :meth:" +#~ "`SSLContext.wrap_socket` instead of :func:`wrap_socket`. The top-level " +#~ "function is limited and creates an insecure client socket without server " +#~ "name indication or hostname matching." +#~ msgstr "" +#~ "Desde Python 3.2 y 2.7.9, se recomienda usar :meth:`SSLContext." +#~ "wrap_socket` en lugar de :func:`wrap_socket`. La función de alto nivel " +#~ "tiene limitaciones y crea un socket cliente no seguro sin indicación de " +#~ "nombre de servidor ni hostname matching." + +#~ msgid "Selects SSL version 2 as the channel encryption protocol." +#~ msgstr "Selecciona la versión 2 de SSL como protocolo de cifrado del canal." + +#~ msgid "" +#~ "This protocol is not available if OpenSSL is compiled with the ``no-" +#~ "ssl2`` option." +#~ msgstr "" +#~ "Este protocolo no está disponible si se compila OpenSSL con la opción " +#~ "``no-ssl2``." + +#~ msgid "SSL version 2 is insecure. Its use is highly discouraged." +#~ msgstr "La versión 2 de SSL es insegura. Su uso es muy desaconsejado." + +#~ msgid "OpenSSL has removed support for SSLv2." +#~ msgstr "OpenSSL a eliminado el soporte para SSLv2." + +#~ msgid "" +#~ "To validate a certificate for a particular service, you can use the :func:" +#~ "`match_hostname` function." +#~ msgstr "" +#~ "Para validar un certificado para un servicio concreto, puede utilizar la " +#~ "función :func:`match_hostname`." + +#~ msgid "" +#~ "The :class:`SSLContext` object this SSL socket is tied to. If the SSL " +#~ "socket was created using the deprecated :func:`wrap_socket` function " +#~ "(rather than :meth:`SSLContext.wrap_socket`), this is a custom context " +#~ "object created for this SSL socket." +#~ msgstr "" +#~ "El objeto :class:`SSLContext` al que está vinculado este socket SSL. Si " +#~ "el socket SSL fue creado usando la función obsoleta :func:`wrap_socket` " +#~ "(en lugar de :meth:`SSLContext.wrap_socket`), este es un objeto de " +#~ "contexto personalizado creado para este socket SSL." diff --git a/library/stat.po b/library/stat.po index 59607f78c8..e29198e408 100644 --- a/library/stat.po +++ b/library/stat.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-16 21:42+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-10-28 08:29-0400\n" "Last-Translator: \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" -"Generated-By: Babel 2.9.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/stat.rst:2 msgid ":mod:`stat` --- Interpreting :func:`~os.stat` results" @@ -30,11 +30,12 @@ msgid "**Source code:** :source:`Lib/stat.py`" msgstr "**Código fuente:** :source:`Lib/stat.py`" #: ../Doc/library/stat.rst:14 +#, fuzzy msgid "" "The :mod:`stat` module defines constants and functions for interpreting the " "results of :func:`os.stat`, :func:`os.fstat` and :func:`os.lstat` (if they " -"exist). For complete details about the :c:func:`stat`, :c:func:`fstat` and :" -"c:func:`lstat` calls, consult the documentation for your system." +"exist). For complete details about the :c:func:`stat`, :c:func:`!fstat` " +"and :c:func:`!lstat` calls, consult the documentation for your system." msgstr "" "El módulo :mod:`stat` define constantes y funciones para interpretar los " "resultados de :func:`os.stat`, :func:`os.fstat` y :func:`os.lstat` (si " @@ -119,16 +120,18 @@ msgstr "" "soporten)." #: ../Doc/library/stat.rst:91 +#, fuzzy msgid "" "Return the portion of the file's mode that describes the file type (used by " -"the :func:`S_IS\\*` functions above)." +"the :func:`!S_IS\\*` functions above)." msgstr "" "Retorna la porción del modo del archivo que describe el tipo de archivo " "(usado por las funciones :func:`S_IS\\*` de más arriba)." #: ../Doc/library/stat.rst:94 +#, fuzzy msgid "" -"Normally, you would use the :func:`os.path.is\\*` functions for testing the " +"Normally, you would use the :func:`!os.path.is\\*` functions for testing the " "type of a file; the functions here are useful when you are doing multiple " "tests of the same file and wish to avoid the overhead of the :c:func:`stat` " "system call for each test. These are also useful when checking for " diff --git a/library/statistics.po b/library/statistics.po index cbafd81ddf..4edec1e982 100644 --- a/library/statistics.po +++ b/library/statistics.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-01-20 10:50-0300\n" "Last-Translator: Francisco Mora \n" -"Language-Team: python-doc-es\n" "Language: es_ES\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/statistics.rst:2 msgid ":mod:`statistics` --- Mathematical statistics functions" @@ -39,9 +38,10 @@ msgstr "" "datos numéricos (de tipo :class:`~numbers.Real`)." #: ../Doc/library/statistics.rst:24 +#, fuzzy msgid "" "The module is not intended to be a competitor to third-party libraries such " -"as `NumPy `_, `SciPy `_, or " +"as `NumPy `_, `SciPy `_, or " "proprietary full-featured statistics packages aimed at professional " "statisticians such as Minitab, SAS and Matlab. It is aimed at the level of " "graphing and scientific calculators." @@ -260,7 +260,8 @@ msgid ":func:`correlation`" msgstr ":func:`correlation`" #: ../Doc/library/statistics.rst:107 -msgid "Pearson's correlation coefficient for two variables." +#, fuzzy +msgid "Pearson and Spearman's correlation coefficients." msgstr "Coeficiente de correlación de Pearson para dos variables." #: ../Doc/library/statistics.rst:108 @@ -761,7 +762,7 @@ msgid "Raises :exc:`StatisticsError` if *data* is empty." msgstr "Lanza una excepción :exc:`StatisticsError` si *data* está vacío." #: ../Doc/library/statistics.rst:461 ../Doc/library/statistics.rst:531 -#: ../Doc/library/statistics.rst:635 ../Doc/library/statistics.rst:663 +#: ../Doc/library/statistics.rst:635 msgid "Examples:" msgstr "Ejemplos:" @@ -1001,13 +1002,12 @@ msgstr "" "se lanza :exc:`StatisticsError`." #: ../Doc/library/statistics.rst:653 +#, fuzzy msgid "" "Return the `Pearson's correlation coefficient `_ for two inputs. Pearson's correlation " "coefficient *r* takes values between -1 and +1. It measures the strength and " -"direction of the linear relationship, where +1 means very strong, positive " -"linear relationship, -1 very strong, negative linear relationship, and 0 no " -"linear relationship." +"direction of a linear relationship." msgstr "" "Retorna el `coeficiente de correlación de Pearson `_ para dos entradas. El coeficiente de " @@ -1016,7 +1016,24 @@ msgstr "" "positiva y lineal, -1 una relación muy fuerte, negativa y lineal, y 0 una " "relación no lineal." -#: ../Doc/library/statistics.rst:660 +#: ../Doc/library/statistics.rst:659 +#, python-format +msgid "" +"If *method* is \"ranked\", computes `Spearman's rank correlation coefficient " +"`_ " +"for two inputs. The data is replaced by ranks. Ties are averaged so that " +"equal values receive the same rank. The resulting coefficient measures the " +"strength of a monotonic relationship." +msgstr "" + +#: ../Doc/library/statistics.rst:665 +msgid "" +"Spearman's correlation coefficient is appropriate for ordinal data or for " +"continuous data that doesn't meet the linear proportion requirement for " +"Pearson's correlation coefficient." +msgstr "" + +#: ../Doc/library/statistics.rst:669 msgid "" "Both inputs must be of the same length (no less than two), and need not to " "be constant, otherwise :exc:`StatisticsError` is raised." @@ -1024,7 +1041,17 @@ msgstr "" "Ambas entradas deben ser del mismo largo (no menor a dos), y no necesitan " "ser constantes, de lo contrario se lanza :exc:`StatisticsError`." -#: ../Doc/library/statistics.rst:678 +#: ../Doc/library/statistics.rst:672 +msgid "" +"Example with `Kepler's laws of planetary motion `_:" +msgstr "" + +#: ../Doc/library/statistics.rst:699 +msgid "Added support for Spearman's rank correlation coefficient." +msgstr "" + +#: ../Doc/library/statistics.rst:704 msgid "" "Return the slope and intercept of `simple linear regression `_ parameters estimated using " @@ -1038,11 +1065,11 @@ msgstr "" "describe la relación entre la variable independiente *x* y la variable " "dependiente *y* en términos de esta función lineal:" -#: ../Doc/library/statistics.rst:684 +#: ../Doc/library/statistics.rst:710 msgid "*y = slope \\* x + intercept + noise*" msgstr "*y = slope \\* x + intercept + noise*" -#: ../Doc/library/statistics.rst:686 +#: ../Doc/library/statistics.rst:712 msgid "" "where ``slope`` and ``intercept`` are the regression parameters that are " "estimated, and ``noise`` represents the variability of the data that was not " @@ -1054,7 +1081,7 @@ msgstr "" "explicado por la regresión lineal (es igual a la diferencia entre los " "valores predichos y reales de la variable dependiente)." -#: ../Doc/library/statistics.rst:692 +#: ../Doc/library/statistics.rst:718 msgid "" "Both inputs must be of the same length (no less than two), and the " "independent variable *x* cannot be constant; otherwise a :exc:" @@ -1064,7 +1091,7 @@ msgstr "" "independiente *x* no puede ser constante, de lo contrario se lanza :exc:" "`StatisticsError`." -#: ../Doc/library/statistics.rst:696 +#: ../Doc/library/statistics.rst:722 msgid "" "For example, we can use the `release dates of the Monty Python films " "`_ to predict the " @@ -1076,7 +1103,7 @@ msgstr "" "predecir el número acumulativo de películas de Monty Python que se habría " "producido en 2019 asumiendo que hubiesen mantenido el ritmo:" -#: ../Doc/library/statistics.rst:710 +#: ../Doc/library/statistics.rst:736 msgid "" "If *proportional* is true, the independent variable *x* and the dependent " "variable *y* are assumed to be directly proportional. The data is fit to a " @@ -1088,35 +1115,35 @@ msgstr "" "ajustan a una recta que pasa por el origen. Como la *intercepción* siempre " "será 0,0, la función lineal subyacente se simplifica a:" -#: ../Doc/library/statistics.rst:716 +#: ../Doc/library/statistics.rst:742 #, fuzzy msgid "*y = slope \\* x + noise*" msgstr "*y = slope \\* x + intercept + noise*" -#: ../Doc/library/statistics.rst:720 +#: ../Doc/library/statistics.rst:746 #, fuzzy msgid "Added support for *proportional*." msgstr "Soporte añadido a *weights*." -#: ../Doc/library/statistics.rst:724 +#: ../Doc/library/statistics.rst:750 msgid "Exceptions" msgstr "Excepciones" -#: ../Doc/library/statistics.rst:726 +#: ../Doc/library/statistics.rst:752 msgid "A single exception is defined:" msgstr "Se define una sola excepción:" -#: ../Doc/library/statistics.rst:730 +#: ../Doc/library/statistics.rst:756 msgid "Subclass of :exc:`ValueError` for statistics-related exceptions." msgstr "" "Subclase de :exc:`ValueError` para excepciones relacionadas con la " "estadística." -#: ../Doc/library/statistics.rst:734 +#: ../Doc/library/statistics.rst:760 msgid ":class:`NormalDist` objects" msgstr "Objetos :class:`NormalDist`" -#: ../Doc/library/statistics.rst:736 +#: ../Doc/library/statistics.rst:762 msgid "" ":class:`NormalDist` is a tool for creating and manipulating normal " "distributions of a `random variable `_. Esta clase gestiona la desviación típica " "y la media de un conjunto de observaciones como una sola entidad." -#: ../Doc/library/statistics.rst:742 +#: ../Doc/library/statistics.rst:768 msgid "" "Normal distributions arise from the `Central Limit Theorem `_ and have a wide range of " @@ -1138,7 +1165,7 @@ msgstr "" "es.wikipedia.org/wiki/Teorema_del_l%C3%ADmite_central>`_ y tienen una amplia " "gama de aplicaciones en estadística." -#: ../Doc/library/statistics.rst:748 +#: ../Doc/library/statistics.rst:774 msgid "" "Returns a new *NormalDist* object where *mu* represents the `arithmetic mean " "`_ and *sigma* represents the " @@ -1149,11 +1176,11 @@ msgstr "" "representa la `desviación típica `_." -#: ../Doc/library/statistics.rst:753 +#: ../Doc/library/statistics.rst:779 msgid "If *sigma* is negative, raises :exc:`StatisticsError`." msgstr "Se lanza una excepción :exc:`StatisticsError` si *sigma* es negativo." -#: ../Doc/library/statistics.rst:757 +#: ../Doc/library/statistics.rst:783 msgid "" "A read-only property for the `arithmetic mean `_ of a normal distribution." @@ -1161,7 +1188,7 @@ msgstr "" "Una propiedad de solo lectura para la `media aritmética `_ de una distribución normal." -#: ../Doc/library/statistics.rst:763 +#: ../Doc/library/statistics.rst:789 msgid "" "A read-only property for the `median `_ of a normal distribution." @@ -1169,7 +1196,7 @@ msgstr "" "Una propiedad de solo lectura para la `mediana `_ de una distribución normal." -#: ../Doc/library/statistics.rst:769 +#: ../Doc/library/statistics.rst:795 msgid "" "A read-only property for the `mode `_ of a normal distribution." @@ -1177,7 +1204,7 @@ msgstr "" "Una propiedad de solo lectura para la `moda `_ de una distribución normal." -#: ../Doc/library/statistics.rst:775 +#: ../Doc/library/statistics.rst:801 msgid "" "A read-only property for the `standard deviation `_ of a normal distribution." @@ -1185,7 +1212,7 @@ msgstr "" "Una propiedad de solo lectura para la `desviación típica `_ de una distribución normal." -#: ../Doc/library/statistics.rst:781 +#: ../Doc/library/statistics.rst:807 msgid "" "A read-only property for the `variance `_ of a normal distribution. Equal to the square of the standard " @@ -1195,7 +1222,7 @@ msgstr "" "wiki/Varianza>`_ de una distribución normal. Es igual al cuadrado de la " "desviación típica." -#: ../Doc/library/statistics.rst:787 +#: ../Doc/library/statistics.rst:813 msgid "" "Makes a normal distribution instance with *mu* and *sigma* parameters " "estimated from the *data* using :func:`fmean` and :func:`stdev`." @@ -1203,7 +1230,7 @@ msgstr "" "Crea una instancia de distribución normal con los parámetros *mu* y *sigma* " "estimados a partir de *data* usando :func:`fmean` y :func:`stdev`." -#: ../Doc/library/statistics.rst:790 +#: ../Doc/library/statistics.rst:816 msgid "" "The *data* can be any :term:`iterable` and should consist of values that can " "be converted to type :class:`float`. If *data* does not contain at least " @@ -1217,7 +1244,7 @@ msgstr "" "a que se necesita al menos un punto para estimar un valor central y al menos " "dos puntos para estimar la dispersión." -#: ../Doc/library/statistics.rst:798 +#: ../Doc/library/statistics.rst:824 msgid "" "Generates *n* random samples for a given mean and standard deviation. " "Returns a :class:`list` of :class:`float` values." @@ -1225,7 +1252,7 @@ msgstr "" "Genera *n* muestras aleatorias para una media y una desviación típica " "proporcionadas. Retorna un objeto :class:`list` de valores :class:`float`." -#: ../Doc/library/statistics.rst:801 +#: ../Doc/library/statistics.rst:827 msgid "" "If *seed* is given, creates a new instance of the underlying random number " "generator. This is useful for creating reproducible results, even in a " @@ -1236,7 +1263,7 @@ msgstr "" "producir resultados reproducibles incluso en un contexto de paralelismo con " "múltiples hilos." -#: ../Doc/library/statistics.rst:807 +#: ../Doc/library/statistics.rst:833 msgid "" "Using a `probability density function (pdf) `_, compute the relative likelihood that a " @@ -1250,7 +1277,7 @@ msgstr "" "valor *x* proporcionado. Matemáticamente, esto corresponde al límite de la " "razón ``P(x <= X < x+dx) / dx`` cuando *dx* tiende a cero." -#: ../Doc/library/statistics.rst:813 +#: ../Doc/library/statistics.rst:839 #, fuzzy msgid "" "The relative likelihood is computed as the probability of a sample occurring " @@ -1263,7 +1290,7 @@ msgstr "" "intervalo (de ahí el término \"densidad\"). Como la verosimilitud es " "relativa a los otros puntos, su valor puede ser mayor que `1.0`." -#: ../Doc/library/statistics.rst:820 +#: ../Doc/library/statistics.rst:846 msgid "" "Using a `cumulative distribution function (cdf) `_, compute the probability that a " @@ -1275,7 +1302,7 @@ msgstr "" "probabilidad de que una variable aleatoria *X* sea menor o igual que *x*. " "Matemáticamente, se escribe ``P(X <= x)``." -#: ../Doc/library/statistics.rst:827 +#: ../Doc/library/statistics.rst:853 #, fuzzy msgid "" "Compute the inverse cumulative distribution function, also known as the " @@ -1290,7 +1317,7 @@ msgstr "" "com/inverse-distribution-function/>`_. Matemáticamente, se escribe ``x : P(X " "<= x) = p``." -#: ../Doc/library/statistics.rst:833 +#: ../Doc/library/statistics.rst:859 msgid "" "Finds the value *x* of the random variable *X* such that the probability of " "the variable being less than or equal to that value equals the given " @@ -1300,7 +1327,7 @@ msgstr "" "que la variable sea menor o igual a este valor es igual a la probabilidad " "*p* dada." -#: ../Doc/library/statistics.rst:839 +#: ../Doc/library/statistics.rst:865 msgid "" "Measures the agreement between two normal probability distributions. Returns " "a value between 0.0 and 1.0 giving `the overlapping area for the two " @@ -1311,7 +1338,7 @@ msgstr "" "funciones de densidad de probabilidad `_." -#: ../Doc/library/statistics.rst:846 +#: ../Doc/library/statistics.rst:872 msgid "" "Divide the normal distribution into *n* continuous intervals with equal " "probability. Returns a list of (n - 1) cut points separating the intervals." @@ -1319,7 +1346,7 @@ msgstr "" "Divide la distribución normal en *n* intervalos continuos equiprobables. " "Retorna una lista de (n - 1) cuantiles que separan los intervalos." -#: ../Doc/library/statistics.rst:850 +#: ../Doc/library/statistics.rst:876 msgid "" "Set *n* to 4 for quartiles (the default). Set *n* to 10 for deciles. Set " "*n* to 100 for percentiles which gives the 99 cuts points that separate the " @@ -1329,7 +1356,7 @@ msgstr "" "10 para obtener los deciles y en 100 para obtener los percentiles (lo que " "produce 99 límites que separan los datos en 100 grupos del mismo tamaño)." -#: ../Doc/library/statistics.rst:856 +#: ../Doc/library/statistics.rst:882 msgid "" "Compute the `Standard Score `_ describing *x* in terms of the number of standard " @@ -1341,7 +1368,7 @@ msgstr "" "desviaciones estándar sobre o bajo la media de una distribución normal: ``(x " "- mean) / stdev``." -#: ../Doc/library/statistics.rst:864 +#: ../Doc/library/statistics.rst:890 msgid "" "Instances of :class:`NormalDist` support addition, subtraction, " "multiplication and division by a constant. These operations are used for " @@ -1351,7 +1378,7 @@ msgstr "" "multiplicación y división por una constante. Estas operaciones se pueden " "utilizar para traducir o escalar, por ejemplo:" -#: ../Doc/library/statistics.rst:874 +#: ../Doc/library/statistics.rst:900 msgid "" "Dividing a constant by an instance of :class:`NormalDist` is not supported " "because the result wouldn't be normally distributed." @@ -1359,7 +1386,7 @@ msgstr "" "No se admite la división de una constante entre una instancia de :class:" "`NormalDist` debido a que el resultado no sería una distribución normal." -#: ../Doc/library/statistics.rst:877 +#: ../Doc/library/statistics.rst:903 msgid "" "Since normal distributions arise from additive effects of independent " "variables, it is possible to `add and subtract two independent normally " @@ -1373,17 +1400,24 @@ msgstr "" "Sum_of_normally_distributed_random_variables>`_ representadas por instancias " "de :class:`NormalDist`. Por ejemplo :" -#: ../Doc/library/statistics.rst:897 +#: ../Doc/library/statistics.rst:923 msgid ":class:`NormalDist` Examples and Recipes" msgstr "Ejemplos de uso de :class:`NormalDist`" -#: ../Doc/library/statistics.rst:899 +#: ../Doc/library/statistics.rst:927 +#, fuzzy +msgid "Classic probability problems" +msgstr "" +":class:`NormalDist` permite resolver fácilmente problemas probabilísticos " +"clásicos." + +#: ../Doc/library/statistics.rst:929 msgid ":class:`NormalDist` readily solves classic probability problems." msgstr "" ":class:`NormalDist` permite resolver fácilmente problemas probabilísticos " "clásicos." -#: ../Doc/library/statistics.rst:901 +#: ../Doc/library/statistics.rst:931 msgid "" "For example, given `historical data for SAT exams `_ showing that scores are " @@ -1397,7 +1431,7 @@ msgstr "" "determinar el porcentaje de estudiantes con puntuaciones entre 1100 y 1200, " "redondeado al número entero más cercano:" -#: ../Doc/library/statistics.rst:914 +#: ../Doc/library/statistics.rst:944 msgid "" "Find the `quartiles `_ and `deciles " "`_ for the SAT scores:" @@ -1406,7 +1440,11 @@ msgstr "" "`deciles `_ de las " "puntuaciones del SAT:" -#: ../Doc/library/statistics.rst:924 +#: ../Doc/library/statistics.rst:956 +msgid "Monte Carlo inputs for simulations" +msgstr "" + +#: ../Doc/library/statistics.rst:958 msgid "" "To estimate the distribution for a model than isn't easy to solve " "analytically, :class:`NormalDist` can generate input samples for a `Monte " @@ -1417,7 +1455,11 @@ msgstr "" "entrada para una `simulación utilizando el método Montecarlo `_:" -#: ../Doc/library/statistics.rst:940 +#: ../Doc/library/statistics.rst:975 +msgid "Approximating binomial distributions" +msgstr "" + +#: ../Doc/library/statistics.rst:977 #, fuzzy msgid "" "Normal distributions can be used to approximate `Binomial distributions " @@ -1429,7 +1471,7 @@ msgstr "" "BinomialDistribution.html>`_ cuando el tamaño de la muestra es grande y la " "probabilidad de un ensayo exitoso es cercana al 50%." -#: ../Doc/library/statistics.rst:945 +#: ../Doc/library/statistics.rst:982 #, python-format msgid "" "For example, an open source conference has 750 attendees and two rooms with " @@ -1446,13 +1488,17 @@ msgstr "" "hayan cambiado, ¿cuál es la probabilidad de que la sala de Python permanezca " "por debajo de su capacidad máxima?" -#: ../Doc/library/statistics.rst:976 +#: ../Doc/library/statistics.rst:1016 +msgid "Naive bayesian classifier" +msgstr "" + +#: ../Doc/library/statistics.rst:1018 msgid "Normal distributions commonly arise in machine learning problems." msgstr "" "Las distribuciones normales a menudo están involucradas en el aprendizaje " "automático." -#: ../Doc/library/statistics.rst:978 +#: ../Doc/library/statistics.rst:1020 #, fuzzy msgid "" "Wikipedia has a `nice example of a Naive Bayesian Classifier `_ of being male or female, we compute the posterior as " @@ -1496,7 +1542,7 @@ msgstr "" "probabilidad a posteriori como el producto de la probabilidad a priori y la " "verosimilitud de las diferentes medidas dado el género:" -#: ../Doc/library/statistics.rst:1020 +#: ../Doc/library/statistics.rst:1062 msgid "" "The final prediction goes to the largest posterior. This is known as the " "`maximum a posteriori `_ o MAP:" + +#: ../Doc/library/statistics.rst:1073 +msgid "Kernel density estimation" +msgstr "" + +#: ../Doc/library/statistics.rst:1075 +msgid "" +"It is possible to estimate a continuous probability density function from a " +"fixed number of discrete samples." +msgstr "" + +#: ../Doc/library/statistics.rst:1078 +msgid "" +"The basic idea is to smooth the data using `a kernel function such as a " +"normal distribution, triangular distribution, or uniform distribution " +"`_. The degree of " +"smoothing is controlled by a single parameter, ``h``, representing the " +"variance of the kernel function." +msgstr "" + +#: ../Doc/library/statistics.rst:1097 +msgid "" +"`Wikipedia has an example `_ where we can use the ``kde_normal()`` " +"recipe to generate and plot a probability density function estimated from a " +"small sample:" +msgstr "" + +#: ../Doc/library/statistics.rst:1109 +msgid "The points in ``xarr`` and ``yarr`` can be used to make a PDF plot:" +msgstr "" + +msgid "Scatter plot of the estimated probability density function." +msgstr "" diff --git a/library/stdtypes.po b/library/stdtypes.po index dfeedffaf3..0afec61234 100755 --- a/library/stdtypes.po +++ b/library/stdtypes.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-12-05 11:32-0600\n" "Last-Translator: José Luis Salgado Banda\n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/stdtypes.rst:8 msgid "Built-in Types" @@ -84,11 +83,12 @@ msgstr "" "más adelante." #: ../Doc/library/stdtypes.rst:46 +#, fuzzy msgid "" "By default, an object is considered true unless its class defines either a :" -"meth:`__bool__` method that returns ``False`` or a :meth:`__len__` method " -"that returns zero, when called with the object. [1]_ Here are most of the " -"built-in objects considered false:" +"meth:`~object.__bool__` method that returns ``False`` or a :meth:`__len__` " +"method that returns zero, when called with the object. [1]_ Here are most " +"of the built-in objects considered false:" msgstr "" "Por defecto, un objeto se considera verdadero a no ser que su clase defina o " "bien un método :meth:`__bool__` que retorna ``False`` o un método :meth:" @@ -97,7 +97,8 @@ msgstr "" "falsos:" #: ../Doc/library/stdtypes.rst:55 -msgid "constants defined to be false: ``None`` and ``False``." +#, fuzzy +msgid "constants defined to be false: ``None`` and ``False``" msgstr "constantes definidas para tener valor falso: ``None`` y ``False``." #: ../Doc/library/stdtypes.rst:57 @@ -140,22 +141,22 @@ msgstr "" "Estas son las operaciones booleanas, ordenadas de menor a mayor prioridad:" #: ../Doc/library/stdtypes.rst:85 ../Doc/library/stdtypes.rst:143 -#: ../Doc/library/stdtypes.rst:275 ../Doc/library/stdtypes.rst:364 -#: ../Doc/library/stdtypes.rst:414 ../Doc/library/stdtypes.rst:921 -#: ../Doc/library/stdtypes.rst:1126 +#: ../Doc/library/stdtypes.rst:275 ../Doc/library/stdtypes.rst:365 +#: ../Doc/library/stdtypes.rst:415 ../Doc/library/stdtypes.rst:963 +#: ../Doc/library/stdtypes.rst:1168 msgid "Operation" msgstr "Operación" #: ../Doc/library/stdtypes.rst:85 ../Doc/library/stdtypes.rst:275 -#: ../Doc/library/stdtypes.rst:364 ../Doc/library/stdtypes.rst:414 -#: ../Doc/library/stdtypes.rst:921 ../Doc/library/stdtypes.rst:1126 +#: ../Doc/library/stdtypes.rst:365 ../Doc/library/stdtypes.rst:415 +#: ../Doc/library/stdtypes.rst:963 ../Doc/library/stdtypes.rst:1168 msgid "Result" msgstr "Resultado" #: ../Doc/library/stdtypes.rst:85 ../Doc/library/stdtypes.rst:275 -#: ../Doc/library/stdtypes.rst:414 ../Doc/library/stdtypes.rst:921 -#: ../Doc/library/stdtypes.rst:1126 ../Doc/library/stdtypes.rst:2365 -#: ../Doc/library/stdtypes.rst:3577 +#: ../Doc/library/stdtypes.rst:415 ../Doc/library/stdtypes.rst:963 +#: ../Doc/library/stdtypes.rst:1168 ../Doc/library/stdtypes.rst:2418 +#: ../Doc/library/stdtypes.rst:3636 msgid "Notes" msgstr "Notas" @@ -164,13 +165,13 @@ msgid "``x or y``" msgstr "``x or y``" #: ../Doc/library/stdtypes.rst:87 -msgid "if *x* is false, then *y*, else *x*" -msgstr "si *x* es falso, entonces *y*, si no, *x*" +#, fuzzy +msgid "if *x* is true, then *x*, else *y*" +msgstr "si *x* es falso, entonces *x*, si no, *y*" -#: ../Doc/library/stdtypes.rst:87 ../Doc/library/stdtypes.rst:285 -#: ../Doc/library/stdtypes.rst:923 ../Doc/library/stdtypes.rst:926 -#: ../Doc/library/stdtypes.rst:1137 ../Doc/library/stdtypes.rst:2371 -#: ../Doc/library/stdtypes.rst:3583 +#: ../Doc/library/stdtypes.rst:87 ../Doc/library/stdtypes.rst:965 +#: ../Doc/library/stdtypes.rst:968 ../Doc/library/stdtypes.rst:1179 +#: ../Doc/library/stdtypes.rst:2424 ../Doc/library/stdtypes.rst:3642 msgid "\\(1)" msgstr "\\(1)" @@ -183,9 +184,9 @@ msgid "if *x* is false, then *x*, else *y*" msgstr "si *x* es falso, entonces *x*, si no, *y*" #: ../Doc/library/stdtypes.rst:90 ../Doc/library/stdtypes.rst:288 -#: ../Doc/library/stdtypes.rst:308 ../Doc/library/stdtypes.rst:1165 -#: ../Doc/library/stdtypes.rst:2375 ../Doc/library/stdtypes.rst:2377 -#: ../Doc/library/stdtypes.rst:3587 ../Doc/library/stdtypes.rst:3589 +#: ../Doc/library/stdtypes.rst:308 ../Doc/library/stdtypes.rst:1207 +#: ../Doc/library/stdtypes.rst:2428 ../Doc/library/stdtypes.rst:2430 +#: ../Doc/library/stdtypes.rst:3646 ../Doc/library/stdtypes.rst:3648 msgid "\\(2)" msgstr "\\(2)" @@ -197,19 +198,19 @@ msgstr "``not x``" msgid "if *x* is false, then ``True``, else ``False``" msgstr "si *x* es falso, entonces ``True``, si no, ``False``" -#: ../Doc/library/stdtypes.rst:93 ../Doc/library/stdtypes.rst:935 -#: ../Doc/library/stdtypes.rst:1168 ../Doc/library/stdtypes.rst:2379 -#: ../Doc/library/stdtypes.rst:2381 ../Doc/library/stdtypes.rst:2383 -#: ../Doc/library/stdtypes.rst:2385 ../Doc/library/stdtypes.rst:3591 -#: ../Doc/library/stdtypes.rst:3593 ../Doc/library/stdtypes.rst:3595 -#: ../Doc/library/stdtypes.rst:3597 +#: ../Doc/library/stdtypes.rst:93 ../Doc/library/stdtypes.rst:977 +#: ../Doc/library/stdtypes.rst:1210 ../Doc/library/stdtypes.rst:2432 +#: ../Doc/library/stdtypes.rst:2434 ../Doc/library/stdtypes.rst:2436 +#: ../Doc/library/stdtypes.rst:2438 ../Doc/library/stdtypes.rst:3650 +#: ../Doc/library/stdtypes.rst:3652 ../Doc/library/stdtypes.rst:3654 +#: ../Doc/library/stdtypes.rst:3656 msgid "\\(3)" msgstr "\\(3)" #: ../Doc/library/stdtypes.rst:102 ../Doc/library/stdtypes.rst:319 -#: ../Doc/library/stdtypes.rst:432 ../Doc/library/stdtypes.rst:972 -#: ../Doc/library/stdtypes.rst:1176 ../Doc/library/stdtypes.rst:2411 -#: ../Doc/library/stdtypes.rst:3627 +#: ../Doc/library/stdtypes.rst:433 ../Doc/library/stdtypes.rst:1014 +#: ../Doc/library/stdtypes.rst:1218 ../Doc/library/stdtypes.rst:2464 +#: ../Doc/library/stdtypes.rst:3686 msgid "Notes:" msgstr "Notas:" @@ -261,9 +262,9 @@ msgstr "" msgid "This table summarizes the comparison operations:" msgstr "Esta tabla resume las operaciones de comparación:" -#: ../Doc/library/stdtypes.rst:143 ../Doc/library/stdtypes.rst:2342 -#: ../Doc/library/stdtypes.rst:2365 ../Doc/library/stdtypes.rst:3554 -#: ../Doc/library/stdtypes.rst:3577 +#: ../Doc/library/stdtypes.rst:143 ../Doc/library/stdtypes.rst:2395 +#: ../Doc/library/stdtypes.rst:2418 ../Doc/library/stdtypes.rst:3613 +#: ../Doc/library/stdtypes.rst:3636 msgid "Meaning" msgstr "Significado" @@ -523,6 +524,11 @@ msgstr "``x // y``" msgid "floored quotient of *x* and *y*" msgstr "división entera de *x* por *y*" +#: ../Doc/library/stdtypes.rst:285 +#, fuzzy +msgid "\\(1)\\(2)" +msgstr "(1)(2)" + #: ../Doc/library/stdtypes.rst:288 msgid "``x % y``" msgstr "``x % y``" @@ -603,8 +609,8 @@ msgstr "" "un número complejo, con parte real *re* y parte imaginaria *im*. El valor de " "*im* por defecto vale cero." -#: ../Doc/library/stdtypes.rst:301 ../Doc/library/stdtypes.rst:1158 -#: ../Doc/library/stdtypes.rst:2373 ../Doc/library/stdtypes.rst:3614 +#: ../Doc/library/stdtypes.rst:301 ../Doc/library/stdtypes.rst:1200 +#: ../Doc/library/stdtypes.rst:2426 ../Doc/library/stdtypes.rst:3673 msgid "\\(6)" msgstr "\\(6)" @@ -641,10 +647,10 @@ msgid "*x* to the power *y*" msgstr "*x* elevado a *y*" #: ../Doc/library/stdtypes.rst:310 ../Doc/library/stdtypes.rst:312 -#: ../Doc/library/stdtypes.rst:1147 ../Doc/library/stdtypes.rst:1150 -#: ../Doc/library/stdtypes.rst:2398 ../Doc/library/stdtypes.rst:2401 -#: ../Doc/library/stdtypes.rst:2404 ../Doc/library/stdtypes.rst:3610 -#: ../Doc/library/stdtypes.rst:3617 +#: ../Doc/library/stdtypes.rst:1189 ../Doc/library/stdtypes.rst:1192 +#: ../Doc/library/stdtypes.rst:2451 ../Doc/library/stdtypes.rst:2454 +#: ../Doc/library/stdtypes.rst:2457 ../Doc/library/stdtypes.rst:3669 +#: ../Doc/library/stdtypes.rst:3676 msgid "\\(5)" msgstr "\\(5)" @@ -657,9 +663,12 @@ msgid "``x ** y``" msgstr "``x ** y``" #: ../Doc/library/stdtypes.rst:322 +#, fuzzy msgid "" -"Also referred to as integer division. The resultant value is a whole " -"integer, though the result's type is not necessarily int. The result is " +"Also referred to as integer division. For operands of type :class:`int`, " +"the result has type :class:`int`. For operands of type :class:`float`, the " +"result has type :class:`float`. In general, the result is a whole integer, " +"though the result's type is not necessarily :class:`int`. The result is " "always rounded towards minus infinity: ``1//2`` is ``0``, ``(-1)//2`` is " "``-1``, ``1//(-2)`` is ``-1``, and ``(-1)//(-2)`` is ``0``." msgstr "" @@ -668,7 +677,7 @@ msgstr "" "se redondea de forma automática hacia menos infinito: ``1//2`` es ``0``, " "``(-1)//2`` es ``-1``, ``1//(-2)`` es ``-1`` y ``(-1)//(-2)`` es ``0``." -#: ../Doc/library/stdtypes.rst:328 +#: ../Doc/library/stdtypes.rst:330 msgid "" "Not for complex numbers. Instead convert to floats using :func:`abs` if " "appropriate." @@ -676,17 +685,18 @@ msgstr "" "No es apropiada para números complejos. Es preferible convertir a valores en " "coma flotante usando la función :func:`abs` si fuera apropiado." -#: ../Doc/library/stdtypes.rst:340 +#: ../Doc/library/stdtypes.rst:341 +#, fuzzy msgid "" -"Conversion from floating point to integer may round or truncate as in C; see " -"functions :func:`math.floor` and :func:`math.ceil` for well-defined " -"conversions." +"Conversion from :class:`float` to :class:`int` truncates, discarding the " +"fractional part. See functions :func:`math.floor` and :func:`math.ceil` for " +"alternative conversions." msgstr "" "Conversiones desde coma flotante a entero pueden redondearse o truncarse " "como en C; véanse las funciones :func:`math.floor` y :func:`math.ceil` para " "un mayor control." -#: ../Doc/library/stdtypes.rst:345 +#: ../Doc/library/stdtypes.rst:346 msgid "" "float also accepts the strings \"nan\" and \"inf\" with an optional prefix " "\"+\" or \"-\" for Not a Number (NaN) and positive or negative infinity." @@ -695,7 +705,7 @@ msgstr "" "prefijo opcional \"+\" o \"-\", para los valores *Not a Number* (*NaN*) e " "infinito positivo o negativo." -#: ../Doc/library/stdtypes.rst:349 +#: ../Doc/library/stdtypes.rst:350 msgid "" "Python defines ``pow(0, 0)`` and ``0 ** 0`` to be ``1``, as is common for " "programming languages." @@ -703,7 +713,7 @@ msgstr "" "Python define ``pow(0, 0)`` y ``0 ** 0`` para que valgan ``1``, como es " "práctica habitual en los lenguajes de programación." -#: ../Doc/library/stdtypes.rst:353 +#: ../Doc/library/stdtypes.rst:354 msgid "" "The numeric literals accepted include the digits ``0`` to ``9`` or any " "Unicode equivalent (code points with the ``Nd`` property)." @@ -712,15 +722,17 @@ msgstr "" "el ``9``, así como cualquier carácter Unicode equivalente (puntos de código " "con la propiedad ``Nd``)." -#: ../Doc/library/stdtypes.rst:356 +#: ../Doc/library/stdtypes.rst:357 +#, fuzzy msgid "" -"See https://www.unicode.org/Public/14.0.0/ucd/extracted/DerivedNumericType." -"txt for a complete list of code points with the ``Nd`` property." +"See `the Unicode Standard `_ for a complete list of code points with the ``Nd`` " +"property." msgstr "" "Véase https://www.unicode.org/Public/14.0.0/ucd/extracted/DerivedNumericType." "txt para una lista completa de los puntos de código con la propiedad ``Nd``." -#: ../Doc/library/stdtypes.rst:360 +#: ../Doc/library/stdtypes.rst:361 msgid "" "All :class:`numbers.Real` types (:class:`int` and :class:`float`) also " "include the following operations:" @@ -728,19 +740,19 @@ msgstr "" "Todas las clases derivadas de :class:`numbers.Real` (:class:`int` y :class:" "`float`) también soportan las siguientes operaciones:" -#: ../Doc/library/stdtypes.rst:366 +#: ../Doc/library/stdtypes.rst:367 msgid ":func:`math.trunc(\\ x) `" msgstr ":func:`math.trunc(\\ x) `" -#: ../Doc/library/stdtypes.rst:366 +#: ../Doc/library/stdtypes.rst:367 msgid "*x* truncated to :class:`~numbers.Integral`" msgstr "*x* truncado a :class:`~numbers.Integral`" -#: ../Doc/library/stdtypes.rst:369 +#: ../Doc/library/stdtypes.rst:370 msgid ":func:`round(x[, n]) `" msgstr ":func:`round(x[, n]) `" -#: ../Doc/library/stdtypes.rst:369 +#: ../Doc/library/stdtypes.rst:370 msgid "" "*x* rounded to *n* digits, rounding half to even. If *n* is omitted, it " "defaults to 0." @@ -749,23 +761,23 @@ msgstr "" "más cercano (redondeo del banquero). Si no se especifica valor para *n*, se " "asume 0." -#: ../Doc/library/stdtypes.rst:373 +#: ../Doc/library/stdtypes.rst:374 msgid ":func:`math.floor(\\ x) `" msgstr ":func:`math.floor(\\ x) `" -#: ../Doc/library/stdtypes.rst:373 +#: ../Doc/library/stdtypes.rst:374 msgid "the greatest :class:`~numbers.Integral` <= *x*" msgstr "el mayor número :class:`~numbers.Integral` que sea <= *x*" -#: ../Doc/library/stdtypes.rst:376 +#: ../Doc/library/stdtypes.rst:377 msgid ":func:`math.ceil(x) `" msgstr ":func:`math.ceil(x) `" -#: ../Doc/library/stdtypes.rst:376 +#: ../Doc/library/stdtypes.rst:377 msgid "the least :class:`~numbers.Integral` >= *x*" msgstr "el menor número :class:`~numbers.Integral` que sea >= *x*" -#: ../Doc/library/stdtypes.rst:380 +#: ../Doc/library/stdtypes.rst:381 msgid "" "For additional numeric operations see the :mod:`math` and :mod:`cmath` " "modules." @@ -773,11 +785,11 @@ msgstr "" "Para más operaciones numéricas consulta los módulos :mod:`math` y :mod:" "`cmath`." -#: ../Doc/library/stdtypes.rst:389 +#: ../Doc/library/stdtypes.rst:390 msgid "Bitwise Operations on Integer Types" msgstr "Operaciones de bits en números enteros" -#: ../Doc/library/stdtypes.rst:403 +#: ../Doc/library/stdtypes.rst:404 msgid "" "Bitwise operations only make sense for integers. The result of bitwise " "operations is calculated as though carried out in two's complement with an " @@ -788,7 +800,7 @@ msgstr "" "realizado en una representación en complemento a dos que tuviera un número " "infinito de bits de signo." -#: ../Doc/library/stdtypes.rst:407 +#: ../Doc/library/stdtypes.rst:408 msgid "" "The priorities of the binary bitwise operations are all lower than the " "numeric operations and higher than the comparisons; the unary operation " @@ -800,97 +812,97 @@ msgstr "" "unaria ``~`` tiene la misma prioridad que las otras operaciones unarias " "numéricas (``+`` y ``-``)." -#: ../Doc/library/stdtypes.rst:411 +#: ../Doc/library/stdtypes.rst:412 msgid "This table lists the bitwise operations sorted in ascending priority:" msgstr "" "Esta tabla lista las operaciones de bits, ordenadas de menor a mayor " "prioridad:" -#: ../Doc/library/stdtypes.rst:416 +#: ../Doc/library/stdtypes.rst:417 msgid "``x | y``" msgstr "``x | y``" -#: ../Doc/library/stdtypes.rst:416 +#: ../Doc/library/stdtypes.rst:417 msgid "bitwise :dfn:`or` of *x* and *y*" msgstr "la operación :dfn:`or` entre *x* e *y*" -#: ../Doc/library/stdtypes.rst:416 ../Doc/library/stdtypes.rst:419 -#: ../Doc/library/stdtypes.rst:422 ../Doc/library/stdtypes.rst:1171 -#: ../Doc/library/stdtypes.rst:2387 ../Doc/library/stdtypes.rst:2391 -#: ../Doc/library/stdtypes.rst:3599 ../Doc/library/stdtypes.rst:3603 +#: ../Doc/library/stdtypes.rst:417 ../Doc/library/stdtypes.rst:420 +#: ../Doc/library/stdtypes.rst:423 ../Doc/library/stdtypes.rst:1213 +#: ../Doc/library/stdtypes.rst:2440 ../Doc/library/stdtypes.rst:2444 +#: ../Doc/library/stdtypes.rst:3658 ../Doc/library/stdtypes.rst:3662 msgid "\\(4)" msgstr "\\(4)" -#: ../Doc/library/stdtypes.rst:419 +#: ../Doc/library/stdtypes.rst:420 msgid "``x ^ y``" msgstr "``x ^ y``" -#: ../Doc/library/stdtypes.rst:419 +#: ../Doc/library/stdtypes.rst:420 msgid "bitwise :dfn:`exclusive or` of *x* and *y*" msgstr "la operación :dfn:`exclusive or` entre *x* e *y*" -#: ../Doc/library/stdtypes.rst:422 +#: ../Doc/library/stdtypes.rst:423 msgid "``x & y``" msgstr "``x & y``" -#: ../Doc/library/stdtypes.rst:422 +#: ../Doc/library/stdtypes.rst:423 msgid "bitwise :dfn:`and` of *x* and *y*" msgstr "la operación :dfn:`and` entre *x* e *y*" -#: ../Doc/library/stdtypes.rst:425 +#: ../Doc/library/stdtypes.rst:426 msgid "``x << n``" msgstr "``x << n``" -#: ../Doc/library/stdtypes.rst:425 +#: ../Doc/library/stdtypes.rst:426 msgid "*x* shifted left by *n* bits" msgstr "valor de *x* desplazado a la izquierda *n* bits" -#: ../Doc/library/stdtypes.rst:425 +#: ../Doc/library/stdtypes.rst:426 msgid "(1)(2)" msgstr "(1)(2)" -#: ../Doc/library/stdtypes.rst:427 +#: ../Doc/library/stdtypes.rst:428 msgid "``x >> n``" msgstr "``x >> n``" -#: ../Doc/library/stdtypes.rst:427 +#: ../Doc/library/stdtypes.rst:428 msgid "*x* shifted right by *n* bits" msgstr "valor de *x* desplazado a la derecha *n* bits" -#: ../Doc/library/stdtypes.rst:427 +#: ../Doc/library/stdtypes.rst:428 msgid "(1)(3)" msgstr "(1)(3)" -#: ../Doc/library/stdtypes.rst:429 +#: ../Doc/library/stdtypes.rst:430 msgid "``~x``" msgstr "``~x``" -#: ../Doc/library/stdtypes.rst:429 +#: ../Doc/library/stdtypes.rst:430 msgid "the bits of *x* inverted" msgstr "invierte los bits de *x*" -#: ../Doc/library/stdtypes.rst:435 +#: ../Doc/library/stdtypes.rst:436 msgid "" "Negative shift counts are illegal and cause a :exc:`ValueError` to be raised." msgstr "" "Los desplazamientos negativos son ilegales y lanzarán una excepción de tipo :" "exc:`ValueError`." -#: ../Doc/library/stdtypes.rst:438 +#: ../Doc/library/stdtypes.rst:439 msgid "" "A left shift by *n* bits is equivalent to multiplication by ``pow(2, n)``." msgstr "" "Un desplazamiento de *n* bits a la izquierda es equivalente a multiplicar " "por ``pow(2, n)``." -#: ../Doc/library/stdtypes.rst:441 +#: ../Doc/library/stdtypes.rst:442 msgid "" "A right shift by *n* bits is equivalent to floor division by ``pow(2, n)``." msgstr "" "Un desplazamiento de *n* bits a la derecha es equivalente a efectuar la " "división de parte entera (floor) por ``pow(2, n)``." -#: ../Doc/library/stdtypes.rst:444 +#: ../Doc/library/stdtypes.rst:445 msgid "" "Performing these calculations with at least one extra sign extension bit in " "a finite two's complement representation (a working bit-width of ``1 + max(x." @@ -903,11 +915,11 @@ msgstr "" "para obtener el mismo resultado que si se hubiera realizado con un número " "infinito de bits de signo." -#: ../Doc/library/stdtypes.rst:451 +#: ../Doc/library/stdtypes.rst:452 msgid "Additional Methods on Integer Types" msgstr "Métodos adicionales de los enteros" -#: ../Doc/library/stdtypes.rst:453 +#: ../Doc/library/stdtypes.rst:454 msgid "" "The int type implements the :class:`numbers.Integral` :term:`abstract base " "class`. In addition, it provides a few more methods:" @@ -915,7 +927,7 @@ msgstr "" "El tipo int implementa la :term:`clase base abstracta` :class:`numbers." "Integral`. Además, proporciona los siguientes métodos:" -#: ../Doc/library/stdtypes.rst:458 +#: ../Doc/library/stdtypes.rst:459 msgid "" "Return the number of bits necessary to represent an integer in binary, " "excluding the sign and leading zeros::" @@ -923,7 +935,7 @@ msgstr "" "Retorna el número de bits necesarios para representar un número entero, " "excluyendo el bit de signo y los ceros a la izquierda::" -#: ../Doc/library/stdtypes.rst:467 +#: ../Doc/library/stdtypes.rst:468 msgid "" "More precisely, if ``x`` is nonzero, then ``x.bit_length()`` is the unique " "positive integer ``k`` such that ``2**(k-1) <= abs(x) < 2**k``. " @@ -938,12 +950,12 @@ msgstr "" "int(log(abs(x), 2))``. Si ``x`` es cero, entonces ``x.bit_length()`` retorna " "``0``." -#: ../Doc/library/stdtypes.rst:473 ../Doc/library/stdtypes.rst:496 -#: ../Doc/library/stdtypes.rst:539 ../Doc/library/stdtypes.rst:583 +#: ../Doc/library/stdtypes.rst:474 ../Doc/library/stdtypes.rst:497 +#: ../Doc/library/stdtypes.rst:542 ../Doc/library/stdtypes.rst:586 msgid "Equivalent to::" msgstr "Equivale a::" -#: ../Doc/library/stdtypes.rst:484 +#: ../Doc/library/stdtypes.rst:485 msgid "" "Return the number of ones in the binary representation of the absolute value " "of the integer. This is also known as the population count. Example::" @@ -952,11 +964,11 @@ msgstr "" "del entero. Esto también se conoce como el recuento de la población. " "Ejemplo::" -#: ../Doc/library/stdtypes.rst:505 +#: ../Doc/library/stdtypes.rst:506 msgid "Return an array of bytes representing an integer." msgstr "Retorna un arreglo de bytes que representan el número entero." -#: ../Doc/library/stdtypes.rst:517 +#: ../Doc/library/stdtypes.rst:518 msgid "" "The integer is represented using *length* bytes, and defaults to 1. An :exc:" "`OverflowError` is raised if the integer is not representable with the given " @@ -966,7 +978,7 @@ msgstr "" "*length* y el valor predeterminado es 1. Se lanzará la excepción :exc:" "`OverflowError` si no se puede representar el entero con ese número de bits." -#: ../Doc/library/stdtypes.rst:521 +#: ../Doc/library/stdtypes.rst:522 msgid "" "The *byteorder* argument determines the byte order used to represent the " "integer, and defaults to ``\"big\"``. If *byteorder* is ``\"big\"``, the " @@ -979,7 +991,7 @@ msgstr "" "del byte. Si *byteorder* es ``\"little\"``, el byte más significativo estará " "en la última posición." -#: ../Doc/library/stdtypes.rst:527 +#: ../Doc/library/stdtypes.rst:528 msgid "" "The *signed* argument determines whether two's complement is used to " "represent the integer. If *signed* is ``False`` and a negative integer is " @@ -991,28 +1003,34 @@ msgstr "" "entero negativo, se lanzará la excepción :exc:`OverflowError`. El valor por " "defecto para *signed* es ``False``." -#: ../Doc/library/stdtypes.rst:532 +#: ../Doc/library/stdtypes.rst:533 msgid "" "The default values can be used to conveniently turn an integer into a single " -"byte object. However, when using the default arguments, don't try to " -"convert a value greater than 255 or you'll get an :exc:`OverflowError`::" +"byte object::" +msgstr "" + +#: ../Doc/library/stdtypes.rst:539 +#, fuzzy +msgid "" +"However, when using the default arguments, don't try to convert a value " +"greater than 255 or you'll get an :exc:`OverflowError`." msgstr "" "Los valores por defecto se pueden usar para convertir convenientemente un " "número entero en un objeto de un solo byte. Sim embargo, cuando utilices los " "argumentos predeterminados, no intentes convertir un valor mayor a 255 u " "obtendrás una excepción :exc:`OverflowError`::" -#: ../Doc/library/stdtypes.rst:552 +#: ../Doc/library/stdtypes.rst:555 msgid "Added default argument values for ``length`` and ``byteorder``." msgstr "" "Se agregaron valores de argumentos predeterminados para ``length`` y " "``byteorder``." -#: ../Doc/library/stdtypes.rst:557 +#: ../Doc/library/stdtypes.rst:560 msgid "Return the integer represented by the given array of bytes." msgstr "Retorna el número entero que se representa por el arreglo de bytes." -#: ../Doc/library/stdtypes.rst:570 +#: ../Doc/library/stdtypes.rst:573 msgid "" "The argument *bytes* must either be a :term:`bytes-like object` or an " "iterable producing bytes." @@ -1020,7 +1038,7 @@ msgstr "" "El argumento *bytes* debe ser o bien un :term:`objeto tipo binario ` o un iterable que produzca bytes." -#: ../Doc/library/stdtypes.rst:573 +#: ../Doc/library/stdtypes.rst:576 msgid "" "The *byteorder* argument determines the byte order used to represent the " "integer, and defaults to ``\"big\"``. If *byteorder* is ``\"big\"``, the " @@ -1037,7 +1055,7 @@ msgstr "" "nativo del sistema host, usa :data:`sys.byteorder` como valor de orden de " "bytes." -#: ../Doc/library/stdtypes.rst:580 +#: ../Doc/library/stdtypes.rst:583 msgid "" "The *signed* argument indicates whether two's complement is used to " "represent the integer." @@ -1045,28 +1063,34 @@ msgstr "" "El argumento *signed* indica si se representará el número entero usando " "complemento a dos." -#: ../Doc/library/stdtypes.rst:600 +#: ../Doc/library/stdtypes.rst:603 msgid "Added default argument value for ``byteorder``." msgstr "Se agregó valor de argumento predeterminado para ``byteorder``." -#: ../Doc/library/stdtypes.rst:605 +#: ../Doc/library/stdtypes.rst:608 +#, fuzzy msgid "" -"Return a pair of integers whose ratio is exactly equal to the original " -"integer and with a positive denominator. The integer ratio of integers " -"(whole numbers) is always the integer as the numerator and ``1`` as the " -"denominator." +"Return a pair of integers whose ratio is equal to the original integer and " +"has a positive denominator. The integer ratio of integers (whole numbers) " +"is always the integer as the numerator and ``1`` as the denominator." msgstr "" "Retorna una pareja de números enteros cuya proporción es igual a la del " "numero entero original, y con un denominador positivo. En el caso de números " "enteros, la proporción siempre es el entero en el numerador y ``1`` en el " "denominador." -#: ../Doc/library/stdtypes.rst:613 +#: ../Doc/library/stdtypes.rst:617 +msgid "" +"Returns ``True``. Exists for duck type compatibility with :meth:`float." +"is_integer`." +msgstr "" + +#: ../Doc/library/stdtypes.rst:622 msgid "Additional Methods on Float" msgstr "Métodos adicionales de float" # Verificar que el glosario el termino aparezca como clase base abstracta -#: ../Doc/library/stdtypes.rst:615 +#: ../Doc/library/stdtypes.rst:624 msgid "" "The float type implements the :class:`numbers.Real` :term:`abstract base " "class`. float also has the following additional methods." @@ -1074,11 +1098,12 @@ msgstr "" "El tipo float implementa la :term:`clase base abstracta` :class:`numbers." "Real`. Los números float tienen además los siguientes métodos." -#: ../Doc/library/stdtypes.rst:620 +#: ../Doc/library/stdtypes.rst:629 +#, fuzzy msgid "" -"Return a pair of integers whose ratio is exactly equal to the original float " -"and with a positive denominator. Raises :exc:`OverflowError` on infinities " -"and a :exc:`ValueError` on NaNs." +"Return a pair of integers whose ratio is exactly equal to the original " +"float. The ratio is in lowest terms and has a positive denominator. Raises :" +"exc:`OverflowError` on infinities and a :exc:`ValueError` on NaNs." msgstr "" "Retorna una pareja de números enteros cuya proporción es exactamente igual " "que la del valor en punto flotante original, con un denominador positivo. Si " @@ -1086,7 +1111,7 @@ msgstr "" "`OverflowError` y si se llama con *NaN* (*Not A Number*) lanza una excepción " "de tipo :exc:`ValueError`." -#: ../Doc/library/stdtypes.rst:627 +#: ../Doc/library/stdtypes.rst:636 msgid "" "Return ``True`` if the float instance is finite with integral value, and " "``False`` otherwise::" @@ -1094,7 +1119,7 @@ msgstr "" "Retorna ``True`` si el valor en coma flotante es finita con valor integral, " "y ``False`` en caso contrario::" -#: ../Doc/library/stdtypes.rst:635 +#: ../Doc/library/stdtypes.rst:644 msgid "" "Two methods support conversion to and from hexadecimal strings. Since " "Python's floats are stored internally as binary numbers, converting a float " @@ -1111,7 +1136,7 @@ msgstr "" "exacta los números en coma flotante. Esto puede ser útil, ya sea a la hora " "de depurar errores, o en procesos numéricos." -#: ../Doc/library/stdtypes.rst:646 +#: ../Doc/library/stdtypes.rst:655 msgid "" "Return a representation of a floating-point number as a hexadecimal string. " "For finite floating-point numbers, this representation will always include a " @@ -1121,7 +1146,7 @@ msgstr "" "caracteres en hexadecimal. Para números finitos, la representación siempre " "empieza con el prefijo ``0x``, y con una ``p`` justo antes del exponente." -#: ../Doc/library/stdtypes.rst:654 +#: ../Doc/library/stdtypes.rst:663 msgid "" "Class method to return the float represented by a hexadecimal string *s*. " "The string *s* may have leading and trailing whitespace." @@ -1130,7 +1155,7 @@ msgstr "" "la cadena de caracteres en hexadecimal *s*. La cadena de caracteres *s* " "puede tener espacios en blanco al principio o al final." -#: ../Doc/library/stdtypes.rst:659 +#: ../Doc/library/stdtypes.rst:668 msgid "" "Note that :meth:`float.hex` is an instance method, while :meth:`float." "fromhex` is a class method." @@ -1138,11 +1163,11 @@ msgstr "" "Nótese que :meth:`float.hex` es un método de instancia, mientras que :meth:" "`float.fromhex` es un método de clase." -#: ../Doc/library/stdtypes.rst:662 +#: ../Doc/library/stdtypes.rst:671 msgid "A hexadecimal string takes the form::" msgstr "Una cadena de caracteres en hexadecimal sigue este formato::" -#: ../Doc/library/stdtypes.rst:666 +#: ../Doc/library/stdtypes.rst:675 msgid "" "where the optional ``sign`` may by either ``+`` or ``-``, ``integer`` and " "``fraction`` are strings of hexadecimal digits, and ``exponent`` is a " @@ -1168,7 +1193,7 @@ msgstr "" "``%a`` en C, o por el método Java, ``Double.toHexString``, son aceptadas " "por :meth:`float.fromhex`." -#: ../Doc/library/stdtypes.rst:679 +#: ../Doc/library/stdtypes.rst:688 msgid "" "Note that the exponent is written in decimal rather than hexadecimal, and " "that it gives the power of 2 by which to multiply the coefficient. For " @@ -1180,7 +1205,7 @@ msgstr "" "ejemplo, la cadena de caracteres hexadecimal ``0x3.a7p10`` representa el " "número en coma flotante ``(3 + 10./16 + 7./16**2) * 2.0**10``, o ``3740.0``::" -#: ../Doc/library/stdtypes.rst:689 +#: ../Doc/library/stdtypes.rst:698 msgid "" "Applying the reverse conversion to ``3740.0`` gives a different hexadecimal " "string representing the same number::" @@ -1188,11 +1213,11 @@ msgstr "" "Si aplicamos la operación inversa a ``3740.0`` retorna una cadena de " "caracteres hexadecimal diferente que, aun así, representa el mismo número::" -#: ../Doc/library/stdtypes.rst:699 +#: ../Doc/library/stdtypes.rst:708 msgid "Hashing of numeric types" msgstr "Calculo del *hash* de tipos numéricos" -#: ../Doc/library/stdtypes.rst:701 +#: ../Doc/library/stdtypes.rst:710 msgid "" "For numbers ``x`` and ``y``, possibly of different types, it's a requirement " "that ``hash(x) == hash(y)`` whenever ``x == y`` (see the :meth:`~object." @@ -1222,7 +1247,7 @@ msgstr "" "está disponible en Python como atributo de :data:`sys.hash_info` con el " "nombre de :attr:`modulus`." -#: ../Doc/library/stdtypes.rst:716 +#: ../Doc/library/stdtypes.rst:725 msgid "" "Currently, the prime used is ``P = 2**31 - 1`` on machines with 32-bit C " "longs and ``P = 2**61 - 1`` on machines with 64-bit C longs." @@ -1230,11 +1255,11 @@ msgstr "" "Actualmente, el número primo usado es ``P = 2**31 - 1`` para máquinas de 32 " "bits, y ``P = 2**61 - 1`` en máquinas de 64 bits." -#: ../Doc/library/stdtypes.rst:719 +#: ../Doc/library/stdtypes.rst:728 msgid "Here are the rules in detail:" msgstr "Aquí están las reglas en detalle:" -#: ../Doc/library/stdtypes.rst:721 +#: ../Doc/library/stdtypes.rst:730 msgid "" "If ``x = m / n`` is a nonnegative rational number and ``n`` is not divisible " "by ``P``, define ``hash(x)`` as ``m * invmod(n, P) % P``, where ``invmod(n, " @@ -1244,7 +1269,7 @@ msgstr "" "por ``P``, se define ``hash(x)`` como ``m * invmod(n, P) % P``, donde " "``invmod(n, P)`` retorna la inversa de ``n`` módulo ``P``." -#: ../Doc/library/stdtypes.rst:725 +#: ../Doc/library/stdtypes.rst:734 msgid "" "If ``x = m / n`` is a nonnegative rational number and ``n`` is divisible by " "``P`` (but ``m`` is not) then ``n`` has no inverse modulo ``P`` and the rule " @@ -1256,7 +1281,7 @@ msgstr "" "no se puede aplicar la regla anterior; en este caso, ``hash(x)`` retorna el " "valor constante definido en ``sys.hash_info.inf``." -#: ../Doc/library/stdtypes.rst:730 +#: ../Doc/library/stdtypes.rst:739 msgid "" "If ``x = m / n`` is a negative rational number define ``hash(x)`` as ``-" "hash(-x)``. If the resulting hash is ``-1``, replace it with ``-2``." @@ -1264,7 +1289,7 @@ msgstr "" "Si ``x = m / n`` es un número racional negativo se define ``hash(x)`` como " "``-hash(-x)``. Si el resultado fuera ``-1``, lo cambia por ``-2``." -#: ../Doc/library/stdtypes.rst:734 +#: ../Doc/library/stdtypes.rst:743 msgid "" "The particular values ``sys.hash_info.inf`` and ``-sys.hash_info.inf`` are " "used as hash values for positive infinity or negative infinity " @@ -1274,7 +1299,7 @@ msgstr "" "como valores *hash* para infinito positivo o infinito negativo " "(respectivamente)." -#: ../Doc/library/stdtypes.rst:738 +#: ../Doc/library/stdtypes.rst:747 msgid "" "For a :class:`complex` number ``z``, the hash values of the real and " "imaginary parts are combined by computing ``hash(z.real) + sys.hash_info." @@ -1290,7 +1315,7 @@ msgstr "" "hash_info.width - 1))``. De nuevo, si el resultado fuera ``-1``, se " "reemplaza por ``-2``." -#: ../Doc/library/stdtypes.rst:746 +#: ../Doc/library/stdtypes.rst:755 msgid "" "To clarify the above rules, here's some example Python code, equivalent to " "the built-in hash, for computing the hash of a rational number, :class:" @@ -1300,11 +1325,51 @@ msgstr "" "Python, equivalente al cálculo realizado en la función *hash*, para calcular " "el *hash* de un número racional de tipo :class:`float` o :class:`complex`::" -#: ../Doc/library/stdtypes.rst:801 +#: ../Doc/library/stdtypes.rst:810 +#, fuzzy +msgid "Boolean Type - :class:`bool`" +msgstr "Tipos mapa --- :class:`dict`" + +#: ../Doc/library/stdtypes.rst:812 +msgid "" +"Booleans represent truth values. The :class:`bool` type has exactly two " +"constant instances: ``True`` and ``False``." +msgstr "" + +#: ../Doc/library/stdtypes.rst:820 +msgid "" +"The built-in function :func:`bool` converts any value to a boolean, if the " +"value can be interpreted as a truth value (see section :ref:`truth` above)." +msgstr "" + +#: ../Doc/library/stdtypes.rst:823 +msgid "" +"For logical operations, use the :ref:`boolean operators ` ``and``, " +"``or`` and ``not``. When applying the bitwise operators ``&``, ``|``, ``^`` " +"to two booleans, they return a bool equivalent to the logical operations " +"\"and\", \"or\", \"xor\". However, the logical operators ``and``, ``or`` and " +"``!=`` should be preferred over ``&``, ``|`` and ``^``." +msgstr "" + +#: ../Doc/library/stdtypes.rst:832 +msgid "" +"The use of the bitwise inversion operator ``~`` is deprecated and will raise " +"an error in Python 3.14." +msgstr "" + +#: ../Doc/library/stdtypes.rst:835 +msgid "" +":class:`bool` is a subclass of :class:`int` (see :ref:`typesnumeric`). In " +"many numeric contexts, ``False`` and ``True`` behave like the integers 0 and " +"1, respectively. However, relying on this is discouraged; explicitly convert " +"using :func:`int` instead." +msgstr "" + +#: ../Doc/library/stdtypes.rst:843 msgid "Iterator Types" msgstr "Tipos de iteradores" -#: ../Doc/library/stdtypes.rst:809 +#: ../Doc/library/stdtypes.rst:851 msgid "" "Python supports a concept of iteration over containers. This is implemented " "using two distinct methods; these are used to allow user-defined classes to " @@ -1316,7 +1381,7 @@ msgstr "" "definidas por el usuario para soportar iteración. Las secuencias, que se " "describirán con mayor detalle, siempre soportan la iteración." -#: ../Doc/library/stdtypes.rst:814 +#: ../Doc/library/stdtypes.rst:856 msgid "" "One method needs to be defined for container objects to provide :term:" "`iterable` support:" @@ -1325,7 +1390,7 @@ msgstr "" "proporcionen compatibilidad :term:`iterable`:" # Como traducimos slot? -#: ../Doc/library/stdtypes.rst:821 +#: ../Doc/library/stdtypes.rst:863 msgid "" "Return an :term:`iterator` object. The object is required to support the " "iterator protocol described below. If a container supports different types " @@ -1345,7 +1410,7 @@ msgstr "" "anchura). Este método se corresponde al *slot* :c:member:`~PyTypeObject." "tp_iter` de la estructura usada para los objetos Python en la API Python/C." -#: ../Doc/library/stdtypes.rst:830 +#: ../Doc/library/stdtypes.rst:872 msgid "" "The iterator objects themselves are required to support the following two " "methods, which together form the :dfn:`iterator protocol`:" @@ -1353,7 +1418,7 @@ msgstr "" "Los objetos iteradores en si necesitan definir los siguientes dos métodos, " "que forma juntos el :dfn:`iterator protocol`:" -#: ../Doc/library/stdtypes.rst:836 +#: ../Doc/library/stdtypes.rst:878 msgid "" "Return the :term:`iterator` object itself. This is required to allow both " "containers and iterators to be used with the :keyword:`for` and :keyword:" @@ -1366,7 +1431,7 @@ msgstr "" "*slot* :c:member:`~PyTypeObject.tp_iter` de la estructura usada para los " "objetos Python en la API Python/C." -#: ../Doc/library/stdtypes.rst:845 +#: ../Doc/library/stdtypes.rst:887 msgid "" "Return the next item from the :term:`iterator`. If there are no further " "items, raise the :exc:`StopIteration` exception. This method corresponds to " @@ -1378,7 +1443,7 @@ msgstr "" "corresponde con el *slot* :c:member:`~PyTypeObject.tp_iternext` de la " "estructura usada para los objetos Python en la API Python/C." -#: ../Doc/library/stdtypes.rst:850 +#: ../Doc/library/stdtypes.rst:892 msgid "" "Python defines several iterator objects to support iteration over general " "and specific sequence types, dictionaries, and other more specialized " @@ -1390,7 +1455,7 @@ msgstr "" "estructuras de datos especializadas. Los tipos específicos no son tan " "importantes como la implementación del protocolo iterador." -#: ../Doc/library/stdtypes.rst:855 +#: ../Doc/library/stdtypes.rst:897 msgid "" "Once an iterator's :meth:`~iterator.__next__` method raises :exc:" "`StopIteration`, it must continue to do so on subsequent calls. " @@ -1400,11 +1465,11 @@ msgstr "" "excepción :exc:`StopIteration`, debe continuar haciéndolo en subsiguientes " "llamadas al método. Si una implementación no cumple esto, se considera rota." -#: ../Doc/library/stdtypes.rst:863 +#: ../Doc/library/stdtypes.rst:905 msgid "Generator Types" msgstr "Tipos generador" -#: ../Doc/library/stdtypes.rst:865 +#: ../Doc/library/stdtypes.rst:907 msgid "" "Python's :term:`generator`\\s provide a convenient way to implement the " "iterator protocol. If a container object's :meth:`__iter__` method is " @@ -1421,11 +1486,11 @@ msgstr "" "puede obtener más información acerca de los generadores en :ref:`la " "documentación de la expresión yield `." -#: ../Doc/library/stdtypes.rst:877 +#: ../Doc/library/stdtypes.rst:919 msgid "Sequence Types --- :class:`list`, :class:`tuple`, :class:`range`" msgstr "Tipos secuencia --- :class:`list`, :class:`tuple`, :class:`range`" -#: ../Doc/library/stdtypes.rst:879 +#: ../Doc/library/stdtypes.rst:921 msgid "" "There are three basic sequence types: lists, tuples, and range objects. " "Additional sequence types tailored for processing of :ref:`binary data " @@ -1437,11 +1502,11 @@ msgstr "" "`datos binarios ` y :ref:`cadenas de caracteres ` que se " "describirán en secciones específicas." -#: ../Doc/library/stdtypes.rst:888 +#: ../Doc/library/stdtypes.rst:930 msgid "Common Sequence Operations" msgstr "Operaciones comunes de las secuencias" -#: ../Doc/library/stdtypes.rst:892 +#: ../Doc/library/stdtypes.rst:934 msgid "" "The operations in the following table are supported by most sequence types, " "both mutable and immutable. The :class:`collections.abc.Sequence` ABC is " @@ -1453,7 +1518,7 @@ msgstr "" "`collections.abc.Sequence` se incluye para facilitar la implementación " "correcta de estas operaciones en nuestros propios tipos de secuencias." -#: ../Doc/library/stdtypes.rst:897 +#: ../Doc/library/stdtypes.rst:939 msgid "" "This table lists the sequence operations sorted in ascending priority. In " "the table, *s* and *t* are sequences of the same type, *n*, *i*, *j* and *k* " @@ -1465,7 +1530,7 @@ msgstr "" "son números enteros y *x* es un objeto arbitrario que cumple con cualquier " "restricción de tipo o valor impuesta por *s*." -#: ../Doc/library/stdtypes.rst:902 +#: ../Doc/library/stdtypes.rst:944 msgid "" "The ``in`` and ``not in`` operations have the same priorities as the " "comparison operations. The ``+`` (concatenation) and ``*`` (repetition) " @@ -1476,109 +1541,109 @@ msgstr "" "operadores de comparación. Las operaciones ``+`` (concatenación) y ``*`` " "(repetición) tienen la misma prioridad que sus equivalentes numéricos. [3]_" -#: ../Doc/library/stdtypes.rst:923 +#: ../Doc/library/stdtypes.rst:965 msgid "``x in s``" msgstr "``x in s``" -#: ../Doc/library/stdtypes.rst:923 +#: ../Doc/library/stdtypes.rst:965 msgid "``True`` if an item of *s* is equal to *x*, else ``False``" msgstr "" "``True`` si un elemento de *s* es igual a *x*, ``False`` en caso contrario" -#: ../Doc/library/stdtypes.rst:926 +#: ../Doc/library/stdtypes.rst:968 msgid "``x not in s``" msgstr "``x not in s``" -#: ../Doc/library/stdtypes.rst:926 +#: ../Doc/library/stdtypes.rst:968 msgid "``False`` if an item of *s* is equal to *x*, else ``True``" msgstr "" "``False`` si un elemento de *s* es igual a *x*, ``True`` en caso contrario" -#: ../Doc/library/stdtypes.rst:929 +#: ../Doc/library/stdtypes.rst:971 msgid "``s + t``" msgstr "``s + t``" -#: ../Doc/library/stdtypes.rst:929 +#: ../Doc/library/stdtypes.rst:971 msgid "the concatenation of *s* and *t*" msgstr "la concatenación de *s* y *t*" -#: ../Doc/library/stdtypes.rst:929 +#: ../Doc/library/stdtypes.rst:971 msgid "(6)(7)" msgstr "(6)(7)" -#: ../Doc/library/stdtypes.rst:932 +#: ../Doc/library/stdtypes.rst:974 msgid "``s * n`` or ``n * s``" msgstr "``s * n`` o ``n * s``" -#: ../Doc/library/stdtypes.rst:932 +#: ../Doc/library/stdtypes.rst:974 msgid "equivalent to adding *s* to itself *n* times" msgstr "equivale a concatenar *s* consigo mismo *n* veces" -#: ../Doc/library/stdtypes.rst:932 +#: ../Doc/library/stdtypes.rst:974 msgid "(2)(7)" msgstr "(2)(7)" -#: ../Doc/library/stdtypes.rst:935 +#: ../Doc/library/stdtypes.rst:977 msgid "``s[i]``" msgstr "``s[i]``" -#: ../Doc/library/stdtypes.rst:935 +#: ../Doc/library/stdtypes.rst:977 msgid "*i*\\ th item of *s*, origin 0" msgstr "El elemento *i-esimo* de *s*, empezando a contar en 0" -#: ../Doc/library/stdtypes.rst:937 +#: ../Doc/library/stdtypes.rst:979 msgid "``s[i:j]``" msgstr "``s[i:j]``" -#: ../Doc/library/stdtypes.rst:937 +#: ../Doc/library/stdtypes.rst:979 msgid "slice of *s* from *i* to *j*" msgstr "el segmento de *s* desde *i* hasta *j*" -#: ../Doc/library/stdtypes.rst:937 +#: ../Doc/library/stdtypes.rst:979 msgid "(3)(4)" msgstr "(3)(4)" -#: ../Doc/library/stdtypes.rst:939 +#: ../Doc/library/stdtypes.rst:981 msgid "``s[i:j:k]``" msgstr "``s[i:j:k]``" -#: ../Doc/library/stdtypes.rst:939 +#: ../Doc/library/stdtypes.rst:981 msgid "slice of *s* from *i* to *j* with step *k*" msgstr "el segmento de *s* desde *i* hasta *j*, con paso *j*" -#: ../Doc/library/stdtypes.rst:939 +#: ../Doc/library/stdtypes.rst:981 msgid "(3)(5)" msgstr "(3)(5)" -#: ../Doc/library/stdtypes.rst:942 +#: ../Doc/library/stdtypes.rst:984 msgid "``len(s)``" msgstr "``len(s)``" -#: ../Doc/library/stdtypes.rst:942 +#: ../Doc/library/stdtypes.rst:984 msgid "length of *s*" msgstr "longitud de *s*" -#: ../Doc/library/stdtypes.rst:944 +#: ../Doc/library/stdtypes.rst:986 msgid "``min(s)``" msgstr "``min(s)``" -#: ../Doc/library/stdtypes.rst:944 +#: ../Doc/library/stdtypes.rst:986 msgid "smallest item of *s*" msgstr "el elemento más pequeño de *s*" -#: ../Doc/library/stdtypes.rst:946 +#: ../Doc/library/stdtypes.rst:988 msgid "``max(s)``" msgstr "``max(s)``" -#: ../Doc/library/stdtypes.rst:946 +#: ../Doc/library/stdtypes.rst:988 msgid "largest item of *s*" msgstr "el elemento más grande de *s*" -#: ../Doc/library/stdtypes.rst:948 +#: ../Doc/library/stdtypes.rst:990 msgid "``s.index(x[, i[, j]])``" msgstr "``s.index(x[, i[, j]])``" -#: ../Doc/library/stdtypes.rst:948 +#: ../Doc/library/stdtypes.rst:990 msgid "" "index of the first occurrence of *x* in *s* (at or after index *i* and " "before index *j*)" @@ -1586,19 +1651,19 @@ msgstr "" "índice de la primera ocurrencia de *x* en *s* (en la posición *i* o " "superior, y antes de *j*)" -#: ../Doc/library/stdtypes.rst:948 ../Doc/library/stdtypes.rst:3585 +#: ../Doc/library/stdtypes.rst:990 ../Doc/library/stdtypes.rst:3644 msgid "\\(8)" msgstr "\\(8)" -#: ../Doc/library/stdtypes.rst:952 +#: ../Doc/library/stdtypes.rst:994 msgid "``s.count(x)``" msgstr "``s.count(x)``" -#: ../Doc/library/stdtypes.rst:952 +#: ../Doc/library/stdtypes.rst:994 msgid "total number of occurrences of *x* in *s*" msgstr "número total de ocurrencias de *x* en *s*" -#: ../Doc/library/stdtypes.rst:956 +#: ../Doc/library/stdtypes.rst:998 msgid "" "Sequences of the same type also support comparisons. In particular, tuples " "and lists are compared lexicographically by comparing corresponding " @@ -1613,7 +1678,7 @@ msgstr "" "las dos secuencias deben ser del mismo tipo y de la misma longitud. (Para " "más detalles, véase :ref:`comparisons` en la referencia del lenguaje)." -#: ../Doc/library/stdtypes.rst:966 +#: ../Doc/library/stdtypes.rst:1008 msgid "" "Forward and reversed iterators over mutable sequences access values using an " "index. That index will continue to march forward (or backward) even if the " @@ -1627,7 +1692,7 @@ msgstr "" "termina solo cuando se encuentra un :exc:`IndexError` o un :exc:" "`StopIteration` (o cuando el índice cae por debajo de cero)." -#: ../Doc/library/stdtypes.rst:975 +#: ../Doc/library/stdtypes.rst:1017 msgid "" "While the ``in`` and ``not in`` operations are used only for simple " "containment testing in the general case, some specialised sequences (such " @@ -1639,7 +1704,7 @@ msgstr "" "especializadas (como :class:`str`, :class:`bytes` y :class:`bytearray`) " "también se pueden usar para comprobar si está incluida una secuencia::" -#: ../Doc/library/stdtypes.rst:984 +#: ../Doc/library/stdtypes.rst:1026 msgid "" "Values of *n* less than ``0`` are treated as ``0`` (which yields an empty " "sequence of the same type as *s*). Note that items in the sequence *s* are " @@ -1651,7 +1716,7 @@ msgstr "" "secuencia *s* no se copian, sino que se referencian múltiples veces. Esto a " "menudo confunde a programadores noveles de Python; considérese::" -#: ../Doc/library/stdtypes.rst:996 +#: ../Doc/library/stdtypes.rst:1038 msgid "" "What has happened is that ``[[]]`` is a one-element list containing an empty " "list, so all three elements of ``[[]] * 3`` are references to this single " @@ -1664,7 +1729,7 @@ msgstr "" "``lists`` modifica la lista inicial. Para crear una lista de listas " "independientes entre si, se puede hacer::" -#: ../Doc/library/stdtypes.rst:1008 +#: ../Doc/library/stdtypes.rst:1050 msgid "" "Further explanation is available in the FAQ entry :ref:`faq-multidimensional-" "list`." @@ -1672,7 +1737,7 @@ msgstr "" "Se puede consultar una explicación más completa en esta entrada de la lista " "de preguntas más frecuentes :ref:`faq-multidimensional-list`." -#: ../Doc/library/stdtypes.rst:1012 +#: ../Doc/library/stdtypes.rst:1054 msgid "" "If *i* or *j* is negative, the index is relative to the end of sequence *s*: " "``len(s) + i`` or ``len(s) + j`` is substituted. But note that ``-0`` is " @@ -1682,7 +1747,7 @@ msgstr "" "*s*: Se realiza la sustitución ``len(s) + i`` o ``len(s) + j``. Nótese que " "``-0`` sigue siendo ``0``." -#: ../Doc/library/stdtypes.rst:1017 +#: ../Doc/library/stdtypes.rst:1059 msgid "" "The slice of *s* from *i* to *j* is defined as the sequence of items with " "index *k* such that ``i <= k < j``. If *i* or *j* is greater than " @@ -1696,7 +1761,7 @@ msgstr "" "``0``. Si *j* se omite o es ``None``, se usa ``len(s)``. Si *i* es mayor o " "igual a *j*, el segmento está vacío." -#: ../Doc/library/stdtypes.rst:1024 +#: ../Doc/library/stdtypes.rst:1066 msgid "" "The slice of *s* from *i* to *j* with step *k* is defined as the sequence of " "items with index ``x = i + n*k`` such that ``0 <= n < (j-i)/k``. In other " @@ -1719,7 +1784,7 @@ msgstr "" "Nótese que *k* no puede valer ``0``. Si *k* vale ``None``, se considera como " "``1``." -#: ../Doc/library/stdtypes.rst:1035 +#: ../Doc/library/stdtypes.rst:1077 msgid "" "Concatenating immutable sequences always results in a new object. This " "means that building up a sequence by repeated concatenation will have a " @@ -1732,7 +1797,7 @@ msgstr "" "obtener un rendimiento lineal, se puede optar por una de las alternativas " "siguientes:" -#: ../Doc/library/stdtypes.rst:1040 +#: ../Doc/library/stdtypes.rst:1082 msgid "" "if concatenating :class:`str` objects, you can build a list and use :meth:" "`str.join` at the end or else write to an :class:`io.StringIO` instance and " @@ -1744,7 +1809,7 @@ msgstr "" "completo" # Duda sobre como traducir *in place* -#: ../Doc/library/stdtypes.rst:1044 +#: ../Doc/library/stdtypes.rst:1086 msgid "" "if concatenating :class:`bytes` objects, you can similarly use :meth:`bytes." "join` or :class:`io.BytesIO`, or you can do in-place concatenation with a :" @@ -1757,17 +1822,17 @@ msgstr "" "`bytearray`. Los objetos de tipo :class:`bytearray` son mutables y tienen un " "mecanismo interno de gestión muy eficiente" -#: ../Doc/library/stdtypes.rst:1049 +#: ../Doc/library/stdtypes.rst:1091 msgid "if concatenating :class:`tuple` objects, extend a :class:`list` instead" msgstr "" "en vez de concatenar tuplas (instancias de :class:`tuple`), usar una lista (:" "class:`list`) y expandirla" -#: ../Doc/library/stdtypes.rst:1051 +#: ../Doc/library/stdtypes.rst:1093 msgid "for other types, investigate the relevant class documentation" msgstr "para otros tipos, investiga la documentación relevante de la clase" -#: ../Doc/library/stdtypes.rst:1055 +#: ../Doc/library/stdtypes.rst:1097 msgid "" "Some sequence types (such as :class:`range`) only support item sequences " "that follow specific patterns, and hence don't support sequence " @@ -1777,7 +1842,7 @@ msgstr "" "elementos que siguen un patrón específico, y por tanto no soportan la " "concatenación ni la repetición." -#: ../Doc/library/stdtypes.rst:1060 +#: ../Doc/library/stdtypes.rst:1102 msgid "" "``index`` raises :exc:`ValueError` when *x* is not found in *s*. Not all " "implementations support passing the additional arguments *i* and *j*. These " @@ -1794,11 +1859,11 @@ msgstr "" "índice retornado como valor relativo al inicio de la secuencia, en vez de al " "inicio del segmento." -#: ../Doc/library/stdtypes.rst:1071 +#: ../Doc/library/stdtypes.rst:1113 msgid "Immutable Sequence Types" msgstr "Tipos de secuencia inmutables" -#: ../Doc/library/stdtypes.rst:1078 +#: ../Doc/library/stdtypes.rst:1120 msgid "" "The only operation that immutable sequence types generally implement that is " "not also implemented by mutable sequence types is support for the :func:" @@ -1808,7 +1873,7 @@ msgstr "" "que no esta definida también en las secuencias mutables, es el soporte para " "el cálculo de la función predefinida :func:`hash`." -#: ../Doc/library/stdtypes.rst:1082 +#: ../Doc/library/stdtypes.rst:1124 msgid "" "This support allows immutable sequences, such as :class:`tuple` instances, " "to be used as :class:`dict` keys and stored in :class:`set` and :class:" @@ -1819,7 +1884,7 @@ msgstr "" "`dict`), así como ser almacenadas en conjuntos (:class:`set`) o conjuntos " "congelados (:class:`frozenset`)." -#: ../Doc/library/stdtypes.rst:1086 +#: ../Doc/library/stdtypes.rst:1128 msgid "" "Attempting to hash an immutable sequence that contains unhashable values " "will result in :exc:`TypeError`." @@ -1827,11 +1892,11 @@ msgstr "" "Intentar calcular el *hash* de una secuencia inmutable que contenga objetos " "mutables producirá una excepción de tipo :exc:`TypeError`." -#: ../Doc/library/stdtypes.rst:1093 +#: ../Doc/library/stdtypes.rst:1135 msgid "Mutable Sequence Types" msgstr "Tipos de secuencia mutables" -#: ../Doc/library/stdtypes.rst:1100 +#: ../Doc/library/stdtypes.rst:1142 msgid "" "The operations in the following table are defined on mutable sequence types. " "The :class:`collections.abc.MutableSequence` ABC is provided to make it " @@ -1842,7 +1907,7 @@ msgstr "" "se incluye para facilitar la implementación correcta de un tipo de secuencia " "propio." -#: ../Doc/library/stdtypes.rst:1104 +#: ../Doc/library/stdtypes.rst:1146 msgid "" "In the table *s* is an instance of a mutable sequence type, *t* is any " "iterable object and *x* is an arbitrary object that meets any type and value " @@ -1855,81 +1920,81 @@ msgstr "" "clase :class:`bytearray` solo acepta enteros que cumplan la condición ``0 <= " "x <= 255``)." -#: ../Doc/library/stdtypes.rst:1128 +#: ../Doc/library/stdtypes.rst:1170 msgid "``s[i] = x``" msgstr "``s[i] = x``" -#: ../Doc/library/stdtypes.rst:1128 +#: ../Doc/library/stdtypes.rst:1170 msgid "item *i* of *s* is replaced by *x*" msgstr "el elemento *i* de *s* es reemplazado por *x*" -#: ../Doc/library/stdtypes.rst:1131 +#: ../Doc/library/stdtypes.rst:1173 msgid "``s[i:j] = t``" msgstr "``s[i:j] = t``" -#: ../Doc/library/stdtypes.rst:1131 +#: ../Doc/library/stdtypes.rst:1173 msgid "" "slice of *s* from *i* to *j* is replaced by the contents of the iterable *t*" msgstr "" "el segmento de valores de *s* que van de *i* a *j* es reemplazada por el " "contenido del iterador *t*" -#: ../Doc/library/stdtypes.rst:1135 +#: ../Doc/library/stdtypes.rst:1177 msgid "``del s[i:j]``" msgstr "``del s[i:j]``" -#: ../Doc/library/stdtypes.rst:1135 +#: ../Doc/library/stdtypes.rst:1177 msgid "same as ``s[i:j] = []``" msgstr "equivalente a ``s[i:j] = []``" -#: ../Doc/library/stdtypes.rst:1137 +#: ../Doc/library/stdtypes.rst:1179 msgid "``s[i:j:k] = t``" msgstr "``s[i:j:k] = t``" -#: ../Doc/library/stdtypes.rst:1137 +#: ../Doc/library/stdtypes.rst:1179 msgid "the elements of ``s[i:j:k]`` are replaced by those of *t*" msgstr "" "los elementos de ``s[i:j:k]`` son reemplazados por los elementos de *t*" -#: ../Doc/library/stdtypes.rst:1140 +#: ../Doc/library/stdtypes.rst:1182 msgid "``del s[i:j:k]``" msgstr "``del s[i:j:k]``" -#: ../Doc/library/stdtypes.rst:1140 +#: ../Doc/library/stdtypes.rst:1182 msgid "removes the elements of ``s[i:j:k]`` from the list" msgstr "borra los elementos de ``s[i:j:k]`` de la lista" -#: ../Doc/library/stdtypes.rst:1143 +#: ../Doc/library/stdtypes.rst:1185 msgid "``s.append(x)``" msgstr "``s.append(x)``" -#: ../Doc/library/stdtypes.rst:1143 +#: ../Doc/library/stdtypes.rst:1185 msgid "" "appends *x* to the end of the sequence (same as ``s[len(s):len(s)] = [x]``)" msgstr "" "añade *x* al final de la secuencia (equivale a ``s[len(s):len(s)] = [x]``)" -#: ../Doc/library/stdtypes.rst:1147 +#: ../Doc/library/stdtypes.rst:1189 msgid "``s.clear()``" msgstr "``s.clear()``" -#: ../Doc/library/stdtypes.rst:1147 +#: ../Doc/library/stdtypes.rst:1189 msgid "removes all items from *s* (same as ``del s[:]``)" msgstr "elimina todos los elementos de *s* (equivale a ``del s[:]``)" -#: ../Doc/library/stdtypes.rst:1150 +#: ../Doc/library/stdtypes.rst:1192 msgid "``s.copy()``" msgstr "``s.copy()``" -#: ../Doc/library/stdtypes.rst:1150 +#: ../Doc/library/stdtypes.rst:1192 msgid "creates a shallow copy of *s* (same as ``s[:]``)" msgstr "crea una copia superficial de *s* (equivale a ``s[:]``)" -#: ../Doc/library/stdtypes.rst:1153 +#: ../Doc/library/stdtypes.rst:1195 msgid "``s.extend(t)`` or ``s += t``" msgstr "``s.extend(t)`` o ``s += t``" -#: ../Doc/library/stdtypes.rst:1153 +#: ../Doc/library/stdtypes.rst:1195 msgid "" "extends *s* with the contents of *t* (for the most part the same as " "``s[len(s):len(s)] = t``)" @@ -1937,59 +2002,59 @@ msgstr "" "extiende *s* con los contenidos de *t* (en la mayoría de los casos equivale " "a ``s[len(s):len(s)] = t``)" -#: ../Doc/library/stdtypes.rst:1158 +#: ../Doc/library/stdtypes.rst:1200 msgid "``s *= n``" msgstr "``s *= n``" -#: ../Doc/library/stdtypes.rst:1158 +#: ../Doc/library/stdtypes.rst:1200 msgid "updates *s* with its contents repeated *n* times" msgstr "actualiza *s* con su contenido repetido *n* veces" -#: ../Doc/library/stdtypes.rst:1161 +#: ../Doc/library/stdtypes.rst:1203 msgid "``s.insert(i, x)``" msgstr "``s.insert(i, x)``" -#: ../Doc/library/stdtypes.rst:1161 +#: ../Doc/library/stdtypes.rst:1203 msgid "" "inserts *x* into *s* at the index given by *i* (same as ``s[i:i] = [x]``)" msgstr "" "inserta *x* en *s* en la posición indicada por el índice *i* (equivale a " "``s[i:i] = [x]``)" -#: ../Doc/library/stdtypes.rst:1165 +#: ../Doc/library/stdtypes.rst:1207 msgid "``s.pop()`` or ``s.pop(i)``" msgstr "``s.pop()`` o ``s.pop(i)``" -#: ../Doc/library/stdtypes.rst:1165 +#: ../Doc/library/stdtypes.rst:1207 msgid "retrieves the item at *i* and also removes it from *s*" msgstr "" "retorna el elemento en la posición indicada por *i*, y a la vez lo elimina " "de la secuencia *s*" -#: ../Doc/library/stdtypes.rst:1168 +#: ../Doc/library/stdtypes.rst:1210 msgid "``s.remove(x)``" msgstr "``s.remove(x)``" -#: ../Doc/library/stdtypes.rst:1168 +#: ../Doc/library/stdtypes.rst:1210 msgid "remove the first item from *s* where ``s[i]`` is equal to *x*" msgstr "elimina el primer elemento de *s* tal que ``s[i]`` sea igual a *x*" -#: ../Doc/library/stdtypes.rst:1171 +#: ../Doc/library/stdtypes.rst:1213 msgid "``s.reverse()``" msgstr "``s.reverse()``" # Duda sobre como traducir *in place* -#: ../Doc/library/stdtypes.rst:1171 +#: ../Doc/library/stdtypes.rst:1213 msgid "reverses the items of *s* in place" msgstr "invierte el orden de los elementos de *s*, a nivel interno" -#: ../Doc/library/stdtypes.rst:1179 +#: ../Doc/library/stdtypes.rst:1221 msgid "*t* must have the same length as the slice it is replacing." msgstr "" "La secuencia *t* debe tener la misma longitud que el segmento a la que " "reemplaza." -#: ../Doc/library/stdtypes.rst:1182 +#: ../Doc/library/stdtypes.rst:1224 msgid "" "The optional argument *i* defaults to ``-1``, so that by default the last " "item is removed and returned." @@ -1998,14 +2063,14 @@ msgstr "" "no se especifica se retorna el último valor y este se elimina de la " "secuencia." -#: ../Doc/library/stdtypes.rst:1186 +#: ../Doc/library/stdtypes.rst:1228 msgid ":meth:`remove` raises :exc:`ValueError` when *x* is not found in *s*." msgstr "" "El método :meth:`remove` lanza la excepción :exc:`ValueError` cuando no se " "encuentra *x* en *s*." # side effect ' efecto secundario? -#: ../Doc/library/stdtypes.rst:1189 +#: ../Doc/library/stdtypes.rst:1231 msgid "" "The :meth:`reverse` method modifies the sequence in place for economy of " "space when reversing a large sequence. To remind users that it operates by " @@ -2016,7 +2081,7 @@ msgstr "" "usuario de que el método produce un efecto secundario, no se retorna la " "secuencia invertida." -#: ../Doc/library/stdtypes.rst:1194 +#: ../Doc/library/stdtypes.rst:1236 msgid "" ":meth:`clear` and :meth:`!copy` are included for consistency with the " "interfaces of mutable containers that don't support slicing operations (such " @@ -2030,11 +2095,11 @@ msgstr "" "parte de la clase ABC :class:`collections.abc.MutableSequence`, pero la " "mayoría de las clases finales de tipo secuencia mutable lo incluyen." -#: ../Doc/library/stdtypes.rst:1200 +#: ../Doc/library/stdtypes.rst:1242 msgid ":meth:`clear` and :meth:`!copy` methods." msgstr "Los métodos :meth:`clear` y :meth:`!copy`." -#: ../Doc/library/stdtypes.rst:1204 +#: ../Doc/library/stdtypes.rst:1246 msgid "" "The value *n* is an integer, or an object implementing :meth:`~object." "__index__`. Zero and negative values of *n* clear the sequence. Items in " @@ -2047,11 +2112,11 @@ msgstr "" "referencian múltiples veces, tal y como se explicó para ``s * n`` en :ref:" "`typesseq-common`." -#: ../Doc/library/stdtypes.rst:1213 +#: ../Doc/library/stdtypes.rst:1255 msgid "Lists" msgstr "Listas" -#: ../Doc/library/stdtypes.rst:1217 +#: ../Doc/library/stdtypes.rst:1259 msgid "" "Lists are mutable sequences, typically used to store collections of " "homogeneous items (where the precise degree of similarity will vary by " @@ -2061,31 +2126,31 @@ msgstr "" "colecciones de elementos homogéneos (donde el grado de similitud de los " "mismos depende de la aplicación)." -#: ../Doc/library/stdtypes.rst:1223 +#: ../Doc/library/stdtypes.rst:1265 msgid "Lists may be constructed in several ways:" msgstr "Las listas se pueden construir de diferentes formas:" -#: ../Doc/library/stdtypes.rst:1225 +#: ../Doc/library/stdtypes.rst:1267 msgid "Using a pair of square brackets to denote the empty list: ``[]``" msgstr "Usando un par de corchetes para definir una lista vacía: ``[]``" -#: ../Doc/library/stdtypes.rst:1226 +#: ../Doc/library/stdtypes.rst:1268 msgid "" "Using square brackets, separating items with commas: ``[a]``, ``[a, b, c]``" msgstr "" "Usando corchetes, separando los elementos incluidos con comas: ``[a]``, " "``[a, b, c]``" -#: ../Doc/library/stdtypes.rst:1227 +#: ../Doc/library/stdtypes.rst:1269 msgid "Using a list comprehension: ``[x for x in iterable]``" msgstr "" "Usando una lista intensiva o por comprensión: ``[x for x in iterable]``" -#: ../Doc/library/stdtypes.rst:1228 +#: ../Doc/library/stdtypes.rst:1270 msgid "Using the type constructor: ``list()`` or ``list(iterable)``" msgstr "Usando el constructor de tipo: ``list()`` o ``list(iterable)``" -#: ../Doc/library/stdtypes.rst:1230 +#: ../Doc/library/stdtypes.rst:1272 msgid "" "The constructor builds a list whose items are the same and in the same order " "as *iterable*'s items. *iterable* may be either a sequence, a container " @@ -2104,7 +2169,7 @@ msgstr "" "construye una nueva lista vacía, ``[]``." # Traduccion de built-ins -#: ../Doc/library/stdtypes.rst:1239 +#: ../Doc/library/stdtypes.rst:1281 msgid "" "Many other operations also produce lists, including the :func:`sorted` built-" "in." @@ -2112,7 +2177,7 @@ msgstr "" "Muchas otras operaciones también producen listas, incluyendo la función " "incorporada :func:`sorted`." -#: ../Doc/library/stdtypes.rst:1242 +#: ../Doc/library/stdtypes.rst:1284 msgid "" "Lists implement all of the :ref:`common ` and :ref:`mutable " "` sequence operations. Lists also provide the following " @@ -2122,7 +2187,7 @@ msgstr "" "common>` y :ref:`mutables ` propias de las secuencias. " "Además, las listas incorporan los siguientes métodos:" -#: ../Doc/library/stdtypes.rst:1248 +#: ../Doc/library/stdtypes.rst:1290 msgid "" "This method sorts the list in place, using only ``<`` comparisons between " "items. Exceptions are not suppressed - if any comparison operations fail, " @@ -2135,7 +2200,7 @@ msgstr "" "falla (y la lista probablemente haya quedado modificada parcialmente)." # Ver como se ha traducido la referencia. -#: ../Doc/library/stdtypes.rst:1253 +#: ../Doc/library/stdtypes.rst:1295 msgid "" ":meth:`sort` accepts two arguments that can only be passed by keyword (:ref:" "`keyword-only arguments `):" @@ -2143,7 +2208,7 @@ msgstr "" "El método :meth:`sort` acepta dos parámetros, que solo pueden pasarse por " "nombre (:ref:`keyword-only arguments `):" -#: ../Doc/library/stdtypes.rst:1256 +#: ../Doc/library/stdtypes.rst:1298 msgid "" "*key* specifies a function of one argument that is used to extract a " "comparison key from each list element (for example, ``key=str.lower``). The " @@ -2159,7 +2224,7 @@ msgstr "" "que la lista se ordene comparando directamente los elementos, sin obtener " "valores clave." -#: ../Doc/library/stdtypes.rst:1263 +#: ../Doc/library/stdtypes.rst:1305 msgid "" "The :func:`functools.cmp_to_key` utility is available to convert a 2.x style " "*cmp* function to a *key* function." @@ -2167,7 +2232,7 @@ msgstr "" "La utilidad :func:`functools.cmp_to_key` se puede usar para convertir una " "función *cmp* del estilo de la versión 2.x a una función *key*." -#: ../Doc/library/stdtypes.rst:1266 +#: ../Doc/library/stdtypes.rst:1308 msgid "" "*reverse* is a boolean value. If set to ``True``, then the list elements " "are sorted as if each comparison were reversed." @@ -2176,7 +2241,7 @@ msgstr "" "entonces los elementos de la lista se ordenan como si las operaciones de " "comparación se hubiesen invertido." -#: ../Doc/library/stdtypes.rst:1269 +#: ../Doc/library/stdtypes.rst:1311 msgid "" "This method modifies the sequence in place for economy of space when sorting " "a large sequence. To remind users that it operates by side effect, it does " @@ -2188,7 +2253,7 @@ msgstr "" "de esta manera, no se retorna la secuencia ordenada (puedes usar :func:" "`sorted` para obtener de forma explicita una nueva secuencia ordenada)." -#: ../Doc/library/stdtypes.rst:1274 +#: ../Doc/library/stdtypes.rst:1316 msgid "" "The :meth:`sort` method is guaranteed to be stable. A sort is stable if it " "guarantees not to change the relative order of elements that compare equal " @@ -2201,14 +2266,14 @@ msgstr "" "ordenaciones en múltiples fases (por ejemplo, ordenar por departamento y " "después por salario)." -#: ../Doc/library/stdtypes.rst:1279 +#: ../Doc/library/stdtypes.rst:1321 msgid "" "For sorting examples and a brief sorting tutorial, see :ref:`sortinghowto`." msgstr "" "Para ver ejemplos de ordenación y un breve tutorial sobre el tema, véase :" "ref:`sortinghowto`." -#: ../Doc/library/stdtypes.rst:1283 +#: ../Doc/library/stdtypes.rst:1325 msgid "" "While a list is being sorted, the effect of attempting to mutate, or even " "inspect, the list is undefined. The C implementation of Python makes the " @@ -2221,11 +2286,11 @@ msgstr "" "una excepción del tipo :exc:`ValueError` si detecta un cambio en la lista " "durante el proceso de ordenación." -#: ../Doc/library/stdtypes.rst:1292 +#: ../Doc/library/stdtypes.rst:1334 msgid "Tuples" msgstr "Tuplas" -#: ../Doc/library/stdtypes.rst:1296 +#: ../Doc/library/stdtypes.rst:1338 msgid "" "Tuples are immutable sequences, typically used to store collections of " "heterogeneous data (such as the 2-tuples produced by the :func:`enumerate` " @@ -2240,32 +2305,32 @@ msgstr "" "homogéneos (como por ejemplo permitir el almacenamiento en un objeto de " "tipo :class:`set` o :class:`dict`)." -#: ../Doc/library/stdtypes.rst:1304 +#: ../Doc/library/stdtypes.rst:1346 msgid "Tuples may be constructed in a number of ways:" msgstr "Las tuplas se pueden construir de diferentes maneras:" -#: ../Doc/library/stdtypes.rst:1306 +#: ../Doc/library/stdtypes.rst:1348 msgid "Using a pair of parentheses to denote the empty tuple: ``()``" msgstr "" "Usando un par de símbolos de paréntesis, para indicar una tupla vacía: ``()``" -#: ../Doc/library/stdtypes.rst:1307 +#: ../Doc/library/stdtypes.rst:1349 msgid "Using a trailing comma for a singleton tuple: ``a,`` or ``(a,)``" msgstr "" "Usando una coma al final, para crear una tupla de un único elemento: ``a,`` " "o ``(a,)``" -#: ../Doc/library/stdtypes.rst:1308 +#: ../Doc/library/stdtypes.rst:1350 msgid "Separating items with commas: ``a, b, c`` or ``(a, b, c)``" msgstr "Separando los elementos por comas: ``a, b, c`` o ``(a, b, c)``" -#: ../Doc/library/stdtypes.rst:1309 +#: ../Doc/library/stdtypes.rst:1351 msgid "Using the :func:`tuple` built-in: ``tuple()`` or ``tuple(iterable)``" msgstr "" "Usando la función incorporada :func:`tuple`: ``tuple()`` o " "``tuple(iterable)``" -#: ../Doc/library/stdtypes.rst:1311 +#: ../Doc/library/stdtypes.rst:1353 msgid "" "The constructor builds a tuple whose items are the same and in the same " "order as *iterable*'s items. *iterable* may be either a sequence, a " @@ -2283,7 +2348,7 @@ msgstr "" "3] )`` retorna ``(1, 2, 3)``. Si no se indica ningún parámetro, el " "constructor creará una nueva tupla vacía. ``()``." -#: ../Doc/library/stdtypes.rst:1319 +#: ../Doc/library/stdtypes.rst:1361 msgid "" "Note that it is actually the comma which makes a tuple, not the parentheses. " "The parentheses are optional, except in the empty tuple case, or when they " @@ -2298,7 +2363,7 @@ msgstr "" "pero ``f((a, b, c))`` es una llamada a una función con un único parámetro, " "en este caso una tupla de tres elementos." -#: ../Doc/library/stdtypes.rst:1325 +#: ../Doc/library/stdtypes.rst:1367 msgid "" "Tuples implement all of the :ref:`common ` sequence " "operations." @@ -2306,7 +2371,7 @@ msgstr "" "Las tuplas implementan todas las operaciones de secuencia :ref:`comunes " "`." -#: ../Doc/library/stdtypes.rst:1328 +#: ../Doc/library/stdtypes.rst:1370 msgid "" "For heterogeneous collections of data where access by name is clearer than " "access by index, :func:`collections.namedtuple` may be a more appropriate " @@ -2316,11 +2381,11 @@ msgstr "" "más claro que por índice, quizá crear una tupla con nombres (:func:" "`collections.namedtuple`) pueden ser más apropiado." -#: ../Doc/library/stdtypes.rst:1336 +#: ../Doc/library/stdtypes.rst:1378 msgid "Ranges" msgstr "Rangos" -#: ../Doc/library/stdtypes.rst:1340 +#: ../Doc/library/stdtypes.rst:1382 msgid "" "The :class:`range` type represents an immutable sequence of numbers and is " "commonly used for looping a specific number of times in :keyword:`for` loops." @@ -2329,7 +2394,7 @@ msgstr "" "números y se usan habitualmente para ejecutar un bucle :keyword:`for` un " "número determinado de veces." -#: ../Doc/library/stdtypes.rst:1347 +#: ../Doc/library/stdtypes.rst:1389 msgid "" "The arguments to the range constructor must be integers (either built-in :" "class:`int` or any object that implements the :meth:`~object.__index__` " @@ -2344,7 +2409,7 @@ msgstr "" "``start``, se toma como ``0``. Si *step* es cero, se lanza una excepción de " "tipo :exc:`ValueError`." -#: ../Doc/library/stdtypes.rst:1353 +#: ../Doc/library/stdtypes.rst:1395 msgid "" "For a positive *step*, the contents of a range ``r`` are determined by the " "formula ``r[i] = start + step*i`` where ``i >= 0`` and ``r[i] < stop``." @@ -2353,7 +2418,7 @@ msgstr "" "determinado por la fórmula ``r[i] = start + step*i`` donde ``i >= 0`` y " "``r[i] < stop``." -#: ../Doc/library/stdtypes.rst:1357 +#: ../Doc/library/stdtypes.rst:1399 msgid "" "For a negative *step*, the contents of the range are still determined by the " "formula ``r[i] = start + step*i``, but the constraints are ``i >= 0`` and " @@ -2363,7 +2428,7 @@ msgstr "" "determinado por la fórmula ``r[i] = start + step*i``, pero las restricciones " "ahora son ``i >= 0`` y ``r[i] > stop``." -#: ../Doc/library/stdtypes.rst:1361 +#: ../Doc/library/stdtypes.rst:1403 msgid "" "A range object will be empty if ``r[0]`` does not meet the value constraint. " "Ranges do support negative indices, but these are interpreted as indexing " @@ -2374,7 +2439,7 @@ msgstr "" "son interpretados como índices considerados desde el final de la secuencia " "determinada por los índices positivos." -#: ../Doc/library/stdtypes.rst:1366 +#: ../Doc/library/stdtypes.rst:1408 msgid "" "Ranges containing absolute values larger than :data:`sys.maxsize` are " "permitted but some features (such as :func:`len`) may raise :exc:" @@ -2384,11 +2449,11 @@ msgstr "" "permiten, pero algunas capacidades (como la función :func:`len`) pueden " "lanzar una excepción de tipo :exc:`OverflowError`." -#: ../Doc/library/stdtypes.rst:1370 +#: ../Doc/library/stdtypes.rst:1412 msgid "Range examples::" msgstr "Ejemplos de rangos::" -#: ../Doc/library/stdtypes.rst:1387 +#: ../Doc/library/stdtypes.rst:1429 msgid "" "Ranges implement all of the :ref:`common ` sequence " "operations except concatenation and repetition (due to the fact that range " @@ -2401,23 +2466,23 @@ msgstr "" "que siguen un patrón estricto, y tanto la repetición como la concatenación " "pueden romperlo)." -#: ../Doc/library/stdtypes.rst:1394 +#: ../Doc/library/stdtypes.rst:1436 msgid "" "The value of the *start* parameter (or ``0`` if the parameter was not " "supplied)" msgstr "El valor del parámetro *start* (``0`` si no se utiliza el parámetro)" -#: ../Doc/library/stdtypes.rst:1399 +#: ../Doc/library/stdtypes.rst:1441 msgid "The value of the *stop* parameter" msgstr "El valor del parámetro *stop*" -#: ../Doc/library/stdtypes.rst:1403 +#: ../Doc/library/stdtypes.rst:1445 msgid "" "The value of the *step* parameter (or ``1`` if the parameter was not " "supplied)" msgstr "El valor del parámetro *step* (``1`` si no se utiliza el parámetro)" -#: ../Doc/library/stdtypes.rst:1406 +#: ../Doc/library/stdtypes.rst:1448 msgid "" "The advantage of the :class:`range` type over a regular :class:`list` or :" "class:`tuple` is that a :class:`range` object will always take the same " @@ -2432,7 +2497,7 @@ msgstr "" "``stop`` y ``step``, y calcula los valores intermedios a medida que los va " "necesitando)." -#: ../Doc/library/stdtypes.rst:1412 +#: ../Doc/library/stdtypes.rst:1454 msgid "" "Range objects implement the :class:`collections.abc.Sequence` ABC, and " "provide features such as containment tests, element index lookup, slicing " @@ -2443,7 +2508,7 @@ msgstr "" "búsqueda de elementos por índice, operaciones de segmentación y soporte de " "índices negativos (véase :ref:`typesseq`):" -#: ../Doc/library/stdtypes.rst:1432 +#: ../Doc/library/stdtypes.rst:1474 msgid "" "Testing range objects for equality with ``==`` and ``!=`` compares them as " "sequences. That is, two range objects are considered equal if they " @@ -2460,7 +2525,7 @@ msgstr "" "`~range.step`, por ejemplo ``range(0) == range(2, 1, 3)`` y ``range(0, 3, 2) " "== range(0, 4, 2)``)." -#: ../Doc/library/stdtypes.rst:1439 +#: ../Doc/library/stdtypes.rst:1481 msgid "" "Implement the Sequence ABC. Support slicing and negative indices. Test :" "class:`int` objects for membership in constant time instead of iterating " @@ -2471,7 +2536,7 @@ msgstr "" "rango que se realiza en un tiempo constante, en lugar de iterar a través de " "todos los elementos." -#: ../Doc/library/stdtypes.rst:1445 +#: ../Doc/library/stdtypes.rst:1487 msgid "" "Define '==' and '!=' to compare range objects based on the sequence of " "values they define (instead of comparing based on object identity)." @@ -2480,7 +2545,7 @@ msgstr "" "secuencia de valores que definen (en vez de compararse en base a la " "identidad)." -#: ../Doc/library/stdtypes.rst:1450 +#: ../Doc/library/stdtypes.rst:1492 msgid "" "The :attr:`~range.start`, :attr:`~range.stop` and :attr:`~range.step` " "attributes." @@ -2488,7 +2553,7 @@ msgstr "" "Los atributos :attr:`~range.start`, :attr:`~range.stop` y :attr:`~range." "step`." -#: ../Doc/library/stdtypes.rst:1456 +#: ../Doc/library/stdtypes.rst:1498 msgid "" "The `linspace recipe `_ shows " "how to implement a lazy version of range suitable for floating point " @@ -2498,12 +2563,12 @@ msgstr "" "muestra como implementar una versión *lazy* o perezosa de rango adecuada " "para aplicaciones de coma flotante." -#: ../Doc/library/stdtypes.rst:1468 +#: ../Doc/library/stdtypes.rst:1510 msgid "Text Sequence Type --- :class:`str`" msgstr "Cadenas de caracteres --- :class:`str`" # Comprobar la definicion de cadenas -#: ../Doc/library/stdtypes.rst:1470 +#: ../Doc/library/stdtypes.rst:1512 msgid "" "Textual data in Python is handled with :class:`str` objects, or :dfn:" "`strings`. Strings are immutable :ref:`sequences ` of Unicode code " @@ -2515,15 +2580,15 @@ msgstr "" "inmutables de puntos de código Unicode. Las cadenas se pueden definir de " "diferentes maneras:" -#: ../Doc/library/stdtypes.rst:1475 +#: ../Doc/library/stdtypes.rst:1517 msgid "Single quotes: ``'allows embedded \"double\" quotes'``" msgstr "Comillas simples: ``'permite incluir comillas \"dobles\"'``" -#: ../Doc/library/stdtypes.rst:1476 +#: ../Doc/library/stdtypes.rst:1518 msgid "Double quotes: ``\"allows embedded 'single' quotes\"``" msgstr "Comillas dobles: ``\"permite incluir comillas 'simples'\"``" -#: ../Doc/library/stdtypes.rst:1477 +#: ../Doc/library/stdtypes.rst:1519 msgid "" "Triple quoted: ``'''Three single quotes'''``, ``\"\"\"Three double " "quotes\"\"\"``" @@ -2531,7 +2596,7 @@ msgstr "" "Triples comillas: ya sea con comillas simples ``'''Triples comillas " "simples'''`` o dobles ``\"\"\"Triples comillas dobles\"\"\"``" -#: ../Doc/library/stdtypes.rst:1479 +#: ../Doc/library/stdtypes.rst:1521 msgid "" "Triple quoted strings may span multiple lines - all associated whitespace " "will be included in the string literal." @@ -2540,7 +2605,7 @@ msgstr "" "todos los espacios en blancos incluidos se incorporan a la cadena de forma " "literal." -#: ../Doc/library/stdtypes.rst:1482 +#: ../Doc/library/stdtypes.rst:1524 msgid "" "String literals that are part of a single expression and have only " "whitespace between them will be implicitly converted to a single string " @@ -2550,7 +2615,7 @@ msgstr "" "separados por espacios en blanco, se convertirán implícitamente a una única " "cadena. Esto es, ``(\"spam \" \"eggs\") == \"spam eggs\"``." -#: ../Doc/library/stdtypes.rst:1486 +#: ../Doc/library/stdtypes.rst:1528 msgid "" "See :ref:`strings` for more about the various forms of string literal, " "including supported escape sequences, and the ``r`` (\"raw\") prefix that " @@ -2561,7 +2626,7 @@ msgstr "" "prefijo ``r`` (\"*raw*\") que deshabilita el procesamiento de la mayoría de " "dichas secuencias de escape." -#: ../Doc/library/stdtypes.rst:1490 +#: ../Doc/library/stdtypes.rst:1532 msgid "" "Strings may also be created from other objects using the :class:`str` " "constructor." @@ -2569,7 +2634,7 @@ msgstr "" "Las cadenas de caracteres también se pueden crear usando el constructor :" "class:`str`." -#: ../Doc/library/stdtypes.rst:1493 +#: ../Doc/library/stdtypes.rst:1535 msgid "" "Since there is no separate \"character\" type, indexing a string produces " "strings of length 1. That is, for a non-empty string *s*, ``s[0] == s[0:1]``." @@ -2579,7 +2644,7 @@ msgstr "" "vacía *s*, ``s[0] == s[0:1]``." # fragmentos suena raro -#: ../Doc/library/stdtypes.rst:1499 +#: ../Doc/library/stdtypes.rst:1541 msgid "" "There is also no mutable string type, but :meth:`str.join` or :class:`io." "StringIO` can be used to efficiently construct strings from multiple " @@ -2589,7 +2654,7 @@ msgstr "" "método :meth:`str.join` o la clase :class:`io.StringIO` pueden usarse para " "construir de forma eficiente una cadena de caracteres a partir de fragmentos." -#: ../Doc/library/stdtypes.rst:1503 +#: ../Doc/library/stdtypes.rst:1545 msgid "" "For backwards compatibility with the Python 2 series, the ``u`` prefix is " "once again permitted on string literals. It has no effect on the meaning of " @@ -2599,7 +2664,7 @@ msgstr "" "``u`` se permite en las cadenas de caracteres. No tiene ningún efecto en la " "interpretación del literal y no se puede combinar con el prefijo ``r``." -#: ../Doc/library/stdtypes.rst:1515 +#: ../Doc/library/stdtypes.rst:1557 msgid "" "Return a :ref:`string ` version of *object*. If *object* is not " "provided, returns the empty string. Otherwise, the behavior of ``str()`` " @@ -2610,13 +2675,14 @@ msgstr "" "se proporciona, el comportamiento de ``str()`` depende de los valores " "pasados en los parámetros *encoding* y *errors*, como veremos." -#: ../Doc/library/stdtypes.rst:1519 +#: ../Doc/library/stdtypes.rst:1561 +#, fuzzy msgid "" "If neither *encoding* nor *errors* is given, ``str(object)`` returns :meth:" "`type(object).__str__(object) `, which is the \"informal\" " "or nicely printable string representation of *object*. For string objects, " "this is the string itself. If *object* does not have a :meth:`~object." -"__str__` method, then :func:`str` falls back to returning :meth:" +"__str__` method, then :func:`str` falls back to returning :func:" "`repr(object) `." msgstr "" "Si no se especifica ni *encoding* ni *errors*, ``str(object)`` retorna :meth:" @@ -2626,7 +2692,7 @@ msgstr "" "*object* no tiene un método :meth:`~object.__str__`, entonces :func:`str` " "usará como reemplazo el método :meth:`repr(object) `." -#: ../Doc/library/stdtypes.rst:1531 +#: ../Doc/library/stdtypes.rst:1573 msgid "" "If at least one of *encoding* or *errors* is given, *object* should be a :" "term:`bytes-like object` (e.g. :class:`bytes` or :class:`bytearray`). In " @@ -2648,7 +2714,7 @@ msgstr "" "información sobre los objetos *buffer*." # comand-line? -#: ../Doc/library/stdtypes.rst:1540 +#: ../Doc/library/stdtypes.rst:1582 msgid "" "Passing a :class:`bytes` object to :func:`str` without the *encoding* or " "*errors* arguments falls under the first case of returning the informal " @@ -2661,7 +2727,7 @@ msgstr "" "caracteres (véase también la :option:`-b` de las opciones de línea de " "órdenes de Python). Por ejemplo::" -#: ../Doc/library/stdtypes.rst:1548 +#: ../Doc/library/stdtypes.rst:1590 msgid "" "For more information on the ``str`` class and its methods, see :ref:" "`textseq` and the :ref:`string-methods` section below. To output formatted " @@ -2673,11 +2739,11 @@ msgstr "" "opciones de formateo de cadenas, lee las secciones :ref:`f-strings` y :ref:" "`formatstrings`. También puedes consultar la sección :ref:`stringservices`." -#: ../Doc/library/stdtypes.rst:1560 +#: ../Doc/library/stdtypes.rst:1602 msgid "String Methods" msgstr "Métodos de las cadenas de caracteres" -#: ../Doc/library/stdtypes.rst:1565 +#: ../Doc/library/stdtypes.rst:1607 msgid "" "Strings implement all of the :ref:`common ` sequence " "operations, along with the additional methods described below." @@ -2686,7 +2752,7 @@ msgstr "" "` de las secuencias, junto con los métodos descritos a " "continuación." -#: ../Doc/library/stdtypes.rst:1568 +#: ../Doc/library/stdtypes.rst:1610 msgid "" "Strings also support two styles of string formatting, one providing a large " "degree of flexibility and customization (see :meth:`str.format`, :ref:" @@ -2702,7 +2768,7 @@ msgstr "" "ligeramente más complicada de usar, pero es a menudo más rápida para los " "casos que puede manejar (:ref:`old-string-formatting`)." -#: ../Doc/library/stdtypes.rst:1575 +#: ../Doc/library/stdtypes.rst:1617 msgid "" "The :ref:`textservices` section of the standard library covers a number of " "other modules that provide various text related utilities (including regular " @@ -2712,7 +2778,7 @@ msgstr "" "módulos que proporcionan varias utilidades para trabajar con textos " "(incluyendo las expresiones regulares en el módulo :mod:`re`)." -#: ../Doc/library/stdtypes.rst:1581 +#: ../Doc/library/stdtypes.rst:1623 msgid "" "Return a copy of the string with its first character capitalized and the " "rest lowercased." @@ -2721,7 +2787,7 @@ msgstr "" "resto en minúsculas." # no se si titular sera lo adecuado -#: ../Doc/library/stdtypes.rst:1584 +#: ../Doc/library/stdtypes.rst:1626 msgid "" "The first character is now put into titlecase rather than uppercase. This " "means that characters like digraphs will only have their first letter " @@ -2731,7 +2797,7 @@ msgstr "" "significa que caracteres como dígrafos solo tendrán la primera letra en " "mayúsculas, en vez de todo el carácter." -#: ../Doc/library/stdtypes.rst:1591 +#: ../Doc/library/stdtypes.rst:1633 msgid "" "Return a casefolded copy of the string. Casefolded strings may be used for " "caseless matching." @@ -2740,7 +2806,7 @@ msgstr "" "normalizados pueden usarse para realizar búsquedas textuales independientes " "de mayúsculas y minúsculas." -#: ../Doc/library/stdtypes.rst:1594 +#: ../Doc/library/stdtypes.rst:1636 msgid "" "Casefolding is similar to lowercasing but more aggressive because it is " "intended to remove all case distinctions in a string. For example, the " @@ -2754,15 +2820,17 @@ msgstr "" "Como ya está en minúsculas, el método :meth:`lower` no modifica ``'ß'``, " "pero el método :meth:`casefold` lo convertirá a ``\"ss\"``." -#: ../Doc/library/stdtypes.rst:1600 +#: ../Doc/library/stdtypes.rst:1642 +#, fuzzy msgid "" -"The casefolding algorithm is described in section 3.13 of the Unicode " -"Standard." +"The casefolding algorithm is `described in section 3.13 'Default Case " +"Folding' of the Unicode Standard `__." msgstr "" "El algoritmo de normalización a minúsculas se describe en la sección 3.13 " "del estándar Unicode." -#: ../Doc/library/stdtypes.rst:1608 +#: ../Doc/library/stdtypes.rst:1651 msgid "" "Return centered in a string of length *width*. Padding is done using the " "specified *fillchar* (default is an ASCII space). The original string is " @@ -2774,7 +2842,7 @@ msgstr "" "la cadena original tiene una longitud ``len(s)`` igual o superior a *width*, " "se retorna el texto sin modificar." -#: ../Doc/library/stdtypes.rst:1616 +#: ../Doc/library/stdtypes.rst:1659 msgid "" "Return the number of non-overlapping occurrences of substring *sub* in the " "range [*start*, *end*]. Optional arguments *start* and *end* are " @@ -2784,16 +2852,30 @@ msgstr "" "[*start*, *end*]. Los parámetros opcionales *start* y *end* se interpretan " "como en una expresión de segmento." -#: ../Doc/library/stdtypes.rst:1623 +#: ../Doc/library/stdtypes.rst:1663 +msgid "" +"If *sub* is empty, returns the number of empty strings between characters " +"which is the length of the string plus one." +msgstr "" + +#: ../Doc/library/stdtypes.rst:1669 +msgid "Return the string encoded to :class:`bytes`." +msgstr "" + +#: ../Doc/library/stdtypes.rst:1671 ../Doc/library/stdtypes.rst:2810 +msgid "" +"*encoding* defaults to ``'utf-8'``; see :ref:`standard-encodings` for " +"possible values." +msgstr "" + +#: ../Doc/library/stdtypes.rst:1674 +#, fuzzy msgid "" -"Return an encoded version of the string as a bytes object. Default encoding " -"is ``'utf-8'``. *errors* may be given to set a different error handling " -"scheme. The default for *errors* is ``'strict'``, meaning that encoding " -"errors raise a :exc:`UnicodeError`. Other possible values are ``'ignore'``, " -"``'replace'``, ``'xmlcharrefreplace'``, ``'backslashreplace'`` and any other " -"name registered via :func:`codecs.register_error`, see section :ref:`error-" -"handlers`. For a list of possible encodings, see section :ref:`standard-" -"encodings`." +"*errors* controls how encoding errors are handled. If ``'strict'`` (the " +"default), a :exc:`UnicodeError` exception is raised. Other possible values " +"are ``'ignore'``, ``'replace'``, ``'xmlcharrefreplace'``, " +"``'backslashreplace'`` and any other name registered via :func:`codecs." +"register_error`. See :ref:`error-handlers` for details." msgstr "" "Retorna una versión codificada en forma de bytes. La codificación por " "defecto es ``'utf-8'``. El parámetro *errors* permite especificar diferentes " @@ -2806,30 +2888,27 @@ msgstr "" "lista de los posibles sistemas de codificación, véase la sección :ref:" "`standard-encodings`." -#: ../Doc/library/stdtypes.rst:1632 +#: ../Doc/library/stdtypes.rst:1681 msgid "" -"By default, the *errors* argument is not checked for best performances, but " -"only used at the first encoding error. Enable the :ref:`Python Development " -"Mode `, or use a :ref:`debug build ` to check *errors*." +"For performance reasons, the value of *errors* is not checked for validity " +"unless an encoding error actually occurs, :ref:`devmode` is enabled or a :" +"ref:`debug build ` is used." msgstr "" -"Por defecto, el argumento *errors* no se verifica para mejor rendimiento, " -"solo se usa con el primer error de codificación encontrado. Se puede " -"habilitar el :ref:`modo de desarrollo de Python `, o utilizar una :" -"ref:`compilación de depuración ` para verificar *errors*." -#: ../Doc/library/stdtypes.rst:1637 -msgid "Support for keyword arguments added." -msgstr "Añade soporte para el uso de parámetros por nombre." +#: ../Doc/library/stdtypes.rst:1686 ../Doc/library/stdtypes.rst:2829 +msgid "Added support for keyword arguments." +msgstr "Añadido soporte para poder usar parámetros por nombre." -#: ../Doc/library/stdtypes.rst:1640 ../Doc/library/stdtypes.rst:2773 +#: ../Doc/library/stdtypes.rst:1689 ../Doc/library/stdtypes.rst:2832 +#, fuzzy msgid "" -"The *errors* is now checked in development mode and in :ref:`debug mode " -"`." +"The value of the *errors* argument is now checked in :ref:`devmode` and in :" +"ref:`debug mode `." msgstr "" "El argumento *errors* ahora se verifica en modo de desarrollo y en una :ref:" "`compilación de depuración `." -#: ../Doc/library/stdtypes.rst:1647 +#: ../Doc/library/stdtypes.rst:1696 msgid "" "Return ``True`` if the string ends with the specified *suffix*, otherwise " "return ``False``. *suffix* can also be a tuple of suffixes to look for. " @@ -2842,7 +2921,7 @@ msgstr "" "la comprobación empieza en esa posición. Con el parámetro opcional *stop*, " "la comprobación termina en esa posición." -#: ../Doc/library/stdtypes.rst:1655 +#: ../Doc/library/stdtypes.rst:1704 msgid "" "Return a copy of the string where all tab characters are replaced by one or " "more spaces, depending on the current column and the given tab size. Tab " @@ -2871,7 +2950,7 @@ msgstr "" "sin cambios y hace que el contador de columna se incremente en 1, sin tener " "en cuenta como se representa gráficamente el carácter." -#: ../Doc/library/stdtypes.rst:1676 +#: ../Doc/library/stdtypes.rst:1725 msgid "" "Return the lowest index in the string where substring *sub* is found within " "the slice ``s[start:end]``. Optional arguments *start* and *end* are " @@ -2882,7 +2961,7 @@ msgstr "" "opcionales *start* y *end* se interpretan como notación de segmento. Retorna " "``-1`` si no se encuentra la cadena." -#: ../Doc/library/stdtypes.rst:1682 +#: ../Doc/library/stdtypes.rst:1731 msgid "" "The :meth:`~str.find` method should be used only if you need to know the " "position of *sub*. To check if *sub* is a substring or not, use the :" @@ -2892,7 +2971,7 @@ msgstr "" "posición de la cadena *sub*. Si solo se necesita comprobar si *sub* es una " "parte de *s*, es mejor usar el operador :keyword:`in`::" -#: ../Doc/library/stdtypes.rst:1692 +#: ../Doc/library/stdtypes.rst:1741 msgid "" "Perform a string formatting operation. The string on which this method is " "called can contain literal text or replacement fields delimited by braces " @@ -2909,7 +2988,7 @@ msgstr "" "copia de la cadena donde se han sustituido las marcas de reemplazo por los " "valores correspondientes pasados como parámetros." -#: ../Doc/library/stdtypes.rst:1702 +#: ../Doc/library/stdtypes.rst:1751 msgid "" "See :ref:`formatstrings` for a description of the various formatting options " "that can be specified in format strings." @@ -2917,7 +2996,7 @@ msgstr "" "Véase :ref:`formatstrings` para una descripción de las distintas opciones de " "formateo que se pueden usar." -#: ../Doc/library/stdtypes.rst:1706 +#: ../Doc/library/stdtypes.rst:1755 msgid "" "When formatting a number (:class:`int`, :class:`float`, :class:`complex`, :" "class:`decimal.Decimal` and subclasses) with the ``n`` type (ex: ``'{:n}'." @@ -2936,7 +3015,7 @@ msgstr "" "un byte, y el valor definido en ``LC_NUMERIC`` es diferente del definido en " "``LC_CTYPE``. Estos cambios temporales pueden afectar a otros *threads*." -#: ../Doc/library/stdtypes.rst:1715 +#: ../Doc/library/stdtypes.rst:1764 msgid "" "When formatting a number with the ``n`` type, the function sets temporarily " "the ``LC_CTYPE`` locale to the ``LC_NUMERIC`` locale in some cases." @@ -2944,7 +3023,7 @@ msgstr "" "Cuando se formatea un número usando la ``n``, la función puede asignar de " "forma temporal la variable ``LC_CTYPE`` a ``LC_NUMERIC`` en algunos casos." -#: ../Doc/library/stdtypes.rst:1723 +#: ../Doc/library/stdtypes.rst:1772 msgid "" "Similar to ``str.format(**mapping)``, except that ``mapping`` is used " "directly and not copied to a :class:`dict`. This is useful if for example " @@ -2954,7 +3033,7 @@ msgstr "" "directa y no se copia a un diccionario. Esto es útil si ``mapping`` es, por " "ejemplo, una instancia de una subclase de :class:`dict`:" -#: ../Doc/library/stdtypes.rst:1739 +#: ../Doc/library/stdtypes.rst:1788 msgid "" "Like :meth:`~str.find`, but raise :exc:`ValueError` when the substring is " "not found." @@ -2962,7 +3041,7 @@ msgstr "" "Como :meth:`~str.find`, pero lanza una excepción de tipo :exc:`ValueError` " "si no se encuentra la cadena a buscar." -#: ../Doc/library/stdtypes.rst:1745 +#: ../Doc/library/stdtypes.rst:1794 msgid "" "Return ``True`` if all characters in the string are alphanumeric and there " "is at least one character, ``False`` otherwise. A character ``c`` is " @@ -2975,14 +3054,17 @@ msgstr "" "funciones retorna ``True``: ``c.isalpha()``, ``c.isdecimal()``, ``c." "isdigit()`` o ``c.isnumeric()``." -#: ../Doc/library/stdtypes.rst:1753 +#: ../Doc/library/stdtypes.rst:1802 +#, fuzzy msgid "" "Return ``True`` if all characters in the string are alphabetic and there is " "at least one character, ``False`` otherwise. Alphabetic characters are " "those characters defined in the Unicode character database as \"Letter\", i." "e., those with general category property being one of \"Lm\", \"Lt\", " -"\"Lu\", \"Ll\", or \"Lo\". Note that this is different from the " -"\"Alphabetic\" property defined in the Unicode Standard." +"\"Lu\", \"Ll\", or \"Lo\". Note that this is different from the `Alphabetic " +"property defined in the section 4.10 'Letters, Alphabetic, and Ideographic' " +"of the Unicode Standard `_." msgstr "" "Retorna ``True`` si todos los caracteres de la cadena son alfabéticos y hay, " "al menos, un carácter, en caso contrario, retorna ``False``. Los caracteres " @@ -2991,7 +3073,7 @@ msgstr "" "\"Lm\", \"Lt\", \"Lu\", \"Ll\" o \"Lo\". Nótese que esta definición de " "\"Alfabético\" es diferente de la que usa el estándar Unicode." -#: ../Doc/library/stdtypes.rst:1762 +#: ../Doc/library/stdtypes.rst:1813 msgid "" "Return ``True`` if the string is empty or all characters in the string are " "ASCII, ``False`` otherwise. ASCII characters have code points in the range " @@ -3002,7 +3084,7 @@ msgstr "" "caracteres ASCII son aquellos cuyos puntos de código Unicode que están en el " "rango U+0000-U+007F." -#: ../Doc/library/stdtypes.rst:1771 +#: ../Doc/library/stdtypes.rst:1822 msgid "" "Return ``True`` if all characters in the string are decimal characters and " "there is at least one character, ``False`` otherwise. Decimal characters are " @@ -3017,7 +3099,7 @@ msgstr "" "Formalmente, un carácter decimal es un carácter en la categoría general " "\"`Nd`\" de Unicode." -#: ../Doc/library/stdtypes.rst:1781 +#: ../Doc/library/stdtypes.rst:1832 msgid "" "Return ``True`` if all characters in the string are digits and there is at " "least one character, ``False`` otherwise. Digits include decimal characters " @@ -3034,7 +3116,7 @@ msgstr "" "números Kharosthi. Formalmente, un dígito es un carácter que tiene la " "propiedad ``Numeric_Type`` definida como ``Digit`` o ``Decimal``." -#: ../Doc/library/stdtypes.rst:1791 +#: ../Doc/library/stdtypes.rst:1842 msgid "" "Return ``True`` if the string is a valid identifier according to the " "language definition, section :ref:`identifiers`." @@ -3042,20 +3124,21 @@ msgstr "" "Retorna ``True`` si la cadena de caracteres es un identificador válido de " "acuerdo a la especificación del lenguaje, véase :ref:`identifiers`." -#: ../Doc/library/stdtypes.rst:1794 +#: ../Doc/library/stdtypes.rst:1845 +#, fuzzy msgid "" -"Call :func:`keyword.iskeyword` to test whether string ``s`` is a reserved " -"identifier, such as :keyword:`def` and :keyword:`class`." +":func:`keyword.iskeyword` can be used to test whether string ``s`` is a " +"reserved identifier, such as :keyword:`def` and :keyword:`class`." msgstr "" "Se puede usar la función :func:`keyword.iskeyword` para comprobar si la " "cadena ``s`` es un identificador reservado, como :keyword:`def` o :keyword:" "`class`." -#: ../Doc/library/stdtypes.rst:1797 +#: ../Doc/library/stdtypes.rst:1848 msgid "Example: ::" msgstr "Ejemplo: ::" -#: ../Doc/library/stdtypes.rst:1810 +#: ../Doc/library/stdtypes.rst:1861 msgid "" "Return ``True`` if all cased characters [4]_ in the string are lowercase and " "there is at least one cased character, ``False`` otherwise." @@ -3064,7 +3147,7 @@ msgstr "" "mayúsculas y minúsculas [4]_ están en minúsculas y hay, al menos, un " "carácter de ese tipo, en caso contrario, retorna ``False``." -#: ../Doc/library/stdtypes.rst:1816 +#: ../Doc/library/stdtypes.rst:1867 msgid "" "Return ``True`` if all characters in the string are numeric characters, and " "there is at least one character, ``False`` otherwise. Numeric characters " @@ -3081,7 +3164,7 @@ msgstr "" "numéricos son aquellos que la propiedad ``Numeric_Type`` definida como " "``Digit``, ``Decimal`` o ``Numeric``." -#: ../Doc/library/stdtypes.rst:1826 +#: ../Doc/library/stdtypes.rst:1877 msgid "" "Return ``True`` if all characters in the string are printable or the string " "is empty, ``False`` otherwise. Nonprintable characters are those characters " @@ -3100,7 +3183,7 @@ msgstr "" "imprimen con la función :func:`repr`. No tiene relevancia en cadenas " "escritas a :data:`sys.stdout` o :data:`sys.stderr`.)" -#: ../Doc/library/stdtypes.rst:1837 +#: ../Doc/library/stdtypes.rst:1888 msgid "" "Return ``True`` if there are only whitespace characters in the string and " "there is at least one character, ``False`` otherwise." @@ -3108,7 +3191,7 @@ msgstr "" "Retorna ``True`` si todos los caracteres de la cadena son espacios en blanco " "y hay, al menos, un carácter, en caso contrario, retorna ``False``." -#: ../Doc/library/stdtypes.rst:1840 +#: ../Doc/library/stdtypes.rst:1891 msgid "" "A character is *whitespace* if in the Unicode character database (see :mod:" "`unicodedata`), either its general category is ``Zs`` (\"Separator, " @@ -3119,7 +3202,7 @@ msgstr "" "``Zs`` (\"Separador, espacio\") o la clase bidireccional es ``WS``, ``B`` o " "``S``." -#: ../Doc/library/stdtypes.rst:1848 +#: ../Doc/library/stdtypes.rst:1899 msgid "" "Return ``True`` if the string is a titlecased string and there is at least " "one character, for example uppercase characters may only follow uncased " @@ -3133,7 +3216,7 @@ msgstr "" "tiene formas alternativas mayúsculas-minúsculas. En caso contrario, retorna " "``False``." -#: ../Doc/library/stdtypes.rst:1855 +#: ../Doc/library/stdtypes.rst:1906 msgid "" "Return ``True`` if all cased characters [4]_ in the string are uppercase and " "there is at least one cased character, ``False`` otherwise." @@ -3142,7 +3225,7 @@ msgstr "" "mayúsculas y minúsculas [4]_ están en mayúsculas y hay, al menos, un " "carácter de ese tipo, en caso contrario, retorna ``False``." -#: ../Doc/library/stdtypes.rst:1873 +#: ../Doc/library/stdtypes.rst:1924 msgid "" "Return a string which is the concatenation of the strings in *iterable*. A :" "exc:`TypeError` will be raised if there are any non-string values in " @@ -3155,7 +3238,7 @@ msgstr "" "tipo :class:`bytes`. Se usa como separador entre los elementos la cadena de " "caracteres pasada como parámetro." -#: ../Doc/library/stdtypes.rst:1881 +#: ../Doc/library/stdtypes.rst:1932 msgid "" "Return the string left justified in a string of length *width*. Padding is " "done using the specified *fillchar* (default is an ASCII space). The " @@ -3167,7 +3250,7 @@ msgstr "" "cadena original tiene una longitud ``len(s)`` igual o superior a *width*, se " "retorna el texto sin modificar." -#: ../Doc/library/stdtypes.rst:1888 +#: ../Doc/library/stdtypes.rst:1939 msgid "" "Return a copy of the string with all the cased characters [4]_ converted to " "lowercase." @@ -3175,15 +3258,17 @@ msgstr "" "Retorna una copia de la cadena de caracteres con todas las letras en " "minúsculas [4]_." -#: ../Doc/library/stdtypes.rst:1891 +#: ../Doc/library/stdtypes.rst:1942 +#, fuzzy msgid "" -"The lowercasing algorithm used is described in section 3.13 of the Unicode " -"Standard." +"The lowercasing algorithm used is `described in section 3.13 'Default Case " +"Folding' of the Unicode Standard `__." msgstr "" "El algoritmo usado para la conversión a minúsculas está descrito en la " "sección 3.13 del estándar Unicode." -#: ../Doc/library/stdtypes.rst:1897 +#: ../Doc/library/stdtypes.rst:1949 msgid "" "Return a copy of the string with leading characters removed. The *chars* " "argument is a string specifying the set of characters to be removed. If " @@ -3197,7 +3282,7 @@ msgstr "" "todos los espacios en blanco. No debe entenderse el valor de *chars* como un " "prefijo, sino que se elimina cualquier combinación de sus caracteres::" -#: ../Doc/library/stdtypes.rst:1907 +#: ../Doc/library/stdtypes.rst:1959 msgid "" "See :meth:`str.removeprefix` for a method that will remove a single prefix " "string rather than all of a set of characters. For example::" @@ -3206,7 +3291,7 @@ msgstr "" "de prefijo en lugar de todas las ocurrencias dentro de un set de caracteres. " "Por ejemplo::" -#: ../Doc/library/stdtypes.rst:1918 +#: ../Doc/library/stdtypes.rst:1970 msgid "" "This static method returns a translation table usable for :meth:`str." "translate`." @@ -3214,7 +3299,7 @@ msgstr "" "Este método estático retorna una tabla de traducción apta para ser usada por " "el método :meth:`str.translate`." -#: ../Doc/library/stdtypes.rst:1920 +#: ../Doc/library/stdtypes.rst:1972 msgid "" "If there is only one argument, it must be a dictionary mapping Unicode " "ordinals (integers) or characters (strings of length 1) to Unicode ordinals, " @@ -3226,7 +3311,7 @@ msgstr "" "Unicode, cadenas (de cualquier longitud) o ``None``. Las claves se " "convertirán a ordinales." -#: ../Doc/library/stdtypes.rst:1925 +#: ../Doc/library/stdtypes.rst:1977 msgid "" "If there are two arguments, they must be strings of equal length, and in the " "resulting dictionary, each character in x will be mapped to the character at " @@ -3238,7 +3323,7 @@ msgstr "" "posición en *y*. Si se añade un tercer parámetro, debe ser una cadena de " "caracteres, los cuales se mapearán a ``None`` en la tabla resultante." -#: ../Doc/library/stdtypes.rst:1933 +#: ../Doc/library/stdtypes.rst:1985 msgid "" "Split the string at the first occurrence of *sep*, and return a 3-tuple " "containing the part before the separator, the separator itself, and the part " @@ -3251,7 +3336,7 @@ msgstr "" "retorna una tupla de tres elementos, el primero contiene la cadena original " "y los dos siguientes son cadenas vacías." -#: ../Doc/library/stdtypes.rst:1941 +#: ../Doc/library/stdtypes.rst:1993 msgid "" "If the string starts with the *prefix* string, return " "``string[len(prefix):]``. Otherwise, return a copy of the original string::" @@ -3260,7 +3345,7 @@ msgstr "" "``string[len(prefix):]``. De otra manera, retorna una copia de la cadena " "original::" -#: ../Doc/library/stdtypes.rst:1955 +#: ../Doc/library/stdtypes.rst:2007 msgid "" "If the string ends with the *suffix* string and that *suffix* is not empty, " "return ``string[:-len(suffix)]``. Otherwise, return a copy of the original " @@ -3270,7 +3355,7 @@ msgstr "" "vacío, retorna ``string[:-len(suffix)]``. De otra manera, retorna una copia " "de la cadena original::" -#: ../Doc/library/stdtypes.rst:1969 +#: ../Doc/library/stdtypes.rst:2021 msgid "" "Return a copy of the string with all occurrences of substring *old* replaced " "by *new*. If the optional argument *count* is given, only the first *count* " @@ -3280,7 +3365,7 @@ msgstr "" "sustituidas por *new*. Si se utiliza el parámetro *count*, solo se cambian " "las primeras *count* ocurrencias." -#: ../Doc/library/stdtypes.rst:1976 +#: ../Doc/library/stdtypes.rst:2028 msgid "" "Return the highest index in the string where substring *sub* is found, such " "that *sub* is contained within ``s[start:end]``. Optional arguments *start* " @@ -3291,7 +3376,7 @@ msgstr "" "opcionales *start* y *end* se interpretan igual que en las operaciones de " "segmentado. Retorna ``-1`` si no se encuentra *sub*." -#: ../Doc/library/stdtypes.rst:1983 +#: ../Doc/library/stdtypes.rst:2035 msgid "" "Like :meth:`rfind` but raises :exc:`ValueError` when the substring *sub* is " "not found." @@ -3299,7 +3384,7 @@ msgstr "" "Como el método :meth:`rfind`, pero lanza la excepción :exc:`ValueError` si " "no se encuentra la cadena *sub*." -#: ../Doc/library/stdtypes.rst:1989 +#: ../Doc/library/stdtypes.rst:2041 msgid "" "Return the string right justified in a string of length *width*. Padding is " "done using the specified *fillchar* (default is an ASCII space). The " @@ -3310,7 +3395,7 @@ msgstr "" "parámetro *fillchar* (por defecto se usa el carácter espacio ASCII). Si " "*width* es menor o igual que ``len(s)``, se retorna el texto sin modificar." -#: ../Doc/library/stdtypes.rst:1996 +#: ../Doc/library/stdtypes.rst:2048 msgid "" "Split the string at the last occurrence of *sep*, and return a 3-tuple " "containing the part before the separator, the separator itself, and the part " @@ -3323,7 +3408,7 @@ msgstr "" "retorna una tupla de tres elementos, los dos primeras son posiciones con " "cadenas vacías y en la tercera la cadena original." -#: ../Doc/library/stdtypes.rst:2004 +#: ../Doc/library/stdtypes.rst:2056 msgid "" "Return a list of the words in the string, using *sep* as the delimiter " "string. If *maxsplit* is given, at most *maxsplit* splits are done, the " @@ -3340,7 +3425,7 @@ msgstr "" "derecha, el comportamiento de este método :meth:`rsplit` es equivalente al " "de :meth:`split`, que se describe con detalle más adelante." -#: ../Doc/library/stdtypes.rst:2013 +#: ../Doc/library/stdtypes.rst:2065 msgid "" "Return a copy of the string with trailing characters removed. The *chars* " "argument is a string specifying the set of characters to be removed. If " @@ -3354,7 +3439,7 @@ msgstr "" "todos los espacios en blanco. No debe entenderse el valor de *chars* como un " "sufijo, sino que se elimina cualquier combinación de sus caracteres::" -#: ../Doc/library/stdtypes.rst:2023 +#: ../Doc/library/stdtypes.rst:2075 msgid "" "See :meth:`str.removesuffix` for a method that will remove a single suffix " "string rather than all of a set of characters. For example::" @@ -3363,7 +3448,7 @@ msgstr "" "de sufijo en lugar de todas las ocurrencias dentro de un set de caracteres. " "Por ejemplo::" -#: ../Doc/library/stdtypes.rst:2033 +#: ../Doc/library/stdtypes.rst:2085 msgid "" "Return a list of the words in the string, using *sep* as the delimiter " "string. If *maxsplit* is given, at most *maxsplit* splits are done (thus, " @@ -3378,7 +3463,7 @@ msgstr "" "especifica *maxsplit* o se pasa con valor ``-1``, entonces no hay límite al " "número de divisiones a realizar (se harán todas las que se puedan)." -#: ../Doc/library/stdtypes.rst:2039 +#: ../Doc/library/stdtypes.rst:2091 msgid "" "If *sep* is given, consecutive delimiters are not grouped together and are " "deemed to delimit empty strings (for example, ``'1,,2'.split(',')`` returns " @@ -3393,20 +3478,20 @@ msgstr "" "split('<>')`` retorna ``['1', '2', '3']``). Dividir una cadena vacía con un " "separador determinado retornará ``['']``." -#: ../Doc/library/stdtypes.rst:2045 ../Doc/library/stdtypes.rst:2061 -#: ../Doc/library/stdtypes.rst:2113 ../Doc/library/stdtypes.rst:2181 -#: ../Doc/library/stdtypes.rst:2248 ../Doc/library/stdtypes.rst:3089 -#: ../Doc/library/stdtypes.rst:3105 ../Doc/library/stdtypes.rst:3196 -#: ../Doc/library/stdtypes.rst:3212 ../Doc/library/stdtypes.rst:3237 -#: ../Doc/library/stdtypes.rst:3251 ../Doc/library/stdtypes.rst:3279 -#: ../Doc/library/stdtypes.rst:3293 ../Doc/library/stdtypes.rst:3311 -#: ../Doc/library/stdtypes.rst:3338 ../Doc/library/stdtypes.rst:3361 -#: ../Doc/library/stdtypes.rst:3388 ../Doc/library/stdtypes.rst:3430 -#: ../Doc/library/stdtypes.rst:3454 +#: ../Doc/library/stdtypes.rst:2097 ../Doc/library/stdtypes.rst:2113 +#: ../Doc/library/stdtypes.rst:2165 ../Doc/library/stdtypes.rst:2233 +#: ../Doc/library/stdtypes.rst:2301 ../Doc/library/stdtypes.rst:3148 +#: ../Doc/library/stdtypes.rst:3164 ../Doc/library/stdtypes.rst:3255 +#: ../Doc/library/stdtypes.rst:3271 ../Doc/library/stdtypes.rst:3296 +#: ../Doc/library/stdtypes.rst:3310 ../Doc/library/stdtypes.rst:3338 +#: ../Doc/library/stdtypes.rst:3352 ../Doc/library/stdtypes.rst:3370 +#: ../Doc/library/stdtypes.rst:3397 ../Doc/library/stdtypes.rst:3420 +#: ../Doc/library/stdtypes.rst:3447 ../Doc/library/stdtypes.rst:3489 +#: ../Doc/library/stdtypes.rst:3513 msgid "For example::" msgstr "Por ejemplo::" -#: ../Doc/library/stdtypes.rst:2054 +#: ../Doc/library/stdtypes.rst:2106 msgid "" "If *sep* is not specified or is ``None``, a different splitting algorithm is " "applied: runs of consecutive whitespace are regarded as a single separator, " @@ -3423,7 +3508,7 @@ msgstr "" "una cadena vacía o una cadena que solo contenga espacios en blanco usando " "``None`` como separador siempre retornará una lista vacía ``[]``." -#: ../Doc/library/stdtypes.rst:2076 +#: ../Doc/library/stdtypes.rst:2128 msgid "" "Return a list of the lines in the string, breaking at line boundaries. Line " "breaks are not included in the resulting list unless *keepends* is given and " @@ -3434,7 +3519,7 @@ msgstr "" "especifique lo contrario pasando el valor ``True`` en al parámetro " "*keepends*." -#: ../Doc/library/stdtypes.rst:2080 +#: ../Doc/library/stdtypes.rst:2132 msgid "" "This method splits on the following line boundaries. In particular, the " "boundaries are a superset of :term:`universal newlines`." @@ -3443,107 +3528,107 @@ msgstr "" "concreto, estos son un superconjunto de los :term:`saltos de líneas " "universales`." -#: ../Doc/library/stdtypes.rst:2084 +#: ../Doc/library/stdtypes.rst:2136 msgid "Representation" msgstr "Representación" -#: ../Doc/library/stdtypes.rst:2084 +#: ../Doc/library/stdtypes.rst:2136 msgid "Description" msgstr "Descripción" -#: ../Doc/library/stdtypes.rst:2086 +#: ../Doc/library/stdtypes.rst:2138 msgid "``\\n``" msgstr "``\\n``" -#: ../Doc/library/stdtypes.rst:2086 +#: ../Doc/library/stdtypes.rst:2138 msgid "Line Feed" msgstr "Salto de línea" -#: ../Doc/library/stdtypes.rst:2088 +#: ../Doc/library/stdtypes.rst:2140 msgid "``\\r``" msgstr "``\\r``" -#: ../Doc/library/stdtypes.rst:2088 +#: ../Doc/library/stdtypes.rst:2140 msgid "Carriage Return" msgstr "Retorno de carro" -#: ../Doc/library/stdtypes.rst:2090 +#: ../Doc/library/stdtypes.rst:2142 msgid "``\\r\\n``" msgstr "``\\r\\n``" -#: ../Doc/library/stdtypes.rst:2090 +#: ../Doc/library/stdtypes.rst:2142 msgid "Carriage Return + Line Feed" msgstr "Retorno de carro + salto de línea" -#: ../Doc/library/stdtypes.rst:2092 +#: ../Doc/library/stdtypes.rst:2144 msgid "``\\v`` or ``\\x0b``" msgstr "``\\v`` o ``\\x0b``" -#: ../Doc/library/stdtypes.rst:2092 +#: ../Doc/library/stdtypes.rst:2144 msgid "Line Tabulation" msgstr "Tabulación de línea" -#: ../Doc/library/stdtypes.rst:2094 +#: ../Doc/library/stdtypes.rst:2146 msgid "``\\f`` or ``\\x0c``" msgstr "``\\f`` o ``\\x0c``" -#: ../Doc/library/stdtypes.rst:2094 +#: ../Doc/library/stdtypes.rst:2146 msgid "Form Feed" msgstr "Avance de página" -#: ../Doc/library/stdtypes.rst:2096 +#: ../Doc/library/stdtypes.rst:2148 msgid "``\\x1c``" msgstr "``\\x1c``" -#: ../Doc/library/stdtypes.rst:2096 +#: ../Doc/library/stdtypes.rst:2148 msgid "File Separator" msgstr "Separador de archivo" -#: ../Doc/library/stdtypes.rst:2098 +#: ../Doc/library/stdtypes.rst:2150 msgid "``\\x1d``" msgstr "``\\x1d``" -#: ../Doc/library/stdtypes.rst:2098 +#: ../Doc/library/stdtypes.rst:2150 msgid "Group Separator" msgstr "Separador de grupo" -#: ../Doc/library/stdtypes.rst:2100 +#: ../Doc/library/stdtypes.rst:2152 msgid "``\\x1e``" msgstr "``\\x1e``" -#: ../Doc/library/stdtypes.rst:2100 +#: ../Doc/library/stdtypes.rst:2152 msgid "Record Separator" msgstr "Separador de registro" -#: ../Doc/library/stdtypes.rst:2102 +#: ../Doc/library/stdtypes.rst:2154 msgid "``\\x85``" msgstr "``\\x85``" -#: ../Doc/library/stdtypes.rst:2102 +#: ../Doc/library/stdtypes.rst:2154 msgid "Next Line (C1 Control Code)" msgstr "Siguiente línea (Código de control C1)" -#: ../Doc/library/stdtypes.rst:2104 +#: ../Doc/library/stdtypes.rst:2156 msgid "``\\u2028``" msgstr "``\\u2028``" -#: ../Doc/library/stdtypes.rst:2104 +#: ../Doc/library/stdtypes.rst:2156 msgid "Line Separator" msgstr "Separador de línea" -#: ../Doc/library/stdtypes.rst:2106 +#: ../Doc/library/stdtypes.rst:2158 msgid "``\\u2029``" msgstr "``\\u2029``" -#: ../Doc/library/stdtypes.rst:2106 +#: ../Doc/library/stdtypes.rst:2158 msgid "Paragraph Separator" msgstr "Separador de párrafo" -#: ../Doc/library/stdtypes.rst:2111 +#: ../Doc/library/stdtypes.rst:2163 msgid "``\\v`` and ``\\f`` added to list of line boundaries." msgstr "Se añadieron ``\\v`` y ``\\f`` a la lista de separadores." -#: ../Doc/library/stdtypes.rst:2120 +#: ../Doc/library/stdtypes.rst:2172 msgid "" "Unlike :meth:`~str.split` when a delimiter string *sep* is given, this " "method returns an empty list for the empty string, and a terminal line break " @@ -3553,11 +3638,11 @@ msgstr "" "*sep*, el método retorna una lista vacía para la cadena vacía, y un salto de " "línea al final del texto no produce una línea extra::" -#: ../Doc/library/stdtypes.rst:2129 +#: ../Doc/library/stdtypes.rst:2181 msgid "For comparison, ``split('\\n')`` gives::" msgstr "Por comparación, ``split('\\n')`` entrega::" -#: ../Doc/library/stdtypes.rst:2139 +#: ../Doc/library/stdtypes.rst:2191 msgid "" "Return ``True`` if string starts with the *prefix*, otherwise return " "``False``. *prefix* can also be a tuple of prefixes to look for. With " @@ -3570,7 +3655,7 @@ msgstr "" "comprobación empieza en esa posición de la cadena. Con el parámetro opcional " "*end*, la comprobación se detiene en esa posición de la cadena." -#: ../Doc/library/stdtypes.rst:2147 +#: ../Doc/library/stdtypes.rst:2199 msgid "" "Return a copy of the string with the leading and trailing characters " "removed. The *chars* argument is a string specifying the set of characters " @@ -3585,7 +3670,7 @@ msgstr "" "espacio en blanco. No debe entenderse el valor de *chars* como un prefijo o " "sufijo, sino que se elimina cualquier combinación de sus caracteres::" -#: ../Doc/library/stdtypes.rst:2158 +#: ../Doc/library/stdtypes.rst:2210 msgid "" "The outermost leading and trailing *chars* argument values are stripped from " "the string. Characters are removed from the leading end until reaching a " @@ -3598,7 +3683,7 @@ msgstr "" "definido por *chars*. Se procede de manera similar para los caracteres al " "final. Por ejemplo::" -#: ../Doc/library/stdtypes.rst:2171 +#: ../Doc/library/stdtypes.rst:2223 msgid "" "Return a copy of the string with uppercase characters converted to lowercase " "and vice versa. Note that it is not necessarily true that ``s.swapcase()." @@ -3608,7 +3693,7 @@ msgstr "" "a minúsculas, y viceversa. Nótese que no es necesariamente cierto que ``s." "swapcase().swapcase() == s``." -#: ../Doc/library/stdtypes.rst:2178 +#: ../Doc/library/stdtypes.rst:2230 msgid "" "Return a titlecased version of the string where words start with an " "uppercase character and the remaining characters are lowercase." @@ -3616,7 +3701,7 @@ msgstr "" "Retorna una versión en forma de título de la cadena, con la primera letra de " "cada palabra en mayúsculas y el resto en minúsculas." -#: ../Doc/library/stdtypes.rst:2186 ../Doc/library/stdtypes.rst:3398 +#: ../Doc/library/stdtypes.rst:2238 ../Doc/library/stdtypes.rst:3457 msgid "" "The algorithm uses a simple language-independent definition of a word as " "groups of consecutive letters. The definition works in many contexts but it " @@ -3630,7 +3715,7 @@ msgstr "" "constituyen una separación entre palabras, que puede que no sea el efecto " "deseado::" -#: ../Doc/library/stdtypes.rst:2194 +#: ../Doc/library/stdtypes.rst:2246 msgid "" "The :func:`string.capwords` function does not have this problem, as it " "splits words on spaces only." @@ -3638,7 +3723,7 @@ msgstr "" "La función :func:`string.capwords` no tiene este problema, ya que solo " "divide palabras en espacios." -#: ../Doc/library/stdtypes.rst:2197 +#: ../Doc/library/stdtypes.rst:2249 msgid "" "Alternatively, a workaround for apostrophes can be constructed using regular " "expressions::" @@ -3646,7 +3731,7 @@ msgstr "" "Alternativamente, se puede solucionar parcialmente el problema de los " "apóstrofos usando expresiones regulares::" -#: ../Doc/library/stdtypes.rst:2212 +#: ../Doc/library/stdtypes.rst:2264 msgid "" "Return a copy of the string in which each character has been mapped through " "the given translation table. The table must be an object that implements " @@ -3669,7 +3754,7 @@ msgstr "" "lanza una excepción de tipo :exc:`LookupError`, que hará que el carácter se " "copie igual en la cadena de salida." -#: ../Doc/library/stdtypes.rst:2221 +#: ../Doc/library/stdtypes.rst:2273 msgid "" "You can use :meth:`str.maketrans` to create a translation map from character-" "to-character mappings in different formats." @@ -3677,7 +3762,7 @@ msgstr "" "Se puede usar :meth:`str.maketrans` para crear un mapa de traducción " "carácter a carácter de diferentes formas." -#: ../Doc/library/stdtypes.rst:2224 +#: ../Doc/library/stdtypes.rst:2276 msgid "" "See also the :mod:`codecs` module for a more flexible approach to custom " "character mappings." @@ -3685,7 +3770,7 @@ msgstr "" "Véase también el módulo :mod:`codecs` para una aproximación más flexible al " "mapeo de caracteres." -#: ../Doc/library/stdtypes.rst:2230 +#: ../Doc/library/stdtypes.rst:2282 msgid "" "Return a copy of the string with all the cased characters [4]_ converted to " "uppercase. Note that ``s.upper().isupper()`` might be ``False`` if ``s`` " @@ -3700,15 +3785,17 @@ msgstr "" "resultantes no es \"Lu\" (Letra, mayúsculas), sino, por ejemplo, " "\"Lt\" (Letra, Título)." -#: ../Doc/library/stdtypes.rst:2236 +#: ../Doc/library/stdtypes.rst:2288 +#, fuzzy msgid "" -"The uppercasing algorithm used is described in section 3.13 of the Unicode " -"Standard." +"The uppercasing algorithm used is `described in section 3.13 'Default Case " +"Folding' of the Unicode Standard `__." msgstr "" "El algoritmo de paso a mayúsculas es el descrito en la sección 3.13 del " "estándar Unicode." -#: ../Doc/library/stdtypes.rst:2242 +#: ../Doc/library/stdtypes.rst:2295 msgid "" "Return a copy of the string left filled with ASCII ``'0'`` digits to make a " "string of length *width*. A leading sign prefix (``'+'``/``'-'``) is handled " @@ -3721,11 +3808,11 @@ msgstr "" "relleno *después* del carácter de signo en vez de antes. Si *width* es menor " "o igual que ``len(s)``, se retorna la cadena original." -#: ../Doc/library/stdtypes.rst:2260 +#: ../Doc/library/stdtypes.rst:2313 msgid "``printf``-style String Formatting" msgstr "Formateo de cadenas al estilo ``*printf*``" -#: ../Doc/library/stdtypes.rst:2273 +#: ../Doc/library/stdtypes.rst:2326 msgid "" "The formatting operations described here exhibit a variety of quirks that " "lead to a number of common errors (such as failing to display tuples and " @@ -3744,7 +3831,7 @@ msgstr "" "sus propios compromisos entre facilidad de uso, flexibilidad y capacidad de " "extensión." -#: ../Doc/library/stdtypes.rst:2281 +#: ../Doc/library/stdtypes.rst:2334 msgid "" "String objects have one unique built-in operation: the ``%`` operator " "(modulo). This is also known as the string *formatting* or *interpolation* " @@ -3761,7 +3848,7 @@ msgstr "" "*valores*. El efecto es similar a usar la función del lenguaje C :c:func:" "`sprintf`." -#: ../Doc/library/stdtypes.rst:2287 +#: ../Doc/library/stdtypes.rst:2340 msgid "" "If *format* requires a single argument, *values* may be a single non-tuple " "object. [5]_ Otherwise, *values* must be a tuple with exactly the number of " @@ -3774,7 +3861,7 @@ msgstr "" "cadena de formato, o un único objeto de tipo mapa (por ejemplo, un " "diccionario)." -#: ../Doc/library/stdtypes.rst:2297 ../Doc/library/stdtypes.rst:3509 +#: ../Doc/library/stdtypes.rst:2350 ../Doc/library/stdtypes.rst:3568 msgid "" "A conversion specifier contains two or more characters and has the following " "components, which must occur in this order:" @@ -3782,11 +3869,11 @@ msgstr "" "Un especificador de conversión consiste en dos o más caracteres y tiene los " "siguientes componentes, que deben aparecer en el siguiente orden:" -#: ../Doc/library/stdtypes.rst:2300 ../Doc/library/stdtypes.rst:3512 +#: ../Doc/library/stdtypes.rst:2353 ../Doc/library/stdtypes.rst:3571 msgid "The ``'%'`` character, which marks the start of the specifier." msgstr "El carácter ``'%'``, que identifica el inicio del marcador." -#: ../Doc/library/stdtypes.rst:2302 ../Doc/library/stdtypes.rst:3514 +#: ../Doc/library/stdtypes.rst:2355 ../Doc/library/stdtypes.rst:3573 msgid "" "Mapping key (optional), consisting of a parenthesised sequence of characters " "(for example, ``(somename)``)." @@ -3794,7 +3881,7 @@ msgstr "" "Una clave de mapeo (opcional), consistente en una secuencia de caracteres " "entre paréntesis, como por ejemplo, ``(somename)``." -#: ../Doc/library/stdtypes.rst:2305 ../Doc/library/stdtypes.rst:3517 +#: ../Doc/library/stdtypes.rst:2358 ../Doc/library/stdtypes.rst:3576 msgid "" "Conversion flags (optional), which affect the result of some conversion " "types." @@ -3802,7 +3889,7 @@ msgstr "" "Indicador de conversión (opcional), que afecta el resultado de ciertas " "conversiones de tipos." -#: ../Doc/library/stdtypes.rst:2308 ../Doc/library/stdtypes.rst:3520 +#: ../Doc/library/stdtypes.rst:2361 ../Doc/library/stdtypes.rst:3579 msgid "" "Minimum field width (optional). If specified as an ``'*'`` (asterisk), the " "actual width is read from the next element of the tuple in *values*, and the " @@ -3813,7 +3900,7 @@ msgstr "" "objeto a convertir viene después del ancho mínimo, con un indicador de " "precisión opcional." -#: ../Doc/library/stdtypes.rst:2312 ../Doc/library/stdtypes.rst:3524 +#: ../Doc/library/stdtypes.rst:2365 ../Doc/library/stdtypes.rst:3583 msgid "" "Precision (optional), given as a ``'.'`` (dot) followed by the precision. " "If specified as ``'*'`` (an asterisk), the actual precision is read from the " @@ -3825,15 +3912,15 @@ msgstr "" "del siguiente elemento de la tupla *valores*, y el valor a convertir viene " "después de la precisión." -#: ../Doc/library/stdtypes.rst:2317 ../Doc/library/stdtypes.rst:3529 +#: ../Doc/library/stdtypes.rst:2370 ../Doc/library/stdtypes.rst:3588 msgid "Length modifier (optional)." msgstr "Modificador de longitud (opcional)." -#: ../Doc/library/stdtypes.rst:2319 ../Doc/library/stdtypes.rst:3531 +#: ../Doc/library/stdtypes.rst:2372 ../Doc/library/stdtypes.rst:3590 msgid "Conversion type." msgstr "Tipo de conversión." -#: ../Doc/library/stdtypes.rst:2321 +#: ../Doc/library/stdtypes.rst:2374 msgid "" "When the right argument is a dictionary (or other mapping type), then the " "formats in the string *must* include a parenthesised mapping key into that " @@ -3846,7 +3933,7 @@ msgstr "" "la clave se usa para seleccionar el valor a formatear desde el mapa. Por " "ejemplo::" -#: ../Doc/library/stdtypes.rst:2330 ../Doc/library/stdtypes.rst:3542 +#: ../Doc/library/stdtypes.rst:2383 ../Doc/library/stdtypes.rst:3601 msgid "" "In this case no ``*`` specifiers may occur in a format (since they require a " "sequential parameter list)." @@ -3854,40 +3941,40 @@ msgstr "" "En este caso, no se puede usar el especificador ``*`` en la cadena de " "formato (dado que requiere una lista secuencial de parámetros)." -#: ../Doc/library/stdtypes.rst:2333 ../Doc/library/stdtypes.rst:3545 +#: ../Doc/library/stdtypes.rst:2386 ../Doc/library/stdtypes.rst:3604 msgid "The conversion flag characters are:" msgstr "Los indicadores de conversión son:" -#: ../Doc/library/stdtypes.rst:2342 ../Doc/library/stdtypes.rst:3554 +#: ../Doc/library/stdtypes.rst:2395 ../Doc/library/stdtypes.rst:3613 msgid "Flag" msgstr "Flag" -#: ../Doc/library/stdtypes.rst:2344 ../Doc/library/stdtypes.rst:3556 +#: ../Doc/library/stdtypes.rst:2397 ../Doc/library/stdtypes.rst:3615 msgid "``'#'``" msgstr "``'#'``" -#: ../Doc/library/stdtypes.rst:2344 ../Doc/library/stdtypes.rst:3556 +#: ../Doc/library/stdtypes.rst:2397 ../Doc/library/stdtypes.rst:3615 msgid "" "The value conversion will use the \"alternate form\" (where defined below)." msgstr "" "El valor a convertir usara la \"forma alternativa\" (que se definirá más " "adelante)" -#: ../Doc/library/stdtypes.rst:2347 ../Doc/library/stdtypes.rst:3559 +#: ../Doc/library/stdtypes.rst:2400 ../Doc/library/stdtypes.rst:3618 msgid "``'0'``" msgstr "``'0'``" -#: ../Doc/library/stdtypes.rst:2347 ../Doc/library/stdtypes.rst:3559 +#: ../Doc/library/stdtypes.rst:2400 ../Doc/library/stdtypes.rst:3618 msgid "The conversion will be zero padded for numeric values." msgstr "" "La conversión rellena con ceros por la izquierda para valores numéricos." -#: ../Doc/library/stdtypes.rst:2349 ../Doc/library/stdtypes.rst:3561 +#: ../Doc/library/stdtypes.rst:2402 ../Doc/library/stdtypes.rst:3620 msgid "``'-'``" msgstr "``'-'``" # Sobreescribe no me acaba de gustar -#: ../Doc/library/stdtypes.rst:2349 ../Doc/library/stdtypes.rst:3561 +#: ../Doc/library/stdtypes.rst:2402 ../Doc/library/stdtypes.rst:3620 msgid "" "The converted value is left adjusted (overrides the ``'0'`` conversion if " "both are given)." @@ -3895,11 +3982,11 @@ msgstr "" "El valor convertido se ajusta a la izquierda (sobreescribe la conversión " "``'0'`` si se especifican los dos)" -#: ../Doc/library/stdtypes.rst:2352 ../Doc/library/stdtypes.rst:3564 +#: ../Doc/library/stdtypes.rst:2405 ../Doc/library/stdtypes.rst:3623 msgid "``' '``" msgstr "``' '``" -#: ../Doc/library/stdtypes.rst:2352 ../Doc/library/stdtypes.rst:3564 +#: ../Doc/library/stdtypes.rst:2405 ../Doc/library/stdtypes.rst:3623 msgid "" "(a space) A blank should be left before a positive number (or empty string) " "produced by a signed conversion." @@ -3907,11 +3994,11 @@ msgstr "" "(Un espacio) Se debe añadir un espacio en blanco antes de un número positivo " "(o una cadena vacía) si se usa una conversión con signo." -#: ../Doc/library/stdtypes.rst:2355 ../Doc/library/stdtypes.rst:3567 +#: ../Doc/library/stdtypes.rst:2408 ../Doc/library/stdtypes.rst:3626 msgid "``'+'``" msgstr "``'+'``" -#: ../Doc/library/stdtypes.rst:2355 ../Doc/library/stdtypes.rst:3567 +#: ../Doc/library/stdtypes.rst:2408 ../Doc/library/stdtypes.rst:3626 msgid "" "A sign character (``'+'`` or ``'-'``) will precede the conversion (overrides " "a \"space\" flag)." @@ -3919,7 +4006,7 @@ msgstr "" "Un carácter signo (``'+'`` o ``'-'``) precede a la conversión (sobreescribe " "el indicador de \"espacio\")" -#: ../Doc/library/stdtypes.rst:2359 ../Doc/library/stdtypes.rst:3571 +#: ../Doc/library/stdtypes.rst:2412 ../Doc/library/stdtypes.rst:3630 #, python-format msgid "" "A length modifier (``h``, ``l``, or ``L``) may be present, but is ignored as " @@ -3929,93 +4016,93 @@ msgstr "" "se ignora y no es necesario para Python -- por lo que, por ejemplo, la " "salida de ``%ld`` es idéntica a ``%d``." -#: ../Doc/library/stdtypes.rst:2362 ../Doc/library/stdtypes.rst:3574 +#: ../Doc/library/stdtypes.rst:2415 ../Doc/library/stdtypes.rst:3633 msgid "The conversion types are:" msgstr "Los tipos de conversión son:" -#: ../Doc/library/stdtypes.rst:2365 ../Doc/library/stdtypes.rst:3577 +#: ../Doc/library/stdtypes.rst:2418 ../Doc/library/stdtypes.rst:3636 msgid "Conversion" msgstr "Conversión" -#: ../Doc/library/stdtypes.rst:2367 ../Doc/library/stdtypes.rst:3579 +#: ../Doc/library/stdtypes.rst:2420 ../Doc/library/stdtypes.rst:3638 msgid "``'d'``" msgstr "``'d'``" -#: ../Doc/library/stdtypes.rst:2367 ../Doc/library/stdtypes.rst:2369 -#: ../Doc/library/stdtypes.rst:3579 ../Doc/library/stdtypes.rst:3581 +#: ../Doc/library/stdtypes.rst:2420 ../Doc/library/stdtypes.rst:2422 +#: ../Doc/library/stdtypes.rst:3638 ../Doc/library/stdtypes.rst:3640 msgid "Signed integer decimal." msgstr "Entero decimal con signo." -#: ../Doc/library/stdtypes.rst:2369 ../Doc/library/stdtypes.rst:3581 +#: ../Doc/library/stdtypes.rst:2422 ../Doc/library/stdtypes.rst:3640 msgid "``'i'``" msgstr "``'i'``" -#: ../Doc/library/stdtypes.rst:2371 ../Doc/library/stdtypes.rst:3583 +#: ../Doc/library/stdtypes.rst:2424 ../Doc/library/stdtypes.rst:3642 msgid "``'o'``" msgstr "``'o'``" -#: ../Doc/library/stdtypes.rst:2371 ../Doc/library/stdtypes.rst:3583 +#: ../Doc/library/stdtypes.rst:2424 ../Doc/library/stdtypes.rst:3642 msgid "Signed octal value." msgstr "Valor octal con signo." -#: ../Doc/library/stdtypes.rst:2373 ../Doc/library/stdtypes.rst:3585 +#: ../Doc/library/stdtypes.rst:2426 ../Doc/library/stdtypes.rst:3644 msgid "``'u'``" msgstr "``'u'``" -#: ../Doc/library/stdtypes.rst:2373 ../Doc/library/stdtypes.rst:3585 +#: ../Doc/library/stdtypes.rst:2426 ../Doc/library/stdtypes.rst:3644 msgid "Obsolete type -- it is identical to ``'d'``." msgstr "Obsoleto -- es idéntico a ``'d'``." -#: ../Doc/library/stdtypes.rst:2375 ../Doc/library/stdtypes.rst:3587 +#: ../Doc/library/stdtypes.rst:2428 ../Doc/library/stdtypes.rst:3646 msgid "``'x'``" msgstr "``'x'``" -#: ../Doc/library/stdtypes.rst:2375 ../Doc/library/stdtypes.rst:3587 +#: ../Doc/library/stdtypes.rst:2428 ../Doc/library/stdtypes.rst:3646 msgid "Signed hexadecimal (lowercase)." msgstr "Hexadecimal con signo (en minúsculas)." -#: ../Doc/library/stdtypes.rst:2377 ../Doc/library/stdtypes.rst:3589 +#: ../Doc/library/stdtypes.rst:2430 ../Doc/library/stdtypes.rst:3648 msgid "``'X'``" msgstr "``'X'``" -#: ../Doc/library/stdtypes.rst:2377 ../Doc/library/stdtypes.rst:3589 +#: ../Doc/library/stdtypes.rst:2430 ../Doc/library/stdtypes.rst:3648 msgid "Signed hexadecimal (uppercase)." msgstr "Hexadecimal con signo (en mayúsculas)." -#: ../Doc/library/stdtypes.rst:2379 ../Doc/library/stdtypes.rst:3591 +#: ../Doc/library/stdtypes.rst:2432 ../Doc/library/stdtypes.rst:3650 msgid "``'e'``" msgstr "``'e'``" -#: ../Doc/library/stdtypes.rst:2379 ../Doc/library/stdtypes.rst:3591 +#: ../Doc/library/stdtypes.rst:2432 ../Doc/library/stdtypes.rst:3650 msgid "Floating point exponential format (lowercase)." msgstr "Formato en coma flotante exponencial (en minúsculas)." -#: ../Doc/library/stdtypes.rst:2381 ../Doc/library/stdtypes.rst:3593 +#: ../Doc/library/stdtypes.rst:2434 ../Doc/library/stdtypes.rst:3652 msgid "``'E'``" msgstr "``'E'``" -#: ../Doc/library/stdtypes.rst:2381 ../Doc/library/stdtypes.rst:3593 +#: ../Doc/library/stdtypes.rst:2434 ../Doc/library/stdtypes.rst:3652 msgid "Floating point exponential format (uppercase)." msgstr "Formato en coma flotante exponencial (en mayúsculas)." -#: ../Doc/library/stdtypes.rst:2383 ../Doc/library/stdtypes.rst:3595 +#: ../Doc/library/stdtypes.rst:2436 ../Doc/library/stdtypes.rst:3654 msgid "``'f'``" msgstr "``'f'``" -#: ../Doc/library/stdtypes.rst:2383 ../Doc/library/stdtypes.rst:2385 -#: ../Doc/library/stdtypes.rst:3595 ../Doc/library/stdtypes.rst:3597 +#: ../Doc/library/stdtypes.rst:2436 ../Doc/library/stdtypes.rst:2438 +#: ../Doc/library/stdtypes.rst:3654 ../Doc/library/stdtypes.rst:3656 msgid "Floating point decimal format." msgstr "Formato en coma flotante decimal." -#: ../Doc/library/stdtypes.rst:2385 ../Doc/library/stdtypes.rst:3597 +#: ../Doc/library/stdtypes.rst:2438 ../Doc/library/stdtypes.rst:3656 msgid "``'F'``" msgstr "``'F'``" -#: ../Doc/library/stdtypes.rst:2387 ../Doc/library/stdtypes.rst:3599 +#: ../Doc/library/stdtypes.rst:2440 ../Doc/library/stdtypes.rst:3658 msgid "``'g'``" msgstr "``'g'``" -#: ../Doc/library/stdtypes.rst:2387 ../Doc/library/stdtypes.rst:3599 +#: ../Doc/library/stdtypes.rst:2440 ../Doc/library/stdtypes.rst:3658 msgid "" "Floating point format. Uses lowercase exponential format if exponent is less " "than -4 or not less than precision, decimal format otherwise." @@ -4024,11 +4111,11 @@ msgstr "" "exponente es menor que -4 o no es menor que la precisión, en caso contrario " "usa el formato decimal." -#: ../Doc/library/stdtypes.rst:2391 ../Doc/library/stdtypes.rst:3603 +#: ../Doc/library/stdtypes.rst:2444 ../Doc/library/stdtypes.rst:3662 msgid "``'G'``" msgstr "``'G'``" -#: ../Doc/library/stdtypes.rst:2391 ../Doc/library/stdtypes.rst:3603 +#: ../Doc/library/stdtypes.rst:2444 ../Doc/library/stdtypes.rst:3662 msgid "" "Floating point format. Uses uppercase exponential format if exponent is less " "than -4 or not less than precision, decimal format otherwise." @@ -4037,57 +4124,57 @@ msgstr "" "exponente es menor que -4 o no es menor que la precisión, en caso contrario " "usa el formato decimal." -#: ../Doc/library/stdtypes.rst:2395 ../Doc/library/stdtypes.rst:3607 +#: ../Doc/library/stdtypes.rst:2448 ../Doc/library/stdtypes.rst:3666 msgid "``'c'``" msgstr "``'c'``" -#: ../Doc/library/stdtypes.rst:2395 +#: ../Doc/library/stdtypes.rst:2448 msgid "Single character (accepts integer or single character string)." msgstr "" "Un único carácter (acepta números enteros o cadenas de caracteres de " "longitud 1)." -#: ../Doc/library/stdtypes.rst:2398 ../Doc/library/stdtypes.rst:3620 +#: ../Doc/library/stdtypes.rst:2451 ../Doc/library/stdtypes.rst:3679 msgid "``'r'``" msgstr "``'r'``" -#: ../Doc/library/stdtypes.rst:2398 +#: ../Doc/library/stdtypes.rst:2451 msgid "String (converts any Python object using :func:`repr`)." msgstr "" "Cadena de caracteres (representará cualquier objeto usando la función :func:" "`repr`)." -#: ../Doc/library/stdtypes.rst:2401 ../Doc/library/stdtypes.rst:3614 +#: ../Doc/library/stdtypes.rst:2454 ../Doc/library/stdtypes.rst:3673 msgid "``'s'``" msgstr "``'s'``" -#: ../Doc/library/stdtypes.rst:2401 +#: ../Doc/library/stdtypes.rst:2454 msgid "String (converts any Python object using :func:`str`)." msgstr "" "Cadena de caracteres (representará cualquier objeto usando la función :func:" "`str`)." -#: ../Doc/library/stdtypes.rst:2404 ../Doc/library/stdtypes.rst:3617 +#: ../Doc/library/stdtypes.rst:2457 ../Doc/library/stdtypes.rst:3676 msgid "``'a'``" msgstr "``'a'``" -#: ../Doc/library/stdtypes.rst:2404 +#: ../Doc/library/stdtypes.rst:2457 msgid "String (converts any Python object using :func:`ascii`)." msgstr "" "Cadena de caracteres (representará cualquier objeto usando la función :func:" "`ascii`)." -#: ../Doc/library/stdtypes.rst:2407 ../Doc/library/stdtypes.rst:3623 +#: ../Doc/library/stdtypes.rst:2460 ../Doc/library/stdtypes.rst:3682 msgid "``'%'``" msgstr "``'%'``" -#: ../Doc/library/stdtypes.rst:2407 ../Doc/library/stdtypes.rst:3623 +#: ../Doc/library/stdtypes.rst:2460 ../Doc/library/stdtypes.rst:3682 msgid "No argument is converted, results in a ``'%'`` character in the result." msgstr "" "No se representa ningún argumento, obteniéndose en el resultado la cadena " "``'%'``." -#: ../Doc/library/stdtypes.rst:2414 ../Doc/library/stdtypes.rst:3630 +#: ../Doc/library/stdtypes.rst:2467 ../Doc/library/stdtypes.rst:3689 msgid "" "The alternate form causes a leading octal specifier (``'0o'``) to be " "inserted before the first digit." @@ -4095,7 +4182,7 @@ msgstr "" "La forma alternativa hace que se inserte antes del primer dígito un prefijo " "indicativo del formato octal (``'0o'``)" -#: ../Doc/library/stdtypes.rst:2418 ../Doc/library/stdtypes.rst:3634 +#: ../Doc/library/stdtypes.rst:2471 ../Doc/library/stdtypes.rst:3693 msgid "" "The alternate form causes a leading ``'0x'`` or ``'0X'`` (depending on " "whether the ``'x'`` or ``'X'`` format was used) to be inserted before the " @@ -4106,7 +4193,7 @@ msgstr "" "use uno u otro depende de que indicador de formato se haya usado, ``'x'`` o " "``'X'``)." -#: ../Doc/library/stdtypes.rst:2422 ../Doc/library/stdtypes.rst:3638 +#: ../Doc/library/stdtypes.rst:2475 ../Doc/library/stdtypes.rst:3697 msgid "" "The alternate form causes the result to always contain a decimal point, even " "if no digits follow it." @@ -4114,7 +4201,7 @@ msgstr "" "La forma alternativa hace que se incluya siempre el símbolo del punto o coma " "decimal, incluso si no hubiera dígitos después." -#: ../Doc/library/stdtypes.rst:2425 ../Doc/library/stdtypes.rst:3641 +#: ../Doc/library/stdtypes.rst:2478 ../Doc/library/stdtypes.rst:3700 msgid "" "The precision determines the number of digits after the decimal point and " "defaults to 6." @@ -4122,7 +4209,7 @@ msgstr "" "La precisión determina el número de dígitos que vienen después del punto " "decimal, y por defecto es 6." -#: ../Doc/library/stdtypes.rst:2429 ../Doc/library/stdtypes.rst:3645 +#: ../Doc/library/stdtypes.rst:2482 ../Doc/library/stdtypes.rst:3704 msgid "" "The alternate form causes the result to always contain a decimal point, and " "trailing zeroes are not removed as they would otherwise be." @@ -4131,7 +4218,7 @@ msgstr "" "decimal, y los ceros a su derecha no se eliminan, como seria el caso en la " "forma normal." -#: ../Doc/library/stdtypes.rst:2432 ../Doc/library/stdtypes.rst:3648 +#: ../Doc/library/stdtypes.rst:2485 ../Doc/library/stdtypes.rst:3707 msgid "" "The precision determines the number of significant digits before and after " "the decimal point and defaults to 6." @@ -4139,15 +4226,15 @@ msgstr "" "La precisión determina el número de dígitos significativos que vienen antes " "y después del punto decimal, y por defecto es 6." -#: ../Doc/library/stdtypes.rst:2436 ../Doc/library/stdtypes.rst:3652 +#: ../Doc/library/stdtypes.rst:2489 ../Doc/library/stdtypes.rst:3711 msgid "If precision is ``N``, the output is truncated to ``N`` characters." msgstr "Si la precisión es ``N``, la salida se trunca a ``N`` caracteres." -#: ../Doc/library/stdtypes.rst:2439 ../Doc/library/stdtypes.rst:3661 +#: ../Doc/library/stdtypes.rst:2492 ../Doc/library/stdtypes.rst:3720 msgid "See :pep:`237`." msgstr "Véase :pep:`237`." -#: ../Doc/library/stdtypes.rst:2441 +#: ../Doc/library/stdtypes.rst:2494 #, python-format msgid "" "Since Python strings have an explicit length, ``%s`` conversions do not " @@ -4156,7 +4243,7 @@ msgstr "" "Como en Python las cadenas de caracteres tiene una longitud explícita, la " "conversión de ``%s`` no requiere que la cadena termine con ``'\\0'``." -#: ../Doc/library/stdtypes.rst:2446 +#: ../Doc/library/stdtypes.rst:2499 #, python-format msgid "" "``%f`` conversions for numbers whose absolute value is over 1e50 are no " @@ -4165,7 +4252,7 @@ msgstr "" "Las conversiones ``%f`` para números con valores absolutos mayores que 1e50 " "ya no son reemplazadas por conversiones ``%g``." -#: ../Doc/library/stdtypes.rst:2457 +#: ../Doc/library/stdtypes.rst:2510 msgid "" "Binary Sequence Types --- :class:`bytes`, :class:`bytearray`, :class:" "`memoryview`" @@ -4173,7 +4260,7 @@ msgstr "" "Tipos de secuencias binarias --- :class:`bytes`, :class:`bytearray` y :class:" "`memoryview`" -#: ../Doc/library/stdtypes.rst:2465 +#: ../Doc/library/stdtypes.rst:2518 msgid "" "The core built-in types for manipulating binary data are :class:`bytes` and :" "class:`bytearray`. They are supported by :class:`memoryview` which uses the :" @@ -4186,7 +4273,7 @@ msgstr "" "acceder a la memoria de otros objetos binarios sin necesidad de hacer una " "copia." -#: ../Doc/library/stdtypes.rst:2470 +#: ../Doc/library/stdtypes.rst:2523 msgid "" "The :mod:`array` module supports efficient storage of basic data types like " "32-bit integers and IEEE754 double-precision floating values." @@ -4195,11 +4282,11 @@ msgstr "" "básicos como enteros de 32 bits o números en formato de doble precisión en " "coma flotante IEEE754." -#: ../Doc/library/stdtypes.rst:2476 +#: ../Doc/library/stdtypes.rst:2529 msgid "Bytes Objects" msgstr "Objetos de tipo Bytes" -#: ../Doc/library/stdtypes.rst:2480 +#: ../Doc/library/stdtypes.rst:2533 msgid "" "Bytes objects are immutable sequences of single bytes. Since many major " "binary protocols are based on the ASCII text encoding, bytes objects offer " @@ -4212,7 +4299,7 @@ msgstr "" "trabaja con datos compatibles ASCII y son, en varios aspectos, muy cercanos " "a los cadenas de caracteres." -#: ../Doc/library/stdtypes.rst:2487 +#: ../Doc/library/stdtypes.rst:2540 msgid "" "Firstly, the syntax for bytes literals is largely the same as that for " "string literals, except that a ``b`` prefix is added:" @@ -4221,24 +4308,24 @@ msgstr "" "prácticamente iguales que para las cadenas de caracteres, con la diferencia " "de que se añade el carácter ``b`` como prefijo:" -#: ../Doc/library/stdtypes.rst:2490 +#: ../Doc/library/stdtypes.rst:2543 msgid "Single quotes: ``b'still allows embedded \"double\" quotes'``" msgstr "" "Comillas sencillas: ``b'Se siguen aceptando comillas \"dobles\" embebidas'``" -#: ../Doc/library/stdtypes.rst:2491 +#: ../Doc/library/stdtypes.rst:2544 msgid "Double quotes: ``b\"still allows embedded 'single' quotes\"``" msgstr "" "Comillas dobles: ``b\"Se siguen aceptando comillas 'simples' embebidas\"``" -#: ../Doc/library/stdtypes.rst:2492 +#: ../Doc/library/stdtypes.rst:2545 msgid "" "Triple quoted: ``b'''3 single quotes'''``, ``b\"\"\"3 double quotes\"\"\"``" msgstr "" "Comillas triples: ``b'''3 comillas simples'''``, ``b\"\"\"3 comillas " "dobles\"\"\"``" -#: ../Doc/library/stdtypes.rst:2494 +#: ../Doc/library/stdtypes.rst:2547 msgid "" "Only ASCII characters are permitted in bytes literals (regardless of the " "declared source code encoding). Any binary values over 127 must be entered " @@ -4248,7 +4335,7 @@ msgstr "" "(con independencia del tipo de codificación declarado). Cualquier valor por " "encima de 127 debe ser definido usando su secuencia de escape." -#: ../Doc/library/stdtypes.rst:2498 +#: ../Doc/library/stdtypes.rst:2551 msgid "" "As with string literals, bytes literals may also use a ``r`` prefix to " "disable processing of escape sequences. See :ref:`strings` for more about " @@ -4260,7 +4347,7 @@ msgstr "" "expresar *bytes* de forma literal, incluyendo el soporte de secuencias de " "escape." -#: ../Doc/library/stdtypes.rst:2502 +#: ../Doc/library/stdtypes.rst:2555 msgid "" "While bytes literals and representations are based on ASCII text, bytes " "objects actually behave like immutable sequences of integers, with each " @@ -4284,7 +4371,7 @@ msgstr "" "proceso de textos a datos binarios que no se compatibles con ASCII " "normalmente corromperán dichos datos)." -#: ../Doc/library/stdtypes.rst:2512 +#: ../Doc/library/stdtypes.rst:2565 msgid "" "In addition to the literal forms, bytes objects can be created in a number " "of other ways:" @@ -4292,26 +4379,26 @@ msgstr "" "Además de con literales, se pueden crear objetos de tipo *byte* de las " "siguientes maneras:" -#: ../Doc/library/stdtypes.rst:2515 +#: ../Doc/library/stdtypes.rst:2568 msgid "A zero-filled bytes object of a specified length: ``bytes(10)``" msgstr "" "Un secuencia de una longitud especificada rellena con ceros: ``bytes(10)``" -#: ../Doc/library/stdtypes.rst:2516 +#: ../Doc/library/stdtypes.rst:2569 msgid "From an iterable of integers: ``bytes(range(20))``" msgstr "A partir de un iterable de números enteros: ``bytes(range(20))``" -#: ../Doc/library/stdtypes.rst:2517 +#: ../Doc/library/stdtypes.rst:2570 msgid "Copying existing binary data via the buffer protocol: ``bytes(obj)``" msgstr "" "Copiando datos binarios ya existentes mediante el protocolo *buffer*: " "``bytes(obj)``" -#: ../Doc/library/stdtypes.rst:2519 +#: ../Doc/library/stdtypes.rst:2572 msgid "Also see the :ref:`bytes ` built-in." msgstr "Véase además la función incorporada :ref:`bytes `." -#: ../Doc/library/stdtypes.rst:2521 +#: ../Doc/library/stdtypes.rst:2574 msgid "" "Since 2 hexadecimal digits correspond precisely to a single byte, " "hexadecimal numbers are a commonly used format for describing binary data. " @@ -4323,7 +4410,7 @@ msgstr "" "los objetos de tipo *byte* disponen de un método adicional para leer datos " "en ese formato:" -#: ../Doc/library/stdtypes.rst:2527 +#: ../Doc/library/stdtypes.rst:2580 msgid "" "This :class:`bytes` class method returns a bytes object, decoding the given " "string object. The string must contain two hexadecimal digits per byte, " @@ -4334,7 +4421,7 @@ msgstr "" "caracteres debe consistir en dos dígitos hexadecimales por cada byte, " "ignorándose los caracteres ASCII de espacio en blanco, si los hubiera." -#: ../Doc/library/stdtypes.rst:2534 +#: ../Doc/library/stdtypes.rst:2587 msgid "" ":meth:`bytes.fromhex` now skips all ASCII whitespace in the string, not just " "spaces." @@ -4342,7 +4429,7 @@ msgstr "" "El método :meth:`bytes.fromhex` ignora ahora todos los caracteres ASCII de " "espacio en blanco, no solo el carácter espacio." -#: ../Doc/library/stdtypes.rst:2538 +#: ../Doc/library/stdtypes.rst:2591 msgid "" "A reverse conversion function exists to transform a bytes object into its " "hexadecimal representation." @@ -4350,7 +4437,7 @@ msgstr "" "Existe una función que realiza la operación inversa, es decir, transforma un " "objeto binario en una representación textual usando hexadecimal." -#: ../Doc/library/stdtypes.rst:2543 ../Doc/library/stdtypes.rst:2628 +#: ../Doc/library/stdtypes.rst:2596 ../Doc/library/stdtypes.rst:2681 msgid "" "Return a string object containing two hexadecimal digits for each byte in " "the instance." @@ -4358,7 +4445,7 @@ msgstr "" "Retorna una cadena de caracteres que contiene dos dígitos hexadecimales por " "cada byte de la instancia." -#: ../Doc/library/stdtypes.rst:2549 +#: ../Doc/library/stdtypes.rst:2602 msgid "" "If you want to make the hex string easier to read, you can specify a single " "character separator *sep* parameter to include in the output. By default, " @@ -4373,7 +4460,7 @@ msgstr "" "Valores positivos calculan la posición del separador desde la derecha, los " "negativos lo hacen desde la izquierda." -#: ../Doc/library/stdtypes.rst:2566 +#: ../Doc/library/stdtypes.rst:2619 msgid "" ":meth:`bytes.hex` now supports optional *sep* and *bytes_per_sep* parameters " "to insert separators between bytes in the hex output." @@ -4382,7 +4469,7 @@ msgstr "" "*bytes_per_sep*, que permiten insertar separadores entre los bytes de la " "cadena de salida." -#: ../Doc/library/stdtypes.rst:2570 +#: ../Doc/library/stdtypes.rst:2623 msgid "" "Since bytes objects are sequences of integers (akin to a tuple), for a bytes " "object *b*, ``b[0]`` will be an integer, while ``b[0:1]`` will be a bytes " @@ -4396,7 +4483,7 @@ msgstr "" "cadena de longitud 1, ya sea accediendo por índice o mediante una operación " "de segmentado)." -#: ../Doc/library/stdtypes.rst:2575 +#: ../Doc/library/stdtypes.rst:2628 msgid "" "The representation of bytes objects uses the literal format (``b'...'``) " "since it is often more useful than e.g. ``bytes([46, 46, 46])``. You can " @@ -4407,11 +4494,11 @@ msgstr "" "46, 46])``. Siempre se puede convertir un objeto binario en una lista de " "enteros usando ``list(b)``." -#: ../Doc/library/stdtypes.rst:2583 +#: ../Doc/library/stdtypes.rst:2636 msgid "Bytearray Objects" msgstr "Objetos de tipo *Bytearray*" -#: ../Doc/library/stdtypes.rst:2587 +#: ../Doc/library/stdtypes.rst:2640 msgid "" ":class:`bytearray` objects are a mutable counterpart to :class:`bytes` " "objects." @@ -4419,7 +4506,7 @@ msgstr "" "Los objetos de tipo :class:`bytearray` son versiones mutables de los objetos " "de tipo :class:`bytes`." -#: ../Doc/library/stdtypes.rst:2592 +#: ../Doc/library/stdtypes.rst:2645 msgid "" "There is no dedicated literal syntax for bytearray objects, instead they are " "always created by calling the constructor:" @@ -4427,28 +4514,28 @@ msgstr "" "No existe una sintaxis específica para crear objetos de tipo *bytearray*, " "hay que crearlos siempre llamando a su constructor:" -#: ../Doc/library/stdtypes.rst:2595 +#: ../Doc/library/stdtypes.rst:2648 msgid "Creating an empty instance: ``bytearray()``" msgstr "Creando una secuencia vacía: ``bytearray()``" -#: ../Doc/library/stdtypes.rst:2596 +#: ../Doc/library/stdtypes.rst:2649 msgid "Creating a zero-filled instance with a given length: ``bytearray(10)``" msgstr "" "Creando una instancia de una longitud determinada, rellena con ceros: " "``bytearray(10)``" -#: ../Doc/library/stdtypes.rst:2597 +#: ../Doc/library/stdtypes.rst:2650 msgid "From an iterable of integers: ``bytearray(range(20))``" msgstr "A partir de un iterable de números enteros: ``bytearray(range(20))``" -#: ../Doc/library/stdtypes.rst:2598 +#: ../Doc/library/stdtypes.rst:2651 msgid "" "Copying existing binary data via the buffer protocol: ``bytearray(b'Hi!')``" msgstr "" "Copiando datos binarios ya existentes mediante el protocolo *buffer*: " "``bytearray(b'Hi!')``" -#: ../Doc/library/stdtypes.rst:2600 +#: ../Doc/library/stdtypes.rst:2653 msgid "" "As bytearray objects are mutable, they support the :ref:`mutable ` sequence operations in addition to the common bytes and bytearray " @@ -4458,12 +4545,12 @@ msgstr "" "aplicables a tipos :ref:`mutables `, además de las " "operaciones propias de los *bytearrays* descritas en :ref:`bytes-methods`." -#: ../Doc/library/stdtypes.rst:2604 +#: ../Doc/library/stdtypes.rst:2657 msgid "Also see the :ref:`bytearray ` built-in." msgstr "" "Véase también la función incorporada :ref:`bytearray `." -#: ../Doc/library/stdtypes.rst:2606 +#: ../Doc/library/stdtypes.rst:2659 msgid "" "Since 2 hexadecimal digits correspond precisely to a single byte, " "hexadecimal numbers are a commonly used format for describing binary data. " @@ -4475,7 +4562,7 @@ msgstr "" "los objetos de tipo *bytearray* disponen de un método de clase adicional " "para leer datos en ese formato:" -#: ../Doc/library/stdtypes.rst:2612 +#: ../Doc/library/stdtypes.rst:2665 msgid "" "This :class:`bytearray` class method returns bytearray object, decoding the " "given string object. The string must contain two hexadecimal digits per " @@ -4486,7 +4573,7 @@ msgstr "" "caracteres debe consistir en dos dígitos hexadecimales por cada byte, " "ignorándose los caracteres ASCII de espacio en blanco, si los hubiera." -#: ../Doc/library/stdtypes.rst:2619 +#: ../Doc/library/stdtypes.rst:2672 msgid "" ":meth:`bytearray.fromhex` now skips all ASCII whitespace in the string, not " "just spaces." @@ -4494,7 +4581,7 @@ msgstr "" "El método :meth:`bytearray.fromhex` ignora ahora todos los caracteres ASCII " "de espacio en blanco, no solo el carácter espacio." -#: ../Doc/library/stdtypes.rst:2623 +#: ../Doc/library/stdtypes.rst:2676 msgid "" "A reverse conversion function exists to transform a bytearray object into " "its hexadecimal representation." @@ -4502,7 +4589,7 @@ msgstr "" "Existe una función que realiza la operación inversa, es decir, transforma un " "objeto *bytearray* en una representación textual usando hexadecimal." -#: ../Doc/library/stdtypes.rst:2636 +#: ../Doc/library/stdtypes.rst:2689 msgid "" "Similar to :meth:`bytes.hex`, :meth:`bytearray.hex` now supports optional " "*sep* and *bytes_per_sep* parameters to insert separators between bytes in " @@ -4512,7 +4599,7 @@ msgstr "" "los parámetros opcionales *sep* y *bytes_per_sep* para insertar separadores " "entre los bytes en la cadena hexadecimal de salida." -#: ../Doc/library/stdtypes.rst:2641 +#: ../Doc/library/stdtypes.rst:2694 msgid "" "Since bytearray objects are sequences of integers (akin to a list), for a " "bytearray object *b*, ``b[0]`` will be an integer, while ``b[0:1]`` will be " @@ -4526,7 +4613,7 @@ msgstr "" "cadena de longitud 1, ya sea accediendo por índice o mediante una operación " "de segmentado)." -#: ../Doc/library/stdtypes.rst:2646 +#: ../Doc/library/stdtypes.rst:2699 msgid "" "The representation of bytearray objects uses the bytes literal format " "(``bytearray(b'...')``) since it is often more useful than e.g. " @@ -4538,11 +4625,11 @@ msgstr "" "``bytearray([46, 46, 46])``. Siempre se puede convertir un objeto " "*bytearray* en una lista de enteros usando ``list(b)``." -#: ../Doc/library/stdtypes.rst:2655 +#: ../Doc/library/stdtypes.rst:2708 msgid "Bytes and Bytearray Operations" msgstr "Operaciones de *bytes* y *bytearray*" -#: ../Doc/library/stdtypes.rst:2660 +#: ../Doc/library/stdtypes.rst:2713 msgid "" "Both bytes and bytearray objects support the :ref:`common ` " "sequence operations. They interoperate not just with operands of the same " @@ -4558,7 +4645,7 @@ msgstr "" "embargo, el tipo del valor resultante puede depender del orden de los " "operandos." -#: ../Doc/library/stdtypes.rst:2668 +#: ../Doc/library/stdtypes.rst:2721 msgid "" "The methods on bytes and bytearray objects don't accept strings as their " "arguments, just as the methods on strings don't accept bytes as their " @@ -4569,11 +4656,11 @@ msgstr "" "cadenas tampoco aceptan *bytes* como parámetros. Por ejemplo, debes " "escribir::" -#: ../Doc/library/stdtypes.rst:2675 +#: ../Doc/library/stdtypes.rst:2728 msgid "and::" msgstr "y::" -#: ../Doc/library/stdtypes.rst:2680 +#: ../Doc/library/stdtypes.rst:2733 msgid "" "Some bytes and bytearray operations assume the use of ASCII compatible " "binary formats, and hence should be avoided when working with arbitrary " @@ -4584,7 +4671,7 @@ msgstr "" "con datos binarios arbitrarios. Estas restricciones se explican a " "continuación." -#: ../Doc/library/stdtypes.rst:2685 +#: ../Doc/library/stdtypes.rst:2738 msgid "" "Using these ASCII based operations to manipulate binary data that is not " "stored in an ASCII based format may lead to data corruption." @@ -4593,7 +4680,7 @@ msgstr "" "se almacenan en un formato basado en ASCII pueden producir corrupción de " "datos." -#: ../Doc/library/stdtypes.rst:2688 +#: ../Doc/library/stdtypes.rst:2741 msgid "" "The following methods on bytes and bytearray objects can be used with " "arbitrary binary data." @@ -4601,7 +4688,7 @@ msgstr "" "Los siguientes métodos de *bytes* y *bytearrays* pueden ser usados con datos " "en formatos binarios arbitrarios." -#: ../Doc/library/stdtypes.rst:2694 +#: ../Doc/library/stdtypes.rst:2747 msgid "" "Return the number of non-overlapping occurrences of subsequence *sub* in the " "range [*start*, *end*]. Optional arguments *start* and *end* are " @@ -4611,9 +4698,9 @@ msgstr "" "rango [*start*, *end*]. Los parámetros opcionales *start* y *end* se " "interpretan como en las operaciones de segmentado." -#: ../Doc/library/stdtypes.rst:2698 ../Doc/library/stdtypes.rst:2797 -#: ../Doc/library/stdtypes.rst:2819 ../Doc/library/stdtypes.rst:2885 -#: ../Doc/library/stdtypes.rst:2898 +#: ../Doc/library/stdtypes.rst:2751 ../Doc/library/stdtypes.rst:2856 +#: ../Doc/library/stdtypes.rst:2878 ../Doc/library/stdtypes.rst:2944 +#: ../Doc/library/stdtypes.rst:2957 msgid "" "The subsequence to search for may be any :term:`bytes-like object` or an " "integer in the range 0 to 255." @@ -4621,13 +4708,19 @@ msgstr "" "La subsecuencia a buscar puede ser cualquier :term:`objeto tipo binario " "` o un número entero entre 0 y 255." -#: ../Doc/library/stdtypes.rst:2701 ../Doc/library/stdtypes.rst:2809 -#: ../Doc/library/stdtypes.rst:2822 ../Doc/library/stdtypes.rst:2888 -#: ../Doc/library/stdtypes.rst:2901 +#: ../Doc/library/stdtypes.rst:2754 +msgid "" +"If *sub* is empty, returns the number of empty slices between characters " +"which is the length of the bytes object plus one." +msgstr "" + +#: ../Doc/library/stdtypes.rst:2757 ../Doc/library/stdtypes.rst:2868 +#: ../Doc/library/stdtypes.rst:2881 ../Doc/library/stdtypes.rst:2947 +#: ../Doc/library/stdtypes.rst:2960 msgid "Also accept an integer in the range 0 to 255 as the subsequence." msgstr "También acepta como subsecuencia un número entero entre 0 y 255." -#: ../Doc/library/stdtypes.rst:2708 +#: ../Doc/library/stdtypes.rst:2764 msgid "" "If the binary data starts with the *prefix* string, return " "``bytes[len(prefix):]``. Otherwise, return a copy of the original binary " @@ -4637,22 +4730,22 @@ msgstr "" "``bytes[len(prefix):]``. De otra manera, retorna una copia de los datos " "binarios originales::" -#: ../Doc/library/stdtypes.rst:2717 +#: ../Doc/library/stdtypes.rst:2773 msgid "The *prefix* may be any :term:`bytes-like object`." msgstr "" "El argumento *prefix* puede ser cualquier :term:`objeto tipo binario `." # La traduccion de in place -#: ../Doc/library/stdtypes.rst:2721 ../Doc/library/stdtypes.rst:2743 -#: ../Doc/library/stdtypes.rst:2873 ../Doc/library/stdtypes.rst:2966 -#: ../Doc/library/stdtypes.rst:2980 ../Doc/library/stdtypes.rst:3011 -#: ../Doc/library/stdtypes.rst:3025 ../Doc/library/stdtypes.rst:3067 -#: ../Doc/library/stdtypes.rst:3137 ../Doc/library/stdtypes.rst:3155 -#: ../Doc/library/stdtypes.rst:3183 ../Doc/library/stdtypes.rst:3322 -#: ../Doc/library/stdtypes.rst:3377 ../Doc/library/stdtypes.rst:3420 -#: ../Doc/library/stdtypes.rst:3441 ../Doc/library/stdtypes.rst:3463 -#: ../Doc/library/stdtypes.rst:3665 +#: ../Doc/library/stdtypes.rst:2777 ../Doc/library/stdtypes.rst:2799 +#: ../Doc/library/stdtypes.rst:2932 ../Doc/library/stdtypes.rst:3025 +#: ../Doc/library/stdtypes.rst:3039 ../Doc/library/stdtypes.rst:3070 +#: ../Doc/library/stdtypes.rst:3084 ../Doc/library/stdtypes.rst:3126 +#: ../Doc/library/stdtypes.rst:3196 ../Doc/library/stdtypes.rst:3214 +#: ../Doc/library/stdtypes.rst:3242 ../Doc/library/stdtypes.rst:3381 +#: ../Doc/library/stdtypes.rst:3436 ../Doc/library/stdtypes.rst:3479 +#: ../Doc/library/stdtypes.rst:3500 ../Doc/library/stdtypes.rst:3522 +#: ../Doc/library/stdtypes.rst:3724 msgid "" "The bytearray version of this method does *not* operate in place - it always " "produces a new object, even if no changes were made." @@ -4660,7 +4753,7 @@ msgstr "" "La versión *bytearray* de este método *no* opera in situ - siempre produce " "un nuevo objeto, aún si no se hubiera realizado ningún cambio." -#: ../Doc/library/stdtypes.rst:2730 +#: ../Doc/library/stdtypes.rst:2786 msgid "" "If the binary data ends with the *suffix* string and that *suffix* is not " "empty, return ``bytes[:-len(suffix)]``. Otherwise, return a copy of the " @@ -4670,59 +4763,43 @@ msgstr "" "argumento *suffix* no está vacío, retorna ``bytes[:-len(suffix)]``. De otra " "manera, retorna una copia de los datos binarios originales::" -#: ../Doc/library/stdtypes.rst:2739 +#: ../Doc/library/stdtypes.rst:2795 msgid "The *suffix* may be any :term:`bytes-like object`." msgstr "" "El argumento *suffix* puede ser cualquier :term:`objeto tipo binario `." -# Hay que ver si estas referencias se han traducido -#: ../Doc/library/stdtypes.rst:2752 -msgid "" -"Return a string decoded from the given bytes. Default encoding is " -"``'utf-8'``. *errors* may be given to set a different error handling " -"scheme. The default for *errors* is ``'strict'``, meaning that encoding " -"errors raise a :exc:`UnicodeError`. Other possible values are ``'ignore'``, " -"``'replace'`` and any other name registered via :func:`codecs." -"register_error`, see section :ref:`error-handlers`. For a list of possible " -"encodings, see section :ref:`standard-encodings`." -msgstr "" -"Retorna una cadena de caracteres decodificada a partir de la secuencia de " -"bytes. La codificación por defecto es ``'utf-8'``. El parámetro *errors* " -"puede definir diferentes estrategias de gestión de errores. El valor por " -"defecto de *errors* es ``'strict'``, que hace que cualquier error de la " -"decodificación lanza una excepción de tipo :exc:`UnicodeError`. Otros " -"valores posibles son ``'ignore'``, ``'replace'`` y cualquier otro nombre " -"definido mediante la función :func:`codecs.register_error`, véase la " -"sección :ref:`error-handlers`. Para un listado de todos los valores de " -"codificación posibles, véase :ref:`standard-encodings`." - -#: ../Doc/library/stdtypes.rst:2760 -msgid "" -"By default, the *errors* argument is not checked for best performances, but " -"only used at the first decoding error. Enable the :ref:`Python Development " -"Mode `, or use a :ref:`debug build ` to check *errors*." -msgstr "" -"Por defecto, el argumento *errors* no se verifica para mejor rendimiento, " -"solo se usa con el primer error de codificación encontrado. Se puede " -"habilitar el :ref:`modo de desarrollo de Python `, o utilizar una :" -"ref:`compilación de depuración ` para verificar *errors*." - -#: ../Doc/library/stdtypes.rst:2766 +#: ../Doc/library/stdtypes.rst:2808 +msgid "Return the bytes decoded to a :class:`str`." +msgstr "" + +#: ../Doc/library/stdtypes.rst:2813 +msgid "" +"*errors* controls how decoding errors are handled. If ``'strict'`` (the " +"default), a :exc:`UnicodeError` exception is raised. Other possible values " +"are ``'ignore'``, ``'replace'``, and any other name registered via :func:" +"`codecs.register_error`. See :ref:`error-handlers` for details." +msgstr "" + +#: ../Doc/library/stdtypes.rst:2819 +msgid "" +"For performance reasons, the value of *errors* is not checked for validity " +"unless a decoding error actually occurs, :ref:`devmode` is enabled or a :ref:" +"`debug build ` is used." +msgstr "" + +#: ../Doc/library/stdtypes.rst:2825 +#, fuzzy msgid "" "Passing the *encoding* argument to :class:`str` allows decoding any :term:" -"`bytes-like object` directly, without needing to make a temporary bytes or " -"bytearray object." +"`bytes-like object` directly, without needing to make a temporary :class:`!" +"bytes` or :class:`!bytearray` object." msgstr "" "Pasando el parámetro *encoding* a la clase :class:`str` permite decodificar " "cualquier :term:`objeto tipo binario ` directamente, sin " "necesidad de crear una objeto temporal de tipo *bytes* o *bytearray*." -#: ../Doc/library/stdtypes.rst:2770 -msgid "Added support for keyword arguments." -msgstr "Añadido soporte para poder usar parámetros por nombre." - -#: ../Doc/library/stdtypes.rst:2781 +#: ../Doc/library/stdtypes.rst:2840 msgid "" "Return ``True`` if the binary data ends with the specified *suffix*, " "otherwise return ``False``. *suffix* can also be a tuple of suffixes to " @@ -4735,13 +4812,13 @@ msgstr "" "*start*, la comparación empieza a partir de esa posición. Si se especifica " "el parámetro opcional *end*, la comparación termina en esa posición." -#: ../Doc/library/stdtypes.rst:2786 +#: ../Doc/library/stdtypes.rst:2845 msgid "The suffix(es) to search for may be any :term:`bytes-like object`." msgstr "" "El sufijo (o sufijos) a buscar puede ser cualquier :term:`objeto tipo " "binario `." -#: ../Doc/library/stdtypes.rst:2792 +#: ../Doc/library/stdtypes.rst:2851 msgid "" "Return the lowest index in the data where the subsequence *sub* is found, " "such that *sub* is contained in the slice ``s[start:end]``. Optional " @@ -4754,7 +4831,7 @@ msgstr "" "como en las operaciones de segmentado. Retorna ``-1`` si no se puede " "encontrar *sub*." -#: ../Doc/library/stdtypes.rst:2802 +#: ../Doc/library/stdtypes.rst:2861 msgid "" "The :meth:`~bytes.find` method should be used only if you need to know the " "position of *sub*. To check if *sub* is a substring or not, use the :" @@ -4764,7 +4841,7 @@ msgstr "" "posición de *sub*. Si solo se necesita comprobar si *sub* es una parte de " "*s*, es mejor usar el operador :keyword:`in`::" -#: ../Doc/library/stdtypes.rst:2816 +#: ../Doc/library/stdtypes.rst:2875 msgid "" "Like :meth:`~bytes.find`, but raise :exc:`ValueError` when the subsequence " "is not found." @@ -4772,7 +4849,7 @@ msgstr "" "Como :meth:`~bytes.find`, pero lanza una excepción de tipo :exc:`ValueError` " "si no se encuentra la subsecuencia a buscar." -#: ../Doc/library/stdtypes.rst:2829 +#: ../Doc/library/stdtypes.rst:2888 msgid "" "Return a bytes or bytearray object which is the concatenation of the binary " "data sequences in *iterable*. A :exc:`TypeError` will be raised if there " @@ -4788,7 +4865,7 @@ msgstr "" "(objetos :class:`str`). El separador entre los distintos elementos es el " "contenido del objeto *bytes* o *bytearray* usando para invocar el método." -#: ../Doc/library/stdtypes.rst:2840 +#: ../Doc/library/stdtypes.rst:2899 msgid "" "This static method returns a translation table usable for :meth:`bytes." "translate` that will map each character in *from* into the character at the " @@ -4800,7 +4877,7 @@ msgstr "" "misma posición en *to*; tanto *from* como *to* deben ser :term:`objetos tipo " "binario ` y deben tener la misma longitud." -#: ../Doc/library/stdtypes.rst:2851 +#: ../Doc/library/stdtypes.rst:2910 msgid "" "Split the sequence at the first occurrence of *sep*, and return a 3-tuple " "containing the part before the separator, the separator itself or its " @@ -4815,13 +4892,13 @@ msgstr "" "primera posición ocupada por la secuencia original, y las dos posiciones " "siguientes rellenas con objetos *bytes* o *bytearray* vacíos." -#: ../Doc/library/stdtypes.rst:2858 ../Doc/library/stdtypes.rst:2915 +#: ../Doc/library/stdtypes.rst:2917 ../Doc/library/stdtypes.rst:2974 msgid "The separator to search for may be any :term:`bytes-like object`." msgstr "" "El separador a buscar puede ser cualquier :term:`objeto tipo binario `." -#: ../Doc/library/stdtypes.rst:2864 +#: ../Doc/library/stdtypes.rst:2923 msgid "" "Return a copy of the sequence with all occurrences of subsequence *old* " "replaced by *new*. If the optional argument *count* is given, only the " @@ -4831,7 +4908,7 @@ msgstr "" "sustituidas por *new*. Si se utiliza el parámetro *count*, solo se cambian " "las primeras *count* ocurrencias." -#: ../Doc/library/stdtypes.rst:2868 +#: ../Doc/library/stdtypes.rst:2927 msgid "" "The subsequence to search for and its replacement may be any :term:`bytes-" "like object`." @@ -4839,7 +4916,7 @@ msgstr "" "La subsecuencia a buscar y su reemplazo puede ser cualquier :term:`objeto " "tipo binario `." -#: ../Doc/library/stdtypes.rst:2880 +#: ../Doc/library/stdtypes.rst:2939 msgid "" "Return the highest index in the sequence where the subsequence *sub* is " "found, such that *sub* is contained within ``s[start:end]``. Optional " @@ -4851,7 +4928,7 @@ msgstr "" "*start* y *end* se interpretan igual que en las operaciones de segmentado. " "Retorna ``-1`` si no se encuentra *sub*." -#: ../Doc/library/stdtypes.rst:2895 +#: ../Doc/library/stdtypes.rst:2954 msgid "" "Like :meth:`~bytes.rfind` but raises :exc:`ValueError` when the subsequence " "*sub* is not found." @@ -4859,7 +4936,7 @@ msgstr "" "Como el método :meth:`~bytes.rfind`, pero lanza la excepción :exc:" "`ValueError` si no se encuentra *sub*." -#: ../Doc/library/stdtypes.rst:2908 +#: ../Doc/library/stdtypes.rst:2967 msgid "" "Split the sequence at the last occurrence of *sep*, and return a 3-tuple " "containing the part before the separator, the separator itself or its " @@ -4874,7 +4951,7 @@ msgstr "" "primeras posiciones rellenas con objetos *bytes* o *bytearray* vacíos, y la " "tercera posición ocupada por la secuencia original." -#: ../Doc/library/stdtypes.rst:2921 +#: ../Doc/library/stdtypes.rst:2980 msgid "" "Return ``True`` if the binary data starts with the specified *prefix*, " "otherwise return ``False``. *prefix* can also be a tuple of prefixes to " @@ -4887,13 +4964,13 @@ msgstr "" "*start*, la comparación empieza a partir de esa posición. Si se especifica " "el parámetro opcional *end*, la comparación termina en esa posición." -#: ../Doc/library/stdtypes.rst:2926 +#: ../Doc/library/stdtypes.rst:2985 msgid "The prefix(es) to search for may be any :term:`bytes-like object`." msgstr "" "El prefijo (o prefijos) a buscar puede ser cualquier :term:`objeto tipo " "binario `." -#: ../Doc/library/stdtypes.rst:2932 +#: ../Doc/library/stdtypes.rst:2991 msgid "" "Return a copy of the bytes or bytearray object where all bytes occurring in " "the optional argument *delete* are removed, and the remaining bytes have " @@ -4906,14 +4983,14 @@ msgstr "" "indicada, que debe ser un objeto de tipo *bytes* con una longitud de 256 " "elementos." -#: ../Doc/library/stdtypes.rst:2937 +#: ../Doc/library/stdtypes.rst:2996 msgid "" "You can use the :func:`bytes.maketrans` method to create a translation table." msgstr "" "Puedes usar el método :func:`bytes.maketrans` para crear la tabla de " "traducción." -#: ../Doc/library/stdtypes.rst:2940 +#: ../Doc/library/stdtypes.rst:2999 msgid "" "Set the *table* argument to ``None`` for translations that only delete " "characters::" @@ -4921,11 +4998,11 @@ msgstr "" "Se puede ajustar el parámetro *table* a ``None`` para conseguir una " "traducción que solo borra caracteres::" -#: ../Doc/library/stdtypes.rst:2946 +#: ../Doc/library/stdtypes.rst:3005 msgid "*delete* is now supported as a keyword argument." msgstr "El parámetro *delete* se puede ahora especificar por nombre." -#: ../Doc/library/stdtypes.rst:2950 +#: ../Doc/library/stdtypes.rst:3009 msgid "" "The following methods on bytes and bytearray objects have default behaviours " "that assume the use of ASCII compatible binary formats, but can still be " @@ -4940,7 +5017,7 @@ msgstr "" "*bytearray* en esta sección nunca operan in situ, sino que siempre retornan " "objetos nuevos." -#: ../Doc/library/stdtypes.rst:2959 +#: ../Doc/library/stdtypes.rst:3018 msgid "" "Return a copy of the object centered in a sequence of length *width*. " "Padding is done using the specified *fillbyte* (default is an ASCII space). " @@ -4953,7 +5030,7 @@ msgstr "" "`bytes`, se retorna la secuencia original intacta si *width* es menor o " "igual que ``len(s)``." -#: ../Doc/library/stdtypes.rst:2973 +#: ../Doc/library/stdtypes.rst:3032 msgid "" "Return a copy of the object left justified in a sequence of length *width*. " "Padding is done using the specified *fillbyte* (default is an ASCII space). " @@ -4966,7 +5043,7 @@ msgstr "" "objetos de tipo :class:`bytes`, se retorna la secuencia original intacta si " "*width* es menor o igual que ``len(s)``." -#: ../Doc/library/stdtypes.rst:2987 +#: ../Doc/library/stdtypes.rst:3046 msgid "" "Return a copy of the sequence with specified leading bytes removed. The " "*chars* argument is a binary sequence specifying the set of byte values to " @@ -4983,7 +5060,7 @@ msgstr "" "caracteres de espacio ASCII. No debe entenderse el valor de *chars* como un " "prefijo, sino que se elimina cualquier combinación de sus caracteres::" -#: ../Doc/library/stdtypes.rst:2999 +#: ../Doc/library/stdtypes.rst:3058 msgid "" "The binary sequence of byte values to remove may be any :term:`bytes-like " "object`. See :meth:`~bytes.removeprefix` for a method that will remove a " @@ -4995,7 +5072,7 @@ msgstr "" "prefijo en lugar de todas las ocurrencias dentro de un set de caracteres. " "Por ejemplo::" -#: ../Doc/library/stdtypes.rst:3018 +#: ../Doc/library/stdtypes.rst:3077 msgid "" "Return a copy of the object right justified in a sequence of length *width*. " "Padding is done using the specified *fillbyte* (default is an ASCII space). " @@ -5008,7 +5085,7 @@ msgstr "" "objetos de tipo :class:`bytes`, se retorna la secuencia original intacta si " "*width* es menor o igual que ``len(s)``." -#: ../Doc/library/stdtypes.rst:3032 +#: ../Doc/library/stdtypes.rst:3091 msgid "" "Split the binary sequence into subsequences of the same type, using *sep* as " "the delimiter string. If *maxsplit* is given, at most *maxsplit* splits are " @@ -5026,7 +5103,7 @@ msgstr "" "meth:`rsplit` es equivalente al de :meth:`split`, que se describe con " "detalle más adelante." -#: ../Doc/library/stdtypes.rst:3043 +#: ../Doc/library/stdtypes.rst:3102 msgid "" "Return a copy of the sequence with specified trailing bytes removed. The " "*chars* argument is a binary sequence specifying the set of byte values to " @@ -5043,7 +5120,7 @@ msgstr "" "ASCII. No debe entenderse el valor de *chars* como un prefijo, sino que se " "elimina cualquier combinación de sus caracteres::" -#: ../Doc/library/stdtypes.rst:3055 +#: ../Doc/library/stdtypes.rst:3114 msgid "" "The binary sequence of byte values to remove may be any :term:`bytes-like " "object`. See :meth:`~bytes.removesuffix` for a method that will remove a " @@ -5055,7 +5132,7 @@ msgstr "" "en lugar de todas las ocurrencias dentro de un set de caracteres. Por " "ejemplo::" -#: ../Doc/library/stdtypes.rst:3074 +#: ../Doc/library/stdtypes.rst:3133 msgid "" "Split the binary sequence into subsequences of the same type, using *sep* as " "the delimiter string. If *maxsplit* is given and non-negative, at most " @@ -5070,7 +5147,7 @@ msgstr "" "especifica *maxsplit* o se pasa ``'-1``, no hay límite al número de " "divisiones (se hacen todas las posibles divisiones)." -#: ../Doc/library/stdtypes.rst:3080 +#: ../Doc/library/stdtypes.rst:3139 msgid "" "If *sep* is given, consecutive delimiters are not grouped together and are " "deemed to delimit empty subsequences (for example, ``b'1,,2'.split(b',')`` " @@ -5089,7 +5166,7 @@ msgstr "" "dependiendo del tipo de objeto dividido. El parámetro *sep* puede ser " "cualquier :term:`objeto tipo binario `." -#: ../Doc/library/stdtypes.rst:3098 +#: ../Doc/library/stdtypes.rst:3157 msgid "" "If *sep* is not specified or is ``None``, a different splitting algorithm is " "applied: runs of consecutive ASCII whitespace are regarded as a single " @@ -5106,7 +5183,7 @@ msgstr "" "una secuencia vacía o que solo contenga espacios en blanco usando ``None`` " "como separador siempre retornará una lista vacía ``[]``." -#: ../Doc/library/stdtypes.rst:3119 +#: ../Doc/library/stdtypes.rst:3178 msgid "" "Return a copy of the sequence with specified leading and trailing bytes " "removed. The *chars* argument is a binary sequence specifying the set of " @@ -5124,7 +5201,7 @@ msgstr "" "un prefijo o sufijo, sino que se elimina cualquier combinación de sus " "valores::" -#: ../Doc/library/stdtypes.rst:3132 +#: ../Doc/library/stdtypes.rst:3191 msgid "" "The binary sequence of byte values to remove may be any :term:`bytes-like " "object`." @@ -5132,7 +5209,7 @@ msgstr "" "La secuencia binaria de bytes a eliminar debe ser un :term:`objeto tipo " "binario `." -#: ../Doc/library/stdtypes.rst:3141 +#: ../Doc/library/stdtypes.rst:3200 msgid "" "The following methods on bytes and bytearray objects assume the use of ASCII " "compatible binary formats and should not be applied to arbitrary binary " @@ -5144,7 +5221,7 @@ msgstr "" "binarios arbitrarios. Nótese que todos los métodos de *bytearray* en esta " "sección nunca operan in situ, sino que siempre retornan objetos nuevos." -#: ../Doc/library/stdtypes.rst:3149 +#: ../Doc/library/stdtypes.rst:3208 msgid "" "Return a copy of the sequence with each byte interpreted as an ASCII " "character, and the first byte capitalized and the rest lowercased. Non-ASCII " @@ -5154,7 +5231,7 @@ msgstr "" "carácter ASCII, y el primer byte en mayúsculas y el resto en minúsculas. Los " "valores que no sean ASCII no se ven modificados." -#: ../Doc/library/stdtypes.rst:3162 +#: ../Doc/library/stdtypes.rst:3221 msgid "" "Return a copy of the sequence where all ASCII tab characters are replaced by " "one or more ASCII spaces, depending on the current column and the given tab " @@ -5183,7 +5260,7 @@ msgstr "" "sin cambios y hace que el contador de columna se incremente en 1, sin tener " "en cuenta como se representa impreso el byte::" -#: ../Doc/library/stdtypes.rst:3190 +#: ../Doc/library/stdtypes.rst:3249 msgid "" "Return ``True`` if all bytes in the sequence are alphabetical ASCII " "characters or ASCII decimal digits and the sequence is not empty, ``False`` " @@ -5198,7 +5275,7 @@ msgstr "" "``b'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'``. Los caracteres " "decimales ASCII son los bytes incluidos en la secuencia ``b'0123456789'``." -#: ../Doc/library/stdtypes.rst:3207 +#: ../Doc/library/stdtypes.rst:3266 msgid "" "Return ``True`` if all bytes in the sequence are alphabetic ASCII characters " "and the sequence is not empty, ``False`` otherwise. Alphabetic ASCII " @@ -5210,7 +5287,7 @@ msgstr "" "retorna ``False``. Los caracteres alfabéticos ASCII son los bytes incluidos " "en la secuencia ``b'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'``." -#: ../Doc/library/stdtypes.rst:3223 +#: ../Doc/library/stdtypes.rst:3282 msgid "" "Return ``True`` if the sequence is empty or all bytes in the sequence are " "ASCII, ``False`` otherwise. ASCII bytes are in the range 0-0x7F." @@ -5219,7 +5296,7 @@ msgstr "" "secuencia son caracteres ASCII, en cualquier otro caso retorna ``False``. " "Los caracteres ASCII son los bytes incluidos en el rango 0-0x7F." -#: ../Doc/library/stdtypes.rst:3233 +#: ../Doc/library/stdtypes.rst:3292 msgid "" "Return ``True`` if all bytes in the sequence are ASCII decimal digits and " "the sequence is not empty, ``False`` otherwise. ASCII decimal digits are " @@ -5230,7 +5307,7 @@ msgstr "" "``False``. Los caracteres decimales ASCII son los bytes incluidos en la " "secuencia ``b'0123456789'``." -#: ../Doc/library/stdtypes.rst:3248 +#: ../Doc/library/stdtypes.rst:3307 msgid "" "Return ``True`` if there is at least one lowercase ASCII character in the " "sequence and no uppercase ASCII characters, ``False`` otherwise." @@ -5239,9 +5316,9 @@ msgstr "" "ningún carácter ASCII en mayúsculas, en cualquier otro caso retorna " "``False``." -#: ../Doc/library/stdtypes.rst:3258 ../Doc/library/stdtypes.rst:3300 -#: ../Doc/library/stdtypes.rst:3316 ../Doc/library/stdtypes.rst:3366 -#: ../Doc/library/stdtypes.rst:3435 +#: ../Doc/library/stdtypes.rst:3317 ../Doc/library/stdtypes.rst:3359 +#: ../Doc/library/stdtypes.rst:3375 ../Doc/library/stdtypes.rst:3425 +#: ../Doc/library/stdtypes.rst:3494 msgid "" "Lowercase ASCII characters are those byte values in the sequence " "``b'abcdefghijklmnopqrstuvwxyz'``. Uppercase ASCII characters are those byte " @@ -5251,7 +5328,7 @@ msgstr "" "``b'abcdefghijklmnopqrstuvwxyz'``. Los caracteres ASCII en mayúsculas son " "los bytes en la secuencia ``b'ABCDEFGHIJKLMNOPQRSTUVWXYZ'``." -#: ../Doc/library/stdtypes.rst:3266 +#: ../Doc/library/stdtypes.rst:3325 msgid "" "Return ``True`` if all bytes in the sequence are ASCII whitespace and the " "sequence is not empty, ``False`` otherwise. ASCII whitespace characters are " @@ -5264,7 +5341,7 @@ msgstr "" "incluidos en la secuencia ``b' \\t\\n\\r\\x0b\\f'`` (espacio, tabulador, " "nueva línea, retorno de carro, tabulador vertical y avance de página)." -#: ../Doc/library/stdtypes.rst:3275 +#: ../Doc/library/stdtypes.rst:3334 msgid "" "Return ``True`` if the sequence is ASCII titlecase and the sequence is not " "empty, ``False`` otherwise. See :meth:`bytes.title` for more details on the " @@ -5275,7 +5352,7 @@ msgstr "" "método :meth:`bytes.title` para más detalles en la definición de \"En forma " "de título\"." -#: ../Doc/library/stdtypes.rst:3290 +#: ../Doc/library/stdtypes.rst:3349 msgid "" "Return ``True`` if there is at least one uppercase alphabetic ASCII " "character in the sequence and no lowercase ASCII characters, ``False`` " @@ -5285,7 +5362,7 @@ msgstr "" "ningún carácter ASCII en minúsculas, en cualquier otro caso retorna " "``False``." -#: ../Doc/library/stdtypes.rst:3308 +#: ../Doc/library/stdtypes.rst:3367 msgid "" "Return a copy of the sequence with all the uppercase ASCII characters " "converted to their corresponding lowercase counterpart." @@ -5293,7 +5370,7 @@ msgstr "" "Retorna una copia de la secuencia con todos los caracteres ASCII en " "mayúsculas sustituidos por su versión correspondiente en minúsculas." -#: ../Doc/library/stdtypes.rst:3333 +#: ../Doc/library/stdtypes.rst:3392 msgid "" "Return a list of the lines in the binary sequence, breaking at ASCII line " "boundaries. This method uses the :term:`universal newlines` approach to " @@ -5305,7 +5382,7 @@ msgstr "" "como separadores no se incluyen en la lista de resultados a no ser que se " "pase el parámetro *keepends* a ``True``." -#: ../Doc/library/stdtypes.rst:3345 +#: ../Doc/library/stdtypes.rst:3404 msgid "" "Unlike :meth:`~bytes.split` when a delimiter string *sep* is given, this " "method returns an empty list for the empty string, and a terminal line break " @@ -5316,7 +5393,7 @@ msgstr "" "vacía para la cadena vacía, y un carácter de salto de línea al final de la " "secuencia no resulta en una línea extra::" -#: ../Doc/library/stdtypes.rst:3358 +#: ../Doc/library/stdtypes.rst:3417 msgid "" "Return a copy of the sequence with all the lowercase ASCII characters " "converted to their corresponding uppercase counterpart and vice-versa." @@ -5325,7 +5402,7 @@ msgstr "" "minúsculas sustituidos por su versión correspondiente en mayúsculas, y " "viceversa." -#: ../Doc/library/stdtypes.rst:3370 +#: ../Doc/library/stdtypes.rst:3429 msgid "" "Unlike :func:`str.swapcase()`, it is always the case that ``bin.swapcase()." "swapcase() == bin`` for the binary versions. Case conversions are " @@ -5337,7 +5414,7 @@ msgstr "" "La conversión de mayúsculas a minúsculas son simétricas en ASCII, aunque " "esto no es el caso general para códigos de punto Unicode." -#: ../Doc/library/stdtypes.rst:3384 +#: ../Doc/library/stdtypes.rst:3443 msgid "" "Return a titlecased version of the binary sequence where words start with an " "uppercase ASCII character and the remaining characters are lowercase. " @@ -5347,7 +5424,7 @@ msgstr "" "primera letra de cada palabra en mayúsculas y el resto en minúsculas. Los " "valores de bytes sin mayúsculas y minúsculas se dejan sin modificar." -#: ../Doc/library/stdtypes.rst:3393 +#: ../Doc/library/stdtypes.rst:3452 msgid "" "Lowercase ASCII characters are those byte values in the sequence " "``b'abcdefghijklmnopqrstuvwxyz'``. Uppercase ASCII characters are those byte " @@ -5359,14 +5436,14 @@ msgstr "" "los bytes en la secuencia ``b'ABCDEFGHIJKLMNOPQRSTUVWXYZ'``. El resto de los " "caracteres no presentan diferencias entre mayúsculas y minúsculas." -#: ../Doc/library/stdtypes.rst:3406 +#: ../Doc/library/stdtypes.rst:3465 msgid "" "A workaround for apostrophes can be constructed using regular expressions::" msgstr "" "Se puede solucionar parcialmente el problema de los apóstrofos usando " "expresiones regulares::" -#: ../Doc/library/stdtypes.rst:3427 +#: ../Doc/library/stdtypes.rst:3486 msgid "" "Return a copy of the sequence with all the lowercase ASCII characters " "converted to their corresponding uppercase counterpart." @@ -5374,7 +5451,7 @@ msgstr "" "Retorna una copia de la secuencia con todos los caracteres ASCII en " "minúsculas sustituidos por su versión correspondiente en mayúsculas." -#: ../Doc/library/stdtypes.rst:3448 +#: ../Doc/library/stdtypes.rst:3507 msgid "" "Return a copy of the sequence left filled with ASCII ``b'0'`` digits to make " "a sequence of length *width*. A leading sign prefix (``b'+'``/ ``b'-'``) is " @@ -5389,11 +5466,11 @@ msgstr "" "objetos :class:`bytes`, se retorna la secuencia original si *width* es menor " "o igual que ``len(s)``." -#: ../Doc/library/stdtypes.rst:3470 +#: ../Doc/library/stdtypes.rst:3529 msgid "``printf``-style Bytes Formatting" msgstr "Usando el formateo tipo ``printf`` con bytes" -#: ../Doc/library/stdtypes.rst:3487 +#: ../Doc/library/stdtypes.rst:3546 msgid "" "The formatting operations described here exhibit a variety of quirks that " "lead to a number of common errors (such as failing to display tuples and " @@ -5405,7 +5482,7 @@ msgstr "" "representar tuplas y diccionarios correctamente). Si el valor a representar " "es una tupla o un diccionario, hay que envolverlos en una tupla." -#: ../Doc/library/stdtypes.rst:3492 +#: ../Doc/library/stdtypes.rst:3551 msgid "" "Bytes objects (``bytes``/``bytearray``) have one unique built-in operation: " "the ``%`` operator (modulo). This is also known as the bytes *formatting* or " @@ -5422,7 +5499,7 @@ msgstr "" "son reemplazadas por cero o más elementos de *valores*. El efecto es similar " "a usar la función del lenguaje C :c:func:`sprintf`." -#: ../Doc/library/stdtypes.rst:3499 +#: ../Doc/library/stdtypes.rst:3558 msgid "" "If *format* requires a single argument, *values* may be a single non-tuple " "object. [5]_ Otherwise, *values* must be a tuple with exactly the number of " @@ -5434,7 +5511,7 @@ msgstr "" "con exactamente el mismo número de elementos que marcadores usados en el " "objeto binario, o un único objeto de tipo mapa (por ejemplo, un diccionario)." -#: ../Doc/library/stdtypes.rst:3533 +#: ../Doc/library/stdtypes.rst:3592 msgid "" "When the right argument is a dictionary (or other mapping type), then the " "formats in the bytes object *must* include a parenthesised mapping key into " @@ -5447,15 +5524,15 @@ msgstr "" "valor de la clave se usa para seleccionar el valor a formatear desde el " "mapa. Por ejemplo::" -#: ../Doc/library/stdtypes.rst:3607 +#: ../Doc/library/stdtypes.rst:3666 msgid "Single byte (accepts integer or single byte objects)." msgstr "Byte único (acepta números enteros o binarios de un único byte)." -#: ../Doc/library/stdtypes.rst:3610 +#: ../Doc/library/stdtypes.rst:3669 msgid "``'b'``" msgstr "``'b'``" -#: ../Doc/library/stdtypes.rst:3610 +#: ../Doc/library/stdtypes.rst:3669 msgid "" "Bytes (any object that follows the :ref:`buffer protocol ` or " "has :meth:`__bytes__`)." @@ -5463,7 +5540,7 @@ msgstr "" "Bytes (cualquier objeto que siga el :ref:`protocolo búfer ` o " "implemente el método :meth:`__bytes__`)." -#: ../Doc/library/stdtypes.rst:3614 +#: ../Doc/library/stdtypes.rst:3673 msgid "" "``'s'`` is an alias for ``'b'`` and should only be used for Python2/3 code " "bases." @@ -5471,7 +5548,7 @@ msgstr "" "``'s'`` es un alias de ``'b'`` y solo debe ser usado para bases de código " "Python2/3." -#: ../Doc/library/stdtypes.rst:3617 +#: ../Doc/library/stdtypes.rst:3676 msgid "" "Bytes (converts any Python object using ``repr(obj).encode('ascii', " "'backslashreplace')``)." @@ -5479,7 +5556,7 @@ msgstr "" "Bytes (convierte cualquier objeto Python usando ``repr(obj)." "encode('ascii','backslashreplace')``)." -#: ../Doc/library/stdtypes.rst:3620 +#: ../Doc/library/stdtypes.rst:3679 msgid "" "``'r'`` is an alias for ``'a'`` and should only be used for Python2/3 code " "bases." @@ -5487,30 +5564,30 @@ msgstr "" "``'r'`` es un alias de ``'a'`` y solo debe ser usado para bases de código " "Python2/3." -#: ../Doc/library/stdtypes.rst:3620 +#: ../Doc/library/stdtypes.rst:3679 msgid "\\(7)" msgstr "\\(7)" -#: ../Doc/library/stdtypes.rst:3655 +#: ../Doc/library/stdtypes.rst:3714 #, python-format msgid "``b'%s'`` is deprecated, but will not be removed during the 3.x series." msgstr "``b'%s'`` está obsoleto, pero no se retirará durante la serie 3.x." -#: ../Doc/library/stdtypes.rst:3658 +#: ../Doc/library/stdtypes.rst:3717 #, python-format msgid "``b'%r'`` is deprecated, but will not be removed during the 3.x series." msgstr "``b'%r'`` está obsoleto, pero no se retirará durante la serie 3.x." -#: ../Doc/library/stdtypes.rst:3670 +#: ../Doc/library/stdtypes.rst:3729 #, python-format msgid ":pep:`461` - Adding % formatting to bytes and bytearray" msgstr ":pep:`461` - Añadiendo % formatea a bytes y bytearray" -#: ../Doc/library/stdtypes.rst:3677 +#: ../Doc/library/stdtypes.rst:3736 msgid "Memory Views" msgstr "Vistas de memoria" -#: ../Doc/library/stdtypes.rst:3679 +#: ../Doc/library/stdtypes.rst:3738 msgid "" ":class:`memoryview` objects allow Python code to access the internal data of " "an object that supports the :ref:`buffer protocol ` without " @@ -5520,7 +5597,7 @@ msgstr "" "los datos internos de objetos que soporten el :ref:`protocolo buffer " "` sin necesidad de hacer copias." -#: ../Doc/library/stdtypes.rst:3685 +#: ../Doc/library/stdtypes.rst:3744 msgid "" "Create a :class:`memoryview` that references *object*. *object* must " "support the buffer protocol. Built-in objects that support the buffer " @@ -5530,7 +5607,7 @@ msgstr "" "debe soportar el protocolo buffer. Los objetos incorporados que soportan el " "protocolo buffer incluyen los :class:`bytes` y :class:`bytearray`." -#: ../Doc/library/stdtypes.rst:3689 +#: ../Doc/library/stdtypes.rst:3748 msgid "" "A :class:`memoryview` has the notion of an *element*, which is the atomic " "memory unit handled by the originating *object*. For many simple types such " @@ -5543,23 +5620,26 @@ msgstr "" "es un único byte, pero otros tipos, como la clase :class:`array.array` " "pueden tener elementos más grandes." -#: ../Doc/library/stdtypes.rst:3694 +#: ../Doc/library/stdtypes.rst:3753 +msgid "" +"``len(view)`` is equal to the length of :class:`~memoryview.tolist`, which " +"is the nested list representation of the view. If ``view.ndim = 1``, this is " +"equal to the number of elements in the view." +msgstr "" + +#: ../Doc/library/stdtypes.rst:3757 +msgid "" +"If ``view.ndim == 0``, ``len(view)`` now raises :exc:`TypeError` instead of " +"returning 1." +msgstr "" + +#: ../Doc/library/stdtypes.rst:3760 msgid "" -"``len(view)`` is equal to the length of :class:`~memoryview.tolist`. If " -"``view.ndim = 0``, the length is 1. If ``view.ndim = 1``, the length is " -"equal to the number of elements in the view. For higher dimensions, the " -"length is equal to the length of the nested list representation of the view. " "The :class:`~memoryview.itemsize` attribute will give you the number of " "bytes in a single element." msgstr "" -"El resultado de ``len(view)`` es igual a la longitud de :class:`~memoryview." -"tolist`. Si ``view.ndim = 0``, la longitud es 1. Si ``view.ndim = 1``, la " -"longitud es igual al número de elementos en la vista. Para dimensiones " -"superiores, la longitud es igual a la de la representación como lista " -"anidada de la vista. El atributo :class:`~memoryview.itemsize` contiene el " -"número de bytes que ocupa un único elemento." -#: ../Doc/library/stdtypes.rst:3701 +#: ../Doc/library/stdtypes.rst:3763 msgid "" "A :class:`memoryview` supports slicing and indexing to expose its data. One-" "dimensional slicing will result in a subview::" @@ -5568,7 +5648,7 @@ msgstr "" "acceso por índices a sus datos. Un segmentado unidimensional producirá una " "sub-vista::" -#: ../Doc/library/stdtypes.rst:3714 +#: ../Doc/library/stdtypes.rst:3776 msgid "" "If :class:`~memoryview.format` is one of the native format specifiers from " "the :mod:`struct` module, indexing with an integer or a tuple of integers is " @@ -5587,11 +5667,11 @@ msgstr "" "enteros, donde *ndim* es el número de dimensiones. Vistas *memoryviews* con " "cero dimensiones pueden ser indexados con una tupla vacía." -#: ../Doc/library/stdtypes.rst:3723 +#: ../Doc/library/stdtypes.rst:3785 msgid "Here is an example with a non-byte format::" msgstr "Aquí hay un ejemplo con un formato que no es un byte::" -#: ../Doc/library/stdtypes.rst:3735 +#: ../Doc/library/stdtypes.rst:3797 msgid "" "If the underlying object is writable, the memoryview supports one-" "dimensional slice assignment. Resizing is not allowed::" @@ -5600,26 +5680,28 @@ msgstr "" "soporta asignación unidimensional mediante segmentos. Sin embargo, no se " "permite el cambio de tamaño::" -#: ../Doc/library/stdtypes.rst:3756 +#: ../Doc/library/stdtypes.rst:3818 +#, fuzzy msgid "" -"One-dimensional memoryviews of hashable (read-only) types with formats 'B', " -"'b' or 'c' are also hashable. The hash is defined as ``hash(m) == hash(m." -"tobytes())``::" +"One-dimensional memoryviews of :term:`hashable` (read-only) types with " +"formats 'B', 'b' or 'c' are also hashable. The hash is defined as ``hash(m) " +"== hash(m.tobytes())``::" msgstr "" "Los objetos *memoryviews* de una única dimensión que contienen tipos de " "datos *hashables* (de solo lectura) con formatos 'B', 'b' o 'c' son también " "*hashables*. El *hash* se define como ``hash(m) == hash(m.tobytes())``::" -#: ../Doc/library/stdtypes.rst:3768 +#: ../Doc/library/stdtypes.rst:3830 +#, fuzzy msgid "" "One-dimensional memoryviews can now be sliced. One-dimensional memoryviews " -"with formats 'B', 'b' or 'c' are now hashable." +"with formats 'B', 'b' or 'c' are now :term:`hashable`." msgstr "" "Los objetos *memoryviews* de una única dimensión pueden ahora ser usados con " "operaciones de segmentado. Los objetos *memoryviews* de una única dimensión " "con formatos 'B', 'b' o 'c' son ahora *hashables*." -#: ../Doc/library/stdtypes.rst:3772 +#: ../Doc/library/stdtypes.rst:3834 msgid "" "memoryview is now registered automatically with :class:`collections.abc." "Sequence`" @@ -5627,17 +5709,17 @@ msgstr "" "los objetos *memoryview* son registrados automáticamente con la clase :class:" "`collections.abc.Sequence`" -#: ../Doc/library/stdtypes.rst:3776 +#: ../Doc/library/stdtypes.rst:3838 msgid "memoryviews can now be indexed with tuple of integers." msgstr "" "los objetos *memoryviews* se pueden ahora acceder usando como índices una " "tupla de números enteros." -#: ../Doc/library/stdtypes.rst:3779 +#: ../Doc/library/stdtypes.rst:3841 msgid ":class:`memoryview` has several methods:" msgstr "La clase :class:`memoryview` tiene varios métodos:" -#: ../Doc/library/stdtypes.rst:3783 +#: ../Doc/library/stdtypes.rst:3845 msgid "" "A memoryview and a :pep:`3118` exporter are equal if their shapes are " "equivalent and if all corresponding values are equal when the operands' " @@ -5648,7 +5730,7 @@ msgstr "" "formatos respectivos de los operandos son interpretados usando la sintaxis " "de :mod:`struct`." -#: ../Doc/library/stdtypes.rst:3787 +#: ../Doc/library/stdtypes.rst:3849 msgid "" "For the subset of :mod:`struct` format strings currently supported by :meth:" "`tolist`, ``v`` and ``w`` are equal if ``v.tolist() == w.tolist()``::" @@ -5656,7 +5738,7 @@ msgstr "" "Para el subconjunto de formatos de :mod:`struct` soportados actualmente por :" "meth:`tolist`, ``v`` y ``w`` son iguales si ``v.tolist() == w.tolist()``::" -#: ../Doc/library/stdtypes.rst:3806 +#: ../Doc/library/stdtypes.rst:3868 msgid "" "If either format string is not supported by the :mod:`struct` module, then " "the objects will always compare as unequal (even if the format strings and " @@ -5667,7 +5749,7 @@ msgstr "" "diferentes (incluso si las cadenas de formato y el contenido del *buffer* " "son idénticos)::" -#: ../Doc/library/stdtypes.rst:3822 +#: ../Doc/library/stdtypes.rst:3884 msgid "" "Note that, as with floating point numbers, ``v is w`` does *not* imply ``v " "== w`` for memoryview objects." @@ -5675,7 +5757,7 @@ msgstr "" "Nótese que, al igual que con los números en coma flotante, ``v is w`` *no* " "implica que ``v == w`` para objetos del tipo *memoryview*." -#: ../Doc/library/stdtypes.rst:3825 +#: ../Doc/library/stdtypes.rst:3887 msgid "" "Previous versions compared the raw memory disregarding the item format and " "the logical array structure." @@ -5683,7 +5765,7 @@ msgstr "" "Versiones previas comparaban la memoria directamente, sin considerar ni el " "formato de los elementos ni la estructura lógica del arreglo." -#: ../Doc/library/stdtypes.rst:3831 +#: ../Doc/library/stdtypes.rst:3893 msgid "" "Return the data in the buffer as a bytestring. This is equivalent to " "calling the :class:`bytes` constructor on the memoryview. ::" @@ -5691,7 +5773,7 @@ msgstr "" "Retorna los datos en el *buffer* en forma de cadena de bytes. Equivale a " "llamar al constructor de la clase :class:`bytes` en el objeto *memoryview*::" -#: ../Doc/library/stdtypes.rst:3840 +#: ../Doc/library/stdtypes.rst:3902 msgid "" "For non-contiguous arrays the result is equal to the flattened list " "representation with all elements converted to bytes. :meth:`tobytes` " @@ -5704,7 +5786,7 @@ msgstr "" "incluidos aquellos que no se encuentran en la sintaxis del módulo :mod:" "`struct`." -#: ../Doc/library/stdtypes.rst:3845 +#: ../Doc/library/stdtypes.rst:3907 msgid "" "*order* can be {'C', 'F', 'A'}. When *order* is 'C' or 'F', the data of the " "original array is converted to C or Fortran order. For contiguous views, 'A' " @@ -5719,7 +5801,7 @@ msgstr "" "vistas no contiguas, los datos se convierten primero a C. Definir " "*order=None* es lo mismo que *order='C'*." -#: ../Doc/library/stdtypes.rst:3854 +#: ../Doc/library/stdtypes.rst:3916 msgid "" "Return a string object containing two hexadecimal digits for each byte in " "the buffer. ::" @@ -5727,7 +5809,7 @@ msgstr "" "Retorna una cadena de caracteres que contiene dos dígitos hexadecimales por " "cada byte en el *buffer*::" -#: ../Doc/library/stdtypes.rst:3863 +#: ../Doc/library/stdtypes.rst:3925 msgid "" "Similar to :meth:`bytes.hex`, :meth:`memoryview.hex` now supports optional " "*sep* and *bytes_per_sep* parameters to insert separators between bytes in " @@ -5737,11 +5819,11 @@ msgstr "" "los parámetros opcionales *sep* y *bytes_per_sep* para insertar separadores " "entre los bytes en la cadena hexadecimal de salida." -#: ../Doc/library/stdtypes.rst:3870 +#: ../Doc/library/stdtypes.rst:3932 msgid "Return the data in the buffer as a list of elements. ::" msgstr "Retorna los datos en el *buffer* como una lista de elementos. ::" -#: ../Doc/library/stdtypes.rst:3880 +#: ../Doc/library/stdtypes.rst:3942 msgid "" ":meth:`tolist` now supports all single character native formats in :mod:" "`struct` module syntax as well as multi-dimensional representations." @@ -5750,7 +5832,7 @@ msgstr "" "carácter definidos en el módulo :mod:`struct`, así como las representaciones " "de múltiples dimensiones." -#: ../Doc/library/stdtypes.rst:3887 +#: ../Doc/library/stdtypes.rst:3949 msgid "" "Return a readonly version of the memoryview object. The original memoryview " "object is unchanged. ::" @@ -5758,7 +5840,7 @@ msgstr "" "Retorna una versión de solo lectura del objeto *memoryview*. El objeto " "original permanece inalterado::" -#: ../Doc/library/stdtypes.rst:3906 +#: ../Doc/library/stdtypes.rst:3968 msgid "" "Release the underlying buffer exposed by the memoryview object. Many " "objects take special actions when a view is held on them (for example, a :" @@ -5773,7 +5855,7 @@ msgstr "" "restricciones (así como para tratar con los recursos pendientes) lo más " "pronto posible." -#: ../Doc/library/stdtypes.rst:3912 +#: ../Doc/library/stdtypes.rst:3974 msgid "" "After this method has been called, any further operation on the view raises " "a :class:`ValueError` (except :meth:`release()` itself which can be called " @@ -5784,7 +5866,7 @@ msgstr "" "por el propio método :meth:`release()`, que puede ser llamado las veces que " "se quiera)::" -#: ../Doc/library/stdtypes.rst:3923 +#: ../Doc/library/stdtypes.rst:3985 msgid "" "The context management protocol can be used for a similar effect, using the " "``with`` statement::" @@ -5792,7 +5874,7 @@ msgstr "" "El protocolo de gestión de contexto puede ser usado para obtener un efecto " "similar, usando la sentencia ``with``::" -#: ../Doc/library/stdtypes.rst:3939 +#: ../Doc/library/stdtypes.rst:4001 msgid "" "Cast a memoryview to a new format or shape. *shape* defaults to " "``[byte_length//new_itemsize]``, which means that the result view will be " @@ -5806,48 +5888,50 @@ msgstr "" "de tipo *memoryview*, pero el buffer en sí no se copia. Las transformaciones " "pueden ser 1D -> C-:term:`contiguo` y C-contiguo -> 1D." -#: ../Doc/library/stdtypes.rst:3945 +#: ../Doc/library/stdtypes.rst:4007 +#, fuzzy msgid "" "The destination format is restricted to a single element native format in :" "mod:`struct` syntax. One of the formats must be a byte format ('B', 'b' or " -"'c'). The byte length of the result must be the same as the original length." +"'c'). The byte length of the result must be the same as the original length. " +"Note that all byte lengths may depend on the operating system." msgstr "" "El formato de destino está restringido a un único elemento de formato nativo " "en la sintaxis de :mod:`struct`. Uno de los formatos debe ser un formato de " "byte ('B', 'b' o 'c'). La longitud en bytes del resultado debe coincidir con " "la longitud original." -#: ../Doc/library/stdtypes.rst:3950 +#: ../Doc/library/stdtypes.rst:4013 msgid "Cast 1D/long to 1D/unsigned bytes::" msgstr "Transforma de ``1D/long`` a bytes ``1D/unsigned``::" -#: ../Doc/library/stdtypes.rst:3973 +#: ../Doc/library/stdtypes.rst:4036 msgid "Cast 1D/unsigned bytes to 1D/char::" msgstr "Transforma de ``1D/unsigned`` a bytes ``1D/char``::" -#: ../Doc/library/stdtypes.rst:3986 +#: ../Doc/library/stdtypes.rst:4049 msgid "Cast 1D/bytes to 3D/ints to 1D/signed char::" msgstr "Transforma de ``1D/bytes`` a ``3D/ints`` a caracteres ``1D/signed``::" -#: ../Doc/library/stdtypes.rst:4012 +#: ../Doc/library/stdtypes.rst:4075 msgid "Cast 1D/unsigned long to 2D/unsigned long::" msgstr "Transforma de *long* ``1D/unsigned`` a *long* ``2D/unsigned``::" -#: ../Doc/library/stdtypes.rst:4026 +#: ../Doc/library/stdtypes.rst:4089 msgid "The source format is no longer restricted when casting to a byte view." msgstr "" "El formato de origen ya no está restringido cuando se transforma a una vista " "de bytes." -#: ../Doc/library/stdtypes.rst:4029 +#: ../Doc/library/stdtypes.rst:4092 msgid "There are also several readonly attributes available:" msgstr "Hay disponibles varios atributos de solo lectura:" -#: ../Doc/library/stdtypes.rst:4033 +#: ../Doc/library/stdtypes.rst:4096 msgid "The underlying object of the memoryview::" msgstr "El objeto subyacente del *memoryview*::" -#: ../Doc/library/stdtypes.rst:4044 +#: ../Doc/library/stdtypes.rst:4107 msgid "" "``nbytes == product(shape) * itemsize == len(m.tobytes())``. This is the " "amount of space in bytes that the array would use in a contiguous " @@ -5857,15 +5941,15 @@ msgstr "" "espacio, medido en bytes, que usará el arreglo en una representación " "continua. No tiene que ser necesariamente igual a ``len(m)``::" -#: ../Doc/library/stdtypes.rst:4063 +#: ../Doc/library/stdtypes.rst:4126 msgid "Multi-dimensional arrays::" msgstr "Arreglos de múltiples dimensiones::" -#: ../Doc/library/stdtypes.rst:4080 +#: ../Doc/library/stdtypes.rst:4143 msgid "A bool indicating whether the memory is read only." msgstr "Un booleano que indica si la memoria es de solo lectura." -#: ../Doc/library/stdtypes.rst:4084 +#: ../Doc/library/stdtypes.rst:4147 msgid "" "A string containing the format (in :mod:`struct` module style) for each " "element in the view. A memoryview can be created from exporters with " @@ -5878,7 +5962,7 @@ msgstr "" "pero algunos métodos (como, por ejemplo, :meth:`tolist`) están restringidos " "a usar formatos de elementos nativos sencillos." -#: ../Doc/library/stdtypes.rst:4089 +#: ../Doc/library/stdtypes.rst:4152 msgid "" "format ``'B'`` is now handled according to the struct module syntax. This " "means that ``memoryview(b'abc')[0] == b'abc'[0] == 97``." @@ -5887,11 +5971,11 @@ msgstr "" "módulo ``struct``. Esto significa que ``memoryview(b'abc')[0] == b'abc'[0] " "== 97``." -#: ../Doc/library/stdtypes.rst:4095 +#: ../Doc/library/stdtypes.rst:4158 msgid "The size in bytes of each element of the memoryview::" msgstr "El tamaño en bytes de cada elemento del objeto *memoryview*::" -#: ../Doc/library/stdtypes.rst:4108 +#: ../Doc/library/stdtypes.rst:4171 msgid "" "An integer indicating how many dimensions of a multi-dimensional array the " "memory represents." @@ -5899,7 +5983,7 @@ msgstr "" "Un número entero que indica cuantas dimensiones de un arreglo multi-" "dimensional representa la memoria." -#: ../Doc/library/stdtypes.rst:4113 +#: ../Doc/library/stdtypes.rst:4176 msgid "" "A tuple of integers the length of :attr:`ndim` giving the shape of the " "memory as an N-dimensional array." @@ -5907,11 +5991,11 @@ msgstr "" "Una tupla de números enteros, de longitud :attr:`ndim`, que indica la forma " "de la memoria en un arreglo de *N* dimensiones." -#: ../Doc/library/stdtypes.rst:4116 ../Doc/library/stdtypes.rst:4124 +#: ../Doc/library/stdtypes.rst:4179 ../Doc/library/stdtypes.rst:4187 msgid "An empty tuple instead of ``None`` when ndim = 0." msgstr "Una tupla vacía, en vez de ``None``, cuando ``ndim = 0``." -#: ../Doc/library/stdtypes.rst:4121 +#: ../Doc/library/stdtypes.rst:4184 msgid "" "A tuple of integers the length of :attr:`ndim` giving the size in bytes to " "access each element for each dimension of the array." @@ -5919,30 +6003,30 @@ msgstr "" "Una tupla de números enteros, de longitud :attr:`ndim`, que indica el tamaño " "en bytes para acceder a cada dimensión del arreglo." -#: ../Doc/library/stdtypes.rst:4129 +#: ../Doc/library/stdtypes.rst:4192 msgid "Used internally for PIL-style arrays. The value is informational only." msgstr "" "De uso interno para los arreglos estilo *PIL*. El valor es solo informativo." -#: ../Doc/library/stdtypes.rst:4133 +#: ../Doc/library/stdtypes.rst:4196 msgid "A bool indicating whether the memory is C-:term:`contiguous`." msgstr "" "Un booleano que indica si la memoria es :term:`contiguous` al estilo C." -#: ../Doc/library/stdtypes.rst:4139 +#: ../Doc/library/stdtypes.rst:4202 msgid "A bool indicating whether the memory is Fortran :term:`contiguous`." msgstr "" "Un booleano que indica si la memoria es :term:`contiguous` al estilo Fortran." -#: ../Doc/library/stdtypes.rst:4145 +#: ../Doc/library/stdtypes.rst:4208 msgid "A bool indicating whether the memory is :term:`contiguous`." msgstr "Un booleano que indica si la memoria es :term:`contiguous`." -#: ../Doc/library/stdtypes.rst:4153 +#: ../Doc/library/stdtypes.rst:4216 msgid "Set Types --- :class:`set`, :class:`frozenset`" msgstr "Conjuntos --- :class:`set`, :class:`frozenset`" -#: ../Doc/library/stdtypes.rst:4157 +#: ../Doc/library/stdtypes.rst:4220 msgid "" "A :dfn:`set` object is an unordered collection of distinct :term:`hashable` " "objects. Common uses include membership testing, removing duplicates from a " @@ -5959,7 +6043,7 @@ msgstr "" "véanse las clases incorporadas :class:`dict`, :class:`list`, y :class:" "`tuple`, así como el módulo :mod:`collections`)." -#: ../Doc/library/stdtypes.rst:4164 +#: ../Doc/library/stdtypes.rst:4227 msgid "" "Like other collections, sets support ``x in set``, ``len(set)``, and ``for x " "in set``. Being an unordered collection, sets do not record element " @@ -5972,7 +6056,7 @@ msgstr "" "mismo, los conjuntos no soportan indexado, ni operaciones de segmentado, ni " "otras capacidades propias de las secuencias." -#: ../Doc/library/stdtypes.rst:4169 +#: ../Doc/library/stdtypes.rst:4232 msgid "" "There are currently two built-in set types, :class:`set` and :class:" "`frozenset`. The :class:`set` type is mutable --- the contents can be " @@ -5992,7 +6076,7 @@ msgstr "" "contenidos no pueden ser modificados después de creados. Puede ser usado, " "por tanto, como claves de diccionario o como elemento de otro conjunto." -#: ../Doc/library/stdtypes.rst:4177 +#: ../Doc/library/stdtypes.rst:4240 msgid "" "Non-empty sets (not frozensets) can be created by placing a comma-separated " "list of elements within braces, for example: ``{'jack', 'sjoerd'}``, in " @@ -6003,11 +6087,11 @@ msgstr "" "``{'jack', 'sjoerd'}``, además de con el constructor de la clase :class:" "`set`." -#: ../Doc/library/stdtypes.rst:4181 +#: ../Doc/library/stdtypes.rst:4244 msgid "The constructors for both classes work the same:" msgstr "El constructor para ambas clases se usa de la misma forma:" -#: ../Doc/library/stdtypes.rst:4186 +#: ../Doc/library/stdtypes.rst:4249 msgid "" "Return a new set or frozenset object whose elements are taken from " "*iterable*. The elements of a set must be :term:`hashable`. To represent " @@ -6021,25 +6105,25 @@ msgstr "" "`frozenset`. Si no se especifica el parámetro *iterable*, se retorna un " "conjunto vacío." -#: ../Doc/library/stdtypes.rst:4192 +#: ../Doc/library/stdtypes.rst:4255 msgid "Sets can be created by several means:" msgstr "Los conjuntos (*sets*) se pueden construir de diferentes formas:" -#: ../Doc/library/stdtypes.rst:4194 +#: ../Doc/library/stdtypes.rst:4257 msgid "" "Use a comma-separated list of elements within braces: ``{'jack', 'sjoerd'}``" msgstr "" "Usando una lista de elementos separados por coma entre corchetes: ``{'jack', " "'sjoerd'}``" -#: ../Doc/library/stdtypes.rst:4195 +#: ../Doc/library/stdtypes.rst:4258 msgid "" "Use a set comprehension: ``{c for c in 'abracadabra' if c not in 'abc'}``" msgstr "" "Usando un *set comprehention*: ``{c for c in 'abracadabra' if c not in 'abc'}" "``" -#: ../Doc/library/stdtypes.rst:4196 +#: ../Doc/library/stdtypes.rst:4259 msgid "" "Use the type constructor: ``set()``, ``set('foobar')``, ``set(['a', 'b', " "'foo'])``" @@ -6047,7 +6131,7 @@ msgstr "" "Usando un constructor de tipo: ``set()``, ``set('foobar')``, ``set(['a', " "'b', 'foo'])``" -#: ../Doc/library/stdtypes.rst:4198 +#: ../Doc/library/stdtypes.rst:4261 msgid "" "Instances of :class:`set` and :class:`frozenset` provide the following " "operations:" @@ -6055,20 +6139,20 @@ msgstr "" "Las instancias de :class:`set` y :class:`frozenset` proporcionan las " "siguientes operaciones:" -#: ../Doc/library/stdtypes.rst:4203 +#: ../Doc/library/stdtypes.rst:4266 msgid "Return the number of elements in set *s* (cardinality of *s*)." msgstr "" "Retorna el número de elementos en el conjunto *s* (cardinalidad de *s*)." -#: ../Doc/library/stdtypes.rst:4207 +#: ../Doc/library/stdtypes.rst:4270 msgid "Test *x* for membership in *s*." msgstr "Comprueba que el elemento *x* está incluido en *s*." -#: ../Doc/library/stdtypes.rst:4211 +#: ../Doc/library/stdtypes.rst:4274 msgid "Test *x* for non-membership in *s*." msgstr "Comprueba que el elemento *x* no está incluido en *s*." -#: ../Doc/library/stdtypes.rst:4215 +#: ../Doc/library/stdtypes.rst:4278 msgid "" "Return ``True`` if the set has no elements in common with *other*. Sets are " "disjoint if and only if their intersection is the empty set." @@ -6077,12 +6161,12 @@ msgstr "" "*other*. Dos conjuntos son disjuntos si y solo si su intersección es el " "conjunto vacío." -#: ../Doc/library/stdtypes.rst:4221 +#: ../Doc/library/stdtypes.rst:4284 msgid "Test whether every element in the set is in *other*." msgstr "" "Comprueba si cada elemento del conjunto también se encuentra en *other*." -#: ../Doc/library/stdtypes.rst:4225 +#: ../Doc/library/stdtypes.rst:4288 msgid "" "Test whether the set is a proper subset of *other*, that is, ``set <= other " "and set != other``." @@ -6090,11 +6174,11 @@ msgstr "" "Comprueba si el conjunto es un subconjunto propio de *other*, es decir, " "``set <= other and set != other``." -#: ../Doc/library/stdtypes.rst:4231 +#: ../Doc/library/stdtypes.rst:4294 msgid "Test whether every element in *other* is in the set." msgstr "Comprueba que cada elemento de *other* está incluido en el conjunto." -#: ../Doc/library/stdtypes.rst:4235 +#: ../Doc/library/stdtypes.rst:4298 msgid "" "Test whether the set is a proper superset of *other*, that is, ``set >= " "other and set != other``." @@ -6102,36 +6186,36 @@ msgstr "" "Comprueba si el conjunto es un superconjunto propio de *other*, es decir, " "``set >= other and set != other``." -#: ../Doc/library/stdtypes.rst:4241 +#: ../Doc/library/stdtypes.rst:4304 msgid "Return a new set with elements from the set and all others." msgstr "" "Retorna un conjunto nuevo que contiene todos los elementos del conjunto y de " "*others*." -#: ../Doc/library/stdtypes.rst:4246 +#: ../Doc/library/stdtypes.rst:4309 msgid "Return a new set with elements common to the set and all others." msgstr "" "Retorna un conjunto nuevo que contiene todos los elementos que están a la " "vez en conjunto y en *others*." -#: ../Doc/library/stdtypes.rst:4251 +#: ../Doc/library/stdtypes.rst:4314 msgid "Return a new set with elements in the set that are not in the others." msgstr "" "Retorna un conjunto nuevo que contiene todos los elementos del conjunto y " "que no están incluidos en *others*." -#: ../Doc/library/stdtypes.rst:4256 +#: ../Doc/library/stdtypes.rst:4319 msgid "" "Return a new set with elements in either the set or *other* but not both." msgstr "" "Retorna un conjunto nuevo que contiene elementos que están incluidos en el " "conjunto o en *others*, pero no en los dos a la vez." -#: ../Doc/library/stdtypes.rst:4260 +#: ../Doc/library/stdtypes.rst:4323 msgid "Return a shallow copy of the set." msgstr "Retorna una copia superficial del conjunto." -#: ../Doc/library/stdtypes.rst:4263 +#: ../Doc/library/stdtypes.rst:4326 msgid "" "Note, the non-operator versions of :meth:`union`, :meth:`intersection`, :" "meth:`difference`, :meth:`symmetric_difference`, :meth:`issubset`, and :meth:" @@ -6148,7 +6232,7 @@ msgstr "" "construcciones propensas a errores como ``set('abc') & 'cbs'``, favoreciendo " "el uso de formas más legibles como ``set('abc').intersection('cbs')``." -#: ../Doc/library/stdtypes.rst:4270 +#: ../Doc/library/stdtypes.rst:4333 msgid "" "Both :class:`set` and :class:`frozenset` support set to set comparisons. Two " "sets are equal if and only if every element of each set is contained in the " @@ -6165,7 +6249,7 @@ msgstr "" "que otro si y solo si el primero es un superconjunto propio del segundo (es " "un superconjunto, pero no son iguales)." -#: ../Doc/library/stdtypes.rst:4277 +#: ../Doc/library/stdtypes.rst:4340 msgid "" "Instances of :class:`set` are compared to instances of :class:`frozenset` " "based on their members. For example, ``set('abc') == frozenset('abc')`` " @@ -6176,7 +6260,7 @@ msgstr "" "frozenset('abc')`` retorna ``True`` y lo mismo hace ``set('abc') in " "set([frozenset('abc')])``." -#: ../Doc/library/stdtypes.rst:4281 +#: ../Doc/library/stdtypes.rst:4344 msgid "" "The subset and equality comparisons do not generalize to a total ordering " "function. For example, any two nonempty disjoint sets are not equal and are " @@ -6189,7 +6273,7 @@ msgstr "" "tampoco son subconjuntos uno del otro, así que todas estas operaciones " "retornan ``False``: ``ab``." -#: ../Doc/library/stdtypes.rst:4286 +#: ../Doc/library/stdtypes.rst:4349 msgid "" "Since sets only define partial ordering (subset relationships), the output " "of the :meth:`list.sort` method is undefined for lists of sets." @@ -6198,13 +6282,13 @@ msgstr "" "la salida del método :meth:`list.sort` no está definida para listas de " "conjuntos." -#: ../Doc/library/stdtypes.rst:4289 +#: ../Doc/library/stdtypes.rst:4352 msgid "Set elements, like dictionary keys, must be :term:`hashable`." msgstr "" "Los elementos de un conjunto, al igual que las claves de un diccionario, " "deben ser :term:`hashable`." -#: ../Doc/library/stdtypes.rst:4291 +#: ../Doc/library/stdtypes.rst:4354 msgid "" "Binary operations that mix :class:`set` instances with :class:`frozenset` " "return the type of the first operand. For example: ``frozenset('ab') | " @@ -6215,7 +6299,7 @@ msgstr "" "``frozenset('ab') | set('bc')`` retornará una instancia de :class:" "`frozenset`." -#: ../Doc/library/stdtypes.rst:4295 +#: ../Doc/library/stdtypes.rst:4358 msgid "" "The following table lists operations available for :class:`set` that do not " "apply to immutable instances of :class:`frozenset`:" @@ -6223,34 +6307,34 @@ msgstr "" "La siguiente tabla muestra las operaciones disponibles para la clase :class:" "`set` que no son aplicables a los conjuntos inmutables :class:`frozenset`:" -#: ../Doc/library/stdtypes.rst:4301 +#: ../Doc/library/stdtypes.rst:4364 msgid "Update the set, adding elements from all others." msgstr "" "Actualiza el conjunto, añadiendo los elementos que se encuentren en *others*." -#: ../Doc/library/stdtypes.rst:4306 +#: ../Doc/library/stdtypes.rst:4369 msgid "Update the set, keeping only elements found in it and all others." msgstr "" "Actualiza el conjunto, manteniendo solo los elementos que se encuentren en " "si mismo y en *others*." -#: ../Doc/library/stdtypes.rst:4311 +#: ../Doc/library/stdtypes.rst:4374 msgid "Update the set, removing elements found in others." msgstr "" "Actualiza el conjunto, eliminado los elementos que se encuentren en *others*." -#: ../Doc/library/stdtypes.rst:4316 +#: ../Doc/library/stdtypes.rst:4379 msgid "" "Update the set, keeping only elements found in either set, but not in both." msgstr "" "Actualiza el conjunto, manteniendo solo los elementos que se encuentren en " "el conjunto o en *others*, pero no en los dos a la vez." -#: ../Doc/library/stdtypes.rst:4320 +#: ../Doc/library/stdtypes.rst:4383 msgid "Add element *elem* to the set." msgstr "Añade al conjunto el elemento *elem*." -#: ../Doc/library/stdtypes.rst:4324 +#: ../Doc/library/stdtypes.rst:4387 msgid "" "Remove element *elem* from the set. Raises :exc:`KeyError` if *elem* is not " "contained in the set." @@ -6258,11 +6342,11 @@ msgstr "" "Elimina del conjunto el elemento *elem*. Lanza la excepción :exc:`KeyError` " "si *elem* no estaba incluido en el conjunto." -#: ../Doc/library/stdtypes.rst:4329 +#: ../Doc/library/stdtypes.rst:4392 msgid "Remove element *elem* from the set if it is present." msgstr "Elimina del conjunto el elemento *elem*, si estuviera incluido." -#: ../Doc/library/stdtypes.rst:4333 +#: ../Doc/library/stdtypes.rst:4396 msgid "" "Remove and return an arbitrary element from the set. Raises :exc:`KeyError` " "if the set is empty." @@ -6270,11 +6354,11 @@ msgstr "" "Elimina y retorna un elemento cualquiera del conjunto. Lanza la excepción :" "exc:`KeyError` si el conjunto está vacío." -#: ../Doc/library/stdtypes.rst:4338 +#: ../Doc/library/stdtypes.rst:4401 msgid "Remove all elements from the set." msgstr "Elimina todos los elementos del conjunto." -#: ../Doc/library/stdtypes.rst:4341 +#: ../Doc/library/stdtypes.rst:4404 msgid "" "Note, the non-operator versions of the :meth:`update`, :meth:" "`intersection_update`, :meth:`difference_update`, and :meth:" @@ -6285,7 +6369,7 @@ msgstr "" "`intersection_update`, :meth:`difference_update`, y :meth:" "`symmetric_difference_update` aceptan cualquier iterable como parámetro." -#: ../Doc/library/stdtypes.rst:4346 +#: ../Doc/library/stdtypes.rst:4409 msgid "" "Note, the *elem* argument to the :meth:`__contains__`, :meth:`remove`, and :" "meth:`discard` methods may be a set. To support searching for an equivalent " @@ -6295,11 +6379,11 @@ msgstr "" "`remove` y :meth:`discard` puede ser un conjunto. Para soportar la búsqueda " "por un *frozenset* equivalente se crea uno temporal a partir de *elem*." -#: ../Doc/library/stdtypes.rst:4354 +#: ../Doc/library/stdtypes.rst:4417 msgid "Mapping Types --- :class:`dict`" msgstr "Tipos mapa --- :class:`dict`" -#: ../Doc/library/stdtypes.rst:4364 +#: ../Doc/library/stdtypes.rst:4427 msgid "" "A :term:`mapping` object maps :term:`hashable` values to arbitrary objects. " "Mappings are mutable objects. There is currently only one standard mapping " @@ -6314,16 +6398,14 @@ msgstr "" "`list`, :class:`set`, y :class:`tuple`, así como el módulo :mod:" "`collections`)." -#: ../Doc/library/stdtypes.rst:4370 +#: ../Doc/library/stdtypes.rst:4433 +#, fuzzy msgid "" "A dictionary's keys are *almost* arbitrary values. Values that are not :" "term:`hashable`, that is, values containing lists, dictionaries or other " "mutable types (that are compared by value rather than by object identity) " -"may not be used as keys. Numeric types used for keys obey the normal rules " -"for numeric comparison: if two numbers compare equal (such as ``1`` and " -"``1.0``) then they can be used interchangeably to index the same dictionary " -"entry. (Note however, that since computers store floating-point numbers as " -"approximations it is usually unwise to use them as dictionary keys.)" +"may not be used as keys. Values that compare equal (such as ``1``, ``1.0``, " +"and ``True``) can be used interchangeably to index the same dictionary entry." msgstr "" "Las claves de un diccionario pueden ser *casi* de cualquier tipo. Los " "valores que no son :term:`hashable`, como por ejemplo valores que contengan " @@ -6336,7 +6418,7 @@ msgstr "" "flotante como aproximaciones, por lo que normalmente no es recomendable " "usarlos como claves)." -#: ../Doc/library/stdtypes.rst:4383 +#: ../Doc/library/stdtypes.rst:4444 msgid "" "Return a new dictionary initialized from an optional positional argument and " "a possibly empty set of keyword arguments." @@ -6344,11 +6426,11 @@ msgstr "" "Retorna un diccionario creado a partir de un parámetro opcional por " "posición, y por una serie de parámetros por nombre, también opcionales." -#: ../Doc/library/stdtypes.rst:4386 +#: ../Doc/library/stdtypes.rst:4447 msgid "Dictionaries can be created by several means:" msgstr "Los diccionarios se pueden construir de diferentes formas:" -#: ../Doc/library/stdtypes.rst:4388 +#: ../Doc/library/stdtypes.rst:4449 msgid "" "Use a comma-separated list of ``key: value`` pairs within braces: ``{'jack': " "4098, 'sjoerd': 4127}`` or ``{4098: 'jack', 4127: 'sjoerd'}``" @@ -6356,13 +6438,13 @@ msgstr "" "Usando una lista separada por comas de pares ``key: value`` entre llaves: " "``{'jack': 4098, 'sjoerd': 4127}`` o ``{4098: 'jack', 4127: 'sjoerd'}``" -#: ../Doc/library/stdtypes.rst:4390 +#: ../Doc/library/stdtypes.rst:4451 msgid "Use a dict comprehension: ``{}``, ``{x: x ** 2 for x in range(10)}``" msgstr "" "Usando una comprensión de diccionario: ``{}``, ``{x: x ** 2 for x in " "range(10)}``" -#: ../Doc/library/stdtypes.rst:4391 +#: ../Doc/library/stdtypes.rst:4452 msgid "" "Use the type constructor: ``dict()``, ``dict([('foo', 100), ('bar', " "200)])``, ``dict(foo=100, bar=200)``" @@ -6370,7 +6452,7 @@ msgstr "" "Usando un constructor de tipo: ``dict()``, ``dict([('foo', 100), ('bar', " "200)])``, ``dict(foo=100, bar=200)``" -#: ../Doc/library/stdtypes.rst:4394 +#: ../Doc/library/stdtypes.rst:4455 msgid "" "If no positional argument is given, an empty dictionary is created. If a " "positional argument is given and it is a mapping object, a dictionary is " @@ -6390,7 +6472,7 @@ msgstr "" "a almacenar en el nuevo diccionario. Si una clave aparece más de una vez, el " "último valor será el que se almacene en el diccionario resultante." -#: ../Doc/library/stdtypes.rst:4404 +#: ../Doc/library/stdtypes.rst:4465 msgid "" "If keyword arguments are given, the keyword arguments and their values are " "added to the dictionary created from the positional argument. If a key " @@ -6402,7 +6484,7 @@ msgstr "" "posición. Si un valor de clave ya estaba presente, el valor pasado con el " "parámetro por nombre reemplazará el valor del parámetro por posición." -#: ../Doc/library/stdtypes.rst:4409 +#: ../Doc/library/stdtypes.rst:4470 msgid "" "To illustrate, the following examples all return a dictionary equal to " "``{\"one\": 1, \"two\": 2, \"three\": 3}``::" @@ -6410,7 +6492,7 @@ msgstr "" "A modo de ejemplo, los siguientes ejemplos retornan todos el mismo " "diccionario ``{\"one\": 1, \"two\": 2, \"three\": 3}``::" -#: ../Doc/library/stdtypes.rst:4421 +#: ../Doc/library/stdtypes.rst:4482 msgid "" "Providing keyword arguments as in the first example only works for keys that " "are valid Python identifiers. Otherwise, any valid keys can be used." @@ -6420,7 +6502,7 @@ msgstr "" "conteniendo identificadores de Python válidos. En los otros casos, se puede " "usar cualquier valor como clave." -#: ../Doc/library/stdtypes.rst:4425 +#: ../Doc/library/stdtypes.rst:4486 msgid "" "These are the operations that dictionaries support (and therefore, custom " "mapping types should support too):" @@ -6428,15 +6510,15 @@ msgstr "" "Estas son las operaciones soportados por los diccionarios (y que, por tanto, " "deberían ser soportados por los tipos de mapa personalizados):" -#: ../Doc/library/stdtypes.rst:4430 +#: ../Doc/library/stdtypes.rst:4491 msgid "Return a list of all the keys used in the dictionary *d*." msgstr "Retorna una lista de todas las claves usadas en el diccionario *d*." -#: ../Doc/library/stdtypes.rst:4434 +#: ../Doc/library/stdtypes.rst:4495 msgid "Return the number of items in the dictionary *d*." msgstr "Retorna el número de elementos almacenados en el diccionario *d*." -#: ../Doc/library/stdtypes.rst:4438 +#: ../Doc/library/stdtypes.rst:4499 msgid "" "Return the item of *d* with key *key*. Raises a :exc:`KeyError` if *key* is " "not in the map." @@ -6445,7 +6527,7 @@ msgstr "" "excepción de tipo :exc:`KeyError` si la clave *key* no se encuentra en el " "diccionario *d*." -#: ../Doc/library/stdtypes.rst:4443 +#: ../Doc/library/stdtypes.rst:4504 msgid "" "If a subclass of dict defines a method :meth:`__missing__` and *key* is not " "present, the ``d[key]`` operation calls that method with the key *key* as " @@ -6464,7 +6546,7 @@ msgstr "" "exc:`KeyError`. Si se define :meth:`__missing__`, debe ser de forma " "obligatoria un método, no puede ser una variable de instancia::" -#: ../Doc/library/stdtypes.rst:4461 +#: ../Doc/library/stdtypes.rst:4523 msgid "" "The example above shows part of the implementation of :class:`collections." "Counter`. A different ``__missing__`` method is used by :class:`collections." @@ -6474,11 +6556,11 @@ msgstr "" "`collections.Counter`. Otro ejemplo de uso del método ``__missing__`` se " "puede encontrar en la clase :class:`collections.defaultdict`." -#: ../Doc/library/stdtypes.rst:4467 +#: ../Doc/library/stdtypes.rst:4529 msgid "Set ``d[key]`` to *value*." msgstr "Asigna el valor *value* a ``d[key]``." -#: ../Doc/library/stdtypes.rst:4471 +#: ../Doc/library/stdtypes.rst:4533 msgid "" "Remove ``d[key]`` from *d*. Raises a :exc:`KeyError` if *key* is not in the " "map." @@ -6486,17 +6568,17 @@ msgstr "" "Elimina ``d[key]`` de *d*. Lanza una excepción :exc:`KeyError` si *key* no " "está en el mapa." -#: ../Doc/library/stdtypes.rst:4476 +#: ../Doc/library/stdtypes.rst:4538 msgid "Return ``True`` if *d* has a key *key*, else ``False``." msgstr "" "Retorna ``True`` si *d* tiene una entrada en la clave *key*, ``False`` en " "caso contrario." -#: ../Doc/library/stdtypes.rst:4480 +#: ../Doc/library/stdtypes.rst:4542 msgid "Equivalent to ``not key in d``." msgstr "Equivale a ``not key in d``." -#: ../Doc/library/stdtypes.rst:4484 +#: ../Doc/library/stdtypes.rst:4546 msgid "" "Return an iterator over the keys of the dictionary. This is a shortcut for " "``iter(d.keys())``." @@ -6504,22 +6586,22 @@ msgstr "" "Retorna un iterador que recorre todas las claves de un diccionario. Es una " "forma abreviada de ``iter(d.keys())``." -#: ../Doc/library/stdtypes.rst:4489 +#: ../Doc/library/stdtypes.rst:4551 msgid "Remove all items from the dictionary." msgstr "Elimina todos los elementos del diccionario." -#: ../Doc/library/stdtypes.rst:4493 +#: ../Doc/library/stdtypes.rst:4555 msgid "Return a shallow copy of the dictionary." msgstr "Retorna una copia superficial del diccionario." -#: ../Doc/library/stdtypes.rst:4497 +#: ../Doc/library/stdtypes.rst:4559 msgid "" "Create a new dictionary with keys from *iterable* and values set to *value*." msgstr "" "Crea un nuevo diccionario con las claves obtenidos a partir del *iterable* y " "con valor *value*." -#: ../Doc/library/stdtypes.rst:4499 +#: ../Doc/library/stdtypes.rst:4561 msgid "" ":meth:`fromkeys` is a class method that returns a new dictionary. *value* " "defaults to ``None``. All of the values refer to just a single instance, so " @@ -6534,7 +6616,7 @@ msgstr "" "valores diferentes, se puede usar mejor un :ref:`diccionario por comprensión " "`." -#: ../Doc/library/stdtypes.rst:4507 +#: ../Doc/library/stdtypes.rst:4569 msgid "" "Return the value for *key* if *key* is in the dictionary, else *default*. If " "*default* is not given, it defaults to ``None``, so that this method never " @@ -6545,7 +6627,7 @@ msgstr "" "defecto es ``None``, por lo que esta función nunca lanza la excepción :exc:" "`KeyError`." -#: ../Doc/library/stdtypes.rst:4513 +#: ../Doc/library/stdtypes.rst:4575 msgid "" "Return a new view of the dictionary's items (``(key, value)`` pairs). See " "the :ref:`documentation of view objects `." @@ -6553,7 +6635,7 @@ msgstr "" "Retorna una nueva vista de los elementos del diccionario (pares ``(key, " "value)``). Véase la :ref:`documentación de los objetos vistas `." -#: ../Doc/library/stdtypes.rst:4518 +#: ../Doc/library/stdtypes.rst:4580 msgid "" "Return a new view of the dictionary's keys. See the :ref:`documentation of " "view objects `." @@ -6561,7 +6643,7 @@ msgstr "" "Retorna una nueva vista de las claves del diccionario. Véase la :ref:" "`documentación de las vistas `." -#: ../Doc/library/stdtypes.rst:4523 +#: ../Doc/library/stdtypes.rst:4585 msgid "" "If *key* is in the dictionary, remove it and return its value, else return " "*default*. If *default* is not given and *key* is not in the dictionary, a :" @@ -6572,7 +6654,7 @@ msgstr "" "*default* y la *key* no se encuentra en el diccionario, se lanza la " "excepción :exc:`KeyError`." -#: ../Doc/library/stdtypes.rst:4529 +#: ../Doc/library/stdtypes.rst:4591 msgid "" "Remove and return a ``(key, value)`` pair from the dictionary. Pairs are " "returned in :abbr:`LIFO (last-in, first-out)` order." @@ -6581,7 +6663,7 @@ msgstr "" "se retornan en el orden :abbr:`LIFO (*last-in, first-out*: Último en entrar, " "primero en salir)`." -#: ../Doc/library/stdtypes.rst:4532 +#: ../Doc/library/stdtypes.rst:4594 msgid "" ":meth:`popitem` is useful to destructively iterate over a dictionary, as " "often used in set algorithms. If the dictionary is empty, calling :meth:" @@ -6592,7 +6674,7 @@ msgstr "" "diccionario está vacío, llamar a :meth:`popitem` lanza la excepción :exc:" "`KeyError`." -#: ../Doc/library/stdtypes.rst:4536 +#: ../Doc/library/stdtypes.rst:4598 msgid "" "LIFO order is now guaranteed. In prior versions, :meth:`popitem` would " "return an arbitrary key/value pair." @@ -6600,7 +6682,7 @@ msgstr "" "El orden *LIFO* ahora está garantizado. En versiones anteriores, el método :" "meth:`popitem` retorna una pareja clave/valor arbitraria." -#: ../Doc/library/stdtypes.rst:4542 +#: ../Doc/library/stdtypes.rst:4604 msgid "" "Return a reverse iterator over the keys of the dictionary. This is a " "shortcut for ``reversed(d.keys())``." @@ -6608,7 +6690,7 @@ msgstr "" "Retorna un iterador que recorre las claves en orden inverso. Es una forma " "abreviada de ``reversed(d.keys())``." -#: ../Doc/library/stdtypes.rst:4549 +#: ../Doc/library/stdtypes.rst:4611 msgid "" "If *key* is in the dictionary, return its value. If not, insert *key* with " "a value of *default* and return *default*. *default* defaults to ``None``." @@ -6617,7 +6699,7 @@ msgstr "" "no, inserta con la clave *key* el valor definido en *default* y retorna " "*default*. El valor por defecto de *default* es ``None``." -#: ../Doc/library/stdtypes.rst:4555 +#: ../Doc/library/stdtypes.rst:4617 msgid "" "Update the dictionary with the key/value pairs from *other*, overwriting " "existing keys. Return ``None``." @@ -6625,7 +6707,7 @@ msgstr "" "Actualiza el diccionario con las parejas clave/valor obtenidas de *other*, " "escribiendo encima de las claves existentes. Retorna ``None``." -#: ../Doc/library/stdtypes.rst:4558 +#: ../Doc/library/stdtypes.rst:4620 msgid "" ":meth:`update` accepts either another dictionary object or an iterable of " "key/value pairs (as tuples or other iterables of length two). If keyword " @@ -6637,7 +6719,7 @@ msgstr "" "de longitud 2). Si se especifican parámetros por nombre, el diccionario se " "actualiza con esas combinaciones de clave/valor: ``d.update(red=1, blue=2)``." -#: ../Doc/library/stdtypes.rst:4565 +#: ../Doc/library/stdtypes.rst:4627 msgid "" "Return a new view of the dictionary's values. See the :ref:`documentation " "of view objects `." @@ -6645,7 +6727,7 @@ msgstr "" "Retorna una nueva vista de los valores del diccionario. Véase la :ref:" "`documentación sobre objetos vistas `." -#: ../Doc/library/stdtypes.rst:4568 +#: ../Doc/library/stdtypes.rst:4630 msgid "" "An equality comparison between one ``dict.values()`` view and another will " "always return ``False``. This also applies when comparing ``dict.values()`` " @@ -6655,7 +6737,7 @@ msgstr "" "retornará ``False``. Esto también pasa cuando se compara ``dict.values()`` " "consigo mismo::" -#: ../Doc/library/stdtypes.rst:4578 +#: ../Doc/library/stdtypes.rst:4640 msgid "" "Create a new dictionary with the merged keys and values of *d* and *other*, " "which must both be dictionaries. The values of *other* take priority when " @@ -6665,7 +6747,7 @@ msgstr "" "*other*, por lo cual ambos deben ser diccionarios. Los valores de *other* " "tienen prioridad cuando *d* y *other* tienen claves compartidas." -#: ../Doc/library/stdtypes.rst:4586 +#: ../Doc/library/stdtypes.rst:4648 msgid "" "Update the dictionary *d* with keys and values from *other*, which may be " "either a :term:`mapping` or an :term:`iterable` of key/value pairs. The " @@ -6676,7 +6758,7 @@ msgstr "" "valor. Los valores de *other* tienen prioridad cuando *d* y *other* tienen " "claves compartidas." -#: ../Doc/library/stdtypes.rst:4592 +#: ../Doc/library/stdtypes.rst:4654 msgid "" "Dictionaries compare equal if and only if they have the same ``(key, " "value)`` pairs (regardless of ordering). Order comparisons ('<', '<=', '>=', " @@ -6687,7 +6769,7 @@ msgstr "" "comparar usando los operadores '<', '<=', '>=', '>' lanzan una excepción de " "tipo :exc:`TypeError`." -#: ../Doc/library/stdtypes.rst:4596 +#: ../Doc/library/stdtypes.rst:4658 msgid "" "Dictionaries preserve insertion order. Note that updating a key does not " "affect the order. Keys added after deletion are inserted at the end. ::" @@ -6696,7 +6778,7 @@ msgstr "" "Actualizar una clave no modifica ese orden. Las claves que vuelven a ser " "insertadas después de haber sido borradas se añaden al final.::" -#: ../Doc/library/stdtypes.rst:4614 +#: ../Doc/library/stdtypes.rst:4676 msgid "" "Dictionary order is guaranteed to be insertion order. This behavior was an " "implementation detail of CPython from 3.6." @@ -6705,17 +6787,17 @@ msgstr "" "comportamiento era un detalle de implementación en CPython desde la versión " "3.6." -#: ../Doc/library/stdtypes.rst:4618 +#: ../Doc/library/stdtypes.rst:4680 msgid "Dictionaries and dictionary views are reversible. ::" msgstr "" "Tanto los diccionarios como las vistas basadas en diccionarios son " "reversibles::" -#: ../Doc/library/stdtypes.rst:4630 +#: ../Doc/library/stdtypes.rst:4692 msgid "Dictionaries are now reversible." msgstr "Los diccionarios son ahora reversibles." -#: ../Doc/library/stdtypes.rst:4635 +#: ../Doc/library/stdtypes.rst:4697 msgid "" ":class:`types.MappingProxyType` can be used to create a read-only view of a :" "class:`dict`." @@ -6723,11 +6805,11 @@ msgstr "" "Se puede usar un objeto de tipo :class:`types.MappingProxyType` para crear " "una vista de solo lectura de un objeto :class:`dict`." -#: ../Doc/library/stdtypes.rst:4642 +#: ../Doc/library/stdtypes.rst:4704 msgid "Dictionary view objects" msgstr "Objetos tipos vista de diccionario" -#: ../Doc/library/stdtypes.rst:4644 +#: ../Doc/library/stdtypes.rst:4706 msgid "" "The objects returned by :meth:`dict.keys`, :meth:`dict.values` and :meth:" "`dict.items` are *view objects*. They provide a dynamic view on the " @@ -6739,7 +6821,7 @@ msgstr "" "proporcionan una vista dinámica del contenido del diccionario, lo que " "significa que si el diccionario cambia, las vistas reflejan estos cambios." -#: ../Doc/library/stdtypes.rst:4649 +#: ../Doc/library/stdtypes.rst:4711 msgid "" "Dictionary views can be iterated over to yield their respective data, and " "support membership tests:" @@ -6747,11 +6829,11 @@ msgstr "" "Las vistas de un diccionario pueden ser iteradas para retornar sus datos " "respectivos, y soportan operaciones de comprobación de pertenencia:" -#: ../Doc/library/stdtypes.rst:4654 +#: ../Doc/library/stdtypes.rst:4716 msgid "Return the number of entries in the dictionary." msgstr "Retorna el número de entradas en un diccionario." -#: ../Doc/library/stdtypes.rst:4658 +#: ../Doc/library/stdtypes.rst:4720 msgid "" "Return an iterator over the keys, values or items (represented as tuples of " "``(key, value)``) in the dictionary." @@ -6759,7 +6841,7 @@ msgstr "" "Retorna un iterador sobre las claves, valores o elementos (representados en " "forma de tuplas ``(key, value)``) de un diccionario." -#: ../Doc/library/stdtypes.rst:4661 +#: ../Doc/library/stdtypes.rst:4723 msgid "" "Keys and values are iterated over in insertion order. This allows the " "creation of ``(value, key)`` pairs using :func:`zip`: ``pairs = zip(d." @@ -6771,7 +6853,7 @@ msgstr "" "= zip(d.values(), d.keys())``. Otra forma de crear la misma lista es ``pairs " "= [(v, k) for (k, v) in d.items()]``." -#: ../Doc/library/stdtypes.rst:4666 +#: ../Doc/library/stdtypes.rst:4728 msgid "" "Iterating views while adding or deleting entries in the dictionary may raise " "a :exc:`RuntimeError` or fail to iterate over all entries." @@ -6780,11 +6862,11 @@ msgstr "" "lanzar una excepción de tipo :exc:`RuntimeError`, o puede provocar que no se " "iteren sobre todas las entradas." -#: ../Doc/library/stdtypes.rst:4669 +#: ../Doc/library/stdtypes.rst:4731 msgid "Dictionary order is guaranteed to be insertion order." msgstr "Se garantiza que el orden de los diccionarios es el de inserción." -#: ../Doc/library/stdtypes.rst:4674 +#: ../Doc/library/stdtypes.rst:4736 msgid "" "Return ``True`` if *x* is in the underlying dictionary's keys, values or " "items (in the latter case, *x* should be a ``(key, value)`` tuple)." @@ -6793,7 +6875,7 @@ msgstr "" "elementos del diccionario (en el último caso, *x* debe ser una tupla ``(key, " "value)``)." -#: ../Doc/library/stdtypes.rst:4679 +#: ../Doc/library/stdtypes.rst:4741 msgid "" "Return a reverse iterator over the keys, values or items of the dictionary. " "The view will be iterated in reverse order of the insertion." @@ -6801,11 +6883,11 @@ msgstr "" "Retorna un iterador inverso sobre las claves, los valores o los elementos " "del diccionario. El orden de la vista será el inverso del orden de inserción." -#: ../Doc/library/stdtypes.rst:4682 +#: ../Doc/library/stdtypes.rst:4744 msgid "Dictionary views are now reversible." msgstr "Las vistas de un diccionario no son reversibles." -#: ../Doc/library/stdtypes.rst:4687 +#: ../Doc/library/stdtypes.rst:4749 msgid "" "Return a :class:`types.MappingProxyType` that wraps the original dictionary " "to which the view refers." @@ -6813,14 +6895,18 @@ msgstr "" "Retorna un :class:`types.MappingProxyType` que envuelve el diccionario " "original al que se refiere la vista." -#: ../Doc/library/stdtypes.rst:4692 +#: ../Doc/library/stdtypes.rst:4754 +#, fuzzy msgid "" -"Keys views are set-like since their entries are unique and hashable. If all " -"values are hashable, so that ``(key, value)`` pairs are unique and hashable, " -"then the items view is also set-like. (Values views are not treated as set-" -"like since the entries are generally not unique.) For set-like views, all " -"of the operations defined for the abstract base class :class:`collections." -"abc.Set` are available (for example, ``==``, ``<``, or ``^``)." +"Keys views are set-like since their entries are unique and :term:" +"`hashable`. If all values are hashable, so that ``(key, value)`` pairs are " +"unique and hashable, then the items view is also set-like. (Values views " +"are not treated as set-like since the entries are generally not unique.) " +"For set-like views, all of the operations defined for the abstract base " +"class :class:`collections.abc.Set` are available (for example, ``==``, " +"``<``, or ``^``). While using set operators, set-like views accept any " +"iterable as the other operand, unlike sets which only accept sets as the " +"input." msgstr "" "Las vistas de claves son similares a conjuntos, dado que todas las claves " "deben ser únicas y *hashables*. Si todos los valores son también " @@ -6832,15 +6918,15 @@ msgstr "" "abstracta :class:`collections.abc.Set` (como por ejemplo ``==``, ``<`` o " "``^``)." -#: ../Doc/library/stdtypes.rst:4699 +#: ../Doc/library/stdtypes.rst:4763 msgid "An example of dictionary view usage::" msgstr "Un ejemplo de uso de una vista de diccionario::" -#: ../Doc/library/stdtypes.rst:4740 +#: ../Doc/library/stdtypes.rst:4807 msgid "Context Manager Types" msgstr "Tipos gestores de contexto" -#: ../Doc/library/stdtypes.rst:4747 +#: ../Doc/library/stdtypes.rst:4814 msgid "" "Python's :keyword:`with` statement supports the concept of a runtime context " "defined by a context manager. This is implemented using a pair of methods " @@ -6853,7 +6939,7 @@ msgstr "" "contextos definiendo dos métodos, uno a ejecutar antes de entrar del bloque " "de código y otro a ejecutar justo después de salir del mismo:" -#: ../Doc/library/stdtypes.rst:4755 +#: ../Doc/library/stdtypes.rst:4822 msgid "" "Enter the runtime context and return either this object or another object " "related to the runtime context. The value returned by this method is bound " @@ -6865,7 +6951,7 @@ msgstr "" "vincula al identificador que viene tras la palabra clave :keyword:`!as` " "usada en la sentencia :keyword:`with` que define el contexto." -#: ../Doc/library/stdtypes.rst:4760 +#: ../Doc/library/stdtypes.rst:4827 msgid "" "An example of a context manager that returns itself is a :term:`file " "object`. File objects return themselves from __enter__() to allow :func:" @@ -6876,7 +6962,7 @@ msgstr "" "mismo en la llamada a ``__enter__()``, lo que permite que :func:`open` sea " "usado como gestores de contexto en una sentencia :keyword:`with`." -#: ../Doc/library/stdtypes.rst:4764 +#: ../Doc/library/stdtypes.rst:4831 msgid "" "An example of a context manager that returns a related object is the one " "returned by :func:`decimal.localcontext`. These managers set the active " @@ -6892,7 +6978,7 @@ msgstr "" "decimal dentro del cuerpo del :keyword:`with` sin afectar al código fuera " "de :keyword:`!with`." -#: ../Doc/library/stdtypes.rst:4774 +#: ../Doc/library/stdtypes.rst:4841 msgid "" "Exit the runtime context and return a Boolean flag indicating if any " "exception that occurred should be suppressed. If an exception occurred while " @@ -6908,7 +6994,7 @@ msgstr "" "a la traza de ejecución. Si no se produce ninguna excepción, los tres " "parámetros valen ``None``." -#: ../Doc/library/stdtypes.rst:4779 +#: ../Doc/library/stdtypes.rst:4846 msgid "" "Returning a true value from this method will cause the :keyword:`with` " "statement to suppress the exception and continue execution with the " @@ -6926,7 +7012,7 @@ msgstr "" "dentro de este método reemplaza a la excepción que se hubiera producido en " "el cuerpo del :keyword:`!with`." -#: ../Doc/library/stdtypes.rst:4786 +#: ../Doc/library/stdtypes.rst:4853 msgid "" "The exception passed in should never be reraised explicitly - instead, this " "method should return a false value to indicate that the method completed " @@ -6940,7 +7026,7 @@ msgstr "" "excepción. Esto permite a los gestores de contexto detectar fácilmente si el " "método :meth:`__exit__` ha podido terminar o no." -#: ../Doc/library/stdtypes.rst:4792 +#: ../Doc/library/stdtypes.rst:4859 msgid "" "Python defines several context managers to support easy thread " "synchronisation, prompt closure of files or other objects, and simpler " @@ -6955,7 +7041,7 @@ msgstr "" "implementación del protocolo de administración de contexto. Véase el módulo :" "mod:`contextlib` para algunos ejemplos." -#: ../Doc/library/stdtypes.rst:4798 +#: ../Doc/library/stdtypes.rst:4865 msgid "" "Python's :term:`generator`\\s and the :class:`contextlib.contextmanager` " "decorator provide a convenient way to implement these protocols. If a " @@ -6972,7 +7058,7 @@ msgstr "" "`~contextmanager.__exit__`, en vez del iterador que se produciría si no se " "decora la función generadora." -#: ../Doc/library/stdtypes.rst:4805 +#: ../Doc/library/stdtypes.rst:4872 msgid "" "Note that there is no specific slot for any of these methods in the type " "structure for Python objects in the Python/C API. Extension types wanting to " @@ -6987,7 +7073,7 @@ msgstr "" "tiempo de ejecución, lo complejidad de una búsqueda simple en un diccionario " "es mínima." -#: ../Doc/library/stdtypes.rst:4813 +#: ../Doc/library/stdtypes.rst:4880 msgid "" "Type Annotation Types --- :ref:`Generic Alias `, :ref:" "`Union `" @@ -6996,7 +7082,7 @@ msgstr "" "ref:`Union `" # Hace referencia al tipo o al objeto 'type'? -#: ../Doc/library/stdtypes.rst:4818 +#: ../Doc/library/stdtypes.rst:4885 msgid "" "The core built-in types for :term:`type annotations ` are :ref:" "`Generic Alias ` and :ref:`Union `." @@ -7005,11 +7091,11 @@ msgstr "" "` son :ref:`alias genérico ` y :ref:`Union " "`." -#: ../Doc/library/stdtypes.rst:4825 +#: ../Doc/library/stdtypes.rst:4892 msgid "Generic Alias Type" msgstr "Tipo Alias Genérico" -#: ../Doc/library/stdtypes.rst:4831 +#: ../Doc/library/stdtypes.rst:4898 msgid "" "``GenericAlias`` objects are generally created by :ref:`subscripting " "` a class. They are most often used with :ref:`container " @@ -7026,7 +7112,7 @@ msgstr "" "``GenericAlias`` están pensados principalmente para usar con :term:" "`anotaciones de tipo `." -#: ../Doc/library/stdtypes.rst:4841 +#: ../Doc/library/stdtypes.rst:4908 msgid "" "It is generally only possible to subscript a class if the class implements " "the special method :meth:`~object.__class_getitem__`." @@ -7034,7 +7120,7 @@ msgstr "" "Generalmente solo es posible suscribir a una clase si ésta implementa el " "método especial :meth:`~object.__class_getitem__`." -#: ../Doc/library/stdtypes.rst:4844 +#: ../Doc/library/stdtypes.rst:4911 msgid "" "A ``GenericAlias`` object acts as a proxy for a :term:`generic type`, " "implementing *parameterized generics*." @@ -7042,7 +7128,7 @@ msgstr "" "El objeto ``GenericAlias`` actúa como *proxy* para :term:`tipo genérico " "`, implementando *parameterized generics*." -#: ../Doc/library/stdtypes.rst:4847 +#: ../Doc/library/stdtypes.rst:4914 msgid "" "For a container class, the argument(s) supplied to a :ref:`subscription " "` of the class may indicate the type(s) of the elements an " @@ -7056,7 +7142,7 @@ msgstr "" "usar ``set[bytes]`` en anotaciones de tipo para significar un :class:`set` " "en el que todos los elementos son del tipo :class:`bytes`." -#: ../Doc/library/stdtypes.rst:4853 +#: ../Doc/library/stdtypes.rst:4920 msgid "" "For a class which defines :meth:`~object.__class_getitem__` but is not a " "container, the argument(s) supplied to a subscription of the class will " @@ -7071,7 +7157,7 @@ msgstr "" "`expresiones regulares ` se pueden usar tanto para el tipo de datos :" "class:`str` y el tipo de datos :class:`bytes`:" -#: ../Doc/library/stdtypes.rst:4859 +#: ../Doc/library/stdtypes.rst:4926 msgid "" "If ``x = re.search('foo', 'foo')``, ``x`` will be a :ref:`re.Match ` object where the return values of ``x.group(0)`` and ``x[0]`` will " @@ -7083,7 +7169,7 @@ msgstr "" "serán de tipo :class:`str`. Podemos representar este tipo de objeto en " "anotaciones de type con el ``GenericAlias`` de ``re.Match[str]``." -#: ../Doc/library/stdtypes.rst:4865 +#: ../Doc/library/stdtypes.rst:4932 msgid "" "If ``y = re.search(b'bar', b'bar')``, (note the ``b`` for :class:`bytes`), " "``y`` will also be an instance of ``re.Match``, but the return values of ``y." @@ -7097,7 +7183,7 @@ msgstr "" "anotaciones de type, representaríamos esta variedad de objetos :ref:`re." "Match ` con ``re.Match[bytes]``." -#: ../Doc/library/stdtypes.rst:4871 +#: ../Doc/library/stdtypes.rst:4938 msgid "" "``GenericAlias`` objects are instances of the class :class:`types." "GenericAlias`, which can also be used to create ``GenericAlias`` objects " @@ -7107,7 +7193,7 @@ msgstr "" "GenericAlias`, que también se puede usar para crear directamente objetos " "``GenericAlias``." -#: ../Doc/library/stdtypes.rst:4877 +#: ../Doc/library/stdtypes.rst:4944 msgid "" "Creates a ``GenericAlias`` representing a type ``T`` parameterized by types " "*X*, *Y*, and more depending on the ``T`` used. For example, a function " @@ -7117,7 +7203,7 @@ msgstr "" "tipos *X*, *Y* y más dependiendo de la ``T`` usada. Por ejemplo, una función " "espera un :class:`list` que contenga elementos :class:`float`::" -#: ../Doc/library/stdtypes.rst:4885 +#: ../Doc/library/stdtypes.rst:4952 msgid "" "Another example for :term:`mapping` objects, using a :class:`dict`, which is " "a generic type expecting two type parameters representing the key type and " @@ -7129,7 +7215,7 @@ msgstr "" "el tipo de la clave y el tipo del valor. En este ejemplo, la función espera " "un ``dict`` con claves de tipo :class:`str` y valores de tipo :class:`int`::" -#: ../Doc/library/stdtypes.rst:4893 +#: ../Doc/library/stdtypes.rst:4960 msgid "" "The builtin functions :func:`isinstance` and :func:`issubclass` do not " "accept ``GenericAlias`` types for their second argument::" @@ -7137,7 +7223,7 @@ msgstr "" "Las funciones integradas :func:`isinstance` y :func:`issubclass` no aceptan " "tipos ``GenericAlias`` como segundo argumento::" -#: ../Doc/library/stdtypes.rst:4901 +#: ../Doc/library/stdtypes.rst:4968 msgid "" "The Python runtime does not enforce :term:`type annotations `. " "This extends to generic types and their type parameters. When creating a " @@ -7151,7 +7237,7 @@ msgstr "" "del contenedor no se verifican con su tipo. Por ejemplo, el siguiente código " "no es recomendado en lo absoluto, pero correrá sin errores::" -#: ../Doc/library/stdtypes.rst:4911 +#: ../Doc/library/stdtypes.rst:4978 msgid "" "Furthermore, parameterized generics erase type parameters during object " "creation::" @@ -7159,7 +7245,7 @@ msgstr "" "Además, los genéricos parametrizados borran parámetros de type durante la " "creación de objetos::" -#: ../Doc/library/stdtypes.rst:4922 +#: ../Doc/library/stdtypes.rst:4989 msgid "" "Calling :func:`repr` or :func:`str` on a generic shows the parameterized " "type::" @@ -7167,7 +7253,7 @@ msgstr "" "Llamando a :func:`repr` o :func:`str` en un genérico se muestra el tipo " "parametrizado::" -#: ../Doc/library/stdtypes.rst:4930 +#: ../Doc/library/stdtypes.rst:4997 msgid "" "The :meth:`~object.__getitem__` method of generic containers will raise an " "exception to disallow mistakes like ``dict[str][str]``::" @@ -7176,7 +7262,7 @@ msgstr "" "excepción para rechazar los errores como ``dict[str][str]``::" # Tipo u objeto 'type'? -#: ../Doc/library/stdtypes.rst:4938 +#: ../Doc/library/stdtypes.rst:5005 msgid "" "However, such expressions are valid when :ref:`type variables ` " "are used. The index must have as many elements as there are type variable " @@ -7187,11 +7273,11 @@ msgstr "" "de variable de type en los :attr:`~genericalias.__args__` del objeto " "``GenericAlias``::" -#: ../Doc/library/stdtypes.rst:4949 +#: ../Doc/library/stdtypes.rst:5016 msgid "Standard Generic Classes" msgstr "Clases genéricas estándar" -#: ../Doc/library/stdtypes.rst:4951 +#: ../Doc/library/stdtypes.rst:5018 msgid "" "The following standard library classes support parameterized generics. This " "list is non-exhaustive." @@ -7199,237 +7285,237 @@ msgstr "" "Las siguientes clases de la biblioteca estándar soportan genéricos " "parametrizados. Esta lista no es exhaustiva." -#: ../Doc/library/stdtypes.rst:4954 +#: ../Doc/library/stdtypes.rst:5021 msgid ":class:`tuple`" msgstr ":class:`tuple`" -#: ../Doc/library/stdtypes.rst:4955 +#: ../Doc/library/stdtypes.rst:5022 msgid ":class:`list`" msgstr ":class:`list`" -#: ../Doc/library/stdtypes.rst:4956 +#: ../Doc/library/stdtypes.rst:5023 msgid ":class:`dict`" msgstr ":class:`dict`" -#: ../Doc/library/stdtypes.rst:4957 +#: ../Doc/library/stdtypes.rst:5024 msgid ":class:`set`" msgstr ":class:`set`" -#: ../Doc/library/stdtypes.rst:4958 +#: ../Doc/library/stdtypes.rst:5025 msgid ":class:`frozenset`" msgstr ":class:`frozenset`" -#: ../Doc/library/stdtypes.rst:4959 +#: ../Doc/library/stdtypes.rst:5026 msgid ":class:`type`" msgstr ":class:`type`" -#: ../Doc/library/stdtypes.rst:4960 +#: ../Doc/library/stdtypes.rst:5027 msgid ":class:`collections.deque`" msgstr ":class:`collections.deque`" -#: ../Doc/library/stdtypes.rst:4961 +#: ../Doc/library/stdtypes.rst:5028 msgid ":class:`collections.defaultdict`" msgstr ":class:`collections.defaultdict`" -#: ../Doc/library/stdtypes.rst:4962 +#: ../Doc/library/stdtypes.rst:5029 msgid ":class:`collections.OrderedDict`" msgstr ":class:`collections.OrderedDict`" -#: ../Doc/library/stdtypes.rst:4963 +#: ../Doc/library/stdtypes.rst:5030 msgid ":class:`collections.Counter`" msgstr ":class:`collections.Counter`" -#: ../Doc/library/stdtypes.rst:4964 +#: ../Doc/library/stdtypes.rst:5031 msgid ":class:`collections.ChainMap`" msgstr ":class:`collections.ChainMap`" -#: ../Doc/library/stdtypes.rst:4965 +#: ../Doc/library/stdtypes.rst:5032 msgid ":class:`collections.abc.Awaitable`" msgstr ":class:`collections.abc.Awaitable`" -#: ../Doc/library/stdtypes.rst:4966 +#: ../Doc/library/stdtypes.rst:5033 msgid ":class:`collections.abc.Coroutine`" msgstr ":class:`collections.abc.Coroutine`" -#: ../Doc/library/stdtypes.rst:4967 +#: ../Doc/library/stdtypes.rst:5034 msgid ":class:`collections.abc.AsyncIterable`" msgstr ":class:`collections.abc.AsyncIterable`" -#: ../Doc/library/stdtypes.rst:4968 +#: ../Doc/library/stdtypes.rst:5035 msgid ":class:`collections.abc.AsyncIterator`" msgstr ":class:`collections.abc.AsyncIterator`" -#: ../Doc/library/stdtypes.rst:4969 +#: ../Doc/library/stdtypes.rst:5036 msgid ":class:`collections.abc.AsyncGenerator`" msgstr ":class:`collections.abc.AsyncGenerator`" -#: ../Doc/library/stdtypes.rst:4970 +#: ../Doc/library/stdtypes.rst:5037 msgid ":class:`collections.abc.Iterable`" msgstr ":class:`collections.abc.Iterable`" -#: ../Doc/library/stdtypes.rst:4971 +#: ../Doc/library/stdtypes.rst:5038 msgid ":class:`collections.abc.Iterator`" msgstr ":class:`collections.abc.Iterator`" -#: ../Doc/library/stdtypes.rst:4972 +#: ../Doc/library/stdtypes.rst:5039 msgid ":class:`collections.abc.Generator`" msgstr ":class:`collections.abc.Generator`" -#: ../Doc/library/stdtypes.rst:4973 +#: ../Doc/library/stdtypes.rst:5040 msgid ":class:`collections.abc.Reversible`" msgstr ":class:`collections.abc.Reversible`" -#: ../Doc/library/stdtypes.rst:4974 +#: ../Doc/library/stdtypes.rst:5041 msgid ":class:`collections.abc.Container`" msgstr ":class:`collections.abc.Container`" -#: ../Doc/library/stdtypes.rst:4975 +#: ../Doc/library/stdtypes.rst:5042 msgid ":class:`collections.abc.Collection`" msgstr ":class:`collections.abc.Collection`" -#: ../Doc/library/stdtypes.rst:4976 +#: ../Doc/library/stdtypes.rst:5043 msgid ":class:`collections.abc.Callable`" msgstr ":class:`collections.abc.Callable`" -#: ../Doc/library/stdtypes.rst:4977 +#: ../Doc/library/stdtypes.rst:5044 msgid ":class:`collections.abc.Set`" msgstr ":class:`collections.abc.Set`" -#: ../Doc/library/stdtypes.rst:4978 +#: ../Doc/library/stdtypes.rst:5045 msgid ":class:`collections.abc.MutableSet`" msgstr ":class:`collections.abc.MutableSet`" -#: ../Doc/library/stdtypes.rst:4979 +#: ../Doc/library/stdtypes.rst:5046 msgid ":class:`collections.abc.Mapping`" msgstr ":class:`collections.abc.Mapping`" -#: ../Doc/library/stdtypes.rst:4980 +#: ../Doc/library/stdtypes.rst:5047 msgid ":class:`collections.abc.MutableMapping`" msgstr ":class:`collections.abc.MutableMapping`" -#: ../Doc/library/stdtypes.rst:4981 +#: ../Doc/library/stdtypes.rst:5048 msgid ":class:`collections.abc.Sequence`" msgstr ":class:`collections.abc.Sequence`" -#: ../Doc/library/stdtypes.rst:4982 +#: ../Doc/library/stdtypes.rst:5049 msgid ":class:`collections.abc.MutableSequence`" msgstr ":class:`collections.abc.MutableSequence`" -#: ../Doc/library/stdtypes.rst:4983 +#: ../Doc/library/stdtypes.rst:5050 msgid ":class:`collections.abc.ByteString`" msgstr ":class:`collections.abc.ByteString`" -#: ../Doc/library/stdtypes.rst:4984 +#: ../Doc/library/stdtypes.rst:5051 msgid ":class:`collections.abc.MappingView`" msgstr ":class:`collections.abc.MappingView`" -#: ../Doc/library/stdtypes.rst:4985 +#: ../Doc/library/stdtypes.rst:5052 msgid ":class:`collections.abc.KeysView`" msgstr ":class:`collections.abc.KeysView`" -#: ../Doc/library/stdtypes.rst:4986 +#: ../Doc/library/stdtypes.rst:5053 msgid ":class:`collections.abc.ItemsView`" msgstr ":class:`collections.abc.ItemsView`" -#: ../Doc/library/stdtypes.rst:4987 +#: ../Doc/library/stdtypes.rst:5054 msgid ":class:`collections.abc.ValuesView`" msgstr ":class:`collections.abc.ValuesView`" -#: ../Doc/library/stdtypes.rst:4988 +#: ../Doc/library/stdtypes.rst:5055 msgid ":class:`contextlib.AbstractContextManager`" msgstr ":class:`contextlib.AbstractContextManager`" -#: ../Doc/library/stdtypes.rst:4989 +#: ../Doc/library/stdtypes.rst:5056 msgid ":class:`contextlib.AbstractAsyncContextManager`" msgstr ":class:`contextlib.AbstractAsyncContextManager`" -#: ../Doc/library/stdtypes.rst:4990 +#: ../Doc/library/stdtypes.rst:5057 msgid ":class:`dataclasses.Field`" msgstr ":class:`dataclasses.Field`" -#: ../Doc/library/stdtypes.rst:4991 +#: ../Doc/library/stdtypes.rst:5058 msgid ":class:`functools.cached_property`" msgstr ":class:`functools.cached_property`" -#: ../Doc/library/stdtypes.rst:4992 +#: ../Doc/library/stdtypes.rst:5059 msgid ":class:`functools.partialmethod`" msgstr ":class:`functools.partialmethod`" -#: ../Doc/library/stdtypes.rst:4993 +#: ../Doc/library/stdtypes.rst:5060 msgid ":class:`os.PathLike`" msgstr ":class:`os.PathLike`" -#: ../Doc/library/stdtypes.rst:4994 +#: ../Doc/library/stdtypes.rst:5061 msgid ":class:`queue.LifoQueue`" msgstr ":class:`queue.LifoQueue`" -#: ../Doc/library/stdtypes.rst:4995 +#: ../Doc/library/stdtypes.rst:5062 msgid ":class:`queue.Queue`" msgstr ":class:`queue.Queue`" -#: ../Doc/library/stdtypes.rst:4996 +#: ../Doc/library/stdtypes.rst:5063 msgid ":class:`queue.PriorityQueue`" msgstr ":class:`queue.PriorityQueue`" -#: ../Doc/library/stdtypes.rst:4997 +#: ../Doc/library/stdtypes.rst:5064 msgid ":class:`queue.SimpleQueue`" msgstr ":class:`queue.SimpleQueue`" -#: ../Doc/library/stdtypes.rst:4998 +#: ../Doc/library/stdtypes.rst:5065 msgid ":ref:`re.Pattern `" msgstr ":ref:`re.Pattern `" -#: ../Doc/library/stdtypes.rst:4999 +#: ../Doc/library/stdtypes.rst:5066 msgid ":ref:`re.Match `" msgstr ":ref:`re.Match `" -#: ../Doc/library/stdtypes.rst:5000 +#: ../Doc/library/stdtypes.rst:5067 msgid ":class:`shelve.BsdDbShelf`" msgstr ":class:`shelve.BsdDbShelf`" -#: ../Doc/library/stdtypes.rst:5001 +#: ../Doc/library/stdtypes.rst:5068 msgid ":class:`shelve.DbfilenameShelf`" msgstr ":class:`shelve.DbfilenameShelf`" -#: ../Doc/library/stdtypes.rst:5002 +#: ../Doc/library/stdtypes.rst:5069 msgid ":class:`shelve.Shelf`" msgstr ":class:`shelve.Shelf`" -#: ../Doc/library/stdtypes.rst:5003 +#: ../Doc/library/stdtypes.rst:5070 msgid ":class:`types.MappingProxyType`" msgstr ":class:`types.MappingProxyType`" -#: ../Doc/library/stdtypes.rst:5004 +#: ../Doc/library/stdtypes.rst:5071 msgid ":class:`weakref.WeakKeyDictionary`" msgstr ":class:`weakref.WeakKeyDictionary`" -#: ../Doc/library/stdtypes.rst:5005 +#: ../Doc/library/stdtypes.rst:5072 msgid ":class:`weakref.WeakMethod`" msgstr ":class:`weakref.WeakMethod`" -#: ../Doc/library/stdtypes.rst:5006 +#: ../Doc/library/stdtypes.rst:5073 msgid ":class:`weakref.WeakSet`" msgstr ":class:`weakref.WeakSet`" -#: ../Doc/library/stdtypes.rst:5007 +#: ../Doc/library/stdtypes.rst:5074 msgid ":class:`weakref.WeakValueDictionary`" msgstr ":class:`weakref.WeakValueDictionary`" -#: ../Doc/library/stdtypes.rst:5012 +#: ../Doc/library/stdtypes.rst:5079 msgid "Special Attributes of ``GenericAlias`` objects" msgstr "Atributos especiales de los objetos ``GenericAlias``" -#: ../Doc/library/stdtypes.rst:5014 +#: ../Doc/library/stdtypes.rst:5081 msgid "All parameterized generics implement special read-only attributes." msgstr "" "Todos los genéricos parametrizados implementan atributos especiales de solo " "lectura." -#: ../Doc/library/stdtypes.rst:5018 +#: ../Doc/library/stdtypes.rst:5085 msgid "This attribute points at the non-parameterized generic class::" msgstr "Este atributo apunta a la clase genérica no parametrizada::" -#: ../Doc/library/stdtypes.rst:5026 +#: ../Doc/library/stdtypes.rst:5093 msgid "" "This attribute is a :class:`tuple` (possibly of length 1) of generic types " "passed to the original :meth:`~object.__class_getitem__` of the generic " @@ -7439,7 +7525,7 @@ msgstr "" "tipos genéricos pasados al método original :meth:`~object.__class_getitem__` " "de la clase genérica::" -#: ../Doc/library/stdtypes.rst:5036 +#: ../Doc/library/stdtypes.rst:5103 msgid "" "This attribute is a lazily computed tuple (possibly empty) of unique type " "variables found in ``__args__``::" @@ -7447,7 +7533,7 @@ msgstr "" "Este atributo es una tupla (posiblemente vacía) computada perezosamente con " "las variables de tipo únicas encontradas en ``__args__``::" -#: ../Doc/library/stdtypes.rst:5047 +#: ../Doc/library/stdtypes.rst:5114 msgid "" "A ``GenericAlias`` object with :class:`typing.ParamSpec` parameters may not " "have correct ``__parameters__`` after substitution because :class:`typing." @@ -7458,7 +7544,7 @@ msgstr "" "class:`typing.ParamSpec` está destinado principalmente a la verificación de " "tipos estáticos." -#: ../Doc/library/stdtypes.rst:5054 +#: ../Doc/library/stdtypes.rst:5121 msgid "" "A boolean that is true if the alias has been unpacked using the ``*`` " "operator (see :data:`~typing.TypeVarTuple`)." @@ -7466,19 +7552,19 @@ msgstr "" "Un booleano que es verdadero si el alias ha sido desempaquetado usando el " "operador ``*`` (véase :data:`~typing.TypeVarTuple`)." -#: ../Doc/library/stdtypes.rst:5063 +#: ../Doc/library/stdtypes.rst:5130 msgid ":pep:`484` - Type Hints" msgstr ":pep:`484` - Type Hints" -#: ../Doc/library/stdtypes.rst:5063 +#: ../Doc/library/stdtypes.rst:5130 msgid "Introducing Python's framework for type annotations." msgstr "Presentación del marco de trabajo de Python para anotaciones de tipo." -#: ../Doc/library/stdtypes.rst:5068 +#: ../Doc/library/stdtypes.rst:5135 msgid ":pep:`585` - Type Hinting Generics In Standard Collections" msgstr ":pep:`585` - Sugerencias de tipo genéricas en colecciones estándar" -#: ../Doc/library/stdtypes.rst:5066 +#: ../Doc/library/stdtypes.rst:5133 msgid "" "Introducing the ability to natively parameterize standard-library classes, " "provided they implement the special class method :meth:`~object." @@ -7488,7 +7574,7 @@ msgstr "" "biblioteca estándar, siempre que implementen el método de clase especial :" "meth:`~object.__class_getitem__`." -#: ../Doc/library/stdtypes.rst:5071 +#: ../Doc/library/stdtypes.rst:5138 msgid "" ":ref:`Generics`, :ref:`user-defined generics ` and :" "class:`typing.Generic`" @@ -7496,7 +7582,7 @@ msgstr "" ":ref:`Generics`, :ref:`tipos genéricos definidos por el usuario ` y :class:`typing.Generic`" -#: ../Doc/library/stdtypes.rst:5071 +#: ../Doc/library/stdtypes.rst:5138 msgid "" "Documentation on how to implement generic classes that can be parameterized " "at runtime and understood by static type-checkers." @@ -7505,11 +7591,11 @@ msgstr "" "parametrizar en tiempo de ejecución y que los validadores estático de tipos " "pueden entender." -#: ../Doc/library/stdtypes.rst:5080 +#: ../Doc/library/stdtypes.rst:5147 msgid "Union Type" msgstr "Tipo de conversión" -#: ../Doc/library/stdtypes.rst:5086 +#: ../Doc/library/stdtypes.rst:5153 msgid "" "A union object holds the value of the ``|`` (bitwise or) operation on " "multiple :ref:`type objects `. These types are intended " @@ -7523,7 +7609,7 @@ msgstr "" "expresión de tipo de conversión permite una sintaxis de sugerencia de tipo " "más limpia en comparación con :data:`typing.Union`." -#: ../Doc/library/stdtypes.rst:5093 +#: ../Doc/library/stdtypes.rst:5160 msgid "" "Defines a union object which holds types *X*, *Y*, and so forth. ``X | Y`` " "means either X or Y. It is equivalent to ``typing.Union[X, Y]``. For " @@ -7535,34 +7621,43 @@ msgstr "" "siguiente función espera un argumento de tipo :class:`int` or :class:" "`float`::" -#: ../Doc/library/stdtypes.rst:5103 +#: ../Doc/library/stdtypes.rst:5170 +msgid "" +"The ``|`` operand cannot be used at runtime to define unions where one or " +"more members is a forward reference. For example, ``int | \"Foo\"``, where " +"``\"Foo\"`` is a reference to a class not yet defined, will fail at runtime. " +"For unions which include forward references, present the whole expression as " +"a string, e.g. ``\"int | Foo\"``." +msgstr "" + +#: ../Doc/library/stdtypes.rst:5178 msgid "" "Union objects can be tested for equality with other union objects. Details:" msgstr "" "Los objetos de conversión se pueden probar para determinar su igualdad con " "otros objetos de conversión. Detalles:" -#: ../Doc/library/stdtypes.rst:5105 +#: ../Doc/library/stdtypes.rst:5180 msgid "Unions of unions are flattened::" msgstr "Las conversiones de conversión se aplanan::" -#: ../Doc/library/stdtypes.rst:5109 +#: ../Doc/library/stdtypes.rst:5184 msgid "Redundant types are removed::" msgstr "Se eliminan los tipos redundantes::" -#: ../Doc/library/stdtypes.rst:5113 +#: ../Doc/library/stdtypes.rst:5188 msgid "When comparing unions, the order is ignored::" msgstr "Al comparar conversiones, se ignora el orden::" -#: ../Doc/library/stdtypes.rst:5117 +#: ../Doc/library/stdtypes.rst:5192 msgid "It is compatible with :data:`typing.Union`::" msgstr "Es compatible con :data:`typing.Union`::" -#: ../Doc/library/stdtypes.rst:5121 +#: ../Doc/library/stdtypes.rst:5196 msgid "Optional types can be spelled as a union with ``None``::" msgstr "Los tipos opcionales se pueden escribir como una unión con ``None``::" -#: ../Doc/library/stdtypes.rst:5128 +#: ../Doc/library/stdtypes.rst:5203 msgid "" "Calls to :func:`isinstance` and :func:`issubclass` are also supported with a " "union object::" @@ -7570,15 +7665,16 @@ msgstr "" "Las llamadas a :func:`isinstance` y :func:`issubclass` también son " "compatibles con un objeto de conversión::" -#: ../Doc/library/stdtypes.rst:5134 +#: ../Doc/library/stdtypes.rst:5209 +#, fuzzy msgid "" -"However, union objects containing :ref:`parameterized generics ` cannot be used::" +"However, :ref:`parameterized generics ` in union objects " +"cannot be checked::" msgstr "" "Sin embargo, los objetos de unión que contienen :ref:`genéricos " "parametrizados ` no se pueden utilizar::" -#: ../Doc/library/stdtypes.rst:5142 +#: ../Doc/library/stdtypes.rst:5219 msgid "" "The user-exposed type for the union object can be accessed from :data:`types." "UnionType` and used for :func:`isinstance` checks. An object cannot be " @@ -7588,7 +7684,7 @@ msgstr "" "accedido desde :data:`types.UnionType` y usado por chequeos :func:" "`isinstance`. Un objeto no puede ser instancia por el tipo::" -#: ../Doc/library/stdtypes.rst:5155 +#: ../Doc/library/stdtypes.rst:5232 msgid "" "The :meth:`__or__` method for type objects was added to support the syntax " "``X | Y``. If a metaclass implements :meth:`__or__`, the Union may override " @@ -7598,15 +7694,15 @@ msgstr "" "sintaxis ``X | Y``. Si una metaclase implementa :meth:`__or__`, la " "Conversión puede anularlo::" -#: ../Doc/library/stdtypes.rst:5173 +#: ../Doc/library/stdtypes.rst:5250 msgid ":pep:`604` -- PEP proposing the ``X | Y`` syntax and the Union type." msgstr ":pep:`604` — PEP propone la sintaxis ``X | Y`` y tipo Conversión." -#: ../Doc/library/stdtypes.rst:5181 +#: ../Doc/library/stdtypes.rst:5258 msgid "Other Built-in Types" msgstr "Otros tipos predefinidos" -#: ../Doc/library/stdtypes.rst:5183 +#: ../Doc/library/stdtypes.rst:5260 msgid "" "The interpreter supports several other kinds of objects. Most of these " "support only one or two operations." @@ -7614,11 +7710,11 @@ msgstr "" "El intérprete soporta otros tipos de objetos variados. La mayoría de ellos " "solo implementan una o dos operaciones." -#: ../Doc/library/stdtypes.rst:5190 +#: ../Doc/library/stdtypes.rst:5267 msgid "Modules" msgstr "Módulos" -#: ../Doc/library/stdtypes.rst:5192 +#: ../Doc/library/stdtypes.rst:5269 msgid "" "The only special operation on a module is attribute access: ``m.name``, " "where *m* is a module and *name* accesses a name defined in *m*'s symbol " @@ -7637,7 +7733,7 @@ msgstr "" "llamado *foo*, sino una *definición* (externa) de un módulo *foo* en alguna " "parte)." -#: ../Doc/library/stdtypes.rst:5199 +#: ../Doc/library/stdtypes.rst:5276 msgid "" "A special attribute of every module is :attr:`~object.__dict__`. This is the " "dictionary containing the module's symbol table. Modifying this dictionary " @@ -7656,7 +7752,7 @@ msgstr "" "__dict__ = {}``). No se recomienda manipular los contenidos del atributo :" "attr:`~object.__dict__` directamente." -#: ../Doc/library/stdtypes.rst:5207 +#: ../Doc/library/stdtypes.rst:5284 msgid "" "Modules built into the interpreter are written like this: ````. If loaded from a file, they are written as ````. Si se cargan desde un archivo, se escriben como " "````." -#: ../Doc/library/stdtypes.rst:5215 +#: ../Doc/library/stdtypes.rst:5292 msgid "Classes and Class Instances" msgstr "Clases e instancias de clase" -#: ../Doc/library/stdtypes.rst:5217 +#: ../Doc/library/stdtypes.rst:5294 msgid "See :ref:`objects` and :ref:`class` for these." msgstr "Véase :ref:`objects` y :ref:`class` para más información." -#: ../Doc/library/stdtypes.rst:5223 +#: ../Doc/library/stdtypes.rst:5300 msgid "Functions" msgstr "Funciones" -#: ../Doc/library/stdtypes.rst:5225 +#: ../Doc/library/stdtypes.rst:5302 msgid "" "Function objects are created by function definitions. The only operation on " "a function object is to call it: ``func(argument-list)``." @@ -7687,7 +7783,7 @@ msgstr "" "única operación posible con un objeto de tipo función es llamarla: " "``func(argument-list)``." -#: ../Doc/library/stdtypes.rst:5228 +#: ../Doc/library/stdtypes.rst:5305 msgid "" "There are really two flavors of function objects: built-in functions and " "user-defined functions. Both support the same operation (to call the " @@ -7699,15 +7795,15 @@ msgstr "" "llamadas), pero la implementación es diferente, de ahí que se consideren de " "distintos tipo." -#: ../Doc/library/stdtypes.rst:5232 +#: ../Doc/library/stdtypes.rst:5309 msgid "See :ref:`function` for more information." msgstr "Véase :ref:`function` para más información." -#: ../Doc/library/stdtypes.rst:5238 +#: ../Doc/library/stdtypes.rst:5315 msgid "Methods" msgstr "Métodos" -#: ../Doc/library/stdtypes.rst:5242 +#: ../Doc/library/stdtypes.rst:5319 msgid "" "Methods are functions that are called using the attribute notation. There " "are two flavors: built-in methods (such as :meth:`append` on lists) and " @@ -7719,7 +7815,7 @@ msgstr "" "en las listas) y métodos de instancia de clase. Los métodos básicos o " "predefinidos se describen junto con los tipos que los soportan." -#: ../Doc/library/stdtypes.rst:5247 +#: ../Doc/library/stdtypes.rst:5324 msgid "" "If you access a method (a function defined in a class namespace) through an " "instance, you get a special object: a :dfn:`bound method` (also called :dfn:" @@ -7740,7 +7836,7 @@ msgstr "" "arg-2, ..., arg-n)`` es completamente equivalente a llamar ``m.__func__(m." "__self__, arg-1, arg-2, ..., arg-n)``." -#: ../Doc/library/stdtypes.rst:5256 +#: ../Doc/library/stdtypes.rst:5333 msgid "" "Like function objects, bound method objects support getting arbitrary " "attributes. However, since method attributes are actually stored on the " @@ -7757,15 +7853,15 @@ msgstr "" "una excepción de tipo :exc:`AttributeError`. Para poder definir un atributo " "a un método, este debe ser definido explícitamente en la función subyacente::" -#: ../Doc/library/stdtypes.rst:5276 ../Doc/library/stdtypes.rst:5307 +#: ../Doc/library/stdtypes.rst:5353 ../Doc/library/stdtypes.rst:5384 msgid "See :ref:`types` for more information." msgstr "Véase :ref:`types` para más información." -#: ../Doc/library/stdtypes.rst:5284 +#: ../Doc/library/stdtypes.rst:5361 msgid "Code Objects" msgstr "Objetos código" -#: ../Doc/library/stdtypes.rst:5290 +#: ../Doc/library/stdtypes.rst:5367 msgid "" "Code objects are used by the implementation to represent \"pseudo-compiled\" " "executable Python code such as a function body. They differ from function " @@ -7782,7 +7878,7 @@ msgstr "" "pueden extraer a partir de objetos de tipo función a través de su atributo :" "attr:`__code__`. Para más detalle véase el módulo :mod:`code`." -#: ../Doc/library/stdtypes.rst:5297 +#: ../Doc/library/stdtypes.rst:5374 msgid "" "Accessing ``__code__`` raises an :ref:`auditing event ` ``object." "__getattr__`` with arguments ``obj`` and ``\"__code__\"``." @@ -7790,7 +7886,7 @@ msgstr "" "Al acceder a ``__code__`` se lanza un :ref:`evento de auditoría ` " "``object.__getattr__`` con argumentos ``obj`` y ``\"__code__\"``." -#: ../Doc/library/stdtypes.rst:5304 +#: ../Doc/library/stdtypes.rst:5381 msgid "" "A code object can be executed or evaluated by passing it (instead of a " "source string) to the :func:`exec` or :func:`eval` built-in functions." @@ -7799,11 +7895,11 @@ msgstr "" "parámetros a las funciones incorporadas :func:`exec` o :func:`eval` (que " "también aceptan código Python en forma de cadena de caracteres)." -#: ../Doc/library/stdtypes.rst:5313 +#: ../Doc/library/stdtypes.rst:5390 msgid "Type Objects" msgstr "Objetos Tipo" -#: ../Doc/library/stdtypes.rst:5319 +#: ../Doc/library/stdtypes.rst:5396 msgid "" "Type objects represent the various object types. An object's type is " "accessed by the built-in function :func:`type`. There are no special " @@ -7816,15 +7912,15 @@ msgstr "" "operación especial. El módulo :mod:`types` define nombres para todos los " "tipos básicos definidos en la biblioteca estándar." -#: ../Doc/library/stdtypes.rst:5324 +#: ../Doc/library/stdtypes.rst:5401 msgid "Types are written like this: ````." msgstr "Los tipos se escriben de la siguiente forma: ````." -#: ../Doc/library/stdtypes.rst:5330 +#: ../Doc/library/stdtypes.rst:5407 msgid "The Null Object" msgstr "El objeto nulo (*Null*)" -#: ../Doc/library/stdtypes.rst:5332 +#: ../Doc/library/stdtypes.rst:5409 msgid "" "This object is returned by functions that don't explicitly return a value. " "It supports no special operations. There is exactly one null object, named " @@ -7836,15 +7932,15 @@ msgstr "" "predefinido o básico). La expresión ``type(None)()`` produce el mismo objeto " "``None``, esto se conoce como *Singleton*." -#: ../Doc/library/stdtypes.rst:5336 +#: ../Doc/library/stdtypes.rst:5413 msgid "It is written as ``None``." msgstr "Se escribe ``None``." -#: ../Doc/library/stdtypes.rst:5343 +#: ../Doc/library/stdtypes.rst:5420 msgid "The Ellipsis Object" msgstr "El objeto puntos suspensivos (*Ellipsis*)" -#: ../Doc/library/stdtypes.rst:5345 +#: ../Doc/library/stdtypes.rst:5422 msgid "" "This object is commonly used by slicing (see :ref:`slicings`). It supports " "no special operations. There is exactly one ellipsis object, named :const:" @@ -7857,15 +7953,15 @@ msgstr "" "predefinido o básico). La expresión ``type(Ellipsis)()`` produce el mismo " "objeto :const:`Ellipsis`, esto se conoce como *Singleton*." -#: ../Doc/library/stdtypes.rst:5350 +#: ../Doc/library/stdtypes.rst:5427 msgid "It is written as ``Ellipsis`` or ``...``." msgstr "Se puede escribir como ``Ellipsis`` o ``...``." -#: ../Doc/library/stdtypes.rst:5356 +#: ../Doc/library/stdtypes.rst:5433 msgid "The NotImplemented Object" msgstr "El objeto *NotImplemented*" -#: ../Doc/library/stdtypes.rst:5358 +#: ../Doc/library/stdtypes.rst:5435 msgid "" "This object is returned from comparisons and binary operations when they are " "asked to operate on types they don't support. See :ref:`comparisons` for " @@ -7878,42 +7974,15 @@ msgstr "" "``NotImplemented``. La expresión ``type(NotImplemented)()`` produce el mismo " "objeto, esto se conoce como *Singleton*." -#: ../Doc/library/stdtypes.rst:5363 +#: ../Doc/library/stdtypes.rst:5440 msgid "It is written as ``NotImplemented``." msgstr "Se escribe ``NotImplemented``." -#: ../Doc/library/stdtypes.rst:5369 -msgid "Boolean Values" -msgstr "Valores booleanos" - -#: ../Doc/library/stdtypes.rst:5371 -msgid "" -"Boolean values are the two constant objects ``False`` and ``True``. They " -"are used to represent truth values (although other values can also be " -"considered false or true). In numeric contexts (for example when used as " -"the argument to an arithmetic operator), they behave like the integers 0 and " -"1, respectively. The built-in function :func:`bool` can be used to convert " -"any value to a Boolean, if the value can be interpreted as a truth value " -"(see section :ref:`truth` above)." -msgstr "" -"Los valores booleanos o lógicos son los dos objetos constantes ``False`` y " -"``True``. Se usan para representar valores de verdad (aunque otros valores " -"pueden ser considerados también como verdaderos o falsos). En contextos " -"numéricos (por ejemplo, cuando se usan como argumentos de una operación " -"aritmética) se comportan como los números enteros 0 y 1, respectivamente. Se " -"puede usar la función incorporada :func:`bool` para convertir valores de " -"cualquiera tipo a Booleanos, si dicho valor puede ser interpretado como " -"valores verdaderos/falsos (véase la sección :ref:`truth` anterior)." - -#: ../Doc/library/stdtypes.rst:5384 -msgid "They are written as ``False`` and ``True``, respectively." -msgstr "Se escriben ``False`` y ``True``, respectivamente." - -#: ../Doc/library/stdtypes.rst:5390 +#: ../Doc/library/stdtypes.rst:5446 msgid "Internal Objects" msgstr "Objetos internos" -#: ../Doc/library/stdtypes.rst:5392 +#: ../Doc/library/stdtypes.rst:5448 msgid "" "See :ref:`types` for this information. It describes stack frame objects, " "traceback objects, and slice objects." @@ -7922,11 +7991,11 @@ msgstr "" "los objetos marco de pila, los objetos de traza de ejecución (*traceback*) y " "los objetos de tipo segmento (*slice*)." -#: ../Doc/library/stdtypes.rst:5399 +#: ../Doc/library/stdtypes.rst:5455 msgid "Special Attributes" msgstr "Atributos especiales" -#: ../Doc/library/stdtypes.rst:5401 +#: ../Doc/library/stdtypes.rst:5457 msgid "" "The implementation adds a few special read-only attributes to several object " "types, where they are relevant. Some of these are not reported by the :func:" @@ -7936,7 +8005,7 @@ msgstr "" "tipos de objetos, cuando resulta relevante. Algunos de estos atributos son " "reportados por la función incorporada :func:`dir`." -#: ../Doc/library/stdtypes.rst:5408 +#: ../Doc/library/stdtypes.rst:5464 msgid "" "A dictionary or other mapping object used to store an object's (writable) " "attributes." @@ -7944,21 +8013,21 @@ msgstr "" "Un diccionario u otro tipo de mapa usado para almacenar los atributos de un " "objeto (si son modificables)." -#: ../Doc/library/stdtypes.rst:5414 +#: ../Doc/library/stdtypes.rst:5470 msgid "The class to which a class instance belongs." msgstr "La clase a la que pertenece una instancia." -#: ../Doc/library/stdtypes.rst:5419 +#: ../Doc/library/stdtypes.rst:5475 msgid "The tuple of base classes of a class object." msgstr "La tupla de clases base de las que deriva una clase." -#: ../Doc/library/stdtypes.rst:5424 +#: ../Doc/library/stdtypes.rst:5480 msgid "" "The name of the class, function, method, descriptor, or generator instance." msgstr "" "El nombre de la clase, función, método, descriptor o instancia generadora." -#: ../Doc/library/stdtypes.rst:5430 +#: ../Doc/library/stdtypes.rst:5486 msgid "" "The :term:`qualified name` of the class, function, method, descriptor, or " "generator instance." @@ -7966,7 +8035,13 @@ msgstr "" "El nombre calificado (:term:`qualified name`) de la clase, función, método, " "descriptor o instancia generadora." -#: ../Doc/library/stdtypes.rst:5438 +#: ../Doc/library/stdtypes.rst:5494 +msgid "" +"The :ref:`type parameters ` of generic classes, functions, and :" +"ref:`type aliases `." +msgstr "" + +#: ../Doc/library/stdtypes.rst:5502 msgid "" "This attribute is a tuple of classes that are considered when looking for " "base classes during method resolution." @@ -7974,7 +8049,7 @@ msgstr "" "Este atributo es una tupla de las clases que serán consideradas cuando se " "busque en las clases base para resolver un método." -#: ../Doc/library/stdtypes.rst:5444 +#: ../Doc/library/stdtypes.rst:5508 msgid "" "This method can be overridden by a metaclass to customize the method " "resolution order for its instances. It is called at class instantiation, " @@ -7984,7 +8059,7 @@ msgstr "" "de resolución de métodos para sus instancias. Es llamado en la creación de " "la clase, y el resultado se almacena en el atributo :attr:`~class.__mro__`." -#: ../Doc/library/stdtypes.rst:5451 +#: ../Doc/library/stdtypes.rst:5515 msgid "" "Each class keeps a list of weak references to its immediate subclasses. " "This method returns a list of all those references still alive. The list is " @@ -7995,11 +8070,11 @@ msgstr "" "referencias que todavía estén vivas. La lista está en orden de definición. " "Por ejemplo::" -#: ../Doc/library/stdtypes.rst:5462 +#: ../Doc/library/stdtypes.rst:5526 msgid "Integer string conversion length limitation" msgstr "Limitación de longitud de conversión de cadena de tipo entero" -#: ../Doc/library/stdtypes.rst:5464 +#: ../Doc/library/stdtypes.rst:5528 msgid "" "CPython has a global limit for converting between :class:`int` and :class:" "`str` to mitigate denial of service attacks. This limit *only* applies to " @@ -8012,9 +8087,10 @@ msgstr "" "Las conversiones hexadecimales, octales y binarias son ilimitadas. Se puede " "configurar el límite." -#: ../Doc/library/stdtypes.rst:5469 +#: ../Doc/library/stdtypes.rst:5533 +#, fuzzy msgid "" -"The :class:`int` type in CPython is an abitrary length number stored in " +"The :class:`int` type in CPython is an arbitrary length number stored in " "binary form (commonly known as a \"bignum\"). There exists no algorithm that " "can convert a string to a binary integer or a binary integer to a string in " "linear time, *unless* the base is a power of 2. Even the best known " @@ -8030,7 +8106,7 @@ msgstr "" "un valor grande como ``int('1' * 500_000)`` puede tomar más de un segundo en " "una CPU rápida." -#: ../Doc/library/stdtypes.rst:5476 +#: ../Doc/library/stdtypes.rst:5540 msgid "" "Limiting conversion size offers a practical way to avoid `CVE-2020-10735 " "`_." @@ -8039,7 +8115,7 @@ msgstr "" "`CVE-2020-10735 `_." -#: ../Doc/library/stdtypes.rst:5479 +#: ../Doc/library/stdtypes.rst:5543 msgid "" "The limit is applied to the number of digit characters in the input or " "output string when a non-linear conversion algorithm would be involved. " @@ -8049,14 +8125,14 @@ msgstr "" "entrada o salida cuando estaría involucrado un algoritmo de conversión no " "lineal. Los guiones bajos y el signo no se cuentan para el límite." -#: ../Doc/library/stdtypes.rst:5483 +#: ../Doc/library/stdtypes.rst:5547 msgid "" "When an operation would exceed the limit, a :exc:`ValueError` is raised:" msgstr "" "Cuando una operación excede el límite, se lanza una excepción :exc:" "`ValueError`:" -#: ../Doc/library/stdtypes.rst:5505 +#: ../Doc/library/stdtypes.rst:5569 msgid "" "The default limit is 4300 digits as provided in :data:`sys.int_info." "default_max_str_digits `. The lowest limit that can be " @@ -8068,15 +8144,15 @@ msgstr "" "puede configurar es de 640 dígitos como se indica en :data:`sys.int_info." "str_digits_check_threshold `." -#: ../Doc/library/stdtypes.rst:5510 +#: ../Doc/library/stdtypes.rst:5574 msgid "Verification:" msgstr "Verificación:" -#: ../Doc/library/stdtypes.rst:5525 +#: ../Doc/library/stdtypes.rst:5589 msgid "Affected APIs" msgstr "APIs afectadas" -#: ../Doc/library/stdtypes.rst:5527 +#: ../Doc/library/stdtypes.rst:5591 msgid "" "The limitation only applies to potentially slow conversions between :class:" "`int` and :class:`str` or :class:`bytes`:" @@ -8084,24 +8160,25 @@ msgstr "" "La limitación solo se aplica a conversiones potencialmente lentas entre :" "class:`int` y :class:`str` o :class:`bytes`:" -#: ../Doc/library/stdtypes.rst:5530 +#: ../Doc/library/stdtypes.rst:5594 msgid "``int(string)`` with default base 10." msgstr "``int(string)`` con base predeterminada a 10." -#: ../Doc/library/stdtypes.rst:5531 +#: ../Doc/library/stdtypes.rst:5595 msgid "``int(string, base)`` for all bases that are not a power of 2." msgstr "" "``int(string, base)`` para todas las bases que no sean una potencia de 2." -#: ../Doc/library/stdtypes.rst:5532 +#: ../Doc/library/stdtypes.rst:5596 msgid "``str(integer)``." msgstr "``str(integer)``." -#: ../Doc/library/stdtypes.rst:5533 -msgid "``repr(integer)``" +#: ../Doc/library/stdtypes.rst:5597 +#, fuzzy +msgid "``repr(integer)``." msgstr "``repr(integer)``" -#: ../Doc/library/stdtypes.rst:5534 +#: ../Doc/library/stdtypes.rst:5598 #, python-format msgid "" "any other string conversion to base 10, for example ``f\"{integer}\"``, " @@ -8110,39 +8187,39 @@ msgstr "" "cualquier otra conversión de cadena a base 10, por ejemplo, " "``f\"{integer}\"``, ``\"{}\".format(integer)`` o ``b\"%d\" % integer``." -#: ../Doc/library/stdtypes.rst:5537 +#: ../Doc/library/stdtypes.rst:5601 msgid "The limitations do not apply to functions with a linear algorithm:" msgstr "Las limitaciones no se aplican a funciones con un algoritmo lineal:" -#: ../Doc/library/stdtypes.rst:5539 +#: ../Doc/library/stdtypes.rst:5603 msgid "``int(string, base)`` with base 2, 4, 8, 16, or 32." msgstr "``int(string, base)`` con base 2, 4, 8, 16 o 32." -#: ../Doc/library/stdtypes.rst:5540 +#: ../Doc/library/stdtypes.rst:5604 msgid ":func:`int.from_bytes` and :func:`int.to_bytes`." msgstr ":func:`int.from_bytes` y :func:`int.to_bytes`." -#: ../Doc/library/stdtypes.rst:5541 +#: ../Doc/library/stdtypes.rst:5605 msgid ":func:`hex`, :func:`oct`, :func:`bin`." msgstr ":func:`hex`, :func:`oct`, :func:`bin`." -#: ../Doc/library/stdtypes.rst:5542 +#: ../Doc/library/stdtypes.rst:5606 msgid ":ref:`formatspec` for hex, octal, and binary numbers." msgstr ":ref:`formatspec` para números hexadecimales, octales y binarios." -#: ../Doc/library/stdtypes.rst:5543 +#: ../Doc/library/stdtypes.rst:5607 msgid ":class:`str` to :class:`float`." msgstr ":class:`str` a :class:`float`." -#: ../Doc/library/stdtypes.rst:5544 +#: ../Doc/library/stdtypes.rst:5608 msgid ":class:`str` to :class:`decimal.Decimal`." msgstr ":class:`str` a :class:`decimal.Decimal`." -#: ../Doc/library/stdtypes.rst:5547 +#: ../Doc/library/stdtypes.rst:5611 msgid "Configuring the limit" msgstr "Configuración del límite" -#: ../Doc/library/stdtypes.rst:5549 +#: ../Doc/library/stdtypes.rst:5613 msgid "" "Before Python starts up you can use an environment variable or an " "interpreter command line flag to configure the limit:" @@ -8150,7 +8227,7 @@ msgstr "" "Antes de que se inicie Python, puedes usar una variable de entorno o un " "indicador de línea de comandos del intérprete para configurar el límite:" -#: ../Doc/library/stdtypes.rst:5552 +#: ../Doc/library/stdtypes.rst:5616 msgid "" ":envvar:`PYTHONINTMAXSTRDIGITS`, e.g. ``PYTHONINTMAXSTRDIGITS=640 python3`` " "to set the limit to 640 or ``PYTHONINTMAXSTRDIGITS=0 python3`` to disable " @@ -8160,7 +8237,7 @@ msgstr "" "python3`` para configurar el límite a 640 o ``PYTHONINTMAXSTRDIGITS=0 " "python3`` para desactivar la limitación." -#: ../Doc/library/stdtypes.rst:5555 +#: ../Doc/library/stdtypes.rst:5619 msgid "" ":option:`-X int_max_str_digits <-X>`, e.g. ``python3 -X " "int_max_str_digits=640``" @@ -8168,13 +8245,14 @@ msgstr "" ":option:`-X int_max_str_digits <-X>`, por ejemplo, ``python3 -X " "int_max_str_digits=640``" -#: ../Doc/library/stdtypes.rst:5557 +#: ../Doc/library/stdtypes.rst:5621 +#, fuzzy msgid "" ":data:`sys.flags.int_max_str_digits` contains the value of :envvar:" "`PYTHONINTMAXSTRDIGITS` or :option:`-X int_max_str_digits <-X>`. If both the " "env var and the ``-X`` option are set, the ``-X`` option takes precedence. A " "value of *-1* indicates that both were unset, thus a value of :data:`sys." -"int_info.default_max_str_digits` was used during initilization." +"int_info.default_max_str_digits` was used during initialization." msgstr "" ":data:`sys.flags.int_max_str_digits` contiene el valor de :envvar:" "`PYTHONINTMAXSTRDIGITS` o :option:`-X int_max_str_digits <-X>`. Si tanto la " @@ -8183,7 +8261,7 @@ msgstr "" "por lo que se usó un valor de :data:`sys.int_info.default_max_str_digits` " "durante la inicialización." -#: ../Doc/library/stdtypes.rst:5563 +#: ../Doc/library/stdtypes.rst:5627 msgid "" "From code, you can inspect the current limit and set a new one using these :" "mod:`sys` APIs:" @@ -8191,7 +8269,7 @@ msgstr "" "Desde el código, puedes inspeccionar el límite actual y configurar uno nuevo " "al usar estas APIs de :mod:`sys`:" -#: ../Doc/library/stdtypes.rst:5566 +#: ../Doc/library/stdtypes.rst:5630 msgid "" ":func:`sys.get_int_max_str_digits` and :func:`sys.set_int_max_str_digits` " "are a getter and setter for the interpreter-wide limit. Subinterpreters have " @@ -8201,15 +8279,16 @@ msgstr "" "un getter y un setter para el límite de todo el intérprete. Los " "subintérpretes tienen su propio límite." -#: ../Doc/library/stdtypes.rst:5570 +#: ../Doc/library/stdtypes.rst:5634 +#, fuzzy msgid "" -"Information about the default and minimum can be found in :attr:`sys." +"Information about the default and minimum can be found in :data:`sys." "int_info`:" msgstr "" "La información sobre el valor predeterminado y mínimo se puede encontrar en :" "attr:`sys.int_info`:" -#: ../Doc/library/stdtypes.rst:5572 +#: ../Doc/library/stdtypes.rst:5636 msgid "" ":data:`sys.int_info.default_max_str_digits ` is the compiled-" "in default limit." @@ -8217,7 +8296,7 @@ msgstr "" ":data:`sys.int_info.default_max_str_digits ` es el límite " "predeterminado compilado." -#: ../Doc/library/stdtypes.rst:5574 +#: ../Doc/library/stdtypes.rst:5638 msgid "" ":data:`sys.int_info.str_digits_check_threshold ` is the lowest " "accepted value for the limit (other than 0 which disables it)." @@ -8225,7 +8304,7 @@ msgstr "" ":data:`sys.int_info.str_digits_check_threshold ` es el valor " "más bajo aceptado para el límite (aparte de 0, que lo desactiva)." -#: ../Doc/library/stdtypes.rst:5581 +#: ../Doc/library/stdtypes.rst:5645 msgid "" "Setting a low limit *can* lead to problems. While rare, code exists that " "contains integer constants in decimal in their source that exceed the " @@ -8246,7 +8325,7 @@ msgstr "" "el código. Una solución para la fuente que contiene constantes tan grandes " "es convertirlas a la forma hexadecimal ``0x`` ya que no tiene límite." -#: ../Doc/library/stdtypes.rst:5590 +#: ../Doc/library/stdtypes.rst:5654 msgid "" "Test your application thoroughly if you use a low limit. Ensure your tests " "run with the limit set early via the environment or flag so that it applies " @@ -8259,16 +8338,17 @@ msgstr "" "durante cualquier paso de instalación que pueda invocar a Python para " "precompilar las fuentes ``.py`` a los archivos ``.pyc``." -#: ../Doc/library/stdtypes.rst:5596 +#: ../Doc/library/stdtypes.rst:5660 msgid "Recommended configuration" msgstr "Configuración recomendada" -#: ../Doc/library/stdtypes.rst:5598 +#: ../Doc/library/stdtypes.rst:5662 +#, fuzzy msgid "" "The default :data:`sys.int_info.default_max_str_digits` is expected to be " "reasonable for most applications. If your application requires a different " "limit, set it from your main entry point using Python version agnostic code " -"as these APIs were added in security patch releases in versions before 3.11." +"as these APIs were added in security patch releases in versions before 3.12." msgstr "" "Se espera que el valor predeterminado :data:`sys.int_info." "default_max_str_digits` sea razonable para la mayoría de las aplicaciones. " @@ -8277,19 +8357,19 @@ msgstr "" "Python, ya que estas APIs se agregaron en versiones de parches de seguridad " "en versiones anteriores a la 3.11." -#: ../Doc/library/stdtypes.rst:5603 +#: ../Doc/library/stdtypes.rst:5667 msgid "Example::" msgstr "Por ejemplo::" -#: ../Doc/library/stdtypes.rst:5615 +#: ../Doc/library/stdtypes.rst:5679 msgid "If you need to disable it entirely, set it to ``0``." msgstr "Si necesitas deshabilitarlo por completo, configúralo en ``0``." -#: ../Doc/library/stdtypes.rst:5619 +#: ../Doc/library/stdtypes.rst:5683 msgid "Footnotes" msgstr "Notas al pie" -#: ../Doc/library/stdtypes.rst:5620 +#: ../Doc/library/stdtypes.rst:5684 msgid "" "Additional information on these special methods may be found in the Python " "Reference Manual (:ref:`customization`)." @@ -8297,7 +8377,7 @@ msgstr "" "Se puede consultar información adicional sobre estos métodos especiales en " "el manual de referencia de Python (:ref:`customization`)." -#: ../Doc/library/stdtypes.rst:5623 +#: ../Doc/library/stdtypes.rst:5687 msgid "" "As a consequence, the list ``[1, 2]`` is considered equal to ``[1.0, 2.0]``, " "and similarly for tuples." @@ -8305,13 +8385,13 @@ msgstr "" "En consecuencia, la lista ``[1, 2]`` se considera igual que ``[1.0, 2.0]``, " "y de forma similar para las tuplas." -#: ../Doc/library/stdtypes.rst:5626 +#: ../Doc/library/stdtypes.rst:5690 msgid "They must have since the parser can't tell the type of the operands." msgstr "" "Deben haberlo hecho, ya que el analizador no puede decir el tipo de " "operandos." -#: ../Doc/library/stdtypes.rst:5628 +#: ../Doc/library/stdtypes.rst:5692 msgid "" "Cased characters are those with general category property being one of " "\"Lu\" (Letter, uppercase), \"Ll\" (Letter, lowercase), or \"Lt\" (Letter, " @@ -8321,10 +8401,917 @@ msgstr "" "categoría general corresponde con \"Lu\" (Letra, Mayúscula), \"Ll\" (Letra, " "minúscula) o \"Lt\" (Letra, *titlecase*)." -#: ../Doc/library/stdtypes.rst:5631 +#: ../Doc/library/stdtypes.rst:5695 msgid "" "To format only a tuple you should therefore provide a singleton tuple whose " "only element is the tuple to be formatted." msgstr "" "Para formatear solo una tupla se debe, por tanto, usar una tupla conteniendo " "un único elemento, que sería la tupla a ser formateada." + +#: ../Doc/library/stdtypes.rst:13 +#, fuzzy +msgid "built-in" +msgstr "Tipos integrados" + +#: ../Doc/library/stdtypes.rst:13 ../Doc/library/stdtypes.rst:315 +#: ../Doc/library/stdtypes.rst:392 ../Doc/library/stdtypes.rst:948 +#: ../Doc/library/stdtypes.rst:1115 ../Doc/library/stdtypes.rst:1137 +#: ../Doc/library/stdtypes.rst:1152 ../Doc/library/stdtypes.rst:4419 +#: ../Doc/library/stdtypes.rst:5392 +#, fuzzy +msgid "types" +msgstr "Tuplas" + +#: ../Doc/library/stdtypes.rst:34 ../Doc/library/stdtypes.rst:1152 +#: ../Doc/library/stdtypes.rst:4419 +msgid "statement" +msgstr "" + +#: ../Doc/library/stdtypes.rst:34 +msgid "if" +msgstr "" + +#: ../Doc/library/stdtypes.rst:34 +msgid "while" +msgstr "" + +#: ../Doc/library/stdtypes.rst:34 +msgid "truth" +msgstr "" + +#: ../Doc/library/stdtypes.rst:34 +msgid "value" +msgstr "" + +#: ../Doc/library/stdtypes.rst:34 ../Doc/library/stdtypes.rst:80 +#: ../Doc/library/stdtypes.rst:207 ../Doc/library/stdtypes.rst:815 +#, fuzzy +msgid "Boolean" +msgstr "Valores booleanos" + +#: ../Doc/library/stdtypes.rst:34 ../Doc/library/stdtypes.rst:80 +#: ../Doc/library/stdtypes.rst:392 +#, fuzzy +msgid "operations" +msgstr "Operación" + +#: ../Doc/library/stdtypes.rst:34 +msgid "false" +msgstr "" + +#: ../Doc/library/stdtypes.rst:44 +#, fuzzy +msgid "true" +msgstr "Tuplas" + +#: ../Doc/library/stdtypes.rst:51 +#, fuzzy +msgid "None (Built-in object)" +msgstr "Otros tipos predefinidos" + +#: ../Doc/library/stdtypes.rst:51 +msgid "False (Built-in object)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:63 ../Doc/library/stdtypes.rst:97 +#: ../Doc/library/stdtypes.rst:122 ../Doc/library/stdtypes.rst:194 +#: ../Doc/library/stdtypes.rst:245 ../Doc/library/stdtypes.rst:392 +#: ../Doc/library/stdtypes.rst:948 +#, fuzzy +msgid "operator" +msgstr "Operación" + +#: ../Doc/library/stdtypes.rst:63 ../Doc/library/stdtypes.rst:97 +msgid "or" +msgstr "" + +#: ../Doc/library/stdtypes.rst:63 ../Doc/library/stdtypes.rst:97 +#, fuzzy +msgid "and" +msgstr "y::" + +#: ../Doc/library/stdtypes.rst:63 ../Doc/library/stdtypes.rst:815 +msgid "False" +msgstr "" + +#: ../Doc/library/stdtypes.rst:63 ../Doc/library/stdtypes.rst:815 +#, fuzzy +msgid "True" +msgstr "Tuplas" + +#: ../Doc/library/stdtypes.rst:97 +#, fuzzy +msgid "not" +msgstr "Notas" + +#: ../Doc/library/stdtypes.rst:122 +#, fuzzy +msgid "chaining" +msgstr "Significado" + +#: ../Doc/library/stdtypes.rst:122 +#, fuzzy +msgid "comparisons" +msgstr "Comparaciones" + +#: ../Doc/library/stdtypes.rst:122 +#, fuzzy +msgid "comparison" +msgstr "Comparaciones" + +#: ../Doc/library/stdtypes.rst:122 +msgid "==" +msgstr "" + +#: ../Doc/library/stdtypes.rst:122 +msgid "< (less)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:122 +msgid "<=" +msgstr "" + +#: ../Doc/library/stdtypes.rst:122 +msgid "> (greater)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:122 +msgid ">=" +msgstr "" + +#: ../Doc/library/stdtypes.rst:122 +msgid "!=" +msgstr "" + +#: ../Doc/library/stdtypes.rst:122 +msgid "is" +msgstr "" + +#: ../Doc/library/stdtypes.rst:122 +#, fuzzy +msgid "is not" +msgstr "``is not``" + +#: ../Doc/library/stdtypes.rst:162 ../Doc/library/stdtypes.rst:207 +#: ../Doc/library/stdtypes.rst:932 ../Doc/library/stdtypes.rst:1115 +#: ../Doc/library/stdtypes.rst:1137 ../Doc/library/stdtypes.rst:1257 +#: ../Doc/library/stdtypes.rst:1336 ../Doc/library/stdtypes.rst:1380 +#: ../Doc/library/stdtypes.rst:1502 ../Doc/library/stdtypes.rst:1538 +#: ../Doc/library/stdtypes.rst:2512 ../Doc/library/stdtypes.rst:2531 +#: ../Doc/library/stdtypes.rst:2638 ../Doc/library/stdtypes.rst:4218 +#: ../Doc/library/stdtypes.rst:4419 ../Doc/library/stdtypes.rst:4894 +#: ../Doc/library/stdtypes.rst:5149 ../Doc/library/stdtypes.rst:5317 +#: ../Doc/library/stdtypes.rst:5356 +#, fuzzy +msgid "object" +msgstr "Objetos Tipo" + +#: ../Doc/library/stdtypes.rst:162 ../Doc/library/stdtypes.rst:207 +#: ../Doc/library/stdtypes.rst:228 ../Doc/library/stdtypes.rst:315 +#: ../Doc/library/stdtypes.rst:334 +msgid "numeric" +msgstr "" + +#: ../Doc/library/stdtypes.rst:162 +#, fuzzy +msgid "objects" +msgstr "Objetos Tipo" + +#: ../Doc/library/stdtypes.rst:162 +#, fuzzy +msgid "comparing" +msgstr "Comparaciones" + +#: ../Doc/library/stdtypes.rst:172 +msgid "__eq__() (instance method)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:172 +msgid "__ne__() (instance method)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:172 +msgid "__lt__() (instance method)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:172 +msgid "__le__() (instance method)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:172 +msgid "__gt__() (instance method)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:172 +msgid "__ge__() (instance method)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:194 ../Doc/library/stdtypes.rst:948 +msgid "in" +msgstr "" + +#: ../Doc/library/stdtypes.rst:194 ../Doc/library/stdtypes.rst:948 +#, fuzzy +msgid "not in" +msgstr "``x not in s``" + +#: ../Doc/library/stdtypes.rst:207 ../Doc/library/stdtypes.rst:228 +#: ../Doc/library/stdtypes.rst:392 +msgid "integer" +msgstr "" + +#: ../Doc/library/stdtypes.rst:207 ../Doc/library/stdtypes.rst:228 +#, fuzzy +msgid "floating point" +msgstr "Formato en coma flotante decimal." + +#: ../Doc/library/stdtypes.rst:207 ../Doc/library/stdtypes.rst:228 +msgid "complex number" +msgstr "" + +#: ../Doc/library/stdtypes.rst:207 +msgid "C" +msgstr "" + +#: ../Doc/library/stdtypes.rst:207 +msgid "language" +msgstr "" + +#: ../Doc/library/stdtypes.rst:228 +msgid "literals" +msgstr "" + +#: ../Doc/library/stdtypes.rst:228 +msgid "hexadecimal" +msgstr "" + +#: ../Doc/library/stdtypes.rst:228 +msgid "octal" +msgstr "" + +#: ../Doc/library/stdtypes.rst:228 +msgid "binary" +msgstr "" + +#: ../Doc/library/stdtypes.rst:245 +msgid "arithmetic" +msgstr "" + +#: ../Doc/library/stdtypes.rst:245 ../Doc/library/stdtypes.rst:948 +#: ../Doc/library/stdtypes.rst:1115 ../Doc/library/stdtypes.rst:4419 +#: ../Doc/library/stdtypes.rst:5363 ../Doc/library/stdtypes.rst:5377 +#: ../Doc/library/stdtypes.rst:5392 +#, fuzzy +msgid "built-in function" +msgstr "Tipos integrados" + +#: ../Doc/library/stdtypes.rst:245 +msgid "int" +msgstr "" + +#: ../Doc/library/stdtypes.rst:245 +#, fuzzy +msgid "float" +msgstr "Flag" + +#: ../Doc/library/stdtypes.rst:245 +#, fuzzy +msgid "complex" +msgstr ":func:`complex`" + +#: ../Doc/library/stdtypes.rst:245 ../Doc/library/stdtypes.rst:2388 +#: ../Doc/library/stdtypes.rst:3606 +msgid "+ (plus)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:245 +#, fuzzy +msgid "unary operator" +msgstr "Separador de grupo" + +#: ../Doc/library/stdtypes.rst:245 +#, fuzzy +msgid "binary operator" +msgstr "Separador de grupo" + +#: ../Doc/library/stdtypes.rst:245 ../Doc/library/stdtypes.rst:2388 +#: ../Doc/library/stdtypes.rst:3606 +msgid "- (minus)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:245 ../Doc/library/stdtypes.rst:2345 +#: ../Doc/library/stdtypes.rst:3563 +msgid "* (asterisk)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:245 +msgid "/ (slash)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:245 +msgid "//" +msgstr "" + +#: ../Doc/library/stdtypes.rst:245 ../Doc/library/stdtypes.rst:2315 +#: ../Doc/library/stdtypes.rst:3531 +msgid "% (percent)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:245 +msgid "**" +msgstr "" + +#: ../Doc/library/stdtypes.rst:315 ../Doc/library/stdtypes.rst:392 +#: ../Doc/library/stdtypes.rst:948 ../Doc/library/stdtypes.rst:1152 +#: ../Doc/library/stdtypes.rst:4419 +#, fuzzy +msgid "operations on" +msgstr "Operación" + +#: ../Doc/library/stdtypes.rst:315 +#, fuzzy +msgid "conjugate() (complex number method)" +msgstr "conjugado del número complejo *c*" + +#: ../Doc/library/stdtypes.rst:334 ../Doc/library/stdtypes.rst:1604 +#: ../Doc/library/stdtypes.rst:2512 ../Doc/library/stdtypes.rst:5392 +#, fuzzy +msgid "module" +msgstr "Módulos" + +#: ../Doc/library/stdtypes.rst:334 +msgid "math" +msgstr "" + +#: ../Doc/library/stdtypes.rst:334 +msgid "floor() (in module math)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:334 +msgid "ceil() (in module math)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:334 +msgid "trunc() (in module math)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:334 +#, fuzzy +msgid "conversions" +msgstr "Conversión" + +#: ../Doc/library/stdtypes.rst:392 +msgid "bitwise" +msgstr "" + +#: ../Doc/library/stdtypes.rst:392 +msgid "shifting" +msgstr "" + +#: ../Doc/library/stdtypes.rst:392 +#, fuzzy +msgid "masking" +msgstr "Significado" + +#: ../Doc/library/stdtypes.rst:392 +msgid "| (vertical bar)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:392 +msgid "^ (caret)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:392 +msgid "& (ampersand)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:392 +msgid "<<" +msgstr "" + +#: ../Doc/library/stdtypes.rst:392 +msgid ">>" +msgstr "" + +#: ../Doc/library/stdtypes.rst:392 +msgid "~ (tilde)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:815 +#, fuzzy +msgid "values" +msgstr "Valores booleanos" + +#: ../Doc/library/stdtypes.rst:845 +#, fuzzy +msgid "iterator protocol" +msgstr "Tipos de iteradores" + +#: ../Doc/library/stdtypes.rst:845 ../Doc/library/stdtypes.rst:4809 +msgid "protocol" +msgstr "" + +#: ../Doc/library/stdtypes.rst:845 +#, fuzzy +msgid "iterator" +msgstr "Tipos de iteradores" + +#: ../Doc/library/stdtypes.rst:845 ../Doc/library/stdtypes.rst:932 +#: ../Doc/library/stdtypes.rst:948 ../Doc/library/stdtypes.rst:1115 +#: ../Doc/library/stdtypes.rst:1137 ../Doc/library/stdtypes.rst:1152 +msgid "sequence" +msgstr "" + +#: ../Doc/library/stdtypes.rst:845 +#, fuzzy +msgid "iteration" +msgstr "Operación" + +#: ../Doc/library/stdtypes.rst:845 +msgid "container" +msgstr "" + +#: ../Doc/library/stdtypes.rst:845 +#, fuzzy +msgid "iteration over" +msgstr "Operación" + +#: ../Doc/library/stdtypes.rst:948 ../Doc/library/stdtypes.rst:4419 +msgid "len" +msgstr "" + +#: ../Doc/library/stdtypes.rst:948 +#, fuzzy +msgid "min" +msgstr "Significado" + +#: ../Doc/library/stdtypes.rst:948 +msgid "max" +msgstr "" + +#: ../Doc/library/stdtypes.rst:948 +#, fuzzy +msgid "concatenation" +msgstr "Operación" + +#: ../Doc/library/stdtypes.rst:948 +#, fuzzy +msgid "operation" +msgstr "Operación" + +#: ../Doc/library/stdtypes.rst:948 +#, fuzzy +msgid "repetition" +msgstr "Representación" + +#: ../Doc/library/stdtypes.rst:948 ../Doc/library/stdtypes.rst:1152 +#, fuzzy +msgid "subscript" +msgstr "Descripción" + +#: ../Doc/library/stdtypes.rst:948 ../Doc/library/stdtypes.rst:1152 +msgid "slice" +msgstr "" + +#: ../Doc/library/stdtypes.rst:948 +msgid "count() (sequence method)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:948 +msgid "index() (sequence method)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:1004 +msgid "loop" +msgstr "" + +#: ../Doc/library/stdtypes.rst:1004 +#, fuzzy +msgid "over mutable sequence" +msgstr "Tipos de secuencia mutables" + +#: ../Doc/library/stdtypes.rst:1004 +#, fuzzy +msgid "mutable sequence" +msgstr "Tipos de secuencia mutables" + +#: ../Doc/library/stdtypes.rst:1004 +msgid "loop over" +msgstr "" + +#: ../Doc/library/stdtypes.rst:1115 +msgid "immutable" +msgstr "" + +#: ../Doc/library/stdtypes.rst:1115 ../Doc/library/stdtypes.rst:1336 +#, fuzzy +msgid "tuple" +msgstr "Tuplas" + +#: ../Doc/library/stdtypes.rst:1115 +msgid "hash" +msgstr "" + +#: ../Doc/library/stdtypes.rst:1137 +msgid "mutable" +msgstr "" + +#: ../Doc/library/stdtypes.rst:1137 ../Doc/library/stdtypes.rst:1152 +#: ../Doc/library/stdtypes.rst:1257 +#, fuzzy +msgid "list" +msgstr "Listas" + +#: ../Doc/library/stdtypes.rst:1137 ../Doc/library/stdtypes.rst:2512 +#: ../Doc/library/stdtypes.rst:2638 ../Doc/library/stdtypes.rst:2710 +#: ../Doc/library/stdtypes.rst:3531 +#, fuzzy +msgid "bytearray" +msgstr "Objetos de tipo *Bytearray*" + +#: ../Doc/library/stdtypes.rst:1152 ../Doc/library/stdtypes.rst:4419 +#: ../Doc/library/stdtypes.rst:5149 ../Doc/library/stdtypes.rst:5392 +#, fuzzy +msgid "type" +msgstr "Tuplas" + +#: ../Doc/library/stdtypes.rst:1152 +msgid "assignment" +msgstr "" + +#: ../Doc/library/stdtypes.rst:1152 ../Doc/library/stdtypes.rst:4419 +msgid "del" +msgstr "" + +#: ../Doc/library/stdtypes.rst:1152 +msgid "append() (sequence method)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:1152 +msgid "clear() (sequence method)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:1152 +msgid "copy() (sequence method)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:1152 +msgid "extend() (sequence method)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:1152 +msgid "insert() (sequence method)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:1152 +msgid "pop() (sequence method)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:1152 +msgid "remove() (sequence method)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:1152 +msgid "reverse() (sequence method)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:1380 +#, fuzzy +msgid "range" +msgstr "Rangos" + +#: ../Doc/library/stdtypes.rst:1502 ../Doc/library/stdtypes.rst:1551 +#: ../Doc/library/stdtypes.rst:1596 ../Doc/library/stdtypes.rst:2315 +#, fuzzy +msgid "string" +msgstr "Métodos de las cadenas de caracteres" + +#: ../Doc/library/stdtypes.rst:1502 +#, fuzzy +msgid "text sequence type" +msgstr "Tipos de secuencia mutables" + +#: ../Doc/library/stdtypes.rst:1502 ../Doc/library/stdtypes.rst:1551 +#: ../Doc/library/stdtypes.rst:1569 +#, fuzzy +msgid "str (built-in class)" +msgstr "Otros tipos predefinidos" + +#: ../Doc/library/stdtypes.rst:1502 +msgid "(see also string)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:1538 +msgid "io.StringIO" +msgstr "" + +#: ../Doc/library/stdtypes.rst:1569 ../Doc/library/stdtypes.rst:2504 +msgid "buffer protocol" +msgstr "" + +#: ../Doc/library/stdtypes.rst:1569 ../Doc/library/stdtypes.rst:2512 +#: ../Doc/library/stdtypes.rst:2531 ../Doc/library/stdtypes.rst:2710 +#: ../Doc/library/stdtypes.rst:3531 +#, fuzzy +msgid "bytes" +msgstr "Notas" + +#: ../Doc/library/stdtypes.rst:1596 ../Doc/library/stdtypes.rst:2710 +#, fuzzy +msgid "methods" +msgstr "Métodos" + +#: ../Doc/library/stdtypes.rst:1604 +msgid "re" +msgstr "" + +#: ../Doc/library/stdtypes.rst:2123 ../Doc/library/stdtypes.rst:3385 +msgid "universal newlines" +msgstr "" + +#: ../Doc/library/stdtypes.rst:2123 +#, fuzzy +msgid "str.splitlines method" +msgstr "Métodos de las cadenas de caracteres" + +#: ../Doc/library/stdtypes.rst:2315 +msgid "formatting, string (%)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:2315 +msgid "interpolation, string (%)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:2315 +msgid "formatting, printf" +msgstr "" + +#: ../Doc/library/stdtypes.rst:2315 +msgid "interpolation, printf" +msgstr "" + +#: ../Doc/library/stdtypes.rst:2315 ../Doc/library/stdtypes.rst:3531 +#, fuzzy +msgid "printf-style formatting" +msgstr "Usando el formateo tipo ``printf`` con bytes" + +#: ../Doc/library/stdtypes.rst:2315 ../Doc/library/stdtypes.rst:3531 +#, fuzzy +msgid "sprintf-style formatting" +msgstr "Usando el formateo tipo ``printf`` con bytes" + +#: ../Doc/library/stdtypes.rst:2345 ../Doc/library/stdtypes.rst:3563 +msgid "() (parentheses)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:2345 ../Doc/library/stdtypes.rst:2388 +#: ../Doc/library/stdtypes.rst:3563 ../Doc/library/stdtypes.rst:3606 +#, fuzzy +msgid "in printf-style formatting" +msgstr "Usando el formateo tipo ``printf`` con bytes" + +#: ../Doc/library/stdtypes.rst:2345 ../Doc/library/stdtypes.rst:3563 +msgid ". (dot)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:2388 ../Doc/library/stdtypes.rst:3606 +msgid "# (hash)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:2388 ../Doc/library/stdtypes.rst:3606 +msgid "space" +msgstr "" + +#: ../Doc/library/stdtypes.rst:2504 +#, fuzzy +msgid "binary sequence types" +msgstr "Tipos de secuencia inmutables" + +#: ../Doc/library/stdtypes.rst:2512 +#, fuzzy +msgid "memoryview" +msgstr "Vistas de memoria" + +#: ../Doc/library/stdtypes.rst:2512 +msgid "array" +msgstr "" + +#: ../Doc/library/stdtypes.rst:3385 +msgid "bytes.splitlines method" +msgstr "" + +#: ../Doc/library/stdtypes.rst:3385 +msgid "bytearray.splitlines method" +msgstr "" + +#: ../Doc/library/stdtypes.rst:3531 +#, fuzzy +msgid "formatting" +msgstr "Operación" + +#: ../Doc/library/stdtypes.rst:3531 +msgid "bytes (%)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:3531 +#, fuzzy +msgid "bytearray (%)" +msgstr "Objetos de tipo *Bytearray*" + +#: ../Doc/library/stdtypes.rst:3531 +#, fuzzy +msgid "interpolation" +msgstr "Tabulación de línea" + +#: ../Doc/library/stdtypes.rst:4218 +msgid "set" +msgstr "" + +#: ../Doc/library/stdtypes.rst:4419 +#, fuzzy +msgid "mapping" +msgstr "Significado" + +#: ../Doc/library/stdtypes.rst:4419 +#, fuzzy +msgid "dictionary" +msgstr "Objetos tipos vista de diccionario" + +#: ../Doc/library/stdtypes.rst:4502 +msgid "__missing__()" +msgstr "" + +#: ../Doc/library/stdtypes.rst:4809 +#, fuzzy +msgid "context manager" +msgstr "Tipos gestores de contexto" + +#: ../Doc/library/stdtypes.rst:4809 +#, fuzzy +msgid "context management protocol" +msgstr "Tipos gestores de contexto" + +#: ../Doc/library/stdtypes.rst:4809 +#, fuzzy +msgid "context management" +msgstr "Tipos gestores de contexto" + +#: ../Doc/library/stdtypes.rst:4882 +#, fuzzy +msgid "annotation" +msgstr "Operación" + +#: ../Doc/library/stdtypes.rst:4882 +msgid "type annotation; type hint" +msgstr "" + +#: ../Doc/library/stdtypes.rst:4894 +#, fuzzy +msgid "GenericAlias" +msgstr "Tipo Alias Genérico" + +#: ../Doc/library/stdtypes.rst:4894 +msgid "Generic" +msgstr "" + +#: ../Doc/library/stdtypes.rst:4894 +#, fuzzy +msgid "Alias" +msgstr "Listas" + +#: ../Doc/library/stdtypes.rst:5149 +#, fuzzy +msgid "Union" +msgstr "Funciones" + +#: ../Doc/library/stdtypes.rst:5149 +#, fuzzy +msgid "union" +msgstr "Funciones" + +#: ../Doc/library/stdtypes.rst:5317 +#, fuzzy +msgid "method" +msgstr "Métodos" + +#: ../Doc/library/stdtypes.rst:5356 +msgid "code" +msgstr "" + +#: ../Doc/library/stdtypes.rst:5356 +#, fuzzy +msgid "code object" +msgstr "Objetos código" + +#: ../Doc/library/stdtypes.rst:5363 +msgid "compile" +msgstr "" + +#: ../Doc/library/stdtypes.rst:5363 +msgid "__code__ (function object attribute)" +msgstr "" + +#: ../Doc/library/stdtypes.rst:5377 +msgid "exec" +msgstr "" + +#: ../Doc/library/stdtypes.rst:5377 +#, fuzzy +msgid "eval" +msgstr "igual que" + +#: ../Doc/library/stdtypes.rst:5416 +msgid "..." +msgstr "" + +#: ../Doc/library/stdtypes.rst:5416 +msgid "ellipsis literal" +msgstr "" + +#~ msgid "if *x* is false, then *y*, else *x*" +#~ msgstr "si *x* es falso, entonces *y*, si no, *x*" + +#~ msgid "" +#~ "By default, the *errors* argument is not checked for best performances, " +#~ "but only used at the first encoding error. Enable the :ref:`Python " +#~ "Development Mode `, or use a :ref:`debug build ` to " +#~ "check *errors*." +#~ msgstr "" +#~ "Por defecto, el argumento *errors* no se verifica para mejor rendimiento, " +#~ "solo se usa con el primer error de codificación encontrado. Se puede " +#~ "habilitar el :ref:`modo de desarrollo de Python `, o utilizar " +#~ "una :ref:`compilación de depuración ` para verificar " +#~ "*errors*." + +#~ msgid "Support for keyword arguments added." +#~ msgstr "Añade soporte para el uso de parámetros por nombre." + +# Hay que ver si estas referencias se han traducido +#~ msgid "" +#~ "Return a string decoded from the given bytes. Default encoding is " +#~ "``'utf-8'``. *errors* may be given to set a different error handling " +#~ "scheme. The default for *errors* is ``'strict'``, meaning that encoding " +#~ "errors raise a :exc:`UnicodeError`. Other possible values are " +#~ "``'ignore'``, ``'replace'`` and any other name registered via :func:" +#~ "`codecs.register_error`, see section :ref:`error-handlers`. For a list of " +#~ "possible encodings, see section :ref:`standard-encodings`." +#~ msgstr "" +#~ "Retorna una cadena de caracteres decodificada a partir de la secuencia de " +#~ "bytes. La codificación por defecto es ``'utf-8'``. El parámetro *errors* " +#~ "puede definir diferentes estrategias de gestión de errores. El valor por " +#~ "defecto de *errors* es ``'strict'``, que hace que cualquier error de la " +#~ "decodificación lanza una excepción de tipo :exc:`UnicodeError`. Otros " +#~ "valores posibles son ``'ignore'``, ``'replace'`` y cualquier otro nombre " +#~ "definido mediante la función :func:`codecs.register_error`, véase la " +#~ "sección :ref:`error-handlers`. Para un listado de todos los valores de " +#~ "codificación posibles, véase :ref:`standard-encodings`." + +#~ msgid "" +#~ "By default, the *errors* argument is not checked for best performances, " +#~ "but only used at the first decoding error. Enable the :ref:`Python " +#~ "Development Mode `, or use a :ref:`debug build ` to " +#~ "check *errors*." +#~ msgstr "" +#~ "Por defecto, el argumento *errors* no se verifica para mejor rendimiento, " +#~ "solo se usa con el primer error de codificación encontrado. Se puede " +#~ "habilitar el :ref:`modo de desarrollo de Python `, o utilizar " +#~ "una :ref:`compilación de depuración ` para verificar " +#~ "*errors*." + +#~ msgid "" +#~ "``len(view)`` is equal to the length of :class:`~memoryview.tolist`. If " +#~ "``view.ndim = 0``, the length is 1. If ``view.ndim = 1``, the length is " +#~ "equal to the number of elements in the view. For higher dimensions, the " +#~ "length is equal to the length of the nested list representation of the " +#~ "view. The :class:`~memoryview.itemsize` attribute will give you the " +#~ "number of bytes in a single element." +#~ msgstr "" +#~ "El resultado de ``len(view)`` es igual a la longitud de :class:" +#~ "`~memoryview.tolist`. Si ``view.ndim = 0``, la longitud es 1. Si ``view." +#~ "ndim = 1``, la longitud es igual al número de elementos en la vista. Para " +#~ "dimensiones superiores, la longitud es igual a la de la representación " +#~ "como lista anidada de la vista. El atributo :class:`~memoryview.itemsize` " +#~ "contiene el número de bytes que ocupa un único elemento." + +#~ msgid "" +#~ "Boolean values are the two constant objects ``False`` and ``True``. They " +#~ "are used to represent truth values (although other values can also be " +#~ "considered false or true). In numeric contexts (for example when used as " +#~ "the argument to an arithmetic operator), they behave like the integers 0 " +#~ "and 1, respectively. The built-in function :func:`bool` can be used to " +#~ "convert any value to a Boolean, if the value can be interpreted as a " +#~ "truth value (see section :ref:`truth` above)." +#~ msgstr "" +#~ "Los valores booleanos o lógicos son los dos objetos constantes ``False`` " +#~ "y ``True``. Se usan para representar valores de verdad (aunque otros " +#~ "valores pueden ser considerados también como verdaderos o falsos). En " +#~ "contextos numéricos (por ejemplo, cuando se usan como argumentos de una " +#~ "operación aritmética) se comportan como los números enteros 0 y 1, " +#~ "respectivamente. Se puede usar la función incorporada :func:`bool` para " +#~ "convertir valores de cualquiera tipo a Booleanos, si dicho valor puede " +#~ "ser interpretado como valores verdaderos/falsos (véase la sección :ref:" +#~ "`truth` anterior)." + +#~ msgid "They are written as ``False`` and ``True``, respectively." +#~ msgstr "Se escriben ``False`` y ``True``, respectivamente." diff --git a/library/string.po b/library/string.po index 0783b5e903..17a1554b82 100644 --- a/library/string.po +++ b/library/string.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-03-17 19:35-0500\n" "Last-Translator: Adolfo Hristo David Roque Gámez \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/string.rst:2 msgid ":mod:`string` --- Common string operations" @@ -372,19 +371,21 @@ msgid "See also the :ref:`formatspec` section." msgstr "Véase también la sección :ref:`formatspec`." #: ../Doc/library/string.rst:228 +#, fuzzy msgid "" "The *field_name* itself begins with an *arg_name* that is either a number or " "a keyword. If it's a number, it refers to a positional argument, and if " -"it's a keyword, it refers to a named keyword argument. If the numerical " -"arg_names in a format string are 0, 1, 2, ... in sequence, they can all be " -"omitted (not just some) and the numbers 0, 1, 2, ... will be automatically " -"inserted in that order. Because *arg_name* is not quote-delimited, it is not " -"possible to specify arbitrary dictionary keys (e.g., the strings ``'10'`` or " -"``':-]'``) within a format string. The *arg_name* can be followed by any " -"number of index or attribute expressions. An expression of the form ``'." -"name'`` selects the named attribute using :func:`getattr`, while an " -"expression of the form ``'[index]'`` does an index lookup using :func:" -"`__getitem__`." +"it's a keyword, it refers to a named keyword argument. An *arg_name* is " +"treated as a number if a call to :meth:`str.isdecimal` on the string would " +"return true. If the numerical arg_names in a format string are 0, 1, 2, ... " +"in sequence, they can all be omitted (not just some) and the numbers 0, 1, " +"2, ... will be automatically inserted in that order. Because *arg_name* is " +"not quote-delimited, it is not possible to specify arbitrary dictionary keys " +"(e.g., the strings ``'10'`` or ``':-]'``) within a format string. The " +"*arg_name* can be followed by any number of index or attribute expressions. " +"An expression of the form ``'.name'`` selects the named attribute using :" +"func:`getattr`, while an expression of the form ``'[index]'`` does an index " +"lookup using :meth:`~object.__getitem__`." msgstr "" "El *field_name* (nombre de campo) comienza con un *arg_name* que es un " "número o una palabra clave. Si es un número, hace referencia a un argumento " @@ -401,7 +402,7 @@ msgstr "" "forma ``'[index]'`` realiza una búsqueda de índice mediante :func:" "`__getitem__`." -#: ../Doc/library/string.rst:240 +#: ../Doc/library/string.rst:242 msgid "" "The positional argument specifiers can be omitted for :meth:`str.format`, so " "``'{} {}'.format(a, b)`` is equivalent to ``'{0} {1}'.format(a, b)``." @@ -410,25 +411,26 @@ msgstr "" "`str.format`, así ``'{} {}'.format(a, b)`` es equivalente a ``'{0} {1}'." "format(a, b)``." -#: ../Doc/library/string.rst:244 +#: ../Doc/library/string.rst:246 msgid "" "The positional argument specifiers can be omitted for :class:`Formatter`." msgstr "" "Para la clase :class:`Formatter`, los especificadores de argumento " "posicional pueden ser omitidos." -#: ../Doc/library/string.rst:247 +#: ../Doc/library/string.rst:249 msgid "Some simple format string examples::" msgstr "Algunos ejemplos simples de cadena de formato:" -#: ../Doc/library/string.rst:256 +#: ../Doc/library/string.rst:258 +#, fuzzy msgid "" "The *conversion* field causes a type coercion before formatting. Normally, " -"the job of formatting a value is done by the :meth:`__format__` method of " -"the value itself. However, in some cases it is desirable to force a type to " -"be formatted as a string, overriding its own definition of formatting. By " -"converting the value to a string before calling :meth:`__format__`, the " -"normal formatting logic is bypassed." +"the job of formatting a value is done by the :meth:`~object.__format__` " +"method of the value itself. However, in some cases it is desirable to force " +"a type to be formatted as a string, overriding its own definition of " +"formatting. By converting the value to a string before calling :meth:" +"`~object.__format__`, the normal formatting logic is bypassed." msgstr "" "El campo *conversion* causa una coerción de tipo antes del formateo. " "Normalmente, el formateo es hecho el método :meth:`__format__` del valor " @@ -437,7 +439,7 @@ msgstr "" "formateo. Cuando se convierte el valor a una cadena de caracteres antes de " "llamar al método :meth:`__format__`, la lógica normal de formateo es evitada." -#: ../Doc/library/string.rst:263 +#: ../Doc/library/string.rst:265 msgid "" "Three conversion flags are currently supported: ``'!s'`` which calls :func:" "`str` on the value, ``'!r'`` which calls :func:`repr` and ``'!a'`` which " @@ -447,11 +449,11 @@ msgstr "" "a :func:`str` con el valor; ``'!r'``, que llama a :func:`repr`; y ``'!a'`` " "que llama a :func:`ascii`." -#: ../Doc/library/string.rst:267 +#: ../Doc/library/string.rst:269 msgid "Some examples::" msgstr "Algunos ejemplos::" -#: ../Doc/library/string.rst:273 +#: ../Doc/library/string.rst:275 msgid "" "The *format_spec* field contains a specification of how the value should be " "presented, including such details as field width, alignment, padding, " @@ -463,7 +465,7 @@ msgstr "" "precisión decimal, etc. Cada tipo de valor puede definir su propio \"mini " "lenguaje de formateo\" o interpretación de *format_spec*." -#: ../Doc/library/string.rst:278 +#: ../Doc/library/string.rst:280 msgid "" "Most built-in types support a common formatting mini-language, which is " "described in the next section." @@ -471,7 +473,7 @@ msgstr "" "La mayoría de los tipos integrados admiten un formateo común de mini-idioma " "descrito en la siguiente sección." -#: ../Doc/library/string.rst:281 +#: ../Doc/library/string.rst:283 msgid "" "A *format_spec* field can also include nested replacement fields within it. " "These nested replacement fields may contain a field name, conversion flag " @@ -487,15 +489,15 @@ msgstr "" "*format_spec* se sustituyen antes de que la cadena *format_spec* se " "interprete. Esto permite especificar dinámicamente el formato de un valor." -#: ../Doc/library/string.rst:288 +#: ../Doc/library/string.rst:290 msgid "See the :ref:`formatexamples` section for some examples." msgstr "Para más ejemplos, véase la sección :ref:`formatexamples`." -#: ../Doc/library/string.rst:294 +#: ../Doc/library/string.rst:296 msgid "Format Specification Mini-Language" msgstr "Especificación de formato Mini-Lenguaje" -#: ../Doc/library/string.rst:296 +#: ../Doc/library/string.rst:298 msgid "" "\"Format specifications\" are used within replacement fields contained " "within a format string to define how individual values are presented (see :" @@ -510,7 +512,7 @@ msgstr "" "func:`format`. Cada tipo formateable puede definir cómo interpretar la " "especificación de formato." -#: ../Doc/library/string.rst:303 +#: ../Doc/library/string.rst:305 msgid "" "Most built-in types implement the following options for format " "specifications, although some of the formatting options are only supported " @@ -520,7 +522,7 @@ msgstr "" "especificaciones de formato, aunque algunas de las opciones de formateo sólo " "son posibles con los tipos numéricos." -#: ../Doc/library/string.rst:306 +#: ../Doc/library/string.rst:308 msgid "" "A general convention is that an empty format specification produces the same " "result as if you had called :func:`str` on the value. A non-empty format " @@ -530,11 +532,11 @@ msgstr "" "mismo resultado que llamar a la función :func:`str` con el valor. Una " "especificación no vacía típicamente modifica el resultado." -#: ../Doc/library/string.rst:310 +#: ../Doc/library/string.rst:312 msgid "The general form of a *standard format specifier* is:" msgstr "La forma general de un *especificador estándar de formato* es:" -#: ../Doc/library/string.rst:322 +#: ../Doc/library/string.rst:324 msgid "" "If a valid *align* value is specified, it can be preceded by a *fill* " "character that can be any character and defaults to a space if omitted. It " @@ -552,26 +554,26 @@ msgstr "" "posible insertar una llave con un campo de reemplazo anidado. Esta " "limitación no afecta a la función :func:`format`." -#: ../Doc/library/string.rst:331 +#: ../Doc/library/string.rst:333 msgid "The meaning of the various alignment options is as follows:" msgstr "" "El significado de las distintas opciones de alineación es el siguiente:" -#: ../Doc/library/string.rst:340 ../Doc/library/string.rst:371 +#: ../Doc/library/string.rst:342 ../Doc/library/string.rst:373 msgid "Option" msgstr "Opción" -#: ../Doc/library/string.rst:340 ../Doc/library/string.rst:371 -#: ../Doc/library/string.rst:454 ../Doc/library/string.rst:465 -#: ../Doc/library/string.rst:500 +#: ../Doc/library/string.rst:342 ../Doc/library/string.rst:373 +#: ../Doc/library/string.rst:456 ../Doc/library/string.rst:467 +#: ../Doc/library/string.rst:502 msgid "Meaning" msgstr "Significado" -#: ../Doc/library/string.rst:342 +#: ../Doc/library/string.rst:344 msgid "``'<'``" msgstr "``'<'``" -#: ../Doc/library/string.rst:342 +#: ../Doc/library/string.rst:344 msgid "" "Forces the field to be left-aligned within the available space (this is the " "default for most objects)." @@ -579,11 +581,11 @@ msgstr "" "Fuerza el campo a ser alineado a la izquierda dentro del espacio disponible " "(éste es el comportamiento por defecto para la mayoría de los objetos)." -#: ../Doc/library/string.rst:345 +#: ../Doc/library/string.rst:347 msgid "``'>'``" msgstr "``'>'``" -#: ../Doc/library/string.rst:345 +#: ../Doc/library/string.rst:347 msgid "" "Forces the field to be right-aligned within the available space (this is the " "default for numbers)." @@ -591,11 +593,11 @@ msgstr "" "Fuerza el campo a ser alineado a la derecha dentro del espacio disponible " "(éste es el comportamiento por defecto para números)." -#: ../Doc/library/string.rst:348 +#: ../Doc/library/string.rst:350 msgid "``'='``" msgstr "``'='``" -#: ../Doc/library/string.rst:348 +#: ../Doc/library/string.rst:350 msgid "" "Forces the padding to be placed after the sign (if any) but before the " "digits. This is used for printing fields in the form '+000000120'. This " @@ -608,15 +610,15 @@ msgstr "" "numéricos. Se convierte en el valor predeterminado cuando '0' precede " "inmediatamente al ancho del campo." -#: ../Doc/library/string.rst:354 +#: ../Doc/library/string.rst:356 msgid "``'^'``" msgstr "``'^'``" -#: ../Doc/library/string.rst:354 +#: ../Doc/library/string.rst:356 msgid "Forces the field to be centered within the available space." msgstr "Fuerza el centrado del campo dentro del espacio disponible." -#: ../Doc/library/string.rst:358 +#: ../Doc/library/string.rst:360 msgid "" "Note that unless a minimum field width is defined, the field width will " "always be the same size as the data to fill it, so that the alignment option " @@ -626,7 +628,7 @@ msgstr "" "campo siempre tendrá el mismo tamaño que los datos para rellenarlo, de modo " "que la opción de alineación no tiene ningún significado en este caso." -#: ../Doc/library/string.rst:362 +#: ../Doc/library/string.rst:364 msgid "" "The *sign* option is only valid for number types, and can be one of the " "following:" @@ -634,11 +636,11 @@ msgstr "" "La opción *sign* (signo) sólo es válida para los tipos numéricos y puede ser " "una de las siguientes:" -#: ../Doc/library/string.rst:373 +#: ../Doc/library/string.rst:375 msgid "``'+'``" msgstr "``'+'``" -#: ../Doc/library/string.rst:373 +#: ../Doc/library/string.rst:375 msgid "" "indicates that a sign should be used for both positive as well as negative " "numbers." @@ -646,11 +648,11 @@ msgstr "" "indica que el signo debe ser usado tanto para los números positivos como " "negativos." -#: ../Doc/library/string.rst:376 +#: ../Doc/library/string.rst:378 msgid "``'-'``" msgstr "``'-'``" -#: ../Doc/library/string.rst:376 +#: ../Doc/library/string.rst:378 msgid "" "indicates that a sign should be used only for negative numbers (this is the " "default behavior)." @@ -658,11 +660,11 @@ msgstr "" "indica que el signo debe ser usado sólo para números negativos (éste es el " "comportamiento por defecto)." -#: ../Doc/library/string.rst:379 +#: ../Doc/library/string.rst:367 ../Doc/library/string.rst:381 msgid "space" msgstr "espacio" -#: ../Doc/library/string.rst:379 +#: ../Doc/library/string.rst:381 msgid "" "indicates that a leading space should be used on positive numbers, and a " "minus sign on negative numbers." @@ -670,7 +672,7 @@ msgstr "" "indica que el espacio inicial debe ser usado para números positivos y el " "signo menos para números negativos." -#: ../Doc/library/string.rst:386 +#: ../Doc/library/string.rst:388 msgid "" "The ``'z'`` option coerces negative zero floating-point values to positive " "zero after rounding to the format precision. This option is only valid for " @@ -680,11 +682,11 @@ msgstr "" "en cero positivos después de redondear al formato de precisión. Esta opción " "solo es válida para los tipos de presentación de coma flotante." -#: ../Doc/library/string.rst:390 +#: ../Doc/library/string.rst:392 msgid "Added the ``'z'`` option (see also :pep:`682`)." msgstr "Se agregó la opción ``'z'`` (véase también :pep:`682`)." -#: ../Doc/library/string.rst:395 +#: ../Doc/library/string.rst:397 msgid "" "The ``'#'`` option causes the \"alternate form\" to be used for the " "conversion. The alternate form is defined differently for different types. " @@ -709,7 +711,7 @@ msgstr "" "conversiones sólo si un dígito lo sigue. Además, para las conversiones " "``'g'`` y ``'G'``, los ceros finales no se eliminan del resultado." -#: ../Doc/library/string.rst:409 +#: ../Doc/library/string.rst:411 msgid "" "The ``','`` option signals the use of a comma for a thousands separator. For " "a locale aware separator, use the ``'n'`` integer presentation type instead." @@ -718,11 +720,11 @@ msgstr "" "cambio, para un separador consciente de localización (*local aware*), usar " "el tipo de presentación de enteros ``'n'``." -#: ../Doc/library/string.rst:413 +#: ../Doc/library/string.rst:415 msgid "Added the ``','`` option (see also :pep:`378`)." msgstr "Se agregó la opción ``','`` (véase también :pep:`378`)." -#: ../Doc/library/string.rst:418 +#: ../Doc/library/string.rst:420 msgid "" "The ``'_'`` option signals the use of an underscore for a thousands " "separator for floating point presentation types and for integer presentation " @@ -736,11 +738,11 @@ msgstr "" "``'x'`` y ``'X'``, el guión bajo se insertará cada 4 dígitos. Para otros " "tipos de presentación, especificar esta opción es un error." -#: ../Doc/library/string.rst:425 +#: ../Doc/library/string.rst:427 msgid "Added the ``'_'`` option (see also :pep:`515`)." msgstr "Se agregó la opción ``'_'`` (véase también :pep:`515`)." -#: ../Doc/library/string.rst:428 +#: ../Doc/library/string.rst:430 msgid "" "*width* is a decimal integer defining the minimum total field width, " "including any prefixes, separators, and other formatting characters. If not " @@ -750,7 +752,7 @@ msgstr "" "incluyendo prefijos, separadores y otros caracteres de formateo. Si no se " "especifica, el ancho de campo será determinado por el contenido." -#: ../Doc/library/string.rst:432 +#: ../Doc/library/string.rst:434 msgid "" "When no explicit alignment is given, preceding the *width* field by a zero " "(``'0'``) character enables sign-aware zero-padding for numeric types. This " @@ -762,7 +764,7 @@ msgstr "" "reconocimiento de signos para los tipos numéricos. Esto equivale a un " "carácter *fill* de ``'0'`` con un tipo de *alignment* de ``'='``." -#: ../Doc/library/string.rst:437 +#: ../Doc/library/string.rst:439 msgid "" "Preceding the *width* field by ``'0'`` no longer affects the default " "alignment for strings." @@ -770,7 +772,7 @@ msgstr "" "Anteponer el campo *width* por ``'0'`` ya no afecta el alineamiento por " "defecto para cadenas de caracteres." -#: ../Doc/library/string.rst:441 +#: ../Doc/library/string.rst:443 msgid "" "The *precision* is a decimal integer indicating how many digits should be " "displayed after the decimal point for presentation types ``'f'`` and " @@ -788,55 +790,55 @@ msgstr "" "utilizarán del contenido del campo. La *precisión* no está permitida para " "los tipos de presentación de enteros." -#: ../Doc/library/string.rst:449 +#: ../Doc/library/string.rst:451 msgid "Finally, the *type* determines how the data should be presented." msgstr "Finalmente, *type* (el tipo) determina como presentar los datos." -#: ../Doc/library/string.rst:451 +#: ../Doc/library/string.rst:453 msgid "The available string presentation types are:" msgstr "Los tipos de presentación cadena disponibles son:" -#: ../Doc/library/string.rst:454 ../Doc/library/string.rst:465 -#: ../Doc/library/string.rst:500 +#: ../Doc/library/string.rst:456 ../Doc/library/string.rst:467 +#: ../Doc/library/string.rst:502 msgid "Type" msgstr "Tipo" -#: ../Doc/library/string.rst:456 +#: ../Doc/library/string.rst:458 msgid "``'s'``" msgstr "``'s'``" -#: ../Doc/library/string.rst:456 +#: ../Doc/library/string.rst:458 msgid "String format. This is the default type for strings and may be omitted." msgstr "" "Formato de cadena de caracteres. Éste es el tipo por defecto y puede ser " "omitido." -#: ../Doc/library/string.rst:459 ../Doc/library/string.rst:488 -#: ../Doc/library/string.rst:575 +#: ../Doc/library/string.rst:461 ../Doc/library/string.rst:490 +#: ../Doc/library/string.rst:577 msgid "None" msgstr "None" -#: ../Doc/library/string.rst:459 +#: ../Doc/library/string.rst:461 msgid "The same as ``'s'``." msgstr "Lo mismo que ``'s'``." -#: ../Doc/library/string.rst:462 +#: ../Doc/library/string.rst:464 msgid "The available integer presentation types are:" msgstr "Los tipos disponibles para la presentación de enteros son:" -#: ../Doc/library/string.rst:467 +#: ../Doc/library/string.rst:469 msgid "``'b'``" msgstr "``'b'``" -#: ../Doc/library/string.rst:467 +#: ../Doc/library/string.rst:469 msgid "Binary format. Outputs the number in base 2." msgstr "Formato binario. retorna el número en base 2." -#: ../Doc/library/string.rst:469 +#: ../Doc/library/string.rst:471 msgid "``'c'``" msgstr "``'c'``" -#: ../Doc/library/string.rst:469 +#: ../Doc/library/string.rst:471 msgid "" "Character. Converts the integer to the corresponding unicode character " "before printing." @@ -844,27 +846,27 @@ msgstr "" "Carácter. Convierte el entero en el carácter unicode correspondiente antes " "de imprimirlo." -#: ../Doc/library/string.rst:472 +#: ../Doc/library/string.rst:474 msgid "``'d'``" msgstr "``'d'``" -#: ../Doc/library/string.rst:472 +#: ../Doc/library/string.rst:474 msgid "Decimal Integer. Outputs the number in base 10." msgstr "Decimal entero. retorna el número en base 10." -#: ../Doc/library/string.rst:474 +#: ../Doc/library/string.rst:476 msgid "``'o'``" msgstr "``'o'``" -#: ../Doc/library/string.rst:474 +#: ../Doc/library/string.rst:476 msgid "Octal format. Outputs the number in base 8." msgstr "Formato octal. retorna el número en base 8." -#: ../Doc/library/string.rst:476 +#: ../Doc/library/string.rst:478 msgid "``'x'``" msgstr "``'x'``" -#: ../Doc/library/string.rst:476 +#: ../Doc/library/string.rst:478 msgid "" "Hex format. Outputs the number in base 16, using lower-case letters for the " "digits above 9." @@ -872,11 +874,11 @@ msgstr "" "Formato hexadecimal. retorna el número en base 16, utilizando letras " "minúsculas para los dígitos superiores a 9." -#: ../Doc/library/string.rst:479 +#: ../Doc/library/string.rst:481 msgid "``'X'``" msgstr "``'X'``" -#: ../Doc/library/string.rst:479 +#: ../Doc/library/string.rst:481 msgid "" "Hex format. Outputs the number in base 16, using upper-case letters for the " "digits above 9. In case ``'#'`` is specified, the prefix ``'0x'`` will be " @@ -886,11 +888,11 @@ msgstr "" "mayúsculas para los dígitos superiores a 9. En caso de que ``'#'`` se " "especifique, el prefijo ``'0x'`` convertirá en ``'0X'`` también." -#: ../Doc/library/string.rst:484 ../Doc/library/string.rst:568 +#: ../Doc/library/string.rst:486 ../Doc/library/string.rst:570 msgid "``'n'``" msgstr "``'n'``" -#: ../Doc/library/string.rst:484 +#: ../Doc/library/string.rst:486 msgid "" "Number. This is the same as ``'d'``, except that it uses the current locale " "setting to insert the appropriate number separator characters." @@ -898,11 +900,11 @@ msgstr "" "Número. Es lo mismo que ``'d'``, excepto que usa la configuración regional " "actual para insertar el número apropiado de caracteres separadores." -#: ../Doc/library/string.rst:488 +#: ../Doc/library/string.rst:490 msgid "The same as ``'d'``." msgstr "Lo mismo que ``'d'``." -#: ../Doc/library/string.rst:491 +#: ../Doc/library/string.rst:493 msgid "" "In addition to the above presentation types, integers can be formatted with " "the floating point presentation types listed below (except ``'n'`` and " @@ -915,7 +917,7 @@ msgstr "" "utiliza para convertir el entero en un número de punto flotante antes de ser " "formateado." -#: ../Doc/library/string.rst:496 +#: ../Doc/library/string.rst:498 msgid "" "The available presentation types for :class:`float` and :class:`~decimal." "Decimal` values are:" @@ -923,11 +925,11 @@ msgstr "" "Los tipos de presentación disponibles para valores :class:`float` y :class:" "`~decimal.Decimal` son:" -#: ../Doc/library/string.rst:502 +#: ../Doc/library/string.rst:504 msgid "``'e'``" msgstr "``'e'``" -#: ../Doc/library/string.rst:502 +#: ../Doc/library/string.rst:504 msgid "" "Scientific notation. For a given precision ``p``, formats the number in " "scientific notation with the letter 'e' separating the coefficient from the " @@ -947,11 +949,11 @@ msgstr "" "para :class:`~decimal.Decimal`. Si no hay dígitos después del punto decimal, " "el punto decimal también es removido a no ser que se use la opción ``#``." -#: ../Doc/library/string.rst:514 +#: ../Doc/library/string.rst:516 msgid "``'E'``" msgstr "``'E'``" -#: ../Doc/library/string.rst:514 +#: ../Doc/library/string.rst:516 msgid "" "Scientific notation. Same as ``'e'`` except it uses an upper case 'E' as the " "separator character." @@ -959,11 +961,11 @@ msgstr "" "Notación científica. Igual que ``'e'`` excepto que utiliza una 'E' mayúscula " "como carácter separador." -#: ../Doc/library/string.rst:517 +#: ../Doc/library/string.rst:519 msgid "``'f'``" msgstr "``'f'``" -#: ../Doc/library/string.rst:517 +#: ../Doc/library/string.rst:519 msgid "" "Fixed-point notation. For a given precision ``p``, formats the number as a " "decimal number with exactly ``p`` digits following the decimal point. With " @@ -981,11 +983,11 @@ msgstr "" "para :class:`~decimal.Decimal`. Si no hay dígitos después del punto decimal, " "el punto decimal también es removido a no ser que se use la opción ``#``." -#: ../Doc/library/string.rst:527 +#: ../Doc/library/string.rst:529 msgid "``'F'``" msgstr "``'F'``" -#: ../Doc/library/string.rst:527 +#: ../Doc/library/string.rst:529 msgid "" "Fixed-point notation. Same as ``'f'``, but converts ``nan`` to ``NAN`` and " "``inf`` to ``INF``." @@ -993,11 +995,11 @@ msgstr "" "Notación de punto fijo. Igual que ``'f'``, pero convierte (nulos) ``nan`` a " "``NAN`` e ``inf`` a ``INF``." -#: ../Doc/library/string.rst:530 +#: ../Doc/library/string.rst:532 msgid "``'g'``" msgstr "``'g'``" -#: ../Doc/library/string.rst:530 +#: ../Doc/library/string.rst:532 msgid "" "General format. For a given precision ``p >= 1``, this rounds the number to " "``p`` significant digits and then formats the result in either fixed-point " @@ -1009,7 +1011,7 @@ msgstr "" "punto fijo o en notación científica, dependiendo de su magnitud. Una " "precisión de ``0`` es tratada como equivalente a una precisión de ``1``." -#: ../Doc/library/string.rst:537 +#: ../Doc/library/string.rst:539 msgid "" "The precise rules are as follows: suppose that the result formatted with " "presentation type ``'e'`` and precision ``p-1`` would have exponent " @@ -1031,7 +1033,7 @@ msgstr "" "eliminan del significado, y el punto decimal también se elimina si no hay " "dígitos restantes que lo sigan, a menos que se utilice la opción ``'#'``." -#: ../Doc/library/string.rst:550 +#: ../Doc/library/string.rst:552 msgid "" "With no precision given, uses a precision of ``6`` significant digits for :" "class:`float`. For :class:`~decimal.Decimal`, the coefficient of the result " @@ -1047,7 +1049,7 @@ msgstr "" "valores donde el valor posicional del dígito menos significativo es mayor a " "1, de otra forma se usa notación de punto fijo." -#: ../Doc/library/string.rst:559 +#: ../Doc/library/string.rst:561 msgid "" "Positive and negative infinity, positive and negative zero, and nans, are " "formatted as ``inf``, ``-inf``, ``0``, ``-0`` and ``nan`` respectively, " @@ -1057,11 +1059,11 @@ msgstr "" "respectivamente formateados como ``inf``, ``-inf``, ``0``, ``-0`` y ``nan``, " "independientemente de la precisión." -#: ../Doc/library/string.rst:564 +#: ../Doc/library/string.rst:566 msgid "``'G'``" msgstr "``'G'``" -#: ../Doc/library/string.rst:564 +#: ../Doc/library/string.rst:566 msgid "" "General format. Same as ``'g'`` except switches to ``'E'`` if the number " "gets too large. The representations of infinity and NaN are uppercased, too." @@ -1070,7 +1072,7 @@ msgstr "" "se vuelve muy grande. Las representaciones de infinito y NaN también se " "convierten a mayúsculas." -#: ../Doc/library/string.rst:568 +#: ../Doc/library/string.rst:570 msgid "" "Number. This is the same as ``'g'``, except that it uses the current locale " "setting to insert the appropriate number separator characters." @@ -1078,11 +1080,11 @@ msgstr "" "Número. Es lo mismo que ``'g'``, excepto que usa la configuración local para " "insertar los caracteres separadores de número apropiados." -#: ../Doc/library/string.rst:572 +#: ../Doc/library/string.rst:574 msgid "``'%'``" msgstr "``'%'``" -#: ../Doc/library/string.rst:572 +#: ../Doc/library/string.rst:574 msgid "" "Percentage. Multiplies the number by 100 and displays in fixed (``'f'``) " "format, followed by a percent sign." @@ -1090,7 +1092,7 @@ msgstr "" "Porcentaje. Multiplica el número por 100 y lo muestra en formato fijo " "(``'f'``) seguido del signo porcentaje." -#: ../Doc/library/string.rst:575 +#: ../Doc/library/string.rst:577 msgid "" "For :class:`float` this is the same as ``'g'``, except that when fixed-point " "notation is used to format the result, it always includes at least one digit " @@ -1102,7 +1104,7 @@ msgstr "" "un dígito pasado el punto decimal. La precisión usada es tan larga como sea " "necesaria para representar el valor dado fielmente." -#: ../Doc/library/string.rst:581 +#: ../Doc/library/string.rst:583 msgid "" "For :class:`~decimal.Decimal`, this is the same as either ``'g'`` or ``'G'`` " "depending on the value of ``context.capitals`` for the current decimal " @@ -1112,7 +1114,7 @@ msgstr "" "dependiendo del valor de ``context.capitals`` para el contexto decimal " "actual." -#: ../Doc/library/string.rst:585 +#: ../Doc/library/string.rst:587 msgid "" "The overall effect is to match the output of :func:`str` as altered by the " "other format modifiers." @@ -1120,11 +1122,11 @@ msgstr "" "El efecto general es el de igualar la salida de :func:`str` al ser alterada " "por los otros modificadores de formato." -#: ../Doc/library/string.rst:593 +#: ../Doc/library/string.rst:595 msgid "Format examples" msgstr "Ejemplos de formateo" -#: ../Doc/library/string.rst:595 +#: ../Doc/library/string.rst:597 msgid "" "This section contains examples of the :meth:`str.format` syntax and " "comparison with the old ``%``-formatting." @@ -1132,7 +1134,7 @@ msgstr "" "Esta sección contiene ejemplos de la sintaxis :meth:`str.format` y " "comparaciones con el antiguo método de formateo usando ``%``." -#: ../Doc/library/string.rst:598 +#: ../Doc/library/string.rst:600 #, python-format msgid "" "In most of the cases the syntax is similar to the old ``%``-formatting, with " @@ -1143,7 +1145,7 @@ msgstr "" "con la adición de ``{}`` y con ``:`` utilizado en lugar de ``%``. Por " "ejemplo, ``'%03.2f'`` puede ser traducido como ``'{:03.2f}'``." -#: ../Doc/library/string.rst:602 +#: ../Doc/library/string.rst:604 msgid "" "The new format syntax also supports new and different options, shown in the " "following examples." @@ -1151,64 +1153,64 @@ msgstr "" "La nueva sintaxis de formato también soporta opciones diferentes y nuevas " "que se muestran en los ejemplos siguientes." -#: ../Doc/library/string.rst:605 +#: ../Doc/library/string.rst:607 msgid "Accessing arguments by position::" msgstr "Accediendo argumentos por posición::" -#: ../Doc/library/string.rst:618 +#: ../Doc/library/string.rst:620 msgid "Accessing arguments by name::" msgstr "Accediendo argumentos por nombre::" -#: ../Doc/library/string.rst:626 +#: ../Doc/library/string.rst:628 msgid "Accessing arguments' attributes::" msgstr "Accediendo los atributos de los argumentos::" -#: ../Doc/library/string.rst:641 +#: ../Doc/library/string.rst:643 msgid "Accessing arguments' items::" msgstr "Accediendo ítems de los argumentos::" -#: ../Doc/library/string.rst:647 +#: ../Doc/library/string.rst:649 #, python-format msgid "Replacing ``%s`` and ``%r``::" msgstr "Reemplazar ``%s`` y ``%r``::" -#: ../Doc/library/string.rst:652 +#: ../Doc/library/string.rst:654 msgid "Aligning the text and specifying a width::" msgstr "Alinear el texto y especificar el ancho::" -#: ../Doc/library/string.rst:663 +#: ../Doc/library/string.rst:665 #, python-format msgid "Replacing ``%+f``, ``%-f``, and ``% f`` and specifying a sign::" msgstr "Reemplazar ``%+f``, ``%-f``, y ``% f`` y especificar el signo::" -#: ../Doc/library/string.rst:672 +#: ../Doc/library/string.rst:674 #, python-format msgid "" "Replacing ``%x`` and ``%o`` and converting the value to different bases::" msgstr "" "Reemplazando ``%x`` y ``%o`` y convirtiendo el valor a diferentes bases::" -#: ../Doc/library/string.rst:681 +#: ../Doc/library/string.rst:683 msgid "Using the comma as a thousands separator::" msgstr "Usando la coma como separador de los miles::" -#: ../Doc/library/string.rst:686 +#: ../Doc/library/string.rst:688 msgid "Expressing a percentage::" msgstr "Expresar un porcentaje::" -#: ../Doc/library/string.rst:693 +#: ../Doc/library/string.rst:695 msgid "Using type-specific formatting::" msgstr "Uso del formateo específico de tipo::" -#: ../Doc/library/string.rst:700 +#: ../Doc/library/string.rst:702 msgid "Nesting arguments and more complex examples::" msgstr "Anidando argumentos y ejemplos más complejos::" -#: ../Doc/library/string.rst:734 +#: ../Doc/library/string.rst:736 msgid "Template strings" msgstr "Cadenas de plantillas" -#: ../Doc/library/string.rst:736 +#: ../Doc/library/string.rst:738 msgid "" "Template strings provide simpler string substitutions as described in :pep:" "`292`. A primary use case for template strings is for internationalization " @@ -1226,7 +1228,7 @@ msgstr "" "de plantilla para i18n, véase el paquete `flufl.i18n `_." -#: ../Doc/library/string.rst:746 +#: ../Doc/library/string.rst:748 msgid "" "Template strings support ``$``-based substitutions, using the following " "rules:" @@ -1234,11 +1236,11 @@ msgstr "" "Las cadenas de caracteres de plantilla admiten sustituciones basadas en " "``$`` de acuerdo a las siguientes reglas:" -#: ../Doc/library/string.rst:748 +#: ../Doc/library/string.rst:750 msgid "``$$`` is an escape; it is replaced with a single ``$``." msgstr "``$$`` es un escape. Es reemplazado con un único ``$``." -#: ../Doc/library/string.rst:750 +#: ../Doc/library/string.rst:752 msgid "" "``$identifier`` names a substitution placeholder matching a mapping key of " "``\"identifier\"``. By default, ``\"identifier\"`` is restricted to any " @@ -1255,7 +1257,7 @@ msgstr "" "primer carácter no identificador después del carácter ``$`` termina esta " "especificación de comodín." -#: ../Doc/library/string.rst:757 +#: ../Doc/library/string.rst:759 msgid "" "``${identifier}`` is equivalent to ``$identifier``. It is required when " "valid identifier characters follow the placeholder but are not part of the " @@ -1265,7 +1267,7 @@ msgstr "" "caracteres identificadores válidos siguen al comodín pero no son parte de " "él, por ejemplo ``\"${noun}ification\"``." -#: ../Doc/library/string.rst:761 +#: ../Doc/library/string.rst:763 msgid "" "Any other appearance of ``$`` in the string will result in a :exc:" "`ValueError` being raised." @@ -1273,7 +1275,7 @@ msgstr "" "Cualquier otra aparición de ``$`` en la cadena de caracteres resultará en " "una excepción :exc:`ValueError`." -#: ../Doc/library/string.rst:764 +#: ../Doc/library/string.rst:766 msgid "" "The :mod:`string` module provides a :class:`Template` class that implements " "these rules. The methods of :class:`Template` are:" @@ -1281,11 +1283,11 @@ msgstr "" "El módulo :mod:`string` provee una clase :class:`Template` que implementa " "esas reglas. Los métodos de :class:`Template` son:" -#: ../Doc/library/string.rst:770 +#: ../Doc/library/string.rst:772 msgid "The constructor takes a single argument which is the template string." msgstr "El constructor sólo lleva un argumento, la cadena plantilla." -#: ../Doc/library/string.rst:775 +#: ../Doc/library/string.rst:777 msgid "" "Performs the template substitution, returning a new string. *mapping* is " "any dictionary-like object with keys that match the placeholders in the " @@ -1301,7 +1303,7 @@ msgstr "" "son dados y hay elementos duplicados, los *placeholders* (comodines) de " "*kwds* tienen prioridad." -#: ../Doc/library/string.rst:784 +#: ../Doc/library/string.rst:786 msgid "" "Like :meth:`substitute`, except that if placeholders are missing from " "*mapping* and *kwds*, instead of raising a :exc:`KeyError` exception, the " @@ -1315,7 +1317,7 @@ msgstr "" "diferencia de :meth:`substitute`, cualquier otra aparición de ``$`` " "simplemente retornará ``$`` en lugar de generar :exc:`ValueError`." -#: ../Doc/library/string.rst:790 +#: ../Doc/library/string.rst:792 msgid "" "While other exceptions may still occur, this method is called \"safe\" " "because it always tries to return a usable string instead of raising an " @@ -1331,7 +1333,7 @@ msgstr "" "dado que ignorará plantillas defectuosas con delimitadores colgados, llaves " "sin cerrar, o comodines que no son identificadores válidos en Python." -#: ../Doc/library/string.rst:800 +#: ../Doc/library/string.rst:802 msgid "" "Returns false if the template has invalid placeholders that will cause :meth:" "`substitute` to raise :exc:`ValueError`." @@ -1339,7 +1341,7 @@ msgstr "" "Retorna false si la plantilla tiene marcadores de posición no válidos que " "harán que :meth:`substitute` lance :exc:`ValueError`." -#: ../Doc/library/string.rst:808 +#: ../Doc/library/string.rst:810 msgid "" "Returns a list of the valid identifiers in the template, in the order they " "first appear, ignoring any invalid identifiers." @@ -1348,13 +1350,13 @@ msgstr "" "orden en que aparecen por primera vez, ignorando cualquier identificador no " "válido." -#: ../Doc/library/string.rst:813 +#: ../Doc/library/string.rst:815 msgid ":class:`Template` instances also provide one public data attribute:" msgstr "" "Las instancias de :class:`Template` también proporcionan un atributo de " "datos públicos:" -#: ../Doc/library/string.rst:817 +#: ../Doc/library/string.rst:819 msgid "" "This is the object passed to the constructor's *template* argument. In " "general, you shouldn't change it, but read-only access is not enforced." @@ -1363,11 +1365,11 @@ msgstr "" "En general, no debería ser modificado, pero el acceso de sólo lectura (*read-" "only*) no es impuesto." -#: ../Doc/library/string.rst:820 +#: ../Doc/library/string.rst:822 msgid "Here is an example of how to use a Template::" msgstr "Aquí un ejemplo de cómo usar una plantilla (*Template*)::" -#: ../Doc/library/string.rst:838 +#: ../Doc/library/string.rst:840 msgid "" "Advanced usage: you can derive subclasses of :class:`Template` to customize " "the placeholder syntax, delimiter character, or the entire regular " @@ -1379,7 +1381,7 @@ msgstr "" "bien la expresión regular entera usada para procesar cadenas de plantillas. " "Para ello, es posible sobrescribir los siguientes atributos de clase:" -#: ../Doc/library/string.rst:843 +#: ../Doc/library/string.rst:845 msgid "" "*delimiter* -- This is the literal string describing a placeholder " "introducing delimiter. The default value is ``$``. Note that this should " @@ -1396,7 +1398,7 @@ msgstr "" "la clase (es decir, se debe establecer un delimitador diferente en el " "espacio de nombres de la subclase)." -#: ../Doc/library/string.rst:850 +#: ../Doc/library/string.rst:852 msgid "" "*idpattern* -- This is the regular expression describing the pattern for non-" "braced placeholders. The default value is the regular expression ``(?a:[_a-" @@ -1409,7 +1411,7 @@ msgstr "" "*braceidpattern* es ``None`` este patrón también se aplicará a los comodines " "entre llaves." -#: ../Doc/library/string.rst:857 +#: ../Doc/library/string.rst:859 msgid "" "Since default *flags* is ``re.IGNORECASE``, pattern ``[a-z]`` can match with " "some non-ASCII characters. That's why we use the local ``a`` flag here." @@ -1418,7 +1420,7 @@ msgstr "" "``[a-z]`` puede coincidir con algunos caracteres que no son ASCII. Por ello " "se utiliza aquí la bandera local ``a``." -#: ../Doc/library/string.rst:861 +#: ../Doc/library/string.rst:863 msgid "" "*braceidpattern* can be used to define separate patterns used inside and " "outside the braces." @@ -1426,7 +1428,7 @@ msgstr "" "*braceidpattern* puede ser usado para definir patrones separados, usados " "dentro y fuera de los corchetes." -#: ../Doc/library/string.rst:865 +#: ../Doc/library/string.rst:867 msgid "" "*braceidpattern* -- This is like *idpattern* but describes the pattern for " "braced placeholders. Defaults to ``None`` which means to fall back to " @@ -1440,7 +1442,7 @@ msgstr "" "fuera de las llaves). Si se proporciona, esto le permite definir diferentes " "patrones para comodines dentro y fuera de las llaves." -#: ../Doc/library/string.rst:873 +#: ../Doc/library/string.rst:875 msgid "" "*flags* -- The regular expression flags that will be applied when compiling " "the regular expression used for recognizing substitutions. The default " @@ -1454,7 +1456,7 @@ msgstr "" "se agregará a las banderas, por lo que *idpattern* (s) personalizado(s) " "debe(n) seguir las convenciones de expresiones regulares detalladas." -#: ../Doc/library/string.rst:881 +#: ../Doc/library/string.rst:883 msgid "" "Alternatively, you can provide the entire regular expression pattern by " "overriding the class attribute *pattern*. If you do this, the value must be " @@ -1469,7 +1471,7 @@ msgstr "" "indicadas anteriormente, junto con la regla de marcador de posición no " "válida:" -#: ../Doc/library/string.rst:887 +#: ../Doc/library/string.rst:889 msgid "" "*escaped* -- This group matches the escape sequence, e.g. ``$$``, in the " "default pattern." @@ -1477,7 +1479,7 @@ msgstr "" "*escaped* -- Este grupo coincide con la secuencia de escape en el patrón " "predeterminado, por ejemplo, ``$$``." -#: ../Doc/library/string.rst:890 +#: ../Doc/library/string.rst:892 msgid "" "*named* -- This group matches the unbraced placeholder name; it should not " "include the delimiter in capturing group." @@ -1485,7 +1487,7 @@ msgstr "" "*named* -- Este grupo coincide con el nombre comodín fuera de las llaves. No " "debe incluir el delimitador del grupo de captura." -#: ../Doc/library/string.rst:893 +#: ../Doc/library/string.rst:895 msgid "" "*braced* -- This group matches the brace enclosed placeholder name; it " "should not include either the delimiter or braces in the capturing group." @@ -1493,7 +1495,7 @@ msgstr "" "*braced* -- Este grupo coincide con el nombre del comodín adjunto; no debe " "incluir ni el delimitador ni las llaves en el grupo de captura." -#: ../Doc/library/string.rst:896 +#: ../Doc/library/string.rst:898 msgid "" "*invalid* -- This group matches any other delimiter pattern (usually a " "single delimiter), and it should appear last in the regular expression." @@ -1502,7 +1504,7 @@ msgstr "" "delimitación (usualmente un único carácter) y debe ser lo último en aparecer " "en la expresión regular." -#: ../Doc/library/string.rst:899 +#: ../Doc/library/string.rst:901 msgid "" "The methods on this class will raise :exc:`ValueError` if the pattern " "matches the template without one of these named groups matching." @@ -1510,11 +1512,11 @@ msgstr "" "Los métodos de esta clase generarán :exc:`ValueError` si el patrón coincide " "con la plantilla sin que coincida uno de estos grupos nombrados." -#: ../Doc/library/string.rst:904 +#: ../Doc/library/string.rst:906 msgid "Helper functions" msgstr "Funciones de ayuda" -#: ../Doc/library/string.rst:908 +#: ../Doc/library/string.rst:910 msgid "" "Split the argument into words using :meth:`str.split`, capitalize each word " "using :meth:`str.capitalize`, and join the capitalized words using :meth:" @@ -1529,3 +1531,80 @@ msgstr "" "*sep* está ausente o es ``None``, los espacios en blanco se reemplazarán con " "un único espacio y los espacios en blanco iniciales y finales se eliminarán; " "caso contrario, *sep* se usa para separar y unir las palabras." + +#: ../Doc/library/string.rst:195 +msgid "{} (curly brackets)" +msgstr "" + +#: ../Doc/library/string.rst:195 ../Doc/library/string.rst:335 +#: ../Doc/library/string.rst:367 ../Doc/library/string.rst:386 +#: ../Doc/library/string.rst:395 ../Doc/library/string.rst:409 +#: ../Doc/library/string.rst:418 +#, fuzzy +msgid "in string formatting" +msgstr "Formato de cadena de caracteres personalizado" + +#: ../Doc/library/string.rst:195 +msgid ". (dot)" +msgstr "" + +#: ../Doc/library/string.rst:195 +msgid "[] (square brackets)" +msgstr "" + +#: ../Doc/library/string.rst:195 +msgid "! (exclamation)" +msgstr "" + +#: ../Doc/library/string.rst:195 +msgid ": (colon)" +msgstr "" + +#: ../Doc/library/string.rst:335 +msgid "< (less)" +msgstr "" + +#: ../Doc/library/string.rst:335 +msgid "> (greater)" +msgstr "" + +#: ../Doc/library/string.rst:335 +msgid "= (equals)" +msgstr "" + +#: ../Doc/library/string.rst:335 +msgid "^ (caret)" +msgstr "" + +#: ../Doc/library/string.rst:367 +msgid "+ (plus)" +msgstr "" + +#: ../Doc/library/string.rst:367 +msgid "- (minus)" +msgstr "" + +#: ../Doc/library/string.rst:386 +msgid "z" +msgstr "" + +#: ../Doc/library/string.rst:395 +msgid "# (hash)" +msgstr "" + +#: ../Doc/library/string.rst:409 +msgid ", (comma)" +msgstr "" + +#: ../Doc/library/string.rst:418 +msgid "_ (underscore)" +msgstr "" + +#: ../Doc/library/string.rst:746 +msgid "$ (dollar)" +msgstr "" + +#: ../Doc/library/string.rst:746 +#, fuzzy +msgid "in template strings" +msgstr "Cadenas de plantillas" diff --git a/library/stringprep.po b/library/stringprep.po index 6423aded06..1f8cc5d33d 100644 --- a/library/stringprep.po +++ b/library/stringprep.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-05 12:54+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-10-13 19:47+0200\n" +"Last-Translator: \n" +"Language: es\n" "Language-Team: python-doc-es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\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.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/stringprep.rst:2 msgid ":mod:`stringprep` --- Internet String Preparation" @@ -68,10 +67,11 @@ msgstr "" "dominios internacionalizados." #: ../Doc/library/stringprep.rst:29 +#, fuzzy msgid "" "The module :mod:`stringprep` only exposes the tables from :rfc:`3454`. As " -"these tables would be very large to represent them as dictionaries or lists, " -"the module uses the Unicode character database internally. The module source " +"these tables would be very large to represent as dictionaries or lists, the " +"module uses the Unicode character database internally. The module source " "code itself was generated using the ``mkstringprep.py`` utility." msgstr "" "El modulo :mod:`stringprep` solo expone las tablas de :rfc:`3454`. Como " diff --git a/library/struct.po b/library/struct.po index e350310aac..74925584ea 100644 --- a/library/struct.po +++ b/library/struct.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-11-08 20:11-0600\n" "Last-Translator: \n" "Language: es_ES\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/struct.rst:2 msgid ":mod:`struct` --- Interpret bytes as packed binary data" @@ -31,41 +31,28 @@ msgstr "**Código fuente:** :source:`Lib/struct.py`" #: ../Doc/library/struct.rst:15 msgid "" -"This module performs conversions between Python values and C structs " -"represented as Python :class:`bytes` objects. This can be used in handling " -"binary data stored in files or from network connections, among other " -"sources. It uses :ref:`struct-format-strings` as compact descriptions of " -"the layout of the C structs and the intended conversion to/from Python " -"values." -msgstr "" -"Este módulo realiza conversiones entre valores de Python y estructuras C " -"representadas como objetos :class:`bytes` de Python. Se puede utilizar para " -"el tratamiento de datos binarios almacenados en archivos o desde conexiones " -"de red, entre otras fuentes. Utiliza :ref:`struct-format-strings` como " -"descripciones compactas del diseño de las estructuras C y la conversión " -"prevista a/desde valores de Python." - -#: ../Doc/library/struct.rst:23 +"This module converts between Python values and C structs represented as " +"Python :class:`bytes` objects. Compact :ref:`format strings ` describe the intended conversions to/from Python values. The " +"module's functions and objects can be used for two largely distinct " +"applications, data exchange with external sources (files or network " +"connections), or data transfer between the Python application and the C " +"layer." +msgstr "" + +#: ../Doc/library/struct.rst:25 msgid "" -"By default, the result of packing a given C struct includes pad bytes in " -"order to maintain proper alignment for the C types involved; similarly, " -"alignment is taken into account when unpacking. This behavior is chosen so " -"that the bytes of a packed struct correspond exactly to the layout in memory " -"of the corresponding C struct. To handle platform-independent data formats " -"or omit implicit pad bytes, use ``standard`` size and alignment instead of " -"``native`` size and alignment: see :ref:`struct-alignment` for details." -msgstr "" -"Por defecto, el resultado de empaquetar una estructura C determinada incluye " -"bytes de relleno para mantener la alineación adecuada para los tipos " -"correspondientes en C; del mismo modo, la alineación se tiene en cuenta al " -"desempaquetar. Este comportamiento se elige para que los bytes de una " -"estructura empaquetada se correspondan exactamente con el diseño en memoria " -"de la estructura C correspondiente. Para tratar formatos de datos que sean " -"independientes de la plataforma u omitir bytes de relleno implícitos, " -"utiliza el tamaño y la alineación ``estándar`` en lugar del ``nativo``: ver :" -"ref:`struct-alignment` para obtener más información." - -#: ../Doc/library/struct.rst:31 +"When no prefix character is given, native mode is the default. It packs or " +"unpacks data based on the platform and compiler on which the Python " +"interpreter was built. The result of packing a given C struct includes pad " +"bytes which maintain proper alignment for the C types involved; similarly, " +"alignment is taken into account when unpacking. In contrast, when " +"communicating data between external sources, the programmer is responsible " +"for defining byte ordering and padding between elements. See :ref:`struct-" +"alignment` for details." +msgstr "" + +#: ../Doc/library/struct.rst:35 msgid "" "Several :mod:`struct` functions (and methods of :class:`Struct`) take a " "*buffer* argument. This refers to objects that implement the :ref:" @@ -83,15 +70,15 @@ msgstr "" "de bytes implementan el protocolo de búfer, para que se puedan leer/rellenar " "sin necesidad de copiar a partir de un objeto :class:`bytes`." -#: ../Doc/library/struct.rst:40 +#: ../Doc/library/struct.rst:44 msgid "Functions and Exceptions" msgstr "Funciones y excepciones" -#: ../Doc/library/struct.rst:42 +#: ../Doc/library/struct.rst:46 msgid "The module defines the following exception and functions:" msgstr "El módulo define la siguiente excepción y funciones:" -#: ../Doc/library/struct.rst:47 +#: ../Doc/library/struct.rst:51 msgid "" "Exception raised on various occasions; argument is a string describing what " "is wrong." @@ -99,7 +86,7 @@ msgstr "" "Excepción lanzada en varias ocasiones; el argumento es una *string* que " "describe lo que está mal." -#: ../Doc/library/struct.rst:53 +#: ../Doc/library/struct.rst:57 msgid "" "Return a bytes object containing the values *v1*, *v2*, ... packed according " "to the format string *format*. The arguments must match the values required " @@ -109,7 +96,7 @@ msgstr "" "de acuerdo con la cadena de formato *format*. Los argumentos deben " "coincidir exactamente con los valores requeridos por el formato." -#: ../Doc/library/struct.rst:60 +#: ../Doc/library/struct.rst:64 msgid "" "Pack the values *v1*, *v2*, ... according to the format string *format* and " "write the packed bytes into the writable buffer *buffer* starting at " @@ -120,7 +107,7 @@ msgstr "" "comenzando en la posición *offset*. Nota: *offset* es un argumento " "obligatorio." -#: ../Doc/library/struct.rst:67 +#: ../Doc/library/struct.rst:71 msgid "" "Unpack from the buffer *buffer* (presumably packed by ``pack(format, ...)``) " "according to the format string *format*. The result is a tuple even if it " @@ -133,7 +120,7 @@ msgstr "" "bytes debe coincidir con el tamaño requerido por el formato, como se refleja " "en :func:`calcsize`." -#: ../Doc/library/struct.rst:75 +#: ../Doc/library/struct.rst:79 msgid "" "Unpack from *buffer* starting at position *offset*, according to the format " "string *format*. The result is a tuple even if it contains exactly one " @@ -146,7 +133,7 @@ msgstr "" "*offset*, debe tener al menos el tamaño requerido por el formato, como se " "refleja en :func:`calcsize`." -#: ../Doc/library/struct.rst:83 +#: ../Doc/library/struct.rst:87 #, fuzzy msgid "" "Iteratively unpack from the buffer *buffer* according to the format string " @@ -161,13 +148,13 @@ msgstr "" "El tamaño del búfer en bytes debe ser un múltiplo del tamaño requerido por " "el formato, como se refleja en :func:`calcsize`." -#: ../Doc/library/struct.rst:89 +#: ../Doc/library/struct.rst:93 msgid "Each iteration yields a tuple as specified by the format string." msgstr "" "Cada iteración produce una tupla según lo especificado por la cadena de " "formato." -#: ../Doc/library/struct.rst:96 +#: ../Doc/library/struct.rst:100 msgid "" "Return the size of the struct (and hence of the bytes object produced by " "``pack(format, ...)``) corresponding to the format string *format*." @@ -176,17 +163,20 @@ msgstr "" "generado por ``pack(format, ...)``) correspondiente a la cadena de formato " "*format*." -#: ../Doc/library/struct.rst:103 +#: ../Doc/library/struct.rst:107 msgid "Format Strings" msgstr "Cadenas de formato" -#: ../Doc/library/struct.rst:105 +#: ../Doc/library/struct.rst:109 +#, fuzzy msgid "" -"Format strings are the mechanism used to specify the expected layout when " -"packing and unpacking data. They are built up from :ref:`format-" -"characters`, which specify the type of data being packed/unpacked. In " -"addition, there are special characters for controlling the :ref:`struct-" -"alignment`." +"Format strings describe the data layout when packing and unpacking data. " +"They are built up from :ref:`format characters`, which " +"specify the type of data being packed/unpacked. In addition, special " +"characters control the :ref:`byte order, size and alignment`. Each format string consists of an optional prefix character " +"which describes the overall properties of the data and one or more format " +"characters which describe the actual data values and padding." msgstr "" "Las cadenas de formato son el mecanismo utilizado para especificar el diseño " "esperado al empaquetar y desempaquetar datos. Se crean a partir de :ref:" @@ -194,21 +184,25 @@ msgstr "" "desempaquetan. Además, hay caracteres especiales para controlar :ref:" "`struct-alignment`." -#: ../Doc/library/struct.rst:114 +#: ../Doc/library/struct.rst:121 msgid "Byte Order, Size, and Alignment" msgstr "Orden de bytes, tamaño y alineación" -#: ../Doc/library/struct.rst:116 +#: ../Doc/library/struct.rst:123 +#, fuzzy msgid "" "By default, C types are represented in the machine's native format and byte " "order, and properly aligned by skipping pad bytes if necessary (according to " -"the rules used by the C compiler)." +"the rules used by the C compiler). This behavior is chosen so that the bytes " +"of a packed struct correspond exactly to the memory layout of the " +"corresponding C struct. Whether to use native byte ordering and padding or " +"standard formats depends on the application." msgstr "" "Por defecto, los tipos C se representan en el formato nativo y el orden de " "bytes de la máquina, y se alinean correctamente omitiendo bytes de relleno " "si es necesario (según las reglas utilizadas por el compilador de C)." -#: ../Doc/library/struct.rst:127 +#: ../Doc/library/struct.rst:139 msgid "" "Alternatively, the first character of the format string can be used to " "indicate the byte order, size and alignment of the packed data, according to " @@ -218,81 +212,79 @@ msgstr "" "utilizar para indicar el orden de bytes, el tamaño y la alineación de los " "datos empaquetados, según la tabla siguiente:" -#: ../Doc/library/struct.rst:132 +#: ../Doc/library/struct.rst:144 msgid "Character" msgstr "Carácter" -#: ../Doc/library/struct.rst:132 +#: ../Doc/library/struct.rst:144 msgid "Byte order" msgstr "Orden de bytes" -#: ../Doc/library/struct.rst:132 +#: ../Doc/library/struct.rst:144 msgid "Size" msgstr "Tamaño" -#: ../Doc/library/struct.rst:132 +#: ../Doc/library/struct.rst:144 msgid "Alignment" msgstr "Alineamiento" -#: ../Doc/library/struct.rst:134 +#: ../Doc/library/struct.rst:146 msgid "``@``" msgstr "``@``" -#: ../Doc/library/struct.rst:134 ../Doc/library/struct.rst:136 +#: ../Doc/library/struct.rst:146 ../Doc/library/struct.rst:148 msgid "native" msgstr "nativo" -#: ../Doc/library/struct.rst:136 +#: ../Doc/library/struct.rst:148 msgid "``=``" msgstr "``=``" -#: ../Doc/library/struct.rst:136 ../Doc/library/struct.rst:138 -#: ../Doc/library/struct.rst:140 ../Doc/library/struct.rst:142 +#: ../Doc/library/struct.rst:148 ../Doc/library/struct.rst:150 +#: ../Doc/library/struct.rst:152 ../Doc/library/struct.rst:154 msgid "standard" msgstr "standard" -#: ../Doc/library/struct.rst:136 ../Doc/library/struct.rst:138 -#: ../Doc/library/struct.rst:140 ../Doc/library/struct.rst:142 +#: ../Doc/library/struct.rst:148 ../Doc/library/struct.rst:150 +#: ../Doc/library/struct.rst:152 ../Doc/library/struct.rst:154 msgid "none" msgstr "none" -#: ../Doc/library/struct.rst:138 +#: ../Doc/library/struct.rst:150 msgid "``<``" msgstr "``<``" -#: ../Doc/library/struct.rst:138 +#: ../Doc/library/struct.rst:150 msgid "little-endian" msgstr "little-endian" -#: ../Doc/library/struct.rst:140 +#: ../Doc/library/struct.rst:152 msgid "``>``" msgstr "``>``" -#: ../Doc/library/struct.rst:140 +#: ../Doc/library/struct.rst:152 msgid "big-endian" msgstr "big-endian" -#: ../Doc/library/struct.rst:142 +#: ../Doc/library/struct.rst:154 msgid "``!``" msgstr "``!``" -#: ../Doc/library/struct.rst:142 +#: ../Doc/library/struct.rst:154 msgid "network (= big-endian)" msgstr "red (= big-endian)" -#: ../Doc/library/struct.rst:145 +#: ../Doc/library/struct.rst:157 msgid "If the first character is not one of these, ``'@'`` is assumed." msgstr "Si el primer carácter no es uno de estos, se asume ``'@'``." -#: ../Doc/library/struct.rst:147 +#: ../Doc/library/struct.rst:159 #, fuzzy msgid "" "Native byte order is big-endian or little-endian, depending on the host " -"system. For example, Intel x86 and AMD64 (x86-64) are little-endian; IBM z " -"and most legacy architectures are big-endian; and ARM, RISC-V and IBM Power " -"feature switchable endianness (bi-endian, though the former two are nearly " -"always little-endian in practice). Use ``sys.byteorder`` to check the " -"endianness of your system." +"system. For example, Intel x86, AMD64 (x86-64), and Apple M1 are little-" +"endian; IBM z and many legacy architectures are big-endian. Use :data:`sys." +"byteorder` to check the endianness of your system." msgstr "" "El orden de bytes nativo es big-endian o little-endian, dependiendo del " "sistema host. Por ejemplo, Intel x86 y AMD64 (x86-64) son little-endian; " @@ -300,7 +292,7 @@ msgstr "" "propiedad de trabajar con ambos formatos (middle-endian). Utiliza ``sys." "byteorder`` para comprobar la *endianness* (\"extremidad\") de su sistema." -#: ../Doc/library/struct.rst:154 +#: ../Doc/library/struct.rst:164 msgid "" "Native size and alignment are determined using the C compiler's ``sizeof`` " "expression. This is always combined with native byte order." @@ -309,7 +301,7 @@ msgstr "" "``sizeof`` del compilador de C. Esto siempre se combina con el orden de " "bytes nativo." -#: ../Doc/library/struct.rst:157 +#: ../Doc/library/struct.rst:167 msgid "" "Standard size depends only on the format character; see the table in the :" "ref:`format-characters` section." @@ -317,7 +309,7 @@ msgstr "" "El tamaño estándar depende únicamente del carácter de formato; ver la tabla " "en la sección :ref:`format-characters`." -#: ../Doc/library/struct.rst:160 +#: ../Doc/library/struct.rst:170 msgid "" "Note the difference between ``'@'`` and ``'='``: both use native byte order, " "but the size and alignment of the latter is standardized." @@ -326,7 +318,7 @@ msgstr "" "bytes nativo, pero el tamaño y la alineación de este último está " "estandarizado." -#: ../Doc/library/struct.rst:163 +#: ../Doc/library/struct.rst:173 msgid "" "The form ``'!'`` represents the network byte order which is always big-" "endian as defined in `IETF RFC 1700 `_." @@ -334,7 +326,7 @@ msgstr "" "La forma ``'!'`` representa el orden de bytes en la red, el cuál siempre es " "big-endian tal como se define en `IETF RFC 1700 `_." -#: ../Doc/library/struct.rst:166 +#: ../Doc/library/struct.rst:176 msgid "" "There is no way to indicate non-native byte order (force byte-swapping); use " "the appropriate choice of ``'<'`` or ``'>'``." @@ -342,11 +334,11 @@ msgstr "" "No hay manera de indicar el orden de bytes no nativo (forzar el intercambio " "de bytes); utiliza la elección adecuada de ``'<'`` o ``'>'``." -#: ../Doc/library/struct.rst:169 ../Doc/library/struct.rst:248 +#: ../Doc/library/struct.rst:179 ../Doc/library/struct.rst:258 msgid "Notes:" msgstr "Notas:" -#: ../Doc/library/struct.rst:171 +#: ../Doc/library/struct.rst:181 msgid "" "Padding is only automatically added between successive structure members. No " "padding is added at the beginning or the end of the encoded struct." @@ -355,7 +347,7 @@ msgstr "" "estructura. No se agrega ningún relleno al principio o al final de la " "estructura codificada." -#: ../Doc/library/struct.rst:174 +#: ../Doc/library/struct.rst:184 msgid "" "No padding is added when using non-native size and alignment, e.g. with '<', " "'>', '=', and '!'." @@ -363,7 +355,7 @@ msgstr "" "No se añade ningún relleno cuando se utiliza el tamaño y la alineación no " "nativos, por ejemplo, con '<', '>', '=' y '!'." -#: ../Doc/library/struct.rst:177 +#: ../Doc/library/struct.rst:187 msgid "" "To align the end of a structure to the alignment requirement of a particular " "type, end the format with the code for that type with a repeat count of " @@ -373,11 +365,11 @@ msgstr "" "tipo determinado, termina el formato con el código de ese tipo con un conteo " "repetido de ceros. Véase :ref:`struct-examples`." -#: ../Doc/library/struct.rst:185 +#: ../Doc/library/struct.rst:195 msgid "Format Characters" msgstr "Caracteres de formato" -#: ../Doc/library/struct.rst:187 +#: ../Doc/library/struct.rst:197 msgid "" "Format characters have the following meaning; the conversion between C and " "Python values should be obvious given their types. The 'Standard size' " @@ -393,298 +385,313 @@ msgstr "" "comienza con uno de ``'<'``, ``'>'``, ``'!'`` o ``'='``. Cuando se utiliza " "el tamaño nativo, el tamaño del valor empaquetado depende de la plataforma." -#: ../Doc/library/struct.rst:195 +#: ../Doc/library/struct.rst:205 msgid "Format" msgstr "Formato" -#: ../Doc/library/struct.rst:195 +#: ../Doc/library/struct.rst:205 msgid "C Type" msgstr "Tipo C" -#: ../Doc/library/struct.rst:195 +#: ../Doc/library/struct.rst:205 msgid "Python type" msgstr "Tipo Python" -#: ../Doc/library/struct.rst:195 +#: ../Doc/library/struct.rst:205 msgid "Standard size" msgstr "Tamaño estándar" -#: ../Doc/library/struct.rst:195 +#: ../Doc/library/struct.rst:205 msgid "Notes" msgstr "Notas" -#: ../Doc/library/struct.rst:197 +#: ../Doc/library/struct.rst:207 msgid "``x``" msgstr "``x``" -#: ../Doc/library/struct.rst:197 +#: ../Doc/library/struct.rst:207 msgid "pad byte" msgstr "byte de relleno" -#: ../Doc/library/struct.rst:197 +#: ../Doc/library/struct.rst:207 msgid "no value" msgstr "sin valor" -#: ../Doc/library/struct.rst:199 +#: ../Doc/library/struct.rst:207 +#, fuzzy +msgid "\\(7)" +msgstr "\\(6)" + +#: ../Doc/library/struct.rst:209 msgid "``c``" msgstr "``c``" -#: ../Doc/library/struct.rst:199 +#: ../Doc/library/struct.rst:209 #, fuzzy msgid ":c:expr:`char`" msgstr ":c:type:`char`" -#: ../Doc/library/struct.rst:199 +#: ../Doc/library/struct.rst:209 msgid "bytes of length 1" msgstr "bytes de longitud 1" -#: ../Doc/library/struct.rst:199 ../Doc/library/struct.rst:201 -#: ../Doc/library/struct.rst:203 ../Doc/library/struct.rst:205 +#: ../Doc/library/struct.rst:209 ../Doc/library/struct.rst:211 +#: ../Doc/library/struct.rst:213 ../Doc/library/struct.rst:215 msgid "1" msgstr "1" -#: ../Doc/library/struct.rst:201 +#: ../Doc/library/struct.rst:211 msgid "``b``" msgstr "``b``" -#: ../Doc/library/struct.rst:201 +#: ../Doc/library/struct.rst:211 #, fuzzy msgid ":c:expr:`signed char`" msgstr ":c:type:`signed char`" -#: ../Doc/library/struct.rst:201 ../Doc/library/struct.rst:203 -#: ../Doc/library/struct.rst:207 ../Doc/library/struct.rst:209 #: ../Doc/library/struct.rst:211 ../Doc/library/struct.rst:213 -#: ../Doc/library/struct.rst:215 ../Doc/library/struct.rst:217 -#: ../Doc/library/struct.rst:219 ../Doc/library/struct.rst:221 -#: ../Doc/library/struct.rst:224 ../Doc/library/struct.rst:226 -#: ../Doc/library/struct.rst:238 +#: ../Doc/library/struct.rst:217 ../Doc/library/struct.rst:219 +#: ../Doc/library/struct.rst:221 ../Doc/library/struct.rst:223 +#: ../Doc/library/struct.rst:225 ../Doc/library/struct.rst:227 +#: ../Doc/library/struct.rst:229 ../Doc/library/struct.rst:231 +#: ../Doc/library/struct.rst:234 ../Doc/library/struct.rst:236 +#: ../Doc/library/struct.rst:248 msgid "integer" msgstr "integer" -#: ../Doc/library/struct.rst:201 +#: ../Doc/library/struct.rst:211 msgid "\\(1), \\(2)" msgstr "\\(1), \\(2)" -#: ../Doc/library/struct.rst:203 +#: ../Doc/library/struct.rst:213 msgid "``B``" msgstr "``B``" -#: ../Doc/library/struct.rst:203 +#: ../Doc/library/struct.rst:213 #, fuzzy msgid ":c:expr:`unsigned char`" msgstr ":c:type:`unsigned char`" -#: ../Doc/library/struct.rst:203 ../Doc/library/struct.rst:207 -#: ../Doc/library/struct.rst:209 ../Doc/library/struct.rst:211 -#: ../Doc/library/struct.rst:213 ../Doc/library/struct.rst:215 -#: ../Doc/library/struct.rst:217 ../Doc/library/struct.rst:219 -#: ../Doc/library/struct.rst:221 +#: ../Doc/library/struct.rst:213 ../Doc/library/struct.rst:217 +#: ../Doc/library/struct.rst:219 ../Doc/library/struct.rst:221 +#: ../Doc/library/struct.rst:223 ../Doc/library/struct.rst:225 +#: ../Doc/library/struct.rst:227 ../Doc/library/struct.rst:229 +#: ../Doc/library/struct.rst:231 msgid "\\(2)" msgstr "\\(2)" -#: ../Doc/library/struct.rst:205 +#: ../Doc/library/struct.rst:215 msgid "``?``" msgstr "\\(2)" -#: ../Doc/library/struct.rst:205 +#: ../Doc/library/struct.rst:215 #, fuzzy msgid ":c:expr:`_Bool`" msgstr ":c:type:`_Bool`" -#: ../Doc/library/struct.rst:205 +#: ../Doc/library/struct.rst:215 msgid "bool" msgstr "bool" -#: ../Doc/library/struct.rst:205 +#: ../Doc/library/struct.rst:215 msgid "\\(1)" msgstr "\\(1)" -#: ../Doc/library/struct.rst:207 +#: ../Doc/library/struct.rst:217 msgid "``h``" msgstr "``h``" -#: ../Doc/library/struct.rst:207 +#: ../Doc/library/struct.rst:217 #, fuzzy msgid ":c:expr:`short`" msgstr ":c:type:`short`" -#: ../Doc/library/struct.rst:207 ../Doc/library/struct.rst:209 -#: ../Doc/library/struct.rst:228 +#: ../Doc/library/struct.rst:217 ../Doc/library/struct.rst:219 +#: ../Doc/library/struct.rst:238 msgid "2" msgstr "2" -#: ../Doc/library/struct.rst:209 +#: ../Doc/library/struct.rst:219 msgid "``H``" msgstr "``H``" -#: ../Doc/library/struct.rst:209 +#: ../Doc/library/struct.rst:219 #, fuzzy msgid ":c:expr:`unsigned short`" msgstr ":c:type:`unsigned short`" -#: ../Doc/library/struct.rst:211 +#: ../Doc/library/struct.rst:221 msgid "``i``" msgstr "``i``" -#: ../Doc/library/struct.rst:211 +#: ../Doc/library/struct.rst:221 #, fuzzy msgid ":c:expr:`int`" msgstr ":c:type:`int`" -#: ../Doc/library/struct.rst:211 ../Doc/library/struct.rst:213 -#: ../Doc/library/struct.rst:215 ../Doc/library/struct.rst:217 -#: ../Doc/library/struct.rst:230 +#: ../Doc/library/struct.rst:221 ../Doc/library/struct.rst:223 +#: ../Doc/library/struct.rst:225 ../Doc/library/struct.rst:227 +#: ../Doc/library/struct.rst:240 msgid "4" msgstr "4" -#: ../Doc/library/struct.rst:213 +#: ../Doc/library/struct.rst:223 msgid "``I``" msgstr "``I``" -#: ../Doc/library/struct.rst:213 +#: ../Doc/library/struct.rst:223 #, fuzzy msgid ":c:expr:`unsigned int`" msgstr ":c:type:`unsigned int`" -#: ../Doc/library/struct.rst:215 +#: ../Doc/library/struct.rst:225 msgid "``l``" msgstr "``l``" -#: ../Doc/library/struct.rst:215 +#: ../Doc/library/struct.rst:225 #, fuzzy msgid ":c:expr:`long`" msgstr ":c:type:`long`" -#: ../Doc/library/struct.rst:217 +#: ../Doc/library/struct.rst:227 msgid "``L``" msgstr "``L``" -#: ../Doc/library/struct.rst:217 +#: ../Doc/library/struct.rst:227 #, fuzzy msgid ":c:expr:`unsigned long`" msgstr ":c:type:`unsigned long`" -#: ../Doc/library/struct.rst:219 +#: ../Doc/library/struct.rst:229 msgid "``q``" msgstr "``q``" -#: ../Doc/library/struct.rst:219 +#: ../Doc/library/struct.rst:229 #, fuzzy msgid ":c:expr:`long long`" msgstr ":c:type:`long long`" -#: ../Doc/library/struct.rst:219 ../Doc/library/struct.rst:221 -#: ../Doc/library/struct.rst:232 +#: ../Doc/library/struct.rst:229 ../Doc/library/struct.rst:231 +#: ../Doc/library/struct.rst:242 msgid "8" msgstr "8" -#: ../Doc/library/struct.rst:221 +#: ../Doc/library/struct.rst:231 msgid "``Q``" msgstr "``Q``" -#: ../Doc/library/struct.rst:221 +#: ../Doc/library/struct.rst:231 #, fuzzy msgid ":c:expr:`unsigned long long`" msgstr ":c:type:`unsigned long long`" -#: ../Doc/library/struct.rst:224 +#: ../Doc/library/struct.rst:234 msgid "``n``" msgstr "``n``" -#: ../Doc/library/struct.rst:224 +#: ../Doc/library/struct.rst:234 #, fuzzy -msgid ":c:expr:`ssize_t`" +msgid ":c:type:`ssize_t`" msgstr ":c:type:`ssize_t`" -#: ../Doc/library/struct.rst:224 ../Doc/library/struct.rst:226 +#: ../Doc/library/struct.rst:234 ../Doc/library/struct.rst:236 msgid "\\(3)" msgstr "\\(3)" -#: ../Doc/library/struct.rst:226 +#: ../Doc/library/struct.rst:236 msgid "``N``" msgstr "``N``" -#: ../Doc/library/struct.rst:226 +#: ../Doc/library/struct.rst:236 #, fuzzy -msgid ":c:expr:`size_t`" +msgid ":c:type:`size_t`" msgstr ":c:type:`size_t`" -#: ../Doc/library/struct.rst:228 +#: ../Doc/library/struct.rst:238 msgid "``e``" msgstr "``e``" -#: ../Doc/library/struct.rst:228 +#: ../Doc/library/struct.rst:238 msgid "\\(6)" msgstr "\\(6)" -#: ../Doc/library/struct.rst:228 ../Doc/library/struct.rst:230 -#: ../Doc/library/struct.rst:232 +#: ../Doc/library/struct.rst:238 ../Doc/library/struct.rst:240 +#: ../Doc/library/struct.rst:242 msgid "float" msgstr "float" -#: ../Doc/library/struct.rst:228 ../Doc/library/struct.rst:230 -#: ../Doc/library/struct.rst:232 +#: ../Doc/library/struct.rst:238 ../Doc/library/struct.rst:240 +#: ../Doc/library/struct.rst:242 msgid "\\(4)" msgstr "\\(4)" -#: ../Doc/library/struct.rst:230 +#: ../Doc/library/struct.rst:240 msgid "``f``" msgstr "``f``" -#: ../Doc/library/struct.rst:230 +#: ../Doc/library/struct.rst:240 #, fuzzy msgid ":c:expr:`float`" msgstr ":c:type:`float`" -#: ../Doc/library/struct.rst:232 +#: ../Doc/library/struct.rst:242 msgid "``d``" msgstr "``d``" -#: ../Doc/library/struct.rst:232 +#: ../Doc/library/struct.rst:242 #, fuzzy msgid ":c:expr:`double`" msgstr ":c:type:`double`" -#: ../Doc/library/struct.rst:234 +#: ../Doc/library/struct.rst:244 msgid "``s``" msgstr "``s``" -#: ../Doc/library/struct.rst:234 ../Doc/library/struct.rst:236 +#: ../Doc/library/struct.rst:244 ../Doc/library/struct.rst:246 #, fuzzy msgid ":c:expr:`char[]`" msgstr ":c:type:`char[]`" -#: ../Doc/library/struct.rst:234 ../Doc/library/struct.rst:236 +#: ../Doc/library/struct.rst:244 ../Doc/library/struct.rst:246 msgid "bytes" msgstr "bytes" -#: ../Doc/library/struct.rst:236 +#: ../Doc/library/struct.rst:244 +#, fuzzy +msgid "\\(9)" +msgstr "\\(6)" + +#: ../Doc/library/struct.rst:246 msgid "``p``" msgstr "``p``" -#: ../Doc/library/struct.rst:238 +#: ../Doc/library/struct.rst:246 +#, fuzzy +msgid "\\(8)" +msgstr "\\(6)" + +#: ../Doc/library/struct.rst:248 msgid "``P``" msgstr "``P``" -#: ../Doc/library/struct.rst:238 +#: ../Doc/library/struct.rst:248 #, fuzzy msgid ":c:expr:`void \\*`" msgstr ":c:type:`void \\*`" -#: ../Doc/library/struct.rst:238 +#: ../Doc/library/struct.rst:248 msgid "\\(5)" msgstr "\\(5)" -#: ../Doc/library/struct.rst:241 +#: ../Doc/library/struct.rst:251 msgid "Added support for the ``'n'`` and ``'N'`` formats." msgstr "Soporte añadido para los formatos ``'n'`` y ``'N'``." -#: ../Doc/library/struct.rst:244 +#: ../Doc/library/struct.rst:254 msgid "Added support for the ``'e'`` format." msgstr "Soporte añadido para el formato ``'e'``." -#: ../Doc/library/struct.rst:253 +#: ../Doc/library/struct.rst:263 #, fuzzy msgid "" "The ``'?'`` conversion code corresponds to the :c:expr:`_Bool` type defined " @@ -695,22 +702,24 @@ msgstr "" "por C99. Si este tipo no está disponible, se simula mediante un :c:type:" "`char`. En el modo estándar, siempre se representa mediante un byte." -#: ../Doc/library/struct.rst:258 +#: ../Doc/library/struct.rst:268 +#, fuzzy msgid "" "When attempting to pack a non-integer using any of the integer conversion " -"codes, if the non-integer has a :meth:`__index__` method then that method is " -"called to convert the argument to an integer before packing." +"codes, if the non-integer has a :meth:`~object.__index__` method then that " +"method is called to convert the argument to an integer before packing." msgstr "" "Al intentar empaquetar un no entero mediante cualquiera de los códigos de " "conversión de enteros, si el no entero tiene un método :meth:`__index__`, se " "llama a ese método para convertir el argumento en un entero antes de " "empaquetar." -#: ../Doc/library/struct.rst:262 -msgid "Added use of the :meth:`__index__` method for non-integers." +#: ../Doc/library/struct.rst:272 +#, fuzzy +msgid "Added use of the :meth:`~object.__index__` method for non-integers." msgstr "Agregado el uso del método :meth:`__index__` para los no enteros." -#: ../Doc/library/struct.rst:266 +#: ../Doc/library/struct.rst:276 msgid "" "The ``'n'`` and ``'N'`` conversion codes are only available for the native " "size (selected as the default or with the ``'@'`` byte order character). For " @@ -722,7 +731,7 @@ msgstr "" "de bytes ``'@'``). Para el tamaño estándar, puedes usar cualquiera de los " "otros formatos enteros que se ajusten a tu aplicación." -#: ../Doc/library/struct.rst:272 +#: ../Doc/library/struct.rst:282 msgid "" "For the ``'f'``, ``'d'`` and ``'e'`` conversion codes, the packed " "representation uses the IEEE 754 binary32, binary64 or binary16 format (for " @@ -734,7 +743,7 @@ msgstr "" "``'f'``, ``'d'`` o ``'e'`` respectivamente), independientemente del formato " "de punto flotante utilizado por la plataforma." -#: ../Doc/library/struct.rst:278 +#: ../Doc/library/struct.rst:288 msgid "" "The ``'P'`` format character is only available for the native byte ordering " "(selected as the default or with the ``'@'`` byte order character). The byte " @@ -749,7 +758,7 @@ msgstr "" "interpreta esto como un orden nativo, por lo que el formato ``'P'`` no está " "disponible." -#: ../Doc/library/struct.rst:285 +#: ../Doc/library/struct.rst:295 msgid "" "The IEEE 754 binary16 \"half precision\" type was introduced in the 2008 " "revision of the `IEEE 754 standard `_. It has a sign " @@ -771,29 +780,45 @@ msgstr "" "flotante de media precisión `_ para obtener más " "información." -#: ../Doc/library/struct.rst:295 -msgid "" -"A format character may be preceded by an integral repeat count. For " -"example, the format string ``'4h'`` means exactly the same as ``'hhhh'``." +#: ../Doc/library/struct.rst:305 +msgid "When packing, ``'x'`` inserts one NUL byte." msgstr "" -"Un carácter de formato puede ir precedido de un número de recuento que " -"repite tantas veces el carácter. Por ejemplo, la cadena de formato ``'4h'`` " -"significa exactamente lo mismo que ``'hhhh'`` ." -#: ../Doc/library/struct.rst:298 +#: ../Doc/library/struct.rst:308 msgid "" -"Whitespace characters between formats are ignored; a count and its format " -"must not contain whitespace though." +"The ``'p'`` format character encodes a \"Pascal string\", meaning a short " +"variable-length string stored in a *fixed number of bytes*, given by the " +"count. The first byte stored is the length of the string, or 255, whichever " +"is smaller. The bytes of the string follow. If the string passed in to :" +"func:`pack` is too long (longer than the count minus 1), only the leading " +"``count-1`` bytes of the string are stored. If the string is shorter than " +"``count-1``, it is padded with null bytes so that exactly count bytes in all " +"are used. Note that for :func:`unpack`, the ``'p'`` format character " +"consumes ``count`` bytes, but that the string returned can never contain " +"more than 255 bytes." msgstr "" -"Se omiten los caracteres de espacio entre formatos; sin embargo, un recuento " -"y su formato no deben contener espacios en blanco." +"El carácter de formato ``'p'`` codifica una \"cadena de Pascal\", lo que " +"significa una cadena de longitud variable corta almacenada en un número " +"*fijo de bytes*, dado por el recuento. El primer byte almacenado es el valor " +"mínimo entre la longitud de la cadena o 255. A continuación se encuentran " +"los bytes de la cadena. Si la cadena pasada a :func:`pack` es demasiado " +"larga (más larga que la cuenta menos 1), solo se almacenan los bytes " +"iniciales ``count-1`` de la cadena. Si la cadena es más corta que " +"``count-1``, se rellena con bytes nulos para que se utilicen exactamente los " +"bytes de recuento en total. Tenga en cuenta que para :func:`unpack`, el " +"carácter de formato ``'p'`` consume bytes ``count``, pero que la cadena " +"retornada nunca puede contener más de 255 bytes." -#: ../Doc/library/struct.rst:301 +#: ../Doc/library/struct.rst:320 +#, fuzzy msgid "" "For the ``'s'`` format character, the count is interpreted as the length of " "the bytes, not a repeat count like for the other format characters; for " -"example, ``'10s'`` means a single 10-byte string, while ``'10c'`` means 10 " -"characters. If a count is not given, it defaults to 1. For packing, the " +"example, ``'10s'`` means a single 10-byte string mapping to or from a single " +"Python byte string, while ``'10c'`` means 10 separate one byte character " +"elements (e.g., ``cccccccccc``) mapping to or from ten different Python byte " +"objects. (See :ref:`struct-examples` for a concrete demonstration of the " +"difference.) If a count is not given, it defaults to 1. For packing, the " "string is truncated or padded with null bytes as appropriate to make it fit. " "For unpacking, the resulting bytes object always has exactly the specified " "number of bytes. As a special case, ``'0s'`` means a single, empty string " @@ -809,7 +834,24 @@ msgstr "" "número especificado de bytes. Como caso especial, ``'0s'`` significa una " "sola cadena vacía (mientras que ``'0c'`` significa 0 caracteres)." -#: ../Doc/library/struct.rst:310 +#: ../Doc/library/struct.rst:333 +msgid "" +"A format character may be preceded by an integral repeat count. For " +"example, the format string ``'4h'`` means exactly the same as ``'hhhh'``." +msgstr "" +"Un carácter de formato puede ir precedido de un número de recuento que " +"repite tantas veces el carácter. Por ejemplo, la cadena de formato ``'4h'`` " +"significa exactamente lo mismo que ``'hhhh'`` ." + +#: ../Doc/library/struct.rst:336 +msgid "" +"Whitespace characters between formats are ignored; a count and its format " +"must not contain whitespace though." +msgstr "" +"Se omiten los caracteres de espacio entre formatos; sin embargo, un recuento " +"y su formato no deben contener espacios en blanco." + +#: ../Doc/library/struct.rst:339 msgid "" "When packing a value ``x`` using one of the integer formats (``'b'``, " "``'B'``, ``'h'``, ``'H'``, ``'i'``, ``'I'``, ``'l'``, ``'L'``, ``'q'``, " @@ -821,7 +863,7 @@ msgstr "" "``'q'``, ``'Q'``), si ``x`` está fuera de un rango válido para ese formato, " "entonces se lanza la excepción :exc:`struct.error`." -#: ../Doc/library/struct.rst:315 +#: ../Doc/library/struct.rst:344 msgid "" "Previously, some of the integer formats wrapped out-of-range values and " "raised :exc:`DeprecationWarning` instead of :exc:`struct.error`." @@ -829,32 +871,7 @@ msgstr "" "Anteriormente, algunos de los formatos enteros ajustaban los valores fuera " "de rango y lanzaban :exc:`DeprecationWarning` en vez de :exc:`struct.error`." -#: ../Doc/library/struct.rst:319 -msgid "" -"The ``'p'`` format character encodes a \"Pascal string\", meaning a short " -"variable-length string stored in a *fixed number of bytes*, given by the " -"count. The first byte stored is the length of the string, or 255, whichever " -"is smaller. The bytes of the string follow. If the string passed in to :" -"func:`pack` is too long (longer than the count minus 1), only the leading " -"``count-1`` bytes of the string are stored. If the string is shorter than " -"``count-1``, it is padded with null bytes so that exactly count bytes in all " -"are used. Note that for :func:`unpack`, the ``'p'`` format character " -"consumes ``count`` bytes, but that the string returned can never contain " -"more than 255 bytes." -msgstr "" -"El carácter de formato ``'p'`` codifica una \"cadena de Pascal\", lo que " -"significa una cadena de longitud variable corta almacenada en un número " -"*fijo de bytes*, dado por el recuento. El primer byte almacenado es el valor " -"mínimo entre la longitud de la cadena o 255. A continuación se encuentran " -"los bytes de la cadena. Si la cadena pasada a :func:`pack` es demasiado " -"larga (más larga que la cuenta menos 1), solo se almacenan los bytes " -"iniciales ``count-1`` de la cadena. Si la cadena es más corta que " -"``count-1``, se rellena con bytes nulos para que se utilicen exactamente los " -"bytes de recuento en total. Tenga en cuenta que para :func:`unpack`, el " -"carácter de formato ``'p'`` consume bytes ``count``, pero que la cadena " -"retornada nunca puede contener más de 255 bytes." - -#: ../Doc/library/struct.rst:332 +#: ../Doc/library/struct.rst:350 msgid "" "For the ``'?'`` format character, the return value is either :const:`True` " "or :const:`False`. When packing, the truth value of the argument object is " @@ -866,23 +883,33 @@ msgstr "" "argumento. Se empaquetará 0 o 1 en la representación *bool* nativa o " "estándar, y cualquier valor distinto de cero será ``True`` al desempaquetar." -#: ../Doc/library/struct.rst:342 +#: ../Doc/library/struct.rst:360 msgid "Examples" msgstr "Ejemplos" -#: ../Doc/library/struct.rst:345 +#: ../Doc/library/struct.rst:363 msgid "" -"All examples assume a native byte order, size, and alignment with a big-" -"endian machine." +"Native byte order examples (designated by the ``'@'`` format prefix or lack " +"of any prefix character) may not match what the reader's machine produces as " +"that depends on the platform and compiler." msgstr "" -"Todos los ejemplos asumen un orden de bytes, tamaño y alineación nativos con " -"una máquina big-endian." -#: ../Doc/library/struct.rst:348 -msgid "A basic example of packing/unpacking three integers::" -msgstr "Un ejemplo básico de empaquetado/desempaquetado de tres enteros::" +#: ../Doc/library/struct.rst:368 +msgid "" +"Pack and unpack integers of three different sizes, using big endian " +"ordering::" +msgstr "" -#: ../Doc/library/struct.rst:358 +#: ../Doc/library/struct.rst:379 +msgid "Attempt to pack an integer which is too large for the defined field::" +msgstr "" + +#: ../Doc/library/struct.rst:386 +msgid "" +"Demonstrate the difference between ``'s'`` and ``'c'`` format characters::" +msgstr "" + +#: ../Doc/library/struct.rst:394 msgid "" "Unpacked fields can be named by assigning them to variables or by wrapping " "the result in a named tuple::" @@ -890,85 +917,170 @@ msgstr "" "Los campos desempaquetados se pueden nombrar asignándolos a variables o " "ajustando el resultado en una tupla con nombre::" -#: ../Doc/library/struct.rst:369 +#: ../Doc/library/struct.rst:405 msgid "" -"The ordering of format characters may have an impact on size since the " -"padding needed to satisfy alignment requirements is different::" +"The ordering of format characters may have an impact on size in native mode " +"since padding is implicit. In standard mode, the user is responsible for " +"inserting any desired padding. Note in the first ``pack`` call below that " +"three NUL bytes were added after the packed ``'#'`` to align the following " +"integer on a four-byte boundary. In this example, the output was produced on " +"a little endian machine::" msgstr "" -"El orden de los caracteres de formato puede tener un impacto en el tamaño ya " -"que el relleno necesario para satisfacer los requisitos de alineación es " -"diferente::" -#: ../Doc/library/struct.rst:381 +#: ../Doc/library/struct.rst:422 +#, fuzzy msgid "" -"The following format ``'llh0l'`` specifies two pad bytes at the end, " -"assuming longs are aligned on 4-byte boundaries::" +"The following format ``'llh0l'`` results in two pad bytes being added at the " +"end, assuming the platform's longs are aligned on 4-byte boundaries::" msgstr "" "El siguiente formato ``'llh0l'`` especifica dos bytes de relleno al final, " "suponiendo que los tipos *longs* están alineados en los límites de 4 bytes::" -#: ../Doc/library/struct.rst:387 -msgid "" -"This only works when native size and alignment are in effect; standard size " -"and alignment does not enforce any alignment." -msgstr "" -"Esto solo funciona cuando el tamaño y la alineación nativos tienen efecto; " -"el tamaño estándar y la alineación no imponen ninguna alineación." - -#: ../Doc/library/struct.rst:394 +#: ../Doc/library/struct.rst:432 msgid "Module :mod:`array`" msgstr "Módulo :mod:`array`" -#: ../Doc/library/struct.rst:394 +#: ../Doc/library/struct.rst:432 msgid "Packed binary storage of homogeneous data." msgstr "Almacenamiento binario empaquetado de datos homogéneos." -#: ../Doc/library/struct.rst:396 -msgid "Module :mod:`xdrlib`" +#: ../Doc/library/struct.rst:435 +#, fuzzy +msgid "Module :mod:`json`" +msgstr "Módulo :mod:`array`" + +#: ../Doc/library/struct.rst:435 +msgid "JSON encoder and decoder." +msgstr "" + +#: ../Doc/library/struct.rst:437 +#, fuzzy +msgid "Module :mod:`pickle`" msgstr "Módulo :mod:`xdrlib`" -#: ../Doc/library/struct.rst:397 -msgid "Packing and unpacking of XDR data." -msgstr "Empaquetar y desempaquetar datos XDR." +#: ../Doc/library/struct.rst:438 +msgid "Python object serialization." +msgstr "" + +#: ../Doc/library/struct.rst:444 +msgid "Applications" +msgstr "" + +#: ../Doc/library/struct.rst:446 +msgid "" +"Two main applications for the :mod:`struct` module exist, data interchange " +"between Python and C code within an application or another application " +"compiled using the same compiler (:ref:`native formats`), and data interchange between applications using agreed upon data " +"layout (:ref:`standard formats`). Generally " +"speaking, the format strings constructed for these two domains are distinct." +msgstr "" + +#: ../Doc/library/struct.rst:457 +#, fuzzy +msgid "Native Formats" +msgstr "nativo" -#: ../Doc/library/struct.rst:403 +#: ../Doc/library/struct.rst:459 +msgid "" +"When constructing format strings which mimic native layouts, the compiler " +"and machine architecture determine byte ordering and padding. In such cases, " +"the ``@`` format character should be used to specify native byte ordering " +"and data sizes. Internal pad bytes are normally inserted automatically. It " +"is possible that a zero-repeat format code will be needed at the end of a " +"format string to round up to the correct byte boundary for proper alignment " +"of consecutive chunks of data." +msgstr "" + +#: ../Doc/library/struct.rst:467 +msgid "" +"Consider these two simple examples (on a 64-bit, little-endian machine)::" +msgstr "" + +#: ../Doc/library/struct.rst:475 +msgid "" +"Data is not padded to an 8-byte boundary at the end of the second format " +"string without the use of extra padding. A zero-repeat format code solves " +"that problem::" +msgstr "" + +#: ../Doc/library/struct.rst:482 +msgid "" +"The ``'x'`` format code can be used to specify the repeat, but for native " +"formats it is better to use a zero-repeat format like ``'0l'``." +msgstr "" + +#: ../Doc/library/struct.rst:485 +msgid "" +"By default, native byte ordering and alignment is used, but it is better to " +"be explicit and use the ``'@'`` prefix character." +msgstr "" + +#: ../Doc/library/struct.rst:492 +#, fuzzy +msgid "Standard Formats" +msgstr "Tamaño estándar" + +#: ../Doc/library/struct.rst:494 +msgid "" +"When exchanging data beyond your process such as networking or storage, be " +"precise. Specify the exact byte order, size, and alignment. Do not assume " +"they match the native order of a particular machine. For example, network " +"byte order is big-endian, while many popular CPUs are little-endian. By " +"defining this explicitly, the user need not care about the specifics of the " +"platform their code is running on. The first character should typically be " +"``<`` or ``>`` (or ``!``). Padding is the responsibility of the " +"programmer. The zero-repeat format character won't work. Instead, the user " +"must explicitly add ``'x'`` pad bytes where needed. Revisiting the examples " +"from the previous section, we have::" +msgstr "" + +#: ../Doc/library/struct.rst:521 +msgid "" +"The above results (executed on a 64-bit machine) aren't guaranteed to match " +"when executed on different machines. For example, the examples below were " +"executed on a 32-bit machine::" +msgstr "" + +#: ../Doc/library/struct.rst:536 msgid "Classes" msgstr "Clases" -#: ../Doc/library/struct.rst:405 +#: ../Doc/library/struct.rst:538 msgid "The :mod:`struct` module also defines the following type:" msgstr "El módulo :mod:`struct` también define el siguiente tipo:" -#: ../Doc/library/struct.rst:410 +#: ../Doc/library/struct.rst:543 +#, fuzzy msgid "" "Return a new Struct object which writes and reads binary data according to " -"the format string *format*. Creating a Struct object once and calling its " -"methods is more efficient than calling the :mod:`struct` functions with the " -"same format since the format string only needs to be compiled once." +"the format string *format*. Creating a ``Struct`` object once and calling " +"its methods is more efficient than calling module-level functions with the " +"same format since the format string is only compiled once." msgstr "" "Retorna un nuevo objeto Struct que escribe y lee datos binarios según la " "cadena de formato *format*. Crear un objeto Struct una vez y llamar a sus " "métodos es más eficaz que llamar a las funciones :mod:`struct` con el mismo " "formato, ya que la cadena de formato solo se compila una vez en ese caso." -#: ../Doc/library/struct.rst:417 +#: ../Doc/library/struct.rst:550 +#, fuzzy msgid "" -"The compiled versions of the most recent format strings passed to :class:" -"`Struct` and the module-level functions are cached, so programs that use " -"only a few format strings needn't worry about reusing a single :class:" -"`Struct` instance." +"The compiled versions of the most recent format strings passed to the module-" +"level functions are cached, so programs that use only a few format strings " +"needn't worry about reusing a single :class:`Struct` instance." msgstr "" "Las versiones compiladas de las cadenas de formato más recientes pasadas a :" "class:`Struct` y las funciones de nivel de módulo se almacenan en caché, por " "lo que los programas que utilizan solo unas pocas cadenas de formato no " "necesitan preocuparse por volver a usar una sola instancia :class:`Struct`." -#: ../Doc/library/struct.rst:422 +#: ../Doc/library/struct.rst:555 msgid "Compiled Struct objects support the following methods and attributes:" msgstr "" "Los objetos Struct compilados admiten los siguientes métodos y atributos:" -#: ../Doc/library/struct.rst:426 +#: ../Doc/library/struct.rst:559 msgid "" "Identical to the :func:`pack` function, using the compiled format. " "(``len(result)`` will equal :attr:`size`.)" @@ -976,12 +1088,12 @@ msgstr "" "Idéntico a la función :func:`pack`, utilizando el formato compilado. " "(``len(result)`` será igual a :attr:`size`.)" -#: ../Doc/library/struct.rst:432 +#: ../Doc/library/struct.rst:565 msgid "Identical to the :func:`pack_into` function, using the compiled format." msgstr "" "Idéntico a la función :func:`pack_into`, utilizando el formato compilado." -#: ../Doc/library/struct.rst:437 +#: ../Doc/library/struct.rst:570 msgid "" "Identical to the :func:`unpack` function, using the compiled format. The " "buffer's size in bytes must equal :attr:`size`." @@ -989,7 +1101,7 @@ msgstr "" "Idéntico a la función :func:`unpack`, utilizando el formato compilado. El " "tamaño del búfer en bytes debe ser igual a :attr:`size`." -#: ../Doc/library/struct.rst:443 +#: ../Doc/library/struct.rst:576 msgid "" "Identical to the :func:`unpack_from` function, using the compiled format. " "The buffer's size in bytes, starting at position *offset*, must be at least :" @@ -999,7 +1111,7 @@ msgstr "" "El tamaño del búfer en bytes, comenzando en la posición *offset*, debe ser " "al menos :attr:`size`." -#: ../Doc/library/struct.rst:450 +#: ../Doc/library/struct.rst:583 msgid "" "Identical to the :func:`iter_unpack` function, using the compiled format. " "The buffer's size in bytes must be a multiple of :attr:`size`." @@ -1007,20 +1119,133 @@ msgstr "" "Idéntico a la función :func:`iter_unpack`, utilizando el formato compilado. " "El tamaño del búfer en bytes debe ser un múltiplo de :attr:`size`." -#: ../Doc/library/struct.rst:457 +#: ../Doc/library/struct.rst:590 msgid "The format string used to construct this Struct object." msgstr "Cadena de formato utilizada para construir este objeto Struct." -#: ../Doc/library/struct.rst:459 +#: ../Doc/library/struct.rst:592 msgid "The format string type is now :class:`str` instead of :class:`bytes`." msgstr "" "El tipo de cadena de formato es ahora :class:`str` en lugar de :class:" "`bytes`." -#: ../Doc/library/struct.rst:464 +#: ../Doc/library/struct.rst:597 msgid "" "The calculated size of the struct (and hence of the bytes object produced by " "the :meth:`pack` method) corresponding to :attr:`format`." msgstr "" "El tamaño calculado de la estructura (y, por lo tanto, del objeto bytes " "generado por el método :meth:`pack`) correspondiente a :attr:`format`." + +#: ../Doc/library/struct.rst:9 +msgid "C" +msgstr "" + +#: ../Doc/library/struct.rst:9 +msgid "structures" +msgstr "" + +#: ../Doc/library/struct.rst:9 +msgid "packing" +msgstr "" + +#: ../Doc/library/struct.rst:9 +msgid "binary" +msgstr "" + +#: ../Doc/library/struct.rst:9 +msgid "data" +msgstr "" + +#: ../Doc/library/struct.rst:132 +msgid "@ (at)" +msgstr "" + +#: ../Doc/library/struct.rst:132 ../Doc/library/struct.rst:261 +#: ../Doc/library/struct.rst:348 +#, fuzzy +msgid "in struct format strings" +msgstr "Cadenas de formato" + +#: ../Doc/library/struct.rst:132 +msgid "= (equals)" +msgstr "" + +#: ../Doc/library/struct.rst:132 +msgid "< (less)" +msgstr "" + +#: ../Doc/library/struct.rst:132 +msgid "> (greater)" +msgstr "" + +#: ../Doc/library/struct.rst:132 +msgid "! (exclamation)" +msgstr "" + +#: ../Doc/library/struct.rst:261 ../Doc/library/struct.rst:348 +msgid "? (question mark)" +msgstr "" + +#~ msgid "" +#~ "This module performs conversions between Python values and C structs " +#~ "represented as Python :class:`bytes` objects. This can be used in " +#~ "handling binary data stored in files or from network connections, among " +#~ "other sources. It uses :ref:`struct-format-strings` as compact " +#~ "descriptions of the layout of the C structs and the intended conversion " +#~ "to/from Python values." +#~ msgstr "" +#~ "Este módulo realiza conversiones entre valores de Python y estructuras C " +#~ "representadas como objetos :class:`bytes` de Python. Se puede utilizar " +#~ "para el tratamiento de datos binarios almacenados en archivos o desde " +#~ "conexiones de red, entre otras fuentes. Utiliza :ref:`struct-format-" +#~ "strings` como descripciones compactas del diseño de las estructuras C y " +#~ "la conversión prevista a/desde valores de Python." + +#~ msgid "" +#~ "By default, the result of packing a given C struct includes pad bytes in " +#~ "order to maintain proper alignment for the C types involved; similarly, " +#~ "alignment is taken into account when unpacking. This behavior is chosen " +#~ "so that the bytes of a packed struct correspond exactly to the layout in " +#~ "memory of the corresponding C struct. To handle platform-independent " +#~ "data formats or omit implicit pad bytes, use ``standard`` size and " +#~ "alignment instead of ``native`` size and alignment: see :ref:`struct-" +#~ "alignment` for details." +#~ msgstr "" +#~ "Por defecto, el resultado de empaquetar una estructura C determinada " +#~ "incluye bytes de relleno para mantener la alineación adecuada para los " +#~ "tipos correspondientes en C; del mismo modo, la alineación se tiene en " +#~ "cuenta al desempaquetar. Este comportamiento se elige para que los bytes " +#~ "de una estructura empaquetada se correspondan exactamente con el diseño " +#~ "en memoria de la estructura C correspondiente. Para tratar formatos de " +#~ "datos que sean independientes de la plataforma u omitir bytes de relleno " +#~ "implícitos, utiliza el tamaño y la alineación ``estándar`` en lugar del " +#~ "``nativo``: ver :ref:`struct-alignment` para obtener más información." + +#~ msgid "" +#~ "All examples assume a native byte order, size, and alignment with a big-" +#~ "endian machine." +#~ msgstr "" +#~ "Todos los ejemplos asumen un orden de bytes, tamaño y alineación nativos " +#~ "con una máquina big-endian." + +#~ msgid "A basic example of packing/unpacking three integers::" +#~ msgstr "Un ejemplo básico de empaquetado/desempaquetado de tres enteros::" + +#~ msgid "" +#~ "The ordering of format characters may have an impact on size since the " +#~ "padding needed to satisfy alignment requirements is different::" +#~ msgstr "" +#~ "El orden de los caracteres de formato puede tener un impacto en el tamaño " +#~ "ya que el relleno necesario para satisfacer los requisitos de alineación " +#~ "es diferente::" + +#~ msgid "" +#~ "This only works when native size and alignment are in effect; standard " +#~ "size and alignment does not enforce any alignment." +#~ msgstr "" +#~ "Esto solo funciona cuando el tamaño y la alineación nativos tienen " +#~ "efecto; el tamaño estándar y la alineación no imponen ninguna alineación." + +#~ msgid "Packing and unpacking of XDR data." +#~ msgstr "Empaquetar y desempaquetar datos XDR." diff --git a/library/subprocess.po b/library/subprocess.po index 2591f2c9c9..33e4ddc204 100644 --- a/library/subprocess.po +++ b/library/subprocess.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-12-12 12:22-0300\n" "Last-Translator: Rodrigo Tobar \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/subprocess.rst:2 msgid ":mod:`subprocess` --- Subprocess management" @@ -52,11 +52,12 @@ msgstr "" msgid ":pep:`324` -- PEP proposing the subprocess module" msgstr ":pep:`324` -- PEP de proposición del módulo `subprocess`" +#: ../Doc/includes/wasm-notavail.rst:3 #, fuzzy msgid ":ref:`Availability `: not Emscripten, not WASI." msgstr ":ref:`Disponibilidad `: no Emscripten, no WASI." -#: ../Doc/library/cpython/Doc/includes/wasm-notavail.rst:5 +#: ../Doc/includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly platforms " "``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for " @@ -122,17 +123,20 @@ msgstr "" "en lugar de *capture_output*." #: ../Doc/library/subprocess.rst:60 +#, fuzzy msgid "" -"The *timeout* argument is passed to :meth:`Popen.communicate`. If the " -"timeout expires, the child process will be killed and waited for. The :exc:" -"`TimeoutExpired` exception will be re-raised after the child process has " -"terminated." +"A *timeout* may be specified in seconds, it is internally passed on to :meth:" +"`Popen.communicate`. If the timeout expires, the child process will be " +"killed and waited for. The :exc:`TimeoutExpired` exception will be re-raised " +"after the child process has terminated. The initial process creation itself " +"cannot be interrupted on many platform APIs so you are not guaranteed to see " +"a timeout exception until at least after however long process creation takes." msgstr "" "El argumento *timeout* se pasa a :meth:`Popen.communicate`. Si vence el " "plazo de ejecución, se matará el proceso hijo y se le esperará. Se relanzará " "la excepción :exc:`TimeoutExpired` cuando finalice el proceso hijo." -#: ../Doc/library/subprocess.rst:65 +#: ../Doc/library/subprocess.rst:68 msgid "" "The *input* argument is passed to :meth:`Popen.communicate` and thus to the " "subprocess's stdin. If used it must be a byte sequence, or a string if " @@ -147,7 +151,7 @@ msgstr "" "automáticamente con ``stdin=PIPE`` y no se puede usar el argumento *stdin* a " "la vez." -#: ../Doc/library/subprocess.rst:71 +#: ../Doc/library/subprocess.rst:74 msgid "" "If *check* is true, and the process exits with a non-zero exit code, a :exc:" "`CalledProcessError` exception will be raised. Attributes of that exception " @@ -159,7 +163,7 @@ msgstr "" "excepción contendrán los argumentos, el código retornado y tanto stdout como " "stderr si se capturaron." -#: ../Doc/library/subprocess.rst:76 +#: ../Doc/library/subprocess.rst:79 msgid "" "If *encoding* or *errors* are specified, or *text* is true, file objects for " "stdin, stdout and stderr are opened in text mode using the specified " @@ -174,27 +178,30 @@ msgstr "" "admite por compatibilidad hacia atrás. Los objetos fichero se abren en modo " "binario por defecto." -#: ../Doc/library/subprocess.rst:82 +#: ../Doc/library/subprocess.rst:85 +#, fuzzy msgid "" "If *env* is not ``None``, it must be a mapping that defines the environment " "variables for the new process; these are used instead of the default " "behavior of inheriting the current process' environment. It is passed " -"directly to :class:`Popen`." +"directly to :class:`Popen`. This mapping can be str to str on any platform " +"or bytes to bytes on POSIX platforms much like :data:`os.environ` or :data:" +"`os.environb`." msgstr "" "Si *env* no es ``None``, debe ser un mapeo que defina las variables de " "entorno para el nuevo proceso; se utilizarán éstas en lugar del " "comportamiento predeterminado de heredar el entorno del proceso actual. Se " "le pasa directamente a :class:`Popen`." -#: ../Doc/library/subprocess.rst:87 +#: ../Doc/library/subprocess.rst:92 msgid "Examples::" msgstr "Ejemplos::" -#: ../Doc/library/subprocess.rst:105 +#: ../Doc/library/subprocess.rst:110 msgid "Added *encoding* and *errors* parameters" msgstr "Se añadieron los parámetros *encoding* y *errors*" -#: ../Doc/library/subprocess.rst:109 +#: ../Doc/library/subprocess.rst:114 msgid "" "Added the *text* parameter, as a more understandable alias of " "*universal_newlines*. Added the *capture_output* parameter." @@ -202,20 +209,30 @@ msgstr "" "Se añadió el parámetro *text* como alias más comprensible de " "*universal_newlines*. Se añadió el parámetro *capture_output*." -#: ../Doc/library/subprocess.rst:114 +#: ../Doc/library/subprocess.rst:119 ../Doc/library/subprocess.rst:503 +#: ../Doc/library/subprocess.rst:1185 ../Doc/library/subprocess.rst:1225 +#: ../Doc/library/subprocess.rst:1288 +msgid "" +"Changed Windows shell search order for ``shell=True``. The current directory " +"and ``%PATH%`` are replaced with ``%COMSPEC%`` and ``%SystemRoot%" +"\\System32\\cmd.exe``. As a result, dropping a malicious program named ``cmd." +"exe`` into a current directory no longer works." +msgstr "" + +#: ../Doc/library/subprocess.rst:127 msgid "" "The return value from :func:`run`, representing a process that has finished." msgstr "" "El valor retornado por :func:`run`, que representa un proceso ya terminado." -#: ../Doc/library/subprocess.rst:118 +#: ../Doc/library/subprocess.rst:131 msgid "" "The arguments used to launch the process. This may be a list or a string." msgstr "" "Los argumentos utilizados para lanzar el proceso. Pueden ser una lista o una " "cadena." -#: ../Doc/library/subprocess.rst:122 +#: ../Doc/library/subprocess.rst:135 msgid "" "Exit status of the child process. Typically, an exit status of 0 indicates " "that it ran successfully." @@ -223,7 +240,7 @@ msgstr "" "Estado de salida del proceso hijo. Típicamente, un estado de salida 0 indica " "que la ejecución tuvo éxito." -#: ../Doc/library/subprocess.rst:125 ../Doc/library/subprocess.rst:907 +#: ../Doc/library/subprocess.rst:138 ../Doc/library/subprocess.rst:932 msgid "" "A negative value ``-N`` indicates that the child was terminated by signal " "``N`` (POSIX only)." @@ -231,7 +248,7 @@ msgstr "" "Un valor negativo ``-N`` indica que el hijo fue forzado a terminar con la " "señal ``N`` (solamente POSIX)." -#: ../Doc/library/subprocess.rst:130 +#: ../Doc/library/subprocess.rst:143 msgid "" "Captured stdout from the child process. A bytes sequence, or a string if :" "func:`run` was called with an encoding, errors, or text=True. ``None`` if " @@ -241,7 +258,7 @@ msgstr "" "cadena si se llamó a :func:`run` con *encoding*, *errors*, o *text* " "establecidos a ``True``. ``None`` si no se capturó el error estándar." -#: ../Doc/library/subprocess.rst:134 +#: ../Doc/library/subprocess.rst:147 msgid "" "If you ran the process with ``stderr=subprocess.STDOUT``, stdout and stderr " "will be combined in this attribute, and :attr:`stderr` will be ``None``." @@ -249,7 +266,7 @@ msgstr "" "Si se ejecutó el proceso con ``stderr=subprocess.STDOUT``, stdout y stderr " "se combinarán en este atributo, y :attr:`stderr` será ``None``." -#: ../Doc/library/subprocess.rst:140 +#: ../Doc/library/subprocess.rst:153 msgid "" "Captured stderr from the child process. A bytes sequence, or a string if :" "func:`run` was called with an encoding, errors, or text=True. ``None`` if " @@ -259,11 +276,11 @@ msgstr "" "cadena si se llamó a :func:`run` con *encoding*, *errors*, o *text* " "establecidos a ``True``. ``None`` si no se capturó el error estándar." -#: ../Doc/library/subprocess.rst:146 +#: ../Doc/library/subprocess.rst:159 msgid "If :attr:`returncode` is non-zero, raise a :exc:`CalledProcessError`." msgstr "Si :attr:`returncode` no es cero, lanza un :exc:`CalledProcessError`." -#: ../Doc/library/subprocess.rst:152 +#: ../Doc/library/subprocess.rst:165 msgid "" "Special value that can be used as the *stdin*, *stdout* or *stderr* argument " "to :class:`Popen` and indicates that the special file :data:`os.devnull` " @@ -273,7 +290,7 @@ msgstr "" "de :class:`Popen` y que indica que se usará el fichero especial :data:`os." "devnull`." -#: ../Doc/library/subprocess.rst:161 +#: ../Doc/library/subprocess.rst:174 msgid "" "Special value that can be used as the *stdin*, *stdout* or *stderr* argument " "to :class:`Popen` and indicates that a pipe to the standard stream should be " @@ -283,7 +300,7 @@ msgstr "" "de :class:`Popen` y que indica que se abrirá un pipe al flujo indicado. Es " "útil para usarlo con :meth:`Popen.communicate`." -#: ../Doc/library/subprocess.rst:168 +#: ../Doc/library/subprocess.rst:181 msgid "" "Special value that can be used as the *stderr* argument to :class:`Popen` " "and indicates that standard error should go into the same handle as standard " @@ -293,11 +310,11 @@ msgstr "" "que indica que el error estándar debería ir al mismo gestor que la salida " "estándar." -#: ../Doc/library/subprocess.rst:175 +#: ../Doc/library/subprocess.rst:188 msgid "Base class for all other exceptions from this module." msgstr "Clase base para el resto de excepciones de este módulo." -#: ../Doc/library/subprocess.rst:182 +#: ../Doc/library/subprocess.rst:195 msgid "" "Subclass of :exc:`SubprocessError`, raised when a timeout expires while " "waiting for a child process." @@ -305,15 +322,15 @@ msgstr "" "Subclase de :exc:`SubprocessError`, se lanza cuando expira un plazo de " "ejecución esperando a un proceso hijo." -#: ../Doc/library/subprocess.rst:187 ../Doc/library/subprocess.rst:231 +#: ../Doc/library/subprocess.rst:200 ../Doc/library/subprocess.rst:244 msgid "Command that was used to spawn the child process." msgstr "Orden que se utilizó para lanzar el proceso hijo." -#: ../Doc/library/subprocess.rst:191 +#: ../Doc/library/subprocess.rst:204 msgid "Timeout in seconds." msgstr "Plazo de ejecución en segundos." -#: ../Doc/library/subprocess.rst:195 +#: ../Doc/library/subprocess.rst:208 msgid "" "Output of the child process if it was captured by :func:`run` or :func:" "`check_output`. Otherwise, ``None``. This is always :class:`bytes` when " @@ -326,11 +343,11 @@ msgstr "" "``text=True``. Puede permanecer ``None`` en lugar de ``b''`` cuando no se " "observó ningún resultado." -#: ../Doc/library/subprocess.rst:203 ../Doc/library/subprocess.rst:240 +#: ../Doc/library/subprocess.rst:216 ../Doc/library/subprocess.rst:253 msgid "Alias for output, for symmetry with :attr:`stderr`." msgstr "Alias de *output*, por simetría con :attr:`stderr`." -#: ../Doc/library/subprocess.rst:207 +#: ../Doc/library/subprocess.rst:220 msgid "" "Stderr output of the child process if it was captured by :func:`run`. " "Otherwise, ``None``. This is always :class:`bytes` when stderr output was " @@ -343,11 +360,11 @@ msgstr "" "permanecer como ``None`` en lugar de ``b''`` cuando no se observó ninguna " "salida de stderr." -#: ../Doc/library/subprocess.rst:214 ../Doc/library/subprocess.rst:247 +#: ../Doc/library/subprocess.rst:227 ../Doc/library/subprocess.rst:260 msgid "*stdout* and *stderr* attributes added" msgstr "Se añadieron los atributos *stdout* y *stderr*" -#: ../Doc/library/subprocess.rst:219 +#: ../Doc/library/subprocess.rst:232 msgid "" "Subclass of :exc:`SubprocessError`, raised when a process run by :func:" "`check_call`, :func:`check_output`, or :func:`run` (with ``check=True``) " @@ -357,7 +374,7 @@ msgstr "" "func:`check_call`, :func:`check_output` o :func:`run` (con ``check=True``) " "devuelve un estado de salida distinto de cero." -#: ../Doc/library/subprocess.rst:226 +#: ../Doc/library/subprocess.rst:239 msgid "" "Exit status of the child process. If the process exited due to a signal, " "this will be the negative signal number." @@ -365,7 +382,7 @@ msgstr "" "Estado de salida del proceso hijo. Si el proceso terminó por causa de una " "señal, el estado será el número de la señal en negativo." -#: ../Doc/library/subprocess.rst:235 +#: ../Doc/library/subprocess.rst:248 msgid "" "Output of the child process if it was captured by :func:`run` or :func:" "`check_output`. Otherwise, ``None``." @@ -373,7 +390,7 @@ msgstr "" "Salida del proceso hijo si fue capturada por :func:`run` o :func:" "`check_output`. De otro modo, ``None``." -#: ../Doc/library/subprocess.rst:244 +#: ../Doc/library/subprocess.rst:257 msgid "" "Stderr output of the child process if it was captured by :func:`run`. " "Otherwise, ``None``." @@ -381,11 +398,11 @@ msgstr "" "Salida de *stderr* del proceso hijo si fue capturada por :func:`run`. De " "otro modo, ``None``." -#: ../Doc/library/subprocess.rst:254 +#: ../Doc/library/subprocess.rst:267 msgid "Frequently Used Arguments" msgstr "Argumentos frecuentemente empleados" -#: ../Doc/library/subprocess.rst:256 +#: ../Doc/library/subprocess.rst:269 msgid "" "To support a wide variety of use cases, the :class:`Popen` constructor (and " "the convenience functions) accept a large number of optional arguments. For " @@ -397,7 +414,7 @@ msgstr "" "Para los usos más habituales, se pueden dejar de forma segura los valores " "por defecto. Los argumentos más frecuentemente necesarios son:" -#: ../Doc/library/subprocess.rst:261 +#: ../Doc/library/subprocess.rst:274 msgid "" "*args* is required for all calls and should be a string, or a sequence of " "program arguments. Providing a sequence of arguments is generally preferred, " @@ -415,19 +432,19 @@ msgstr "" "la cadena debe ser el nombre del programa a ejecutar sin especificar ningún " "argumento." -#: ../Doc/library/subprocess.rst:269 +#: ../Doc/library/subprocess.rst:282 +#, fuzzy msgid "" "*stdin*, *stdout* and *stderr* specify the executed program's standard " "input, standard output and standard error file handles, respectively. Valid " -"values are :data:`PIPE`, :data:`DEVNULL`, an existing file descriptor (a " -"positive integer), an existing file object with a valid file descriptor, and " -"``None``. :data:`PIPE` indicates that a new pipe to the child should be " -"created. :data:`DEVNULL` indicates that the special file :data:`os.devnull` " -"will be used. With the default settings of ``None``, no redirection will " -"occur; the child's file handles will be inherited from the parent. " -"Additionally, *stderr* can be :data:`STDOUT`, which indicates that the " -"stderr data from the child process should be captured into the same file " -"handle as for *stdout*." +"values are ``None``, :data:`PIPE`, :data:`DEVNULL`, an existing file " +"descriptor (a positive integer), and an existing :term:`file object` with a " +"valid file descriptor. With the default settings of ``None``, no " +"redirection will occur. :data:`PIPE` indicates that a new pipe to the child " +"should be created. :data:`DEVNULL` indicates that the special file :data:" +"`os.devnull` will be used. Additionally, *stderr* can be :data:`STDOUT`, " +"which indicates that the stderr data from the child process should be " +"captured into the same file handle as for *stdout*." msgstr "" "*stdin*, *stdout* y *stderr* especifican la entrada estándar, la salida " "estándar y los identificadores de archivo de error estándar del programa " @@ -442,7 +459,7 @@ msgstr "" "estándar del proceso secundario deben capturarse en el mismo identificador " "de archivo que para *stdout*." -#: ../Doc/library/subprocess.rst:284 +#: ../Doc/library/subprocess.rst:296 msgid "" "If *encoding* or *errors* are specified, or *text* (also known as " "*universal_newlines*) is true, the file objects *stdin*, *stdout* and " @@ -455,7 +472,7 @@ msgstr "" "especificados en la llamada o los valores predeterminados de :class:`io." "TextIOWrapper`." -#: ../Doc/library/subprocess.rst:290 +#: ../Doc/library/subprocess.rst:302 msgid "" "For *stdin*, line ending characters ``'\\n'`` in the input will be converted " "to the default line separator :data:`os.linesep`. For *stdout* and *stderr*, " @@ -470,7 +487,7 @@ msgstr "" "TextIOWrapper` para el caso en que el argumento *newline* de su constructor " "es ``None``." -#: ../Doc/library/subprocess.rst:296 +#: ../Doc/library/subprocess.rst:308 msgid "" "If text mode is not used, *stdin*, *stdout* and *stderr* will be opened as " "binary streams. No encoding or line ending conversion is performed." @@ -479,15 +496,15 @@ msgstr "" "flujos binarios. No se realizará ninguna codificación ni conversión de salto " "de línea." -#: ../Doc/library/subprocess.rst:299 +#: ../Doc/library/subprocess.rst:311 msgid "Added *encoding* and *errors* parameters." msgstr "Se añadieron los parámetros *encoding* y *errors*." -#: ../Doc/library/subprocess.rst:302 +#: ../Doc/library/subprocess.rst:314 msgid "Added the *text* parameter as an alias for *universal_newlines*." msgstr "Se añadió el parámetro *text* como alias de *universal_newlines*." -#: ../Doc/library/subprocess.rst:307 +#: ../Doc/library/subprocess.rst:319 msgid "" "The newlines attribute of the file objects :attr:`Popen.stdin`, :attr:`Popen." "stdout` and :attr:`Popen.stderr` are not updated by the :meth:`Popen." @@ -497,7 +514,7 @@ msgstr "" "`Popen.stdout` y :attr:`Popen.stderr` no es actualizado por el método :meth:" "`Popen.communicate`." -#: ../Doc/library/subprocess.rst:311 +#: ../Doc/library/subprocess.rst:323 msgid "" "If *shell* is ``True``, the specified command will be executed through the " "shell. This can be useful if you are using Python primarily for the " @@ -520,7 +537,7 @@ msgstr "" "func:`os.walk`, :func:`os.path.expandvars`, :func:`os.path.expanduser`, y :" "mod:`shutil`)." -#: ../Doc/library/subprocess.rst:321 +#: ../Doc/library/subprocess.rst:333 msgid "" "When *universal_newlines* is ``True``, the class uses the encoding :func:" "`locale.getpreferredencoding(False) ` instead " @@ -532,14 +549,14 @@ msgstr "" "de ``locale.getpreferredencoding()``. Ver la clase :class:`io." "TextIOWrapper` para obtener más información sobre este cambio." -#: ../Doc/library/subprocess.rst:329 ../Doc/library/subprocess.rst:450 +#: ../Doc/library/subprocess.rst:341 ../Doc/library/subprocess.rst:462 msgid "" "Read the `Security Considerations`_ section before using ``shell=True``." msgstr "" "Leer la sección `Consideraciones sobre la seguridad`_ antes de usar " "``shell=True``." -#: ../Doc/library/subprocess.rst:331 +#: ../Doc/library/subprocess.rst:343 msgid "" "These options, along with all of the other options, are described in more " "detail in the :class:`Popen` constructor documentation." @@ -547,11 +564,11 @@ msgstr "" "Estas opciones y el resto se describen con más detalle en la documentación " "del constructor de :class:`Popen`." -#: ../Doc/library/subprocess.rst:336 +#: ../Doc/library/subprocess.rst:348 msgid "Popen Constructor" msgstr "El constructor de Popen" -#: ../Doc/library/subprocess.rst:338 +#: ../Doc/library/subprocess.rst:350 msgid "" "The underlying process creation and management in this module is handled by " "the :class:`Popen` class. It offers a lot of flexibility so that developers " @@ -563,7 +580,7 @@ msgstr "" "desarrolladores sean capaces de gestionar los casos menos comunes que quedan " "sin cubrir por las funciones auxiliares." -#: ../Doc/library/subprocess.rst:353 +#: ../Doc/library/subprocess.rst:365 msgid "" "Execute a child program in a new process. On POSIX, the class uses :meth:" "`os.execvpe`-like behavior to execute the child program. On Windows, the " @@ -575,7 +592,7 @@ msgstr "" "clase usa la función ``CreateProcess()`` de Windows. Los argumentos de :" "class:`Popen` son los siguientes." -#: ../Doc/library/subprocess.rst:358 +#: ../Doc/library/subprocess.rst:370 msgid "" "*args* should be a sequence of program arguments or else a single string or :" "term:`path-like object`. By default, the program to execute is the first " @@ -593,7 +610,7 @@ msgstr "" "*executable* para más información sobre el comportamiento por defecto. Salvo " "que se indique, se recomienda pasar los *args* como una secuencia." -#: ../Doc/library/subprocess.rst:368 +#: ../Doc/library/subprocess.rst:380 msgid "" "For maximum reliability, use a fully qualified path for the executable. To " "search for an unqualified name on :envvar:`PATH`, use :meth:`shutil.which`. " @@ -607,7 +624,7 @@ msgstr "" "forma recomendada de iniciar de nuevo el intérprete de Python actual y usar " "el formato de línea de comandos ``-m`` para iniciar un módulo instalado." -#: ../Doc/library/subprocess.rst:374 +#: ../Doc/library/subprocess.rst:386 msgid "" "Resolving the path of *executable* (or the first item of *args*) is platform " "dependent. For POSIX, see :meth:`os.execvpe`, and note that when resolving " @@ -631,7 +648,7 @@ msgstr "" "anular la variable de entorno ``PATH``. El uso de una ruta completa evita " "todas estas variaciones." -#: ../Doc/library/subprocess.rst:385 +#: ../Doc/library/subprocess.rst:397 msgid "" "An example of passing some arguments to an external program as a sequence " "is::" @@ -639,7 +656,7 @@ msgstr "" "Un ejemplo del paso de argumentos a un programa externo mediante una " "secuencia::" -#: ../Doc/library/subprocess.rst:390 +#: ../Doc/library/subprocess.rst:402 msgid "" "On POSIX, if *args* is a string, the string is interpreted as the name or " "path of the program to execute. However, this can only be done if not " @@ -649,7 +666,7 @@ msgstr "" "programa que ejecutar. Sin embargo, esto solamente funciona si no hay que " "pasar argumentos al programa." -#: ../Doc/library/subprocess.rst:396 +#: ../Doc/library/subprocess.rst:408 msgid "" "It may not be obvious how to break a shell command into a sequence of " "arguments, especially in complex cases. :meth:`shlex.split` can illustrate " @@ -659,7 +676,7 @@ msgstr "" "secuencia de argumentos, especialmente en casos complejos. :meth:`shlex." "split` puede aclarar cómo determinar la descomposición en tokens de *args*::" -#: ../Doc/library/subprocess.rst:408 +#: ../Doc/library/subprocess.rst:420 msgid "" "Note in particular that options (such as *-input*) and arguments (such as " "*eggs.txt*) that are separated by whitespace in the shell go in separate " @@ -674,7 +691,7 @@ msgstr "" "(como los nombres de ficheros con espacios o la orden *echo* anteriormente " "mostrada) son elementos simples de la lista." -#: ../Doc/library/subprocess.rst:414 +#: ../Doc/library/subprocess.rst:426 msgid "" "On Windows, if *args* is a sequence, it will be converted to a string in a " "manner described in :ref:`converting-argument-sequence`. This is because " @@ -684,7 +701,7 @@ msgstr "" "descrito en :ref:`converting-argument-sequence`. Esto es así porque la " "función de bajo nivel ``CreateProcess()`` funciona sobre cadenas." -#: ../Doc/library/subprocess.rst:418 +#: ../Doc/library/subprocess.rst:430 msgid "" "*args* parameter accepts a :term:`path-like object` if *shell* is ``False`` " "and a sequence containing path-like objects on POSIX." @@ -692,7 +709,7 @@ msgstr "" "El parámetro *args* toma un :term:`objeto tipo ruta ` si " "*shell* es ``False`` y una secuencia de objetos tipo fichero en POSIX." -#: ../Doc/library/subprocess.rst:422 +#: ../Doc/library/subprocess.rst:434 msgid "" "*args* parameter accepts a :term:`path-like object` if *shell* is ``False`` " "and a sequence containing bytes and path-like objects on Windows." @@ -701,7 +718,7 @@ msgstr "" "*shell* es ``False`` y una secuencia de bytes y objetos tipo fichero en " "Windows." -#: ../Doc/library/subprocess.rst:427 +#: ../Doc/library/subprocess.rst:439 msgid "" "The *shell* argument (which defaults to ``False``) specifies whether to use " "the shell as the program to execute. If *shell* is ``True``, it is " @@ -711,7 +728,7 @@ msgstr "" "como programa a ejecutar. Si *shell* es ``True``, se recomienda pasar *args* " "como cadena mejor que como secuencia." -#: ../Doc/library/subprocess.rst:431 +#: ../Doc/library/subprocess.rst:443 msgid "" "On POSIX with ``shell=True``, the shell defaults to :file:`/bin/sh`. If " "*args* is a string, the string specifies the command to execute through the " @@ -732,7 +749,7 @@ msgstr "" "tratado como argumentos adicionales a la propia shell. De este modo, :class:" "`Popen` hace el equivalente de::" -#: ../Doc/library/subprocess.rst:442 +#: ../Doc/library/subprocess.rst:454 msgid "" "On Windows with ``shell=True``, the :envvar:`COMSPEC` environment variable " "specifies the default shell. The only time you need to specify " @@ -747,7 +764,7 @@ msgstr "" "especificar ``shell=True`` para ejecutar un fichero por lotes o un " "ejecutable de consola." -#: ../Doc/library/subprocess.rst:452 +#: ../Doc/library/subprocess.rst:464 msgid "" "*bufsize* will be supplied as the corresponding argument to the :func:`open` " "function when creating the stdin/stdout/stderr pipe file objects:" @@ -756,29 +773,31 @@ msgstr "" "func:`open` cuando se creen los objetos fichero de los flujos stdin/stdout/" "stderr:" -#: ../Doc/library/subprocess.rst:456 +#: ../Doc/library/subprocess.rst:468 +#, fuzzy msgid "" -":const:`0` means unbuffered (read and write are one system call and can " -"return short)" +"``0`` means unbuffered (read and write are one system call and can return " +"short)" msgstr "" ":const:`0` significa sin búfer (*read* y *write* son una llamada al sistema " "y pueden retornar datos parciales)" -#: ../Doc/library/subprocess.rst:458 +#: ../Doc/library/subprocess.rst:470 +#, fuzzy msgid "" -":const:`1` means line buffered (only usable if ``universal_newlines=True`` i." -"e., in a text mode)" +"``1`` means line buffered (only usable if ``text=True`` or " +"``universal_newlines=True``)" msgstr "" ":const:`1` significa usar búfer de líneas (solamente se puede usar si " "``universal_newlines=True``, es decir, en modo texto)" -#: ../Doc/library/subprocess.rst:460 +#: ../Doc/library/subprocess.rst:472 msgid "any other positive value means use a buffer of approximately that size" msgstr "" "cualquier otro valor positivo indica que hay que usar un búfer de " "aproximadamente dicho tamaño" -#: ../Doc/library/subprocess.rst:462 +#: ../Doc/library/subprocess.rst:474 msgid "" "negative bufsize (the default) means the system default of io." "DEFAULT_BUFFER_SIZE will be used." @@ -786,13 +805,14 @@ msgstr "" "*bufsize* negativo (el valor por defecto) indica que se use el valor " "predeterminado del sistema, `io.DEFAULT_BUFFER_SIZE`." -#: ../Doc/library/subprocess.rst:465 +#: ../Doc/library/subprocess.rst:477 +#, fuzzy msgid "" "*bufsize* now defaults to -1 to enable buffering by default to match the " "behavior that most code expects. In versions prior to Python 3.2.4 and " -"3.3.1 it incorrectly defaulted to :const:`0` which was unbuffered and " -"allowed short reads. This was unintentional and did not match the behavior " -"of Python 2 as most code expected." +"3.3.1 it incorrectly defaulted to ``0`` which was unbuffered and allowed " +"short reads. This was unintentional and did not match the behavior of " +"Python 2 as most code expected." msgstr "" "*bufsize* es ahora -1 por defecto para permitir que el buffering por defecto " "se comporte como o que la mayoría del código espera. En versiones " @@ -801,7 +821,7 @@ msgstr "" "intencionado y no se correspondía con el comportamiento de Python 2 como la " "mayoría de códigos esperan." -#: ../Doc/library/subprocess.rst:472 +#: ../Doc/library/subprocess.rst:484 msgid "" "The *executable* argument specifies a replacement program to execute. It " "is very seldom needed. When ``shell=False``, *executable* replaces the " @@ -823,13 +843,13 @@ msgstr "" "``shell=True``, en POSIX el argumento *executable* especifica una shell de " "reemplazo de la predeterminada :file:`/bin/sh`." -#: ../Doc/library/subprocess.rst:482 +#: ../Doc/library/subprocess.rst:494 msgid "*executable* parameter accepts a :term:`path-like object` on POSIX." msgstr "" "El parámetro *executable* acepta un :term:`objeto tipo ruta ` en POSIX." -#: ../Doc/library/subprocess.rst:485 +#: ../Doc/library/subprocess.rst:497 msgid "" "*executable* parameter accepts a bytes and :term:`path-like object` on " "Windows." @@ -837,19 +857,19 @@ msgstr "" "El parámetro *executable* acepta bytes y un :term:`objeto tipo ruta ` en POSIX." -#: ../Doc/library/subprocess.rst:489 +#: ../Doc/library/subprocess.rst:509 +#, fuzzy msgid "" "*stdin*, *stdout* and *stderr* specify the executed program's standard " "input, standard output and standard error file handles, respectively. Valid " -"values are :data:`PIPE`, :data:`DEVNULL`, an existing file descriptor (a " -"positive integer), an existing :term:`file object` with a valid file " -"descriptor, and ``None``. :data:`PIPE` indicates that a new pipe to the " -"child should be created. :data:`DEVNULL` indicates that the special file :" -"data:`os.devnull` will be used. With the default settings of ``None``, no " -"redirection will occur; the child's file handles will be inherited from the " -"parent. Additionally, *stderr* can be :data:`STDOUT`, which indicates that " -"the stderr data from the applications should be captured into the same file " -"handle as for stdout." +"values are ``None``, :data:`PIPE`, :data:`DEVNULL`, an existing file " +"descriptor (a positive integer), and an existing :term:`file object` with a " +"valid file descriptor. With the default settings of ``None``, no " +"redirection will occur. :data:`PIPE` indicates that a new pipe to the child " +"should be created. :data:`DEVNULL` indicates that the special file :data:" +"`os.devnull` will be used. Additionally, *stderr* can be :data:`STDOUT`, " +"which indicates that the stderr data from the applications should be " +"captured into the same file handle as for *stdout*." msgstr "" "*stdin*, *stdout* y *stderr* especifican la entrada estándar, la salida " "estándar y los identificadores de archivo de error estándar del programa " @@ -864,7 +884,7 @@ msgstr "" "stderr de las aplicaciones deben capturarse en el mismo identificador de " "archivo que para stdout." -#: ../Doc/library/subprocess.rst:501 +#: ../Doc/library/subprocess.rst:520 msgid "" "If *preexec_fn* is set to a callable object, this object will be called in " "the child process just before the child is executed. (POSIX only)" @@ -873,7 +893,7 @@ msgstr "" "objeto en el proceso hijo justo antes de que se ejecute el hijo. (solamente " "POSIX)" -#: ../Doc/library/subprocess.rst:507 +#: ../Doc/library/subprocess.rst:526 msgid "" "The *preexec_fn* parameter is NOT SAFE to use in the presence of threads in " "your application. The child process could deadlock before exec is called." @@ -881,7 +901,7 @@ msgstr "" "El parámetro *preexec_fn* NO ES SEGURO para usar en presencia de hilos en su " "aplicación. El subproceso podría bloquearse antes de que se llame a exec." -#: ../Doc/library/subprocess.rst:513 +#: ../Doc/library/subprocess.rst:532 msgid "" "If you need to modify the environment for the child use the *env* parameter " "rather than doing it in a *preexec_fn*. The *start_new_session* and " @@ -893,7 +913,7 @@ msgstr "" "*process_group* deben ocupar el lugar del código que usa *preexec_fn* para " "llamar a :func:`os.setsid` o :func:`os.setpgid` en el subproceso" -#: ../Doc/library/subprocess.rst:520 +#: ../Doc/library/subprocess.rst:539 msgid "" "The *preexec_fn* parameter is no longer supported in subinterpreters. The " "use of the parameter in a subinterpreter raises :exc:`RuntimeError`. The new " @@ -905,19 +925,20 @@ msgstr "" "restricción puede afectar a aplicaciones desplegadas en *mod_wsgi*, *uWSGI* " "y otros entornos incrustados." -#: ../Doc/library/subprocess.rst:525 +#: ../Doc/library/subprocess.rst:544 +#, fuzzy msgid "" -"If *close_fds* is true, all file descriptors except :const:`0`, :const:`1` " -"and :const:`2` will be closed before the child process is executed. " -"Otherwise when *close_fds* is false, file descriptors obey their inheritable " -"flag as described in :ref:`fd_inheritance`." +"If *close_fds* is true, all file descriptors except ``0``, ``1`` and ``2`` " +"will be closed before the child process is executed. Otherwise when " +"*close_fds* is false, file descriptors obey their inheritable flag as " +"described in :ref:`fd_inheritance`." msgstr "" "Si *close_fds* es verdadero, todos los descriptores de fichero salvo :const:" "`0`, :const:`1` y :const:`2` serán cerrados antes de ejecutar el proceso " "hijo. Por el contrario, cuando *close_fds* es falso, los descriptores de " "fichero obedecen su indicador de heredable según :ref:`fd_inheritance`." -#: ../Doc/library/subprocess.rst:530 +#: ../Doc/library/subprocess.rst:549 msgid "" "On Windows, if *close_fds* is true then no handles will be inherited by the " "child process unless explicitly passed in the ``handle_list`` element of :" @@ -928,7 +949,7 @@ msgstr "" "``handle_list`` de :attr:`STARTUPINFO.lpAttributeList`, o mediante " "redirección estándar." -#: ../Doc/library/subprocess.rst:534 +#: ../Doc/library/subprocess.rst:553 msgid "" "The default for *close_fds* was changed from :const:`False` to what is " "described above." @@ -936,7 +957,7 @@ msgstr "" "El valor predeterminado de *close_fds* se cambió de :const:`False` a lo " "antes descrito." -#: ../Doc/library/subprocess.rst:538 +#: ../Doc/library/subprocess.rst:557 msgid "" "On Windows the default for *close_fds* was changed from :const:`False` to :" "const:`True` when redirecting the standard handles. It's now possible to set " @@ -947,7 +968,7 @@ msgstr "" "establecer *close_fds* a :const:`True` cuando se redirigen los gestores " "estándar." -#: ../Doc/library/subprocess.rst:543 +#: ../Doc/library/subprocess.rst:562 msgid "" "*pass_fds* is an optional sequence of file descriptors to keep open between " "the parent and child. Providing any *pass_fds* forces *close_fds* to be :" @@ -957,11 +978,11 @@ msgstr "" "mantenerse abiertos entre el proceso padre e hijo. Si se proporciona un " "valor a *pass_fds* se fuerza *close_fds* a :const:`True`. (solamente POSIX)" -#: ../Doc/library/subprocess.rst:547 +#: ../Doc/library/subprocess.rst:566 msgid "The *pass_fds* parameter was added." msgstr "Se añadió el parámetro *pass_fds*." -#: ../Doc/library/subprocess.rst:550 +#: ../Doc/library/subprocess.rst:569 msgid "" "If *cwd* is not ``None``, the function changes the working directory to " "*cwd* before executing the child. *cwd* can be a string, bytes or :term:" @@ -975,23 +996,23 @@ msgstr "" "*executable* (o el primer elemento de *args*) relativo a *cwd* si la ruta " "del ejecutable es relativa." -#: ../Doc/library/subprocess.rst:556 +#: ../Doc/library/subprocess.rst:575 msgid "*cwd* parameter accepts a :term:`path-like object` on POSIX." msgstr "" "El parámetro *cwd* acepta un :term:`objeto tipo ruta ` en " "POSIX." -#: ../Doc/library/subprocess.rst:559 +#: ../Doc/library/subprocess.rst:578 msgid "*cwd* parameter accepts a :term:`path-like object` on Windows." msgstr "" "El parámetro *cwd* acepta un :term:`objeto tipo ruta ` en " "Windows." -#: ../Doc/library/subprocess.rst:562 +#: ../Doc/library/subprocess.rst:581 msgid "*cwd* parameter accepts a bytes object on Windows." msgstr "El parámetro *cwd* acepta un objeto bytes en Windows." -#: ../Doc/library/subprocess.rst:565 +#: ../Doc/library/subprocess.rst:584 msgid "" "If *restore_signals* is true (the default) all signals that Python has set " "to SIG_IGN are restored to SIG_DFL in the child process before the exec. " @@ -1002,11 +1023,11 @@ msgstr "" "hijo antes del *exec*. En la actualidad, esto incluye las señales SIGPIPE, " "SIGXFZ y SIGXFSZ (solamente POSIX)." -#: ../Doc/library/subprocess.rst:570 +#: ../Doc/library/subprocess.rst:589 msgid "*restore_signals* was added." msgstr "Se añadió *restore_signals*." -#: ../Doc/library/subprocess.rst:573 +#: ../Doc/library/subprocess.rst:592 msgid "" "If *start_new_session* is true the ``setsid()`` system call will be made in " "the child process prior to the execution of the subprocess." @@ -1014,17 +1035,17 @@ msgstr "" "Si *start_new_session* es verdadero, la llamada al sistema ``setsid()`` se " "realizará en el proceso secundario antes de la ejecución del subproceso." -#: ../Doc/library/subprocess.rst:576 ../Doc/library/subprocess.rst:583 -#: ../Doc/library/subprocess.rst:593 ../Doc/library/subprocess.rst:602 -#: ../Doc/library/subprocess.rst:611 ../Doc/library/subprocess.rst:617 +#: ../Doc/library/subprocess.rst:595 ../Doc/library/subprocess.rst:602 +#: ../Doc/library/subprocess.rst:612 ../Doc/library/subprocess.rst:621 +#: ../Doc/library/subprocess.rst:630 ../Doc/library/subprocess.rst:636 msgid ":ref:`Availability `: POSIX" msgstr ":ref:`Disponibilidad `: POSIX" -#: ../Doc/library/subprocess.rst:577 +#: ../Doc/library/subprocess.rst:596 msgid "*start_new_session* was added." msgstr "Se añadió *start_new_session*." -#: ../Doc/library/subprocess.rst:580 +#: ../Doc/library/subprocess.rst:599 msgid "" "If *process_group* is a non-negative integer, the ``setpgid(0, value)`` " "system call will be made in the child process prior to the execution of the " @@ -1034,11 +1055,11 @@ msgstr "" "``setpgid(0, value)`` se realizará en el proceso secundario antes de la " "ejecución del subproceso." -#: ../Doc/library/subprocess.rst:584 +#: ../Doc/library/subprocess.rst:603 msgid "*process_group* was added." msgstr "Se agregó *process_group*." -#: ../Doc/library/subprocess.rst:587 +#: ../Doc/library/subprocess.rst:606 msgid "" "If *group* is not ``None``, the setregid() system call will be made in the " "child process prior to the execution of the subprocess. If the provided " @@ -1052,7 +1073,7 @@ msgstr "" "valor en ``gr_gid`` será usado. Si el valor es un entero, será pasado " "literalmente. (solamente POSIX)" -#: ../Doc/library/subprocess.rst:596 +#: ../Doc/library/subprocess.rst:615 msgid "" "If *extra_groups* is not ``None``, the setgroups() system call will be made " "in the child process prior to the execution of the subprocess. Strings " @@ -1066,7 +1087,7 @@ msgstr "" "getgrnam()` y los valores en ``gr_gid`` serán usados. Valor enteros serán " "pasados literalmente. (solamente POSIX)" -#: ../Doc/library/subprocess.rst:605 +#: ../Doc/library/subprocess.rst:624 msgid "" "If *user* is not ``None``, the setreuid() system call will be made in the " "child process prior to the execution of the subprocess. If the provided " @@ -1080,7 +1101,7 @@ msgstr "" "valor en ``pw_uid`` será usado. Si el valor es un entero, será pasado " "literalmente. (solamente POSIX)" -#: ../Doc/library/subprocess.rst:614 +#: ../Doc/library/subprocess.rst:633 msgid "" "If *umask* is not negative, the umask() system call will be made in the " "child process prior to the execution of the subprocess." @@ -1088,17 +1109,21 @@ msgstr "" "Si *umask* no es negativo, la llamada a sistema umask() se hará en el " "proceso hijo antes de la ejecución del subproceso." -#: ../Doc/library/subprocess.rst:620 +#: ../Doc/library/subprocess.rst:639 +#, fuzzy msgid "" "If *env* is not ``None``, it must be a mapping that defines the environment " "variables for the new process; these are used instead of the default " -"behavior of inheriting the current process' environment." +"behavior of inheriting the current process' environment. This mapping can be " +"str to str on any platform or bytes to bytes on POSIX platforms much like :" +"data:`os.environ` or :data:`os.environb`." msgstr "" "Si *env* no es ``None``, debe ser un mapeo que defina las variables de " -"entorno del nuevo proceso; se utilizarán éstas en lugar del comportamiento " -"por defecto de heredar el entorno del proceso en curso." +"entorno para el nuevo proceso; se utilizarán éstas en lugar del " +"comportamiento predeterminado de heredar el entorno del proceso actual. Se " +"le pasa directamente a :class:`Popen`." -#: ../Doc/library/subprocess.rst:626 +#: ../Doc/library/subprocess.rst:647 msgid "" "If specified, *env* must provide any variables required for the program to " "execute. On Windows, in order to run a `side-by-side assembly`_ the " @@ -1109,7 +1134,7 @@ msgstr "" "assembly`_ el *env* especificado **debe** incluir un :envvar:`SystemRoot` " "válido." -#: ../Doc/library/subprocess.rst:632 +#: ../Doc/library/subprocess.rst:653 msgid "" "If *encoding* or *errors* are specified, or *text* is true, the file objects " "*stdin*, *stdout* and *stderr* are opened in text mode with the specified " @@ -1126,15 +1151,15 @@ msgstr "" "anteriores. De forma predeterminada, los objetos de archivo se abren en modo " "binario." -#: ../Doc/library/subprocess.rst:638 +#: ../Doc/library/subprocess.rst:659 msgid "*encoding* and *errors* were added." msgstr "Se añadieron *encoding* y *errors*." -#: ../Doc/library/subprocess.rst:641 ../Doc/library/subprocess.rst:1242 +#: ../Doc/library/subprocess.rst:662 ../Doc/library/subprocess.rst:1283 msgid "*text* was added as a more readable alias for *universal_newlines*." msgstr "Se añadió *text* como alias más legible de *universal_newlines*." -#: ../Doc/library/subprocess.rst:644 +#: ../Doc/library/subprocess.rst:665 msgid "" "If given, *startupinfo* will be a :class:`STARTUPINFO` object, which is " "passed to the underlying ``CreateProcess`` function. *creationflags*, if " @@ -1144,55 +1169,55 @@ msgstr "" "pasa a la función de más bajo nivel ``CreateProcess``. *creationflags*, si " "está presente, puede ser uno o más de los siguientes indicadores:" -#: ../Doc/library/subprocess.rst:648 +#: ../Doc/library/subprocess.rst:669 msgid ":data:`CREATE_NEW_CONSOLE`" msgstr ":data:`CREATE_NEW_CONSOLE`" -#: ../Doc/library/subprocess.rst:649 +#: ../Doc/library/subprocess.rst:670 msgid ":data:`CREATE_NEW_PROCESS_GROUP`" msgstr ":data:`CREATE_NEW_PROCESS_GROUP`" -#: ../Doc/library/subprocess.rst:650 +#: ../Doc/library/subprocess.rst:671 msgid ":data:`ABOVE_NORMAL_PRIORITY_CLASS`" msgstr ":data:`ABOVE_NORMAL_PRIORITY_CLASS`" -#: ../Doc/library/subprocess.rst:651 +#: ../Doc/library/subprocess.rst:672 msgid ":data:`BELOW_NORMAL_PRIORITY_CLASS`" msgstr ":data:`BELOW_NORMAL_PRIORITY_CLASS`" -#: ../Doc/library/subprocess.rst:652 +#: ../Doc/library/subprocess.rst:673 msgid ":data:`HIGH_PRIORITY_CLASS`" msgstr ":data:`HIGH_PRIORITY_CLASS`" -#: ../Doc/library/subprocess.rst:653 +#: ../Doc/library/subprocess.rst:674 msgid ":data:`IDLE_PRIORITY_CLASS`" msgstr ":data:`IDLE_PRIORITY_CLASS`" -#: ../Doc/library/subprocess.rst:654 +#: ../Doc/library/subprocess.rst:675 msgid ":data:`NORMAL_PRIORITY_CLASS`" msgstr ":data:`NORMAL_PRIORITY_CLASS`" -#: ../Doc/library/subprocess.rst:655 +#: ../Doc/library/subprocess.rst:676 msgid ":data:`REALTIME_PRIORITY_CLASS`" msgstr ":data:`REALTIME_PRIORITY_CLASS`" -#: ../Doc/library/subprocess.rst:656 +#: ../Doc/library/subprocess.rst:677 msgid ":data:`CREATE_NO_WINDOW`" msgstr ":data:`CREATE_NO_WINDOW`" -#: ../Doc/library/subprocess.rst:657 +#: ../Doc/library/subprocess.rst:678 msgid ":data:`DETACHED_PROCESS`" msgstr ":data:`DETACHED_PROCESS`" -#: ../Doc/library/subprocess.rst:658 +#: ../Doc/library/subprocess.rst:679 msgid ":data:`CREATE_DEFAULT_ERROR_MODE`" msgstr ":data:`CREATE_DEFAULT_ERROR_MODE`" -#: ../Doc/library/subprocess.rst:659 +#: ../Doc/library/subprocess.rst:680 msgid ":data:`CREATE_BREAKAWAY_FROM_JOB`" msgstr ":data:`CREATE_BREAKAWAY_FROM_JOB`" -#: ../Doc/library/subprocess.rst:661 +#: ../Doc/library/subprocess.rst:682 msgid "" "*pipesize* can be used to change the size of the pipe when :data:`PIPE` is " "used for *stdin*, *stdout* or *stderr*. The size of the pipe is only changed " @@ -1204,11 +1229,11 @@ msgstr "" "solo se cambia en plataformas que lo admiten (solo Linux en este momento de " "redacción). Otras plataformas ignorarán este parámetro." -#: ../Doc/library/subprocess.rst:666 +#: ../Doc/library/subprocess.rst:687 msgid "The ``pipesize`` parameter was added." msgstr "Se añadió el parámetro ``pipesize``." -#: ../Doc/library/subprocess.rst:669 +#: ../Doc/library/subprocess.rst:690 msgid "" "Popen objects are supported as context managers via the :keyword:`with` " "statement: on exit, standard file descriptors are closed, and the process is " @@ -1218,7 +1243,7 @@ msgstr "" "sentencia :keyword:`with`: a la salida, los descriptores de flujo se cierran " "y se espera a que acabe el proceso. ::" -#: ../Doc/library/subprocess.rst:685 +#: ../Doc/library/subprocess.rst:706 msgid "" "Raises an :ref:`auditing event ` ``subprocess.Popen`` with " "arguments ``executable``, ``args``, ``cwd``, ``env``." @@ -1226,7 +1251,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``subprocess.Popen`` con " "argumentos ``executable``, ``args``, ``cwd``, ``env``." -#: ../Doc/library/subprocess.rst:678 +#: ../Doc/library/subprocess.rst:699 msgid "" "Popen and the other functions in this module that use it raise an :ref:" "`auditing event ` ``subprocess.Popen`` with arguments " @@ -1238,11 +1263,11 @@ msgstr "" "``executable``, ``args``, ``cwd`` y ``env``. El valor de ``args`` puede ser " "una cadena simple o un alista de cadenas, dependiendo de la plataforma." -#: ../Doc/library/subprocess.rst:683 +#: ../Doc/library/subprocess.rst:704 msgid "Added context manager support." msgstr "Se añadió la funcionalidad de gestor de contexto." -#: ../Doc/library/subprocess.rst:686 +#: ../Doc/library/subprocess.rst:707 msgid "" "Popen destructor now emits a :exc:`ResourceWarning` warning if the child " "process is still running." @@ -1250,7 +1275,7 @@ msgstr "" "El destructor de Popen ahora emite una advertencia :exc:`ResourceWarning` si " "el proceso hijo todavía se está ejecutando." -#: ../Doc/library/subprocess.rst:690 +#: ../Doc/library/subprocess.rst:711 msgid "" "Popen can use :func:`os.posix_spawn` in some cases for better performance. " "On Windows Subsystem for Linux and QEMU User Emulation, Popen constructor " @@ -1265,11 +1290,11 @@ msgstr "" "que un programa no esté, sino que el proceso hijo fracasará con un :attr:" "`~Popen.returncode` distinto de cero." -#: ../Doc/library/subprocess.rst:699 +#: ../Doc/library/subprocess.rst:720 msgid "Exceptions" msgstr "Excepciones" -#: ../Doc/library/subprocess.rst:701 +#: ../Doc/library/subprocess.rst:722 msgid "" "Exceptions raised in the child process, before the new program has started " "to execute, will be re-raised in the parent." @@ -1277,7 +1302,7 @@ msgstr "" "Las excepciones lanzadas en el proceso hijo, antes de que el nuevo programa " "haya empezado a ejecutarse, se relanzarán en el padre." -#: ../Doc/library/subprocess.rst:704 +#: ../Doc/library/subprocess.rst:725 msgid "" "The most common exception raised is :exc:`OSError`. This occurs, for " "example, when trying to execute a non-existent file. Applications should " @@ -1295,7 +1320,7 @@ msgstr "" "encontrar la aplicación solicitada, es necesario verificar el código de " "retorno o la salida del subproceso." -#: ../Doc/library/subprocess.rst:711 +#: ../Doc/library/subprocess.rst:732 msgid "" "A :exc:`ValueError` will be raised if :class:`Popen` is called with invalid " "arguments." @@ -1303,7 +1328,7 @@ msgstr "" "Se lanzará un :exc:`ValueError` si se llama a :class:`Popen` con argumentos " "no válidos." -#: ../Doc/library/subprocess.rst:714 +#: ../Doc/library/subprocess.rst:735 msgid "" ":func:`check_call` and :func:`check_output` will raise :exc:" "`CalledProcessError` if the called process returns a non-zero return code." @@ -1312,32 +1337,33 @@ msgstr "" "`CalledProcessError` si el proceso invocado retorna un código de retorno " "distinto de cero." -#: ../Doc/library/subprocess.rst:718 +#: ../Doc/library/subprocess.rst:739 +#, fuzzy msgid "" "All of the functions and methods that accept a *timeout* parameter, such as :" -"func:`call` and :meth:`Popen.communicate` will raise :exc:`TimeoutExpired` " -"if the timeout expires before the process exits." +"func:`run` and :meth:`Popen.communicate` will raise :exc:`TimeoutExpired` if " +"the timeout expires before the process exits." msgstr "" "Todas las funciones y métodos que admiten un parámetro *timeout*, tales " "como :func:`call` y :meth:`Popen.communicate` lanzarán :exc:`TimeoutExpired` " "si se vence el plazo de ejecución antes de que finalice el proceso hijo." -#: ../Doc/library/subprocess.rst:722 +#: ../Doc/library/subprocess.rst:743 msgid "" "Exceptions defined in this module all inherit from :exc:`SubprocessError`." msgstr "" "Todas las excepciones definidas en este módulo heredan de :exc:" "`SubprocessError`." -#: ../Doc/library/subprocess.rst:724 +#: ../Doc/library/subprocess.rst:745 msgid "The :exc:`SubprocessError` base class was added." msgstr "Se añadió la clase base :exc:`SubprocessError`." -#: ../Doc/library/subprocess.rst:730 +#: ../Doc/library/subprocess.rst:751 msgid "Security Considerations" msgstr "Consideraciones sobre seguridad" -#: ../Doc/library/subprocess.rst:732 +#: ../Doc/library/subprocess.rst:753 msgid "" "Unlike some other popen functions, this implementation will never implicitly " "call a system shell. This means that all characters, including shell " @@ -1359,16 +1385,16 @@ msgstr "" "wiki/Inyecci%C3%B3n_de_c%C3%B3digo>`_. En :ref:`algunas plataformas `, es posible usar :func:`shlex.quote` para este escape." -#: ../Doc/library/subprocess.rst:744 +#: ../Doc/library/subprocess.rst:765 msgid "Popen Objects" msgstr "Objetos Popen" -#: ../Doc/library/subprocess.rst:746 +#: ../Doc/library/subprocess.rst:767 msgid "Instances of the :class:`Popen` class have the following methods:" msgstr "" "Las instancias de la clase :class:`Popen` cuentan con los siguientes métodos:" -#: ../Doc/library/subprocess.rst:751 +#: ../Doc/library/subprocess.rst:772 msgid "" "Check if child process has terminated. Set and return :attr:`~Popen." "returncode` attribute. Otherwise, returns ``None``." @@ -1376,7 +1402,7 @@ msgstr "" "Comprueba si el proceso hijo ha finalizado. Establece y retorna el atributo :" "attr:`~Popen.returncode`. De lo contrario, retorna ``None``." -#: ../Doc/library/subprocess.rst:757 +#: ../Doc/library/subprocess.rst:778 msgid "" "Wait for child process to terminate. Set and return :attr:`~Popen." "returncode` attribute." @@ -1384,7 +1410,7 @@ msgstr "" "Espera a que termine el proceso hijo. Establece y retorna el atributo :attr:" "`~Popen.returncode`." -#: ../Doc/library/subprocess.rst:760 +#: ../Doc/library/subprocess.rst:781 msgid "" "If the process does not terminate after *timeout* seconds, raise a :exc:" "`TimeoutExpired` exception. It is safe to catch this exception and retry " @@ -1393,7 +1419,7 @@ msgstr "" "Si el proceso no finaliza tras *timeout* segundos, lanza una excepción :exc:" "`TimeoutExpired`. Se puede capturar esta excepción para reintentar la espera." -#: ../Doc/library/subprocess.rst:766 +#: ../Doc/library/subprocess.rst:787 msgid "" "This will deadlock when using ``stdout=PIPE`` or ``stderr=PIPE`` and the " "child process generates enough output to a pipe such that it blocks waiting " @@ -1405,7 +1431,7 @@ msgstr "" "esperando que el búfer del pipe del SO acepte más datos. Se debe usar :meth:" "`Popen.communicate` cuando se usen pipes para evitar esto." -#: ../Doc/library/subprocess.rst:773 +#: ../Doc/library/subprocess.rst:794 msgid "" "The function is implemented using a busy loop (non-blocking call and short " "sleeps). Use the :mod:`asyncio` module for an asynchronous wait: see :class:" @@ -1415,13 +1441,13 @@ msgstr "" "y breves llamadas a `sleep`). Se debe usar el módulo :mod:`asyncio` para " "hacer una espera asíncrona: ver :class:`asyncio.create_subprocess_exec`." -#: ../Doc/library/subprocess.rst:777 ../Doc/library/subprocess.rst:818 -#: ../Doc/library/subprocess.rst:1155 ../Doc/library/subprocess.rst:1187 -#: ../Doc/library/subprocess.rst:1233 +#: ../Doc/library/subprocess.rst:798 ../Doc/library/subprocess.rst:839 +#: ../Doc/library/subprocess.rst:1180 ../Doc/library/subprocess.rst:1220 +#: ../Doc/library/subprocess.rst:1274 msgid "*timeout* was added." msgstr "Se añadió *timeout*." -#: ../Doc/library/subprocess.rst:782 +#: ../Doc/library/subprocess.rst:803 msgid "" "Interact with process: Send data to stdin. Read data from stdout and " "stderr, until end-of-file is reached. Wait for process to terminate and set " @@ -1438,7 +1464,7 @@ msgstr "" "*input* ha de ser una cadena de caracteres. En caso contrario, debe contener " "bytes." -#: ../Doc/library/subprocess.rst:789 +#: ../Doc/library/subprocess.rst:810 msgid "" ":meth:`communicate` returns a tuple ``(stdout_data, stderr_data)``. The data " "will be strings if streams were opened in text mode; otherwise, bytes." @@ -1447,7 +1473,7 @@ msgstr "" "datos serán cadenas si se abrieron los flujos en modo texto, en caso " "contrario serán bytes." -#: ../Doc/library/subprocess.rst:793 +#: ../Doc/library/subprocess.rst:814 msgid "" "Note that if you want to send data to the process's stdin, you need to " "create the Popen object with ``stdin=PIPE``. Similarly, to get anything " @@ -1459,7 +1485,7 @@ msgstr "" "diferente de ``None`` en la tupla del resultado, hay que suministrar " "``stdout=PIPE`` o ``stderr=PIPE`` también." -#: ../Doc/library/subprocess.rst:798 +#: ../Doc/library/subprocess.rst:819 msgid "" "If the process does not terminate after *timeout* seconds, a :exc:" "`TimeoutExpired` exception will be raised. Catching this exception and " @@ -1469,7 +1495,7 @@ msgstr "" "exc:`TimeoutExpired`. Si se captura dicha excepción y se reintenta la " "comunicación, no se perderán datos de salida." -#: ../Doc/library/subprocess.rst:802 +#: ../Doc/library/subprocess.rst:823 msgid "" "The child process is not killed if the timeout expires, so in order to " "cleanup properly a well-behaved application should kill the child process " @@ -1479,7 +1505,7 @@ msgstr "" "limpieza, una aplicación correcta debería matar el proceso y terminar la " "comunicación::" -#: ../Doc/library/subprocess.rst:815 +#: ../Doc/library/subprocess.rst:836 msgid "" "The data read is buffered in memory, so do not use this method if the data " "size is large or unlimited." @@ -1487,15 +1513,15 @@ msgstr "" "Los datos leídos pasan por un búfer en memoria, así que no se ha de usar " "este método para un tamaño de datos grande o ilimitado." -#: ../Doc/library/subprocess.rst:824 +#: ../Doc/library/subprocess.rst:845 msgid "Sends the signal *signal* to the child." msgstr "Envía la señal *signal* al proceso hijo." -#: ../Doc/library/subprocess.rst:826 +#: ../Doc/library/subprocess.rst:847 msgid "Do nothing if the process completed." msgstr "No hace nada si el proceso ya ha terminado." -#: ../Doc/library/subprocess.rst:830 +#: ../Doc/library/subprocess.rst:851 msgid "" "On Windows, SIGTERM is an alias for :meth:`terminate`. CTRL_C_EVENT and " "CTRL_BREAK_EVENT can be sent to processes started with a *creationflags* " @@ -1505,7 +1531,7 @@ msgstr "" "CTRL_BREAK_EVENT se pueden enviar a procesos iniciados con un parámetro " "*creationflags* que incluye ``CREATE_NEW_PROCESS_GROUP``." -#: ../Doc/library/subprocess.rst:837 +#: ../Doc/library/subprocess.rst:858 msgid "" "Stop the child. On POSIX OSs the method sends SIGTERM to the child. On " "Windows the Win32 API function :c:func:`TerminateProcess` is called to stop " @@ -1515,7 +1541,7 @@ msgstr "" "SIGTERM al proceso hijo. En Windows se llama a la función :c:func:" "`TerminateProcess` de la API de Win32 para detener el proceso hijo." -#: ../Doc/library/subprocess.rst:844 +#: ../Doc/library/subprocess.rst:865 msgid "" "Kills the child. On POSIX OSs the function sends SIGKILL to the child. On " "Windows :meth:`kill` is an alias for :meth:`terminate`." @@ -1523,11 +1549,13 @@ msgstr "" "Mata el proceso hijo. En sistemas operativos POSIX la función envía SIGKILL " "al proceso hijo. En Windows :meth:`kill` es un alias de :meth:`terminate`." -#: ../Doc/library/subprocess.rst:848 -msgid "The following attributes are also available:" -msgstr "También están disponibles los siguientes atributos:" +#: ../Doc/library/subprocess.rst:869 +msgid "" +"The following attributes are also set by the class for you to access. " +"Reassigning them to new values is unsupported:" +msgstr "" -#: ../Doc/library/subprocess.rst:852 +#: ../Doc/library/subprocess.rst:874 msgid "" "The *args* argument as it was passed to :class:`Popen` -- a sequence of " "program arguments or else a single string." @@ -1535,13 +1563,14 @@ msgstr "" "El argumento *args* según se pasó a :class:`Popen`: o una secuencia de " "argumentos del programa o una cadena sencilla." -#: ../Doc/library/subprocess.rst:859 +#: ../Doc/library/subprocess.rst:881 +#, fuzzy msgid "" "If the *stdin* argument was :data:`PIPE`, this attribute is a writeable " "stream object as returned by :func:`open`. If the *encoding* or *errors* " -"arguments were specified or the *universal_newlines* argument was ``True``, " -"the stream is a text stream, otherwise it is a byte stream. If the *stdin* " -"argument was not :data:`PIPE`, this attribute is ``None``." +"arguments were specified or the *text* or *universal_newlines* argument was " +"``True``, the stream is a text stream, otherwise it is a byte stream. If the " +"*stdin* argument was not :data:`PIPE`, this attribute is ``None``." msgstr "" "Si el argumento *stdin* fue :data:`PIPE`, este atributo es un objeto flujo " "escribible según lo retorna :func:`open`. Si se especificaron argumentos " @@ -1549,14 +1578,15 @@ msgstr "" "flujo es de texto, de lo contrario, es de bytes. Si el argumento *stdin* no " "fue :data:`PIPE`, este atributo es ``None``." -#: ../Doc/library/subprocess.rst:868 +#: ../Doc/library/subprocess.rst:890 +#, fuzzy msgid "" "If the *stdout* argument was :data:`PIPE`, this attribute is a readable " "stream object as returned by :func:`open`. Reading from the stream provides " "output from the child process. If the *encoding* or *errors* arguments were " -"specified or the *universal_newlines* argument was ``True``, the stream is a " -"text stream, otherwise it is a byte stream. If the *stdout* argument was " -"not :data:`PIPE`, this attribute is ``None``." +"specified or the *text* or *universal_newlines* argument was ``True``, the " +"stream is a text stream, otherwise it is a byte stream. If the *stdout* " +"argument was not :data:`PIPE`, this attribute is ``None``." msgstr "" "Si el argumento *stdout* fue :data:`PIPE`, este atributo el un objeto de " "flujo legible según lo retorna :func:`open`. Leer del flujo proporciona " @@ -1565,14 +1595,15 @@ msgstr "" "texto, de lo contrario, es de bytes. Si el argumento *stdout* no fue :data:" "`PIPE`, este atributo es ``None``." -#: ../Doc/library/subprocess.rst:878 +#: ../Doc/library/subprocess.rst:900 +#, fuzzy msgid "" "If the *stderr* argument was :data:`PIPE`, this attribute is a readable " "stream object as returned by :func:`open`. Reading from the stream provides " "error output from the child process. If the *encoding* or *errors* arguments " -"were specified or the *universal_newlines* argument was ``True``, the stream " -"is a text stream, otherwise it is a byte stream. If the *stderr* argument " -"was not :data:`PIPE`, this attribute is ``None``." +"were specified or the *text* or *universal_newlines* argument was ``True``, " +"the stream is a text stream, otherwise it is a byte stream. If the *stderr* " +"argument was not :data:`PIPE`, this attribute is ``None``." msgstr "" "Si el argumento *stderr* fue :data:`PIPE`, este atributo el un objeto de " "flujo legible según lo retorna :func:`open`. Leer del flujo proporciona " @@ -1581,7 +1612,7 @@ msgstr "" "texto, de lo contrario, es de bytes. Si el argumento *stderr* no fue :data:" "`PIPE`, este atributo es ``None``." -#: ../Doc/library/subprocess.rst:887 +#: ../Doc/library/subprocess.rst:909 msgid "" "Use :meth:`~Popen.communicate` rather than :attr:`.stdin.write `, :attr:`.stdout.read ` or :attr:`.stderr.read ` para evitar bloqueos por búfer de pipes del SO llenos que " "puedan bloquear el proceso hijo." -#: ../Doc/library/subprocess.rst:895 +#: ../Doc/library/subprocess.rst:917 msgid "The process ID of the child process." msgstr "El ID de proceso del hijo." -#: ../Doc/library/subprocess.rst:897 +#: ../Doc/library/subprocess.rst:919 msgid "" "Note that if you set the *shell* argument to ``True``, this is the process " "ID of the spawned shell." @@ -1605,21 +1636,28 @@ msgstr "" "Adviértase que si se establece el argumento *shell* a ``True``, éste es el " "ID de proceso del la shell generada." -#: ../Doc/library/subprocess.rst:903 +#: ../Doc/library/subprocess.rst:925 +#, fuzzy msgid "" -"The child return code, set by :meth:`poll` and :meth:`wait` (and indirectly " -"by :meth:`communicate`). A ``None`` value indicates that the process hasn't " -"terminated yet." +"The child return code. Initially ``None``, :attr:`returncode` is set by a " +"call to the :meth:`poll`, :meth:`wait`, or :meth:`communicate` methods if " +"they detect that the process has terminated." msgstr "" "El código de retorno del hijo, establecido por :meth:`poll` y :meth:`wait` " "(e indirectamente por :meth:`communicate`). Un valor ``None`` indica que el " "proceso no ha terminado aún." -#: ../Doc/library/subprocess.rst:912 +#: ../Doc/library/subprocess.rst:929 +msgid "" +"A ``None`` value indicates that the process hadn't yet terminated at the " +"time of the last method call." +msgstr "" + +#: ../Doc/library/subprocess.rst:937 msgid "Windows Popen Helpers" msgstr "Elementos auxiliares de Popen en Windows" -#: ../Doc/library/subprocess.rst:914 +#: ../Doc/library/subprocess.rst:939 msgid "" "The :class:`STARTUPINFO` class and following constants are only available on " "Windows." @@ -1627,7 +1665,7 @@ msgstr "" "La clase :class:`STARTUPINFO` y las siguientes constantes sólo están " "disponibles en Windows." -#: ../Doc/library/subprocess.rst:920 +#: ../Doc/library/subprocess.rst:945 msgid "" "Partial support of the Windows `STARTUPINFO `__ structure is used for :class:`Popen` " @@ -1639,11 +1677,11 @@ msgstr "" "creación de :class:`Popen`. Se pueden establecer los siguientes atributos " "pasándolos como argumentos sólo por clave." -#: ../Doc/library/subprocess.rst:925 +#: ../Doc/library/subprocess.rst:950 msgid "Keyword-only argument support was added." msgstr "Se añadió el soporte de argumentos sólo por clave." -#: ../Doc/library/subprocess.rst:930 +#: ../Doc/library/subprocess.rst:955 msgid "" "A bit field that determines whether certain :class:`STARTUPINFO` attributes " "are used when the process creates a window. ::" @@ -1651,7 +1689,7 @@ msgstr "" "Un campo bit que determina si se usan ciertos atributos de :class:" "`STARTUPINFO` cuando el proceso crea una ventana. ::" -#: ../Doc/library/subprocess.rst:938 +#: ../Doc/library/subprocess.rst:963 msgid "" "If :attr:`dwFlags` specifies :data:`STARTF_USESTDHANDLES`, this attribute is " "the standard input handle for the process. If :data:`STARTF_USESTDHANDLES` " @@ -1662,7 +1700,7 @@ msgstr "" "`STARTF_USESTDHANDLES`, el valor predeterminado de entrada estándar es el " "búfer de teclado." -#: ../Doc/library/subprocess.rst:945 +#: ../Doc/library/subprocess.rst:970 msgid "" "If :attr:`dwFlags` specifies :data:`STARTF_USESTDHANDLES`, this attribute is " "the standard output handle for the process. Otherwise, this attribute is " @@ -1673,7 +1711,7 @@ msgstr "" "omiso del atributo y el valor predeterminado de salida estándar es el búfer " "de ventana." -#: ../Doc/library/subprocess.rst:952 +#: ../Doc/library/subprocess.rst:977 msgid "" "If :attr:`dwFlags` specifies :data:`STARTF_USESTDHANDLES`, this attribute is " "the standard error handle for the process. Otherwise, this attribute is " @@ -1684,7 +1722,7 @@ msgstr "" "omiso del atributo y el valor predeterminado de error estándar es el búfer " "de ventana." -#: ../Doc/library/subprocess.rst:958 +#: ../Doc/library/subprocess.rst:983 msgid "" "If :attr:`dwFlags` specifies :data:`STARTF_USESHOWWINDOW`, this attribute " "can be any of the values that can be specified in the ``nCmdShow`` parameter " @@ -1698,7 +1736,7 @@ msgstr "" "library/ms633548(v=vs.85).aspx>`__, salvo ``SW_SHOWDEFAULT``. De otro modo, " "se hace caso omiso del atributo." -#: ../Doc/library/subprocess.rst:965 +#: ../Doc/library/subprocess.rst:990 msgid "" ":data:`SW_HIDE` is provided for this attribute. It is used when :class:" "`Popen` is called with ``shell=True``." @@ -1706,7 +1744,7 @@ msgstr "" "Se proporciona :data:`SW_HIDE` para este atributo. Se usa cuando se llama a :" "class:`Popen` con ``shell=True``." -#: ../Doc/library/subprocess.rst:970 +#: ../Doc/library/subprocess.rst:995 msgid "" "A dictionary of additional attributes for process creation as given in " "``STARTUPINFOEX``, see `UpdateProcThreadAttribute `__." -#: ../Doc/library/subprocess.rst:974 +#: ../Doc/library/subprocess.rst:999 msgid "Supported attributes:" msgstr "Atributos admitidos:" -#: ../Doc/library/subprocess.rst:992 +#: ../Doc/library/subprocess.rst:1017 msgid "**handle_list**" msgstr "**handle_list**" -#: ../Doc/library/subprocess.rst:977 +#: ../Doc/library/subprocess.rst:1002 msgid "" "Sequence of handles that will be inherited. *close_fds* must be true if non-" "empty." @@ -1732,7 +1770,7 @@ msgstr "" "Una secuencia de gestores que se heredará. *close_fds* debe ser verdadero si " "no viene vacío." -#: ../Doc/library/subprocess.rst:980 +#: ../Doc/library/subprocess.rst:1005 msgid "" "The handles must be temporarily made inheritable by :func:`os." "set_handle_inheritable` when passed to the :class:`Popen` constructor, else :" @@ -1744,7 +1782,7 @@ msgstr "" "de lo contrario, se lanzará :class:`OSError` con el error de Windows " "``ERROR_INVALID_PARAMETER`` (87)." -#: ../Doc/library/subprocess.rst:987 +#: ../Doc/library/subprocess.rst:1012 msgid "" "In a multithreaded process, use caution to avoid leaking handles that are " "marked inheritable when combining this feature with concurrent calls to " @@ -1758,15 +1796,15 @@ msgstr "" "`os.system`. Esto también rige para la redirección de gestores estándar, que " "crea temporalmente gestores heredables." -#: ../Doc/library/subprocess.rst:997 +#: ../Doc/library/subprocess.rst:1022 msgid "Windows Constants" msgstr "Constantes de Windows" -#: ../Doc/library/subprocess.rst:999 +#: ../Doc/library/subprocess.rst:1024 msgid "The :mod:`subprocess` module exposes the following constants." msgstr "El módulo :mod:`subprocess` expone las siguientes constantes." -#: ../Doc/library/subprocess.rst:1003 +#: ../Doc/library/subprocess.rst:1028 msgid "" "The standard input device. Initially, this is the console input buffer, " "``CONIN$``." @@ -1774,7 +1812,7 @@ msgstr "" "El dispositivo de entrada estándar. Inicialmente, es el búfer de entrada de " "la consola, ``CONIN$``." -#: ../Doc/library/subprocess.rst:1008 +#: ../Doc/library/subprocess.rst:1033 msgid "" "The standard output device. Initially, this is the active console screen " "buffer, ``CONOUT$``." @@ -1782,7 +1820,7 @@ msgstr "" "El dispositivo de salida estándar. Inicialmente, es el búfer de pantalla de " "la consola activa, ``CONOUT$``." -#: ../Doc/library/subprocess.rst:1013 +#: ../Doc/library/subprocess.rst:1038 msgid "" "The standard error device. Initially, this is the active console screen " "buffer, ``CONOUT$``." @@ -1790,11 +1828,11 @@ msgstr "" "El dispositivo de error estándar. Inicialmente, es el búfer de pantalla de " "la consola activa, ``CONOUT$``." -#: ../Doc/library/subprocess.rst:1018 +#: ../Doc/library/subprocess.rst:1043 msgid "Hides the window. Another window will be activated." msgstr "Oculta la ventana. Se activará otra ventana." -#: ../Doc/library/subprocess.rst:1022 +#: ../Doc/library/subprocess.rst:1047 msgid "" "Specifies that the :attr:`STARTUPINFO.hStdInput`, :attr:`STARTUPINFO." "hStdOutput`, and :attr:`STARTUPINFO.hStdError` attributes contain additional " @@ -1804,7 +1842,7 @@ msgstr "" "`STARTUPINFO.hStdOutput`, y :attr:`STARTUPINFO.hStdError` contienen " "información adicional." -#: ../Doc/library/subprocess.rst:1028 +#: ../Doc/library/subprocess.rst:1053 msgid "" "Specifies that the :attr:`STARTUPINFO.wShowWindow` attribute contains " "additional information." @@ -1812,7 +1850,7 @@ msgstr "" "Especifica que el atributo :attr:`STARTUPINFO.wShowWindow` contiene " "información adicional." -#: ../Doc/library/subprocess.rst:1033 +#: ../Doc/library/subprocess.rst:1058 msgid "" "The new process has a new console, instead of inheriting its parent's " "console (the default)." @@ -1820,7 +1858,7 @@ msgstr "" "El nuevo proceso obtiene una nueva consola, en lugar de heredar la consola " "del padre (que es el comportamiento predeterminado)." -#: ../Doc/library/subprocess.rst:1038 +#: ../Doc/library/subprocess.rst:1063 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "group will be created. This flag is necessary for using :func:`os.kill` on " @@ -1830,13 +1868,13 @@ msgstr "" "un nuevo grupo de procesos. Este indicador es necesario para usar :func:`os." "kill` sobre el subproceso." -#: ../Doc/library/subprocess.rst:1042 +#: ../Doc/library/subprocess.rst:1067 msgid "This flag is ignored if :data:`CREATE_NEW_CONSOLE` is specified." msgstr "" "Este indicador no se tiene en cuenta si se especifica :data:" "`CREATE_NEW_CONSOLE`." -#: ../Doc/library/subprocess.rst:1046 +#: ../Doc/library/subprocess.rst:1071 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "will have an above average priority." @@ -1844,7 +1882,7 @@ msgstr "" "Parámetro :class:`Popen` ``creationflags`` para especificar que el nuevo " "proceso tendrá una prioridad superior a la media." -#: ../Doc/library/subprocess.rst:1053 +#: ../Doc/library/subprocess.rst:1078 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "will have a below average priority." @@ -1852,7 +1890,7 @@ msgstr "" "Parámetro :class:`Popen` ``creationflags`` para especificar que el nuevo " "proceso tendrá una prioridad inferior a la media." -#: ../Doc/library/subprocess.rst:1060 +#: ../Doc/library/subprocess.rst:1085 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "will have a high priority." @@ -1860,7 +1898,7 @@ msgstr "" "Parámetro :class:`Popen` ``creationflags`` para especificar que el nuevo " "proceso tendrá una prioridad elevada." -#: ../Doc/library/subprocess.rst:1067 +#: ../Doc/library/subprocess.rst:1092 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "will have an idle (lowest) priority." @@ -1868,7 +1906,7 @@ msgstr "" "Parámetro :class:`Popen` ``creationflags`` para especificar que el nuevo " "proceso tendrá una la mínima prioridad." -#: ../Doc/library/subprocess.rst:1074 +#: ../Doc/library/subprocess.rst:1099 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "will have an normal priority. (default)" @@ -1876,7 +1914,7 @@ msgstr "" "Parámetro :class:`Popen` ``creationflags`` para especificar que el nuevo " "proceso tendrá una prioridad normal (éste es el valor predeterminado)." -#: ../Doc/library/subprocess.rst:1081 +#: ../Doc/library/subprocess.rst:1106 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "will have realtime priority. You should almost never use " @@ -1893,7 +1931,7 @@ msgstr "" "directamente con el hardware o que llevan a cabo tareas breves que no " "admitan interrupciones." -#: ../Doc/library/subprocess.rst:1092 +#: ../Doc/library/subprocess.rst:1117 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "will not create a window." @@ -1901,7 +1939,7 @@ msgstr "" "Parámetro :class:`Popen` ``creationflags`` para especificar que el nuevo " "proceso no creará una ventana." -#: ../Doc/library/subprocess.rst:1099 +#: ../Doc/library/subprocess.rst:1124 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "will not inherit its parent's console. This value cannot be used with " @@ -1911,7 +1949,7 @@ msgstr "" "proceso no heredará la consola del padre. Este valor es incompatible con " "CREATE_NEW_CONSOLE." -#: ../Doc/library/subprocess.rst:1107 +#: ../Doc/library/subprocess.rst:1132 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "does not inherit the error mode of the calling process. Instead, the new " @@ -1924,7 +1962,7 @@ msgstr "" "particularmente útil para aplicaciones de shell multihilo que se ejecutan " "con los errores 'duros' desactivados." -#: ../Doc/library/subprocess.rst:1117 +#: ../Doc/library/subprocess.rst:1142 msgid "" "A :class:`Popen` ``creationflags`` parameter to specify that a new process " "is not associated with the job." @@ -1932,11 +1970,11 @@ msgstr "" "Parámetro :class:`Popen` ``creationflags`` para especificar que el nuevo " "proceso no está asociado a la tarea." -#: ../Doc/library/subprocess.rst:1125 +#: ../Doc/library/subprocess.rst:1150 msgid "Older high-level API" msgstr "Antigua API de alto nivel" -#: ../Doc/library/subprocess.rst:1127 +#: ../Doc/library/subprocess.rst:1152 msgid "" "Prior to Python 3.5, these three functions comprised the high level API to " "subprocess. You can now use :func:`run` in many cases, but lots of existing " @@ -1946,7 +1984,7 @@ msgstr "" "para subprocesos. Ahora se puede usar :func:`run` en muchos casos, pero hay " "mucho código escrito con estas funciones." -#: ../Doc/library/subprocess.rst:1134 +#: ../Doc/library/subprocess.rst:1159 msgid "" "Run the command described by *args*. Wait for command to complete, then " "return the :attr:`~Popen.returncode` attribute." @@ -1954,20 +1992,20 @@ msgstr "" "Ejecutar la orden descrita por *args*. Esperar que la orden se complete y " "retornar al atributo :attr:`~Popen.returncode`." -#: ../Doc/library/subprocess.rst:1137 ../Doc/library/subprocess.rst:1169 +#: ../Doc/library/subprocess.rst:1162 ../Doc/library/subprocess.rst:1202 msgid "" "Code needing to capture stdout or stderr should use :func:`run` instead::" msgstr "" "El código que requiera capturar stdout o stderr debería usar :func:`run` en " "su lugar::" -#: ../Doc/library/subprocess.rst:1141 ../Doc/library/subprocess.rst:1173 +#: ../Doc/library/subprocess.rst:1166 ../Doc/library/subprocess.rst:1206 msgid "To suppress stdout or stderr, supply a value of :data:`DEVNULL`." msgstr "" "Para suprimir stdout o stderr se ha de proporcionar un valor de :data:" "`DEVNULL`." -#: ../Doc/library/subprocess.rst:1143 ../Doc/library/subprocess.rst:1175 +#: ../Doc/library/subprocess.rst:1168 ../Doc/library/subprocess.rst:1208 msgid "" "The arguments shown above are merely some common ones. The full function " "signature is the same as that of the :class:`Popen` constructor - this " @@ -1979,7 +2017,7 @@ msgstr "" "todos los argumentos proporcionados (salvo *timeout*) directamente a esa " "interfaz." -#: ../Doc/library/subprocess.rst:1150 ../Doc/library/subprocess.rst:1182 +#: ../Doc/library/subprocess.rst:1175 ../Doc/library/subprocess.rst:1215 msgid "" "Do not use ``stdout=PIPE`` or ``stderr=PIPE`` with this function. The child " "process will block if it generates enough output to a pipe to fill up the OS " @@ -1989,7 +2027,7 @@ msgstr "" "se bloqueará si genera suficiente salida a un pipe como para saturar el " "búfer del pipe del sistema operativo mientras no se lee de los pipes." -#: ../Doc/library/subprocess.rst:1162 +#: ../Doc/library/subprocess.rst:1195 msgid "" "Run command with arguments. Wait for command to complete. If the return " "code was zero then return, otherwise raise :exc:`CalledProcessError`. The :" @@ -2004,11 +2042,11 @@ msgstr "" "func:`check_call` no pudo iniciar el proceso, propagará la excepción que fue " "lanzada." -#: ../Doc/library/subprocess.rst:1196 +#: ../Doc/library/subprocess.rst:1237 msgid "Run command with arguments and return its output." msgstr "Ejecuta orden con argumentos y retorna su salida." -#: ../Doc/library/subprocess.rst:1198 +#: ../Doc/library/subprocess.rst:1239 msgid "" "If the return code was non-zero it raises a :exc:`CalledProcessError`. The :" "exc:`CalledProcessError` object will have the return code in the :attr:" @@ -2020,11 +2058,11 @@ msgstr "" "de retorno en el atributo :attr:`~CalledProcessError.returncode` y los datos " "de salida en el atributo :attr:`~CalledProcessError.output`." -#: ../Doc/library/subprocess.rst:1203 +#: ../Doc/library/subprocess.rst:1244 msgid "This is equivalent to::" msgstr "Esto equivale a::" -#: ../Doc/library/subprocess.rst:1207 +#: ../Doc/library/subprocess.rst:1248 msgid "" "The arguments shown above are merely some common ones. The full function " "signature is largely the same as that of :func:`run` - most arguments are " @@ -2041,7 +2079,7 @@ msgstr "" "``input=''``, dependiendo de otros argumentos) en vez de usar el flujo " "entrada estándar del padre." -#: ../Doc/library/subprocess.rst:1214 +#: ../Doc/library/subprocess.rst:1255 msgid "" "By default, this function will return the data as encoded bytes. The actual " "encoding of the output data may depend on the command being invoked, so the " @@ -2051,7 +2089,7 @@ msgstr "" "codificación real de los datos podría depender de la orden invocada, por lo " "que la decodificación a texto se deberá hacer al nivel de la aplicación." -#: ../Doc/library/subprocess.rst:1218 +#: ../Doc/library/subprocess.rst:1259 msgid "" "This behaviour may be overridden by setting *text*, *encoding*, *errors*, or " "*universal_newlines* to ``True`` as described in :ref:`frequently-used-" @@ -2061,7 +2099,7 @@ msgstr "" "*errors*, o *universal_newlines* a ``True``, como se describe en :ref:" "`frequently-used-arguments` y :func:`run`." -#: ../Doc/library/subprocess.rst:1222 +#: ../Doc/library/subprocess.rst:1263 msgid "" "To also capture standard error in the result, use ``stderr=subprocess." "STDOUT``::" @@ -2069,20 +2107,20 @@ msgstr "" "Para capturar también el error estándar del resultado se debe usar " "``stderr=subprocess.STDOUT``::" -#: ../Doc/library/subprocess.rst:1236 +#: ../Doc/library/subprocess.rst:1277 msgid "Support for the *input* keyword argument was added." msgstr "Se añadió soporte para el argumento por clave *input*." -#: ../Doc/library/subprocess.rst:1239 +#: ../Doc/library/subprocess.rst:1280 msgid "*encoding* and *errors* were added. See :func:`run` for details." msgstr "" "Se añadieron *encoding* y *errors*. Ver :func:`run` para más detalles." -#: ../Doc/library/subprocess.rst:1249 +#: ../Doc/library/subprocess.rst:1298 msgid "Replacing Older Functions with the :mod:`subprocess` Module" msgstr "Cómo reemplazar anteriores funciones con el módulo :mod:`subprocess`" -#: ../Doc/library/subprocess.rst:1251 +#: ../Doc/library/subprocess.rst:1300 msgid "" "In this section, \"a becomes b\" means that b can be used as a replacement " "for a." @@ -2090,7 +2128,7 @@ msgstr "" "En esta sección, \"a se convierte en b\" significa que b se puede usar en " "lugar de." -#: ../Doc/library/subprocess.rst:1255 +#: ../Doc/library/subprocess.rst:1304 msgid "" "All \"a\" functions in this section fail (more or less) silently if the " "executed program cannot be found; the \"b\" replacements raise :exc:" @@ -2100,7 +2138,7 @@ msgstr "" "si no se halla el programa ejecutado; las funciones de reemplazo \"b\" " "lanzan :exc:`OSError` en lugar de esto." -#: ../Doc/library/subprocess.rst:1259 +#: ../Doc/library/subprocess.rst:1308 msgid "" "In addition, the replacements using :func:`check_output` will fail with a :" "exc:`CalledProcessError` if the requested operation produces a non-zero " @@ -2112,7 +2150,7 @@ msgstr "" "código de retorno diferente de cero. La salida queda disponible en el " "atributo :attr:`~CalledProcessError.output` de la excepción lanzada." -#: ../Doc/library/subprocess.rst:1264 +#: ../Doc/library/subprocess.rst:1313 msgid "" "In the following examples, we assume that the relevant functions have " "already been imported from the :mod:`subprocess` module." @@ -2120,20 +2158,20 @@ msgstr "" "En los siguientes ejemplos, se asume que las funciones relevantes ya han " "sido importadas del módulo :mod:`subprocess`." -#: ../Doc/library/subprocess.rst:1269 +#: ../Doc/library/subprocess.rst:1318 msgid "Replacing :program:`/bin/sh` shell command substitution" msgstr "Cómo reemplazar la sustitución de órdenes de :program:`/bin/sh`" -#: ../Doc/library/subprocess.rst:1275 ../Doc/library/subprocess.rst:1286 -#: ../Doc/library/subprocess.rst:1303 +#: ../Doc/library/subprocess.rst:1324 ../Doc/library/subprocess.rst:1335 +#: ../Doc/library/subprocess.rst:1352 msgid "becomes::" msgstr "se convierte en::" -#: ../Doc/library/subprocess.rst:1280 +#: ../Doc/library/subprocess.rst:1329 msgid "Replacing shell pipeline" msgstr "Cómo remplazar los flujos de la shell" -#: ../Doc/library/subprocess.rst:1293 +#: ../Doc/library/subprocess.rst:1342 msgid "" "The ``p1.stdout.close()`` call after starting the p2 is important in order " "for p1 to receive a SIGPIPE if p2 exits before p1." @@ -2141,7 +2179,7 @@ msgstr "" "La llamada a ``p1.stdout.close()`` tras lanzar *p2* es importante para que " "*p1* reciba un SIGPIPE si *p2* retorna antes que *p1*." -#: ../Doc/library/subprocess.rst:1296 +#: ../Doc/library/subprocess.rst:1345 msgid "" "Alternatively, for trusted input, the shell's own pipeline support may still " "be used directly:" @@ -2149,19 +2187,19 @@ msgstr "" "Alternativamente, para entrada de confianza, se puede usar el propio soporte " "de pipeline de la shell directamente:" -#: ../Doc/library/subprocess.rst:1309 +#: ../Doc/library/subprocess.rst:1358 msgid "Replacing :func:`os.system`" msgstr "Cómo reemplazar :func:`os.system`" -#: ../Doc/library/subprocess.rst:1317 +#: ../Doc/library/subprocess.rst:1366 msgid "Notes:" msgstr "Notas:" -#: ../Doc/library/subprocess.rst:1319 +#: ../Doc/library/subprocess.rst:1368 msgid "Calling the program through the shell is usually not required." msgstr "No suele hacer falta llamar al programa a través de la shell." -#: ../Doc/library/subprocess.rst:1320 +#: ../Doc/library/subprocess.rst:1369 msgid "" "The :func:`call` return value is encoded differently to that of :func:`os." "system`." @@ -2169,7 +2207,7 @@ msgstr "" "El valor de retorno de :func:`call` se codifica de forma diferente al de :" "func:`os.system`." -#: ../Doc/library/subprocess.rst:1323 +#: ../Doc/library/subprocess.rst:1372 msgid "" "The :func:`os.system` function ignores SIGINT and SIGQUIT signals while the " "command is running, but the caller must do this separately when using the :" @@ -2179,43 +2217,43 @@ msgstr "" "ejecuta el comando, pero el llamador debe hacerlo por separado cuando usa el " "módulo :mod:`subprocess`." -#: ../Doc/library/subprocess.rst:1327 +#: ../Doc/library/subprocess.rst:1376 msgid "A more realistic example would look like this::" msgstr "Un ejemplo más creíble::" -#: ../Doc/library/subprocess.rst:1340 +#: ../Doc/library/subprocess.rst:1389 msgid "Replacing the :func:`os.spawn ` family" msgstr "Cómo reemplazar la familia :func:`os.spawn `" -#: ../Doc/library/subprocess.rst:1342 +#: ../Doc/library/subprocess.rst:1391 msgid "P_NOWAIT example::" msgstr "Ejemplo de P_NOWAIT::" -#: ../Doc/library/subprocess.rst:1348 +#: ../Doc/library/subprocess.rst:1397 msgid "P_WAIT example::" msgstr "Ejemplo de P_WAIT::" -#: ../Doc/library/subprocess.rst:1354 +#: ../Doc/library/subprocess.rst:1403 msgid "Vector example::" msgstr "Ejemplo de vector::" -#: ../Doc/library/subprocess.rst:1360 +#: ../Doc/library/subprocess.rst:1409 msgid "Environment example::" msgstr "Ejemplo de entorno::" -#: ../Doc/library/subprocess.rst:1369 +#: ../Doc/library/subprocess.rst:1418 msgid "Replacing :func:`os.popen`, :func:`os.popen2`, :func:`os.popen3`" msgstr "Cómo reemplazar :func:`os.popen`, :func:`os.popen2`, :func:`os.popen3`" -#: ../Doc/library/subprocess.rst:1399 +#: ../Doc/library/subprocess.rst:1448 msgid "Return code handling translates as follows::" msgstr "La gestión del código de retorno se traduce así::" -#: ../Doc/library/subprocess.rst:1415 +#: ../Doc/library/subprocess.rst:1464 msgid "Replacing functions from the :mod:`popen2` module" msgstr "Cómo reemplazar las funciones del módulo :mod:`popen2`" -#: ../Doc/library/subprocess.rst:1419 +#: ../Doc/library/subprocess.rst:1468 msgid "" "If the cmd argument to popen2 functions is a string, the command is executed " "through /bin/sh. If it is a list, the command is directly executed." @@ -2224,7 +2262,7 @@ msgstr "" "ejecuta a través de `/bin/sh`. Si es una lista, la orden se ejecuta " "directamente." -#: ../Doc/library/subprocess.rst:1438 +#: ../Doc/library/subprocess.rst:1487 msgid "" ":class:`popen2.Popen3` and :class:`popen2.Popen4` basically work as :class:" "`subprocess.Popen`, except that:" @@ -2232,19 +2270,19 @@ msgstr "" ":class:`popen2.Popen3` y :class:`popen2.Popen4` funcionan a grandes rasgos " "como :class:`subprocess.Popen`, salvo:" -#: ../Doc/library/subprocess.rst:1441 +#: ../Doc/library/subprocess.rst:1490 msgid ":class:`Popen` raises an exception if the execution fails." msgstr ":class:`Popen` lanza una excepción si falla la ejecución." -#: ../Doc/library/subprocess.rst:1443 +#: ../Doc/library/subprocess.rst:1492 msgid "The *capturestderr* argument is replaced with the *stderr* argument." msgstr "El argumento *capturestderr* se sustituye por el argumento *stderr*." -#: ../Doc/library/subprocess.rst:1445 +#: ../Doc/library/subprocess.rst:1494 msgid "``stdin=PIPE`` and ``stdout=PIPE`` must be specified." msgstr "Se ha de especificar ``stdin=PIPE`` y ``stdout=PIPE``." -#: ../Doc/library/subprocess.rst:1447 +#: ../Doc/library/subprocess.rst:1496 msgid "" "popen2 closes all file descriptors by default, but you have to specify " "``close_fds=True`` with :class:`Popen` to guarantee this behavior on all " @@ -2254,11 +2292,11 @@ msgstr "" "especificar ``close_fds=True`` con :class:`Popen` para garantizar este " "comportamiento en todas las plataformas o en versiones anteriores de Python." -#: ../Doc/library/subprocess.rst:1453 +#: ../Doc/library/subprocess.rst:1502 msgid "Legacy Shell Invocation Functions" msgstr "Funciones de llamada a la shell de retrocompatibilidad" -#: ../Doc/library/subprocess.rst:1455 +#: ../Doc/library/subprocess.rst:1504 msgid "" "This module also provides the following legacy functions from the 2.x " "``commands`` module. These operations implicitly invoke the system shell and " @@ -2271,11 +2309,11 @@ msgstr "" "garantías descritas anteriormente respecto a seguridad o consistencia en la " "gestión de excepciones." -#: ../Doc/library/subprocess.rst:1462 +#: ../Doc/library/subprocess.rst:1511 msgid "Return ``(exitcode, output)`` of executing *cmd* in a shell." msgstr "Retorna ``(exitcode, output)`` de ejecutar *cmd* en una shell." -#: ../Doc/library/subprocess.rst:1464 +#: ../Doc/library/subprocess.rst:1513 msgid "" "Execute the string *cmd* in a shell with :meth:`Popen.check_output` and " "return a 2-tuple ``(exitcode, output)``. *encoding* and *errors* are used to " @@ -2287,7 +2325,7 @@ msgstr "" "para decodificar la salida; consulte las notas sobre :ref:`frequently-used-" "arguments` para obtener más detalles." -#: ../Doc/library/subprocess.rst:1469 +#: ../Doc/library/subprocess.rst:1518 msgid "" "A trailing newline is stripped from the output. The exit code for the " "command can be interpreted as the return code of subprocess. Example::" @@ -2296,16 +2334,16 @@ msgstr "" "orden se puede interpretar como el código de retorno del subproceso. Por " "ejemplo::" -#: ../Doc/library/subprocess.rst:1483 ../Doc/library/subprocess.rst:1505 +#: ../Doc/library/subprocess.rst:1531 ../Doc/library/subprocess.rst:1553 #, fuzzy msgid ":ref:`Availability `: Unix, Windows." msgstr ":ref:`Disponibilidad `: Unix, Windows." -#: ../Doc/library/subprocess.rst:1484 +#: ../Doc/library/subprocess.rst:1533 msgid "Windows support was added." msgstr "Se añadió soporte de Windows." -#: ../Doc/library/subprocess.rst:1487 +#: ../Doc/library/subprocess.rst:1536 msgid "" "The function now returns (exitcode, output) instead of (status, output) as " "it did in Python 3.3.3 and earlier. exitcode has the same value as :attr:" @@ -2315,15 +2353,15 @@ msgstr "" "output)`` como en Python 3.3.3 y anteriores. *exitcode* tiene el mismo " "valor que :attr:`~Popen.returncode`." -#: ../Doc/library/subprocess.rst:1491 ../Doc/library/subprocess.rst:1509 +#: ../Doc/library/subprocess.rst:1540 ../Doc/library/subprocess.rst:1558 msgid "Added *encoding* and *errors* arguments." msgstr "Se agregaron argumentos *encoding* y *errors*." -#: ../Doc/library/subprocess.rst:1496 +#: ../Doc/library/subprocess.rst:1545 msgid "Return output (stdout and stderr) of executing *cmd* in a shell." msgstr "Retorna la salida (stdout y stderr) de ejecutar *cmd* en una shell." -#: ../Doc/library/subprocess.rst:1498 +#: ../Doc/library/subprocess.rst:1547 msgid "" "Like :func:`getstatusoutput`, except the exit code is ignored and the return " "value is a string containing the command's output. Example::" @@ -2332,19 +2370,19 @@ msgstr "" "valor retornado es una cadena que contiene la salida del comando. Por " "ejemplo::" -#: ../Doc/library/subprocess.rst:1506 +#: ../Doc/library/subprocess.rst:1555 msgid "Windows support added" msgstr "Se añadió soporte de Windows" -#: ../Doc/library/subprocess.rst:1514 +#: ../Doc/library/subprocess.rst:1563 msgid "Notes" msgstr "Notas" -#: ../Doc/library/subprocess.rst:1519 +#: ../Doc/library/subprocess.rst:1568 msgid "Converting an argument sequence to a string on Windows" msgstr "Cómo convertir una secuencia de argumentos a una cadena en Windows" -#: ../Doc/library/subprocess.rst:1521 +#: ../Doc/library/subprocess.rst:1570 msgid "" "On Windows, an *args* sequence is converted to a string that can be parsed " "using the following rules (which correspond to the rules used by the MS C " @@ -2354,14 +2392,14 @@ msgstr "" "analizada con las siguientes reglas (correspondientes a las reglas que usa " "la biblioteca de ejecución de MS C):" -#: ../Doc/library/subprocess.rst:1525 +#: ../Doc/library/subprocess.rst:1574 msgid "" "Arguments are delimited by white space, which is either a space or a tab." msgstr "" "Los argumentos se separan por espacio en blanco, que debe ser un espacio o " "un tabulador." -#: ../Doc/library/subprocess.rst:1528 +#: ../Doc/library/subprocess.rst:1577 msgid "" "A string surrounded by double quotation marks is interpreted as a single " "argument, regardless of white space contained within. A quoted string can " @@ -2371,7 +2409,7 @@ msgstr "" "importar los espacios en blanco que contenga. Se puede incrustar una cadena " "entre comillas en un argumento." -#: ../Doc/library/subprocess.rst:1533 +#: ../Doc/library/subprocess.rst:1582 msgid "" "A double quotation mark preceded by a backslash is interpreted as a literal " "double quotation mark." @@ -2379,7 +2417,7 @@ msgstr "" "Una comilla doble precedida de una barra invertida se interpreta " "literalmente como una comilla doble." -#: ../Doc/library/subprocess.rst:1536 +#: ../Doc/library/subprocess.rst:1585 msgid "" "Backslashes are interpreted literally, unless they immediately precede a " "double quotation mark." @@ -2387,7 +2425,7 @@ msgstr "" "Las barras invertidas se interpretan literalmente, salvo que precedan a una " "comilla doble." -#: ../Doc/library/subprocess.rst:1539 +#: ../Doc/library/subprocess.rst:1588 msgid "" "If backslashes immediately precede a double quotation mark, every pair of " "backslashes is interpreted as a literal backslash. If the number of " @@ -2399,20 +2437,20 @@ msgstr "" "el número de barras invertidas es impar, la última barra invertida escapa la " "siguiente comilla doble según se describe en la regla 3." -#: ../Doc/library/subprocess.rst:1548 +#: ../Doc/library/subprocess.rst:1597 msgid ":mod:`shlex`" msgstr ":mod:`shlex`" -#: ../Doc/library/subprocess.rst:1549 +#: ../Doc/library/subprocess.rst:1598 msgid "Module which provides function to parse and escape command lines." msgstr "" "Módulo que proporciona una función para analizar y escapar líneas de órdenes." -#: ../Doc/library/subprocess.rst:1556 +#: ../Doc/library/subprocess.rst:1605 msgid "Disabling use of ``vfork()`` or ``posix_spawn()``" msgstr "Deshabilitar el uso de ``vfork()`` o ``posix_spawn()``" -#: ../Doc/library/subprocess.rst:1558 +#: ../Doc/library/subprocess.rst:1607 msgid "" "On Linux, :mod:`subprocess` defaults to using the ``vfork()`` system call " "internally when it is safe to do so rather than ``fork()``. This greatly " @@ -2422,26 +2460,23 @@ msgstr "" "sistema ``vfork()`` internamente cuando es seguro hacerlo en lugar de " "``fork()``. Esto mejora mucho el rendimiento." -#: ../Doc/library/subprocess.rst:1562 +#: ../Doc/library/subprocess.rst:1611 +#, fuzzy msgid "" "If you ever encounter a presumed highly unusual situation where you need to " -"prevent ``vfork()`` from being used by Python, you can set the :attr:" +"prevent ``vfork()`` from being used by Python, you can set the :const:" "`subprocess._USE_VFORK` attribute to a false value." msgstr "" "Si alguna vez se encuentra con una situación muy inusual en la que necesita " "evitar que Python use ``vfork()``, puede establecer el atributo :attr:" "`subprocess._USE_VFORK` en un valor falso." -#: ../Doc/library/subprocess.rst:1566 -msgid "subprocess._USE_VFORK = False # See CPython issue gh-NNNNNN." -msgstr "" -"subprocess._USE_VFORK = False # Consulte el problema de CPython gh-NNNNNN." - -#: ../Doc/library/subprocess.rst:1568 +#: ../Doc/library/subprocess.rst:1619 +#, fuzzy msgid "" "Setting this has no impact on use of ``posix_spawn()`` which could use " "``vfork()`` internally within its libc implementation. There is a similar :" -"attr:`subprocess._USE_POSIX_SPAWN` attribute if you need to prevent use of " +"const:`subprocess._USE_POSIX_SPAWN` attribute if you need to prevent use of " "that." msgstr "" "Configurar esto no tiene impacto en el uso de ``posix_spawn()`` que podría " @@ -2449,18 +2484,13 @@ msgstr "" "atributo :attr:`subprocess._USE_POSIX_SPAWN` similar si necesita evitar su " "uso." -#: ../Doc/library/subprocess.rst:1573 -msgid "subprocess._USE_POSIX_SPAWN = False # See CPython issue gh-NNNNNN." -msgstr "" -"subprocess._USE_POSIX_SPAWN = Falso # Consulte el problema de CPython gh-" -"NNNNNN." - -#: ../Doc/library/subprocess.rst:1575 +#: ../Doc/library/subprocess.rst:1628 +#, fuzzy msgid "" "It is safe to set these to false on any Python version. They will have no " "effect on older versions when unsupported. Do not assume the attributes are " "available to read. Despite their names, a true value does not indicate that " -"the corresponding function will be used, only that that it may be." +"the corresponding function will be used, only that it may be." msgstr "" "Es seguro establecerlos en falso en cualquier versión de Python. No tendrán " "ningún efecto en las versiones anteriores cuando no sean compatibles. No " @@ -2468,7 +2498,7 @@ msgstr "" "un valor verdadero no indica que se vaya a utilizar la función " "correspondiente, sino que puede ser." -#: ../Doc/library/subprocess.rst:1580 +#: ../Doc/library/subprocess.rst:1633 msgid "" "Please file issues any time you have to use these private knobs with a way " "to reproduce the issue you were seeing. Link to that issue from a comment in " @@ -2478,10 +2508,40 @@ msgstr "" "con una forma de reproducir el problema que estaba viendo. Enlace a ese " "problema desde un comentario en su código." -#: ../Doc/library/subprocess.rst:1584 +#: ../Doc/library/subprocess.rst:1637 msgid "``_USE_POSIX_SPAWN``" msgstr "``_USE_POSIX_SPAWN``" -#: ../Doc/library/subprocess.rst:1585 +#: ../Doc/library/subprocess.rst:1638 msgid "``_USE_VFORK``" msgstr "``_USE_VFORK``" + +#: ../Doc/library/subprocess.rst:293 +msgid "universal newlines" +msgstr "" + +#: ../Doc/library/subprocess.rst:293 +#, fuzzy +msgid "subprocess module" +msgstr "Uso del módulo :mod:`subprocess`" + +#~ msgid "" +#~ "If *env* is not ``None``, it must be a mapping that defines the " +#~ "environment variables for the new process; these are used instead of the " +#~ "default behavior of inheriting the current process' environment." +#~ msgstr "" +#~ "Si *env* no es ``None``, debe ser un mapeo que defina las variables de " +#~ "entorno del nuevo proceso; se utilizarán éstas en lugar del " +#~ "comportamiento por defecto de heredar el entorno del proceso en curso." + +#~ msgid "The following attributes are also available:" +#~ msgstr "También están disponibles los siguientes atributos:" + +#~ msgid "subprocess._USE_VFORK = False # See CPython issue gh-NNNNNN." +#~ msgstr "" +#~ "subprocess._USE_VFORK = False # Consulte el problema de CPython gh-NNNNNN." + +#~ msgid "subprocess._USE_POSIX_SPAWN = False # See CPython issue gh-NNNNNN." +#~ msgstr "" +#~ "subprocess._USE_POSIX_SPAWN = Falso # Consulte el problema de CPython gh-" +#~ "NNNNNN." diff --git a/library/symtable.po b/library/symtable.po index 51443176d1..92665ce9d6 100644 --- a/library/symtable.po +++ b/library/symtable.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-29 11:17-0500\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/symtable.rst:2 msgid ":mod:`symtable` --- Access to the compiler's symbol tables" @@ -67,39 +66,46 @@ msgstr "Un espacio de nombres para el bloque. El constructor no es público." #: ../Doc/library/symtable.rst:40 msgid "" "Return the type of the symbol table. Possible values are ``'class'``, " -"``'module'``, and ``'function'``." +"``'module'``, ``'function'``, ``'annotation'``, ``'TypeVar bound'``, ``'type " +"alias'``, and ``'type parameter'``. The latter four refer to different " +"flavors of :ref:`annotation scopes `." msgstr "" -"Retorna el tipo de la tabla de símbolos. Los valores posibles son " -"``'class'``, ``'module'`` y ``'function'``." #: ../Doc/library/symtable.rst:45 +msgid "" +"Added ``'annotation'``, ``'TypeVar bound'``, ``'type alias'``, and ``'type " +"parameter'`` as possible return values." +msgstr "" + +#: ../Doc/library/symtable.rst:51 msgid "Return the table's identifier." msgstr "Retorna el identificador de la tabla." -#: ../Doc/library/symtable.rst:49 +#: ../Doc/library/symtable.rst:55 msgid "" "Return the table's name. This is the name of the class if the table is for " "a class, the name of the function if the table is for a function, or " -"``'top'`` if the table is global (:meth:`get_type` returns ``'module'``)." +"``'top'`` if the table is global (:meth:`get_type` returns ``'module'``). " +"For type parameter scopes (which are used for generic classes, functions, " +"and type aliases), it is the name of the underlying class, function, or type " +"alias. For type alias scopes, it is the name of the type alias. For :class:" +"`~typing.TypeVar` bound scopes, it is the name of the ``TypeVar``." msgstr "" -"Retorna el nombre de la tabla. Este es el nombre de la clase si la tabla es " -"para una clase, el nombre de la función si la tabla es para una función, o " -"``'top'`` si la tabla es global (:meth:`get_type` retorna ``'module'``)." -#: ../Doc/library/symtable.rst:55 +#: ../Doc/library/symtable.rst:65 msgid "Return the number of the first line in the block this table represents." msgstr "" "Retorna el número de la primera línea en el bloque que esta tabla representa." -#: ../Doc/library/symtable.rst:59 +#: ../Doc/library/symtable.rst:69 msgid "Return ``True`` if the locals in this table can be optimized." msgstr "Retorna ``True`` si los locales en esta tabla pueden ser optimizados." -#: ../Doc/library/symtable.rst:63 +#: ../Doc/library/symtable.rst:73 msgid "Return ``True`` if the block is a nested class or function." msgstr "Retorna ``True`` si el bloque es una clase o función anidadas." -#: ../Doc/library/symtable.rst:67 +#: ../Doc/library/symtable.rst:77 msgid "" "Return ``True`` if the block has nested namespaces within it. These can be " "obtained with :meth:`get_children`." @@ -107,7 +113,7 @@ msgstr "" "Retorna ``True`` si el bloque contiene espacios de nombres anidados en él. " "Estos pueden ser obtenidos con :meth:`get_children`." -#: ../Doc/library/symtable.rst:72 +#: ../Doc/library/symtable.rst:82 msgid "" "Return a view object containing the names of symbols in the table. See the :" "ref:`documentation of view objects `." @@ -115,21 +121,21 @@ msgstr "" "Retorna una vista de objeto que contiene los nombres de los símbolos en la " "tabla. Lee la :ref:`documentación de vistas de objetos `." -#: ../Doc/library/symtable.rst:77 +#: ../Doc/library/symtable.rst:87 msgid "Lookup *name* in the table and return a :class:`Symbol` instance." msgstr "Busca *name* en la tabla y retorna una instancia de :class:`Symbol`." -#: ../Doc/library/symtable.rst:81 +#: ../Doc/library/symtable.rst:91 msgid "Return a list of :class:`Symbol` instances for names in the table." msgstr "" "Retorna una lista de instancias de :class:`Symbol` de los nombres en la " "tabla." -#: ../Doc/library/symtable.rst:85 +#: ../Doc/library/symtable.rst:95 msgid "Return a list of the nested symbol tables." msgstr "Retorna una lista de las tablas de símbolos anidadas." -#: ../Doc/library/symtable.rst:90 +#: ../Doc/library/symtable.rst:100 msgid "" "A namespace for a function or method. This class inherits :class:" "`SymbolTable`." @@ -137,45 +143,45 @@ msgstr "" "Un espacio de nombres para una función o método. Esta clase hereda de :class:" "`SymbolTable`." -#: ../Doc/library/symtable.rst:95 +#: ../Doc/library/symtable.rst:105 msgid "Return a tuple containing names of parameters to this function." msgstr "" "Retorna una tupla conteniendo los nombres de los parámetros de esta función." -#: ../Doc/library/symtable.rst:99 +#: ../Doc/library/symtable.rst:109 msgid "Return a tuple containing names of locals in this function." msgstr "" "Retorna una tupla conteniendo los nombres de los locales en esta función." -#: ../Doc/library/symtable.rst:103 +#: ../Doc/library/symtable.rst:113 msgid "Return a tuple containing names of globals in this function." msgstr "" "Retorna una tupla conteniendo los nombres de los globales en esta función." -#: ../Doc/library/symtable.rst:107 +#: ../Doc/library/symtable.rst:117 msgid "Return a tuple containing names of nonlocals in this function." msgstr "" "Retorna una tupla conteniendo los nombres de los no locales en esta función." -#: ../Doc/library/symtable.rst:111 +#: ../Doc/library/symtable.rst:121 msgid "Return a tuple containing names of free variables in this function." msgstr "" "Retorna una tupla conteniendo los nombres de las variables libres en esta " "función." -#: ../Doc/library/symtable.rst:116 +#: ../Doc/library/symtable.rst:126 msgid "A namespace of a class. This class inherits :class:`SymbolTable`." msgstr "" "Un espacio de nombres de una clase. Esta clase hereda de :class:" "`SymbolTable`." -#: ../Doc/library/symtable.rst:120 +#: ../Doc/library/symtable.rst:130 msgid "Return a tuple containing the names of methods declared in the class." msgstr "" "Retorna una tupla conteniendo los nombres de los métodos declarados en la " "clase." -#: ../Doc/library/symtable.rst:125 +#: ../Doc/library/symtable.rst:135 msgid "" "An entry in a :class:`SymbolTable` corresponding to an identifier in the " "source. The constructor is not public." @@ -183,64 +189,64 @@ msgstr "" "Una entrada en una :class:`SymbolTable` correspondiente a un identificador " "en el código. El constructor no es público." -#: ../Doc/library/symtable.rst:130 +#: ../Doc/library/symtable.rst:140 msgid "Return the symbol's name." msgstr "Retorna el nombre del símbolo." -#: ../Doc/library/symtable.rst:134 +#: ../Doc/library/symtable.rst:144 msgid "Return ``True`` if the symbol is used in its block." msgstr "Retorna ``True`` si el símbolo es usado en su bloque." -#: ../Doc/library/symtable.rst:138 +#: ../Doc/library/symtable.rst:148 msgid "Return ``True`` if the symbol is created from an import statement." msgstr "" "Retorna ``True`` si el símbolo es creado desde una instrucción *import*." -#: ../Doc/library/symtable.rst:142 +#: ../Doc/library/symtable.rst:152 msgid "Return ``True`` if the symbol is a parameter." msgstr "Retorna ``True`` si el símbolo es un parámetro." -#: ../Doc/library/symtable.rst:146 +#: ../Doc/library/symtable.rst:156 msgid "Return ``True`` if the symbol is global." msgstr "Retorna ``True`` si el símbolo es global." -#: ../Doc/library/symtable.rst:150 +#: ../Doc/library/symtable.rst:160 msgid "Return ``True`` if the symbol is nonlocal." msgstr "Retorna ``True`` si el símbolo es no local." -#: ../Doc/library/symtable.rst:154 +#: ../Doc/library/symtable.rst:164 msgid "" "Return ``True`` if the symbol is declared global with a global statement." msgstr "" "Retorna ``True`` si el símbolo es declarado global con una instrucción " "*global*." -#: ../Doc/library/symtable.rst:158 +#: ../Doc/library/symtable.rst:168 msgid "Return ``True`` if the symbol is local to its block." msgstr "Retorna ``True`` si el símbolo es local a su bloque." -#: ../Doc/library/symtable.rst:162 +#: ../Doc/library/symtable.rst:172 msgid "Return ``True`` if the symbol is annotated." msgstr "Retorna ``True`` si el símbolo está anotado." -#: ../Doc/library/symtable.rst:168 +#: ../Doc/library/symtable.rst:178 msgid "" "Return ``True`` if the symbol is referenced in its block, but not assigned " "to." msgstr "" "Retorna ``True`` si el símbolo es referenciado en su bloque pero no asignado." -#: ../Doc/library/symtable.rst:173 +#: ../Doc/library/symtable.rst:183 msgid "Return ``True`` if the symbol is assigned to in its block." msgstr "Retorna ``True`` si el símbolo es asignado en su bloque." -#: ../Doc/library/symtable.rst:177 +#: ../Doc/library/symtable.rst:187 msgid "Return ``True`` if name binding introduces new namespace." msgstr "" "Retorna ``True`` si la vinculación de nombres introduce un nuevo espacio de " "nombres." -#: ../Doc/library/symtable.rst:179 +#: ../Doc/library/symtable.rst:189 msgid "" "If the name is used as the target of a function or class statement, this " "will be true." @@ -248,11 +254,11 @@ msgstr "" "Si el nombre es usado como objetivo de una instrucción *function* o *class* " "retornará verdadero." -#: ../Doc/library/symtable.rst:182 +#: ../Doc/library/symtable.rst:192 msgid "For example::" msgstr "Por ejemplo::" -#: ../Doc/library/symtable.rst:188 +#: ../Doc/library/symtable.rst:198 msgid "" "Note that a single name can be bound to multiple objects. If the result is " "``True``, the name may also be bound to other objects, like an int or list, " @@ -263,11 +269,11 @@ msgstr "" "objetos, como un entero o una lista, esto no introduce un nuevo espacio de " "nombres." -#: ../Doc/library/symtable.rst:194 +#: ../Doc/library/symtable.rst:204 msgid "Return a list of namespaces bound to this name." msgstr "Retorna una lista de espacios de nombres vinculados a este nombre." -#: ../Doc/library/symtable.rst:198 +#: ../Doc/library/symtable.rst:208 msgid "" "Return the namespace bound to this name. If more than one or no namespace is " "bound to this name, a :exc:`ValueError` is raised." @@ -275,3 +281,20 @@ msgstr "" "Retorna el espacio de nombre vinculado a este nombre. Si hay más de un " "espacio de nombre vinculado o ninguno a ese nombre se levanta un :exc:" "`ValueError`." + +#~ msgid "" +#~ "Return the type of the symbol table. Possible values are ``'class'``, " +#~ "``'module'``, and ``'function'``." +#~ msgstr "" +#~ "Retorna el tipo de la tabla de símbolos. Los valores posibles son " +#~ "``'class'``, ``'module'`` y ``'function'``." + +#~ msgid "" +#~ "Return the table's name. This is the name of the class if the table is " +#~ "for a class, the name of the function if the table is for a function, or " +#~ "``'top'`` if the table is global (:meth:`get_type` returns ``'module'``)." +#~ msgstr "" +#~ "Retorna el nombre de la tabla. Este es el nombre de la clase si la tabla " +#~ "es para una clase, el nombre de la función si la tabla es para una " +#~ "función, o ``'top'`` si la tabla es global (:meth:`get_type` retorna " +#~ "``'module'``)." diff --git a/library/sys.monitoring.po b/library/sys.monitoring.po new file mode 100644 index 0000000000..390632fc5c --- /dev/null +++ b/library/sys.monitoring.po @@ -0,0 +1,543 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001-2023, Python Software Foundation +# This file is distributed under the same license as the Python en Español +# package. +# FIRST AUTHOR , 2023. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python en Español 3.12\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: es\n" +"Language-Team: es \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.13.0\n" + +#: ../Doc/library/sys.monitoring.rst:2 +msgid ":mod:`sys.monitoring` --- Execution event monitoring" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:11 +msgid "" +"``sys.monitoring`` is a namespace within the ``sys`` module, not an " +"independent module, so there is no need to ``import sys.monitoring``, simply " +"``import sys`` and then use ``sys.monitoring``." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:17 +msgid "" +"This namespace provides access to the functions and constants necessary to " +"activate and control event monitoring." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:20 +msgid "" +"As programs execute, events occur that might be of interest to tools that " +"monitor execution. The :mod:`!sys.monitoring` namespace provides means to " +"receive callbacks when events of interest occur." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:24 +msgid "The monitoring API consists of three components:" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:26 ../Doc/library/sys.monitoring.rst:31 +msgid "Tool identifiers" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:27 ../Doc/library/sys.monitoring.rst:74 +msgid "Events" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:28 +msgid "Callbacks" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:33 +msgid "" +"A tool identifier is an integer and associated name. Tool identifiers are " +"used to discourage tools from interfering with each other and to allow " +"multiple tools to operate at the same time. Currently tools are completely " +"independent and cannot be used to monitor each other. This restriction may " +"be lifted in the future." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:39 +msgid "" +"Before registering or activating events, a tool should choose an identifier. " +"Identifiers are integers in the range 0 to 5." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:43 +msgid "Registering and using tools" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:47 +msgid "" +"Must be called before ``id`` can be used. ``id`` must be in the range 0 to 5 " +"inclusive. Raises a ``ValueError`` if ``id`` is in use." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:53 +msgid "Should be called once a tool no longer requires ``id``." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:57 +msgid "" +"Returns the name of the tool if ``id`` is in use, otherwise it returns " +"``None``. ``id`` must be in the range 0 to 5 inclusive." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:61 +msgid "" +"All IDs are treated the same by the VM with regard to events, but the " +"following IDs are pre-defined to make co-operation of tools easier::" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:69 +msgid "" +"There is no obligation to set an ID, nor is there anything preventing a tool " +"from using an ID even it is already in use. However, tools are encouraged to " +"use a unique ID and respect other tools." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:76 +msgid "The following events are supported:" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:78 ../Doc/library/sys.monitoring.rst:138 +msgid "BRANCH" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:79 +msgid "A conditional branch is taken (or not)." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:80 ../Doc/library/sys.monitoring.rst:134 +msgid "CALL" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:81 +msgid "A call in Python code (event occurs before the call)." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:82 ../Doc/library/sys.monitoring.rst:147 +msgid "C_RAISE" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:83 +msgid "" +"Exception raised from any callable, except Python functions (event occurs " +"after the exit)." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:84 ../Doc/library/sys.monitoring.rst:148 +msgid "C_RETURN" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:85 +msgid "" +"Return from any callable, except Python functions (event occurs after the " +"return)." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:86 ../Doc/library/sys.monitoring.rst:165 +msgid "EXCEPTION_HANDLED" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:87 +msgid "An exception is handled." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:88 ../Doc/library/sys.monitoring.rst:136 +msgid "INSTRUCTION" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:89 +msgid "A VM instruction is about to be executed." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:90 ../Doc/library/sys.monitoring.rst:137 +msgid "JUMP" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:91 +msgid "An unconditional jump in the control flow graph is made." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:92 ../Doc/library/sys.monitoring.rst:135 +msgid "LINE" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:93 +msgid "" +"An instruction is about to be executed that has a different line number from " +"the preceding instruction." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:94 ../Doc/library/sys.monitoring.rst:131 +msgid "PY_RESUME" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:95 +msgid "" +"Resumption of a Python function (for generator and coroutine functions), " +"except for throw() calls." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:96 ../Doc/library/sys.monitoring.rst:132 +msgid "PY_RETURN" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:97 +msgid "" +"Return from a Python function (occurs immediately before the return, the " +"callee's frame will be on the stack)." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:98 ../Doc/library/sys.monitoring.rst:130 +msgid "PY_START" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:99 +msgid "" +"Start of a Python function (occurs immediately after the call, the callee's " +"frame will be on the stack)" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:100 ../Doc/library/sys.monitoring.rst:162 +msgid "PY_THROW" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:101 +msgid "A Python function is resumed by a throw() call." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:102 ../Doc/library/sys.monitoring.rst:163 +msgid "PY_UNWIND" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:103 +msgid "Exit from a Python function during exception unwinding." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:104 ../Doc/library/sys.monitoring.rst:133 +msgid "PY_YIELD" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:105 +msgid "" +"Yield from a Python function (occurs immediately before the yield, the " +"callee's frame will be on the stack)." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:106 ../Doc/library/sys.monitoring.rst:164 +msgid "RAISE" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:107 +msgid "" +"An exception is raised, except those that cause a ``STOP_ITERATION`` event." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:108 +msgid "RERAISE" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:109 +msgid "" +"An exception is re-raised, for example at the end of a ``finally`` block." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:111 ../Doc/library/sys.monitoring.rst:139 +msgid "STOP_ITERATION" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:111 +msgid "" +"An artificial ``StopIteration`` is raised; see `the STOP_ITERATION event`_." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:113 +msgid "More events may be added in the future." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:115 +msgid "" +"These events are attributes of the :mod:`!sys.monitoring.events` namespace. " +"Each event is represented as a power-of-2 integer constant. To define a set " +"of events, simply bitwise or the individual events together. For example, to " +"specify both ``PY_RETURN`` and ``PY_START`` events, use the expression " +"``PY_RETURN | PY_START``." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:121 +msgid "Events are divided into three groups:" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:124 +msgid "Local events" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:126 +msgid "" +"Local events are associated with normal execution of the program and happen " +"at clearly defined locations. All local events can be disabled. The local " +"events are:" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:142 +msgid "Ancillary events" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:144 +msgid "" +"Ancillary events can be monitored like other events, but are controlled by " +"another event:" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:150 +msgid "" +"The ``C_RETURN`` and ``C_RAISE`` events are are controlled by the ``CALL`` " +"event. ``C_RETURN`` and ``C_RAISE`` events will only be seen if the " +"corresponding ``CALL`` event is being monitored." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:155 +msgid "Other events" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:157 +msgid "" +"Other events are not necessarily tied to a specific location in the program " +"and cannot be individually disabled." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:160 +msgid "The other events that can be monitored are:" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:169 +msgid "The STOP_ITERATION event" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:171 +msgid "" +":pep:`PEP 380 <380#use-of-stopiteration-to-return-values>` specifies that a " +"``StopIteration`` exception is raised when returning a value from a " +"generator or coroutine. However, this is a very inefficient way to return a " +"value, so some Python implementations, notably CPython 3.12+, do not raise " +"an exception unless it would be visible to other code." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:177 +msgid "" +"To allow tools to monitor for real exceptions without slowing down " +"generators and coroutines, the ``STOP_ITERATION`` event is provided. " +"``STOP_ITERATION`` can be locally disabled, unlike ``RAISE``." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:183 +msgid "Turning events on and off" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:185 +msgid "" +"In order to monitor an event, it must be turned on and a callback " +"registered. Events can be turned on or off by setting the events either " +"globally or for a particular code object." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:191 +msgid "Setting events globally" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:193 +msgid "" +"Events can be controlled globally by modifying the set of events being " +"monitored." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:197 +msgid "Returns the ``int`` representing all the active events." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:201 +msgid "" +"Activates all events which are set in ``event_set``. Raises a ``ValueError`` " +"if ``tool_id`` is not in use." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:204 +msgid "No events are active by default." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:207 +msgid "Per code object events" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:209 +msgid "Events can also be controlled on a per code object basis." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:213 +msgid "Returns all the local events for ``code``" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:217 +msgid "" +"Activates all the local events for ``code`` which are set in ``event_set``. " +"Raises a ``ValueError`` if ``tool_id`` is not in use." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:220 +msgid "" +"Local events add to global events, but do not mask them. In other words, all " +"global events will trigger for a code object, regardless of the local events." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:226 +msgid "Disabling events" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:228 +msgid "" +"Local events can be disabled for a specific code location by returning ``sys." +"monitoring.DISABLE`` from a callback function. This does not change which " +"events are set, or any other code locations for the same event." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:232 +msgid "" +"Disabling events for specific locations is very important for high " +"performance monitoring. For example, a program can be run under a debugger " +"with no overhead if the debugger disables all monitoring except for a few " +"breakpoints." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:239 +msgid "Registering callback functions" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:241 +msgid "To register a callable for events call" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:245 +msgid "" +"Registers the callable ``func`` for the ``event`` with the given ``tool_id``" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:247 +msgid "" +"If another callback was registered for the given ``tool_id`` and ``event``, " +"it is unregistered and returned. Otherwise ``register_callback`` returns " +"``None``." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:252 +msgid "" +"Functions can be unregistered by calling ``sys.monitoring." +"register_callback(tool_id, event, None)``." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:255 +msgid "Callback functions can be registered and unregistered at any time." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:257 +msgid "" +"Registering or unregistering a callback function will generate a ``sys." +"audit`` event." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:261 +msgid "Callback function arguments" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:263 +msgid "" +"When an active event occurs, the registered callback function is called. " +"Different events will provide the callback function with different " +"arguments, as follows:" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:266 +msgid "``PY_START`` and ``PY_RESUME``::" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:270 +msgid "``PY_RETURN`` and ``PY_YIELD``:" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:272 +msgid "" +"``func(code: CodeType, instruction_offset: int, retval: object) -> DISABLE | " +"Any``" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:274 +msgid "``CALL``, ``C_RAISE`` and ``C_RETURN``:" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:276 +msgid "" +"``func(code: CodeType, instruction_offset: int, callable: object, arg0: " +"object | MISSING) -> DISABLE | Any``" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:278 +msgid "If there are no arguments, ``arg0`` is set to ``MISSING``." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:280 +msgid "" +"``RAISE``, ``RERAISE``, ``EXCEPTION_HANDLED``, ``PY_UNWIND``, ``PY_THROW`` " +"and ``STOP_ITERATION``:" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:282 +msgid "" +"``func(code: CodeType, instruction_offset: int, exception: BaseException) -> " +"DISABLE | Any``" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:284 +msgid "``LINE``:" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:286 +msgid "``func(code: CodeType, line_number: int) -> DISABLE | Any``" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:288 +msgid "``BRANCH`` and ``JUMP``:" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:290 +msgid "" +"``func(code: CodeType, instruction_offset: int, destination_offset: int) -> " +"DISABLE | Any``" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:292 +msgid "" +"Note that the ``destination_offset`` is where the code will next execute. " +"For an untaken branch this will be the offset of the instruction following " +"the branch." +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:296 +msgid "``INSTRUCTION``:" +msgstr "" + +#: ../Doc/library/sys.monitoring.rst:298 +msgid "``func(code: CodeType, instruction_offset: int) -> DISABLE | Any``" +msgstr "" diff --git a/library/sys.po b/library/sys.po index 63c5fb2127..057e8ecd66 100644 --- a/library/sys.po +++ b/library/sys.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-16 11:39-0300\n" "Last-Translator: Rodrigo Poblete \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/sys.rst:2 msgid ":mod:`sys` --- System-specific parameters and functions" @@ -78,6 +77,18 @@ msgstr "" "excepción para abortar la operación, o terminar el proceso completamente." #: ../Doc/library/sys.rst:38 +msgid "" +"Note that audit hooks are primarily for collecting information about " +"internal or otherwise unobservable actions, whether by Python or libraries " +"written in Python. They are not suitable for implementing a \"sandbox\". In " +"particular, malicious code can trivially disable or bypass hooks added using " +"this function. At a minimum, any security-sensitive hooks must be added " +"using the C API :c:func:`PySys_AddAuditHook` before initialising the " +"runtime, and any modules allowing arbitrary memory modification (such as :" +"mod:`ctypes`) should be completely removed or closely monitored." +msgstr "" + +#: ../Doc/library/sys.rst:47 #, fuzzy msgid "" "Raises an :ref:`auditing event ` ``sys.addaudithook`` with no " @@ -85,7 +96,7 @@ msgid "" msgstr "" "Lanza un :ref:`auditing event ` ``sys.setprofile`` sin argumentos." -#: ../Doc/library/sys.rst:40 +#: ../Doc/library/sys.rst:49 msgid "" "Calling :func:`sys.addaudithook` will itself raise an auditing event named " "``sys.addaudithook`` with no arguments. If any existing hooks raise an " @@ -100,7 +111,7 @@ msgstr "" "podrán asumir que el hook a sido agregado a menos que ellos controlen todos " "los hooks existentes." -#: ../Doc/library/sys.rst:47 +#: ../Doc/library/sys.rst:56 msgid "" "See the :ref:`audit events table ` for all events raised by " "CPython, and :pep:`578` for the original design discussion." @@ -109,7 +120,7 @@ msgstr "" "los eventos lanzados por CPython, y :pep:`578` para discusión del diseño " "original." -#: ../Doc/library/sys.rst:54 +#: ../Doc/library/sys.rst:63 msgid "" "Exceptions derived from :class:`Exception` but not :class:`RuntimeError` are " "no longer suppressed." @@ -117,7 +128,7 @@ msgstr "" "Las excepciones derivadas de :class:`Exception` pero no :class:" "`RuntimeError` ya no se suprimen." -#: ../Doc/library/sys.rst:59 +#: ../Doc/library/sys.rst:68 msgid "" "When tracing is enabled (see :func:`settrace`), Python hooks are only traced " "if the callable has a ``__cantrace__`` member that is set to a true value. " @@ -128,7 +139,7 @@ msgstr "" "que se establece en un valor verdadero. De lo contrario, las funciones de " "seguimiento omitirán el enlace." -#: ../Doc/library/sys.rst:66 +#: ../Doc/library/sys.rst:75 msgid "" "The list of command line arguments passed to a Python script. ``argv[0]`` is " "the script name (it is operating system dependent whether this is a full " @@ -145,7 +156,7 @@ msgstr "" "de secuencia de comandos al intérprete de Python, ``argv[0]`` es la cadena " "de caracteres vacía." -#: ../Doc/library/sys.rst:72 +#: ../Doc/library/sys.rst:81 msgid "" "To loop over the standard input, or the list of files given on the command " "line, see the :mod:`fileinput` module." @@ -153,11 +164,11 @@ msgstr "" "Para recorrer la entrada estándar, o la lista de archivos dada en la línea " "de comando, vea el módulo :mod:`fileinput`." -#: ../Doc/library/sys.rst:75 +#: ../Doc/library/sys.rst:84 msgid "See also :data:`sys.orig_argv`." msgstr "También ver :data:`sys.orig_argv`." -#: ../Doc/library/sys.rst:78 +#: ../Doc/library/sys.rst:87 msgid "" "On Unix, command line arguments are passed by bytes from OS. Python decodes " "them with filesystem encoding and \"surrogateescape\" error handler. When " @@ -170,7 +181,7 @@ msgstr "" "bytes originales, puede obtenerlos mediante ``[os.fsencode (arg) for arg in " "sys.argv]``." -#: ../Doc/library/sys.rst:90 +#: ../Doc/library/sys.rst:99 msgid "" "Raise an auditing event and trigger any active auditing hooks. *event* is a " "string identifying the event, and *args* may contain optional arguments with " @@ -184,7 +195,7 @@ msgstr "" "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:96 +#: ../Doc/library/sys.rst:105 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." @@ -193,7 +204,7 @@ msgstr "" "un argumento llamado *path* que contendrá el nuevo directorio de trabajo " "solicitado." -#: ../Doc/library/sys.rst:100 +#: ../Doc/library/sys.rst:109 msgid "" ":func:`sys.audit` will call the existing auditing hooks, passing the event " "name and arguments, and will re-raise the first exception from any hook. In " @@ -210,7 +221,7 @@ msgstr "" "determinados eventos: pueden limitarse a registrar el evento o abortar la " "operación lanzando una excepción." -#: ../Doc/library/sys.rst:108 +#: ../Doc/library/sys.rst:117 msgid "" "Hooks are added using the :func:`sys.addaudithook` or :c:func:" "`PySys_AddAuditHook` functions." @@ -218,7 +229,7 @@ msgstr "" "Los ganchos se agregan usando las funciones :func:`sys.addaudithook` o :c:" "func:`PySys_AddAuditHook`." -#: ../Doc/library/sys.rst:111 +#: ../Doc/library/sys.rst:120 msgid "" "The native equivalent of this function is :c:func:`PySys_Audit`. Using the " "native function is preferred when possible." @@ -226,7 +237,7 @@ msgstr "" "El equivalente nativo de esta función es :c:func:`PySys_Audit`. Se prefiere " "usar la función nativa cuando sea posible." -#: ../Doc/library/sys.rst:114 +#: ../Doc/library/sys.rst:123 msgid "" "See the :ref:`audit events table ` for all events raised by " "CPython." @@ -234,7 +245,7 @@ msgstr "" "Consulte la :ref:`tabla de eventos de auditoría ` para todos " "los eventos lanzados por CPython." -#: ../Doc/library/sys.rst:122 +#: ../Doc/library/sys.rst:131 msgid "" "Set during Python startup, before ``site.py`` is run, to the same value as :" "data:`exec_prefix`. If not running in a :ref:`virtual environment `, " @@ -272,7 +283,7 @@ msgstr "" "apuntando a la instalación base de Python (aquella desde la que se creó el " "entorno virtual)." -#: ../Doc/library/sys.rst:149 +#: ../Doc/library/sys.rst:158 msgid "" "An indicator of the native byte order. This will have the value ``'big'`` " "on big-endian (most-significant byte first) platforms, and ``'little'`` on " @@ -283,7 +294,7 @@ msgstr "" "``'little'`` en las plataformas little-endian (el byte menos significativo " "primero)." -#: ../Doc/library/sys.rst:156 +#: ../Doc/library/sys.rst:165 msgid "" "A tuple of strings containing the names of all modules that are compiled " "into this Python interpreter. (This information is not available in any " @@ -294,11 +305,12 @@ msgstr "" "está disponible de ninguna otra manera --- ``modules.keys()`` solo enumera " "los módulos importados.)" -#: ../Doc/library/sys.rst:160 -msgid "See also the :attr:`sys.stdlib_module_names` list." +#: ../Doc/library/sys.rst:169 +#, fuzzy +msgid "See also the :data:`sys.stdlib_module_names` list." msgstr "También ver la lista :attr:`sys.stdlib_module_names`." -#: ../Doc/library/sys.rst:165 +#: ../Doc/library/sys.rst:174 msgid "" "Call ``func(*args)``, while tracing is enabled. The tracing state is saved, " "and restored afterwards. This is intended to be called from a debugger from " @@ -309,13 +321,13 @@ msgstr "" "ser llamado desde un depurador desde un punto de control, para depurar " "recursivamente algún otro código." -#: ../Doc/library/sys.rst:172 +#: ../Doc/library/sys.rst:181 msgid "A string containing the copyright pertaining to the Python interpreter." msgstr "" "Una cadena de caracteres que contiene los derechos de autor pertenecientes " "al intérprete de Python." -#: ../Doc/library/sys.rst:177 +#: ../Doc/library/sys.rst:186 msgid "" "Clear the internal type cache. The type cache is used to speed up attribute " "and method lookups. Use the function *only* to drop unnecessary references " @@ -326,13 +338,13 @@ msgstr "" "eliminar referencias innecesarias durante la depuración de fugas de " "referencia." -#: ../Doc/library/sys.rst:181 ../Doc/library/sys.rst:197 -#: ../Doc/library/sys.rst:210 +#: ../Doc/library/sys.rst:190 ../Doc/library/sys.rst:206 +#: ../Doc/library/sys.rst:219 msgid "" "This function should be used for internal and specialized purposes only." msgstr "Esta función debe usarse solo para fines internos y especializados." -#: ../Doc/library/sys.rst:186 +#: ../Doc/library/sys.rst:195 msgid "" "Return a dictionary mapping each thread's identifier to the topmost stack " "frame currently active in that thread at the time the function is called. " @@ -344,7 +356,7 @@ msgstr "" "que se llama a la función. Tenga en cuenta que las funciones en el módulo :" "mod:`traceback` pueden construir la pila de llamadas dado tal marco." -#: ../Doc/library/sys.rst:191 +#: ../Doc/library/sys.rst:200 msgid "" "This is most useful for debugging deadlock: this function does not require " "the deadlocked threads' cooperation, and such threads' call stacks are " @@ -359,7 +371,7 @@ msgstr "" "actividad actual de ese subproceso en el momento en que el código de llamada " "examina el marco." -#: ../Doc/library/sys.rst:199 +#: ../Doc/library/sys.rst:208 msgid "" "Raises an :ref:`auditing event ` ``sys._current_frames`` with no " "arguments." @@ -367,7 +379,7 @@ msgstr "" "Lanza un :ref:`auditing event ` ``sys._current_frames`` sin " "argumentos." -#: ../Doc/library/sys.rst:203 +#: ../Doc/library/sys.rst:212 msgid "" "Return a dictionary mapping each thread's identifier to the topmost " "exception currently active in that thread at the time the function is " @@ -379,11 +391,11 @@ msgstr "" "función fue llamada. Si un hilo no esta manejando una excepción en el " "momento, no se incluye en el resultado del diccionario." -#: ../Doc/library/sys.rst:208 +#: ../Doc/library/sys.rst:217 msgid "This is most useful for statistical profiling." msgstr "Esto es más útil para la elaboración de perfiles estadísticos." -#: ../Doc/library/sys.rst:212 +#: ../Doc/library/sys.rst:221 msgid "" "Raises an :ref:`auditing event ` ``sys._current_exceptions`` with " "no arguments." @@ -391,7 +403,13 @@ msgstr "" "Lanza un :ref:`auditing event ` ``sys._current_exceptions`` sin " "argumentos." -#: ../Doc/library/sys.rst:216 +#: ../Doc/library/sys.rst:223 +msgid "" +"Each value in the dictionary is now a single exception instance, rather than " +"a 3-tuple as returned from ``sys.exc_info()``." +msgstr "" + +#: ../Doc/library/sys.rst:229 msgid "" "This hook function is called by built-in :func:`breakpoint`. By default, it " "drops you into the :mod:`pdb` debugger, but it can be set to any other " @@ -402,7 +420,7 @@ msgstr "" "configurar en cualquier otra función para que pueda elegir qué depurador se " "utiliza." -#: ../Doc/library/sys.rst:220 +#: ../Doc/library/sys.rst:233 msgid "" "The signature of this function is dependent on what it calls. For example, " "the default binding (e.g. ``pdb.set_trace()``) expects no arguments, but you " @@ -418,7 +436,7 @@ msgstr "" "y ``**kws`` directamente. Lo que sea que retorne ``breakpointhooks()`` se " "retorna desde ``breakpoint()``." -#: ../Doc/library/sys.rst:227 +#: ../Doc/library/sys.rst:240 msgid "" "The default implementation first consults the environment variable :envvar:" "`PYTHONBREAKPOINT`. If that is set to ``\"0\"`` then this function returns " @@ -443,7 +461,7 @@ msgstr "" "``**kws``, y lo que sea que ``function()`` retorna, ``sys.breakpointhook()`` " "retorna a la función :func:`breakpoint`." -#: ../Doc/library/sys.rst:239 +#: ../Doc/library/sys.rst:252 msgid "" "Note that if anything goes wrong while importing the callable named by :" "envvar:`PYTHONBREAKPOINT`, a :exc:`RuntimeWarning` is reported and the " @@ -453,7 +471,7 @@ msgstr "" "envvar:`PYTHONBREAKPOINT`, se informa un :exc:`RuntimeWarning` y se ignora " "el punto de interrupción (*breakpoint*)." -#: ../Doc/library/sys.rst:243 +#: ../Doc/library/sys.rst:256 msgid "" "Also note that if ``sys.breakpointhook()`` is overridden programmatically, :" "envvar:`PYTHONBREAKPOINT` is *not* consulted." @@ -461,7 +479,7 @@ msgstr "" "También tenga en cuenta que si ``sys.breakpointhook()`` se anula mediante " "programación, :envvar:`PYTHONBREAKPOINT` *no* se consulta." -#: ../Doc/library/sys.rst:250 +#: ../Doc/library/sys.rst:263 msgid "" "Print low-level information to stderr about the state of CPython's memory " "allocator." @@ -469,7 +487,7 @@ msgstr "" "Imprime información de bajo nivel para stderr sobre el estado del asignador " "de memoria de CPython." -#: ../Doc/library/sys.rst:253 +#: ../Doc/library/sys.rst:266 #, fuzzy msgid "" "If Python is :ref:`built in debug mode ` (:option:`configure --" @@ -480,7 +498,7 @@ msgstr "" "`configure --with-pydebug option <--with-pydebug>`), también desarrolla " "algunos cheques de consistencia interna costosos." -#: ../Doc/library/sys.rst:261 +#: ../Doc/library/sys.rst:274 msgid "" "This function is specific to CPython. The exact output format is not " "defined here, and may change." @@ -488,16 +506,16 @@ msgstr "" "Esta función es específica de CPython. El formato exacto de salida no se " "define aquí y puede cambiar." -#: ../Doc/library/sys.rst:267 +#: ../Doc/library/sys.rst:280 msgid "Integer specifying the handle of the Python DLL." msgstr "Número entero que especifica el identificador de la DLL de Python." -#: ../Doc/library/sys.rst:269 ../Doc/library/sys.rst:865 -#: ../Doc/library/sys.rst:1571 ../Doc/library/sys.rst:1803 +#: ../Doc/library/sys.rst:282 ../Doc/library/sys.rst:972 +#: ../Doc/library/sys.rst:1717 ../Doc/library/sys.rst:1953 msgid ":ref:`Availability `: Windows." msgstr ":ref:`Disponibilidad `: Windows." -#: ../Doc/library/sys.rst:274 +#: ../Doc/library/sys.rst:287 msgid "" "If *value* is not ``None``, this function prints ``repr(value)`` to ``sys." "stdout``, and saves *value* in ``builtins._``. If ``repr(value)`` is not " @@ -511,7 +529,7 @@ msgstr "" "stdout.errors`` (que probablemente sea ``'strict'``), codifíquelo para ``sys." "stdout.encoding`` con el controlador de errores ``'backslashreplace'``." -#: ../Doc/library/sys.rst:280 +#: ../Doc/library/sys.rst:293 msgid "" "``sys.displayhook`` is called on the result of evaluating an :term:" "`expression` entered in an interactive Python session. The display of these " @@ -523,17 +541,17 @@ msgstr "" "de estos valores se puede personalizar asignando otra función de un " "argumento a ``sys.displayhook``." -#: ../Doc/library/sys.rst:284 +#: ../Doc/library/sys.rst:297 msgid "Pseudo-code::" msgstr "Pseudo-código::" -#: ../Doc/library/sys.rst:304 +#: ../Doc/library/sys.rst:317 msgid "Use ``'backslashreplace'`` error handler on :exc:`UnicodeEncodeError`." msgstr "" "Usa el manejador de error ``'backslashreplace'`` en :exc:" "`UnicodeEncodeError`." -#: ../Doc/library/sys.rst:310 +#: ../Doc/library/sys.rst:323 msgid "" "If this is true, Python won't try to write ``.pyc`` files on the import of " "source modules. This value is initially set to ``True`` or ``False`` " @@ -548,7 +566,7 @@ msgstr "" "configurarlo usted mismo para controlar el código de bytes generación de " "archivos." -#: ../Doc/library/sys.rst:319 +#: ../Doc/library/sys.rst:332 #, fuzzy msgid "" "A :term:`named tuple` holding information about the environment on the " @@ -559,22 +577,7 @@ msgstr "" "*wasm32-emscripten*. La tupla nombrada es provisional y puede cambiar en el " "futuro." -#: ../Doc/library/sys.rst:326 ../Doc/library/sys.rst:1011 -#: ../Doc/library/sys.rst:1686 -msgid "Attribute" -msgstr "Atributo" - -#: ../Doc/library/sys.rst:326 ../Doc/library/sys.rst:1011 -#: ../Doc/library/sys.rst:1686 -msgid "Explanation" -msgstr "Explicación" - -#: ../Doc/library/sys.rst:328 -#, fuzzy -msgid ":const:`emscripten_version`" -msgstr ":const:`version`" - -#: ../Doc/library/sys.rst:328 +#: ../Doc/library/sys.rst:338 msgid "" "Emscripten version as tuple of ints (major, minor, micro), e.g. ``(3, 1, " "8)``." @@ -582,12 +585,7 @@ msgstr "" "Versión de Emscripten como tupla de enteros (mayor, menor, micro), por " "ejemplo ``(3, 1, 8)``." -#: ../Doc/library/sys.rst:331 -#, fuzzy -msgid ":const:`runtime`" -msgstr ":const:`name`" - -#: ../Doc/library/sys.rst:331 +#: ../Doc/library/sys.rst:342 msgid "" "Runtime string, e.g. browser user agent, ``'Node.js v14.18.2'``, or " "``'UNKNOWN'``." @@ -595,31 +593,21 @@ msgstr "" "Cadena de tiempo de ejecución, por ejemplo, agente de usuario del navegador, " "``'Node.js v14.18.2'``, o ``'UNKNOWN'``." -#: ../Doc/library/sys.rst:334 -#, fuzzy -msgid ":const:`pthreads`" -msgstr ":const:`radix`" - -#: ../Doc/library/sys.rst:334 +#: ../Doc/library/sys.rst:346 msgid "``True`` if Python is compiled with Emscripten pthreads support." msgstr "" "``True`` si Python está compilado con soporte para pthreads de Emscripten." -#: ../Doc/library/sys.rst:337 -#, fuzzy -msgid ":const:`shared_memory`" -msgstr ":const:`name`" - -#: ../Doc/library/sys.rst:337 +#: ../Doc/library/sys.rst:350 msgid "``True`` if Python is compiled with shared memory support." msgstr "``True`` si Python está compilado con soporte de memoria compartida." -#: ../Doc/library/sys.rst:342 +#: ../Doc/library/sys.rst:352 #, fuzzy msgid ":ref:`Availability `: Emscripten." msgstr ":ref:`Disponibilidad `: Unix." -#: ../Doc/library/sys.rst:348 +#: ../Doc/library/sys.rst:359 #, fuzzy msgid "" "If this is set (not ``None``), Python will write bytecode-cache ``.pyc`` " @@ -640,14 +628,14 @@ msgstr "" "ejecutarlo con el mismo prefijo de pycache (si lo hay) que usará en tiempo " "de ejecución." -#: ../Doc/library/sys.rst:356 +#: ../Doc/library/sys.rst:367 msgid "" "A relative path is interpreted relative to the current working directory." msgstr "" "Una ruta relativa se interpreta en relación con el directorio de directorio " "actual." -#: ../Doc/library/sys.rst:358 +#: ../Doc/library/sys.rst:369 msgid "" "This value is initially set based on the value of the :option:`-X` " "``pycache_prefix=PATH`` command-line option or the :envvar:" @@ -659,21 +647,22 @@ msgstr "" "entorno :envvar:`PYTHONPYCACHEPREFIX` (la línea de comandos tiene " "prioridad). Si no se establece ninguno, es ``None``." -#: ../Doc/library/sys.rst:368 +#: ../Doc/library/sys.rst:379 msgid "" "This function prints out a given traceback and exception to ``sys.stderr``." msgstr "" "Esta función imprime un rastreo y una excepción dados a ``sys.stderr``." -#: ../Doc/library/sys.rst:370 +#: ../Doc/library/sys.rst:381 +#, fuzzy msgid "" -"When an exception is raised and uncaught, the interpreter calls ``sys." -"excepthook`` with three arguments, the exception class, exception instance, " -"and a traceback object. In an interactive session this happens just before " -"control is returned to the prompt; in a Python program this happens just " -"before the program exits. The handling of such top-level exceptions can be " -"customized by assigning another three-argument function to ``sys." -"excepthook``." +"When an exception other than :exc:`SystemExit` is raised and uncaught, the " +"interpreter calls ``sys.excepthook`` with three arguments, the exception " +"class, exception instance, and a traceback object. In an interactive " +"session this happens just before control is returned to the prompt; in a " +"Python program this happens just before the program exits. The handling of " +"such top-level exceptions can be customized by assigning another three-" +"argument function to ``sys.excepthook``." msgstr "" "Cuando se genera una excepción y no se detecta, el intérprete llama a ``sys." "excepthook`` con tres argumentos, la clase de excepción, la instancia de " @@ -683,7 +672,7 @@ msgstr "" "excepciones de nivel superior se puede personalizar asignando otra función " "de tres argumentos a ``sys.excepthook``." -#: ../Doc/library/sys.rst:377 +#: ../Doc/library/sys.rst:388 msgid "" "Raises an :ref:`auditing event ` ``sys.excepthook`` with arguments " "``hook``, ``type``, ``value``, ``traceback``." @@ -691,7 +680,7 @@ msgstr "" "Lanza un :ref:`auditing event ` ``sys.excepthook`` con argumentos " "``hook``, ``type``, ``value``, ``traceback``." -#: ../Doc/library/sys.rst:379 +#: ../Doc/library/sys.rst:390 msgid "" "Raise an auditing event ``sys.excepthook`` with arguments ``hook``, " "``type``, ``value``, ``traceback`` when an uncaught exception occurs. If no " @@ -708,7 +697,7 @@ msgstr "" "informará que la excepción del gancho de auditoría no se puede evaluar y se " "llamará a ``sys.excepthook``." -#: ../Doc/library/sys.rst:388 +#: ../Doc/library/sys.rst:399 msgid "" "The :func:`sys.unraisablehook` function handles unraisable exceptions and " "the :func:`threading.excepthook` function handles exception raised by :func:" @@ -718,7 +707,7 @@ msgstr "" "pueden evaluar y la función :func:`threading.excepthook` maneja la excepción " "lanzada por :func:`threading.Thread.run`." -#: ../Doc/library/sys.rst:398 +#: ../Doc/library/sys.rst:409 msgid "" "These objects contain the original values of ``breakpointhook``, " "``displayhook``, ``excepthook``, and ``unraisablehook`` at the start of the " @@ -732,15 +721,15 @@ msgstr "" "``unraisablehook`` se puedan restaurar en caso de que sean reemplazados por " "objetos rotos o alternativos." -#: ../Doc/library/sys.rst:404 +#: ../Doc/library/sys.rst:415 msgid "__breakpointhook__" msgstr "__breakpointhook__" -#: ../Doc/library/sys.rst:407 +#: ../Doc/library/sys.rst:418 msgid "__unraisablehook__" msgstr "__unraisablehook__" -#: ../Doc/library/sys.rst:413 +#: ../Doc/library/sys.rst:424 msgid "" "This function, when called while an exception handler is executing (such as " "an ``except`` or ``except*`` clause), returns the exception instance that " @@ -753,13 +742,13 @@ msgstr "" "manejadores de excepciones están anidados unos dentro de otros, sólo la " "excepción manejada por el manejador más interno es accesible." -#: ../Doc/library/sys.rst:418 +#: ../Doc/library/sys.rst:429 msgid "If no exception handler is executing, this function returns ``None``." msgstr "" "Si no se está ejecutando ningún manejador de excepciones, esta función " "retorna ``None``." -#: ../Doc/library/sys.rst:425 +#: ../Doc/library/sys.rst:436 msgid "" "This function returns the old-style representation of the handled exception. " "If an exception ``e`` is currently handled (so :func:`exception` would " @@ -777,7 +766,7 @@ msgstr "" "ref:`objeto traceback ` que suele encapsular la pila de " "llamadas en el punto en el que se produjo la última excepción." -#: ../Doc/library/sys.rst:436 +#: ../Doc/library/sys.rst:447 msgid "" "If no exception is being handled anywhere on the stack, this function return " "a tuple containing three ``None`` values." @@ -785,7 +774,7 @@ msgstr "" "Si no se está manejando ninguna excepción en ninguna parte de la pila, esta " "función retorna una tupla que contiene tres valores ``None``." -#: ../Doc/library/sys.rst:439 +#: ../Doc/library/sys.rst:450 msgid "" "The ``type`` and ``traceback`` fields are now derived from the ``value`` " "(the exception instance), so when an exception is modified while it is being " @@ -797,7 +786,7 @@ msgstr "" "mientras se maneja, los cambios se reflejan en los resultados de las " "subsiguientes llamadas a :func:`exc_info`." -#: ../Doc/library/sys.rst:447 +#: ../Doc/library/sys.rst:458 msgid "" "A string giving the site-specific directory prefix where the platform-" "dependent Python files are installed; by default, this is also ``'/usr/" @@ -819,7 +808,7 @@ msgstr "" "en :file:`{exec_prefix}/lib/python{XY}/lib-dynload`, donde *XY* es el número " "de versión de Python, por ejemplo,``3.2``." -#: ../Doc/library/sys.rst:458 +#: ../Doc/library/sys.rst:469 msgid "" "If a :ref:`virtual environment ` is in effect, this value will be " "changed in ``site.py`` to point to the virtual environment. The value for " @@ -831,7 +820,7 @@ msgstr "" "instalación de Python seguirá estando disponible a través de :data:" "`base_exec_prefix`." -#: ../Doc/library/sys.rst:466 +#: ../Doc/library/sys.rst:477 msgid "" "A string giving the absolute path of the executable binary for the Python " "interpreter, on systems where this makes sense. If Python is unable to " @@ -843,7 +832,7 @@ msgstr "" "sentido. Si Python no puede recuperar la ruta real a su ejecutable, :data:" "`sys.executable` será una cadena de caracteres vacía o ``None``." -#: ../Doc/library/sys.rst:474 +#: ../Doc/library/sys.rst:485 msgid "" "Raise a :exc:`SystemExit` exception, signaling an intention to exit the " "interpreter." @@ -851,7 +840,7 @@ msgstr "" "Genera una excepción :exc:`SystemExit`, indicando la intención de salir del " "intérprete." -#: ../Doc/library/sys.rst:476 +#: ../Doc/library/sys.rst:487 msgid "" "The optional argument *arg* can be an integer giving the exit status " "(defaulting to zero), or another type of object. If it is an integer, zero " @@ -881,7 +870,7 @@ msgstr "" "error\")`` es una forma rápida de salir de un programa cuando ocurre un " "error." -#: ../Doc/library/sys.rst:489 +#: ../Doc/library/sys.rst:500 #, fuzzy msgid "" "Since :func:`exit` ultimately \"only\" raises an exception, it will only " @@ -894,7 +883,7 @@ msgstr "" "del proceso cuando sea llamado desde el hilo principal, y la excepción no es " "interceptada." -#: ../Doc/library/sys.rst:494 +#: ../Doc/library/sys.rst:505 msgid "" "If an error occurs in the cleanup after the Python interpreter has caught :" "exc:`SystemExit` (such as an error flushing buffered data in the standard " @@ -905,7 +894,7 @@ msgstr "" "almacenados en el búfer en los flujos estándar), el estado de salida cambia " "a 120." -#: ../Doc/library/sys.rst:502 +#: ../Doc/library/sys.rst:513 msgid "" "The :term:`named tuple` *flags* exposes the status of command line flags. " "The attributes are read only." @@ -913,147 +902,68 @@ msgstr "" "El :term:`named tuple` *flags* expone el estado de los indicadores de la " "línea de comando. Los atributos son de solo lectura." -#: ../Doc/library/sys.rst:506 ../Doc/library/sys.rst:563 -#: ../Doc/library/sys.rst:910 -msgid "attribute" -msgstr "atributo" - -#: ../Doc/library/sys.rst:506 -msgid "flag" -msgstr "flag" - -#: ../Doc/library/sys.rst:508 -msgid ":const:`debug`" -msgstr ":const:`debug`" - -#: ../Doc/library/sys.rst:508 +#: ../Doc/library/sys.rst:519 msgid ":option:`-d`" msgstr ":option:`-d`" -#: ../Doc/library/sys.rst:509 -msgid ":const:`inspect`" -msgstr ":const:`inspect`" - -#: ../Doc/library/sys.rst:509 ../Doc/library/sys.rst:510 +#: ../Doc/library/sys.rst:522 ../Doc/library/sys.rst:525 msgid ":option:`-i`" msgstr ":option:`-i`" -#: ../Doc/library/sys.rst:510 -msgid ":const:`interactive`" -msgstr ":const:`interactive`" - -#: ../Doc/library/sys.rst:511 -msgid ":const:`isolated`" -msgstr ":const:`isolated`" - -#: ../Doc/library/sys.rst:511 +#: ../Doc/library/sys.rst:528 msgid ":option:`-I`" msgstr ":option:`-I`" -#: ../Doc/library/sys.rst:512 -msgid ":const:`optimize`" -msgstr ":const:`optimize`" - -#: ../Doc/library/sys.rst:512 +#: ../Doc/library/sys.rst:531 msgid ":option:`-O` or :option:`-OO`" msgstr ":option:`-O` o :option:`-OO`" -#: ../Doc/library/sys.rst:513 -msgid ":const:`dont_write_bytecode`" -msgstr ":const:`dont_write_bytecode`" - -#: ../Doc/library/sys.rst:513 +#: ../Doc/library/sys.rst:534 msgid ":option:`-B`" msgstr ":option:`-B`" -#: ../Doc/library/sys.rst:514 -msgid ":const:`no_user_site`" -msgstr ":const:`no_user_site`" - -#: ../Doc/library/sys.rst:514 +#: ../Doc/library/sys.rst:537 msgid ":option:`-s`" msgstr ":option:`-s`" -#: ../Doc/library/sys.rst:515 -msgid ":const:`no_site`" -msgstr ":const:`no_site`" - -#: ../Doc/library/sys.rst:515 +#: ../Doc/library/sys.rst:540 msgid ":option:`-S`" msgstr ":option:`-S`" -#: ../Doc/library/sys.rst:516 -msgid ":const:`ignore_environment`" -msgstr ":const:`ignore_environment`" - -#: ../Doc/library/sys.rst:516 +#: ../Doc/library/sys.rst:543 msgid ":option:`-E`" msgstr ":option:`-E`" -#: ../Doc/library/sys.rst:517 -msgid ":const:`verbose`" -msgstr ":const:`verbose`" - -#: ../Doc/library/sys.rst:517 +#: ../Doc/library/sys.rst:546 msgid ":option:`-v`" msgstr ":option:`-v`" -#: ../Doc/library/sys.rst:518 -msgid ":const:`bytes_warning`" -msgstr ":const:`bytes_warning`" - -#: ../Doc/library/sys.rst:518 +#: ../Doc/library/sys.rst:549 msgid ":option:`-b`" msgstr ":option:`-b`" -#: ../Doc/library/sys.rst:519 -msgid ":const:`quiet`" -msgstr ":const:`quiet`" - -#: ../Doc/library/sys.rst:519 +#: ../Doc/library/sys.rst:552 msgid ":option:`-q`" msgstr ":option:`-q`" -#: ../Doc/library/sys.rst:520 -msgid ":const:`hash_randomization`" -msgstr ":const:`hash_randomization`" - -#: ../Doc/library/sys.rst:520 +#: ../Doc/library/sys.rst:555 msgid ":option:`-R`" msgstr ":option:`-R`" -#: ../Doc/library/sys.rst:521 -msgid ":const:`dev_mode`" -msgstr ":const:`dev_mode`" - -#: ../Doc/library/sys.rst:521 +#: ../Doc/library/sys.rst:558 msgid ":option:`-X dev <-X>` (:ref:`Python Development Mode `)" msgstr ":option:`-X dev <-X>` (:ref:`Modo de desarrollo de Python `)" -#: ../Doc/library/sys.rst:522 -msgid ":const:`utf8_mode`" -msgstr ":const:`utf8_mode`" - -#: ../Doc/library/sys.rst:522 +#: ../Doc/library/sys.rst:561 msgid ":option:`-X utf8 <-X>`" msgstr ":option:`-X utf8 <-X>`" -#: ../Doc/library/sys.rst:523 -#, fuzzy -msgid ":const:`safe_path`" -msgstr ":const:`seed_bits`" - -#: ../Doc/library/sys.rst:523 +#: ../Doc/library/sys.rst:564 #, fuzzy msgid ":option:`-P`" msgstr ":option:`-v`" -#: ../Doc/library/sys.rst:524 -#, fuzzy -msgid ":const:`int_max_str_digits`" -msgstr ":const:`bits_per_digit`" - -#: ../Doc/library/sys.rst:524 +#: ../Doc/library/sys.rst:567 #, fuzzy msgid "" ":option:`-X int_max_str_digits <-X>` (:ref:`integer string conversion length " @@ -1062,24 +972,29 @@ msgstr "" ":option:`-X int_max_str_digits <-X>` (:ref:`Limitación de la longitud de " "conversión de la cadena entera `)" -#: ../Doc/library/sys.rst:527 +#: ../Doc/library/sys.rst:571 +#, fuzzy +msgid ":option:`-X warn_default_encoding <-X>`" +msgstr ":option:`-X utf8 <-X>`" + +#: ../Doc/library/sys.rst:573 msgid "Added ``quiet`` attribute for the new :option:`-q` flag." msgstr "Agregado el atributo ``quiet`` para el nuevo flag :option:`-q`." -#: ../Doc/library/sys.rst:530 +#: ../Doc/library/sys.rst:576 msgid "The ``hash_randomization`` attribute." msgstr "El atributo ``hash_randomization``." -#: ../Doc/library/sys.rst:533 +#: ../Doc/library/sys.rst:579 msgid "Removed obsolete ``division_warning`` attribute." msgstr "Eliminado el atributo obsoleto ``division_warning``." -#: ../Doc/library/sys.rst:536 +#: ../Doc/library/sys.rst:582 msgid "Added ``isolated`` attribute for :option:`-I` ``isolated`` flag." msgstr "" "Agregado el atributo ``isolated`` para el flag :option:`-I` ``isolated``." -#: ../Doc/library/sys.rst:539 +#: ../Doc/library/sys.rst:585 msgid "" "Added the ``dev_mode`` attribute for the new :ref:`Python Development Mode " "` and the ``utf8_mode`` attribute for the new :option:`-X` " @@ -1089,18 +1004,26 @@ msgstr "" "Python ` y el atributo ``utf8_mode`` para la bandera :option:`-X` " "``utf8``." -#: ../Doc/library/sys.rst:544 +#: ../Doc/library/sys.rst:590 +#, fuzzy +msgid "" +"Added ``warn_default_encoding`` attribute for :option:`-X` " +"``warn_default_encoding`` flag." +msgstr "" +"Agregado el atributo ``isolated`` para el flag :option:`-I` ``isolated``." + +#: ../Doc/library/sys.rst:593 #, fuzzy msgid "Added the ``safe_path`` attribute for :option:`-P` option." msgstr "" "Agregado el atributo ``isolated`` para el flag :option:`-I` ``isolated``." -#: ../Doc/library/sys.rst:547 +#: ../Doc/library/sys.rst:596 #, fuzzy msgid "Added the ``int_max_str_digits`` attribute." msgstr "El atributo ``hash_randomization``." -#: ../Doc/library/sys.rst:553 +#: ../Doc/library/sys.rst:602 msgid "" "A :term:`named tuple` holding information about the float type. It contains " "low level information about the precision and internal representation. The " @@ -1117,123 +1040,114 @@ msgstr "" "IEC* C de 1999 [C99]_, 'Características de los tipos flotantes', para " "obtener más detalles." -#: ../Doc/library/sys.rst:563 +#: ../Doc/library/sys.rst:609 +msgid "Attributes of the :data:`!float_info` :term:`named tuple`" +msgstr "" + +#: ../Doc/library/sys.rst:612 +msgid "attribute" +msgstr "atributo" + +#: ../Doc/library/sys.rst:613 msgid "float.h macro" msgstr "macro float.h" -#: ../Doc/library/sys.rst:563 ../Doc/library/sys.rst:910 +#: ../Doc/library/sys.rst:614 msgid "explanation" msgstr "explicación" -#: ../Doc/library/sys.rst:565 -msgid ":const:`epsilon`" +#: ../Doc/library/sys.rst:617 +#, fuzzy +msgid ":c:macro:`!DBL_EPSILON`" msgstr ":const:`epsilon`" -#: ../Doc/library/sys.rst:565 -msgid "DBL_EPSILON" -msgstr "DBL_EPSILON" - -#: ../Doc/library/sys.rst:565 +#: ../Doc/library/sys.rst:618 +#, fuzzy msgid "" "difference between 1.0 and the least value greater than 1.0 that is " -"representable as a float" +"representable as a float." msgstr "" "diferencia entre 1.0 y el menor valor mayor que 1.0 que es representable " "como flotante" -#: ../Doc/library/sys.rst:568 +#: ../Doc/library/sys.rst:621 msgid "See also :func:`math.ulp`." msgstr "Vea también :func:`math.ulp`." -#: ../Doc/library/sys.rst:570 -msgid ":const:`dig`" -msgstr ":const:`dig`" - -#: ../Doc/library/sys.rst:570 -msgid "DBL_DIG" -msgstr "DBL_DIG" +#: ../Doc/library/sys.rst:624 +msgid ":c:macro:`!DBL_DIG`" +msgstr "" -#: ../Doc/library/sys.rst:570 +#: ../Doc/library/sys.rst:625 +#, fuzzy msgid "" -"maximum number of decimal digits that can be faithfully represented in a " -"float; see below" +"The maximum number of decimal digits that can be faithfully represented in a " +"float; see below." msgstr "" "número máximo de dígitos decimales que se pueden representar fielmente en un " "flotante; véase a continuación" -#: ../Doc/library/sys.rst:573 -msgid ":const:`mant_dig`" +#: ../Doc/library/sys.rst:629 +#, fuzzy +msgid ":c:macro:`!DBL_MANT_DIG`" msgstr ":const:`mant_dig`" -#: ../Doc/library/sys.rst:573 -msgid "DBL_MANT_DIG" -msgstr "DBL_MANT_DIG" - -#: ../Doc/library/sys.rst:573 +#: ../Doc/library/sys.rst:630 +#, fuzzy msgid "" -"float precision: the number of base-``radix`` digits in the significand of a " -"float" +"Float precision: the number of base-``radix`` digits in the significand of a " +"float." msgstr "" "precisión de flotantes: el número de dígitos base-``radix`` en el " "significando de un flotante" -#: ../Doc/library/sys.rst:576 -msgid ":const:`max`" -msgstr ":const:`max`" - -#: ../Doc/library/sys.rst:576 -msgid "DBL_MAX" -msgstr "DBL_MAX" +#: ../Doc/library/sys.rst:634 +msgid ":c:macro:`!DBL_MAX`" +msgstr "" -#: ../Doc/library/sys.rst:576 -msgid "maximum representable positive finite float" +#: ../Doc/library/sys.rst:635 +#, fuzzy +msgid "The maximum representable positive finite float." msgstr "máximo punto flotante positivo representable" -#: ../Doc/library/sys.rst:578 -msgid ":const:`max_exp`" +#: ../Doc/library/sys.rst:638 +#, fuzzy +msgid ":c:macro:`!DBL_MAX_EXP`" msgstr ":const:`max_exp`" -#: ../Doc/library/sys.rst:578 -msgid "DBL_MAX_EXP" -msgstr "DBL_MAX_EXP" - -#: ../Doc/library/sys.rst:578 +#: ../Doc/library/sys.rst:639 +#, fuzzy msgid "" -"maximum integer *e* such that ``radix**(e-1)`` is a representable finite " -"float" +"The maximum integer *e* such that ``radix**(e-1)`` is a representable finite " +"float." msgstr "" "entero máximo *e* tal que ``radix**(e-1)`` es un flotante finito " "representable" -#: ../Doc/library/sys.rst:581 -msgid ":const:`max_10_exp`" +#: ../Doc/library/sys.rst:643 +#, fuzzy +msgid ":c:macro:`!DBL_MAX_10_EXP`" msgstr ":const:`max_10_exp`" -#: ../Doc/library/sys.rst:581 -msgid "DBL_MAX_10_EXP" -msgstr "DBL_MAX_10_EXP" - -#: ../Doc/library/sys.rst:581 +#: ../Doc/library/sys.rst:644 +#, fuzzy msgid "" -"maximum integer *e* such that ``10**e`` is in the range of representable " -"finite floats" +"The maximum integer *e* such that ``10**e`` is in the range of representable " +"finite floats." msgstr "" "entero máximo *e* tal que ``10**e`` está en el rango de flotantes finitos " "representables" -#: ../Doc/library/sys.rst:584 -msgid ":const:`min`" -msgstr ":const:`min`" - -#: ../Doc/library/sys.rst:584 -msgid "DBL_MIN" -msgstr "DBL_MIN" +#: ../Doc/library/sys.rst:648 +msgid ":c:macro:`!DBL_MIN`" +msgstr "" -#: ../Doc/library/sys.rst:584 -msgid "minimum representable positive *normalized* float" +#: ../Doc/library/sys.rst:649 +#, fuzzy +msgid "The minimum representable positive *normalized* float." msgstr "flotante *normalizado* mínimo representable positivo" -#: ../Doc/library/sys.rst:586 +#: ../Doc/library/sys.rst:651 msgid "" "Use :func:`math.ulp(0.0) ` to get the smallest positive " "*denormalized* representable float." @@ -1241,56 +1155,48 @@ msgstr "" "Usa :func:`math.ulp(0.0) ` para obtener el menor flotante positivo " "*denormalizado* representable." -#: ../Doc/library/sys.rst:590 -msgid ":const:`min_exp`" +#: ../Doc/library/sys.rst:655 +#, fuzzy +msgid ":c:macro:`!DBL_MIN_EXP`" msgstr ":const:`min_exp`" -#: ../Doc/library/sys.rst:590 -msgid "DBL_MIN_EXP" -msgstr "DBL_MIN_EXP" - -#: ../Doc/library/sys.rst:590 -msgid "minimum integer *e* such that ``radix**(e-1)`` is a normalized float" +#: ../Doc/library/sys.rst:656 +#, fuzzy +msgid "" +"The minimum integer *e* such that ``radix**(e-1)`` is a normalized float." msgstr "entero mínimo *e* tal que ``radix**(e-1)`` es un flotante normalizado" -#: ../Doc/library/sys.rst:593 -msgid ":const:`min_10_exp`" +#: ../Doc/library/sys.rst:660 +#, fuzzy +msgid ":c:macro:`!DBL_MIN_10_EXP`" msgstr ":const:`min_10_exp`" -#: ../Doc/library/sys.rst:593 -msgid "DBL_MIN_10_EXP" -msgstr "DBL_MIN_10_EXP" - -#: ../Doc/library/sys.rst:593 -msgid "minimum integer *e* such that ``10**e`` is a normalized float" +#: ../Doc/library/sys.rst:661 +#, fuzzy +msgid "The minimum integer *e* such that ``10**e`` is a normalized float." msgstr "entero mínimo *e* tal que ``10**e`` es un valor flotante normalizado" -#: ../Doc/library/sys.rst:596 -msgid ":const:`radix`" +#: ../Doc/library/sys.rst:664 +#, fuzzy +msgid ":c:macro:`!FLT_RADIX`" msgstr ":const:`radix`" -#: ../Doc/library/sys.rst:596 -msgid "FLT_RADIX" -msgstr "FLT_RADIX" - -#: ../Doc/library/sys.rst:596 -msgid "radix of exponent representation" +#: ../Doc/library/sys.rst:665 +#, fuzzy +msgid "The radix of exponent representation." msgstr "base de representación de exponente" -#: ../Doc/library/sys.rst:598 -msgid ":const:`rounds`" +#: ../Doc/library/sys.rst:668 +#, fuzzy +msgid ":c:macro:`!FLT_ROUNDS`" msgstr ":const:`rounds`" -#: ../Doc/library/sys.rst:598 -msgid "FLT_ROUNDS" -msgstr "FLT_ROUNDS" - -#: ../Doc/library/sys.rst:598 +#: ../Doc/library/sys.rst:669 +#, fuzzy msgid "" -"integer constant representing the rounding mode used for arithmetic " -"operations. This reflects the value of the system FLT_ROUNDS macro at " -"interpreter startup time. See section 5.2.4.2.2 of the C99 standard for an " -"explanation of the possible values and their meanings." +"An integer representing the rounding mode for floating-point arithmetic. " +"This reflects the value of the system :c:macro:`!FLT_ROUNDS` macro at " +"interpreter startup time:" msgstr "" "constante entera que representa el modo de redondeo utilizado para " "operaciones aritméticas. Esto refleja el valor de la macro FLT_ROUNDS del " @@ -1298,10 +1204,37 @@ msgstr "" "5.2.4.2.2 del estándar C99 para obtener una explicación de los posibles " "valores y sus significados." -#: ../Doc/library/sys.rst:606 +#: ../Doc/library/sys.rst:673 +msgid "``-1``: indeterminable" +msgstr "" + +#: ../Doc/library/sys.rst:674 +msgid "``0``: toward zero" +msgstr "" + +#: ../Doc/library/sys.rst:675 +msgid "``1``: to nearest" +msgstr "" + +#: ../Doc/library/sys.rst:676 +msgid "``2``: toward positive infinity" +msgstr "" + +#: ../Doc/library/sys.rst:677 +msgid "``3``: toward negative infinity" +msgstr "" + +#: ../Doc/library/sys.rst:679 +msgid "" +"All other values for :c:macro:`!FLT_ROUNDS` characterize implementation-" +"defined rounding behavior." +msgstr "" + +#: ../Doc/library/sys.rst:682 +#, fuzzy msgid "" "The attribute :attr:`sys.float_info.dig` needs further explanation. If " -"``s`` is any string representing a decimal number with at most :attr:`sys." +"``s`` is any string representing a decimal number with at most :attr:`!sys." "float_info.dig` significant digits, then converting ``s`` to a float and " "back again will recover a string representing the same decimal value::" msgstr "" @@ -1311,7 +1244,7 @@ msgstr "" "flotante y viceversa recuperará una cadena que representa el mismo decimal " "valor::" -#: ../Doc/library/sys.rst:619 +#: ../Doc/library/sys.rst:695 msgid "" "But for strings with more than :attr:`sys.float_info.dig` significant " "digits, this isn't always true::" @@ -1319,7 +1252,7 @@ msgstr "" "Pero para cadenas con más de :attr:`sys.float_info.dig` dígitos " "significativos, esto no siempre es cierto:" -#: ../Doc/library/sys.rst:628 +#: ../Doc/library/sys.rst:704 msgid "" "A string indicating how the :func:`repr` function behaves for floats. If " "the string has value ``'short'`` then for a finite float ``x``, ``repr(x)`` " @@ -1336,7 +1269,7 @@ msgstr "" "``float_repr_style`` tiene el valor ``'legacy'`` y ``repr(x)`` se comporta " "de la misma manera que en las versiones de Python anteriores a la 3.1." -#: ../Doc/library/sys.rst:641 +#: ../Doc/library/sys.rst:717 msgid "" "Return the number of memory blocks currently allocated by the interpreter, " "regardless of their size. This function is mainly useful for tracking and " @@ -1352,7 +1285,7 @@ msgstr "" "puede que tenga que llamar a :func:`_clear_type_cache()` y :func:`gc." "collect()` para obtener resultados más predecibles." -#: ../Doc/library/sys.rst:648 +#: ../Doc/library/sys.rst:724 msgid "" "If a Python build or implementation cannot reasonably compute this " "information, :func:`getallocatedblocks()` is allowed to return 0 instead." @@ -1361,17 +1294,21 @@ msgstr "" "razonablemente esta información, :func:`getallocatedblocks()` puede retornar " "0 en su lugar." -#: ../Doc/library/sys.rst:656 +#: ../Doc/library/sys.rst:732 +msgid "Return the number of unicode objects that have been interned." +msgstr "" + +#: ../Doc/library/sys.rst:739 msgid "Return the build time API version of Android as an integer." msgstr "" "Retorna la versión de la API de tiempo de compilación de Android como un " "número entero." -#: ../Doc/library/sys.rst:659 +#: ../Doc/library/sys.rst:741 msgid ":ref:`Availability `: Android." msgstr ":ref:`Disponibilidad `: Android." -#: ../Doc/library/sys.rst:665 +#: ../Doc/library/sys.rst:748 msgid "" "Return the name of the current default string encoding used by the Unicode " "implementation." @@ -1379,28 +1316,30 @@ msgstr "" "Retorna el nombre de la codificación de cadena predeterminada actual " "utilizada por la implementación de Unicode." -#: ../Doc/library/sys.rst:671 +#: ../Doc/library/sys.rst:754 +#, fuzzy msgid "" "Return the current value of the flags that are used for :c:func:`dlopen` " "calls. Symbolic names for the flag values can be found in the :mod:`os` " -"module (``RTLD_xxx`` constants, e.g. :data:`os.RTLD_LAZY`)." +"module (:samp:`RTLD_{xxx}` constants, e.g. :const:`os.RTLD_LAZY`)." msgstr "" "Retorna el valor actual de las flags que se utilizan para llamadas :c:func:" "`dlopen`. Los nombres simbólicos para los valores de las flags se pueden " "encontrar en el módulo :mod:`os` (constantes ``RTLD_xxx``, por ejemplo :data:" "`os.RTLD_LAZY`)." -#: ../Doc/library/sys.rst:676 ../Doc/library/sys.rst:1332 +#: ../Doc/library/sys.rst:759 ../Doc/library/sys.rst:1447 msgid ":ref:`Availability `: Unix." msgstr ":ref:`Disponibilidad `: Unix." -#: ../Doc/library/sys.rst:681 +#: ../Doc/library/sys.rst:764 +#, fuzzy msgid "" "Get the :term:`filesystem encoding `: " "the encoding used with the :term:`filesystem error handler ` to convert between Unicode filenames and bytes " "filenames. The filesystem error handler is returned from :func:" -"`getfilesystemencoding`." +"`getfilesystemencodeerrors`." msgstr "" "Obtener la :term:`codificación de sistema de archivos `: La codificación usada con el :term:`gestor de errores " @@ -1409,7 +1348,7 @@ msgstr "" "gestor de errores del sistema de archivos es retornado desde :func:" "`getfilesystemencoding`." -#: ../Doc/library/sys.rst:687 +#: ../Doc/library/sys.rst:770 msgid "" "For best compatibility, str should be used for filenames in all cases, " "although representing filenames as bytes is also supported. Functions " @@ -1422,7 +1361,7 @@ msgstr "" "soportar tanto str como bytes e internamente convertir el valor a " "representación preferida por el sistema." -#: ../Doc/library/sys.rst:692 ../Doc/library/sys.rst:720 +#: ../Doc/library/sys.rst:775 ../Doc/library/sys.rst:803 msgid "" ":func:`os.fsencode` and :func:`os.fsdecode` should be used to ensure that " "the correct encoding and errors mode are used." @@ -1430,7 +1369,7 @@ msgstr "" ":func:`os.fsencode` y :func:`os.fsdecode` deben usarse para garantizar que " "se utilizan la codificación correcta y el modo de errores." -#: ../Doc/library/sys.rst:695 ../Doc/library/sys.rst:723 +#: ../Doc/library/sys.rst:778 ../Doc/library/sys.rst:806 msgid "" "The :term:`filesystem encoding and error handler` are configured at Python " "startup by the :c:func:`PyConfig_Read` function: see :c:member:`~PyConfig." @@ -1443,12 +1382,12 @@ msgstr "" "`~PyConfig.filesystem_encoding` y :c:member:`~PyConfig.filesystem_errors` " "que son miembros de :c:type:`PyConfig`." -#: ../Doc/library/sys.rst:700 +#: ../Doc/library/sys.rst:783 msgid ":func:`getfilesystemencoding` result cannot be ``None`` anymore." msgstr "" "el resultado de :func:`getfilesystemencoding` ya no puede ser ``None``." -#: ../Doc/library/sys.rst:703 +#: ../Doc/library/sys.rst:786 msgid "" "Windows is no longer guaranteed to return ``'mbcs'``. See :pep:`529` and :" "func:`_enablelegacywindowsfsencoding` for more information." @@ -1456,14 +1395,14 @@ msgstr "" "Ya no se garantiza que Windows retorne ``'mbcs'``. Consulte :pep:`529` y :" "func:`_enablelegacywindowsfsencoding` para obtener más información." -#: ../Doc/library/sys.rst:707 +#: ../Doc/library/sys.rst:790 msgid "" "Return ``'utf-8'`` if the :ref:`Python UTF-8 Mode ` is enabled." msgstr "" "Retorna ``'utf-8'`` si :ref:`Modo UTF-8 de Python ` esta " "habilitado." -#: ../Doc/library/sys.rst:714 +#: ../Doc/library/sys.rst:797 msgid "" "Get the :term:`filesystem error handler `: the error handler used with the :term:`filesystem encoding " @@ -1478,7 +1417,7 @@ msgstr "" "gestor de errores del sistema de archivos es retornado desde :func:" "`getfilesystemencoding`." -#: ../Doc/library/sys.rst:732 +#: ../Doc/library/sys.rst:815 #, fuzzy msgid "" "Returns the current value for the :ref:`integer string conversion length " @@ -1488,7 +1427,7 @@ msgstr "" "cadena entera `. Ver también :func:" "`set_int_max_str_digits`." -#: ../Doc/library/sys.rst:739 +#: ../Doc/library/sys.rst:822 msgid "" "Return the reference count of the *object*. The count returned is generally " "one higher than you might expect, because it includes the (temporary) " @@ -1498,7 +1437,22 @@ msgstr "" "generalmente uno más alto de lo que cabría esperar, porque incluye la " "referencia (temporal) como argumento para :func:`getrefcount`." -#: ../Doc/library/sys.rst:746 +#: ../Doc/library/sys.rst:826 +msgid "" +"Note that the returned value may not actually reflect how many references to " +"the object are actually held. For example, some objects are \"immortal\" " +"and have a very high refcount that does not reflect the actual number of " +"references. Consequently, do not rely on the returned value to be accurate, " +"other than a value of 0 or 1." +msgstr "" + +#: ../Doc/library/sys.rst:832 +msgid "" +"Immortal objects have very large refcounts that do not match the actual " +"number of references to the object." +msgstr "" + +#: ../Doc/library/sys.rst:838 msgid "" "Return the current value of the recursion limit, the maximum depth of the " "Python interpreter stack. This limit prevents infinite recursion from " @@ -1510,7 +1464,7 @@ msgstr "" "infinita cause un desbordamiento de la pila C y bloquee Python. Se puede " "configurar mediante :func:`setrecursionlimit`." -#: ../Doc/library/sys.rst:754 +#: ../Doc/library/sys.rst:846 msgid "" "Return the size of an object in bytes. The object can be any type of object. " "All built-in objects will return correct results, but this does not have to " @@ -1521,7 +1475,7 @@ msgstr "" "pero esto no tiene por qué ser cierto para las extensiones de terceros, ya " "que es una implementación específica." -#: ../Doc/library/sys.rst:759 +#: ../Doc/library/sys.rst:851 msgid "" "Only the memory consumption directly attributed to the object is accounted " "for, not the memory consumption of objects it refers to." @@ -1529,7 +1483,7 @@ msgstr "" "Solo se tiene en cuenta el consumo de memoria atribuido directamente al " "objeto, no el consumo de memoria de los objetos a los que se refiere." -#: ../Doc/library/sys.rst:762 +#: ../Doc/library/sys.rst:854 msgid "" "If given, *default* will be returned if the object does not provide means to " "retrieve the size. Otherwise a :exc:`TypeError` will be raised." @@ -1538,7 +1492,7 @@ msgstr "" "los medios para recuperar el tamaño. De lo contrario, se lanzará un :exc:" "`TypeError`." -#: ../Doc/library/sys.rst:765 +#: ../Doc/library/sys.rst:857 msgid "" ":func:`getsizeof` calls the object's ``__sizeof__`` method and adds an " "additional garbage collector overhead if the object is managed by the " @@ -1548,17 +1502,18 @@ msgstr "" "sobrecarga adicional del recolector de basura si el objeto es administrado " "por el recolector de basura." -#: ../Doc/library/sys.rst:769 +#: ../Doc/library/sys.rst:861 +#, fuzzy msgid "" -"See `recursive sizeof recipe `_ " -"for an example of using :func:`getsizeof` recursively to find the size of " -"containers and all their contents." +"See `recursive sizeof recipe `_ for an example of using :func:`getsizeof` recursively to find the size " +"of containers and all their contents." msgstr "" "Consulte `receta de sizeof recursivo `_ para ver un ejemplo del uso de :func:`getsizeof` de forma " "recursiva para encontrar el tamaño de los contenedores y todo su contenido." -#: ../Doc/library/sys.rst:775 +#: ../Doc/library/sys.rst:867 msgid "" "Return the interpreter's \"thread switch interval\"; see :func:" "`setswitchinterval`." @@ -1566,7 +1521,7 @@ msgstr "" "Retorna el \"intervalo de cambio de hilo\" del intérprete; ver :func:" "`setswitchinterval`." -#: ../Doc/library/sys.rst:783 +#: ../Doc/library/sys.rst:875 msgid "" "Return a frame object from the call stack. If optional integer *depth* is " "given, return the frame object that many calls below the top of the stack. " @@ -1580,7 +1535,7 @@ msgstr "" "de llamadas, se lanza :exc:`ValueError`. El valor predeterminado de *depth* " "es cero, lo que retorna el marco en la parte superior de la pila de llamadas." -#: ../Doc/library/sys.rst:788 +#: ../Doc/library/sys.rst:880 #, fuzzy msgid "" "Raises an :ref:`auditing event ` ``sys._getframe`` with argument " @@ -1588,7 +1543,7 @@ msgid "" msgstr "" "Lanza un :ref:`auditing event ` ``sys._getframe`` sin argumentos." -#: ../Doc/library/sys.rst:792 +#: ../Doc/library/sys.rst:884 ../Doc/library/sys.rst:900 msgid "" "This function should be used for internal and specialized purposes only. It " "is not guaranteed to exist in all implementations of Python." @@ -1597,18 +1552,41 @@ msgstr "" "especializados. No se garantiza que exista en todas las implementaciones de " "Python." -#: ../Doc/library/sys.rst:802 +#: ../Doc/library/sys.rst:890 +#, fuzzy +msgid "" +"Return the name of a module from the call stack. If optional integer " +"*depth* is given, return the module that many calls below the top of the " +"stack. If that is deeper than the call stack, or if the module is " +"unidentifiable, ``None`` is returned. The default for *depth* is zero, " +"returning the module at the top of the call stack." +msgstr "" +"Retorna un objeto de marco de la pila de llamadas. Si se proporciona un " +"entero opcional *depth*, retorna el objeto de marco que muchas llamadas " +"debajo de la parte superior de la pila. Si eso es más profundo que la pila " +"de llamadas, se lanza :exc:`ValueError`. El valor predeterminado de *depth* " +"es cero, lo que retorna el marco en la parte superior de la pila de llamadas." + +#: ../Doc/library/sys.rst:896 +#, fuzzy +msgid "" +"Raises an :ref:`auditing event ` ``sys._getframemodulename`` with " +"argument ``depth``." +msgstr "" +"Lanza un :ref:`auditing event ` ``sys._getframe`` sin argumentos." + +#: ../Doc/library/sys.rst:910 msgid "Get the profiler function as set by :func:`setprofile`." msgstr "" "Obtiene la función de generador de perfiles establecida por :func:" "`setprofile`." -#: ../Doc/library/sys.rst:811 +#: ../Doc/library/sys.rst:919 msgid "Get the trace function as set by :func:`settrace`." msgstr "" "Obtiene la función de seguimiento (*trace*) establecida por :func:`settrace`." -#: ../Doc/library/sys.rst:815 +#: ../Doc/library/sys.rst:923 msgid "" "The :func:`gettrace` function is intended only for implementing debuggers, " "profilers, coverage tools and the like. Its behavior is part of the " @@ -1621,7 +1599,7 @@ msgstr "" "del lenguaje y, por lo tanto, es posible que no esté disponible en todas las " "implementaciones de Python." -#: ../Doc/library/sys.rst:823 +#: ../Doc/library/sys.rst:931 msgid "" "Return a named tuple describing the Windows version currently running. The " "named elements are *major*, *minor*, *build*, *platform*, *service_pack*, " @@ -1643,57 +1621,62 @@ msgstr "" "compatibilidad con versiones anteriores, solo los primeros 5 elementos se " "pueden recuperar mediante la indexación." -#: ../Doc/library/sys.rst:834 -msgid "*platform* will be :const:`2 (VER_PLATFORM_WIN32_NT)`." +#: ../Doc/library/sys.rst:942 +#, fuzzy +msgid "*platform* will be ``2`` (VER_PLATFORM_WIN32_NT)." msgstr "*platform* será :const:`2 (VER_PLATFORM_WIN32_NT)`." -#: ../Doc/library/sys.rst:836 +#: ../Doc/library/sys.rst:944 msgid "*product_type* may be one of the following values:" msgstr "*product_type* puede ser uno de los siguientes valores:" -#: ../Doc/library/sys.rst:839 +#: ../Doc/library/sys.rst:947 msgid "Constant" msgstr "Constante" -#: ../Doc/library/sys.rst:839 +#: ../Doc/library/sys.rst:947 msgid "Meaning" msgstr "Significado" -#: ../Doc/library/sys.rst:841 -msgid ":const:`1 (VER_NT_WORKSTATION)`" +#: ../Doc/library/sys.rst:949 +#, fuzzy +msgid "``1`` (VER_NT_WORKSTATION)" msgstr ":const:`1 (VER_NT_WORKSTATION)`" -#: ../Doc/library/sys.rst:841 +#: ../Doc/library/sys.rst:949 msgid "The system is a workstation." msgstr "El sistema es una estación de trabajo." -#: ../Doc/library/sys.rst:843 -msgid ":const:`2 (VER_NT_DOMAIN_CONTROLLER)`" +#: ../Doc/library/sys.rst:951 +#, fuzzy +msgid "``2`` (VER_NT_DOMAIN_CONTROLLER)" msgstr ":const:`2 (VER_NT_DOMAIN_CONTROLLER)`" -#: ../Doc/library/sys.rst:843 +#: ../Doc/library/sys.rst:951 msgid "The system is a domain controller." msgstr "El sistema es un controlador de dominio." -#: ../Doc/library/sys.rst:846 -msgid ":const:`3 (VER_NT_SERVER)`" +#: ../Doc/library/sys.rst:954 +#, fuzzy +msgid "``3`` (VER_NT_SERVER)" msgstr ":const:`3 (VER_NT_SERVER)`" -#: ../Doc/library/sys.rst:846 +#: ../Doc/library/sys.rst:954 msgid "The system is a server, but not a domain controller." msgstr "El sistema es un servidor, pero no un controlador de dominio." -#: ../Doc/library/sys.rst:850 +#: ../Doc/library/sys.rst:958 +#, fuzzy msgid "" -"This function wraps the Win32 :c:func:`GetVersionEx` function; see the " -"Microsoft documentation on :c:func:`OSVERSIONINFOEX` for more information " +"This function wraps the Win32 :c:func:`!GetVersionEx` function; see the " +"Microsoft documentation on :c:func:`!OSVERSIONINFOEX` for more information " "about these fields." msgstr "" "Esta función envuelve la función Win32 :c:func:`GetVersionEx`; consulte la " "documentación de Microsoft en :c:func:`OSVERSIONINFOEX` para obtener más " "información sobre estos campos." -#: ../Doc/library/sys.rst:854 +#: ../Doc/library/sys.rst:962 msgid "" "*platform_version* returns the major version, minor version and build number " "of the current operating system, rather than the version that is being " @@ -1705,7 +1688,7 @@ msgstr "" "que se está emulando para el proceso. Está diseñado para su uso en el " "registro en lugar de para la detección de características." -#: ../Doc/library/sys.rst:860 +#: ../Doc/library/sys.rst:968 msgid "" "*platform_version* derives the version from kernel32.dll which can be of a " "different version than the OS version. Please use :mod:`platform` module for " @@ -1715,7 +1698,7 @@ msgstr "" "versión diferente a la versión de SO. Por favor usar el módulo :mod:" "`platform` para obtener una versión de SO precisa." -#: ../Doc/library/sys.rst:866 +#: ../Doc/library/sys.rst:974 msgid "" "Changed to a named tuple and added *service_pack_minor*, " "*service_pack_major*, *suite_mask*, and *product_type*." @@ -1723,11 +1706,11 @@ msgstr "" "Cambiada a una tupla con nombre y agregado *service_pack_minor*, " "*service_pack_major*, *suite_mask*, y *product_type*." -#: ../Doc/library/sys.rst:870 +#: ../Doc/library/sys.rst:978 msgid "Added *platform_version*" msgstr "Agregado *platform_version*" -#: ../Doc/library/sys.rst:876 +#: ../Doc/library/sys.rst:984 #, fuzzy msgid "" "Returns an *asyncgen_hooks* object, which is similar to a :class:" @@ -1744,11 +1727,11 @@ msgstr "" "programar la finalización de un generador asíncrono mediante un bucle de " "eventos." -#: ../Doc/library/sys.rst:883 +#: ../Doc/library/sys.rst:991 msgid "See :pep:`525` for more details." msgstr "Ver :pep:`525` para más detalles." -#: ../Doc/library/sys.rst:887 ../Doc/library/sys.rst:1534 +#: ../Doc/library/sys.rst:995 ../Doc/library/sys.rst:1649 msgid "" "This function has been added on a provisional basis (see :pep:`411` for " "details.)" @@ -1756,7 +1739,7 @@ msgstr "" "Esta función se ha añadido de forma provisional (consulte :pep:`411` para " "obtener más detalles)." -#: ../Doc/library/sys.rst:893 +#: ../Doc/library/sys.rst:1001 msgid "" "Get the current coroutine origin tracking depth, as set by :func:" "`set_coroutine_origin_tracking_depth`." @@ -1764,7 +1747,7 @@ msgstr "" "Obtiene la profundidad de seguimiento del origen de la corrutina actual, " "según lo establecido por :func:`set_coroutine_origin_tracking_depth`." -#: ../Doc/library/sys.rst:899 ../Doc/library/sys.rst:1555 +#: ../Doc/library/sys.rst:1007 ../Doc/library/sys.rst:1670 msgid "" "This function has been added on a provisional basis (see :pep:`411` for " "details.) Use it only for debugging purposes." @@ -1772,7 +1755,7 @@ msgstr "" "Esta función se ha añadido de forma provisional (consulte :pep:`411` para " "obtener más detalles). Úsela sólo para fines de depuración." -#: ../Doc/library/sys.rst:905 +#: ../Doc/library/sys.rst:1013 msgid "" "A :term:`named tuple` giving parameters of the numeric hash implementation. " "For more details about hashing of numeric types, see :ref:`numeric-hash`." @@ -1781,75 +1764,51 @@ msgstr "" "numérico. Para obtener más detalles sobre el hash de tipos numéricos, " "consulte :ref:`numeric-hash`." -#: ../Doc/library/sys.rst:912 -msgid ":const:`width`" -msgstr ":const:`width`" - -#: ../Doc/library/sys.rst:912 -msgid "width in bits used for hash values" +#: ../Doc/library/sys.rst:1019 +#, fuzzy +msgid "The width in bits used for hash values" msgstr "ancho en bits usado para valores hash" -#: ../Doc/library/sys.rst:914 -msgid ":const:`modulus`" -msgstr ":const:`modulus`" - -#: ../Doc/library/sys.rst:914 -msgid "prime modulus P used for numeric hash scheme" +#: ../Doc/library/sys.rst:1023 +#, fuzzy +msgid "The prime modulus P used for numeric hash scheme" msgstr "primer módulo P utilizado para el esquema de hash numérico" -#: ../Doc/library/sys.rst:916 -msgid ":const:`inf`" -msgstr ":const:`inf`" - -#: ../Doc/library/sys.rst:916 -msgid "hash value returned for a positive infinity" +#: ../Doc/library/sys.rst:1027 +#, fuzzy +msgid "The hash value returned for a positive infinity" msgstr "valor hash retornado para un infinito positivo" -#: ../Doc/library/sys.rst:918 -msgid ":const:`nan`" -msgstr ":const:`nan`" - -#: ../Doc/library/sys.rst:918 -msgid "(this attribute is no longer used)" +#: ../Doc/library/sys.rst:1031 +#, fuzzy +msgid "(This attribute is no longer used)" msgstr "(este atributo ya no se encuentra en uso)" -#: ../Doc/library/sys.rst:920 -msgid ":const:`imag`" -msgstr ":const:`imag`" - -#: ../Doc/library/sys.rst:920 -msgid "multiplier used for the imaginary part of a complex number" +#: ../Doc/library/sys.rst:1035 +#, fuzzy +msgid "The multiplier used for the imaginary part of a complex number" msgstr "multiplicador utilizado para la parte imaginaria de un número complejo" -#: ../Doc/library/sys.rst:923 -msgid ":const:`algorithm`" -msgstr ":const:`algorithm`" - -#: ../Doc/library/sys.rst:923 -msgid "name of the algorithm for hashing of str, bytes, and memoryview" +#: ../Doc/library/sys.rst:1039 +#, fuzzy +msgid "The name of the algorithm for hashing of str, bytes, and memoryview" msgstr "nombre del algoritmo para el hash de str, bytes y memoryview" -#: ../Doc/library/sys.rst:926 -msgid ":const:`hash_bits`" -msgstr ":const:`hash_bits`" - -#: ../Doc/library/sys.rst:926 -msgid "internal output size of the hash algorithm" +#: ../Doc/library/sys.rst:1043 +#, fuzzy +msgid "The internal output size of the hash algorithm" msgstr "tamaño de salida interno del algoritmo hash" -#: ../Doc/library/sys.rst:928 -msgid ":const:`seed_bits`" -msgstr ":const:`seed_bits`" - -#: ../Doc/library/sys.rst:928 -msgid "size of the seed key of the hash algorithm" +#: ../Doc/library/sys.rst:1047 +#, fuzzy +msgid "The size of the seed key of the hash algorithm" msgstr "tamaño de la clave semilla del algoritmo hash" -#: ../Doc/library/sys.rst:934 +#: ../Doc/library/sys.rst:1051 msgid "Added *algorithm*, *hash_bits* and *seed_bits*" msgstr "Agregado *algoritmo*, *hash_bits* y *seed_bits*" -#: ../Doc/library/sys.rst:940 +#: ../Doc/library/sys.rst:1057 msgid "" "The version number encoded as a single integer. This is guaranteed to " "increase with each version, including proper support for non-production " @@ -1861,7 +1820,7 @@ msgstr "" "no son de producción. Por ejemplo, para probar que el intérprete de Python " "es al menos la versión 1.5.2, use::" -#: ../Doc/library/sys.rst:951 +#: ../Doc/library/sys.rst:1068 msgid "" "This is called ``hexversion`` since it only really looks meaningful when " "viewed as the result of passing it to the built-in :func:`hex` function. " @@ -1873,12 +1832,12 @@ msgstr "" "`hex`. El :term:`named tuple` :data:`sys.version_info` puede usarse para una " "codificación más amigable para los humanos de la misma información." -#: ../Doc/library/sys.rst:956 +#: ../Doc/library/sys.rst:1073 msgid "More details of ``hexversion`` can be found at :ref:`apiabiversion`." msgstr "" "Se pueden encontrar más detalles de ``hexversion`` en :ref:`apiabiversion`." -#: ../Doc/library/sys.rst:961 +#: ../Doc/library/sys.rst:1078 msgid "" "An object containing information about the implementation of the currently " "running Python interpreter. The following attributes are required to exist " @@ -1888,7 +1847,7 @@ msgstr "" "Python en ejecución. Los siguientes atributos deben existir en todas las " "implementaciones de Python." -#: ../Doc/library/sys.rst:965 +#: ../Doc/library/sys.rst:1082 msgid "" "*name* is the implementation's identifier, e.g. ``'cpython'``. The actual " "string is defined by the Python implementation, but it is guaranteed to be " @@ -1898,7 +1857,7 @@ msgstr "" "La cadena de caracteres real está definida por la implementación de Python, " "pero se garantiza que estará en minúsculas." -#: ../Doc/library/sys.rst:969 +#: ../Doc/library/sys.rst:1086 msgid "" "*version* is a named tuple, in the same format as :data:`sys.version_info`. " "It represents the version of the Python *implementation*. This has a " @@ -1919,7 +1878,7 @@ msgstr "" "'final', 0)``. Para CPython tienen el mismo valor, ya que es la " "implementación de referencia." -#: ../Doc/library/sys.rst:979 +#: ../Doc/library/sys.rst:1096 msgid "" "*hexversion* is the implementation version in hexadecimal format, like :data:" "`sys.hexversion`." @@ -1927,7 +1886,7 @@ msgstr "" "*hexversion* es la versión de implementación en formato hexadecimal, como :" "data:`sys.hexversion`." -#: ../Doc/library/sys.rst:982 +#: ../Doc/library/sys.rst:1099 msgid "" "*cache_tag* is the tag used by the import machinery in the filenames of " "cached modules. By convention, it would be a composite of the " @@ -1942,7 +1901,7 @@ msgstr "" "otro valor si corresponde. Si ``cache_tag`` está configurado como ``None``, " "indica que el almacenamiento en caché del módulo debe estar deshabilitado." -#: ../Doc/library/sys.rst:989 +#: ../Doc/library/sys.rst:1106 msgid "" ":data:`sys.implementation` may contain additional attributes specific to the " "Python implementation. These non-standard attributes must start with an " @@ -1959,7 +1918,7 @@ msgstr "" "cambiar entre las versiones del lenguaje Python). Consulte :pep:`421` para " "obtener más información." -#: ../Doc/library/sys.rst:1000 +#: ../Doc/library/sys.rst:1117 msgid "" "The addition of new required attributes must go through the normal PEP " "process. See :pep:`421` for more information." @@ -1967,7 +1926,7 @@ msgstr "" "La adición de nuevos atributos obligatorios debe pasar por el proceso normal " "de PEP. Consulte :pep:`421` para obtener más información." -#: ../Doc/library/sys.rst:1005 +#: ../Doc/library/sys.rst:1122 msgid "" "A :term:`named tuple` that holds information about Python's internal " "representation of integers. The attributes are read only." @@ -1975,58 +1934,47 @@ msgstr "" "Un :term:`named tuple` que contiene información sobre la representación " "interna de Python de los enteros. Los atributos son de solo lectura." -#: ../Doc/library/sys.rst:1013 -msgid ":const:`bits_per_digit`" -msgstr ":const:`bits_per_digit`" - -#: ../Doc/library/sys.rst:1013 +#: ../Doc/library/sys.rst:1127 +#, fuzzy msgid "" -"number of bits held in each digit. Python integers are stored internally in " -"base ``2**int_info.bits_per_digit``" +"The number of bits held in each digit. Python integers are stored internally " +"in base ``2**int_info.bits_per_digit``." msgstr "" "número de bits retenidos en cada dígito. Los enteros de Python se almacenan " "internamente en la base ``2**int_info.bits_per_digit``" -#: ../Doc/library/sys.rst:1017 -msgid ":const:`sizeof_digit`" -msgstr ":const:`sizeof_digit`" - -#: ../Doc/library/sys.rst:1017 -msgid "size in bytes of the C type used to represent a digit" +#: ../Doc/library/sys.rst:1132 +#, fuzzy +msgid "The size in bytes of the C type used to represent a digit." msgstr "tamaño en bytes del tipo C utilizado para representar un dígito" -#: ../Doc/library/sys.rst:1020 +#: ../Doc/library/sys.rst:1136 #, fuzzy -msgid ":const:`default_max_str_digits`" -msgstr ":const:`mant_dig`" - -#: ../Doc/library/sys.rst:1020 msgid "" -"default value for :func:`sys.get_int_max_str_digits` when it is not " +"The default value for :func:`sys.get_int_max_str_digits` when it is not " "otherwise explicitly configured." msgstr "" "valor predeterminado para :func:`sys.get_int_max_str_digits` cuando no está " "configurado explícitamente de otra manera." -#: ../Doc/library/sys.rst:1024 +#: ../Doc/library/sys.rst:1141 #, fuzzy -msgid ":const:`str_digits_check_threshold`" -msgstr ":const:`str_digits_check_threshold`" - -#: ../Doc/library/sys.rst:1024 msgid "" -"minimum non-zero value for :func:`sys.set_int_max_str_digits`, :envvar:" +"The minimum non-zero value for :func:`sys.set_int_max_str_digits`, :envvar:" "`PYTHONINTMAXSTRDIGITS`, or :option:`-X int_max_str_digits <-X>`." msgstr "" "valor mínimo distinto de cero para :func:`sys.set_int_max_str_digits`, :" "envvar:`PYTHONINTMAXSTRDIGITS` o :option:`-X int_max_str_digits <-X>`." -#: ../Doc/library/sys.rst:1032 -msgid "Added ``default_max_str_digits`` and ``str_digits_check_threshold``." +#: ../Doc/library/sys.rst:1148 +#, fuzzy +msgid "" +"Added :attr:`~int_info.default_max_str_digits` and :attr:`~int_info." +"str_digits_check_threshold`." msgstr "" "Se agregaron ``default_max_str_digits`` y ``str_digits_check_threshold``." -#: ../Doc/library/sys.rst:1038 +#: ../Doc/library/sys.rst:1154 msgid "" "When this attribute exists, its value is automatically called (with no " "arguments) when the interpreter is launched in :ref:`interactive mode `." -#: ../Doc/library/sys.rst:1044 +#: ../Doc/library/sys.rst:1160 msgid "" "Raises an :ref:`auditing event ` ``cpython.run_interactivehook`` " "with argument ``hook``." @@ -2048,7 +1996,7 @@ msgstr "" "Lanza un :ref:`auditing event ` ``cpython.run_interactivehook`` " "con el argumento ``hook``." -#: ../Doc/library/sys.rst:1046 +#: ../Doc/library/sys.rst:1162 msgid "" "Raises an :ref:`auditing event ` ``cpython.run_interactivehook`` " "with the hook object as the argument when the hook is called on startup." @@ -2057,7 +2005,7 @@ msgstr "" "con el objeto gancho (*hook*) como argumento cuando se llama al gancho en el " "inicio." -#: ../Doc/library/sys.rst:1055 +#: ../Doc/library/sys.rst:1171 msgid "" "Enter *string* in the table of \"interned\" strings and return the interned " "string -- which is *string* itself or a copy. Interning strings is useful to " @@ -2079,7 +2027,7 @@ msgstr "" "diccionarios utilizados para contener los atributos de módulo, clase o " "instancia tienen claves internas." -#: ../Doc/library/sys.rst:1063 +#: ../Doc/library/sys.rst:1179 msgid "" "Interned strings are not immortal; you must keep a reference to the return " "value of :func:`intern` around to benefit from it." @@ -2087,7 +2035,7 @@ msgstr "" "Las cadenas de caracteres internas no son inmortales; debe mantener una " "referencia al valor de retorno de :func:`intern` para beneficiarse de él." -#: ../Doc/library/sys.rst:1069 +#: ../Doc/library/sys.rst:1185 msgid "" "Return :const:`True` if the Python interpreter is :term:`shutting down " "`, :const:`False` otherwise." @@ -2095,15 +2043,16 @@ msgstr "" "Retorna :const:`True` si el intérprete de Python es :term:`shutting down " "`, :const:`False` en caso contrario." -#: ../Doc/library/sys.rst:1079 +#: ../Doc/library/sys.rst:1192 +#, fuzzy msgid "" -"These three variables are not always defined; they are set when an exception " -"is not handled and the interpreter prints an error message and a stack " -"traceback. Their intended use is to allow an interactive user to import a " -"debugger module and engage in post-mortem debugging without having to re-" -"execute the command that caused the error. (Typical use is ``import pdb; " -"pdb.pm()`` to enter the post-mortem debugger; see :mod:`pdb` module for more " -"information.)" +"This variable is not always defined; it is set to the exception instance " +"when an exception is not handled and the interpreter prints an error message " +"and a stack traceback. Its intended use is to allow an interactive user to " +"import a debugger module and engage in post-mortem debugging without having " +"to re-execute the command that caused the error. (Typical use is ``import " +"pdb; pdb.pm()`` to enter the post-mortem debugger; see :mod:`pdb` module for " +"more information.)" msgstr "" "Estas tres variables no siempre están definidas; se establecen cuando no se " "maneja una excepción y el intérprete imprime un mensaje de error y un " @@ -2113,15 +2062,14 @@ msgstr "" "típico es ``import pdb; pdb.pm()`` para ingresar al depurador post-mortem; " "consulte módulo :mod:`pdb` para obtener más información)." -#: ../Doc/library/sys.rst:1087 +#: ../Doc/library/sys.rst:1206 msgid "" -"The meaning of the variables is the same as that of the return values from :" -"func:`exc_info` above." +"These three variables are deprecated; use :data:`sys.last_exc` instead. They " +"hold the legacy representation of ``sys.last_exc``, as returned from :func:" +"`exc_info` above." msgstr "" -"El significado de las variables es el mismo que el de los valores retornados " -"de :func:`exc_info` arriba." -#: ../Doc/library/sys.rst:1093 +#: ../Doc/library/sys.rst:1212 msgid "" "An integer giving the maximum value a variable of type :c:type:`Py_ssize_t` " "can take. It's usually ``2**31 - 1`` on a 32-bit platform and ``2**63 - 1`` " @@ -2131,7 +2079,7 @@ msgstr "" "type:`Py_ssize_t`. Suele ser ``2**31 - 1`` en una plataforma de 32 bits y " "``2** 63 - 1`` en una plataforma de 64 bits." -#: ../Doc/library/sys.rst:1100 +#: ../Doc/library/sys.rst:1219 msgid "" "An integer giving the value of the largest Unicode code point, i.e. " "``1114111`` (``0x10FFFF`` in hexadecimal)." @@ -2139,7 +2087,7 @@ msgstr "" "Un número entero que da el valor del punto de código Unicode más grande, es " "decir, ``1114111`` (``0x10FFFF`` en hexadecimal)." -#: ../Doc/library/sys.rst:1103 +#: ../Doc/library/sys.rst:1222 msgid "" "Before :pep:`393`, ``sys.maxunicode`` used to be either ``0xFFFF`` or " "``0x10FFFF``, depending on the configuration option that specified whether " @@ -2149,7 +2097,7 @@ msgstr "" "dependiendo de la opción de configuración que especificaba si los caracteres " "Unicode se almacenaban como UCS-2 o UCS-4." -#: ../Doc/library/sys.rst:1111 +#: ../Doc/library/sys.rst:1230 #, fuzzy msgid "" "A list of :term:`meta path finder` objects that have their :meth:`~importlib." @@ -2171,11 +2119,11 @@ msgstr "" "attr:`__path__` se pasa como segundo argumento. El método retorna :term:" "`module spec`, o ``None`` si no se puede encontrar el módulo." -#: ../Doc/library/sys.rst:1124 +#: ../Doc/library/sys.rst:1243 msgid ":class:`importlib.abc.MetaPathFinder`" msgstr ":class:`importlib.abc.MetaPathFinder`" -#: ../Doc/library/sys.rst:1124 +#: ../Doc/library/sys.rst:1243 msgid "" "The abstract base class defining the interface of finder objects on :data:" "`meta_path`." @@ -2183,11 +2131,11 @@ msgstr "" "La clase base abstracta que define la interfaz de los objetos del buscador " "en :data:`meta_path`." -#: ../Doc/library/sys.rst:1128 +#: ../Doc/library/sys.rst:1247 msgid ":class:`importlib.machinery.ModuleSpec`" msgstr ":class:`importlib.machinery.ModuleSpec`" -#: ../Doc/library/sys.rst:1127 +#: ../Doc/library/sys.rst:1246 msgid "" "The concrete class which :meth:`~importlib.abc.MetaPathFinder.find_spec` " "should return instances of." @@ -2195,13 +2143,13 @@ msgstr "" "La clase concreta que :meth:`~importlib.abc.MetaPathFinder.find_spec` " "debería retornar instancias de." -#: ../Doc/library/sys.rst:1133 +#: ../Doc/library/sys.rst:1252 +#, fuzzy msgid "" ":term:`Module specs ` were introduced in Python 3.4, by :pep:" -"`451`. Earlier versions of Python looked for a method called :meth:" -"`~importlib.abc.MetaPathFinder.find_module`. This is still called as a " -"fallback if a :data:`meta_path` entry doesn't have a :meth:`~importlib.abc." -"MetaPathFinder.find_spec` method." +"`451`. Earlier versions of Python looked for a method called :meth:`!" +"find_module`. This is still called as a fallback if a :data:`meta_path` " +"entry doesn't have a :meth:`~importlib.abc.MetaPathFinder.find_spec` method." msgstr "" ":term:`Especificaciones del módulo ` se introdujeron en Python " "3.4, por :pep:`451`. Las versiones anteriores de Python buscaban un método " @@ -2209,7 +2157,7 @@ msgstr "" "llama como una alternativa si una entrada :data:`meta_path` no tiene un " "método :meth:`~importlib.abc.MetaPathFinder.find_spec`." -#: ../Doc/library/sys.rst:1141 +#: ../Doc/library/sys.rst:1260 #, fuzzy msgid "" "This is a dictionary that maps module names to modules which have already " @@ -2230,7 +2178,7 @@ msgstr "" "modules)`` para evitar excepciones porque el tamaño podría cambia durante la " "iteración como un efecto secundario de código o actividades en otros hilos." -#: ../Doc/library/sys.rst:1153 +#: ../Doc/library/sys.rst:1272 msgid "" "The list of the original command line arguments passed to the Python " "executable." @@ -2238,11 +2186,11 @@ msgstr "" "La lista de los argumentos originales de la línea de comando que son pasados " "al ejecutable de Python." -#: ../Doc/library/sys.rst:1156 +#: ../Doc/library/sys.rst:1275 msgid "See also :data:`sys.argv`." msgstr "También ver :data:`sys.argv`." -#: ../Doc/library/sys.rst:1165 +#: ../Doc/library/sys.rst:1284 msgid "" "A list of strings that specifies the search path for modules. Initialized " "from the environment variable :envvar:`PYTHONPATH`, plus an installation-" @@ -2252,7 +2200,7 @@ msgstr "" "módulos. Inicializado desde la variable de entorno :envvar:`PYTHONPATH`, más " "un valor predeterminado que depende de la instalación." -#: ../Doc/library/sys.rst:1169 +#: ../Doc/library/sys.rst:1288 #, fuzzy msgid "" "By default, as initialized upon program startup, a potentially unsafe path " @@ -2263,7 +2211,7 @@ msgstr "" "potencialmente insegura a :data:`sys.path` (*antes* de las entradas " "insertadas como resultado de :envvar:`PYTHONPATH`):" -#: ../Doc/library/sys.rst:1173 +#: ../Doc/library/sys.rst:1292 #, fuzzy msgid "" "``python -m module`` command line: prepend the current working directory." @@ -2271,7 +2219,7 @@ msgstr "" "Una ruta relativa se interpreta en relación con el directorio de directorio " "actual." -#: ../Doc/library/sys.rst:1175 +#: ../Doc/library/sys.rst:1294 msgid "" "``python script.py`` command line: prepend the script's directory. If it's a " "symbolic link, resolve symbolic links." @@ -2279,7 +2227,7 @@ msgstr "" "``python script.py`` línea de comandos: anteponer el directorio del script. " "Si es un enlace simbólico, resuelve los enlaces simbólicos." -#: ../Doc/library/sys.rst:1177 +#: ../Doc/library/sys.rst:1296 msgid "" "``python -c code`` and ``python`` (REPL) command lines: prepend an empty " "string, which means the current working directory." @@ -2287,15 +2235,16 @@ msgstr "" "Líneas de comando ``python -c code`` y ``python`` (REPL): anteponen una " "cadena vacía, que significa el directorio de trabajo actual." -#: ../Doc/library/sys.rst:1180 +#: ../Doc/library/sys.rst:1299 +#, fuzzy msgid "" "To not prepend this potentially unsafe path, use the :option:`-P` command " -"line option or the :envvar:`PYTHONSAFEPATH` environment variable?" +"line option or the :envvar:`PYTHONSAFEPATH` environment variable." msgstr "" "Para no añadir esta ruta potencialmente insegura, utilice la opción de línea " "de comandos :option:`-P` o la variable de entorno :envvar:`PYTHONSAFEPATH`?." -#: ../Doc/library/sys.rst:1183 +#: ../Doc/library/sys.rst:1302 #, fuzzy msgid "" "A program is free to modify this list for its own purposes. Only strings " @@ -2306,7 +2255,7 @@ msgstr "" "deben agregar cadenas de caracteres y bytes a :data:`sys.path`; todos los " "demás tipos de datos se ignoran durante la importación." -#: ../Doc/library/sys.rst:1189 +#: ../Doc/library/sys.rst:1308 msgid "" "Module :mod:`site` This describes how to use .pth files to extend :data:`sys." "path`." @@ -2314,7 +2263,7 @@ msgstr "" "Módulo :mod:`site` Esto describe cómo usar archivos .pth para extender :data:" "`sys.path`." -#: ../Doc/library/sys.rst:1194 +#: ../Doc/library/sys.rst:1313 msgid "" "A list of callables that take a path argument to try to create a :term:" "`finder` for the path. If a finder can be created, it is to be returned by " @@ -2324,11 +2273,11 @@ msgstr "" "un :term:`finder` para la ruta. Si se puede crear un buscador, el invocable " "debe retornar; de lo contrario, lanza :exc:`ImportError`." -#: ../Doc/library/sys.rst:1198 ../Doc/library/sys.rst:1209 +#: ../Doc/library/sys.rst:1317 ../Doc/library/sys.rst:1328 msgid "Originally specified in :pep:`302`." msgstr "Especificado originalmente en :pep:`302`." -#: ../Doc/library/sys.rst:1203 +#: ../Doc/library/sys.rst:1322 msgid "" "A dictionary acting as a cache for :term:`finder` objects. The keys are " "paths that have been passed to :data:`sys.path_hooks` and the values are the " @@ -2341,15 +2290,7 @@ msgstr "" "válida pero no se encuentra ningún buscador en :data:`sys.path_hooks`, " "entonces se almacena ``None``." -#: ../Doc/library/sys.rst:1211 -msgid "" -"``None`` is stored instead of :class:`imp.NullImporter` when no finder is " -"found." -msgstr "" -"``None`` se almacena en lugar de :class:`imp.NullImporter` cuando no se " -"encuentra ningún buscador." - -#: ../Doc/library/sys.rst:1218 +#: ../Doc/library/sys.rst:1333 msgid "" "This string contains a platform identifier that can be used to append " "platform-specific components to :data:`sys.path`, for instance." @@ -2358,7 +2299,7 @@ msgstr "" "puede usar para agregar componentes específicos de la plataforma a :data:" "`sys.path`, por ejemplo." -#: ../Doc/library/sys.rst:1221 +#: ../Doc/library/sys.rst:1336 msgid "" "For Unix systems, except on Linux and AIX, this is the lowercased OS name as " "returned by ``uname -s`` with the first part of the version as returned by " @@ -2373,79 +2314,80 @@ msgstr "" "menos que desee probar una versión específica del sistema, se recomienda " "utilizar el siguiente idioma:" -#: ../Doc/library/sys.rst:1234 +#: ../Doc/library/sys.rst:1349 msgid "For other systems, the values are:" msgstr "Para otros sistemas, los valores son:" -#: ../Doc/library/sys.rst:1237 +#: ../Doc/library/sys.rst:1352 msgid "System" msgstr "Sistema" -#: ../Doc/library/sys.rst:1237 +#: ../Doc/library/sys.rst:1352 msgid "``platform`` value" msgstr "valor ``platform``" -#: ../Doc/library/sys.rst:1239 +#: ../Doc/library/sys.rst:1354 msgid "AIX" msgstr "AIX" -#: ../Doc/library/sys.rst:1239 +#: ../Doc/library/sys.rst:1354 msgid "``'aix'``" msgstr "``'aix'``" -#: ../Doc/library/sys.rst:1240 +#: ../Doc/library/sys.rst:1355 msgid "Emscripten" msgstr "Emscripten" -#: ../Doc/library/sys.rst:1240 +#: ../Doc/library/sys.rst:1355 #, fuzzy msgid "``'emscripten'``" msgstr "``'exception'``" -#: ../Doc/library/sys.rst:1241 +#: ../Doc/library/sys.rst:1356 msgid "Linux" msgstr "Linux" -#: ../Doc/library/sys.rst:1241 +#: ../Doc/library/sys.rst:1356 msgid "``'linux'``" msgstr "``'linux'``" -#: ../Doc/library/sys.rst:1242 +#: ../Doc/library/sys.rst:1357 msgid "WASI" msgstr "WASI" -#: ../Doc/library/sys.rst:1242 +#: ../Doc/library/sys.rst:1357 #, fuzzy msgid "``'wasi'``" msgstr "``'aix'``" -#: ../Doc/library/sys.rst:1243 +#: ../Doc/library/sys.rst:1358 msgid "Windows" msgstr "Windows" -#: ../Doc/library/sys.rst:1243 +#: ../Doc/library/sys.rst:1358 msgid "``'win32'``" msgstr "``'win32'``" -#: ../Doc/library/sys.rst:1244 +#: ../Doc/library/sys.rst:1359 msgid "Windows/Cygwin" msgstr "Windows/Cygwin" -#: ../Doc/library/sys.rst:1244 +#: ../Doc/library/sys.rst:1359 msgid "``'cygwin'``" msgstr "``'cygwin'``" -#: ../Doc/library/sys.rst:1245 +#: ../Doc/library/sys.rst:1360 msgid "macOS" msgstr "macOS" -#: ../Doc/library/sys.rst:1245 +#: ../Doc/library/sys.rst:1360 msgid "``'darwin'``" msgstr "``'darwin'``" -#: ../Doc/library/sys.rst:1248 +#: ../Doc/library/sys.rst:1363 +#, fuzzy msgid "" -"On Linux, :attr:`sys.platform` doesn't contain the major version anymore. It " +"On Linux, :data:`sys.platform` doesn't contain the major version anymore. It " "is always ``'linux'``, instead of ``'linux2'`` or ``'linux3'``. Since older " "Python versions include the version number, it is recommended to always use " "the ``startswith`` idiom presented above." @@ -2455,9 +2397,10 @@ msgstr "" "versiones anteriores de Python incluyen el número de versión, se recomienda " "utilizar siempre el idioma ``startswith`` presentado anteriormente." -#: ../Doc/library/sys.rst:1254 +#: ../Doc/library/sys.rst:1369 +#, fuzzy msgid "" -"On AIX, :attr:`sys.platform` doesn't contain the major version anymore. It " +"On AIX, :data:`sys.platform` doesn't contain the major version anymore. It " "is always ``'aix'``, instead of ``'aix5'`` or ``'aix7'``. Since older " "Python versions include the version number, it is recommended to always use " "the ``startswith`` idiom presented above." @@ -2467,15 +2410,16 @@ msgstr "" "anteriores de Python incluyen el número de versión, se recomienda utilizar " "siempre el idioma ``startswith`` presentado anteriormente." -#: ../Doc/library/sys.rst:1262 +#: ../Doc/library/sys.rst:1377 +#, fuzzy msgid "" -":attr:`os.name` has a coarser granularity. :func:`os.uname` gives system-" +":data:`os.name` has a coarser granularity. :func:`os.uname` gives system-" "dependent version information." msgstr "" ":attr:`os.name` tiene una granularidad más gruesa. :func:`os.uname` " "proporciona información de versión dependiente del sistema." -#: ../Doc/library/sys.rst:1265 +#: ../Doc/library/sys.rst:1380 msgid "" "The :mod:`platform` module provides detailed checks for the system's " "identity." @@ -2483,7 +2427,7 @@ msgstr "" "El módulo :mod:`platform` proporciona comprobaciones detalladas de la " "identidad del sistema." -#: ../Doc/library/sys.rst:1271 +#: ../Doc/library/sys.rst:1386 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." @@ -2492,7 +2436,7 @@ msgstr "" "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:1274 +#: ../Doc/library/sys.rst:1389 msgid "" "It is equal to ``\"lib\"`` on most platforms. On Fedora and SuSE, it is " "equal to ``\"lib64\"`` on 64-bit platforms which gives the following ``sys." @@ -2502,7 +2446,7 @@ msgstr "" "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:1278 +#: ../Doc/library/sys.rst:1393 msgid "" "``/usr/lib64/pythonX.Y/``: Standard library (like ``os.py`` of the :mod:`os` " "module)" @@ -2510,7 +2454,7 @@ msgstr "" "``/usr/lib64/pythonX.Y/``: Biblioteca estándar (como ``os.py`` del módulo :" "mod:`os`)" -#: ../Doc/library/sys.rst:1280 +#: ../Doc/library/sys.rst:1395 msgid "" "``/usr/lib64/pythonX.Y/lib-dynload/``: C extension modules of the standard " "library (like the :mod:`errno` module, the exact filename is platform " @@ -2520,7 +2464,7 @@ msgstr "" "biblioteca estándar (como el módulo :mod:`errno`, el nombre exacto del " "archivo es específico de la plataforma)" -#: ../Doc/library/sys.rst:1283 +#: ../Doc/library/sys.rst:1398 msgid "" "``/usr/lib/pythonX.Y/site-packages/`` (always use ``lib``, not :data:`sys." "platlibdir`): Third-party modules" @@ -2528,7 +2472,7 @@ msgstr "" "``/usr/lib/pythonX.Y/site-packages/`` (utilice siempre ``lib``, no :data:" "`sys.platlibdir`): Módulos de terceros" -#: ../Doc/library/sys.rst:1285 +#: ../Doc/library/sys.rst:1400 msgid "" "``/usr/lib64/pythonX.Y/site-packages/``: C extension modules of third-party " "packages" @@ -2536,14 +2480,14 @@ msgstr "" "``/usr/lib64/pythonX.Y/site-packages/``: Módulos de extensión C de paquetes " "de terceros" -#: ../Doc/library/sys.rst:1293 +#: ../Doc/library/sys.rst:1408 #, fuzzy msgid "" "A string giving the site-specific directory prefix where the platform " -"independent Python files are installed; on Unix, the default is ``'/usr/" -"local'``. This can be set at build time with the ``--prefix`` argument to " -"the :program:`configure` script. See :ref:`installation_paths` for derived " -"paths." +"independent Python files are installed; on Unix, the default is :file:`/usr/" +"local`. This can be set at build time with the :option:`--prefix` argument " +"to the :program:`configure` script. See :ref:`installation_paths` for " +"derived paths." msgstr "" "Una cadena que da el prefijo del directorio específico del sitio donde se " "instalan los archivos Python independientes de la plataforma; en Unix, el " @@ -2551,7 +2495,7 @@ msgstr "" "construcción con el argumento ``--prefix`` del :program:`configurar` " "script. Ver :ref:`installation_paths` para las rutas derivadas." -#: ../Doc/library/sys.rst:1299 +#: ../Doc/library/sys.rst:1414 msgid "" "If a :ref:`virtual environment ` is in effect, this value will be " "changed in ``site.py`` to point to the virtual environment. The value for " @@ -2562,7 +2506,7 @@ msgstr "" "instalación de Python seguirá estando disponible a través de :data:" "`base_prefix`." -#: ../Doc/library/sys.rst:1314 +#: ../Doc/library/sys.rst:1429 msgid "" "Strings specifying the primary and secondary prompt of the interpreter. " "These are only defined if the interpreter is in interactive mode. Their " @@ -2579,15 +2523,16 @@ msgstr "" "para leer un nuevo comando interactivo; esto se puede utilizar para " "implementar un mensaje dinámico." -#: ../Doc/library/sys.rst:1324 +#: ../Doc/library/sys.rst:1439 +#, fuzzy msgid "" "Set the flags used by the interpreter for :c:func:`dlopen` calls, such as " "when the interpreter loads extension modules. Among other things, this will " "enable a lazy resolving of symbols when importing a module, if called as " "``sys.setdlopenflags(0)``. To share symbols across extension modules, call " "as ``sys.setdlopenflags(os.RTLD_GLOBAL)``. Symbolic names for the flag " -"values can be found in the :mod:`os` module (``RTLD_xxx`` constants, e.g. :" -"data:`os.RTLD_LAZY`)." +"values can be found in the :mod:`os` module (:samp:`RTLD_{xxx}` constants, e." +"g. :const:`os.RTLD_LAZY`)." msgstr "" "Establece los indicadores utilizados por el intérprete para llamadas :c:func:" "`dlopen`, como cuando el intérprete carga módulos de extensión. Entre otras " @@ -2598,7 +2543,7 @@ msgstr "" "pueden encontrar en el módulo :mod:`os` (constantes ``RTLD_xxx``, por " "ejemplo :data:`os.RTLD_LAZY`)." -#: ../Doc/library/sys.rst:1336 +#: ../Doc/library/sys.rst:1451 msgid "" "Set the :ref:`integer string conversion length limitation " "` used by this interpreter. See also :func:" @@ -2608,7 +2553,7 @@ msgstr "" "enteras ` utilizada por este intérprete. Véase también :" "func:`get_int_max_str_digits`." -#: ../Doc/library/sys.rst:1348 +#: ../Doc/library/sys.rst:1463 msgid "" "Set the system's profile function, which allows you to implement a Python " "source code profiler in Python. See chapter :ref:`profile` for more " @@ -2636,7 +2581,7 @@ msgstr "" "retorno no se usa, por lo que simplemente puede retornar ``None``. Un error " "en la función del perfil provocará su desarmado." -#: ../Doc/library/sys.rst:1359 +#: ../Doc/library/sys.rst:1474 msgid "" "Profile functions should have three arguments: *frame*, *event*, and *arg*. " "*frame* is the current stack frame. *event* is a string: ``'call'``, " @@ -2648,22 +2593,22 @@ msgstr "" "caracteres: ``'call'``, ``'return'``, ``'c_call'``, ``'c_return'``, o " "``'c_exception'``. *arg* depende del tipo de evento." -#: ../Doc/library/sys.rst:1364 +#: ../Doc/library/sys.rst:1479 msgid "" "Raises an :ref:`auditing event ` ``sys.setprofile`` with no " "arguments." msgstr "" "Lanza un :ref:`auditing event ` ``sys.setprofile`` sin argumentos." -#: ../Doc/library/sys.rst:1366 ../Doc/library/sys.rst:1447 +#: ../Doc/library/sys.rst:1481 ../Doc/library/sys.rst:1562 msgid "The events have the following meaning:" msgstr "Los eventos tienen el siguiente significado:" -#: ../Doc/library/sys.rst:1370 ../Doc/library/sys.rst:1452 +#: ../Doc/library/sys.rst:1485 ../Doc/library/sys.rst:1567 msgid "``'call'``" msgstr "``'call'``" -#: ../Doc/library/sys.rst:1369 +#: ../Doc/library/sys.rst:1484 msgid "" "A function is called (or some other code block entered). The profile " "function is called; *arg* is ``None``." @@ -2671,11 +2616,11 @@ msgstr "" "Se llama a una función (o se ingresa algún otro bloque de código). Se llama " "a la función de perfil; *arg* es ``None``." -#: ../Doc/library/sys.rst:1375 ../Doc/library/sys.rst:1467 +#: ../Doc/library/sys.rst:1490 ../Doc/library/sys.rst:1582 msgid "``'return'``" msgstr "``'return'``" -#: ../Doc/library/sys.rst:1373 +#: ../Doc/library/sys.rst:1488 msgid "" "A function (or other code block) is about to return. The profile function " "is called; *arg* is the value that will be returned, or ``None`` if the " @@ -2685,11 +2630,11 @@ msgstr "" "la función de perfil; *arg* es el valor que se retornará, o ``None`` si el " "evento es causado por una excepción." -#: ../Doc/library/sys.rst:1379 +#: ../Doc/library/sys.rst:1494 msgid "``'c_call'``" msgstr "``'c_call'``" -#: ../Doc/library/sys.rst:1378 +#: ../Doc/library/sys.rst:1493 msgid "" "A C function is about to be called. This may be an extension function or a " "built-in. *arg* is the C function object." @@ -2697,24 +2642,24 @@ msgstr "" "Una función C está a punto de ser llamada. Esta puede ser una función de " "extensión o una incorporada. *arg* es el objeto de función de C." -#: ../Doc/library/sys.rst:1382 +#: ../Doc/library/sys.rst:1497 msgid "``'c_return'``" msgstr "``'c_return'``" -#: ../Doc/library/sys.rst:1382 +#: ../Doc/library/sys.rst:1497 msgid "A C function has returned. *arg* is the C function object." msgstr "Ha vuelto una función C. *arg* es el objeto de función de C." -#: ../Doc/library/sys.rst:1384 +#: ../Doc/library/sys.rst:1499 msgid "``'c_exception'``" msgstr "``'c_exception'``" -#: ../Doc/library/sys.rst:1385 +#: ../Doc/library/sys.rst:1500 msgid "A C function has raised an exception. *arg* is the C function object." msgstr "" "Una función C ha generado una excepción. *arg* es el objeto de función de C." -#: ../Doc/library/sys.rst:1389 +#: ../Doc/library/sys.rst:1504 msgid "" "Set the maximum depth of the Python interpreter stack to *limit*. This " "limit prevents infinite recursion from causing an overflow of the C stack " @@ -2724,7 +2669,7 @@ msgstr "" "*limit*. Este límite evita que la recursividad infinita cause un " "desbordamiento de la pila C y bloquee Python." -#: ../Doc/library/sys.rst:1393 +#: ../Doc/library/sys.rst:1508 msgid "" "The highest possible limit is platform-dependent. A user may need to set " "the limit higher when they have a program that requires deep recursion and a " @@ -2737,7 +2682,7 @@ msgstr "" "alto. Esto debe hacerse con cuidado, ya que un límite demasiado alto puede " "provocar un accidente." -#: ../Doc/library/sys.rst:1398 +#: ../Doc/library/sys.rst:1513 msgid "" "If the new limit is too low at the current recursion depth, a :exc:" "`RecursionError` exception is raised." @@ -2745,7 +2690,7 @@ msgstr "" "Si el nuevo límite es demasiado bajo en la profundidad de recursividad " "actual, se genera una excepción :exc:`RecursionError`." -#: ../Doc/library/sys.rst:1401 +#: ../Doc/library/sys.rst:1516 msgid "" "A :exc:`RecursionError` exception is now raised if the new limit is too low " "at the current recursion depth." @@ -2753,7 +2698,7 @@ msgstr "" "A la excepción :exc:`RecursionError` ahora se lanza si el nuevo límite es " "demasiado bajo en la profundidad de recursión actual." -#: ../Doc/library/sys.rst:1408 +#: ../Doc/library/sys.rst:1523 msgid "" "Set the interpreter's thread switch interval (in seconds). This floating-" "point value determines the ideal duration of the \"timeslices\" allocated to " @@ -2771,7 +2716,7 @@ msgstr "" "Además, qué hilo se programa al final del intervalo es decisión del sistema " "operativo. El intérprete no tiene su propio programador." -#: ../Doc/library/sys.rst:1425 +#: ../Doc/library/sys.rst:1540 msgid "" "Set the system's trace function, which allows you to implement a Python " "source code debugger in Python. The function is thread-specific; for a " @@ -2785,7 +2730,7 @@ msgstr "" "una función de seguimiento usando :func:`settrace` para cada subproceso que " "se depura o use :func:`threading.settrace`." -#: ../Doc/library/sys.rst:1430 +#: ../Doc/library/sys.rst:1545 msgid "" "Trace functions should have three arguments: *frame*, *event*, and *arg*. " "*frame* is the current stack frame. *event* is a string: ``'call'``, " @@ -2797,7 +2742,7 @@ msgstr "" "caracteres: ``'call'``, ``'line'``, ``'return'``, ``'exception'`` or " "``'opcode'``. *arg* depende del tipo de evento." -#: ../Doc/library/sys.rst:1435 +#: ../Doc/library/sys.rst:1550 msgid "" "The trace function is invoked (with *event* set to ``'call'``) whenever a " "new local scope is entered; it should return a reference to a local trace " @@ -2809,7 +2754,7 @@ msgstr "" "función de rastreo local que se usará para el nuevo alcance, o ``None`` si " "no se debe rastrear el alcance." -#: ../Doc/library/sys.rst:1440 +#: ../Doc/library/sys.rst:1555 msgid "" "The local trace function should return a reference to itself (or to another " "function for further tracing in that scope), or ``None`` to turn off tracing " @@ -2819,7 +2764,7 @@ msgstr "" "otra función para realizar un seguimiento adicional en ese ámbito), o " "``None`` para desactivar el seguimiento en ese ámbito." -#: ../Doc/library/sys.rst:1444 +#: ../Doc/library/sys.rst:1559 msgid "" "If there is any error occurred in the trace function, it will be unset, just " "like ``settrace(None)`` is called." @@ -2827,7 +2772,7 @@ msgstr "" "Si se produce algún error en la función de seguimiento, se desarmará, al " "igual que se llama a ``settrace(None)``." -#: ../Doc/library/sys.rst:1450 +#: ../Doc/library/sys.rst:1565 msgid "" "A function is called (or some other code block entered). The global trace " "function is called; *arg* is ``None``; the return value specifies the local " @@ -2837,18 +2782,19 @@ msgstr "" "a la función de rastreo global; *arg* es ``None``; el valor de retorno " "especifica la función de rastreo local." -#: ../Doc/library/sys.rst:1461 +#: ../Doc/library/sys.rst:1576 msgid "``'line'``" msgstr "``'line'``" -#: ../Doc/library/sys.rst:1455 +#: ../Doc/library/sys.rst:1570 +#, fuzzy msgid "" "The interpreter is about to execute a new line of code or re-execute the " "condition of a loop. The local trace function is called; *arg* is ``None``; " "the return value specifies the new local trace function. See :file:`Objects/" "lnotab_notes.txt` for a detailed explanation of how this works. Per-line " -"events may be disabled for a frame by setting :attr:`f_trace_lines` to :" -"const:`False` on that frame." +"events may be disabled for a frame by setting :attr:`!f_trace_lines` to :" +"const:`False` on that :ref:`frame `." msgstr "" "El intérprete está a punto de ejecutar una nueva línea de código o volver a " "ejecutar la condición de un bucle. Se llama a la función de rastreo local; " @@ -2858,7 +2804,7 @@ msgstr "" "deshabilitar para un marco estableciendo :attr:`f_trace_lines` to :const:" "`False` en ese marco." -#: ../Doc/library/sys.rst:1464 +#: ../Doc/library/sys.rst:1579 msgid "" "A function (or other code block) is about to return. The local trace " "function is called; *arg* is the value that will be returned, or ``None`` if " @@ -2870,11 +2816,11 @@ msgstr "" "si el evento es causado por una excepción. Se ignora el valor de retorno de " "la función de seguimiento." -#: ../Doc/library/sys.rst:1472 +#: ../Doc/library/sys.rst:1587 msgid "``'exception'``" msgstr "``'exception'``" -#: ../Doc/library/sys.rst:1470 +#: ../Doc/library/sys.rst:1585 msgid "" "An exception has occurred. The local trace function is called; *arg* is a " "tuple ``(exception, value, traceback)``; the return value specifies the new " @@ -2884,17 +2830,18 @@ msgstr "" "una tupla ``(exception, value, traceback)``; el valor de retorno especifica " "la nueva función de rastreo local." -#: ../Doc/library/sys.rst:1480 +#: ../Doc/library/sys.rst:1595 msgid "``'opcode'``" msgstr "``'opcode'``" -#: ../Doc/library/sys.rst:1475 +#: ../Doc/library/sys.rst:1590 +#, fuzzy msgid "" "The interpreter is about to execute a new opcode (see :mod:`dis` for opcode " "details). The local trace function is called; *arg* is ``None``; the return " "value specifies the new local trace function. Per-opcode events are not " -"emitted by default: they must be explicitly requested by setting :attr:" -"`f_trace_opcodes` to :const:`True` on the frame." +"emitted by default: they must be explicitly requested by setting :attr:`!" +"f_trace_opcodes` to :const:`True` on the :ref:`frame `." msgstr "" "El intérprete está a punto de ejecutar un nuevo código de operación (ver :" "mod:`dis` para detalles del código de operación). Se llama a la función de " @@ -2903,7 +2850,7 @@ msgstr "" "de forma predeterminada: deben solicitarse explícitamente configurando :attr:" "`f_trace_opcodes` en :const:`True` en el marco." -#: ../Doc/library/sys.rst:1482 +#: ../Doc/library/sys.rst:1597 msgid "" "Note that as an exception is propagated down the chain of callers, an " "``'exception'`` event is generated at each level." @@ -2911,7 +2858,7 @@ msgstr "" "Tenga en cuenta que como una excepción se propaga a lo largo de la cadena de " "llamadas de funciones, se lanza un evento de ``'excepción'`` en cada nivel." -#: ../Doc/library/sys.rst:1485 +#: ../Doc/library/sys.rst:1600 msgid "" "For more fine-grained usage, it's possible to set a trace function by " "assigning ``frame.f_trace = tracefunc`` explicitly, rather than relying on " @@ -2936,20 +2883,20 @@ msgstr "" "sobrecarga baja que simplemente retorna ``None`` para deshabilitarse " "inmediatamente en cada cuadro)." -#: ../Doc/library/sys.rst:1496 +#: ../Doc/library/sys.rst:1611 msgid "For more information on code and frame objects, refer to :ref:`types`." msgstr "" "Para obtener más información sobre los objetos de código y marco, consulte :" "ref:`types`." -#: ../Doc/library/sys.rst:1498 +#: ../Doc/library/sys.rst:1613 msgid "" "Raises an :ref:`auditing event ` ``sys.settrace`` with no " "arguments." msgstr "" "Lanza un :ref:`auditing event ` ``sys.settrace`` sin argumentos." -#: ../Doc/library/sys.rst:1502 +#: ../Doc/library/sys.rst:1617 msgid "" "The :func:`settrace` function is intended only for implementing debuggers, " "profilers, coverage tools and the like. Its behavior is part of the " @@ -2962,15 +2909,16 @@ msgstr "" "parte de la definición del lenguaje y, por lo tanto, es posible que no esté " "disponible en todas las implementaciones de Python." -#: ../Doc/library/sys.rst:1509 +#: ../Doc/library/sys.rst:1624 +#, fuzzy msgid "" -"``'opcode'`` event type added; :attr:`f_trace_lines` and :attr:" -"`f_trace_opcodes` attributes added to frames" +"``'opcode'`` event type added; :attr:`!f_trace_lines` and :attr:`!" +"f_trace_opcodes` attributes added to frames" msgstr "" "Se agregó el tipo de evento ``'opcode'``; atributos :attr:`f_trace_lines` y :" "attr:`f_trace_opcodes` agregados a los marcos (*frames*)" -#: ../Doc/library/sys.rst:1514 +#: ../Doc/library/sys.rst:1629 msgid "" "Accepts two optional keyword arguments which are callables that accept an :" "term:`asynchronous generator iterator` as an argument. The *firstiter* " @@ -2984,7 +2932,7 @@ msgstr "" "por primera vez. Se llamará al *finalizer* cuando un generador asincrónico " "esté a punto de ser recolectado como basura." -#: ../Doc/library/sys.rst:1520 +#: ../Doc/library/sys.rst:1635 msgid "" "Raises an :ref:`auditing event ` ``sys." "set_asyncgen_hooks_firstiter`` with no arguments." @@ -2992,7 +2940,7 @@ msgstr "" "Lanza un :ref:`auditing event ` ``sys." "set_asyncgen_hooks_firstiter`` sin argumentos." -#: ../Doc/library/sys.rst:1522 +#: ../Doc/library/sys.rst:1637 msgid "" "Raises an :ref:`auditing event ` ``sys." "set_asyncgen_hooks_finalizer`` with no arguments." @@ -3000,7 +2948,7 @@ msgstr "" "Lanza un :ref:`auditing event ` ``sys." "set_asyncgen_hooks_finalizer`` sin argumentos." -#: ../Doc/library/sys.rst:1524 +#: ../Doc/library/sys.rst:1639 msgid "" "Two auditing events are raised because the underlying API consists of two " "calls, each of which must raise its own event." @@ -3008,7 +2956,7 @@ msgstr "" "Se lanzan dos eventos de auditoría porque la API subyacente consta de dos " "llamadas, cada una de las cuales debe generar su propio evento." -#: ../Doc/library/sys.rst:1527 +#: ../Doc/library/sys.rst:1642 msgid "" "See :pep:`525` for more details, and for a reference example of a " "*finalizer* method see the implementation of ``asyncio.Loop." @@ -3018,7 +2966,7 @@ msgstr "" "método *finalizer* ver la implementación de ``asyncio.Loop." "shutdown_asyncgens`` en :source:`Lib/asyncio/base_events.py`" -#: ../Doc/library/sys.rst:1539 +#: ../Doc/library/sys.rst:1654 msgid "" "Allows enabling or disabling coroutine origin tracking. When enabled, the " "``cr_origin`` attribute on coroutine objects will contain a tuple of " @@ -3033,7 +2981,7 @@ msgstr "" "corrutina, con la llamada más reciente primero. Cuando esté deshabilitado, " "``cr_origin`` será None." -#: ../Doc/library/sys.rst:1546 +#: ../Doc/library/sys.rst:1661 msgid "" "To enable, pass a *depth* value greater than zero; this sets the number of " "frames whose information will be captured. To disable, pass set *depth* to " @@ -3043,11 +2991,46 @@ msgstr "" "número de fotogramas cuya información será capturada. Para deshabilitar, " "pase set *depth* a cero." -#: ../Doc/library/sys.rst:1550 +#: ../Doc/library/sys.rst:1665 msgid "This setting is thread-specific." msgstr "Esta configuración es específica de cada hilo." -#: ../Doc/library/sys.rst:1560 +#: ../Doc/library/sys.rst:1675 +msgid "" +"Activate the stack profiler trampoline *backend*. The only supported backend " +"is ``\"perf\"``." +msgstr "" + +#: ../Doc/library/sys.rst:1678 ../Doc/library/sys.rst:1693 +#: ../Doc/library/sys.rst:1701 +#, fuzzy +msgid ":ref:`Availability `: Linux." +msgstr ":ref:`Disponibilidad `: Unix." + +#: ../Doc/library/sys.rst:1684 +msgid ":ref:`perf_profiling`" +msgstr "" + +#: ../Doc/library/sys.rst:1685 +msgid "https://perf.wiki.kernel.org" +msgstr "" + +#: ../Doc/library/sys.rst:1689 +msgid "Deactivate the current stack profiler trampoline backend." +msgstr "" + +#: ../Doc/library/sys.rst:1691 +#, fuzzy +msgid "If no stack profiler is activated, this function has no effect." +msgstr "" +"Si no se está ejecutando ningún manejador de excepciones, esta función " +"retorna ``None``." + +#: ../Doc/library/sys.rst:1699 +msgid "Return ``True`` if a stack profiler trampoline is active." +msgstr "" + +#: ../Doc/library/sys.rst:1707 msgid "" "Changes the :term:`filesystem encoding and error handler` to 'mbcs' and " "'replace' respectively, for consistency with versions of Python prior to 3.6." @@ -3057,7 +3040,7 @@ msgstr "" "respectivamente, para mantener la coherencia con las versiones de Python " "anteriores a la 3.6." -#: ../Doc/library/sys.rst:1564 +#: ../Doc/library/sys.rst:1711 msgid "" "This is equivalent to defining the :envvar:`PYTHONLEGACYWINDOWSFSENCODING` " "environment variable before launching Python." @@ -3065,7 +3048,7 @@ msgstr "" "Esto es equivalente a definir la variable de entorno :envvar:" "`PYTHONLEGACYWINDOWSFSENCODING` antes de iniciar Python." -#: ../Doc/library/sys.rst:1567 +#: ../Doc/library/sys.rst:1714 msgid "" "See also :func:`sys.getfilesystemencoding` and :func:`sys." "getfilesystemencodeerrors`." @@ -3073,11 +3056,11 @@ msgstr "" "También ver :func:`sys.getfilesystemencoding` y :func:`sys." "getfilesystemencodeerrors`." -#: ../Doc/library/sys.rst:1572 +#: ../Doc/library/sys.rst:1719 msgid "See :pep:`529` for more details." msgstr "Consulte :pep:`529` para obtener más detalles." -#: ../Doc/library/sys.rst:1579 +#: ../Doc/library/sys.rst:1726 msgid "" ":term:`File objects ` used by the interpreter for standard " "input, output and errors:" @@ -3085,7 +3068,7 @@ msgstr "" ":term:`Objetos de archivo ` utilizado por el intérprete para " "entradas, salidas y errores estándar:" -#: ../Doc/library/sys.rst:1582 +#: ../Doc/library/sys.rst:1729 msgid "" "``stdin`` is used for all interactive input (including calls to :func:" "`input`);" @@ -3093,7 +3076,7 @@ msgstr "" "``stdin`` se usa para todas las entradas interactivas (incluidas las " "llamadas a :func:`input`);" -#: ../Doc/library/sys.rst:1584 +#: ../Doc/library/sys.rst:1731 msgid "" "``stdout`` is used for the output of :func:`print` and :term:`expression` " "statements and for the prompts of :func:`input`;" @@ -3101,13 +3084,13 @@ msgstr "" "``stdout`` se usa para la salida de :func:`print` y :term:`expression` y " "para las solicitudes de :func:`input`;" -#: ../Doc/library/sys.rst:1586 +#: ../Doc/library/sys.rst:1733 msgid "The interpreter's own prompts and its error messages go to ``stderr``." msgstr "" "Las propias indicaciones del intérprete y sus mensajes de error van a " "``stderr``." -#: ../Doc/library/sys.rst:1588 +#: ../Doc/library/sys.rst:1735 msgid "" "These streams are regular :term:`text files ` like those returned " "by the :func:`open` function. Their parameters are chosen as follows:" @@ -3116,7 +3099,7 @@ msgstr "" "retornados por la función :func:`open`. Sus parámetros se eligen de la " "siguiente manera:" -#: ../Doc/library/sys.rst:1592 +#: ../Doc/library/sys.rst:1739 msgid "" "The encoding and error handling are is initialized from :c:member:`PyConfig." "stdio_encoding` and :c:member:`PyConfig.stdio_errors`." @@ -3124,7 +3107,7 @@ msgstr "" "La codificación y manejo de error son inicializado desde :c:member:`PyConfig." "stdio_encoding` y :c:member:`PyConfig.stdio_errors`." -#: ../Doc/library/sys.rst:1595 +#: ../Doc/library/sys.rst:1742 msgid "" "On Windows, UTF-8 is used for the console device. Non-character devices " "such as disk files and pipes use the system locale encoding (i.e. the ANSI " @@ -3144,7 +3127,7 @@ msgstr "" "sistema de :term:`codificación local` si el proceso no esta " "inicialmente acoplado a una consola." -#: ../Doc/library/sys.rst:1604 +#: ../Doc/library/sys.rst:1751 msgid "" "The special behaviour of the console can be overridden by setting the " "environment variable PYTHONLEGACYWINDOWSSTDIO before starting Python. In " @@ -3155,7 +3138,7 @@ msgstr "" "caso, las páginas de códigos de la consola se utilizan como para cualquier " "otro dispositivo de caracteres." -#: ../Doc/library/sys.rst:1609 +#: ../Doc/library/sys.rst:1756 msgid "" "Under all platforms, you can override the character encoding by setting the :" "envvar:`PYTHONIOENCODING` environment variable before starting Python or by " @@ -3170,7 +3153,7 @@ msgstr "" "consola de Windows, esto solo se aplica cuando :envvar:" "`PYTHONLEGACYWINDOWSSTDIO` también está configurado." -#: ../Doc/library/sys.rst:1616 +#: ../Doc/library/sys.rst:1763 msgid "" "When interactive, the ``stdout`` stream is line-buffered. Otherwise, it is " "block-buffered like regular text files. The ``stderr`` stream is line-" @@ -3185,14 +3168,14 @@ msgstr "" "comandos :option:`-u` o estableciendo la variable de entorno :envvar:" "`PYTHONUNBUFFERED`." -#: ../Doc/library/sys.rst:1622 +#: ../Doc/library/sys.rst:1769 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:1628 +#: ../Doc/library/sys.rst:1775 msgid "" "To write or read binary data from/to the standard streams, use the " "underlying binary :data:`~io.TextIOBase.buffer` object. For example, to " @@ -3202,19 +3185,20 @@ msgstr "" "objeto binario subyacente :data:`~io.TextIOBase.buffer`. Por ejemplo, para " "escribir bytes en :data:`stdout`, use ``sys.stdout.buffer.write(b'abc')``." -#: ../Doc/library/sys.rst:1632 +#: ../Doc/library/sys.rst:1779 +#, fuzzy msgid "" "However, if you are writing a library (and do not control in which context " "its code will be executed), be aware that the standard streams may be " "replaced with file-like objects like :class:`io.StringIO` which do not " -"support the :attr:`~io.BufferedIOBase.buffer` attribute." +"support the :attr:!buffer` attribute." msgstr "" "Sin embargo, si está escribiendo una biblioteca (y no controla en qué " "contexto se ejecutará su código), tenga en cuenta que las transmisiones " "estándar pueden reemplazarse con objetos similares a archivos como :class:" "`io.StringIO` que no admiten el atributo :attr:`~io.BufferedIOBase.buffer`." -#: ../Doc/library/sys.rst:1642 +#: ../Doc/library/sys.rst:1789 msgid "" "These objects contain the original values of ``stdin``, ``stderr`` and " "``stdout`` at the start of the program. They are used during finalization, " @@ -3226,7 +3210,7 @@ msgstr "" "podrían ser útiles para imprimir en el flujo estándar real sin importar si " "el objeto ``sys.std*`` ha sido redirigido." -#: ../Doc/library/sys.rst:1647 +#: ../Doc/library/sys.rst:1794 msgid "" "It can also be used to restore the actual files to known working file " "objects in case they have been overwritten with a broken object. However, " @@ -3239,7 +3223,7 @@ msgstr "" "explícitamente la secuencia anterior antes de reemplazarla y restaurar el " "objeto guardado." -#: ../Doc/library/sys.rst:1653 +#: ../Doc/library/sys.rst:1800 msgid "" "Under some conditions ``stdin``, ``stdout`` and ``stderr`` as well as the " "original values ``__stdin__``, ``__stdout__`` and ``__stderr__`` can be " @@ -3252,14 +3236,14 @@ msgstr "" "conectadas a una consola y las aplicaciones Python que comienzan con :" "program:`pythonw`." -#: ../Doc/library/sys.rst:1661 +#: ../Doc/library/sys.rst:1808 msgid "" "A frozenset of strings containing the names of standard library modules." msgstr "" "Un fronzenset de strings que contiene los nombres de los módulos de la " "librería estándar." -#: ../Doc/library/sys.rst:1663 +#: ../Doc/library/sys.rst:1810 msgid "" "It is the same on all platforms. Modules which are not available on some " "platforms and modules disabled at Python build are also listed. All module " @@ -3272,7 +3256,7 @@ msgstr "" "incorporados, congelados y módulos de extensión. Módulos de prueba son " "excluidos." -#: ../Doc/library/sys.rst:1668 +#: ../Doc/library/sys.rst:1815 msgid "" "For packages, only the main package is listed: sub-packages and sub-modules " "are not listed. For example, the ``email`` package is listed, but the " @@ -3283,80 +3267,77 @@ msgstr "" "son listados. Por ejemplo, el paquete ``email`` es listado, pero el sub-" "paquete ``email.mime`` y el sub-módulo ``email.message`` no es listado." -#: ../Doc/library/sys.rst:1673 -msgid "See also the :attr:`sys.builtin_module_names` list." +#: ../Doc/library/sys.rst:1820 +#, fuzzy +msgid "See also the :data:`sys.builtin_module_names` list." msgstr "También ver la lista :attr:`sys.builtin_module_names`." -#: ../Doc/library/sys.rst:1680 +#: ../Doc/library/sys.rst:1827 msgid "" "A :term:`named tuple` holding information about the thread implementation." msgstr "" "Un :term:`named tuple` que contiene información sobre la implementación del " "hilo." -#: ../Doc/library/sys.rst:1688 -msgid ":const:`name`" -msgstr ":const:`name`" - -#: ../Doc/library/sys.rst:1688 -msgid "Name of the thread implementation:" +#: ../Doc/library/sys.rst:1832 +#, fuzzy +msgid "The name of the thread implementation:" msgstr "Nombre de la implementación de hilos (*thread implementation*):" -#: ../Doc/library/sys.rst:1690 -msgid "``'nt'``: Windows threads" +#: ../Doc/library/sys.rst:1834 +#, fuzzy +msgid "``\"nt\"``: Windows threads" msgstr "``'nt'``: hilos de Windows" -#: ../Doc/library/sys.rst:1691 -msgid "``'pthread'``: POSIX threads" +#: ../Doc/library/sys.rst:1835 +#, fuzzy +msgid "``\"pthread\"``: POSIX threads" msgstr "``'pthread'``: hilos de POSIX" -#: ../Doc/library/sys.rst:1692 +#: ../Doc/library/sys.rst:1836 #, fuzzy msgid "" -"``'pthread-stubs'``: stub POSIX threads (on WebAssembly platforms without " +"``\"pthread-stubs\"``: stub POSIX threads (on WebAssembly platforms without " "threading support)" msgstr "" "``'pthread-stubs'``: stub de hilos POSIX (en plataformas WebAssembly sin " "soporte de hilos)" -#: ../Doc/library/sys.rst:1694 -msgid "``'solaris'``: Solaris threads" +#: ../Doc/library/sys.rst:1838 +#, fuzzy +msgid "``\"solaris\"``: Solaris threads" msgstr "``'solaris'``: hilos de Solaris" -#: ../Doc/library/sys.rst:1696 -msgid ":const:`lock`" -msgstr ":const:`lock`" - -#: ../Doc/library/sys.rst:1696 -msgid "Name of the lock implementation:" +#: ../Doc/library/sys.rst:1842 +#, fuzzy +msgid "The name of the lock implementation:" msgstr "Nombre de la implementación de bloqueo (*lock implementation*):" -#: ../Doc/library/sys.rst:1698 -msgid "``'semaphore'``: a lock uses a semaphore" +#: ../Doc/library/sys.rst:1844 +#, fuzzy +msgid "``\"semaphore\"``: a lock uses a semaphore" msgstr "``'semaphore'``: un bloqueo que utiliza un semáforo" -#: ../Doc/library/sys.rst:1699 -msgid "``'mutex+cond'``: a lock uses a mutex and a condition variable" +#: ../Doc/library/sys.rst:1845 +#, fuzzy +msgid "``\"mutex+cond\"``: a lock uses a mutex and a condition variable" msgstr "" "``'mutex+cond'``: un bloqueo que utiliza un mutex y una variable de condición" -#: ../Doc/library/sys.rst:1701 +#: ../Doc/library/sys.rst:1846 msgid "``None`` if this information is unknown" msgstr "``None`` si esta información es desconocida" -#: ../Doc/library/sys.rst:1703 -msgid ":const:`version`" -msgstr ":const:`version`" - -#: ../Doc/library/sys.rst:1703 +#: ../Doc/library/sys.rst:1850 +#, fuzzy msgid "" -"Name and version of the thread library. It is a string, or ``None`` if this " -"information is unknown." +"The name and version of the thread library. It is a string, or ``None`` if " +"this information is unknown." msgstr "" "Nombre y versión de la biblioteca de subprocesos. Es una cadena de " "caracteres, o ``None`` si se desconoce esta información." -#: ../Doc/library/sys.rst:1712 +#: ../Doc/library/sys.rst:1858 msgid "" "When this variable is set to an integer value, it determines the maximum " "number of levels of traceback information printed when an unhandled " @@ -3370,11 +3351,11 @@ msgstr "" "establece en ``0`` o menos, toda la información de rastreo se suprime y solo " "se imprimen el tipo y el valor de excepción." -#: ../Doc/library/sys.rst:1720 +#: ../Doc/library/sys.rst:1866 msgid "Handle an unraisable exception." msgstr "Maneja una excepción que no se puede lanzar." -#: ../Doc/library/sys.rst:1722 +#: ../Doc/library/sys.rst:1868 msgid "" "Called when an exception has occurred but there is no way for Python to " "handle it. For example, when a destructor raises an exception or during " @@ -3384,40 +3365,47 @@ msgstr "" "Python la maneje. Por ejemplo, cuando un destructor lanza una excepción o " "durante la recolección de basura (:func:`gc.collect`)." -#: ../Doc/library/sys.rst:1726 +#: ../Doc/library/sys.rst:1872 msgid "The *unraisable* argument has the following attributes:" msgstr "El argumento *unraisable* tiene los siguientes atributos:" -#: ../Doc/library/sys.rst:1728 -msgid "*exc_type*: Exception type." +#: ../Doc/library/sys.rst:1874 +#, fuzzy +msgid ":attr:`!exc_type`: Exception type." msgstr "*exc_type*: Tipo de excepción." -#: ../Doc/library/sys.rst:1729 -msgid "*exc_value*: Exception value, can be ``None``." +#: ../Doc/library/sys.rst:1875 +#, fuzzy +msgid ":attr:`!exc_value`: Exception value, can be ``None``." msgstr "*exc_value*: Valor de excepción, puede ser ``None``." -#: ../Doc/library/sys.rst:1730 -msgid "*exc_traceback*: Exception traceback, can be ``None``." +#: ../Doc/library/sys.rst:1876 +#, fuzzy +msgid ":attr:`!exc_traceback`: Exception traceback, can be ``None``." msgstr "*exc_traceback*: Rastreo de excepción, puede ser ``None``." -#: ../Doc/library/sys.rst:1731 -msgid "*err_msg*: Error message, can be ``None``." +#: ../Doc/library/sys.rst:1877 +#, fuzzy +msgid ":attr:`!err_msg`: Error message, can be ``None``." msgstr "*err_msg*: Mensaje de error, puede ser ``None``." -#: ../Doc/library/sys.rst:1732 -msgid "*object*: Object causing the exception, can be ``None``." +#: ../Doc/library/sys.rst:1878 +#, fuzzy +msgid ":attr:`!object`: Object causing the exception, can be ``None``." msgstr "*objeto*: Objeto que causa la excepción, puede ser ``None``." -#: ../Doc/library/sys.rst:1734 +#: ../Doc/library/sys.rst:1880 +#, fuzzy msgid "" -"The default hook formats *err_msg* and *object* as: ``f'{err_msg}: {object!" -"r}'``; use \"Exception ignored in\" error message if *err_msg* is ``None``." +"The default hook formats :attr:`!err_msg` and :attr:`!object` as: " +"``f'{err_msg}: {object!r}'``; use \"Exception ignored in\" error message if :" +"attr:`!err_msg` is ``None``." msgstr "" "Los formatos de gancho predeterminados *err_msg* y *object* como: " "``f'{err_msg}:{object!R}'``; use el mensaje de error \"Excepción ignorada " "en\" si *err_msg* es ``None``." -#: ../Doc/library/sys.rst:1738 +#: ../Doc/library/sys.rst:1884 msgid "" ":func:`sys.unraisablehook` can be overridden to control how unraisable " "exceptions are handled." @@ -3425,32 +3413,35 @@ msgstr "" ":func:`sys.unraisablehook` se puede anular para controlar cómo se manejan " "las excepciones que no se pueden evaluar." -#: ../Doc/library/sys.rst:1741 +#: ../Doc/library/sys.rst:1889 +#, fuzzy +msgid ":func:`excepthook` which handles uncaught exceptions." +msgstr "Véase también :func:`excepthook` que maneja excepciones no capturadas." + +#: ../Doc/library/sys.rst:1893 +#, fuzzy msgid "" -"Storing *exc_value* using a custom hook can create a reference cycle. It " -"should be cleared explicitly to break the reference cycle when the exception " -"is no longer needed." +"Storing :attr:`!exc_value` using a custom hook can create a reference cycle. " +"It should be cleared explicitly to break the reference cycle when the " +"exception is no longer needed." msgstr "" "Almacenar *exc_value* usando un gancho personalizado puede crear un ciclo de " "referencia. Debe borrarse explícitamente para romper el ciclo de referencia " "cuando la excepción ya no sea necesaria." -#: ../Doc/library/sys.rst:1745 +#: ../Doc/library/sys.rst:1897 +#, fuzzy msgid "" -"Storing *object* using a custom hook can resurrect it if it is set to an " -"object which is being finalized. Avoid storing *object* after the custom " -"hook completes to avoid resurrecting objects." +"Storing :attr:`!object` using a custom hook can resurrect it if it is set to " +"an object which is being finalized. Avoid storing :attr:`!object` after the " +"custom hook completes to avoid resurrecting objects." msgstr "" "Almacenar *object* usando un gancho personalizado puede resucitarlo si se " "establece en un objeto que se está finalizando. Evite almacenar *object* " "después de que se complete el gancho personalizado para evitar resucitar " "objetos." -#: ../Doc/library/sys.rst:1749 -msgid "See also :func:`excepthook` which handles uncaught exceptions." -msgstr "Véase también :func:`excepthook` que maneja excepciones no capturadas." - -#: ../Doc/library/sys.rst:1751 +#: ../Doc/library/sys.rst:1901 #, fuzzy msgid "" "Raises an :ref:`auditing event ` ``sys.unraisablehook`` with " @@ -3459,19 +3450,20 @@ msgstr "" "Lanza un :ref:`auditing event ` ``cpython.run_interactivehook`` " "con el argumento ``hook``." -#: ../Doc/library/sys.rst:1753 +#: ../Doc/library/sys.rst:1903 +#, fuzzy msgid "" -"Raise an auditing event ``sys.unraisablehook`` with arguments ``hook``, " -"``unraisable`` when an exception that cannot be handled occurs. The " -"``unraisable`` object is the same as what will be passed to the hook. If no " -"hook has been set, ``hook`` may be ``None``." +"Raise an auditing event ``sys.unraisablehook`` with arguments *hook*, " +"*unraisable* when an exception that cannot be handled occurs. The " +"*unraisable* object is the same as what will be passed to the hook. If no " +"hook has been set, *hook* may be ``None``." msgstr "" "Lanza un evento de auditoría ``sys.unraisablehook`` con argumentos ``hook``, " "``unraisable`` cuando ocurre una excepción que no se puede manejar. El " "objeto ``no lanzable`` es el mismo que se pasará al gancho. Si no se ha " "colocado ningún gancho, ``hook`` puede ser ``None``." -#: ../Doc/library/sys.rst:1762 +#: ../Doc/library/sys.rst:1912 msgid "" "A string containing the version number of the Python interpreter plus " "additional information on the build number and compiler used. This string " @@ -3486,7 +3478,7 @@ msgstr "" "data:`version_info` y las funciones proporcionadas por el módulo :mod:" "`platform`." -#: ../Doc/library/sys.rst:1771 +#: ../Doc/library/sys.rst:1921 msgid "" "The C API version for this interpreter. Programmers may find this useful " "when debugging version conflicts between Python and extension modules." @@ -3495,7 +3487,7 @@ msgstr "" "esto útil al depurar conflictos de versiones entre Python y módulos de " "extensión." -#: ../Doc/library/sys.rst:1777 +#: ../Doc/library/sys.rst:1927 msgid "" "A tuple containing the five components of the version number: *major*, " "*minor*, *micro*, *releaselevel*, and *serial*. All values except " @@ -3514,11 +3506,11 @@ msgstr "" "version_info[0]`` es equivalente a ``sys.version_info.major`` y así " "sucesivamente." -#: ../Doc/library/sys.rst:1785 +#: ../Doc/library/sys.rst:1935 msgid "Added named component attributes." msgstr "Se agregaron atributos de componentes con nombre." -#: ../Doc/library/sys.rst:1790 +#: ../Doc/library/sys.rst:1940 msgid "" "This is an implementation detail of the warnings framework; do not modify " "this value. Refer to the :mod:`warnings` module for more information on the " @@ -3528,13 +3520,14 @@ msgstr "" "este valor. Consulte el módulo :mod:`warnings` para obtener más información " "sobre el marco de advertencias." -#: ../Doc/library/sys.rst:1797 +#: ../Doc/library/sys.rst:1947 +#, fuzzy msgid "" "The version number used to form registry keys on Windows platforms. This is " "stored as string resource 1000 in the Python DLL. The value is normally the " -"first three characters of :const:`version`. It is provided in the :mod:" -"`sys` module for informational purposes; modifying this value has no effect " -"on the registry keys used by Python." +"major and minor versions of the running Python interpreter. It is provided " +"in the :mod:`sys` module for informational purposes; modifying this value " +"has no effect on the registry keys used by Python." msgstr "" "El número de versión utilizado para formar claves de registro en plataformas " "Windows. Esto se almacena como recurso de cadena 1000 en la DLL de Python. " @@ -3543,7 +3536,13 @@ msgstr "" "modificación de este valor no tiene ningún efecto sobre las claves de " "registro que utiliza Python." -#: ../Doc/library/sys.rst:1808 +#: ../Doc/library/sys.rst:1959 +msgid "" +"Namespace containing functions and constants for register callbacks and " +"controlling monitoring events. See :mod:`sys.monitoring` for details." +msgstr "" + +#: ../Doc/library/sys.rst:1965 msgid "" "A dictionary of the various implementation-specific flags passed through " "the :option:`-X` command-line option. Option names are either mapped to " @@ -3554,7 +3553,7 @@ msgstr "" "opciones se asignan a sus valores, si se dan explícitamente, o a :const:" "`True`. Ejemplo:" -#: ../Doc/library/sys.rst:1824 +#: ../Doc/library/sys.rst:1981 msgid "" "This is a CPython-specific way of accessing options passed through :option:`-" "X`. Other implementations may export them through other means, or not at " @@ -3564,11 +3563,11 @@ msgstr "" "pasan a través de :option:`-X`. Otras implementaciones pueden exportarlos a " "través de otros medios, o no exportarlos." -#: ../Doc/library/sys.rst:1832 +#: ../Doc/library/sys.rst:1989 msgid "Citations" msgstr "Citas" -#: ../Doc/library/sys.rst:1833 +#: ../Doc/library/sys.rst:1990 #, fuzzy msgid "" "ISO/IEC 9899:1999. \"Programming languages -- C.\" A public draft of this " @@ -3578,3 +3577,236 @@ msgstr "" "*ISO/IEC 9899:1999. \"Programming languages -- C.\" A public draft of this " "standard is available at http://www.open-std.org/jtc1/sc22/wg14/www/docs/" "n1256.pdf*\\ ." + +#: ../Doc/library/sys.rst:97 +msgid "auditing" +msgstr "" + +#: ../Doc/library/sys.rst:445 +msgid "object" +msgstr "" + +#: ../Doc/library/sys.rst:445 +msgid "traceback" +msgstr "" + +#: ../Doc/library/sys.rst:906 ../Doc/library/sys.rst:1459 +msgid "profile function" +msgstr "" + +#: ../Doc/library/sys.rst:906 ../Doc/library/sys.rst:1459 +msgid "profiler" +msgstr "" + +#: ../Doc/library/sys.rst:915 ../Doc/library/sys.rst:1536 +msgid "trace function" +msgstr "" + +#: ../Doc/library/sys.rst:915 ../Doc/library/sys.rst:1536 +msgid "debugger" +msgstr "" + +#: ../Doc/library/sys.rst:1282 +msgid "module" +msgstr "" + +#: ../Doc/library/sys.rst:1282 +msgid "search" +msgstr "" + +#: ../Doc/library/sys.rst:1282 +msgid "path" +msgstr "" + +#: ../Doc/library/sys.rst:1423 +msgid "interpreter prompts" +msgstr "" + +#: ../Doc/library/sys.rst:1423 +msgid "prompts, interpreter" +msgstr "" + +#: ../Doc/library/sys.rst:1423 +msgid ">>>" +msgstr "" + +#: ../Doc/library/sys.rst:1423 +msgid "interpreter prompt" +msgstr "" + +#: ../Doc/library/sys.rst:1423 +msgid "..." +msgstr "" + +#~ msgid "Attribute" +#~ msgstr "Atributo" + +#~ msgid "Explanation" +#~ msgstr "Explicación" + +#~ msgid ":const:`emscripten_version`" +#~ msgstr ":const:`version`" + +#~ msgid ":const:`runtime`" +#~ msgstr ":const:`name`" + +#~ msgid ":const:`pthreads`" +#~ msgstr ":const:`radix`" + +#~ msgid ":const:`shared_memory`" +#~ msgstr ":const:`name`" + +#~ msgid "flag" +#~ msgstr "flag" + +#~ msgid ":const:`debug`" +#~ msgstr ":const:`debug`" + +#~ msgid ":const:`inspect`" +#~ msgstr ":const:`inspect`" + +#~ msgid ":const:`interactive`" +#~ msgstr ":const:`interactive`" + +#~ msgid ":const:`isolated`" +#~ msgstr ":const:`isolated`" + +#~ msgid ":const:`optimize`" +#~ msgstr ":const:`optimize`" + +#~ msgid ":const:`dont_write_bytecode`" +#~ msgstr ":const:`dont_write_bytecode`" + +#~ msgid ":const:`no_user_site`" +#~ msgstr ":const:`no_user_site`" + +#~ msgid ":const:`no_site`" +#~ msgstr ":const:`no_site`" + +#~ msgid ":const:`ignore_environment`" +#~ msgstr ":const:`ignore_environment`" + +#~ msgid ":const:`verbose`" +#~ msgstr ":const:`verbose`" + +#~ msgid ":const:`bytes_warning`" +#~ msgstr ":const:`bytes_warning`" + +#~ msgid ":const:`quiet`" +#~ msgstr ":const:`quiet`" + +#~ msgid ":const:`hash_randomization`" +#~ msgstr ":const:`hash_randomization`" + +#~ msgid ":const:`dev_mode`" +#~ msgstr ":const:`dev_mode`" + +#~ msgid ":const:`utf8_mode`" +#~ msgstr ":const:`utf8_mode`" + +#~ msgid ":const:`safe_path`" +#~ msgstr ":const:`seed_bits`" + +#~ msgid ":const:`int_max_str_digits`" +#~ msgstr ":const:`bits_per_digit`" + +#~ msgid "DBL_EPSILON" +#~ msgstr "DBL_EPSILON" + +#~ msgid ":const:`dig`" +#~ msgstr ":const:`dig`" + +#~ msgid "DBL_DIG" +#~ msgstr "DBL_DIG" + +#~ msgid "DBL_MANT_DIG" +#~ msgstr "DBL_MANT_DIG" + +#~ msgid ":const:`max`" +#~ msgstr ":const:`max`" + +#~ msgid "DBL_MAX" +#~ msgstr "DBL_MAX" + +#~ msgid "DBL_MAX_EXP" +#~ msgstr "DBL_MAX_EXP" + +#~ msgid "DBL_MAX_10_EXP" +#~ msgstr "DBL_MAX_10_EXP" + +#~ msgid ":const:`min`" +#~ msgstr ":const:`min`" + +#~ msgid "DBL_MIN" +#~ msgstr "DBL_MIN" + +#~ msgid "DBL_MIN_EXP" +#~ msgstr "DBL_MIN_EXP" + +#~ msgid "DBL_MIN_10_EXP" +#~ msgstr "DBL_MIN_10_EXP" + +#~ msgid "FLT_RADIX" +#~ msgstr "FLT_RADIX" + +#~ msgid "FLT_ROUNDS" +#~ msgstr "FLT_ROUNDS" + +#~ msgid ":const:`width`" +#~ msgstr ":const:`width`" + +#~ msgid ":const:`modulus`" +#~ msgstr ":const:`modulus`" + +#~ msgid ":const:`inf`" +#~ msgstr ":const:`inf`" + +#~ msgid ":const:`nan`" +#~ msgstr ":const:`nan`" + +#~ msgid ":const:`imag`" +#~ msgstr ":const:`imag`" + +#~ msgid ":const:`algorithm`" +#~ msgstr ":const:`algorithm`" + +#~ msgid ":const:`hash_bits`" +#~ msgstr ":const:`hash_bits`" + +#~ msgid ":const:`seed_bits`" +#~ msgstr ":const:`seed_bits`" + +#~ msgid ":const:`bits_per_digit`" +#~ msgstr ":const:`bits_per_digit`" + +#~ msgid ":const:`sizeof_digit`" +#~ msgstr ":const:`sizeof_digit`" + +#~ msgid ":const:`default_max_str_digits`" +#~ msgstr ":const:`mant_dig`" + +#~ msgid ":const:`str_digits_check_threshold`" +#~ msgstr ":const:`str_digits_check_threshold`" + +#~ msgid "" +#~ "The meaning of the variables is the same as that of the return values " +#~ "from :func:`exc_info` above." +#~ msgstr "" +#~ "El significado de las variables es el mismo que el de los valores " +#~ "retornados de :func:`exc_info` arriba." + +#~ msgid "" +#~ "``None`` is stored instead of :class:`imp.NullImporter` when no finder is " +#~ "found." +#~ msgstr "" +#~ "``None`` se almacena en lugar de :class:`imp.NullImporter` cuando no se " +#~ "encuentra ningún buscador." + +#~ msgid ":const:`name`" +#~ msgstr ":const:`name`" + +#~ msgid ":const:`lock`" +#~ msgstr ":const:`lock`" + +#~ msgid ":const:`version`" +#~ msgstr ":const:`version`" diff --git a/library/sysconfig.po b/library/sysconfig.po index c36a98d94a..f609bc9a77 100644 --- a/library/sysconfig.po +++ b/library/sysconfig.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-04 19:47-0300\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/sysconfig.rst:2 msgid "" @@ -43,22 +42,23 @@ msgstr "" "configuración de Python, como la lista de rutas de instalación y las " "variables de configuración relevantes para la plataforma actual." -#: ../Doc/library/sysconfig.rst:24 +#: ../Doc/library/sysconfig.rst:25 msgid "Configuration variables" msgstr "Variables de configuración" -#: ../Doc/library/sysconfig.rst:26 +#: ../Doc/library/sysconfig.rst:27 +#, fuzzy msgid "" "A Python distribution contains a :file:`Makefile` and a :file:`pyconfig.h` " "header file that are necessary to build both the Python binary itself and " -"third-party C extensions compiled using :mod:`distutils`." +"third-party C extensions compiled using ``setuptools``." msgstr "" "Una distribución de Python contiene un :file:`Makefile` y un archivo de " "cabecera :file:`pyconfig.h` que son necesarios para construir tanto el " "propio binario de Python como las extensiones C de terceros compiladas " "usando :mod:`distutils`." -#: ../Doc/library/sysconfig.rst:30 +#: ../Doc/library/sysconfig.rst:31 msgid "" ":mod:`sysconfig` puts all variables found in these files in a dictionary " "that can be accessed using :func:`get_config_vars` or :func:`get_config_var`." @@ -67,11 +67,11 @@ msgstr "" "archivos un diccionario al que se puede acceder usando :func:" "`get_config_vars` o :func:`get_config_var`." -#: ../Doc/library/sysconfig.rst:33 +#: ../Doc/library/sysconfig.rst:34 msgid "Notice that on Windows, it's a much smaller set." msgstr "Tenga en cuenta que en Windows, es un conjunto mucho más pequeño." -#: ../Doc/library/sysconfig.rst:37 +#: ../Doc/library/sysconfig.rst:38 msgid "" "With no arguments, return a dictionary of all configuration variables " "relevant for the current platform." @@ -79,7 +79,7 @@ msgstr "" "Sin argumentos, retorna un diccionario de todas las variables de " "configuración relevantes para la plataforma actual." -#: ../Doc/library/sysconfig.rst:40 +#: ../Doc/library/sysconfig.rst:41 msgid "" "With arguments, return a list of values that result from looking up each " "argument in the configuration variable dictionary." @@ -87,11 +87,11 @@ msgstr "" "Con argumentos, retorna un lista de valores que resultan de buscar cada " "argumento en el diccionario de variables de configuración." -#: ../Doc/library/sysconfig.rst:43 +#: ../Doc/library/sysconfig.rst:44 msgid "For each argument, if the value is not found, return ``None``." msgstr "Por cada argumento, si no se encuentra el valor, retorna ``None``." -#: ../Doc/library/sysconfig.rst:48 +#: ../Doc/library/sysconfig.rst:49 msgid "" "Return the value of a single variable *name*. Equivalent to " "``get_config_vars().get(name)``." @@ -99,45 +99,37 @@ msgstr "" "Retorna el valor de un solo nombre de variable (*name*). Equivalente a " "``get_config_vars().get(name)``." -#: ../Doc/library/sysconfig.rst:51 +#: ../Doc/library/sysconfig.rst:52 msgid "If *name* is not found, return ``None``." msgstr "Si no se encuentra *name*, retorna ``None``." -#: ../Doc/library/sysconfig.rst:53 +#: ../Doc/library/sysconfig.rst:54 msgid "Example of usage::" msgstr "Ejemplos de uso::" -#: ../Doc/library/sysconfig.rst:66 +#: ../Doc/library/sysconfig.rst:68 msgid "Installation paths" msgstr "Rutas de instalación" -#: ../Doc/library/sysconfig.rst:68 +#: ../Doc/library/sysconfig.rst:70 +#, fuzzy msgid "" "Python uses an installation scheme that differs depending on the platform " "and on the installation options. These schemes are stored in :mod:" "`sysconfig` under unique identifiers based on the value returned by :const:" -"`os.name`." +"`os.name`. The schemes are used by package installers to determine where to " +"copy files to." msgstr "" "Python usa un esquema de instalación que difiere según la plataforma y en " "las opciones de instalación. Estos esquemas son almacenados en :mod:" "`sysconfig` con identificadores únicos basados en el valor retornado por :" "const:`os.name`." -#: ../Doc/library/sysconfig.rst:72 -msgid "" -"Every new component that is installed using :mod:`distutils` or a Distutils-" -"based system will follow the same scheme to copy its file in the right " -"places." -msgstr "" -"Cada nuevo componente que se instala usando :mod:`distutils` o un sistema " -"basado en *Distutils* seguirá el mismo esquema para copiar su archivo en los " -"lugares correctos." - -#: ../Doc/library/sysconfig.rst:76 +#: ../Doc/library/sysconfig.rst:75 msgid "Python currently supports nine schemes:" msgstr "Python actualmente admite nueve esquemas:" -#: ../Doc/library/sysconfig.rst:78 +#: ../Doc/library/sysconfig.rst:77 msgid "" "*posix_prefix*: scheme for POSIX platforms like Linux or macOS. This is the " "default scheme used when Python or a component is installed." @@ -146,64 +138,75 @@ msgstr "" "el esquema predeterminado que se usa cuando se instala Python o un " "componente." -#: ../Doc/library/sysconfig.rst:80 +#: ../Doc/library/sysconfig.rst:79 +#, fuzzy msgid "" -"*posix_home*: scheme for POSIX platforms used when a *home* option is used " -"upon installation. This scheme is used when a component is installed " -"through Distutils with a specific home prefix." +"*posix_home*: scheme for POSIX platforms, when the *home* option is used. " +"This scheme defines paths located under a specific home prefix." msgstr "" -"*posix_home*: esquema para plataformas POSIX usado cuando se usa una opción " -"*home* en la instalación. Este esquema se usa cuando se instala un " -"componente a través de *Disutils* con un prefijo de inicio específico." +"*posix_user*: esquema para plataformas POSIX usado cuando se instala un " +"componente a través de Distutils y se usa la opción *user*. Este esquema " +"define rutas ubicadas bajo el directorio de inicio del usuario." -#: ../Doc/library/sysconfig.rst:83 +#: ../Doc/library/sysconfig.rst:81 +#, fuzzy msgid "" -"*posix_user*: scheme for POSIX platforms used when a component is installed " -"through Distutils and the *user* option is used. This scheme defines paths " -"located under the user home directory." +"*posix_user*: scheme for POSIX platforms, when the *user* option is used. " +"This scheme defines paths located under the user's home directory (:const:" +"`site.USER_BASE`)." msgstr "" "*posix_user*: esquema para plataformas POSIX usado cuando se instala un " "componente a través de Distutils y se usa la opción *user*. Este esquema " "define rutas ubicadas bajo el directorio de inicio del usuario." -#: ../Doc/library/sysconfig.rst:86 +#: ../Doc/library/sysconfig.rst:84 +#, fuzzy msgid "" "*posix_venv*: scheme for :mod:`Python virtual environments ` on POSIX " -"platforms; by default it is the same as *posix_prefix* ." +"platforms; by default it is the same as *posix_prefix*." msgstr "" "*posix_venv*: esquema para :mod:`Entornos virtuales de Python ` en " "plataformas POSIX; por defecto es el mismo que *posix_prefix* ." -#: ../Doc/library/sysconfig.rst:88 -msgid "*nt*: scheme for NT platforms like Windows." -msgstr "*nt*: esquema para plataformas NT como Windows." +#: ../Doc/library/sysconfig.rst:86 +#, fuzzy +msgid "" +"*nt*: scheme for Windows. This is the default scheme used when Python or a " +"component is installed." +msgstr "" +"*posix_prefix*: esquema para plataformas POSIX como Linux o macOS. Este es " +"el esquema predeterminado que se usa cuando se instala Python o un " +"componente." -#: ../Doc/library/sysconfig.rst:89 -msgid "*nt_user*: scheme for NT platforms, when the *user* option is used." +#: ../Doc/library/sysconfig.rst:88 +#, fuzzy +msgid "*nt_user*: scheme for Windows, when the *user* option is used." msgstr "" "*nt_user*: esquema para plataformas NT, cuando se usa la opción *user*." -#: ../Doc/library/sysconfig.rst:90 +#: ../Doc/library/sysconfig.rst:89 +#, fuzzy msgid "" -"*nt_venv*: scheme for :mod:`Python virtual environments ` on NT " -"platforms; by default it is the same as *nt* ." +"*nt_venv*: scheme for :mod:`Python virtual environments ` on Windows; " +"by default it is the same as *nt*." msgstr "" "*nt_venv*: esquema para :mod:`Entornos virtuales de Python ` en " "plataformas NT; por defecto es el mismo que *nt* ." -#: ../Doc/library/sysconfig.rst:92 +#: ../Doc/library/sysconfig.rst:91 +#, fuzzy msgid "" -"*venv*: a scheme with values from ether *posix_venv* or *nt_venv* depending " -"on the platform Python runs on" +"*venv*: a scheme with values from either *posix_venv* or *nt_venv* depending " +"on the platform Python runs on." msgstr "" "*venv*: un esquema con valores como *posix_venv* o *nt_venv* dependiendo de " "la plataforma donde Python está funcionando" -#: ../Doc/library/sysconfig.rst:94 +#: ../Doc/library/sysconfig.rst:93 msgid "*osx_framework_user*: scheme for macOS, when the *user* option is used." msgstr "*nt_user*: esquema para macOS, cuando se usa la opción *user*." -#: ../Doc/library/sysconfig.rst:96 +#: ../Doc/library/sysconfig.rst:95 msgid "" "Each scheme is itself composed of a series of paths and each path has a " "unique identifier. Python currently uses eight paths:" @@ -211,7 +214,7 @@ msgstr "" "Cada esquema está compuesto por una serie de rutas y cada ruta tiene un " "identificador único. Python actualmente usa ocho rutas:" -#: ../Doc/library/sysconfig.rst:99 +#: ../Doc/library/sysconfig.rst:98 msgid "" "*stdlib*: directory containing the standard Python library files that are " "not platform-specific." @@ -219,7 +222,7 @@ msgstr "" "*stdlib*: directorio que contiene los archivos de la biblioteca estándar de " "Python que no son específicos de la plataforma." -#: ../Doc/library/sysconfig.rst:101 +#: ../Doc/library/sysconfig.rst:100 msgid "" "*platstdlib*: directory containing the standard Python library files that " "are platform-specific." @@ -227,19 +230,22 @@ msgstr "" "*platstdlib*: directorio que contiene los archivos de la biblioteca estándar " "de Python que son específicos de la plataforma." -#: ../Doc/library/sysconfig.rst:103 +#: ../Doc/library/sysconfig.rst:102 msgid "*platlib*: directory for site-specific, platform-specific files." msgstr "" "*platlib*: directorio para archivos específicos del sitio, específicos de la " "plataforma." -#: ../Doc/library/sysconfig.rst:104 -msgid "*purelib*: directory for site-specific, non-platform-specific files." +#: ../Doc/library/sysconfig.rst:103 +#, fuzzy +msgid "" +"*purelib*: directory for site-specific, non-platform-specific files ('pure' " +"Python)." msgstr "" "*purelib*: directorio para archivos específicos del sitio, no específicos de " "la plataforma." -#: ../Doc/library/sysconfig.rst:105 +#: ../Doc/library/sysconfig.rst:104 msgid "" "*include*: directory for non-platform-specific header files for the Python C-" "API." @@ -247,7 +253,7 @@ msgstr "" "*include*: directorio para plataformas no especificadas para archivos de " "encabezado de Python C-API." -#: ../Doc/library/sysconfig.rst:107 +#: ../Doc/library/sysconfig.rst:106 msgid "" "*platinclude*: directory for platform-specific header files for the Python C-" "API." @@ -255,20 +261,278 @@ msgstr "" "*include*: directorio para plataformas especificadas para archivos de " "encabezado de Python C-API." -#: ../Doc/library/sysconfig.rst:109 +#: ../Doc/library/sysconfig.rst:108 msgid "*scripts*: directory for script files." msgstr "*scripts*: directorio para archivos de script." -#: ../Doc/library/sysconfig.rst:110 +#: ../Doc/library/sysconfig.rst:109 msgid "*data*: directory for data files." msgstr "*data*: directorio para archivos de datos." -#: ../Doc/library/sysconfig.rst:112 -msgid ":mod:`sysconfig` provides some functions to determine these paths." +#: ../Doc/library/sysconfig.rst:115 +msgid "User scheme" +msgstr "" + +#: ../Doc/library/sysconfig.rst:117 +msgid "" +"This scheme is designed to be the most convenient solution for users that " +"don't have write permission to the global site-packages directory or don't " +"want to install into it." +msgstr "" + +#: ../Doc/library/sysconfig.rst:121 +msgid "" +"Files will be installed into subdirectories of :const:`site.USER_BASE` " +"(written as :file:`{userbase}` hereafter). This scheme installs pure Python " +"modules and extension modules in the same location (also known as :const:" +"`site.USER_SITE`)." +msgstr "" + +#: ../Doc/library/sysconfig.rst:126 +msgid "``posix_user``" +msgstr "" + +#: ../Doc/library/sysconfig.rst:129 ../Doc/library/sysconfig.rst:144 +#: ../Doc/library/sysconfig.rst:159 ../Doc/library/sysconfig.rst:187 +#: ../Doc/library/sysconfig.rst:229 ../Doc/library/sysconfig.rst:245 +msgid "Path" +msgstr "" + +#: ../Doc/library/sysconfig.rst:129 ../Doc/library/sysconfig.rst:144 +#: ../Doc/library/sysconfig.rst:159 ../Doc/library/sysconfig.rst:187 +#: ../Doc/library/sysconfig.rst:229 ../Doc/library/sysconfig.rst:245 +#, fuzzy +msgid "Installation directory" +msgstr "Rutas de instalación" + +#: ../Doc/library/sysconfig.rst:131 ../Doc/library/sysconfig.rst:146 +#: ../Doc/library/sysconfig.rst:161 ../Doc/library/sysconfig.rst:189 +#: ../Doc/library/sysconfig.rst:231 ../Doc/library/sysconfig.rst:247 +msgid "*stdlib*" +msgstr "" + +#: ../Doc/library/sysconfig.rst:131 ../Doc/library/sysconfig.rst:132 +msgid ":file:`{userbase}/lib/python{X.Y}`" +msgstr "" + +#: ../Doc/library/sysconfig.rst:132 ../Doc/library/sysconfig.rst:147 +#: ../Doc/library/sysconfig.rst:162 ../Doc/library/sysconfig.rst:190 +#: ../Doc/library/sysconfig.rst:232 ../Doc/library/sysconfig.rst:248 +msgid "*platstdlib*" +msgstr "" + +#: ../Doc/library/sysconfig.rst:133 ../Doc/library/sysconfig.rst:148 +#: ../Doc/library/sysconfig.rst:163 ../Doc/library/sysconfig.rst:191 +#: ../Doc/library/sysconfig.rst:233 ../Doc/library/sysconfig.rst:249 +msgid "*platlib*" +msgstr "" + +#: ../Doc/library/sysconfig.rst:133 ../Doc/library/sysconfig.rst:134 +msgid ":file:`{userbase}/lib/python{X.Y}/site-packages`" +msgstr "" + +#: ../Doc/library/sysconfig.rst:134 ../Doc/library/sysconfig.rst:149 +#: ../Doc/library/sysconfig.rst:164 ../Doc/library/sysconfig.rst:192 +#: ../Doc/library/sysconfig.rst:234 ../Doc/library/sysconfig.rst:250 +msgid "*purelib*" +msgstr "" + +#: ../Doc/library/sysconfig.rst:135 ../Doc/library/sysconfig.rst:150 +#: ../Doc/library/sysconfig.rst:165 ../Doc/library/sysconfig.rst:193 +#: ../Doc/library/sysconfig.rst:235 ../Doc/library/sysconfig.rst:251 +msgid "*include*" +msgstr "" + +#: ../Doc/library/sysconfig.rst:135 ../Doc/library/sysconfig.rst:165 +msgid ":file:`{userbase}/include/python{X.Y}`" +msgstr "" + +#: ../Doc/library/sysconfig.rst:136 ../Doc/library/sysconfig.rst:151 +#: ../Doc/library/sysconfig.rst:166 ../Doc/library/sysconfig.rst:195 +#: ../Doc/library/sysconfig.rst:237 ../Doc/library/sysconfig.rst:253 +msgid "*scripts*" +msgstr "" + +#: ../Doc/library/sysconfig.rst:136 ../Doc/library/sysconfig.rst:166 +msgid ":file:`{userbase}/bin`" +msgstr "" + +#: ../Doc/library/sysconfig.rst:137 ../Doc/library/sysconfig.rst:152 +#: ../Doc/library/sysconfig.rst:167 ../Doc/library/sysconfig.rst:196 +#: ../Doc/library/sysconfig.rst:238 ../Doc/library/sysconfig.rst:254 +msgid "*data*" +msgstr "" + +#: ../Doc/library/sysconfig.rst:137 ../Doc/library/sysconfig.rst:152 +#: ../Doc/library/sysconfig.rst:167 +msgid ":file:`{userbase}`" +msgstr "" + +#: ../Doc/library/sysconfig.rst:141 +msgid "``nt_user``" +msgstr "" + +#: ../Doc/library/sysconfig.rst:146 ../Doc/library/sysconfig.rst:147 +msgid ":file:`{userbase}\\\\Python{XY}`" +msgstr "" + +#: ../Doc/library/sysconfig.rst:148 ../Doc/library/sysconfig.rst:149 +msgid ":file:`{userbase}\\\\Python{XY}\\\\site-packages`" +msgstr "" + +#: ../Doc/library/sysconfig.rst:150 +msgid ":file:`{userbase}\\\\Python{XY}\\\\Include`" +msgstr "" + +#: ../Doc/library/sysconfig.rst:151 +msgid ":file:`{userbase}\\\\Python{XY}\\\\Scripts`" +msgstr "" + +#: ../Doc/library/sysconfig.rst:156 +msgid "``osx_framework_user``" +msgstr "" + +#: ../Doc/library/sysconfig.rst:161 ../Doc/library/sysconfig.rst:162 +msgid ":file:`{userbase}/lib/python`" +msgstr "" + +#: ../Doc/library/sysconfig.rst:163 ../Doc/library/sysconfig.rst:164 +msgid ":file:`{userbase}/lib/python/site-packages`" +msgstr "" + +#: ../Doc/library/sysconfig.rst:174 +msgid "Home scheme" +msgstr "" + +#: ../Doc/library/sysconfig.rst:176 +msgid "" +"The idea behind the \"home scheme\" is that you build and maintain a " +"personal stash of Python modules. This scheme's name is derived from the " +"idea of a \"home\" directory on Unix, since it's not unusual for a Unix user " +"to make their home directory have a layout similar to :file:`/usr/` or :file:" +"`/usr/local/`. This scheme can be used by anyone, regardless of the " +"operating system they are installing for." +msgstr "" + +#: ../Doc/library/sysconfig.rst:184 +msgid "``posix_home``" +msgstr "" + +#: ../Doc/library/sysconfig.rst:189 ../Doc/library/sysconfig.rst:190 +#: ../Doc/library/sysconfig.rst:191 ../Doc/library/sysconfig.rst:192 +msgid ":file:`{home}/lib/python`" +msgstr "" + +#: ../Doc/library/sysconfig.rst:193 ../Doc/library/sysconfig.rst:194 +msgid ":file:`{home}/include/python`" +msgstr "" + +#: ../Doc/library/sysconfig.rst:194 ../Doc/library/sysconfig.rst:236 +#: ../Doc/library/sysconfig.rst:252 +msgid "*platinclude*" +msgstr "" + +#: ../Doc/library/sysconfig.rst:195 +msgid ":file:`{home}/bin`" +msgstr "" + +#: ../Doc/library/sysconfig.rst:196 +msgid ":file:`{home}`" +msgstr "" + +#: ../Doc/library/sysconfig.rst:203 +msgid "Prefix scheme" +msgstr "" + +#: ../Doc/library/sysconfig.rst:205 +msgid "" +"The \"prefix scheme\" is useful when you wish to use one Python installation " +"to perform the build/install (i.e., to run the setup script), but install " +"modules into the third-party module directory of a different Python " +"installation (or something that looks like a different Python " +"installation). If this sounds a trifle unusual, it is---that's why the user " +"and home schemes come before. However, there are at least two known cases " +"where the prefix scheme will be useful." +msgstr "" + +#: ../Doc/library/sysconfig.rst:212 +msgid "" +"First, consider that many Linux distributions put Python in :file:`/usr`, " +"rather than the more traditional :file:`/usr/local`. This is entirely " +"appropriate, since in those cases Python is part of \"the system\" rather " +"than a local add-on. However, if you are installing Python modules from " +"source, you probably want them to go in :file:`/usr/local/lib/python2.{X}` " +"rather than :file:`/usr/lib/python2.{X}`." +msgstr "" + +#: ../Doc/library/sysconfig.rst:219 +msgid "" +"Another possibility is a network filesystem where the name used to write to " +"a remote directory is different from the name used to read it: for example, " +"the Python interpreter accessed as :file:`/usr/local/bin/python` might " +"search for modules in :file:`/usr/local/lib/python2.{X}`, but those modules " +"would have to be installed to, say, :file:`/mnt/{@server}/export/lib/python2." +"{X}`." +msgstr "" + +#: ../Doc/library/sysconfig.rst:226 +msgid "``posix_prefix``" +msgstr "" + +#: ../Doc/library/sysconfig.rst:231 ../Doc/library/sysconfig.rst:232 +msgid ":file:`{prefix}/lib/python{X.Y}`" +msgstr "" + +#: ../Doc/library/sysconfig.rst:233 ../Doc/library/sysconfig.rst:234 +msgid ":file:`{prefix}/lib/python{X.Y}/site-packages`" +msgstr "" + +#: ../Doc/library/sysconfig.rst:235 ../Doc/library/sysconfig.rst:236 +msgid ":file:`{prefix}/include/python{X.Y}`" +msgstr "" + +#: ../Doc/library/sysconfig.rst:237 +msgid ":file:`{prefix}/bin`" +msgstr "" + +#: ../Doc/library/sysconfig.rst:238 ../Doc/library/sysconfig.rst:254 +msgid ":file:`{prefix}`" +msgstr "" + +#: ../Doc/library/sysconfig.rst:242 +msgid "``nt``" +msgstr "" + +#: ../Doc/library/sysconfig.rst:247 ../Doc/library/sysconfig.rst:248 +msgid ":file:`{prefix}\\\\Lib`" +msgstr "" + +#: ../Doc/library/sysconfig.rst:249 ../Doc/library/sysconfig.rst:250 +msgid ":file:`{prefix}\\\\Lib\\\\site-packages`" +msgstr "" + +#: ../Doc/library/sysconfig.rst:251 ../Doc/library/sysconfig.rst:252 +msgid ":file:`{prefix}\\\\Include`" +msgstr "" + +#: ../Doc/library/sysconfig.rst:253 +msgid ":file:`{prefix}\\\\Scripts`" +msgstr "" + +#: ../Doc/library/sysconfig.rst:259 +#, fuzzy +msgid "Installation path functions" +msgstr "Rutas de instalación" + +#: ../Doc/library/sysconfig.rst:261 +#, fuzzy +msgid "" +":mod:`sysconfig` provides some functions to determine these installation " +"paths." msgstr "" ":mod:`sysconfig` proporciona algunas funciones para determinar estas rutas." -#: ../Doc/library/sysconfig.rst:116 +#: ../Doc/library/sysconfig.rst:265 msgid "" "Return a tuple containing all schemes currently supported in :mod:" "`sysconfig`." @@ -276,12 +540,12 @@ msgstr "" "Retorna una tupla que contiene todos los esquemas admitidos actualmente en :" "mod:`sysconfig`." -#: ../Doc/library/sysconfig.rst:122 +#: ../Doc/library/sysconfig.rst:271 msgid "Return the default scheme name for the current platform." msgstr "" "Retorna el nombre del esquema predeterminado para la plataforma actual." -#: ../Doc/library/sysconfig.rst:124 +#: ../Doc/library/sysconfig.rst:273 msgid "" "This function was previously named ``_get_default_scheme()`` and considered " "an implementation detail." @@ -289,25 +553,25 @@ msgstr "" "Esta función se llamaba anteriormente ``_get_default_scheme()`` y se " "consideraba un detalle de implementación." -#: ../Doc/library/sysconfig.rst:128 +#: ../Doc/library/sysconfig.rst:277 msgid "" "When Python runs from a virtual environment, the *venv* scheme is returned." msgstr "" "Cuando Python se ejecuta desde un entorno virtual, este retorna el esquema " "*venv*." -#: ../Doc/library/sysconfig.rst:134 +#: ../Doc/library/sysconfig.rst:283 msgid "" "Return a preferred scheme name for an installation layout specified by *key*." msgstr "" "Retorna un nombre de esquema preferido para un diseño de instalación " "especificado por *key*." -#: ../Doc/library/sysconfig.rst:136 +#: ../Doc/library/sysconfig.rst:285 msgid "*key* must be either ``\"prefix\"``, ``\"home\"``, or ``\"user\"``." msgstr "*key* debe ser ``\"prefix\"``, ``\"home\"`` o ``\"user\"``." -#: ../Doc/library/sysconfig.rst:138 +#: ../Doc/library/sysconfig.rst:287 msgid "" "The return value is a scheme name listed in :func:`get_scheme_names`. It can " "be passed to :mod:`sysconfig` functions that take a *scheme* argument, such " @@ -317,7 +581,7 @@ msgstr "" "`get_scheme_names`. Se puede pasar a funciones :mod:`sysconfig` que toman un " "argumento *scheme*, como :func:`get_paths`." -#: ../Doc/library/sysconfig.rst:144 +#: ../Doc/library/sysconfig.rst:293 msgid "" "When Python runs from a virtual environment and ``key=\"prefix\"``, the " "*venv* scheme is returned." @@ -325,7 +589,7 @@ msgstr "" "Cuando Python se ejecuta desde un entorno virtual con ``key=\"prefix\"``, " "este retorna el esquema *venv*." -#: ../Doc/library/sysconfig.rst:151 +#: ../Doc/library/sysconfig.rst:300 msgid "" "Return a dict containing preferred scheme names on the current platform. " "Python implementers and redistributors may add their preferred schemes to " @@ -342,7 +606,7 @@ msgstr "" "administradores de paquetes de idioma y sistema, de modo que los paquetes " "instalados por uno no se mezclen con los del otro." -#: ../Doc/library/sysconfig.rst:158 +#: ../Doc/library/sysconfig.rst:307 msgid "" "End users should not use this function, but :func:`get_default_scheme` and :" "func:`get_preferred_scheme()` instead." @@ -350,7 +614,7 @@ msgstr "" "Los usuarios finales no deben utilizar esta función, sino :func:" "`get_default_scheme` y :func:`get_preferred_scheme()` en su lugar." -#: ../Doc/library/sysconfig.rst:166 +#: ../Doc/library/sysconfig.rst:315 msgid "" "Return a tuple containing all path names currently supported in :mod:" "`sysconfig`." @@ -358,7 +622,7 @@ msgstr "" "Retorna una tupla que contiene todo los nombres de rutas admitidos " "actualmente en :mod:`sysconfig`." -#: ../Doc/library/sysconfig.rst:172 +#: ../Doc/library/sysconfig.rst:321 msgid "" "Return an installation path corresponding to the path *name*, from the " "install scheme named *scheme*." @@ -366,14 +630,14 @@ msgstr "" "Retorna una ruta de instalación correspondiente a la ruta *name*, del " "esquema de instalación denominado *scheme*." -#: ../Doc/library/sysconfig.rst:175 +#: ../Doc/library/sysconfig.rst:324 msgid "" "*name* has to be a value from the list returned by :func:`get_path_names`." msgstr "" "*name* tiene que ser un valor de la lista retornado por :func:" "`get_path_names`." -#: ../Doc/library/sysconfig.rst:177 +#: ../Doc/library/sysconfig.rst:326 msgid "" ":mod:`sysconfig` stores installation paths corresponding to each path name, " "for each platform, with variables to be expanded. For instance the *stdlib* " @@ -383,7 +647,7 @@ msgstr "" "nombre de ruta, para cada plataforma, con variables que se expandirán. Por " "ejemplo, la ruta *stdlib* para el esquema *nt* es: ``{base}/Lib``." -#: ../Doc/library/sysconfig.rst:181 +#: ../Doc/library/sysconfig.rst:330 msgid "" ":func:`get_path` will use the variables returned by :func:`get_config_vars` " "to expand the path. All variables have default values for each platform so " @@ -394,7 +658,7 @@ msgstr "" "predeterminados para cada plataforma, por lo que se puede llamar a esta " "función y obtener el valor predeterminado." -#: ../Doc/library/sysconfig.rst:185 +#: ../Doc/library/sysconfig.rst:334 msgid "" "If *scheme* is provided, it must be a value from the list returned by :func:" "`get_scheme_names`. Otherwise, the default scheme for the current platform " @@ -404,15 +668,16 @@ msgstr "" "retornada por :func:`get_scheme_names`. De lo contrario, se utiliza el " "esquema predeterminado para la plataforma actual." -#: ../Doc/library/sysconfig.rst:189 +#: ../Doc/library/sysconfig.rst:338 +#, fuzzy msgid "" "If *vars* is provided, it must be a dictionary of variables that will update " -"the dictionary return by :func:`get_config_vars`." +"the dictionary returned by :func:`get_config_vars`." msgstr "" "Si se proporciona *vars*, debe ser un diccionario de variables que " "actualizará el retorno del diccionario mediante :func:`get_config_vars`." -#: ../Doc/library/sysconfig.rst:192 +#: ../Doc/library/sysconfig.rst:341 msgid "" "If *expand* is set to ``False``, the path will not be expanded using the " "variables." @@ -420,11 +685,11 @@ msgstr "" "Si *expand* se establece en ``False``, la ruta no se expandirá usando las " "variables." -#: ../Doc/library/sysconfig.rst:195 +#: ../Doc/library/sysconfig.rst:344 msgid "If *name* is not found, raise a :exc:`KeyError`." msgstr "Si no se encuentra *name*, lanza un :exc:`KeyError`." -#: ../Doc/library/sysconfig.rst:200 +#: ../Doc/library/sysconfig.rst:349 msgid "" "Return a dictionary containing all installation paths corresponding to an " "installation scheme. See :func:`get_path` for more information." @@ -433,7 +698,7 @@ msgstr "" "correspondientes a un esquema de instalación. Consulte :func:`get_path` para " "obtener más información." -#: ../Doc/library/sysconfig.rst:203 +#: ../Doc/library/sysconfig.rst:352 msgid "" "If *scheme* is not provided, will use the default scheme for the current " "platform." @@ -441,7 +706,7 @@ msgstr "" "Si no se proporciona el esquema (*scheme*), utilizará el esquema " "predeterminado para la plataforma actual." -#: ../Doc/library/sysconfig.rst:206 +#: ../Doc/library/sysconfig.rst:355 msgid "" "If *vars* is provided, it must be a dictionary of variables that will update " "the dictionary used to expand the paths." @@ -449,11 +714,11 @@ msgstr "" "Si se proporciona *vars*, debe ser un diccionario de variables que " "actualizará el diccionario utilizado para expandir las rutas." -#: ../Doc/library/sysconfig.rst:209 +#: ../Doc/library/sysconfig.rst:358 msgid "If *expand* is set to false, the paths will not be expanded." msgstr "Si *expand* se establece en falso, las rutas no se expandirán." -#: ../Doc/library/sysconfig.rst:211 +#: ../Doc/library/sysconfig.rst:360 msgid "" "If *scheme* is not an existing scheme, :func:`get_paths` will raise a :exc:" "`KeyError`." @@ -461,11 +726,11 @@ msgstr "" "Si *scheme* no es un esquema existente, :func:`get_paths` lanzará un :exc:" "`KeyError`." -#: ../Doc/library/sysconfig.rst:216 +#: ../Doc/library/sysconfig.rst:365 msgid "Other functions" msgstr "Otras funciones" -#: ../Doc/library/sysconfig.rst:220 +#: ../Doc/library/sysconfig.rst:369 #, python-format msgid "" "Return the ``MAJOR.MINOR`` Python version number as a string. Similar to " @@ -474,11 +739,11 @@ msgstr "" "Retorna el número de versión versión ``MAJOR.MINOR`` de Python como una " "cadena. Similar a ``'%d.%d' % sys.version_info[:2]``." -#: ../Doc/library/sysconfig.rst:226 +#: ../Doc/library/sysconfig.rst:375 msgid "Return a string that identifies the current platform." msgstr "Retorna una cadena que identifica la plataforma actual." -#: ../Doc/library/sysconfig.rst:228 +#: ../Doc/library/sysconfig.rst:377 msgid "" "This is used mainly to distinguish platform-specific build directories and " "platform-specific built distributions. Typically includes the OS name and " @@ -493,64 +758,64 @@ msgstr "" "información exacta incluida depende del sistema operativo: por ejemplo, en " "Linux, la versión del kernel no es particularmente importante." -#: ../Doc/library/sysconfig.rst:234 +#: ../Doc/library/sysconfig.rst:383 msgid "Examples of returned values:" msgstr "Ejemplo de valores retornados:" -#: ../Doc/library/sysconfig.rst:236 +#: ../Doc/library/sysconfig.rst:385 msgid "linux-i586" msgstr "linux-i586" -#: ../Doc/library/sysconfig.rst:237 +#: ../Doc/library/sysconfig.rst:386 msgid "linux-alpha (?)" msgstr "linux-alpha (?)" -#: ../Doc/library/sysconfig.rst:238 +#: ../Doc/library/sysconfig.rst:387 msgid "solaris-2.6-sun4u" msgstr "solaris-2.6-sun4u" -#: ../Doc/library/sysconfig.rst:240 +#: ../Doc/library/sysconfig.rst:389 msgid "Windows will return one of:" msgstr "Windows retornará uno de:" -#: ../Doc/library/sysconfig.rst:242 +#: ../Doc/library/sysconfig.rst:391 msgid "win-amd64 (64bit Windows on AMD64, aka x86_64, Intel64, and EM64T)" msgstr "" "win-amd64 (Windows de 64 bits en AMD64, también conocido como x86_64, " "Intel64 y EM64T)" -#: ../Doc/library/sysconfig.rst:243 +#: ../Doc/library/sysconfig.rst:392 msgid "win32 (all others - specifically, sys.platform is returned)" msgstr "win32 (todos los demás - específicamente se retorna sys.platform)" -#: ../Doc/library/sysconfig.rst:245 +#: ../Doc/library/sysconfig.rst:394 msgid "macOS can return:" msgstr "macOS puede retornar:" -#: ../Doc/library/sysconfig.rst:247 +#: ../Doc/library/sysconfig.rst:396 msgid "macosx-10.6-ppc" msgstr "macosx-10.6-ppc" -#: ../Doc/library/sysconfig.rst:248 +#: ../Doc/library/sysconfig.rst:397 msgid "macosx-10.4-ppc64" msgstr "macosx-10.4-ppc64" -#: ../Doc/library/sysconfig.rst:249 +#: ../Doc/library/sysconfig.rst:398 msgid "macosx-10.3-i386" msgstr "macosx-10.3-i386" -#: ../Doc/library/sysconfig.rst:250 +#: ../Doc/library/sysconfig.rst:399 msgid "macosx-10.4-fat" msgstr "macosx-10.4-fat" -#: ../Doc/library/sysconfig.rst:252 +#: ../Doc/library/sysconfig.rst:401 msgid "" "For other non-POSIX platforms, currently just returns :data:`sys.platform`." msgstr "" "Para otras plataformas que no son POSIX, actualmente solo retorna :data:`sys." "platform`." -#: ../Doc/library/sysconfig.rst:257 +#: ../Doc/library/sysconfig.rst:406 msgid "" "Return ``True`` if the running Python interpreter was built from source and " "is being run from its built location, and not from a location resulting from " @@ -561,18 +826,18 @@ msgstr "" "una ubicación resultante de por ejemplo ejecutando ``make install`` o " "instalando a través de un instalador binario." -#: ../Doc/library/sysconfig.rst:264 +#: ../Doc/library/sysconfig.rst:413 msgid "Parse a :file:`config.h`\\-style file." msgstr "Analiza un archivo de estilo :file:`config.h`." -#: ../Doc/library/sysconfig.rst:266 +#: ../Doc/library/sysconfig.rst:415 msgid "" "*fp* is a file-like object pointing to the :file:`config.h`\\-like file." msgstr "" "*fp* es un objeto similar a un archivo que apunta al archivo similar a :file:" "`config.h`." -#: ../Doc/library/sysconfig.rst:268 +#: ../Doc/library/sysconfig.rst:417 msgid "" "A dictionary containing name/value pairs is returned. If an optional " "dictionary is passed in as the second argument, it is used instead of a new " @@ -582,24 +847,24 @@ msgstr "" "diccionario opcional como un segundo argumento, se utiliza en lugar de un " "nuevo diccionario y se actualiza con los valores leídos en el archivo." -#: ../Doc/library/sysconfig.rst:275 +#: ../Doc/library/sysconfig.rst:424 msgid "Return the path of :file:`pyconfig.h`." msgstr "Retorna la ruta de :file:`pyconfig.h`." -#: ../Doc/library/sysconfig.rst:279 +#: ../Doc/library/sysconfig.rst:428 msgid "Return the path of :file:`Makefile`." msgstr "Retorna la ruta de :file:`Makefile`." -#: ../Doc/library/sysconfig.rst:283 +#: ../Doc/library/sysconfig.rst:432 msgid "Using :mod:`sysconfig` as a script" msgstr "Usando :mod:`sysconfig` como un script" -#: ../Doc/library/sysconfig.rst:285 +#: ../Doc/library/sysconfig.rst:434 msgid "You can use :mod:`sysconfig` as a script with Python's *-m* option:" msgstr "" "Puedes usar :mod:`sysconfig` como un script con la opción *-m* de Python:" -#: ../Doc/library/sysconfig.rst:311 +#: ../Doc/library/sysconfig.rst:460 msgid "" "This call will print in the standard output the information returned by :" "func:`get_platform`, :func:`get_python_version`, :func:`get_path` and :func:" @@ -608,3 +873,29 @@ msgstr "" "Esta llamada imprimirá en la salida estándar la información retornada por :" "func:`get_platform`, :func:`get_python_version`, :func:`get_path` y :func:" "`get_config_vars`." + +#: ../Doc/library/sysconfig.rst:14 +#, fuzzy +msgid "configuration information" +msgstr "Variables de configuración" + +#~ msgid "" +#~ "Every new component that is installed using :mod:`distutils` or a " +#~ "Distutils-based system will follow the same scheme to copy its file in " +#~ "the right places." +#~ msgstr "" +#~ "Cada nuevo componente que se instala usando :mod:`distutils` o un sistema " +#~ "basado en *Distutils* seguirá el mismo esquema para copiar su archivo en " +#~ "los lugares correctos." + +#~ msgid "" +#~ "*posix_home*: scheme for POSIX platforms used when a *home* option is " +#~ "used upon installation. This scheme is used when a component is " +#~ "installed through Distutils with a specific home prefix." +#~ msgstr "" +#~ "*posix_home*: esquema para plataformas POSIX usado cuando se usa una " +#~ "opción *home* en la instalación. Este esquema se usa cuando se instala un " +#~ "componente a través de *Disutils* con un prefijo de inicio específico." + +#~ msgid "*nt*: scheme for NT platforms like Windows." +#~ msgstr "*nt*: esquema para plataformas NT como Windows." diff --git a/library/syslog.po b/library/syslog.po index d491a8d254..60e346a45b 100644 --- a/library/syslog.po +++ b/library/syslog.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-25 12:57-0300\n" "Last-Translator: Javier Artiga Garijo \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/syslog.rst:2 msgid ":mod:`syslog` --- Unix syslog library routines" @@ -47,11 +46,12 @@ msgstr "" "`logging.handlers` está disponible :class:`SysLogHandler`, una biblioteca en " "Python puro que puede comunicarse con un servidor syslog." +#: ../Doc/includes/wasm-notavail.rst:3 #, fuzzy msgid ":ref:`Availability `: not Emscripten, not WASI." msgstr ":ref:`Availability `: ni Emscripten, ni WASI." -#: ../Doc/library/cpython/Doc/includes/wasm-notavail.rst:5 +#: ../Doc/includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly platforms " "``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for " @@ -108,7 +108,16 @@ msgstr "" "no fuera un llamado previo de la llamada a la función :func:`syslog`, " "postergando la implementación de syslog para llamar a ``openlog()``." -#: ../Doc/library/syslog.rst:46 +#: ../Doc/library/syslog.rst:43 +msgid "" +"This function is restricted in subinterpreters. (Only code that runs in " +"multiple interpreters is affected and the restriction is not relevant for " +"most users.) :func:`openlog` must be called in the main interpreter before :" +"func:`syslog` may be used in a subinterpreter. Otherwise it will raise :exc:" +"`RuntimeError`." +msgstr "" + +#: ../Doc/library/syslog.rst:53 msgid "" "Logging options of subsequent :func:`syslog` calls can be set by calling :" "func:`openlog`. :func:`syslog` will call :func:`openlog` with no arguments " @@ -118,7 +127,7 @@ msgstr "" "establecerse llamando a la función :func:`openlog`. :func:`syslog` llamará " "a :func:`openlog` sin argumentos si el registro no está abierto actualmente." -#: ../Doc/library/syslog.rst:50 +#: ../Doc/library/syslog.rst:57 msgid "" "The optional *ident* keyword argument is a string which is prepended to " "every message, and defaults to ``sys.argv[0]`` with leading path components " @@ -136,7 +145,7 @@ msgstr "" "una *facility* por defecto para mensajes que no tienen una *facility* " "explícitamente codificada." -#: ../Doc/library/syslog.rst:66 +#: ../Doc/library/syslog.rst:73 msgid "" "Raises an :ref:`auditing event ` ``syslog.openlog`` with arguments " "``ident``, ``logoption``, ``facility``." @@ -144,7 +153,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``syslog.openlog`` con los " "argumentos ``ident``, ``logoption``, ``facility``." -#: ../Doc/library/syslog.rst:59 +#: ../Doc/library/syslog.rst:66 msgid "" "In previous versions, keyword arguments were not allowed, and *ident* was " "required." @@ -152,14 +161,22 @@ msgstr "" "En versiones anteriores, argumentos por palabras llave no eran permitidos, y " "la *ident* era obligatoria." -#: ../Doc/library/syslog.rst:66 +#: ../Doc/library/syslog.rst:70 ../Doc/library/syslog.rst:89 +msgid "" +"This function is restricted in subinterpreters. (Only code that runs in " +"multiple interpreters is affected and the restriction is not relevant for " +"most users.) This may only be called in the main interpreter. It will raise :" +"exc:`RuntimeError` if called in a subinterpreter." +msgstr "" + +#: ../Doc/library/syslog.rst:80 msgid "" "Reset the syslog module values and call the system library ``closelog()``." msgstr "" "Reinicia los valores del módulo syslog y llama a la librería del sistema " "``closelog()``." -#: ../Doc/library/syslog.rst:68 +#: ../Doc/library/syslog.rst:82 msgid "" "This causes the module to behave as it does when initially imported. For " "example, :func:`openlog` will be called on the first :func:`syslog` call " @@ -172,7 +189,7 @@ msgstr "" "*ident* y otros parámetros de :func:`openlog` se reiniciarán a sus valores " "por defecto." -#: ../Doc/library/syslog.rst:82 +#: ../Doc/library/syslog.rst:96 msgid "" "Raises an :ref:`auditing event ` ``syslog.closelog`` with no " "arguments." @@ -180,7 +197,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``syslog.closelog`` sin " "argumentos." -#: ../Doc/library/syslog.rst:78 +#: ../Doc/library/syslog.rst:99 msgid "" "Set the priority mask to *maskpri* and return the previous mask value. " "Calls to :func:`syslog` with a priority level not set in *maskpri* are " @@ -196,7 +213,7 @@ msgstr "" "prioridad individual *pri*. La función ``LOG_UPTO(pri)`` calcula la máscara " "para todas las prioridades mayores o iguales que *pri*." -#: ../Doc/library/syslog.rst:94 +#: ../Doc/library/syslog.rst:115 msgid "" "Raises an :ref:`auditing event ` ``syslog.setlogmask`` with " "argument ``maskpri``." @@ -204,15 +221,15 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``syslog.setlogmask`` con " "argumento ``maskpri``." -#: ../Doc/library/syslog.rst:87 +#: ../Doc/library/syslog.rst:108 msgid "The module defines the following constants:" msgstr "El módulo define las siguientes constantes:" -#: ../Doc/library/syslog.rst:92 +#: ../Doc/library/syslog.rst:113 msgid "Priority levels (high to low):" msgstr "Niveles de prioridad (de más alto a más bajo):" -#: ../Doc/library/syslog.rst:90 +#: ../Doc/library/syslog.rst:111 msgid "" ":const:`LOG_EMERG`, :const:`LOG_ALERT`, :const:`LOG_CRIT`, :const:" "`LOG_ERR`, :const:`LOG_WARNING`, :const:`LOG_NOTICE`, :const:`LOG_INFO`, :" @@ -222,11 +239,11 @@ msgstr "" "`LOG_ERR`, :const:`LOG_WARNING`, :const:`LOG_NOTICE`, :const:`LOG_INFO`, :" "const:`LOG_DEBUG`." -#: ../Doc/library/syslog.rst:99 +#: ../Doc/library/syslog.rst:120 msgid "Facilities:" msgstr "Facilities:" -#: ../Doc/library/syslog.rst:95 +#: ../Doc/library/syslog.rst:116 msgid "" ":const:`LOG_KERN`, :const:`LOG_USER`, :const:`LOG_MAIL`, :const:" "`LOG_DAEMON`, :const:`LOG_AUTH`, :const:`LOG_LPR`, :const:`LOG_NEWS`, :const:" @@ -239,11 +256,11 @@ msgstr "" "const:`LOG_LOCAL7`, y, si está definida en ````, :const:" "`LOG_AUTHPRIV`." -#: ../Doc/library/syslog.rst:105 +#: ../Doc/library/syslog.rst:126 msgid "Log options:" msgstr "Opciones de registro:" -#: ../Doc/library/syslog.rst:102 +#: ../Doc/library/syslog.rst:123 msgid "" ":const:`LOG_PID`, :const:`LOG_CONS`, :const:`LOG_NDELAY`, and, if defined in " "````, :const:`LOG_ODELAY`, :const:`LOG_NOWAIT`, and :const:" @@ -253,19 +270,19 @@ msgstr "" "definidas en ````, :const:`LOG_ODELAY`, :const:`LOG_NOWAIT`, y :" "const:`LOG_PERROR`." -#: ../Doc/library/syslog.rst:108 +#: ../Doc/library/syslog.rst:129 msgid "Examples" msgstr "Ejemplos" -#: ../Doc/library/syslog.rst:111 +#: ../Doc/library/syslog.rst:132 msgid "Simple example" msgstr "Ejemplo sencillo" -#: ../Doc/library/syslog.rst:113 +#: ../Doc/library/syslog.rst:134 msgid "A simple set of examples::" msgstr "Un conjunto sencillo de ejemplos::" -#: ../Doc/library/syslog.rst:121 +#: ../Doc/library/syslog.rst:142 msgid "" "An example of setting some log options, these would include the process ID " "in logged messages, and write the messages to the destination facility used " diff --git a/library/tarfile.po b/library/tarfile.po index b304455cc8..957862aaa0 100644 --- a/library/tarfile.po +++ b/library/tarfile.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-04 22:00+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/tarfile.rst:2 msgid ":mod:`tarfile` --- Read and write tar archive files" @@ -87,7 +87,16 @@ msgstr "" msgid "Added support for :mod:`lzma` compression." msgstr "Añadido soporte para compresión :mod:`lzma`." -#: ../Doc/library/tarfile.rst:42 +#: ../Doc/library/tarfile.rst:39 +msgid "" +"Archives are extracted using a :ref:`filter `, " +"which makes it possible to either limit surprising/dangerous features, or to " +"acknowledge that they are expected and the archive is fully trusted. By " +"default, archives are fully trusted, but this default is deprecated and " +"slated to change in Python 3.14." +msgstr "" + +#: ../Doc/library/tarfile.rst:49 msgid "" "Return a :class:`TarFile` object for the pathname *name*. For detailed " "information on :class:`TarFile` objects and the keyword arguments that are " @@ -98,7 +107,7 @@ msgstr "" "argumentos por palabra clave que están permitidos, dirígete a :ref:`tarfile-" "objects`." -#: ../Doc/library/tarfile.rst:46 +#: ../Doc/library/tarfile.rst:53 msgid "" "*mode* has to be a string of the form ``'filemode[:compression]'``, it " "defaults to ``'r'``. Here is a full list of mode combinations:" @@ -107,59 +116,59 @@ msgstr "" "compression]'``, adquiere el valor de ``'r'`` de forma predeterminada. Aquí " "hay una lista completa de combinaciones de modo:" -#: ../Doc/library/tarfile.rst:50 +#: ../Doc/library/tarfile.rst:57 msgid "mode" msgstr "modo" -#: ../Doc/library/tarfile.rst:50 +#: ../Doc/library/tarfile.rst:57 msgid "action" msgstr "acción" -#: ../Doc/library/tarfile.rst:52 +#: ../Doc/library/tarfile.rst:59 msgid "``'r' or 'r:*'``" msgstr "``'r' o 'r:*'``" -#: ../Doc/library/tarfile.rst:52 +#: ../Doc/library/tarfile.rst:59 msgid "Open for reading with transparent compression (recommended)." msgstr "Abrir para leer con compresión transparente (recomendado)." -#: ../Doc/library/tarfile.rst:55 +#: ../Doc/library/tarfile.rst:62 msgid "``'r:'``" msgstr "``'r:'``" -#: ../Doc/library/tarfile.rst:55 +#: ../Doc/library/tarfile.rst:62 msgid "Open for reading exclusively without compression." msgstr "Abrir para leer exclusivamente sin compresión." -#: ../Doc/library/tarfile.rst:58 +#: ../Doc/library/tarfile.rst:65 msgid "``'r:gz'``" msgstr "``'r:gz'``" -#: ../Doc/library/tarfile.rst:58 +#: ../Doc/library/tarfile.rst:65 msgid "Open for reading with gzip compression." msgstr "Abrir para leer con compresión gzip." -#: ../Doc/library/tarfile.rst:60 +#: ../Doc/library/tarfile.rst:67 msgid "``'r:bz2'``" msgstr "``'r:bz2'``" -#: ../Doc/library/tarfile.rst:60 +#: ../Doc/library/tarfile.rst:67 msgid "Open for reading with bzip2 compression." msgstr "Abrir para leer con compresión bzip2." -#: ../Doc/library/tarfile.rst:62 +#: ../Doc/library/tarfile.rst:69 msgid "``'r:xz'``" msgstr "``'r:xz'``" -#: ../Doc/library/tarfile.rst:62 +#: ../Doc/library/tarfile.rst:69 msgid "Open for reading with lzma compression." msgstr "Abrir para leer con compresión lzma." -#: ../Doc/library/tarfile.rst:64 +#: ../Doc/library/tarfile.rst:71 msgid "``'x'`` or ``'x:'``" msgstr "``'x'`` o ``'x:'``" -#: ../Doc/library/tarfile.rst:64 +#: ../Doc/library/tarfile.rst:71 #, fuzzy msgid "" "Create a tarfile exclusively without compression. Raise a :exc:" @@ -168,11 +177,11 @@ msgstr "" "Crear un archivo *tarfile* exclusivamente sin compresión. Lanza una " "excepción :exc:`FileExistsError` si el archivo ya existe." -#: ../Doc/library/tarfile.rst:69 +#: ../Doc/library/tarfile.rst:76 msgid "``'x:gz'``" msgstr "``'x:gz'``" -#: ../Doc/library/tarfile.rst:69 +#: ../Doc/library/tarfile.rst:76 #, fuzzy msgid "" "Create a tarfile with gzip compression. Raise a :exc:`FileExistsError` " @@ -181,11 +190,11 @@ msgstr "" "Crear un archivo tar con compresión gzip. Lanza una excepción :exc:" "`FileExistsError` si ya existe." -#: ../Doc/library/tarfile.rst:73 +#: ../Doc/library/tarfile.rst:80 msgid "``'x:bz2'``" msgstr "``'x:bz2'``" -#: ../Doc/library/tarfile.rst:73 +#: ../Doc/library/tarfile.rst:80 #, fuzzy msgid "" "Create a tarfile with bzip2 compression. Raise a :exc:`FileExistsError` " @@ -194,11 +203,11 @@ msgstr "" "Crear un archivo tar con compresión bzip2. Lanza una excepción :exc:" "`FileExistsError` si ya existe." -#: ../Doc/library/tarfile.rst:77 +#: ../Doc/library/tarfile.rst:84 msgid "``'x:xz'``" msgstr "``'x:xz'``" -#: ../Doc/library/tarfile.rst:77 +#: ../Doc/library/tarfile.rst:84 #, fuzzy msgid "" "Create a tarfile with lzma compression. Raise a :exc:`FileExistsError` " @@ -207,49 +216,49 @@ msgstr "" "Crear un archivo tar con compresión lzma. Lanza una excepción :exc:" "`FileExistsError` si ya existe." -#: ../Doc/library/tarfile.rst:81 +#: ../Doc/library/tarfile.rst:88 msgid "``'a' or 'a:'``" msgstr "``'a' or 'a:'``" -#: ../Doc/library/tarfile.rst:81 +#: ../Doc/library/tarfile.rst:88 msgid "" "Open for appending with no compression. The file is created if it does not " "exist." msgstr "Abrir para anexar sin compresión. El archivo se crea si no existe." -#: ../Doc/library/tarfile.rst:84 +#: ../Doc/library/tarfile.rst:91 msgid "``'w' or 'w:'``" msgstr "``'w' o 'w:'``" -#: ../Doc/library/tarfile.rst:84 +#: ../Doc/library/tarfile.rst:91 msgid "Open for uncompressed writing." msgstr "Abrir para escritura con compresión lzma." -#: ../Doc/library/tarfile.rst:86 +#: ../Doc/library/tarfile.rst:93 msgid "``'w:gz'``" msgstr "``'w:gz'``" -#: ../Doc/library/tarfile.rst:86 +#: ../Doc/library/tarfile.rst:93 msgid "Open for gzip compressed writing." msgstr "Abrir para escritura con compresión gzip." -#: ../Doc/library/tarfile.rst:88 +#: ../Doc/library/tarfile.rst:95 msgid "``'w:bz2'``" msgstr "``'w:bz2'``" -#: ../Doc/library/tarfile.rst:88 +#: ../Doc/library/tarfile.rst:95 msgid "Open for bzip2 compressed writing." msgstr "Abrir para escritura con compresión bzip2." -#: ../Doc/library/tarfile.rst:90 +#: ../Doc/library/tarfile.rst:97 msgid "``'w:xz'``" msgstr "``'w:xz'``" -#: ../Doc/library/tarfile.rst:90 +#: ../Doc/library/tarfile.rst:97 msgid "Open for lzma compressed writing." msgstr "Abrir para escritura con compresión lzma." -#: ../Doc/library/tarfile.rst:93 +#: ../Doc/library/tarfile.rst:100 msgid "" "Note that ``'a:gz'``, ``'a:bz2'`` or ``'a:xz'`` is not possible. If *mode* " "is not suitable to open a certain (compressed) file for reading, :exc:" @@ -262,7 +271,7 @@ msgstr "" "``'r'`` para evitar esto. Si el método de compresión no es admitido, se " "lanza una excepción :exc:`CompressionError`." -#: ../Doc/library/tarfile.rst:98 +#: ../Doc/library/tarfile.rst:105 msgid "" "If *fileobj* is specified, it is used as an alternative to a :term:`file " "object` opened in binary mode for *name*. It is supposed to be at position 0." @@ -270,9 +279,10 @@ msgstr "" "Si *fileobj* es especificado, se utiliza como alternativa a :term:`file " "object` abierto en modo binario para *name*. Debe estar en la posición 0." -#: ../Doc/library/tarfile.rst:101 +#: ../Doc/library/tarfile.rst:108 +#, fuzzy msgid "" -"For modes ``'w:gz'``, ``'r:gz'``, ``'w:bz2'``, ``'r:bz2'``, ``'x:gz'``, ``'x:" +"For modes ``'w:gz'``, ``'x:gz'``, ``'w|gz'``, ``'w:bz2'``, ``'x:bz2'``, ``'w|" "bz2'``, :func:`tarfile.open` accepts the keyword argument *compresslevel* " "(default ``9``) to specify the compression level of the file." msgstr "" @@ -281,7 +291,7 @@ msgstr "" "*compresslevel* (por defecto ``9``) para especificar el nivel de compresión " "del archivo." -#: ../Doc/library/tarfile.rst:105 +#: ../Doc/library/tarfile.rst:112 msgid "" "For modes ``'w:xz'`` and ``'x:xz'``, :func:`tarfile.open` accepts the " "keyword argument *preset* to specify the compression level of the file." @@ -290,7 +300,7 @@ msgstr "" "argumento de palabra clave *preset* para especificar el nivel de compresión " "del archivo." -#: ../Doc/library/tarfile.rst:108 +#: ../Doc/library/tarfile.rst:115 msgid "" "For special purposes, there is a second format for *mode*: ``'filemode|" "[compression]'``. :func:`tarfile.open` will return a :class:`TarFile` " @@ -314,96 +324,100 @@ msgstr "" "embargo, dicho objeto :class:`TarFile` está limitado en el aspecto de que no " "permite acceso aleatorio. Consulta :ref:`tar-examples`. Los modos posibles:" -#: ../Doc/library/tarfile.rst:120 +#: ../Doc/library/tarfile.rst:127 msgid "Mode" msgstr "Modo" -#: ../Doc/library/tarfile.rst:120 +#: ../Doc/library/tarfile.rst:127 msgid "Action" msgstr "Acción" -#: ../Doc/library/tarfile.rst:122 +#: ../Doc/library/tarfile.rst:129 msgid "``'r|*'``" msgstr "``'r|*'``" -#: ../Doc/library/tarfile.rst:122 +#: ../Doc/library/tarfile.rst:129 msgid "Open a *stream* of tar blocks for reading with transparent compression." msgstr "Abre un *stream* de bloques tar para leer con compresión transparente." -#: ../Doc/library/tarfile.rst:125 +#: ../Doc/library/tarfile.rst:132 msgid "``'r|'``" msgstr "``'r|'``" -#: ../Doc/library/tarfile.rst:125 +#: ../Doc/library/tarfile.rst:132 msgid "Open a *stream* of uncompressed tar blocks for reading." msgstr "Abre un *stream* de bloques tar sin comprimir para lectura." -#: ../Doc/library/tarfile.rst:128 +#: ../Doc/library/tarfile.rst:135 msgid "``'r|gz'``" msgstr "``'r|gz'``" -#: ../Doc/library/tarfile.rst:128 +#: ../Doc/library/tarfile.rst:135 msgid "Open a gzip compressed *stream* for reading." msgstr "Abre un *stream* comprimido con gzip para lectura." -#: ../Doc/library/tarfile.rst:131 +#: ../Doc/library/tarfile.rst:138 msgid "``'r|bz2'``" msgstr "``'r|bz2'``" -#: ../Doc/library/tarfile.rst:131 +#: ../Doc/library/tarfile.rst:138 msgid "Open a bzip2 compressed *stream* for reading." msgstr "Abre un *stream* bzip2 comprimido para lectura." -#: ../Doc/library/tarfile.rst:134 +#: ../Doc/library/tarfile.rst:141 msgid "``'r|xz'``" msgstr "``'r|xz'``" -#: ../Doc/library/tarfile.rst:134 +#: ../Doc/library/tarfile.rst:141 msgid "Open an lzma compressed *stream* for reading." msgstr "Abre un *stream* lzma comprimido para lectura." -#: ../Doc/library/tarfile.rst:137 +#: ../Doc/library/tarfile.rst:144 msgid "``'w|'``" msgstr "``'w|'``" -#: ../Doc/library/tarfile.rst:137 +#: ../Doc/library/tarfile.rst:144 msgid "Open an uncompressed *stream* for writing." msgstr "Abre un *stream* sin comprimir para escritura." -#: ../Doc/library/tarfile.rst:139 +#: ../Doc/library/tarfile.rst:146 msgid "``'w|gz'``" msgstr "``'w|gz'``" -#: ../Doc/library/tarfile.rst:139 +#: ../Doc/library/tarfile.rst:146 msgid "Open a gzip compressed *stream* for writing." msgstr "Abre un *stream* gzip comprimido para escritura." -#: ../Doc/library/tarfile.rst:142 +#: ../Doc/library/tarfile.rst:149 msgid "``'w|bz2'``" msgstr "``'w|bz2'``" -#: ../Doc/library/tarfile.rst:142 +#: ../Doc/library/tarfile.rst:149 msgid "Open a bzip2 compressed *stream* for writing." msgstr "Abre un *stream* bzip2 comprimido para escritura." -#: ../Doc/library/tarfile.rst:145 +#: ../Doc/library/tarfile.rst:152 msgid "``'w|xz'``" msgstr "``'w|xz'``" -#: ../Doc/library/tarfile.rst:145 +#: ../Doc/library/tarfile.rst:152 msgid "Open an lzma compressed *stream* for writing." msgstr "Abre un *stream* lzma comprimido para escritura." -#: ../Doc/library/tarfile.rst:149 ../Doc/library/tarfile.rst:336 +#: ../Doc/library/tarfile.rst:156 ../Doc/library/tarfile.rst:375 msgid "The ``'x'`` (exclusive creation) mode was added." msgstr "El modo ``'x'`` (creación exclusiva) fue añadido." -#: ../Doc/library/tarfile.rst:152 ../Doc/library/tarfile.rst:339 -#: ../Doc/library/tarfile.rst:508 +#: ../Doc/library/tarfile.rst:159 ../Doc/library/tarfile.rst:378 +#: ../Doc/library/tarfile.rst:613 msgid "The *name* parameter accepts a :term:`path-like object`." msgstr "El parámetro *name* acepta un objeto :term:`path-like object`." -#: ../Doc/library/tarfile.rst:159 +#: ../Doc/library/tarfile.rst:162 +msgid "The *compresslevel* keyword argument also works for streams." +msgstr "" + +#: ../Doc/library/tarfile.rst:169 msgid "" "Class for reading and writing tar archives. Do not use this class directly: " "use :func:`tarfile.open` instead. See :ref:`tarfile-objects`." @@ -412,7 +426,7 @@ msgstr "" "directamente; usa :func:`tarfile.open` en su lugar. Consulta :ref:`tarfile-" "objects`." -#: ../Doc/library/tarfile.rst:165 +#: ../Doc/library/tarfile.rst:175 msgid "" "Return :const:`True` if *name* is a tar archive file, that the :mod:" "`tarfile` module can read. *name* may be a :class:`str`, file, or file-like " @@ -422,19 +436,19 @@ msgstr "" "`tarfile` puede leer. *name* puede ser un :class:`str`, archivo o un objeto " "similar a un archivo." -#: ../Doc/library/tarfile.rst:168 +#: ../Doc/library/tarfile.rst:178 msgid "Support for file and file-like objects." msgstr "Soporte para archivos y objetos similares a archivos." -#: ../Doc/library/tarfile.rst:172 +#: ../Doc/library/tarfile.rst:182 msgid "The :mod:`tarfile` module defines the following exceptions:" msgstr "El módulo :mod:`tarfile` define las siguientes excepciones:" -#: ../Doc/library/tarfile.rst:177 +#: ../Doc/library/tarfile.rst:187 msgid "Base class for all :mod:`tarfile` exceptions." msgstr "Clase base para todas las excepciones del módulo :mod:`tarfile`." -#: ../Doc/library/tarfile.rst:182 +#: ../Doc/library/tarfile.rst:192 msgid "" "Is raised when a tar archive is opened, that either cannot be handled by " "the :mod:`tarfile` module or is somehow invalid." @@ -442,7 +456,7 @@ msgstr "" "Se lanza cuando un archivo tar se abre, que no puede ser manejado por el " "módulo :mod:`tarfile` o de alguna manera no es válido." -#: ../Doc/library/tarfile.rst:188 +#: ../Doc/library/tarfile.rst:198 msgid "" "Is raised when a compression method is not supported or when the data cannot " "be decoded properly." @@ -450,7 +464,7 @@ msgstr "" "Se lanza cuando un método de compresión no tiene soporte o cuando la " "información no puede ser decodificada de manera apropiada." -#: ../Doc/library/tarfile.rst:194 +#: ../Doc/library/tarfile.rst:204 msgid "" "Is raised for the limitations that are typical for stream-like :class:" "`TarFile` objects." @@ -458,7 +472,7 @@ msgstr "" "Se lanza para limitaciones que son comunes para objetos *stream-like* :class:" "`TarFile`." -#: ../Doc/library/tarfile.rst:200 +#: ../Doc/library/tarfile.rst:210 msgid "" "Is raised for *non-fatal* errors when using :meth:`TarFile.extract`, but " "only if :attr:`TarFile.errorlevel`\\ ``== 2``." @@ -466,16 +480,49 @@ msgstr "" "Se lanza para errores no fatales cuando se utiliza :meth:`TarFile.extract`, " "pero solo si :attr:`TarFile.errorlevel`\\ ``== 2``." -#: ../Doc/library/tarfile.rst:206 +#: ../Doc/library/tarfile.rst:216 msgid "Is raised by :meth:`TarInfo.frombuf` if the buffer it gets is invalid." msgstr "" "Se lanza por :meth:`TarInfo.frombuf` si el buffer que obtiene es invalido." -#: ../Doc/library/tarfile.rst:209 +#: ../Doc/library/tarfile.rst:221 +msgid "" +"Base class for members :ref:`refused ` by filters." +msgstr "" + +#: ../Doc/library/tarfile.rst:226 +msgid "" +"Information about the member that the filter refused to extract, as :ref:" +"`TarInfo `." +msgstr "" + +#: ../Doc/library/tarfile.rst:231 +msgid "Raised to refuse extracting a member with an absolute path." +msgstr "" + +#: ../Doc/library/tarfile.rst:235 +msgid "Raised to refuse extracting a member outside the destination directory." +msgstr "" + +#: ../Doc/library/tarfile.rst:239 +msgid "Raised to refuse extracting a special file (e.g. a device or pipe)." +msgstr "" + +#: ../Doc/library/tarfile.rst:243 +msgid "Raised to refuse extracting a symbolic link with an absolute path." +msgstr "" + +#: ../Doc/library/tarfile.rst:247 +msgid "" +"Raised to refuse extracting a symbolic link pointing outside the destination " +"directory." +msgstr "" + +#: ../Doc/library/tarfile.rst:251 msgid "The following constants are available at the module level:" msgstr "Las siguientes constantes están disponibles a nivel de módulo:" -#: ../Doc/library/tarfile.rst:213 +#: ../Doc/library/tarfile.rst:255 msgid "" "The default character encoding: ``'utf-8'`` on Windows, the value returned " "by :func:`sys.getfilesystemencoding` otherwise." @@ -483,7 +530,7 @@ msgstr "" "La codificación para caracteres predeterminada: ``'utf-8'`` en Windows, de " "otra manera, el valor retornado por :func:`sys.getfilesystemencoding`." -#: ../Doc/library/tarfile.rst:217 +#: ../Doc/library/tarfile.rst:259 msgid "" "Each of the following constants defines a tar archive format that the :mod:" "`tarfile` module is able to create. See section :ref:`tar-formats` for " @@ -493,19 +540,19 @@ msgstr "" "el módulo :mod:`tarfile` puede crear. Ve la sección: :ref:`tar-formats` para " "más detalles." -#: ../Doc/library/tarfile.rst:224 +#: ../Doc/library/tarfile.rst:266 msgid "POSIX.1-1988 (ustar) format." msgstr "Formato POSIX.1-1988 (ustar)." -#: ../Doc/library/tarfile.rst:229 +#: ../Doc/library/tarfile.rst:271 msgid "GNU tar format." msgstr "Formato GNU tar." -#: ../Doc/library/tarfile.rst:234 +#: ../Doc/library/tarfile.rst:276 msgid "POSIX.1-2001 (pax) format." msgstr "Formato POSIX.1-2001 (pax)." -#: ../Doc/library/tarfile.rst:239 +#: ../Doc/library/tarfile.rst:281 msgid "" "The default format for creating archives. This is currently :const:" "`PAX_FORMAT`." @@ -513,7 +560,7 @@ msgstr "" "El formato predeterminado para crear archivos. Es actualmente :const:" "`PAX_FORMAT`." -#: ../Doc/library/tarfile.rst:241 +#: ../Doc/library/tarfile.rst:283 msgid "" "The default format for new archives was changed to :const:`PAX_FORMAT` from :" "const:`GNU_FORMAT`." @@ -521,19 +568,19 @@ msgstr "" "El formato predeterminado para nuevos archivos fue cambiado de :const:" "`GNU_FORMAT` a :const:`PAX_FORMAT`." -#: ../Doc/library/tarfile.rst:249 +#: ../Doc/library/tarfile.rst:291 msgid "Module :mod:`zipfile`" msgstr "Módulo :mod:`zipfile`" -#: ../Doc/library/tarfile.rst:249 +#: ../Doc/library/tarfile.rst:291 msgid "Documentation of the :mod:`zipfile` standard module." msgstr "Documentación del módulo estándar :mod:`zipfile`." -#: ../Doc/library/tarfile.rst:253 +#: ../Doc/library/tarfile.rst:295 msgid ":ref:`archiving-operations`" msgstr ":ref:`archiving-operations`" -#: ../Doc/library/tarfile.rst:252 +#: ../Doc/library/tarfile.rst:294 msgid "" "Documentation of the higher-level archiving facilities provided by the " "standard :mod:`shutil` module." @@ -541,7 +588,7 @@ msgstr "" "Documentación para las facilidades de archivos de más alto nivel " "proporcionadas por el módulo estándar :mod:`shutil`." -#: ../Doc/library/tarfile.rst:255 +#: ../Doc/library/tarfile.rst:297 msgid "" "`GNU tar manual, Basic Tar Format `_" @@ -549,16 +596,16 @@ msgstr "" "`Manual GNU tar, formato básico tar `_" -#: ../Doc/library/tarfile.rst:256 +#: ../Doc/library/tarfile.rst:298 msgid "Documentation for tar archive files, including GNU tar extensions." msgstr "" "Documentación para archivos de tipo tar, incluyendo extensiones GNU tar." -#: ../Doc/library/tarfile.rst:262 +#: ../Doc/library/tarfile.rst:304 msgid "TarFile Objects" msgstr "Objetos *TarFile*" -#: ../Doc/library/tarfile.rst:264 +#: ../Doc/library/tarfile.rst:306 msgid "" "The :class:`TarFile` object provides an interface to a tar archive. A tar " "archive is a sequence of blocks. An archive member (a stored file) is made " @@ -573,7 +620,7 @@ msgstr "" "Cada archivo miembro está representado por un objeto :class:`TarInfo`, " "consulta :ref:`tarinfo-objects` para más detalles." -#: ../Doc/library/tarfile.rst:270 +#: ../Doc/library/tarfile.rst:312 msgid "" "A :class:`TarFile` object can be used as a context manager in a :keyword:" "`with` statement. It will automatically be closed when the block is " @@ -588,11 +635,11 @@ msgstr "" "interno será cerrado. Consulta la sección :ref:`tar-examples` para un caso " "de uso." -#: ../Doc/library/tarfile.rst:276 +#: ../Doc/library/tarfile.rst:318 msgid "Added support for the context management protocol." msgstr "Añadido soporte para el protocolo de administración de contexto." -#: ../Doc/library/tarfile.rst:281 +#: ../Doc/library/tarfile.rst:323 msgid "" "All following arguments are optional and can be accessed as instance " "attributes as well." @@ -600,7 +647,7 @@ msgstr "" "Los siguientes argumentos son opcionales y también se pueden acceder como " "atributos de instancia." -#: ../Doc/library/tarfile.rst:284 +#: ../Doc/library/tarfile.rst:326 msgid "" "*name* is the pathname of the archive. *name* may be a :term:`path-like " "object`. It can be omitted if *fileobj* is given. In this case, the file " @@ -610,7 +657,7 @@ msgstr "" "`path-like object`. Puede ser omitido si *fileobj* se proporciona. En este " "caso, el atributo :attr:`name` del objeto de archivo se usa si existe." -#: ../Doc/library/tarfile.rst:288 +#: ../Doc/library/tarfile.rst:330 msgid "" "*mode* is either ``'r'`` to read from an existing archive, ``'a'`` to append " "data to an existing file, ``'w'`` to create a new file overwriting an " @@ -622,7 +669,7 @@ msgstr "" "sobrescribiendo uno existente, o ``'x'`` para crear un nuevo archivo " "únicamente si este no existe." -#: ../Doc/library/tarfile.rst:292 +#: ../Doc/library/tarfile.rst:334 msgid "" "If *fileobj* is given, it is used for reading or writing data. If it can be " "determined, *mode* is overridden by *fileobj*'s mode. *fileobj* will be used " @@ -632,11 +679,11 @@ msgstr "" "Si puede ser determinado, *mode* puede ser anulado por el modo de *fileobj*. " "*fileobj* será usado desde la posición 0." -#: ../Doc/library/tarfile.rst:298 +#: ../Doc/library/tarfile.rst:340 msgid "*fileobj* is not closed, when :class:`TarFile` is closed." msgstr "*fileobj* no se cierra cuando :class:`TarFile` se cierra." -#: ../Doc/library/tarfile.rst:300 +#: ../Doc/library/tarfile.rst:342 msgid "" "*format* controls the archive format for writing. It must be one of the " "constants :const:`USTAR_FORMAT`, :const:`GNU_FORMAT` or :const:`PAX_FORMAT` " @@ -649,7 +696,7 @@ msgstr "" "detectará automáticamente, incluso si hay diferentes formatos en un solo " "archivo." -#: ../Doc/library/tarfile.rst:305 +#: ../Doc/library/tarfile.rst:347 msgid "" "The *tarinfo* argument can be used to replace the default :class:`TarInfo` " "class with a different one." @@ -657,7 +704,7 @@ msgstr "" "El argumento *tarinfo* puede ser utilizado para reemplazar la clase " "predeterminada :class:`TarInfo` con una diferente." -#: ../Doc/library/tarfile.rst:308 +#: ../Doc/library/tarfile.rst:350 msgid "" "If *dereference* is :const:`False`, add symbolic and hard links to the " "archive. If it is :const:`True`, add the content of the target files to the " @@ -668,7 +715,7 @@ msgstr "" "de archivos objetivo al archivo. Esto no tiene ningún efecto en los sistemas " "que no admiten enlaces simbólicos." -#: ../Doc/library/tarfile.rst:312 +#: ../Doc/library/tarfile.rst:354 msgid "" "If *ignore_zeros* is :const:`False`, treat an empty block as the end of the " "archive. If it is :const:`True`, skip empty (and invalid) blocks and try to " @@ -680,7 +727,7 @@ msgstr "" "no válidos) e intenta obtener tantos miembros como sea posible. Esto solo es " "útil para leer archivos concatenados o dañados." -#: ../Doc/library/tarfile.rst:316 +#: ../Doc/library/tarfile.rst:358 msgid "" "*debug* can be set from ``0`` (no debug messages) up to ``3`` (all debug " "messages). The messages are written to ``sys.stderr``." @@ -689,22 +736,13 @@ msgstr "" "depuración) hasta ``3`` (todos los mensajes de depuración). Los mensajes son " "escritos en ``sys.stderr``." -#: ../Doc/library/tarfile.rst:319 +#: ../Doc/library/tarfile.rst:361 msgid "" -"If *errorlevel* is ``0``, all errors are ignored when using :meth:`TarFile." -"extract`. Nevertheless, they appear as error messages in the debug output, " -"when debugging is enabled. If ``1``, all *fatal* errors are raised as :exc:" -"`OSError` exceptions. If ``2``, all *non-fatal* errors are raised as :exc:" -"`TarError` exceptions as well." +"*errorlevel* controls how extraction errors are handled, see :attr:`the " +"corresponding attribute <~TarFile.errorlevel>`." msgstr "" -"Si *errorlevel* es ``0``, todos los errores son ignorados cuando se utiliza :" -"meth:`TarFile.extract`. Sin embargo, aparecen como mensajes de error en la " -"salida de depuración, cuando la depuración está habilitada. Si *errorlevel* " -"es ``1``, todos los errores *fatal* son levantados como excepciones :exc:" -"`OSError`. Si *errorlevel* es ``2``, todos los errores *non-fatal* son " -"levantados como excepciones :exc:`TarError`." -#: ../Doc/library/tarfile.rst:325 +#: ../Doc/library/tarfile.rst:364 msgid "" "The *encoding* and *errors* arguments define the character encoding to be " "used for reading or writing the archive and how conversion errors are going " @@ -717,7 +755,7 @@ msgstr "" "para la mayoría de los usuarios. Mira la sección :ref:`tar-unicode` para más " "información a detalle." -#: ../Doc/library/tarfile.rst:330 +#: ../Doc/library/tarfile.rst:369 msgid "" "The *pax_headers* argument is an optional dictionary of strings which will " "be added as a pax global header if *format* is :const:`PAX_FORMAT`." @@ -726,13 +764,13 @@ msgstr "" "serán añadidas como un encabezado pax global si el valor de *format* es :" "const:`PAX_FORMAT`." -#: ../Doc/library/tarfile.rst:333 ../Doc/library/tarfile.rst:561 +#: ../Doc/library/tarfile.rst:372 ../Doc/library/tarfile.rst:681 msgid "Use ``'surrogateescape'`` as the default for the *errors* argument." msgstr "" "Utiliza ``'surrogateescape'`` como valor predeterminado del argumento " "*errors*." -#: ../Doc/library/tarfile.rst:345 +#: ../Doc/library/tarfile.rst:384 msgid "" "Alternative constructor. The :func:`tarfile.open` function is actually a " "shortcut to this classmethod." @@ -740,7 +778,7 @@ msgstr "" "Constructor alternativo. La función :func:`tarfile.open` es un acceso " "directo a este método de la clase." -#: ../Doc/library/tarfile.rst:351 +#: ../Doc/library/tarfile.rst:390 msgid "" "Return a :class:`TarInfo` object for member *name*. If *name* can not be " "found in the archive, :exc:`KeyError` is raised." @@ -749,7 +787,7 @@ msgstr "" "puede ser encontrado, entonces una excepción de tipo :exc:`KeyError` será " "lanzada." -#: ../Doc/library/tarfile.rst:356 +#: ../Doc/library/tarfile.rst:395 msgid "" "If a member occurs more than once in the archive, its last occurrence is " "assumed to be the most up-to-date version." @@ -757,7 +795,7 @@ msgstr "" "Si un miembro aparece más de una vez en el archivo, se asume que su última " "aparición es la versión más actualizada." -#: ../Doc/library/tarfile.rst:362 +#: ../Doc/library/tarfile.rst:401 msgid "" "Return the members of the archive as a list of :class:`TarInfo` objects. The " "list has the same order as the members in the archive." @@ -765,7 +803,7 @@ msgstr "" "Retorna los miembros del archivo como una lista de objetos :class:`TarInfo`. " "La lista tiene el mismo orden que los miembros del archivo." -#: ../Doc/library/tarfile.rst:368 +#: ../Doc/library/tarfile.rst:407 msgid "" "Return the members as a list of their names. It has the same order as the " "list returned by :meth:`getmembers`." @@ -773,7 +811,7 @@ msgstr "" "Retorna los miembros como una lista de sus nombres. Tiene el mismo orden que " "la lista retornada por :meth:`getmembers`." -#: ../Doc/library/tarfile.rst:374 +#: ../Doc/library/tarfile.rst:413 msgid "" "Print a table of contents to ``sys.stdout``. If *verbose* is :const:`False`, " "only the names of the members are printed. If it is :const:`True`, output " @@ -786,11 +824,11 @@ msgstr "" "parámetro *members* es proporcionado, debe ser un subconjunto de la lista " "retornada por :meth:`getmembers`." -#: ../Doc/library/tarfile.rst:379 +#: ../Doc/library/tarfile.rst:418 msgid "Added the *members* parameter." msgstr "Se agregó el parámetro *members*." -#: ../Doc/library/tarfile.rst:385 +#: ../Doc/library/tarfile.rst:424 msgid "" "Return the next member of the archive as a :class:`TarInfo` object, when :" "class:`TarFile` is opened for reading. Return :const:`None` if there is no " @@ -800,7 +838,7 @@ msgstr "" "cuando :class:`TarFile` se abre para lectura. Retorna :const:`None` si no " "hay más miembros disponibles." -#: ../Doc/library/tarfile.rst:392 +#: ../Doc/library/tarfile.rst:431 msgid "" "Extract all members from the archive to the current working directory or " "directory *path*. If optional *members* is given, it must be a subset of the " @@ -821,7 +859,7 @@ msgstr "" "creado en el. Y si los permisos de un directorio no permiten escritura, " "extraer archivos en el no será posible." -#: ../Doc/library/tarfile.rst:400 ../Doc/library/tarfile.rst:426 +#: ../Doc/library/tarfile.rst:439 msgid "" "If *numeric_owner* is :const:`True`, the uid and gid numbers from the " "tarfile are used to set the owner/group for the extracted files. Otherwise, " @@ -832,7 +870,15 @@ msgstr "" "extraídos. De lo contrario, se utilizan los valores nombrados del archivo " "tar." -#: ../Doc/library/tarfile.rst:406 +#: ../Doc/library/tarfile.rst:443 +msgid "" +"The *filter* argument specifies how ``members`` are modified or rejected " +"before extraction. See :ref:`tarfile-extraction-filter` for details. It is " +"recommended to set this explicitly depending on which *tar* features you " +"need to support." +msgstr "" + +#: ../Doc/library/tarfile.rst:451 msgid "" "Never extract archives from untrusted sources without prior inspection. It " "is possible that files are created outside of *path*, e.g. members that have " @@ -844,15 +890,26 @@ msgstr "" "tienen nombres de archivo absolutos que comienzan con ``\"/\"`` o nombres de " "archivo con dos puntos ``\"..\"``." -#: ../Doc/library/tarfile.rst:411 ../Doc/library/tarfile.rst:442 +#: ../Doc/library/tarfile.rst:456 ../Doc/library/tarfile.rst:489 +msgid "" +"Set ``filter='data'`` to prevent the most dangerous security issues, and " +"read the :ref:`tarfile-extraction-filter` section for details." +msgstr "" + +#: ../Doc/library/tarfile.rst:459 ../Doc/library/tarfile.rst:495 msgid "Added the *numeric_owner* parameter." msgstr "Se agregó el parámetro *numeric_owner*." -#: ../Doc/library/tarfile.rst:414 ../Doc/library/tarfile.rst:445 +#: ../Doc/library/tarfile.rst:462 ../Doc/library/tarfile.rst:498 msgid "The *path* parameter accepts a :term:`path-like object`." msgstr "El parámetro *path* acepta a :term:`path-like object`." -#: ../Doc/library/tarfile.rst:420 +#: ../Doc/library/tarfile.rst:465 ../Doc/library/tarfile.rst:501 +#: ../Doc/library/tarfile.rst:579 +msgid "Added the *filter* parameter." +msgstr "Se agregó el parámetro *filter*." + +#: ../Doc/library/tarfile.rst:471 msgid "" "Extract a member from the archive to the current working directory, using " "its full name. Its file information is extracted as accurately as possible. " @@ -868,7 +925,13 @@ msgstr "" "archivo (dueño, fecha de modificación, modo) son establecidos a no ser que " "*set_attrs* sea falso." -#: ../Doc/library/tarfile.rst:432 +#: ../Doc/library/tarfile.rst:477 +msgid "" +"The *numeric_owner* and *filter* arguments are the same as for :meth:" +"`extractall`." +msgstr "" + +#: ../Doc/library/tarfile.rst:482 msgid "" "The :meth:`extract` method does not take care of several extraction issues. " "In most cases you should consider using the :meth:`extractall` method." @@ -877,15 +940,15 @@ msgstr "" "mayoría de los casos deberías considerar utilizar el método :meth:" "`extractall`." -#: ../Doc/library/tarfile.rst:437 +#: ../Doc/library/tarfile.rst:487 msgid "See the warning for :meth:`extractall`." msgstr "Consulta la advertencia para :meth:`extractall`." -#: ../Doc/library/tarfile.rst:439 +#: ../Doc/library/tarfile.rst:492 msgid "Added the *set_attrs* parameter." msgstr "Se agregó el parámetro *set_attrs*." -#: ../Doc/library/tarfile.rst:451 +#: ../Doc/library/tarfile.rst:507 msgid "" "Extract a member from the archive as a file object. *member* may be a " "filename or a :class:`TarInfo` object. If *member* is a regular file or a " @@ -899,11 +962,85 @@ msgstr "" "todos los demás miembros existentes, se retorna :const:`None`. Si *member* " "no aparece en el archivo, se lanza :exc:`KeyError`." -#: ../Doc/library/tarfile.rst:457 +#: ../Doc/library/tarfile.rst:513 msgid "Return an :class:`io.BufferedReader` object." msgstr "Retorna un objeto :class:`io.BufferedReader`." -#: ../Doc/library/tarfile.rst:463 +#: ../Doc/library/tarfile.rst:519 +#, fuzzy +msgid "" +"If *errorlevel* is ``0``, errors are ignored when using :meth:`TarFile." +"extract` and :meth:`TarFile.extractall`. Nevertheless, they appear as error " +"messages in the debug output when *debug* is greater than 0. If ``1`` (the " +"default), all *fatal* errors are raised as :exc:`OSError` or :exc:" +"`FilterError` exceptions. If ``2``, all *non-fatal* errors are raised as :" +"exc:`TarError` exceptions as well." +msgstr "" +"Si *errorlevel* es ``0``, todos los errores son ignorados cuando se utiliza :" +"meth:`TarFile.extract`. Sin embargo, aparecen como mensajes de error en la " +"salida de depuración, cuando la depuración está habilitada. Si *errorlevel* " +"es ``1``, todos los errores *fatal* son levantados como excepciones :exc:" +"`OSError`. Si *errorlevel* es ``2``, todos los errores *non-fatal* son " +"levantados como excepciones :exc:`TarError`." + +#: ../Doc/library/tarfile.rst:527 +msgid "" +"Some exceptions, e.g. ones caused by wrong argument types or data " +"corruption, are always raised." +msgstr "" + +#: ../Doc/library/tarfile.rst:530 +msgid "" +"Custom :ref:`extraction filters ` should raise :" +"exc:`FilterError` for *fatal* errors and :exc:`ExtractError` for *non-fatal* " +"ones." +msgstr "" + +#: ../Doc/library/tarfile.rst:534 +msgid "" +"Note that when an exception is raised, the archive may be partially " +"extracted. It is the user’s responsibility to clean up." +msgstr "" + +#: ../Doc/library/tarfile.rst:541 +msgid "" +"The :ref:`extraction filter ` used as a default " +"for the *filter* argument of :meth:`~TarFile.extract` and :meth:`~TarFile." +"extractall`." +msgstr "" + +#: ../Doc/library/tarfile.rst:545 +msgid "" +"The attribute may be ``None`` or a callable. String names are not allowed " +"for this attribute, unlike the *filter* argument to :meth:`~TarFile.extract`." +msgstr "" + +#: ../Doc/library/tarfile.rst:549 +msgid "" +"If ``extraction_filter`` is ``None`` (the default), calling an extraction " +"method without a *filter* argument will raise a ``DeprecationWarning``, and " +"fall back to the :func:`fully_trusted ` filter, whose " +"dangerous behavior matches previous versions of Python." +msgstr "" + +#: ../Doc/library/tarfile.rst:555 +msgid "" +"In Python 3.14+, leaving ``extraction_filter=None`` will cause extraction " +"methods to use the :func:`data ` filter by default." +msgstr "" + +#: ../Doc/library/tarfile.rst:558 +msgid "" +"The attribute may be set on instances or overridden in subclasses. It also " +"is possible to set it on the ``TarFile`` class itself to set a global " +"default, although, since it affects all uses of *tarfile*, it is best " +"practice to only do so in top-level applications or :mod:`site configuration " +"`. To set a global default this way, a filter function needs to be " +"wrapped in :func:`staticmethod()` to prevent injection of a ``self`` " +"argument." +msgstr "" + +#: ../Doc/library/tarfile.rst:568 msgid "" "Add the file *name* to the archive. *name* may be any type of file " "(directory, fifo, symbolic link, etc.). If given, *arcname* specifies an " @@ -926,15 +1063,11 @@ msgstr "" "`None`, el objeto :class:`TarInfo` será excluido del archivo. Consulta :ref:" "`tar-examples` para ver un ejemplo." -#: ../Doc/library/tarfile.rst:474 -msgid "Added the *filter* parameter." -msgstr "Se agregó el parámetro *filter*." - -#: ../Doc/library/tarfile.rst:477 +#: ../Doc/library/tarfile.rst:582 msgid "Recursion adds entries in sorted order." msgstr "La recursividad agrega entradas en orden ordenado." -#: ../Doc/library/tarfile.rst:483 +#: ../Doc/library/tarfile.rst:588 msgid "" "Add the :class:`TarInfo` object *tarinfo* to the archive. If *fileobj* is " "given, it should be a :term:`binary file`, and ``tarinfo.size`` bytes are " @@ -946,7 +1079,7 @@ msgstr "" "size`` se leen y se agregan al archivo. Puedes crear objetos :class:" "`TarInfo` directamente o usando :meth:`gettarinfo`." -#: ../Doc/library/tarfile.rst:491 +#: ../Doc/library/tarfile.rst:596 msgid "" "Create a :class:`TarInfo` object from the result of :func:`os.stat` or " "equivalent on an existing file. The file is either named by *name*, or " @@ -965,7 +1098,7 @@ msgstr "" "attr:`~io.FileIO.name`, o el argumento *name*. El nombre puede ser una " "cadena de texto." -#: ../Doc/library/tarfile.rst:500 +#: ../Doc/library/tarfile.rst:605 msgid "" "You can modify some of the :class:`TarInfo`’s attributes before you add it " "using :meth:`addfile`. If the file object is not an ordinary file object " @@ -982,7 +1115,7 @@ msgstr "" "El atributo :attr:`~TarInfo.name` también puede ser modificado, en cuyo caso " "*arcname* podría ser una cadena ficticia." -#: ../Doc/library/tarfile.rst:514 +#: ../Doc/library/tarfile.rst:619 msgid "" "Close the :class:`TarFile`. In write mode, two finishing zero blocks are " "appended to the archive." @@ -990,17 +1123,17 @@ msgstr "" "Cierra :class:`TarFile`. En el modo de escritura, se añaden dos bloques de " "cero de finalización al archivo." -#: ../Doc/library/tarfile.rst:520 +#: ../Doc/library/tarfile.rst:625 msgid "A dictionary containing key-value pairs of pax global headers." msgstr "" "Un diccionario que contiene pares claves-valor de los encabezados globales " "pax." -#: ../Doc/library/tarfile.rst:527 +#: ../Doc/library/tarfile.rst:632 msgid "TarInfo Objects" msgstr "Objetos TarInfo" -#: ../Doc/library/tarfile.rst:529 +#: ../Doc/library/tarfile.rst:634 msgid "" "A :class:`TarInfo` object represents one member in a :class:`TarFile`. Aside " "from storing all required attributes of a file (like file type, size, time, " @@ -1013,27 +1146,59 @@ msgstr "" "útiles para determinar su tipo. No contiene los datos del archivo por si " "mismo." -#: ../Doc/library/tarfile.rst:534 +#: ../Doc/library/tarfile.rst:639 +#, fuzzy msgid "" ":class:`TarInfo` objects are returned by :class:`TarFile`'s methods :meth:" -"`getmember`, :meth:`getmembers` and :meth:`gettarinfo`." +"`~TarFile.getmember`, :meth:`~TarFile.getmembers` and :meth:`~TarFile." +"gettarinfo`." msgstr "" "Los objetos :class:`TarInfo` son retornados por métodos :class:`TarFile`' :" "meth:`getmember`, :meth:`getmembers` y :meth:`gettarinfo`." -#: ../Doc/library/tarfile.rst:540 +#: ../Doc/library/tarfile.rst:643 +msgid "" +"Modifying the objects returned by :meth:`~!TarFile.getmember` or :meth:`~!" +"TarFile.getmembers` will affect all subsequent operations on the archive. " +"For cases where this is unwanted, you can use :mod:`copy.copy() ` or " +"call the :meth:`~TarInfo.replace` method to create a modified copy in one " +"step." +msgstr "" + +#: ../Doc/library/tarfile.rst:649 +msgid "" +"Several attributes can be set to ``None`` to indicate that a piece of " +"metadata is unused or unknown. Different :class:`TarInfo` methods handle " +"``None`` differently:" +msgstr "" + +#: ../Doc/library/tarfile.rst:653 +msgid "" +"The :meth:`~TarFile.extract` or :meth:`~TarFile.extractall` methods will " +"ignore the corresponding metadata, leaving it set to a default." +msgstr "" + +#: ../Doc/library/tarfile.rst:655 +msgid ":meth:`~TarFile.addfile` will fail." +msgstr "" + +#: ../Doc/library/tarfile.rst:656 +msgid ":meth:`~TarFile.list` will print a placeholder string." +msgstr "" + +#: ../Doc/library/tarfile.rst:660 msgid "Create a :class:`TarInfo` object." msgstr "Crea un objeto :class:`TarInfo`." -#: ../Doc/library/tarfile.rst:545 +#: ../Doc/library/tarfile.rst:665 msgid "Create and return a :class:`TarInfo` object from string buffer *buf*." msgstr "Crea y retorna un objeto :class:`TarInfo`." -#: ../Doc/library/tarfile.rst:547 +#: ../Doc/library/tarfile.rst:667 msgid "Raises :exc:`HeaderError` if the buffer is invalid." msgstr "Lanza una excepción :exc:`HeaderError` si el buffer es invalido." -#: ../Doc/library/tarfile.rst:552 +#: ../Doc/library/tarfile.rst:672 msgid "" "Read the next member from the :class:`TarFile` object *tarfile* and return " "it as a :class:`TarInfo` object." @@ -1041,7 +1206,7 @@ msgstr "" "Lee el siguiente miembro del objeto de la clase :class:`TarFile` *tarfile* y " "lo retorna como un objeto :class:`TarInfo`." -#: ../Doc/library/tarfile.rst:558 +#: ../Doc/library/tarfile.rst:678 msgid "" "Create a string buffer from a :class:`TarInfo` object. For information on " "the arguments see the constructor of the :class:`TarFile` class." @@ -1050,27 +1215,37 @@ msgstr "" "información sobre los argumentos consulta el constructor de la clase :class:" "`TarFile`." -#: ../Doc/library/tarfile.rst:565 +#: ../Doc/library/tarfile.rst:685 msgid "A ``TarInfo`` object has the following public data attributes:" msgstr "Un objeto ``TarInfo`` tiene los siguientes atributos de dato públicos:" -#: ../Doc/library/tarfile.rst:570 +#: ../Doc/library/tarfile.rst:691 msgid "Name of the archive member." msgstr "Nombre del archivo miembro." -#: ../Doc/library/tarfile.rst:575 +#: ../Doc/library/tarfile.rst:697 msgid "Size in bytes." msgstr "Tamaño en bytes." -#: ../Doc/library/tarfile.rst:580 -msgid "Time of last modification." -msgstr "Hora de la última modificación." +#: ../Doc/library/tarfile.rst:703 +msgid "" +"Time of last modification in seconds since the :ref:`epoch `, as in :" +"attr:`os.stat_result.st_mtime`." +msgstr "" -#: ../Doc/library/tarfile.rst:585 -msgid "Permission bits." -msgstr "Bits de permiso." +#: ../Doc/library/tarfile.rst:708 ../Doc/library/tarfile.rst:719 +#: ../Doc/library/tarfile.rst:751 ../Doc/library/tarfile.rst:762 +#: ../Doc/library/tarfile.rst:773 ../Doc/library/tarfile.rst:784 +msgid "" +"Can be set to ``None`` for :meth:`~TarFile.extract` and :meth:`~TarFile." +"extractall`, causing extraction to skip applying this attribute." +msgstr "" + +#: ../Doc/library/tarfile.rst:715 +msgid "Permission bits, as for :func:`os.chmod`." +msgstr "" -#: ../Doc/library/tarfile.rst:590 +#: ../Doc/library/tarfile.rst:725 msgid "" "File type. *type* is usually one of these constants: :const:`REGTYPE`, :" "const:`AREGTYPE`, :const:`LNKTYPE`, :const:`SYMTYPE`, :const:`DIRTYPE`, :" @@ -1085,7 +1260,7 @@ msgstr "" "objeto :class:`TarInfo` de forma más conveniente, utiliza los métodos " "``is*()`` de abajo." -#: ../Doc/library/tarfile.rst:599 +#: ../Doc/library/tarfile.rst:735 msgid "" "Name of the target file name, which is only present in :class:`TarInfo` " "objects of type :const:`LNKTYPE` and :const:`SYMTYPE`." @@ -1093,80 +1268,452 @@ msgstr "" "Nombre del archivo objetivo, el cual solo está presente en los objetos :" "class:`TarInfo` de tipo :const:`LNKTYPE` y del tipo :const:`SYMTYPE`." -#: ../Doc/library/tarfile.rst:605 +#: ../Doc/library/tarfile.rst:738 +msgid "" +"For symbolic links (``SYMTYPE``), the *linkname* is relative to the " +"directory that contains the link. For hard links (``LNKTYPE``), the " +"*linkname* is relative to the root of the archive." +msgstr "" + +#: ../Doc/library/tarfile.rst:747 msgid "User ID of the user who originally stored this member." msgstr "ID de usuario que originalmente almacenó este miembro." -#: ../Doc/library/tarfile.rst:610 +#: ../Doc/library/tarfile.rst:758 msgid "Group ID of the user who originally stored this member." msgstr "ID de grupo del usuario que originalmente almacenó este miembro." -#: ../Doc/library/tarfile.rst:615 +#: ../Doc/library/tarfile.rst:769 msgid "User name." msgstr "Nombre de usuario." -#: ../Doc/library/tarfile.rst:620 +#: ../Doc/library/tarfile.rst:780 msgid "Group name." msgstr "Nombre del grupo." -#: ../Doc/library/tarfile.rst:625 +#: ../Doc/library/tarfile.rst:791 msgid "" "A dictionary containing key-value pairs of an associated pax extended header." msgstr "" "Un diccionario que contiene pares *key-value* de un encabezado *pax " "extended*." -#: ../Doc/library/tarfile.rst:628 +#: ../Doc/library/tarfile.rst:799 +msgid "" +"Return a *new* copy of the :class:`!TarInfo` object with the given " +"attributes changed. For example, to return a ``TarInfo`` with the group name " +"set to ``'staff'``, use::" +msgstr "" + +#: ../Doc/library/tarfile.rst:805 +msgid "" +"By default, a deep copy is made. If *deep* is false, the copy is shallow, i." +"e. ``pax_headers`` and any custom attributes are shared with the original " +"``TarInfo`` object." +msgstr "" + +#: ../Doc/library/tarfile.rst:809 msgid "A :class:`TarInfo` object also provides some convenient query methods:" msgstr "" "Un objeto :class:`TarInfo` también provee de algunos métodos de consulta " "convenientes:" -#: ../Doc/library/tarfile.rst:633 +#: ../Doc/library/tarfile.rst:814 msgid "Return :const:`True` if the :class:`Tarinfo` object is a regular file." msgstr "" "Retorna :const:`True` si el objeto :class:`Tarinfo` es un archivo regular." -#: ../Doc/library/tarfile.rst:638 +#: ../Doc/library/tarfile.rst:819 msgid "Same as :meth:`isfile`." msgstr "Igual que :meth:`isfile`." -#: ../Doc/library/tarfile.rst:643 +#: ../Doc/library/tarfile.rst:824 msgid "Return :const:`True` if it is a directory." msgstr "Retorna :const:`True` si es un directorio." -#: ../Doc/library/tarfile.rst:648 +#: ../Doc/library/tarfile.rst:829 msgid "Return :const:`True` if it is a symbolic link." msgstr "Retorna :const:`True` si es un enlace simbólico." -#: ../Doc/library/tarfile.rst:653 +#: ../Doc/library/tarfile.rst:834 msgid "Return :const:`True` if it is a hard link." msgstr "Retorna :const:`True` si es un enlace duro." -#: ../Doc/library/tarfile.rst:658 +#: ../Doc/library/tarfile.rst:839 msgid "Return :const:`True` if it is a character device." msgstr "Retorna :const:`True` si es un dispositivo de caracter." -#: ../Doc/library/tarfile.rst:663 +#: ../Doc/library/tarfile.rst:844 msgid "Return :const:`True` if it is a block device." msgstr "Retorna :const:`True` si es un dispositivo de bloque." -#: ../Doc/library/tarfile.rst:668 +#: ../Doc/library/tarfile.rst:849 msgid "Return :const:`True` if it is a FIFO." msgstr "Retorna :const:`True` si es un FIFO." -#: ../Doc/library/tarfile.rst:673 +#: ../Doc/library/tarfile.rst:854 msgid "" "Return :const:`True` if it is one of character device, block device or FIFO." msgstr "" "Retorna :const:`True` si es uno de los caracteres de dispositivo, " "dispositivo de bloque o FIFO." -#: ../Doc/library/tarfile.rst:680 +#: ../Doc/library/tarfile.rst:860 +msgid "Extraction filters" +msgstr "" + +#: ../Doc/library/tarfile.rst:864 +msgid "" +"The *tar* format is designed to capture all details of a UNIX-like " +"filesystem, which makes it very powerful. Unfortunately, the features make " +"it easy to create tar files that have unintended -- and possibly malicious " +"-- effects when extracted. For example, extracting a tar file can overwrite " +"arbitrary files in various ways (e.g. by using absolute paths, ``..`` path " +"components, or symlinks that affect later members)." +msgstr "" + +#: ../Doc/library/tarfile.rst:872 +msgid "" +"In most cases, the full functionality is not needed. Therefore, *tarfile* " +"supports extraction filters: a mechanism to limit functionality, and thus " +"mitigate some of the security issues." +msgstr "" + +#: ../Doc/library/tarfile.rst:878 +msgid ":pep:`706`" +msgstr "" + +#: ../Doc/library/tarfile.rst:879 +msgid "Contains further motivation and rationale behind the design." +msgstr "" + +#: ../Doc/library/tarfile.rst:881 +msgid "" +"The *filter* argument to :meth:`TarFile.extract` or :meth:`~TarFile." +"extractall` can be:" +msgstr "" + +#: ../Doc/library/tarfile.rst:884 +msgid "" +"the string ``'fully_trusted'``: Honor all metadata as specified in the " +"archive. Should be used if the user trusts the archive completely, or " +"implements their own complex verification." +msgstr "" + +#: ../Doc/library/tarfile.rst:889 +msgid "" +"the string ``'tar'``: Honor most *tar*-specific features (i.e. features of " +"UNIX-like filesystems), but block features that are very likely to be " +"surprising or malicious. See :func:`tar_filter` for details." +msgstr "" + +#: ../Doc/library/tarfile.rst:893 +msgid "" +"the string ``'data'``: Ignore or block most features specific to UNIX-like " +"filesystems. Intended for extracting cross-platform data archives. See :func:" +"`data_filter` for details." +msgstr "" + +#: ../Doc/library/tarfile.rst:897 +msgid "``None`` (default): Use :attr:`TarFile.extraction_filter`." +msgstr "" + +#: ../Doc/library/tarfile.rst:899 +msgid "" +"If that is also ``None`` (the default), raise a ``DeprecationWarning``, and " +"fall back to the ``'fully_trusted'`` filter, whose dangerous behavior " +"matches previous versions of Python." +msgstr "" + +#: ../Doc/library/tarfile.rst:903 +msgid "" +"In Python 3.14, the ``'data'`` filter will become the default instead. It's " +"possible to switch earlier; see :attr:`TarFile.extraction_filter`." +msgstr "" + +#: ../Doc/library/tarfile.rst:906 +msgid "" +"A callable which will be called for each extracted member with a :ref:" +"`TarInfo ` describing the member and the destination path " +"to where the archive is extracted (i.e. the same path is used for all " +"members)::" +msgstr "" + +#: ../Doc/library/tarfile.rst:913 +msgid "" +"The callable is called just before each member is extracted, so it can take " +"the current state of the disk into account. It can:" +msgstr "" + +#: ../Doc/library/tarfile.rst:917 +msgid "" +"return a :class:`TarInfo` object which will be used instead of the metadata " +"in the archive, or" +msgstr "" + +#: ../Doc/library/tarfile.rst:919 +msgid "return ``None``, in which case the member will be skipped, or" +msgstr "" + +#: ../Doc/library/tarfile.rst:920 +msgid "" +"raise an exception to abort the operation or skip the member, depending on :" +"attr:`~TarFile.errorlevel`. Note that when extraction is aborted, :meth:" +"`~TarFile.extractall` may leave the archive partially extracted. It does not " +"attempt to clean up." +msgstr "" + +#: ../Doc/library/tarfile.rst:926 +msgid "Default named filters" +msgstr "" + +#: ../Doc/library/tarfile.rst:928 +msgid "" +"The pre-defined, named filters are available as functions, so they can be " +"reused in custom filters:" +msgstr "" + +#: ../Doc/library/tarfile.rst:933 +msgid "Return *member* unchanged." +msgstr "" + +#: ../Doc/library/tarfile.rst:935 +msgid "This implements the ``'fully_trusted'`` filter." +msgstr "" + +#: ../Doc/library/tarfile.rst:939 +msgid "Implements the ``'tar'`` filter." +msgstr "" + +#: ../Doc/library/tarfile.rst:941 +msgid "Strip leading slashes (``/`` and :data:`os.sep`) from filenames." +msgstr "" + +#: ../Doc/library/tarfile.rst:942 +msgid "" +":ref:`Refuse ` to extract files with absolute " +"paths (in case the name is absolute even after stripping slashes, e.g. ``C:/" +"foo`` on Windows). This raises :class:`~tarfile.AbsolutePathError`." +msgstr "" + +#: ../Doc/library/tarfile.rst:946 +msgid "" +":ref:`Refuse ` to extract files whose absolute " +"path (after following symlinks) would end up outside the destination. This " +"raises :class:`~tarfile.OutsideDestinationError`." +msgstr "" + +#: ../Doc/library/tarfile.rst:949 +msgid "" +"Clear high mode bits (setuid, setgid, sticky) and group/other write bits (:" +"const:`~stat.S_IWGRP`|:const:`~stat.S_IWOTH`)." +msgstr "" + +#: ../Doc/library/tarfile.rst:952 ../Doc/library/tarfile.rst:985 +msgid "Return the modified ``TarInfo`` member." +msgstr "" + +#: ../Doc/library/tarfile.rst:956 +msgid "" +"Implements the ``'data'`` filter. In addition to what ``tar_filter`` does:" +msgstr "" + +#: ../Doc/library/tarfile.rst:959 +msgid "" +":ref:`Refuse ` to extract links (hard or soft) " +"that link to absolute paths, or ones that link outside the destination." +msgstr "" + +#: ../Doc/library/tarfile.rst:962 +msgid "" +"This raises :class:`~tarfile.AbsoluteLinkError` or :class:`~tarfile." +"LinkOutsideDestinationError`." +msgstr "" + +#: ../Doc/library/tarfile.rst:965 +msgid "" +"Note that such files are refused even on platforms that do not support " +"symbolic links." +msgstr "" + +#: ../Doc/library/tarfile.rst:968 +msgid "" +":ref:`Refuse ` to extract device files (including " +"pipes). This raises :class:`~tarfile.SpecialFileError`." +msgstr "" + +#: ../Doc/library/tarfile.rst:972 +msgid "For regular files, including hard links:" +msgstr "" + +#: ../Doc/library/tarfile.rst:974 +msgid "" +"Set the owner read and write permissions (:const:`~stat.S_IRUSR`|:const:" +"`~stat.S_IWUSR`)." +msgstr "" + +#: ../Doc/library/tarfile.rst:976 +msgid "" +"Remove the group & other executable permission (:const:`~stat.S_IXGRP`|:" +"const:`~stat.S_IXOTH`) if the owner doesn’t have it (:const:`~stat.S_IXUSR`)." +msgstr "" + +#: ../Doc/library/tarfile.rst:980 +msgid "" +"For other files (directories), set ``mode`` to ``None``, so that extraction " +"methods skip applying permission bits." +msgstr "" + +#: ../Doc/library/tarfile.rst:982 +msgid "" +"Set user and group info (``uid``, ``gid``, ``uname``, ``gname``) to " +"``None``, so that extraction methods skip setting it." +msgstr "" + +#: ../Doc/library/tarfile.rst:991 +msgid "Filter errors" +msgstr "" + +#: ../Doc/library/tarfile.rst:993 +msgid "" +"When a filter refuses to extract a file, it will raise an appropriate " +"exception, a subclass of :class:`~tarfile.FilterError`. This will abort the " +"extraction if :attr:`TarFile.errorlevel` is 1 or more. With ``errorlevel=0`` " +"the error will be logged and the member will be skipped, but extraction will " +"continue." +msgstr "" + +#: ../Doc/library/tarfile.rst:1001 +msgid "Hints for further verification" +msgstr "" + +#: ../Doc/library/tarfile.rst:1003 +msgid "" +"Even with ``filter='data'``, *tarfile* is not suited for extracting " +"untrusted files without prior inspection. Among other issues, the pre-" +"defined filters do not prevent denial-of-service attacks. Users should do " +"additional checks." +msgstr "" + +#: ../Doc/library/tarfile.rst:1008 +msgid "Here is an incomplete list of things to consider:" +msgstr "" + +#: ../Doc/library/tarfile.rst:1010 +msgid "" +"Extract to a :func:`new temporary directory ` to prevent e." +"g. exploiting pre-existing links, and to make it easier to clean up after a " +"failed extraction." +msgstr "" + +#: ../Doc/library/tarfile.rst:1013 +msgid "" +"When working with untrusted data, use external (e.g. OS-level) limits on " +"disk, memory and CPU usage." +msgstr "" + +#: ../Doc/library/tarfile.rst:1015 +msgid "" +"Check filenames against an allow-list of characters (to filter out control " +"characters, confusables, foreign path separators, etc.)." +msgstr "" + +#: ../Doc/library/tarfile.rst:1018 +msgid "" +"Check that filenames have expected extensions (discouraging files that " +"execute when you “click on them”, or extension-less files like Windows " +"special device names)." +msgstr "" + +#: ../Doc/library/tarfile.rst:1020 +msgid "" +"Limit the number of extracted files, total size of extracted data, filename " +"length (including symlink length), and size of individual files." +msgstr "" + +#: ../Doc/library/tarfile.rst:1022 +msgid "Check for files that would be shadowed on case-insensitive filesystems." +msgstr "" + +#: ../Doc/library/tarfile.rst:1024 +msgid "Also note that:" +msgstr "" + +#: ../Doc/library/tarfile.rst:1026 +msgid "" +"Tar files may contain multiple versions of the same file. Later ones are " +"expected to overwrite any earlier ones. This feature is crucial to allow " +"updating tape archives, but can be abused maliciously." +msgstr "" + +#: ../Doc/library/tarfile.rst:1030 +msgid "" +"*tarfile* does not protect against issues with “live” data, e.g. an attacker " +"tinkering with the destination (or source) directory while extraction (or " +"archiving) is in progress." +msgstr "" + +#: ../Doc/library/tarfile.rst:1036 +msgid "Supporting older Python versions" +msgstr "" + +#: ../Doc/library/tarfile.rst:1038 +msgid "" +"Extraction filters were added to Python 3.12, but may be backported to older " +"versions as security updates. To check whether the feature is available, use " +"e.g. ``hasattr(tarfile, 'data_filter')`` rather than checking the Python " +"version." +msgstr "" + +#: ../Doc/library/tarfile.rst:1043 +msgid "" +"The following examples show how to support Python versions with and without " +"the feature. Note that setting ``extraction_filter`` will affect any " +"subsequent operations." +msgstr "" + +#: ../Doc/library/tarfile.rst:1047 +msgid "Fully trusted archive::" +msgstr "" + +#: ../Doc/library/tarfile.rst:1052 +msgid "" +"Use the ``'data'`` filter if available, but revert to Python 3.11 behavior " +"(``'fully_trusted'``) if this feature is not available::" +msgstr "" + +#: ../Doc/library/tarfile.rst:1059 +msgid "Use the ``'data'`` filter; *fail* if it is not available::" +msgstr "" + +#: ../Doc/library/tarfile.rst:1063 +msgid "or::" +msgstr "" + +#: ../Doc/library/tarfile.rst:1068 +msgid "Use the ``'data'`` filter; *warn* if it is not available::" +msgstr "" + +#: ../Doc/library/tarfile.rst:1079 +msgid "Stateful extraction filter example" +msgstr "" + +#: ../Doc/library/tarfile.rst:1081 +msgid "" +"While *tarfile*'s extraction methods take a simple *filter* callable, custom " +"filters may be more complex objects with an internal state. It may be useful " +"to write these as context managers, to be used like this::" +msgstr "" + +#: ../Doc/library/tarfile.rst:1088 +msgid "Such a filter can be written as, for example::" +msgstr "" + +#: ../Doc/library/tarfile.rst:1110 msgid "Command-Line Interface" msgstr "Interfaz de línea de comandos" -#: ../Doc/library/tarfile.rst:684 +#: ../Doc/library/tarfile.rst:1114 msgid "" "The :mod:`tarfile` module provides a simple command-line interface to " "interact with tar archives." @@ -1174,7 +1721,7 @@ msgstr "" "El módulo :mod:`tarfile` provee una interfaz de línea de comandos sencilla " "para interactuar con archivos tar." -#: ../Doc/library/tarfile.rst:687 +#: ../Doc/library/tarfile.rst:1117 msgid "" "If you want to create a new tar archive, specify its name after the :option:" "`-c` option and then list the filename(s) that should be included:" @@ -1183,11 +1730,11 @@ msgstr "" "opción :option:`-c` y después lista el nombre de archivo(s) que deberían ser " "incluidos:" -#: ../Doc/library/tarfile.rst:694 +#: ../Doc/library/tarfile.rst:1124 msgid "Passing a directory is also acceptable:" msgstr "Proporcionar un directorio también es aceptable:" -#: ../Doc/library/tarfile.rst:700 +#: ../Doc/library/tarfile.rst:1130 msgid "" "If you want to extract a tar archive into the current directory, use the :" "option:`-e` option:" @@ -1195,7 +1742,7 @@ msgstr "" "Si deseas extraer un archivo tar en el directorio actual, utiliza la opción :" "option:`-e`:" -#: ../Doc/library/tarfile.rst:707 +#: ../Doc/library/tarfile.rst:1137 msgid "" "You can also extract a tar archive into a different directory by passing the " "directory's name:" @@ -1203,48 +1750,55 @@ msgstr "" "También puedes extraer un archivo tar en un directorio diferente pasando el " "nombre del directorio como parámetro:" -#: ../Doc/library/tarfile.rst:714 +#: ../Doc/library/tarfile.rst:1144 msgid "For a list of the files in a tar archive, use the :option:`-l` option:" msgstr "" "Para obtener una lista de archivos dentro de un archivo tar, utiliza la " "opción :option:`-l`:" -#: ../Doc/library/tarfile.rst:722 +#: ../Doc/library/tarfile.rst:1152 msgid "Command-line options" msgstr "Opciones de línea de comandos" -#: ../Doc/library/tarfile.rst:727 +#: ../Doc/library/tarfile.rst:1157 msgid "List files in a tarfile." msgstr "Listar archivos en un tar." -#: ../Doc/library/tarfile.rst:732 +#: ../Doc/library/tarfile.rst:1162 msgid "Create tarfile from source files." msgstr "Crear archivo tar desde archivos fuente." -#: ../Doc/library/tarfile.rst:737 +#: ../Doc/library/tarfile.rst:1167 msgid "" "Extract tarfile into the current directory if *output_dir* is not specified." msgstr "" "Extrae el archivo tar en el directorio actual si *output_dir* no es " "especificado." -#: ../Doc/library/tarfile.rst:742 +#: ../Doc/library/tarfile.rst:1172 msgid "Test whether the tarfile is valid or not." msgstr "Probar si el archivo tar es valido o no." -#: ../Doc/library/tarfile.rst:746 +#: ../Doc/library/tarfile.rst:1176 msgid "Verbose output." msgstr "Output *verbose*." -#: ../Doc/library/tarfile.rst:751 +#: ../Doc/library/tarfile.rst:1180 +msgid "" +"Specifies the *filter* for ``--extract``. See :ref:`tarfile-extraction-" +"filter` for details. Only string names are accepted (that is, " +"``fully_trusted``, ``tar``, and ``data``)." +msgstr "" + +#: ../Doc/library/tarfile.rst:1188 msgid "Examples" msgstr "Ejemplos" -#: ../Doc/library/tarfile.rst:753 +#: ../Doc/library/tarfile.rst:1190 msgid "How to extract an entire tar archive to the current working directory::" msgstr "Cómo extraer un archivo tar entero al directorio de trabajo actual::" -#: ../Doc/library/tarfile.rst:760 +#: ../Doc/library/tarfile.rst:1197 msgid "" "How to extract a subset of a tar archive with :meth:`TarFile.extractall` " "using a generator function instead of a list::" @@ -1252,17 +1806,17 @@ msgstr "" "Cómo extraer un subconjunto de un archivo tar con :meth:`TarFile.extractall` " "utilizando una función generadora en lugar de una lista::" -#: ../Doc/library/tarfile.rst:775 +#: ../Doc/library/tarfile.rst:1212 msgid "How to create an uncompressed tar archive from a list of filenames::" msgstr "" "Cómo crear un archivo tar sin comprimir desde una lista de nombres de " "archivo::" -#: ../Doc/library/tarfile.rst:783 +#: ../Doc/library/tarfile.rst:1220 msgid "The same example using the :keyword:`with` statement::" msgstr "El mismo ejemplo utilizando la declaración :keyword:`with`::" -#: ../Doc/library/tarfile.rst:790 +#: ../Doc/library/tarfile.rst:1227 msgid "" "How to read a gzip compressed tar archive and display some member " "information::" @@ -1270,7 +1824,7 @@ msgstr "" "Cómo leer un archivo tar comprimido con gzip y desplegar un poco de " "información del miembro::" -#: ../Doc/library/tarfile.rst:804 +#: ../Doc/library/tarfile.rst:1241 msgid "" "How to create an archive and reset the user information using the *filter* " "parameter in :meth:`TarFile.add`::" @@ -1278,18 +1832,18 @@ msgstr "" "Cómo crear un archivo y reiniciar la información del usuario usando el " "parámetro *filter* en :meth:`TarFile.add`::" -#: ../Doc/library/tarfile.rst:820 +#: ../Doc/library/tarfile.rst:1257 msgid "Supported tar formats" msgstr "Formatos tar con soporte" -#: ../Doc/library/tarfile.rst:822 +#: ../Doc/library/tarfile.rst:1259 msgid "" "There are three tar formats that can be created with the :mod:`tarfile` " "module:" msgstr "" "Hay tres formatos tar que puede ser creados con el módulo :mod:`tarfile`:" -#: ../Doc/library/tarfile.rst:824 +#: ../Doc/library/tarfile.rst:1261 msgid "" "The POSIX.1-1988 ustar format (:const:`USTAR_FORMAT`). It supports filenames " "up to a length of at best 256 characters and linknames up to 100 characters. " @@ -1301,7 +1855,7 @@ msgstr "" "hasta 100 caracteres. El tamaño máximo de archivo es de 8 GiB. Este es un " "formato viejo y limitado pero con amplio soporte." -#: ../Doc/library/tarfile.rst:829 +#: ../Doc/library/tarfile.rst:1266 msgid "" "The GNU tar format (:const:`GNU_FORMAT`). It supports long filenames and " "linknames, files bigger than 8 GiB and sparse files. It is the de facto " @@ -1314,7 +1868,7 @@ msgstr "" "admite de forma completa las extensiones de GNU tar para nombres largos, el " "soporte para archivos dispersos es de solo lectura." -#: ../Doc/library/tarfile.rst:834 +#: ../Doc/library/tarfile.rst:1271 #, fuzzy msgid "" "The POSIX.1-2001 pax format (:const:`PAX_FORMAT`). It is the most flexible " @@ -1335,7 +1889,7 @@ msgstr "" "estuvieran en el formato *ustar* compatible universalmente. Es el formato " "predeterminado actual para archivos nuevos." -#: ../Doc/library/tarfile.rst:842 +#: ../Doc/library/tarfile.rst:1279 msgid "" "It extends the existing *ustar* format with extra headers for information " "that cannot be stored otherwise. There are two flavours of pax headers: " @@ -1350,14 +1904,14 @@ msgstr "" "entero y afectan todos los siguientes archivos. Todos los datos en un " "encabezado pax son codificados en *UTF-8* por razones de portabilidad." -#: ../Doc/library/tarfile.rst:848 +#: ../Doc/library/tarfile.rst:1285 msgid "" "There are some more variants of the tar format which can be read, but not " "created:" msgstr "" "Existen más variantes del formato tar que puede ser leídas, pero no creadas:" -#: ../Doc/library/tarfile.rst:851 +#: ../Doc/library/tarfile.rst:1288 msgid "" "The ancient V7 format. This is the first tar format from Unix Seventh " "Edition, storing only regular files and directories. Names must not be " @@ -1372,7 +1926,7 @@ msgstr "" "encabezado mal calculadas en el caso de campos con caracteres que no son " "ASCII." -#: ../Doc/library/tarfile.rst:856 +#: ../Doc/library/tarfile.rst:1293 msgid "" "The SunOS tar extended format. This format is a variant of the POSIX.1-2001 " "pax format, but is not compatible." @@ -1380,11 +1934,11 @@ msgstr "" "El formato extendido tar de SunOS. Este formato es una variante del formato " "POSIX.1-2001 pax, pero no es compatible." -#: ../Doc/library/tarfile.rst:862 +#: ../Doc/library/tarfile.rst:1299 msgid "Unicode issues" msgstr "Problemas unicode" -#: ../Doc/library/tarfile.rst:864 +#: ../Doc/library/tarfile.rst:1301 msgid "" "The tar format was originally conceived to make backups on tape drives with " "the main focus on preserving file system information. Nowadays tar archives " @@ -1413,7 +1967,7 @@ msgstr "" "este problema. Almacena los metadatos no ASCII usando una codificación de " "caracteres universal *UTF-8*." -#: ../Doc/library/tarfile.rst:876 +#: ../Doc/library/tarfile.rst:1313 msgid "" "The details of character conversion in :mod:`tarfile` are controlled by the " "*encoding* and *errors* keyword arguments of the :class:`TarFile` class." @@ -1422,7 +1976,7 @@ msgstr "" "controlados por los argumentos de palabra clave *encoding* y *errors* de la " "clase :class:`TarFile`." -#: ../Doc/library/tarfile.rst:879 +#: ../Doc/library/tarfile.rst:1316 msgid "" "*encoding* defines the character encoding to use for the metadata in the " "archive. The default value is :func:`sys.getfilesystemencoding` or " @@ -1437,7 +1991,7 @@ msgstr "" "codificarse. Si el *encoding* no se configura correctamente, esta conversión " "puede fallar." -#: ../Doc/library/tarfile.rst:885 +#: ../Doc/library/tarfile.rst:1322 msgid "" "The *errors* argument defines how characters are treated that cannot be " "converted. Possible values are listed in section :ref:`error-handlers`. The " @@ -1450,7 +2004,7 @@ msgstr "" "``'surrogateescape'`` el cual Python también utiliza para sus llamadas al " "sistema de archivos. Consulta :ref:`os-filenames`." -#: ../Doc/library/tarfile.rst:890 +#: ../Doc/library/tarfile.rst:1327 msgid "" "For :const:`PAX_FORMAT` archives (the default), *encoding* is generally not " "needed because all the metadata is stored using *UTF-8*. *encoding* is only " @@ -1462,3 +2016,9 @@ msgstr "" "utilizando *UTF-8*, el *encoding* solo es utilizado en aquellos casos cuando " "las cabeceras binarias PAX son decodificadas o cuando se almacenan cadenas " "de texto con caracteres sustitutos." + +#~ msgid "Time of last modification." +#~ msgstr "Hora de la última modificación." + +#~ msgid "Permission bits." +#~ msgstr "Bits de permiso." diff --git a/library/telnetlib.po b/library/telnetlib.po index fc125e00b3..392123cd3d 100644 --- a/library/telnetlib.po +++ b/library/telnetlib.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-02-05 21:26-0600\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es_AR\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/telnetlib.rst:2 msgid ":mod:`telnetlib` --- Telnet client" @@ -69,11 +69,12 @@ msgstr "" "(Eliminar Character), EL (Erase Line), GA (Go Ahead), SB (Subnegotiation " "Begin)." +#: ../Doc/includes/wasm-notavail.rst:3 #, fuzzy msgid ":ref:`Availability `: not Emscripten, not WASI." msgstr ":ref:`Disponibilidad `: no Emscripten, no WASI." -#: ../Doc/library/cpython/Doc/includes/wasm-notavail.rst:5 +#: ../Doc/includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly platforms " "``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for " @@ -395,3 +396,12 @@ msgstr "Ejemplo de telnet" #: ../Doc/library/telnetlib.rst:241 msgid "A simple example illustrating typical use::" msgstr "Un ejemplo sencillo que ilustra el uso típico::" + +#: ../Doc/library/telnetlib.rst:12 +msgid "protocol" +msgstr "" + +#: ../Doc/library/telnetlib.rst:12 +#, fuzzy +msgid "Telnet" +msgstr "Objetos telnet" diff --git a/library/tempfile.po b/library/tempfile.po index 223aa9641a..4f3c3564cf 100644 --- a/library/tempfile.po +++ b/library/tempfile.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-02-28 10:45-0300\n" "Last-Translator: Alfonso Areiza Guerrao \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/tempfile.rst:2 msgid ":mod:`tempfile` --- Generate temporary files and directories" @@ -134,9 +133,10 @@ msgstr "" "atributo :attr:`!file` es el objeto de archivo verdadero subyacente." #: ../Doc/library/tempfile.rst:62 +#, fuzzy msgid "" -"The :py:data:`os.O_TMPFILE` flag is used if it is available and works (Linux-" -"specific, requires Linux kernel 3.11 or later)." +"The :py:const:`os.O_TMPFILE` flag is used if it is available and works " +"(Linux-specific, requires Linux kernel 3.11 or later)." msgstr "" "El indicador :py:data:`os.O_TMPFILE` se usa si está disponible (específico " "de Linux, requiere el kernel de Linux 3.11 o posterior)." @@ -149,8 +149,8 @@ msgstr "" "En plataformas que no son ni Posix ni Cygwin, TemporaryFile es un alias de " "NamedTemporaryFile." -#: ../Doc/library/tempfile.rst:68 ../Doc/library/tempfile.rst:96 -#: ../Doc/library/tempfile.rst:205 +#: ../Doc/library/tempfile.rst:68 ../Doc/library/tempfile.rst:137 +#: ../Doc/library/tempfile.rst:258 msgid "" "Raises an :ref:`auditing event ` ``tempfile.mkstemp`` with " "argument ``fullpath``." @@ -159,41 +159,111 @@ msgstr "" "argumento ``fullpath``." #: ../Doc/library/tempfile.rst:72 -msgid "The :py:data:`os.O_TMPFILE` flag is now used if available." +#, fuzzy +msgid "The :py:const:`os.O_TMPFILE` flag is now used if available." msgstr "El indicador :py:data:`os.O_TMPFILE` ahora se usa si está disponible." -#: ../Doc/library/tempfile.rst:74 ../Doc/library/tempfile.rst:98 -#: ../Doc/library/tempfile.rst:123 +#: ../Doc/library/tempfile.rst:74 ../Doc/library/tempfile.rst:139 +#: ../Doc/library/tempfile.rst:167 msgid "Added *errors* parameter." msgstr "Se agregó el parámetro *errors*." #: ../Doc/library/tempfile.rst:80 msgid "" -"This function operates exactly as :func:`TemporaryFile` does, except that " -"the file is guaranteed to have a visible name in the file system (on Unix, " -"the directory entry is not unlinked). That name can be retrieved from the :" -"attr:`name` attribute of the returned file-like object. Whether the name " -"can be used to open the file a second time, while the named temporary file " -"is still open, varies across platforms (it can be so used on Unix; it cannot " -"on Windows). If *delete* is true (the default), the file is deleted as soon " -"as it is closed. The returned object is always a file-like object whose :" -"attr:`!file` attribute is the underlying true file object. This file-like " -"object can be used in a :keyword:`with` statement, just like a normal file." +"This function operates exactly as :func:`TemporaryFile` does, except the " +"following differences:" +msgstr "" + +#: ../Doc/library/tempfile.rst:83 +msgid "" +"This function returns a file that is guaranteed to have a visible name in " +"the file system." +msgstr "" + +#: ../Doc/library/tempfile.rst:85 +msgid "" +"To manage the named file, it extends the parameters of :func:`TemporaryFile` " +"with *delete* and *delete_on_close* parameters that determine whether and " +"how the named file should be automatically deleted." +msgstr "" + +#: ../Doc/library/tempfile.rst:89 +msgid "" +"The returned object is always a :term:`file-like object` whose :attr:`!file` " +"attribute is the underlying true file object. This :term:`file-like object` " +"can be used in a :keyword:`with` statement, just like a normal file. The " +"name of the temporary file can be retrieved from the :attr:`name` attribute " +"of the returned file-like object. On Unix, unlike with the :func:" +"`TemporaryFile`, the directory entry does not get unlinked immediately after " +"the file creation." +msgstr "" + +#: ../Doc/library/tempfile.rst:97 +msgid "" +"If *delete* is true (the default) and *delete_on_close* is true (the " +"default), the file is deleted as soon as it is closed. If *delete* is true " +"and *delete_on_close* is false, the file is deleted on context manager exit " +"only, or else when the :term:`file-like object` is finalized. Deletion is " +"not always guaranteed in this case (see :meth:`object.__del__`). If *delete* " +"is false, the value of *delete_on_close* is ignored." msgstr "" -"Esta función opera exactamente como lo hace :func:`TemporaryFile`, excepto " -"que el archivo está garantizado para tener un nombre visible en el sistema " -"de archivos (en Unix, el directorio de entrada no está desvinculado). El " -"nombre se puede obtener del atributo :attr:`name` del objeto tipo archivo " -"retornado. Aunque el nombre se puede usar para abrir el archivo por segunda " -"vez, mientras el archivo temporal nombrado sigue abierto, esto varía según " -"las plataformas (se puede usar en Unix; no se puede en Windows). Si *delete* " -"es verdadero (por defecto), el archivo se elimina tan pronto como se cierra. " -"El objeto retornado siempre es un objeto similar a un archivo cuyo atributo :" -"attr:`!file` es el objeto de archivo verdadero subyacente. Este objeto " -"similar a un archivo se puede usar con una sentencia :keyword:`with`, al " -"igual que un archivo normal." - -#: ../Doc/library/tempfile.rst:93 + +#: ../Doc/library/tempfile.rst:104 +msgid "" +"Therefore to use the name of the temporary file to reopen the file after " +"closing it, either make sure not to delete the file upon closure (set the " +"*delete* parameter to be false) or, in case the temporary file is created in " +"a :keyword:`with` statement, set the *delete_on_close* parameter to be " +"false. The latter approach is recommended as it provides assistance in " +"automatic cleaning of the temporary file upon the context manager exit." +msgstr "" + +#: ../Doc/library/tempfile.rst:111 +msgid "" +"Opening the temporary file again by its name while it is still open works as " +"follows:" +msgstr "" + +#: ../Doc/library/tempfile.rst:114 +msgid "On POSIX the file can always be opened again." +msgstr "" + +#: ../Doc/library/tempfile.rst:115 +msgid "" +"On Windows, make sure that at least one of the following conditions are " +"fulfilled:" +msgstr "" + +#: ../Doc/library/tempfile.rst:118 +msgid "*delete* is false" +msgstr "" + +#: ../Doc/library/tempfile.rst:119 +msgid "" +"additional open shares delete access (e.g. by calling :func:`os.open` with " +"the flag ``O_TEMPORARY``)" +msgstr "" + +#: ../Doc/library/tempfile.rst:121 +msgid "" +"*delete* is true but *delete_on_close* is false. Note, that in this case the " +"additional opens that do not share delete access (e.g. created via builtin :" +"func:`open`) must be closed before exiting the context manager, else the :" +"func:`os.unlink` call on context manager exit will fail with a :exc:" +"`PermissionError`." +msgstr "" + +#: ../Doc/library/tempfile.rst:127 +msgid "" +"On Windows, if *delete_on_close* is false, and the file is created in a " +"directory for which the user lacks delete access, then the :func:`os.unlink` " +"call on exit of the context manager will fail with a :exc:`PermissionError`. " +"This cannot happen when *delete_on_close* is true because delete access is " +"requested by the open, which fails immediately if the requested access is " +"not granted." +msgstr "" + +#: ../Doc/library/tempfile.rst:134 msgid "" "On POSIX (only), a process that is terminated abruptly with SIGKILL cannot " "automatically delete any NamedTemporaryFiles it created." @@ -201,7 +271,12 @@ msgstr "" "En POSIX (solo), un proceso que finaliza abruptamente con SIGKILL no puede " "eliminar automáticamente ningún NamedTemporaryFiles que se haya creado." -#: ../Doc/library/tempfile.rst:104 +#: ../Doc/library/tempfile.rst:142 +#, fuzzy +msgid "Added *delete_on_close* parameter." +msgstr "Se agregó el parámetro *errors*." + +#: ../Doc/library/tempfile.rst:148 msgid "" "This class operates exactly as :func:`TemporaryFile` does, except that data " "is spooled in memory until the file size exceeds *max_size*, or until the " @@ -214,7 +289,7 @@ msgstr "" "ese momento los contenidos se escriben en el disco y la operación continúa " "como con :func:`TemporaryFile`." -#: ../Doc/library/tempfile.rst:110 +#: ../Doc/library/tempfile.rst:154 msgid "" "The resulting file has one additional method, :func:`rollover`, which causes " "the file to roll over to an on-disk file regardless of its size." @@ -223,7 +298,7 @@ msgstr "" "que el archivo se transfiera a un archivo en el disco, independientemente de " "su tamaño." -#: ../Doc/library/tempfile.rst:113 +#: ../Doc/library/tempfile.rst:157 msgid "" "The returned object is a file-like object whose :attr:`_file` attribute is " "either an :class:`io.BytesIO` or :class:`io.TextIOWrapper` object (depending " @@ -238,11 +313,11 @@ msgstr "" "un archivo se puede usar en una sentencia :keyword:`with`, al igual que un " "archivo normal." -#: ../Doc/library/tempfile.rst:120 +#: ../Doc/library/tempfile.rst:164 msgid "the truncate method now accepts a ``size`` argument." msgstr "el método *truncate* ahora acepta el argumento ``size``." -#: ../Doc/library/tempfile.rst:126 +#: ../Doc/library/tempfile.rst:170 msgid "" "Fully implements the :class:`io.BufferedIOBase` and :class:`io.TextIOBase` " "abstract base classes (depending on whether binary or text *mode* was " @@ -252,7 +327,7 @@ msgstr "" "BufferedIOBase` y :class:`io.TextIOBase` (dependiendo de si se especificó " "*modo* binario o de texto)." -#: ../Doc/library/tempfile.rst:134 +#: ../Doc/library/tempfile.rst:178 msgid "" "This class securely creates a temporary directory using the same rules as :" "func:`mkdtemp`. The resulting object can be used as a context manager (see :" @@ -267,7 +342,7 @@ msgstr "" "temporal recién creado y todo su contenido se eliminan del sistema de " "archivos." -#: ../Doc/library/tempfile.rst:140 +#: ../Doc/library/tempfile.rst:184 msgid "" "The directory name can be retrieved from the :attr:`name` attribute of the " "returned object. When the returned object is used as a context manager, " @@ -279,7 +354,7 @@ msgstr "" "contexto, el :attr:`name` se asignará al objetivo de la cláusula :keyword:`!" "as` en la sentencia :keyword:`with`, si hay una." -#: ../Doc/library/tempfile.rst:145 +#: ../Doc/library/tempfile.rst:189 msgid "" "The directory can be explicitly cleaned up by calling the :func:`cleanup` " "method. If *ignore_cleanup_errors* is true, any unhandled exceptions during " @@ -300,7 +375,16 @@ msgstr "" "cuando el objeto se recolecta como basura o durante el cierre del " "intérprete)." -#: ../Doc/library/tempfile.rst:154 ../Doc/library/tempfile.rst:231 +#: ../Doc/library/tempfile.rst:198 +msgid "" +"The *delete* parameter can be used to disable cleanup of the directory tree " +"upon exiting the context. While it may seem unusual for a context manager " +"to disable the action taken when exiting the context, it can be useful " +"during debugging or when you need your cleanup behavior to be conditional " +"based on other logic." +msgstr "" + +#: ../Doc/library/tempfile.rst:204 ../Doc/library/tempfile.rst:284 msgid "" "Raises an :ref:`auditing event ` ``tempfile.mkdtemp`` with " "argument ``fullpath``." @@ -308,11 +392,16 @@ msgstr "" "Lanza un :ref:`evento de auditoria ` ``tempfile.mkdtemp`` con " "argumento ``fullpath``." -#: ../Doc/library/tempfile.rst:158 +#: ../Doc/library/tempfile.rst:208 msgid "Added *ignore_cleanup_errors* parameter." msgstr "Se agregó el parámetro *ignore_cleanup_errors*." -#: ../Doc/library/tempfile.rst:164 +#: ../Doc/library/tempfile.rst:211 +#, fuzzy +msgid "Added the *delete* parameter." +msgstr "Se agregó el parámetro *errors*." + +#: ../Doc/library/tempfile.rst:217 msgid "" "Creates a temporary file in the most secure manner possible. There are no " "race conditions in the file's creation, assuming that the platform properly " @@ -330,7 +419,7 @@ msgstr "" "indicar si un archivo es ejecutable, nadie puede ejecutar el archivo. El " "descriptor de archivo no es heredado por los procesos hijos." -#: ../Doc/library/tempfile.rst:172 +#: ../Doc/library/tempfile.rst:225 msgid "" "Unlike :func:`TemporaryFile`, the user of :func:`mkstemp` is responsible for " "deleting the temporary file when done with it." @@ -338,7 +427,7 @@ msgstr "" "A diferencia de :func:`TemporaryFile`, el usuario de :func:`mkstemp` es " "responsable de eliminar el archivo temporal cuando haya terminado con él." -#: ../Doc/library/tempfile.rst:175 +#: ../Doc/library/tempfile.rst:228 msgid "" "If *suffix* is not ``None``, the file name will end with that suffix, " "otherwise there will be no suffix. :func:`mkstemp` does not put a dot " @@ -350,7 +439,7 @@ msgstr "" "nombre del archivo y el sufijo; si necesita uno, póngalo al comienzo del " "*suffix*." -#: ../Doc/library/tempfile.rst:180 +#: ../Doc/library/tempfile.rst:233 msgid "" "If *prefix* is not ``None``, the file name will begin with that prefix; " "otherwise, a default prefix is used. The default is the return value of :" @@ -361,7 +450,7 @@ msgstr "" "es el valor de retorno de :func:`gettempprefix` o :func:`gettempprefixb`, " "según corresponda." -#: ../Doc/library/tempfile.rst:184 +#: ../Doc/library/tempfile.rst:237 msgid "" "If *dir* is not ``None``, the file will be created in that directory; " "otherwise, a default directory is used. The default directory is chosen " @@ -380,7 +469,7 @@ msgstr "" "no requerir comillas cuando se pasa a comandos externos a través de ``os." "popen()``." -#: ../Doc/library/tempfile.rst:192 +#: ../Doc/library/tempfile.rst:245 msgid "" "If any of *suffix*, *prefix*, and *dir* are not ``None``, they must be the " "same type. If they are bytes, the returned name will be bytes instead of " @@ -392,7 +481,7 @@ msgstr "" "en lugar de str. Si desea forzar un valor de retorno de bytes con un " "comportamiento predeterminado, pase ``suffix=b’’``." -#: ../Doc/library/tempfile.rst:198 +#: ../Doc/library/tempfile.rst:251 msgid "" "If *text* is specified and true, the file is opened in text mode. Otherwise, " "(the default) the file is opened in binary mode." @@ -400,7 +489,7 @@ msgstr "" "Si se especifica *text* y es verdadero, el archivo se abre en modo texto. De " "lo contrario, (por defecto) el archivo se abre en modo binario." -#: ../Doc/library/tempfile.rst:201 +#: ../Doc/library/tempfile.rst:254 msgid "" ":func:`mkstemp` returns a tuple containing an OS-level handle to an open " "file (as would be returned by :func:`os.open`) and the absolute pathname of " @@ -410,7 +499,7 @@ msgstr "" "sistema operativo a un archivo abierto (como sería retornado por :func:`os." "open`) y la ruta absoluta de ese archivo, en ese orden." -#: ../Doc/library/tempfile.rst:207 ../Doc/library/tempfile.rst:233 +#: ../Doc/library/tempfile.rst:260 ../Doc/library/tempfile.rst:286 msgid "" "*suffix*, *prefix*, and *dir* may now be supplied in bytes in order to " "obtain a bytes return value. Prior to this, only str was allowed. *suffix* " @@ -422,11 +511,11 @@ msgstr "" "*suffix* y *prefix* ahora aceptan y por defecto ``None`` para hacer que se " "use un valor predeterminado apropiado." -#: ../Doc/library/tempfile.rst:213 ../Doc/library/tempfile.rst:239 +#: ../Doc/library/tempfile.rst:266 ../Doc/library/tempfile.rst:292 msgid "The *dir* parameter now accepts a :term:`path-like object`." msgstr "El parámetro *dir* ahora acepta un :term:`path-like object`." -#: ../Doc/library/tempfile.rst:219 +#: ../Doc/library/tempfile.rst:272 msgid "" "Creates a temporary directory in the most secure manner possible. There are " "no race conditions in the directory's creation. The directory is readable, " @@ -436,7 +525,7 @@ msgstr "" "condiciones de carrera en la creación del directorio. El directorio se " "puede leer, escribir y buscar solo por el ID del usuario creador." -#: ../Doc/library/tempfile.rst:223 +#: ../Doc/library/tempfile.rst:276 msgid "" "The user of :func:`mkdtemp` is responsible for deleting the temporary " "directory and its contents when done with it." @@ -444,7 +533,7 @@ msgstr "" "El usuario de :func:`mkdtemp` es responsable de eliminar el directorio " "temporal y su contenido cuando haya terminado con él." -#: ../Doc/library/tempfile.rst:226 +#: ../Doc/library/tempfile.rst:279 msgid "" "The *prefix*, *suffix*, and *dir* arguments are the same as for :func:" "`mkstemp`." @@ -452,11 +541,18 @@ msgstr "" "Los argumentos *prefix*, *suffix*, y *dir* son los mismos que para :func:" "`mkstemp`." -#: ../Doc/library/tempfile.rst:229 +#: ../Doc/library/tempfile.rst:282 msgid ":func:`mkdtemp` returns the absolute pathname of the new directory." msgstr ":func:`mkdtemp` retorna la ruta absoluta del nuevo directorio." -#: ../Doc/library/tempfile.rst:245 +#: ../Doc/library/tempfile.rst:295 +#, fuzzy +msgid "" +":func:`mkdtemp` now always returns an absolute path, even if *dir* is " +"relative." +msgstr ":func:`mkdtemp` retorna la ruta absoluta del nuevo directorio." + +#: ../Doc/library/tempfile.rst:301 msgid "" "Return the name of the directory used for temporary files. This defines the " "default value for the *dir* argument to all functions in this module." @@ -465,7 +561,7 @@ msgstr "" "define el valor predeterminado para el argumento *dir* para todas las " "funciones en este módulo." -#: ../Doc/library/tempfile.rst:249 +#: ../Doc/library/tempfile.rst:305 msgid "" "Python searches a standard list of directories to find one which the calling " "user can create files in. The list is:" @@ -473,23 +569,23 @@ msgstr "" "Python busca en una lista estándar de directorios para encontrar uno dentro " "del cual el usuario pueda crear archivos. La lista es:" -#: ../Doc/library/tempfile.rst:252 +#: ../Doc/library/tempfile.rst:308 msgid "The directory named by the :envvar:`TMPDIR` environment variable." msgstr "El directorio nombrado por la variable de entorno :envvar:`TMPDIR`." -#: ../Doc/library/tempfile.rst:254 +#: ../Doc/library/tempfile.rst:310 msgid "The directory named by the :envvar:`TEMP` environment variable." msgstr "El directorio nombrado por la variable de entorno :envvar:`TEMP`." -#: ../Doc/library/tempfile.rst:256 +#: ../Doc/library/tempfile.rst:312 msgid "The directory named by the :envvar:`TMP` environment variable." msgstr "El directorio nombrado por la variable de entorno :envvar:`TMP`." -#: ../Doc/library/tempfile.rst:258 +#: ../Doc/library/tempfile.rst:314 msgid "A platform-specific location:" msgstr "Una ubicación especifica de la plataforma:" -#: ../Doc/library/tempfile.rst:260 +#: ../Doc/library/tempfile.rst:316 msgid "" "On Windows, the directories :file:`C:\\\\TEMP`, :file:`C:\\\\TMP`, :file:`\\" "\\TEMP`, and :file:`\\\\TMP`, in that order." @@ -497,7 +593,7 @@ msgstr "" "En Windows, los directorios :file:`C:\\\\TEMP`, :file:`C:\\\\TMP`, :file:`\\" "\\TEMP`, y :file:`\\\\TMP`, en ese orden." -#: ../Doc/library/tempfile.rst:263 +#: ../Doc/library/tempfile.rst:319 msgid "" "On all other platforms, the directories :file:`/tmp`, :file:`/var/tmp`, and :" "file:`/usr/tmp`, in that order." @@ -505,11 +601,11 @@ msgstr "" "En todas las otras plataformas, los directorios :file:`/tmp`, :file:`/var/" "tmp`, y :file:`/usr/tmp`, en ese orden." -#: ../Doc/library/tempfile.rst:266 +#: ../Doc/library/tempfile.rst:322 msgid "As a last resort, the current working directory." msgstr "Y como última alternativa, el directorio de trabajo actual." -#: ../Doc/library/tempfile.rst:268 +#: ../Doc/library/tempfile.rst:324 msgid "" "The result of this search is cached, see the description of :data:`tempdir` " "below." @@ -517,7 +613,7 @@ msgstr "" "El resultado de la búsqueda es cacheada, vea la descripción de :data:" "`tempdir` abajo." -#: ../Doc/library/tempfile.rst:273 +#: ../Doc/library/tempfile.rst:329 msgid "" "Always returns a str. Previously it would return any :data:`tempdir` value " "regardless of type so long as it was not ``None``." @@ -525,11 +621,11 @@ msgstr "" "Siempre retorna str. Anteriormente retornaría cualquier valor :data:" "`tempdir` independientemente del tipo siempre que no fuera ``None``." -#: ../Doc/library/tempfile.rst:278 +#: ../Doc/library/tempfile.rst:334 msgid "Same as :func:`gettempdir` but the return value is in bytes." msgstr "Igual a :func:`gettempdir` pero el valor retornado es en bytes." -#: ../Doc/library/tempfile.rst:284 +#: ../Doc/library/tempfile.rst:340 msgid "" "Return the filename prefix used to create temporary files. This does not " "contain the directory component." @@ -537,11 +633,11 @@ msgstr "" "Retorna el prefijo del nombre de archivo utilizado para crear archivos " "temporales. Este no contiene el componente de directorio." -#: ../Doc/library/tempfile.rst:289 +#: ../Doc/library/tempfile.rst:345 msgid "Same as :func:`gettempprefix` but the return value is in bytes." msgstr "Igual que :func:`gettempprefix` pero el valor retornado es en bytes." -#: ../Doc/library/tempfile.rst:293 +#: ../Doc/library/tempfile.rst:349 msgid "" "The module uses a global variable to store the name of the directory used " "for temporary files returned by :func:`gettempdir`. It can be set directly " @@ -558,7 +654,7 @@ msgstr "" "Este es el enfoque recomendado que no toma por sorpresa otro código " "inesperado al cambiar el comportamiento global de la API." -#: ../Doc/library/tempfile.rst:302 +#: ../Doc/library/tempfile.rst:358 msgid "" "When set to a value other than ``None``, this variable defines the default " "value for the *dir* argument to the functions defined in this module, " @@ -569,7 +665,7 @@ msgstr "" "en este módulo, incluyendo su tipo, bytes o str. No puede ser un :term:`path-" "like object`." -#: ../Doc/library/tempfile.rst:307 +#: ../Doc/library/tempfile.rst:363 msgid "" "If ``tempdir`` is ``None`` (the default) at any call to any of the above " "functions except :func:`gettempprefix` it is initialized following the " @@ -579,7 +675,7 @@ msgstr "" "de las funciones anteriores excepto :func:`gettempprefix` se inicializa " "siguiendo el algoritmo descrito en :func:`gettempdir`." -#: ../Doc/library/tempfile.rst:313 +#: ../Doc/library/tempfile.rst:369 msgid "" "Beware that if you set ``tempdir`` to a bytes value, there is a nasty side " "effect: The global default return type of :func:`mkstemp` and :func:" @@ -596,19 +692,19 @@ msgstr "" "comportamiento incómodo se mantiene por compatibilidad con la implementación " "histórica." -#: ../Doc/library/tempfile.rst:324 +#: ../Doc/library/tempfile.rst:380 msgid "Examples" msgstr "Ejemplos" -#: ../Doc/library/tempfile.rst:326 +#: ../Doc/library/tempfile.rst:382 msgid "Here are some examples of typical usage of the :mod:`tempfile` module::" msgstr "Estos son algunos ejemplos del uso típico del módulo :mod:`tempfile`::" -#: ../Doc/library/tempfile.rst:358 +#: ../Doc/library/tempfile.rst:427 msgid "Deprecated functions and variables" msgstr "Funciones y variables deprecadas" -#: ../Doc/library/tempfile.rst:360 +#: ../Doc/library/tempfile.rst:429 msgid "" "A historical way to create temporary files was to first generate a file name " "with the :func:`mktemp` function and then create a file using this name. " @@ -627,11 +723,11 @@ msgstr "" "de inmediato. Este enfoque es utilizado por :func:`mkstemp` y las otras " "funciones descritas anteriormente." -#: ../Doc/library/tempfile.rst:371 +#: ../Doc/library/tempfile.rst:440 msgid "Use :func:`mkstemp` instead." msgstr "Utilice :func:`mkstemp` en su lugar." -#: ../Doc/library/tempfile.rst:374 +#: ../Doc/library/tempfile.rst:443 msgid "" "Return an absolute pathname of a file that did not exist at the time the " "call is made. The *prefix*, *suffix*, and *dir* arguments are similar to " @@ -643,7 +739,7 @@ msgstr "" "*dir* son similares a los de :func:`mkstemp`, excepto los nombres de archivo " "de bytes, ``suffix=None`` y ``prefix=None`` no son soportados." -#: ../Doc/library/tempfile.rst:381 +#: ../Doc/library/tempfile.rst:450 msgid "" "Use of this function may introduce a security hole in your program. By the " "time you get around to doing anything with the file name it returns, someone " @@ -656,3 +752,41 @@ msgstr "" "retorna, alguien más pudo haberse adelantado. El uso de :func:`mktemp` se " "puede reemplazar fácilmente con :func:`NamedTemporaryFile`, pasándole el " "parámetro ``delete=False``::" + +#: ../Doc/library/tempfile.rst:11 +msgid "temporary" +msgstr "" + +#: ../Doc/library/tempfile.rst:11 +msgid "file name" +msgstr "" + +#: ../Doc/library/tempfile.rst:11 +msgid "file" +msgstr "" + +#~ msgid "" +#~ "This function operates exactly as :func:`TemporaryFile` does, except that " +#~ "the file is guaranteed to have a visible name in the file system (on " +#~ "Unix, the directory entry is not unlinked). That name can be retrieved " +#~ "from the :attr:`name` attribute of the returned file-like object. " +#~ "Whether the name can be used to open the file a second time, while the " +#~ "named temporary file is still open, varies across platforms (it can be so " +#~ "used on Unix; it cannot on Windows). If *delete* is true (the default), " +#~ "the file is deleted as soon as it is closed. The returned object is " +#~ "always a file-like object whose :attr:`!file` attribute is the underlying " +#~ "true file object. This file-like object can be used in a :keyword:`with` " +#~ "statement, just like a normal file." +#~ msgstr "" +#~ "Esta función opera exactamente como lo hace :func:`TemporaryFile`, " +#~ "excepto que el archivo está garantizado para tener un nombre visible en " +#~ "el sistema de archivos (en Unix, el directorio de entrada no está " +#~ "desvinculado). El nombre se puede obtener del atributo :attr:`name` del " +#~ "objeto tipo archivo retornado. Aunque el nombre se puede usar para abrir " +#~ "el archivo por segunda vez, mientras el archivo temporal nombrado sigue " +#~ "abierto, esto varía según las plataformas (se puede usar en Unix; no se " +#~ "puede en Windows). Si *delete* es verdadero (por defecto), el archivo se " +#~ "elimina tan pronto como se cierra. El objeto retornado siempre es un " +#~ "objeto similar a un archivo cuyo atributo :attr:`!file` es el objeto de " +#~ "archivo verdadero subyacente. Este objeto similar a un archivo se puede " +#~ "usar con una sentencia :keyword:`with`, al igual que un archivo normal." diff --git a/library/termios.po b/library/termios.po index de3bf60e5d..17e47a25bb 100644 --- a/library/termios.po +++ b/library/termios.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.11\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-10-27 19:25-0500\n" "Last-Translator: \n" "Language: es_CO\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/termios.rst:2 msgid ":mod:`termios` --- POSIX style tty control" @@ -187,3 +187,15 @@ msgstr "" "`tcgetattr` y una sentencia :keyword:`try` ... :keyword:`finally` para " "asegurarse de que los antiguos atributos tty se restauran exactamente sin " "importar lo que suceda::" + +#: ../Doc/library/termios.rst:8 +msgid "POSIX" +msgstr "" + +#: ../Doc/library/termios.rst:8 +msgid "I/O control" +msgstr "" + +#: ../Doc/library/termios.rst:8 +msgid "tty" +msgstr "" diff --git a/library/test.po b/library/test.po index ab24f6e4a3..1eef4d4eac 100644 --- a/library/test.po +++ b/library/test.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-12-08 16:07-0500\n" "Last-Translator: Adolfo Hristo David Roque Gámez \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/test.rst:2 msgid ":mod:`test` --- Regression tests package for Python" @@ -529,32 +529,39 @@ msgstr "" #: ../Doc/library/test.rst:324 msgid "" +"True if Python is built with the :c:macro:`Py_DEBUG` macro defined: if " +"Python is :ref:`built in debug mode ` (:option:`./configure --" +"with-pydebug <--with-pydebug>`)." +msgstr "" + +#: ../Doc/library/test.rst:333 +msgid "" "A constant that is likely larger than the underlying OS socket buffer size, " "to make writes blocking." msgstr "" "Una constante que probablemente sea más grande que el tamaño del búfer del " "socket del sistema operativo subyacente para bloquear las escrituras." -#: ../Doc/library/test.rst:330 +#: ../Doc/library/test.rst:339 msgid "Set to the top level directory that contains :mod:`test.support`." msgstr "" "Establecido en el directorio de nivel superior que contiene :mod:`test." "support`." -#: ../Doc/library/test.rst:335 +#: ../Doc/library/test.rst:344 msgid "Set to the top level directory for the test package." msgstr "" "Establecido en el directorio de nivel superior para el paquete de prueba." -#: ../Doc/library/test.rst:340 +#: ../Doc/library/test.rst:349 msgid "Set to the ``data`` directory within the test package." msgstr "Establecido en el directorio ``data`` dentro del paquete de prueba." -#: ../Doc/library/test.rst:345 +#: ../Doc/library/test.rst:354 msgid "Set to :data:`sys.maxsize` for big memory tests." msgstr "Establecido :data:`sys.maxsize` para pruebas de gran memoria." -#: ../Doc/library/test.rst:350 +#: ../Doc/library/test.rst:359 msgid "" "Set by :func:`set_memlimit` as the memory limit for big memory tests. " "Limited by :data:`MAX_Py_ssize_t`." @@ -562,7 +569,7 @@ msgstr "" "Establecido por :func:`set_memlimit` como límite de memoria para pruebas de " "memoria grande. Limitado por :data:`MAX_Py_ssize_t`." -#: ../Doc/library/test.rst:356 +#: ../Doc/library/test.rst:365 msgid "" "Set by :func:`set_memlimit` as the memory limit for big memory tests. Not " "limited by :data:`MAX_Py_ssize_t`." @@ -570,7 +577,7 @@ msgstr "" "Establecido por :func:`set_memlimit` como límite de memoria para pruebas de " "memoria grande. No limitado por :data:`MAX_Py_ssize_t`." -#: ../Doc/library/test.rst:362 +#: ../Doc/library/test.rst:371 msgid "" "Set to ``True`` if Python is built without docstrings (the :c:macro:" "`WITH_DOC_STRINGS` macro is not defined). See the :option:`configure --" @@ -580,11 +587,11 @@ msgstr "" "macro:`WITH_DOC_STRINGS` no está definida). Consulte la opción :option:" "`configure --without-doc-strings <--without-doc-strings>`." -#: ../Doc/library/test.rst:366 +#: ../Doc/library/test.rst:375 msgid "See also the :data:`HAVE_DOCSTRINGS` variable." msgstr "Consulte también la variable :data:`HAVE_DOCSTRINGS`." -#: ../Doc/library/test.rst:371 +#: ../Doc/library/test.rst:380 msgid "" "Set to ``True`` if function docstrings are available. See the :option:" "`python -OO <-O>` option, which strips docstrings of functions implemented " @@ -594,21 +601,21 @@ msgstr "" "disponibles. Consulte la opción :option:`python -OO <-O>`, que elimina las " "cadenas de documentación de las funciones implementadas en Python." -#: ../Doc/library/test.rst:374 +#: ../Doc/library/test.rst:383 msgid "See also the :data:`MISSING_C_DOCSTRINGS` variable." msgstr "Consulte también la variable :data:`MISSING_C_DOCSTRINGS`." -#: ../Doc/library/test.rst:379 +#: ../Doc/library/test.rst:388 msgid "Define the URL of a dedicated HTTP server for the network tests." msgstr "Define la URL de un servidor HTTP dedicado para las pruebas de red." -#: ../Doc/library/test.rst:384 +#: ../Doc/library/test.rst:393 msgid "Object that is equal to anything. Used to test mixed type comparison." msgstr "" "Objeto que es igual a cualquier cosa. Se utiliza para probar la comparación " "de tipos mixtos." -#: ../Doc/library/test.rst:389 +#: ../Doc/library/test.rst:398 msgid "" "Object that is not equal to anything (even to :data:`ALWAYS_EQ`). Used to " "test mixed type comparison." @@ -616,7 +623,7 @@ msgstr "" "Objeto que no es igual a nada (incluso a :data:`ALWAYS_EQ`). Se utiliza para " "probar la comparación de tipos mixtos." -#: ../Doc/library/test.rst:395 +#: ../Doc/library/test.rst:404 msgid "" "Object that is greater than anything (except itself). Used to test mixed " "type comparison." @@ -624,7 +631,7 @@ msgstr "" "Objeto que es mayor que cualquier cosa (excepto a sí mismo). Se utiliza para " "probar la comparación de tipos mixtos." -#: ../Doc/library/test.rst:401 +#: ../Doc/library/test.rst:410 msgid "" "Object that is less than anything (except itself). Used to test mixed type " "comparison." @@ -632,11 +639,50 @@ msgstr "" "Objeto que es menor que cualquier cosa (excepto él mismo). Se utiliza para " "probar la comparación de tipos mixtos." -#: ../Doc/library/test.rst:405 +#: ../Doc/library/test.rst:414 msgid "The :mod:`test.support` module defines the following functions:" msgstr "El módulo :mod:`test.support` define las siguientes funciones:" -#: ../Doc/library/test.rst:409 +#: ../Doc/library/test.rst:418 +msgid "Run the loop body until ``break`` stops the loop." +msgstr "" + +#: ../Doc/library/test.rst:420 +msgid "" +"After *timeout* seconds, raise an :exc:`AssertionError` if *error* is true, " +"or just stop the loop if *error* is false." +msgstr "" + +#: ../Doc/library/test.rst:423 +#, fuzzy +msgid "Example::" +msgstr "Ejemplo de uso::" + +#: ../Doc/library/test.rst:429 ../Doc/library/test.rst:453 +#, fuzzy +msgid "Example of error=False usage::" +msgstr "Ejemplo de uso::" + +#: ../Doc/library/test.rst:439 +msgid "Wait strategy that applies exponential backoff." +msgstr "" + +#: ../Doc/library/test.rst:441 +msgid "" +"Run the loop body until ``break`` stops the loop. Sleep at each loop " +"iteration, but not at the first iteration. The sleep delay is doubled at " +"each iteration (up to *max_delay* seconds)." +msgstr "" + +#: ../Doc/library/test.rst:445 +msgid "See :func:`busy_retry` documentation for the parameters usage." +msgstr "" + +#: ../Doc/library/test.rst:447 +msgid "Example raising an exception after SHORT_TIMEOUT seconds::" +msgstr "" + +#: ../Doc/library/test.rst:463 msgid "" "Return ``True`` if *resource* is enabled and available. The list of " "available resources is only set when :mod:`test.regrtest` is executing the " @@ -646,15 +692,16 @@ msgstr "" "recursos disponibles solo se establece cuando :mod:`test.regrtest` está " "ejecutando las pruebas." -#: ../Doc/library/test.rst:416 +#: ../Doc/library/test.rst:470 msgid "Return ``True`` if Python was not built with ``-O0`` or ``-Og``." msgstr "Retorna ``True`` si Python no fue construido con ``-O0`` o ``-Og``." -#: ../Doc/library/test.rst:421 -msgid "Return :data:`_testcapi.WITH_PYMALLOC`." +#: ../Doc/library/test.rst:475 +#, fuzzy +msgid "Return :const:`_testcapi.WITH_PYMALLOC`." msgstr "Retorna :data:`_testcapi.WITH_PYMALLOC`." -#: ../Doc/library/test.rst:426 +#: ../Doc/library/test.rst:480 msgid "" "Raise :exc:`ResourceDenied` if *resource* is not available. *msg* is the " "argument to :exc:`ResourceDenied` if it is raised. Always returns ``True`` " @@ -666,11 +713,11 @@ msgstr "" "si es invocado por una función cuyo ``__name__`` es ``'__main__'``. Se usa " "cuando se ejecutan pruebas por :mod:`test.regrtest`." -#: ../Doc/library/test.rst:434 +#: ../Doc/library/test.rst:488 msgid "Return a repr of *dict* with keys sorted." msgstr "Retorna una representación del *diccionario* con las claves ordenadas." -#: ../Doc/library/test.rst:439 +#: ../Doc/library/test.rst:493 msgid "" "Return the path to the file named *filename*. If no match is found " "*filename* is returned. This does not equal a failure since it could be the " @@ -680,7 +727,7 @@ msgstr "" "coincidencia, se retorna *filename*. Esto no equivale a un fallo, ya que " "podría ser la ruta al archivo." -#: ../Doc/library/test.rst:443 +#: ../Doc/library/test.rst:497 msgid "" "Setting *subdir* indicates a relative path to use to find the file rather " "than looking directly in the path directories." @@ -688,14 +735,14 @@ msgstr "" "La configuración *subdir* indica una ruta relativa a utilizar para encontrar " "el archivo en lugar de buscar directamente en los directorios de ruta." -#: ../Doc/library/test.rst:449 +#: ../Doc/library/test.rst:503 msgid "" "Determine whether *test* matches the patterns set in :func:`set_match_tests`." msgstr "" "Determina si *test* coincide con los patrones establecidos en :func:" "`set_match_tests`." -#: ../Doc/library/test.rst:454 +#: ../Doc/library/test.rst:508 msgid "" "Define match patterns on test filenames and test method names for filtering " "tests." @@ -703,7 +750,7 @@ msgstr "" "Define patrones de coincidencia en nombres de archivos de prueba y nombres " "de métodos de prueba para filtrar pruebas." -#: ../Doc/library/test.rst:459 +#: ../Doc/library/test.rst:513 msgid "" "Execute :class:`unittest.TestCase` subclasses passed to the function. The " "function scans the classes for methods starting with the prefix ``test_`` " @@ -713,7 +760,7 @@ msgstr "" "función escanea las clases en busca de métodos que comiencen con el prefijo " "``test_`` y ejecuta las pruebas individualmente." -#: ../Doc/library/test.rst:463 +#: ../Doc/library/test.rst:517 msgid "" "It is also legal to pass strings as parameters; these should be keys in " "``sys.modules``. Each associated module will be scanned by ``unittest." @@ -725,11 +772,11 @@ msgstr "" "por ``unittest.TestLoader.loadTestsFromModule()``. Esto generalmente se ve " "en la siguiente función :func:`test_main`::" -#: ../Doc/library/test.rst:471 +#: ../Doc/library/test.rst:525 msgid "This will run all tests defined in the named module." msgstr "Esto ejecutará todas las pruebas definidas en el módulo nombrado." -#: ../Doc/library/test.rst:476 +#: ../Doc/library/test.rst:530 msgid "" "Run :func:`doctest.testmod` on the given *module*. Return ``(failure_count, " "test_count)``." @@ -737,7 +784,7 @@ msgstr "" "Ejecuta :func:`doctest.testmod` en *module* dado. Retorna ``(failure_count, " "test_count)``." -#: ../Doc/library/test.rst:479 +#: ../Doc/library/test.rst:533 msgid "" "If *verbosity* is ``None``, :func:`doctest.testmod` is run with verbosity " "set to :data:`verbose`. Otherwise, it is run with verbosity set to " @@ -749,7 +796,11 @@ msgstr "" "verbosidad establecida en ``None``. *optionflags* se pasa como " "``optionflags`` to :func:`doctest.testmod`." -#: ../Doc/library/test.rst:487 +#: ../Doc/library/test.rst:541 +msgid "Get size of a page in bytes." +msgstr "" + +#: ../Doc/library/test.rst:548 msgid "" "Set the :func:`sys.setswitchinterval` to the given *interval*. Defines a " "minimum interval for Android systems to prevent the system from hanging." @@ -758,7 +809,7 @@ msgstr "" "intervalo mínimo para los sistemas Android para evitar que el sistema se " "cuelgue." -#: ../Doc/library/test.rst:493 +#: ../Doc/library/test.rst:554 msgid "" "Use this check to guard CPython's implementation-specific tests or to run " "them only on the implementations guarded by the arguments. This function " @@ -769,7 +820,7 @@ msgstr "" "protegidas por los argumentos. Esta función retorna ``True`` o ``False`` " "según la plataforma del host. Ejemplo de uso::" -#: ../Doc/library/test.rst:505 +#: ../Doc/library/test.rst:566 msgid "" "Set the values for :data:`max_memuse` and :data:`real_max_memuse` for big " "memory tests." @@ -777,7 +828,7 @@ msgstr "" "Establece los valores para :data:`max_memuse` y :data:`real_max_memuse` para " "pruebas de memoria grande." -#: ../Doc/library/test.rst:511 +#: ../Doc/library/test.rst:572 msgid "" "Store the value from *stdout*. It is meant to hold the stdout at the time " "the regrtest began." @@ -785,7 +836,7 @@ msgstr "" "Almacene el valor de *stdout*. Está destinado a mantener el *stdout* en el " "momento en que comenzó el regrtest." -#: ../Doc/library/test.rst:517 +#: ../Doc/library/test.rst:578 msgid "" "Return the original stdout set by :func:`record_original_stdout` or ``sys." "stdout`` if it's not set." @@ -793,7 +844,7 @@ msgstr "" "Retorna el *stdout* original establecido por :func:`record_original_stdout` " "o ``sys.stdout`` si no está configurado." -#: ../Doc/library/test.rst:523 +#: ../Doc/library/test.rst:584 msgid "" "Return a list of command line arguments reproducing the current settings in " "``sys.flags`` and ``sys.warnoptions``." @@ -801,7 +852,7 @@ msgstr "" "Retorna una lista de argumentos de línea de comandos que reproducen la " "configuración actual en ``sys.flags`` y ``sys.warnoptions``." -#: ../Doc/library/test.rst:529 +#: ../Doc/library/test.rst:590 msgid "" "Return a list of command line arguments reproducing the current optimization " "settings in ``sys.flags``." @@ -809,7 +860,7 @@ msgstr "" "Retorna una lista de argumentos de línea de comandos que reproducen la " "configuración de optimización actual en ``sys.flags``." -#: ../Doc/library/test.rst:537 +#: ../Doc/library/test.rst:598 msgid "" "A context managers that temporarily replaces the named stream with :class:" "`io.StringIO` object." @@ -817,21 +868,21 @@ msgstr "" "Un administrador de contexto que reemplaza temporalmente la secuencia " "nombrada con un objeto :class:`io.StringIO`." -#: ../Doc/library/test.rst:540 +#: ../Doc/library/test.rst:601 msgid "Example use with output streams::" msgstr "Ejemplo de uso con flujos de salida::" -#: ../Doc/library/test.rst:548 +#: ../Doc/library/test.rst:609 msgid "Example use with input stream::" msgstr "Ejemplo de uso con flujo de entrada::" -#: ../Doc/library/test.rst:560 +#: ../Doc/library/test.rst:621 msgid "A context manager that temporary disables :mod:`faulthandler`." msgstr "" "Un administrador de contexto que deshabilita temporalmente :mod:" "`faulthandler`." -#: ../Doc/library/test.rst:565 +#: ../Doc/library/test.rst:626 msgid "" "Force as many objects as possible to be collected. This is needed because " "timely deallocation is not guaranteed by the garbage collector. This means " @@ -844,7 +895,7 @@ msgstr "" "tarde de lo esperado y las referencias débiles pueden permanecer vivas por " "más tiempo de lo esperado." -#: ../Doc/library/test.rst:573 +#: ../Doc/library/test.rst:634 msgid "" "A context manager that disables the garbage collector on entry. On exit, the " "garbage collector is restored to its prior state." @@ -852,17 +903,17 @@ msgstr "" "Un administrador de contexto que deshabilita el recolector de basura al " "entrar. Al salir, el recolector de basura se restaura a su estado anterior." -#: ../Doc/library/test.rst:579 +#: ../Doc/library/test.rst:640 msgid "Context manager to swap out an attribute with a new object." msgstr "" "Administrador de contexto para intercambiar un atributo con un nuevo objeto." -#: ../Doc/library/test.rst:581 ../Doc/library/test.rst:599 -#: ../Doc/library/test.rst:828 ../Doc/library/test.rst:1301 +#: ../Doc/library/test.rst:642 ../Doc/library/test.rst:660 +#: ../Doc/library/test.rst:895 ../Doc/library/test.rst:1361 msgid "Usage::" msgstr "Uso::" -#: ../Doc/library/test.rst:586 +#: ../Doc/library/test.rst:647 msgid "" "This will set ``obj.attr`` to 5 for the duration of the ``with`` block, " "restoring the old value at the end of the block. If ``attr`` doesn't exist " @@ -872,7 +923,7 @@ msgstr "" "restaurando el valor anterior al final del bloque. Si ``attr`` no existe en " "``obj``, se creará y luego se eliminará al final del bloque." -#: ../Doc/library/test.rst:591 ../Doc/library/test.rst:609 +#: ../Doc/library/test.rst:652 ../Doc/library/test.rst:670 msgid "" "The old value (or ``None`` if it doesn't exist) will be assigned to the " "target of the \"as\" clause, if there is one." @@ -880,12 +931,12 @@ msgstr "" "El valor anterior (o ``None`` si no existe) se asignará al objetivo de la " "cláusula \"como\", si existe." -#: ../Doc/library/test.rst:597 +#: ../Doc/library/test.rst:658 msgid "Context manager to swap out an item with a new object." msgstr "" "Administrador de contexto para intercambiar un elemento con un nuevo objeto." -#: ../Doc/library/test.rst:604 +#: ../Doc/library/test.rst:665 msgid "" "This will set ``obj[\"item\"]`` to 5 for the duration of the ``with`` block, " "restoring the old value at the end of the block. If ``item`` doesn't exist " @@ -895,7 +946,7 @@ msgstr "" "``with``, restaurando el valor anterior al final del bloque. Si ``item`` no " "existe en ``obj``, se creará y luego se eliminará al final del bloque." -#: ../Doc/library/test.rst:615 +#: ../Doc/library/test.rst:676 msgid "" "Call the ``flush()`` method on :data:`sys.stdout` and then on :data:`sys." "stderr`. It can be used to make sure that the logs order is consistent " @@ -905,7 +956,7 @@ msgstr "" "stderr`. Se puede usar para asegurarse de que el orden de los registros sea " "consistente antes de escribir en stderr." -#: ../Doc/library/test.rst:624 +#: ../Doc/library/test.rst:685 msgid "" "Print a warning into :data:`sys.__stderr__`. Format the message as: " "``f\"Warning -- {msg}\"``. If *msg* is made of multiple lines, add " @@ -915,7 +966,7 @@ msgstr "" "``f \"Warning -- {msg}\"``. Si *msg* se compone de varias líneas, añade el " "prefijo ``\"Warning --\"`` a cada línea." -#: ../Doc/library/test.rst:633 +#: ../Doc/library/test.rst:694 msgid "" "Wait until process *pid* completes and check that the process exit code is " "*exitcode*." @@ -923,7 +974,7 @@ msgstr "" "Espere hasta que el proceso *pid* termine y comprobará que el código de " "salida del proceso es *exitcode*." -#: ../Doc/library/test.rst:636 +#: ../Doc/library/test.rst:697 msgid "" "Raise an :exc:`AssertionError` if the process exit code is not equal to " "*exitcode*." @@ -931,7 +982,7 @@ msgstr "" "Lanza un :exc:`AssertionError` si el código de salida del proceso no es " "igual a *exitcode*." -#: ../Doc/library/test.rst:639 +#: ../Doc/library/test.rst:700 msgid "" "If the process runs longer than *timeout* seconds (:data:`SHORT_TIMEOUT` by " "default), kill the process and raise an :exc:`AssertionError`. The timeout " @@ -942,7 +993,7 @@ msgstr "" "`AssertionError`. La función de tiempo de espera no está disponible en " "Windows." -#: ../Doc/library/test.rst:648 +#: ../Doc/library/test.rst:709 msgid "" "Return the size of the :c:type:`PyObject` whose structure members are " "defined by *fmt*. The returned value includes the size of the Python object " @@ -952,7 +1003,7 @@ msgstr "" "definidos por *fmt*. El valor retornado incluye el tamaño del encabezado y " "la alineación del objeto de Python." -#: ../Doc/library/test.rst:654 +#: ../Doc/library/test.rst:715 msgid "" "Return the size of the :c:type:`PyVarObject` whose structure members are " "defined by *fmt*. The returned value includes the size of the Python object " @@ -962,7 +1013,7 @@ msgstr "" "están definidos por *fmt*. El valor retornado incluye el tamaño del " "encabezado y la alineación del objeto de Python." -#: ../Doc/library/test.rst:660 +#: ../Doc/library/test.rst:721 msgid "" "For testcase *test*, assert that the ``sys.getsizeof`` for *o* plus the GC " "header size equals *size*." @@ -970,7 +1021,7 @@ msgstr "" "Para el caso de prueba (*testcase*), se aserciona que el ``sys.getsizeof`` " "para *o* más el tamaño del encabezado *GC* es igual a *size*." -#: ../Doc/library/test.rst:666 +#: ../Doc/library/test.rst:727 msgid "" "A decorator to conditionally mark tests with :func:`unittest." "expectedFailure`. Any use of this decorator should have an associated " @@ -980,7 +1031,7 @@ msgstr "" "expectedFailure`. Cualquier uso de este decorador debe tener un comentario " "asociado que identifique el problema relevante del rastreador." -#: ../Doc/library/test.rst:673 +#: ../Doc/library/test.rst:734 msgid "" "A decorator that skips the decorated test on TLS certification validation " "failures." @@ -988,7 +1039,7 @@ msgstr "" "Un decorador que se salta la prueba decorada en los errores de validación de " "la certificación TLS." -#: ../Doc/library/test.rst:678 +#: ../Doc/library/test.rst:739 msgid "" "A decorator for running a function in a different locale, correctly " "resetting it after it has finished. *catstr* is the locale category as a " @@ -1001,7 +1052,7 @@ msgstr "" "ejemplo, ``\"LC_ALL\"``). Las *locales* aprobadas se probarán " "secuencialmente y se utilizará la primera configuración regional válida." -#: ../Doc/library/test.rst:686 +#: ../Doc/library/test.rst:747 msgid "" "A decorator for running a function in a specific timezone, correctly " "resetting it after it has finished." @@ -1009,7 +1060,7 @@ msgstr "" "Un decorador para ejecutar una función en una zona horaria específica, " "restableciéndola correctamente una vez que haya finalizado." -#: ../Doc/library/test.rst:692 +#: ../Doc/library/test.rst:753 msgid "" "Decorator for the minimum version when running test on FreeBSD. If the " "FreeBSD version is less than the minimum, the test is skipped." @@ -1017,7 +1068,7 @@ msgstr "" "Decorador para la versión mínima cuando se ejecuta la prueba en FreeBSD. Si " "la versión de FreeBSD es inferior a la mínima, se salta la prueba." -#: ../Doc/library/test.rst:698 +#: ../Doc/library/test.rst:759 msgid "" "Decorator for the minimum version when running test on Linux. If the Linux " "version is less than the minimum, the test is skipped." @@ -1025,7 +1076,7 @@ msgstr "" "Decorador para la versión mínima cuando se ejecuta la prueba en Linux. Si la " "versión de Linux es inferior a la mínima, se omite la prueba." -#: ../Doc/library/test.rst:704 +#: ../Doc/library/test.rst:765 msgid "" "Decorator for the minimum version when running test on macOS. If the macOS " "version is less than the minimum, the test is skipped." @@ -1033,39 +1084,46 @@ msgstr "" "Decorador para la versión mínima cuando se ejecuta la prueba en macOS. Si la " "versión de macOS es inferior a la mínima, se omite la prueba." -#: ../Doc/library/test.rst:710 +#: ../Doc/library/test.rst:771 msgid "Decorator for skipping tests on non-IEEE 754 platforms." msgstr "Decorador para omitir pruebas en plataformas que no son *IEEE 754*." -#: ../Doc/library/test.rst:715 +#: ../Doc/library/test.rst:776 msgid "Decorator for skipping tests if :mod:`zlib` doesn't exist." msgstr "Decorador para omitir pruebas si :mod:`zlib` no existe." -#: ../Doc/library/test.rst:720 +#: ../Doc/library/test.rst:781 msgid "Decorator for skipping tests if :mod:`gzip` doesn't exist." msgstr "Decorador para omitir pruebas si :mod:`gzip` no existe." -#: ../Doc/library/test.rst:725 +#: ../Doc/library/test.rst:786 msgid "Decorator for skipping tests if :mod:`bz2` doesn't exist." msgstr "Decorador para omitir pruebas si :mod:`bz2` no existe." -#: ../Doc/library/test.rst:730 +#: ../Doc/library/test.rst:791 msgid "Decorator for skipping tests if :mod:`lzma` doesn't exist." msgstr "Decorador para omitir pruebas si :mod:`lzma` no existe." -#: ../Doc/library/test.rst:735 +#: ../Doc/library/test.rst:796 msgid "Decorator for skipping tests if *resource* is not available." msgstr "Decorador para omitir pruebas si *resource* no está disponible." -#: ../Doc/library/test.rst:740 +#: ../Doc/library/test.rst:801 msgid "Decorator for only running the test if :data:`HAVE_DOCSTRINGS`." msgstr "Decorador para ejecutar solo la prueba si :data:`HAVE_DOCSTRINGS`." -#: ../Doc/library/test.rst:745 +#: ../Doc/library/test.rst:806 +#, fuzzy +msgid "" +"Decorator for only running the test if :ref:`Limited C API ` " +"is available." +msgstr "Decorador para ejecutar solo la prueba si :data:`HAVE_DOCSTRINGS`." + +#: ../Doc/library/test.rst:812 msgid "Decorator for tests only applicable to CPython." msgstr "Decorador para pruebas solo aplicable a CPython." -#: ../Doc/library/test.rst:750 +#: ../Doc/library/test.rst:817 msgid "" "Decorator for invoking :func:`check_impl_detail` on *guards*. If that " "returns ``False``, then uses *msg* as the reason for skipping the test." @@ -1073,13 +1131,13 @@ msgstr "" "Decorador para invocar :func:`check_impl_detail` en *guards*. Si eso retorna " "``False``, entonces usa *msg* como la razón para omitir la prueba." -#: ../Doc/library/test.rst:756 +#: ../Doc/library/test.rst:823 msgid "Decorator to temporarily turn off tracing for the duration of the test." msgstr "" "Decorador para desactivar temporalmente el seguimiento durante la duración " "de la prueba." -#: ../Doc/library/test.rst:761 +#: ../Doc/library/test.rst:828 msgid "" "Decorator for tests which involve reference counting. The decorator does " "not run the test if it is not run by CPython. Any trace function is unset " @@ -1091,11 +1149,11 @@ msgstr "" "se establece durante la duración de la prueba para evitar conteos de " "referencia(*refcounts*) inesperados causados por la función de rastreo." -#: ../Doc/library/test.rst:769 +#: ../Doc/library/test.rst:836 msgid "Decorator for bigmem tests." msgstr "Decorador para pruebas *bigmem*." -#: ../Doc/library/test.rst:771 +#: ../Doc/library/test.rst:838 msgid "" "*size* is a requested size for the test (in arbitrary, test-interpreted " "units.) *memuse* is the number of bytes per unit for the test, or a good " @@ -1108,7 +1166,7 @@ msgstr "" "necesita dos búfers de byte, de 4 *GiB* cada uno, podría decorarse con " "``@bigmemtest(size=_4G, memuse=2)``." -#: ../Doc/library/test.rst:776 +#: ../Doc/library/test.rst:843 msgid "" "The *size* argument is normally passed to the decorated test method as an " "extra argument. If *dry_run* is ``True``, the value passed to the test " @@ -1121,11 +1179,11 @@ msgstr "" "significa que la prueba no admite ejecuciones ficticias cuando no se " "especifica ``-M``." -#: ../Doc/library/test.rst:784 +#: ../Doc/library/test.rst:851 msgid "Decorator for tests that fill the address space." msgstr "Decorador para pruebas que llenan el espacio de direcciones." -#: ../Doc/library/test.rst:789 +#: ../Doc/library/test.rst:856 msgid "" "Test for syntax errors in *statement* by attempting to compile *statement*. " "*testcase* is the :mod:`unittest` instance for the test. *errtext* is the " @@ -1141,11 +1199,11 @@ msgstr "" "es ``None``, se compara con la línea de la excepción. Si *offset* no es " "``None``, se compara con el desplazamiento de la excepción." -#: ../Doc/library/test.rst:799 +#: ../Doc/library/test.rst:866 msgid "Open *url*. If open fails, raises :exc:`TestFailed`." msgstr "Abre *url*. Si la apertura falla, se lanza :exc:`TestFailed`." -#: ../Doc/library/test.rst:804 +#: ../Doc/library/test.rst:871 msgid "" "Use this at the end of ``test_main`` whenever sub-processes are started. " "This will help ensure that no extra children (zombies) stick around to hog " @@ -1156,7 +1214,7 @@ msgstr "" "(zombies) se quede para acumular recursos y crear problemas al buscar " "refleaks." -#: ../Doc/library/test.rst:811 +#: ../Doc/library/test.rst:878 msgid "" "Get an attribute, raising :exc:`unittest.SkipTest` if :exc:`AttributeError` " "is raised." @@ -1164,7 +1222,7 @@ msgstr "" "Obtiene un atributo, lanzando :exc:`unittest.SkipTest` si :exc:" "`AttributeError` está activado." -#: ../Doc/library/test.rst:817 +#: ../Doc/library/test.rst:884 msgid "" "Context manager catching unraisable exception using :func:`sys." "unraisablehook`." @@ -1172,7 +1230,7 @@ msgstr "" "El administrador de contexto detectando excepciones imposibles de evaluar " "usando :func:`sys.unraisablehook`." -#: ../Doc/library/test.rst:820 +#: ../Doc/library/test.rst:887 msgid "" "Storing the exception value (``cm.unraisable.exc_value``) creates a " "reference cycle. The reference cycle is broken explicitly when the context " @@ -1182,7 +1240,7 @@ msgstr "" "un ciclo de referencia. El ciclo de referencia se interrumpe explícitamente " "cuando sale el administrador de contexto." -#: ../Doc/library/test.rst:824 +#: ../Doc/library/test.rst:891 msgid "" "Storing the object (``cm.unraisable.object``) can resurrect it if it is set " "to an object which is being finalized. Exiting the context manager clears " @@ -1192,7 +1250,7 @@ msgstr "" "se establece en un objeto que se está finalizando. Salir del administrador " "de contexto borra el objeto almacenado." -#: ../Doc/library/test.rst:845 +#: ../Doc/library/test.rst:912 msgid "" "Generic implementation of the :mod:`unittest` ``load_tests`` protocol for " "use in test packages. *pkg_dir* is the root directory of the package; " @@ -1206,7 +1264,7 @@ msgstr "" "``load_tests``. En casos simples, el paquete de prueba ``__init __. Py`` " "puede ser el siguiente::" -#: ../Doc/library/test.rst:860 +#: ../Doc/library/test.rst:927 msgid "" "Returns the set of attributes, functions or methods of *ref_api* not found " "on *other_api*, except for a defined list of items to be ignored in this " @@ -1216,7 +1274,7 @@ msgstr "" "encuentra en *other_api *, excepto por una lista definida de elementos que " "se ignorarán en esta comprobación especificada en *ignore*." -#: ../Doc/library/test.rst:864 +#: ../Doc/library/test.rst:931 msgid "" "By default this skips private attributes beginning with '_' but includes all " "magic methods, i.e. those starting and ending in '__'." @@ -1225,7 +1283,7 @@ msgstr "" "pero incluye todos los métodos mágicos, es decir, los que comienzan y " "terminan en '__'." -#: ../Doc/library/test.rst:872 +#: ../Doc/library/test.rst:939 msgid "" "Override *object_to_patch.attr_name* with *new_value*. Also add cleanup " "procedure to *test_instance* to restore *object_to_patch* for *attr_name*. " @@ -1236,7 +1294,7 @@ msgstr "" "para *attr_name*. *Attr_name* debe ser un atributo válido para " "*object_to_patch*." -#: ../Doc/library/test.rst:880 +#: ../Doc/library/test.rst:947 msgid "" "Run *code* in subinterpreter. Raise :exc:`unittest.SkipTest` if :mod:" "`tracemalloc` is enabled." @@ -1244,12 +1302,12 @@ msgstr "" "Ejecuta *code* en el subinterpretador. Lanza :exc:`unittest.SkipTest` si :" "mod:`tracemalloc` está habilitado." -#: ../Doc/library/test.rst:886 +#: ../Doc/library/test.rst:953 msgid "Assert instances of *cls* are deallocated after iterating." msgstr "" "Las instancias de aserción de *cls* se desalojan después de la iteración." -#: ../Doc/library/test.rst:891 +#: ../Doc/library/test.rst:958 msgid "" "Check for the existence of the compiler executables whose names are listed " "in *cmd_names* or all the compiler executables when *cmd_names* is empty and " @@ -1260,14 +1318,14 @@ msgstr "" "*cmd_names* está vacío y retorna el primer ejecutable faltante o ``None`` " "cuando no se encuentra ninguno." -#: ../Doc/library/test.rst:899 +#: ../Doc/library/test.rst:966 msgid "" "Assert that the ``__all__`` variable of *module* contains all public names." msgstr "" "Aserciona que la variable ``_all__`` de *module* contiene todos los nombres " "públicos." -#: ../Doc/library/test.rst:901 +#: ../Doc/library/test.rst:968 msgid "" "The module's public names (its API) are detected automatically based on " "whether they match the public name convention and were defined in *module*." @@ -1276,7 +1334,7 @@ msgstr "" "función de si coinciden con la convención de nombres públicos y se " "definieron en *module*." -#: ../Doc/library/test.rst:905 +#: ../Doc/library/test.rst:972 msgid "" "The *name_of_module* argument can specify (as a string or tuple thereof) " "what module(s) an API could be defined in order to be detected as a public " @@ -1289,7 +1347,7 @@ msgstr "" "pública desde otros módulos, posiblemente un *backend de C* (como ``csv`` y " "su ``_csv``)." -#: ../Doc/library/test.rst:910 +#: ../Doc/library/test.rst:977 msgid "" "The *extra* argument can be a set of names that wouldn't otherwise be " "automatically detected as \"public\", like objects without a proper " @@ -1301,7 +1359,7 @@ msgstr "" "sin un atributo adecuado ``__module__``. Si se proporciona, se agregará a " "los detectados automáticamente." -#: ../Doc/library/test.rst:914 +#: ../Doc/library/test.rst:981 msgid "" "The *not_exported* argument can be a set of names that must not be treated " "as part of the public API even though their names indicate otherwise." @@ -1310,11 +1368,11 @@ msgstr "" "tratarse como parte de la API pública aunque sus nombres indiquen lo " "contrario." -#: ../Doc/library/test.rst:917 ../Doc/library/test.rst:1550 +#: ../Doc/library/test.rst:984 ../Doc/library/test.rst:1610 msgid "Example use::" msgstr "Ejemplo de uso::" -#: ../Doc/library/test.rst:940 +#: ../Doc/library/test.rst:1007 msgid "" "Skip tests if the :mod:`multiprocessing.synchronize` module is missing, if " "there is no available semaphore implementation, or if creating a lock raises " @@ -1324,13 +1382,13 @@ msgstr "" "synchronize`, si no hay una implementación de semáforo disponible, o si " "crear un *lock* lanza un :exc:`OSError`." -#: ../Doc/library/test.rst:949 +#: ../Doc/library/test.rst:1016 msgid "Assert that type *tp* cannot be instantiated using *args* and *kwds*." msgstr "" "Se aserciona que el tipo *tp* no pueda ser instanciado usando *args* y " "*kwds*." -#: ../Doc/library/test.rst:956 +#: ../Doc/library/test.rst:1023 msgid "" "This function returns a context manager that will change the global :func:" "`sys.set_int_max_str_digits` setting for the duration of the context to " @@ -1343,11 +1401,11 @@ msgstr "" "necesita un límite diferente en la cantidad de dígitos al convertir entre un " "número entero y una cadena." -#: ../Doc/library/test.rst:964 +#: ../Doc/library/test.rst:1031 msgid "The :mod:`test.support` module defines the following classes:" msgstr "El módulo :mod:`test.support` define las siguientes clases:" -#: ../Doc/library/test.rst:969 +#: ../Doc/library/test.rst:1036 msgid "" "A context manager used to try to prevent crash dialog popups on tests that " "are expected to crash a subprocess." @@ -1355,7 +1413,7 @@ msgstr "" "Un administrador de contexto suele intentar evitar ventanas emergentes de " "diálogo de bloqueo en las pruebas que se espera que bloqueen un subproceso." -#: ../Doc/library/test.rst:972 +#: ../Doc/library/test.rst:1039 msgid "" "On Windows, it disables Windows Error Reporting dialogs using `SetErrorMode " "`_." @@ -1364,22 +1422,23 @@ msgstr "" "Windows usando `SetErrorMode `_." -#: ../Doc/library/test.rst:975 +#: ../Doc/library/test.rst:1042 +#, fuzzy msgid "" -"On UNIX, :func:`resource.setrlimit` is used to set :attr:`resource." +"On UNIX, :func:`resource.setrlimit` is used to set :const:`resource." "RLIMIT_CORE`'s soft limit to 0 to prevent coredump file creation." msgstr "" "En UNIX, :func:`resource.setrlimit` se usa para establecer :attr:`resource." "RLIMIT_CORE` del límite flexible a 0 para evitar la creación de archivos " "*coredump*." -#: ../Doc/library/test.rst:979 +#: ../Doc/library/test.rst:1046 msgid "On both platforms, the old value is restored by :meth:`__exit__`." msgstr "" "En ambas plataformas, el valor anterior se restaura mediante :meth:" "`__exit__`." -#: ../Doc/library/test.rst:984 +#: ../Doc/library/test.rst:1051 msgid "" "Class to save and restore signal handlers registered by the Python signal " "handler." @@ -1387,7 +1446,7 @@ msgstr "" "Clase para guardar y restaurar manejadores (*handlers*) de señal registrados " "por el manejador de señal Python." -#: ../Doc/library/test.rst:989 +#: ../Doc/library/test.rst:1056 msgid "" "Save the signal handlers to a dictionary mapping signal numbers to the " "current signal handler." @@ -1395,34 +1454,30 @@ msgstr "" "Guarda los controladores de señales en un diccionario que asigna números de " "señales al controlador de señales actual." -#: ../Doc/library/test.rst:994 +#: ../Doc/library/test.rst:1061 msgid "" "Set the signal numbers from the :meth:`save` dictionary to the saved handler." msgstr "" "Establece los números de señal del diccionario :meth:`save` en el " "controlador guardado." -#: ../Doc/library/test.rst:1002 +#: ../Doc/library/test.rst:1069 msgid "Try to match a single dict with the supplied arguments." msgstr "" "Intenta hacer coincidir una sola sentencia con los argumentos proporcionados." -#: ../Doc/library/test.rst:1007 +#: ../Doc/library/test.rst:1074 msgid "Try to match a single stored value (*dv*) with a supplied value (*v*)." msgstr "" "Intenta hacer coincidir un único valor almacenado (*dv*) con un valor " "proporcionado (*v*)." -#: ../Doc/library/test.rst:1014 -msgid "Run *test* and return the result." -msgstr "Retorna *test* y retorna el resultado.." - -#: ../Doc/library/test.rst:1018 +#: ../Doc/library/test.rst:1078 msgid ":mod:`test.support.socket_helper` --- Utilities for socket tests" msgstr "" ":mod:`test.support.socket_helper` --- Utilidades para pruebas de socket" -#: ../Doc/library/test.rst:1024 +#: ../Doc/library/test.rst:1084 msgid "" "The :mod:`test.support.socket_helper` module provides support for socket " "tests." @@ -1430,13 +1485,13 @@ msgstr "" "El módulo :mod:`test.support.socket_helper` proporciona soporte para las " "pruebas de socket." -#: ../Doc/library/test.rst:1031 +#: ../Doc/library/test.rst:1091 msgid "Set to ``True`` if IPv6 is enabled on this host, ``False`` otherwise." msgstr "" "Se establece como ``True`` si IPv6 está habilitado en este host, ``False`` " "en caso contrario." -#: ../Doc/library/test.rst:1036 +#: ../Doc/library/test.rst:1096 msgid "" "Returns an unused port that should be suitable for binding. This is " "achieved by creating a temporary socket with the same family and type as the " @@ -1454,7 +1509,7 @@ msgstr "" "provocando un puerto efímero no utilizado del sistema operativo. El *socket* " "temporal se cierra y se elimina, y se retorna el puerto efímero." -#: ../Doc/library/test.rst:1045 +#: ../Doc/library/test.rst:1105 msgid "" "Either this method or :func:`bind_port` should be used for any tests where a " "server socket needs to be bound to a particular port for the duration of the " @@ -1477,7 +1532,7 @@ msgstr "" "instancias de la prueba sean imposibles de ejecutar simultáneamente, lo cual " "es un problema para los *buildbots*." -#: ../Doc/library/test.rst:1059 +#: ../Doc/library/test.rst:1119 msgid "" "Bind the socket to a free port and return the port number. Relies on " "ephemeral ports in order to ensure we are using an unbound port. This is " @@ -1500,7 +1555,7 @@ msgstr "" "El único caso para configurar estas opciones es probar la multidifusión " "(*multicasting*) a través de múltiples *sockets UDP*." -#: ../Doc/library/test.rst:1070 +#: ../Doc/library/test.rst:1130 msgid "" "Additionally, if the :const:`~socket.SO_EXCLUSIVEADDRUSE` socket option is " "available (i.e. on Windows), it will be set on the socket. This will " @@ -1512,7 +1567,7 @@ msgstr "" "evitará que otras personas se vinculen a nuestro host/puerto mientras dure " "la prueba." -#: ../Doc/library/test.rst:1078 +#: ../Doc/library/test.rst:1138 msgid "" "Bind a Unix socket, raising :exc:`unittest.SkipTest` if :exc:" "`PermissionError` is raised." @@ -1520,7 +1575,7 @@ msgstr "" "Enlaza un socket Unix, lanzando :exc:`unittest.SkipTest` si se lanza :exc:" "`PermissionError`." -#: ../Doc/library/test.rst:1084 +#: ../Doc/library/test.rst:1144 msgid "" "A decorator for running tests that require a functional ``bind()`` for Unix " "sockets." @@ -1528,7 +1583,7 @@ msgstr "" "Un decorador para ejecutar pruebas que requieren un enlace(``bind()``) " "funcional para sockets en sistemas Unix." -#: ../Doc/library/test.rst:1090 +#: ../Doc/library/test.rst:1150 msgid "" "A context manager that raises :exc:`~test.support.ResourceDenied` when " "various issues with the internet connection manifest themselves as " @@ -1537,7 +1592,7 @@ msgstr "" "Un gestor de contexto que lanza :exc:`~test.support.ResourceDenied` cuando " "varios problemas con la conexión a Internet se manifiestan como excepciones." -#: ../Doc/library/test.rst:1096 +#: ../Doc/library/test.rst:1156 msgid "" ":mod:`test.support.script_helper` --- Utilities for the Python execution " "tests" @@ -1545,7 +1600,7 @@ msgstr "" ":mod:`test.support.script_helper` ---Utilidades para las pruebas de " "ejecución de Python" -#: ../Doc/library/test.rst:1102 +#: ../Doc/library/test.rst:1162 msgid "" "The :mod:`test.support.script_helper` module provides support for Python's " "script execution tests." @@ -1553,7 +1608,7 @@ msgstr "" "El módulo :mod:`test.support.script_helper` proporciona soporte para las " "pruebas de ejecución de script de Python." -#: ../Doc/library/test.rst:1107 +#: ../Doc/library/test.rst:1167 msgid "" "Return ``True`` if ``sys.executable interpreter`` requires environment " "variables in order to be able to run at all." @@ -1561,7 +1616,7 @@ msgstr "" "Retorna ``True`` si el ``sys.executable interpreter`` requiere variables de " "entorno para poder ejecutarse." -#: ../Doc/library/test.rst:1110 +#: ../Doc/library/test.rst:1170 msgid "" "This is designed to be used with ``@unittest.skipIf()`` to annotate tests " "that need to use an ``assert_python*()`` function to launch an isolated mode " @@ -1572,7 +1627,7 @@ msgstr "" "modo aislado (``-I``) o sin entorno proceso de subinterpretador de modo (``-" "E``)." -#: ../Doc/library/test.rst:1114 +#: ../Doc/library/test.rst:1174 msgid "" "A normal build & test does not run into this situation but it can happen " "when trying to run the standard library test suite from an interpreter that " @@ -1583,7 +1638,7 @@ msgstr "" "biblioteca estándar desde un intérprete que no tiene un directorio principal " "obvio con la lógica de búsqueda de directorio principal actual de Python." -#: ../Doc/library/test.rst:1118 +#: ../Doc/library/test.rst:1178 msgid "" "Setting :envvar:`PYTHONHOME` is one way to get most of the testsuite to run " "in that situation. :envvar:`PYTHONPATH` or :envvar:`PYTHONUSERSITE` are " @@ -1595,7 +1650,7 @@ msgstr "" "`PYTHONUSERSITE` son otras variables de entorno comunes que pueden afectar " "si el intérprete puede o no comenzar." -#: ../Doc/library/test.rst:1126 +#: ../Doc/library/test.rst:1186 msgid "" "Set up the environment based on *env_vars* for running the interpreter in a " "subprocess. The values can include ``__isolated``, ``__cleanenv``, " @@ -1605,12 +1660,12 @@ msgstr "" "subproceso. Los valores pueden incluir ``__isolated``, ``__cleanenv``, " "``__cwd`` y ``TERM``." -#: ../Doc/library/test.rst:1130 ../Doc/library/test.rst:1146 -#: ../Doc/library/test.rst:1158 +#: ../Doc/library/test.rst:1190 ../Doc/library/test.rst:1206 +#: ../Doc/library/test.rst:1218 msgid "The function no longer strips whitespaces from *stderr*." msgstr "La función ya no elimina los espacios en blanco de *stderr*." -#: ../Doc/library/test.rst:1136 +#: ../Doc/library/test.rst:1196 msgid "" "Assert that running the interpreter with *args* and optional environment " "variables *env_vars* succeeds (``rc == 0``) and return a ``(return code, " @@ -1620,7 +1675,7 @@ msgstr "" "opcionales *env_vars* tiene éxito (``rc == 0``) y retorna una tupla " "``(código de retorno, stdout, stderr)``." -#: ../Doc/library/test.rst:1140 +#: ../Doc/library/test.rst:1200 msgid "" "If the *__cleanenv* keyword-only parameter is set, *env_vars* is used as a " "fresh environment." @@ -1628,7 +1683,7 @@ msgstr "" "Si se establece el parámetro de solo palabra clave *__cleanenv*, *env_vars* " "se usa como un entorno nuevo." -#: ../Doc/library/test.rst:1143 +#: ../Doc/library/test.rst:1203 msgid "" "Python is started in isolated mode (command line option ``-I``), except if " "the *__isolated* keyword-only parameter is set to ``False``." @@ -1637,7 +1692,7 @@ msgstr "" "excepto si el parámetro de solo palabra clave *__isolated* se establece en " "``False``." -#: ../Doc/library/test.rst:1152 +#: ../Doc/library/test.rst:1212 msgid "" "Assert that running the interpreter with *args* and optional environment " "variables *env_vars* fails (``rc != 0``) and return a ``(return code, " @@ -1647,15 +1702,15 @@ msgstr "" "opcionales *env_vars* falla (``rc! = 0``) y retorna una tupla ``(return " "code, stdout, stderr)``." -#: ../Doc/library/test.rst:1156 +#: ../Doc/library/test.rst:1216 msgid "See :func:`assert_python_ok` for more options." msgstr "Consulte :func:`assert_python_ok` para más opciones." -#: ../Doc/library/test.rst:1164 +#: ../Doc/library/test.rst:1224 msgid "Run a Python subprocess with the given arguments." msgstr "Ejecuta un subproceso de Python con los argumentos dados." -#: ../Doc/library/test.rst:1166 +#: ../Doc/library/test.rst:1226 msgid "" "*kw* is extra keyword args to pass to :func:`subprocess.Popen`. Returns a :" "class:`subprocess.Popen` object." @@ -1663,7 +1718,7 @@ msgstr "" "*kw* es un argumento adicional de palabras clave para pasar a :func:" "`subprocess.Popen`. Retorna un objeto a :class:`subprocess.Popen`." -#: ../Doc/library/test.rst:1172 +#: ../Doc/library/test.rst:1232 msgid "" "Run the given :class:`subprocess.Popen` process until completion and return " "stdout." @@ -1671,7 +1726,7 @@ msgstr "" "Ejecuta el proceso dado :class:`subprocess.Popen` hasta que finalice y " "retorne *stdout*." -#: ../Doc/library/test.rst:1178 +#: ../Doc/library/test.rst:1238 msgid "" "Create script containing *source* in path *script_dir* and " "*script_basename*. If *omit_suffix* is ``False``, append ``.py`` to the " @@ -1681,7 +1736,7 @@ msgstr "" "*script_basename*. Si *omit_suffix* es ``False``, agregue ``.py`` al nombre. " "Retorna la ruta completa del script." -#: ../Doc/library/test.rst:1185 +#: ../Doc/library/test.rst:1245 msgid "" "Create zip file at *zip_dir* and *zip_basename* with extension ``zip`` which " "contains the files in *script_name*. *name_in_zip* is the archive name. " @@ -1692,7 +1747,7 @@ msgstr "" "archivo. Retorna una tupla que contiene ``(ruta completa, ruta completa del " "nombre del archivo)``." -#: ../Doc/library/test.rst:1192 +#: ../Doc/library/test.rst:1252 msgid "" "Create a directory named *pkg_dir* containing an ``__init__`` file with " "*init_source* as its contents." @@ -1700,7 +1755,7 @@ msgstr "" "Crea un directorio llamado *pkg_dir* que contiene un archivo ``__init__`` " "con *init_source* como su contenido." -#: ../Doc/library/test.rst:1199 +#: ../Doc/library/test.rst:1259 msgid "" "Create a zip package directory with a path of *zip_dir* and *zip_basename* " "containing an empty ``__init__`` file and a file *script_basename* " @@ -1714,7 +1769,7 @@ msgstr "" "se compilarán y se agregarán al paquete zip. Retorna una tupla de la ruta " "zip completa y el nombre de archivo para el archivo zip." -#: ../Doc/library/test.rst:1207 +#: ../Doc/library/test.rst:1267 msgid "" ":mod:`test.support.bytecode_helper` --- Support tools for testing correct " "bytecode generation" @@ -1722,7 +1777,7 @@ msgstr "" ":mod:`test.support.bytecode_helper` --- Herramientas de apoyo para comprobar " "la correcta generación de bytecode" -#: ../Doc/library/test.rst:1212 +#: ../Doc/library/test.rst:1272 msgid "" "The :mod:`test.support.bytecode_helper` module provides support for testing " "and inspecting bytecode generation." @@ -1730,37 +1785,37 @@ msgstr "" "El módulo :mod:`test.support.bytecode_helper` proporciona soporte para " "probar e inspeccionar la generación de código de bytes." -#: ../Doc/library/test.rst:1217 +#: ../Doc/library/test.rst:1277 msgid "The module defines the following class:" msgstr "El módulo define la siguiente clase:" -#: ../Doc/library/test.rst:1221 +#: ../Doc/library/test.rst:1281 msgid "This class has custom assertion methods for inspecting bytecode." msgstr "" "Esta clase tiene métodos de aserción personalizados para inspeccionar el " "código de bytes." -#: ../Doc/library/test.rst:1225 +#: ../Doc/library/test.rst:1285 msgid "Return the disassembly of *co* as string." msgstr "Retorna el desensamblaje de *co* como cadena." -#: ../Doc/library/test.rst:1230 +#: ../Doc/library/test.rst:1290 msgid "" "Return instr if *opname* is found, otherwise throws :exc:`AssertionError`." msgstr "" "Retorna instr si se encuentra *opname*, de lo contrario lanza :exc:" "`AssertionError`." -#: ../Doc/library/test.rst:1235 +#: ../Doc/library/test.rst:1295 msgid "Throws :exc:`AssertionError` if *opname* is found." msgstr "Lanza :exc:`AssertionError` si se encuentra *opname*." -#: ../Doc/library/test.rst:1239 +#: ../Doc/library/test.rst:1299 msgid ":mod:`test.support.threading_helper` --- Utilities for threading tests" msgstr "" ":mod:`test.support.threading_helper` --- Utilidades para pruebas con hilos" -#: ../Doc/library/test.rst:1244 +#: ../Doc/library/test.rst:1304 msgid "" "The :mod:`test.support.threading_helper` module provides support for " "threading tests." @@ -1768,7 +1823,7 @@ msgstr "" "El módulo :mod:`test.support.threading_helper` proporciona soporte para las " "pruebas de socket." -#: ../Doc/library/test.rst:1251 +#: ../Doc/library/test.rst:1311 msgid "" "Join a *thread* within *timeout*. Raise an :exc:`AssertionError` if thread " "is still alive after *timeout* seconds." @@ -1776,13 +1831,13 @@ msgstr "" "Se une un *thread* dentro de *timeout*. Lanza un :exc:`AssertionError` si el " "hilo sigue vivo después de unos segundos de *timeout*." -#: ../Doc/library/test.rst:1257 +#: ../Doc/library/test.rst:1317 msgid "Decorator to ensure the threads are cleaned up even if the test fails." msgstr "" "Decorador para garantizar que los hilos se limpien incluso si la prueba " "falla." -#: ../Doc/library/test.rst:1262 +#: ../Doc/library/test.rst:1322 msgid "" "Context manager to start *threads*, which is a sequence of threads. *unlock* " "is a function called after the threads are started, even if an exception was " @@ -1795,7 +1850,7 @@ msgstr "" "sería :meth:`threading.Event.set`. ``start_threads`` intentará unirse a los " "subprocesos iniciados al salir." -#: ../Doc/library/test.rst:1270 +#: ../Doc/library/test.rst:1330 msgid "" "Cleanup up threads not specified in *original_values*. Designed to emit a " "warning if a test leaves running threads in the background." @@ -1804,11 +1859,11 @@ msgstr "" "emitir una advertencia si una prueba deja hilos en ejecución en segundo " "plano." -#: ../Doc/library/test.rst:1276 +#: ../Doc/library/test.rst:1336 msgid "Return current thread count and copy of dangling threads." msgstr "Retorna el recuento del hilo actual y copia de subprocesos colgantes." -#: ../Doc/library/test.rst:1281 +#: ../Doc/library/test.rst:1341 msgid "" "Context manager to wait until all threads created in the ``with`` statement " "exit." @@ -1816,7 +1871,7 @@ msgstr "" "El administrador de contexto debe esperar hasta que salgan todos los hilos " "creados en la declaración ``with``." -#: ../Doc/library/test.rst:1287 +#: ../Doc/library/test.rst:1347 msgid "" "Context manager catching :class:`threading.Thread` exception using :func:" "`threading.excepthook`." @@ -1824,56 +1879,56 @@ msgstr "" "El administrador de contexto captura :class:`threading.Thread` excepción " "usando :func:`threading.excepthook`." -#: ../Doc/library/test.rst:1290 +#: ../Doc/library/test.rst:1350 msgid "Attributes set when an exception is caught:" msgstr "Atributos establecidos cuando se captura una excepción:" -#: ../Doc/library/test.rst:1292 +#: ../Doc/library/test.rst:1352 msgid "``exc_type``" msgstr "``exc_type``" -#: ../Doc/library/test.rst:1293 +#: ../Doc/library/test.rst:1353 msgid "``exc_value``" msgstr "``exc_value``" -#: ../Doc/library/test.rst:1294 +#: ../Doc/library/test.rst:1354 msgid "``exc_traceback``" msgstr "``exc_traceback``" -#: ../Doc/library/test.rst:1295 +#: ../Doc/library/test.rst:1355 msgid "``thread``" msgstr "``thread``" -#: ../Doc/library/test.rst:1297 +#: ../Doc/library/test.rst:1357 msgid "See :func:`threading.excepthook` documentation." msgstr "Consulte la documentación para :func:`threading.excepthook`." -#: ../Doc/library/test.rst:1299 +#: ../Doc/library/test.rst:1359 msgid "These attributes are deleted at the context manager exit." msgstr "" "Estos atributos se eliminan en la salida del administrador de contexto." -#: ../Doc/library/test.rst:1319 +#: ../Doc/library/test.rst:1379 msgid ":mod:`test.support.os_helper` --- Utilities for os tests" msgstr "" ":mod:`test.support.os_helper` --- Utilidades para pruebas de sistemas " "operativos" -#: ../Doc/library/test.rst:1324 +#: ../Doc/library/test.rst:1384 msgid "The :mod:`test.support.os_helper` module provides support for os tests." msgstr "" "El módulo :mod:`test.support.os_helper` proporciona soporte para las pruebas " "de sistemas operativos." -#: ../Doc/library/test.rst:1331 +#: ../Doc/library/test.rst:1391 msgid "A non-ASCII character encodable by :func:`os.fsencode`." msgstr "Un carácter no codificable ASCII codificable por :func:`os.fsencode`." -#: ../Doc/library/test.rst:1336 +#: ../Doc/library/test.rst:1396 msgid "Set to :func:`os.getcwd`." msgstr "Establecido :func:`os.getcwd`." -#: ../Doc/library/test.rst:1341 +#: ../Doc/library/test.rst:1401 msgid "" "Set to a name that is safe to use as the name of a temporary file. Any " "temporary file that is created should be closed and unlinked (removed)." @@ -1882,7 +1937,7 @@ msgstr "" "temporal. Cualquier archivo temporal que se cree debe cerrarse y " "desvincularse (eliminarse)." -#: ../Doc/library/test.rst:1347 +#: ../Doc/library/test.rst:1407 msgid "" "Set to a filename containing the :data:`FS_NONASCII` character, if it " "exists. This guarantees that if the filename exists, it can be encoded and " @@ -1896,7 +1951,7 @@ msgstr "" "requieren un nombre de archivo que no sea ASCII en plataformas donde no " "pueden funcionar." -#: ../Doc/library/test.rst:1355 +#: ../Doc/library/test.rst:1415 msgid "" "Set to a filename (str type) that should not be able to be encoded by file " "system encoding in strict mode. It may be ``None`` if it's not possible to " @@ -1906,7 +1961,7 @@ msgstr "" "mediante la codificación del sistema de archivos en modo estricto. Puede ser " "``None`` si no es posible generar dicho nombre de archivo." -#: ../Doc/library/test.rst:1362 +#: ../Doc/library/test.rst:1422 msgid "" "Set to a filename (bytes type) that should not be able to be decoded by file " "system encoding in strict mode. It may be ``None`` if it's not possible to " @@ -1916,11 +1971,11 @@ msgstr "" "mediante la codificación del sistema de archivos en modo estricto. Puede ser " "``None`` si no es posible generar dicho nombre de archivo." -#: ../Doc/library/test.rst:1369 +#: ../Doc/library/test.rst:1429 msgid "Set to a non-ASCII name for a temporary file." msgstr "Establecido un nombre que no sea ASCII para un archivo temporal." -#: ../Doc/library/test.rst:1374 +#: ../Doc/library/test.rst:1434 msgid "" "Class used to temporarily set or unset environment variables. Instances can " "be used as a context manager and have a complete dictionary interface for " @@ -1935,11 +1990,11 @@ msgstr "" "todos los cambios en las variables de entorno realizados a través de esta " "instancia se revertirán." -#: ../Doc/library/test.rst:1380 +#: ../Doc/library/test.rst:1440 msgid "Added dictionary interface." msgstr "Añadido una interfaz de diccionario." -#: ../Doc/library/test.rst:1386 +#: ../Doc/library/test.rst:1446 msgid "" "Simple :term:`path-like object`. It implements the :meth:`__fspath__` " "method which just returns the *path* argument. If *path* is an exception, " @@ -1949,7 +2004,7 @@ msgstr "" "que simplemente retorna el argumento *path*. Si *path* es una excepción, se " "lanzará en :meth:`! __ fspath__`." -#: ../Doc/library/test.rst:1393 +#: ../Doc/library/test.rst:1453 msgid "" "Temporarily set the environment variable ``envvar`` to the value of " "``value``." @@ -1957,23 +2012,23 @@ msgstr "" "Se establece temporalmente la variable de entorno ``envvar`` en el valor de " "``value``." -#: ../Doc/library/test.rst:1399 +#: ../Doc/library/test.rst:1459 msgid "Temporarily unset the environment variable ``envvar``." msgstr "Deshabilita temporalmente la variable de entorno ``envvar``." -#: ../Doc/library/test.rst:1404 +#: ../Doc/library/test.rst:1464 msgid "Return ``True`` if the OS supports symbolic links, ``False`` otherwise." msgstr "" "Retorna ``True`` si el sistema operativo admite links simbólicos, de lo " "contrario ``False``." -#: ../Doc/library/test.rst:1410 +#: ../Doc/library/test.rst:1470 msgid "Return ``True`` if the OS supports xattr, ``False`` otherwise." msgstr "" "Retorna ``True`` si el sistema operativo admite *xattr*, de lo contrario " "``False``." -#: ../Doc/library/test.rst:1416 +#: ../Doc/library/test.rst:1476 msgid "" "A context manager that temporarily changes the current working directory to " "*path* and yields the directory." @@ -1981,7 +2036,7 @@ msgstr "" "Un administrador de contexto que cambia temporalmente el directorio de " "trabajo actual a *path* y produce el directorio." -#: ../Doc/library/test.rst:1419 +#: ../Doc/library/test.rst:1479 msgid "" "If *quiet* is ``False``, the context manager raises an exception on error. " "Otherwise, it issues only a warning and keeps the current working directory " @@ -1991,22 +2046,22 @@ msgstr "" "caso de error. De lo contrario, solo emite una advertencia y mantiene el " "directorio de trabajo actual igual." -#: ../Doc/library/test.rst:1426 +#: ../Doc/library/test.rst:1486 msgid "" "Create an empty file with *filename*. If it already exists, truncate it." msgstr "Crea un archivo vacío con *filename*. Si ya existe, truncarlo." -#: ../Doc/library/test.rst:1431 +#: ../Doc/library/test.rst:1491 msgid "Count the number of open file descriptors." msgstr "Cuenta el número de descriptores de archivo abiertos." -#: ../Doc/library/test.rst:1436 +#: ../Doc/library/test.rst:1496 msgid "Return ``True`` if the file system for *directory* is case-insensitive." msgstr "" "Retorna ``True`` si el sistema de archivos para *directory* no distingue " "entre mayúsculas y minúsculas." -#: ../Doc/library/test.rst:1441 +#: ../Doc/library/test.rst:1501 msgid "" "Create an invalid file descriptor by opening and closing a temporary file, " "and returning its descriptor." @@ -2014,7 +2069,7 @@ msgstr "" "Se crea un descriptor de archivo no válido abriendo y cerrando un archivo " "temporal y retornando su descriptor." -#: ../Doc/library/test.rst:1447 +#: ../Doc/library/test.rst:1507 msgid "" "Call :func:`os.rmdir` on *filename*. On Windows platforms, this is wrapped " "with a wait loop that checks for the existence of the file, which is needed " @@ -2025,7 +2080,7 @@ msgstr "" "es necesario debido a los programas antivirus que pueden mantener los " "archivos abiertos y evitar que se eliminen." -#: ../Doc/library/test.rst:1455 +#: ../Doc/library/test.rst:1515 msgid "" "Call :func:`shutil.rmtree` on *path* or call :func:`os.lstat` and :func:`os." "rmdir` to remove a path and its contents. As with :func:`rmdir`, on Windows " @@ -2037,17 +2092,17 @@ msgstr "" "`rmdir`, en las plataformas de Windows esto se envuelve con un ciclo de " "espera que verifica la existencia de los archivos." -#: ../Doc/library/test.rst:1463 +#: ../Doc/library/test.rst:1523 msgid "A decorator for running tests that require support for symbolic links." msgstr "" "Un decorador para ejecutar pruebas que requieren soporte para enlaces " "simbólicos." -#: ../Doc/library/test.rst:1468 +#: ../Doc/library/test.rst:1528 msgid "A decorator for running tests that require support for xattr." msgstr "Un decorador para ejecutar pruebas que requieren soporte para *xattr*." -#: ../Doc/library/test.rst:1473 +#: ../Doc/library/test.rst:1533 msgid "" "A context manager that temporarily creates a new directory and changes the " "current working directory (CWD)." @@ -2055,7 +2110,7 @@ msgstr "" "Un administrador de contexto que crea temporalmente un nuevo directorio y " "cambia el directorio de trabajo actual (*CWD*)." -#: ../Doc/library/test.rst:1476 +#: ../Doc/library/test.rst:1536 msgid "" "The context manager creates a temporary directory in the current directory " "with name *name* before temporarily changing the current working directory. " @@ -2067,7 +2122,7 @@ msgstr "" "trabajo actual. Si *name* es ``None`` , el directorio temporal se crea " "usando :func:`tempfile.mkdtemp`." -#: ../Doc/library/test.rst:1481 +#: ../Doc/library/test.rst:1541 msgid "" "If *quiet* is ``False`` and it is not possible to create or change the CWD, " "an error is raised. Otherwise, only a warning is raised and the original " @@ -2077,7 +2132,7 @@ msgstr "" "un error. De lo contrario, solo se lanza una advertencia y se utiliza el " "*CWD* original." -#: ../Doc/library/test.rst:1488 +#: ../Doc/library/test.rst:1548 msgid "" "A context manager that creates a temporary directory at *path* and yields " "the directory." @@ -2085,7 +2140,7 @@ msgstr "" "Un administrador de contexto que crea un directorio temporal en *path* y " "produce el directorio." -#: ../Doc/library/test.rst:1491 +#: ../Doc/library/test.rst:1551 msgid "" "If *path* is ``None``, the temporary directory is created using :func:" "`tempfile.mkdtemp`. If *quiet* is ``False``, the context manager raises an " @@ -2097,12 +2152,12 @@ msgstr "" "excepción en caso de error. De lo contrario, si se especifica *path* y no se " "puede crear, solo se emite una advertencia." -#: ../Doc/library/test.rst:1499 +#: ../Doc/library/test.rst:1559 msgid "A context manager that temporarily sets the process umask." msgstr "" "Un administrador de contexto que establece temporalmente el proceso *umask*." -#: ../Doc/library/test.rst:1504 +#: ../Doc/library/test.rst:1564 msgid "" "Call :func:`os.unlink` on *filename*. As with :func:`rmdir`, on Windows " "platforms, this is wrapped with a wait loop that checks for the existence of " @@ -2112,12 +2167,12 @@ msgstr "" "las plataformas Windows, esto se envuelve con un ciclo de espera que " "verifica la existencia del archivo." -#: ../Doc/library/test.rst:1510 +#: ../Doc/library/test.rst:1570 msgid ":mod:`test.support.import_helper` --- Utilities for import tests" msgstr "" ":mod:`test.support.import_helper` --- Utilidades para pruebas de importación" -#: ../Doc/library/test.rst:1515 +#: ../Doc/library/test.rst:1575 msgid "" "The :mod:`test.support.import_helper` module provides support for import " "tests." @@ -2125,7 +2180,7 @@ msgstr "" "El módulo :mod:`test.support.import_helper` proporciona soporte para las " "pruebas de importación." -#: ../Doc/library/test.rst:1522 +#: ../Doc/library/test.rst:1582 msgid "" "Remove the module named *module_name* from ``sys.modules`` and delete any " "byte-compiled files of the module." @@ -2133,7 +2188,7 @@ msgstr "" "Elimina el módulo llamado *module_name* de ``sys.modules`` y elimina los " "archivos compilados por bytes del módulo." -#: ../Doc/library/test.rst:1528 +#: ../Doc/library/test.rst:1588 msgid "" "This function imports and returns a fresh copy of the named Python module by " "removing the named module from ``sys.modules`` before doing the import. Note " @@ -2145,7 +2200,7 @@ msgstr "" "importación. Tenga en cuenta que a diferencia de :func:`reload`, el módulo " "original no se ve afectado por esta operación." -#: ../Doc/library/test.rst:1533 +#: ../Doc/library/test.rst:1593 msgid "" "*fresh* is an iterable of additional module names that are also removed from " "the ``sys.modules`` cache before doing the import." @@ -2153,7 +2208,7 @@ msgstr "" "*fresh* es un iterable de nombres de módulos adicionales que también se " "eliminan del caché ``sys.modules`` antes de realizar la importación." -#: ../Doc/library/test.rst:1536 +#: ../Doc/library/test.rst:1596 msgid "" "*blocked* is an iterable of module names that are replaced with ``None`` in " "the module cache during the import to ensure that attempts to import them " @@ -2163,7 +2218,7 @@ msgstr "" "``None`` en la memoria caché del módulo durante la importación para " "garantizar que los intentos de importarlos generen :exc:`ImportError`." -#: ../Doc/library/test.rst:1540 +#: ../Doc/library/test.rst:1600 msgid "" "The named module and any modules named in the *fresh* and *blocked* " "parameters are saved before starting the import and then reinserted into " @@ -2173,7 +2228,7 @@ msgstr "" "*bloqueado* se guardan antes de comenzar la importación y luego se vuelven a " "insertar en ``sys.modules`` cuando se completa la importación fresca." -#: ../Doc/library/test.rst:1544 +#: ../Doc/library/test.rst:1604 msgid "" "Module and package deprecation messages are suppressed during this import if " "*deprecated* is ``True``." @@ -2181,7 +2236,7 @@ msgstr "" "Los mensajes de deprecación de módulos y paquetes se suprimen durante esta " "importación si *deprecated* es ``True``." -#: ../Doc/library/test.rst:1547 +#: ../Doc/library/test.rst:1607 msgid "" "This function will raise :exc:`ImportError` if the named module cannot be " "imported." @@ -2189,7 +2244,7 @@ msgstr "" "Esta función lanzará :exc:`ImportError` si el módulo nombrado no puede " "importarse." -#: ../Doc/library/test.rst:1564 +#: ../Doc/library/test.rst:1624 msgid "" "This function imports and returns the named module. Unlike a normal import, " "this function raises :exc:`unittest.SkipTest` if the module cannot be " @@ -2199,7 +2254,7 @@ msgstr "" "importación normal, esta función lanza :exc:`unittest.SkipTest` si el módulo " "no se puede importar." -#: ../Doc/library/test.rst:1568 +#: ../Doc/library/test.rst:1628 msgid "" "Module and package deprecation messages are suppressed during this import if " "*deprecated* is ``True``. If a module is required on a platform but " @@ -2212,11 +2267,11 @@ msgstr "" "iterable de prefijos de plataforma que se compararán con :data:`sys." "platform`." -#: ../Doc/library/test.rst:1578 +#: ../Doc/library/test.rst:1638 msgid "Return a copy of :data:`sys.modules`." msgstr "Retorna una copia de :data:`sys.modules`." -#: ../Doc/library/test.rst:1583 +#: ../Doc/library/test.rst:1643 msgid "" "Remove modules except for *oldmodules* and ``encodings`` in order to " "preserve internal cache." @@ -2224,11 +2279,11 @@ msgstr "" "Elimina los módulos a excepción de *oldmodules* y ``encodings`` para " "preservar la memoria caché interna." -#: ../Doc/library/test.rst:1589 +#: ../Doc/library/test.rst:1649 msgid "Delete *name* from ``sys.modules``." msgstr "Elimina *name* de ``sys.modules``." -#: ../Doc/library/test.rst:1594 +#: ../Doc/library/test.rst:1654 msgid "" "Move a :pep:`3147`/:pep:`488` pyc file to its legacy pyc location and return " "the file system path to the legacy pyc file. The *source* value is the file " @@ -2241,7 +2296,7 @@ msgstr "" "necesario que exista, sin embargo, debe existir el archivo PEP 3147/488 " "*pyc*." -#: ../Doc/library/test.rst:1602 +#: ../Doc/library/test.rst:1662 msgid "" "A context manager to force import to return a new module reference. This is " "useful for testing module-level behaviors, such as the emission of a :exc:" @@ -2252,13 +2307,13 @@ msgstr "" "de módulo, como la emisión de un :exc:`DeprecationWarning` en la " "importación. Ejemplo de uso::" -#: ../Doc/library/test.rst:1612 +#: ../Doc/library/test.rst:1672 msgid "A context manager to temporarily add directories to :data:`sys.path`." msgstr "" "Un administrador de contexto para agregar directorios temporalmente a :data:" "`sys.path`." -#: ../Doc/library/test.rst:1614 +#: ../Doc/library/test.rst:1674 msgid "" "This makes a copy of :data:`sys.path`, appends any directories given as " "positional arguments, then reverts :data:`sys.path` to the copied settings " @@ -2268,7 +2323,7 @@ msgstr "" "como argumento posicional, luego revierte :data:`sys.path` a la " "configuración copiada cuando finaliza el contexto." -#: ../Doc/library/test.rst:1618 +#: ../Doc/library/test.rst:1678 msgid "" "Note that *all* :data:`sys.path` modifications in the body of the context " "manager, including replacement of the object, will be reverted at the end of " @@ -2278,13 +2333,13 @@ msgstr "" "cuerpo del administrador de contexto, incluida la sustitución del objeto, se " "revertirán al final del bloque." -#: ../Doc/library/test.rst:1624 +#: ../Doc/library/test.rst:1684 msgid ":mod:`test.support.warnings_helper` --- Utilities for warnings tests" msgstr "" ":mod:`test.support.warnings_helper` --- Utilidades para pruebas de " "advertencias" -#: ../Doc/library/test.rst:1629 +#: ../Doc/library/test.rst:1689 msgid "" "The :mod:`test.support.warnings_helper` module provides support for warnings " "tests." @@ -2292,7 +2347,15 @@ msgstr "" "El módulo :mod:`test.support.warnings_helper` proporciona soporte para las " "pruebas de advertencias." -#: ../Doc/library/test.rst:1636 +#: ../Doc/library/test.rst:1696 +msgid "" +"Suppress warnings that are instances of *category*, which must be :exc:" +"`Warning` or a subclass. Roughly equivalent to :func:`warnings." +"catch_warnings` with :meth:`warnings.simplefilter('ignore', " +"category=category) `. For example::" +msgstr "" + +#: ../Doc/library/test.rst:1711 msgid "" "Context manager to check that no :exc:`ResourceWarning` was raised. You " "must remove the object which may emit :exc:`ResourceWarning` before the end " @@ -2302,7 +2365,7 @@ msgstr "" "`ResourceWarning` . Debe eliminar el objeto que puede emitir :exc:" "`ResourceWarning` antes del final del administrador de contexto." -#: ../Doc/library/test.rst:1643 +#: ../Doc/library/test.rst:1718 msgid "" "Test for syntax warning in *statement* by attempting to compile *statement*. " "Test also that the :exc:`SyntaxWarning` is emitted only once, and that it " @@ -2322,7 +2385,7 @@ msgstr "" "``None``, se compara con la línea de advertencia y excepción. Si *offset* no " "es ``None``, se compara con el desplazamiento de la excepción." -#: ../Doc/library/test.rst:1657 +#: ../Doc/library/test.rst:1732 msgid "" "A convenience wrapper for :func:`warnings.catch_warnings()` that makes it " "easier to test that a warning was correctly raised. It is approximately " @@ -2337,7 +2400,7 @@ msgstr "" "en ``always`` y con la opción de validar automáticamente los resultados que " "se registran." -#: ../Doc/library/test.rst:1663 +#: ../Doc/library/test.rst:1738 msgid "" "``check_warnings`` accepts 2-tuples of the form ``(\"message regexp\", " "WarningCategory)`` as positional arguments. If one or more *filters* are " @@ -2358,16 +2421,16 @@ msgstr "" "especificados, la prueba falla. Para deshabilitar la primera de estas " "comprobaciones, configure *quiet* en ``True``." -#: ../Doc/library/test.rst:1672 +#: ../Doc/library/test.rst:1747 msgid "If no arguments are specified, it defaults to::" msgstr "Si no se especifican argumentos, el valor predeterminado es::" -#: ../Doc/library/test.rst:1676 +#: ../Doc/library/test.rst:1751 msgid "In this case all warnings are caught and no errors are raised." msgstr "" "En este caso, se capturan todas las advertencias y no se lanzaran errores." -#: ../Doc/library/test.rst:1678 +#: ../Doc/library/test.rst:1753 msgid "" "On entry to the context manager, a :class:`WarningRecorder` instance is " "returned. The underlying warnings list from :func:`~warnings.catch_warnings` " @@ -2388,7 +2451,7 @@ msgstr "" "atributos que de otro modo se esperarían en un objeto que representa una " "advertencia retornará ``None``." -#: ../Doc/library/test.rst:1687 +#: ../Doc/library/test.rst:1762 msgid "" "The recorder object also has a :meth:`reset` method, which clears the " "warnings list." @@ -2396,11 +2459,11 @@ msgstr "" "El objeto grabador (*recorder object*) también tiene un método :meth:" "`reset`, que borra la lista de advertencias." -#: ../Doc/library/test.rst:1690 +#: ../Doc/library/test.rst:1765 msgid "The context manager is designed to be used like this::" msgstr "El administrador de contexto está diseñado para usarse así:" -#: ../Doc/library/test.rst:1697 +#: ../Doc/library/test.rst:1772 msgid "" "In this case if either warning was not raised, or some other warning was " "raised, :func:`check_warnings` would raise an error." @@ -2408,7 +2471,7 @@ msgstr "" "En este caso, si no se generó ninguna advertencia, o si surgió alguna otra " "advertencia, :func:`check_warnings` lanzaría un error." -#: ../Doc/library/test.rst:1700 +#: ../Doc/library/test.rst:1775 msgid "" "When a test needs to look more deeply into the warnings, rather than just " "checking whether or not they occurred, code like this can be used::" @@ -2417,7 +2480,7 @@ msgstr "" "lugar de simplemente verificar si ocurrieron o no, se puede usar un código " "como este::" -#: ../Doc/library/test.rst:1714 +#: ../Doc/library/test.rst:1789 msgid "" "Here all warnings will be caught, and the test code tests the captured " "warnings directly." @@ -2425,11 +2488,11 @@ msgstr "" "Aquí se capturarán todas las advertencias, y el código de prueba prueba las " "advertencias capturadas directamente." -#: ../Doc/library/test.rst:1717 +#: ../Doc/library/test.rst:1792 msgid "New optional arguments *filters* and *quiet*." msgstr "Nuevos argumentos opcionales *filters* y *quiet*." -#: ../Doc/library/test.rst:1723 +#: ../Doc/library/test.rst:1798 msgid "" "Class used to record warnings for unit tests. See documentation of :func:" "`check_warnings` above for more details." @@ -2437,3 +2500,6 @@ msgstr "" "La clase utilizada para registrar advertencias para pruebas unitarias. " "Consulte la documentación de :func:`check_warnings` arriba para obtener más " "detalles." + +#~ msgid "Run *test* and return the result." +#~ msgstr "Retorna *test* y retorna el resultado.." diff --git a/library/textwrap.po b/library/textwrap.po index dc5f80b108..77833bd987 100644 --- a/library/textwrap.po +++ b/library/textwrap.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-16 21:42+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-04 22:04+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" -"Generated-By: Babel 2.9.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/textwrap.rst:2 msgid ":mod:`textwrap` --- Text wrapping and filling" @@ -43,7 +43,7 @@ msgstr "" "conveniencia deberían ser lo suficientemente buenas; de lo contrario, " "deberías usar una instancia de :class:`TextWrapper` para mayor eficiencia." -#: ../Doc/library/textwrap.rst:26 +#: ../Doc/library/textwrap.rst:27 msgid "" "Wraps the single paragraph in *text* (a string) so every line is at most " "*width* characters long. Returns a list of output lines, without final " @@ -53,7 +53,7 @@ msgstr "" "tenga como máximo *width* de caracteres de largo. Retorna una lista de " "líneas de salida, sin las nuevas líneas finales." -#: ../Doc/library/textwrap.rst:30 +#: ../Doc/library/textwrap.rst:31 msgid "" "Optional keyword arguments correspond to the instance attributes of :class:" "`TextWrapper`, documented below." @@ -61,7 +61,7 @@ msgstr "" "Los argumentos de palabras clave opcionales corresponden a los atributos de " "instancia de :class:`TextWrapper`, que se documentan a continuación." -#: ../Doc/library/textwrap.rst:33 +#: ../Doc/library/textwrap.rst:34 msgid "" "See the :meth:`TextWrapper.wrap` method for additional details on how :func:" "`wrap` behaves." @@ -69,7 +69,7 @@ msgstr "" "Ver el método :meth:`TextWrapper.wrap` para más detalles sobre el " "comportamiento de :func:`wrap`." -#: ../Doc/library/textwrap.rst:44 +#: ../Doc/library/textwrap.rst:45 msgid "" "Wraps the single paragraph in *text*, and returns a single string containing " "the wrapped paragraph. :func:`fill` is shorthand for ::" @@ -77,7 +77,7 @@ msgstr "" "Envuelve el único párrafo en *text*, y retorna una sola cadena que contiene " "el párrafo envuelto. :func:`fill` es la abreviatura de ::" -#: ../Doc/library/textwrap.rst:49 +#: ../Doc/library/textwrap.rst:50 msgid "" "In particular, :func:`fill` accepts exactly the same keyword arguments as :" "func:`wrap`." @@ -85,16 +85,17 @@ msgstr "" "En particular, :func:`fill` acepta exactamente los mismos argumentos de " "palabras clave que :func:`wrap`." -#: ../Doc/library/textwrap.rst:57 +#: ../Doc/library/textwrap.rst:58 msgid "Collapse and truncate the given *text* to fit in the given *width*." msgstr "Colapsa y trunca el *text* dado para que encaje en el *width* dado." -#: ../Doc/library/textwrap.rst:59 +#: ../Doc/library/textwrap.rst:60 +#, fuzzy msgid "" "First the whitespace in *text* is collapsed (all whitespace is replaced by " "single spaces). If the result fits in the *width*, it is returned. " "Otherwise, enough words are dropped from the end so that the remaining words " -"plus the :attr:`placeholder` fit within :attr:`width`::" +"plus the *placeholder* fit within *width*::" msgstr "" "Primero el espacio blanco en *text* se colapsa (todos los espacios blancos " "son reemplazados por espacios sencillos). Si el resultado cabe en el " @@ -102,7 +103,7 @@ msgstr "" "final para que las palabras restantes más el :attr:`placeholder` encajen " "dentro de :attr:`width`::" -#: ../Doc/library/textwrap.rst:71 +#: ../Doc/library/textwrap.rst:72 msgid "" "Optional keyword arguments correspond to the instance attributes of :class:" "`TextWrapper`, documented below. Note that the whitespace is collapsed " @@ -117,11 +118,11 @@ msgstr "" "attr:`.tabsize`, :attr:`.expand_tabs`, :attr:`.drop_whitespace`, y :attr:`." "replace_whitespace` no tendrá ningún efecto." -#: ../Doc/library/textwrap.rst:81 +#: ../Doc/library/textwrap.rst:82 msgid "Remove any common leading whitespace from every line in *text*." msgstr "Elimina cualquier espacio en blanco común de cada línea de *text*." -#: ../Doc/library/textwrap.rst:83 +#: ../Doc/library/textwrap.rst:84 msgid "" "This can be used to make triple-quoted strings line up with the left edge of " "the display, while still presenting them in the source code in indented form." @@ -130,7 +131,7 @@ msgstr "" "alineen con el borde izquierdo de la pantalla, mientras que se siguen " "presentando en el código fuente en forma indentada." -#: ../Doc/library/textwrap.rst:86 +#: ../Doc/library/textwrap.rst:87 msgid "" "Note that tabs and spaces are both treated as whitespace, but they are not " "equal: the lines ``\" hello\"`` and ``\"\\thello\"`` are considered to have " @@ -140,7 +141,7 @@ msgstr "" "pero no son iguales: las líneas ``\" hello\"`` y ``\"\\thello\"`` se " "consideran que no tienen un espacio en blanco común." -#: ../Doc/library/textwrap.rst:90 +#: ../Doc/library/textwrap.rst:91 msgid "" "Lines containing only whitespace are ignored in the input and normalized to " "a single newline character in the output." @@ -148,19 +149,19 @@ msgstr "" "Las líneas que sólo contienen espacios en blanco se ignoran en la entrada y " "se normalizan a un solo carácter de nueva línea en la salida." -#: ../Doc/library/textwrap.rst:93 ../Doc/library/textwrap.rst:114 +#: ../Doc/library/textwrap.rst:94 ../Doc/library/textwrap.rst:115 msgid "For example::" msgstr "Por ejemplo:" -#: ../Doc/library/textwrap.rst:107 +#: ../Doc/library/textwrap.rst:108 msgid "Add *prefix* to the beginning of selected lines in *text*." msgstr "Añade *prefix* al principio de las líneas seleccionadas en *text*." -#: ../Doc/library/textwrap.rst:109 +#: ../Doc/library/textwrap.rst:110 msgid "Lines are separated by calling ``text.splitlines(True)``." msgstr "Las líneas se separan llamando a ``text.splitlines(True)``." -#: ../Doc/library/textwrap.rst:111 +#: ../Doc/library/textwrap.rst:112 msgid "" "By default, *prefix* is added to all lines that do not consist solely of " "whitespace (including any line endings)." @@ -168,7 +169,7 @@ msgstr "" "Por defecto, se añade *prefix* a todas las líneas que no consisten " "únicamente en espacios en blanco (incluyendo cualquier terminación de línea)." -#: ../Doc/library/textwrap.rst:120 +#: ../Doc/library/textwrap.rst:121 msgid "" "The optional *predicate* argument can be used to control which lines are " "indented. For example, it is easy to add *prefix* to even empty and " @@ -178,7 +179,7 @@ msgstr "" "están indentadas. Por ejemplo, es fácil añadir *prefix* incluso a las líneas " "vacías y de espacio en blanco::" -#: ../Doc/library/textwrap.rst:133 +#: ../Doc/library/textwrap.rst:134 msgid "" ":func:`wrap`, :func:`fill` and :func:`shorten` work by creating a :class:" "`TextWrapper` instance and calling a single method on it. That instance is " @@ -192,7 +193,7 @@ msgstr "" "muchas cadenas de texto usando :func:`wrap` y/o :func:`fill`, puede ser más " "eficiente crear su propio objeto :class:`TextWrapper`." -#: ../Doc/library/textwrap.rst:139 +#: ../Doc/library/textwrap.rst:140 msgid "" "Text is preferably wrapped on whitespaces and right after the hyphens in " "hyphenated words; only then will long words be broken if necessary, unless :" @@ -203,7 +204,7 @@ msgstr "" "largas si es necesario, a menos que :attr:`TextWrapper.break_long_words` sea " "falso." -#: ../Doc/library/textwrap.rst:145 +#: ../Doc/library/textwrap.rst:146 msgid "" "The :class:`TextWrapper` constructor accepts a number of optional keyword " "arguments. Each keyword argument corresponds to an instance attribute, so " @@ -213,11 +214,11 @@ msgstr "" "palabras clave opcionales. Cada argumento de palabra clave corresponde a un " "atributo de la instancia, por ejemplo ::" -#: ../Doc/library/textwrap.rst:151 +#: ../Doc/library/textwrap.rst:152 msgid "is the same as ::" msgstr "es lo mismo que ::" -#: ../Doc/library/textwrap.rst:156 +#: ../Doc/library/textwrap.rst:157 msgid "" "You can re-use the same :class:`TextWrapper` object many times, and you can " "change any of its options through direct assignment to instance attributes " @@ -227,7 +228,7 @@ msgstr "" "puedes cambiar cualquiera de sus opciones a través de la asignación directa " "de atributos de instancia entre usos." -#: ../Doc/library/textwrap.rst:160 +#: ../Doc/library/textwrap.rst:161 msgid "" "The :class:`TextWrapper` instance attributes (and keyword arguments to the " "constructor) are as follows:" @@ -235,7 +236,7 @@ msgstr "" "Los atributos de la instancia :class:`TextWrapper` (y los argumentos de las " "palabras clave para el constructor) son los siguientes:" -#: ../Doc/library/textwrap.rst:166 +#: ../Doc/library/textwrap.rst:167 msgid "" "(default: ``70``) The maximum length of wrapped lines. As long as there are " "no individual words in the input text longer than :attr:`width`, :class:" @@ -247,16 +248,17 @@ msgstr "" "`width`, :class:`TextWrapper` garantiza que ninguna línea de salida será más " "larga que los caracteres :attr:`width`." -#: ../Doc/library/textwrap.rst:174 +#: ../Doc/library/textwrap.rst:175 +#, fuzzy msgid "" "(default: ``True``) If true, then all tab characters in *text* will be " -"expanded to spaces using the :meth:`expandtabs` method of *text*." +"expanded to spaces using the :meth:`~str.expandtabs` method of *text*." msgstr "" "(default: ``True``) Si es verdadero, entonces todos los caracteres de " "tabulación en *text* serán expandidos a espacios usando el método :meth:" "`expandtabs` de *text*." -#: ../Doc/library/textwrap.rst:180 +#: ../Doc/library/textwrap.rst:181 msgid "" "(default: ``8``) If :attr:`expand_tabs` is true, then all tab characters in " "*text* will be expanded to zero or more spaces, depending on the current " @@ -266,7 +268,7 @@ msgstr "" "caracteres de tabulación en *text* se expandirán a cero o más espacios, " "dependiendo de la columna actual y el tamaño de tabulación dado." -#: ../Doc/library/textwrap.rst:189 +#: ../Doc/library/textwrap.rst:190 msgid "" "(default: ``True``) If true, after tab expansion but before wrapping, the :" "meth:`wrap` method will replace each whitespace character with a single " @@ -279,7 +281,7 @@ msgstr "" "en blanco reemplazados son los siguientes: tab, nueva línea, tab vertical, " "*formfeed* y *carriage return* (``'\\t\\n\\v\\f\\r'``)." -#: ../Doc/library/textwrap.rst:197 +#: ../Doc/library/textwrap.rst:198 msgid "" "If :attr:`expand_tabs` is false and :attr:`replace_whitespace` is true, each " "tab character will be replaced by a single space, which is *not* the same as " @@ -289,7 +291,7 @@ msgstr "" "cada carácter del tabulador será reemplazado por un solo espacio, que *no* " "es lo mismo que la expansión del tabulador." -#: ../Doc/library/textwrap.rst:203 +#: ../Doc/library/textwrap.rst:204 msgid "" "If :attr:`replace_whitespace` is false, newlines may appear in the middle of " "a line and cause strange output. For this reason, text should be split into " @@ -301,7 +303,7 @@ msgstr "" "debe ser dividido en párrafos (usando :meth:`str.splitlines` o similar) que " "se envuelven por separado." -#: ../Doc/library/textwrap.rst:211 +#: ../Doc/library/textwrap.rst:212 msgid "" "(default: ``True``) If true, whitespace at the beginning and ending of every " "line (after wrapping but before indenting) is dropped. Whitespace at the " @@ -315,7 +317,7 @@ msgstr "" "elimina si lo sigue un espacio en blanco. Si el espacio blanco que se deja " "caer ocupa una línea entera, se deja caer toda la línea." -#: ../Doc/library/textwrap.rst:220 +#: ../Doc/library/textwrap.rst:221 msgid "" "(default: ``''``) String that will be prepended to the first line of wrapped " "output. Counts towards the length of the first line. The empty string is " @@ -325,7 +327,7 @@ msgstr "" "envuelta. Cuenta hacia la longitud de la primera línea. La cadena vacía no " "está indentada." -#: ../Doc/library/textwrap.rst:227 +#: ../Doc/library/textwrap.rst:228 msgid "" "(default: ``''``) String that will be prepended to all lines of wrapped " "output except the first. Counts towards the length of each line except the " @@ -335,7 +337,7 @@ msgstr "" "envueltas excepto la primera. Cuenta hacia la longitud de cada línea " "excepto la primera." -#: ../Doc/library/textwrap.rst:234 +#: ../Doc/library/textwrap.rst:235 msgid "" "(default: ``False``) If true, :class:`TextWrapper` attempts to detect " "sentence endings and ensure that sentences are always separated by exactly " @@ -355,15 +357,15 @@ msgstr "" "seguida de una de ``'\"'`` o ``\"'\"``, seguida de un espacio. Un problema " "de este algoritmo es que no puede detectar la diferencia entre \"Dr.\" en ::" -#: ../Doc/library/textwrap.rst:245 +#: ../Doc/library/textwrap.rst:246 msgid "and \"Spot.\" in ::" msgstr "y \"Spot.\" en::" -#: ../Doc/library/textwrap.rst:249 +#: ../Doc/library/textwrap.rst:250 msgid ":attr:`fix_sentence_endings` is false by default." msgstr ":attr:`fix_sentence_endings` es falso por defecto." -#: ../Doc/library/textwrap.rst:251 +#: ../Doc/library/textwrap.rst:252 msgid "" "Since the sentence detection algorithm relies on ``string.lowercase`` for " "the definition of \"lowercase letter\", and a convention of using two spaces " @@ -375,7 +377,7 @@ msgstr "" "de utilizar dos espacios después de un punto para separar las oraciones en " "la misma línea, es específico para los textos en inglés." -#: ../Doc/library/textwrap.rst:259 +#: ../Doc/library/textwrap.rst:260 msgid "" "(default: ``True``) If true, then words longer than :attr:`width` will be " "broken in order to ensure that no lines are longer than :attr:`width`. If " @@ -390,7 +392,7 @@ msgstr "" "pondrán en una línea por sí mismas, para minimizar la cantidad en que se " "excede :attr:`width`)." -#: ../Doc/library/textwrap.rst:268 +#: ../Doc/library/textwrap.rst:269 msgid "" "(default: ``True``) If true, wrapping will occur preferably on whitespaces " "and right after hyphens in compound words, as it is customary in English. If " @@ -407,7 +409,7 @@ msgstr "" "desea palabras verdaderamente insecables. El comportamiento predeterminado " "en versiones anteriores era permitir siempre romper palabras con guiones." -#: ../Doc/library/textwrap.rst:278 +#: ../Doc/library/textwrap.rst:279 msgid "" "(default: ``None``) If not ``None``, then the output will contain at most " "*max_lines* lines, with *placeholder* appearing at the end of the output." @@ -415,7 +417,7 @@ msgstr "" "(default: ``None``) Si es ``None``, entonces la salida contendrá como máximo " "*max_lines*, con un *placeholder* que aparecerá al final de la salida." -#: ../Doc/library/textwrap.rst:288 +#: ../Doc/library/textwrap.rst:289 msgid "" "(default: ``' [...]'``) String that will appear at the end of the output " "text if it has been truncated." @@ -423,7 +425,7 @@ msgstr "" "(default: ``' [...]'``) Cadena que aparecerá al final del texto de salida si " "ha sido truncado." -#: ../Doc/library/textwrap.rst:294 +#: ../Doc/library/textwrap.rst:295 msgid "" ":class:`TextWrapper` also provides some public methods, analogous to the " "module-level convenience functions:" @@ -431,7 +433,7 @@ msgstr "" ":class:`TextWrapper` también proporciona algunos métodos públicos, análogos " "a las funciones de conveniencia a nivel de módulo:" -#: ../Doc/library/textwrap.rst:299 +#: ../Doc/library/textwrap.rst:300 msgid "" "Wraps the single paragraph in *text* (a string) so every line is at most :" "attr:`width` characters long. All wrapping options are taken from instance " @@ -445,10 +447,18 @@ msgstr "" "Retorna una lista de líneas de salida, sin las nuevas líneas finales. Si la " "salida envuelta no tiene contenido, la lista retornada estará vacía." -#: ../Doc/library/textwrap.rst:308 +#: ../Doc/library/textwrap.rst:309 msgid "" "Wraps the single paragraph in *text*, and returns a single string containing " "the wrapped paragraph." msgstr "" "Envuelve el único párrafo en *text*, y retorna una única cadena que contiene " "el párrafo envuelto." + +#: ../Doc/library/textwrap.rst:285 +msgid "..." +msgstr "" + +#: ../Doc/library/textwrap.rst:285 +msgid "placeholder" +msgstr "" diff --git a/library/threading.po b/library/threading.po index afa6e0f569..cf8d4bfc5d 100644 --- a/library/threading.po +++ b/library/threading.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-26 23:05+0100\n" "Last-Translator: Claudia Millan \n" -"Language-Team: python-doc-es\n" "Language: es_419\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/threading.rst:2 msgid ":mod:`threading` --- Thread-based parallelism" @@ -102,12 +101,13 @@ msgstr "" "embargo, el subproceso sigue siendo un modelo apropiado si desea ejecutar " "varias tareas vinculadas a E/S simultáneamente." +#: ../Doc/includes/wasm-notavail.rst:3 #, fuzzy msgid ":ref:`Availability `: not Emscripten, not WASI." msgstr "" ":ref:`Disponibilidad `: Windows, sistemas con hilos POSIX." -#: ../Doc/library/cpython/Doc/includes/wasm-notavail.rst:5 +#: ../Doc/includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly platforms " "``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for " @@ -259,10 +259,11 @@ msgstr "" "través de todo el sistema (hasta que el hilo termine, luego de lo cual el " "valor puede ser reciclado por el SO)." -#: ../Doc/library/threading.rst:131 +#: ../Doc/library/threading.rst:130 ../Doc/library/threading.rst:465 +#, fuzzy msgid "" ":ref:`Availability `: Windows, FreeBSD, Linux, macOS, OpenBSD, " -"NetBSD, AIX." +"NetBSD, AIX, DragonFlyBSD." msgstr "" ":ref:`Disponibilidad `: Windows, FreeBSD, Linux, macOS, " "OpenBSD, NetBSD, AIX." @@ -300,12 +301,32 @@ msgstr "" "módulo :mod:`threading` . La *func* se pasará a :func:`sys.settrace` por " "cada hilo, antes de que su método :meth:`~Thread.run` sea llamado." -#: ../Doc/library/threading.rst:168 +#: ../Doc/library/threading.rst:163 +#, fuzzy +msgid "" +"Set a trace function for all threads started from the :mod:`threading` " +"module and all Python threads that are currently executing." +msgstr "" +"Establece una función de traza para todos los hilos iniciados desde el " +"módulo :mod:`threading` . La *func* se pasará a :func:`sys.settrace` por " +"cada hilo, antes de que su método :meth:`~Thread.run` sea llamado." + +#: ../Doc/library/threading.rst:166 +#, fuzzy +msgid "" +"The *func* will be passed to :func:`sys.settrace` for each thread, before " +"its :meth:`~Thread.run` method is called." +msgstr "" +"Establece una función de traza para todos los hilos iniciados desde el " +"módulo :mod:`threading` . La *func* se pasará a :func:`sys.settrace` por " +"cada hilo, antes de que su método :meth:`~Thread.run` sea llamado." + +#: ../Doc/library/threading.rst:177 msgid "Get the trace function as set by :func:`settrace`." msgstr "" "Obtiene la función de rastreo según lo establecido por :func:`settrace`." -#: ../Doc/library/threading.rst:177 +#: ../Doc/library/threading.rst:186 msgid "" "Set a profile function for all threads started from the :mod:`threading` " "module. The *func* will be passed to :func:`sys.setprofile` for each " @@ -315,13 +336,33 @@ msgstr "" "módulo :mod:`threading`. La *func* se pasará a :func:`sys.setprofile` por " "cada hilo, antes de que se llame a su método :meth:`~Thread.run`." -#: ../Doc/library/threading.rst:186 +#: ../Doc/library/threading.rst:192 +#, fuzzy +msgid "" +"Set a profile function for all threads started from the :mod:`threading` " +"module and all Python threads that are currently executing." +msgstr "" +"Establece una función de perfil para todos los hilos iniciados desde el " +"módulo :mod:`threading`. La *func* se pasará a :func:`sys.setprofile` por " +"cada hilo, antes de que se llame a su método :meth:`~Thread.run`." + +#: ../Doc/library/threading.rst:195 +#, fuzzy +msgid "" +"The *func* will be passed to :func:`sys.setprofile` for each thread, before " +"its :meth:`~Thread.run` method is called." +msgstr "" +"Establece una función de perfil para todos los hilos iniciados desde el " +"módulo :mod:`threading`. La *func* se pasará a :func:`sys.setprofile` por " +"cada hilo, antes de que se llame a su método :meth:`~Thread.run`." + +#: ../Doc/library/threading.rst:204 msgid "Get the profiler function as set by :func:`setprofile`." msgstr "" "Obtiene la función de generador de perfiles establecida por :func:" "`setprofile`." -#: ../Doc/library/threading.rst:193 +#: ../Doc/library/threading.rst:211 msgid "" "Return the thread stack size used when creating new threads. The optional " "*size* argument specifies the stack size to be used for subsequently created " @@ -356,20 +397,21 @@ msgstr "" "múltiplos de 4096 para el tamaño de pila en ausencia de información más " "específica)" +#: ../Doc/library/threading.rst:226 #, fuzzy msgid ":ref:`Availability `: Windows, pthreads." msgstr "" ":ref:`Disponibilidad `: Windows, sistemas con hilos POSIX." -#: ../Doc/library/threading.rst:210 +#: ../Doc/library/threading.rst:228 msgid "Unix platforms with POSIX threads support." msgstr "Plataformas Unix con soporte para subprocesos POSIX." -#: ../Doc/library/threading.rst:213 +#: ../Doc/library/threading.rst:231 msgid "This module also defines the following constant:" msgstr "Este módulo también define la siguiente constante:" -#: ../Doc/library/threading.rst:217 +#: ../Doc/library/threading.rst:235 msgid "" "The maximum value allowed for the *timeout* parameter of blocking functions " "(:meth:`Lock.acquire`, :meth:`RLock.acquire`, :meth:`Condition.wait`, etc.). " @@ -381,7 +423,7 @@ msgstr "" "wait`, etc.). La especificación de un tiempo de espera mayor a este valor " "lanzará un :exc:`OverflowError`." -#: ../Doc/library/threading.rst:225 +#: ../Doc/library/threading.rst:243 msgid "" "This module defines a number of classes, which are detailed in the sections " "below." @@ -389,7 +431,7 @@ msgstr "" "Este módulo define un número de clases, las cuales son detalladas en las " "siguientes secciones." -#: ../Doc/library/threading.rst:228 +#: ../Doc/library/threading.rst:246 msgid "" "The design of this module is loosely based on Java's threading model. " "However, where Java makes locks and condition variables basic behavior of " @@ -409,15 +451,15 @@ msgstr "" "la clase *Thread* de Java, cuando son implementados, son mapeados a " "funciones a nivel de módulo." -#: ../Doc/library/threading.rst:236 +#: ../Doc/library/threading.rst:254 msgid "All of the methods described below are executed atomically." msgstr "Todos los métodos descritos abajo son ejecutados de manera atómica." -#: ../Doc/library/threading.rst:240 +#: ../Doc/library/threading.rst:258 msgid "Thread-Local Data" msgstr "Datos locales del hilo" -#: ../Doc/library/threading.rst:242 +#: ../Doc/library/threading.rst:260 msgid "" "Thread-local data is data whose values are thread specific. To manage " "thread-local data, just create an instance of :class:`local` (or a subclass) " @@ -428,34 +470,36 @@ msgstr "" "instancia de :class:`local` (o una subclase) y almacenar los atributos en " "ella::" -#: ../Doc/library/threading.rst:249 +#: ../Doc/library/threading.rst:267 msgid "The instance's values will be different for separate threads." msgstr "Los valores de instancia serán diferentes para hilos distintos." -#: ../Doc/library/threading.rst:254 +#: ../Doc/library/threading.rst:272 msgid "A class that represents thread-local data." msgstr "Una clase que representa datos locales de hilo." -#: ../Doc/library/threading.rst:256 +#: ../Doc/library/threading.rst:274 +#, fuzzy msgid "" "For more details and extensive examples, see the documentation string of " -"the :mod:`_threading_local` module." +"the :mod:`!_threading_local` module: :source:`Lib/_threading_local.py`." msgstr "" "Para más detalles y ejemplos extensivos, véase la documentación del módulo :" "mod:`_threading_local`." -#: ../Doc/library/threading.rst:263 +#: ../Doc/library/threading.rst:281 msgid "Thread Objects" msgstr "Objetos tipo hilo" -#: ../Doc/library/threading.rst:265 +#: ../Doc/library/threading.rst:283 +#, fuzzy msgid "" "The :class:`Thread` class represents an activity that is run in a separate " "thread of control. There are two ways to specify the activity: by passing a " "callable object to the constructor, or by overriding the :meth:`~Thread.run` " "method in a subclass. No other methods (except for the constructor) should " -"be overridden in a subclass. In other words, *only* override the :meth:" -"`~Thread.__init__` and :meth:`~Thread.run` methods of this class." +"be overridden in a subclass. In other words, *only* override the " +"``__init__()`` and :meth:`~Thread.run` methods of this class." msgstr "" "La clase :class:`Thread` representa una actividad que corre en un hilo de " "control separado. Hay dos manera de especificar la actividad: pasando un " @@ -465,7 +509,7 @@ msgstr "" "sobrescribir los métodos :meth:`~Thread.__init__` y :meth:`~Thread.run` de " "esta clase." -#: ../Doc/library/threading.rst:272 +#: ../Doc/library/threading.rst:290 msgid "" "Once a thread object is created, its activity must be started by calling the " "thread's :meth:`~Thread.start` method. This invokes the :meth:`~Thread.run` " @@ -475,7 +519,7 @@ msgstr "" "llamando al método :meth:`~Thread.start` del hilo. Ésto invoca el método :" "meth:`~Thread.run` en un hilo de control separado." -#: ../Doc/library/threading.rst:276 +#: ../Doc/library/threading.rst:294 msgid "" "Once the thread's activity is started, the thread is considered 'alive'. It " "stops being alive when its :meth:`~Thread.run` method terminates -- either " @@ -487,7 +531,7 @@ msgstr "" "ya sea normalmente, o por lanzar una excepción no manejada. El método :meth:" "`~Thread.is_alive` verifica si acaso el hilo está vivo." -#: ../Doc/library/threading.rst:281 +#: ../Doc/library/threading.rst:299 msgid "" "Other threads can call a thread's :meth:`~Thread.join` method. This blocks " "the calling thread until the thread whose :meth:`~Thread.join` method is " @@ -497,7 +541,7 @@ msgstr "" "bloquea el hilo llamador hasta que el hilo cuyo método :meth:`~Thread.join` " "ha sido llamado termine." -#: ../Doc/library/threading.rst:285 +#: ../Doc/library/threading.rst:303 msgid "" "A thread has a name. The name can be passed to the constructor, and read or " "changed through the :attr:`~Thread.name` attribute." @@ -505,7 +549,7 @@ msgstr "" "Un hilo tiene un nombre. El nombre puede ser pasado al constructor y leído o " "cambiado a través del atributo :attr:`~Thread.name`." -#: ../Doc/library/threading.rst:288 +#: ../Doc/library/threading.rst:306 msgid "" "If the :meth:`~Thread.run` method raises an exception, :func:`threading." "excepthook` is called to handle it. By default, :func:`threading.excepthook` " @@ -515,7 +559,7 @@ msgstr "" "`threading.excepthook` para gestionarla. Por defecto, :func:`threading." "excepthook` ignora silenciosamente a :exc:`SystemExit`." -#: ../Doc/library/threading.rst:292 +#: ../Doc/library/threading.rst:310 msgid "" "A thread can be flagged as a \"daemon thread\". The significance of this " "flag is that the entire Python program exits when only daemon threads are " @@ -529,7 +573,7 @@ msgstr "" "marca puede ser establecida a través de la propiedad :attr:`~Thread.daemon` " "o del argumento *daemon* en el constructor." -#: ../Doc/library/threading.rst:299 +#: ../Doc/library/threading.rst:317 msgid "" "Daemon threads are abruptly stopped at shutdown. Their resources (such as " "open files, database transactions, etc.) may not be released properly. If " @@ -542,7 +586,7 @@ msgstr "" "detengan con gracia, háganse no-demoníacos y úsese un mecanismo de " "señalización adecuado tal como un :class:`Event`." -#: ../Doc/library/threading.rst:304 +#: ../Doc/library/threading.rst:322 msgid "" "There is a \"main thread\" object; this corresponds to the initial thread of " "control in the Python program. It is not a daemon thread." @@ -550,7 +594,7 @@ msgstr "" "Existe un objeto \"hilo principal\"; éste corresponde al hilo de control " "inicial del programa de Python. No es un hilo demonio." -#: ../Doc/library/threading.rst:307 +#: ../Doc/library/threading.rst:325 #, fuzzy msgid "" "There is the possibility that \"dummy thread objects\" are created. These " @@ -569,7 +613,7 @@ msgstr "" "el método :meth:`~Thread.join`. Nunca son eliminados, ya que es imposible " "detectar la terminación de hilos extranjeros." -#: ../Doc/library/threading.rst:318 +#: ../Doc/library/threading.rst:336 msgid "" "This constructor should always be called with keyword arguments. Arguments " "are:" @@ -577,15 +621,16 @@ msgstr "" "Este constructor siempre debe ser llamado con argumentos de palabra clave. " "Los argumentos son:" -#: ../Doc/library/threading.rst:321 +#: ../Doc/library/threading.rst:339 +#, fuzzy msgid "" -"*group* should be ``None``; reserved for future extension when a :class:" -"`ThreadGroup` class is implemented." +"*group* should be ``None``; reserved for future extension when a :class:`!" +"ThreadGroup` class is implemented." msgstr "" "*group* debe ser `None`; reservado para una futura extensión cuando se " "implemente una clase :class:`ThreadGroup`." -#: ../Doc/library/threading.rst:324 +#: ../Doc/library/threading.rst:342 msgid "" "*target* is the callable object to be invoked by the :meth:`run` method. " "Defaults to ``None``, meaning nothing is called." @@ -593,7 +638,7 @@ msgstr "" "*target* es el objeto invocable a ser invocado por el método :meth:`run`. " "Por defecto es ``None``, lo que significa que nada es llamado." -#: ../Doc/library/threading.rst:327 +#: ../Doc/library/threading.rst:345 msgid "" "*name* is the thread name. By default, a unique name is constructed of the " "form \"Thread-*N*\" where *N* is a small decimal number, or \"Thread-*N* " @@ -605,7 +650,7 @@ msgstr "" "pequeño, o \"Hilo-*N* (target)\" donde \"target\" es ``target.__name__`` si " "se especifica el argumento *target*." -#: ../Doc/library/threading.rst:332 +#: ../Doc/library/threading.rst:350 #, fuzzy msgid "" "*args* is a list or tuple of arguments for the target invocation. Defaults " @@ -614,7 +659,7 @@ msgstr "" "*args* es la tupla de argumento para la invocación objetivo. Por defecto es " "``()``." -#: ../Doc/library/threading.rst:334 +#: ../Doc/library/threading.rst:352 msgid "" "*kwargs* is a dictionary of keyword arguments for the target invocation. " "Defaults to ``{}``." @@ -622,7 +667,7 @@ msgstr "" "*kwargs* es un diccionario de argumentos de palabra clave para la invocación " "objetivo. Por defecto es ``{}``." -#: ../Doc/library/threading.rst:337 +#: ../Doc/library/threading.rst:355 msgid "" "If not ``None``, *daemon* explicitly sets whether the thread is daemonic. If " "``None`` (the default), the daemonic property is inherited from the current " @@ -632,7 +677,7 @@ msgstr "" "demoníaco. Si es ``None`` (el valor por defecto), la propiedad demoníaca es " "heredada del hilo actual." -#: ../Doc/library/threading.rst:341 +#: ../Doc/library/threading.rst:359 msgid "" "If the subclass overrides the constructor, it must make sure to invoke the " "base class constructor (``Thread.__init__()``) before doing anything else to " @@ -642,19 +687,19 @@ msgstr "" "constructor de la clase base (``Thread.__init__()``) antes de hacer " "cualquier otra cosa al hilo." -#: ../Doc/library/threading.rst:345 +#: ../Doc/library/threading.rst:363 msgid "Use the *target* name if *name* argument is omitted." msgstr "Utilice el nombre *target* si se omite el argumento *name*." -#: ../Doc/library/threading.rst:348 +#: ../Doc/library/threading.rst:366 msgid "Added the *daemon* argument." msgstr "Se agregó el argumento *daemon*." -#: ../Doc/library/threading.rst:353 +#: ../Doc/library/threading.rst:371 msgid "Start the thread's activity." msgstr "Inicia la actividad del hilo." -#: ../Doc/library/threading.rst:355 +#: ../Doc/library/threading.rst:373 msgid "" "It must be called at most once per thread object. It arranges for the " "object's :meth:`~Thread.run` method to be invoked in a separate thread of " @@ -664,7 +709,7 @@ msgstr "" "método :meth:`~Thread.run` del objeto sea invocado en un hilo de control " "separado." -#: ../Doc/library/threading.rst:359 +#: ../Doc/library/threading.rst:377 msgid "" "This method will raise a :exc:`RuntimeError` if called more than once on the " "same thread object." @@ -672,11 +717,11 @@ msgstr "" "Este método lanzará un :exc:`RuntimeError` si se llama más de una vez en el " "mismo objeto hilo." -#: ../Doc/library/threading.rst:364 +#: ../Doc/library/threading.rst:382 msgid "Method representing the thread's activity." msgstr "Método que representa la actividad del hilo." -#: ../Doc/library/threading.rst:366 +#: ../Doc/library/threading.rst:384 msgid "" "You may override this method in a subclass. The standard :meth:`run` method " "invokes the callable object passed to the object's constructor as the " @@ -688,7 +733,7 @@ msgstr "" "argumento *target*, si lo hay, con argumentos posicionales y de palabra " "clave tomados de los argumentos *args* y *kwargs*, respectivamente." -#: ../Doc/library/threading.rst:371 +#: ../Doc/library/threading.rst:389 msgid "" "Using list or tuple as the *args* argument which passed to the :class:" "`Thread` could achieve the same effect." @@ -696,12 +741,12 @@ msgstr "" "Usar una lista o tupla como el argumento *args* que se pasa a :class:" "`Thread` podría lograr el mismo efecto." -#: ../Doc/library/threading.rst:374 +#: ../Doc/library/threading.rst:392 #, fuzzy msgid "Example::" msgstr "Por ejemplo:" -#: ../Doc/library/threading.rst:388 +#: ../Doc/library/threading.rst:406 msgid "" "Wait until the thread terminates. This blocks the calling thread until the " "thread whose :meth:`~Thread.join` method is called terminates -- either " @@ -713,7 +758,7 @@ msgstr "" "normalmente o a través de una excepción no gestionada -- o hasta que el " "tiempo de espera opcional caduque." -#: ../Doc/library/threading.rst:393 +#: ../Doc/library/threading.rst:411 msgid "" "When the *timeout* argument is present and not ``None``, it should be a " "floating point number specifying a timeout for the operation in seconds (or " @@ -729,7 +774,7 @@ msgstr "" "de :meth:`~Thread.join` para decidir si acaso caducó el tiempo de espera -- " "si el hilo todavía está vivo, la llamada a :meth:`~Thread.join` caducó." -#: ../Doc/library/threading.rst:400 +#: ../Doc/library/threading.rst:418 msgid "" "When the *timeout* argument is not present or ``None``, the operation will " "block until the thread terminates." @@ -737,12 +782,12 @@ msgstr "" "Cuando el argumento *timeout* no se presenta o es ``None``, la operación " "bloqueará hasta que el hilo termine." -#: ../Doc/library/threading.rst:403 +#: ../Doc/library/threading.rst:421 #, fuzzy msgid "A thread can be joined many times." msgstr "A un hilo se le puede aplicar :meth:`~Thread.join` muchas veces." -#: ../Doc/library/threading.rst:405 +#: ../Doc/library/threading.rst:423 msgid "" ":meth:`~Thread.join` raises a :exc:`RuntimeError` if an attempt is made to " "join the current thread as that would cause a deadlock. It is also an error " @@ -754,7 +799,7 @@ msgstr "" "meth:`~Thread.join` a un hilo antes de que haya sido iniciado y los intentos " "de hacerlo lanzaran la misma excepción." -#: ../Doc/library/threading.rst:412 +#: ../Doc/library/threading.rst:430 msgid "" "A string used for identification purposes only. It has no semantics. " "Multiple threads may be given the same name. The initial name is set by the " @@ -764,7 +809,7 @@ msgstr "" "Se puede dar el mismo nombre a múltiples hilos. El nombre inicial es " "establecido por el constructor." -#: ../Doc/library/threading.rst:419 +#: ../Doc/library/threading.rst:437 msgid "" "Deprecated getter/setter API for :attr:`~Thread.name`; use it directly as a " "property instead." @@ -772,7 +817,7 @@ msgstr "" "API getter/setter obsoleta para :attr:`~Thread.name`; utilícelo directamente " "como una propiedad en su lugar." -#: ../Doc/library/threading.rst:426 +#: ../Doc/library/threading.rst:444 msgid "" "The 'thread identifier' of this thread or ``None`` if the thread has not " "been started. This is a nonzero integer. See the :func:`get_ident` " @@ -786,7 +831,7 @@ msgstr "" "otro hilo es creado. El identificador está disponible incuso después de que " "el hilo ha abandonado." -#: ../Doc/library/threading.rst:434 +#: ../Doc/library/threading.rst:452 msgid "" "The Thread ID (``TID``) of this thread, as assigned by the OS (kernel). This " "is a non-negative integer, or ``None`` if the thread has not been started. " @@ -801,7 +846,7 @@ msgstr "" "particular en todo el sistema (hasta que el hilo termine, después de lo cual " "el sistema operativo puede reciclar el valor)." -#: ../Doc/library/threading.rst:443 +#: ../Doc/library/threading.rst:461 msgid "" "Similar to Process IDs, Thread IDs are only valid (guaranteed unique system-" "wide) from the time the thread is created until the thread has been " @@ -811,20 +856,11 @@ msgstr "" "como únicas a través de todo el sistema) desde el momento en que se crea el " "hilo hasta que el hilo es finalizado." -#: ../Doc/library/threading.rst:448 -#, fuzzy -msgid "" -":ref:`Availability `: Windows, FreeBSD, Linux, macOS, OpenBSD, " -"NetBSD, AIX, DragonFlyBSD." -msgstr "" -":ref:`Disponibilidad `: Windows, FreeBSD, Linux, macOS, " -"OpenBSD, NetBSD, AIX." - -#: ../Doc/library/threading.rst:453 +#: ../Doc/library/threading.rst:471 msgid "Return whether the thread is alive." msgstr "Retornar si acaso el hilo está vivo." -#: ../Doc/library/threading.rst:455 +#: ../Doc/library/threading.rst:473 msgid "" "This method returns ``True`` just before the :meth:`~Thread.run` method " "starts until just after the :meth:`~Thread.run` method terminates. The " @@ -835,7 +871,7 @@ msgstr "" "termine. La función :func:`.enumerate` del módulo retorna una lista de todos " "los hilos vivos." -#: ../Doc/library/threading.rst:461 +#: ../Doc/library/threading.rst:479 #, fuzzy msgid "" "A boolean value indicating whether this thread is a daemon thread (``True``) " @@ -852,14 +888,14 @@ msgstr "" "tanto todos los hilos creados en el hilo principal tienen por defecto un " "valor :attr:`~Thread.daemon` = ``False``." -#: ../Doc/library/threading.rst:468 +#: ../Doc/library/threading.rst:486 msgid "" "The entire Python program exits when no alive non-daemon threads are left." msgstr "" "El programa de Python en su totalidad finaliza cuando no queda ningún hilo " "no-demonio vivo." -#: ../Doc/library/threading.rst:473 +#: ../Doc/library/threading.rst:491 msgid "" "Deprecated getter/setter API for :attr:`~Thread.daemon`; use it directly as " "a property instead." @@ -867,11 +903,11 @@ msgstr "" "API getter/setter obsoleta para :attr:`~Thread.daemon`; utilícelo " "directamente como una propiedad en su lugar." -#: ../Doc/library/threading.rst:482 +#: ../Doc/library/threading.rst:500 msgid "Lock Objects" msgstr "Objetos tipo *lock*" -#: ../Doc/library/threading.rst:484 +#: ../Doc/library/threading.rst:502 msgid "" "A primitive lock is a synchronization primitive that is not owned by a " "particular thread when locked. In Python, it is currently the lowest level " @@ -883,7 +919,7 @@ msgstr "" "sincronización de más bajo nivel actualmente disponible, implementado " "directamente por el módulo de extensión :mod:`_thread`." -#: ../Doc/library/threading.rst:489 +#: ../Doc/library/threading.rst:507 msgid "" "A primitive lock is in one of two states, \"locked\" or \"unlocked\". It is " "created in the unlocked state. It has two basic methods, :meth:`~Lock." @@ -908,13 +944,13 @@ msgstr "" "inmediatamente. Si se realiza un intento de liberar un *lock* abierto, se " "lanzará un :exc:`RuntimeError`." -#: ../Doc/library/threading.rst:500 +#: ../Doc/library/threading.rst:518 msgid "Locks also support the :ref:`context management protocol `." msgstr "" "Los *locks* también soportan el :ref:`protocolo de gestión de contexto `." -#: ../Doc/library/threading.rst:502 +#: ../Doc/library/threading.rst:520 msgid "" "When more than one thread is blocked in :meth:`~Lock.acquire` waiting for " "the state to turn to unlocked, only one thread proceeds when a :meth:`~Lock." @@ -926,11 +962,11 @@ msgstr "" "`~Lock.release` restablezca el estado a abierto; cuál de los hilos en espera " "procederá no está definido, y puede variar a través de las implementaciones." -#: ../Doc/library/threading.rst:507 +#: ../Doc/library/threading.rst:525 msgid "All methods are executed atomically." msgstr "Todos los métodos se ejecutan de manera atómica." -#: ../Doc/library/threading.rst:512 +#: ../Doc/library/threading.rst:530 msgid "" "The class implementing primitive lock objects. Once a thread has acquired a " "lock, subsequent attempts to acquire it block, until it is released; any " @@ -940,7 +976,7 @@ msgstr "" "hilo ha adquirido un *lock*, intentos subsecuentes por adquirirlo " "bloquearán, hasta que sea liberado; cualquier hilo puede liberarlo." -#: ../Doc/library/threading.rst:516 +#: ../Doc/library/threading.rst:534 msgid "" "Note that ``Lock`` is actually a factory function which returns an instance " "of the most efficient version of the concrete Lock class that is supported " @@ -950,11 +986,11 @@ msgstr "" "la versión más eficiente de la clase *Lock* concreta soportada por la " "plataforma." -#: ../Doc/library/threading.rst:523 ../Doc/library/threading.rst:603 +#: ../Doc/library/threading.rst:541 ../Doc/library/threading.rst:621 msgid "Acquire a lock, blocking or non-blocking." msgstr "Adquirir un *lock*, bloqueante o no bloqueante." -#: ../Doc/library/threading.rst:525 +#: ../Doc/library/threading.rst:543 msgid "" "When invoked with the *blocking* argument set to ``True`` (the default), " "block until the lock is unlocked, then set it to locked and return ``True``." @@ -963,7 +999,7 @@ msgstr "" "valor por defecto), bloquea hasta que el *lock* se abra, luego lo establece " "como cerrado y retorna ``True``." -#: ../Doc/library/threading.rst:528 +#: ../Doc/library/threading.rst:546 msgid "" "When invoked with the *blocking* argument set to ``False``, do not block. If " "a call with *blocking* set to ``True`` would block, return ``False`` " @@ -973,7 +1009,7 @@ msgstr "" "Si una llamada con *blocking* establecido como ``True`` bloqueara, retorna " "``Falso`` inmediatamente; de otro modo, cierra el *lock* y retorna ``True``." -#: ../Doc/library/threading.rst:532 +#: ../Doc/library/threading.rst:550 #, fuzzy msgid "" "When invoked with the floating-point *timeout* argument set to a positive " @@ -988,7 +1024,7 @@ msgstr "" "*timeout* de \"-1\" especifica una espera ilimitada. No está admitido " "especificar un *timeout* cuando *blocking* es falso." -#: ../Doc/library/threading.rst:538 +#: ../Doc/library/threading.rst:556 msgid "" "The return value is ``True`` if the lock is acquired successfully, ``False`` " "if not (for example if the *timeout* expired)." @@ -996,12 +1032,12 @@ msgstr "" "El valor de retorno es ``True`` si el *lock* es adquirido con éxito, " "``Falso`` si no (por ejemplo si *timeout* expiró)." -#: ../Doc/library/threading.rst:541 ../Doc/library/threading.rst:625 -#: ../Doc/library/threading.rst:872 +#: ../Doc/library/threading.rst:559 ../Doc/library/threading.rst:643 +#: ../Doc/library/threading.rst:890 msgid "The *timeout* parameter is new." msgstr "El parámetro *timeout* es nuevo." -#: ../Doc/library/threading.rst:544 +#: ../Doc/library/threading.rst:562 msgid "" "Lock acquisition can now be interrupted by signals on POSIX if the " "underlying threading implementation supports it." @@ -1009,7 +1045,7 @@ msgstr "" "La adquisición de un *lock* ahora puede ser interrumpida por señales en " "POSIX si la implementación de hilado subyacente lo soporta." -#: ../Doc/library/threading.rst:551 +#: ../Doc/library/threading.rst:569 msgid "" "Release a lock. This can be called from any thread, not only the thread " "which has acquired the lock." @@ -1017,7 +1053,7 @@ msgstr "" "Libera un *lock*. Puede ser llamado desde cualquier hilo, no solo el hilo " "que ha adquirido el *lock*." -#: ../Doc/library/threading.rst:554 +#: ../Doc/library/threading.rst:572 msgid "" "When the lock is locked, reset it to unlocked, and return. If any other " "threads are blocked waiting for the lock to become unlocked, allow exactly " @@ -1027,25 +1063,25 @@ msgstr "" "cualquier otro hilo está bloqueado esperando que el *lock* se abra, permite " "que exactamente uno de ellos proceda." -#: ../Doc/library/threading.rst:558 +#: ../Doc/library/threading.rst:576 msgid "When invoked on an unlocked lock, a :exc:`RuntimeError` is raised." msgstr "" "Cuando se invoca en un *lock* abierto, se lanza un :exc:`RuntimeError`." -#: ../Doc/library/threading.rst:560 ../Doc/library/threading.rst:641 +#: ../Doc/library/threading.rst:578 ../Doc/library/threading.rst:659 msgid "There is no return value." msgstr "No hay valor de retorno." -#: ../Doc/library/threading.rst:564 +#: ../Doc/library/threading.rst:582 #, fuzzy msgid "Return ``True`` if the lock is acquired." msgstr "Retorna *true* si el *lock* ha sido adquirido." -#: ../Doc/library/threading.rst:571 +#: ../Doc/library/threading.rst:589 msgid "RLock Objects" msgstr "Objetos *Rlock*" -#: ../Doc/library/threading.rst:573 +#: ../Doc/library/threading.rst:591 msgid "" "A reentrant lock is a synchronization primitive that may be acquired " "multiple times by the same thread. Internally, it uses the concepts of " @@ -1060,7 +1096,7 @@ msgstr "" "cerrado, algún hilo es dueño del *lock*; si está en estado abierto, ningún " "hilo es dueño." -#: ../Doc/library/threading.rst:579 +#: ../Doc/library/threading.rst:597 msgid "" "To lock the lock, a thread calls its :meth:`~RLock.acquire` method; this " "returns once the thread owns the lock. To unlock the lock, a thread calls " @@ -1078,7 +1114,7 @@ msgstr "" "restablece el *lock* a abierto y permite que otro hilo bloqueado en :meth:" "`~Lock.acquire` proceda." -#: ../Doc/library/threading.rst:586 +#: ../Doc/library/threading.rst:604 msgid "" "Reentrant locks also support the :ref:`context management protocol `." @@ -1086,7 +1122,7 @@ msgstr "" "Los *locks* reentrantes también soportan el :ref:`protocolo de manejo de " "contextos `." -#: ../Doc/library/threading.rst:591 +#: ../Doc/library/threading.rst:609 msgid "" "This class implements reentrant lock objects. A reentrant lock must be " "released by the thread that acquired it. Once a thread has acquired a " @@ -1098,7 +1134,7 @@ msgstr "" "adquirido un *lock* reentrante, el mismo hilo puede adquirirlo otra vez sin " "bloquearse; el hilo debe liberarlo una vez por vez que lo adquiere." -#: ../Doc/library/threading.rst:596 +#: ../Doc/library/threading.rst:614 msgid "" "Note that ``RLock`` is actually a factory function which returns an instance " "of the most efficient version of the concrete RLock class that is supported " @@ -1108,7 +1144,7 @@ msgstr "" "instancia de la versión más eficiente de la clase RLock concreta que sea " "soportada por la plataforma." -#: ../Doc/library/threading.rst:605 +#: ../Doc/library/threading.rst:623 msgid "" "When invoked without arguments: if this thread already owns the lock, " "increment the recursion level by one, and return immediately. Otherwise, if " @@ -1126,7 +1162,7 @@ msgstr "" "bloqueado esperando que sea abra el *lock*, solo uno a la vez podrá " "apoderarse del *lock*. No hay valor de retorno en este caso." -#: ../Doc/library/threading.rst:613 +#: ../Doc/library/threading.rst:631 #, fuzzy msgid "" "When invoked with the *blocking* argument set to ``True``, do the same thing " @@ -1135,7 +1171,7 @@ msgstr "" "Cuando se invoca con el argumento *blocking* fijado en *true*, hace lo mismo " "que cuando se llama sin argumentos y retorna ``True``." -#: ../Doc/library/threading.rst:616 +#: ../Doc/library/threading.rst:634 #, fuzzy msgid "" "When invoked with the *blocking* argument set to ``False``, do not block. " @@ -1147,7 +1183,7 @@ msgstr "" "una llamada sin argumento bloquease, retorna ``False`` inmediatamente; de " "otro modo, hace lo mismo que al llamarse sin argumentos, y retorna ``True``." -#: ../Doc/library/threading.rst:620 +#: ../Doc/library/threading.rst:638 #, fuzzy msgid "" "When invoked with the floating-point *timeout* argument set to a positive " @@ -1161,7 +1197,7 @@ msgstr "" "el *lock* ha sido adquirido, falso si el tiempo de espera *timeout* ha " "caducado." -#: ../Doc/library/threading.rst:631 +#: ../Doc/library/threading.rst:649 msgid "" "Release a lock, decrementing the recursion level. If after the decrement it " "is zero, reset the lock to unlocked (not owned by any thread), and if any " @@ -1176,7 +1212,7 @@ msgstr "" "disminución el nivel de recursividad todavía no es cero, el *lock* permanece " "cerrado y perteneciente al hilo llamador." -#: ../Doc/library/threading.rst:637 +#: ../Doc/library/threading.rst:655 msgid "" "Only call this method when the calling thread owns the lock. A :exc:" "`RuntimeError` is raised if this method is called when the lock is unlocked." @@ -1185,11 +1221,11 @@ msgstr "" "lanza un :exc:`RuntimeError` si se llama este método cuando el *lock* esta " "abierto." -#: ../Doc/library/threading.rst:647 +#: ../Doc/library/threading.rst:665 msgid "Condition Objects" msgstr "Objetos condicionales" -#: ../Doc/library/threading.rst:649 +#: ../Doc/library/threading.rst:667 msgid "" "A condition variable is always associated with some kind of lock; this can " "be passed in or one will be created by default. Passing one in is useful " @@ -1201,7 +1237,7 @@ msgstr "" "varias variables de condición deben compartir el mismo *lock*. El *lock* es " "parte del objeto condicional: no es necesario rastrearlo por separado." -#: ../Doc/library/threading.rst:654 +#: ../Doc/library/threading.rst:672 msgid "" "A condition variable obeys the :ref:`context management protocol `: using the ``with`` statement acquires the associated lock for the " @@ -1215,7 +1251,7 @@ msgstr "" "acquire` y :meth:`~Condition.release` también llaman los métodos " "correspondientes del *lock* asociado." -#: ../Doc/library/threading.rst:660 +#: ../Doc/library/threading.rst:678 msgid "" "Other methods must be called with the associated lock held. The :meth:" "`~Condition.wait` method releases the lock, and then blocks until another " @@ -1230,7 +1266,7 @@ msgstr "" "adquiere el *lock* y retorna. También es posible especificar un tiempo de " "espera." -#: ../Doc/library/threading.rst:666 +#: ../Doc/library/threading.rst:684 msgid "" "The :meth:`~Condition.notify` method wakes up one of the threads waiting for " "the condition variable, if any are waiting. The :meth:`~Condition." @@ -1241,7 +1277,7 @@ msgstr "" "`~Condition.notify_all` despierta a todos los hilos que estén esperando a la " "condición variable." -#: ../Doc/library/threading.rst:670 +#: ../Doc/library/threading.rst:688 msgid "" "Note: the :meth:`~Condition.notify` and :meth:`~Condition.notify_all` " "methods don't release the lock; this means that the thread or threads " @@ -1256,7 +1292,7 @@ msgstr "" "`~Condition.notify` o :meth:`~Condition.notify_all` renuncie finalmente a la " "propiedad del *lock*." -#: ../Doc/library/threading.rst:676 +#: ../Doc/library/threading.rst:694 msgid "" "The typical programming style using condition variables uses the lock to " "synchronize access to some shared state; threads that are interested in a " @@ -1277,7 +1313,7 @@ msgstr "" "espera. Por ejemplo, el siguiente código es una situación genérica de " "productor-consumidor con capacidad de búfer ilimitada::" -#: ../Doc/library/threading.rst:696 +#: ../Doc/library/threading.rst:714 msgid "" "The ``while`` loop checking for the application's condition is necessary " "because :meth:`~Condition.wait` can return after an arbitrary long time, and " @@ -1294,7 +1330,7 @@ msgstr "" "para automatizar la revisión de condiciones, y facilita la computación de " "tiempos de espera::" -#: ../Doc/library/threading.rst:708 +#: ../Doc/library/threading.rst:726 msgid "" "To choose between :meth:`~Condition.notify` and :meth:`~Condition." "notify_all`, consider whether one state change can be interesting for only " @@ -1307,7 +1343,7 @@ msgstr "" "hilos en espera. Por ejemplo en una típica situación productor-consumidor, " "agregar un elemento al búfer sólo necesita despertar un hilo consumidor." -#: ../Doc/library/threading.rst:716 +#: ../Doc/library/threading.rst:734 msgid "" "This class implements condition variable objects. A condition variable " "allows one or more threads to wait until they are notified by another thread." @@ -1315,7 +1351,7 @@ msgstr "" "Esta clase implementa objetos de condición variable. Una condición variable " "permite que uno o más hilos esperen hasta que sean notificados por otro hilo." -#: ../Doc/library/threading.rst:719 +#: ../Doc/library/threading.rst:737 msgid "" "If the *lock* argument is given and not ``None``, it must be a :class:`Lock` " "or :class:`RLock` object, and it is used as the underlying lock. Otherwise, " @@ -1326,13 +1362,13 @@ msgstr "" "otro modo, se crea un nuevo objeto :class:`RLock` y se utiliza como el " "*lock* subyacente." -#: ../Doc/library/threading.rst:723 ../Doc/library/threading.rst:847 -#: ../Doc/library/threading.rst:893 ../Doc/library/threading.rst:945 -#: ../Doc/library/threading.rst:1016 +#: ../Doc/library/threading.rst:741 ../Doc/library/threading.rst:865 +#: ../Doc/library/threading.rst:911 ../Doc/library/threading.rst:963 +#: ../Doc/library/threading.rst:1034 msgid "changed from a factory function to a class." msgstr "cambiado de función de fábrica a una clase." -#: ../Doc/library/threading.rst:728 +#: ../Doc/library/threading.rst:746 msgid "" "Acquire the underlying lock. This method calls the corresponding method on " "the underlying lock; the return value is whatever that method returns." @@ -1341,7 +1377,7 @@ msgstr "" "sobre el *lock* subyacente; el valor de retorno es lo que retorne aquel " "método." -#: ../Doc/library/threading.rst:733 +#: ../Doc/library/threading.rst:751 msgid "" "Release the underlying lock. This method calls the corresponding method on " "the underlying lock; there is no return value." @@ -1349,7 +1385,7 @@ msgstr "" "Libera el *lock* subyacente. Este método llama al método correspondiente en " "el *lock* subyacente; no tiene valor de retorno." -#: ../Doc/library/threading.rst:738 +#: ../Doc/library/threading.rst:756 msgid "" "Wait until notified or until a timeout occurs. If the calling thread has not " "acquired the lock when this method is called, a :exc:`RuntimeError` is " @@ -1359,7 +1395,7 @@ msgstr "" "hilo invocador no ha adquirido el *lock* cuando este método es llamado, se " "lanza un :exc:`RuntimeError`." -#: ../Doc/library/threading.rst:742 +#: ../Doc/library/threading.rst:760 msgid "" "This method releases the underlying lock, and then blocks until it is " "awakened by a :meth:`notify` or :meth:`notify_all` call for the same " @@ -1372,7 +1408,7 @@ msgstr "" "opcional se cumpla. Una vez que ha sido despertado o el tiempo de espera ha " "pasado, re-adquiere el *lock* y retorna." -#: ../Doc/library/threading.rst:747 +#: ../Doc/library/threading.rst:765 msgid "" "When the *timeout* argument is present and not ``None``, it should be a " "floating point number specifying a timeout for the operation in seconds (or " @@ -1382,7 +1418,7 @@ msgstr "" "número de punto flotante que especifique un tiempo de espera para la " "operación en segundos (o fracciones de segundo)." -#: ../Doc/library/threading.rst:751 +#: ../Doc/library/threading.rst:769 msgid "" "When the underlying lock is an :class:`RLock`, it is not released using its :" "meth:`release` method, since this may not actually unlock the lock when it " @@ -1399,7 +1435,7 @@ msgstr "" "interfaz interna se usa luego para restablecer el nivel de recursividad " "cuando el *lock* es readquirido." -#: ../Doc/library/threading.rst:759 +#: ../Doc/library/threading.rst:777 msgid "" "The return value is ``True`` unless a given *timeout* expired, in which case " "it is ``False``." @@ -1407,11 +1443,11 @@ msgstr "" "El valor de retorno es ``True`` a menos que un *timeout* dado haya expirado, " "en cuyo caso será ``False``." -#: ../Doc/library/threading.rst:762 ../Doc/library/threading.rst:981 +#: ../Doc/library/threading.rst:780 ../Doc/library/threading.rst:999 msgid "Previously, the method always returned ``None``." msgstr "Previamente, el método siempre retornaba ``None``." -#: ../Doc/library/threading.rst:767 +#: ../Doc/library/threading.rst:785 msgid "" "Wait until a condition evaluates to true. *predicate* should be a callable " "which result will be interpreted as a boolean value. A *timeout* may be " @@ -1421,7 +1457,7 @@ msgstr "" "invocable cuyo resultado se interpretará como un valor booleano. Se puede " "proveer un *timeout* que especifique el máximo tiempo de espera." -#: ../Doc/library/threading.rst:771 +#: ../Doc/library/threading.rst:789 msgid "" "This utility method may call :meth:`wait` repeatedly until the predicate is " "satisfied, or until a timeout occurs. The return value is the last return " @@ -1433,7 +1469,7 @@ msgstr "" "retorno es el último valor de retorno del predicado y se evaluará a " "``False`` si el método ha caducado." -#: ../Doc/library/threading.rst:776 +#: ../Doc/library/threading.rst:794 msgid "" "Ignoring the timeout feature, calling this method is roughly equivalent to " "writing::" @@ -1441,7 +1477,7 @@ msgstr "" "Al ignorar la propiedad *feature*, llamar a este método equivale vagamente a " "escribir::" -#: ../Doc/library/threading.rst:782 +#: ../Doc/library/threading.rst:800 msgid "" "Therefore, the same rules apply as with :meth:`wait`: The lock must be held " "when called and is re-acquired on return. The predicate is evaluated with " @@ -1451,7 +1487,7 @@ msgstr "" "conservado cuando se llame y es re-adquirido al momento del retorno. El " "predicado se evalúa con el *lock* conservado." -#: ../Doc/library/threading.rst:790 +#: ../Doc/library/threading.rst:808 msgid "" "By default, wake up one thread waiting on this condition, if any. If the " "calling thread has not acquired the lock when this method is called, a :exc:" @@ -1461,7 +1497,7 @@ msgstr "" "lo existe. Si el hilo llamador no ha adquirido el *lock* cuando se llama " "este método, se lanza un :exc:`RuntimeError`." -#: ../Doc/library/threading.rst:794 +#: ../Doc/library/threading.rst:812 msgid "" "This method wakes up at most *n* of the threads waiting for the condition " "variable; it is a no-op if no threads are waiting." @@ -1469,7 +1505,7 @@ msgstr "" "Este método despierta como máximo *n* de los hilos que estén esperando por " "la condición variable; no es una opción si no hay hilos esperando." -#: ../Doc/library/threading.rst:797 +#: ../Doc/library/threading.rst:815 msgid "" "The current implementation wakes up exactly *n* threads, if at least *n* " "threads are waiting. However, it's not safe to rely on this behavior. A " @@ -1481,7 +1517,7 @@ msgstr "" "comportamiento. A futuro, una implementación optimizada podría " "ocasionalmente despertar a más de *n* hilos." -#: ../Doc/library/threading.rst:802 +#: ../Doc/library/threading.rst:820 msgid "" "Note: an awakened thread does not actually return from its :meth:`wait` call " "until it can reacquire the lock. Since :meth:`notify` does not release the " @@ -1491,7 +1527,7 @@ msgstr "" "meth:`wait` hasta que pueda readquirir el *lock*. Ya que :meth:`notify` no " "libera el *lock*, su llamador debiera hacerlo." -#: ../Doc/library/threading.rst:808 +#: ../Doc/library/threading.rst:826 msgid "" "Wake up all threads waiting on this condition. This method acts like :meth:" "`notify`, but wakes up all waiting threads instead of one. If the calling " @@ -1503,15 +1539,15 @@ msgstr "" "de a uno. Si el hilo llamador no ha adquirido el *lock* cuando se llama a " "este método, se lanza un :exc:`RuntimeError`." -#: ../Doc/library/threading.rst:813 +#: ../Doc/library/threading.rst:831 msgid "The method ``notifyAll`` is a deprecated alias for this method." msgstr "El método ``notifyAll`` es un alias obsoleto para este método." -#: ../Doc/library/threading.rst:819 +#: ../Doc/library/threading.rst:837 msgid "Semaphore Objects" msgstr "Objetos semáforo" -#: ../Doc/library/threading.rst:821 +#: ../Doc/library/threading.rst:839 msgid "" "This is one of the oldest synchronization primitives in the history of " "computer science, invented by the early Dutch computer scientist Edsger W. " @@ -1523,7 +1559,7 @@ msgstr "" "la computación holandés Edsger W. Dijkstra (él utilizó los nombres ``P()`` y " "``V()`` en lugar de :meth:`~Semaphore.acquire` y :meth:`~Semaphore.release`)" -#: ../Doc/library/threading.rst:826 +#: ../Doc/library/threading.rst:844 msgid "" "A semaphore manages an internal counter which is decremented by each :meth:" "`~Semaphore.acquire` call and incremented by each :meth:`~Semaphore.release` " @@ -1537,14 +1573,14 @@ msgstr "" "`~Semaphore.acquire` lo encuentra en cero, bloquea, esperando hasta que otro " "hilo llame :meth:`~Semaphore.release`." -#: ../Doc/library/threading.rst:832 +#: ../Doc/library/threading.rst:850 msgid "" "Semaphores also support the :ref:`context management protocol `." msgstr "" "Los semáforos también tienen soporte para el :ref:`protocolo de gestión de " "contexto `." -#: ../Doc/library/threading.rst:837 +#: ../Doc/library/threading.rst:855 msgid "" "This class implements semaphore objects. A semaphore manages an atomic " "counter representing the number of :meth:`release` calls minus the number " @@ -1558,7 +1594,7 @@ msgstr "" "`acquire` bloquea si es necesario, hasta que pueda retornar sin volver el " "contador negativo. Si no es provisto, el valor por defecto de *value* será 1." -#: ../Doc/library/threading.rst:843 +#: ../Doc/library/threading.rst:861 msgid "" "The optional argument gives the initial *value* for the internal counter; it " "defaults to ``1``. If the *value* given is less than 0, :exc:`ValueError` is " @@ -1567,15 +1603,15 @@ msgstr "" "El argumento opcional da el *value* inicial al contador interno; por defecto " "es ``1``. Si el *value* provisto es menor a 0; se lanza un :exc:`ValueError`." -#: ../Doc/library/threading.rst:852 +#: ../Doc/library/threading.rst:870 msgid "Acquire a semaphore." msgstr "Adquirir un semáforo." -#: ../Doc/library/threading.rst:854 +#: ../Doc/library/threading.rst:872 msgid "When invoked without arguments:" msgstr "Cuando se invoca sin argumentos:" -#: ../Doc/library/threading.rst:856 +#: ../Doc/library/threading.rst:874 msgid "" "If the internal counter is larger than zero on entry, decrement it by one " "and return ``True`` immediately." @@ -1583,7 +1619,7 @@ msgstr "" "Si el contador interno es mayor a cero de entrada, lo disminuye en uno y " "retorna ``True`` inmediatamente." -#: ../Doc/library/threading.rst:858 +#: ../Doc/library/threading.rst:876 msgid "" "If the internal counter is zero on entry, block until awoken by a call to :" "meth:`~Semaphore.release`. Once awoken (and the counter is greater than 0), " @@ -1597,7 +1633,7 @@ msgstr "" "exactamente un hilo por cada llamada a :meth:`~Semaphore.release`. No " "debiese confiarse en el orden en que los hilos sean despertados." -#: ../Doc/library/threading.rst:864 +#: ../Doc/library/threading.rst:882 #, fuzzy msgid "" "When invoked with *blocking* set to ``False``, do not block. If a call " @@ -1608,7 +1644,7 @@ msgstr "" "sin un argumento bloquease, retorna ``Falso`` inmediatamente; de otro modo, " "hace lo mismo que cuando se llama sin argumentos, y retorna ``True``." -#: ../Doc/library/threading.rst:868 +#: ../Doc/library/threading.rst:886 msgid "" "When invoked with a *timeout* other than ``None``, it will block for at most " "*timeout* seconds. If acquire does not complete successfully in that " @@ -1619,7 +1655,7 @@ msgstr "" "exitosamente en ese intervalo, retorna ``False``. De otro modo retorna " "``True``." -#: ../Doc/library/threading.rst:877 +#: ../Doc/library/threading.rst:895 msgid "" "Release a semaphore, incrementing the internal counter by *n*. When it was " "zero on entry and other threads are waiting for it to become larger than " @@ -1629,13 +1665,13 @@ msgstr "" "cero en la entrada y otros subprocesos están esperando que vuelva a ser " "mayor que cero, active *n* de esos subprocesos." -#: ../Doc/library/threading.rst:881 +#: ../Doc/library/threading.rst:899 msgid "Added the *n* parameter to release multiple waiting threads at once." msgstr "" "Se agregó el parámetro *n* para liberar varios subprocesos en espera a la " "vez." -#: ../Doc/library/threading.rst:887 +#: ../Doc/library/threading.rst:905 msgid "" "Class implementing bounded semaphore objects. A bounded semaphore checks to " "make sure its current value doesn't exceed its initial value. If it does, :" @@ -1650,11 +1686,11 @@ msgstr "" "semáforo demasiadas veces es signo de un *bug*. Si no se provee, el valor " "por defecto de *value* será 1." -#: ../Doc/library/threading.rst:900 +#: ../Doc/library/threading.rst:918 msgid ":class:`Semaphore` Example" msgstr "Ejemplo de :class:`Semaphore`" -#: ../Doc/library/threading.rst:902 +#: ../Doc/library/threading.rst:920 msgid "" "Semaphores are often used to guard resources with limited capacity, for " "example, a database server. In any situation where the size of the resource " @@ -1667,7 +1703,7 @@ msgstr "" "de generar cualquier hilo de trabajo, tu hilo principal debe inicializar el " "semáforo::" -#: ../Doc/library/threading.rst:911 +#: ../Doc/library/threading.rst:929 msgid "" "Once spawned, worker threads call the semaphore's acquire and release " "methods when they need to connect to the server::" @@ -1675,7 +1711,7 @@ msgstr "" "Una vez que han sido generados, los hilos de trabajo llaman a los métodos " "*acquire* y *release* cuando necesitan conectarse al servidor::" -#: ../Doc/library/threading.rst:921 +#: ../Doc/library/threading.rst:939 msgid "" "The use of a bounded semaphore reduces the chance that a programming error " "which causes the semaphore to be released more than it's acquired will go " @@ -1685,11 +1721,11 @@ msgstr "" "inadvertido un error de programación que cause que el semáforo sea liberado " "más veces de las que sea adquirido." -#: ../Doc/library/threading.rst:928 +#: ../Doc/library/threading.rst:946 msgid "Event Objects" msgstr "Objetos de eventos" -#: ../Doc/library/threading.rst:930 +#: ../Doc/library/threading.rst:948 msgid "" "This is one of the simplest mechanisms for communication between threads: " "one thread signals an event and other threads wait for it." @@ -1697,7 +1733,7 @@ msgstr "" "Éste es uno de los mecanismos más simples de comunicación entre hilos: un " "hilo señala un evento y otro hilo lo espera." -#: ../Doc/library/threading.rst:933 +#: ../Doc/library/threading.rst:951 msgid "" "An event object manages an internal flag that can be set to true with the :" "meth:`~Event.set` method and reset to false with the :meth:`~Event.clear` " @@ -1708,7 +1744,7 @@ msgstr "" "mediante el método :meth:`~Meth.clear`. El método :meth:`~Meth.wait` bloquea " "hasta que la marca sea *true*." -#: ../Doc/library/threading.rst:940 +#: ../Doc/library/threading.rst:958 msgid "" "Class implementing event objects. An event manages a flag that can be set " "to true with the :meth:`~Event.set` method and reset to false with the :meth:" @@ -1721,15 +1757,15 @@ msgstr "" "bloquea hasta que el indicador sea verdadero. El indicador es inicialmente " "falso." -#: ../Doc/library/threading.rst:950 +#: ../Doc/library/threading.rst:968 msgid "Return ``True`` if and only if the internal flag is true." msgstr "Retorna ``True`` exclusivamente si el indicador interno es verdadero." -#: ../Doc/library/threading.rst:952 +#: ../Doc/library/threading.rst:970 msgid "The method ``isSet`` is a deprecated alias for this method." msgstr "El método ``isSet`` es un alias obsoleto para este método." -#: ../Doc/library/threading.rst:956 +#: ../Doc/library/threading.rst:974 msgid "" "Set the internal flag to true. All threads waiting for it to become true are " "awakened. Threads that call :meth:`wait` once the flag is true will not " @@ -1739,7 +1775,7 @@ msgstr "" "esperando que se vuelva verdadero serán despertados. Los hilos que llaman a :" "meth:`wait` una vez que el indicador marca verdadero no bloquearán." -#: ../Doc/library/threading.rst:962 +#: ../Doc/library/threading.rst:980 msgid "" "Reset the internal flag to false. Subsequently, threads calling :meth:`wait` " "will block until :meth:`.set` is called to set the internal flag to true " @@ -1749,7 +1785,7 @@ msgstr "" "meth:`wait` bloquearán hasta que se llame a :meth:`set` para establecer el " "indicador interno a verdadero nuevamente." -#: ../Doc/library/threading.rst:968 +#: ../Doc/library/threading.rst:986 msgid "" "Block until the internal flag is true. If the internal flag is true on " "entry, return immediately. Otherwise, block until another thread calls :" @@ -1760,7 +1796,7 @@ msgstr "" "bloquea hasta que otro hilo llame a :meth:`.set` para establecer el " "indicador a verdadero, o hasta que el tiempo de espera opcional caduque." -#: ../Doc/library/threading.rst:972 +#: ../Doc/library/threading.rst:990 msgid "" "When the timeout argument is present and not ``None``, it should be a " "floating point number specifying a timeout for the operation in seconds (or " @@ -1770,7 +1806,7 @@ msgstr "" "de ``None``, debe ser un número de punto flotante que especifique un tiempo " "de espera para la operación en segundos (o fracciones en su defecto)." -#: ../Doc/library/threading.rst:976 +#: ../Doc/library/threading.rst:994 msgid "" "This method returns ``True`` if and only if the internal flag has been set " "to true, either before the wait call or after the wait starts, so it will " @@ -1782,11 +1818,11 @@ msgstr "" "que la espera inicie, por lo que siempre retorna ``True`` excepto si se " "provee un tiempo de espera máximo y la operación caduca." -#: ../Doc/library/threading.rst:988 +#: ../Doc/library/threading.rst:1006 msgid "Timer Objects" msgstr "Objetos temporizadores" -#: ../Doc/library/threading.rst:990 +#: ../Doc/library/threading.rst:1008 msgid "" "This class represents an action that should be run only after a certain " "amount of time has passed --- a timer. :class:`Timer` is a subclass of :" @@ -1798,13 +1834,14 @@ msgstr "" "una subclase de :class:`Thread` y en tanto tal también funciona como un " "ejemplo de creación de hilos personalizados." -#: ../Doc/library/threading.rst:994 +#: ../Doc/library/threading.rst:1012 +#, fuzzy msgid "" -"Timers are started, as with threads, by calling their :meth:`~Timer.start` " -"method. The timer can be stopped (before its action has begun) by calling " -"the :meth:`~Timer.cancel` method. The interval the timer will wait before " -"executing its action may not be exactly the same as the interval specified " -"by the user." +"Timers are started, as with threads, by calling their :meth:`Timer.start " +"` method. The timer can be stopped (before its action has " +"begun) by calling the :meth:`~Timer.cancel` method. The interval the timer " +"will wait before executing its action may not be exactly the same as the " +"interval specified by the user." msgstr "" "Los temporizadores son iniciados, tal como los hilos, al llamarse su método :" "meth:`~Timer.start`. El temporizador puede ser detenido (antes de que su " @@ -1812,11 +1849,11 @@ msgstr "" "intervalo que el temporizador esperará antes de ejecutar su acción puede no " "ser exactamente el mismo que el intervalo especificado por el usuario." -#: ../Doc/library/threading.rst:1000 +#: ../Doc/library/threading.rst:1018 msgid "For example::" msgstr "Por ejemplo:" -#: ../Doc/library/threading.rst:1011 +#: ../Doc/library/threading.rst:1029 msgid "" "Create a timer that will run *function* with arguments *args* and keyword " "arguments *kwargs*, after *interval* seconds have passed. If *args* is " @@ -1829,7 +1866,7 @@ msgstr "" "defecto) se utilizará una lista vacía. Si *kwargs* es ``None`` (por defecto) " "se utilizará un *dict* vacío." -#: ../Doc/library/threading.rst:1021 +#: ../Doc/library/threading.rst:1039 msgid "" "Stop the timer, and cancel the execution of the timer's action. This will " "only work if the timer is still in its waiting stage." @@ -1838,11 +1875,11 @@ msgstr "" "temporizador. Esto sólo funcionará si el temporizador está en etapa de " "espera." -#: ../Doc/library/threading.rst:1026 +#: ../Doc/library/threading.rst:1044 msgid "Barrier Objects" msgstr "Objetos de barrera" -#: ../Doc/library/threading.rst:1030 +#: ../Doc/library/threading.rst:1048 msgid "" "This class provides a simple synchronization primitive for use by a fixed " "number of threads that need to wait for each other. Each of the threads " @@ -1856,14 +1893,14 @@ msgstr "" "bloqueará hasta que todos los hilos hayan hecho sus respectivas llamadas a :" "meth:`~Barrier.wait`. En este punto, los hilos son liberados simultáneamente." -#: ../Doc/library/threading.rst:1036 +#: ../Doc/library/threading.rst:1054 msgid "" "The barrier can be reused any number of times for the same number of threads." msgstr "" "La barrera puede ser reutilizada cualquier número de veces para el mismo " "número de hilos." -#: ../Doc/library/threading.rst:1038 +#: ../Doc/library/threading.rst:1056 msgid "" "As an example, here is a simple way to synchronize a client and server " "thread::" @@ -1871,7 +1908,7 @@ msgstr "" "Como ejemplo, aquí hay una manera simple de sincronizar un hilo cliente con " "uno servidor::" -#: ../Doc/library/threading.rst:1058 +#: ../Doc/library/threading.rst:1076 msgid "" "Create a barrier object for *parties* number of threads. An *action*, when " "provided, is a callable to be called by one of the threads when they are " @@ -1883,7 +1920,7 @@ msgstr "" "sean liberados. *timeout* es el valor de tiempo de espera máximo por defecto " "si no se especifica uno en el método :meth:`wait`." -#: ../Doc/library/threading.rst:1065 +#: ../Doc/library/threading.rst:1083 msgid "" "Pass the barrier. When all the threads party to the barrier have called " "this function, they are all released simultaneously. If a *timeout* is " @@ -1895,7 +1932,7 @@ msgstr "" "valor *timeout*, se utilizará con preferencia sobre cualquiera que haya sido " "suministrado al constructor de la clase." -#: ../Doc/library/threading.rst:1070 +#: ../Doc/library/threading.rst:1088 msgid "" "The return value is an integer in the range 0 to *parties* -- 1, different " "for each thread. This can be used to select a thread to do some special " @@ -1905,7 +1942,7 @@ msgstr "" "diferente para cada hilo. Puede ser utilizado para seleccionar a un hilo " "para que haga alguna limpieza especial, por ejemplo::" -#: ../Doc/library/threading.rst:1079 +#: ../Doc/library/threading.rst:1097 msgid "" "If an *action* was provided to the constructor, one of the threads will have " "called it prior to being released. Should this call raise an error, the " @@ -1915,11 +1952,11 @@ msgstr "" "antes de ser liberado. Si acaso esta llamada lanzara un error, la barrera " "entra en estado *broken* (roto)." -#: ../Doc/library/threading.rst:1083 +#: ../Doc/library/threading.rst:1101 msgid "If the call times out, the barrier is put into the broken state." msgstr "Si la llamada caduca, la barrera entra en estado *broken*." -#: ../Doc/library/threading.rst:1085 +#: ../Doc/library/threading.rst:1103 msgid "" "This method may raise a :class:`BrokenBarrierError` exception if the barrier " "is broken or reset while a thread is waiting." @@ -1927,7 +1964,7 @@ msgstr "" "Este método podría lanzar una excepción :class:`BrokenBarrierError` si la " "barrera está rota o si se reinicia mientras el hilo está esperando." -#: ../Doc/library/threading.rst:1090 +#: ../Doc/library/threading.rst:1108 msgid "" "Return the barrier to the default, empty state. Any threads waiting on it " "will receive the :class:`BrokenBarrierError` exception." @@ -1935,7 +1972,7 @@ msgstr "" "Retorna la barrera al estado por defecto, vacío. Cualquier hilo que esté a " "su espera recibirá la excepción :class:`BrokenBarrierError`." -#: ../Doc/library/threading.rst:1093 +#: ../Doc/library/threading.rst:1111 msgid "" "Note that using this function may require some external synchronization if " "there are other threads whose state is unknown. If a barrier is broken it " @@ -1945,7 +1982,7 @@ msgstr "" "externa si existen otros hilos cuyos estados sean desconocidos. Si una " "barrera se rompe puede ser mejor abandonarla y crear una nueva." -#: ../Doc/library/threading.rst:1099 +#: ../Doc/library/threading.rst:1117 msgid "" "Put the barrier into a broken state. This causes any active or future calls " "to :meth:`wait` to fail with the :class:`BrokenBarrierError`. Use this for " @@ -1957,7 +1994,7 @@ msgstr "" "por ejemplo si uno de los hilos necesita abortar, para evitar que la " "aplicación quede en punto muerto." -#: ../Doc/library/threading.rst:1104 +#: ../Doc/library/threading.rst:1122 msgid "" "It may be preferable to simply create the barrier with a sensible *timeout* " "value to automatically guard against one of the threads going awry." @@ -1965,20 +2002,20 @@ msgstr "" "Puede ser preferible simplemente crear la barrera con un valor *timeout* " "sensato para cuidarse automáticamente de que uno de los hilos falle." -#: ../Doc/library/threading.rst:1110 +#: ../Doc/library/threading.rst:1128 msgid "The number of threads required to pass the barrier." msgstr "El número de hilos requeridos para pasar la barrera." -#: ../Doc/library/threading.rst:1114 +#: ../Doc/library/threading.rst:1132 msgid "The number of threads currently waiting in the barrier." msgstr "El número de hilos actualmente esperando en la barrera." -#: ../Doc/library/threading.rst:1118 +#: ../Doc/library/threading.rst:1136 msgid "A boolean that is ``True`` if the barrier is in the broken state." msgstr "" "Un valor booleano que será ``True`` si la barrera está en el estado roto." -#: ../Doc/library/threading.rst:1123 +#: ../Doc/library/threading.rst:1141 msgid "" "This exception, a subclass of :exc:`RuntimeError`, is raised when the :class:" "`Barrier` object is reset or broken." @@ -1986,19 +2023,20 @@ msgstr "" "Esta excepción, una subclase de :exc:`RuntimeError`, se lanza cuando el " "objeto :class:`Barrier` se restablece o se rompe." -#: ../Doc/library/threading.rst:1130 +#: ../Doc/library/threading.rst:1148 msgid "" "Using locks, conditions, and semaphores in the :keyword:`!with` statement" msgstr "" "Uso de *locks*, condiciones y semáforos en la declaración :keyword:`!with`" -#: ../Doc/library/threading.rst:1132 +#: ../Doc/library/threading.rst:1150 +#, fuzzy msgid "" -"All of the objects provided by this module that have :meth:`acquire` and :" -"meth:`release` methods can be used as context managers for a :keyword:`with` " -"statement. The :meth:`acquire` method will be called when the block is " -"entered, and :meth:`release` will be called when the block is exited. " -"Hence, the following snippet::" +"All of the objects provided by this module that have ``acquire`` and " +"``release`` methods can be used as context managers for a :keyword:`with` " +"statement. The ``acquire`` method will be called when the block is entered, " +"and ``release`` will be called when the block is exited. Hence, the " +"following snippet::" msgstr "" "Todos los objetos provistos por este módulo que tienen métodos :meth:" "`acquire` y :meth:`release` pueden ser utilizados como administradores de " @@ -2006,11 +2044,11 @@ msgstr "" "será llamado cuando se ingresa al bloque y el método :meth:`release` será " "llamado cuando se abandona el bloque. De ahí que, el siguiente fragmento::" -#: ../Doc/library/threading.rst:1141 +#: ../Doc/library/threading.rst:1159 msgid "is equivalent to::" msgstr "sea equivalente a::" -#: ../Doc/library/threading.rst:1149 +#: ../Doc/library/threading.rst:1167 msgid "" "Currently, :class:`Lock`, :class:`RLock`, :class:`Condition`, :class:" "`Semaphore`, and :class:`BoundedSemaphore` objects may be used as :keyword:" @@ -2019,3 +2057,22 @@ msgstr "" "Actualmente, los objetos :class:`Lock`, :class:`RLock`, :class:`Condition`, :" "class:`Semaphore`, y :class:`BoundedSemaphore` pueden ser utilizados como " "gestores de contexto con declaraciones :keyword:`with`." + +#: ../Doc/library/threading.rst:155 ../Doc/library/threading.rst:173 +msgid "trace function" +msgstr "" + +#: ../Doc/library/threading.rst:173 +msgid "debugger" +msgstr "" + +#: ../Doc/library/threading.rst:184 ../Doc/library/threading.rst:202 +msgid "profile function" +msgstr "" + +#~ msgid "" +#~ ":ref:`Availability `: Windows, FreeBSD, Linux, macOS, " +#~ "OpenBSD, NetBSD, AIX." +#~ msgstr "" +#~ ":ref:`Disponibilidad `: Windows, FreeBSD, Linux, macOS, " +#~ "OpenBSD, NetBSD, AIX." diff --git a/library/time.po b/library/time.po index cc5b4519c0..24614543d4 100644 --- a/library/time.po +++ b/library/time.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-12-08 15:12-0500\n" "Last-Translator: Rodrigo Tobar \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/time.rst:2 msgid ":mod:`time` --- Time access and conversions" @@ -201,8 +201,9 @@ msgstr "A" msgid "Use" msgstr "Usar" -#: ../Doc/library/time.rst:100 ../Doc/library/time.rst:103 -#: ../Doc/library/time.rst:106 ../Doc/library/time.rst:109 +#: ../Doc/library/time.rst:29 ../Doc/library/time.rst:100 +#: ../Doc/library/time.rst:103 ../Doc/library/time.rst:106 +#: ../Doc/library/time.rst:109 msgid "seconds since the epoch" msgstr "segundos desde la época" @@ -289,6 +290,7 @@ msgstr "" "Pasar un * thread_id * no válido o caducado puede provocar un comportamiento " "indefinido, como un error de segmentación." +#: ../Doc/library/time.rst:147 #, fuzzy msgid ":ref:`Availability `: Unix" msgstr ":ref:`Disponibilidad `: Unix." @@ -311,11 +313,11 @@ msgstr "" "ref:`time-clock-id-constants` para obtener una lista de los valores " "aceptados para *clk_id*." -#: ../Doc/library/time.rst:160 ../Doc/library/time.rst:173 -#: ../Doc/library/time.rst:182 ../Doc/library/time.rst:195 -#: ../Doc/library/time.rst:204 ../Doc/library/time.rst:681 -#: ../Doc/library/time.rst:798 ../Doc/library/time.rst:817 -#: ../Doc/library/time.rst:845 ../Doc/library/time.rst:880 +#: ../Doc/library/time.rst:159 ../Doc/library/time.rst:172 +#: ../Doc/library/time.rst:181 ../Doc/library/time.rst:194 +#: ../Doc/library/time.rst:203 ../Doc/library/time.rst:680 +#: ../Doc/library/time.rst:797 ../Doc/library/time.rst:816 +#: ../Doc/library/time.rst:844 ../Doc/library/time.rst:879 msgid ":ref:`Availability `: Unix." msgstr ":ref:`Disponibilidad `: Unix." @@ -1344,6 +1346,7 @@ msgstr "" "Utilice :func:`thread_time_ns` para evitar la pérdida de precisión que causa " "el tipo :class:`float`." +#: ../Doc/library/time.rst:656 #, fuzzy msgid ":ref:`Availability `: Linux, Unix, Windows." msgstr ":ref:`Disponibilidad `: Linux." @@ -1543,7 +1546,7 @@ msgstr "" "puede tener discontinuidades si se cambia la hora usando ``settimeofday()`` " "o similar." -#: ../Doc/library/time.rst:777 +#: ../Doc/library/time.rst:776 #, fuzzy msgid ":ref:`Availability `: Linux >= 2.6.39." msgstr ":ref:`Disponibilidad `: Linux 2.6.39 o posterior." @@ -1559,7 +1562,7 @@ msgstr "" "resolución cercana a los nanosegundos. ``CLOCK_HIGHRES`` es el reloj de alta " "resolución no ajustable." -#: ../Doc/library/time.rst:788 +#: ../Doc/library/time.rst:787 msgid ":ref:`Availability `: Solaris." msgstr ":ref:`Disponibilidad `: Solaris." @@ -1579,7 +1582,7 @@ msgstr "" "Similar a :data:`CLOCK_MONOTONIC`, pero proporciona acceso a un tiempo sin " "procesar basado en hardware que no está sujeto a ajustes NTP." -#: ../Doc/library/time.rst:808 +#: ../Doc/library/time.rst:807 #, fuzzy msgid ":ref:`Availability `: Linux >= 2.6.28, macOS >= 10.12." msgstr "" @@ -1590,7 +1593,7 @@ msgstr "" msgid "High-resolution per-process timer from the CPU." msgstr "Temporizador por proceso de alta resolución desde la CPU." -#: ../Doc/library/time.rst:826 +#: ../Doc/library/time.rst:825 #, fuzzy msgid ":ref:`Availability `: FreeBSD, NetBSD >= 7, OpenBSD." msgstr "" @@ -1613,7 +1616,7 @@ msgstr "" "dé la respuesta correcta. Software PTP o NTP puede mantener una tabla de " "segundos intercalares." -#: ../Doc/library/time.rst:837 +#: ../Doc/library/time.rst:836 msgid ":ref:`Availability `: Linux." msgstr ":ref:`Disponibilidad `: Linux." @@ -1630,7 +1633,7 @@ msgstr "" "y no suspendido, proporcionando una medición precisa del tiempo de " "actividad, tanto absoluta como de intervalo." -#: ../Doc/library/time.rst:856 +#: ../Doc/library/time.rst:855 #, fuzzy msgid ":ref:`Availability `: FreeBSD, OpenBSD >= 5.5." msgstr "" @@ -1646,7 +1649,7 @@ msgstr "" "arbitrario, no afectado por los ajustes de frecuencia o tiempo y no " "incrementado mientras el sistema está dormido." -#: ../Doc/library/time.rst:867 +#: ../Doc/library/time.rst:866 #, fuzzy msgid ":ref:`Availability `: macOS >= 10.12." msgstr ":ref:`Disponibilidad `: macOS 10.12 y posterior." @@ -1781,3 +1784,52 @@ msgstr "" "práctica se trasladó a años de 4 dígitos mucho antes del año 2000. Después " "de eso, :rfc:`822` se volvió obsoleto y el año de 4 dígitos fue recomendado " "por primera vez por :rfc:`1123` y luego ordenado por :rfc:`2822`." + +#: ../Doc/library/time.rst:22 +msgid "epoch" +msgstr "" + +#: ../Doc/library/time.rst:36 +msgid "Year 2038" +msgstr "" + +#: ../Doc/library/time.rst:42 +msgid "2-digit years" +msgstr "" + +#: ../Doc/library/time.rst:50 +msgid "UTC" +msgstr "" + +#: ../Doc/library/time.rst:50 +msgid "Coordinated Universal Time" +msgstr "" + +#: ../Doc/library/time.rst:50 +msgid "Greenwich Mean Time" +msgstr "" + +#: ../Doc/library/time.rst:59 +msgid "Daylight Saving Time" +msgstr "" + +#: ../Doc/library/time.rst:308 ../Doc/library/time.rst:334 +#: ../Doc/library/time.rst:642 +msgid "benchmarking" +msgstr "" + +#: ../Doc/library/time.rst:334 ../Doc/library/time.rst:642 +msgid "CPU time" +msgstr "" + +#: ../Doc/library/time.rst:334 ../Doc/library/time.rst:642 +msgid "processor time" +msgstr "" + +#: ../Doc/library/time.rst:392 ../Doc/library/time.rst:526 +msgid "% (percent)" +msgstr "" + +#: ../Doc/library/time.rst:392 ../Doc/library/time.rst:526 +msgid "datetime format" +msgstr "" diff --git a/library/timeit.po b/library/timeit.po index 16dc066c30..c194c2ce19 100644 --- a/library/timeit.po +++ b/library/timeit.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-03-21 05:34-0500\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/timeit.rst:2 msgid ":mod:`timeit` --- Measure execution time of small code snippets" @@ -99,7 +98,7 @@ msgstr "" "de nombres en el que se ejecutará el código." #: ../Doc/library/timeit.rst:72 ../Doc/library/timeit.rst:83 -#: ../Doc/library/timeit.rst:120 +#: ../Doc/library/timeit.rst:122 msgid "The optional *globals* parameter was added." msgstr "El parámetro opcional *globals* fue añadido." @@ -115,25 +114,27 @@ msgstr "" "ejecuciones *repeat* y *number* dadas. El argumento *globals* opcional " "especifica un espacio de nombres en el que se ejecutará el código." -#: ../Doc/library/timeit.rst:86 ../Doc/library/timeit.rst:181 +#: ../Doc/library/timeit.rst:86 ../Doc/library/timeit.rst:183 msgid "Default value of *repeat* changed from 3 to 5." msgstr "El valor por defecto para *repeat* cambió de 3 a 5." -#: ../Doc/library/timeit.rst:91 -msgid "The default timer, which is always :func:`time.perf_counter`." -msgstr "El temporizador por defecto, que es siempre :func:`time.perf_counter`." +#: ../Doc/library/timeit.rst:92 +msgid "" +"The default timer, which is always time.perf_counter(), returns float " +"seconds. An alternative, time.perf_counter_ns, returns integer nanoseconds." +msgstr "" -#: ../Doc/library/timeit.rst:93 +#: ../Doc/library/timeit.rst:95 msgid ":func:`time.perf_counter` is now the default timer." msgstr ":func:`time.perf_counter` es ahora el temporizador por defecto." -#: ../Doc/library/timeit.rst:99 +#: ../Doc/library/timeit.rst:101 msgid "Class for timing execution speed of small code snippets." msgstr "" "Clase para la velocidad de tiempo de ejecución de pequeños fragmentos de " "código." -#: ../Doc/library/timeit.rst:101 +#: ../Doc/library/timeit.rst:103 msgid "" "The constructor takes a statement to be timed, an additional statement used " "for setup, and a timer function. Both statements default to ``'pass'``; the " @@ -153,7 +154,7 @@ msgstr "" "predeterminada dentro del espacio de nombres timeit; este comportamiento se " "puede controlar pasando un espacio de nombres a *globals*." -#: ../Doc/library/timeit.rst:109 +#: ../Doc/library/timeit.rst:111 msgid "" "To measure the execution time of the first statement, use the :meth:`." "timeit` method. The :meth:`.repeat` and :meth:`.autorange` methods are " @@ -164,14 +165,14 @@ msgstr "" "son métodos de conveniencia para llamar al método :meth:`.timeit` varias " "veces." -#: ../Doc/library/timeit.rst:113 +#: ../Doc/library/timeit.rst:115 msgid "" "The execution time of *setup* is excluded from the overall timed execution " "run." msgstr "" "El tiempo de ejecución de *setup* se excluye de la ejecución de tiempo total." -#: ../Doc/library/timeit.rst:115 +#: ../Doc/library/timeit.rst:117 msgid "" "The *stmt* and *setup* parameters can also take objects that are callable " "without arguments. This will embed calls to them in a timer function that " @@ -184,14 +185,15 @@ msgstr "" "que la sobrecarga de tiempo es un poco mayor en este caso debido a las " "llamadas de función adicionales." -#: ../Doc/library/timeit.rst:125 +#: ../Doc/library/timeit.rst:127 +#, fuzzy msgid "" "Time *number* executions of the main statement. This executes the setup " "statement once, and then returns the time it takes to execute the main " -"statement a number of times, measured in seconds as a float. The argument is " -"the number of times through the loop, defaulting to one million. The main " -"statement, the setup statement and the timer function to be used are passed " -"to the constructor." +"statement a number of times. The default timer returns seconds as a float. " +"The argument is the number of times through the loop, defaulting to one " +"million. The main statement, the setup statement and the timer function to " +"be used are passed to the constructor." msgstr "" "Tiempo *number* ejecuciones de la instrucción principal. Esto ejecuta la " "instrucción *setup* una vez y, a continuación, retorna el tiempo que se " @@ -200,7 +202,7 @@ msgstr "" "por defecto a un millón. La instrucción principal, la instrucción *setup* y " "la función *timer* que se va a utilizar se pasan al constructor." -#: ../Doc/library/timeit.rst:134 +#: ../Doc/library/timeit.rst:136 msgid "" "By default, :meth:`.timeit` temporarily turns off :term:`garbage collection` " "during the timing. The advantage of this approach is that it makes " @@ -216,11 +218,11 @@ msgstr "" "se está midiendo. Si es así, GC se puede volver a habilitar como la primera " "instrucción en la cadena *setup*. Por ejemplo::" -#: ../Doc/library/timeit.rst:146 +#: ../Doc/library/timeit.rst:148 msgid "Automatically determine how many times to call :meth:`.timeit`." msgstr "Determina automáticamente cuántas veces llamar a :meth:`.timeit`." -#: ../Doc/library/timeit.rst:148 +#: ../Doc/library/timeit.rst:150 msgid "" "This is a convenience function that calls :meth:`.timeit` repeatedly so that " "the total time >= 0.2 second, returning the eventual (number of loops, time " @@ -235,7 +237,7 @@ msgstr "" "5, 10, 20, 50, ... hasta que el tiempo necesario sea de al menos 0.2 " "segundos." -#: ../Doc/library/timeit.rst:154 +#: ../Doc/library/timeit.rst:156 msgid "" "If *callback* is given and is not ``None``, it will be called after each " "trial with two arguments: ``callback(number, time_taken)``." @@ -243,11 +245,11 @@ msgstr "" "Si *callback* se da y no es ``None``, se llamará después de cada prueba con " "dos argumentos: ``callback(number, time_taken)``." -#: ../Doc/library/timeit.rst:162 +#: ../Doc/library/timeit.rst:164 msgid "Call :meth:`.timeit` a few times." msgstr "Llama a :meth:`.timeit` algunas veces." -#: ../Doc/library/timeit.rst:164 +#: ../Doc/library/timeit.rst:166 msgid "" "This is a convenience function that calls the :meth:`.timeit` repeatedly, " "returning a list of results. The first argument specifies how many times to " @@ -259,7 +261,7 @@ msgstr "" "especifica cuántas veces se debe llamar a :meth:`.timeit`. El segundo " "argumento especifica el argumento *number* para :meth:`.timeit`." -#: ../Doc/library/timeit.rst:171 +#: ../Doc/library/timeit.rst:173 msgid "" "It's tempting to calculate mean and standard deviation from the result " "vector and report these. However, this is not very useful. In a typical " @@ -281,15 +283,15 @@ msgstr "" "interesado en. Después de eso, usted debe mirar todo el vector y aplicar el " "sentido común en lugar de las estadísticas." -#: ../Doc/library/timeit.rst:187 +#: ../Doc/library/timeit.rst:189 msgid "Helper to print a traceback from the timed code." msgstr "Ayudante para imprimir un seguimiento desde el código cronometrado." -#: ../Doc/library/timeit.rst:189 +#: ../Doc/library/timeit.rst:191 msgid "Typical use::" msgstr "Uso típico::" -#: ../Doc/library/timeit.rst:197 +#: ../Doc/library/timeit.rst:199 msgid "" "The advantage over the standard traceback is that source lines in the " "compiled template will be displayed. The optional *file* argument directs " @@ -299,35 +301,35 @@ msgstr "" "origen de la plantilla compilada. El argumento opcional *file* dirige dónde " "se envía el seguimiento; por defecto a :data:`sys.stderr`." -#: ../Doc/library/timeit.rst:205 +#: ../Doc/library/timeit.rst:207 msgid "Command-Line Interface" msgstr "Interfaz de línea de comandos" -#: ../Doc/library/timeit.rst:207 +#: ../Doc/library/timeit.rst:209 msgid "" "When called as a program from the command line, the following form is used::" msgstr "" "Cuando se llama como un programa desde la línea de comandos, se utiliza el " "siguiente formulario:" -#: ../Doc/library/timeit.rst:211 +#: ../Doc/library/timeit.rst:213 msgid "Where the following options are understood:" msgstr "Cuando las siguientes opciones son entendidas:" -#: ../Doc/library/timeit.rst:217 +#: ../Doc/library/timeit.rst:219 msgid "how many times to execute 'statement'" msgstr "cuantas veces para ejecutar '*statement*'" -#: ../Doc/library/timeit.rst:221 +#: ../Doc/library/timeit.rst:223 msgid "how many times to repeat the timer (default 5)" msgstr "cuantas veces se va a repetir el temporizador (predeterminado 5)" -#: ../Doc/library/timeit.rst:225 +#: ../Doc/library/timeit.rst:227 msgid "statement to be executed once initially (default ``pass``)" msgstr "" "instrucción a ser ejecutada una vez inicialmente (por defecto ``pass``)" -#: ../Doc/library/timeit.rst:229 +#: ../Doc/library/timeit.rst:231 msgid "" "measure process time, not wallclock time, using :func:`time.process_time` " "instead of :func:`time.perf_counter`, which is the default" @@ -336,7 +338,7 @@ msgstr "" "`time.process_time` en lugar de :func:`time.perf_counter`, que es el valor " "predeterminado" -#: ../Doc/library/timeit.rst:236 +#: ../Doc/library/timeit.rst:238 msgid "" "specify a time unit for timer output; can select ``nsec``, ``usec``, " "``msec``, or ``sec``" @@ -344,17 +346,17 @@ msgstr "" "especifica una unidad de tiempo para la salida del temporizador; puede " "seleccionar ``nsec``, ``usec``, ``msec`` o ``sec``" -#: ../Doc/library/timeit.rst:242 +#: ../Doc/library/timeit.rst:244 msgid "print raw timing results; repeat for more digits precision" msgstr "" "imprime los resultados de tiempo en bruto; repetir para más dígitos de " "precisión" -#: ../Doc/library/timeit.rst:246 +#: ../Doc/library/timeit.rst:248 msgid "print a short usage message and exit" msgstr "imprime un mensaje de uso corto y sale" -#: ../Doc/library/timeit.rst:248 +#: ../Doc/library/timeit.rst:250 msgid "" "A multi-line statement may be given by specifying each line as a separate " "statement argument; indented lines are possible by enclosing an argument in " @@ -366,7 +368,7 @@ msgstr "" "posibles entrecomillando un argumento y utilizando espacios iniciales. " "Múltiples opciones :option:`-s` se tratan de forma similar." -#: ../Doc/library/timeit.rst:253 +#: ../Doc/library/timeit.rst:255 msgid "" "If :option:`-n` is not given, a suitable number of loops is calculated by " "trying increasing numbers from the sequence 1, 2, 5, 10, 20, 50, ... until " @@ -376,7 +378,7 @@ msgstr "" "aumentar los números de la secuencia 1, 2, 5, 10, 20, 50, ... hasta que el " "tiempo total sea de al menos 0.2 segundos." -#: ../Doc/library/timeit.rst:257 +#: ../Doc/library/timeit.rst:259 msgid "" ":func:`default_timer` measurements can be affected by other programs running " "on the same machine, so the best thing to do when accurate timing is " @@ -393,7 +395,7 @@ msgstr "" "probablemente suficiente en la mayoría de los casos. Puede usar :func:`time." "process_time` para medir el tiempo de CPU." -#: ../Doc/library/timeit.rst:265 +#: ../Doc/library/timeit.rst:267 msgid "" "There is a certain baseline overhead associated with executing a pass " "statement. The code here doesn't try to hide it, but you should be aware of " @@ -405,11 +407,11 @@ msgstr "" "consciente de ello. La sobrecarga de línea base se puede medir invocando el " "programa sin argumentos y puede diferir entre versiones de Python." -#: ../Doc/library/timeit.rst:274 +#: ../Doc/library/timeit.rst:276 msgid "Examples" msgstr "Ejemplos" -#: ../Doc/library/timeit.rst:276 +#: ../Doc/library/timeit.rst:278 msgid "" "It is possible to provide a setup statement that is executed only once at " "the beginning:" @@ -417,7 +419,7 @@ msgstr "" "Es posible proporcionar una instrucción *setup* que se ejecuta solo una vez " "al inicio:" -#: ../Doc/library/timeit.rst:285 +#: ../Doc/library/timeit.rst:287 msgid "" "In the output, there are three fields. The loop count, which tells you how " "many times the statement body was run per timing loop repetition. The " @@ -434,11 +436,11 @@ msgstr "" "Es decir, el tiempo que tomó la repetición más rápida dividido por el número " "de bucles." -#: ../Doc/library/timeit.rst:300 +#: ../Doc/library/timeit.rst:302 msgid "The same can be done using the :class:`Timer` class and its methods::" msgstr "Se puede hacer lo mismo usando la clase :class:`Timer` y sus métodos::" -#: ../Doc/library/timeit.rst:310 +#: ../Doc/library/timeit.rst:312 msgid "" "The following examples show how to time expressions that contain multiple " "lines. Here we compare the cost of using :func:`hasattr` vs. :keyword:`try`/:" @@ -449,7 +451,7 @@ msgstr "" "frente a :keyword:`try`/:keyword:`except` para probar los atributos de " "objeto faltantes y presentes:" -#: ../Doc/library/timeit.rst:356 +#: ../Doc/library/timeit.rst:358 msgid "" "To give the :mod:`timeit` module access to functions you define, you can " "pass a *setup* parameter which contains an import statement::" @@ -457,7 +459,7 @@ msgstr "" "Para dar al módulo :mod:`timeit` acceso a las funciones que defina, puede " "pasar un parámetro *setup* que contenga una instrucción import::" -#: ../Doc/library/timeit.rst:367 +#: ../Doc/library/timeit.rst:369 msgid "" "Another option is to pass :func:`globals` to the *globals* parameter, which " "will cause the code to be executed within your current global namespace. " @@ -466,3 +468,15 @@ msgstr "" "Otra opción es pasar :func:`globals` al parámetro *globals*, lo que hará que " "el código se ejecute dentro del espacio de nombres global actual. Esto " "puede ser más conveniente que especificar individualmente las importaciones::" + +#: ../Doc/library/timeit.rst:9 +msgid "Benchmarking" +msgstr "" + +#: ../Doc/library/timeit.rst:9 +msgid "Performance" +msgstr "" + +#~ msgid "The default timer, which is always :func:`time.perf_counter`." +#~ msgstr "" +#~ "El temporizador por defecto, que es siempre :func:`time.perf_counter`." diff --git a/library/tk.po b/library/tk.po index f0854848fe..28aa29ceef 100644 --- a/library/tk.po +++ b/library/tk.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-16 21:42+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-07-21 13:40-0300\n" "Last-Translator: \n" -"Language-Team: python-doc-es\n" "Language: es_AR\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" -"Generated-By: Babel 2.9.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/tk.rst:5 msgid "Graphical User Interfaces with Tk" @@ -71,3 +71,20 @@ msgstr "" "hay muchas otras bibliotecas GUI en las que podría estar interesado. La wiki " "de Python enumera varias `GUI frameworks and tools `_ alternativas." + +#: ../Doc/library/tk.rst:7 +msgid "GUI" +msgstr "" + +#: ../Doc/library/tk.rst:7 +#, fuzzy +msgid "Graphical User Interface" +msgstr "Interfaces gráficas de usuario con Tk" + +#: ../Doc/library/tk.rst:7 +msgid "Tkinter" +msgstr "" + +#: ../Doc/library/tk.rst:7 +msgid "Tk" +msgstr "" diff --git a/library/tkinter.po b/library/tkinter.po index 7b0a88fa84..07fc2da1ae 100644 --- a/library/tkinter.po +++ b/library/tkinter.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-06 21:57+0100\n" "Last-Translator: Carlos AlMa \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/tkinter.rst:2 msgid ":mod:`tkinter` --- Python interface to Tcl/Tk" @@ -427,12 +426,13 @@ msgstr "" "tenga habilitada la opción -container." #: ../Doc/library/tkinter.rst:161 +#, fuzzy msgid "" ":class:`Tk` reads and interprets profile files, named :file:`.{className}." "tcl` and :file:`.{baseName}.tcl`, into the Tcl interpreter and calls :func:" "`exec` on the contents of :file:`.{className}.py` and :file:`.{baseName}." "py`. The path for the profile files is the :envvar:`HOME` environment " -"variable or, if that isn't defined, then :attr:`os.curdir`." +"variable or, if that isn't defined, then :data:`os.curdir`." msgstr "" ":class:`Tk` lee e interpreta los archivos de perfil, llamados :file:`. " "{className}.tcl` y :file:`. {baseName}.tcl`, mediante el intérprete Tcl y " @@ -850,10 +850,11 @@ msgid "Understanding How Tkinter Wraps Tcl/Tk" msgstr "Entendiendo como funcionan los empaquetadores de Tcl/Tk" #: ../Doc/library/tkinter.rst:353 +#, fuzzy msgid "" "When your application uses Tkinter's classes and methods, internally Tkinter " "is assembling strings representing Tcl/Tk commands, and executing those " -"commands in the Tcl interpreter attached to your applicaton's :class:`Tk` " +"commands in the Tcl interpreter attached to your application's :class:`Tk` " "instance." msgstr "" "Cuando su aplicación usa las clases y métodos de Tkinter este de forma " @@ -1663,7 +1664,7 @@ msgstr "" msgid "Here are some examples of typical usage::" msgstr "Aquí hay algunos ejemplos típicos::" -#: ../Doc/library/tkinter.rst:789 +#: ../Doc/library/tkinter.rst:789 ../Doc/library/tkinter.rst:791 msgid "Tk Option Data Types" msgstr "Tipos de datos de opciones Tk" @@ -2293,3 +2294,22 @@ msgstr "Anula el registro de un gestor de archivos." #: ../Doc/library/tkinter.rst:1041 msgid "Constants used in the *mask* arguments." msgstr "Constantes utilizadas en los argumentos *mask*." + +#: ../Doc/library/tkinter.rst:637 +msgid "packing (widgets)" +msgstr "" + +#: ../Doc/library/tkinter.rst:750 +#, fuzzy +msgid "window manager (widgets)" +msgstr "El gestor de ventanas" + +#: ../Doc/library/tkinter.rst:867 +#, fuzzy +msgid "bind (widgets)" +msgstr "widgets" + +#: ../Doc/library/tkinter.rst:867 +#, fuzzy +msgid "events (widgets)" +msgstr "widgets" diff --git a/library/tkinter.tix.po b/library/tkinter.tix.po index 788067af16..2031142258 100644 --- a/library/tkinter.tix.po +++ b/library/tkinter.tix.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-10-13 10:00-0500\n" "Last-Translator: Adolfo Hristo David Roque Gámez \n" "Language: es_PE\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/tkinter.tix.rst:2 msgid ":mod:`tkinter.tix` --- Extension widgets for Tk" @@ -781,3 +781,7 @@ msgstr "" "el esquema de colores y conjunto de fuentes usando el método :meth:" "`tix_config` método. En vez de eso, se debe usar el método :meth:" "`tix_resetoptions`." + +#: ../Doc/library/tkinter.tix.rst:11 +msgid "Tix" +msgstr "" diff --git a/library/tkinter.ttk.po b/library/tkinter.ttk.po index 6b3aa3aed7..880d2ba076 100644 --- a/library/tkinter.ttk.po +++ b/library/tkinter.ttk.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-03-13 12:21-0300\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es_ES\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/tkinter.ttk.rst:2 msgid ":mod:`tkinter.ttk` --- Tk themed widgets" @@ -187,7 +186,8 @@ msgid "Standard Options" msgstr "Opciones estándar" #: ../Doc/library/tkinter.ttk.rst:105 -msgid "All the :mod:`ttk` Widgets accepts the following options:" +#, fuzzy +msgid "All the :mod:`ttk` Widgets accept the following options:" msgstr "Todos los widgets :mod:`ttk` aceptan las siguientes opciones:" #: ../Doc/library/tkinter.ttk.rst:110 ../Doc/library/tkinter.ttk.rst:145 @@ -2692,3 +2692,7 @@ msgstr "" "Especifica una lista de elementos para colocar dentro del elemento. Cada " "elemento es una tupla (u otro tipo de secuencia) donde el primer elemento es " "el nombre de diseño y el otro es un `Layout`_." + +#: ../Doc/library/tkinter.ttk.rst:11 +msgid "ttk" +msgstr "" diff --git a/library/token.po b/library/token.po index 4b30331e0a..b541fd6730 100644 --- a/library/token.po +++ b/library/token.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-10-05 17:28+0200\n" "Last-Translator: \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/token.rst:2 msgid ":mod:`token` --- Constants used with Python parse trees" @@ -79,6 +79,198 @@ msgstr "Retorna ``True`` si *x* es el marcador indicando el final del input." msgid "The token constants are:" msgstr "Las constantes de token son:" +#: ../Doc/library/token-list.inc:18 +msgid "Token value for ``\"(\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:22 +msgid "Token value for ``\")\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:26 +msgid "Token value for ``\"[\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:30 +msgid "Token value for ``\"]\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:34 +msgid "Token value for ``\":\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:38 +msgid "Token value for ``\",\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:42 +msgid "Token value for ``\";\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:46 +msgid "Token value for ``\"+\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:50 +msgid "Token value for ``\"-\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:54 +msgid "Token value for ``\"*\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:58 +msgid "Token value for ``\"/\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:62 +msgid "Token value for ``\"|\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:66 +msgid "Token value for ``\"&\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:70 +msgid "Token value for ``\"<\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:74 +msgid "Token value for ``\">\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:78 +msgid "Token value for ``\"=\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:82 +msgid "Token value for ``\".\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:86 +msgid "Token value for ``\"%\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:90 +msgid "Token value for ``\"{\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:94 +msgid "Token value for ``\"}\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:98 +msgid "Token value for ``\"==\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:102 +msgid "Token value for ``\"!=\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:106 +msgid "Token value for ``\"<=\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:110 +msgid "Token value for ``\">=\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:114 +msgid "Token value for ``\"~\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:118 +msgid "Token value for ``\"^\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:122 +msgid "Token value for ``\"<<\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:126 +msgid "Token value for ``\">>\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:130 +msgid "Token value for ``\"**\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:134 +msgid "Token value for ``\"+=\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:138 +msgid "Token value for ``\"-=\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:142 +msgid "Token value for ``\"*=\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:146 +msgid "Token value for ``\"/=\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:150 +msgid "Token value for ``\"%=\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:154 +msgid "Token value for ``\"&=\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:158 +msgid "Token value for ``\"|=\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:162 +msgid "Token value for ``\"^=\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:166 +msgid "Token value for ``\"<<=\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:170 +msgid "Token value for ``\">>=\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:174 +msgid "Token value for ``\"**=\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:178 +msgid "Token value for ``\"//\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:182 +msgid "Token value for ``\"//=\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:186 +msgid "Token value for ``\"@\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:190 +msgid "Token value for ``\"@=\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:194 +msgid "Token value for ``\"->\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:198 +msgid "Token value for ``\"...\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:202 +msgid "Token value for ``\":=\"``." +msgstr "" + +#: ../Doc/library/token-list.inc:206 +msgid "Token value for ``\"!\"``." +msgstr "" + #: ../Doc/library/token.rst:49 msgid "" "The following token type values aren't used by the C tokenizer but are " @@ -87,11 +279,11 @@ msgstr "" "Los siguientes tipos de valores tokens no son usados por el tokenizador C " "pero son necesarios para el modulo :mod:`tokenizador`." -#: ../Doc/library/token.rst:54 +#: ../Doc/library/token.rst:55 msgid "Token value used to indicate a comment." msgstr "Valores token usados para indicar un comentario." -#: ../Doc/library/token.rst:59 +#: ../Doc/library/token.rst:61 msgid "" "Token value used to indicate a non-terminating newline. The :data:`NEWLINE` " "token indicates the end of a logical line of Python code; ``NL`` tokens are " @@ -103,7 +295,7 @@ msgstr "" "tokens ``NL`` son generados cuando una línea lógica de código es continuada " "sobre múltiples líneas físicas." -#: ../Doc/library/token.rst:67 +#: ../Doc/library/token.rst:69 msgid "" "Token value that indicates the encoding used to decode the source bytes into " "text. The first token returned by :func:`tokenize.tokenize` will always be " @@ -113,7 +305,7 @@ msgstr "" "de origen en texto. El primer token retornado por :func:`tokenize.tokenize` " "siempre será un token ``ENCODING``." -#: ../Doc/library/token.rst:75 +#: ../Doc/library/token.rst:77 msgid "" "Token value indicating that a type comment was recognized. Such tokens are " "only produced when :func:`ast.parse()` is invoked with " @@ -123,15 +315,15 @@ msgstr "" "solo son producidos cuando :func:`ast.parse()` es invocado con " "``type_comments=True``." -#: ../Doc/library/token.rst:80 +#: ../Doc/library/token.rst:82 msgid "Added :data:`AWAIT` and :data:`ASYNC` tokens." msgstr "Agregados los tokens :data:`AWAIT` y :data:`ASYNC`." -#: ../Doc/library/token.rst:83 +#: ../Doc/library/token.rst:85 msgid "Added :data:`COMMENT`, :data:`NL` and :data:`ENCODING` tokens." msgstr "Agregados los tokens :data:`COMMENT`, :data:`NL` y :data:`ENCODING`." -#: ../Doc/library/token.rst:86 +#: ../Doc/library/token.rst:88 msgid "" "Removed :data:`AWAIT` and :data:`ASYNC` tokens. \"async\" and \"await\" are " "now tokenized as :data:`NAME` tokens." @@ -139,7 +331,7 @@ msgstr "" "Removidos los tokens :data:`AWAIT` y :data:`ASYNC`. \"async\" y \"await\" " "son ahora tokenizados como :data:`NAME` tokens." -#: ../Doc/library/token.rst:90 +#: ../Doc/library/token.rst:92 msgid "" "Added :data:`TYPE_COMMENT`, :data:`TYPE_IGNORE`, :data:`COLONEQUAL`. Added :" "data:`AWAIT` and :data:`ASYNC` tokens back (they're needed to support " diff --git a/library/tokenize.po b/library/tokenize.po index 98c5ab7584..2a76509610 100644 --- a/library/tokenize.po +++ b/library/tokenize.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-05-05 12:54+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-07-25 21:23+0200\n" +"Last-Translator: Ignasi Fosch \n" +"Language: es\n" "Language-Team: python-doc-es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\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: Ignasi Fosch \n" -"Language: es\n" -"X-Generator: Poedit 2.3.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/tokenize.rst:2 msgid ":mod:`tokenize` --- Tokenizer for Python source" @@ -56,15 +55,24 @@ msgstr "" "determinar usando la propiedad ``exact_type`` en la :term:`named tuple` " "retornada por :func:`tokenize.tokenize`." -#: ../Doc/library/tokenize.rst:26 +#: ../Doc/library/tokenize.rst:28 +msgid "" +"Note that the functions in this module are only designed to parse " +"syntactically valid Python code (code that does not raise when parsed using :" +"func:`ast.parse`). The behavior of the functions in this module is " +"**undefined** when providing invalid Python code and it can change at any " +"point." +msgstr "" + +#: ../Doc/library/tokenize.rst:35 msgid "Tokenizing Input" msgstr "Convirtiendo la entrada en *tokens*" -#: ../Doc/library/tokenize.rst:28 +#: ../Doc/library/tokenize.rst:37 msgid "The primary entry point is a :term:`generator`:" msgstr "El punto de entrada principal es un :term:`generador`:" -#: ../Doc/library/tokenize.rst:32 +#: ../Doc/library/tokenize.rst:41 msgid "" "The :func:`.tokenize` generator requires one argument, *readline*, which " "must be a callable object which provides the same interface as the :meth:`io." @@ -76,7 +84,7 @@ msgstr "" "IOBase.readline` de los objetos archivos. Cada llamada a la función debe " "retornar una línea de entrada como bytes." -#: ../Doc/library/tokenize.rst:37 +#: ../Doc/library/tokenize.rst:46 msgid "" "The generator produces 5-tuples with these members: the token type; the " "token string; a 2-tuple ``(srow, scol)`` of ints specifying the row and " @@ -95,7 +103,7 @@ msgstr "" "retorna como una :term:`named tuple` con los campos: ``type string start end " "line``." -#: ../Doc/library/tokenize.rst:46 +#: ../Doc/library/tokenize.rst:55 msgid "" "The returned :term:`named tuple` has an additional property named " "``exact_type`` that contains the exact operator type for :data:`~token.OP` " @@ -107,15 +115,15 @@ msgstr "" "`~token.OP`. Para todos los otros tipos de token, ``exact_type`` es el valor " "del campo ``type`` de la tupla con su respectivo nombre." -#: ../Doc/library/tokenize.rst:51 +#: ../Doc/library/tokenize.rst:60 msgid "Added support for named tuples." msgstr "Añadido soporte para tuplas con nombre." -#: ../Doc/library/tokenize.rst:54 +#: ../Doc/library/tokenize.rst:63 msgid "Added support for ``exact_type``." msgstr "Añadido soporte para ``exact_type``." -#: ../Doc/library/tokenize.rst:57 +#: ../Doc/library/tokenize.rst:66 msgid "" ":func:`.tokenize` determines the source encoding of the file by looking for " "a UTF-8 BOM or encoding cookie, according to :pep:`263`." @@ -123,12 +131,12 @@ msgstr "" ":func:`tokenize` determina la codificación del fichero buscando una marca " "BOM UTF-8 o una *cookie* de codificación, de acuerdo con :pep:`263`." -#: ../Doc/library/tokenize.rst:62 +#: ../Doc/library/tokenize.rst:71 msgid "Tokenize a source reading unicode strings instead of bytes." msgstr "" "Convertir a tokens una fuente leyendo cadenas unicode en lugar de bytes." -#: ../Doc/library/tokenize.rst:64 +#: ../Doc/library/tokenize.rst:73 msgid "" "Like :func:`.tokenize`, the *readline* argument is a callable returning a " "single line of input. However, :func:`generate_tokens` expects *readline* to " @@ -138,7 +146,7 @@ msgstr "" "una sola línea de entrada. Sin embargo, :func:`generate_tokens` espera que " "*readline* retorne un objeto *str* en lugar de *bytes*." -#: ../Doc/library/tokenize.rst:68 +#: ../Doc/library/tokenize.rst:77 msgid "" "The result is an iterator yielding named tuples, exactly like :func:`." "tokenize`. It does not yield an :data:`~token.ENCODING` token." @@ -146,7 +154,7 @@ msgstr "" "El resultado es un iterador que produce tuplas con nombre, exactamente como :" "func:`.tokenize`. No produce un token :data:`~token.ENCODING`." -#: ../Doc/library/tokenize.rst:71 +#: ../Doc/library/tokenize.rst:80 msgid "" "All constants from the :mod:`token` module are also exported from :mod:" "`tokenize`." @@ -154,7 +162,7 @@ msgstr "" "Todas las constantes del módulo :mod:`token` se exportan también desde :mod:" "`tokenize`." -#: ../Doc/library/tokenize.rst:74 +#: ../Doc/library/tokenize.rst:83 msgid "" "Another function is provided to reverse the tokenization process. This is " "useful for creating tools that tokenize a script, modify the token stream, " @@ -164,7 +172,7 @@ msgstr "" "para crear herramientas que convierten a tokens un script, modificar el " "flujo de token, y escribir el script modificado." -#: ../Doc/library/tokenize.rst:81 +#: ../Doc/library/tokenize.rst:90 msgid "" "Converts tokens back into Python source code. The *iterable* must return " "sequences with at least two elements, the token type and the token string. " @@ -174,7 +182,7 @@ msgstr "" "retornar secuencias con al menos dos elementos, el tipo de *token* y la " "cadena del *token*. Cualquier otro elemento de la secuencia es ignorado." -#: ../Doc/library/tokenize.rst:85 +#: ../Doc/library/tokenize.rst:94 msgid "" "The reconstructed script is returned as a single string. The result is " "guaranteed to tokenize back to match the input so that the conversion is " @@ -189,7 +197,7 @@ msgstr "" "cadena del *token*, ya que el espaciado entre *tokens* (posiciones de " "columna) pueden variar." -#: ../Doc/library/tokenize.rst:91 +#: ../Doc/library/tokenize.rst:100 msgid "" "It returns bytes, encoded using the :data:`~token.ENCODING` token, which is " "the first token sequence output by :func:`.tokenize`. If there is no " @@ -199,7 +207,7 @@ msgstr "" "el primer elemento de la secuencia retornada por :func:`.tokenize`. Si no " "hay un token de codificación en la entrada, retorna una cadena." -#: ../Doc/library/tokenize.rst:96 +#: ../Doc/library/tokenize.rst:105 msgid "" ":func:`.tokenize` needs to detect the encoding of source files it tokenizes. " "The function it uses to do this is available:" @@ -208,7 +216,7 @@ msgstr "" "que convierte a tokens. La función que utiliza para hacer esto está " "disponible como:" -#: ../Doc/library/tokenize.rst:101 +#: ../Doc/library/tokenize.rst:110 msgid "" "The :func:`detect_encoding` function is used to detect the encoding that " "should be used to decode a Python source file. It requires one argument, " @@ -218,7 +226,7 @@ msgstr "" "debería usarse al leer un fichero fuente Python. Requiere un argumento, " "*readline*, del mismo modo que el generador :func:`.tokenize`." -#: ../Doc/library/tokenize.rst:105 +#: ../Doc/library/tokenize.rst:114 msgid "" "It will call readline a maximum of twice, and return the encoding used (as a " "string) and a list of any lines (not decoded from bytes) it has read in." @@ -227,7 +235,7 @@ msgstr "" "usada, como cadena, y una lista del resto de líneas leídas, no " "descodificadas de *bytes*." -#: ../Doc/library/tokenize.rst:109 +#: ../Doc/library/tokenize.rst:118 msgid "" "It detects the encoding from the presence of a UTF-8 BOM or an encoding " "cookie as specified in :pep:`263`. If both a BOM and a cookie are present, " @@ -240,14 +248,14 @@ msgstr "" "Resaltar que si se encuentra la marca BOM, se retornará ``'utf-8-sig'`` como " "codificación." -#: ../Doc/library/tokenize.rst:114 +#: ../Doc/library/tokenize.rst:123 msgid "" "If no encoding is specified, then the default of ``'utf-8'`` will be " "returned." msgstr "" "Si no se especifica una codificación, por defecto se retornará ``'utf-8'``." -#: ../Doc/library/tokenize.rst:117 +#: ../Doc/library/tokenize.rst:126 msgid "" "Use :func:`.open` to open Python source files: it uses :func:" "`detect_encoding` to detect the file encoding." @@ -255,7 +263,7 @@ msgstr "" "Usa :func:`.open` para abrir ficheros fuente Python: Ésta utiliza :func:" "`detect_encoding` para detectar la codificación del fichero." -#: ../Doc/library/tokenize.rst:123 +#: ../Doc/library/tokenize.rst:132 msgid "" "Open a file in read only mode using the encoding detected by :func:" "`detect_encoding`." @@ -263,7 +271,7 @@ msgstr "" "Abrir un fichero en modo sólo lectura usando la codificación detectada por :" "func:`detect_encoding`." -#: ../Doc/library/tokenize.rst:130 +#: ../Doc/library/tokenize.rst:139 msgid "" "Raised when either a docstring or expression that may be split over several " "lines is not completed anywhere in the file, for example::" @@ -271,25 +279,15 @@ msgstr "" "Lanzada cuando una expresión o docstring que puede separarse en más líneas " "no está completa en el fichero, por ejemplo::" -#: ../Doc/library/tokenize.rst:136 +#: ../Doc/library/tokenize.rst:145 msgid "or::" msgstr "o::" -#: ../Doc/library/tokenize.rst:142 -msgid "" -"Note that unclosed single-quoted strings do not cause an error to be raised. " -"They are tokenized as :data:`~token.ERRORTOKEN`, followed by the " -"tokenization of their contents." -msgstr "" -"Destacar que cadenas con comillas simples sin finalizar no lanzan un error. " -"Se convertirán en tokens como :data:`~token.ERRORTOKEN`, seguido de la " -"conversión de su contenido." - -#: ../Doc/library/tokenize.rst:150 +#: ../Doc/library/tokenize.rst:154 msgid "Command-Line Usage" msgstr "Uso como línea de comandos" -#: ../Doc/library/tokenize.rst:154 +#: ../Doc/library/tokenize.rst:158 msgid "" "The :mod:`tokenize` module can be executed as a script from the command " "line. It is as simple as:" @@ -297,19 +295,19 @@ msgstr "" "El módulo :mod:`tokenize` se puede ejecutar como script desde la línea de " "comandos. Es tan simple como:" -#: ../Doc/library/tokenize.rst:161 +#: ../Doc/library/tokenize.rst:165 msgid "The following options are accepted:" msgstr "Se aceptan las siguientes opciones:" -#: ../Doc/library/tokenize.rst:167 +#: ../Doc/library/tokenize.rst:171 msgid "show this help message and exit" msgstr "muestra el mensaje de ayuda y sale" -#: ../Doc/library/tokenize.rst:171 +#: ../Doc/library/tokenize.rst:175 msgid "display token names using the exact type" msgstr "muestra los nombres de token usando el tipo exacto" -#: ../Doc/library/tokenize.rst:173 +#: ../Doc/library/tokenize.rst:177 msgid "" "If :file:`filename.py` is specified its contents are tokenized to stdout. " "Otherwise, tokenization is performed on stdin." @@ -317,22 +315,22 @@ msgstr "" "Si se especifica :file:`filename.py`, se convierte su contenido a tokens por " "la salida estándar. En otro caso, se convierte la entrada estándar." -#: ../Doc/library/tokenize.rst:177 +#: ../Doc/library/tokenize.rst:181 msgid "Examples" msgstr "Ejemplos" -#: ../Doc/library/tokenize.rst:179 +#: ../Doc/library/tokenize.rst:183 msgid "" "Example of a script rewriter that transforms float literals into Decimal " "objects::" msgstr "" "Ejemplo de un script que transforma literales float en objetos Decimal::" -#: ../Doc/library/tokenize.rst:221 +#: ../Doc/library/tokenize.rst:225 msgid "Example of tokenizing from the command line. The script::" msgstr "Ejemplo de conversión desde la línea de comandos. El *script*::" -#: ../Doc/library/tokenize.rst:228 +#: ../Doc/library/tokenize.rst:232 msgid "" "will be tokenized to the following output where the first column is the " "range of the line/column coordinates where the token is found, the second " @@ -343,14 +341,14 @@ msgstr "" "de coordenadas línea/columna donde se encuentra el token, la segunda columna " "es el nombre del token, y la última columna es el valor del token, si lo hay" -#: ../Doc/library/tokenize.rst:256 +#: ../Doc/library/tokenize.rst:260 msgid "" "The exact token type names can be displayed using the :option:`-e` option:" msgstr "" "Los nombres de tipos de token exactos se pueden mostrar con la opción :" "option:`-e`:" -#: ../Doc/library/tokenize.rst:282 +#: ../Doc/library/tokenize.rst:286 msgid "" "Example of tokenizing a file programmatically, reading unicode strings " "instead of bytes with :func:`generate_tokens`::" @@ -358,6 +356,15 @@ msgstr "" "Ejemplo de tokenización de un fichero programáticamente, leyendo cadenas " "unicode en lugar de *bytes* con :func:`generate_tokens`::" -#: ../Doc/library/tokenize.rst:292 +#: ../Doc/library/tokenize.rst:296 msgid "Or reading bytes directly with :func:`.tokenize`::" msgstr "O leyendo *bytes* directamente con :func:`.tokenize`::" + +#~ msgid "" +#~ "Note that unclosed single-quoted strings do not cause an error to be " +#~ "raised. They are tokenized as :data:`~token.ERRORTOKEN`, followed by the " +#~ "tokenization of their contents." +#~ msgstr "" +#~ "Destacar que cadenas con comillas simples sin finalizar no lanzan un " +#~ "error. Se convertirán en tokens como :data:`~token.ERRORTOKEN`, seguido " +#~ "de la conversión de su contenido." diff --git a/library/traceback.po b/library/traceback.po index ba4179c6e1..389c8fc839 100644 --- a/library/traceback.po +++ b/library/traceback.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-26 22:07+0200\n" "Last-Translator: Jaime Resano \n" -"Language-Team: python-doc-es\n" "Language: es_ES\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/traceback.rst:2 msgid ":mod:`traceback` --- Print or retrieve a stack traceback" @@ -46,19 +45,34 @@ msgstr "" #: ../Doc/library/traceback.rst:19 msgid "" -"The module uses traceback objects --- this is the object type that is stored " -"in the :data:`sys.last_traceback` variable and returned as the third item " -"from :func:`sys.exc_info`." +"The module uses traceback objects --- these are objects of type :class:" +"`types.TracebackType`, which are assigned to the ``__traceback__`` field of :" +"class:`BaseException` instances." +msgstr "" + +#: ../Doc/library/traceback.rst:25 +msgid "Module :mod:`faulthandler`" +msgstr "" + +#: ../Doc/library/traceback.rst:25 +msgid "" +"Used to dump Python tracebacks explicitly, on a fault, after a timeout, or " +"on a user signal." +msgstr "" + +#: ../Doc/library/traceback.rst:27 +msgid "Module :mod:`pdb`" msgstr "" -"El módulo utiliza objetos *traceback* --- Este es el tipo de objeto que se " -"almacena en la variable :data:`sys.last_traceback` y es retornada como el " -"tercer elemento de :func:`sys.exc_info`." -#: ../Doc/library/traceback.rst:23 +#: ../Doc/library/traceback.rst:28 +msgid "Interactive source code debugger for Python programs." +msgstr "" + +#: ../Doc/library/traceback.rst:30 msgid "The module defines the following functions:" msgstr "El módulo define las siguientes funciones:" -#: ../Doc/library/traceback.rst:28 +#: ../Doc/library/traceback.rst:34 msgid "" "Print up to *limit* stack trace entries from traceback object *tb* (starting " "from the caller's frame) if *limit* is positive. Otherwise, print the last " @@ -74,11 +88,11 @@ msgstr "" "``None``, la salida va a ``sys.stderr``; de lo contrario, debería ser un " "archivo o un objeto de tipo similar a un archivo para recibir la salida." -#: ../Doc/library/traceback.rst:35 ../Doc/library/traceback.rst:98 +#: ../Doc/library/traceback.rst:41 ../Doc/library/traceback.rst:103 msgid "Added negative *limit* support." msgstr "Soporte para *limit* negativo añadido." -#: ../Doc/library/traceback.rst:42 +#: ../Doc/library/traceback.rst:48 msgid "" "Print exception information and stack trace entries from traceback object " "*tb* to *file*. This differs from :func:`print_tb` in the following ways:" @@ -87,7 +101,7 @@ msgstr "" "objeto *traceback* *tb* a *file*. Esto difiere de :func:`print_tb` de las " "siguientes maneras:" -#: ../Doc/library/traceback.rst:46 +#: ../Doc/library/traceback.rst:52 msgid "" "if *tb* is not ``None``, it prints a header ``Traceback (most recent call " "last):``" @@ -95,12 +109,12 @@ msgstr "" "si *tb* no es ``None``, muestra una cabecera ``Traceback (most recent call " "last):``" -#: ../Doc/library/traceback.rst:49 +#: ../Doc/library/traceback.rst:55 msgid "it prints the exception type and *value* after the stack trace" msgstr "" "imprime el tipo de excepción y *value* después del seguimiento de la pila" -#: ../Doc/library/traceback.rst:53 +#: ../Doc/library/traceback.rst:59 msgid "" "if *type(value)* is :exc:`SyntaxError` and *value* has the appropriate " "format, it prints the line where the syntax error occurred with a caret " @@ -110,7 +124,7 @@ msgstr "" "muestra la línea donde el error sintáctico ha ocurrido con un cursor " "indicando la posición aproximada del error." -#: ../Doc/library/traceback.rst:57 +#: ../Doc/library/traceback.rst:63 msgid "" "Since Python 3.10, instead of passing *value* and *tb*, an exception object " "can be passed as the first argument. If *value* and *tb* are provided, the " @@ -121,7 +135,7 @@ msgstr "" "*tb*, el primer argumento se ignora para proporcionar compatibilidad con " "versiones anteriores." -#: ../Doc/library/traceback.rst:61 +#: ../Doc/library/traceback.rst:67 msgid "" "The optional *limit* argument has the same meaning as for :func:`print_tb`. " "If *chain* is true (the default), then chained exceptions (the :attr:" @@ -135,37 +149,39 @@ msgstr "" "excepción) también se imprimirán, como lo hace el propio intérprete al " "imprimir una excepción no controlada." -#: ../Doc/library/traceback.rst:67 ../Doc/library/traceback.rst:160 +#: ../Doc/library/traceback.rst:73 ../Doc/library/traceback.rst:168 msgid "The *etype* argument is ignored and inferred from the type of *value*." msgstr "El argumento *etype* es ignorado e infiere desde el tipo de *value*." -#: ../Doc/library/traceback.rst:70 ../Doc/library/traceback.rst:147 +#: ../Doc/library/traceback.rst:76 ../Doc/library/traceback.rst:152 msgid "" "The *etype* parameter has been renamed to *exc* and is now positional-only." msgstr "" "El parámetro *etype* ha cambiado de nombre a *exc* y ahora es solo " "posicional." -#: ../Doc/library/traceback.rst:77 +#: ../Doc/library/traceback.rst:83 +#, fuzzy msgid "" -"This is a shorthand for ``print_exception(*sys.exc_info(), limit, file, " +"This is a shorthand for ``print_exception(sys.exception(), limit, file, " "chain)``." msgstr "" "Esto es un atajo para ``print_exception(*sys.exc_info(), limit, file, " "chain)``." -#: ../Doc/library/traceback.rst:83 +#: ../Doc/library/traceback.rst:89 +#, fuzzy msgid "" -"This is a shorthand for ``print_exception(sys.last_type, sys.last_value, sys." -"last_traceback, limit, file, chain)``. In general it will work only after " -"an exception has reached an interactive prompt (see :data:`sys.last_type`)." +"This is a shorthand for ``print_exception(sys.last_exc, limit, file, " +"chain)``. In general it will work only after an exception has reached an " +"interactive prompt (see :data:`sys.last_exc`)." msgstr "" "Esto es un atajo para ``print_exception(sys.last_type, sys.last_value, sys." "last_traceback, limit, file, chain)``. En general, solo funciona después de " "que una excepción ha alcanzado un prompt interactivo (ver :data:`sys." "last_type`)." -#: ../Doc/library/traceback.rst:91 +#: ../Doc/library/traceback.rst:96 msgid "" "Print up to *limit* stack trace entries (starting from the invocation point) " "if *limit* is positive. Otherwise, print the last ``abs(limit)`` entries. " @@ -180,7 +196,7 @@ msgstr "" "especificar un marco de pila alternativo para empezar. El argumento opcional " "*file* tiene el mismo significado que para :func:`print_tb`." -#: ../Doc/library/traceback.rst:104 +#: ../Doc/library/traceback.rst:109 msgid "" "Return a :class:`StackSummary` object representing a list of \"pre-" "processed\" stack trace entries extracted from the traceback object *tb*. " @@ -205,7 +221,7 @@ msgstr "" "una cadena con espacios en blanco iniciales y finales *stripped*; si la " "fuente no está disponible, es ``None``." -#: ../Doc/library/traceback.rst:118 +#: ../Doc/library/traceback.rst:123 msgid "" "Extract the raw traceback from the current stack frame. The return value " "has the same format as for :func:`extract_tb`. The optional *f* and *limit* " @@ -216,7 +232,7 @@ msgstr "" "opcionales *f* y *limit* tienen el mismo significado que para :func:" "`print_stack`." -#: ../Doc/library/traceback.rst:125 +#: ../Doc/library/traceback.rst:130 msgid "" "Given a list of tuples or :class:`FrameSummary` objects as returned by :func:" "`extract_tb` or :func:`extract_stack`, return a list of strings ready for " @@ -233,15 +249,16 @@ msgstr "" "líneas internas también, para aquellos elementos cuya línea de texto de " "origen no es ``None``." -#: ../Doc/library/traceback.rst:135 +#: ../Doc/library/traceback.rst:140 +#, fuzzy msgid "" "Format the exception part of a traceback using an exception value such as " "given by ``sys.last_value``. The return value is a list of strings, each " -"ending in a newline. Normally, the list contains a single string; however, " -"for :exc:`SyntaxError` exceptions, it contains several lines that (when " -"printed) display detailed information about where the syntax error occurred. " -"The message indicating which exception occurred is the always last string in " -"the list." +"ending in a newline. The list contains the exception's message, which is " +"normally a single string; however, for :exc:`SyntaxError` exceptions, it " +"contains several lines that (when printed) display detailed information " +"about where the syntax error occurred. Following the message, the list " +"contains the exception's :attr:`notes `." msgstr "" "Formatee la parte de excepción de un rastreo utilizando un valor de " "excepción como el proporcionado por ``sys.last_value``. El valor de retorno " @@ -251,7 +268,7 @@ msgstr "" "información detallada sobre dónde ocurrió el error de sintaxis. El mensaje " "que indica qué excepción ocurrió es siempre la última cadena de la lista." -#: ../Doc/library/traceback.rst:143 +#: ../Doc/library/traceback.rst:148 msgid "" "Since Python 3.10, instead of passing *value*, an exception object can be " "passed as the first argument. If *value* is provided, the first argument is " @@ -261,7 +278,11 @@ msgstr "" "puede pasar como primer argumento. Si se proporciona *value*, el primer " "argumento se ignora el fin de proporcionar compatibilidad hacia atrás." -#: ../Doc/library/traceback.rst:154 +#: ../Doc/library/traceback.rst:156 +msgid "The returned list now includes any notes attached to the exception." +msgstr "" + +#: ../Doc/library/traceback.rst:162 msgid "" "Format a stack trace and the exception information. The arguments have the " "same meaning as the corresponding arguments to :func:`print_exception`. The " @@ -276,7 +297,7 @@ msgstr "" "estas líneas son concatenadas y mostradas, exactamente el mismo texto es " "mostrado como hace :func:`print_exception`." -#: ../Doc/library/traceback.rst:163 +#: ../Doc/library/traceback.rst:171 msgid "" "This function's behavior and signature were modified to match :func:" "`print_exception`." @@ -284,7 +305,7 @@ msgstr "" "El comportamiento y la firma de esta función se modificaron para coincidir " "con :func:`print_exception`." -#: ../Doc/library/traceback.rst:170 +#: ../Doc/library/traceback.rst:178 msgid "" "This is like ``print_exc(limit)`` but returns a string instead of printing " "to a file." @@ -292,15 +313,15 @@ msgstr "" "Esto es como ``print_exc(limit)`` pero retorna una cadena en lugar de " "imprimirlo en un archivo." -#: ../Doc/library/traceback.rst:176 +#: ../Doc/library/traceback.rst:184 msgid "A shorthand for ``format_list(extract_tb(tb, limit))``." msgstr "Un atajo para ``format_list(extract_tb(tb, limit))``." -#: ../Doc/library/traceback.rst:181 +#: ../Doc/library/traceback.rst:189 msgid "A shorthand for ``format_list(extract_stack(f, limit))``." msgstr "Un atajo para ``format_list(extract_stack(f, limit))``." -#: ../Doc/library/traceback.rst:185 +#: ../Doc/library/traceback.rst:193 msgid "" "Clears the local variables of all the stack frames in a traceback *tb* by " "calling the :meth:`clear` method of each frame object." @@ -308,7 +329,7 @@ msgstr "" "Limpia las variables locales de todos los marcos de pila en un seguimiento " "de pila *tb* llamando al método :meth:`clear` de cada objeto de marco." -#: ../Doc/library/traceback.rst:192 +#: ../Doc/library/traceback.rst:200 msgid "" "Walk a stack following ``f.f_back`` from the given frame, yielding the frame " "and line number for each frame. If *f* is ``None``, the current stack is " @@ -318,7 +339,7 @@ msgstr "" "marco y el número de línea de cada marco. Si *f* es ``None``, la pila actual " "es usada. Este auxiliar es usado con :meth:`StackSummary.extract`." -#: ../Doc/library/traceback.rst:200 +#: ../Doc/library/traceback.rst:208 msgid "" "Walk a traceback following ``tb_next`` yielding the frame and line number " "for each frame. This helper is used with :meth:`StackSummary.extract`." @@ -327,15 +348,15 @@ msgstr "" "el número de línea de cada marco. Este auxiliar es usado con :meth:" "`StackSummary.extract`." -#: ../Doc/library/traceback.rst:205 +#: ../Doc/library/traceback.rst:213 msgid "The module also defines the following classes:" msgstr "El módulo también define las siguientes clases:" -#: ../Doc/library/traceback.rst:208 +#: ../Doc/library/traceback.rst:216 msgid ":class:`TracebackException` Objects" msgstr "Objetos :class:`TracebackException`" -#: ../Doc/library/traceback.rst:212 +#: ../Doc/library/traceback.rst:220 msgid "" ":class:`TracebackException` objects are created from actual exceptions to " "capture data for later printing in a lightweight fashion." @@ -343,7 +364,7 @@ msgstr "" "Los objetos :class:`TracebackException` son creados a partir de excepciones " "reales para capturar datos para su posterior impresión de una manera ligera." -#: ../Doc/library/traceback.rst:217 ../Doc/library/traceback.rst:277 +#: ../Doc/library/traceback.rst:225 ../Doc/library/traceback.rst:319 msgid "" "Capture an exception for later rendering. *limit*, *lookup_lines* and " "*capture_locals* are as for the :class:`StackSummary` class." @@ -351,7 +372,7 @@ msgstr "" "Captura una excepción para su posterior procesado. *limit*, *lookup_lines* y " "*capture_locals* son como para la clase :class:`StackSummary`." -#: ../Doc/library/traceback.rst:220 +#: ../Doc/library/traceback.rst:228 msgid "" "If *compact* is true, only data that is required by :class:" "`TracebackException`'s ``format`` method is saved in the class attributes. " @@ -363,26 +384,50 @@ msgstr "" "clase. En particular, el campo ``__context__`` se calcula solo si " "``__cause__`` es ``None`` y ``__suppress_context__`` es falso." -#: ../Doc/library/traceback.rst:225 ../Doc/library/traceback.rst:280 +#: ../Doc/library/traceback.rst:233 ../Doc/library/traceback.rst:322 msgid "" "Note that when locals are captured, they are also shown in the traceback." msgstr "" "Tenga en cuenta que cuando se capturan locales, también se muestran en el " "rastreo." -#: ../Doc/library/traceback.rst:229 +#: ../Doc/library/traceback.rst:235 +msgid "" +"*max_group_width* and *max_group_depth* control the formatting of exception " +"groups (see :exc:`BaseExceptionGroup`). The depth refers to the nesting " +"level of the group, and the width refers to the size of a single exception " +"group's exceptions array. The formatted output is truncated when either " +"limit is exceeded." +msgstr "" + +#: ../Doc/library/traceback.rst:241 +msgid "Added the *compact* parameter." +msgstr "Se agregó el parámetro *compact*." + +#: ../Doc/library/traceback.rst:244 +msgid "Added the *max_group_width* and *max_group_depth* parameters." +msgstr "" + +#: ../Doc/library/traceback.rst:249 msgid "A :class:`TracebackException` of the original ``__cause__``." msgstr "Una clase :class:`TracebackException` del original ``__cause__``." -#: ../Doc/library/traceback.rst:233 +#: ../Doc/library/traceback.rst:253 msgid "A :class:`TracebackException` of the original ``__context__``." msgstr "Una clase :class:`TracebackException` del original ``__context__``." -#: ../Doc/library/traceback.rst:237 +#: ../Doc/library/traceback.rst:257 +msgid "" +"If ``self`` represents an :exc:`ExceptionGroup`, this field holds a list of :" +"class:`TracebackException` instances representing the nested exceptions. " +"Otherwise it is ``None``." +msgstr "" + +#: ../Doc/library/traceback.rst:265 msgid "The ``__suppress_context__`` value from the original exception." msgstr "El valor ``__suppress_context__`` de la excepción original." -#: ../Doc/library/traceback.rst:241 +#: ../Doc/library/traceback.rst:269 msgid "" "The ``__notes__`` value from the original exception, or ``None`` if the " "exception does not have any notes. If it is not ``None`` is it formatted in " @@ -392,39 +437,56 @@ msgstr "" "excepción no tiene ninguna nota. Si no es ``None`` se formatea en el rastreo " "después de la cadena de texto de la excepción." -#: ../Doc/library/traceback.rst:249 +#: ../Doc/library/traceback.rst:277 msgid "A :class:`StackSummary` representing the traceback." msgstr "Una clase :class:`StackSummary` representando el seguimiento de pila." -#: ../Doc/library/traceback.rst:253 +#: ../Doc/library/traceback.rst:281 msgid "The class of the original traceback." msgstr "La clase del seguimiento de pila original." -#: ../Doc/library/traceback.rst:257 +#: ../Doc/library/traceback.rst:285 msgid "For syntax errors - the file name where the error occurred." msgstr "" "Para errores sintácticos - el nombre del archivo donde el error ha ocurrido." -#: ../Doc/library/traceback.rst:261 +#: ../Doc/library/traceback.rst:289 msgid "For syntax errors - the line number where the error occurred." msgstr "" "Para errores sintácticos - el número de línea donde el error ha ocurrido." -#: ../Doc/library/traceback.rst:265 +#: ../Doc/library/traceback.rst:293 +#, fuzzy +msgid "" +"For syntax errors - the end line number where the error occurred. Can be " +"``None`` if not present." +msgstr "" +"Para errores sintácticos - el número de línea donde el error ha ocurrido." + +#: ../Doc/library/traceback.rst:300 msgid "For syntax errors - the text where the error occurred." msgstr "Para errores sintácticos - el texto donde el error ha ocurrido." -#: ../Doc/library/traceback.rst:269 +#: ../Doc/library/traceback.rst:304 msgid "For syntax errors - the offset into the text where the error occurred." msgstr "" "Para errores sintácticos - el *offset* en el texto donde el error ha " "ocurrido." -#: ../Doc/library/traceback.rst:273 +#: ../Doc/library/traceback.rst:308 +#, fuzzy +msgid "" +"For syntax errors - the end offset into the text where the error occurred. " +"Can be ``None`` if not present." +msgstr "" +"Para errores sintácticos - el *offset* en el texto donde el error ha " +"ocurrido." + +#: ../Doc/library/traceback.rst:315 msgid "For syntax errors - the compiler error message." msgstr "Para errores sintácticos - el mensaje de error del compilador." -#: ../Doc/library/traceback.rst:284 +#: ../Doc/library/traceback.rst:326 msgid "" "Print to *file* (default ``sys.stderr``) the exception information returned " "by :meth:`format`." @@ -432,11 +494,11 @@ msgstr "" "Imprime en *file* (``sys.stderr`` por defecto) la información de la " "excepción retornada por :meth:`format`." -#: ../Doc/library/traceback.rst:291 +#: ../Doc/library/traceback.rst:333 msgid "Format the exception." msgstr "Formatea la excepción." -#: ../Doc/library/traceback.rst:293 +#: ../Doc/library/traceback.rst:335 msgid "" "If *chain* is not ``True``, ``__cause__`` and ``__context__`` will not be " "formatted." @@ -444,7 +506,7 @@ msgstr "" "Si *chain* no es ``True``, ``__cause__`` y ``__context__`` no serán " "formateados." -#: ../Doc/library/traceback.rst:296 +#: ../Doc/library/traceback.rst:338 msgid "" "The return value is a generator of strings, each ending in a newline and " "some containing internal newlines. :func:`~traceback.print_exception` is a " @@ -455,51 +517,45 @@ msgstr "" "print_exception` es un contenedor alrededor de este método que simplemente " "muestra las líneas de un archivo." -#: ../Doc/library/traceback.rst:300 ../Doc/library/traceback.rst:314 -msgid "" -"The message indicating which exception occurred is always the last string in " -"the output." -msgstr "" -"El mensaje que indica qué excepción ocurrió siempre es la última cadena en " -"la salida." - -#: ../Doc/library/traceback.rst:305 +#: ../Doc/library/traceback.rst:344 msgid "Format the exception part of the traceback." msgstr "Formatea la parte de la excepción de un seguimiento de pila." -#: ../Doc/library/traceback.rst:307 +#: ../Doc/library/traceback.rst:346 msgid "The return value is a generator of strings, each ending in a newline." msgstr "" "El valor retornado es un generador de cadenas, donde cada una acaba en una " "nueva línea." -#: ../Doc/library/traceback.rst:309 +#: ../Doc/library/traceback.rst:348 +#, fuzzy msgid "" -"Normally, the generator emits a single string; however, for :exc:" -"`SyntaxError` exceptions, it emits several lines that (when printed) display " -"detailed information about where the syntax error occurred." +"The generator emits the exception's message followed by its notes (if it has " +"any). The exception message is normally a single string; however, for :exc:" +"`SyntaxError` exceptions, it consists of several lines that (when printed) " +"display detailed information about where the syntax error occurred." msgstr "" "Normalmente, el generador emite una sola cadena, sin embargo, para " "excepciones :exc:`SyntaxError`, este emite múltiples líneas que (cuando son " "mostradas) imprimen información detallada sobre dónde ha ocurrido el error " "sintáctico." -#: ../Doc/library/traceback.rst:317 -msgid "Added the *compact* parameter." -msgstr "Se agregó el parámetro *compact*." +#: ../Doc/library/traceback.rst:354 +msgid "The exception's notes are now included in the output." +msgstr "" -#: ../Doc/library/traceback.rst:322 +#: ../Doc/library/traceback.rst:360 msgid ":class:`StackSummary` Objects" msgstr "Objetos :class:`StackSummary`" -#: ../Doc/library/traceback.rst:326 +#: ../Doc/library/traceback.rst:364 msgid "" ":class:`StackSummary` objects represent a call stack ready for formatting." msgstr "" "Los objetos :class:`StackSummary` representan una pila de llamadas lista " "para formatear." -#: ../Doc/library/traceback.rst:332 +#: ../Doc/library/traceback.rst:370 msgid "" "Construct a :class:`StackSummary` object from a frame generator (such as is " "returned by :func:`~traceback.walk_stack` or :func:`~traceback.walk_tb`)." @@ -508,7 +564,7 @@ msgstr "" "como es retornado por :func:`~traceback.walk_stack` o :func:`~traceback." "walk_tb`)." -#: ../Doc/library/traceback.rst:336 +#: ../Doc/library/traceback.rst:374 msgid "" "If *limit* is supplied, only this many frames are taken from *frame_gen*. If " "*lookup_lines* is ``False``, the returned :class:`FrameSummary` objects will " @@ -525,7 +581,13 @@ msgstr "" "locales en cada :class:`FrameSummary` son capturadas como representaciones " "de objetos." -#: ../Doc/library/traceback.rst:346 +#: ../Doc/library/traceback.rst:382 +msgid "" +"Exceptions raised from :func:`repr` on a local variable (when " +"*capture_locals* is ``True``) are no longer propagated to the caller." +msgstr "" + +#: ../Doc/library/traceback.rst:388 msgid "" "Construct a :class:`StackSummary` object from a supplied list of :class:" "`FrameSummary` objects or old-style list of tuples. Each tuple should be a " @@ -536,7 +598,7 @@ msgstr "" "ser una 4-tupla con nombre de archivo, número de líneas, nombre, línea como " "los elementos." -#: ../Doc/library/traceback.rst:352 +#: ../Doc/library/traceback.rst:394 msgid "" "Returns a list of strings ready for printing. Each string in the resulting " "list corresponds to a single frame from the stack. Each string ends in a " @@ -548,7 +610,7 @@ msgstr "" "una nueva línea;las cadenas también pueden contener nuevas líneas internas, " "para aquellos elementos con líneas de texto fuente." -#: ../Doc/library/traceback.rst:357 +#: ../Doc/library/traceback.rst:399 msgid "" "For long sequences of the same frame and line, the first few repetitions are " "shown, followed by a summary line stating the exact number of further " @@ -558,11 +620,11 @@ msgstr "" "repeticiones, seguidas de una línea de resumen que indica el número exacto " "de repeticiones adicionales." -#: ../Doc/library/traceback.rst:361 +#: ../Doc/library/traceback.rst:403 msgid "Long sequences of repeated frames are now abbreviated." msgstr "Las secuencias largas de cuadros repetidos ahora se abrevian." -#: ../Doc/library/traceback.rst:366 +#: ../Doc/library/traceback.rst:408 msgid "" "Returns a string for printing one of the frames involved in the stack. This " "method is called for each :class:`FrameSummary` object to be printed by :" @@ -574,18 +636,18 @@ msgstr "" "imprimido por :meth:`StackSummary.format`. Si retorna ``None``, se omite el " "marco del resultado." -#: ../Doc/library/traceback.rst:375 +#: ../Doc/library/traceback.rst:417 msgid ":class:`FrameSummary` Objects" msgstr "Objetos :class:`FrameSummary`" -#: ../Doc/library/traceback.rst:379 +#: ../Doc/library/traceback.rst:421 msgid "" "A :class:`FrameSummary` object represents a single frame in a traceback." msgstr "" "Los objetos :class:`FrameSummary` representan un único marco en el " "seguimiento de pila." -#: ../Doc/library/traceback.rst:383 +#: ../Doc/library/traceback.rst:425 msgid "" "Represent a single frame in the traceback or stack that is being formatted " "or printed. It may optionally have a stringified version of the frames " @@ -607,11 +669,11 @@ msgstr "" "variables locales opcional y, si se proporciona, las representaciones de " "variables se almacenan en el resumen para su posterior visualización." -#: ../Doc/library/traceback.rst:396 +#: ../Doc/library/traceback.rst:438 msgid "Traceback Examples" msgstr "Ejemplos de seguimiento de pila" -#: ../Doc/library/traceback.rst:398 +#: ../Doc/library/traceback.rst:440 msgid "" "This simple example implements a basic read-eval-print loop, similar to (but " "less useful than) the standard Python interactive interpreter loop. For a " @@ -623,7 +685,7 @@ msgstr "" "estándar de Python. Para una implementación más completa del bucle del " "intérprete, ir al módulo :mod:`code` ::" -#: ../Doc/library/traceback.rst:420 +#: ../Doc/library/traceback.rst:462 msgid "" "The following example demonstrates the different ways to print and format " "the exception and traceback:" @@ -631,11 +693,11 @@ msgstr "" "El siguiente ejemplo demuestra las diferentes manera para mostrar y " "formatear la excepción y el seguimiento de pila:" -#: ../Doc/library/traceback.rst:455 +#: ../Doc/library/traceback.rst:497 msgid "The output for the example would look similar to this:" msgstr "La salida para el ejemplo podría ser similar a esto:" -#: ../Doc/library/traceback.rst:497 +#: ../Doc/library/traceback.rst:539 msgid "" "The following example shows the different ways to print and format the " "stack::" @@ -643,6 +705,39 @@ msgstr "" "El siguiente ejemplo muestra las diferentes maneras de imprimir y formatear " "la pila::" -#: ../Doc/library/traceback.rst:523 +#: ../Doc/library/traceback.rst:565 msgid "This last example demonstrates the final few formatting functions:" msgstr "Este último ejemplo demuestra las últimas funciones de formateo:" + +#: ../Doc/library/traceback.rst:17 +msgid "object" +msgstr "" + +#: ../Doc/library/traceback.rst:17 +#, fuzzy +msgid "traceback" +msgstr "Ejemplos de seguimiento de pila" + +#: ../Doc/library/traceback.rst:57 +msgid "^ (caret)" +msgstr "" + +#: ../Doc/library/traceback.rst:57 +msgid "marker" +msgstr "" + +#~ msgid "" +#~ "The module uses traceback objects --- this is the object type that is " +#~ "stored in the :data:`sys.last_traceback` variable and returned as the " +#~ "third item from :func:`sys.exc_info`." +#~ msgstr "" +#~ "El módulo utiliza objetos *traceback* --- Este es el tipo de objeto que " +#~ "se almacena en la variable :data:`sys.last_traceback` y es retornada como " +#~ "el tercer elemento de :func:`sys.exc_info`." + +#~ msgid "" +#~ "The message indicating which exception occurred is always the last string " +#~ "in the output." +#~ msgstr "" +#~ "El mensaje que indica qué excepción ocurrió siempre es la última cadena " +#~ "en la salida." diff --git a/library/tty.po b/library/tty.po index 0c8c1f64c7..d72a8613de 100644 --- a/library/tty.po +++ b/library/tty.po @@ -1,23 +1,25 @@ # Copyright (C) 2001-2020, Python Software Foundation # This file is distributed under the same license as the Python package. # Maintained by the python-doc-es workteam. -# docs-es@python.org / https://mail.python.org/mailman3/lists/docs-es.python.org/ -# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get the list of volunteers +# docs-es@python.org / +# https://mail.python.org/mailman3/lists/docs-es.python.org/ +# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get +# the list of volunteers # msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-06 11:59-0400\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-02-02 10:07-0300\n" +"Last-Translator: \n" +"Language: es\n" "Language-Team: python-doc-es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: \n" -"Language: es\n" -"X-Generator: Poedit 2.4.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/tty.rst:2 msgid ":mod:`tty` --- Terminal control functions" @@ -47,28 +49,44 @@ msgstr "El módulo :mod:`tty` define las siguientes funciones:" #: ../Doc/library/tty.rst:25 msgid "" +"Convert the tty attribute list *mode*, which is a list like the one returned " +"by :func:`termios.tcgetattr`, to that of a tty in raw mode." +msgstr "" + +#: ../Doc/library/tty.rst:33 +msgid "" +"Convert the tty attribute list *mode*, which is a list like the one returned " +"by :func:`termios.tcgetattr`, to that of a tty in cbreak mode." +msgstr "" + +#: ../Doc/library/tty.rst:41 +#, fuzzy +msgid "" "Change the mode of the file descriptor *fd* to raw. If *when* is omitted, it " "defaults to :const:`termios.TCSAFLUSH`, and is passed to :func:`termios." -"tcsetattr`." +"tcsetattr`. The return value of :func:`termios.tcgetattr` is saved before " +"setting *fd* to raw mode; this value is returned." msgstr "" "Cambia el modo del descriptor de archivo *fd* a *raw*. Si se omite *when*, " "el valor por defecto es :const:`termios.TCSAFLUSH`, que se pasa a :func:" "`termios.tcsetattr`." -#: ../Doc/library/tty.rst:32 +#: ../Doc/library/tty.rst:49 +#, fuzzy msgid "" "Change the mode of file descriptor *fd* to cbreak. If *when* is omitted, it " "defaults to :const:`termios.TCSAFLUSH`, and is passed to :func:`termios." -"tcsetattr`." +"tcsetattr`. The return value of :func:`termios.tcgetattr` is saved before " +"setting *fd* to cbreak mode; this value is returned." msgstr "" "Cambia el modo del descriptor de archivo *fd* a *cbreak*. Si se omite " "*when*, el valor por defecto es :const:`termios.TCSAFLUSH`, que se pasa a :" "func:`termios.tcsetattr`." -#: ../Doc/library/tty.rst:39 +#: ../Doc/library/tty.rst:57 msgid "Module :mod:`termios`" msgstr "Módulo :mod:`termios`" -#: ../Doc/library/tty.rst:40 +#: ../Doc/library/tty.rst:58 msgid "Low-level terminal control interface." msgstr "Interfaz de control de la terminal de bajo nivel." diff --git a/library/turtle.po b/library/turtle.po index 2ac20292b0..32a6e3e290 100644 --- a/library/turtle.po +++ b/library/turtle.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-04 22:07+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es_AR\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/turtle.rst:3 msgid ":mod:`turtle` --- Turtle graphics" @@ -34,170 +34,319 @@ msgid "Introduction" msgstr "Introducción" #: ../Doc/library/turtle.rst:22 +#, fuzzy msgid "" -"Turtle graphics is a popular way for introducing programming to kids. It " -"was part of the original Logo programming language developed by Wally " -"Feurzeig, Seymour Papert and Cynthia Solomon in 1967." +"Turtle graphics is an implementation of `the popular geometric drawing tools " +"introduced in Logo `_, " +"developed by Wally Feurzeig, Seymour Papert and Cynthia Solomon in 1967." msgstr "" "Gráficas Turtle es una forma muy habitual de introducción a la programación " "para niñas y niños. Era parte original del lenguaje de programación Logo, " "desarrollado por Wally Feurzeig, Seymour Papert y Cynthia Solomon en 1967." -#: ../Doc/library/turtle.rst:26 -msgid "" -"Imagine a robotic turtle starting at (0, 0) in the x-y plane. After an " -"``import turtle``, give it the command ``turtle.forward(15)``, and it moves " -"(on-screen!) 15 pixels in the direction it is facing, drawing a line as it " -"moves. Give it the command ``turtle.right(25)``, and it rotates in-place 25 " -"degrees clockwise." -msgstr "" -"Imagina una tortuga robot que empieza en las coordenadas (0, 0) en un plano " -"x-y. Después de un ``import turtle``, dele el comando ``turtle." -"forward(15)``, y se mueve (¡en la pantalla!) 15 pixeles en la dirección en " -"la que se encuentra, dibujando una línea mientras se mueve. Dele el comando " -"``turtle.right(25)``, y rotará en el lugar, 25 grados, en sentido horario." - -#: ../Doc/library/turtle.rst:33 +#: ../Doc/library/turtle.rst:29 msgid "" "Turtle can draw intricate shapes using programs that repeat simple moves." msgstr "" "Turtle puede dibujar figuras intrincadas usando programas que repiten " "movimientos simples." -#: ../Doc/library/turtle.rst:41 +#: ../Doc/library/turtle.rst:35 msgid "" -"By combining together these and similar commands, intricate shapes and " -"pictures can easily be drawn." +"In Python, turtle graphics provides a representation of a physical " +"\"turtle\" (a little robot with a pen) that draws on a sheet of paper on the " +"floor." msgstr "" -"Al combinar estos comandos y otros similares, se pueden dibujar figuras " -"intrincadas y formas." -#: ../Doc/library/turtle.rst:44 +#: ../Doc/library/turtle.rst:38 msgid "" -"The :mod:`turtle` module is an extended reimplementation of the same-named " -"module from the Python standard distribution up to version Python 2.5." +"It's an effective and well-proven way for learners to encounter programming " +"concepts and interaction with software, as it provides instant, visible " +"feedback. It also provides convenient access to graphical output in general." msgstr "" -"El módulo :mod:`turtle` es una reimplementación extendida del mismo módulo " -"de la distribución estándar Python hasta la versión 2.5." -#: ../Doc/library/turtle.rst:47 -#, python-format +#: ../Doc/library/turtle.rst:43 msgid "" -"It tries to keep the merits of the old turtle module and to be (nearly) " -"100% compatible with it. This means in the first place to enable the " -"learning programmer to use all the commands, classes and methods " -"interactively when using the module from within IDLE run with the ``-n`` " -"switch." +"Turtle drawing was originally created as an educational tool, to be used by " +"teachers in the classroom. For the programmer who needs to produce some " +"graphical output it can be a way to do that without the overhead of " +"introducing more complex or external libraries into their work." msgstr "" -"Trata de mantener los méritos del viejo módulo y ser (casi) 100% compatible " -"con él. Esto implica en primer lugar, habilitar al programador que está " -"aprendiendo, el uso de todos los comandos, clases y métodos de forma " -"interactiva cuando usa el módulo desde el IDLE ejecutado con la opción ``-" -"n``." #: ../Doc/library/turtle.rst:52 +msgid "Tutorial" +msgstr "" + +#: ../Doc/library/turtle.rst:54 msgid "" -"The turtle module provides turtle graphics primitives, in both object-" -"oriented and procedure-oriented ways. Because it uses :mod:`tkinter` for " -"the underlying graphics, it needs a version of Python installed with Tk " -"support." +"New users should start here. In this tutorial we'll explore some of the " +"basics of turtle drawing." msgstr "" -"El módulo turtle provee las primitivas gráficas, tanto en orientación " -"procedimental como orientada a objetos. Como usa el módulo :mod:`tkinter` " -"para las gráficas subyacentes, necesita tener instalada una versión de " -"Python con soporte TK." -#: ../Doc/library/turtle.rst:56 -msgid "The object-oriented interface uses essentially two+two classes:" -msgstr "La interface orientada a objetos usa esencialmente clases dos+dos:" +#: ../Doc/library/turtle.rst:59 +#, fuzzy +msgid "Starting a turtle environment" +msgstr "Ajuste y unidades de medida" -#: ../Doc/library/turtle.rst:58 +#: ../Doc/library/turtle.rst:61 +msgid "In a Python shell, import all the objects of the ``turtle`` module::" +msgstr "" + +#: ../Doc/library/turtle.rst:65 msgid "" -"The :class:`TurtleScreen` class defines graphics windows as a playground for " -"the drawing turtles. Its constructor needs a :class:`tkinter.Canvas` or a :" -"class:`ScrolledCanvas` as argument. It should be used when :mod:`turtle` is " -"used as part of some application." +"If you run into a ``No module named '_tkinter'`` error, you'll have to " +"install the :mod:`Tk interface package ` on your system." +msgstr "" + +#: ../Doc/library/turtle.rst:70 +msgid "Basic drawing" +msgstr "" + +#: ../Doc/library/turtle.rst:72 +msgid "Send the turtle forward 100 steps::" msgstr "" -"La clase :class:`TurtleScreen` define una ventana gráfica como base para las " -"tortugas dibujantes. Su constructor necesita una clase :class:`tkinter." -"Canvas` o una a :class:`ScrolledCanvas` como argumento. Se debe usar cuando :" -"mod:`turtle` es usado como parte de una aplicación." -#: ../Doc/library/turtle.rst:63 +#: ../Doc/library/turtle.rst:76 msgid "" -"The function :func:`Screen` returns a singleton object of a :class:" -"`TurtleScreen` subclass. This function should be used when :mod:`turtle` is " -"used as a standalone tool for doing graphics. As a singleton object, " -"inheriting from its class is not possible." +"You should see (most likely, in a new window on your display) a line drawn " +"by the turtle, heading East. Change the direction of the turtle, so that it " +"turns 120 degrees left (anti-clockwise)::" msgstr "" -"La función :func:`Screen` devuelve un objeto *singleton* de la subclase :" -"class:`TurtleScreen`. Esta función debe utilizarse cuando :mod:`turtle` se " -"usa como una herramienta independiente para hacer gráficos. Siendo un objeto " -"singleton, no es posible que tenga herencias de su clase." -#: ../Doc/library/turtle.rst:68 +#: ../Doc/library/turtle.rst:82 +msgid "Let's continue by drawing a triangle::" +msgstr "" + +#: ../Doc/library/turtle.rst:88 msgid "" -"All methods of TurtleScreen/Screen also exist as functions, i.e. as part of " -"the procedure-oriented interface." +"Notice how the turtle, represented by an arrow, points in different " +"directions as you steer it." msgstr "" -"Todos los métodos de TurtleScreen/Screen también existen como funciones. Por " -"ejemplo. como parte de la interface orientada a procedimientos." -#: ../Doc/library/turtle.rst:71 +#: ../Doc/library/turtle.rst:91 msgid "" -":class:`RawTurtle` (alias: :class:`RawPen`) defines Turtle objects which " -"draw on a :class:`TurtleScreen`. Its constructor needs a Canvas, " -"ScrolledCanvas or TurtleScreen as argument, so the RawTurtle objects know " -"where to draw." +"Experiment with those commands, and also with ``backward()`` and ``right()``." msgstr "" -":class:`RawTurtle` (alias: :class:`RawPen`) Define los objetos Turtle con " -"los cuales dibujar con la clase :class:`TurtleScreen`. Su constructor " -"necesita como argumento un *Canvas, ScrolledCanvas o TurtleScreen*, así el " -"objeto *RawTurtle* sabe donde dibujar." -#: ../Doc/library/turtle.rst:75 +#: ../Doc/library/turtle.rst:96 ../Doc/library/turtle.rst:346 +#: ../Doc/library/turtle.rst:1016 +msgid "Pen control" +msgstr "Control del lápiz" + +#: ../Doc/library/turtle.rst:98 msgid "" -"Derived from RawTurtle is the subclass :class:`Turtle` (alias: :class:" -"`Pen`), which draws on \"the\" :class:`Screen` instance which is " -"automatically created, if not already present." +"Try changing the color - for example, ``color('blue')`` - and width of the " +"line - for example, ``width(3)`` - and then drawing again." msgstr "" -"Derivada de *RawTurtle* está la subclase :class:`Turtle` (alias: :class:" -"`Pen`), que dibuja en \"la\" instancia :class:`Screen` que se crea " -"automáticamente, si no está presente." -#: ../Doc/library/turtle.rst:79 +#: ../Doc/library/turtle.rst:101 msgid "" -"All methods of RawTurtle/Turtle also exist as functions, i.e. part of the " -"procedure-oriented interface." +"You can also move the turtle around without drawing, by lifting up the pen: " +"``up()`` before moving. To start drawing again, use ``down()``." msgstr "" -"Todos los métodos de *RawTurtle/Turtle* también existen como funciones. Por " -"ejemplo, como parte de la interface orientada a procedimientos." -#: ../Doc/library/turtle.rst:82 +#: ../Doc/library/turtle.rst:106 +#, fuzzy +msgid "The turtle's position" +msgstr "Movimiento de Turtle" + +#: ../Doc/library/turtle.rst:108 msgid "" -"The procedural interface provides functions which are derived from the " -"methods of the classes :class:`Screen` and :class:`Turtle`. They have the " -"same names as the corresponding methods. A screen object is automatically " -"created whenever a function derived from a Screen method is called. An " -"(unnamed) turtle object is automatically created whenever any of the " -"functions derived from a Turtle method is called." +"Send your turtle back to its starting-point (useful if it has disappeared " +"off-screen)::" msgstr "" -"La interface procedimental provee funciones que son derivadas de los métodos " -"de las clases :class:`Screen` y :class:`Turtle`. Tienen los mismos nombres " -"que los métodos correspondientes. Un objeto *Screen* es creado " -"automáticamente cada vez que una función derivada de un método *Screen* es " -"llamado. Un objeto *Turtle* (innombrado) se crea automáticamente cada vez " -"que se llama a una función derivada de un método *Turtle*." -#: ../Doc/library/turtle.rst:89 +#: ../Doc/library/turtle.rst:113 msgid "" -"To use multiple turtles on a screen one has to use the object-oriented " -"interface." +"The home position is at the center of the turtle's screen. If you ever need " +"to know them, get the turtle's x-y co-ordinates with::" +msgstr "" + +#: ../Doc/library/turtle.rst:118 +msgid "Home is at ``(0, 0)``." +msgstr "" + +#: ../Doc/library/turtle.rst:120 +msgid "" +"And after a while, it will probably help to clear the window so we can start " +"anew::" +msgstr "" + +#: ../Doc/library/turtle.rst:127 +msgid "Making algorithmic patterns" +msgstr "" + +#: ../Doc/library/turtle.rst:129 +msgid "Using loops, it's possible to build up geometric patterns::" +msgstr "" + +#: ../Doc/library/turtle.rst:138 +msgid "\\ - which of course, are limited only by the imagination!" +msgstr "" + +#: ../Doc/library/turtle.rst:140 +msgid "" +"Let's draw the star shape at the top of this page. We want red lines, filled " +"in with yellow::" +msgstr "" + +#: ../Doc/library/turtle.rst:146 +msgid "" +"Just as ``up()`` and ``down()`` determine whether lines will be drawn, " +"filling can be turned on and off::" +msgstr "" + +#: ../Doc/library/turtle.rst:151 +msgid "Next we'll create a loop::" +msgstr "" + +#: ../Doc/library/turtle.rst:159 +msgid "" +"``abs(pos()) < 1`` is a good way to know when the turtle is back at its home " +"position." +msgstr "" + +#: ../Doc/library/turtle.rst:162 +msgid "Finally, complete the filling::" +msgstr "" + +#: ../Doc/library/turtle.rst:166 +msgid "" +"(Note that filling only actually takes place when you give the " +"``end_fill()`` command.)" +msgstr "" + +#: ../Doc/library/turtle.rst:173 +msgid "How to..." +msgstr "" + +#: ../Doc/library/turtle.rst:175 +msgid "This section covers some typical turtle use-cases and approaches." +msgstr "" + +#: ../Doc/library/turtle.rst:179 +msgid "Get started as quickly as possible" +msgstr "" + +#: ../Doc/library/turtle.rst:181 +msgid "" +"One of the joys of turtle graphics is the immediate, visual feedback that's " +"available from simple commands - it's an excellent way to introduce children " +"to programming ideas, with a minimum of overhead (not just children, of " +"course)." +msgstr "" + +#: ../Doc/library/turtle.rst:186 +msgid "" +"The turtle module makes this possible by exposing all its basic " +"functionality as functions, available with ``from turtle import *``. The :" +"ref:`turtle graphics tutorial ` covers this approach." msgstr "" -"Para usar varias tortugas en una pantalla se tiene que usar la interface " -"orientada a objetos." -#: ../Doc/library/turtle.rst:92 +#: ../Doc/library/turtle.rst:190 +msgid "" +"It's worth noting that many of the turtle commands also have even more terse " +"equivalents, such as ``fd()`` for :func:`forward`. These are especially " +"useful when working with learners for whom typing is not a skill." +msgstr "" + +#: ../Doc/library/turtle.rst:196 +msgid "" +"You'll need to have the :mod:`Tk interface package ` installed on " +"your system for turtle graphics to work. Be warned that this is not always " +"straightforward, so check this in advance if you're planning to use turtle " +"graphics with a learner." +msgstr "" + +#: ../Doc/library/turtle.rst:203 +msgid "Use the ``turtle`` module namespace" +msgstr "" + +#: ../Doc/library/turtle.rst:205 +msgid "" +"Using ``from turtle import *`` is convenient - but be warned that it imports " +"a rather large collection of objects, and if you're doing anything but " +"turtle graphics you run the risk of a name conflict (this becomes even more " +"an issue if you're using turtle graphics in a script where other modules " +"might be imported)." +msgstr "" + +#: ../Doc/library/turtle.rst:211 +msgid "" +"The solution is to use ``import turtle`` - ``fd()`` becomes ``turtle.fd()``, " +"``width()`` becomes ``turtle.width()`` and so on. (If typing \"turtle\" over " +"and over again becomes tedious, use for example ``import turtle as t`` " +"instead.)" +msgstr "" + +#: ../Doc/library/turtle.rst:218 +#, fuzzy +msgid "Use turtle graphics in a script" +msgstr "Apaga la ventana gráfica de la tortuga." + +#: ../Doc/library/turtle.rst:220 +msgid "" +"It's recommended to use the ``turtle`` module namespace as described " +"immediately above, for example::" +msgstr "" + +#: ../Doc/library/turtle.rst:232 +msgid "" +"Another step is also required though - as soon as the script ends, Python " +"will also close the turtle's window. Add::" +msgstr "" + +#: ../Doc/library/turtle.rst:237 +msgid "" +"to the end of the script. The script will now wait to be dismissed and will " +"not exit until it is terminated, for example by closing the turtle graphics " +"window." +msgstr "" + +#: ../Doc/library/turtle.rst:243 +msgid "Use object-oriented turtle graphics" +msgstr "" + +#: ../Doc/library/turtle.rst:245 +msgid "" +":ref:`Explanation of the object-oriented interface `" +msgstr "" + +#: ../Doc/library/turtle.rst:247 +msgid "" +"Other than for very basic introductory purposes, or for trying things out as " +"quickly as possible, it's more usual and much more powerful to use the " +"object-oriented approach to turtle graphics. For example, this allows " +"multiple turtles on screen at once." +msgstr "" + +#: ../Doc/library/turtle.rst:252 +msgid "" +"In this approach, the various turtle commands are methods of objects (mostly " +"of ``Turtle`` objects). You *can* use the object-oriented approach in the " +"shell, but it would be more typical in a Python script." +msgstr "" + +#: ../Doc/library/turtle.rst:256 +msgid "The example above then becomes::" +msgstr "" + +#: ../Doc/library/turtle.rst:270 +msgid "" +"Note the last line. ``t.screen`` is an instance of the :class:`Screen` that " +"a Turtle instance exists on; it's created automatically along with the " +"turtle." +msgstr "" + +#: ../Doc/library/turtle.rst:274 +msgid "The turtle's screen can be customised, for example::" +msgstr "" + +#: ../Doc/library/turtle.rst:281 +msgid "Turtle graphics reference" +msgstr "" + +#: ../Doc/library/turtle.rst:285 msgid "" "In the following documentation the argument list for functions is given. " "Methods, of course, have the additional first argument *self* which is " @@ -207,19 +356,15 @@ msgstr "" "las funciones. Los métodos, por su puesto, tienen el argumento principal " "adicional *self* que se omite aquí." -#: ../Doc/library/turtle.rst:98 -msgid "Overview of available Turtle and Screen methods" -msgstr "Reseña de los métodos disponibles para Turtle y *Screen*" - -#: ../Doc/library/turtle.rst:101 +#: ../Doc/library/turtle.rst:291 msgid "Turtle methods" msgstr "Métodos Turtle" -#: ../Doc/library/turtle.rst:132 ../Doc/library/turtle.rst:242 +#: ../Doc/library/turtle.rst:323 ../Doc/library/turtle.rst:433 msgid "Turtle motion" msgstr "Movimiento de Turtle" -#: ../Doc/library/turtle.rst:120 +#: ../Doc/library/turtle.rst:311 msgid "Move and draw" msgstr "Mover y dibujar" @@ -243,6 +388,11 @@ msgstr ":func:`left` | :func:`lt`" msgid ":func:`goto` | :func:`setpos` | :func:`setposition`" msgstr ":func:`goto` | :func:`setpos` | :func:`setposition`" +#: ../Doc/library/turtle.rst +#, fuzzy +msgid ":func:`teleport`" +msgstr ":func:`tilt`" + #: ../Doc/library/turtle.rst msgid ":func:`setx`" msgstr ":func:`setx`" @@ -259,7 +409,7 @@ msgstr ":func:`setheading` | :func:`seth`" msgid ":func:`home`" msgstr ":func:`home`" -#: ../Doc/library/turtle.rst ../Doc/library/turtle.rst:2463 +#: ../Doc/library/turtle.rst ../Doc/library/turtle.rst:2723 msgid ":func:`circle`" msgstr ":func:`circle`" @@ -267,7 +417,7 @@ msgstr ":func:`circle`" msgid ":func:`dot`" msgstr ":func:`dot`" -#: ../Doc/library/turtle.rst ../Doc/library/turtle.rst:2441 +#: ../Doc/library/turtle.rst ../Doc/library/turtle.rst:2701 msgid ":func:`stamp`" msgstr ":func:`stamp`" @@ -287,7 +437,7 @@ msgstr ":func:`undo`" msgid ":func:`speed`" msgstr ":func:`speed`" -#: ../Doc/library/turtle.rst:128 ../Doc/library/turtle.rst:644 +#: ../Doc/library/turtle.rst:319 ../Doc/library/turtle.rst:865 msgid "Tell Turtle's state" msgstr "Mostrar el estado de la tortuga" @@ -315,7 +465,7 @@ msgstr ":func:`heading`" msgid ":func:`distance`" msgstr ":func:`distance`" -#: ../Doc/library/turtle.rst:132 +#: ../Doc/library/turtle.rst:323 msgid "Setting and measurement" msgstr "Ajuste y unidades de medida" @@ -327,11 +477,7 @@ msgstr ":func:`degrees`" msgid ":func:`radians`" msgstr ":func:`radians`" -#: ../Doc/library/turtle.rst:155 ../Doc/library/turtle.rst:795 -msgid "Pen control" -msgstr "Control del lápiz" - -#: ../Doc/library/turtle.rst:140 ../Doc/library/turtle.rst:798 +#: ../Doc/library/turtle.rst:331 ../Doc/library/turtle.rst:1019 msgid "Drawing state" msgstr "Estado de dibujo" @@ -355,7 +501,7 @@ msgstr ":func:`pen`" msgid ":func:`isdown`" msgstr ":func:`isdown`" -#: ../Doc/library/turtle.rst:145 ../Doc/library/turtle.rst:890 +#: ../Doc/library/turtle.rst:336 ../Doc/library/turtle.rst:1111 msgid "Color control" msgstr "Control del color" @@ -371,7 +517,7 @@ msgstr ":func:`pencolor`" msgid ":func:`fillcolor`" msgstr ":func:`fillcolor`" -#: ../Doc/library/turtle.rst:150 ../Doc/library/turtle.rst:1022 +#: ../Doc/library/turtle.rst:341 ../Doc/library/turtle.rst:1243 msgid "Filling" msgstr "Relleno" @@ -387,7 +533,7 @@ msgstr ":func:`begin_fill`" msgid ":func:`end_fill`" msgstr ":func:`end_fill`" -#: ../Doc/library/turtle.rst:155 ../Doc/library/turtle.rst:1069 +#: ../Doc/library/turtle.rst:346 ../Doc/library/turtle.rst:1290 msgid "More drawing control" msgstr "Más controles de dibujo" @@ -403,11 +549,11 @@ msgstr ":func:`clear`" msgid ":func:`write`" msgstr ":func:`write`" -#: ../Doc/library/turtle.rst:172 ../Doc/library/turtle.rst:1115 +#: ../Doc/library/turtle.rst:363 ../Doc/library/turtle.rst:1336 msgid "Turtle state" msgstr "Estado de la Tortuga" -#: ../Doc/library/turtle.rst:161 ../Doc/library/turtle.rst:1118 +#: ../Doc/library/turtle.rst:352 ../Doc/library/turtle.rst:1339 msgid "Visibility" msgstr "Visibilidad" @@ -423,7 +569,7 @@ msgstr ":func:`hideturtle` | :func:`ht`" msgid ":func:`isvisible`" msgstr ":func:`isvisible`" -#: ../Doc/library/turtle.rst:172 ../Doc/library/turtle.rst:1157 +#: ../Doc/library/turtle.rst:363 ../Doc/library/turtle.rst:1378 msgid "Appearance" msgstr "Apariencia" @@ -463,11 +609,11 @@ msgstr ":func:`shapetransform`" msgid ":func:`get_shapepoly`" msgstr ":func:`get_shapepoly`" -#: ../Doc/library/turtle.rst:177 ../Doc/library/turtle.rst:1362 +#: ../Doc/library/turtle.rst:368 ../Doc/library/turtle.rst:1583 msgid "Using events" msgstr "Usando eventos" -#: ../Doc/library/turtle.rst ../Doc/library/turtle.rst:2435 +#: ../Doc/library/turtle.rst ../Doc/library/turtle.rst:2695 msgid ":func:`onclick`" msgstr ":func:`onclick`" @@ -475,11 +621,11 @@ msgstr ":func:`onclick`" msgid ":func:`onrelease`" msgstr ":func:`onrelease`" -#: ../Doc/library/turtle.rst ../Doc/library/turtle.rst:2418 +#: ../Doc/library/turtle.rst ../Doc/library/turtle.rst:2678 msgid ":func:`ondrag`" msgstr ":func:`ondrag`" -#: ../Doc/library/turtle.rst:188 ../Doc/library/turtle.rst:1436 +#: ../Doc/library/turtle.rst:379 ../Doc/library/turtle.rst:1657 msgid "Special Turtle methods" msgstr "Métodos especiales de *Turtle*" @@ -495,7 +641,7 @@ msgstr ":func:`end_poly`" msgid ":func:`get_poly`" msgstr ":func:`get_poly`" -#: ../Doc/library/turtle.rst ../Doc/library/turtle.rst:2454 +#: ../Doc/library/turtle.rst ../Doc/library/turtle.rst:2717 msgid ":func:`clone`" msgstr ":func:`clone`" @@ -515,11 +661,11 @@ msgstr ":func:`setundobuffer`" msgid ":func:`undobufferentries`" msgstr ":func:`undobufferentries`" -#: ../Doc/library/turtle.rst:191 +#: ../Doc/library/turtle.rst:382 msgid "Methods of TurtleScreen/Screen" msgstr "Métodos de TurtleScreen/Screen" -#: ../Doc/library/turtle.rst:199 ../Doc/library/turtle.rst:1590 +#: ../Doc/library/turtle.rst:390 ../Doc/library/turtle.rst:1811 msgid "Window control" msgstr "Control de ventana" @@ -547,7 +693,7 @@ msgstr ":func:`screensize`" msgid ":func:`setworldcoordinates`" msgstr ":func:`setworldcoordinates`" -#: ../Doc/library/turtle.rst:204 ../Doc/library/turtle.rst:1713 +#: ../Doc/library/turtle.rst:395 ../Doc/library/turtle.rst:1934 msgid "Animation control" msgstr "Control de animación" @@ -563,7 +709,7 @@ msgstr ":func:`tracer`" msgid ":func:`update`" msgstr ":func:`update`" -#: ../Doc/library/turtle.rst:212 ../Doc/library/turtle.rst:1766 +#: ../Doc/library/turtle.rst:403 ../Doc/library/turtle.rst:1987 msgid "Using screen events" msgstr "Usando eventos de pantalla" @@ -591,7 +737,7 @@ msgstr ":func:`ontimer`" msgid ":func:`mainloop` | :func:`done`" msgstr ":func:`mainloop` | :func:`done`" -#: ../Doc/library/turtle.rst:222 ../Doc/library/turtle.rst:1911 +#: ../Doc/library/turtle.rst:413 ../Doc/library/turtle.rst:2132 msgid "Settings and special methods" msgstr "Configuración y métodos especiales" @@ -627,7 +773,7 @@ msgstr ":func:`window_height`" msgid ":func:`window_width`" msgstr ":func:`window_width`" -#: ../Doc/library/turtle.rst:226 ../Doc/library/turtle.rst:1875 +#: ../Doc/library/turtle.rst:417 ../Doc/library/turtle.rst:2096 msgid "Input methods" msgstr "Métodos de entrada" @@ -639,7 +785,7 @@ msgstr ":func:`textinput`" msgid ":func:`numinput`" msgstr ":func:`numinput`" -#: ../Doc/library/turtle.rst:233 +#: ../Doc/library/turtle.rst:424 msgid "Methods specific to Screen" msgstr "Métodos específicos para *Screen*" @@ -659,11 +805,11 @@ msgstr ":func:`setup`" msgid ":func:`title`" msgstr ":func:`title`" -#: ../Doc/library/turtle.rst:236 +#: ../Doc/library/turtle.rst:427 msgid "Methods of RawTurtle/Turtle and corresponding functions" msgstr "Métodos de *RawTurtle/Turtle* Y sus correspondientes funciones" -#: ../Doc/library/turtle.rst:238 +#: ../Doc/library/turtle.rst:429 msgid "" "Most of the examples in this section refer to a Turtle instance called " "``turtle``." @@ -675,13 +821,13 @@ msgstr "" msgid "Parameters" msgstr "Parámetros" -#: ../Doc/library/turtle.rst:247 ../Doc/library/turtle.rst:292 -#: ../Doc/library/turtle.rst:317 ../Doc/library/turtle.rst:377 -#: ../Doc/library/turtle.rst:400 ../Doc/library/turtle.rst:423 +#: ../Doc/library/turtle.rst:438 ../Doc/library/turtle.rst:483 +#: ../Doc/library/turtle.rst:508 ../Doc/library/turtle.rst:606 +#: ../Doc/library/turtle.rst:629 ../Doc/library/turtle.rst:652 msgid "a number (integer or float)" msgstr "un número (entero o flotante)" -#: ../Doc/library/turtle.rst:249 +#: ../Doc/library/turtle.rst:440 msgid "" "Move the turtle forward by the specified *distance*, in the direction the " "turtle is headed." @@ -689,13 +835,13 @@ msgstr "" "Mover hacia adelante la tortuga la *ditance* especificada, en la dirección " "en la que la tortuga apunta." -#: ../Doc/library/turtle.rst:269 ../Doc/library/turtle.rst:473 -#: ../Doc/library/turtle.rst:748 ../Doc/library/turtle.rst:1256 -#: ../Doc/library/turtle.rst:1275 +#: ../Doc/library/turtle.rst:460 ../Doc/library/turtle.rst:702 +#: ../Doc/library/turtle.rst:969 ../Doc/library/turtle.rst:1477 +#: ../Doc/library/turtle.rst:1496 msgid "a number" msgstr "un número" -#: ../Doc/library/turtle.rst:271 +#: ../Doc/library/turtle.rst:462 msgid "" "Move the turtle backward by *distance*, opposite to the direction the turtle " "is headed. Do not change the turtle's heading." @@ -703,7 +849,7 @@ msgstr "" "Mover hacia atrás la tortuga la *distance* especificada, opuesta a la " "dirección en que la tortuga apunta. No cambia la dirección de la tortuga." -#: ../Doc/library/turtle.rst:294 +#: ../Doc/library/turtle.rst:485 msgid "" "Turn turtle right by *angle* units. (Units are by default degrees, but can " "be set via the :func:`degrees` and :func:`radians` functions.) Angle " @@ -714,7 +860,7 @@ msgstr "" "través de las funciones :func:`degrees` y :func:`radians`.) La orientación " "de los ángulos depende del modo en que está la tortuga, ver :func:`mode`." -#: ../Doc/library/turtle.rst:319 +#: ../Doc/library/turtle.rst:510 msgid "" "Turn turtle left by *angle* units. (Units are by default degrees, but can " "be set via the :func:`degrees` and :func:`radians` functions.) Angle " @@ -725,15 +871,16 @@ msgstr "" "través de las funciones :func:`degrees` y :func:`radians`.) La orientación " "de los ángulos depende del modo en que está la tortuga, ver :func:`mode`." -#: ../Doc/library/turtle.rst:343 +#: ../Doc/library/turtle.rst:534 msgid "a number or a pair/vector of numbers" msgstr "un número o un par/vector de números" -#: ../Doc/library/turtle.rst:344 +#: ../Doc/library/turtle.rst:535 ../Doc/library/turtle.rst:568 +#: ../Doc/library/turtle.rst:569 msgid "a number or ``None``" msgstr "un número o ``None``" -#: ../Doc/library/turtle.rst:346 +#: ../Doc/library/turtle.rst:537 msgid "" "If *y* is ``None``, *x* must be a pair of coordinates or a :class:`Vec2D` (e." "g. as returned by :func:`pos`)." @@ -741,7 +888,7 @@ msgstr "" "Si *y* es ``None``, *x* debe ser un par de coordenadas o un :class:`Vec2D` " "(ejemplo: según lo devuelto por :func:`pos`)." -#: ../Doc/library/turtle.rst:349 +#: ../Doc/library/turtle.rst:540 msgid "" "Move turtle to an absolute position. If the pen is down, draw line. Do not " "change the turtle's orientation." @@ -749,21 +896,35 @@ msgstr "" "Mueve la tortuga a una posición absoluta. Si el lápiz está bajo, traza una " "linea. No cambia la orientación de la tortuga." -#: ../Doc/library/turtle.rst:379 +#: ../Doc/library/turtle.rst:570 +msgid "a boolean" +msgstr "" + +#: ../Doc/library/turtle.rst:572 +msgid "" +"Move turtle to an absolute position. Unlike goto(x, y), a line will not be " +"drawn. The turtle's orientation does not change. If currently filling, the " +"polygon(s) teleported from will be filled after leaving, and filling will " +"begin again after teleporting. This can be disabled with fill_gap=True, " +"which makes the imaginary line traveled during teleporting act as a fill " +"barrier like in goto(x, y)." +msgstr "" + +#: ../Doc/library/turtle.rst:608 msgid "" "Set the turtle's first coordinate to *x*, leave second coordinate unchanged." msgstr "" "Establece la primera coordenada de la tortuga a *x*, deja la segunda " "coordenada sin cambios." -#: ../Doc/library/turtle.rst:402 +#: ../Doc/library/turtle.rst:631 msgid "" "Set the turtle's second coordinate to *y*, leave first coordinate unchanged." msgstr "" "Establece la segunda coordenada de la tortuga a *y*, deja la primera " "coordenada sin cambios." -#: ../Doc/library/turtle.rst:425 +#: ../Doc/library/turtle.rst:654 msgid "" "Set the orientation of the turtle to *to_angle*. Here are some common " "directions in degrees:" @@ -771,47 +932,47 @@ msgstr "" "Establece la orientación de la tortuga a *to_angle*. Aquí hay algunas " "direcciones comunes en grados:" -#: ../Doc/library/turtle.rst:429 +#: ../Doc/library/turtle.rst:658 msgid "standard mode" msgstr "modo estándar" -#: ../Doc/library/turtle.rst:429 +#: ../Doc/library/turtle.rst:658 msgid "logo mode" msgstr "modo logo" -#: ../Doc/library/turtle.rst:431 +#: ../Doc/library/turtle.rst:660 msgid "0 - east" msgstr "0 - este" -#: ../Doc/library/turtle.rst:431 +#: ../Doc/library/turtle.rst:660 msgid "0 - north" msgstr "0 - norte" -#: ../Doc/library/turtle.rst:432 +#: ../Doc/library/turtle.rst:661 msgid "90 - north" msgstr "90 - norte" -#: ../Doc/library/turtle.rst:432 +#: ../Doc/library/turtle.rst:661 msgid "90 - east" msgstr "90 - este" -#: ../Doc/library/turtle.rst:433 +#: ../Doc/library/turtle.rst:662 msgid "180 - west" msgstr "180 - oeste" -#: ../Doc/library/turtle.rst:433 +#: ../Doc/library/turtle.rst:662 msgid "180 - south" msgstr "180 - sur" -#: ../Doc/library/turtle.rst:434 +#: ../Doc/library/turtle.rst:663 msgid "270 - south" msgstr "270 - sur" -#: ../Doc/library/turtle.rst:434 +#: ../Doc/library/turtle.rst:663 msgid "270 - west" msgstr "270 - oeste" -#: ../Doc/library/turtle.rst:447 +#: ../Doc/library/turtle.rst:676 msgid "" "Move turtle to the origin -- coordinates (0,0) -- and set its heading to its " "start-orientation (which depends on the mode, see :func:`mode`)." @@ -820,15 +981,15 @@ msgstr "" "orientación a la orientación original (que depende del modo, ver :func:" "`mode`)." -#: ../Doc/library/turtle.rst:474 +#: ../Doc/library/turtle.rst:703 msgid "a number (or ``None``)" msgstr "un número (o ``None``)" -#: ../Doc/library/turtle.rst:475 ../Doc/library/turtle.rst:569 +#: ../Doc/library/turtle.rst:704 ../Doc/library/turtle.rst:797 msgid "an integer (or ``None``)" msgstr "un entero (o ``None``)" -#: ../Doc/library/turtle.rst:477 +#: ../Doc/library/turtle.rst:706 msgid "" "Draw a circle with given *radius*. The center is *radius* units left of the " "turtle; *extent* -- an angle -- determines which part of the circle is " @@ -846,7 +1007,7 @@ msgstr "" "*radius* es positivo, si no en dirección horaria. Finalmente la dirección de " "la tortuga es modificada por el aumento de *extent*." -#: ../Doc/library/turtle.rst:485 +#: ../Doc/library/turtle.rst:714 msgid "" "As the circle is approximated by an inscribed regular polygon, *steps* " "determines the number of steps to use. If not given, it will be calculated " @@ -856,15 +1017,15 @@ msgstr "" "determina el número de pasos a usar. Si no se da, será calculado " "automáticamente. Puede ser usado para dibujar polígonos regulares." -#: ../Doc/library/turtle.rst:511 +#: ../Doc/library/turtle.rst:740 msgid "an integer >= 1 (if given)" msgstr "un entero >= 1 (si se da)" -#: ../Doc/library/turtle.rst:512 +#: ../Doc/library/turtle.rst:741 msgid "a colorstring or a numeric color tuple" msgstr "un *colorstring* o una tupla numérica de color" -#: ../Doc/library/turtle.rst:514 +#: ../Doc/library/turtle.rst:743 msgid "" "Draw a circular dot with diameter *size*, using *color*. If *size* is not " "given, the maximum of pensize+4 and 2*pensize is used." @@ -872,7 +1033,7 @@ msgstr "" "Dibuja un punto circular con diámetro *size*, usando *color*. Si *size* no " "se da, el máximo de pensize+4 y 2*pensize es usado." -#: ../Doc/library/turtle.rst:532 +#: ../Doc/library/turtle.rst:761 msgid "" "Stamp a copy of the turtle shape onto the canvas at the current turtle " "position. Return a stamp_id for that stamp, which can be used to delete it " @@ -882,17 +1043,17 @@ msgstr "" "actual. Devuelve un stamp_id por cada estampa, que puede ser usado para " "borrarlo al llamar ``clearstamp(stamp_id)``." -#: ../Doc/library/turtle.rst:547 +#: ../Doc/library/turtle.rst:775 msgid "an integer, must be return value of previous :func:`stamp` call" msgstr "" "un entero, debe devolver el valor de la llamada previa de la función :func:" "`stamp` call" -#: ../Doc/library/turtle.rst:550 +#: ../Doc/library/turtle.rst:778 msgid "Delete stamp with given *stampid*." msgstr "Borra la estampa con el *stampid* dado." -#: ../Doc/library/turtle.rst:571 +#: ../Doc/library/turtle.rst:799 msgid "" "Delete all or first/last *n* of turtle's stamps. If *n* is ``None``, delete " "all stamps, if *n* > 0 delete first *n* stamps, else if *n* < 0 delete last " @@ -902,7 +1063,7 @@ msgstr "" "``None`` , borra todas las estampas, Si *n* *> 0* borra la primera estampa " "*n*, sino y *n* *< 0* borra la última estampa *n*." -#: ../Doc/library/turtle.rst:594 +#: ../Doc/library/turtle.rst:815 msgid "" "Undo (repeatedly) the last turtle action(s). Number of available undo " "actions is determined by the size of the undobuffer." @@ -910,11 +1071,11 @@ msgstr "" "Deshace (repetidamente) la(s) última(s) acción(es) de la tortuga. El número " "de acciones a deshacer es determinado por el tamaño del *undobuffer*." -#: ../Doc/library/turtle.rst:609 +#: ../Doc/library/turtle.rst:830 msgid "an integer in the range 0..10 or a speedstring (see below)" msgstr "un entero en el rango 0..10 o un *speedstring* (ver abajo)" -#: ../Doc/library/turtle.rst:611 +#: ../Doc/library/turtle.rst:832 msgid "" "Set the turtle's speed to an integer value in the range 0..10. If no " "argument is given, return current speed." @@ -922,7 +1083,7 @@ msgstr "" "Establecer la velocidad de la tortuga a un valor entero en el rango 0..10. " "Si no se pasa ningún argumento, vuelve a la velocidad actual." -#: ../Doc/library/turtle.rst:614 +#: ../Doc/library/turtle.rst:835 msgid "" "If input is a number greater than 10 or smaller than 0.5, speed is set to " "0. Speedstrings are mapped to speedvalues as follows:" @@ -931,27 +1092,27 @@ msgstr "" "velocidad se establece a 0. La frase acerca de la velocidad es mapeada a " "valores de velocidad de la siguiente manera:" -#: ../Doc/library/turtle.rst:617 +#: ../Doc/library/turtle.rst:838 msgid "\"fastest\": 0" msgstr "\"fastest\": 0" -#: ../Doc/library/turtle.rst:618 +#: ../Doc/library/turtle.rst:839 msgid "\"fast\": 10" msgstr "\"fast\": 10" -#: ../Doc/library/turtle.rst:619 +#: ../Doc/library/turtle.rst:840 msgid "\"normal\": 6" msgstr "\"normal\": 6" -#: ../Doc/library/turtle.rst:620 +#: ../Doc/library/turtle.rst:841 msgid "\"slow\": 3" msgstr "\"slow\": 3" -#: ../Doc/library/turtle.rst:621 +#: ../Doc/library/turtle.rst:842 msgid "\"slowest\": 1" msgstr "\"slowest\": 1" -#: ../Doc/library/turtle.rst:623 +#: ../Doc/library/turtle.rst:844 msgid "" "Speeds from 1 to 10 enforce increasingly faster animation of line drawing " "and turtle turning." @@ -959,7 +1120,7 @@ msgstr "" "Velocidades de 1 a 10 generan una animación cada vez más rápida al dibujar " "las líneas y en el giro de la tortuga." -#: ../Doc/library/turtle.rst:626 +#: ../Doc/library/turtle.rst:847 msgid "" "Attention: *speed* = 0 means that *no* animation takes place. forward/back " "makes turtle jump and likewise left/right make the turtle turn instantly." @@ -968,22 +1129,22 @@ msgstr "" "*fordward/back* harán que la tortuga salte, de la misma manera que *left/" "right* hará que la tortuga gire instantáneamente." -#: ../Doc/library/turtle.rst:649 +#: ../Doc/library/turtle.rst:870 msgid "" "Return the turtle's current location (x,y) (as a :class:`Vec2D` vector)." msgstr "" "Devuelve la posición actual de la tortuga (x,y) (como un vector :class:" "`Vec2D`)" -#: ../Doc/library/turtle.rst:660 ../Doc/library/turtle.rst:723 +#: ../Doc/library/turtle.rst:881 ../Doc/library/turtle.rst:944 msgid "a number or a pair/vector of numbers or a turtle instance" msgstr "un número o par de vectores numéricos o una instancia de la tortuga" -#: ../Doc/library/turtle.rst:661 ../Doc/library/turtle.rst:724 +#: ../Doc/library/turtle.rst:882 ../Doc/library/turtle.rst:945 msgid "a number if *x* is a number, else ``None``" msgstr "un número si *x* es un número, si no ``None``" -#: ../Doc/library/turtle.rst:663 +#: ../Doc/library/turtle.rst:884 msgid "" "Return the angle between the line from turtle position to position specified " "by (x,y), the vector or the other turtle. This depends on the turtle's " @@ -995,15 +1156,15 @@ msgstr "" "posición inicial de la tortuga, que depende del modo - \"standard\"/" "\"world\" o \"logo\"." -#: ../Doc/library/turtle.rst:677 +#: ../Doc/library/turtle.rst:898 msgid "Return the turtle's x coordinate." msgstr "Devuelve la coordinada *x* de la tortuga." -#: ../Doc/library/turtle.rst:693 +#: ../Doc/library/turtle.rst:914 msgid "Return the turtle's y coordinate." msgstr "Devuelve la coordenada *y* de la tortuga." -#: ../Doc/library/turtle.rst:709 +#: ../Doc/library/turtle.rst:930 msgid "" "Return the turtle's current heading (value depends on the turtle mode, see :" "func:`mode`)." @@ -1011,7 +1172,7 @@ msgstr "" "Devuelve la orientación actual de la tortuga (el valor depende del modo de " "la tortuga, ver :func:`mode`)." -#: ../Doc/library/turtle.rst:726 +#: ../Doc/library/turtle.rst:947 msgid "" "Return the distance from the turtle to (x,y), the given vector, or the given " "other turtle, in turtle step units." @@ -1019,11 +1180,11 @@ msgstr "" "Devuelve la distancia desde la tortuga al vector (x,y) dado, otra instancia " "de la tortuga, el valor es unidad pasos de tortuga." -#: ../Doc/library/turtle.rst:744 +#: ../Doc/library/turtle.rst:965 msgid "Settings for measurement" msgstr "Configuración de las medidas" -#: ../Doc/library/turtle.rst:750 +#: ../Doc/library/turtle.rst:971 msgid "" "Set angle measurement units, i.e. set number of \"degrees\" for a full " "circle. Default value is 360 degrees." @@ -1031,7 +1192,7 @@ msgstr "" "Establece la unidad de medida del ángulo, por ejemplo establece el número de " "\"grados\" para un círculo completo. El valor por defecto es 36 grados." -#: ../Doc/library/turtle.rst:773 +#: ../Doc/library/turtle.rst:994 msgid "" "Set the angle measurement units to radians. Equivalent to ``degrees(2*math." "pi)``." @@ -1039,19 +1200,19 @@ msgstr "" "Establece la unidad de medida del ángulo a radianes. Equivalente a " "``degrees(2*math.pi)``." -#: ../Doc/library/turtle.rst:804 +#: ../Doc/library/turtle.rst:1025 msgid "Pull the pen down -- drawing when moving." msgstr "Baja el lápiz -- dibuja mientras se mueve." -#: ../Doc/library/turtle.rst:811 +#: ../Doc/library/turtle.rst:1032 msgid "Pull the pen up -- no drawing when moving." msgstr "Levanta el lápiz -- no dibuja mientras se mueve." -#: ../Doc/library/turtle.rst:817 +#: ../Doc/library/turtle.rst:1038 msgid "a positive number" msgstr "un número positivo" -#: ../Doc/library/turtle.rst:819 +#: ../Doc/library/turtle.rst:1040 msgid "" "Set the line thickness to *width* or return it. If resizemode is set to " "\"auto\" and turtleshape is a polygon, that polygon is drawn with the same " @@ -1062,17 +1223,17 @@ msgstr "" "con el mismo grosor de línea. Si no se dan argumentos, devuelve el grosor " "del lápiz actual." -#: ../Doc/library/turtle.rst:833 +#: ../Doc/library/turtle.rst:1054 msgid "a dictionary with some or all of the below listed keys" msgstr "un diccionario con algunos o todos las claves listadas debajo" -#: ../Doc/library/turtle.rst:834 +#: ../Doc/library/turtle.rst:1055 msgid "one or more keyword-arguments with the below listed keys as keywords" msgstr "" "uno o más argumentos-palabras claves con las claves listadas debajo como " "palabras claves" -#: ../Doc/library/turtle.rst:836 +#: ../Doc/library/turtle.rst:1057 msgid "" "Return or set the pen's attributes in a \"pen-dictionary\" with the " "following key/value pairs:" @@ -1080,47 +1241,47 @@ msgstr "" "Devuelve o establece los atributos del lápiz en un \"diccionario-lápiz\" con " "el siguiente para de valores/claves:" -#: ../Doc/library/turtle.rst:839 +#: ../Doc/library/turtle.rst:1060 msgid "\"shown\": True/False" msgstr "\"shown\": True/False" -#: ../Doc/library/turtle.rst:840 +#: ../Doc/library/turtle.rst:1061 msgid "\"pendown\": True/False" msgstr "\"pendown\": True/False" -#: ../Doc/library/turtle.rst:841 +#: ../Doc/library/turtle.rst:1062 msgid "\"pencolor\": color-string or color-tuple" msgstr "\"pencolor\": color-string or color-tuple" -#: ../Doc/library/turtle.rst:842 +#: ../Doc/library/turtle.rst:1063 msgid "\"fillcolor\": color-string or color-tuple" msgstr "\"fillcolor\": color-string or color-tuple" -#: ../Doc/library/turtle.rst:843 +#: ../Doc/library/turtle.rst:1064 msgid "\"pensize\": positive number" msgstr "\"pensize\": número positivo" -#: ../Doc/library/turtle.rst:844 +#: ../Doc/library/turtle.rst:1065 msgid "\"speed\": number in range 0..10" msgstr "\"speed\": número en el rango 0..10" -#: ../Doc/library/turtle.rst:845 +#: ../Doc/library/turtle.rst:1066 msgid "\"resizemode\": \"auto\" or \"user\" or \"noresize\"" msgstr "\"resizemode\": \"auto\" or \"user\" or \"noresize\"" -#: ../Doc/library/turtle.rst:846 +#: ../Doc/library/turtle.rst:1067 msgid "\"stretchfactor\": (positive number, positive number)" msgstr "\"stretchfactor\": (número positivo, número positivo)" -#: ../Doc/library/turtle.rst:847 +#: ../Doc/library/turtle.rst:1068 msgid "\"outline\": positive number" msgstr "\"outline\": número positivo" -#: ../Doc/library/turtle.rst:848 +#: ../Doc/library/turtle.rst:1069 msgid "\"tilt\": number" msgstr "\"tilt\": número" -#: ../Doc/library/turtle.rst:850 +#: ../Doc/library/turtle.rst:1071 msgid "" "This dictionary can be used as argument for a subsequent call to :func:`pen` " "to restore the former pen-state. Moreover one or more of these attributes " @@ -1133,23 +1294,23 @@ msgstr "" "puede usarse para establecer diferentes atributos del lápiz en una sola " "definición." -#: ../Doc/library/turtle.rst:876 +#: ../Doc/library/turtle.rst:1097 msgid "Return ``True`` if pen is down, ``False`` if it's up." msgstr "Devuelve ``True`` si el lápiz está abajo, si está arriba ``False``." -#: ../Doc/library/turtle.rst:894 +#: ../Doc/library/turtle.rst:1115 msgid "Return or set the pencolor." msgstr "Devuelve o establece el color del lápiz." -#: ../Doc/library/turtle.rst:896 ../Doc/library/turtle.rst:945 +#: ../Doc/library/turtle.rst:1117 ../Doc/library/turtle.rst:1166 msgid "Four input formats are allowed:" msgstr "Se permiten cuatro formatos de entrada:" -#: ../Doc/library/turtle.rst:901 +#: ../Doc/library/turtle.rst:1122 msgid "``pencolor()``" msgstr "``pencolor()``" -#: ../Doc/library/turtle.rst:899 +#: ../Doc/library/turtle.rst:1120 msgid "" "Return the current pencolor as color specification string or as a tuple (see " "example). May be used as input to another color/pencolor/fillcolor call." @@ -1158,11 +1319,11 @@ msgstr "" "color o como una tupla (ver ejemplo). Puede ser usado como una entrada para " "otra llamada de *color/pencolor/fillcolor*." -#: ../Doc/library/turtle.rst:905 +#: ../Doc/library/turtle.rst:1126 msgid "``pencolor(colorstring)``" msgstr "``pencolor(colorstring)``" -#: ../Doc/library/turtle.rst:904 +#: ../Doc/library/turtle.rst:1125 msgid "" "Set pencolor to *colorstring*, which is a Tk color specification string, " "such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." @@ -1171,11 +1332,11 @@ msgstr "" "especifica un color *Tk*, tales como ``\"red\"``, ``\"yellow\"``, o " "``\"#33cc8c\"``." -#: ../Doc/library/turtle.rst:910 +#: ../Doc/library/turtle.rst:1131 msgid "``pencolor((r, g, b))``" msgstr "``pencolor((r, g, b))``" -#: ../Doc/library/turtle.rst:908 +#: ../Doc/library/turtle.rst:1129 msgid "" "Set pencolor to the RGB color represented by the tuple of *r*, *g*, and " "*b*. Each of *r*, *g*, and *b* must be in the range 0..colormode, where " @@ -1185,11 +1346,11 @@ msgstr "" "*b*. Cada valor *r*, *g*, y *b* debe ser un valor entero en el rango 0.." "colormode, donde colormode es 1.0 o 255 (ver :func:`colormode`)." -#: ../Doc/library/turtle.rst:914 +#: ../Doc/library/turtle.rst:1135 msgid "``pencolor(r, g, b)``" msgstr "``pencolor(r, g, b)``" -#: ../Doc/library/turtle.rst:913 +#: ../Doc/library/turtle.rst:1134 msgid "" "Set pencolor to the RGB color represented by *r*, *g*, and *b*. Each of " "*r*, *g*, and *b* must be in the range 0..colormode." @@ -1197,7 +1358,7 @@ msgstr "" "Establece el color del lápiz al color RGB representado por *r*, *g*, y *b*. " "Cada valor *r*, *g*, y *b* debe estar en el rango 0..colormode." -#: ../Doc/library/turtle.rst:916 +#: ../Doc/library/turtle.rst:1137 msgid "" "If turtleshape is a polygon, the outline of that polygon is drawn with the " "newly set pencolor." @@ -1205,15 +1366,15 @@ msgstr "" "Si *turtleshape* es un polígono, la línea del polígono es dibujado con el " "muevo color de lápiz elegido." -#: ../Doc/library/turtle.rst:943 +#: ../Doc/library/turtle.rst:1164 msgid "Return or set the fillcolor." msgstr "Return or set the fillcolor." -#: ../Doc/library/turtle.rst:950 +#: ../Doc/library/turtle.rst:1171 msgid "``fillcolor()``" msgstr "``fillcolor()``" -#: ../Doc/library/turtle.rst:948 +#: ../Doc/library/turtle.rst:1169 msgid "" "Return the current fillcolor as color specification string, possibly in " "tuple format (see example). May be used as input to another color/pencolor/" @@ -1223,11 +1384,11 @@ msgstr "" "formato de tupla (ver ejemplo). Puede ser usado como entrada de otra llamada " "*color/pencolor/fillcolor*." -#: ../Doc/library/turtle.rst:954 +#: ../Doc/library/turtle.rst:1175 msgid "``fillcolor(colorstring)``" msgstr "``fillcolor(colorstring)``" -#: ../Doc/library/turtle.rst:953 +#: ../Doc/library/turtle.rst:1174 msgid "" "Set fillcolor to *colorstring*, which is a Tk color specification string, " "such as ``\"red\"``, ``\"yellow\"``, or ``\"#33cc8c\"``." @@ -1236,11 +1397,11 @@ msgstr "" "una palabra (en inglés), tales como *\"red\"*, *\"yellow\"*, o " "``\"#33cc8c\"``." -#: ../Doc/library/turtle.rst:959 +#: ../Doc/library/turtle.rst:1180 msgid "``fillcolor((r, g, b))``" msgstr "``fillcolor((r, g, b))``" -#: ../Doc/library/turtle.rst:957 +#: ../Doc/library/turtle.rst:1178 msgid "" "Set fillcolor to the RGB color represented by the tuple of *r*, *g*, and " "*b*. Each of *r*, *g*, and *b* must be in the range 0..colormode, where " @@ -1250,11 +1411,11 @@ msgstr "" "*b*. Cada uno de los valores *r*, *g*, y *b* debe estar en el rango 0.." "colormode, donde *colormode* es 1.0 o 255 (ver :func:`colormode`)." -#: ../Doc/library/turtle.rst:963 +#: ../Doc/library/turtle.rst:1184 msgid "``fillcolor(r, g, b)``" msgstr "``fillcolor(r, g, b)``" -#: ../Doc/library/turtle.rst:962 +#: ../Doc/library/turtle.rst:1183 msgid "" "Set fillcolor to the RGB color represented by *r*, *g*, and *b*. Each of " "*r*, *g*, and *b* must be in the range 0..colormode." @@ -1262,7 +1423,7 @@ msgstr "" "Establece *fillcolor* al color RGB representado por *r*, *g*, y *b*. Cada " "uno de los valores *r*, *g* y *b* debe ser un valor en el rango 0..colormode." -#: ../Doc/library/turtle.rst:965 +#: ../Doc/library/turtle.rst:1186 msgid "" "If turtleshape is a polygon, the interior of that polygon is drawn with the " "newly set fillcolor." @@ -1270,24 +1431,24 @@ msgstr "" "Si *turtleshape* es un polígono, el interior de ese polígono es dibujado con " "el color establecido en *fillcolor*." -#: ../Doc/library/turtle.rst:986 +#: ../Doc/library/turtle.rst:1207 msgid "Return or set pencolor and fillcolor." msgstr "" "Retorna o establece *pencolor* (el color del lápiz) y *fillcolor* (el color " "de relleno)." -#: ../Doc/library/turtle.rst:988 +#: ../Doc/library/turtle.rst:1209 msgid "" "Several input formats are allowed. They use 0 to 3 arguments as follows:" msgstr "" "Se permiten varios formatos de entrada. Usan de 0 a 3 argumentos como se " "muestra a continuación:" -#: ../Doc/library/turtle.rst:994 +#: ../Doc/library/turtle.rst:1215 msgid "``color()``" msgstr "``color()``" -#: ../Doc/library/turtle.rst:992 +#: ../Doc/library/turtle.rst:1213 msgid "" "Return the current pencolor and the current fillcolor as a pair of color " "specification strings or tuples as returned by :func:`pencolor` and :func:" @@ -1297,11 +1458,11 @@ msgstr "" "un par de colores especificados como palabras o tuplas, como devuelven las " "funciones :func:`pencolor` y :func:`fillcolor`." -#: ../Doc/library/turtle.rst:998 +#: ../Doc/library/turtle.rst:1219 msgid "``color(colorstring)``, ``color((r,g,b))``, ``color(r,g,b)``" msgstr "``color(colorstring)``, ``color((r,g,b))``, ``color(r,g,b)``" -#: ../Doc/library/turtle.rst:997 +#: ../Doc/library/turtle.rst:1218 msgid "" "Inputs as in :func:`pencolor`, set both, fillcolor and pencolor, to the " "given value." @@ -1309,13 +1470,13 @@ msgstr "" "Entradas como en :func:`pencolor`, establece al valor dado tanto, " "*fillcolor* como *pencolor*." -#: ../Doc/library/turtle.rst:1002 +#: ../Doc/library/turtle.rst:1223 msgid "" "``color(colorstring1, colorstring2)``, ``color((r1,g1,b1), (r2,g2,b2))``" msgstr "" "``color(colorstring1, colorstring2)``, ``color((r1,g1,b1), (r2,g2,b2))``" -#: ../Doc/library/turtle.rst:1001 +#: ../Doc/library/turtle.rst:1222 msgid "" "Equivalent to ``pencolor(colorstring1)`` and ``fillcolor(colorstring2)`` and " "analogously if the other input format is used." @@ -1323,7 +1484,7 @@ msgstr "" "Equivalente a ``pencolor(colorstring1)`` y ``fillcolor(colorstring2)`` y " "análogamente si se usa el otro formato de entrada." -#: ../Doc/library/turtle.rst:1004 +#: ../Doc/library/turtle.rst:1225 msgid "" "If turtleshape is a polygon, outline and interior of that polygon is drawn " "with the newly set colors." @@ -1331,25 +1492,25 @@ msgstr "" "Si *turtleshape* es un polígono, la línea y el interior de ese polígono e " "dibujado con los nuevos colores que se establecieron." -#: ../Doc/library/turtle.rst:1018 +#: ../Doc/library/turtle.rst:1239 msgid "See also: Screen method :func:`colormode`." msgstr "Ver también: Método *Screeen* :func:`colormode`." -#: ../Doc/library/turtle.rst:1032 +#: ../Doc/library/turtle.rst:1253 msgid "Return fillstate (``True`` if filling, ``False`` else)." msgstr "Devuelve *fillstate* (``True`` si está lleno, sino ``False``)." -#: ../Doc/library/turtle.rst:1047 +#: ../Doc/library/turtle.rst:1268 msgid "To be called just before drawing a shape to be filled." msgstr "Para ser llamada justo antes de dibujar una forma a rellenar." -#: ../Doc/library/turtle.rst:1052 +#: ../Doc/library/turtle.rst:1273 msgid "Fill the shape drawn after the last call to :func:`begin_fill`." msgstr "" "Rellena la forma dibujada después de última llamada a la función :func:" "`begin_fill`." -#: ../Doc/library/turtle.rst:1054 +#: ../Doc/library/turtle.rst:1275 msgid "" "Whether or not overlap regions for self-intersecting polygons or multiple " "shapes are filled depends on the operating system graphics, type of overlap, " @@ -1362,7 +1523,7 @@ msgstr "" "la flecha de la tortuga de arriba, puede ser toda amarilla o tener algunas " "regiones blancas." -#: ../Doc/library/turtle.rst:1073 +#: ../Doc/library/turtle.rst:1294 msgid "" "Delete the turtle's drawings from the screen, re-center the turtle and set " "variables to the default values." @@ -1370,7 +1531,7 @@ msgstr "" "Borra el dibujo de la tortuga de la pantalla, centra la tortuga y establece " "las variables a los valores por defecto." -#: ../Doc/library/turtle.rst:1094 +#: ../Doc/library/turtle.rst:1315 msgid "" "Delete the turtle's drawings from the screen. Do not move turtle. State " "and position of the turtle as well as drawings of other turtles are not " @@ -1380,23 +1541,23 @@ msgstr "" "y posición de la tortuga así como los todos los dibujos de las otras " "tortugas no son afectados." -#: ../Doc/library/turtle.rst:1100 +#: ../Doc/library/turtle.rst:1321 msgid "object to be written to the TurtleScreen" msgstr "objeto que se escribirá en *TurtleScreen*" -#: ../Doc/library/turtle.rst:1101 +#: ../Doc/library/turtle.rst:1322 msgid "True/False" msgstr "True/False" -#: ../Doc/library/turtle.rst:1102 +#: ../Doc/library/turtle.rst:1323 msgid "one of the strings \"left\", \"center\" or right\"" msgstr "una de las frases \"*left*\", \"*center*\" o \"*right*\"" -#: ../Doc/library/turtle.rst:1103 +#: ../Doc/library/turtle.rst:1324 msgid "a triple (fontname, fontsize, fonttype)" msgstr "un trio (nombre de fuente, tamaño de fuente, tipo de fuente)" -#: ../Doc/library/turtle.rst:1105 +#: ../Doc/library/turtle.rst:1326 msgid "" "Write text - the string representation of *arg* - at the current turtle " "position according to *align* (\"left\", \"center\" or \"right\") and with " @@ -1409,7 +1570,7 @@ msgstr "" "lápiz se mueve a la esquina inferior derecha del texto. De forma " "predeterminada, *move* es ``False``." -#: ../Doc/library/turtle.rst:1123 +#: ../Doc/library/turtle.rst:1344 msgid "" "Make the turtle invisible. It's a good idea to do this while you're in the " "middle of doing some complex drawing, because hiding the turtle speeds up " @@ -1419,19 +1580,19 @@ msgstr "" "haciendo dibujos complejos, ya que esconder a la tortuga acelera dibujo de " "manera observable." -#: ../Doc/library/turtle.rst:1136 +#: ../Doc/library/turtle.rst:1357 msgid "Make the turtle visible." msgstr "Hace visible la tortuga." -#: ../Doc/library/turtle.rst:1146 +#: ../Doc/library/turtle.rst:1367 msgid "Return ``True`` if the Turtle is shown, ``False`` if it's hidden." msgstr "Devuelve ``True`` si la tortuga se muestra, ``False`` si está oculta." -#: ../Doc/library/turtle.rst:1161 +#: ../Doc/library/turtle.rst:1382 msgid "a string which is a valid shapename" msgstr "una cadena de caracteres que es un nombre de forma válido" -#: ../Doc/library/turtle.rst:1163 +#: ../Doc/library/turtle.rst:1384 msgid "" "Set turtle shape to shape with given *name* or, if name is not given, return " "name of current shape. Shape with *name* must exist in the TurtleScreen's " @@ -1448,11 +1609,11 @@ msgstr "" "como trabajar con estas formas ver los métodos de Screen :func:" "`register_shape`." -#: ../Doc/library/turtle.rst:1181 +#: ../Doc/library/turtle.rst:1402 msgid "one of the strings \"auto\", \"user\", \"noresize\"" msgstr "una de las cadenas \"*auto*\", \"*user*\", \"*noresize*\"" -#: ../Doc/library/turtle.rst:1183 +#: ../Doc/library/turtle.rst:1404 msgid "" "Set resizemode to one of the values: \"auto\", \"user\", \"noresize\". If " "*rmode* is not given, return current resizemode. Different resizemodes have " @@ -1462,7 +1623,7 @@ msgstr "" "\"*noresize*\". Si *mode* no se aporta, devuelve el actual *resizemode*. " "Distintos *resizemode* tienen los siguientes efectos:" -#: ../Doc/library/turtle.rst:1187 +#: ../Doc/library/turtle.rst:1408 msgid "" "\"auto\": adapts the appearance of the turtle corresponding to the value of " "pensize." @@ -1470,7 +1631,7 @@ msgstr "" "\"*auto*\": adapta la apariencia de la tortuga al correspondiente valor del " "lápiz." -#: ../Doc/library/turtle.rst:1188 +#: ../Doc/library/turtle.rst:1409 msgid "" "\"user\": adapts the appearance of the turtle according to the values of " "stretchfactor and outlinewidth (outline), which are set by :func:`shapesize`." @@ -1479,11 +1640,11 @@ msgstr "" "*sretchfactor* y *outlinewidth* (contorno), que se establece con la función :" "func:`shapesize`." -#: ../Doc/library/turtle.rst:1191 +#: ../Doc/library/turtle.rst:1412 msgid "\"noresize\": no adaption of the turtle's appearance takes place." msgstr "\"*noresize*\": no se adapta la apariencia de la tortuga." -#: ../Doc/library/turtle.rst:1193 +#: ../Doc/library/turtle.rst:1414 msgid "" "``resizemode(\"user\")`` is called by :func:`shapesize` when used with " "arguments." @@ -1491,19 +1652,20 @@ msgstr "" "``resizemode(\"user\")`` es llamado por la función :func:`shapesize` cuando " "se usa con argumentos." -#: ../Doc/library/turtle.rst:1208 ../Doc/library/turtle.rst:1209 -#: ../Doc/library/turtle.rst:1210 +#: ../Doc/library/turtle.rst:1429 ../Doc/library/turtle.rst:1430 +#: ../Doc/library/turtle.rst:1431 msgid "positive number" msgstr "número positivo" -#: ../Doc/library/turtle.rst:1212 +#: ../Doc/library/turtle.rst:1433 +#, fuzzy msgid "" "Return or set the pen's attributes x/y-stretchfactors and/or outline. Set " "resizemode to \"user\". If and only if resizemode is set to \"user\", the " "turtle will be displayed stretched according to its stretchfactors: " "*stretch_wid* is stretchfactor perpendicular to its orientation, " "*stretch_len* is stretchfactor in direction of its orientation, *outline* " -"determines the width of the shapes's outline." +"determines the width of the shape's outline." msgstr "" "Devuelve o establece los atributos del lápiz los factores x/y de " "estiramiento y contorno. Establece *resizemode* a *\"user\"* si y solo si " @@ -1513,15 +1675,15 @@ msgstr "" "estiramiento en dirección a su orientación, *outline* determina el grosor de " "contorno de la forma." -#: ../Doc/library/turtle.rst:1235 ../Doc/library/turtle.rst:1894 -#: ../Doc/library/turtle.rst:1895 ../Doc/library/turtle.rst:1896 +#: ../Doc/library/turtle.rst:1456 ../Doc/library/turtle.rst:2115 +#: ../Doc/library/turtle.rst:2116 ../Doc/library/turtle.rst:2117 msgid "number (optional)" msgstr "número (opcional)" # shearfacto se refiere a una inclinación y estiramiento, gira y estira la # figura por un factor. No se si hay alguna palabra mejor que inclinar o # estirar. -#: ../Doc/library/turtle.rst:1237 +#: ../Doc/library/turtle.rst:1458 msgid "" "Set or return the current shearfactor. Shear the turtleshape according to " "the given shearfactor shear, which is the tangent of the shear angle. Do " @@ -1536,7 +1698,7 @@ msgstr "" "por ejemplo la tangente del ángulo de inclinación, por el cual se cortan la " "líneas paralelas al rumbo de la tortuga." -#: ../Doc/library/turtle.rst:1258 +#: ../Doc/library/turtle.rst:1479 msgid "" "Rotate the turtleshape by *angle* from its current tilt-angle, but do *not* " "change the turtle's heading (direction of movement)." @@ -1544,7 +1706,7 @@ msgstr "" "Rota la forma de la tortuga en *ángulo* desde su ángulo de inclinación " "actual, pero no cambia el rumbo de la tortuga (dirección del movimiento)." -#: ../Doc/library/turtle.rst:1277 +#: ../Doc/library/turtle.rst:1498 msgid "" "Rotate the turtleshape to point in the direction specified by *angle*, " "regardless of its current tilt-angle. *Do not* change the turtle's heading " @@ -1554,13 +1716,13 @@ msgstr "" "*ángulo*, independientemente de su ángulo de dirección actual. No cambia el " "rumbo de la tortuga (dirección de movimiento)." -#: ../Doc/library/turtle.rst:1297 ../Doc/library/turtle.rst:1320 -#: ../Doc/library/turtle.rst:1321 ../Doc/library/turtle.rst:1322 -#: ../Doc/library/turtle.rst:1323 +#: ../Doc/library/turtle.rst:1518 ../Doc/library/turtle.rst:1541 +#: ../Doc/library/turtle.rst:1542 ../Doc/library/turtle.rst:1543 +#: ../Doc/library/turtle.rst:1544 msgid "a number (optional)" msgstr "un número (opcional)" -#: ../Doc/library/turtle.rst:1299 +#: ../Doc/library/turtle.rst:1520 msgid "" "Set or return the current tilt-angle. If angle is given, rotate the " "turtleshape to point in the direction specified by angle, regardless of its " @@ -1577,13 +1739,13 @@ msgstr "" "entre la orientación de la forma de la tortuga y el rumbo de la tortuga (su " "dirección de movimiento)." -#: ../Doc/library/turtle.rst:1325 +#: ../Doc/library/turtle.rst:1546 msgid "Set or return the current transformation matrix of the turtle shape." msgstr "" "Establece o devuelve la matriz de transformación actual de la forma de la " "tortuga." -#: ../Doc/library/turtle.rst:1327 +#: ../Doc/library/turtle.rst:1548 msgid "" "If none of the matrix elements are given, return the transformation matrix " "as a tuple of 4 elements. Otherwise set the given elements and transform the " @@ -1600,7 +1762,7 @@ msgstr "" "se genera un error. Modifique el factor de estiramiento, el factor de corte " "y el ángulo de inclinación de acuerdo con la matriz dada." -#: ../Doc/library/turtle.rst:1349 +#: ../Doc/library/turtle.rst:1570 msgid "" "Return the current shape polygon as tuple of coordinate pairs. This can be " "used to define a new shape or components of a compound shape." @@ -1609,8 +1771,8 @@ msgstr "" "Esto puede ser usado para definir una nueva forma o componentes de una forma " "compuesta." -#: ../Doc/library/turtle.rst:1367 ../Doc/library/turtle.rst:1389 -#: ../Doc/library/turtle.rst:1414 ../Doc/library/turtle.rst:1818 +#: ../Doc/library/turtle.rst:1588 ../Doc/library/turtle.rst:1610 +#: ../Doc/library/turtle.rst:1635 ../Doc/library/turtle.rst:2039 msgid "" "a function with two arguments which will be called with the coordinates of " "the clicked point on the canvas" @@ -1618,15 +1780,15 @@ msgstr "" "una función con dos argumentos que se invocará con las coordenadas del punto " "en el que se hizo clic en el lienzo" -#: ../Doc/library/turtle.rst:1369 ../Doc/library/turtle.rst:1391 -#: ../Doc/library/turtle.rst:1416 ../Doc/library/turtle.rst:1820 +#: ../Doc/library/turtle.rst:1590 ../Doc/library/turtle.rst:1612 +#: ../Doc/library/turtle.rst:1637 ../Doc/library/turtle.rst:2041 msgid "number of the mouse-button, defaults to 1 (left mouse button)" msgstr "" "número del botón del mouse, el valor predeterminado es 1 (botón izquierdo " "del mouse)" -#: ../Doc/library/turtle.rst:1370 ../Doc/library/turtle.rst:1392 -#: ../Doc/library/turtle.rst:1417 ../Doc/library/turtle.rst:1821 +#: ../Doc/library/turtle.rst:1591 ../Doc/library/turtle.rst:1613 +#: ../Doc/library/turtle.rst:1638 ../Doc/library/turtle.rst:2042 msgid "" "``True`` or ``False`` -- if ``True``, a new binding will be added, otherwise " "it will replace a former binding" @@ -1634,7 +1796,7 @@ msgstr "" "``True`` o ``False`` -- si es ``True``, se agrega un nuevo enlace, de lo " "contrario reemplazará el enlace anterior" -#: ../Doc/library/turtle.rst:1373 +#: ../Doc/library/turtle.rst:1594 msgid "" "Bind *fun* to mouse-click events on this turtle. If *fun* is ``None``, " "existing bindings are removed. Example for the anonymous turtle, i.e. the " @@ -1644,7 +1806,7 @@ msgstr "" "*accion* es ``None``, las acciones asociadas son borradas. Ejemplo para la " "tortuga anónima, en la forma procedimental:" -#: ../Doc/library/turtle.rst:1395 +#: ../Doc/library/turtle.rst:1616 msgid "" "Bind *fun* to mouse-button-release events on this turtle. If *fun* is " "``None``, existing bindings are removed." @@ -1652,7 +1814,7 @@ msgstr "" "Enlaza *acciones divertidas* a eventos del tipo soltar botón del mouse en la " "tortuga. SI la *acción* es ``None``, las acciones asociadas son borradas." -#: ../Doc/library/turtle.rst:1420 +#: ../Doc/library/turtle.rst:1641 msgid "" "Bind *fun* to mouse-move events on this turtle. If *fun* is ``None``, " "existing bindings are removed." @@ -1660,7 +1822,7 @@ msgstr "" "Enlaza *acciones divertidas* a eventos en los movimientos del mouse. Si la " "*acción* es ``None``, las acciones asociadas son borradas." -#: ../Doc/library/turtle.rst:1423 +#: ../Doc/library/turtle.rst:1644 msgid "" "Remark: Every sequence of mouse-move-events on a turtle is preceded by a " "mouse-click event on that turtle." @@ -1668,7 +1830,7 @@ msgstr "" "Observación: cada secuencia de los eventos de movimiento del mouse en una " "tortuga es precedida por un evento de click del mouse en esa tortuga." -#: ../Doc/library/turtle.rst:1431 +#: ../Doc/library/turtle.rst:1652 msgid "" "Subsequently, clicking and dragging the Turtle will move it across the " "screen thereby producing handdrawings (if pen is down)." @@ -1676,7 +1838,7 @@ msgstr "" "Subsecuentemente, clickear y arrastrar la Tortuga la moverá a través de la " "pantalla produciendo dibujos a mano alzada (si el lápiz está abajo)." -#: ../Doc/library/turtle.rst:1440 +#: ../Doc/library/turtle.rst:1661 msgid "" "Start recording the vertices of a polygon. Current turtle position is first " "vertex of polygon." @@ -1684,7 +1846,7 @@ msgstr "" "Comienza a grabar los vértices de un polígono. La posición actual de la " "tortuga es el primer vértice del polígono." -#: ../Doc/library/turtle.rst:1446 +#: ../Doc/library/turtle.rst:1667 msgid "" "Stop recording the vertices of a polygon. Current turtle position is last " "vertex of polygon. This will be connected with the first vertex." @@ -1692,11 +1854,11 @@ msgstr "" "Deja de grabar los vértices de un polígono. La posición actual de la tortuga " "es el último vértice del polígono. Esto se conectará con el primer vértice." -#: ../Doc/library/turtle.rst:1452 +#: ../Doc/library/turtle.rst:1673 msgid "Return the last recorded polygon." msgstr "Devuelve el último polígono grabado." -#: ../Doc/library/turtle.rst:1471 +#: ../Doc/library/turtle.rst:1692 msgid "" "Create and return a clone of the turtle with same position, heading and " "turtle properties." @@ -1704,7 +1866,7 @@ msgstr "" "Crea y devuelve un clon de la tortuga con la misma posición, dirección y " "propiedades de la tortuga." -#: ../Doc/library/turtle.rst:1484 +#: ../Doc/library/turtle.rst:1705 msgid "" "Return the Turtle object itself. Only reasonable use: as a function to " "return the \"anonymous turtle\":" @@ -1714,7 +1876,7 @@ msgstr "" # Return the TurtleScreen object the turtle is drawing on. # no se si "sobre el cual" es la traducción adecuada. -#: ../Doc/library/turtle.rst:1498 +#: ../Doc/library/turtle.rst:1719 msgid "" "Return the :class:`TurtleScreen` object the turtle is drawing on. " "TurtleScreen methods can then be called for that object." @@ -1723,11 +1885,11 @@ msgstr "" "dibujando. Los métodos *TurtleScreen* luego pueden ser llamados para ese " "objeto." -#: ../Doc/library/turtle.rst:1512 +#: ../Doc/library/turtle.rst:1733 msgid "an integer or ``None``" msgstr "un entero o ``None``" -#: ../Doc/library/turtle.rst:1514 +#: ../Doc/library/turtle.rst:1735 msgid "" "Set or disable undobuffer. If *size* is an integer, an empty undobuffer of " "given size is installed. *size* gives the maximum number of turtle actions " @@ -1740,15 +1902,15 @@ msgstr "" "método/función :func:`undo`. Si *size* es ``None``, el búfer para deshacer " "está deshabilitado." -#: ../Doc/library/turtle.rst:1527 +#: ../Doc/library/turtle.rst:1748 msgid "Return number of entries in the undobuffer." msgstr "Devuelve el número de entradas en el buffer para deshacer acciones." -#: ../Doc/library/turtle.rst:1540 +#: ../Doc/library/turtle.rst:1761 msgid "Compound shapes" msgstr "Formas compuestas" -#: ../Doc/library/turtle.rst:1542 +#: ../Doc/library/turtle.rst:1763 msgid "" "To use compound turtle shapes, which consist of several polygons of " "different color, you must use the helper class :class:`Shape` explicitly as " @@ -1758,27 +1920,28 @@ msgstr "" "de diferentes colores, deberá usar la clase de ayuda :class:`Shape` " "explícitamente como se describe debajo:" -#: ../Doc/library/turtle.rst:1546 +#: ../Doc/library/turtle.rst:1767 msgid "Create an empty Shape object of type \"compound\"." msgstr "Crear una objeto de forma vacía del tipo *compound*." -#: ../Doc/library/turtle.rst:1547 +#: ../Doc/library/turtle.rst:1768 +#, fuzzy msgid "" -"Add as many components to this object as desired, using the :meth:" -"`addcomponent` method." +"Add as many components to this object as desired, using the :meth:`~Shape." +"addcomponent` method." msgstr "" "Agregar todos los componentes deseados a este objeto, usando el método :meth:" "`addcomponent`." -#: ../Doc/library/turtle.rst:1550 +#: ../Doc/library/turtle.rst:1771 msgid "For example:" msgstr "Por ejemplo:" -#: ../Doc/library/turtle.rst:1561 +#: ../Doc/library/turtle.rst:1782 msgid "Now add the Shape to the Screen's shapelist and use it:" msgstr "Ahora agregar la forma a la lista de formas de la pantalla y úsela:" -#: ../Doc/library/turtle.rst:1572 +#: ../Doc/library/turtle.rst:1793 msgid "" "The :class:`Shape` class is used internally by the :func:`register_shape` " "method in different ways. The application programmer has to deal with the " @@ -1789,11 +1952,11 @@ msgstr "" "clase *Shape* ¡solo cuando use formas compuestas como las que se mostraron " "arriba!" -#: ../Doc/library/turtle.rst:1578 +#: ../Doc/library/turtle.rst:1799 msgid "Methods of TurtleScreen/Screen and corresponding functions" msgstr "Métodos de *TurtleScreen/Screen* y sus correspondientes funciones" -#: ../Doc/library/turtle.rst:1580 +#: ../Doc/library/turtle.rst:1801 msgid "" "Most of the examples in this section refer to a TurtleScreen instance called " "``screen``." @@ -1801,7 +1964,7 @@ msgstr "" "La mayoría de los ejemplos en esta sección se refieren a la instancia de " "*TurtleScreen* llamada ``screen``." -#: ../Doc/library/turtle.rst:1594 +#: ../Doc/library/turtle.rst:1815 msgid "" "a color string or three numbers in the range 0..colormode or a 3-tuple of " "such numbers" @@ -1809,15 +1972,15 @@ msgstr "" "una cadena de color o tres números en el rango 0..*colormode* o una tupla de " "3 de esos números" -#: ../Doc/library/turtle.rst:1598 +#: ../Doc/library/turtle.rst:1819 msgid "Set or return background color of the TurtleScreen." msgstr "Establece o devuelve el color de fondo de *TurtleScreen*." -#: ../Doc/library/turtle.rst:1613 +#: ../Doc/library/turtle.rst:1834 msgid "a string, name of a gif-file or ``\"nopic\"``, or ``None``" msgstr "una cadena, nombre o archivo gif o ``\"nopic\"``, o ``None``" -#: ../Doc/library/turtle.rst:1615 +#: ../Doc/library/turtle.rst:1836 msgid "" "Set background image or return name of current backgroundimage. If " "*picname* is a filename, set the corresponding image as background. If " @@ -1830,7 +1993,7 @@ msgstr "" "de fondo, si hay alguna presente. Si *picname* es ``None``, devuelve el " "nombre de archivo de la imagen de fondo actual. ::" -#: ../Doc/library/turtle.rst:1631 +#: ../Doc/library/turtle.rst:1852 msgid "" "This TurtleScreen method is available as a global function only under the " "name ``clearscreen``. The global function ``clear`` is a different one " @@ -1840,7 +2003,7 @@ msgstr "" "bajo el nombre ``clearscreen``. La función global ``clear`` es otra, " "derivada del método de *Turtle* ``clear``." -#: ../Doc/library/turtle.rst:1638 +#: ../Doc/library/turtle.rst:1859 msgid "" "Delete all drawings and all turtles from the TurtleScreen. Reset the now " "empty TurtleScreen to its initial state: white background, no background " @@ -1850,7 +2013,7 @@ msgstr "" "Reinicia la ahora vacía pantalla de la tortuga a su estado inicial: fondo " "blanco, sin imagen de fondo, sin enlaces a eventos o seguimientos." -#: ../Doc/library/turtle.rst:1647 +#: ../Doc/library/turtle.rst:1868 msgid "" "This TurtleScreen method is available as a global function only under the " "name ``resetscreen``. The global function ``reset`` is another one derived " @@ -1860,23 +2023,23 @@ msgstr "" "el nombre ``resetscreen``. La función global ``reset`` es otra, derivada del " "método *Turtle* ``reset``." -#: ../Doc/library/turtle.rst:1654 +#: ../Doc/library/turtle.rst:1875 msgid "Reset all Turtles on the Screen to their initial state." msgstr "Reinicia todas las tortugas de la pantalla a su estado inicial." -#: ../Doc/library/turtle.rst:1659 +#: ../Doc/library/turtle.rst:1880 msgid "positive integer, new width of canvas in pixels" msgstr "entero positivo, nueva anchura del lienzo en pixeles" -#: ../Doc/library/turtle.rst:1660 +#: ../Doc/library/turtle.rst:1881 msgid "positive integer, new height of canvas in pixels" msgstr "entero positivo, nueva altura del lienzo en pixeles" -#: ../Doc/library/turtle.rst:1661 +#: ../Doc/library/turtle.rst:1882 msgid "colorstring or color-tuple, new background color" msgstr "*colorstrng* o tupla de color, muevo color de fondo" -#: ../Doc/library/turtle.rst:1663 +#: ../Doc/library/turtle.rst:1884 msgid "" "If no arguments are given, return current (canvaswidth, canvasheight). Else " "resize the canvas the turtles are drawing on. Do not alter the drawing " @@ -1890,27 +2053,27 @@ msgstr "" "desplazamiento. Con este método, se pueden hacer visibles aquellas partes de " "un dibujo que antes estaban fuera del lienzo." -#: ../Doc/library/turtle.rst:1675 +#: ../Doc/library/turtle.rst:1896 msgid "e.g. to search for an erroneously escaped turtle ;-)" msgstr "ej. buscar una tortuga que se escapó por error ;-)" -#: ../Doc/library/turtle.rst:1680 +#: ../Doc/library/turtle.rst:1901 msgid "a number, x-coordinate of lower left corner of canvas" msgstr "un número, coordenada x de la esquina inferior izquierda del lienzo" -#: ../Doc/library/turtle.rst:1681 +#: ../Doc/library/turtle.rst:1902 msgid "a number, y-coordinate of lower left corner of canvas" msgstr "un número, coordenada y de la esquina inferior izquierda del lienzo" -#: ../Doc/library/turtle.rst:1682 +#: ../Doc/library/turtle.rst:1903 msgid "a number, x-coordinate of upper right corner of canvas" msgstr "un número, coordenada x de la esquina superior derecha del lienzo" -#: ../Doc/library/turtle.rst:1683 +#: ../Doc/library/turtle.rst:1904 msgid "a number, y-coordinate of upper right corner of canvas" msgstr "un número, coordenada z de la esquina superior derecha del lienzo" -#: ../Doc/library/turtle.rst:1685 +#: ../Doc/library/turtle.rst:1906 msgid "" "Set up user-defined coordinate system and switch to mode \"world\" if " "necessary. This performs a ``screen.reset()``. If mode \"world\" is " @@ -1920,7 +2083,7 @@ msgstr "" "es necesario. Esto realiza un ``screen.reset()``. Si el modo *world* ya está " "activo, todos los dibujos se re dibujan de acuerdo a las nuevas coordenadas." -#: ../Doc/library/turtle.rst:1689 +#: ../Doc/library/turtle.rst:1910 msgid "" "**ATTENTION**: in user-defined coordinate systems angles may appear " "distorted." @@ -1928,11 +2091,11 @@ msgstr "" "**ATENCIÓN**: en los sistemas de coordenadas definidos por el usuario, los " "ángulos pueden aparecer distorsionados." -#: ../Doc/library/turtle.rst:1717 +#: ../Doc/library/turtle.rst:1938 msgid "positive integer" msgstr "entero positivo" -#: ../Doc/library/turtle.rst:1719 +#: ../Doc/library/turtle.rst:1940 msgid "" "Set or return the drawing *delay* in milliseconds. (This is approximately " "the time interval between two consecutive canvas updates.) The longer the " @@ -1943,16 +2106,16 @@ msgstr "" "consecutivas del lienzo). Mientras más largo sea el retraso, más lenta la " "animación." -#: ../Doc/library/turtle.rst:1723 +#: ../Doc/library/turtle.rst:1944 msgid "Optional argument:" msgstr "Argumento opcional:" -#: ../Doc/library/turtle.rst:1737 ../Doc/library/turtle.rst:1738 +#: ../Doc/library/turtle.rst:1958 ../Doc/library/turtle.rst:1959 msgid "nonnegative integer" msgstr "entero no negativo" # n-th lo enconté como enésima, pero no se si se entiende la frase -#: ../Doc/library/turtle.rst:1740 +#: ../Doc/library/turtle.rst:1961 msgid "" "Turn turtle animation on/off and set delay for update drawings. If *n* is " "given, only each n-th regular screen update is really performed. (Can be " @@ -1967,17 +2130,17 @@ msgstr "" "el valor de *n* guardado actualmente. El segundo argumento establece el " "valor de retraso (ver :func:`delay`)." -#: ../Doc/library/turtle.rst:1760 +#: ../Doc/library/turtle.rst:1981 msgid "Perform a TurtleScreen update. To be used when tracer is turned off." msgstr "" "Realiza una actualización de la pantalla de la tortuga. Para ser usada " "cuando *tracer* está deshabilitada." -#: ../Doc/library/turtle.rst:1762 +#: ../Doc/library/turtle.rst:1983 msgid "See also the RawTurtle/Turtle method :func:`speed`." msgstr "Ver también el método *RawTurtle/Turtle* :func:`speed`." -#: ../Doc/library/turtle.rst:1770 +#: ../Doc/library/turtle.rst:1991 msgid "" "Set focus on TurtleScreen (in order to collect key-events). Dummy arguments " "are provided in order to be able to pass :func:`listen` to the onclick " @@ -1987,17 +2150,17 @@ msgstr "" "teclado). Los argumentos *dummy* se proveen en orden de ser capaces de " "pasar :func:`listen` a los métodos *onclick*." -#: ../Doc/library/turtle.rst:1777 ../Doc/library/turtle.rst:1797 +#: ../Doc/library/turtle.rst:1998 ../Doc/library/turtle.rst:2018 msgid "a function with no arguments or ``None``" msgstr "una función sin argumentos o ``None``" -#: ../Doc/library/turtle.rst:1778 ../Doc/library/turtle.rst:1798 +#: ../Doc/library/turtle.rst:1999 ../Doc/library/turtle.rst:2019 msgid "a string: key (e.g. \"a\") or key-symbol (e.g. \"space\")" msgstr "" "una cadena de caracteres: tecla (por ejemplo, \"a\") o una acción del " "teclado (por ejemplo, \"space\")" -#: ../Doc/library/turtle.rst:1780 +#: ../Doc/library/turtle.rst:2001 msgid "" "Bind *fun* to key-release event of key. If *fun* is ``None``, event " "bindings are removed. Remark: in order to be able to register key-events, " @@ -2008,7 +2171,7 @@ msgstr "" "eventos de teclado, *TurtleScreen* tiene que tener el foco. (ver el método :" "func:`listen`.)" -#: ../Doc/library/turtle.rst:1800 +#: ../Doc/library/turtle.rst:2021 msgid "" "Bind *fun* to key-press event of key if key is given, or to any key-press-" "event if no key is given. Remark: in order to be able to register key-" @@ -2019,7 +2182,7 @@ msgstr "" "de teclado, *TurtleScreen* tiene que tener el foco. (ver el método :func:" "`listen`.)" -#: ../Doc/library/turtle.rst:1824 +#: ../Doc/library/turtle.rst:2045 msgid "" "Bind *fun* to mouse-click events on this screen. If *fun* is ``None``, " "existing bindings are removed." @@ -2027,7 +2190,7 @@ msgstr "" "Vincula *fun* a eventos de click del mouse en esta pantalla. Si *fun* es " "``None``, los vínculos existentes son removidos." -#: ../Doc/library/turtle.rst:1827 +#: ../Doc/library/turtle.rst:2048 msgid "" "Example for a TurtleScreen instance named ``screen`` and a Turtle instance " "named ``turtle``:" @@ -2035,7 +2198,7 @@ msgstr "" "Ejemplo de una instancia TurtleScreen llamada ``screen`` y una instancia " "Turtle llamada ``turtle``:" -#: ../Doc/library/turtle.rst:1838 +#: ../Doc/library/turtle.rst:2059 msgid "" "This TurtleScreen method is available as a global function only under the " "name ``onscreenclick``. The global function ``onclick`` is another one " @@ -2045,19 +2208,19 @@ msgstr "" "el nombre ``onscreenclick``. La función global ``onclick`` es otra derivada " "del método Turtle ``onclick``." -#: ../Doc/library/turtle.rst:1845 +#: ../Doc/library/turtle.rst:2066 msgid "a function with no arguments" msgstr "una función sin argumentos" -#: ../Doc/library/turtle.rst:1846 +#: ../Doc/library/turtle.rst:2067 msgid "a number >= 0" msgstr "un número >= 0" -#: ../Doc/library/turtle.rst:1848 +#: ../Doc/library/turtle.rst:2069 msgid "Install a timer that calls *fun* after *t* milliseconds." msgstr "Instala un temporizador que llama a *fun* cada *t* milisegundos." -#: ../Doc/library/turtle.rst:1866 +#: ../Doc/library/turtle.rst:2087 msgid "" "Starts event loop - calling Tkinter's mainloop function. Must be the last " "statement in a turtle graphics program. Must *not* be used if a script is " @@ -2069,12 +2232,12 @@ msgstr "" "*No* debe ser usado si algún script es corrido dentro del IDLE en modo -n " "(Sin subproceso) - para uso interactivo de gráficos turtle.::" -#: ../Doc/library/turtle.rst:1879 ../Doc/library/turtle.rst:1880 -#: ../Doc/library/turtle.rst:1892 ../Doc/library/turtle.rst:1893 +#: ../Doc/library/turtle.rst:2100 ../Doc/library/turtle.rst:2101 +#: ../Doc/library/turtle.rst:2113 ../Doc/library/turtle.rst:2114 msgid "string" msgstr "cadena de caracteres" -#: ../Doc/library/turtle.rst:1882 +#: ../Doc/library/turtle.rst:2103 msgid "" "Pop up a dialog window for input of a string. Parameter title is the title " "of the dialog window, prompt is a text mostly describing what information to " @@ -2086,7 +2249,7 @@ msgstr "" "texto que usualmente describe que información se debe ingresar. Devuelve la " "cadena ingresada. Si el diálogo es cancelado, devuelve ``None``. ::" -#: ../Doc/library/turtle.rst:1898 +#: ../Doc/library/turtle.rst:2119 #, fuzzy msgid "" "Pop up a dialog window for input of a number. title is the title of the " @@ -2106,11 +2269,11 @@ msgstr "" "para su corrección. Devuelve el número ingresado. Si el diálogo es " "cancelado, devuelve ``None``.::" -#: ../Doc/library/turtle.rst:1915 +#: ../Doc/library/turtle.rst:2136 msgid "one of the strings \"standard\", \"logo\" or \"world\"" msgstr "una de las cadenas *\"standard\"*, *\"logo*\" o *\"world*\"" -#: ../Doc/library/turtle.rst:1917 +#: ../Doc/library/turtle.rst:2138 msgid "" "Set turtle mode (\"standard\", \"logo\" or \"world\") and perform reset. If " "mode is not given, current mode is returned." @@ -2118,7 +2281,7 @@ msgstr "" "Establece el mode de la tortuga (*\"standard\"*, *\"logo\"* o *\"world\"*) " "y realiza un reinicio. Si no se da \"*mode*\", retorna el modo actual." -#: ../Doc/library/turtle.rst:1920 +#: ../Doc/library/turtle.rst:2141 msgid "" "Mode \"standard\" is compatible with old :mod:`turtle`. Mode \"logo\" is " "compatible with most Logo turtle graphics. Mode \"world\" uses user-defined " @@ -2131,47 +2294,47 @@ msgstr "" "**Atención**: en este modo los ángulos aparecen distorsionados si la " "relación de unidad ``x/y`` no es igual a 1." -#: ../Doc/library/turtle.rst:1926 +#: ../Doc/library/turtle.rst:2147 msgid "Mode" msgstr "Modo" -#: ../Doc/library/turtle.rst:1926 +#: ../Doc/library/turtle.rst:2147 msgid "Initial turtle heading" msgstr "Rumbo inicial de la tortuga" -#: ../Doc/library/turtle.rst:1926 +#: ../Doc/library/turtle.rst:2147 msgid "positive angles" msgstr "ángulos positivos" -#: ../Doc/library/turtle.rst:1928 +#: ../Doc/library/turtle.rst:2149 msgid "\"standard\"" msgstr "*\"standard\"*" -#: ../Doc/library/turtle.rst:1928 +#: ../Doc/library/turtle.rst:2149 msgid "to the right (east)" msgstr "hacia la derecha (este)" -#: ../Doc/library/turtle.rst:1928 +#: ../Doc/library/turtle.rst:2149 msgid "counterclockwise" msgstr "sentido antihorario" -#: ../Doc/library/turtle.rst:1929 +#: ../Doc/library/turtle.rst:2150 msgid "\"logo\"" msgstr "*\"logo\"*" -#: ../Doc/library/turtle.rst:1929 +#: ../Doc/library/turtle.rst:2150 msgid "upward (north)" msgstr "hacia arriba (norte)" -#: ../Doc/library/turtle.rst:1929 +#: ../Doc/library/turtle.rst:2150 msgid "clockwise" msgstr "sentido horario" -#: ../Doc/library/turtle.rst:1942 +#: ../Doc/library/turtle.rst:2163 msgid "one of the values 1.0 or 255" msgstr "uno de los valores 1.0 o 255" -#: ../Doc/library/turtle.rst:1944 +#: ../Doc/library/turtle.rst:2165 #, fuzzy msgid "" "Return the colormode or set it to 1.0 or 255. Subsequently *r*, *g*, *b* " @@ -2181,7 +2344,7 @@ msgstr "" "valores triples de color *r*, *g*, *b* tienen que estar en el rango 0..\\ " "*cmode*." -#: ../Doc/library/turtle.rst:1965 +#: ../Doc/library/turtle.rst:2186 msgid "" "Return the Canvas of this TurtleScreen. Useful for insiders who know what " "to do with a Tkinter Canvas." @@ -2189,17 +2352,17 @@ msgstr "" "Devuelve el lienzo de este *TurtleScreen*. Útil para conocedores que saben " "que hace con un *TKinter* *Canvas*." -#: ../Doc/library/turtle.rst:1978 +#: ../Doc/library/turtle.rst:2199 msgid "Return a list of names of all currently available turtle shapes." msgstr "" "Devuelve la lista de nombres de todas las formas de la tortuga actualmente " "disponibles." -#: ../Doc/library/turtle.rst:1990 +#: ../Doc/library/turtle.rst:2211 msgid "There are three different ways to call this function:" msgstr "Hay tres formas distintas de llamar a esta función:" -#: ../Doc/library/turtle.rst:1992 +#: ../Doc/library/turtle.rst:2213 msgid "" "*name* is the name of a gif-file and *shape* is ``None``: Install the " "corresponding image shape. ::" @@ -2207,7 +2370,7 @@ msgstr "" "*name* es el nombre de un archivo gif y *shape* es ``None``: instala la " "imagen correspondiente. ::" -#: ../Doc/library/turtle.rst:1998 +#: ../Doc/library/turtle.rst:2219 msgid "" "Image shapes *do not* rotate when turning the turtle, so they do not display " "the heading of the turtle!" @@ -2215,7 +2378,7 @@ msgstr "" "Las imágenes de tipo *shapes* no rotan cuando la tortuga gira, así que ellas " "¡no muestran el rumbo de la tortuga!" -#: ../Doc/library/turtle.rst:2001 +#: ../Doc/library/turtle.rst:2222 msgid "" "*name* is an arbitrary string and *shape* is a tuple of pairs of " "coordinates: Install the corresponding polygon shape." @@ -2223,7 +2386,7 @@ msgstr "" "*name* es una cadena de caracteres arbitraria y *shape* es una tupla de " "pares de coordenadas: Instala la forma poligonal correspondiente." -#: ../Doc/library/turtle.rst:2009 +#: ../Doc/library/turtle.rst:2230 #, fuzzy msgid "" "*name* is an arbitrary string and *shape* is a (compound) :class:`Shape` " @@ -2232,7 +2395,7 @@ msgstr "" "*name* es una cadena de caracteres arbitraria y *shape* es un objeto :class:" "`Shape` (compuesto): Instala la correspondiente forma compuesta." -#: ../Doc/library/turtle.rst:2012 +#: ../Doc/library/turtle.rst:2233 msgid "" "Add a turtle shape to TurtleScreen's shapelist. Only thusly registered " "shapes can be used by issuing the command ``shape(shapename)``." @@ -2241,31 +2404,31 @@ msgstr "" "las formas registradas de esta manera pueden ser usadas invocando el comando " "``shape(shapename)``." -#: ../Doc/library/turtle.rst:2018 +#: ../Doc/library/turtle.rst:2239 msgid "Return the list of turtles on the screen." msgstr "Devuelve la lista de tortugas en la pantalla." -#: ../Doc/library/turtle.rst:2029 +#: ../Doc/library/turtle.rst:2250 msgid "Return the height of the turtle window. ::" msgstr "Devuelve la altura de la ventana de la tortuga. ::" -#: ../Doc/library/turtle.rst:2037 +#: ../Doc/library/turtle.rst:2258 msgid "Return the width of the turtle window. ::" msgstr "Devuelve el ancho de la ventana de la tortuga. ::" -#: ../Doc/library/turtle.rst:2046 +#: ../Doc/library/turtle.rst:2267 msgid "Methods specific to Screen, not inherited from TurtleScreen" msgstr "Métodos específicos de *Screen*, no heredados de *TurtleScreen*" -#: ../Doc/library/turtle.rst:2050 +#: ../Doc/library/turtle.rst:2271 msgid "Shut the turtlegraphics window." msgstr "Apaga la ventana gráfica de la tortuga." -#: ../Doc/library/turtle.rst:2055 +#: ../Doc/library/turtle.rst:2276 msgid "Bind ``bye()`` method to mouse clicks on the Screen." msgstr "Ata el método ``bye()`` al click del ratón sobre la pantalla." -#: ../Doc/library/turtle.rst:2058 +#: ../Doc/library/turtle.rst:2279 msgid "" "If the value \"using_IDLE\" in the configuration dictionary is ``False`` " "(default value), also enter mainloop. Remark: If IDLE with the ``-n`` " @@ -2279,7 +2442,7 @@ msgstr "" "establecerse a ``True`` en :file:`turtle.cfg`. En este caso el propio " "*mainloop* de la *IDLE* está activa también para script cliente." -#: ../Doc/library/turtle.rst:2067 +#: ../Doc/library/turtle.rst:2288 msgid "" "Set the size and position of the main window. Default values of arguments " "are stored in the configuration dictionary and can be changed via a :file:" @@ -2289,7 +2452,7 @@ msgstr "" "defecto de los argumentos son guardados en el diccionario de configuración y " "puede ser cambiado a través del archivo :file:`turtle.cfg`." -#: ../Doc/library/turtle.rst:2071 +#: ../Doc/library/turtle.rst:2292 #, python-format msgid "" "if an integer, a size in pixels, if a float, a fraction of the screen; " @@ -2298,7 +2461,7 @@ msgstr "" "si es un entero, el tamaño en pixeles, si es un número flotante, una " "fracción de la pantalla; el valor por defecto es 50% de la pantalla" -#: ../Doc/library/turtle.rst:2073 +#: ../Doc/library/turtle.rst:2294 #, python-format msgid "" "if an integer, the height in pixels, if a float, a fraction of the screen; " @@ -2307,7 +2470,7 @@ msgstr "" "si es un entero, la altura en pixeles, si es un número flotante, una " "fracción de la pantalla; el valor por defecto es 75% de la pantalla" -#: ../Doc/library/turtle.rst:2075 +#: ../Doc/library/turtle.rst:2296 msgid "" "if positive, starting position in pixels from the left edge of the screen, " "if negative from the right edge, if ``None``, center window horizontally" @@ -2316,7 +2479,7 @@ msgstr "" "pantalla, si es negativo desde la esquina derecha de la pantalla, si es " "``None``, centra la ventana horizontalmente" -#: ../Doc/library/turtle.rst:2078 +#: ../Doc/library/turtle.rst:2299 msgid "" "if positive, starting position in pixels from the top edge of the screen, if " "negative from the bottom edge, if ``None``, center window vertically" @@ -2325,29 +2488,30 @@ msgstr "" "pantalla, si es negativo desde la parte inferior de la pantalla, si es " "``None``, centra la ventana verticalmente" -#: ../Doc/library/turtle.rst:2093 +#: ../Doc/library/turtle.rst:2314 msgid "a string that is shown in the titlebar of the turtle graphics window" msgstr "" "una cadena de caracteres que se muestra en la barra de título de la ventana " "gráfica de la tortuga" -#: ../Doc/library/turtle.rst:2096 +#: ../Doc/library/turtle.rst:2317 msgid "Set title of turtle window to *titlestring*." msgstr "Establece el título de la ventana de la tortuga a *titlestring*." -#: ../Doc/library/turtle.rst:2105 +#: ../Doc/library/turtle.rst:2326 msgid "Public classes" msgstr "Clases públicas" -#: ../Doc/library/turtle.rst:2111 +#: ../Doc/library/turtle.rst:2332 +#, fuzzy msgid "" -"a :class:`tkinter.Canvas`, a :class:`ScrolledCanvas` or a :class:" +"a :class:`!tkinter.Canvas`, a :class:`ScrolledCanvas` or a :class:" "`TurtleScreen`" msgstr "" "una clase :class:`tkinter.Canvas`, una :class:`ScrolledCanvas` o una clase :" "class:`TurtleScreen`" -#: ../Doc/library/turtle.rst:2114 +#: ../Doc/library/turtle.rst:2335 msgid "" "Create a turtle. The turtle has all methods described above as \"methods of " "Turtle/RawTurtle\"." @@ -2355,7 +2519,7 @@ msgstr "" "Crea una tortuga. La tortuga tiene todos los métodos descriptos " "anteriormente como \"métodos de *\"Turtle/RawTurtle\"*." -#: ../Doc/library/turtle.rst:2120 +#: ../Doc/library/turtle.rst:2341 msgid "" "Subclass of RawTurtle, has the same interface but draws on a default :class:" "`Screen` object created automatically when needed for the first time." @@ -2364,26 +2528,28 @@ msgstr "" "objeto por defecto :class:`Screen` creado automáticamente cuando es " "necesario por primera vez." -#: ../Doc/library/turtle.rst:2126 -msgid "a :class:`tkinter.Canvas`" +#: ../Doc/library/turtle.rst:2347 +#, fuzzy +msgid "a :class:`!tkinter.Canvas`" msgstr "un :class:`tkinter.Canvas`" -#: ../Doc/library/turtle.rst:2128 +#: ../Doc/library/turtle.rst:2349 +#, fuzzy msgid "" -"Provides screen oriented methods like :func:`setbg` etc. that are described " -"above." +"Provides screen oriented methods like :func:`bgcolor` etc. that are " +"described above." msgstr "" "Provee métodos orientados a la pantalla como :func:`setbg` etc. descriptos " "anteriormente." -#: ../Doc/library/turtle.rst:2133 +#: ../Doc/library/turtle.rst:2354 msgid "" "Subclass of TurtleScreen, with :ref:`four methods added `." msgstr "" "Subclase de *TurtleScreen*, con :ref:`cuatro métodos agregados " "`." -#: ../Doc/library/turtle.rst:2138 +#: ../Doc/library/turtle.rst:2359 msgid "" "some Tkinter widget to contain the ScrolledCanvas, i.e. a Tkinter-canvas " "with scrollbars added" @@ -2391,7 +2557,7 @@ msgstr "" "algunos *widgets* *TKinter* para contener el *ScrollCanvas*, por ejemplo un " "lienzo *Tkinter* con barras de desplazamiento agregadas" -#: ../Doc/library/turtle.rst:2141 +#: ../Doc/library/turtle.rst:2362 msgid "" "Used by class Screen, which thus automatically provides a ScrolledCanvas as " "playground for the turtles." @@ -2399,12 +2565,12 @@ msgstr "" "Usado por la clase *Screen*, que proporciona automáticamente un " "*ScrolledCanvas* como espacio de trabajo para las tortugas." -#: ../Doc/library/turtle.rst:2146 +#: ../Doc/library/turtle.rst:2367 msgid "one of the strings \"polygon\", \"image\", \"compound\"" msgstr "" "una de las cadenas de caracteres *\"polygon\"*, *\"image\"*, *\"compound\"*" -#: ../Doc/library/turtle.rst:2148 +#: ../Doc/library/turtle.rst:2369 msgid "" "Data structure modeling shapes. The pair ``(type_, data)`` must follow this " "specification:" @@ -2412,36 +2578,36 @@ msgstr "" "Estructura de datos que modela las formas. El par ``(type_, data)`` debe " "seguir estas especificaciones:" -#: ../Doc/library/turtle.rst:2153 +#: ../Doc/library/turtle.rst:2374 msgid "*type_*" msgstr "*type_*" -#: ../Doc/library/turtle.rst:2153 +#: ../Doc/library/turtle.rst:2374 msgid "*data*" msgstr "*data*" -#: ../Doc/library/turtle.rst:2155 +#: ../Doc/library/turtle.rst:2376 msgid "\"polygon\"" msgstr "*\"polygon\"*" -#: ../Doc/library/turtle.rst:2155 +#: ../Doc/library/turtle.rst:2376 msgid "a polygon-tuple, i.e. a tuple of pairs of coordinates" msgstr "" "una tupla para el polígono, por ejemplo: una tupla de par de coordenadas" -#: ../Doc/library/turtle.rst:2156 +#: ../Doc/library/turtle.rst:2377 msgid "\"image\"" msgstr "*\"image\"*" -#: ../Doc/library/turtle.rst:2156 +#: ../Doc/library/turtle.rst:2377 msgid "an image (in this form only used internally!)" msgstr "una imagen (en esta forma solo se usa ¡internamente!)" -#: ../Doc/library/turtle.rst:2157 +#: ../Doc/library/turtle.rst:2378 msgid "\"compound\"" msgstr "*\"compound\"*" -#: ../Doc/library/turtle.rst:2157 +#: ../Doc/library/turtle.rst:2378 msgid "" "``None`` (a compound shape has to be constructed using the :meth:" "`addcomponent` method)" @@ -2449,27 +2615,27 @@ msgstr "" "``None`` (una forma compuesta tiene que ser construida usando el método :" "meth:`addcomponent`)" -#: ../Doc/library/turtle.rst:2163 +#: ../Doc/library/turtle.rst:2384 msgid "a polygon, i.e. a tuple of pairs of numbers" msgstr "un polígono, por ejemplo una tupla de pares de números" -#: ../Doc/library/turtle.rst:2164 +#: ../Doc/library/turtle.rst:2385 msgid "a color the *poly* will be filled with" msgstr "un color con el que el polígono será llenado" -#: ../Doc/library/turtle.rst:2165 +#: ../Doc/library/turtle.rst:2386 msgid "a color for the poly's outline (if given)" msgstr "un color con el que se delineará el polígono (se de ingresa)" -#: ../Doc/library/turtle.rst:2167 +#: ../Doc/library/turtle.rst:2388 msgid "Example:" msgstr "Ejemplo:" -#: ../Doc/library/turtle.rst:2177 +#: ../Doc/library/turtle.rst:2398 msgid "See :ref:`compoundshapes`." msgstr "Ver :ref:`compoundshapes`." -#: ../Doc/library/turtle.rst:2182 +#: ../Doc/library/turtle.rst:2403 msgid "" "A two-dimensional vector class, used as a helper class for implementing " "turtle graphics. May be useful for turtle graphics programs too. Derived " @@ -2480,43 +2646,102 @@ msgstr "" "gráficos de tortugas también. Derivado de la tupla, ¡por lo que un vector es " "una tupla!" -#: ../Doc/library/turtle.rst:2186 +#: ../Doc/library/turtle.rst:2407 msgid "Provides (for *a*, *b* vectors, *k* number):" msgstr "Proporciona (para *a*, *b* vectores, *k* números)" -#: ../Doc/library/turtle.rst:2188 +#: ../Doc/library/turtle.rst:2409 msgid "``a + b`` vector addition" msgstr "``a + b`` suma de vectores" -#: ../Doc/library/turtle.rst:2189 +#: ../Doc/library/turtle.rst:2410 msgid "``a - b`` vector subtraction" msgstr "``a - b`` resta de vectores" -#: ../Doc/library/turtle.rst:2190 +#: ../Doc/library/turtle.rst:2411 msgid "``a * b`` inner product" msgstr "``a * b`` producto interno" -#: ../Doc/library/turtle.rst:2191 +#: ../Doc/library/turtle.rst:2412 msgid "``k * a`` and ``a * k`` multiplication with scalar" msgstr "``k * a`` y ``a * k`` multiplicación con escalar" -#: ../Doc/library/turtle.rst:2192 +#: ../Doc/library/turtle.rst:2413 msgid "``abs(a)`` absolute value of a" msgstr "``abs(a)`` valor absoluto de a" -#: ../Doc/library/turtle.rst:2193 +#: ../Doc/library/turtle.rst:2414 msgid "``a.rotate(angle)`` rotation" msgstr "``a.rotate(angle)`` rotación" -#: ../Doc/library/turtle.rst:2197 +#: ../Doc/library/turtle.rst:2420 +msgid "Explanation" +msgstr "" + +#: ../Doc/library/turtle.rst:2422 +msgid "" +"A turtle object draws on a screen object, and there a number of key classes " +"in the turtle object-oriented interface that can be used to create them and " +"relate them to each other." +msgstr "" + +#: ../Doc/library/turtle.rst:2426 +msgid "" +"A :class:`Turtle` instance will automatically create a :class:`Screen` " +"instance if one is not already present." +msgstr "" + +#: ../Doc/library/turtle.rst:2429 +msgid "" +"``Turtle`` is a subclass of :class:`RawTurtle`, which *doesn't* " +"automatically create a drawing surface - a *canvas* will need to be provided " +"or created for it. The *canvas* can be a :class:`!tkinter.Canvas`, :class:" +"`ScrolledCanvas` or :class:`TurtleScreen`." +msgstr "" + +#: ../Doc/library/turtle.rst:2435 +msgid "" +":class:`TurtleScreen` is the basic drawing surface for a turtle. :class:" +"`Screen` is a subclass of ``TurtleScreen``, and includes :ref:`some " +"additional methods ` for managing its appearance (including " +"size and title) and behaviour. ``TurtleScreen``'s constructor needs a :class:" +"`!tkinter.Canvas` or a :class:`ScrolledCanvas` as an argument." +msgstr "" + +#: ../Doc/library/turtle.rst:2442 +#, fuzzy +msgid "" +"The functional interface for turtle graphics uses the various methods of " +"``Turtle`` and ``TurtleScreen``/``Screen``. Behind the scenes, a screen " +"object is automatically created whenever a function derived from a " +"``Screen`` method is called. Similarly, a turtle object is automatically " +"created whenever any of the functions derived from a Turtle method is called." +msgstr "" +"La interface procedimental provee funciones que son derivadas de los métodos " +"de las clases :class:`Screen` y :class:`Turtle`. Tienen los mismos nombres " +"que los métodos correspondientes. Un objeto *Screen* es creado " +"automáticamente cada vez que una función derivada de un método *Screen* es " +"llamado. Un objeto *Turtle* (innombrado) se crea automáticamente cada vez " +"que se llama a una función derivada de un método *Turtle*." + +#: ../Doc/library/turtle.rst:2448 +#, fuzzy +msgid "" +"To use multiple turtles on a screen, the object-oriented interface must be " +"used." +msgstr "" +"Para usar varias tortugas en una pantalla se tiene que usar la interface " +"orientada a objetos." + +#: ../Doc/library/turtle.rst:2453 msgid "Help and configuration" msgstr "Ayuda y configuración" -#: ../Doc/library/turtle.rst:2200 +#: ../Doc/library/turtle.rst:2456 msgid "How to use help" msgstr "Cómo usar la ayuda" -#: ../Doc/library/turtle.rst:2202 +#: ../Doc/library/turtle.rst:2458 msgid "" "The public methods of the Screen and Turtle classes are documented " "extensively via docstrings. So these can be used as online-help via the " @@ -2527,7 +2752,7 @@ msgstr "" "pueden usar como ayuda en línea a través de las instalaciones de ayuda de " "Python:" -#: ../Doc/library/turtle.rst:2206 +#: ../Doc/library/turtle.rst:2462 msgid "" "When using IDLE, tooltips show the signatures and first lines of the " "docstrings of typed in function-/method calls." @@ -2536,11 +2761,11 @@ msgstr "" "las primeras líneas de las cadenas de documentos de las llamadas de función/" "método escritas." -#: ../Doc/library/turtle.rst:2209 +#: ../Doc/library/turtle.rst:2465 msgid "Calling :func:`help` on methods or functions displays the docstrings::" msgstr "Llamar a :func:`help` en métodos o funciones muestra los docstrings::" -#: ../Doc/library/turtle.rst:2240 +#: ../Doc/library/turtle.rst:2496 msgid "" "The docstrings of the functions which are derived from methods have a " "modified form::" @@ -2548,7 +2773,7 @@ msgstr "" "Los docstrings de las funciones que se derivan de los métodos tienen una " "forma modificada::" -#: ../Doc/library/turtle.rst:2274 +#: ../Doc/library/turtle.rst:2530 msgid "" "These modified docstrings are created automatically together with the " "function definitions that are derived from the methods at import time." @@ -2557,11 +2782,11 @@ msgstr "" "definiciones de función que se derivan de los métodos en el momento de la " "importación." -#: ../Doc/library/turtle.rst:2279 +#: ../Doc/library/turtle.rst:2535 msgid "Translation of docstrings into different languages" msgstr "Traducción de cadenas de documentos a diferentes idiomas" -#: ../Doc/library/turtle.rst:2281 +#: ../Doc/library/turtle.rst:2537 msgid "" "There is a utility to create a dictionary the keys of which are the method " "names and the values of which are the docstrings of the public methods of " @@ -2571,11 +2796,11 @@ msgstr "" "de los métodos y cuyos valores son los docstrings de los métodos públicos de " "las clases Screen y Turtle." -#: ../Doc/library/turtle.rst:2287 +#: ../Doc/library/turtle.rst:2543 msgid "a string, used as filename" msgstr "una cadena de caracteres, utilizada como nombre de archivo" -#: ../Doc/library/turtle.rst:2289 +#: ../Doc/library/turtle.rst:2545 msgid "" "Create and write docstring-dictionary to a Python script with the given " "filename. This function has to be called explicitly (it is not used by the " @@ -2590,7 +2815,7 @@ msgstr "" "destinado a servir como plantilla para la traducción de las cadenas de " "documentos a diferentes idiomas." -#: ../Doc/library/turtle.rst:2295 +#: ../Doc/library/turtle.rst:2551 msgid "" "If you (or your students) want to use :mod:`turtle` with online help in your " "native language, you have to translate the docstrings and save the resulting " @@ -2600,7 +2825,7 @@ msgstr "" "en su idioma nativo, debe traducir los docstrings y guardar el archivo " "resultante como, por ejemplo, :file:`turtle_docstringdict_german.py`." -#: ../Doc/library/turtle.rst:2299 +#: ../Doc/library/turtle.rst:2555 msgid "" "If you have an appropriate entry in your :file:`turtle.cfg` file this " "dictionary will be read in at import time and will replace the original " @@ -2610,7 +2835,7 @@ msgstr "" "diccionario se leerá en el momento de la importación y reemplazará los " "docstrings originales en inglés." -#: ../Doc/library/turtle.rst:2302 +#: ../Doc/library/turtle.rst:2558 msgid "" "At the time of this writing there are docstring dictionaries in German and " "in Italian. (Requests please to glingl@aon.at.)" @@ -2618,11 +2843,11 @@ msgstr "" "En el momento de escribir este artículo, existen diccionarios de docstrings " "en alemán e italiano. (Solicitudes por favor a glingl@aon.at.)" -#: ../Doc/library/turtle.rst:2308 +#: ../Doc/library/turtle.rst:2564 msgid "How to configure Screen and Turtles" msgstr "Cómo configurar Screen and Turtles" -#: ../Doc/library/turtle.rst:2310 +#: ../Doc/library/turtle.rst:2566 msgid "" "The built-in default configuration mimics the appearance and behaviour of " "the old turtle module in order to retain best possible compatibility with it." @@ -2631,7 +2856,7 @@ msgstr "" "comportamiento del antiguo módulo de tortuga para mantener la mejor " "compatibilidad posible con él." -#: ../Doc/library/turtle.rst:2313 +#: ../Doc/library/turtle.rst:2569 msgid "" "If you want to use a different configuration which better reflects the " "features of this module or which better fits to your needs, e.g. for use in " @@ -2645,32 +2870,35 @@ msgstr "" "``turtle.cfg`` que se leerá en el momento de la importación y modificará la " "configuración de acuerdo con su configuración." -#: ../Doc/library/turtle.rst:2318 +#: ../Doc/library/turtle.rst:2574 +#, fuzzy msgid "" -"The built in configuration would correspond to the following turtle.cfg::" +"The built in configuration would correspond to the following ``turtle.cfg``:" msgstr "La configuración incorporada correspondería al siguiente turtle.cfg::" -#: ../Doc/library/turtle.rst:2341 +#: ../Doc/library/turtle.rst:2599 msgid "Short explanation of selected entries:" msgstr "Breve explicación de las entradas seleccionadas:" -#: ../Doc/library/turtle.rst:2343 +#: ../Doc/library/turtle.rst:2601 +#, fuzzy msgid "" -"The first four lines correspond to the arguments of the :meth:`Screen.setup` " -"method." +"The first four lines correspond to the arguments of the :func:`Screen.setup " +"` method." msgstr "" "Las primeras cuatro líneas corresponden a los argumentos del método :meth:" "`Screen.setup`." -#: ../Doc/library/turtle.rst:2345 +#: ../Doc/library/turtle.rst:2603 +#, fuzzy msgid "" -"Line 5 and 6 correspond to the arguments of the method :meth:`Screen." -"screensize`." +"Line 5 and 6 correspond to the arguments of the method :func:`Screen." +"screensize `." msgstr "" "Las líneas 5 y 6 corresponden a los argumentos del método :meth:`Screen." "screensize`." -#: ../Doc/library/turtle.rst:2347 +#: ../Doc/library/turtle.rst:2605 msgid "" "*shape* can be any of the built-in shapes, e.g: arrow, turtle, etc. For " "more info try ``help(shape)``." @@ -2678,24 +2906,25 @@ msgstr "" "*shape* puede ser cualquiera de las formas integradas, por ejemplo: arrow, " "turtle, etc. Para obtener más información, pruebe con ``help(shape)``." -#: ../Doc/library/turtle.rst:2349 +#: ../Doc/library/turtle.rst:2607 +#, fuzzy msgid "" -"If you want to use no fillcolor (i.e. make the turtle transparent), you have " -"to write ``fillcolor = \"\"`` (but all nonempty strings must not have quotes " -"in the cfg-file)." +"If you want to use no fill color (i.e. make the turtle transparent), you " +"have to write ``fillcolor = \"\"`` (but all nonempty strings must not have " +"quotes in the cfg file)." msgstr "" "Si no desea usar color de relleno (es decir, hacer que la tortuga sea " "transparente), debe escribir ``fillcolor = \"\"`` (pero todas las cadenas no " "vacías no deben tener comillas en el archivo cfg)." -#: ../Doc/library/turtle.rst:2352 +#: ../Doc/library/turtle.rst:2610 msgid "" "If you want to reflect the turtle its state, you have to use ``resizemode = " "auto``." msgstr "" "Si desea reflejar el estado de la tortuga, debe usar ``resizemode = auto``." -#: ../Doc/library/turtle.rst:2354 +#: ../Doc/library/turtle.rst:2612 #, fuzzy msgid "" "If you set e.g. ``language = italian`` the docstringdict :file:" @@ -2707,7 +2936,7 @@ msgstr "" "(si está presente en la ruta de importación, por ejemplo, en el mismo " "directorio que :mod:`turtle`." -#: ../Doc/library/turtle.rst:2357 +#: ../Doc/library/turtle.rst:2615 msgid "" "The entries *exampleturtle* and *examplescreen* define the names of these " "objects as they occur in the docstrings. The transformation of method-" @@ -2719,7 +2948,7 @@ msgstr "" "transformación de método-docstrings en función-docstrings eliminará estos " "nombres de las docstrings." -#: ../Doc/library/turtle.rst:2361 +#: ../Doc/library/turtle.rst:2619 #, fuzzy msgid "" "*using_IDLE*: Set this to ``True`` if you regularly work with IDLE and its " @@ -2730,7 +2959,7 @@ msgstr "" "su interruptor -n (\"sin subproceso\"). Esto evitará que :func:`exitonclick` " "ingrese al bucle principal." -#: ../Doc/library/turtle.rst:2365 +#: ../Doc/library/turtle.rst:2623 msgid "" "There can be a :file:`turtle.cfg` file in the directory where :mod:`turtle` " "is stored and an additional one in the current working directory. The " @@ -2740,7 +2969,7 @@ msgstr "" "almacena :mod:`turtle` y uno adicional en el directorio de trabajo actual. " "Este último anulará la configuración del primero." -#: ../Doc/library/turtle.rst:2369 +#: ../Doc/library/turtle.rst:2627 msgid "" "The :file:`Lib/turtledemo` directory contains a :file:`turtle.cfg` file. " "You can study it as an example and see its effects when running the demos " @@ -2750,11 +2979,11 @@ msgstr "" "Puede estudiarlo como un ejemplo y ver sus efectos al ejecutar las " "demostraciones (preferiblemente no desde el visor de demostraciones)." -#: ../Doc/library/turtle.rst:2375 +#: ../Doc/library/turtle.rst:2633 msgid ":mod:`turtledemo` --- Demo scripts" msgstr ":mod:`turtledemo` --- Scripts de demostración" -#: ../Doc/library/turtle.rst:2380 +#: ../Doc/library/turtle.rst:2638 msgid "" "The :mod:`turtledemo` package includes a set of demo scripts. These scripts " "can be run and viewed using the supplied demo viewer as follows::" @@ -2763,18 +2992,18 @@ msgstr "" "Estos scripts se pueden ejecutar y visualizar utilizando el visor de " "demostración suministrado de la siguiente manera::" -#: ../Doc/library/turtle.rst:2385 +#: ../Doc/library/turtle.rst:2643 msgid "" "Alternatively, you can run the demo scripts individually. For example, ::" msgstr "" "Alternativamente, puede ejecutar los scripts de demostración " "individualmente. Por ejemplo, ::" -#: ../Doc/library/turtle.rst:2389 +#: ../Doc/library/turtle.rst:2647 msgid "The :mod:`turtledemo` package directory contains:" msgstr "El directorio del paquete :mod:`turtledemo` contiene:" -#: ../Doc/library/turtle.rst:2391 +#: ../Doc/library/turtle.rst:2649 msgid "" "A demo viewer :file:`__main__.py` which can be used to view the sourcecode " "of the scripts and run them at the same time." @@ -2782,7 +3011,7 @@ msgstr "" "Un visor de demostración :file:`__main__.py` que se puede utilizar para ver " "el código fuente de los scripts y ejecutarlos al mismo tiempo." -#: ../Doc/library/turtle.rst:2393 +#: ../Doc/library/turtle.rst:2651 msgid "" "Multiple scripts demonstrating different features of the :mod:`turtle` " "module. Examples can be accessed via the Examples menu. They can also be " @@ -2792,7 +3021,7 @@ msgstr "" "`turtle`. Se puede acceder a los ejemplos a través del menú de ejemplos. " "También se pueden ejecutar de forma independiente." -#: ../Doc/library/turtle.rst:2396 +#: ../Doc/library/turtle.rst:2654 msgid "" "A :file:`turtle.cfg` file which serves as an example of how to write and use " "such files." @@ -2800,39 +3029,39 @@ msgstr "" "Un archivo :file:`turtle.cfg` que sirve como ejemplo de cómo escribir y usar " "dichos archivos." -#: ../Doc/library/turtle.rst:2399 +#: ../Doc/library/turtle.rst:2657 msgid "The demo scripts are:" msgstr "Los scripts de demostración son:" -#: ../Doc/library/turtle.rst:2404 +#: ../Doc/library/turtle.rst:2664 msgid "Name" msgstr "Nombre" -#: ../Doc/library/turtle.rst:2404 +#: ../Doc/library/turtle.rst:2664 msgid "Description" msgstr "Descripción" -#: ../Doc/library/turtle.rst:2404 +#: ../Doc/library/turtle.rst:2664 msgid "Features" msgstr "Características" -#: ../Doc/library/turtle.rst:2406 +#: ../Doc/library/turtle.rst:2666 msgid "bytedesign" msgstr "bytedesign" -#: ../Doc/library/turtle.rst:2406 +#: ../Doc/library/turtle.rst:2666 msgid "complex classical turtle graphics pattern" msgstr "patrón de gráficos de tortuga clásica compleja" -#: ../Doc/library/turtle.rst:2406 +#: ../Doc/library/turtle.rst:2666 msgid ":func:`tracer`, delay, :func:`update`" msgstr ":func:`tracer`, retrasar (*delay*), :func:`update`" -#: ../Doc/library/turtle.rst:2409 +#: ../Doc/library/turtle.rst:2669 msgid "chaos" msgstr "caos" -#: ../Doc/library/turtle.rst:2409 +#: ../Doc/library/turtle.rst:2669 msgid "" "graphs Verhulst dynamics, shows that computer's computations can generate " "results sometimes against the common sense expectations" @@ -2840,214 +3069,216 @@ msgstr "" "gráficos dinámicos de Verhulst, muestra que los cálculos de la computadora " "pueden generar resultados a veces contra las expectativas del sentido común" -#: ../Doc/library/turtle.rst:2409 +#: ../Doc/library/turtle.rst:2669 msgid "world coordinates" msgstr "coordenadas mundiales" -#: ../Doc/library/turtle.rst:2415 +#: ../Doc/library/turtle.rst:2675 msgid "clock" msgstr "reloj" -#: ../Doc/library/turtle.rst:2415 +#: ../Doc/library/turtle.rst:2675 msgid "analog clock showing time of your computer" msgstr "reloj analógico que muestra la hora de su computadora" -#: ../Doc/library/turtle.rst:2415 +#: ../Doc/library/turtle.rst:2675 msgid "turtles as clock's hands, ontimer" msgstr "tortugas como manecillas de reloj, temporizador" -#: ../Doc/library/turtle.rst:2418 +#: ../Doc/library/turtle.rst:2678 msgid "colormixer" msgstr "colormixer" -#: ../Doc/library/turtle.rst:2418 +#: ../Doc/library/turtle.rst:2678 msgid "experiment with r, g, b" msgstr "experimento con r, g, b" -#: ../Doc/library/turtle.rst:2420 +#: ../Doc/library/turtle.rst:2680 msgid "forest" msgstr "bosque" -#: ../Doc/library/turtle.rst:2420 +#: ../Doc/library/turtle.rst:2680 msgid "3 breadth-first trees" msgstr "3 árboles de ancho primero" -#: ../Doc/library/turtle.rst:2420 +#: ../Doc/library/turtle.rst:2680 msgid "randomization" msgstr "aleatorización" -#: ../Doc/library/turtle.rst:2422 +#: ../Doc/library/turtle.rst:2682 msgid "fractalcurves" msgstr "fractalcurves" -#: ../Doc/library/turtle.rst:2422 +#: ../Doc/library/turtle.rst:2682 msgid "Hilbert & Koch curves" msgstr "Curvas Hilbert & Koch" -#: ../Doc/library/turtle.rst:2422 +#: ../Doc/library/turtle.rst:2682 msgid "recursion" msgstr "recursión" -#: ../Doc/library/turtle.rst:2424 +#: ../Doc/library/turtle.rst:2684 msgid "lindenmayer" msgstr "lindenmayer" -#: ../Doc/library/turtle.rst:2424 +#: ../Doc/library/turtle.rst:2684 msgid "ethnomathematics (indian kolams)" msgstr "etnomatemáticas (kolams indios)" -#: ../Doc/library/turtle.rst:2424 +#: ../Doc/library/turtle.rst:2684 msgid "L-System" msgstr "Sistema-L" -#: ../Doc/library/turtle.rst:2427 +#: ../Doc/library/turtle.rst:2687 msgid "minimal_hanoi" msgstr "minimal_hanoi" -#: ../Doc/library/turtle.rst:2427 +#: ../Doc/library/turtle.rst:2687 msgid "Towers of Hanoi" msgstr "Torres de Hanoi" -#: ../Doc/library/turtle.rst:2427 +#: ../Doc/library/turtle.rst:2687 msgid "Rectangular Turtles as Hanoi discs (shape, shapesize)" msgstr "Tortugas rectangulares como discos de Hanoi (shape, tamaño de forma)" -#: ../Doc/library/turtle.rst:2431 +#: ../Doc/library/turtle.rst:2691 msgid "nim" msgstr "nim" -#: ../Doc/library/turtle.rst:2431 +#: ../Doc/library/turtle.rst:2691 msgid "" "play the classical nim game with three heaps of sticks against the computer." msgstr "" "juega el clásico juego de nim con tres montones de palos contra la " "computadora." -#: ../Doc/library/turtle.rst:2431 +#: ../Doc/library/turtle.rst:2691 msgid "turtles as nimsticks, event driven (mouse, keyboard)" msgstr "tortugas como nimsticks, impulsado por eventos (mouse, teclado)" -#: ../Doc/library/turtle.rst:2435 +#: ../Doc/library/turtle.rst:2695 msgid "paint" msgstr "pintar" -#: ../Doc/library/turtle.rst:2435 +#: ../Doc/library/turtle.rst:2695 msgid "super minimalistic drawing program" msgstr "programa de dibujo super minimalista" -#: ../Doc/library/turtle.rst:2438 +#: ../Doc/library/turtle.rst:2698 msgid "peace" msgstr "paz" -#: ../Doc/library/turtle.rst:2438 +#: ../Doc/library/turtle.rst:2698 msgid "elementary" msgstr "elemental" -#: ../Doc/library/turtle.rst:2438 +#: ../Doc/library/turtle.rst:2698 msgid "turtle: appearance and animation" msgstr "turtle: apariencia y animación" -#: ../Doc/library/turtle.rst:2441 +#: ../Doc/library/turtle.rst:2701 msgid "penrose" msgstr "penrose" -#: ../Doc/library/turtle.rst:2441 +#: ../Doc/library/turtle.rst:2701 msgid "aperiodic tiling with kites and darts" msgstr "embaldosado aperiódico con cometas y dardos" -#: ../Doc/library/turtle.rst:2444 +#: ../Doc/library/turtle.rst:2704 msgid "planet_and_moon" msgstr "planet_and_moon" -#: ../Doc/library/turtle.rst:2444 +#: ../Doc/library/turtle.rst:2704 msgid "simulation of gravitational system" msgstr "simulación de sistema gravitacional" -#: ../Doc/library/turtle.rst:2444 +#: ../Doc/library/turtle.rst:2704 msgid "compound shapes, :class:`Vec2D`" msgstr "formas compuestas, :class:`Vec2D`" -#: ../Doc/library/turtle.rst:2447 +#: ../Doc/library/turtle.rst:2707 +msgid "rosette" +msgstr "" + +#: ../Doc/library/turtle.rst:2707 +msgid "a pattern from the wikipedia article on turtle graphics" +msgstr "" +"un patrón del artículo de wikipedia sobre gráficos de tortuga (*turtle*)" + +#: ../Doc/library/turtle.rst:2707 +msgid ":func:`clone`, :func:`undo`" +msgstr ":func:`clone`, :func:`undo`" + +#: ../Doc/library/turtle.rst:2710 msgid "round_dance" msgstr "round_dance" -#: ../Doc/library/turtle.rst:2447 +#: ../Doc/library/turtle.rst:2710 msgid "dancing turtles rotating pairwise in opposite direction" msgstr "tortugas bailarinas que giran por parejas en dirección opuesta" -#: ../Doc/library/turtle.rst:2447 +#: ../Doc/library/turtle.rst:2710 msgid "compound shapes, clone shapesize, tilt, get_shapepoly, update" msgstr "formas compuestas, clonar tamaño de forma, tilt, get_shapepoly, update" -#: ../Doc/library/turtle.rst:2451 +#: ../Doc/library/turtle.rst:2714 msgid "sorting_animate" msgstr "sorting_animate" -#: ../Doc/library/turtle.rst:2451 +#: ../Doc/library/turtle.rst:2714 msgid "visual demonstration of different sorting methods" msgstr "demostración visual de diferentes métodos de ordenamiento" -#: ../Doc/library/turtle.rst:2451 +#: ../Doc/library/turtle.rst:2714 msgid "simple alignment, randomization" msgstr "alineación simple, aleatorización" -#: ../Doc/library/turtle.rst:2454 +#: ../Doc/library/turtle.rst:2717 msgid "tree" msgstr "árbol" -#: ../Doc/library/turtle.rst:2454 +#: ../Doc/library/turtle.rst:2717 msgid "a (graphical) breadth first tree (using generators)" msgstr "un primer árbol de amplitud (gráfico, usando generadores)" -#: ../Doc/library/turtle.rst:2457 +#: ../Doc/library/turtle.rst:2720 msgid "two_canvases" msgstr "two_canvases" -#: ../Doc/library/turtle.rst:2457 +#: ../Doc/library/turtle.rst:2720 msgid "simple design" msgstr "diseño simple" -#: ../Doc/library/turtle.rst:2457 +#: ../Doc/library/turtle.rst:2720 msgid "turtles on two canvases" msgstr "tortugas en dos lienzos (*two_canvases*)" -#: ../Doc/library/turtle.rst:2460 -msgid "wikipedia" -msgstr "wikipedia" - -#: ../Doc/library/turtle.rst:2460 -msgid "a pattern from the wikipedia article on turtle graphics" -msgstr "" -"un patrón del artículo de wikipedia sobre gráficos de tortuga (*turtle*)" - -#: ../Doc/library/turtle.rst:2460 -msgid ":func:`clone`, :func:`undo`" -msgstr ":func:`clone`, :func:`undo`" - -#: ../Doc/library/turtle.rst:2463 +#: ../Doc/library/turtle.rst:2723 msgid "yinyang" msgstr "yinyang" -#: ../Doc/library/turtle.rst:2463 +#: ../Doc/library/turtle.rst:2723 msgid "another elementary example" msgstr "otro ejemplo elemental" -#: ../Doc/library/turtle.rst:2466 +#: ../Doc/library/turtle.rst:2726 msgid "Have fun!" msgstr "¡Diviértete!" -#: ../Doc/library/turtle.rst:2470 +#: ../Doc/library/turtle.rst:2730 msgid "Changes since Python 2.6" msgstr "Cambios desde Python 2.6" -#: ../Doc/library/turtle.rst:2472 +#: ../Doc/library/turtle.rst:2732 +#, fuzzy msgid "" -"The methods :meth:`Turtle.tracer`, :meth:`Turtle.window_width` and :meth:" -"`Turtle.window_height` have been eliminated. Methods with these names and " -"functionality are now available only as methods of :class:`Screen`. The " -"functions derived from these remain available. (In fact already in Python " -"2.6 these methods were merely duplications of the corresponding :class:" -"`TurtleScreen`/:class:`Screen`-methods.)" +"The methods :func:`Turtle.tracer `, :func:`Turtle.window_width " +"` and :func:`Turtle.window_height ` have been " +"eliminated. Methods with these names and functionality are now available " +"only as methods of :class:`Screen`. The functions derived from these remain " +"available. (In fact already in Python 2.6 these methods were merely " +"duplications of the corresponding :class:`TurtleScreen`/:class:`Screen` " +"methods.)" msgstr "" "Los métodos :meth:`Turtle.tracer`, :meth:`Turtle.window_width` y :meth:" "`Turtle.window_height` han sido eliminados. Los métodos con estos nombres y " @@ -3056,38 +3287,42 @@ msgstr "" "2.6 estos métodos eran simplemente duplicaciones de los métodos " "correspondientes :class:`TurtleScreen`/:class:`Screen`)." -#: ../Doc/library/turtle.rst:2480 +#: ../Doc/library/turtle.rst:2740 +#, fuzzy msgid "" -"The method :meth:`Turtle.fill` has been eliminated. The behaviour of :meth:" -"`begin_fill` and :meth:`end_fill` have changed slightly: now every filling-" +"The method :func:`!Turtle.fill` has been eliminated. The behaviour of :func:" +"`begin_fill` and :func:`end_fill` have changed slightly: now every filling " "process must be completed with an ``end_fill()`` call." msgstr "" "El método :meth:`Turtle.fill` ha sido eliminado. El comportamiento de :meth:" "`begin_fill` y :meth:`end_fill` ha cambiado ligeramente: ahora cada proceso " "de llenado debe completarse con una llamada ``end_fill()``." -#: ../Doc/library/turtle.rst:2485 +#: ../Doc/library/turtle.rst:2745 +#, fuzzy msgid "" -"A method :meth:`Turtle.filling` has been added. It returns a boolean value: " -"``True`` if a filling process is under way, ``False`` otherwise. This " -"behaviour corresponds to a ``fill()`` call without arguments in Python 2.6." +"A method :func:`Turtle.filling ` has been added. It returns a " +"boolean value: ``True`` if a filling process is under way, ``False`` " +"otherwise. This behaviour corresponds to a ``fill()`` call without arguments " +"in Python 2.6." msgstr "" "Se ha añadido un método :meth:`Turtle.filling`. Retorna un valor booleano: " "``True`` si hay un proceso de llenado en curso, ``False`` en caso contrario. " "Este comportamiento corresponde a una llamada ``fill()`` sin argumentos en " "Python 2.6." -#: ../Doc/library/turtle.rst:2491 +#: ../Doc/library/turtle.rst:2751 msgid "Changes since Python 3.0" msgstr "Cambios desde Python 3.0" -#: ../Doc/library/turtle.rst:2493 +#: ../Doc/library/turtle.rst:2753 +#, fuzzy msgid "" -"The methods :meth:`Turtle.shearfactor`, :meth:`Turtle.shapetransform` and :" -"meth:`Turtle.get_shapepoly` have been added. Thus the full range of regular " -"linear transforms is now available for transforming turtle shapes. :meth:" -"`Turtle.tiltangle` has been enhanced in functionality: it now can be used to " -"get or set the tiltangle. :meth:`Turtle.settiltangle` has been deprecated." +"The :class:`Turtle` methods :func:`shearfactor`, :func:`shapetransform` and :" +"func:`get_shapepoly` have been added. Thus the full range of regular linear " +"transforms is now available for transforming turtle shapes. :func:" +"`tiltangle` has been enhanced in functionality: it now can be used to get or " +"set the tilt angle. :func:`settiltangle` has been deprecated." msgstr "" "Se han añadido los métodos :meth:`Turtle.shearfactor`, :meth:`Turtle." "shapetransform` y :meth:`Turtle.get_shapepoly`. Por lo tanto, ahora está " @@ -3096,40 +3331,166 @@ msgstr "" "funcionalidad: ahora se puede usar para obtener o establecer el tiltangle. :" "meth:`Turtle.settiltangle` ha quedado obsoleto." -#: ../Doc/library/turtle.rst:2500 +#: ../Doc/library/turtle.rst:2760 +#, fuzzy msgid "" -"The method :meth:`Screen.onkeypress` has been added as a complement to :meth:" -"`Screen.onkey` which in fact binds actions to the keyrelease event. " -"Accordingly the latter has got an alias: :meth:`Screen.onkeyrelease`." +"The :class:`Screen` method :func:`onkeypress` has been added as a complement " +"to :func:`onkey`. As the latter binds actions to the key release event, an " +"alias: :func:`onkeyrelease` was also added for it." msgstr "" "El método :meth:`Screen.onkeypress` se ha agregado como complemento a :meth:" "`Screen.onkey` que, de hecho, une las acciones al evento keyrelease. En " "consecuencia, este último tiene un alias: :meth:`Screen.onkeyrelease`." -#: ../Doc/library/turtle.rst:2504 +#: ../Doc/library/turtle.rst:2764 msgid "" -"The method :meth:`Screen.mainloop` has been added. So when working only " -"with Screen and Turtle objects one must not additionally import :func:" -"`mainloop` anymore." +"The method :func:`Screen.mainloop ` has been added, so there is no " +"longer a need to use the standalone :func:`mainloop` function when working " +"with :class:`Screen` and :class:`Turtle` objects." msgstr "" -"Se ha añadido el método :meth:`Screen.mainloop`. Entonces, cuando se trabaja " -"solo con objetos Screen y Turtle, ya no se debe importar adicionalmente :" -"func:`mainloop`." -#: ../Doc/library/turtle.rst:2508 +#: ../Doc/library/turtle.rst:2768 +#, fuzzy msgid "" -"Two input methods has been added :meth:`Screen.textinput` and :meth:`Screen." -"numinput`. These popup input dialogs and return strings and numbers " -"respectively." +"Two input methods have been added: :func:`Screen.textinput ` and :" +"func:`Screen.numinput `. These pop up input dialogs and return " +"strings and numbers respectively." msgstr "" "Se han añadido dos métodos de entrada :meth:`Screen.textinput` y :meth:" "`Screen.numinput`. Estos cuadros de diálogo de entrada emergentes y retornan " "cadenas y números respectivamente." -#: ../Doc/library/turtle.rst:2512 +#: ../Doc/library/turtle.rst:2772 msgid "" "Two example scripts :file:`tdemo_nim.py` and :file:`tdemo_round_dance.py` " "have been added to the :file:`Lib/turtledemo` directory." msgstr "" "Se han agregado dos scripts de ejemplo :file:`tdemo_nim.py` y :file:" "`tdemo_round_dance.py` al directorio :file:`Lib/turtledemo`." + +#~ msgid "" +#~ "Imagine a robotic turtle starting at (0, 0) in the x-y plane. After an " +#~ "``import turtle``, give it the command ``turtle.forward(15)``, and it " +#~ "moves (on-screen!) 15 pixels in the direction it is facing, drawing a " +#~ "line as it moves. Give it the command ``turtle.right(25)``, and it " +#~ "rotates in-place 25 degrees clockwise." +#~ msgstr "" +#~ "Imagina una tortuga robot que empieza en las coordenadas (0, 0) en un " +#~ "plano x-y. Después de un ``import turtle``, dele el comando ``turtle." +#~ "forward(15)``, y se mueve (¡en la pantalla!) 15 pixeles en la dirección " +#~ "en la que se encuentra, dibujando una línea mientras se mueve. Dele el " +#~ "comando ``turtle.right(25)``, y rotará en el lugar, 25 grados, en sentido " +#~ "horario." + +#~ msgid "" +#~ "By combining together these and similar commands, intricate shapes and " +#~ "pictures can easily be drawn." +#~ msgstr "" +#~ "Al combinar estos comandos y otros similares, se pueden dibujar figuras " +#~ "intrincadas y formas." + +#~ msgid "" +#~ "The :mod:`turtle` module is an extended reimplementation of the same-" +#~ "named module from the Python standard distribution up to version Python " +#~ "2.5." +#~ msgstr "" +#~ "El módulo :mod:`turtle` es una reimplementación extendida del mismo " +#~ "módulo de la distribución estándar Python hasta la versión 2.5." + +#~ msgid "" +#~ "It tries to keep the merits of the old turtle module and to be (nearly) " +#~ "100% compatible with it. This means in the first place to enable the " +#~ "learning programmer to use all the commands, classes and methods " +#~ "interactively when using the module from within IDLE run with the ``-n`` " +#~ "switch." +#~ msgstr "" +#~ "Trata de mantener los méritos del viejo módulo y ser (casi) 100% " +#~ "compatible con él. Esto implica en primer lugar, habilitar al programador " +#~ "que está aprendiendo, el uso de todos los comandos, clases y métodos de " +#~ "forma interactiva cuando usa el módulo desde el IDLE ejecutado con la " +#~ "opción ``-n``." + +#~ msgid "" +#~ "The turtle module provides turtle graphics primitives, in both object-" +#~ "oriented and procedure-oriented ways. Because it uses :mod:`tkinter` for " +#~ "the underlying graphics, it needs a version of Python installed with Tk " +#~ "support." +#~ msgstr "" +#~ "El módulo turtle provee las primitivas gráficas, tanto en orientación " +#~ "procedimental como orientada a objetos. Como usa el módulo :mod:`tkinter` " +#~ "para las gráficas subyacentes, necesita tener instalada una versión de " +#~ "Python con soporte TK." + +#~ msgid "The object-oriented interface uses essentially two+two classes:" +#~ msgstr "La interface orientada a objetos usa esencialmente clases dos+dos:" + +#~ msgid "" +#~ "The :class:`TurtleScreen` class defines graphics windows as a playground " +#~ "for the drawing turtles. Its constructor needs a :class:`tkinter.Canvas` " +#~ "or a :class:`ScrolledCanvas` as argument. It should be used when :mod:" +#~ "`turtle` is used as part of some application." +#~ msgstr "" +#~ "La clase :class:`TurtleScreen` define una ventana gráfica como base para " +#~ "las tortugas dibujantes. Su constructor necesita una clase :class:" +#~ "`tkinter.Canvas` o una a :class:`ScrolledCanvas` como argumento. Se debe " +#~ "usar cuando :mod:`turtle` es usado como parte de una aplicación." + +#~ msgid "" +#~ "The function :func:`Screen` returns a singleton object of a :class:" +#~ "`TurtleScreen` subclass. This function should be used when :mod:`turtle` " +#~ "is used as a standalone tool for doing graphics. As a singleton object, " +#~ "inheriting from its class is not possible." +#~ msgstr "" +#~ "La función :func:`Screen` devuelve un objeto *singleton* de la subclase :" +#~ "class:`TurtleScreen`. Esta función debe utilizarse cuando :mod:`turtle` " +#~ "se usa como una herramienta independiente para hacer gráficos. Siendo un " +#~ "objeto singleton, no es posible que tenga herencias de su clase." + +#~ msgid "" +#~ "All methods of TurtleScreen/Screen also exist as functions, i.e. as part " +#~ "of the procedure-oriented interface." +#~ msgstr "" +#~ "Todos los métodos de TurtleScreen/Screen también existen como funciones. " +#~ "Por ejemplo. como parte de la interface orientada a procedimientos." + +#~ msgid "" +#~ ":class:`RawTurtle` (alias: :class:`RawPen`) defines Turtle objects which " +#~ "draw on a :class:`TurtleScreen`. Its constructor needs a Canvas, " +#~ "ScrolledCanvas or TurtleScreen as argument, so the RawTurtle objects know " +#~ "where to draw." +#~ msgstr "" +#~ ":class:`RawTurtle` (alias: :class:`RawPen`) Define los objetos Turtle con " +#~ "los cuales dibujar con la clase :class:`TurtleScreen`. Su constructor " +#~ "necesita como argumento un *Canvas, ScrolledCanvas o TurtleScreen*, así " +#~ "el objeto *RawTurtle* sabe donde dibujar." + +#~ msgid "" +#~ "Derived from RawTurtle is the subclass :class:`Turtle` (alias: :class:" +#~ "`Pen`), which draws on \"the\" :class:`Screen` instance which is " +#~ "automatically created, if not already present." +#~ msgstr "" +#~ "Derivada de *RawTurtle* está la subclase :class:`Turtle` (alias: :class:" +#~ "`Pen`), que dibuja en \"la\" instancia :class:`Screen` que se crea " +#~ "automáticamente, si no está presente." + +#~ msgid "" +#~ "All methods of RawTurtle/Turtle also exist as functions, i.e. part of the " +#~ "procedure-oriented interface." +#~ msgstr "" +#~ "Todos los métodos de *RawTurtle/Turtle* también existen como funciones. " +#~ "Por ejemplo, como parte de la interface orientada a procedimientos." + +#~ msgid "Overview of available Turtle and Screen methods" +#~ msgstr "Reseña de los métodos disponibles para Turtle y *Screen*" + +#~ msgid "wikipedia" +#~ msgstr "wikipedia" + +#~ msgid "" +#~ "The method :meth:`Screen.mainloop` has been added. So when working only " +#~ "with Screen and Turtle objects one must not additionally import :func:" +#~ "`mainloop` anymore." +#~ msgstr "" +#~ "Se ha añadido el método :meth:`Screen.mainloop`. Entonces, cuando se " +#~ "trabaja solo con objetos Screen y Turtle, ya no se debe importar " +#~ "adicionalmente :func:`mainloop`." diff --git a/library/types.po b/library/types.po index 88d905aefc..706cd80a80 100644 --- a/library/types.po +++ b/library/types.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-12-14 07:45-0500\n" "Last-Translator: Adolfo Hristo David Roque Gámez \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/types.rst:2 msgid ":mod:`types` --- Dynamic type creation and names for built-in types" @@ -154,13 +154,14 @@ msgstr "" "Resuelve las entradas MRO dinámicamente según lo especificado por :pep:`560`." #: ../Doc/library/types.rst:76 +#, fuzzy msgid "" "This function looks for items in *bases* that are not instances of :class:" -"`type`, and returns a tuple where each such object that has an " -"``__mro_entries__`` method is replaced with an unpacked result of calling " -"this method. If a *bases* item is an instance of :class:`type`, or it " -"doesn't have an ``__mro_entries__`` method, then it is included in the " -"return tuple unchanged." +"`type`, and returns a tuple where each such object that has an :meth:" +"`~object.__mro_entries__` method is replaced with an unpacked result of " +"calling this method. If a *bases* item is an instance of :class:`type`, or " +"it doesn't have an :meth:`!__mro_entries__` method, then it is included in " +"the return tuple unchanged." msgstr "" "Esta función busca elementos en *bases* que no son instancias de :class:" "`type` y retorna una tupla donde cada uno de estos objetos que tiene un " @@ -170,14 +171,33 @@ msgstr "" "tupla sin cambios." #: ../Doc/library/types.rst:87 +msgid "" +"Return the tuple of objects originally given as the bases of *cls* before " +"the :meth:`~object.__mro_entries__` method has been called on any bases " +"(following the mechanisms laid out in :pep:`560`). This is useful for " +"introspecting :ref:`Generics `." +msgstr "" + +#: ../Doc/library/types.rst:92 +msgid "" +"For classes that have an ``__orig_bases__`` attribute, this function returns " +"the value of ``cls.__orig_bases__``. For classes without the " +"``__orig_bases__`` attribute, ``cls.__bases__`` is returned." +msgstr "" + +#: ../Doc/library/types.rst:97 +msgid "Examples::" +msgstr "" + +#: ../Doc/library/types.rst:127 msgid ":pep:`560` - Core support for typing module and generic types" msgstr ":pep:`560` - Soporte principal para módulos de tipo y tipos genéricos" -#: ../Doc/library/types.rst:91 +#: ../Doc/library/types.rst:131 msgid "Standard Interpreter Types" msgstr "Tipos de Intérpretes Estándar" -#: ../Doc/library/types.rst:93 +#: ../Doc/library/types.rst:133 msgid "" "This module provides names for many of the types that are required to " "implement a Python interpreter. It deliberately avoids including some of the " @@ -189,7 +209,7 @@ msgstr "" "algunos de los tipos que surgen sólo accidentalmente durante el " "procesamiento, tal como el tipo ``listiterator``." -#: ../Doc/library/types.rst:98 +#: ../Doc/library/types.rst:138 msgid "" "Typical use of these names is for :func:`isinstance` or :func:`issubclass` " "checks." @@ -197,7 +217,7 @@ msgstr "" "El uso típico de estos nombres es para verificar :func:`isinstance` o :func:" "`issubclass`." -#: ../Doc/library/types.rst:102 +#: ../Doc/library/types.rst:142 msgid "" "If you instantiate any of these types, note that signatures may vary between " "Python versions." @@ -205,15 +225,15 @@ msgstr "" "Si se crea una instancia de cualquiera de estos tipos, tenga en cuenta que " "las firmas pueden variar entre las versiones de Python." -#: ../Doc/library/types.rst:104 +#: ../Doc/library/types.rst:144 msgid "Standard names are defined for the following types:" msgstr "Los nombres estándar son definidos para los siguientes tipos:" -#: ../Doc/library/types.rst:108 +#: ../Doc/library/types.rst:148 msgid "The type of :data:`None`." msgstr "El tipo de :data:`None`." -#: ../Doc/library/types.rst:116 +#: ../Doc/library/types.rst:156 msgid "" "The type of user-defined functions and functions created by :keyword:" "`lambda` expressions." @@ -221,7 +241,7 @@ msgstr "" "El tipo de funciones definidas por el usuario y funciones creadas por " "expresiones :keyword:`lambda`." -#: ../Doc/library/types.rst:119 +#: ../Doc/library/types.rst:159 msgid "" "Raises an :ref:`auditing event ` ``function.__new__`` with " "argument ``code``." @@ -229,7 +249,7 @@ msgstr "" "Lanza un :ref:`auditing event ` ``function.__new__`` con el " "argumento ``code``." -#: ../Doc/library/types.rst:121 +#: ../Doc/library/types.rst:161 msgid "" "The audit event only occurs for direct instantiation of function objects, " "and is not raised for normal compilation." @@ -237,7 +257,7 @@ msgstr "" "El evento auditor solo ocurre para la instanciación directa de objetos de " "código y no se genera para la compilación normal." -#: ../Doc/library/types.rst:127 +#: ../Doc/library/types.rst:167 msgid "" "The type of :term:`generator`-iterator objects, created by generator " "functions." @@ -245,7 +265,7 @@ msgstr "" "El tipo de iterador :term:`generator` de objetos, creados por funciones " "generadoras." -#: ../Doc/library/types.rst:133 +#: ../Doc/library/types.rst:173 msgid "" "The type of :term:`coroutine` objects, created by :keyword:`async def` " "functions." @@ -253,7 +273,7 @@ msgstr "" "El tipo de objetos :term:`coroutine`, creados por funciones :keyword:`async " "def`." -#: ../Doc/library/types.rst:141 +#: ../Doc/library/types.rst:181 msgid "" "The type of :term:`asynchronous generator`-iterator objects, created by " "asynchronous generator functions." @@ -261,11 +281,11 @@ msgstr "" "El tipo de iterador :term:`asynchronous generator` de objetos, creados por " "funciones generadoras asíncronas." -#: ../Doc/library/types.rst:151 +#: ../Doc/library/types.rst:191 msgid "The type for code objects such as returned by :func:`compile`." msgstr "El tipo de objetos de código cómo los retornados por :func:`compile`." -#: ../Doc/library/types.rst:153 +#: ../Doc/library/types.rst:193 msgid "" "Raises an :ref:`auditing event ` ``code.__new__`` with arguments " "``code``, ``filename``, ``name``, ``argcount``, ``posonlyargcount``, " @@ -276,7 +296,7 @@ msgstr "" "``posonlyargcount``, ``kwonlyargcount``, ``nlocals``, ``stacksize``, " "``flags``." -#: ../Doc/library/types.rst:155 +#: ../Doc/library/types.rst:195 msgid "" "Note that the audited arguments may not match the names or positions " "required by the initializer. The audit event only occurs for direct " @@ -287,14 +307,14 @@ msgstr "" "ocurre para la instanciación directa de objetos de código y no se genera " "para la compilación normal." -#: ../Doc/library/types.rst:161 +#: ../Doc/library/types.rst:201 msgid "" "Return a copy of the code object with new values for the specified fields." msgstr "" "Retorna una copia del objeto de código con nuevos valores para los campos " "especificados." -#: ../Doc/library/types.rst:167 +#: ../Doc/library/types.rst:207 msgid "" "The type for cell objects: such objects are used as containers for a " "function's free variables." @@ -302,11 +322,11 @@ msgstr "" "El tipo de objetos de celda: estos objetos se utilizan como contenedores " "para las variables libres de una función." -#: ../Doc/library/types.rst:175 +#: ../Doc/library/types.rst:215 msgid "The type of methods of user-defined class instances." msgstr "El tipo de métodos de instancias de clase definidas por el usuario." -#: ../Doc/library/types.rst:181 +#: ../Doc/library/types.rst:221 msgid "" "The type of built-in functions like :func:`len` or :func:`sys.exit`, and " "methods of built-in classes. (Here, the term \"built-in\" means \"written " @@ -316,7 +336,7 @@ msgstr "" "métodos de clases integradas. (Aquí, el término \"incorporado\" significa " "\"escrito en C\".)" -#: ../Doc/library/types.rst:188 +#: ../Doc/library/types.rst:228 msgid "" "The type of methods of some built-in data types and base classes such as :" "meth:`object.__init__` or :meth:`object.__lt__`." @@ -324,7 +344,7 @@ msgstr "" "El tipo de métodos de algunos tipos de datos integrados y clases base como :" "meth:`object.__init__` o :meth:`object.__lt__`." -#: ../Doc/library/types.rst:196 +#: ../Doc/library/types.rst:236 msgid "" "The type of *bound* methods of some built-in data types and base classes. " "For example it is the type of :code:`object().__str__`." @@ -332,18 +352,18 @@ msgstr "" "El tipo de métodos *bound* de algunos tipos de datos integrados y clases " "base. Por ejemplo, es el tipo de :code:`object().__str__`." -#: ../Doc/library/types.rst:204 +#: ../Doc/library/types.rst:244 msgid "The type of :data:`NotImplemented`." msgstr "El tipo de :data:`NotImplemented`." -#: ../Doc/library/types.rst:211 +#: ../Doc/library/types.rst:251 msgid "" "The type of methods of some built-in data types such as :meth:`str.join`." msgstr "" "El tipo de métodos de algunos tipos de datos integrados como :meth:`str." "join`." -#: ../Doc/library/types.rst:218 +#: ../Doc/library/types.rst:258 msgid "" "The type of *unbound* class methods of some built-in data types such as " "``dict.__dict__['fromkeys']``." @@ -351,7 +371,7 @@ msgstr "" "El tipo de métodos de clase *unbound* de algunos tipos de datos integrados " "como ``dict.__dict__['fromkeys']``." -#: ../Doc/library/types.rst:226 +#: ../Doc/library/types.rst:266 msgid "" "The type of :term:`modules `. The constructor takes the name of the " "module to be created and optionally its :term:`docstring`." @@ -359,7 +379,7 @@ msgstr "" "El tipo de :term:`módulos `. El constructor toma el nombre del " "módulo que se va a crear y de forma opcional su :term:`docstring`." -#: ../Doc/library/types.rst:230 +#: ../Doc/library/types.rst:270 msgid "" "Use :func:`importlib.util.module_from_spec` to create a new module if you " "wish to set the various import-controlled attributes." @@ -367,16 +387,16 @@ msgstr "" "Utilice :func:`importlib.util.module_from_spec` para crear un nuevo módulo " "si desea establecer los diversos atributos controlados por importación." -#: ../Doc/library/types.rst:235 +#: ../Doc/library/types.rst:275 msgid "The :term:`docstring` of the module. Defaults to ``None``." msgstr "El :term:`docstring` del módulo. El valor predeterminado es ``None``." -#: ../Doc/library/types.rst:239 +#: ../Doc/library/types.rst:279 msgid "The :term:`loader` which loaded the module. Defaults to ``None``." msgstr "" "El :term:`loader` que cargó el módulo. El valor predeterminado es ``None``." -#: ../Doc/library/types.rst:241 +#: ../Doc/library/types.rst:281 #, fuzzy msgid "" "This attribute is to match :attr:`importlib.machinery.ModuleSpec.loader` as " @@ -385,7 +405,7 @@ msgstr "" "Este atributo va a coincidir con :attr:`importlib.machinery.ModuleSpec." "loader` como se almacena en el objeto attr:`__spec__`." -#: ../Doc/library/types.rst:245 +#: ../Doc/library/types.rst:285 msgid "" "A future version of Python may stop setting this attribute by default. To " "guard against this potential change, preferably read from the :attr:" @@ -397,12 +417,12 @@ msgstr "" "atributo :attr:`__spec__` en su lugar o use ``getattr(module, " "\"__loader__\", None)`` si explícitamente necesita usar este atributo." -#: ../Doc/library/types.rst:251 ../Doc/library/types.rst:276 +#: ../Doc/library/types.rst:291 ../Doc/library/types.rst:316 msgid "Defaults to ``None``. Previously the attribute was optional." msgstr "" "El valor predeterminado es ``None``. Anteriormente el atributo era opcional." -#: ../Doc/library/types.rst:256 +#: ../Doc/library/types.rst:296 msgid "" "The name of the module. Expected to match :attr:`importlib.machinery." "ModuleSpec.name`." @@ -410,7 +430,7 @@ msgstr "" "El nombre del módulo. Se espera que coincida con :attr:`importlib.machinery." "ModuleSpec.name`." -#: ../Doc/library/types.rst:261 +#: ../Doc/library/types.rst:301 msgid "" "Which :term:`package` a module belongs to. If the module is top-level (i.e. " "not a part of any specific package) then the attribute should be set to " @@ -423,7 +443,7 @@ msgstr "" "del paquete (el cual puede ser :attr:`__name__` si el módulo es un paquete). " "El valor predeterminado es ``None``." -#: ../Doc/library/types.rst:266 +#: ../Doc/library/types.rst:306 #, fuzzy msgid "" "This attribute is to match :attr:`importlib.machinery.ModuleSpec.parent` as " @@ -432,7 +452,7 @@ msgstr "" "Este atributo va a coincidir con :attr:`importlib.machinery.ModuleSpec." "parent` como se guarda en el objeto attr:`__spec__`." -#: ../Doc/library/types.rst:270 +#: ../Doc/library/types.rst:310 msgid "" "A future version of Python may stop setting this attribute by default. To " "guard against this potential change, preferably read from the :attr:" @@ -444,7 +464,7 @@ msgstr "" "atributo :attr:`__spec__` en su lugar o use ``getattr(module, " "\"__package__\", None)`` si explícitamente necesita usar este atributo." -#: ../Doc/library/types.rst:281 +#: ../Doc/library/types.rst:321 msgid "" "A record of the module's import-system-related state. Expected to be an " "instance of :class:`importlib.machinery.ModuleSpec`." @@ -452,11 +472,11 @@ msgstr "" "Un registro del estado relacionado con el sistema de importación del módulo. " "Se espera que sea una instancia de :class:`importlib.machinery.ModuleSpec`." -#: ../Doc/library/types.rst:289 +#: ../Doc/library/types.rst:329 msgid "The type of :data:`Ellipsis`." msgstr "El tipo de :data:`Ellipsis`." -#: ../Doc/library/types.rst:295 +#: ../Doc/library/types.rst:335 msgid "" "The type of :ref:`parameterized generics ` such as " "``list[int]``." @@ -464,7 +484,7 @@ msgstr "" "El tipo de :ref:`parameterized generics ` como " "``list[int]``." -#: ../Doc/library/types.rst:298 +#: ../Doc/library/types.rst:338 msgid "" "``t_origin`` should be a non-parameterized generic class, such as ``list``, " "``tuple`` or ``dict``. ``t_args`` should be a :class:`tuple` (possibly of " @@ -474,21 +494,40 @@ msgstr "" "``tuple`` o ``dict``. ``t_args`` debe ser una :class:`tuple` (posiblemente " "de longitud 1) de tipos que parametriza ``t_origin``::" -#: ../Doc/library/types.rst:311 +#: ../Doc/library/types.rst:351 msgid "This type can now be subclassed." msgstr "Este tipo ahora puede heredarse." -#: ../Doc/library/types.rst:317 +#: ../Doc/library/types.rst:357 +msgid ":ref:`Generic Alias Types`" +msgstr "" + +#: ../Doc/library/types.rst:357 +msgid "In-depth documentation on instances of :class:`!types.GenericAlias`" +msgstr "" + +#: ../Doc/library/types.rst:359 +msgid ":pep:`585` - Type Hinting Generics In Standard Collections" +msgstr "" + +#: ../Doc/library/types.rst:360 +msgid "Introducing the :class:`!types.GenericAlias` class" +msgstr "" + +#: ../Doc/library/types.rst:364 msgid "The type of :ref:`union type expressions`." msgstr "El tipo de :ref:`union type expressions`." -#: ../Doc/library/types.rst:323 -msgid "The type of traceback objects such as found in ``sys.exc_info()[2]``." +#: ../Doc/library/types.rst:370 +#, fuzzy +msgid "" +"The type of traceback objects such as found in ``sys.exception()." +"__traceback__``." msgstr "" "El tipo de objetos *traceback* tal como los encontrados en ``sys.exc_info()" "[2]``." -#: ../Doc/library/types.rst:325 +#: ../Doc/library/types.rst:372 msgid "" "See :ref:`the language reference ` for details of the " "available attributes and operations, and guidance on creating tracebacks " @@ -498,7 +537,7 @@ msgstr "" "detalles de los atributos y operaciones disponibles, y orientación sobre " "cómo crear *tracebacks* dinámicamente." -#: ../Doc/library/types.rst:332 +#: ../Doc/library/types.rst:379 msgid "" "The type of frame objects such as found in ``tb.tb_frame`` if ``tb`` is a " "traceback object." @@ -506,7 +545,7 @@ msgstr "" "El tipo de objetos de marco como se encuentra en ``tb.tb_frame`` si ``tb`` " "es un objeto *traceback*." -#: ../Doc/library/types.rst:335 +#: ../Doc/library/types.rst:382 msgid "" "See :ref:`the language reference ` for details of the " "available attributes and operations." @@ -514,7 +553,7 @@ msgstr "" "Consulte :ref:`la referencia de lenguaje ` para obtener más " "información sobre los atributos y operaciones disponibles." -#: ../Doc/library/types.rst:341 +#: ../Doc/library/types.rst:388 msgid "" "The type of objects defined in extension modules with ``PyGetSetDef``, such " "as ``FrameType.f_locals`` or ``array.array.typecode``. This type is used as " @@ -527,7 +566,7 @@ msgstr "" "propósito que el tipo :class:`property`, pero para las clases definidas en " "los módulos de extensión." -#: ../Doc/library/types.rst:349 +#: ../Doc/library/types.rst:396 msgid "" "The type of objects defined in extension modules with ``PyMemberDef``, such " "as ``datetime.timedelta.days``. This type is used as descriptor for simple " @@ -541,7 +580,7 @@ msgstr "" "tiene el mismo propósito que el tipo :class:`property`, pero para las clases " "definidas en los módulos de extensión." -#: ../Doc/library/types.rst:356 +#: ../Doc/library/types.rst:403 msgid "" "In other implementations of Python, this type may be identical to " "``GetSetDescriptorType``." @@ -549,7 +588,7 @@ msgstr "" "En otras implementaciones de Python, este tipo puede ser idéntico a " "``GetSetDescriptorType``." -#: ../Doc/library/types.rst:361 +#: ../Doc/library/types.rst:408 msgid "" "Read-only proxy of a mapping. It provides a dynamic view on the mapping's " "entries, which means that when the mapping changes, the view reflects these " @@ -559,7 +598,7 @@ msgstr "" "entradas de la asignación, lo que significa que cuando cambia la asignación, " "la vista refleja estos cambios." -#: ../Doc/library/types.rst:369 +#: ../Doc/library/types.rst:416 msgid "" "Updated to support the new union (``|``) operator from :pep:`584`, which " "simply delegates to the underlying mapping." @@ -567,14 +606,14 @@ msgstr "" "Actualizado para soportar el nuevo operador de unión (``|``) de :pep:`584`, " "que simplemente delega al mapeo subyacente." -#: ../Doc/library/types.rst:374 +#: ../Doc/library/types.rst:421 msgid "" "Return ``True`` if the underlying mapping has a key *key*, else ``False``." msgstr "" "Retorna ``True`` si la asignación subyacente tiene una clave *key*, de lo " "contrario ``False``." -#: ../Doc/library/types.rst:379 +#: ../Doc/library/types.rst:426 msgid "" "Return the item of the underlying mapping with key *key*. Raises a :exc:" "`KeyError` if *key* is not in the underlying mapping." @@ -582,7 +621,7 @@ msgstr "" "Retorna el elemento de la asignación subyacente con la clave *key*. Lanza " "un :exc:`KeyError` si *key* no está en la asignación subyacente." -#: ../Doc/library/types.rst:384 +#: ../Doc/library/types.rst:431 msgid "" "Return an iterator over the keys of the underlying mapping. This is a " "shortcut for ``iter(proxy.keys())``." @@ -590,15 +629,15 @@ msgstr "" "Retorna un iterador sobre las claves de la asignación subyacente. Este es " "un método abreviado para ``iter(proxy.keys())``." -#: ../Doc/library/types.rst:389 +#: ../Doc/library/types.rst:436 msgid "Return the number of items in the underlying mapping." msgstr "Retorna el número de elementos de la asignación subyacente." -#: ../Doc/library/types.rst:393 +#: ../Doc/library/types.rst:440 msgid "Return a shallow copy of the underlying mapping." msgstr "Retorna una copia superficial de la asignación subyacente." -#: ../Doc/library/types.rst:397 +#: ../Doc/library/types.rst:444 msgid "" "Return the value for *key* if *key* is in the underlying mapping, else " "*default*. If *default* is not given, it defaults to ``None``, so that this " @@ -609,31 +648,36 @@ msgstr "" "predeterminado es ``None``, por lo que este método nunca lanza un :exc:" "`KeyError`." -#: ../Doc/library/types.rst:403 +#: ../Doc/library/types.rst:450 msgid "" "Return a new view of the underlying mapping's items (``(key, value)`` pairs)." msgstr "" "Retorna una nueva vista de los elementos de la asignación subyacente (en " "pares ``(key, value)``)." -#: ../Doc/library/types.rst:408 +#: ../Doc/library/types.rst:455 msgid "Return a new view of the underlying mapping's keys." msgstr "Retorna una nueva vista de las claves de la asignación subyacente." -#: ../Doc/library/types.rst:412 +#: ../Doc/library/types.rst:459 msgid "Return a new view of the underlying mapping's values." msgstr "Retorna una nueva vista de los valores de la asignación subyacente." -#: ../Doc/library/types.rst:416 +#: ../Doc/library/types.rst:463 msgid "Return a reverse iterator over the keys of the underlying mapping." msgstr "" "Retorna un iterador inverso sobre las claves de la asignación subyacente." -#: ../Doc/library/types.rst:422 +#: ../Doc/library/types.rst:469 +#, fuzzy +msgid "Return a hash of the underlying mapping." +msgstr "Retorna una copia superficial de la asignación subyacente." + +#: ../Doc/library/types.rst:475 msgid "Additional Utility Classes and Functions" msgstr "Clases y funciones de utilidad adicionales" -#: ../Doc/library/types.rst:426 +#: ../Doc/library/types.rst:479 msgid "" "A simple :class:`object` subclass that provides attribute access to its " "namespace, as well as a meaningful repr." @@ -641,7 +685,7 @@ msgstr "" "Una subclase simple :class:`object` que proporciona acceso de atributo a su " "espacio de nombre, así como una representación significativa." -#: ../Doc/library/types.rst:429 +#: ../Doc/library/types.rst:482 msgid "" "Unlike :class:`object`, with ``SimpleNamespace`` you can add and remove " "attributes. If a ``SimpleNamespace`` object is initialized with keyword " @@ -652,11 +696,11 @@ msgstr "" "argumentos de palabra clave, estos se agregan directamente al espacio de " "nombres subyacente." -#: ../Doc/library/types.rst:433 +#: ../Doc/library/types.rst:486 msgid "The type is roughly equivalent to the following code::" msgstr "El tipo es aproximadamente equivalente al código siguiente::" -#: ../Doc/library/types.rst:448 +#: ../Doc/library/types.rst:501 msgid "" "``SimpleNamespace`` may be useful as a replacement for ``class NS: pass``. " "However, for a structured record type use :func:`~collections.namedtuple` " @@ -666,7 +710,7 @@ msgstr "" "Sin embargo, para un tipo de registro estructurado, utilice :func:" "`~collections.namedtuple` en su lugar." -#: ../Doc/library/types.rst:454 +#: ../Doc/library/types.rst:507 msgid "" "Attribute order in the repr changed from alphabetical to insertion (like " "``dict``)." @@ -674,11 +718,11 @@ msgstr "" "El orden de los atributos en el *repr* cambió de alfabético a orden de " "inserción (como ``dict``)." -#: ../Doc/library/types.rst:460 +#: ../Doc/library/types.rst:513 msgid "Route attribute access on a class to __getattr__." msgstr "Acceso de atributo de ruta en una clase para __getattr__." -#: ../Doc/library/types.rst:462 +#: ../Doc/library/types.rst:515 msgid "" "This is a descriptor, used to define attributes that act differently when " "accessed through an instance and through a class. Instance access remains " @@ -691,7 +735,7 @@ msgstr "" "un atributo a través de una clase se enrutará al método __getattr__ de la " "clase; esto se hace lanzando AttributeError." -#: ../Doc/library/types.rst:467 +#: ../Doc/library/types.rst:520 msgid "" "This allows one to have properties active on an instance, and have virtual " "attributes on the class with the same name (see :class:`enum.Enum` for an " @@ -701,17 +745,19 @@ msgstr "" "virtuales en la clase con el mismo nombre (véase :class:`enum.Enum` para " "obtener un ejemplo)." -#: ../Doc/library/types.rst:474 +#: ../Doc/library/types.rst:527 msgid "Coroutine Utility Functions" msgstr "Funciones de utilidad de corutina" -#: ../Doc/library/types.rst:478 +#: ../Doc/library/types.rst:531 +#, fuzzy msgid "" "This function transforms a :term:`generator` function into a :term:" "`coroutine function` which returns a generator-based coroutine. The " "generator-based coroutine is still a :term:`generator iterator`, but is also " "considered to be a :term:`coroutine` object and is :term:`awaitable`. " -"However, it may not necessarily implement the :meth:`__await__` method." +"However, it may not necessarily implement the :meth:`~object.__await__` " +"method." msgstr "" "Esta función transforma una función :term:`generador` en una función :term:" "`coroutine` que retorna una corrutina basada en un generador. La corrutina " @@ -719,11 +765,11 @@ msgstr "" "también se considera un objeto :term:`coroutine` y es :term:`awaitable`. " "Sin embargo, no puede necesariamente implementar el método :meth:`__await__`." -#: ../Doc/library/types.rst:485 +#: ../Doc/library/types.rst:538 msgid "If *gen_func* is a generator function, it will be modified in-place." msgstr "Si *gen_func* es una función generadora, se modificará en el lugar." -#: ../Doc/library/types.rst:487 +#: ../Doc/library/types.rst:540 msgid "" "If *gen_func* is not a generator function, it will be wrapped. If it returns " "an instance of :class:`collections.abc.Generator`, the instance will be " @@ -734,3 +780,11 @@ msgstr "" "instancia de :class:`collections.abc.Generator`, la instancia se ajustará en " "un objeto proxy *awaitable*. Todos los demás tipos de objetos se retornarán " "tal cual." + +#: ../Doc/library/types.rst:189 +msgid "built-in function" +msgstr "" + +#: ../Doc/library/types.rst:189 +msgid "compile" +msgstr "" diff --git a/library/typing.po b/library/typing.po index 53c1b178ea..cd48396ace 100644 --- a/library/typing.po +++ b/library/typing.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-01-10 10:24-0300\n" "Last-Translator: Héctor Canto \n" "Language: es\n" @@ -19,18 +19,17 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 2.4.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/typing.rst:3 msgid ":mod:`typing` --- Support for type hints" msgstr ":mod:`typing` --- Soporte para *type hints*" -#: ../Doc/library/typing.rst:10 +#: ../Doc/library/typing.rst:16 msgid "**Source code:** :source:`Lib/typing.py`" msgstr "**Source code:** :source:`Lib/typing.py`" -#: ../Doc/library/typing.rst:14 +#: ../Doc/library/typing.rst:20 msgid "" "The Python runtime does not enforce function and variable type annotations. " "They can be used by third party tools such as type checkers, IDEs, linters, " @@ -40,12 +39,12 @@ msgstr "" "funciones y variables. Pueden ser utilizadas por herramientas de terceros " "como validadores de tipado, IDEs, linters, etc." -#: ../Doc/library/typing.rst:20 +#: ../Doc/library/typing.rst:26 +#, fuzzy msgid "" -"This module provides runtime support for type hints. The most fundamental " -"support consists of the types :data:`Any`, :data:`Union`, :data:`Callable`, :" -"class:`TypeVar`, and :class:`Generic`. For a full specification, please see :" -"pep:`484`. For a simplified introduction to type hints, see :pep:`483`." +"This module provides runtime support for type hints. For the original " +"specification of the typing system, see :pep:`484`. For a simplified " +"introduction to type hints, see :pep:`483`." msgstr "" "Este módulo entrega soporte en tiempo de ejecución para indicadores de tipo. " "El soporte fundamental se encuentra en los tipos :data:`Any`, :data:" @@ -53,14 +52,14 @@ msgstr "" "especificación completa, por favor ver :pep:`484`. Para una introducción " "simplificada a los indicadores de tipo, véase :pep:`483`." -#: ../Doc/library/typing.rst:26 +#: ../Doc/library/typing.rst:31 msgid "" "The function below takes and returns a string and is annotated as follows::" msgstr "" "La siguiente función toma y retorna una cadena de texto, que se anota de la " "siguiente manera::" -#: ../Doc/library/typing.rst:31 +#: ../Doc/library/typing.rst:36 msgid "" "In the function ``greeting``, the argument ``name`` is expected to be of " "type :class:`str` and the return type :class:`str`. Subtypes are accepted as " @@ -70,7 +69,7 @@ msgstr "" "tipo :class:`str` y que el tipo retornado sea :class:`str`. Los subtipos " "también son aceptados como argumento válido." -#: ../Doc/library/typing.rst:35 +#: ../Doc/library/typing.rst:40 msgid "" "New features are frequently added to the ``typing`` module. The " "`typing_extensions `_ package " @@ -81,7 +80,7 @@ msgstr "" "provee backports de estas nuevas funcionalidades para versiones más antiguas " "de Python." -#: ../Doc/library/typing.rst:39 +#: ../Doc/library/typing.rst:44 #, fuzzy msgid "" "For a summary of deprecated features and a deprecation timeline, please see " @@ -90,35 +89,64 @@ msgstr "" "Para un resumen de las funcionalidades obsoletas y una linea de tiempo de " "obsolescencia, por favor ver `Deprecation Timeline of Major Features`_." -#: ../Doc/library/typing.rst:44 +#: ../Doc/library/typing.rst:50 +msgid "" +"`\"Typing cheat sheet\" `_" +msgstr "" + +#: ../Doc/library/typing.rst:50 +msgid "A quick overview of type hints (hosted at the mypy docs)" +msgstr "" + +#: ../Doc/library/typing.rst:55 +msgid "" +"\"Type System Reference\" section of `the mypy docs `_" +msgstr "" + +#: ../Doc/library/typing.rst:53 +msgid "" +"The Python typing system is standardised via PEPs, so this reference should " +"broadly apply to most Python type checkers. (Some parts may still be " +"specific to mypy.)" +msgstr "" + +#: ../Doc/library/typing.rst:59 +msgid "" +"`\"Static Typing with Python\" `_" +msgstr "" + +#: ../Doc/library/typing.rst:58 +#, fuzzy msgid "" -"The documentation at https://typing.readthedocs.io/ serves as useful " -"reference for type system features, useful typing related tools and typing " -"best practices." +"Type-checker-agnostic documentation written by the community detailing type " +"system features, useful typing related tools and typing best practices." msgstr "" "La documentación en https://typing.readthedocs.io/ es una referencia útil " "sobre características de sistemas de tipos, herramientas útiles relativas al " "tipado, y mejores prácticas de tipado." -#: ../Doc/library/typing.rst:51 +#: ../Doc/library/typing.rst:65 msgid "Relevant PEPs" msgstr "PEPs relevantes" -#: ../Doc/library/typing.rst:53 +#: ../Doc/library/typing.rst:67 +#, fuzzy msgid "" "Since the initial introduction of type hints in :pep:`484` and :pep:`483`, a " "number of PEPs have modified and enhanced Python's framework for type " -"annotations. These include:" +"annotations:" msgstr "" "Desde la introducción inicial de los indicadores de tipo en :pep:`484` y :" "pep:`483`, un número de PEPs han modificado y mejorado el sistema de " "anotaciones de tipos de Python. Éstos incluyen:" -#: ../Doc/library/typing.rst:58 +#: ../Doc/library/typing.rst:77 msgid ":pep:`526`: Syntax for Variable Annotations" msgstr ":pep:`526`: Sintaxis para anotaciones de variables" -#: ../Doc/library/typing.rst:58 +#: ../Doc/library/typing.rst:77 msgid "" "*Introducing* syntax for annotating variables outside of function " "definitions, and :data:`ClassVar`" @@ -126,12 +154,12 @@ msgstr "" "*Introduce* sintaxis para anotar variables fuera de definiciones de " "funciones, y :data:`ClassVar`" -#: ../Doc/library/typing.rst:61 +#: ../Doc/library/typing.rst:80 msgid ":pep:`544`: Protocols: Structural subtyping (static duck typing)" msgstr "" ":pep:`544`: Protocolos: herencia estructural (\"duck typing\" estático)" -#: ../Doc/library/typing.rst:61 +#: ../Doc/library/typing.rst:80 msgid "" "*Introducing* :class:`Protocol` and the :func:" "`@runtime_checkable` decorator" @@ -139,11 +167,11 @@ msgstr "" "*Introduce* :class:`Protocol` y el decorador :func:" "`@runtime_checkable`" -#: ../Doc/library/typing.rst:64 +#: ../Doc/library/typing.rst:83 msgid ":pep:`585`: Type Hinting Generics In Standard Collections" msgstr ":pep:`585`: Indicadores de tipo genéricos en las colecciones estándar" -#: ../Doc/library/typing.rst:64 +#: ../Doc/library/typing.rst:83 msgid "" "*Introducing* :class:`types.GenericAlias` and the ability to use standard " "library classes as :ref:`generic types`" @@ -151,46 +179,46 @@ msgstr "" "*Introduce* :class:`types.GenericAlias` y la habilidad de utilizar clases de " "la librería estándar como :ref:`tipos genéricos`" -#: ../Doc/library/typing.rst:66 +#: ../Doc/library/typing.rst:85 msgid ":pep:`586`: Literal Types" msgstr ":pep:`586`: Tipos literales" -#: ../Doc/library/typing.rst:67 +#: ../Doc/library/typing.rst:86 msgid "*Introducing* :data:`Literal`" msgstr "*Introduce* :data:`Literal`" -#: ../Doc/library/typing.rst:68 +#: ../Doc/library/typing.rst:87 msgid "" ":pep:`589`: TypedDict: Type Hints for Dictionaries with a Fixed Set of Keys" msgstr "" ":pep:`589`: TypedDict: Indicadores de tipo para diccionarios con un conjunto " "de llaves fijo" -#: ../Doc/library/typing.rst:69 +#: ../Doc/library/typing.rst:88 msgid "*Introducing* :class:`TypedDict`" msgstr "*Introduce* :class:`TypedDict`" -#: ../Doc/library/typing.rst:70 +#: ../Doc/library/typing.rst:89 msgid ":pep:`591`: Adding a final qualifier to typing" msgstr ":pep:`591`: Agregar un cualificador final a typing" -#: ../Doc/library/typing.rst:71 +#: ../Doc/library/typing.rst:90 msgid "*Introducing* :data:`Final` and the :func:`@final` decorator" msgstr "*Introduce* :data:`Final` y el decorador :func:`@final`" -#: ../Doc/library/typing.rst:72 +#: ../Doc/library/typing.rst:91 msgid ":pep:`593`: Flexible function and variable annotations" msgstr ":pep:`593`: Anotaciones flexibles para funciones y variables" -#: ../Doc/library/typing.rst:73 +#: ../Doc/library/typing.rst:92 msgid "*Introducing* :data:`Annotated`" msgstr "*Introduce* :data:`Annotated`" -#: ../Doc/library/typing.rst:76 +#: ../Doc/library/typing.rst:95 msgid ":pep:`604`: Allow writing union types as ``X | Y``" msgstr ":pep:`604`: Permitir la escritura de tipos unión como ``X | Y``" -#: ../Doc/library/typing.rst:75 +#: ../Doc/library/typing.rst:94 msgid "" "*Introducing* :data:`types.UnionType` and the ability to use the binary-or " "operator ``|`` to signify a :ref:`union of types`" @@ -199,39 +227,39 @@ msgstr "" "binario de disyunción ``|`` para significar una :ref:`unión de tipos`" -#: ../Doc/library/typing.rst:78 +#: ../Doc/library/typing.rst:97 msgid ":pep:`612`: Parameter Specification Variables" msgstr ":pep:`612`: Variables de especificación de parámetros" -#: ../Doc/library/typing.rst:79 +#: ../Doc/library/typing.rst:98 msgid "*Introducing* :class:`ParamSpec` and :data:`Concatenate`" msgstr "*Introduce* :class:`ParamSpec` y :data:`Concatenate`" -#: ../Doc/library/typing.rst:80 +#: ../Doc/library/typing.rst:99 msgid ":pep:`613`: Explicit Type Aliases" msgstr ":pep:`613`: Alias de tipo explícitos" -#: ../Doc/library/typing.rst:81 +#: ../Doc/library/typing.rst:100 msgid "*Introducing* :data:`TypeAlias`" msgstr "*Introduce* :data:`TypeAlias`" -#: ../Doc/library/typing.rst:82 +#: ../Doc/library/typing.rst:101 msgid ":pep:`646`: Variadic Generics" msgstr ":pep:`646`: Genéricos variádicos" -#: ../Doc/library/typing.rst:83 +#: ../Doc/library/typing.rst:102 msgid "*Introducing* :data:`TypeVarTuple`" msgstr "*Introduce* :data:`TypeVarTuple`" -#: ../Doc/library/typing.rst:84 +#: ../Doc/library/typing.rst:103 msgid ":pep:`647`: User-Defined Type Guards" msgstr ":pep:`647`: Protecciones de tipo definidas por le usuarie" -#: ../Doc/library/typing.rst:85 +#: ../Doc/library/typing.rst:104 msgid "*Introducing* :data:`TypeGuard`" msgstr "*Introduce* :data:`TypeGuard`" -#: ../Doc/library/typing.rst:86 +#: ../Doc/library/typing.rst:105 msgid "" ":pep:`655`: Marking individual TypedDict items as required or potentially " "missing" @@ -239,50 +267,85 @@ msgstr "" ":pep:`655`: Marcar elementos individuales de un TypedDict como requeridos o " "potencialmente ausentes" -#: ../Doc/library/typing.rst:87 +#: ../Doc/library/typing.rst:106 msgid "*Introducing* :data:`Required` and :data:`NotRequired`" msgstr "*Introduce* :data:`Required` y :data:`NotRequired`" -#: ../Doc/library/typing.rst:88 +#: ../Doc/library/typing.rst:107 msgid ":pep:`673`: Self type" msgstr ":pep:`673`: Tipo Self" -#: ../Doc/library/typing.rst:89 +#: ../Doc/library/typing.rst:108 msgid "*Introducing* :data:`Self`" msgstr "*Introduce* :data:`Self`" -#: ../Doc/library/typing.rst:90 +#: ../Doc/library/typing.rst:109 msgid ":pep:`675`: Arbitrary Literal String Type" msgstr ":pep:`675`: Tipo para cadenas de caracteres literales arbitrarias" -#: ../Doc/library/typing.rst:91 +#: ../Doc/library/typing.rst:110 msgid "*Introducing* :data:`LiteralString`" msgstr "*Introduce* :data:`LiteralString`" -#: ../Doc/library/typing.rst:93 +#: ../Doc/library/typing.rst:111 #, fuzzy msgid ":pep:`681`: Data Class Transforms" msgstr ":pep:`681`: Transformaciones de Clases de Datos" -#: ../Doc/library/typing.rst:93 +#: ../Doc/library/typing.rst:112 msgid "" "*Introducing* the :func:`@dataclass_transform` decorator" msgstr "" "*Introduce* el decorador :func:`@dataclass_transform`" -#: ../Doc/library/typing.rst:98 +#: ../Doc/library/typing.rst:114 +msgid ":pep:`692`: Using ``TypedDict`` for more precise ``**kwargs`` typing" +msgstr "" + +#: ../Doc/library/typing.rst:114 +msgid "" +"*Introducing* a new way of typing ``**kwargs`` with :data:`Unpack` and :data:" +"`TypedDict`" +msgstr "" + +#: ../Doc/library/typing.rst:116 +msgid ":pep:`695`: Type Parameter Syntax" +msgstr "" + +#: ../Doc/library/typing.rst:117 +#, fuzzy +msgid "" +"*Introducing* builtin syntax for creating generic functions, classes, and " +"type aliases." +msgstr "" +"*Introduce* sintaxis para anotar variables fuera de definiciones de " +"funciones, y :data:`ClassVar`" + +#: ../Doc/library/typing.rst:119 +#, fuzzy +msgid ":pep:`698`: Adding an override decorator to typing" +msgstr ":pep:`591`: Agregar un cualificador final a typing" + +#: ../Doc/library/typing.rst:119 +#, fuzzy +msgid "*Introducing* the :func:`@override` decorator" +msgstr "*Introduce* :data:`Final` y el decorador :func:`@final`" + +#: ../Doc/library/typing.rst:129 msgid "Type aliases" msgstr "Alias de tipo" -#: ../Doc/library/typing.rst:100 +#: ../Doc/library/typing.rst:131 +#, fuzzy msgid "" -"A type alias is defined by assigning the type to the alias. In this example, " -"``Vector`` and ``list[float]`` will be treated as interchangeable synonyms::" +"A type alias is defined using the :keyword:`type` statement, which creates " +"an instance of :class:`TypeAliasType`. In this example, ``Vector`` and " +"``list[float]`` will be treated equivalently by static type checkers::" msgstr "" "Un alias de tipo se define asignando el tipo al alias. En este ejemplo, " "``Vector`` y ``List[float]`` serán tratados como sinónimos intercambiables::" -#: ../Doc/library/typing.rst:111 +#: ../Doc/library/typing.rst:144 msgid "" "Type aliases are useful for simplifying complex type signatures. For " "example::" @@ -290,24 +353,28 @@ msgstr "" "Los alias de tipo son útiles para simplificar firmas de tipo complejas. Por " "ejemplo::" -#: ../Doc/library/typing.rst:129 +#: ../Doc/library/typing.rst:162 +msgid "" +"The :keyword:`type` statement is new in Python 3.12. For backwards " +"compatibility, type aliases can also be created through simple assignment::" +msgstr "" + +#: ../Doc/library/typing.rst:167 msgid "" -"Note that ``None`` as a type hint is a special case and is replaced by " -"``type(None)``." +"Or marked with :data:`TypeAlias` to make it explicit that this is a type " +"alias, not a normal variable assignment::" msgstr "" -"Nótese que ``None`` como indicador de tipo es un caso especial y es " -"substituido por ``type(None)``." -#: ../Doc/library/typing.rst:135 +#: ../Doc/library/typing.rst:177 msgid "NewType" msgstr "NewType" -#: ../Doc/library/typing.rst:137 +#: ../Doc/library/typing.rst:179 msgid "Use the :class:`NewType` helper to create distinct types::" msgstr "" "Utilícese la clase auxiliar :class:`NewType` para crear tipos distintos::" -#: ../Doc/library/typing.rst:144 +#: ../Doc/library/typing.rst:186 msgid "" "The static type checker will treat the new type as if it were a subclass of " "the original type. This is useful in helping catch logical errors::" @@ -315,7 +382,7 @@ msgstr "" "El validador estático de tipos tratará el nuevo tipo como si fuera una " "subclase del tipo original. Esto es útil para capturar errores lógicos::" -#: ../Doc/library/typing.rst:156 +#: ../Doc/library/typing.rst:198 msgid "" "You may still perform all ``int`` operations on a variable of type " "``UserId``, but the result will always be of type ``int``. This lets you " @@ -327,7 +394,7 @@ msgstr "" "pasar un ``UserId`` allí donde se espere un ``int``, pero evitará la " "creación accidental de un ``UserId`` de manera incorrecta::" -#: ../Doc/library/typing.rst:164 +#: ../Doc/library/typing.rst:206 msgid "" "Note that these checks are enforced only by the static type checker. At " "runtime, the statement ``Derived = NewType('Derived', Base)`` will make " @@ -342,7 +409,7 @@ msgstr "" "expresión ``Derived(some_value)`` no crea una nueva clase ni introduce mucha " "sobrecarga más allá de la de una llamada de función regular." -#: ../Doc/library/typing.rst:170 +#: ../Doc/library/typing.rst:212 msgid "" "More precisely, the expression ``some_value is Derived(some_value)`` is " "always true at runtime." @@ -350,11 +417,11 @@ msgstr "" "Más concretamente, la expresión ``some_value is Derived(some_value)`` será " "siempre verdadera en tiempo de ejecución." -#: ../Doc/library/typing.rst:173 +#: ../Doc/library/typing.rst:215 msgid "It is invalid to create a subtype of ``Derived``::" msgstr "No es válido crear un subtipo de ``Derived``:" -#: ../Doc/library/typing.rst:182 +#: ../Doc/library/typing.rst:224 msgid "" "However, it is possible to create a :class:`NewType` based on a 'derived' " "``NewType``::" @@ -362,21 +429,22 @@ msgstr "" "Sin embargo, es posible crear un :class:`NewType` basado en un ``NewType`` " "'derivado':" -#: ../Doc/library/typing.rst:190 +#: ../Doc/library/typing.rst:232 msgid "and typechecking for ``ProUserId`` will work as expected." msgstr "" "y la comprobación de tipo para ``ProUserId`` funcionará como se espera." -#: ../Doc/library/typing.rst:192 +#: ../Doc/library/typing.rst:234 msgid "See :pep:`484` for more details." msgstr "Véase :pep:`484` para más detalle." -#: ../Doc/library/typing.rst:196 +#: ../Doc/library/typing.rst:238 +#, fuzzy msgid "" "Recall that the use of a type alias declares two types to be *equivalent* to " -"one another. Doing ``Alias = Original`` will make the static type checker " -"treat ``Alias`` as being *exactly equivalent* to ``Original`` in all cases. " -"This is useful when you want to simplify complex type signatures." +"one another. Doing ``type Alias = Original`` will make the static type " +"checker treat ``Alias`` as being *exactly equivalent* to ``Original`` in all " +"cases. This is useful when you want to simplify complex type signatures." msgstr "" "Recuérdese que el uso de alias de tipo implica que los dos tipos son " "*equivalentes* entre sí. Haciendo ``Alias = Original`` provocará que el " @@ -384,7 +452,7 @@ msgstr "" "equivalente* a ``Original`` en todos los casos. Esto es útil para cuando se " "quiera simplificar indicadores de tipo complejos." -#: ../Doc/library/typing.rst:201 +#: ../Doc/library/typing.rst:243 msgid "" "In contrast, ``NewType`` declares one type to be a *subtype* of another. " "Doing ``Derived = NewType('Derived', Original)`` will make the static type " @@ -400,48 +468,70 @@ msgstr "" "valor de tipo ``Derived``. Esto es útil para prevenir errores lógicos con un " "coste de ejecución mínimo." -#: ../Doc/library/typing.rst:210 +#: ../Doc/library/typing.rst:252 +#, fuzzy msgid "" -"``NewType`` is now a class rather than a function. There is some additional " -"runtime cost when calling ``NewType`` over a regular function. However, " -"this cost will be reduced in 3.11.0." +"``NewType`` is now a class rather than a function. As a result, there is " +"some additional runtime cost when calling ``NewType`` over a regular " +"function." msgstr "" "``NewType`` es ahora una clase en lugar de una función. Existe un costo de " "tiempo de ejecución adicional cuando se llama a ``NewType`` a través de una " "función normal. Sin embargo, este costo se reducirá en 3.11.0." -#: ../Doc/library/typing.rst:217 -msgid "Callable" -msgstr "Callable" +#: ../Doc/library/typing.rst:257 +msgid "" +"The performance of calling ``NewType`` has been restored to its level in " +"Python 3.9." +msgstr "" + +#: ../Doc/library/typing.rst:264 +msgid "Annotating callable objects" +msgstr "" -# Aquí frameworks parace indicar un término abierto referiéndose a elementos -# que interactuarán con las llamadas anotadas. Por ello, se escoge el término -# genérico "entidades" -#: ../Doc/library/typing.rst:219 +#: ../Doc/library/typing.rst:266 msgid "" -"Frameworks expecting callback functions of specific signatures might be type " -"hinted using ``Callable[[Arg1Type, Arg2Type], ReturnType]``." +"Functions -- or other :term:`callable` objects -- can be annotated using :" +"class:`collections.abc.Callable` or :data:`typing.Callable`. " +"``Callable[[int], str]`` signifies a function that takes a single parameter " +"of type :class:`int` and returns a :class:`str`." msgstr "" -"Entidades que esperen llamadas a funciones con interfaces específicas puede " -"ser anotadas usando ``Callable[[Arg1Type, Arg2Type], ReturnType]``." -#: ../Doc/library/typing.rst:222 ../Doc/library/typing.rst:1164 -#: ../Doc/library/typing.rst:2801 -msgid "For example::" +#: ../Doc/library/typing.rst:271 ../Doc/library/typing.rst:2873 +#: ../Doc/library/typing.rst:3015 +#, fuzzy +msgid "For example:" msgstr "Por ejemplo::" -#: ../Doc/library/typing.rst:237 +#: ../Doc/library/typing.rst:289 +#, fuzzy +msgid "" +"The subscription syntax must always be used with exactly two values: the " +"argument list and the return type. The argument list must be a list of " +"types, a :class:`ParamSpec`, :data:`Concatenate`, or an ellipsis. The return " +"type must be a single type." +msgstr "" +"La sintaxis de subíndice (con corchetes *[]*) debe usarse siempre con dos " +"valores: la lista de argumentos y el tipo de retorno. La lista de argumentos " +"debe ser una lista de tipos o unos puntos suspensivos; el tipo de retorno " +"debe ser un único tipo." + +#: ../Doc/library/typing.rst:294 +msgid "" +"If a literal ellipsis ``...`` is given as the argument list, it indicates " +"that a callable with any arbitrary parameter list would be acceptable:" +msgstr "" + +#: ../Doc/library/typing.rst:306 msgid "" -"It is possible to declare the return type of a callable without specifying " -"the call signature by substituting a literal ellipsis for the list of " -"arguments in the type hint: ``Callable[..., ReturnType]``." +"``Callable`` cannot express complex signatures such as functions that take a " +"variadic number of arguments, :func:`overloaded functions `, or " +"functions that have keyword-only parameters. However, these signatures can " +"be expressed by defining a :class:`Protocol` class with a :meth:`~object." +"__call__` method:" msgstr "" -"Es posible declarar el tipo de retorno de un *callable* (invocable) sin " -"especificar tipos en los parámetros substituyendo la lista de argumentos por " -"unos puntos suspensivos (...) en el indicador de tipo: ``Callable[..., " -"ReturnType]``." -#: ../Doc/library/typing.rst:241 ../Doc/library/typing.rst:843 +#: ../Doc/library/typing.rst:333 msgid "" "Callables which take other callables as arguments may indicate that their " "parameter types are dependent on each other using :class:`ParamSpec`. " @@ -459,7 +549,7 @@ msgstr "" "``Callable[Concatenate[Arg1Type, Arg2Type, ..., ParamSpecVariable], " "ReturnType]`` respectivamente." -#: ../Doc/library/typing.rst:249 ../Doc/library/typing.rst:855 +#: ../Doc/library/typing.rst:341 ../Doc/library/typing.rst:3544 msgid "" "``Callable`` now supports :class:`ParamSpec` and :data:`Concatenate`. See :" "pep:`612` for more details." @@ -467,7 +557,7 @@ msgstr "" "``Callable`` ahora es compatible con :class:`ParamSpec` y :data:" "`Concatenate`. Consulte :pep:`612` para obtener más información." -#: ../Doc/library/typing.rst:254 +#: ../Doc/library/typing.rst:346 msgid "" "The documentation for :class:`ParamSpec` and :class:`Concatenate` provides " "examples of usage in ``Callable``." @@ -475,58 +565,145 @@ msgstr "" "La documentación de :class:`ParamSpec` y :class:`Concatenate` proporciona " "ejemplos de uso en ``Callable``." -#: ../Doc/library/typing.rst:260 +#: ../Doc/library/typing.rst:352 msgid "Generics" msgstr "Genéricos" -#: ../Doc/library/typing.rst:262 +#: ../Doc/library/typing.rst:354 +#, fuzzy msgid "" "Since type information about objects kept in containers cannot be statically " -"inferred in a generic way, abstract base classes have been extended to " -"support subscription to denote expected types for container elements." +"inferred in a generic way, many container classes in the standard library " +"support subscription to denote the expected types of container elements." msgstr "" "Ya que no es posible inferir estáticamente y de una manera genérica la " "información de tipo de objetos dentro de contenedores, las clases base " "abstractas han sido mejoradas para permitir sintaxis de subíndice para " "denotar los tipos esperados en elementos contenedores." -#: ../Doc/library/typing.rst:273 +#: ../Doc/library/typing.rst:371 msgid "" -"Generics can be parameterized by using a factory available in typing called :" -"class:`TypeVar`." +"Generic functions and classes can be parameterized by using :ref:`type " +"parameter syntax `::" msgstr "" -"Los genéricos se pueden parametrizar usando una nueva *factory* disponible " -"en *typing* llamada :class:`TypeVar`." -#: ../Doc/library/typing.rst:289 +#: ../Doc/library/typing.rst:379 +msgid "Or by using the :class:`TypeVar` factory directly::" +msgstr "" + +#: ../Doc/library/typing.rst:389 +msgid "Syntactic support for generics is new in Python 3.12." +msgstr "" + +#: ../Doc/library/typing.rst:395 +msgid "Annotating tuples" +msgstr "" + +#: ../Doc/library/typing.rst:397 +msgid "" +"For most containers in Python, the typing system assumes that all elements " +"in the container will be of the same type. For example::" +msgstr "" + +#: ../Doc/library/typing.rst:412 +msgid "" +":class:`list` only accepts one type argument, so a type checker would emit " +"an error on the ``y`` assignment above. Similarly, :class:`~collections.abc." +"Mapping` only accepts two type arguments: the first indicates the type of " +"the keys, and the second indicates the type of the values." +msgstr "" + +#: ../Doc/library/typing.rst:418 +msgid "" +"Unlike most other Python containers, however, it is common in idiomatic " +"Python code for tuples to have elements which are not all of the same type. " +"For this reason, tuples are special-cased in Python's typing system. :class:" +"`tuple` accepts *any number* of type arguments::" +msgstr "" + +#: ../Doc/library/typing.rst:434 +msgid "" +"To denote a tuple which could be of *any* length, and in which all elements " +"are of the same type ``T``, use ``tuple[T, ...]``. To denote an empty tuple, " +"use ``tuple[()]``. Using plain ``tuple`` as an annotation is equivalent to " +"using ``tuple[Any, ...]``::" +msgstr "" + +#: ../Doc/library/typing.rst:457 +msgid "The type of class objects" +msgstr "" + +#: ../Doc/library/typing.rst:459 +#, fuzzy +msgid "" +"A variable annotated with ``C`` may accept a value of type ``C``. In " +"contrast, a variable annotated with ``type[C]`` (or :class:`typing.Type[C] " +"`) may accept values that are classes themselves -- specifically, it " +"will accept the *class object* of ``C``. For example::" +msgstr "" +"Una variable indicada como ``C`` puede aceptar valores de tipo ``C``. Sin " +"embargo, un variable indicada como ``Type[C]`` puede aceptar valores que son " +"clases en sí mismas -- específicamente, aceptará el *objeto clase* de ``C``. " +"Por ejemplo.::" + +#: ../Doc/library/typing.rst:469 +#, fuzzy +msgid "Note that ``type[C]`` is covariant::" +msgstr "Nótese que ``Type[C]`` es covariante::" + +#: ../Doc/library/typing.rst:485 +#, fuzzy +msgid "" +"The only legal parameters for :class:`type` are classes, :data:`Any`, :ref:" +"`type variables `, and unions of any of these types. For example::" +msgstr "" +"Lo únicos parámetros válidos de :class:`Type` son clases, :data:`Any`, :ref:" +"`type variables `, y uniones de cualquiera de los tipos " +"anteriores. Por ejemplo::" + +#: ../Doc/library/typing.rst:497 +#, fuzzy +msgid "" +"``type[Any]`` is equivalent to :class:`type`, which is the root of Python's :" +"ref:`metaclass hierarchy `." +msgstr "" +"``Type[Any]`` es equivalente a ``Type``, que a su vez es equivalente a " +"``type``, que es la raíz de la jerarquía de metaclases de Python." + +#: ../Doc/library/typing.rst:503 msgid "User-defined generic types" msgstr "Tipos genéricos definidos por el usuario" -#: ../Doc/library/typing.rst:291 +#: ../Doc/library/typing.rst:505 msgid "A user-defined class can be defined as a generic class." msgstr "" "Una clase definida por el usuario puede ser definida como una clase genérica." -#: ../Doc/library/typing.rst:317 +#: ../Doc/library/typing.rst:528 +#, fuzzy msgid "" -"``Generic[T]`` as a base class defines that the class ``LoggedVar`` takes a " -"single type parameter ``T`` . This also makes ``T`` valid as a type within " -"the class body." +"This syntax indicates that the class ``LoggedVar`` is parameterised around a " +"single :class:`type variable ` ``T`` . This also makes ``T`` valid " +"as a type within the class body." msgstr "" "``Generic[T]`` como clase base define que la clase ``LoggedVar`` toma un " "solo parámetro ``T``. Esto también implica que ``T`` es un tipo válido " "dentro del cuerpo de la clase." -# revisar en su contexto -#: ../Doc/library/typing.rst:321 +#: ../Doc/library/typing.rst:532 msgid "" -"The :class:`Generic` base class defines :meth:`~object.__class_getitem__` so " -"that ``LoggedVar[T]`` is valid as a type::" +"Generic classes implicitly inherit from :class:`Generic`. For compatibility " +"with Python 3.11 and lower, it is also possible to inherit explicitly from :" +"class:`Generic` to indicate a generic class::" msgstr "" -"La clase base :class:`Generic` define :meth:`__class_getitem__` para que " -"``LoggedVar[T]`` sea válido como tipo::" -#: ../Doc/library/typing.rst:330 +#: ../Doc/library/typing.rst:543 +msgid "" +"Generic classes have :meth:`~object.__class_getitem__` methods, meaning they " +"can be parameterised at runtime (e.g. ``LoggedVar[int]`` below)::" +msgstr "" + +#: ../Doc/library/typing.rst:552 msgid "" "A generic type can have any number of type variables. All varieties of :" "class:`TypeVar` are permissible as parameters for a generic type::" @@ -536,7 +713,7 @@ msgstr "" "parámetros de un tipo genérico::" # revisar la relacion argumento-variable-clase -#: ../Doc/library/typing.rst:342 +#: ../Doc/library/typing.rst:567 msgid "" "Each type variable argument to :class:`Generic` must be distinct. This is " "thus invalid::" @@ -544,49 +721,66 @@ msgstr "" "Cada argumento de variable de tipo en una clase :class:`Generic` debe ser " "distinto. Así, no será válido::" -#: ../Doc/library/typing.rst:353 -msgid "You can use multiple inheritance with :class:`Generic`::" -msgstr "Se puede utilizar herencia múltiple con :class:`Generic`::" +#: ../Doc/library/typing.rst:581 +msgid "Generic classes can also inherit from other classes::" +msgstr "" -#: ../Doc/library/typing.rst:363 +#: ../Doc/library/typing.rst:588 +#, fuzzy msgid "" -"When inheriting from generic classes, some type variables could be fixed::" +"When inheriting from generic classes, some type parameters could be fixed::" msgstr "" "Cuando se hereda de clases genéricas, se pueden fijar algunas variables de " "tipo::" -#: ../Doc/library/typing.rst:373 +#: ../Doc/library/typing.rst:595 msgid "In this case ``MyDict`` has a single parameter, ``T``." msgstr "En este caso ``MyDict`` tiene un solo parámetro, ``T``." -#: ../Doc/library/typing.rst:375 +#: ../Doc/library/typing.rst:597 +#, fuzzy msgid "" "Using a generic class without specifying type parameters assumes :data:`Any` " "for each position. In the following example, ``MyIterable`` is not generic " -"but implicitly inherits from ``Iterable[Any]``::" +"but implicitly inherits from ``Iterable[Any]``:" msgstr "" "Al usar una clase genérica sin especificar parámetros de tipo se asume :data:" "`Any` para todas las posiciones. En el siguiente ejemplo, ``MyIterable`` no " "es genérico pero hereda implícitamente de ``Iterable[Any]``::" -#: ../Doc/library/typing.rst:383 -msgid "User defined generic type aliases are also supported. Examples::" +#: ../Doc/library/typing.rst:608 +#, fuzzy +msgid "User-defined generic type aliases are also supported. Examples::" msgstr "" "Son posibles los alias de tipos genéricos definidos por el usuario. " "Ejemplos::" -#: ../Doc/library/typing.rst:400 +#: ../Doc/library/typing.rst:623 +msgid "" +"For backward compatibility, generic type aliases can also be created through " +"a simple assignment::" +msgstr "" + +#: ../Doc/library/typing.rst:632 msgid ":class:`Generic` no longer has a custom metaclass." msgstr ":class:`Generic` ya no posee una metaclase personalizable." -#: ../Doc/library/typing.rst:403 +#: ../Doc/library/typing.rst:635 +msgid "" +"Syntactic support for generics and type aliases is new in version 3.12. " +"Previously, generic classes had to explicitly inherit from :class:`Generic` " +"or contain a type variable in one of their bases." +msgstr "" + +#: ../Doc/library/typing.rst:640 +#, fuzzy msgid "" "User-defined generics for parameter expressions are also supported via " -"parameter specification variables in the form ``Generic[P]``. The behavior " -"is consistent with type variables' described above as parameter " -"specification variables are treated by the typing module as a specialized " -"type variable. The one exception to this is that a list of types can be " -"used to substitute a :class:`ParamSpec`::" +"parameter specification variables in the form ``[**P]``. The behavior is " +"consistent with type variables' described above as parameter specification " +"variables are treated by the typing module as a specialized type variable. " +"The one exception to this is that a list of types can be used to substitute " +"a :class:`ParamSpec`::" msgstr "" "Los genéricos definidos por el usuario para expresiones de parámetros " "también se admiten a través de variables de especificación de parámetros con " @@ -596,21 +790,30 @@ msgstr "" "única excepción a esto es que se puede usar una lista de tipos para " "sustituir un :class:`ParamSpec`:" -#: ../Doc/library/typing.rst:420 +#: ../Doc/library/typing.rst:651 +msgid "" +"Classes generic over a :class:`ParamSpec` can also be created using explicit " +"inheritance from :class:`Generic`. In this case, ``**`` is not used::" +msgstr "" + +#: ../Doc/library/typing.rst:661 +#, fuzzy msgid "" -"Furthermore, a generic with only one parameter specification variable will " -"accept parameter lists in the forms ``X[[Type1, Type2, ...]]`` and also " -"``X[Type1, Type2, ...]`` for aesthetic reasons. Internally, the latter is " -"converted to the former, so the following are equivalent::" +"Another difference between :class:`TypeVar` and :class:`ParamSpec` is that a " +"generic with only one parameter specification variable will accept parameter " +"lists in the forms ``X[[Type1, Type2, ...]]`` and also ``X[Type1, " +"Type2, ...]`` for aesthetic reasons. Internally, the latter is converted to " +"the former, so the following are equivalent::" msgstr "" "Además, un genérico con una sola variable de especificación de parámetro " "aceptará listas de parámetros en los formatos ``X[[Type1, Type2, ...]]`` y " "también ``X[Type1, Type2, ...]`` por razones estéticas. Internamente, este " "último se convierte en el primero y, por lo tanto, son equivalentes::" -#: ../Doc/library/typing.rst:432 +#: ../Doc/library/typing.rst:674 +#, fuzzy msgid "" -"Do note that generics with :class:`ParamSpec` may not have correct " +"Note that generics with :class:`ParamSpec` may not have correct " "``__parameters__`` after substitution in some cases because they are " "intended primarily for static type checking." msgstr "" @@ -618,7 +821,7 @@ msgstr "" "``__parameters__`` correcto después de la sustitución en algunos casos " "porque están destinados principalmente a la verificación de tipos estáticos." -#: ../Doc/library/typing.rst:436 +#: ../Doc/library/typing.rst:678 msgid "" ":class:`Generic` can now be parameterized over parameter expressions. See :" "class:`ParamSpec` and :pep:`612` for more details." @@ -627,12 +830,13 @@ msgstr "" "parámetros. Consulte :class:`ParamSpec` y :pep:`612` para obtener más " "detalles." -#: ../Doc/library/typing.rst:440 +#: ../Doc/library/typing.rst:682 +#, fuzzy msgid "" "A user-defined generic class can have ABCs as base classes without a " "metaclass conflict. Generic metaclasses are not supported. The outcome of " -"parameterizing generics is cached, and most types in the typing module are " -"hashable and comparable for equality." +"parameterizing generics is cached, and most types in the typing module are :" +"term:`hashable` and comparable for equality." msgstr "" "Un clase genérica definida por el usuario puede tener clases ABC como clase " "base sin conflicto de metaclase. Las metaclases genéricas no están " @@ -640,11 +844,11 @@ msgstr "" "mayoría de los tipos en el módulo *typing* pueden tener un hash y ser " "comparables por igualdad (*equality*)." -#: ../Doc/library/typing.rst:447 +#: ../Doc/library/typing.rst:689 msgid "The :data:`Any` type" msgstr "El tipo :data:`Any`" -#: ../Doc/library/typing.rst:449 +#: ../Doc/library/typing.rst:691 msgid "" "A special kind of type is :data:`Any`. A static type checker will treat " "every type as being compatible with :data:`Any` and :data:`Any` as being " @@ -654,7 +858,7 @@ msgstr "" "tratará cualquier tipo como compatible con :data:`Any`, y :data:`Any` como " "compatible con todos los tipos." -#: ../Doc/library/typing.rst:453 +#: ../Doc/library/typing.rst:695 msgid "" "This means that it is possible to perform any operation or method call on a " "value of type :data:`Any` and assign it to any variable::" @@ -662,7 +866,7 @@ msgstr "" "Esto significa que es posible realizar cualquier operación o llamada a un " "método en un valor de tipo :data:`Any` y asignarlo a cualquier variable::" -#: ../Doc/library/typing.rst:471 +#: ../Doc/library/typing.rst:713 msgid "" "Notice that no type checking is performed when assigning a value of type :" "data:`Any` to a more precise type. For example, the static type checker did " @@ -676,7 +880,7 @@ msgstr "" "se declaró ``s`` como de tipo :class:`str` y recibió un valor :class:`int` " "en tiempo de ejecución!" -#: ../Doc/library/typing.rst:477 +#: ../Doc/library/typing.rst:719 msgid "" "Furthermore, all functions without a return type or parameter types will " "implicitly default to using :data:`Any`::" @@ -684,7 +888,7 @@ msgstr "" "Además, todas las funciones sin un tipo de retorno o tipos en los parámetros " "serán asignadas implícitamente a :data:`Any` por defecto::" -#: ../Doc/library/typing.rst:490 +#: ../Doc/library/typing.rst:732 msgid "" "This behavior allows :data:`Any` to be used as an *escape hatch* when you " "need to mix dynamically and statically typed code." @@ -692,7 +896,7 @@ msgstr "" "Este comportamiento permite que :data:`Any` sea usado como una *vía de " "escape* cuando es necesario mezclar código tipado estática y dinámicamente." -#: ../Doc/library/typing.rst:493 +#: ../Doc/library/typing.rst:735 msgid "" "Contrast the behavior of :data:`Any` with the behavior of :class:`object`. " "Similar to :data:`Any`, every type is a subtype of :class:`object`. However, " @@ -704,7 +908,7 @@ msgstr "" "Sin embargo, en oposición a :data:`Any`, lo contrario no es cierto: :class:" "`object` *no* es un subtipo de ningún otro tipo." -#: ../Doc/library/typing.rst:498 +#: ../Doc/library/typing.rst:740 msgid "" "That means when the type of a value is :class:`object`, a type checker will " "reject almost all operations on it, and assigning it to a variable (or using " @@ -716,7 +920,7 @@ msgstr "" "asignarlo a una variable (o usarlo como valor de retorno) de un tipo más " "preciso será un error de tipo. Por ejemplo::" -#: ../Doc/library/typing.rst:520 +#: ../Doc/library/typing.rst:762 msgid "" "Use :class:`object` to indicate that a value could be any type in a typesafe " "manner. Use :data:`Any` to indicate that a value is dynamically typed." @@ -725,11 +929,11 @@ msgstr "" "de manera segura. Úsese :data:`Any` para indicar que un valor es de tipado " "dinámico." -#: ../Doc/library/typing.rst:525 +#: ../Doc/library/typing.rst:767 msgid "Nominal vs structural subtyping" msgstr "Subtipado nominal vs estructural" -#: ../Doc/library/typing.rst:527 +#: ../Doc/library/typing.rst:769 msgid "" "Initially :pep:`484` defined the Python static type system as using *nominal " "subtyping*. This means that a class ``A`` is allowed where a class ``B`` is " @@ -741,7 +945,7 @@ msgstr "" "subclase de ``B``." # Frase ultracompleja, necesitar una revisión fuerte -#: ../Doc/library/typing.rst:531 +#: ../Doc/library/typing.rst:773 msgid "" "This requirement previously also applied to abstract base classes, such as :" "class:`~collections.abc.Iterable`. The problem with this approach is that a " @@ -756,7 +960,7 @@ msgstr "" "y poco ajustado a lo que uno normalmente haría en un código Python tipado " "dinámicamente. Por ejemplo, esto sí se ajusta al :pep:`484`::" -#: ../Doc/library/typing.rst:544 +#: ../Doc/library/typing.rst:786 msgid "" ":pep:`544` allows to solve this problem by allowing users to write the above " "code without explicit base classes in the class definition, allowing " @@ -770,7 +974,7 @@ msgstr "" "``Bucket`` es un subtipo tanto de ``Sized`` como de ``Iterable[int]``. Esto " "se conoce como tipado *estructural* (o *duck-typing* estático)::" -#: ../Doc/library/typing.rst:560 +#: ../Doc/library/typing.rst:802 msgid "" "Moreover, by subclassing a special class :class:`Protocol`, a user can " "define new custom protocols to fully enjoy structural subtyping (see " @@ -780,77 +984,47 @@ msgstr "" "usuario puede definir nuevos protocolos personalizados y beneficiarse del " "tipado estructural (véanse los ejemplos de abajo)." -#: ../Doc/library/typing.rst:565 +#: ../Doc/library/typing.rst:807 msgid "Module contents" msgstr "Contenido del módulo" -#: ../Doc/library/typing.rst:567 -msgid "The module defines the following classes, functions and decorators." -msgstr "El módulo define las siguientes clases, funciones y decoradores." - -#: ../Doc/library/typing.rst:571 -msgid "" -"This module defines several types that are subclasses of pre-existing " -"standard library classes which also extend :class:`Generic` to support type " -"variables inside ``[]``. These types became redundant in Python 3.9 when the " -"corresponding pre-existing classes were enhanced to support ``[]``." -msgstr "" -"Este módulo define algunos tipos que son subclases de clases que ya existen " -"en la librería estándar, y que además extienden :class:`Generic` para " -"soportar variables de tipo dentro de ``[]``. Estos tipos se vuelven " -"redundantes en Python 3.9 ya que las clases correspondientes fueron " -"mejoradas para soportar ``[]``." - -#: ../Doc/library/typing.rst:577 -msgid "" -"The redundant types are deprecated as of Python 3.9 but no deprecation " -"warnings will be issued by the interpreter. It is expected that type " -"checkers will flag the deprecated types when the checked program targets " -"Python 3.9 or newer." -msgstr "" -"Los tipos redundantes están descontinuados con Python 3.9 pero el intérprete " -"no mostrará ninguna advertencia. Se espera que los verificadores de tipo " -"marquen estos tipos como obsoletos cuando el programa a verificar apunte a " -"Python 3.9 o superior." - -#: ../Doc/library/typing.rst:582 +#: ../Doc/library/typing.rst:809 +#, fuzzy msgid "" -"The deprecated types will be removed from the :mod:`typing` module in the " -"first Python version released 5 years after the release of Python 3.9.0. See " -"details in :pep:`585`—*Type Hinting Generics In Standard Collections*." -msgstr "" -"Los tipos obsoletos serán removidos del módulo :class:`Generic` en la " -"primera versión de Python que sea lanzada 5 años después del lanzamiento de " -"Python 3.9.0. Véase los detalles en :pep:`585` -- *Sugerencias de tipo " -"genéricas en las Colecciones Estándar*." +"The ``typing`` module defines the following classes, functions and " +"decorators." +msgstr "El módulo define las siguientes clases, funciones y decoradores." -#: ../Doc/library/typing.rst:588 +#: ../Doc/library/typing.rst:812 msgid "Special typing primitives" msgstr "Primitivos especiales de tipado" -#: ../Doc/library/typing.rst:591 +#: ../Doc/library/typing.rst:815 msgid "Special types" msgstr "Tipos especiales" -#: ../Doc/library/typing.rst:593 -msgid "These can be used as types in annotations and do not support ``[]``." +#: ../Doc/library/typing.rst:817 +#, fuzzy +msgid "" +"These can be used as types in annotations. They do not support subscription " +"using ``[]``." msgstr "" "Estos pueden ser usados como tipos en anotaciones y no soportan ``[]``." -#: ../Doc/library/typing.rst:597 +#: ../Doc/library/typing.rst:822 msgid "Special type indicating an unconstrained type." msgstr "Tipo especial que indica un tipo sin restricciones." -#: ../Doc/library/typing.rst:599 +#: ../Doc/library/typing.rst:824 msgid "Every type is compatible with :data:`Any`." msgstr "Todos los tipos son compatibles con :data:`Any`." -#: ../Doc/library/typing.rst:600 +#: ../Doc/library/typing.rst:825 msgid ":data:`Any` is compatible with every type." msgstr ":data:`Any` es compatible con todos los tipos." # ¿Qué signica el uso de "to duck type" como un verbo en este contexto? -#: ../Doc/library/typing.rst:602 +#: ../Doc/library/typing.rst:827 #, fuzzy msgid "" ":data:`Any` can now be used as a base class. This can be useful for avoiding " @@ -862,12 +1036,45 @@ msgstr "" "hacer uso del *duck typing* en cualquier punto, o que sean altamente " "dinámicas." -#: ../Doc/library/typing.rst:609 +#: ../Doc/library/typing.rst:834 +msgid "A :ref:`constrained type variable `." +msgstr "" + +#: ../Doc/library/typing.rst:836 +msgid "Definition::" +msgstr "" + +#: ../Doc/library/typing.rst:840 +msgid "" +"``AnyStr`` is meant to be used for functions that may accept :class:`str` " +"or :class:`bytes` arguments but cannot allow the two to mix." +msgstr "" + +#: ../Doc/library/typing.rst:843 ../Doc/library/typing.rst:934 +#: ../Doc/library/typing.rst:954 ../Doc/library/typing.rst:1011 +#: ../Doc/library/typing.rst:1180 ../Doc/library/typing.rst:1237 +#: ../Doc/library/typing.rst:1446 ../Doc/library/typing.rst:2813 +msgid "For example::" +msgstr "Por ejemplo::" + +#: ../Doc/library/typing.rst:852 +msgid "" +"Note that, despite its name, ``AnyStr`` has nothing to do with the :class:" +"`Any` type, nor does it mean \"any string\". In particular, ``AnyStr`` and " +"``str | bytes`` are different from each other and have different use cases::" +msgstr "" + +#: ../Doc/library/typing.rst:869 +msgid "Special type that includes only literal strings." +msgstr "" + +#: ../Doc/library/typing.rst:871 +#, fuzzy msgid "" -"Special type that includes only literal strings. A string literal is " -"compatible with ``LiteralString``, as is another ``LiteralString``, but an " -"object typed as just ``str`` is not. A string created by composing " -"``LiteralString``-typed objects is also acceptable as a ``LiteralString``." +"Any string literal is compatible with ``LiteralString``, as is another " +"``LiteralString``. However, an object typed as just ``str`` is not. A string " +"created by composing ``LiteralString``-typed objects is also acceptable as a " +"``LiteralString``." msgstr "" "Tipo especial que solo incluye a las cadenas de texto literales. Una cadena " "de texto literal es compatible con ``LiteralString``, así como otro " @@ -875,27 +1082,30 @@ msgstr "" "es. Una cadena de texto que ha sido creada componiendo objetos tipados como " "``LiteralString`` también es válida como ``LiteralString``." -#: ../Doc/library/typing.rst:615 ../Doc/library/typing.rst:2443 -msgid "Example::" +#: ../Doc/library/typing.rst:877 ../Doc/library/typing.rst:1957 +#, fuzzy +msgid "Example:" msgstr "Por ejemplo::" -#: ../Doc/library/typing.rst:629 +#: ../Doc/library/typing.rst:893 +#, fuzzy msgid "" -"This is useful for sensitive APIs where arbitrary user-generated strings " -"could generate problems. For example, the two cases above that generate type " -"checker errors could be vulnerable to an SQL injection attack." +"``LiteralString`` is useful for sensitive APIs where arbitrary user-" +"generated strings could generate problems. For example, the two cases above " +"that generate type checker errors could be vulnerable to an SQL injection " +"attack." msgstr "" "Ésto es util para APIs sensibles donde cadenas de texto arbitrarias " "generadas por usuarios podrían generar problemas. Por ejemplo, los dos casos " "que aparecen arriba que generar errores en el verificador de tipos podrían " "ser vulnerables a un ataque de inyección de SQL." -#: ../Doc/library/typing.rst:634 +#: ../Doc/library/typing.rst:898 msgid "See :pep:`675` for more details." msgstr "Véase :pep:`675` para más detalle." # bottom type? -#: ../Doc/library/typing.rst:640 +#: ../Doc/library/typing.rst:904 msgid "" "The `bottom type `_, a type that " "has no members." @@ -903,7 +1113,7 @@ msgstr "" "El `bottom type `_ (tipo vacío), " "un tipo que no tiene miembros." -#: ../Doc/library/typing.rst:643 +#: ../Doc/library/typing.rst:907 msgid "" "This can be used to define a function that should never be called, or a " "function that never returns::" @@ -911,7 +1121,7 @@ msgstr "" "Puede ser utilizado para definir una función que nunca debe ser llamada, o " "una función que nunca retorna::" -#: ../Doc/library/typing.rst:663 +#: ../Doc/library/typing.rst:927 msgid "" "On older Python versions, :data:`NoReturn` may be used to express the same " "concept. ``Never`` was added to make the intended meaning more explicit." @@ -922,13 +1132,14 @@ msgstr "" # se añade valor para matizar que la funcion retorna (retorna el control) pero # no de manera normal. En el ejemplo lanza una excepción. -#: ../Doc/library/typing.rst:668 -msgid "Special type indicating that a function never returns. For example::" +#: ../Doc/library/typing.rst:932 +#, fuzzy +msgid "Special type indicating that a function never returns." msgstr "" "Tipo especial que indica que una función nunca retorna un valor. Por " "ejemplo::" -#: ../Doc/library/typing.rst:676 +#: ../Doc/library/typing.rst:941 msgid "" "``NoReturn`` can also be used as a `bottom type `_, a type that has no values. Starting in Python 3.11, " @@ -941,12 +1152,12 @@ msgstr "" "Validadores de tipo deben tratar a ambos como equivalentes." # ¿cómo se le llama en español a una variable "capturada" en una clausura? -#: ../Doc/library/typing.rst:687 +#: ../Doc/library/typing.rst:952 #, fuzzy -msgid "Special type to represent the current enclosed class. For example::" +msgid "Special type to represent the current enclosed class." msgstr "Tipo especial que representa la clase capturada actual. Por ejemplo::" -#: ../Doc/library/typing.rst:698 +#: ../Doc/library/typing.rst:968 msgid "" "This annotation is semantically equivalent to the following, albeit in a " "more succinct fashion::" @@ -954,23 +1165,20 @@ msgstr "" "Esta anotación es semánticamente equivalente a lo siguiente, aunque de una " "manera más sucinta::" -#: ../Doc/library/typing.rst:710 -msgid "In general if something currently follows the pattern of::" -msgstr "En general, si actualmente algo sigue el patrón de::" - -#: ../Doc/library/typing.rst:717 +#: ../Doc/library/typing.rst:980 msgid "" -"You should use :data:`Self` as calls to ``SubclassOfFoo.return_self`` would " -"have ``Foo`` as the return type and not ``SubclassOfFoo``." +"In general, if something returns ``self``, as in the above examples, you " +"should use ``Self`` as the return annotation. If ``Foo.return_self`` was " +"annotated as returning ``\"Foo\"``, then the type checker would infer the " +"object returned from ``SubclassOfFoo.return_self`` as being of type ``Foo`` " +"rather than ``SubclassOfFoo``." msgstr "" -"Se debiese usar :data:`Self`, ya que llamadas a ``SubclassOfFoo." -"return_self`` tendrían ``Foo`` como valor de retorno, y no ``SubclassOfFoo``." -#: ../Doc/library/typing.rst:720 +#: ../Doc/library/typing.rst:986 msgid "Other common use cases include:" msgstr "Otros casos de uso comunes incluyen:" -#: ../Doc/library/typing.rst:722 +#: ../Doc/library/typing.rst:988 msgid "" ":class:`classmethod`\\s that are used as alternative constructors and return " "instances of the ``cls`` parameter." @@ -978,128 +1186,114 @@ msgstr "" ":class:`classmethod` usados como constructores alternativos y retornan " "instancias del parámetro ``cls``." -#: ../Doc/library/typing.rst:724 +#: ../Doc/library/typing.rst:990 msgid "Annotating an :meth:`~object.__enter__` method which returns self." msgstr "Anotar un método :meth:`~object.__enter__` que retorna self." -#: ../Doc/library/typing.rst:726 +#: ../Doc/library/typing.rst:992 +msgid "" +"You should not use ``Self`` as the return annotation if the method is not " +"guaranteed to return an instance of a subclass when the class is subclassed::" +msgstr "" + +#: ../Doc/library/typing.rst:1003 msgid "See :pep:`673` for more details." msgstr "Véase :pep:`673` para más detalle." -#: ../Doc/library/typing.rst:732 +#: ../Doc/library/typing.rst:1009 +#, fuzzy msgid "" "Special annotation for explicitly declaring a :ref:`type alias `. For example::" +"aliases>`." msgstr "" "Anotación especial para declarar explícitamente un :ref:`alias de tipo `. Por ejemplo::" -#: ../Doc/library/typing.rst:739 -msgid "See :pep:`613` for more details about explicit type aliases." +#: ../Doc/library/typing.rst:1017 +msgid "" +"``TypeAlias`` is particularly useful on older Python versions for annotating " +"aliases that make use of forward references, as it can be hard for type " +"checkers to distinguish these from normal variable assignments:" +msgstr "" + +#: ../Doc/library/typing.rst:1037 +#, fuzzy +msgid "See :pep:`613` for more details." +msgstr "Véase :pep:`681` para más detalle." + +#: ../Doc/library/typing.rst:1041 +msgid "" +":data:`TypeAlias` is deprecated in favor of the :keyword:`type` statement, " +"which creates instances of :class:`TypeAliasType` and which natively " +"supports forward references. Note that while :data:`TypeAlias` and :class:" +"`TypeAliasType` serve similar purposes and have similar names, they are " +"distinct and the latter is not the type of the former. Removal of :data:" +"`TypeAlias` is not currently planned, but users are encouraged to migrate " +"to :keyword:`type` statements." msgstr "" -"Consulte :pep:`613` para obtener más detalles sobre los alias de tipos " -"explícitos." -#: ../Doc/library/typing.rst:744 +#: ../Doc/library/typing.rst:1052 msgid "Special forms" msgstr "Formas especiales" -#: ../Doc/library/typing.rst:746 +#: ../Doc/library/typing.rst:1054 +#, fuzzy msgid "" -"These can be used as types in annotations using ``[]``, each having a unique " -"syntax." +"These can be used as types in annotations. They all support subscription " +"using ``[]``, but each has a unique syntax." msgstr "" "Estas se pueden usar como anotaciones de tipo usando ``[]``, cada cual tiene " "una sintaxis única." -#: ../Doc/library/typing.rst:750 +#: ../Doc/library/typing.rst:1059 msgid "" -"Tuple type; ``Tuple[X, Y]`` is the type of a tuple of two items with the " -"first item of type X and the second of type Y. The type of the empty tuple " -"can be written as ``Tuple[()]``." +"Union type; ``Union[X, Y]`` is equivalent to ``X | Y`` and means either X or " +"Y." msgstr "" -"El tipo Tuple, ``Tuple[X, Y]`` es el tipo de una tupla de dos ítems con el " -"primer ítem de tipo X y el segundo de tipo Y. El tipo de una tupla vacía se " -"puede escribir así: ``Tuple[()]``." +"Tipo de unión; ``Union[X, Y]`` es equivalente a ``X | Y`` y significa X o Y." -#: ../Doc/library/typing.rst:754 +#: ../Doc/library/typing.rst:1061 msgid "" -"Example: ``Tuple[T1, T2]`` is a tuple of two elements corresponding to type " -"variables T1 and T2. ``Tuple[int, float, str]`` is a tuple of an int, a " -"float and a string." +"To define a union, use e.g. ``Union[int, str]`` or the shorthand ``int | " +"str``. Using that shorthand is recommended. Details:" msgstr "" -"Ejemplo: ``Tuple[T1, T2]`` es una tupla de dos elementos con sus " -"correspondientes variables de tipo T1 y T2. ``Tuple[int, float, str]`` es un " -"tupla con un número entero, un número de punto flotante y una cadena de " -"texto." +"Para definir una unión, use p. ej. ``Union[int, str]`` o la abreviatura " +"``int | str``. Se recomienda el uso de la abreviatura. Detalles:" -#: ../Doc/library/typing.rst:758 -msgid "" -"To specify a variable-length tuple of homogeneous type, use literal " -"ellipsis, e.g. ``Tuple[int, ...]``. A plain :data:`Tuple` is equivalent to " -"``Tuple[Any, ...]``, and in turn to :class:`tuple`." -msgstr "" -"Para especificar una tupla de longitud variable y tipo homogéneo, se usan " -"puntos suspensivos, p. ej. ``Tuple[int, ...]``. Un simple :data:`Tuple` es " -"equivalente a ``Tuple[Any, ...]`` y, a su vez, a :class:`tuple`." - -#: ../Doc/library/typing.rst:762 -msgid "" -":class:`builtins.tuple ` now supports subscripting (``[]``). See :pep:" -"`585` and :ref:`types-genericalias`." -msgstr "" -":class:`builtins.tuple ` ahora soporta el uso de subíndices (``[]``). " -"Véase :pep:`585` y :ref:`types-genericalias`." - -#: ../Doc/library/typing.rst:768 -msgid "" -"Union type; ``Union[X, Y]`` is equivalent to ``X | Y`` and means either X or " -"Y." -msgstr "" -"Tipo de unión; ``Union[X, Y]`` es equivalente a ``X | Y`` y significa X o Y." - -#: ../Doc/library/typing.rst:770 -msgid "" -"To define a union, use e.g. ``Union[int, str]`` or the shorthand ``int | " -"str``. Using that shorthand is recommended. Details:" -msgstr "" -"Para definir una unión, use p. ej. ``Union[int, str]`` o la abreviatura " -"``int | str``. Se recomienda el uso de la abreviatura. Detalles:" - -#: ../Doc/library/typing.rst:772 +#: ../Doc/library/typing.rst:1063 msgid "The arguments must be types and there must be at least one." msgstr "Los argumentos deben ser tipos y haber al menos uno." -#: ../Doc/library/typing.rst:774 +#: ../Doc/library/typing.rst:1065 msgid "Unions of unions are flattened, e.g.::" msgstr "Las uniones de uniones se simplifican (se aplanan), p. ej.::" -#: ../Doc/library/typing.rst:778 +#: ../Doc/library/typing.rst:1069 msgid "Unions of a single argument vanish, e.g.::" msgstr "Las uniones con un solo argumento se eliminan, p. ej.::" -#: ../Doc/library/typing.rst:782 +#: ../Doc/library/typing.rst:1073 msgid "Redundant arguments are skipped, e.g.::" msgstr "Argumentos repetidos se omiten, p. ej.::" -#: ../Doc/library/typing.rst:786 +#: ../Doc/library/typing.rst:1077 msgid "When comparing unions, the argument order is ignored, e.g.::" msgstr "" "Cuando se comparan uniones, el orden de los argumentos se ignoran, p. ej.::" -#: ../Doc/library/typing.rst:790 +#: ../Doc/library/typing.rst:1081 msgid "You cannot subclass or instantiate a ``Union``." msgstr "No es posible crear una subclase o instanciar un ``Union``." -#: ../Doc/library/typing.rst:792 +#: ../Doc/library/typing.rst:1083 msgid "You cannot write ``Union[X][Y]``." msgstr "No es posible escribir ``Union[X][Y]``." -#: ../Doc/library/typing.rst:794 +#: ../Doc/library/typing.rst:1085 msgid "Don't remove explicit subclasses from unions at runtime." msgstr "No elimina subclases explícitas de una unión en tiempo de ejecución." -#: ../Doc/library/typing.rst:797 +#: ../Doc/library/typing.rst:1088 msgid "" "Unions can now be written as ``X | Y``. See :ref:`union type " "expressions`." @@ -1107,15 +1301,11 @@ msgstr "" "Las uniones ahora se pueden escribir como ``X | Y``. Consulte :ref:`union " "type expressions`." -#: ../Doc/library/typing.rst:803 -msgid "Optional type." -msgstr "Tipo Optional." - -#: ../Doc/library/typing.rst:805 +#: ../Doc/library/typing.rst:1094 msgid "``Optional[X]`` is equivalent to ``X | None`` (or ``Union[X, None]``)." msgstr "``Optional[X]`` es equivalente a ``X | None`` (o ``Union[X, None]``)." -#: ../Doc/library/typing.rst:807 +#: ../Doc/library/typing.rst:1096 msgid "" "Note that this is not the same concept as an optional argument, which is one " "that has a default. An optional argument with a default does not require " @@ -1127,7 +1317,7 @@ msgstr "" "necesita el indicador ``Optional`` en su anotación de tipo simplemente por " "que sea opcional. Por ejemplo::" -#: ../Doc/library/typing.rst:815 +#: ../Doc/library/typing.rst:1104 msgid "" "On the other hand, if an explicit value of ``None`` is allowed, the use of " "``Optional`` is appropriate, whether the argument is optional or not. For " @@ -1136,7 +1326,7 @@ msgstr "" "Por otro lado, si se permite un valor ``None``, es apropiado el uso de " "``Optional``, independientemente de que sea opcional o no. Por ejemplo::" -#: ../Doc/library/typing.rst:822 +#: ../Doc/library/typing.rst:1111 msgid "" "Optional can now be written as ``X | None``. See :ref:`union type " "expressions`." @@ -1144,62 +1334,19 @@ msgstr "" "Optional ahora se puede escribir como ``X | None``. Consulte :ref:`union " "type expressions`." -#: ../Doc/library/typing.rst:828 -msgid "Callable type; ``Callable[[int], str]`` is a function of (int) -> str." -msgstr "" -"Tipo Callable (invocable); ``Callable[[int], str]`` es una función de (int) -" -"> str." - -#: ../Doc/library/typing.rst:830 -msgid "" -"The subscription syntax must always be used with exactly two values: the " -"argument list and the return type. The argument list must be a list of " -"types or an ellipsis; the return type must be a single type." -msgstr "" -"La sintaxis de subíndice (con corchetes *[]*) debe usarse siempre con dos " -"valores: la lista de argumentos y el tipo de retorno. La lista de argumentos " -"debe ser una lista de tipos o unos puntos suspensivos; el tipo de retorno " -"debe ser un único tipo." - -#: ../Doc/library/typing.rst:835 -msgid "" -"There is no syntax to indicate optional or keyword arguments; such function " -"types are rarely used as callback types. ``Callable[..., ReturnType]`` " -"(literal ellipsis) can be used to type hint a callable taking any number of " -"arguments and returning ``ReturnType``. A plain :data:`Callable` is " -"equivalent to ``Callable[..., Any]``, and in turn to :class:`collections.abc." -"Callable`." -msgstr "" -"No existe una sintaxis para indicar argumentos opcionales o con clave " -"(*keyword*); tales funciones rara vez se utilizan como tipos para llamadas. " -"``Callable[..., ReturnType]`` (puntos suspensivos) se puede usar para " -"indicar que un *callable* admite un número indeterminado de argumentos y " -"retorna ``ReturnType``. Un simple :data:`Callable` es equivalente a " -"``Callable[..., Any]`` y, a su vez, a :class:`collections.abc.Callable`." - -#: ../Doc/library/typing.rst:851 -msgid "" -":class:`collections.abc.Callable` now supports subscripting (``[]``). See :" -"pep:`585` and :ref:`types-genericalias`." -msgstr "" -":class:`collections.abc.Callable` ahora soporta subíndices (``[]``). Véase :" -"pep:`585` y :ref:`types-genericalias`." - -#: ../Doc/library/typing.rst:860 -msgid "" -"The documentation for :class:`ParamSpec` and :class:`Concatenate` provide " -"examples of usage with ``Callable``." +#: ../Doc/library/typing.rst:1117 +msgid "Special form for annotating higher-order functions." msgstr "" -"La documentación de :class:`ParamSpec` y :class:`Concatenate` proporciona " -"ejemplos de uso con ``Callable``." -#: ../Doc/library/typing.rst:865 +#: ../Doc/library/typing.rst:1119 +#, fuzzy msgid "" -"Used with :data:`Callable` and :class:`ParamSpec` to type annotate a higher " -"order callable which adds, removes, or transforms parameters of another " -"callable. Usage is in the form ``Concatenate[Arg1Type, Arg2Type, ..., " -"ParamSpecVariable]``. ``Concatenate`` is currently only valid when used as " -"the first argument to a :data:`Callable`. The last parameter to " +"``Concatenate`` can be used in conjunction with :ref:`Callable ` and :class:`ParamSpec` to annotate a higher-order callable which " +"adds, removes, or transforms parameters of another callable. Usage is in " +"the form ``Concatenate[Arg1Type, Arg2Type, ..., ParamSpecVariable]``. " +"``Concatenate`` is currently only valid when used as the first argument to " +"a :ref:`Callable `. The last parameter to " "``Concatenate`` must be a :class:`ParamSpec` or ellipsis (``...``)." msgstr "" "Se utiliza con :data:`Callable` y :class:`ParamSpec` para escribir anotar un " @@ -1210,7 +1357,7 @@ msgstr "" "último parámetro de ``Concatenate`` debe ser un :class:`ParamSpec` o unos " "puntos suspensivos (``...``)." -#: ../Doc/library/typing.rst:873 +#: ../Doc/library/typing.rst:1128 msgid "" "For example, to annotate a decorator ``with_lock`` which provides a :class:" "`threading.Lock` to the decorated function, ``Concatenate`` can be used to " @@ -1228,87 +1375,39 @@ msgstr "" "invocables retornados dependen de los tipos de parámetros de los invocables " "que se pasan en ::" -#: ../Doc/library/typing.rst:912 ../Doc/library/typing.rst:1500 +#: ../Doc/library/typing.rst:1167 ../Doc/library/typing.rst:1925 +#, fuzzy msgid "" ":pep:`612` -- Parameter Specification Variables (the PEP which introduced " -"``ParamSpec`` and ``Concatenate``)." +"``ParamSpec`` and ``Concatenate``)" msgstr "" ":pep:`612` - Variables de especificación de parámetros (el PEP que introdujo " "``ParamSpec`` y ``Concatenate``)." -#: ../Doc/library/typing.rst:914 -msgid ":class:`ParamSpec` and :class:`Callable`." +#: ../Doc/library/typing.rst:1169 +#, fuzzy +msgid ":class:`ParamSpec`" msgstr ":class:`ParamSpec` y :class:`Callable`." -#: ../Doc/library/typing.rst:919 -msgid "" -"A variable annotated with ``C`` may accept a value of type ``C``. In " -"contrast, a variable annotated with ``Type[C]`` may accept values that are " -"classes themselves -- specifically, it will accept the *class object* of " -"``C``. For example::" -msgstr "" -"Una variable indicada como ``C`` puede aceptar valores de tipo ``C``. Sin " -"embargo, un variable indicada como ``Type[C]`` puede aceptar valores que son " -"clases en sí mismas -- específicamente, aceptará el *objeto clase* de ``C``. " -"Por ejemplo.::" - -#: ../Doc/library/typing.rst:928 -msgid "Note that ``Type[C]`` is covariant::" -msgstr "Nótese que ``Type[C]`` es covariante::" - -#: ../Doc/library/typing.rst:940 -msgid "" -"The fact that ``Type[C]`` is covariant implies that all subclasses of ``C`` " -"should implement the same constructor signature and class method signatures " -"as ``C``. The type checker should flag violations of this, but should also " -"allow constructor calls in subclasses that match the constructor calls in " -"the indicated base class. How the type checker is required to handle this " -"particular case may change in future revisions of :pep:`484`." -msgstr "" -"El hecho de que ``Type[C]`` sea covariante implica que todas las subclases " -"de ``C`` deben implementar la misma interfaz del constructor y las mismas " -"interfaces de los métodos de clase que ``C``. El validador de tipos marcará " -"cualquier incumplimiento de esto, pero permitirá llamadas al constructor que " -"coincida con la llamada al constructor de la clase base indicada. El modo en " -"que el validador de tipos debe gestionar este caso particular podría cambiar " -"en futuras revisiones de :pep:`484`." - -#: ../Doc/library/typing.rst:948 -msgid "" -"The only legal parameters for :class:`Type` are classes, :data:`Any`, :ref:" -"`type variables `, and unions of any of these types. For example::" -msgstr "" -"Lo únicos parámetros válidos de :class:`Type` son clases, :data:`Any`, :ref:" -"`type variables `, y uniones de cualquiera de los tipos " -"anteriores. Por ejemplo::" - -#: ../Doc/library/typing.rst:954 -msgid "" -"``Type[Any]`` is equivalent to ``Type`` which in turn is equivalent to " -"``type``, which is the root of Python's metaclass hierarchy." +#: ../Doc/library/typing.rst:1170 ../Doc/library/typing.rst:1928 +msgid ":ref:`annotating-callables`" msgstr "" -"``Type[Any]`` es equivalente a ``Type``, que a su vez es equivalente a " -"``type``, que es la raíz de la jerarquía de metaclases de Python." -#: ../Doc/library/typing.rst:959 -msgid "" -":class:`builtins.type ` now supports subscripting (``[]``). See :pep:" -"`585` and :ref:`types-genericalias`." +#: ../Doc/library/typing.rst:1174 +msgid "Special typing form to define \"literal types\"." msgstr "" -":class:`builtins.type ` ahora soporta el uso de subíndices (``[]``). " -"Véase :pep:`585` y :ref:`types-genericalias`." -#: ../Doc/library/typing.rst:965 +#: ../Doc/library/typing.rst:1176 +#, fuzzy msgid "" -"A type that can be used to indicate to type checkers that the corresponding " -"variable or function parameter has a value equivalent to the provided " -"literal (or one of several literals). For example::" +"``Literal`` can be used to indicate to type checkers that the annotated " +"object has a value equivalent to one of the provided literals." msgstr "" "Un tipo que puede ser utilizado para indicar a los validadores de tipos que " "una variable o un parámetro de una función tiene un valor equivalente al " "valor literal proveído (o uno de los proveídos). Por ejemplo::" -#: ../Doc/library/typing.rst:979 +#: ../Doc/library/typing.rst:1192 msgid "" "``Literal[...]`` cannot be subclassed. At runtime, an arbitrary value is " "allowed as type argument to ``Literal[...]``, but type checkers may impose " @@ -1319,7 +1418,7 @@ msgstr "" "validadores de tipos pueden imponer sus restricciones. Véase :pep:`585` para " "más detalles sobre tipos literales." -#: ../Doc/library/typing.rst:985 +#: ../Doc/library/typing.rst:1198 msgid "" "``Literal`` now de-duplicates parameters. Equality comparisons of " "``Literal`` objects are no longer order dependent. ``Literal`` objects will " @@ -1331,12 +1430,12 @@ msgstr "" "``Literal`` ahora lanzarán una excepción :exc:`TypeError` durante las " "comparaciones de igualdad si uno de sus parámetros no es :term:`hashable`." -#: ../Doc/library/typing.rst:993 +#: ../Doc/library/typing.rst:1206 msgid "Special type construct to mark class variables." msgstr "Construcción especial para tipado para marcar variables de clase." # Puede haber una entrada mejor para "As introduced" -#: ../Doc/library/typing.rst:995 +#: ../Doc/library/typing.rst:1208 msgid "" "As introduced in :pep:`526`, a variable annotation wrapped in ClassVar " "indicates that a given attribute is intended to be used as a class variable " @@ -1348,12 +1447,12 @@ msgstr "" "misma clase. Uso::" # subscribed se substituye por niveles de subindice -#: ../Doc/library/typing.rst:1003 +#: ../Doc/library/typing.rst:1216 msgid ":data:`ClassVar` accepts only types and cannot be further subscribed." msgstr "" ":data:`ClassVar` solo acepta tipos y no admite más niveles de subíndices." -#: ../Doc/library/typing.rst:1005 +#: ../Doc/library/typing.rst:1218 msgid "" ":data:`ClassVar` is not a class itself, and should not be used with :func:" "`isinstance` or :func:`issubclass`. :data:`ClassVar` does not change Python " @@ -1366,16 +1465,17 @@ msgstr "" "validadores de terceros. Por ejemplo, un validador de tipos puede marcar el " "siguiente código como erróneo::" -#: ../Doc/library/typing.rst:1019 +#: ../Doc/library/typing.rst:1232 +msgid "Special typing construct to indicate final names to type checkers." +msgstr "" + +#: ../Doc/library/typing.rst:1234 msgid "" -"A special typing construct to indicate to type checkers that a name cannot " -"be re-assigned or overridden in a subclass. For example::" +"Final names cannot be reassigned in any scope. Final names declared in class " +"scopes cannot be overridden in subclasses." msgstr "" -"Un construcción especial para tipado que indica a los validadores de tipo " -"que un nombre no puede ser reasignado o sobrescrito en una subclase. Por " -"ejemplo::" -#: ../Doc/library/typing.rst:1031 ../Doc/library/typing.rst:2684 +#: ../Doc/library/typing.rst:1248 ../Doc/library/typing.rst:2829 msgid "" "There is no runtime checking of these properties. See :pep:`591` for more " "details." @@ -1383,154 +1483,191 @@ msgstr "" "No hay comprobación en tiempo de ejecución para estas propiedades. Véase :" "pep:`591` para más detalles." -#: ../Doc/library/typing.rst:1040 +#: ../Doc/library/typing.rst:1255 +#, fuzzy +msgid "Special typing construct to mark a :class:`TypedDict` key as required." +msgstr "Construcción especial para tipado para marcar variables de clase." + +#: ../Doc/library/typing.rst:1257 +#, fuzzy +msgid "" +"This is mainly useful for ``total=False`` TypedDicts. See :class:`TypedDict` " +"and :pep:`655` for more details." +msgstr "Véase :class:`TypedDict` y :pep:`655` para más detalle." + +#: ../Doc/library/typing.rst:1264 +#, fuzzy msgid "" -"Special typing constructs that mark individual keys of a :class:`TypedDict` " -"as either required or non-required respectively." -msgstr "" -"Constructos de tipado especiales que marcan llaves individuales de un :class:" -"`TypedDict` como requeridas o no requeridas respectivamente." +"Special typing construct to mark a :class:`TypedDict` key as potentially " +"missing." +msgstr "Construcción especial para tipado para marcar variables de clase." -#: ../Doc/library/typing.rst:1043 +#: ../Doc/library/typing.rst:1267 msgid "See :class:`TypedDict` and :pep:`655` for more details." msgstr "Véase :class:`TypedDict` y :pep:`655` para más detalle." -#: ../Doc/library/typing.rst:1049 -msgid "" -"A type, introduced in :pep:`593` (``Flexible function and variable " -"annotations``), to decorate existing types with context-specific metadata " -"(possibly multiple pieces of it, as ``Annotated`` is variadic). " -"Specifically, a type ``T`` can be annotated with metadata ``x`` via the " -"typehint ``Annotated[T, x]``. This metadata can be used for either static " -"analysis or at runtime. If a library (or tool) encounters a typehint " -"``Annotated[T, x]`` and has no special logic for metadata ``x``, it should " -"ignore it and simply treat the type as ``T``. Unlike the ``no_type_check`` " -"functionality that currently exists in the ``typing`` module which " -"completely disables typechecking annotations on a function or a class, the " -"``Annotated`` type allows for both static typechecking of ``T`` (which can " -"safely ignore ``x``) together with runtime access to ``x`` within a specific " -"application." -msgstr "" -"Un tipo introducido en :pep:`593` (``Anotaciones flexibles de función y " -"variable``), para decorar tipos existentes con metadatos específicos del " -"contexto (posiblemente múltiples partes del mismo, ya que ``Annotated`` es " -"variádico). En concreto, un tipo ``T`` puede ser anotado con el metadato " -"``x`` a través del *typehint* ``Annotated[T,x]``. Estos metadatos se pueden " -"utilizar para el análisis estático o en tiempo de ejecución. Si una librería " -"(o herramienta) encuentra un *typehint* ``Annotated[T,x]`` y no encuentra " -"una lógica especial para el metadato ``x``, este debería ignorarlo o " -"simplemente tratar el tipo como ``T``. A diferencia de la funcionalidad " -"``no_type_check``, que actualmente existe en el módulo ``typing``, que " -"deshabilita completamente la comprobación de anotaciones de tipo en una " -"función o clase, el tipo ``Annotated`` permite tanto la comprobación de " -"tipos estático de ``T`` (la cuál ignoraría ``x`` de forma segura) en " -"conjunto con el acceso a ``x`` en tiempo de ejecución dentro de una " -"aplicación específica." +#: ../Doc/library/typing.rst:1273 +msgid "Special typing form to add context-specific metadata to an annotation." +msgstr "" -#: ../Doc/library/typing.rst:1063 +#: ../Doc/library/typing.rst:1275 msgid "" -"Ultimately, the responsibility of how to interpret the annotations (if at " -"all) is the responsibility of the tool or library encountering the " -"``Annotated`` type. A tool or library encountering an ``Annotated`` type can " -"scan through the annotations to determine if they are of interest (e.g., " -"using ``isinstance()``)." +"Add metadata ``x`` to a given type ``T`` by using the annotation " +"``Annotated[T, x]``. Metadata added using ``Annotated`` can be used by " +"static analysis tools or at runtime. At runtime, the metadata is stored in " +"a :attr:`!__metadata__` attribute." msgstr "" -"En última instancia, la responsabilidad de cómo interpretar las anotaciones " -"(si es que la hay) es de la herramienta o librería que encuentra el tipo " -"``Annotated``. Una herramienta o librería que encuentra un tipo " -"``Annotated`` puede escanear las anotaciones para determinar si son de " -"interés. (por ejemplo, usando ``isinstance()``)." -#: ../Doc/library/typing.rst:1069 +#: ../Doc/library/typing.rst:1280 msgid "" -"When a tool or a library does not support annotations or encounters an " -"unknown annotation it should just ignore it and treat annotated type as the " -"underlying type." +"If a library or tool encounters an annotation ``Annotated[T, x]`` and has no " +"special logic for the metadata, it should ignore the metadata and simply " +"treat the annotation as ``T``. As such, ``Annotated`` can be useful for code " +"that wants to use annotations for purposes outside Python's static typing " +"system." msgstr "" -"Cuando una herramienta o librería no soporta anotaciones o encuentra una " -"anotación desconocida, simplemente debe ignorarla o tratar la anotación como " -"el tipo subyacente." -#: ../Doc/library/typing.rst:1073 +#: ../Doc/library/typing.rst:1286 msgid "" -"It's up to the tool consuming the annotations to decide whether the client " -"is allowed to have several annotations on one type and how to merge those " -"annotations." +"Using ``Annotated[T, x]`` as an annotation still allows for static " +"typechecking of ``T``, as type checkers will simply ignore the metadata " +"``x``. In this way, ``Annotated`` differs from the :func:`@no_type_check " +"` decorator, which can also be used for adding annotations " +"outside the scope of the typing system, but completely disables typechecking " +"for a function or class." msgstr "" -"Depende de la herramienta que consume las anotaciones decidir si el cliente " -"puede tener varias anotaciones en un tipo y cómo combinar esas anotaciones." -#: ../Doc/library/typing.rst:1077 +#: ../Doc/library/typing.rst:1293 +#, fuzzy msgid "" -"Since the ``Annotated`` type allows you to put several annotations of the " -"same (or different) type(s) on any node, the tools or libraries consuming " -"those annotations are in charge of dealing with potential duplicates. For " -"example, if you are doing value range analysis you might allow this::" +"The responsibility of how to interpret the metadata lies with the the tool " +"or library encountering an ``Annotated`` annotation. A tool or library " +"encountering an ``Annotated`` type can scan through the metadata elements to " +"determine if they are of interest (e.g., using :func:`isinstance`)." msgstr "" -"Dado que el tipo ``Annotated`` permite colocar varias anotaciones del mismo " -"(o diferente) tipo(s) en cualquier nodo, las herramientas o librerías que " -"consumen dichas anotaciones están a cargo de ocuparse de potenciales " -"duplicados. Por ejemplo, si se está realizando un análisis de rango, esto se " -"debería permitir::" +"En última instancia, la responsabilidad de cómo interpretar las anotaciones " +"(si es que la hay) es de la herramienta o librería que encuentra el tipo " +"``Annotated``. Una herramienta o librería que encuentra un tipo " +"``Annotated`` puede escanear las anotaciones para determinar si son de " +"interés. (por ejemplo, usando ``isinstance()``)." -#: ../Doc/library/typing.rst:1086 +#: ../Doc/library/typing.rst:1301 msgid "" -"Passing ``include_extras=True`` to :func:`get_type_hints` lets one access " -"the extra annotations at runtime." +"Here is an example of how you might use ``Annotated`` to add metadata to " +"type annotations if you were doing range analysis:" msgstr "" -"Pasar ``include_extras=True`` a :func:`get_type_hints` permite acceder a las " -"anotaciones extra en tiempo de ejecución." -#: ../Doc/library/typing.rst:1089 -msgid "The details of the syntax:" +#: ../Doc/library/typing.rst:1314 +#, fuzzy +msgid "Details of the syntax:" msgstr "Los detalles de la sintaxis:" -#: ../Doc/library/typing.rst:1091 +#: ../Doc/library/typing.rst:1316 msgid "The first argument to ``Annotated`` must be a valid type" msgstr "El primer argumento en ``Annotated`` debe ser un tipo válido" -#: ../Doc/library/typing.rst:1093 +#: ../Doc/library/typing.rst:1318 +#, fuzzy msgid "" -"Multiple type annotations are supported (``Annotated`` supports variadic " +"Multiple metadata elements can be supplied (``Annotated`` supports variadic " "arguments)::" msgstr "" "Se permiten varias anotaciones de tipo (``Annotated`` admite argumentos " "variádicos)::" -#: ../Doc/library/typing.rst:1098 +#: ../Doc/library/typing.rst:1327 +#, fuzzy +msgid "" +"It is up to the tool consuming the annotations to decide whether the client " +"is allowed to add multiple metadata elements to one annotation and how to " +"merge those annotations." +msgstr "" +"Depende de la herramienta que consume las anotaciones decidir si el cliente " +"puede tener varias anotaciones en un tipo y cómo combinar esas anotaciones." + +#: ../Doc/library/typing.rst:1331 +#, fuzzy msgid "" -"``Annotated`` must be called with at least two arguments " +"``Annotated`` must be subscripted with at least two arguments " "( ``Annotated[int]`` is not valid)" msgstr "" "``Annotated`` debe ser llamado con al menos dos argumentos " "(``Annotated[int]`` no es válido)" -#: ../Doc/library/typing.rst:1101 +#: ../Doc/library/typing.rst:1334 +#, fuzzy msgid "" -"The order of the annotations is preserved and matters for equality checks::" +"The order of the metadata elements is preserved and matters for equality " +"checks::" msgstr "" "Se mantiene el orden de las anotaciones y se toma en cuenta para chequeos de " "igualdad::" -#: ../Doc/library/typing.rst:1108 +#: ../Doc/library/typing.rst:1341 +#, fuzzy msgid "" -"Nested ``Annotated`` types are flattened, with metadata ordered starting " -"with the innermost annotation::" +"Nested ``Annotated`` types are flattened. The order of the metadata elements " +"starts with the innermost annotation::" msgstr "" "Los tipos ``Annotated`` anidados son aplanados con los metadatos ordenados " "empezando por la anotación más interna::" -#: ../Doc/library/typing.rst:1115 -msgid "Duplicated annotations are not removed::" +#: ../Doc/library/typing.rst:1348 +#, fuzzy +msgid "Duplicated metadata elements are not removed::" msgstr "Anotaciones duplicadas no son removidas::" -#: ../Doc/library/typing.rst:1121 -msgid "``Annotated`` can be used with nested and generic aliases::" +#: ../Doc/library/typing.rst:1354 +#, fuzzy +msgid "``Annotated`` can be used with nested and generic aliases:" +msgstr "``Anotated`` puede ser usado con alias anidados y genéricos::" + +#: ../Doc/library/typing.rst:1368 +#, fuzzy +msgid "``Annotated`` cannot be used with an unpacked :class:`TypeVarTuple`::" msgstr "``Anotated`` puede ser usado con alias anidados y genéricos::" -#: ../Doc/library/typing.rst:1134 +#: ../Doc/library/typing.rst:1372 +#, fuzzy +msgid "This would be equivalent to::" +msgstr "Esto es equivalente a::" + +#: ../Doc/library/typing.rst:1376 +msgid "" +"where ``T1``, ``T2``, etc. are :class:`TypeVars `. This would be " +"invalid: only one type should be passed to Annotated." +msgstr "" + +#: ../Doc/library/typing.rst:1379 +msgid "" +"By default, :func:`get_type_hints` strips the metadata from annotations. " +"Pass ``include_extras=True`` to have the metadata preserved:" +msgstr "" + +#: ../Doc/library/typing.rst:1392 +msgid "" +"At runtime, the metadata associated with an ``Annotated`` type can be " +"retrieved via the :attr:`!__metadata__` attribute:" +msgstr "" + +#: ../Doc/library/typing.rst:1406 +#, fuzzy +msgid ":pep:`593` - Flexible function and variable annotations" +msgstr ":pep:`593`: Anotaciones flexibles para funciones y variables" + +#: ../Doc/library/typing.rst:1407 +msgid "The PEP introducing ``Annotated`` to the standard library." +msgstr "" + +#: ../Doc/library/typing.rst:1414 +#, fuzzy +msgid "Special typing construct for marking user-defined type guard functions." +msgstr "Construcción especial para tipado para marcar variables de clase." + +#: ../Doc/library/typing.rst:1416 +#, fuzzy msgid "" -"Special typing form used to annotate the return type of a user-defined type " +"``TypeGuard`` can be used to annotate the return type of a user-defined type " "guard function. ``TypeGuard`` only accepts a single type argument. At " "runtime, functions marked this way should return a boolean." msgstr "" @@ -1539,7 +1676,7 @@ msgstr "" "solo acepta un argumento de tipo único. En tiempo de ejecución, las " "funciones marcadas de esta manera deberían retornar un booleano." -#: ../Doc/library/typing.rst:1138 +#: ../Doc/library/typing.rst:1420 msgid "" "``TypeGuard`` aims to benefit *type narrowing* -- a technique used by static " "type checkers to determine a more precise type of an expression within a " @@ -1554,7 +1691,7 @@ msgstr "" "condicional y aplicando el estrechamiento a un bloque de código. La " "expresión condicional aquí a veces se denomina \"protección de tipo\":" -#: ../Doc/library/typing.rst:1153 +#: ../Doc/library/typing.rst:1435 msgid "" "Sometimes it would be convenient to use a user-defined boolean function as a " "type guard. Such a function should use ``TypeGuard[...]`` as its return " @@ -1565,7 +1702,7 @@ msgstr "" "``TypeGuard[...]`` como su tipo de retorno para alertar a los verificadores " "de tipo estático sobre esta intención." -#: ../Doc/library/typing.rst:1157 +#: ../Doc/library/typing.rst:1439 msgid "" "Using ``-> TypeGuard`` tells the static type checker that for a given " "function:" @@ -1573,11 +1710,11 @@ msgstr "" "El uso de ``-> TypeGuard`` le dice al verificador de tipo estático que para " "una función determinada:" -#: ../Doc/library/typing.rst:1160 +#: ../Doc/library/typing.rst:1442 msgid "The return value is a boolean." msgstr "El valor de retorno es un booleano." -#: ../Doc/library/typing.rst:1161 +#: ../Doc/library/typing.rst:1443 msgid "" "If the return value is ``True``, the type of its argument is the type inside " "``TypeGuard``." @@ -1585,7 +1722,7 @@ msgstr "" "Si el valor de retorno es ``True``, el tipo de su argumento es el tipo " "dentro de ``TypeGuard``." -#: ../Doc/library/typing.rst:1178 +#: ../Doc/library/typing.rst:1460 msgid "" "If ``is_str_list`` is a class or instance method, then the type in " "``TypeGuard`` maps to the type of the second parameter after ``cls`` or " @@ -1595,7 +1732,7 @@ msgstr "" "``TypeGuard`` se asigna al tipo del segundo parámetro después de ``cls`` o " "``self``." -#: ../Doc/library/typing.rst:1182 +#: ../Doc/library/typing.rst:1464 msgid "" "In short, the form ``def foo(arg: TypeA) -> TypeGuard[TypeB]: ...``, means " "that if ``foo(arg)`` returns ``True``, then ``arg`` narrows from ``TypeA`` " @@ -1605,7 +1742,7 @@ msgstr "" "significa que si ``foo(arg)`` retorna ``True``, entonces ``arg`` se estrecha " "de ``TypeA`` a ``TypeB``." -#: ../Doc/library/typing.rst:1188 +#: ../Doc/library/typing.rst:1470 msgid "" "``TypeB`` need not be a narrower form of ``TypeA`` -- it can even be a wider " "form. The main reason is to allow for things like narrowing ``list[object]`` " @@ -1619,7 +1756,7 @@ msgstr "" "subtipo del primero, ya que ``List`` es invariante. La responsabilidad de " "escribir protecciones de tipo seguras se deja al usuario." -#: ../Doc/library/typing.rst:1194 +#: ../Doc/library/typing.rst:1476 msgid "" "``TypeGuard`` also works with type variables. See :pep:`647` for more " "details." @@ -1627,51 +1764,132 @@ msgstr "" "``TypeGuard`` también funciona con variables de tipo. Véase :pep:`647` para " "más detalles." -#: ../Doc/library/typing.rst:1200 -msgid "Building generic types" +#: ../Doc/library/typing.rst:1483 +msgid "Typing operator to conceptually mark an object as having been unpacked." +msgstr "" + +#: ../Doc/library/typing.rst:1485 +#, fuzzy +msgid "" +"For example, using the unpack operator ``*`` on a :class:`type variable " +"tuple ` is equivalent to using ``Unpack`` to mark the type " +"variable tuple as having been unpacked::" +msgstr "" +"Un operador de tipado que conceptualmente marca en un objeto el hecho de " +"haber sido desempaquetado. Por ejemplo, el uso del operador de " +"desempaquetado ``*`` en una :class:`type variable tuple ` es " +"equivalente al uso de ``Unpack`` para marcar en una tupla de variables de " +"tipo el haber sido desempaquetada::" + +#: ../Doc/library/typing.rst:1494 +#, fuzzy +msgid "" +"In fact, ``Unpack`` can be used interchangeably with ``*`` in the context " +"of :class:`typing.TypeVarTuple ` and :class:`builtins.tuple " +"` types. You might see ``Unpack`` being used explicitly in older " +"versions of Python, where ``*`` couldn't be used in certain places::" +msgstr "" +"De hecho, es posible utilizar ``Unpack`` indistintamente de ``*`` en el " +"contexto de tipos. ``Unpack`` puede ser visto siendo usado explícitamente en " +"versiones más antiguas de Python, donde ``*`` no podía ser usado en ciertos " +"lugares::" + +#: ../Doc/library/typing.rst:1508 +msgid "" +"``Unpack`` can also be used along with :class:`typing.TypedDict` for typing " +"``**kwargs`` in a function signature::" +msgstr "" + +#: ../Doc/library/typing.rst:1521 +msgid "" +"See :pep:`692` for more details on using ``Unpack`` for ``**kwargs`` typing." +msgstr "" + +#: ../Doc/library/typing.rst:1526 +#, fuzzy +msgid "Building generic types and type aliases" msgstr "Construir tipos genéricos" -#: ../Doc/library/typing.rst:1202 +#: ../Doc/library/typing.rst:1528 +#, fuzzy msgid "" -"These are not used in annotations. They are building blocks for creating " -"generic types." +"The following classes should not be used directly as annotations. Their " +"intended purpose is to be building blocks for creating generic types and " +"type aliases." msgstr "" "Estos no son utilizados en anotaciones. Son utilizados como bloques para " "crear tipos genéricos." -#: ../Doc/library/typing.rst:1206 +#: ../Doc/library/typing.rst:1532 +msgid "" +"These objects can be created through special syntax (:ref:`type parameter " +"lists ` and the :keyword:`type` statement). For compatibility " +"with Python 3.11 and earlier, they can also be created without the dedicated " +"syntax, as documented below." +msgstr "" + +#: ../Doc/library/typing.rst:1539 msgid "Abstract base class for generic types." msgstr "Clase base abstracta para tipos genéricos." -#: ../Doc/library/typing.rst:1208 +#: ../Doc/library/typing.rst:1541 +msgid "" +"A generic type is typically declared by adding a list of type parameters " +"after the class name::" +msgstr "" + +#: ../Doc/library/typing.rst:1549 msgid "" -"A generic type is typically declared by inheriting from an instantiation of " -"this class with one or more type variables. For example, a generic mapping " -"type might be defined as::" +"Such a class implicitly inherits from ``Generic``. The runtime semantics of " +"this syntax are discussed in the :ref:`Language Reference `." msgstr "" -"Un tipo genérico se declara habitualmente heredando de una instancia de esta " -"clase con una o más variables de tipo. Por ejemplo, un tipo de mapeo " -"genérico se podría definir como::" -#: ../Doc/library/typing.rst:1217 +#: ../Doc/library/typing.rst:1553 msgid "This class can then be used as follows::" msgstr "Entonces, esta clase se puede usar como sigue::" -#: ../Doc/library/typing.rst:1230 +#: ../Doc/library/typing.rst:1561 +msgid "" +"Here the brackets after the function name indicate a :ref:`generic function " +"`." +msgstr "" + +#: ../Doc/library/typing.rst:1564 +msgid "" +"For backwards compatibility, generic classes can also be declared by " +"explicitly inheriting from ``Generic``. In this case, the type parameters " +"must be declared separately::" +msgstr "" + +#: ../Doc/library/typing.rst:1579 msgid "Type variable." msgstr "Variable de tipo." -#: ../Doc/library/typing.rst:1232 ../Doc/library/typing.rst:1429 -#: ../Doc/library/typing.rst:1606 -msgid "Usage::" -msgstr "Uso::" +#: ../Doc/library/typing.rst:1581 +msgid "" +"The preferred way to construct a type variable is via the dedicated syntax " +"for :ref:`generic functions `, :ref:`generic classes " +"`, and :ref:`generic type aliases `::" +msgstr "" + +#: ../Doc/library/typing.rst:1589 +msgid "" +"This syntax can also be used to create bound and constrained type variables::" +msgstr "" + +#: ../Doc/library/typing.rst:1599 +msgid "" +"However, if desired, reusable type variables can also be constructed " +"manually, like so::" +msgstr "" -#: ../Doc/library/typing.rst:1238 +#: ../Doc/library/typing.rst:1605 +#, fuzzy msgid "" "Type variables exist primarily for the benefit of static type checkers. " "They serve as the parameters for generic types as well as for generic " -"function definitions. See :class:`Generic` for more information on generic " -"types. Generic functions work as follows::" +"function and type alias definitions. See :class:`Generic` for more " +"information on generic types. Generic functions work as follows::" msgstr "" "Las variables de tipo son principalmente para ayudar a los validadores " "estáticos de tipos. Sirven tanto como de parámetros para tipos genéricos " @@ -1679,7 +1897,7 @@ msgstr "" "información sobre tipos genéricos. Las funciones genéricas funcionan de la " "siguiente manera::" -#: ../Doc/library/typing.rst:1258 +#: ../Doc/library/typing.rst:1626 msgid "" "Note that type variables can be *bound*, *constrained*, or neither, but " "cannot be both bound *and* constrained." @@ -1688,7 +1906,17 @@ msgstr "" "*constrained* (restringidas), o ninguna, pero no pueden ser al mismo tiempo " "delimitadas *y* restringidas." -#: ../Doc/library/typing.rst:1261 +#: ../Doc/library/typing.rst:1629 +msgid "" +"The variance of type variables is inferred by type checkers when they are " +"created through the :ref:`type parameter syntax ` or when " +"``infer_variance=True`` is passed. Manually created type variables may be " +"explicitly marked covariant or contravariant by passing ``covariant=True`` " +"or ``contravariant=True``. By default, manually created type variables are " +"invariant. See :pep:`484` and :pep:`695` for more details." +msgstr "" + +#: ../Doc/library/typing.rst:1637 msgid "" "Bound type variables and constrained type variables have different semantics " "in several important ways. Using a *bound* type variable means that the " @@ -1699,7 +1927,7 @@ msgstr "" "variable de tipo *bound* (delimitada) significa que la ``TypeVar`` será " "resuelta utilizando el tipo más específico posible::" -#: ../Doc/library/typing.rst:1276 +#: ../Doc/library/typing.rst:1652 msgid "" "Type variables can be bound to concrete types, abstract types (ABCs or " "protocols), and even unions of types::" @@ -1707,7 +1935,7 @@ msgstr "" "Las variables de tipo pueden estar delimitadas por tipos concretos, tipos " "abstractos (ABCs o *protocols*) e incluso uniones de tipos::" -#: ../Doc/library/typing.rst:1282 +#: ../Doc/library/typing.rst:1664 msgid "" "Using a *constrained* type variable, however, means that the ``TypeVar`` can " "only ever be solved as being exactly one of the constraints given::" @@ -1716,27 +1944,58 @@ msgstr "" "``TypeVar`` sólo podrá ser determinada como exactamente una de las " "restricciones dadas::" -#: ../Doc/library/typing.rst:1293 +#: ../Doc/library/typing.rst:1675 +msgid "At runtime, ``isinstance(x, T)`` will raise :exc:`TypeError`." +msgstr "" + +#: ../Doc/library/typing.rst:1679 +#, fuzzy +msgid "The name of the type variable." +msgstr "Variable de tipo." + +#: ../Doc/library/typing.rst:1683 +msgid "Whether the type var has been explicitly marked as covariant." +msgstr "" + +#: ../Doc/library/typing.rst:1687 +msgid "Whether the type var has been explicitly marked as contravariant." +msgstr "" + +#: ../Doc/library/typing.rst:1691 +msgid "" +"Whether the type variable's variance should be inferred by type checkers." +msgstr "" + +#: ../Doc/library/typing.rst:1697 +msgid "The bound of the type variable, if any." +msgstr "" + +#: ../Doc/library/typing.rst:1701 +msgid "" +"For type variables created through :ref:`type parameter syntax `, the bound is evaluated only when the attribute is accessed, not " +"when the type variable is created (see :ref:`lazy-evaluation`)." +msgstr "" + +#: ../Doc/library/typing.rst:1707 +msgid "A tuple containing the constraints of the type variable, if any." +msgstr "" + +#: ../Doc/library/typing.rst:1711 msgid "" -"At runtime, ``isinstance(x, T)`` will raise :exc:`TypeError`. In general, :" -"func:`isinstance` and :func:`issubclass` should not be used with types." +"For type variables created through :ref:`type parameter syntax `, the constraints are evaluated only when the attribute is accessed, " +"not when the type variable is created (see :ref:`lazy-evaluation`)." msgstr "" -"En tiempo de ejecución, ``isinstance(x, T)`` lanzará una excepción :exc:" -"`TypeError`. En general, :func:`isinstance` y :func:`issubclass` no se " -"deben usar con variables de tipo." -#: ../Doc/library/typing.rst:1296 +#: ../Doc/library/typing.rst:1717 msgid "" -"Type variables may be marked covariant or contravariant by passing " -"``covariant=True`` or ``contravariant=True``. See :pep:`484` for more " -"details. By default, type variables are invariant." +"Type variables can now be declared using the :ref:`type parameter ` syntax introduced by :pep:`695`. The ``infer_variance`` parameter " +"was added." msgstr "" -"Las variables de tipo pueden ser marcadas como covariantes o contravariantes " -"pasando ``covariant=True`` o ``contravariant=True``, respectivamente. Véase :" -"pep:`484` para más detalles. Por defecto, las variables de tipo son " -"invariantes." -#: ../Doc/library/typing.rst:1302 +#: ../Doc/library/typing.rst:1723 msgid "" "Type variable tuple. A specialized form of :class:`type variable ` " "that enables *variadic* generics." @@ -1744,7 +2003,17 @@ msgstr "" "Tupla de variables de tipo. Una versión especializada de :class:`type " "variables ` que permite genéricos *variádicos*." -#: ../Doc/library/typing.rst:1305 +#: ../Doc/library/typing.rst:1726 +msgid "" +"Type variable tuples can be declared in :ref:`type parameter lists ` using a single asterisk (``*``) before the name::" +msgstr "" + +#: ../Doc/library/typing.rst:1732 +msgid "Or by explicitly invoking the ``TypeVarTuple`` constructor::" +msgstr "" + +#: ../Doc/library/typing.rst:1740 msgid "" "A normal type variable enables parameterization with a single type. A type " "variable tuple, in contrast, allows parameterization with an *arbitrary* " @@ -1756,7 +2025,7 @@ msgstr "" "*arbitrario* de tipos, al actuar como un número *arbitrario* de variables de " "tipo envueltas en una tupla. Por ejemplo::" -#: ../Doc/library/typing.rst:1333 +#: ../Doc/library/typing.rst:1762 msgid "" "Note the use of the unpacking operator ``*`` in ``tuple[T, *Ts]``. " "Conceptually, you can think of ``Ts`` as a tuple of type variables ``(T1, " @@ -1772,17 +2041,19 @@ msgstr "" "en versiones más antiguas de Python, ésto puede verse escrito usando en " "cambio :data:`Unpack `, en la forma ``Unpack[Ts]``.)" -# Esta coma es válida en español? en mi mente hace sentido porque me permite separar los dos sustantivos, en el mar de "de" que hay -#: ../Doc/library/typing.rst:1341 +# Esta coma es válida en español? en mi mente hace sentido porque me permite +# separar los dos sustantivos, en el mar de "de" que hay +#: ../Doc/library/typing.rst:1770 +#, fuzzy msgid "" "Type variable tuples must *always* be unpacked. This helps distinguish type " -"variable types from normal type variables::" +"variable tuples from normal type variables::" msgstr "" "Las tuplas de variables de tipo *siempre* deben ser desempaquetadas. Esto " "ayuda a distinguir tuplas de variables de tipos, de variables de tipo " "normales::" -#: ../Doc/library/typing.rst:1348 +#: ../Doc/library/typing.rst:1777 msgid "" "Type variable tuples can be used in the same contexts as normal type " "variables. For example, in class definitions, arguments, and return types::" @@ -1791,14 +2062,15 @@ msgstr "" "contextos que las variables de tipo normales. Por ejemplo en definiciones de " "clases, argumentos y tipos de retorno::" -#: ../Doc/library/typing.rst:1357 +#: ../Doc/library/typing.rst:1785 +#, fuzzy msgid "" -"Type variable tuples can be happily combined with normal type variables::" +"Type variable tuples can be happily combined with normal type variables:" msgstr "" "Las tuplas de variables de tipo pueden ser combinadas sin problema con " "variables de tipo normales::" -#: ../Doc/library/typing.rst:1370 +#: ../Doc/library/typing.rst:1801 msgid "" "However, note that at most one type variable tuple may appear in a single " "list of type arguments or type parameters::" @@ -1806,7 +2078,7 @@ msgstr "" "Sin embargo, nótese que en una determinada lista de argumentos de tipo o de " "parámetros de tipo puede haber como máximo una tupla de variables de tipo::" -#: ../Doc/library/typing.rst:1377 +#: ../Doc/library/typing.rst:1808 msgid "" "Finally, an unpacked type variable tuple can be used as the type annotation " "of ``*args``::" @@ -1814,7 +2086,7 @@ msgstr "" "Finalmente, una tupla de variables de tipo desempaquetada puede ser " "utilizada como la anotación de tipo de ``*args``::" -#: ../Doc/library/typing.rst:1387 +#: ../Doc/library/typing.rst:1818 msgid "" "In contrast to non-unpacked annotations of ``*args`` - e.g. ``*args: int``, " "which would specify that *all* arguments are ``int`` - ``*args: *Ts`` " @@ -1829,37 +2101,23 @@ msgstr "" "de los ``*args`` que son pasados a ``call_soon`` calcen con los tipos de los " "argumentos (posicionales) de ``callback``." -#: ../Doc/library/typing.rst:1394 +#: ../Doc/library/typing.rst:1825 msgid "See :pep:`646` for more details on type variable tuples." msgstr "" "Véase :pep:`646` para obtener más detalles sobre las tuplas de variables de " "tipo." -#: ../Doc/library/typing.rst:1400 -msgid "" -"A typing operator that conceptually marks an object as having been unpacked. " -"For example, using the unpack operator ``*`` on a :class:`type variable " -"tuple ` is equivalent to using ``Unpack`` to mark the type " -"variable tuple as having been unpacked::" +#: ../Doc/library/typing.rst:1829 +msgid "The name of the type variable tuple." msgstr "" -"Un operador de tipado que conceptualmente marca en un objeto el hecho de " -"haber sido desempaquetado. Por ejemplo, el uso del operador de " -"desempaquetado ``*`` en una :class:`type variable tuple ` es " -"equivalente al uso de ``Unpack`` para marcar en una tupla de variables de " -"tipo el haber sido desempaquetada::" -#: ../Doc/library/typing.rst:1410 +#: ../Doc/library/typing.rst:1835 msgid "" -"In fact, ``Unpack`` can be used interchangeably with ``*`` in the context of " -"types. You might see ``Unpack`` being used explicitly in older versions of " -"Python, where ``*`` couldn't be used in certain places::" +"Type variable tuples can now be declared using the :ref:`type parameter " +"` syntax introduced by :pep:`695`." msgstr "" -"De hecho, es posible utilizar ``Unpack`` indistintamente de ``*`` en el " -"contexto de tipos. ``Unpack`` puede ser visto siendo usado explícitamente en " -"versiones más antiguas de Python, donde ``*`` no podía ser usado en ciertos " -"lugares::" -#: ../Doc/library/typing.rst:1426 +#: ../Doc/library/typing.rst:1840 msgid "" "Parameter specification variable. A specialized version of :class:`type " "variables `." @@ -1867,7 +2125,19 @@ msgstr "" "Variable de especificación de parámetros. Una versión especializada de :" "class:`type variables `." -#: ../Doc/library/typing.rst:1433 +#: ../Doc/library/typing.rst:1843 +msgid "" +"In :ref:`type parameter lists `, parameter specifications can " +"be declared with two asterisks (``**``)::" +msgstr "" + +#: ../Doc/library/typing.rst:1848 +msgid "" +"For compatibility with Python 3.11 and earlier, ``ParamSpec`` objects can " +"also be created as follows::" +msgstr "" + +#: ../Doc/library/typing.rst:1853 msgid "" "Parameter specification variables exist primarily for the benefit of static " "type checkers. They are used to forward the parameter types of one callable " @@ -1884,7 +2154,7 @@ msgstr "" "``Callable``, o como parámetros para genéricos definidos por el usuario. " "Consulte :class:`Generic` para obtener más información sobre tipos genéricos." -#: ../Doc/library/typing.rst:1440 +#: ../Doc/library/typing.rst:1860 msgid "" "For example, to add basic logging to a function, one can create a decorator " "``add_logging`` to log function calls. The parameter specification variable " @@ -1897,7 +2167,7 @@ msgstr "" "el invocable pasado al decorador y el nuevo invocable retornado por él " "tienen parámetros de tipo interdependientes:" -#: ../Doc/library/typing.rst:1464 +#: ../Doc/library/typing.rst:1880 msgid "" "Without ``ParamSpec``, the simplest way to annotate this previously was to " "use a :class:`TypeVar` with bound ``Callable[..., Any]``. However this " @@ -1907,7 +2177,7 @@ msgstr "" "usar un :class:`TypeVar` con ``Callable[..., Any]`` enlazado. Sin embargo, " "esto causa dos problemas:" -#: ../Doc/library/typing.rst:1468 +#: ../Doc/library/typing.rst:1884 msgid "" "The type checker can't type check the ``inner`` function because ``*args`` " "and ``**kwargs`` have to be typed :data:`Any`." @@ -1915,7 +2185,7 @@ msgstr "" "El verificador de tipo no puede verificar la función ``inner`` porque " "``*args`` y ``**kwargs`` deben escribirse :data:`Any`." -#: ../Doc/library/typing.rst:1470 +#: ../Doc/library/typing.rst:1886 msgid "" ":func:`~cast` may be required in the body of the ``add_logging`` decorator " "when returning the ``inner`` function, or the static type checker must be " @@ -1925,7 +2195,7 @@ msgstr "" "``add_logging`` al retornar la función ``inner``, o se debe indicar al " "verificador de tipo estático que ignore el ``return inner``." -#: ../Doc/library/typing.rst:1477 +#: ../Doc/library/typing.rst:1893 msgid "" "Since ``ParamSpec`` captures both positional and keyword parameters, ``P." "args`` and ``P.kwargs`` can be used to split a ``ParamSpec`` into its " @@ -1948,7 +2218,11 @@ msgstr "" "son instancias respectivamente de :class:`ParamSpecArgs` y :class:" "`ParamSpecKwargs`." -#: ../Doc/library/typing.rst:1487 +#: ../Doc/library/typing.rst:1905 +msgid "The name of the parameter specification." +msgstr "" + +#: ../Doc/library/typing.rst:1907 msgid "" "Parameter specification variables created with ``covariant=True`` or " "``contravariant=True`` can be used to declare covariant or contravariant " @@ -1962,7 +2236,13 @@ msgstr "" "similar a :class:`TypeVar`. Sin embargo, la semántica real de estas palabras " "clave aún no se ha decidido." -#: ../Doc/library/typing.rst:1496 +#: ../Doc/library/typing.rst:1917 +msgid "" +"Parameter specifications can now be declared using the :ref:`type parameter " +"` syntax introduced by :pep:`695`." +msgstr "" + +#: ../Doc/library/typing.rst:1921 msgid "" "Only parameter specification variables defined in global scope can be " "pickled." @@ -1970,11 +2250,11 @@ msgstr "" "Solo las variables de especificación de parámetros definidas en el ámbito " "global pueden ser serializadas." -#: ../Doc/library/typing.rst:1502 -msgid ":class:`Callable` and :class:`Concatenate`." -msgstr ":class:`Callable` y :class:`Concatenate`." +#: ../Doc/library/typing.rst:1927 +msgid ":data:`Concatenate`" +msgstr "" -#: ../Doc/library/typing.rst:1507 +#: ../Doc/library/typing.rst:1933 msgid "" "Arguments and keyword arguments attributes of a :class:`ParamSpec`. The ``P." "args`` attribute of a ``ParamSpec`` is an instance of ``ParamSpecArgs``, and " @@ -1987,132 +2267,82 @@ msgstr "" "Están pensados para la introspección en tiempo de ejecución y no tienen un " "significado especial para los verificadores de tipo estático." -#: ../Doc/library/typing.rst:1512 +#: ../Doc/library/typing.rst:1938 +#, fuzzy msgid "" "Calling :func:`get_origin` on either of these objects will return the " -"original ``ParamSpec``::" +"original ``ParamSpec``:" msgstr "" "Llamar a :func:`get_origin` en cualquiera de estos objetos retornará el " "``ParamSpec`` original:" -#: ../Doc/library/typing.rst:1524 -msgid "" -"``AnyStr`` is a :class:`constrained type variable ` defined as " -"``AnyStr = TypeVar('AnyStr', str, bytes)``." -msgstr "" -"``AnyStr`` es una :class:`constrained type variable ` definida como " -"``AnyStr = TypeVar('AnyStr', str, bytes)``." - -#: ../Doc/library/typing.rst:1527 -msgid "" -"It is meant to be used for functions that may accept any kind of string " -"without allowing different kinds of strings to mix. For example::" -msgstr "" -"Su objetivo es ser usada por funciones que pueden aceptar cualquier tipo de " -"cadena de texto sin permitir mezclar diferentes tipos al mismo tiempo. Por " -"ejemplo::" - -#: ../Doc/library/typing.rst:1539 -msgid "" -"Base class for protocol classes. Protocol classes are defined like this::" -msgstr "" -"Clase base para clases protocolo. Las clases protocolo se definen así::" - -#: ../Doc/library/typing.rst:1545 -msgid "" -"Such classes are primarily used with static type checkers that recognize " -"structural subtyping (static duck-typing), for example::" +#: ../Doc/library/typing.rst:1955 +msgid "The type of type aliases created through the :keyword:`type` statement." msgstr "" -"Tales clases son usadas principalmente con validadores estáticos de tipos " -"que detectan subtipado estructural (*duck-typing* estático), por ejemplo::" -#: ../Doc/library/typing.rst:1557 -msgid "" -"See :pep:`544` for more details. Protocol classes decorated with :func:" -"`runtime_checkable` (described later) act as simple-minded runtime protocols " -"that check only the presence of given attributes, ignoring their type " -"signatures." +#: ../Doc/library/typing.rst:1969 +msgid "The name of the type alias:" msgstr "" -"Véase :pep:`544` para más detalles. Las clases protocolo decoradas con :func:" -"`runtime_checkable` (descrito más adelante) se comportan como protocolos " -"simplistas en tiempo de ejecución que solo comprueban la presencia de " -"atributos dados, ignorando su firma de tipo." - -#: ../Doc/library/typing.rst:1562 -msgid "Protocol classes can be generic, for example::" -msgstr "Las clases protocolo pueden ser genéricas, por ejemplo::" -#: ../Doc/library/typing.rst:1572 -msgid "Mark a protocol class as a runtime protocol." +#: ../Doc/library/typing.rst:1979 +msgid "The module in which the type alias was defined::" msgstr "" -"Marca una clase protocolo como aplicable en tiempo de ejecución (lo " -"convierte en un *runtime protocol*)." -#: ../Doc/library/typing.rst:1574 +#: ../Doc/library/typing.rst:1987 msgid "" -"Such a protocol can be used with :func:`isinstance` and :func:`issubclass`. " -"This raises :exc:`TypeError` when applied to a non-protocol class. This " -"allows a simple-minded structural check, very similar to \"one trick " -"ponies\" in :mod:`collections.abc` such as :class:`~collections.abc." -"Iterable`. For example::" +"The type parameters of the type alias, or an empty tuple if the alias is not " +"generic:" msgstr "" -"Tal protocolo se puede usar con :func:`isinstance` y :func:`issubclass`. " -"Esto lanzará una excepción :exc:`TypeError` cuando se aplique a una clase " -"que no es un protocolo. Esto permite una comprobación estructural simple, " -"muy semejante a \"one trick ponies\" en :mod:`collections.abc` con :class:" -"`Iterable`. Por ejemplo::" -#: ../Doc/library/typing.rst:1587 +#: ../Doc/library/typing.rst:2001 msgid "" -":func:`runtime_checkable` will check only the presence of the required " -"methods, not their type signatures. For example, :class:`ssl.SSLObject` is a " -"class, therefore it passes an :func:`issubclass` check against :data:" -"`Callable`. However, the :meth:`ssl.SSLObject.__init__` method exists only " -"to raise a :exc:`TypeError` with a more informative message, therefore " -"making it impossible to call (instantiate) :class:`ssl.SSLObject`." +"The type alias's value. This is :ref:`lazily evaluated `, " +"so names used in the definition of the alias are not resolved until the " +"``__value__`` attribute is accessed:" msgstr "" -":func:`runtime_checkable` verificará solo la presencia de los métodos " -"requeridos, no sus firmas de tipo. Por ejemplo, :class:`ssl.SSLObject` es " -"una clase, por lo que pasa una verificación :func:`issubclass` contra :data:" -"`Callable`. Sin embargo, el método :meth:`ssl.SSLObject.__init__` existe " -"solo para lanzar un :exc:`TypeError` con un mensaje más informativo, por lo " -"que es imposible llamar (instanciar) :class:`ssl.SSLObject`." -#: ../Doc/library/typing.rst:1598 +#: ../Doc/library/typing.rst:2019 msgid "Other special directives" msgstr "Otras directivas especiales" -#: ../Doc/library/typing.rst:1600 +#: ../Doc/library/typing.rst:2021 +#, fuzzy msgid "" -"These are not used in annotations. They are building blocks for declaring " +"These functions and classes should not be used directly as annotations. " +"Their intended purpose is to be building blocks for creating and declaring " "types." msgstr "" "Estos no son utilizados en anotaciones. Son utilizados como bloques para " "crear tipos genéricos." -#: ../Doc/library/typing.rst:1604 +#: ../Doc/library/typing.rst:2027 msgid "Typed version of :func:`collections.namedtuple`." msgstr "Versión para anotación de tipos de :func:`collections.namedtuple`." -#: ../Doc/library/typing.rst:1612 +#: ../Doc/library/typing.rst:2029 ../Doc/library/typing.rst:2106 +#: ../Doc/library/typing.rst:3055 +msgid "Usage::" +msgstr "Uso::" + +#: ../Doc/library/typing.rst:2035 msgid "This is equivalent to::" msgstr "Esto es equivalente a::" -#: ../Doc/library/typing.rst:1616 +#: ../Doc/library/typing.rst:2039 msgid "" "To give a field a default value, you can assign to it in the class body::" msgstr "" "Para proporcionar a un campo un valor por defecto se puede asignar en el " "cuerpo de la clase::" -#: ../Doc/library/typing.rst:1625 +#: ../Doc/library/typing.rst:2048 msgid "" "Fields with a default value must come after any fields without a default." msgstr "" "Los campos con un valor por defecto deben ir después de los campos sin valor " "por defecto." -#: ../Doc/library/typing.rst:1627 +#: ../Doc/library/typing.rst:2050 msgid "" "The resulting class has an extra attribute ``__annotations__`` giving a dict " "that maps the field names to the field types. (The field names are in the " @@ -2126,30 +2356,30 @@ msgstr "" "``_fields`` y sus valores por defecto en el atributo ``_field_defaults``, " "ambos parte de la API :func:`~collections.namedtuple`.)" -#: ../Doc/library/typing.rst:1633 +#: ../Doc/library/typing.rst:2056 msgid "``NamedTuple`` subclasses can also have docstrings and methods::" msgstr "" "Las subclases de ``NamedTuple`` también pueden tener *docstrings* y métodos::" -#: ../Doc/library/typing.rst:1643 +#: ../Doc/library/typing.rst:2066 msgid "``NamedTuple`` subclasses can be generic::" msgstr "Las subclases de ``NamedTuple`` pueden ser genéricas::" -#: ../Doc/library/typing.rst:1649 +#: ../Doc/library/typing.rst:2072 msgid "Backward-compatible usage::" msgstr "Uso retrocompatible::" -#: ../Doc/library/typing.rst:1653 +#: ../Doc/library/typing.rst:2082 msgid "Added support for :pep:`526` variable annotation syntax." msgstr "" "Soporte añadido para la sintaxis de anotación de variables propuesto en :pep:" "`526`." -#: ../Doc/library/typing.rst:1656 +#: ../Doc/library/typing.rst:2085 msgid "Added support for default values, methods, and docstrings." msgstr "Soporte añadido para valores por defecto, métodos y *docstrings*." -#: ../Doc/library/typing.rst:1659 +#: ../Doc/library/typing.rst:2088 msgid "" "The ``_field_types`` and ``__annotations__`` attributes are now regular " "dictionaries instead of instances of ``OrderedDict``." @@ -2157,7 +2387,7 @@ msgstr "" "Los atributos ``_field_types`` y ``__annotations__`` son simples " "diccionarios en vez de instancias de ``OrderedDict``." -#: ../Doc/library/typing.rst:1663 +#: ../Doc/library/typing.rst:2092 msgid "" "Removed the ``_field_types`` attribute in favor of the more standard " "``__annotations__`` attribute which has the same information." @@ -2165,25 +2395,148 @@ msgstr "" "Se remueve el atributo ``_field_types`` en favor del atributo más estándar " "``__annotations__`` que tiene la misma información." -#: ../Doc/library/typing.rst:1667 +#: ../Doc/library/typing.rst:2096 msgid "Added support for generic namedtuples." msgstr "Se agrega soporte para *namedtuples* genéricas." -#: ../Doc/library/typing.rst:1672 +#: ../Doc/library/typing.rst:2101 +msgid "Helper class to create low-overhead :ref:`distinct types `." +msgstr "" + +#: ../Doc/library/typing.rst:2103 +#, fuzzy msgid "" -"A helper class to indicate a distinct type to a typechecker, see :ref:" -"`distinct`. At runtime it returns an object that returns its argument when " -"called. Usage::" +"A ``NewType`` is considered a distinct type by a typechecker. At runtime, " +"however, calling a ``NewType`` returns its argument unchanged." msgstr "" "Una clase auxiliar para indicar un tipo diferenciado a un comprobador de " "tipos, consulte :ref:`distinct`. En tiempo de ejecución, retorna un objeto " "que retorna su argumento cuando se llama. Uso::" -#: ../Doc/library/typing.rst:1682 +#: ../Doc/library/typing.rst:2113 +msgid "The module in which the new type is defined." +msgstr "" + +#: ../Doc/library/typing.rst:2117 +msgid "The name of the new type." +msgstr "" + +#: ../Doc/library/typing.rst:2121 +msgid "The type that the new type is based on." +msgstr "" + +#: ../Doc/library/typing.rst:2125 msgid "``NewType`` is now a class rather than a function." msgstr "``NewType`` es ahora una clase en lugar de una función." -#: ../Doc/library/typing.rst:1687 +#: ../Doc/library/typing.rst:2130 +#, fuzzy +msgid "Base class for protocol classes." +msgstr "" +"Clase base para clases protocolo. Las clases protocolo se definen así::" + +#: ../Doc/library/typing.rst:2132 +#, fuzzy +msgid "Protocol classes are defined like this::" +msgstr "" +"Clase base para clases protocolo. Las clases protocolo se definen así::" + +#: ../Doc/library/typing.rst:2138 +msgid "" +"Such classes are primarily used with static type checkers that recognize " +"structural subtyping (static duck-typing), for example::" +msgstr "" +"Tales clases son usadas principalmente con validadores estáticos de tipos " +"que detectan subtipado estructural (*duck-typing* estático), por ejemplo::" + +#: ../Doc/library/typing.rst:2150 +msgid "" +"See :pep:`544` for more details. Protocol classes decorated with :func:" +"`runtime_checkable` (described later) act as simple-minded runtime protocols " +"that check only the presence of given attributes, ignoring their type " +"signatures." +msgstr "" +"Véase :pep:`544` para más detalles. Las clases protocolo decoradas con :func:" +"`runtime_checkable` (descrito más adelante) se comportan como protocolos " +"simplistas en tiempo de ejecución que solo comprueban la presencia de " +"atributos dados, ignorando su firma de tipo." + +#: ../Doc/library/typing.rst:2155 +msgid "Protocol classes can be generic, for example::" +msgstr "Las clases protocolo pueden ser genéricas, por ejemplo::" + +#: ../Doc/library/typing.rst:2161 +msgid "" +"In code that needs to be compatible with Python 3.11 or older, generic " +"Protocols can be written as follows::" +msgstr "" + +#: ../Doc/library/typing.rst:2174 +msgid "Mark a protocol class as a runtime protocol." +msgstr "" +"Marca una clase protocolo como aplicable en tiempo de ejecución (lo " +"convierte en un *runtime protocol*)." + +#: ../Doc/library/typing.rst:2176 +msgid "" +"Such a protocol can be used with :func:`isinstance` and :func:`issubclass`. " +"This raises :exc:`TypeError` when applied to a non-protocol class. This " +"allows a simple-minded structural check, very similar to \"one trick " +"ponies\" in :mod:`collections.abc` such as :class:`~collections.abc." +"Iterable`. For example::" +msgstr "" +"Tal protocolo se puede usar con :func:`isinstance` y :func:`issubclass`. " +"Esto lanzará una excepción :exc:`TypeError` cuando se aplique a una clase " +"que no es un protocolo. Esto permite una comprobación estructural simple, " +"muy semejante a \"one trick ponies\" en :mod:`collections.abc` con :class:" +"`Iterable`. Por ejemplo::" + +#: ../Doc/library/typing.rst:2196 +#, fuzzy +msgid "" +":func:`!runtime_checkable` will check only the presence of the required " +"methods or attributes, not their type signatures or types. For example, :" +"class:`ssl.SSLObject` is a class, therefore it passes an :func:`issubclass` " +"check against :ref:`Callable `. However, the ``ssl." +"SSLObject.__init__`` method exists only to raise a :exc:`TypeError` with a " +"more informative message, therefore making it impossible to call " +"(instantiate) :class:`ssl.SSLObject`." +msgstr "" +":func:`runtime_checkable` verificará solo la presencia de los métodos " +"requeridos, no sus firmas de tipo. Por ejemplo, :class:`ssl.SSLObject` es " +"una clase, por lo que pasa una verificación :func:`issubclass` contra :data:" +"`Callable`. Sin embargo, el método :meth:`ssl.SSLObject.__init__` existe " +"solo para lanzar un :exc:`TypeError` con un mensaje más informativo, por lo " +"que es imposible llamar (instanciar) :class:`ssl.SSLObject`." + +#: ../Doc/library/typing.rst:2207 +msgid "" +"An :func:`isinstance` check against a runtime-checkable protocol can be " +"surprisingly slow compared to an ``isinstance()`` check against a non-" +"protocol class. Consider using alternative idioms such as :func:`hasattr` " +"calls for structural checks in performance-sensitive code." +msgstr "" + +#: ../Doc/library/typing.rst:2215 +msgid "" +"The internal implementation of :func:`isinstance` checks against runtime-" +"checkable protocols now uses :func:`inspect.getattr_static` to look up " +"attributes (previously, :func:`hasattr` was used). As a result, some objects " +"which used to be considered instances of a runtime-checkable protocol may no " +"longer be considered instances of that protocol on Python 3.12+, and vice " +"versa. Most users are unlikely to be affected by this change." +msgstr "" + +#: ../Doc/library/typing.rst:2224 +msgid "" +"The members of a runtime-checkable protocol are now considered \"frozen\" at " +"runtime as soon as the class has been created. Monkey-patching attributes " +"onto a runtime-checkable protocol will still work, but will have no impact " +"on :func:`isinstance` checks comparing objects to the protocol. See :ref:" +"`\"What's new in Python 3.12\" ` for more details." +msgstr "" + +#: ../Doc/library/typing.rst:2235 msgid "" "Special construct to add type hints to a dictionary. At runtime it is a " "plain :class:`dict`." @@ -2192,7 +2545,7 @@ msgstr "" "diccionario. En tiempo de ejecución es un :class:`dict` simple." # sinonimo para imposicion/imponer -#: ../Doc/library/typing.rst:1690 +#: ../Doc/library/typing.rst:2238 msgid "" "``TypedDict`` declares a dictionary type that expects all of its instances " "to have a certain set of keys, where each key is associated with a value of " @@ -2204,7 +2557,7 @@ msgstr "" "asociada con un valor de un tipo determinado. Esta exigencia no se comprueba " "en tiempo de ejecución y solo es aplicada por validadores de tipo. Uso::" -#: ../Doc/library/typing.rst:1706 +#: ../Doc/library/typing.rst:2254 msgid "" "To allow using this feature with older versions of Python that do not " "support :pep:`526`, ``TypedDict`` supports two additional equivalent " @@ -2214,15 +2567,15 @@ msgstr "" "Python que no tienen soporte para :pep:`526`, ``TypedDict`` soporta " "adicionalmente dos formas sintácticas equivalentes:" -#: ../Doc/library/typing.rst:1710 +#: ../Doc/library/typing.rst:2258 msgid "Using a literal :class:`dict` as the second argument::" msgstr "El uso de un :class:`dict` literal como segundo argumento::" -#: ../Doc/library/typing.rst:1714 +#: ../Doc/library/typing.rst:2262 msgid "Using keyword arguments::" msgstr "El uso de argumentos nombrados::" -#: ../Doc/library/typing.rst:1721 +#: ../Doc/library/typing.rst:2269 msgid "" "The keyword-argument syntax is deprecated in 3.11 and will be removed in " "3.13. It may also be unsupported by static type checkers." @@ -2231,7 +2584,7 @@ msgstr "" "será removida en la versión 3.13. Además, podría no estar soportada por los " "validadores estáticos de tipo." -#: ../Doc/library/typing.rst:1722 +#: ../Doc/library/typing.rst:2270 msgid "" "The functional syntax should also be used when any of the keys are not " "valid :ref:`identifiers `, for example because they are " @@ -2241,7 +2594,7 @@ msgstr "" "las llaves no sean :ref:`identifiers` válidos, por ejemplo " "porque son palabras clave o contienen guiones. Ejemplo::" -#: ../Doc/library/typing.rst:1734 +#: ../Doc/library/typing.rst:2282 msgid "" "By default, all keys must be present in a ``TypedDict``. It is possible to " "mark individual keys as non-required using :data:`NotRequired`::" @@ -2250,7 +2603,7 @@ msgstr "" "``TypedDict``. Es posible marcar llaves individuales como *no requeridas* " "utilizando :data:`NotRequired`::" -#: ../Doc/library/typing.rst:1745 +#: ../Doc/library/typing.rst:2293 msgid "" "This means that a ``Point2D`` ``TypedDict`` can have the ``label`` key " "omitted." @@ -2258,7 +2611,7 @@ msgstr "" "Esto significa que en un ``TypedDict`` que sea una instancia de ``Point2D``, " "será posible omitir la llave ``label``." -#: ../Doc/library/typing.rst:1748 +#: ../Doc/library/typing.rst:2296 msgid "" "It is also possible to mark all keys as non-required by default by " "specifying a totality of ``False``::" @@ -2266,7 +2619,7 @@ msgstr "" "Además, es posible marcar todas las llaves como no-requeridas por defecto, " "al especificar un valor de ``False`` en el argumento *total*::" -#: ../Doc/library/typing.rst:1758 +#: ../Doc/library/typing.rst:2306 msgid "" "This means that a ``Point2D`` ``TypedDict`` can have any of the keys " "omitted. A type checker is only expected to support a literal ``False`` or " @@ -2279,7 +2632,7 @@ msgstr "" "el predeterminado y hace que todos los elementos definidos en el cuerpo de " "la clase sean obligatorios." -#: ../Doc/library/typing.rst:1763 +#: ../Doc/library/typing.rst:2311 msgid "" "Individual keys of a ``total=False`` ``TypedDict`` can be marked as required " "using :data:`Required`::" @@ -2287,7 +2640,7 @@ msgstr "" "Las llaves individuales de un ``TypedDict`` ``total=False`` pueden ser " "marcadas como requeridas utilizando :data:`Required`::" -#: ../Doc/library/typing.rst:1778 +#: ../Doc/library/typing.rst:2326 msgid "" "It is possible for a ``TypedDict`` type to inherit from one or more other " "``TypedDict`` types using the class-based syntax. Usage::" @@ -2295,7 +2648,7 @@ msgstr "" "Es posible que un tipo ``TypedDict`` herede de uno o más tipos ``TypedDict`` " "usando la sintaxis de clase. Uso::" -#: ../Doc/library/typing.rst:1785 +#: ../Doc/library/typing.rst:2333 msgid "" "``Point3D`` has three items: ``x``, ``y`` and ``z``. It is equivalent to " "this definition::" @@ -2303,7 +2656,7 @@ msgstr "" "``Point3D`` tiene tres elementos: ``x``, ``y`` y ``z``. Lo que es " "equivalente a la siguiente definición::" -#: ../Doc/library/typing.rst:1793 +#: ../Doc/library/typing.rst:2341 msgid "" "A ``TypedDict`` cannot inherit from a non-\\ ``TypedDict`` class, except " "for :class:`Generic`. For example::" @@ -2311,11 +2664,17 @@ msgstr "" "Un ``TypedDict`` no puede heredar de una clase que no sea una subclase de " "``TypedDict``, exceptuando :class:`Generic`. Por ejemplo::" -#: ../Doc/library/typing.rst:1811 +#: ../Doc/library/typing.rst:2356 msgid "A ``TypedDict`` can be generic::" msgstr "Un ``TypedDict`` puede ser genérico::" -#: ../Doc/library/typing.rst:1817 +#: ../Doc/library/typing.rst:2362 +msgid "" +"To create a generic ``TypedDict`` that is compatible with Python 3.11 or " +"lower, inherit from :class:`Generic` explicitly:" +msgstr "" + +#: ../Doc/library/typing.rst:2373 msgid "" "A ``TypedDict`` can be introspected via annotations dicts (see :ref:" "`annotations-howto` for more information on annotations best practices), :" @@ -2327,13 +2686,14 @@ msgstr "" "de anotaciones), :attr:`__total__`, :attr:`__required_keys__`, y :attr:" "`__optional_keys__`." -#: ../Doc/library/typing.rst:1823 +#: ../Doc/library/typing.rst:2379 +#, fuzzy msgid "" -"``Point2D.__total__`` gives the value of the ``total`` argument. Example::" +"``Point2D.__total__`` gives the value of the ``total`` argument. Example:" msgstr "" "``Point2D.__total__`` entrega el valor del argumento ``total``. Ejemplo::" -#: ../Doc/library/typing.rst:1843 +#: ../Doc/library/typing.rst:2401 msgid "" "``Point2D.__required_keys__`` and ``Point2D.__optional_keys__`` return :" "class:`frozenset` objects containing required and non-required keys, " @@ -2343,7 +2703,7 @@ msgstr "" "objetos de la clase :class:`frozenset`, que contienen las llaves requeridas " "y no requeridas, respectivamente." -#: ../Doc/library/typing.rst:1846 +#: ../Doc/library/typing.rst:2404 msgid "" "Keys marked with :data:`Required` will always appear in " "``__required_keys__`` and keys marked with :data:`NotRequired` will always " @@ -2353,13 +2713,14 @@ msgstr "" "``__required_keys__`` y las llaves marcadas con :data:`NotRequired` siempre " "aparecerán en ``__optional_keys__``." -#: ../Doc/library/typing.rst:1849 +#: ../Doc/library/typing.rst:2407 +#, fuzzy msgid "" "For backwards compatibility with Python 3.10 and below, it is also possible " "to use inheritance to declare both required and non-required keys in the " "same ``TypedDict`` . This is done by declaring a ``TypedDict`` with one " "value for the ``total`` argument and then inheriting from it in another " -"``TypedDict`` with a different value for ``total``::" +"``TypedDict`` with a different value for ``total``:" msgstr "" "Para retrocompatibilidad con Python 3.10 y versiones más antiguas, es " "posible utilizar herencia para declarar tanto las llaves requeridas como las " @@ -2367,14 +2728,14 @@ msgstr "" "``TypedDict`` con un valor para el argumento ``total`` y luego heredando de " "él en otro ``TypedDict`` con un valor distinto para ``total``::" -#: ../Doc/library/typing.rst:1870 +#: ../Doc/library/typing.rst:2430 msgid "" "See :pep:`589` for more examples and detailed rules of using ``TypedDict``." msgstr "" "Véase :pep:`589` para más ejemplos y reglas detalladas del uso de " "``TypedDict``." -#: ../Doc/library/typing.rst:1874 +#: ../Doc/library/typing.rst:2434 msgid "" "Added support for marking individual keys as :data:`Required` or :data:" "`NotRequired`. See :pep:`655`." @@ -2382,1332 +2743,1675 @@ msgstr "" "Se agrega soporte para marcar llaves individuales como :data:`Required` o :" "data:`NotRequired`. Véase :pep:`655`." -#: ../Doc/library/typing.rst:1878 +#: ../Doc/library/typing.rst:2438 msgid "Added support for generic ``TypedDict``\\ s." msgstr "Se agrega soporte para ``TypedDict`` genéricos." -#: ../Doc/library/typing.rst:1882 -msgid "Generic concrete collections" -msgstr "Colecciones genéricas concretas" +#: ../Doc/library/typing.rst:2442 +msgid "Protocols" +msgstr "Protocolos" -#: ../Doc/library/typing.rst:1885 -msgid "Corresponding to built-in types" -msgstr "Correspondientes a tipos integrados" +#: ../Doc/library/typing.rst:2444 +#, fuzzy +msgid "" +"The following protocols are provided by the typing module. All are decorated " +"with :func:`@runtime_checkable `." +msgstr "Estos protocolos se decoran con :func:`runtime_checkable`." -#: ../Doc/library/typing.rst:1889 +#: ../Doc/library/typing.rst:2449 msgid "" -"A generic version of :class:`dict`. Useful for annotating return types. To " -"annotate arguments it is preferred to use an abstract collection type such " -"as :class:`Mapping`." +"An ABC with one abstract method ``__abs__`` that is covariant in its return " +"type." msgstr "" -"Una versión genérica de :class:`dict`. Útil para anotar tipos de retorno. " -"Para anotar argumentos es preferible usar un tipo abstracto de colección " -"como :class:`Mapping`." +"Una ABC con un método abstracto ``__abs__`` que es covariante en su tipo " +"retornado." -#: ../Doc/library/typing.rst:1893 -msgid "This type can be used as follows::" -msgstr "Este tipo se puede usar de la siguiente manera::" +#: ../Doc/library/typing.rst:2454 +msgid "An ABC with one abstract method ``__bytes__``." +msgstr "Una ABC con un método abstracto ``__bytes__``." -#: ../Doc/library/typing.rst:1898 -msgid "" -":class:`builtins.dict ` now supports subscripting (``[]``). See :pep:" -"`585` and :ref:`types-genericalias`." -msgstr "" -":class:`builtins.dict ` ahora soporta subíndices (``[]``). Véase :pep:" -"`585` y :ref:`types-genericalias`." +#: ../Doc/library/typing.rst:2458 +msgid "An ABC with one abstract method ``__complex__``." +msgstr "Una ABC con un método abstracto ``__complex__``." -#: ../Doc/library/typing.rst:1904 -msgid "" -"Generic version of :class:`list`. Useful for annotating return types. To " -"annotate arguments it is preferred to use an abstract collection type such " -"as :class:`Sequence` or :class:`Iterable`." -msgstr "" -"Versión genérica de :class:`list`. Útil para anotar tipos de retorno. Para " -"anotar argumentos es preferible usar un tipo abstracto de colección como :" -"class:`Sequence` o :class:`Iterable`." +#: ../Doc/library/typing.rst:2462 +msgid "An ABC with one abstract method ``__float__``." +msgstr "Una ABC con un método abstracto ``__float__``." -#: ../Doc/library/typing.rst:1909 -msgid "This type may be used as follows::" -msgstr "Este tipo se puede usar del siguiente modo::" +#: ../Doc/library/typing.rst:2466 +msgid "An ABC with one abstract method ``__index__``." +msgstr "Una ABC con un método abstracto ``__index__``." -#: ../Doc/library/typing.rst:1919 -msgid "" -":class:`builtins.list ` now supports subscripting (``[]``). See :pep:" -"`585` and :ref:`types-genericalias`." -msgstr "" -":class:`builtins.list ` ahora soporta subíndices (``[]``). Véase :pep:" -"`585` y :ref:`types-genericalias`." +#: ../Doc/library/typing.rst:2472 +msgid "An ABC with one abstract method ``__int__``." +msgstr "Una ABC con un método abstracto ``__int__``." -#: ../Doc/library/typing.rst:1925 +#: ../Doc/library/typing.rst:2476 msgid "" -"A generic version of :class:`builtins.set `. Useful for annotating " -"return types. To annotate arguments it is preferred to use an abstract " -"collection type such as :class:`AbstractSet`." +"An ABC with one abstract method ``__round__`` that is covariant in its " +"return type." msgstr "" -"Una versión genérica de :class:`builtins.set `. Útil para anotar tipos " -"de retornos. Para anotar argumentos es preferible usar un tipo abstracto de " -"colección como :class:`AbstractSet`." +"Una ABC con un método abstracto ``__round__`` que es covariantes en su tipo " +"retornado." -#: ../Doc/library/typing.rst:1929 -msgid "" -":class:`builtins.set ` now supports subscripting (``[]``). See :pep:" -"`585` and :ref:`types-genericalias`." +#: ../Doc/library/typing.rst:2480 +msgid "ABCs for working with IO" msgstr "" -":class:`builtins.set ` ahora soporta subíndices (``[]``). Véase :pep:" -"`585` y :ref:`types-genericalias`." -#: ../Doc/library/typing.rst:1935 -msgid "A generic version of :class:`builtins.frozenset `." -msgstr "Una versión genérica de :class:`builtins.frozenset `." - -#: ../Doc/library/typing.rst:1937 +#: ../Doc/library/typing.rst:2486 msgid "" -":class:`builtins.frozenset ` now supports subscripting (``[]``). " -"See :pep:`585` and :ref:`types-genericalias`." +"Generic type ``IO[AnyStr]`` and its subclasses ``TextIO(IO[str])`` and " +"``BinaryIO(IO[bytes])`` represent the types of I/O streams such as returned " +"by :func:`open`." msgstr "" -":class:`builtins.frozenset ` ahora soporta subíndices (``[]``). " -"Véase :pep:`585` y :ref:`types-genericalias`." - -#: ../Doc/library/typing.rst:1942 -msgid ":data:`Tuple` is a special form." -msgstr ":data:`Tuple` es una forma especial." +"El tipo genérico ``IO[AnyStr]`` y sus subclases ``TextIO(IO[str])`` y " +"``BinaryIO(IO[bytes])`` representan los tipos de flujos de E/S como los " +"retornados por :func:`open`." -#: ../Doc/library/typing.rst:1945 -msgid "Corresponding to types in :mod:`collections`" -msgstr "Correspondiente a tipos en :mod:`collections`" +#: ../Doc/library/typing.rst:2492 +msgid "Functions and decorators" +msgstr "Funciones y decoradores" -#: ../Doc/library/typing.rst:1949 -msgid "A generic version of :class:`collections.defaultdict`." -msgstr "Una versión genérica de :class:`collections.defaultdict`." +#: ../Doc/library/typing.rst:2496 +msgid "Cast a value to a type." +msgstr "Convertir un valor a un tipo." -#: ../Doc/library/typing.rst:1953 +# el "esto" del final queda muy colgado +#: ../Doc/library/typing.rst:2498 msgid "" -":class:`collections.defaultdict` now supports subscripting (``[]``). See :" -"pep:`585` and :ref:`types-genericalias`." -msgstr "" -":class:`collections.defaultdict` ahora soporta subíndices (``[]``). Véase :" -"pep:`585` y :ref:`types-genericalias`." - -#: ../Doc/library/typing.rst:1959 -msgid "A generic version of :class:`collections.OrderedDict`." -msgstr "Una versión genérica de :class:`collections.OrderedDict`." +"This returns the value unchanged. To the type checker this signals that the " +"return value has the designated type, but at runtime we intentionally don't " +"check anything (we want this to be as fast as possible)." +msgstr "" +"Esto retorna el valor sin modificar. Para el validador de tipos esto indica " +"que el valor de retorno tiene el tipo señalado pero, de manera intencionada, " +"no se comprobará en tiempo de ejecución (para maximizar la velocidad)." -#: ../Doc/library/typing.rst:1963 +#: ../Doc/library/typing.rst:2505 msgid "" -":class:`collections.OrderedDict` now supports subscripting (``[]``). See :" -"pep:`585` and :ref:`types-genericalias`." +"Ask a static type checker to confirm that *val* has an inferred type of " +"*typ*." msgstr "" -":class:`collections.OrderedDict` ahora soporta subíndices (``[]``). Véase :" -"pep:`585` y :ref:`types-genericalias`." +"Solicitar a un validador de tipos que confirme que *val* tiene *typ* por " +"tipo inferido." -#: ../Doc/library/typing.rst:1969 -msgid "A generic version of :class:`collections.ChainMap`." -msgstr "Una versión genérica de :class:`collections.ChainMap`." +#: ../Doc/library/typing.rst:2507 +#, fuzzy +msgid "" +"At runtime this does nothing: it returns the first argument unchanged with " +"no checks or side effects, no matter the actual type of the argument." +msgstr "" +"En tiempo de ejecución, ésto retorna el primer argumento sin modificar y sin " +"efectos secundarios." -#: ../Doc/library/typing.rst:1974 +#: ../Doc/library/typing.rst:2510 +#, fuzzy msgid "" -":class:`collections.ChainMap` now supports subscripting (``[]``). See :pep:" -"`585` and :ref:`types-genericalias`." +"When a static type checker encounters a call to ``assert_type()``, it emits " +"an error if the value is not of the specified type::" msgstr "" -":class:`collections.ChainMap` ahora soporta subíndices (``[]``). Véase :pep:" -"`585` y :ref:`types-genericalias`." +"Cuando el validador de tipos se encuentra con una llamada a " +"``assert_type()``, emite un error si el valor no es del tipo especificado::" -#: ../Doc/library/typing.rst:1980 -msgid "A generic version of :class:`collections.Counter`." -msgstr "Una versión genérica de :class:`collections.Counter`." +#: ../Doc/library/typing.rst:2517 +msgid "" +"This function is useful for ensuring the type checker's understanding of a " +"script is in line with the developer's intentions::" +msgstr "" +"Esta función es útil para asegurarse de que la comprensión que el validador " +"de tipos tiene sobre un *script* está alineada con las intenciones de le " +"desarrolladores::" -#: ../Doc/library/typing.rst:1985 +#: ../Doc/library/typing.rst:2531 msgid "" -":class:`collections.Counter` now supports subscripting (``[]``). See :pep:" -"`585` and :ref:`types-genericalias`." +"Ask a static type checker to confirm that a line of code is unreachable." msgstr "" -":class:`collections.Counter` ahora soporta subíndices (``[]``)`. Véase :pep:" -"`585` y :ref:`types-genericalias`." +"Solicitar a un validador estático de tipos confirmar que una línea de código " +"no es alcanzable." -#: ../Doc/library/typing.rst:1991 -msgid "A generic version of :class:`collections.deque`." -msgstr "Una versión genérica de :class:`collections.deque`." +#: ../Doc/library/typing.rst:2533 +msgid "Example::" +msgstr "Por ejemplo::" -#: ../Doc/library/typing.rst:1996 +#: ../Doc/library/typing.rst:2544 msgid "" -":class:`collections.deque` now supports subscripting (``[]``). See :pep:" -"`585` and :ref:`types-genericalias`." +"Here, the annotations allow the type checker to infer that the last case can " +"never execute, because ``arg`` is either an :class:`int` or a :class:`str`, " +"and both options are covered by earlier cases." msgstr "" -":class:`collections.deque` ahora soporta subíndices (``[]``). Véase :pep:" -"`585` y :ref:`types-genericalias`." -#: ../Doc/library/typing.rst:2001 -msgid "Other concrete types" -msgstr "Otros tipos concretos" +#: ../Doc/library/typing.rst:2549 +#, fuzzy +msgid "" +"If a type checker finds that a call to ``assert_never()`` is reachable, it " +"will emit an error. For example, if the type annotation for ``arg`` was " +"instead ``int | str | float``, the type checker would emit an error pointing " +"out that ``unreachable`` is of type :class:`float`. For a call to " +"``assert_never`` to pass type checking, the inferred type of the argument " +"passed in must be the bottom type, :data:`Never`, and nothing else." +msgstr "" +"Aquí, las anotaciones permiten al validador de tipos inferir que el último " +"caso nunca será ejecutado, porque ``arg`` es un :class:`int` o un :class:" +"`str`, y ambas opciones son cubiertas por los casos anteriores. Si un " +"validador de tipos encuentra que una llamada a ``assert_never()`` es " +"alcanzable, emitirá un error. Por ejemplo, si la anotación de tipos para " +"``arg`` fuera en cambio ``int | str | float``, el validador de tipos " +"emitiría un error señalando que ``unreachable`` es de tipo :class:`float`. " +"Para que una llamada a ``assert_never`` pase la validación de tipos, el tipo " +"inferido del argumento dado debe ser el tipo vacío, :data:`Never`, y nada " +"más." + +#: ../Doc/library/typing.rst:2557 +msgid "At runtime, this throws an exception when called." +msgstr "En tiempo de ejecución, ésto lanza una excepción cuando es llamado." -#: ../Doc/library/typing.rst:2007 +#: ../Doc/library/typing.rst:2560 msgid "" -"Generic type ``IO[AnyStr]`` and its subclasses ``TextIO(IO[str])`` and " -"``BinaryIO(IO[bytes])`` represent the types of I/O streams such as returned " -"by :func:`open`." +"`Unreachable Code and Exhaustiveness Checking `__ has more information about " +"exhaustiveness checking with static typing." msgstr "" -"El tipo genérico ``IO[AnyStr]`` y sus subclases ``TextIO(IO[str])`` y " -"``BinaryIO(IO[bytes])`` representan los tipos de flujos de E/S como los " -"retornados por :func:`open`." +"`Unreachable Code and Exhaustiveness Checking `__ contiene más información acerca de la " +"verificación de exhaustividad con tipado estático." + +#: ../Doc/library/typing.rst:2568 +msgid "Reveal the inferred static type of an expression." +msgstr "Revela el tipo estático inferido de una expresión." -#: ../Doc/library/typing.rst:2014 +#: ../Doc/library/typing.rst:2570 msgid "" -"The ``typing.io`` namespace is deprecated and will be removed. These types " -"should be directly imported from ``typing`` instead." +"When a static type checker encounters a call to this function, it emits a " +"diagnostic with the type of the argument. For example::" msgstr "" -"El espacio de nombres ``typing.io`` está obsoleto y se eliminará. En su " -"lugar, estos tipos deben importarse directamente desde ``typing``." +"Cuando un validador estático de tipos se encuentra con una invocación a esta " +"función, emite un diagnostico con el tipo del argumento. Por ejemplo::" -#: ../Doc/library/typing.rst:2019 +#: ../Doc/library/typing.rst:2576 msgid "" -"These type aliases correspond to the return types from :func:`re.compile` " -"and :func:`re.match`. These types (and the corresponding functions) are " -"generic in ``AnyStr`` and can be made specific by writing ``Pattern[str]``, " -"``Pattern[bytes]``, ``Match[str]``, or ``Match[bytes]``." +"This can be useful when you want to debug how your type checker handles a " +"particular piece of code." msgstr "" -"Estos alias de tipo corresponden a los tipos retornados de :func:`re." -"compile` y :func:`re.match`. Estos tipos (y las funciones correspondientes) " -"son genéricos en ``AnyStr`` y se pueden hacer específicos escribiendo " -"``Pattern[str]``, ``Pattern[bytes]``, ``Match[str]`` o ``Match[bytes]``." +"Ésto puede ser de utilidad cuando se desea *debuguear* cómo tu validador de " +"tipos maneja una pieza particular de código." -#: ../Doc/library/typing.rst:2029 +#: ../Doc/library/typing.rst:2579 msgid "" -"The ``typing.re`` namespace is deprecated and will be removed. These types " -"should be directly imported from ``typing`` instead." +"The function returns its argument unchanged, which allows using it within an " +"expression::" msgstr "" -"El espacio de nombres ``typing.re`` está obsoleto y se eliminará. En su " -"lugar, estos tipos deben importarse directamente desde ``typing``." +"Esta función retorna su argumento sin cambios, lo que permite su uso dentro " +"de una expresión::" -#: ../Doc/library/typing.rst:2030 +#: ../Doc/library/typing.rst:2584 msgid "" -"Classes ``Pattern`` and ``Match`` from :mod:`re` now support ``[]``. See :" -"pep:`585` and :ref:`types-genericalias`." +"Most type checkers support ``reveal_type()`` anywhere, even if the name is " +"not imported from ``typing``. Importing the name from ``typing`` allows your " +"code to run without runtime errors and communicates intent more clearly." msgstr "" -"Las clases ``Pattern`` y ``Match`` de :mod:`re` ahora soportan ``[]``. " -"Véase :pep:`585` y :ref:`types-genericalias`." +"La mayoría de los validadores de tipos soportan ``reveal_type()`` en " +"cualquier lugar, incluso si el nombre no ha sido importado desde ``typing``. " +"Importar el nombre desde ``typing`` permite que el código corra sin errores " +"en tiempo de ejecución y comunica la intención de forma más clara." -#: ../Doc/library/typing.rst:2036 +#: ../Doc/library/typing.rst:2589 msgid "" -"``Text`` is an alias for ``str``. It is provided to supply a forward " -"compatible path for Python 2 code: in Python 2, ``Text`` is an alias for " -"``unicode``." +"At runtime, this function prints the runtime type of its argument to stderr " +"and returns it unchanged::" msgstr "" -"``Text`` es un alias para ``str``. Ésta disponible para proporcionar un " -"mecanismo compatible hacia delante para código en Python 2: en Python 2, " -"``Text`` es un alias de ``unicode``." +"En tiempo de ejecución, esta función imprime al *stderr* el tipo en tiempo " +"de ejecución de su argumento y lo retorna in cambios::" -#: ../Doc/library/typing.rst:2040 +#: ../Doc/library/typing.rst:2601 msgid "" -"Use ``Text`` to indicate that a value must contain a unicode string in a " -"manner that is compatible with both Python 2 and Python 3::" +"Decorator to mark an object as providing :func:`dataclass `-like behavior." msgstr "" -"Úsese ``Text`` para indicar que un valor debe contener una cadena de texto " -"Unicode de manera que sea compatible con Python 2 y Python 3::" -#: ../Doc/library/typing.rst:2048 +#: ../Doc/library/typing.rst:2604 +#, fuzzy msgid "" -"Python 2 is no longer supported, and most type checkers also no longer " -"support type checking Python 2 code. Removal of the alias is not currently " -"planned, but users are encouraged to use :class:`str` instead of ``Text`` " -"wherever possible." +"``dataclass_transform`` may be used to decorate a class, metaclass, or a " +"function that is itself a decorator. The presence of " +"``@dataclass_transform()`` tells a static type checker that the decorated " +"object performs runtime \"magic\" that transforms a class in a similar way " +"to :func:`@dataclasses.dataclass `." msgstr "" -"Ya no se soporta Python 2, y la mayoría de los validadores de tipo tampoco " -"dan soporte a la validación de tipos en código escrito en Python 2. " -"Actualmente no está planificado remover el alias, pero se alienta a los " -"usuarios a utilizar :class:`str` en vez de ``Text`` allí donde sea posible." +"Es posible utilizar :data:`~typing.dataclass_transform` para decorar una " +"clase, metaclase, o una función que es ella misma un decorador. La presencia " +"de ``@dataclass_transform()`` indica a un validador estático de tipos que el " +"objeto decorado ejecuta, en tiempo de ejecución, \"magia\" que transforma " +"una clase, dándole comportamientos similares a los que tiene :func:" +"`dataclasses.dataclass`." -#: ../Doc/library/typing.rst:2055 -msgid "Abstract Base Classes" -msgstr "Clase base abstracta para tipos genéricos" +#: ../Doc/library/typing.rst:2611 +#, fuzzy +msgid "Example usage with a decorator function:" +msgstr "Ejemplo de uso con una función-decorador::" -#: ../Doc/library/typing.rst:2058 -msgid "Corresponding to collections in :mod:`collections.abc`" -msgstr "Correspondientes a las colecciones en :mod:`collections.abc`" +#: ../Doc/library/typing.rst:2625 +msgid "On a base class::" +msgstr "En una clase base::" -#: ../Doc/library/typing.rst:2062 -msgid "A generic version of :class:`collections.abc.Set`." -msgstr "Una versión genérica de :class:`collections.abc.Set`." +#: ../Doc/library/typing.rst:2634 +msgid "On a metaclass::" +msgstr "En una metaclase::" -#: ../Doc/library/typing.rst:2064 +#: ../Doc/library/typing.rst:2645 msgid "" -":class:`collections.abc.Set` now supports subscripting (``[]``). See :pep:" -"`585` and :ref:`types-genericalias`." +"The ``CustomerModel`` classes defined above will be treated by type checkers " +"similarly to classes created with :func:`@dataclasses.dataclass `. For example, type checkers will assume these classes have " +"``__init__`` methods that accept ``id`` and ``name``." msgstr "" -":class:`collections.abc.Set` ahora soporta subíndices (``[]``). Véase :pep:" -"`585` y :ref:`types-genericalias`." - -#: ../Doc/library/typing.rst:2070 -msgid "A generic version of :class:`collections.abc.ByteString`." -msgstr "Una versión genérica de :class:`collections.abc.ByteString`." +"Las clases ``CustomerModel`` definidas arribe serán tratadas por los " +"validadores de tipo de forma similar a las clases que sean creadas con :" +"func:`@dataclasses.dataclass `. Por ejemplo, los " +"validadores de tipo asumirán que estas clases tienen métodos ``__init__`` " +"que aceptan ``id`` y ``name``." -#: ../Doc/library/typing.rst:2072 +#: ../Doc/library/typing.rst:2651 msgid "" -"This type represents the types :class:`bytes`, :class:`bytearray`, and :" -"class:`memoryview` of byte sequences." +"The decorated class, metaclass, or function may accept the following bool " +"arguments which type checkers will assume have the same effect as they would " +"have on the :func:`@dataclasses.dataclass` decorator: " +"``init``, ``eq``, ``order``, ``unsafe_hash``, ``frozen``, ``match_args``, " +"``kw_only``, and ``slots``. It must be possible for the value of these " +"arguments (``True`` or ``False``) to be statically evaluated." msgstr "" -"Este tipo representa a los tipos :class:`bytes`, :class:`bytearray`, y :" -"class:`memoryview` de secuencias de bytes." +"La clase, metaclase o función decorada puede aceptar los siguientes " +"argumentos booleanos, de los cuales los validadores de tipos asumirán que " +"tienen el mismo efecto que tendrían en el decorador :func:`@dataclasses." +"dataclass`: ``init``, ``eq``, ``order``, " +"``unsafe_hash``, ``frozen``, ``match_args``, ``kw_only``, y ``slots``. Debe " +"ser posible evaluar estáticamente el valor de estos argumentos (``True`` o " +"``False``)." -#: ../Doc/library/typing.rst:2075 +#: ../Doc/library/typing.rst:2659 msgid "" -"As a shorthand for this type, :class:`bytes` can be used to annotate " -"arguments of any of the types mentioned above." +"The arguments to the ``dataclass_transform`` decorator can be used to " +"customize the default behaviors of the decorated class, metaclass, or " +"function:" msgstr "" -"Como abreviación para este tipo, :class:`bytes` se puede usar para anotar " -"argumentos de cualquiera de los tipos mencionados arriba." +"Es posible utilizar los argumentos del decorador ``dataclass_transform`` " +"para personalizar los comportamientos por defecto de la clase, metaclase o " +"función decorada:" -#: ../Doc/library/typing.rst:2078 -msgid "" -":class:`collections.abc.ByteString` now supports subscripting (``[]``). See :" -"pep:`585` and :ref:`types-genericalias`." +#: ../Doc/library/typing.rst +msgid "Parameters" msgstr "" -":class:`collections.abc.ByteString` ahora soporta la sintaxis de subíndice " -"(``[]``). Véase :pep:`585` y :ref:`types-genericalias`." - -#: ../Doc/library/typing.rst:2084 -msgid "A generic version of :class:`collections.abc.Collection`" -msgstr "Una versión genérica de :class:`collections.abc.Collection`" -#: ../Doc/library/typing.rst:2088 +#: ../Doc/library/typing.rst:2663 +#, fuzzy msgid "" -":class:`collections.abc.Collection` now supports subscripting (``[]``). See :" -"pep:`585` and :ref:`types-genericalias`." +"Indicates whether the ``eq`` parameter is assumed to be ``True`` or " +"``False`` if it is omitted by the caller. Defaults to ``True``." msgstr "" -":class:`collections.abc.Collection` ahora soporta la sintaxis de subíndice " -"(``[]``). Véase :pep:`585` y :ref:`types-genericalias`." - -#: ../Doc/library/typing.rst:2094 -msgid "A generic version of :class:`collections.abc.Container`." -msgstr "Una versión genérica de :class:`collections.abc.Container`." +"``eq_default`` indica si, cuando el invocador haya omitido el parámetro " +"``eq``, el valor de éste debe tomarse por ``True`` o ``False``." -#: ../Doc/library/typing.rst:2096 +#: ../Doc/library/typing.rst:2668 +#, fuzzy msgid "" -":class:`collections.abc.Container` now supports subscripting (``[]``). See :" -"pep:`585` and :ref:`types-genericalias`." +"Indicates whether the ``order`` parameter is assumed to be ``True`` or " +"``False`` if it is omitted by the caller. Defaults to ``False``." msgstr "" -":class:`collections.abc.Container` ahora soporta subíndices (``[]``). Véase :" -"pep:`585` y :ref:`types-genericalias`." - -#: ../Doc/library/typing.rst:2102 -msgid "A generic version of :class:`collections.abc.ItemsView`." -msgstr "Una versión genérica de :class:`collections.abc.ItemsView`." +"``eq_default`` indica si, cuando el invocador haya omitido el parámetro " +"``eq``, el valor de éste debe tomarse por ``True`` o ``False``." -#: ../Doc/library/typing.rst:2104 +#: ../Doc/library/typing.rst:2673 +#, fuzzy msgid "" -":class:`collections.abc.ItemsView` now supports subscripting (``[]``). See :" -"pep:`585` and :ref:`types-genericalias`." +"Indicates whether the ``kw_only`` parameter is assumed to be ``True`` or " +"``False`` if it is omitted by the caller. Defaults to ``False``." msgstr "" -":class:`collections.abc.ItemsView` ahora soporta subíndices (``[]``). Véase :" -"pep:`585` y :ref:`types-genericalias`." - -#: ../Doc/library/typing.rst:2110 -msgid "A generic version of :class:`collections.abc.KeysView`." -msgstr "Una versión genérica de :class:`collections.abc.KeysView`." +"``eq_default`` indica si, cuando el invocador haya omitido el parámetro " +"``eq``, el valor de éste debe tomarse por ``True`` o ``False``." -#: ../Doc/library/typing.rst:2112 +#: ../Doc/library/typing.rst:2678 +#, fuzzy msgid "" -":class:`collections.abc.KeysView` now supports subscripting (``[]``). See :" -"pep:`585` and :ref:`types-genericalias`." +"Indicates whether the ``frozen`` parameter is assumed to be ``True`` or " +"``False`` if it is omitted by the caller. Defaults to ``False``. .. " +"versionadded:: 3.12" msgstr "" -":class:`collections.abc.KeysView` ahora soporta subíndices (``[]``). Véase :" -"pep:`585` y :ref:`types-genericalias`." +"``eq_default`` indica si, cuando el invocador haya omitido el parámetro " +"``eq``, el valor de éste debe tomarse por ``True`` o ``False``." -#: ../Doc/library/typing.rst:2118 +#: ../Doc/library/typing.rst:2679 +#, fuzzy msgid "" -"A generic version of :class:`collections.abc.Mapping`. This type can be used " -"as follows::" +"Indicates whether the ``frozen`` parameter is assumed to be ``True`` or " +"``False`` if it is omitted by the caller. Defaults to ``False``." msgstr "" -"Una versión genérica de :class:`collections.abc.Mapping`. Este tipo se puede " -"usar de la siguiente manera::" +"``eq_default`` indica si, cuando el invocador haya omitido el parámetro " +"``eq``, el valor de éste debe tomarse por ``True`` o ``False``." -#: ../Doc/library/typing.rst:2124 +#: ../Doc/library/typing.rst:2685 +#, fuzzy msgid "" -":class:`collections.abc.Mapping` now supports subscripting (``[]``). See :" -"pep:`585` and :ref:`types-genericalias`." +"Specifies a static list of supported classes or functions that describe " +"fields, similar to :func:`dataclasses.field`. Defaults to ``()``." msgstr "" -":class:`collections.abc.Mapping` ahora soporta subíndices (``[]``). Véase :" -"pep:`585` y :ref:`types-genericalias`." - -#: ../Doc/library/typing.rst:2130 -msgid "A generic version of :class:`collections.abc.MappingView`." -msgstr "Una versión genérica de :class:`collections.abc.MappingView`." +"``field_specifiers`` (especificadores de campos) especifica una lista " +"estática de clases o funciones soportadas que describen campos, de manera " +"similar a ``dataclasses.field()``." -#: ../Doc/library/typing.rst:2132 +#: ../Doc/library/typing.rst:2691 msgid "" -":class:`collections.abc.MappingView` now supports subscripting (``[]``). " -"See :pep:`585` and :ref:`types-genericalias`." +"Arbitrary other keyword arguments are accepted in order to allow for " +"possible future extensions." msgstr "" -":class:`collections.abc.MappingView` ahora soporta subíndices (``[]``). " -"Véase :pep:`585` y :ref:`types-genericalias`." +"Es posible pasar arbitrariamente otros argumentos nombrados para permitir " +"posibles extensiones futuras." -#: ../Doc/library/typing.rst:2138 -msgid "A generic version of :class:`collections.abc.MutableMapping`." -msgstr "Una versión genérica de :class:`collections.abc.MutableMapping`." - -#: ../Doc/library/typing.rst:2140 +#: ../Doc/library/typing.rst:2695 +#, fuzzy msgid "" -":class:`collections.abc.MutableMapping` now supports subscripting (``[]``). " -"See :pep:`585` and :ref:`types-genericalias`." +"Type checkers recognize the following optional parameters on field " +"specifiers:" msgstr "" -":class:`collections.abc.MutableMapping` ahora soporta subíndices (``[]``). " -"Véase :pep:`585` y :ref:`types-genericalias`." - -#: ../Doc/library/typing.rst:2147 -msgid "A generic version of :class:`collections.abc.MutableSequence`." -msgstr "Una versión genérica de :class:`collections.abc.MutableSequence`." +"Los validadores de tipos reconocen los siguientes argumentos opcionales en " +"especificadores de campos:" -#: ../Doc/library/typing.rst:2149 -msgid "" -":class:`collections.abc.MutableSequence` now supports subscripting (``[]``). " -"See :pep:`585` and :ref:`types-genericalias`." +#: ../Doc/library/typing.rst:2698 +msgid "**Recognised parameters for field specifiers**" msgstr "" -":class:`collections.abc.MutableSequence` ahora soporta subíndices (``[]``). " -"Véase :pep:`585` y :ref:`types-genericalias`." -#: ../Doc/library/typing.rst:2156 -msgid "A generic version of :class:`collections.abc.MutableSet`." -msgstr "Una versión genérica de :class:`collections.abc.MutableSet`." +#: ../Doc/library/typing.rst:2702 +msgid "Parameter name" +msgstr "" -#: ../Doc/library/typing.rst:2158 -msgid "" -":class:`collections.abc.MutableSet` now supports subscripting (``[]``). See :" -"pep:`585` and :ref:`types-genericalias`." +#: ../Doc/library/typing.rst:2703 +msgid "Description" msgstr "" -":class:`collections.abc.MutableSet` ahora soporta subíndices (``[]``). " -"Véase :pep:`585` y :ref:`types-genericalias`." -#: ../Doc/library/typing.rst:2164 -msgid "A generic version of :class:`collections.abc.Sequence`." -msgstr "Una versión genérica de :class:`collections.abc.Sequence`." +#: ../Doc/library/typing.rst:2704 +#, fuzzy +msgid "``init``" +msgstr "``typing.Text``" -#: ../Doc/library/typing.rst:2166 +#: ../Doc/library/typing.rst:2705 +#, fuzzy msgid "" -":class:`collections.abc.Sequence` now supports subscripting (``[]``). See :" -"pep:`585` and :ref:`types-genericalias`." +"Indicates whether the field should be included in the synthesized " +"``__init__`` method. If unspecified, ``init`` defaults to ``True``." msgstr "" -":class:`collections.abc.Sequence` ahora soporta subíndices (``[]``). Véase :" -"pep:`585` y :ref:`types-genericalias`." - -#: ../Doc/library/typing.rst:2172 -msgid "A generic version of :class:`collections.abc.ValuesView`." -msgstr "Una versión genérica de :class:`collections.abc.ValuesView`." +"``init`` indica si el campo debe ser incluido en el método ``__init__`` " +"sintetizado. Si no es especificado, ``init`` será ``True`` por defecto." -#: ../Doc/library/typing.rst:2174 -msgid "" -":class:`collections.abc.ValuesView` now supports subscripting (``[]``). See :" -"pep:`585` and :ref:`types-genericalias`." +#: ../Doc/library/typing.rst:2708 +msgid "``default``" msgstr "" -":class:`collections.abc.ValuesView` ahora soporta subíndices (``[]``). " -"Véase :pep:`585` y :ref:`types-genericalias`." -#: ../Doc/library/typing.rst:2179 -msgid "Corresponding to other types in :mod:`collections.abc`" -msgstr "Correspondiente a otros tipos en :mod:`collections.abc`" +#: ../Doc/library/typing.rst:2709 +#, fuzzy +msgid "Provides the default value for the field." +msgstr "``default`` provee el valor por defecto para el campo." -#: ../Doc/library/typing.rst:2183 -msgid "A generic version of :class:`collections.abc.Iterable`." -msgstr "Una versión genérica de :class:`collections.abc.Iterable`." +#: ../Doc/library/typing.rst:2710 +msgid "``default_factory``" +msgstr "" -#: ../Doc/library/typing.rst:2185 +#: ../Doc/library/typing.rst:2711 +#, fuzzy msgid "" -":class:`collections.abc.Iterable` now supports subscripting (``[]``). See :" -"pep:`585` and :ref:`types-genericalias`." +"Provides a runtime callback that returns the default value for the field. If " +"neither ``default`` nor ``default_factory`` are specified, the field is " +"assumed to have no default value and must be provided a value when the class " +"is instantiated." msgstr "" -":class:`collections.abc.Iterable` ahora soporta subíndices (``[]``). Véase :" -"pep:`585` y :ref:`types-genericalias`." +"``default_factory`` provee un *callback* en tiempo de ejecución que retorna " +"el valor por defecto para el campo. Si no se especifican ``default`` ni " +"``default_factory``, se asumirá que el campo no tiene un valor por defecto y " +"que un valor debe ser provisto cuando la clase sea instanciada." -#: ../Doc/library/typing.rst:2191 -msgid "A generic version of :class:`collections.abc.Iterator`." -msgstr "Una versión genérica de :class:`collections.abc.Iterator`." +#: ../Doc/library/typing.rst:2716 +msgid "``factory``" +msgstr "" -#: ../Doc/library/typing.rst:2193 -msgid "" -":class:`collections.abc.Iterator` now supports subscripting (``[]``). See :" -"pep:`585` and :ref:`types-genericalias`." +#: ../Doc/library/typing.rst:2717 +msgid "An alias for the ``default_factory`` parameter on field specifiers." msgstr "" -":class:`collections.abc.Iterator` ahora soporta subíndices (``[]``). Véase :" -"pep:`585` y :ref:`types-genericalias`." -#: ../Doc/library/typing.rst:2199 -msgid "" -"A generator can be annotated by the generic type ``Generator[YieldType, " -"SendType, ReturnType]``. For example::" +#: ../Doc/library/typing.rst:2718 +msgid "``kw_only``" msgstr "" -"Un generador puede ser anotado con el tipo genérico ``Generator[YieldType, " -"SendType, ReturnType]``. Por ejemplo::" -#: ../Doc/library/typing.rst:2208 +#: ../Doc/library/typing.rst:2719 +#, fuzzy msgid "" -"Note that unlike many other generics in the typing module, the ``SendType`` " -"of :class:`Generator` behaves contravariantly, not covariantly or " -"invariantly." +"Indicates whether the field should be marked as keyword-only. If ``True``, " +"the field will be keyword-only. If ``False``, it will not be keyword-only. " +"If unspecified, the value of the ``kw_only`` parameter on the object " +"decorated with ``dataclass_transform`` will be used, or if that is " +"unspecified, the value of ``kw_only_default`` on ``dataclass_transform`` " +"will be used." msgstr "" -"Nótese que en contraste con muchos otros genéricos en el módulo *typing*, el " -"``SendType`` de :class:`Generator` se comporta como contravariante, no " -"covariante ni invariante." +"``kw_only`` indica si el campo debe ser marcado como exclusivamente de " +"palabra clave. Si es ``True``, el campo será exclusivamente de palabra " +"clave. Si es ``False`` no lo será. Si no se especifica, se utilizará el " +"valor para el parámetro ``kw_only`` especificado en el objeto decorado con " +"``dataclass_transform``, o si éste tampoco está especificado, se utilizará " +"el valor de ``kw_only_default`` en ``dataclass_transform``." -#: ../Doc/library/typing.rst:2212 -msgid "" -"If your generator will only yield values, set the ``SendType`` and " -"``ReturnType`` to ``None``::" +#: ../Doc/library/typing.rst:2725 +msgid "``alias``" msgstr "" -"Si tu generador solo retornará valores con *yield*, establece ``SendType`` y " -"``ReturnType`` como ``None``::" -#: ../Doc/library/typing.rst:2220 +# La idea de "synthesized __init__ method" puede verse en el pep 681 donde +# refiere a los métodos init que pueden auto-generar librerías con +# características similares a dataclass +#: ../Doc/library/typing.rst:2726 +#, fuzzy msgid "" -"Alternatively, annotate your generator as having a return type of either " -"``Iterable[YieldType]`` or ``Iterator[YieldType]``::" +"Provides an alternative name for the field. This alternative name is used in " +"the synthesized ``__init__`` method." msgstr "" -"Opcionalmente, anota tu generador con un tipo de retorno de " -"``Iterable[YieldType]`` o ``Iterator[YieldType]``::" +"``alias`` provee un nombre alternativo para el campo. Este nombre " +"alternativo será utilizado en el método ``__init__`` sintetizado." -#: ../Doc/library/typing.rst:2228 +#: ../Doc/library/typing.rst:2729 msgid "" -":class:`collections.abc.Generator` now supports subscripting (``[]``). See :" -"pep:`585` and :ref:`types-genericalias`." +"At runtime, this decorator records its arguments in the " +"``__dataclass_transform__`` attribute on the decorated object. It has no " +"other runtime effect." msgstr "" -":class:`collections.abc.Generator` ahora soporta subíndices (``[]``). Véase :" -"pep:`585` y :ref:`types-genericalias`." +"En tiempo de ejecución, este decorador registra sus argumentos en el " +"atributo ``__dataclass_transform__`` del objeto decorado. No tiene otro " +"efecto en tiempo de ejecución." -#: ../Doc/library/typing.rst:2234 -msgid "An alias to :class:`collections.abc.Hashable`." -msgstr "Un alias de :class:`collections.abc.Hashable`." +#: ../Doc/library/typing.rst:2733 +msgid "See :pep:`681` for more details." +msgstr "Véase :pep:`681` para más detalle." -#: ../Doc/library/typing.rst:2238 -msgid "A generic version of :class:`collections.abc.Reversible`." -msgstr "Una versión genérica de :class:`collections.abc.Reversible`." +#: ../Doc/library/typing.rst:2739 +msgid "Decorator for creating overloaded functions and methods." +msgstr "" -#: ../Doc/library/typing.rst:2240 +#: ../Doc/library/typing.rst:2741 msgid "" -":class:`collections.abc.Reversible` now supports subscripting (``[]``). See :" -"pep:`585` and :ref:`types-genericalias`." +"The ``@overload`` decorator allows describing functions and methods that " +"support multiple different combinations of argument types. A series of " +"``@overload``-decorated definitions must be followed by exactly one non-" +"``@overload``-decorated definition (for the same function/method)." msgstr "" -":class:`collections.abc.Reversible` ahora soporta subíndices (``[]``). " -"Véase :pep:`585` y :ref:`types-genericalias`." - -#: ../Doc/library/typing.rst:2246 -msgid "An alias to :class:`collections.abc.Sized`." -msgstr "Un alias de :class:`collections.abc.Sized`." - -#: ../Doc/library/typing.rst:2249 -msgid "Asynchronous programming" -msgstr "Programación asíncrona" -#: ../Doc/library/typing.rst:2253 +#: ../Doc/library/typing.rst:2746 msgid "" -"A generic version of :class:`collections.abc.Coroutine`. The variance and " -"order of type variables correspond to those of :class:`Generator`, for " -"example::" +"``@overload``-decorated definitions are for the benefit of the type checker " +"only, since they will be overwritten by the non-``@overload``-decorated " +"definition. The non-``@overload``-decorated definition, meanwhile, will be " +"used at runtime but should be ignored by a type checker. At runtime, " +"calling an ``@overload``-decorated function directly will raise :exc:" +"`NotImplementedError`." msgstr "" -"Una versión genérica de :class:`collections.abc.Coroutine`.y orden de las " -"variables de tipo se corresponde con aquellas de :class:`Generator`, por " -"ejemplo::" -#: ../Doc/library/typing.rst:2265 +#: ../Doc/library/typing.rst:2754 msgid "" -":class:`collections.abc.Coroutine` now supports subscripting (``[]``). See :" -"pep:`585` and :ref:`types-genericalias`." +"An example of overload that gives a more precise type than can be expressed " +"using a union or a type variable:" msgstr "" -":class:`collections.abc.Coroutine` ahora soporta subíndices (``[]``). Véase :" -"pep:`585` y :ref:`types-genericalias`." -#: ../Doc/library/typing.rst:2271 +#: ../Doc/library/typing.rst:2771 msgid "" -"An async generator can be annotated by the generic type " -"``AsyncGenerator[YieldType, SendType]``. For example::" +"See :pep:`484` for more details and comparison with other typing semantics." msgstr "" -"Un generador asíncrono se puede anotar con el tipo genérico " -"``AsyncGenerator[YieldType, SendType]``. Por ejemplo::" +"Véase :pep:`484` para más detalle y comparación con otras semánticas de " +"tipado." -#: ../Doc/library/typing.rst:2280 +#: ../Doc/library/typing.rst:2773 msgid "" -"Unlike normal generators, async generators cannot return a value, so there " -"is no ``ReturnType`` type parameter. As with :class:`Generator`, the " -"``SendType`` behaves contravariantly." +"Overloaded functions can now be introspected at runtime using :func:" +"`get_overloads`." msgstr "" -"A diferencia de los generadores normales, los generadores asíncronos no " -"pueden retornar un valor, por lo que no hay un parámetro de tipo " -"``ReturnType``. Igual que :class:`Generator`, ``SendType`` se comporta como " -"contravariante." +"Ahora es posible introspectar en tiempo de ejecución las funciones " +"sobrecargadas utilizando :func:`get_overloads`." -#: ../Doc/library/typing.rst:2284 +#: ../Doc/library/typing.rst:2780 msgid "" -"If your generator will only yield values, set the ``SendType`` to ``None``::" +"Return a sequence of :func:`@overload `-decorated definitions for " +"*func*." msgstr "" -"Si tu generador solo retornará valores con *yield*, establece el " -"``SendType`` como ``None``::" -#: ../Doc/library/typing.rst:2292 +#: ../Doc/library/typing.rst:2783 +#, fuzzy msgid "" -"Alternatively, annotate your generator as having a return type of either " -"``AsyncIterable[YieldType]`` or ``AsyncIterator[YieldType]``::" +"*func* is the function object for the implementation of the overloaded " +"function. For example, given the definition of ``process`` in the " +"documentation for :func:`@overload `, ``get_overloads(process)`` " +"will return a sequence of three function objects for the three defined " +"overloads. If called on a function with no overloads, ``get_overloads()`` " +"returns an empty sequence." msgstr "" -"Opcionalmente, anota el generador con un tipo de retorno " -"``AsyncIterable[YieldType]`` o ``AsyncIterator[YieldType]``::" +"Retorna una secuencia de definiciones para *func* decoradas con :func:" +"`@overload `. *func* es el objeto función correspondiente a la " +"implementación de la función sobrecargada. Por ejemplo, dada la definición " +"de ``process`` en la documentación de :func:`@overload `, " +"``get_overloads(process)`` retornará una secuencia de tres objetos función " +"para las tres sobrecargas definidas. Si es llamada con una función que no " +"tenga sobrecargas, ``get_overloads()`` retorna una secuencia vacía." -#: ../Doc/library/typing.rst:2302 +#: ../Doc/library/typing.rst:2790 msgid "" -":class:`collections.abc.AsyncGenerator` now supports subscripting (``[]``). " -"See :pep:`585` and :ref:`types-genericalias`." +"``get_overloads()`` can be used for introspecting an overloaded function at " +"runtime." msgstr "" -":class:`collections.abc.AsycGenerator` ahora soporta subíndices (``[]``). " -"Véase :pep:`585` y :ref:`types-genericalias`." +"``get_overloads()`` puede ser utilizada para introspectar en tiempo de " +"ejecución una función sobrecargada." -#: ../Doc/library/typing.rst:2309 -msgid "A generic version of :class:`collections.abc.AsyncIterable`." -msgstr "Una versión genérica de :class:`collections.abc.AsyncIterable`." +#: ../Doc/library/typing.rst:2798 +#, fuzzy +msgid "Clear all registered overloads in the internal registry." +msgstr "" +"Limpia todas las sobrecargas registradas del registro interno. Ésto puede " +"ser usado para recuperar memoria usada por el registro." -#: ../Doc/library/typing.rst:2313 -msgid "" -":class:`collections.abc.AsyncIterable` now supports subscripting (``[]``). " -"See :pep:`585` and :ref:`types-genericalias`." +#: ../Doc/library/typing.rst:2800 +#, fuzzy +msgid "This can be used to reclaim the memory used by the registry." msgstr "" -":class:`collections.abc.AsyncIterable` ahora soporta subíndices (``[]``). " -"Véase :pep:`585` y :ref:`types-genericalias`." +"Limpia todas las sobrecargas registradas del registro interno. Ésto puede " +"ser usado para recuperar memoria usada por el registro." -#: ../Doc/library/typing.rst:2319 -msgid "A generic version of :class:`collections.abc.AsyncIterator`." -msgstr "Una versión genérica de :class:`collections.abc.AsyncIterator`." +#: ../Doc/library/typing.rst:2807 +msgid "Decorator to indicate final methods and final classes." +msgstr "" -#: ../Doc/library/typing.rst:2323 +#: ../Doc/library/typing.rst:2809 +#, fuzzy msgid "" -":class:`collections.abc.AsyncIterator` now supports subscripting (``[]``). " -"See :pep:`585` and :ref:`types-genericalias`." +"Decorating a method with ``@final`` indicates to a type checker that the " +"method cannot be overridden in a subclass. Decorating a class with " +"``@final`` indicates that it cannot be subclassed." msgstr "" -":class:`collections.abc.AsyncIterator` ahora soporta subíndices (``[]``). " -"Véase :pep:`585` y :ref:`types-genericalias`." - -#: ../Doc/library/typing.rst:2329 -msgid "A generic version of :class:`collections.abc.Awaitable`." -msgstr "Una versión genérica de :class:`collections.abc.Awaitable`." +"Un decorador que indica a los validadores de tipos que el método decorado no " +"se puede sobreescribir, o que la clase decorada no se puede derivar " +"(*subclassed*). Por ejemplo::" -#: ../Doc/library/typing.rst:2333 +#: ../Doc/library/typing.rst:2834 +#, fuzzy msgid "" -":class:`collections.abc.Awaitable` now supports subscripting (``[]``). See :" -"pep:`585` and :ref:`types-genericalias`." +"The decorator will now attempt to set a ``__final__`` attribute to ``True`` " +"on the decorated object. Thus, a check like ``if getattr(obj, \"__final__\", " +"False)`` can be used at runtime to determine whether an object ``obj`` has " +"been marked as final. If the decorated object does not support setting " +"attributes, the decorator returns the object unchanged without raising an " +"exception." msgstr "" -":class:`collections.abc.Awaitable` ahora soporta subíndices (``[]``). Véase :" -"pep:`585` y :ref:`types-genericalias`." - -#: ../Doc/library/typing.rst:2339 -msgid "Context manager types" -msgstr "Tipos del administrador de contextos" +"El decorador establecerá a ``True`` el atributo ``__final__`` en el objeto " +"decorado. De este modo, es posible utilizar en tiempo de ejecución una " +"verificación como ``if getattr(obj, \"__final__\", False)`` para determinar " +"si un objeto ``obj`` has sido marcado como final. Si el objeto decorado no " +"soporta el establecimiento de atributos, el decorador retorna el objeto sin " +"cambios y sin levantar una excepción." -#: ../Doc/library/typing.rst:2343 -msgid "A generic version of :class:`contextlib.AbstractContextManager`." -msgstr "Una versión genérica de :class:`contextlib.AbstractContextManager`." +# se extrae del contexto que el decorador elimina la comprobacion de tipo en +# el validador, por lo tanto solo anota/comenta (annotation), no +# indica/sugiere tipo (type hint) +#: ../Doc/library/typing.rst:2845 +msgid "Decorator to indicate that annotations are not type hints." +msgstr "" +"Un decorador para indicar que las anotaciones no deben ser comprobadas como " +"indicadores de tipo." -#: ../Doc/library/typing.rst:2348 +#: ../Doc/library/typing.rst:2847 +#, fuzzy msgid "" -":class:`contextlib.AbstractContextManager` now supports subscripting " -"(``[]``). See :pep:`585` and :ref:`types-genericalias`." +"This works as a class or function :term:`decorator`. With a class, it " +"applies recursively to all methods and classes defined in that class (but " +"not to methods defined in its superclasses or subclasses). Type checkers " +"will ignore all annotations in a function or class with this decorator." msgstr "" -":class:`contextlib.AbstractContextManager` ahora soporta subíndices " -"(``[]``). Véase :pep:`585` y :ref:`types-genericalias`." +"Esto funciona como un :term:`decorator` (decorador) de clase o función. Con " +"una clase, se aplica recursivamente a todos los métodos y clases definidos " +"en dicha clase (pero no a lo métodos definidos en sus superclases y " +"subclases)." -#: ../Doc/library/typing.rst:2355 -msgid "A generic version of :class:`contextlib.AbstractAsyncContextManager`." +#: ../Doc/library/typing.rst:2853 +msgid "``@no_type_check`` mutates the decorated object in place." msgstr "" -"Una versión genérica de :class:`contextlib.AbstractAsyncContextManager`." -#: ../Doc/library/typing.rst:2360 -msgid "" -":class:`contextlib.AbstractAsyncContextManager` now supports subscripting " -"(``[]``). See :pep:`585` and :ref:`types-genericalias`." +#: ../Doc/library/typing.rst:2857 +msgid "Decorator to give another decorator the :func:`no_type_check` effect." msgstr "" -":class:`contextlib.AbstractAsyncContextManager` ahora soporta subíndices " -"(``[]``). Véase :pep:`585` y :ref:`types-genericalias`." - -#: ../Doc/library/typing.rst:2366 -msgid "Protocols" -msgstr "Protocolos" +"Un decorador que asigna a otro decorador el efecto de :func:`no_type_check` " +"(no comprobar tipo)." -#: ../Doc/library/typing.rst:2368 -msgid "These protocols are decorated with :func:`runtime_checkable`." -msgstr "Estos protocolos se decoran con :func:`runtime_checkable`." +#: ../Doc/library/typing.rst:2859 +msgid "" +"This wraps the decorator with something that wraps the decorated function " +"in :func:`no_type_check`." +msgstr "" +"Esto hace que el decorador decorado añada el efecto de :func:`no_type_check` " +"a la función decorada." -#: ../Doc/library/typing.rst:2372 +#: ../Doc/library/typing.rst:2865 msgid "" -"An ABC with one abstract method ``__abs__`` that is covariant in its return " -"type." +"Decorator to indicate that a method in a subclass is intended to override a " +"method or attribute in a superclass." msgstr "" -"Una ABC con un método abstracto ``__abs__`` que es covariante en su tipo " -"retornado." -#: ../Doc/library/typing.rst:2377 -msgid "An ABC with one abstract method ``__bytes__``." -msgstr "Una ABC con un método abstracto ``__bytes__``." +#: ../Doc/library/typing.rst:2868 +msgid "" +"Type checkers should emit an error if a method decorated with ``@override`` " +"does not, in fact, override anything. This helps prevent bugs that may occur " +"when a base class is changed without an equivalent change to a child class." +msgstr "" -#: ../Doc/library/typing.rst:2381 -msgid "An ABC with one abstract method ``__complex__``." -msgstr "Una ABC con un método abstracto ``__complex__``." +#: ../Doc/library/typing.rst:2890 +#, fuzzy +msgid "There is no runtime checking of this property." +msgstr "" +"No hay comprobación en tiempo de ejecución para estas propiedades. Véase :" +"pep:`591` para más detalles." -#: ../Doc/library/typing.rst:2385 -msgid "An ABC with one abstract method ``__float__``." -msgstr "Una ABC con un método abstracto ``__float__``." +#: ../Doc/library/typing.rst:2892 +#, fuzzy +msgid "" +"The decorator will attempt to set an ``__override__`` attribute to ``True`` " +"on the decorated object. Thus, a check like ``if getattr(obj, " +"\"__override__\", False)`` can be used at runtime to determine whether an " +"object ``obj`` has been marked as an override. If the decorated object does " +"not support setting attributes, the decorator returns the object unchanged " +"without raising an exception." +msgstr "" +"El decorador establecerá a ``True`` el atributo ``__final__`` en el objeto " +"decorado. De este modo, es posible utilizar en tiempo de ejecución una " +"verificación como ``if getattr(obj, \"__final__\", False)`` para determinar " +"si un objeto ``obj`` has sido marcado como final. Si el objeto decorado no " +"soporta el establecimiento de atributos, el decorador retorna el objeto sin " +"cambios y sin levantar una excepción." -#: ../Doc/library/typing.rst:2389 -msgid "An ABC with one abstract method ``__index__``." -msgstr "Una ABC con un método abstracto ``__index__``." +#: ../Doc/library/typing.rst:2899 +#, fuzzy +msgid "See :pep:`698` for more details." +msgstr "Véase :pep:`681` para más detalle." -#: ../Doc/library/typing.rst:2395 -msgid "An ABC with one abstract method ``__int__``." -msgstr "Una ABC con un método abstracto ``__int__``." +#: ../Doc/library/typing.rst:2906 +#, fuzzy +msgid "Decorator to mark a class or function as unavailable at runtime." +msgstr "" +"Un decorador que marca una clase o función como no disponible en tiempo de " +"ejecución." -#: ../Doc/library/typing.rst:2399 +#: ../Doc/library/typing.rst:2908 msgid "" -"An ABC with one abstract method ``__round__`` that is covariant in its " -"return type." +"This decorator is itself not available at runtime. It is mainly intended to " +"mark classes that are defined in type stub files if an implementation " +"returns an instance of a private class::" msgstr "" -"Una ABC con un método abstracto ``__round__`` que es covariantes en su tipo " -"retornado." +"Este decorador no está disponible en tiempo de ejecución. Existe " +"principalmente para marcar clases que se definen en archivos *stub* para " +"cuando una implementación retorna una instancia de una clase privada::" -#: ../Doc/library/typing.rst:2403 -msgid "Functions and decorators" -msgstr "Funciones y decoradores" +#: ../Doc/library/typing.rst:2919 +msgid "" +"Note that returning instances of private classes is not recommended. It is " +"usually preferable to make such classes public." +msgstr "" +"Nótese que no se recomienda retornar instancias de clases privadas. " +"Normalmente es preferible convertirlas en clases públicas." -#: ../Doc/library/typing.rst:2407 -msgid "Cast a value to a type." -msgstr "Convertir un valor a un tipo." +#: ../Doc/library/typing.rst:2923 +msgid "Introspection helpers" +msgstr "Ayudas de introspección" -# el "esto" del final queda muy colgado -#: ../Doc/library/typing.rst:2409 +#: ../Doc/library/typing.rst:2927 msgid "" -"This returns the value unchanged. To the type checker this signals that the " -"return value has the designated type, but at runtime we intentionally don't " -"check anything (we want this to be as fast as possible)." +"Return a dictionary containing type hints for a function, method, module or " +"class object." msgstr "" -"Esto retorna el valor sin modificar. Para el validador de tipos esto indica " -"que el valor de retorno tiene el tipo señalado pero, de manera intencionada, " -"no se comprobará en tiempo de ejecución (para maximizar la velocidad)." +"Retorna un diccionario que contiene indicaciones de tipo para una función, " +"método, módulo o objeto clase." -#: ../Doc/library/typing.rst:2416 +#: ../Doc/library/typing.rst:2930 msgid "" -"Ask a static type checker to confirm that *val* has an inferred type of " -"*typ*." +"This is often the same as ``obj.__annotations__``. In addition, forward " +"references encoded as string literals are handled by evaluating them in " +"``globals`` and ``locals`` namespaces. For a class ``C``, return a " +"dictionary constructed by merging all the ``__annotations__`` along ``C." +"__mro__`` in reverse order." msgstr "" -"Solicitar a un validador de tipos que confirme que *val* tiene *typ* por " -"tipo inferido." +"Habitualmente, esto es lo mismo que ``obj.__annotations__``. Además, las " +"referencias hacia adelante codificadas como literales de texto se manejan " +"evaluándolas en los espacios de nombres ``globals`` y ``locals``. Para una " +"clase ``C``, se retorna un diccionario construido por la combinación de " +"``__annotations__`` y ``C.__mro`` en orden inverso." -#: ../Doc/library/typing.rst:2418 +#: ../Doc/library/typing.rst:2936 +#, fuzzy msgid "" -"When the type checker encounters a call to ``assert_type()``, it emits an " -"error if the value is not of the specified type::" +"The function recursively replaces all ``Annotated[T, ...]`` with ``T``, " +"unless ``include_extras`` is set to ``True`` (see :class:`Annotated` for " +"more information). For example:" msgstr "" -"Cuando el validador de tipos se encuentra con una llamada a " -"``assert_type()``, emite un error si el valor no es del tipo especificado::" +"La función reemplaza todos los ``Annotated[T, ...]`` con ``T`` de manera " +"recursiva, a menos que ``include_extras`` se defina como ``True`` ( véase :" +"class:`Annotated` para más información). Por ejemplo::" -#: ../Doc/library/typing.rst:2425 +#: ../Doc/library/typing.rst:2953 msgid "" -"At runtime this returns the first argument unchanged with no side effects." +":func:`get_type_hints` does not work with imported :ref:`type aliases ` that include forward references. Enabling postponed evaluation of " +"annotations (:pep:`563`) may remove the need for most forward references." msgstr "" -"En tiempo de ejecución, ésto retorna el primer argumento sin modificar y sin " -"efectos secundarios." +":func:`get_type_hints` no funciona con :ref:`alias de tipo ` " +"importados que incluyen referencias hacia adelante. Habilitar la evaluación " +"pospuesta de anotaciones (:pep:`563`) puede eliminar la necesidad de la " +"mayoría de las referencias futuras." -#: ../Doc/library/typing.rst:2427 +#: ../Doc/library/typing.rst:2958 +#, fuzzy msgid "" -"This function is useful for ensuring the type checker's understanding of a " -"script is in line with the developer's intentions::" +"Added ``include_extras`` parameter as part of :pep:`593`. See the " +"documentation on :data:`Annotated` for more information." +msgstr "Se agregan los parámetros ``include_extras`` como parte de :pep:`593`." + +#: ../Doc/library/typing.rst:2962 +msgid "" +"Previously, ``Optional[t]`` was added for function and method annotations if " +"a default value equal to ``None`` was set. Now the annotation is returned " +"unchanged." msgstr "" -"Esta función es útil para asegurarse de que la comprensión que el validador " -"de tipos tiene sobre un *script* está alineada con las intenciones de le " -"desarrolladores::" +"Anteriormente, se agregaba ``Optional[t]`` en las anotaciones de funciones o " +"métodos si se establecía un valor por defecto igual a ``None``. Ahora la " +"anotación es retornada sin cambios." -#: ../Doc/library/typing.rst:2441 +#: ../Doc/library/typing.rst:2969 msgid "" -"Ask a static type checker to confirm that a line of code is unreachable." +"Get the unsubscripted version of a type: for a typing object of the form " +"``X[Y, Z, ...]`` return ``X``." msgstr "" -"Solicitar a un validador estático de tipos confirmar que una línea de código " -"no es alcanzable." -#: ../Doc/library/typing.rst:2454 +#: ../Doc/library/typing.rst:2972 msgid "" -"Here, the annotations allow the type checker to infer that the last case can " -"never execute, because ``arg`` is either an :class:`int` or a :class:`str`, " -"and both options are covered by earlier cases. If a type checker finds that " -"a call to ``assert_never()`` is reachable, it will emit an error. For " -"example, if the type annotation for ``arg`` was instead ``int | str | " -"float``, the type checker would emit an error pointing out that " -"``unreachable`` is of type :class:`float`. For a call to ``assert_never`` to " -"pass type checking, the inferred type of the argument passed in must be the " -"bottom type, :data:`Never`, and nothing else." +"If ``X`` is a typing-module alias for a builtin or :mod:`collections` class, " +"it will be normalized to the original class. If ``X`` is an instance of :" +"class:`ParamSpecArgs` or :class:`ParamSpecKwargs`, return the underlying :" +"class:`ParamSpec`. Return ``None`` for unsupported objects." msgstr "" -"Aquí, las anotaciones permiten al validador de tipos inferir que el último " -"caso nunca será ejecutado, porque ``arg`` es un :class:`int` o un :class:" -"`str`, y ambas opciones son cubiertas por los casos anteriores. Si un " -"validador de tipos encuentra que una llamada a ``assert_never()`` es " -"alcanzable, emitirá un error. Por ejemplo, si la anotación de tipos para " -"``arg`` fuera en cambio ``int | str | float``, el validador de tipos " -"emitiría un error señalando que ``unreachable`` es de tipo :class:`float`. " -"Para que una llamada a ``assert_never`` pase la validación de tipos, el tipo " -"inferido del argumento dado debe ser el tipo vacío, :data:`Never`, y nada " -"más." -#: ../Doc/library/typing.rst:2466 -msgid "At runtime, this throws an exception when called." -msgstr "En tiempo de ejecución, ésto lanza una excepción cuando es llamado." +#: ../Doc/library/typing.rst:2978 ../Doc/library/typing.rst:3001 +#, fuzzy +msgid "Examples:" +msgstr "Por ejemplo::" -#: ../Doc/library/typing.rst:2469 +#: ../Doc/library/typing.rst:2993 msgid "" -"`Unreachable Code and Exhaustiveness Checking `__ has more information about " -"exhaustiveness checking with static typing." +"Get type arguments with all substitutions performed: for a typing object of " +"the form ``X[Y, Z, ...]`` return ``(Y, Z, ...)``." msgstr "" -"`Unreachable Code and Exhaustiveness Checking `__ contiene más información acerca de la " -"verificación de exhaustividad con tipado estático." -#: ../Doc/library/typing.rst:2477 -msgid "Reveal the inferred static type of an expression." -msgstr "Revela el tipo estático inferido de una expresión." +#: ../Doc/library/typing.rst:2996 +#, fuzzy +msgid "" +"If ``X`` is a union or :class:`Literal` contained in another generic type, " +"the order of ``(Y, Z, ...)`` may be different from the order of the original " +"arguments ``[Y, Z, ...]`` due to type caching. Return ``()`` for unsupported " +"objects." +msgstr "" +"Para un objeto de escritura de la forma ``X[Y, Z, ...]``, estas funciones " +"retornan ``X`` y ``(Y, Z, ...)``. Si ``X`` es un alias genérico para una " +"clase incorporada o :mod:`collections`, se normaliza a la clase original. Si " +"``X`` es una unión o :class:`Literal` contenido en otro tipo genérico, el " +"orden de ``(Y, Z, ...)`` puede ser diferente del orden de los argumentos " +"originales ``[Y, Z, ...]`` debido al tipo de almacenamiento en caché. Para " +"objetos no admitidos, retorna ``None`` y ``()`` correspondientemente. " +"Ejemplos:" -#: ../Doc/library/typing.rst:2479 +#: ../Doc/library/typing.rst:3013 +msgid "Check if a type is a :class:`TypedDict`." +msgstr "Compruebe si un tipo es :class:`TypedDict`." + +#: ../Doc/library/typing.rst:3034 msgid "" -"When a static type checker encounters a call to this function, it emits a " -"diagnostic with the type of the argument. For example::" +"Class used for internal typing representation of string forward references." msgstr "" -"Cuando un validador estático de tipos se encuentra con una invocación a esta " -"función, emite un diagnostico con el tipo del argumento. Por ejemplo::" -#: ../Doc/library/typing.rst:2485 +#: ../Doc/library/typing.rst:3036 +#, fuzzy msgid "" -"This can be useful when you want to debug how your type checker handles a " -"particular piece of code." +"For example, ``List[\"SomeClass\"]`` is implicitly transformed into " +"``List[ForwardRef(\"SomeClass\")]``. ``ForwardRef`` should not be " +"instantiated by a user, but may be used by introspection tools." msgstr "" -"Ésto puede ser de utilidad cuando se desea *debuguear* cómo tu validador de " -"tipos maneja una pieza particular de código." +"Una clase utilizada para la representación de escritura interna de " +"referencias de cadena hacia adelante. Por ejemplo, ``List[\"SomeClass\"]`` " +"se transforma implícitamente en ``List[ForwardRef(\"SomeClass\")]``. Esta " +"clase no debe ser instanciada por un usuario, pero puede ser utilizada por " +"herramientas de introspección." -#: ../Doc/library/typing.rst:2488 +#: ../Doc/library/typing.rst:3041 msgid "" -"The function returns its argument unchanged, which allows using it within an " -"expression::" +":pep:`585` generic types such as ``list[\"SomeClass\"]`` will not be " +"implicitly transformed into ``list[ForwardRef(\"SomeClass\")]`` and thus " +"will not automatically resolve to ``list[SomeClass]``." msgstr "" -"Esta función retorna su argumento sin cambios, lo que permite su uso dentro " -"de una expresión::" +"Los tipos genéricos de :pep:`585`, como ``list[\"SomeClass\"]``, no se " +"transformarán implícitamente en ``list[ForwardRef(\"SomeClass\")]`` y, por " +"lo tanto, no se resolverán automáticamente en ``list[SomeClass]``." + +#: ../Doc/library/typing.rst:3048 +msgid "Constant" +msgstr "Constantes" -#: ../Doc/library/typing.rst:2493 +#: ../Doc/library/typing.rst:3052 +#, fuzzy msgid "" -"Most type checkers support ``reveal_type()`` anywhere, even if the name is " -"not imported from ``typing``. Importing the name from ``typing`` allows your " -"code to run without runtime errors and communicates intent more clearly." +"A special constant that is assumed to be ``True`` by 3rd party static type " +"checkers. It is ``False`` at runtime." msgstr "" -"La mayoría de los validadores de tipos soportan ``reveal_type()`` en " -"cualquier lugar, incluso si el nombre no ha sido importado desde ``typing``. " -"Importar el nombre desde ``typing`` permite que el código corra sin errores " -"en tiempo de ejecución y comunica la intención de forma más clara." +"Una constante especial que se asume como cierta (``True``) por validadores " +"estáticos de tipos de terceros. Es falsa (``False``) en tiempo de ejecución. " +"Uso::" -#: ../Doc/library/typing.rst:2498 +#: ../Doc/library/typing.rst:3063 msgid "" -"At runtime, this function prints the runtime type of its argument to stderr " -"and returns it unchanged::" +"The first type annotation must be enclosed in quotes, making it a \"forward " +"reference\", to hide the ``expensive_mod`` reference from the interpreter " +"runtime. Type annotations for local variables are not evaluated, so the " +"second annotation does not need to be enclosed in quotes." msgstr "" -"En tiempo de ejecución, esta función imprime al *stderr* el tipo en tiempo " -"de ejecución de su argumento y lo retorna in cambios::" +"Nótese que la primera anotación de tipo debe estar rodeada por comillas, " +"convirtiéndola en una \"referencia directa\", para ocultar al intérprete la " +"referencia ``expensive_mod`` en tiempo de ejecución. Las anotaciones de tipo " +"para variables locales no se evalúan, así que la segunda anotación no " +"necesita comillas." -#: ../Doc/library/typing.rst:2508 +#: ../Doc/library/typing.rst:3070 msgid "" -":data:`~typing.dataclass_transform` may be used to decorate a class, " -"metaclass, or a function that is itself a decorator. The presence of " -"``@dataclass_transform()`` tells a static type checker that the decorated " -"object performs runtime \"magic\" that transforms a class, giving it :func:" -"`dataclasses.dataclass`-like behaviors." +"If ``from __future__ import annotations`` is used, annotations are not " +"evaluated at function definition time. Instead, they are stored as strings " +"in ``__annotations__``. This makes it unnecessary to use quotes around the " +"annotation (see :pep:`563`)." msgstr "" -"Es posible utilizar :data:`~typing.dataclass_transform` para decorar una " -"clase, metaclase, o una función que es ella misma un decorador. La presencia " -"de ``@dataclass_transform()`` indica a un validador estático de tipos que el " -"objeto decorado ejecuta, en tiempo de ejecución, \"magia\" que transforma " -"una clase, dándole comportamientos similares a los que tiene :func:" -"`dataclasses.dataclass`." +"Si se utiliza ``from __future__ import annotations``, las anotaciones no son " +"evaluadas al momento de la definición de funciones. En cambio, serán " +"almacenadas como cadenas de texto en ``__annotations__``. Ésto vuelve " +"innecesario el uso de comillas alrededor de la anotación (véase :pep:`563`)." -#: ../Doc/library/typing.rst:2514 -msgid "Example usage with a decorator function::" -msgstr "Ejemplo de uso con una función-decorador::" +#: ../Doc/library/typing.rst:3082 +#, fuzzy +msgid "Deprecated aliases" +msgstr "En desuso desde" -#: ../Doc/library/typing.rst:2528 -msgid "On a base class::" -msgstr "En una clase base::" +#: ../Doc/library/typing.rst:3084 +#, fuzzy +msgid "" +"This module defines several deprecated aliases to pre-existing standard " +"library classes. These were originally included in the typing module in " +"order to support parameterizing these generic classes using ``[]``. However, " +"the aliases became redundant in Python 3.9 when the corresponding pre-" +"existing classes were enhanced to support ``[]`` (see :pep:`585`)." +msgstr "" +"Este módulo define algunos tipos que son subclases de clases que ya existen " +"en la librería estándar, y que además extienden :class:`Generic` para " +"soportar variables de tipo dentro de ``[]``. Estos tipos se vuelven " +"redundantes en Python 3.9 ya que las clases correspondientes fueron " +"mejoradas para soportar ``[]``." + +#: ../Doc/library/typing.rst:3091 +msgid "" +"The redundant types are deprecated as of Python 3.9. However, while the " +"aliases may be removed at some point, removal of these aliases is not " +"currently planned. As such, no deprecation warnings are currently issued by " +"the interpreter for these aliases." +msgstr "" + +#: ../Doc/library/typing.rst:3096 +msgid "" +"If at some point it is decided to remove these deprecated aliases, a " +"deprecation warning will be issued by the interpreter for at least two " +"releases prior to removal. The aliases are guaranteed to remain in the " +"typing module without deprecation warnings until at least Python 3.14." +msgstr "" + +#: ../Doc/library/typing.rst:3101 +msgid "" +"Type checkers are encouraged to flag uses of the deprecated types if the " +"program they are checking targets a minimum Python version of 3.9 or newer." +msgstr "" + +#: ../Doc/library/typing.rst:3107 +#, fuzzy +msgid "Aliases to built-in types" +msgstr "Correspondientes a tipos integrados" + +#: ../Doc/library/typing.rst:3111 +msgid "Deprecated alias to :class:`dict`." +msgstr "" + +#: ../Doc/library/typing.rst:3113 +#, fuzzy +msgid "" +"Note that to annotate arguments, it is preferred to use an abstract " +"collection type such as :class:`Mapping` rather than to use :class:`dict` " +"or :class:`!typing.Dict`." +msgstr "" +"Versión genérica de :class:`list`. Útil para anotar tipos de retorno. Para " +"anotar argumentos es preferible usar un tipo abstracto de colección como :" +"class:`Sequence` o :class:`Iterable`." + +#: ../Doc/library/typing.rst:3117 ../Doc/library/typing.rst:3359 +msgid "This type can be used as follows::" +msgstr "Este tipo se puede usar de la siguiente manera::" + +#: ../Doc/library/typing.rst:3122 +msgid "" +":class:`builtins.dict ` now supports subscripting (``[]``). See :pep:" +"`585` and :ref:`types-genericalias`." +msgstr "" +":class:`builtins.dict ` ahora soporta subíndices (``[]``). Véase :pep:" +"`585` y :ref:`types-genericalias`." + +#: ../Doc/library/typing.rst:3128 +msgid "Deprecated alias to :class:`list`." +msgstr "" + +#: ../Doc/library/typing.rst:3130 +#, fuzzy +msgid "" +"Note that to annotate arguments, it is preferred to use an abstract " +"collection type such as :class:`Sequence` or :class:`Iterable` rather than " +"to use :class:`list` or :class:`!typing.List`." +msgstr "" +"Versión genérica de :class:`list`. Útil para anotar tipos de retorno. Para " +"anotar argumentos es preferible usar un tipo abstracto de colección como :" +"class:`Sequence` o :class:`Iterable`." + +#: ../Doc/library/typing.rst:3134 +msgid "This type may be used as follows::" +msgstr "Este tipo se puede usar del siguiente modo::" + +#: ../Doc/library/typing.rst:3142 +msgid "" +":class:`builtins.list ` now supports subscripting (``[]``). See :pep:" +"`585` and :ref:`types-genericalias`." +msgstr "" +":class:`builtins.list ` ahora soporta subíndices (``[]``). Véase :pep:" +"`585` y :ref:`types-genericalias`." + +#: ../Doc/library/typing.rst:3148 +#, fuzzy +msgid "Deprecated alias to :class:`builtins.set `." +msgstr "Un alias de :class:`collections.abc.Sized`." + +#: ../Doc/library/typing.rst:3150 +#, fuzzy +msgid "" +"Note that to annotate arguments, it is preferred to use an abstract " +"collection type such as :class:`AbstractSet` rather than to use :class:`set` " +"or :class:`!typing.Set`." +msgstr "" +"Versión genérica de :class:`list`. Útil para anotar tipos de retorno. Para " +"anotar argumentos es preferible usar un tipo abstracto de colección como :" +"class:`Sequence` o :class:`Iterable`." + +#: ../Doc/library/typing.rst:3154 +msgid "" +":class:`builtins.set ` now supports subscripting (``[]``). See :pep:" +"`585` and :ref:`types-genericalias`." +msgstr "" +":class:`builtins.set ` ahora soporta subíndices (``[]``). Véase :pep:" +"`585` y :ref:`types-genericalias`." + +#: ../Doc/library/typing.rst:3160 +#, fuzzy +msgid "Deprecated alias to :class:`builtins.frozenset `." +msgstr "Una versión genérica de :class:`builtins.frozenset `." + +#: ../Doc/library/typing.rst:3162 +msgid "" +":class:`builtins.frozenset ` now supports subscripting (``[]``). " +"See :pep:`585` and :ref:`types-genericalias`." +msgstr "" +":class:`builtins.frozenset ` ahora soporta subíndices (``[]``). " +"Véase :pep:`585` y :ref:`types-genericalias`." + +#: ../Doc/library/typing.rst:3169 +msgid "Deprecated alias for :class:`tuple`." +msgstr "" + +#: ../Doc/library/typing.rst:3171 +msgid "" +":class:`tuple` and ``Tuple`` are special-cased in the type system; see :ref:" +"`annotating-tuples` for more details." +msgstr "" + +#: ../Doc/library/typing.rst:3174 +msgid "" +":class:`builtins.tuple ` now supports subscripting (``[]``). See :pep:" +"`585` and :ref:`types-genericalias`." +msgstr "" +":class:`builtins.tuple ` ahora soporta el uso de subíndices (``[]``). " +"Véase :pep:`585` y :ref:`types-genericalias`." + +#: ../Doc/library/typing.rst:3180 +msgid "Deprecated alias to :class:`type`." +msgstr "" + +#: ../Doc/library/typing.rst:3182 +msgid "" +"See :ref:`type-of-class-objects` for details on using :class:`type` or " +"``typing.Type`` in type annotations." +msgstr "" + +#: ../Doc/library/typing.rst:3187 +msgid "" +":class:`builtins.type ` now supports subscripting (``[]``). See :pep:" +"`585` and :ref:`types-genericalias`." +msgstr "" +":class:`builtins.type ` ahora soporta el uso de subíndices (``[]``). " +"Véase :pep:`585` y :ref:`types-genericalias`." + +#: ../Doc/library/typing.rst:3194 +#, fuzzy +msgid "Aliases to types in :mod:`collections`" +msgstr "Correspondiente a tipos en :mod:`collections`" + +#: ../Doc/library/typing.rst:3198 +#, fuzzy +msgid "Deprecated alias to :class:`collections.defaultdict`." +msgstr "Un alias de :class:`collections.abc.Sized`." + +#: ../Doc/library/typing.rst:3202 +msgid "" +":class:`collections.defaultdict` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." +msgstr "" +":class:`collections.defaultdict` ahora soporta subíndices (``[]``). Véase :" +"pep:`585` y :ref:`types-genericalias`." + +#: ../Doc/library/typing.rst:3208 +#, fuzzy +msgid "Deprecated alias to :class:`collections.OrderedDict`." +msgstr "Un alias de :class:`collections.abc.Sized`." + +#: ../Doc/library/typing.rst:3212 +msgid "" +":class:`collections.OrderedDict` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." +msgstr "" +":class:`collections.OrderedDict` ahora soporta subíndices (``[]``). Véase :" +"pep:`585` y :ref:`types-genericalias`." + +#: ../Doc/library/typing.rst:3218 +#, fuzzy +msgid "Deprecated alias to :class:`collections.ChainMap`." +msgstr "Un alias de :class:`collections.abc.Hashable`." + +#: ../Doc/library/typing.rst:3223 +msgid "" +":class:`collections.ChainMap` now supports subscripting (``[]``). See :pep:" +"`585` and :ref:`types-genericalias`." +msgstr "" +":class:`collections.ChainMap` ahora soporta subíndices (``[]``). Véase :pep:" +"`585` y :ref:`types-genericalias`." + +#: ../Doc/library/typing.rst:3229 +#, fuzzy +msgid "Deprecated alias to :class:`collections.Counter`." +msgstr "Un alias de :class:`collections.abc.Sized`." + +#: ../Doc/library/typing.rst:3234 +msgid "" +":class:`collections.Counter` now supports subscripting (``[]``). See :pep:" +"`585` and :ref:`types-genericalias`." +msgstr "" +":class:`collections.Counter` ahora soporta subíndices (``[]``)`. Véase :pep:" +"`585` y :ref:`types-genericalias`." + +#: ../Doc/library/typing.rst:3240 +#, fuzzy +msgid "Deprecated alias to :class:`collections.deque`." +msgstr "Un alias de :class:`collections.abc.Sized`." + +#: ../Doc/library/typing.rst:3245 +msgid "" +":class:`collections.deque` now supports subscripting (``[]``). See :pep:" +"`585` and :ref:`types-genericalias`." +msgstr "" +":class:`collections.deque` ahora soporta subíndices (``[]``). Véase :pep:" +"`585` y :ref:`types-genericalias`." + +#: ../Doc/library/typing.rst:3252 +#, fuzzy +msgid "Aliases to other concrete types" +msgstr "Otros tipos concretos" + +#: ../Doc/library/typing.rst:3257 +msgid "" +"The ``typing.io`` namespace is deprecated and will be removed. These types " +"should be directly imported from ``typing`` instead." +msgstr "" +"El espacio de nombres ``typing.io`` está obsoleto y se eliminará. En su " +"lugar, estos tipos deben importarse directamente desde ``typing``." + +#: ../Doc/library/typing.rst:3261 +msgid "" +"Deprecated aliases corresponding to the return types from :func:`re.compile` " +"and :func:`re.match`." +msgstr "" + +#: ../Doc/library/typing.rst:3264 +#, fuzzy +msgid "" +"These types (and the corresponding functions) are generic over :data:" +"`AnyStr`. ``Pattern`` can be specialised as ``Pattern[str]`` or " +"``Pattern[bytes]``; ``Match`` can be specialised as ``Match[str]`` or " +"``Match[bytes]``." +msgstr "" +"Estos alias de tipo corresponden a los tipos retornados de :func:`re." +"compile` y :func:`re.match`. Estos tipos (y las funciones correspondientes) " +"son genéricos en ``AnyStr`` y se pueden hacer específicos escribiendo " +"``Pattern[str]``, ``Pattern[bytes]``, ``Match[str]`` o ``Match[bytes]``." + +#: ../Doc/library/typing.rst:3272 +msgid "" +"The ``typing.re`` namespace is deprecated and will be removed. These types " +"should be directly imported from ``typing`` instead." +msgstr "" +"El espacio de nombres ``typing.re`` está obsoleto y se eliminará. En su " +"lugar, estos tipos deben importarse directamente desde ``typing``." + +#: ../Doc/library/typing.rst:3273 +msgid "" +"Classes ``Pattern`` and ``Match`` from :mod:`re` now support ``[]``. See :" +"pep:`585` and :ref:`types-genericalias`." +msgstr "" +"Las clases ``Pattern`` y ``Match`` de :mod:`re` ahora soportan ``[]``. " +"Véase :pep:`585` y :ref:`types-genericalias`." + +#: ../Doc/library/typing.rst:3279 +msgid "Deprecated alias for :class:`str`." +msgstr "" + +#: ../Doc/library/typing.rst:3281 +#, fuzzy +msgid "" +"``Text`` is provided to supply a forward compatible path for Python 2 code: " +"in Python 2, ``Text`` is an alias for ``unicode``." +msgstr "" +"``Text`` es un alias para ``str``. Ésta disponible para proporcionar un " +"mecanismo compatible hacia delante para código en Python 2: en Python 2, " +"``Text`` es un alias de ``unicode``." + +#: ../Doc/library/typing.rst:3285 +msgid "" +"Use ``Text`` to indicate that a value must contain a unicode string in a " +"manner that is compatible with both Python 2 and Python 3::" +msgstr "" +"Úsese ``Text`` para indicar que un valor debe contener una cadena de texto " +"Unicode de manera que sea compatible con Python 2 y Python 3::" + +#: ../Doc/library/typing.rst:3293 +#, fuzzy +msgid "" +"Python 2 is no longer supported, and most type checkers also no longer " +"support type checking Python 2 code. Removal of the alias is not currently " +"planned, but users are encouraged to use :class:`str` instead of ``Text``." +msgstr "" +"Ya no se soporta Python 2, y la mayoría de los validadores de tipo tampoco " +"dan soporte a la validación de tipos en código escrito en Python 2. " +"Actualmente no está planificado remover el alias, pero se alienta a los " +"usuarios a utilizar :class:`str` en vez de ``Text`` allí donde sea posible." + +#: ../Doc/library/typing.rst:3303 +#, fuzzy +msgid "Aliases to container ABCs in :mod:`collections.abc`" +msgstr "Correspondiente a otros tipos en :mod:`collections.abc`" -#: ../Doc/library/typing.rst:2537 -msgid "On a metaclass::" -msgstr "En una metaclase::" +#: ../Doc/library/typing.rst:3307 +#, fuzzy +msgid "Deprecated alias to :class:`collections.abc.Set`." +msgstr "Un alias de :class:`collections.abc.Sized`." -#: ../Doc/library/typing.rst:2548 +#: ../Doc/library/typing.rst:3309 msgid "" -"The ``CustomerModel`` classes defined above will be treated by type checkers " -"similarly to classes created with :func:`@dataclasses.dataclass `. For example, type checkers will assume these classes have " -"``__init__`` methods that accept ``id`` and ``name``." +":class:`collections.abc.Set` now supports subscripting (``[]``). See :pep:" +"`585` and :ref:`types-genericalias`." msgstr "" -"Las clases ``CustomerModel`` definidas arribe serán tratadas por los " -"validadores de tipo de forma similar a las clases que sean creadas con :" -"func:`@dataclasses.dataclass `. Por ejemplo, los " -"validadores de tipo asumirán que estas clases tienen métodos ``__init__`` " -"que aceptan ``id`` y ``name``." +":class:`collections.abc.Set` ahora soporta subíndices (``[]``). Véase :pep:" +"`585` y :ref:`types-genericalias`." -#: ../Doc/library/typing.rst:2554 +#: ../Doc/library/typing.rst:3315 msgid "" -"The decorated class, metaclass, or function may accept the following bool " -"arguments which type checkers will assume have the same effect as they would " -"have on the :func:`@dataclasses.dataclass` decorator: " -"``init``, ``eq``, ``order``, ``unsafe_hash``, ``frozen``, ``match_args``, " -"``kw_only``, and ``slots``. It must be possible for the value of these " -"arguments (``True`` or ``False``) to be statically evaluated." +"This type represents the types :class:`bytes`, :class:`bytearray`, and :" +"class:`memoryview` of byte sequences." msgstr "" -"La clase, metaclase o función decorada puede aceptar los siguientes " -"argumentos booleanos, de los cuales los validadores de tipos asumirán que " -"tienen el mismo efecto que tendrían en el decorador :func:`@dataclasses." -"dataclass`: ``init``, ``eq``, ``order``, " -"``unsafe_hash``, ``frozen``, ``match_args``, ``kw_only``, y ``slots``. Debe " -"ser posible evaluar estáticamente el valor de estos argumentos (``True`` o " -"``False``)." +"Este tipo representa a los tipos :class:`bytes`, :class:`bytearray`, y :" +"class:`memoryview` de secuencias de bytes." -#: ../Doc/library/typing.rst:2562 +#: ../Doc/library/typing.rst:3319 msgid "" -"The arguments to the ``dataclass_transform`` decorator can be used to " -"customize the default behaviors of the decorated class, metaclass, or " -"function:" +"Prefer :class:`collections.abc.Buffer`, or a union like ``bytes | bytearray " +"| memoryview``." msgstr "" -"Es posible utilizar los argumentos del decorador ``dataclass_transform`` " -"para personalizar los comportamientos por defecto de la clase, metaclase o " -"función decorada:" -#: ../Doc/library/typing.rst:2566 +#: ../Doc/library/typing.rst:3323 +#, fuzzy +msgid "Deprecated alias to :class:`collections.abc.Collection`." +msgstr "Un alias de :class:`collections.abc.Sized`." + +#: ../Doc/library/typing.rst:3327 msgid "" -"``eq_default`` indicates whether the ``eq`` parameter is assumed to be " -"``True`` or ``False`` if it is omitted by the caller." +":class:`collections.abc.Collection` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." msgstr "" -"``eq_default`` indica si, cuando el invocador haya omitido el parámetro " -"``eq``, el valor de éste debe tomarse por ``True`` o ``False``." +":class:`collections.abc.Collection` ahora soporta la sintaxis de subíndice " +"(``[]``). Véase :pep:`585` y :ref:`types-genericalias`." -#: ../Doc/library/typing.rst:2568 +#: ../Doc/library/typing.rst:3333 +#, fuzzy +msgid "Deprecated alias to :class:`collections.abc.Container`." +msgstr "Un alias de :class:`collections.abc.Sized`." + +#: ../Doc/library/typing.rst:3335 msgid "" -"``order_default`` indicates whether the ``order`` parameter is assumed to be " -"True or False if it is omitted by the caller." +":class:`collections.abc.Container` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." msgstr "" -"``order_default`` indica si, cuando el invocador haya omitido el parámetro " -"``order``, el valor de éste debe tomarse por ``True`` o ``False``." +":class:`collections.abc.Container` ahora soporta subíndices (``[]``). Véase :" +"pep:`585` y :ref:`types-genericalias`." -#: ../Doc/library/typing.rst:2570 +#: ../Doc/library/typing.rst:3341 +#, fuzzy +msgid "Deprecated alias to :class:`collections.abc.ItemsView`." +msgstr "Un alias de :class:`collections.abc.Sized`." + +#: ../Doc/library/typing.rst:3343 msgid "" -"``kw_only_default`` indicates whether the ``kw_only`` parameter is assumed " -"to be True or False if it is omitted by the caller." +":class:`collections.abc.ItemsView` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." msgstr "" -"``kw_only_default`` indica si, cuando el invocador haya omitido el parámetro " -"``kw_only``, el valor de éste debe tomarse por ``True`` o ``False``." +":class:`collections.abc.ItemsView` ahora soporta subíndices (``[]``). Véase :" +"pep:`585` y :ref:`types-genericalias`." + +#: ../Doc/library/typing.rst:3349 +#, fuzzy +msgid "Deprecated alias to :class:`collections.abc.KeysView`." +msgstr "Un alias de :class:`collections.abc.Sized`." -#: ../Doc/library/typing.rst:2572 +#: ../Doc/library/typing.rst:3351 msgid "" -"``field_specifiers`` specifies a static list of supported classes or " -"functions that describe fields, similar to ``dataclasses.field()``." +":class:`collections.abc.KeysView` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." msgstr "" -"``field_specifiers`` (especificadores de campos) especifica una lista " -"estática de clases o funciones soportadas que describen campos, de manera " -"similar a ``dataclasses.field()``." +":class:`collections.abc.KeysView` ahora soporta subíndices (``[]``). Véase :" +"pep:`585` y :ref:`types-genericalias`." + +#: ../Doc/library/typing.rst:3357 +#, fuzzy +msgid "Deprecated alias to :class:`collections.abc.Mapping`." +msgstr "Un alias de :class:`collections.abc.Sized`." -#: ../Doc/library/typing.rst:2574 +#: ../Doc/library/typing.rst:3364 msgid "" -"Arbitrary other keyword arguments are accepted in order to allow for " -"possible future extensions." +":class:`collections.abc.Mapping` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." msgstr "" -"Es posible pasar arbitrariamente otros argumentos nombrados para permitir " -"posibles extensiones futuras." +":class:`collections.abc.Mapping` ahora soporta subíndices (``[]``). Véase :" +"pep:`585` y :ref:`types-genericalias`." + +#: ../Doc/library/typing.rst:3370 +#, fuzzy +msgid "Deprecated alias to :class:`collections.abc.MappingView`." +msgstr "Un alias de :class:`collections.abc.Sized`." -#: ../Doc/library/typing.rst:2577 +#: ../Doc/library/typing.rst:3372 msgid "" -"Type checkers recognize the following optional arguments on field specifiers:" +":class:`collections.abc.MappingView` now supports subscripting (``[]``). " +"See :pep:`585` and :ref:`types-genericalias`." msgstr "" -"Los validadores de tipos reconocen los siguientes argumentos opcionales en " -"especificadores de campos:" +":class:`collections.abc.MappingView` ahora soporta subíndices (``[]``). " +"Véase :pep:`585` y :ref:`types-genericalias`." + +#: ../Doc/library/typing.rst:3378 +#, fuzzy +msgid "Deprecated alias to :class:`collections.abc.MutableMapping`." +msgstr "Un alias de :class:`collections.abc.Hashable`." -#: ../Doc/library/typing.rst:2580 +#: ../Doc/library/typing.rst:3380 msgid "" -"``init`` indicates whether the field should be included in the synthesized " -"``__init__`` method. If unspecified, ``init`` defaults to ``True``." +":class:`collections.abc.MutableMapping` now supports subscripting (``[]``). " +"See :pep:`585` and :ref:`types-genericalias`." msgstr "" -"``init`` indica si el campo debe ser incluido en el método ``__init__`` " -"sintetizado. Si no es especificado, ``init`` será ``True`` por defecto." +":class:`collections.abc.MutableMapping` ahora soporta subíndices (``[]``). " +"Véase :pep:`585` y :ref:`types-genericalias`." -#: ../Doc/library/typing.rst:2583 -msgid "``default`` provides the default value for the field." -msgstr "``default`` provee el valor por defecto para el campo." +#: ../Doc/library/typing.rst:3387 +#, fuzzy +msgid "Deprecated alias to :class:`collections.abc.MutableSequence`." +msgstr "Un alias de :class:`collections.abc.Hashable`." -#: ../Doc/library/typing.rst:2584 +#: ../Doc/library/typing.rst:3389 msgid "" -"``default_factory`` provides a runtime callback that returns the default " -"value for the field. If neither ``default`` nor ``default_factory`` are " -"specified, the field is assumed to have no default value and must be " -"provided a value when the class is instantiated." +":class:`collections.abc.MutableSequence` now supports subscripting (``[]``). " +"See :pep:`585` and :ref:`types-genericalias`." msgstr "" -"``default_factory`` provee un *callback* en tiempo de ejecución que retorna " -"el valor por defecto para el campo. Si no se especifican ``default`` ni " -"``default_factory``, se asumirá que el campo no tiene un valor por defecto y " -"que un valor debe ser provisto cuando la clase sea instanciada." +":class:`collections.abc.MutableSequence` ahora soporta subíndices (``[]``). " +"Véase :pep:`585` y :ref:`types-genericalias`." -#: ../Doc/library/typing.rst:2589 -msgid "``factory`` is an alias for ``default_factory``." -msgstr "``factory`` es un alias para ``default_factory``." +#: ../Doc/library/typing.rst:3396 +#, fuzzy +msgid "Deprecated alias to :class:`collections.abc.MutableSet`." +msgstr "Un alias de :class:`collections.abc.Hashable`." -#: ../Doc/library/typing.rst:2590 +#: ../Doc/library/typing.rst:3398 msgid "" -"``kw_only`` indicates whether the field should be marked as keyword-only. If " -"``True``, the field will be keyword-only. If ``False``, it will not be " -"keyword-only. If unspecified, the value of the ``kw_only`` parameter on the " -"object decorated with ``dataclass_transform`` will be used, or if that is " -"unspecified, the value of ``kw_only_default`` on ``dataclass_transform`` " -"will be used." +":class:`collections.abc.MutableSet` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." msgstr "" -"``kw_only`` indica si el campo debe ser marcado como exclusivamente de " -"palabra clave. Si es ``True``, el campo será exclusivamente de palabra " -"clave. Si es ``False`` no lo será. Si no se especifica, se utilizará el " -"valor para el parámetro ``kw_only`` especificado en el objeto decorado con " -"``dataclass_transform``, o si éste tampoco está especificado, se utilizará " -"el valor de ``kw_only_default`` en ``dataclass_transform``." +":class:`collections.abc.MutableSet` ahora soporta subíndices (``[]``). " +"Véase :pep:`585` y :ref:`types-genericalias`." -# La idea de "synthesized __init__ method" puede verse en el pep 681 donde refiere a los métodos init que pueden auto-generar librerías con características similares a dataclass -#: ../Doc/library/typing.rst:2596 +#: ../Doc/library/typing.rst:3404 +#, fuzzy +msgid "Deprecated alias to :class:`collections.abc.Sequence`." +msgstr "Un alias de :class:`collections.abc.Sized`." + +#: ../Doc/library/typing.rst:3406 msgid "" -"``alias`` provides an alternative name for the field. This alternative name " -"is used in the synthesized ``__init__`` method." +":class:`collections.abc.Sequence` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." msgstr "" -"``alias`` provee un nombre alternativo para el campo. Este nombre " -"alternativo será utilizado en el método ``__init__`` sintetizado." +":class:`collections.abc.Sequence` ahora soporta subíndices (``[]``). Véase :" +"pep:`585` y :ref:`types-genericalias`." + +#: ../Doc/library/typing.rst:3412 +#, fuzzy +msgid "Deprecated alias to :class:`collections.abc.ValuesView`." +msgstr "Un alias de :class:`collections.abc.Sized`." -#: ../Doc/library/typing.rst:2599 +#: ../Doc/library/typing.rst:3414 msgid "" -"At runtime, this decorator records its arguments in the " -"``__dataclass_transform__`` attribute on the decorated object. It has no " -"other runtime effect." +":class:`collections.abc.ValuesView` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." msgstr "" -"En tiempo de ejecución, este decorador registra sus argumentos en el " -"atributo ``__dataclass_transform__`` del objeto decorado. No tiene otro " -"efecto en tiempo de ejecución." +":class:`collections.abc.ValuesView` ahora soporta subíndices (``[]``). " +"Véase :pep:`585` y :ref:`types-genericalias`." -#: ../Doc/library/typing.rst:2603 -msgid "See :pep:`681` for more details." -msgstr "Véase :pep:`681` para más detalle." +#: ../Doc/library/typing.rst:3421 +#, fuzzy +msgid "Aliases to asynchronous ABCs in :mod:`collections.abc`" +msgstr "Correspondientes a las colecciones en :mod:`collections.abc`" -#: ../Doc/library/typing.rst:2609 -msgid "" -"The ``@overload`` decorator allows describing functions and methods that " -"support multiple different combinations of argument types. A series of " -"``@overload``-decorated definitions must be followed by exactly one non-" -"``@overload``-decorated definition (for the same function/method). The " -"``@overload``-decorated definitions are for the benefit of the type checker " -"only, since they will be overwritten by the non-``@overload``-decorated " -"definition, while the latter is used at runtime but should be ignored by a " -"type checker. At runtime, calling a ``@overload``-decorated function " -"directly will raise :exc:`NotImplementedError`. An example of overload that " -"gives a more precise type than can be expressed using a union or a type " -"variable::" -msgstr "" -"El decorador ``@overload`` permite describir funciones y métodos que " -"soportan diferentes combinaciones de tipos de argumento. A una serie de " -"definiciones decoradas con ``@overload`` debe seguir exactamente una " -"definición no decorada con ``@overload`` (para la misma función o método). " -"Las definiciones decoradas con ``@overload`` son solo para beneficio del " -"validador de tipos, ya que serán sobrescritas por la definición no decorada " -"con ``@overload``. Esta última se usa en tiempo de ejecución y debería ser " -"ignorada por el validador de tipos. En tiempo de ejecución, llamar a una " -"función decorada con ``@overload`` lanzará directamente :exc:" -"`NotImplementedError`. Un ejemplo de sobrecarga que proporciona un tipo más " -"preciso se puede expresar con una unión o una variable de tipo::" - -#: ../Doc/library/typing.rst:2633 +#: ../Doc/library/typing.rst:3425 +#, fuzzy +msgid "Deprecated alias to :class:`collections.abc.Coroutine`." +msgstr "Un alias de :class:`collections.abc.Sized`." + +#: ../Doc/library/typing.rst:3427 +#, fuzzy msgid "" -"See :pep:`484` for more details and comparison with other typing semantics." +"The variance and order of type variables correspond to those of :class:" +"`Generator`, for example::" msgstr "" -"Véase :pep:`484` para más detalle y comparación con otras semánticas de " -"tipado." +"Una versión genérica de :class:`collections.abc.Coroutine`.y orden de las " +"variables de tipo se corresponde con aquellas de :class:`Generator`, por " +"ejemplo::" -#: ../Doc/library/typing.rst:2635 +#: ../Doc/library/typing.rst:3438 msgid "" -"Overloaded functions can now be introspected at runtime using :func:" -"`get_overloads`." +":class:`collections.abc.Coroutine` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." msgstr "" -"Ahora es posible introspectar en tiempo de ejecución las funciones " -"sobrecargadas utilizando :func:`get_overloads`." +":class:`collections.abc.Coroutine` ahora soporta subíndices (``[]``). Véase :" +"pep:`585` y :ref:`types-genericalias`." + +#: ../Doc/library/typing.rst:3444 +#, fuzzy +msgid "Deprecated alias to :class:`collections.abc.AsyncGenerator`." +msgstr "Un alias de :class:`collections.abc.Sized`." -#: ../Doc/library/typing.rst:2642 +#: ../Doc/library/typing.rst:3446 msgid "" -"Return a sequence of :func:`@overload `-decorated definitions for " -"*func*. *func* is the function object for the implementation of the " -"overloaded function. For example, given the definition of ``process`` in the " -"documentation for :func:`@overload `, ``get_overloads(process)`` " -"will return a sequence of three function objects for the three defined " -"overloads. If called on a function with no overloads, ``get_overloads()`` " -"returns an empty sequence." +"An async generator can be annotated by the generic type " +"``AsyncGenerator[YieldType, SendType]``. For example::" msgstr "" -"Retorna una secuencia de definiciones para *func* decoradas con :func:" -"`@overload `. *func* es el objeto función correspondiente a la " -"implementación de la función sobrecargada. Por ejemplo, dada la definición " -"de ``process`` en la documentación de :func:`@overload `, " -"``get_overloads(process)`` retornará una secuencia de tres objetos función " -"para las tres sobrecargas definidas. Si es llamada con una función que no " -"tenga sobrecargas, ``get_overloads()`` retorna una secuencia vacía." +"Un generador asíncrono se puede anotar con el tipo genérico " +"``AsyncGenerator[YieldType, SendType]``. Por ejemplo::" -#: ../Doc/library/typing.rst:2650 +#: ../Doc/library/typing.rst:3455 msgid "" -"``get_overloads()`` can be used for introspecting an overloaded function at " -"runtime." +"Unlike normal generators, async generators cannot return a value, so there " +"is no ``ReturnType`` type parameter. As with :class:`Generator`, the " +"``SendType`` behaves contravariantly." msgstr "" -"``get_overloads()`` puede ser utilizada para introspectar en tiempo de " -"ejecución una función sobrecargada." +"A diferencia de los generadores normales, los generadores asíncronos no " +"pueden retornar un valor, por lo que no hay un parámetro de tipo " +"``ReturnType``. Igual que :class:`Generator`, ``SendType`` se comporta como " +"contravariante." -#: ../Doc/library/typing.rst:2658 +#: ../Doc/library/typing.rst:3459 msgid "" -"Clear all registered overloads in the internal registry. This can be used to " -"reclaim the memory used by the registry." +"If your generator will only yield values, set the ``SendType`` to ``None``::" msgstr "" -"Limpia todas las sobrecargas registradas del registro interno. Ésto puede " -"ser usado para recuperar memoria usada por el registro." +"Si tu generador solo retornará valores con *yield*, establece el " +"``SendType`` como ``None``::" -#: ../Doc/library/typing.rst:2666 +#: ../Doc/library/typing.rst:3467 msgid "" -"A decorator to indicate to type checkers that the decorated method cannot be " -"overridden, and the decorated class cannot be subclassed. For example::" +"Alternatively, annotate your generator as having a return type of either " +"``AsyncIterable[YieldType]`` or ``AsyncIterator[YieldType]``::" msgstr "" -"Un decorador que indica a los validadores de tipos que el método decorado no " -"se puede sobreescribir, o que la clase decorada no se puede derivar " -"(*subclassed*). Por ejemplo::" +"Opcionalmente, anota el generador con un tipo de retorno " +"``AsyncIterable[YieldType]`` o ``AsyncIterator[YieldType]``::" -#: ../Doc/library/typing.rst:2689 +#: ../Doc/library/typing.rst:3477 msgid "" -"The decorator will now set the ``__final__`` attribute to ``True`` on the " -"decorated object. Thus, a check like ``if getattr(obj, \"__final__\", " -"False)`` can be used at runtime to determine whether an object ``obj`` has " -"been marked as final. If the decorated object does not support setting " -"attributes, the decorator returns the object unchanged without raising an " -"exception." +":class:`collections.abc.AsyncGenerator` now supports subscripting (``[]``). " +"See :pep:`585` and :ref:`types-genericalias`." msgstr "" -"El decorador establecerá a ``True`` el atributo ``__final__`` en el objeto " -"decorado. De este modo, es posible utilizar en tiempo de ejecución una " -"verificación como ``if getattr(obj, \"__final__\", False)`` para determinar " -"si un objeto ``obj`` has sido marcado como final. Si el objeto decorado no " -"soporta el establecimiento de atributos, el decorador retorna el objeto sin " -"cambios y sin levantar una excepción." +":class:`collections.abc.AsycGenerator` ahora soporta subíndices (``[]``). " +"Véase :pep:`585` y :ref:`types-genericalias`." -# se extrae del contexto que el decorador elimina la comprobacion de tipo en -# el validador, por lo tanto solo anota/comenta (annotation), no -# indica/sugiere tipo (type hint) -#: ../Doc/library/typing.rst:2700 -msgid "Decorator to indicate that annotations are not type hints." -msgstr "" -"Un decorador para indicar que las anotaciones no deben ser comprobadas como " -"indicadores de tipo." +#: ../Doc/library/typing.rst:3484 +#, fuzzy +msgid "Deprecated alias to :class:`collections.abc.AsyncIterable`." +msgstr "Un alias de :class:`collections.abc.Hashable`." -#: ../Doc/library/typing.rst:2702 +#: ../Doc/library/typing.rst:3488 msgid "" -"This works as class or function :term:`decorator`. With a class, it applies " -"recursively to all methods and classes defined in that class (but not to " -"methods defined in its superclasses or subclasses)." +":class:`collections.abc.AsyncIterable` now supports subscripting (``[]``). " +"See :pep:`585` and :ref:`types-genericalias`." msgstr "" -"Esto funciona como un :term:`decorator` (decorador) de clase o función. Con " -"una clase, se aplica recursivamente a todos los métodos y clases definidos " -"en dicha clase (pero no a lo métodos definidos en sus superclases y " -"subclases)." +":class:`collections.abc.AsyncIterable` ahora soporta subíndices (``[]``). " +"Véase :pep:`585` y :ref:`types-genericalias`." -# ver en contexto -#: ../Doc/library/typing.rst:2706 -msgid "This mutates the function(s) in place." -msgstr "Esto modifica la función o funciones *in situ*." +#: ../Doc/library/typing.rst:3494 +#, fuzzy +msgid "Deprecated alias to :class:`collections.abc.AsyncIterator`." +msgstr "Un alias de :class:`collections.abc.Sized`." -#: ../Doc/library/typing.rst:2710 -msgid "Decorator to give another decorator the :func:`no_type_check` effect." +#: ../Doc/library/typing.rst:3498 +msgid "" +":class:`collections.abc.AsyncIterator` now supports subscripting (``[]``). " +"See :pep:`585` and :ref:`types-genericalias`." msgstr "" -"Un decorador que asigna a otro decorador el efecto de :func:`no_type_check` " -"(no comprobar tipo)." +":class:`collections.abc.AsyncIterator` ahora soporta subíndices (``[]``). " +"Véase :pep:`585` y :ref:`types-genericalias`." -#: ../Doc/library/typing.rst:2712 +#: ../Doc/library/typing.rst:3504 +#, fuzzy +msgid "Deprecated alias to :class:`collections.abc.Awaitable`." +msgstr "Un alias de :class:`collections.abc.Hashable`." + +#: ../Doc/library/typing.rst:3508 msgid "" -"This wraps the decorator with something that wraps the decorated function " -"in :func:`no_type_check`." +":class:`collections.abc.Awaitable` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." msgstr "" -"Esto hace que el decorador decorado añada el efecto de :func:`no_type_check` " -"a la función decorada." +":class:`collections.abc.Awaitable` ahora soporta subíndices (``[]``). Véase :" +"pep:`585` y :ref:`types-genericalias`." -#: ../Doc/library/typing.rst:2717 -msgid "Decorator to mark a class or function to be unavailable at runtime." -msgstr "" -"Un decorador que marca una clase o función como no disponible en tiempo de " -"ejecución." +#: ../Doc/library/typing.rst:3515 +#, fuzzy +msgid "Aliases to other ABCs in :mod:`collections.abc`" +msgstr "Correspondiente a otros tipos en :mod:`collections.abc`" -#: ../Doc/library/typing.rst:2719 +#: ../Doc/library/typing.rst:3519 +#, fuzzy +msgid "Deprecated alias to :class:`collections.abc.Iterable`." +msgstr "Un alias de :class:`collections.abc.Hashable`." + +#: ../Doc/library/typing.rst:3521 msgid "" -"This decorator is itself not available at runtime. It is mainly intended to " -"mark classes that are defined in type stub files if an implementation " -"returns an instance of a private class::" +":class:`collections.abc.Iterable` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." msgstr "" -"Este decorador no está disponible en tiempo de ejecución. Existe " -"principalmente para marcar clases que se definen en archivos *stub* para " -"cuando una implementación retorna una instancia de una clase privada::" +":class:`collections.abc.Iterable` ahora soporta subíndices (``[]``). Véase :" +"pep:`585` y :ref:`types-genericalias`." + +#: ../Doc/library/typing.rst:3527 +#, fuzzy +msgid "Deprecated alias to :class:`collections.abc.Iterator`." +msgstr "Un alias de :class:`collections.abc.Sized`." -#: ../Doc/library/typing.rst:2730 +#: ../Doc/library/typing.rst:3529 msgid "" -"Note that returning instances of private classes is not recommended. It is " -"usually preferable to make such classes public." +":class:`collections.abc.Iterator` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." msgstr "" -"Nótese que no se recomienda retornar instancias de clases privadas. " -"Normalmente es preferible convertirlas en clases públicas." +":class:`collections.abc.Iterator` ahora soporta subíndices (``[]``). Véase :" +"pep:`585` y :ref:`types-genericalias`." -#: ../Doc/library/typing.rst:2734 -msgid "Introspection helpers" -msgstr "Ayudas de introspección" +#: ../Doc/library/typing.rst:3535 +#, fuzzy +msgid "Deprecated alias to :class:`collections.abc.Callable`." +msgstr "Un alias de :class:`collections.abc.Hashable`." -#: ../Doc/library/typing.rst:2738 +#: ../Doc/library/typing.rst:3537 msgid "" -"Return a dictionary containing type hints for a function, method, module or " -"class object." +"See :ref:`annotating-callables` for details on how to use :class:" +"`collections.abc.Callable` and ``typing.Callable`` in type annotations." msgstr "" -"Retorna un diccionario que contiene indicaciones de tipo para una función, " -"método, módulo o objeto clase." -#: ../Doc/library/typing.rst:2741 +#: ../Doc/library/typing.rst:3540 msgid "" -"This is often the same as ``obj.__annotations__``. In addition, forward " -"references encoded as string literals are handled by evaluating them in " -"``globals`` and ``locals`` namespaces. For a class ``C``, return a " -"dictionary constructed by merging all the ``__annotations__`` along ``C." -"__mro__`` in reverse order." +":class:`collections.abc.Callable` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." msgstr "" -"Habitualmente, esto es lo mismo que ``obj.__annotations__``. Además, las " -"referencias hacia adelante codificadas como literales de texto se manejan " -"evaluándolas en los espacios de nombres ``globals`` y ``locals``. Para una " -"clase ``C``, se retorna un diccionario construido por la combinación de " -"``__annotations__`` y ``C.__mro`` en orden inverso." +":class:`collections.abc.Callable` ahora soporta subíndices (``[]``). Véase :" +"pep:`585` y :ref:`types-genericalias`." + +#: ../Doc/library/typing.rst:3550 +#, fuzzy +msgid "Deprecated alias to :class:`collections.abc.Generator`." +msgstr "Un alias de :class:`collections.abc.Sized`." -#: ../Doc/library/typing.rst:2747 +#: ../Doc/library/typing.rst:3552 msgid "" -"The function recursively replaces all ``Annotated[T, ...]`` with ``T``, " -"unless ``include_extras`` is set to ``True`` (see :class:`Annotated` for " -"more information). For example::" +"A generator can be annotated by the generic type ``Generator[YieldType, " +"SendType, ReturnType]``. For example::" msgstr "" -"La función reemplaza todos los ``Annotated[T, ...]`` con ``T`` de manera " -"recursiva, a menos que ``include_extras`` se defina como ``True`` ( véase :" -"class:`Annotated` para más información). Por ejemplo::" +"Un generador puede ser anotado con el tipo genérico ``Generator[YieldType, " +"SendType, ReturnType]``. Por ejemplo::" -#: ../Doc/library/typing.rst:2762 +#: ../Doc/library/typing.rst:3561 msgid "" -":func:`get_type_hints` does not work with imported :ref:`type aliases ` that include forward references. Enabling postponed evaluation of " -"annotations (:pep:`563`) may remove the need for most forward references." +"Note that unlike many other generics in the typing module, the ``SendType`` " +"of :class:`Generator` behaves contravariantly, not covariantly or " +"invariantly." msgstr "" -":func:`get_type_hints` no funciona con :ref:`alias de tipo ` " -"importados que incluyen referencias hacia adelante. Habilitar la evaluación " -"pospuesta de anotaciones (:pep:`563`) puede eliminar la necesidad de la " -"mayoría de las referencias futuras." - -#: ../Doc/library/typing.rst:2767 -msgid "Added ``include_extras`` parameter as part of :pep:`593`." -msgstr "Se agregan los parámetros ``include_extras`` como parte de :pep:`593`." +"Nótese que en contraste con muchos otros genéricos en el módulo *typing*, el " +"``SendType`` de :class:`Generator` se comporta como contravariante, no " +"covariante ni invariante." -#: ../Doc/library/typing.rst:2770 +#: ../Doc/library/typing.rst:3565 msgid "" -"Previously, ``Optional[t]`` was added for function and method annotations if " -"a default value equal to ``None`` was set. Now the annotation is returned " -"unchanged." +"If your generator will only yield values, set the ``SendType`` and " +"``ReturnType`` to ``None``::" msgstr "" -"Anteriormente, se agregaba ``Optional[t]`` en las anotaciones de funciones o " -"métodos si se establecía un valor por defecto igual a ``None``. Ahora la " -"anotación es retornada sin cambios." +"Si tu generador solo retornará valores con *yield*, establece ``SendType`` y " +"``ReturnType`` como ``None``::" -# special forms se refiere a tipado exclusivo de typing (no el nativo como str -# o int): Union, Optional ... -#: ../Doc/library/typing.rst:2778 -msgid "Provide basic introspection for generic types and special typing forms." +#: ../Doc/library/typing.rst:3573 +msgid "" +"Alternatively, annotate your generator as having a return type of either " +"``Iterable[YieldType]`` or ``Iterator[YieldType]``::" msgstr "" -"Provee introspección básica para tipos genéricos y construcciones especiales " -"de tipado." +"Opcionalmente, anota tu generador con un tipo de retorno de " +"``Iterable[YieldType]`` o ``Iterator[YieldType]``::" -#: ../Doc/library/typing.rst:2780 +#: ../Doc/library/typing.rst:3581 msgid "" -"For a typing object of the form ``X[Y, Z, ...]`` these functions return " -"``X`` and ``(Y, Z, ...)``. If ``X`` is a generic alias for a builtin or :mod:" -"`collections` class, it gets normalized to the original class. If ``X`` is a " -"union or :class:`Literal` contained in another generic type, the order of " -"``(Y, Z, ...)`` may be different from the order of the original arguments " -"``[Y, Z, ...]`` due to type caching. For unsupported objects return ``None`` " -"and ``()`` correspondingly. Examples::" +":class:`collections.abc.Generator` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." msgstr "" -"Para un objeto de escritura de la forma ``X[Y, Z, ...]``, estas funciones " -"retornan ``X`` y ``(Y, Z, ...)``. Si ``X`` es un alias genérico para una " -"clase incorporada o :mod:`collections`, se normaliza a la clase original. Si " -"``X`` es una unión o :class:`Literal` contenido en otro tipo genérico, el " -"orden de ``(Y, Z, ...)`` puede ser diferente del orden de los argumentos " -"originales ``[Y, Z, ...]`` debido al tipo de almacenamiento en caché. Para " -"objetos no admitidos, retorna ``None`` y ``()`` correspondientemente. " -"Ejemplos:" +":class:`collections.abc.Generator` ahora soporta subíndices (``[]``). Véase :" +"pep:`585` y :ref:`types-genericalias`." -#: ../Doc/library/typing.rst:2799 -msgid "Check if a type is a :class:`TypedDict`." -msgstr "Compruebe si un tipo es :class:`TypedDict`." +#: ../Doc/library/typing.rst:3587 +#, fuzzy +msgid "Deprecated alias to :class:`collections.abc.Hashable`." +msgstr "Un alias de :class:`collections.abc.Hashable`." + +#: ../Doc/library/typing.rst:3589 +#, fuzzy +msgid "Use :class:`collections.abc.Hashable` directly instead." +msgstr "Un alias de :class:`collections.abc.Hashable`." + +#: ../Doc/library/typing.rst:3594 +#, fuzzy +msgid "Deprecated alias to :class:`collections.abc.Reversible`." +msgstr "Un alias de :class:`collections.abc.Sized`." -#: ../Doc/library/typing.rst:2814 +#: ../Doc/library/typing.rst:3596 msgid "" -"A class used for internal typing representation of string forward " -"references. For example, ``List[\"SomeClass\"]`` is implicitly transformed " -"into ``List[ForwardRef(\"SomeClass\")]``. This class should not be " -"instantiated by a user, but may be used by introspection tools." +":class:`collections.abc.Reversible` now supports subscripting (``[]``). See :" +"pep:`585` and :ref:`types-genericalias`." msgstr "" -"Una clase utilizada para la representación de escritura interna de " -"referencias de cadena hacia adelante. Por ejemplo, ``List[\"SomeClass\"]`` " -"se transforma implícitamente en ``List[ForwardRef(\"SomeClass\")]``. Esta " -"clase no debe ser instanciada por un usuario, pero puede ser utilizada por " -"herramientas de introspección." +":class:`collections.abc.Reversible` ahora soporta subíndices (``[]``). " +"Véase :pep:`585` y :ref:`types-genericalias`." -#: ../Doc/library/typing.rst:2820 -msgid "" -":pep:`585` generic types such as ``list[\"SomeClass\"]`` will not be " -"implicitly transformed into ``list[ForwardRef(\"SomeClass\")]`` and thus " -"will not automatically resolve to ``list[SomeClass]``." +#: ../Doc/library/typing.rst:3602 +#, fuzzy +msgid "Deprecated alias to :class:`collections.abc.Sized`." +msgstr "Un alias de :class:`collections.abc.Sized`." + +#: ../Doc/library/typing.rst:3604 +#, fuzzy +msgid "Use :class:`collections.abc.Sized` directly instead." +msgstr "Un alias de :class:`collections.abc.Sized`." + +#: ../Doc/library/typing.rst:3610 +msgid "Aliases to :mod:`contextlib` ABCs" msgstr "" -"Los tipos genéricos de :pep:`585`, como ``list[\"SomeClass\"]``, no se " -"transformarán implícitamente en ``list[ForwardRef(\"SomeClass\")]`` y, por " -"lo tanto, no se resolverán automáticamente en ``list[SomeClass]``." -#: ../Doc/library/typing.rst:2827 -msgid "Constant" -msgstr "Constantes" +#: ../Doc/library/typing.rst:3614 +#, fuzzy +msgid "Deprecated alias to :class:`contextlib.AbstractContextManager`." +msgstr "Una versión genérica de :class:`contextlib.AbstractContextManager`." -#: ../Doc/library/typing.rst:2831 +#: ../Doc/library/typing.rst:3619 msgid "" -"A special constant that is assumed to be ``True`` by 3rd party static type " -"checkers. It is ``False`` at runtime. Usage::" +":class:`contextlib.AbstractContextManager` now supports subscripting " +"(``[]``). See :pep:`585` and :ref:`types-genericalias`." msgstr "" -"Una constante especial que se asume como cierta (``True``) por validadores " -"estáticos de tipos de terceros. Es falsa (``False``) en tiempo de ejecución. " -"Uso::" +":class:`contextlib.AbstractContextManager` ahora soporta subíndices " +"(``[]``). Véase :pep:`585` y :ref:`types-genericalias`." -#: ../Doc/library/typing.rst:2840 -msgid "" -"The first type annotation must be enclosed in quotes, making it a \"forward " -"reference\", to hide the ``expensive_mod`` reference from the interpreter " -"runtime. Type annotations for local variables are not evaluated, so the " -"second annotation does not need to be enclosed in quotes." +#: ../Doc/library/typing.rst:3626 +#, fuzzy +msgid "Deprecated alias to :class:`contextlib.AbstractAsyncContextManager`." msgstr "" -"Nótese que la primera anotación de tipo debe estar rodeada por comillas, " -"convirtiéndola en una \"referencia directa\", para ocultar al intérprete la " -"referencia ``expensive_mod`` en tiempo de ejecución. Las anotaciones de tipo " -"para variables locales no se evalúan, así que la segunda anotación no " -"necesita comillas." +"Una versión genérica de :class:`contextlib.AbstractAsyncContextManager`." -#: ../Doc/library/typing.rst:2847 +#: ../Doc/library/typing.rst:3631 msgid "" -"If ``from __future__ import annotations`` is used, annotations are not " -"evaluated at function definition time. Instead, they are stored as strings " -"in ``__annotations__``. This makes it unnecessary to use quotes around the " -"annotation (see :pep:`563`)." +":class:`contextlib.AbstractAsyncContextManager` now supports subscripting " +"(``[]``). See :pep:`585` and :ref:`types-genericalias`." msgstr "" -"Si se utiliza ``from __future__ import annotations``, las anotaciones no son " -"evaluadas al momento de la definición de funciones. En cambio, serán " -"almacenadas como cadenas de texto en ``__annotations__``. Ésto vuelve " -"innecesario el uso de comillas alrededor de la anotación (véase :pep:`563`)." +":class:`contextlib.AbstractAsyncContextManager` ahora soporta subíndices " +"(``[]``). Véase :pep:`585` y :ref:`types-genericalias`." -#: ../Doc/library/typing.rst:2856 +#: ../Doc/library/typing.rst:3637 msgid "Deprecation Timeline of Major Features" msgstr "Línea de tiempo de obsolescencia de características principales" -#: ../Doc/library/typing.rst:2858 +#: ../Doc/library/typing.rst:3639 msgid "" "Certain features in ``typing`` are deprecated and may be removed in a future " "version of Python. The following table summarizes major deprecations for " @@ -3719,62 +4423,573 @@ msgstr "" "principales obsolescencias para su conveniencia. Ésto está sujeto a cambio y " "no todas las obsolescencias están representadas." -#: ../Doc/library/typing.rst:2863 +#: ../Doc/library/typing.rst:3646 msgid "Feature" msgstr "Característica" -#: ../Doc/library/typing.rst:2863 +#: ../Doc/library/typing.rst:3647 msgid "Deprecated in" msgstr "En desuso desde" -#: ../Doc/library/typing.rst:2863 +#: ../Doc/library/typing.rst:3648 msgid "Projected removal" msgstr "Eliminación proyectada" -#: ../Doc/library/typing.rst:2863 +#: ../Doc/library/typing.rst:3649 msgid "PEP/issue" msgstr "PEP/issue" -#: ../Doc/library/typing.rst:2865 +#: ../Doc/library/typing.rst:3650 msgid "``typing.io`` and ``typing.re`` submodules" msgstr "sub-módulos ``typing.io`` y ``typing.re``" -#: ../Doc/library/typing.rst:2865 +#: ../Doc/library/typing.rst:3651 msgid "3.8" msgstr "3.8" -#: ../Doc/library/typing.rst:2865 -msgid "3.12" +#: ../Doc/library/typing.rst:3652 +#, fuzzy +msgid "3.13" msgstr "3.12" -#: ../Doc/library/typing.rst:2865 +#: ../Doc/library/typing.rst:3653 msgid ":issue:`38291`" msgstr ":issue:`38291`" -#: ../Doc/library/typing.rst:2868 +#: ../Doc/library/typing.rst:3654 msgid "``typing`` versions of standard collections" msgstr "Versiones ``typing`` de colecciones estándares" -#: ../Doc/library/typing.rst:2868 +#: ../Doc/library/typing.rst:3655 ../Doc/library/typing.rst:3659 msgid "3.9" msgstr "3.9" -#: ../Doc/library/typing.rst:2868 ../Doc/library/typing.rst:2871 -msgid "Undecided" -msgstr "No decidido" +#: ../Doc/library/typing.rst:3656 +msgid "Undecided (see :ref:`deprecated-aliases` for more information)" +msgstr "" -#: ../Doc/library/typing.rst:2868 +#: ../Doc/library/typing.rst:3657 msgid ":pep:`585`" msgstr ":pep:`585`" -#: ../Doc/library/typing.rst:2871 -msgid "``typing.Text``" +#: ../Doc/library/typing.rst:3658 +msgid ":class:`typing.ByteString`" +msgstr "" + +#: ../Doc/library/typing.rst:3660 +#, fuzzy +msgid "3.14" +msgstr "3.12" + +#: ../Doc/library/typing.rst:3661 +#, fuzzy +msgid ":gh:`91896`" +msgstr ":gh:`92332`" + +#: ../Doc/library/typing.rst:3662 +#, fuzzy +msgid ":data:`typing.Text`" msgstr "``typing.Text``" -#: ../Doc/library/typing.rst:2871 +#: ../Doc/library/typing.rst:3663 msgid "3.11" msgstr "3.11" -#: ../Doc/library/typing.rst:2871 +#: ../Doc/library/typing.rst:3664 ../Doc/library/typing.rst:3668 +#: ../Doc/library/typing.rst:3672 +msgid "Undecided" +msgstr "No decidido" + +#: ../Doc/library/typing.rst:3665 msgid ":gh:`92332`" msgstr ":gh:`92332`" + +#: ../Doc/library/typing.rst:3666 +#, fuzzy +msgid ":class:`typing.Hashable` and :class:`typing.Sized`" +msgstr ":class:`Callable` y :class:`Concatenate`." + +#: ../Doc/library/typing.rst:3667 ../Doc/library/typing.rst:3671 +msgid "3.12" +msgstr "3.12" + +#: ../Doc/library/typing.rst:3669 +#, fuzzy +msgid ":gh:`94309`" +msgstr ":gh:`92332`" + +#: ../Doc/library/typing.rst:3670 +#, fuzzy +msgid ":data:`typing.TypeAlias`" +msgstr "*Introduce* :data:`TypeAlias`" + +#: ../Doc/library/typing.rst:3673 +#, fuzzy +msgid ":pep:`695`" +msgstr ":pep:`585`" + +#~ msgid "" +#~ "Note that ``None`` as a type hint is a special case and is replaced by " +#~ "``type(None)``." +#~ msgstr "" +#~ "Nótese que ``None`` como indicador de tipo es un caso especial y es " +#~ "substituido por ``type(None)``." + +#~ msgid "Callable" +#~ msgstr "Callable" + +# Aquí frameworks parace indicar un término abierto referiéndose a elementos +# que interactuarán con las llamadas anotadas. Por ello, se escoge el término +# genérico "entidades" +#~ msgid "" +#~ "Frameworks expecting callback functions of specific signatures might be " +#~ "type hinted using ``Callable[[Arg1Type, Arg2Type], ReturnType]``." +#~ msgstr "" +#~ "Entidades que esperen llamadas a funciones con interfaces específicas " +#~ "puede ser anotadas usando ``Callable[[Arg1Type, Arg2Type], ReturnType]``." + +#~ msgid "" +#~ "It is possible to declare the return type of a callable without " +#~ "specifying the call signature by substituting a literal ellipsis for the " +#~ "list of arguments in the type hint: ``Callable[..., ReturnType]``." +#~ msgstr "" +#~ "Es posible declarar el tipo de retorno de un *callable* (invocable) sin " +#~ "especificar tipos en los parámetros substituyendo la lista de argumentos " +#~ "por unos puntos suspensivos (...) en el indicador de tipo: " +#~ "``Callable[..., ReturnType]``." + +#~ msgid "" +#~ "Generics can be parameterized by using a factory available in typing " +#~ "called :class:`TypeVar`." +#~ msgstr "" +#~ "Los genéricos se pueden parametrizar usando una nueva *factory* " +#~ "disponible en *typing* llamada :class:`TypeVar`." + +# revisar en su contexto +#~ msgid "" +#~ "The :class:`Generic` base class defines :meth:`~object.__class_getitem__` " +#~ "so that ``LoggedVar[T]`` is valid as a type::" +#~ msgstr "" +#~ "La clase base :class:`Generic` define :meth:`__class_getitem__` para que " +#~ "``LoggedVar[T]`` sea válido como tipo::" + +#~ msgid "You can use multiple inheritance with :class:`Generic`::" +#~ msgstr "Se puede utilizar herencia múltiple con :class:`Generic`::" + +#~ msgid "" +#~ "The redundant types are deprecated as of Python 3.9 but no deprecation " +#~ "warnings will be issued by the interpreter. It is expected that type " +#~ "checkers will flag the deprecated types when the checked program targets " +#~ "Python 3.9 or newer." +#~ msgstr "" +#~ "Los tipos redundantes están descontinuados con Python 3.9 pero el " +#~ "intérprete no mostrará ninguna advertencia. Se espera que los " +#~ "verificadores de tipo marquen estos tipos como obsoletos cuando el " +#~ "programa a verificar apunte a Python 3.9 o superior." + +#~ msgid "" +#~ "The deprecated types will be removed from the :mod:`typing` module in the " +#~ "first Python version released 5 years after the release of Python 3.9.0. " +#~ "See details in :pep:`585`—*Type Hinting Generics In Standard Collections*." +#~ msgstr "" +#~ "Los tipos obsoletos serán removidos del módulo :class:`Generic` en la " +#~ "primera versión de Python que sea lanzada 5 años después del lanzamiento " +#~ "de Python 3.9.0. Véase los detalles en :pep:`585` -- *Sugerencias de tipo " +#~ "genéricas en las Colecciones Estándar*." + +#~ msgid "In general if something currently follows the pattern of::" +#~ msgstr "En general, si actualmente algo sigue el patrón de::" + +#~ msgid "" +#~ "You should use :data:`Self` as calls to ``SubclassOfFoo.return_self`` " +#~ "would have ``Foo`` as the return type and not ``SubclassOfFoo``." +#~ msgstr "" +#~ "Se debiese usar :data:`Self`, ya que llamadas a ``SubclassOfFoo." +#~ "return_self`` tendrían ``Foo`` como valor de retorno, y no " +#~ "``SubclassOfFoo``." + +#~ msgid "See :pep:`613` for more details about explicit type aliases." +#~ msgstr "" +#~ "Consulte :pep:`613` para obtener más detalles sobre los alias de tipos " +#~ "explícitos." + +#~ msgid "" +#~ "Tuple type; ``Tuple[X, Y]`` is the type of a tuple of two items with the " +#~ "first item of type X and the second of type Y. The type of the empty " +#~ "tuple can be written as ``Tuple[()]``." +#~ msgstr "" +#~ "El tipo Tuple, ``Tuple[X, Y]`` es el tipo de una tupla de dos ítems con " +#~ "el primer ítem de tipo X y el segundo de tipo Y. El tipo de una tupla " +#~ "vacía se puede escribir así: ``Tuple[()]``." + +#~ msgid "" +#~ "Example: ``Tuple[T1, T2]`` is a tuple of two elements corresponding to " +#~ "type variables T1 and T2. ``Tuple[int, float, str]`` is a tuple of an " +#~ "int, a float and a string." +#~ msgstr "" +#~ "Ejemplo: ``Tuple[T1, T2]`` es una tupla de dos elementos con sus " +#~ "correspondientes variables de tipo T1 y T2. ``Tuple[int, float, str]`` es " +#~ "un tupla con un número entero, un número de punto flotante y una cadena " +#~ "de texto." + +#~ msgid "" +#~ "To specify a variable-length tuple of homogeneous type, use literal " +#~ "ellipsis, e.g. ``Tuple[int, ...]``. A plain :data:`Tuple` is equivalent " +#~ "to ``Tuple[Any, ...]``, and in turn to :class:`tuple`." +#~ msgstr "" +#~ "Para especificar una tupla de longitud variable y tipo homogéneo, se usan " +#~ "puntos suspensivos, p. ej. ``Tuple[int, ...]``. Un simple :data:`Tuple` " +#~ "es equivalente a ``Tuple[Any, ...]`` y, a su vez, a :class:`tuple`." + +#~ msgid "Optional type." +#~ msgstr "Tipo Optional." + +#~ msgid "" +#~ "Callable type; ``Callable[[int], str]`` is a function of (int) -> str." +#~ msgstr "" +#~ "Tipo Callable (invocable); ``Callable[[int], str]`` es una función de " +#~ "(int) -> str." + +#~ msgid "" +#~ "There is no syntax to indicate optional or keyword arguments; such " +#~ "function types are rarely used as callback types. ``Callable[..., " +#~ "ReturnType]`` (literal ellipsis) can be used to type hint a callable " +#~ "taking any number of arguments and returning ``ReturnType``. A plain :" +#~ "data:`Callable` is equivalent to ``Callable[..., Any]``, and in turn to :" +#~ "class:`collections.abc.Callable`." +#~ msgstr "" +#~ "No existe una sintaxis para indicar argumentos opcionales o con clave " +#~ "(*keyword*); tales funciones rara vez se utilizan como tipos para " +#~ "llamadas. ``Callable[..., ReturnType]`` (puntos suspensivos) se puede " +#~ "usar para indicar que un *callable* admite un número indeterminado de " +#~ "argumentos y retorna ``ReturnType``. Un simple :data:`Callable` es " +#~ "equivalente a ``Callable[..., Any]`` y, a su vez, a :class:`collections." +#~ "abc.Callable`." + +#~ msgid "" +#~ "The documentation for :class:`ParamSpec` and :class:`Concatenate` provide " +#~ "examples of usage with ``Callable``." +#~ msgstr "" +#~ "La documentación de :class:`ParamSpec` y :class:`Concatenate` proporciona " +#~ "ejemplos de uso con ``Callable``." + +#~ msgid "" +#~ "The fact that ``Type[C]`` is covariant implies that all subclasses of " +#~ "``C`` should implement the same constructor signature and class method " +#~ "signatures as ``C``. The type checker should flag violations of this, but " +#~ "should also allow constructor calls in subclasses that match the " +#~ "constructor calls in the indicated base class. How the type checker is " +#~ "required to handle this particular case may change in future revisions " +#~ "of :pep:`484`." +#~ msgstr "" +#~ "El hecho de que ``Type[C]`` sea covariante implica que todas las " +#~ "subclases de ``C`` deben implementar la misma interfaz del constructor y " +#~ "las mismas interfaces de los métodos de clase que ``C``. El validador de " +#~ "tipos marcará cualquier incumplimiento de esto, pero permitirá llamadas " +#~ "al constructor que coincida con la llamada al constructor de la clase " +#~ "base indicada. El modo en que el validador de tipos debe gestionar este " +#~ "caso particular podría cambiar en futuras revisiones de :pep:`484`." + +#~ msgid "" +#~ "A special typing construct to indicate to type checkers that a name " +#~ "cannot be re-assigned or overridden in a subclass. For example::" +#~ msgstr "" +#~ "Un construcción especial para tipado que indica a los validadores de tipo " +#~ "que un nombre no puede ser reasignado o sobrescrito en una subclase. Por " +#~ "ejemplo::" + +#~ msgid "" +#~ "Special typing constructs that mark individual keys of a :class:" +#~ "`TypedDict` as either required or non-required respectively." +#~ msgstr "" +#~ "Constructos de tipado especiales que marcan llaves individuales de un :" +#~ "class:`TypedDict` como requeridas o no requeridas respectivamente." + +#~ msgid "" +#~ "A type, introduced in :pep:`593` (``Flexible function and variable " +#~ "annotations``), to decorate existing types with context-specific metadata " +#~ "(possibly multiple pieces of it, as ``Annotated`` is variadic). " +#~ "Specifically, a type ``T`` can be annotated with metadata ``x`` via the " +#~ "typehint ``Annotated[T, x]``. This metadata can be used for either static " +#~ "analysis or at runtime. If a library (or tool) encounters a typehint " +#~ "``Annotated[T, x]`` and has no special logic for metadata ``x``, it " +#~ "should ignore it and simply treat the type as ``T``. Unlike the " +#~ "``no_type_check`` functionality that currently exists in the ``typing`` " +#~ "module which completely disables typechecking annotations on a function " +#~ "or a class, the ``Annotated`` type allows for both static typechecking of " +#~ "``T`` (which can safely ignore ``x``) together with runtime access to " +#~ "``x`` within a specific application." +#~ msgstr "" +#~ "Un tipo introducido en :pep:`593` (``Anotaciones flexibles de función y " +#~ "variable``), para decorar tipos existentes con metadatos específicos del " +#~ "contexto (posiblemente múltiples partes del mismo, ya que ``Annotated`` " +#~ "es variádico). En concreto, un tipo ``T`` puede ser anotado con el " +#~ "metadato ``x`` a través del *typehint* ``Annotated[T,x]``. Estos " +#~ "metadatos se pueden utilizar para el análisis estático o en tiempo de " +#~ "ejecución. Si una librería (o herramienta) encuentra un *typehint* " +#~ "``Annotated[T,x]`` y no encuentra una lógica especial para el metadato " +#~ "``x``, este debería ignorarlo o simplemente tratar el tipo como ``T``. A " +#~ "diferencia de la funcionalidad ``no_type_check``, que actualmente existe " +#~ "en el módulo ``typing``, que deshabilita completamente la comprobación de " +#~ "anotaciones de tipo en una función o clase, el tipo ``Annotated`` permite " +#~ "tanto la comprobación de tipos estático de ``T`` (la cuál ignoraría ``x`` " +#~ "de forma segura) en conjunto con el acceso a ``x`` en tiempo de ejecución " +#~ "dentro de una aplicación específica." + +#~ msgid "" +#~ "When a tool or a library does not support annotations or encounters an " +#~ "unknown annotation it should just ignore it and treat annotated type as " +#~ "the underlying type." +#~ msgstr "" +#~ "Cuando una herramienta o librería no soporta anotaciones o encuentra una " +#~ "anotación desconocida, simplemente debe ignorarla o tratar la anotación " +#~ "como el tipo subyacente." + +#~ msgid "" +#~ "Since the ``Annotated`` type allows you to put several annotations of the " +#~ "same (or different) type(s) on any node, the tools or libraries consuming " +#~ "those annotations are in charge of dealing with potential duplicates. For " +#~ "example, if you are doing value range analysis you might allow this::" +#~ msgstr "" +#~ "Dado que el tipo ``Annotated`` permite colocar varias anotaciones del " +#~ "mismo (o diferente) tipo(s) en cualquier nodo, las herramientas o " +#~ "librerías que consumen dichas anotaciones están a cargo de ocuparse de " +#~ "potenciales duplicados. Por ejemplo, si se está realizando un análisis de " +#~ "rango, esto se debería permitir::" + +#~ msgid "" +#~ "Passing ``include_extras=True`` to :func:`get_type_hints` lets one access " +#~ "the extra annotations at runtime." +#~ msgstr "" +#~ "Pasar ``include_extras=True`` a :func:`get_type_hints` permite acceder a " +#~ "las anotaciones extra en tiempo de ejecución." + +#~ msgid "" +#~ "A generic type is typically declared by inheriting from an instantiation " +#~ "of this class with one or more type variables. For example, a generic " +#~ "mapping type might be defined as::" +#~ msgstr "" +#~ "Un tipo genérico se declara habitualmente heredando de una instancia de " +#~ "esta clase con una o más variables de tipo. Por ejemplo, un tipo de mapeo " +#~ "genérico se podría definir como::" + +#~ msgid "" +#~ "At runtime, ``isinstance(x, T)`` will raise :exc:`TypeError`. In " +#~ "general, :func:`isinstance` and :func:`issubclass` should not be used " +#~ "with types." +#~ msgstr "" +#~ "En tiempo de ejecución, ``isinstance(x, T)`` lanzará una excepción :exc:" +#~ "`TypeError`. En general, :func:`isinstance` y :func:`issubclass` no se " +#~ "deben usar con variables de tipo." + +#~ msgid "" +#~ "Type variables may be marked covariant or contravariant by passing " +#~ "``covariant=True`` or ``contravariant=True``. See :pep:`484` for more " +#~ "details. By default, type variables are invariant." +#~ msgstr "" +#~ "Las variables de tipo pueden ser marcadas como covariantes o " +#~ "contravariantes pasando ``covariant=True`` o ``contravariant=True``, " +#~ "respectivamente. Véase :pep:`484` para más detalles. Por defecto, las " +#~ "variables de tipo son invariantes." + +#~ msgid "" +#~ "``AnyStr`` is a :class:`constrained type variable ` defined as " +#~ "``AnyStr = TypeVar('AnyStr', str, bytes)``." +#~ msgstr "" +#~ "``AnyStr`` es una :class:`constrained type variable ` definida " +#~ "como ``AnyStr = TypeVar('AnyStr', str, bytes)``." + +#~ msgid "" +#~ "It is meant to be used for functions that may accept any kind of string " +#~ "without allowing different kinds of strings to mix. For example::" +#~ msgstr "" +#~ "Su objetivo es ser usada por funciones que pueden aceptar cualquier tipo " +#~ "de cadena de texto sin permitir mezclar diferentes tipos al mismo tiempo. " +#~ "Por ejemplo::" + +#~ msgid "" +#~ "These are not used in annotations. They are building blocks for declaring " +#~ "types." +#~ msgstr "" +#~ "Estos no son utilizados en anotaciones. Son utilizados como bloques para " +#~ "crear tipos genéricos." + +#~ msgid "Generic concrete collections" +#~ msgstr "Colecciones genéricas concretas" + +#~ msgid "" +#~ "A generic version of :class:`dict`. Useful for annotating return types. " +#~ "To annotate arguments it is preferred to use an abstract collection type " +#~ "such as :class:`Mapping`." +#~ msgstr "" +#~ "Una versión genérica de :class:`dict`. Útil para anotar tipos de retorno. " +#~ "Para anotar argumentos es preferible usar un tipo abstracto de colección " +#~ "como :class:`Mapping`." + +#~ msgid "" +#~ "A generic version of :class:`builtins.set `. Useful for annotating " +#~ "return types. To annotate arguments it is preferred to use an abstract " +#~ "collection type such as :class:`AbstractSet`." +#~ msgstr "" +#~ "Una versión genérica de :class:`builtins.set `. Útil para anotar " +#~ "tipos de retornos. Para anotar argumentos es preferible usar un tipo " +#~ "abstracto de colección como :class:`AbstractSet`." + +#~ msgid ":data:`Tuple` is a special form." +#~ msgstr ":data:`Tuple` es una forma especial." + +#~ msgid "A generic version of :class:`collections.defaultdict`." +#~ msgstr "Una versión genérica de :class:`collections.defaultdict`." + +#~ msgid "A generic version of :class:`collections.OrderedDict`." +#~ msgstr "Una versión genérica de :class:`collections.OrderedDict`." + +#~ msgid "A generic version of :class:`collections.ChainMap`." +#~ msgstr "Una versión genérica de :class:`collections.ChainMap`." + +#~ msgid "A generic version of :class:`collections.Counter`." +#~ msgstr "Una versión genérica de :class:`collections.Counter`." + +#~ msgid "A generic version of :class:`collections.deque`." +#~ msgstr "Una versión genérica de :class:`collections.deque`." + +#~ msgid "Abstract Base Classes" +#~ msgstr "Clase base abstracta para tipos genéricos" + +#~ msgid "A generic version of :class:`collections.abc.Set`." +#~ msgstr "Una versión genérica de :class:`collections.abc.Set`." + +#~ msgid "A generic version of :class:`collections.abc.ByteString`." +#~ msgstr "Una versión genérica de :class:`collections.abc.ByteString`." + +#~ msgid "" +#~ "As a shorthand for this type, :class:`bytes` can be used to annotate " +#~ "arguments of any of the types mentioned above." +#~ msgstr "" +#~ "Como abreviación para este tipo, :class:`bytes` se puede usar para anotar " +#~ "argumentos de cualquiera de los tipos mencionados arriba." + +#~ msgid "" +#~ ":class:`collections.abc.ByteString` now supports subscripting (``[]``). " +#~ "See :pep:`585` and :ref:`types-genericalias`." +#~ msgstr "" +#~ ":class:`collections.abc.ByteString` ahora soporta la sintaxis de " +#~ "subíndice (``[]``). Véase :pep:`585` y :ref:`types-genericalias`." + +#~ msgid "A generic version of :class:`collections.abc.Collection`" +#~ msgstr "Una versión genérica de :class:`collections.abc.Collection`" + +#~ msgid "A generic version of :class:`collections.abc.Container`." +#~ msgstr "Una versión genérica de :class:`collections.abc.Container`." + +#~ msgid "A generic version of :class:`collections.abc.ItemsView`." +#~ msgstr "Una versión genérica de :class:`collections.abc.ItemsView`." + +#~ msgid "A generic version of :class:`collections.abc.KeysView`." +#~ msgstr "Una versión genérica de :class:`collections.abc.KeysView`." + +#~ msgid "" +#~ "A generic version of :class:`collections.abc.Mapping`. This type can be " +#~ "used as follows::" +#~ msgstr "" +#~ "Una versión genérica de :class:`collections.abc.Mapping`. Este tipo se " +#~ "puede usar de la siguiente manera::" + +#~ msgid "A generic version of :class:`collections.abc.MappingView`." +#~ msgstr "Una versión genérica de :class:`collections.abc.MappingView`." + +#~ msgid "A generic version of :class:`collections.abc.MutableMapping`." +#~ msgstr "Una versión genérica de :class:`collections.abc.MutableMapping`." + +#~ msgid "A generic version of :class:`collections.abc.MutableSequence`." +#~ msgstr "Una versión genérica de :class:`collections.abc.MutableSequence`." + +#~ msgid "A generic version of :class:`collections.abc.MutableSet`." +#~ msgstr "Una versión genérica de :class:`collections.abc.MutableSet`." + +#~ msgid "A generic version of :class:`collections.abc.Sequence`." +#~ msgstr "Una versión genérica de :class:`collections.abc.Sequence`." + +#~ msgid "A generic version of :class:`collections.abc.ValuesView`." +#~ msgstr "Una versión genérica de :class:`collections.abc.ValuesView`." + +#~ msgid "A generic version of :class:`collections.abc.Iterable`." +#~ msgstr "Una versión genérica de :class:`collections.abc.Iterable`." + +#~ msgid "A generic version of :class:`collections.abc.Iterator`." +#~ msgstr "Una versión genérica de :class:`collections.abc.Iterator`." + +#~ msgid "A generic version of :class:`collections.abc.Reversible`." +#~ msgstr "Una versión genérica de :class:`collections.abc.Reversible`." + +#~ msgid "Asynchronous programming" +#~ msgstr "Programación asíncrona" + +#~ msgid "A generic version of :class:`collections.abc.AsyncIterable`." +#~ msgstr "Una versión genérica de :class:`collections.abc.AsyncIterable`." + +#~ msgid "A generic version of :class:`collections.abc.AsyncIterator`." +#~ msgstr "Una versión genérica de :class:`collections.abc.AsyncIterator`." + +#~ msgid "A generic version of :class:`collections.abc.Awaitable`." +#~ msgstr "Una versión genérica de :class:`collections.abc.Awaitable`." + +#~ msgid "Context manager types" +#~ msgstr "Tipos del administrador de contextos" + +#~ msgid "" +#~ "``order_default`` indicates whether the ``order`` parameter is assumed to " +#~ "be True or False if it is omitted by the caller." +#~ msgstr "" +#~ "``order_default`` indica si, cuando el invocador haya omitido el " +#~ "parámetro ``order``, el valor de éste debe tomarse por ``True`` o " +#~ "``False``." + +#~ msgid "" +#~ "``kw_only_default`` indicates whether the ``kw_only`` parameter is " +#~ "assumed to be True or False if it is omitted by the caller." +#~ msgstr "" +#~ "``kw_only_default`` indica si, cuando el invocador haya omitido el " +#~ "parámetro ``kw_only``, el valor de éste debe tomarse por ``True`` o " +#~ "``False``." + +#~ msgid "``factory`` is an alias for ``default_factory``." +#~ msgstr "``factory`` es un alias para ``default_factory``." + +#~ msgid "" +#~ "The ``@overload`` decorator allows describing functions and methods that " +#~ "support multiple different combinations of argument types. A series of " +#~ "``@overload``-decorated definitions must be followed by exactly one non-" +#~ "``@overload``-decorated definition (for the same function/method). The " +#~ "``@overload``-decorated definitions are for the benefit of the type " +#~ "checker only, since they will be overwritten by the non-``@overload``-" +#~ "decorated definition, while the latter is used at runtime but should be " +#~ "ignored by a type checker. At runtime, calling a ``@overload``-decorated " +#~ "function directly will raise :exc:`NotImplementedError`. An example of " +#~ "overload that gives a more precise type than can be expressed using a " +#~ "union or a type variable::" +#~ msgstr "" +#~ "El decorador ``@overload`` permite describir funciones y métodos que " +#~ "soportan diferentes combinaciones de tipos de argumento. A una serie de " +#~ "definiciones decoradas con ``@overload`` debe seguir exactamente una " +#~ "definición no decorada con ``@overload`` (para la misma función o " +#~ "método). Las definiciones decoradas con ``@overload`` son solo para " +#~ "beneficio del validador de tipos, ya que serán sobrescritas por la " +#~ "definición no decorada con ``@overload``. Esta última se usa en tiempo de " +#~ "ejecución y debería ser ignorada por el validador de tipos. En tiempo de " +#~ "ejecución, llamar a una función decorada con ``@overload`` lanzará " +#~ "directamente :exc:`NotImplementedError`. Un ejemplo de sobrecarga que " +#~ "proporciona un tipo más preciso se puede expresar con una unión o una " +#~ "variable de tipo::" + +# ver en contexto +#~ msgid "This mutates the function(s) in place." +#~ msgstr "Esto modifica la función o funciones *in situ*." + +# special forms se refiere a tipado exclusivo de typing (no el nativo como str +# o int): Union, Optional ... +#~ msgid "" +#~ "Provide basic introspection for generic types and special typing forms." +#~ msgstr "" +#~ "Provee introspección básica para tipos genéricos y construcciones " +#~ "especiales de tipado." diff --git a/library/unicodedata.po b/library/unicodedata.po index 23762ec975..7194878c9c 100644 --- a/library/unicodedata.po +++ b/library/unicodedata.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-04 22:02+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/unicodedata.rst:2 msgid ":mod:`unicodedata` --- Unicode Database" @@ -30,8 +30,8 @@ msgstr ":mod:`unicodedata` --- Base de datos Unicode" msgid "" "This module provides access to the Unicode Character Database (UCD) which " "defines character properties for all Unicode characters. The data contained " -"in this database is compiled from the `UCD version 14.0.0 `_." +"in this database is compiled from the `UCD version 15.0.0 `_." msgstr "" "Este módulo proporciona acceso a la base de datos de caracteres Unicode " "(UCD), que define las propiedades de todos los caracteres Unicode. Los datos " @@ -265,10 +265,22 @@ msgstr "Notas al pie" #: ../Doc/library/unicodedata.rst:178 #, fuzzy -msgid "https://www.unicode.org/Public/14.0.0/ucd/NameAliases.txt" +msgid "https://www.unicode.org/Public/15.0.0/ucd/NameAliases.txt" msgstr "https://www.unicode.org/Public/13.0.0/ucd/NameAliases.txt" #: ../Doc/library/unicodedata.rst:180 #, fuzzy -msgid "https://www.unicode.org/Public/14.0.0/ucd/NamedSequences.txt" +msgid "https://www.unicode.org/Public/15.0.0/ucd/NamedSequences.txt" msgstr "https://www.unicode.org/Public/13.0.0/ucd/NamedSequences.txt" + +#: ../Doc/library/unicodedata.rst:11 +msgid "Unicode" +msgstr "" + +#: ../Doc/library/unicodedata.rst:11 +msgid "character" +msgstr "" + +#: ../Doc/library/unicodedata.rst:11 +msgid "database" +msgstr "" diff --git a/library/unittest.mock-examples.po b/library/unittest.mock-examples.po index f58189e98c..4f8be22b76 100644 --- a/library/unittest.mock-examples.po +++ b/library/unittest.mock-examples.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-04 17:03+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/unittest.mock-examples.rst:2 msgid ":mod:`unittest.mock` --- getting started" @@ -418,11 +418,22 @@ msgstr "" "de atributos arbitrarios, así como la obtención de ellos, entonces puede " "usar *spec_set* en lugar de *spec*." -#: ../Doc/library/unittest.mock-examples.rst:365 +#: ../Doc/library/unittest.mock-examples.rst:364 +msgid "Using side_effect to return per file content" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:366 +msgid "" +":func:`mock_open` is used to patch :func:`open` method. :attr:`~Mock." +"side_effect` can be used to return a new Mock object per call. This can be " +"used to return different contents per file stored in a dictionary::" +msgstr "" + +#: ../Doc/library/unittest.mock-examples.rst:389 msgid "Patch Decorators" msgstr "Decoradores de Parches" -#: ../Doc/library/unittest.mock-examples.rst:369 +#: ../Doc/library/unittest.mock-examples.rst:393 msgid "" "With :func:`patch` it matters that you patch objects in the namespace where " "they are looked up. This is normally straightforward, but for a quick guide " @@ -432,7 +443,7 @@ msgstr "" "se buscan. Esto es normalmente sencillo, pero para una guía rápida lea :ref:" "`where to patch `." -#: ../Doc/library/unittest.mock-examples.rst:374 +#: ../Doc/library/unittest.mock-examples.rst:398 msgid "" "A common need in tests is to patch a class attribute or a module attribute, " "for example patching a builtin or patching a class in a module to test that " @@ -447,7 +458,7 @@ msgstr "" "el parcheo en ellos tiene que deshacerse después de la prueba o el parche " "persistirá en otras pruebas y causará problemas difíciles de diagnosticar." -#: ../Doc/library/unittest.mock-examples.rst:380 +#: ../Doc/library/unittest.mock-examples.rst:404 msgid "" "mock provides three convenient decorators for this: :func:`patch`, :func:" "`patch.object` and :func:`patch.dict`. ``patch`` takes a single string, of " @@ -465,11 +476,11 @@ msgstr "" "objeto y el nombre del atributo con el que desea parchear, además, " "opcionalmente, del valor con el que parcharlo." -#: ../Doc/library/unittest.mock-examples.rst:388 +#: ../Doc/library/unittest.mock-examples.rst:412 msgid "``patch.object``::" msgstr "``patch.object``::" -#: ../Doc/library/unittest.mock-examples.rst:405 +#: ../Doc/library/unittest.mock-examples.rst:429 msgid "" "If you are patching a module (including :mod:`builtins`) then use :func:" "`patch` instead of :func:`patch.object`:" @@ -477,18 +488,18 @@ msgstr "" "Si está parcheando un módulo (incluyendo :mod:`builtins`) entonces use :func:" "`patch` en lugar de :func:`patch.object`:" -#: ../Doc/library/unittest.mock-examples.rst:415 +#: ../Doc/library/unittest.mock-examples.rst:439 msgid "" "The module name can be 'dotted', in the form ``package.module`` if needed::" msgstr "" "EL nombre del módulo puede ser 'dotted', en el formulario ``package.module`` " "si es necesario::" -#: ../Doc/library/unittest.mock-examples.rst:424 +#: ../Doc/library/unittest.mock-examples.rst:448 msgid "A nice pattern is to actually decorate test methods themselves:" msgstr "Un buen patrón en realidad es decorar los métodos de pruebas propios:" -#: ../Doc/library/unittest.mock-examples.rst:435 +#: ../Doc/library/unittest.mock-examples.rst:459 msgid "" "If you want to patch with a Mock, you can use :func:`patch` with only one " "argument (or :func:`patch.object` with two arguments). The mock will be " @@ -498,11 +509,11 @@ msgstr "" "argumento (o :func:`patch.object` con dos argumentos). El mock se creará " "para usted y se pasará a la función de prueba / método:" -#: ../Doc/library/unittest.mock-examples.rst:447 +#: ../Doc/library/unittest.mock-examples.rst:471 msgid "You can stack up multiple patch decorators using this pattern::" msgstr "Puede apilar varios decoradores de parches utilizando este patrón::" -#: ../Doc/library/unittest.mock-examples.rst:458 +#: ../Doc/library/unittest.mock-examples.rst:482 msgid "" "When you nest patch decorators the mocks are passed in to the decorated " "function in the same order they applied (the normal *Python* order that " @@ -515,7 +526,7 @@ msgstr "" "el ejemplo anterior el simulacro de ``test_module.ClassName2`` se pasa " "primero." -#: ../Doc/library/unittest.mock-examples.rst:463 +#: ../Doc/library/unittest.mock-examples.rst:487 msgid "" "There is also :func:`patch.dict` for setting values in a dictionary just " "during a scope and restoring the dictionary to its original state when the " @@ -525,7 +536,7 @@ msgstr "" "solo durante un ámbito y restaurar el diccionario a su estado original " "cuando finaliza la prueba:" -#: ../Doc/library/unittest.mock-examples.rst:474 +#: ../Doc/library/unittest.mock-examples.rst:498 msgid "" "``patch``, ``patch.object`` and ``patch.dict`` can all be used as context " "managers." @@ -533,7 +544,7 @@ msgstr "" "``patch``, ``patch.object`` and ``patch.dict`` se pueden utilizar como " "gestores de contexto." -#: ../Doc/library/unittest.mock-examples.rst:476 +#: ../Doc/library/unittest.mock-examples.rst:500 msgid "" "Where you use :func:`patch` to create a mock for you, you can get a " "reference to the mock using the \"as\" form of the with statement:" @@ -542,7 +553,7 @@ msgstr "" "obtener una referencia al simulacro utilizando la forma \"as\" de la " "instrucción with:" -#: ../Doc/library/unittest.mock-examples.rst:491 +#: ../Doc/library/unittest.mock-examples.rst:515 msgid "" "As an alternative ``patch``, ``patch.object`` and ``patch.dict`` can be used " "as class decorators. When used in this way it is the same as applying the " @@ -553,21 +564,21 @@ msgstr "" "mismo que aplicar el decorador individualmente a cada método cuyo nombre " "comienza con \"test\"." -#: ../Doc/library/unittest.mock-examples.rst:499 +#: ../Doc/library/unittest.mock-examples.rst:523 msgid "Further Examples" msgstr "Otros ejemplos" -#: ../Doc/library/unittest.mock-examples.rst:502 +#: ../Doc/library/unittest.mock-examples.rst:526 msgid "Here are some more examples for some slightly more advanced scenarios." msgstr "" "Estos son algunos ejemplos más para algunos escenarios ligeramente más " "avanzados." -#: ../Doc/library/unittest.mock-examples.rst:506 +#: ../Doc/library/unittest.mock-examples.rst:530 msgid "Mocking chained calls" msgstr "Mocking de llamadas encadenadas" -#: ../Doc/library/unittest.mock-examples.rst:508 +#: ../Doc/library/unittest.mock-examples.rst:532 msgid "" "Mocking chained calls is actually straightforward with mock once you " "understand the :attr:`~Mock.return_value` attribute. When a mock is called " @@ -579,7 +590,7 @@ msgstr "" "mock por primera vez, o se obtiene su ``return_value`` antes de que se " "llame, se crea un nuevo :class:`Mock`." -#: ../Doc/library/unittest.mock-examples.rst:513 +#: ../Doc/library/unittest.mock-examples.rst:537 msgid "" "This means that you can see how the object returned from a call to a mocked " "object has been used by interrogating the ``return_value`` mock:" @@ -587,7 +598,7 @@ msgstr "" "Esto significa que puede ver cómo se ha utilizado el objeto devuelto de una " "llamada a un objeto simulado interrogando el simulado ``return_value``:" -#: ../Doc/library/unittest.mock-examples.rst:521 +#: ../Doc/library/unittest.mock-examples.rst:545 msgid "" "From here it is a simple step to configure and then make assertions about " "chained calls. Of course another alternative is writing your code in a more " @@ -597,13 +608,13 @@ msgstr "" "llamadas encadenadas. Por supuesto, otra alternativa es escribir su código " "de una manera más comprobable en primer lugar..." -#: ../Doc/library/unittest.mock-examples.rst:525 +#: ../Doc/library/unittest.mock-examples.rst:549 msgid "So, suppose we have some code that looks a little bit like this:" msgstr "" "Por lo tanto, supongamos que tenemos algún código que se ve un poco como " "este:" -#: ../Doc/library/unittest.mock-examples.rst:534 +#: ../Doc/library/unittest.mock-examples.rst:558 msgid "" "Assuming that ``BackendProvider`` is already well tested, how do we test " "``method()``? Specifically, we want to test that the code section ``# more " @@ -613,7 +624,7 @@ msgstr "" "``method()``? En concreto, queremos probar que la sección de código ``# more " "code`` usa el objeto de respuesta de la manera correcta." -#: ../Doc/library/unittest.mock-examples.rst:538 +#: ../Doc/library/unittest.mock-examples.rst:562 msgid "" "As this chain of calls is made from an instance attribute we can monkey " "patch the ``backend`` attribute on a ``Something`` instance. In this " @@ -630,7 +641,7 @@ msgstr "" "'similar a un archivo', por lo que nos aseguraremos de que nuestro objeto de " "respuesta utilice el compilado :func:`open` as its ``spec``." -#: ../Doc/library/unittest.mock-examples.rst:545 +#: ../Doc/library/unittest.mock-examples.rst:569 msgid "" "To do this we create a mock instance as our mock backend and create a mock " "response object for it. To set the response as the return value for that " @@ -641,7 +652,7 @@ msgstr "" "como el valor devuelto de ese ``start_call`` final podríamos hacer lo " "siguiente::" -#: ../Doc/library/unittest.mock-examples.rst:551 +#: ../Doc/library/unittest.mock-examples.rst:575 msgid "" "We can do that in a slightly nicer way using the :meth:`~Mock." "configure_mock` method to directly set the return value for us::" @@ -650,7 +661,7 @@ msgstr "" "configure_mock` para establecer directamente el valor devuelto para " "nosotros::" -#: ../Doc/library/unittest.mock-examples.rst:560 +#: ../Doc/library/unittest.mock-examples.rst:584 msgid "" "With these we monkey patch the \"mock backend\" in place and can make the " "real call::" @@ -658,7 +669,7 @@ msgstr "" "Con estos monkey patch el \"backend simulado\" en su lugar y puede hacer la " "llamada real::" -#: ../Doc/library/unittest.mock-examples.rst:566 +#: ../Doc/library/unittest.mock-examples.rst:590 msgid "" "Using :attr:`~Mock.mock_calls` we can check the chained call with a single " "assert. A chained call is several calls in one line of code, so there will " @@ -670,17 +681,18 @@ msgstr "" "de código, por lo que habrá varias entradas en ``mock_calls``. Podemos usar :" "meth:`call.call_list` para crear esta lista de llamadas para nosotros::" -#: ../Doc/library/unittest.mock-examples.rst:577 +#: ../Doc/library/unittest.mock-examples.rst:601 msgid "Partial mocking" msgstr "Mocking parcial" -#: ../Doc/library/unittest.mock-examples.rst:579 +#: ../Doc/library/unittest.mock-examples.rst:603 +#, fuzzy msgid "" "In some tests I wanted to mock out a call to :meth:`datetime.date.today` to " "return a known date, but I didn't want to prevent the code under test from " "creating new date objects. Unfortunately :class:`datetime.date` is written " -"in C, and so I couldn't just monkey-patch out the static :meth:`date.today` " -"method." +"in C, and so I couldn't just monkey-patch out the static :meth:`datetime." +"date.today` method." msgstr "" "En algunas pruebas quería un mock de una llamada a :meth:`datetime.date." "today` para devolver una fecha conocida, pero no quería evitar que el código " @@ -688,7 +700,7 @@ msgstr "" "`datetime.date` está escrito en C, por lo que no podía simplemente parchear " "mono el método estático :meth:`date.today` ." -#: ../Doc/library/unittest.mock-examples.rst:584 +#: ../Doc/library/unittest.mock-examples.rst:608 msgid "" "I found a simple way of doing this that involved effectively wrapping the " "date class with a mock, but passing through calls to the constructor to the " @@ -698,12 +710,13 @@ msgstr "" "la clase date con un mock, pero pasar llamadas al constructor a la clase " "real (y devolver instancias reales)." -#: ../Doc/library/unittest.mock-examples.rst:588 +#: ../Doc/library/unittest.mock-examples.rst:612 +#, fuzzy msgid "" "The :func:`patch decorator ` is used here to mock out the ``date`` " -"class in the module under test. The :attr:`side_effect` attribute on the " -"mock date class is then set to a lambda function that returns a real date. " -"When the mock date class is called a real date will be constructed and " +"class in the module under test. The :attr:`~Mock.side_effect` attribute on " +"the mock date class is then set to a lambda function that returns a real " +"date. When the mock date class is called a real date will be constructed and " "returned by ``side_effect``. ::" msgstr "" "El :func:`patch decorator ` se utiliza aquí como un mock de la clase " @@ -712,7 +725,7 @@ msgstr "" "lambda que devuelve una fecha real. Cuando la clase de fecha simulada se " "denomina fecha real, se construirá y devolverá ``side_effect``. ::" -#: ../Doc/library/unittest.mock-examples.rst:602 +#: ../Doc/library/unittest.mock-examples.rst:626 msgid "" "Note that we don't patch :class:`datetime.date` globally, we patch ``date`` " "in the module that *uses* it. See :ref:`where to patch `." @@ -721,7 +734,7 @@ msgstr "" "parcheamos ``date`` en el módulo que *uses*. Consulte :ref:`where to patch " "`." -#: ../Doc/library/unittest.mock-examples.rst:605 +#: ../Doc/library/unittest.mock-examples.rst:629 msgid "" "When ``date.today()`` is called a known date is returned, but calls to the " "``date(...)`` constructor still return normal dates. Without this you can " @@ -734,7 +747,7 @@ msgstr "" "esperado utilizando exactamente el mismo algoritmo que el código en prueba, " "que es un anti-patrón de prueba clásico." -#: ../Doc/library/unittest.mock-examples.rst:610 +#: ../Doc/library/unittest.mock-examples.rst:634 msgid "" "Calls to the date constructor are recorded in the ``mock_date`` attributes " "(``call_count`` and friends) which may also be useful for your tests." @@ -743,7 +756,7 @@ msgstr "" "``mock_date`` (``call_count`` y amigos) que también pueden ser útiles para " "las pruebas." -#: ../Doc/library/unittest.mock-examples.rst:613 +#: ../Doc/library/unittest.mock-examples.rst:637 msgid "" "An alternative way of dealing with mocking dates, or other builtin classes, " "is discussed in `this blog entry `_." -#: ../Doc/library/unittest.mock-examples.rst:619 +#: ../Doc/library/unittest.mock-examples.rst:643 msgid "Mocking a Generator Method" msgstr "Mocking de un método generador" -#: ../Doc/library/unittest.mock-examples.rst:621 +#: ../Doc/library/unittest.mock-examples.rst:645 msgid "" "A Python generator is a function or method that uses the :keyword:`yield` " "statement to return a series of values when iterated over [#]_." @@ -766,7 +779,7 @@ msgstr "" "keyword:`yield` para devolver una serie de valores cuando se itera sobre " "[#]_." -#: ../Doc/library/unittest.mock-examples.rst:624 +#: ../Doc/library/unittest.mock-examples.rst:648 msgid "" "A generator method / function is called to return the generator object. It " "is the generator object that is then iterated over. The protocol method for " @@ -778,19 +791,19 @@ msgstr "" "para la iteración es :meth:`~container.__iter__`, por lo que podemos hacer " "mock de esto usando una :class:`MagicMock`." -#: ../Doc/library/unittest.mock-examples.rst:629 +#: ../Doc/library/unittest.mock-examples.rst:653 msgid "" "Here's an example class with an \"iter\" method implemented as a generator:" msgstr "" "Aquí hay una clase de ejemplo con un método \"iter\" implementado como " "generador:" -#: ../Doc/library/unittest.mock-examples.rst:641 +#: ../Doc/library/unittest.mock-examples.rst:665 msgid "How would we mock this class, and in particular its \"iter\" method?" msgstr "" "¿Cómo haríamos un mock de esta clase y, en particular, de su método \"iter\"?" -#: ../Doc/library/unittest.mock-examples.rst:643 +#: ../Doc/library/unittest.mock-examples.rst:667 msgid "" "To configure the values returned from the iteration (implicit in the call " "to :class:`list`), we need to configure the object returned by the call to " @@ -800,7 +813,7 @@ msgstr "" "llamada a :class:`list`), necesitamos configurar el objeto devuelto por la " "llamada a ``foo.iter()``." -#: ../Doc/library/unittest.mock-examples.rst:651 +#: ../Doc/library/unittest.mock-examples.rst:675 msgid "" "There are also generator expressions and more `advanced uses `_ of generators, but we aren't concerned " @@ -814,11 +827,11 @@ msgstr "" "son es: `Generator Tricks for Systems Programmers `_." -#: ../Doc/library/unittest.mock-examples.rst:659 +#: ../Doc/library/unittest.mock-examples.rst:683 msgid "Applying the same patch to every test method" msgstr "Aplicar el mismo parche a cada método de prueba" -#: ../Doc/library/unittest.mock-examples.rst:661 +#: ../Doc/library/unittest.mock-examples.rst:685 #, fuzzy msgid "" "If you want several patches in place for multiple test methods the obvious " @@ -836,7 +849,7 @@ msgstr "" "clase. Un método de prueba se identifica mediante métodos cuyos nombres " "comienzan con ``test``::" -#: ../Doc/library/unittest.mock-examples.rst:685 +#: ../Doc/library/unittest.mock-examples.rst:709 msgid "" "An alternative way of managing patches is to use the :ref:`start-and-stop`. " "These allow you to move the patching into your ``setUp`` and ``tearDown`` " @@ -845,7 +858,7 @@ msgstr "" "Una forma alternativa de administrar parches es usar :ref:`start-and-stop`. " "Estos le permiten mover el parche en sus métodos ``setUp`` y ``tearDown``. ::" -#: ../Doc/library/unittest.mock-examples.rst:702 +#: ../Doc/library/unittest.mock-examples.rst:726 msgid "" "If you use this technique you must ensure that the patching is \"undone\" by " "calling ``stop``. This can be fiddlier than you might think, because if an " @@ -857,11 +870,11 @@ msgstr "" "podría pensar, porque si se produce una excepción en el setUp, no se llama a " "tearDown. :meth:`unittest.TestCase.addCleanup` hace que esto sea más fácil::" -#: ../Doc/library/unittest.mock-examples.rst:720 +#: ../Doc/library/unittest.mock-examples.rst:744 msgid "Mocking Unbound Methods" msgstr "Mocking de métodos sin enlazar" -#: ../Doc/library/unittest.mock-examples.rst:722 +#: ../Doc/library/unittest.mock-examples.rst:746 msgid "" "Whilst writing tests today I needed to patch an *unbound method* (patching " "the method on the class rather than on the instance). I needed self to be " @@ -886,7 +899,7 @@ msgstr "" "parchear métodos con un mock que tener que crear una función real se " "convierte en una molestia." -#: ../Doc/library/unittest.mock-examples.rst:733 +#: ../Doc/library/unittest.mock-examples.rst:757 msgid "" "If you pass ``autospec=True`` to patch then it does the patching with a " "*real* function object. This function object has the same signature as the " @@ -906,7 +919,7 @@ msgstr "" "enlazado si se obtiene de una instancia. Tendrá ``self`` pasado como el " "primer argumento, que es exactamente lo que quería:" -#: ../Doc/library/unittest.mock-examples.rst:754 +#: ../Doc/library/unittest.mock-examples.rst:778 msgid "" "If we don't use ``autospec=True`` then the unbound method is patched out " "with a Mock instance instead, and isn't called with ``self``." @@ -914,11 +927,11 @@ msgstr "" "Si no usamos ``autospec=True`` entonces el método independiente se parchea " "con una instancia de Mock en su lugar, y no se llama con ``self``." -#: ../Doc/library/unittest.mock-examples.rst:759 +#: ../Doc/library/unittest.mock-examples.rst:783 msgid "Checking multiple calls with mock" msgstr "Comprobación de varias llamadas con mock" -#: ../Doc/library/unittest.mock-examples.rst:761 +#: ../Doc/library/unittest.mock-examples.rst:785 msgid "" "mock has a nice API for making assertions about how your mock objects are " "used." @@ -926,16 +939,17 @@ msgstr "" "mock tiene una buena API para hacer aserciones sobre cómo se usan sus " "objetos ficticios." -#: ../Doc/library/unittest.mock-examples.rst:768 +#: ../Doc/library/unittest.mock-examples.rst:792 +#, fuzzy msgid "" -"If your mock is only being called once you can use the :meth:" -"`assert_called_once_with` method that also asserts that the :attr:" -"`call_count` is one." +"If your mock is only being called once you can use the :meth:`~Mock." +"assert_called_once_with` method that also asserts that the :attr:`~Mock." +"call_count` is one." msgstr "" "Si su mock solo se llama una vez, puede usar el método :meth:" "`assert_called_once_with` que también afirma que :attr:`call_count` es uno." -#: ../Doc/library/unittest.mock-examples.rst:779 +#: ../Doc/library/unittest.mock-examples.rst:803 msgid "" "Both ``assert_called_with`` and ``assert_called_once_with`` make assertions " "about the *most recent* call. If your mock is going to be called several " @@ -947,7 +961,7 @@ msgstr "" "varias veces, y desea hacer aserciones sobre *todas* esas llamadas que puede " "utilizar :attr:`~Mock.call_args_list`:" -#: ../Doc/library/unittest.mock-examples.rst:791 +#: ../Doc/library/unittest.mock-examples.rst:815 msgid "" "The :data:`call` helper makes it easy to make assertions about these calls. " "You can build up a list of expected calls and compare it to " @@ -959,11 +973,11 @@ msgstr "" "``call_args_list``. Esto se ve notablemente similar al repr de la " "``call_args_list``:" -#: ../Doc/library/unittest.mock-examples.rst:801 +#: ../Doc/library/unittest.mock-examples.rst:825 msgid "Coping with mutable arguments" msgstr "Copiando con argumentos mutables" -#: ../Doc/library/unittest.mock-examples.rst:803 +#: ../Doc/library/unittest.mock-examples.rst:827 msgid "" "Another situation is rare, but can bite you, is when your mock is called " "with mutable arguments. ``call_args`` and ``call_args_list`` store " @@ -977,7 +991,7 @@ msgstr "" "argumentos ya no puede realizar aserciones sobre cuáles eran los valores " "cuando se llamó al mock." -#: ../Doc/library/unittest.mock-examples.rst:808 +#: ../Doc/library/unittest.mock-examples.rst:832 msgid "" "Here's some example code that shows the problem. Imagine the following " "functions defined in 'mymodule'::" @@ -985,7 +999,7 @@ msgstr "" "Este es un código de ejemplo que muestra el problema. Imagine las siguientes " "funciones definidas en 'mymodule'::" -#: ../Doc/library/unittest.mock-examples.rst:819 +#: ../Doc/library/unittest.mock-examples.rst:843 msgid "" "When we try to test that ``grob`` calls ``frob`` with the correct argument " "look what happens::" @@ -993,7 +1007,7 @@ msgstr "" "Cuando tratamos de probar que ``grob`` llama ``frob`` con el argumento " "correcto mira lo que sucede::" -#: ../Doc/library/unittest.mock-examples.rst:834 +#: ../Doc/library/unittest.mock-examples.rst:858 msgid "" "One possibility would be for mock to copy the arguments you pass in. This " "could then cause problems if you do assertions that rely on object identity " @@ -1003,14 +1017,16 @@ msgstr "" "podría causar problemas si realiza aserciones que se basan en la identidad " "del objeto para la igualdad." -#: ../Doc/library/unittest.mock-examples.rst:838 +#: ../Doc/library/unittest.mock-examples.rst:862 +#, fuzzy msgid "" -"Here's one solution that uses the :attr:`side_effect` functionality. If you " -"provide a ``side_effect`` function for a mock then ``side_effect`` will be " -"called with the same args as the mock. This gives us an opportunity to copy " -"the arguments and store them for later assertions. In this example I'm using " -"*another* mock to store the arguments so that I can use the mock methods for " -"doing the assertion. Again a helper function sets this up for me. ::" +"Here's one solution that uses the :attr:`~Mock.side_effect` functionality. " +"If you provide a ``side_effect`` function for a mock then ``side_effect`` " +"will be called with the same args as the mock. This gives us an opportunity " +"to copy the arguments and store them for later assertions. In this example " +"I'm using *another* mock to store the arguments so that I can use the mock " +"methods for doing the assertion. Again a helper function sets this up for " +"me. ::" msgstr "" "Aquí hay una solución que utiliza la funcionalidad :attr:`side_effect`. Si " "proporciona una función ``side_effect`` para un mock, se llamará a " @@ -1020,7 +1036,7 @@ msgstr "" "argumentos de modo que pueda usar los métodos ficticios para hacer la " "aserción. Una vez más, una función auxiliar configura esto para mí. ::" -#: ../Doc/library/unittest.mock-examples.rst:867 +#: ../Doc/library/unittest.mock-examples.rst:891 msgid "" "``copy_call_args`` is called with the mock that will be called. It returns a " "new mock that we do the assertion on. The ``side_effect`` function makes a " @@ -1030,7 +1046,7 @@ msgstr "" "mock en el que hacemos la aserción. La función ``side_effect`` hace una " "copia de los args y llama a nuestro ``new_mock`` con la copia." -#: ../Doc/library/unittest.mock-examples.rst:873 +#: ../Doc/library/unittest.mock-examples.rst:897 msgid "" "If your mock is only going to be used once there is an easier way of " "checking arguments at the point they are called. You can simply do the " @@ -1040,7 +1056,7 @@ msgstr "" "verificar los argumentos en el punto en que se llaman. Simplemente puede " "hacer la comprobación dentro de una función ``side_effect``." -#: ../Doc/library/unittest.mock-examples.rst:887 +#: ../Doc/library/unittest.mock-examples.rst:911 msgid "" "An alternative approach is to create a subclass of :class:`Mock` or :class:" "`MagicMock` that copies (using :func:`copy.deepcopy`) the arguments. Here's " @@ -1050,7 +1066,7 @@ msgstr "" "`MagicMock` que copie (usando :func:`copy.deepcopy`) los argumentos. A " "continuación se muestra un ejemplo de implementación:" -#: ../Doc/library/unittest.mock-examples.rst:911 +#: ../Doc/library/unittest.mock-examples.rst:935 msgid "" "When you subclass ``Mock`` or ``MagicMock`` all dynamically created " "attributes, and the ``return_value`` will use your subclass automatically. " @@ -1062,11 +1078,11 @@ msgstr "" "significa que todos los elementos secundarios de un ``CopyingMock`` también " "tendrán el tipo ``CopyingMock``." -#: ../Doc/library/unittest.mock-examples.rst:917 +#: ../Doc/library/unittest.mock-examples.rst:941 msgid "Nesting Patches" msgstr "Anidando parches" -#: ../Doc/library/unittest.mock-examples.rst:919 +#: ../Doc/library/unittest.mock-examples.rst:943 msgid "" "Using patch as a context manager is nice, but if you do multiple patches you " "can end up with nested with statements indenting further and further to the " @@ -1076,7 +1092,7 @@ msgstr "" "parches, puedes terminar con instrucciones anidadas que se sangran cada vez " "más a la derecha::" -#: ../Doc/library/unittest.mock-examples.rst:937 +#: ../Doc/library/unittest.mock-examples.rst:961 msgid "" "With unittest ``cleanup`` functions and the :ref:`start-and-stop` we can " "achieve the same effect without the nested indentation. A simple helper " @@ -1088,11 +1104,11 @@ msgstr "" "``create_patch``, pone el parche en su lugar y devuelve el mock creado para " "nosotros::" -#: ../Doc/library/unittest.mock-examples.rst:965 +#: ../Doc/library/unittest.mock-examples.rst:989 msgid "Mocking a dictionary with MagicMock" msgstr "Mocking a un diccionario usando MagickMock" -#: ../Doc/library/unittest.mock-examples.rst:967 +#: ../Doc/library/unittest.mock-examples.rst:991 msgid "" "You may want to mock a dictionary, or other container object, recording all " "access to it whilst having it still behave like a dictionary." @@ -1101,7 +1117,7 @@ msgstr "" "registrando todo el acceso a él mientras todavía se comporta como un " "diccionario." -#: ../Doc/library/unittest.mock-examples.rst:970 +#: ../Doc/library/unittest.mock-examples.rst:994 msgid "" "We can do this with :class:`MagicMock`, which will behave like a dictionary, " "and using :data:`~Mock.side_effect` to delegate dictionary access to a real " @@ -1111,19 +1127,20 @@ msgstr "" "diccionario, y usando :data:`~Mock.side_effect` para delegar el acceso del " "diccionario a un diccionario subyacente real que está bajo nuestro control." -#: ../Doc/library/unittest.mock-examples.rst:974 +#: ../Doc/library/unittest.mock-examples.rst:998 +#, fuzzy msgid "" -"When the :meth:`__getitem__` and :meth:`__setitem__` methods of our " -"``MagicMock`` are called (normal dictionary access) then ``side_effect`` is " -"called with the key (and in the case of ``__setitem__`` the value too). We " -"can also control what is returned." +"When the :meth:`~object.__getitem__` and :meth:`~object.__setitem__` methods " +"of our ``MagicMock`` are called (normal dictionary access) then " +"``side_effect`` is called with the key (and in the case of ``__setitem__`` " +"the value too). We can also control what is returned." msgstr "" "Cuando se llama a los métodos :meth:`__getitem__` y :meth:`__setitem__` de " "nuestro ``MagicMock`` (acceso normal al diccionario), entonces se llama a " "``side_effect`` con la clave (y en el caso de ``__setitem__`` el valor " "también). También podemos controlar lo que se devuelve." -#: ../Doc/library/unittest.mock-examples.rst:978 +#: ../Doc/library/unittest.mock-examples.rst:1003 msgid "" "After the ``MagicMock`` has been used we can use attributes like :data:" "`~Mock.call_args_list` to assert about how the dictionary was used:" @@ -1131,7 +1148,7 @@ msgstr "" "Después de que se haya utilizado el ``MagicMock`` podemos usar atributos " "como :data:`~Mock.call_args_list` para afirmar cómo se usó el diccionario:" -#: ../Doc/library/unittest.mock-examples.rst:994 +#: ../Doc/library/unittest.mock-examples.rst:1019 msgid "" "An alternative to using ``MagicMock`` is to use ``Mock`` and *only* provide " "the magic methods you specifically want:" @@ -1139,7 +1156,7 @@ msgstr "" "Una alternativa al uso de ``MagicMock`` es usar ``Mock`` y *solo* " "proporcionar los métodos mágicos que desea específicamente:" -#: ../Doc/library/unittest.mock-examples.rst:1001 +#: ../Doc/library/unittest.mock-examples.rst:1026 msgid "" "A *third* option is to use ``MagicMock`` but passing in ``dict`` as the " "*spec* (or *spec_set*) argument so that the ``MagicMock`` created only has " @@ -1149,7 +1166,7 @@ msgstr "" "argumento *spec* (o *spec_set*) para que el ``MagicMock`` creado solo tenga " "métodos mágicos de diccionario disponibles:" -#: ../Doc/library/unittest.mock-examples.rst:1009 +#: ../Doc/library/unittest.mock-examples.rst:1034 msgid "" "With these side effect functions in place, the ``mock`` will behave like a " "normal dictionary but recording the access. It even raises a :exc:`KeyError` " @@ -1159,7 +1176,7 @@ msgstr "" "comportará como un diccionario normal pero registrando el acceso. Incluso " "genera un :exc:`KeyError` si intenta acceder a una clave que no existe." -#: ../Doc/library/unittest.mock-examples.rst:1028 +#: ../Doc/library/unittest.mock-examples.rst:1053 msgid "" "After it has been used you can make assertions about the access using the " "normal mock methods and attributes:" @@ -1167,11 +1184,11 @@ msgstr "" "Una vez utilizado, puede realizar aserciones sobre el acceso utilizando los " "métodos y atributos mock normales:" -#: ../Doc/library/unittest.mock-examples.rst:1040 +#: ../Doc/library/unittest.mock-examples.rst:1065 msgid "Mock subclasses and their attributes" msgstr "Mock de subclases y sus atributos" -#: ../Doc/library/unittest.mock-examples.rst:1042 +#: ../Doc/library/unittest.mock-examples.rst:1067 msgid "" "There are various reasons why you might want to subclass :class:`Mock`. One " "reason might be to add helper methods. Here's a silly example:" @@ -1180,7 +1197,7 @@ msgstr "" "`Mock` Una razón podría ser agregar métodos auxiliares. Aquí hay un ejemplo " "simple:" -#: ../Doc/library/unittest.mock-examples.rst:1058 +#: ../Doc/library/unittest.mock-examples.rst:1083 msgid "" "The standard behaviour for ``Mock`` instances is that attributes and the " "return value mocks are of the same type as the mock they are accessed on. " @@ -1197,13 +1214,13 @@ msgstr "" "estarán disponibles en los atributos y el valor devuelto mock de las " "instancias de su subclase." -#: ../Doc/library/unittest.mock-examples.rst:1074 +#: ../Doc/library/unittest.mock-examples.rst:1099 +#, fuzzy msgid "" "Sometimes this is inconvenient. For example, `one user `_ is subclassing mock to created a `Twisted " -"adaptor `_. Having this applied to attributes too actually causes " -"errors." +"adaptor `_. Having this applied to attributes too actually causes errors." msgstr "" "A veces esto es inconveniente. Por ejemplo, `un usuario `_ está creando subclases de mock para crear " @@ -1211,7 +1228,7 @@ msgstr "" "python.components.html>`_. Tener esto aplicado a los atributos también puede " "causar errores en realidad." -#: ../Doc/library/unittest.mock-examples.rst:1080 +#: ../Doc/library/unittest.mock-examples.rst:1105 msgid "" "``Mock`` (in all its flavours) uses a method called ``_get_child_mock`` to " "create these \"sub-mocks\" for attributes and return values. You can prevent " @@ -1225,7 +1242,7 @@ msgstr "" "invalidando este método. La firma es que toma argumentos de palabra clave " "arbitrarios (``**kwargs``) que luego se pasan al constructor ficticio:" -#: ../Doc/library/unittest.mock-examples.rst:1097 +#: ../Doc/library/unittest.mock-examples.rst:1122 msgid "" "An exception to this rule are the non-callable mocks. Attributes use the " "callable variant because otherwise non-callable mocks couldn't have callable " @@ -1236,11 +1253,11 @@ msgstr "" "los que no se puede llamar no podrían tener métodos a los que se puede " "llamar." -#: ../Doc/library/unittest.mock-examples.rst:1103 +#: ../Doc/library/unittest.mock-examples.rst:1128 msgid "Mocking imports with patch.dict" msgstr "Importaciones de Mocking con patch.dict" -#: ../Doc/library/unittest.mock-examples.rst:1105 +#: ../Doc/library/unittest.mock-examples.rst:1130 msgid "" "One situation where mocking can be hard is where you have a local import " "inside a function. These are harder to mock because they aren't using an " @@ -1251,7 +1268,7 @@ msgstr "" "porque no están usando un objeto del espacio de nombres del módulo que " "podemos revisar." -#: ../Doc/library/unittest.mock-examples.rst:1109 +#: ../Doc/library/unittest.mock-examples.rst:1134 msgid "" "Generally local imports are to be avoided. They are sometimes done to " "prevent circular dependencies, for which there is *usually* a much better " @@ -1268,7 +1285,7 @@ msgstr "" "(almacenar el módulo como una clase o atributo de módulo y solo hacer la " "importación en el primer uso)." -#: ../Doc/library/unittest.mock-examples.rst:1116 +#: ../Doc/library/unittest.mock-examples.rst:1141 #, fuzzy msgid "" "That aside there is a way to use ``mock`` to affect the results of an " @@ -1286,7 +1303,7 @@ msgstr "" "cuando importa algo, recupera un módulo. Sin embargo, este no tiene por qué " "ser el caso." -#: ../Doc/library/unittest.mock-examples.rst:1123 +#: ../Doc/library/unittest.mock-examples.rst:1148 msgid "" "This means you can use :func:`patch.dict` to *temporarily* put a mock in " "place in :data:`sys.modules`. Any imports whilst this patch is active will " @@ -1301,11 +1318,11 @@ msgstr "" "completo o se llama a ``patcher.stop()``) entonces lo que había " "anteriormente se restaurará de forma segura." -#: ../Doc/library/unittest.mock-examples.rst:1129 +#: ../Doc/library/unittest.mock-examples.rst:1154 msgid "Here's an example that mocks out the 'fooble' module." msgstr "Aquí hay un ejemplo de mock del módulo 'fooble'." -#: ../Doc/library/unittest.mock-examples.rst:1141 +#: ../Doc/library/unittest.mock-examples.rst:1166 msgid "" "As you can see the ``import fooble`` succeeds, but on exit there is no " "'fooble' left in :data:`sys.modules`." @@ -1313,23 +1330,23 @@ msgstr "" "Como puede ver, el ``import fooble`` tiene éxito, pero al salir no queda " "ningún 'fooble' en :data:`sys.modules`." -#: ../Doc/library/unittest.mock-examples.rst:1144 +#: ../Doc/library/unittest.mock-examples.rst:1169 msgid "This also works for the ``from module import name`` form:" msgstr "Esto también funciona para el formulario ``from module import name``:" -#: ../Doc/library/unittest.mock-examples.rst:1154 +#: ../Doc/library/unittest.mock-examples.rst:1179 msgid "With slightly more work you can also mock package imports:" msgstr "" "Con un poco más de trabajo también puede simular las importaciones de " "paquetes:" -#: ../Doc/library/unittest.mock-examples.rst:1167 +#: ../Doc/library/unittest.mock-examples.rst:1192 msgid "Tracking order of calls and less verbose call assertions" msgstr "" "Seguimiento del orden de las llamadas y de las aserciones de llamadas menos " "detalladas" -#: ../Doc/library/unittest.mock-examples.rst:1169 +#: ../Doc/library/unittest.mock-examples.rst:1194 msgid "" "The :class:`Mock` class allows you to track the *order* of method calls on " "your mock objects through the :attr:`~Mock.method_calls` attribute. This " @@ -1342,7 +1359,7 @@ msgstr "" "objetos simulados separados, sin embargo, podemos usar :attr:`~Mock." "mock_calls` para lograr el mismo efecto." -#: ../Doc/library/unittest.mock-examples.rst:1174 +#: ../Doc/library/unittest.mock-examples.rst:1199 msgid "" "Because mocks track calls to child mocks in ``mock_calls``, and accessing an " "arbitrary attribute of a mock creates a child mock, we can create our " @@ -1355,7 +1372,7 @@ msgstr "" "llamadas a esos mocks hijos se grabarán, en orden, en el ``mock_calls`` del " "padre:" -#: ../Doc/library/unittest.mock-examples.rst:1191 +#: ../Doc/library/unittest.mock-examples.rst:1216 msgid "" "We can then assert about the calls, including the order, by comparing with " "the ``mock_calls`` attribute on the manager mock:" @@ -1363,7 +1380,7 @@ msgstr "" "A continuación, podemos realizar afirmaciones sobre las llamadas, incluido " "el orden, comparando con el atributo ``mock_calls`` en el mock administrador:" -#: ../Doc/library/unittest.mock-examples.rst:1198 +#: ../Doc/library/unittest.mock-examples.rst:1223 msgid "" "If ``patch`` is creating, and putting in place, your mocks then you can " "attach them to a manager mock using the :meth:`~Mock.attach_mock` method. " @@ -1374,7 +1391,7 @@ msgstr "" "attach_mock` . Después de adjuntar las llamadas se registrarán en " "``mock_calls`` del administrador. ::" -#: ../Doc/library/unittest.mock-examples.rst:1217 +#: ../Doc/library/unittest.mock-examples.rst:1242 msgid "" "If many calls have been made, but you're only interested in a particular " "sequence of them then an alternative is to use the :meth:`~Mock." @@ -1388,7 +1405,7 @@ msgstr "" "con el objeto :data:`call`). Si esa secuencia de llamadas sobre :attr:`~Mock." "mock_calls`, la aserción se realiza correctamente." -#: ../Doc/library/unittest.mock-examples.rst:1231 +#: ../Doc/library/unittest.mock-examples.rst:1256 msgid "" "Even though the chained call ``m.one().two().three()`` aren't the only calls " "that have been made to the mock, the assert still succeeds." @@ -1396,7 +1413,7 @@ msgstr "" "Aunque la llamada encadenada ``m.one().two().three()`` no son las únicas " "llamadas que se han realizado al mock, la aserción aún tiene éxito." -#: ../Doc/library/unittest.mock-examples.rst:1234 +#: ../Doc/library/unittest.mock-examples.rst:1259 msgid "" "Sometimes a mock may have several calls made to it, and you are only " "interested in asserting about *some* of those calls. You may not even care " @@ -1407,11 +1424,11 @@ msgstr "" "sobre *algunas* de esas llamadas. Puede que ni siquiera importe el pedido. " "En este caso, puede pasar ``any_order=True`` a ``assert_has_calls``:" -#: ../Doc/library/unittest.mock-examples.rst:1246 +#: ../Doc/library/unittest.mock-examples.rst:1271 msgid "More complex argument matching" msgstr "Coincidencia de argumentos más compleja" -#: ../Doc/library/unittest.mock-examples.rst:1248 +#: ../Doc/library/unittest.mock-examples.rst:1273 msgid "" "Using the same basic concept as :data:`ANY` we can implement matchers to do " "more complex assertions on objects used as arguments to mocks." @@ -1420,7 +1437,7 @@ msgstr "" "comparadores para hacer afirmaciones más complejas en objetos usados como " "argumentos para mocks." -#: ../Doc/library/unittest.mock-examples.rst:1251 +#: ../Doc/library/unittest.mock-examples.rst:1276 msgid "" "Suppose we expect some object to be passed to a mock that by default " "compares equal based on object identity (which is the Python default for " @@ -1437,7 +1454,7 @@ msgstr "" "este objeto, podemos crear un comparador que verifique estos atributos por " "nosotros." -#: ../Doc/library/unittest.mock-examples.rst:1258 +#: ../Doc/library/unittest.mock-examples.rst:1283 msgid "" "You can see in this example how a 'standard' call to ``assert_called_with`` " "isn't sufficient:" @@ -1445,13 +1462,13 @@ msgstr "" "Puede ver en este ejemplo cómo una llamada 'estándar' a " "``assert_called_with`` no es suficiente:" -#: ../Doc/library/unittest.mock-examples.rst:1273 +#: ../Doc/library/unittest.mock-examples.rst:1298 msgid "" "A comparison function for our ``Foo`` class might look something like this:" msgstr "" "Una función de comparación para nuestra clase ``Foo`` podría verse así:" -#: ../Doc/library/unittest.mock-examples.rst:1285 +#: ../Doc/library/unittest.mock-examples.rst:1310 msgid "" "And a matcher object that can use comparison functions like this for its " "equality operation would look something like this:" @@ -1459,11 +1476,11 @@ msgstr "" "Y un objeto comparador que puede usar funciones de comparación como esta " "para su operación de igualdad se vería así:" -#: ../Doc/library/unittest.mock-examples.rst:1296 +#: ../Doc/library/unittest.mock-examples.rst:1321 msgid "Putting all this together:" msgstr "Poniendo todo esto junto:" -#: ../Doc/library/unittest.mock-examples.rst:1301 +#: ../Doc/library/unittest.mock-examples.rst:1326 msgid "" "The ``Matcher`` is instantiated with our compare function and the ``Foo`` " "object we want to compare against. In ``assert_called_with`` the ``Matcher`` " @@ -1479,7 +1496,7 @@ msgstr "" "``assert_called_with``, y si no lo hacen, se lanzará un :exc:" "`AssertionError`:" -#: ../Doc/library/unittest.mock-examples.rst:1314 +#: ../Doc/library/unittest.mock-examples.rst:1339 msgid "" "With a bit of tweaking you could have the comparison function raise the :exc:" "`AssertionError` directly and provide a more useful failure message." @@ -1487,7 +1504,7 @@ msgstr "" "Con un poco de ajuste, podría hacer que la función de comparación genere el :" "exc:`AssertionError` directamente y proporcione un mensaje de falla más útil." -#: ../Doc/library/unittest.mock-examples.rst:1317 +#: ../Doc/library/unittest.mock-examples.rst:1342 msgid "" "As of version 1.5, the Python testing library `PyHamcrest `_ provides similar functionality, that may be " diff --git a/library/unittest.mock.po b/library/unittest.mock.po index 2b9c2e0175..09103e06b1 100644 --- a/library/unittest.mock.po +++ b/library/unittest.mock.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-05-02 21:52-0600\n" "Last-Translator: Pedro Aarón \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/unittest.mock.rst:3 msgid ":mod:`unittest.mock` --- mock object library" @@ -113,7 +112,7 @@ msgstr "" ":attr:`side_effect` te permite implementar efectos colaterales, lo que " "incluye lanzar una excepción cuando se llama a un objeto simulado:" -#: ../Doc/library/unittest.mock.rst:92 +#: ../Doc/library/unittest.mock.rst:93 msgid "" "Mock has many other ways you can configure it and control its behaviour. For " "example the *spec* argument configures the mock to take its specification " @@ -126,7 +125,7 @@ msgstr "" "atributos o métodos en el objeto simulado que no existan en la " "especificación fallará lanzando una excepción :exc:`AttributeError`." -#: ../Doc/library/unittest.mock.rst:97 +#: ../Doc/library/unittest.mock.rst:98 msgid "" "The :func:`patch` decorator / context manager makes it easy to mock classes " "or objects in a module under test. The object you specify will be replaced " @@ -138,7 +137,7 @@ msgstr "" "reemplazado por un objeto simulado (u otro objeto) durante la prueba y será " "restaurado cuando esta finalice:" -#: ../Doc/library/unittest.mock.rst:116 +#: ../Doc/library/unittest.mock.rst:117 msgid "" "When you nest patch decorators the mocks are passed in to the decorated " "function in the same order they applied (the normal *Python* order that " @@ -151,7 +150,7 @@ msgstr "" "arriba, por lo que en el ejemplo anterior se pasa primero el objeto simulado " "para ``module.ClassName1``." -#: ../Doc/library/unittest.mock.rst:121 +#: ../Doc/library/unittest.mock.rst:122 msgid "" "With :func:`patch` it matters that you patch objects in the namespace where " "they are looked up. This is normally straightforward, but for a quick guide " @@ -161,7 +160,7 @@ msgstr "" "de nombres donde son buscados. Esto normalmente es sencillo, pero para una " "guía rápida, lee :ref:`dónde parchear `." -#: ../Doc/library/unittest.mock.rst:125 +#: ../Doc/library/unittest.mock.rst:126 msgid "" "As well as a decorator :func:`patch` can be used as a context manager in a " "with statement:" @@ -169,7 +168,7 @@ msgstr "" "Además de decorador, la función :func:`patch` se puede usar como gestor de " "contexto en una declaración with:" -#: ../Doc/library/unittest.mock.rst:135 +#: ../Doc/library/unittest.mock.rst:136 msgid "" "There is also :func:`patch.dict` for setting values in a dictionary just " "during a scope and restoring the dictionary to its original state when the " @@ -179,7 +178,7 @@ msgstr "" "en un diccionario dentro de un ámbito y restaurar el diccionario a su estado " "original cuando finaliza la prueba:" -#: ../Doc/library/unittest.mock.rst:146 +#: ../Doc/library/unittest.mock.rst:147 msgid "" "Mock supports the mocking of Python :ref:`magic methods `. " "The easiest way of using magic methods is with the :class:`MagicMock` class. " @@ -189,7 +188,7 @@ msgstr "" "Python. La forma más sencilla de utilizar métodos mágicos es mediante la " "clase :class:`MagicMock`. Te permite hacer cosas como:" -#: ../Doc/library/unittest.mock.rst:156 +#: ../Doc/library/unittest.mock.rst:157 msgid "" "Mock allows you to assign functions (or other Mock instances) to magic " "methods and they will be called appropriately. The :class:`MagicMock` class " @@ -202,7 +201,7 @@ msgstr "" "que tiene todos los métodos mágicos previamente creados para ti (bueno, " "todos los que son útiles)." -#: ../Doc/library/unittest.mock.rst:161 +#: ../Doc/library/unittest.mock.rst:162 msgid "" "The following is an example of using magic methods with the ordinary Mock " "class:" @@ -210,7 +209,7 @@ msgstr "" "El siguiente es un ejemplo de uso de métodos mágicos utilizando la clase " "Mock ordinaria:" -#: ../Doc/library/unittest.mock.rst:169 +#: ../Doc/library/unittest.mock.rst:170 msgid "" "For ensuring that the mock objects in your tests have the same api as the " "objects they are replacing, you can use :ref:`auto-speccing ` para más información." -#: ../Doc/library/unittest.mock.rst:651 +#: ../Doc/library/unittest.mock.rst:652 msgid "Added ``args`` and ``kwargs`` properties." msgstr "Propiedades ``args`` y ``kwargs`` agregadas." -#: ../Doc/library/unittest.mock.rst:657 +#: ../Doc/library/unittest.mock.rst:658 msgid "" "This is a list of all the calls made to the mock object in sequence (so the " "length of the list is the number of times it has been called). Before any " @@ -779,7 +780,7 @@ msgstr "" "convenientemente las listas de llamadas a comparar con :attr:" "`call_args_list`." -#: ../Doc/library/unittest.mock.rst:673 +#: ../Doc/library/unittest.mock.rst:674 msgid "" "Members of :attr:`call_args_list` are :data:`call` objects. These can be " "unpacked as tuples to get at the individual arguments. See :ref:`calls as " @@ -790,7 +791,7 @@ msgstr "" "individuales. Consultar :ref:`objetos call como tuplas ` " "para más información." -#: ../Doc/library/unittest.mock.rst:680 +#: ../Doc/library/unittest.mock.rst:681 msgid "" "As well as tracking calls to themselves, mocks also track calls to methods " "and attributes, and *their* methods and attributes:" @@ -799,7 +800,7 @@ msgstr "" "objetos simulados también realizan un seguimiento a *sus* métodos y " "atributos, así como de las llamadas hechas a los mismos:" -#: ../Doc/library/unittest.mock.rst:691 +#: ../Doc/library/unittest.mock.rst:692 msgid "" "Members of :attr:`method_calls` are :data:`call` objects. These can be " "unpacked as tuples to get at the individual arguments. See :ref:`calls as " @@ -810,7 +811,7 @@ msgstr "" "Consultar :ref:`objetos call como tuplas ` para más " "información." -#: ../Doc/library/unittest.mock.rst:698 +#: ../Doc/library/unittest.mock.rst:699 msgid "" ":attr:`mock_calls` records *all* calls to the mock object, its methods, " "magic methods *and* return value mocks." @@ -818,7 +819,7 @@ msgstr "" ":attr:`mock_calls` registra *todas* las llamadas al objeto simulado, sus " "métodos, métodos mágicos *y* objetos simulados del valor de retorno." -#: ../Doc/library/unittest.mock.rst:716 +#: ../Doc/library/unittest.mock.rst:717 msgid "" "Members of :attr:`mock_calls` are :data:`call` objects. These can be " "unpacked as tuples to get at the individual arguments. See :ref:`calls as " @@ -829,7 +830,7 @@ msgstr "" "Consultar :ref:`objetos call como tuplas ` para más " "información." -#: ../Doc/library/unittest.mock.rst:722 +#: ../Doc/library/unittest.mock.rst:723 msgid "" "The way :attr:`mock_calls` are recorded means that where nested calls are " "made, the parameters of ancestor calls are not recorded and so will always " @@ -839,7 +840,7 @@ msgstr "" "se realizan llamadas anidadas, los parámetros de las llamadas previas no se " "registran, por lo que siempre resultan iguales al comparar:" -#: ../Doc/library/unittest.mock.rst:736 +#: ../Doc/library/unittest.mock.rst:737 msgid "" "Normally the :attr:`__class__` attribute of an object will return its type. " "For a mock object with a :attr:`spec`, ``__class__`` returns the spec class " @@ -852,7 +853,7 @@ msgstr "" "test de :func:`isinstance` para el objeto que están reemplazando / " "enmascarando:" -#: ../Doc/library/unittest.mock.rst:745 +#: ../Doc/library/unittest.mock.rst:746 msgid "" ":attr:`__class__` is assignable to, this allows a mock to pass an :func:" "`isinstance` check without forcing you to use a spec:" @@ -861,7 +862,7 @@ msgstr "" "pasar una verificación de :func:`isinstance` sin verse forzado a utilizar " "una especificación:" -#: ../Doc/library/unittest.mock.rst:755 +#: ../Doc/library/unittest.mock.rst:756 msgid "" "A non-callable version of :class:`Mock`. The constructor parameters have the " "same meaning of :class:`Mock`, with the exception of *return_value* and " @@ -872,7 +873,7 @@ msgstr "" "*return_value* y *side_effect* que no tienen sentido en un objeto simulado " "no invocable." -#: ../Doc/library/unittest.mock.rst:759 +#: ../Doc/library/unittest.mock.rst:760 msgid "" "Mock objects that use a class or an instance as a :attr:`spec` or :attr:" "`spec_set` are able to pass :func:`isinstance` tests:" @@ -880,7 +881,7 @@ msgstr "" "Los objetos simulados que usan una clase o una instancia como :attr:`spec` " "o :attr:`spec_set` son capaces de pasar los test de :func:`isinstance`:" -#: ../Doc/library/unittest.mock.rst:769 +#: ../Doc/library/unittest.mock.rst:770 msgid "" "The :class:`Mock` classes have support for mocking magic methods. See :ref:" "`magic methods ` for the full details." @@ -889,7 +890,7 @@ msgstr "" "Consultar la sección dedicada a los :ref:`métodos mágicos ` " "para ver los detalles." -#: ../Doc/library/unittest.mock.rst:772 +#: ../Doc/library/unittest.mock.rst:773 msgid "" "The mock classes and the :func:`patch` decorators all take arbitrary keyword " "arguments for configuration. For the :func:`patch` decorators the keywords " @@ -902,7 +903,7 @@ msgstr "" "constructor del objeto simulado creado. Estos argumentos se usan para " "configurar los atributos del propio objeto simulado:" -#: ../Doc/library/unittest.mock.rst:783 +#: ../Doc/library/unittest.mock.rst:784 msgid "" "The return value and side effect of child mocks can be set in the same way, " "using dotted notation. As you can't use dotted names directly in a call you " @@ -914,7 +915,7 @@ msgstr "" "puede utilizar notación de punto directamente en una llamada, se tiene que " "crear un diccionario y desempaquetarlo usando ``**``:" -#: ../Doc/library/unittest.mock.rst:798 +#: ../Doc/library/unittest.mock.rst:799 msgid "" "A callable mock which was created with a *spec* (or a *spec_set*) will " "introspect the specification object's signature when matching calls to the " @@ -927,7 +928,7 @@ msgstr "" "sus argumentos con los argumentos de la llamada real, independientemente de " "si se pasaron por posición o por nombre:" -#: ../Doc/library/unittest.mock.rst:811 +#: ../Doc/library/unittest.mock.rst:812 msgid "" "This applies to :meth:`~Mock.assert_called_with`, :meth:`~Mock." "assert_called_once_with`, :meth:`~Mock.assert_has_calls` and :meth:`~Mock." @@ -939,13 +940,13 @@ msgstr "" "assert_any_call`. Cuando se hace uso de :ref:`auto-speccing`, también se " "aplicará a las llamadas a los métodos del objeto simulado." -#: ../Doc/library/unittest.mock.rst:816 +#: ../Doc/library/unittest.mock.rst:817 msgid "Added signature introspection on specced and autospecced mock objects." msgstr "" "Se añadió introspección de firma en objetos simulados especificados y " "autoespecificados." -#: ../Doc/library/unittest.mock.rst:822 +#: ../Doc/library/unittest.mock.rst:823 msgid "" "A mock intended to be used as a property, or other descriptor, on a class. :" "class:`PropertyMock` provides :meth:`__get__` and :meth:`__set__` methods so " @@ -956,7 +957,7 @@ msgstr "" "métodos :meth:`__get__` y :meth:`__set__`, por lo que puedes especificar un " "valor de retorno para cuando su valor es requerido." -#: ../Doc/library/unittest.mock.rst:826 +#: ../Doc/library/unittest.mock.rst:827 msgid "" "Fetching a :class:`PropertyMock` instance from an object calls the mock, " "with no args. Setting it calls the mock with the value being set. ::" @@ -965,7 +966,7 @@ msgstr "" "una llamada al objeto simulado, sin argumentos. Establecer su valor también " "llama al objeto simulado, con el valor a establecer como argumento. ::" -#: ../Doc/library/unittest.mock.rst:847 +#: ../Doc/library/unittest.mock.rst:848 msgid "" "Because of the way mock attributes are stored you can't directly attach a :" "class:`PropertyMock` to a mock object. Instead you can attach it to the mock " @@ -976,7 +977,7 @@ msgstr "" "lugar se puede conectar al tipo (type) del objeto simulado:" # Me parece correcta la interpretación -#: ../Doc/library/unittest.mock.rst:861 +#: ../Doc/library/unittest.mock.rst:862 msgid "" "An asynchronous version of :class:`MagicMock`. The :class:`AsyncMock` object " "will behave so the object is recognized as an async function, and the result " @@ -986,7 +987,7 @@ msgstr "" "comportará de tal modo que el objeto es reconocido como una función " "asíncrona y el resultado de su llamada es un objeto aguardable (awaitable)." -#: ../Doc/library/unittest.mock.rst:871 +#: ../Doc/library/unittest.mock.rst:872 msgid "" "The result of ``mock()`` is an async function which will have the outcome of " "``side_effect`` or ``return_value`` after it has been awaited:" @@ -995,7 +996,7 @@ msgstr "" "resultado de ``side_effect`` o de ``return_value`` después de haber sido " "aguardada:" -#: ../Doc/library/unittest.mock.rst:874 +#: ../Doc/library/unittest.mock.rst:875 msgid "" "if ``side_effect`` is a function, the async function will return the result " "of that function," @@ -1003,7 +1004,7 @@ msgstr "" "si ``side_effect`` es una función, la función asíncrona retornará el " "resultado de esa función," -#: ../Doc/library/unittest.mock.rst:876 +#: ../Doc/library/unittest.mock.rst:877 msgid "" "if ``side_effect`` is an exception, the async function will raise the " "exception," @@ -1011,7 +1012,7 @@ msgstr "" "si ``side_effect`` es una excepción, la función asíncrona lanzará la " "excepción," -#: ../Doc/library/unittest.mock.rst:878 +#: ../Doc/library/unittest.mock.rst:879 msgid "" "if ``side_effect`` is an iterable, the async function will return the next " "value of the iterable, however, if the sequence of result is exhausted, " @@ -1021,7 +1022,7 @@ msgstr "" "siguiente valor del iterable, sin embargo, si se agota la secuencia de " "resultados, se lanza una excepción ``StopAsyncIteration`` inmediatamente," -#: ../Doc/library/unittest.mock.rst:881 +#: ../Doc/library/unittest.mock.rst:882 msgid "" "if ``side_effect`` is not defined, the async function will return the value " "defined by ``return_value``, hence, by default, the async function returns a " @@ -1031,7 +1032,7 @@ msgstr "" "definido por ``return_value``, por lo tanto, la función asíncrona retorna un " "nuevo objeto :class:`AsyncMock` por defecto." -#: ../Doc/library/unittest.mock.rst:886 +#: ../Doc/library/unittest.mock.rst:887 msgid "" "Setting the *spec* of a :class:`Mock` or :class:`MagicMock` to an async " "function will result in a coroutine object being returned after calling." @@ -1040,7 +1041,7 @@ msgstr "" "`MagicMock` en una función asíncrona resultará en que un objeto corrutina " "será retornado después de la llamada al objeto." -#: ../Doc/library/unittest.mock.rst:898 +#: ../Doc/library/unittest.mock.rst:899 msgid "" "Setting the *spec* of a :class:`Mock`, :class:`MagicMock`, or :class:" "`AsyncMock` to a class with asynchronous and synchronous functions will " @@ -1057,7 +1058,7 @@ msgstr "" "`Mock` (si el objeto simulado padre es :class:`Mock`) . Todas las funciones " "asíncronas serán :class:`AsyncMock`." -#: ../Doc/library/unittest.mock.rst:926 +#: ../Doc/library/unittest.mock.rst:927 msgid "" "Assert that the mock was awaited at least once. Note that this is separate " "from the object having been called, the ``await`` keyword must be used:" @@ -1066,16 +1067,16 @@ msgstr "" "que, independientemente del objeto que ha sido invocado, la palabra clave " "``await`` debe ser utilizada:" -#: ../Doc/library/unittest.mock.rst:945 +#: ../Doc/library/unittest.mock.rst:946 msgid "Assert that the mock was awaited exactly once." msgstr "Assert si el objeto simulado fue aguardado exactamente una vez." -#: ../Doc/library/unittest.mock.rst:961 +#: ../Doc/library/unittest.mock.rst:962 msgid "Assert that the last await was with the specified arguments." msgstr "" "Assert si el último aguardo (await) fue con los argumentos especificados." -#: ../Doc/library/unittest.mock.rst:978 +#: ../Doc/library/unittest.mock.rst:979 msgid "" "Assert that the mock was awaited exactly once and with the specified " "arguments." @@ -1083,13 +1084,13 @@ msgstr "" "Assert si que el objeto simulado se ha aguardado exactamente una vez y con " "los argumentos especificados." -#: ../Doc/library/unittest.mock.rst:995 +#: ../Doc/library/unittest.mock.rst:996 msgid "Assert the mock has ever been awaited with the specified arguments." msgstr "" "Assert si el objeto simulado nunca se ha aguardado con los argumentos " "especificados." -#: ../Doc/library/unittest.mock.rst:1011 +#: ../Doc/library/unittest.mock.rst:1012 msgid "" "Assert the mock has been awaited with the specified calls. The :attr:" "`await_args_list` list is checked for the awaits." @@ -1098,7 +1099,7 @@ msgstr "" "especificadas. Para comprobar los aguardos (awaits) se utiliza la lista :" "attr:`await_args_list`." -#: ../Doc/library/unittest.mock.rst:1014 +#: ../Doc/library/unittest.mock.rst:1015 msgid "" "If *any_order* is false then the awaits must be sequential. There can be " "extra calls before or after the specified awaits." @@ -1107,7 +1108,7 @@ msgstr "" "puede haber llamadas adicionales antes o después de los aguardos " "especificados." -#: ../Doc/library/unittest.mock.rst:1018 +#: ../Doc/library/unittest.mock.rst:1019 msgid "" "If *any_order* is true then the awaits can be in any order, but they must " "all appear in :attr:`await_args_list`." @@ -1115,11 +1116,11 @@ msgstr "" "Si *any_order* es verdadero, entonces los aguardos (awaits) pueden estar en " "cualquier orden, pero deben aparecer todos en :attr:`await_args_list`." -#: ../Doc/library/unittest.mock.rst:1038 +#: ../Doc/library/unittest.mock.rst:1039 msgid "Assert that the mock was never awaited." msgstr "Assert si el objeto simulado nunca ha sido aguardado." -#: ../Doc/library/unittest.mock.rst:1045 +#: ../Doc/library/unittest.mock.rst:1046 msgid "" "See :func:`Mock.reset_mock`. Also sets :attr:`await_count` to 0, :attr:" "`await_args` to None, and clears the :attr:`await_args_list`." @@ -1127,13 +1128,13 @@ msgstr "" "Consultar :func:`Mock.reset_mock`. Además, también establece :attr:" "`await_count` a 0, :attr:`await_args` a None y borra :attr:`await_args_list`." -#: ../Doc/library/unittest.mock.rst:1050 +#: ../Doc/library/unittest.mock.rst:1051 msgid "" "An integer keeping track of how many times the mock object has been awaited." msgstr "" "Un registro entero de cuántas veces se ha aguardado el objeto simulado." -#: ../Doc/library/unittest.mock.rst:1065 +#: ../Doc/library/unittest.mock.rst:1066 msgid "" "This is either ``None`` (if the mock hasn’t been awaited), or the arguments " "that the mock was last awaited with. Functions the same as :attr:`Mock." @@ -1143,7 +1144,7 @@ msgstr "" "argumentos con los que fue aguardado la última vez. Su funcionamiento es " "idéntico al de :attr:`Mock.call_args`." -#: ../Doc/library/unittest.mock.rst:1083 +#: ../Doc/library/unittest.mock.rst:1084 msgid "" "This is a list of all the awaits made to the mock object in sequence (so the " "length of the list is the number of times it has been awaited). Before any " @@ -1154,11 +1155,11 @@ msgstr "" "veces que se ha aguardado el objeto). Si no se han realizado aguardos " "previos, es una lista vacía." -#: ../Doc/library/unittest.mock.rst:1102 +#: ../Doc/library/unittest.mock.rst:1103 msgid "Calling" msgstr "Llamar a los objetos simulados" -#: ../Doc/library/unittest.mock.rst:1104 +#: ../Doc/library/unittest.mock.rst:1105 msgid "" "Mock objects are callable. The call will return the value set as the :attr:" "`~Mock.return_value` attribute. The default return value is a new Mock " @@ -1173,7 +1174,7 @@ msgstr "" "Mock). Una vez creado, se almacena y el mismo objeto es retornado cada vez " "que se solicita." -#: ../Doc/library/unittest.mock.rst:1110 +#: ../Doc/library/unittest.mock.rst:1111 msgid "" "Calls made to the object will be recorded in the attributes like :attr:" "`~Mock.call_args` and :attr:`~Mock.call_args_list`." @@ -1181,7 +1182,7 @@ msgstr "" "Las llamadas realizadas al objeto serán registradas en los atributos :attr:" "`~Mock.call_args` y :attr:`~Mock.call_args_list`." -#: ../Doc/library/unittest.mock.rst:1113 +#: ../Doc/library/unittest.mock.rst:1114 msgid "" "If :attr:`~Mock.side_effect` is set then it will be called after the call " "has been recorded, so if :attr:`side_effect` raises an exception the call is " @@ -1191,7 +1192,7 @@ msgstr "" "llamada haya sido registrada, por lo que la llamada se registra aunque :attr:" "`side_effect` lance una excepción." -#: ../Doc/library/unittest.mock.rst:1117 +#: ../Doc/library/unittest.mock.rst:1118 msgid "" "The simplest way to make a mock raise an exception when called is to make :" "attr:`~Mock.side_effect` an exception class or instance:" @@ -1200,7 +1201,7 @@ msgstr "" "cuando sea invocado es establecer su atributo :attr:`~Mock.side_effect` como " "una clase o instancia de excepción:" -#: ../Doc/library/unittest.mock.rst:1135 +#: ../Doc/library/unittest.mock.rst:1136 msgid "" "If :attr:`side_effect` is a function then whatever that function returns is " "what calls to the mock return. The :attr:`side_effect` function is called " @@ -1213,7 +1214,7 @@ msgstr "" "simulado ha sido invocado. Esto te permite variar el valor de retorno de la " "llamada dinámicamente, en función de la entrada:" -#: ../Doc/library/unittest.mock.rst:1151 +#: ../Doc/library/unittest.mock.rst:1152 msgid "" "If you want the mock to still return the default return value (a new mock), " "or any set return value, then there are two ways of doing this. Either " @@ -1225,7 +1226,7 @@ msgstr "" "existen dos maneras de proceder. Se puede retornar tanto el atributo :attr:" "`mock.return_value` como :data:`DEFAULT` desde :attr:`side_effect`:" -#: ../Doc/library/unittest.mock.rst:1170 +#: ../Doc/library/unittest.mock.rst:1171 msgid "" "To remove a :attr:`side_effect`, and return to the default behaviour, set " "the :attr:`side_effect` to ``None``:" @@ -1233,7 +1234,7 @@ msgstr "" "Para eliminar un :attr:`side_effect`, volviendo al comportamiento " "predeterminado, establece el atributo :attr:`side_effect` en ``None``:" -#: ../Doc/library/unittest.mock.rst:1184 +#: ../Doc/library/unittest.mock.rst:1185 msgid "" "The :attr:`side_effect` can also be any iterable object. Repeated calls to " "the mock will return values from the iterable (until the iterable is " @@ -1244,7 +1245,7 @@ msgstr "" "valores del iterable (hasta que el iterable se agote, momento en el que se " "lanza una excepción :exc:`StopIteration`):" -#: ../Doc/library/unittest.mock.rst:1200 +#: ../Doc/library/unittest.mock.rst:1201 msgid "" "If any members of the iterable are exceptions they will be raised instead of " "returned::" @@ -1252,11 +1253,11 @@ msgstr "" "Si cualquier miembro del iterable es una excepción, se lanzará en lugar de " "retornarse:" -#: ../Doc/library/unittest.mock.rst:1218 +#: ../Doc/library/unittest.mock.rst:1219 msgid "Deleting Attributes" msgstr "Eliminar atributos" -#: ../Doc/library/unittest.mock.rst:1220 +#: ../Doc/library/unittest.mock.rst:1221 msgid "" "Mock objects create attributes on demand. This allows them to pretend to be " "objects of any type." @@ -1264,7 +1265,7 @@ msgstr "" "Los objetos simulados crean atributos en demanda. Esto les permite hacerse " "pasar por objetos de cualquier tipo." -#: ../Doc/library/unittest.mock.rst:1223 +#: ../Doc/library/unittest.mock.rst:1224 msgid "" "You may want a mock object to return ``False`` to a :func:`hasattr` call, or " "raise an :exc:`AttributeError` when an attribute is fetched. You can do this " @@ -1277,7 +1278,7 @@ msgstr "" "adecuado al atributo :attr:`spec` del objeto simulado, pero no siempre es " "conveniente." -#: ../Doc/library/unittest.mock.rst:1227 +#: ../Doc/library/unittest.mock.rst:1228 msgid "" "You \"block\" attributes by deleting them. Once deleted, accessing an " "attribute will raise an :exc:`AttributeError`." @@ -1285,11 +1286,11 @@ msgstr "" "Puedes \"bloquear\" atributos eliminándolos. Una vez eliminado, el acceso a " "un atributo lanzará una excepción :exc:`AttributeError`." -#: ../Doc/library/unittest.mock.rst:1244 +#: ../Doc/library/unittest.mock.rst:1245 msgid "Mock names and the name attribute" msgstr "Los nombres de los objetos simulados y el atributo *name*" -#: ../Doc/library/unittest.mock.rst:1246 +#: ../Doc/library/unittest.mock.rst:1247 msgid "" "Since \"name\" is an argument to the :class:`Mock` constructor, if you want " "your mock object to have a \"name\" attribute you can't just pass it in at " @@ -1301,7 +1302,7 @@ msgstr "" "puedes simplemente pasarlo al constructor en tiempo de creación. Hay dos " "alternativas. Una opción es usar el método :meth:`~Mock.configure_mock`:" -#: ../Doc/library/unittest.mock.rst:1256 +#: ../Doc/library/unittest.mock.rst:1257 msgid "" "A simpler option is to simply set the \"name\" attribute after mock " "creation::" @@ -1309,11 +1310,11 @@ msgstr "" "Una opción más sencilla es simplemente establecer el atributo \"name\" " "después de la creación del objeto simulado:" -#: ../Doc/library/unittest.mock.rst:1263 +#: ../Doc/library/unittest.mock.rst:1264 msgid "Attaching Mocks as Attributes" msgstr "Adjuntar objetos simulados como atributos" -#: ../Doc/library/unittest.mock.rst:1265 +#: ../Doc/library/unittest.mock.rst:1266 msgid "" "When you attach a mock as an attribute of another mock (or as the return " "value) it becomes a \"child\" of that mock. Calls to the child are recorded " @@ -1332,7 +1333,7 @@ msgstr "" "las llamadas a los hijos, permitiéndote hacer aserciones sobre el orden de " "las llamadas entre objetos simulados:" -#: ../Doc/library/unittest.mock.rst:1283 +#: ../Doc/library/unittest.mock.rst:1284 msgid "" "The exception to this is if the mock has a name. This allows you to prevent " "the \"parenting\" if for some reason you don't want it to happen." @@ -1341,7 +1342,7 @@ msgstr "" "permite evitar el comportamiento de \"parentesco\" explicado previamente, si " "por alguna razón no deseas que suceda." -#: ../Doc/library/unittest.mock.rst:1294 +#: ../Doc/library/unittest.mock.rst:1295 msgid "" "Mocks created for you by :func:`patch` are automatically given names. To " "attach mocks that have names to a parent you use the :meth:`~Mock." @@ -1351,7 +1352,7 @@ msgstr "" "también reciben nombres automáticamente. Para adjuntar un objeto simulado " "con nombre a un padre debes utilizar el método :meth:`~Mock.attach_mock`:" -#: ../Doc/library/unittest.mock.rst:1312 +#: ../Doc/library/unittest.mock.rst:1313 msgid "" "The only exceptions are magic methods and attributes (those that have " "leading and trailing double underscores). Mock doesn't create these but " @@ -1368,11 +1369,11 @@ msgstr "" "método mágico. Si necesitas soporte para métodos mágicos, consulta :ref:" "`métodos mágicos `." -#: ../Doc/library/unittest.mock.rst:1321 +#: ../Doc/library/unittest.mock.rst:1322 msgid "The patchers" msgstr "Parcheadores" -#: ../Doc/library/unittest.mock.rst:1323 +#: ../Doc/library/unittest.mock.rst:1324 msgid "" "The patch decorators are used for patching objects only within the scope of " "the function they decorate. They automatically handle the unpatching for " @@ -1385,11 +1386,11 @@ msgstr "" "funciones también se pueden utilizar con declaraciones o como decoradores de " "clase." -#: ../Doc/library/unittest.mock.rst:1330 +#: ../Doc/library/unittest.mock.rst:1331 msgid "patch" msgstr "patch" -#: ../Doc/library/unittest.mock.rst:1334 +#: ../Doc/library/unittest.mock.rst:1335 msgid "" "The key is to do the patching in the right namespace. See the section `where " "to patch`_." @@ -1397,7 +1398,7 @@ msgstr "" "La clave es realizar el parche en el mismo espacio de nombre. Para más " "detalles consultar la sección `where to patch`_." -#: ../Doc/library/unittest.mock.rst:1338 +#: ../Doc/library/unittest.mock.rst:1339 msgid "" ":func:`patch` acts as a function decorator, class decorator or a context " "manager. Inside the body of the function or with statement, the *target* is " @@ -1410,7 +1411,7 @@ msgstr "" "la función / declaración with termina su ejecución el parche se deshace " "automáticamente." -#: ../Doc/library/unittest.mock.rst:1343 +#: ../Doc/library/unittest.mock.rst:1344 msgid "" "If *new* is omitted, then the target is replaced with an :class:`AsyncMock` " "if the patched object is an async function or a :class:`MagicMock` " @@ -1427,7 +1428,7 @@ msgstr "" "un gestor de contexto, el objeto simulado creado es retornado por el gestor " "de contexto." -#: ../Doc/library/unittest.mock.rst:1351 +#: ../Doc/library/unittest.mock.rst:1352 msgid "" "*target* should be a string in the form ``'package.module.ClassName'``. The " "*target* is imported and the specified object replaced with the *new* " @@ -1442,7 +1443,7 @@ msgstr "" "presente que *target* es importado cuando se ejecuta la función decorada, no " "en tiempo de decoración." -#: ../Doc/library/unittest.mock.rst:1357 +#: ../Doc/library/unittest.mock.rst:1358 msgid "" "The *spec* and *spec_set* keyword arguments are passed to the :class:" "`MagicMock` if patch is creating one for you." @@ -1450,7 +1451,7 @@ msgstr "" "Los argumentos *spec* y *spec_set* se pasan a :class:`MagicMock` si patch " "está creando automáticamente uno para ti." -#: ../Doc/library/unittest.mock.rst:1360 +#: ../Doc/library/unittest.mock.rst:1361 msgid "" "In addition you can pass ``spec=True`` or ``spec_set=True``, which causes " "patch to pass in the object being mocked as the spec/spec_set object." @@ -1458,7 +1459,7 @@ msgstr "" "Además, puedes pasar ``spec=True`` o ``spec_set=True``, lo que causa que " "patch pase el objeto que está siendo simulado como el objeto spec/spec_set." -#: ../Doc/library/unittest.mock.rst:1363 +#: ../Doc/library/unittest.mock.rst:1364 msgid "" "*new_callable* allows you to specify a different class, or callable object, " "that will be called to create the *new* object. By default :class:" @@ -1469,7 +1470,7 @@ msgstr "" "utiliza :class:`AsyncMock` para las funciones asíncronas y :class:" "`MagicMock` para el resto." -#: ../Doc/library/unittest.mock.rst:1367 +#: ../Doc/library/unittest.mock.rst:1368 msgid "" "A more powerful form of *spec* is *autospec*. If you set ``autospec=True`` " "then the mock will be created with a spec from the object being replaced. " @@ -1491,7 +1492,7 @@ msgstr "" "especificación que la clase. Consultar la función :func:`create_autospec` y :" "ref:`auto-speccing` para más detalles." -#: ../Doc/library/unittest.mock.rst:1377 +#: ../Doc/library/unittest.mock.rst:1378 msgid "" "Instead of ``autospec=True`` you can pass ``autospec=some_object`` to use an " "arbitrary object as the spec instead of the one being replaced." @@ -1500,7 +1501,7 @@ msgstr "" "utilizar un objeto arbitrario como especificación en lugar del objeto " "reemplazado." -#: ../Doc/library/unittest.mock.rst:1380 +#: ../Doc/library/unittest.mock.rst:1381 msgid "" "By default :func:`patch` will fail to replace attributes that don't exist. " "If you pass in ``create=True``, and the attribute doesn't exist, patch will " @@ -1518,7 +1519,7 @@ msgstr "" "defecto, ya que puede ser peligroso. ¡Al activarlo se pueden implementar " "pruebas que validen APIs que en realidad no existen!" -#: ../Doc/library/unittest.mock.rst:1390 +#: ../Doc/library/unittest.mock.rst:1391 msgid "" "If you are patching builtins in a module then you don't need to pass " "``create=True``, it will be added by default." @@ -1527,7 +1528,7 @@ msgstr "" "necesario pasar ``create=True``, ya que en este caso se agrega de forma " "predeterminada." -#: ../Doc/library/unittest.mock.rst:1394 +#: ../Doc/library/unittest.mock.rst:1395 msgid "" "Patch can be used as a :class:`TestCase` class decorator. It works by " "decorating each test method in the class. This reduces the boilerplate code " @@ -1546,7 +1547,7 @@ msgstr "" "busca las pruebas. Se puede especificar un prefijo alternativo estableciendo " "un nuevo valor para el atributo ``patch.TEST_PREFIX``." -#: ../Doc/library/unittest.mock.rst:1401 +#: ../Doc/library/unittest.mock.rst:1402 msgid "" "Patch can be used as a context manager, with the with statement. Here the " "patching applies to the indented block after the with statement. If you use " @@ -1559,7 +1560,7 @@ msgstr "" "enlazado al nombre especificado después de \"as\"; muy útil si :func:`patch` " "está creando un objeto simulado automáticamente." -#: ../Doc/library/unittest.mock.rst:1406 +#: ../Doc/library/unittest.mock.rst:1407 msgid "" ":func:`patch` takes arbitrary keyword arguments. These will be passed to :" "class:`AsyncMock` if the patched object is asynchronous, to :class:" @@ -1569,7 +1570,7 @@ msgstr "" "pasados a :class:`AsyncMock` si el objeto parcheado es asincrónico, si es de " "otra forma :class:`MagicMock` o a un *new_callable* si es especificado." -#: ../Doc/library/unittest.mock.rst:1410 +#: ../Doc/library/unittest.mock.rst:1411 msgid "" "``patch.dict(...)``, ``patch.multiple(...)`` and ``patch.object(...)`` are " "available for alternate use-cases." @@ -1577,7 +1578,7 @@ msgstr "" "``patch.dict(...)``, ``patch.multiple(...)`` y ``patch.object(...)`` están " "disponibles para casos de uso alternativos." -#: ../Doc/library/unittest.mock.rst:1413 +#: ../Doc/library/unittest.mock.rst:1414 msgid "" ":func:`patch` as function decorator, creating the mock for you and passing " "it into the decorated function::" @@ -1585,7 +1586,7 @@ msgstr "" ":func:`patch` como decorador de función, crea el objeto simulado por ti y lo " "pasa a la función decorada:" -#: ../Doc/library/unittest.mock.rst:1423 +#: ../Doc/library/unittest.mock.rst:1424 msgid "" "Patching a class replaces the class with a :class:`MagicMock` *instance*. If " "the class is instantiated in the code under test then it will be the :attr:" @@ -1595,7 +1596,7 @@ msgstr "" "`MagicMock`. Si la clase se instancia en el código bajo prueba, el atributo :" "attr:`~Mock.return_value` del objeto simulado será el utilizado." -#: ../Doc/library/unittest.mock.rst:1427 +#: ../Doc/library/unittest.mock.rst:1428 msgid "" "If the class is instantiated multiple times you could use :attr:`~Mock." "side_effect` to return a new mock each time. Alternatively you can set the " @@ -1606,7 +1607,7 @@ msgstr "" "cada vez. O también puedes establecer *return_value* para que sea lo que tu " "quieras." -#: ../Doc/library/unittest.mock.rst:1431 +#: ../Doc/library/unittest.mock.rst:1432 msgid "" "To configure return values on methods of *instances* on the patched class " "you must do this on the :attr:`return_value`. For example::" @@ -1614,7 +1615,7 @@ msgstr "" "Para configurar valores de retorno de métodos en *instancias* de la clase " "parcheada debes hacer uso del atributo :attr:`return_value`. Por ejemplo:" -#: ../Doc/library/unittest.mock.rst:1445 +#: ../Doc/library/unittest.mock.rst:1446 msgid "" "If you use *spec* or *spec_set* and :func:`patch` is replacing a *class*, " "then the return value of the created mock will have the same spec. ::" @@ -1623,7 +1624,7 @@ msgstr "" "*clase*, el valor de retorno del objeto simulado creado tendrá las mismas " "especificaciones:" -#: ../Doc/library/unittest.mock.rst:1455 +#: ../Doc/library/unittest.mock.rst:1456 msgid "" "The *new_callable* argument is useful where you want to use an alternative " "class to the default :class:`MagicMock` for the created mock. For example, " @@ -1634,7 +1635,7 @@ msgstr "" "ejemplo, si quieres que se use una clase :class:`NonCallableMock` por " "defecto:" -#: ../Doc/library/unittest.mock.rst:1468 +#: ../Doc/library/unittest.mock.rst:1469 msgid "" "Another use case might be to replace an object with an :class:`io.StringIO` " "instance::" @@ -1642,7 +1643,7 @@ msgstr "" "Otro caso de uso podría ser la sustitución de un objeto por una instancia " "de :class:`io.StringIO`:" -#: ../Doc/library/unittest.mock.rst:1481 +#: ../Doc/library/unittest.mock.rst:1482 msgid "" "When :func:`patch` is creating a mock for you, it is common that the first " "thing you need to do is to configure the mock. Some of that configuration " @@ -1655,7 +1656,7 @@ msgstr "" "palabra clave arbitraria que pases a la llamada será utilizada para " "establecer los atributos del objeto simulado creado:" -#: ../Doc/library/unittest.mock.rst:1493 +#: ../Doc/library/unittest.mock.rst:1494 msgid "" "As well as attributes on the created mock attributes, like the :attr:`~Mock." "return_value` and :attr:`~Mock.side_effect`, of child mocks can also be " @@ -1671,7 +1672,7 @@ msgstr "" "la función patch, pero un diccionario con ellos como claves si que puede ser " "expandido en una llama a :func:`patch` usando ``**``:" -#: ../Doc/library/unittest.mock.rst:1509 +#: ../Doc/library/unittest.mock.rst:1510 msgid "" "By default, attempting to patch a function in a module (or a method or an " "attribute in a class) that does not exist will fail with :exc:" @@ -1681,7 +1682,7 @@ msgstr "" "atributo en una clase) que no existe fallará lanzando una excepción :exc:" "`AttributeError`:" -#: ../Doc/library/unittest.mock.rst:1521 +#: ../Doc/library/unittest.mock.rst:1522 msgid "" "but adding ``create=True`` in the call to :func:`patch` will make the " "previous example work as expected::" @@ -1689,7 +1690,7 @@ msgstr "" "pero añadir ``create=True`` en la llamada a :func:`patch` hará que el " "ejemplo previo funcione como se esperaba:" -#: ../Doc/library/unittest.mock.rst:1532 +#: ../Doc/library/unittest.mock.rst:1533 msgid "" ":func:`patch` now returns an :class:`AsyncMock` if the target is an async " "function." @@ -1697,11 +1698,11 @@ msgstr "" ":func:`patch` ahora retorna una instancia de :class:`AsyncMock` si el " "objetivo es una función asíncrona." -#: ../Doc/library/unittest.mock.rst:1536 +#: ../Doc/library/unittest.mock.rst:1537 msgid "patch.object" msgstr "patch.object" -#: ../Doc/library/unittest.mock.rst:1540 +#: ../Doc/library/unittest.mock.rst:1541 msgid "" "patch the named member (*attribute*) on an object (*target*) with a mock " "object." @@ -1709,7 +1710,7 @@ msgstr "" "parchea el miembro *attribute* invocado de un objeto *target* con un objeto " "simulado." -#: ../Doc/library/unittest.mock.rst:1543 +#: ../Doc/library/unittest.mock.rst:1544 msgid "" ":func:`patch.object` can be used as a decorator, class decorator or a " "context manager. Arguments *new*, *spec*, *create*, *spec_set*, *autospec* " @@ -1724,7 +1725,7 @@ msgstr "" "argumentos por palabras clave arbitrarios para la configuración del objeto " "simulado que crea." -#: ../Doc/library/unittest.mock.rst:1549 +#: ../Doc/library/unittest.mock.rst:1550 msgid "" "When used as a class decorator :func:`patch.object` honours ``patch." "TEST_PREFIX`` for choosing which methods to wrap." @@ -1732,7 +1733,7 @@ msgstr "" "Cuando se utiliza como un decorador de clase :func:`patch.object` se rige " "por ``patch.TEST_PREFIX`` a la hora de elegir los métodos a envolver." -#: ../Doc/library/unittest.mock.rst:1552 +#: ../Doc/library/unittest.mock.rst:1553 msgid "" "You can either call :func:`patch.object` with three arguments or two " "arguments. The three argument form takes the object to be patched, the " @@ -1742,7 +1743,7 @@ msgstr "" "argumentos. La forma de tres argumento toma el objeto a parchear, el nombre " "del atributo y el objeto con el que reemplazar el atributo." -#: ../Doc/library/unittest.mock.rst:1556 +#: ../Doc/library/unittest.mock.rst:1557 msgid "" "When calling with the two argument form you omit the replacement object, and " "a mock is created for you and passed in as an extra argument to the " @@ -1752,7 +1753,7 @@ msgstr "" "sustitución, por lo tanto se crea un objeto simulado automáticamente y se " "pasa como argumento adicional a la función decorada:" -#: ../Doc/library/unittest.mock.rst:1567 +#: ../Doc/library/unittest.mock.rst:1568 msgid "" "*spec*, *create* and the other arguments to :func:`patch.object` have the " "same meaning as they do for :func:`patch`." @@ -1760,11 +1761,11 @@ msgstr "" "*spec*, *create* y el resto de argumentos de :func:`patch.object` tienen el " "mismo significado que en la función :func:`patch`." -#: ../Doc/library/unittest.mock.rst:1572 +#: ../Doc/library/unittest.mock.rst:1573 msgid "patch.dict" msgstr "patch.dict" -#: ../Doc/library/unittest.mock.rst:1576 +#: ../Doc/library/unittest.mock.rst:1577 msgid "" "Patch a dictionary, or dictionary like object, and restore the dictionary to " "its original state after the test." @@ -1772,7 +1773,7 @@ msgstr "" "Parchea un diccionario o un objeto similar a un diccionario y posteriormente " "lo restaura a su estado original una vez terminada la prueba." -#: ../Doc/library/unittest.mock.rst:1579 +#: ../Doc/library/unittest.mock.rst:1580 msgid "" "*in_dict* can be a dictionary or a mapping like container. If it is a " "mapping then it must at least support getting, setting and deleting items " @@ -1783,7 +1784,7 @@ msgstr "" "establecimiento, la obtención y la eliminación de elementos, además de " "permitir la iteración sobre las claves." -#: ../Doc/library/unittest.mock.rst:1583 +#: ../Doc/library/unittest.mock.rst:1584 msgid "" "*in_dict* can also be a string specifying the name of the dictionary, which " "will then be fetched by importing it." @@ -1792,7 +1793,7 @@ msgstr "" "diccionario a parchear, el nombre es usado para obtener el diccionario " "mediante importación." -#: ../Doc/library/unittest.mock.rst:1586 +#: ../Doc/library/unittest.mock.rst:1587 msgid "" "*values* can be a dictionary of values to set in the dictionary. *values* " "can also be an iterable of ``(key, value)`` pairs." @@ -1801,7 +1802,7 @@ msgstr "" "diccionario. *values* también puede ser un iterable de parejas ``(clave, " "valor)``." -#: ../Doc/library/unittest.mock.rst:1589 +#: ../Doc/library/unittest.mock.rst:1590 msgid "" "If *clear* is true then the dictionary will be cleared before the new values " "are set." @@ -1809,7 +1810,7 @@ msgstr "" "Si *clear* es verdadero, el contenido del diccionario se borrará antes de " "establecer los nuevos valores." -#: ../Doc/library/unittest.mock.rst:1592 +#: ../Doc/library/unittest.mock.rst:1593 msgid "" ":func:`patch.dict` can also be called with arbitrary keyword arguments to " "set values in the dictionary." @@ -1817,7 +1818,7 @@ msgstr "" "La función :func:`patch.dict` también puede ser invocada con argumentos por " "palabra clave arbitrarios para establecer los valores en el diccionario." -#: ../Doc/library/unittest.mock.rst:1597 +#: ../Doc/library/unittest.mock.rst:1598 msgid "" ":func:`patch.dict` now returns the patched dictionary when used as a context " "manager." @@ -1825,7 +1826,7 @@ msgstr "" "La función :func:`patch.dict` ahora retorna el diccionario parcheado cuando " "se utiliza como gestor de contexto." -#: ../Doc/library/unittest.mock.rst:1600 +#: ../Doc/library/unittest.mock.rst:1601 msgid "" ":func:`patch.dict` can be used as a context manager, decorator or class " "decorator:" @@ -1833,7 +1834,7 @@ msgstr "" ":func:`patch.dict` se puede utilizar como gestor de contexto, decorador o " "decorador de clase:" -#: ../Doc/library/unittest.mock.rst:1610 +#: ../Doc/library/unittest.mock.rst:1612 msgid "" "When used as a class decorator :func:`patch.dict` honours ``patch." "TEST_PREFIX`` (default to ``'test'``) for choosing which methods to wrap:" @@ -1842,7 +1843,7 @@ msgstr "" "``patch.TEST_PREFIX`` (por defecto ``'test'``) a la hora de elegir qué " "métodos envolver:" -#: ../Doc/library/unittest.mock.rst:1621 +#: ../Doc/library/unittest.mock.rst:1623 msgid "" "If you want to use a different prefix for your test, you can inform the " "patchers of the different prefix by setting ``patch.TEST_PREFIX``. For more " @@ -1853,7 +1854,7 @@ msgstr "" "Para más detalles sobre cómo cambiar el valor del atributo consultar :ref:" "`test-prefix`." -#: ../Doc/library/unittest.mock.rst:1625 +#: ../Doc/library/unittest.mock.rst:1627 msgid "" ":func:`patch.dict` can be used to add members to a dictionary, or simply let " "a test change a dictionary, and ensure the dictionary is restored when the " @@ -1863,7 +1864,7 @@ msgstr "" "o simplemente para dejar que una prueba modifique un diccionario y " "asegurarte de que el diccionario será restablecido cuando finalice la misma." -#: ../Doc/library/unittest.mock.rst:1646 +#: ../Doc/library/unittest.mock.rst:1648 msgid "" "Keywords can be used in the :func:`patch.dict` call to set values in the " "dictionary:" @@ -1871,7 +1872,7 @@ msgstr "" "Se pueden utilizar argumentos por palabra clave en la llamada a :func:`patch." "dict` para establecer valores en el diccionario:" -#: ../Doc/library/unittest.mock.rst:1656 +#: ../Doc/library/unittest.mock.rst:1658 msgid "" ":func:`patch.dict` can be used with dictionary like objects that aren't " "actually dictionaries. At the very minimum they must support item getting, " @@ -1886,11 +1887,11 @@ msgstr "" "mágicos :meth:`__getitem__`, :meth:`__setitem__`, :meth:`__delitem__` e :" "meth:`__iter__` o :meth:`__contains__`." -#: ../Doc/library/unittest.mock.rst:1685 +#: ../Doc/library/unittest.mock.rst:1687 msgid "patch.multiple" msgstr "patch.multiple" -#: ../Doc/library/unittest.mock.rst:1689 +#: ../Doc/library/unittest.mock.rst:1691 msgid "" "Perform multiple patches in a single call. It takes the object to be patched " "(either as an object or a string to fetch the object by importing) and " @@ -1901,7 +1902,7 @@ msgstr "" "del mismo para obtener el objeto mediante importación) y los argumentos por " "palabras clave para los parches:" -#: ../Doc/library/unittest.mock.rst:1696 +#: ../Doc/library/unittest.mock.rst:1698 msgid "" "Use :data:`DEFAULT` as the value if you want :func:`patch.multiple` to " "create mocks for you. In this case the created mocks are passed into a " @@ -1914,7 +1915,7 @@ msgstr "" "clave y se retorna un diccionario cuando :func:`patch.multiple` se utiliza " "como gestor de contexto." -#: ../Doc/library/unittest.mock.rst:1701 +#: ../Doc/library/unittest.mock.rst:1703 msgid "" ":func:`patch.multiple` can be used as a decorator, class decorator or a " "context manager. The arguments *spec*, *spec_set*, *create*, *autospec* and " @@ -1927,7 +1928,7 @@ msgstr "" "significado que en la función :func:`patch`. Estos argumentos se aplicarán a " "*todos* los parches realizados por :func:`patch.multiple`." -#: ../Doc/library/unittest.mock.rst:1706 +#: ../Doc/library/unittest.mock.rst:1708 msgid "" "When used as a class decorator :func:`patch.multiple` honours ``patch." "TEST_PREFIX`` for choosing which methods to wrap." @@ -1935,7 +1936,7 @@ msgstr "" "Cuando se utiliza como decorador de clase, :func:`patch.multiple` se rige " "por ``patch.TEST_PREFIX`` a la hora de elegir qué métodos envolver." -#: ../Doc/library/unittest.mock.rst:1709 +#: ../Doc/library/unittest.mock.rst:1711 msgid "" "If you want :func:`patch.multiple` to create mocks for you, then you can " "use :data:`DEFAULT` as the value. If you use :func:`patch.multiple` as a " @@ -1947,7 +1948,7 @@ msgstr "" "multiple` como decorador, entonces los objetos simulados creados se pasan a " "la función decorada por palabra clave:" -#: ../Doc/library/unittest.mock.rst:1723 +#: ../Doc/library/unittest.mock.rst:1725 msgid "" ":func:`patch.multiple` can be nested with other ``patch`` decorators, but " "put arguments passed by keyword *after* any of the standard arguments " @@ -1957,7 +1958,7 @@ msgstr "" "pero los argumentos pasados por palabra clave se deben agregar *después* de " "cualquier argumento estándar creado por :func:`patch`:" -#: ../Doc/library/unittest.mock.rst:1735 +#: ../Doc/library/unittest.mock.rst:1737 msgid "" "If :func:`patch.multiple` is used as a context manager, the value returned " "by the context manager is a dictionary where created mocks are keyed by " @@ -1967,11 +1968,11 @@ msgstr "" "retornado por el mismo es un diccionario en el que los objetos simulados " "creados son almacenados, usando sus nombres como claves:" -#: ../Doc/library/unittest.mock.rst:1749 +#: ../Doc/library/unittest.mock.rst:1751 msgid "patch methods: start and stop" msgstr "métodos start y stop de patch" -#: ../Doc/library/unittest.mock.rst:1751 +#: ../Doc/library/unittest.mock.rst:1753 msgid "" "All the patchers have :meth:`start` and :meth:`stop` methods. These make it " "simpler to do patching in ``setUp`` methods or where you want to do multiple " @@ -1981,7 +1982,7 @@ msgstr "" "facilita parchear en los métodos ``setUp`` o cuando deseas hacer múltiples " "parches sin usar decoradores anidados o declaraciones with." -#: ../Doc/library/unittest.mock.rst:1755 +#: ../Doc/library/unittest.mock.rst:1757 msgid "" "To use them call :func:`patch`, :func:`patch.object` or :func:`patch.dict` " "as normal and keep a reference to the returned ``patcher`` object. You can " @@ -1993,7 +1994,7 @@ msgstr "" "``patcher`` retornado. A continuación, puedes llamar al método :meth:`start` " "para aplicar el parche y a :meth:`stop` para deshacerlo." -#: ../Doc/library/unittest.mock.rst:1759 +#: ../Doc/library/unittest.mock.rst:1761 msgid "" "If you are using :func:`patch` to create a mock for you then it will be " "returned by the call to ``patcher.start``. ::" @@ -2001,7 +2002,7 @@ msgstr "" "Si estás utilizando :func:`patch` para crear un objeto simulado " "automáticamente, este será retornado por la llamada a ``patcher.start``:" -#: ../Doc/library/unittest.mock.rst:1773 +#: ../Doc/library/unittest.mock.rst:1775 msgid "" "A typical use case for this might be for doing multiple patches in the " "``setUp`` method of a :class:`TestCase`::" @@ -2009,7 +2010,7 @@ msgstr "" "Un uso típico de esto podría ser realizar múltiples parches en el método " "``setUp`` de un :class:`TestCase`:" -#: ../Doc/library/unittest.mock.rst:1795 +#: ../Doc/library/unittest.mock.rst:1797 msgid "" "If you use this technique you must ensure that the patching is \"undone\" by " "calling ``stop``. This can be fiddlier than you might think, because if an " @@ -2022,7 +2023,7 @@ msgstr "" "``tearDown`` a continuación. :meth:`unittest.TestCase.addCleanup` hace que " "esto sea más fácil:" -#: ../Doc/library/unittest.mock.rst:1810 +#: ../Doc/library/unittest.mock.rst:1812 msgid "" "As an added bonus you no longer need to keep a reference to the ``patcher`` " "object." @@ -2030,7 +2031,7 @@ msgstr "" "Como beneficio adicional, ya no es necesario mantener una referencia al " "objeto ``patcher``." -#: ../Doc/library/unittest.mock.rst:1813 +#: ../Doc/library/unittest.mock.rst:1815 msgid "" "It is also possible to stop all patches which have been started by using :" "func:`patch.stopall`." @@ -2038,17 +2039,17 @@ msgstr "" "También es posible detener todos los parches que han sido iniciados usando :" "func:`patch.stopall`." -#: ../Doc/library/unittest.mock.rst:1818 +#: ../Doc/library/unittest.mock.rst:1820 msgid "Stop all active patches. Only stops patches started with ``start``." msgstr "" "Detiene todos los parches activos. Solo se detienen parches iniciados con " "``start``." -#: ../Doc/library/unittest.mock.rst:1824 +#: ../Doc/library/unittest.mock.rst:1826 msgid "patch builtins" msgstr "parchear objetos incorporados (builtins)" -#: ../Doc/library/unittest.mock.rst:1825 +#: ../Doc/library/unittest.mock.rst:1827 msgid "" "You can patch any builtins within a module. The following example patches " "builtin :func:`ord`::" @@ -2056,11 +2057,11 @@ msgstr "" "Puedes parchear cualquier objeto incorporado dentro de un módulo. El " "siguiente ejemplo parchea la función incorporada :func:`ord`:" -#: ../Doc/library/unittest.mock.rst:1840 +#: ../Doc/library/unittest.mock.rst:1842 msgid "TEST_PREFIX" msgstr "TEST_PREFIX" -#: ../Doc/library/unittest.mock.rst:1842 +#: ../Doc/library/unittest.mock.rst:1844 msgid "" "All of the patchers can be used as class decorators. When used in this way " "they wrap every test method on the class. The patchers recognise methods " @@ -2073,7 +2074,7 @@ msgstr "" "métodos a probar. Esta es la misma forma que la clase :class:`unittest." "TestLoader` usa para encontrar métodos de prueba por defecto." -#: ../Doc/library/unittest.mock.rst:1847 +#: ../Doc/library/unittest.mock.rst:1849 msgid "" "It is possible that you want to use a different prefix for your tests. You " "can inform the patchers of the different prefix by setting ``patch." @@ -2083,22 +2084,22 @@ msgstr "" "pruebas. Puedes informar a los parcheadores del cambio de prefijo " "estableciendo el atributo ``patch.TEST_PREFIX``:" -#: ../Doc/library/unittest.mock.rst:1870 +#: ../Doc/library/unittest.mock.rst:1872 msgid "Nesting Patch Decorators" msgstr "Anidando decoradores patch" -#: ../Doc/library/unittest.mock.rst:1872 +#: ../Doc/library/unittest.mock.rst:1874 msgid "" "If you want to perform multiple patches then you can simply stack up the " "decorators." msgstr "" "Si deseas aplicar múltiples parches, solo tienes que apilar los decoradores." -#: ../Doc/library/unittest.mock.rst:1875 +#: ../Doc/library/unittest.mock.rst:1877 msgid "You can stack up multiple patch decorators using this pattern:" msgstr "Puede apilar múltiples decoradores patch usando el siguiente patrón:" -#: ../Doc/library/unittest.mock.rst:1891 +#: ../Doc/library/unittest.mock.rst:1893 msgid "" "Note that the decorators are applied from the bottom upwards. This is the " "standard way that Python applies decorators. The order of the created mocks " @@ -2109,11 +2110,11 @@ msgstr "" "los objetos simulados generados se pasan a la función de prueba coincide con " "este orden." -#: ../Doc/library/unittest.mock.rst:1899 +#: ../Doc/library/unittest.mock.rst:1901 msgid "Where to patch" msgstr "Dónde parchear" -#: ../Doc/library/unittest.mock.rst:1901 +#: ../Doc/library/unittest.mock.rst:1903 msgid "" ":func:`patch` works by (temporarily) changing the object that a *name* " "points to with another one. There can be many names pointing to any " @@ -2126,7 +2127,7 @@ msgstr "" "parchear el nombre utilizado para el objeto por el sistema concreto bajo " "prueba." -#: ../Doc/library/unittest.mock.rst:1906 +#: ../Doc/library/unittest.mock.rst:1908 msgid "" "The basic principle is that you patch where an object is *looked up*, which " "is not necessarily the same place as where it is defined. A couple of " @@ -2136,14 +2137,14 @@ msgstr "" "necesariamente el mismo lugar donde está definido. Un par de ejemplos " "ayudarán a aclarar esto." -#: ../Doc/library/unittest.mock.rst:1910 +#: ../Doc/library/unittest.mock.rst:1912 msgid "" "Imagine we have a project that we want to test with the following structure::" msgstr "" "Imaginemos que tenemos un proyecto, que queremos probar, con la siguiente " "estructura:" -#: ../Doc/library/unittest.mock.rst:1919 +#: ../Doc/library/unittest.mock.rst:1921 msgid "" "Now we want to test ``some_function`` but we want to mock out ``SomeClass`` " "using :func:`patch`. The problem is that when we import module b, which we " @@ -2160,7 +2161,7 @@ msgstr "" "a la ``SomeClass`` *real*, por lo que parece que nuestro parcheo no tuvo " "ningún efecto." -#: ../Doc/library/unittest.mock.rst:1926 +#: ../Doc/library/unittest.mock.rst:1928 msgid "" "The key is to patch out ``SomeClass`` where it is used (or where it is " "looked up). In this case ``some_function`` will actually look up " @@ -2171,7 +2172,7 @@ msgstr "" "este caso ``some_function`` realmente va a buscar ``SomeClass`` en el módulo " "b, donde lo hemos importado. La aplicación de parches debe ser similar a:" -#: ../Doc/library/unittest.mock.rst:1932 +#: ../Doc/library/unittest.mock.rst:1934 msgid "" "However, consider the alternative scenario where instead of ``from a import " "SomeClass`` module b does ``import a`` and ``some_function`` uses ``a." @@ -2185,11 +2186,11 @@ msgstr "" "comunes. En este caso, la clase que queremos parchear está siendo buscada en " "el módulo, por lo que tenemos que parchear ``a.SomeClass``:" -#: ../Doc/library/unittest.mock.rst:1941 +#: ../Doc/library/unittest.mock.rst:1943 msgid "Patching Descriptors and Proxy Objects" msgstr "Parcheando descriptores y objetos proxy" -#: ../Doc/library/unittest.mock.rst:1943 +#: ../Doc/library/unittest.mock.rst:1945 msgid "" "Both patch_ and patch.object_ correctly patch and restore descriptors: class " "methods, static methods and properties. You should patch these on the " @@ -2205,15 +2206,15 @@ msgstr "" "object `_." -#: ../Doc/library/unittest.mock.rst:1951 +#: ../Doc/library/unittest.mock.rst:1953 msgid "MagicMock and magic method support" msgstr "MagicMock y el soporte de métodos mágicos" -#: ../Doc/library/unittest.mock.rst:1956 +#: ../Doc/library/unittest.mock.rst:1958 msgid "Mocking Magic Methods" msgstr "Simular métodos mágicos" -#: ../Doc/library/unittest.mock.rst:1958 +#: ../Doc/library/unittest.mock.rst:1960 msgid "" ":class:`Mock` supports mocking the Python protocol methods, also known as " "\"magic methods\". This allows mock objects to replace containers or other " @@ -2224,7 +2225,7 @@ msgstr "" "simulados reemplazar contenedores u otros objetos que implementan protocolos " "de Python." -#: ../Doc/library/unittest.mock.rst:1962 +#: ../Doc/library/unittest.mock.rst:1964 msgid "" "Because magic methods are looked up differently from normal methods [#]_, " "this support has been specially implemented. This means that only specific " @@ -2237,7 +2238,7 @@ msgstr "" "de métodos soportados incluye *casi* todos los existentes. Si hay alguno que " "falta y que consideras necesario, por favor háznoslo saber." -#: ../Doc/library/unittest.mock.rst:1967 +#: ../Doc/library/unittest.mock.rst:1969 msgid "" "You mock magic methods by setting the method you are interested in to a " "function or a mock instance. If you are using a function then it *must* take " @@ -2247,7 +2248,7 @@ msgstr "" "una función o en una instancia simulada. Si utilizas una función, *debe* " "aceptar ``self`` como primer argumento [#]_." -#: ../Doc/library/unittest.mock.rst:1990 +#: ../Doc/library/unittest.mock.rst:1992 msgid "" "One use case for this is for mocking objects used as context managers in a :" "keyword:`with` statement:" @@ -2255,7 +2256,7 @@ msgstr "" "Un caso de uso para esto es simular objetos usados como gestores de contexto " "en una declaración :keyword:`with`:" -#: ../Doc/library/unittest.mock.rst:2002 +#: ../Doc/library/unittest.mock.rst:2004 msgid "" "Calls to magic methods do not appear in :attr:`~Mock.method_calls`, but they " "are recorded in :attr:`~Mock.mock_calls`." @@ -2263,7 +2264,7 @@ msgstr "" "Las llamadas a métodos mágicos no aparecen registradas en :attr:`~Mock." "method_calls`, aunque si se registran en :attr:`~Mock.mock_calls`." -#: ../Doc/library/unittest.mock.rst:2007 +#: ../Doc/library/unittest.mock.rst:2009 msgid "" "If you use the *spec* keyword argument to create a mock then attempting to " "set a magic method that isn't in the spec will raise an :exc:" @@ -2273,23 +2274,23 @@ msgstr "" "simulado, intentar después establecer un método mágico que no está en la " "especificación lanzará una excepción :exc:`AttributeError`." -#: ../Doc/library/unittest.mock.rst:2010 +#: ../Doc/library/unittest.mock.rst:2012 msgid "The full list of supported magic methods is:" msgstr "La lista completa de los métodos mágicos soportados es la siguiente:" -#: ../Doc/library/unittest.mock.rst:2012 +#: ../Doc/library/unittest.mock.rst:2014 msgid "``__hash__``, ``__sizeof__``, ``__repr__`` and ``__str__``" msgstr "``__hash__``, ``__sizeof__``, ``__repr__`` y ``__str__``" -#: ../Doc/library/unittest.mock.rst:2013 +#: ../Doc/library/unittest.mock.rst:2015 msgid "``__dir__``, ``__format__`` and ``__subclasses__``" msgstr "``__dir__``, ``__format__`` y ``__subclasses__``" -#: ../Doc/library/unittest.mock.rst:2014 +#: ../Doc/library/unittest.mock.rst:2016 msgid "``__round__``, ``__floor__``, ``__trunc__`` and ``__ceil__``" msgstr "``__round__``, ``__floor__``, ``__trunc__`` y ``__ceil__``" -#: ../Doc/library/unittest.mock.rst:2015 +#: ../Doc/library/unittest.mock.rst:2017 msgid "" "Comparisons: ``__lt__``, ``__gt__``, ``__le__``, ``__ge__``, ``__eq__`` and " "``__ne__``" @@ -2297,7 +2298,7 @@ msgstr "" "Comparaciones: ``__lt__``, ``__gt__``, ``__le__``, ``__ge__``, ``__eq__`` y " "``__ne__``" -#: ../Doc/library/unittest.mock.rst:2017 +#: ../Doc/library/unittest.mock.rst:2019 msgid "" "Container methods: ``__getitem__``, ``__setitem__``, ``__delitem__``, " "``__contains__``, ``__len__``, ``__iter__``, ``__reversed__`` and " @@ -2307,7 +2308,7 @@ msgstr "" "``__contains__``, ``__len__``, ``__iter__``, ``__reversed__`` y " "``__missing__``" -#: ../Doc/library/unittest.mock.rst:2020 +#: ../Doc/library/unittest.mock.rst:2022 msgid "" "Context manager: ``__enter__``, ``__exit__``, ``__aenter__`` and " "``__aexit__``" @@ -2315,11 +2316,11 @@ msgstr "" "Administrador de contexto: ``__enter__``, ``__exit__``, ``__aenter__`` y " "``__aexit__``" -#: ../Doc/library/unittest.mock.rst:2021 +#: ../Doc/library/unittest.mock.rst:2023 msgid "Unary numeric methods: ``__neg__``, ``__pos__`` and ``__invert__``" msgstr "Métodos numéricos unarios: ``__neg__``, ``__pos__`` y ``__invert__``" -#: ../Doc/library/unittest.mock.rst:2022 +#: ../Doc/library/unittest.mock.rst:2024 msgid "" "The numeric methods (including right hand and in-place variants): " "``__add__``, ``__sub__``, ``__mul__``, ``__matmul__``, ``__truediv__``, " @@ -2331,7 +2332,7 @@ msgstr "" "``__floordiv__``, ``__mod__``, ``__divmod__``, ``__lshift__``, " "``__rshift__``, ``__and__``, ``__xor__``, ``__or__`` y ``__pow__``" -#: ../Doc/library/unittest.mock.rst:2026 +#: ../Doc/library/unittest.mock.rst:2028 msgid "" "Numeric conversion methods: ``__complex__``, ``__int__``, ``__float__`` and " "``__index__``" @@ -2339,11 +2340,11 @@ msgstr "" "Métodos de conversión numérica: ``__complex__``, ``__int__``, ``__float__`` " "y ``__index__``" -#: ../Doc/library/unittest.mock.rst:2028 +#: ../Doc/library/unittest.mock.rst:2030 msgid "Descriptor methods: ``__get__``, ``__set__`` and ``__delete__``" msgstr "Métodos de descriptores: ``__get__``, ``__set__`` y ``__delete__``" -#: ../Doc/library/unittest.mock.rst:2029 +#: ../Doc/library/unittest.mock.rst:2031 msgid "" "Pickling: ``__reduce__``, ``__reduce_ex__``, ``__getinitargs__``, " "``__getnewargs__``, ``__getstate__`` and ``__setstate__``" @@ -2351,19 +2352,19 @@ msgstr "" "Pickling: ``__reduce__``, ``__reduce_ex__``, ``__getinitargs__``, " "``__getnewargs__``, ``__getstate__`` y ``__setstate__``" -#: ../Doc/library/unittest.mock.rst:2031 +#: ../Doc/library/unittest.mock.rst:2033 msgid "File system path representation: ``__fspath__``" msgstr "Representación de rutas del sistema de archivos: ``__fspath__``" -#: ../Doc/library/unittest.mock.rst:2032 +#: ../Doc/library/unittest.mock.rst:2034 msgid "Asynchronous iteration methods: ``__aiter__`` and ``__anext__``" msgstr "Métodos de iteración asíncronos: ``__aiter__`` y ``__anext__``" -#: ../Doc/library/unittest.mock.rst:2034 +#: ../Doc/library/unittest.mock.rst:2036 msgid "Added support for :func:`os.PathLike.__fspath__`." msgstr "Se añadió soporte para :func:`os.PathLike.__fspath__`." -#: ../Doc/library/unittest.mock.rst:2037 +#: ../Doc/library/unittest.mock.rst:2039 msgid "" "Added support for ``__aenter__``, ``__aexit__``, ``__aiter__`` and " "``__anext__``." @@ -2371,7 +2372,7 @@ msgstr "" "Se añadió soporte para ``__aenter__``, ``__aexit__``, ``__aiter__`` y " "``__anext__``." -#: ../Doc/library/unittest.mock.rst:2041 +#: ../Doc/library/unittest.mock.rst:2043 msgid "" "The following methods exist but are *not* supported as they are either in " "use by mock, can't be set dynamically, or can cause problems:" @@ -2380,21 +2381,21 @@ msgstr "" "usados por el propio objeto simulado, porque no se pueden establecer " "dinámicamente o porque pueden causar problemas:" -#: ../Doc/library/unittest.mock.rst:2044 +#: ../Doc/library/unittest.mock.rst:2046 msgid "``__getattr__``, ``__setattr__``, ``__init__`` and ``__new__``" msgstr "``__getattr__``, ``__setattr__``, ``__init__`` y ``__new__``" -#: ../Doc/library/unittest.mock.rst:2045 +#: ../Doc/library/unittest.mock.rst:2047 msgid "" "``__prepare__``, ``__instancecheck__``, ``__subclasscheck__``, ``__del__``" msgstr "" "``__prepare__``, ``__instancecheck__``, ``__subclasscheck__`` y ``__del__``" -#: ../Doc/library/unittest.mock.rst:2050 +#: ../Doc/library/unittest.mock.rst:2052 msgid "Magic Mock" msgstr "Magic Mock" -#: ../Doc/library/unittest.mock.rst:2052 +#: ../Doc/library/unittest.mock.rst:2054 msgid "" "There are two ``MagicMock`` variants: :class:`MagicMock` and :class:" "`NonCallableMagicMock`." @@ -2402,7 +2403,7 @@ msgstr "" "Hay dos variantes de ``MagicMock``: :class:`MagicMock` y :class:" "`NonCallableMagicMock`." -#: ../Doc/library/unittest.mock.rst:2057 +#: ../Doc/library/unittest.mock.rst:2059 msgid "" "``MagicMock`` is a subclass of :class:`Mock` with default implementations of " "most of the magic methods. You can use ``MagicMock`` without having to " @@ -2413,13 +2414,13 @@ msgstr "" "para crear objetos simulados sin tener que establecer los métodos mágicos " "por ti mismo." -#: ../Doc/library/unittest.mock.rst:2061 +#: ../Doc/library/unittest.mock.rst:2063 msgid "The constructor parameters have the same meaning as for :class:`Mock`." msgstr "" "Los parámetros del constructor tienen el mismo significado que en :class:" "`Mock`." -#: ../Doc/library/unittest.mock.rst:2063 +#: ../Doc/library/unittest.mock.rst:2065 msgid "" "If you use the *spec* or *spec_set* arguments then *only* magic methods that " "exist in the spec will be created." @@ -2427,11 +2428,11 @@ msgstr "" "Si utilizas los argumentos *spec* o *spec_set* entonces *solo* los métodos " "mágicos que existan en la especificación serán creados." -#: ../Doc/library/unittest.mock.rst:2069 +#: ../Doc/library/unittest.mock.rst:2071 msgid "A non-callable version of :class:`MagicMock`." msgstr "Una versión no invocable de :class:`MagicMock`." -#: ../Doc/library/unittest.mock.rst:2071 +#: ../Doc/library/unittest.mock.rst:2073 msgid "" "The constructor parameters have the same meaning as for :class:`MagicMock`, " "with the exception of *return_value* and *side_effect* which have no meaning " @@ -2441,7 +2442,7 @@ msgstr "" "`MagicMock`, con la excepción de *return_value* y *side_effect* que no " "tienen significado en un objeto simulado no invocable." -#: ../Doc/library/unittest.mock.rst:2075 +#: ../Doc/library/unittest.mock.rst:2077 msgid "" "The magic methods are setup with :class:`MagicMock` objects, so you can " "configure them and use them in the usual way:" @@ -2449,7 +2450,7 @@ msgstr "" "Los métodos mágicos están implementados mediante objetos :class:`MagicMock`, " "por lo que puedes configurarlos y utilizarlos de la forma habitual:" -#: ../Doc/library/unittest.mock.rst:2085 +#: ../Doc/library/unittest.mock.rst:2087 msgid "" "By default many of the protocol methods are required to return objects of a " "specific type. These methods are preconfigured with a default return value, " @@ -2464,83 +2465,83 @@ msgstr "" "En todo caso, puedes *establecer* el valor de retorno de forma manual si " "deseas cambiar el valor predeterminado." -#: ../Doc/library/unittest.mock.rst:2091 +#: ../Doc/library/unittest.mock.rst:2093 msgid "Methods and their defaults:" msgstr "Métodos y sus valores por defecto:" -#: ../Doc/library/unittest.mock.rst:2093 +#: ../Doc/library/unittest.mock.rst:2095 msgid "``__lt__``: ``NotImplemented``" msgstr "``__lt__``: ``NotImplemented``" -#: ../Doc/library/unittest.mock.rst:2094 +#: ../Doc/library/unittest.mock.rst:2096 msgid "``__gt__``: ``NotImplemented``" msgstr "``__gt__``: ``NotImplemented``" -#: ../Doc/library/unittest.mock.rst:2095 +#: ../Doc/library/unittest.mock.rst:2097 msgid "``__le__``: ``NotImplemented``" msgstr "``__le__``: ``NotImplemented``" -#: ../Doc/library/unittest.mock.rst:2096 +#: ../Doc/library/unittest.mock.rst:2098 msgid "``__ge__``: ``NotImplemented``" msgstr "``__ge__``: ``NotImplemented``" -#: ../Doc/library/unittest.mock.rst:2097 +#: ../Doc/library/unittest.mock.rst:2099 msgid "``__int__``: ``1``" msgstr "``__int__``: ``1``" -#: ../Doc/library/unittest.mock.rst:2098 +#: ../Doc/library/unittest.mock.rst:2100 msgid "``__contains__``: ``False``" msgstr "``__contains__``: ``False``" -#: ../Doc/library/unittest.mock.rst:2099 +#: ../Doc/library/unittest.mock.rst:2101 msgid "``__len__``: ``0``" msgstr "``__len__``: ``0``" -#: ../Doc/library/unittest.mock.rst:2100 +#: ../Doc/library/unittest.mock.rst:2102 msgid "``__iter__``: ``iter([])``" msgstr "``__iter__``: ``iter([])``" -#: ../Doc/library/unittest.mock.rst:2101 +#: ../Doc/library/unittest.mock.rst:2103 msgid "``__exit__``: ``False``" msgstr "``__exit__``: ``False``" -#: ../Doc/library/unittest.mock.rst:2102 +#: ../Doc/library/unittest.mock.rst:2104 msgid "``__aexit__``: ``False``" msgstr "``__aexit__``: ``False``" -#: ../Doc/library/unittest.mock.rst:2103 +#: ../Doc/library/unittest.mock.rst:2105 msgid "``__complex__``: ``1j``" msgstr "``__complex__``: ``1j``" -#: ../Doc/library/unittest.mock.rst:2104 +#: ../Doc/library/unittest.mock.rst:2106 msgid "``__float__``: ``1.0``" msgstr "``__float__``: ``1.0``" -#: ../Doc/library/unittest.mock.rst:2105 +#: ../Doc/library/unittest.mock.rst:2107 msgid "``__bool__``: ``True``" msgstr "``__bool__``: ``True``" -#: ../Doc/library/unittest.mock.rst:2106 +#: ../Doc/library/unittest.mock.rst:2108 msgid "``__index__``: ``1``" msgstr "``__index__``: ``1``" -#: ../Doc/library/unittest.mock.rst:2107 +#: ../Doc/library/unittest.mock.rst:2109 msgid "``__hash__``: default hash for the mock" msgstr "``__hash__``: hash predeterminado del objeto simulado" -#: ../Doc/library/unittest.mock.rst:2108 +#: ../Doc/library/unittest.mock.rst:2110 msgid "``__str__``: default str for the mock" msgstr "``__str__``: str predeterminado del objeto simulado" -#: ../Doc/library/unittest.mock.rst:2109 +#: ../Doc/library/unittest.mock.rst:2111 msgid "``__sizeof__``: default sizeof for the mock" msgstr "``__sizeof__``: sizeof predeterminado del objeto simulado" -#: ../Doc/library/unittest.mock.rst:2111 +#: ../Doc/library/unittest.mock.rst:2113 msgid "For example:" msgstr "Por ejemplo:" -#: ../Doc/library/unittest.mock.rst:2123 +#: ../Doc/library/unittest.mock.rst:2125 msgid "" "The two equality methods, :meth:`__eq__` and :meth:`__ne__`, are special. " "They do the default equality comparison on identity, using the :attr:`~Mock." @@ -2552,7 +2553,7 @@ msgstr "" "identidad, utilizando el atributo :attr:`~Mock.side_effect`, a menos que " "cambies su valor de retorno para que retorne alguna otra cosa:" -#: ../Doc/library/unittest.mock.rst:2137 +#: ../Doc/library/unittest.mock.rst:2139 msgid "" "The return value of :meth:`MagicMock.__iter__` can be any iterable object " "and isn't required to be an iterator:" @@ -2560,7 +2561,7 @@ msgstr "" "El valor de retorno de :meth:`MagicMock.__iter__` puede ser cualquier objeto " "iterable, no se requiere que sea un iterador:" -#: ../Doc/library/unittest.mock.rst:2147 +#: ../Doc/library/unittest.mock.rst:2149 msgid "" "If the return value *is* an iterator, then iterating over it once will " "consume it and subsequent iterations will result in an empty list:" @@ -2568,7 +2569,7 @@ msgstr "" "Si el valor de retorno *es* un iterador, iterar sobre él una vez que se " "consume, y cualquier iteración posterior, resultará en una lista vacía:" -#: ../Doc/library/unittest.mock.rst:2156 +#: ../Doc/library/unittest.mock.rst:2158 msgid "" "``MagicMock`` has all of the supported magic methods configured except for " "some of the obscure and obsolete ones. You can still set these up if you " @@ -2578,7 +2579,7 @@ msgstr "" "excepción de algunos de los más oscuros y obsoletos. De todas formas, puedes " "configurar estos también si lo deseas." -#: ../Doc/library/unittest.mock.rst:2159 +#: ../Doc/library/unittest.mock.rst:2161 msgid "" "Magic methods that are supported but not setup by default in ``MagicMock`` " "are:" @@ -2586,27 +2587,27 @@ msgstr "" "Los métodos mágicos que son compatibles, pero que no están configurados por " "defecto en ``MagicMock`` son:" -#: ../Doc/library/unittest.mock.rst:2161 +#: ../Doc/library/unittest.mock.rst:2163 msgid "``__subclasses__``" msgstr "``__subclasses__``" -#: ../Doc/library/unittest.mock.rst:2162 +#: ../Doc/library/unittest.mock.rst:2164 msgid "``__dir__``" msgstr "``__dir__``" -#: ../Doc/library/unittest.mock.rst:2163 +#: ../Doc/library/unittest.mock.rst:2165 msgid "``__format__``" msgstr "``__format__``" -#: ../Doc/library/unittest.mock.rst:2164 +#: ../Doc/library/unittest.mock.rst:2166 msgid "``__get__``, ``__set__`` and ``__delete__``" msgstr "``__get__``, ``__set__`` y ``__delete__``" -#: ../Doc/library/unittest.mock.rst:2165 +#: ../Doc/library/unittest.mock.rst:2167 msgid "``__reversed__`` and ``__missing__``" msgstr "``__reversed__`` y ``__missing__``" -#: ../Doc/library/unittest.mock.rst:2166 +#: ../Doc/library/unittest.mock.rst:2168 msgid "" "``__reduce__``, ``__reduce_ex__``, ``__getinitargs__``, ``__getnewargs__``, " "``__getstate__`` and ``__setstate__``" @@ -2614,11 +2615,11 @@ msgstr "" "``__reduce__``, ``__reduce_ex__``, ``__getinitargs__``, ``__getnewargs__``, " "``__getstate__`` y ``__setstate__``" -#: ../Doc/library/unittest.mock.rst:2168 +#: ../Doc/library/unittest.mock.rst:2170 msgid "``__getformat__``" msgstr "``__getformat__``" -#: ../Doc/library/unittest.mock.rst:2172 +#: ../Doc/library/unittest.mock.rst:2174 msgid "" "Magic methods *should* be looked up on the class rather than the instance. " "Different versions of Python are inconsistent about applying this rule. The " @@ -2629,7 +2630,7 @@ msgstr "" "aplicación de esta regla. Los métodos de protocolo soportados deben trabajar " "con todas las versiones de Python." -#: ../Doc/library/unittest.mock.rst:2176 +#: ../Doc/library/unittest.mock.rst:2178 msgid "" "The function is basically hooked up to the class, but each ``Mock`` instance " "is kept isolated from the others." @@ -2637,15 +2638,15 @@ msgstr "" "La función está básicamente conectada a la clase, pero cada instancia " "``Mock`` se mantiene aislada de las demás." -#: ../Doc/library/unittest.mock.rst:2181 +#: ../Doc/library/unittest.mock.rst:2183 msgid "Helpers" msgstr "Ayudantes" -#: ../Doc/library/unittest.mock.rst:2184 +#: ../Doc/library/unittest.mock.rst:2186 msgid "sentinel" msgstr "sentinel" -#: ../Doc/library/unittest.mock.rst:2188 +#: ../Doc/library/unittest.mock.rst:2190 msgid "" "The ``sentinel`` object provides a convenient way of providing unique " "objects for your tests." @@ -2653,7 +2654,7 @@ msgstr "" "El objeto ``sentinel`` proporciona una manera conveniente de proporcionar " "objetos únicos para tus pruebas." -#: ../Doc/library/unittest.mock.rst:2191 +#: ../Doc/library/unittest.mock.rst:2193 msgid "" "Attributes are created on demand when you access them by name. Accessing the " "same attribute will always return the same object. The objects returned have " @@ -2664,7 +2665,7 @@ msgstr "" "el mismo objeto. Los objetos retornados tienen una reproducción (repr) " "apropiada para que los mensajes de error de la prueba sean legibles." -#: ../Doc/library/unittest.mock.rst:2195 +#: ../Doc/library/unittest.mock.rst:2197 msgid "" "The ``sentinel`` attributes now preserve their identity when they are :mod:" "`copied ` or :mod:`pickled `." @@ -2672,7 +2673,7 @@ msgstr "" "Los atributos ``sentinel`` ahora preservan su identidad cuando son :mod:" "`copiados ` o :mod:`serializados con pickle `." -#: ../Doc/library/unittest.mock.rst:2199 +#: ../Doc/library/unittest.mock.rst:2201 msgid "" "Sometimes when testing you need to test that a specific object is passed as " "an argument to another method, or returned. It can be common to create named " @@ -2685,7 +2686,7 @@ msgstr "" "`sentinel` proporciona una manera conveniente de crear y probar la identidad " "de este tipo de objetos." -#: ../Doc/library/unittest.mock.rst:2204 +#: ../Doc/library/unittest.mock.rst:2206 msgid "" "In this example we monkey patch ``method`` to return ``sentinel." "some_object``:" @@ -2693,11 +2694,11 @@ msgstr "" "En el siguiente ejemplo, parcheamos ``method`` para retornar ``sentinel." "some_object``:" -#: ../Doc/library/unittest.mock.rst:2216 +#: ../Doc/library/unittest.mock.rst:2218 msgid "DEFAULT" msgstr "DEFAULT" -#: ../Doc/library/unittest.mock.rst:2221 +#: ../Doc/library/unittest.mock.rst:2223 msgid "" "The :data:`DEFAULT` object is a pre-created sentinel (actually ``sentinel." "DEFAULT``). It can be used by :attr:`~Mock.side_effect` functions to " @@ -2707,11 +2708,11 @@ msgstr "" "DEFAULT``). Puede ser usado por las funciones :attr:`~Mock.side_effect` para " "indicar que el valor de retorno normal debe ser utilizado." -#: ../Doc/library/unittest.mock.rst:2227 +#: ../Doc/library/unittest.mock.rst:2229 msgid "call" msgstr "call" -#: ../Doc/library/unittest.mock.rst:2231 +#: ../Doc/library/unittest.mock.rst:2233 msgid "" ":func:`call` is a helper object for making simpler assertions, for comparing " "with :attr:`~Mock.call_args`, :attr:`~Mock.call_args_list`, :attr:`~Mock." @@ -2723,7 +2724,7 @@ msgstr "" "call_args_list`, :attr:`~Mock.mock_calls` y :attr:`~Mock.method_calls`. :" "func:`call` y también se puede utilizar con :meth:`~Mock.assert_has_calls`." -#: ../Doc/library/unittest.mock.rst:2244 +#: ../Doc/library/unittest.mock.rst:2246 msgid "" "For a call object that represents multiple calls, :meth:`call_list` returns " "a list of all the intermediate calls as well as the final call." @@ -2732,7 +2733,7 @@ msgstr "" "`call_list` retorna una lista con todas las llamadas intermedias, así como " "la llamada final." -#: ../Doc/library/unittest.mock.rst:2248 +#: ../Doc/library/unittest.mock.rst:2250 msgid "" "``call_list`` is particularly useful for making assertions on \"chained " "calls\". A chained call is multiple calls on a single line of code. This " @@ -2745,7 +2746,7 @@ msgstr "" "mock_calls` de un objeto simulado. Construir manualmente la secuencia de " "llamadas puede ser tedioso." -#: ../Doc/library/unittest.mock.rst:2253 +#: ../Doc/library/unittest.mock.rst:2255 msgid "" ":meth:`~call.call_list` can construct the sequence of calls from the same " "chained call:" @@ -2753,7 +2754,7 @@ msgstr "" ":meth:`~call.call_list` puede construir la secuencia de llamadas desde la " "misma llamada encadenada:" -#: ../Doc/library/unittest.mock.rst:2270 +#: ../Doc/library/unittest.mock.rst:2272 msgid "" "A ``call`` object is either a tuple of (positional args, keyword args) or " "(name, positional args, keyword args) depending on how it was constructed. " @@ -2771,7 +2772,7 @@ msgstr "" "mock_calls` si pueden ser de utilidad para para acceder a los argumentos " "individuales que contienen." -#: ../Doc/library/unittest.mock.rst:2277 +#: ../Doc/library/unittest.mock.rst:2279 msgid "" "The ``call`` objects in :attr:`Mock.call_args` and :attr:`Mock." "call_args_list` are two-tuples of (positional args, keyword args) whereas " @@ -2785,7 +2786,7 @@ msgstr "" "junto con los que construyas por ti mismo, constan de tres tuplas (nombre, " "argumentos posicionales, argumentos por palabra clave)." -#: ../Doc/library/unittest.mock.rst:2282 +#: ../Doc/library/unittest.mock.rst:2284 msgid "" "You can use their \"tupleness\" to pull out the individual arguments for " "more complex introspection and assertions. The positional arguments are a " @@ -2797,11 +2798,11 @@ msgstr "" "aserciones más complejas. Los argumentos posicionales son una tupla (vacía " "si no hay ninguno) y los argumentos por palabra clave son un diccionario:" -#: ../Doc/library/unittest.mock.rst:2315 +#: ../Doc/library/unittest.mock.rst:2317 msgid "create_autospec" msgstr "create_autospec" -#: ../Doc/library/unittest.mock.rst:2319 +#: ../Doc/library/unittest.mock.rst:2321 msgid "" "Create a mock object using another object as a spec. Attributes on the mock " "will use the corresponding attribute on the *spec* object as their spec." @@ -2810,7 +2811,7 @@ msgstr "" "especificación. Los atributos del objeto simulado utilizarán el atributo " "correspondiente del objeto *spec* como su especificación." -#: ../Doc/library/unittest.mock.rst:2323 +#: ../Doc/library/unittest.mock.rst:2325 msgid "" "Functions or methods being mocked will have their arguments checked to " "ensure that they are called with the correct signature." @@ -2818,7 +2819,7 @@ msgstr "" "Los argumentos de las funciones o métodos simulados se validarán para " "asegurarse de que son invocados con la firma correcta." -#: ../Doc/library/unittest.mock.rst:2326 +#: ../Doc/library/unittest.mock.rst:2328 msgid "" "If *spec_set* is ``True`` then attempting to set attributes that don't exist " "on the spec object will raise an :exc:`AttributeError`." @@ -2826,7 +2827,7 @@ msgstr "" "Si *spec_set* es ``True``, tratar de establecer atributos que no existen en " "el objeto especificado lanzará una excepción :exc:`AttributeError`." -#: ../Doc/library/unittest.mock.rst:2329 +#: ../Doc/library/unittest.mock.rst:2331 msgid "" "If a class is used as a spec then the return value of the mock (the instance " "of the class) will have the same spec. You can use a class as the spec for " @@ -2839,7 +2840,7 @@ msgstr "" "``instance=True``. El objeto simulado retornado solo será invocable si las " "instancias del objeto simulado son también invocables." -#: ../Doc/library/unittest.mock.rst:2334 +#: ../Doc/library/unittest.mock.rst:2336 msgid "" ":func:`create_autospec` also takes arbitrary keyword arguments that are " "passed to the constructor of the created mock." @@ -2847,7 +2848,7 @@ msgstr "" ":func:`create_autospec` también acepta argumentos por palabra clave " "arbitrarios, que son pasados al constructor del objeto simulado creado." -#: ../Doc/library/unittest.mock.rst:2337 +#: ../Doc/library/unittest.mock.rst:2339 msgid "" "See :ref:`auto-speccing` for examples of how to use auto-speccing with :func:" "`create_autospec` and the *autospec* argument to :func:`patch`." @@ -2856,7 +2857,7 @@ msgstr "" "autoespecificación mediante :func:`create_autospec` y el argumento " "*autospec* de :func:`patch`." -#: ../Doc/library/unittest.mock.rst:2343 +#: ../Doc/library/unittest.mock.rst:2345 msgid "" ":func:`create_autospec` now returns an :class:`AsyncMock` if the target is " "an async function." @@ -2864,11 +2865,11 @@ msgstr "" ":func:`create_autospec` ahora retorna un objeto :class:`AsyncMock` si el " "objetivo a simular es una función asíncrona." -#: ../Doc/library/unittest.mock.rst:2348 +#: ../Doc/library/unittest.mock.rst:2350 msgid "ANY" msgstr "ANY" -#: ../Doc/library/unittest.mock.rst:2352 +#: ../Doc/library/unittest.mock.rst:2354 msgid "" "Sometimes you may need to make assertions about *some* of the arguments in a " "call to mock, but either not care about some of the arguments or want to " @@ -2880,7 +2881,7 @@ msgstr "" "resto, o puede que quieras hacer uso de ellos de forma individual fuera de :" "attr:`~Mock.call_args` y hacer aserciones más complejas con ellos." -#: ../Doc/library/unittest.mock.rst:2357 +#: ../Doc/library/unittest.mock.rst:2359 msgid "" "To ignore certain arguments you can pass in objects that compare equal to " "*everything*. Calls to :meth:`~Mock.assert_called_with` and :meth:`~Mock." @@ -2891,7 +2892,7 @@ msgstr "" "assert_called_with` y :meth:`~Mock.assert_called_once_with` tendrán éxito " "sin importar lo que se haya pasado realmente." -#: ../Doc/library/unittest.mock.rst:2366 +#: ../Doc/library/unittest.mock.rst:2368 msgid "" ":data:`ANY` can also be used in comparisons with call lists like :attr:" "`~Mock.mock_calls`:" @@ -2899,11 +2900,11 @@ msgstr "" ":data:`ANY` también se puede utilizar en las comparaciones con las listas de " "llamadas, como :attr:`~Mock.mock_calls`:" -#: ../Doc/library/unittest.mock.rst:2379 +#: ../Doc/library/unittest.mock.rst:2381 msgid "FILTER_DIR" msgstr "FILTER_DIR" -#: ../Doc/library/unittest.mock.rst:2383 +#: ../Doc/library/unittest.mock.rst:2385 msgid "" ":data:`FILTER_DIR` is a module level variable that controls the way mock " "objects respond to :func:`dir`. The default is ``True``, which uses the " @@ -2918,7 +2919,7 @@ msgstr "" "filtrado o necesita desactivarlo con fines de diagnóstico, configure ``mock." "FILTER_DIR = False``." -#: ../Doc/library/unittest.mock.rst:2389 +#: ../Doc/library/unittest.mock.rst:2391 msgid "" "With filtering on, ``dir(some_mock)`` shows only useful attributes and will " "include any dynamically created attributes that wouldn't normally be shown. " @@ -2932,7 +2933,7 @@ msgstr "" "*autospec*) se muestran todos los atributos del objeto original, incluso si " "no se ha accedido a ellos todavía:" -#: ../Doc/library/unittest.mock.rst:2416 +#: ../Doc/library/unittest.mock.rst:2418 msgid "" "Many of the not-very-useful (private to :class:`Mock` rather than the thing " "being mocked) underscore and double underscore prefixed attributes have been " @@ -2947,21 +2948,22 @@ msgstr "" "desactivarlo estableciendo el modificador a nivel de módulo :data:" "`FILTER_DIR`:" -#: ../Doc/library/unittest.mock.rst:2437 +#: ../Doc/library/unittest.mock.rst:2439 +#, fuzzy msgid "" "Alternatively you can just use ``vars(my_mock)`` (instance members) and " "``dir(type(my_mock))`` (type members) to bypass the filtering irrespective " -"of :data:`mock.FILTER_DIR`." +"of :const:`mock.FILTER_DIR`." msgstr "" "Como alternativa, puedes usar ``vars(my_mock)`` (miembros de instancia) y " "``dir(type(my_mock))`` (miembros de tipo) para omitir el filtrado con " "independencia del valor de :data:`mock.FILTER_DIR`." -#: ../Doc/library/unittest.mock.rst:2443 +#: ../Doc/library/unittest.mock.rst:2445 msgid "mock_open" msgstr "mock_open" -#: ../Doc/library/unittest.mock.rst:2447 +#: ../Doc/library/unittest.mock.rst:2449 msgid "" "A helper function to create a mock to replace the use of :func:`open`. It " "works for :func:`open` called directly or used as a context manager." @@ -2971,7 +2973,7 @@ msgstr "" "directas a :func:`open` y para aquellos casos en los que es utilizada como " "gestor de contexto." -#: ../Doc/library/unittest.mock.rst:2450 +#: ../Doc/library/unittest.mock.rst:2452 msgid "" "The *mock* argument is the mock object to configure. If ``None`` (the " "default) then a :class:`MagicMock` will be created for you, with the API " @@ -2981,7 +2983,7 @@ msgstr "" "defecto) un objeto :class:`MagicMock` se creará para ti, con la API limitada " "a métodos o atributos disponibles en los gestores de fichero estándares." -#: ../Doc/library/unittest.mock.rst:2454 +#: ../Doc/library/unittest.mock.rst:2456 msgid "" "*read_data* is a string for the :meth:`~io.IOBase.read`, :meth:`~io.IOBase." "readline`, and :meth:`~io.IOBase.readlines` methods of the file handle to " @@ -3005,7 +3007,7 @@ msgstr "" "pypi.org>`_ puede ofrecer un sistema de archivos realista para usar en las " "pruebas." -#: ../Doc/library/unittest.mock.rst:2464 +#: ../Doc/library/unittest.mock.rst:2466 msgid "" "Added :meth:`~io.IOBase.readline` and :meth:`~io.IOBase.readlines` support. " "The mock of :meth:`~io.IOBase.read` changed to consume *read_data* rather " @@ -3015,11 +3017,11 @@ msgstr "" "readlines`. El objeto simulado de :meth:`~io.IOBase.read` ahora consume " "datos de *read_data*, en lugar de retornarlo en cada llamada." -#: ../Doc/library/unittest.mock.rst:2469 +#: ../Doc/library/unittest.mock.rst:2471 msgid "*read_data* is now reset on each call to the *mock*." msgstr "*read_data* ahora es restablecido en cada llamada al *mock*." -#: ../Doc/library/unittest.mock.rst:2472 +#: ../Doc/library/unittest.mock.rst:2474 msgid "" "Added :meth:`__iter__` to implementation so that iteration (such as in for " "loops) correctly consumes *read_data*." @@ -3027,7 +3029,7 @@ msgstr "" "Se añadió el método :meth:`__iter__` a la implementación, de manera que la " "iteración (como ocurre en los bucles) consume apropiadamente *read_data*." -#: ../Doc/library/unittest.mock.rst:2476 +#: ../Doc/library/unittest.mock.rst:2478 msgid "" "Using :func:`open` as a context manager is a great way to ensure your file " "handles are closed properly and is becoming common::" @@ -3036,7 +3038,7 @@ msgstr "" "de que los gestores de archivos se cierren correctamente al terminar y se " "está convirtiendo en una práctica común:" -#: ../Doc/library/unittest.mock.rst:2482 +#: ../Doc/library/unittest.mock.rst:2484 msgid "" "The issue is that even if you mock out the call to :func:`open` it is the " "*returned object* that is used as a context manager (and has :meth:" @@ -3046,7 +3048,7 @@ msgstr "" "*objeto retornado* el que se utiliza como gestor de contexto (lo que " "conlleva que sus métodos :meth:`__enter__` y :meth:`__exit__` son invocados)." -#: ../Doc/library/unittest.mock.rst:2486 +#: ../Doc/library/unittest.mock.rst:2488 msgid "" "Mocking context managers with a :class:`MagicMock` is common enough and " "fiddly enough that a helper function is useful. ::" @@ -3054,15 +3056,15 @@ msgstr "" "Simular gestores de contexto con un :class:`MagicMock` es lo suficientemente " "común y complicado como para que una función auxiliar sea útil:" -#: ../Doc/library/unittest.mock.rst:2503 +#: ../Doc/library/unittest.mock.rst:2505 msgid "And for reading files::" msgstr "Y para la lectura de archivos:" -#: ../Doc/library/unittest.mock.rst:2516 +#: ../Doc/library/unittest.mock.rst:2518 msgid "Autospeccing" msgstr "Autoespecificación" -#: ../Doc/library/unittest.mock.rst:2518 +#: ../Doc/library/unittest.mock.rst:2520 msgid "" "Autospeccing is based on the existing :attr:`spec` feature of mock. It " "limits the api of mocks to the api of an original object (the spec), but it " @@ -3079,13 +3081,13 @@ msgstr "" "métodos simuladas tienen la misma firma de llamada que la original y lanzan " "una excepción :exc:`TypeError` si se les llama incorrectamente." -#: ../Doc/library/unittest.mock.rst:2525 +#: ../Doc/library/unittest.mock.rst:2527 msgid "Before I explain how auto-speccing works, here's why it is needed." msgstr "" "Antes de explicar cómo funciona la autoespecificación, he aquí por qué se " "necesita." -#: ../Doc/library/unittest.mock.rst:2527 +#: ../Doc/library/unittest.mock.rst:2529 msgid "" ":class:`Mock` is a very powerful and flexible object, but it suffers from " "two flaws when used to mock out objects from a system under test. One of " @@ -3097,7 +3099,7 @@ msgstr "" "Uno de estos defectos es específico de la API de :class:`Mock` y el otro es " "un problema más genérico referente al uso de objetos simulados." -#: ../Doc/library/unittest.mock.rst:2532 +#: ../Doc/library/unittest.mock.rst:2534 msgid "" "First the problem specific to :class:`Mock`. :class:`Mock` has two assert " "methods that are extremely handy: :meth:`~Mock.assert_called_with` and :meth:" @@ -3107,7 +3109,7 @@ msgstr "" "dos métodos de aserción que son extremadamente útiles: :meth:`~Mock." "assert_called_with` y :meth:`~Mock.assert_called_once_with`." -#: ../Doc/library/unittest.mock.rst:2545 +#: ../Doc/library/unittest.mock.rst:2547 msgid "" "Because mocks auto-create attributes on demand, and allow you to call them " "with arbitrary arguments, if you misspell one of these assert methods then " @@ -3118,13 +3120,13 @@ msgstr "" "escribes mal uno de estos métodos de aserción, la utilidad de esa aserción " "desaparece:" -#: ../Doc/library/unittest.mock.rst:2555 +#: ../Doc/library/unittest.mock.rst:2557 msgid "Your tests can pass silently and incorrectly because of the typo." msgstr "" "Tus pruebas pueden pasar silenciosamente y de forma incorrecta debido al " "error tipográfico." -#: ../Doc/library/unittest.mock.rst:2557 +#: ../Doc/library/unittest.mock.rst:2559 msgid "" "The second issue is more general to mocking. If you refactor some of your " "code, rename members and so on, any tests for code that is still using the " @@ -3138,7 +3140,7 @@ msgstr "" "significa que tus pruebas pueden validarlo todo sin problemas, a pesar de " "que el código esté roto." -#: ../Doc/library/unittest.mock.rst:2562 +#: ../Doc/library/unittest.mock.rst:2564 msgid "" "Note that this is another reason why you need integration tests as well as " "unit tests. Testing everything in isolation is all fine and dandy, but if " @@ -3151,7 +3153,7 @@ msgstr "" "unidades, todavía hay mucho espacio para errores que las pruebas deberían " "haber detectado." -#: ../Doc/library/unittest.mock.rst:2567 +#: ../Doc/library/unittest.mock.rst:2569 msgid "" ":mod:`mock` already provides a feature to help with this, called speccing. " "If you use a class or instance as the :attr:`spec` for a mock then you can " @@ -3162,7 +3164,7 @@ msgstr "" "`spec` de un objeto simulado, entonces solo puedes acceder a los atributos " "del mismo que existe en la clase real:" -#: ../Doc/library/unittest.mock.rst:2578 +#: ../Doc/library/unittest.mock.rst:2580 msgid "" "The spec only applies to the mock itself, so we still have the same issue " "with any methods on the mock:" @@ -3170,7 +3172,7 @@ msgstr "" "La especificación solo se aplica al propio objeto simulado, por lo que aún " "tenemos el mismo problema con cualquiera de los métodos del mismo:" -#: ../Doc/library/unittest.mock.rst:2587 +#: ../Doc/library/unittest.mock.rst:2589 msgid "" "Auto-speccing solves this problem. You can either pass ``autospec=True`` to :" "func:`patch` / :func:`patch.object` or use the :func:`create_autospec` " @@ -3192,11 +3194,11 @@ msgstr "" "importan módulos que, a su vez, importan otros módulos) sin un gran impacto " "en el rendimiento." -#: ../Doc/library/unittest.mock.rst:2596 +#: ../Doc/library/unittest.mock.rst:2598 msgid "Here's an example of it in use::" msgstr "He aquí un ejemplo de ello en acción:" -#: ../Doc/library/unittest.mock.rst:2606 +#: ../Doc/library/unittest.mock.rst:2608 msgid "" "You can see that :class:`request.Request` has a spec. :class:`request." "Request` takes two arguments in the constructor (one of which is *self*). " @@ -3207,7 +3209,7 @@ msgstr "" "es *self*). Esto es lo que sucede si tratamos de llamarlo de forma " "incorrecta:" -#: ../Doc/library/unittest.mock.rst:2615 +#: ../Doc/library/unittest.mock.rst:2617 msgid "" "The spec also applies to instantiated classes (i.e. the return value of " "specced mocks)::" @@ -3215,7 +3217,7 @@ msgstr "" "La especificación también se aplica a las clases instanciadas (es decir, el " "valor de retorno de los objetos simulados especificados):" -#: ../Doc/library/unittest.mock.rst:2622 +#: ../Doc/library/unittest.mock.rst:2624 msgid "" ":class:`Request` objects are not callable, so the return value of " "instantiating our mocked out :class:`request.Request` is a non-callable " @@ -3227,7 +3229,7 @@ msgstr "" "`request.Request` no es invocable. Con la especificación, en cambio, " "cualquier error tipográfico en nuestras aserciones lanzará el error correcto:" -#: ../Doc/library/unittest.mock.rst:2634 +#: ../Doc/library/unittest.mock.rst:2636 msgid "" "In many cases you will just be able to add ``autospec=True`` to your " "existing :func:`patch` calls and then be protected against bugs due to typos " @@ -3237,7 +3239,7 @@ msgstr "" "func:`patch` existentes y así estar protegido contra errores tipográficos y " "cambios de la API." -#: ../Doc/library/unittest.mock.rst:2638 +#: ../Doc/library/unittest.mock.rst:2640 msgid "" "As well as using *autospec* through :func:`patch` there is a :func:" "`create_autospec` for creating autospecced mocks directly:" @@ -3246,7 +3248,7 @@ msgstr "" "función :func:`create_autospec` para crear directamente objetos simulados " "autoespecificados:" -#: ../Doc/library/unittest.mock.rst:2646 +#: ../Doc/library/unittest.mock.rst:2648 msgid "" "This isn't without caveats and limitations however, which is why it is not " "the default behaviour. In order to know what attributes are available on the " @@ -3268,7 +3270,7 @@ msgstr "" "autoespecificación. De todas formas, es siempre mucho mejor diseñar tus " "objetos de modo que la introspección sea segura [#]_." -#: ../Doc/library/unittest.mock.rst:2655 +#: ../Doc/library/unittest.mock.rst:2657 msgid "" "A more serious problem is that it is common for instance attributes to be " "created in the :meth:`__init__` method and not to exist on the class at all. " @@ -3280,7 +3282,7 @@ msgstr "" "*autospec* no puede tener conocimiento de ningún atributo creado " "dinámicamente, por lo que restringe la API a atributos visibles:" -#: ../Doc/library/unittest.mock.rst:2672 +#: ../Doc/library/unittest.mock.rst:2674 msgid "" "There are a few different ways of resolving this problem. The easiest, but " "not necessarily the least annoying, way is to simply set the required " @@ -3294,7 +3296,7 @@ msgstr "" "de que *autospec* no te permita buscar atributos que no existen en la " "especificación no impide que los establezcas manualmente después:" -#: ../Doc/library/unittest.mock.rst:2683 +#: ../Doc/library/unittest.mock.rst:2685 msgid "" "There is a more aggressive version of both *spec* and *autospec* that *does* " "prevent you setting non-existent attributes. This is useful if you want to " @@ -3306,7 +3308,7 @@ msgstr "" "solo *establece* atributos válidos, pero obviamente evitando este escenario " "en particular:" -#: ../Doc/library/unittest.mock.rst:2696 +#: ../Doc/library/unittest.mock.rst:2698 msgid "" "Probably the best way of solving the problem is to add class attributes as " "default values for instance members initialised in :meth:`__init__`. Note " @@ -3321,7 +3323,7 @@ msgstr "" "a través de atributos de clase (que , por supuesto, son compartidos entre " "instancias) también es más rápido." -#: ../Doc/library/unittest.mock.rst:2706 +#: ../Doc/library/unittest.mock.rst:2708 msgid "" "This brings up another issue. It is relatively common to provide a default " "value of ``None`` for members that will later be an object of a different " @@ -3341,7 +3343,7 @@ msgstr "" "configurados con ``None`` como valor. Estos serán simplemente objetos " "simulados ordinarios (MagicMocks en realidad):" -#: ../Doc/library/unittest.mock.rst:2721 +#: ../Doc/library/unittest.mock.rst:2723 msgid "" "If modifying your production classes to add defaults isn't to your liking " "then there are more options. One of these is simply to use an instance as " @@ -3360,7 +3362,7 @@ msgstr "" "Afortunadamente :func:`patch` admite esto, simplemente tienes que pasar el " "objeto alternativo mediante el argumento *autospec*:" -#: ../Doc/library/unittest.mock.rst:2742 +#: ../Doc/library/unittest.mock.rst:2744 msgid "" "This only applies to classes or already instantiated objects. Calling a " "mocked class to create a mock instance *does not* create a real instance. It " @@ -3371,11 +3373,11 @@ msgstr "" "real. Solo se llevan a cabo las búsqueda de atributos (mediante llamadas a :" "func:`dir`)." -#: ../Doc/library/unittest.mock.rst:2747 +#: ../Doc/library/unittest.mock.rst:2749 msgid "Sealing mocks" msgstr "Sellar objetos simulados" -#: ../Doc/library/unittest.mock.rst:2756 +#: ../Doc/library/unittest.mock.rst:2758 msgid "" "Seal will disable the automatic creation of mocks when accessing an " "attribute of the mock being sealed or any of its attributes that are already " @@ -3385,7 +3387,7 @@ msgstr "" "atributo del objeto simulado que está siendo sellado, o a cualquiera de sus " "atributos que ya sean objetos simulados de forma recursiva." -#: ../Doc/library/unittest.mock.rst:2759 +#: ../Doc/library/unittest.mock.rst:2761 msgid "" "If a mock instance with a name or a spec is assigned to an attribute it " "won't be considered in the sealing chain. This allows one to prevent seal " diff --git a/library/unittest.po b/library/unittest.po index c74c64956b..e37c93ec24 100644 --- a/library/unittest.po +++ b/library/unittest.po @@ -14,17 +14,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-31 01:06-0300\n" "Last-Translator: Claudia Millán (@clacri)\n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/unittest.rst:2 msgid ":mod:`unittest` --- Unit testing framework" @@ -194,13 +193,14 @@ msgstr "" "de Python." #: ../Doc/library/unittest.rst:71 +#, fuzzy msgid "" "The script :file:`Tools/unittestgui/unittestgui.py` in the Python source " "distribution is a GUI tool for test discovery and execution. This is " "intended largely for ease of use for those new to unit testing. For " "production environments it is recommended that tests be driven by a " "continuous integration system such as `Buildbot `_, " -"`Jenkins `_, `GitHub Actions `_, `GitHub Actions `_, or `AppVeyor `_." msgstr "" "El script :file:`Tools/unittestgui/unittestgui.py` de la distribución de " @@ -462,19 +462,28 @@ msgstr "" msgid "Show local variables in tracebacks." msgstr "Mostrar las variables locales en las trazas." -#: ../Doc/library/unittest.rst:247 +#: ../Doc/library/unittest.rst:249 +msgid "Show the N slowest test cases (N=0 for all)." +msgstr "" + +#: ../Doc/library/unittest.rst:251 msgid "The command-line options ``-b``, ``-c`` and ``-f`` were added." msgstr "Se añadieron las opciones de línea de órdenes ``-b``, ``-c`` y ``-f``." -#: ../Doc/library/unittest.rst:250 +#: ../Doc/library/unittest.rst:254 msgid "The command-line option ``--locals``." msgstr "La opción de línea de órdenes ``--locals``." -#: ../Doc/library/unittest.rst:253 +#: ../Doc/library/unittest.rst:257 msgid "The command-line option ``-k``." msgstr "La opción de línea de órdenes ``-k``." -#: ../Doc/library/unittest.rst:256 +#: ../Doc/library/unittest.rst:260 +#, fuzzy +msgid "The command-line option ``--durations``." +msgstr "La opción de línea de órdenes ``--locals``." + +#: ../Doc/library/unittest.rst:263 msgid "" "The command line can also be used for test discovery, for running all of the " "tests in a project or just a subset." @@ -482,11 +491,11 @@ msgstr "" "La línea de órdenes también se puede usar para descubrimiento de pruebas, " "para ejecutar todas las pruebas de un proyecto o un subconjunto de éstas." -#: ../Doc/library/unittest.rst:263 +#: ../Doc/library/unittest.rst:269 msgid "Test Discovery" msgstr "Descubrimiento de pruebas" -#: ../Doc/library/unittest.rst:267 +#: ../Doc/library/unittest.rst:273 msgid "" "Unittest supports simple test discovery. In order to be compatible with test " "discovery, all of the test files must be :ref:`modules ` or :" @@ -500,7 +509,7 @@ msgstr "" "importables desde el directorio superior del proyecto (por lo que sus " "nombres han de ser :ref:`identificadores ` válidos)." -#: ../Doc/library/unittest.rst:273 +#: ../Doc/library/unittest.rst:279 msgid "" "Test discovery is implemented in :meth:`TestLoader.discover`, but can also " "be used from the command line. The basic command-line usage is::" @@ -509,7 +518,7 @@ msgstr "" "discover`, pero también se puede usar desde la línea de órdenes. La línea de " "órdenes básica es::" -#: ../Doc/library/unittest.rst:281 +#: ../Doc/library/unittest.rst:287 msgid "" "As a shortcut, ``python -m unittest`` is the equivalent of ``python -m " "unittest discover``. If you want to pass arguments to test discovery the " @@ -519,28 +528,28 @@ msgstr "" "discover``. Si se desea pasar argumentos al descubrimiento de pruebas, hay " "que pasar la sub-orden ``discover`` explícitamente." -#: ../Doc/library/unittest.rst:285 +#: ../Doc/library/unittest.rst:291 msgid "The ``discover`` sub-command has the following options:" msgstr "La sub-orden ``discover`` cuenta con las siguientes opciones:" -#: ../Doc/library/unittest.rst:291 +#: ../Doc/library/unittest.rst:297 msgid "Verbose output" msgstr "Salida verbosa" -#: ../Doc/library/unittest.rst:295 +#: ../Doc/library/unittest.rst:301 msgid "Directory to start discovery (``.`` default)" msgstr "Directorio de inicio para el descubrimiento (``.`` si se omite)" -#: ../Doc/library/unittest.rst:299 +#: ../Doc/library/unittest.rst:305 msgid "Pattern to match test files (``test*.py`` default)" msgstr "" "Patrón para la búsqueda de ficheros de prueba (``test*.py`` si se omite)" -#: ../Doc/library/unittest.rst:303 +#: ../Doc/library/unittest.rst:309 msgid "Top level directory of project (defaults to start directory)" msgstr "Directorio superior del proyecto (el directorio inicial si se omite)" -#: ../Doc/library/unittest.rst:305 +#: ../Doc/library/unittest.rst:311 msgid "" "The :option:`-s`, :option:`-p`, and :option:`-t` options can be passed in as " "positional arguments in that order. The following two command lines are " @@ -550,7 +559,7 @@ msgstr "" "posición en el orden mostrado. Las siguientes líneas de órdenes son " "equivalentes::" -#: ../Doc/library/unittest.rst:312 +#: ../Doc/library/unittest.rst:318 msgid "" "As well as being a path it is possible to pass a package name, for example " "``myproject.subpackage.test``, as the start directory. The package name you " @@ -562,7 +571,7 @@ msgstr "" "de paquete proporcionado será importado y su ubicación en el sistema de " "archivos será utilizada como directorio de inicio." -#: ../Doc/library/unittest.rst:319 +#: ../Doc/library/unittest.rst:325 msgid "" "Test discovery loads tests by importing them. Once test discovery has found " "all the test files from the start directory you specify it turns the paths " @@ -575,7 +584,7 @@ msgstr "" "a importar. Por ejemplo, :file:`foo/bar/baz.py` será importado como ``foo." "bar.baz``." -#: ../Doc/library/unittest.rst:324 +#: ../Doc/library/unittest.rst:330 msgid "" "If you have a package installed globally and attempt test discovery on a " "different copy of the package then the import *could* happen from the wrong " @@ -586,7 +595,7 @@ msgstr "" "se importe la versión incorrecta. Si ocurre esto, el descubrimiento lanza " "una advertencia y abandona." -#: ../Doc/library/unittest.rst:328 +#: ../Doc/library/unittest.rst:334 msgid "" "If you supply the start directory as a package name rather than a path to a " "directory then discover assumes that whichever location it imports from is " @@ -596,7 +605,7 @@ msgstr "" "ruta a un directorio, el descubrimiento asume que la ubicación importada es " "la deseada, así que no se da la advertencia descrita." -#: ../Doc/library/unittest.rst:333 +#: ../Doc/library/unittest.rst:339 msgid "" "Test modules and packages can customize test loading and discovery by " "through the `load_tests protocol`_." @@ -604,7 +613,7 @@ msgstr "" "Los módulos y paquetes de prueba pueden personalizar la carta y " "descubrimiento de pruebas mediante el `protocolo load_tests`_." -#: ../Doc/library/unittest.rst:336 +#: ../Doc/library/unittest.rst:342 msgid "" "Test discovery supports :term:`namespace packages ` for " "the start directory. Note that you need to specify the top level directory " @@ -615,7 +624,7 @@ msgstr "" "necesita el directorio de nivel superior. (por ejemplo, ``python -m unittest " "discover -s root/namespace -t root``)." -#: ../Doc/library/unittest.rst:342 +#: ../Doc/library/unittest.rst:348 msgid "" "Python 3.11 dropped the :term:`namespace packages ` " "support. It has been broken since Python 3.7. Start directory and " @@ -627,7 +636,7 @@ msgstr "" "subdirectorios que contengan pruebas deben ser paquetes regulares que tengan " "el archivo ``__init__.py``." -#: ../Doc/library/unittest.rst:348 +#: ../Doc/library/unittest.rst:354 msgid "" "Directories containing start directory still can be a namespace package. In " "this case, you need to specify start directory as dotted package name, and " @@ -638,11 +647,11 @@ msgstr "" "directorio de inicio como nombre de paquete con puntos, y el directorio de " "destino explícitamente. Por ejemplo::" -#: ../Doc/library/unittest.rst:364 +#: ../Doc/library/unittest.rst:370 msgid "Organizing test code" msgstr "Organización del código de pruebas" -#: ../Doc/library/unittest.rst:366 +#: ../Doc/library/unittest.rst:372 msgid "" "The basic building blocks of unit testing are :dfn:`test cases` --- single " "scenarios that must be set up and checked for correctness. In :mod:" @@ -657,7 +666,7 @@ msgstr "" "nuevos casos de prueba, hay que escribir subclases de :class:`TestCase` o " "usar :class:`FunctionTestCase`." -#: ../Doc/library/unittest.rst:372 +#: ../Doc/library/unittest.rst:378 msgid "" "The testing code of a :class:`TestCase` instance should be entirely self " "contained, such that it can be run either in isolation or in arbitrary " @@ -667,7 +676,7 @@ msgstr "" "completamente autónomo, de tal modo que se pueda ejecutar aisladamente o en " "una combinación arbitraria con otras clases de prueba." -#: ../Doc/library/unittest.rst:376 +#: ../Doc/library/unittest.rst:382 msgid "" "The simplest :class:`TestCase` subclass will simply implement a test method " "(i.e. a method whose name starts with ``test``) in order to perform specific " @@ -677,7 +686,7 @@ msgstr "" "método test (o un método que empiece por ``test``) para realizar código de " "prueba específico::" -#: ../Doc/library/unittest.rst:387 +#: ../Doc/library/unittest.rst:393 msgid "" "Note that in order to test something, we use one of the :meth:`assert\\*` " "methods provided by the :class:`TestCase` base class. If the test fails, an " @@ -691,7 +700,7 @@ msgstr "" "identificará el caso como :dfn:`failure`. Cualquier otra excepción se " "considerará un :dfn:`errors`." -#: ../Doc/library/unittest.rst:393 +#: ../Doc/library/unittest.rst:399 msgid "" "Tests can be numerous, and their set-up can be repetitive. Luckily, we can " "factor out set-up code by implementing a method called :meth:`~TestCase." @@ -703,7 +712,7 @@ msgstr "" "método :meth:`~TestCase.setUp`, al que la infraestructura de prueba llamará " "para cada prueba que se ejecute::" -#: ../Doc/library/unittest.rst:414 +#: ../Doc/library/unittest.rst:420 msgid "" "The order in which the various tests will be run is determined by sorting " "the test method names with respect to the built-in ordering for strings." @@ -711,7 +720,7 @@ msgstr "" "El orden en que se ejecutan las diversas pruebas se determina por orden " "alfabético de los nombres de métodos de prueba." -#: ../Doc/library/unittest.rst:418 +#: ../Doc/library/unittest.rst:424 msgid "" "If the :meth:`~TestCase.setUp` method raises an exception while the test is " "running, the framework will consider the test to have suffered an error, and " @@ -721,7 +730,7 @@ msgstr "" "la prueba, la infraestructura considerará que la prueba ha sufrido un error " "y no se ejecutará el método de prueba propiamente dicho." -#: ../Doc/library/unittest.rst:422 +#: ../Doc/library/unittest.rst:428 msgid "" "Similarly, we can provide a :meth:`~TestCase.tearDown` method that tidies up " "after the test method has been run::" @@ -729,7 +738,7 @@ msgstr "" "Análogamente, se puede proporcionar un método :meth:`~TestCase.tearDown` que " "haga limpieza después de que se ejecute el método de prueba::" -#: ../Doc/library/unittest.rst:434 +#: ../Doc/library/unittest.rst:440 msgid "" "If :meth:`~TestCase.setUp` succeeded, :meth:`~TestCase.tearDown` will be run " "whether the test method succeeded or not." @@ -737,7 +746,7 @@ msgstr "" "Si :meth:`~TestCase.setUp` se ejecuta sin errores, :meth:`~TestCase." "tearDown` se ejecutará tanto si el método de prueba tuvo éxito como si no." -#: ../Doc/library/unittest.rst:437 +#: ../Doc/library/unittest.rst:443 msgid "" "Such a working environment for the testing code is called a :dfn:`test " "fixture`. A new TestCase instance is created as a unique test fixture used " @@ -751,7 +760,7 @@ msgstr "" "`~TestCase.setUp`, :meth:`~TestCase.tearDown` y :meth:`~TestCase.__init__` " "se llamarán una vez por prueba." -#: ../Doc/library/unittest.rst:443 +#: ../Doc/library/unittest.rst:449 msgid "" "It is recommended that you use TestCase implementations to group tests " "together according to the features they test. :mod:`unittest` provides a " @@ -767,7 +776,7 @@ msgstr "" "func:`unittest.main` hará lo correcto y recolectará todos los casos de " "prueba del módulo para su ejecución." -#: ../Doc/library/unittest.rst:450 +#: ../Doc/library/unittest.rst:456 msgid "" "However, should you want to customize the building of your test suite, you " "can do it yourself::" @@ -775,7 +784,7 @@ msgstr "" "Sin embargo, si se desea personalizar la construcción del paquete de " "pruebas, se puede hacer::" -#: ../Doc/library/unittest.rst:463 +#: ../Doc/library/unittest.rst:469 msgid "" "You can place the definitions of test cases and test suites in the same " "modules as the code they are to test (such as :file:`widget.py`), but there " @@ -787,19 +796,19 @@ msgstr "" "`widget.py`), pero sacarlos a un módulo aparte como :file:`test_widget.py` " "tiene diversas ventajas:" -#: ../Doc/library/unittest.rst:468 +#: ../Doc/library/unittest.rst:474 msgid "The test module can be run standalone from the command line." msgstr "" "El módulo de pruebas se puede ejecutar aisladamente desde la línea de " "órdenes." -#: ../Doc/library/unittest.rst:470 +#: ../Doc/library/unittest.rst:476 msgid "The test code can more easily be separated from shipped code." msgstr "" "El código de pruebas se puede separar con más facilidad del código de " "producción." -#: ../Doc/library/unittest.rst:472 +#: ../Doc/library/unittest.rst:478 msgid "" "There is less temptation to change test code to fit the code it tests " "without a good reason." @@ -807,18 +816,18 @@ msgstr "" "Disminuye la tentación de cambiar el código de prueba para ajustarse al " "código bajo prueba." -#: ../Doc/library/unittest.rst:475 +#: ../Doc/library/unittest.rst:481 msgid "" "Test code should be modified much less frequently than the code it tests." msgstr "" "El código de pruebas debería modificarse con mucha menor frecuencia que el " "código bajo prueba." -#: ../Doc/library/unittest.rst:477 +#: ../Doc/library/unittest.rst:483 msgid "Tested code can be refactored more easily." msgstr "Es más sencillo refactorizar el código bajo prueba." -#: ../Doc/library/unittest.rst:479 +#: ../Doc/library/unittest.rst:485 msgid "" "Tests for modules written in C must be in separate modules anyway, so why " "not be consistent?" @@ -826,18 +835,18 @@ msgstr "" "El código para probar módulos escritos en C ha de estar en módulos aparte, " "así que ¿por qué no mantener la consistencia?" -#: ../Doc/library/unittest.rst:482 +#: ../Doc/library/unittest.rst:488 msgid "" "If the testing strategy changes, there is no need to change the source code." msgstr "" "Si cambia la estrategia de prueba, no hay razón para cambiar el código " "fuente principal." -#: ../Doc/library/unittest.rst:488 +#: ../Doc/library/unittest.rst:494 msgid "Re-using old test code" msgstr "Reutilización de código de prueba anterior" -#: ../Doc/library/unittest.rst:490 +#: ../Doc/library/unittest.rst:496 msgid "" "Some users will find that they have existing test code that they would like " "to run from :mod:`unittest`, without converting every old test function to " @@ -847,7 +856,7 @@ msgstr "" "mod:`unittest`, sin conversión previa de cada antigua función de prueba a " "una subclase de :class:`TestCase`." -#: ../Doc/library/unittest.rst:494 +#: ../Doc/library/unittest.rst:500 msgid "" "For this reason, :mod:`unittest` provides a :class:`FunctionTestCase` class. " "This subclass of :class:`TestCase` can be used to wrap an existing test " @@ -858,11 +867,11 @@ msgstr "" "función de prueba existente. Se pueden proporcionar también funciones de " "preparación y desmontaje." -#: ../Doc/library/unittest.rst:498 +#: ../Doc/library/unittest.rst:504 msgid "Given the following test function::" msgstr "Dada la siguiente función de prueba::" -#: ../Doc/library/unittest.rst:505 +#: ../Doc/library/unittest.rst:511 msgid "" "one can create an equivalent test case instance as follows, with optional " "set-up and tear-down methods::" @@ -870,7 +879,7 @@ msgstr "" "se puede crear una instancia de caso de prueba de la siguiente manera, con " "métodos opcionales de preparación y desmontaje::" -#: ../Doc/library/unittest.rst:514 +#: ../Doc/library/unittest.rst:520 msgid "" "Even though :class:`FunctionTestCase` can be used to quickly convert an " "existing test base over to a :mod:`unittest`\\ -based system, this approach " @@ -883,7 +892,7 @@ msgstr "" "de :class:`TestCase` hará las futuras refactorizaciones de pruebas futura " "considerablemente más fácil." -#: ../Doc/library/unittest.rst:519 +#: ../Doc/library/unittest.rst:525 msgid "" "In some cases, the existing tests may have been written using the :mod:" "`doctest` module. If so, :mod:`doctest` provides a :class:`DocTestSuite` " @@ -895,11 +904,11 @@ msgstr "" "`DocTestSuite` que puede construir automáticamente instancias de :class:" "`unittest.TestSuite` partiendo de los test basados en :mod:`doctest`." -#: ../Doc/library/unittest.rst:528 +#: ../Doc/library/unittest.rst:534 msgid "Skipping tests and expected failures" msgstr "Omitir tests y fallos esperados" -#: ../Doc/library/unittest.rst:532 +#: ../Doc/library/unittest.rst:538 msgid "" "Unittest supports skipping individual test methods and even whole classes of " "tests. In addition, it supports marking a test as an \"expected failure,\" " @@ -911,7 +920,7 @@ msgstr "" "esperado\", un test que está roto y va a fallar, pero no debería ser contado " "como fallo en :class:`TestResult`." -#: ../Doc/library/unittest.rst:537 +#: ../Doc/library/unittest.rst:543 msgid "" "Skipping a test is simply a matter of using the :func:`skip` :term:" "`decorator` or one of its conditional variants, calling :meth:`TestCase." @@ -923,19 +932,19 @@ msgstr "" "dentro de :meth:`~TestCase.setUp` o en un método de test, o lanzando :exc:" "`SkipTest` directamente." -#: ../Doc/library/unittest.rst:541 +#: ../Doc/library/unittest.rst:547 msgid "Basic skipping looks like this::" msgstr "La omisión más básica tiene la siguiente forma:" -#: ../Doc/library/unittest.rst:566 +#: ../Doc/library/unittest.rst:572 msgid "This is the output of running the example above in verbose mode::" msgstr "Esta es la salida de ejecutar el ejemplo superior en modo verboso::" -#: ../Doc/library/unittest.rst:578 +#: ../Doc/library/unittest.rst:584 msgid "Classes can be skipped just like methods::" msgstr "Las clases pueden ser omitidas igual que los métodos::" -#: ../Doc/library/unittest.rst:585 +#: ../Doc/library/unittest.rst:591 msgid "" ":meth:`TestCase.setUp` can also skip the test. This is useful when a " "resource that needs to be set up is not available." @@ -943,11 +952,11 @@ msgstr "" ":meth:`TestCase.setUp` puede omitir también el test. Esto es útil cuando un " "recurso que necesita ser puesto a punto no está disponible." -#: ../Doc/library/unittest.rst:588 +#: ../Doc/library/unittest.rst:594 msgid "Expected failures use the :func:`expectedFailure` decorator. ::" msgstr "Los fallos esperados emplean el decorador :func:`expectedFailure`. ::" -#: ../Doc/library/unittest.rst:595 +#: ../Doc/library/unittest.rst:601 msgid "" "It's easy to roll your own skipping decorators by making a decorator that " "calls :func:`skip` on the test when it wants it to be skipped. This " @@ -957,7 +966,7 @@ msgstr "" "llame a :func:`skip` en el test cuando quiere ser omitido. Este decorador " "omite el test a menos que el objeto pasado tenga un cierto atributo::" -#: ../Doc/library/unittest.rst:604 +#: ../Doc/library/unittest.rst:610 msgid "" "The following decorators and exception implement test skipping and expected " "failures:" @@ -965,7 +974,7 @@ msgstr "" "Los siguientes decoradores y la excepción implementan la omisión de tests y " "los fallos esperados:" -#: ../Doc/library/unittest.rst:608 +#: ../Doc/library/unittest.rst:614 msgid "" "Unconditionally skip the decorated test. *reason* should describe why the " "test is being skipped." @@ -973,15 +982,15 @@ msgstr "" "Omitir incondicionalmente el test decorado. *reason* debe describir porqué " "el test está siendo omitido." -#: ../Doc/library/unittest.rst:613 +#: ../Doc/library/unittest.rst:619 msgid "Skip the decorated test if *condition* is true." msgstr "Omitir el test decorado si *condition* es verdadero." -#: ../Doc/library/unittest.rst:617 +#: ../Doc/library/unittest.rst:623 msgid "Skip the decorated test unless *condition* is true." msgstr "Omitir el test decorado a menos que *condition* sea verdadero." -#: ../Doc/library/unittest.rst:621 +#: ../Doc/library/unittest.rst:627 msgid "" "Mark the test as an expected failure or error. If the test fails or errors " "in the test function itself (rather than in one of the :dfn:`test fixture` " @@ -993,11 +1002,11 @@ msgstr "" "fixture`) será considerado un éxito. Si el test pasa, será considerado un " "fallo." -#: ../Doc/library/unittest.rst:628 +#: ../Doc/library/unittest.rst:634 msgid "This exception is raised to skip a test." msgstr "Esta excepción es lanzada para omitir un test." -#: ../Doc/library/unittest.rst:630 +#: ../Doc/library/unittest.rst:636 msgid "" "Usually you can use :meth:`TestCase.skipTest` or one of the skipping " "decorators instead of raising this directly." @@ -1005,7 +1014,7 @@ msgstr "" "Normalmente puedes usar directamente :meth:`TestCase.skipTest` o uno de los " "decoradores de omisión en vez de lanzar esta excepción." -#: ../Doc/library/unittest.rst:633 +#: ../Doc/library/unittest.rst:639 msgid "" "Skipped tests will not have :meth:`~TestCase.setUp` or :meth:`~TestCase." "tearDown` run around them. Skipped classes will not have :meth:`~TestCase." @@ -1017,11 +1026,11 @@ msgstr "" "meth:`~TestCase.tearDownClass`. Los módulos omitidos no ejecutarán :func:" "`setUpModule` o :func:`tearDownModule`." -#: ../Doc/library/unittest.rst:641 +#: ../Doc/library/unittest.rst:647 msgid "Distinguishing test iterations using subtests" msgstr "Distinguiendo iteraciones de tests empleando subtests" -#: ../Doc/library/unittest.rst:645 +#: ../Doc/library/unittest.rst:651 msgid "" "When there are very small differences among your tests, for instance some " "parameters, unittest allows you to distinguish them inside the body of a " @@ -1031,15 +1040,15 @@ msgstr "" "parámetros, unittest te permite distinguirlos dentro del cuerpo de un método " "de test empleando el administrador de contexto :meth:`~TestCase.subTest` ." -#: ../Doc/library/unittest.rst:649 +#: ../Doc/library/unittest.rst:655 msgid "For example, the following test::" msgstr "Por ejemplo, el siguiente test::" -#: ../Doc/library/unittest.rst:661 +#: ../Doc/library/unittest.rst:667 msgid "will produce the following output::" msgstr "producirá la siguiente salida:" -#: ../Doc/library/unittest.rst:693 +#: ../Doc/library/unittest.rst:699 msgid "" "Without using a subtest, execution would stop after the first failure, and " "the error would be less easy to diagnose because the value of ``i`` wouldn't " @@ -1049,19 +1058,19 @@ msgstr "" "error sería más difícil de diagnosticar porque el valor de ``i`` no se " "mostraría::" -#: ../Doc/library/unittest.rst:709 +#: ../Doc/library/unittest.rst:715 msgid "Classes and functions" msgstr "Clases y funciones" -#: ../Doc/library/unittest.rst:711 +#: ../Doc/library/unittest.rst:717 msgid "This section describes in depth the API of :mod:`unittest`." msgstr "Esta sección describe en detalle la API de :mod:`unittest`." -#: ../Doc/library/unittest.rst:717 +#: ../Doc/library/unittest.rst:723 msgid "Test cases" msgstr "Casos de test" -#: ../Doc/library/unittest.rst:721 +#: ../Doc/library/unittest.rst:727 msgid "" "Instances of the :class:`TestCase` class represent the logical test units in " "the :mod:`unittest` universe. This class is intended to be used as a base " @@ -1078,7 +1087,7 @@ msgstr "" "métodos que el código de test puede utilizar para chequear y reportar " "distintos tipos de fallo." -#: ../Doc/library/unittest.rst:728 +#: ../Doc/library/unittest.rst:734 msgid "" "Each instance of :class:`TestCase` will run a single base method: the method " "named *methodName*. In most uses of :class:`TestCase`, you will neither " @@ -1089,7 +1098,7 @@ msgstr "" "tendrás que cambiar el *methodName* ni reimplementar el método por defecto " "``runTest()``." -#: ../Doc/library/unittest.rst:733 +#: ../Doc/library/unittest.rst:739 msgid "" ":class:`TestCase` can be instantiated successfully without providing a " "*methodName*. This makes it easier to experiment with :class:`TestCase` from " @@ -1099,7 +1108,7 @@ msgstr "" "permite experimentar de manera sencilla con :class:`TestCase` en el " "intérprete interactivo." -#: ../Doc/library/unittest.rst:738 +#: ../Doc/library/unittest.rst:744 msgid "" ":class:`TestCase` instances provide three groups of methods: one group used " "to run the test, another used by the test implementation to check conditions " @@ -1111,11 +1120,11 @@ msgstr "" "del test chequee condiciones y reporte fallos, y algunos métodos de " "indagación que permiten recopilar información sobre el test en si mismo." -#: ../Doc/library/unittest.rst:743 +#: ../Doc/library/unittest.rst:749 msgid "Methods in the first group (running the test) are:" msgstr "Los métodos en el primer grupo (ejecutando el test) son:" -#: ../Doc/library/unittest.rst:747 +#: ../Doc/library/unittest.rst:753 msgid "" "Method called to prepare the test fixture. This is called immediately " "before calling the test method; other than :exc:`AssertionError` or :exc:" @@ -1128,7 +1137,7 @@ msgstr "" "un error en vez de un fallo del test. La implementación por defecto no hace " "nada." -#: ../Doc/library/unittest.rst:755 +#: ../Doc/library/unittest.rst:761 msgid "" "Method called immediately after the test method has been called and the " "result recorded. This is called even if the test method raised an " @@ -1151,7 +1160,7 @@ msgstr "" "meth:`setUp` tiene éxito, independientemente del resultado del método de " "prueba. La implementación por defecto no hace nada." -#: ../Doc/library/unittest.rst:768 +#: ../Doc/library/unittest.rst:774 msgid "" "A class method called before tests in an individual class are run. " "``setUpClass`` is called with the class as the only argument and must be " @@ -1161,11 +1170,11 @@ msgstr "" "sean ejecutados. ``setUpClass`` es llamado con la clase como el único " "argumento y debe ser decorada como :func:`classmethod`::" -#: ../Doc/library/unittest.rst:776 ../Doc/library/unittest.rst:791 +#: ../Doc/library/unittest.rst:782 ../Doc/library/unittest.rst:797 msgid "See `Class and Module Fixtures`_ for more details." msgstr "Vea `Class and Module Fixtures`_ para más detalles." -#: ../Doc/library/unittest.rst:783 +#: ../Doc/library/unittest.rst:789 msgid "" "A class method called after tests in an individual class have run. " "``tearDownClass`` is called with the class as the only argument and must be " @@ -1175,7 +1184,7 @@ msgstr "" "clase individual. ``tearDownClass`` se llama con la clase como único " "argumento y debe ser decorado como un :meth:`classmethod`::" -#: ../Doc/library/unittest.rst:798 +#: ../Doc/library/unittest.rst:804 msgid "" "Run the test, collecting the result into the :class:`TestResult` object " "passed as *result*. If *result* is omitted or ``None``, a temporary result " @@ -1188,14 +1197,14 @@ msgstr "" "`defaultTestResult`) y se emplea ese. El objeto resultante se devuelve al " "invocador de :meth:`run`." -#: ../Doc/library/unittest.rst:804 +#: ../Doc/library/unittest.rst:810 msgid "" "The same effect may be had by simply calling the :class:`TestCase` instance." msgstr "" "El mismo efecto puede conseguirse simplemente llamando a la instancia :class:" "`TestCase`." -#: ../Doc/library/unittest.rst:807 +#: ../Doc/library/unittest.rst:813 msgid "" "Previous versions of ``run`` did not return the result. Neither did calling " "an instance." @@ -1203,7 +1212,7 @@ msgstr "" "Las versiones previas de ``run`` no retornaban el resultado. Tampoco lo " "hacía la llamada a una instancia." -#: ../Doc/library/unittest.rst:813 +#: ../Doc/library/unittest.rst:819 msgid "" "Calling this during a test method or :meth:`setUp` skips the current test. " "See :ref:`unittest-skipping` for more information." @@ -1211,7 +1220,7 @@ msgstr "" "Llamar a esto durante un método de prueba o :meth:`setUp` se salta el test " "actual. Ver :ref:`unittest-skipping` para más información." -#: ../Doc/library/unittest.rst:821 +#: ../Doc/library/unittest.rst:827 msgid "" "Return a context manager which executes the enclosed code block as a " "subtest. *msg* and *params* are optional, arbitrary values which are " @@ -1221,7 +1230,7 @@ msgstr "" "un subtest. *msg* y *params* son valores opcionales y arbitrarios que se " "muestran cuando falla un subtest, permitiéndole identificarlos claramente." -#: ../Doc/library/unittest.rst:826 +#: ../Doc/library/unittest.rst:832 msgid "" "A test case can contain any number of subtest declarations, and they can be " "arbitrarily nested." @@ -1229,11 +1238,11 @@ msgstr "" "Un caso de test puede contener cualquier número de declaraciones de subtest, " "y pueden anidarse arbitrariamente." -#: ../Doc/library/unittest.rst:829 +#: ../Doc/library/unittest.rst:835 msgid "See :ref:`subtests` for more information." msgstr "Ver :ref:`subtests` para más información." -#: ../Doc/library/unittest.rst:836 +#: ../Doc/library/unittest.rst:842 msgid "" "Run the test without collecting the result. This allows exceptions raised " "by the test to be propagated to the caller, and can be used to support " @@ -1243,7 +1252,7 @@ msgstr "" "planteadas por el test se propaguen al invocado, y puede utilizarse para " "apoyar la ejecución de tests bajo un depurador." -#: ../Doc/library/unittest.rst:842 +#: ../Doc/library/unittest.rst:848 msgid "" "The :class:`TestCase` class provides several assert methods to check for and " "report failures. The following table lists the most commonly used methods " @@ -1254,136 +1263,136 @@ msgstr "" "más utilizados (consulte las tablas siguientes para ver más métodos de " "afirmación):" -#: ../Doc/library/unittest.rst:847 ../Doc/library/unittest.rst:968 -#: ../Doc/library/unittest.rst:1182 ../Doc/library/unittest.rst:1309 +#: ../Doc/library/unittest.rst:853 ../Doc/library/unittest.rst:974 +#: ../Doc/library/unittest.rst:1188 ../Doc/library/unittest.rst:1312 msgid "Method" msgstr "Método" -#: ../Doc/library/unittest.rst:847 ../Doc/library/unittest.rst:968 -#: ../Doc/library/unittest.rst:1182 +#: ../Doc/library/unittest.rst:853 ../Doc/library/unittest.rst:974 +#: ../Doc/library/unittest.rst:1188 msgid "Checks that" msgstr "Comprueba que" -#: ../Doc/library/unittest.rst:847 ../Doc/library/unittest.rst:968 -#: ../Doc/library/unittest.rst:1182 ../Doc/library/unittest.rst:1309 +#: ../Doc/library/unittest.rst:853 ../Doc/library/unittest.rst:974 +#: ../Doc/library/unittest.rst:1188 ../Doc/library/unittest.rst:1312 msgid "New in" msgstr "Nuevo en" -#: ../Doc/library/unittest.rst:849 +#: ../Doc/library/unittest.rst:855 msgid ":meth:`assertEqual(a, b) `" msgstr ":meth:`assertEqual(a, b) `" -#: ../Doc/library/unittest.rst:849 +#: ../Doc/library/unittest.rst:855 msgid "``a == b``" msgstr "``a == b``" -#: ../Doc/library/unittest.rst:852 +#: ../Doc/library/unittest.rst:858 msgid ":meth:`assertNotEqual(a, b) `" msgstr ":meth:`assertNotEqual(a, b) `" -#: ../Doc/library/unittest.rst:852 +#: ../Doc/library/unittest.rst:858 msgid "``a != b``" msgstr "``a != b``" -#: ../Doc/library/unittest.rst:855 +#: ../Doc/library/unittest.rst:861 msgid ":meth:`assertTrue(x) `" msgstr ":meth:`assertTrue(x) `" -#: ../Doc/library/unittest.rst:855 +#: ../Doc/library/unittest.rst:861 msgid "``bool(x) is True``" msgstr "``bool(x) is True``" -#: ../Doc/library/unittest.rst:858 +#: ../Doc/library/unittest.rst:864 msgid ":meth:`assertFalse(x) `" msgstr ":meth:`assertFalse(x) `" -#: ../Doc/library/unittest.rst:858 +#: ../Doc/library/unittest.rst:864 msgid "``bool(x) is False``" msgstr "``bool(x) is False``" -#: ../Doc/library/unittest.rst:861 +#: ../Doc/library/unittest.rst:867 msgid ":meth:`assertIs(a, b) `" msgstr ":meth:`assertIs(a, b) `" -#: ../Doc/library/unittest.rst:861 +#: ../Doc/library/unittest.rst:867 msgid "``a is b``" msgstr "``a is b``" -#: ../Doc/library/unittest.rst:861 ../Doc/library/unittest.rst:864 #: ../Doc/library/unittest.rst:867 ../Doc/library/unittest.rst:870 #: ../Doc/library/unittest.rst:873 ../Doc/library/unittest.rst:876 -#: ../Doc/library/unittest.rst:973 ../Doc/library/unittest.rst:1190 -#: ../Doc/library/unittest.rst:1193 ../Doc/library/unittest.rst:1196 +#: ../Doc/library/unittest.rst:879 ../Doc/library/unittest.rst:882 +#: ../Doc/library/unittest.rst:979 ../Doc/library/unittest.rst:1196 #: ../Doc/library/unittest.rst:1199 ../Doc/library/unittest.rst:1202 -#: ../Doc/library/unittest.rst:1311 ../Doc/library/unittest.rst:1314 -#: ../Doc/library/unittest.rst:1317 ../Doc/library/unittest.rst:1320 -#: ../Doc/library/unittest.rst:1323 ../Doc/library/unittest.rst:1326 +#: ../Doc/library/unittest.rst:1205 ../Doc/library/unittest.rst:1208 +#: ../Doc/library/unittest.rst:1314 ../Doc/library/unittest.rst:1317 +#: ../Doc/library/unittest.rst:1320 ../Doc/library/unittest.rst:1323 +#: ../Doc/library/unittest.rst:1326 ../Doc/library/unittest.rst:1329 msgid "3.1" msgstr "3.1" -#: ../Doc/library/unittest.rst:864 +#: ../Doc/library/unittest.rst:870 msgid ":meth:`assertIsNot(a, b) `" msgstr ":meth:`assertIsNot(a, b) `" -#: ../Doc/library/unittest.rst:864 +#: ../Doc/library/unittest.rst:870 msgid "``a is not b``" msgstr "``a is not b``" -#: ../Doc/library/unittest.rst:867 +#: ../Doc/library/unittest.rst:873 msgid ":meth:`assertIsNone(x) `" msgstr ":meth:`assertIsNone(x) `" -#: ../Doc/library/unittest.rst:867 +#: ../Doc/library/unittest.rst:873 msgid "``x is None``" msgstr "``x is None``" -#: ../Doc/library/unittest.rst:870 +#: ../Doc/library/unittest.rst:876 msgid ":meth:`assertIsNotNone(x) `" msgstr ":meth:`assertIsNotNone(x) `" -#: ../Doc/library/unittest.rst:870 +#: ../Doc/library/unittest.rst:876 msgid "``x is not None``" msgstr "``x is not None``" -#: ../Doc/library/unittest.rst:873 +#: ../Doc/library/unittest.rst:879 msgid ":meth:`assertIn(a, b) `" msgstr ":meth:`assertIn(a, b) `" -#: ../Doc/library/unittest.rst:873 +#: ../Doc/library/unittest.rst:879 msgid "``a in b``" msgstr "``a in b``" -#: ../Doc/library/unittest.rst:876 +#: ../Doc/library/unittest.rst:882 msgid ":meth:`assertNotIn(a, b) `" msgstr ":meth:`assertNotIn(a, b) `" -#: ../Doc/library/unittest.rst:876 +#: ../Doc/library/unittest.rst:882 msgid "``a not in b``" msgstr "``a not in b``" -#: ../Doc/library/unittest.rst:879 +#: ../Doc/library/unittest.rst:885 msgid ":meth:`assertIsInstance(a, b) `" msgstr ":meth:`assertIsInstance(a, b) `" -#: ../Doc/library/unittest.rst:879 +#: ../Doc/library/unittest.rst:885 msgid "``isinstance(a, b)``" msgstr "``isinstance(a, b)``" -#: ../Doc/library/unittest.rst:879 ../Doc/library/unittest.rst:882 -#: ../Doc/library/unittest.rst:976 ../Doc/library/unittest.rst:979 -#: ../Doc/library/unittest.rst:1205 ../Doc/library/unittest.rst:1208 +#: ../Doc/library/unittest.rst:885 ../Doc/library/unittest.rst:888 +#: ../Doc/library/unittest.rst:982 ../Doc/library/unittest.rst:985 +#: ../Doc/library/unittest.rst:1211 ../Doc/library/unittest.rst:1214 msgid "3.2" msgstr "3.2" -#: ../Doc/library/unittest.rst:882 +#: ../Doc/library/unittest.rst:888 msgid ":meth:`assertNotIsInstance(a, b) `" msgstr ":meth:`assertNotIsInstance(a, b) `" -#: ../Doc/library/unittest.rst:882 +#: ../Doc/library/unittest.rst:888 msgid "``not isinstance(a, b)``" msgstr "``not isinstance(a, b)``" -#: ../Doc/library/unittest.rst:886 +#: ../Doc/library/unittest.rst:892 msgid "" "All the assert methods accept a *msg* argument that, if specified, is used " "as the error message on failure (see also :data:`longMessage`). Note that " @@ -1398,7 +1407,7 @@ msgstr "" "`assertRaisesRegex`, :meth:`assertWarns`, :meth:`assertWarnsRegex` sólo " "cuando se utilizan como gestor de contexto." -#: ../Doc/library/unittest.rst:894 +#: ../Doc/library/unittest.rst:900 msgid "" "Test that *first* and *second* are equal. If the values do not compare " "equal, the test will fail." @@ -1406,7 +1415,7 @@ msgstr "" "Testea que *first* y *second* son iguales. Si los valores no comparan como " "iguales, el test fallará." -#: ../Doc/library/unittest.rst:897 +#: ../Doc/library/unittest.rst:903 msgid "" "In addition, if *first* and *second* are the exact same type and one of " "list, tuple, dict, set, frozenset or str or any type that a subclass " @@ -1422,12 +1431,12 @@ msgstr "" "(véase también la :ref:`lista de métodos específicos del tipo `)." -#: ../Doc/library/unittest.rst:904 +#: ../Doc/library/unittest.rst:910 msgid "Added the automatic calling of type-specific equality function." msgstr "" "Añadida la llamada automática de la función de igualdad de tipo específico." -#: ../Doc/library/unittest.rst:907 +#: ../Doc/library/unittest.rst:913 msgid "" ":meth:`assertMultiLineEqual` added as the default type equality function for " "comparing strings." @@ -1435,7 +1444,7 @@ msgstr "" ":meth:`assertMultiLineEqual` añadido como la función por defecto para " "igualdad de tipos cuando se comparan cadenas." -#: ../Doc/library/unittest.rst:914 +#: ../Doc/library/unittest.rst:920 msgid "" "Test that *first* and *second* are not equal. If the values do compare " "equal, the test will fail." @@ -1443,11 +1452,11 @@ msgstr "" "Testea que *first* y *second* no son iguales. Si los valores son iguales, " "el test fallará." -#: ../Doc/library/unittest.rst:920 +#: ../Doc/library/unittest.rst:926 msgid "Test that *expr* is true (or false)." msgstr "Testea que *expr* es verdadero (o falso)." -#: ../Doc/library/unittest.rst:922 +#: ../Doc/library/unittest.rst:928 msgid "" "Note that this is equivalent to ``bool(expr) is True`` and not to ``expr is " "True`` (use ``assertIs(expr, True)`` for the latter). This method should " @@ -1461,19 +1470,19 @@ msgstr "" "``assertEqual(a, b)`` en lugar de ``assertTrue(a == b)``), porque " "proporcionan un mejor mensaje de error en caso de fallo." -#: ../Doc/library/unittest.rst:932 +#: ../Doc/library/unittest.rst:938 msgid "Test that *first* and *second* are (or are not) the same object." msgstr "Testea si *first* y *second* son (o no) el mismo objeto." -#: ../Doc/library/unittest.rst:940 +#: ../Doc/library/unittest.rst:946 msgid "Test that *expr* is (or is not) ``None``." msgstr "Testea que *expr* es (o no es) ``None``." -#: ../Doc/library/unittest.rst:948 +#: ../Doc/library/unittest.rst:954 msgid "Test that *member* is (or is not) in *container*." msgstr "Testea que *member* está (o no está) en *container*." -#: ../Doc/library/unittest.rst:956 +#: ../Doc/library/unittest.rst:962 msgid "" "Test that *obj* is (or is not) an instance of *cls* (which can be a class or " "a tuple of classes, as supported by :func:`isinstance`). To check for the " @@ -1484,7 +1493,7 @@ msgstr "" "`isinstance`). Para chequear por el tipo exacto, use :func:" "`assertIs(type(obj), cls) `." -#: ../Doc/library/unittest.rst:964 +#: ../Doc/library/unittest.rst:970 msgid "" "It is also possible to check the production of exceptions, warnings, and log " "messages using the following methods:" @@ -1492,15 +1501,15 @@ msgstr "" "Es también posible chequear la producción de excepciones, advertencias y " "mensajes de log usando los siguientes métodos:" -#: ../Doc/library/unittest.rst:970 +#: ../Doc/library/unittest.rst:976 msgid ":meth:`assertRaises(exc, fun, *args, **kwds) `" msgstr ":meth:`assertRaises(exc, fun, *args, **kwds) `" -#: ../Doc/library/unittest.rst:970 +#: ../Doc/library/unittest.rst:976 msgid "``fun(*args, **kwds)`` raises *exc*" msgstr "``fun(*args, **kwds)`` lanza *exc*" -#: ../Doc/library/unittest.rst:973 +#: ../Doc/library/unittest.rst:979 msgid "" ":meth:`assertRaisesRegex(exc, r, fun, *args, **kwds) `" @@ -1508,19 +1517,19 @@ msgstr "" ":meth:`assertRaisesRegex(exc, r, fun, *args, **kwds) `" -#: ../Doc/library/unittest.rst:973 +#: ../Doc/library/unittest.rst:979 msgid "``fun(*args, **kwds)`` raises *exc* and the message matches regex *r*" msgstr "``fun(*args, **kwds)`` lanza *exc* y el mensaje coincide con regex *r*" -#: ../Doc/library/unittest.rst:976 +#: ../Doc/library/unittest.rst:982 msgid ":meth:`assertWarns(warn, fun, *args, **kwds) `" msgstr ":meth:`assertWarns(warn, fun, *args, **kwds) `" -#: ../Doc/library/unittest.rst:976 +#: ../Doc/library/unittest.rst:982 msgid "``fun(*args, **kwds)`` raises *warn*" msgstr "``fun(*args, **kwds)`` lanza *warn*" -#: ../Doc/library/unittest.rst:979 +#: ../Doc/library/unittest.rst:985 msgid "" ":meth:`assertWarnsRegex(warn, r, fun, *args, **kwds) `" @@ -1528,40 +1537,40 @@ msgstr "" ":meth:`assertWarnsRegex(warn, r, fun, *args, **kwds) `" -#: ../Doc/library/unittest.rst:979 +#: ../Doc/library/unittest.rst:985 msgid "``fun(*args, **kwds)`` raises *warn* and the message matches regex *r*" msgstr "" "``fun(*args, **kwds)`` lanza *warn* y el mensaje coincide con regex *r*" -#: ../Doc/library/unittest.rst:982 +#: ../Doc/library/unittest.rst:988 msgid ":meth:`assertLogs(logger, level) `" msgstr ":meth:`assertLogs(logger, level) `" -#: ../Doc/library/unittest.rst:982 +#: ../Doc/library/unittest.rst:988 msgid "The ``with`` block logs on *logger* with minimum *level*" msgstr "El bloque ``with`` vuelca sus logs a *logger* con el *level* mínimo" -#: ../Doc/library/unittest.rst:982 +#: ../Doc/library/unittest.rst:988 msgid "3.4" msgstr "3.4" -#: ../Doc/library/unittest.rst:985 +#: ../Doc/library/unittest.rst:991 msgid ":meth:`assertNoLogs(logger, level) `" msgstr ":meth:`assertLogs(logger, level) `" -#: ../Doc/library/unittest.rst:985 +#: ../Doc/library/unittest.rst:991 msgid "The ``with`` block does not log on" msgstr "El bloque ``with`` no ingresa" -#: ../Doc/library/unittest.rst:986 +#: ../Doc/library/unittest.rst:992 msgid "*logger* with minimum *level*" msgstr "El bloque ``with`` vuelca sus logs a *logger* con el *level* mínimo" -#: ../Doc/library/unittest.rst:985 +#: ../Doc/library/unittest.rst:991 msgid "3.10" msgstr "3.10" -#: ../Doc/library/unittest.rst:992 +#: ../Doc/library/unittest.rst:998 msgid "" "Test that an exception is raised when *callable* is called with any " "positional or keyword arguments that are also passed to :meth:" @@ -1577,7 +1586,7 @@ msgstr "" "en cuenta cualquiera de un grupo de excepciones, una tupla que contenga las " "clases de excepción puede ser pasada como *exception*." -#: ../Doc/library/unittest.rst:999 +#: ../Doc/library/unittest.rst:1005 msgid "" "If only the *exception* and possibly the *msg* arguments are given, return a " "context manager so that the code under test can be written inline rather " @@ -1587,7 +1596,7 @@ msgstr "" "un administrador de contexto para que el código testado pueda ser escrito en " "línea en lugar de como una función::" -#: ../Doc/library/unittest.rst:1006 +#: ../Doc/library/unittest.rst:1012 msgid "" "When used as a context manager, :meth:`assertRaises` accepts the additional " "keyword argument *msg*." @@ -1595,7 +1604,7 @@ msgstr "" "Cuando se emplea como un administrador de contexto, :meth:`assertRaises` " "acepta el argumento por palabra clave adicional *msg*." -#: ../Doc/library/unittest.rst:1009 +#: ../Doc/library/unittest.rst:1015 msgid "" "The context manager will store the caught exception object in its :attr:" "`exception` attribute. This can be useful if the intention is to perform " @@ -1605,23 +1614,23 @@ msgstr "" "atributo :attr:`exception` . Esto puede ser útil si la intención es " "realizar comprobaciones adicionales sobre la excepción planteada::" -#: ../Doc/library/unittest.rst:1019 +#: ../Doc/library/unittest.rst:1025 msgid "Added the ability to use :meth:`assertRaises` as a context manager." msgstr "" "Añadió la capacidad de usar :meth:`assertRaises` como gestor de contexto." -#: ../Doc/library/unittest.rst:1022 +#: ../Doc/library/unittest.rst:1028 msgid "Added the :attr:`exception` attribute." msgstr "Añadido el atributo :attr:`exception` ." -#: ../Doc/library/unittest.rst:1025 ../Doc/library/unittest.rst:1051 -#: ../Doc/library/unittest.rst:1092 ../Doc/library/unittest.rst:1115 +#: ../Doc/library/unittest.rst:1031 ../Doc/library/unittest.rst:1057 +#: ../Doc/library/unittest.rst:1098 ../Doc/library/unittest.rst:1121 msgid "Added the *msg* keyword argument when used as a context manager." msgstr "" "Añadido el argumento por palabra clave *msg* cuando se emplea un gestor de " "contexto." -#: ../Doc/library/unittest.rst:1032 +#: ../Doc/library/unittest.rst:1038 msgid "" "Like :meth:`assertRaises` but also tests that *regex* matches on the string " "representation of the raised exception. *regex* may be a regular expression " @@ -1633,19 +1642,19 @@ msgstr "" "objeto de expresión regular o una cadena que contiene una expresión regular " "adecuada para ser usada por :func:`re.search`. Ejemplos::" -#: ../Doc/library/unittest.rst:1040 ../Doc/library/unittest.rst:1108 +#: ../Doc/library/unittest.rst:1046 ../Doc/library/unittest.rst:1114 msgid "or::" msgstr "o::" -#: ../Doc/library/unittest.rst:1045 +#: ../Doc/library/unittest.rst:1051 msgid "Added under the name ``assertRaisesRegexp``." msgstr "Añadido bajo el nombre de ``assertRaisesRegexp``." -#: ../Doc/library/unittest.rst:1048 +#: ../Doc/library/unittest.rst:1054 msgid "Renamed to :meth:`assertRaisesRegex`." msgstr "Renombrado a :meth:`assertRaisesRegex`." -#: ../Doc/library/unittest.rst:1058 +#: ../Doc/library/unittest.rst:1064 msgid "" "Test that a warning is triggered when *callable* is called with any " "positional or keyword arguments that are also passed to :meth:" @@ -1660,7 +1669,7 @@ msgstr "" "grupo de advertencias, una tupla que contenga las clases de advertencia " "puede ser pasada como *warnings*." -#: ../Doc/library/unittest.rst:1065 +#: ../Doc/library/unittest.rst:1071 msgid "" "If only the *warning* and possibly the *msg* arguments are given, return a " "context manager so that the code under test can be written inline rather " @@ -1670,7 +1679,7 @@ msgstr "" "de contexto para que el código testado pueda ser escrito en línea en lugar " "de como una función::" -#: ../Doc/library/unittest.rst:1072 +#: ../Doc/library/unittest.rst:1078 msgid "" "When used as a context manager, :meth:`assertWarns` accepts the additional " "keyword argument *msg*." @@ -1678,7 +1687,7 @@ msgstr "" "Cuando se usa como gestor de contexto, :meth:`assertWarns` acepta el " "argumento de palabra clave adicional *msg*." -#: ../Doc/library/unittest.rst:1075 +#: ../Doc/library/unittest.rst:1081 msgid "" "The context manager will store the caught warning object in its :attr:" "`warning` attribute, and the source line which triggered the warnings in " @@ -1691,7 +1700,7 @@ msgstr "" "si la intención es realizar comprobaciones adicionales sobre la advertencia " "capturada::" -#: ../Doc/library/unittest.rst:1087 +#: ../Doc/library/unittest.rst:1093 msgid "" "This method works regardless of the warning filters in place when it is " "called." @@ -1699,7 +1708,7 @@ msgstr "" "Este método funciona independientemente de los filtros de aviso que estén en " "su lugar cuando se llame." -#: ../Doc/library/unittest.rst:1099 +#: ../Doc/library/unittest.rst:1105 msgid "" "Like :meth:`assertWarns` but also tests that *regex* matches on the message " "of the triggered warning. *regex* may be a regular expression object or a " @@ -1711,7 +1720,7 @@ msgstr "" "regular o una cadena que contiene una expresión regular adecuada para ser " "usada por :func:`re.search`. Ejemplo::" -#: ../Doc/library/unittest.rst:1120 +#: ../Doc/library/unittest.rst:1126 msgid "" "A context manager to test that at least one message is logged on the " "*logger* or one of its children, with at least the given *level*." @@ -1719,7 +1728,7 @@ msgstr "" "Un gestor de contexto para comprobar que al menos un mensaje está registrado " "en el *logger* o en uno de sus hijos, con al menos el *level* dado." -#: ../Doc/library/unittest.rst:1124 +#: ../Doc/library/unittest.rst:1130 msgid "" "If given, *logger* should be a :class:`logging.Logger` object or a :class:" "`str` giving the name of a logger. The default is the root logger, which " @@ -1730,17 +1739,18 @@ msgstr "" "`str` dando el nombre de un logger. El valor por defecto es el root logger, " "que captará todos los mensajes." -#: ../Doc/library/unittest.rst:1129 ../Doc/library/unittest.rst:1170 +#: ../Doc/library/unittest.rst:1135 ../Doc/library/unittest.rst:1176 +#, fuzzy msgid "" "If given, *level* should be either a numeric logging level or its string " -"equivalent (for example either ``\"ERROR\"`` or :attr:`logging.ERROR`). The " -"default is :attr:`logging.INFO`." +"equivalent (for example either ``\"ERROR\"`` or :const:`logging.ERROR`). " +"The default is :const:`logging.INFO`." msgstr "" "Si se da, *level* debe ser un nivel de logging numérico o su equivalente en " "cadena (por ejemplo, o bien ``”ERROR”`` o :attr:`logging.ERROR`). El valor " "por defecto es :attr:`logging.INFO`." -#: ../Doc/library/unittest.rst:1133 +#: ../Doc/library/unittest.rst:1139 msgid "" "The test passes if at least one message emitted inside the ``with`` block " "matches the *logger* and *level* conditions, otherwise it fails." @@ -1748,7 +1758,7 @@ msgstr "" "El test pasa si al menos un mensaje emitido dentro del bloque ``with`` " "coincide con las condiciones de *logger* y *level*, de lo contrario falla." -#: ../Doc/library/unittest.rst:1136 +#: ../Doc/library/unittest.rst:1142 msgid "" "The object returned by the context manager is a recording helper which keeps " "tracks of the matching log messages. It has two attributes:" @@ -1757,14 +1767,14 @@ msgstr "" "lleva un registro de los mensajes de registro que coinciden. Tiene dos " "atributos:" -#: ../Doc/library/unittest.rst:1142 +#: ../Doc/library/unittest.rst:1148 msgid "" "A list of :class:`logging.LogRecord` objects of the matching log messages." msgstr "" "Una lista de objetos :class:`logging.LogRecord` de los mensajes de log " "coincidentes." -#: ../Doc/library/unittest.rst:1147 +#: ../Doc/library/unittest.rst:1153 msgid "" "A list of :class:`str` objects with the formatted output of matching " "messages." @@ -1772,11 +1782,11 @@ msgstr "" "Una lista de objetos :class:`str` con la salida forrajeada en los mensajes " "coincidentes." -#: ../Doc/library/unittest.rst:1150 +#: ../Doc/library/unittest.rst:1156 msgid "Example::" msgstr "Ejemplo::" -#: ../Doc/library/unittest.rst:1162 +#: ../Doc/library/unittest.rst:1168 msgid "" "A context manager to test that no messages are logged on the *logger* or one " "of its children, with at least the given *level*." @@ -1784,7 +1794,7 @@ msgstr "" "Un gestor de contexto para comprobar que al menos un mensaje está registrado " "en el *logger* o en uno de sus hijos, con al menos el *level* dado." -#: ../Doc/library/unittest.rst:1166 +#: ../Doc/library/unittest.rst:1172 msgid "" "If given, *logger* should be a :class:`logging.Logger` object or a :class:" "`str` giving the name of a logger. The default is the root logger, which " @@ -1794,88 +1804,88 @@ msgstr "" "`str` dándole el nombre de un logger. El valor por defecto es el root " "logger, que captará todos los mensajes." -#: ../Doc/library/unittest.rst:1174 +#: ../Doc/library/unittest.rst:1180 msgid "" "Unlike :meth:`assertLogs`, nothing will be returned by the context manager." msgstr "" "A diferencia de :meth:`assertLogs`, el gestor de contexto no devolverá nada." -#: ../Doc/library/unittest.rst:1179 +#: ../Doc/library/unittest.rst:1185 msgid "" "There are also other methods used to perform more specific checks, such as:" msgstr "" "Hay también otros métodos empleados para realizar comprobaciones más " "específicas, tales como:" -#: ../Doc/library/unittest.rst:1184 +#: ../Doc/library/unittest.rst:1190 msgid ":meth:`assertAlmostEqual(a, b) `" msgstr ":meth:`assertAlmostEqual(a, b) `" -#: ../Doc/library/unittest.rst:1184 +#: ../Doc/library/unittest.rst:1190 msgid "``round(a-b, 7) == 0``" msgstr "``round(a-b, 7) == 0``" -#: ../Doc/library/unittest.rst:1187 +#: ../Doc/library/unittest.rst:1193 msgid ":meth:`assertNotAlmostEqual(a, b) `" msgstr ":meth:`assertNotAlmostEqual(a, b) `" -#: ../Doc/library/unittest.rst:1187 +#: ../Doc/library/unittest.rst:1193 msgid "``round(a-b, 7) != 0``" msgstr "``round(a-b, 7) != 0``" -#: ../Doc/library/unittest.rst:1190 +#: ../Doc/library/unittest.rst:1196 msgid ":meth:`assertGreater(a, b) `" msgstr ":meth:`assertGreater(a, b) `" -#: ../Doc/library/unittest.rst:1190 +#: ../Doc/library/unittest.rst:1196 msgid "``a > b``" msgstr "``a > b``" -#: ../Doc/library/unittest.rst:1193 +#: ../Doc/library/unittest.rst:1199 msgid ":meth:`assertGreaterEqual(a, b) `" msgstr ":meth:`assertGreaterEqual(a, b) `" -#: ../Doc/library/unittest.rst:1193 +#: ../Doc/library/unittest.rst:1199 msgid "``a >= b``" msgstr "``a >= b``" -#: ../Doc/library/unittest.rst:1196 +#: ../Doc/library/unittest.rst:1202 msgid ":meth:`assertLess(a, b) `" msgstr ":meth:`assertLess(a, b) `" -#: ../Doc/library/unittest.rst:1196 +#: ../Doc/library/unittest.rst:1202 msgid "``a < b``" msgstr "``a < b``" -#: ../Doc/library/unittest.rst:1199 +#: ../Doc/library/unittest.rst:1205 msgid ":meth:`assertLessEqual(a, b) `" msgstr ":meth:`assertLessEqual(a, b) `" -#: ../Doc/library/unittest.rst:1199 +#: ../Doc/library/unittest.rst:1205 msgid "``a <= b``" msgstr "``a <= b``" -#: ../Doc/library/unittest.rst:1202 +#: ../Doc/library/unittest.rst:1208 msgid ":meth:`assertRegex(s, r) `" msgstr ":meth:`assertRegex(s, r) `" -#: ../Doc/library/unittest.rst:1202 +#: ../Doc/library/unittest.rst:1208 msgid "``r.search(s)``" msgstr "``r.search(s)``" -#: ../Doc/library/unittest.rst:1205 +#: ../Doc/library/unittest.rst:1211 msgid ":meth:`assertNotRegex(s, r) `" msgstr ":meth:`assertNotRegex(s, r) `" -#: ../Doc/library/unittest.rst:1205 +#: ../Doc/library/unittest.rst:1211 msgid "``not r.search(s)``" msgstr "``not r.search(s)``" -#: ../Doc/library/unittest.rst:1208 +#: ../Doc/library/unittest.rst:1214 msgid ":meth:`assertCountEqual(a, b) `" msgstr ":meth:`assertCountEqual(a, b) `" -#: ../Doc/library/unittest.rst:1208 +#: ../Doc/library/unittest.rst:1214 msgid "" "*a* and *b* have the same elements in the same number, regardless of their " "order." @@ -1883,7 +1893,7 @@ msgstr "" "*a* y *b* tienen los mismos elementos y en el mismo número, sin importar su " "orden." -#: ../Doc/library/unittest.rst:1217 +#: ../Doc/library/unittest.rst:1223 msgid "" "Test that *first* and *second* are approximately (or not approximately) " "equal by computing the difference, rounding to the given number of decimal " @@ -1897,7 +1907,7 @@ msgstr "" "métodos redondean los valores al número dado de *puntos decimales* (por " "ejemplo como la función :func:`round`) y no *cifras significativas*." -#: ../Doc/library/unittest.rst:1223 +#: ../Doc/library/unittest.rst:1229 msgid "" "If *delta* is supplied instead of *places* then the difference between " "*first* and *second* must be less or equal to (or greater than) *delta*." @@ -1905,11 +1915,11 @@ msgstr "" "Si se suministra *delta* en vez de *places* que entonces la diferencia entre " "*first* y *second* deba ser menor o igual a (o mayor que) *delta*." -#: ../Doc/library/unittest.rst:1226 +#: ../Doc/library/unittest.rst:1232 msgid "Supplying both *delta* and *places* raises a :exc:`TypeError`." msgstr "Suministrar tanto *delta* como *places* lanza un :exc:`TypeError`." -#: ../Doc/library/unittest.rst:1228 +#: ../Doc/library/unittest.rst:1234 msgid "" ":meth:`assertAlmostEqual` automatically considers almost equal objects that " "compare equal. :meth:`assertNotAlmostEqual` automatically fails if the " @@ -1920,7 +1930,7 @@ msgstr "" "automáticamente si los objetos comparan iguales. Añadido el argumento de " "palabra clave *delta*." -#: ../Doc/library/unittest.rst:1239 +#: ../Doc/library/unittest.rst:1245 msgid "" "Test that *first* is respectively >, >=, < or <= than *second* depending on " "the method name. If not, the test will fail::" @@ -1928,7 +1938,7 @@ msgstr "" "Prueba que *first* es respectivamente >, >=, < o <= que *second* dependiendo " "del nombre del método. Si no, el test fallará::" -#: ../Doc/library/unittest.rst:1251 +#: ../Doc/library/unittest.rst:1257 msgid "" "Test that a *regex* search matches (or does not match) *text*. In case of " "failure, the error message will include the pattern and the *text* (or the " @@ -1942,11 +1952,11 @@ msgstr "" "ser un objeto de expresión regular o una cadena que contiene una expresión " "regular adecuada para ser utilizada por :func:`re.search`." -#: ../Doc/library/unittest.rst:1257 +#: ../Doc/library/unittest.rst:1263 msgid "Added under the name ``assertRegexpMatches``." msgstr "Añadido bajo el nombre de ``assertRegexpMatches``." -#: ../Doc/library/unittest.rst:1259 +#: ../Doc/library/unittest.rst:1265 msgid "" "The method ``assertRegexpMatches()`` has been renamed to :meth:`." "assertRegex`." @@ -1954,19 +1964,11 @@ msgstr "" "El método ``assertRegexpMatches()`` ha sido renombrado a :meth:`." "assertRegex`." -#: ../Doc/library/unittest.rst:1262 +#: ../Doc/library/unittest.rst:1268 msgid ":meth:`.assertNotRegex`." msgstr ":meth:`.assertNotRegex`." -#: ../Doc/library/unittest.rst:1264 -msgid "" -"The name ``assertNotRegexpMatches`` is a deprecated alias for :meth:`." -"assertNotRegex`." -msgstr "" -"El nombre ``assertNotRegexpMatches`` es un alias obsoleto para :meth:`." -"assertNotRegex`." - -#: ../Doc/library/unittest.rst:1271 +#: ../Doc/library/unittest.rst:1274 msgid "" "Test that sequence *first* contains the same elements as *second*, " "regardless of their order. When they don't, an error message listing the " @@ -1976,7 +1978,7 @@ msgstr "" "independientemente de su orden. Cuando no lo hagan, se generará un mensaje " "de error con las diferencias entre las secuencias." -#: ../Doc/library/unittest.rst:1275 +#: ../Doc/library/unittest.rst:1278 msgid "" "Duplicate elements are *not* ignored when comparing *first* and *second*. It " "verifies whether each element has the same count in both sequences. " @@ -1989,7 +1991,7 @@ msgstr "" "Counter(list(second)))`` pero funciona también con secuencias de objetos que " "no son hashable." -#: ../Doc/library/unittest.rst:1286 +#: ../Doc/library/unittest.rst:1289 msgid "" "The :meth:`assertEqual` method dispatches the equality check for objects of " "the same type to different type-specific methods. These methods are already " @@ -2002,7 +2004,7 @@ msgstr "" "pero también es posible registrar nuevos métodos usando :meth:" "`addTypeEqualityFunc`:" -#: ../Doc/library/unittest.rst:1293 +#: ../Doc/library/unittest.rst:1296 msgid "" "Registers a type-specific method called by :meth:`assertEqual` to check if " "two objects of exactly the same *typeobj* (not subclasses) compare equal. " @@ -2021,7 +2023,7 @@ msgstr "" "proporcionando información útil y explicando las desigualdades en detalle en " "el mensaje de error." -#: ../Doc/library/unittest.rst:1304 +#: ../Doc/library/unittest.rst:1307 msgid "" "The list of type-specific methods automatically used by :meth:`~TestCase." "assertEqual` are summarized in the following table. Note that it's usually " @@ -2031,59 +2033,59 @@ msgstr "" "`~TestCase.assertEqual` se resumen en la siguiente tabla. Tenga en cuenta " "que normalmente no es necesario invocar estos métodos directamente." -#: ../Doc/library/unittest.rst:1309 +#: ../Doc/library/unittest.rst:1312 msgid "Used to compare" msgstr "Usado para comparar" -#: ../Doc/library/unittest.rst:1311 +#: ../Doc/library/unittest.rst:1314 msgid ":meth:`assertMultiLineEqual(a, b) `" msgstr ":meth:`assertMultiLineEqual(a, b) `" -#: ../Doc/library/unittest.rst:1311 +#: ../Doc/library/unittest.rst:1314 msgid "strings" msgstr "strings" -#: ../Doc/library/unittest.rst:1314 +#: ../Doc/library/unittest.rst:1317 msgid ":meth:`assertSequenceEqual(a, b) `" msgstr ":meth:`assertSequenceEqual(a, b) `" -#: ../Doc/library/unittest.rst:1314 +#: ../Doc/library/unittest.rst:1317 msgid "sequences" msgstr "sequences" -#: ../Doc/library/unittest.rst:1317 +#: ../Doc/library/unittest.rst:1320 msgid ":meth:`assertListEqual(a, b) `" msgstr ":meth:`assertListEqual(a, b) `" -#: ../Doc/library/unittest.rst:1317 +#: ../Doc/library/unittest.rst:1320 msgid "lists" msgstr "lists" -#: ../Doc/library/unittest.rst:1320 +#: ../Doc/library/unittest.rst:1323 msgid ":meth:`assertTupleEqual(a, b) `" msgstr ":meth:`assertTupleEqual(a, b) `" -#: ../Doc/library/unittest.rst:1320 +#: ../Doc/library/unittest.rst:1323 msgid "tuples" msgstr "tuples" -#: ../Doc/library/unittest.rst:1323 +#: ../Doc/library/unittest.rst:1326 msgid ":meth:`assertSetEqual(a, b) `" msgstr ":meth:`assertSetEqual(a, b) `" -#: ../Doc/library/unittest.rst:1323 +#: ../Doc/library/unittest.rst:1326 msgid "sets or frozensets" msgstr "sets or frozensets" -#: ../Doc/library/unittest.rst:1326 +#: ../Doc/library/unittest.rst:1329 msgid ":meth:`assertDictEqual(a, b) `" msgstr ":meth:`assertDictEqual(a, b) `" -#: ../Doc/library/unittest.rst:1326 +#: ../Doc/library/unittest.rst:1329 msgid "dicts" msgstr "dicts" -#: ../Doc/library/unittest.rst:1334 +#: ../Doc/library/unittest.rst:1337 msgid "" "Test that the multiline string *first* is equal to the string *second*. When " "not equal a diff of the two strings highlighting the differences will be " @@ -2095,7 +2097,7 @@ msgstr "" "diferencias se incluirá en el mensaje de error. Este método se utiliza por " "defecto cuando se comparan cadenas con :meth:`assertEqual`." -#: ../Doc/library/unittest.rst:1344 +#: ../Doc/library/unittest.rst:1347 msgid "" "Tests that two sequences are equal. If a *seq_type* is supplied, both " "*first* and *second* must be instances of *seq_type* or a failure will be " @@ -2107,7 +2109,7 @@ msgstr "" "un fallo. Si las secuencias son diferentes se construye un mensaje de error " "que muestra la diferencia entre las dos." -#: ../Doc/library/unittest.rst:1349 +#: ../Doc/library/unittest.rst:1352 msgid "" "This method is not called directly by :meth:`assertEqual`, but it's used to " "implement :meth:`assertListEqual` and :meth:`assertTupleEqual`." @@ -2115,7 +2117,7 @@ msgstr "" "Este método no es llamado directamente por :meth:`assertEqual`, pero se usa " "para implementar :meth:`assertListEqual` y :meth:`assertTupleEqual`." -#: ../Doc/library/unittest.rst:1359 +#: ../Doc/library/unittest.rst:1362 msgid "" "Tests that two lists or tuples are equal. If not, an error message is " "constructed that shows only the differences between the two. An error is " @@ -2128,7 +2130,7 @@ msgstr "" "métodos se utilizan por defecto cuando se comparan listas o tuplas con :meth:" "`assertEqual`." -#: ../Doc/library/unittest.rst:1370 +#: ../Doc/library/unittest.rst:1373 msgid "" "Tests that two sets are equal. If not, an error message is constructed that " "lists the differences between the sets. This method is used by default when " @@ -2139,7 +2141,7 @@ msgstr "" "utiliza por defecto cuando se comparan los conjuntos o frozensets con :meth:" "`assertEqual`." -#: ../Doc/library/unittest.rst:1374 +#: ../Doc/library/unittest.rst:1377 msgid "" "Fails if either of *first* or *second* does not have a :meth:`set." "difference` method." @@ -2147,7 +2149,7 @@ msgstr "" "Falla si cualquiera de *first* o *second* no tiene un método de :meth:`set." "difference`." -#: ../Doc/library/unittest.rst:1382 +#: ../Doc/library/unittest.rst:1385 msgid "" "Test that two dictionaries are equal. If not, an error message is " "constructed that shows the differences in the dictionaries. This method will " @@ -2158,13 +2160,13 @@ msgstr "" "método se usará por defecto para comparar los diccionarios en las llamadas " "a :meth:`assertEqual`." -#: ../Doc/library/unittest.rst:1393 +#: ../Doc/library/unittest.rst:1396 msgid "" "Finally the :class:`TestCase` provides the following methods and attributes:" msgstr "" "Finalmente, :class:`TestCase` proporciona los siguientes métodos y atributos:" -#: ../Doc/library/unittest.rst:1398 +#: ../Doc/library/unittest.rst:1401 msgid "" "Signals a test failure unconditionally, with *msg* or ``None`` for the error " "message." @@ -2172,7 +2174,7 @@ msgstr "" "Señala un fallo del test incondicionalmente, con *msg* o ``None`` para el " "mensaje de error." -#: ../Doc/library/unittest.rst:1404 +#: ../Doc/library/unittest.rst:1407 msgid "" "This class attribute gives the exception raised by the test method. If a " "test framework needs to use a specialized exception, possibly to carry " @@ -2186,7 +2188,7 @@ msgstr "" "\"jugar limpio\" con el marco. El valor inicial de este atributo es :exc:" "`AssertionError`." -#: ../Doc/library/unittest.rst:1413 +#: ../Doc/library/unittest.rst:1416 msgid "" "This class attribute determines what happens when a custom failure message " "is passed as the msg argument to an assertXYY call that fails. ``True`` is " @@ -2200,7 +2202,7 @@ msgstr "" "añade al final del mensaje de fallo estándar. Cuando se establece en " "``False``, el mensaje personalizado reemplaza al mensaje estándar." -#: ../Doc/library/unittest.rst:1419 +#: ../Doc/library/unittest.rst:1422 msgid "" "The class setting can be overridden in individual test methods by assigning " "an instance attribute, self.longMessage, to ``True`` or ``False`` before " @@ -2210,12 +2212,12 @@ msgstr "" "individuales asignando un atributo de instancia, self.longMessage, a " "``True`` o ``False`` antes de llamar a los métodos assert." -#: ../Doc/library/unittest.rst:1423 +#: ../Doc/library/unittest.rst:1426 msgid "The class setting gets reset before each test call." msgstr "" "La configuración de la clase se reajusta antes de cada llamada de test." -#: ../Doc/library/unittest.rst:1430 +#: ../Doc/library/unittest.rst:1433 msgid "" "This attribute controls the maximum length of diffs output by assert methods " "that report diffs on failure. It defaults to 80*8 characters. Assert methods " @@ -2230,7 +2232,7 @@ msgstr "" "comparación de secuencias que le delegan), :meth:`assertDictEqual` y :meth:" "`assertMultiLineEqual`." -#: ../Doc/library/unittest.rst:1437 +#: ../Doc/library/unittest.rst:1440 msgid "" "Setting ``maxDiff`` to ``None`` means that there is no maximum length of " "diffs." @@ -2238,7 +2240,7 @@ msgstr "" "Poner ``maxDiff`` en ``None`` significa que no hay una longitud máxima de " "diferencias." -#: ../Doc/library/unittest.rst:1443 +#: ../Doc/library/unittest.rst:1446 msgid "" "Testing frameworks can use the following methods to collect information on " "the test:" @@ -2246,7 +2248,7 @@ msgstr "" "Los marcos de test pueden utilizar los siguientes métodos para reunir " "información sobre el test:" -#: ../Doc/library/unittest.rst:1449 +#: ../Doc/library/unittest.rst:1452 msgid "" "Return the number of tests represented by this test object. For :class:" "`TestCase` instances, this will always be ``1``." @@ -2254,7 +2256,7 @@ msgstr "" "Retorna el número de tests representados por este objeto de test. Para las " "instancias de :class:`TestCase`, este siempre será ``1``." -#: ../Doc/library/unittest.rst:1455 +#: ../Doc/library/unittest.rst:1458 msgid "" "Return an instance of the test result class that should be used for this " "test case class (if no other result instance is provided to the :meth:`run` " @@ -2264,7 +2266,7 @@ msgstr "" "utilizarse para esta clase de caso de test (si no se proporciona otra " "instancia de resultado al método :meth:`run`)." -#: ../Doc/library/unittest.rst:1459 +#: ../Doc/library/unittest.rst:1462 msgid "" "For :class:`TestCase` instances, this will always be an instance of :class:" "`TestResult`; subclasses of :class:`TestCase` should override this as " @@ -2274,7 +2276,7 @@ msgstr "" "de :class:`TestResult`; las subclases de :class:`TestCase` deben anular esto " "según sea necesario." -#: ../Doc/library/unittest.rst:1466 +#: ../Doc/library/unittest.rst:1469 msgid "" "Return a string identifying the specific test case. This is usually the " "full name of the test method, including the module and class name." @@ -2283,7 +2285,7 @@ msgstr "" "es el nombre completo del método de test, incluyendo el nombre del módulo y " "de la clase." -#: ../Doc/library/unittest.rst:1472 +#: ../Doc/library/unittest.rst:1475 msgid "" "Returns a description of the test, or ``None`` if no description has been " "provided. The default implementation of this method returns the first line " @@ -2294,7 +2296,7 @@ msgstr "" "la primera línea de la docstring del método de test, si está disponible, o " "``None`` ." -#: ../Doc/library/unittest.rst:1477 +#: ../Doc/library/unittest.rst:1480 msgid "" "In 3.1 this was changed to add the test name to the short description even " "in the presence of a docstring. This caused compatibility issues with " @@ -2306,7 +2308,7 @@ msgstr "" "compatibilidad con las extensiones de unittest y la adición del nombre de " "test fue movida a la :class:`TextTestResult` en Python 3.2." -#: ../Doc/library/unittest.rst:1486 +#: ../Doc/library/unittest.rst:1489 msgid "" "Add a function to be called after :meth:`tearDown` to cleanup resources used " "during the test. Functions will be called in reverse order to the order they " @@ -2320,7 +2322,7 @@ msgstr "" "llaman con cualquier argumento y argumentos de palabra clave que se pase a :" "meth:`addCleanup` cuando se agregan." -#: ../Doc/library/unittest.rst:1492 +#: ../Doc/library/unittest.rst:1495 msgid "" "If :meth:`setUp` fails, meaning that :meth:`tearDown` is not called, then " "any cleanup functions added will still be called." @@ -2328,7 +2330,7 @@ msgstr "" "Si :meth:`setUp` falla, lo que significa que :meth:`tearDown` no se llama, " "entonces cualquier función de limpieza añadida seguirá siendo llamada." -#: ../Doc/library/unittest.rst:1500 +#: ../Doc/library/unittest.rst:1503 msgid "" "Enter the supplied :term:`context manager`. If successful, also add its :" "meth:`~object.__exit__` method as a cleanup function by :meth:`addCleanup` " @@ -2339,7 +2341,7 @@ msgstr "" "mediante :meth:`addCleanup` y retorna el resultado del método :meth:`~object." "__enter__`." -#: ../Doc/library/unittest.rst:1510 +#: ../Doc/library/unittest.rst:1513 msgid "" "This method is called unconditionally after :meth:`tearDown`, or after :meth:" "`setUp` if :meth:`setUp` raises an exception." @@ -2347,7 +2349,7 @@ msgstr "" "Este método se llama incondicionalmente después de :meth:`tearDown`, o " "después de :meth:`setUp` si :meth:`setUp` lanza una excepción." -#: ../Doc/library/unittest.rst:1513 +#: ../Doc/library/unittest.rst:1516 msgid "" "It is responsible for calling all the cleanup functions added by :meth:" "`addCleanup`. If you need cleanup functions to be called *prior* to :meth:" @@ -2358,7 +2360,7 @@ msgstr "" "anterioridad* a :meth:`tearDown` entonces puedes llamar a :meth:`doCleanups` " "tú mismo." -#: ../Doc/library/unittest.rst:1518 +#: ../Doc/library/unittest.rst:1521 msgid "" ":meth:`doCleanups` pops methods off the stack of cleanup functions one at a " "time, so it can be called at any time." @@ -2366,7 +2368,7 @@ msgstr "" ":meth:`doCleanups` saca los métodos de la pila de funciones de limpieza uno " "a uno, así que se puede llamar en cualquier momento." -#: ../Doc/library/unittest.rst:1526 +#: ../Doc/library/unittest.rst:1529 msgid "" "Add a function to be called after :meth:`tearDownClass` to cleanup resources " "used during the test class. Functions will be called in reverse order to the " @@ -2380,7 +2382,7 @@ msgstr "" "first-out)`). Se llaman con cualquier argumento y argumento de palabra clave " "que se pase a :meth:`addClassCleanup` cuando se añadan." -#: ../Doc/library/unittest.rst:1532 +#: ../Doc/library/unittest.rst:1535 msgid "" "If :meth:`setUpClass` fails, meaning that :meth:`tearDownClass` is not " "called, then any cleanup functions added will still be called." @@ -2389,7 +2391,7 @@ msgstr "" "se invoca, entonces cualquier función de limpieza añadida seguirá siendo " "llamada." -#: ../Doc/library/unittest.rst:1540 +#: ../Doc/library/unittest.rst:1543 msgid "" "Enter the supplied :term:`context manager`. If successful, also add its :" "meth:`~object.__exit__` method as a cleanup function by :meth:" @@ -2401,7 +2403,7 @@ msgstr "" "mediante :meth:`addClassCleanup` y retorna el resultado del método :meth:" "`~object.__enter__`." -#: ../Doc/library/unittest.rst:1550 +#: ../Doc/library/unittest.rst:1553 msgid "" "This method is called unconditionally after :meth:`tearDownClass`, or after :" "meth:`setUpClass` if :meth:`setUpClass` raises an exception." @@ -2409,7 +2411,7 @@ msgstr "" "Este método se llama incondicionalmente después de :meth:`tearDownClass`, o " "después de :meth:`setUpClass` si :meth:`setUpClass` lanza una excepción." -#: ../Doc/library/unittest.rst:1553 +#: ../Doc/library/unittest.rst:1556 msgid "" "It is responsible for calling all the cleanup functions added by :meth:" "`addClassCleanup`. If you need cleanup functions to be called *prior* to :" @@ -2420,7 +2422,7 @@ msgstr "" "*con anterioridad* a :meth:`tearDownClass` entonces puedes llamar a :meth:" "`doCleanupsClass` tú mismo." -#: ../Doc/library/unittest.rst:1558 +#: ../Doc/library/unittest.rst:1561 msgid "" ":meth:`doClassCleanups` pops methods off the stack of cleanup functions one " "at a time, so it can be called at any time." @@ -2428,7 +2430,7 @@ msgstr "" ":meth:`doCleanupsClass` saca los métodos de la pila de funciones de limpieza " "de uno en uno, así que se puede llamar en cualquier momento." -#: ../Doc/library/unittest.rst:1566 +#: ../Doc/library/unittest.rst:1569 msgid "" "This class provides an API similar to :class:`TestCase` and also accepts " "coroutines as test functions." @@ -2436,7 +2438,7 @@ msgstr "" "Esta clase proporciona una API similar a :class:`TestCase` y también acepta " "corutinas como funciones de test." -#: ../Doc/library/unittest.rst:1573 +#: ../Doc/library/unittest.rst:1576 msgid "" "Method called to prepare the test fixture. This is called after :meth:" "`setUp`. This is called immediately before calling the test method; other " @@ -2450,7 +2452,7 @@ msgstr "" "lanzada por este método se considerará un error más que un fallo del test. " "La implementación por defecto no hace nada." -#: ../Doc/library/unittest.rst:1581 +#: ../Doc/library/unittest.rst:1584 msgid "" "Method called immediately after the test method has been called and the " "result recorded. This is called before :meth:`tearDown`. This is called " @@ -2473,13 +2475,13 @@ msgstr "" "llamará si :meth:`asyncSetUp` tiene éxito, independientemente del resultado " "del método de test. La implementación por defecto no hace nada." -#: ../Doc/library/unittest.rst:1593 +#: ../Doc/library/unittest.rst:1596 msgid "This method accepts a coroutine that can be used as a cleanup function." msgstr "" "Este método acepta una corutina que puede ser utilizada como función de " "limpieza." -#: ../Doc/library/unittest.rst:1597 +#: ../Doc/library/unittest.rst:1600 msgid "" "Enter the supplied :term:`asynchronous context manager`. If successful, " "also add its :meth:`~object.__aexit__` method as a cleanup function by :meth:" @@ -2491,7 +2493,7 @@ msgstr "" "limpieza mediante :meth:`addAsyncCleanup` y retorna el resultado del método :" "meth:`~object.__aenter__`." -#: ../Doc/library/unittest.rst:1607 +#: ../Doc/library/unittest.rst:1610 msgid "" "Sets up a new event loop to run the test, collecting the result into the :" "class:`TestResult` object passed as *result*. If *result* is omitted or " @@ -2507,11 +2509,11 @@ msgstr "" "devuelve al invocado de :meth:`run`. Al final del test se cancelan todas las " "tareas del bucle de eventos." -#: ../Doc/library/unittest.rst:1615 +#: ../Doc/library/unittest.rst:1618 msgid "An example illustrating the order::" msgstr "Un ejemplo ilustrando el orden::" -#: ../Doc/library/unittest.rst:1651 +#: ../Doc/library/unittest.rst:1654 msgid "" "After running the test, ``events`` would contain ``[\"setUp\", " "\"asyncSetUp\", \"test_response\", \"asyncTearDown\", \"tearDown\", " @@ -2520,7 +2522,7 @@ msgstr "" "Después de ejecutar el test, ``events`` contendría ``[“setUp”, " "“asyncSetUp”, “test_response”, “asyncTearDown”, “tearDown”, “cleanup”]``." -#: ../Doc/library/unittest.rst:1656 +#: ../Doc/library/unittest.rst:1659 msgid "" "This class implements the portion of the :class:`TestCase` interface which " "allows the test runner to drive the test, but does not provide the methods " @@ -2535,161 +2537,11 @@ msgstr "" "prueba heredado, lo que permite que se integre en un marco de tests basado " "en :mod:`unittest`." -#: ../Doc/library/unittest.rst:1666 -msgid "Deprecated aliases" -msgstr "Alias obsoletos" - -#: ../Doc/library/unittest.rst:1668 -msgid "" -"For historical reasons, some of the :class:`TestCase` methods had one or " -"more aliases that are now deprecated. The following table lists the correct " -"names along with their deprecated aliases:" -msgstr "" -"Por razones históricas, algunos de los métodos de :class:`TestCase` tenían " -"uno o más alias que ahora están obsoletos. La siguiente tabla lista los " -"nombres correctos junto con sus alias obsoletos:" - -#: ../Doc/library/unittest.rst:1673 -msgid "Method Name" -msgstr "Nombre del método" - -#: ../Doc/library/unittest.rst:1673 -msgid "Deprecated alias" -msgstr "Alias deprecado" - -#: ../Doc/library/unittest.rst:1675 -msgid ":meth:`.assertEqual`" -msgstr ":meth:`.assertEqual`" - -#: ../Doc/library/unittest.rst:1675 -msgid "failUnlessEqual" -msgstr "failUnlessEqual" - -#: ../Doc/library/unittest.rst:1675 -msgid "assertEquals" -msgstr "assertEquals" - -#: ../Doc/library/unittest.rst:1676 -msgid ":meth:`.assertNotEqual`" -msgstr ":meth:`.assertNotEqual`" - -#: ../Doc/library/unittest.rst:1676 -msgid "failIfEqual" -msgstr "failIfEqual" - -#: ../Doc/library/unittest.rst:1676 -msgid "assertNotEquals" -msgstr "assertNotEquals" - -#: ../Doc/library/unittest.rst:1677 -msgid ":meth:`.assertTrue`" -msgstr ":meth:`.assertTrue`" - -#: ../Doc/library/unittest.rst:1677 -msgid "failUnless" -msgstr "failUnless" - -#: ../Doc/library/unittest.rst:1677 -msgid "assert\\_" -msgstr "assert\\_" - -#: ../Doc/library/unittest.rst:1678 -msgid ":meth:`.assertFalse`" -msgstr ":meth:`.assertFalse`" - -#: ../Doc/library/unittest.rst:1678 -msgid "failIf" -msgstr "failIf" - -#: ../Doc/library/unittest.rst:1679 -msgid ":meth:`.assertRaises`" -msgstr ":meth:`.assertRaises`" - -#: ../Doc/library/unittest.rst:1679 -msgid "failUnlessRaises" -msgstr "failUnlessRaises" - -#: ../Doc/library/unittest.rst:1680 -msgid ":meth:`.assertAlmostEqual`" -msgstr ":meth:`.assertAlmostEqual`" - -#: ../Doc/library/unittest.rst:1680 -msgid "failUnlessAlmostEqual" -msgstr "failUnlessAlmostEqual" - -#: ../Doc/library/unittest.rst:1680 -msgid "assertAlmostEquals" -msgstr "assertAlmostEquals" - -#: ../Doc/library/unittest.rst:1681 -msgid ":meth:`.assertNotAlmostEqual`" -msgstr ":meth:`.assertNotAlmostEqual`" - -#: ../Doc/library/unittest.rst:1681 -msgid "failIfAlmostEqual" -msgstr "failIfAlmostEqual" - -#: ../Doc/library/unittest.rst:1681 -msgid "assertNotAlmostEquals" -msgstr "assertNotAlmostEquals" - -#: ../Doc/library/unittest.rst:1682 -msgid ":meth:`.assertRegex`" -msgstr ":meth:`.assertRegex`" - -#: ../Doc/library/unittest.rst:1682 -msgid "assertRegexpMatches" -msgstr "assertRegexpMatches" - -#: ../Doc/library/unittest.rst:1683 -msgid ":meth:`.assertNotRegex`" -msgstr ":meth:`.assertNotRegex`" - -#: ../Doc/library/unittest.rst:1683 -msgid "assertNotRegexpMatches" -msgstr "assertNotRegexpMatches" - -#: ../Doc/library/unittest.rst:1684 -msgid ":meth:`.assertRaisesRegex`" -msgstr ":meth:`.assertRaisesRegex`" - -#: ../Doc/library/unittest.rst:1684 -msgid "assertRaisesRegexp" -msgstr "assertRaisesRegexp" - -#: ../Doc/library/unittest.rst:1687 -msgid "The fail* aliases listed in the second column have been deprecated." -msgstr "" -"Los alias de fail* que figuran en la segunda columna han sido declarados " -"obsoletos." - -#: ../Doc/library/unittest.rst:1689 -msgid "The assert* aliases listed in the third column have been deprecated." -msgstr "" -"Los alias de aserción* que figuran en la tercera columna han sido declarados " -"obsoletos." - -#: ../Doc/library/unittest.rst:1691 -msgid "" -"``assertRegexpMatches`` and ``assertRaisesRegexp`` have been renamed to :" -"meth:`.assertRegex` and :meth:`.assertRaisesRegex`." -msgstr "" -"``assertRegexpMatches`` y ``assertRaisesRegexp`` han sido renombrados a :" -"meth:`.assertRegex` y :meth:`.assertRaisesRegex`." - -#: ../Doc/library/unittest.rst:1694 -msgid "" -"The ``assertNotRegexpMatches`` name is deprecated in favor of :meth:`." -"assertNotRegex`." -msgstr "" -"El nombre ``assertNotRegexpMatches`` se ha declarado obsoleto en favor de :" -"meth:`.assertNotRegex`." - -#: ../Doc/library/unittest.rst:1700 +#: ../Doc/library/unittest.rst:1669 msgid "Grouping tests" msgstr "Agrupando tests" -#: ../Doc/library/unittest.rst:1704 +#: ../Doc/library/unittest.rst:1673 msgid "" "This class represents an aggregation of individual test cases and test " "suites. The class presents the interface needed by the test runner to allow " @@ -2702,7 +2554,7 @@ msgstr "" "Ejecutar una instancia :class:`TestSuite` es lo mismo que iterar sobre el " "conjunto, ejecutando cada test individualmente." -#: ../Doc/library/unittest.rst:1709 +#: ../Doc/library/unittest.rst:1678 msgid "" "If *tests* is given, it must be an iterable of individual test cases or " "other test suites that will be used to build the suite initially. Additional " @@ -2713,7 +2565,7 @@ msgstr "" "inicialmente. Se proporcionan métodos adicionales para añadir casos de test " "y conjuntos a la colección más adelante." -#: ../Doc/library/unittest.rst:1713 +#: ../Doc/library/unittest.rst:1682 msgid "" ":class:`TestSuite` objects behave much like :class:`TestCase` objects, " "except they do not actually implement a test. Instead, they are used to " @@ -2727,11 +2579,11 @@ msgstr "" "ejecutados juntos. Existen algunos métodos adicionales para agregar tests a " "las instancias de :class:`TestSuite`:" -#: ../Doc/library/unittest.rst:1721 +#: ../Doc/library/unittest.rst:1690 msgid "Add a :class:`TestCase` or :class:`TestSuite` to the suite." msgstr "Añade un :class:`TestCase` o :class:`TestSuite` al conjunto." -#: ../Doc/library/unittest.rst:1726 +#: ../Doc/library/unittest.rst:1695 msgid "" "Add all the tests from an iterable of :class:`TestCase` and :class:" "`TestSuite` instances to this test suite." @@ -2739,7 +2591,7 @@ msgstr "" "Añade todos los tests de un iterable de :class:`TestCase` y :class:" "`TestSuite` a este conjunto de tests." -#: ../Doc/library/unittest.rst:1729 +#: ../Doc/library/unittest.rst:1698 msgid "" "This is equivalent to iterating over *tests*, calling :meth:`addTest` for " "each element." @@ -2747,12 +2599,12 @@ msgstr "" "Esto equivale a iterar sobre *tests*, llamando a :meth:`addTest` para cada " "elemento." -#: ../Doc/library/unittest.rst:1732 +#: ../Doc/library/unittest.rst:1701 msgid ":class:`TestSuite` shares the following methods with :class:`TestCase`:" msgstr "" ":class:`TestSuite` comparte los siguientes métodos con :class:`TestCase`:" -#: ../Doc/library/unittest.rst:1737 +#: ../Doc/library/unittest.rst:1706 msgid "" "Run the tests associated with this suite, collecting the result into the " "test result object passed as *result*. Note that unlike :meth:`TestCase." @@ -2763,7 +2615,7 @@ msgstr "" "diferencia de :meth:`TestCase.run`, :meth:`TestSuite.run` requiere que se " "pase el objeto resultado." -#: ../Doc/library/unittest.rst:1745 +#: ../Doc/library/unittest.rst:1714 msgid "" "Run the tests associated with this suite without collecting the result. This " "allows exceptions raised by the test to be propagated to the caller and can " @@ -2774,7 +2626,7 @@ msgstr "" "invocador y puedes ser usadas para apoyar tests que están ejecutándose con " "un debugger." -#: ../Doc/library/unittest.rst:1752 +#: ../Doc/library/unittest.rst:1721 msgid "" "Return the number of tests represented by this test object, including all " "individual tests and sub-suites." @@ -2782,7 +2634,7 @@ msgstr "" "Retorna el numero de tests representados por este objeto de test, incluidos " "todos los test individuales y los sub-conjuntos." -#: ../Doc/library/unittest.rst:1758 +#: ../Doc/library/unittest.rst:1727 msgid "" "Tests grouped by a :class:`TestSuite` are always accessed by iteration. " "Subclasses can lazily provide tests by overriding :meth:`__iter__`. Note " @@ -2804,7 +2656,7 @@ msgstr "" "subclase que anule :meth:`TestSuite._removeTestAtIndex` para preservar las " "referencias de los tests." -#: ../Doc/library/unittest.rst:1768 +#: ../Doc/library/unittest.rst:1737 msgid "" "In earlier versions the :class:`TestSuite` accessed tests directly rather " "than through iteration, so overriding :meth:`__iter__` wasn't sufficient for " @@ -2814,7 +2666,7 @@ msgstr "" "directamente en lugar de a través de la iteración, por lo que anular :meth:" "`__iter__` no era suficiente para proporcionar los tests." -#: ../Doc/library/unittest.rst:1773 +#: ../Doc/library/unittest.rst:1742 msgid "" "In earlier versions the :class:`TestSuite` held references to each :class:" "`TestCase` after :meth:`TestSuite.run`. Subclasses can restore that behavior " @@ -2824,7 +2676,7 @@ msgstr "" "class:`TestCase` después de :meth:`TestSuite.run`. Las subclases pueden " "restaurar ese comportamiento anulando :meth:`TestSuite._removeTestAtIndex`." -#: ../Doc/library/unittest.rst:1778 +#: ../Doc/library/unittest.rst:1747 msgid "" "In the typical usage of a :class:`TestSuite` object, the :meth:`run` method " "is invoked by a :class:`TestRunner` rather than by the end-user test harness." @@ -2833,11 +2685,11 @@ msgstr "" "invocado por un :class:`TestRunner` en lugar de por el marco de test de " "pruebas automático del usuario final." -#: ../Doc/library/unittest.rst:1783 +#: ../Doc/library/unittest.rst:1752 msgid "Loading and running tests" msgstr "Cargando y ejecutando tests" -#: ../Doc/library/unittest.rst:1787 +#: ../Doc/library/unittest.rst:1756 msgid "" "The :class:`TestLoader` class is used to create test suites from classes and " "modules. Normally, there is no need to create an instance of this class; " @@ -2852,11 +2704,11 @@ msgstr "" "embargo, el uso de una subclase o instancia permite la personalización de " "algunas propiedades configurables." -#: ../Doc/library/unittest.rst:1793 +#: ../Doc/library/unittest.rst:1762 msgid ":class:`TestLoader` objects have the following attributes:" msgstr "Los objetos :class:`TestLoader` tienen los siguientes atributos:" -#: ../Doc/library/unittest.rst:1798 +#: ../Doc/library/unittest.rst:1767 msgid "" "A list of the non-fatal errors encountered while loading tests. Not reset by " "the loader at any point. Fatal errors are signalled by the relevant method " @@ -2869,11 +2721,11 @@ msgstr "" "errores no fatales también son indicados por una prueba sintética que " "lanzará el error original cuando se ejecute." -#: ../Doc/library/unittest.rst:1807 +#: ../Doc/library/unittest.rst:1776 msgid ":class:`TestLoader` objects have the following methods:" msgstr "Los objetos :class:`TestLoader` tienen los siguientes métodos:" -#: ../Doc/library/unittest.rst:1812 +#: ../Doc/library/unittest.rst:1781 msgid "" "Return a suite of all test cases contained in the :class:`TestCase`\\ -" "derived :class:`testCaseClass`." @@ -2881,7 +2733,7 @@ msgstr "" "Devuelve un conjunto de todos los casos de test contenidos en la :class:" "`TestCase`\\ derivada de :class:`testCaseClass`." -#: ../Doc/library/unittest.rst:1815 +#: ../Doc/library/unittest.rst:1784 msgid "" "A test case instance is created for each method named by :meth:" "`getTestCaseNames`. By default these are the method names beginning with " @@ -2895,7 +2747,7 @@ msgstr "" "método, pero se implementa el método :meth:`runTest`, se crea un único caso " "de test para ese método." -#: ../Doc/library/unittest.rst:1824 +#: ../Doc/library/unittest.rst:1793 msgid "" "Return a suite of all test cases contained in the given module. This method " "searches *module* for classes derived from :class:`TestCase` and creates an " @@ -2906,7 +2758,7 @@ msgstr "" "crea una instancia de la clase para cada método de test definido para la " "clase." -#: ../Doc/library/unittest.rst:1831 +#: ../Doc/library/unittest.rst:1800 msgid "" "While using a hierarchy of :class:`TestCase`\\ -derived classes can be " "convenient in sharing fixtures and helper functions, defining test methods " @@ -2921,7 +2773,7 @@ msgstr "" "sin embargo, puede ser útil cuando las configuraciones son diferentes y " "están definidas en subclases." -#: ../Doc/library/unittest.rst:1837 +#: ../Doc/library/unittest.rst:1806 msgid "" "If a module provides a ``load_tests`` function it will be called to load the " "tests. This allows modules to customize test loading. This is the " @@ -2933,29 +2785,26 @@ msgstr "" "Este es el `load_tests protocol`_. El argumento *pattern* se pasa como " "tercer argumento a ``load_tests``." -#: ../Doc/library/unittest.rst:1842 +#: ../Doc/library/unittest.rst:1811 msgid "Support for ``load_tests`` added." msgstr "Se ha añadido soporte para ``load_tests``." -#: ../Doc/library/unittest.rst:1845 +#: ../Doc/library/unittest.rst:1814 +msgid "Support for a keyword-only argument *pattern* has been added." +msgstr "" + +#: ../Doc/library/unittest.rst:1817 msgid "" -"The undocumented and unofficial *use_load_tests* default argument is " -"deprecated and ignored, although it is still accepted for backward " -"compatibility. The method also now accepts a keyword-only argument " -"*pattern* which is passed to ``load_tests`` as the third argument." +"The undocumented and unofficial *use_load_tests* parameter has been removed." msgstr "" -"El argumento por defecto *use_load_tests* no documentado y no oficial es " -"obsoleto e ignorado, aunque sigue siendo aceptado por la " -"retrocompatibilidad. El método también acepta ahora un argumento de sólo " -"palabra clave *pattern* que se pasa a ``load_tests`` como tercer argumento." -#: ../Doc/library/unittest.rst:1854 +#: ../Doc/library/unittest.rst:1824 msgid "Return a suite of all test cases given a string specifier." msgstr "" "Retorna un conjunto de todos los casos de test dado un especificador de " "cadena." -#: ../Doc/library/unittest.rst:1856 +#: ../Doc/library/unittest.rst:1826 msgid "" "The specifier *name* is a \"dotted name\" that may resolve either to a " "module, a test case class, a test method within a test case class, a :class:" @@ -2974,7 +2823,7 @@ msgstr "" "como \"un método de test dentro de una clase de caso de test”, en lugar de " "\"un objeto invocable”." -#: ../Doc/library/unittest.rst:1864 +#: ../Doc/library/unittest.rst:1834 msgid "" "For example, if you have a module :mod:`SampleTests` containing a :class:" "`TestCase`\\ -derived class :class:`SampleTestCase` with three test methods " @@ -2996,11 +2845,11 @@ msgstr "" "meth:`test_two`. El especificador puede referirse a los módulos y paquetes " "que no han sido importados; serán importados como un efecto secundario." -#: ../Doc/library/unittest.rst:1874 +#: ../Doc/library/unittest.rst:1844 msgid "The method optionally resolves *name* relative to the given *module*." msgstr "El método opcionalmente resuelve *name* relativo al *module* dado." -#: ../Doc/library/unittest.rst:1876 +#: ../Doc/library/unittest.rst:1846 msgid "" "If an :exc:`ImportError` or :exc:`AttributeError` occurs while traversing " "*name* then a synthetic test that raises that error when run will be " @@ -3011,7 +2860,7 @@ msgstr "" "ejecuta. Estos errores están incluidos en los errores acumulados por self." "errors." -#: ../Doc/library/unittest.rst:1885 +#: ../Doc/library/unittest.rst:1855 msgid "" "Similar to :meth:`loadTestsFromName`, but takes a sequence of names rather " "than a single name. The return value is a test suite which supports all the " @@ -3021,7 +2870,7 @@ msgstr "" "lugar de un solo nombre. El valor de retorno es una suite de tests que " "soporta todos los test definidos para cada nombre." -#: ../Doc/library/unittest.rst:1892 +#: ../Doc/library/unittest.rst:1862 msgid "" "Return a sorted sequence of method names found within *testCaseClass*; this " "should be a subclass of :class:`TestCase`." @@ -3029,7 +2878,7 @@ msgstr "" "Devuelve una secuencia ordenada de nombres de métodos encontrados dentro de " "*testCaseClass*; esta debería ser una subclase de :class:`TestCase`." -#: ../Doc/library/unittest.rst:1898 +#: ../Doc/library/unittest.rst:1868 msgid "" "Find all the test modules by recursing into subdirectories from the " "specified start directory, and return a TestSuite object containing them. " @@ -3044,7 +2893,7 @@ msgstr "" "se cargarán los nombres de los módulos que sean importables (es decir, que " "sean identificadores Python válidos)." -#: ../Doc/library/unittest.rst:1904 +#: ../Doc/library/unittest.rst:1874 msgid "" "All test modules must be importable from the top level of the project. If " "the start directory is not the top level directory then the top level " @@ -3054,7 +2903,7 @@ msgstr "" "proyecto. Si el directorio de inicio no es el directorio de nivel superior, " "entonces el directorio de nivel superior debe ser especificado por separado." -#: ../Doc/library/unittest.rst:1908 +#: ../Doc/library/unittest.rst:1878 msgid "" "If importing a module fails, for example due to a syntax error, then this " "will be recorded as a single error and discovery will continue. If the " @@ -3066,7 +2915,7 @@ msgstr "" "descubrimiento continuará. Si el fallo en la importación se debe a que :exc:" "`SkipTest` se ha lanzado, se registrará como un salto en lugar de un error." -#: ../Doc/library/unittest.rst:1913 +#: ../Doc/library/unittest.rst:1883 msgid "" "If a package (a directory containing a file named :file:`__init__.py`) is " "found, the package will be checked for a ``load_tests`` function. If this " @@ -3082,7 +2931,7 @@ msgstr "" "se comprueba una vez durante una invocación, incluso si la propia función " "load_tests llama a ``loader.discover``." -#: ../Doc/library/unittest.rst:1921 +#: ../Doc/library/unittest.rst:1891 msgid "" "If ``load_tests`` exists then discovery does *not* recurse into the package, " "``load_tests`` is responsible for loading all tests in the package." @@ -3091,7 +2940,7 @@ msgstr "" "paquete, ``load_tests`` es responsable de cargar todos los tests en el " "paquete." -#: ../Doc/library/unittest.rst:1925 +#: ../Doc/library/unittest.rst:1895 msgid "" "The pattern is deliberately not stored as a loader attribute so that " "packages can continue discovery themselves. *top_level_dir* is stored so " @@ -3103,12 +2952,12 @@ msgstr "" "almacena de forma que ``load_tests`` no necesita pasar este argumento a " "``loader.discover()``." -#: ../Doc/library/unittest.rst:1930 +#: ../Doc/library/unittest.rst:1900 msgid "*start_dir* can be a dotted module name as well as a directory." msgstr "" "*start_dir* puede ser un nombre de módulo punteado así como un directorio." -#: ../Doc/library/unittest.rst:1934 +#: ../Doc/library/unittest.rst:1904 msgid "" "Modules that raise :exc:`SkipTest` on import are recorded as skips, not " "errors." @@ -3116,13 +2965,13 @@ msgstr "" "Los módulos que lanzan :exc:`SkipTest` en la importación se registran como " "saltos, no como errores." -#: ../Doc/library/unittest.rst:1938 +#: ../Doc/library/unittest.rst:1908 msgid "*start_dir* can be a :term:`namespace packages `." msgstr "" "*start_dir* puede ser un :term:`paquete de espacios de nombres `." -#: ../Doc/library/unittest.rst:1941 +#: ../Doc/library/unittest.rst:1911 msgid "" "Paths are sorted before being imported so that execution order is the same " "even if the underlying file system's ordering is not dependent on file name." @@ -3131,7 +2980,7 @@ msgstr "" "sea el mismo, incluso si el orden del sistema de archivos subyacente no " "depende del nombre del archivo." -#: ../Doc/library/unittest.rst:1946 +#: ../Doc/library/unittest.rst:1916 msgid "" "Found packages are now checked for ``load_tests`` regardless of whether " "their path matches *pattern*, because it is impossible for a package name to " @@ -3141,7 +2990,7 @@ msgstr "" "importar si su ruta coincide con el *pattern*, porque es imposible que el " "nombre de un paquete coincida con el patrón por defecto." -#: ../Doc/library/unittest.rst:1951 +#: ../Doc/library/unittest.rst:1921 msgid "" "*start_dir* can not be a :term:`namespace packages `. It " "has been broken since Python 3.7 and Python 3.11 officially remove it." @@ -3150,7 +2999,7 @@ msgstr "" "package>`. Ha estado roto desde Python 3.7 y Python 3.11 lo elimina " "oficialmente." -#: ../Doc/library/unittest.rst:1956 +#: ../Doc/library/unittest.rst:1926 msgid "" "The following attributes of a :class:`TestLoader` can be configured either " "by subclassing or assignment on an instance:" @@ -3158,7 +3007,7 @@ msgstr "" "Los siguientes atributos de un :class:`TestLoader` pueden ser configurados " "ya sea por subclasificación o asignación en una instancia:" -#: ../Doc/library/unittest.rst:1962 +#: ../Doc/library/unittest.rst:1932 msgid "" "String giving the prefix of method names which will be interpreted as test " "methods. The default value is ``'test'``." @@ -3166,7 +3015,7 @@ msgstr "" "Cadena que da el prefijo de los nombres de métodos que serán interpretados " "como métodos de test. El valor por defecto es ``'test'``." -#: ../Doc/library/unittest.rst:1965 +#: ../Doc/library/unittest.rst:1935 msgid "" "This affects :meth:`getTestCaseNames` and all the :meth:`loadTestsFrom\\*` " "methods." @@ -3174,7 +3023,7 @@ msgstr "" "Esto afecta a :meth:`getTestCaseNames` y a todos los métodos :meth:" "`loadTestsFrom\\*` ." -#: ../Doc/library/unittest.rst:1971 +#: ../Doc/library/unittest.rst:1941 msgid "" "Function to be used to compare method names when sorting them in :meth:" "`getTestCaseNames` and all the :meth:`loadTestsFrom\\*` methods." @@ -3183,7 +3032,7 @@ msgstr "" "clasificarlos en :meth:`getTestCaseNames` y todos los métodos :meth:" "`loadTestsFrom\\*`." -#: ../Doc/library/unittest.rst:1977 +#: ../Doc/library/unittest.rst:1947 msgid "" "Callable object that constructs a test suite from a list of tests. No " "methods on the resulting object are needed. The default value is the :class:" @@ -3193,25 +3042,27 @@ msgstr "" "de pruebas. No se necesitan métodos en el objeto resultante. El valor por " "defecto es la clase :class:`TestSuite`." -#: ../Doc/library/unittest.rst:1981 ../Doc/library/unittest.rst:1994 +#: ../Doc/library/unittest.rst:1951 ../Doc/library/unittest.rst:1964 msgid "This affects all the :meth:`loadTestsFrom\\*` methods." msgstr "Esto afecta a todos los métodos :meth:`loadTestsFrom\\*`." -#: ../Doc/library/unittest.rst:1985 +#: ../Doc/library/unittest.rst:1955 +#, fuzzy msgid "" "List of Unix shell-style wildcard test name patterns that test methods have " -"to match to be included in test suites (see ``-v`` option)." +"to match to be included in test suites (see ``-k`` option)." msgstr "" "Lista de patrones de nombres de test de comodines al estilo del shell de " "Unix que los métodos de test tienen que coincidir con para ser incluidos en " "las suites de test (ver opción ``-v``)." -#: ../Doc/library/unittest.rst:1988 +#: ../Doc/library/unittest.rst:1958 +#, fuzzy msgid "" "If this attribute is not ``None`` (the default), all test methods to be " "included in test suites must match one of the patterns in this list. Note " "that matches are always performed using :meth:`fnmatch.fnmatchcase`, so " -"unlike patterns passed to the ``-v`` option, simple substring patterns will " +"unlike patterns passed to the ``-k`` option, simple substring patterns will " "have to be converted using ``*`` wildcards." msgstr "" "Si este atributo no es ``None`` (el predeterminado), todos los métodos de " @@ -3221,7 +3072,7 @@ msgstr "" "los patrones pasados a la opción ``-v``, los patrones de subcadena simple " "tendrán que ser convertidos utilizando los comodines ``*``." -#: ../Doc/library/unittest.rst:2001 +#: ../Doc/library/unittest.rst:1971 msgid "" "This class is used to compile information about which tests have succeeded " "and which have failed." @@ -3229,7 +3080,7 @@ msgstr "" "Esta clase se utiliza para recopilar información sobre qué tests han tenido " "éxito y cuáles han fracasado." -#: ../Doc/library/unittest.rst:2004 +#: ../Doc/library/unittest.rst:1974 msgid "" "A :class:`TestResult` object stores the results of a set of tests. The :" "class:`TestCase` and :class:`TestSuite` classes ensure that results are " @@ -3241,7 +3092,7 @@ msgstr "" "resultados se registren correctamente; los autores de los tests no tienen " "que preocuparse de registrar el resultado de las mismas." -#: ../Doc/library/unittest.rst:2009 +#: ../Doc/library/unittest.rst:1979 msgid "" "Testing frameworks built on top of :mod:`unittest` may want access to the :" "class:`TestResult` object generated by running a set of tests for reporting " @@ -3253,7 +3104,7 @@ msgstr "" "conjunto de tests con fines de reporte; una instancia :class:`TestResult` es " "devuelta por el método :meth:`TestRunner.run` para este propósito." -#: ../Doc/library/unittest.rst:2014 +#: ../Doc/library/unittest.rst:1984 msgid "" ":class:`TestResult` instances have the following attributes that will be of " "interest when inspecting the results of running a set of tests:" @@ -3262,7 +3113,7 @@ msgstr "" "serán de interés cuando se inspeccionen los resultados de la ejecución de un " "conjunto de tests:" -#: ../Doc/library/unittest.rst:2020 +#: ../Doc/library/unittest.rst:1990 msgid "" "A list containing 2-tuples of :class:`TestCase` instances and strings " "holding formatted tracebacks. Each tuple represents a test which raised an " @@ -3272,7 +3123,7 @@ msgstr "" "con formato de tracebacks. Cada tupla representa una prueba que lanzó una " "excepción inesperada." -#: ../Doc/library/unittest.rst:2026 +#: ../Doc/library/unittest.rst:1996 msgid "" "A list containing 2-tuples of :class:`TestCase` instances and strings " "holding formatted tracebacks. Each tuple represents a test where a failure " @@ -3282,7 +3133,7 @@ msgstr "" "con formato de traceback. Cada tupla representa un test en el que un fallo " "fue explícitamente señalado usando los métodos :meth:`TestCase.assert\\*`." -#: ../Doc/library/unittest.rst:2032 +#: ../Doc/library/unittest.rst:2002 msgid "" "A list containing 2-tuples of :class:`TestCase` instances and strings " "holding the reason for skipping the test." @@ -3290,7 +3141,7 @@ msgstr "" "Una lista que contiene 2 tuplas de instancias de :class:`TestCase` y cadenas " "que contienen la razón para saltarse el test." -#: ../Doc/library/unittest.rst:2039 +#: ../Doc/library/unittest.rst:2009 msgid "" "A list containing 2-tuples of :class:`TestCase` instances and strings " "holding formatted tracebacks. Each tuple represents an expected failure or " @@ -3300,7 +3151,7 @@ msgstr "" "con formato de traceback. Cada tupla representa un fallo esperado del caso " "de test." -#: ../Doc/library/unittest.rst:2045 +#: ../Doc/library/unittest.rst:2015 msgid "" "A list containing :class:`TestCase` instances that were marked as expected " "failures, but succeeded." @@ -3308,18 +3159,28 @@ msgstr "" "Una lista que contiene instancias de :class:`TestCase` que fueron marcadas " "como fracasos esperados, pero tuvieron éxito." -#: ../Doc/library/unittest.rst:2050 +#: ../Doc/library/unittest.rst:2020 +#, fuzzy +msgid "" +"A list containing 2-tuples of test case names and floats representing the " +"elapsed time of each test which was run." +msgstr "" +"Una lista que contiene 2 tuplas de instancias :class:`TestCase` y cadenas " +"con formato de traceback. Cada tupla representa un fallo esperado del caso " +"de test." + +#: ../Doc/library/unittest.rst:2027 msgid "" "Set to ``True`` when the execution of tests should stop by :meth:`stop`." msgstr "" "Puesto en ``True`` cuando la ejecución de los tests se detenga por :meth:" "`stop`." -#: ../Doc/library/unittest.rst:2054 +#: ../Doc/library/unittest.rst:2031 msgid "The total number of tests run so far." msgstr "El número total de tests realizados hasta ahora." -#: ../Doc/library/unittest.rst:2058 +#: ../Doc/library/unittest.rst:2035 msgid "" "If set to true, ``sys.stdout`` and ``sys.stderr`` will be buffered in " "between :meth:`startTest` and :meth:`stopTest` being called. Collected " @@ -3333,7 +3194,7 @@ msgstr "" "si la prueba falla o se equivoca. Cualquier salida también se adjunta al " "mensaje de fallo / error." -#: ../Doc/library/unittest.rst:2067 +#: ../Doc/library/unittest.rst:2044 msgid "" "If set to true :meth:`stop` will be called on the first failure or error, " "halting the test run." @@ -3341,13 +3202,13 @@ msgstr "" "Si se ajusta a true :meth:`stop` se llamará al primer fallo o error, " "deteniendo la ejecución de la prueba." -#: ../Doc/library/unittest.rst:2074 +#: ../Doc/library/unittest.rst:2051 msgid "If set to true then local variables will be shown in tracebacks." msgstr "" "Si se ajusta a true entonces las variables locales se mostrarán en los " "tracebacks." -#: ../Doc/library/unittest.rst:2080 +#: ../Doc/library/unittest.rst:2057 msgid "" "Return ``True`` if all tests run so far have passed, otherwise returns " "``False``." @@ -3355,7 +3216,7 @@ msgstr "" "Devuelve ``True`` si todas las pruebas realizadas hasta ahora han pasado, de " "lo contrario devuelve ``False``." -#: ../Doc/library/unittest.rst:2083 +#: ../Doc/library/unittest.rst:2060 msgid "" "Returns ``False`` if there were any :attr:`unexpectedSuccesses` from tests " "marked with the :func:`expectedFailure` decorator." @@ -3363,7 +3224,7 @@ msgstr "" "Devuelve ``False`` si hubo algún :attr:`unexpectedSuccesses` de las pruebas " "marcadas con el decorador :func:`expectedFailure`." -#: ../Doc/library/unittest.rst:2089 +#: ../Doc/library/unittest.rst:2066 msgid "" "This method can be called to signal that the set of tests being run should " "be aborted by setting the :attr:`shouldStop` attribute to ``True``. :class:" @@ -3375,7 +3236,7 @@ msgstr "" "en ``True``. :class:`TestRunner` los objetos deben respetar esta bandera y " "regresar sin ejecutar ninguna prueba adicional." -#: ../Doc/library/unittest.rst:2094 +#: ../Doc/library/unittest.rst:2071 msgid "" "For example, this feature is used by the :class:`TextTestRunner` class to " "stop the test framework when the user signals an interrupt from the " @@ -3388,7 +3249,7 @@ msgstr "" "proporcionan implementaciones de :class:`TestRunner` pueden usar esto de " "manera similar." -#: ../Doc/library/unittest.rst:2099 +#: ../Doc/library/unittest.rst:2076 msgid "" "The following methods of the :class:`TestResult` class are used to maintain " "the internal data structures, and may be extended in subclasses to support " @@ -3401,11 +3262,11 @@ msgstr "" "particularmente útil para construir herramientas que apoyen la presentación " "de informes interactivos mientras se ejecutan las pruebas." -#: ../Doc/library/unittest.rst:2107 +#: ../Doc/library/unittest.rst:2084 msgid "Called when the test case *test* is about to be run." msgstr "Llamado cuando el caso de prueba *test* está a punto de ser ejecutado." -#: ../Doc/library/unittest.rst:2111 +#: ../Doc/library/unittest.rst:2088 msgid "" "Called after the test case *test* has been executed, regardless of the " "outcome." @@ -3413,15 +3274,15 @@ msgstr "" "Llamado después de que el caso de prueba *prueba* haya sido ejecutado, " "independientemente del resultado." -#: ../Doc/library/unittest.rst:2116 +#: ../Doc/library/unittest.rst:2093 msgid "Called once before any tests are executed." msgstr "Llamado una vez antes de que se ejecute cualquier prueba." -#: ../Doc/library/unittest.rst:2123 +#: ../Doc/library/unittest.rst:2100 msgid "Called once after all tests are executed." msgstr "Llamado una vez después de que se ejecuten todas las pruebas." -#: ../Doc/library/unittest.rst:2130 +#: ../Doc/library/unittest.rst:2107 msgid "" "Called when the test case *test* raises an unexpected exception. *err* is a " "tuple of the form returned by :func:`sys.exc_info`: ``(type, value, " @@ -3431,7 +3292,7 @@ msgstr "" "*err* es una tupla de la forma devuelta por :func:`sys.exc_info`: ``(type, " "value, traceback)``." -#: ../Doc/library/unittest.rst:2134 +#: ../Doc/library/unittest.rst:2111 msgid "" "The default implementation appends a tuple ``(test, formatted_err)`` to the " "instance's :attr:`errors` attribute, where *formatted_err* is a formatted " @@ -3441,7 +3302,7 @@ msgstr "" "atributo :attr:`errors` de la instancia, donde *formatted_err* es una traza " "formateada derivada de *err*." -#: ../Doc/library/unittest.rst:2141 +#: ../Doc/library/unittest.rst:2118 msgid "" "Called when the test case *test* signals a failure. *err* is a tuple of the " "form returned by :func:`sys.exc_info`: ``(type, value, traceback)``." @@ -3449,7 +3310,7 @@ msgstr "" "Llamado cuando el caso de prueba *test* señala un fallo. *err* es una tupla " "de la forma devuelta por :func:`sys.exc_info`: ``(type, value, traceback)``." -#: ../Doc/library/unittest.rst:2144 +#: ../Doc/library/unittest.rst:2121 msgid "" "The default implementation appends a tuple ``(test, formatted_err)`` to the " "instance's :attr:`failures` attribute, where *formatted_err* is a formatted " @@ -3459,15 +3320,15 @@ msgstr "" "atributo :attr:`failures` de la instancia, donde *formatted_err* es una " "traza formateada derivada de *err*." -#: ../Doc/library/unittest.rst:2151 +#: ../Doc/library/unittest.rst:2128 msgid "Called when the test case *test* succeeds." msgstr "Llamado cuando el caso de prueba *test* tenga éxito." -#: ../Doc/library/unittest.rst:2153 +#: ../Doc/library/unittest.rst:2130 msgid "The default implementation does nothing." msgstr "La implementación por defecto no hace nada." -#: ../Doc/library/unittest.rst:2158 +#: ../Doc/library/unittest.rst:2135 msgid "" "Called when the test case *test* is skipped. *reason* is the reason the " "test gave for skipping." @@ -3475,7 +3336,7 @@ msgstr "" "Llamado cuando se salta el caso de prueba *test*. *reason* es la razón que " "la prueba dio para saltarse." -#: ../Doc/library/unittest.rst:2161 +#: ../Doc/library/unittest.rst:2138 msgid "" "The default implementation appends a tuple ``(test, reason)`` to the " "instance's :attr:`skipped` attribute." @@ -3483,7 +3344,7 @@ msgstr "" "La implementación por defecto añade una tupla ``(test, reason)`` al " "atributo :attr:`skipped` de la instancia." -#: ../Doc/library/unittest.rst:2167 +#: ../Doc/library/unittest.rst:2144 msgid "" "Called when the test case *test* fails or errors, but was marked with the :" "func:`expectedFailure` decorator." @@ -3491,7 +3352,7 @@ msgstr "" "Llamó cuando el caso de prueba *test* falla, pero fue marcado con el " "decorador :func:`expectedFailure`." -#: ../Doc/library/unittest.rst:2170 +#: ../Doc/library/unittest.rst:2147 msgid "" "The default implementation appends a tuple ``(test, formatted_err)`` to the " "instance's :attr:`expectedFailures` attribute, where *formatted_err* is a " @@ -3501,7 +3362,7 @@ msgstr "" "atributo :attr:`expectedFailures` de la instancia, donde *formatted_err* es " "una traza formateada derivada de *err*." -#: ../Doc/library/unittest.rst:2177 +#: ../Doc/library/unittest.rst:2154 msgid "" "Called when the test case *test* was marked with the :func:`expectedFailure` " "decorator, but succeeded." @@ -3509,7 +3370,7 @@ msgstr "" "Llamó cuando el caso de prueba *test* se marcó con el decorador :func:" "`expectedFailure`, pero tuvo éxito." -#: ../Doc/library/unittest.rst:2180 +#: ../Doc/library/unittest.rst:2157 msgid "" "The default implementation appends the test to the instance's :attr:" "`unexpectedSuccesses` attribute." @@ -3517,7 +3378,7 @@ msgstr "" "La implementación por defecto añade la prueba al atributo :attr:" "`unexpectedSuccesses` de la instancia." -#: ../Doc/library/unittest.rst:2186 +#: ../Doc/library/unittest.rst:2163 msgid "" "Called when a subtest finishes. *test* is the test case corresponding to " "the test method. *subtest* is a custom :class:`TestCase` instance " @@ -3527,7 +3388,7 @@ msgstr "" "correspondiente al método de test. *subtest* es una instancia " "personalizada :class:`TestCase` que describe el test." -#: ../Doc/library/unittest.rst:2190 +#: ../Doc/library/unittest.rst:2167 msgid "" "If *outcome* is :const:`None`, the subtest succeeded. Otherwise, it failed " "with an exception where *outcome* is a tuple of the form returned by :func:" @@ -3537,7 +3398,7 @@ msgstr "" "falló con una excepción en la que *outcome* es una tupla de la forma " "devuelta por :func:`sys.exc_info`: ``(type, value, traceback)``." -#: ../Doc/library/unittest.rst:2194 +#: ../Doc/library/unittest.rst:2171 msgid "" "The default implementation does nothing when the outcome is a success, and " "records subtest failures as normal failures." @@ -3545,23 +3406,27 @@ msgstr "" "La implementación por defecto no hace nada cuando el resultado es un éxito, " "y registra los fallos del subtest como fallos normales." -#: ../Doc/library/unittest.rst:2202 +#: ../Doc/library/unittest.rst:2178 +msgid "" +"Called when the test case finishes. *elapsed* is the time represented in " +"seconds, and it includes the execution of cleanup functions." +msgstr "" + +#: ../Doc/library/unittest.rst:2185 +#, fuzzy msgid "" "A concrete implementation of :class:`TestResult` used by the :class:" -"`TextTestRunner`." +"`TextTestRunner`. Subclasses should accept ``**kwargs`` to ensure " +"compatibility as the interface changes." msgstr "" "Una implementación concreta de :class:`TestResult` utilizado por el :class:" "`TextTestRunner`." -#: ../Doc/library/unittest.rst:2205 -msgid "" -"This class was previously named ``_TextTestResult``. The old name still " -"exists as an alias but is deprecated." +#: ../Doc/library/unittest.rst:2191 +msgid "Added *durations* keyword argument." msgstr "" -"Esta clase se llamaba anteriormente ``_TextTestResult``. El antiguo nombre " -"todavía existe como un alias pero está obsoleto." -#: ../Doc/library/unittest.rst:2212 +#: ../Doc/library/unittest.rst:2196 msgid "" "Instance of the :class:`TestLoader` class intended to be shared. If no " "customization of the :class:`TestLoader` is needed, this instance can be " @@ -3571,7 +3436,7 @@ msgstr "" "es necesario personalizar la clase :class:`TestLoader`, esta instancia puede " "utilizarse en lugar de crear repetidamente nuevas instancias." -#: ../Doc/library/unittest.rst:2220 +#: ../Doc/library/unittest.rst:2205 msgid "" "A basic test runner implementation that outputs results to a stream. If " "*stream* is ``None``, the default, :data:`sys.stderr` is used as the output " @@ -3590,17 +3455,15 @@ msgstr "" "interfaz para construir los cambios de los corredores cuando se añaden " "características a unittest." -#: ../Doc/library/unittest.rst:2227 +#: ../Doc/library/unittest.rst:2212 +#, fuzzy msgid "" "By default this runner shows :exc:`DeprecationWarning`, :exc:" "`PendingDeprecationWarning`, :exc:`ResourceWarning` and :exc:`ImportWarning` " -"even if they are :ref:`ignored by default `. Deprecation " -"warnings caused by :ref:`deprecated unittest methods ` " -"are also special-cased and, when the warning filters are ``'default'`` or " -"``'always'``, they will appear only once per-module, in order to avoid too " -"many warning messages. This behavior can be overridden using Python's :" -"option:`!-Wd` or :option:`!-Wa` options (see :ref:`Warning control `) and leaving *warnings* to ``None``." +"even if they are :ref:`ignored by default `. This behavior " +"can be overridden using Python's :option:`!-Wd` or :option:`!-Wa` options " +"(see :ref:`Warning control `) and leaving *warnings* to " +"``None``." msgstr "" "Por defecto este runner muestra :exc:`DeprecationWarning`, :exc:" "`PendingDeprecationWarning`, :exc:`ResourceWarning` y :exc:`ImportWarning` " @@ -3613,11 +3476,12 @@ msgstr "" "option:`!-Wa` de Python (ver :ref:`Control de advertencias `) y dejando *warnings* a ``None``." -#: ../Doc/library/unittest.rst:2238 -msgid "Added the ``warnings`` argument." +#: ../Doc/library/unittest.rst:2220 +#, fuzzy +msgid "Added the *warnings* parameter." msgstr "Añadió el argumento ``warnings``." -#: ../Doc/library/unittest.rst:2241 +#: ../Doc/library/unittest.rst:2223 msgid "" "The default stream is set to :data:`sys.stderr` at instantiation time rather " "than import time." @@ -3625,11 +3489,17 @@ msgstr "" "El flujo por defecto está configurado como :data:`sys.stderr` en tiempo de " "instanciación en lugar de tiempo de importación." -#: ../Doc/library/unittest.rst:2245 -msgid "Added the tb_locals parameter." +#: ../Doc/library/unittest.rst:2227 +#, fuzzy +msgid "Added the *tb_locals* parameter." +msgstr "Añadido el parámetro tb_locals." + +#: ../Doc/library/unittest.rst:2230 +#, fuzzy +msgid "Added the *durations* parameter." msgstr "Añadido el parámetro tb_locals." -#: ../Doc/library/unittest.rst:2250 +#: ../Doc/library/unittest.rst:2235 msgid "" "This method returns the instance of ``TestResult`` used by :meth:`run`. It " "is not intended to be called directly, but can be overridden in subclasses " @@ -3639,7 +3509,7 @@ msgstr "" "No está destinado a ser llamado directamente, pero puede ser anulado en " "subclases para proporcionar un ``TestResult`` personalizado." -#: ../Doc/library/unittest.rst:2254 +#: ../Doc/library/unittest.rst:2239 msgid "" "``_makeResult()`` instantiates the class or callable passed in the " "``TextTestRunner`` constructor as the ``resultclass`` argument. It defaults " @@ -3652,7 +3522,7 @@ msgstr "" "``resultclass``. La clase de resultado se instanciará con los siguientes " "argumentos::" -#: ../Doc/library/unittest.rst:2263 +#: ../Doc/library/unittest.rst:2248 msgid "" "This method is the main public interface to the ``TextTestRunner``. This " "method takes a :class:`TestSuite` or :class:`TestCase` instance. A :class:" @@ -3664,7 +3534,7 @@ msgstr "" "una :class:`TestResult` llamando a :func:`_makeResult` y se ejecuta(n) la(s) " "prueba(s) y se imprimen los resultados a stdout." -#: ../Doc/library/unittest.rst:2274 +#: ../Doc/library/unittest.rst:2259 msgid "" "A command-line program that loads a set of tests from *module* and runs " "them; this is primarily for making test modules conveniently executable. The " @@ -3676,7 +3546,7 @@ msgstr "" "prueba convenientemente ejecutables. El uso más simple de esta función es " "incluir la siguiente línea al final de un guión de prueba::" -#: ../Doc/library/unittest.rst:2282 +#: ../Doc/library/unittest.rst:2267 msgid "" "You can run tests with more detailed information by passing in the verbosity " "argument::" @@ -3684,7 +3554,7 @@ msgstr "" "Puedes hacer pruebas con información más detallada pasando el argumento de " "la verbosity::" -#: ../Doc/library/unittest.rst:2288 +#: ../Doc/library/unittest.rst:2273 msgid "" "The *defaultTest* argument is either the name of a single test or an " "iterable of test names to run if no test names are specified via *argv*. If " @@ -3697,7 +3567,7 @@ msgstr "" "nombres de pruebas vía *argv*, se ejecutan todas las pruebas encontradas en " "*modulo*." -#: ../Doc/library/unittest.rst:2293 +#: ../Doc/library/unittest.rst:2278 msgid "" "The *argv* argument can be a list of options passed to the program, with the " "first element being the program name. If not specified or ``None``, the " @@ -3707,18 +3577,20 @@ msgstr "" "siendo el primer elemento el nombre del programa. Si no se especifica o " "``Ninguno``, se utilizan los valores de :data:`sys.argv`." -#: ../Doc/library/unittest.rst:2297 +#: ../Doc/library/unittest.rst:2282 +#, fuzzy msgid "" "The *testRunner* argument can either be a test runner class or an already " "created instance of it. By default ``main`` calls :func:`sys.exit` with an " -"exit code indicating success or failure of the tests run." +"exit code indicating success (0) or failure (1) of the tests run. An exit " +"code of 5 indicates that no tests were run." msgstr "" "El argumento *testRunner* puede ser una clase de corredor de prueba o una " "instancia ya creada de él. Por defecto ``main`` llama :func:`sys.exit` con " "un código de salida que indica el éxito o el fracaso de la ejecución de las " "pruebas." -#: ../Doc/library/unittest.rst:2301 +#: ../Doc/library/unittest.rst:2287 msgid "" "The *testLoader* argument has to be a :class:`TestLoader` instance, and " "defaults to :data:`defaultTestLoader`." @@ -3726,7 +3598,7 @@ msgstr "" "El argumento *testLoader* tiene que ser una instancia :class:`TestLoader`, y " "por defecto :data:`defaultTestLoader`." -#: ../Doc/library/unittest.rst:2304 +#: ../Doc/library/unittest.rst:2290 msgid "" "``main`` supports being used from the interactive interpreter by passing in " "the argument ``exit=False``. This displays the result on standard output " @@ -3736,7 +3608,7 @@ msgstr "" "``exit=False``. Esto muestra el resultado en la salida estándar sin llamar " "a :func:`sys.exit`::" -#: ../Doc/library/unittest.rst:2311 +#: ../Doc/library/unittest.rst:2297 msgid "" "The *failfast*, *catchbreak* and *buffer* parameters have the same effect as " "the same-name `command-line options`_." @@ -3744,7 +3616,7 @@ msgstr "" "Los parámetros *failfast*, *catchbreak* y *buffer* tienen el mismo efecto " "que las `command-line options`_ del mismo nombre." -#: ../Doc/library/unittest.rst:2314 +#: ../Doc/library/unittest.rst:2300 msgid "" "The *warnings* argument specifies the :ref:`warning filter ` " "that should be used while running the tests. If it's not specified, it will " @@ -3758,7 +3630,7 @@ msgstr "" "program:`python` (ver :ref:`Warning control `), de lo " "contrario se establecerá como ``’default’``." -#: ../Doc/library/unittest.rst:2320 +#: ../Doc/library/unittest.rst:2306 msgid "" "Calling ``main`` actually returns an instance of the ``TestProgram`` class. " "This stores the result of the tests run as the ``result`` attribute." @@ -3767,11 +3639,11 @@ msgstr "" "``TestProgram``. Esto almacena el resultado de las pruebas ejecutadas como " "el atributo ``result``." -#: ../Doc/library/unittest.rst:2323 +#: ../Doc/library/unittest.rst:2309 msgid "The *exit* parameter was added." msgstr "El parámetro *exit* fue añadido." -#: ../Doc/library/unittest.rst:2326 +#: ../Doc/library/unittest.rst:2312 msgid "" "The *verbosity*, *failfast*, *catchbreak*, *buffer* and *warnings* " "parameters were added." @@ -3779,7 +3651,7 @@ msgstr "" "Los parámetros *verbosity*, *failfast*, *catchbreak*, *buffer* y *warnings* " "fueron añadidos." -#: ../Doc/library/unittest.rst:2330 +#: ../Doc/library/unittest.rst:2316 msgid "" "The *defaultTest* parameter was changed to also accept an iterable of test " "names." @@ -3787,11 +3659,11 @@ msgstr "" "El parámetro *defaultTest* fue cambiado para aceptar también un iterable de " "nombres de pruebas." -#: ../Doc/library/unittest.rst:2336 +#: ../Doc/library/unittest.rst:2322 msgid "load_tests Protocol" msgstr "load_tests protocolo" -#: ../Doc/library/unittest.rst:2340 +#: ../Doc/library/unittest.rst:2326 msgid "" "Modules or packages can customize how tests are loaded from them during " "normal test runs or test discovery by implementing a function called " @@ -3802,7 +3674,7 @@ msgstr "" "descubrimiento de pruebas mediante la implementación de una función llamada " "``load_tests``." -#: ../Doc/library/unittest.rst:2343 +#: ../Doc/library/unittest.rst:2329 msgid "" "If a test module defines ``load_tests`` it will be called by :meth:" "`TestLoader.loadTestsFromModule` with the following arguments::" @@ -3810,7 +3682,7 @@ msgstr "" "Si un módulo de tests define ``load_tests`` será llamado por :meth:" "`TestLoader.loadTestsFromModule` con los siguientes argumentos::" -#: ../Doc/library/unittest.rst:2348 +#: ../Doc/library/unittest.rst:2334 msgid "" "where *pattern* is passed straight through from ``loadTestsFromModule``. It " "defaults to ``None``." @@ -3818,11 +3690,11 @@ msgstr "" "donde *pattern* se pasa directamente desde ``loadTestsFromModule``. Por " "defecto es ``None``." -#: ../Doc/library/unittest.rst:2351 +#: ../Doc/library/unittest.rst:2337 msgid "It should return a :class:`TestSuite`." msgstr "Debe retornar una :class:`TestSuite`." -#: ../Doc/library/unittest.rst:2353 +#: ../Doc/library/unittest.rst:2339 msgid "" "*loader* is the instance of :class:`TestLoader` doing the loading. " "*standard_tests* are the tests that would be loaded by default from the " @@ -3836,7 +3708,7 @@ msgstr "" "conjunto de tests estándar. El tercer argumento se usa cuando se cargan " "paquetes como parte del descubrimiento de tests." -#: ../Doc/library/unittest.rst:2359 +#: ../Doc/library/unittest.rst:2345 msgid "" "A typical ``load_tests`` function that loads tests from a specific set of :" "class:`TestCase` classes may look like::" @@ -3844,7 +3716,7 @@ msgstr "" "Una típica función de ``load_tests`` que carga pruebas de un conjunto " "específico de :class:`TestCase`class:`TestCase` puede ser como::" -#: ../Doc/library/unittest.rst:2371 +#: ../Doc/library/unittest.rst:2357 msgid "" "If discovery is started in a directory containing a package, either from the " "command line or by calling :meth:`TestLoader.discover`, then the package :" @@ -3861,7 +3733,7 @@ msgstr "" "paquete se dejará en ``load_tests`` que se llama con los siguientes " "argumentos::" -#: ../Doc/library/unittest.rst:2380 +#: ../Doc/library/unittest.rst:2366 msgid "" "This should return a :class:`TestSuite` representing all the tests from the " "package. (``standard_tests`` will only contain tests collected from :file:" @@ -3871,7 +3743,7 @@ msgstr "" "del paquete. (``test_estándar`` sólo contendrá las pruebas recogidas de :" "file:`__init__.py`.)" -#: ../Doc/library/unittest.rst:2384 +#: ../Doc/library/unittest.rst:2370 msgid "" "Because the pattern is passed into ``load_tests`` the package is free to " "continue (and potentially modify) test discovery. A 'do nothing' " @@ -3882,7 +3754,7 @@ msgstr "" "función de 'no hace nada' ``load_test`` para un paquete de pruebas se vería " "como::" -#: ../Doc/library/unittest.rst:2395 +#: ../Doc/library/unittest.rst:2381 msgid "" "Discovery no longer checks package names for matching *pattern* due to the " "impossibility of package names matching the default pattern." @@ -3891,11 +3763,11 @@ msgstr "" "*patrón* debido a la imposibilidad de que los nombres de los paquetes " "coincidan con el patrón por defecto." -#: ../Doc/library/unittest.rst:2402 +#: ../Doc/library/unittest.rst:2388 msgid "Class and Module Fixtures" msgstr "Instalaciones para clases y módulos" -#: ../Doc/library/unittest.rst:2404 +#: ../Doc/library/unittest.rst:2390 msgid "" "Class and module level fixtures are implemented in :class:`TestSuite`. When " "the test suite encounters a test from a new class then :meth:`tearDownClass` " @@ -3907,7 +3779,7 @@ msgstr "" "una nueva clase entonces se llama :meth:`tearDownClass` de la clase anterior " "(si existe), seguido de :meth:`setUpClass` de la nueva clase." -#: ../Doc/library/unittest.rst:2409 +#: ../Doc/library/unittest.rst:2395 msgid "" "Similarly if a test is from a different module from the previous test then " "``tearDownModule`` from the previous module is run, followed by " @@ -3917,7 +3789,7 @@ msgstr "" "anterior, entonces se ejecuta ``DesmontarMódulo`` del módulo anterior, " "seguido de ``DesmontarMódulo`` del nuevo módulo." -#: ../Doc/library/unittest.rst:2413 +#: ../Doc/library/unittest.rst:2399 msgid "" "After all the tests have run the final ``tearDownClass`` and " "``tearDownModule`` are run." @@ -3925,7 +3797,7 @@ msgstr "" "Después de todas las pruebas, se ejecutan los últimos ``tearDownClass`` y " "``tearDownModule``." -#: ../Doc/library/unittest.rst:2416 +#: ../Doc/library/unittest.rst:2402 msgid "" "Note that shared fixtures do not play well with [potential] features like " "test parallelization and they break test isolation. They should be used with " @@ -3935,7 +3807,7 @@ msgstr "" "características [potenciales] como la paralelización de la prueba y rompen " "el aislamiento de la prueba. Deben ser usados con cuidado." -#: ../Doc/library/unittest.rst:2419 +#: ../Doc/library/unittest.rst:2405 msgid "" "The default ordering of tests created by the unittest test loaders is to " "group all tests from the same modules and classes together. This will lead " @@ -3952,7 +3824,7 @@ msgstr "" "estas funciones compartidas de fixture pueden ser llamadas varias veces en " "una sola ejecución de prueba." -#: ../Doc/library/unittest.rst:2426 +#: ../Doc/library/unittest.rst:2412 msgid "" "Shared fixtures are not intended to work with suites with non-standard " "ordering. A ``BaseTestSuite`` still exists for frameworks that don't want to " @@ -3962,7 +3834,7 @@ msgstr "" "pedidos no estándar. Todavía existe una ``BaseTestSuite`` para los marcos de " "trabajo que no quieren soportar accesorios compartidos." -#: ../Doc/library/unittest.rst:2430 +#: ../Doc/library/unittest.rst:2416 msgid "" "If there are any exceptions raised during one of the shared fixture " "functions the test is reported as an error. Because there is no " @@ -3978,15 +3850,15 @@ msgstr "" "Si sólo estás usando el standard unittest test runner entonces este detalle " "no importa, pero si eres un autor de marcos de trabajo puede ser relevante." -#: ../Doc/library/unittest.rst:2439 +#: ../Doc/library/unittest.rst:2425 msgid "setUpClass and tearDownClass" msgstr "setUpClass y tearDownClass" -#: ../Doc/library/unittest.rst:2441 +#: ../Doc/library/unittest.rst:2427 msgid "These must be implemented as class methods::" msgstr "Estos deben ser implementados como métodos de clase::" -#: ../Doc/library/unittest.rst:2454 +#: ../Doc/library/unittest.rst:2440 msgid "" "If you want the ``setUpClass`` and ``tearDownClass`` on base classes called " "then you must call up to them yourself. The implementations in :class:" @@ -3996,7 +3868,7 @@ msgstr "" "base, debes llamarlos tú mismo. Las implementaciones en :class:`TestCase` " "están vacías." -#: ../Doc/library/unittest.rst:2458 +#: ../Doc/library/unittest.rst:2444 msgid "" "If an exception is raised during a ``setUpClass`` then the tests in the " "class are not run and the ``tearDownClass`` is not run. Skipped classes will " @@ -4010,15 +3882,15 @@ msgstr "" "una :exc:`SkipTest` entonces la clase será reportada como salteada en lugar " "de como un error." -#: ../Doc/library/unittest.rst:2466 +#: ../Doc/library/unittest.rst:2452 msgid "setUpModule and tearDownModule" msgstr "setUpModule y tearDownModule" -#: ../Doc/library/unittest.rst:2468 +#: ../Doc/library/unittest.rst:2454 msgid "These should be implemented as functions::" msgstr "Estos deben ser implementados como funciones::" -#: ../Doc/library/unittest.rst:2476 +#: ../Doc/library/unittest.rst:2462 msgid "" "If an exception is raised in a ``setUpModule`` then none of the tests in the " "module will be run and the ``tearDownModule`` will not be run. If the " @@ -4030,7 +3902,7 @@ msgstr "" "Si la excepción es una :exc:`SkipTest` entonces el módulo será reportado " "como saltado en lugar de como un error." -#: ../Doc/library/unittest.rst:2481 +#: ../Doc/library/unittest.rst:2467 msgid "" "To add cleanup code that must be run even in the case of an exception, use " "``addModuleCleanup``:" @@ -4038,7 +3910,7 @@ msgstr "" "Para agregar código de limpieza que se debe ejecutar incluso en el caso de " "una excepción, utilice ``addModuleCleanup``::" -#: ../Doc/library/unittest.rst:2487 +#: ../Doc/library/unittest.rst:2473 msgid "" "Add a function to be called after :func:`tearDownModule` to cleanup " "resources used during the test class. Functions will be called in reverse " @@ -4052,7 +3924,7 @@ msgstr "" "first-out)`). Se llaman con cualquier argumento y palabra clave que se pase " "a :meth:`addModuleCleanup` cuando se añadan." -#: ../Doc/library/unittest.rst:2493 +#: ../Doc/library/unittest.rst:2479 msgid "" "If :meth:`setUpModule` fails, meaning that :func:`tearDownModule` is not " "called, then any cleanup functions added will still be called." @@ -4061,7 +3933,7 @@ msgstr "" "se invoca, entonces cualquier función de limpieza añadida seguirá siendo " "invocada." -#: ../Doc/library/unittest.rst:2501 +#: ../Doc/library/unittest.rst:2487 msgid "" "Enter the supplied :term:`context manager`. If successful, also add its :" "meth:`~object.__exit__` method as a cleanup function by :func:" @@ -4073,7 +3945,7 @@ msgstr "" "mediante :func:`addModuleCleanup` y retorna el resultado del método :meth:" "`~object.__enter__`." -#: ../Doc/library/unittest.rst:2511 +#: ../Doc/library/unittest.rst:2497 msgid "" "This function is called unconditionally after :func:`tearDownModule`, or " "after :func:`setUpModule` if :func:`setUpModule` raises an exception." @@ -4081,7 +3953,7 @@ msgstr "" "Esta función se llama incondicionalmente después de :func:`tearDownModule`, " "o después de :func:`setUpModule` si :func:`setUpModule` lanza una excepción." -#: ../Doc/library/unittest.rst:2514 +#: ../Doc/library/unittest.rst:2500 msgid "" "It is responsible for calling all the cleanup functions added by :func:" "`addModuleCleanup`. If you need cleanup functions to be called *prior* to :" @@ -4092,7 +3964,7 @@ msgstr "" "llamen *previamente* a :func:`tearDownModule` entonces puedes invocar a :" "func:`doModuleCleanups` tú mismo." -#: ../Doc/library/unittest.rst:2519 +#: ../Doc/library/unittest.rst:2505 msgid "" ":func:`doModuleCleanups` pops methods off the stack of cleanup functions one " "at a time, so it can be called at any time." @@ -4100,11 +3972,11 @@ msgstr "" ":func:`doModuleCleanups` saca los métodos de la pila de funciones de " "limpieza uno a uno, así que se puede llamar en cualquier momento." -#: ../Doc/library/unittest.rst:2526 +#: ../Doc/library/unittest.rst:2512 msgid "Signal Handling" msgstr "Manejo de señales" -#: ../Doc/library/unittest.rst:2530 +#: ../Doc/library/unittest.rst:2516 msgid "" "The :option:`-c/--catch ` command-line option to unittest, " "along with the ``catchbreak`` parameter to :func:`unittest.main()`, provide " @@ -4121,7 +3993,7 @@ msgstr "" "terminará y reportará todos los resultados hasta ahora. Un segundo control-C " "lanzará una :exc:`KeyboardInterrupt` de la manera habitual." -#: ../Doc/library/unittest.rst:2537 +#: ../Doc/library/unittest.rst:2523 msgid "" "The control-c handling signal handler attempts to remain compatible with " "code or tests that install their own :const:`signal.SIGINT` handler. If the " @@ -4142,7 +4014,7 @@ msgstr "" "necesiten el manejo de control-c de ``unittest`` deshabilitado se puede usar " "el decorador :func:`removeHandler`." -#: ../Doc/library/unittest.rst:2546 +#: ../Doc/library/unittest.rst:2532 msgid "" "There are a few utility functions for framework authors to enable control-c " "handling functionality within test frameworks." @@ -4151,7 +4023,7 @@ msgstr "" "habiliten la funcionalidad de control de control-c dentro de los marcos de " "prueba." -#: ../Doc/library/unittest.rst:2551 +#: ../Doc/library/unittest.rst:2537 msgid "" "Install the control-c handler. When a :const:`signal.SIGINT` is received " "(usually in response to the user pressing control-c) all registered results " @@ -4161,7 +4033,7 @@ msgstr "" "SIGINT` (normalmente en respuesta a que el usuario presione control-c) " "todos los resultados registrados tienen :meth:`~TestResult.stop` llamado." -#: ../Doc/library/unittest.rst:2558 +#: ../Doc/library/unittest.rst:2544 msgid "" "Register a :class:`TestResult` object for control-c handling. Registering a " "result stores a weak reference to it, so it doesn't prevent the result from " @@ -4171,7 +4043,7 @@ msgstr "" "registro de un resultado almacena una referencia débil a él, por lo que no " "evita que el resultado sea recogido por el recolector de basura." -#: ../Doc/library/unittest.rst:2562 +#: ../Doc/library/unittest.rst:2548 msgid "" "Registering a :class:`TestResult` object has no side-effects if control-c " "handling is not enabled, so test frameworks can unconditionally register all " @@ -4182,7 +4054,7 @@ msgstr "" "pueden registrar incondicionalmente todos los resultados que crean " "independientemente de si el manejo está habilitado o no." -#: ../Doc/library/unittest.rst:2569 +#: ../Doc/library/unittest.rst:2555 msgid "" "Remove a registered result. Once a result has been removed then :meth:" "`~TestResult.stop` will no longer be called on that result object in " @@ -4192,7 +4064,7 @@ msgstr "" "eliminado, :meth:`~TestResult.stop` ya no se llamará en ese objeto de " "resultado en respuesta a un control-c." -#: ../Doc/library/unittest.rst:2576 +#: ../Doc/library/unittest.rst:2562 msgid "" "When called without arguments this function removes the control-c handler if " "it has been installed. This function can also be used as a test decorator to " @@ -4201,3 +4073,146 @@ msgstr "" "Cuando se llama sin argumentos, esta función quita el gestor control-c si se " "ha instalado. Esta función también se puede utilizar como decorador de tests " "para quitar temporalmente el controlador mientras se ejecuta el test::" + +#~ msgid "" +#~ "The name ``assertNotRegexpMatches`` is a deprecated alias for :meth:`." +#~ "assertNotRegex`." +#~ msgstr "" +#~ "El nombre ``assertNotRegexpMatches`` es un alias obsoleto para :meth:`." +#~ "assertNotRegex`." + +#~ msgid "Deprecated aliases" +#~ msgstr "Alias obsoletos" + +#~ msgid "" +#~ "For historical reasons, some of the :class:`TestCase` methods had one or " +#~ "more aliases that are now deprecated. The following table lists the " +#~ "correct names along with their deprecated aliases:" +#~ msgstr "" +#~ "Por razones históricas, algunos de los métodos de :class:`TestCase` " +#~ "tenían uno o más alias que ahora están obsoletos. La siguiente tabla " +#~ "lista los nombres correctos junto con sus alias obsoletos:" + +#~ msgid "Method Name" +#~ msgstr "Nombre del método" + +#~ msgid "Deprecated alias" +#~ msgstr "Alias deprecado" + +#~ msgid ":meth:`.assertEqual`" +#~ msgstr ":meth:`.assertEqual`" + +#~ msgid "failUnlessEqual" +#~ msgstr "failUnlessEqual" + +#~ msgid "assertEquals" +#~ msgstr "assertEquals" + +#~ msgid ":meth:`.assertNotEqual`" +#~ msgstr ":meth:`.assertNotEqual`" + +#~ msgid "failIfEqual" +#~ msgstr "failIfEqual" + +#~ msgid "assertNotEquals" +#~ msgstr "assertNotEquals" + +#~ msgid ":meth:`.assertTrue`" +#~ msgstr ":meth:`.assertTrue`" + +#~ msgid "failUnless" +#~ msgstr "failUnless" + +#~ msgid "assert\\_" +#~ msgstr "assert\\_" + +#~ msgid ":meth:`.assertFalse`" +#~ msgstr ":meth:`.assertFalse`" + +#~ msgid "failIf" +#~ msgstr "failIf" + +#~ msgid ":meth:`.assertRaises`" +#~ msgstr ":meth:`.assertRaises`" + +#~ msgid "failUnlessRaises" +#~ msgstr "failUnlessRaises" + +#~ msgid ":meth:`.assertAlmostEqual`" +#~ msgstr ":meth:`.assertAlmostEqual`" + +#~ msgid "failUnlessAlmostEqual" +#~ msgstr "failUnlessAlmostEqual" + +#~ msgid "assertAlmostEquals" +#~ msgstr "assertAlmostEquals" + +#~ msgid ":meth:`.assertNotAlmostEqual`" +#~ msgstr ":meth:`.assertNotAlmostEqual`" + +#~ msgid "failIfAlmostEqual" +#~ msgstr "failIfAlmostEqual" + +#~ msgid "assertNotAlmostEquals" +#~ msgstr "assertNotAlmostEquals" + +#~ msgid ":meth:`.assertRegex`" +#~ msgstr ":meth:`.assertRegex`" + +#~ msgid "assertRegexpMatches" +#~ msgstr "assertRegexpMatches" + +#~ msgid ":meth:`.assertNotRegex`" +#~ msgstr ":meth:`.assertNotRegex`" + +#~ msgid "assertNotRegexpMatches" +#~ msgstr "assertNotRegexpMatches" + +#~ msgid ":meth:`.assertRaisesRegex`" +#~ msgstr ":meth:`.assertRaisesRegex`" + +#~ msgid "assertRaisesRegexp" +#~ msgstr "assertRaisesRegexp" + +#~ msgid "The fail* aliases listed in the second column have been deprecated." +#~ msgstr "" +#~ "Los alias de fail* que figuran en la segunda columna han sido declarados " +#~ "obsoletos." + +#~ msgid "The assert* aliases listed in the third column have been deprecated." +#~ msgstr "" +#~ "Los alias de aserción* que figuran en la tercera columna han sido " +#~ "declarados obsoletos." + +#~ msgid "" +#~ "``assertRegexpMatches`` and ``assertRaisesRegexp`` have been renamed to :" +#~ "meth:`.assertRegex` and :meth:`.assertRaisesRegex`." +#~ msgstr "" +#~ "``assertRegexpMatches`` y ``assertRaisesRegexp`` han sido renombrados a :" +#~ "meth:`.assertRegex` y :meth:`.assertRaisesRegex`." + +#~ msgid "" +#~ "The ``assertNotRegexpMatches`` name is deprecated in favor of :meth:`." +#~ "assertNotRegex`." +#~ msgstr "" +#~ "El nombre ``assertNotRegexpMatches`` se ha declarado obsoleto en favor " +#~ "de :meth:`.assertNotRegex`." + +#~ msgid "" +#~ "The undocumented and unofficial *use_load_tests* default argument is " +#~ "deprecated and ignored, although it is still accepted for backward " +#~ "compatibility. The method also now accepts a keyword-only argument " +#~ "*pattern* which is passed to ``load_tests`` as the third argument." +#~ msgstr "" +#~ "El argumento por defecto *use_load_tests* no documentado y no oficial es " +#~ "obsoleto e ignorado, aunque sigue siendo aceptado por la " +#~ "retrocompatibilidad. El método también acepta ahora un argumento de sólo " +#~ "palabra clave *pattern* que se pasa a ``load_tests`` como tercer " +#~ "argumento." + +#~ msgid "" +#~ "This class was previously named ``_TextTestResult``. The old name still " +#~ "exists as an alias but is deprecated." +#~ msgstr "" +#~ "Esta clase se llamaba anteriormente ``_TextTestResult``. El antiguo " +#~ "nombre todavía existe como un alias pero está obsoleto." diff --git a/library/urllib.error.po b/library/urllib.error.po index 4b2850b66e..15fb44ab0a 100644 --- a/library/urllib.error.po +++ b/library/urllib.error.po @@ -1,23 +1,25 @@ # Copyright (C) 2001-2020, Python Software Foundation # This file is distributed under the same license as the Python package. # Maintained by the python-doc-es workteam. -# docs-es@python.org / https://mail.python.org/mailman3/lists/docs-es.python.org/ -# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get the list of volunteers +# docs-es@python.org / +# https://mail.python.org/mailman3/lists/docs-es.python.org/ +# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get +# the list of volunteers # msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-06 11:59-0400\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-10-26 06:52-0400\n" +"Last-Translator: \n" +"Language: es\n" "Language-Team: python-doc-es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: \n" -"Language: es\n" -"X-Generator: Poedit 2.4.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/urllib.error.rst:2 msgid ":mod:`urllib.error` --- Exception classes raised by urllib.request" @@ -83,6 +85,10 @@ msgstr "" "autentificación." #: ../Doc/library/urllib.error.rst:44 +msgid "Contains the request URL. An alias for *filename* attribute." +msgstr "" + +#: ../Doc/library/urllib.error.rst:49 msgid "" "An HTTP status code as defined in :rfc:`2616`. This numeric value " "corresponds to a value found in the dictionary of codes as found in :attr:" @@ -92,28 +98,40 @@ msgstr "" "numérico se corresponde con un valor de un diccionario de códigos como el " "que hay en :attr:`http.server.BaseHTTPRequestHandler.responses`." -#: ../Doc/library/urllib.error.rst:50 -msgid "This is usually a string explaining the reason for this error." +#: ../Doc/library/urllib.error.rst:55 +#, fuzzy +msgid "" +"This is usually a string explaining the reason for this error. An alias for " +"*msg* attribute." msgstr "" "Normalmente esto es una cadena de caracteres que explica el motivo de este " "error." -#: ../Doc/library/urllib.error.rst:54 +#: ../Doc/library/urllib.error.rst:60 +#, fuzzy msgid "" "The HTTP response headers for the HTTP request that caused the :exc:" -"`HTTPError`." +"`HTTPError`. An alias for *hdrs* attribute." msgstr "" "Las cabeceras de la respuesta HTTP de la petición HTTP que causó el :exc:" "`HTTPError`." -#: ../Doc/library/urllib.error.rst:61 +#: ../Doc/library/urllib.error.rst:68 +msgid "A file-like object where the HTTP error body can be read from." +msgstr "" + +#: ../Doc/library/urllib.error.rst:72 +#, fuzzy msgid "" "This exception is raised when the :func:`~urllib.request.urlretrieve` " "function detects that the amount of the downloaded data is less than the " -"expected amount (given by the *Content-Length* header). The :attr:`content` " -"attribute stores the downloaded (and supposedly truncated) data." +"expected amount (given by the *Content-Length* header)." msgstr "" "Esta excepción se lanza cuando la función :func:`~urllib.request." "urlretrieve` detecta que la cantidad de datos descargados es menor que la " "esperada (dada por la cabecera *Content-Length*). El atributo :attr:" "`content` almacena los datos descargados (y supuestamente truncados)." + +#: ../Doc/library/urllib.error.rst:79 +msgid "The downloaded (and supposedly truncated) data." +msgstr "" diff --git a/library/urllib.parse.po b/library/urllib.parse.po index 9c2a47e0de..a1aeb64ff1 100644 --- a/library/urllib.parse.po +++ b/library/urllib.parse.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-16 21:42+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-12-13 22:07-0300\n" "Last-Translator: Rodrigo Tobar \n" "Language: es\n" @@ -19,8 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.9.1\n" -"X-Generator: Poedit 3.0\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/urllib.parse.rst:2 msgid ":mod:`urllib.parse` --- Parse URLs into components" @@ -45,13 +44,14 @@ msgstr "" "relativa\" a una URL absoluta a partir de una \"URL base\"." #: ../Doc/library/urllib.parse.rst:23 +#, fuzzy msgid "" "The module has been designed to match the internet RFC on Relative Uniform " "Resource Locators. It supports the following URL schemes: ``file``, ``ftp``, " "``gopher``, ``hdl``, ``http``, ``https``, ``imap``, ``mailto``, ``mms``, " -"``news``, ``nntp``, ``prospero``, ``rsync``, ``rtsp``, ``rtspu``, ``sftp``, " -"``shttp``, ``sip``, ``sips``, ``snews``, ``svn``, ``svn+ssh``, ``telnet``, " -"``wais``, ``ws``, ``wss``." +"``news``, ``nntp``, ``prospero``, ``rsync``, ``rtsp``, ``rtsps``, ``rtspu``, " +"``sftp``, ``shttp``, ``sip``, ``sips``, ``snews``, ``svn``, ``svn+ssh``, " +"``telnet``, ``wais``, ``ws``, ``wss``." msgstr "" "Este módulo ha sido diseñado para coincidir con el RFC de internet sobre " "localizadores de recursos uniformes relativos. Admite los siguientes " @@ -104,7 +104,7 @@ msgstr "" "excepto una barra diagonal inicial en el componente *path*, el cual es " "conservado si está presente. Por ejemplo:" -#: ../Doc/library/urllib.parse.rst:63 +#: ../Doc/library/urllib.parse.rst:75 msgid "" "Following the syntax specifications in :rfc:`1808`, urlparse recognizes a " "netloc only if it is properly introduced by '//'. Otherwise the input is " @@ -115,7 +115,7 @@ msgstr "" "se supone que la entrada es una dirección URL relativa y, por lo tanto, " "comienza con un componente de ruta de acceso." -#: ../Doc/library/urllib.parse.rst:82 +#: ../Doc/library/urllib.parse.rst:94 msgid "" "The *scheme* argument gives the default addressing scheme, to be used only " "if the URL does not specify one. It should be the same type (text or bytes) " @@ -128,7 +128,7 @@ msgstr "" "el valor predeterminado ``''`` siempre está permitido, y se convierte " "automáticamente a ``b''`` si aplica." -#: ../Doc/library/urllib.parse.rst:87 +#: ../Doc/library/urllib.parse.rst:99 msgid "" "If the *allow_fragments* argument is false, fragment identifiers are not " "recognized. Instead, they are parsed as part of the path, parameters or " @@ -140,7 +140,7 @@ msgstr "" "parámetros o componentes de la consulta y el :attr:`fragment` es configurado " "como una cadena vacía en el valor retornado." -#: ../Doc/library/urllib.parse.rst:92 +#: ../Doc/library/urllib.parse.rst:104 msgid "" "The return value is a :term:`named tuple`, which means that its items can be " "accessed by index or as named attributes, which are:" @@ -148,155 +148,155 @@ msgstr "" "El valor retornado es un :term:`named tuple`, lo que significa que se puede " "tener acceso a sus elementos por índice o como atributos con nombre, que son:" -#: ../Doc/library/urllib.parse.rst:96 ../Doc/library/urllib.parse.rst:281 -#: ../Doc/library/urllib.parse.rst:385 +#: ../Doc/library/urllib.parse.rst:108 ../Doc/library/urllib.parse.rst:297 +#: ../Doc/library/urllib.parse.rst:410 msgid "Attribute" msgstr "Atributo" -#: ../Doc/library/urllib.parse.rst:96 ../Doc/library/urllib.parse.rst:281 -#: ../Doc/library/urllib.parse.rst:385 +#: ../Doc/library/urllib.parse.rst:108 ../Doc/library/urllib.parse.rst:297 +#: ../Doc/library/urllib.parse.rst:410 msgid "Index" msgstr "Índice" -#: ../Doc/library/urllib.parse.rst:96 ../Doc/library/urllib.parse.rst:281 -#: ../Doc/library/urllib.parse.rst:385 +#: ../Doc/library/urllib.parse.rst:108 ../Doc/library/urllib.parse.rst:297 +#: ../Doc/library/urllib.parse.rst:410 msgid "Value" msgstr "Valor" -#: ../Doc/library/urllib.parse.rst:96 ../Doc/library/urllib.parse.rst:281 -#: ../Doc/library/urllib.parse.rst:385 +#: ../Doc/library/urllib.parse.rst:108 ../Doc/library/urllib.parse.rst:297 +#: ../Doc/library/urllib.parse.rst:410 msgid "Value if not present" msgstr "Valor si no está presente" -#: ../Doc/library/urllib.parse.rst:98 ../Doc/library/urllib.parse.rst:283 +#: ../Doc/library/urllib.parse.rst:110 ../Doc/library/urllib.parse.rst:299 msgid ":attr:`scheme`" msgstr ":attr:`scheme`" -#: ../Doc/library/urllib.parse.rst:98 ../Doc/library/urllib.parse.rst:283 -#: ../Doc/library/urllib.parse.rst:387 +#: ../Doc/library/urllib.parse.rst:110 ../Doc/library/urllib.parse.rst:299 +#: ../Doc/library/urllib.parse.rst:412 msgid "0" msgstr "0" -#: ../Doc/library/urllib.parse.rst:98 ../Doc/library/urllib.parse.rst:283 +#: ../Doc/library/urllib.parse.rst:110 ../Doc/library/urllib.parse.rst:299 msgid "URL scheme specifier" msgstr "Especificador de esquema de URL" -#: ../Doc/library/urllib.parse.rst:98 ../Doc/library/urllib.parse.rst:283 +#: ../Doc/library/urllib.parse.rst:110 ../Doc/library/urllib.parse.rst:299 msgid "*scheme* parameter" msgstr "parámetro *scheme*" -#: ../Doc/library/urllib.parse.rst:100 ../Doc/library/urllib.parse.rst:285 +#: ../Doc/library/urllib.parse.rst:112 ../Doc/library/urllib.parse.rst:301 msgid ":attr:`netloc`" msgstr ":attr:`netloc`" -#: ../Doc/library/urllib.parse.rst:100 ../Doc/library/urllib.parse.rst:285 -#: ../Doc/library/urllib.parse.rst:389 +#: ../Doc/library/urllib.parse.rst:112 ../Doc/library/urllib.parse.rst:301 +#: ../Doc/library/urllib.parse.rst:414 msgid "1" msgstr "1" -#: ../Doc/library/urllib.parse.rst:100 ../Doc/library/urllib.parse.rst:285 +#: ../Doc/library/urllib.parse.rst:112 ../Doc/library/urllib.parse.rst:301 msgid "Network location part" msgstr "Parte de ubicación de red" -#: ../Doc/library/urllib.parse.rst:100 ../Doc/library/urllib.parse.rst:102 -#: ../Doc/library/urllib.parse.rst:104 ../Doc/library/urllib.parse.rst:107 -#: ../Doc/library/urllib.parse.rst:109 ../Doc/library/urllib.parse.rst:285 -#: ../Doc/library/urllib.parse.rst:287 ../Doc/library/urllib.parse.rst:289 -#: ../Doc/library/urllib.parse.rst:291 ../Doc/library/urllib.parse.rst:387 -#: ../Doc/library/urllib.parse.rst:389 +#: ../Doc/library/urllib.parse.rst:112 ../Doc/library/urllib.parse.rst:114 +#: ../Doc/library/urllib.parse.rst:116 ../Doc/library/urllib.parse.rst:119 +#: ../Doc/library/urllib.parse.rst:121 ../Doc/library/urllib.parse.rst:301 +#: ../Doc/library/urllib.parse.rst:303 ../Doc/library/urllib.parse.rst:305 +#: ../Doc/library/urllib.parse.rst:307 ../Doc/library/urllib.parse.rst:412 +#: ../Doc/library/urllib.parse.rst:414 msgid "empty string" msgstr "cadena vacía" -#: ../Doc/library/urllib.parse.rst:102 ../Doc/library/urllib.parse.rst:287 +#: ../Doc/library/urllib.parse.rst:114 ../Doc/library/urllib.parse.rst:303 msgid ":attr:`path`" msgstr ":attr:`path`" -#: ../Doc/library/urllib.parse.rst:102 ../Doc/library/urllib.parse.rst:287 +#: ../Doc/library/urllib.parse.rst:114 ../Doc/library/urllib.parse.rst:303 msgid "2" msgstr "2" -#: ../Doc/library/urllib.parse.rst:102 ../Doc/library/urllib.parse.rst:287 +#: ../Doc/library/urllib.parse.rst:114 ../Doc/library/urllib.parse.rst:303 msgid "Hierarchical path" msgstr "Hierarchical path" -#: ../Doc/library/urllib.parse.rst:104 +#: ../Doc/library/urllib.parse.rst:116 msgid ":attr:`params`" msgstr ":attr:`params`" -#: ../Doc/library/urllib.parse.rst:104 ../Doc/library/urllib.parse.rst:289 +#: ../Doc/library/urllib.parse.rst:116 ../Doc/library/urllib.parse.rst:305 msgid "3" msgstr "3" -#: ../Doc/library/urllib.parse.rst:104 +#: ../Doc/library/urllib.parse.rst:116 msgid "Parameters for last path element" msgstr "Parámetros para el último elemento de ruta de acceso" -#: ../Doc/library/urllib.parse.rst:107 ../Doc/library/urllib.parse.rst:289 +#: ../Doc/library/urllib.parse.rst:119 ../Doc/library/urllib.parse.rst:305 msgid ":attr:`query`" msgstr ":attr:`query`" -#: ../Doc/library/urllib.parse.rst:107 ../Doc/library/urllib.parse.rst:291 +#: ../Doc/library/urllib.parse.rst:119 ../Doc/library/urllib.parse.rst:307 msgid "4" msgstr "4" -#: ../Doc/library/urllib.parse.rst:107 ../Doc/library/urllib.parse.rst:289 +#: ../Doc/library/urllib.parse.rst:119 ../Doc/library/urllib.parse.rst:305 msgid "Query component" msgstr "Componente de consulta" -#: ../Doc/library/urllib.parse.rst:109 ../Doc/library/urllib.parse.rst:291 -#: ../Doc/library/urllib.parse.rst:389 +#: ../Doc/library/urllib.parse.rst:121 ../Doc/library/urllib.parse.rst:307 +#: ../Doc/library/urllib.parse.rst:414 msgid ":attr:`fragment`" msgstr ":attr:`fragment`" -#: ../Doc/library/urllib.parse.rst:109 +#: ../Doc/library/urllib.parse.rst:121 msgid "5" msgstr "5" -#: ../Doc/library/urllib.parse.rst:109 ../Doc/library/urllib.parse.rst:291 -#: ../Doc/library/urllib.parse.rst:389 +#: ../Doc/library/urllib.parse.rst:121 ../Doc/library/urllib.parse.rst:307 +#: ../Doc/library/urllib.parse.rst:414 msgid "Fragment identifier" msgstr "Identificador de fragmento" -#: ../Doc/library/urllib.parse.rst:111 ../Doc/library/urllib.parse.rst:293 +#: ../Doc/library/urllib.parse.rst:123 ../Doc/library/urllib.parse.rst:309 msgid ":attr:`username`" msgstr ":attr:`username`" -#: ../Doc/library/urllib.parse.rst:111 ../Doc/library/urllib.parse.rst:293 +#: ../Doc/library/urllib.parse.rst:123 ../Doc/library/urllib.parse.rst:309 msgid "User name" msgstr "Nombre de usuario" -#: ../Doc/library/urllib.parse.rst:111 ../Doc/library/urllib.parse.rst:113 -#: ../Doc/library/urllib.parse.rst:115 ../Doc/library/urllib.parse.rst:117 -#: ../Doc/library/urllib.parse.rst:293 ../Doc/library/urllib.parse.rst:295 -#: ../Doc/library/urllib.parse.rst:297 ../Doc/library/urllib.parse.rst:299 +#: ../Doc/library/urllib.parse.rst:123 ../Doc/library/urllib.parse.rst:125 +#: ../Doc/library/urllib.parse.rst:127 ../Doc/library/urllib.parse.rst:129 +#: ../Doc/library/urllib.parse.rst:309 ../Doc/library/urllib.parse.rst:311 +#: ../Doc/library/urllib.parse.rst:313 ../Doc/library/urllib.parse.rst:315 msgid ":const:`None`" msgstr ":const:`None`" -#: ../Doc/library/urllib.parse.rst:113 ../Doc/library/urllib.parse.rst:295 +#: ../Doc/library/urllib.parse.rst:125 ../Doc/library/urllib.parse.rst:311 msgid ":attr:`password`" msgstr ":attr:`password`" -#: ../Doc/library/urllib.parse.rst:113 ../Doc/library/urllib.parse.rst:295 +#: ../Doc/library/urllib.parse.rst:125 ../Doc/library/urllib.parse.rst:311 msgid "Password" msgstr "Contraseña" -#: ../Doc/library/urllib.parse.rst:115 ../Doc/library/urllib.parse.rst:297 +#: ../Doc/library/urllib.parse.rst:127 ../Doc/library/urllib.parse.rst:313 msgid ":attr:`hostname`" msgstr ":attr:`hostname`" -#: ../Doc/library/urllib.parse.rst:115 ../Doc/library/urllib.parse.rst:297 +#: ../Doc/library/urllib.parse.rst:127 ../Doc/library/urllib.parse.rst:313 msgid "Host name (lower case)" msgstr "Nombre de host (minúsculas)" -#: ../Doc/library/urllib.parse.rst:117 ../Doc/library/urllib.parse.rst:299 +#: ../Doc/library/urllib.parse.rst:129 ../Doc/library/urllib.parse.rst:315 msgid ":attr:`port`" msgstr ":attr:`port`" -#: ../Doc/library/urllib.parse.rst:117 ../Doc/library/urllib.parse.rst:299 +#: ../Doc/library/urllib.parse.rst:129 ../Doc/library/urllib.parse.rst:315 msgid "Port number as integer, if present" msgstr "Número de puerto como entero, si está presente" -#: ../Doc/library/urllib.parse.rst:121 ../Doc/library/urllib.parse.rst:303 +#: ../Doc/library/urllib.parse.rst:133 ../Doc/library/urllib.parse.rst:319 msgid "" "Reading the :attr:`port` attribute will raise a :exc:`ValueError` if an " "invalid port is specified in the URL. See section :ref:`urlparse-result-" @@ -307,7 +307,7 @@ msgstr "" "ref:`urlparse-result-object` para obtener más información sobre el objeto de " "resultado." -#: ../Doc/library/urllib.parse.rst:125 ../Doc/library/urllib.parse.rst:307 +#: ../Doc/library/urllib.parse.rst:137 ../Doc/library/urllib.parse.rst:323 msgid "" "Unmatched square brackets in the :attr:`netloc` attribute will raise a :exc:" "`ValueError`." @@ -315,7 +315,7 @@ msgstr "" "Los corchetes no coincidentes en el atributo :attr:`netloc` lanzarán un :exc:" "`ValueError`." -#: ../Doc/library/urllib.parse.rst:128 ../Doc/library/urllib.parse.rst:310 +#: ../Doc/library/urllib.parse.rst:140 ../Doc/library/urllib.parse.rst:326 msgid "" "Characters in the :attr:`netloc` attribute that decompose under NFKC " "normalization (as used by the IDNA encoding) into any of ``/``, ``?``, " @@ -328,7 +328,7 @@ msgstr "" "`ValueError`. Si la dirección URL se descompone antes del análisis, no se " "producirá ningún error." -#: ../Doc/library/urllib.parse.rst:133 +#: ../Doc/library/urllib.parse.rst:145 msgid "" "As is the case with all named tuples, the subclass has a few additional " "methods and attributes that are particularly useful. One such method is :" @@ -340,11 +340,17 @@ msgstr "" "métodos es :meth:`_replace`. El método :meth:`_replace` retornará un nuevo " "objeto ParseResult reemplazando los campos especificados por nuevos valores." -#: ../Doc/library/urllib.parse.rst:151 +#: ../Doc/library/urllib.parse.rst:164 +msgid "" +":func:`urlparse` does not perform validation. See :ref:`URL parsing " +"security ` for details." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:167 msgid "Added IPv6 URL parsing capabilities." msgstr "Se han añadido capacidades de análisis de URL IPv6." -#: ../Doc/library/urllib.parse.rst:154 +#: ../Doc/library/urllib.parse.rst:170 msgid "" "The fragment is now parsed for all URL schemes (unless *allow_fragment* is " "false), in accordance with :rfc:`3986`. Previously, an allowlist of schemes " @@ -354,7 +360,7 @@ msgstr "" "*allow_fragment* sea falso), de acuerdo con :rfc:`3986`. Anteriormente, " "existía una lista de permisos de esquemas que admitían fragmentos." -#: ../Doc/library/urllib.parse.rst:159 ../Doc/library/urllib.parse.rst:318 +#: ../Doc/library/urllib.parse.rst:175 ../Doc/library/urllib.parse.rst:340 msgid "" "Out-of-range port numbers now raise :exc:`ValueError`, instead of returning :" "const:`None`." @@ -362,7 +368,7 @@ msgstr "" "Los números de puerto fuera de rango ahora generan :exc:`ValueError`, en " "lugar de retornar :const:`None`." -#: ../Doc/library/urllib.parse.rst:163 ../Doc/library/urllib.parse.rst:322 +#: ../Doc/library/urllib.parse.rst:179 ../Doc/library/urllib.parse.rst:344 msgid "" "Characters that affect netloc parsing under NFKC normalization will now " "raise :exc:`ValueError`." @@ -370,7 +376,7 @@ msgstr "" "Los caracteres que afectan al análisis de netloc en la normalización de NFKC " "ahora lanzarán :exc:`ValueError`." -#: ../Doc/library/urllib.parse.rst:170 +#: ../Doc/library/urllib.parse.rst:186 msgid "" "Parse a query string given as a string argument (data of type :mimetype:" "`application/x-www-form-urlencoded`). Data are returned as a dictionary. " @@ -383,7 +389,7 @@ msgstr "" "variable de consulta únicos y los valores son listas de valores para cada " "nombre." -#: ../Doc/library/urllib.parse.rst:175 ../Doc/library/urllib.parse.rst:220 +#: ../Doc/library/urllib.parse.rst:191 ../Doc/library/urllib.parse.rst:236 msgid "" "The optional argument *keep_blank_values* is a flag indicating whether blank " "values in percent-encoded queries should be treated as blank strings. A true " @@ -398,7 +404,7 @@ msgstr "" "indica que los valores en blanco deben omitirse y tratarse como si no se " "hubieran incluido." -#: ../Doc/library/urllib.parse.rst:181 ../Doc/library/urllib.parse.rst:226 +#: ../Doc/library/urllib.parse.rst:197 ../Doc/library/urllib.parse.rst:242 msgid "" "The optional argument *strict_parsing* is a flag indicating what to do with " "parsing errors. If false (the default), errors are silently ignored. If " @@ -409,7 +415,7 @@ msgstr "" "omiten silenciosamente. Si es verdadero, los errores generan una excepción :" "exc:`ValueError`." -#: ../Doc/library/urllib.parse.rst:185 ../Doc/library/urllib.parse.rst:230 +#: ../Doc/library/urllib.parse.rst:201 ../Doc/library/urllib.parse.rst:246 msgid "" "The optional *encoding* and *errors* parameters specify how to decode " "percent-encoded sequences into Unicode characters, as accepted by the :meth:" @@ -419,7 +425,7 @@ msgstr "" "descodificar secuencias codificadas porcentualmente en caracteres Unicode, " "tal como lo acepta el método :meth:`bytes.decode`." -#: ../Doc/library/urllib.parse.rst:189 ../Doc/library/urllib.parse.rst:234 +#: ../Doc/library/urllib.parse.rst:205 ../Doc/library/urllib.parse.rst:250 msgid "" "The optional argument *max_num_fields* is the maximum number of fields to " "read. If set, then throws a :exc:`ValueError` if there are more than " @@ -429,7 +435,7 @@ msgstr "" "van a leer. Si se establece, se produce un :exc:`ValueError` si hay más de " "*max_num_fields* campos leídos." -#: ../Doc/library/urllib.parse.rst:193 ../Doc/library/urllib.parse.rst:238 +#: ../Doc/library/urllib.parse.rst:209 ../Doc/library/urllib.parse.rst:254 msgid "" "The optional argument *separator* is the symbol to use for separating the " "query arguments. It defaults to ``&``." @@ -437,7 +443,7 @@ msgstr "" "El argumento opcional *separator* es el símbolo que se usa para separar los " "argumentos de la cadena de consulta. El valor por defecto es ``&``." -#: ../Doc/library/urllib.parse.rst:196 +#: ../Doc/library/urllib.parse.rst:212 msgid "" "Use the :func:`urllib.parse.urlencode` function (with the ``doseq`` " "parameter set to ``True``) to convert such dictionaries into query strings." @@ -446,15 +452,15 @@ msgstr "" "``doseq`` establecido en ``True``) para convertir dichos diccionarios en " "cadenas de consulta." -#: ../Doc/library/urllib.parse.rst:201 ../Doc/library/urllib.parse.rst:244 +#: ../Doc/library/urllib.parse.rst:217 ../Doc/library/urllib.parse.rst:260 msgid "Add *encoding* and *errors* parameters." msgstr "Agregue los parámetros *encoding* y *errors*." -#: ../Doc/library/urllib.parse.rst:204 ../Doc/library/urllib.parse.rst:247 +#: ../Doc/library/urllib.parse.rst:220 ../Doc/library/urllib.parse.rst:263 msgid "Added *max_num_fields* parameter." msgstr "Añadido parámetro *max_num_fields*." -#: ../Doc/library/urllib.parse.rst:207 ../Doc/library/urllib.parse.rst:250 +#: ../Doc/library/urllib.parse.rst:223 ../Doc/library/urllib.parse.rst:266 msgid "" "Added *separator* parameter with the default value of ``&``. Python versions " "earlier than Python 3.10 allowed using both ``;`` and ``&`` as query " @@ -466,7 +472,7 @@ msgstr "" "separadores de la cadena de consulta. Esto ha sido cambiado para aceptar " "sólo una llave separadora, siendo ``&`` el separador por defecto." -#: ../Doc/library/urllib.parse.rst:216 +#: ../Doc/library/urllib.parse.rst:232 msgid "" "Parse a query string given as a string argument (data of type :mimetype:" "`application/x-www-form-urlencoded`). Data are returned as a list of name, " @@ -476,7 +482,7 @@ msgstr "" "(datos de tipo :mimetype:`application/x-www-form-urlencoded`). Los datos se " "retornan como una lista de pares de nombre y valor." -#: ../Doc/library/urllib.parse.rst:241 +#: ../Doc/library/urllib.parse.rst:257 msgid "" "Use the :func:`urllib.parse.urlencode` function to convert such lists of " "pairs into query strings." @@ -484,7 +490,7 @@ msgstr "" "Utilice la función :func:`urllib.parse.urlencode` para convertir dichas " "listas de pares en cadenas de consulta." -#: ../Doc/library/urllib.parse.rst:259 +#: ../Doc/library/urllib.parse.rst:275 msgid "" "Construct a URL from a tuple as returned by ``urlparse()``. The *parts* " "argument can be any six-item iterable. This may result in a slightly " @@ -499,7 +505,7 @@ msgstr "" "ejemplo, un ``?`` con una consulta vacía; la RFC indica que son " "equivalentes)." -#: ../Doc/library/urllib.parse.rst:268 +#: ../Doc/library/urllib.parse.rst:284 msgid "" "This is similar to :func:`urlparse`, but does not split the params from the " "URL. This should generally be used instead of :func:`urlparse` if the more " @@ -516,7 +522,7 @@ msgstr "" "segmentos y parámetros de ruta. Esta función retorna un 5-item :term:`named " "tuple`::" -#: ../Doc/library/urllib.parse.rst:277 ../Doc/library/urllib.parse.rst:381 +#: ../Doc/library/urllib.parse.rst:293 ../Doc/library/urllib.parse.rst:406 msgid "" "The return value is a :term:`named tuple`, its items can be accessed by " "index or as named attributes:" @@ -524,20 +530,34 @@ msgstr "" "El valor retornado es un :term:`named tuple`, se puede acceder a sus " "elementos por índice o como atributos con nombre:" -#: ../Doc/library/urllib.parse.rst:315 +#: ../Doc/library/urllib.parse.rst:331 +#, fuzzy msgid "" -"Following the `WHATWG spec`_ that updates RFC 3986, ASCII newline ``\\n``, " -"``\\r`` and tab ``\\t`` characters are stripped from the URL." +"Following some of the `WHATWG spec`_ that updates RFC 3986, leading C0 " +"control and space characters are stripped from the URL. ``\\n``, ``\\r`` and " +"tab ``\\t`` characters are removed from the URL at any position." msgstr "" "Siguiendo la especificación `WHATWG spec`_ que actualiza RFC 3986, los " "caracteres ASCII nueva línea ``\\n``, ``\\r`` y tab ``\\t`` se eliminan de " "la URL." -#: ../Doc/library/urllib.parse.rst:326 +#: ../Doc/library/urllib.parse.rst:337 +msgid "" +":func:`urlsplit` does not perform validation. See :ref:`URL parsing " +"security ` for details." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:348 msgid "ASCII newline and tab characters are stripped from the URL." msgstr "Los caracteres ASCII de nueva línea y tab se eliminan de la URL." -#: ../Doc/library/urllib.parse.rst:333 +#: ../Doc/library/urllib.parse.rst:351 +#, fuzzy +msgid "" +"Leading WHATWG C0 control and space characters are stripped from the URL." +msgstr "Los caracteres ASCII de nueva línea y tab se eliminan de la URL." + +#: ../Doc/library/urllib.parse.rst:358 msgid "" "Combine the elements of a tuple as returned by :func:`urlsplit` into a " "complete URL as a string. The *parts* argument can be any five-item " @@ -552,7 +572,7 @@ msgstr "" "originalmente tenía delimitadores innecesarios (por ejemplo, un ? con una " "consulta vacía; la RFC indica que son equivalentes)." -#: ../Doc/library/urllib.parse.rst:342 +#: ../Doc/library/urllib.parse.rst:367 msgid "" "Construct a full (\"absolute\") URL by combining a \"base URL\" (*base*) " "with another URL (*url*). Informally, this uses components of the base URL, " @@ -566,7 +586,7 @@ msgstr "" "proporcionar los componentes que faltan en la dirección URL relativa. Por " "ejemplo:" -#: ../Doc/library/urllib.parse.rst:351 +#: ../Doc/library/urllib.parse.rst:376 msgid "" "The *allow_fragments* argument has the same meaning and default as for :func:" "`urlparse`." @@ -574,7 +594,7 @@ msgstr "" "El argumento *allow_fragments* tiene el mismo significado y el valor " "predeterminado que para :func:`urlparse`." -#: ../Doc/library/urllib.parse.rst:356 +#: ../Doc/library/urllib.parse.rst:381 msgid "" "If *url* is an absolute URL (that is, it starts with ``//`` or ``scheme://" "``), the *url*'s hostname and/or scheme will be present in the result. For " @@ -584,7 +604,7 @@ msgstr "" "``), el nombre de host y/o esquema de *url* estará presente en el " "resultado. Por ejemplo:" -#: ../Doc/library/urllib.parse.rst:365 +#: ../Doc/library/urllib.parse.rst:390 msgid "" "If you do not want that behavior, preprocess the *url* with :func:`urlsplit` " "and :func:`urlunsplit`, removing possible *scheme* and *netloc* parts." @@ -593,13 +613,13 @@ msgstr "" "`urlsplit` y :func:`urlunsplit`, eliminando posibles partes *esquema* y " "*netloc*." -#: ../Doc/library/urllib.parse.rst:371 +#: ../Doc/library/urllib.parse.rst:396 msgid "Behavior updated to match the semantics defined in :rfc:`3986`." msgstr "" "Comportamiento actualizado para coincidir con la semántica definida en :rfc:" "`3986`." -#: ../Doc/library/urllib.parse.rst:376 +#: ../Doc/library/urllib.parse.rst:401 msgid "" "If *url* contains a fragment identifier, return a modified version of *url* " "with no fragment identifier, and the fragment identifier as a separate " @@ -611,15 +631,15 @@ msgstr "" "fragmento como una cadena independiente. Si no hay ningún identificador de " "fragmento en *url*, retorne *url* sin modificar y una cadena vacía." -#: ../Doc/library/urllib.parse.rst:387 +#: ../Doc/library/urllib.parse.rst:412 msgid ":attr:`url`" msgstr ":attr:`url`" -#: ../Doc/library/urllib.parse.rst:387 +#: ../Doc/library/urllib.parse.rst:412 msgid "URL with no fragment" msgstr "URL sin fragmento" -#: ../Doc/library/urllib.parse.rst:392 +#: ../Doc/library/urllib.parse.rst:417 msgid "" "See section :ref:`urlparse-result-object` for more information on the result " "object." @@ -627,12 +647,12 @@ msgstr "" "Consulte la sección :ref:`urlparse-result-object` para obtener más " "información sobre el objeto de resultado." -#: ../Doc/library/urllib.parse.rst:395 +#: ../Doc/library/urllib.parse.rst:420 msgid "Result is a structured object rather than a simple 2-tuple." msgstr "" "El resultado es un objeto estructurado en lugar de una simple tupla de 2." -#: ../Doc/library/urllib.parse.rst:400 +#: ../Doc/library/urllib.parse.rst:425 msgid "" "Extract the url from a wrapped URL (that is, a string formatted as ````, ````, ``URL:scheme://host/path`` " @@ -644,11 +664,53 @@ msgstr "" "``URL:scheme://host/path`` or ``scheme://host/path``). Si *url* no es una " "URL envuelta, se retorna sin cambios." -#: ../Doc/library/urllib.parse.rst:408 +#: ../Doc/library/urllib.parse.rst:433 +#, fuzzy +msgid "URL parsing security" +msgstr "Análisis de URL" + +#: ../Doc/library/urllib.parse.rst:435 +msgid "" +"The :func:`urlsplit` and :func:`urlparse` APIs do not perform **validation** " +"of inputs. They may not raise errors on inputs that other applications " +"consider invalid. They may also succeed on some inputs that might not be " +"considered URLs elsewhere. Their purpose is for practical functionality " +"rather than purity." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:441 +msgid "" +"Instead of raising an exception on unusual input, they may instead return " +"some component parts as empty strings. Or components may contain more than " +"perhaps they should." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:445 +msgid "" +"We recommend that users of these APIs where the values may be used anywhere " +"with security implications code defensively. Do some verification within " +"your code before trusting a returned component part. Does that ``scheme`` " +"make sense? Is that a sensible ``path``? Is there anything strange about " +"that ``hostname``? etc." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:451 +msgid "" +"What constitutes a URL is not universally well defined. Different " +"applications have different needs and desired constraints. For instance the " +"living `WHATWG spec`_ describes what user facing web clients such as a web " +"browser require. While :rfc:`3986` is more general. These functions " +"incorporate some aspects of both, but cannot be claimed compliant with " +"either. The APIs and existing user code with expectations on specific " +"behaviors predate both standards leading us to be very cautious about making " +"API behavior changes." +msgstr "" + +#: ../Doc/library/urllib.parse.rst:462 msgid "Parsing ASCII Encoded Bytes" msgstr "Análisis de bytes codificados ASCII" -#: ../Doc/library/urllib.parse.rst:410 +#: ../Doc/library/urllib.parse.rst:464 msgid "" "The URL parsing functions were originally designed to operate on character " "strings only. In practice, it is useful to be able to manipulate properly " @@ -663,7 +725,7 @@ msgstr "" "funcionan en los objetos :class:`bytes` y :class:`bytearray`, además de los " "objetos :class:`str`." -#: ../Doc/library/urllib.parse.rst:416 +#: ../Doc/library/urllib.parse.rst:470 msgid "" "If :class:`str` data is passed in, the result will also contain only :class:" "`str` data. If :class:`bytes` or :class:`bytearray` data is passed in, the " @@ -673,7 +735,7 @@ msgstr "" "datos :class:`str`. Si se pasan datos :class:`bytes` o :class:`bytearray`, " "el resultado contendrá solo los datos :class:`bytes`." -#: ../Doc/library/urllib.parse.rst:420 +#: ../Doc/library/urllib.parse.rst:474 msgid "" "Attempting to mix :class:`str` data with :class:`bytes` or :class:" "`bytearray` in a single function call will result in a :exc:`TypeError` " @@ -685,7 +747,7 @@ msgstr "" "`TypeError`, mientras que al intentar pasar valores de bytes no ASCII se " "desencadenará :exc:`UnicodeDecodeError`." -#: ../Doc/library/urllib.parse.rst:425 +#: ../Doc/library/urllib.parse.rst:479 msgid "" "To support easier conversion of result objects between :class:`str` and :" "class:`bytes`, all return values from URL parsing functions provide either " @@ -708,7 +770,7 @@ msgstr "" "contiene datos :class:`bytes` (para los métodos :meth:`encode`) o :class:" "`str` (para :meth:`decode` métodos)." -#: ../Doc/library/urllib.parse.rst:436 +#: ../Doc/library/urllib.parse.rst:490 msgid "" "Applications that need to operate on potentially improperly quoted URLs that " "may contain non-ASCII data will need to do their own decoding from bytes to " @@ -719,7 +781,7 @@ msgstr "" "realizar su propia decodificación de bytes a caracteres antes de invocar los " "métodos de análisis de URL." -#: ../Doc/library/urllib.parse.rst:440 +#: ../Doc/library/urllib.parse.rst:494 msgid "" "The behaviour described in this section applies only to the URL parsing " "functions. The URL quoting functions use their own rules when producing or " @@ -731,17 +793,17 @@ msgstr "" "reglas al producir o consumir secuencias de bytes como se detalla en la " "documentación de las funciones de citación de URL individuales." -#: ../Doc/library/urllib.parse.rst:445 +#: ../Doc/library/urllib.parse.rst:499 msgid "URL parsing functions now accept ASCII encoded byte sequences" msgstr "" "Las funciones de análisis de URL ahora aceptan secuencias de bytes " "codificadas en ASCII" -#: ../Doc/library/urllib.parse.rst:452 +#: ../Doc/library/urllib.parse.rst:506 msgid "Structured Parse Results" msgstr "Resultados del análisis estructurado" -#: ../Doc/library/urllib.parse.rst:454 +#: ../Doc/library/urllib.parse.rst:508 msgid "" "The result objects from the :func:`urlparse`, :func:`urlsplit` and :func:" "`urldefrag` functions are subclasses of the :class:`tuple` type. These " @@ -755,7 +817,7 @@ msgstr "" "soporte de codificación y decodificación descrito en la sección anterior, " "así como un método adicional:" -#: ../Doc/library/urllib.parse.rst:462 +#: ../Doc/library/urllib.parse.rst:516 msgid "" "Return the re-combined version of the original URL as a string. This may " "differ from the original URL in that the scheme may be normalized to lower " @@ -768,7 +830,7 @@ msgstr "" "En concreto, se quitarán los parámetros vacíos, las consultas y los " "identificadores de fragmento." -#: ../Doc/library/urllib.parse.rst:467 +#: ../Doc/library/urllib.parse.rst:521 msgid "" "For :func:`urldefrag` results, only empty fragment identifiers will be " "removed. For :func:`urlsplit` and :func:`urlparse` results, all noted " @@ -779,7 +841,7 @@ msgstr "" "func:`urlparse`, todos los cambios observados se realizarán en la URL " "retornada por este método." -#: ../Doc/library/urllib.parse.rst:471 +#: ../Doc/library/urllib.parse.rst:525 msgid "" "The result of this method remains unchanged if passed back through the " "original parsing function:" @@ -787,7 +849,7 @@ msgstr "" "El resultado de este método permanece inalterado si se pasa de nuevo a " "través de la función de análisis original:" -#: ../Doc/library/urllib.parse.rst:484 +#: ../Doc/library/urllib.parse.rst:538 msgid "" "The following classes provide the implementations of the structured parse " "results when operating on :class:`str` objects:" @@ -795,7 +857,7 @@ msgstr "" "Las clases siguientes proporcionan las implementaciones de los resultados " "del análisis estructurado cuando se opera en objetos :class:`str`:" -#: ../Doc/library/urllib.parse.rst:489 +#: ../Doc/library/urllib.parse.rst:543 msgid "" "Concrete class for :func:`urldefrag` results containing :class:`str` data. " "The :meth:`encode` method returns a :class:`DefragResultBytes` instance." @@ -804,7 +866,7 @@ msgstr "" "class:`str`. El método :meth:`encode` retorna una instancia :class:" "`DefragResultBytes`." -#: ../Doc/library/urllib.parse.rst:497 +#: ../Doc/library/urllib.parse.rst:551 msgid "" "Concrete class for :func:`urlparse` results containing :class:`str` data. " "The :meth:`encode` method returns a :class:`ParseResultBytes` instance." @@ -813,7 +875,7 @@ msgstr "" "`str` data. El método :meth:`encode` retorna una instancia :class:" "`ParseResultBytes`." -#: ../Doc/library/urllib.parse.rst:503 +#: ../Doc/library/urllib.parse.rst:557 msgid "" "Concrete class for :func:`urlsplit` results containing :class:`str` data. " "The :meth:`encode` method returns a :class:`SplitResultBytes` instance." @@ -822,7 +884,7 @@ msgstr "" "`str` data. El método :meth:`encode` retorna una instancia :class:" "`SplitResultBytes`." -#: ../Doc/library/urllib.parse.rst:508 +#: ../Doc/library/urllib.parse.rst:562 msgid "" "The following classes provide the implementations of the parse results when " "operating on :class:`bytes` or :class:`bytearray` objects:" @@ -830,7 +892,7 @@ msgstr "" "Las clases siguientes proporcionan las implementaciones de los resultados " "del análisis cuando se opera en objetos :class:`bytes` o :class:`bytearray`:" -#: ../Doc/library/urllib.parse.rst:513 +#: ../Doc/library/urllib.parse.rst:567 msgid "" "Concrete class for :func:`urldefrag` results containing :class:`bytes` data. " "The :meth:`decode` method returns a :class:`DefragResult` instance." @@ -839,7 +901,7 @@ msgstr "" "class:`bytes`. El método :meth:`decode` retorna una instancia :class:" "`DefragResult`." -#: ../Doc/library/urllib.parse.rst:521 +#: ../Doc/library/urllib.parse.rst:575 msgid "" "Concrete class for :func:`urlparse` results containing :class:`bytes` data. " "The :meth:`decode` method returns a :class:`ParseResult` instance." @@ -848,7 +910,7 @@ msgstr "" "class:`bytes`. El método :meth:`decode` retorna una instancia :class:" "`ParseResult`." -#: ../Doc/library/urllib.parse.rst:529 +#: ../Doc/library/urllib.parse.rst:583 msgid "" "Concrete class for :func:`urlsplit` results containing :class:`bytes` data. " "The :meth:`decode` method returns a :class:`SplitResult` instance." @@ -857,11 +919,11 @@ msgstr "" "class:`bytes`. El método :meth:`decode` retorna una instancia :class:" "`SplitResult`." -#: ../Doc/library/urllib.parse.rst:537 +#: ../Doc/library/urllib.parse.rst:591 msgid "URL Quoting" msgstr "Cita de URL" -#: ../Doc/library/urllib.parse.rst:539 +#: ../Doc/library/urllib.parse.rst:593 msgid "" "The URL quoting functions focus on taking program data and making it safe " "for use as URL components by quoting special characters and appropriately " @@ -876,14 +938,14 @@ msgstr "" "partir del contenido de un componente de dirección URL si esa tarea aún no " "está cubierta por las funciones de análisis de URL anteriores." -#: ../Doc/library/urllib.parse.rst:547 -#, python-format +#: ../Doc/library/urllib.parse.rst:601 +#, fuzzy, python-format msgid "" -"Replace special characters in *string* using the ``%xx`` escape. Letters, " -"digits, and the characters ``'_.-~'`` are never quoted. By default, this " -"function is intended for quoting the path section of a URL. The optional " -"*safe* parameter specifies additional ASCII characters that should not be " -"quoted --- its default value is ``'/'``." +"Replace special characters in *string* using the :samp:`%{xx}` escape. " +"Letters, digits, and the characters ``'_.-~'`` are never quoted. By default, " +"this function is intended for quoting the path section of a URL. The " +"optional *safe* parameter specifies additional ASCII characters that should " +"not be quoted --- its default value is ``'/'``." msgstr "" "Reemplaza caracteres especiales en *string* con la secuencia de escape " "``%xx``. Las letras, los dígitos y los caracteres ``'_.-~'`` nunca se citan. " @@ -892,12 +954,12 @@ msgstr "" "caracteres ASCII adicionales que no se deben citar --- su valor " "predeterminado es ``'/'``." -#: ../Doc/library/urllib.parse.rst:553 ../Doc/library/urllib.parse.rst:599 -#: ../Doc/library/urllib.parse.rst:628 +#: ../Doc/library/urllib.parse.rst:607 ../Doc/library/urllib.parse.rst:653 +#: ../Doc/library/urllib.parse.rst:682 msgid "*string* may be either a :class:`str` or a :class:`bytes` object." msgstr "*string* puede ser un objeto :class:`str` o :class:`bytes`." -#: ../Doc/library/urllib.parse.rst:555 +#: ../Doc/library/urllib.parse.rst:609 msgid "" "Moved from :rfc:`2396` to :rfc:`3986` for quoting URL strings. \"~\" is now " "included in the set of unreserved characters." @@ -905,7 +967,7 @@ msgstr "" "Se ha movido de :rfc:`2396` a :rfc:`3986` para citar cadenas URL. Ahora se " "incluye \"~\" en el conjunto de caracteres reservados." -#: ../Doc/library/urllib.parse.rst:559 +#: ../Doc/library/urllib.parse.rst:613 msgid "" "The optional *encoding* and *errors* parameters specify how to deal with non-" "ASCII characters, as accepted by the :meth:`str.encode` method. *encoding* " @@ -922,7 +984,7 @@ msgstr "" "se deben proporcionar si *string* es :class:`bytes` o se genera :class:" "`TypeError`." -#: ../Doc/library/urllib.parse.rst:567 +#: ../Doc/library/urllib.parse.rst:621 msgid "" "Note that ``quote(string, safe, encoding, errors)`` is equivalent to " "``quote_from_bytes(string.encode(encoding, errors), safe)``." @@ -930,11 +992,11 @@ msgstr "" "Tenga en cuenta que ``quote(string, safe, encoding, errors)`` es equivalente " "a ``quote_from_bytes(string.encode(encoding, errors), safe)``." -#: ../Doc/library/urllib.parse.rst:570 +#: ../Doc/library/urllib.parse.rst:624 msgid "Example: ``quote('/El Niño/')`` yields ``'/El%20Ni%C3%B1o/'``." msgstr "Ejemplo: ``quote('/El Niño/')`` produce ``'/El%20Ni%C3%B1o/'``." -#: ../Doc/library/urllib.parse.rst:575 +#: ../Doc/library/urllib.parse.rst:629 msgid "" "Like :func:`quote`, but also replace spaces with plus signs, as required for " "quoting HTML form values when building up a query string to go into a URL. " @@ -947,12 +1009,12 @@ msgstr "" "caracteres original se escapan, a no ser que se incluyan en *safe*. Además " "el valor de *safe* no es `/` por defecto." -#: ../Doc/library/urllib.parse.rst:580 +#: ../Doc/library/urllib.parse.rst:634 #, python-format msgid "Example: ``quote_plus('/El Niño/')`` yields ``'%2FEl+Ni%C3%B1o%2F'``." msgstr "Ejemplo: ``quote_plus('/El Niño/')`` produce ``'%2FEl+Ni%C3%B1o%2F'``." -#: ../Doc/library/urllib.parse.rst:585 +#: ../Doc/library/urllib.parse.rst:639 msgid "" "Like :func:`quote`, but accepts a :class:`bytes` object rather than a :class:" "`str`, and does not perform string-to-bytes encoding." @@ -960,25 +1022,25 @@ msgstr "" "Como :func:`quote`, pero acepta un objeto :class:`bytes` en lugar de un :" "class:`str`, y no realiza la codificación de cadena a bytes." -#: ../Doc/library/urllib.parse.rst:588 +#: ../Doc/library/urllib.parse.rst:642 #, python-format msgid "Example: ``quote_from_bytes(b'a&\\xef')`` yields ``'a%26%EF'``." msgstr "Ejemplo: ``quote_from_bytes(b'a&\\xef')`` produce ``'a%26%EF'``." -#: ../Doc/library/urllib.parse.rst:594 -#, python-format +#: ../Doc/library/urllib.parse.rst:648 +#, fuzzy, python-format msgid "" -"Replace ``%xx`` escapes with their single-character equivalent. The optional " -"*encoding* and *errors* parameters specify how to decode percent-encoded " -"sequences into Unicode characters, as accepted by the :meth:`bytes.decode` " -"method." +"Replace :samp:`%{xx}` escapes with their single-character equivalent. The " +"optional *encoding* and *errors* parameters specify how to decode percent-" +"encoded sequences into Unicode characters, as accepted by the :meth:`bytes." +"decode` method." msgstr "" "Reemplaza secuencias de escape ``%xx`` con los caracteres individuales " "correspondientes. Los parámetros opcionales *encoding* y *errors* " "especifican cómo descodificar secuencias codificadas porcentualmente a " "caracteres Unicode, tal como lo acepta el método :meth:`bytes.decode`." -#: ../Doc/library/urllib.parse.rst:601 +#: ../Doc/library/urllib.parse.rst:655 msgid "" "*encoding* defaults to ``'utf-8'``. *errors* defaults to ``'replace'``, " "meaning invalid sequences are replaced by a placeholder character." @@ -987,18 +1049,18 @@ msgstr "" "``'replace``', lo que significa que las secuencias no válidas se reemplazan " "por un carácter de marcador de posición." -#: ../Doc/library/urllib.parse.rst:605 +#: ../Doc/library/urllib.parse.rst:659 msgid "Example: ``unquote('/El%20Ni%C3%B1o/')`` yields ``'/El Niño/'``." msgstr "Ejemplo: ``unquote('/El%20Ni%C3%B1o/')`` produce ``'/El Niño/'``." -#: ../Doc/library/urllib.parse.rst:607 +#: ../Doc/library/urllib.parse.rst:661 msgid "" "*string* parameter supports bytes and str objects (previously only str)." msgstr "" "El parámetro *string* admite bytes y cadenas de caracteres (anteriormente " "sólo cadenas de caracteres)." -#: ../Doc/library/urllib.parse.rst:615 +#: ../Doc/library/urllib.parse.rst:669 msgid "" "Like :func:`unquote`, but also replace plus signs with spaces, as required " "for unquoting HTML form values." @@ -1006,24 +1068,24 @@ msgstr "" "Como :func:`unquote`, pero también reemplaza los signos más por espacios, " "como es requerido al decodificar valores de formularios HTML." -#: ../Doc/library/urllib.parse.rst:618 +#: ../Doc/library/urllib.parse.rst:672 msgid "*string* must be a :class:`str`." msgstr "*string* debe ser :class:`str`." -#: ../Doc/library/urllib.parse.rst:620 +#: ../Doc/library/urllib.parse.rst:674 msgid "Example: ``unquote_plus('/El+Ni%C3%B1o/')`` yields ``'/El Niño/'``." msgstr "Ejemplo: ``unquote_plus('/El+Ni%C3%B1o/')`` produce ``'/El Niño/'``." -#: ../Doc/library/urllib.parse.rst:625 -#, python-format +#: ../Doc/library/urllib.parse.rst:679 +#, fuzzy, python-format msgid "" -"Replace ``%xx`` escapes with their single-octet equivalent, and return a :" -"class:`bytes` object." +"Replace :samp:`%{xx}` escapes with their single-octet equivalent, and return " +"a :class:`bytes` object." msgstr "" "Reemplaza los escapes ``%xx`` por sus equivalentes de un solo octeto y " "retorna un objeto :class:`bytes`." -#: ../Doc/library/urllib.parse.rst:630 +#: ../Doc/library/urllib.parse.rst:684 msgid "" "If it is a :class:`str`, unescaped non-ASCII characters in *string* are " "encoded into UTF-8 bytes." @@ -1031,12 +1093,12 @@ msgstr "" "Si es un :class:`str`, los caracteres no ASCII sin escapar en *string* se " "codifican en bytes UTF-8." -#: ../Doc/library/urllib.parse.rst:633 +#: ../Doc/library/urllib.parse.rst:687 #, python-format msgid "Example: ``unquote_to_bytes('a%26%EF')`` yields ``b'a&\\xef'``." msgstr "Ejemplo: ``unquote_to_bytes('a%26%EF')`` produce ``b'a&\\xef'``." -#: ../Doc/library/urllib.parse.rst:639 +#: ../Doc/library/urllib.parse.rst:693 msgid "" "Convert a mapping object or a sequence of two-element tuples, which may " "contain :class:`str` or :class:`bytes` objects, to a percent-encoded ASCII " @@ -1051,7 +1113,7 @@ msgstr "" "`URLlib.request.urlopen`, entonces debe codificarse en bytes, de lo " "contrario resultaría en un :exc:`TypeError`." -#: ../Doc/library/urllib.parse.rst:646 +#: ../Doc/library/urllib.parse.rst:700 #, python-format msgid "" "The resulting string is a series of ``key=value`` pairs separated by ``'&'`` " @@ -1075,7 +1137,7 @@ msgstr "" "caracteres '/'. Para obtener el máximo control de lo que se cita, utilice " "``quote`` y especifique un valor para *safe*." -#: ../Doc/library/urllib.parse.rst:656 +#: ../Doc/library/urllib.parse.rst:710 msgid "" "When a sequence of two-element tuples is used as the *query* argument, the " "first element of each tuple is a key and the second is a value. The value " @@ -1094,7 +1156,7 @@ msgstr "" "codificada coincidirá con el orden de las tuplas de parámetros de la " "secuencia." -#: ../Doc/library/urllib.parse.rst:664 +#: ../Doc/library/urllib.parse.rst:718 msgid "" "The *safe*, *encoding*, and *errors* parameters are passed down to " "*quote_via* (the *encoding* and *errors* parameters are only passed when a " @@ -1104,7 +1166,7 @@ msgstr "" "parámetros *encoding* y *errors* solo se pasan cuando un elemento de " "consulta es :class:`str`)." -#: ../Doc/library/urllib.parse.rst:668 +#: ../Doc/library/urllib.parse.rst:722 msgid "" "To reverse this encoding process, :func:`parse_qs` and :func:`parse_qsl` are " "provided in this module to parse query strings into Python data structures." @@ -1113,7 +1175,7 @@ msgstr "" "func:`parse_qs` y :func:`parse_qsl` para analizar cadenas de consulta en " "estructuras de datos de Python." -#: ../Doc/library/urllib.parse.rst:671 +#: ../Doc/library/urllib.parse.rst:725 msgid "" "Refer to :ref:`urllib examples ` to find out how the :func:" "`urllib.parse.urlencode` method can be used for generating the query string " @@ -1123,19 +1185,19 @@ msgstr "" "puede utilizar el método :func:`urllib.parse.urlencode` para generar una " "cadena de consulta para una dirección URL o datos para POST." -#: ../Doc/library/urllib.parse.rst:675 +#: ../Doc/library/urllib.parse.rst:729 msgid "*query* supports bytes and string objects." msgstr "El parámetro *query* admite bytes y objetos de cadena." -#: ../Doc/library/urllib.parse.rst:678 +#: ../Doc/library/urllib.parse.rst:732 msgid "*quote_via* parameter." msgstr "*quote_via*." -#: ../Doc/library/urllib.parse.rst:686 +#: ../Doc/library/urllib.parse.rst:740 msgid "`WHATWG`_ - URL Living standard" msgstr "`WHATWG`_ - URL estándar actual" -#: ../Doc/library/urllib.parse.rst:685 +#: ../Doc/library/urllib.parse.rst:739 msgid "" "Working Group for the URL Standard that defines URLs, domains, IP addresses, " "the application/x-www-form-urlencoded format, and their API." @@ -1143,11 +1205,11 @@ msgstr "" "Grupo de trabajo para el estándar URL que define URLs, dominio, dirección " "IP, formato *application/x-www-form-urlencoded* y su API." -#: ../Doc/library/urllib.parse.rst:692 +#: ../Doc/library/urllib.parse.rst:746 msgid ":rfc:`3986` - Uniform Resource Identifiers" msgstr ":rfc:`3986` - Identificadores uniformes de recursos" -#: ../Doc/library/urllib.parse.rst:689 +#: ../Doc/library/urllib.parse.rst:743 msgid "" "This is the current standard (STD66). Any changes to urllib.parse module " "should conform to this. Certain deviations could be observed, which are " @@ -1160,21 +1222,21 @@ msgstr "" "para ciertos requisitos de análisis de facto como se observa comúnmente en " "los principales navegadores." -#: ../Doc/library/urllib.parse.rst:695 +#: ../Doc/library/urllib.parse.rst:749 msgid ":rfc:`2732` - Format for Literal IPv6 Addresses in URL's." msgstr ":rfc:`2732` - Formato de direcciones IPv6 literales en URL." -#: ../Doc/library/urllib.parse.rst:695 +#: ../Doc/library/urllib.parse.rst:749 msgid "This specifies the parsing requirements of IPv6 URLs." msgstr "" "Esto especifica los requisitos de análisis de las direcciones URL IPv6." -#: ../Doc/library/urllib.parse.rst:699 +#: ../Doc/library/urllib.parse.rst:753 msgid ":rfc:`2396` - Uniform Resource Identifiers (URI): Generic Syntax" msgstr "" ":rfc:`2396` - Identificadores uniformes de recursos (URI): Sintaxis genérica" -#: ../Doc/library/urllib.parse.rst:698 +#: ../Doc/library/urllib.parse.rst:752 msgid "" "Document describing the generic syntactic requirements for both Uniform " "Resource Names (URNs) and Uniform Resource Locators (URLs)." @@ -1182,19 +1244,19 @@ msgstr "" "Documento que describe los requisitos sintácticos genéricos para los nombres " "de recursos uniformes (URL) y los localizadores uniformes de recursos (URL)." -#: ../Doc/library/urllib.parse.rst:702 +#: ../Doc/library/urllib.parse.rst:756 msgid ":rfc:`2368` - The mailto URL scheme." msgstr ":rfc:`2368` - El esquema mailto URL." -#: ../Doc/library/urllib.parse.rst:702 +#: ../Doc/library/urllib.parse.rst:756 msgid "Parsing requirements for mailto URL schemes." msgstr "Análisis de requisitos para esquemas de URL de correo a correo." -#: ../Doc/library/urllib.parse.rst:707 +#: ../Doc/library/urllib.parse.rst:761 msgid ":rfc:`1808` - Relative Uniform Resource Locators" msgstr ":rfc:`1808` - Localizadores uniformes de recursos relativos" -#: ../Doc/library/urllib.parse.rst:705 +#: ../Doc/library/urllib.parse.rst:759 msgid "" "This Request For Comments includes the rules for joining an absolute and a " "relative URL, including a fair number of \"Abnormal Examples\" which govern " @@ -1204,12 +1266,33 @@ msgstr "" "absoluta y relativa, incluyendo un buen número de \"Ejemplos anormales\" que " "rigen el tratamiento de los casos fronterizos." -#: ../Doc/library/urllib.parse.rst:709 +#: ../Doc/library/urllib.parse.rst:763 msgid ":rfc:`1738` - Uniform Resource Locators (URL)" msgstr ":rfc:`1738` - Localizadores uniformes de recursos (URL)" -#: ../Doc/library/urllib.parse.rst:710 +#: ../Doc/library/urllib.parse.rst:764 msgid "This specifies the formal syntax and semantics of absolute URLs." msgstr "" "Esto especifica la sintaxis formal y la semántica de las direcciones URL " "absolutas." + +#: ../Doc/library/urllib.parse.rst:9 +msgid "WWW" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:9 +msgid "World Wide Web" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:9 +msgid "URL" +msgstr "" + +#: ../Doc/library/urllib.parse.rst:9 +#, fuzzy +msgid "parsing" +msgstr "Análisis de URL" + +#: ../Doc/library/urllib.parse.rst:9 +msgid "relative" +msgstr "" diff --git a/library/urllib.request.po b/library/urllib.request.po index 20b6811b66..18208a1d4e 100644 --- a/library/urllib.request.po +++ b/library/urllib.request.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-02-19 10:39-0500\n" "Last-Translator: Rodrigo Tobar \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/urllib.request.rst:2 msgid ":mod:`urllib.request` --- Extensible library for opening URLs" @@ -48,11 +47,12 @@ msgstr "" "Se recomienda el `paquete Requests `_ para una interfaz de cliente HTTP de mayor nivel." +#: ../Doc/includes/wasm-notavail.rst:3 #, fuzzy msgid ":ref:`Availability `: not Emscripten, not WASI." msgstr ":ref:`Disponibilidad `: no Emscripten, no WASI." -#: ../Doc/library/cpython/Doc/includes/wasm-notavail.rst:5 +#: ../Doc/includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly platforms " "``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for " @@ -67,9 +67,10 @@ msgid "The :mod:`urllib.request` module defines the following functions:" msgstr "El módulo :mod:`urllib.request` define las siguientes funciones:" #: ../Doc/library/urllib.request.rst:31 +#, fuzzy msgid "" -"Open the URL *url*, which can be either a string or a :class:`Request` " -"object." +"Open *url*, which can be either a string containing a valid, properly " +"encoded URL, or a :class:`Request` object." msgstr "" "Abre la URL *url*, la cual puede ser una cadena de caracteres o un objeto :" "class:`Request`." @@ -236,8 +237,9 @@ msgid "*cafile* and *capath* were added." msgstr "*cafile* y *capath* fueron añadidos." #: ../Doc/library/urllib.request.rst:100 +#, fuzzy msgid "" -"HTTPS virtual hosts are now supported if possible (that is, if :data:`ssl." +"HTTPS virtual hosts are now supported if possible (that is, if :const:`ssl." "HAS_SNI` is true)." msgstr "" "Los hosts virtuales HTTPS ahora están soportados si es posible (esto es, si :" @@ -399,7 +401,8 @@ msgid "This class is an abstraction of a URL request." msgstr "Esta clase es un abstracción de una petición URL." #: ../Doc/library/urllib.request.rst:195 -msgid "*url* should be a string containing a valid URL." +#, fuzzy +msgid "*url* should be a string containing a valid, properly encoded URL." msgstr "*url* debe ser una cadena de caracteres conteniendo una URL válida." #: ../Doc/library/urllib.request.rst:197 @@ -2522,3 +2525,22 @@ msgstr "Obsoleto en favor de :attr:`~addinfourl.headers`." #: ../Doc/library/urllib.request.rst:1635 msgid "Deprecated in favor of :attr:`~addinfourl.status`." msgstr "Obsoleto en favor de :attr:`~addinfourl.status`." + +#: ../Doc/library/urllib.request.rst:1539 +#: ../Doc/library/urllib.request.rst:1562 +msgid "HTTP" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1539 +#: ../Doc/library/urllib.request.rst:1562 +msgid "protocol" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1539 +#: ../Doc/library/urllib.request.rst:1573 +msgid "FTP" +msgstr "" + +#: ../Doc/library/urllib.request.rst:1562 +msgid "HTML" +msgstr "" diff --git a/library/urllib.robotparser.po b/library/urllib.robotparser.po index 1517b8c287..2189658d34 100644 --- a/library/urllib.robotparser.po +++ b/library/urllib.robotparser.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-16 21:42+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-01-08 15:24-0600\n" "Last-Translator: \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" -"Generated-By: Babel 2.9.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/urllib.robotparser.rst:2 msgid ":mod:`urllib.robotparser` --- Parser for robots.txt" @@ -130,3 +130,19 @@ msgid "" msgstr "" "El siguiente ejemplo demuestra el uso básico de la clase :class:" "`RobotFileParser`:" + +#: ../Doc/library/urllib.robotparser.rst:12 +msgid "WWW" +msgstr "" + +#: ../Doc/library/urllib.robotparser.rst:12 +msgid "World Wide Web" +msgstr "" + +#: ../Doc/library/urllib.robotparser.rst:12 +msgid "URL" +msgstr "" + +#: ../Doc/library/urllib.robotparser.rst:12 +msgid "robots.txt" +msgstr "" diff --git a/library/uu.po b/library/uu.po index e0f13dac42..2bfd19cbe9 100644 --- a/library/uu.po +++ b/library/uu.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-31 09:39+0100\n" "Last-Translator: Federico Zuccolo \n" "Language: es\n" @@ -19,8 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 2.3\n" +"Generated-By: Babel 2.13.0\n" # La codificación 'uuencode' figura como 'UUEncode' en la Wikipedia en # español. @@ -32,7 +31,9 @@ msgstr ":mod:`uu` --- Codifica y decodifica archivos UUEncode" msgid "**Source code:** :source:`Lib/uu.py`" msgstr "**Código fuente:** :source:`Lib/uu.py`" -# Con check spell, localmente recibo un error ":1: (ERROR/3) PEP number must be a number from 0 to 9999; "PEP 594 <0594#uu-and-the-uu-encoding>" is invalid. while parsing: ". +# Con check spell, localmente recibo un error ":1: (ERROR/3) PEP +# number must be a number from 0 to 9999; "PEP 594 +# <0594#uu-and-the-uu-encoding>" is invalid. while parsing: ". # No entiendo mucho de dónde puede venir. #: ../Doc/library/uu.rst:16 msgid "" @@ -140,3 +141,11 @@ msgid "" msgstr "" "Módulo de soporte que contiene conversiones de ASCII a binario y de binario " "a ASCII." + +#: ../Doc/library/uu.rst:28 +msgid "Jansen, Jack" +msgstr "" + +#: ../Doc/library/uu.rst:28 +msgid "Ellinghouse, Lance" +msgstr "" diff --git a/library/uuid.po b/library/uuid.po index 6776a21793..81c1e300a5 100644 --- a/library/uuid.po +++ b/library/uuid.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-04 22:03+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/uuid.rst:2 msgid ":mod:`uuid` --- UUID objects according to :rfc:`4122`" @@ -54,12 +54,14 @@ msgstr "" "dirección de red del ordenador. :func:`uuid4` crea un UUID aleatorio." #: ../Doc/library/uuid.rst:22 +#, fuzzy msgid "" "Depending on support from the underlying platform, :func:`uuid1` may or may " "not return a \"safe\" UUID. A safe UUID is one which is generated using " "synchronization methods that ensure no two processes can obtain the same " -"UUID. All instances of :class:`UUID` have an :attr:`is_safe` attribute " -"which relays any information about the UUID's safety, using this enumeration:" +"UUID. All instances of :class:`UUID` have an :attr:`~UUID.is_safe` " +"attribute which relays any information about the UUID's safety, using this " +"enumeration:" msgstr "" "Dependiendo del soporte de la plataforma subyacente, :func:`uuid1` puede o " "no retornar un UUID \"seguro\". Un UUID seguro es aquel que se genera " @@ -171,84 +173,58 @@ msgstr "" "Una tupla de los seis campos enteros de la UUID, que también están " "disponibles como seis atributos individuales y dos atributos derivados:" -#: ../Doc/library/uuid.rst:99 +#: ../Doc/library/uuid.rst:100 msgid "Field" msgstr "Campo" -#: ../Doc/library/uuid.rst:99 +#: ../Doc/library/uuid.rst:101 msgid "Meaning" msgstr "Significado" -#: ../Doc/library/uuid.rst:101 -msgid ":attr:`time_low`" -msgstr ":attr:`time_low`" - -#: ../Doc/library/uuid.rst:101 -msgid "the first 32 bits of the UUID" +#: ../Doc/library/uuid.rst:104 +#, fuzzy +msgid "The first 32 bits of the UUID." msgstr "los primeros 32 bits del UUID" -#: ../Doc/library/uuid.rst:103 -msgid ":attr:`time_mid`" -msgstr ":attr:`time_mid`" - -#: ../Doc/library/uuid.rst:103 ../Doc/library/uuid.rst:105 -msgid "the next 16 bits of the UUID" +#: ../Doc/library/uuid.rst:107 ../Doc/library/uuid.rst:110 +#, fuzzy +msgid "The next 16 bits of the UUID." msgstr "los siguientes 16 bits del UUID" -#: ../Doc/library/uuid.rst:105 -msgid ":attr:`time_hi_version`" -msgstr ":attr:`time_hi_version`" - -#: ../Doc/library/uuid.rst:107 -msgid ":attr:`clock_seq_hi_variant`" -msgstr ":attr:`clock_seq_hi_variant`" - -#: ../Doc/library/uuid.rst:107 ../Doc/library/uuid.rst:109 -msgid "the next 8 bits of the UUID" +#: ../Doc/library/uuid.rst:113 ../Doc/library/uuid.rst:116 +#, fuzzy +msgid "The next 8 bits of the UUID." msgstr "los siguientes 8 bits del UUID" -#: ../Doc/library/uuid.rst:109 -msgid ":attr:`clock_seq_low`" -msgstr ":attr:`clock_seq_low`" - -#: ../Doc/library/uuid.rst:111 -msgid ":attr:`node`" -msgstr ":attr:`node`" - -#: ../Doc/library/uuid.rst:111 -msgid "the last 48 bits of the UUID" +#: ../Doc/library/uuid.rst:119 +#, fuzzy +msgid "The last 48 bits of the UUID." msgstr "los siguientes 48 bits del UUID" -#: ../Doc/library/uuid.rst:113 -msgid ":attr:`time`" -msgstr ":attr:`time`" - -#: ../Doc/library/uuid.rst:113 -msgid "the 60-bit timestamp" +#: ../Doc/library/uuid.rst:122 +#, fuzzy +msgid "The 60-bit timestamp." msgstr "el timestamp de 60-bit" -#: ../Doc/library/uuid.rst:115 -msgid ":attr:`clock_seq`" -msgstr ":attr:`clock_seq`" - -#: ../Doc/library/uuid.rst:115 -msgid "the 14-bit sequence number" +#: ../Doc/library/uuid.rst:125 +#, fuzzy +msgid "The 14-bit sequence number." msgstr "el número de secuencia de 14-bit" -#: ../Doc/library/uuid.rst:121 +#: ../Doc/library/uuid.rst:130 #, fuzzy msgid "The UUID as a 32-character lowercase hexadecimal string." msgstr "El UUID como una cadena hexadecimal de 32 caracteres." -#: ../Doc/library/uuid.rst:126 +#: ../Doc/library/uuid.rst:135 msgid "The UUID as a 128-bit integer." msgstr "El UUID como un entero de 128 bits." -#: ../Doc/library/uuid.rst:131 +#: ../Doc/library/uuid.rst:140 msgid "The UUID as a URN as specified in :rfc:`4122`." msgstr "El UUID como URN como se especifica en :rfc:`4122`." -#: ../Doc/library/uuid.rst:136 +#: ../Doc/library/uuid.rst:145 msgid "" "The UUID variant, which determines the internal layout of the UUID. This " "will be one of the constants :const:`RESERVED_NCS`, :const:`RFC_4122`, :" @@ -258,7 +234,7 @@ msgstr "" "una de las constantes :const:`RESERVED_NCS`, :const:`RFC_4122`, :const:" "`RESERVED_MICROSOFT`, o :const:`RESERVED_FUTURE`." -#: ../Doc/library/uuid.rst:143 +#: ../Doc/library/uuid.rst:152 msgid "" "The UUID version number (1 through 5, meaningful only when the variant is :" "const:`RFC_4122`)." @@ -266,7 +242,7 @@ msgstr "" "El número de versión UUID (del 1 al 5, significativo sólo cuando la variante " "es :const:`RFC_4122`)." -#: ../Doc/library/uuid.rst:148 +#: ../Doc/library/uuid.rst:157 msgid "" "An enumeration of :class:`SafeUUID` which indicates whether the platform " "generated the UUID in a multiprocessing-safe way." @@ -274,11 +250,11 @@ msgstr "" "Una enumeración de :class:`SafeUUID` que indica si la plataforma generó el " "UUID de forma segura para el multiprocesamiento." -#: ../Doc/library/uuid.rst:153 +#: ../Doc/library/uuid.rst:162 msgid "The :mod:`uuid` module defines the following functions:" msgstr "El módulo :mod:`uuid` define las siguientes funciones:" -#: ../Doc/library/uuid.rst:158 +#: ../Doc/library/uuid.rst:167 msgid "" "Get the hardware address as a 48-bit positive integer. The first time this " "runs, it may launch a separate program, which could be quite slow. If all " @@ -301,7 +277,7 @@ msgstr "" "bit menos significativo del primer octeto es *unset*) se preferirán a las " "direcciones MAC administradas localmente, pero sin otras garantías de orden." -#: ../Doc/library/uuid.rst:168 +#: ../Doc/library/uuid.rst:177 msgid "" "Universally administered MAC addresses are preferred over locally " "administered MAC addresses, since the former are guaranteed to be globally " @@ -311,7 +287,7 @@ msgstr "" "administradas localmente, ya que se garantiza que las primeras son únicas a " "nivel mundial, mientras que las segundas no lo son." -#: ../Doc/library/uuid.rst:178 +#: ../Doc/library/uuid.rst:187 msgid "" "Generate a UUID from a host ID, sequence number, and the current time. If " "*node* is not given, :func:`getnode` is used to obtain the hardware address. " @@ -323,29 +299,33 @@ msgstr "" "del hardware. Si se da *clock_seq*, se utiliza como número de secuencia; de " "lo contrario se elige un número de secuencia aleatorio de 14 bits." -#: ../Doc/library/uuid.rst:188 +#: ../Doc/library/uuid.rst:197 +#, fuzzy msgid "" "Generate a UUID based on the MD5 hash of a namespace identifier (which is a " -"UUID) and a name (which is a string)." +"UUID) and a name (which is a :class:`bytes` object or a string that will be " +"encoded using UTF-8)." msgstr "" "Genera un UUID basado en el hash MD5 de un identificador de espacio de " "nombres (que es un UUID) y un nombre (que es una cadena)." -#: ../Doc/library/uuid.rst:196 +#: ../Doc/library/uuid.rst:206 msgid "Generate a random UUID." msgstr "Genera un UUID aleatorio." -#: ../Doc/library/uuid.rst:203 +#: ../Doc/library/uuid.rst:213 +#, fuzzy msgid "" "Generate a UUID based on the SHA-1 hash of a namespace identifier (which is " -"a UUID) and a name (which is a string)." +"a UUID) and a name (which is a :class:`bytes` object or a string that will " +"be encoded using UTF-8)." msgstr "" "Genera un UUID basado en el hash SHA-1 de un identificador de espacio de " "nombres (que es un UUID) y un nombre (que es una cadena).Generar un UUID " "basado en el hash SHA-1 de un identificador de espacio de nombres (que es un " "UUID) y un nombre (que es una cadena)." -#: ../Doc/library/uuid.rst:208 +#: ../Doc/library/uuid.rst:219 msgid "" "The :mod:`uuid` module defines the following namespace identifiers for use " "with :func:`uuid3` or :func:`uuid5`." @@ -353,7 +333,7 @@ msgstr "" "El módulo :mod:`uuuid` define los siguientes identificadores de espacios de " "nombres para su uso con :func:`uuid3` o :func:`uuuid5`." -#: ../Doc/library/uuid.rst:214 +#: ../Doc/library/uuid.rst:225 #, fuzzy msgid "" "When this namespace is specified, the *name* string is a fully qualified " @@ -362,17 +342,17 @@ msgstr "" "Cuando se especifica este espacio de nombres, la cadena *name* es un nombre " "de dominio completamente calificado." -#: ../Doc/library/uuid.rst:220 +#: ../Doc/library/uuid.rst:231 msgid "When this namespace is specified, the *name* string is a URL." msgstr "" "Cuando se especifica este espacio de nombres, la cadena *name* es una URL." -#: ../Doc/library/uuid.rst:225 +#: ../Doc/library/uuid.rst:236 msgid "When this namespace is specified, the *name* string is an ISO OID." msgstr "" "Cuando se especifica este espacio de nombres, la cadena *name* es un OID ISO." -#: ../Doc/library/uuid.rst:230 +#: ../Doc/library/uuid.rst:241 msgid "" "When this namespace is specified, the *name* string is an X.500 DN in DER or " "a text output format." @@ -380,37 +360,38 @@ msgstr "" "Cuando se especifica este espacio de nombres, la cadena *name* es un X.500 " "DN en DER o un formato de salida de texto." -#: ../Doc/library/uuid.rst:233 +#: ../Doc/library/uuid.rst:244 +#, fuzzy msgid "" "The :mod:`uuid` module defines the following constants for the possible " -"values of the :attr:`variant` attribute:" +"values of the :attr:`~UUID.variant` attribute:" msgstr "" "El módulo :mod:`uuid` define las siguientes constantes para los posibles " "valores del atributo :attr:`variant`:" -#: ../Doc/library/uuid.rst:239 +#: ../Doc/library/uuid.rst:250 msgid "Reserved for NCS compatibility." msgstr "Reservado para la compatibilidad con NCS." -#: ../Doc/library/uuid.rst:244 +#: ../Doc/library/uuid.rst:255 msgid "Specifies the UUID layout given in :rfc:`4122`." msgstr "Especifica el diseño del UUID dado en :rfc:`4122`." -#: ../Doc/library/uuid.rst:249 +#: ../Doc/library/uuid.rst:260 msgid "Reserved for Microsoft compatibility." msgstr "Reservado para la compatibilidad con Microsoft." -#: ../Doc/library/uuid.rst:254 +#: ../Doc/library/uuid.rst:265 msgid "Reserved for future definition." msgstr "Reservado para una futura definición." -#: ../Doc/library/uuid.rst:260 +#: ../Doc/library/uuid.rst:271 msgid ":rfc:`4122` - A Universally Unique IDentifier (UUID) URN Namespace" msgstr "" ":rfc:`4122` - Un espacio de nombres URN de identificador único universal " "(UUID)" -#: ../Doc/library/uuid.rst:260 +#: ../Doc/library/uuid.rst:271 msgid "" "This specification defines a Uniform Resource Name namespace for UUIDs, the " "internal format of UUIDs, and methods of generating UUIDs." @@ -419,10 +400,102 @@ msgstr "" "los UUID, el formato interno de los UUID y los métodos de generación de los " "UUID." -#: ../Doc/library/uuid.rst:267 +#: ../Doc/library/uuid.rst:278 +msgid "Command-Line Usage" +msgstr "" + +#: ../Doc/library/uuid.rst:282 +msgid "" +"The :mod:`uuid` module can be executed as a script from the command line." +msgstr "" + +#: ../Doc/library/uuid.rst:288 +msgid "The following options are accepted:" +msgstr "" + +#: ../Doc/library/uuid.rst:294 +msgid "Show the help message and exit." +msgstr "" + +#: ../Doc/library/uuid.rst:299 +msgid "" +"Specify the function name to use to generate the uuid. By default :func:" +"`uuid4` is used." +msgstr "" + +#: ../Doc/library/uuid.rst:305 +msgid "" +"The namespace is a ``UUID``, or ``@ns`` where ``ns`` is a well-known " +"predefined UUID addressed by namespace name. Such as ``@dns``, ``@url``, " +"``@oid``, and ``@x500``. Only required for :func:`uuid3` / :func:`uuid5` " +"functions." +msgstr "" + +#: ../Doc/library/uuid.rst:312 +msgid "" +"The name used as part of generating the uuid. Only required for :func:" +"`uuid3` / :func:`uuid5` functions." +msgstr "" + +#: ../Doc/library/uuid.rst:319 msgid "Example" msgstr "Ejemplo" -#: ../Doc/library/uuid.rst:269 +#: ../Doc/library/uuid.rst:321 msgid "Here are some examples of typical usage of the :mod:`uuid` module::" msgstr "Aquí hay algunos ejemplos del uso típico del modulo :mod:`uuid`::" + +#: ../Doc/library/uuid.rst:360 +msgid "Command-Line Example" +msgstr "" + +#: ../Doc/library/uuid.rst:362 +#, fuzzy +msgid "" +"Here are some examples of typical usage of the :mod:`uuid` command line " +"interface:" +msgstr "Aquí hay algunos ejemplos del uso típico del modulo :mod:`uuid`::" + +#: ../Doc/library/uuid.rst:182 +msgid "getnode" +msgstr "" + +#: ../Doc/library/uuid.rst:192 +msgid "uuid1" +msgstr "" + +#: ../Doc/library/uuid.rst:201 +msgid "uuid3" +msgstr "" + +#: ../Doc/library/uuid.rst:208 +msgid "uuid4" +msgstr "" + +#: ../Doc/library/uuid.rst:217 +msgid "uuid5" +msgstr "" + +#~ msgid ":attr:`time_low`" +#~ msgstr ":attr:`time_low`" + +#~ msgid ":attr:`time_mid`" +#~ msgstr ":attr:`time_mid`" + +#~ msgid ":attr:`time_hi_version`" +#~ msgstr ":attr:`time_hi_version`" + +#~ msgid ":attr:`clock_seq_hi_variant`" +#~ msgstr ":attr:`clock_seq_hi_variant`" + +#~ msgid ":attr:`clock_seq_low`" +#~ msgstr ":attr:`clock_seq_low`" + +#~ msgid ":attr:`node`" +#~ msgstr ":attr:`node`" + +#~ msgid ":attr:`time`" +#~ msgstr ":attr:`time`" + +#~ msgid ":attr:`clock_seq`" +#~ msgstr ":attr:`clock_seq`" diff --git a/library/venv.po b/library/venv.po index 0c56c8c90b..fecf9abfce 100755 --- a/library/venv.po +++ b/library/venv.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-29 17:21-0500\n" "Last-Translator: José Luis Salgado Banda\n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/venv.rst:2 msgid ":mod:`venv` --- Creation of virtual environments" @@ -59,11 +58,46 @@ msgstr "" "sin necesidad de que se les diga explícitamente que lo hagan." #: ../Doc/library/venv.rst:33 +msgid "A virtual environment is (amongst other things):" +msgstr "" + +#: ../Doc/library/venv.rst:35 +msgid "" +"Used to contain a specific Python interpreter and software libraries and " +"binaries which are needed to support a project (library or application). " +"These are by default isolated from software in other virtual environments " +"and Python interpreters and libraries installed in the operating system." +msgstr "" + +#: ../Doc/library/venv.rst:40 +msgid "" +"Contained in a directory, conventionally either named ``venv`` or ``.venv`` " +"in the project directory, or under a container directory for lots of virtual " +"environments, such as ``~/.virtualenvs``." +msgstr "" + +#: ../Doc/library/venv.rst:44 +msgid "Not checked into source control systems such as Git." +msgstr "" + +#: ../Doc/library/venv.rst:46 +msgid "" +"Considered as disposable -- it should be simple to delete and recreate it " +"from scratch. You don't place any project code in the environment" +msgstr "" + +#: ../Doc/library/venv.rst:49 +msgid "" +"Not considered as movable or copyable -- you just recreate the same " +"environment in the target location." +msgstr "" + +#: ../Doc/library/venv.rst:52 msgid "See :pep:`405` for more background on Python virtual environments." msgstr "" "Ver :pep:`405` para más información sobre los entornos virtuales de Python." -#: ../Doc/library/venv.rst:37 +#: ../Doc/library/venv.rst:56 msgid "" "`Python Packaging User Guide: Creating and using virtual environments " "`__" +#: ../Doc/includes/wasm-notavail.rst:3 #, fuzzy msgid ":ref:`Availability `: not Emscripten, not WASI." msgstr ":ref:`Disponibilidad `: no Emscripten, no WASI." -#: ../Doc/library/cpython/Doc/includes/wasm-notavail.rst:5 +#: ../Doc/includes/wasm-notavail.rst:5 #, fuzzy msgid "" "This module does not work or is not available on WebAssembly platforms " @@ -88,21 +123,137 @@ msgstr "" "``wasm32-emscripten`` y ``wasm32-wasi``. Ver :ref:`wasm-availability` para " "más información." -#: ../Doc/library/venv.rst:43 +#: ../Doc/library/venv.rst:62 msgid "Creating virtual environments" msgstr "Creación de entornos virtuales" -#: ../Doc/library/venv.rst:50 +#: ../Doc/using/venv-create.inc:1 +msgid "" +"Creation of :ref:`virtual environments ` is done by executing the " +"command ``venv``::" +msgstr "" + +#: ../Doc/using/venv-create.inc:6 +msgid "" +"Running this command creates the target directory (creating any parent " +"directories that don't exist already) and places a ``pyvenv.cfg`` file in it " +"with a ``home`` key pointing to the Python installation from which the " +"command was run (a common name for the target directory is ``.venv``). It " +"also creates a ``bin`` (or ``Scripts`` on Windows) subdirectory containing a " +"copy/symlink of the Python binary/binaries (as appropriate for the platform " +"or arguments used at environment creation time). It also creates an " +"(initially empty) ``lib/pythonX.Y/site-packages`` subdirectory (on Windows, " +"this is ``Lib\\site-packages``). If an existing directory is specified, it " +"will be re-used." +msgstr "" + +#: ../Doc/using/venv-create.inc:17 +msgid "" +"``pyvenv`` was the recommended tool for creating virtual environments for " +"Python 3.3 and 3.4, and is :ref:`deprecated in Python 3.6 `." +msgstr "" + +#: ../Doc/using/venv-create.inc:22 +#, fuzzy +msgid "" +"The use of ``venv`` is now recommended for creating virtual environments." +msgstr ":mod:`venv` --- Creación de entornos virtuales" + +#: ../Doc/using/venv-create.inc:27 +msgid "On Windows, invoke the ``venv`` command as follows::" +msgstr "" + +#: ../Doc/using/venv-create.inc:31 +msgid "" +"Alternatively, if you configured the ``PATH`` and ``PATHEXT`` variables for " +"your :ref:`Python installation `::" +msgstr "" + +#: ../Doc/using/venv-create.inc:36 +msgid "The command, if run with ``-h``, will show the available options::" +msgstr "" + +#: ../Doc/library/venv.rst:313 ../Doc/using/venv-create.inc:72 +msgid "``setuptools`` is no longer a core venv dependency." +msgstr "" + +#: ../Doc/using/venv-create.inc:74 +#, fuzzy +msgid "" +"Add ``--upgrade-deps`` option to upgrade pip + setuptools to the latest on " +"PyPI" +msgstr "" +"``upgrade_deps`` -- actualiza los módulos venv base a lo último en PyPI" + +#: ../Doc/using/venv-create.inc:77 +msgid "" +"Installs pip by default, added the ``--without-pip`` and ``--copies`` " +"options" +msgstr "" + +#: ../Doc/using/venv-create.inc:81 +msgid "" +"In earlier versions, if the target directory already existed, an error was " +"raised, unless the ``--clear`` or ``--upgrade`` option was provided." +msgstr "" + +#: ../Doc/using/venv-create.inc:86 +msgid "" +"While symlinks are supported on Windows, they are not recommended. Of " +"particular note is that double-clicking ``python.exe`` in File Explorer will " +"resolve the symlink eagerly and ignore the virtual environment." +msgstr "" + +#: ../Doc/using/venv-create.inc:91 +msgid "" +"On Microsoft Windows, it may be required to enable the ``Activate.ps1`` " +"script by setting the execution policy for the user. You can do this by " +"issuing the following PowerShell command:" +msgstr "" + +#: ../Doc/using/venv-create.inc:95 +msgid "" +"PS C:\\> Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser" +msgstr "" + +#: ../Doc/using/venv-create.inc:97 +msgid "" +"See `About Execution Policies `_ for more information." +msgstr "" + +#: ../Doc/using/venv-create.inc:101 +msgid "" +"The created ``pyvenv.cfg`` file also includes the ``include-system-site-" +"packages`` key, set to ``true`` if ``venv`` is run with the ``--system-site-" +"packages`` option, ``false`` otherwise." +msgstr "" + +#: ../Doc/using/venv-create.inc:105 +msgid "" +"Unless the ``--without-pip`` option is given, :mod:`ensurepip` will be " +"invoked to bootstrap ``pip`` into the virtual environment." +msgstr "" + +#: ../Doc/using/venv-create.inc:108 +msgid "" +"Multiple paths can be given to ``venv``, in which case an identical virtual " +"environment will be created, according to the given options, at each " +"provided path." +msgstr "" + +#: ../Doc/library/venv.rst:69 msgid "How venvs work" msgstr "Cómo funcionan los venvs" -#: ../Doc/library/venv.rst:52 +#: ../Doc/library/venv.rst:71 +#, fuzzy msgid "" "When a Python interpreter is running from a virtual environment, :data:`sys." "prefix` and :data:`sys.exec_prefix` point to the directories of the virtual " "environment, whereas :data:`sys.base_prefix` and :data:`sys." "base_exec_prefix` point to those of the base Python used to create the " -"environment. It is sufficient to check ``sys.prefix == sys.base_prefix`` to " +"environment. It is sufficient to check ``sys.prefix != sys.base_prefix`` to " "determine if the current interpreter is running from a virtual environment." msgstr "" "Cuando un intérprete de Python se ejecuta desde un entorno virtual, :data:" @@ -112,11 +263,12 @@ msgstr "" "suficiente verificar ``sys.prefix == sys.base_prefix`` para determinar si el " "intérprete actual se ejecuta desde un entorno virtual." -#: ../Doc/library/venv.rst:61 +#: ../Doc/library/venv.rst:80 +#, fuzzy msgid "" "A virtual environment may be \"activated\" using a script in its binary " "directory (``bin`` on POSIX; ``Scripts`` on Windows). This will prepend that " -"directory to your :envvar:`!PATH`, so that running :program:`!python` will " +"directory to your :envvar:`PATH`, so that running :program:`python` will " "invoke the environment's Python interpreter and you can run installed " "scripts without having to use their full path. The invocation of the " "activation script is platform-specific (:samp:`{}` must be replaced by " @@ -130,75 +282,76 @@ msgstr "" "activación es específica de la plataforma (:samp:`{}` debe " "reemplazarse por la ruta del directorio que contiene el entorno virtual):" -#: ../Doc/library/venv.rst:71 +#: ../Doc/library/venv.rst:90 msgid "Platform" msgstr "Plataforma" -#: ../Doc/library/venv.rst:71 +#: ../Doc/library/venv.rst:90 msgid "Shell" msgstr "Shell" -#: ../Doc/library/venv.rst:71 +#: ../Doc/library/venv.rst:90 msgid "Command to activate virtual environment" msgstr "Comando para activar el entorno virtual" -#: ../Doc/library/venv.rst:73 +#: ../Doc/library/venv.rst:92 msgid "POSIX" msgstr "POSIX" -#: ../Doc/library/venv.rst:73 +#: ../Doc/library/venv.rst:92 msgid "bash/zsh" msgstr "bash/zsh" -#: ../Doc/library/venv.rst:73 +#: ../Doc/library/venv.rst:92 msgid ":samp:`$ source {}/bin/activate`" msgstr ":samp:`$ source {}/bin/activate`" -#: ../Doc/library/venv.rst:75 +#: ../Doc/library/venv.rst:94 msgid "fish" msgstr "fish" -#: ../Doc/library/venv.rst:75 +#: ../Doc/library/venv.rst:94 msgid ":samp:`$ source {}/bin/activate.fish`" msgstr ":samp:`$ source {}/bin/activate.fish`" -#: ../Doc/library/venv.rst:77 +#: ../Doc/library/venv.rst:96 msgid "csh/tcsh" msgstr "csh/tcsh" -#: ../Doc/library/venv.rst:77 +#: ../Doc/library/venv.rst:96 msgid ":samp:`$ source {}/bin/activate.csh`" msgstr ":samp:`$ source {}/bin/activate.csh`" -#: ../Doc/library/venv.rst:79 ../Doc/library/venv.rst:83 +#: ../Doc/library/venv.rst:98 ../Doc/library/venv.rst:102 msgid "PowerShell" msgstr "PowerShell" -#: ../Doc/library/venv.rst:79 +#: ../Doc/library/venv.rst:98 msgid ":samp:`$ {}/bin/Activate.ps1`" msgstr ":samp:`$ {}/bin/Activate.ps1`" -#: ../Doc/library/venv.rst:81 +#: ../Doc/library/venv.rst:100 msgid "Windows" msgstr "Windows" -#: ../Doc/library/venv.rst:81 +#: ../Doc/library/venv.rst:100 msgid "cmd.exe" msgstr "cmd.exe" -#: ../Doc/library/venv.rst:81 +#: ../Doc/library/venv.rst:100 msgid ":samp:`C:\\\\> {}\\\\Scripts\\\\activate.bat`" msgstr ":samp:`C:\\\\> {}\\\\Scripts\\\\activate.bat`" -#: ../Doc/library/venv.rst:83 +#: ../Doc/library/venv.rst:102 msgid ":samp:`PS C:\\\\> {}\\\\Scripts\\\\Activate.ps1`" msgstr ":samp:`PS C:\\\\> {}\\\\Scripts\\\\Activate.ps1`" -#: ../Doc/library/venv.rst:86 -msgid ":program:`!fish` and :program:`!csh` activation scripts." +#: ../Doc/library/venv.rst:105 +#, fuzzy +msgid ":program:`fish` and :program:`csh` activation scripts." msgstr "Scripts de activación :program:`!fish` y :program:`!csh`." -#: ../Doc/library/venv.rst:89 +#: ../Doc/library/venv.rst:108 msgid "" "PowerShell activation scripts installed under POSIX for PowerShell Core " "support." @@ -206,7 +359,7 @@ msgstr "" "Scripts de activación de PowerShell instalados en POSIX para compatibilidad " "con PowerShell Core." -#: ../Doc/library/venv.rst:93 +#: ../Doc/library/venv.rst:112 msgid "" "You don't specifically *need* to activate a virtual environment, as you can " "just specify the full path to that environment's Python interpreter when " @@ -218,16 +371,17 @@ msgstr "" "invocar Python. Además, todos los scripts instalados en el entorno deben " "poder ejecutarse sin activarlo." -#: ../Doc/library/venv.rst:99 +#: ../Doc/library/venv.rst:118 +#, fuzzy msgid "" "In order to achieve this, scripts installed into virtual environments have a " "\"shebang\" line which points to the environment's Python interpreter, i.e. :" "samp:`#!/{}/bin/python`. This means that the script will run " -"with that interpreter regardless of the value of :envvar:`!PATH`. On " -"Windows, \"shebang\" line processing is supported if you have the :ref:" -"`launcher` installed. Thus, double-clicking an installed script in a Windows " -"Explorer window should run it with the correct interpreter without the " -"environment needing to be activated or on the :envvar:`!PATH`." +"with that interpreter regardless of the value of :envvar:`PATH`. On Windows, " +"\"shebang\" line processing is supported if you have the :ref:`launcher` " +"installed. Thus, double-clicking an installed script in a Windows Explorer " +"window should run it with the correct interpreter without the environment " +"needing to be activated or on the :envvar:`PATH`." msgstr "" "Para lograr esto, los scripts instalados en entornos virtuales tienen una " "línea \"shebang\" que apunta al intérprete de Python del entorno, en otras " @@ -239,7 +393,7 @@ msgstr "" "ejecutarlo con intérprete correcto sin la necesidad de activarse el entorno " "o el :envvar:`!PATH`." -#: ../Doc/library/venv.rst:108 +#: ../Doc/library/venv.rst:127 msgid "" "When a virtual environment has been activated, the :envvar:`!VIRTUAL_ENV` " "environment variable is set to the path of the environment. Since explicitly " @@ -253,7 +407,7 @@ msgstr "" "en :envvar:`!VIRTUAL_ENV` para determinar si se está usando un entorno " "virtual." -#: ../Doc/library/venv.rst:114 +#: ../Doc/library/venv.rst:133 msgid "" "Because scripts installed in environments should not expect the environment " "to be activated, their shebang lines contain the absolute paths to their " @@ -281,7 +435,7 @@ msgstr "" "del mismo, debe recrear el entorno en su nueva ubicación. De lo contrario, " "el software instalado en el entorno puede no funcionar como se espera." -#: ../Doc/library/venv.rst:128 +#: ../Doc/library/venv.rst:147 msgid "" "You can deactivate a virtual environment by typing ``deactivate`` in your " "shell. The exact mechanism is platform-specific and is an internal " @@ -291,11 +445,11 @@ msgstr "" "El mecanismo exacto es específico de la plataforma y es un detalle de " "implementación interno (se usará normalmente una función de script o shell)." -#: ../Doc/library/venv.rst:136 +#: ../Doc/library/venv.rst:155 msgid "API" msgstr "API" -#: ../Doc/library/venv.rst:140 +#: ../Doc/library/venv.rst:159 msgid "" "The high-level method described above makes use of a simple API which " "provides mechanisms for third-party virtual environment creators to " @@ -307,7 +461,7 @@ msgstr "" "terceras/os puedan personalizar la creación de entornos según sus " "necesidades, la clase :class:`EnvBuilder`." -#: ../Doc/library/venv.rst:148 +#: ../Doc/library/venv.rst:167 msgid "" "The :class:`EnvBuilder` class accepts the following keyword arguments on " "instantiation:" @@ -315,7 +469,7 @@ msgstr "" "La clase :class:`EnvBuilder` acepta los siguientes argumentos de palabras " "clave en la instanciación:" -#: ../Doc/library/venv.rst:151 +#: ../Doc/library/venv.rst:170 msgid "" "``system_site_packages`` -- a Boolean value indicating that the system " "Python site-packages should be available to the environment (defaults to " @@ -325,7 +479,7 @@ msgstr "" "packages* del sistema Python deben estar disponibles para el entorno (por " "defecto es ``False``)." -#: ../Doc/library/venv.rst:154 +#: ../Doc/library/venv.rst:173 msgid "" "``clear`` -- a Boolean value which, if true, will delete the contents of any " "existing target directory, before creating the environment." @@ -333,7 +487,7 @@ msgstr "" "``clear`` -- un valor booleano que, si es verdadero, borrará el contenido de " "cualquier directorio de destino existente, antes de crear el entorno." -#: ../Doc/library/venv.rst:157 +#: ../Doc/library/venv.rst:176 msgid "" "``symlinks`` -- a Boolean value indicating whether to attempt to symlink the " "Python binary rather than copying." @@ -341,7 +495,7 @@ msgstr "" "``symlinks`` -- un valor booleano que indica si se debe intentar crear un " "enlace simbólico del binario de Python en lugar de copiarlo." -#: ../Doc/library/venv.rst:160 +#: ../Doc/library/venv.rst:179 msgid "" "``upgrade`` -- a Boolean value which, if true, will upgrade an existing " "environment with the running Python - for use when that Python has been " @@ -351,7 +505,7 @@ msgstr "" "entorno existente con el Python en ejecución -- para ser usado cuando ese " "Python haya sido actualizado in situ (por defecto es ``False``)." -#: ../Doc/library/venv.rst:164 +#: ../Doc/library/venv.rst:183 msgid "" "``with_pip`` -- a Boolean value which, if true, ensures pip is installed in " "the virtual environment. This uses :mod:`ensurepip` with the ``--default-" @@ -361,7 +515,7 @@ msgstr "" "instalado en el entorno virtual. Esto usa :mod:`ensurepip` con la opción ``--" "default-pip``." -#: ../Doc/library/venv.rst:168 +#: ../Doc/library/venv.rst:187 msgid "" "``prompt`` -- a String to be used after virtual environment is activated " "(defaults to ``None`` which means directory name of the environment would be " @@ -374,24 +528,24 @@ msgstr "" "proporciona la cadena especial ``\".\"``, el nombre base del directorio " "actual se utiliza como indicador." -#: ../Doc/library/venv.rst:173 +#: ../Doc/library/venv.rst:192 msgid "``upgrade_deps`` -- Update the base venv modules to the latest on PyPI" msgstr "" "``upgrade_deps`` -- actualiza los módulos venv base a lo último en PyPI" -#: ../Doc/library/venv.rst:175 ../Doc/library/venv.rst:350 +#: ../Doc/library/venv.rst:194 ../Doc/library/venv.rst:372 msgid "Added the ``with_pip`` parameter" msgstr "Añadido el parámetro ``with_pip``" -#: ../Doc/library/venv.rst:178 ../Doc/library/venv.rst:353 +#: ../Doc/library/venv.rst:197 ../Doc/library/venv.rst:375 msgid "Added the ``prompt`` parameter" msgstr "Añadido el parámetro ``prompt``" -#: ../Doc/library/venv.rst:181 ../Doc/library/venv.rst:356 +#: ../Doc/library/venv.rst:200 ../Doc/library/venv.rst:378 msgid "Added the ``upgrade_deps`` parameter" msgstr "Se agregó el parámetro ``upgrade_deps``" -#: ../Doc/library/venv.rst:184 +#: ../Doc/library/venv.rst:203 msgid "" "Creators of third-party virtual environment tools will be free to use the " "provided :class:`EnvBuilder` class as a base class." @@ -399,12 +553,12 @@ msgstr "" "Las/Los creadoras/es de herramientas de entorno virtual de terceros/as serán " "libres de usar la clase :class:`EnvBuilder` proporcionada como clase base." -#: ../Doc/library/venv.rst:187 +#: ../Doc/library/venv.rst:206 msgid "The returned env-builder is an object which has a method, ``create``:" msgstr "" "El *env-builder* retornado es un objeto que tiene un método, ``create``:" -#: ../Doc/library/venv.rst:191 +#: ../Doc/library/venv.rst:210 msgid "" "Create a virtual environment by specifying the target directory (absolute or " "relative to the current directory) which is to contain the virtual " @@ -416,7 +570,7 @@ msgstr "" "virtual. El método ``create`` creará el entorno en el directorio " "especificado, o lanzará la correspondiente excepción." -#: ../Doc/library/venv.rst:197 +#: ../Doc/library/venv.rst:216 msgid "" "The ``create`` method of the :class:`EnvBuilder` class illustrates the hooks " "available for subclass customization::" @@ -424,7 +578,7 @@ msgstr "" "El método ``create`` de la clase :class:`EnvBuilder` ilustra los enlaces " "disponibles para la personalización de la subclase::" -#: ../Doc/library/venv.rst:212 +#: ../Doc/library/venv.rst:231 msgid "" "Each of the methods :meth:`ensure_directories`, :meth:" "`create_configuration`, :meth:`setup_python`, :meth:`setup_scripts` and :" @@ -434,7 +588,7 @@ msgstr "" "`create_configuration`, :meth:`setup_python`, :meth:`setup_scripts` y :meth:" "`post_setup` pueden ser anulados." -#: ../Doc/library/venv.rst:218 +#: ../Doc/library/venv.rst:237 msgid "" "Creates the environment directory and all necessary subdirectories that " "don't already exist, and returns a context object. This context object is " @@ -450,7 +604,7 @@ msgstr "" "contenido del directorio del entorno y luego se recrearán todos los " "subdirectorios necesarios." -#: ../Doc/library/venv.rst:225 +#: ../Doc/library/venv.rst:244 msgid "" "The returned context object is a :class:`types.SimpleNamespace` with the " "following attributes:" @@ -458,7 +612,7 @@ msgstr "" "El objeto de contexto que retorna es un :class:`types.SimpleNamespace` con " "los siguientes atributos:" -#: ../Doc/library/venv.rst:228 +#: ../Doc/library/venv.rst:247 msgid "" "``env_dir`` - The location of the virtual environment. Used for " "``__VENV_DIR__`` in activation scripts (see :meth:`install_scripts`)." @@ -466,7 +620,7 @@ msgstr "" "``env_dir`` - La ubicación del entorno virtual. Se usa para ``__VENV_DIR__`` " "en scripts de activación (ver :meth:`install_scripts`)." -#: ../Doc/library/venv.rst:231 +#: ../Doc/library/venv.rst:250 msgid "" "``env_name`` - The name of the virtual environment. Used for " "``__VENV_NAME__`` in activation scripts (see :meth:`install_scripts`)." @@ -474,7 +628,7 @@ msgstr "" "``env_name`` - El nombre del entorno virtual. Se usa para ``__VENV_NAME__`` " "en scripts de activación (ver :meth:`install_scripts`)." -#: ../Doc/library/venv.rst:234 +#: ../Doc/library/venv.rst:253 msgid "" "``prompt`` - The prompt to be used by the activation scripts. Used for " "``__VENV_PROMPT__`` in activation scripts (see :meth:`install_scripts`)." @@ -482,7 +636,7 @@ msgstr "" "``prompt`` - El prompt que utilizarán los scripts de activación. Se usa para " "``__VENV_PROMPT__`` en scripts de activación (ver :meth:`install_scripts`)." -#: ../Doc/library/venv.rst:237 +#: ../Doc/library/venv.rst:256 msgid "" "``executable`` - The underlying Python executable used by the virtual " "environment. This takes into account the case where a virtual environment is " @@ -492,19 +646,19 @@ msgstr "" "entorno virtual. Esto tiene en cuenta el caso donde se crea un entorno " "virtual a partir de otro entorno virtual." -#: ../Doc/library/venv.rst:241 +#: ../Doc/library/venv.rst:260 msgid "``inc_path`` - The include path for the virtual environment." msgstr "``inc_path`` - La ruta de include para el entorno virtual." -#: ../Doc/library/venv.rst:243 +#: ../Doc/library/venv.rst:262 msgid "``lib_path`` - The purelib path for the virtual environment." msgstr "``lib_path`` - La ruta de purelib para el entorno virtual." -#: ../Doc/library/venv.rst:245 +#: ../Doc/library/venv.rst:264 msgid "``bin_path`` - The script path for the virtual environment." msgstr "``bin_path`` - La ruta del script para el entorno virtual." -#: ../Doc/library/venv.rst:247 +#: ../Doc/library/venv.rst:266 msgid "" "``bin_name`` - The name of the script path relative to the virtual " "environment location. Used for ``__VENV_BIN_NAME__`` in activation scripts " @@ -514,7 +668,7 @@ msgstr "" "del entorno virtual. Se usa para ``__VENV_BIN_NAME__`` en scripts de " "activación (ver :meth:`install_scripts`)." -#: ../Doc/library/venv.rst:251 +#: ../Doc/library/venv.rst:270 msgid "" "``env_exe`` - The name of the Python interpreter in the virtual environment. " "Used for ``__VENV_PYTHON__`` in activation scripts (see :meth:" @@ -524,7 +678,7 @@ msgstr "" "usa para ``__VENV_PYTHON__`` en scripts de activación (ver :meth:" "`install_scripts`)." -#: ../Doc/library/venv.rst:255 +#: ../Doc/library/venv.rst:274 msgid "" "``env_exec_cmd`` - The name of the Python interpreter, taking into account " "filesystem redirections. This can be used to run Python in the virtual " @@ -534,7 +688,7 @@ msgstr "" "las redirecciones del sistema de archivos. Se puede utilizar para ejecutar " "Python en el entorno virtual." -#: ../Doc/library/venv.rst:260 +#: ../Doc/library/venv.rst:279 msgid "" "The attribute ``lib_path`` was added to the context, and the context object " "was documented." @@ -542,7 +696,7 @@ msgstr "" "Se agregó el atributo ``lib_path`` al contexto y se documentó el objeto de " "contexto." -#: ../Doc/library/venv.rst:264 +#: ../Doc/library/venv.rst:283 msgid "" "The *venv* :ref:`sysconfig installation scheme ` is used " "to construct the paths of the created directories." @@ -550,11 +704,11 @@ msgstr "" "El :ref:`esquema de instalación de sysconfig ` de *venv* " "se utiliza para construir las rutas de los directorios creados." -#: ../Doc/library/venv.rst:271 +#: ../Doc/library/venv.rst:290 msgid "Creates the ``pyvenv.cfg`` configuration file in the environment." msgstr "Crea el archivo de configuración ``pyvenv.cfg`` en el entorno." -#: ../Doc/library/venv.rst:275 +#: ../Doc/library/venv.rst:294 msgid "" "Creates a copy or symlink to the Python executable in the environment. On " "POSIX systems, if a specific executable ``python3.x`` was used, symlinks to " @@ -566,7 +720,7 @@ msgstr "" "enlaces simbólicos a ``python`` y ``python3`` apuntando a ese ejecutable, a " "menos que ya existan archivos con esos nombres." -#: ../Doc/library/venv.rst:282 +#: ../Doc/library/venv.rst:301 msgid "" "Installs activation scripts appropriate to the platform into the virtual " "environment." @@ -574,17 +728,18 @@ msgstr "" "Instala los scripts de activación apropiados para la plataforma en el " "entorno virtual." -#: ../Doc/library/venv.rst:287 +#: ../Doc/library/venv.rst:306 +#, fuzzy msgid "" -"Upgrades the core venv dependency packages (currently ``pip`` and " -"``setuptools``) in the environment. This is done by shelling out to the " -"``pip`` executable in the environment." +"Upgrades the core venv dependency packages (currently ``pip``) in the " +"environment. This is done by shelling out to the ``pip`` executable in the " +"environment." msgstr "" "Actualiza los paquetes de dependencia principales de venv (actualmente " "``pip`` y ``setuptools``) en el entorno. Esto se hace desembolsando el " "ejecutable ``pip`` en el entorno." -#: ../Doc/library/venv.rst:295 +#: ../Doc/library/venv.rst:317 msgid "" "A placeholder method which can be overridden in third party implementations " "to pre-install packages in the virtual environment or perform other post-" @@ -594,7 +749,7 @@ msgstr "" "de terceros/as para previo instalar paquetes en el entorno virtual o " "realizar otros pasos posteriores a la creación." -#: ../Doc/library/venv.rst:299 +#: ../Doc/library/venv.rst:321 msgid "" "Windows now uses redirector scripts for ``python[w].exe`` instead of copying " "the actual binaries. In 3.7.2 only :meth:`setup_python` does nothing unless " @@ -605,7 +760,7 @@ msgstr "" "`setup_python` no hace nada a menos que se ejecute desde una compilación en " "el árbol de directorios fuente." -#: ../Doc/library/venv.rst:304 +#: ../Doc/library/venv.rst:326 msgid "" "Windows copies the redirector scripts as part of :meth:`setup_python` " "instead of :meth:`setup_scripts`. This was not the case in 3.7.2. When using " @@ -616,7 +771,7 @@ msgstr "" "3.7.2. Cuando se usan enlaces simbólicos, los ejecutables originales se " "enlazan." -#: ../Doc/library/venv.rst:309 +#: ../Doc/library/venv.rst:331 msgid "" "In addition, :class:`EnvBuilder` provides this utility method that can be " "called from :meth:`setup_scripts` or :meth:`post_setup` in subclasses to " @@ -626,7 +781,7 @@ msgstr "" "ser llamado desde :meth:`setup_scripts` o :meth:`post_setup` en subclases " "para ayudar a instalar scripts personalizados en el entorno virtual." -#: ../Doc/library/venv.rst:315 +#: ../Doc/library/venv.rst:337 msgid "" "*path* is the path to a directory that should contain subdirectories " "\"common\", \"posix\", \"nt\", each containing scripts destined for the bin " @@ -640,7 +795,7 @@ msgstr "" "el directorio correspondiente a :data:`os.name` se copian después de algún " "reemplazo de texto de los marcadores de posición:" -#: ../Doc/library/venv.rst:321 +#: ../Doc/library/venv.rst:343 msgid "" "``__VENV_DIR__`` is replaced with the absolute path of the environment " "directory." @@ -648,7 +803,7 @@ msgstr "" "``__VENV_DIR__`` se sustituye por la ruta absoluta del directorio del " "entorno." -#: ../Doc/library/venv.rst:324 +#: ../Doc/library/venv.rst:346 msgid "" "``__VENV_NAME__`` is replaced with the environment name (final path segment " "of environment directory)." @@ -656,7 +811,7 @@ msgstr "" "``__VENV_NAME__`` se sustituye por el nombre del entorno (parte final de la " "ruta del directorio del entorno)." -#: ../Doc/library/venv.rst:327 +#: ../Doc/library/venv.rst:349 msgid "" "``__VENV_PROMPT__`` is replaced with the prompt (the environment name " "surrounded by parentheses and with a following space)" @@ -664,7 +819,7 @@ msgstr "" "``__VENV_PROMPT__`` se sustituye por el *prompt* (el nombre del entorno " "entre paréntesis y con un espacio posterior)" -#: ../Doc/library/venv.rst:330 +#: ../Doc/library/venv.rst:352 msgid "" "``__VENV_BIN_NAME__`` is replaced with the name of the bin directory (either " "``bin`` or ``Scripts``)." @@ -672,7 +827,7 @@ msgstr "" "``__VENV_BIN_NAME__`` se sustituye con el nombre del directorio *bin* (ya " "sea ``bin`` o ``Scripts``)." -#: ../Doc/library/venv.rst:333 +#: ../Doc/library/venv.rst:355 msgid "" "``__VENV_PYTHON__`` is replaced with the absolute path of the environment's " "executable." @@ -680,7 +835,7 @@ msgstr "" "``__VENV_PYTHON__`` se sustituye con la ruta absoluta del ejecutable del " "entorno." -#: ../Doc/library/venv.rst:336 +#: ../Doc/library/venv.rst:358 msgid "" "The directories are allowed to exist (for when an existing environment is " "being upgraded)." @@ -688,11 +843,11 @@ msgstr "" "Se permite la existencia de los directorios (para cuando se está " "actualizando un entorno existente)." -#: ../Doc/library/venv.rst:339 +#: ../Doc/library/venv.rst:361 msgid "There is also a module-level convenience function:" msgstr "También hay una función de conveniencia a nivel de módulo:" -#: ../Doc/library/venv.rst:345 +#: ../Doc/library/venv.rst:367 msgid "" "Create an :class:`EnvBuilder` with the given keyword arguments, and call " "its :meth:`~EnvBuilder.create` method with the *env_dir* argument." @@ -700,11 +855,11 @@ msgstr "" "Crea un :class:`EnvBuilder` con los argumentos de la palabra clave dada, y " "llama a su método :meth:`~EnvBuilder.create` con el argumento *env_dir*." -#: ../Doc/library/venv.rst:360 +#: ../Doc/library/venv.rst:382 msgid "An example of extending ``EnvBuilder``" msgstr "Un ejemplo de la extensión de ``EnvBuilder``" -#: ../Doc/library/venv.rst:362 +#: ../Doc/library/venv.rst:384 msgid "" "The following script shows how to extend :class:`EnvBuilder` by implementing " "a subclass which installs setuptools and pip into a created virtual " @@ -713,10 +868,18 @@ msgstr "" "El siguiente script muestra como extender :class:`EnvBuilder` implementando " "una subclase que instala setuptools y pip en un entorno virtual creado::" -#: ../Doc/library/venv.rst:581 +#: ../Doc/library/venv.rst:595 msgid "" "This script is also available for download `online `_." msgstr "" "Este script está también disponible para su descarga `online `_." + +#: ../Doc/library/venv.rst:14 +msgid "Environments" +msgstr "" + +#: ../Doc/library/venv.rst:14 +msgid "virtual" +msgstr "" diff --git a/library/warnings.po b/library/warnings.po index 9ba83a24dc..28d498b2c3 100644 --- a/library/warnings.po +++ b/library/warnings.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-06-08 11:49-0500\n" "Last-Translator: \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/warnings.rst:2 msgid ":mod:`warnings` --- Warning control" @@ -806,16 +806,36 @@ msgstr "" "usado por funciones de envoltura escritas en Python, como esta::" #: ../Doc/library/warnings.rst:413 +#, fuzzy msgid "" -"This makes the warning refer to :func:`deprecation`'s caller, rather than to " -"the source of :func:`deprecation` itself (since the latter would defeat the " +"This makes the warning refer to ``deprecated_api``'s caller, rather than to " +"the source of ``deprecated_api`` itself (since the latter would defeat the " "purpose of the warning message)." msgstr "" "Esto hace que la advertencia se refiera al invocador de :func:`deprecation`, " "en lugar de a la fuente de :func:`deprecation` en sí (ya que esta última " "perdería el propósito del mensaje de advertencia)." -#: ../Doc/library/warnings.rst:417 ../Doc/library/warnings.rst:440 +#: ../Doc/library/warnings.rst:417 +msgid "" +"The *skip_file_prefixes* keyword argument can be used to indicate which " +"stack frames are ignored when counting stack levels. This can be useful when " +"you want the warning to always appear at call sites outside of a package " +"when a constant *stacklevel* does not fit all call paths or is otherwise " +"challenging to maintain. If supplied, it must be a tuple of strings. When " +"prefixes are supplied, stacklevel is implicitly overridden to be ``max(2, " +"stacklevel)``. To cause a warning to be attributed to the caller from " +"outside of the current package you might write::" +msgstr "" + +#: ../Doc/library/warnings.rst:440 +msgid "" +"This makes the warning refer to both the ``example.lower.one_way()`` and " +"``package.higher.another_way()`` call sites only from calling code living " +"outside of ``example`` package." +msgstr "" + +#: ../Doc/library/warnings.rst:444 ../Doc/library/warnings.rst:470 msgid "" "*source*, if supplied, is the destroyed object which emitted a :exc:" "`ResourceWarning`." @@ -823,11 +843,15 @@ msgstr "" "*source*, si se suministra, es el objeto destruido que emitió un :exc:" "`ResourceWarning`." -#: ../Doc/library/warnings.rst:420 +#: ../Doc/library/warnings.rst:447 msgid "Added *source* parameter." msgstr "Añadido parámetro *source*." -#: ../Doc/library/warnings.rst:426 +#: ../Doc/library/warnings.rst:450 +msgid "Added *skip_file_prefixes*." +msgstr "" + +#: ../Doc/library/warnings.rst:456 msgid "" "This is a low-level interface to the functionality of :func:`warn`, passing " "in explicitly the message, category, filename and line number, and " @@ -848,7 +872,7 @@ msgstr "" "*message* puede ser una instancia :exc:`Warning`, en cuyo caso *category* " "será ignorada." -#: ../Doc/library/warnings.rst:435 +#: ../Doc/library/warnings.rst:465 msgid "" "*module_globals*, if supplied, should be the global namespace in use by the " "code for which the warning is issued. (This argument is used to support " @@ -861,11 +885,11 @@ msgstr "" "encuentran en los archivos zip o en otras fuentes de importación que no son " "del sistema de archivos)." -#: ../Doc/library/warnings.rst:443 +#: ../Doc/library/warnings.rst:473 msgid "Add the *source* parameter." msgstr "Añade el parámetro *source*." -#: ../Doc/library/warnings.rst:449 +#: ../Doc/library/warnings.rst:479 msgid "" "Write a warning to a file. The default implementation calls " "``formatwarning(message, category, filename, lineno, line)`` and writes the " @@ -883,7 +907,7 @@ msgstr "" "mensaje de advertencia; si no se proporciona *line*, :func:`showwarning` " "intentará leer la línea especificada por *nombre de archivo* y *lineno*." -#: ../Doc/library/warnings.rst:460 +#: ../Doc/library/warnings.rst:490 msgid "" "Format a warning the standard way. This returns a string which may contain " "embedded newlines and ends in a newline. *line* is a line of source code to " @@ -897,7 +921,7 @@ msgstr "" "si *line* no se suministra, :func:`formatwarning` intentará leer la línea " "especificada por el nombre de fichero *filename* y *lineno*." -#: ../Doc/library/warnings.rst:469 +#: ../Doc/library/warnings.rst:499 msgid "" "Insert an entry into the list of :ref:`warnings filter specifications " "`. The entry is inserted at the front by default; if " @@ -917,7 +941,7 @@ msgstr "" "lista, si ambas coinciden con una advertencia en particular. Los argumentos " "omitidos predeterminan un valor que coincide con todo." -#: ../Doc/library/warnings.rst:481 +#: ../Doc/library/warnings.rst:511 msgid "" "Insert a simple entry into the list of :ref:`warnings filter specifications " "`. The meaning of the function parameters is as for :func:" @@ -932,7 +956,7 @@ msgstr "" "cualquier mensaje de cualquier módulo siempre que la categoría y el número " "de línea coincidan." -#: ../Doc/library/warnings.rst:490 +#: ../Doc/library/warnings.rst:520 msgid "" "Reset the warnings filter. This discards the effect of all previous calls " "to :func:`filterwarnings`, including that of the :option:`-W` command line " @@ -942,11 +966,11 @@ msgstr "" "llamadas previas a :func:`filterwarnings`, incluyendo la de las opciones de " "línea de comandos de :option:`-W` y las llamadas a :func:`simplefilter`." -#: ../Doc/library/warnings.rst:496 +#: ../Doc/library/warnings.rst:526 msgid "Available Context Managers" msgstr "Gestores de contexto disponibles" -#: ../Doc/library/warnings.rst:500 +#: ../Doc/library/warnings.rst:530 msgid "" "A context manager that copies and, upon exit, restores the warnings filter " "and the :func:`showwarning` function. If the *record* argument is :const:" @@ -965,7 +989,7 @@ msgstr "" "Cada objeto de la lista tiene atributos con los mismos nombres que los " "argumentos de :func:`showwarning`." -#: ../Doc/library/warnings.rst:509 +#: ../Doc/library/warnings.rst:539 msgid "" "The *module* argument takes a module that will be used instead of the module " "returned when you import :mod:`warnings` whose filter will be protected. " @@ -975,7 +999,7 @@ msgstr "" "retornado cuando se importa :mod:`warnings` cuyo filtro será protegido. Este " "argumento existe principalmente para probar el propio módulo :mod:`warnings`." -#: ../Doc/library/warnings.rst:514 +#: ../Doc/library/warnings.rst:544 msgid "" "If the *action* argument is not ``None``, the remaining arguments are passed " "to :func:`simplefilter` as if it were called immediately on entering the " @@ -985,7 +1009,7 @@ msgstr "" "enviados a la función :func:`simplefilter` como si fueran invocados " "inmediatamente al entrar al contexto." -#: ../Doc/library/warnings.rst:520 +#: ../Doc/library/warnings.rst:550 msgid "" "The :class:`catch_warnings` manager works by replacing and then later " "restoring the module's :func:`showwarning` function and internal list of " @@ -997,6 +1021,11 @@ msgstr "" "especificaciones del filtro. Esto significa que el gestor de contexto está " "modificando el estado global y por lo tanto no es seguro para los hilos." -#: ../Doc/library/warnings.rst:528 +#: ../Doc/library/warnings.rst:558 msgid "Added the *action*, *category*, *lineno*, and *append* parameters." msgstr "Agrega los parámetros *action*, *category*, *lineno* y *append*." + +#: ../Doc/library/warnings.rst:9 +#, fuzzy +msgid "warnings" +msgstr "Advertencias de prueba" diff --git a/library/wave.po b/library/wave.po index 6d923973e9..7abd4bea66 100644 --- a/library/wave.po +++ b/library/wave.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-30 21:29+0100\n" "Last-Translator: \n" "Language: es\n" @@ -19,8 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 2.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/wave.rst:2 msgid ":mod:`wave` --- Read and write WAV files" @@ -30,24 +29,24 @@ msgstr ":mod:`wave` --- Leer y escribir archivos WAV" msgid "**Source code:** :source:`Lib/wave.py`" msgstr "**Código fuente:** :source:`Lib/wave.py`" -# Aun != Aún (hoy aprendí algo nuevo) #: ../Doc/library/wave.rst:14 msgid "" -"The :mod:`wave` module provides a convenient interface to the WAV sound " -"format. Only files using ``WAVE_FORMAT_PCM`` are supported. Note that this " -"does not include files using ``WAVE_FORMAT_EXTENSIBLE`` even if the " -"subformat is PCM." +"The :mod:`wave` module provides a convenient interface to the Waveform Audio " +"\"WAVE\" (or \"WAV\") file format. Only uncompressed PCM encoded wave files " +"are supported." msgstr "" -"El módulo :mod:`wave` provee una interfaz conveniente para el formato de " -"sonido WAV. Sólo los archivos que usan ``WAVE_FORMAT_PCM`` son soportados. " -"Notar que esto no incluye archivos que usen ``WAVE_FORMAT_EXTENSIBLE``, aun " -"si el sub-formato es PCM." -#: ../Doc/library/wave.rst:18 +#: ../Doc/library/wave.rst:20 +msgid "" +"Support for ``WAVE_FORMAT_EXTENSIBLE`` headers was added, provided that the " +"extended format is ``KSDATAFORMAT_SUBTYPE_PCM``." +msgstr "" + +#: ../Doc/library/wave.rst:23 msgid "The :mod:`wave` module defines the following function and exception:" msgstr "El módulo :mod:`wave` define la siguiente función y excepción:" -#: ../Doc/library/wave.rst:23 +#: ../Doc/library/wave.rst:28 msgid "" "If *file* is a string, open the file by that name, otherwise treat it as a " "file-like object. *mode* can be:" @@ -55,27 +54,27 @@ msgstr "" "Si *file* es una cadena, abra el archivo con ese nombre, de lo contrario " "trátelo como un objeto similar a un archivo. *mode* puede ser:" -#: ../Doc/library/wave.rst:27 +#: ../Doc/library/wave.rst:32 msgid "``'rb'``" msgstr "``'rb'``" -#: ../Doc/library/wave.rst:27 +#: ../Doc/library/wave.rst:32 msgid "Read only mode." msgstr "Modo de solo lectura." -#: ../Doc/library/wave.rst:30 +#: ../Doc/library/wave.rst:35 msgid "``'wb'``" msgstr "``'wb'``" -#: ../Doc/library/wave.rst:30 +#: ../Doc/library/wave.rst:35 msgid "Write only mode." msgstr "Modo de solo escritura." -#: ../Doc/library/wave.rst:32 +#: ../Doc/library/wave.rst:37 msgid "Note that it does not allow read/write WAV files." msgstr "Tenga en cuenta que no permite archivos WAV de lectura/escritura." -#: ../Doc/library/wave.rst:34 +#: ../Doc/library/wave.rst:39 msgid "" "A *mode* of ``'rb'`` returns a :class:`Wave_read` object, while a *mode* of " "``'wb'`` returns a :class:`Wave_write` object. If *mode* is omitted and a " @@ -87,33 +86,34 @@ msgstr "" "*mode* y se pasa un objeto similar a un archivo como *file*, ``file.mode`` " "se usa como el valor predeterminado para *mode*." -#: ../Doc/library/wave.rst:39 +#: ../Doc/library/wave.rst:44 +#, fuzzy msgid "" "If you pass in a file-like object, the wave object will not close it when " -"its :meth:`close` method is called; it is the caller's responsibility to " -"close the file object." +"its ``close()`` method is called; it is the caller's responsibility to close " +"the file object." msgstr "" "Si pasa un objeto similar a un archivo, el objeto *wave* no lo cerrará " "cuando se llame al método :meth:`close`; es responsabilidad del invocador " "cerrar el objeto de archivo." -#: ../Doc/library/wave.rst:43 +#: ../Doc/library/wave.rst:48 +#, fuzzy msgid "" "The :func:`.open` function may be used in a :keyword:`with` statement. When " -"the :keyword:`!with` block completes, the :meth:`Wave_read.close() ` or :meth:`Wave_write.close() ` " -"method is called." +"the :keyword:`!with` block completes, the :meth:`Wave_read.close()` or :meth:" +"`Wave_write.close()` method is called." msgstr "" "La función :func:`.open` se puede utilizar en una declaración :keyword:" "`with`. Cuando el bloque :keyword:`!with` se completa, el método :meth:" "`Wave_read.close() ` o el método :meth:`Wave_write." "close() ` es invocado." -#: ../Doc/library/wave.rst:48 ../Doc/library/wave.rst:164 +#: ../Doc/library/wave.rst:52 ../Doc/library/wave.rst:176 msgid "Added support for unseekable files." msgstr "Se agregó soporte para archivos no encontrados." -#: ../Doc/library/wave.rst:53 +#: ../Doc/library/wave.rst:57 msgid "" "An error raised when something is impossible because it violates the WAV " "specification or hits an implementation deficiency." @@ -121,18 +121,22 @@ msgstr "" "Error que se produce cuando algo es imposible porque viola la especificación " "WAV o alcanza una deficiencia de implementación." -#: ../Doc/library/wave.rst:60 +#: ../Doc/library/wave.rst:64 msgid "Wave_read Objects" msgstr "Los objetos *Wave_read*" -#: ../Doc/library/wave.rst:62 +#: ../Doc/library/wave.rst:68 +msgid "Read a WAV file." +msgstr "" + +#: ../Doc/library/wave.rst:70 msgid "" "Wave_read objects, as returned by :func:`.open`, have the following methods:" msgstr "" "Los objetos *Wave_read*, tal como lo retorna :func:`.open`, tienen los " "siguientes métodos:" -#: ../Doc/library/wave.rst:67 +#: ../Doc/library/wave.rst:75 msgid "" "Close the stream if it was opened by :mod:`wave`, and make the instance " "unusable. This is called automatically on object collection." @@ -140,28 +144,28 @@ msgstr "" "Cierra la secuencia si fue abierta por :mod:`wave`, y hace que la instancia " "sea inutilizable. Esto es llamado automáticamente en la colección de objetos." -#: ../Doc/library/wave.rst:73 +#: ../Doc/library/wave.rst:81 msgid "Returns number of audio channels (``1`` for mono, ``2`` for stereo)." msgstr "" "Retorna el número de canales de audio (``1`` para mono, ``2`` para estéreo)." -#: ../Doc/library/wave.rst:78 +#: ../Doc/library/wave.rst:86 msgid "Returns sample width in bytes." msgstr "Retorna el ancho de la muestra en bytes." -#: ../Doc/library/wave.rst:83 +#: ../Doc/library/wave.rst:91 msgid "Returns sampling frequency." msgstr "Retorna la frecuencia del muestreo." -#: ../Doc/library/wave.rst:88 +#: ../Doc/library/wave.rst:96 msgid "Returns number of audio frames." msgstr "Retorna el número de cuadros del audio." -#: ../Doc/library/wave.rst:93 +#: ../Doc/library/wave.rst:101 msgid "Returns compression type (``'NONE'`` is the only supported type)." msgstr "Retorna el tipo de compresión (``'NONE'`` es el único tipo admitido)." -#: ../Doc/library/wave.rst:98 +#: ../Doc/library/wave.rst:106 msgid "" "Human-readable version of :meth:`getcomptype`. Usually ``'not compressed'`` " "parallels ``'NONE'``." @@ -169,29 +173,30 @@ msgstr "" "Versión legible para humanos de :meth:`getcomptype`. Generalmente ``'not " "compressed'`` significa ``'NONE'``." -#: ../Doc/library/wave.rst:104 +#: ../Doc/library/wave.rst:112 +#, fuzzy msgid "" "Returns a :func:`~collections.namedtuple` ``(nchannels, sampwidth, " -"framerate, nframes, comptype, compname)``, equivalent to output of the :meth:" -"`get\\*` methods." +"framerate, nframes, comptype, compname)``, equivalent to output of the " +"``get*()`` methods." msgstr "" "Retorna un :func:`~collections.namedtuple` ``(nchannels, sampwidth, " "framerate, nframes, comptype, compname)``, equivalente a la salida de los " "métodos :meth:`get\\*`." -#: ../Doc/library/wave.rst:111 +#: ../Doc/library/wave.rst:119 msgid "" "Reads and returns at most *n* frames of audio, as a :class:`bytes` object." msgstr "" "Lee y retorna como máximo *n* cuadros de audio, como un objeto :class:" "`bytes`." -#: ../Doc/library/wave.rst:116 +#: ../Doc/library/wave.rst:124 msgid "Rewind the file pointer to the beginning of the audio stream." msgstr "" "Rebobina el puntero del archivo hasta el principio de la secuencia de audio." -#: ../Doc/library/wave.rst:118 +#: ../Doc/library/wave.rst:126 msgid "" "The following two methods are defined for compatibility with the :mod:`aifc` " "module, and don't do anything interesting." @@ -199,15 +204,15 @@ msgstr "" "Los dos métodos siguientes se definen por compatibilidad con el módulo :mod:" "`aifc`, y no hacen nada interesante." -#: ../Doc/library/wave.rst:124 +#: ../Doc/library/wave.rst:132 msgid "Returns ``None``." msgstr "Retorna ``None``." -#: ../Doc/library/wave.rst:129 +#: ../Doc/library/wave.rst:137 msgid "Raise an error." msgstr "Lanza un error." -#: ../Doc/library/wave.rst:131 +#: ../Doc/library/wave.rst:139 msgid "" "The following two methods define a term \"position\" which is compatible " "between them, and is otherwise implementation dependent." @@ -215,31 +220,42 @@ msgstr "" "Los dos métodos siguientes definen un término \"posición\" que es compatible " "entre ellos y, es dependiente de la implementación." -#: ../Doc/library/wave.rst:137 +#: ../Doc/library/wave.rst:145 msgid "Set the file pointer to the specified position." msgstr "Establece el puntero del archivo en la posición especificada." -#: ../Doc/library/wave.rst:142 +#: ../Doc/library/wave.rst:150 msgid "Return current file pointer position." msgstr "Retorna la posición actual del puntero del archivo." -#: ../Doc/library/wave.rst:148 +#: ../Doc/library/wave.rst:156 msgid "Wave_write Objects" msgstr "Los objetos *Wave_write*" -#: ../Doc/library/wave.rst:150 +#: ../Doc/library/wave.rst:160 +msgid "Write a WAV file." +msgstr "" + +#: ../Doc/library/wave.rst:162 +#, fuzzy +msgid "Wave_write objects, as returned by :func:`.open`." +msgstr "" +"Los objetos *Wave_write*, retornados por :func:`.open`, tienen los " +"siguientes métodos:" + +#: ../Doc/library/wave.rst:164 +#, fuzzy msgid "" "For seekable output streams, the ``wave`` header will automatically be " "updated to reflect the number of frames actually written. For unseekable " "streams, the *nframes* value must be accurate when the first frame data is " "written. An accurate *nframes* value can be achieved either by calling :" -"meth:`~Wave_write.setnframes` or :meth:`~Wave_write.setparams` with the " -"number of frames that will be written before :meth:`~Wave_write.close` is " -"called and then using :meth:`~Wave_write.writeframesraw` to write the frame " -"data, or by calling :meth:`~Wave_write.writeframes` with all of the frame " -"data to be written. In the latter case :meth:`~Wave_write.writeframes` will " -"calculate the number of frames in the data and set *nframes* accordingly " -"before writing the frame data." +"meth:`setnframes` or :meth:`setparams` with the number of frames that will " +"be written before :meth:`close` is called and then using :meth:" +"`writeframesraw` to write the frame data, or by calling :meth:`writeframes` " +"with all of the frame data to be written. In the latter case :meth:" +"`writeframes` will calculate the number of frames in the data and set " +"*nframes* accordingly before writing the frame data." msgstr "" "Para las secuencias de salida que se pueden buscar, el encabezado de " "``wave`` se actualizará automáticamente para reflejar el número de cuadros " @@ -254,14 +270,14 @@ msgstr "" "calculará el número de cuadros en los datos y establecerá *nframes* como " "consecuencia antes de escribir los datos del cuadro." -#: ../Doc/library/wave.rst:162 -msgid "" -"Wave_write objects, as returned by :func:`.open`, have the following methods:" +#: ../Doc/library/wave.rst:179 +#, fuzzy +msgid "Wave_write objects have the following methods:" msgstr "" "Los objetos *Wave_write*, retornados por :func:`.open`, tienen los " "siguientes métodos:" -#: ../Doc/library/wave.rst:170 +#: ../Doc/library/wave.rst:183 msgid "" "Make sure *nframes* is correct, and close the file if it was opened by :mod:" "`wave`. This method is called upon object collection. It will raise an " @@ -273,25 +289,25 @@ msgstr "" "Levantará una excepción si la secuencia de salida no se puede buscar y " "*nframes* no coinciden con el número de cuadros realmente escritos." -#: ../Doc/library/wave.rst:178 +#: ../Doc/library/wave.rst:191 msgid "Set the number of channels." msgstr "Configure el número de canales." -#: ../Doc/library/wave.rst:183 +#: ../Doc/library/wave.rst:196 msgid "Set the sample width to *n* bytes." msgstr "Establezca el ancho de la muestra en *n* bytes." -#: ../Doc/library/wave.rst:188 +#: ../Doc/library/wave.rst:201 msgid "Set the frame rate to *n*." msgstr "Establezca la velocidad del cuadro en *n*." -#: ../Doc/library/wave.rst:190 +#: ../Doc/library/wave.rst:203 msgid "A non-integral input to this method is rounded to the nearest integer." msgstr "" "Una entrada no-entera para este método se redondea al número entero más " "cercano." -#: ../Doc/library/wave.rst:197 +#: ../Doc/library/wave.rst:210 msgid "" "Set the number of frames to *n*. This will be changed later if the number " "of frames actually written is different (this update attempt will raise an " @@ -301,7 +317,7 @@ msgstr "" "número de cuadros realmente escritos es diferente (este intento de " "actualización levantará un error si no se encuentra la secuencia de salida)." -#: ../Doc/library/wave.rst:204 +#: ../Doc/library/wave.rst:217 msgid "" "Set the compression type and description. At the moment, only compression " "type ``NONE`` is supported, meaning no compression." @@ -310,17 +326,18 @@ msgstr "" "admite el tipo de compresión ``NONE``, lo que significa que no hay " "compresión." -#: ../Doc/library/wave.rst:210 +#: ../Doc/library/wave.rst:223 +#, fuzzy msgid "" "The *tuple* should be ``(nchannels, sampwidth, framerate, nframes, comptype, " -"compname)``, with values valid for the :meth:`set\\*` methods. Sets all " +"compname)``, with values valid for the ``set*()`` methods. Sets all " "parameters." msgstr "" "La *tupla* debe ser ``(nchannels, sampwidth, framerate, nframes, comptype, " "compname)``, con valores válidos para los métodos :meth:`set \\ *`. " "Establece todos los parámetros." -#: ../Doc/library/wave.rst:217 +#: ../Doc/library/wave.rst:230 msgid "" "Return current position in the file, with the same disclaimer for the :meth:" "`Wave_read.tell` and :meth:`Wave_read.setpos` methods." @@ -328,15 +345,15 @@ msgstr "" "Retorna la posición actual en el archivo, con el mismo descargo para los " "métodos :meth:`Wave_read.tell` y :meth:`Wave_read.setpos`." -#: ../Doc/library/wave.rst:223 +#: ../Doc/library/wave.rst:236 msgid "Write audio frames, without correcting *nframes*." msgstr "Escribe cuadros de audio, sin corregir *nframes*." -#: ../Doc/library/wave.rst:225 ../Doc/library/wave.rst:236 +#: ../Doc/library/wave.rst:238 ../Doc/library/wave.rst:249 msgid "Any :term:`bytes-like object` is now accepted." msgstr "Todo :term:`bytes-like object` ahora es aceptado." -#: ../Doc/library/wave.rst:231 +#: ../Doc/library/wave.rst:244 msgid "" "Write audio frames and make sure *nframes* is correct. It will raise an " "error if the output stream is not seekable and the total number of frames " @@ -348,7 +365,7 @@ msgstr "" "número total de cuadros que se han escrito después de que se haya escrito " "*data* no coincide con el valor establecido previamente para *nframes*." -#: ../Doc/library/wave.rst:240 +#: ../Doc/library/wave.rst:252 msgid "" "Note that it is invalid to set any parameters after calling :meth:" "`writeframes` or :meth:`writeframesraw`, and any attempt to do so will " @@ -357,3 +374,15 @@ msgstr "" "Tenga en cuenta que no es válido establecer ningún parámetro después de " "invocar a :meth:`writeframes` o :meth:`writeframesraw`, y cualquier intento " "de hacerlo levantará :exc:`wave.Error`." + +# Aun != Aún (hoy aprendí algo nuevo) +#~ msgid "" +#~ "The :mod:`wave` module provides a convenient interface to the WAV sound " +#~ "format. Only files using ``WAVE_FORMAT_PCM`` are supported. Note that " +#~ "this does not include files using ``WAVE_FORMAT_EXTENSIBLE`` even if the " +#~ "subformat is PCM." +#~ msgstr "" +#~ "El módulo :mod:`wave` provee una interfaz conveniente para el formato de " +#~ "sonido WAV. Sólo los archivos que usan ``WAVE_FORMAT_PCM`` son " +#~ "soportados. Notar que esto no incluye archivos que usen " +#~ "``WAVE_FORMAT_EXTENSIBLE``, aun si el sub-formato es PCM." diff --git a/library/weakref.po b/library/weakref.po index 936fe3f4b6..31e003654f 100644 --- a/library/weakref.po +++ b/library/weakref.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-04 21:07+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es_PE\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/weakref.rst:4 msgid ":mod:`weakref` --- Weak references" @@ -234,10 +234,11 @@ msgstr "" "retrollamada registrada más antigua." #: ../Doc/library/weakref.rst:112 +#, fuzzy msgid "" "Exceptions raised by the callback will be noted on the standard error " "output, but cannot be propagated; they are handled in exactly the same way " -"as exceptions raised from an object's :meth:`__del__` method." +"as exceptions raised from an object's :meth:`~object.__del__` method." msgstr "" "Las excepciones lanzadas por la retrollamada serán anotadas en la salida de " "error estándar, pero no pueden ser propagadas; son manejadas igual que las " @@ -290,6 +291,7 @@ msgid "Added the :attr:`__callback__` attribute." msgstr "Se añadió el atributo :attr:`__callback__`." #: ../Doc/library/weakref.rst:140 +#, fuzzy msgid "" "Return a proxy to *object* which uses a weak reference. This supports use " "of the proxy in most contexts instead of requiring the explicit " @@ -297,7 +299,7 @@ msgid "" "have a type of either ``ProxyType`` or ``CallableProxyType``, depending on " "whether *object* is callable. Proxy objects are not :term:`hashable` " "regardless of the referent; this avoids a number of problems related to " -"their fundamentally mutable nature, and prevent their use as dictionary " +"their fundamentally mutable nature, and prevents their use as dictionary " "keys. *callback* is the same as the parameter of the same name to the :func:" "`ref` function." msgstr "" @@ -313,19 +315,25 @@ msgstr "" #: ../Doc/library/weakref.rst:149 msgid "" +"Accessing an attribute of the proxy object after the referent is garbage " +"collected raises :exc:`ReferenceError`." +msgstr "" + +#: ../Doc/library/weakref.rst:152 +msgid "" "Extended the operator support on proxy objects to include the matrix " "multiplication operators ``@`` and ``@=``." msgstr "" "Se extendió el soporto de operadores en objetos proxy para incluir los " "operadores de multiplicación de matrices ``@`` and ``@=``." -#: ../Doc/library/weakref.rst:156 +#: ../Doc/library/weakref.rst:159 msgid "" "Return the number of weak references and proxies which refer to *object*." msgstr "" "Retorna el número de referencias débiles y proxies que refieren a *object*." -#: ../Doc/library/weakref.rst:161 +#: ../Doc/library/weakref.rst:164 msgid "" "Return a list of all weak reference and proxy objects which refer to " "*object*." @@ -333,7 +341,7 @@ msgstr "" "Retorna una lista de todas las referencias débiles y objetos proxy que " "refieren a *object*." -#: ../Doc/library/weakref.rst:166 +#: ../Doc/library/weakref.rst:169 msgid "" "Mapping class that references keys weakly. Entries in the dictionary will " "be discarded when there is no longer a strong reference to the key. This " @@ -348,13 +356,25 @@ msgstr "" "puede ser especialmente útil con objetos que sobre escriben atributos de " "acceso." -#: ../Doc/library/weakref.rst:172 +#: ../Doc/library/weakref.rst:175 +msgid "" +"Note that when a key with equal value to an existing key (but not equal " +"identity) is inserted into the dictionary, it replaces the value but does " +"not replace the existing key. Due to this, when the reference to the " +"original key is deleted, it also deletes the entry in the dictionary::" +msgstr "" + +#: ../Doc/library/weakref.rst:188 +msgid "A workaround would be to remove the key prior to reassignment::" +msgstr "" + +#: ../Doc/library/weakref.rst:199 msgid "Added support for ``|`` and ``|=`` operators, specified in :pep:`584`." msgstr "" "Se agregó soporte para los operadores ``|`` y ``|=``, especificados en :pep:" "`584`." -#: ../Doc/library/weakref.rst:175 +#: ../Doc/library/weakref.rst:202 msgid "" ":class:`WeakKeyDictionary` objects have an additional method that exposes " "the internal references directly. The references are not guaranteed to be " @@ -371,11 +391,11 @@ msgstr "" "recolector de basura mantenga las llaves en existencia más tiempo del que " "necesitan." -#: ../Doc/library/weakref.rst:185 +#: ../Doc/library/weakref.rst:212 msgid "Return an iterable of the weak references to the keys." msgstr "Retorna un iterable de las referencias débiles a las llaves." -#: ../Doc/library/weakref.rst:190 +#: ../Doc/library/weakref.rst:217 msgid "" "Mapping class that references values weakly. Entries in the dictionary will " "be discarded when no strong reference to the value exists any more." @@ -384,28 +404,28 @@ msgstr "" "diccionario serán descartadas cuando ya no existan las referencias fuertes a " "los valores." -#: ../Doc/library/weakref.rst:193 +#: ../Doc/library/weakref.rst:220 msgid "" "Added support for ``|`` and ``|=`` operators, as specified in :pep:`584`." msgstr "" "Se agregó soporte para los operadores ``|`` y ``|=``, como se especifica en :" "pep:`584`." -#: ../Doc/library/weakref.rst:196 +#: ../Doc/library/weakref.rst:223 +#, fuzzy msgid "" ":class:`WeakValueDictionary` objects have an additional method that has the " -"same issues as the :meth:`keyrefs` method of :class:`WeakKeyDictionary` " -"objects." +"same issues as the :meth:`WeakKeyDictionary.keyrefs` method." msgstr "" "Los objetos :class:`WeakValueDictionary` tienen un método adicional que " "tiene los mismos problemas que el método :meth:`keyrefs` de los objetos :" "class:`WeakyKeyDictionary`." -#: ../Doc/library/weakref.rst:203 +#: ../Doc/library/weakref.rst:229 msgid "Return an iterable of the weak references to the values." msgstr "Retorna un iterable de las referencias débiles a los valores." -#: ../Doc/library/weakref.rst:208 +#: ../Doc/library/weakref.rst:234 msgid "" "Set class that keeps weak references to its elements. An element will be " "discarded when no strong reference to it exists any more." @@ -413,7 +433,7 @@ msgstr "" "Clase Conjunto que mantiene referencias débiles a sus elementos. Un " "elemento será descartado cuando ya no existan referencias fuertes." -#: ../Doc/library/weakref.rst:214 +#: ../Doc/library/weakref.rst:240 msgid "" "A custom :class:`ref` subclass which simulates a weak reference to a bound " "method (i.e., a method defined on a class and looked up on an instance). " @@ -427,7 +447,13 @@ msgstr "" "no puede mantenerlo. El :class:`WeakMethod` tiene un código especial para " "recrear el método atado hasta que o el objeto o la función original muera::" -#: ../Doc/library/weakref.rst:242 +#: ../Doc/library/weakref.rst:264 +msgid "" +"*callback* is the same as the parameter of the same name to the :func:`ref` " +"function." +msgstr "" + +#: ../Doc/library/weakref.rst:270 msgid "" "Return a callable finalizer object which will be called when *obj* is " "garbage collected. Unlike an ordinary weak reference, a finalizer will " @@ -440,7 +466,7 @@ msgstr "" "referencia sea recolectado, simplificando enormemente la gestión del ciclo " "de vida." -#: ../Doc/library/weakref.rst:247 +#: ../Doc/library/weakref.rst:275 msgid "" "A finalizer is considered *alive* until it is called (either explicitly or " "at garbage collection), and after that it is *dead*. Calling a live " @@ -453,12 +479,13 @@ msgstr "" "**kwargs)``, mientras que llamar a un finalizador muerto retorna :const:" "`None`." -#: ../Doc/library/weakref.rst:252 +#: ../Doc/library/weakref.rst:280 +#, fuzzy msgid "" "Exceptions raised by finalizer callbacks during garbage collection will be " "shown on the standard error output, but cannot be propagated. They are " -"handled in the same way as exceptions raised from an object's :meth:" -"`__del__` method or a weak reference's callback." +"handled in the same way as exceptions raised from an object's :meth:`~object." +"__del__` method or a weak reference's callback." msgstr "" "Las excepciones lanzadas por retrollamadas de finalizadores durante la " "recolección de basura serán mostradas en la salida de error estándar, pero " @@ -466,7 +493,7 @@ msgstr "" "excepciones lanzadas del método :meth:`__del__` de un objeto o la " "retrollamada de una referencia débil." -#: ../Doc/library/weakref.rst:258 +#: ../Doc/library/weakref.rst:286 msgid "" "When the program exits, each remaining live finalizer is called unless its :" "attr:`atexit` attribute has been set to false. They are called in reverse " @@ -476,7 +503,7 @@ msgstr "" "que su atributo :attr:`atexit` sea falso. Son llamados en el orden reverso " "de creación." -#: ../Doc/library/weakref.rst:262 +#: ../Doc/library/weakref.rst:290 msgid "" "A finalizer will never invoke its callback during the later part of the :" "term:`interpreter shutdown` when module globals are liable to have been " @@ -486,7 +513,7 @@ msgstr "" "term:`interpreter shutdown ` cuando los módulos " "globales están sujetos a ser reemplazados por :const:`None`." -#: ../Doc/library/weakref.rst:268 +#: ../Doc/library/weakref.rst:296 msgid "" "If *self* is alive then mark it as dead and return the result of calling " "``func(*args, **kwargs)``. If *self* is dead then return :const:`None`." @@ -495,7 +522,7 @@ msgstr "" "llamar a ``func(*args, **kwargs)``. Si *self* está muerto entonces retorna :" "const:`None`." -#: ../Doc/library/weakref.rst:274 +#: ../Doc/library/weakref.rst:302 msgid "" "If *self* is alive then mark it as dead and return the tuple ``(obj, func, " "args, kwargs)``. If *self* is dead then return :const:`None`." @@ -503,7 +530,7 @@ msgstr "" "Si *self* está vivo entonces lo marca como muerto y retorna la tupla ``(obj, " "func, args, kwargs)``. Si *self* está muerto entonces retorna :const:`None`." -#: ../Doc/library/weakref.rst:280 +#: ../Doc/library/weakref.rst:308 msgid "" "If *self* is alive then return the tuple ``(obj, func, args, kwargs)``. If " "*self* is dead then return :const:`None`." @@ -511,13 +538,13 @@ msgstr "" "Si *self* está vivo entonces retorna la tupla ``(obj, func, args, " "kwargs)``. Si *self* está muerto entonces retorna :const:`None`." -#: ../Doc/library/weakref.rst:285 +#: ../Doc/library/weakref.rst:313 msgid "Property which is true if the finalizer is alive, false otherwise." msgstr "" "Propiedad que es verdadera si el finalizador está vivo, caso contrario, " "falso." -#: ../Doc/library/weakref.rst:289 +#: ../Doc/library/weakref.rst:317 msgid "" "A writable boolean property which by default is true. When the program " "exits, it calls all remaining live finalizers for which :attr:`.atexit` is " @@ -528,7 +555,7 @@ msgstr "" "que queden para los cuales :attr:`atexit` es verdadero. Ellos son llamados " "en el orden reverso de creación." -#: ../Doc/library/weakref.rst:296 +#: ../Doc/library/weakref.rst:324 msgid "" "It is important to ensure that *func*, *args* and *kwargs* do not own any " "references to *obj*, either directly or indirectly, since otherwise *obj* " @@ -540,19 +567,19 @@ msgstr "" "manera *obj* nunca será recolectado por el recolector de basura. En " "particular, *func* no debe ser un método vinculado de *obj*." -#: ../Doc/library/weakref.rst:306 +#: ../Doc/library/weakref.rst:334 msgid "The type object for weak references objects." msgstr "El objeto de tipo para objetos de referencias débiles." -#: ../Doc/library/weakref.rst:311 +#: ../Doc/library/weakref.rst:339 msgid "The type object for proxies of objects which are not callable." msgstr "El objeto de tipo para proxies de objetos que no son invocables." -#: ../Doc/library/weakref.rst:316 +#: ../Doc/library/weakref.rst:344 msgid "The type object for proxies of callable objects." msgstr "El objeto de tipo para proxies de objetos invocables." -#: ../Doc/library/weakref.rst:321 +#: ../Doc/library/weakref.rst:349 msgid "" "Sequence containing all the type objects for proxies. This can make it " "simpler to test if an object is a proxy without being dependent on naming " @@ -562,11 +589,11 @@ msgstr "" "puede hacerlo más simple para pruebas si un objeto es un proxy sin ser " "dependiente en nombrar a ambos tipos proxy." -#: ../Doc/library/weakref.rst:329 +#: ../Doc/library/weakref.rst:357 msgid ":pep:`205` - Weak References" msgstr ":pep:`205` - Referencias Débiles" -#: ../Doc/library/weakref.rst:329 +#: ../Doc/library/weakref.rst:357 msgid "" "The proposal and rationale for this feature, including links to earlier " "implementations and information about similar features in other languages." @@ -575,11 +602,11 @@ msgstr "" "implementaciones tempranas e información acerca de características similares " "en otros lenguajes." -#: ../Doc/library/weakref.rst:336 +#: ../Doc/library/weakref.rst:364 msgid "Weak Reference Objects" msgstr "Objetos de referencias débiles" -#: ../Doc/library/weakref.rst:338 +#: ../Doc/library/weakref.rst:366 msgid "" "Weak reference objects have no methods and no attributes besides :attr:`ref." "__callback__`. A weak reference object allows the referent to be obtained, " @@ -589,7 +616,7 @@ msgstr "" "attr:`ref.__calback__`. Un objeto de referencia débil permite que el " "referente sea obtenido, si todavía existe, al llamarlo:" -#: ../Doc/library/weakref.rst:352 +#: ../Doc/library/weakref.rst:380 msgid "" "If the referent no longer exists, calling the reference object returns :" "const:`None`:" @@ -597,7 +624,7 @@ msgstr "" "Si el referente no existe, llamar al objeto de referencia retorna :const:" "`None`:" -#: ../Doc/library/weakref.rst:359 +#: ../Doc/library/weakref.rst:387 msgid "" "Testing that a weak reference object is still live should be done using the " "expression ``ref() is not None``. Normally, application code that needs to " @@ -608,7 +635,7 @@ msgstr "" "aplicación que necesite usar un objeto de referencia debe seguir este " "patrón::" -#: ../Doc/library/weakref.rst:372 +#: ../Doc/library/weakref.rst:400 msgid "" "Using a separate test for \"liveness\" creates race conditions in threaded " "applications; another thread can cause a weak reference to become " @@ -621,7 +648,7 @@ msgstr "" "arriba es seguro en aplicaciones con hilos también como aplicaciones de un " "sólo hilo." -#: ../Doc/library/weakref.rst:377 +#: ../Doc/library/weakref.rst:405 msgid "" "Specialized versions of :class:`ref` objects can be created through " "subclassing. This is used in the implementation of the :class:" @@ -637,7 +664,7 @@ msgstr "" "un referencia, pero también puede ser usado para insertar procesamiento " "adicional en llamadas para recuperar el referente." -#: ../Doc/library/weakref.rst:383 +#: ../Doc/library/weakref.rst:411 msgid "" "This example shows how a subclass of :class:`ref` can be used to store " "additional information about an object and affect the value that's returned " @@ -647,11 +674,11 @@ msgstr "" "guardar información adicional sobre un objeto y afectar el valor que se " "retorna cuando el referente es accedido::" -#: ../Doc/library/weakref.rst:410 +#: ../Doc/library/weakref.rst:438 msgid "Example" msgstr "Ejemplo" -#: ../Doc/library/weakref.rst:412 +#: ../Doc/library/weakref.rst:440 msgid "" "This simple example shows how an application can use object IDs to retrieve " "objects that it has seen before. The IDs of the objects can then be used in " @@ -664,11 +691,11 @@ msgstr "" "permanezcan con vida, pero los objetos pueden aún pueden ser recuperados por " "el ID si lo hacen." -#: ../Doc/library/weakref.rst:437 +#: ../Doc/library/weakref.rst:465 msgid "Finalizer Objects" msgstr "Objetos finalizadores" -#: ../Doc/library/weakref.rst:439 +#: ../Doc/library/weakref.rst:467 msgid "" "The main benefit of using :class:`finalize` is that it makes it simple to " "register a callback without needing to preserve the returned finalizer " @@ -678,7 +705,7 @@ msgstr "" "registrar una retrollamada sin necesitar preservar el objeto finalizador " "retornado. Por ejemplo" -#: ../Doc/library/weakref.rst:453 +#: ../Doc/library/weakref.rst:481 msgid "" "The finalizer can be called directly as well. However the finalizer will " "invoke the callback at most once." @@ -686,7 +713,7 @@ msgstr "" "El finalizador puede ser llamado directamente también. Sin embargo, el " "finalizador invocará la retrollamada como máximo una vez." -#: ../Doc/library/weakref.rst:469 +#: ../Doc/library/weakref.rst:497 msgid "" "You can unregister a finalizer using its :meth:`~finalize.detach` method. " "This kills the finalizer and returns the arguments passed to the constructor " @@ -696,7 +723,7 @@ msgstr "" "detach`. Esto mata el finalizador y retorna los argumentos pasados al " "constructor cuando fue creado." -#: ../Doc/library/weakref.rst:483 +#: ../Doc/library/weakref.rst:511 msgid "" "Unless you set the :attr:`~finalize.atexit` attribute to :const:`False`, a " "finalizer will be called when the program exits if it is still alive. For " @@ -706,11 +733,12 @@ msgstr "" "finalizador será llamado cuando el programa salga si todavía está con vida. " "Por ejemplo" -#: ../Doc/library/weakref.rst:498 -msgid "Comparing finalizers with :meth:`__del__` methods" +#: ../Doc/library/weakref.rst:526 +#, fuzzy +msgid "Comparing finalizers with :meth:`~object.__del__` methods" msgstr "Comparando finalizadores con los métodos :meth:`__del__`" -#: ../Doc/library/weakref.rst:500 +#: ../Doc/library/weakref.rst:528 msgid "" "Suppose we want to create a class whose instances represent temporary " "directories. The directories should be deleted with their contents when the " @@ -720,29 +748,32 @@ msgstr "" "directorios temporales. Los directorios deben ser eliminados con sus " "contenidos cuando el primero de los siguiente eventos ocurre:" -#: ../Doc/library/weakref.rst:504 +#: ../Doc/library/weakref.rst:532 msgid "the object is garbage collected," msgstr "el objeto es recolectado por el recolector de basura," -#: ../Doc/library/weakref.rst:505 -msgid "the object's :meth:`remove` method is called, or" +#: ../Doc/library/weakref.rst:533 +#, fuzzy +msgid "the object's :meth:`!remove` method is called, or" msgstr "el método :meth:`remove` del objeto es llamado, o" -#: ../Doc/library/weakref.rst:506 +#: ../Doc/library/weakref.rst:534 msgid "the program exits." msgstr "el programa sale." -#: ../Doc/library/weakref.rst:508 +#: ../Doc/library/weakref.rst:536 +#, fuzzy msgid "" -"We might try to implement the class using a :meth:`__del__` method as " -"follows::" +"We might try to implement the class using a :meth:`~object.__del__` method " +"as follows::" msgstr "" "Nosotros podemos intentar implementar la clase usando el método :meth:" "`__del__` como sigue::" -#: ../Doc/library/weakref.rst:527 +#: ../Doc/library/weakref.rst:555 +#, fuzzy msgid "" -"Starting with Python 3.4, :meth:`__del__` methods no longer prevent " +"Starting with Python 3.4, :meth:`~object.__del__` methods no longer prevent " "reference cycles from being garbage collected, and module globals are no " "longer forced to :const:`None` during :term:`interpreter shutdown`. So this " "code should work without any issues on CPython." @@ -752,17 +783,18 @@ msgstr "" "fuerzan :const:`None` durante :term:`interpreter shutdown`. Por lo que este " "código debe trabajar sin ningún problema en CPython." -#: ../Doc/library/weakref.rst:532 +#: ../Doc/library/weakref.rst:560 +#, fuzzy msgid "" -"However, handling of :meth:`__del__` methods is notoriously implementation " -"specific, since it depends on internal details of the interpreter's garbage " -"collector implementation." +"However, handling of :meth:`~object.__del__` methods is notoriously " +"implementation specific, since it depends on internal details of the " +"interpreter's garbage collector implementation." msgstr "" "Sin embargo, la gestión de métodos :meth:`__del__` es notoriamente " "específico por la implementación, ya que depende de detalles internos de la " "implementación del recolector de basura del intérprete." -#: ../Doc/library/weakref.rst:536 +#: ../Doc/library/weakref.rst:564 msgid "" "A more robust alternative can be to define a finalizer which only references " "the specific functions and objects that it needs, rather than having access " @@ -772,7 +804,7 @@ msgstr "" "hace referencia a funciones específicas y objetos que necesite, en vez de " "tener acceso al estado completo del objeto::" -#: ../Doc/library/weakref.rst:552 +#: ../Doc/library/weakref.rst:580 msgid "" "Defined like this, our finalizer only receives a reference to the details it " "needs to clean up the directory appropriately. If the object never gets " @@ -782,7 +814,7 @@ msgstr "" "que necesita limpiar los directorios apropiadamente. Si el objeto nueva " "llega a ser recolectado como basura el finalizador aún será llamado al salir." -#: ../Doc/library/weakref.rst:556 +#: ../Doc/library/weakref.rst:584 msgid "" "The other advantage of weakref based finalizers is that they can be used to " "register finalizers for classes where the definition is controlled by a " @@ -793,7 +825,7 @@ msgstr "" "controlado por terceros, como un código que corre cuando un módulo es " "descargado::" -#: ../Doc/library/weakref.rst:568 +#: ../Doc/library/weakref.rst:596 msgid "" "If you create a finalizer object in a daemonic thread just as the program " "exits then there is the possibility that the finalizer does not get called " diff --git a/library/webbrowser.po b/library/webbrowser.po index 011a068618..1812338c6d 100644 --- a/library/webbrowser.po +++ b/library/webbrowser.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-02-14 18:16+0100\n" "Last-Translator: Álvaro Mondéjar \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/webbrowser.rst:2 msgid ":mod:`webbrowser` --- Convenient web-browser controller" @@ -101,11 +100,12 @@ msgstr "" "navegador (\"pestaña\"). Las opciones son, naturalmente, mutuamente " "exclusivas. Ejemplo de uso::" +#: ../Doc/includes/wasm-notavail.rst:3 #, fuzzy msgid ":ref:`Availability `: not Emscripten, not WASI." msgstr ":ref:`Disponibilidad `: no Emscripten, no WASI." -#: ../Doc/library/cpython/Doc/includes/wasm-notavail.rst:5 +#: ../Doc/includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly platforms " "``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for " @@ -257,184 +257,145 @@ msgid "``'firefox'``" msgstr "``'firefox'``" #: ../Doc/library/webbrowser.rst:118 -msgid "``'netscape'``" -msgstr "``'netscape'``" - -#: ../Doc/library/webbrowser.rst:118 -msgid ":class:`Mozilla('netscape')`" -msgstr ":class:`Mozilla('netscape')`" - -#: ../Doc/library/webbrowser.rst:120 -msgid "``'galeon'``" -msgstr "``'galeon'``" - -#: ../Doc/library/webbrowser.rst:120 -msgid ":class:`Galeon('galeon')`" -msgstr ":class:`Galeon('galeon')`" - -#: ../Doc/library/webbrowser.rst:122 msgid "``'epiphany'``" msgstr "``'epiphany'``" -#: ../Doc/library/webbrowser.rst:122 -msgid ":class:`Galeon('epiphany')`" +#: ../Doc/library/webbrowser.rst:118 +#, fuzzy +msgid ":class:`Epiphany('epiphany')`" msgstr ":class:`Galeon('epiphany')`" -#: ../Doc/library/webbrowser.rst:124 -msgid "``'skipstone'``" -msgstr "``'skipstone'``" - -#: ../Doc/library/webbrowser.rst:124 -msgid ":class:`BackgroundBrowser('skipstone')`" -msgstr ":class:`BackgroundBrowser('skipstone')`" - -#: ../Doc/library/webbrowser.rst:126 +#: ../Doc/library/webbrowser.rst:120 msgid "``'kfmclient'``" msgstr "``'kfmclient'``" -#: ../Doc/library/webbrowser.rst:126 ../Doc/library/webbrowser.rst:128 -#: ../Doc/library/webbrowser.rst:130 +#: ../Doc/library/webbrowser.rst:120 ../Doc/library/webbrowser.rst:122 +#: ../Doc/library/webbrowser.rst:124 msgid ":class:`Konqueror()`" msgstr ":class:`Konqueror()`" -#: ../Doc/library/webbrowser.rst:126 ../Doc/library/webbrowser.rst:128 -#: ../Doc/library/webbrowser.rst:130 +#: ../Doc/library/webbrowser.rst:120 ../Doc/library/webbrowser.rst:122 +#: ../Doc/library/webbrowser.rst:124 msgid "\\(1)" msgstr "\\(1)" -#: ../Doc/library/webbrowser.rst:128 +#: ../Doc/library/webbrowser.rst:122 msgid "``'konqueror'``" msgstr "``'konqueror'``" -#: ../Doc/library/webbrowser.rst:130 +#: ../Doc/library/webbrowser.rst:124 msgid "``'kfm'``" msgstr "``'kfm'``" -#: ../Doc/library/webbrowser.rst:132 -msgid "``'mosaic'``" -msgstr "``'mosaic'``" - -#: ../Doc/library/webbrowser.rst:132 -msgid ":class:`BackgroundBrowser('mosaic')`" -msgstr ":class:`BackgroundBrowser('mosaic')`" - -#: ../Doc/library/webbrowser.rst:134 +#: ../Doc/library/webbrowser.rst:126 msgid "``'opera'``" msgstr "``'opera'``" -#: ../Doc/library/webbrowser.rst:134 +#: ../Doc/library/webbrowser.rst:126 msgid ":class:`Opera()`" msgstr ":class:`Opera()`" -#: ../Doc/library/webbrowser.rst:136 -msgid "``'grail'``" -msgstr "``'grail'``" - -#: ../Doc/library/webbrowser.rst:136 -msgid ":class:`Grail()`" -msgstr ":class:`Grail()`" - -#: ../Doc/library/webbrowser.rst:138 +#: ../Doc/library/webbrowser.rst:128 msgid "``'links'``" msgstr "``'links'``" -#: ../Doc/library/webbrowser.rst:138 +#: ../Doc/library/webbrowser.rst:128 msgid ":class:`GenericBrowser('links')`" msgstr ":class:`GenericBrowser('links')`" -#: ../Doc/library/webbrowser.rst:140 +#: ../Doc/library/webbrowser.rst:130 msgid "``'elinks'``" msgstr "``'elinks'``" -#: ../Doc/library/webbrowser.rst:140 +#: ../Doc/library/webbrowser.rst:130 msgid ":class:`Elinks('elinks')`" msgstr ":class:`Elinks('elinks')`" -#: ../Doc/library/webbrowser.rst:142 +#: ../Doc/library/webbrowser.rst:132 msgid "``'lynx'``" msgstr "``'lynx'``" -#: ../Doc/library/webbrowser.rst:142 +#: ../Doc/library/webbrowser.rst:132 msgid ":class:`GenericBrowser('lynx')`" msgstr ":class:`GenericBrowser('lynx')`" -#: ../Doc/library/webbrowser.rst:144 +#: ../Doc/library/webbrowser.rst:134 msgid "``'w3m'``" msgstr "``'w3m'``" -#: ../Doc/library/webbrowser.rst:144 +#: ../Doc/library/webbrowser.rst:134 msgid ":class:`GenericBrowser('w3m')`" msgstr ":class:`GenericBrowser('w3m')`" -#: ../Doc/library/webbrowser.rst:146 +#: ../Doc/library/webbrowser.rst:136 msgid "``'windows-default'``" msgstr "``'windows-default'``" -#: ../Doc/library/webbrowser.rst:146 +#: ../Doc/library/webbrowser.rst:136 msgid ":class:`WindowsDefault`" msgstr ":class:`WindowsDefault`" -#: ../Doc/library/webbrowser.rst:146 +#: ../Doc/library/webbrowser.rst:136 msgid "\\(2)" msgstr "\\(2)" -#: ../Doc/library/webbrowser.rst:148 +#: ../Doc/library/webbrowser.rst:138 msgid "``'macosx'``" msgstr "``'macosx'``" -#: ../Doc/library/webbrowser.rst:148 +#: ../Doc/library/webbrowser.rst:138 msgid ":class:`MacOSXOSAScript('default')`" msgstr ":class:`MacOSXOSAScript('default')`" -#: ../Doc/library/webbrowser.rst:148 ../Doc/library/webbrowser.rst:150 +#: ../Doc/library/webbrowser.rst:138 ../Doc/library/webbrowser.rst:140 msgid "\\(3)" msgstr "\\(3)" -#: ../Doc/library/webbrowser.rst:150 +#: ../Doc/library/webbrowser.rst:140 msgid "``'safari'``" msgstr "``'safari'``" -#: ../Doc/library/webbrowser.rst:150 +#: ../Doc/library/webbrowser.rst:140 msgid ":class:`MacOSXOSAScript('safari')`" msgstr ":class:`MacOSXOSAScript('safari')`" -#: ../Doc/library/webbrowser.rst:152 +#: ../Doc/library/webbrowser.rst:142 msgid "``'google-chrome'``" msgstr "``'google-chrome'``" -#: ../Doc/library/webbrowser.rst:152 +#: ../Doc/library/webbrowser.rst:142 msgid ":class:`Chrome('google-chrome')`" msgstr ":class:`Chrome('google-chrome')`" -#: ../Doc/library/webbrowser.rst:154 +#: ../Doc/library/webbrowser.rst:144 msgid "``'chrome'``" msgstr "``'chrome'``" -#: ../Doc/library/webbrowser.rst:154 +#: ../Doc/library/webbrowser.rst:144 msgid ":class:`Chrome('chrome')`" msgstr ":class:`Chrome('chrome')`" -#: ../Doc/library/webbrowser.rst:156 +#: ../Doc/library/webbrowser.rst:146 msgid "``'chromium'``" msgstr "``'chromium'``" -#: ../Doc/library/webbrowser.rst:156 +#: ../Doc/library/webbrowser.rst:146 msgid ":class:`Chromium('chromium')`" msgstr ":class:`Chromium('chromium')`" -#: ../Doc/library/webbrowser.rst:158 +#: ../Doc/library/webbrowser.rst:148 msgid "``'chromium-browser'``" msgstr "``'chromium-browser'``" -#: ../Doc/library/webbrowser.rst:158 +#: ../Doc/library/webbrowser.rst:148 msgid ":class:`Chromium('chromium-browser')`" msgstr ":class:`Chromium('chromium-browser')`" -#: ../Doc/library/webbrowser.rst:161 +#: ../Doc/library/webbrowser.rst:151 msgid "Notes:" msgstr "Notas:" -#: ../Doc/library/webbrowser.rst:164 +#: ../Doc/library/webbrowser.rst:154 msgid "" "\"Konqueror\" is the file manager for the KDE desktop environment for Unix, " "and only makes sense to use if KDE is running. Some way of reliably " @@ -450,32 +411,39 @@ msgstr "" "usado incluso utilizando el comando :program:`konqueror` con KDE 2 --- la " "implementación selecciona la mejor estrategia para ejecutar Konqueror." -#: ../Doc/library/webbrowser.rst:171 +#: ../Doc/library/webbrowser.rst:161 msgid "Only on Windows platforms." msgstr "Sólo en plataformas Windows." -#: ../Doc/library/webbrowser.rst:174 +#: ../Doc/library/webbrowser.rst:164 msgid "Only on macOS platform." msgstr "Solo en la plataforma macOS." -#: ../Doc/library/webbrowser.rst:176 +#: ../Doc/library/webbrowser.rst:166 msgid "Support for Chrome/Chromium has been added." msgstr "Ha sido añadido soporte para Chrome/Chromium." -#: ../Doc/library/webbrowser.rst:181 +#: ../Doc/library/webbrowser.rst:169 +msgid "" +"Support for several obsolete browsers has been removed. Removed browsers " +"include Grail, Mosaic, Netscape, Galeon, Skipstone, Iceape, and Firefox " +"versions 35 and below." +msgstr "" + +#: ../Doc/library/webbrowser.rst:176 msgid ":class:`MacOSX` is deprecated, use :class:`MacOSXOSAScript` instead." msgstr "" ":class:`MacOSX` es obsoleto, utilice :class:`MacOSXOSAScript` en su lugar." -#: ../Doc/library/webbrowser.rst:182 +#: ../Doc/library/webbrowser.rst:177 msgid "Here are some simple examples::" msgstr "Aquí están algunos ejemplos simples::" -#: ../Doc/library/webbrowser.rst:196 +#: ../Doc/library/webbrowser.rst:191 msgid "Browser Controller Objects" msgstr "Objetos controladores de navegador" -#: ../Doc/library/webbrowser.rst:198 +#: ../Doc/library/webbrowser.rst:193 msgid "" "Browser controllers provide these methods which parallel three of the module-" "level convenience functions:" @@ -483,11 +451,11 @@ msgstr "" "Los controladores de navegador proveen aquellos métodos que son paralelos a " "tres de las funciones de conveniencia a nivel del módulo:" -#: ../Doc/library/webbrowser.rst:204 +#: ../Doc/library/webbrowser.rst:199 msgid "System-dependent name for the browser." msgstr "Nombre dependiente del sistema para el navegador." -#: ../Doc/library/webbrowser.rst:209 +#: ../Doc/library/webbrowser.rst:204 msgid "" "Display *url* using the browser handled by this controller. If *new* is 1, a " "new browser window is opened if possible. If *new* is 2, a new browser page " @@ -497,7 +465,7 @@ msgstr "" "es 1, se abre una nueva ventana del navegador si es posible. Si *new* es 2, " "se abre una nueva página del navegador (\"pestaña\") si es posible." -#: ../Doc/library/webbrowser.rst:216 +#: ../Doc/library/webbrowser.rst:211 msgid "" "Open *url* in a new window of the browser handled by this controller, if " "possible, otherwise, open *url* in the only browser window. Alias :func:" @@ -507,7 +475,7 @@ msgstr "" "si es posible, si no, abre *url* en la única ventana del navegador. Alias :" "func:`open_new`." -#: ../Doc/library/webbrowser.rst:223 +#: ../Doc/library/webbrowser.rst:218 msgid "" "Open *url* in a new page (\"tab\") of the browser handled by this " "controller, if possible, otherwise equivalent to :func:`open_new`." @@ -515,14 +483,44 @@ msgstr "" "Abre *url* en una nueva página (\"pestaña\") del navegador manejado por este " "controlador, si es posible, si no equivale a :func:`open_new`." -#: ../Doc/library/webbrowser.rst:228 +#: ../Doc/library/webbrowser.rst:223 msgid "Footnotes" msgstr "Notas al pie" -#: ../Doc/library/webbrowser.rst:229 +#: ../Doc/library/webbrowser.rst:224 msgid "" "Executables named here without a full path will be searched in the " "directories given in the :envvar:`PATH` environment variable." msgstr "" "Los ejecutables nombrados aquí sin una ruta completa serán buscados en los " "directorios dados en la variable de entorno :envvar:`PATH`." + +#~ msgid "``'netscape'``" +#~ msgstr "``'netscape'``" + +#~ msgid ":class:`Mozilla('netscape')`" +#~ msgstr ":class:`Mozilla('netscape')`" + +#~ msgid "``'galeon'``" +#~ msgstr "``'galeon'``" + +#~ msgid ":class:`Galeon('galeon')`" +#~ msgstr ":class:`Galeon('galeon')`" + +#~ msgid "``'skipstone'``" +#~ msgstr "``'skipstone'``" + +#~ msgid ":class:`BackgroundBrowser('skipstone')`" +#~ msgstr ":class:`BackgroundBrowser('skipstone')`" + +#~ msgid "``'mosaic'``" +#~ msgstr "``'mosaic'``" + +#~ msgid ":class:`BackgroundBrowser('mosaic')`" +#~ msgstr ":class:`BackgroundBrowser('mosaic')`" + +#~ msgid "``'grail'``" +#~ msgstr "``'grail'``" + +#~ msgid ":class:`Grail()`" +#~ msgstr ":class:`Grail()`" diff --git a/library/winreg.po b/library/winreg.po index 042723b5a5..169e9f1047 100644 --- a/library/winreg.po +++ b/library/winreg.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-10-11 15:34-0500\n" "Last-Translator: Juan Alegría \n" "Language: es_CO\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/winreg.rst:2 msgid ":mod:`winreg` --- Windows registry access" @@ -455,9 +455,10 @@ msgstr "" "(FAT), es posible que el nombre del archivo no tenga extensión." #: ../Doc/library/winreg.rst:290 +#, fuzzy msgid "" -"A call to :func:`LoadKey` fails if the calling process does not have the :" -"const:`SE_RESTORE_PRIVILEGE` privilege. Note that privileges are different " +"A call to :func:`LoadKey` fails if the calling process does not have the :c:" +"data:`!SE_RESTORE_PRIVILEGE` privilege. Note that privileges are different " "from permissions -- see the `RegLoadKey documentation `__ for more details." msgstr "" @@ -647,10 +648,11 @@ msgstr "" "asignación de archivos (FAT) mediante el método :meth:`LoadKey`." #: ../Doc/library/winreg.rst:415 +#, fuzzy msgid "" "If *key* represents a key on a remote computer, the path described by " "*file_name* is relative to the remote computer. The caller of this method " -"must possess the :const:`SeBackupPrivilege` security privilege. Note that " +"must possess the **SeBackupPrivilege** security privilege. Note that " "privileges are different than permissions -- see the `Conflicts Between User " "Rights and Permissions documentation `__ for more details." @@ -852,8 +854,9 @@ msgid "Constants" msgstr "Constantes" #: ../Doc/library/winreg.rst:539 +#, fuzzy msgid "" -"The following constants are defined for use in many :mod:`_winreg` functions." +"The following constants are defined for use in many :mod:`winreg` functions." msgstr "" "Las siguientes constantes están definidas para su uso en muchas funciones :" "mod:`_winreg`." @@ -1140,7 +1143,9 @@ msgstr "" "el uso del objeto identificador." #: ../Doc/library/winreg.rst:748 -msgid "Handle objects provide semantics for :meth:`__bool__` -- thus ::" +#, fuzzy +msgid "" +"Handle objects provide semantics for :meth:`~object.__bool__` -- thus ::" msgstr "" "Los objetos de control proporcionan semántica para :meth:`__bool__` -- así ::" @@ -1233,3 +1238,11 @@ msgid "" msgstr "" "cerrará automáticamente *key* cuando el control abandone el bloque :keyword:" "`with`." + +#: ../Doc/library/winreg.rst:242 +msgid "% (percent)" +msgstr "" + +#: ../Doc/library/winreg.rst:242 +msgid "environment variables expansion (Windows)" +msgstr "" diff --git a/library/winsound.po b/library/winsound.po index 826ca7ed46..e7fc359657 100644 --- a/library/winsound.po +++ b/library/winsound.po @@ -1,23 +1,25 @@ # Copyright (C) 2001-2020, Python Software Foundation # This file is distributed under the same license as the Python package. # Maintained by the python-doc-es workteam. -# docs-es@python.org / https://mail.python.org/mailman3/lists/docs-es.python.org/ -# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get the list of volunteers +# docs-es@python.org / +# https://mail.python.org/mailman3/lists/docs-es.python.org/ +# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get +# the list of volunteers # msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-06 11:59-0400\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-10-04 19:13+0100\n" +"Last-Translator: \n" +"Language: es\n" "Language-Team: python-doc-es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: \n" -"Language: es\n" -"X-Generator: Poedit 2.4.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/winsound.rst:2 msgid ":mod:`winsound` --- Sound-playing interface for Windows" @@ -48,10 +50,11 @@ msgstr "" "altavoz, se lanza :exc:`RuntimeError`." #: ../Doc/library/winsound.rst:27 +#, fuzzy msgid "" -"Call the underlying :c:func:`PlaySound` function from the Platform API. The " -"*sound* parameter may be a filename, a system sound alias, audio data as a :" -"term:`bytes-like object`, or ``None``. Its interpretation depends on the " +"Call the underlying :c:func:`!PlaySound` function from the Platform API. " +"The *sound* parameter may be a filename, a system sound alias, audio data as " +"a :term:`bytes-like object`, or ``None``. Its interpretation depends on the " "value of *flags*, which can be a bitwise ORed combination of the constants " "described below. If the *sound* parameter is ``None``, any currently playing " "waveform sound is stopped. If the system indicates an error, :exc:" @@ -67,8 +70,9 @@ msgstr "" "lanza :exc:`RuntimeError`` ." #: ../Doc/library/winsound.rst:38 +#, fuzzy msgid "" -"Call the underlying :c:func:`MessageBeep` function from the Platform API. " +"Call the underlying :c:func:`!MessageBeep` function from the Platform API. " "This plays a sound as specified in the registry. The *type* argument " "specifies which sound to play; possible values are ``-1``, " "``MB_ICONASTERISK``, ``MB_ICONEXCLAMATION``, ``MB_ICONHAND``, " diff --git a/library/wsgiref.po b/library/wsgiref.po index 1e5fef7b2e..0e47c59e8b 100644 --- a/library/wsgiref.po +++ b/library/wsgiref.po @@ -11,23 +11,26 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-26 19:11-0300\n" "Last-Translator: Sofía Denner \n" -"Language-Team: Spanish - Spain \n" "Language: es_ES\n" +"Language-Team: Spanish - Spain \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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/wsgiref.rst:2 msgid ":mod:`wsgiref` --- WSGI Utilities and Reference Implementation" msgstr ":mod:`wsgiref` --- Utilidades WSGI e implementación de referencia" -#: ../Doc/library/wsgiref.rst:12 +#: ../Doc/library/wsgiref.rst:10 +msgid "**Source code:** :source:`Lib/wsgiref`" +msgstr "" + +#: ../Doc/library/wsgiref.rst:14 msgid "" "The Web Server Gateway Interface (WSGI) is a standard interface between web " "server software and web applications written in Python. Having a standard " @@ -39,7 +42,7 @@ msgstr "" "aplicaciones web escritas en Python. Con una interfaz estándar es más " "sencillo usar una aplicación que soporte WSGI con diferentes servidores web." -#: ../Doc/library/wsgiref.rst:17 +#: ../Doc/library/wsgiref.rst:19 msgid "" "Only authors of web servers and programming frameworks need to know every " "detail and corner case of the WSGI design. You don't need to understand " @@ -51,7 +54,7 @@ msgstr "" "de WSGI sólo para instalar o escribir una aplicación web usando un " "*framework* existente." -#: ../Doc/library/wsgiref.rst:22 +#: ../Doc/library/wsgiref.rst:24 msgid "" ":mod:`wsgiref` is a reference implementation of the WSGI specification that " "can be used to add WSGI support to a web server or framework. It provides " @@ -70,7 +73,7 @@ msgstr "" "comprueba la compatibilidad de servidores y aplicaciones WSGI en base a la " "especificación :pep:`3333`." -#: ../Doc/library/wsgiref.rst:30 +#: ../Doc/library/wsgiref.rst:32 msgid "" "See `wsgi.readthedocs.io `_ for more " "information about WSGI, and links to tutorials and other resources." @@ -78,11 +81,11 @@ msgstr "" "Vea `wsgi.readthedocs.io `_ para más " "información sobre WSGI, así como enlaces a tutoriales y otros recursos." -#: ../Doc/library/wsgiref.rst:37 +#: ../Doc/library/wsgiref.rst:39 msgid ":mod:`wsgiref.util` -- WSGI environment utilities" msgstr ":mod:`wsgiref.util` -- Utilidades de entorno WSGI" -#: ../Doc/library/wsgiref.rst:43 +#: ../Doc/library/wsgiref.rst:45 msgid "" "This module provides a variety of utility functions for working with WSGI " "environments. A WSGI environment is a dictionary containing HTTP request " @@ -99,7 +102,7 @@ msgstr "" "tipos que pueden usarse en las anotaciones de tipo en :data:`~wsgiref.types." "WSGIEnvironment`." -#: ../Doc/library/wsgiref.rst:54 +#: ../Doc/library/wsgiref.rst:56 msgid "" "Return a guess for whether ``wsgi.url_scheme`` should be \"http\" or " "\"https\", by checking for a ``HTTPS`` environment variable in the *environ* " @@ -109,7 +112,7 @@ msgstr "" "\"http\" o \"https\", buscando la variable de entorno ``HTTPS`` en el " "diccionario *environ*. El valor de retorno es una cadena." -#: ../Doc/library/wsgiref.rst:58 +#: ../Doc/library/wsgiref.rst:60 msgid "" "This function is useful when creating a gateway that wraps CGI or a CGI-like " "protocol such as FastCGI. Typically, servers providing such protocols will " @@ -123,7 +126,7 @@ msgstr "" "\"on\" cuando reciben una petición vía SSL. Así, esta función retorna " "\"https\" si encuentra ese valor, o \"http\", en caso contrario." -#: ../Doc/library/wsgiref.rst:67 +#: ../Doc/library/wsgiref.rst:69 msgid "" "Return the full request URI, optionally including the query string, using " "the algorithm found in the \"URL Reconstruction\" section of :pep:`3333`. " @@ -135,7 +138,7 @@ msgstr "" "`3333`. Si *include_query* es falso, la cadena de consulta no se incluye en " "la URI resultante." -#: ../Doc/library/wsgiref.rst:74 +#: ../Doc/library/wsgiref.rst:76 msgid "" "Similar to :func:`request_uri`, except that the ``PATH_INFO`` and " "``QUERY_STRING`` variables are ignored. The result is the base URI of the " @@ -145,7 +148,7 @@ msgstr "" "``PATH_INFO`` y ``QUERY_STRING``. El resultado es la URI base del objeto de " "aplicación indicado en la petición." -#: ../Doc/library/wsgiref.rst:81 +#: ../Doc/library/wsgiref.rst:83 msgid "" "Shift a single name from ``PATH_INFO`` to ``SCRIPT_NAME`` and return the " "name. The *environ* dictionary is *modified* in-place; use a copy if you " @@ -155,13 +158,13 @@ msgstr "" "nombre. Se modifica el diccionario *environ*, por lo que se deberá usar una " "copia si se quiere mantener ``PATH_INFO`` o ``SCRIPT_NAME`` intactos." -#: ../Doc/library/wsgiref.rst:85 +#: ../Doc/library/wsgiref.rst:87 msgid "" "If there are no remaining path segments in ``PATH_INFO``, ``None`` is " "returned." msgstr "Si no quedan segmentos en ``PATH_INFO``, retornará ``None``." -#: ../Doc/library/wsgiref.rst:87 +#: ../Doc/library/wsgiref.rst:89 msgid "" "Typically, this routine is used to process each portion of a request URI " "path, for example to treat the path as a series of dictionary keys. This " @@ -184,7 +187,7 @@ msgstr "" "aplicación WSGI en ``/foo/bar``. Es decir, ``SCRIPT_NAME`` cambiará de ``/" "foo`` a ``/foo/bar`` y ``PATH_INFO`` cambiará de ``/bar/baz`` a ``/baz``." -#: ../Doc/library/wsgiref.rst:98 +#: ../Doc/library/wsgiref.rst:100 msgid "" "When ``PATH_INFO`` is just a \"/\", this routine returns an empty string and " "appends a trailing slash to ``SCRIPT_NAME``, even though empty path segments " @@ -200,13 +203,13 @@ msgstr "" "una aplicación puede diferenciar entre URIs que acaban en ``/x`` de las que " "acaban en ``/x/`` cuando usan esta rutina para atravesar objetos." -#: ../Doc/library/wsgiref.rst:108 +#: ../Doc/library/wsgiref.rst:110 msgid "Update *environ* with trivial defaults for testing purposes." msgstr "" "Actualiza *environ* con valores por defecto triviales con propósito de " "prueba." -#: ../Doc/library/wsgiref.rst:110 +#: ../Doc/library/wsgiref.rst:112 msgid "" "This routine adds various parameters required for WSGI, including " "``HTTP_HOST``, ``SERVER_NAME``, ``SERVER_PORT``, ``REQUEST_METHOD``, " @@ -220,7 +223,7 @@ msgstr "" "en :pep:`3333`. Sólo ofrece valores por defecto y no reemplaza ningún valor " "existente en esas variables." -#: ../Doc/library/wsgiref.rst:116 +#: ../Doc/library/wsgiref.rst:118 msgid "" "This routine is intended to make it easier for unit tests of WSGI servers " "and applications to set up dummy environments. It should NOT be used by " @@ -230,12 +233,12 @@ msgstr "" "pruebas unitarias de servidores y aplicaciones WSGI. NO debería usarse en " "servidores y aplicaciones WSGI reales, ya que los valores son ficticios!" -#: ../Doc/library/wsgiref.rst:120 ../Doc/library/wsgiref.rst:168 -#: ../Doc/library/wsgiref.rst:290 ../Doc/library/wsgiref.rst:423 +#: ../Doc/library/wsgiref.rst:122 ../Doc/library/wsgiref.rst:170 +#: ../Doc/library/wsgiref.rst:292 ../Doc/library/wsgiref.rst:425 msgid "Example usage::" msgstr "Ejemplo de uso::" -#: ../Doc/library/wsgiref.rst:144 +#: ../Doc/library/wsgiref.rst:146 msgid "" "In addition to the environment functions above, the :mod:`wsgiref.util` " "module also provides these miscellaneous utilities:" @@ -243,7 +246,7 @@ msgstr "" "Además de las funciones de entorno previas, el módulo :mod:`wsgiref.util` " "también ofrece las siguientes utilidades varias:" -#: ../Doc/library/wsgiref.rst:150 +#: ../Doc/library/wsgiref.rst:152 msgid "" "Return ``True`` if 'header_name' is an HTTP/1.1 \"Hop-by-Hop\" header, as " "defined by :rfc:`2616`." @@ -251,7 +254,7 @@ msgstr "" "Retorna ``True`` si 'header_name' es una cabecera \"Hop-by-Hop\" HTTP/1.1, " "como se define en :rfc:`2616`." -#: ../Doc/library/wsgiref.rst:156 +#: ../Doc/library/wsgiref.rst:158 msgid "" "A concrete implementation of the :class:`wsgiref.types.FileWrapper` protocol " "used to convert a file-like object to an :term:`iterator`. The resulting " @@ -268,7 +271,7 @@ msgstr "" "Cuando :meth:`read` retorna una cadena de bytes vacía, la iteración " "finalizará y no se podrá reiniciar." -#: ../Doc/library/wsgiref.rst:164 +#: ../Doc/library/wsgiref.rst:166 msgid "" "If *filelike* has a :meth:`close` method, the returned object will also have " "a :meth:`close` method, and it will invoke the *filelike* object's :meth:" @@ -278,18 +281,18 @@ msgstr "" "tendrá un método :meth:`close` que llamará al método :meth:`close` del " "objeto archivo subyacente." -#: ../Doc/library/wsgiref.rst:180 +#: ../Doc/library/wsgiref.rst:182 msgid "Support for :meth:`__getitem__` method has been removed." msgstr "" "Se ha quitado el soporte para el método :meth:`sequence protocol " "<__getitem__>`." -#: ../Doc/library/wsgiref.rst:185 +#: ../Doc/library/wsgiref.rst:187 msgid ":mod:`wsgiref.headers` -- WSGI response header tools" msgstr "" ":mod:`wsgiref.headers` -- Herramientas para cabeceras de respuesta WSGI" -#: ../Doc/library/wsgiref.rst:191 +#: ../Doc/library/wsgiref.rst:193 msgid "" "This module provides a single class, :class:`Headers`, for convenient " "manipulation of WSGI response headers using a mapping-like interface." @@ -297,7 +300,7 @@ msgstr "" "Este módulo ofrece una sola clase, :class:`Headers`, para la manipulación de " "cabeceras de respuesta WSGI usando un interfaz de mapa." -#: ../Doc/library/wsgiref.rst:197 +#: ../Doc/library/wsgiref.rst:199 msgid "" "Create a mapping-like object wrapping *headers*, which must be a list of " "header name/value tuples as described in :pep:`3333`. The default value of " @@ -307,7 +310,7 @@ msgstr "" "lista de tuplas nombre/valor de las cabeceras, como se describe en :pep:" "`3333`. El valor por defecto de *headers* es una lista vacía." -#: ../Doc/library/wsgiref.rst:201 +#: ../Doc/library/wsgiref.rst:203 msgid "" ":class:`Headers` objects support typical mapping operations including :meth:" "`__getitem__`, :meth:`get`, :meth:`__setitem__`, :meth:`setdefault`, :meth:" @@ -328,7 +331,7 @@ msgstr "" "cabeceras. En general, el orden de las cabeceras existentes se mantiene, con " "las nuevas cabeceras añadidas al final de la lista de cabeceras." -#: ../Doc/library/wsgiref.rst:210 +#: ../Doc/library/wsgiref.rst:212 msgid "" "Unlike a dictionary, :class:`Headers` objects do not raise an error when you " "try to get or delete a key that isn't in the wrapped header list. Getting a " @@ -341,7 +344,7 @@ msgstr "" "simplemente se retornará ``None``, mientras que el intento de eliminación de " "una cabecera inexistente simplemente no tendrá ningún efecto." -#: ../Doc/library/wsgiref.rst:215 +#: ../Doc/library/wsgiref.rst:217 msgid "" ":class:`Headers` objects also support :meth:`keys`, :meth:`values`, and :" "meth:`items` methods. The lists returned by :meth:`keys` and :meth:`items` " @@ -359,7 +362,7 @@ msgstr "" "de la lista de cabeceras envuelta. De hecho, el método :meth:`items` " "simplemente retorna una copia de la lista de cabeceras." -#: ../Doc/library/wsgiref.rst:222 +#: ../Doc/library/wsgiref.rst:224 msgid "" "Calling ``bytes()`` on a :class:`Headers` object returns a formatted " "bytestring suitable for transmission as HTTP response headers. Each header " @@ -373,7 +376,7 @@ msgstr "" "puntos y un espacio. Cada línea finaliza con un retorno de carro y un salto " "de línea, y la cadena de bytes finaliza con una línea en blanco." -#: ../Doc/library/wsgiref.rst:228 +#: ../Doc/library/wsgiref.rst:230 msgid "" "In addition to their mapping interface and formatting features, :class:" "`Headers` objects also have the following methods for querying and adding " @@ -384,11 +387,11 @@ msgstr "" "consultar y añadir cabeceras con múltiples valores, y para añadir cabeceras " "con parámetros MIME:" -#: ../Doc/library/wsgiref.rst:235 +#: ../Doc/library/wsgiref.rst:237 msgid "Return a list of all the values for the named header." msgstr "Retorna una lista de todos los valores para la cabecera indicada." -#: ../Doc/library/wsgiref.rst:237 +#: ../Doc/library/wsgiref.rst:239 msgid "" "The returned list will be sorted in the order they appeared in the original " "header list or were added to this instance, and may contain duplicates. Any " @@ -401,7 +404,7 @@ msgstr "" "la lista. Si no existen campos con el nombre indicado, retornará una lista " "vacía." -#: ../Doc/library/wsgiref.rst:245 +#: ../Doc/library/wsgiref.rst:247 msgid "" "Add a (possibly multi-valued) header, with optional MIME parameters " "specified via keyword arguments." @@ -409,7 +412,7 @@ msgstr "" "Añade una cabecera, posiblemente de valor múltiple, con los parámetros MIME " "opcionales especificados vía argumentos por palabra clave." -#: ../Doc/library/wsgiref.rst:248 +#: ../Doc/library/wsgiref.rst:250 msgid "" "*name* is the header field to add. Keyword arguments can be used to set " "MIME parameters for the header field. Each parameter must be a string or " @@ -430,19 +433,19 @@ msgstr "" "se añade el nombre del parámetro, para reflejar parámetros MIME sin valor. " "Ejemplo de uso::" -#: ../Doc/library/wsgiref.rst:258 +#: ../Doc/library/wsgiref.rst:260 msgid "The above will add a header that looks like this::" msgstr "El código anterior añadirá una cabecera como la siguiente::" -#: ../Doc/library/wsgiref.rst:263 +#: ../Doc/library/wsgiref.rst:265 msgid "*headers* parameter is optional." msgstr "El parámetro *headers* es opcional." -#: ../Doc/library/wsgiref.rst:268 +#: ../Doc/library/wsgiref.rst:270 msgid ":mod:`wsgiref.simple_server` -- a simple WSGI HTTP server" msgstr ":mod:`wsgiref.simple_server`-- Un servidor HTTP WSGI simple" -#: ../Doc/library/wsgiref.rst:274 +#: ../Doc/library/wsgiref.rst:276 msgid "" "This module implements a simple HTTP server (based on :mod:`http.server`) " "that serves WSGI applications. Each server instance serves a single WSGI " @@ -460,7 +463,7 @@ msgstr "" "invocar para cada petición. Por ejemplo, usando la función :func:" "`shift_path_info` de :mod:`wsgiref.util`." -#: ../Doc/library/wsgiref.rst:285 +#: ../Doc/library/wsgiref.rst:287 msgid "" "Create a new WSGI server listening on *host* and *port*, accepting " "connections for *app*. The return value is an instance of the supplied " @@ -473,7 +476,7 @@ msgstr "" "*server_class* y procesará peticiones usando *handler_class*. *app* debe ser " "un objeto aplicación WSGI, como se define en :pep:`3333`." -#: ../Doc/library/wsgiref.rst:306 +#: ../Doc/library/wsgiref.rst:308 msgid "" "This function is a small but complete WSGI application that returns a text " "page containing the message \"Hello world!\" and a list of the key/value " @@ -487,7 +490,7 @@ msgstr "" "servidor WSGI, como :mod:`wsgiref.simple_server`, es capaz de ejecutar una " "aplicación WSGI simple correctamente." -#: ../Doc/library/wsgiref.rst:315 +#: ../Doc/library/wsgiref.rst:317 msgid "" "Create a :class:`WSGIServer` instance. *server_address* should be a ``(host," "port)`` tuple, and *RequestHandlerClass* should be the subclass of :class:" @@ -498,7 +501,7 @@ msgstr "" "class:`http.server.BaseHTTPRequestHandler` que se usará para procesar " "peticiones." -#: ../Doc/library/wsgiref.rst:320 +#: ../Doc/library/wsgiref.rst:322 msgid "" "You do not normally need to call this constructor, as the :func:" "`make_server` function can handle all the details for you." @@ -506,7 +509,7 @@ msgstr "" "Normalmente, no es necesario invocar este constructor, ya que la función :" "func:`make_server` puede gestionar todos los detalles." -#: ../Doc/library/wsgiref.rst:323 +#: ../Doc/library/wsgiref.rst:325 msgid "" ":class:`WSGIServer` is a subclass of :class:`http.server.HTTPServer`, so all " "of its methods (such as :meth:`serve_forever` and :meth:`handle_request`) " @@ -517,7 +520,7 @@ msgstr "" "`handle_request`, están disponibles. :class:`WSGIServer` también ofrece los " "siguientes métodos específicos de WSGI:" -#: ../Doc/library/wsgiref.rst:330 +#: ../Doc/library/wsgiref.rst:332 msgid "" "Sets the callable *application* as the WSGI application that will receive " "requests." @@ -525,11 +528,11 @@ msgstr "" "Establece el invocable *application* como la aplicación WSGI que recibirá " "las peticiones." -#: ../Doc/library/wsgiref.rst:336 +#: ../Doc/library/wsgiref.rst:338 msgid "Returns the currently set application callable." msgstr "Retorna la aplicación invocable actualmente establecida." -#: ../Doc/library/wsgiref.rst:338 +#: ../Doc/library/wsgiref.rst:340 msgid "" "Normally, however, you do not need to use these additional methods, as :meth:" "`set_app` is normally called by :func:`make_server`, and the :meth:`get_app` " @@ -539,7 +542,7 @@ msgstr "" "ya que :meth:`set_app` se llama desde :func:`make_server` y :meth:`get_app` " "existe sobretodo para el beneficio de instancias del gestor de peticiones." -#: ../Doc/library/wsgiref.rst:345 +#: ../Doc/library/wsgiref.rst:347 msgid "" "Create an HTTP handler for the given *request* (i.e. a socket), " "*client_address* (a ``(host,port)`` tuple), and *server* (:class:" @@ -549,7 +552,7 @@ msgstr "" "*client_address (una tupla ``(máquina,puerto)``), y *server* (una instancia :" "class:`WSGIServer`)." -#: ../Doc/library/wsgiref.rst:348 +#: ../Doc/library/wsgiref.rst:350 msgid "" "You do not need to create instances of this class directly; they are " "automatically created as needed by :class:`WSGIServer` objects. You can, " @@ -563,7 +566,7 @@ msgstr "" "la función :func:`make_server`. Algunos métodos posiblemente relevantes para " "sobreescribir en estas subclases:" -#: ../Doc/library/wsgiref.rst:357 +#: ../Doc/library/wsgiref.rst:359 msgid "" "Return a :data:`~wsgiref.types.WSGIEnvironment` dictionary for a request. " "The default implementation copies the contents of the :class:`WSGIServer` " @@ -579,7 +582,7 @@ msgstr "" "retornar un nuevo diccionario con todas las variables de entorno CGI " "relevantes especificadas en :pep:`3333`." -#: ../Doc/library/wsgiref.rst:368 +#: ../Doc/library/wsgiref.rst:370 msgid "" "Return the object that should be used as the ``wsgi.errors`` stream. The " "default implementation just returns ``sys.stderr``." @@ -587,7 +590,7 @@ msgstr "" "Retorna el objeto que debe usarse como el flujo de ``wsgi.errors``. La " "implementación por defecto retorna simplemente ``sys.stderr``." -#: ../Doc/library/wsgiref.rst:374 +#: ../Doc/library/wsgiref.rst:376 msgid "" "Process the HTTP request. The default implementation creates a handler " "instance using a :mod:`wsgiref.handlers` class to implement the actual WSGI " @@ -597,11 +600,11 @@ msgstr "" "gestora usando una clase :mod:`wsgiref.handlers` para implementar la " "interfaz de aplicación WSGI real." -#: ../Doc/library/wsgiref.rst:380 +#: ../Doc/library/wsgiref.rst:382 msgid ":mod:`wsgiref.validate` --- WSGI conformance checker" msgstr ":mod:`wsgiref.validate` --- Verificador de compatibilidad WSGI" -#: ../Doc/library/wsgiref.rst:386 +#: ../Doc/library/wsgiref.rst:388 msgid "" "When creating new WSGI application objects, frameworks, servers, or " "middleware, it can be useful to validate the new code's conformance using :" @@ -617,7 +620,7 @@ msgstr "" "o *gateway* WSGI y un objeto de aplicación WSGI, para comprobar la " "compatibilidad del protocolo en ambos lados." -#: ../Doc/library/wsgiref.rst:393 +#: ../Doc/library/wsgiref.rst:395 #, python-format msgid "" "Note that this utility does not guarantee complete :pep:`3333` compliance; " @@ -631,7 +634,7 @@ msgstr "" "existan errores. Sin embargo, si este módulo produce errores, implica que o " "el servidor o la aplicación no son 100% compatibles." -#: ../Doc/library/wsgiref.rst:398 +#: ../Doc/library/wsgiref.rst:400 msgid "" "This module is based on the :mod:`paste.lint` module from Ian Bicking's " "\"Python Paste\" library." @@ -639,7 +642,7 @@ msgstr "" "Este módulo se basa en el módulo :mod:`paste.lint` de la librería *Python " "Paste* de *Ian Bicking*." -#: ../Doc/library/wsgiref.rst:404 +#: ../Doc/library/wsgiref.rst:406 msgid "" "Wrap *application* and return a new WSGI application object. The returned " "application will forward all requests to the original *application*, and " @@ -651,7 +654,7 @@ msgstr "" "original y comprobará que tanto la *application* como el servidor que la " "llama son compatibles con la especificación WSGI y con :rfc:`2616`." -#: ../Doc/library/wsgiref.rst:409 +#: ../Doc/library/wsgiref.rst:411 msgid "" "Any detected nonconformance results in an :exc:`AssertionError` being " "raised; note, however, that how these errors are handled is server-" @@ -669,7 +672,7 @@ msgstr "" "un mensaje de que el error ha ocurrido y volcarán la traza de error en ``sys." "stderr`` o algún otro flujo de errores." -#: ../Doc/library/wsgiref.rst:416 +#: ../Doc/library/wsgiref.rst:418 msgid "" "This wrapper may also generate output using the :mod:`warnings` module to " "indicate behaviors that are questionable but which may not actually be " @@ -685,11 +688,11 @@ msgstr "" "`warnings`, cualquier aviso se escribirá en ``sys.stderr``, en lugar de en " "``wsgi.errors``, aunque sean el mismo objeto." -#: ../Doc/library/wsgiref.rst:448 +#: ../Doc/library/wsgiref.rst:450 msgid ":mod:`wsgiref.handlers` -- server/gateway base classes" msgstr ":mod:`wsgiref.handlers` -- Clases base servidor/*gateway*" -#: ../Doc/library/wsgiref.rst:454 +#: ../Doc/library/wsgiref.rst:456 msgid "" "This module provides base handler classes for implementing WSGI servers and " "gateways. These base classes handle most of the work of communicating with " @@ -701,7 +704,7 @@ msgstr "" "comunicarse con una aplicación WSGI, siempre que se les dé un entorno CGI, " "junto con una entrada, una salida, y un flujo de errores." -#: ../Doc/library/wsgiref.rst:462 +#: ../Doc/library/wsgiref.rst:464 msgid "" "CGI-based invocation via ``sys.stdin``, ``sys.stdout``, ``sys.stderr`` and " "``os.environ``. This is useful when you have a WSGI application and want to " @@ -714,7 +717,7 @@ msgstr "" "run(app)``, donde ``app`` es el objeto de aplicación WSGI que se quiere " "invocar." -#: ../Doc/library/wsgiref.rst:467 +#: ../Doc/library/wsgiref.rst:469 msgid "" "This class is a subclass of :class:`BaseCGIHandler` that sets ``wsgi." "run_once`` to true, ``wsgi.multithread`` to false, and ``wsgi.multiprocess`` " @@ -726,7 +729,7 @@ msgstr "" "cierto, y siempre usa :mod:`sys` y :mod:`os` para obtener los flujos y " "entorno CGI necesarios." -#: ../Doc/library/wsgiref.rst:475 +#: ../Doc/library/wsgiref.rst:477 msgid "" "A specialized alternative to :class:`CGIHandler`, for use when deploying on " "Microsoft's IIS web server, without having set the config allowPathInfo " @@ -737,7 +740,7 @@ msgstr "" "``allowPathInfo`` (IIS>=7) o la meta-base ``allowPathInfoForScriptMappings`` " "(IIS<7)." -#: ../Doc/library/wsgiref.rst:479 +#: ../Doc/library/wsgiref.rst:481 msgid "" "By default, IIS gives a ``PATH_INFO`` that duplicates the ``SCRIPT_NAME`` at " "the front, causing problems for WSGI applications that wish to implement " @@ -747,7 +750,7 @@ msgstr "" "principio, causando problemas con aplicaciones WSGI que implementan " "enrutamiento. Este gestor elimina las partes duplicadas de la ruta." -#: ../Doc/library/wsgiref.rst:483 +#: ../Doc/library/wsgiref.rst:485 msgid "" "IIS can be configured to pass the correct ``PATH_INFO``, but this causes " "another bug where ``PATH_TRANSLATED`` is wrong. Luckily this variable is " @@ -766,7 +769,7 @@ msgstr "" "IIS<7 casi nunca se implementa con la solución (incluso IIS7 rara vez lo usa " "porque todavía no tiene una interfaz de usuario)." -#: ../Doc/library/wsgiref.rst:491 +#: ../Doc/library/wsgiref.rst:493 msgid "" "There is no way for CGI code to tell whether the option was set, so a " "separate handler class is provided. It is used in the same way as :class:" @@ -778,7 +781,7 @@ msgstr "" "que :class:`CGIHandler`, p.e. llamando a ``IISCGIHandler().run(app)``, donde " "``app`` es el objeto aplicación WSGI que se desea invocar." -#: ../Doc/library/wsgiref.rst:501 +#: ../Doc/library/wsgiref.rst:503 msgid "" "Similar to :class:`CGIHandler`, but instead of using the :mod:`sys` and :mod:" "`os` modules, the CGI environment and I/O streams are specified explicitly. " @@ -792,7 +795,7 @@ msgstr "" "aplicaciones ejecutadas por la instancia de gestión como ``wsgi." "multithread`` y ``wsgi.multiprocess``." -#: ../Doc/library/wsgiref.rst:507 +#: ../Doc/library/wsgiref.rst:509 msgid "" "This class is a subclass of :class:`SimpleHandler` intended for use with " "software other than HTTP \"origin servers\". If you are writing a gateway " @@ -807,7 +810,7 @@ msgstr "" "un estado HTTP, probablemente sea adecuado heredar de esta clase, en lugar " "de :class:`SimpleHandler`." -#: ../Doc/library/wsgiref.rst:516 +#: ../Doc/library/wsgiref.rst:518 msgid "" "Similar to :class:`BaseCGIHandler`, but designed for use with HTTP origin " "servers. If you are writing an HTTP server implementation, you will " @@ -818,7 +821,7 @@ msgstr "" "escribir una implementación de un servidor HTTP, probablemente prefiera " "heredar de esta clase en lugar de :class:`BaseCGIHandler`." -#: ../Doc/library/wsgiref.rst:520 +#: ../Doc/library/wsgiref.rst:522 msgid "" "This class is a subclass of :class:`BaseHandler`. It overrides the :meth:" "`__init__`, :meth:`get_stdin`, :meth:`get_stderr`, :meth:`add_cgi_vars`, :" @@ -834,7 +837,7 @@ msgstr "" "los flujos especificados se almacenan en los atributos :attr:`stdin`, :attr:" "`stdout`, :attr:`stderr` y :attr:`environ`." -#: ../Doc/library/wsgiref.rst:527 +#: ../Doc/library/wsgiref.rst:529 msgid "" "The :meth:`~io.BufferedIOBase.write` method of *stdout* should write each " "chunk in full, like :class:`io.BufferedIOBase`." @@ -842,7 +845,7 @@ msgstr "" "El método :meth:`~io.BufferedIOBase.write` de *stdout* podría escribir cada " "fragmento de información completamente, como :class:`io.BufferedIOBase`." -#: ../Doc/library/wsgiref.rst:533 +#: ../Doc/library/wsgiref.rst:535 msgid "" "This is an abstract base class for running WSGI applications. Each instance " "will handle a single HTTP request, although in principle you could create a " @@ -852,18 +855,18 @@ msgstr "" "instancia gestionará una sola petición HTTP, aunque en principio se podría " "crear una subclase reutilizable para múltiples peticiones." -#: ../Doc/library/wsgiref.rst:537 +#: ../Doc/library/wsgiref.rst:539 msgid "" ":class:`BaseHandler` instances have only one method intended for external " "use:" msgstr "" "Las instancias de :class:`BaseHandler` tiene un sólo método para uso externo:" -#: ../Doc/library/wsgiref.rst:542 +#: ../Doc/library/wsgiref.rst:544 msgid "Run the specified WSGI application, *app*." msgstr "Ejecuta la aplicación WSGI *app* indicada." -#: ../Doc/library/wsgiref.rst:544 +#: ../Doc/library/wsgiref.rst:546 msgid "" "All of the other :class:`BaseHandler` methods are invoked by this method in " "the process of running the application, and thus exist primarily to allow " @@ -873,11 +876,11 @@ msgstr "" "en el proceso de ejecutar la aplicación, es decir, existen principalmente " "para permitir personalizar el proceso." -#: ../Doc/library/wsgiref.rst:548 +#: ../Doc/library/wsgiref.rst:550 msgid "The following methods MUST be overridden in a subclass:" msgstr "Los métodos siguientes DEBEN sobrescribirse en una subclase:" -#: ../Doc/library/wsgiref.rst:553 +#: ../Doc/library/wsgiref.rst:555 msgid "" "Buffer the bytes *data* for transmission to the client. It's okay if this " "method actually transmits the data; :class:`BaseHandler` just separates " @@ -889,7 +892,7 @@ msgstr "" "simplemente separa las operaciones de escritura y liberación para una mayor " "eficiencia cuando el sistema subyacente realmente hace esa distinción." -#: ../Doc/library/wsgiref.rst:561 +#: ../Doc/library/wsgiref.rst:563 msgid "" "Force buffered data to be transmitted to the client. It's okay if this " "method is a no-op (i.e., if :meth:`_write` actually sends the data)." @@ -898,7 +901,7 @@ msgstr "" "este método no es operativo, p.e., si :meth:`_write` realmente envía los " "datos." -#: ../Doc/library/wsgiref.rst:567 +#: ../Doc/library/wsgiref.rst:569 msgid "" "Return an object compatible with :class:`~wsgiref.types.InputStream` " "suitable for use as the ``wsgi.input`` of the request currently being " @@ -908,7 +911,7 @@ msgstr "" "apropiado para usar como ``wsgi.input`` de la petición en proceso " "actualmente." -#: ../Doc/library/wsgiref.rst:574 +#: ../Doc/library/wsgiref.rst:576 msgid "" "Return an object compatible with :class:`~wsgiref.types.ErrorStream` " "suitable for use as the ``wsgi.errors`` of the request currently being " @@ -918,7 +921,7 @@ msgstr "" "apropiado para usar como ``wsgi.errors`` de la petición en proceso " "actualmente." -#: ../Doc/library/wsgiref.rst:581 +#: ../Doc/library/wsgiref.rst:583 msgid "" "Insert CGI variables for the current request into the :attr:`environ` " "attribute." @@ -926,7 +929,7 @@ msgstr "" "Inserta las variables CGI para la petición actual en el atributo :attr:" "`environ`." -#: ../Doc/library/wsgiref.rst:583 +#: ../Doc/library/wsgiref.rst:585 msgid "" "Here are some other methods and attributes you may wish to override. This " "list is only a summary, however, and does not include every method that can " @@ -940,11 +943,11 @@ msgstr "" "docstrings y el código fuente para obtener información adicional antes de " "intentar crear una subclase de :class:`BaseHandler` personalizada." -#: ../Doc/library/wsgiref.rst:589 +#: ../Doc/library/wsgiref.rst:591 msgid "Attributes and methods for customizing the WSGI environment:" msgstr "Atributos y métodos para personalizar el entorno WSGI:" -#: ../Doc/library/wsgiref.rst:594 +#: ../Doc/library/wsgiref.rst:596 msgid "" "The value to be used for the ``wsgi.multithread`` environment variable. It " "defaults to true in :class:`BaseHandler`, but may have a different default " @@ -954,7 +957,7 @@ msgstr "" "es cierto en :class:`BaseHandler`, pero puede tener un valor por defecto " "distinto (o establecerse en el constructor) en otras subclases." -#: ../Doc/library/wsgiref.rst:601 +#: ../Doc/library/wsgiref.rst:603 msgid "" "The value to be used for the ``wsgi.multiprocess`` environment variable. It " "defaults to true in :class:`BaseHandler`, but may have a different default " @@ -964,7 +967,7 @@ msgstr "" "es cierto en :class:`BaseHandler`, pero puede tener un valor por defecto " "distinto (o establecerse en el constructor) en otras subclases." -#: ../Doc/library/wsgiref.rst:608 +#: ../Doc/library/wsgiref.rst:610 msgid "" "The value to be used for the ``wsgi.run_once`` environment variable. It " "defaults to false in :class:`BaseHandler`, but :class:`CGIHandler` sets it " @@ -974,7 +977,7 @@ msgstr "" "falso en :class:`BaseHandler`, pero en :class:`CGIHandler` es cierto por " "defecto." -#: ../Doc/library/wsgiref.rst:615 +#: ../Doc/library/wsgiref.rst:617 msgid "" "The default environment variables to be included in every request's WSGI " "environment. By default, this is a copy of ``os.environ`` at the time that :" @@ -990,7 +993,7 @@ msgstr "" "diccionario se debe considerar como de sólo lectura, ya que el valor por " "defecto se comparte entre múltiples clases e instancias." -#: ../Doc/library/wsgiref.rst:625 +#: ../Doc/library/wsgiref.rst:627 msgid "" "If the :attr:`origin_server` attribute is set, this attribute's value is " "used to set the default ``SERVER_SOFTWARE`` WSGI environment variable, and " @@ -1004,7 +1007,7 @@ msgstr "" "HTTP. Las clases gestoras que no son *HTTP origin servers*, como :class:" "`BaseCGIHandler` y :class:`CGIHandler`, ignoran este atributo." -#: ../Doc/library/wsgiref.rst:631 +#: ../Doc/library/wsgiref.rst:633 msgid "" "The term \"Python\" is replaced with implementation specific term like " "\"CPython\", \"Jython\" etc." @@ -1012,7 +1015,7 @@ msgstr "" "El término \"Python\" se reemplaza con el término específico correspondiente " "a la implementación del intérprete, como \"CPython\", \"Jython\", etc." -#: ../Doc/library/wsgiref.rst:637 +#: ../Doc/library/wsgiref.rst:639 msgid "" "Return the URL scheme being used for the current request. The default " "implementation uses the :func:`guess_scheme` function from :mod:`wsgiref." @@ -1024,7 +1027,7 @@ msgstr "" "`wsgiref.util` para adivinar si el esquema debería ser \"http\" o \"https\", " "basándose en las variables de :attr:`environ` de la petición actual." -#: ../Doc/library/wsgiref.rst:645 +#: ../Doc/library/wsgiref.rst:647 msgid "" "Set the :attr:`environ` attribute to a fully populated WSGI environment. " "The default implementation uses all of the above methods and attributes, " @@ -1041,11 +1044,11 @@ msgstr "" "existe, siempre y cuando el atributo :attr:`origin_server` tiene un valor " "válido y el atributo :attr:`server_software` está establecido." -#: ../Doc/library/wsgiref.rst:652 +#: ../Doc/library/wsgiref.rst:654 msgid "Methods and attributes for customizing exception handling:" msgstr "Métodos y atributos para personalizar el manejo de excepciones:" -#: ../Doc/library/wsgiref.rst:657 +#: ../Doc/library/wsgiref.rst:659 msgid "" "Log the *exc_info* tuple in the server log. *exc_info* is a ``(type, value, " "traceback)`` tuple. The default implementation simply writes the traceback " @@ -1061,7 +1064,7 @@ msgstr "" "formato o redirigir la salida, enviar mensajes de correo con el seguimiento " "de pila a un administrador o cualquier otra acción que se considere adecuada." -#: ../Doc/library/wsgiref.rst:666 +#: ../Doc/library/wsgiref.rst:668 msgid "" "The maximum number of frames to include in tracebacks output by the default :" "meth:`log_exception` method. If ``None``, all frames are included." @@ -1070,7 +1073,7 @@ msgstr "" "por el método por defecto :meth:`log_exception`. Si vale ``None``, se " "incluyen todos los marcos." -#: ../Doc/library/wsgiref.rst:672 +#: ../Doc/library/wsgiref.rst:674 msgid "" "This method is a WSGI application to generate an error page for the user. " "It is only invoked if an error occurs before headers are sent to the client." @@ -1079,18 +1082,19 @@ msgstr "" "usuario. Sólo se invoca si un error ocurre antes de enviar las cabeceras al " "cliente." -#: ../Doc/library/wsgiref.rst:675 +#: ../Doc/library/wsgiref.rst:677 +#, fuzzy msgid "" -"This method can access the current error information using ``sys." -"exc_info()``, and should pass that information to *start_response* when " -"calling it (as described in the \"Error Handling\" section of :pep:`3333`)." +"This method can access the current error using ``sys.exception()``, and " +"should pass that information to *start_response* when calling it (as " +"described in the \"Error Handling\" section of :pep:`3333`)." msgstr "" "Este método puede acceder a la información de error actual usando ``sys." "exc_info()`` y debería pasar esa información a *start_response* cuando es " "llamada, tal y como se describe en la sección \"Error Handling\" de :pep:" "`3333`." -#: ../Doc/library/wsgiref.rst:679 +#: ../Doc/library/wsgiref.rst:681 msgid "" "The default implementation just uses the :attr:`error_status`, :attr:" "`error_headers`, and :attr:`error_body` attributes to generate an output " @@ -1101,7 +1105,7 @@ msgstr "" "página de salida. Las subclases pueden sobrescribir éste para producir una " "salida de error dinámica mejor." -#: ../Doc/library/wsgiref.rst:683 +#: ../Doc/library/wsgiref.rst:685 msgid "" "Note, however, that it's not recommended from a security perspective to spit " "out diagnostics to any old user; ideally, you should have to do something " @@ -1114,7 +1118,7 @@ msgstr "" "salida de información de diagnóstico, motivo por el que la implementación " "por defecto no incluye ninguna." -#: ../Doc/library/wsgiref.rst:691 +#: ../Doc/library/wsgiref.rst:693 msgid "" "The HTTP status used for error responses. This should be a status string as " "defined in :pep:`3333`; it defaults to a 500 code and message." @@ -1123,7 +1127,7 @@ msgstr "" "una de las cadenas de estado definidas en :pep:`3333`. Por defecto es un " "código 500 y un mensaje." -#: ../Doc/library/wsgiref.rst:697 +#: ../Doc/library/wsgiref.rst:699 msgid "" "The HTTP headers used for error responses. This should be a list of WSGI " "response headers (``(name, value)`` tuples), as described in :pep:`3333`. " @@ -1134,7 +1138,7 @@ msgstr "" "y como se describe en :pep:`3333`. La lista por defecto simplemente " "establece el tipo de contenido a ``text/plain``." -#: ../Doc/library/wsgiref.rst:704 +#: ../Doc/library/wsgiref.rst:706 msgid "" "The error response body. This should be an HTTP response body bytestring. " "It defaults to the plain text, \"A server error occurred. Please contact " @@ -1144,7 +1148,7 @@ msgstr "" "cuerpo de la respuesta HTTP. Por defecto contiene el texto plano *A server " "error occurred. Please contact the administrator.*" -#: ../Doc/library/wsgiref.rst:708 +#: ../Doc/library/wsgiref.rst:710 msgid "" "Methods and attributes for :pep:`3333`'s \"Optional Platform-Specific File " "Handling\" feature:" @@ -1152,7 +1156,7 @@ msgstr "" "Métodos y atributos para la funcionalidad \"Optional Platform-Specific File " "Handling\" de :pep:`3333`:" -#: ../Doc/library/wsgiref.rst:714 +#: ../Doc/library/wsgiref.rst:716 msgid "" "A ``wsgi.file_wrapper`` factory, compatible with :class:`wsgiref.types." "FileWrapper`, or ``None``. The default value of this attribute is the :" @@ -1162,7 +1166,7 @@ msgstr "" "FileWrapper`, o ``None``. El valor por defecto de este atributo es la clase :" "class:`wsgiref.util.FileWrapper`." -#: ../Doc/library/wsgiref.rst:721 +#: ../Doc/library/wsgiref.rst:723 msgid "" "Override to implement platform-specific file transmission. This method is " "called only if the application's return value is an instance of the class " @@ -1179,11 +1183,11 @@ msgstr "" "transmisión no será ejecutado. La implementación por defecto de este método " "simplemente retorna un valor falso." -#: ../Doc/library/wsgiref.rst:728 +#: ../Doc/library/wsgiref.rst:730 msgid "Miscellaneous methods and attributes:" msgstr "Métodos y atributos varios:" -#: ../Doc/library/wsgiref.rst:733 +#: ../Doc/library/wsgiref.rst:735 msgid "" "This attribute should be set to a true value if the handler's :meth:`_write` " "and :meth:`_flush` are being used to communicate directly to the client, " @@ -1195,7 +1199,7 @@ msgstr "" "lugar de usar un protocolo de pasarela CGI que requiere el estado HTTP en " "una cabecera ``Status:`` especial." -#: ../Doc/library/wsgiref.rst:738 +#: ../Doc/library/wsgiref.rst:740 msgid "" "This attribute's default value is true in :class:`BaseHandler`, but false " "in :class:`BaseCGIHandler` and :class:`CGIHandler`." @@ -1203,7 +1207,7 @@ msgstr "" "El valor por defecto de este atributo es cierto en :class:`BaseHandler`, " "pero en :class:`BaseCGIHandler` y :class:`CGIHandler` es falso." -#: ../Doc/library/wsgiref.rst:744 +#: ../Doc/library/wsgiref.rst:746 msgid "" "If :attr:`origin_server` is true, this string attribute is used to set the " "HTTP version of the response set to the client. It defaults to ``\"1.0\"``." @@ -1212,7 +1216,7 @@ msgstr "" "establecer la versión HTTP de la respuesta enviada al cliente. Por defecto " "es ``\"1.0\"``." -#: ../Doc/library/wsgiref.rst:750 +#: ../Doc/library/wsgiref.rst:752 msgid "" "Transcode CGI variables from ``os.environ`` to :pep:`3333` \"bytes in " "unicode\" strings, returning a new dictionary. This function is used by :" @@ -1233,7 +1237,7 @@ msgstr "" "codificación del sistema usada por Python para descodificar lo es cualquier " "otro que ISO-8859-1, por ejemplo, sistemas UNIX que usen UTF-8." -#: ../Doc/library/wsgiref.rst:759 +#: ../Doc/library/wsgiref.rst:761 msgid "" "If you are implementing a CGI-based handler of your own, you probably want " "to use this routine instead of just copying values out of ``os.environ`` " @@ -1243,12 +1247,12 @@ msgstr "" "se requiera usar esta rutina en lugar de sólo copiar directamente los " "valores de ``os.environ``." -#: ../Doc/library/wsgiref.rst:767 +#: ../Doc/library/wsgiref.rst:769 msgid ":mod:`wsgiref.types` -- WSGI types for static type checking" msgstr "" ":mod:`wsgiref.types` --- Tipos de WSGI para validadores estáticos de tipos" -#: ../Doc/library/wsgiref.rst:773 +#: ../Doc/library/wsgiref.rst:775 msgid "" "This module provides various types for static type checking as described in :" "pep:`3333`." @@ -1256,7 +1260,7 @@ msgstr "" "Este módulo provee varios tipos para validadores estáticos de tipos, como se " "describe en :pep:`3333`." -#: ../Doc/library/wsgiref.rst:781 +#: ../Doc/library/wsgiref.rst:783 msgid "" "A :class:`typing.Protocol` describing `start_response() `_ callables (:pep:`3333`)." @@ -1265,15 +1269,15 @@ msgstr "" "`_ (:pep:" "`3333`)." -#: ../Doc/library/wsgiref.rst:787 +#: ../Doc/library/wsgiref.rst:789 msgid "A type alias describing a WSGI environment dictionary." msgstr "Un alias de tipo que describe un diccionario de entorno WSGI." -#: ../Doc/library/wsgiref.rst:791 +#: ../Doc/library/wsgiref.rst:793 msgid "A type alias describing a WSGI application callable." msgstr "Un alias de tipo que describe una aplicación WSGI invocable." -#: ../Doc/library/wsgiref.rst:795 +#: ../Doc/library/wsgiref.rst:797 msgid "" "A :class:`typing.Protocol` describing a `WSGI Input Stream `_." @@ -1281,7 +1285,7 @@ msgstr "" "Un :class:`typing.Protocol` que describe un `flujo de entrada WSGI `_." -#: ../Doc/library/wsgiref.rst:800 +#: ../Doc/library/wsgiref.rst:802 msgid "" "A :class:`typing.Protocol` describing a `WSGI Error Stream `_." @@ -1289,7 +1293,7 @@ msgstr "" "Un :class:`typing.Protocol` que describe un `flujo de error WSGI `_." -#: ../Doc/library/wsgiref.rst:805 +#: ../Doc/library/wsgiref.rst:807 msgid "" "A :class:`typing.Protocol` describing a `file wrapper `_. See :class:" @@ -1300,15 +1304,15 @@ msgstr "" "class:`wsgiref.util.FileWrapper` para una implementación concreta de este " "protocolo." -#: ../Doc/library/wsgiref.rst:812 +#: ../Doc/library/wsgiref.rst:814 msgid "Examples" msgstr "Ejemplos" -#: ../Doc/library/wsgiref.rst:814 +#: ../Doc/library/wsgiref.rst:816 msgid "This is a working \"Hello World\" WSGI application::" msgstr "Ésta es una aplicación WSGI \"Hello World\" que funciona:" -#: ../Doc/library/wsgiref.rst:843 +#: ../Doc/library/wsgiref.rst:845 msgid "" "Example of a WSGI application serving the current directory, accept optional " "directory and port number (default: 8000) on the command line::" diff --git a/library/xdrlib.po b/library/xdrlib.po index fd7944a587..c3c0026c54 100644 --- a/library/xdrlib.po +++ b/library/xdrlib.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-03-20 16:18-0300\n" "Last-Translator: \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/xdrlib.rst:2 msgid ":mod:`xdrlib` --- Encode and decode XDR data" @@ -422,3 +421,12 @@ msgid "Here is an example of how you would catch one of these exceptions::" msgstr "" "A continuación se muestra un ejemplo de cómo detectarías una de estas " "excepciones::" + +#: ../Doc/library/xdrlib.rst:10 +msgid "XDR" +msgstr "" + +#: ../Doc/library/xdrlib.rst:10 +#, fuzzy +msgid "External Data Representation" +msgstr ":rfc:`1832` - XDR: estándar de representación externa de datos" diff --git a/library/xml.etree.elementtree.po b/library/xml.etree.elementtree.po index c438435b57..ac708aa0a6 100644 --- a/library/xml.etree.elementtree.po +++ b/library/xml.etree.elementtree.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.9\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-07-18 20:04+0200\n" "Last-Translator: Marcos Medrano \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/xml.etree.elementtree.rst:2 msgid ":mod:`xml.etree.ElementTree` --- The ElementTree XML API" @@ -43,7 +43,8 @@ msgstr "" "Este módulo utilizará una implementación rápida siempre que esté disponible." #: ../Doc/library/xml.etree.elementtree.rst:19 -msgid "The :mod:`xml.etree.cElementTree` module is deprecated." +#, fuzzy +msgid "The :mod:`!xml.etree.cElementTree` module is deprecated." msgstr "El módulo :mod:`xml.etree.cElementTree` es obsoleto." #: ../Doc/library/xml.etree.elementtree.rst:25 @@ -918,7 +919,7 @@ msgstr "" "pueden estar presentes o no." #: ../Doc/library/xml.etree.elementtree.rst:639 -#: ../Doc/library/xml.etree.elementtree.rst:1469 +#: ../Doc/library/xml.etree.elementtree.rst:1478 msgid "If you need a fully populated element, look for \"end\" events instead." msgstr "" "Si necesita un elemento totalmente poblado, busque los eventos \"end\" en su " @@ -929,7 +930,7 @@ msgid "The *parser* argument." msgstr "El argumento *parser*." #: ../Doc/library/xml.etree.elementtree.rst:644 -#: ../Doc/library/xml.etree.elementtree.rst:1473 +#: ../Doc/library/xml.etree.elementtree.rst:1482 msgid "The ``comment`` and ``pi`` events were added." msgstr "Los eventos ``comment`` y ``pi`` han sido añadidos." @@ -1032,7 +1033,7 @@ msgstr "" #: ../Doc/library/xml.etree.elementtree.rst:705 #: ../Doc/library/xml.etree.elementtree.rst:732 -#: ../Doc/library/xml.etree.elementtree.rst:1181 +#: ../Doc/library/xml.etree.elementtree.rst:1189 msgid "The *short_empty_elements* parameter." msgstr "El parámetro *short_empty_elements*." @@ -1189,7 +1190,7 @@ msgstr "" msgid "The result might look something like:" msgstr "El resultado podría ser algo así:" -#: ../Doc/library/xml.etree.elementtree.rst:831 +#: ../Doc/library/xml.etree.elementtree.rst:833 msgid "" "Default loader. This default loader reads an included resource from disk. " "*href* is a URL. *parse* is for parse mode either \"xml\" or \"text\". " @@ -1207,7 +1208,7 @@ msgstr "" "análisis es \"text\", se trata de una cadena Unicode. Si el cargador falla, " "puede retornar None o lanzar una excepción." -#: ../Doc/library/xml.etree.elementtree.rst:843 +#: ../Doc/library/xml.etree.elementtree.rst:845 msgid "" "This function expands XInclude directives. *elem* is the root element. " "*loader* is an optional resource loader. If omitted, it defaults to :func:" @@ -1226,7 +1227,7 @@ msgstr "" "recursivas. Limitado para reducir el riesgo de explosión de contenido " "malicioso. Pase un valor negativo para desactivar la limitación." -#: ../Doc/library/xml.etree.elementtree.rst:851 +#: ../Doc/library/xml.etree.elementtree.rst:853 msgid "" "Returns the expanded resource. If the parse mode is ``\"xml\"``, this is an " "ElementTree instance. If the parse mode is \"text\", this is a Unicode " @@ -1237,15 +1238,15 @@ msgstr "" "se trata de una cadena Unicode. Si el cargador falla, puede retornar None o " "lanzar una excepción." -#: ../Doc/library/xml.etree.elementtree.rst:856 +#: ../Doc/library/xml.etree.elementtree.rst:858 msgid "The *base_url* and *max_depth* parameters." msgstr "Los parámetros *base_url* y *max_depth*." -#: ../Doc/library/xml.etree.elementtree.rst:863 +#: ../Doc/library/xml.etree.elementtree.rst:865 msgid "Element Objects" msgstr "Objetos Element" -#: ../Doc/library/xml.etree.elementtree.rst:867 +#: ../Doc/library/xml.etree.elementtree.rst:872 msgid "" "Element class. This class defines the Element interface, and provides a " "reference implementation of this interface." @@ -1253,7 +1254,7 @@ msgstr "" "Clase Element. Esta clase define la interfaz Element, y provee una " "implementación de referencia de esta interfaz." -#: ../Doc/library/xml.etree.elementtree.rst:870 +#: ../Doc/library/xml.etree.elementtree.rst:875 msgid "" "The element name, attribute names, and attribute values can be either " "bytestrings or Unicode strings. *tag* is the element name. *attrib* is an " @@ -1266,7 +1267,7 @@ msgstr "" "del elemento. *extra* contiene atributos adicionales, dados como argumentos " "de palabras clave." -#: ../Doc/library/xml.etree.elementtree.rst:878 +#: ../Doc/library/xml.etree.elementtree.rst:883 msgid "" "A string identifying what kind of data this element represents (the element " "type, in other words)." @@ -1274,7 +1275,7 @@ msgstr "" "Una cadena de caracteres que identifica qué tipo de datos representa este " "elemento (el tipo de elemento, en otras palabras)." -#: ../Doc/library/xml.etree.elementtree.rst:885 +#: ../Doc/library/xml.etree.elementtree.rst:890 msgid "" "These attributes can be used to hold additional data associated with the " "element. Their values are usually strings but may be any application-" @@ -1292,7 +1293,7 @@ msgstr "" "*tail* contiene el texto entre la etiqueta final del elemento y la siguiente " "etiqueta, o ``None``. Para los datos XML" -#: ../Doc/library/xml.etree.elementtree.rst:897 +#: ../Doc/library/xml.etree.elementtree.rst:902 msgid "" "the *a* element has ``None`` for both *text* and *tail* attributes, the *b* " "element has *text* ``\"1\"`` and *tail* ``\"4\"``, the *c* element has " @@ -1304,7 +1305,7 @@ msgstr "" "tiene *text* ``\"2\"`` y *tail* ``None``, y el elemento *d* tiene *text* " "``None`` y *tail* ``\"3\"``." -#: ../Doc/library/xml.etree.elementtree.rst:902 +#: ../Doc/library/xml.etree.elementtree.rst:907 msgid "" "To collect the inner text of an element, see :meth:`itertext`, for example " "``\"\".join(element.itertext())``." @@ -1312,12 +1313,12 @@ msgstr "" "Para recoger el texto interior de un elemento, véase :meth:`itertext`, por " "ejemplo ``\"\".join(element.itertext())``." -#: ../Doc/library/xml.etree.elementtree.rst:905 +#: ../Doc/library/xml.etree.elementtree.rst:910 msgid "Applications may store arbitrary objects in these attributes." msgstr "" "Las aplicaciones pueden almacenar objetos arbitrarios en estos atributos." -#: ../Doc/library/xml.etree.elementtree.rst:910 +#: ../Doc/library/xml.etree.elementtree.rst:915 msgid "" "A dictionary containing the element's attributes. Note that while the " "*attrib* value is always a real mutable Python dictionary, an ElementTree " @@ -1332,13 +1333,13 @@ msgstr "" "este tipo de implementaciones, utiliza los métodos de diccionario que " "aparecen a continuación siempre que sea posible." -#: ../Doc/library/xml.etree.elementtree.rst:916 +#: ../Doc/library/xml.etree.elementtree.rst:921 msgid "The following dictionary-like methods work on the element attributes." msgstr "" "Los siguientes métodos tipo diccionario funcionan con los atributos de los " "elementos." -#: ../Doc/library/xml.etree.elementtree.rst:921 +#: ../Doc/library/xml.etree.elementtree.rst:926 msgid "" "Resets an element. This function removes all subelements, clears all " "attributes, and sets the text and tail attributes to ``None``." @@ -1346,17 +1347,17 @@ msgstr "" "Restablece un elemento. Esta función elimina todos los sub-elementos, borra " "todos los atributos y establece los atributos de texto y cola como ``None``." -#: ../Doc/library/xml.etree.elementtree.rst:927 +#: ../Doc/library/xml.etree.elementtree.rst:932 msgid "Gets the element attribute named *key*." msgstr "Obtiene el atributo del elemento llamado *key*." -#: ../Doc/library/xml.etree.elementtree.rst:929 +#: ../Doc/library/xml.etree.elementtree.rst:934 msgid "" "Returns the attribute value, or *default* if the attribute was not found." msgstr "" "Retorna el valor del atributo, o *default* si el atributo no fue encontrado." -#: ../Doc/library/xml.etree.elementtree.rst:934 +#: ../Doc/library/xml.etree.elementtree.rst:939 msgid "" "Returns the element attributes as a sequence of (name, value) pairs. The " "attributes are returned in an arbitrary order." @@ -1364,7 +1365,7 @@ msgstr "" "Retorna los atributos del elemento como una secuencia de pares (nombre, " "valor). Los atributos se retornan en un orden arbitrario." -#: ../Doc/library/xml.etree.elementtree.rst:940 +#: ../Doc/library/xml.etree.elementtree.rst:945 msgid "" "Returns the elements attribute names as a list. The names are returned in " "an arbitrary order." @@ -1372,16 +1373,16 @@ msgstr "" "Retorna los nombres de los atributos de los elementos como una lista. Los " "nombres se retornan en un orden arbitrario." -#: ../Doc/library/xml.etree.elementtree.rst:946 +#: ../Doc/library/xml.etree.elementtree.rst:951 msgid "Set the attribute *key* on the element to *value*." msgstr "Establecer el atributo *key* en el elemento a *value*." -#: ../Doc/library/xml.etree.elementtree.rst:948 +#: ../Doc/library/xml.etree.elementtree.rst:953 msgid "The following methods work on the element's children (subelements)." msgstr "" "Los siguientes métodos actúan sobre los hijos del elemento (sub-elementos)." -#: ../Doc/library/xml.etree.elementtree.rst:953 +#: ../Doc/library/xml.etree.elementtree.rst:958 msgid "" "Adds the element *subelement* to the end of this element's internal list of " "subelements. Raises :exc:`TypeError` if *subelement* is not an :class:" @@ -1391,7 +1392,7 @@ msgstr "" "de este elemento. Lanza :exc:`TypeError` si *subelement* no es un :class:" "`Element`." -#: ../Doc/library/xml.etree.elementtree.rst:960 +#: ../Doc/library/xml.etree.elementtree.rst:965 msgid "" "Appends *subelements* from a sequence object with zero or more elements. " "Raises :exc:`TypeError` if a subelement is not an :class:`Element`." @@ -1399,7 +1400,7 @@ msgstr "" "Añade *subelements* de un objeto de secuencia con cero o más elementos. " "Lanza :exc:`TypeError` si un sub-elemento no es un :class:`Element`." -#: ../Doc/library/xml.etree.elementtree.rst:968 +#: ../Doc/library/xml.etree.elementtree.rst:973 msgid "" "Finds the first subelement matching *match*. *match* may be a tag name or " "a :ref:`path `. Returns an element instance or " @@ -1414,7 +1415,7 @@ msgstr "" "para mover todos los nombres de etiquetas sin prefijo en la expresión al " "espacio de nombres dado." -#: ../Doc/library/xml.etree.elementtree.rst:977 +#: ../Doc/library/xml.etree.elementtree.rst:982 msgid "" "Finds all matching subelements, by tag name or :ref:`path `. Returns a list containing all matching elements in document " @@ -1429,7 +1430,7 @@ msgstr "" "como prefijo para mover todos los nombres de etiquetas sin prefijo en la " "expresión al espacio de nombres dado." -#: ../Doc/library/xml.etree.elementtree.rst:986 +#: ../Doc/library/xml.etree.elementtree.rst:991 msgid "" "Finds text for the first subelement matching *match*. *match* may be a tag " "name or a :ref:`path `. Returns the text content of the " @@ -1448,7 +1449,7 @@ msgstr "" "nombre completo. Pasa ``''`` como prefijo para mover todos los nombres de " "etiquetas sin prefijo en la expresión al espacio de nombres dado." -#: ../Doc/library/xml.etree.elementtree.rst:997 +#: ../Doc/library/xml.etree.elementtree.rst:1002 msgid "" "Inserts *subelement* at the given position in this element. Raises :exc:" "`TypeError` if *subelement* is not an :class:`Element`." @@ -1456,7 +1457,7 @@ msgstr "" "Inserta *subelement* en la posición dada en este elemento. Lanza :exc:" "`TypeError` si *subelement* no es un :class:`Element`." -#: ../Doc/library/xml.etree.elementtree.rst:1003 +#: ../Doc/library/xml.etree.elementtree.rst:1008 msgid "" "Creates a tree :term:`iterator` with the current element as the root. The " "iterator iterates over this element and all elements below it, in document " @@ -1471,7 +1472,7 @@ msgstr "" "por el iterador. Si la estructura del árbol se modifica durante la " "iteración, el resultado es indefinido." -#: ../Doc/library/xml.etree.elementtree.rst:1014 +#: ../Doc/library/xml.etree.elementtree.rst:1019 msgid "" "Finds all matching subelements, by tag name or :ref:`path `. Returns an iterable yielding all matching elements in document " @@ -1483,7 +1484,7 @@ msgstr "" "coincidentes en el orden del documento. *namespaces* es un mapeo opcional " "del prefijo del espacio de nombres al nombre completo." -#: ../Doc/library/xml.etree.elementtree.rst:1025 +#: ../Doc/library/xml.etree.elementtree.rst:1030 msgid "" "Creates a text iterator. The iterator loops over this element and all " "subelements, in document order, and returns all inner text." @@ -1492,7 +1493,7 @@ msgstr "" "todos los subelementos, en el orden del documento, y retorna todo el texto " "interior." -#: ../Doc/library/xml.etree.elementtree.rst:1033 +#: ../Doc/library/xml.etree.elementtree.rst:1038 msgid "" "Creates a new element object of the same type as this element. Do not call " "this method, use the :func:`SubElement` factory function instead." @@ -1500,7 +1501,7 @@ msgstr "" "Crea un nuevo objeto elemento del mismo tipo que este elemento. No llame a " "este método, utilice la función de fábrica :func:`SubElement` en su lugar." -#: ../Doc/library/xml.etree.elementtree.rst:1039 +#: ../Doc/library/xml.etree.elementtree.rst:1044 msgid "" "Removes *subelement* from the element. Unlike the find\\* methods this " "method compares elements based on the instance identity, not on tag value or " @@ -1510,7 +1511,7 @@ msgstr "" "este método compara los elementos basándose en la identidad de la instancia, " "no en el valor de la etiqueta o el contenido." -#: ../Doc/library/xml.etree.elementtree.rst:1043 +#: ../Doc/library/xml.etree.elementtree.rst:1048 msgid "" ":class:`Element` objects also support the following sequence type methods " "for working with subelements: :meth:`~object.__delitem__`, :meth:`~object." @@ -1520,17 +1521,22 @@ msgstr "" "secuencia para trabajar con subelementos: :meth:`~object.__delitem__`, :meth:" "`~object.__getitem__`, :meth:`~object.__setitem__`, :meth:`~object.__len__`." -#: ../Doc/library/xml.etree.elementtree.rst:1048 +#: ../Doc/library/xml.etree.elementtree.rst:1053 +#, fuzzy msgid "" -"Caution: Elements with no subelements will test as ``False``. This behavior " -"will change in future versions. Use specific ``len(elem)`` or ``elem is " -"None`` test instead. ::" +"Caution: Elements with no subelements will test as ``False``. Testing the " +"truth value of an Element is deprecated and will raise an exception in " +"Python 3.14. Use specific ``len(elem)`` or ``elem is None`` test instead.::" msgstr "" "Precaución: Los elementos que no tengan subelementos serán evaluados como " "``False``. Este comportamiento cambiará en futuras versiones. Utilizar en su " "lugar el test específico ``len(elem)`` o ``elem is None``. ::" -#: ../Doc/library/xml.etree.elementtree.rst:1060 +#: ../Doc/library/xml.etree.elementtree.rst:1065 +msgid "Testing the truth value of an Element emits :exc:`DeprecationWarning`." +msgstr "" + +#: ../Doc/library/xml.etree.elementtree.rst:1068 msgid "" "Prior to Python 3.8, the serialisation order of the XML attributes of " "elements was artificially made predictable by sorting the attributes by " @@ -1545,7 +1551,7 @@ msgstr "" "orden en que los atributos fueron originalmente analizados o creados por el " "código del usuario." -#: ../Doc/library/xml.etree.elementtree.rst:1066 +#: ../Doc/library/xml.etree.elementtree.rst:1074 msgid "" "In general, user code should try not to depend on a specific ordering of " "attributes, given that the `XML Information Set `_ writer. Arguments are the " "same as for the :func:`canonicalize` function. This class does not build a " @@ -1885,11 +1891,11 @@ msgstr "" "construye un árbol, sino que traduce los eventos de devolución de llamada " "directamente a una forma serializada utilizando la función *write*." -#: ../Doc/library/xml.etree.elementtree.rst:1344 +#: ../Doc/library/xml.etree.elementtree.rst:1353 msgid "XMLParser Objects" msgstr "Objetos XMLParser" -#: ../Doc/library/xml.etree.elementtree.rst:1349 +#: ../Doc/library/xml.etree.elementtree.rst:1358 msgid "" "This class is the low-level building block of the module. It uses :mod:`xml." "parsers.expat` for efficient, event-based parsing of XML. It can be fed XML " @@ -1907,7 +1913,7 @@ msgstr "" "estándar :class:`TreeBuilder`. Si se da *encoding* [1]_, el valor anula la " "codificación especificada en el archivo XML." -#: ../Doc/library/xml.etree.elementtree.rst:1357 +#: ../Doc/library/xml.etree.elementtree.rst:1366 msgid "" "Parameters are now :ref:`keyword-only `. The *html* " "argument no longer supported." @@ -1915,7 +1921,7 @@ msgstr "" "Los parámetros son ahora :ref:`keyword-only `. El " "argumento *html* ya no se admite." -#: ../Doc/library/xml.etree.elementtree.rst:1364 +#: ../Doc/library/xml.etree.elementtree.rst:1373 msgid "" "Finishes feeding data to the parser. Returns the result of calling the " "``close()`` method of the *target* passed during construction; by default, " @@ -1925,13 +1931,13 @@ msgstr "" "llamar al método ``close()`` del *target* pasado durante la construcción; " "por defecto, es el elemento del documento de nivel superior." -#: ../Doc/library/xml.etree.elementtree.rst:1371 +#: ../Doc/library/xml.etree.elementtree.rst:1380 msgid "Feeds data to the parser. *data* is encoded data." msgstr "" "Introduce los datos en el analizador sintáctico. *data* son datos " "codificados." -#: ../Doc/library/xml.etree.elementtree.rst:1373 +#: ../Doc/library/xml.etree.elementtree.rst:1382 msgid "" ":meth:`XMLParser.feed` calls *target*\\'s ``start(tag, attrs_dict)`` method " "for each opening tag, its ``end(tag)`` method for each closing tag, and data " @@ -1950,11 +1956,11 @@ msgstr "" "estructura de árbol. Este es un ejemplo de contar la profundidad máxima de " "un archivo XML::" -#: ../Doc/library/xml.etree.elementtree.rst:1417 +#: ../Doc/library/xml.etree.elementtree.rst:1426 msgid "XMLPullParser Objects" msgstr "Objetos XMLPullParser" -#: ../Doc/library/xml.etree.elementtree.rst:1421 +#: ../Doc/library/xml.etree.elementtree.rst:1430 msgid "" "A pull parser suitable for non-blocking applications. Its input-side API is " "similar to that of :class:`XMLParser`, but instead of pushing calls to a " @@ -1975,11 +1981,11 @@ msgstr "" "\"ns\" se utilizan para obtener información detallada del espacio de " "nombres). Si se omite *events*, sólo se informará de los eventos ``\"end\"``." -#: ../Doc/library/xml.etree.elementtree.rst:1432 +#: ../Doc/library/xml.etree.elementtree.rst:1441 msgid "Feed the given bytes data to the parser." msgstr "Introduce los datos de los bytes dados en el analizador." -#: ../Doc/library/xml.etree.elementtree.rst:1436 +#: ../Doc/library/xml.etree.elementtree.rst:1445 msgid "" "Signal the parser that the data stream is terminated. Unlike :meth:" "`XMLParser.close`, this method always returns :const:`None`. Any events not " @@ -1991,7 +1997,7 @@ msgstr "" "evento que no haya sido recuperado cuando el analizador se cierra puede ser " "leído con :meth:`read_events`." -#: ../Doc/library/xml.etree.elementtree.rst:1443 +#: ../Doc/library/xml.etree.elementtree.rst:1452 msgid "" "Return an iterator over the events which have been encountered in the data " "fed to the parser. The iterator yields ``(event, elem)`` pairs, where " @@ -2005,16 +2011,16 @@ msgstr "" "(por ejemplo, ``\"fin\"``) y *elem* es el objeto :class:`Element` " "encontrado, u otro valor de contexto como el siguiente." -#: ../Doc/library/xml.etree.elementtree.rst:1449 +#: ../Doc/library/xml.etree.elementtree.rst:1458 msgid "``start``, ``end``: the current Element." msgstr "``start``, ``end``: el Element actual." -#: ../Doc/library/xml.etree.elementtree.rst:1450 +#: ../Doc/library/xml.etree.elementtree.rst:1459 msgid "``comment``, ``pi``: the current comment / processing instruction" msgstr "" "``comment``, ``pi``: el comentario / la instrucción de procesamiento actual" -#: ../Doc/library/xml.etree.elementtree.rst:1451 +#: ../Doc/library/xml.etree.elementtree.rst:1460 msgid "" "``start-ns``: a tuple ``(prefix, uri)`` naming the declared namespace " "mapping." @@ -2022,11 +2028,11 @@ msgstr "" "``start-ns``: una tupla ``(prefix, uri)`` que nombra el mapeo del espacio de " "nombres declarado." -#: ../Doc/library/xml.etree.elementtree.rst:1453 +#: ../Doc/library/xml.etree.elementtree.rst:1462 msgid "``end-ns``: :const:`None` (this may change in a future version)" msgstr "``end-ns``: :const:`None` (esto puede cambiar en una versión futura)" -#: ../Doc/library/xml.etree.elementtree.rst:1455 +#: ../Doc/library/xml.etree.elementtree.rst:1464 msgid "" "Events provided in a previous call to :meth:`read_events` will not be " "yielded again. Events are consumed from the internal queue only when they " @@ -2040,7 +2046,7 @@ msgstr "" "paralelo sobre iteradores obtenidos de :meth:`read_events` tendrán " "resultados impredecibles." -#: ../Doc/library/xml.etree.elementtree.rst:1463 +#: ../Doc/library/xml.etree.elementtree.rst:1472 msgid "" ":class:`XMLPullParser` only guarantees that it has seen the \">\" character " "of a starting tag when it emits a \"start\" event, so the attributes are " @@ -2054,11 +2060,11 @@ msgstr "" "está indefinido en ese momento. Lo mismo ocurre con los hijos del elemento; " "pueden estar presentes o no." -#: ../Doc/library/xml.etree.elementtree.rst:1478 +#: ../Doc/library/xml.etree.elementtree.rst:1487 msgid "Exceptions" msgstr "Excepciones" -#: ../Doc/library/xml.etree.elementtree.rst:1482 +#: ../Doc/library/xml.etree.elementtree.rst:1491 msgid "" "XML parse error, raised by the various parsing methods in this module when " "parsing fails. The string representation of an instance of this exception " @@ -2070,7 +2076,7 @@ msgstr "" "caracteres de una instancia de esta excepción contendrá un mensaje de error " "fácil de entender. Además, tendrá los siguientes atributos disponibles:" -#: ../Doc/library/xml.etree.elementtree.rst:1489 +#: ../Doc/library/xml.etree.elementtree.rst:1498 msgid "" "A numeric error code from the expat parser. See the documentation of :mod:" "`xml.parsers.expat` for the list of error codes and their meanings." @@ -2079,18 +2085,18 @@ msgstr "" "documentación de :mod:`xml.parsers.expat` para ver la lista de códigos de " "error y sus significados." -#: ../Doc/library/xml.etree.elementtree.rst:1494 +#: ../Doc/library/xml.etree.elementtree.rst:1503 msgid "" "A tuple of *line*, *column* numbers, specifying where the error occurred." msgstr "" "Una tupla de números de *line*, *column*, que especifica dónde se produjo el " "error." -#: ../Doc/library/xml.etree.elementtree.rst:1497 +#: ../Doc/library/xml.etree.elementtree.rst:1506 msgid "Footnotes" msgstr "Notas al pie de página" -#: ../Doc/library/xml.etree.elementtree.rst:1498 +#: ../Doc/library/xml.etree.elementtree.rst:1507 msgid "" "The encoding string included in XML output should conform to the appropriate " "standards. For example, \"UTF-8\" is valid, but \"UTF8\" is not. See " diff --git a/library/xml.po b/library/xml.po index 7bcea9731c..d2e2da8ff0 100644 --- a/library/xml.po +++ b/library/xml.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-12-08 16:18-0500\n" "Last-Translator: Adolfo Hristo David Roque Gámez \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/xml.rst:4 msgid "XML Processing Modules" @@ -197,10 +197,11 @@ msgid "**Vulnerable**" msgstr "**Vulnerable**" #: ../Doc/library/xml.rst:73 +#, fuzzy msgid "" "Expat 2.4.1 and newer is not vulnerable to the \"billion laughs\" and " "\"quadratic blowup\" vulnerabilities. Items still listed as vulnerable due " -"to potential reliance on system-provided libraries. Check :data:`pyexpat." +"to potential reliance on system-provided libraries. Check :const:`pyexpat." "EXPAT_VERSION`." msgstr "" "Expat 2.4.1 y nuevas versiones no son vulnerables a las vulnerabilidades de " @@ -209,9 +210,10 @@ msgstr "" "proporcionadas por el sistemas. Verifique :data:`pyexpat.EXPAT_VERSION`." #: ../Doc/library/xml.rst:77 +#, fuzzy msgid "" ":mod:`xml.etree.ElementTree` doesn't expand external entities and raises a :" -"exc:`ParserError` when an entity occurs." +"exc:`~xml.etree.ElementTree.ParseError` when an entity occurs." msgstr "" ":mod:`xml.etree.ElementTree` no expande entidades externas y lanza un :exc:" "`ParserError` cuando se produce una entidad." @@ -225,7 +227,8 @@ msgstr "" "la entidad no expandida literalmente." #: ../Doc/library/xml.rst:81 -msgid ":mod:`xmlrpclib` doesn't expand external entities and omits them." +#, fuzzy +msgid ":mod:`xmlrpc.client` doesn't expand external entities and omits them." msgstr ":mod:`xmlrpclib` no expande entidades externas y las omite." #: ../Doc/library/xml.rst:82 @@ -318,7 +321,8 @@ msgstr "" "los vectores de ataque conocidos con ejemplos y referencias." #: ../Doc/library/xml.rst:123 -msgid "The :mod:`defusedxml` Package" +#, fuzzy +msgid "The :mod:`!defusedxml` Package" msgstr "El paquete :mod:`defusedxml`" #: ../Doc/library/xml.rst:125 diff --git a/library/xml.sax.handler.po b/library/xml.sax.handler.po index d6ed1737d6..feb1f984b4 100644 --- a/library/xml.sax.handler.po +++ b/library/xml.sax.handler.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-11-24 11:22-0300\n" "Last-Translator: \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/xml.sax.handler.rst:2 msgid ":mod:`xml.sax.handler` --- Base classes for SAX handlers" @@ -686,6 +686,7 @@ msgid "ErrorHandler Objects" msgstr "Objetos ErrorHandler" #: ../Doc/library/xml.sax.handler.rst:390 +#, fuzzy msgid "" "Objects with this interface are used to receive error and warning " "information from the :class:`~xml.sax.xmlreader.XMLReader`. If you create " @@ -693,9 +694,9 @@ msgid "" "your :class:`~xml.sax.xmlreader.XMLReader`, the parser will call the methods " "in your object to report all warnings and errors. There are three levels of " "errors available: warnings, (possibly) recoverable errors, and unrecoverable " -"errors. All methods take a :exc:`SAXParseException` as the only parameter. " -"Errors and warnings may be converted to an exception by raising the passed-" -"in exception object." +"errors. All methods take a :exc:`~xml.sax.SAXParseException` as the only " +"parameter. Errors and warnings may be converted to an exception by raising " +"the passed-in exception object." msgstr "" "Los objetos con esta interfaz se usan para recibir información de error y " "advertencia del :class:`~xml.sax.xmlreader.XMLReader`. Si creas un objeto " diff --git a/library/xml.sax.utils.po b/library/xml.sax.utils.po index 28c97547d0..d0d3109e32 100644 --- a/library/xml.sax.utils.po +++ b/library/xml.sax.utils.po @@ -1,23 +1,25 @@ # Copyright (C) 2001-2020, Python Software Foundation # This file is distributed under the same license as the Python package. # Maintained by the python-doc-es workteam. -# docs-es@python.org / https://mail.python.org/mailman3/lists/docs-es.python.org/ -# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get the list of volunteers +# docs-es@python.org / +# https://mail.python.org/mailman3/lists/docs-es.python.org/ +# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get +# the list of volunteers # msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-06 11:59-0400\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-10-08 20:33+0200\n" +"Last-Translator: \n" +"Language: es_ES\n" "Language-Team: python-doc-es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: \n" -"Language: es_ES\n" -"X-Generator: Poedit 2.4.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/xml.sax.utils.rst:2 msgid ":mod:`xml.sax.saxutils` --- SAX Utilities" @@ -54,13 +56,20 @@ msgstr "" "``'&'``, ``'<'`` y ``'>'`` siempre se escapan, incluso si se proporciona " "*entities*." -#: ../Doc/library/xml.sax.utils.rst:31 +#: ../Doc/library/xml.sax.utils.rst:30 +msgid "" +"This function should only be used to escape characters that can't be used " +"directly in XML. Do not use this function as a general string translation " +"function." +msgstr "" + +#: ../Doc/library/xml.sax.utils.rst:36 msgid "Unescape ``'&'``, ``'<'``, and ``'>'`` in a string of data." msgstr "" "Quitar el escape ``'&'``, ``'<'``, y ``'>'`` en una cadena de " "datos." -#: ../Doc/library/xml.sax.utils.rst:33 +#: ../Doc/library/xml.sax.utils.rst:38 msgid "" "You can unescape other strings of data by passing a dictionary as the " "optional *entities* parameter. The keys and values must all be strings; " @@ -74,7 +83,7 @@ msgstr "" "``'&'``, ``'<'`` y ``'>'`` se les quita siempre el escape, incluso " "si se proporcionan *entidades*." -#: ../Doc/library/xml.sax.utils.rst:41 +#: ../Doc/library/xml.sax.utils.rst:46 msgid "" "Similar to :func:`escape`, but also prepares *data* to be used as an " "attribute value. The return value is a quoted version of *data* with any " @@ -94,7 +103,7 @@ msgstr "" "dobles se codificarán y *data* se envolverá entre comillas dobles. La cadena " "resultante se puede utilizar directamente como un valor de atributo:" -#: ../Doc/library/xml.sax.utils.rst:53 +#: ../Doc/library/xml.sax.utils.rst:58 msgid "" "This function is useful when generating attribute values for HTML or any " "SGML using the reference concrete syntax." @@ -102,7 +111,7 @@ msgstr "" "Esta función es útil al generar valores de atributo para HTML o cualquier " "SGML utilizando la sintaxis concreta de referencia." -#: ../Doc/library/xml.sax.utils.rst:59 +#: ../Doc/library/xml.sax.utils.rst:64 msgid "" "This class implements the :class:`~xml.sax.handler.ContentHandler` interface " "by writing SAX events back into an XML document. In other words, using an :" @@ -125,11 +134,11 @@ msgstr "" "emiten como un par de etiquetas de inicio/fin, si se establece en ``True`` " "se emiten como una sola etiqueta autocerrada." -#: ../Doc/library/xml.sax.utils.rst:69 +#: ../Doc/library/xml.sax.utils.rst:74 msgid "The *short_empty_elements* parameter." msgstr "El parámetro *short_empty_elements*." -#: ../Doc/library/xml.sax.utils.rst:75 +#: ../Doc/library/xml.sax.utils.rst:80 msgid "" "This class is designed to sit between an :class:`~xml.sax.xmlreader." "XMLReader` and the client application's event handlers. By default, it does " @@ -144,14 +153,15 @@ msgstr "" "específicos para modificar el flujo de eventos o las peticiones de " "configuración a medida que pasan." -#: ../Doc/library/xml.sax.utils.rst:85 +#: ../Doc/library/xml.sax.utils.rst:90 +#, fuzzy msgid "" "This function takes an input source and an optional base URL and returns a " "fully resolved :class:`~xml.sax.xmlreader.InputSource` object ready for " "reading. The input source can be given as a string, a file-like object, or " "an :class:`~xml.sax.xmlreader.InputSource` object; parsers will use this " -"function to implement the polymorphic *source* argument to their :meth:" -"`parse` method." +"function to implement the polymorphic *source* argument to their :meth:`~xml." +"sax.xmlreader.XMLReader.parse` method." msgstr "" "Esta función toma una fuente de entrada y una URL base opcional y devuelve " "un objeto :class:`~xml.sax.xmlreader.InputSource` totalmente resuelto y " diff --git a/library/xmlrpc.client.po b/library/xmlrpc.client.po index 3520a2f44a..7ca3da7e6f 100644 --- a/library/xmlrpc.client.po +++ b/library/xmlrpc.client.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-12-09 21:24-0300\n" "Last-Translator: Sofía Denner \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/xmlrpc.client.rst:2 msgid ":mod:`xmlrpc.client` --- XML-RPC client access" @@ -63,11 +62,12 @@ msgstr "" "Para HTTPS URI, :mod:`xmlrpc.client` ahora realiza todas las comprobaciones " "necesarias de certificados y nombres de host de forma predeterminada." +#: ../Doc/includes/wasm-notavail.rst:3 #, fuzzy msgid ":ref:`Availability `: not Emscripten, not WASI." msgstr ":ref:`Disponibilidad `: no Emscripten, no WASI." -#: ../Doc/library/cpython/Doc/includes/wasm-notavail.rst:5 +#: ../Doc/includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly platforms " "``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for " @@ -366,7 +366,8 @@ msgstr "" "xmlrpc/types.html para obtener una descripción." #: ../Doc/library/xmlrpc.client.rst:166 -msgid "`XML-RPC HOWTO `_" +#, fuzzy +msgid "`XML-RPC HOWTO `_" msgstr "`XML-RPC HOWTO `_" #: ../Doc/library/xmlrpc.client.rst:165 diff --git a/library/xmlrpc.po b/library/xmlrpc.po index d51d793ed3..ad0a5911f4 100644 --- a/library/xmlrpc.po +++ b/library/xmlrpc.po @@ -1,26 +1,29 @@ # Copyright (C) 2001-2020, Python Software Foundation # This file is distributed under the same license as the Python package. # Maintained by the python-doc-es workteam. -# docs-es@python.org / https://mail.python.org/mailman3/lists/docs-es.python.org/ -# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get the list of volunteers +# docs-es@python.org / +# https://mail.python.org/mailman3/lists/docs-es.python.org/ +# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get +# the list of volunteers # msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-06 11:59-0400\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-10-02 09:15+0100\n" +"Last-Translator: \n" +"Language: es_ES\n" "Language-Team: python-doc-es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: \n" -"Language: es_ES\n" -"X-Generator: Poedit 2.4.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/xmlrpc.rst:2 -msgid ":mod:`xmlrpc` --- XMLRPC server and client modules" +#, fuzzy +msgid ":mod:`!xmlrpc` --- XMLRPC server and client modules" msgstr ":mod:`xmlrpc` --- Módulos XMLRPC para cliente y servidor" #: ../Doc/library/xmlrpc.rst:4 diff --git a/library/zipapp.po b/library/zipapp.po index 692df339f5..8752520c2b 100644 --- a/library/zipapp.po +++ b/library/zipapp.po @@ -1,23 +1,25 @@ # Copyright (C) 2001-2020, Python Software Foundation # This file is distributed under the same license as the Python package. # Maintained by the python-doc-es workteam. -# docs-es@python.org / https://mail.python.org/mailman3/lists/docs-es.python.org/ -# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get the list of volunteers +# docs-es@python.org / +# https://mail.python.org/mailman3/lists/docs-es.python.org/ +# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get +# the list of volunteers # msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-06 11:59-0400\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-07-16 09:53-0300\n" +"Last-Translator: \n" +"Language: es\n" "Language-Team: python-doc-es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: \n" -"Language: es\n" -"X-Generator: Poedit 2.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/zipapp.rst:2 msgid ":mod:`zipapp` --- Manage executable Python zip archives" @@ -368,13 +370,14 @@ msgstr "" "archivador modificado, utilizando la función :func:`create_archive`::" #: ../Doc/library/zipapp.rst:218 +#, fuzzy msgid "" "To update the file in place, do the replacement in memory using a :class:" -"`BytesIO` object, and then overwrite the source afterwards. Note that there " -"is a risk when overwriting a file in place that an error will result in the " -"loss of the original file. This code does not protect against such errors, " -"but production code should do so. Also, this method will only work if the " -"archive fits in memory::" +"`~io.BytesIO` object, and then overwrite the source afterwards. Note that " +"there is a risk when overwriting a file in place that an error will result " +"in the loss of the original file. This code does not protect against such " +"errors, but production code should do so. Also, this method will only work " +"if the archive fits in memory::" msgstr "" "Para actualizar el archivo en el lugar, reemplaza en memoria utilizando un " "objeto :class:`BytesIO`, y luego sobreescribe el origen (*source*). Nótese " @@ -493,22 +496,10 @@ msgstr "" "dependencias en la línea de comandos de pip)." #: ../Doc/library/zipapp.rst:284 -msgid "" -"Optionally, delete the ``.dist-info`` directories created by pip in the " -"``myapp`` directory. These hold metadata for pip to manage the packages, and " -"as you won't be making any further use of pip they aren't required - " -"although it won't do any harm if you leave them." -msgstr "" -"Opcionalmente, borra los directorios ``.dist-info`` creados por pip en el " -"directorio ``myapp``. Éstos tienen metadatos para que pip gestione los " -"paquetes, y como ya no se utilizará pip, no hace falta que permanezcan " -"(aunque no causará ningún problema si los dejas)." - -#: ../Doc/library/zipapp.rst:289 msgid "Package the application using:" msgstr "Empaqueta la aplicación utilizando:" -#: ../Doc/library/zipapp.rst:295 +#: ../Doc/library/zipapp.rst:290 msgid "" "This will produce a standalone executable, which can be run on any machine " "with the appropriate interpreter available. See :ref:`zipapp-specifying-the-" @@ -519,7 +510,7 @@ msgstr "" "specifying-the-interpreter` para más detalles. Puede enviarse a los usuarios " "como un solo archivo." -#: ../Doc/library/zipapp.rst:299 +#: ../Doc/library/zipapp.rst:294 msgid "" "On Unix, the ``myapp.pyz`` file is executable as it stands. You can rename " "the file to remove the ``.pyz`` extension if you prefer a \"plain\" command " @@ -533,102 +524,11 @@ msgstr "" "ya que el intérprete Python registra las extensiones ``.pyz`` y ``pyzw`` al " "ser instalado." -#: ../Doc/library/zipapp.rst:307 -msgid "Making a Windows executable" -msgstr "Hacer un ejecutable para Windows" - -#: ../Doc/library/zipapp.rst:309 -msgid "" -"On Windows, registration of the ``.pyz`` extension is optional, and " -"furthermore, there are certain places that don't recognise registered " -"extensions \"transparently\" (the simplest example is that ``subprocess." -"run(['myapp'])`` won't find your application - you need to explicitly " -"specify the extension)." -msgstr "" -"En Windows, registrar la extensión ``.pyz`` es opcional, y además hay " -"ciertos sitios que no reconocen las extensiones registradas de manera " -"\"transparente\" (el ejemplo más simple es que ``subprocess.run(['myapp'])`` " -"no va a encontrar la aplicación, es necesario especificar explícitamente la " -"extensión)." - -#: ../Doc/library/zipapp.rst:315 -msgid "" -"On Windows, therefore, it is often preferable to create an executable from " -"the zipapp. This is relatively easy, although it does require a C " -"compiler. The basic approach relies on the fact that zipfiles can have " -"arbitrary data prepended, and Windows exe files can have arbitrary data " -"appended. So by creating a suitable launcher and tacking the ``.pyz`` file " -"onto the end of it, you end up with a single-file executable that runs your " -"application." -msgstr "" -"Por lo tanto, en Windows, suele ser preferible crear un ejecutable a partir " -"del zipapp. Esto es relativamente fácil, aunque requiere un compilador de C. " -"La estrategia básica se basa en que los archivos zip pueden tener datos " -"arbitrarios antepuestos, y los archivos exe de Windows pueden tener datos " -"arbitrarios agregados. Entonces, si se crea un lanzador adecuado mudando el " -"archivo ``.pyz`` al final del mismo, se obtiene un solo archivo ejecutable " -"que corre la aplicación." - -#: ../Doc/library/zipapp.rst:322 -msgid "A suitable launcher can be as simple as the following::" -msgstr "Un lanzador adecuado puede ser así de simple::" - -#: ../Doc/library/zipapp.rst:347 -msgid "" -"If you define the ``WINDOWS`` preprocessor symbol, this will generate a GUI " -"executable, and without it, a console executable." -msgstr "" -"Si se define el símbolo de preprocesador ``WINDOWS``, se generará una GUI " -"(interfaz gráfica de usuario) ejecutable, y sin este símbolo, un ejecutable " -"de consola." - -#: ../Doc/library/zipapp.rst:350 -msgid "" -"To compile the executable, you can either just use the standard MSVC command " -"line tools, or you can take advantage of the fact that distutils knows how " -"to compile Python source::" -msgstr "" -"Para compilar el ejecutable, se puede usar únicamente la línea de comando " -"estándar MSVC, o se puede aprovechar la ventaja de que distutils sabe cómo " -"compilar código fuente Python::" - -#: ../Doc/library/zipapp.rst:377 -msgid "" -"The resulting launcher uses the \"Limited ABI\", so it will run unchanged " -"with any version of Python 3.x. All it needs is for Python (``python3." -"dll``) to be on the user's ``PATH``." -msgstr "" -"El lanzador resultante utiliza \"Limited ABI\", así que correrá sin cambios " -"con cualquier versión de Python 3.x. Todo lo que necesita es que Python " -"(``python3.dll``) esté en el ``PATH`` del usuario." - -#: ../Doc/library/zipapp.rst:381 -msgid "" -"For a fully standalone distribution, you can distribute the launcher with " -"your application appended, bundled with the Python \"embedded\" " -"distribution. This will run on any PC with the appropriate architecture (32 " -"bit or 64 bit)." -msgstr "" -"Para una distribución completamente independiente, se puede distribuir el " -"lanzador con la aplicación incluida, empaquetada con la distribución " -"\"*embedded*\" de Python. Va a funcionar en cualquier PC con la arquitectura " -"adecuada (32 o 64 bits)." - -#: ../Doc/library/zipapp.rst:387 +#: ../Doc/library/zipapp.rst:302 msgid "Caveats" msgstr "Advertencias" -#: ../Doc/library/zipapp.rst:389 -msgid "" -"There are some limitations to the process of bundling your application into " -"a single file. In most, if not all, cases they can be addressed without " -"needing major changes to your application." -msgstr "" -"Hay algunas limitaciones para empaquetar la aplicación en un solo archivo. " -"In la mayoría, si no en todos los casos, se pueden abordar sin que haga " -"falta ningún cambio importante en la aplicación." - -#: ../Doc/library/zipapp.rst:393 +#: ../Doc/library/zipapp.rst:304 msgid "" "If your application depends on a package that includes a C extension, that " "package cannot be run from a zip file (this is an OS limitation, as " @@ -654,41 +554,11 @@ msgstr "" "elegir la versión correcta para agregar a ``sys.path`` en tiempo de " "ejecución, basándose en la máquina del usuario)." -#: ../Doc/library/zipapp.rst:403 -msgid "" -"If you are shipping a Windows executable as described above, you either need " -"to ensure that your users have ``python3.dll`` on their PATH (which is not " -"the default behaviour of the installer) or you should bundle your " -"application with the embedded distribution." -msgstr "" -"Al distribuir ejecutables Windows tal como se describe más arriba, hay que " -"asegurarse de que los usuarios tienen ``python3.dll`` en su PATH (lo cual no " -"es una opción por defecto en el instalador), o bien empaquetar la aplicación " -"con la distribución *embedded*." - -#: ../Doc/library/zipapp.rst:408 -msgid "" -"The suggested launcher above uses the Python embedding API. This means that " -"in your application, ``sys.executable`` will be your application, and *not* " -"a conventional Python interpreter. Your code and its dependencies need to " -"be prepared for this possibility. For example, if your application uses " -"the :mod:`multiprocessing` module, it will need to call :func:" -"`multiprocessing.set_executable` to let the module know where to find the " -"standard Python interpreter." -msgstr "" -"El lanzador que se sugiere más arriba, utiliza la API de incrustación de " -"Python (*Python embedding API*). Esto significa que ``sys.executable`` será " -"la aplicación, y *no* el intérprete Python convencional. El código y sus " -"dependencias deben estar preparados para esta posibilidad. Por ejemplo, si " -"la aplicación utiliza el módulo :mod:`multiprocessing`, necesitará invocar " -"a :func:`multiprocessing.set_executable` para permitir que el módulo sepa " -"dónde encontrar el intérprete Python estándar." - -#: ../Doc/library/zipapp.rst:418 +#: ../Doc/library/zipapp.rst:316 msgid "The Python Zip Application Archive Format" msgstr "El formato de archivado Zip de aplicaciones Python" -#: ../Doc/library/zipapp.rst:420 +#: ../Doc/library/zipapp.rst:318 msgid "" "Python has been able to execute zip files which contain a ``__main__.py`` " "file since version 2.6. In order to be executed by Python, an application " @@ -706,7 +576,7 @@ msgstr "" "del script (en este caso, el archivo zip), será ubicado en :data:`sys.path`, " "por lo que pueden importarse otros módulos desde el archivo zip." -#: ../Doc/library/zipapp.rst:427 +#: ../Doc/library/zipapp.rst:325 msgid "" "The zip file format allows arbitrary data to be prepended to a zip file. " "The zip application format uses this ability to prepend a standard POSIX " @@ -717,11 +587,11 @@ msgstr "" "anteponer una línea \"*shebang*\" POSIX estándar al archivo (``#!/ruta/al/" "interprete``)." -#: ../Doc/library/zipapp.rst:431 +#: ../Doc/library/zipapp.rst:329 msgid "Formally, the Python zip application format is therefore:" msgstr "Formalmente, el Formato de archivado Zip de aplicaciones Python es:" -#: ../Doc/library/zipapp.rst:433 +#: ../Doc/library/zipapp.rst:331 msgid "" "An optional shebang line, containing the characters ``b'#!'`` followed by an " "interpreter name, and then a newline (``b'\\n'``) character. The " @@ -737,7 +607,7 @@ msgstr "" "lanzador Python en Windows. El intérprete debería estar codificado en UTF-8 " "en Windows, y en :func:`sys.getfilesystemencoding()` en POSIX." -#: ../Doc/library/zipapp.rst:438 +#: ../Doc/library/zipapp.rst:336 msgid "" "Standard zipfile data, as generated by the :mod:`zipfile` module. The " "zipfile content *must* include a file called ``__main__.py`` (which must be " @@ -750,7 +620,7 @@ msgstr "" "puede estar en un subdirectorio). El los datos del archivo zip pueden estar " "comprimidos o no." -#: ../Doc/library/zipapp.rst:443 +#: ../Doc/library/zipapp.rst:341 msgid "" "If an application archive has a shebang line, it may have the executable bit " "set on POSIX systems, to allow it to be executed directly." @@ -759,7 +629,7 @@ msgstr "" "bit de ejecución activado en los sistemas POSIX, para permitir que sea " "ejecutado directamente." -#: ../Doc/library/zipapp.rst:446 +#: ../Doc/library/zipapp.rst:344 msgid "" "There is no requirement that the tools in this module are used to create " "application archives - the module is a convenience, but archives in the " @@ -769,3 +639,128 @@ msgstr "" "para crear archivadores de aplicación. El módulo es útil, pero cualquier " "archivo que esté en el formato descripto anteriormente es aceptable para " "Python, no importa cómo haya sido creado." + +#: ../Doc/library/zipapp.rst:11 +msgid "Executable Zip Files" +msgstr "" + +#~ msgid "" +#~ "Optionally, delete the ``.dist-info`` directories created by pip in the " +#~ "``myapp`` directory. These hold metadata for pip to manage the packages, " +#~ "and as you won't be making any further use of pip they aren't required - " +#~ "although it won't do any harm if you leave them." +#~ msgstr "" +#~ "Opcionalmente, borra los directorios ``.dist-info`` creados por pip en el " +#~ "directorio ``myapp``. Éstos tienen metadatos para que pip gestione los " +#~ "paquetes, y como ya no se utilizará pip, no hace falta que permanezcan " +#~ "(aunque no causará ningún problema si los dejas)." + +#~ msgid "Making a Windows executable" +#~ msgstr "Hacer un ejecutable para Windows" + +#~ msgid "" +#~ "On Windows, registration of the ``.pyz`` extension is optional, and " +#~ "furthermore, there are certain places that don't recognise registered " +#~ "extensions \"transparently\" (the simplest example is that ``subprocess." +#~ "run(['myapp'])`` won't find your application - you need to explicitly " +#~ "specify the extension)." +#~ msgstr "" +#~ "En Windows, registrar la extensión ``.pyz`` es opcional, y además hay " +#~ "ciertos sitios que no reconocen las extensiones registradas de manera " +#~ "\"transparente\" (el ejemplo más simple es que ``subprocess." +#~ "run(['myapp'])`` no va a encontrar la aplicación, es necesario " +#~ "especificar explícitamente la extensión)." + +#~ msgid "" +#~ "On Windows, therefore, it is often preferable to create an executable " +#~ "from the zipapp. This is relatively easy, although it does require a C " +#~ "compiler. The basic approach relies on the fact that zipfiles can have " +#~ "arbitrary data prepended, and Windows exe files can have arbitrary data " +#~ "appended. So by creating a suitable launcher and tacking the ``.pyz`` " +#~ "file onto the end of it, you end up with a single-file executable that " +#~ "runs your application." +#~ msgstr "" +#~ "Por lo tanto, en Windows, suele ser preferible crear un ejecutable a " +#~ "partir del zipapp. Esto es relativamente fácil, aunque requiere un " +#~ "compilador de C. La estrategia básica se basa en que los archivos zip " +#~ "pueden tener datos arbitrarios antepuestos, y los archivos exe de Windows " +#~ "pueden tener datos arbitrarios agregados. Entonces, si se crea un " +#~ "lanzador adecuado mudando el archivo ``.pyz`` al final del mismo, se " +#~ "obtiene un solo archivo ejecutable que corre la aplicación." + +#~ msgid "A suitable launcher can be as simple as the following::" +#~ msgstr "Un lanzador adecuado puede ser así de simple::" + +#~ msgid "" +#~ "If you define the ``WINDOWS`` preprocessor symbol, this will generate a " +#~ "GUI executable, and without it, a console executable." +#~ msgstr "" +#~ "Si se define el símbolo de preprocesador ``WINDOWS``, se generará una GUI " +#~ "(interfaz gráfica de usuario) ejecutable, y sin este símbolo, un " +#~ "ejecutable de consola." + +#~ msgid "" +#~ "To compile the executable, you can either just use the standard MSVC " +#~ "command line tools, or you can take advantage of the fact that distutils " +#~ "knows how to compile Python source::" +#~ msgstr "" +#~ "Para compilar el ejecutable, se puede usar únicamente la línea de comando " +#~ "estándar MSVC, o se puede aprovechar la ventaja de que distutils sabe " +#~ "cómo compilar código fuente Python::" + +#~ msgid "" +#~ "The resulting launcher uses the \"Limited ABI\", so it will run unchanged " +#~ "with any version of Python 3.x. All it needs is for Python (``python3." +#~ "dll``) to be on the user's ``PATH``." +#~ msgstr "" +#~ "El lanzador resultante utiliza \"Limited ABI\", así que correrá sin " +#~ "cambios con cualquier versión de Python 3.x. Todo lo que necesita es que " +#~ "Python (``python3.dll``) esté en el ``PATH`` del usuario." + +#~ msgid "" +#~ "For a fully standalone distribution, you can distribute the launcher with " +#~ "your application appended, bundled with the Python \"embedded\" " +#~ "distribution. This will run on any PC with the appropriate architecture " +#~ "(32 bit or 64 bit)." +#~ msgstr "" +#~ "Para una distribución completamente independiente, se puede distribuir el " +#~ "lanzador con la aplicación incluida, empaquetada con la distribución " +#~ "\"*embedded*\" de Python. Va a funcionar en cualquier PC con la " +#~ "arquitectura adecuada (32 o 64 bits)." + +#~ msgid "" +#~ "There are some limitations to the process of bundling your application " +#~ "into a single file. In most, if not all, cases they can be addressed " +#~ "without needing major changes to your application." +#~ msgstr "" +#~ "Hay algunas limitaciones para empaquetar la aplicación en un solo " +#~ "archivo. In la mayoría, si no en todos los casos, se pueden abordar sin " +#~ "que haga falta ningún cambio importante en la aplicación." + +#~ msgid "" +#~ "If you are shipping a Windows executable as described above, you either " +#~ "need to ensure that your users have ``python3.dll`` on their PATH (which " +#~ "is not the default behaviour of the installer) or you should bundle your " +#~ "application with the embedded distribution." +#~ msgstr "" +#~ "Al distribuir ejecutables Windows tal como se describe más arriba, hay " +#~ "que asegurarse de que los usuarios tienen ``python3.dll`` en su PATH (lo " +#~ "cual no es una opción por defecto en el instalador), o bien empaquetar la " +#~ "aplicación con la distribución *embedded*." + +#~ msgid "" +#~ "The suggested launcher above uses the Python embedding API. This means " +#~ "that in your application, ``sys.executable`` will be your application, " +#~ "and *not* a conventional Python interpreter. Your code and its " +#~ "dependencies need to be prepared for this possibility. For example, if " +#~ "your application uses the :mod:`multiprocessing` module, it will need to " +#~ "call :func:`multiprocessing.set_executable` to let the module know where " +#~ "to find the standard Python interpreter." +#~ msgstr "" +#~ "El lanzador que se sugiere más arriba, utiliza la API de incrustación de " +#~ "Python (*Python embedding API*). Esto significa que ``sys.executable`` " +#~ "será la aplicación, y *no* el intérprete Python convencional. El código y " +#~ "sus dependencias deben estar preparados para esta posibilidad. Por " +#~ "ejemplo, si la aplicación utiliza el módulo :mod:`multiprocessing`, " +#~ "necesitará invocar a :func:`multiprocessing.set_executable` para permitir " +#~ "que el módulo sepa dónde encontrar el intérprete Python estándar." diff --git a/library/zipfile.po b/library/zipfile.po index 9a5922b556..f9bf3aa167 100644 --- a/library/zipfile.po +++ b/library/zipfile.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-12-15 22:34-0500\n" "Last-Translator: Adolfo Hristo David Roque Gámez \n" "Language: es_CO\n" @@ -19,14 +19,15 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/zipfile.rst:2 msgid ":mod:`zipfile` --- Work with ZIP archives" msgstr ":mod:`zipfile` --- Trabajar con archivos ZIP" #: ../Doc/library/zipfile.rst:10 -msgid "**Source code:** :source:`Lib/zipfile.py`" +#, fuzzy +msgid "**Source code:** :source:`Lib/zipfile/`" msgstr "**Source code:** :source:`Lib/zipfile.py`" #: ../Doc/library/zipfile.rst:14 @@ -89,17 +90,16 @@ msgstr "" #: ../Doc/library/zipfile.rst:58 msgid "" -"A pathlib-compatible wrapper for zip files. See section :ref:`path-objects` " -"for details." +"Class that implements a subset of the interface provided by :class:`pathlib." +"Path`, including the full :class:`importlib.resources.abc.Traversable` " +"interface." msgstr "" -"Un contenedor compatible con pathlib para archivos zip. Vea la sección :ref:" -"`path-objects` para más detalles." -#: ../Doc/library/zipfile.rst:67 +#: ../Doc/library/zipfile.rst:68 msgid "Class for creating ZIP archives containing Python libraries." msgstr "Clase para crear archivos ZIP que contienen bibliotecas de Python." -#: ../Doc/library/zipfile.rst:72 +#: ../Doc/library/zipfile.rst:73 msgid "" "Class used to represent information about a member of an archive. Instances " "of this class are returned by the :meth:`.getinfo` and :meth:`.infolist` " @@ -119,7 +119,7 @@ msgstr "" "campos que describan la hora de la última modificación del archivo; los " "campos se describen en la sección :ref:`zipinfo-objects`." -#: ../Doc/library/zipfile.rst:83 +#: ../Doc/library/zipfile.rst:84 msgid "" "Returns ``True`` if *filename* is a valid ZIP file based on its magic " "number, otherwise returns ``False``. *filename* may be a file or file-like " @@ -129,15 +129,15 @@ msgstr "" "mágico; de lo contrario, retorna ``False``. *filename* también puede ser un " "archivo o un objeto similar a un archivo." -#: ../Doc/library/zipfile.rst:86 +#: ../Doc/library/zipfile.rst:87 msgid "Support for file and file-like objects." msgstr "Soporte para archivos y objetos similares a archivos." -#: ../Doc/library/zipfile.rst:92 +#: ../Doc/library/zipfile.rst:93 msgid "The numeric constant for an uncompressed archive member." msgstr "La constante numérica para un miembro de archivo sin comprimir." -#: ../Doc/library/zipfile.rst:97 +#: ../Doc/library/zipfile.rst:98 msgid "" "The numeric constant for the usual ZIP compression method. This requires " "the :mod:`zlib` module." @@ -145,7 +145,7 @@ msgstr "" "La constante numérica para el método de compresión ZIP habitual. Esto " "requiere el módulo :mod:`zlib`." -#: ../Doc/library/zipfile.rst:103 +#: ../Doc/library/zipfile.rst:104 msgid "" "The numeric constant for the BZIP2 compression method. This requires the :" "mod:`bz2` module." @@ -153,7 +153,7 @@ msgstr "" "La constante numérica para el método de compresión BZIP2. Esto requiere el " "módulo :mod:`bz2`." -#: ../Doc/library/zipfile.rst:110 +#: ../Doc/library/zipfile.rst:111 msgid "" "The numeric constant for the LZMA compression method. This requires the :" "mod:`lzma` module." @@ -161,7 +161,7 @@ msgstr "" "La constante numérica para el método de compresión LZMA. Esto requiere el " "módulo :mod:`lzma`." -#: ../Doc/library/zipfile.rst:117 +#: ../Doc/library/zipfile.rst:118 msgid "" "The ZIP file format specification has included support for bzip2 compression " "since 2001, and for LZMA compression since 2006. However, some tools " @@ -175,11 +175,11 @@ msgstr "" "no admiten estos métodos de compresión y pueden negarse a procesar el " "archivo ZIP por completo o no puede extraer archivos individuales." -#: ../Doc/library/zipfile.rst:128 +#: ../Doc/library/zipfile.rst:129 msgid "`PKZIP Application Note`_" msgstr "`PKZIP Application Note`_" -#: ../Doc/library/zipfile.rst:127 +#: ../Doc/library/zipfile.rst:128 msgid "" "Documentation on the ZIP file format by Phil Katz, the creator of the format " "and algorithms used." @@ -187,11 +187,12 @@ msgstr "" "Documentación sobre el formato de archivo ZIP por Phil Katz, el creador del " "formato y los algoritmos utilizados." -#: ../Doc/library/zipfile.rst:131 -msgid "`Info-ZIP Home Page `_" +#: ../Doc/library/zipfile.rst:132 +#, fuzzy +msgid "`Info-ZIP Home Page `_" msgstr "`Info-ZIP Home Page `_" -#: ../Doc/library/zipfile.rst:131 +#: ../Doc/library/zipfile.rst:132 msgid "" "Information about the Info-ZIP project's ZIP archive programs and " "development libraries." @@ -199,11 +200,11 @@ msgstr "" "Información sobre los programas de archivo ZIP del proyecto Info-ZIP y las " "bibliotecas de desarrollo." -#: ../Doc/library/zipfile.rst:138 +#: ../Doc/library/zipfile.rst:139 msgid "ZipFile Objects" msgstr "Objetos ZipFile" -#: ../Doc/library/zipfile.rst:145 +#: ../Doc/library/zipfile.rst:146 msgid "" "Open a ZIP file, where *file* can be a path to a file (a string), a file-" "like object or a :term:`path-like object`." @@ -211,7 +212,7 @@ msgstr "" "Abra un archivo ZIP, donde *file* puede ser una ruta a un archivo (una " "cadena), un objeto similar a un archivo o un :term:`path-like object`." -#: ../Doc/library/zipfile.rst:148 +#: ../Doc/library/zipfile.rst:149 msgid "" "The *mode* parameter should be ``'r'`` to read an existing file, ``'w'`` to " "truncate and write a new file, ``'a'`` to append to an existing file, or " @@ -235,7 +236,7 @@ msgstr "" "file:`python.exe`). Si *mode* es ``'a'`` y el archivo no existe en absoluto, " "se crea. Si *mode* es ``'r'`` o ``'a'``, el archivo debe poder buscarse." -#: ../Doc/library/zipfile.rst:160 +#: ../Doc/library/zipfile.rst:161 msgid "" "*compression* is the ZIP compression method to use when writing the archive, " "and should be :const:`ZIP_STORED`, :const:`ZIP_DEFLATED`, :const:`ZIP_BZIP2` " @@ -253,7 +254,7 @@ msgstr "" "(:mod:`zlib`, :mod:`bz2` o :mod:`lzma`) no está disponible, :exc:" "`RuntimeError` es lanzado. El valor predeterminado es :const:`ZIP_STORED`." -#: ../Doc/library/zipfile.rst:168 +#: ../Doc/library/zipfile.rst:169 msgid "" "If *allowZip64* is ``True`` (the default) zipfile will create ZIP files that " "use the ZIP64 extensions when the zipfile is larger than 4 GiB. If it is " @@ -265,7 +266,7 @@ msgstr "" "que 4 GB. Si es ``False`` :mod:`zipfile` lanzará una excepción cuando el " "archivo ZIP requiera extensiones ZIP64." -#: ../Doc/library/zipfile.rst:173 +#: ../Doc/library/zipfile.rst:174 msgid "" "The *compresslevel* parameter controls the compression level to use when " "writing files to the archive. When using :const:`ZIP_STORED` or :const:" @@ -282,7 +283,7 @@ msgstr "" "`ZIP_BZIP2` se aceptan enteros ``1`` a ``9`` (consulte :class:`bz2 ` para obtener más información)." -#: ../Doc/library/zipfile.rst:181 ../Doc/library/zipfile.rst:720 +#: ../Doc/library/zipfile.rst:182 ../Doc/library/zipfile.rst:735 msgid "" "The *strict_timestamps* argument, when set to ``False``, allows to zip files " "older than 1980-01-01 at the cost of setting the timestamp to 1980-01-01. " @@ -295,7 +296,7 @@ msgstr "" "más nuevos que 2107-12-31, la marca de tiempo también se establece en el " "límite." -#: ../Doc/library/zipfile.rst:187 +#: ../Doc/library/zipfile.rst:188 msgid "" "When mode is ``'r'``, *metadata_encoding* may be set to the name of a codec, " "which will be used to decode metadata such as the names of members and ZIP " @@ -305,7 +306,7 @@ msgstr "" "asignado al nombre del codec, el cual será usado para decodificar metadata " "como los nombres de los miembros y comentarios ZIP." -#: ../Doc/library/zipfile.rst:191 +#: ../Doc/library/zipfile.rst:192 msgid "" "If the file is created with mode ``'w'``, ``'x'`` or ``'a'`` and then :meth:" "`closed ` without adding any files to the archive, the appropriate " @@ -315,7 +316,7 @@ msgstr "" "`closed ` sin agregar ningún archivo al archivo, Las estructuras ZIP " "apropiadas para un archivo vacío se escribirán en el archivo." -#: ../Doc/library/zipfile.rst:195 +#: ../Doc/library/zipfile.rst:196 msgid "" "ZipFile is also a context manager and therefore supports the :keyword:`with` " "statement. In the example, *myzip* is closed after the :keyword:`!with` " @@ -326,13 +327,13 @@ msgstr "" "conjunto de instrucciones :keyword:`!with` se termine---incluso si se " "produce una excepción::" -#: ../Doc/library/zipfile.rst:204 +#: ../Doc/library/zipfile.rst:205 msgid "" "*metadata_encoding* is an instance-wide setting for the ZipFile. It is not " "currently possible to set this on a per-member basis." msgstr "" -#: ../Doc/library/zipfile.rst:207 +#: ../Doc/library/zipfile.rst:208 msgid "" "This attribute is a workaround for legacy implementations which produce " "archives with names in the current locale encoding or code page (mostly on " @@ -349,21 +350,21 @@ msgstr "" "la cabecera. Este flag toma precedencia sobre *metadata_encoding*, el cual " "es una extensión específica a Python." -#: ../Doc/library/zipfile.rst:215 +#: ../Doc/library/zipfile.rst:216 msgid "Added the ability to use :class:`ZipFile` as a context manager." msgstr "" "Se agregó la capacidad de usar :class:`ZipFile` como administrador de " "contexto." -#: ../Doc/library/zipfile.rst:218 +#: ../Doc/library/zipfile.rst:219 msgid "Added support for :mod:`bzip2 ` and :mod:`lzma` compression." msgstr "Soporte agregado para :mod:`bzip2 ` y compresión :mod:`lzma`." -#: ../Doc/library/zipfile.rst:221 ../Doc/library/zipfile.rst:634 +#: ../Doc/library/zipfile.rst:222 ../Doc/library/zipfile.rst:648 msgid "ZIP64 extensions are enabled by default." msgstr "Las extensiones ZIP64 están habilitadas por defecto." -#: ../Doc/library/zipfile.rst:224 +#: ../Doc/library/zipfile.rst:225 msgid "" "Added support for writing to unseekable streams. Added support for the " "``'x'`` mode." @@ -371,7 +372,7 @@ msgstr "" "Se agregó soporte para escribir en secuencias que no se pueden buscar. Se " "agregó soporte para el modo ``'x'``." -#: ../Doc/library/zipfile.rst:228 +#: ../Doc/library/zipfile.rst:229 msgid "" "Previously, a plain :exc:`RuntimeError` was raised for unrecognized " "compression values." @@ -379,19 +380,19 @@ msgstr "" "Anteriormente, se generó un simple :exc:`RuntimeError` para valores de " "compresión no reconocidos." -#: ../Doc/library/zipfile.rst:232 +#: ../Doc/library/zipfile.rst:233 msgid "The *file* parameter accepts a :term:`path-like object`." msgstr "El parámetro *file* acepta un :term:`path-like object`." -#: ../Doc/library/zipfile.rst:235 +#: ../Doc/library/zipfile.rst:236 msgid "Add the *compresslevel* parameter." msgstr "Agregue el parámetro *compresslevel*." -#: ../Doc/library/zipfile.rst:238 ../Doc/library/zipfile.rst:731 +#: ../Doc/library/zipfile.rst:239 ../Doc/library/zipfile.rst:746 msgid "The *strict_timestamps* keyword-only argument" msgstr "El Argumento *strict_timestamps* solo palabra clave" -#: ../Doc/library/zipfile.rst:241 +#: ../Doc/library/zipfile.rst:242 msgid "" "Added support for specifying member name encoding for reading metadata in " "the zipfile's directory and file headers." @@ -400,7 +401,7 @@ msgstr "" "leer metadata tanto el directorio del archivo zip como en las cabeceras de " "éstos" -#: ../Doc/library/zipfile.rst:248 +#: ../Doc/library/zipfile.rst:249 msgid "" "Close the archive file. You must call :meth:`close` before exiting your " "program or essential records will not be written." @@ -408,7 +409,7 @@ msgstr "" "Cierra el archivo. Debe llamar a :meth:`close` antes de salir de su programa " "o no se escribirán registros esenciales." -#: ../Doc/library/zipfile.rst:254 +#: ../Doc/library/zipfile.rst:255 msgid "" "Return a :class:`ZipInfo` object with information about the archive member " "*name*. Calling :meth:`getinfo` for a name not currently contained in the " @@ -418,7 +419,7 @@ msgstr "" "archivo *name*. Llamando a :meth:`getinfo` para obtener un nombre que no " "figura actualmente en el archivo lanzará un :exc:`KeyError`." -#: ../Doc/library/zipfile.rst:261 +#: ../Doc/library/zipfile.rst:262 msgid "" "Return a list containing a :class:`ZipInfo` object for each member of the " "archive. The objects are in the same order as their entries in the actual " @@ -428,16 +429,18 @@ msgstr "" "del archivo. Los objetos están en el mismo orden que sus entradas en el " "archivo ZIP real en el disco si se abrió un archivo existente." -#: ../Doc/library/zipfile.rst:268 +#: ../Doc/library/zipfile.rst:269 msgid "Return a list of archive members by name." msgstr "Retorna una lista de miembros del archivo por nombre." -#: ../Doc/library/zipfile.rst:273 +#: ../Doc/library/zipfile.rst:274 +#, fuzzy msgid "" "Access a member of the archive as a binary file-like object. *name* can be " "either the name of a file within the archive or a :class:`ZipInfo` object. " "The *mode* parameter, if included, must be ``'r'`` (the default) or " -"``'w'``. *pwd* is the password used to decrypt encrypted ZIP files." +"``'w'``. *pwd* is the password used to decrypt encrypted ZIP files as a :" +"class:`bytes` object." msgstr "" "Acceda a un miembro del archivo como un objeto binario similar a un archivo. " "*name* puede ser el nombre de un archivo dentro del archivo o un objeto :" @@ -445,7 +448,7 @@ msgstr "" "valor predeterminado) o ``'w'``. *pwd* es la contraseña utilizada para " "descifrar archivos ZIP cifrados." -#: ../Doc/library/zipfile.rst:278 +#: ../Doc/library/zipfile.rst:280 msgid "" ":meth:`~ZipFile.open` is also a context manager and therefore supports the :" "keyword:`with` statement::" @@ -453,13 +456,14 @@ msgstr "" ":meth:`~ZipFile.open` también es un administrador de contexto y por lo " "tanto, soporta :keyword:`with` ``statement``::" -#: ../Doc/library/zipfile.rst:285 +#: ../Doc/library/zipfile.rst:287 +#, fuzzy msgid "" "With *mode* ``'r'`` the file-like object (``ZipExtFile``) is read-only and " "provides the following methods: :meth:`~io.BufferedIOBase.read`, :meth:`~io." "IOBase.readline`, :meth:`~io.IOBase.readlines`, :meth:`~io.IOBase.seek`, :" -"meth:`~io.IOBase.tell`, :meth:`__iter__`, :meth:`~iterator.__next__`. These " -"objects can operate independently of the ZipFile." +"meth:`~io.IOBase.tell`, :meth:`~container.__iter__`, :meth:`~iterator." +"__next__`. These objects can operate independently of the ZipFile." msgstr "" "Con *mode* ``'r'``, el objeto tipo archivo (``ZipExtFile``) es de solo " "lectura y proporciona los siguientes métodos: :meth:`~io.BufferedIOBase." @@ -468,7 +472,7 @@ msgstr "" "__ next__`. Estos objetos pueden funcionar independientemente del archivo " "Zip." -#: ../Doc/library/zipfile.rst:292 +#: ../Doc/library/zipfile.rst:294 msgid "" "With ``mode='w'``, a writable file handle is returned, which supports the :" "meth:`~io.BufferedIOBase.write` method. While a writable file handle is " @@ -480,7 +484,7 @@ msgstr "" "identificador de archivo escribible, intentar leer o escribir otros archivos " "en el archivo ZIP lanzará un :exc:`ValueError`." -#: ../Doc/library/zipfile.rst:297 +#: ../Doc/library/zipfile.rst:299 msgid "" "When writing a file, if the file size is not known in advance but may exceed " "2 GiB, pass ``force_zip64=True`` to ensure that the header format is capable " @@ -495,7 +499,7 @@ msgstr "" "`ZipInfo` con :attr:`~ZipInfo.file_size` establecido, y úselo como parámetro " "*name*." -#: ../Doc/library/zipfile.rst:305 +#: ../Doc/library/zipfile.rst:307 msgid "" "The :meth:`.open`, :meth:`read` and :meth:`extract` methods can take a " "filename or a :class:`ZipInfo` object. You will appreciate this when trying " @@ -505,7 +509,7 @@ msgstr "" "nombre de archivo o un objeto :class:`ZipInfo`. Apreciará esto cuando " "intente leer un archivo ZIP que contiene miembros con nombres duplicados." -#: ../Doc/library/zipfile.rst:309 +#: ../Doc/library/zipfile.rst:311 msgid "" "Removed support of ``mode='U'``. Use :class:`io.TextIOWrapper` for reading " "compressed text files in :term:`universal newlines` mode." @@ -513,7 +517,7 @@ msgstr "" "Se eliminó el soporte de ``mode='U'``. Use :class:`io.TextIOWrapper` para " "leer archivos de texto comprimido en modo :term:`universal newlines`." -#: ../Doc/library/zipfile.rst:313 +#: ../Doc/library/zipfile.rst:315 #, fuzzy msgid "" ":meth:`ZipFile.open` can now be used to write files into the archive with " @@ -522,7 +526,7 @@ msgstr "" ":meth:`open` ahora se puede usar para escribir archivos en el archivo con la " "opción ``mode='w'``." -#: ../Doc/library/zipfile.rst:317 +#: ../Doc/library/zipfile.rst:319 msgid "" "Calling :meth:`.open` on a closed ZipFile will raise a :exc:`ValueError`. " "Previously, a :exc:`RuntimeError` was raised." @@ -530,13 +534,14 @@ msgstr "" "Llamar a :meth:`.open` en un ZipFile cerrado lanzará un :exc:`ValueError`. " "Anteriormente, se planteó a :exc:`RuntimeError`." -#: ../Doc/library/zipfile.rst:324 +#: ../Doc/library/zipfile.rst:326 +#, fuzzy msgid "" "Extract a member from the archive to the current working directory; *member* " "must be its full name or a :class:`ZipInfo` object. Its file information is " "extracted as accurately as possible. *path* specifies a different directory " "to extract to. *member* can be a filename or a :class:`ZipInfo` object. " -"*pwd* is the password used for encrypted files." +"*pwd* is the password used for encrypted files as a :class:`bytes` object." msgstr "" "Extraer un miembro del archivo al directorio de trabajo actual; *member* " "debe ser su nombre completo o un objeto :class:`ZipInfo`. La información de " @@ -545,11 +550,11 @@ msgstr "" "un objeto :class:`ZipInfo`. *pwd* es la contraseña utilizada para archivos " "cifrados." -#: ../Doc/library/zipfile.rst:330 +#: ../Doc/library/zipfile.rst:332 msgid "Returns the normalized path created (a directory or new file)." msgstr "Retorna la ruta normalizada creada (un directorio o archivo nuevo)." -#: ../Doc/library/zipfile.rst:334 +#: ../Doc/library/zipfile.rst:336 msgid "" "If a member filename is an absolute path, a drive/UNC sharepoint and leading " "(back)slashes will be stripped, e.g.: ``///foo/bar`` becomes ``foo/bar`` on " @@ -568,7 +573,7 @@ msgstr "" "``<``, ``>``, ``|``, ``\"``, ``?`` Y ``*``) se reemplazan por guion bajo " "(``_``)." -#: ../Doc/library/zipfile.rst:342 +#: ../Doc/library/zipfile.rst:344 msgid "" "Calling :meth:`extract` on a closed ZipFile will raise a :exc:`ValueError`. " "Previously, a :exc:`RuntimeError` was raised." @@ -576,23 +581,24 @@ msgstr "" "Llamando :meth:`extract` en un ZipFile cerrado lanzará un :exc:`ValueError`. " "Anteriormente, se planteó a :exc:`RuntimeError`." -#: ../Doc/library/zipfile.rst:346 ../Doc/library/zipfile.rst:369 +#: ../Doc/library/zipfile.rst:348 ../Doc/library/zipfile.rst:371 msgid "The *path* parameter accepts a :term:`path-like object`." msgstr "El parámetro *path* acepta un :term:`path-like object`." -#: ../Doc/library/zipfile.rst:352 +#: ../Doc/library/zipfile.rst:354 +#, fuzzy msgid "" "Extract all members from the archive to the current working directory. " "*path* specifies a different directory to extract to. *members* is optional " "and must be a subset of the list returned by :meth:`namelist`. *pwd* is the " -"password used for encrypted files." +"password used for encrypted files as a :class:`bytes` object." msgstr "" "Extrae todos los miembros del archivo al directorio de trabajo actual. " "*path* especifica un directorio diferente para extraer. *members* es " "opcional y debe ser un subconjunto de la lista retornada por :meth:" "`namelist`. *pwd* es la contraseña utilizada para archivos cifrados." -#: ../Doc/library/zipfile.rst:359 +#: ../Doc/library/zipfile.rst:361 msgid "" "Never extract archives from untrusted sources without prior inspection. It " "is possible that files are created outside of *path*, e.g. members that have " @@ -605,7 +611,7 @@ msgstr "" "archivo con dos puntos ``\"..\"``. Este módulo intenta evitar eso. Ver :meth:" "`extract` nota." -#: ../Doc/library/zipfile.rst:365 +#: ../Doc/library/zipfile.rst:367 msgid "" "Calling :meth:`extractall` on a closed ZipFile will raise a :exc:" "`ValueError`. Previously, a :exc:`RuntimeError` was raised." @@ -613,27 +619,31 @@ msgstr "" "Llamar a :meth:`extractall` en un ZipFile cerrado lanzará un :exc:" "`ValueError`. Anteriormente, se planteó a :exc:`RuntimeError`." -#: ../Doc/library/zipfile.rst:375 +#: ../Doc/library/zipfile.rst:377 msgid "Print a table of contents for the archive to ``sys.stdout``." msgstr "Imprime una tabla de contenido para el archivo en ``sys.stdout``." -#: ../Doc/library/zipfile.rst:380 -msgid "Set *pwd* as default password to extract encrypted files." +#: ../Doc/library/zipfile.rst:382 +#, fuzzy +msgid "" +"Set *pwd* (a :class:`bytes` object) as default password to extract encrypted " +"files." msgstr "" "Establece *pwd* como contraseña predeterminada para extraer archivos " "cifrados." -#: ../Doc/library/zipfile.rst:385 +#: ../Doc/library/zipfile.rst:387 +#, fuzzy msgid "" "Return the bytes of the file *name* in the archive. *name* is the name of " "the file in the archive, or a :class:`ZipInfo` object. The archive must be " -"open for read or append. *pwd* is the password used for encrypted files " -"and, if specified, it will override the default password set with :meth:" -"`setpassword`. Calling :meth:`read` on a ZipFile that uses a compression " -"method other than :const:`ZIP_STORED`, :const:`ZIP_DEFLATED`, :const:" -"`ZIP_BZIP2` or :const:`ZIP_LZMA` will raise a :exc:`NotImplementedError`. An " -"error will also be raised if the corresponding compression module is not " -"available." +"open for read or append. *pwd* is the password used for encrypted files as " +"a :class:`bytes` object and, if specified, overrides the default password " +"set with :meth:`setpassword`. Calling :meth:`read` on a ZipFile that uses a " +"compression method other than :const:`ZIP_STORED`, :const:`ZIP_DEFLATED`, :" +"const:`ZIP_BZIP2` or :const:`ZIP_LZMA` will raise a :exc:" +"`NotImplementedError`. An error will also be raised if the corresponding " +"compression module is not available." msgstr "" "Retorna los bytes del archivo *name* en el archivo. *name* es el nombre del " "archivo en el archivo, o un objeto :class:`ZipInfo`. El archivo debe estar " @@ -645,7 +655,7 @@ msgstr "" "`NotImplementedError`. También se lanzará un error si el módulo de " "compresión correspondiente no está disponible." -#: ../Doc/library/zipfile.rst:394 +#: ../Doc/library/zipfile.rst:396 msgid "" "Calling :meth:`read` on a closed ZipFile will raise a :exc:`ValueError`. " "Previously, a :exc:`RuntimeError` was raised." @@ -653,7 +663,7 @@ msgstr "" "Llamando :meth:`read` en un ZipFile cerrado lanzará un :exc:`ValueError`. " "Anteriormente, se planteó a :exc:`RuntimeError`." -#: ../Doc/library/zipfile.rst:401 +#: ../Doc/library/zipfile.rst:403 msgid "" "Read all the files in the archive and check their CRC's and file headers. " "Return the name of the first bad file, or else return ``None``." @@ -661,7 +671,7 @@ msgstr "" "Lee todos los archivos en el archivo y verifica sus CRC y encabezados de " "archivo. Retorna el nombre del primer archivo incorrecto o retorna ``None``." -#: ../Doc/library/zipfile.rst:404 +#: ../Doc/library/zipfile.rst:406 msgid "" "Calling :meth:`testzip` on a closed ZipFile will raise a :exc:`ValueError`. " "Previously, a :exc:`RuntimeError` was raised." @@ -669,7 +679,7 @@ msgstr "" "Llamar a :meth:`testzip` en un ZipFile cerrado lanzará un :exc:`ValueError`. " "Anteriormente, se planteó a :exc:`RuntimeError`." -#: ../Doc/library/zipfile.rst:412 +#: ../Doc/library/zipfile.rst:414 msgid "" "Write the file named *filename* to the archive, giving it the archive name " "*arcname* (by default, this will be the same as *filename*, but without a " @@ -687,7 +697,7 @@ msgstr "" "*compresslevel* anulará el constructor si se proporciona. El archivo debe " "estar abierto con el modo ``'w'``, ``'x'`` o ``'a'``." -#: ../Doc/library/zipfile.rst:422 +#: ../Doc/library/zipfile.rst:424 msgid "" "The ZIP file standard historically did not specify a metadata encoding, but " "strongly recommended CP437 (the original IBM PC encoding) for " @@ -704,7 +714,7 @@ msgstr "" "que estos contienen algún caracter no-ASCII. No es posible escribir nombres " "de miembros en otra codificación que no sea ASCII o UTF-8." -#: ../Doc/library/zipfile.rst:431 +#: ../Doc/library/zipfile.rst:433 msgid "" "Archive names should be relative to the archive root, that is, they should " "not start with a path separator." @@ -712,7 +722,7 @@ msgstr "" "Los nombres de archivo deben ser relativos a la raíz del archivo, es decir, " "no deben comenzar con un separador de ruta." -#: ../Doc/library/zipfile.rst:436 +#: ../Doc/library/zipfile.rst:438 msgid "" "If ``arcname`` (or ``filename``, if ``arcname`` is not given) contains a " "null byte, the name of the file in the archive will be truncated at the null " @@ -722,7 +732,7 @@ msgstr "" "un byte nulo, el nombre del archivo en el archivo se truncará en el byte " "nulo." -#: ../Doc/library/zipfile.rst:441 +#: ../Doc/library/zipfile.rst:443 msgid "" "A leading slash in the filename may lead to the archive being impossible to " "open in some zip programs on Windows systems." @@ -730,7 +740,7 @@ msgstr "" "Un barra al frente en el nombre del archivo puede hacer que el archivo sea " "imposible de abrir en algunos programas zip en sistemas Windows." -#: ../Doc/library/zipfile.rst:444 +#: ../Doc/library/zipfile.rst:446 msgid "" "Calling :meth:`write` on a ZipFile created with mode ``'r'`` or a closed " "ZipFile will raise a :exc:`ValueError`. Previously, a :exc:`RuntimeError` " @@ -740,7 +750,7 @@ msgstr "" "cerrado lanzará un :exc:`ValueError`. Anteriormente, se planteó a :exc:" "`RuntimeError`." -#: ../Doc/library/zipfile.rst:453 +#: ../Doc/library/zipfile.rst:455 msgid "" "Write a file into the archive. The contents is *data*, which may be either " "a :class:`str` or a :class:`bytes` instance; if it is a :class:`str`, it is " @@ -759,7 +769,7 @@ msgstr "" "fecha y hora actuales. El archivo debe abrirse con el modo ``'w'``, ``'x'`` " "o ``'a'``." -#: ../Doc/library/zipfile.rst:461 +#: ../Doc/library/zipfile.rst:463 msgid "" "If given, *compress_type* overrides the value given for the *compression* " "parameter to the constructor for the new entry, or in the *zinfo_or_arcname* " @@ -771,7 +781,7 @@ msgstr "" "(si es una instancia de :class:`ZipInfo`). Del mismo modo, *compresslevel* " "anulará el constructor si se proporciona." -#: ../Doc/library/zipfile.rst:468 +#: ../Doc/library/zipfile.rst:470 msgid "" "When passing a :class:`ZipInfo` instance as the *zinfo_or_arcname* " "parameter, the compression method used will be that specified in the " @@ -784,11 +794,11 @@ msgstr "" "defecto, el constructor :class:`ZipInfo` establece este miembro en :const:" "`ZIP_STORED`." -#: ../Doc/library/zipfile.rst:473 +#: ../Doc/library/zipfile.rst:475 msgid "The *compress_type* argument." msgstr "El argumento *compress_type*." -#: ../Doc/library/zipfile.rst:476 +#: ../Doc/library/zipfile.rst:478 msgid "" "Calling :meth:`writestr` on a ZipFile created with mode ``'r'`` or a closed " "ZipFile will raise a :exc:`ValueError`. Previously, a :exc:`RuntimeError` " @@ -798,7 +808,7 @@ msgstr "" "ZipFile cerrado lanzará un :exc:`ValueError`. Anteriormente, se planteó a :" "exc:`RuntimeError`." -#: ../Doc/library/zipfile.rst:483 +#: ../Doc/library/zipfile.rst:485 msgid "" "Create a directory inside the archive. If *zinfo_or_directory* is a string, " "a directory is created inside the archive with the mode that is specified in " @@ -810,19 +820,19 @@ msgstr "" "argumento *mode*. Si del contrario, *zinfo_or_directory* es una instancia " "de :class:`ZipInfo` entonces el argumento *mode* es ignorado." -#: ../Doc/library/zipfile.rst:488 +#: ../Doc/library/zipfile.rst:490 msgid "The archive must be opened with mode ``'w'``, ``'x'`` or ``'a'``." msgstr "El archivo debe estar abierto en modo ``'w'``, ``'x'`` o ``'a'``." -#: ../Doc/library/zipfile.rst:493 +#: ../Doc/library/zipfile.rst:495 msgid "The following data attributes are also available:" msgstr "Los siguientes atributos de datos también están disponibles:" -#: ../Doc/library/zipfile.rst:497 +#: ../Doc/library/zipfile.rst:499 msgid "Name of the ZIP file." msgstr "Nombre del archivo ZIP." -#: ../Doc/library/zipfile.rst:501 +#: ../Doc/library/zipfile.rst:503 msgid "" "The level of debug output to use. This may be set from ``0`` (the default, " "no output) to ``3`` (the most output). Debugging information is written to " @@ -832,7 +842,7 @@ msgstr "" "(el valor predeterminado, sin salida) a ``3`` (la mayor cantidad de salida). " "La información de depuración se escribe en ``sys.stdout``." -#: ../Doc/library/zipfile.rst:507 +#: ../Doc/library/zipfile.rst:509 msgid "" "The comment associated with the ZIP file as a :class:`bytes` object. If " "assigning a comment to a :class:`ZipFile` instance created with mode " @@ -844,11 +854,11 @@ msgstr "" "modo ``'w'``, ``'x'`` o ``'a'``, no debe tener más de 65535 bytes. Los " "comentarios más largos que esto se truncarán." -#: ../Doc/library/zipfile.rst:517 +#: ../Doc/library/zipfile.rst:519 msgid "Path Objects" msgstr "Objetos de ruta" -#: ../Doc/library/zipfile.rst:521 +#: ../Doc/library/zipfile.rst:523 msgid "" "Construct a Path object from a ``root`` zipfile (which may be a :class:" "`ZipFile` instance or ``file`` suitable for passing to the :class:`ZipFile` " @@ -858,7 +868,7 @@ msgstr "" "una instancia :class:`ZipFile` o ``file`` adecuado para pasar al " "constructor :class:`ZipFile`)." -#: ../Doc/library/zipfile.rst:525 +#: ../Doc/library/zipfile.rst:527 msgid "" "``at`` specifies the location of this Path within the zipfile, e.g. 'dir/" "file.txt', 'dir/', or ''. Defaults to the empty string, indicating the root." @@ -867,24 +877,24 @@ msgstr "" "file.txt', 'dir/' o ''.El valor predeterminado es la cadena vacía, que " "indica la raíz." -#: ../Doc/library/zipfile.rst:529 +#: ../Doc/library/zipfile.rst:531 msgid "" "Path objects expose the following features of :mod:`pathlib.Path` objects:" msgstr "" "Los objetos de ruta exponen las siguientes características de objetos :mod:" "`pathlib.Path`:" -#: ../Doc/library/zipfile.rst:532 +#: ../Doc/library/zipfile.rst:534 msgid "Path objects are traversable using the ``/`` operator or ``joinpath``." msgstr "" "Los objetos de ruta son transitables utilizando el operador ``/`` o " "utilizando ``joinpath``." -#: ../Doc/library/zipfile.rst:536 +#: ../Doc/library/zipfile.rst:538 msgid "The final path component." msgstr "El componente final de la ruta." -#: ../Doc/library/zipfile.rst:540 +#: ../Doc/library/zipfile.rst:542 msgid "" "Invoke :meth:`ZipFile.open` on the current path. Allows opening for read or " "write, text or binary through supported modes: 'r', 'w', 'rb', 'wb'. " @@ -898,27 +908,35 @@ msgstr "" "través de :class:`io.TextIOWrapper` cuando se abren como texto y se ignoran " "en caso contrario. ``pwd`` es el parámetro ``pwd`` para :meth:`ZipFile.open`." -#: ../Doc/library/zipfile.rst:549 +#: ../Doc/library/zipfile.rst:551 msgid "" "Added support for text and binary modes for open. Default mode is now text." msgstr "" "Se agregó soporte para modos de texto y binarios para abrir. El modo " "predeterminado ahora es texto." -#: ../Doc/library/zipfile.rst:555 +#: ../Doc/library/zipfile.rst:555 ../Doc/library/zipfile.rst:606 +msgid "" +"The ``encoding`` parameter can be supplied as a positional argument without " +"causing a :exc:`TypeError`. As it could in 3.9. Code needing to be " +"compatible with unpatched 3.10 and 3.11 versions must pass all :class:`io." +"TextIOWrapper` arguments, ``encoding`` included, as keywords." +msgstr "" + +#: ../Doc/library/zipfile.rst:563 msgid "Enumerate the children of the current directory." msgstr "Enumera los hijos del directorio actual." -#: ../Doc/library/zipfile.rst:559 +#: ../Doc/library/zipfile.rst:567 msgid "Return ``True`` if the current context references a directory." msgstr "" "Retorna ``True`` si el contexto actual hace referencia a un directorio." -#: ../Doc/library/zipfile.rst:563 +#: ../Doc/library/zipfile.rst:571 msgid "Return ``True`` if the current context references a file." msgstr "Retorna ``True`` si el contexto actual hace referencia a un archivo." -#: ../Doc/library/zipfile.rst:567 +#: ../Doc/library/zipfile.rst:575 msgid "" "Return ``True`` if the current context references a file or directory in the " "zip file." @@ -926,32 +944,32 @@ msgstr "" "Retorna ``True`` si el contexto actual hace referencia a un archivo o " "directorio en el archivo zip." -#: ../Doc/library/zipfile.rst:572 +#: ../Doc/library/zipfile.rst:580 msgid "The file extension of the final component." msgstr "La extensión de archivo del último componente." -#: ../Doc/library/zipfile.rst:574 +#: ../Doc/library/zipfile.rst:582 msgid "Added :data:`Path.suffix` property." msgstr "Propiedad agregada :data:`Path.suffix`." -#: ../Doc/library/zipfile.rst:579 +#: ../Doc/library/zipfile.rst:587 #, fuzzy msgid "The final path component, without its suffix." msgstr "El componente final de la ruta." -#: ../Doc/library/zipfile.rst:581 +#: ../Doc/library/zipfile.rst:589 msgid "Added :data:`Path.stem` property." msgstr "Propiedad agregada :data:`Path.stem`." -#: ../Doc/library/zipfile.rst:586 +#: ../Doc/library/zipfile.rst:594 msgid "A list of the path’s file extensions." msgstr "" -#: ../Doc/library/zipfile.rst:588 +#: ../Doc/library/zipfile.rst:596 msgid "Added :data:`Path.suffixes` property." msgstr "Propiedad agregada :data:`Path.suffixes`." -#: ../Doc/library/zipfile.rst:593 +#: ../Doc/library/zipfile.rst:601 msgid "" "Read the current file as unicode text. Positional and keyword arguments are " "passed through to :class:`io.TextIOWrapper` (except ``buffer``, which is " @@ -961,11 +979,11 @@ msgstr "" "palabras clave se pasan a :class:`io.TextIOWrapper` (excepto ``buffer``, que " "está implícito en el contexto)." -#: ../Doc/library/zipfile.rst:600 +#: ../Doc/library/zipfile.rst:614 msgid "Read the current file as bytes." msgstr "Lee el archivo actual como bytes." -#: ../Doc/library/zipfile.rst:604 +#: ../Doc/library/zipfile.rst:618 msgid "" "Return a new Path object with each of the *other* arguments joined. The " "following are equivalent::" @@ -973,7 +991,7 @@ msgstr "" "Retorna un nuevo objeto de ruta con cada argumentos *other* unidos. Los " "siguientes son equivalentes::" -#: ../Doc/library/zipfile.rst:611 +#: ../Doc/library/zipfile.rst:625 msgid "" "Prior to 3.10, ``joinpath`` was undocumented and accepted exactly one " "parameter." @@ -981,7 +999,7 @@ msgstr "" "Antes de 3.10, ``joinpath`` no estaba documentado y aceptaba exactamente un " "parámetro." -#: ../Doc/library/zipfile.rst:615 +#: ../Doc/library/zipfile.rst:629 msgid "" "The `zipp `_ project provides backports of " "the latest path object functionality to older Pythons. Use ``zipp.Path`` in " @@ -992,11 +1010,11 @@ msgstr "" "versiones más antiguas de Python. Use ``zipp.Path`` en lugar de ``zipfile." "Path`` para acceso prioritario a cambios." -#: ../Doc/library/zipfile.rst:623 +#: ../Doc/library/zipfile.rst:637 msgid "PyZipFile Objects" msgstr "Objetos PyZipFile" -#: ../Doc/library/zipfile.rst:625 +#: ../Doc/library/zipfile.rst:639 msgid "" "The :class:`PyZipFile` constructor takes the same parameters as the :class:" "`ZipFile` constructor, and one additional parameter, *optimize*." @@ -1004,24 +1022,24 @@ msgstr "" "El constructor :class:`PyZipFile` toma los mismos parámetros que el " "constructor :class:`ZipFile`, y un parámetro adicional, *optimize*." -#: ../Doc/library/zipfile.rst:631 +#: ../Doc/library/zipfile.rst:645 msgid "The *optimize* parameter." msgstr "El parámetro *optimize*." -#: ../Doc/library/zipfile.rst:637 +#: ../Doc/library/zipfile.rst:651 msgid "" "Instances have one method in addition to those of :class:`ZipFile` objects:" msgstr "" "Las instancias tienen un método ademas de los objetos :class:`ZipFile`:" -#: ../Doc/library/zipfile.rst:641 +#: ../Doc/library/zipfile.rst:655 msgid "" "Search for files :file:`\\*.py` and add the corresponding file to the " "archive." msgstr "" "Busca archivos :file:`\\*.py` y agrega el archivo correspondiente al archivo." -#: ../Doc/library/zipfile.rst:644 +#: ../Doc/library/zipfile.rst:658 msgid "" "If the *optimize* parameter to :class:`PyZipFile` was not given or ``-1``, " "the corresponding file is a :file:`\\*.pyc` file, compiling if necessary." @@ -1030,7 +1048,7 @@ msgstr "" "el archivo correspondiente es un archivo :file:`\\*.pyc`, compilando si es " "necesario." -#: ../Doc/library/zipfile.rst:647 +#: ../Doc/library/zipfile.rst:661 msgid "" "If the *optimize* parameter to :class:`PyZipFile` was ``0``, ``1`` or ``2``, " "only files with that optimization level (see :func:`compile`) are added to " @@ -1040,7 +1058,7 @@ msgstr "" "solo se agregarán a ese archivo los archivos con ese nivel de optimización " "(ver :func:`compile`) el archivo, compilando si es necesario." -#: ../Doc/library/zipfile.rst:651 +#: ../Doc/library/zipfile.rst:665 msgid "" "If *pathname* is a file, the filename must end with :file:`.py`, and just " "the (corresponding :file:`\\*.pyc`) file is added at the top level (no path " @@ -1063,11 +1081,11 @@ msgstr "" "subdirectorios son directorios de paquetes, todos estos se agregan " "recursivamente en orden ordenado." -#: ../Doc/library/zipfile.rst:661 +#: ../Doc/library/zipfile.rst:675 msgid "*basename* is intended for internal use only." msgstr "*basename* está destinado solo para uso interno." -#: ../Doc/library/zipfile.rst:663 +#: ../Doc/library/zipfile.rst:677 msgid "" "*filterfunc*, if given, must be a function taking a single string argument. " "It will be passed each path (including each individual full file path) " @@ -1085,28 +1103,28 @@ msgstr "" "prueba están todos en directorios de ``test`` o comienzan con la cadena " "``test_``, podemos usar un *filterfunc* para excluirlos ::" -#: ../Doc/library/zipfile.rst:677 +#: ../Doc/library/zipfile.rst:692 msgid "The :meth:`writepy` method makes archives with file names like this::" msgstr "" "El método :meth:`writepy` crea archivos con nombres de archivo como este ::" -#: ../Doc/library/zipfile.rst:686 +#: ../Doc/library/zipfile.rst:701 msgid "The *filterfunc* parameter." msgstr "El parámetro *filterfunc*." -#: ../Doc/library/zipfile.rst:689 +#: ../Doc/library/zipfile.rst:704 msgid "The *pathname* parameter accepts a :term:`path-like object`." msgstr "El parámetro *pathname* acepta un :term:`path-like object`." -#: ../Doc/library/zipfile.rst:692 +#: ../Doc/library/zipfile.rst:707 msgid "Recursion sorts directory entries." msgstr "La recursividad ordena las entradas del directorio." -#: ../Doc/library/zipfile.rst:699 +#: ../Doc/library/zipfile.rst:714 msgid "ZipInfo Objects" msgstr "Objetos ZipInfo" -#: ../Doc/library/zipfile.rst:701 +#: ../Doc/library/zipfile.rst:716 msgid "" "Instances of the :class:`ZipInfo` class are returned by the :meth:`.getinfo` " "and :meth:`.infolist` methods of :class:`ZipFile` objects. Each object " @@ -1116,7 +1134,7 @@ msgstr "" "meth:`.getinfo` y :meth:`.infolist` de :class:`ZipFile`. Cada objeto " "almacena información sobre un solo miembro del archivo ZIP." -#: ../Doc/library/zipfile.rst:705 +#: ../Doc/library/zipfile.rst:720 msgid "" "There is one classmethod to make a :class:`ZipInfo` instance for a " "filesystem file:" @@ -1124,7 +1142,7 @@ msgstr "" "Hay un método de clase para hacer una instancia de :class:`ZipInfo` para un " "archivo de sistema de archivos:" -#: ../Doc/library/zipfile.rst:711 +#: ../Doc/library/zipfile.rst:726 msgid "" "Construct a :class:`ZipInfo` instance for a file on the filesystem, in " "preparation for adding it to a zip file." @@ -1132,13 +1150,13 @@ msgstr "" "Construye una instancia de :class:`ZipInfo` para un archivo en el sistema de " "archivos, en preparación para agregarlo a un archivo zip." -#: ../Doc/library/zipfile.rst:714 +#: ../Doc/library/zipfile.rst:729 msgid "*filename* should be the path to a file or directory on the filesystem." msgstr "" "*filename* debe ser la ruta a un archivo o directorio en el sistema de " "archivos." -#: ../Doc/library/zipfile.rst:716 +#: ../Doc/library/zipfile.rst:731 msgid "" "If *arcname* is specified, it is used as the name within the archive. If " "*arcname* is not specified, the name will be the same as *filename*, but " @@ -1148,29 +1166,29 @@ msgstr "" "Si no se especifica *arcname*, el nombre será el mismo que *filename*, pero " "con cualquier letra de unidad y separadores de ruta principales eliminados." -#: ../Doc/library/zipfile.rst:728 +#: ../Doc/library/zipfile.rst:743 msgid "The *filename* parameter accepts a :term:`path-like object`." msgstr "El parámetro *filename* acepta un :term:`path-like object`." -#: ../Doc/library/zipfile.rst:735 +#: ../Doc/library/zipfile.rst:750 msgid "Instances have the following methods and attributes:" msgstr "Las instancias tienen los siguientes métodos y atributos:" -#: ../Doc/library/zipfile.rst:739 +#: ../Doc/library/zipfile.rst:754 msgid "Return ``True`` if this archive member is a directory." msgstr "Retorna ``True`` si este miembro del archivo es un directorio." -#: ../Doc/library/zipfile.rst:741 +#: ../Doc/library/zipfile.rst:756 msgid "This uses the entry's name: directories should always end with ``/``." msgstr "" "Utiliza el nombre de la entrada: los directorios siempre deben terminar con " "``/``." -#: ../Doc/library/zipfile.rst:748 +#: ../Doc/library/zipfile.rst:763 msgid "Name of the file in the archive." msgstr "Nombre del archivo en el archivo." -#: ../Doc/library/zipfile.rst:753 +#: ../Doc/library/zipfile.rst:768 msgid "" "The time and date of the last modification to the archive member. This is a " "tuple of six values:" @@ -1178,77 +1196,77 @@ msgstr "" "La hora y fecha de la última modificación al miembro del archivo. Esta es " "una tupla de seis valores:" -#: ../Doc/library/zipfile.rst:757 +#: ../Doc/library/zipfile.rst:772 msgid "Index" msgstr "Índice" -#: ../Doc/library/zipfile.rst:757 +#: ../Doc/library/zipfile.rst:772 msgid "Value" msgstr "Valor" -#: ../Doc/library/zipfile.rst:759 +#: ../Doc/library/zipfile.rst:774 msgid "``0``" msgstr "``0``" -#: ../Doc/library/zipfile.rst:759 +#: ../Doc/library/zipfile.rst:774 msgid "Year (>= 1980)" msgstr "Año (>= 1980)" -#: ../Doc/library/zipfile.rst:761 +#: ../Doc/library/zipfile.rst:776 msgid "``1``" msgstr "``1``" -#: ../Doc/library/zipfile.rst:761 +#: ../Doc/library/zipfile.rst:776 msgid "Month (one-based)" msgstr "Mes (basado en uno)" -#: ../Doc/library/zipfile.rst:763 +#: ../Doc/library/zipfile.rst:778 msgid "``2``" msgstr "``2``" -#: ../Doc/library/zipfile.rst:763 +#: ../Doc/library/zipfile.rst:778 msgid "Day of month (one-based)" msgstr "Día del mes (basado en uno)" -#: ../Doc/library/zipfile.rst:765 +#: ../Doc/library/zipfile.rst:780 msgid "``3``" msgstr "``3``" -#: ../Doc/library/zipfile.rst:765 +#: ../Doc/library/zipfile.rst:780 msgid "Hours (zero-based)" msgstr "Horas (basados en cero)" -#: ../Doc/library/zipfile.rst:767 +#: ../Doc/library/zipfile.rst:782 msgid "``4``" msgstr "``4``" -#: ../Doc/library/zipfile.rst:767 +#: ../Doc/library/zipfile.rst:782 msgid "Minutes (zero-based)" msgstr "Minutos (basados en cero)" -#: ../Doc/library/zipfile.rst:769 +#: ../Doc/library/zipfile.rst:784 msgid "``5``" msgstr "``5``" -#: ../Doc/library/zipfile.rst:769 +#: ../Doc/library/zipfile.rst:784 msgid "Seconds (zero-based)" msgstr "Segundos (basado en cero)" -#: ../Doc/library/zipfile.rst:774 +#: ../Doc/library/zipfile.rst:789 msgid "The ZIP file format does not support timestamps before 1980." msgstr "" "El formato de archivo ZIP no admite marcas de tiempo anteriores a 1980." -#: ../Doc/library/zipfile.rst:779 +#: ../Doc/library/zipfile.rst:794 msgid "Type of compression for the archive member." msgstr "Tipo de compresión para la miembro del archivo." -#: ../Doc/library/zipfile.rst:784 +#: ../Doc/library/zipfile.rst:799 msgid "Comment for the individual archive member as a :class:`bytes` object." msgstr "" "Comenta para el miembro de archivo individual como un objeto :class:`bytes`." -#: ../Doc/library/zipfile.rst:789 +#: ../Doc/library/zipfile.rst:804 msgid "" "Expansion field data. The `PKZIP Application Note`_ contains some comments " "on the internal structure of the data contained in this :class:`bytes` " @@ -1258,59 +1276,59 @@ msgstr "" "comentarios sobre la estructura interna de los datos contenidos en este " "objeto :class:`bytes`." -#: ../Doc/library/zipfile.rst:796 +#: ../Doc/library/zipfile.rst:811 msgid "System which created ZIP archive." msgstr "Sistema que creó el archivo ZIP." -#: ../Doc/library/zipfile.rst:801 +#: ../Doc/library/zipfile.rst:816 msgid "PKZIP version which created ZIP archive." msgstr "Versión PKZIP que creó el archivo ZIP." -#: ../Doc/library/zipfile.rst:806 +#: ../Doc/library/zipfile.rst:821 msgid "PKZIP version needed to extract archive." msgstr "Se necesita la versión PKZIP para extraer el archivo." -#: ../Doc/library/zipfile.rst:811 +#: ../Doc/library/zipfile.rst:826 msgid "Must be zero." msgstr "Debe ser cero." -#: ../Doc/library/zipfile.rst:816 +#: ../Doc/library/zipfile.rst:831 msgid "ZIP flag bits." msgstr "Bits de bandera ZIP." -#: ../Doc/library/zipfile.rst:821 +#: ../Doc/library/zipfile.rst:836 msgid "Volume number of file header." msgstr "Número de volumen del encabezado del archivo." -#: ../Doc/library/zipfile.rst:826 +#: ../Doc/library/zipfile.rst:841 msgid "Internal attributes." msgstr "Atributos internos." -#: ../Doc/library/zipfile.rst:831 +#: ../Doc/library/zipfile.rst:846 msgid "External file attributes." msgstr "Atributos de archivo externo." -#: ../Doc/library/zipfile.rst:836 +#: ../Doc/library/zipfile.rst:851 msgid "Byte offset to the file header." msgstr "Byte desplazado al encabezado del archivo." -#: ../Doc/library/zipfile.rst:841 +#: ../Doc/library/zipfile.rst:856 msgid "CRC-32 of the uncompressed file." msgstr "CRC-32 del archivo sin comprimir." -#: ../Doc/library/zipfile.rst:846 +#: ../Doc/library/zipfile.rst:861 msgid "Size of the compressed data." msgstr "Tamaño de los datos comprimidos." -#: ../Doc/library/zipfile.rst:851 +#: ../Doc/library/zipfile.rst:866 msgid "Size of the uncompressed file." msgstr "Tamaño del archivo sin comprimir." -#: ../Doc/library/zipfile.rst:858 +#: ../Doc/library/zipfile.rst:873 msgid "Command-Line Interface" msgstr "Interfaz de línea de comandos" -#: ../Doc/library/zipfile.rst:860 +#: ../Doc/library/zipfile.rst:875 msgid "" "The :mod:`zipfile` module provides a simple command-line interface to " "interact with ZIP archives." @@ -1318,7 +1336,7 @@ msgstr "" "El módulo :mod:`zipfile` proporciona una interfaz de línea de comandos " "simple para interactuar con archivos ZIP." -#: ../Doc/library/zipfile.rst:863 +#: ../Doc/library/zipfile.rst:878 msgid "" "If you want to create a new ZIP archive, specify its name after the :option:" "`-c` option and then list the filename(s) that should be included:" @@ -1327,11 +1345,11 @@ msgstr "" "opción :option:`-c` y luego enumere los nombres de archivo que deben " "incluirse:" -#: ../Doc/library/zipfile.rst:870 +#: ../Doc/library/zipfile.rst:885 msgid "Passing a directory is also acceptable:" msgstr "Pasar un directorio también es aceptable:" -#: ../Doc/library/zipfile.rst:876 +#: ../Doc/library/zipfile.rst:891 msgid "" "If you want to extract a ZIP archive into the specified directory, use the :" "option:`-e` option:" @@ -1339,33 +1357,33 @@ msgstr "" "Si desea extraer un archivo ZIP en el directorio especificado, use la " "opción :option:`-e`:" -#: ../Doc/library/zipfile.rst:883 +#: ../Doc/library/zipfile.rst:898 msgid "For a list of the files in a ZIP archive, use the :option:`-l` option:" msgstr "" "Para obtener una lista de los archivos en un archivo ZIP, use la opción :" "option:`-l`:" -#: ../Doc/library/zipfile.rst:891 +#: ../Doc/library/zipfile.rst:906 msgid "Command-line options" msgstr "Opciones de línea de comando" -#: ../Doc/library/zipfile.rst:896 +#: ../Doc/library/zipfile.rst:911 msgid "List files in a zipfile." msgstr "Lista de archivos en un archivo zip." -#: ../Doc/library/zipfile.rst:901 +#: ../Doc/library/zipfile.rst:916 msgid "Create zipfile from source files." msgstr "Crea el archivo zip a partir de archivos fuente." -#: ../Doc/library/zipfile.rst:906 +#: ../Doc/library/zipfile.rst:921 msgid "Extract zipfile into target directory." msgstr "Extrae el archivo zip en el directorio de destino." -#: ../Doc/library/zipfile.rst:911 +#: ../Doc/library/zipfile.rst:926 msgid "Test whether the zipfile is valid or not." msgstr "Prueba si el archivo zip es válido o no." -#: ../Doc/library/zipfile.rst:915 +#: ../Doc/library/zipfile.rst:930 msgid "" "Specify encoding of member names for :option:`-l`, :option:`-e` and :option:" "`-t`." @@ -1373,11 +1391,11 @@ msgstr "" "Especifica la codificación de nombre de miembros para :option:`-l`, :option:" "`-e` y :option:`-t`." -#: ../Doc/library/zipfile.rst:922 +#: ../Doc/library/zipfile.rst:937 msgid "Decompression pitfalls" msgstr "Problemas de descompresión" -#: ../Doc/library/zipfile.rst:924 +#: ../Doc/library/zipfile.rst:939 msgid "" "The extraction in zipfile module might fail due to some pitfalls listed " "below." @@ -1385,11 +1403,11 @@ msgstr "" "La extracción en el módulo zipfile puede fallar debido a algunos problemas " "que se enumeran a continuación." -#: ../Doc/library/zipfile.rst:927 +#: ../Doc/library/zipfile.rst:942 msgid "From file itself" msgstr "Del archivo mismo" -#: ../Doc/library/zipfile.rst:929 +#: ../Doc/library/zipfile.rst:944 msgid "" "Decompression may fail due to incorrect password / CRC checksum / ZIP format " "or unsupported compression method / decryption." @@ -1398,11 +1416,11 @@ msgstr "" "verificación CRC / formato ZIP o método / descifrado de compresión no " "compatible." -#: ../Doc/library/zipfile.rst:933 +#: ../Doc/library/zipfile.rst:948 msgid "File System limitations" msgstr "Limitaciones del sistema de archivos" -#: ../Doc/library/zipfile.rst:935 +#: ../Doc/library/zipfile.rst:950 msgid "" "Exceeding limitations on different file systems can cause decompression " "failed. Such as allowable characters in the directory entries, length of the " @@ -1414,11 +1432,11 @@ msgstr "" "directorio, la longitud del nombre del archivo, la longitud de la ruta, el " "tamaño de un solo archivo y la cantidad de archivos, etc." -#: ../Doc/library/zipfile.rst:942 +#: ../Doc/library/zipfile.rst:957 msgid "Resources limitations" msgstr "Limitaciones de recursos" -#: ../Doc/library/zipfile.rst:944 +#: ../Doc/library/zipfile.rst:959 msgid "" "The lack of memory or disk volume would lead to decompression failed. For " "example, decompression bombs (aka `ZIP bomb`_) apply to zipfile library that " @@ -1429,11 +1447,11 @@ msgstr "" "`ZIP bomb`_) se aplican a la biblioteca de archivos zip que pueden causar el " "agotamiento del volumen del disco." -#: ../Doc/library/zipfile.rst:949 +#: ../Doc/library/zipfile.rst:964 msgid "Interruption" msgstr "Interrupción" -#: ../Doc/library/zipfile.rst:951 +#: ../Doc/library/zipfile.rst:966 msgid "" "Interruption during the decompression, such as pressing control-C or killing " "the decompression process may result in incomplete decompression of the " @@ -1443,11 +1461,11 @@ msgstr "" "el proceso de descompresión, puede dar como resultado una descompresión " "incompleta del archivo." -#: ../Doc/library/zipfile.rst:955 +#: ../Doc/library/zipfile.rst:970 msgid "Default behaviors of extraction" msgstr "Comportamientos predeterminados de extracción" -#: ../Doc/library/zipfile.rst:957 +#: ../Doc/library/zipfile.rst:972 msgid "" "Not knowing the default extraction behaviors can cause unexpected " "decompression results. For example, when extracting the same archive twice, " @@ -1456,3 +1474,10 @@ msgstr "" "No conocer los comportamientos de extracción predeterminados puede causar " "resultados de descompresión inesperados. Por ejemplo, al extraer el mismo " "archivo dos veces, sobrescribe los archivos sin preguntar." + +#~ msgid "" +#~ "A pathlib-compatible wrapper for zip files. See section :ref:`path-" +#~ "objects` for details." +#~ msgstr "" +#~ "Un contenedor compatible con pathlib para archivos zip. Vea la sección :" +#~ "ref:`path-objects` para más detalles." diff --git a/library/zipimport.po b/library/zipimport.po index 16612a6e23..544a4ed59f 100644 --- a/library/zipimport.po +++ b/library/zipimport.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-26 19:47-0300\n" "Last-Translator: Sofía Denner \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/zipimport.rst:2 msgid ":mod:`zipimport` --- Import modules from Zip archives" @@ -174,44 +173,27 @@ msgstr "" #: ../Doc/library/zipimport.rst:79 msgid "" +"Methods ``find_loader()`` and ``find_module()``, deprecated in 3.10 are now " +"removed. Use :meth:`find_spec` instead." +msgstr "" + +#: ../Doc/library/zipimport.rst:84 +msgid "" "Implementation of :meth:`importlib.abc.Loader.create_module` that returns :" "const:`None` to explicitly request the default semantics." msgstr "" "Implementación de :meth:`importlib.abc.Loader.create_module` que retorna :" "const:`None` para solicitar explícitamente la semántica predeterminada." -#: ../Doc/library/zipimport.rst:87 +#: ../Doc/library/zipimport.rst:92 msgid "Implementation of :meth:`importlib.abc.Loader.exec_module`." msgstr "Implementación de :meth:`importlib.abc.Loader.exec_module`." -#: ../Doc/library/zipimport.rst:94 -msgid "An implementation of :meth:`importlib.abc.PathEntryFinder.find_loader`." -msgstr "" -"Una implementación de :meth:`importlib.abc.PathEntryFinder.find_loader`." - -#: ../Doc/library/zipimport.rst:98 ../Doc/library/zipimport.rst:111 -msgid "Use :meth:`find_spec` instead." -msgstr "Utilizar en su lugar :meth:`find_spec`." - -#: ../Doc/library/zipimport.rst:103 -msgid "" -"Search for a module specified by *fullname*. *fullname* must be the fully " -"qualified (dotted) module name. It returns the zipimporter instance itself " -"if the module was found, or :const:`None` if it wasn't. The optional *path* " -"argument is ignored---it's there for compatibility with the importer " -"protocol." -msgstr "" -"Busca un módulo especificado por *fullname*. *fullname* debe ser el nombre " -"completo del módulo (punteado). Retorna la propia instancia zipimporter si " -"el módulo fue encontrado, o :const:`None` si no. El argumento opcional " -"*path* es ignorado --- está ahí por compatibilidad con el protocolo del " -"importador." - -#: ../Doc/library/zipimport.rst:116 +#: ../Doc/library/zipimport.rst:99 msgid "An implementation of :meth:`importlib.abc.PathEntryFinder.find_spec`." msgstr "Una implementación de :meth:`importlib.abc.PathEntryFinder.find_spec`." -#: ../Doc/library/zipimport.rst:123 +#: ../Doc/library/zipimport.rst:106 msgid "" "Return the code object for the specified module. Raise :exc:`ZipImportError` " "if the module couldn't be imported." @@ -219,7 +201,7 @@ msgstr "" "Retorna el objeto de código para el módulo especificado. Lanza :exc:" "`ZipImportError` si el módulo no se pudo importar." -#: ../Doc/library/zipimport.rst:129 +#: ../Doc/library/zipimport.rst:112 msgid "" "Return the data associated with *pathname*. Raise :exc:`OSError` if the file " "wasn't found." @@ -227,11 +209,11 @@ msgstr "" "Retorna los datos asociados con *pathname*. Lanza :exc:`OSError` si el " "archivo no fue encontrado." -#: ../Doc/library/zipimport.rst:132 +#: ../Doc/library/zipimport.rst:115 msgid ":exc:`IOError` used to be raised instead of :exc:`OSError`." msgstr ":exc:`IOError` solía lanzarse en lugar de :exc:`OSError`." -#: ../Doc/library/zipimport.rst:138 +#: ../Doc/library/zipimport.rst:121 msgid "" "Return the value ``__file__`` would be set to if the specified module was " "imported. Raise :exc:`ZipImportError` if the module couldn't be imported." @@ -240,7 +222,7 @@ msgstr "" "especificado fue importado. Lanza :exc:`ZipImportError` si el módulo no se " "pudo importar." -#: ../Doc/library/zipimport.rst:147 +#: ../Doc/library/zipimport.rst:130 msgid "" "Return the source code for the specified module. Raise :exc:`ZipImportError` " "if the module couldn't be found, return :const:`None` if the archive does " @@ -250,7 +232,7 @@ msgstr "" "`ZipImportError` si el módulo no pudo ser encontrado, retorna :const:`None` " "si el archivo contiene al módulo, pero no tiene fuente para ello." -#: ../Doc/library/zipimport.rst:155 +#: ../Doc/library/zipimport.rst:138 msgid "" "Return ``True`` if the module specified by *fullname* is a package. Raise :" "exc:`ZipImportError` if the module couldn't be found." @@ -259,7 +241,7 @@ msgstr "" "Lanza :exc:`ZipImportError` si el módulo no pudo ser encontrado." # dotted notation -- punteado -#: ../Doc/library/zipimport.rst:161 +#: ../Doc/library/zipimport.rst:144 msgid "" "Load the module specified by *fullname*. *fullname* must be the fully " "qualified (dotted) module name. Returns the imported module on success, " @@ -269,11 +251,11 @@ msgstr "" "completo de módulo (punteado). Retorna el módulo importado, o lanza :exc:" "`ZipImportError` si no fue encontrado." -#: ../Doc/library/zipimport.rst:167 +#: ../Doc/library/zipimport.rst:150 msgid "Use :meth:`exec_module` instead." msgstr "Utilizar en su lugar :meth:`exec_module`." -#: ../Doc/library/zipimport.rst:172 +#: ../Doc/library/zipimport.rst:155 msgid "" "Clear out the internal cache of information about files found within the ZIP " "archive." @@ -281,7 +263,7 @@ msgstr "" "Limpia la caché interna de información sobre los archivos que se encuentran " "dentro del archivo ZIP." -#: ../Doc/library/zipimport.rst:180 +#: ../Doc/library/zipimport.rst:163 msgid "" "The file name of the importer's associated ZIP file, without a possible " "subpath." @@ -289,7 +271,7 @@ msgstr "" "El nombre de archivo del archivo ZIP asociado del importador, sin una " "posible sub-ruta." -#: ../Doc/library/zipimport.rst:186 +#: ../Doc/library/zipimport.rst:169 msgid "" "The subpath within the ZIP file where modules are searched. This is the " "empty string for zipimporter objects which point to the root of the ZIP file." @@ -298,7 +280,7 @@ msgstr "" "cadena vacía para objetos zipimporter la cual apunta a la raíz del archivo " "ZIP." -#: ../Doc/library/zipimport.rst:190 +#: ../Doc/library/zipimport.rst:173 msgid "" "The :attr:`archive` and :attr:`prefix` attributes, when combined with a " "slash, equal the original *archivepath* argument given to the :class:" @@ -308,14 +290,35 @@ msgstr "" "una barra diagonal, son iguales al argumento original *archivepath* dado al " "constructor :class:`zipimporter`." -#: ../Doc/library/zipimport.rst:198 +#: ../Doc/library/zipimport.rst:181 msgid "Examples" msgstr "Ejemplos" -#: ../Doc/library/zipimport.rst:200 +#: ../Doc/library/zipimport.rst:183 msgid "" "Here is an example that imports a module from a ZIP archive - note that the :" "mod:`zipimport` module is not explicitly used." msgstr "" "Este es un ejemplo que importa un módulo de un archivo ZIP - tenga en cuenta " "que el módulo :mod:`zipimport` no está usado explícitamente." + +#~ msgid "" +#~ "An implementation of :meth:`importlib.abc.PathEntryFinder.find_loader`." +#~ msgstr "" +#~ "Una implementación de :meth:`importlib.abc.PathEntryFinder.find_loader`." + +#~ msgid "Use :meth:`find_spec` instead." +#~ msgstr "Utilizar en su lugar :meth:`find_spec`." + +#~ msgid "" +#~ "Search for a module specified by *fullname*. *fullname* must be the fully " +#~ "qualified (dotted) module name. It returns the zipimporter instance " +#~ "itself if the module was found, or :const:`None` if it wasn't. The " +#~ "optional *path* argument is ignored---it's there for compatibility with " +#~ "the importer protocol." +#~ msgstr "" +#~ "Busca un módulo especificado por *fullname*. *fullname* debe ser el " +#~ "nombre completo del módulo (punteado). Retorna la propia instancia " +#~ "zipimporter si el módulo fue encontrado, o :const:`None` si no. El " +#~ "argumento opcional *path* es ignorado --- está ahí por compatibilidad con " +#~ "el protocolo del importador." diff --git a/library/zlib.po b/library/zlib.po index 42c1e91ae4..243040a00a 100644 --- a/library/zlib.po +++ b/library/zlib.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-12-11 14:31+0800\n" "Last-Translator: Rodrigo Tobar \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/zlib.rst:2 msgid ":mod:`zlib` --- Compression compatible with :program:`gzip`" @@ -649,3 +648,11 @@ msgid "" msgstr "" "El manual de zlib explica la semántica y el uso de las numerosas funciones " "de la biblioteca." + +#: ../Doc/library/zlib.rst:123 +msgid "Cyclic Redundancy Check" +msgstr "" + +#: ../Doc/library/zlib.rst:123 +msgid "checksum" +msgstr "" diff --git a/library/zoneinfo.po b/library/zoneinfo.po index 7319576dbc..1fe1381ce7 100644 --- a/library/zoneinfo.po +++ b/library/zoneinfo.po @@ -8,23 +8,26 @@ msgid "" msgstr "" "Project-Id-Version: Python en Español 3.9\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-27 19:57-0300\n" "Last-Translator: \n" -"Language-Team: \n" "Language: es\n" +"Language-Team: \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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/library/zoneinfo.rst:2 msgid ":mod:`zoneinfo` --- IANA time zone support" msgstr ":mod:`zoneinfo` --- Soporte de zona horaria IANA" -#: ../Doc/library/zoneinfo.rst:14 +#: ../Doc/library/zoneinfo.rst:12 +msgid "**Source code:** :source:`Lib/zoneinfo`" +msgstr "" + +#: ../Doc/library/zoneinfo.rst:16 msgid "" "The :mod:`zoneinfo` module provides a concrete time zone implementation to " "support the IANA time zone database as originally specified in :pep:`615`. " @@ -39,11 +42,11 @@ msgstr "" "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 +#: ../Doc/library/zoneinfo.rst:26 msgid "Module: :mod:`datetime`" msgstr "Modulo: :mod:`datetime`" -#: ../Doc/library/zoneinfo.rst:23 +#: ../Doc/library/zoneinfo.rst:25 msgid "" "Provides the :class:`~datetime.time` and :class:`~datetime.datetime` types " "with which the :class:`ZoneInfo` class is designed to be used." @@ -51,11 +54,11 @@ 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 +#: ../Doc/library/zoneinfo.rst:29 msgid "Package `tzdata`_" msgstr "Paquete `tzdata`_" -#: ../Doc/library/zoneinfo.rst:27 +#: ../Doc/library/zoneinfo.rst:29 msgid "" "First-party package maintained by the CPython core developers to supply time " "zone data via PyPI." @@ -63,11 +66,12 @@ 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/includes/wasm-notavail.rst:3 #, fuzzy msgid ":ref:`Availability `: not Emscripten, not WASI." msgstr ":ref:`Availability `: ni Emscripten, ni WASI." -#: ../Doc/library/cpython/Doc/includes/wasm-notavail.rst:5 +#: ../Doc/includes/wasm-notavail.rst:5 msgid "" "This module does not work or is not available on WebAssembly platforms " "``wasm32-emscripten`` and ``wasm32-wasi``. See :ref:`wasm-availability` for " @@ -77,11 +81,11 @@ msgstr "" "``wasm32-emscripten`` y ``wasm32-wasi``. Consulte :ref:`wasm-availability` " "para más información." -#: ../Doc/library/zoneinfo.rst:33 +#: ../Doc/library/zoneinfo.rst:35 msgid "Using ``ZoneInfo``" msgstr "Usando ``ZoneInfo``" -#: ../Doc/library/zoneinfo.rst:35 +#: ../Doc/library/zoneinfo.rst:37 msgid "" ":class:`ZoneInfo` is a concrete implementation of the :class:`datetime." "tzinfo` abstract base class, and is intended to be attached to ``tzinfo``, " @@ -95,7 +99,7 @@ msgstr "" "datetime.replace>` o de :meth:`datetime.astimezone `:" -#: ../Doc/library/zoneinfo.rst:50 +#: ../Doc/library/zoneinfo.rst:52 msgid "" "Datetimes constructed in this way are compatible with datetime arithmetic " "and handle daylight saving time transitions with no further intervention::" @@ -104,7 +108,7 @@ msgstr "" "fechas y manejan las transiciones del horario de verano sin ninguna otra " "intervención::" -#: ../Doc/library/zoneinfo.rst:61 +#: ../Doc/library/zoneinfo.rst:63 msgid "" "These time zones also support the :attr:`~datetime.datetime.fold` attribute " "introduced in :pep:`495`. During offset transitions which induce ambiguous " @@ -119,7 +123,7 @@ msgstr "" "``fold=0``, y el desfase *después* de la transición cuando ``fold=1``, por " "ejemplo::" -#: ../Doc/library/zoneinfo.rst:74 +#: ../Doc/library/zoneinfo.rst:76 msgid "" "When converting from another time zone, the fold will be set to the correct " "value::" @@ -127,11 +131,11 @@ msgstr "" "Al convertir desde otra zona horaria, el pliegue se ajustará al valor " "correcto::" -#: ../Doc/library/zoneinfo.rst:90 +#: ../Doc/library/zoneinfo.rst:92 msgid "Data sources" msgstr "Fuentes de datos" -#: ../Doc/library/zoneinfo.rst:92 +#: ../Doc/library/zoneinfo.rst:94 msgid "" "The ``zoneinfo`` module does not directly provide time zone data, and " "instead pulls time zone information from the system time zone database or " @@ -153,11 +157,11 @@ msgstr "" "todas las llamadas a :class:`ZoneInfo` lanzarán un :exc:" "`ZoneInfoNotFoundError`." -#: ../Doc/library/zoneinfo.rst:104 +#: ../Doc/library/zoneinfo.rst:106 msgid "Configuring the data sources" msgstr "Configurando los orígenes de datos" -#: ../Doc/library/zoneinfo.rst:106 +#: ../Doc/library/zoneinfo.rst:108 msgid "" "When ``ZoneInfo(key)`` is called, the constructor first searches the " "directories specified in :data:`TZPATH` for a file matching ``key``, and on " @@ -169,7 +173,7 @@ msgstr "" "``key``, y en caso de fallo busca una coincidencia en el paquete tzdata. " "Este comportamiento puede configurarse de tres maneras:" -#: ../Doc/library/zoneinfo.rst:111 +#: ../Doc/library/zoneinfo.rst:113 msgid "" "The default :data:`TZPATH` when not otherwise specified can be configured " "at :ref:`compile time `." @@ -178,7 +182,7 @@ msgstr "" "configurarse en :ref:`tiempo de compilación " "`." -#: ../Doc/library/zoneinfo.rst:113 +#: ../Doc/library/zoneinfo.rst:115 msgid "" ":data:`TZPATH` can be configured using :ref:`an environment variable " "`." @@ -186,7 +190,7 @@ msgstr "" ":data:`TZPATH` puede configurarse utilizando :ref:`una variable de entorno " "`." -#: ../Doc/library/zoneinfo.rst:115 +#: ../Doc/library/zoneinfo.rst:117 msgid "" "At :ref:`runtime `, the search path can be " "manipulated using the :func:`reset_tzpath` function." @@ -194,11 +198,11 @@ msgstr "" "En :ref:`runtime `, la ruta de búsqueda puede " "ser manipulada usando la función :func:`reset_tzpath`." -#: ../Doc/library/zoneinfo.rst:121 +#: ../Doc/library/zoneinfo.rst:123 msgid "Compile-time configuration" msgstr "Configuración en tiempo de compilación" -#: ../Doc/library/zoneinfo.rst:123 +#: ../Doc/library/zoneinfo.rst:125 msgid "" "The default :data:`TZPATH` includes several common deployment locations for " "the time zone database (except on Windows, where there are no \"well-known\" " @@ -219,7 +223,7 @@ msgstr "" "(o, más probablemente, el :option:`configure flag --with-tzpath <--with-" "tzpath>`), que debería ser una cadena delimitada por :data:`os.pathsep`." -#: ../Doc/library/zoneinfo.rst:132 +#: ../Doc/library/zoneinfo.rst:134 msgid "" "On all platforms, the configured value is available as the ``TZPATH`` key " "in :func:`sysconfig.get_config_var`." @@ -227,11 +231,11 @@ msgstr "" "En todas las plataformas, el valor configurado está disponible como la clave " "``TZPATH`` en :func:`sysconfig.get_config_var`." -#: ../Doc/library/zoneinfo.rst:138 +#: ../Doc/library/zoneinfo.rst:140 msgid "Environment configuration" msgstr "Configuración del entorno" -#: ../Doc/library/zoneinfo.rst:140 +#: ../Doc/library/zoneinfo.rst:142 msgid "" "When initializing :data:`TZPATH` (either at import time or whenever :func:" "`reset_tzpath` is called with no arguments), the ``zoneinfo`` module will " @@ -243,7 +247,7 @@ msgstr "" "``zoneinfo`` utilizará la variable de entorno ``PYTHONTZPATH``, si existe, " "para establecer la ruta de búsqueda." -#: ../Doc/library/zoneinfo.rst:147 +#: ../Doc/library/zoneinfo.rst:149 msgid "" "This is an :data:`os.pathsep`-separated string containing the time zone " "search path to use. It must consist of only absolute rather than relative " @@ -262,7 +266,7 @@ msgstr "" "libres de ignorar silenciosamente el componente erróneo o lanzar una " "excepción." -#: ../Doc/library/zoneinfo.rst:155 +#: ../Doc/library/zoneinfo.rst:157 msgid "" "To set the system to ignore the system data and use the tzdata package " "instead, set ``PYTHONTZPATH=\"\"``." @@ -270,11 +274,11 @@ msgstr "" "Para que el sistema ignore los datos del sistema y utilice el paquete tzdata " "en su lugar, establezca ``PYTHONTZPATH=\"\"``." -#: ../Doc/library/zoneinfo.rst:161 +#: ../Doc/library/zoneinfo.rst:163 msgid "Runtime configuration" msgstr "Configuración de tiempo de ejecución" -#: ../Doc/library/zoneinfo.rst:163 +#: ../Doc/library/zoneinfo.rst:165 msgid "" "The TZ search path can also be configured at runtime using the :func:" "`reset_tzpath` function. This is generally not an advisable operation, " @@ -288,11 +292,11 @@ msgstr "" "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:170 +#: ../Doc/library/zoneinfo.rst:172 msgid "The ``ZoneInfo`` class" msgstr "La clase ``ZoneInfo``" -#: ../Doc/library/zoneinfo.rst:174 +#: ../Doc/library/zoneinfo.rst:176 msgid "" "A concrete :class:`datetime.tzinfo` subclass that represents an IANA time " "zone specified by the string ``key``. Calls to the primary constructor will " @@ -307,7 +311,7 @@ msgstr "" "clear_cache`, para todos los valores de ``key``, la siguiente afirmación " "siempre será verdadera:" -#: ../Doc/library/zoneinfo.rst:186 +#: ../Doc/library/zoneinfo.rst:188 msgid "" "``key`` must be in the form of a relative, normalized POSIX path, with no up-" "level references. The constructor will raise :exc:`ValueError` if a non-" @@ -317,7 +321,7 @@ msgstr "" "referencias de nivel superior. El constructor lanzará :exc:`ValueError` si " "se pasa una clave no conforme." -#: ../Doc/library/zoneinfo.rst:190 +#: ../Doc/library/zoneinfo.rst:192 msgid "" "If no file matching ``key`` is found, the constructor will raise :exc:" "`ZoneInfoNotFoundError`." @@ -325,11 +329,11 @@ msgstr "" "Si no se encuentra ningún archivo que coincida con la ``clave``, el " "constructor lanzará :exc:`ZoneInfoNotFoundError`." -#: ../Doc/library/zoneinfo.rst:194 +#: ../Doc/library/zoneinfo.rst:196 msgid "The ``ZoneInfo`` class has two alternate constructors:" msgstr "La clase ``ZoneInfo`` tiene dos constructores alternativos:" -#: ../Doc/library/zoneinfo.rst:198 +#: ../Doc/library/zoneinfo.rst:200 msgid "" "Constructs a ``ZoneInfo`` object from a file-like object returning bytes (e." "g. a file opened in binary mode or an :class:`io.BytesIO` object). Unlike " @@ -340,7 +344,7 @@ msgstr "" "class:`io.BytesIO`). A diferencia del constructor primario, éste siempre " "construye un nuevo objeto." -#: ../Doc/library/zoneinfo.rst:202 +#: ../Doc/library/zoneinfo.rst:204 msgid "" "The ``key`` parameter sets the name of the zone for the purposes of :py:meth:" "`~object.__str__` and :py:meth:`~object.__repr__`." @@ -348,14 +352,14 @@ 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:205 +#: ../Doc/library/zoneinfo.rst:207 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:209 +#: ../Doc/library/zoneinfo.rst:211 msgid "" "An alternate constructor that bypasses the constructor's cache. It is " "identical to the primary constructor, but returns a new object on each call. " @@ -369,7 +373,7 @@ msgstr "" "pero también se puede utilizar para crear un sistema con una estrategia de " "invalidación de caché diferente." -#: ../Doc/library/zoneinfo.rst:215 +#: ../Doc/library/zoneinfo.rst:217 msgid "" "Objects created via this constructor will also bypass the cache of a " "deserializing process when unpickled." @@ -377,7 +381,7 @@ 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:222 +#: ../Doc/library/zoneinfo.rst:224 msgid "" "Using this constructor may change the semantics of your datetimes in " "surprising ways, only use it if you know that you need to." @@ -385,11 +389,11 @@ 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:225 +#: ../Doc/library/zoneinfo.rst:227 msgid "The following class methods are also available:" msgstr "También están disponibles los siguientes métodos de clase:" -#: ../Doc/library/zoneinfo.rst:229 +#: ../Doc/library/zoneinfo.rst:231 msgid "" "A method for invalidating the cache on the ``ZoneInfo`` class. If no " "arguments are passed, all caches are invalidated and the next call to the " @@ -399,7 +403,7 @@ msgstr "" "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:233 +#: ../Doc/library/zoneinfo.rst:235 msgid "" "If an iterable of key names is passed to the ``only_keys`` parameter, only " "the specified keys will be removed from the cache. Keys passed to " @@ -409,22 +413,23 @@ msgstr "" "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:241 +#: ../Doc/library/zoneinfo.rst:243 +#, fuzzy msgid "" "Invoking this function may change the semantics of datetimes using " -"``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." +"``ZoneInfo`` in surprising ways; this modifies module 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:246 +#: ../Doc/library/zoneinfo.rst:248 msgid "The class has one attribute:" msgstr "La clase tiene un atributo:" -#: ../Doc/library/zoneinfo.rst:250 +#: ../Doc/library/zoneinfo.rst:252 msgid "" "This is a read-only :term:`attribute` that returns the value of ``key`` " "passed to the constructor, which should be a lookup key in the IANA time " @@ -436,7 +441,7 @@ msgstr "" "de datos de zonas horarias de la IANA (por ejemplo, ``America/New_York``, " "``Europe/Paris`` o ``Asia/Tokyo``." -#: ../Doc/library/zoneinfo.rst:255 +#: ../Doc/library/zoneinfo.rst:257 msgid "" "For zones constructed from file without specifying a ``key`` parameter, this " "will be set to ``None``." @@ -444,7 +449,7 @@ msgstr "" "Para las zonas construidas a partir de un archivo sin especificar un " "parámetro ``key``, se establecerá como ``None``." -#: ../Doc/library/zoneinfo.rst:260 +#: ../Doc/library/zoneinfo.rst:262 msgid "" "Although it is a somewhat common practice to expose these to end users, " "these values are designed to be primary keys for representing the relevant " @@ -458,11 +463,11 @@ msgstr "" "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:267 +#: ../Doc/library/zoneinfo.rst:269 msgid "String representations" msgstr "Representaciones de cadenas" -#: ../Doc/library/zoneinfo.rst:269 +#: ../Doc/library/zoneinfo.rst:271 msgid "" "The string representation returned when calling :py:class:`str` on a :class:" "`ZoneInfo` object defaults to using the :attr:`ZoneInfo.key` attribute (see " @@ -472,7 +477,7 @@ msgstr "" "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:281 +#: ../Doc/library/zoneinfo.rst:283 msgid "" "For objects constructed from a file without specifying a ``key`` parameter, " "``str`` falls back to calling :func:`repr`. ``ZoneInfo``'s ``repr`` is " @@ -485,11 +490,11 @@ msgstr "" "necesariamente estable entre versiones, pero se garantiza que no es una " "clave válida de ``ZoneInfo``.Pickled." -#: ../Doc/library/zoneinfo.rst:289 +#: ../Doc/library/zoneinfo.rst:291 msgid "Pickle serialization" msgstr "Serialización de Pickle" -#: ../Doc/library/zoneinfo.rst:291 +#: ../Doc/library/zoneinfo.rst:293 msgid "" "Rather than serializing all transition data, ``ZoneInfo`` objects are " "serialized by key, and ``ZoneInfo`` objects constructed from files (even " @@ -500,13 +505,13 @@ msgstr "" "a partir de archivos (incluso los que tienen un valor por ``key`` " "especifico) no pueden ser serializados." -#: ../Doc/library/zoneinfo.rst:295 +#: ../Doc/library/zoneinfo.rst:297 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:297 +#: ../Doc/library/zoneinfo.rst:299 msgid "" "``ZoneInfo(key)``: When constructed with the primary constructor, a " "``ZoneInfo`` object is serialized by key, and when deserialized, the " @@ -524,7 +529,7 @@ msgstr "" "construido a partir de ``ZoneInfo(\"Europe/Berlin\")``, se esperaría el " "siguiente comportamiento:" -#: ../Doc/library/zoneinfo.rst:312 +#: ../Doc/library/zoneinfo.rst:314 msgid "" "``ZoneInfo.no_cache(key)``: When constructed from the cache-bypassing " "constructor, the ``ZoneInfo`` object is also serialized by key, but when " @@ -540,7 +545,7 @@ msgstr "" "un pickle construido a partir de ``ZoneInfo.no_cache(\"Europe/Berlin\")``, " "cabría esperar el siguiente comportamiento:" -#: ../Doc/library/zoneinfo.rst:326 +#: ../Doc/library/zoneinfo.rst:328 msgid "" "``ZoneInfo.from_file(fobj, /, key=None)``: When constructed from a file, the " "``ZoneInfo`` object raises an exception on pickling. If an end user wants to " @@ -555,7 +560,7 @@ msgstr "" "serialización personalizada: ya sea serializando por clave o almacenando el " "contenido del objeto archivo y serializándolo." -#: ../Doc/library/zoneinfo.rst:332 +#: ../Doc/library/zoneinfo.rst:334 msgid "" "This method of serialization requires that the time zone data for the " "required key be available on both the serializing and deserializing side, " @@ -574,11 +579,11 @@ msgstr "" "recogido en un entorno con una versión diferente de los datos de la zona " "horaria." -#: ../Doc/library/zoneinfo.rst:340 +#: ../Doc/library/zoneinfo.rst:342 msgid "Functions" msgstr "Funciones" -#: ../Doc/library/zoneinfo.rst:344 +#: ../Doc/library/zoneinfo.rst:346 msgid "" "Get a set containing all the valid keys for IANA time zones available " "anywhere on the time zone path. This is recalculated on every call to the " @@ -588,7 +593,7 @@ msgstr "" "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:348 +#: ../Doc/library/zoneinfo.rst:350 msgid "" "This function only includes canonical zone names and does not include " "\"special\" zones such as those under the ``posix/`` and ``right/`` " @@ -598,7 +603,7 @@ msgstr "" "zonas \"especiales\" como las que se encuentran bajo los directorios ``posix/" "`` y ``right/``, o la zona ``posixrules``." -#: ../Doc/library/zoneinfo.rst:354 +#: ../Doc/library/zoneinfo.rst:356 msgid "" "This function may open a large number of files, as the best way to determine " "if a file on the time zone path is a valid time zone is to read the \"magic " @@ -608,7 +613,7 @@ msgstr "" "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:360 +#: ../Doc/library/zoneinfo.rst:362 msgid "" "These values are not designed to be exposed to end-users; for user facing " "elements, applications should use something like CLDR (the Unicode Common " @@ -621,7 +626,7 @@ msgstr "" "cadenas más fáciles de usar. Véase también la nota de advertencia sobre :" "attr:`ZoneInfo.key`." -#: ../Doc/library/zoneinfo.rst:367 +#: ../Doc/library/zoneinfo.rst:369 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." @@ -630,7 +635,7 @@ msgstr "" "`TZPATH`) para el módulo. Cuando se llama sin argumentos, :data:`TZPATH` se " "establece en el valor por defecto." -#: ../Doc/library/zoneinfo.rst:370 +#: ../Doc/library/zoneinfo.rst:372 msgid "" "Calling ``reset_tzpath`` will not invalidate the :class:`ZoneInfo` cache, " "and so calls to the primary ``ZoneInfo`` constructor will only use the new " @@ -640,7 +645,7 @@ msgstr "" "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:374 +#: ../Doc/library/zoneinfo.rst:376 msgid "" "The ``to`` parameter must be a :term:`sequence` of strings or :class:`os." "PathLike` and not a string, all of which must be absolute paths. :exc:" @@ -651,11 +656,11 @@ msgstr "" "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:380 +#: ../Doc/library/zoneinfo.rst:382 msgid "Globals" msgstr "Globales" -#: ../Doc/library/zoneinfo.rst:384 +#: ../Doc/library/zoneinfo.rst:386 msgid "" "A read-only sequence representing the time zone search path -- when " "constructing a ``ZoneInfo`` from a key, the key is joined to each entry in " @@ -666,7 +671,7 @@ msgstr "" "clave se une a cada entrada del ``TZPATH``, y se utiliza el primer archivo " "encontrado." -#: ../Doc/library/zoneinfo.rst:388 +#: ../Doc/library/zoneinfo.rst:390 msgid "" "``TZPATH`` may contain only absolute paths, never relative paths, regardless " "of how it is configured." @@ -674,7 +679,7 @@ msgstr "" "``TZPATH`` sólo puede contener rutas absolutas, nunca relativas, " "independientemente de cómo esté configurado." -#: ../Doc/library/zoneinfo.rst:391 +#: ../Doc/library/zoneinfo.rst:393 msgid "" "The object that ``zoneinfo.TZPATH`` points to may change in response to a " "call to :func:`reset_tzpath`, so it is recommended to use ``zoneinfo." @@ -686,7 +691,7 @@ msgstr "" "TZPATH`` en lugar de importar ``TZPATH`` desde ``zoneinfo`` o asignar una " "variable de larga duración a ``zoneinfo.TZPATH``." -#: ../Doc/library/zoneinfo.rst:396 +#: ../Doc/library/zoneinfo.rst:398 msgid "" "For more information on configuring the time zone search path, see :ref:" "`zoneinfo_data_configuration`." @@ -694,11 +699,11 @@ 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:400 +#: ../Doc/library/zoneinfo.rst:402 msgid "Exceptions and warnings" msgstr "Excepciones y advertencias" -#: ../Doc/library/zoneinfo.rst:404 +#: ../Doc/library/zoneinfo.rst:406 msgid "" "Raised when construction of a :class:`ZoneInfo` object fails because the " "specified key could not be found on the system. This is a subclass of :exc:" @@ -708,7 +713,7 @@ msgstr "" "la clave especificada no puede encontrarse en el sistema. Es una subclase " "de :exc:`KeyError`." -#: ../Doc/library/zoneinfo.rst:410 +#: ../Doc/library/zoneinfo.rst:412 msgid "" "Raised when :envvar:`PYTHONTZPATH` contains an invalid component that will " "be filtered out, such as a relative path." diff --git a/license.po b/license.po index 1a02fd25a4..ee3f996836 100644 --- a/license.po +++ b/license.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-04 11:18+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/license.rst:7 msgid "History and License" @@ -320,97 +320,101 @@ msgid "Mersenne Twister" msgstr "Mersenne Twister" #: ../Doc/license.rst:305 +#, fuzzy msgid "" -"The :mod:`_random` module includes code based on a download from http://www." -"math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/emt19937ar.html. The following " -"are the verbatim comments from the original code::" +"The :mod:`!_random` C extension underlying the :mod:`random` module includes " +"code based on a download from http://www.math.sci.hiroshima-u.ac.jp/~m-mat/" +"MT/MT2002/emt19937ar.html. The following are the verbatim comments from the " +"original code::" msgstr "" "El módulo :mod:`_random` incluye código basado en una descarga de http://www." "math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/emt19937ar.html. Los siguientes " "son los comentarios textuales del código original:" -#: ../Doc/license.rst:352 +#: ../Doc/license.rst:353 msgid "Sockets" msgstr "Sockets" -#: ../Doc/license.rst:354 +#: ../Doc/license.rst:355 #, fuzzy msgid "" -"The :mod:`socket` module uses the functions, :func:`getaddrinfo`, and :func:" -"`getnameinfo`, which are coded in separate source files from the WIDE " +"The :mod:`socket` module uses the functions, :c:func:`!getaddrinfo`, and :c:" +"func:`!getnameinfo`, which are coded in separate source files from the WIDE " "Project, https://www.wide.ad.jp/. ::" msgstr "" "El módulo :mod:`socket` usa las funciones, :func:`getaddrinfo`, y :func:" "`getnameinfo`, que están codificadas en archivos fuente separados del " "Proyecto WIDE, http://www.wide.ad.jp /. ::" -#: ../Doc/license.rst:387 +#: ../Doc/license.rst:388 msgid "Asynchronous socket services" msgstr "Servicios de socket asincrónicos" -#: ../Doc/license.rst:389 +#: ../Doc/license.rst:390 +#, fuzzy msgid "" -"The :mod:`asynchat` and :mod:`asyncore` modules contain the following " -"notice::" +"The :mod:`!test.support.asynchat` and :mod:`!test.support.asyncore` modules " +"contain the following notice::" msgstr "" "Los módulos :mod:`asynchat` y :mod:`asyncore` contienen el siguiente aviso::" -#: ../Doc/license.rst:414 +#: ../Doc/license.rst:416 msgid "Cookie management" msgstr "Gestión de cookies" -#: ../Doc/license.rst:416 +#: ../Doc/license.rst:418 msgid "The :mod:`http.cookies` module contains the following notice::" msgstr "El módulo :mod:`http.cookies` contiene el siguiente aviso::" -#: ../Doc/license.rst:442 +#: ../Doc/license.rst:444 msgid "Execution tracing" msgstr "Seguimiento de ejecución" -#: ../Doc/license.rst:444 +#: ../Doc/license.rst:446 msgid "The :mod:`trace` module contains the following notice::" msgstr "El módulo :mod:`trace` contiene el siguiente aviso::" -#: ../Doc/license.rst:475 +#: ../Doc/license.rst:477 msgid "UUencode and UUdecode functions" msgstr "funciones UUencode y UUdecode" -#: ../Doc/license.rst:477 +#: ../Doc/license.rst:479 msgid "The :mod:`uu` module contains the following notice::" msgstr "El módulo :mod:`uu` contiene el siguiente aviso::" -#: ../Doc/license.rst:505 +#: ../Doc/license.rst:507 msgid "XML Remote Procedure Calls" msgstr "Llamadas a procedimientos remotos XML" -#: ../Doc/license.rst:507 +#: ../Doc/license.rst:509 msgid "The :mod:`xmlrpc.client` module contains the following notice::" msgstr "El módulo :mod:`xmlrpc.client` contiene el siguiente aviso::" -#: ../Doc/license.rst:538 +#: ../Doc/license.rst:540 msgid "test_epoll" msgstr "test_epoll" -#: ../Doc/license.rst:540 -msgid "The :mod:`test_epoll` module contains the following notice::" +#: ../Doc/license.rst:542 +#, fuzzy +msgid "The :mod:`!test.test_epoll` module contains the following notice::" msgstr "El módulo :mod:`test_epoll` contiene el siguiente aviso::" -#: ../Doc/license.rst:564 +#: ../Doc/license.rst:566 msgid "Select kqueue" msgstr "Seleccionar kqueue" -#: ../Doc/license.rst:566 +#: ../Doc/license.rst:568 msgid "" "The :mod:`select` module contains the following notice for the kqueue " "interface::" msgstr "" "El módulo :mod:`select` contiene el siguiente aviso para la interfaz kqueue::" -#: ../Doc/license.rst:595 +#: ../Doc/license.rst:597 msgid "SipHash24" msgstr "SipHash24" -#: ../Doc/license.rst:597 +#: ../Doc/license.rst:599 msgid "" "The file :file:`Python/pyhash.c` contains Marek Majkowski' implementation of " "Dan Bernstein's SipHash24 algorithm. It contains the following note::" @@ -419,11 +423,11 @@ msgstr "" "Majkowski del algoritmo SipHash24 de Dan Bernstein. Contiene la siguiente " "nota::" -#: ../Doc/license.rst:624 +#: ../Doc/license.rst:626 msgid "strtod and dtoa" msgstr "strtod y dtoa" -#: ../Doc/license.rst:626 +#: ../Doc/license.rst:628 #, fuzzy msgid "" "The file :file:`Python/dtoa.c`, which supplies C functions dtoa and strtod " @@ -439,17 +443,19 @@ msgstr "" "www.netlib.org/fp/. El archivo original, recuperado el 16 de marzo de 2009, " "contiene el siguiente aviso de licencia y derechos de autor::" -#: ../Doc/license.rst:654 +#: ../Doc/license.rst:656 msgid "OpenSSL" msgstr "OpenSSL" -#: ../Doc/license.rst:656 +#: ../Doc/license.rst:658 +#, fuzzy msgid "" "The modules :mod:`hashlib`, :mod:`posix`, :mod:`ssl`, :mod:`crypt` use the " "OpenSSL library for added performance if made available by the operating " "system. Additionally, the Windows and macOS installers for Python may " "include a copy of the OpenSSL libraries, so we include a copy of the OpenSSL " -"license here::" +"license here. For the OpenSSL 3.0 release, and later releases derived from " +"that, the Apache License v2 applies::" msgstr "" "Los módulos :mod:`hashlib`, :mod:`posix`, :mod:`ssl`, :mod:`crypt` utilizan " "la biblioteca OpenSSL para un rendimiento adicional si el sistema operativo " @@ -457,37 +463,41 @@ msgstr "" "Python pueden incluir una copia de las bibliotecas de OpenSSL, por lo que " "incluimos una copia de la licencia de OpenSSL aquí::" -#: ../Doc/license.rst:791 +#: ../Doc/license.rst:845 msgid "expat" msgstr "expat" -#: ../Doc/license.rst:793 +#: ../Doc/license.rst:847 +#, fuzzy msgid "" -"The :mod:`pyexpat` extension is built using an included copy of the expat " -"sources unless the build is configured ``--with-system-expat``::" +"The :mod:`pyexpat ` extension is built using an included " +"copy of the expat sources unless the build is configured ``--with-system-" +"expat``::" msgstr "" "La extensión :mod:`pyexpat` se construye usando una copia incluida de las " "fuentes de expatriados a menos que la construcción esté configurada ``--with-" "system-expat``::" -#: ../Doc/license.rst:820 +#: ../Doc/license.rst:874 msgid "libffi" msgstr "libffi" -#: ../Doc/license.rst:822 +#: ../Doc/license.rst:876 +#, fuzzy msgid "" -"The :mod:`_ctypes` extension is built using an included copy of the libffi " -"sources unless the build is configured ``--with-system-libffi``::" +"The :mod:`!_ctypes` C extension underlying the :mod:`ctypes` module is built " +"using an included copy of the libffi sources unless the build is configured " +"``--with-system-libffi``::" msgstr "" "La extensión :mod:`_ctypes` se construye usando una copia incluida de las " "fuentes de libffi a menos que la construcción esté configurada ``--with-" "system-libffi``::" -#: ../Doc/license.rst:849 +#: ../Doc/license.rst:904 msgid "zlib" msgstr "zlib" -#: ../Doc/license.rst:851 +#: ../Doc/license.rst:906 msgid "" "The :mod:`zlib` extension is built using an included copy of the zlib " "sources if the zlib version found on the system is too old to be used for " @@ -497,11 +507,11 @@ msgstr "" "fuentes de zlib si la versión de zlib encontrada en el sistema es demasiado " "antigua para ser utilizada para la compilación::" -#: ../Doc/license.rst:880 +#: ../Doc/license.rst:935 msgid "cfuhash" msgstr "cfuhash" -#: ../Doc/license.rst:882 +#: ../Doc/license.rst:937 msgid "" "The implementation of the hash table used by the :mod:`tracemalloc` is based " "on the cfuhash project::" @@ -509,24 +519,26 @@ msgstr "" "La implementación de la tabla hash utilizada por :mod:`tracemalloc` se basa " "en el proyecto cfuhash::" -#: ../Doc/license.rst:921 +#: ../Doc/license.rst:976 msgid "libmpdec" msgstr "libmpdec" -#: ../Doc/license.rst:923 +#: ../Doc/license.rst:978 +#, fuzzy msgid "" -"The :mod:`_decimal` module is built using an included copy of the libmpdec " -"library unless the build is configured ``--with-system-libmpdec``::" +"The :mod:`!_decimal` C extension underlying the :mod:`decimal` module is " +"built using an included copy of the libmpdec library unless the build is " +"configured ``--with-system-libmpdec``::" msgstr "" "El módulo :mod:`_decimal` se construye usando una copia incluida de la " "biblioteca libmpdec a menos que la construcción esté configurada ``--with-" "system-libmpdec``::" -#: ../Doc/license.rst:953 +#: ../Doc/license.rst:1009 msgid "W3C C14N test suite" msgstr "Conjunto de pruebas W3C C14N" -#: ../Doc/license.rst:955 +#: ../Doc/license.rst:1011 msgid "" "The C14N 2.0 test suite in the :mod:`test` package (``Lib/test/xmltestdata/" "c14n-20/``) was retrieved from the W3C website at https://www.w3.org/TR/xml-" @@ -537,30 +549,11 @@ msgstr "" "org/TR/xml-c14n2-testcases/ y se distribuye bajo la licencia BSD de 3 " "cláusulas:" -#: ../Doc/license.rst:989 +#: ../Doc/license.rst:1046 msgid "Audioop" msgstr "" -#: ../Doc/license.rst:1010 +#: ../Doc/license.rst:1048 msgid "" "The audioop module uses the code base in g771.c file of the SoX project::" msgstr "" - -#: ../Doc/license.rst:991 -msgid "" -"Programming the AdLib/Sound Blaster FM Music Chips Version 2.0 (24 Feb 1992) " -"Copyright (c) 1991, 1992 by Jeffrey S. Lee jlee@smylex.uucp Warranty and " -"Copyright Policy This document is provided on an \"as-is\" basis, and its " -"author makes no warranty or representation, express or implied, with respect " -"to its quality performance or fitness for a particular purpose. In no event " -"will the author of this document be liable for direct, indirect, special, " -"incidental, or consequential damages arising out of the use or inability to " -"use the information contained within. Use of this document is at your own " -"risk. This file may be used and copied freely so long as the applicable " -"copyright notices are retained, and no modifications are made to the text of " -"the document. No money shall be charged for its distribution beyond " -"reasonable shipping, handling and duplication costs, nor shall proprietary " -"changes be made to this document so that it cannot be distributed freely. " -"This document may not be included in published material or commercial " -"packages without the written consent of its author." -msgstr "" diff --git a/reference/compound_stmts.po b/reference/compound_stmts.po index a1875734bb..66556c1775 100644 --- a/reference/compound_stmts.po +++ b/reference/compound_stmts.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-01-06 10:25-0300\n" "Last-Translator: Carlos A. Crespo \n" -"Language-Team: python-doc-es\n" "Language: es_AR\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/reference/compound_stmts.rst:5 msgid "Compound statements" @@ -236,12 +236,13 @@ msgstr "" "las realizadas en la suite del bucle ``for``::" #: ../Doc/reference/compound_stmts.rst:193 +#, fuzzy msgid "" "Names in the target list are not deleted when the loop is finished, but if " "the sequence is empty, they will not have been assigned to at all by the " -"loop. Hint: the built-in function :func:`range` returns an iterator of " -"integers suitable to emulate the effect of Pascal's ``for i := a to b do``; " -"e.g., ``list(range(3))`` returns the list ``[0, 1, 2]``." +"loop. Hint: the built-in type :func:`range` represents immutable arithmetic " +"sequences of integers. For instance, iterating ``range(3)`` successively " +"yields 0, 1, and then 2." msgstr "" "Los nombres en la lista no se eliminan cuando finaliza el bucle, pero si la " "secuencia está vacía, el bucle no les habrá asignado nada. Sugerencia: la " @@ -249,16 +250,16 @@ msgstr "" "para emular el efecto de Pascal ``for i := a to b do``; por ejemplo, " "``list(range(3))`` retorna la lista ``[0, 1, 2]``." -#: ../Doc/reference/compound_stmts.rst:199 +#: ../Doc/reference/compound_stmts.rst:198 msgid "Starred elements are now allowed in the expression list." msgstr "" "Los elementos destacados ahora están permitidos en la lista de expresiones." -#: ../Doc/reference/compound_stmts.rst:206 +#: ../Doc/reference/compound_stmts.rst:205 msgid "The :keyword:`!try` statement" msgstr "La sentencia :keyword:`!try`" -#: ../Doc/reference/compound_stmts.rst:216 +#: ../Doc/reference/compound_stmts.rst:215 msgid "" "The :keyword:`!try` statement specifies exception handlers and/or cleanup " "code for a group of statements:" @@ -266,7 +267,7 @@ msgstr "" "La sentencia :keyword:`!try` especifica controladores de excepciones y/o " "código de limpieza para un grupo de sentencias:" -#: ../Doc/reference/compound_stmts.rst:232 +#: ../Doc/reference/compound_stmts.rst:231 msgid "" "Additional information on exceptions can be found in section :ref:" "`exceptions`, and information on using the :keyword:`raise` statement to " @@ -277,11 +278,11 @@ msgstr "" "keyword:`raise`, para lanzar excepciones se puede encontrar en la sección :" "ref:`raise`." -#: ../Doc/reference/compound_stmts.rst:240 +#: ../Doc/reference/compound_stmts.rst:239 msgid ":keyword:`!except` clause" msgstr "Cláusula :keyword:`!except`" -#: ../Doc/reference/compound_stmts.rst:242 +#: ../Doc/reference/compound_stmts.rst:241 msgid "" "The :keyword:`!except` clause(s) specify one or more exception handlers. " "When no exception occurs in the :keyword:`try` clause, no exception handler " @@ -312,7 +313,7 @@ msgstr "" "o una tupla que contiene un elemento que es la clase o una clase base no " "virtual del objeto de excepción." -#: ../Doc/reference/compound_stmts.rst:257 +#: ../Doc/reference/compound_stmts.rst:256 msgid "" "If no :keyword:`!except` clause matches the exception, the search for an " "exception handler continues in the surrounding code and on the invocation " @@ -322,7 +323,7 @@ msgstr "" "búsqueda de un controlador de excepciones continúa en el código circundante " "y en la pila de invocaciones. [#]_" -#: ../Doc/reference/compound_stmts.rst:261 +#: ../Doc/reference/compound_stmts.rst:260 msgid "" "If the evaluation of an expression in the header of an :keyword:`!except` " "clause raises an exception, the original search for a handler is canceled " @@ -336,7 +337,7 @@ msgstr "" "circundante y en la pila de llamadas (se trata como si toda la sentencia :" "keyword:`try` generara la excepción)." -#: ../Doc/reference/compound_stmts.rst:269 +#: ../Doc/reference/compound_stmts.rst:268 msgid "" "When a matching :keyword:`!except` clause is found, the exception is " "assigned to the target specified after the :keyword:`!as` keyword in that :" @@ -359,7 +360,7 @@ msgstr "" "la cláusula :keyword:`!try` del controlador interno, el controlador externo " "no controlará la excepción)." -#: ../Doc/reference/compound_stmts.rst:280 +#: ../Doc/reference/compound_stmts.rst:279 msgid "" "When an exception has been assigned using ``as target``, it is cleared at " "the end of the :keyword:`!except` clause. This is as if ::" @@ -367,11 +368,11 @@ msgstr "" "Cuando se ha asignado una excepción mediante ``as target``, se borra al " "final de la cláusula :keyword:`!except`. Esto es como si ::" -#: ../Doc/reference/compound_stmts.rst:286 +#: ../Doc/reference/compound_stmts.rst:285 msgid "was translated to ::" msgstr "fue traducido a ::" -#: ../Doc/reference/compound_stmts.rst:294 +#: ../Doc/reference/compound_stmts.rst:293 msgid "" "This means the exception must be assigned to a different name to be able to " "refer to it after the :keyword:`!except` clause. Exceptions are cleared " @@ -386,31 +387,20 @@ msgstr "" "marco vivos hasta que ocurra la próxima recolección de elementos no " "utilizados." -#: ../Doc/reference/compound_stmts.rst:304 -msgid "" -"Before an :keyword:`!except` clause's suite is executed, details about the " -"exception are stored in the :mod:`sys` module and can be accessed via :func:" -"`sys.exc_info`. :func:`sys.exc_info` returns a 3-tuple consisting of the " -"exception class, the exception instance and a traceback object (see section :" -"ref:`types`) identifying the point in the program where the exception " -"occurred. The details about the exception accessed via :func:`sys.exc_info` " -"are restored to their previous values when leaving an exception handler::" -msgstr "" -"Antes de que se ejecute un conjunto de cláusulas :keyword:`!except`, los " -"detalles sobre la excepción se almacenan en el módulo :mod:`sys` y se puede " -"acceder a ellos a través de :func:`sys.exc_info`. :func:`sys.exc_info` " -"devuelve una tupla de 3 que consta de la clase de excepción, la instancia de " -"excepción y un objeto de rastreo (consulte la sección :ref:`types`) que " -"identifica el punto del programa donde se produjo la excepción. Los detalles " -"sobre la excepción a la que se accede a través de :func:`sys.exc_info` se " -"restauran a sus valores anteriores cuando se deja un controlador de " -"excepciones:" - -#: ../Doc/reference/compound_stmts.rst:338 +#: ../Doc/reference/compound_stmts.rst:303 +msgid "" +"Before an :keyword:`!except` clause's suite is executed, the exception is " +"stored in the :mod:`sys` module, where it can be accessed from within the " +"body of the :keyword:`!except` clause by calling :func:`sys.exception`. When " +"leaving an exception handler, the exception stored in the :mod:`sys` module " +"is reset to its previous value::" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:334 msgid ":keyword:`!except*` clause" msgstr "Cláusula :keyword:`!except*`" -#: ../Doc/reference/compound_stmts.rst:340 +#: ../Doc/reference/compound_stmts.rst:336 msgid "" "The :keyword:`!except*` clause(s) are used for handling :exc:" "`ExceptionGroup`\\s. The exception type for matching is interpreted as in " @@ -433,18 +423,20 @@ msgstr "" "excepción en el grupo es manejada por una cláusula :keyword:`!except*` como " "máximo, la primera que coincida. ::" -#: ../Doc/reference/compound_stmts.rst:368 +#: ../Doc/reference/compound_stmts.rst:364 +#, fuzzy msgid "" "Any remaining exceptions that were not handled by any :keyword:`!except*` " -"clause are re-raised at the end, combined into an exception group along with " -"all exceptions that were raised from within :keyword:`!except*` clauses." +"clause are re-raised at the end, along with all exceptions that were raised " +"from within the :keyword:`!except*` clauses. If this list contains more than " +"one exception to reraise, they are combined into an exception group." msgstr "" "Cualquier excepción restante que no haya sido manejada por ninguna cláusula :" "keyword:`!except*` se vuelve a generar al final, se combina en un grupo de " "excepciones junto con todas las excepciones que se generaron desde dentro de " "las cláusulas :keyword:`!except*`." -#: ../Doc/reference/compound_stmts.rst:372 +#: ../Doc/reference/compound_stmts.rst:370 msgid "" "If the raised exception is not an exception group and its type matches one " "of the :keyword:`!except*` clauses, it is caught and wrapped by an exception " @@ -454,7 +446,7 @@ msgstr "" "con una de las cláusulas :keyword:`!except*`, un grupo de excepciones la " "captura y la encapsula con una cadena de mensaje vacía. ::" -#: ../Doc/reference/compound_stmts.rst:383 +#: ../Doc/reference/compound_stmts.rst:381 msgid "" "An :keyword:`!except*` clause must have a matching type, and this type " "cannot be a subclass of :exc:`BaseExceptionGroup`. It is not possible to " @@ -468,11 +460,11 @@ msgstr "" "keyword:`break`, :keyword:`continue` y :keyword:`return` no pueden aparecer " "en una cláusula :keyword:`!except*`." -#: ../Doc/reference/compound_stmts.rst:400 +#: ../Doc/reference/compound_stmts.rst:398 msgid ":keyword:`!else` clause" msgstr "La sentencia :keyword:`!else`" -#: ../Doc/reference/compound_stmts.rst:402 +#: ../Doc/reference/compound_stmts.rst:400 msgid "" "The optional :keyword:`!else` clause is executed if the control flow leaves " "the :keyword:`try` suite, no exception was raised, and no :keyword:" @@ -486,11 +478,11 @@ msgstr "" "excepciones en la cláusula :keyword:`!else` no se gestionaron con las " "cláusulas precedentes :keyword:`except`." -#: ../Doc/reference/compound_stmts.rst:414 +#: ../Doc/reference/compound_stmts.rst:412 msgid ":keyword:`!finally` clause" msgstr "Cláusula :keyword:`!finally`" -#: ../Doc/reference/compound_stmts.rst:416 +#: ../Doc/reference/compound_stmts.rst:414 msgid "" "If :keyword:`!finally` is present, it specifies a 'cleanup' handler. The :" "keyword:`try` clause is executed, including any :keyword:`except` and :" @@ -514,7 +506,7 @@ msgstr "" "finally` ejecuta una sentencia :keyword:`return`, :keyword:`break` o :" "keyword:`continue`, la excepción guardada se descarta:" -#: ../Doc/reference/compound_stmts.rst:435 +#: ../Doc/reference/compound_stmts.rst:433 msgid "" "The exception information is not available to the program during execution " "of the :keyword:`!finally` clause." @@ -522,7 +514,7 @@ msgstr "" "La información de excepción no está disponible para el programa durante la " "ejecución de la cláusula :keyword:`!finally`." -#: ../Doc/reference/compound_stmts.rst:443 +#: ../Doc/reference/compound_stmts.rst:441 msgid "" "When a :keyword:`return`, :keyword:`break` or :keyword:`continue` statement " "is executed in the :keyword:`try` suite of a :keyword:`!try`...\\ :keyword:`!" @@ -534,7 +526,7 @@ msgstr "" "try`...\\ :keyword:`!finally`, la cláusula :keyword:`!finally` también se " "ejecuta 'al salir'." -#: ../Doc/reference/compound_stmts.rst:447 +#: ../Doc/reference/compound_stmts.rst:445 msgid "" "The return value of a function is determined by the last :keyword:`return` " "statement executed. Since the :keyword:`!finally` clause always executes, " @@ -546,7 +538,7 @@ msgstr "" "finally` siempre se ejecuta, una sentencia :keyword:`!return` ejecutada en " "la cláusula :keyword:`!finally` siempre será la última en ejecutarse:" -#: ../Doc/reference/compound_stmts.rst:461 +#: ../Doc/reference/compound_stmts.rst:459 msgid "" "Prior to Python 3.8, a :keyword:`continue` statement was illegal in the :" "keyword:`!finally` clause due to a problem with the implementation." @@ -554,11 +546,11 @@ msgstr "" "Antes de Python 3.8, una declaración :keyword:`continue` era ilegal en la " "cláusula :keyword:`!finally` debido a un problema con la implementación." -#: ../Doc/reference/compound_stmts.rst:470 +#: ../Doc/reference/compound_stmts.rst:468 msgid "The :keyword:`!with` statement" msgstr "La sentencia :keyword:`!with`" -#: ../Doc/reference/compound_stmts.rst:479 +#: ../Doc/reference/compound_stmts.rst:477 msgid "" "The :keyword:`with` statement is used to wrap the execution of a block with " "methods defined by a context manager (see section :ref:`context-managers`). " @@ -571,7 +563,7 @@ msgstr "" "`try`...\\ :keyword:`except`...\\ :keyword:`finally` se encapsulen para una " "reutilización conveniente." -#: ../Doc/reference/compound_stmts.rst:489 +#: ../Doc/reference/compound_stmts.rst:487 msgid "" "The execution of the :keyword:`with` statement with one \"item\" proceeds as " "follows:" @@ -579,7 +571,7 @@ msgstr "" "La ejecución de la sentencia :keyword:`with` con un \"item\" se realiza de " "la siguiente manera:" -#: ../Doc/reference/compound_stmts.rst:491 +#: ../Doc/reference/compound_stmts.rst:489 msgid "" "The context expression (the expression given in the :token:`~python-grammar:" "with_item`) is evaluated to obtain a context manager." @@ -587,22 +579,22 @@ msgstr "" "La expresión de contexto (la expresión dada en :token:`~python-grammar:" "with_item`) se evalúa para obtener un administrador de contexto." -#: ../Doc/reference/compound_stmts.rst:494 +#: ../Doc/reference/compound_stmts.rst:492 msgid "The context manager's :meth:`__enter__` is loaded for later use." msgstr "" "El administrador de contexto :meth:`__enter__` se carga para su uso " "posterior." -#: ../Doc/reference/compound_stmts.rst:496 +#: ../Doc/reference/compound_stmts.rst:494 msgid "The context manager's :meth:`__exit__` is loaded for later use." msgstr "" "El administrador de contexto :meth:`__exit__` se carga para su uso posterior." -#: ../Doc/reference/compound_stmts.rst:498 +#: ../Doc/reference/compound_stmts.rst:496 msgid "The context manager's :meth:`__enter__` method is invoked." msgstr "Se invoca el método del administrador de contexto :meth:`__enter__`." -#: ../Doc/reference/compound_stmts.rst:500 +#: ../Doc/reference/compound_stmts.rst:498 msgid "" "If a target was included in the :keyword:`with` statement, the return value " "from :meth:`__enter__` is assigned to it." @@ -610,13 +602,14 @@ msgstr "" "Si se incluyó el destino en la sentencia :keyword:`with`, se le asigna el " "valor de retorno de :meth:`__enter__`." -#: ../Doc/reference/compound_stmts.rst:505 +#: ../Doc/reference/compound_stmts.rst:503 +#, fuzzy msgid "" "The :keyword:`with` statement guarantees that if the :meth:`__enter__` " "method returns without an error, then :meth:`__exit__` will always be " "called. Thus, if an error occurs during the assignment to the target list, " "it will be treated the same as an error occurring within the suite would be. " -"See step 6 below." +"See step 7 below." msgstr "" "La sentencia :keyword:`with` garantiza que si el método :meth:`__enter__` " "regresa sin error, entonces siempre se llamará a :meth:`__exit__`. Por lo " @@ -624,11 +617,11 @@ msgstr "" "se tratará de la misma manera que si se produciría un error dentro de la " "suite. Vea el paso 6 a continuación." -#: ../Doc/reference/compound_stmts.rst:511 +#: ../Doc/reference/compound_stmts.rst:509 msgid "The suite is executed." msgstr "La suite se ejecuta." -#: ../Doc/reference/compound_stmts.rst:513 +#: ../Doc/reference/compound_stmts.rst:511 msgid "" "The context manager's :meth:`__exit__` method is invoked. If an exception " "caused the suite to be exited, its type, value, and traceback are passed as " @@ -640,7 +633,7 @@ msgstr "" "como argumentos a :meth:`__exit__`. De lo contrario, se proporcionan tres " "argumentos :const:`None`." -#: ../Doc/reference/compound_stmts.rst:518 +#: ../Doc/reference/compound_stmts.rst:516 msgid "" "If the suite was exited due to an exception, and the return value from the :" "meth:`__exit__` method was false, the exception is reraised. If the return " @@ -652,7 +645,7 @@ msgstr "" "valor de retorno era verdadero, la excepción se suprime y la ejecución " "continúa con la sentencia que sigue a la sentencia :keyword:`with`." -#: ../Doc/reference/compound_stmts.rst:523 +#: ../Doc/reference/compound_stmts.rst:521 msgid "" "If the suite was exited for any reason other than an exception, the return " "value from :meth:`__exit__` is ignored, and execution proceeds at the normal " @@ -662,19 +655,19 @@ msgstr "" "valor de retorno de :meth:`__exit__` se ignora y la ejecución continúa en la " "ubicación normal para el tipo de salida que se tomó." -#: ../Doc/reference/compound_stmts.rst:527 -#: ../Doc/reference/compound_stmts.rst:1517 -#: ../Doc/reference/compound_stmts.rst:1558 +#: ../Doc/reference/compound_stmts.rst:525 +#: ../Doc/reference/compound_stmts.rst:1534 +#: ../Doc/reference/compound_stmts.rst:1575 msgid "The following code::" msgstr "El siguiente código::" -#: ../Doc/reference/compound_stmts.rst:532 -#: ../Doc/reference/compound_stmts.rst:557 -#: ../Doc/reference/compound_stmts.rst:1563 +#: ../Doc/reference/compound_stmts.rst:530 +#: ../Doc/reference/compound_stmts.rst:555 +#: ../Doc/reference/compound_stmts.rst:1580 msgid "is semantically equivalent to::" msgstr "es semánticamente equivalente a::" -#: ../Doc/reference/compound_stmts.rst:551 +#: ../Doc/reference/compound_stmts.rst:549 msgid "" "With more than one item, the context managers are processed as if multiple :" "keyword:`with` statements were nested::" @@ -682,7 +675,7 @@ msgstr "" "Con más de un elemento, los administradores de contexto se procesan como si " "varias sentencias :keyword:`with` estuvieran anidadas::" -#: ../Doc/reference/compound_stmts.rst:563 +#: ../Doc/reference/compound_stmts.rst:561 msgid "" "You can also write multi-item context managers in multiple lines if the " "items are surrounded by parentheses. For example::" @@ -690,11 +683,11 @@ msgstr "" "También puedes escribir administradores de contexto de múltiples ítems en " "múltiples lineas si los ítems están entre paréntesis. Por ejemplo::" -#: ../Doc/reference/compound_stmts.rst:572 +#: ../Doc/reference/compound_stmts.rst:570 msgid "Support for multiple context expressions." msgstr "Soporte para múltiples expresiones de contexto." -#: ../Doc/reference/compound_stmts.rst:575 +#: ../Doc/reference/compound_stmts.rst:573 msgid "" "Support for using grouping parentheses to break the statement in multiple " "lines." @@ -702,11 +695,11 @@ msgstr "" "Soporte para el uso de paréntesis de agrupación para separar la declaración " "en múltiples líneas." -#: ../Doc/reference/compound_stmts.rst:581 +#: ../Doc/reference/compound_stmts.rst:579 msgid ":pep:`343` - The \"with\" statement" msgstr ":pep:`343` - La sentencia \"with\"" -#: ../Doc/reference/compound_stmts.rst:581 +#: ../Doc/reference/compound_stmts.rst:579 msgid "" "The specification, background, and examples for the Python :keyword:`with` " "statement." @@ -714,16 +707,16 @@ msgstr "" "La especificación, antecedentes y ejemplos de la sentencia de Python :" "keyword:`with`." -#: ../Doc/reference/compound_stmts.rst:587 +#: ../Doc/reference/compound_stmts.rst:585 msgid "The :keyword:`!match` statement" msgstr "La sentencia :keyword:`!match`" -#: ../Doc/reference/compound_stmts.rst:600 +#: ../Doc/reference/compound_stmts.rst:599 msgid "The match statement is used for pattern matching. Syntax:" msgstr "" "La declaración match es usada para coincidencia de patrones. Sintaxis:" -#: ../Doc/reference/compound_stmts.rst:609 +#: ../Doc/reference/compound_stmts.rst:608 msgid "" "This section uses single quotes to denote :ref:`soft keywords `." @@ -733,7 +726,7 @@ msgstr "" # Se utilizó valor de búsqueda para traducir *subject value* basándose en la # traducción francesa *champ de recherche*. -#: ../Doc/reference/compound_stmts.rst:612 +#: ../Doc/reference/compound_stmts.rst:611 msgid "" "Pattern matching takes a pattern as input (following ``case``) and a subject " "value (following ``match``). The pattern (which may contain subpatterns) is " @@ -744,13 +737,13 @@ msgstr "" "puede contener subpatrones) es comparado con el valor de búsqueda. Los " "resultados son:" -#: ../Doc/reference/compound_stmts.rst:616 +#: ../Doc/reference/compound_stmts.rst:615 msgid "A match success or failure (also termed a pattern success or failure)." msgstr "" "Una coincidencia exitosa o fallida (también llamada éxito o fracaso de un " "patrón)." -#: ../Doc/reference/compound_stmts.rst:618 +#: ../Doc/reference/compound_stmts.rst:617 msgid "" "Possible binding of matched values to a name. The prerequisites for this " "are further discussed below." @@ -758,34 +751,34 @@ msgstr "" "Una posible vinculación de los valores coincidentes con un nombre. Los " "requisitos previos para esto se discuten abajo." -#: ../Doc/reference/compound_stmts.rst:621 +#: ../Doc/reference/compound_stmts.rst:620 msgid "" "The ``match`` and ``case`` keywords are :ref:`soft keywords `." msgstr "" "Las palabras clave ``match`` y ``case`` son :ref:`palabras clave suaves " "`." -#: ../Doc/reference/compound_stmts.rst:625 -#: ../Doc/reference/compound_stmts.rst:1180 +#: ../Doc/reference/compound_stmts.rst:624 +#: ../Doc/reference/compound_stmts.rst:1179 msgid ":pep:`634` -- Structural Pattern Matching: Specification" msgstr ":pep:`634` -- Coincidencia de patrones estructurales: Especificación" -#: ../Doc/reference/compound_stmts.rst:626 -#: ../Doc/reference/compound_stmts.rst:1181 +#: ../Doc/reference/compound_stmts.rst:625 +#: ../Doc/reference/compound_stmts.rst:1180 msgid ":pep:`636` -- Structural Pattern Matching: Tutorial" msgstr ":pep:`636` -- Coincidencia de patrones estructurales: Tutorial" -#: ../Doc/reference/compound_stmts.rst:630 +#: ../Doc/reference/compound_stmts.rst:629 msgid "Overview" msgstr "Resumen" -#: ../Doc/reference/compound_stmts.rst:632 +#: ../Doc/reference/compound_stmts.rst:631 msgid "Here's an overview of the logical flow of a match statement:" msgstr "" "A continuación, un resumen del flujo lógico de una declaración de " "coincidencia:" -#: ../Doc/reference/compound_stmts.rst:635 +#: ../Doc/reference/compound_stmts.rst:634 msgid "" "The subject expression ``subject_expr`` is evaluated and a resulting subject " "value obtained. If the subject expression contains a comma, a tuple is " @@ -795,7 +788,7 @@ msgstr "" "resultante. Si la expresión contiene una coma, se construye una tupla " "utilizando :ref:`las reglas estándar `." -#: ../Doc/reference/compound_stmts.rst:639 +#: ../Doc/reference/compound_stmts.rst:638 msgid "" "Each pattern in a ``case_block`` is attempted to match with the subject " "value. The specific rules for success or failure are described below. The " @@ -813,7 +806,7 @@ msgstr "" "sobreviven al bloque ejecutado y se pueden usar después de la declaración de " "coincidencia**." -#: ../Doc/reference/compound_stmts.rst:648 +#: ../Doc/reference/compound_stmts.rst:647 msgid "" "During failed pattern matches, some subpatterns may succeed. Do not rely on " "bindings being made for a failed match. Conversely, do not rely on " @@ -829,7 +822,7 @@ msgstr "" "intencional para permitir que diferentes implementaciones añadan " "optimizaciones." -#: ../Doc/reference/compound_stmts.rst:655 +#: ../Doc/reference/compound_stmts.rst:654 msgid "" "If the pattern succeeds, the corresponding guard (if present) is evaluated. " "In this case all name bindings are guaranteed to have happened." @@ -838,7 +831,7 @@ msgstr "" "presente). En este caso se garantiza que todos los enlaces de nombres han " "ocurrido." -#: ../Doc/reference/compound_stmts.rst:658 +#: ../Doc/reference/compound_stmts.rst:657 msgid "" "If the guard evaluates as true or is missing, the ``block`` inside " "``case_block`` is executed." @@ -846,18 +839,18 @@ msgstr "" "Si la protección se evalúa como verdadera o no existe, se ejecuta el " "``block`` dentro de ``case_block``." -#: ../Doc/reference/compound_stmts.rst:661 +#: ../Doc/reference/compound_stmts.rst:660 msgid "Otherwise, the next ``case_block`` is attempted as described above." msgstr "" "En caso contrario, se intenta con el siguiente ``case_block`` como se ha " "descrito anteriormente." -#: ../Doc/reference/compound_stmts.rst:663 +#: ../Doc/reference/compound_stmts.rst:662 msgid "If there are no further case blocks, the match statement is completed." msgstr "" "Si no hay más bloques de casos, la declaración de coincidencia se completa." -#: ../Doc/reference/compound_stmts.rst:667 +#: ../Doc/reference/compound_stmts.rst:666 msgid "" "Users should generally never rely on a pattern being evaluated. Depending " "on implementation, the interpreter may cache values or use other " @@ -868,11 +861,11 @@ msgstr "" "valores o utilizar otras optimizaciones que omitan las evaluaciones " "repetidas." -#: ../Doc/reference/compound_stmts.rst:671 +#: ../Doc/reference/compound_stmts.rst:670 msgid "A sample match statement::" msgstr "Un ejemplo de declaración de coincidencia::" -#: ../Doc/reference/compound_stmts.rst:687 +#: ../Doc/reference/compound_stmts.rst:686 msgid "" "In this case, ``if flag`` is a guard. Read more about that in the next " "section." @@ -880,11 +873,11 @@ msgstr "" "En este caso, ``if flag`` es una protección. Lea más sobre eso en la " "siguiente sección." -#: ../Doc/reference/compound_stmts.rst:690 +#: ../Doc/reference/compound_stmts.rst:689 msgid "Guards" msgstr "Protecciones" -#: ../Doc/reference/compound_stmts.rst:697 +#: ../Doc/reference/compound_stmts.rst:696 msgid "" "A ``guard`` (which is part of the ``case``) must succeed for code inside the " "``case`` block to execute. It takes the form: :keyword:`if` followed by an " @@ -894,12 +887,12 @@ msgstr "" "código dentro de ``case`` sea ejecutado. Toma la forma: :keyword:`if` " "seguida de una expresión." -#: ../Doc/reference/compound_stmts.rst:702 +#: ../Doc/reference/compound_stmts.rst:701 msgid "The logical flow of a ``case`` block with a ``guard`` follows:" msgstr "" "El flujo lógico de un bloque ``case`` con una ``guard`` es el siguiente:" -#: ../Doc/reference/compound_stmts.rst:704 +#: ../Doc/reference/compound_stmts.rst:703 msgid "" "Check that the pattern in the ``case`` block succeeded. If the pattern " "failed, the ``guard`` is not evaluated and the next ``case`` block is " @@ -908,18 +901,18 @@ msgstr "" "Se comprueba que el patrón del bloque ``case`` fue exitoso. Si el patrón " "falló, el ``guard`` no se evalúa y se comprueba el siguiente bloque ``case``." -#: ../Doc/reference/compound_stmts.rst:708 +#: ../Doc/reference/compound_stmts.rst:707 msgid "If the pattern succeeded, evaluate the ``guard``." msgstr "Si el patrón tuvo éxito, se evalúa el ``guard``." -#: ../Doc/reference/compound_stmts.rst:710 +#: ../Doc/reference/compound_stmts.rst:709 msgid "" "If the ``guard`` condition evaluates as true, the case block is selected." msgstr "" "Si la condición del ``guard`` es verdadera, se selecciona el bloque de ese " "caso." -#: ../Doc/reference/compound_stmts.rst:713 +#: ../Doc/reference/compound_stmts.rst:712 msgid "" "If the ``guard`` condition evaluates as false, the case block is not " "selected." @@ -927,7 +920,7 @@ msgstr "" "Si la condición del ``guard`` es falsa, el bloque de ese caso no es " "seleccionado." -#: ../Doc/reference/compound_stmts.rst:716 +#: ../Doc/reference/compound_stmts.rst:715 msgid "" "If the ``guard`` raises an exception during evaluation, the exception " "bubbles up." @@ -935,7 +928,7 @@ msgstr "" "Si el ``guard`` lanza una excepción durante la evaluación, se levanta la " "excepción." -#: ../Doc/reference/compound_stmts.rst:719 +#: ../Doc/reference/compound_stmts.rst:718 msgid "" "Guards are allowed to have side effects as they are expressions. Guard " "evaluation must proceed from the first to the last case block, one at a " @@ -950,11 +943,11 @@ msgstr "" "debe realizarse en orden.) La evaluación de las protecciones debe detenerse " "una vez que se selecciona un bloque de casos." -#: ../Doc/reference/compound_stmts.rst:729 +#: ../Doc/reference/compound_stmts.rst:728 msgid "Irrefutable Case Blocks" msgstr "Bloques de Casos Irrefutables" -#: ../Doc/reference/compound_stmts.rst:733 +#: ../Doc/reference/compound_stmts.rst:732 msgid "" "An irrefutable case block is a match-all case block. A match statement may " "have at most one irrefutable case block, and it must be last." @@ -963,7 +956,7 @@ msgstr "" "Una declaración de coincidencia puede tener como máximo un bloque de casos " "irrefutable, y debe ser el último." -#: ../Doc/reference/compound_stmts.rst:736 +#: ../Doc/reference/compound_stmts.rst:735 msgid "" "A case block is considered irrefutable if it has no guard and its pattern is " "irrefutable. A pattern is considered irrefutable if we can prove from its " @@ -975,50 +968,50 @@ msgstr "" "demostrar, sólo por su sintaxis, que siempre tendrá éxito. Sólo los " "siguientes patrones son irrefutables:" -#: ../Doc/reference/compound_stmts.rst:741 +#: ../Doc/reference/compound_stmts.rst:740 msgid ":ref:`as-patterns` whose left-hand side is irrefutable" msgstr ":ref:`as-patterns` cuyo lado izquierdo es irrefutable" -#: ../Doc/reference/compound_stmts.rst:743 +#: ../Doc/reference/compound_stmts.rst:742 msgid ":ref:`or-patterns` containing at least one irrefutable pattern" msgstr ":ref:`or-patterns` que contienen al menos un patrón irrefutable" -#: ../Doc/reference/compound_stmts.rst:745 +#: ../Doc/reference/compound_stmts.rst:744 msgid ":ref:`capture-patterns`" msgstr ":ref:`capture-patterns`" -#: ../Doc/reference/compound_stmts.rst:747 +#: ../Doc/reference/compound_stmts.rst:746 msgid ":ref:`wildcard-patterns`" msgstr ":ref:`wildcard-patterns`" -#: ../Doc/reference/compound_stmts.rst:749 +#: ../Doc/reference/compound_stmts.rst:748 msgid "parenthesized irrefutable patterns" msgstr "patrones irrefutables entre paréntesis" -#: ../Doc/reference/compound_stmts.rst:753 +#: ../Doc/reference/compound_stmts.rst:752 msgid "Patterns" msgstr "Patrones" -#: ../Doc/reference/compound_stmts.rst:760 +#: ../Doc/reference/compound_stmts.rst:759 msgid "This section uses grammar notations beyond standard EBNF:" msgstr "" "Esta sección utiliza notaciones gramaticales más allá del estándar EBNF:" -#: ../Doc/reference/compound_stmts.rst:762 +#: ../Doc/reference/compound_stmts.rst:761 msgid "the notation ``SEP.RULE+`` is shorthand for ``RULE (SEP RULE)*``" msgstr "la notación ``SEP.RULE+`` es la abreviación de ``RULE (SEP RULE)*``" -#: ../Doc/reference/compound_stmts.rst:764 +#: ../Doc/reference/compound_stmts.rst:763 msgid "the notation ``!RULE`` is shorthand for a negative lookahead assertion" msgstr "" "la notación ``!RULE`` es la abreviación de una aserción de anticipación " "negativa" -#: ../Doc/reference/compound_stmts.rst:767 +#: ../Doc/reference/compound_stmts.rst:766 msgid "The top-level syntax for ``patterns`` is:" msgstr "La sintaxis de nivel superior para ``patrones`` es:" -#: ../Doc/reference/compound_stmts.rst:781 +#: ../Doc/reference/compound_stmts.rst:780 msgid "" "The descriptions below will include a description \"in simple terms\" of " "what a pattern does for illustration purposes (credits to Raymond Hettinger " @@ -1034,11 +1027,11 @@ msgstr "" "fines ilustrativos y que **may not** refleja la implementación subyacente. " "Además, no cubren todos los formularios válidos." -#: ../Doc/reference/compound_stmts.rst:791 +#: ../Doc/reference/compound_stmts.rst:790 msgid "OR Patterns" msgstr "Patrones OR" -#: ../Doc/reference/compound_stmts.rst:793 +#: ../Doc/reference/compound_stmts.rst:792 msgid "" "An OR pattern is two or more patterns separated by vertical bars ``|``. " "Syntax:" @@ -1046,7 +1039,7 @@ msgstr "" "Un patrón OR son dos o más patrones separados por barras verticales ``|``. " "Sintaxis:" -#: ../Doc/reference/compound_stmts.rst:799 +#: ../Doc/reference/compound_stmts.rst:798 msgid "" "Only the final subpattern may be :ref:`irrefutable `, and " "each subpattern must bind the same set of names to avoid ambiguity." @@ -1055,7 +1048,7 @@ msgstr "" "cada subpatrón debe vincular el mismo conjunto de nombres para evitar " "ambigüedades." -#: ../Doc/reference/compound_stmts.rst:802 +#: ../Doc/reference/compound_stmts.rst:801 msgid "" "An OR pattern matches each of its subpatterns in turn to the subject value, " "until one succeeds. The OR pattern is then considered successful. " @@ -1066,7 +1059,7 @@ msgstr "" "considera exitoso. De lo contrario, si ninguno de los subpatrones tiene " "éxito, el patrón OR falla." -#: ../Doc/reference/compound_stmts.rst:806 +#: ../Doc/reference/compound_stmts.rst:805 msgid "" "In simple terms, ``P1 | P2 | ...`` will try to match ``P1``, if it fails it " "will try to match ``P2``, succeeding immediately if any succeeds, failing " @@ -1076,11 +1069,11 @@ msgstr "" "intentará igualar ``P2``, teniendo éxito inmediatamente si alguno tiene " "éxito, fallando en caso contrario." -#: ../Doc/reference/compound_stmts.rst:812 +#: ../Doc/reference/compound_stmts.rst:811 msgid "AS Patterns" msgstr "patrones AS" -#: ../Doc/reference/compound_stmts.rst:814 +#: ../Doc/reference/compound_stmts.rst:813 msgid "" "An AS pattern matches an OR pattern on the left of the :keyword:`as` keyword " "against a subject. Syntax:" @@ -1088,17 +1081,18 @@ msgstr "" "Un patrón AS coincide con un patrón OR a la izquierda de la palabra clave :" "keyword:`as` con un sujeto. Sintaxis:" -#: ../Doc/reference/compound_stmts.rst:820 +#: ../Doc/reference/compound_stmts.rst:819 +#, fuzzy msgid "" "If the OR pattern fails, the AS pattern fails. Otherwise, the AS pattern " "binds the subject to the name on the right of the as keyword and succeeds. " -"``capture_pattern`` cannot be a a ``_``." +"``capture_pattern`` cannot be a ``_``." msgstr "" "Si el patrón OR falla, el patrón AS falla. De lo contrario, el patrón AS " "vincula al sujeto con el nombre a la derecha de la palabra clave as y tiene " "éxito. ``capture_pattern`` no puede ser un ``_``." -#: ../Doc/reference/compound_stmts.rst:824 +#: ../Doc/reference/compound_stmts.rst:823 msgid "" "In simple terms ``P as NAME`` will match with ``P``, and on success it will " "set ``NAME = ``." @@ -1106,11 +1100,11 @@ msgstr "" "En términos simples, ``P as NAME`` coincidirá con ``P`` y, en caso de éxito, " "establecerá ``NAME = ``." -#: ../Doc/reference/compound_stmts.rst:831 +#: ../Doc/reference/compound_stmts.rst:830 msgid "Literal Patterns" msgstr "Patrones literales" -#: ../Doc/reference/compound_stmts.rst:833 +#: ../Doc/reference/compound_stmts.rst:832 msgid "" "A literal pattern corresponds to most :ref:`literals ` in Python. " "Syntax:" @@ -1118,7 +1112,7 @@ msgstr "" "Un patrón literal corresponde a la mayoría de :ref:`literals ` en " "Python. Sintaxis:" -#: ../Doc/reference/compound_stmts.rst:846 +#: ../Doc/reference/compound_stmts.rst:845 msgid "" "The rule ``strings`` and the token ``NUMBER`` are defined in the :doc:" "`standard Python grammar <./grammar>`. Triple-quoted strings are " @@ -1130,7 +1124,7 @@ msgstr "" "admiten cadenas sin formato y cadenas de bytes. :ref:`f-strings` no es " "compatible." -#: ../Doc/reference/compound_stmts.rst:851 +#: ../Doc/reference/compound_stmts.rst:850 msgid "" "The forms ``signed_number '+' NUMBER`` and ``signed_number '-' NUMBER`` are " "for expressing :ref:`complex numbers `; they require a real " @@ -1140,7 +1134,7 @@ msgstr "" "son para expresar :ref:`complex numbers `; requieren un número " "real a la izquierda y un número imaginario a la derecha. P.ej. ``3 + 4j``." -#: ../Doc/reference/compound_stmts.rst:855 +#: ../Doc/reference/compound_stmts.rst:854 msgid "" "In simple terms, ``LITERAL`` will succeed only if `` == LITERAL``. " "For the singletons ``None``, ``True`` and ``False``, the :keyword:`is` " @@ -1150,16 +1144,16 @@ msgstr "" "LITERAL``. Para los singleton ``None``, ``True`` y ``False``, se utiliza el " "operador :keyword:`is`." -#: ../Doc/reference/compound_stmts.rst:861 +#: ../Doc/reference/compound_stmts.rst:860 msgid "Capture Patterns" msgstr "Patrones de captura" -#: ../Doc/reference/compound_stmts.rst:863 +#: ../Doc/reference/compound_stmts.rst:862 msgid "A capture pattern binds the subject value to a name. Syntax:" msgstr "" "Un patrón de captura vincula el valor del sujeto a un nombre. Sintaxis:" -#: ../Doc/reference/compound_stmts.rst:869 +#: ../Doc/reference/compound_stmts.rst:868 msgid "" "A single underscore ``_`` is not a capture pattern (this is what ``!'_'`` " "expresses). It is instead treated as a :token:`~python-grammar:" @@ -1169,7 +1163,7 @@ msgstr "" "``!'_'``). En su lugar, se trata como un :token:`~python-grammar:" "wildcard_pattern`." -#: ../Doc/reference/compound_stmts.rst:873 +#: ../Doc/reference/compound_stmts.rst:872 msgid "" "In a given pattern, a given name can only be bound once. E.g. ``case x, " "x: ...`` is invalid while ``case [x] | x: ...`` is allowed." @@ -1178,7 +1172,7 @@ msgstr "" "``case x, x: ...`` no es válido mientras ``case [x] | x: ...`` está " "permitido." -#: ../Doc/reference/compound_stmts.rst:876 +#: ../Doc/reference/compound_stmts.rst:875 msgid "" "Capture patterns always succeed. The binding follows scoping rules " "established by the assignment expression operator in :pep:`572`; the name " @@ -1191,7 +1185,7 @@ msgstr "" "función contenedora más cercana, a menos que haya una declaración :keyword:" "`global` o :keyword:`nonlocal` aplicable." -#: ../Doc/reference/compound_stmts.rst:881 +#: ../Doc/reference/compound_stmts.rst:880 msgid "" "In simple terms ``NAME`` will always succeed and it will set ``NAME = " "``." @@ -1199,11 +1193,11 @@ msgstr "" "En términos simples, ``NAME`` siempre tendrá éxito y establecerá ``NAME = " "``." -#: ../Doc/reference/compound_stmts.rst:886 +#: ../Doc/reference/compound_stmts.rst:885 msgid "Wildcard Patterns" msgstr "Patrones comodín" -#: ../Doc/reference/compound_stmts.rst:888 +#: ../Doc/reference/compound_stmts.rst:887 msgid "" "A wildcard pattern always succeeds (matches anything) and binds no name. " "Syntax:" @@ -1211,7 +1205,7 @@ msgstr "" "Un patrón comodín siempre tiene éxito (coincide con cualquier cosa) y no " "vincula ningún nombre. Sintaxis:" -#: ../Doc/reference/compound_stmts.rst:894 +#: ../Doc/reference/compound_stmts.rst:893 msgid "" "``_`` is a :ref:`soft keyword ` within any pattern, but only " "within patterns. It is an identifier, as usual, even within ``match`` " @@ -1222,19 +1216,19 @@ msgstr "" "incluso dentro de las expresiones de sujeto ``match``, ``guard`` \\ sy " "bloques ``case``." -#: ../Doc/reference/compound_stmts.rst:898 +#: ../Doc/reference/compound_stmts.rst:897 msgid "In simple terms, ``_`` will always succeed." msgstr "En términos simples, ``_`` siempre tendrá éxito." -#: ../Doc/reference/compound_stmts.rst:903 +#: ../Doc/reference/compound_stmts.rst:902 msgid "Value Patterns" msgstr "Patrones de valor" -#: ../Doc/reference/compound_stmts.rst:905 +#: ../Doc/reference/compound_stmts.rst:904 msgid "A value pattern represents a named value in Python. Syntax:" msgstr "Un patrón de valor representa un valor con nombre en Python. Sintaxis:" -#: ../Doc/reference/compound_stmts.rst:913 +#: ../Doc/reference/compound_stmts.rst:912 msgid "" "The dotted name in the pattern is looked up using standard Python :ref:`name " "resolution rules `. The pattern succeeds if the value found " @@ -1245,7 +1239,7 @@ msgstr "" "encontrado se compara con el valor del sujeto (usando el operador de " "igualdad ``==``)." -#: ../Doc/reference/compound_stmts.rst:918 +#: ../Doc/reference/compound_stmts.rst:917 msgid "" "In simple terms ``NAME1.NAME2`` will succeed only if `` == NAME1." "NAME2``" @@ -1253,7 +1247,7 @@ msgstr "" "En términos simples, ``NAME1.NAME2`` solo tendrá éxito si `` == " "NAME1.NAME2``" -#: ../Doc/reference/compound_stmts.rst:922 +#: ../Doc/reference/compound_stmts.rst:921 msgid "" "If the same value occurs multiple times in the same match statement, the " "interpreter may cache the first value found and reuse it rather than repeat " @@ -1266,11 +1260,11 @@ msgstr "" "está estrictamente vinculado a una ejecución determinada de una declaración " "de coincidencia determinada." -#: ../Doc/reference/compound_stmts.rst:930 +#: ../Doc/reference/compound_stmts.rst:929 msgid "Group Patterns" msgstr "Patrones de grupo" -#: ../Doc/reference/compound_stmts.rst:932 +#: ../Doc/reference/compound_stmts.rst:931 msgid "" "A group pattern allows users to add parentheses around patterns to emphasize " "the intended grouping. Otherwise, it has no additional syntax. Syntax:" @@ -1279,15 +1273,15 @@ msgstr "" "los patrones para enfatizar la agrupación deseada. De lo contrario, no tiene " "sintaxis adicional. Sintaxis:" -#: ../Doc/reference/compound_stmts.rst:939 +#: ../Doc/reference/compound_stmts.rst:938 msgid "In simple terms ``(P)`` has the same effect as ``P``." msgstr "En términos simples, ``(P)`` tiene el mismo efecto que ``P``." -#: ../Doc/reference/compound_stmts.rst:944 +#: ../Doc/reference/compound_stmts.rst:943 msgid "Sequence Patterns" msgstr "Patrones de secuencia" -#: ../Doc/reference/compound_stmts.rst:946 +#: ../Doc/reference/compound_stmts.rst:945 msgid "" "A sequence pattern contains several subpatterns to be matched against " "sequence elements. The syntax is similar to the unpacking of a list or tuple." @@ -1296,7 +1290,7 @@ msgstr "" "elementos de secuencia. La sintaxis es similar al desempaquetado de una " "lista o tupla." -#: ../Doc/reference/compound_stmts.rst:957 +#: ../Doc/reference/compound_stmts.rst:956 msgid "" "There is no difference if parentheses or square brackets are used for " "sequence patterns (i.e. ``(...)`` vs ``[...]`` )." @@ -1304,7 +1298,7 @@ msgstr "" "No hay diferencia si se utilizan paréntesis o corchetes para los patrones de " "secuencia (es decir, ``(...)`` vs ``[...]``)." -#: ../Doc/reference/compound_stmts.rst:961 +#: ../Doc/reference/compound_stmts.rst:960 msgid "" "A single pattern enclosed in parentheses without a trailing comma (e.g. ``(3 " "| 4)``) is a :ref:`group pattern `. While a single pattern " @@ -1315,7 +1309,7 @@ msgstr "" "solo patrón encerrado entre corchetes (por ejemplo, ``[3 | 4]``) sigue " "siendo un patrón de secuencia." -#: ../Doc/reference/compound_stmts.rst:966 +#: ../Doc/reference/compound_stmts.rst:965 msgid "" "At most one star subpattern may be in a sequence pattern. The star " "subpattern may occur in any position. If no star subpattern is present, the " @@ -1328,7 +1322,7 @@ msgstr "" "secuencia de longitud fija; de lo contrario, es un patrón de secuencia de " "longitud variable." -#: ../Doc/reference/compound_stmts.rst:971 +#: ../Doc/reference/compound_stmts.rst:970 msgid "" "The following is the logical flow for matching a sequence pattern against a " "subject value:" @@ -1336,14 +1330,14 @@ msgstr "" "El siguiente es el flujo lógico para hacer coincidir un patrón de secuencia " "con un valor de sujeto:" -#: ../Doc/reference/compound_stmts.rst:974 +#: ../Doc/reference/compound_stmts.rst:973 msgid "" "If the subject value is not a sequence [#]_, the sequence pattern fails." msgstr "" "Si el valor del sujeto no es una secuencia [#]_, el patrón de secuencia " "falla." -#: ../Doc/reference/compound_stmts.rst:977 +#: ../Doc/reference/compound_stmts.rst:976 msgid "" "If the subject value is an instance of ``str``, ``bytes`` or ``bytearray`` " "the sequence pattern fails." @@ -1351,7 +1345,7 @@ msgstr "" "Si el valor del sujeto es una instancia de ``str``, ``bytes`` o " "``bytearray``, el patrón de secuencia falla." -#: ../Doc/reference/compound_stmts.rst:980 +#: ../Doc/reference/compound_stmts.rst:979 msgid "" "The subsequent steps depend on whether the sequence pattern is fixed or " "variable-length." @@ -1359,11 +1353,11 @@ msgstr "" "Los pasos subsiguientes dependen de si el patrón de secuencia es de longitud " "fija o variable." -#: ../Doc/reference/compound_stmts.rst:983 +#: ../Doc/reference/compound_stmts.rst:982 msgid "If the sequence pattern is fixed-length:" msgstr "Si el patrón de secuencia es de longitud fija:" -#: ../Doc/reference/compound_stmts.rst:985 +#: ../Doc/reference/compound_stmts.rst:984 msgid "" "If the length of the subject sequence is not equal to the number of " "subpatterns, the sequence pattern fails" @@ -1371,7 +1365,7 @@ msgstr "" "Si la longitud de la secuencia del sujeto no es igual al número de " "subpatrones, el patrón de secuencia falla" -#: ../Doc/reference/compound_stmts.rst:988 +#: ../Doc/reference/compound_stmts.rst:987 msgid "" "Subpatterns in the sequence pattern are matched to their corresponding items " "in the subject sequence from left to right. Matching stops as soon as a " @@ -1384,11 +1378,11 @@ msgstr "" "subpatrones tienen éxito en hacer coincidir su elemento correspondiente, el " "patrón de secuencia tiene éxito." -#: ../Doc/reference/compound_stmts.rst:993 +#: ../Doc/reference/compound_stmts.rst:992 msgid "Otherwise, if the sequence pattern is variable-length:" msgstr "De lo contrario, si el patrón de secuencia es de longitud variable:" -#: ../Doc/reference/compound_stmts.rst:995 +#: ../Doc/reference/compound_stmts.rst:994 msgid "" "If the length of the subject sequence is less than the number of non-star " "subpatterns, the sequence pattern fails." @@ -1396,7 +1390,7 @@ msgstr "" "Si la longitud de la secuencia del sujeto es menor que el número de " "subpatrones sin estrella, el patrón de secuencia falla." -#: ../Doc/reference/compound_stmts.rst:998 +#: ../Doc/reference/compound_stmts.rst:997 msgid "" "The leading non-star subpatterns are matched to their corresponding items as " "for fixed-length sequences." @@ -1404,7 +1398,7 @@ msgstr "" "Los subpatrones principales no en estrella se emparejan con sus elementos " "correspondientes como para las secuencias de longitud fija." -#: ../Doc/reference/compound_stmts.rst:1001 +#: ../Doc/reference/compound_stmts.rst:1000 msgid "" "If the previous step succeeds, the star subpattern matches a list formed of " "the remaining subject items, excluding the remaining items corresponding to " @@ -1415,7 +1409,7 @@ msgstr "" "elementos restantes correspondientes a los subpatrones que no son en " "estrella que siguen el subpatrón en estrella." -#: ../Doc/reference/compound_stmts.rst:1005 +#: ../Doc/reference/compound_stmts.rst:1004 msgid "" "Remaining non-star subpatterns are matched to their corresponding subject " "items, as for a fixed-length sequence." @@ -1424,7 +1418,7 @@ msgstr "" "elementos temáticos correspondientes, como para una secuencia de longitud " "fija." -#: ../Doc/reference/compound_stmts.rst:1008 +#: ../Doc/reference/compound_stmts.rst:1007 msgid "" "The length of the subject sequence is obtained via :func:`len` (i.e. via " "the :meth:`__len__` protocol). This length may be cached by the interpreter " @@ -1435,7 +1429,7 @@ msgstr "" "almacenar en caché esta longitud de manera similar a :ref:`value patterns " "`." -#: ../Doc/reference/compound_stmts.rst:1014 +#: ../Doc/reference/compound_stmts.rst:1013 msgid "" "In simple terms ``[P1, P2, P3,`` ... ``, P]`` matches only if all the " "following happens:" @@ -1443,37 +1437,37 @@ msgstr "" "En términos simples, ``[P1, P2, P3,`` ... ``, P]`` solo coincide si " "ocurre todo lo siguiente:" -#: ../Doc/reference/compound_stmts.rst:1017 +#: ../Doc/reference/compound_stmts.rst:1016 msgid "check ```` is a sequence" msgstr "comprobar que ```` es una secuencia" -#: ../Doc/reference/compound_stmts.rst:1018 +#: ../Doc/reference/compound_stmts.rst:1017 msgid "``len(subject) == ``" msgstr "``len(subject) == ``" -#: ../Doc/reference/compound_stmts.rst:1019 +#: ../Doc/reference/compound_stmts.rst:1018 msgid "" "``P1`` matches ``[0]`` (note that this match can also bind names)" msgstr "" "``P1`` coincide con ``[0]`` (tenga en cuenta que esta coincidencia " "también puede vincular nombres)" -#: ../Doc/reference/compound_stmts.rst:1020 +#: ../Doc/reference/compound_stmts.rst:1019 msgid "" "``P2`` matches ``[1]`` (note that this match can also bind names)" msgstr "" "``P2`` coincide con ``[1]`` (tenga en cuenta que esta coincidencia " "también puede vincular nombres)" -#: ../Doc/reference/compound_stmts.rst:1021 +#: ../Doc/reference/compound_stmts.rst:1020 msgid "... and so on for the corresponding pattern/element." msgstr "... y así sucesivamente para el patrón/elemento correspondiente." -#: ../Doc/reference/compound_stmts.rst:1026 +#: ../Doc/reference/compound_stmts.rst:1025 msgid "Mapping Patterns" msgstr "Patrones de mapeo" -#: ../Doc/reference/compound_stmts.rst:1028 +#: ../Doc/reference/compound_stmts.rst:1027 msgid "" "A mapping pattern contains one or more key-value patterns. The syntax is " "similar to the construction of a dictionary. Syntax:" @@ -1481,7 +1475,7 @@ msgstr "" "Un patrón de asignación contiene uno o más patrones clave-valor. La sintaxis " "es similar a la construcción de un diccionario. Sintaxis:" -#: ../Doc/reference/compound_stmts.rst:1039 +#: ../Doc/reference/compound_stmts.rst:1038 msgid "" "At most one double star pattern may be in a mapping pattern. The double " "star pattern must be the last subpattern in the mapping pattern." @@ -1489,7 +1483,7 @@ msgstr "" "Como máximo, un patrón de estrella doble puede estar en un patrón de mapeo. " "El patrón de estrella doble debe ser el último subpatrón del patrón de mapeo." -#: ../Doc/reference/compound_stmts.rst:1042 +#: ../Doc/reference/compound_stmts.rst:1041 msgid "" "Duplicate keys in mapping patterns are disallowed. Duplicate literal keys " "will raise a :exc:`SyntaxError`. Two keys that otherwise have the same value " @@ -1499,7 +1493,7 @@ msgstr "" "duplicadas lanzarán un :exc:`SyntaxError`. Dos claves que de otro modo " "tendrían el mismo valor lanzarán un :exc:`ValueError` en tiempo de ejecución." -#: ../Doc/reference/compound_stmts.rst:1046 +#: ../Doc/reference/compound_stmts.rst:1045 msgid "" "The following is the logical flow for matching a mapping pattern against a " "subject value:" @@ -1507,13 +1501,13 @@ msgstr "" "El siguiente es el flujo lógico para hacer coincidir un patrón de mapeo con " "un valor de sujeto:" -#: ../Doc/reference/compound_stmts.rst:1049 +#: ../Doc/reference/compound_stmts.rst:1048 msgid "If the subject value is not a mapping [#]_,the mapping pattern fails." msgstr "" "Si el valor del sujeto no es una asignación [#]_, el patrón de asignación " "falla." -#: ../Doc/reference/compound_stmts.rst:1051 +#: ../Doc/reference/compound_stmts.rst:1050 msgid "" "If every key given in the mapping pattern is present in the subject mapping, " "and the pattern for each key matches the corresponding item of the subject " @@ -1523,7 +1517,7 @@ msgstr "" "sujeto, y el patrón para cada clave coincide con el elemento correspondiente " "del mapeo del sujeto, el patrón de mapeo tiene éxito." -#: ../Doc/reference/compound_stmts.rst:1055 +#: ../Doc/reference/compound_stmts.rst:1054 msgid "" "If duplicate keys are detected in the mapping pattern, the pattern is " "considered invalid. A :exc:`SyntaxError` is raised for duplicate literal " @@ -1533,7 +1527,7 @@ msgstr "" "considera inválido. Se lanza un :exc:`SyntaxError` para valores literales " "duplicados; o un :exc:`ValueError` para claves con nombre del mismo valor." -#: ../Doc/reference/compound_stmts.rst:1059 +#: ../Doc/reference/compound_stmts.rst:1058 msgid "" "Key-value pairs are matched using the two-argument form of the mapping " "subject's ``get()`` method. Matched key-value pairs must already be present " @@ -1545,7 +1539,7 @@ msgstr "" "coincidentes ya deben estar presentes en la asignación y no deben crearse " "sobre la marcha a través de :meth:`__missing__` o :meth:`__getitem__`." -#: ../Doc/reference/compound_stmts.rst:1064 +#: ../Doc/reference/compound_stmts.rst:1063 msgid "" "In simple terms ``{KEY1: P1, KEY2: P2, ... }`` matches only if all the " "following happens:" @@ -1553,27 +1547,27 @@ msgstr "" "En términos simples, ``{KEY1: P1, KEY2: P2, ... }`` solo coincide si ocurre " "todo lo siguiente:" -#: ../Doc/reference/compound_stmts.rst:1067 +#: ../Doc/reference/compound_stmts.rst:1066 msgid "check ```` is a mapping" msgstr "comprobar ```` es un mapeo" -#: ../Doc/reference/compound_stmts.rst:1068 +#: ../Doc/reference/compound_stmts.rst:1067 msgid "``KEY1 in ``" msgstr "``KEY1 in ``" -#: ../Doc/reference/compound_stmts.rst:1069 +#: ../Doc/reference/compound_stmts.rst:1068 msgid "``P1`` matches ``[KEY1]``" msgstr "``P1`` coincide con ``[KEY1]``" -#: ../Doc/reference/compound_stmts.rst:1070 +#: ../Doc/reference/compound_stmts.rst:1069 msgid "... and so on for the corresponding KEY/pattern pair." msgstr "... y así sucesivamente para el par correspondiente de KEY / patrón." -#: ../Doc/reference/compound_stmts.rst:1076 +#: ../Doc/reference/compound_stmts.rst:1075 msgid "Class Patterns" msgstr "Patrones de clase" -#: ../Doc/reference/compound_stmts.rst:1078 +#: ../Doc/reference/compound_stmts.rst:1077 msgid "" "A class pattern represents a class and its positional and keyword arguments " "(if any). Syntax:" @@ -1581,11 +1575,11 @@ msgstr "" "Un patrón de clase representa una clase y sus argumentos posicionales y de " "palabras clave (si los hay). Sintaxis:" -#: ../Doc/reference/compound_stmts.rst:1089 +#: ../Doc/reference/compound_stmts.rst:1088 msgid "The same keyword should not be repeated in class patterns." msgstr "La misma palabra clave no debe repetirse en los patrones de clase." -#: ../Doc/reference/compound_stmts.rst:1091 +#: ../Doc/reference/compound_stmts.rst:1090 msgid "" "The following is the logical flow for matching a class pattern against a " "subject value:" @@ -1593,7 +1587,7 @@ msgstr "" "El siguiente es el flujo lógico para hacer coincidir un patrón de clase con " "un valor de materia:" -#: ../Doc/reference/compound_stmts.rst:1094 +#: ../Doc/reference/compound_stmts.rst:1093 msgid "" "If ``name_or_attr`` is not an instance of the builtin :class:`type` , raise :" "exc:`TypeError`." @@ -1601,7 +1595,7 @@ msgstr "" "Si ``name_or_attr`` no es una instancia del :class:`type` incorporado, " "genere :exc:`TypeError`." -#: ../Doc/reference/compound_stmts.rst:1097 +#: ../Doc/reference/compound_stmts.rst:1096 msgid "" "If the subject value is not an instance of ``name_or_attr`` (tested via :" "func:`isinstance`), the class pattern fails." @@ -1609,7 +1603,7 @@ msgstr "" "Si el valor del sujeto no es una instancia de ``name_or_attr`` (probado a " "través de :func:`isinstance`), el patrón de clase falla." -#: ../Doc/reference/compound_stmts.rst:1100 +#: ../Doc/reference/compound_stmts.rst:1099 msgid "" "If no pattern arguments are present, the pattern succeeds. Otherwise, the " "subsequent steps depend on whether keyword or positional argument patterns " @@ -1619,7 +1613,7 @@ msgstr "" "pasos siguientes dependen de si están presentes patrones de argumentos de " "posición o de palabras clave." -#: ../Doc/reference/compound_stmts.rst:1104 +#: ../Doc/reference/compound_stmts.rst:1103 msgid "" "For a number of built-in types (specified below), a single positional " "subpattern is accepted which will match the entire subject; for these types " @@ -1630,7 +1624,7 @@ msgstr "" "tipos, los patrones de palabras clave también funcionan como para otros " "tipos." -#: ../Doc/reference/compound_stmts.rst:1108 +#: ../Doc/reference/compound_stmts.rst:1107 msgid "" "If only keyword patterns are present, they are processed as follows, one by " "one:" @@ -1638,11 +1632,11 @@ msgstr "" "Si solo hay patrones de palabras clave, se procesan de la siguiente manera, " "uno por uno:" -#: ../Doc/reference/compound_stmts.rst:1111 +#: ../Doc/reference/compound_stmts.rst:1110 msgid "I. The keyword is looked up as an attribute on the subject." msgstr "I. La palabra clave se busca como un atributo del tema." -#: ../Doc/reference/compound_stmts.rst:1113 +#: ../Doc/reference/compound_stmts.rst:1112 msgid "" "If this raises an exception other than :exc:`AttributeError`, the exception " "bubbles up." @@ -1650,11 +1644,11 @@ msgstr "" "Si esto lanza una excepción distinta de :exc:`AttributeError`, la excepción " "aparece." -#: ../Doc/reference/compound_stmts.rst:1116 +#: ../Doc/reference/compound_stmts.rst:1115 msgid "If this raises :exc:`AttributeError`, the class pattern has failed." msgstr "Si esto lanza :exc:`AttributeError`, el patrón de clase ha fallado." -#: ../Doc/reference/compound_stmts.rst:1118 +#: ../Doc/reference/compound_stmts.rst:1117 msgid "" "Else, the subpattern associated with the keyword pattern is matched against " "the subject's attribute value. If this fails, the class pattern fails; if " @@ -1665,13 +1659,13 @@ msgstr "" "clase falla; si esto tiene éxito, la coincidencia continúa con la siguiente " "palabra clave." -#: ../Doc/reference/compound_stmts.rst:1123 +#: ../Doc/reference/compound_stmts.rst:1122 msgid "II. If all keyword patterns succeed, the class pattern succeeds." msgstr "" "II. Si todos los patrones de palabras clave tienen éxito, el patrón de clase " "tiene éxito." -#: ../Doc/reference/compound_stmts.rst:1125 +#: ../Doc/reference/compound_stmts.rst:1124 msgid "" "If any positional patterns are present, they are converted to keyword " "patterns using the :data:`~object.__match_args__` attribute on the class " @@ -1681,17 +1675,17 @@ msgstr "" "palabras clave utilizando el atributo :data:`~object.__match_args__` en la " "clase ``name_or_attr`` antes de hacer coincidir:" -#: ../Doc/reference/compound_stmts.rst:1129 +#: ../Doc/reference/compound_stmts.rst:1128 msgid "" "I. The equivalent of ``getattr(cls, \"__match_args__\", ())`` is called." msgstr "" "I. Se llama el equivalente de ``getattr(cls, \"__match_args__\", ())``." -#: ../Doc/reference/compound_stmts.rst:1131 +#: ../Doc/reference/compound_stmts.rst:1130 msgid "If this raises an exception, the exception bubbles up." msgstr "Si esto lanza una excepción, la excepción surge." -#: ../Doc/reference/compound_stmts.rst:1133 +#: ../Doc/reference/compound_stmts.rst:1132 msgid "" "If the returned value is not a tuple, the conversion fails and :exc:" "`TypeError` is raised." @@ -1699,7 +1693,7 @@ msgstr "" "Si el valor retornado no es una tupla, la conversión falla y se lanza :exc:" "`TypeError`." -#: ../Doc/reference/compound_stmts.rst:1136 +#: ../Doc/reference/compound_stmts.rst:1135 msgid "" "If there are more positional patterns than ``len(cls.__match_args__)``, :exc:" "`TypeError` is raised." @@ -1707,7 +1701,7 @@ msgstr "" "Si hay más patrones posicionales que ``len(cls.__match_args__)``, se lanza :" "exc:`TypeError`." -#: ../Doc/reference/compound_stmts.rst:1139 +#: ../Doc/reference/compound_stmts.rst:1138 msgid "" "Otherwise, positional pattern ``i`` is converted to a keyword pattern using " "``__match_args__[i]`` as the keyword. ``__match_args__[i]`` must be a " @@ -1717,27 +1711,27 @@ msgstr "" "palabra clave utilizando ``__match_args__[i]`` como palabra clave. " "``__match_args__[i]`` debe ser una cadena; si no, se lanza :exc:`TypeError`." -#: ../Doc/reference/compound_stmts.rst:1143 +#: ../Doc/reference/compound_stmts.rst:1142 msgid "If there are duplicate keywords, :exc:`TypeError` is raised." msgstr "Si hay palabras clave duplicadas, se lanza :exc:`TypeError`." -#: ../Doc/reference/compound_stmts.rst:1145 +#: ../Doc/reference/compound_stmts.rst:1144 msgid ":ref:`class-pattern-matching`" msgstr ":ref:`class-pattern-matching`" -#: ../Doc/reference/compound_stmts.rst:1148 +#: ../Doc/reference/compound_stmts.rst:1147 msgid "" "II. Once all positional patterns have been converted to keyword patterns," msgstr "" "II. Una vez que todos los patrones posicionales se hayan convertido en " "patrones de palabras clave," -#: ../Doc/reference/compound_stmts.rst:1148 +#: ../Doc/reference/compound_stmts.rst:1147 msgid "the match proceeds as if there were only keyword patterns." msgstr "" "la coincidencia procede como si solo hubiera patrones de palabras clave." -#: ../Doc/reference/compound_stmts.rst:1150 +#: ../Doc/reference/compound_stmts.rst:1149 msgid "" "For the following built-in types the handling of positional subpatterns is " "different:" @@ -1745,53 +1739,53 @@ msgstr "" "Para los siguientes tipos integrados, el manejo de subpatrones posicionales " "es diferente:" -#: ../Doc/reference/compound_stmts.rst:1153 +#: ../Doc/reference/compound_stmts.rst:1152 msgid ":class:`bool`" msgstr ":class:`bool`" -#: ../Doc/reference/compound_stmts.rst:1154 +#: ../Doc/reference/compound_stmts.rst:1153 msgid ":class:`bytearray`" msgstr ":class:`bytearray`" -#: ../Doc/reference/compound_stmts.rst:1155 +#: ../Doc/reference/compound_stmts.rst:1154 msgid ":class:`bytes`" msgstr ":class:`bytes`" -#: ../Doc/reference/compound_stmts.rst:1156 +#: ../Doc/reference/compound_stmts.rst:1155 msgid ":class:`dict`" msgstr ":class:`dict`" -#: ../Doc/reference/compound_stmts.rst:1157 +#: ../Doc/reference/compound_stmts.rst:1156 msgid ":class:`float`" msgstr ":class:`float`" -#: ../Doc/reference/compound_stmts.rst:1158 +#: ../Doc/reference/compound_stmts.rst:1157 msgid ":class:`frozenset`" msgstr ":class:`frozenset`" -#: ../Doc/reference/compound_stmts.rst:1159 +#: ../Doc/reference/compound_stmts.rst:1158 msgid ":class:`int`" msgstr ":class:`int`" -#: ../Doc/reference/compound_stmts.rst:1160 -#: ../Doc/reference/compound_stmts.rst:1611 +#: ../Doc/reference/compound_stmts.rst:1159 +#: ../Doc/reference/compound_stmts.rst:1850 msgid ":class:`list`" msgstr ":class:`list`" -#: ../Doc/reference/compound_stmts.rst:1161 +#: ../Doc/reference/compound_stmts.rst:1160 msgid ":class:`set`" msgstr ":class:`set`" -#: ../Doc/reference/compound_stmts.rst:1162 +#: ../Doc/reference/compound_stmts.rst:1161 msgid ":class:`str`" msgstr ":class:`str`" -#: ../Doc/reference/compound_stmts.rst:1163 -#: ../Doc/reference/compound_stmts.rst:1614 +#: ../Doc/reference/compound_stmts.rst:1162 +#: ../Doc/reference/compound_stmts.rst:1853 msgid ":class:`tuple`" msgstr ":class:`tuple`" -#: ../Doc/reference/compound_stmts.rst:1165 +#: ../Doc/reference/compound_stmts.rst:1164 msgid "" "These classes accept a single positional argument, and the pattern there is " "matched against the whole object rather than an attribute. For example " @@ -1801,45 +1795,45 @@ msgstr "" "compara con el objeto completo en lugar de con un atributo. Por ejemplo, " "``int(0|1)`` coincide con el valor ``0``, pero no con el valor ``0.0``." -#: ../Doc/reference/compound_stmts.rst:1169 +#: ../Doc/reference/compound_stmts.rst:1168 msgid "" "In simple terms ``CLS(P1, attr=P2)`` matches only if the following happens:" msgstr "" "En términos simples, ``CLS(P1, attr=P2)`` solo coincide si ocurre lo " "siguiente:" -#: ../Doc/reference/compound_stmts.rst:1171 +#: ../Doc/reference/compound_stmts.rst:1170 msgid "``isinstance(, CLS)``" msgstr "``isinstance(, CLS)``" -#: ../Doc/reference/compound_stmts.rst:1172 +#: ../Doc/reference/compound_stmts.rst:1171 msgid "convert ``P1`` to a keyword pattern using ``CLS.__match_args__``" msgstr "" "convierta ``P1`` en un patrón de palabra clave usando ``CLS.__match_args__``" -#: ../Doc/reference/compound_stmts.rst:1174 +#: ../Doc/reference/compound_stmts.rst:1173 msgid "For each keyword argument ``attr=P2``:" msgstr "Para cada argumento de palabra clave ``attr=P2``:" -#: ../Doc/reference/compound_stmts.rst:1174 +#: ../Doc/reference/compound_stmts.rst:1173 msgid "``hasattr(, \"attr\")``" msgstr "``hasattr(, \"attr\")``" -#: ../Doc/reference/compound_stmts.rst:1175 +#: ../Doc/reference/compound_stmts.rst:1174 msgid "``P2`` matches ``.attr``" msgstr "``P2`` coincide con ``.attr``" -#: ../Doc/reference/compound_stmts.rst:1176 +#: ../Doc/reference/compound_stmts.rst:1175 msgid "... and so on for the corresponding keyword argument/pattern pair." msgstr "" "... y así sucesivamente para el par de patrón / argumento de palabra clave " "correspondiente." -#: ../Doc/reference/compound_stmts.rst:1191 +#: ../Doc/reference/compound_stmts.rst:1190 msgid "Function definitions" msgstr "Definiciones de funciones" -#: ../Doc/reference/compound_stmts.rst:1206 +#: ../Doc/reference/compound_stmts.rst:1205 msgid "" "A function definition defines a user-defined function object (see section :" "ref:`types`):" @@ -1847,7 +1841,7 @@ msgstr "" "Una definición de función define una función objeto determinada por el " "usuario (consulte la sección :ref:`types`):" -#: ../Doc/reference/compound_stmts.rst:1225 +#: ../Doc/reference/compound_stmts.rst:1224 msgid "" "A function definition is an executable statement. Its execution binds the " "function name in the current local namespace to a function object (a wrapper " @@ -1862,7 +1856,7 @@ msgstr "" "actual como el espacio de nombres global que se utilizará cuando se llama a " "la función." -#: ../Doc/reference/compound_stmts.rst:1231 +#: ../Doc/reference/compound_stmts.rst:1230 msgid "" "The function definition does not execute the function body; this gets " "executed only when the function is called. [#]_" @@ -1870,7 +1864,7 @@ msgstr "" "La definición de la función no ejecuta el cuerpo de la función; esto se " "ejecuta solo cuando se llama a la función. [#]_" -#: ../Doc/reference/compound_stmts.rst:1237 +#: ../Doc/reference/compound_stmts.rst:1236 msgid "" "A function definition may be wrapped by one or more :term:`decorator` " "expressions. Decorator expressions are evaluated when the function is " @@ -1888,12 +1882,12 @@ msgstr "" "función en lugar del objeto de la función. Se aplican múltiples decoradores " "de forma anidada. Por ejemplo, el siguiente código ::" -#: ../Doc/reference/compound_stmts.rst:1248 -#: ../Doc/reference/compound_stmts.rst:1425 +#: ../Doc/reference/compound_stmts.rst:1247 +#: ../Doc/reference/compound_stmts.rst:1433 msgid "is roughly equivalent to ::" msgstr "es más o menos equivalente a ::" -#: ../Doc/reference/compound_stmts.rst:1253 +#: ../Doc/reference/compound_stmts.rst:1252 msgid "" "except that the original function is not temporarily bound to the name " "``func``." @@ -1901,7 +1895,7 @@ msgstr "" "excepto que la función original no está vinculada temporalmente al nombre " "``func``." -#: ../Doc/reference/compound_stmts.rst:1255 +#: ../Doc/reference/compound_stmts.rst:1254 msgid "" "Functions may be decorated with any valid :token:`~python-grammar:" "assignment_expression`. Previously, the grammar was much more restrictive; " @@ -1911,7 +1905,22 @@ msgstr "" "assignment_expression` válido. Anteriormente, la gramática era mucho más " "restrictiva; ver :pep:`614` para más detalles." +#: ../Doc/reference/compound_stmts.rst:1259 +msgid "" +"A list of :ref:`type parameters ` may be given in square " +"brackets between the function's name and the opening parenthesis for its " +"parameter list. This indicates to static type checkers that the function is " +"generic. At runtime, the type parameters can be retrieved from the " +"function's ``__type_params__`` attribute. See :ref:`generic-functions` for " +"more." +msgstr "" + #: ../Doc/reference/compound_stmts.rst:1265 +#: ../Doc/reference/compound_stmts.rst:1452 +msgid "Type parameter lists are new in Python 3.12." +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1273 msgid "" "When one or more :term:`parameters ` have the form *parameter* " "``=`` *expression*, the function is said to have \"default parameter values." @@ -1930,7 +1939,7 @@ msgstr "" "\"``*``\" también deben tener un valor predeterminado --- esta es una " "restricción sintáctica que la gramática no expresa." -#: ../Doc/reference/compound_stmts.rst:1273 +#: ../Doc/reference/compound_stmts.rst:1281 msgid "" "**Default parameter values are evaluated from left to right when the " "function definition is executed.** This means that the expression is " @@ -1954,7 +1963,7 @@ msgstr "" "predeterminado y probarlo explícitamente en el cuerpo de la función, por " "ejemplo::" -#: ../Doc/reference/compound_stmts.rst:1294 +#: ../Doc/reference/compound_stmts.rst:1302 msgid "" "Function call semantics are described in more detail in section :ref:" "`calls`. A function call always assigns values to all parameters mentioned " @@ -1982,7 +1991,7 @@ msgstr "" "\"``*identifier``\" son parámetros solo por palabra clave y solo pueden " "pasarse con argumentos de palabras claves usadas." -#: ../Doc/reference/compound_stmts.rst:1306 +#: ../Doc/reference/compound_stmts.rst:1314 msgid "" "The ``/`` function parameter syntax may be used to indicate positional-only " "parameters. See :pep:`570` for details." @@ -1991,7 +2000,7 @@ msgstr "" "parámetros de posición únicamente. Consulte :pep:`570` para obtener más " "detalles." -#: ../Doc/reference/compound_stmts.rst:1315 +#: ../Doc/reference/compound_stmts.rst:1323 msgid "" "Parameters may have an :term:`annotation ` of the form " "\"``: expression``\" following the parameter name. Any parameter may have " @@ -2022,7 +2031,7 @@ msgstr "" "definición de la función. En este caso, las anotaciones pueden evaluarse en " "un orden diferente al que aparecen en el código fuente." -#: ../Doc/reference/compound_stmts.rst:1330 +#: ../Doc/reference/compound_stmts.rst:1338 msgid "" "It is also possible to create anonymous functions (functions not bound to a " "name), for immediate use in expressions. This uses lambda expressions, " @@ -2042,7 +2051,7 @@ msgstr "" "expresión lambda. La forma \":keyword:`!def`\" es en realidad más poderosa " "ya que permite la ejecución de múltiples sentencias y anotaciones." -#: ../Doc/reference/compound_stmts.rst:1338 +#: ../Doc/reference/compound_stmts.rst:1346 msgid "" "**Programmer's note:** Functions are first-class objects. A \"``def``\" " "statement executed inside a function definition defines a local function " @@ -2057,28 +2066,28 @@ msgstr "" "la función que contiene el def. Vea la sección :ref:`naming` para más " "detalles." -#: ../Doc/reference/compound_stmts.rst:1347 +#: ../Doc/reference/compound_stmts.rst:1355 msgid ":pep:`3107` - Function Annotations" msgstr ":pep:`3107` - Anotaciones de funciones" -#: ../Doc/reference/compound_stmts.rst:1347 +#: ../Doc/reference/compound_stmts.rst:1355 msgid "The original specification for function annotations." msgstr "La especificación original para anotaciones de funciones." -#: ../Doc/reference/compound_stmts.rst:1350 +#: ../Doc/reference/compound_stmts.rst:1358 msgid ":pep:`484` - Type Hints" msgstr ":pep:`484` - Sugerencias de tipo" -#: ../Doc/reference/compound_stmts.rst:1350 +#: ../Doc/reference/compound_stmts.rst:1358 msgid "Definition of a standard meaning for annotations: type hints." msgstr "" "Definición de un significado estándar para anotaciones: sugerencias de tipo." -#: ../Doc/reference/compound_stmts.rst:1354 +#: ../Doc/reference/compound_stmts.rst:1362 msgid ":pep:`526` - Syntax for Variable Annotations" msgstr ":pep:`526` - Sintaxis para anotaciones variables" -#: ../Doc/reference/compound_stmts.rst:1353 +#: ../Doc/reference/compound_stmts.rst:1361 msgid "" "Ability to type hint variable declarations, including class variables and " "instance variables" @@ -2086,11 +2095,11 @@ msgstr "" "Capacidad para escribir declaraciones de variables indirectas, incluidas " "variables de clase y variables de instancia" -#: ../Doc/reference/compound_stmts.rst:1357 +#: ../Doc/reference/compound_stmts.rst:1365 msgid ":pep:`563` - Postponed Evaluation of Annotations" msgstr ":pep:`563` - Evaluación pospuesta de anotaciones" -#: ../Doc/reference/compound_stmts.rst:1357 +#: ../Doc/reference/compound_stmts.rst:1365 msgid "" "Support for forward references within annotations by preserving annotations " "in a string form at runtime instead of eager evaluation." @@ -2099,16 +2108,16 @@ msgstr "" "anotaciones en forma de cadena de caracteres en tiempo de ejecución en lugar " "de una evaluación apresurada." -#: ../Doc/reference/compound_stmts.rst:1364 +#: ../Doc/reference/compound_stmts.rst:1372 msgid "Class definitions" msgstr "Definiciones de clase" -#: ../Doc/reference/compound_stmts.rst:1379 +#: ../Doc/reference/compound_stmts.rst:1387 msgid "A class definition defines a class object (see section :ref:`types`):" msgstr "" "Una definición de clase define un objeto de clase (ver sección :ref:`types`):" -#: ../Doc/reference/compound_stmts.rst:1386 +#: ../Doc/reference/compound_stmts.rst:1394 msgid "" "A class definition is an executable statement. The inheritance list usually " "gives a list of base classes (see :ref:`metaclasses` for more advanced " @@ -2123,11 +2132,11 @@ msgstr "" "clases sin una lista de herencia heredan, por defecto, de la clase base :" "class:`object`; por lo tanto, ::" -#: ../Doc/reference/compound_stmts.rst:1395 +#: ../Doc/reference/compound_stmts.rst:1403 msgid "is equivalent to ::" msgstr "es equivalente a ::" -#: ../Doc/reference/compound_stmts.rst:1400 +#: ../Doc/reference/compound_stmts.rst:1408 msgid "" "The class's suite is then executed in a new execution frame (see :ref:" "`naming`), using a newly created local namespace and the original global " @@ -2148,7 +2157,7 @@ msgstr "" "diccionario de atributos. El nombre de la clase está vinculado a este objeto " "de clase en el espacio de nombres local original." -#: ../Doc/reference/compound_stmts.rst:1409 +#: ../Doc/reference/compound_stmts.rst:1417 msgid "" "The order in which attributes are defined in the class body is preserved in " "the new class's ``__dict__``. Note that this is reliable only right after " @@ -2160,7 +2169,7 @@ msgstr "" "confiable solo justo después de crear la clase y solo para las clases que se " "definieron utilizando la sintaxis de definición." -#: ../Doc/reference/compound_stmts.rst:1414 +#: ../Doc/reference/compound_stmts.rst:1422 msgid "" "Class creation can be customized heavily using :ref:`metaclasses " "`." @@ -2168,13 +2177,13 @@ msgstr "" "La creación de clases se puede personalizar en gran medida usando :ref:" "`metaclasses `." -#: ../Doc/reference/compound_stmts.rst:1419 +#: ../Doc/reference/compound_stmts.rst:1427 msgid "Classes can also be decorated: just like when decorating functions, ::" msgstr "" "Las clases también se pueden decorar: al igual que cuando se decoran " "funciones, ::" -#: ../Doc/reference/compound_stmts.rst:1430 +#: ../Doc/reference/compound_stmts.rst:1438 msgid "" "The evaluation rules for the decorator expressions are the same as for " "function decorators. The result is then bound to the class name." @@ -2183,7 +2192,7 @@ msgstr "" "que para los decoradores de funciones. El resultado se vincula al nombre de " "la clase." -#: ../Doc/reference/compound_stmts.rst:1433 +#: ../Doc/reference/compound_stmts.rst:1441 msgid "" "Classes may be decorated with any valid :token:`~python-grammar:" "assignment_expression`. Previously, the grammar was much more restrictive; " @@ -2193,7 +2202,16 @@ msgstr "" "assignment_expression` válido. Anteriormente, la gramática era mucho más " "restrictiva; ver :pep:`614` para más detalles." -#: ../Doc/reference/compound_stmts.rst:1438 +#: ../Doc/reference/compound_stmts.rst:1446 +msgid "" +"A list of :ref:`type parameters ` may be given in square " +"brackets immediately after the class's name. This indicates to static type " +"checkers that the class is generic. At runtime, the type parameters can be " +"retrieved from the class's ``__type_params__`` attribute. See :ref:`generic-" +"classes` for more." +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1455 msgid "" "**Programmer's note:** Variables defined in the class definition are class " "attributes; they are shared by instances. Instance attributes can be set in " @@ -2216,11 +2234,11 @@ msgstr "" "`Descriptors ` se puede usar para crear variables de instancia " "con diferentes detalles de implementación." -#: ../Doc/reference/compound_stmts.rst:1453 +#: ../Doc/reference/compound_stmts.rst:1470 msgid ":pep:`3115` - Metaclasses in Python 3000" msgstr ":pep:`3115` - Metaclases en Python 3000" -#: ../Doc/reference/compound_stmts.rst:1451 +#: ../Doc/reference/compound_stmts.rst:1468 msgid "" "The proposal that changed the declaration of metaclasses to the current " "syntax, and the semantics for how classes with metaclasses are constructed." @@ -2228,11 +2246,11 @@ msgstr "" "La propuesta que cambió la declaración de metaclases a la sintaxis actual y " "la semántica de cómo se construyen las clases con metaclases." -#: ../Doc/reference/compound_stmts.rst:1456 +#: ../Doc/reference/compound_stmts.rst:1473 msgid ":pep:`3129` - Class Decorators" msgstr ":pep:`3129` - Decoradores de clase" -#: ../Doc/reference/compound_stmts.rst:1456 +#: ../Doc/reference/compound_stmts.rst:1473 msgid "" "The proposal that added class decorators. Function and method decorators " "were introduced in :pep:`318`." @@ -2240,15 +2258,15 @@ msgstr "" "La propuesta que agregó decoradores de clase. Los decoradores de funciones y " "métodos se introdujeron en :pep:`318`." -#: ../Doc/reference/compound_stmts.rst:1463 +#: ../Doc/reference/compound_stmts.rst:1480 msgid "Coroutines" msgstr "Corrutinas" -#: ../Doc/reference/compound_stmts.rst:1471 +#: ../Doc/reference/compound_stmts.rst:1488 msgid "Coroutine function definition" msgstr "Definición de la función corrutina" -#: ../Doc/reference/compound_stmts.rst:1481 +#: ../Doc/reference/compound_stmts.rst:1498 msgid "" "Execution of Python coroutines can be suspended and resumed at many points " "(see :term:`coroutine`). :keyword:`await` expressions, :keyword:`async for` " @@ -2260,7 +2278,7 @@ msgstr "" "keyword:`async for` y :keyword:`async with` solo se pueden utilizar en el " "cuerpo de una función de corrutina." -#: ../Doc/reference/compound_stmts.rst:1485 +#: ../Doc/reference/compound_stmts.rst:1502 msgid "" "Functions defined with ``async def`` syntax are always coroutine functions, " "even if they do not contain ``await`` or ``async`` keywords." @@ -2268,7 +2286,7 @@ msgstr "" "Las funciones definidas con la sintaxis ``async def`` siempre son funciones " "de corrutina, incluso si no contienen palabras claves ``await`` o ``async``." -#: ../Doc/reference/compound_stmts.rst:1488 +#: ../Doc/reference/compound_stmts.rst:1505 msgid "" "It is a :exc:`SyntaxError` to use a ``yield from`` expression inside the " "body of a coroutine function." @@ -2276,11 +2294,11 @@ msgstr "" "Es un error del tipo :exc:`SyntaxError` usar una expresión ``yield from`` " "dentro del cuerpo de una función de corrutina." -#: ../Doc/reference/compound_stmts.rst:1491 +#: ../Doc/reference/compound_stmts.rst:1508 msgid "An example of a coroutine function::" msgstr "Un ejemplo de una función corrutina::" -#: ../Doc/reference/compound_stmts.rst:1497 +#: ../Doc/reference/compound_stmts.rst:1514 msgid "" "``await`` and ``async`` are now keywords; previously they were only treated " "as such inside the body of a coroutine function." @@ -2288,11 +2306,11 @@ msgstr "" "``await`` y ``async`` ahora son palabras clave; anteriormente solo se los " "trataba como tales dentro del cuerpo de una función de rutina." -#: ../Doc/reference/compound_stmts.rst:1505 +#: ../Doc/reference/compound_stmts.rst:1522 msgid "The :keyword:`!async for` statement" msgstr "La sentencia :keyword:`!async for`" -#: ../Doc/reference/compound_stmts.rst:1510 +#: ../Doc/reference/compound_stmts.rst:1527 msgid "" "An :term:`asynchronous iterable` provides an ``__aiter__`` method that " "directly returns an :term:`asynchronous iterator`, which can call " @@ -2302,7 +2320,7 @@ msgstr "" "retorna directamente un :term:`asynchronous iterator`, que puede llamar a " "código asincrónico en su método ``__anext__``." -#: ../Doc/reference/compound_stmts.rst:1514 +#: ../Doc/reference/compound_stmts.rst:1531 msgid "" "The ``async for`` statement allows convenient iteration over asynchronous " "iterables." @@ -2310,18 +2328,18 @@ msgstr "" "La sentencia ``async for`` permite una iteración apropiada sobre iteradores " "asincrónicos." -#: ../Doc/reference/compound_stmts.rst:1524 +#: ../Doc/reference/compound_stmts.rst:1541 msgid "Is semantically equivalent to::" msgstr "Es semánticamente equivalente a::" -#: ../Doc/reference/compound_stmts.rst:1540 +#: ../Doc/reference/compound_stmts.rst:1557 msgid "" "See also :meth:`~object.__aiter__` and :meth:`~object.__anext__` for details." msgstr "" "Consulte también :meth:`~object.__aiter__` y :meth:`~object.__anext__` para " "obtener más detalles." -#: ../Doc/reference/compound_stmts.rst:1542 +#: ../Doc/reference/compound_stmts.rst:1559 msgid "" "It is a :exc:`SyntaxError` to use an ``async for`` statement outside the " "body of a coroutine function." @@ -2329,11 +2347,11 @@ msgstr "" "Es un error del tipo :exc:`SyntaxError` usar una sentencia ``async for`` " "fuera del cuerpo de una función de corrutina." -#: ../Doc/reference/compound_stmts.rst:1550 +#: ../Doc/reference/compound_stmts.rst:1567 msgid "The :keyword:`!async with` statement" msgstr "La sentencia :keyword:`!async with`" -#: ../Doc/reference/compound_stmts.rst:1555 +#: ../Doc/reference/compound_stmts.rst:1572 msgid "" "An :term:`asynchronous context manager` is a :term:`context manager` that is " "able to suspend execution in its *enter* and *exit* methods." @@ -2341,7 +2359,7 @@ msgstr "" "Un :term:`asynchronous context manager` es un :term:`context manager` que " "puede suspender la ejecución en sus métodos *enter* y *exit*." -#: ../Doc/reference/compound_stmts.rst:1582 +#: ../Doc/reference/compound_stmts.rst:1599 msgid "" "See also :meth:`~object.__aenter__` and :meth:`~object.__aexit__` for " "details." @@ -2349,7 +2367,7 @@ msgstr "" "Consulte también :meth:`~object.__aenter__` y :meth:`~object.__aexit__` para " "obtener más detalles." -#: ../Doc/reference/compound_stmts.rst:1584 +#: ../Doc/reference/compound_stmts.rst:1601 msgid "" "It is a :exc:`SyntaxError` to use an ``async with`` statement outside the " "body of a coroutine function." @@ -2357,11 +2375,11 @@ msgstr "" "Es un error del tipo :exc:`SyntaxError` usar una sentencia ``async with`` " "fuera del cuerpo de una función de corrutina." -#: ../Doc/reference/compound_stmts.rst:1590 +#: ../Doc/reference/compound_stmts.rst:1607 msgid ":pep:`492` - Coroutines with async and await syntax" msgstr ":pep:`492` - Corrutinas con sintaxis ``async`` y ``await``" -#: ../Doc/reference/compound_stmts.rst:1590 +#: ../Doc/reference/compound_stmts.rst:1607 msgid "" "The proposal that made coroutines a proper standalone concept in Python, and " "added supporting syntax." @@ -2369,11 +2387,205 @@ msgstr "" "La propuesta que convirtió a las corrutinas en un concepto independiente " "adecuado en Python, y agregó una sintaxis de soporte." -#: ../Doc/reference/compound_stmts.rst:1595 +#: ../Doc/reference/compound_stmts.rst:1613 +msgid "Type parameter lists" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1627 +msgid "" +":ref:`Functions ` (including :ref:`coroutines `), :ref:" +"`classes ` and :ref:`type aliases ` may contain a type " +"parameter list::" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1646 +msgid "" +"Semantically, this indicates that the function, class, or type alias is " +"generic over a type variable. This information is primarily used by static " +"type checkers, and at runtime, generic objects behave much like their non-" +"generic counterparts." +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1651 +msgid "" +"Type parameters are declared in square brackets (``[]``) immediately after " +"the name of the function, class, or type alias. The type parameters are " +"accessible within the scope of the generic object, but not elsewhere. Thus, " +"after a declaration ``def func[T](): pass``, the name ``T`` is not available " +"in the module scope. Below, the semantics of generic objects are described " +"with more precision. The scope of type parameters is modeled with a special " +"function (technically, an :ref:`annotation scope `) that " +"wraps the creation of the generic object." +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1660 +msgid "" +"Generic functions, classes, and type aliases have a :attr:`!__type_params__` " +"attribute listing their type parameters." +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1663 +msgid "Type parameters come in three kinds:" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1665 +msgid "" +":data:`typing.TypeVar`, introduced by a plain name (e.g., ``T``). " +"Semantically, this represents a single type to a type checker." +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1667 +msgid "" +":data:`typing.TypeVarTuple`, introduced by a name prefixed with a single " +"asterisk (e.g., ``*Ts``). Semantically, this stands for a tuple of any " +"number of types." +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1670 +msgid "" +":data:`typing.ParamSpec`, introduced by a name prefixed with two asterisks " +"(e.g., ``**P``). Semantically, this stands for the parameters of a callable." +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1673 +msgid "" +":data:`typing.TypeVar` declarations can define *bounds* and *constraints* " +"with a colon (``:``) followed by an expression. A single expression after " +"the colon indicates a bound (e.g. ``T: int``). Semantically, this means that " +"the :data:`!typing.TypeVar` can only represent types that are a subtype of " +"this bound. A parenthesized tuple of expressions after the colon indicates a " +"set of constraints (e.g. ``T: (str, bytes)``). Each member of the tuple " +"should be a type (again, this is not enforced at runtime). Constrained type " +"variables can only take on one of the types in the list of constraints." +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1682 +msgid "" +"For :data:`!typing.TypeVar`\\ s declared using the type parameter list " +"syntax, the bound and constraints are not evaluated when the generic object " +"is created, but only when the value is explicitly accessed through the " +"attributes ``__bound__`` and ``__constraints__``. To accomplish this, the " +"bounds or constraints are evaluated in a separate :ref:`annotation scope " +"`." +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1688 +msgid "" +":data:`typing.TypeVarTuple`\\ s and :data:`typing.ParamSpec`\\ s cannot have " +"bounds or constraints." +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1691 +msgid "" +"The following example indicates the full set of allowed type parameter " +"declarations::" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1709 +msgid "Generic functions" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1711 +msgid "Generic functions are declared as follows::" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1715 +#: ../Doc/reference/compound_stmts.rst:1775 +#, fuzzy +msgid "This syntax is equivalent to::" +msgstr "Es semánticamente equivalente a::" + +#: ../Doc/reference/compound_stmts.rst:1724 +msgid "" +"Here ``annotation-def`` indicates an :ref:`annotation scope `, which is not actually bound to any name at runtime. (One other " +"liberty is taken in the translation: the syntax does not go through " +"attribute access on the :mod:`typing` module, but creates an instance of :" +"data:`typing.TypeVar` directly.)" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1730 +msgid "" +"The annotations of generic functions are evaluated within the annotation " +"scope used for declaring the type parameters, but the function's defaults " +"and decorators are not." +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1734 +msgid "" +"The following example illustrates the scoping rules for these cases, as well " +"as for additional flavors of type parameters::" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1741 +msgid "" +"Except for the :ref:`lazy evaluation ` of the :class:" +"`~typing.TypeVar` bound, this is equivalent to::" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1763 +msgid "" +"The capitalized names like ``DEFAULT_OF_arg`` are not actually bound at " +"runtime." +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1769 +msgid "Generic classes" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1771 +msgid "Generic classes are declared as follows::" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1785 +msgid "" +"Here again ``annotation-def`` (not a real keyword) indicates an :ref:" +"`annotation scope `, and the name ``TYPE_PARAMS_OF_Bag`` " +"is not actually bound at runtime." +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1789 +msgid "" +"Generic classes implicitly inherit from :data:`typing.Generic`. The base " +"classes and keyword arguments of generic classes are evaluated within the " +"type scope for the type parameters, and decorators are evaluated outside " +"that scope. This is illustrated by this example::" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1798 +#, fuzzy +msgid "This is equivalent to::" +msgstr "es equivalente a ::" + +#: ../Doc/reference/compound_stmts.rst:1811 +msgid "Generic type aliases" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1813 +#, fuzzy +msgid "" +"The :keyword:`type` statement can also be used to create a generic type " +"alias::" +msgstr "La sentencia :keyword:`if` se usa para la ejecución condicional:" + +#: ../Doc/reference/compound_stmts.rst:1817 +msgid "" +"Except for the :ref:`lazy evaluation ` of the value, this " +"is equivalent to::" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1829 +msgid "" +"Here, ``annotation-def`` (not a real keyword) indicates an :ref:`annotation " +"scope `. The capitalized names like " +"``TYPE_PARAMS_OF_ListOrSet`` are not actually bound at runtime." +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1834 msgid "Footnotes" msgstr "Notas al pie" -#: ../Doc/reference/compound_stmts.rst:1596 +#: ../Doc/reference/compound_stmts.rst:1835 msgid "" "The exception is propagated to the invocation stack unless there is a :" "keyword:`finally` clause which happens to raise another exception. That new " @@ -2383,56 +2595,57 @@ msgstr "" "cláusula :keyword:`finally` que provoque otra excepción. Esa nueva excepción " "hace que se pierda la anterior." -#: ../Doc/reference/compound_stmts.rst:1600 +#: ../Doc/reference/compound_stmts.rst:1839 msgid "In pattern matching, a sequence is defined as one of the following:" msgstr "" "En la coincidencia de patrones, una secuencia se define como una de las " "siguientes:" -#: ../Doc/reference/compound_stmts.rst:1602 +#: ../Doc/reference/compound_stmts.rst:1841 msgid "a class that inherits from :class:`collections.abc.Sequence`" msgstr "una clase que hereda de :class:`collections.abc.Sequence`" -#: ../Doc/reference/compound_stmts.rst:1603 +#: ../Doc/reference/compound_stmts.rst:1842 msgid "" "a Python class that has been registered as :class:`collections.abc.Sequence`" msgstr "" "una clase de Python que se ha registrado como :class:`collections.abc." "Sequence`" -#: ../Doc/reference/compound_stmts.rst:1604 +#: ../Doc/reference/compound_stmts.rst:1843 +#, fuzzy msgid "" -"a builtin class that has its (CPython) :data:`Py_TPFLAGS_SEQUENCE` bit set" +"a builtin class that has its (CPython) :c:macro:`Py_TPFLAGS_SEQUENCE` bit set" msgstr "" "una clase incorporada que tiene su conjunto de bits (CPython) :data:" "`Py_TPFLAGS_SEQUENCE`" -#: ../Doc/reference/compound_stmts.rst:1605 -#: ../Doc/reference/compound_stmts.rst:1624 +#: ../Doc/reference/compound_stmts.rst:1844 +#: ../Doc/reference/compound_stmts.rst:1863 msgid "a class that inherits from any of the above" msgstr "una clase que hereda de cualquiera de los anteriores" -#: ../Doc/reference/compound_stmts.rst:1607 +#: ../Doc/reference/compound_stmts.rst:1846 msgid "The following standard library classes are sequences:" msgstr "Las siguientes clases de biblioteca estándar son secuencias:" -#: ../Doc/reference/compound_stmts.rst:1609 +#: ../Doc/reference/compound_stmts.rst:1848 msgid ":class:`array.array`" msgstr ":class:`array.array`" -#: ../Doc/reference/compound_stmts.rst:1610 +#: ../Doc/reference/compound_stmts.rst:1849 msgid ":class:`collections.deque`" msgstr ":class:`collections.deque`" -#: ../Doc/reference/compound_stmts.rst:1612 +#: ../Doc/reference/compound_stmts.rst:1851 msgid ":class:`memoryview`" msgstr ":class:`memoryview`" -#: ../Doc/reference/compound_stmts.rst:1613 +#: ../Doc/reference/compound_stmts.rst:1852 msgid ":class:`range`" msgstr ":class:`range`" -#: ../Doc/reference/compound_stmts.rst:1616 +#: ../Doc/reference/compound_stmts.rst:1855 msgid "" "Subject values of type ``str``, ``bytes``, and ``bytearray`` do not match " "sequence patterns." @@ -2440,31 +2653,32 @@ msgstr "" "Los valores de sujeto de tipo ``str``, ``bytes`` y ``bytearray`` no " "coinciden con los patrones de secuencia." -#: ../Doc/reference/compound_stmts.rst:1619 +#: ../Doc/reference/compound_stmts.rst:1858 msgid "In pattern matching, a mapping is defined as one of the following:" msgstr "" "En la coincidencia de patrones, un mapeo se define como uno de los " "siguientes:" -#: ../Doc/reference/compound_stmts.rst:1621 +#: ../Doc/reference/compound_stmts.rst:1860 msgid "a class that inherits from :class:`collections.abc.Mapping`" msgstr "una clase que hereda de :class:`collections.abc.Mapping`" -#: ../Doc/reference/compound_stmts.rst:1622 +#: ../Doc/reference/compound_stmts.rst:1861 msgid "" "a Python class that has been registered as :class:`collections.abc.Mapping`" msgstr "" "una clase de Python que se ha registrado como :class:`collections.abc." "Mapping`" -#: ../Doc/reference/compound_stmts.rst:1623 +#: ../Doc/reference/compound_stmts.rst:1862 +#, fuzzy msgid "" -"a builtin class that has its (CPython) :data:`Py_TPFLAGS_MAPPING` bit set" +"a builtin class that has its (CPython) :c:macro:`Py_TPFLAGS_MAPPING` bit set" msgstr "" "una clase incorporada que tiene su conjunto de bits (CPython) :data:" "`Py_TPFLAGS_MAPPING`" -#: ../Doc/reference/compound_stmts.rst:1626 +#: ../Doc/reference/compound_stmts.rst:1865 msgid "" "The standard library classes :class:`dict` and :class:`types." "MappingProxyType` are mappings." @@ -2472,7 +2686,7 @@ msgstr "" "Las clases de biblioteca estándar :class:`dict` y :class:`types." "MappingProxyType` son asignaciones." -#: ../Doc/reference/compound_stmts.rst:1629 +#: ../Doc/reference/compound_stmts.rst:1868 msgid "" "A string literal appearing as the first statement in the function body is " "transformed into the function's ``__doc__`` attribute and therefore the " @@ -2482,7 +2696,7 @@ msgstr "" "cuerpo de la función se transforma en el atributo ``__doc__`` de la función " "y, por lo tanto, en funciones :term:`docstring`." -#: ../Doc/reference/compound_stmts.rst:1633 +#: ../Doc/reference/compound_stmts.rst:1872 msgid "" "A string literal appearing as the first statement in the class body is " "transformed into the namespace's ``__doc__`` item and therefore the class's :" @@ -2491,3 +2705,448 @@ msgstr "" "Una cadena de caracteres literal que aparece como la primera sentencia en el " "cuerpo de la clase se transforma en el elemento del espacio de nombre " "``__doc__`` y, por lo tanto, de la clase :term:`docstring`." + +#: ../Doc/reference/compound_stmts.rst:7 +msgid "compound" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:7 ../Doc/reference/compound_stmts.rst:86 +#: ../Doc/reference/compound_stmts.rst:111 +#: ../Doc/reference/compound_stmts.rst:129 +#: ../Doc/reference/compound_stmts.rst:144 +#: ../Doc/reference/compound_stmts.rst:169 +#: ../Doc/reference/compound_stmts.rst:207 +#: ../Doc/reference/compound_stmts.rst:389 +#: ../Doc/reference/compound_stmts.rst:436 +#: ../Doc/reference/compound_stmts.rst:470 +#: ../Doc/reference/compound_stmts.rst:587 +#: ../Doc/reference/compound_stmts.rst:1192 +#: ../Doc/reference/compound_stmts.rst:1374 +#: ../Doc/reference/compound_stmts.rst:1484 +#: ../Doc/reference/compound_stmts.rst:1518 +#: ../Doc/reference/compound_stmts.rst:1563 +#, fuzzy +msgid "statement" +msgstr "Sentencias compuestas" + +#: ../Doc/reference/compound_stmts.rst:21 +msgid "clause" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:21 +msgid "suite" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:21 +msgid "; (semicolon)" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:64 +msgid "NEWLINE token" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:64 +msgid "DEDENT token" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:64 +msgid "dangling" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:64 +#: ../Doc/reference/compound_stmts.rst:86 +#: ../Doc/reference/compound_stmts.rst:111 +#: ../Doc/reference/compound_stmts.rst:144 +#: ../Doc/reference/compound_stmts.rst:207 +#: ../Doc/reference/compound_stmts.rst:389 +msgid "else" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:86 +#: ../Doc/reference/compound_stmts.rst:587 +msgid "if" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:86 +#: ../Doc/reference/compound_stmts.rst:111 +#: ../Doc/reference/compound_stmts.rst:144 +#: ../Doc/reference/compound_stmts.rst:207 +#: ../Doc/reference/compound_stmts.rst:328 +#: ../Doc/reference/compound_stmts.rst:389 +#: ../Doc/reference/compound_stmts.rst:407 +#: ../Doc/reference/compound_stmts.rst:470 +#: ../Doc/reference/compound_stmts.rst:587 +#: ../Doc/reference/compound_stmts.rst:1494 +msgid "keyword" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:86 +msgid "elif" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:86 +#: ../Doc/reference/compound_stmts.rst:111 +#: ../Doc/reference/compound_stmts.rst:144 +#: ../Doc/reference/compound_stmts.rst:207 +#: ../Doc/reference/compound_stmts.rst:470 +#: ../Doc/reference/compound_stmts.rst:587 +#: ../Doc/reference/compound_stmts.rst:1192 +#: ../Doc/reference/compound_stmts.rst:1318 +#: ../Doc/reference/compound_stmts.rst:1374 +msgid ": (colon)" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:86 +#: ../Doc/reference/compound_stmts.rst:111 +#: ../Doc/reference/compound_stmts.rst:144 +#: ../Doc/reference/compound_stmts.rst:207 +#: ../Doc/reference/compound_stmts.rst:470 +#: ../Doc/reference/compound_stmts.rst:587 +#: ../Doc/reference/compound_stmts.rst:1192 +#: ../Doc/reference/compound_stmts.rst:1374 +#, fuzzy +msgid "compound statement" +msgstr "Sentencias compuestas" + +#: ../Doc/reference/compound_stmts.rst:111 +msgid "while" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:111 +#: ../Doc/reference/compound_stmts.rst:144 +msgid "loop" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:129 +#: ../Doc/reference/compound_stmts.rst:169 +#: ../Doc/reference/compound_stmts.rst:389 +#: ../Doc/reference/compound_stmts.rst:436 +msgid "break" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:129 +#: ../Doc/reference/compound_stmts.rst:169 +#: ../Doc/reference/compound_stmts.rst:389 +#: ../Doc/reference/compound_stmts.rst:436 +#, fuzzy +msgid "continue" +msgstr "Corrutinas" + +#: ../Doc/reference/compound_stmts.rst:144 +msgid "for" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:144 +msgid "in" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:144 +msgid "target" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:144 +msgid "list" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:144 +#: ../Doc/reference/compound_stmts.rst:299 +#: ../Doc/reference/compound_stmts.rst:1192 +#: ../Doc/reference/compound_stmts.rst:1374 +msgid "object" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:144 +#, fuzzy +msgid "sequence" +msgstr "Patrones de secuencia" + +#: ../Doc/reference/compound_stmts.rst:190 +msgid "built-in function" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:190 +msgid "range" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:207 +msgid "try" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:207 +msgid "except" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:207 +#: ../Doc/reference/compound_stmts.rst:407 +msgid "finally" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:207 +#: ../Doc/reference/compound_stmts.rst:266 +#: ../Doc/reference/compound_stmts.rst:470 +#: ../Doc/reference/compound_stmts.rst:587 +msgid "as" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:266 +#, fuzzy +msgid "except clause" +msgstr "Cláusula :keyword:`!except`" + +#: ../Doc/reference/compound_stmts.rst:299 +msgid "module" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:299 +msgid "sys" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:299 +msgid "traceback" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:328 +msgid "except_star" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:389 +#: ../Doc/reference/compound_stmts.rst:436 +msgid "return" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:470 +msgid "with" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:470 +#, fuzzy +msgid "with statement" +msgstr "La sentencia :keyword:`!with`" + +#: ../Doc/reference/compound_stmts.rst:470 +#: ../Doc/reference/compound_stmts.rst:1192 +#: ../Doc/reference/compound_stmts.rst:1374 +msgid ", (comma)" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:587 +msgid "match" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:587 +msgid "case" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:587 +#, fuzzy +msgid "pattern matching" +msgstr ":ref:`class-pattern-matching`" + +#: ../Doc/reference/compound_stmts.rst:587 +#, fuzzy +msgid "match statement" +msgstr "Un ejemplo de declaración de coincidencia::" + +#: ../Doc/reference/compound_stmts.rst:691 +#, fuzzy +msgid "guard" +msgstr "Protecciones" + +#: ../Doc/reference/compound_stmts.rst:730 +#, fuzzy +msgid "irrefutable case block" +msgstr "Bloques de Casos Irrefutables" + +#: ../Doc/reference/compound_stmts.rst:730 +#, fuzzy +msgid "case block" +msgstr "Bloques de Casos Irrefutables" + +#: ../Doc/reference/compound_stmts.rst:754 +#, fuzzy +msgid "! patterns" +msgstr "Patrones" + +#: ../Doc/reference/compound_stmts.rst:754 +msgid "AS pattern, OR pattern, capture pattern, wildcard pattern" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1183 +#: ../Doc/reference/compound_stmts.rst:1268 +msgid "parameter" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1183 +#: ../Doc/reference/compound_stmts.rst:1192 +#: ../Doc/reference/compound_stmts.rst:1233 +#: ../Doc/reference/compound_stmts.rst:1268 +#: ../Doc/reference/compound_stmts.rst:1297 +#, fuzzy +msgid "function definition" +msgstr "Definiciones de funciones" + +#: ../Doc/reference/compound_stmts.rst:1192 +msgid "def" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1192 +#: ../Doc/reference/compound_stmts.rst:1318 +msgid "function" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1192 +#: ../Doc/reference/compound_stmts.rst:1374 +#, fuzzy +msgid "definition" +msgstr "Definiciones de clase" + +#: ../Doc/reference/compound_stmts.rst:1192 +#: ../Doc/reference/compound_stmts.rst:1374 +msgid "name" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1192 +#: ../Doc/reference/compound_stmts.rst:1374 +msgid "binding" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1192 +msgid "user-defined function" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1192 +#: ../Doc/reference/compound_stmts.rst:1374 +msgid "() (parentheses)" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1192 +msgid "parameter list" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1233 +#: ../Doc/reference/compound_stmts.rst:1424 +msgid "@ (at)" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1268 +msgid "default" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1268 +msgid "value" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1268 +msgid "argument" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1268 +msgid "= (equals)" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1297 +msgid "/ (slash)" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1297 +msgid "* (asterisk)" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1297 +msgid "**" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1318 +msgid "annotations" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1318 +msgid "->" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1318 +#, fuzzy +msgid "function annotations" +msgstr "Definiciones de funciones" + +#: ../Doc/reference/compound_stmts.rst:1336 +msgid "lambda" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1336 +msgid "expression" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1374 +msgid "class" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1374 +msgid "execution" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1374 +msgid "frame" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1374 +msgid "inheritance" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1374 +msgid "docstring" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1374 +#: ../Doc/reference/compound_stmts.rst:1424 +#, fuzzy +msgid "class definition" +msgstr "Definiciones de clase" + +#: ../Doc/reference/compound_stmts.rst:1374 +msgid "expression list" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1484 +msgid "async def" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1494 +msgid "async" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1494 +msgid "await" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1518 +msgid "async for" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1563 +msgid "async with" +msgstr "" + +#: ../Doc/reference/compound_stmts.rst:1617 +msgid "type parameters" +msgstr "" + +#~ msgid "" +#~ "Before an :keyword:`!except` clause's suite is executed, details about " +#~ "the exception are stored in the :mod:`sys` module and can be accessed " +#~ "via :func:`sys.exc_info`. :func:`sys.exc_info` returns a 3-tuple " +#~ "consisting of the exception class, the exception instance and a traceback " +#~ "object (see section :ref:`types`) identifying the point in the program " +#~ "where the exception occurred. The details about the exception accessed " +#~ "via :func:`sys.exc_info` are restored to their previous values when " +#~ "leaving an exception handler::" +#~ msgstr "" +#~ "Antes de que se ejecute un conjunto de cláusulas :keyword:`!except`, los " +#~ "detalles sobre la excepción se almacenan en el módulo :mod:`sys` y se " +#~ "puede acceder a ellos a través de :func:`sys.exc_info`. :func:`sys." +#~ "exc_info` devuelve una tupla de 3 que consta de la clase de excepción, la " +#~ "instancia de excepción y un objeto de rastreo (consulte la sección :ref:" +#~ "`types`) que identifica el punto del programa donde se produjo la " +#~ "excepción. Los detalles sobre la excepción a la que se accede a través " +#~ "de :func:`sys.exc_info` se restauran a sus valores anteriores cuando se " +#~ "deja un controlador de excepciones:" diff --git a/reference/datamodel.po b/reference/datamodel.po index 8410f270ae..ea7c19e14d 100644 --- a/reference/datamodel.po +++ b/reference/datamodel.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-12-09 23:44-0300\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/reference/datamodel.rst:6 msgid "Data model" @@ -247,11 +247,11 @@ msgstr "" "acceso a la implementación y no están destinados para uso general. Su " "definición puede cambiar en el futuro." -#: ../Doc/reference/datamodel.rst:150 +#: ../Doc/reference/datamodel.rst:146 ../Doc/reference/datamodel.rst:148 msgid "None" msgstr "None" -#: ../Doc/reference/datamodel.rst:147 +#: ../Doc/reference/datamodel.rst:150 msgid "" "This type has a single value. There is a single object with this value. " "This object is accessed through the built-in name ``None``. It is used to " @@ -264,11 +264,11 @@ msgstr "" "retorna desde funciones que no retornan nada explícitamente. Su valor de " "verdad es falso." -#: ../Doc/reference/datamodel.rst:170 +#: ../Doc/reference/datamodel.rst:157 ../Doc/reference/datamodel.rst:159 msgid "NotImplemented" msgstr "NotImplemented" -#: ../Doc/reference/datamodel.rst:155 +#: ../Doc/reference/datamodel.rst:161 msgid "" "This type has a single value. There is a single object with this value. " "This object is accessed through the built-in name ``NotImplemented``. " @@ -285,11 +285,11 @@ msgstr "" "alternativa, dependiendo del operador). No debe evaluarse en un contexto " "booleano." -#: ../Doc/reference/datamodel.rst:162 +#: ../Doc/reference/datamodel.rst:168 msgid "See :ref:`implementing-the-arithmetic-operations` for more details." msgstr "Vea :ref:`implementing-the-arithmetic-operations` para más detalles." -#: ../Doc/reference/datamodel.rst:166 +#: ../Doc/reference/datamodel.rst:172 msgid "" "Evaluating ``NotImplemented`` in a boolean context is deprecated. While it " "currently evaluates as true, it will emit a :exc:`DeprecationWarning`. It " @@ -300,11 +300,11 @@ msgstr "" "`DeprecationWarning`. Lanzará un :exc:`TypeError` en una versión futura de " "Python." -#: ../Doc/reference/datamodel.rst:179 +#: ../Doc/reference/datamodel.rst:179 ../Doc/reference/datamodel.rst:180 msgid "Ellipsis" msgstr "Elipsis" -#: ../Doc/reference/datamodel.rst:177 +#: ../Doc/reference/datamodel.rst:184 msgid "" "This type has a single value. There is a single object with this value. " "This object is accessed through the literal ``...`` or the built-in name " @@ -314,11 +314,11 @@ msgstr "" "a este objeto a través del literal ``...`` o el nombre incorporado " "``Ellipsis``. Su valor de verdad es verdadero." -#: ../Doc/reference/datamodel.rst:266 +#: ../Doc/reference/datamodel.rst:190 msgid ":class:`numbers.Number`" msgstr ":class:`numbers.Number`" -#: ../Doc/reference/datamodel.rst:184 +#: ../Doc/reference/datamodel.rst:194 msgid "" "These are created by numeric literals and returned as results by arithmetic " "operators and arithmetic built-in functions. Numeric objects are immutable; " @@ -333,7 +333,7 @@ msgstr "" "matemáticos, pero están sujetos a las limitaciones de la representación " "numérica en las computadoras." -#: ../Doc/reference/datamodel.rst:190 +#: ../Doc/reference/datamodel.rst:200 #, fuzzy msgid "" "The string representations of the numeric classes, computed by :meth:" @@ -343,7 +343,7 @@ msgstr "" "Las representaciones de cadena de las clases numéricas, calculadas por :meth:" "`__repr__` y :meth:`__str__`, tienen las siguientes propiedades:" -#: ../Doc/reference/datamodel.rst:194 +#: ../Doc/reference/datamodel.rst:204 msgid "" "They are valid numeric literals which, when passed to their class " "constructor, produce an object having the value of the original numeric." @@ -351,11 +351,11 @@ msgstr "" "Son literales numéricos válidos que, cuando se pasan a su constructor de " "clase, producen un objeto que tiene el valor del numérico original." -#: ../Doc/reference/datamodel.rst:198 +#: ../Doc/reference/datamodel.rst:208 msgid "The representation is in base 10, when possible." msgstr "La representación está en base 10, cuando sea posible." -#: ../Doc/reference/datamodel.rst:200 +#: ../Doc/reference/datamodel.rst:210 msgid "" "Leading zeros, possibly excepting a single zero before a decimal point, are " "not shown." @@ -363,7 +363,7 @@ msgstr "" "Los ceros iniciales, posiblemente excepto un solo cero antes de un punto " "decimal, no se muestran." -#: ../Doc/reference/datamodel.rst:203 +#: ../Doc/reference/datamodel.rst:213 msgid "" "Trailing zeros, possibly excepting a single zero after a decimal point, are " "not shown." @@ -371,11 +371,11 @@ msgstr "" "Los ceros finales, posiblemente excepto un solo cero después de un punto " "decimal, no se muestran." -#: ../Doc/reference/datamodel.rst:206 +#: ../Doc/reference/datamodel.rst:216 msgid "A sign is shown only when the number is negative." msgstr "Solo se muestra un signo cuando el número es negativo." -#: ../Doc/reference/datamodel.rst:208 +#: ../Doc/reference/datamodel.rst:218 msgid "" "Python distinguishes between integers, floating point numbers, and complex " "numbers:" @@ -383,11 +383,11 @@ msgstr "" "Python distingue entre números enteros, números de coma flotante y números " "complejos:" -#: ../Doc/reference/datamodel.rst:241 +#: ../Doc/reference/datamodel.rst:223 msgid ":class:`numbers.Integral`" msgstr ":class:`numbers.Integral`" -#: ../Doc/reference/datamodel.rst:214 +#: ../Doc/reference/datamodel.rst:227 msgid "" "These represent elements from the mathematical set of integers (positive and " "negative)." @@ -395,15 +395,25 @@ msgstr "" "Estos representan elementos del conjunto matemático de números enteros " "(positivo y negativo)." -#: ../Doc/reference/datamodel.rst:217 +#: ../Doc/reference/datamodel.rst:233 +msgid "" +"The rules for integer representation are intended to give the most " +"meaningful interpretation of shift and mask operations involving negative " +"integers." +msgstr "" +"Las reglas para la representación de enteros están destinadas a dar la " +"interpretación más significativa de las operaciones de cambio y máscara que " +"involucran enteros negativos." + +#: ../Doc/reference/datamodel.rst:236 msgid "There are two types of integers:" msgstr "Hay dos tipos de números enteros:" -#: ../Doc/reference/datamodel.rst:224 +#: ../Doc/reference/datamodel.rst:243 msgid "Integers (:class:`int`)" msgstr "Enteros (:class:`int`)" -#: ../Doc/reference/datamodel.rst:220 +#: ../Doc/reference/datamodel.rst:239 msgid "" "These represent numbers in an unlimited range, subject to available " "(virtual) memory only. For the purpose of shift and mask operations, a " @@ -417,11 +427,11 @@ msgstr "" "una variante del complemento de 2 que da la ilusión de una cadena de " "caracteres infinita de bits con signo que se extiende hacia la izquierda." -#: ../Doc/reference/datamodel.rst:236 +#: ../Doc/reference/datamodel.rst:256 msgid "Booleans (:class:`bool`)" msgstr "Booleanos (:class:`bool`)" -#: ../Doc/reference/datamodel.rst:232 +#: ../Doc/reference/datamodel.rst:251 msgid "" "These represent the truth values False and True. The two objects " "representing the values ``False`` and ``True`` are the only Boolean objects. " @@ -438,21 +448,11 @@ msgstr "" "caracteres, las cadenas de caracteres ``\"False\"`` o ``\"True\"`` son " "retornadas respectivamente." -#: ../Doc/reference/datamodel.rst:240 -msgid "" -"The rules for integer representation are intended to give the most " -"meaningful interpretation of shift and mask operations involving negative " -"integers." -msgstr "" -"Las reglas para la representación de enteros están destinadas a dar la " -"interpretación más significativa de las operaciones de cambio y máscara que " -"involucran enteros negativos." - -#: ../Doc/reference/datamodel.rst:256 +#: ../Doc/reference/datamodel.rst:259 msgid ":class:`numbers.Real` (:class:`float`)" msgstr ":class:`numbers.Real` (:class:`float`)" -#: ../Doc/reference/datamodel.rst:250 +#: ../Doc/reference/datamodel.rst:267 msgid "" "These represent machine-level double precision floating point numbers. You " "are at the mercy of the underlying machine architecture (and C or Java " @@ -471,11 +471,11 @@ msgstr "" "objetos en Python, por lo que no hay razón para complicar el lenguaje con " "dos tipos de números de coma flotante." -#: ../Doc/reference/datamodel.rst:266 +#: ../Doc/reference/datamodel.rst:277 msgid ":class:`numbers.Complex` (:class:`complex`)" msgstr ":class:`numbers.Complex` (:class:`complex`)" -#: ../Doc/reference/datamodel.rst:263 +#: ../Doc/reference/datamodel.rst:283 msgid "" "These represent complex numbers as a pair of machine-level double precision " "floating point numbers. The same caveats apply as for floating point " @@ -488,11 +488,11 @@ msgstr "" "número complejo ``z`` se pueden obtener a través de los atributos de solo " "lectura ``z.real`` y ``z.imag``." -#: ../Doc/reference/datamodel.rst:383 +#: ../Doc/reference/datamodel.rst:290 msgid "Sequences" msgstr "Secuencias" -#: ../Doc/reference/datamodel.rst:276 +#: ../Doc/reference/datamodel.rst:299 msgid "" "These represent finite ordered sets indexed by non-negative numbers. The " "built-in function :func:`len` returns the number of items of a sequence. " @@ -505,7 +505,7 @@ msgstr "" "índices contiene los números 0, 1, ..., *n*-1. El elemento *i* de la " "secuencia *a* se selecciona mediante ``a[i]``." -#: ../Doc/reference/datamodel.rst:283 +#: ../Doc/reference/datamodel.rst:306 msgid "" "Sequences also support slicing: ``a[i:j]`` selects all items with index *k* " "such that *i* ``<=`` *k* ``<`` *j*. When used as an expression, a slice is " @@ -518,7 +518,7 @@ msgstr "" "implica que el conjunto de índices se vuelve a enumerar para que comience en " "0." -#: ../Doc/reference/datamodel.rst:288 +#: ../Doc/reference/datamodel.rst:311 msgid "" "Some sequences also support \"extended slicing\" with a third \"step\" " "parameter: ``a[i:j:k]`` selects all items of *a* with index *x* where ``x = " @@ -529,15 +529,15 @@ msgstr "" "índice *x* donde ``x = i + n*k``, *n* ``>=`` ``0`` y *i* ``<=`` *x* ``<`` " "*j*." -#: ../Doc/reference/datamodel.rst:292 +#: ../Doc/reference/datamodel.rst:315 msgid "Sequences are distinguished according to their mutability:" msgstr "Las secuencias se distinguen según su mutabilidad:" -#: ../Doc/reference/datamodel.rst:349 +#: ../Doc/reference/datamodel.rst:319 msgid "Immutable sequences" msgstr "Secuencias inmutables" -#: ../Doc/reference/datamodel.rst:299 +#: ../Doc/reference/datamodel.rst:325 msgid "" "An object of an immutable sequence type cannot change once it is created. " "(If the object contains references to other objects, these other objects may " @@ -550,15 +550,15 @@ msgstr "" "objetos a los que hace referencia directamente un objeto inmutable no puede " "cambiar)." -#: ../Doc/reference/datamodel.rst:304 +#: ../Doc/reference/datamodel.rst:330 msgid "The following types are immutable sequences:" msgstr "Los siguientes tipos son secuencias inmutables:" -#: ../Doc/reference/datamodel.rst:327 +#: ../Doc/reference/datamodel.rst:353 msgid "Strings" msgstr "Cadenas de caracteres" -#: ../Doc/reference/datamodel.rst:317 +#: ../Doc/reference/datamodel.rst:343 msgid "" "A string is a sequence of values that represent Unicode code points. All the " "code points in the range ``U+0000 - U+10FFFF`` can be represented in a " @@ -572,11 +572,11 @@ msgid "" "to achieve the opposite." msgstr "" -#: ../Doc/reference/datamodel.rst:340 +#: ../Doc/reference/datamodel.rst:366 msgid "Tuples" msgstr "Tuplas" -#: ../Doc/reference/datamodel.rst:335 +#: ../Doc/reference/datamodel.rst:361 msgid "" "The items of a tuple are arbitrary Python objects. Tuples of two or more " "items are formed by comma-separated lists of expressions. A tuple of one " @@ -592,11 +592,11 @@ msgstr "" "que los paréntesis deben ser utilizables para agrupar expresiones). Una " "tupla vacía puede estar formada por un par de paréntesis vacío." -#: ../Doc/reference/datamodel.rst:349 +#: ../Doc/reference/datamodel.rst:376 msgid "Bytes" msgstr "Bytes" -#: ../Doc/reference/datamodel.rst:345 +#: ../Doc/reference/datamodel.rst:371 msgid "" "A bytes object is an immutable array. The items are 8-bit bytes, " "represented by integers in the range 0 <= x < 256. Bytes literals (like " @@ -611,11 +611,11 @@ msgstr "" "decodificar en cadenas de caracteres a través del método :meth:`~bytes." "decode`." -#: ../Doc/reference/datamodel.rst:383 +#: ../Doc/reference/datamodel.rst:379 msgid "Mutable sequences" msgstr "Secuencias mutables" -#: ../Doc/reference/datamodel.rst:359 +#: ../Doc/reference/datamodel.rst:388 msgid "" "Mutable sequences can be changed after they are created. The subscription " "and slicing notations can be used as the target of assignment and :keyword:" @@ -625,15 +625,21 @@ msgstr "" "anotaciones de suscripción y segmentación se pueden utilizar como el " "objetivo de asignaciones y declaraciones :keyword:`del` (eliminar)." -#: ../Doc/reference/datamodel.rst:363 +#: ../Doc/reference/datamodel.rst:396 +msgid "" +"The :mod:`collections` and :mod:`array` module provide additional examples " +"of mutable sequence types." +msgstr "" + +#: ../Doc/reference/datamodel.rst:399 msgid "There are currently two intrinsic mutable sequence types:" msgstr "Actualmente hay dos tipos intrínsecos de secuencias mutable:" -#: ../Doc/reference/datamodel.rst:370 +#: ../Doc/reference/datamodel.rst:406 msgid "Lists" msgstr "Listas" -#: ../Doc/reference/datamodel.rst:368 +#: ../Doc/reference/datamodel.rst:404 msgid "" "The items of a list are arbitrary Python objects. Lists are formed by " "placing a comma-separated list of expressions in square brackets. (Note that " @@ -644,11 +650,11 @@ msgstr "" "corchetes. (Tome en cuenta que no hay casos especiales necesarios para " "formar listas de longitud 0 o 1.)" -#: ../Doc/reference/datamodel.rst:378 +#: ../Doc/reference/datamodel.rst:415 msgid "Byte Arrays" msgstr "Colecciones de bytes" -#: ../Doc/reference/datamodel.rst:375 +#: ../Doc/reference/datamodel.rst:411 msgid "" "A bytearray object is a mutable array. They are created by the built-in :" "func:`bytearray` constructor. Aside from being mutable (and hence " @@ -660,19 +666,11 @@ msgstr "" "inquebrantable), las colecciones de bytes proporcionan la misma interfaz y " "funcionalidad que los objetos inmutables :class:`bytes`." -#: ../Doc/reference/datamodel.rst:382 -msgid "" -"The extension module :mod:`array` provides an additional example of a " -"mutable sequence type, as does the :mod:`collections` module." -msgstr "" -"El módulo de extensión :mod:`array` proporciona un ejemplo adicional de un " -"tipo de secuencia mutable, al igual que el módulo :mod:`collections`." - -#: ../Doc/reference/datamodel.rst:417 +#: ../Doc/reference/datamodel.rst:418 msgid "Set types" msgstr "Tipos de conjuntos" -#: ../Doc/reference/datamodel.rst:390 +#: ../Doc/reference/datamodel.rst:424 msgid "" "These represent unordered, finite sets of unique, immutable objects. As " "such, they cannot be indexed by any subscript. However, they can be iterated " @@ -689,7 +687,7 @@ msgstr "" "cálculo de operaciones matemáticas como intersección, unión, diferencia y " "diferencia simétrica." -#: ../Doc/reference/datamodel.rst:397 +#: ../Doc/reference/datamodel.rst:431 msgid "" "For set elements, the same immutability rules apply as for dictionary keys. " "Note that numeric types obey the normal rules for numeric comparison: if two " @@ -702,15 +700,15 @@ msgstr "" "comparan igual (por ejemplo, ``1`` y ``1.0``), solo uno de ellos puede estar " "contenido en un conjunto." -#: ../Doc/reference/datamodel.rst:402 +#: ../Doc/reference/datamodel.rst:436 msgid "There are currently two intrinsic set types:" msgstr "Actualmente hay dos tipos de conjuntos intrínsecos:" -#: ../Doc/reference/datamodel.rst:409 +#: ../Doc/reference/datamodel.rst:445 msgid "Sets" msgstr "Conjuntos" -#: ../Doc/reference/datamodel.rst:407 +#: ../Doc/reference/datamodel.rst:442 msgid "" "These represent a mutable set. They are created by the built-in :func:`set` " "constructor and can be modified afterwards by several methods, such as :meth:" @@ -720,11 +718,11 @@ msgstr "" "incorporado :func:`set` y puede ser modificado posteriormente por varios " "métodos, como :meth:`~set.add`." -#: ../Doc/reference/datamodel.rst:417 +#: ../Doc/reference/datamodel.rst:454 msgid "Frozen sets" msgstr "Conjuntos congelados" -#: ../Doc/reference/datamodel.rst:414 +#: ../Doc/reference/datamodel.rst:450 msgid "" "These represent an immutable set. They are created by the built-in :func:" "`frozenset` constructor. As a frozenset is immutable and :term:`hashable`, " @@ -735,11 +733,11 @@ msgstr "" "term:`hashable`, se puede usar nuevamente como un elemento de otro conjunto " "o como una clave de un diccionario." -#: ../Doc/reference/datamodel.rst:464 +#: ../Doc/reference/datamodel.rst:457 msgid "Mappings" msgstr "Mapeos" -#: ../Doc/reference/datamodel.rst:425 +#: ../Doc/reference/datamodel.rst:464 msgid "" "These represent finite sets of objects indexed by arbitrary index sets. The " "subscript notation ``a[k]`` selects the item indexed by ``k`` from the " @@ -754,15 +752,15 @@ msgstr "" "`del`. La función incorporada :func:`len` retorna el número de elementos en " "un mapeo." -#: ../Doc/reference/datamodel.rst:431 +#: ../Doc/reference/datamodel.rst:470 msgid "There is currently a single intrinsic mapping type:" msgstr "Actualmente hay un único tipo de mapeo intrínseco:" -#: ../Doc/reference/datamodel.rst:464 +#: ../Doc/reference/datamodel.rst:474 msgid "Dictionaries" msgstr "Diccionarios" -#: ../Doc/reference/datamodel.rst:436 +#: ../Doc/reference/datamodel.rst:478 msgid "" "These represent finite sets of objects indexed by nearly arbitrary values. " "The only types of values not acceptable as keys are values containing lists " @@ -783,7 +781,7 @@ msgstr "" "números se comparan igual (por ejemplo, ``1`` y ``1.0``) entonces se pueden " "usar indistintamente para indexar la misma entrada del diccionario." -#: ../Doc/reference/datamodel.rst:445 +#: ../Doc/reference/datamodel.rst:487 msgid "" "Dictionaries preserve insertion order, meaning that keys will be produced in " "the same order they were added sequentially over the dictionary. Replacing " @@ -796,7 +794,7 @@ msgstr "" "embargo, eliminar una clave y volver a insertarla la agregará al final en " "lugar de mantener su lugar anterior." -#: ../Doc/reference/datamodel.rst:450 +#: ../Doc/reference/datamodel.rst:492 msgid "" "Dictionaries are mutable; they can be created by the ``{...}`` notation (see " "section :ref:`dict`)." @@ -804,7 +802,7 @@ msgstr "" "Los diccionarios son mutables; pueden ser creados por la notación ``{...}`` " "(vea la sección :ref:`dict`)." -#: ../Doc/reference/datamodel.rst:457 +#: ../Doc/reference/datamodel.rst:499 msgid "" "The extension modules :mod:`dbm.ndbm` and :mod:`dbm.gnu` provide additional " "examples of mapping types, as does the :mod:`collections` module." @@ -813,7 +811,7 @@ msgstr "" "ejemplos adicionales de tipos de mapeo, al igual que el módulo :mod:" "`collections`." -#: ../Doc/reference/datamodel.rst:461 +#: ../Doc/reference/datamodel.rst:503 msgid "" "Dictionaries did not preserve insertion order in versions of Python before " "3.6. In CPython 3.6, insertion order was preserved, but it was considered an " @@ -824,11 +822,11 @@ msgstr "" "pero se consideró un detalle de implementación en ese momento en lugar de " "una garantía de idioma." -#: ../Doc/reference/datamodel.rst:726 +#: ../Doc/reference/datamodel.rst:510 msgid "Callable types" msgstr "Tipos invocables" -#: ../Doc/reference/datamodel.rst:473 +#: ../Doc/reference/datamodel.rst:518 msgid "" "These are the types to which the function call operation (see section :ref:" "`calls`) can be applied:" @@ -836,11 +834,11 @@ msgstr "" "Estos son los tipos a los que la operación de llamada de función (vea la " "sección :ref:`calls`) puede ser aplicado:" -#: ../Doc/reference/datamodel.rst:579 +#: ../Doc/reference/datamodel.rst:523 msgid "User-defined functions" msgstr "Funciones definidas por el usuario" -#: ../Doc/reference/datamodel.rst:482 +#: ../Doc/reference/datamodel.rst:530 msgid "" "A user-defined function object is created by a function definition (see " "section :ref:`function`). It should be called with an argument list " @@ -851,24 +849,24 @@ msgstr "" "argumentos que contenga el mismo número de elementos que la lista de " "parámetros formales de la función." -#: ../Doc/reference/datamodel.rst:487 ../Doc/reference/datamodel.rst:841 +#: ../Doc/reference/datamodel.rst:535 ../Doc/reference/datamodel.rst:926 msgid "Special attributes:" msgstr "Atributos especiales:" -#: ../Doc/reference/datamodel.rst:505 +#: ../Doc/reference/datamodel.rst:554 msgid "Attribute" msgstr "Atributo" -#: ../Doc/reference/datamodel.rst:505 +#: ../Doc/reference/datamodel.rst:554 msgid "Meaning" msgstr "Significado" -#: ../Doc/reference/datamodel.rst:507 ../Doc/reference/datamodel.rst:762 -#: ../Doc/reference/datamodel.rst:857 +#: ../Doc/reference/datamodel.rst:556 ../Doc/reference/datamodel.rst:843 +#: ../Doc/reference/datamodel.rst:942 msgid ":attr:`__doc__`" msgstr ":attr:`__doc__`" -#: ../Doc/reference/datamodel.rst:507 +#: ../Doc/reference/datamodel.rst:556 msgid "" "The function's documentation string, or ``None`` if unavailable; not " "inherited by subclasses." @@ -876,35 +874,35 @@ msgstr "" "El texto de documentación de la función, o ``None`` si no está disponible; " "no heredado por subclases." -#: ../Doc/reference/datamodel.rst:507 ../Doc/reference/datamodel.rst:512 -#: ../Doc/reference/datamodel.rst:515 ../Doc/reference/datamodel.rst:520 -#: ../Doc/reference/datamodel.rst:524 ../Doc/reference/datamodel.rst:530 -#: ../Doc/reference/datamodel.rst:540 ../Doc/reference/datamodel.rst:551 -#: ../Doc/reference/datamodel.rst:561 +#: ../Doc/reference/datamodel.rst:556 ../Doc/reference/datamodel.rst:561 +#: ../Doc/reference/datamodel.rst:564 ../Doc/reference/datamodel.rst:569 +#: ../Doc/reference/datamodel.rst:573 ../Doc/reference/datamodel.rst:579 +#: ../Doc/reference/datamodel.rst:589 ../Doc/reference/datamodel.rst:600 +#: ../Doc/reference/datamodel.rst:610 ../Doc/reference/datamodel.rst:613 msgid "Writable" msgstr "Escribible" -#: ../Doc/reference/datamodel.rst:512 +#: ../Doc/reference/datamodel.rst:561 msgid ":attr:`~definition.\\ __name__`" msgstr ":attr:`~definition.\\ __name__`" -#: ../Doc/reference/datamodel.rst:512 +#: ../Doc/reference/datamodel.rst:561 msgid "The function's name." msgstr "El nombre de la función." -#: ../Doc/reference/datamodel.rst:515 +#: ../Doc/reference/datamodel.rst:564 msgid ":attr:`~definition.\\ __qualname__`" msgstr ":attr:`~definition.\\ __qualname__`" -#: ../Doc/reference/datamodel.rst:515 +#: ../Doc/reference/datamodel.rst:564 msgid "The function's :term:`qualified name`." msgstr "Las funciones :term:`qualified name`." -#: ../Doc/reference/datamodel.rst:520 ../Doc/reference/datamodel.rst:847 +#: ../Doc/reference/datamodel.rst:569 ../Doc/reference/datamodel.rst:932 msgid ":attr:`__module__`" msgstr ":attr:`__module__`" -#: ../Doc/reference/datamodel.rst:520 +#: ../Doc/reference/datamodel.rst:569 msgid "" "The name of the module the function was defined in, or ``None`` if " "unavailable." @@ -912,11 +910,11 @@ msgstr "" "El nombre del módulo en el que se definió la función, o ``None`` si no está " "disponible." -#: ../Doc/reference/datamodel.rst:524 +#: ../Doc/reference/datamodel.rst:573 msgid ":attr:`__defaults__`" msgstr ":attr:`__defaults__`" -#: ../Doc/reference/datamodel.rst:524 +#: ../Doc/reference/datamodel.rst:573 msgid "" "A tuple containing default argument values for those arguments that have " "defaults, or ``None`` if no arguments have a default value." @@ -925,19 +923,19 @@ msgstr "" "argumentos que tienen valores predeterminados, o ``None`` si ningún " "argumento tiene un valor predeterminado." -#: ../Doc/reference/datamodel.rst:530 +#: ../Doc/reference/datamodel.rst:579 msgid ":attr:`__code__`" msgstr ":attr:`__code__`" -#: ../Doc/reference/datamodel.rst:530 +#: ../Doc/reference/datamodel.rst:579 msgid "The code object representing the compiled function body." msgstr "El objeto de código que representa el cuerpo de la función compilada." -#: ../Doc/reference/datamodel.rst:533 +#: ../Doc/reference/datamodel.rst:582 msgid ":attr:`__globals__`" msgstr ":attr:`__globals__`" -#: ../Doc/reference/datamodel.rst:533 +#: ../Doc/reference/datamodel.rst:582 msgid "" "A reference to the dictionary that holds the function's global variables --- " "the global namespace of the module in which the function was defined." @@ -946,23 +944,23 @@ msgstr "" "función --- el espacio de nombres global del módulo en el que se definió la " "función." -#: ../Doc/reference/datamodel.rst:533 ../Doc/reference/datamodel.rst:544 +#: ../Doc/reference/datamodel.rst:582 ../Doc/reference/datamodel.rst:593 msgid "Read-only" msgstr "Solo lectura" -#: ../Doc/reference/datamodel.rst:540 ../Doc/reference/datamodel.rst:850 +#: ../Doc/reference/datamodel.rst:589 ../Doc/reference/datamodel.rst:935 msgid ":attr:`~object.__dict__`" msgstr ":attr:`~object.__dict__`" -#: ../Doc/reference/datamodel.rst:540 +#: ../Doc/reference/datamodel.rst:589 msgid "The namespace supporting arbitrary function attributes." msgstr "El espacio de nombres que admite atributos de funciones arbitrarias." -#: ../Doc/reference/datamodel.rst:544 +#: ../Doc/reference/datamodel.rst:593 msgid ":attr:`__closure__`" msgstr ":attr:`__closure__`" -#: ../Doc/reference/datamodel.rst:544 +#: ../Doc/reference/datamodel.rst:593 msgid "" "``None`` or a tuple of cells that contain bindings for the function's free " "variables. See below for information on the ``cell_contents`` attribute." @@ -971,12 +969,12 @@ msgstr "" "libres de la función. Vea a continuación para obtener información sobre el " "atributo ``cell_contents``." -#: ../Doc/reference/datamodel.rst:551 ../Doc/reference/datamodel.rst:777 -#: ../Doc/reference/datamodel.rst:864 +#: ../Doc/reference/datamodel.rst:600 ../Doc/reference/datamodel.rst:858 +#: ../Doc/reference/datamodel.rst:949 msgid ":attr:`__annotations__`" msgstr ":attr:`__annotations__`" -#: ../Doc/reference/datamodel.rst:551 +#: ../Doc/reference/datamodel.rst:600 msgid "" "A dict containing annotations of parameters. The keys of the dict are the " "parameter names, and ``'return'`` for the return annotation, if provided. " @@ -988,17 +986,28 @@ msgstr "" "retorno, si se proporciona. Para más información sobre trabajar con este " "atributo, ve :ref:`annotations-howto`." -#: ../Doc/reference/datamodel.rst:561 +#: ../Doc/reference/datamodel.rst:610 msgid ":attr:`__kwdefaults__`" msgstr ":attr:`__kwdefaults__`" -#: ../Doc/reference/datamodel.rst:561 +#: ../Doc/reference/datamodel.rst:610 msgid "A dict containing defaults for keyword-only parameters." msgstr "" "Un diccionario que contiene valores predeterminados para parámetros de solo " "palabras clave." -#: ../Doc/reference/datamodel.rst:565 +#: ../Doc/reference/datamodel.rst:613 ../Doc/reference/datamodel.rst:954 +#, fuzzy +msgid ":attr:`__type_params__`" +msgstr ":attr:`__name__`" + +#: ../Doc/reference/datamodel.rst:613 +msgid "" +"A tuple containing the :ref:`type parameters ` of a :ref:" +"`generic function `." +msgstr "" + +#: ../Doc/reference/datamodel.rst:620 msgid "" "Most of the attributes labelled \"Writable\" check the type of the assigned " "value." @@ -1006,7 +1015,7 @@ msgstr "" "La mayoría de los atributos etiquetados \"Escribible\" verifican el tipo del " "valor asignado." -#: ../Doc/reference/datamodel.rst:567 +#: ../Doc/reference/datamodel.rst:622 msgid "" "Function objects also support getting and setting arbitrary attributes, " "which can be used, for example, to attach metadata to functions. Regular " @@ -1023,7 +1032,7 @@ msgstr "" "definidas por el usuario. Los atributos de función en funciones integradas " "pueden ser compatibles en el futuro.*" -#: ../Doc/reference/datamodel.rst:573 +#: ../Doc/reference/datamodel.rst:628 msgid "" "A cell object has the attribute ``cell_contents``. This can be used to get " "the value of the cell, as well as set the value." @@ -1031,7 +1040,7 @@ msgstr "" "Un objeto de celda tiene el atributo ``cell_contents``. Esto se puede usar " "para obtener el valor de la celda, así como para establecer el valor." -#: ../Doc/reference/datamodel.rst:576 +#: ../Doc/reference/datamodel.rst:631 msgid "" "Additional information about a function's definition can be retrieved from " "its code object; see the description of internal types below. The :data:" @@ -1042,11 +1051,11 @@ msgstr "" "continuación. El tipo :data:`cell ` puede ser accedido en el " "módulo :mod:`types`." -#: ../Doc/reference/datamodel.rst:642 +#: ../Doc/reference/datamodel.rst:638 msgid "Instance methods" msgstr "Métodos de instancia" -#: ../Doc/reference/datamodel.rst:587 +#: ../Doc/reference/datamodel.rst:645 msgid "" "An instance method object combines a class, a class instance and any " "callable object (normally a user-defined function)." @@ -1054,7 +1063,7 @@ msgstr "" "Un objeto de método de instancia combina una clase, una instancia de clase y " "cualquier objeto invocable (normalmente una función definida por el usuario)." -#: ../Doc/reference/datamodel.rst:597 +#: ../Doc/reference/datamodel.rst:655 msgid "" "Special read-only attributes: :attr:`__self__` is the class instance " "object, :attr:`__func__` is the function object; :attr:`__doc__` is the " @@ -1070,7 +1079,7 @@ msgstr "" "que ``__func__.__name__``); :attr:`__module__` es el nombre del módulo en el " "que el método fue definido, o ``None`` si no se encuentra disponible." -#: ../Doc/reference/datamodel.rst:603 +#: ../Doc/reference/datamodel.rst:661 msgid "" "Methods also support accessing (but not setting) the arbitrary function " "attributes on the underlying function object." @@ -1078,7 +1087,7 @@ msgstr "" "Los métodos también admiten obtener (más no establecer) los atributos " "arbitrarios de la función en el objeto de función subyacente." -#: ../Doc/reference/datamodel.rst:606 +#: ../Doc/reference/datamodel.rst:664 msgid "" "User-defined method objects may be created when getting an attribute of a " "class (perhaps via an instance of that class), if that attribute is a user-" @@ -1089,7 +1098,7 @@ msgstr "" "clase), si tal atributo es el objeto de una función definida por el usuario " "o el objeto del método de una clase." -#: ../Doc/reference/datamodel.rst:610 +#: ../Doc/reference/datamodel.rst:668 msgid "" "When an instance method object is created by retrieving a user-defined " "function object from a class via one of its instances, its :attr:`__self__` " @@ -1102,7 +1111,7 @@ msgstr "" "método se dice que está enlazado. El nuevo atributo de método :attr:" "`__func__` es el objeto de función original." -#: ../Doc/reference/datamodel.rst:616 +#: ../Doc/reference/datamodel.rst:674 msgid "" "When an instance method object is created by retrieving a class method " "object from a class or instance, its :attr:`__self__` attribute is the class " @@ -1114,7 +1123,7 @@ msgstr "" "`__self__` es la clase misma, y su atributo :attr:`__func__` es el objeto de " "función subyacente al método de la clase." -#: ../Doc/reference/datamodel.rst:621 +#: ../Doc/reference/datamodel.rst:679 msgid "" "When an instance method object is called, the underlying function (:attr:" "`__func__`) is called, inserting the class instance (:attr:`__self__`) in " @@ -1129,7 +1138,7 @@ msgstr "" "y ``x`` es una instancia de :class:`C`, invocar ``x.f(1)`` es equivalente a " "invocar ``C.f(x, 1)``." -#: ../Doc/reference/datamodel.rst:628 +#: ../Doc/reference/datamodel.rst:686 msgid "" "When an instance method object is derived from a class method object, the " "\"class instance\" stored in :attr:`__self__` will actually be the class " @@ -1141,7 +1150,7 @@ msgstr "" "será la clase misma, de manera que invocar ya sea ``x.f(1)`` o ``C.f(1)`` es " "equivalente a invocar ``f(C,1)`` donde ``f`` es la función subyacente." -#: ../Doc/reference/datamodel.rst:633 +#: ../Doc/reference/datamodel.rst:691 msgid "" "Note that the transformation from function object to instance method object " "happens each time the attribute is retrieved from the instance. In some " @@ -1164,11 +1173,11 @@ msgstr "" "enlazados; esto ocurre *únicamente* cuando la función es un atributo de la " "clase." -#: ../Doc/reference/datamodel.rst:657 +#: ../Doc/reference/datamodel.rst:704 msgid "Generator functions" msgstr "Funciones generadoras" -#: ../Doc/reference/datamodel.rst:649 +#: ../Doc/reference/datamodel.rst:710 #, fuzzy msgid "" "A function or method which uses the :keyword:`yield` statement (see section :" @@ -1191,11 +1200,11 @@ msgstr "" "una excepción :exc:`StopIteration` es lanzada y el iterador habrá llegado al " "final del conjunto de valores a ser retornados." -#: ../Doc/reference/datamodel.rst:667 +#: ../Doc/reference/datamodel.rst:722 msgid "Coroutine functions" msgstr "Funciones de corrutina" -#: ../Doc/reference/datamodel.rst:663 +#: ../Doc/reference/datamodel.rst:727 msgid "" "A function or method which is defined using :keyword:`async def` is called " "a :dfn:`coroutine function`. Such a function, when called, returns a :term:" @@ -1209,11 +1218,11 @@ msgstr "" "`await`, así como declaraciones :keyword:`async with` y :keyword:`async " "for`. Ver también la sección :ref:`coroutine-objects`." -#: ../Doc/reference/datamodel.rst:687 +#: ../Doc/reference/datamodel.rst:735 msgid "Asynchronous generator functions" msgstr "Funciones generadoras asincrónicas" -#: ../Doc/reference/datamodel.rst:674 +#: ../Doc/reference/datamodel.rst:741 #, fuzzy msgid "" "A function or method which is defined using :keyword:`async def` and which " @@ -1228,7 +1237,7 @@ msgstr "" "iterador asincrónico que puede ser utilizado en una declaración :keyword:" "`async for` para ejecutar el cuerpo de la función." -#: ../Doc/reference/datamodel.rst:680 +#: ../Doc/reference/datamodel.rst:747 #, fuzzy msgid "" "Calling the asynchronous iterator's :meth:`aiterator.__anext__ ` as invoked either by the :keyword:" @@ -1352,7 +1361,7 @@ msgstr "" "utilizado para iniciar el módulo (ya que no es necesario una vez que la " "inicialización es realizada)." -#: ../Doc/reference/datamodel.rst:745 +#: ../Doc/reference/datamodel.rst:826 msgid "" "Attribute assignment updates the module's namespace dictionary, e.g., ``m.x " "= 1`` is equivalent to ``m.__dict__[\"x\"] = 1``." @@ -1360,28 +1369,28 @@ msgstr "" "La asignación de atributos actualiza el diccionario de espacio de nombres " "del módulo, p. ej., ``m.x = 1`` es equivalente a ``m.__dict__[“x”] = 1``." -#: ../Doc/reference/datamodel.rst:755 +#: ../Doc/reference/datamodel.rst:836 msgid "Predefined (writable) attributes:" msgstr "Atributos predefinidos (escribibles):" -#: ../Doc/reference/datamodel.rst:758 +#: ../Doc/reference/datamodel.rst:839 msgid ":attr:`__name__`" msgstr ":attr:`__name__`" -#: ../Doc/reference/datamodel.rst:758 +#: ../Doc/reference/datamodel.rst:839 msgid "The module's name." msgstr "El nombre del módulo." -#: ../Doc/reference/datamodel.rst:761 +#: ../Doc/reference/datamodel.rst:842 msgid "The module's documentation string, or ``None`` if unavailable." msgstr "" "El texto de documentación del módulo, o ``None`` si no está disponible." -#: ../Doc/reference/datamodel.rst:771 +#: ../Doc/reference/datamodel.rst:852 msgid ":attr:`__file__`" msgstr ":attr:`__file__`" -#: ../Doc/reference/datamodel.rst:765 +#: ../Doc/reference/datamodel.rst:846 msgid "" "The pathname of the file from which the module was loaded, if it was loaded " "from a file. The :attr:`__file__` attribute may be missing for certain types " @@ -1396,7 +1405,7 @@ msgstr "" "biblioteca compartida, es el nombre de ruta del archivo de la biblioteca " "compartida." -#: ../Doc/reference/datamodel.rst:774 +#: ../Doc/reference/datamodel.rst:855 msgid "" "A dictionary containing :term:`variable annotations ` " "collected during module body execution. For best practices on working with :" @@ -1407,7 +1416,7 @@ msgstr "" "buenas prácticas sobre trabajar con :attr:`__annotations__`, por favor ve :" "ref:`annotations-howto`." -#: ../Doc/reference/datamodel.rst:781 +#: ../Doc/reference/datamodel.rst:862 msgid "" "Special read-only attribute: :attr:`~object.__dict__` is the module's " "namespace as a dictionary object." @@ -1415,7 +1424,7 @@ msgstr "" "El atributo especial de solo lectura :attr:`~object.__dict__` es el espacio " "de nombres del módulo como un objeto de diccionario." -#: ../Doc/reference/datamodel.rst:786 +#: ../Doc/reference/datamodel.rst:867 msgid "" "Because of the way CPython clears module dictionaries, the module dictionary " "will be cleared when the module falls out of scope even if the dictionary " @@ -1428,11 +1437,11 @@ msgstr "" "evitar esto, copie el diccionario o mantenga el módulo cerca mientras usa el " "diccionario directamente." -#: ../Doc/reference/datamodel.rst:864 +#: ../Doc/reference/datamodel.rst:874 msgid "Custom classes" msgstr "Clases personalizadas" -#: ../Doc/reference/datamodel.rst:792 +#: ../Doc/reference/datamodel.rst:876 msgid "" "Custom class types are typically created by class definitions (see section :" "ref:`class`). A class has a namespace implemented by a dictionary object. " @@ -1461,7 +1470,7 @@ msgstr "" "por Python pueden ser encontrados en la documentación correspondiente a la " "versión 2.3 en https://www.python.org/download/releases/2.3/mro/." -#: ../Doc/reference/datamodel.rst:816 +#: ../Doc/reference/datamodel.rst:900 msgid "" "When a class attribute reference (for class :class:`C`, say) would yield a " "class method object, it is transformed into an instance method object whose :" @@ -1480,7 +1489,7 @@ msgstr "" "diferir de los que en realidad están contenidos en su :attr:`~object." "__dict__`." -#: ../Doc/reference/datamodel.rst:826 +#: ../Doc/reference/datamodel.rst:910 msgid "" "Class attribute assignments update the class's dictionary, never the " "dictionary of a base class." @@ -1488,7 +1497,7 @@ msgstr "" "Las asignaciones de atributos de clase actualizan el diccionario de la " "clase, nunca el diccionario de la clase base." -#: ../Doc/reference/datamodel.rst:831 +#: ../Doc/reference/datamodel.rst:915 msgid "" "A class object can be called (see above) to yield a class instance (see " "below)." @@ -1496,27 +1505,27 @@ msgstr "" "Un objeto de clase puede ser invocado (ver arriba) para producir una " "instancia de clase (ver a continuación)." -#: ../Doc/reference/datamodel.rst:844 +#: ../Doc/reference/datamodel.rst:929 msgid ":attr:`~definition.__name__`" msgstr ":attr:`~definition.__name__`" -#: ../Doc/reference/datamodel.rst:844 +#: ../Doc/reference/datamodel.rst:929 msgid "The class name." msgstr "El nombre de la clase." -#: ../Doc/reference/datamodel.rst:847 +#: ../Doc/reference/datamodel.rst:932 msgid "The name of the module in which the class was defined." msgstr "El nombre del módulo en el que se definió la clase." -#: ../Doc/reference/datamodel.rst:850 +#: ../Doc/reference/datamodel.rst:935 msgid "The dictionary containing the class's namespace." msgstr "El diccionario conteniendo el espacio de nombres de la clase." -#: ../Doc/reference/datamodel.rst:854 +#: ../Doc/reference/datamodel.rst:939 msgid ":attr:`~class.__bases__`" msgstr ":attr:`~class.__bases__`" -#: ../Doc/reference/datamodel.rst:853 +#: ../Doc/reference/datamodel.rst:938 msgid "" "A tuple containing the base classes, in the order of their occurrence in the " "base class list." @@ -1524,12 +1533,12 @@ msgstr "" "Una tupla conteniendo las clases de base, en orden de ocurrencia en la lista " "de clase base." -#: ../Doc/reference/datamodel.rst:857 +#: ../Doc/reference/datamodel.rst:942 msgid "The class's documentation string, or ``None`` if undefined." msgstr "" "El texto de documentación de la clase, o ``None`` si no está disponible." -#: ../Doc/reference/datamodel.rst:860 +#: ../Doc/reference/datamodel.rst:945 msgid "" "A dictionary containing :term:`variable annotations ` " "collected during class body execution. For best practices on working with :" @@ -1540,11 +1549,17 @@ msgstr "" "buenas prácticas sobre trabajar con :attr:`__annotations__`, por favor ve :" "ref:`annotations-howto`." -#: ../Doc/reference/datamodel.rst:907 +#: ../Doc/reference/datamodel.rst:952 +msgid "" +"A tuple containing the :ref:`type parameters ` of a :ref:" +"`generic class `." +msgstr "" + +#: ../Doc/reference/datamodel.rst:957 msgid "Class instances" msgstr "Instancias de clase" -#: ../Doc/reference/datamodel.rst:873 +#: ../Doc/reference/datamodel.rst:965 #, fuzzy msgid "" "A class instance is created by calling a class object (see above). A class " @@ -1577,7 +1592,7 @@ msgstr "" "tiene un método :meth:`__getattr__`, éste es llamado para satisfacer la " "búsqueda." -#: ../Doc/reference/datamodel.rst:889 +#: ../Doc/reference/datamodel.rst:981 #, fuzzy msgid "" "Attribute assignments and deletions update the instance's dictionary, never " @@ -1590,7 +1605,7 @@ msgstr "" "meth:`__setattr__` o :meth:`__delattr__`, éste es invocado en lugar de " "actualizar el diccionario de la instancia directamente." -#: ../Doc/reference/datamodel.rst:899 +#: ../Doc/reference/datamodel.rst:991 msgid "" "Class instances can pretend to be numbers, sequences, or mappings if they " "have methods with certain special names. See section :ref:`specialnames`." @@ -1599,7 +1614,7 @@ msgstr "" "tienen métodos con ciertos nombres especiales. Ver sección :ref:" "`specialnames`." -#: ../Doc/reference/datamodel.rst:906 +#: ../Doc/reference/datamodel.rst:998 msgid "" "Special attributes: :attr:`~object.__dict__` is the attribute dictionary; :" "attr:`~instance.__class__` is the instance's class." @@ -1607,11 +1622,11 @@ msgstr "" "Atributos especiales: :attr:`~object.__dict__` es el diccionario de " "atributos; :attr:`~instance.__class__` es la clase de la instancia." -#: ../Doc/reference/datamodel.rst:933 +#: ../Doc/reference/datamodel.rst:1003 msgid "I/O objects (also known as file objects)" msgstr "Objetos E/S (también conocidos como objetos de archivo)" -#: ../Doc/reference/datamodel.rst:923 +#: ../Doc/reference/datamodel.rst:1018 msgid "" "A :term:`file object` represents an open file. Various shortcuts are " "available to create file objects: the :func:`open` built-in function, and " @@ -1625,7 +1640,7 @@ msgstr "" "método de objetos socket :meth:`~socket.makefile` (y quizás por otras " "funciones y métodos proporcionados por módulos de extensión)." -#: ../Doc/reference/datamodel.rst:929 +#: ../Doc/reference/datamodel.rst:1024 msgid "" "The objects ``sys.stdin``, ``sys.stdout`` and ``sys.stderr`` are initialized " "to file objects corresponding to the interpreter's standard input, output " @@ -1638,11 +1653,11 @@ msgstr "" "de texto y por lo tanto siguen la interface definida por la clase abstracta :" "class:`io.TextIOBase`." -#: ../Doc/reference/datamodel.rst:1219 +#: ../Doc/reference/datamodel.rst:1032 msgid "Internal types" msgstr "Tipos internos" -#: ../Doc/reference/datamodel.rst:940 +#: ../Doc/reference/datamodel.rst:1038 msgid "" "A few types used internally by the interpreter are exposed to the user. " "Their definitions may change with future versions of the interpreter, but " @@ -1652,11 +1667,11 @@ msgstr "" "usuario. Sus definiciones pueden cambiar en futuras versiones del " "intérprete, pero son mencionadas aquí para complementar." -#: ../Doc/reference/datamodel.rst:1050 +#: ../Doc/reference/datamodel.rst:1046 msgid "Code objects" msgstr "Objetos de código" -#: ../Doc/reference/datamodel.rst:947 +#: ../Doc/reference/datamodel.rst:1050 msgid "" "Code objects represent *byte-compiled* executable Python code, or :term:" "`bytecode`. The difference between a code object and a function object is " @@ -1678,7 +1693,7 @@ msgstr "" "código son inmutables y no contienen referencias (directas o indirectas) a " "objetos mutables." -#: ../Doc/reference/datamodel.rst:975 +#: ../Doc/reference/datamodel.rst:1078 #, fuzzy msgid "" "Special read-only attributes: :attr:`co_name` gives the function name; :attr:" @@ -1699,9 +1714,10 @@ msgid "" "bytecode; :attr:`co_filename` is the filename from which the code was " "compiled; :attr:`co_firstlineno` is the first line number of the function; :" "attr:`co_lnotab` is a string encoding the mapping from bytecode offsets to " -"line numbers (for details see the source code of the interpreter); :attr:" -"`co_stacksize` is the required stack size; :attr:`co_flags` is an integer " -"encoding a number of flags for the interpreter." +"line numbers (for details see the source code of the interpreter, is " +"deprecated since 3.12 and may be removed in 3.14); :attr:`co_stacksize` is " +"the required stack size; :attr:`co_flags` is an integer encoding a number of " +"flags for the interpreter." msgstr "" "Atributos especiales de solo lectura: :attr:`co_name` da el nombre de la " "función; :attr:`co_argcount` es el número total de argumentos posicionales " @@ -1726,7 +1742,7 @@ msgstr "" "`co_stacksize` es el tamaño de pila requerido; :attr:`co_flags` es un entero " "codificando el número de banderas para el intérprete." -#: ../Doc/reference/datamodel.rst:1000 +#: ../Doc/reference/datamodel.rst:1104 msgid "" "The following flag bits are defined for :attr:`co_flags`: bit ``0x04`` is " "set if the function uses the ``*arguments`` syntax to accept an arbitrary " @@ -1741,7 +1757,7 @@ msgstr "" "argumentos de palabras clave arbitrarios; bit ``0x20`` es establecido si la " "función es un generador." -#: ../Doc/reference/datamodel.rst:1006 +#: ../Doc/reference/datamodel.rst:1110 msgid "" "Future feature declarations (``from __future__ import division``) also use " "bits in :attr:`co_flags` to indicate whether a code object was compiled with " @@ -1756,11 +1772,11 @@ msgstr "" "división futura habilitada; los bits ``0x10`` y ``0x1000`` fueron utilizados " "en versiones previas de Python." -#: ../Doc/reference/datamodel.rst:1012 +#: ../Doc/reference/datamodel.rst:1116 msgid "Other bits in :attr:`co_flags` are reserved for internal use." msgstr "Otros bits en :attr:`co_flags` son reservados para uso interno." -#: ../Doc/reference/datamodel.rst:1016 +#: ../Doc/reference/datamodel.rst:1120 msgid "" "If a code object represents a function, the first item in :attr:`co_consts` " "is the documentation string of the function, or ``None`` if undefined." @@ -1769,13 +1785,13 @@ msgstr "" "`co_consts` es la cadena de documentación de la función, o ``None`` si no " "está definido." -#: ../Doc/reference/datamodel.rst:1021 +#: ../Doc/reference/datamodel.rst:1125 msgid "" "Returns an iterable over the source code positions of each bytecode " "instruction in the code object." msgstr "" -#: ../Doc/reference/datamodel.rst:1024 +#: ../Doc/reference/datamodel.rst:1128 msgid "" "The iterator returns tuples containing the ``(start_line, end_line, " "start_column, end_column)``. The *i-th* tuple corresponds to the position of " @@ -1783,37 +1799,37 @@ msgid "" "is 0-indexed utf-8 byte offsets on the given source line." msgstr "" -#: ../Doc/reference/datamodel.rst:1030 +#: ../Doc/reference/datamodel.rst:1134 msgid "" "This positional information can be missing. A non-exhaustive lists of cases " "where this may happen:" msgstr "" -#: ../Doc/reference/datamodel.rst:1033 +#: ../Doc/reference/datamodel.rst:1137 msgid "Running the interpreter with :option:`-X` ``no_debug_ranges``." msgstr "" -#: ../Doc/reference/datamodel.rst:1034 +#: ../Doc/reference/datamodel.rst:1138 msgid "" "Loading a pyc file compiled while using :option:`-X` ``no_debug_ranges``." msgstr "" -#: ../Doc/reference/datamodel.rst:1035 +#: ../Doc/reference/datamodel.rst:1139 msgid "Position tuples corresponding to artificial instructions." msgstr "" -#: ../Doc/reference/datamodel.rst:1036 +#: ../Doc/reference/datamodel.rst:1140 msgid "" "Line and column numbers that can't be represented due to implementation " "specific limitations." msgstr "" -#: ../Doc/reference/datamodel.rst:1039 +#: ../Doc/reference/datamodel.rst:1143 msgid "" "When this occurs, some or all of the tuple elements can be :const:`None`." msgstr "" -#: ../Doc/reference/datamodel.rst:1045 +#: ../Doc/reference/datamodel.rst:1149 msgid "" "This feature requires storing column positions in code objects which may " "result in a small increase of disk usage of compiled Python files or " @@ -1823,11 +1839,11 @@ msgid "" "environment variable can be used." msgstr "" -#: ../Doc/reference/datamodel.rst:1112 +#: ../Doc/reference/datamodel.rst:1160 msgid "Frame objects" msgstr "Objetos de marco" -#: ../Doc/reference/datamodel.rst:1057 +#: ../Doc/reference/datamodel.rst:1164 msgid "" "Frame objects represent execution frames. They may occur in traceback " "objects (see below), and are also passed to registered trace functions." @@ -1836,7 +1852,7 @@ msgstr "" "objetos de rastreo (ver a continuación), y son también pasados hacia " "funciones de rastreo registradas." -#: ../Doc/reference/datamodel.rst:1068 +#: ../Doc/reference/datamodel.rst:1175 msgid "" "Special read-only attributes: :attr:`f_back` is to the previous stack frame " "(towards the caller), or ``None`` if this is the bottom stack frame; :attr:" @@ -1855,7 +1871,7 @@ msgstr "" "`f_lasti` da la instrucción precisa (éste es un índice dentro de la cadena " "de bytecode del objeto de código)." -#: ../Doc/reference/datamodel.rst:1076 +#: ../Doc/reference/datamodel.rst:1183 msgid "" "Accessing ``f_code`` raises an :ref:`auditing event ` ``object." "__getattr__`` with arguments ``obj`` and ``\"f_code\"``." @@ -1863,7 +1879,7 @@ msgstr "" "Acceder a ``f_code`` lanza un objeto :ref:`evento de auditoría ` " "``.__getattr__`` con argumentos ``obj`` y ``\"f_code\"`` ." -#: ../Doc/reference/datamodel.rst:1085 +#: ../Doc/reference/datamodel.rst:1192 msgid "" "Special writable attributes: :attr:`f_trace`, if not ``None``, is a function " "called for various events during code execution (this is used by the " @@ -1876,7 +1892,7 @@ msgstr "" "por cada una de las líneas fuente - esto puede ser deshabilitado " "estableciendo :attr:`f_trace_lines` a :const:`False`." -#: ../Doc/reference/datamodel.rst:1090 +#: ../Doc/reference/datamodel.rst:1197 msgid "" "Implementations *may* allow per-opcode events to be requested by setting :" "attr:`f_trace_opcodes` to :const:`True`. Note that this may lead to " @@ -1889,7 +1905,7 @@ msgstr "" "intérprete si se levantan excepciones por la función de rastreo escape hacia " "la función que está siendo rastreada." -#: ../Doc/reference/datamodel.rst:1095 +#: ../Doc/reference/datamodel.rst:1202 msgid "" ":attr:`f_lineno` is the current line number of the frame --- writing to this " "from within a trace function jumps to the given line (only for the bottom-" @@ -1902,11 +1918,11 @@ msgstr "" "(*Jump*) (también conocido como *Set Next Statement*) al escribir en " "f_lineno." -#: ../Doc/reference/datamodel.rst:1100 +#: ../Doc/reference/datamodel.rst:1207 msgid "Frame objects support one method:" msgstr "Objetos de marco soportan un método:" -#: ../Doc/reference/datamodel.rst:1104 +#: ../Doc/reference/datamodel.rst:1211 msgid "" "This method clears all references to local variables held by the frame. " "Also, if the frame belonged to a generator, the generator is finalized. " @@ -1919,15 +1935,15 @@ msgstr "" "objetos de marco (por ejemplo al detectar una excepción y almacenando su " "rastro para uso posterior)." -#: ../Doc/reference/datamodel.rst:1110 +#: ../Doc/reference/datamodel.rst:1217 msgid ":exc:`RuntimeError` is raised if the frame is currently executing." msgstr ":exc:`RuntimeError` es lanzado si el marco se encuentra en ejecución." -#: ../Doc/reference/datamodel.rst:1175 +#: ../Doc/reference/datamodel.rst:1225 msgid "Traceback objects" msgstr "Objetos de seguimiento de pila (traceback)" -#: ../Doc/reference/datamodel.rst:1127 +#: ../Doc/reference/datamodel.rst:1238 msgid "" "Traceback objects represent a stack trace of an exception. A traceback " "object is implicitly created when an exception occurs, and may also be " @@ -1938,7 +1954,7 @@ msgstr "" "cuando se da una excepción, y puede ser creada de manera explícita al " "llamar :class:`types.TracebackType`." -#: ../Doc/reference/datamodel.rst:1131 +#: ../Doc/reference/datamodel.rst:1242 msgid "" "For implicitly created tracebacks, when the search for an exception handler " "unwinds the execution stack, at each unwound level a traceback object is " @@ -1955,7 +1971,7 @@ msgstr "" "accesible como el tercer elemento de la tupla retornada por ``sys." "exc_info()``, y como el atributo ``__traceback__`` de la excepción capturada." -#: ../Doc/reference/datamodel.rst:1139 +#: ../Doc/reference/datamodel.rst:1250 msgid "" "When the program contains no suitable handler, the stack trace is written " "(nicely formatted) to the standard error stream; if the interpreter is " @@ -1966,7 +1982,7 @@ msgstr "" "intérprete es interactivo, también se vuelve disponible al usuario como " "``sys.last_traceback``." -#: ../Doc/reference/datamodel.rst:1144 +#: ../Doc/reference/datamodel.rst:1255 msgid "" "For explicitly created tracebacks, it is up to the creator of the traceback " "to determine how the ``tb_next`` attributes should be linked to form a full " @@ -1976,7 +1992,7 @@ msgstr "" "determinar cómo los atributos ``tb_next`` deberían ser ligados para formar " "un trazo de pila completo (*full stack trace*)." -#: ../Doc/reference/datamodel.rst:1154 +#: ../Doc/reference/datamodel.rst:1265 msgid "" "Special read-only attributes: :attr:`tb_frame` points to the execution frame " "of the current level; :attr:`tb_lineno` gives the line number where the " @@ -1993,7 +2009,7 @@ msgstr "" "una declaración :keyword:`try` sin una cláusula de excepción (except) " "correspondiente o con una cláusula *finally*." -#: ../Doc/reference/datamodel.rst:1163 +#: ../Doc/reference/datamodel.rst:1274 msgid "" "Accessing ``tb_frame`` raises an :ref:`auditing event ` ``object." "__getattr__`` with arguments ``obj`` and ``\"tb_frame\"``." @@ -2001,7 +2017,7 @@ msgstr "" "Acceder a ``tb_frame`` lanza un objeto :ref:`evento de auditoría ` " "``.__getattr__`` con argumentos ``obj`` y ``tb_frame``." -#: ../Doc/reference/datamodel.rst:1169 +#: ../Doc/reference/datamodel.rst:1280 msgid "" "Special writable attribute: :attr:`tb_next` is the next level in the stack " "trace (towards the frame where the exception occurred), or ``None`` if there " @@ -2011,7 +2027,7 @@ msgstr "" "trazo de pila (hacia el marco en donde ocurrió la excepción), o ``None`` si " "no existe un siguiente nivel." -#: ../Doc/reference/datamodel.rst:1173 +#: ../Doc/reference/datamodel.rst:1284 msgid "" "Traceback objects can now be explicitly instantiated from Python code, and " "the ``tb_next`` attribute of existing instances can be updated." @@ -2020,11 +2036,11 @@ msgstr "" "explícita desde código de Python, y el atributo ``tb_next`` de instancias " "existentes puede ser actualizado." -#: ../Doc/reference/datamodel.rst:1202 +#: ../Doc/reference/datamodel.rst:1290 msgid "Slice objects" msgstr "Objetos de segmento (Slice objects)" -#: ../Doc/reference/datamodel.rst:1180 +#: ../Doc/reference/datamodel.rst:1294 #, fuzzy msgid "" "Slice objects are used to represent slices for :meth:`~object.__getitem__` " @@ -2034,7 +2050,7 @@ msgstr "" "métodos :meth:`__getitem__`. También son creados por la función incorporada :" "func:`slice`." -#: ../Doc/reference/datamodel.rst:1189 +#: ../Doc/reference/datamodel.rst:1303 msgid "" "Special read-only attributes: :attr:`~slice.start` is the lower bound; :attr:" "`~slice.stop` is the upper bound; :attr:`~slice.step` is the step value; " @@ -2045,11 +2061,11 @@ msgstr "" "el valor de paso; cada uno es ``None`` si es omitido. Estos atributos pueden " "ser de cualquier tipo." -#: ../Doc/reference/datamodel.rst:1193 +#: ../Doc/reference/datamodel.rst:1307 msgid "Slice objects support one method:" msgstr "Los objetos de segmento soportan un método:" -#: ../Doc/reference/datamodel.rst:1197 +#: ../Doc/reference/datamodel.rst:1311 msgid "" "This method takes a single integer argument *length* and computes " "information about the slice that the slice object would describe if applied " @@ -2065,11 +2081,11 @@ msgstr "" "o longitud del paso del segmento. Índices faltantes o fuera de los límites " "son manipulados de manera consistente con segmentos regulares." -#: ../Doc/reference/datamodel.rst:1211 +#: ../Doc/reference/datamodel.rst:1320 msgid "Static method objects" msgstr "Objetos de método estático" -#: ../Doc/reference/datamodel.rst:1205 +#: ../Doc/reference/datamodel.rst:1322 msgid "" "Static method objects provide a way of defeating the transformation of " "function objects to method objects described above. A static method object " @@ -2089,11 +2105,11 @@ msgstr "" "también pueden ser llamados. Los objetos de método estático son creados por " "el constructor incorporado :func:`staticmethod`." -#: ../Doc/reference/datamodel.rst:1219 +#: ../Doc/reference/datamodel.rst:1332 msgid "Class method objects" msgstr "Objetos de método de clase" -#: ../Doc/reference/datamodel.rst:1214 +#: ../Doc/reference/datamodel.rst:1334 msgid "" "A class method object, like a static method object, is a wrapper around " "another object that alters the way in which that object is retrieved from " @@ -2109,11 +2125,11 @@ msgstr "" "clase de método son creados por el constructor incorporado :func:" "`classmethod`." -#: ../Doc/reference/datamodel.rst:1224 +#: ../Doc/reference/datamodel.rst:1344 msgid "Special method names" msgstr "Nombres especiales de método" -#: ../Doc/reference/datamodel.rst:1230 +#: ../Doc/reference/datamodel.rst:1350 #, fuzzy msgid "" "A class can implement certain operations that are invoked by special syntax " @@ -2139,7 +2155,7 @@ msgstr "" "cuando no es definido un método apropiado (normalmente :exc:`AttributeError` " "o :exc:`TypeError`)." -#: ../Doc/reference/datamodel.rst:1241 +#: ../Doc/reference/datamodel.rst:1361 #, fuzzy msgid "" "Setting a special method to ``None`` indicates that the corresponding " @@ -2154,7 +2170,7 @@ msgstr "" "llamando :func:`iter` en sus instancias lanzará un :exc:`TypeError` (sin " "volver a :meth:`__getitem__`). [#]_" -#: ../Doc/reference/datamodel.rst:1247 +#: ../Doc/reference/datamodel.rst:1367 msgid "" "When implementing a class that emulates any built-in type, it is important " "that the emulation only be implemented to the degree that it makes sense for " @@ -2171,11 +2187,11 @@ msgstr "" "interfaz :class:`~xml.dom.NodeList`, en el Modelo de Objetos del Documento " "del W3C.)" -#: ../Doc/reference/datamodel.rst:1258 +#: ../Doc/reference/datamodel.rst:1378 msgid "Basic customization" msgstr "Personalización básica" -#: ../Doc/reference/datamodel.rst:1264 +#: ../Doc/reference/datamodel.rst:1384 msgid "" "Called to create a new instance of class *cls*. :meth:`__new__` is a static " "method (special-cased so you need not declare it as such) that takes the " @@ -2192,7 +2208,7 @@ msgstr "" "retornado de :meth:`__new__` deberá ser la nueva instancia de objeto " "(normalmente una instancia de *cls*)." -#: ../Doc/reference/datamodel.rst:1271 +#: ../Doc/reference/datamodel.rst:1391 #, fuzzy msgid "" "Typical implementations create a new instance of the class by invoking the " @@ -2205,7 +2221,7 @@ msgstr "" "…])`` con argumentos apropiados y después modificando la recién creada " "instancia como necesaria antes de retornarla." -#: ../Doc/reference/datamodel.rst:1276 +#: ../Doc/reference/datamodel.rst:1396 msgid "" "If :meth:`__new__` is invoked during object construction and it returns an " "instance of *cls*, then the new instance’s :meth:`__init__` method will be " @@ -2219,7 +2235,7 @@ msgstr "" "nueva instancia y los argumentos restantes son iguales a como fueron pasados " "hacia el constructor de objetos." -#: ../Doc/reference/datamodel.rst:1281 +#: ../Doc/reference/datamodel.rst:1401 msgid "" "If :meth:`__new__` does not return an instance of *cls*, then the new " "instance's :meth:`__init__` method will not be invoked." @@ -2227,7 +2243,7 @@ msgstr "" "Si :meth:`__new__` no retorna una instancia de *cls*, entonces el nuevo " "método :meth:`__init__` de la instancia no será invocado." -#: ../Doc/reference/datamodel.rst:1284 +#: ../Doc/reference/datamodel.rst:1404 msgid "" ":meth:`__new__` is intended mainly to allow subclasses of immutable types " "(like int, str, or tuple) to customize instance creation. It is also " @@ -2239,7 +2255,7 @@ msgstr "" "instancias. También es comúnmente anulado en metaclases personalizadas con " "el fin de personalizar la creación de clase." -#: ../Doc/reference/datamodel.rst:1293 +#: ../Doc/reference/datamodel.rst:1413 msgid "" "Called after the instance has been created (by :meth:`__new__`), but before " "it is returned to the caller. The arguments are those passed to the class " @@ -2256,7 +2272,7 @@ msgstr "" "inicialización apropiada de la clase base que es parte de la instancia; por " "ejemplo: ``super().__init__([args…])``." -#: ../Doc/reference/datamodel.rst:1300 +#: ../Doc/reference/datamodel.rst:1420 msgid "" "Because :meth:`__new__` and :meth:`__init__` work together in constructing " "objects (:meth:`__new__` to create it, and :meth:`__init__` to customize " @@ -2269,7 +2285,7 @@ msgstr "" "meth:`__init__`; hacer esto puede causar que se lance una excepción :exc:" "`TypeError` en tiempo de ejecución." -#: ../Doc/reference/datamodel.rst:1313 +#: ../Doc/reference/datamodel.rst:1433 msgid "" "Called when the instance is about to be destroyed. This is also called a " "finalizer or (improperly) a destructor. If a base class has a :meth:" @@ -2283,7 +2299,7 @@ msgstr "" "existir, debe llamarlo explícitamente para asegurar la eliminación adecuada " "de la parte de la clase base de la instancia." -#: ../Doc/reference/datamodel.rst:1319 +#: ../Doc/reference/datamodel.rst:1439 msgid "" "It is possible (though not recommended!) for the :meth:`__del__` method to " "postpone destruction of the instance by creating a new reference to it. " @@ -2299,7 +2315,7 @@ msgstr "" "objeto resucitado está por ser destruido; la implementación :term:`CPython` " "actual únicamente lo llama una vez." -#: ../Doc/reference/datamodel.rst:1326 +#: ../Doc/reference/datamodel.rst:1446 msgid "" "It is not guaranteed that :meth:`__del__` methods are called for objects " "that still exist when the interpreter exits." @@ -2307,7 +2323,7 @@ msgstr "" "No está garantizado que los métodos :meth:`__del__` sean llamados para " "objetos que aún existen cuando el intérprete se cierra." -#: ../Doc/reference/datamodel.rst:1331 +#: ../Doc/reference/datamodel.rst:1451 msgid "" "``del x`` doesn't directly call ``x.__del__()`` --- the former decrements " "the reference count for ``x`` by one, and the latter is only called when " @@ -2317,7 +2333,7 @@ msgstr "" "conteo de referencia para ``x`` uno por uno, y el segundo es llamado " "únicamente cuando el conteo de referencias de ``x`` llega a cero." -#: ../Doc/reference/datamodel.rst:1336 +#: ../Doc/reference/datamodel.rst:1456 msgid "" "It is possible for a reference cycle to prevent the reference count of an " "object from going to zero. In this case, the cycle will be later detected " @@ -2328,11 +2344,11 @@ msgid "" "caught in the traceback." msgstr "" -#: ../Doc/reference/datamodel.rst:1346 +#: ../Doc/reference/datamodel.rst:1466 msgid "Documentation for the :mod:`gc` module." msgstr "Documentación para el módulo :mod:`gc`." -#: ../Doc/reference/datamodel.rst:1350 +#: ../Doc/reference/datamodel.rst:1470 msgid "" "Due to the precarious circumstances under which :meth:`__del__` methods are " "invoked, exceptions that occur during their execution are ignored, and a " @@ -2343,7 +2359,7 @@ msgstr "" "son ignoradas, y una advertencia es mostrada hacia ``sys.stderr``. En " "particular:" -#: ../Doc/reference/datamodel.rst:1354 +#: ../Doc/reference/datamodel.rst:1474 msgid "" ":meth:`__del__` can be invoked when arbitrary code is being executed, " "including from any arbitrary thread. If :meth:`__del__` needs to take a " @@ -2358,7 +2374,7 @@ msgstr "" "ya que el recurso podría estar siendo utilizado por el código que se " "interrumpe al ejecutar :meth:`__del__`." -#: ../Doc/reference/datamodel.rst:1360 +#: ../Doc/reference/datamodel.rst:1480 msgid "" ":meth:`__del__` can be executed during interpreter shutdown. As a " "consequence, the global variables it needs to access (including other " @@ -2377,7 +2393,7 @@ msgstr "" "que los módulos importados aún se encuentren disponibles al momento de " "llamar al método :meth:`__del__`." -#: ../Doc/reference/datamodel.rst:1375 +#: ../Doc/reference/datamodel.rst:1495 msgid "" "Called by the :func:`repr` built-in function to compute the \"official\" " "string representation of an object. If at all possible, this should look " @@ -2398,7 +2414,7 @@ msgstr "" "también es utilizado cuando una cadena “informal” de representación de " "instancias de esas clases son requeridas." -#: ../Doc/reference/datamodel.rst:1384 +#: ../Doc/reference/datamodel.rst:1504 msgid "" "This is typically used for debugging, so it is important that the " "representation is information-rich and unambiguous." @@ -2406,7 +2422,7 @@ msgstr "" "Esto es típicamente utilizado para depurar, así que es importante que la " "representación sea rica en información e inequívoca." -#: ../Doc/reference/datamodel.rst:1395 +#: ../Doc/reference/datamodel.rst:1515 msgid "" "Called by :func:`str(object) ` and the built-in functions :func:" "`format` and :func:`print` to compute the \"informal\" or nicely printable " @@ -2418,7 +2434,7 @@ msgstr "" "de representación de un objeto. El valor de retorno debe ser un objeto :ref:" "`string `." -#: ../Doc/reference/datamodel.rst:1400 +#: ../Doc/reference/datamodel.rst:1520 msgid "" "This method differs from :meth:`object.__repr__` in that there is no " "expectation that :meth:`__str__` return a valid Python expression: a more " @@ -2428,7 +2444,7 @@ msgstr "" "que :meth:`__str__` retorne una expresión de Python válida: una " "representación más conveniente o concisa pueda ser utilizada." -#: ../Doc/reference/datamodel.rst:1404 +#: ../Doc/reference/datamodel.rst:1524 msgid "" "The default implementation defined by the built-in type :class:`object` " "calls :meth:`object.__repr__`." @@ -2436,7 +2452,7 @@ msgstr "" "La implementación por defecto definida por el tipo incorporado :class:" "`object` llama a :meth:`object.__repr__`." -#: ../Doc/reference/datamodel.rst:1414 +#: ../Doc/reference/datamodel.rst:1534 msgid "" "Called by :ref:`bytes ` to compute a byte-string representation " "of an object. This should return a :class:`bytes` object." @@ -2444,7 +2460,7 @@ msgstr "" "Llamado por :ref:`bytes ` para calcular la representación de la " "cadena de byte de un objeto. Este deberá retornar un objeto :class:`bytes`." -#: ../Doc/reference/datamodel.rst:1425 +#: ../Doc/reference/datamodel.rst:1545 msgid "" "Called by the :func:`format` built-in function, and by extension, evaluation " "of :ref:`formatted string literals ` and the :meth:`str.format` " @@ -2464,18 +2480,18 @@ msgstr "" "la mayoría de las clases deleguen el formato a uno de los tipos " "incorporados, o utilicen una sintaxis de opción de formato similar." -#: ../Doc/reference/datamodel.rst:1435 +#: ../Doc/reference/datamodel.rst:1555 msgid "" "See :ref:`formatspec` for a description of the standard formatting syntax." msgstr "" "Ver :ref:`formatspec` para una descripción de la sintaxis de formato " "estándar." -#: ../Doc/reference/datamodel.rst:1437 +#: ../Doc/reference/datamodel.rst:1557 msgid "The return value must be a string object." msgstr "El valor de retorno debe ser un objeto de cadena." -#: ../Doc/reference/datamodel.rst:1439 +#: ../Doc/reference/datamodel.rst:1559 msgid "" "The __format__ method of ``object`` itself raises a :exc:`TypeError` if " "passed any non-empty string." @@ -2483,7 +2499,7 @@ msgstr "" "El método __format__ del mismo ``object`` lanza un :exc:`TypeError` si se la " "pasa una cadena no vacía." -#: ../Doc/reference/datamodel.rst:1443 +#: ../Doc/reference/datamodel.rst:1563 msgid "" "``object.__format__(x, '')`` is now equivalent to ``str(x)`` rather than " "``format(str(x), '')``." @@ -2491,7 +2507,7 @@ msgstr "" "``object.__format__(x, ‘’)`` es ahora equivalente a ``str(x)`` en lugar de " "``format(str(self), ‘’)``." -#: ../Doc/reference/datamodel.rst:1459 +#: ../Doc/reference/datamodel.rst:1579 msgid "" "These are the so-called \"rich comparison\" methods. The correspondence " "between operator symbols and method names is as follows: ``xy`` " "llama ``x.__gt__(y)``, y ``x>=y`` llama ``x.__ge__(y)``." -#: ../Doc/reference/datamodel.rst:1465 +#: ../Doc/reference/datamodel.rst:1585 msgid "" "A rich comparison method may return the singleton ``NotImplemented`` if it " "does not implement the operation for a given pair of arguments. By " @@ -2524,7 +2540,7 @@ msgstr "" "dicho valor para determinar si el resultado es verdadero (*true*) o falso " "(*false*)." -#: ../Doc/reference/datamodel.rst:1472 +#: ../Doc/reference/datamodel.rst:1592 msgid "" "By default, ``object`` implements :meth:`__eq__` by using ``is``, returning " "``NotImplemented`` in the case of a false comparison: ``True if x is y else " @@ -2545,7 +2561,7 @@ msgstr "" "pedido a partir de una sola operación raíz, consulte :func:`functools." "total_ordering`." -#: ../Doc/reference/datamodel.rst:1481 +#: ../Doc/reference/datamodel.rst:1601 msgid "" "See the paragraph on :meth:`__hash__` for some important notes on creating :" "term:`hashable` objects which support custom comparison operations and are " @@ -2555,7 +2571,7 @@ msgstr "" "creación de objetos :term:`hashable` que soportan operaciones de comparación " "personalizadas y son utilizables como llaves de diccionario." -#: ../Doc/reference/datamodel.rst:1485 +#: ../Doc/reference/datamodel.rst:1605 msgid "" "There are no swapped-argument versions of these methods (to be used when the " "left argument does not support the operation but the right argument does); " @@ -2578,7 +2594,7 @@ msgstr "" "del operando de la izquierda tiene prioridad. Subclases virtuales no son " "consideradas." -#: ../Doc/reference/datamodel.rst:1502 +#: ../Doc/reference/datamodel.rst:1622 #, fuzzy msgid "" "Called by built-in function :func:`hash` and for operations on members of " @@ -2597,7 +2613,7 @@ msgstr "" "los objetos que juegan un papel en la comparación de objetos al colocarlos " "en una tupla y calcular el *hash* de la tupla. Por ejemplo::" -#: ../Doc/reference/datamodel.rst:1515 +#: ../Doc/reference/datamodel.rst:1635 msgid "" ":func:`hash` truncates the value returned from an object's custom :meth:" "`__hash__` method to the size of a :c:type:`Py_ssize_t`. This is typically " @@ -2614,16 +2630,17 @@ msgstr "" "estructuras soportadas. Una forma fácil de hacer esto es con ``python -c " "“import sys; print(sys.hash_info.width)”``." -#: ../Doc/reference/datamodel.rst:1523 +#: ../Doc/reference/datamodel.rst:1643 +#, fuzzy msgid "" "If a class does not define an :meth:`__eq__` method it should not define a :" "meth:`__hash__` operation either; if it defines :meth:`__eq__` but not :meth:" "`__hash__`, its instances will not be usable as items in hashable " "collections. If a class defines mutable objects and implements an :meth:" "`__eq__` method, it should not implement :meth:`__hash__`, since the " -"implementation of hashable collections requires that a key's hash value is " -"immutable (if the object's hash value changes, it will be in the wrong hash " -"bucket)." +"implementation of :term:`hashable` collections requires that a key's hash " +"value is immutable (if the object's hash value changes, it will be in the " +"wrong hash bucket)." msgstr "" "Si una clase no define un método :meth:`__eq__`, tampoco debe definir una " "operación :meth:`__hash__`; si define a :meth:`__eq__` pero no a :meth:" @@ -2634,7 +2651,7 @@ msgstr "" "*hash* no sea mutable (si el valor del objeto *hash* cambia, estará en el " "cubo de *hash* equivocado)." -#: ../Doc/reference/datamodel.rst:1532 +#: ../Doc/reference/datamodel.rst:1652 msgid "" "User-defined classes have :meth:`__eq__` and :meth:`__hash__` methods by " "default; with them, all objects compare unequal (except with themselves) and " @@ -2647,7 +2664,7 @@ msgstr "" "apropiado tal que ``x == y`` implique que ``x es y`` y ``hash(x) == " "hash(y)``." -#: ../Doc/reference/datamodel.rst:1537 +#: ../Doc/reference/datamodel.rst:1657 msgid "" "A class that overrides :meth:`__eq__` and does not define :meth:`__hash__` " "will have its :meth:`__hash__` implicitly set to ``None``. When the :meth:" @@ -2663,7 +2680,7 @@ msgstr "" "será correctamente identificado como de hash no calculable cuando se " "verifique ``isinstance(obj, collections.abc.Hashable)``." -#: ../Doc/reference/datamodel.rst:1544 +#: ../Doc/reference/datamodel.rst:1664 msgid "" "If a class that overrides :meth:`__eq__` needs to retain the implementation " "of :meth:`__hash__` from a parent class, the interpreter must be told this " @@ -2673,7 +2690,7 @@ msgstr "" "de :meth:`__hash__` de una clase padre, al intérprete se le debe informar " "explícitamente estableciendo ``__hash__ = .__hash__``." -#: ../Doc/reference/datamodel.rst:1548 +#: ../Doc/reference/datamodel.rst:1668 msgid "" "If a class that does not override :meth:`__eq__` wishes to suppress hash " "support, it should include ``__hash__ = None`` in the class definition. A " @@ -2687,7 +2704,7 @@ msgstr "" "exc:`TypeError` será identificado de manera incorrecta como de hash " "calculable por una llamada ``isinstance(obj, collections.abc.Hashable)``." -#: ../Doc/reference/datamodel.rst:1557 +#: ../Doc/reference/datamodel.rst:1677 msgid "" "By default, the :meth:`__hash__` values of str and bytes objects are " "\"salted\" with an unpredictable random value. Although they remain " @@ -2699,12 +2716,12 @@ msgstr "" "constantes dentro de un proceso Python particular, no son predecibles entre " "invocaciones repetidas de Python." -#: ../Doc/reference/datamodel.rst:1562 +#: ../Doc/reference/datamodel.rst:1682 #, fuzzy msgid "" "This is intended to provide protection against a denial-of-service caused by " "carefully chosen inputs that exploit the worst case performance of a dict " -"insertion, O(n\\ :sup:`2`) complexity. See http://www.ocert.org/advisories/" +"insertion, O(n\\ :sup:`2`) complexity. See http://ocert.org/advisories/" "ocert-2011-003.html for details." msgstr "" "Esto tiene la intención de proveer protección contra una negación de " @@ -2713,7 +2730,7 @@ msgstr "" "sup:`2`). Ver http://www.ocert.org/advisories/ocert-2011-003.html para más " "detalles." -#: ../Doc/reference/datamodel.rst:1567 +#: ../Doc/reference/datamodel.rst:1687 msgid "" "Changing hash values affects the iteration order of sets. Python has never " "made guarantees about this ordering (and it typically varies between 32-bit " @@ -2723,21 +2740,22 @@ msgstr "" "Python nunca ha dado garantías en relación a este orden (y típicamente varía " "entre estructuras de 32-bits y 64-bits)." -#: ../Doc/reference/datamodel.rst:1571 +#: ../Doc/reference/datamodel.rst:1691 msgid "See also :envvar:`PYTHONHASHSEED`." msgstr "Ver también :envvar:`PYTHONHASHSEED`." -#: ../Doc/reference/datamodel.rst:1573 +#: ../Doc/reference/datamodel.rst:1693 msgid "Hash randomization is enabled by default." msgstr "La aleatorización de hash es habilitada por defecto." -#: ../Doc/reference/datamodel.rst:1581 +#: ../Doc/reference/datamodel.rst:1701 +#, fuzzy msgid "" "Called to implement truth value testing and the built-in operation " "``bool()``; should return ``False`` or ``True``. When this method is not " -"defined, :meth:`__len__` is called, if it is defined, and the object is " -"considered true if its result is nonzero. If a class defines neither :meth:" -"`__len__` nor :meth:`__bool__`, all its instances are considered true." +"defined, :meth:`~object.__len__` is called, if it is defined, and the object " +"is considered true if its result is nonzero. If a class defines neither :" +"meth:`!__len__` nor :meth:`!__bool__`, all its instances are considered true." msgstr "" "Es llamado para implementar pruebas de valores de verdad y la operación " "incorporada ``bool()``; debe retornar ``False`` o ``True``. Cuando este " @@ -2746,11 +2764,11 @@ msgstr "" "zero. Si la clase no define :meth:`__len__` ni :meth:`__bool__`, todas sus " "instancias son consideradas verdaderas (*true*)." -#: ../Doc/reference/datamodel.rst:1592 +#: ../Doc/reference/datamodel.rst:1712 msgid "Customizing attribute access" msgstr "Personalizando acceso a atributos" -#: ../Doc/reference/datamodel.rst:1594 +#: ../Doc/reference/datamodel.rst:1714 msgid "" "The following methods can be defined to customize the meaning of attribute " "access (use of, assignment to, or deletion of ``x.name``) for class " @@ -2760,7 +2778,7 @@ msgstr "" "de acceso a atributos (uso de, asignación a, o borrado de ``x.name``) para " "instancias de clase." -#: ../Doc/reference/datamodel.rst:1602 +#: ../Doc/reference/datamodel.rst:1722 msgid "" "Called when the default attribute access fails with an :exc:`AttributeError` " "(either :meth:`__getattribute__` raises an :exc:`AttributeError` because " @@ -2777,7 +2795,7 @@ msgstr "" "debe retornar el valor de atributo (calculado) o lanzar una excepción :exc:" "`AttributeError`." -#: ../Doc/reference/datamodel.rst:1609 +#: ../Doc/reference/datamodel.rst:1729 msgid "" "Note that if the attribute is found through the normal mechanism, :meth:" "`__getattr__` is not called. (This is an intentional asymmetry between :" @@ -2800,7 +2818,7 @@ msgstr "" "meth:`__getattribute__` a continuación para una forma de tener control total " "sobre el acceso de atributo." -#: ../Doc/reference/datamodel.rst:1622 +#: ../Doc/reference/datamodel.rst:1742 msgid "" "Called unconditionally to implement attribute accesses for instances of the " "class. If the class also defines :meth:`__getattr__`, the latter will not be " @@ -2821,7 +2839,7 @@ msgstr "" "nombre para acceder cualquier atributo que necesite, por ejemplo, ``object." "__getattribute__(self, name)``." -#: ../Doc/reference/datamodel.rst:1633 +#: ../Doc/reference/datamodel.rst:1753 msgid "" "This method may still be bypassed when looking up special methods as the " "result of implicit invocation via language syntax or built-in functions. " @@ -2831,7 +2849,7 @@ msgstr "" "como resultado de una invocación implícita a través de sintaxis de lenguaje " "o funciones implícitas. Ver :ref:`special-lookup`." -#: ../Doc/reference/datamodel.rst:1637 +#: ../Doc/reference/datamodel.rst:1757 msgid "" "Raises an :ref:`auditing event ` ``object.__getattr__`` with " "arguments ``obj``, ``name``." @@ -2839,7 +2857,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``object.__getattr__`` con " "argumentos ``obj``, ``name``." -#: ../Doc/reference/datamodel.rst:1639 +#: ../Doc/reference/datamodel.rst:1759 msgid "" "For certain sensitive attribute accesses, raises an :ref:`auditing event " "` ``object.__getattr__`` with arguments ``obj`` and ``name``." @@ -2848,7 +2866,7 @@ msgstr "" "auditoría ` ``object.__getattr__`` con los argumentos ``obj`` y " "``name``." -#: ../Doc/reference/datamodel.rst:1646 +#: ../Doc/reference/datamodel.rst:1766 msgid "" "Called when an attribute assignment is attempted. This is called instead of " "the normal mechanism (i.e. store the value in the instance dictionary). " @@ -2859,7 +2877,7 @@ msgstr "" "instancias). *name* es el nombre de atributo, *value* es el valor que se le " "asigna." -#: ../Doc/reference/datamodel.rst:1650 +#: ../Doc/reference/datamodel.rst:1770 msgid "" "If :meth:`__setattr__` wants to assign to an instance attribute, it should " "call the base class method with the same name, for example, ``object." @@ -2869,7 +2887,7 @@ msgstr "" "llamar al método de la clase base con el mismo nombre, por ejemplo, ``object." "__setattr__(self, name, value)``." -#: ../Doc/reference/datamodel.rst:1654 +#: ../Doc/reference/datamodel.rst:1774 msgid "" "Raises an :ref:`auditing event ` ``object.__setattr__`` with " "arguments ``obj``, ``name``, ``value``." @@ -2877,7 +2895,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``object.__setattr__`` con " "argumentos ``obj``, ``name``, ``value``." -#: ../Doc/reference/datamodel.rst:1656 +#: ../Doc/reference/datamodel.rst:1776 msgid "" "For certain sensitive attribute assignments, raises an :ref:`auditing event " "` ``object.__setattr__`` with arguments ``obj``, ``name``, " @@ -2887,7 +2905,7 @@ msgstr "" "auditoría ` ``object.__setattr__`` con argumentos ``obj``, " "``name``, ``value``." -#: ../Doc/reference/datamodel.rst:1663 +#: ../Doc/reference/datamodel.rst:1783 msgid "" "Like :meth:`__setattr__` but for attribute deletion instead of assignment. " "This should only be implemented if ``del obj.name`` is meaningful for the " @@ -2897,7 +2915,7 @@ msgstr "" "establecerlos. Esto solo de ser implementado si ``del obj.name`` es " "significativo para el objeto." -#: ../Doc/reference/datamodel.rst:1666 +#: ../Doc/reference/datamodel.rst:1786 msgid "" "Raises an :ref:`auditing event ` ``object.__delattr__`` with " "arguments ``obj``, ``name``." @@ -2905,7 +2923,7 @@ msgstr "" "Lanza un :ref:`evento de auditoría ` ``object.__delattr__`` con " "argumentos ``obj``, ``name``." -#: ../Doc/reference/datamodel.rst:1668 +#: ../Doc/reference/datamodel.rst:1788 msgid "" "For certain sensitive attribute deletions, raises an :ref:`auditing event " "` ``object.__delattr__`` with arguments ``obj`` and ``name``." @@ -2914,7 +2932,7 @@ msgstr "" "auditoría ` ``object.__delattr__`` con argumentos ``obj`` y " "``name``." -#: ../Doc/reference/datamodel.rst:1675 +#: ../Doc/reference/datamodel.rst:1795 msgid "" "Called when :func:`dir` is called on the object. A sequence must be " "returned. :func:`dir` converts the returned sequence to a list and sorts it." @@ -2923,11 +2941,11 @@ msgstr "" "ser retornada. :func:`dir` convierte la secuencia retornada a una lista y la " "ordena." -#: ../Doc/reference/datamodel.rst:1680 +#: ../Doc/reference/datamodel.rst:1800 msgid "Customizing module attribute access" msgstr "Personalizando acceso a atributos de módulo" -#: ../Doc/reference/datamodel.rst:1687 +#: ../Doc/reference/datamodel.rst:1807 msgid "" "Special names ``__getattr__`` and ``__dir__`` can be also used to customize " "access to module attributes. The ``__getattr__`` function at the module " @@ -2948,7 +2966,7 @@ msgstr "" "lanzar una excepción :exc:`AttributeError`. Si es encontrado, es llamado con " "el nombre de atributo y el resultado es retornado." -#: ../Doc/reference/datamodel.rst:1696 +#: ../Doc/reference/datamodel.rst:1816 msgid "" "The ``__dir__`` function should accept no arguments, and return a sequence " "of strings that represents the names accessible on module. If present, this " @@ -2958,7 +2976,7 @@ msgstr "" "de cadena de caracteres que representan los nombres accesibles en el módulo. " "De existir, esta función anula la búsqueda estándar :func:`dir` en un módulo." -#: ../Doc/reference/datamodel.rst:1700 +#: ../Doc/reference/datamodel.rst:1820 msgid "" "For a more fine grained customization of the module behavior (setting " "attributes, properties, etc.), one can set the ``__class__`` attribute of a " @@ -2969,7 +2987,7 @@ msgstr "" "atributo ``__class__`` de un objeto de módulo a una subclase de :class:" "`types.ModuleType`. Por ejemplo::" -#: ../Doc/reference/datamodel.rst:1718 +#: ../Doc/reference/datamodel.rst:1838 msgid "" "Defining module ``__getattr__`` and setting module ``__class__`` only affect " "lookups made using the attribute access syntax -- directly accessing the " @@ -2982,27 +3000,27 @@ msgstr "" "módulo, o a través de una referencia al diccionario de globales del módulo) " "no se ve afectado." -#: ../Doc/reference/datamodel.rst:1723 +#: ../Doc/reference/datamodel.rst:1843 msgid "``__class__`` module attribute is now writable." msgstr "El atributo de módulo ``__class__`` es ahora escribible." -#: ../Doc/reference/datamodel.rst:1726 +#: ../Doc/reference/datamodel.rst:1846 msgid "``__getattr__`` and ``__dir__`` module attributes." msgstr "Atributos de módulo ``__getattr__`` y ``__dir__``." -#: ../Doc/reference/datamodel.rst:1731 +#: ../Doc/reference/datamodel.rst:1851 msgid ":pep:`562` - Module __getattr__ and __dir__" msgstr ":pep:`562` - Módulos __getattr__ y __dir__" -#: ../Doc/reference/datamodel.rst:1732 +#: ../Doc/reference/datamodel.rst:1852 msgid "Describes the ``__getattr__`` and ``__dir__`` functions on modules." msgstr "Describe las funciones ``__getattr__`` y ``__dir__`` en módulos." -#: ../Doc/reference/datamodel.rst:1738 +#: ../Doc/reference/datamodel.rst:1858 msgid "Implementing Descriptors" msgstr "Implementando descriptores" -#: ../Doc/reference/datamodel.rst:1740 +#: ../Doc/reference/datamodel.rst:1860 msgid "" "The following methods only apply when an instance of the class containing " "the method (a so-called *descriptor* class) appears in an *owner* class (the " @@ -3018,7 +3036,7 @@ msgstr "" "ejemplos a continuación, “el atributo” se refiere al atributo cuyo nombre es " "la llave de la propiedad en la clase propietaria :attr:`~object.__dict__`." -#: ../Doc/reference/datamodel.rst:1750 +#: ../Doc/reference/datamodel.rst:1870 msgid "" "Called to get the attribute of the owner class (class attribute access) or " "of an instance of that class (instance attribute access). The optional " @@ -3032,7 +3050,7 @@ msgstr "" "que *instance* es la instancia a través de la cual el atributo fue accedido, " "o ``None`` cuando el atributo es accedido a través de *owner*." -#: ../Doc/reference/datamodel.rst:1756 +#: ../Doc/reference/datamodel.rst:1876 msgid "" "This method should return the computed attribute value or raise an :exc:" "`AttributeError` exception." @@ -3040,7 +3058,7 @@ msgstr "" "Este método debe retornar el valor de atributo calculado o lanzar una " "excepción :exc:`AttributeError`." -#: ../Doc/reference/datamodel.rst:1759 +#: ../Doc/reference/datamodel.rst:1879 msgid "" ":PEP:`252` specifies that :meth:`__get__` is callable with one or two " "arguments. Python's own built-in descriptors support this specification; " @@ -3056,7 +3074,7 @@ msgstr "" "implementación de :meth:`__getattribute__` en Python siempre pasa ambos " "argumentos si son requeridos o no." -#: ../Doc/reference/datamodel.rst:1768 +#: ../Doc/reference/datamodel.rst:1888 msgid "" "Called to set the attribute on an instance *instance* of the owner class to " "a new value, *value*." @@ -3064,7 +3082,7 @@ msgstr "" "Es llamado para establecer el atributo en una instancia *instance* de la " "clase propietaria a un nuevo valor *value*." -#: ../Doc/reference/datamodel.rst:1771 +#: ../Doc/reference/datamodel.rst:1891 msgid "" "Note, adding :meth:`__set__` or :meth:`__delete__` changes the kind of " "descriptor to a \"data descriptor\". See :ref:`descriptor-invocation` for " @@ -3074,14 +3092,14 @@ msgstr "" "descriptor a un “descriptor de datos”. Ver :ref:`descriptor-invocation` para " "más detalles." -#: ../Doc/reference/datamodel.rst:1777 +#: ../Doc/reference/datamodel.rst:1897 msgid "" "Called to delete the attribute on an instance *instance* of the owner class." msgstr "" "Es llamado para borrar el atributo en una instancia *instance* de la clase " "propietaria." -#: ../Doc/reference/datamodel.rst:1780 +#: ../Doc/reference/datamodel.rst:1900 msgid "" "The attribute :attr:`__objclass__` is interpreted by the :mod:`inspect` " "module as specifying the class where this object was defined (setting this " @@ -3099,11 +3117,11 @@ msgstr "" "el primero argumento posicional (por ejemplo, CPython establece este " "atributo para métodos independientes que son implementados en C)." -#: ../Doc/reference/datamodel.rst:1791 +#: ../Doc/reference/datamodel.rst:1911 msgid "Invoking Descriptors" msgstr "Invocando descriptores" -#: ../Doc/reference/datamodel.rst:1793 +#: ../Doc/reference/datamodel.rst:1913 #, fuzzy msgid "" "In general, a descriptor is an object attribute with \"binding behavior\", " @@ -3118,7 +3136,7 @@ msgstr "" "meth:`__delete__`. Si cualquiera de esos métodos son definidos por un " "objeto, se dice que es un descriptor." -#: ../Doc/reference/datamodel.rst:1799 +#: ../Doc/reference/datamodel.rst:1919 msgid "" "The default behavior for attribute access is to get, set, or delete the " "attribute from an object's dictionary. For instance, ``a.x`` has a lookup " @@ -3131,7 +3149,7 @@ msgstr "" "``a.__dict__[‘x’]``, luego ``type(a).__dict__[‘x’]``, y continúa por las " "clases base de ``type(a)`` excluyendo metaclases." -#: ../Doc/reference/datamodel.rst:1804 +#: ../Doc/reference/datamodel.rst:1924 msgid "" "However, if the looked-up value is an object defining one of the descriptor " "methods, then Python may override the default behavior and invoke the " @@ -3144,7 +3162,7 @@ msgstr "" "de precedencia depende de qué métodos de descriptor fueron definidos y cómo " "son llamados." -#: ../Doc/reference/datamodel.rst:1809 +#: ../Doc/reference/datamodel.rst:1929 msgid "" "The starting point for descriptor invocation is a binding, ``a.x``. How the " "arguments are assembled depends on ``a``:" @@ -3152,11 +3170,11 @@ msgstr "" "El punto de inicio por invocación de descriptor es un enlace ``a.x``. Cómo " "los argumentos son ensamblados dependen de ``a``:" -#: ../Doc/reference/datamodel.rst:1814 +#: ../Doc/reference/datamodel.rst:1934 msgid "Direct Call" msgstr "Llamado directo" -#: ../Doc/reference/datamodel.rst:1813 +#: ../Doc/reference/datamodel.rst:1933 msgid "" "The simplest and least common call is when user code directly invokes a " "descriptor method: ``x.__get__(a)``." @@ -3164,11 +3182,11 @@ msgstr "" "El llamado más simple y menos común es cuando el código de usuario invoca " "directamente un método descriptor: ``x.__get__(a)``." -#: ../Doc/reference/datamodel.rst:1818 +#: ../Doc/reference/datamodel.rst:1938 msgid "Instance Binding" msgstr "Enlace de instancia" -#: ../Doc/reference/datamodel.rst:1817 +#: ../Doc/reference/datamodel.rst:1937 msgid "" "If binding to an object instance, ``a.x`` is transformed into the call: " "``type(a).__dict__['x'].__get__(a, type(a))``." @@ -3176,11 +3194,11 @@ msgstr "" "Al enlazar a una instancia de objeto, ``a`` es transformado en un llamado: " "``type(a).__dict__[‘x’].__get__(a, type(a))``." -#: ../Doc/reference/datamodel.rst:1822 +#: ../Doc/reference/datamodel.rst:1942 msgid "Class Binding" msgstr "Enlace de clase" -#: ../Doc/reference/datamodel.rst:1821 +#: ../Doc/reference/datamodel.rst:1941 msgid "" "If binding to a class, ``A.x`` is transformed into the call: ``A." "__dict__['x'].__get__(None, A)``." @@ -3188,18 +3206,18 @@ msgstr "" "Al enlazar a una clase, ``A.x`` es transformado en un llamado: ``A." "__dict__[‘x’].__get__(None, A)``." -#: ../Doc/reference/datamodel.rst:1828 +#: ../Doc/reference/datamodel.rst:1948 msgid "Super Binding" msgstr "Súper enlace" -#: ../Doc/reference/datamodel.rst:1825 +#: ../Doc/reference/datamodel.rst:1945 msgid "" "A dotted lookup such as ``super(A, a).x`` searches ``a.__class__.__mro__`` " "for a base class ``B`` following ``A`` and then returns ``B.__dict__['x']." "__get__(a, A)``. If not a descriptor, ``x`` is returned unchanged." msgstr "" -#: ../Doc/reference/datamodel.rst:1862 +#: ../Doc/reference/datamodel.rst:1982 #, fuzzy msgid "" "For instance bindings, the precedence of descriptor invocation depends on " @@ -3231,7 +3249,7 @@ msgstr "" "Por el contrario, los descriptores sin datos pueden ser anulados por " "instancias." -#: ../Doc/reference/datamodel.rst:1876 +#: ../Doc/reference/datamodel.rst:1996 #, fuzzy msgid "" "Python methods (including those decorated with :func:`@staticmethod " @@ -3246,7 +3264,7 @@ msgstr "" "individuales adquieran comportamientos que pueden diferir de otras " "instancias de la misma clase." -#: ../Doc/reference/datamodel.rst:1882 +#: ../Doc/reference/datamodel.rst:2002 msgid "" "The :func:`property` function is implemented as a data descriptor. " "Accordingly, instances cannot override the behavior of a property." @@ -3254,11 +3272,11 @@ msgstr "" "La función :func:`property` es implementada como un descriptor de datos. Por " "lo tanto, las instancias no pueden anular el comportamiento de una propiedad." -#: ../Doc/reference/datamodel.rst:1889 +#: ../Doc/reference/datamodel.rst:2009 msgid "__slots__" msgstr "__slots__" -#: ../Doc/reference/datamodel.rst:1891 +#: ../Doc/reference/datamodel.rst:2011 #, fuzzy msgid "" "*__slots__* allow us to explicitly declare data members (like properties) " @@ -3270,7 +3288,7 @@ msgstr "" "menos que se declare explícitamente en *__slots__* o se encuentre disponible " "en un elemento padre.)" -#: ../Doc/reference/datamodel.rst:1895 +#: ../Doc/reference/datamodel.rst:2015 #, fuzzy msgid "" "The space saved over using :attr:`~object.__dict__` can be significant. " @@ -3279,7 +3297,7 @@ msgstr "" "El espacio ganado al usar *__dict__* puede ser importante. La velocidad de " "búsqueda de atributos también puede mejorar significativamente." -#: ../Doc/reference/datamodel.rst:1900 +#: ../Doc/reference/datamodel.rst:2020 #, fuzzy msgid "" "This class variable can be assigned a string, iterable, or sequence of " @@ -3293,11 +3311,12 @@ msgstr "" "variables declaradas y previene la creación automática de *__dict__* y " "*__weakref__* para cada instancia." -#: ../Doc/reference/datamodel.rst:1908 -msgid "Notes on using *__slots__*" +#: ../Doc/reference/datamodel.rst:2029 +#, fuzzy +msgid "Notes on using *__slots__*:" msgstr "Notas sobre el uso de *__slots__*" -#: ../Doc/reference/datamodel.rst:1910 +#: ../Doc/reference/datamodel.rst:2031 #, fuzzy msgid "" "When inheriting from a class without *__slots__*, the :attr:`~object." @@ -3307,7 +3326,7 @@ msgstr "" "Cuando se hereda de una clase sin *__slots__*, los atributos *__dict__* y " "*__weakref__* de las instancias siempre serán accesibles." -#: ../Doc/reference/datamodel.rst:1914 +#: ../Doc/reference/datamodel.rst:2035 #, fuzzy msgid "" "Without a :attr:`~object.__dict__` variable, instances cannot be assigned " @@ -3323,7 +3342,7 @@ msgstr "" "nuevas, se debe agregar ``’__dict__’`` a la secuencia de cadena de " "caracteres en la declaración de *__slots__*." -#: ../Doc/reference/datamodel.rst:1921 +#: ../Doc/reference/datamodel.rst:2042 #, fuzzy msgid "" "Without a *__weakref__* variable for each instance, classes defining " @@ -3337,7 +3356,7 @@ msgstr "" "``’__weakref__’`` a la secuencia de cadena de caracteres en la declaración " "de *__slots__*." -#: ../Doc/reference/datamodel.rst:1927 +#: ../Doc/reference/datamodel.rst:2048 #, fuzzy msgid "" "*__slots__* are implemented at the class level by creating :ref:`descriptors " @@ -3351,7 +3370,7 @@ msgstr "" "variables de instancia definidos por *__slots__*; de lo contrario, el " "atributo de clase sobrescribirá la asignación del descriptor." -#: ../Doc/reference/datamodel.rst:1933 +#: ../Doc/reference/datamodel.rst:2054 #, fuzzy msgid "" "The action of a *__slots__* declaration is not limited to the class where it " @@ -3366,7 +3385,7 @@ msgstr "" "*__weakref__* a menos que también se defina *__slots__* (el cual solo debe " "contener nombres de espacios o *slots* *adicionales*)." -#: ../Doc/reference/datamodel.rst:1939 +#: ../Doc/reference/datamodel.rst:2060 msgid "" "If a class defines a slot also defined in a base class, the instance " "variable defined by the base class slot is inaccessible (except by " @@ -3380,21 +3399,23 @@ msgstr "" "base). Esto hace que el significado del programa sea indefinido. En el " "futuro se podría agregar una verificación para prevenir esto." -#: ../Doc/reference/datamodel.rst:1944 +#: ../Doc/reference/datamodel.rst:2065 +#, fuzzy msgid "" -"Nonempty *__slots__* does not work for classes derived from \"variable-" -"length\" built-in types such as :class:`int`, :class:`bytes` and :class:" +":exc:`TypeError` will be raised if nonempty *__slots__* are defined for a " +"class derived from a :c:member:`\"variable-length\" built-in type " +"` such as :class:`int`, :class:`bytes`, and :class:" "`tuple`." msgstr "" "*__slots__* no vacíos no funcionan para clases derivadas de tipos " "incorporados de “longitud variable” como :class:`int`, :class:`bytes` y :" "class:`tuple`." -#: ../Doc/reference/datamodel.rst:1947 +#: ../Doc/reference/datamodel.rst:2070 msgid "Any non-string :term:`iterable` may be assigned to *__slots__*." msgstr "" -#: ../Doc/reference/datamodel.rst:1949 +#: ../Doc/reference/datamodel.rst:2072 msgid "" "If a :class:`dictionary ` is used to assign *__slots__*, the " "dictionary keys will be used as the slot names. The values of the dictionary " @@ -3402,7 +3423,7 @@ msgid "" "func:`inspect.getdoc` and displayed in the output of :func:`help`." msgstr "" -#: ../Doc/reference/datamodel.rst:1954 +#: ../Doc/reference/datamodel.rst:2077 #, fuzzy msgid "" ":attr:`~instance.__class__` assignment works only if both classes have the " @@ -3411,7 +3432,7 @@ msgstr "" "La asignación *__class__* funciona solo si ambas clases tienen el mismo " "*__slots__*." -#: ../Doc/reference/datamodel.rst:1957 +#: ../Doc/reference/datamodel.rst:2080 #, fuzzy msgid "" ":ref:`Multiple inheritance ` with multiple slotted parent " @@ -3424,7 +3445,7 @@ msgstr "" "creados por espacios (las otras bases deben tener diseños de espacios " "vacíos) - violaciones lanzan una excepción :exc:`TypeError`." -#: ../Doc/reference/datamodel.rst:1963 +#: ../Doc/reference/datamodel.rst:2086 #, fuzzy msgid "" "If an :term:`iterator` is used for *__slots__* then a :term:`descriptor` is " @@ -3435,11 +3456,11 @@ msgstr "" "creado para cada uno de los valores del iterador. Sin embargo, el atributo " "*__slots__* será un iterador vacío." -#: ../Doc/reference/datamodel.rst:1971 +#: ../Doc/reference/datamodel.rst:2094 msgid "Customizing class creation" msgstr "Personalización de creación de clases" -#: ../Doc/reference/datamodel.rst:1973 +#: ../Doc/reference/datamodel.rst:2096 #, fuzzy msgid "" "Whenever a class inherits from another class, :meth:`~object." @@ -3456,7 +3477,7 @@ msgstr "" "clase específica a la que son aplicados, ``__init_subclass__`` solo aplica a " "futuras subclases de la clase que define el método." -#: ../Doc/reference/datamodel.rst:1982 +#: ../Doc/reference/datamodel.rst:2105 msgid "" "This method is called whenever the containing class is subclassed. *cls* is " "then the new subclass. If defined as a normal instance method, this method " @@ -3467,7 +3488,7 @@ msgstr "" "instancia normal, éste es convertido de manera implícita a un método de " "clase." -#: ../Doc/reference/datamodel.rst:1986 +#: ../Doc/reference/datamodel.rst:2109 msgid "" "Keyword arguments which are given to a new class are passed to the parent's " "class ``__init_subclass__``. For compatibility with other classes using " @@ -3480,7 +3501,7 @@ msgstr "" "quitar los argumentos de palabra clave y pasar los otros a la clase base, " "como en::" -#: ../Doc/reference/datamodel.rst:2000 +#: ../Doc/reference/datamodel.rst:2123 msgid "" "The default implementation ``object.__init_subclass__`` does nothing, but " "raises an error if it is called with any arguments." @@ -3488,7 +3509,7 @@ msgstr "" "La implementación por defecto ``object.__init_subclass__`` no hace nada, " "pero lanza un error si es llamado con cualquier argumento." -#: ../Doc/reference/datamodel.rst:2005 +#: ../Doc/reference/datamodel.rst:2128 msgid "" "The metaclass hint ``metaclass`` is consumed by the rest of the type " "machinery, and is never passed to ``__init_subclass__`` implementations. The " @@ -3500,7 +3521,7 @@ msgstr "" "``__init_subclass__``. La clase meta actual (más que la sugerencia " "explícita) puede ser accedida como ``type(cls)``." -#: ../Doc/reference/datamodel.rst:2013 +#: ../Doc/reference/datamodel.rst:2136 #, fuzzy msgid "" "When a class is created, :meth:`type.__new__` scans the class variables and " @@ -3510,7 +3531,7 @@ msgstr "" "clase y realiza retornos de llamada a aquellas con un gancho :meth:" "`__set_name__`." -#: ../Doc/reference/datamodel.rst:2018 +#: ../Doc/reference/datamodel.rst:2141 msgid "" "Automatically called at the time the owning class *owner* is created. The " "object has been assigned to *name* in that class::" @@ -3518,7 +3539,7 @@ msgstr "" "Llamado automáticamente al momento en el que se crea la clase propietaria " "*owner*. El objeto es asignado a *name* en esa clase::" -#: ../Doc/reference/datamodel.rst:2024 +#: ../Doc/reference/datamodel.rst:2147 msgid "" "If the class variable is assigned after the class is created, :meth:" "`__set_name__` will not be called automatically. If needed, :meth:" @@ -3528,15 +3549,15 @@ msgstr "" "`__set_name__` no se llamará automáticamente. Si es necesario, :meth:" "`__set_name__` se puede llamar directamente::" -#: ../Doc/reference/datamodel.rst:2035 +#: ../Doc/reference/datamodel.rst:2158 msgid "See :ref:`class-object-creation` for more details." msgstr "Ver :ref:`class-object-creation` para más detalles." -#: ../Doc/reference/datamodel.rst:2043 +#: ../Doc/reference/datamodel.rst:2166 msgid "Metaclasses" msgstr "Metaclases" -#: ../Doc/reference/datamodel.rst:2050 +#: ../Doc/reference/datamodel.rst:2173 msgid "" "By default, classes are constructed using :func:`type`. The class body is " "executed in a new namespace and the class name is bound locally to the " @@ -3546,7 +3567,7 @@ msgstr "" "clase es ejecutado en un nuevo espacio de nombres y el nombre de la clase es " "ligado de forma local al resultado de ``type(name, bases, namespace)``." -#: ../Doc/reference/datamodel.rst:2054 +#: ../Doc/reference/datamodel.rst:2177 msgid "" "The class creation process can be customized by passing the ``metaclass`` " "keyword argument in the class definition line, or by inheriting from an " @@ -3558,7 +3579,7 @@ msgstr "" "heredar de una clase existente que incluya dicho argumento. En el siguiente " "ejemplo, ambos ``MyClass`` y ``MySubclass`` son instancias de ``Meta``::" -#: ../Doc/reference/datamodel.rst:2068 +#: ../Doc/reference/datamodel.rst:2191 msgid "" "Any other keyword arguments that are specified in the class definition are " "passed through to all metaclass operations described below." @@ -3567,42 +3588,46 @@ msgstr "" "definición de clase es pasado mediante todas las operaciones de metaclase " "descritas a continuación." -#: ../Doc/reference/datamodel.rst:2071 +#: ../Doc/reference/datamodel.rst:2194 msgid "When a class definition is executed, the following steps occur:" msgstr "" "Cuando una definición de clase es ejecutada, los siguientes pasos ocurren:" -#: ../Doc/reference/datamodel.rst:2073 +#: ../Doc/reference/datamodel.rst:2196 msgid "MRO entries are resolved;" msgstr "Entradas de la orden de resolución de método (MRU) son resueltas;" -#: ../Doc/reference/datamodel.rst:2074 +#: ../Doc/reference/datamodel.rst:2197 msgid "the appropriate metaclass is determined;" msgstr "se determina la metaclase adecuada;" -#: ../Doc/reference/datamodel.rst:2075 +#: ../Doc/reference/datamodel.rst:2198 msgid "the class namespace is prepared;" msgstr "se prepara el espacio de nombres de clase;" -#: ../Doc/reference/datamodel.rst:2076 +#: ../Doc/reference/datamodel.rst:2199 msgid "the class body is executed;" msgstr "se ejecuta el cuerpo de la clase;" -#: ../Doc/reference/datamodel.rst:2077 +#: ../Doc/reference/datamodel.rst:2200 msgid "the class object is created." msgstr "se crea el objeto de clase." -#: ../Doc/reference/datamodel.rst:2081 +#: ../Doc/reference/datamodel.rst:2204 msgid "Resolving MRO entries" msgstr "Resolviendo entradas de la Orden de Resolución de Métodos (MRU)" -#: ../Doc/reference/datamodel.rst:2083 +#: ../Doc/reference/datamodel.rst:2208 +#, fuzzy msgid "" -"If a base that appears in class definition is not an instance of :class:" -"`type`, then an ``__mro_entries__`` method is searched on it. If found, it " -"is called with the original bases tuple. This method must return a tuple of " -"classes that will be used instead of this base. The tuple may be empty, in " -"such case the original base is ignored." +"If a base that appears in a class definition is not an instance of :class:" +"`type`, then an :meth:`!__mro_entries__` method is searched on the base. If " +"an :meth:`!__mro_entries__` method is found, the base is substituted with " +"the result of a call to :meth:`!__mro_entries__` when creating the class. " +"The method is called with the original bases tuple passed to the *bases* " +"parameter, and must return a tuple of classes that will be used instead of " +"the base. The returned tuple may be empty: in these cases, the original base " +"is ignored." msgstr "" "Si una base que aparece en la definición de una clase no es una instancia " "de :class:`type`, entonces el método ``__mro_entries__`` se busca en ella. " @@ -3610,30 +3635,53 @@ msgstr "" "debe retornar una tupla de clases que será utilizado en lugar de esta base. " "La tupla puede estar vacía, en cuyo caso la base original es ignorada." -#: ../Doc/reference/datamodel.rst:2091 -msgid ":pep:`560` - Core support for typing module and generic types" +#: ../Doc/reference/datamodel.rst:2220 +msgid ":func:`types.resolve_bases`" +msgstr "" + +#: ../Doc/reference/datamodel.rst:2220 +msgid "Dynamically resolve bases that are not instances of :class:`type`." +msgstr "" + +#: ../Doc/reference/datamodel.rst:2224 +msgid ":func:`types.get_original_bases`" +msgstr "" + +#: ../Doc/reference/datamodel.rst:2223 +msgid "" +"Retrieve a class's \"original bases\" prior to modifications by :meth:" +"`~object.__mro_entries__`." +msgstr "" + +#: ../Doc/reference/datamodel.rst:2226 +msgid ":pep:`560`" +msgstr "" + +#: ../Doc/reference/datamodel.rst:2227 +#, fuzzy +msgid "Core support for typing module and generic types." msgstr "" ":pep:`560` - Soporte central para módulos de clasificación y tipos genéricos" -#: ../Doc/reference/datamodel.rst:2095 +#: ../Doc/reference/datamodel.rst:2231 msgid "Determining the appropriate metaclass" msgstr "Determinando la metaclase adecuada" -#: ../Doc/reference/datamodel.rst:2099 +#: ../Doc/reference/datamodel.rst:2235 msgid "" "The appropriate metaclass for a class definition is determined as follows:" msgstr "" "La metaclase adecuada para la definición de una clase es determinada de la " "siguiente manera:" -#: ../Doc/reference/datamodel.rst:2101 +#: ../Doc/reference/datamodel.rst:2237 msgid "" "if no bases and no explicit metaclass are given, then :func:`type` is used;" msgstr "" "si no se dan bases ni metaclases explícitas, entonces se utiliza :func:" "`type`;" -#: ../Doc/reference/datamodel.rst:2102 +#: ../Doc/reference/datamodel.rst:2238 msgid "" "if an explicit metaclass is given and it is *not* an instance of :func:" "`type`, then it is used directly as the metaclass;" @@ -3641,7 +3689,7 @@ msgstr "" "si se da una metaclase explícita y *no* es una instancia de :func:`type`, " "entonces se utiliza directamente como la metaclase;" -#: ../Doc/reference/datamodel.rst:2104 +#: ../Doc/reference/datamodel.rst:2240 msgid "" "if an instance of :func:`type` is given as the explicit metaclass, or bases " "are defined, then the most derived metaclass is used." @@ -3649,7 +3697,7 @@ msgstr "" "si se da una instancia de :func:`type` como la metaclase explícita, o se " "definen bases, entonces se utiliza la metaclase más derivada." -#: ../Doc/reference/datamodel.rst:2107 +#: ../Doc/reference/datamodel.rst:2243 msgid "" "The most derived metaclass is selected from the explicitly specified " "metaclass (if any) and the metaclasses (i.e. ``type(cls)``) of all specified " @@ -3661,11 +3709,11 @@ msgstr "" "explícitamente (si existe) y de la metaclase (p. ej. ``type(cls)``) de todas " "las clases base especificadas." -#: ../Doc/reference/datamodel.rst:2117 +#: ../Doc/reference/datamodel.rst:2253 msgid "Preparing the class namespace" msgstr "Preparando el espacio de nombres de la clase" -#: ../Doc/reference/datamodel.rst:2122 +#: ../Doc/reference/datamodel.rst:2258 #, fuzzy msgid "" "Once the appropriate metaclass has been identified, then the class namespace " @@ -3686,7 +3734,7 @@ msgstr "" "retornado por ``__prepare__`` es pasado a ``__new__``, pero cuando el objeto " "de clase final es creado, el espacio de nombres es copiado en un ``dict``." -#: ../Doc/reference/datamodel.rst:2131 +#: ../Doc/reference/datamodel.rst:2267 msgid "" "If the metaclass has no ``__prepare__`` attribute, then the class namespace " "is initialised as an empty ordered mapping." @@ -3694,19 +3742,19 @@ msgstr "" "Si la metaclase no tiene atributo ``__prepare__``, entonces el espacio de " "nombres de clase es iniciado como un mapeo vacío ordenado." -#: ../Doc/reference/datamodel.rst:2136 +#: ../Doc/reference/datamodel.rst:2272 msgid ":pep:`3115` - Metaclasses in Python 3000" msgstr ":pep:`3115` - Metaclases en Python 3000" -#: ../Doc/reference/datamodel.rst:2137 +#: ../Doc/reference/datamodel.rst:2273 msgid "Introduced the ``__prepare__`` namespace hook" msgstr "Introduce el enlace de espacio de nombres ``__prepare__``" -#: ../Doc/reference/datamodel.rst:2141 +#: ../Doc/reference/datamodel.rst:2277 msgid "Executing the class body" msgstr "Ejecutando el cuerpo de la clase" -#: ../Doc/reference/datamodel.rst:2146 +#: ../Doc/reference/datamodel.rst:2282 msgid "" "The class body is executed (approximately) as ``exec(body, globals(), " "namespace)``. The key difference from a normal call to :func:`exec` is that " @@ -3720,7 +3768,7 @@ msgstr "" "cualquier método) haga referencia a nombres de los alcances actuales y " "externos cuando la definición de clase sucede dentro de la función." -#: ../Doc/reference/datamodel.rst:2152 +#: ../Doc/reference/datamodel.rst:2288 msgid "" "However, even when the class definition occurs inside the function, methods " "defined inside the class still cannot see names defined at the class scope. " @@ -3735,11 +3783,11 @@ msgstr "" "la referencia al léxico implícito ``__class__`` descrita en la siguiente " "sección." -#: ../Doc/reference/datamodel.rst:2161 +#: ../Doc/reference/datamodel.rst:2297 msgid "Creating the class object" msgstr "Creando el objeto de clase" -#: ../Doc/reference/datamodel.rst:2168 +#: ../Doc/reference/datamodel.rst:2304 msgid "" "Once the class namespace has been populated by executing the class body, the " "class object is created by calling ``metaclass(name, bases, namespace, " @@ -3751,7 +3799,7 @@ msgstr "" "bases, namespace, **kwds)`` (las palabras clave adicionales que se pasan " "aquí, son las mismas que aquellas pasadas en ``__prepare__``)." -#: ../Doc/reference/datamodel.rst:2173 +#: ../Doc/reference/datamodel.rst:2309 msgid "" "This class object is the one that will be referenced by the zero-argument " "form of :func:`super`. ``__class__`` is an implicit closure reference " @@ -3770,7 +3818,7 @@ msgstr "" "el llamado actual es identificado en base al primer argumento que se pasa al " "método." -#: ../Doc/reference/datamodel.rst:2183 +#: ../Doc/reference/datamodel.rst:2319 msgid "" "In CPython 3.6 and later, the ``__class__`` cell is passed to the metaclass " "as a ``__classcell__`` entry in the class namespace. If present, this must " @@ -3784,7 +3832,7 @@ msgstr "" "para que la clase se inicie correctamente. No hacerlo resultará en un error :" "exc:`RuntimeError` en Python 3.8." -#: ../Doc/reference/datamodel.rst:2189 +#: ../Doc/reference/datamodel.rst:2325 msgid "" "When using the default metaclass :class:`type`, or any metaclass that " "ultimately calls ``type.__new__``, the following additional customization " @@ -3794,7 +3842,7 @@ msgstr "" "metaclase que finalmente llama a ``type.__new__``, los siguientes pasos de " "personalización adicional son invocados después de crear el objeto de clase:" -#: ../Doc/reference/datamodel.rst:2193 +#: ../Doc/reference/datamodel.rst:2329 msgid "" "The ``type.__new__`` method collects all of the attributes in the class " "namespace that define a :meth:`~object.__set_name__` method;" @@ -3802,7 +3850,7 @@ msgstr "" "El método ``type.__new__`` recolecta todos los atributos en el espacio de " "nombres de la clase que definen un método :meth:`~object.__set_name__`;" -#: ../Doc/reference/datamodel.rst:2195 +#: ../Doc/reference/datamodel.rst:2331 msgid "" "Those ``__set_name__`` methods are called with the class being defined and " "the assigned name of that particular attribute;" @@ -3810,7 +3858,7 @@ msgstr "" "Esos métodos ``__set_name__`` son llamados con la clase siendo definida y el " "nombre de ese atributo particular asignado;" -#: ../Doc/reference/datamodel.rst:2197 +#: ../Doc/reference/datamodel.rst:2333 msgid "" "The :meth:`~object.__init_subclass__` hook is called on the immediate parent " "of the new class in its method resolution order." @@ -3818,7 +3866,7 @@ msgstr "" "El gancho :meth:`~object.__init_subclass__` llama al padre inmediato de la " "nueva clase en su orden de resolución del método." -#: ../Doc/reference/datamodel.rst:2200 +#: ../Doc/reference/datamodel.rst:2336 msgid "" "After the class object is created, it is passed to the class decorators " "included in the class definition (if any) and the resulting object is bound " @@ -3828,7 +3876,7 @@ msgstr "" "incluido en su definición (si existe) y el objeto resultante es enlazado en " "el espacio de nombres local como la clase definida." -#: ../Doc/reference/datamodel.rst:2204 +#: ../Doc/reference/datamodel.rst:2340 msgid "" "When a new class is created by ``type.__new__``, the object provided as the " "namespace parameter is copied to a new ordered mapping and the original " @@ -3841,19 +3889,19 @@ msgstr "" "*envuelta* en un proxy de solo lectura, que se convierte en el atributo :" "attr:`~object.__dict__` del objeto de clase." -#: ../Doc/reference/datamodel.rst:2211 +#: ../Doc/reference/datamodel.rst:2347 msgid ":pep:`3135` - New super" msgstr ":pep:`3135` - Nuevo súper" -#: ../Doc/reference/datamodel.rst:2212 +#: ../Doc/reference/datamodel.rst:2348 msgid "Describes the implicit ``__class__`` closure reference" msgstr "Describe la referencia de cierre implícita ``__class__``" -#: ../Doc/reference/datamodel.rst:2216 +#: ../Doc/reference/datamodel.rst:2352 msgid "Uses for metaclasses" msgstr "Usos para metaclases" -#: ../Doc/reference/datamodel.rst:2218 +#: ../Doc/reference/datamodel.rst:2354 msgid "" "The potential uses for metaclasses are boundless. Some ideas that have been " "explored include enum, logging, interface checking, automatic delegation, " @@ -3865,11 +3913,11 @@ msgstr "" "delegación automática, creación de propiedades automática, proxy, " "infraestructuras, y bloqueo/sincronización automática de recursos." -#: ../Doc/reference/datamodel.rst:2225 +#: ../Doc/reference/datamodel.rst:2361 msgid "Customizing instance and subclass checks" msgstr "Personalizando revisiones de instancia y subclase" -#: ../Doc/reference/datamodel.rst:2227 +#: ../Doc/reference/datamodel.rst:2363 msgid "" "The following methods are used to override the default behavior of the :func:" "`isinstance` and :func:`issubclass` built-in functions." @@ -3878,7 +3926,7 @@ msgstr "" "defecto de las funciones incorporadas :func:`isinstance` y :func:" "`issubclass`." -#: ../Doc/reference/datamodel.rst:2230 +#: ../Doc/reference/datamodel.rst:2366 msgid "" "In particular, the metaclass :class:`abc.ABCMeta` implements these methods " "in order to allow the addition of Abstract Base Classes (ABCs) as \"virtual " @@ -3890,7 +3938,7 @@ msgstr "" "inglés *Abstract Base Clases*) como “clases base virtuales” a cualquier " "clase o tipo (incluyendo tipos incorporados), incluyendo otros ABCs." -#: ../Doc/reference/datamodel.rst:2237 +#: ../Doc/reference/datamodel.rst:2373 msgid "" "Return true if *instance* should be considered a (direct or indirect) " "instance of *class*. If defined, called to implement ``isinstance(instance, " @@ -3900,7 +3948,7 @@ msgstr "" "(directa o indirecta) de clase *class*. De ser definida, es llamado para " "implementar ``isinstance(instance, class)``." -#: ../Doc/reference/datamodel.rst:2244 +#: ../Doc/reference/datamodel.rst:2380 msgid "" "Return true if *subclass* should be considered a (direct or indirect) " "subclass of *class*. If defined, called to implement ``issubclass(subclass, " @@ -3910,7 +3958,7 @@ msgstr "" "(directa o indirecta) de clase *class*. De ser definida, es llamado para " "implementar ``issubclass(subclass, class)``." -#: ../Doc/reference/datamodel.rst:2249 +#: ../Doc/reference/datamodel.rst:2385 msgid "" "Note that these methods are looked up on the type (metaclass) of a class. " "They cannot be defined as class methods in the actual class. This is " @@ -3922,12 +3970,12 @@ msgstr "" "Esto es consistente con la búsqueda de métodos especiales que son llamados " "en instancias, solo en este caso la instancia es por sí misma una clase." -#: ../Doc/reference/datamodel.rst:2260 +#: ../Doc/reference/datamodel.rst:2396 msgid ":pep:`3119` - Introducing Abstract Base Classes" msgstr "" ":pep:`3119` - Introducción a Clases Base Abstractas (*Abstract Base Classes*)" -#: ../Doc/reference/datamodel.rst:2257 +#: ../Doc/reference/datamodel.rst:2393 msgid "" "Includes the specification for customizing :func:`isinstance` and :func:" "`issubclass` behavior through :meth:`~class.__instancecheck__` and :meth:" @@ -3941,11 +3989,11 @@ msgstr "" "esta funcionalidad en el contexto de agregar Clases Base Abstractas (ver el " "módulo :mod:`abc`) al lenguaje." -#: ../Doc/reference/datamodel.rst:2265 +#: ../Doc/reference/datamodel.rst:2401 msgid "Emulating generic types" msgstr "Emulando tipos genéricos" -#: ../Doc/reference/datamodel.rst:2267 +#: ../Doc/reference/datamodel.rst:2403 msgid "" "When using :term:`type annotations`, it is often useful to " "*parameterize* a :term:`generic type` using Python's square-brackets " @@ -3953,41 +4001,41 @@ msgid "" "a :class:`list` in which all the elements are of type :class:`int`." msgstr "" -#: ../Doc/reference/datamodel.rst:2275 +#: ../Doc/reference/datamodel.rst:2411 msgid ":pep:`484` - Type Hints" msgstr "" -#: ../Doc/reference/datamodel.rst:2275 +#: ../Doc/reference/datamodel.rst:2411 msgid "Introducing Python's framework for type annotations" msgstr "" -#: ../Doc/reference/datamodel.rst:2278 +#: ../Doc/reference/datamodel.rst:2414 msgid ":ref:`Generic Alias Types`" msgstr "" -#: ../Doc/reference/datamodel.rst:2278 +#: ../Doc/reference/datamodel.rst:2414 msgid "Documentation for objects representing parameterized generic classes" msgstr "" -#: ../Doc/reference/datamodel.rst:2281 +#: ../Doc/reference/datamodel.rst:2417 msgid "" ":ref:`Generics`, :ref:`user-defined generics` and :" "class:`typing.Generic`" msgstr "" -#: ../Doc/reference/datamodel.rst:2281 +#: ../Doc/reference/datamodel.rst:2417 msgid "" "Documentation on how to implement generic classes that can be parameterized " "at runtime and understood by static type-checkers." msgstr "" -#: ../Doc/reference/datamodel.rst:2284 +#: ../Doc/reference/datamodel.rst:2420 msgid "" "A class can *generally* only be parameterized if it defines the special " "class method ``__class_getitem__()``." msgstr "" -#: ../Doc/reference/datamodel.rst:2289 +#: ../Doc/reference/datamodel.rst:2425 msgid "" "Return an object representing the specialization of a generic class by type " "arguments found in *key*." @@ -3995,25 +4043,25 @@ msgstr "" "Retornar un objeto representando la especialización de una clase genérica " "por argumentos de tipo encontrados en *key*." -#: ../Doc/reference/datamodel.rst:2292 +#: ../Doc/reference/datamodel.rst:2428 msgid "" "When defined on a class, ``__class_getitem__()`` is automatically a class " "method. As such, there is no need for it to be decorated with :func:" "`@classmethod` when it is defined." msgstr "" -#: ../Doc/reference/datamodel.rst:2298 +#: ../Doc/reference/datamodel.rst:2434 msgid "The purpose of *__class_getitem__*" msgstr "" -#: ../Doc/reference/datamodel.rst:2300 +#: ../Doc/reference/datamodel.rst:2436 msgid "" "The purpose of :meth:`~object.__class_getitem__` is to allow runtime " "parameterization of standard-library generic classes in order to more easily " "apply :term:`type hints` to these classes." msgstr "" -#: ../Doc/reference/datamodel.rst:2304 +#: ../Doc/reference/datamodel.rst:2440 msgid "" "To implement custom generic classes that can be parameterized at runtime and " "understood by static type-checkers, users should either inherit from a " @@ -4022,7 +4070,7 @@ msgid "" "own implementation of ``__class_getitem__()``." msgstr "" -#: ../Doc/reference/datamodel.rst:2310 +#: ../Doc/reference/datamodel.rst:2446 msgid "" "Custom implementations of :meth:`~object.__class_getitem__` on classes " "defined outside of the standard library may not be understood by third-party " @@ -4030,11 +4078,11 @@ msgid "" "purposes other than type hinting is discouraged." msgstr "" -#: ../Doc/reference/datamodel.rst:2320 +#: ../Doc/reference/datamodel.rst:2456 msgid "*__class_getitem__* versus *__getitem__*" msgstr "" -#: ../Doc/reference/datamodel.rst:2322 +#: ../Doc/reference/datamodel.rst:2458 msgid "" "Usually, the :ref:`subscription` of an object using square " "brackets will call the :meth:`~object.__getitem__` instance method defined " @@ -4044,14 +4092,14 @@ msgid "" "genericalias>` object if it is properly defined." msgstr "" -#: ../Doc/reference/datamodel.rst:2329 +#: ../Doc/reference/datamodel.rst:2465 msgid "" "Presented with the :term:`expression` ``obj[x]``, the Python interpreter " "follows something like the following process to decide whether :meth:" "`~object.__getitem__` or :meth:`~object.__class_getitem__` should be called::" msgstr "" -#: ../Doc/reference/datamodel.rst:2357 +#: ../Doc/reference/datamodel.rst:2493 msgid "" "In Python, all classes are themselves instances of other classes. The class " "of a class is known as that class's :term:`metaclass`, and most classes have " @@ -4061,31 +4109,31 @@ msgid "" "__class_getitem__` being called::" msgstr "" -#: ../Doc/reference/datamodel.rst:2376 +#: ../Doc/reference/datamodel.rst:2512 msgid "" "However, if a class has a custom metaclass that defines :meth:`~object." "__getitem__`, subscribing the class may result in different behaviour. An " "example of this can be found in the :mod:`enum` module::" msgstr "" -#: ../Doc/reference/datamodel.rst:2401 +#: ../Doc/reference/datamodel.rst:2537 #, fuzzy msgid ":pep:`560` - Core Support for typing module and generic types" msgstr "" ":pep:`560` - Soporte central para módulos de clasificación y tipos genéricos" -#: ../Doc/reference/datamodel.rst:2400 +#: ../Doc/reference/datamodel.rst:2536 msgid "" "Introducing :meth:`~object.__class_getitem__`, and outlining when a :ref:" "`subscription` results in ``__class_getitem__()`` being " "called instead of :meth:`~object.__getitem__`" msgstr "" -#: ../Doc/reference/datamodel.rst:2408 +#: ../Doc/reference/datamodel.rst:2544 msgid "Emulating callable objects" msgstr "Emulando objetos que se pueden llamar" -#: ../Doc/reference/datamodel.rst:2415 +#: ../Doc/reference/datamodel.rst:2551 msgid "" "Called when the instance is \"called\" as a function; if this method is " "defined, ``x(arg1, arg2, ...)`` roughly translates to ``type(x).__call__(x, " @@ -4095,11 +4143,11 @@ msgstr "" "es definido, ``x(arg1, arg2, …)`` es una clave corta para ``x.__call__(arg1, " "arg2, …)``." -#: ../Doc/reference/datamodel.rst:2422 +#: ../Doc/reference/datamodel.rst:2558 msgid "Emulating container types" msgstr "Emulando tipos de contenedores" -#: ../Doc/reference/datamodel.rst:2424 +#: ../Doc/reference/datamodel.rst:2560 #, fuzzy msgid "" "The following methods can be defined to implement container objects. " @@ -4166,25 +4214,27 @@ msgstr "" "mapeos, :meth:`__iter__` debe iterar a través de las llaves del objeto; para " "secuencias, debe iterar a través de los valores." -#: ../Doc/reference/datamodel.rst:2464 +#: ../Doc/reference/datamodel.rst:2600 +#, fuzzy msgid "" "Called to implement the built-in function :func:`len`. Should return the " "length of the object, an integer ``>=`` 0. Also, an object that doesn't " -"define a :meth:`__bool__` method and whose :meth:`__len__` method returns " -"zero is considered to be false in a Boolean context." +"define a :meth:`~object.__bool__` method and whose :meth:`!__len__` method " +"returns zero is considered to be false in a Boolean context." msgstr "" "Es llamado para implementar la función incorporada :func:`len`. Debe " "retornar la longitud del objeto, un entero ``>=`` 0. También, un objeto que " "no define un método :meth:`__bool__` y cuyo método :meth:`__len__` retorna " "cero, es considerado como falso en un contexto booleano." -#: ../Doc/reference/datamodel.rst:2471 +#: ../Doc/reference/datamodel.rst:2607 +#, fuzzy msgid "" -"In CPython, the length is required to be at most :attr:`sys.maxsize`. If the " -"length is larger than :attr:`!sys.maxsize` some features (such as :func:" +"In CPython, the length is required to be at most :data:`sys.maxsize`. If the " +"length is larger than :data:`!sys.maxsize` some features (such as :func:" "`len`) may raise :exc:`OverflowError`. To prevent raising :exc:`!" "OverflowError` by truth value testing, an object must define a :meth:" -"`__bool__` method." +"`~object.__bool__` method." msgstr "" "En CPython, se requiere que la longitud sea como mucho :attr:`sys.maxsize`. " "Si la longitud es más grande que :attr:`!sys.maxsize` algunas " @@ -4193,7 +4243,7 @@ msgstr "" "validar la verdad de un valor, un objeto debe definir un método :meth:" "`__bool__`." -#: ../Doc/reference/datamodel.rst:2480 +#: ../Doc/reference/datamodel.rst:2616 msgid "" "Called to implement :func:`operator.length_hint`. Should return an estimated " "length for the object (which may be greater or less than the actual length). " @@ -4209,23 +4259,23 @@ msgstr "" "forma a que si el método ``__length_hint__`` no existiera en absoluto. Este " "método es puramente una optimización y nunca es requerido para precisión." -#: ../Doc/reference/datamodel.rst:2494 +#: ../Doc/reference/datamodel.rst:2630 msgid "" "Slicing is done exclusively with the following three methods. A call like ::" msgstr "" "La segmentación se hace exclusivamente con los siguientes tres métodos. Un " "llamado como ::" -#: ../Doc/reference/datamodel.rst:2498 +#: ../Doc/reference/datamodel.rst:2634 msgid "is translated to ::" msgstr "es traducido a ::" -#: ../Doc/reference/datamodel.rst:2502 +#: ../Doc/reference/datamodel.rst:2638 msgid "and so forth. Missing slice items are always filled in with ``None``." msgstr "" "etcétera. Elementos faltantes de segmentos siempre son llenados con ``None``." -#: ../Doc/reference/datamodel.rst:2507 +#: ../Doc/reference/datamodel.rst:2643 #, fuzzy msgid "" "Called to implement evaluation of ``self[key]``. For :term:`sequence` types, " @@ -4249,7 +4299,7 @@ msgstr "" "tipos de mapeos, si falta *key* (no en el contenedor), la excepción :exc:" "`KeyError` debe ser lanzada." -#: ../Doc/reference/datamodel.rst:2519 +#: ../Doc/reference/datamodel.rst:2655 msgid "" ":keyword:`for` loops expect that an :exc:`IndexError` will be raised for " "illegal indexes to allow proper detection of the end of the sequence." @@ -4258,14 +4308,14 @@ msgstr "" "lanzada para que índices ilegales permitan la detección adecuada del fin de " "una secuencia." -#: ../Doc/reference/datamodel.rst:2524 +#: ../Doc/reference/datamodel.rst:2660 msgid "" "When :ref:`subscripting` a *class*, the special class method :" "meth:`~object.__class_getitem__` may be called instead of ``__getitem__()``. " "See :ref:`classgetitem-versus-getitem` for more details." msgstr "" -#: ../Doc/reference/datamodel.rst:2532 +#: ../Doc/reference/datamodel.rst:2668 msgid "" "Called to implement assignment to ``self[key]``. Same note as for :meth:" "`__getitem__`. This should only be implemented for mappings if the objects " @@ -4280,7 +4330,7 @@ msgstr "" "reemplazados. Las mismas excepciones deben ser lanzadas para valores de " "*key* inadecuados con respecto al método :meth:`__getitem__`." -#: ../Doc/reference/datamodel.rst:2541 +#: ../Doc/reference/datamodel.rst:2677 msgid "" "Called to implement deletion of ``self[key]``. Same note as for :meth:" "`__getitem__`. This should only be implemented for mappings if the objects " @@ -4295,7 +4345,7 @@ msgstr "" "deben ser lanzadas por valores de *key* inapropiados con respecto al método :" "meth:`__getitem__`." -#: ../Doc/reference/datamodel.rst:2550 +#: ../Doc/reference/datamodel.rst:2686 msgid "" "Called by :class:`dict`\\ .\\ :meth:`__getitem__` to implement ``self[key]`` " "for dict subclasses when key is not in the dictionary." @@ -4304,7 +4354,7 @@ msgstr "" "``self[key]`` para subclases de diccionarios cuando la llave no se encuentra " "en el diccionario." -#: ../Doc/reference/datamodel.rst:2556 +#: ../Doc/reference/datamodel.rst:2692 #, fuzzy msgid "" "This method is called when an :term:`iterator` is required for a container. " @@ -4317,7 +4367,7 @@ msgstr "" "los objetos del contenedor. Para mapeos, debe iterar sobre las llaves del " "contenedor." -#: ../Doc/reference/datamodel.rst:2564 +#: ../Doc/reference/datamodel.rst:2700 msgid "" "Called (if present) by the :func:`reversed` built-in to implement reverse " "iteration. It should return a new iterator object that iterates over all " @@ -4327,7 +4377,7 @@ msgstr "" "implementar una interacción invertida. Debe retornar un nuevo objeto " "iterador que itere sobre todos los objetos en el contenedor en orden inverso." -#: ../Doc/reference/datamodel.rst:2568 +#: ../Doc/reference/datamodel.rst:2704 msgid "" "If the :meth:`__reversed__` method is not provided, the :func:`reversed` " "built-in will fall back to using the sequence protocol (:meth:`__len__` and :" @@ -4342,7 +4392,7 @@ msgstr "" "proporcionar una implementación que sea más eficiente que la proporcionada " "por :func:`reversed`." -#: ../Doc/reference/datamodel.rst:2575 +#: ../Doc/reference/datamodel.rst:2711 msgid "" "The membership test operators (:keyword:`in` and :keyword:`not in`) are " "normally implemented as an iteration through a container. However, container " @@ -4355,7 +4405,7 @@ msgstr "" "especial con una implementación más eficiente, que tampoco requiere que el " "objeto sea iterable." -#: ../Doc/reference/datamodel.rst:2582 +#: ../Doc/reference/datamodel.rst:2718 msgid "" "Called to implement membership test operators. Should return true if *item* " "is in *self*, false otherwise. For mapping objects, this should consider " @@ -4366,7 +4416,7 @@ msgstr "" "Para objetos de mapeo, estos debe considerar las llaves del mapeo en lugar " "de los valores o los pares de llave-valor." -#: ../Doc/reference/datamodel.rst:2586 +#: ../Doc/reference/datamodel.rst:2722 msgid "" "For objects that don't define :meth:`__contains__`, the membership test " "first tries iteration via :meth:`__iter__`, then the old sequence iteration " @@ -4379,11 +4429,11 @@ msgstr "" "ver :ref:`esta sección en la referencia del lenguaje `." -#: ../Doc/reference/datamodel.rst:2595 +#: ../Doc/reference/datamodel.rst:2731 msgid "Emulating numeric types" msgstr "Emulando tipos numéricos" -#: ../Doc/reference/datamodel.rst:2597 +#: ../Doc/reference/datamodel.rst:2733 msgid "" "The following methods can be defined to emulate numeric objects. Methods " "corresponding to operations that are not supported by the particular kind of " @@ -4395,7 +4445,7 @@ msgstr "" "particular implementado (por ejemplo, operaciones bit a bit para números no " "enteros) se deben dejar sin definir." -#: ../Doc/reference/datamodel.rst:2623 +#: ../Doc/reference/datamodel.rst:2759 #, fuzzy msgid "" "These methods are called to implement the binary arithmetic operations " @@ -4420,7 +4470,7 @@ msgstr "" "argumento opcional si la versión ternaria de la función incorporada :func:" "`pow` es soportada." -#: ../Doc/reference/datamodel.rst:2634 +#: ../Doc/reference/datamodel.rst:2770 msgid "" "If one of those methods does not support the operation with the supplied " "arguments, it should return ``NotImplemented``." @@ -4428,7 +4478,7 @@ msgstr "" "Si alguno de esos métodos no permiten la operación con los argumentos " "suministrados, debe retornar ``NotImplemented``." -#: ../Doc/reference/datamodel.rst:2657 +#: ../Doc/reference/datamodel.rst:2793 #, fuzzy msgid "" "These methods are called to implement the binary arithmetic operations " @@ -4451,7 +4501,7 @@ msgstr "" "método :meth:`__rsub__`, ``y.__rsub__(x)`` es llamado si ``x.__sub__(y)`` " "retorna *NotImplemented*." -#: ../Doc/reference/datamodel.rst:2669 +#: ../Doc/reference/datamodel.rst:2805 msgid "" "Note that ternary :func:`pow` will not try calling :meth:`__rpow__` (the " "coercion rules would become too complicated)." @@ -4460,7 +4510,7 @@ msgstr "" "llamar a :meth:`__rpow__` (las reglas de coerción se volverían demasiado " "complicadas)." -#: ../Doc/reference/datamodel.rst:2674 +#: ../Doc/reference/datamodel.rst:2810 msgid "" "If the right operand's type is a subclass of the left operand's type and " "that subclass provides a different implementation of the reflected method " @@ -4474,7 +4524,7 @@ msgstr "" "operando izquierdo. Este comportamiento permite que las subclases anulen las " "operaciones de sus predecesores." -#: ../Doc/reference/datamodel.rst:2695 +#: ../Doc/reference/datamodel.rst:2831 msgid "" "These methods are called to implement the augmented arithmetic assignments " "(``+=``, ``-=``, ``*=``, ``@=``, ``/=``, ``//=``, ``%=``, ``**=``, ``<<=``, " @@ -4503,7 +4553,7 @@ msgstr "" "tuple-error`), pero este comportamiento es en realidad parte del modelo de " "datos." -#: ../Doc/reference/datamodel.rst:2716 +#: ../Doc/reference/datamodel.rst:2852 msgid "" "Called to implement the unary arithmetic operations (``-``, ``+``, :func:" "`abs` and ``~``)." @@ -4511,7 +4561,7 @@ msgstr "" "Es llamado para implementar las operaciones aritméticas unarias (``-``, " "``+``, :func:`abs` and ``~``)." -#: ../Doc/reference/datamodel.rst:2729 +#: ../Doc/reference/datamodel.rst:2865 msgid "" "Called to implement the built-in functions :func:`complex`, :func:`int` and :" "func:`float`. Should return a value of the appropriate type." @@ -4519,7 +4569,7 @@ msgstr "" "Es llamado para implementar las funciones incorporadas :func:`complex`, :" "func:`int` y :func:`float`. Debe retornar un valor del tipo apropiado." -#: ../Doc/reference/datamodel.rst:2736 +#: ../Doc/reference/datamodel.rst:2872 msgid "" "Called to implement :func:`operator.index`, and whenever Python needs to " "losslessly convert the numeric object to an integer object (such as in " @@ -4533,7 +4583,7 @@ msgstr "" "`bin`, :func:`hex` y :func:`oct`). La presencia de este método indica que el " "objeto numérico es un tipo entero. Debe retornar un entero." -#: ../Doc/reference/datamodel.rst:2742 +#: ../Doc/reference/datamodel.rst:2878 msgid "" "If :meth:`__int__`, :meth:`__float__` and :meth:`__complex__` are not " "defined then corresponding built-in functions :func:`int`, :func:`float` " @@ -4543,7 +4593,7 @@ msgstr "" "definidos, entonces todas las funciones incorporadas correspondientes :func:" "`int`, :func:`float` y :func:`complex` vuelven a :meth:`__index__`." -#: ../Doc/reference/datamodel.rst:2754 +#: ../Doc/reference/datamodel.rst:2890 msgid "" "Called to implement the built-in function :func:`round` and :mod:`math` " "functions :func:`~math.trunc`, :func:`~math.floor` and :func:`~math.ceil`. " @@ -4557,21 +4607,21 @@ msgstr "" "estos métodos deben retornar el valor del objeto truncado a :class:`~numbers." "Integral` (normalmente :class:`int`)." -#: ../Doc/reference/datamodel.rst:2760 +#: ../Doc/reference/datamodel.rst:2896 msgid "" "The built-in function :func:`int` falls back to :meth:`__trunc__` if " "neither :meth:`__int__` nor :meth:`__index__` is defined." msgstr "" -#: ../Doc/reference/datamodel.rst:2763 +#: ../Doc/reference/datamodel.rst:2899 msgid "The delegation of :func:`int` to :meth:`__trunc__` is deprecated." msgstr "" -#: ../Doc/reference/datamodel.rst:2770 +#: ../Doc/reference/datamodel.rst:2906 msgid "With Statement Context Managers" msgstr "Gestores de Contexto en la Declaración *with*" -#: ../Doc/reference/datamodel.rst:2772 +#: ../Doc/reference/datamodel.rst:2908 msgid "" "A :dfn:`context manager` is an object that defines the runtime context to be " "established when executing a :keyword:`with` statement. The context manager " @@ -4588,7 +4638,7 @@ msgstr "" "keyword:`!with` (descritos en la sección :ref:`with`), pero también pueden " "ser utilizados al invocar directamente sus métodos." -#: ../Doc/reference/datamodel.rst:2783 +#: ../Doc/reference/datamodel.rst:2919 msgid "" "Typical uses of context managers include saving and restoring various kinds " "of global state, locking and unlocking resources, closing opened files, etc." @@ -4597,14 +4647,14 @@ msgstr "" "diversos tipos de declaraciones globales, bloquear y desbloquear recursos, " "cerrar archivos abiertos, etc." -#: ../Doc/reference/datamodel.rst:2786 +#: ../Doc/reference/datamodel.rst:2922 msgid "" "For more information on context managers, see :ref:`typecontextmanager`." msgstr "" "Para más información sobre gestores de contexto, ver :ref:" "`typecontextmanager`." -#: ../Doc/reference/datamodel.rst:2791 +#: ../Doc/reference/datamodel.rst:2927 msgid "" "Enter the runtime context related to this object. The :keyword:`with` " "statement will bind this method's return value to the target(s) specified in " @@ -4615,7 +4665,7 @@ msgstr "" "objetivo especificado en cláusula :keyword:`!as` de la declaración, en caso " "de existir." -#: ../Doc/reference/datamodel.rst:2798 +#: ../Doc/reference/datamodel.rst:2934 msgid "" "Exit the runtime context related to this object. The parameters describe the " "exception that caused the context to be exited. If the context was exited " @@ -4625,7 +4675,7 @@ msgstr "" "parámetros describen la excepción que causa la salida del contexto. Si éste " "se termina sin excepción, los tres argumentos serán :const:`None`." -#: ../Doc/reference/datamodel.rst:2802 +#: ../Doc/reference/datamodel.rst:2938 msgid "" "If an exception is supplied, and the method wishes to suppress the exception " "(i.e., prevent it from being propagated), it should return a true value. " @@ -4637,7 +4687,7 @@ msgstr "" "contrario, la excepción será procesada de forma normal al salir de este " "método." -#: ../Doc/reference/datamodel.rst:2806 +#: ../Doc/reference/datamodel.rst:2942 msgid "" "Note that :meth:`__exit__` methods should not reraise the passed-in " "exception; this is the caller's responsibility." @@ -4646,11 +4696,11 @@ msgstr "" "nuevo la excepción que se pasa; esto es la responsabilidad de quien hace el " "llamado." -#: ../Doc/reference/datamodel.rst:2813 +#: ../Doc/reference/datamodel.rst:2949 msgid ":pep:`343` - The \"with\" statement" msgstr ":pep:`343` - La declaración “with”" -#: ../Doc/reference/datamodel.rst:2813 +#: ../Doc/reference/datamodel.rst:2949 msgid "" "The specification, background, and examples for the Python :keyword:`with` " "statement." @@ -4658,18 +4708,19 @@ msgstr "" "La especificación, el antecedente, y los ejemplos para la declaración de " "Python :keyword:`with`." -#: ../Doc/reference/datamodel.rst:2820 +#: ../Doc/reference/datamodel.rst:2956 msgid "Customizing positional arguments in class pattern matching" msgstr "" "Personalización de argumentos posicionales en la coincidencia de patrones de " "clase" -#: ../Doc/reference/datamodel.rst:2822 +#: ../Doc/reference/datamodel.rst:2958 +#, fuzzy msgid "" "When using a class name in a pattern, positional arguments in the pattern " "are not allowed by default, i.e. ``case MyClass(x, y)`` is typically invalid " "without special support in ``MyClass``. To be able to use that kind of " -"patterns, the class needs to define a *__match_args__* attribute." +"pattern, the class needs to define a *__match_args__* attribute." msgstr "" "Cuando se usa un nombre de clase en un patrón, los argumentos posicionales " "en el patrón no están permitidos de forma predeterminada, es decir, ``case " @@ -4677,7 +4728,7 @@ msgstr "" "``MyClass``. Para poder usar ese tipo de patrones, la clase necesita definir " "un atributo *__match_args__*." -#: ../Doc/reference/datamodel.rst:2829 +#: ../Doc/reference/datamodel.rst:2965 msgid "" "This class variable can be assigned a tuple of strings. When this class is " "used in a class pattern with positional arguments, each positional argument " @@ -4691,7 +4742,7 @@ msgstr "" "utilizando el valor correspondiente en *__match_args__* como palabra clave. " "La ausencia de este atributo es equivalente a establecerlo en ``()``." -#: ../Doc/reference/datamodel.rst:2835 +#: ../Doc/reference/datamodel.rst:2971 msgid "" "For example, if ``MyClass.__match_args__`` is ``(\"left\", \"center\", " "\"right\")`` that means that ``case MyClass(x, y)`` is equivalent to ``case " @@ -4707,19 +4758,74 @@ msgstr "" "*__match_args__*; si es más grande, el intento de coincidencia de patrón " "producirá un :exc:`TypeError`." -#: ../Doc/reference/datamodel.rst:2845 +#: ../Doc/reference/datamodel.rst:2981 msgid ":pep:`634` - Structural Pattern Matching" msgstr ":pep:`634` - Coincidencia de patrones estructurales" -#: ../Doc/reference/datamodel.rst:2846 +#: ../Doc/reference/datamodel.rst:2982 msgid "The specification for the Python ``match`` statement." msgstr "La especificación para la declaración ``match`` de Python." -#: ../Doc/reference/datamodel.rst:2852 +#: ../Doc/reference/datamodel.rst:2988 +#, fuzzy +msgid "Emulating buffer types" +msgstr "Emulando tipos numéricos" + +#: ../Doc/reference/datamodel.rst:2990 +msgid "" +"The :ref:`buffer protocol ` provides a way for Python objects " +"to expose efficient access to a low-level memory array. This protocol is " +"implemented by builtin types such as :class:`bytes` and :class:`memoryview`, " +"and third-party libraries may define additional buffer types." +msgstr "" + +#: ../Doc/reference/datamodel.rst:2995 +msgid "" +"While buffer types are usually implemented in C, it is also possible to " +"implement the protocol in Python." +msgstr "" + +#: ../Doc/reference/datamodel.rst:3000 +msgid "" +"Called when a buffer is requested from *self* (for example, by the :class:" +"`memoryview` constructor). The *flags* argument is an integer representing " +"the kind of buffer requested, affecting for example whether the returned " +"buffer is read-only or writable. :class:`inspect.BufferFlags` provides a " +"convenient way to interpret the flags. The method must return a :class:" +"`memoryview` object." +msgstr "" + +#: ../Doc/reference/datamodel.rst:3009 +msgid "" +"Called when a buffer is no longer needed. The *buffer* argument is a :class:" +"`memoryview` object that was previously returned by :meth:`~object." +"__buffer__`. The method must release any resources associated with the " +"buffer. This method should return ``None``. Buffer objects that do not need " +"to perform any cleanup are not required to implement this method." +msgstr "" + +#: ../Doc/reference/datamodel.rst:3021 +msgid ":pep:`688` - Making the buffer protocol accessible in Python" +msgstr "" + +#: ../Doc/reference/datamodel.rst:3021 +msgid "" +"Introduces the Python ``__buffer__`` and ``__release_buffer__`` methods." +msgstr "" + +#: ../Doc/reference/datamodel.rst:3023 +msgid ":class:`collections.abc.Buffer`" +msgstr "" + +#: ../Doc/reference/datamodel.rst:3024 +msgid "ABC for buffer types." +msgstr "" + +#: ../Doc/reference/datamodel.rst:3029 msgid "Special method lookup" msgstr "Búsqueda de método especial" -#: ../Doc/reference/datamodel.rst:2854 +#: ../Doc/reference/datamodel.rst:3031 msgid "" "For custom classes, implicit invocations of special methods are only " "guaranteed to work correctly if defined on an object's type, not in the " @@ -4732,7 +4838,7 @@ msgstr "" "comportamiento es la razón por la que el siguiente código lanza una " "excepción::" -#: ../Doc/reference/datamodel.rst:2869 +#: ../Doc/reference/datamodel.rst:3046 #, fuzzy msgid "" "The rationale behind this behaviour lies with a number of special methods " @@ -4747,7 +4853,7 @@ msgstr "" "búsqueda implícita de estos métodos usaran el proceso de búsqueda " "convencional, fallarían al ser invocados en el objeto de tipo mismo::" -#: ../Doc/reference/datamodel.rst:2883 +#: ../Doc/reference/datamodel.rst:3060 msgid "" "Incorrectly attempting to invoke an unbound method of a class in this way is " "sometimes referred to as 'metaclass confusion', and is avoided by bypassing " @@ -4757,7 +4863,7 @@ msgstr "" "esta forma a veces es denominado como ‘confusión de metaclase’, y se evita " "sobrepasando la instancia al buscar métodos especiales::" -#: ../Doc/reference/datamodel.rst:2892 +#: ../Doc/reference/datamodel.rst:3069 #, fuzzy msgid "" "In addition to bypassing any instance attributes in the interest of " @@ -4769,7 +4875,7 @@ msgstr "" "sobrepasa al método :meth:`__getattribute__` incluso de la metaclase del " "objeto::" -#: ../Doc/reference/datamodel.rst:2918 +#: ../Doc/reference/datamodel.rst:3095 #, fuzzy msgid "" "Bypassing the :meth:`~object.__getattribute__` machinery in this fashion " @@ -4784,15 +4890,15 @@ msgstr "" "especiales (el método especial *debe* ser establecido en el objeto de clase " "mismo para ser invocado consistentemente por el intérprete)." -#: ../Doc/reference/datamodel.rst:2929 +#: ../Doc/reference/datamodel.rst:3106 msgid "Coroutines" msgstr "Corrutinas" -#: ../Doc/reference/datamodel.rst:2933 +#: ../Doc/reference/datamodel.rst:3110 msgid "Awaitable Objects" msgstr "Objetos esperables" -#: ../Doc/reference/datamodel.rst:2935 +#: ../Doc/reference/datamodel.rst:3112 #, fuzzy msgid "" "An :term:`awaitable` object generally implements an :meth:`~object." @@ -4803,7 +4909,7 @@ msgstr "" "`__await__`. :term:`Objetos Coroutine ` retornados a partir de " "funciones :keyword:`async def` son esperables." -#: ../Doc/reference/datamodel.rst:2941 +#: ../Doc/reference/datamodel.rst:3118 #, fuzzy msgid "" "The :term:`generator iterator` objects returned from generators decorated " @@ -4814,7 +4920,7 @@ msgstr "" "decorados con :func:`types.coroutine` o :func:`asyncio.coroutine` también " "son esperables, pero no implementan :meth:`__await__`." -#: ../Doc/reference/datamodel.rst:2947 +#: ../Doc/reference/datamodel.rst:3124 msgid "" "Must return an :term:`iterator`. Should be used to implement :term:" "`awaitable` objects. For instance, :class:`asyncio.Future` implements this " @@ -4824,15 +4930,23 @@ msgstr "" "objetos :term:`awaitable`. Por ejemplo, :class:`asyncio.Future` implementa " "este método para ser compatible con la expresión :keyword:`await`." -#: ../Doc/reference/datamodel.rst:2953 +#: ../Doc/reference/datamodel.rst:3130 +msgid "" +"The language doesn't place any restriction on the type or value of the " +"objects yielded by the iterator returned by ``__await__``, as this is " +"specific to the implementation of the asynchronous execution framework (e." +"g. :mod:`asyncio`) that will be managing the :term:`awaitable` object." +msgstr "" + +#: ../Doc/reference/datamodel.rst:3138 msgid ":pep:`492` for additional information about awaitable objects." msgstr ":pep:`492` para información adicional sobre objetos esperables." -#: ../Doc/reference/datamodel.rst:2959 +#: ../Doc/reference/datamodel.rst:3144 msgid "Coroutine Objects" msgstr "Objetos de corrutina" -#: ../Doc/reference/datamodel.rst:2961 +#: ../Doc/reference/datamodel.rst:3146 #, fuzzy msgid "" ":term:`Coroutine objects ` are :term:`awaitable` objects. A " @@ -4852,7 +4966,7 @@ msgstr "" "iterador. Las corrutinas no deben lanzar directamente excepciones :exc:" "`StopIteration` no manejadas." -#: ../Doc/reference/datamodel.rst:2969 +#: ../Doc/reference/datamodel.rst:3154 msgid "" "Coroutines also have the methods listed below, which are analogous to those " "of generators (see :ref:`generator-methods`). However, unlike generators, " @@ -4863,12 +4977,12 @@ msgstr "" "methods`). Sin embargo, a diferencia de los generadores, las corrutinas no " "soportan directamente iteración." -#: ../Doc/reference/datamodel.rst:2973 +#: ../Doc/reference/datamodel.rst:3158 msgid "It is a :exc:`RuntimeError` to await on a coroutine more than once." msgstr "" "Es un error :exc:`RuntimeError` esperar a una corrutina más de una vez." -#: ../Doc/reference/datamodel.rst:2979 +#: ../Doc/reference/datamodel.rst:3164 #, fuzzy msgid "" "Starts or resumes execution of the coroutine. If *value* is ``None``, this " @@ -4887,7 +5001,7 @@ msgstr "" "cuando se itera sobre el valor de retorno de :meth:`__await__`, descrito " "anteriormente." -#: ../Doc/reference/datamodel.rst:2990 +#: ../Doc/reference/datamodel.rst:3175 #, fuzzy msgid "" "Raises the specified exception in the coroutine. This method delegates to " @@ -4906,7 +5020,13 @@ msgstr "" "meth:`__await__` descrito anteriormente. Si la excepción no es obtenida en " "la corrutina, ésta se propaga de regreso a quien realizó el llamado." -#: ../Doc/reference/datamodel.rst:3001 +#: ../Doc/reference/datamodel.rst:3186 +msgid "" +"The second signature \\(type\\[, value\\[, traceback\\]\\]\\) is deprecated " +"and may be removed in a future version of Python." +msgstr "" + +#: ../Doc/reference/datamodel.rst:3191 msgid "" "Causes the coroutine to clean itself up and exit. If the coroutine is " "suspended, this method first delegates to the :meth:`~generator.close` " @@ -4922,7 +5042,7 @@ msgstr "" "causando que la corrutina se borre a sí misma. Finalmente, la corrutina es " "marcada como completada, aún si nunca inició." -#: ../Doc/reference/datamodel.rst:3009 +#: ../Doc/reference/datamodel.rst:3199 msgid "" "Coroutine objects are automatically closed using the above process when they " "are about to be destroyed." @@ -4930,11 +5050,11 @@ msgstr "" "Objetos de corrutina son cerrados automáticamente utilizando el proceso " "anterior cuando están a punto de ser destruidos." -#: ../Doc/reference/datamodel.rst:3015 +#: ../Doc/reference/datamodel.rst:3205 msgid "Asynchronous Iterators" msgstr "Iteradores asíncronos" -#: ../Doc/reference/datamodel.rst:3017 +#: ../Doc/reference/datamodel.rst:3207 msgid "" "An *asynchronous iterator* can call asynchronous code in its ``__anext__`` " "method." @@ -4942,18 +5062,18 @@ msgstr "" "Un *iterador asíncrono* puede llamar código asíncrono en su método " "``__anext__``." -#: ../Doc/reference/datamodel.rst:3020 +#: ../Doc/reference/datamodel.rst:3210 msgid "" "Asynchronous iterators can be used in an :keyword:`async for` statement." msgstr "" "Iteradores asíncronos pueden ser utilizados en la declaración :keyword:" "`async for`." -#: ../Doc/reference/datamodel.rst:3024 +#: ../Doc/reference/datamodel.rst:3214 msgid "Must return an *asynchronous iterator* object." msgstr "Debe retornar un objeto de *iterador asíncrono*." -#: ../Doc/reference/datamodel.rst:3028 +#: ../Doc/reference/datamodel.rst:3218 msgid "" "Must return an *awaitable* resulting in a next value of the iterator. " "Should raise a :exc:`StopAsyncIteration` error when the iteration is over." @@ -4962,11 +5082,11 @@ msgstr "" "del iterador. Debe levantar una excepción :exc:`StopAsyncIteration` cuando " "la iteración termina." -#: ../Doc/reference/datamodel.rst:3031 +#: ../Doc/reference/datamodel.rst:3221 msgid "An example of an asynchronous iterable object::" msgstr "Un ejemplo de objeto iterable asíncrono::" -#: ../Doc/reference/datamodel.rst:3048 +#: ../Doc/reference/datamodel.rst:3238 #, fuzzy msgid "" "Prior to Python 3.7, :meth:`~object.__aiter__` could return an *awaitable* " @@ -4976,7 +5096,7 @@ msgstr "" "Antes de Python 3.7, ``__aiter__`` podía retornar un *esperable* que se " "resolvería en un :term:`asynchronous iterator `." -#: ../Doc/reference/datamodel.rst:3053 +#: ../Doc/reference/datamodel.rst:3243 #, fuzzy msgid "" "Starting with Python 3.7, :meth:`~object.__aiter__` must return an " @@ -4987,11 +5107,11 @@ msgstr "" "asíncrono. Retornar cualquier otra cosa resultará en un error :exc:" "`TypeError`." -#: ../Doc/reference/datamodel.rst:3061 +#: ../Doc/reference/datamodel.rst:3251 msgid "Asynchronous Context Managers" msgstr "Gestores de contexto asíncronos" -#: ../Doc/reference/datamodel.rst:3063 +#: ../Doc/reference/datamodel.rst:3253 msgid "" "An *asynchronous context manager* is a *context manager* that is able to " "suspend execution in its ``__aenter__`` and ``__aexit__`` methods." @@ -4999,7 +5119,7 @@ msgstr "" "Un *gestor de contexto asíncrono* es un *gestor de contexto* que puede " "suspender la ejecución en sus métodos ``__aenter__`` y ``__aexit__``." -#: ../Doc/reference/datamodel.rst:3066 +#: ../Doc/reference/datamodel.rst:3256 msgid "" "Asynchronous context managers can be used in an :keyword:`async with` " "statement." @@ -5007,7 +5127,7 @@ msgstr "" "Los gestores de contexto asíncronos pueden ser utilizados en una " "declaración :keyword:`async with`." -#: ../Doc/reference/datamodel.rst:3070 +#: ../Doc/reference/datamodel.rst:3260 msgid "" "Semantically similar to :meth:`__enter__`, the only difference being that it " "must return an *awaitable*." @@ -5015,7 +5135,7 @@ msgstr "" "Semánticamente similar a :meth:`__enter__`, siendo la única diferencia que " "debe retorna un *esperable*." -#: ../Doc/reference/datamodel.rst:3075 +#: ../Doc/reference/datamodel.rst:3265 msgid "" "Semantically similar to :meth:`__exit__`, the only difference being that it " "must return an *awaitable*." @@ -5023,15 +5143,15 @@ msgstr "" "Semánticamente similar a :meth:`__exit__`, siendo la única diferencia que " "debe retornar un *esperable*." -#: ../Doc/reference/datamodel.rst:3078 +#: ../Doc/reference/datamodel.rst:3268 msgid "An example of an asynchronous context manager class::" msgstr "Un ejemplo de una clase de gestor de contexto asíncrono::" -#: ../Doc/reference/datamodel.rst:3091 +#: ../Doc/reference/datamodel.rst:3281 msgid "Footnotes" msgstr "Notas a pie de página" -#: ../Doc/reference/datamodel.rst:3092 +#: ../Doc/reference/datamodel.rst:3282 msgid "" "It *is* possible in some cases to change an object's type, under certain " "controlled conditions. It generally isn't a good idea though, since it can " @@ -5041,7 +5161,7 @@ msgstr "" "circunstancias controladas. Generalmente no es buena idea, ya que esto puede " "llevar a un comportamiento bastante extraño de no ser tratado correctamente." -#: ../Doc/reference/datamodel.rst:3096 +#: ../Doc/reference/datamodel.rst:3286 #, fuzzy msgid "" "The :meth:`~object.__hash__`, :meth:`~object.__iter__`, :meth:`~object." @@ -5054,7 +5174,7 @@ msgstr "" "error :exc:`TypeError`, pero lo harán dependiendo del comportamiento de que " "``None`` no se puede llamar." -#: ../Doc/reference/datamodel.rst:3102 +#: ../Doc/reference/datamodel.rst:3292 msgid "" "\"Does not support\" here means that the class has no such method, or the " "method returns ``NotImplemented``. Do not set the method to ``None`` if you " @@ -5067,7 +5187,7 @@ msgstr "" "contrario, tendrá un efecto opuesto de bloquear explícitamente dicho " "retroceso." -#: ../Doc/reference/datamodel.rst:3108 +#: ../Doc/reference/datamodel.rst:3298 #, fuzzy msgid "" "For operands of the same type, it is assumed that if the non-reflected " @@ -5077,3 +5197,1037 @@ msgstr "" "Para operandos del mismo tipo, se asume que si el método no reflejado (como :" "meth:`__add__`) falla, la operación no es soportada, por lo cual el método " "reflejado no es llamado." + +#: ../Doc/reference/datamodel.rst:14 ../Doc/reference/datamodel.rst:148 +#: ../Doc/reference/datamodel.rst:159 ../Doc/reference/datamodel.rst:180 +#: ../Doc/reference/datamodel.rst:192 ../Doc/reference/datamodel.rst:225 +#: ../Doc/reference/datamodel.rst:246 ../Doc/reference/datamodel.rst:261 +#: ../Doc/reference/datamodel.rst:279 ../Doc/reference/datamodel.rst:292 +#: ../Doc/reference/datamodel.rst:321 ../Doc/reference/datamodel.rst:356 +#: ../Doc/reference/datamodel.rst:381 ../Doc/reference/datamodel.rst:402 +#: ../Doc/reference/datamodel.rst:420 ../Doc/reference/datamodel.rst:440 +#: ../Doc/reference/datamodel.rst:448 ../Doc/reference/datamodel.rst:459 +#: ../Doc/reference/datamodel.rst:476 ../Doc/reference/datamodel.rst:512 +#: ../Doc/reference/datamodel.rst:525 ../Doc/reference/datamodel.rst:640 +#: ../Doc/reference/datamodel.rst:760 ../Doc/reference/datamodel.rst:778 +#: ../Doc/reference/datamodel.rst:810 ../Doc/reference/datamodel.rst:891 +#: ../Doc/reference/datamodel.rst:959 ../Doc/reference/datamodel.rst:986 +#: ../Doc/reference/datamodel.rst:1048 ../Doc/reference/datamodel.rst:1102 +#: ../Doc/reference/datamodel.rst:1162 ../Doc/reference/datamodel.rst:1227 +#: ../Doc/reference/datamodel.rst:1618 ../Doc/reference/datamodel.rst:2626 +#, fuzzy +msgid "object" +msgstr "Objetos de código" + +#: ../Doc/reference/datamodel.rst:14 ../Doc/reference/datamodel.rst:122 +msgid "data" +msgstr "" + +#: ../Doc/reference/datamodel.rst:23 ../Doc/reference/datamodel.rst:292 +#: ../Doc/reference/datamodel.rst:336 ../Doc/reference/datamodel.rst:420 +#: ../Doc/reference/datamodel.rst:459 ../Doc/reference/datamodel.rst:760 +#: ../Doc/reference/datamodel.rst:1005 ../Doc/reference/datamodel.rst:1292 +#: ../Doc/reference/datamodel.rst:1532 ../Doc/reference/datamodel.rst:1537 +#: ../Doc/reference/datamodel.rst:1618 ../Doc/reference/datamodel.rst:2168 +#: ../Doc/reference/datamodel.rst:2596 ../Doc/reference/datamodel.rst:2754 +#: ../Doc/reference/datamodel.rst:2789 ../Doc/reference/datamodel.rst:2803 +#: ../Doc/reference/datamodel.rst:2850 ../Doc/reference/datamodel.rst:2860 +#: ../Doc/reference/datamodel.rst:2888 +#, fuzzy +msgid "built-in function" +msgstr "Funciones incorporadas" + +#: ../Doc/reference/datamodel.rst:23 +msgid "id" +msgstr "" + +#: ../Doc/reference/datamodel.rst:23 ../Doc/reference/datamodel.rst:122 +#: ../Doc/reference/datamodel.rst:2168 +#, fuzzy +msgid "type" +msgstr "Tipos de conjuntos" + +#: ../Doc/reference/datamodel.rst:23 +msgid "identity of an object" +msgstr "" + +#: ../Doc/reference/datamodel.rst:23 +msgid "value of an object" +msgstr "" + +#: ../Doc/reference/datamodel.rst:23 +#, fuzzy +msgid "type of an object" +msgstr "Objetos de marco" + +#: ../Doc/reference/datamodel.rst:23 +#, fuzzy +msgid "mutable object" +msgstr "Objetos esperables" + +#: ../Doc/reference/datamodel.rst:23 +#, fuzzy +msgid "immutable object" +msgstr "Objetos esperables" + +#: ../Doc/reference/datamodel.rst:60 +msgid "garbage collection" +msgstr "" + +#: ../Doc/reference/datamodel.rst:60 +msgid "reference counting" +msgstr "" + +#: ../Doc/reference/datamodel.rst:60 +#, fuzzy +msgid "unreachable object" +msgstr "Objetos esperables" + +#: ../Doc/reference/datamodel.rst:95 ../Doc/reference/datamodel.rst:891 +#, fuzzy +msgid "container" +msgstr "Corrutinas" + +#: ../Doc/reference/datamodel.rst:122 +msgid "hierarchy" +msgstr "" + +#: ../Doc/reference/datamodel.rst:122 +msgid "extension" +msgstr "" + +#: ../Doc/reference/datamodel.rst:122 ../Doc/reference/datamodel.rst:393 +#: ../Doc/reference/datamodel.rst:394 ../Doc/reference/datamodel.rst:495 +#: ../Doc/reference/datamodel.rst:810 ../Doc/reference/datamodel.rst:829 +#: ../Doc/reference/datamodel.rst:1005 +#, fuzzy +msgid "module" +msgstr "Módulos" + +#: ../Doc/reference/datamodel.rst:122 ../Doc/reference/datamodel.rst:261 +#: ../Doc/reference/datamodel.rst:760 +msgid "C" +msgstr "" + +#: ../Doc/reference/datamodel.rst:122 ../Doc/reference/datamodel.rst:261 +#: ../Doc/reference/datamodel.rst:760 +msgid "language" +msgstr "" + +#: ../Doc/reference/datamodel.rst:135 ../Doc/reference/datamodel.rst:891 +#: ../Doc/reference/datamodel.rst:908 ../Doc/reference/datamodel.rst:959 +#: ../Doc/reference/datamodel.rst:979 +#, fuzzy +msgid "attribute" +msgstr "Atributo" + +#: ../Doc/reference/datamodel.rst:135 +msgid "special" +msgstr "" + +#: ../Doc/reference/datamodel.rst:135 +msgid "generic" +msgstr "" + +#: ../Doc/reference/datamodel.rst:180 +msgid "..." +msgstr "" + +#: ../Doc/reference/datamodel.rst:180 +#, fuzzy +msgid "ellipsis literal" +msgstr "Elipsis" + +#: ../Doc/reference/datamodel.rst:192 ../Doc/reference/datamodel.rst:986 +msgid "numeric" +msgstr "" + +#: ../Doc/reference/datamodel.rst:225 ../Doc/reference/datamodel.rst:231 +#: ../Doc/reference/datamodel.rst:336 +msgid "integer" +msgstr "" + +#: ../Doc/reference/datamodel.rst:231 +msgid "representation" +msgstr "" + +#: ../Doc/reference/datamodel.rst:246 +msgid "Boolean" +msgstr "" + +#: ../Doc/reference/datamodel.rst:246 +msgid "False" +msgstr "" + +#: ../Doc/reference/datamodel.rst:246 +#, fuzzy +msgid "True" +msgstr "Atributo" + +#: ../Doc/reference/datamodel.rst:261 +msgid "floating point" +msgstr "" + +#: ../Doc/reference/datamodel.rst:261 ../Doc/reference/datamodel.rst:279 +msgid "number" +msgstr "" + +#: ../Doc/reference/datamodel.rst:261 +msgid "Java" +msgstr "" + +#: ../Doc/reference/datamodel.rst:279 ../Doc/reference/datamodel.rst:2860 +msgid "complex" +msgstr "" + +#: ../Doc/reference/datamodel.rst:292 ../Doc/reference/datamodel.rst:420 +#: ../Doc/reference/datamodel.rst:459 ../Doc/reference/datamodel.rst:2596 +msgid "len" +msgstr "" + +#: ../Doc/reference/datamodel.rst:292 ../Doc/reference/datamodel.rst:986 +#, fuzzy +msgid "sequence" +msgstr "Secuencias" + +#: ../Doc/reference/datamodel.rst:292 +msgid "index operation" +msgstr "" + +#: ../Doc/reference/datamodel.rst:292 +msgid "item selection" +msgstr "" + +#: ../Doc/reference/datamodel.rst:292 ../Doc/reference/datamodel.rst:381 +#: ../Doc/reference/datamodel.rst:459 +msgid "subscription" +msgstr "" + +#: ../Doc/reference/datamodel.rst:304 ../Doc/reference/datamodel.rst:381 +msgid "slicing" +msgstr "" + +#: ../Doc/reference/datamodel.rst:321 +#, fuzzy +msgid "immutable sequence" +msgstr "Secuencias inmutables" + +#: ../Doc/reference/datamodel.rst:321 +#, fuzzy +msgid "immutable" +msgstr "Escribible" + +#: ../Doc/reference/datamodel.rst:332 ../Doc/reference/datamodel.rst:1507 +#: ../Doc/reference/datamodel.rst:1537 +#, fuzzy +msgid "string" +msgstr "Cadenas de caracteres" + +#: ../Doc/reference/datamodel.rst:332 +#, fuzzy +msgid "immutable sequences" +msgstr "Secuencias inmutables" + +#: ../Doc/reference/datamodel.rst:336 +msgid "chr" +msgstr "" + +#: ../Doc/reference/datamodel.rst:336 +msgid "ord" +msgstr "" + +#: ../Doc/reference/datamodel.rst:336 +msgid "character" +msgstr "" + +#: ../Doc/reference/datamodel.rst:336 +msgid "Unicode" +msgstr "" + +#: ../Doc/reference/datamodel.rst:356 +#, fuzzy +msgid "tuple" +msgstr "Tuplas" + +#: ../Doc/reference/datamodel.rst:356 +msgid "singleton" +msgstr "" + +#: ../Doc/reference/datamodel.rst:356 +msgid "empty" +msgstr "" + +#: ../Doc/reference/datamodel.rst:369 ../Doc/reference/datamodel.rst:1532 +#, fuzzy +msgid "bytes" +msgstr "Bytes" + +#: ../Doc/reference/datamodel.rst:369 +#, fuzzy +msgid "byte" +msgstr "Bytes" + +#: ../Doc/reference/datamodel.rst:381 +#, fuzzy +msgid "mutable sequence" +msgstr "Secuencias mutables" + +#: ../Doc/reference/datamodel.rst:381 +#, fuzzy +msgid "mutable" +msgstr "Escribible" + +#: ../Doc/reference/datamodel.rst:381 ../Doc/reference/datamodel.rst:908 +#: ../Doc/reference/datamodel.rst:979 +msgid "assignment" +msgstr "" + +#: ../Doc/reference/datamodel.rst:381 ../Doc/reference/datamodel.rst:810 +#: ../Doc/reference/datamodel.rst:1259 ../Doc/reference/datamodel.rst:1428 +#: ../Doc/reference/datamodel.rst:2915 +msgid "statement" +msgstr "" + +#: ../Doc/reference/datamodel.rst:393 +#, fuzzy +msgid "array" +msgstr "Colecciones de bytes" + +#: ../Doc/reference/datamodel.rst:394 +#, fuzzy +msgid "collections" +msgstr "Funciones de corrutina" + +#: ../Doc/reference/datamodel.rst:402 +#, fuzzy +msgid "list" +msgstr "Listas" + +#: ../Doc/reference/datamodel.rst:409 +#, fuzzy +msgid "bytearray" +msgstr "Colecciones de bytes" + +#: ../Doc/reference/datamodel.rst:420 +#, fuzzy +msgid "set type" +msgstr "Tipos de conjuntos" + +#: ../Doc/reference/datamodel.rst:440 +#, fuzzy +msgid "set" +msgstr "Conjuntos" + +#: ../Doc/reference/datamodel.rst:448 +#, fuzzy +msgid "frozenset" +msgstr "Conjuntos congelados" + +#: ../Doc/reference/datamodel.rst:459 ../Doc/reference/datamodel.rst:986 +#, fuzzy +msgid "mapping" +msgstr "Mapeos" + +#: ../Doc/reference/datamodel.rst:476 ../Doc/reference/datamodel.rst:891 +#: ../Doc/reference/datamodel.rst:1618 +#, fuzzy +msgid "dictionary" +msgstr "Diccionarios" + +#: ../Doc/reference/datamodel.rst:495 +msgid "dbm.ndbm" +msgstr "" + +#: ../Doc/reference/datamodel.rst:495 +msgid "dbm.gnu" +msgstr "" + +#: ../Doc/reference/datamodel.rst:512 +#, fuzzy +msgid "callable" +msgstr "Tipos invocables" + +#: ../Doc/reference/datamodel.rst:512 ../Doc/reference/datamodel.rst:525 +#: ../Doc/reference/datamodel.rst:706 ../Doc/reference/datamodel.rst:724 +#: ../Doc/reference/datamodel.rst:737 ../Doc/reference/datamodel.rst:760 +#, fuzzy +msgid "function" +msgstr "Funciones incorporadas" + +#: ../Doc/reference/datamodel.rst:512 ../Doc/reference/datamodel.rst:891 +#: ../Doc/reference/datamodel.rst:913 ../Doc/reference/datamodel.rst:2549 +msgid "call" +msgstr "" + +#: ../Doc/reference/datamodel.rst:512 +msgid "invocation" +msgstr "" + +#: ../Doc/reference/datamodel.rst:512 +msgid "argument" +msgstr "" + +#: ../Doc/reference/datamodel.rst:525 ../Doc/reference/datamodel.rst:640 +#, fuzzy +msgid "user-defined" +msgstr "Funciones definidas por el usuario" + +#: ../Doc/reference/datamodel.rst:525 +#, fuzzy +msgid "user-defined function" +msgstr "Funciones definidas por el usuario" + +#: ../Doc/reference/datamodel.rst:539 +msgid "__doc__ (function attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:539 +msgid "__name__ (function attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:539 +msgid "__module__ (function attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:539 +msgid "__dict__ (function attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:539 +msgid "__defaults__ (function attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:539 +msgid "__closure__ (function attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:539 +msgid "__code__ (function attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:539 +msgid "__globals__ (function attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:539 +msgid "__annotations__ (function attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:539 +msgid "__kwdefaults__ (function attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:539 +msgid "__type_params__ (function attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:539 +msgid "global" +msgstr "" + +#: ../Doc/reference/datamodel.rst:539 ../Doc/reference/datamodel.rst:829 +msgid "namespace" +msgstr "" + +#: ../Doc/reference/datamodel.rst:640 ../Doc/reference/datamodel.rst:778 +msgid "method" +msgstr "" + +#: ../Doc/reference/datamodel.rst:640 +#, fuzzy +msgid "user-defined method" +msgstr "Funciones definidas por el usuario" + +#: ../Doc/reference/datamodel.rst:648 +msgid "__func__ (method attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:648 +msgid "__self__ (method attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:648 +msgid "__doc__ (method attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:648 +msgid "__name__ (method attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:648 +msgid "__module__ (method attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:706 ../Doc/reference/datamodel.rst:1102 +#, fuzzy +msgid "generator" +msgstr "Funciones generadoras" + +#: ../Doc/reference/datamodel.rst:706 +msgid "iterator" +msgstr "" + +#: ../Doc/reference/datamodel.rst:724 ../Doc/reference/datamodel.rst:3102 +#, fuzzy +msgid "coroutine" +msgstr "Corrutinas" + +#: ../Doc/reference/datamodel.rst:737 +#, fuzzy +msgid "asynchronous generator" +msgstr "Iteradores asíncronos" + +#: ../Doc/reference/datamodel.rst:737 +#, fuzzy +msgid "asynchronous iterator" +msgstr "Iteradores asíncronos" + +#: ../Doc/reference/datamodel.rst:778 +#, fuzzy +msgid "built-in method" +msgstr "Métodos incorporados" + +#: ../Doc/reference/datamodel.rst:778 +#, fuzzy +msgid "built-in" +msgstr "Métodos incorporados" + +#: ../Doc/reference/datamodel.rst:810 +msgid "import" +msgstr "" + +#: ../Doc/reference/datamodel.rst:829 +msgid "__name__ (module attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:829 +#, fuzzy +msgid "__doc__ (module attribute)" +msgstr "El atributo de módulo ``__class__`` es ahora escribible." + +#: ../Doc/reference/datamodel.rst:829 +msgid "__file__ (module attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:829 +msgid "__annotations__ (module attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:860 +#, fuzzy +msgid "__dict__ (module attribute)" +msgstr "Personalizando acceso a atributos de módulo" + +#: ../Doc/reference/datamodel.rst:891 ../Doc/reference/datamodel.rst:908 +#: ../Doc/reference/datamodel.rst:959 ../Doc/reference/datamodel.rst:1411 +#: ../Doc/reference/datamodel.rst:2279 +#, fuzzy +msgid "class" +msgstr "Clases" + +#: ../Doc/reference/datamodel.rst:891 ../Doc/reference/datamodel.rst:959 +#: ../Doc/reference/datamodel.rst:979 +#, fuzzy +msgid "class instance" +msgstr "Instancias de clase" + +#: ../Doc/reference/datamodel.rst:891 ../Doc/reference/datamodel.rst:959 +#: ../Doc/reference/datamodel.rst:2549 +#, fuzzy +msgid "instance" +msgstr "Instancias de clase" + +#: ../Doc/reference/datamodel.rst:891 ../Doc/reference/datamodel.rst:913 +#, fuzzy +msgid "class object" +msgstr "Objetos de método de clase" + +#: ../Doc/reference/datamodel.rst:917 +msgid "__name__ (class attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:917 +msgid "__module__ (class attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:917 +msgid "__dict__ (class attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:917 +#, fuzzy +msgid "__bases__ (class attribute)" +msgstr "Atributos especiales:" + +#: ../Doc/reference/datamodel.rst:917 +msgid "__doc__ (class attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:917 +msgid "__annotations__ (class attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:917 +msgid "__type_params__ (class attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:994 +msgid "__dict__ (instance attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:994 +#, fuzzy +msgid "__class__ (instance attribute)" +msgstr "Instancias de clase" + +#: ../Doc/reference/datamodel.rst:1005 +msgid "open" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1005 +msgid "io" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1005 +msgid "popen() (in module os)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1005 +msgid "makefile() (socket method)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1005 +msgid "sys.stdin" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1005 +msgid "sys.stdout" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1005 +msgid "sys.stderr" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1005 +msgid "stdio" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1005 +msgid "stdin (in module sys)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1005 +msgid "stdout (in module sys)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1005 +msgid "stderr (in module sys)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1034 +#, fuzzy +msgid "internal type" +msgstr "Tipos internos" + +#: ../Doc/reference/datamodel.rst:1034 +msgid "types, internal" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1048 +#, fuzzy +msgid "bytecode" +msgstr "Bytes" + +#: ../Doc/reference/datamodel.rst:1048 +msgid "code" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1048 +#, fuzzy +msgid "code object" +msgstr "Objetos de código" + +#: ../Doc/reference/datamodel.rst:1059 +msgid "co_argcount (code object attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1059 +msgid "co_posonlyargcount (code object attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1059 +msgid "co_kwonlyargcount (code object attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1059 +msgid "co_code (code object attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1059 +msgid "co_consts (code object attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1059 +msgid "co_filename (code object attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1059 +msgid "co_firstlineno (code object attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1059 +msgid "co_flags (code object attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1059 +msgid "co_lnotab (code object attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1059 +msgid "co_name (code object attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1059 +msgid "co_names (code object attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1059 +msgid "co_nlocals (code object attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1059 +msgid "co_stacksize (code object attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1059 +msgid "co_varnames (code object attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1059 +msgid "co_cellvars (code object attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1059 +msgid "co_freevars (code object attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1059 +msgid "co_qualname (code object attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1118 +msgid "documentation string" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1162 +msgid "frame" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1167 +msgid "f_back (frame attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1167 +msgid "f_code (frame attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1167 +msgid "f_globals (frame attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1167 +msgid "f_locals (frame attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1167 +msgid "f_lasti (frame attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1167 +msgid "f_builtins (frame attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1186 +msgid "f_trace (frame attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1186 +#, fuzzy +msgid "f_trace_lines (frame attribute)" +msgstr "Atributos predefinidos (escribibles):" + +#: ../Doc/reference/datamodel.rst:1186 +msgid "f_trace_opcodes (frame attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1186 +#, fuzzy +msgid "f_lineno (frame attribute)" +msgstr "Atributos predefinidos (escribibles):" + +#: ../Doc/reference/datamodel.rst:1227 +#, fuzzy +msgid "traceback" +msgstr "Objetos de seguimiento de pila (traceback)" + +#: ../Doc/reference/datamodel.rst:1227 +msgid "stack" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1227 +msgid "trace" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1227 +msgid "exception" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1227 +msgid "handler" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1227 +msgid "execution" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1227 +msgid "exc_info (in module sys)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1227 +msgid "last_traceback (in module sys)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1227 +msgid "sys.exc_info" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1227 +msgid "sys.exception" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1227 +msgid "sys.last_traceback" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1259 +msgid "tb_frame (traceback attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1259 +msgid "tb_lineno (traceback attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1259 +msgid "tb_lasti (traceback attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1259 +msgid "try" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1277 +msgid "tb_next (traceback attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1292 ../Doc/reference/datamodel.rst:2626 +msgid "slice" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1298 +msgid "start (slice object attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1298 +msgid "stop (slice object attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1298 +msgid "step (slice object attribute)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1346 +msgid "operator" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1346 +msgid "overloading" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1346 +msgid "__getitem__() (mapping object method)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1382 +#, fuzzy +msgid "subclassing" +msgstr "Enlace de clase" + +#: ../Doc/reference/datamodel.rst:1382 +#, fuzzy +msgid "immutable types" +msgstr "Secuencias inmutables" + +#: ../Doc/reference/datamodel.rst:1411 +msgid "constructor" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1428 +msgid "destructor" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1428 +msgid "finalizer" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1428 +msgid "del" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1490 +#, fuzzy +msgid "repr() (built-in function)" +msgstr "Funciones incorporadas" + +#: ../Doc/reference/datamodel.rst:1490 +msgid "__repr__() (object method)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1507 +msgid "__str__() (object method)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1507 +#, fuzzy +msgid "format() (built-in function)" +msgstr "Funciones incorporadas" + +#: ../Doc/reference/datamodel.rst:1507 +#, fuzzy +msgid "print() (built-in function)" +msgstr "Funciones incorporadas" + +#: ../Doc/reference/datamodel.rst:1537 +msgid "__format__() (object method)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1537 +msgid "conversion" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1537 +msgid "print" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1576 +msgid "comparisons" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1618 +msgid "hash" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1699 +msgid "__len__() (mapping object method)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:1802 +#, fuzzy +msgid "__getattr__ (module attribute)" +msgstr "Atributos de módulo ``__getattr__`` y ``__dir__``." + +#: ../Doc/reference/datamodel.rst:1802 +#, fuzzy +msgid "__dir__ (module attribute)" +msgstr "Atributos de módulo ``__getattr__`` y ``__dir__``." + +#: ../Doc/reference/datamodel.rst:1802 +#, fuzzy +msgid "__class__ (module attribute)" +msgstr "El atributo de módulo ``__class__`` es ahora escribible." + +#: ../Doc/reference/datamodel.rst:2168 +#, fuzzy +msgid "metaclass" +msgstr "Metaclases" + +#: ../Doc/reference/datamodel.rst:2168 +msgid "= (equals)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:2168 +#, fuzzy +msgid "class definition" +msgstr "Enlace de clase" + +#: ../Doc/reference/datamodel.rst:2232 +#, fuzzy +msgid "metaclass hint" +msgstr "Metaclases" + +#: ../Doc/reference/datamodel.rst:2255 +msgid "__prepare__ (metaclass method)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:2279 +msgid "body" +msgstr "" + +#: ../Doc/reference/datamodel.rst:2299 +#, fuzzy +msgid "__class__ (method cell)" +msgstr "Objetos de método de clase" + +#: ../Doc/reference/datamodel.rst:2299 +msgid "__classcell__ (class namespace entry)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:2596 +msgid "__bool__() (object method)" +msgstr "" + +#: ../Doc/reference/datamodel.rst:2754 ../Doc/reference/datamodel.rst:2789 +msgid "divmod" +msgstr "" + +#: ../Doc/reference/datamodel.rst:2754 ../Doc/reference/datamodel.rst:2789 +#: ../Doc/reference/datamodel.rst:2803 +msgid "pow" +msgstr "" + +#: ../Doc/reference/datamodel.rst:2850 +msgid "abs" +msgstr "" + +#: ../Doc/reference/datamodel.rst:2860 +msgid "int" +msgstr "" + +#: ../Doc/reference/datamodel.rst:2860 +msgid "float" +msgstr "" + +#: ../Doc/reference/datamodel.rst:2888 +msgid "round" +msgstr "" + +#: ../Doc/reference/datamodel.rst:2915 +msgid "with" +msgstr "" + +#: ../Doc/reference/datamodel.rst:2915 +#, fuzzy +msgid "context manager" +msgstr "Gestores de contexto asíncronos" + +#~ msgid "" +#~ "The extension module :mod:`array` provides an additional example of a " +#~ "mutable sequence type, as does the :mod:`collections` module." +#~ msgstr "" +#~ "El módulo de extensión :mod:`array` proporciona un ejemplo adicional de " +#~ "un tipo de secuencia mutable, al igual que el módulo :mod:`collections`." + +#~ msgid ":pep:`560` - Core support for typing module and generic types" +#~ msgstr "" +#~ ":pep:`560` - Soporte central para módulos de clasificación y tipos " +#~ "genéricos" diff --git a/reference/executionmodel.po b/reference/executionmodel.po index c37f866707..c7c320b0d4 100644 --- a/reference/executionmodel.po +++ b/reference/executionmodel.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-02-26 14:02-0300\n" "Last-Translator: Francisco Mora \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 2.4.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/reference/executionmodel.rst:6 msgid "Execution model" @@ -134,7 +133,16 @@ msgstr "en un patrón de captura en la concordancia de patrones estructurales" msgid ":keyword:`import` statements." msgstr "declaraciones :keyword:`import`." +#: ../Doc/reference/executionmodel.rst:74 +#, fuzzy +msgid ":keyword:`type` statements." +msgstr "declaraciones :keyword:`import`." + #: ../Doc/reference/executionmodel.rst:75 +msgid ":ref:`type parameter lists `." +msgstr "" + +#: ../Doc/reference/executionmodel.rst:77 msgid "" "The :keyword:`!import` statement of the form ``from ... import *`` binds all " "names defined in the imported module, except those beginning with an " @@ -144,7 +152,7 @@ msgstr "" "todos los nombres definidos en el módulo importado, excepto los que empiezan " "por guión bajo. Esta forma sólo puede utilizarse a nivel de módulo." -#: ../Doc/reference/executionmodel.rst:79 +#: ../Doc/reference/executionmodel.rst:81 msgid "" "A target occurring in a :keyword:`del` statement is also considered bound " "for this purpose (though the actual semantics are to unbind the name)." @@ -153,7 +161,7 @@ msgstr "" "vinculado para este propósito (aunque la semántica real es desvincular el " "nombre)." -#: ../Doc/reference/executionmodel.rst:82 +#: ../Doc/reference/executionmodel.rst:84 msgid "" "Each assignment or import statement occurs within a block defined by a class " "or function definition or at the module level (the top-level code block)." @@ -162,7 +170,7 @@ msgstr "" "determinado por una definición de clase o de función, o a nivel de módulo " "(el bloque de código de máximo nivel)." -#: ../Doc/reference/executionmodel.rst:87 +#: ../Doc/reference/executionmodel.rst:89 msgid "" "If a name is bound in a block, it is a local variable of that block, unless " "declared as :keyword:`nonlocal` or :keyword:`global`. If a name is bound at " @@ -177,7 +185,7 @@ msgstr "" "globales.) Si una variable se una en un bloque de código pero no está " "definida ahí, es una :dfn:`free variable`." -#: ../Doc/reference/executionmodel.rst:93 +#: ../Doc/reference/executionmodel.rst:95 msgid "" "Each occurrence of a name in the program text refers to the :dfn:`binding` " "of that name established by the following name resolution rules." @@ -186,11 +194,11 @@ msgstr "" "`binding` de ese nombre, establecido por las siguientes reglas de resolución " "de nombres." -#: ../Doc/reference/executionmodel.rst:99 +#: ../Doc/reference/executionmodel.rst:101 msgid "Resolution of names" msgstr "Resolución de nombres" -#: ../Doc/reference/executionmodel.rst:103 +#: ../Doc/reference/executionmodel.rst:105 msgid "" "A :dfn:`scope` defines the visibility of a name within a block. If a local " "variable is defined in a block, its scope includes that block. If the " @@ -204,7 +212,7 @@ msgstr "" "bloque contenido en el bloque en donde está la definición, a menos que uno " "de los bloques contenidos introduzca un vínculo diferente para el nombre." -#: ../Doc/reference/executionmodel.rst:111 +#: ../Doc/reference/executionmodel.rst:113 msgid "" "When a name is used in a code block, it is resolved using the nearest " "enclosing scope. The set of all such scopes visible to a code block is " @@ -214,7 +222,7 @@ msgstr "" "el ámbito de cierre más cercano. El conjunto de todos esos ámbitos visibles " "para un bloque de código se llama el :dfn:`environment` del bloque." -#: ../Doc/reference/executionmodel.rst:119 +#: ../Doc/reference/executionmodel.rst:121 msgid "" "When a name is not found at all, a :exc:`NameError` exception is raised. If " "the current scope is a function scope, and the name refers to a local " @@ -228,7 +236,8 @@ msgstr "" "nombre es utilizado, se lanza una excepción :exc:`UnboundLocalError`. :exc:" "`UnboundLocalError` es una subclase de :exc:`NameError`." -#: ../Doc/reference/executionmodel.rst:125 +#: ../Doc/reference/executionmodel.rst:127 +#, fuzzy msgid "" "If a name binding operation occurs anywhere within a code block, all uses of " "the name within the block are treated as references to the current block. " @@ -236,7 +245,8 @@ msgid "" "bound. This rule is subtle. Python lacks declarations and allows name " "binding operations to occur anywhere within a code block. The local " "variables of a code block can be determined by scanning the entire text of " -"the block for name binding operations." +"the block for name binding operations. See :ref:`the FAQ entry on " +"UnboundLocalError ` for examples." msgstr "" "Si una operación de vinculación de nombre ocurre en cualquier parte dentro " "de un bloque de código, todos los usos del nombre dentro de ese bloque son " @@ -248,7 +258,7 @@ msgstr "" "determinarse buscando operaciones de vinculación de nombres en el texto " "completo del bloque." -#: ../Doc/reference/executionmodel.rst:132 +#: ../Doc/reference/executionmodel.rst:136 msgid "" "If the :keyword:`global` statement occurs within a block, all uses of the " "names specified in the statement refer to the bindings of those names in the " @@ -271,7 +281,7 @@ msgstr "" "namespace*). La declaración :keyword:`!global` debe preceder a todos los " "usos del nombre." -#: ../Doc/reference/executionmodel.rst:141 +#: ../Doc/reference/executionmodel.rst:145 msgid "" "The :keyword:`global` statement has the same scope as a name binding " "operation in the same block. If the nearest enclosing scope for a free " @@ -283,12 +293,14 @@ msgstr "" "para una variable libre contiene una declaración global, se trata a la " "variable libre como global." -#: ../Doc/reference/executionmodel.rst:147 +#: ../Doc/reference/executionmodel.rst:151 +#, fuzzy msgid "" "The :keyword:`nonlocal` statement causes corresponding names to refer to " "previously bound variables in the nearest enclosing function scope. :exc:" "`SyntaxError` is raised at compile time if the given name does not exist in " -"any enclosing function scope." +"any enclosing function scope. :ref:`Type parameters ` cannot be " +"rebound with the :keyword:`!nonlocal` statement." msgstr "" "La declaración :keyword:`nonlocal` causa que los nombre correspondientes se " "refieran a variables previamente vinculadas en el ámbito de la función de " @@ -296,7 +308,7 @@ msgstr "" "si el nombre dado no existe en ningún ámbito de las funciones dentro de las " "cuales está." -#: ../Doc/reference/executionmodel.rst:154 +#: ../Doc/reference/executionmodel.rst:159 msgid "" "The namespace for a module is automatically created the first time a module " "is imported. The main module for a script is always called :mod:`__main__`." @@ -305,7 +317,8 @@ msgstr "" "la primera vez que se importa el módulo. El módulo principal de un *script* " "siempre se llama :mod:`__main__`." -#: ../Doc/reference/executionmodel.rst:157 +#: ../Doc/reference/executionmodel.rst:162 +#, fuzzy msgid "" "Class definition blocks and arguments to :func:`exec` and :func:`eval` are " "special in the context of name resolution. A class definition is an " @@ -314,9 +327,10 @@ msgid "" "variables are looked up in the global namespace. The namespace of the class " "definition becomes the attribute dictionary of the class. The scope of names " "defined in a class block is limited to the class block; it does not extend " -"to the code blocks of methods -- this includes comprehensions and generator " -"expressions since they are implemented using a function scope. This means " -"that the following will fail::" +"to the code blocks of methods. This includes comprehensions and generator " +"expressions, but it does not include :ref:`annotation scopes `, which have access to their enclosing class scopes. This means that " +"the following will fail::" msgstr "" "Los bloques de definición de clase y los argumentos para :func:`exec` y :" "func:`eval` son especiales en el contexto de la resolución de nombres. Una " @@ -331,11 +345,142 @@ msgstr "" "dado que están implementadas usando el alcance de función. Esto implica que " "lo siguiente fallará::" -#: ../Doc/reference/executionmodel.rst:175 +#: ../Doc/reference/executionmodel.rst:179 +msgid "However, the following will succeed::" +msgstr "" + +#: ../Doc/reference/executionmodel.rst:190 +msgid "Annotation scopes" +msgstr "" + +#: ../Doc/reference/executionmodel.rst:192 +msgid "" +":ref:`Type parameter lists ` and :keyword:`type` statements " +"introduce *annotation scopes*, which behave mostly like function scopes, but " +"with some exceptions discussed below. :term:`Annotations ` " +"currently do not use annotation scopes, but they are expected to use " +"annotation scopes in Python 3.13 when :pep:`649` is implemented." +msgstr "" + +#: ../Doc/reference/executionmodel.rst:198 +msgid "Annotation scopes are used in the following contexts:" +msgstr "" + +#: ../Doc/reference/executionmodel.rst:200 +msgid "" +"Type parameter lists for :ref:`generic type aliases `." +msgstr "" + +#: ../Doc/reference/executionmodel.rst:201 +msgid "" +"Type parameter lists for :ref:`generic functions `. A " +"generic function's annotations are executed within the annotation scope, but " +"its defaults and decorators are not." +msgstr "" + +#: ../Doc/reference/executionmodel.rst:204 +msgid "" +"Type parameter lists for :ref:`generic classes `. A generic " +"class's base classes and keyword arguments are executed within the " +"annotation scope, but its decorators are not." +msgstr "" + +#: ../Doc/reference/executionmodel.rst:207 +msgid "" +"The bounds and constraints for type variables (:ref:`lazily evaluated `)." +msgstr "" + +#: ../Doc/reference/executionmodel.rst:209 +msgid "The value of type aliases (:ref:`lazily evaluated `)." +msgstr "" + +#: ../Doc/reference/executionmodel.rst:211 +msgid "Annotation scopes differ from function scopes in the following ways:" +msgstr "" + +#: ../Doc/reference/executionmodel.rst:213 +msgid "" +"Annotation scopes have access to their enclosing class namespace. If an " +"annotation scope is immediately within a class scope, or within another " +"annotation scope that is immediately within a class scope, the code in the " +"annotation scope can use names defined in the class scope as if it were " +"executed directly within the class body. This contrasts with regular " +"functions defined within classes, which cannot access names defined in the " +"class scope." +msgstr "" + +#: ../Doc/reference/executionmodel.rst:219 +msgid "" +"Expressions in annotation scopes cannot contain :keyword:`yield`, ``yield " +"from``, :keyword:`await`, or :token:`:= ` expressions. (These expressions are allowed in other " +"scopes contained within the annotation scope.)" +msgstr "" + +#: ../Doc/reference/executionmodel.rst:223 +msgid "" +"Names defined in annotation scopes cannot be rebound with :keyword:" +"`nonlocal` statements in inner scopes. This includes only type parameters, " +"as no other syntactic elements that can appear within annotation scopes can " +"introduce new names." +msgstr "" + +#: ../Doc/reference/executionmodel.rst:226 +msgid "" +"While annotation scopes have an internal name, that name is not reflected in " +"the :term:`__qualname__ ` of objects defined within the " +"scope. Instead, the :attr:`!__qualname__` of such objects is as if the " +"object were defined in the enclosing scope." +msgstr "" + +#: ../Doc/reference/executionmodel.rst:231 +msgid "Annotation scopes were introduced in Python 3.12 as part of :pep:`695`." +msgstr "" + +#: ../Doc/reference/executionmodel.rst:237 +msgid "Lazy evaluation" +msgstr "" + +#: ../Doc/reference/executionmodel.rst:239 +msgid "" +"The values of type aliases created through the :keyword:`type` statement are " +"*lazily evaluated*. The same applies to the bounds and constraints of type " +"variables created through the :ref:`type parameter syntax `. " +"This means that they are not evaluated when the type alias or type variable " +"is created. Instead, they are only evaluated when doing so is necessary to " +"resolve an attribute access." +msgstr "" + +#: ../Doc/reference/executionmodel.rst:246 +msgid "Example:" +msgstr "" + +#: ../Doc/reference/executionmodel.rst:262 +msgid "" +"Here the exception is raised only when the ``__value__`` attribute of the " +"type alias or the ``__bound__`` attribute of the type variable is accessed." +msgstr "" + +#: ../Doc/reference/executionmodel.rst:266 +msgid "" +"This behavior is primarily useful for references to types that have not yet " +"been defined when the type alias or type variable is created. For example, " +"lazy evaluation enables creation of mutually recursive type aliases::" +msgstr "" + +#: ../Doc/reference/executionmodel.rst:276 +msgid "" +"Lazily evaluated values are evaluated in :ref:`annotation scope `, which means that names that appear inside the lazily evaluated " +"value are looked up as if they were used in the immediately enclosing scope." +msgstr "" + +#: ../Doc/reference/executionmodel.rst:285 msgid "Builtins and restricted execution" msgstr "Integraciones y ejecución restringida" -#: ../Doc/reference/executionmodel.rst:181 +#: ../Doc/reference/executionmodel.rst:291 msgid "" "Users should not touch ``__builtins__``; it is strictly an implementation " "detail. Users wanting to override values in the builtins namespace should :" @@ -348,7 +493,7 @@ msgstr "" "`import` con el módulo :mod:`builtins` y modificar sus atributos de un modo " "adecuado." -#: ../Doc/reference/executionmodel.rst:186 +#: ../Doc/reference/executionmodel.rst:296 msgid "" "The builtins namespace associated with the execution of a code block is " "actually found by looking up the name ``__builtins__`` in its global " @@ -366,11 +511,11 @@ msgstr "" "`builtins`. En cualquier otro módulo, ``__builtins__`` es un alias para el " "diccionario del propio módulo :mod:`builtins`." -#: ../Doc/reference/executionmodel.rst:198 +#: ../Doc/reference/executionmodel.rst:308 msgid "Interaction with dynamic features" msgstr "Interacción con funcionalidades dinámicas" -#: ../Doc/reference/executionmodel.rst:200 +#: ../Doc/reference/executionmodel.rst:310 msgid "" "Name resolution of free variables occurs at runtime, not at compile time. " "This means that the following code will print 42::" @@ -379,7 +524,7 @@ msgstr "" "tiempo de compilación. Esto significa que el siguiente código va a mostrar " "42::" -#: ../Doc/reference/executionmodel.rst:211 +#: ../Doc/reference/executionmodel.rst:321 msgid "" "The :func:`eval` and :func:`exec` functions do not have access to the full " "environment for resolving names. Names may be resolved in the local and " @@ -398,11 +543,11 @@ msgstr "" "nombres global y local. Si solo se especifica un espacio de nombres, se usa " "para ambos." -#: ../Doc/reference/executionmodel.rst:222 +#: ../Doc/reference/executionmodel.rst:332 msgid "Exceptions" msgstr "Excepciones" -#: ../Doc/reference/executionmodel.rst:233 +#: ../Doc/reference/executionmodel.rst:343 msgid "" "Exceptions are a means of breaking out of the normal flow of control of a " "code block in order to handle errors or other exceptional conditions. An " @@ -417,7 +562,7 @@ msgstr "" "rodea o por cualquier bloque de código que directa o indirectamente ha " "invocado al bloque de código en el que ocurrió el error." -#: ../Doc/reference/executionmodel.rst:239 +#: ../Doc/reference/executionmodel.rst:349 msgid "" "The Python interpreter raises an exception when it detects a run-time error " "(such as division by zero). A Python program can also explicitly raise an " @@ -437,7 +582,7 @@ msgstr "" "cuando la excepción ha ocurrido en el código que la precede, como cuando " "esto no ha sucedido." -#: ../Doc/reference/executionmodel.rst:249 +#: ../Doc/reference/executionmodel.rst:359 msgid "" "Python uses the \"termination\" model of error handling: an exception " "handler can find out what happened and continue execution at an outer level, " @@ -450,7 +595,7 @@ msgstr "" "reparar la causa del error y reintentar la operación que ha fallado (excepto " "que se reingrese al trozo de código fallido desde su inicio)." -#: ../Doc/reference/executionmodel.rst:256 +#: ../Doc/reference/executionmodel.rst:366 msgid "" "When an exception is not handled at all, the interpreter terminates " "execution of the program, or returns to its interactive main loop. In " @@ -462,7 +607,7 @@ msgstr "" "cualquier caso, imprime un seguimiento de pila, excepto cuando la excepción " "es :exc:`SystemExit`." -#: ../Doc/reference/executionmodel.rst:260 +#: ../Doc/reference/executionmodel.rst:370 #, fuzzy msgid "" "Exceptions are identified by class instances. The :keyword:`except` clause " @@ -477,7 +622,7 @@ msgstr "" "instancia puede ser recibida por el gestor y puede contener información " "adicional acerca de la condición excepcional." -#: ../Doc/reference/executionmodel.rst:268 +#: ../Doc/reference/executionmodel.rst:378 msgid "" "Exception messages are not part of the Python API. Their contents may " "change from one version of Python to the next without warning and should not " @@ -489,7 +634,7 @@ msgstr "" "advertencia; el código que corre bajo múltiples versiones del intérprete no " "debería basarse en estos mensajes." -#: ../Doc/reference/executionmodel.rst:272 +#: ../Doc/reference/executionmodel.rst:382 msgid "" "See also the description of the :keyword:`try` statement in section :ref:" "`try` and :keyword:`raise` statement in section :ref:`raise`." @@ -497,14 +642,133 @@ msgstr "" "Mira también la descripción de la declaración :keyword:`try` en la sección :" "ref:`try`, y la declaración :keyword:`raise` en la sección :ref:`raise`." -#: ../Doc/reference/executionmodel.rst:277 +#: ../Doc/reference/executionmodel.rst:387 msgid "Footnotes" msgstr "Notas al pie" -#: ../Doc/reference/executionmodel.rst:278 +#: ../Doc/reference/executionmodel.rst:388 msgid "" "This limitation occurs because the code that is executed by these operations " "is not available at the time the module is compiled." msgstr "" "Esta limitación se da porque el código ejecutado por estas operaciones no " "está disponible en el momento en que se compila el módulo." + +#: ../Doc/reference/executionmodel.rst:8 +#, fuzzy +msgid "execution model" +msgstr "Modelo de ejecución" + +#: ../Doc/reference/executionmodel.rst:8 +msgid "code" +msgstr "" + +#: ../Doc/reference/executionmodel.rst:8 ../Doc/reference/executionmodel.rst:17 +msgid "block" +msgstr "" + +#: ../Doc/reference/executionmodel.rst:31 +#: ../Doc/reference/executionmodel.rst:287 +#, fuzzy +msgid "execution" +msgstr "Modelo de ejecución" + +#: ../Doc/reference/executionmodel.rst:31 +msgid "frame" +msgstr "" + +#: ../Doc/reference/executionmodel.rst:42 +msgid "namespace" +msgstr "" + +#: ../Doc/reference/executionmodel.rst:42 +#: ../Doc/reference/executionmodel.rst:103 +msgid "scope" +msgstr "" + +#: ../Doc/reference/executionmodel.rst:51 +msgid "name" +msgstr "" + +#: ../Doc/reference/executionmodel.rst:51 +#, fuzzy +msgid "binding" +msgstr "Vinculación de nombres" + +#: ../Doc/reference/executionmodel.rst:57 +msgid "from" +msgstr "" + +#: ../Doc/reference/executionmodel.rst:57 +#, fuzzy +msgid "import statement" +msgstr "declaraciones :keyword:`import`." + +#: ../Doc/reference/executionmodel.rst:87 +msgid "free" +msgstr "" + +#: ../Doc/reference/executionmodel.rst:87 +msgid "variable" +msgstr "" + +#: ../Doc/reference/executionmodel.rst:111 +msgid "environment" +msgstr "" + +#: ../Doc/reference/executionmodel.rst:117 +msgid "NameError (built-in exception)" +msgstr "" + +#: ../Doc/reference/executionmodel.rst:117 +msgid "UnboundLocalError" +msgstr "" + +#: ../Doc/reference/executionmodel.rst:157 +msgid "module" +msgstr "" + +#: ../Doc/reference/executionmodel.rst:157 +msgid "__main__" +msgstr "" + +#: ../Doc/reference/executionmodel.rst:287 +msgid "restricted" +msgstr "" + +#: ../Doc/reference/executionmodel.rst:334 +#, fuzzy +msgid "exception" +msgstr "Excepciones" + +#: ../Doc/reference/executionmodel.rst:336 +#, fuzzy +msgid "raise an exception" +msgstr "Excepciones" + +#: ../Doc/reference/executionmodel.rst:336 +#, fuzzy +msgid "handle an exception" +msgstr "Excepciones" + +#: ../Doc/reference/executionmodel.rst:336 +#, fuzzy +msgid "exception handler" +msgstr "Excepciones" + +#: ../Doc/reference/executionmodel.rst:336 +msgid "errors" +msgstr "" + +#: ../Doc/reference/executionmodel.rst:336 +msgid "error handling" +msgstr "" + +#: ../Doc/reference/executionmodel.rst:357 +#, fuzzy +msgid "termination model" +msgstr "Modelo de ejecución" + +#: ../Doc/reference/executionmodel.rst:364 +msgid "SystemExit (built-in exception)" +msgstr "" diff --git a/reference/expressions.po b/reference/expressions.po index 559cdee57d..6b684590b5 100644 --- a/reference/expressions.po +++ b/reference/expressions.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-02 19:31+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/reference/expressions.rst:6 msgid "Expressions" @@ -232,11 +232,12 @@ msgstr "" "mismo objeto)." #: ../Doc/reference/expressions.rst:156 +#, fuzzy msgid "" "Note that tuples are not formed by the parentheses, but rather by use of the " -"comma operator. The exception is the empty tuple, for which parentheses " -"*are* required --- allowing unparenthesized \"nothing\" in expressions would " -"cause ambiguities and allow common typos to pass uncaught." +"comma. The exception is the empty tuple, for which parentheses *are* " +"required --- allowing unparenthesized \"nothing\" in expressions would cause " +"ambiguities and allow common typos to pass uncaught." msgstr "" "Note que las tuplas no son formadas por los paréntesis, sino más bien " "mediante el uso del operador de coma. La excepción es la tupla vacía, para " @@ -439,9 +440,10 @@ msgid "Dictionary displays" msgstr "Despliegues de diccionario" #: ../Doc/reference/expressions.rst:307 +#, fuzzy msgid "" -"A dictionary display is a possibly empty series of key/datum pairs enclosed " -"in curly braces:" +"A dictionary display is a possibly empty series of dict items (key/value " +"pairs) enclosed in curly braces:" msgstr "" "Un despliegue de diccionario es una serie posiblemente vacía de pares clave/" "datos encerrados entre llaves:" @@ -451,13 +453,14 @@ msgid "A dictionary display yields a new dictionary object." msgstr "Un despliegue de diccionario produce un nuevo objeto diccionario." #: ../Doc/reference/expressions.rst:318 +#, fuzzy msgid "" -"If a comma-separated sequence of key/datum pairs is given, they are " -"evaluated from left to right to define the entries of the dictionary: each " -"key object is used as a key into the dictionary to store the corresponding " -"datum. This means that you can specify the same key multiple times in the " -"key/datum list, and the final dictionary's value for that key will be the " -"last one given." +"If a comma-separated sequence of dict items is given, they are evaluated " +"from left to right to define the entries of the dictionary: each key object " +"is used as a key into the dictionary to store the corresponding value. This " +"means that you can specify the same key multiple times in the dict item " +"list, and the final dictionary's value for that key will be the last one " +"given." msgstr "" "Si es dada una secuencia separada por comas de pares clave/datos, son " "evaluadas desde la izquierda a la derecha para definir las entradas del " @@ -467,11 +470,12 @@ msgstr "" "el valor final del diccionario para esa clave será la última dada." #: ../Doc/reference/expressions.rst:328 +#, fuzzy msgid "" "A double asterisk ``**`` denotes :dfn:`dictionary unpacking`. Its operand " "must be a :term:`mapping`. Each mapping item is added to the new " -"dictionary. Later values replace values already set by earlier key/datum " -"pairs and earlier dictionary unpackings." +"dictionary. Later values replace values already set by earlier dict items " +"and earlier dictionary unpackings." msgstr "" "Un doble asterisco ``**`` denota :dfn:`dictionary unpacking`. Su operando " "debe ser un :term:`mapping`. Cada elemento de mapeo es añadido al nuevo " @@ -498,11 +502,12 @@ msgstr "" "diccionario en el orden que son producidos." #: ../Doc/reference/expressions.rst:344 +#, fuzzy msgid "" "Restrictions on the types of the key values are listed earlier in section :" "ref:`types`. (To summarize, the key type should be :term:`hashable`, which " "excludes all mutable objects.) Clashes between duplicate keys are not " -"detected; the last datum (textually rightmost in the display) stored for a " +"detected; the last value (textually rightmost in the display) stored for a " "given key value prevails." msgstr "" "Las restricciones de los tipos de los valores de clave son listados " @@ -672,9 +677,10 @@ msgid "" "function. The execution starts when one of the generator's methods is " "called. At that time, the execution proceeds to the first yield expression, " "where it is suspended again, returning the value of :token:`~python-grammar:" -"expression_list` to the generator's caller. By suspended, we mean that all " -"local state is retained, including the current bindings of local variables, " -"the instruction pointer, the internal evaluation stack, and the state of any " +"expression_list` to the generator's caller, or ``None`` if :token:`~python-" +"grammar:expression_list` is omitted. By suspended, we mean that all local " +"state is retained, including the current bindings of local variables, the " +"instruction pointer, the internal evaluation stack, and the state of any " "exception handling. When the execution is resumed by calling one of the " "generator's methods, the function can proceed exactly as if the yield " "expression were just another external call. The value of the yield " @@ -701,7 +707,7 @@ msgstr "" "`None`. De otra forma, si se usa :meth:`~generator.send`, entonces el " "resultado será el valor pasado a ese método." -#: ../Doc/reference/expressions.rst:470 +#: ../Doc/reference/expressions.rst:472 msgid "" "All of this makes generator functions quite similar to coroutines; they " "yield multiple times, they have more than one entry point and their " @@ -715,7 +721,7 @@ msgstr "" "puede controlar si la ejecución debe continuar después de producir; el " "control siempre es transferido al invocador del generador." -#: ../Doc/reference/expressions.rst:476 +#: ../Doc/reference/expressions.rst:478 msgid "" "Yield expressions are allowed anywhere in a :keyword:`try` construct. If " "the generator is not resumed before it is finalized (by reaching a zero " @@ -729,7 +735,7 @@ msgstr "" "generador-iterador :meth:`~generator.close` será invocado, permitiendo la " "ejecución de cualquier cláusula :keyword:`finally` pendiente." -#: ../Doc/reference/expressions.rst:485 +#: ../Doc/reference/expressions.rst:487 msgid "" "When ``yield from `` is used, the supplied expression must be an " "iterable. The values produced by iterating that iterable are passed directly " @@ -749,7 +755,7 @@ msgstr "" "exc:`AttributeError` o :exc:`TypeError`, mientras que :meth:`~generator." "throw` solo lanzará la excepción pasada inmediatamente." -#: ../Doc/reference/expressions.rst:494 +#: ../Doc/reference/expressions.rst:496 msgid "" "When the underlying iterator is complete, the :attr:`~StopIteration.value` " "attribute of the raised :exc:`StopIteration` instance becomes the value of " @@ -763,13 +769,13 @@ msgstr "" "explícitamente al generar :exc:`StopIteration` o automáticamente cuando el " "subiterador es un generador (retornando un valor del subgenerador)." -#: ../Doc/reference/expressions.rst:500 +#: ../Doc/reference/expressions.rst:502 msgid "Added ``yield from `` to delegate control flow to a subiterator." msgstr "" "Añadido ``yield from `` para delegar el control de flujo a un " "subiterador." -#: ../Doc/reference/expressions.rst:503 +#: ../Doc/reference/expressions.rst:505 msgid "" "The parentheses may be omitted when the yield expression is the sole " "expression on the right hand side of an assignment statement." @@ -777,11 +783,11 @@ msgstr "" "Los paréntesis pueden ser omitidos cuando la expresión yield es la única " "expresión en el lado derecho de una sentencia de asignación." -#: ../Doc/reference/expressions.rst:509 +#: ../Doc/reference/expressions.rst:511 msgid ":pep:`255` - Simple Generators" msgstr ":pep:`255` - Generadores Simples" -#: ../Doc/reference/expressions.rst:509 +#: ../Doc/reference/expressions.rst:511 msgid "" "The proposal for adding generators and the :keyword:`yield` statement to " "Python." @@ -789,11 +795,11 @@ msgstr "" "La propuesta para añadir generadores y la sentencia :keyword:`yield` a " "Python." -#: ../Doc/reference/expressions.rst:513 +#: ../Doc/reference/expressions.rst:515 msgid ":pep:`342` - Coroutines via Enhanced Generators" msgstr ":pep:`342` - Corrutinas mediante Generadores Mejorados" -#: ../Doc/reference/expressions.rst:512 +#: ../Doc/reference/expressions.rst:514 msgid "" "The proposal to enhance the API and syntax of generators, making them usable " "as simple coroutines." @@ -801,11 +807,11 @@ msgstr "" "La propuesta para mejorar la API y la sintaxis de generadores, haciéndolos " "utilizables como corrutinas simples." -#: ../Doc/reference/expressions.rst:517 +#: ../Doc/reference/expressions.rst:519 msgid ":pep:`380` - Syntax for Delegating to a Subgenerator" msgstr ":pep:`380` - Sintaxis para Delegar a un Subgenerador" -#: ../Doc/reference/expressions.rst:516 +#: ../Doc/reference/expressions.rst:518 #, fuzzy msgid "" "The proposal to introduce the :token:`~python-grammar:yield_from` syntax, " @@ -814,11 +820,11 @@ msgstr "" "La propuesta para introducir la sintaxis :token:`yield_from`, facilitando la " "delegación a subgeneradores." -#: ../Doc/reference/expressions.rst:520 +#: ../Doc/reference/expressions.rst:522 msgid ":pep:`525` - Asynchronous Generators" msgstr ":pep:`525`- Generadores Asincrónicos" -#: ../Doc/reference/expressions.rst:520 +#: ../Doc/reference/expressions.rst:522 msgid "" "The proposal that expanded on :pep:`492` by adding generator capabilities to " "coroutine functions." @@ -826,11 +832,11 @@ msgstr "" "La propuesta que expandió :pep:`492` añadiendo capacidades de generador a " "las funciones corrutina." -#: ../Doc/reference/expressions.rst:527 +#: ../Doc/reference/expressions.rst:529 msgid "Generator-iterator methods" msgstr "Métodos generador-iterador" -#: ../Doc/reference/expressions.rst:529 +#: ../Doc/reference/expressions.rst:531 msgid "" "This subsection describes the methods of a generator iterator. They can be " "used to control the execution of a generator function." @@ -838,7 +844,7 @@ msgstr "" "Esta subsección describe los métodos de un generador iterador. Estos pueden " "ser usados para controlar la ejecución de una función generadora." -#: ../Doc/reference/expressions.rst:532 +#: ../Doc/reference/expressions.rst:534 msgid "" "Note that calling any of the generator methods below when the generator is " "already executing raises a :exc:`ValueError` exception." @@ -847,7 +853,7 @@ msgstr "" "siguientes cuando el generador está todavía en ejecución genera una " "excepción :exc:`ValueError`." -#: ../Doc/reference/expressions.rst:540 +#: ../Doc/reference/expressions.rst:542 #, fuzzy msgid "" "Starts the execution of a generator function or resumes it at the last " @@ -868,7 +874,7 @@ msgstr "" "generador termina sin producir otro valor, se genera una excepción :exc:" "`StopIteration`." -#: ../Doc/reference/expressions.rst:549 +#: ../Doc/reference/expressions.rst:551 msgid "" "This method is normally called implicitly, e.g. by a :keyword:`for` loop, or " "by the built-in :func:`next` function." @@ -876,7 +882,7 @@ msgstr "" "Este método es normalmente invocado implícitamente, por ejemplo, por un " "bucle :keyword:`for` o por la función incorporada :func:`next`." -#: ../Doc/reference/expressions.rst:555 +#: ../Doc/reference/expressions.rst:557 msgid "" "Resumes the execution and \"sends\" a value into the generator function. " "The *value* argument becomes the result of the current yield expression. " @@ -894,7 +900,7 @@ msgstr "" "ser invocado con :const:`None` como el argumento, debido a que no hay " "expresión yield que pueda recibir el valor." -#: ../Doc/reference/expressions.rst:567 +#: ../Doc/reference/expressions.rst:569 #, fuzzy msgid "" "Raises an exception at the point where the generator was paused, and returns " @@ -910,13 +916,13 @@ msgstr "" "genera una excepción diferente, entonces se propaga esa excepción al " "invocador." -#: ../Doc/reference/expressions.rst:573 +#: ../Doc/reference/expressions.rst:575 msgid "" "In typical use, this is called with a single exception instance similar to " "the way the :keyword:`raise` keyword is used." msgstr "" -#: ../Doc/reference/expressions.rst:576 +#: ../Doc/reference/expressions.rst:578 msgid "" "For backwards compatibility, however, the second signature is supported, " "following a convention from older versions of Python. The *type* argument " @@ -927,7 +933,13 @@ msgid "" "*value* may be cleared." msgstr "" -#: ../Doc/reference/expressions.rst:590 +#: ../Doc/reference/expressions.rst:589 ../Doc/reference/expressions.rst:763 +msgid "" +"The second signature \\(type\\[, value\\[, traceback\\]\\]\\) is deprecated " +"and may be removed in a future version of Python." +msgstr "" + +#: ../Doc/reference/expressions.rst:597 msgid "" "Raises a :exc:`GeneratorExit` at the point where the generator function was " "paused. If the generator function then exits gracefully, is already closed, " @@ -945,11 +957,11 @@ msgstr "" "propagado al invocador. :meth:`close` no hace nada si el generador ya fue " "terminado debido a una excepción o una salida normal." -#: ../Doc/reference/expressions.rst:601 +#: ../Doc/reference/expressions.rst:608 msgid "Examples" msgstr "Ejemplos" -#: ../Doc/reference/expressions.rst:603 +#: ../Doc/reference/expressions.rst:610 msgid "" "Here is a simple example that demonstrates the behavior of generators and " "generator functions::" @@ -957,7 +969,7 @@ msgstr "" "Aquí hay un ejemplo simple que demuestra el comportamiento de generadores y " "funciones generadoras:" -#: ../Doc/reference/expressions.rst:630 +#: ../Doc/reference/expressions.rst:637 msgid "" "For examples using ``yield from``, see :ref:`pep-380` in \"What's New in " "Python.\"" @@ -965,11 +977,11 @@ msgstr "" "Para ejemplos usando ``yield from``, ver :ref:`pep-380` en \"Qué es nuevo en " "Python.\"" -#: ../Doc/reference/expressions.rst:636 +#: ../Doc/reference/expressions.rst:643 msgid "Asynchronous generator functions" msgstr "Funciones generadoras asincrónicas" -#: ../Doc/reference/expressions.rst:638 +#: ../Doc/reference/expressions.rst:645 msgid "" "The presence of a yield expression in a function or method defined using :" "keyword:`async def` further defines the function as an :term:`asynchronous " @@ -979,7 +991,7 @@ msgstr "" "keyword:`async def` adicionalmente define la función como una función :term:" "`asynchronous generator`." -#: ../Doc/reference/expressions.rst:642 +#: ../Doc/reference/expressions.rst:649 msgid "" "When an asynchronous generator function is called, it returns an " "asynchronous iterator known as an asynchronous generator object. That object " @@ -995,7 +1007,7 @@ msgstr "" "función corrutina análogamente a como sería usado un objeto generador en una " "sentencia :keyword:`for`." -#: ../Doc/reference/expressions.rst:649 +#: ../Doc/reference/expressions.rst:656 msgid "" "Calling one of the asynchronous generator's methods returns an :term:" "`awaitable` object, and the execution starts when this object is awaited on. " @@ -1014,7 +1026,7 @@ msgid "" "method." msgstr "" -#: ../Doc/reference/expressions.rst:664 +#: ../Doc/reference/expressions.rst:671 msgid "" "If an asynchronous generator happens to exit early by :keyword:`break`, the " "caller task being cancelled, or other exceptions, the generator's async " @@ -1036,7 +1048,7 @@ msgstr "" "aclose` para finalizar el generador y finalmente desconectarlo del bucle de " "eventos." -#: ../Doc/reference/expressions.rst:674 +#: ../Doc/reference/expressions.rst:681 msgid "" "In an asynchronous generator function, yield expressions are allowed " "anywhere in a :keyword:`try` construct. However, if an asynchronous " @@ -1060,7 +1072,7 @@ msgstr "" "ejecutar el objeto corrutina resultante, permitiendo así la ejecución de " "cualquier cláusula :keyword:`!finally` pendiente." -#: ../Doc/reference/expressions.rst:685 +#: ../Doc/reference/expressions.rst:692 msgid "" "To take care of finalization upon event loop termination, an event loop " "should define a *finalizer* function which takes an asynchronous generator-" @@ -1082,7 +1094,7 @@ msgstr "" "consulte la implementación de ``asyncio.Loop.shutdown_asyncgens`` en :source:" "`Lib/asyncio/base_events.py`." -#: ../Doc/reference/expressions.rst:694 +#: ../Doc/reference/expressions.rst:701 msgid "" "The expression ``yield from `` is a syntax error when used in an " "asynchronous generator function." @@ -1090,11 +1102,11 @@ msgstr "" "La expresión ``yield from `` es un error de sintaxis cuando es usada " "en una función generadora asincrónica." -#: ../Doc/reference/expressions.rst:701 +#: ../Doc/reference/expressions.rst:708 msgid "Asynchronous generator-iterator methods" msgstr "Métodos asincrónicos de generador-iterador" -#: ../Doc/reference/expressions.rst:703 +#: ../Doc/reference/expressions.rst:710 msgid "" "This subsection describes the methods of an asynchronous generator iterator, " "which are used to control the execution of a generator function." @@ -1102,7 +1114,7 @@ msgstr "" "Esta subsección describe los métodos de un generador iterador asincrónico, " "los cuales son usados para controlar la ejecución de una función generadora." -#: ../Doc/reference/expressions.rst:711 +#: ../Doc/reference/expressions.rst:718 #, fuzzy msgid "" "Returns an awaitable which when run starts to execute the asynchronous " @@ -1128,14 +1140,14 @@ msgstr "" "esperable en su lugar genera una excepción :exc:`StopAsyncIteration`, " "señalando que la iteración asincrónica se ha completado." -#: ../Doc/reference/expressions.rst:723 +#: ../Doc/reference/expressions.rst:730 msgid "" "This method is normally called implicitly by a :keyword:`async for` loop." msgstr "" "Este método es invocado normalmente de forma implícita por un bucle :keyword:" "`async for`." -#: ../Doc/reference/expressions.rst:728 +#: ../Doc/reference/expressions.rst:735 msgid "" "Returns an awaitable which when run resumes the execution of the " "asynchronous generator. As with the :meth:`~generator.send()` method for a " @@ -1160,7 +1172,7 @@ msgstr "" "generador asincrónico, debe ser invocado con :const:`None` como argumento, " "porque no hay expresión yield que pueda recibir el valor." -#: ../Doc/reference/expressions.rst:743 +#: ../Doc/reference/expressions.rst:751 msgid "" "Returns an awaitable that raises an exception of type ``type`` at the point " "where the asynchronous generator was paused, and returns the next value " @@ -1180,7 +1192,7 @@ msgstr "" "diferente, entonces cuando se ejecuta el esperable esa excepción se propaga " "al invocador del esperable." -#: ../Doc/reference/expressions.rst:758 +#: ../Doc/reference/expressions.rst:771 msgid "" "Returns an awaitable that when run will throw a :exc:`GeneratorExit` into " "the asynchronous generator function at the point where it was paused. If the " @@ -1208,11 +1220,11 @@ msgstr "" "terminación normal, entonces futuras invocaciones a :meth:`aclose` " "retornarán un esperable que no hace nada." -#: ../Doc/reference/expressions.rst:774 +#: ../Doc/reference/expressions.rst:787 msgid "Primaries" msgstr "Primarios" -#: ../Doc/reference/expressions.rst:778 +#: ../Doc/reference/expressions.rst:791 msgid "" "Primaries represent the most tightly bound operations of the language. Their " "syntax is:" @@ -1220,16 +1232,16 @@ msgstr "" "Los primarios representan las operaciones más fuertemente ligadas al " "lenguaje. Su sintaxis es:" -#: ../Doc/reference/expressions.rst:788 +#: ../Doc/reference/expressions.rst:801 msgid "Attribute references" msgstr "Referencias de atributos" -#: ../Doc/reference/expressions.rst:794 +#: ../Doc/reference/expressions.rst:807 msgid "An attribute reference is a primary followed by a period and a name:" msgstr "" "Una referencia de atributo es un primario seguido de un punto y un nombre:" -#: ../Doc/reference/expressions.rst:804 +#: ../Doc/reference/expressions.rst:817 msgid "" "The primary must evaluate to an object of a type that supports attribute " "references, which most objects do. This object is then asked to produce the " @@ -1248,11 +1260,11 @@ msgstr "" "determinado por el objeto. Múltiples evaluaciones la misma referencia de " "atributo pueden producir diferentes objetos." -#: ../Doc/reference/expressions.rst:816 +#: ../Doc/reference/expressions.rst:829 msgid "Subscriptions" msgstr "Suscripciones" -#: ../Doc/reference/expressions.rst:831 +#: ../Doc/reference/expressions.rst:844 msgid "" "The subscription of an instance of a :ref:`container class ` " "will generally select an element from the container. The subscription of a :" @@ -1260,13 +1272,13 @@ msgid "" "`GenericAlias ` object." msgstr "" -#: ../Doc/reference/expressions.rst:839 +#: ../Doc/reference/expressions.rst:852 msgid "" "When an object is subscripted, the interpreter will evaluate the primary and " "the expression list." msgstr "" -#: ../Doc/reference/expressions.rst:842 +#: ../Doc/reference/expressions.rst:855 msgid "" "The primary must evaluate to an object that supports subscription. An object " "may support subscription through defining one or both of :meth:`~object." @@ -1276,14 +1288,14 @@ msgid "" "called instead of ``__getitem__``, see :ref:`classgetitem-versus-getitem`." msgstr "" -#: ../Doc/reference/expressions.rst:849 +#: ../Doc/reference/expressions.rst:862 msgid "" "If the expression list contains at least one comma, it will evaluate to a :" "class:`tuple` containing the items of the expression list. Otherwise, the " "expression list will evaluate to the value of the list's sole member." msgstr "" -#: ../Doc/reference/expressions.rst:853 +#: ../Doc/reference/expressions.rst:866 #, fuzzy msgid "" "For built-in objects, there are two types of objects that support " @@ -1292,7 +1304,7 @@ msgstr "" "Para objetos incorporados, hay dos tipos de objetos que soportan " "subscripción:" -#: ../Doc/reference/expressions.rst:856 +#: ../Doc/reference/expressions.rst:869 #, fuzzy msgid "" "Mappings. If the primary is a :term:`mapping`, the expression list must " @@ -1305,7 +1317,7 @@ msgstr "" "valor en el mapeo que corresponda a esa clave. (La expresión de lista es una " "tupla excepto si tiene exactamente un elemento.)" -#: ../Doc/reference/expressions.rst:860 +#: ../Doc/reference/expressions.rst:873 msgid "" "Sequences. If the primary is a :term:`sequence`, the expression list must " "evaluate to an :class:`int` or a :class:`slice` (as discussed in the " @@ -1313,7 +1325,7 @@ msgid "" "`str`, :class:`list` and :class:`tuple` classes." msgstr "" -#: ../Doc/reference/expressions.rst:865 +#: ../Doc/reference/expressions.rst:878 msgid "" "The formal syntax makes no special provision for negative indices in :term:" "`sequences `. However, built-in sequences all provide a :meth:" @@ -1327,7 +1339,7 @@ msgid "" "support." msgstr "" -#: ../Doc/reference/expressions.rst:879 +#: ../Doc/reference/expressions.rst:892 #, fuzzy msgid "" "A :class:`string ` is a special kind of sequence whose items are " @@ -1337,11 +1349,11 @@ msgstr "" "Los elementos de una cadena de caracteres son caracteres. Un caracter no es " "un tipo de datos separado sino una cadena de exactamente un caracter." -#: ../Doc/reference/expressions.rst:887 +#: ../Doc/reference/expressions.rst:900 msgid "Slicings" msgstr "Segmentos" -#: ../Doc/reference/expressions.rst:901 +#: ../Doc/reference/expressions.rst:914 msgid "" "A slicing selects a range of items in a sequence object (e.g., a string, " "tuple or list). Slicings may be used as expressions or as targets in " @@ -1352,7 +1364,7 @@ msgstr "" "como expresiones o como objetivos en asignaciones o sentencias :keyword:" "`del`. La sintaxis para un segmento:" -#: ../Doc/reference/expressions.rst:914 +#: ../Doc/reference/expressions.rst:927 msgid "" "There is ambiguity in the formal syntax here: anything that looks like an " "expression list also looks like a slice list, so any subscription can be " @@ -1369,7 +1381,7 @@ msgstr "" "como un segmento (este es el caso si el segmento de lista no contiene un " "segmento adecuado)." -#: ../Doc/reference/expressions.rst:926 +#: ../Doc/reference/expressions.rst:939 msgid "" "The semantics for a slicing are as follows. The primary is indexed (using " "the same :meth:`__getitem__` method as normal subscription) with a key that " @@ -1396,11 +1408,11 @@ msgstr "" "superior y paso, respectivamente, substituyendo ``None`` para las " "expresiones faltantes." -#: ../Doc/reference/expressions.rst:950 +#: ../Doc/reference/expressions.rst:963 msgid "Calls" msgstr "Invocaciones" -#: ../Doc/reference/expressions.rst:952 +#: ../Doc/reference/expressions.rst:965 msgid "" "A call calls a callable object (e.g., a :term:`function`) with a possibly " "empty series of :term:`arguments `:" @@ -1408,7 +1420,7 @@ msgstr "" "Una invocación invoca un objeto invocable (ej., una :term:`function`) con " "una serie posiblemente vacía de :term:`argumentos `:" -#: ../Doc/reference/expressions.rst:969 +#: ../Doc/reference/expressions.rst:982 msgid "" "An optional trailing comma may be present after the positional and keyword " "arguments but does not affect the semantics." @@ -1416,7 +1428,7 @@ msgstr "" "Una coma final opcional puede estar presente después de los argumentos " "posicionales y de palabra clave pero no afecta a las semánticas." -#: ../Doc/reference/expressions.rst:975 +#: ../Doc/reference/expressions.rst:988 msgid "" "The primary must evaluate to a callable object (user-defined functions, " "built-in functions, methods of built-in objects, class objects, methods of " @@ -1433,7 +1445,7 @@ msgstr "" "sección :ref:`function` para la sintaxis formal de listas de :term:" "`parameter`." -#: ../Doc/reference/expressions.rst:983 +#: ../Doc/reference/expressions.rst:996 #, fuzzy msgid "" "If keyword arguments are present, they are first converted to positional " @@ -1475,7 +1487,7 @@ msgstr "" "genera una excepción :exc:`TypeError`. De lo contrario, la lista de ranuras " "rellenas se utiliza como la lista de argumentos para la llamada." -#: ../Doc/reference/expressions.rst:1003 +#: ../Doc/reference/expressions.rst:1016 msgid "" "An implementation may provide built-in functions whose positional parameters " "do not have names, even if they are 'named' for the purpose of " @@ -1489,7 +1501,7 @@ msgstr "" "palabras clave. En CPython, este es el caso para funciones implementadas en " "C que usan :c:func:`PyArg_ParseTuple` para analizar sus argumentos." -#: ../Doc/reference/expressions.rst:1009 +#: ../Doc/reference/expressions.rst:1022 msgid "" "If there are more positional arguments than there are formal parameter " "slots, a :exc:`TypeError` exception is raised, unless a formal parameter " @@ -1503,7 +1515,7 @@ msgstr "" "parámetro formal recibe una tupla conteniendo los argumentos posicionales " "sobrantes (o una tupla vacía su no hay argumentos posicionales sobrantes)." -#: ../Doc/reference/expressions.rst:1015 +#: ../Doc/reference/expressions.rst:1028 msgid "" "If any keyword argument does not correspond to a formal parameter name, a :" "exc:`TypeError` exception is raised, unless a formal parameter using the " @@ -1520,7 +1532,7 @@ msgstr "" "de argumento como sus valores correspondientes), o un (nuevo) diccionario " "vacío si no hay argumentos de palabra clave sobrantes." -#: ../Doc/reference/expressions.rst:1026 +#: ../Doc/reference/expressions.rst:1039 msgid "" "If the syntax ``*expression`` appears in the function call, ``expression`` " "must evaluate to an :term:`iterable`. Elements from these iterables are " @@ -1536,7 +1548,7 @@ msgstr "" "*y1*, ..., *yM*, equivale a una invocación con M+4 argumentos posicionales " "*x1*, *x2*, *y1*, ..., *yM*, *x3*, *x4*." -#: ../Doc/reference/expressions.rst:1033 +#: ../Doc/reference/expressions.rst:1046 msgid "" "A consequence of this is that although the ``*expression`` syntax may appear " "*after* explicit keyword arguments, it is processed *before* the keyword " @@ -1547,7 +1559,7 @@ msgstr "" "*antes* de los argumentos de palabra clave (y cualquiera de los argumentos " "``*expression`` -- ver abajo). Así que::" -#: ../Doc/reference/expressions.rst:1049 +#: ../Doc/reference/expressions.rst:1062 #, fuzzy msgid "" "It is unusual for both keyword arguments and the ``*expression`` syntax to " @@ -1557,7 +1569,7 @@ msgstr "" "como la sintaxis ``*expression``, así que en la práctica no surge esta " "confusión." -#: ../Doc/reference/expressions.rst:1055 +#: ../Doc/reference/expressions.rst:1068 #, fuzzy msgid "" "If the syntax ``**expression`` appears in the function call, ``expression`` " @@ -1572,7 +1584,7 @@ msgstr "" "clave está ya presente (como un argumento de palabra clave explícito o desde " "otro desempaquetado), se genera una excepción :exc:`TypeError`." -#: ../Doc/reference/expressions.rst:1061 +#: ../Doc/reference/expressions.rst:1074 msgid "" "When ``**expression`` is used, each key in this mapping must be a string. " "Each value from the mapping is assigned to the first formal parameter " @@ -1584,7 +1596,7 @@ msgid "" "is raised." msgstr "" -#: ../Doc/reference/expressions.rst:1071 +#: ../Doc/reference/expressions.rst:1084 msgid "" "Formal parameters using the syntax ``*identifier`` or ``**identifier`` " "cannot be used as positional argument slots or as keyword argument names." @@ -1593,7 +1605,7 @@ msgstr "" "o ``**identifier`` como ranuras de argumentos posicionales o como nombres de " "argumentos de palabra clave." -#: ../Doc/reference/expressions.rst:1074 +#: ../Doc/reference/expressions.rst:1087 msgid "" "Function calls accept any number of ``*`` and ``**`` unpackings, positional " "arguments may follow iterable unpackings (``*``), and keyword arguments may " @@ -1605,7 +1617,7 @@ msgstr "" "desempaquetados de diccionario (``*``). Originalmente propuesto por :pep:" "`448`." -#: ../Doc/reference/expressions.rst:1080 +#: ../Doc/reference/expressions.rst:1093 msgid "" "A call always returns some value, possibly ``None``, unless it raises an " "exception. How this value is computed depends on the type of the callable " @@ -1615,15 +1627,15 @@ msgstr "" "que genere una excepción. Cómo se calcula este valor depende del tipo del " "objeto invocable." -#: ../Doc/reference/expressions.rst:1084 +#: ../Doc/reference/expressions.rst:1097 msgid "If it is---" msgstr "Si es---" -#: ../Doc/reference/expressions.rst:1097 +#: ../Doc/reference/expressions.rst:1110 msgid "a user-defined function:" msgstr "una función definida por el usuario:" -#: ../Doc/reference/expressions.rst:1093 +#: ../Doc/reference/expressions.rst:1106 msgid "" "The code block for the function is executed, passing it the argument list. " "The first thing the code block will do is bind the formal parameters to the " @@ -1637,11 +1649,11 @@ msgstr "" "`function`. Cuando el bloque de código ejecuta una sentencia :keyword:" "`return`, esto especifica el valor de retorno de la invocación de función." -#: ../Doc/reference/expressions.rst:1111 +#: ../Doc/reference/expressions.rst:1124 msgid "a built-in function or method:" msgstr "una función o método incorporado:" -#: ../Doc/reference/expressions.rst:1110 +#: ../Doc/reference/expressions.rst:1123 msgid "" "The result is up to the interpreter; see :ref:`built-in-funcs` for the " "descriptions of built-in functions and methods." @@ -1649,19 +1661,19 @@ msgstr "" "El resultado depende del intérprete; ver :ref:`built-in-funcs` para las " "descripciones de funciones y métodos incorporados." -#: ../Doc/reference/expressions.rst:1118 +#: ../Doc/reference/expressions.rst:1131 msgid "a class object:" msgstr "un objeto de clase:" -#: ../Doc/reference/expressions.rst:1118 +#: ../Doc/reference/expressions.rst:1131 msgid "A new instance of that class is returned." msgstr "Se retorna una nueva instancia de esa clase." -#: ../Doc/reference/expressions.rst:1128 +#: ../Doc/reference/expressions.rst:1141 msgid "a class instance method:" msgstr "un método de una instancia de clase:" -#: ../Doc/reference/expressions.rst:1126 +#: ../Doc/reference/expressions.rst:1139 msgid "" "The corresponding user-defined function is called, with an argument list " "that is one longer than the argument list of the call: the instance becomes " @@ -1671,11 +1683,11 @@ msgstr "" "de argumentos con un largo uno mayor que la lista de argumentos de la " "invocación: la instancia se convierte en el primer argumento." -#: ../Doc/reference/expressions.rst:1137 +#: ../Doc/reference/expressions.rst:1150 msgid "a class instance:" msgstr "una instancia de clase:" -#: ../Doc/reference/expressions.rst:1135 +#: ../Doc/reference/expressions.rst:1148 msgid "" "The class must define a :meth:`__call__` method; the effect is then the same " "as if that method was called." @@ -1683,11 +1695,11 @@ msgstr "" "La clase debe definir un método :meth:`__call__`; el efecto es entonces el " "mismo que si ese método fuera invocado." -#: ../Doc/reference/expressions.rst:1143 ../Doc/reference/expressions.rst:1924 +#: ../Doc/reference/expressions.rst:1156 ../Doc/reference/expressions.rst:1937 msgid "Await expression" msgstr "Expresión await" -#: ../Doc/reference/expressions.rst:1145 +#: ../Doc/reference/expressions.rst:1158 msgid "" "Suspend the execution of :term:`coroutine` on an :term:`awaitable` object. " "Can only be used inside a :term:`coroutine function`." @@ -1695,11 +1707,11 @@ msgstr "" "Suspende la ejecución de :term:`coroutine` o un objeto :term:`awaitable`. " "Puede ser usado sólo dentro de una :term:`coroutine function`." -#: ../Doc/reference/expressions.rst:1157 +#: ../Doc/reference/expressions.rst:1170 msgid "The power operator" msgstr "El operador de potencia" -#: ../Doc/reference/expressions.rst:1163 +#: ../Doc/reference/expressions.rst:1176 msgid "" "The power operator binds more tightly than unary operators on its left; it " "binds less tightly than unary operators on its right. The syntax is:" @@ -1708,7 +1720,7 @@ msgstr "" "unarios a su izquierda; se vincula con menos fuerza que los operadores " "unarios a su derecha. La sintaxis es:" -#: ../Doc/reference/expressions.rst:1169 +#: ../Doc/reference/expressions.rst:1182 msgid "" "Thus, in an unparenthesized sequence of power and unary operators, the " "operators are evaluated from right to left (this does not constrain the " @@ -1719,7 +1731,7 @@ msgstr "" "no se constriñe al orden de evaluación para los operandos): ``-1**2`` " "resulta en ``-1``." -#: ../Doc/reference/expressions.rst:1173 +#: ../Doc/reference/expressions.rst:1186 msgid "" "The power operator has the same semantics as the built-in :func:`pow` " "function, when called with two arguments: it yields its left argument raised " @@ -1732,7 +1744,7 @@ msgstr "" "derecha. Los argumentos numéricos se convierten primero en un tipo común y " "el resultado es de ese tipo." -#: ../Doc/reference/expressions.rst:1178 +#: ../Doc/reference/expressions.rst:1191 msgid "" "For int operands, the result has the same type as the operands unless the " "second argument is negative; in that case, all arguments are converted to " @@ -1744,7 +1756,7 @@ msgstr "" "son convertidos a float y se entrega un resultado float. Por ejemplo, " "``10**2`` retorna ``100``, pero ``10**-2`` retorna ``0.01``." -#: ../Doc/reference/expressions.rst:1183 +#: ../Doc/reference/expressions.rst:1196 msgid "" "Raising ``0.0`` to a negative power results in a :exc:`ZeroDivisionError`. " "Raising a negative number to a fractional power results in a :class:" @@ -1755,24 +1767,24 @@ msgstr "" "resulta en un número :class:`complex`. (En versiones anteriores se genera " "un :exc:`ValueError`.)" -#: ../Doc/reference/expressions.rst:1187 +#: ../Doc/reference/expressions.rst:1200 msgid "" "This operation can be customized using the special :meth:`__pow__` method." msgstr "" "Esta operación se puede personalizar mediante el método especial :meth:" "`__pow__`." -#: ../Doc/reference/expressions.rst:1192 +#: ../Doc/reference/expressions.rst:1205 msgid "Unary arithmetic and bitwise operations" msgstr "Aritmética unaria y operaciones bit a bit" -#: ../Doc/reference/expressions.rst:1198 +#: ../Doc/reference/expressions.rst:1211 msgid "All unary arithmetic and bitwise operations have the same priority:" msgstr "" "Toda la aritmética unaria y las operaciones bit a bit tienen la misma " "prioridad:" -#: ../Doc/reference/expressions.rst:1209 +#: ../Doc/reference/expressions.rst:1222 msgid "" "The unary ``-`` (minus) operator yields the negation of its numeric " "argument; the operation can be overridden with the :meth:`__neg__` special " @@ -1782,7 +1794,7 @@ msgstr "" "numérico; la operación se puede anular con el método especial :meth:" "`__neg__`." -#: ../Doc/reference/expressions.rst:1217 +#: ../Doc/reference/expressions.rst:1230 msgid "" "The unary ``+`` (plus) operator yields its numeric argument unchanged; the " "operation can be overridden with the :meth:`__pos__` special method." @@ -1790,7 +1802,7 @@ msgstr "" "El operador unario ``+`` (más) produce su argumento numérico sin cambios; la " "operación se puede anular con el método especial :meth:`__pos__`." -#: ../Doc/reference/expressions.rst:1224 +#: ../Doc/reference/expressions.rst:1237 msgid "" "The unary ``~`` (invert) operator yields the bitwise inversion of its " "integer argument. The bitwise inversion of ``x`` is defined as ``-(x+1)``. " @@ -1802,7 +1814,7 @@ msgstr "" "Solo se aplica a números enteros o a objetos personalizados que anulan el " "método especial :meth:`__invert__`." -#: ../Doc/reference/expressions.rst:1233 +#: ../Doc/reference/expressions.rst:1246 msgid "" "In all three cases, if the argument does not have the proper type, a :exc:" "`TypeError` exception is raised." @@ -1810,11 +1822,11 @@ msgstr "" "En todos los tres casos, si el argumento no tiene el tipo apropiado, se " "genera una excepción :exc:`TypeError`." -#: ../Doc/reference/expressions.rst:1240 +#: ../Doc/reference/expressions.rst:1253 msgid "Binary arithmetic operations" msgstr "Operaciones aritméticas binarias" -#: ../Doc/reference/expressions.rst:1244 +#: ../Doc/reference/expressions.rst:1257 msgid "" "The binary arithmetic operations have the conventional priority levels. " "Note that some of these operations also apply to certain non-numeric types. " @@ -1826,7 +1838,7 @@ msgstr "" "ciertos tipos no numéricos. Aparte del operador de potencia, hay sólo dos " "niveles, uno para operadores multiplicativos y uno para aditivos:" -#: ../Doc/reference/expressions.rst:1259 +#: ../Doc/reference/expressions.rst:1272 msgid "" "The ``*`` (multiplication) operator yields the product of its arguments. " "The arguments must either both be numbers, or one argument must be an " @@ -1842,7 +1854,7 @@ msgstr "" "una repetición de secuencia; un factor de repetición negativo produce una " "secuencia vacía." -#: ../Doc/reference/expressions.rst:1265 +#: ../Doc/reference/expressions.rst:1278 msgid "" "This operation can be customized using the special :meth:`__mul__` and :meth:" "`__rmul__` methods." @@ -1850,7 +1862,7 @@ msgstr "" "Esta operación se puede personalizar utilizando los métodos especiales :meth:" "`__mul__` y :meth:`__rmul__`." -#: ../Doc/reference/expressions.rst:1272 +#: ../Doc/reference/expressions.rst:1285 msgid "" "The ``@`` (at) operator is intended to be used for matrix multiplication. " "No builtin Python types implement this operator." @@ -1858,7 +1870,7 @@ msgstr "" "El operador ``@`` (en) está destinado a ser usado para multiplicación de " "matrices. Ningún tipo incorporado en Python implementa este operador." -#: ../Doc/reference/expressions.rst:1283 +#: ../Doc/reference/expressions.rst:1296 msgid "" "The ``/`` (division) and ``//`` (floor division) operators yield the " "quotient of their arguments. The numeric arguments are first converted to a " @@ -1875,7 +1887,7 @@ msgstr "" "'floor' aplicada al resultado. Dividir entre 0 genera la excepción :exc:" "`ZeroDivisionError`." -#: ../Doc/reference/expressions.rst:1290 +#: ../Doc/reference/expressions.rst:1303 msgid "" "This operation can be customized using the special :meth:`__truediv__` and :" "meth:`__floordiv__` methods." @@ -1883,7 +1895,7 @@ msgstr "" "Esta operación se puede personalizar utilizando los métodos especiales :meth:" "`__truediv__` y :meth:`__floordiv__`." -#: ../Doc/reference/expressions.rst:1297 +#: ../Doc/reference/expressions.rst:1310 msgid "" "The ``%`` (modulo) operator yields the remainder from the division of the " "first argument by the second. The numeric arguments are first converted to " @@ -1903,7 +1915,7 @@ msgstr "" "que su segundo operando (o cero); el valor absoluto del resultado es " "estrictamente más pequeño que el valor absoluto del segundo operando [#]_." -#: ../Doc/reference/expressions.rst:1306 +#: ../Doc/reference/expressions.rst:1319 msgid "" "The floor division and modulo operators are connected by the following " "identity: ``x == (x//y)*y + (x%y)``. Floor division and modulo are also " @@ -1915,7 +1927,7 @@ msgstr "" "módulo también están conectadas por la función incorporada :func:`divmod`: " "``divmod(x, y) == (x//y, x%y)``. [#]_." -#: ../Doc/reference/expressions.rst:1311 +#: ../Doc/reference/expressions.rst:1324 msgid "" "In addition to performing the modulo operation on numbers, the ``%`` " "operator is also overloaded by string objects to perform old-style string " @@ -1929,7 +1941,7 @@ msgstr "" "La sintaxis para el formateo de cadenas está descrita en la Referencia de la " "Biblioteca de Python, sección :ref:`old-string-formatting`." -#: ../Doc/reference/expressions.rst:1316 +#: ../Doc/reference/expressions.rst:1329 msgid "" "The *modulo* operation can be customized using the special :meth:`__mod__` " "method." @@ -1937,7 +1949,7 @@ msgstr "" "La operación *modulo* se puede personalizar utilizando el método especial :" "meth:`__mod__`." -#: ../Doc/reference/expressions.rst:1318 +#: ../Doc/reference/expressions.rst:1331 msgid "" "The floor division operator, the modulo operator, and the :func:`divmod` " "function are not defined for complex numbers. Instead, convert to a " @@ -1947,7 +1959,7 @@ msgstr "" "`divmod` no están definidas para números complejos. En su lugar, convierta a " "un número de punto flotante usando la función :func:`abs` si es apropiado." -#: ../Doc/reference/expressions.rst:1327 +#: ../Doc/reference/expressions.rst:1340 msgid "" "The ``+`` (addition) operator yields the sum of its arguments. The " "arguments must either both be numbers or both be sequences of the same " @@ -1959,7 +1971,7 @@ msgstr "" "primer caso, los números son convertidos a un tipo común y luego sumados. En " "el segundo caso, las secuencias son concatenadas." -#: ../Doc/reference/expressions.rst:1332 +#: ../Doc/reference/expressions.rst:1345 msgid "" "This operation can be customized using the special :meth:`__add__` and :meth:" "`__radd__` methods." @@ -1967,7 +1979,7 @@ msgstr "" "Esta operación se puede personalizar utilizando los métodos especiales :meth:" "`__add__` y :meth:`__radd__`." -#: ../Doc/reference/expressions.rst:1340 +#: ../Doc/reference/expressions.rst:1353 msgid "" "The ``-`` (subtraction) operator yields the difference of its arguments. " "The numeric arguments are first converted to a common type." @@ -1975,25 +1987,25 @@ msgstr "" "El operador ``-`` (resta) produce la diferencia de sus argumentos. Los " "argumentos numéricos son primero convertidos a un tipo común." -#: ../Doc/reference/expressions.rst:1343 +#: ../Doc/reference/expressions.rst:1356 msgid "" "This operation can be customized using the special :meth:`__sub__` method." msgstr "" "Esta operación se puede personalizar mediante el método especial :meth:" "`__sub__`." -#: ../Doc/reference/expressions.rst:1349 +#: ../Doc/reference/expressions.rst:1362 msgid "Shifting operations" msgstr "Operaciones de desplazamiento" -#: ../Doc/reference/expressions.rst:1356 +#: ../Doc/reference/expressions.rst:1369 msgid "" "The shifting operations have lower priority than the arithmetic operations:" msgstr "" "Las operaciones de desplazamiento tienen menos prioridad que las operaciones " "aritméticas:" -#: ../Doc/reference/expressions.rst:1361 +#: ../Doc/reference/expressions.rst:1374 msgid "" "These operators accept integers as arguments. They shift the first argument " "to the left or right by the number of bits given by the second argument." @@ -2002,7 +2014,7 @@ msgstr "" "argumento a la izquierda o derecha el número de dígitos dados por el segundo " "argumento." -#: ../Doc/reference/expressions.rst:1364 +#: ../Doc/reference/expressions.rst:1377 msgid "" "This operation can be customized using the special :meth:`__lshift__` and :" "meth:`__rshift__` methods." @@ -2010,7 +2022,7 @@ msgstr "" "Esta operación se puede personalizar utilizando los métodos especiales :meth:" "`__lshift__` y :meth:`__rshift__`." -#: ../Doc/reference/expressions.rst:1369 +#: ../Doc/reference/expressions.rst:1382 msgid "" "A right shift by *n* bits is defined as floor division by ``pow(2,n)``. A " "left shift by *n* bits is defined as multiplication with ``pow(2,n)``." @@ -2019,17 +2031,17 @@ msgstr "" "división de redondeo entre ``pow(2,n)``. Un desplazamiento de *n* bits hacia " "la izquierda está definido como una multiplicación por ``pow(2,n)``." -#: ../Doc/reference/expressions.rst:1376 +#: ../Doc/reference/expressions.rst:1389 msgid "Binary bitwise operations" msgstr "Operaciones bit a bit binarias" -#: ../Doc/reference/expressions.rst:1380 +#: ../Doc/reference/expressions.rst:1393 msgid "Each of the three bitwise operations has a different priority level:" msgstr "" "Cada una de las tres operaciones de bits binarias tienen diferente nivel de " "prioridad:" -#: ../Doc/reference/expressions.rst:1391 +#: ../Doc/reference/expressions.rst:1404 msgid "" "The ``&`` operator yields the bitwise AND of its arguments, which must be " "integers or one of them must be a custom object overriding :meth:`__and__` " @@ -2039,7 +2051,7 @@ msgstr "" "números enteros o uno de ellos debe ser un objeto personalizado que anule " "los métodos especiales :meth:`__and__` o :meth:`__rand__`." -#: ../Doc/reference/expressions.rst:1400 +#: ../Doc/reference/expressions.rst:1413 msgid "" "The ``^`` operator yields the bitwise XOR (exclusive OR) of its arguments, " "which must be integers or one of them must be a custom object overriding :" @@ -2050,7 +2062,7 @@ msgstr "" "personalizado que anule los métodos especiales :meth:`__xor__` o :meth:" "`__rxor__`." -#: ../Doc/reference/expressions.rst:1409 +#: ../Doc/reference/expressions.rst:1422 msgid "" "The ``|`` operator yields the bitwise (inclusive) OR of its arguments, which " "must be integers or one of them must be a custom object overriding :meth:" @@ -2060,11 +2072,11 @@ msgstr "" "deben ser números enteros o uno de ellos debe ser un objeto personalizado " "que anule los métodos especiales :meth:`__or__` o :meth:`__ror__`." -#: ../Doc/reference/expressions.rst:1417 +#: ../Doc/reference/expressions.rst:1430 msgid "Comparisons" msgstr "Comparaciones" -#: ../Doc/reference/expressions.rst:1429 +#: ../Doc/reference/expressions.rst:1442 msgid "" "Unlike C, all comparison operations in Python have the same priority, which " "is lower than that of any arithmetic, shifting or bitwise operation. Also " @@ -2076,7 +2088,7 @@ msgstr "" "de desplazamiento o bit a bit. También, a diferencia de C, expresiones como " "``a < b < c`` tienen la interpretación convencional en matemáticas:" -#: ../Doc/reference/expressions.rst:1439 +#: ../Doc/reference/expressions.rst:1452 msgid "" "Comparisons yield boolean values: ``True`` or ``False``. Custom :dfn:`rich " "comparison methods` may return non-boolean values. In this case Python will " @@ -2087,7 +2099,7 @@ msgstr "" "retornar valores no booleanos. En este caso, Python llamará a :func:`bool` " "en dicho valor en contextos booleanos." -#: ../Doc/reference/expressions.rst:1445 +#: ../Doc/reference/expressions.rst:1458 msgid "" "Comparisons can be chained arbitrarily, e.g., ``x < y <= z`` is equivalent " "to ``x < y and y <= z``, except that ``y`` is evaluated only once (but in " @@ -2099,7 +2111,7 @@ msgstr "" "sólo una vez (pero en ambos casos ``z`` no es evaluado para nada cuando ``x " "< y`` se encuentra que es falso)." -#: ../Doc/reference/expressions.rst:1449 +#: ../Doc/reference/expressions.rst:1462 msgid "" "Formally, if *a*, *b*, *c*, ..., *y*, *z* are expressions and *op1*, " "*op2*, ..., *opN* are comparison operators, then ``a op1 b op2 c ... y opN " @@ -2111,7 +2123,7 @@ msgstr "" "c ... y opN z`` es equivalente a ``a op1 b and b op2 c and ... y opN z``, " "excepto que cada expresión es evaluada como mucho una vez." -#: ../Doc/reference/expressions.rst:1454 +#: ../Doc/reference/expressions.rst:1467 msgid "" "Note that ``a op1 b op2 c`` doesn't imply any kind of comparison between *a* " "and *c*, so that, e.g., ``x < y > z`` is perfectly legal (though perhaps not " @@ -2121,11 +2133,11 @@ msgstr "" "entre *a* y *c*, por lo que, por ejemplo, ``x < y > z`` es perfectamente " "legal (aunque quizás no es bonito)." -#: ../Doc/reference/expressions.rst:1461 +#: ../Doc/reference/expressions.rst:1474 msgid "Value comparisons" msgstr "Comparaciones de valor" -#: ../Doc/reference/expressions.rst:1463 +#: ../Doc/reference/expressions.rst:1476 msgid "" "The operators ``<``, ``>``, ``==``, ``>=``, ``<=``, and ``!=`` compare the " "values of two objects. The objects do not need to have the same type." @@ -2133,7 +2145,7 @@ msgstr "" "Los operadores ``<``, ``>``, ``==``, ``>=``, ``<=``, y ``!=`` comparan los " "valores de dos objetos. Los objetos no necesitan ser del mismo tipo." -#: ../Doc/reference/expressions.rst:1466 +#: ../Doc/reference/expressions.rst:1479 msgid "" "Chapter :ref:`objects` states that objects have a value (in addition to type " "and identity). The value of an object is a rather abstract notion in " @@ -2154,7 +2166,7 @@ msgstr "" "definiendo el valor de un objeto indirectamente, mediante su implementación " "de comparación." -#: ../Doc/reference/expressions.rst:1475 +#: ../Doc/reference/expressions.rst:1488 msgid "" "Because all types are (direct or indirect) subtypes of :class:`object`, they " "inherit the default comparison behavior from :class:`object`. Types can " @@ -2167,7 +2179,7 @@ msgstr "" "comparación implementando :dfn:`rich comparison methods` como :meth:" "`__lt__`, descritos en :ref:`customization`." -#: ../Doc/reference/expressions.rst:1481 +#: ../Doc/reference/expressions.rst:1494 msgid "" "The default behavior for equality comparison (``==`` and ``!=``) is based on " "the identity of the objects. Hence, equality comparison of instances with " @@ -2183,7 +2195,7 @@ msgstr "" "motivación para este comportamiento predeterminado es el deseo de que todos " "los objetos sean reflexivos (ej. ``x is y`` implica ``x == y``)." -#: ../Doc/reference/expressions.rst:1488 +#: ../Doc/reference/expressions.rst:1501 msgid "" "A default order comparison (``<``, ``>``, ``<=``, and ``>=``) is not " "provided; an attempt raises :exc:`TypeError`. A motivation for this default " @@ -2194,7 +2206,7 @@ msgstr "" "comportamiento predeterminado es la falta de una invariante similar como " "para la igualdad." -#: ../Doc/reference/expressions.rst:1492 +#: ../Doc/reference/expressions.rst:1505 msgid "" "The behavior of the default equality comparison, that instances with " "different identities are always unequal, may be in contrast to what types " @@ -2209,7 +2221,7 @@ msgstr "" "personalizar su comportamiento de comparación y, de hecho, un número de " "tipos incorporados lo han realizado." -#: ../Doc/reference/expressions.rst:1498 +#: ../Doc/reference/expressions.rst:1511 msgid "" "The following list describes the comparison behavior of the most important " "built-in types." @@ -2217,7 +2229,7 @@ msgstr "" "La siguiente lista describe el comportamiento de comparación de los tipos " "incorporados más importantes." -#: ../Doc/reference/expressions.rst:1501 +#: ../Doc/reference/expressions.rst:1514 msgid "" "Numbers of built-in numeric types (:ref:`typesnumeric`) and of the standard " "library types :class:`fractions.Fraction` and :class:`decimal.Decimal` can " @@ -2233,7 +2245,7 @@ msgstr "" "límites de los tipos involucrados, se comparan matemáticamente " "(algorítmicamente) correctos sin pérdida de precisión." -#: ../Doc/reference/expressions.rst:1508 +#: ../Doc/reference/expressions.rst:1521 msgid "" "The not-a-number values ``float('NaN')`` and ``decimal.Decimal('NaN')`` are " "special. Any ordered comparison of a number to a not-a-number value is " @@ -2249,7 +2261,7 @@ msgstr "" "``x < 3`` y ``x == x`` son todos falso, mientras ``x != x`` es verdadero. " "Este comportamiento cumple con IEEE 754." -#: ../Doc/reference/expressions.rst:1515 +#: ../Doc/reference/expressions.rst:1528 msgid "" "``None`` and ``NotImplemented`` are singletons. :PEP:`8` advises that " "comparisons for singletons should always be done with ``is`` or ``is not``, " @@ -2259,7 +2271,7 @@ msgstr "" "comparaciones para singletons deben ser realizadas siempre con ``is`` o ``is " "not``, nunca los operadores de igualdad." -#: ../Doc/reference/expressions.rst:1519 +#: ../Doc/reference/expressions.rst:1532 msgid "" "Binary sequences (instances of :class:`bytes` or :class:`bytearray`) can be " "compared within and across their types. They compare lexicographically " @@ -2269,7 +2281,7 @@ msgstr "" "pueden ser comparadas entre sí y con otros tipos. Ellas comparan " "lexicográficamente utilizando los valores numéricos de sus elementos." -#: ../Doc/reference/expressions.rst:1523 +#: ../Doc/reference/expressions.rst:1536 msgid "" "Strings (instances of :class:`str`) compare lexicographically using the " "numerical Unicode code points (the result of the built-in function :func:" @@ -2279,13 +2291,13 @@ msgstr "" "lexicográficamente usando los puntos de códigos numéricos Unicode (el " "resultado de la función incorporada :func:`ord`) o sus caracteres. [#]_" -#: ../Doc/reference/expressions.rst:1527 +#: ../Doc/reference/expressions.rst:1540 msgid "Strings and binary sequences cannot be directly compared." msgstr "" "Las cadenas de caracteres y las secuencias binarias no pueden ser comparadas " "directamente." -#: ../Doc/reference/expressions.rst:1529 +#: ../Doc/reference/expressions.rst:1542 msgid "" "Sequences (instances of :class:`tuple`, :class:`list`, or :class:`range`) " "can be compared only within each of their types, with the restriction that " @@ -2299,7 +2311,7 @@ msgstr "" "de igualdad entre esos tipos resulta en desigualdad y la comparación de " "orden entre esos tipos genera :exc:`TypeError`." -#: ../Doc/reference/expressions.rst:1535 +#: ../Doc/reference/expressions.rst:1548 msgid "" "Sequences compare lexicographically using comparison of corresponding " "elements. The built-in containers typically assume identical objects are " @@ -2312,14 +2324,14 @@ msgstr "" "pruebas de igualdad para objetos idénticos para mejorar el rendimiento y " "mantener sus invariantes internos." -#: ../Doc/reference/expressions.rst:1540 +#: ../Doc/reference/expressions.rst:1553 msgid "" "Lexicographical comparison between built-in collections works as follows:" msgstr "" "La comparación lexicográfica entre colecciones incorporadas funciona de la " "siguiente forma:" -#: ../Doc/reference/expressions.rst:1542 +#: ../Doc/reference/expressions.rst:1555 msgid "" "For two collections to compare equal, they must be of the same type, have " "the same length, and each pair of corresponding elements must compare equal " @@ -2330,7 +2342,7 @@ msgstr "" "comparar iguales (por ejemplo, ``[1,2] == (1,2)`` es falso debido a que el " "tipo no es el mismo)." -#: ../Doc/reference/expressions.rst:1547 +#: ../Doc/reference/expressions.rst:1560 msgid "" "Collections that support order comparison are ordered the same as their " "first unequal elements (for example, ``[1,2,x] <= [1,2,y]`` has the same " @@ -2344,7 +2356,7 @@ msgstr "" "colección más corta es ordenada primero (por ejemplo, ``[1,2] < [1,2,3]`` es " "verdadero)." -#: ../Doc/reference/expressions.rst:1553 +#: ../Doc/reference/expressions.rst:1566 #, fuzzy msgid "" "Mappings (instances of :class:`dict`) compare equal if and only if they have " @@ -2355,14 +2367,14 @@ msgstr "" "pares `(clave, valor)` iguales. La comparación de igualdad de claves y " "valores refuerza la reflexibilidad." -#: ../Doc/reference/expressions.rst:1557 +#: ../Doc/reference/expressions.rst:1570 msgid "" "Order comparisons (``<``, ``>``, ``<=``, and ``>=``) raise :exc:`TypeError`." msgstr "" "Comparaciones de orden (``<``, ``>``, ``<=``, and ``>=``) generan :exc:" "`TypeError`." -#: ../Doc/reference/expressions.rst:1559 +#: ../Doc/reference/expressions.rst:1572 msgid "" "Sets (instances of :class:`set` or :class:`frozenset`) can be compared " "within and across their types." @@ -2370,7 +2382,7 @@ msgstr "" "Conjuntos (instancias de :class:`set` o :class:`frozenset`) pueden ser " "comparadas entre sí y entre sus tipos." -#: ../Doc/reference/expressions.rst:1562 +#: ../Doc/reference/expressions.rst:1575 msgid "" "They define order comparison operators to mean subset and superset tests. " "Those relations do not define total orderings (for example, the two sets " @@ -2388,12 +2400,12 @@ msgstr "" "ordenación completa (por ejemplo, :func:`min`, :func:`max` y :func:`sorted` " "producen resultados indefinidos dados una lista de conjuntos como entradas)." -#: ../Doc/reference/expressions.rst:1570 +#: ../Doc/reference/expressions.rst:1583 msgid "Comparison of sets enforces reflexivity of its elements." msgstr "" "La comparación de conjuntos refuerza la reflexibilidad de sus elementos." -#: ../Doc/reference/expressions.rst:1572 +#: ../Doc/reference/expressions.rst:1585 msgid "" "Most other built-in types have no comparison methods implemented, so they " "inherit the default comparison behavior." @@ -2402,7 +2414,7 @@ msgstr "" "implementados, por lo que ellos heredan el comportamiento de comparación " "predeterminado." -#: ../Doc/reference/expressions.rst:1575 +#: ../Doc/reference/expressions.rst:1588 msgid "" "User-defined classes that customize their comparison behavior should follow " "some consistency rules, if possible:" @@ -2410,7 +2422,7 @@ msgstr "" "Las clases definidas por el usuario que personalizan su comportamiento de " "comparación deben seguir algunas reglas de consistencia, si es posible:" -#: ../Doc/reference/expressions.rst:1578 +#: ../Doc/reference/expressions.rst:1591 msgid "" "Equality comparison should be reflexive. In other words, identical objects " "should compare equal:" @@ -2418,11 +2430,11 @@ msgstr "" "La comparación de igualdad debe ser reflexiva. En otras palabras, los " "objetos idénticos deben comparar iguales:" -#: ../Doc/reference/expressions.rst:1581 +#: ../Doc/reference/expressions.rst:1594 msgid "``x is y`` implies ``x == y``" msgstr "``x is y`` implica ``x == y``" -#: ../Doc/reference/expressions.rst:1583 +#: ../Doc/reference/expressions.rst:1596 msgid "" "Comparison should be symmetric. In other words, the following expressions " "should have the same result:" @@ -2430,23 +2442,23 @@ msgstr "" "La comparación debe ser simétrica. En otras palabras, las siguientes " "expresiones deben tener el mismo resultado:" -#: ../Doc/reference/expressions.rst:1586 +#: ../Doc/reference/expressions.rst:1599 msgid "``x == y`` and ``y == x``" msgstr "``x == y`` y ``y == x``" -#: ../Doc/reference/expressions.rst:1588 +#: ../Doc/reference/expressions.rst:1601 msgid "``x != y`` and ``y != x``" msgstr "``x != y`` y ``y != x``" -#: ../Doc/reference/expressions.rst:1590 +#: ../Doc/reference/expressions.rst:1603 msgid "``x < y`` and ``y > x``" msgstr "``x < y`` y ``y > x``" -#: ../Doc/reference/expressions.rst:1592 +#: ../Doc/reference/expressions.rst:1605 msgid "``x <= y`` and ``y >= x``" msgstr "``x <= y`` y ``y >= x``" -#: ../Doc/reference/expressions.rst:1594 +#: ../Doc/reference/expressions.rst:1607 msgid "" "Comparison should be transitive. The following (non-exhaustive) examples " "illustrate that:" @@ -2454,15 +2466,15 @@ msgstr "" "La comparación debe ser transitiva. Los siguientes ejemplos (no exhaustivos) " "ilustran esto:" -#: ../Doc/reference/expressions.rst:1597 +#: ../Doc/reference/expressions.rst:1610 msgid "``x > y and y > z`` implies ``x > z``" msgstr "``x > y and y > z`` implica ``x > z``" -#: ../Doc/reference/expressions.rst:1599 +#: ../Doc/reference/expressions.rst:1612 msgid "``x < y and y <= z`` implies ``x < z``" msgstr "``x < y and y <= z`` implica ``x < z``" -#: ../Doc/reference/expressions.rst:1601 +#: ../Doc/reference/expressions.rst:1614 msgid "" "Inverse comparison should result in the boolean negation. In other words, " "the following expressions should have the same result:" @@ -2470,19 +2482,19 @@ msgstr "" "La comparación inversa debe resultar en la negación booleana. En otras " "palabras, las siguientes expresiones deben tener el mismo resultado:" -#: ../Doc/reference/expressions.rst:1604 +#: ../Doc/reference/expressions.rst:1617 msgid "``x == y`` and ``not x != y``" msgstr "``x == y`` y ``not x != y``" -#: ../Doc/reference/expressions.rst:1606 +#: ../Doc/reference/expressions.rst:1619 msgid "``x < y`` and ``not x >= y`` (for total ordering)" msgstr "``x < y`` y ``not x >= y`` (para ordenación completa)" -#: ../Doc/reference/expressions.rst:1608 +#: ../Doc/reference/expressions.rst:1621 msgid "``x > y`` and ``not x <= y`` (for total ordering)" msgstr "``x > y`` y ``not x <= y`` (para ordenación completa)" -#: ../Doc/reference/expressions.rst:1610 +#: ../Doc/reference/expressions.rst:1623 msgid "" "The last two expressions apply to totally ordered collections (e.g. to " "sequences, but not to sets or mappings). See also the :func:`~functools." @@ -2492,7 +2504,7 @@ msgstr "" "(ej. a secuencias, pero no a conjuntos o mapeos). Vea también el decorador :" "func:`~functools.total_ordering`." -#: ../Doc/reference/expressions.rst:1614 +#: ../Doc/reference/expressions.rst:1627 msgid "" "The :func:`hash` result should be consistent with equality. Objects that are " "equal should either have the same hash value, or be marked as unhashable." @@ -2501,7 +2513,7 @@ msgstr "" "que son iguales deben tener el mismo valor de hash o ser marcados como " "inhashables." -#: ../Doc/reference/expressions.rst:1618 +#: ../Doc/reference/expressions.rst:1631 msgid "" "Python does not enforce these consistency rules. In fact, the not-a-number " "values are an example for not following these rules." @@ -2509,11 +2521,11 @@ msgstr "" "Python no fuerza a cumplir esas reglas de coherencia. De hecho, los valores " "no-un-número son u ejemplo para no seguir esas reglas." -#: ../Doc/reference/expressions.rst:1627 +#: ../Doc/reference/expressions.rst:1640 msgid "Membership test operations" msgstr "Operaciones de prueba de membresía" -#: ../Doc/reference/expressions.rst:1629 +#: ../Doc/reference/expressions.rst:1642 msgid "" "The operators :keyword:`in` and :keyword:`not in` test for membership. ``x " "in s`` evaluates to ``True`` if *x* is a member of *s*, and ``False`` " @@ -2532,7 +2544,7 @@ msgstr "" "frozenset, dict o collections.deque, la expresión ``x in y`` es equivalente " "a ``any(x is e or x == e for e in y)``." -#: ../Doc/reference/expressions.rst:1637 +#: ../Doc/reference/expressions.rst:1650 msgid "" "For the string and bytes types, ``x in y`` is ``True`` if and only if *x* is " "a substring of *y*. An equivalent test is ``y.find(x) != -1``. Empty " @@ -2545,7 +2557,7 @@ msgstr "" "como subcadenas de cualquier otra cadena de caracteres, por lo que ``\"\" in " "\"abc\"`` retornará ``True``." -#: ../Doc/reference/expressions.rst:1642 +#: ../Doc/reference/expressions.rst:1655 msgid "" "For user-defined classes which define the :meth:`__contains__` method, ``x " "in y`` returns ``True`` if ``y.__contains__(x)`` returns a true value, and " @@ -2555,7 +2567,7 @@ msgstr "" "`__contains__`, ``x in y`` retorna ``True`` si ``y.__contains__(x)`` retorna " "un valor verdadero y ``False`` si no." -#: ../Doc/reference/expressions.rst:1646 +#: ../Doc/reference/expressions.rst:1659 msgid "" "For user-defined classes which do not define :meth:`__contains__` but do " "define :meth:`__iter__`, ``x in y`` is ``True`` if some value ``z``, for " @@ -2570,7 +2582,7 @@ msgstr "" "durante la iteración, es como si :keyword:`in` hubiera generado esa " "excepción." -#: ../Doc/reference/expressions.rst:1652 +#: ../Doc/reference/expressions.rst:1665 msgid "" "Lastly, the old-style iteration protocol is tried: if a class defines :meth:" "`__getitem__`, ``x in y`` is ``True`` if and only if there is a non-negative " @@ -2585,7 +2597,7 @@ msgstr "" "excepción es generada, es como si :keyword:`in` hubiera generado esa " "excepción)." -#: ../Doc/reference/expressions.rst:1664 +#: ../Doc/reference/expressions.rst:1677 msgid "" "The operator :keyword:`not in` is defined to have the inverse truth value " "of :keyword:`in`." @@ -2593,11 +2605,11 @@ msgstr "" "El operador :keyword:`not in` es definido para tener el valor de veracidad " "inverso de :keyword:`in`." -#: ../Doc/reference/expressions.rst:1677 +#: ../Doc/reference/expressions.rst:1690 msgid "Identity comparisons" msgstr "Comparaciones de identidad" -#: ../Doc/reference/expressions.rst:1679 +#: ../Doc/reference/expressions.rst:1692 msgid "" "The operators :keyword:`is` and :keyword:`is not` test for an object's " "identity: ``x is y`` is true if and only if *x* and *y* are the same " @@ -2609,19 +2621,20 @@ msgstr "" "objeto. La identidad de un Objeto se determina usando la función :meth:`id`. " "``x is not y`` produce el valor de veracidad inverso. [#]_" -#: ../Doc/reference/expressions.rst:1691 +#: ../Doc/reference/expressions.rst:1704 msgid "Boolean operations" msgstr "Operaciones booleanas" -#: ../Doc/reference/expressions.rst:1702 +#: ../Doc/reference/expressions.rst:1715 +#, fuzzy msgid "" "In the context of Boolean operations, and also when expressions are used by " "control flow statements, the following values are interpreted as false: " "``False``, ``None``, numeric zero of all types, and empty strings and " "containers (including strings, tuples, lists, dictionaries, sets and " "frozensets). All other values are interpreted as true. User-defined " -"objects can customize their truth value by providing a :meth:`__bool__` " -"method." +"objects can customize their truth value by providing a :meth:`~object." +"__bool__` method." msgstr "" "En el contexto de las operaciones booleanas y también cuando sentencias de " "control de flujo usan expresiones, los siguientes valores se interpretan " @@ -2632,7 +2645,7 @@ msgstr "" "por el usuario pueden personalizar su valor de veracidad proveyendo un " "método :meth:`__bool__`." -#: ../Doc/reference/expressions.rst:1711 +#: ../Doc/reference/expressions.rst:1724 msgid "" "The operator :keyword:`not` yields ``True`` if its argument is false, " "``False`` otherwise." @@ -2640,7 +2653,7 @@ msgstr "" "El operador :keyword:`not` produce ``True`` si su argumento es falso, " "``False`` si no." -#: ../Doc/reference/expressions.rst:1716 +#: ../Doc/reference/expressions.rst:1729 msgid "" "The expression ``x and y`` first evaluates *x*; if *x* is false, its value " "is returned; otherwise, *y* is evaluated and the resulting value is returned." @@ -2648,7 +2661,7 @@ msgstr "" "La expresión ``x and y`` primero evalúa *x*; si *x* es falso, se retorna su " "valor; de otra forma, *y* es evaluado y se retorna el valor resultante." -#: ../Doc/reference/expressions.rst:1721 +#: ../Doc/reference/expressions.rst:1734 msgid "" "The expression ``x or y`` first evaluates *x*; if *x* is true, its value is " "returned; otherwise, *y* is evaluated and the resulting value is returned." @@ -2656,7 +2669,7 @@ msgstr "" "La expresión ``x or y`` primero evalúa *x*; si *x* es verdadero, se retorna " "su valor; de otra forma, *y* es evaluado y se retorna el valor resultante." -#: ../Doc/reference/expressions.rst:1724 +#: ../Doc/reference/expressions.rst:1737 msgid "" "Note that neither :keyword:`and` nor :keyword:`or` restrict the value and " "type they return to ``False`` and ``True``, but rather return the last " @@ -2675,11 +2688,11 @@ msgstr "" "indiferentemente del tipo de su argumento (por ejemplo, ``not 'foo'`` " "produce ``False`` en lugar de ``''``.)" -#: ../Doc/reference/expressions.rst:1740 +#: ../Doc/reference/expressions.rst:1753 msgid "Assignment expressions" msgstr "Expresiones de asignación" -#: ../Doc/reference/expressions.rst:1745 +#: ../Doc/reference/expressions.rst:1758 #, fuzzy msgid "" "An assignment expression (sometimes also called a \"named expression\" or " @@ -2691,16 +2704,16 @@ msgstr "" "nombre\" o \"walrus\") asigna un :token:`expression` a un :token:" "`identifier`, mientras que también retorna el valor de :token:`expression`." -#: ../Doc/reference/expressions.rst:1750 +#: ../Doc/reference/expressions.rst:1763 msgid "One common use case is when handling matched regular expressions:" msgstr "" "Un caso de uso común es cuando se manejan expresiones regulares coincidentes:" -#: ../Doc/reference/expressions.rst:1757 +#: ../Doc/reference/expressions.rst:1770 msgid "Or, when processing a file stream in chunks:" msgstr "O, al procesar un flujo de archivos en fragmentos:" -#: ../Doc/reference/expressions.rst:1764 +#: ../Doc/reference/expressions.rst:1777 msgid "" "Assignment expressions must be surrounded by parentheses when used as sub-" "expressions in slicing, conditional, lambda, keyword-argument, and " @@ -2709,15 +2722,15 @@ msgid "" "including in ``if`` and ``while`` statements." msgstr "" -#: ../Doc/reference/expressions.rst:1771 +#: ../Doc/reference/expressions.rst:1784 msgid "See :pep:`572` for more details about assignment expressions." msgstr "Vea :pep:`572` para más detalles sobre las expresiones de asignación." -#: ../Doc/reference/expressions.rst:1778 +#: ../Doc/reference/expressions.rst:1791 msgid "Conditional expressions" msgstr "Expresiones condicionales" -#: ../Doc/reference/expressions.rst:1790 +#: ../Doc/reference/expressions.rst:1803 msgid "" "Conditional expressions (sometimes called a \"ternary operator\") have the " "lowest priority of all Python operations." @@ -2725,7 +2738,7 @@ msgstr "" "Las expresiones condicionales (a veces denominadas un \"operador ternario\") " "tienen la prioridad más baja que todas las operaciones de Python." -#: ../Doc/reference/expressions.rst:1793 +#: ../Doc/reference/expressions.rst:1806 msgid "" "The expression ``x if C else y`` first evaluates the condition, *C* rather " "than *x*. If *C* is true, *x* is evaluated and its value is returned; " @@ -2735,15 +2748,15 @@ msgstr "" "*x*. Si *C* es verdadero, *x* es evaluado y se retorna su valor; en caso " "contrario, *y* es evaluado y se retorna su valor." -#: ../Doc/reference/expressions.rst:1797 +#: ../Doc/reference/expressions.rst:1810 msgid "See :pep:`308` for more details about conditional expressions." msgstr "Vea :pep:`308` para más detalles sobre expresiones condicionales." -#: ../Doc/reference/expressions.rst:1804 +#: ../Doc/reference/expressions.rst:1817 msgid "Lambdas" msgstr "Lambdas" -#: ../Doc/reference/expressions.rst:1815 +#: ../Doc/reference/expressions.rst:1828 msgid "" "Lambda expressions (sometimes called lambda forms) are used to create " "anonymous functions. The expression ``lambda parameters: expression`` yields " @@ -2755,7 +2768,7 @@ msgstr "" "produce un objeto de función. El objeto sin nombre se comporta como un " "objeto función con:" -#: ../Doc/reference/expressions.rst:1824 +#: ../Doc/reference/expressions.rst:1837 msgid "" "See section :ref:`function` for the syntax of parameter lists. Note that " "functions created with lambda expressions cannot contain statements or " @@ -2765,11 +2778,11 @@ msgstr "" "Tenga en cuenta que las funciones creadas con expresiones lambda no pueden " "contener sentencias ni anotaciones." -#: ../Doc/reference/expressions.rst:1832 +#: ../Doc/reference/expressions.rst:1845 msgid "Expression lists" msgstr "Listas de expresiones" -#: ../Doc/reference/expressions.rst:1846 +#: ../Doc/reference/expressions.rst:1859 msgid "" "Except when part of a list or set display, an expression list containing at " "least one comma yields a tuple. The length of the tuple is the number of " @@ -2780,7 +2793,7 @@ msgstr "" "tupla es el número de expresiones en la lista. Las expresiones son evaluadas " "de izquierda a derecha." -#: ../Doc/reference/expressions.rst:1855 +#: ../Doc/reference/expressions.rst:1868 msgid "" "An asterisk ``*`` denotes :dfn:`iterable unpacking`. Its operand must be " "an :term:`iterable`. The iterable is expanded into a sequence of items, " @@ -2792,14 +2805,14 @@ msgstr "" "los cuales son incluidos en la nueva tupla, lista o conjunto en el lugar del " "desempaquetado." -#: ../Doc/reference/expressions.rst:1860 +#: ../Doc/reference/expressions.rst:1873 msgid "" "Iterable unpacking in expression lists, originally proposed by :pep:`448`." msgstr "" "Desempaquetado iterable en listas de expresiones, originalmente propuesto " "por :pep:`488`." -#: ../Doc/reference/expressions.rst:1865 +#: ../Doc/reference/expressions.rst:1878 msgid "" "The trailing comma is required only to create a single tuple (a.k.a. a " "*singleton*); it is optional in all other cases. A single expression " @@ -2813,11 +2826,11 @@ msgstr "" "esa expresión. (Para crear una tupla vacía, usa un par de paréntesis vacío: " "``()``.)" -#: ../Doc/reference/expressions.rst:1875 +#: ../Doc/reference/expressions.rst:1888 msgid "Evaluation order" msgstr "Orden de evaluación" -#: ../Doc/reference/expressions.rst:1879 +#: ../Doc/reference/expressions.rst:1892 msgid "" "Python evaluates expressions from left to right. Notice that while " "evaluating an assignment, the right-hand side is evaluated before the left-" @@ -2827,7 +2840,7 @@ msgstr "" "evalúa una asignación, la parte derecha es evaluada antes que la parte " "izquierda." -#: ../Doc/reference/expressions.rst:1882 +#: ../Doc/reference/expressions.rst:1895 msgid "" "In the following lines, expressions will be evaluated in the arithmetic " "order of their suffixes::" @@ -2835,11 +2848,11 @@ msgstr "" "En las siguientes líneas, las expresiones serán evaluadas en el orden " "aritmético de sus sufijos::" -#: ../Doc/reference/expressions.rst:1896 +#: ../Doc/reference/expressions.rst:1909 msgid "Operator precedence" msgstr "Prioridad de operador" -#: ../Doc/reference/expressions.rst:1901 +#: ../Doc/reference/expressions.rst:1914 #, fuzzy msgid "" "The following table summarizes the operator precedence in Python, from " @@ -2857,7 +2870,7 @@ msgstr "" "derecha (excepto para la exponenciación, que se agrupa de derecha a " "izquierda)." -#: ../Doc/reference/expressions.rst:1907 +#: ../Doc/reference/expressions.rst:1920 msgid "" "Note that comparisons, membership tests, and identity tests, all have the " "same precedence and have a left-to-right chaining feature as described in " @@ -2868,23 +2881,23 @@ msgstr "" "de encadenado de izquierda a derecha como son descritas en la sección :ref:" "`comparisons`." -#: ../Doc/reference/expressions.rst:1913 +#: ../Doc/reference/expressions.rst:1926 msgid "Operator" msgstr "Operador" -#: ../Doc/reference/expressions.rst:1913 +#: ../Doc/reference/expressions.rst:1926 msgid "Description" msgstr "Descripción" -#: ../Doc/reference/expressions.rst:1915 +#: ../Doc/reference/expressions.rst:1928 msgid "``(expressions...)``," msgstr "``(expressions...)``," -#: ../Doc/reference/expressions.rst:1917 +#: ../Doc/reference/expressions.rst:1930 msgid "``[expressions...]``, ``{key: value...}``, ``{expressions...}``" msgstr "``[expressions...]``, ``{key: value...}``, ``{expressions...}``" -#: ../Doc/reference/expressions.rst:1915 +#: ../Doc/reference/expressions.rst:1928 msgid "" "Binding or parenthesized expression, list display, dictionary display, set " "display" @@ -2892,40 +2905,40 @@ msgstr "" "Expresión de enlace o entre paréntesis, despliegues de lista, diccionario y " "conjunto" -#: ../Doc/reference/expressions.rst:1921 +#: ../Doc/reference/expressions.rst:1934 msgid "``x[index]``, ``x[index:index]``, ``x(arguments...)``, ``x.attribute``" msgstr "``x[index]``, ``x[index:index]``, ``x(arguments...)``, ``x.attribute``" -#: ../Doc/reference/expressions.rst:1921 +#: ../Doc/reference/expressions.rst:1934 msgid "Subscription, slicing, call, attribute reference" msgstr "Subscripción, segmentación, invocación, referencia de atributo" -#: ../Doc/reference/expressions.rst:1924 +#: ../Doc/reference/expressions.rst:1937 #, fuzzy msgid ":keyword:`await x `" msgstr ":keyword:`await` ``x``" -#: ../Doc/reference/expressions.rst:1926 +#: ../Doc/reference/expressions.rst:1939 msgid "``**``" msgstr "``**``" -#: ../Doc/reference/expressions.rst:1926 +#: ../Doc/reference/expressions.rst:1939 msgid "Exponentiation [#]_" msgstr "Exponenciación [#]_" -#: ../Doc/reference/expressions.rst:1928 +#: ../Doc/reference/expressions.rst:1941 msgid "``+x``, ``-x``, ``~x``" msgstr "``+x``, ``-x``, ``~x``" -#: ../Doc/reference/expressions.rst:1928 +#: ../Doc/reference/expressions.rst:1941 msgid "Positive, negative, bitwise NOT" msgstr "NOT positivo, negativo, bit a bit" -#: ../Doc/reference/expressions.rst:1930 +#: ../Doc/reference/expressions.rst:1943 msgid "``*``, ``@``, ``/``, ``//``, ``%``" msgstr "``*``, ``@``, ``/``, ``//``, ``%``" -#: ../Doc/reference/expressions.rst:1930 +#: ../Doc/reference/expressions.rst:1943 msgid "" "Multiplication, matrix multiplication, division, floor division, remainder " "[#]_" @@ -2933,47 +2946,47 @@ msgstr "" "Multiplicación, multiplicación de matrices, división, división de redondeo, " "resto [#]_" -#: ../Doc/reference/expressions.rst:1934 +#: ../Doc/reference/expressions.rst:1947 msgid "``+``, ``-``" msgstr "``+``, ``-``" -#: ../Doc/reference/expressions.rst:1934 +#: ../Doc/reference/expressions.rst:1947 msgid "Addition and subtraction" msgstr "Adición y sustracción" -#: ../Doc/reference/expressions.rst:1936 +#: ../Doc/reference/expressions.rst:1949 msgid "``<<``, ``>>``" msgstr "``<<``, ``>>``" -#: ../Doc/reference/expressions.rst:1936 +#: ../Doc/reference/expressions.rst:1949 msgid "Shifts" msgstr "Desplazamientos" -#: ../Doc/reference/expressions.rst:1938 +#: ../Doc/reference/expressions.rst:1951 msgid "``&``" msgstr "``&``" -#: ../Doc/reference/expressions.rst:1938 +#: ../Doc/reference/expressions.rst:1951 msgid "Bitwise AND" msgstr "AND bit a bit" -#: ../Doc/reference/expressions.rst:1940 +#: ../Doc/reference/expressions.rst:1953 msgid "``^``" msgstr "``^``" -#: ../Doc/reference/expressions.rst:1940 +#: ../Doc/reference/expressions.rst:1953 msgid "Bitwise XOR" msgstr "XOR bit a bit" -#: ../Doc/reference/expressions.rst:1942 +#: ../Doc/reference/expressions.rst:1955 msgid "``|``" msgstr "``|``" -#: ../Doc/reference/expressions.rst:1942 +#: ../Doc/reference/expressions.rst:1955 msgid "Bitwise OR" msgstr "OR bit a bit" -#: ../Doc/reference/expressions.rst:1944 +#: ../Doc/reference/expressions.rst:1957 msgid "" ":keyword:`in`, :keyword:`not in`, :keyword:`is`, :keyword:`is not`, ``<``, " "``<=``, ``>``, ``>=``, ``!=``, ``==``" @@ -2981,64 +2994,64 @@ msgstr "" ":keyword:`in`, :keyword:`not in`, :keyword:`is`, :keyword:`is not`, ``<``, " "``<=``, ``>``, ``>=``, ``!=``, ``==``" -#: ../Doc/reference/expressions.rst:1944 +#: ../Doc/reference/expressions.rst:1957 msgid "Comparisons, including membership tests and identity tests" msgstr "Comparaciones, incluyendo comprobaciones de membresía y de identidad" -#: ../Doc/reference/expressions.rst:1948 +#: ../Doc/reference/expressions.rst:1961 #, fuzzy msgid ":keyword:`not x `" msgstr ":keyword:`or`" -#: ../Doc/reference/expressions.rst:1948 +#: ../Doc/reference/expressions.rst:1961 msgid "Boolean NOT" msgstr "Booleano NOT" -#: ../Doc/reference/expressions.rst:1950 +#: ../Doc/reference/expressions.rst:1963 msgid ":keyword:`and`" msgstr ":keyword:`and`" -#: ../Doc/reference/expressions.rst:1950 +#: ../Doc/reference/expressions.rst:1963 msgid "Boolean AND" msgstr "Booleano AND" -#: ../Doc/reference/expressions.rst:1952 +#: ../Doc/reference/expressions.rst:1965 msgid ":keyword:`or`" msgstr ":keyword:`or`" -#: ../Doc/reference/expressions.rst:1952 +#: ../Doc/reference/expressions.rst:1965 msgid "Boolean OR" msgstr "Booleano OR" -#: ../Doc/reference/expressions.rst:1954 +#: ../Doc/reference/expressions.rst:1967 msgid ":keyword:`if ` -- :keyword:`!else`" msgstr ":keyword:`if ` -- :keyword:`!else`" -#: ../Doc/reference/expressions.rst:1954 +#: ../Doc/reference/expressions.rst:1967 msgid "Conditional expression" msgstr "Expresión condicional" -#: ../Doc/reference/expressions.rst:1956 +#: ../Doc/reference/expressions.rst:1969 msgid ":keyword:`lambda`" msgstr ":keyword:`lambda`" -#: ../Doc/reference/expressions.rst:1956 +#: ../Doc/reference/expressions.rst:1969 msgid "Lambda expression" msgstr "Expresión lambda" -#: ../Doc/reference/expressions.rst:1958 +#: ../Doc/reference/expressions.rst:1971 msgid "``:=``" msgstr "``:=``" -#: ../Doc/reference/expressions.rst:1958 +#: ../Doc/reference/expressions.rst:1971 msgid "Assignment expression" msgstr "Expresión de asignación" -#: ../Doc/reference/expressions.rst:1963 +#: ../Doc/reference/expressions.rst:1976 msgid "Footnotes" msgstr "Notas al pie" -#: ../Doc/reference/expressions.rst:1964 +#: ../Doc/reference/expressions.rst:1977 #, python-format msgid "" "While ``abs(x%y) < abs(y)`` is true mathematically, for floats it may not be " @@ -3060,7 +3073,7 @@ msgstr "" "el signo del primer argumento en su lugar, y por ello retorna ``-1e-100`` en " "este caso. La aproximación más apropiada depende de su aplicación." -#: ../Doc/reference/expressions.rst:1973 +#: ../Doc/reference/expressions.rst:1986 msgid "" "If x is very close to an exact integer multiple of y, it's possible for ``x//" "y`` to be one larger than ``(x-x%y)//y`` due to rounding. In such cases, " @@ -3072,7 +3085,7 @@ msgstr "" "Python retorna el último resultado, a fin de preservar que ``divmod(x,y)[0] " "* y + x % y`` sea muy cercano a ``x``." -#: ../Doc/reference/expressions.rst:1978 +#: ../Doc/reference/expressions.rst:1991 msgid "" "The Unicode standard distinguishes between :dfn:`code points` (e.g. U+0041) " "and :dfn:`abstract characters` (e.g. \"LATIN CAPITAL LETTER A\"). While most " @@ -3097,7 +3110,7 @@ msgstr "" "seguida de un :dfn:`combining character` en la posición de código U+0327 " "(CEDILLA COMBINADA)." -#: ../Doc/reference/expressions.rst:1989 +#: ../Doc/reference/expressions.rst:2002 msgid "" "The comparison operators on strings compare at the level of Unicode code " "points. This may be counter-intuitive to humans. For example, ``\"\\u00C7\" " @@ -3110,7 +3123,7 @@ msgstr "" "ambas cadenas presenten el mismo caracter abstracto \"LETRA MAYÚSCULA C " "LATINA CON CEDILLA\"." -#: ../Doc/reference/expressions.rst:1994 +#: ../Doc/reference/expressions.rst:2007 msgid "" "To compare strings at the level of abstract characters (that is, in a way " "intuitive to humans), use :func:`unicodedata.normalize`." @@ -3118,7 +3131,7 @@ msgstr "" "Para comparar cadenas al nivel de caracteres abstractos (esto es, de una " "forma intuitiva para humanos), usa :func:`unicodedata.normalize`." -#: ../Doc/reference/expressions.rst:1997 +#: ../Doc/reference/expressions.rst:2010 msgid "" "Due to automatic garbage-collection, free lists, and the dynamic nature of " "descriptors, you may notice seemingly unusual behaviour in certain uses of " @@ -3131,7 +3144,7 @@ msgstr "" "aquellos involucrando comparaciones entre métodos de instancia, o " "constantes. Compruebe su documentación para más información." -#: ../Doc/reference/expressions.rst:2002 +#: ../Doc/reference/expressions.rst:2015 msgid "" "The power operator ``**`` binds less tightly than an arithmetic or bitwise " "unary operator on its right, that is, ``2**-1`` is ``0.5``." @@ -3140,10 +3153,843 @@ msgstr "" "unario aritmético uno bit a bit en su derecha, esto significa que ``2**-1`` " "is ``0.5``." -#: ../Doc/reference/expressions.rst:2005 +#: ../Doc/reference/expressions.rst:2018 msgid "" "The ``%`` operator is also used for string formatting; the same precedence " "applies." msgstr "" "El operador ``%`` también es usado para formateo de cadenas; aplica la misma " "prioridad." + +#: ../Doc/reference/expressions.rst:8 ../Doc/reference/expressions.rst:362 +#: ../Doc/reference/expressions.rst:417 ../Doc/reference/expressions.rst:1706 +#: ../Doc/reference/expressions.rst:1793 ../Doc/reference/expressions.rst:1819 +#: ../Doc/reference/expressions.rst:1847 +#, fuzzy +msgid "expression" +msgstr "Expresiones" + +#: ../Doc/reference/expressions.rst:8 +msgid "BNF" +msgstr "" + +#: ../Doc/reference/expressions.rst:28 ../Doc/reference/expressions.rst:1207 +#: ../Doc/reference/expressions.rst:1255 +#, fuzzy +msgid "arithmetic" +msgstr "Conversiones aritméticas" + +#: ../Doc/reference/expressions.rst:28 +#, fuzzy +msgid "conversion" +msgstr "Conversiones aritméticas" + +#: ../Doc/reference/expressions.rst:51 +#, fuzzy +msgid "atom" +msgstr "Átomos" + +#: ../Doc/reference/expressions.rst:68 ../Doc/reference/expressions.rst:82 +msgid "name" +msgstr "" + +#: ../Doc/reference/expressions.rst:68 +#, fuzzy +msgid "identifier" +msgstr "Identificadores (Nombres)" + +#: ../Doc/reference/expressions.rst:74 ../Doc/reference/expressions.rst:537 +#: ../Doc/reference/expressions.rst:592 ../Doc/reference/expressions.rst:714 +#: ../Doc/reference/expressions.rst:766 ../Doc/reference/expressions.rst:812 +#: ../Doc/reference/expressions.rst:1244 ../Doc/reference/expressions.rst:1290 +#: ../Doc/reference/expressions.rst:1380 +#, fuzzy +msgid "exception" +msgstr "Descripción" + +#: ../Doc/reference/expressions.rst:74 +msgid "NameError" +msgstr "" + +#: ../Doc/reference/expressions.rst:82 +msgid "mangling" +msgstr "" + +#: ../Doc/reference/expressions.rst:82 +#, fuzzy +msgid "private" +msgstr "Primarios" + +#: ../Doc/reference/expressions.rst:82 +#, fuzzy +msgid "names" +msgstr "Ejemplos" + +#: ../Doc/reference/expressions.rst:104 +#, fuzzy +msgid "literal" +msgstr "Literales" + +#: ../Doc/reference/expressions.rst:117 ../Doc/reference/expressions.rst:341 +msgid "immutable" +msgstr "" + +#: ../Doc/reference/expressions.rst:117 +msgid "data" +msgstr "" + +#: ../Doc/reference/expressions.rst:117 +msgid "type" +msgstr "" + +#: ../Doc/reference/expressions.rst:117 ../Doc/reference/expressions.rst:244 +#: ../Doc/reference/expressions.rst:270 ../Doc/reference/expressions.rst:298 +#: ../Doc/reference/expressions.rst:341 ../Doc/reference/expressions.rst:362 +#: ../Doc/reference/expressions.rst:525 ../Doc/reference/expressions.rst:704 +#: ../Doc/reference/expressions.rst:812 ../Doc/reference/expressions.rst:835 +#: ../Doc/reference/expressions.rst:908 ../Doc/reference/expressions.rst:952 +#: ../Doc/reference/expressions.rst:1100 ../Doc/reference/expressions.rst:1113 +#: ../Doc/reference/expressions.rst:1127 ../Doc/reference/expressions.rst:1134 +#: ../Doc/reference/expressions.rst:1671 ../Doc/reference/expressions.rst:1857 +msgid "object" +msgstr "" + +#: ../Doc/reference/expressions.rst:133 +#, fuzzy +msgid "parenthesized form" +msgstr "Formas entre paréntesis" + +#: ../Doc/reference/expressions.rst:133 ../Doc/reference/expressions.rst:362 +#: ../Doc/reference/expressions.rst:952 +#, fuzzy +msgid "() (parentheses)" +msgstr "Formas entre paréntesis" + +#: ../Doc/reference/expressions.rst:133 +#, fuzzy +msgid "tuple display" +msgstr "Despliegues de conjuntos" + +#: ../Doc/reference/expressions.rst:146 ../Doc/reference/expressions.rst:244 +msgid "empty" +msgstr "" + +#: ../Doc/reference/expressions.rst:146 ../Doc/reference/expressions.rst:835 +#: ../Doc/reference/expressions.rst:908 ../Doc/reference/expressions.rst:1857 +msgid "tuple" +msgstr "" + +#: ../Doc/reference/expressions.rst:152 ../Doc/reference/expressions.rst:1876 +msgid "comma" +msgstr "" + +#: ../Doc/reference/expressions.rst:152 ../Doc/reference/expressions.rst:244 +#: ../Doc/reference/expressions.rst:270 ../Doc/reference/expressions.rst:298 +#: ../Doc/reference/expressions.rst:902 ../Doc/reference/expressions.rst:952 +#: ../Doc/reference/expressions.rst:1847 +msgid ", (comma)" +msgstr "" + +#: ../Doc/reference/expressions.rst:167 ../Doc/reference/expressions.rst:244 +#: ../Doc/reference/expressions.rst:270 ../Doc/reference/expressions.rst:298 +#, fuzzy +msgid "comprehensions" +msgstr "Comparaciones" + +#: ../Doc/reference/expressions.rst:177 +msgid "for" +msgstr "" + +#: ../Doc/reference/expressions.rst:177 ../Doc/reference/expressions.rst:212 +#, fuzzy +msgid "in comprehensions" +msgstr "Comparaciones de identidad" + +#: ../Doc/reference/expressions.rst:177 ../Doc/reference/expressions.rst:1793 +msgid "if" +msgstr "" + +#: ../Doc/reference/expressions.rst:177 +msgid "async for" +msgstr "" + +#: ../Doc/reference/expressions.rst:212 ../Doc/reference/expressions.rst:1152 +msgid "await" +msgstr "" + +#: ../Doc/reference/expressions.rst:244 ../Doc/reference/expressions.rst:812 +#: ../Doc/reference/expressions.rst:835 ../Doc/reference/expressions.rst:908 +#: ../Doc/reference/expressions.rst:1847 +msgid "list" +msgstr "" + +#: ../Doc/reference/expressions.rst:244 ../Doc/reference/expressions.rst:270 +#: ../Doc/reference/expressions.rst:298 +#, fuzzy +msgid "display" +msgstr "Despliegues de conjuntos" + +#: ../Doc/reference/expressions.rst:244 ../Doc/reference/expressions.rst:831 +msgid "[] (square brackets)" +msgstr "" + +#: ../Doc/reference/expressions.rst:244 +#, fuzzy +msgid "list expression" +msgstr "Expresión await" + +#: ../Doc/reference/expressions.rst:244 ../Doc/reference/expressions.rst:270 +#: ../Doc/reference/expressions.rst:1847 +#, fuzzy +msgid "expression list" +msgstr "Listas de expresiones" + +#: ../Doc/reference/expressions.rst:270 +msgid "set" +msgstr "" + +#: ../Doc/reference/expressions.rst:270 ../Doc/reference/expressions.rst:298 +msgid "{} (curly brackets)" +msgstr "" + +#: ../Doc/reference/expressions.rst:270 +#, fuzzy +msgid "set expression" +msgstr "Expresiones" + +#: ../Doc/reference/expressions.rst:298 ../Doc/reference/expressions.rst:324 +#: ../Doc/reference/expressions.rst:835 +#, fuzzy +msgid "dictionary" +msgstr "Despliegues de diccionario" + +#: ../Doc/reference/expressions.rst:298 +msgid "key" +msgstr "" + +#: ../Doc/reference/expressions.rst:298 +msgid "value" +msgstr "" + +#: ../Doc/reference/expressions.rst:298 +msgid "key/value pair" +msgstr "" + +#: ../Doc/reference/expressions.rst:298 +#, fuzzy +msgid "dictionary expression" +msgstr "Expresión condicional" + +#: ../Doc/reference/expressions.rst:298 ../Doc/reference/expressions.rst:902 +#: ../Doc/reference/expressions.rst:1819 +msgid ": (colon)" +msgstr "" + +#: ../Doc/reference/expressions.rst:298 +#, fuzzy +msgid "in dictionary expressions" +msgstr "Expresiones condicionales" + +#: ../Doc/reference/expressions.rst:298 ../Doc/reference/expressions.rst:324 +#, fuzzy +msgid "in dictionary displays" +msgstr "Despliegues de diccionario" + +#: ../Doc/reference/expressions.rst:324 ../Doc/reference/expressions.rst:1035 +#: ../Doc/reference/expressions.rst:1864 +msgid "unpacking" +msgstr "" + +#: ../Doc/reference/expressions.rst:324 ../Doc/reference/expressions.rst:1065 +#: ../Doc/reference/expressions.rst:1172 +msgid "**" +msgstr "" + +#: ../Doc/reference/expressions.rst:341 +msgid "hashable" +msgstr "" + +#: ../Doc/reference/expressions.rst:362 ../Doc/reference/expressions.rst:417 +#: ../Doc/reference/expressions.rst:525 +#, fuzzy +msgid "generator" +msgstr "Operador" + +#: ../Doc/reference/expressions.rst:362 +#, fuzzy +msgid "generator expression" +msgstr "Expresiones de generador" + +#: ../Doc/reference/expressions.rst:417 ../Doc/reference/expressions.rst:1152 +#, fuzzy +msgid "keyword" +msgstr ":keyword:`or`" + +#: ../Doc/reference/expressions.rst:417 ../Doc/reference/expressions.rst:605 +msgid "yield" +msgstr "" + +#: ../Doc/reference/expressions.rst:417 ../Doc/reference/expressions.rst:484 +msgid "from" +msgstr "" + +#: ../Doc/reference/expressions.rst:417 ../Doc/reference/expressions.rst:1100 +#: ../Doc/reference/expressions.rst:1113 ../Doc/reference/expressions.rst:1819 +msgid "function" +msgstr "" + +#: ../Doc/reference/expressions.rst:470 +msgid "coroutine" +msgstr "" + +#: ../Doc/reference/expressions.rst:484 +#, fuzzy +msgid "yield from expression" +msgstr "Expresiones yield" + +#: ../Doc/reference/expressions.rst:537 +#, fuzzy +msgid "StopIteration" +msgstr "Operaciones de desplazamiento" + +#: ../Doc/reference/expressions.rst:592 ../Doc/reference/expressions.rst:766 +#, fuzzy +msgid "GeneratorExit" +msgstr "Expresiones de generador" + +#: ../Doc/reference/expressions.rst:605 +#, fuzzy +msgid "examples" +msgstr "Ejemplos" + +#: ../Doc/reference/expressions.rst:704 +#, fuzzy +msgid "asynchronous-generator" +msgstr "Funciones generadoras asincrónicas" + +#: ../Doc/reference/expressions.rst:714 +msgid "StopAsyncIteration" +msgstr "" + +#: ../Doc/reference/expressions.rst:789 +#, fuzzy +msgid "primary" +msgstr "Primarios" + +#: ../Doc/reference/expressions.rst:803 +#, fuzzy +msgid "attribute" +msgstr "Referencias de atributos" + +#: ../Doc/reference/expressions.rst:803 +#, fuzzy +msgid "reference" +msgstr "Referencias de atributos" + +#: ../Doc/reference/expressions.rst:803 +msgid ". (dot)" +msgstr "" + +#: ../Doc/reference/expressions.rst:803 +#, fuzzy +msgid "attribute reference" +msgstr "Referencias de atributos" + +#: ../Doc/reference/expressions.rst:812 +#, fuzzy +msgid "AttributeError" +msgstr "Referencias de atributos" + +#: ../Doc/reference/expressions.rst:812 +msgid "module" +msgstr "" + +#: ../Doc/reference/expressions.rst:831 +#, fuzzy +msgid "subscription" +msgstr "Suscripciones" + +#: ../Doc/reference/expressions.rst:835 ../Doc/reference/expressions.rst:908 +#: ../Doc/reference/expressions.rst:1671 +msgid "sequence" +msgstr "" + +#: ../Doc/reference/expressions.rst:835 +msgid "mapping" +msgstr "" + +#: ../Doc/reference/expressions.rst:835 ../Doc/reference/expressions.rst:888 +#: ../Doc/reference/expressions.rst:908 +msgid "string" +msgstr "" + +#: ../Doc/reference/expressions.rst:835 ../Doc/reference/expressions.rst:888 +msgid "item" +msgstr "" + +#: ../Doc/reference/expressions.rst:888 +msgid "character" +msgstr "" + +#: ../Doc/reference/expressions.rst:902 +#, fuzzy +msgid "slicing" +msgstr "Segmentos" + +#: ../Doc/reference/expressions.rst:902 +#, fuzzy +msgid "slice" +msgstr "Segmentos" + +#: ../Doc/reference/expressions.rst:934 +msgid "start (slice object attribute)" +msgstr "" + +#: ../Doc/reference/expressions.rst:934 +msgid "stop (slice object attribute)" +msgstr "" + +#: ../Doc/reference/expressions.rst:934 +msgid "step (slice object attribute)" +msgstr "" + +#: ../Doc/reference/expressions.rst:952 +#, fuzzy +msgid "callable" +msgstr "Invocaciones" + +#: ../Doc/reference/expressions.rst:952 ../Doc/reference/expressions.rst:1100 +#: ../Doc/reference/expressions.rst:1113 ../Doc/reference/expressions.rst:1127 +#: ../Doc/reference/expressions.rst:1134 ../Doc/reference/expressions.rst:1144 +#, fuzzy +msgid "call" +msgstr "Invocaciones" + +#: ../Doc/reference/expressions.rst:952 +msgid "argument" +msgstr "" + +#: ../Doc/reference/expressions.rst:952 ../Doc/reference/expressions.rst:985 +msgid "call semantics" +msgstr "" + +#: ../Doc/reference/expressions.rst:952 +msgid "argument list" +msgstr "" + +#: ../Doc/reference/expressions.rst:952 +msgid "= (equals)" +msgstr "" + +#: ../Doc/reference/expressions.rst:952 ../Doc/reference/expressions.rst:1035 +#: ../Doc/reference/expressions.rst:1065 +msgid "in function calls" +msgstr "" + +#: ../Doc/reference/expressions.rst:985 +msgid "parameter" +msgstr "" + +#: ../Doc/reference/expressions.rst:1035 ../Doc/reference/expressions.rst:1268 +#: ../Doc/reference/expressions.rst:1864 +msgid "* (asterisk)" +msgstr "" + +#: ../Doc/reference/expressions.rst:1100 +#, fuzzy +msgid "user-defined" +msgstr "una función definida por el usuario:" + +#: ../Doc/reference/expressions.rst:1100 +#, fuzzy +msgid "user-defined function" +msgstr "una función definida por el usuario:" + +#: ../Doc/reference/expressions.rst:1113 +#, fuzzy +msgid "built-in function" +msgstr "una función o método incorporado:" + +#: ../Doc/reference/expressions.rst:1113 +msgid "method" +msgstr "" + +#: ../Doc/reference/expressions.rst:1113 +#, fuzzy +msgid "built-in method" +msgstr "una función o método incorporado:" + +#: ../Doc/reference/expressions.rst:1127 +#, fuzzy +msgid "class" +msgstr "Invocaciones" + +#: ../Doc/reference/expressions.rst:1127 +#, fuzzy +msgid "class object" +msgstr "un objeto de clase:" + +#: ../Doc/reference/expressions.rst:1134 +#, fuzzy +msgid "class instance" +msgstr "una instancia de clase:" + +#: ../Doc/reference/expressions.rst:1134 ../Doc/reference/expressions.rst:1144 +#, fuzzy +msgid "instance" +msgstr "una instancia de clase:" + +#: ../Doc/reference/expressions.rst:1144 +msgid "__call__() (object method)" +msgstr "" + +#: ../Doc/reference/expressions.rst:1172 +msgid "power" +msgstr "" + +#: ../Doc/reference/expressions.rst:1172 ../Doc/reference/expressions.rst:1207 +#: ../Doc/reference/expressions.rst:1255 ../Doc/reference/expressions.rst:1364 +#: ../Doc/reference/expressions.rst:1391 ../Doc/reference/expressions.rst:1706 +#, fuzzy +msgid "operation" +msgstr "Operador" + +#: ../Doc/reference/expressions.rst:1172 ../Doc/reference/expressions.rst:1216 +#: ../Doc/reference/expressions.rst:1225 ../Doc/reference/expressions.rst:1233 +#: ../Doc/reference/expressions.rst:1268 ../Doc/reference/expressions.rst:1281 +#: ../Doc/reference/expressions.rst:1290 ../Doc/reference/expressions.rst:1306 +#: ../Doc/reference/expressions.rst:1335 ../Doc/reference/expressions.rst:1348 +#: ../Doc/reference/expressions.rst:1364 ../Doc/reference/expressions.rst:1400 +#: ../Doc/reference/expressions.rst:1408 ../Doc/reference/expressions.rst:1417 +#: ../Doc/reference/expressions.rst:1432 ../Doc/reference/expressions.rst:1671 +#: ../Doc/reference/expressions.rst:1680 ../Doc/reference/expressions.rst:1722 +#: ../Doc/reference/expressions.rst:1727 ../Doc/reference/expressions.rst:1732 +#: ../Doc/reference/expressions.rst:1793 ../Doc/reference/expressions.rst:1911 +#, fuzzy +msgid "operator" +msgstr "Operador" + +#: ../Doc/reference/expressions.rst:1207 +msgid "unary" +msgstr "" + +#: ../Doc/reference/expressions.rst:1207 ../Doc/reference/expressions.rst:1391 +#: ../Doc/reference/expressions.rst:1400 ../Doc/reference/expressions.rst:1408 +#: ../Doc/reference/expressions.rst:1417 +#, fuzzy +msgid "bitwise" +msgstr "OR bit a bit" + +#: ../Doc/reference/expressions.rst:1216 +msgid "negation" +msgstr "" + +#: ../Doc/reference/expressions.rst:1216 +msgid "minus" +msgstr "" + +#: ../Doc/reference/expressions.rst:1216 ../Doc/reference/expressions.rst:1348 +msgid "- (minus)" +msgstr "" + +#: ../Doc/reference/expressions.rst:1216 ../Doc/reference/expressions.rst:1225 +#, fuzzy +msgid "unary operator" +msgstr "Operador" + +#: ../Doc/reference/expressions.rst:1225 +msgid "plus" +msgstr "" + +#: ../Doc/reference/expressions.rst:1225 ../Doc/reference/expressions.rst:1335 +msgid "+ (plus)" +msgstr "" + +#: ../Doc/reference/expressions.rst:1233 +#, fuzzy +msgid "inversion" +msgstr "Expresiones" + +#: ../Doc/reference/expressions.rst:1233 +msgid "~ (tilde)" +msgstr "" + +#: ../Doc/reference/expressions.rst:1244 +msgid "TypeError" +msgstr "" + +#: ../Doc/reference/expressions.rst:1255 ../Doc/reference/expressions.rst:1391 +msgid "binary" +msgstr "" + +#: ../Doc/reference/expressions.rst:1268 +msgid "multiplication" +msgstr "" + +#: ../Doc/reference/expressions.rst:1281 +msgid "matrix multiplication" +msgstr "" + +#: ../Doc/reference/expressions.rst:1281 +msgid "@ (at)" +msgstr "" + +#: ../Doc/reference/expressions.rst:1290 +msgid "ZeroDivisionError" +msgstr "" + +#: ../Doc/reference/expressions.rst:1290 +msgid "division" +msgstr "" + +#: ../Doc/reference/expressions.rst:1290 +msgid "/ (slash)" +msgstr "" + +#: ../Doc/reference/expressions.rst:1290 +msgid "//" +msgstr "" + +#: ../Doc/reference/expressions.rst:1306 +msgid "modulo" +msgstr "" + +#: ../Doc/reference/expressions.rst:1306 +msgid "% (percent)" +msgstr "" + +#: ../Doc/reference/expressions.rst:1335 +#, fuzzy +msgid "addition" +msgstr "Descripción" + +#: ../Doc/reference/expressions.rst:1335 ../Doc/reference/expressions.rst:1348 +#, fuzzy +msgid "binary operator" +msgstr "Operaciones bit a bit binarias" + +#: ../Doc/reference/expressions.rst:1348 +#, fuzzy +msgid "subtraction" +msgstr "Suscripciones" + +#: ../Doc/reference/expressions.rst:1364 +#, fuzzy +msgid "shifting" +msgstr "Desplazamientos" + +#: ../Doc/reference/expressions.rst:1364 +msgid "<<" +msgstr "" + +#: ../Doc/reference/expressions.rst:1364 +msgid ">>" +msgstr "" + +#: ../Doc/reference/expressions.rst:1380 +msgid "ValueError" +msgstr "" + +#: ../Doc/reference/expressions.rst:1400 ../Doc/reference/expressions.rst:1727 +msgid "and" +msgstr "" + +#: ../Doc/reference/expressions.rst:1400 +msgid "& (ampersand)" +msgstr "" + +#: ../Doc/reference/expressions.rst:1408 +msgid "xor" +msgstr "" + +#: ../Doc/reference/expressions.rst:1408 +msgid "exclusive" +msgstr "" + +#: ../Doc/reference/expressions.rst:1408 ../Doc/reference/expressions.rst:1417 +#: ../Doc/reference/expressions.rst:1732 +msgid "or" +msgstr "" + +#: ../Doc/reference/expressions.rst:1408 +msgid "^ (caret)" +msgstr "" + +#: ../Doc/reference/expressions.rst:1417 +msgid "inclusive" +msgstr "" + +#: ../Doc/reference/expressions.rst:1417 +msgid "| (vertical bar)" +msgstr "" + +#: ../Doc/reference/expressions.rst:1432 +#, fuzzy +msgid "comparison" +msgstr "Comparaciones" + +#: ../Doc/reference/expressions.rst:1432 +msgid "C" +msgstr "" + +#: ../Doc/reference/expressions.rst:1432 +msgid "language" +msgstr "" + +#: ../Doc/reference/expressions.rst:1432 +msgid "< (less)" +msgstr "" + +#: ../Doc/reference/expressions.rst:1432 +msgid "> (greater)" +msgstr "" + +#: ../Doc/reference/expressions.rst:1432 +msgid "<=" +msgstr "" + +#: ../Doc/reference/expressions.rst:1432 +msgid ">=" +msgstr "" + +#: ../Doc/reference/expressions.rst:1432 +msgid "==" +msgstr "" + +#: ../Doc/reference/expressions.rst:1432 +msgid "!=" +msgstr "" + +#: ../Doc/reference/expressions.rst:1456 +msgid "chaining" +msgstr "" + +#: ../Doc/reference/expressions.rst:1456 +#, fuzzy +msgid "comparisons" +msgstr "Comparaciones" + +#: ../Doc/reference/expressions.rst:1671 +msgid "in" +msgstr "" + +#: ../Doc/reference/expressions.rst:1671 +msgid "not in" +msgstr "" + +#: ../Doc/reference/expressions.rst:1671 +msgid "membership" +msgstr "" + +#: ../Doc/reference/expressions.rst:1671 ../Doc/reference/expressions.rst:1680 +msgid "test" +msgstr "" + +#: ../Doc/reference/expressions.rst:1680 +msgid "is" +msgstr "" + +#: ../Doc/reference/expressions.rst:1680 +msgid "is not" +msgstr "" + +#: ../Doc/reference/expressions.rst:1680 +msgid "identity" +msgstr "" + +#: ../Doc/reference/expressions.rst:1706 +#, fuzzy +msgid "Conditional" +msgstr "Expresión condicional" + +#: ../Doc/reference/expressions.rst:1706 +#, fuzzy +msgid "Boolean" +msgstr "Booleano OR" + +#: ../Doc/reference/expressions.rst:1722 +msgid "not" +msgstr "" + +#: ../Doc/reference/expressions.rst:1746 +msgid ":= (colon equals)" +msgstr "" + +#: ../Doc/reference/expressions.rst:1746 +#, fuzzy +msgid "assignment expression" +msgstr "Expresión de asignación" + +#: ../Doc/reference/expressions.rst:1746 +#, fuzzy +msgid "walrus operator" +msgstr "Operador" + +#: ../Doc/reference/expressions.rst:1746 +#, fuzzy +msgid "named expression" +msgstr "Expresión lambda" + +#: ../Doc/reference/expressions.rst:1793 +#, fuzzy +msgid "conditional" +msgstr "Expresión condicional" + +#: ../Doc/reference/expressions.rst:1793 +msgid "ternary" +msgstr "" + +#: ../Doc/reference/expressions.rst:1793 +#, fuzzy +msgid "conditional expression" +msgstr "Expresión condicional" + +#: ../Doc/reference/expressions.rst:1793 +msgid "else" +msgstr "" + +#: ../Doc/reference/expressions.rst:1819 +#, fuzzy +msgid "lambda" +msgstr "Lambdas" + +#: ../Doc/reference/expressions.rst:1819 +msgid "form" +msgstr "" + +#: ../Doc/reference/expressions.rst:1819 +msgid "anonymous" +msgstr "" + +#: ../Doc/reference/expressions.rst:1819 +#, fuzzy +msgid "lambda expression" +msgstr "Expresión lambda" + +#: ../Doc/reference/expressions.rst:1864 +#, fuzzy +msgid "iterable" +msgstr "Literales" + +#: ../Doc/reference/expressions.rst:1864 +#, fuzzy +msgid "in expression lists" +msgstr "Listas de expresiones" + +#: ../Doc/reference/expressions.rst:1876 +msgid "trailing" +msgstr "" + +#: ../Doc/reference/expressions.rst:1890 +#, fuzzy +msgid "evaluation" +msgstr "Orden de evaluación" + +#: ../Doc/reference/expressions.rst:1890 +msgid "order" +msgstr "" + +#: ../Doc/reference/expressions.rst:1911 +#, fuzzy +msgid "precedence" +msgstr "Prioridad de operador" diff --git a/reference/grammar.po b/reference/grammar.po index b421c3806b..96b5e78f1c 100644 --- a/reference/grammar.po +++ b/reference/grammar.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-10-16 21:42+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-02 19:28+0200\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.9.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/reference/grammar.rst:2 msgid "Full Grammar specification" @@ -37,13 +37,14 @@ msgstr "" "de código y la recuperación de errores." #: ../Doc/reference/grammar.rst:9 +#, fuzzy, python-format msgid "" "The notation is a mixture of `EBNF `_ and `PEG `_. In particular, ``&`` followed by a symbol, " "token or parenthesized group indicates a positive lookahead (i.e., is " "required to match but not consumed), while ``!`` indicates a negative " -"lookahead (i.e., is required _not_ to match). We use the ``|`` separator to " +"lookahead (i.e., is required *not* to match). We use the ``|`` separator to " "mean PEG's \"ordered choice\" (written as ``/`` in traditional PEG " "grammars). See :pep:`617` for more details on the grammar's syntax." msgstr "" diff --git a/reference/import.po b/reference/import.po index 85a62447f3..90b9f0f549 100644 --- a/reference/import.po +++ b/reference/import.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-02 19:27+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/reference/import.rst:6 msgid "The import system" @@ -644,11 +644,12 @@ msgstr "" "finder`)." #: ../Doc/reference/import.rst:325 +#, fuzzy msgid "" "The :meth:`~importlib.abc.MetaPathFinder.find_spec` method of meta path " -"finders replaced :meth:`~importlib.abc.MetaPathFinder.find_module`, which is " -"now deprecated. While it will continue to work without change, the import " -"machinery will try it only if the finder does not implement ``find_spec()``." +"finders replaced :meth:`!find_module`, which is now deprecated. While it " +"will continue to work without change, the import machinery will try it only " +"if the finder does not implement ``find_spec()``." msgstr "" "El método :meth:`~importlib.abc.MetaPathFinder.find_spec` de los buscadores " "de metarutas de la ruta de acceso reemplazó :meth:`~importlib.abc." @@ -657,18 +658,23 @@ msgstr "" "el buscador no implementa ``find_spec()``." #: ../Doc/reference/import.rst:332 +#, fuzzy msgid "" -"Use of :meth:`~importlib.abc.MetaPathFinder.find_module` by the import " -"system now raises :exc:`ImportWarning`." +"Use of :meth:`!find_module` by the import system now raises :exc:" +"`ImportWarning`." msgstr "" "El uso de :meth:`~importlib.abc.MetaPathFinder.find_module` por parte del " "sistema de importación ahora lanza :exc:`ImportWarning`." -#: ../Doc/reference/import.rst:338 +#: ../Doc/reference/import.rst:336 +msgid "``find_module()`` has been removed. Use :meth:`find_spec` instead." +msgstr "" + +#: ../Doc/reference/import.rst:341 msgid "Loading" msgstr "Cargando" -#: ../Doc/reference/import.rst:340 +#: ../Doc/reference/import.rst:343 msgid "" "If and when a module spec is found, the import machinery will use it (and " "the loader it contains) when loading the module. Here is an approximation " @@ -679,11 +685,11 @@ msgstr "" "una aproximación de lo que sucede durante la porción de carga de la " "importación:" -#: ../Doc/reference/import.rst:374 +#: ../Doc/reference/import.rst:376 msgid "Note the following details:" msgstr "Tenga en cuenta los siguientes detalles:" -#: ../Doc/reference/import.rst:376 +#: ../Doc/reference/import.rst:378 msgid "" "If there is an existing module object with the given name in :data:`sys." "modules`, import will have already returned it." @@ -691,7 +697,7 @@ msgstr "" "Si hay un objeto de módulo existente con el nombre dado en :data:`sys." "modules`, la importación ya lo habrá retornado." -#: ../Doc/reference/import.rst:379 +#: ../Doc/reference/import.rst:381 msgid "" "The module will exist in :data:`sys.modules` before the loader executes the " "module code. This is crucial because the module code may (directly or " @@ -705,7 +711,7 @@ msgstr "" "modules` de antemano evita la recursividad sin límites en el peor de los " "casos y la carga múltiple en el mejor." -#: ../Doc/reference/import.rst:385 +#: ../Doc/reference/import.rst:387 msgid "" "If loading fails, the failing module -- and only the failing module -- gets " "removed from :data:`sys.modules`. Any module already in the :data:`sys." @@ -720,7 +726,7 @@ msgstr "" "memoria caché. Esto contrasta con la recarga donde incluso el módulo que " "falla se deja en :data:`sys.modules`." -#: ../Doc/reference/import.rst:391 +#: ../Doc/reference/import.rst:393 msgid "" "After the module is created but before execution, the import machinery sets " "the import-related module attributes (\"_init_module_attrs\" in the pseudo-" @@ -732,7 +738,7 @@ msgstr "" "importación (\"_init_module_attrs\" en el ejemplo de pseudocódigo anterior), " "como se resume en una :ref:`sección posterior `." -#: ../Doc/reference/import.rst:396 +#: ../Doc/reference/import.rst:398 msgid "" "Module execution is the key moment of loading in which the module's " "namespace gets populated. Execution is entirely delegated to the loader, " @@ -742,7 +748,7 @@ msgstr "" "el espacio de nombres del módulo. La ejecución se delega por completo en el " "cargador, lo que llega a decidir qué se rellena y cómo." -#: ../Doc/reference/import.rst:400 +#: ../Doc/reference/import.rst:402 msgid "" "The module created during loading and passed to exec_module() may not be the " "one returned at the end of import [#fnlo]_." @@ -750,7 +756,7 @@ msgstr "" "El módulo creado durante la carga y pasado a exec_module() puede no ser el " "que se retorna al final de la importación [#fnlo]_." -#: ../Doc/reference/import.rst:403 +#: ../Doc/reference/import.rst:405 msgid "" "The import system has taken over the boilerplate responsibilities of " "loaders. These were previously performed by the :meth:`importlib.abc.Loader." @@ -760,11 +766,11 @@ msgstr "" "reutilizables de los cargadores. Estos fueron realizados previamente por el " "método :meth:`importlib.abc.Loader.load_module`." -#: ../Doc/reference/import.rst:409 +#: ../Doc/reference/import.rst:411 msgid "Loaders" msgstr "Cargadores" -#: ../Doc/reference/import.rst:411 +#: ../Doc/reference/import.rst:413 msgid "" "Module loaders provide the critical function of loading: module execution. " "The import machinery calls the :meth:`importlib.abc.Loader.exec_module` " @@ -777,11 +783,11 @@ msgstr "" "que se va a ejecutar. Se omite cualquier valor retornado de :meth:" "`~importlib.abc.Loader.exec_module`." -#: ../Doc/reference/import.rst:416 +#: ../Doc/reference/import.rst:418 msgid "Loaders must satisfy the following requirements:" msgstr "Los cargadores deben cumplir los siguientes requisitos:" -#: ../Doc/reference/import.rst:418 +#: ../Doc/reference/import.rst:420 msgid "" "If the module is a Python module (as opposed to a built-in module or a " "dynamically loaded extension), the loader should execute the module's code " @@ -791,7 +797,7 @@ msgstr "" "extensión cargada dinámicamente), el cargador debe ejecutar el código del " "módulo en el espacio de nombres global del módulo (``module.__dict__``)." -#: ../Doc/reference/import.rst:422 +#: ../Doc/reference/import.rst:424 msgid "" "If the loader cannot execute the module, it should raise an :exc:" "`ImportError`, although any other exception raised during :meth:`~importlib." @@ -801,7 +807,7 @@ msgstr "" "`ImportError`, aunque se propagará cualquier otra excepción provocada " "durante :meth:`~importlib.abc.Loader.exec_module`." -#: ../Doc/reference/import.rst:426 +#: ../Doc/reference/import.rst:428 msgid "" "In many cases, the finder and loader can be the same object; in such cases " "the :meth:`~importlib.abc.MetaPathFinder.find_spec` method would just return " @@ -812,7 +818,7 @@ msgstr "" "simplemente retornaría una especificación con el cargador establecido en " "``self``." -#: ../Doc/reference/import.rst:430 +#: ../Doc/reference/import.rst:432 msgid "" "Module loaders may opt in to creating the module object during loading by " "implementing a :meth:`~importlib.abc.Loader.create_module` method. It takes " @@ -829,11 +835,11 @@ msgstr "" "module. Si el método retorna ``None``, la maquinaria de importación creará " "el nuevo módulo en sí." -#: ../Doc/reference/import.rst:437 +#: ../Doc/reference/import.rst:439 msgid "The :meth:`~importlib.abc.Loader.create_module` method of loaders." msgstr "El método de cargadores :meth:`~importlib.abc.Loader.create_module`." -#: ../Doc/reference/import.rst:440 +#: ../Doc/reference/import.rst:442 msgid "" "The :meth:`~importlib.abc.Loader.load_module` method was replaced by :meth:" "`~importlib.abc.Loader.exec_module` and the import machinery assumed all the " @@ -843,7 +849,7 @@ msgstr "" "meth:`~importlib.abc.Loader.exec_module` y la maquinaria de importación " "asumió todas las responsabilidades reutilizables de la carga." -#: ../Doc/reference/import.rst:445 +#: ../Doc/reference/import.rst:447 msgid "" "For compatibility with existing loaders, the import machinery will use the " "``load_module()`` method of loaders if it exists and the loader does not " @@ -856,7 +862,7 @@ msgstr "" "``load_module()`` ha quedado obsoleto y los cargadores deben implementar " "``exec_module()`` en su lugar." -#: ../Doc/reference/import.rst:450 +#: ../Doc/reference/import.rst:452 msgid "" "The ``load_module()`` method must implement all the boilerplate loading " "functionality described above in addition to executing the module. All the " @@ -866,7 +872,7 @@ msgstr "" "reutilizable descrita anteriormente, además de ejecutar el módulo. Se " "aplican todas las mismas restricciones, con algunas aclaraciones adicionales:" -#: ../Doc/reference/import.rst:454 +#: ../Doc/reference/import.rst:456 msgid "" "If there is an existing module object with the given name in :data:`sys." "modules`, the loader must use that existing module. (Otherwise, :func:" @@ -880,7 +886,7 @@ msgstr "" "nombre no existe en :data:`sys.modules`, el cargador debe crear un nuevo " "objeto de módulo y agregarlo a :data:`sys.modules`." -#: ../Doc/reference/import.rst:460 +#: ../Doc/reference/import.rst:462 msgid "" "The module *must* exist in :data:`sys.modules` before the loader executes " "the module code, to prevent unbounded recursion or multiple loading." @@ -889,7 +895,7 @@ msgstr "" "ejecute el código del módulo, para evitar la recursividad sin límites o la " "carga múltiple." -#: ../Doc/reference/import.rst:464 +#: ../Doc/reference/import.rst:466 msgid "" "If loading fails, the loader must remove any modules it has inserted into :" "data:`sys.modules`, but it must remove **only** the failing module(s), and " @@ -900,7 +906,7 @@ msgstr "" "con errores, y solo si el propio cargador ha cargado los módulos " "explícitamente." -#: ../Doc/reference/import.rst:469 +#: ../Doc/reference/import.rst:471 msgid "" "A :exc:`DeprecationWarning` is raised when ``exec_module()`` is defined but " "``create_module()`` is not." @@ -908,7 +914,7 @@ msgstr "" "A :exc:`DeprecationWarning` se genera cuando se define ``exec_module()`` " "pero ``create_module()`` no lo es." -#: ../Doc/reference/import.rst:473 +#: ../Doc/reference/import.rst:475 msgid "" "An :exc:`ImportError` is raised when ``exec_module()`` is defined but " "``create_module()`` is not." @@ -916,15 +922,15 @@ msgstr "" "Un :exc:`ImportError` se genera cuando ``exec_module()`` está definido, pero " "``create_module()`` no lo es." -#: ../Doc/reference/import.rst:477 +#: ../Doc/reference/import.rst:479 msgid "Use of ``load_module()`` will raise :exc:`ImportWarning`." msgstr "El uso de ``load_module()`` lanzará :exc:`ImportWarning`." -#: ../Doc/reference/import.rst:481 +#: ../Doc/reference/import.rst:483 msgid "Submodules" msgstr "Submódulos" -#: ../Doc/reference/import.rst:483 +#: ../Doc/reference/import.rst:485 msgid "" "When a submodule is loaded using any mechanism (e.g. ``importlib`` APIs, the " "``import`` or ``import-from`` statements, or built-in ``__import__()``) a " @@ -941,11 +947,11 @@ msgstr "" "tendrá un atributo ``foo`` que está enlazado al submódulo. Supongamos que " "tiene la siguiente estructura de directorios:" -#: ../Doc/reference/import.rst:494 +#: ../Doc/reference/import.rst:496 msgid "and ``spam/__init__.py`` has the following line in it::" msgstr "y ``spam/__init__.py`` tiene la siguiente línea::" -#: ../Doc/reference/import.rst:498 +#: ../Doc/reference/import.rst:500 msgid "" "then executing the following puts name bindings for ``foo`` and ``Foo`` in " "the ``spam`` module::" @@ -953,7 +959,7 @@ msgstr "" "a continuación, la ejecución de lo siguiente pone un nombre vinculante para " "``foo`` y ``Foo`` en el módulo ``spam``::" -#: ../Doc/reference/import.rst:507 +#: ../Doc/reference/import.rst:509 msgid "" "Given Python's familiar name binding rules this might seem surprising, but " "it's actually a fundamental feature of the import system. The invariant " @@ -968,11 +974,11 @@ msgstr "" "importación anterior), este último debe aparecer como el atributo ``foo`` de " "la primera." -#: ../Doc/reference/import.rst:514 +#: ../Doc/reference/import.rst:516 msgid "Module spec" msgstr "Especificaciones del módulo" -#: ../Doc/reference/import.rst:516 +#: ../Doc/reference/import.rst:518 msgid "" "The import machinery uses a variety of information about each module during " "import, especially before loading. Most of the information is common to all " @@ -985,7 +991,7 @@ msgstr "" "especificaciones de un módulo es encapsular esta información relacionada con " "la importación por módulo." -#: ../Doc/reference/import.rst:521 +#: ../Doc/reference/import.rst:523 msgid "" "Using a spec during import allows state to be transferred between import " "system components, e.g. between the finder that creates the module spec and " @@ -1000,7 +1006,7 @@ msgstr "" "realizar las operaciones de caldera de carga, mientras que sin una " "especificación de módulo el cargador tenía esa responsabilidad." -#: ../Doc/reference/import.rst:527 +#: ../Doc/reference/import.rst:529 msgid "" "The module's spec is exposed as the ``__spec__`` attribute on a module " "object. See :class:`~importlib.machinery.ModuleSpec` for details on the " @@ -1010,11 +1016,11 @@ msgstr "" "objeto de módulo. Consulte :class:`~importlib.machinery.ModuleSpec` para " "obtener más información sobre el contenido de la especificación del módulo." -#: ../Doc/reference/import.rst:536 +#: ../Doc/reference/import.rst:538 msgid "Import-related module attributes" msgstr "Atributos de módulo relacionados con la importación" -#: ../Doc/reference/import.rst:538 +#: ../Doc/reference/import.rst:540 msgid "" "The import machinery fills in these attributes on each module object during " "loading, based on the module's spec, before the loader executes the module." @@ -1025,6 +1031,12 @@ msgstr "" #: ../Doc/reference/import.rst:544 msgid "" +"It is **strongly** recommended that you rely on :attr:`__spec__` and its " +"attributes instead of any of the other individual attributes listed below." +msgstr "" + +#: ../Doc/reference/import.rst:550 +msgid "" "The ``__name__`` attribute must be set to the fully qualified name of the " "module. This name is used to uniquely identify the module in the import " "system." @@ -1033,7 +1045,7 @@ msgstr "" "Este nombre se utiliza para identificar de forma exclusiva el módulo en el " "sistema de importación." -#: ../Doc/reference/import.rst:550 +#: ../Doc/reference/import.rst:556 msgid "" "The ``__loader__`` attribute must be set to the loader object that the " "import machinery used when loading the module. This is mostly for " @@ -1046,9 +1058,23 @@ msgstr "" "funcionalidad específica del cargador adicional, por ejemplo, obtener datos " "asociados con un cargador." -#: ../Doc/reference/import.rst:557 +#: ../Doc/reference/import.rst:561 ../Doc/reference/import.rst:582 +msgid "" +"It is **strongly** recommended that you rely on :attr:`__spec__` instead " +"instead of this attribute." +msgstr "" + +#: ../Doc/reference/import.rst:564 +msgid "" +"The value of ``__loader__`` is expected to be the same as ``__spec__." +"loader``. The use of ``__loader__`` is deprecated and slated for removal in " +"Python 3.14." +msgstr "" + +#: ../Doc/reference/import.rst:571 +#, fuzzy msgid "" -"The module's ``__package__`` attribute must be set. Its value must be a " +"The module's ``__package__`` attribute may be set. Its value must be a " "string, but it can be the same value as its ``__name__``. When the module " "is a package, its ``__package__`` value should be set to its ``__name__``. " "When the module is not a package, ``__package__`` should be set to the empty " @@ -1063,18 +1089,18 @@ msgstr "" "los submódulos, en el nombre del paquete primario. Consulte :pep:`366` para " "obtener más detalles." -#: ../Doc/reference/import.rst:565 +#: ../Doc/reference/import.rst:579 +#, fuzzy msgid "" "This attribute is used instead of ``__name__`` to calculate explicit " -"relative imports for main modules, as defined in :pep:`366`. It is expected " -"to have the same value as ``__spec__.parent``." +"relative imports for main modules, as defined in :pep:`366`." msgstr "" "Este atributo se utiliza en lugar de ``__name__`` para calcular " "importaciones relativas explícitas para los módulos principales, tal como se " "define en :pep:`366`. Se espera que tenga el mismo valor que ``__spec__." "parent``." -#: ../Doc/reference/import.rst:569 +#: ../Doc/reference/import.rst:585 msgid "" "The value of ``__package__`` is expected to be the same as ``__spec__." "parent``." @@ -1082,7 +1108,19 @@ msgstr "" "Se espera que el valor de ``__package__`` sea el mismo que ``__spec__." "parent``." -#: ../Doc/reference/import.rst:575 +#: ../Doc/reference/import.rst:589 +msgid "" +":exc:`ImportWarning` is raised if import falls back to ``__package__`` " +"instead of :attr:`~importlib.machinery.ModuleSpec.parent`." +msgstr "" + +#: ../Doc/reference/import.rst:594 +msgid "" +"Raise :exc:`DeprecationWarning` instead of :exc:`ImportWarning` when falling " +"back to ``__package__``." +msgstr "" + +#: ../Doc/reference/import.rst:601 msgid "" "The ``__spec__`` attribute must be set to the module spec that was used when " "importing the module. Setting ``__spec__`` appropriately applies equally to :" @@ -1096,15 +1134,15 @@ msgstr "" "intérprete `. La única excepción es ``__main__``, donde " "``__spec__`` es :ref:`establecido None en algunos casos `." -#: ../Doc/reference/import.rst:581 +#: ../Doc/reference/import.rst:607 +#, fuzzy msgid "" -"When ``__package__`` is not defined, ``__spec__.parent`` is used as a " -"fallback." +"When ``__spec__.parent`` is not set, ``__package__`` is used as a fallback." msgstr "" "Cuando ``__package__`` no está definido, ``__spec__.parent`` se utiliza como " "reserva." -#: ../Doc/reference/import.rst:586 +#: ../Doc/reference/import.rst:612 msgid "" "``__spec__.parent`` is used as a fallback when ``__package__`` is not " "defined." @@ -1112,7 +1150,7 @@ msgstr "" "``__spec__.parent`` se utiliza como reserva cuando ``__package__``` no está " "definido." -#: ../Doc/reference/import.rst:592 +#: ../Doc/reference/import.rst:618 msgid "" "If the module is a package (either regular or namespace), the module " "object's ``__path__`` attribute must be set. The value must be iterable, " @@ -1128,12 +1166,12 @@ msgstr "" "detalles sobre la semántica de ``__path__`` se dan :ref:`below `." -#: ../Doc/reference/import.rst:599 +#: ../Doc/reference/import.rst:625 msgid "Non-package modules should not have a ``__path__`` attribute." msgstr "" "Los módulos que no son de paquete no deben tener un atributo ``__path__``." -#: ../Doc/reference/import.rst:604 +#: ../Doc/reference/import.rst:630 msgid "" "``__file__`` is optional (if set, value must be a string). It indicates the " "pathname of the file from which the module was loaded (if loaded from a " @@ -1153,7 +1191,7 @@ msgstr "" "significado semántico (por ejemplo, un módulo cargado desde una base de " "datos)." -#: ../Doc/reference/import.rst:613 +#: ../Doc/reference/import.rst:639 msgid "" "If ``__file__`` is set then the ``__cached__`` attribute might also be set, " "which is the path to any compiled version of the code (e.g. byte-compiled " @@ -1166,7 +1204,7 @@ msgstr "" "exista para establecer este atributo; la ruta simplemente puede indicar " "dónde existiría el archivo compilado (ver :pep:`3147`)." -#: ../Doc/reference/import.rst:619 +#: ../Doc/reference/import.rst:645 msgid "" "Note that ``__cached__`` may be set even if ``__file__`` is not set. " "However, that scenario is quite atypical. Ultimately, the loader is what " @@ -1183,17 +1221,23 @@ msgstr "" "un módulo almacenado en caché pero no carga desde un archivo, ese escenario " "atípico puede ser apropiado." -#: ../Doc/reference/import.rst:629 +#: ../Doc/reference/import.rst:652 +msgid "" +"It is **strongly** recommended that you rely on :attr:`__spec__` instead " +"instead of ``__cached__``." +msgstr "" + +#: ../Doc/reference/import.rst:658 msgid "module.__path__" msgstr "module.__path__" -#: ../Doc/reference/import.rst:631 +#: ../Doc/reference/import.rst:660 msgid "" "By definition, if a module has a ``__path__`` attribute, it is a package." msgstr "" "Por definición, si un módulo tiene un atributo ``__path__``, es un paquete." -#: ../Doc/reference/import.rst:633 +#: ../Doc/reference/import.rst:662 msgid "" "A package's ``__path__`` attribute is used during imports of its " "subpackages. Within the import machinery, it functions much the same as :" @@ -1207,7 +1251,7 @@ msgstr "" "ubicaciones para buscar módulos durante la importación. Sin embargo, " "``__path__`` suele estar mucho más restringido que :data:`sys.path`." -#: ../Doc/reference/import.rst:639 +#: ../Doc/reference/import.rst:668 msgid "" "``__path__`` must be an iterable of strings, but it may be empty. The same " "rules used for :data:`sys.path` also apply to a package's ``__path__``, and :" @@ -1219,7 +1263,7 @@ msgstr "" "``__path__`` de un paquete, y :data:`sys.path_hooks` (descrito a " "continuación) se consultan al recorrer el ``__path__`` de un paquete." -#: ../Doc/reference/import.rst:644 +#: ../Doc/reference/import.rst:673 msgid "" "A package's ``__init__.py`` file may set or alter the package's ``__path__`` " "attribute, and this was typically the way namespace packages were " @@ -1237,11 +1281,11 @@ msgstr "" "automáticamente ``__path__`` correctamente para el paquete de espacio de " "nombres." -#: ../Doc/reference/import.rst:652 +#: ../Doc/reference/import.rst:681 msgid "Module reprs" msgstr "Representación (*Reprs*) de módulos" -#: ../Doc/reference/import.rst:654 +#: ../Doc/reference/import.rst:683 msgid "" "By default, all modules have a usable repr, however depending on the " "attributes set above, and in the module's spec, you can more explicitly " @@ -1252,7 +1296,7 @@ msgstr "" "especificaciones del módulo, puede controlar más explícitamente el repr de " "los objetos de módulo." -#: ../Doc/reference/import.rst:658 +#: ../Doc/reference/import.rst:687 msgid "" "If the module has a spec (``__spec__``), the import machinery will try to " "generate a repr from it. If that fails or there is no spec, the import " @@ -1269,11 +1313,11 @@ msgstr "" "__loader__`` como entrada en el repr, con valores predeterminados para " "cualquier información que falte." -#: ../Doc/reference/import.rst:665 +#: ../Doc/reference/import.rst:694 msgid "Here are the exact rules used:" msgstr "Aquí están las reglas exactas utilizadas:" -#: ../Doc/reference/import.rst:667 +#: ../Doc/reference/import.rst:696 msgid "" "If the module has a ``__spec__`` attribute, the information in the spec is " "used to generate the repr. The \"name\", \"loader\", \"origin\", and " @@ -1283,7 +1327,7 @@ msgstr "" "especificación se utiliza para generar el repr. Se consultan los atributos " "\"name\", \"loader\", \"origin\" y \"has_location\"." -#: ../Doc/reference/import.rst:671 +#: ../Doc/reference/import.rst:700 msgid "" "If the module has a ``__file__`` attribute, this is used as part of the " "module's repr." @@ -1291,7 +1335,7 @@ msgstr "" "Si el módulo tiene un atributo ``__file__``, se utiliza como parte del repr " "del módulo." -#: ../Doc/reference/import.rst:674 +#: ../Doc/reference/import.rst:703 msgid "" "If the module has no ``__file__`` but does have a ``__loader__`` that is not " "``None``, then the loader's repr is used as part of the module's repr." @@ -1300,51 +1344,24 @@ msgstr "" "``None``, entonces el repr del cargador se utiliza como parte del repr del " "módulo." -#: ../Doc/reference/import.rst:677 +#: ../Doc/reference/import.rst:706 msgid "Otherwise, just use the module's ``__name__`` in the repr." msgstr "" "De lo contrario, sólo tiene que utilizar el ``__name__`` del módulo en el " "repr." -#: ../Doc/reference/import.rst:679 -msgid "" -"Use of :meth:`loader.module_repr() ` has " -"been deprecated and the module spec is now used by the import machinery to " -"generate a module repr." -msgstr "" -"El uso de :meth:`loader.module_repr() ` ha " -"quedado obsoleto y la máquina de importación utiliza ahora la especificación " -"del módulo para generar un repr de módulo." - -#: ../Doc/reference/import.rst:684 -msgid "" -"For backward compatibility with Python 3.3, the module repr will be " -"generated by calling the loader's :meth:`~importlib.abc.Loader.module_repr` " -"method, if defined, before trying either approach described above. However, " -"the method is deprecated." -msgstr "" -"Para la compatibilidad con versiones anteriores de Python 3.3, el repr del " -"módulo se generará llamando al método :meth:`~importlib.abc.Loader." -"module_repr` del cargador, si se define, antes de probar cualquiera de los " -"enfoques descritos anteriormente. Sin embargo, el método está en desuso." - -#: ../Doc/reference/import.rst:691 +#: ../Doc/reference/import.rst:708 msgid "" -"Calling :meth:`~importlib.abc.Loader.module_repr` now occurs after trying to " -"use a module's ``__spec__`` attribute but before falling back on " -"``__file__``. Use of :meth:`~importlib.abc.Loader.module_repr` is slated to " -"stop in Python 3.12." +"Use of :meth:`!module_repr`, having been deprecated since Python 3.4, was " +"removed in Python 3.12 and is no longer called during the resolution of a " +"module's repr." msgstr "" -"La llamada a :meth:`~importlib.abc.Loader.module_repr` ahora ocurre después " -"de intentar usar el atributo ``__spec__`` de un módulo, pero antes de " -"recurrir a ``__file__``. Está previsto que el uso de :meth:`~importlib.abc." -"Loader.module_repr` se detenga en Python 3.12." -#: ../Doc/reference/import.rst:699 +#: ../Doc/reference/import.rst:716 msgid "Cached bytecode invalidation" msgstr "Invalidación del código de bytes en caché" -#: ../Doc/reference/import.rst:701 +#: ../Doc/reference/import.rst:718 msgid "" "Before Python loads cached bytecode from a ``.pyc`` file, it checks whether " "the cache is up-to-date with the source ``.py`` file. By default, Python " @@ -1361,7 +1378,7 @@ msgstr "" "valida el archivo de caché comprobando los metadatos almacenados en el " "archivo de caché con los metadatos de la fuente." -#: ../Doc/reference/import.rst:708 +#: ../Doc/reference/import.rst:725 msgid "" "Python also supports \"hash-based\" cache files, which store a hash of the " "source file's contents rather than its metadata. There are two variants of " @@ -1387,7 +1404,7 @@ msgstr "" "archivos basado en hash ``.pyc`` se puede invalidar con el indicador :option:" "`--check-hash-based-pycs`." -#: ../Doc/reference/import.rst:719 +#: ../Doc/reference/import.rst:736 msgid "" "Added hash-based ``.pyc`` files. Previously, Python only supported timestamp-" "based invalidation of bytecode caches." @@ -1396,11 +1413,11 @@ msgstr "" "admitía la invalidación basada en la marca de tiempo de la caché del código " "de bytes." -#: ../Doc/reference/import.rst:725 +#: ../Doc/reference/import.rst:742 msgid "The Path Based Finder" msgstr "El buscador basado en rutas" -#: ../Doc/reference/import.rst:730 +#: ../Doc/reference/import.rst:747 msgid "" "As mentioned previously, Python comes with several default meta path " "finders. One of these, called the :term:`path based finder` (:class:" @@ -1414,7 +1431,7 @@ msgstr "" "path`, que contiene una lista de :term:`entradas de ruta `. Cada " "entrada de ruta de acceso nombra una ubicación para buscar módulos." -#: ../Doc/reference/import.rst:736 +#: ../Doc/reference/import.rst:753 msgid "" "The path based finder itself doesn't know how to import anything. Instead, " "it traverses the individual path entries, associating each of them with a " @@ -1425,7 +1442,7 @@ msgstr "" "un buscador de entrada de ruta que sabe cómo manejar ese tipo particular de " "ruta de acceso." -#: ../Doc/reference/import.rst:740 +#: ../Doc/reference/import.rst:757 msgid "" "The default set of path entry finders implement all the semantics for " "finding modules on the file system, handling special file types such as " @@ -1445,7 +1462,7 @@ msgstr "" "todos estos tipos de archivo (excepto las bibliotecas compartidas) desde " "zipfiles." -#: ../Doc/reference/import.rst:747 +#: ../Doc/reference/import.rst:764 msgid "" "Path entries need not be limited to file system locations. They can refer " "to URLs, database queries, or any other location that can be specified as a " @@ -1456,7 +1473,7 @@ msgstr "" "de base de datos o cualquier otra ubicación que se pueda especificar como " "una cadena." -#: ../Doc/reference/import.rst:751 +#: ../Doc/reference/import.rst:768 msgid "" "The path based finder provides additional hooks and protocols so that you " "can extend and customize the types of searchable path entries. For example, " @@ -1475,7 +1492,7 @@ msgstr "" "con el protocolo descrito a continuación, que luego se utilizó para obtener " "un cargador para el módulo de la web." -#: ../Doc/reference/import.rst:759 +#: ../Doc/reference/import.rst:776 msgid "" "A word of warning: this section and the previous both use the term *finder*, " "distinguishing between them by using the terms :term:`meta path finder` and :" @@ -1494,7 +1511,7 @@ msgstr "" "al principio del proceso de importación, como se indica en el recorrido :" "data:`sys.meta_path`." -#: ../Doc/reference/import.rst:767 +#: ../Doc/reference/import.rst:784 msgid "" "By contrast, path entry finders are in a sense an implementation detail of " "the path based finder, and in fact, if the path based finder were to be " @@ -1506,11 +1523,11 @@ msgstr "" "buscador basado en rutas se eliminara de :data:`sys.meta_path`, no se " "invocaría ninguna semántica del buscador de entradas de ruta." -#: ../Doc/reference/import.rst:774 +#: ../Doc/reference/import.rst:791 msgid "Path entry finders" msgstr "Buscadores de entradas de ruta" -#: ../Doc/reference/import.rst:782 +#: ../Doc/reference/import.rst:799 msgid "" "The :term:`path based finder` is responsible for finding and loading Python " "modules and packages whose location is specified with a string :term:`path " @@ -1522,7 +1539,7 @@ msgstr "" "entry`. La mayoría de las ubicaciones de nombres de entradas de ruta de " "acceso en el sistema de archivos, pero no es necesario limitarlas a esto." -#: ../Doc/reference/import.rst:787 +#: ../Doc/reference/import.rst:804 msgid "" "As a meta path finder, the :term:`path based finder` implements the :meth:" "`~importlib.abc.MetaPathFinder.find_spec` protocol previously described, " @@ -1535,7 +1552,7 @@ msgstr "" "pueden usar para personalizar cómo se encuentran y cargan los módulos desde " "la ruta :term:`import path`." -#: ../Doc/reference/import.rst:792 +#: ../Doc/reference/import.rst:809 msgid "" "Three variables are used by the :term:`path based finder`, :data:`sys." "path`, :data:`sys.path_hooks` and :data:`sys.path_importer_cache`. The " @@ -1547,7 +1564,7 @@ msgstr "" "utilizan los atributos ``__path__`` en los objetos de paquete. Estos " "proporcionan formas adicionales de personalizar la maquinaria de importación." -#: ../Doc/reference/import.rst:797 +#: ../Doc/reference/import.rst:814 msgid "" ":data:`sys.path` contains a list of strings providing search locations for " "modules and packages. It is initialized from the :data:`PYTHONPATH` " @@ -1568,7 +1585,7 @@ msgstr "" "las cadenas deben estar presentes en :data:`sys.path`; todos los demás tipos " "de datos se ignoran." -#: ../Doc/reference/import.rst:806 +#: ../Doc/reference/import.rst:823 msgid "" "The :term:`path based finder` is a :term:`meta path finder`, so the import " "machinery begins the :term:`import path` search by calling the path based " @@ -1589,7 +1606,8 @@ msgstr "" "dentro de ese paquete. Si el argumento ``path`` es ``None``, esto indica " "una importación de nivel superior y se utiliza :data:`sys.path`." -#: ../Doc/reference/import.rst:815 +#: ../Doc/reference/import.rst:832 +#, fuzzy msgid "" "The path based finder iterates over every entry in the search path, and for " "each of these, looks for an appropriate :term:`path entry finder` (:class:" @@ -1602,7 +1620,7 @@ msgid "" "the expensive search for a particular :term:`path entry` location's :term:" "`path entry finder` need only be done once. User code is free to remove " "cache entries from :data:`sys.path_importer_cache` forcing the path based " -"finder to perform the path entry search again [#fnpic]_." +"finder to perform the path entry search again." msgstr "" "El buscador basado en la ruta itera sobre cada entrada en la ruta de " "búsqueda y, para cada una de ellas, busca un :term:`path entry finder` (:" @@ -1619,7 +1637,7 @@ msgstr "" "caché de :data:`sys.path_importer_cache`, lo que obliga al buscador basado " "en rutas a realizar la búsqueda de entrada de ruta nuevamente [#fnpic]_." -#: ../Doc/reference/import.rst:828 +#: ../Doc/reference/import.rst:845 msgid "" "If the path entry is not present in the cache, the path based finder " "iterates over every callable in :data:`sys.path_hooks`. Each of the :term:" @@ -1649,7 +1667,7 @@ msgstr "" "una codificación del sistema de archivos, UTF-8, o algo más), y si el gancho " "no puede decodificar el argumento, debe generar :exc:`ImportError`." -#: ../Doc/reference/import.rst:842 +#: ../Doc/reference/import.rst:859 msgid "" "If :data:`sys.path_hooks` iteration ends with no :term:`path entry finder` " "being returned, then the path based finder's :meth:`~importlib.machinery." @@ -1666,7 +1684,7 @@ msgstr "" "``None``, lo que indica que este :term:`meta path finder` no pudo encontrar " "el módulo." -#: ../Doc/reference/import.rst:849 +#: ../Doc/reference/import.rst:866 msgid "" "If a :term:`path entry finder` *is* returned by one of the :term:`path entry " "hook` callables on :data:`sys.path_hooks`, then the following protocol is " @@ -1678,7 +1696,7 @@ msgstr "" "protocolo se utiliza para pedir al buscador una especificación de módulo, " "que luego se utiliza al cargar el módulo." -#: ../Doc/reference/import.rst:854 +#: ../Doc/reference/import.rst:871 msgid "" "The current working directory -- denoted by an empty string -- is handled " "slightly differently from other entries on :data:`sys.path`. First, if the " @@ -1699,11 +1717,11 @@ msgstr "" "PathFinder.find_spec` será el directorio de trabajo actual real y no la " "cadena vacía." -#: ../Doc/reference/import.rst:864 +#: ../Doc/reference/import.rst:881 msgid "Path entry finder protocol" msgstr "Buscadores de entradas de ruta" -#: ../Doc/reference/import.rst:866 +#: ../Doc/reference/import.rst:883 msgid "" "In order to support imports of modules and initialized packages and also to " "contribute portions to namespace packages, path entry finders must implement " @@ -1714,7 +1732,7 @@ msgstr "" "de entradas de ruta de acceso deben implementar el método :meth:`importlib." "abc.PathEntryFinder.find_spec`." -#: ../Doc/reference/import.rst:870 +#: ../Doc/reference/import.rst:887 msgid "" ":meth:`~importlib.abc.PathEntryFinder.find_spec` takes two arguments: the " "fully qualified name of the module being imported, and the (optional) target " @@ -1727,10 +1745,11 @@ msgstr "" "poblada para el módulo. Esta especificación siempre tendrá \"cargador\" " "establecido (con una excepción)." -#: ../Doc/reference/import.rst:875 +#: ../Doc/reference/import.rst:892 +#, fuzzy msgid "" "To indicate to the import machinery that the spec represents a namespace :" -"term:`portion`, the path entry finder sets \"submodule_search_locations\" to " +"term:`portion`, the path entry finder sets ``submodule_search_locations`` to " "a list containing the portion." msgstr "" "Para indicar a la maquinaria de importación que la especificación representa " @@ -1738,19 +1757,19 @@ msgstr "" "establece *\"submodule_search_locations\"* en una lista que contiene la " "porción." -#: ../Doc/reference/import.rst:879 +#: ../Doc/reference/import.rst:896 +#, fuzzy msgid "" -":meth:`~importlib.abc.PathEntryFinder.find_spec` replaced :meth:`~importlib." -"abc.PathEntryFinder.find_loader` and :meth:`~importlib.abc.PathEntryFinder." -"find_module`, both of which are now deprecated, but will be used if " -"``find_spec()`` is not defined." +":meth:`~importlib.abc.PathEntryFinder.find_spec` replaced :meth:`!" +"find_loader` and :meth:`!find_module`, both of which are now deprecated, but " +"will be used if ``find_spec()`` is not defined." msgstr "" ":meth:`~importlib.abc.PathEntryFinder.find_spec` reemplazó a :meth:" "`~importlib.abc.PathEntryFinder.find_loader` y :meth:`~importlib.abc." "PathEntryFinder.find_module`, los cuales ahora están en desuso, pero se " "utilizarán si ``find_spec()`` no está definido." -#: ../Doc/reference/import.rst:885 +#: ../Doc/reference/import.rst:902 msgid "" "Older path entry finders may implement one of these two deprecated methods " "instead of ``find_spec()``. The methods are still respected for the sake of " @@ -1763,19 +1782,19 @@ msgstr "" "Sin embargo, si ``find_spec()`` se implementa en el buscador de entrada de " "ruta, se omiten los métodos heredados." -#: ../Doc/reference/import.rst:890 +#: ../Doc/reference/import.rst:907 +#, fuzzy msgid "" -":meth:`~importlib.abc.PathEntryFinder.find_loader` takes one argument, the " -"fully qualified name of the module being imported. ``find_loader()`` " -"returns a 2-tuple where the first item is the loader and the second item is " -"a namespace :term:`portion`." +":meth:`!find_loader` takes one argument, the fully qualified name of the " +"module being imported. ``find_loader()`` returns a 2-tuple where the first " +"item is the loader and the second item is a namespace :term:`portion`." msgstr "" ":meth:`~importlib.abc.PathEntryFinder.find_loader` toma un argumento, el " "nombre completo del módulo que se está importando. ``find_loader()`` retorna " "una 2-tupla donde el primer elemento es el cargador y el segundo elemento es " "un espacio de nombres :term:`portion`." -#: ../Doc/reference/import.rst:895 +#: ../Doc/reference/import.rst:912 msgid "" "For backwards compatibility with other implementations of the import " "protocol, many path entry finders also support the same, traditional " @@ -1792,7 +1811,7 @@ msgstr "" "argumento ``path`` (se espera que registren la información de ruta adecuada " "desde la llamada inicial al enlace de ruta)." -#: ../Doc/reference/import.rst:902 +#: ../Doc/reference/import.rst:919 msgid "" "The ``find_module()`` method on path entry finders is deprecated, as it does " "not allow the path entry finder to contribute portions to namespace " @@ -1807,21 +1826,25 @@ msgstr "" "el sistema de importación siempre llamará a ``find_loader()`` en lugar de " "``find_module()``." -#: ../Doc/reference/import.rst:908 +#: ../Doc/reference/import.rst:925 +#, fuzzy msgid "" -"Calls to :meth:`~importlib.abc.PathEntryFinder.find_module` and :meth:" -"`~importlib.abc.PathEntryFinder.find_loader` by the import system will " -"raise :exc:`ImportWarning`." +"Calls to :meth:`!find_module` and :meth:`!find_loader` by the import system " +"will raise :exc:`ImportWarning`." msgstr "" "Las llamadas a :meth:`~importlib.abc.PathEntryFinder.find_module` y :meth:" "`~importlib.abc.PathEntryFinder.find_loader` por parte del sistema de " "importación lanzarán :exc:`ImportWarning`." -#: ../Doc/reference/import.rst:915 +#: ../Doc/reference/import.rst:930 +msgid "``find_module()`` and ``find_loader()`` have been removed." +msgstr "" + +#: ../Doc/reference/import.rst:935 msgid "Replacing the standard import system" msgstr "Reemplazando el sistema de importación estándar" -#: ../Doc/reference/import.rst:917 +#: ../Doc/reference/import.rst:937 msgid "" "The most reliable mechanism for replacing the entire import system is to " "delete the default contents of :data:`sys.meta_path`, replacing them " @@ -1831,7 +1854,7 @@ msgstr "" "eliminar el contenido predeterminado de :data:`sys.meta_path`, " "sustituyéndolos por completo por un enlace de meta path personalizado." -#: ../Doc/reference/import.rst:921 +#: ../Doc/reference/import.rst:941 msgid "" "If it is acceptable to only alter the behaviour of import statements without " "affecting other APIs that access the import system, then replacing the " @@ -1846,7 +1869,7 @@ msgstr "" "únicamente el comportamiento de las declaraciones de importación dentro de " "ese módulo." -#: ../Doc/reference/import.rst:927 +#: ../Doc/reference/import.rst:947 msgid "" "To selectively prevent the import of some modules from a hook early on the " "meta path (rather than disabling the standard import system entirely), it is " @@ -1863,11 +1886,11 @@ msgstr "" "continuar, mientras que la generación de una excepción termina " "inmediatamente." -#: ../Doc/reference/import.rst:937 +#: ../Doc/reference/import.rst:957 msgid "Package Relative Imports" msgstr "Paquete Importaciones relativas" -#: ../Doc/reference/import.rst:939 +#: ../Doc/reference/import.rst:959 msgid "" "Relative imports use leading dots. A single leading dot indicates a relative " "import, starting with the current package. Two or more leading dots indicate " @@ -1880,7 +1903,7 @@ msgstr "" "primarios del paquete actual, un nivel por punto después del primero. Por " "ejemplo, dado el siguiente diseño de paquete::" -#: ../Doc/reference/import.rst:955 +#: ../Doc/reference/import.rst:975 msgid "" "In either ``subpackage1/moduleX.py`` or ``subpackage1/__init__.py``, the " "following are valid relative imports::" @@ -1888,7 +1911,7 @@ msgstr "" "En ``subpackage1/moduleX.py`` o ``subpackage1/__init__.py``, las siguientes " "son importaciones relativas válidas::" -#: ../Doc/reference/import.rst:965 +#: ../Doc/reference/import.rst:985 msgid "" "Absolute imports may use either the ``import <>`` or ``from <> import <>`` " "syntax, but relative imports may only use the second form; the reason for " @@ -1898,7 +1921,7 @@ msgstr "" "``from <> import <>``, pero las importaciones relativas solo pueden usar el " "segundo formulario; la razón de esto es que:" -#: ../Doc/reference/import.rst:971 +#: ../Doc/reference/import.rst:991 msgid "" "should expose ``XXX.YYY.ZZZ`` as a usable expression, but .moduleY is not a " "valid expression." @@ -1906,11 +1929,11 @@ msgstr "" "debe exponer ``XXX. Yyy. ZZZ`` como una expresión utilizable, pero .moduleY " "no es una expresión válida." -#: ../Doc/reference/import.rst:978 +#: ../Doc/reference/import.rst:998 msgid "Special considerations for __main__" msgstr "Consideraciones especiales para __main__" -#: ../Doc/reference/import.rst:980 +#: ../Doc/reference/import.rst:1000 msgid "" "The :mod:`__main__` module is a special case relative to Python's import " "system. As noted :ref:`elsewhere `, the ``__main__`` module is " @@ -1928,11 +1951,11 @@ msgstr "" "en que se inicializa ``__main__`` depende de las marcas y otras opciones con " "las que se invoca el intérprete." -#: ../Doc/reference/import.rst:991 +#: ../Doc/reference/import.rst:1011 msgid "__main__.__spec__" msgstr "__main__.__spec__" -#: ../Doc/reference/import.rst:993 +#: ../Doc/reference/import.rst:1013 msgid "" "Depending on how :mod:`__main__` is initialized, ``__main__.__spec__`` gets " "set appropriately or to ``None``." @@ -1940,7 +1963,7 @@ msgstr "" "Dependiendo de cómo se inicializa :mod:`__main__`, ``__main__.__spec__`` se " "establece correctamente o en ``None``." -#: ../Doc/reference/import.rst:996 +#: ../Doc/reference/import.rst:1016 msgid "" "When Python is started with the :option:`-m` option, ``__spec__`` is set to " "the module spec of the corresponding module or package. ``__spec__`` is also " @@ -1953,7 +1976,7 @@ msgstr "" "``__main__`` se carga como parte de la ejecución de un directorio, zipfile u " "otro :data:`sys.path` entrada." -#: ../Doc/reference/import.rst:1001 +#: ../Doc/reference/import.rst:1021 msgid "" "In :ref:`the remaining cases ` ``__main__." "__spec__`` is set to ``None``, as the code used to populate the :mod:" @@ -1964,25 +1987,25 @@ msgstr "" "rellenar el :mod:`__main__` no se corresponde directamente con un módulo " "importable:" -#: ../Doc/reference/import.rst:1005 +#: ../Doc/reference/import.rst:1025 msgid "interactive prompt" msgstr "mensaje interactivo" -#: ../Doc/reference/import.rst:1006 +#: ../Doc/reference/import.rst:1026 msgid ":option:`-c` option" msgstr "opción :option:`-c`" -#: ../Doc/reference/import.rst:1007 +#: ../Doc/reference/import.rst:1027 msgid "running from stdin" msgstr "ejecutando desde stdin" -#: ../Doc/reference/import.rst:1008 +#: ../Doc/reference/import.rst:1028 msgid "running directly from a source or bytecode file" msgstr "" "que se ejecuta directamente desde un archivo de código fuente o de código de " "bytes" -#: ../Doc/reference/import.rst:1010 +#: ../Doc/reference/import.rst:1030 msgid "" "Note that ``__main__.__spec__`` is always ``None`` in the last case, *even " "if* the file could technically be imported directly as a module instead. Use " @@ -1994,7 +2017,7 @@ msgstr "" "como un módulo en su lugar. Utilice el modificador :option:`-m` si se desean " "metadatos de módulo válidos en :mod:`__main__`." -#: ../Doc/reference/import.rst:1015 +#: ../Doc/reference/import.rst:1035 msgid "" "Note also that even when ``__main__`` corresponds with an importable module " "and ``__main__.__spec__`` is set accordingly, they're still considered " @@ -2009,11 +2032,11 @@ msgstr "" "solo se ejecutan cuando el módulo se utiliza para rellenar el espacio de " "nombres ``__main__``, y no durante la importación normal." -#: ../Doc/reference/import.rst:1023 +#: ../Doc/reference/import.rst:1043 msgid "References" msgstr "Referencias" -#: ../Doc/reference/import.rst:1025 +#: ../Doc/reference/import.rst:1045 msgid "" "The import machinery has evolved considerably since Python's early days. " "The original `specification for packages `_ todavía está disponible para leer, " "aunque algunos detalles han cambiado desde la escritura de ese documento." -#: ../Doc/reference/import.rst:1030 +#: ../Doc/reference/import.rst:1050 msgid "" "The original specification for :data:`sys.meta_path` was :pep:`302`, with " "subsequent extension in :pep:`420`." @@ -2033,17 +2056,18 @@ msgstr "" "La especificación original de :data:`sys.meta_path` era :pep:`302`, con " "posterior extensión en :pep:`420`." -#: ../Doc/reference/import.rst:1033 +#: ../Doc/reference/import.rst:1053 +#, fuzzy msgid "" ":pep:`420` introduced :term:`namespace packages ` for " -"Python 3.3. :pep:`420` also introduced the :meth:`find_loader` protocol as " -"an alternative to :meth:`find_module`." +"Python 3.3. :pep:`420` also introduced the :meth:`!find_loader` protocol as " +"an alternative to :meth:`!find_module`." msgstr "" ":pep:`420` introdujo :term:`paquetes de espacio de nombres ` para Python 3.3. :pep:`420` también introdujo el protocolo :meth:" "`find_loader` como alternativa a :meth:`find_module`." -#: ../Doc/reference/import.rst:1037 +#: ../Doc/reference/import.rst:1057 msgid "" ":pep:`366` describes the addition of the ``__package__`` attribute for " "explicit relative imports in main modules." @@ -2051,7 +2075,7 @@ msgstr "" ":pep:`366` describe la adición del atributo ``__package__`` para las " "importaciones relativas explícitas en los módulos principales." -#: ../Doc/reference/import.rst:1040 +#: ../Doc/reference/import.rst:1060 msgid "" ":pep:`328` introduced absolute and explicit relative imports and initially " "proposed ``__name__`` for semantics :pep:`366` would eventually specify for " @@ -2061,11 +2085,11 @@ msgstr "" "inicialmente propuestas ``__name__`` para la semántica :pep:`366` " "eventualmente especificaría para ``__package__``." -#: ../Doc/reference/import.rst:1044 +#: ../Doc/reference/import.rst:1064 msgid ":pep:`338` defines executing modules as scripts." msgstr ":pep:`338` define la ejecución de módulos como scripts." -#: ../Doc/reference/import.rst:1046 +#: ../Doc/reference/import.rst:1066 msgid "" ":pep:`451` adds the encapsulation of per-module import state in spec " "objects. It also off-loads most of the boilerplate responsibilities of " @@ -2079,15 +2103,15 @@ msgstr "" "cambios permiten el desuso de varias API en el sistema de importación y " "también la adición de nuevos métodos a los buscadores y cargadores." -#: ../Doc/reference/import.rst:1053 +#: ../Doc/reference/import.rst:1073 msgid "Footnotes" msgstr "Notas al Pie de Pagina" -#: ../Doc/reference/import.rst:1054 +#: ../Doc/reference/import.rst:1074 msgid "See :class:`types.ModuleType`." msgstr "Véase :class:`types. ModuleType`." -#: ../Doc/reference/import.rst:1056 +#: ../Doc/reference/import.rst:1076 msgid "" "The importlib implementation avoids using the return value directly. " "Instead, it gets the module object by looking the module name up in :data:" @@ -2102,14 +2126,150 @@ msgstr "" "específico de la implementación que no se garantiza que funcione en otras " "implementaciones de Python." -#: ../Doc/reference/import.rst:1063 -msgid "" -"In legacy code, it is possible to find instances of :class:`imp." -"NullImporter` in the :data:`sys.path_importer_cache`. It is recommended " -"that code be changed to use ``None`` instead. See :ref:`portingpythoncode` " -"for more details." +#: ../Doc/reference/import.rst:8 +msgid "import machinery" +msgstr "" + +#: ../Doc/reference/import.rst:64 ../Doc/reference/import.rst:95 +#: ../Doc/reference/import.rst:129 +#, fuzzy +msgid "package" +msgstr "Paquetes" + +#: ../Doc/reference/import.rst:95 +#, fuzzy +msgid "regular" +msgstr "Paquetes regulares" + +#: ../Doc/reference/import.rst:129 +#, fuzzy +msgid "namespace" +msgstr "Paquetes de espacio de nombres" + +#: ../Doc/reference/import.rst:129 +msgid "portion" +msgstr "" + +#: ../Doc/reference/import.rst:175 +#, fuzzy +msgid "sys.modules" +msgstr "Submódulos" + +#: ../Doc/reference/import.rst:210 ../Doc/reference/import.rst:276 +msgid "finder" +msgstr "" + +#: ../Doc/reference/import.rst:210 +#, fuzzy +msgid "loader" +msgstr "Cargadores" + +#: ../Doc/reference/import.rst:210 +#, fuzzy +msgid "module spec" +msgstr "Especificaciones del módulo" + +#: ../Doc/reference/import.rst:249 +#, fuzzy +msgid "import hooks" +msgstr "Ganchos de importación" + +#: ../Doc/reference/import.rst:249 +#, fuzzy +msgid "meta hooks" +msgstr "Ganchos de importación" + +#: ../Doc/reference/import.rst:249 +#, fuzzy +msgid "path hooks" +msgstr "Ganchos de importación" + +#: ../Doc/reference/import.rst:249 +msgid "hooks" +msgstr "" + +#: ../Doc/reference/import.rst:249 +#, fuzzy +msgid "import" +msgstr "Ganchos de importación" + +#: ../Doc/reference/import.rst:249 +msgid "meta" +msgstr "" + +#: ../Doc/reference/import.rst:249 +msgid "path" msgstr "" -"En el código heredado, es posible encontrar instancias de :class:`imp. " -"NullImporter` en el :data:`sys.path_importer_cache`. Se recomienda cambiar " -"el código para usar ``None`` en su lugar. Consulte :ref:`portingpythoncode` " -"para obtener más detalles." + +#: ../Doc/reference/import.rst:276 +#, fuzzy +msgid "sys.meta_path" +msgstr "La meta ruta (*path*)" + +#: ../Doc/reference/import.rst:276 +msgid "find_spec" +msgstr "" + +#: ../Doc/reference/import.rst:744 +#, fuzzy +msgid "path based finder" +msgstr "El buscador basado en rutas" + +#: ../Doc/reference/import.rst:793 +msgid "sys.path" +msgstr "" + +#: ../Doc/reference/import.rst:793 +msgid "sys.path_hooks" +msgstr "" + +#: ../Doc/reference/import.rst:793 +msgid "sys.path_importer_cache" +msgstr "" + +#: ../Doc/reference/import.rst:793 +msgid "PYTHONPATH" +msgstr "" + +#~ msgid "" +#~ "Use of :meth:`loader.module_repr() ` " +#~ "has been deprecated and the module spec is now used by the import " +#~ "machinery to generate a module repr." +#~ msgstr "" +#~ "El uso de :meth:`loader.module_repr() ` " +#~ "ha quedado obsoleto y la máquina de importación utiliza ahora la " +#~ "especificación del módulo para generar un repr de módulo." + +#~ msgid "" +#~ "For backward compatibility with Python 3.3, the module repr will be " +#~ "generated by calling the loader's :meth:`~importlib.abc.Loader." +#~ "module_repr` method, if defined, before trying either approach described " +#~ "above. However, the method is deprecated." +#~ msgstr "" +#~ "Para la compatibilidad con versiones anteriores de Python 3.3, el repr " +#~ "del módulo se generará llamando al método :meth:`~importlib.abc.Loader." +#~ "module_repr` del cargador, si se define, antes de probar cualquiera de " +#~ "los enfoques descritos anteriormente. Sin embargo, el método está en " +#~ "desuso." + +#~ msgid "" +#~ "Calling :meth:`~importlib.abc.Loader.module_repr` now occurs after trying " +#~ "to use a module's ``__spec__`` attribute but before falling back on " +#~ "``__file__``. Use of :meth:`~importlib.abc.Loader.module_repr` is slated " +#~ "to stop in Python 3.12." +#~ msgstr "" +#~ "La llamada a :meth:`~importlib.abc.Loader.module_repr` ahora ocurre " +#~ "después de intentar usar el atributo ``__spec__`` de un módulo, pero " +#~ "antes de recurrir a ``__file__``. Está previsto que el uso de :meth:" +#~ "`~importlib.abc.Loader.module_repr` se detenga en Python 3.12." + +#~ msgid "" +#~ "In legacy code, it is possible to find instances of :class:`imp." +#~ "NullImporter` in the :data:`sys.path_importer_cache`. It is recommended " +#~ "that code be changed to use ``None`` instead. See :ref:" +#~ "`portingpythoncode` for more details." +#~ msgstr "" +#~ "En el código heredado, es posible encontrar instancias de :class:`imp. " +#~ "NullImporter` en el :data:`sys.path_importer_cache`. Se recomienda " +#~ "cambiar el código para usar ``None`` en su lugar. Consulte :ref:" +#~ "`portingpythoncode` para obtener más detalles." diff --git a/reference/introduction.po b/reference/introduction.po index 3b7ea6d49a..76fd788c72 100644 --- a/reference/introduction.po +++ b/reference/introduction.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-05-09 18:45+0200\n" "Last-Translator: Xavi Francisco \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/reference/introduction.rst:6 msgid "Introduction" @@ -188,8 +188,8 @@ msgid "" "support and a Just in Time compiler. One of the goals of the project is to " "encourage experimentation with the language itself by making it easier to " "modify the interpreter (since it is written in Python). Additional " -"information is available on `the PyPy project's home page `_." +"information is available on `the PyPy project's home page `_." msgstr "" "Una implementación de Python escrita completamente en Python. Soporta varias " "características avanzadas que no se encuentran en otras implementaciones " @@ -302,3 +302,28 @@ msgstr "" "análisis léxico. Todos los usos de BNF en el siguiente capítulo (\"Análisis " "Léxico\") son definiciones léxicas. Usos en capítulos posteriores son " "definiciones sintácticas." + +#: ../Doc/reference/introduction.rst:91 +msgid "BNF" +msgstr "" + +#: ../Doc/reference/introduction.rst:91 +msgid "grammar" +msgstr "" + +#: ../Doc/reference/introduction.rst:91 +msgid "syntax" +msgstr "" + +#: ../Doc/reference/introduction.rst:91 +#, fuzzy +msgid "notation" +msgstr "Notación" + +#: ../Doc/reference/introduction.rst:117 +msgid "lexical definitions" +msgstr "" + +#: ../Doc/reference/introduction.rst:117 +msgid "ASCII" +msgstr "" diff --git a/reference/lexical_analysis.po b/reference/lexical_analysis.po index 71a9da2701..fdb96066ae 100644 --- a/reference/lexical_analysis.po +++ b/reference/lexical_analysis.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-10-30 14:13-0300\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/reference/lexical_analysis.rst:6 msgid "Lexical analysis" @@ -526,9 +526,10 @@ msgid "*Pc* - connector punctuations" msgstr "*Pc* - puntuaciones conectoras" #: ../Doc/reference/lexical_analysis.rst:317 +#, fuzzy msgid "" "*Other_ID_Start* - explicit list of characters in `PropList.txt `_ to support backwards " +"unicode.org/Public/15.0.0/ucd/PropList.txt>`_ to support backwards " "compatibility" msgstr "" "*Other_ID_Start*: lista explícita de caracteres en `PropList.txt ` that denotes a :ref:`wildcard ` que denota un comodín :ref:" "`wildcard `." -#: ../Doc/reference/lexical_analysis.rst:394 +#: ../Doc/reference/lexical_analysis.rst:398 msgid "" "Separately, the interactive interpreter makes the result of the last " "evaluation available in the variable ``_``. (It is stored in the :mod:" @@ -646,7 +659,7 @@ msgstr "" "la última evaluación en la variable ``_``. (Se almacena en el módulo :mod:" "`builtins`, junto con funciones incorporadas como ``print``)." -#: ../Doc/reference/lexical_analysis.rst:399 +#: ../Doc/reference/lexical_analysis.rst:403 msgid "" "Elsewhere, ``_`` is a regular identifier. It is often used to name " "\"special\" items, but it is not special to Python itself." @@ -654,7 +667,7 @@ msgstr "" "En otros lugares, ``_`` es un identificador regular. A menudo se usa para " "nombrar elementos \"especiales\", pero no es especial para Python en sí." -#: ../Doc/reference/lexical_analysis.rst:404 +#: ../Doc/reference/lexical_analysis.rst:408 msgid "" "The name ``_`` is often used in conjunction with internationalization; refer " "to the documentation for the :mod:`gettext` module for more information on " @@ -664,15 +677,15 @@ msgstr "" "consultar la documentación del módulo :mod:`gettext`` para más información " "sobre esta convención." -#: ../Doc/reference/lexical_analysis.rst:408 +#: ../Doc/reference/lexical_analysis.rst:412 msgid "It is also commonly used for unused variables." msgstr "También se usa comúnmente para variables no utilizadas." -#: ../Doc/reference/lexical_analysis.rst:416 +#: ../Doc/reference/lexical_analysis.rst:420 msgid "``__*__``" msgstr "``__*__``" -#: ../Doc/reference/lexical_analysis.rst:411 +#: ../Doc/reference/lexical_analysis.rst:415 msgid "" "System-defined names, informally known as \"dunder\" names. These names are " "defined by the interpreter and its implementation (including the standard " @@ -689,11 +702,11 @@ msgstr "" "nombres ``__*__``, en cualquier contexto, que no siga un uso explícitamente " "documentado, está sujeto a que se rompa sin previo aviso." -#: ../Doc/reference/lexical_analysis.rst:423 +#: ../Doc/reference/lexical_analysis.rst:427 msgid "``__*``" msgstr "``__*``" -#: ../Doc/reference/lexical_analysis.rst:419 +#: ../Doc/reference/lexical_analysis.rst:423 msgid "" "Class-private names. Names in this category, when used within the context " "of a class definition, are re-written to use a mangled form to help avoid " @@ -706,27 +719,27 @@ msgstr "" "atributos \"privados\" de las clases base y derivadas. Ver la sección :ref:" "`atom-identifiers`." -#: ../Doc/reference/lexical_analysis.rst:428 +#: ../Doc/reference/lexical_analysis.rst:432 msgid "Literals" msgstr "Literales" -#: ../Doc/reference/lexical_analysis.rst:432 +#: ../Doc/reference/lexical_analysis.rst:436 msgid "Literals are notations for constant values of some built-in types." msgstr "" "Los literales son notaciones para los valores constantes de algunos tipos " "incorporados." -#: ../Doc/reference/lexical_analysis.rst:443 +#: ../Doc/reference/lexical_analysis.rst:447 msgid "String and Bytes literals" msgstr "Literales de cadenas y bytes" -#: ../Doc/reference/lexical_analysis.rst:445 +#: ../Doc/reference/lexical_analysis.rst:449 msgid "String literals are described by the following lexical definitions:" msgstr "" "Los literales de cadena se describen mediante las siguientes definiciones " "léxicas:" -#: ../Doc/reference/lexical_analysis.rst:470 +#: ../Doc/reference/lexical_analysis.rst:474 msgid "" "One syntactic restriction not indicated by these productions is that " "whitespace is not allowed between the :token:`~python-grammar:stringprefix` " @@ -742,14 +755,18 @@ msgstr "" "UTF-8 si no se proporciona una declaración de codificación en el archivo " "fuente; ver apartado :ref:`encodings`." -#: ../Doc/reference/lexical_analysis.rst:480 +#: ../Doc/reference/lexical_analysis.rst:484 +#, fuzzy msgid "" "In plain English: Both types of literals can be enclosed in matching single " "quotes (``'``) or double quotes (``\"``). They can also be enclosed in " "matching groups of three single or double quotes (these are generally " -"referred to as *triple-quoted strings*). The backslash (``\\``) character " -"is used to escape characters that otherwise have a special meaning, such as " -"newline, backslash itself, or the quote character." +"referred to as *triple-quoted strings*). The backslash (``\\``) character is " +"used to give special meaning to otherwise ordinary characters like ``n``, " +"which means 'newline' when escaped (``\\n``). It can also be used to escape " +"characters that otherwise have a special meaning, such as newline, backslash " +"itself, or the quote character. See :ref:`escape sequences ` below for examples." msgstr "" "En lenguaje claro y sencillo: ambos tipos de literales pueden ser encerrados " "entre comillas simples (``'``) o dobles (``\"``). También pueden estar " @@ -759,7 +776,7 @@ msgstr "" "manera tienen un significado especial, como la línea nueva, la barra inversa " "en sí misma, o el carácter de comillas." -#: ../Doc/reference/lexical_analysis.rst:491 +#: ../Doc/reference/lexical_analysis.rst:497 msgid "" "Bytes literals are always prefixed with ``'b'`` or ``'B'``; they produce an " "instance of the :class:`bytes` type instead of the :class:`str` type. They " @@ -771,7 +788,7 @@ msgstr "" "pueden contener caracteres ASCII; los bytes con un valor numérico de 128 o " "mayor deben ser expresados con escapes." -#: ../Doc/reference/lexical_analysis.rst:500 +#: ../Doc/reference/lexical_analysis.rst:506 msgid "" "Both string and bytes literals may optionally be prefixed with a letter " "``'r'`` or ``'R'``; such strings are called :dfn:`raw strings` and treat " @@ -788,7 +805,7 @@ msgstr "" "literales *raw* de unicode de Python 2.x se comportan de manera diferente a " "los de Python 3.x, la sintaxis de ``'ur'`` no está soportada." -#: ../Doc/reference/lexical_analysis.rst:507 +#: ../Doc/reference/lexical_analysis.rst:513 msgid "" "The ``'rb'`` prefix of raw bytes literals has been added as a synonym of " "``'br'``." @@ -796,7 +813,7 @@ msgstr "" "El prefijo ``'rb'`` de literales de bytes raw se ha añadido como sinónimo de " "``'br'``." -#: ../Doc/reference/lexical_analysis.rst:511 +#: ../Doc/reference/lexical_analysis.rst:517 msgid "" "Support for the unicode legacy literal (``u'value'``) was reintroduced to " "simplify the maintenance of dual Python 2.x and 3.x codebases. See :pep:" @@ -806,7 +823,7 @@ msgstr "" "simplificar el mantenimiento de las bases de código dual Python 2.x y 3.x. " "Ver :pep:`414` para más información." -#: ../Doc/reference/lexical_analysis.rst:520 +#: ../Doc/reference/lexical_analysis.rst:526 msgid "" "A string literal with ``'f'`` or ``'F'`` in its prefix is a :dfn:`formatted " "string literal`; see :ref:`f-strings`. The ``'f'`` may be combined with " @@ -819,7 +836,7 @@ msgstr "" "cadenas *raw* formateadas son posibles, pero los literales de bytes " "formateados no lo son." -#: ../Doc/reference/lexical_analysis.rst:525 +#: ../Doc/reference/lexical_analysis.rst:531 msgid "" "In triple-quoted literals, unescaped newlines and quotes are allowed (and " "are retained), except that three unescaped quotes in a row terminate the " @@ -831,7 +848,12 @@ msgstr "" "finalizan el literal. (Una \"cita\" es el carácter utilizado para abrir el " "literal, es decir, ya sea ``'`` o ``\"``.)" -#: ../Doc/reference/lexical_analysis.rst:544 +#: ../Doc/reference/lexical_analysis.rst:554 +#, fuzzy +msgid "Escape sequences" +msgstr "Secuencia de escape" + +#: ../Doc/reference/lexical_analysis.rst:556 msgid "" "Unless an ``'r'`` or ``'R'`` prefix is present, escape sequences in string " "and bytes literals are interpreted according to rules similar to those used " @@ -841,190 +863,191 @@ msgstr "" "escape en literales de cadena y bytes se interpretan según reglas similares " "a las usadas por C estándar. Las secuencias de escape reconocidas son:" -#: ../Doc/reference/lexical_analysis.rst:549 -#: ../Doc/reference/lexical_analysis.rst:582 +#: ../Doc/reference/lexical_analysis.rst:561 +#: ../Doc/reference/lexical_analysis.rst:594 msgid "Escape Sequence" msgstr "Secuencia de escape" -#: ../Doc/reference/lexical_analysis.rst:549 -#: ../Doc/reference/lexical_analysis.rst:582 +#: ../Doc/reference/lexical_analysis.rst:561 +#: ../Doc/reference/lexical_analysis.rst:594 msgid "Meaning" msgstr "Significado" -#: ../Doc/reference/lexical_analysis.rst:549 -#: ../Doc/reference/lexical_analysis.rst:582 +#: ../Doc/reference/lexical_analysis.rst:561 +#: ../Doc/reference/lexical_analysis.rst:594 msgid "Notes" msgstr "Notas" -#: ../Doc/reference/lexical_analysis.rst:551 +#: ../Doc/reference/lexical_analysis.rst:563 msgid "``\\``\\ " msgstr "``\\``\\ " -#: ../Doc/reference/lexical_analysis.rst:551 +#: ../Doc/reference/lexical_analysis.rst:563 msgid "Backslash and newline ignored" msgstr "Barra inversa y línea nueva ignoradas" -#: ../Doc/reference/lexical_analysis.rst:551 +#: ../Doc/reference/lexical_analysis.rst:563 msgid "\\(1)" msgstr "\\(1)" -#: ../Doc/reference/lexical_analysis.rst:553 +#: ../Doc/reference/lexical_analysis.rst:565 msgid "``\\\\``" msgstr "``\\\\``" -#: ../Doc/reference/lexical_analysis.rst:553 +#: ../Doc/reference/lexical_analysis.rst:565 msgid "Backslash (``\\``)" msgstr "Barra inversa (``\\``)" -#: ../Doc/reference/lexical_analysis.rst:555 +#: ../Doc/reference/lexical_analysis.rst:567 msgid "``\\'``" msgstr "``\\'``" -#: ../Doc/reference/lexical_analysis.rst:555 +#: ../Doc/reference/lexical_analysis.rst:567 msgid "Single quote (``'``)" msgstr "Comilla simple (``'``)" -#: ../Doc/reference/lexical_analysis.rst:557 +#: ../Doc/reference/lexical_analysis.rst:569 msgid "``\\\"``" msgstr "``\\\"``" -#: ../Doc/reference/lexical_analysis.rst:557 +#: ../Doc/reference/lexical_analysis.rst:569 msgid "Double quote (``\"``)" msgstr "Comilla doble (``\"``)" -#: ../Doc/reference/lexical_analysis.rst:559 +#: ../Doc/reference/lexical_analysis.rst:571 msgid "``\\a``" msgstr "``\\a``" -#: ../Doc/reference/lexical_analysis.rst:559 +#: ../Doc/reference/lexical_analysis.rst:571 msgid "ASCII Bell (BEL)" msgstr "ASCII Bell (BEL)" -#: ../Doc/reference/lexical_analysis.rst:561 +#: ../Doc/reference/lexical_analysis.rst:573 msgid "``\\b``" msgstr "``\\b``" -#: ../Doc/reference/lexical_analysis.rst:561 +#: ../Doc/reference/lexical_analysis.rst:573 msgid "ASCII Backspace (BS)" msgstr "ASCII Retroceso (BS)" -#: ../Doc/reference/lexical_analysis.rst:563 +#: ../Doc/reference/lexical_analysis.rst:575 msgid "``\\f``" msgstr "``\\f``" -#: ../Doc/reference/lexical_analysis.rst:563 +#: ../Doc/reference/lexical_analysis.rst:575 msgid "ASCII Formfeed (FF)" msgstr "ASCII Formfeed (FF)" -#: ../Doc/reference/lexical_analysis.rst:565 +#: ../Doc/reference/lexical_analysis.rst:577 msgid "``\\n``" msgstr "``\\n``" -#: ../Doc/reference/lexical_analysis.rst:565 +#: ../Doc/reference/lexical_analysis.rst:577 msgid "ASCII Linefeed (LF)" msgstr "ASCII Linefeed (LF)" -#: ../Doc/reference/lexical_analysis.rst:567 +#: ../Doc/reference/lexical_analysis.rst:579 msgid "``\\r``" msgstr "``\\r``" -#: ../Doc/reference/lexical_analysis.rst:567 +#: ../Doc/reference/lexical_analysis.rst:579 msgid "ASCII Carriage Return (CR)" msgstr "ASCII Retorno de carro (CR)" -#: ../Doc/reference/lexical_analysis.rst:569 +#: ../Doc/reference/lexical_analysis.rst:581 msgid "``\\t``" msgstr "``\\t``" -#: ../Doc/reference/lexical_analysis.rst:569 +#: ../Doc/reference/lexical_analysis.rst:581 msgid "ASCII Horizontal Tab (TAB)" msgstr "ASCII Sangría horizontal (TAB)" -#: ../Doc/reference/lexical_analysis.rst:571 +#: ../Doc/reference/lexical_analysis.rst:583 msgid "``\\v``" msgstr "``\\v``" -#: ../Doc/reference/lexical_analysis.rst:571 +#: ../Doc/reference/lexical_analysis.rst:583 msgid "ASCII Vertical Tab (VT)" msgstr "ASCII Sangría vertical (VT)" -#: ../Doc/reference/lexical_analysis.rst:573 -msgid "``\\ooo``" -msgstr "``\\ooo``" +#: ../Doc/reference/lexical_analysis.rst:585 +msgid ":samp:`\\\\\\\\{ooo}`" +msgstr "" -#: ../Doc/reference/lexical_analysis.rst:573 +#: ../Doc/reference/lexical_analysis.rst:585 msgid "Character with octal value *ooo*" msgstr "Carácter con valor octal *ooo*" -#: ../Doc/reference/lexical_analysis.rst:573 +#: ../Doc/reference/lexical_analysis.rst:585 msgid "(2,4)" msgstr "(2,4)" -#: ../Doc/reference/lexical_analysis.rst:576 -msgid "``\\xhh``" -msgstr "``\\xhh``" +#: ../Doc/reference/lexical_analysis.rst:588 +msgid ":samp:`\\\\x{hh}`" +msgstr "" -#: ../Doc/reference/lexical_analysis.rst:576 +#: ../Doc/reference/lexical_analysis.rst:588 msgid "Character with hex value *hh*" msgstr "Carácter con valor hexadecimal *hh*" -#: ../Doc/reference/lexical_analysis.rst:576 +#: ../Doc/reference/lexical_analysis.rst:588 msgid "(3,4)" msgstr "(3,4)" -#: ../Doc/reference/lexical_analysis.rst:579 +#: ../Doc/reference/lexical_analysis.rst:591 msgid "Escape sequences only recognized in string literals are:" msgstr "" "Las secuencias de escape que sólo se reconocen en los literales de cadena " "son:" -#: ../Doc/reference/lexical_analysis.rst:584 -msgid "``\\N{name}``" -msgstr "``\\N{name}``" +#: ../Doc/reference/lexical_analysis.rst:596 +msgid ":samp:`\\\\N\\\\{{name}\\\\}`" +msgstr "" -#: ../Doc/reference/lexical_analysis.rst:584 +#: ../Doc/reference/lexical_analysis.rst:596 msgid "Character named *name* in the Unicode database" msgstr "El carácter llamado *name* en la base de datos de Unicode" -#: ../Doc/reference/lexical_analysis.rst:584 +#: ../Doc/reference/lexical_analysis.rst:596 msgid "\\(5)" msgstr "\\(5)" -#: ../Doc/reference/lexical_analysis.rst:587 -msgid "``\\uxxxx``" -msgstr "``\\uxxxx``" +#: ../Doc/reference/lexical_analysis.rst:599 +msgid ":samp:`\\\\u{xxxx}`" +msgstr "" -#: ../Doc/reference/lexical_analysis.rst:587 +#: ../Doc/reference/lexical_analysis.rst:599 msgid "Character with 16-bit hex value *xxxx*" msgstr "Carácter con valor hexadecimal de 16 bits *xxxx*" -#: ../Doc/reference/lexical_analysis.rst:587 +#: ../Doc/reference/lexical_analysis.rst:599 msgid "\\(6)" msgstr "\\(6)" -#: ../Doc/reference/lexical_analysis.rst:590 -msgid "``\\Uxxxxxxxx``" +#: ../Doc/reference/lexical_analysis.rst:602 +#, fuzzy +msgid ":samp:`\\\\U{xxxxxxxx}`" msgstr "``\\Uxxxxxxxx``" -#: ../Doc/reference/lexical_analysis.rst:590 +#: ../Doc/reference/lexical_analysis.rst:602 msgid "Character with 32-bit hex value *xxxxxxxx*" msgstr "Carácter con valor hexadecimal de 32 bits *xxxxxxxx*" -#: ../Doc/reference/lexical_analysis.rst:590 +#: ../Doc/reference/lexical_analysis.rst:602 msgid "\\(7)" msgstr "\\(7)" -#: ../Doc/reference/lexical_analysis.rst:594 +#: ../Doc/reference/lexical_analysis.rst:606 msgid "Notes:" msgstr "Notas:" -#: ../Doc/reference/lexical_analysis.rst:597 +#: ../Doc/reference/lexical_analysis.rst:609 msgid "A backslash can be added at the end of a line to ignore the newline::" msgstr "" "Se puede agregar una barra invertida al final de una línea para ignorar la " "nueva línea:" -#: ../Doc/reference/lexical_analysis.rst:603 +#: ../Doc/reference/lexical_analysis.rst:615 msgid "" "The same result can be achieved using :ref:`triple-quoted strings " "`, or parentheses and :ref:`string literal concatenation `, o paréntesis y :ref:`string literal concatenation `." -#: ../Doc/reference/lexical_analysis.rst:608 +#: ../Doc/reference/lexical_analysis.rst:620 msgid "As in Standard C, up to three octal digits are accepted." msgstr "Como en C estándar, se aceptan hasta tres dígitos octales." -#: ../Doc/reference/lexical_analysis.rst:610 +#: ../Doc/reference/lexical_analysis.rst:622 +#, fuzzy +msgid "" +"Octal escapes with value larger than ``0o377`` produce a :exc:" +"`DeprecationWarning`." +msgstr "" +"Los escapes octales con un valor mayor que ``0o377`` producen un :exc:" +"`DeprecationWarning`. En una futura versión de Python, serán un :exc:" +"`SyntaxWarning` y eventualmente un :exc:`SyntaxError`." + +#: ../Doc/reference/lexical_analysis.rst:626 +#, fuzzy msgid "" "Octal escapes with value larger than ``0o377`` produce a :exc:" -"`DeprecationWarning`. In a future Python version they will be a :exc:" -"`SyntaxWarning` and eventually a :exc:`SyntaxError`." +"`SyntaxWarning`. In a future Python version they will be eventually a :exc:" +"`SyntaxError`." msgstr "" "Los escapes octales con un valor mayor que ``0o377`` producen un :exc:" "`DeprecationWarning`. En una futura versión de Python, serán un :exc:" "`SyntaxWarning` y eventualmente un :exc:`SyntaxError`." -#: ../Doc/reference/lexical_analysis.rst:616 +#: ../Doc/reference/lexical_analysis.rst:632 msgid "Unlike in Standard C, exactly two hex digits are required." msgstr "" "A diferencia de C estándar, se requieren exactamente dos dígitos " "hexadecimales." -#: ../Doc/reference/lexical_analysis.rst:619 +#: ../Doc/reference/lexical_analysis.rst:635 msgid "" "In a bytes literal, hexadecimal and octal escapes denote the byte with the " "given value. In a string literal, these escapes denote a Unicode character " @@ -1064,15 +1098,15 @@ msgstr "" "el valor dado. En un literal de cadena, estos escapes denotan un carácter " "Unicode con el valor dado." -#: ../Doc/reference/lexical_analysis.rst:624 +#: ../Doc/reference/lexical_analysis.rst:640 msgid "Support for name aliases [#]_ has been added." msgstr "Se ha añadido el soporte para los alias de nombres [#]_." -#: ../Doc/reference/lexical_analysis.rst:628 +#: ../Doc/reference/lexical_analysis.rst:644 msgid "Exactly four hex digits are required." msgstr "Se requieren exactamente cuatro dígitos hexadecimales." -#: ../Doc/reference/lexical_analysis.rst:631 +#: ../Doc/reference/lexical_analysis.rst:647 msgid "" "Any Unicode character can be encoded this way. Exactly eight hex digits are " "required." @@ -1080,7 +1114,7 @@ msgstr "" "Cualquier carácter Unicode puede ser codificado de esta manera. Se " "requieren exactamente ocho dígitos hexadecimales." -#: ../Doc/reference/lexical_analysis.rst:637 +#: ../Doc/reference/lexical_analysis.rst:653 msgid "" "Unlike Standard C, all unrecognized escape sequences are left in the string " "unchanged, i.e., *the backslash is left in the result*. (This behavior is " @@ -1097,17 +1131,21 @@ msgstr "" "escape sólo reconocidas en los literales de cadena caen en la categoría de " "escapes no reconocidos para los literales de bytes." -#: ../Doc/reference/lexical_analysis.rst:644 +#: ../Doc/reference/lexical_analysis.rst:660 +msgid "Unrecognized escape sequences produce a :exc:`DeprecationWarning`." +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:663 +#, fuzzy msgid "" -"Unrecognized escape sequences produce a :exc:`DeprecationWarning`. In a " -"future Python version they will be a :exc:`SyntaxWarning` and eventually a :" -"exc:`SyntaxError`." +"Unrecognized escape sequences produce a :exc:`SyntaxWarning`. In a future " +"Python version they will be eventually a :exc:`SyntaxError`." msgstr "" "Las secuencias de escape no reconocidas producen un :exc:" "`DeprecationWarning`. En una futura versión de Python serán un :exc:" "`SyntaxWarning` y eventualmente un :exc:`SyntaxError`." -#: ../Doc/reference/lexical_analysis.rst:649 +#: ../Doc/reference/lexical_analysis.rst:667 msgid "" "Even in a raw literal, quotes can be escaped with a backslash, but the " "backslash remains in the result; for example, ``r\"\\\"\"`` is a valid " @@ -1130,11 +1168,11 @@ msgstr "" "inversa seguida de una nueva línea se interpreta como esos dos caracteres " "como parte del literal, *no* como una continuación de línea." -#: ../Doc/reference/lexical_analysis.rst:662 +#: ../Doc/reference/lexical_analysis.rst:680 msgid "String literal concatenation" msgstr "Concatenación de literales de cadena" -#: ../Doc/reference/lexical_analysis.rst:664 +#: ../Doc/reference/lexical_analysis.rst:682 msgid "" "Multiple adjacent string or bytes literals (delimited by whitespace), " "possibly using different quoting conventions, are allowed, and their meaning " @@ -1152,7 +1190,7 @@ msgstr "" "líneas, o incluso para añadir comentarios a partes de las cadenas, por " "ejemplo::" -#: ../Doc/reference/lexical_analysis.rst:675 +#: ../Doc/reference/lexical_analysis.rst:693 msgid "" "Note that this feature is defined at the syntactical level, but implemented " "at compile time. The '+' operator must be used to concatenate string " @@ -1169,11 +1207,11 @@ msgstr "" "cadenas con triple comilla), y los literales de cadena formateados pueden " "ser concatenados con los literales de cadena simples." -#: ../Doc/reference/lexical_analysis.rst:696 +#: ../Doc/reference/lexical_analysis.rst:714 msgid "Formatted string literals" msgstr "Literales de cadena formateados" -#: ../Doc/reference/lexical_analysis.rst:700 +#: ../Doc/reference/lexical_analysis.rst:718 msgid "" "A :dfn:`formatted string literal` or :dfn:`f-string` is a string literal " "that is prefixed with ``'f'`` or ``'F'``. These strings may contain " @@ -1187,7 +1225,7 @@ msgstr "" "que otros literales de cadena siempre tienen un valor constante, las cadenas " "formateadas son realmente expresiones evaluadas en tiempo de ejecución." -#: ../Doc/reference/lexical_analysis.rst:706 +#: ../Doc/reference/lexical_analysis.rst:724 msgid "" "Escape sequences are decoded like in ordinary string literals (except when a " "literal is also marked as a raw string). After decoding, the grammar for " @@ -1197,7 +1235,7 @@ msgstr "" "ordinarios (excepto cuando un literal también se marca como cadena *raw*). " "Después de la decodificación, la gramática para el contenido de la cadena es:" -#: ../Doc/reference/lexical_analysis.rst:720 +#: ../Doc/reference/lexical_analysis.rst:738 msgid "" "The parts of the string outside curly braces are treated literally, except " "that any doubled curly braces ``'{{'`` or ``'}}'`` are replaced with the " @@ -1220,15 +1258,19 @@ msgstr "" "introducido por dos puntos ``':'``. Un campo de reemplazo termina con un " "corchete de cierre ``'}'``." -#: ../Doc/reference/lexical_analysis.rst:730 +#: ../Doc/reference/lexical_analysis.rst:748 +#, fuzzy msgid "" "Expressions in formatted string literals are treated like regular Python " "expressions surrounded by parentheses, with a few exceptions. An empty " "expression is not allowed, and both :keyword:`lambda` and assignment " -"expressions ``:=`` must be surrounded by explicit parentheses. Replacement " -"expressions can contain line breaks (e.g. in triple-quoted strings), but " -"they cannot contain comments. Each expression is evaluated in the context " -"where the formatted string literal appears, in order from left to right." +"expressions ``:=`` must be surrounded by explicit parentheses. Each " +"expression is evaluated in the context where the formatted string literal " +"appears, in order from left to right. Replacement expressions can contain " +"newlines in both single-quoted and triple-quoted f-strings and they can " +"contain comments. Everything that comes after a ``#`` inside a replacement " +"field is a comment (even closing braces and quotes). In that case, " +"replacement fields must be closed in a different line." msgstr "" "Las expresiones en literales de cadena formateados se tratan como " "expresiones regulares de Python rodeadas de paréntesis, con algunas " @@ -1239,7 +1281,7 @@ msgstr "" "comentarios. Cada expresión se evalúa en el contexto en el que aparece el " "literal de cadena formateado, en orden de izquierda a derecha." -#: ../Doc/reference/lexical_analysis.rst:739 +#: ../Doc/reference/lexical_analysis.rst:765 msgid "" "Prior to Python 3.7, an :keyword:`await` expression and comprehensions " "containing an :keyword:`async for` clause were illegal in the expressions in " @@ -1250,7 +1292,13 @@ msgstr "" "en literales de cadenas formateadas debido a un problema con la " "implementación." -#: ../Doc/reference/lexical_analysis.rst:744 +#: ../Doc/reference/lexical_analysis.rst:770 +msgid "" +"Prior to Python 3.12, comments were not allowed inside f-string replacement " +"fields." +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:774 msgid "" "When the equal sign ``'='`` is provided, the output will have the expression " "text, the ``'='`` and the evaluated value. Spaces after the opening brace " @@ -1268,11 +1316,11 @@ msgstr "" "Cuando se especifica un formato, el valor predeterminado es :func:`str` de " "la expresión a menos que se declare una conversión ``'!r'``." -#: ../Doc/reference/lexical_analysis.rst:752 +#: ../Doc/reference/lexical_analysis.rst:782 msgid "The equal sign ``'='``." msgstr "El símbolo igual ``'='``." -#: ../Doc/reference/lexical_analysis.rst:755 +#: ../Doc/reference/lexical_analysis.rst:785 msgid "" "If a conversion is specified, the result of evaluating the expression is " "converted before formatting. Conversion ``'!s'`` calls :func:`str` on the " @@ -1283,13 +1331,14 @@ msgstr "" "func:`str` al resultado, ```!r'`` llama :func:`repr`, y ```!a'`` llama :func:" "`ascii`." -#: ../Doc/reference/lexical_analysis.rst:759 +#: ../Doc/reference/lexical_analysis.rst:789 +#, fuzzy msgid "" "The result is then formatted using the :func:`format` protocol. The format " -"specifier is passed to the :meth:`__format__` method of the expression or " -"conversion result. An empty string is passed when the format specifier is " -"omitted. The formatted result is then included in the final value of the " -"whole string." +"specifier is passed to the :meth:`~object.__format__` method of the " +"expression or conversion result. An empty string is passed when the format " +"specifier is omitted. The formatted result is then included in the final " +"value of the whole string." msgstr "" "El resultado es entonces formateado usando el protocolo :func:`format`. El " "especificador de formato se pasa al método :meth:`__format__` del resultado " @@ -1297,7 +1346,7 @@ msgstr "" "especificador de formato. El resultado formateado se incluye entonces en el " "valor final de toda la cadena." -#: ../Doc/reference/lexical_analysis.rst:765 +#: ../Doc/reference/lexical_analysis.rst:795 msgid "" "Top-level format specifiers may include nested replacement fields. These " "nested fields may include their own conversion fields and :ref:`format " @@ -1312,7 +1361,7 @@ msgstr "" "specifier mini-language ` es el mismo que usa el método :meth:" "`str.format`." -#: ../Doc/reference/lexical_analysis.rst:771 +#: ../Doc/reference/lexical_analysis.rst:801 msgid "" "Formatted string literals may be concatenated, but replacement fields cannot " "be split across literals." @@ -1320,37 +1369,35 @@ msgstr "" "Los literales de cadena formateados pueden ser concatenados, pero los campos " "de reemplazo no pueden ser divididos entre los literales." -#: ../Doc/reference/lexical_analysis.rst:774 +#: ../Doc/reference/lexical_analysis.rst:804 msgid "Some examples of formatted string literals::" msgstr "Algunos ejemplos de literales de cadena formateados::" -#: ../Doc/reference/lexical_analysis.rst:806 +#: ../Doc/reference/lexical_analysis.rst:836 +msgid "" +"Reusing the outer f-string quoting type inside a replacement field is " +"permitted::" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:843 msgid "" -"A consequence of sharing the same syntax as regular string literals is that " -"characters in the replacement fields must not conflict with the quoting used " -"in the outer formatted string literal::" +"Prior to Python 3.12, reuse of the same quoting type of the outer f-string " +"inside a replacement field was not possible." msgstr "" -"Una consecuencia de compartir la misma sintaxis que los literales de cadena " -"regulares es que los caracteres en los campos de reemplazo no deben entrar " -"en conflicto con la comilla usada en el literal de cadena formateado " -"exterior::" -#: ../Doc/reference/lexical_analysis.rst:813 +#: ../Doc/reference/lexical_analysis.rst:847 msgid "" -"Backslashes are not allowed in format expressions and will raise an error::" +"Backslashes are also allowed in replacement fields and are evaluated the " +"same way as in any other context::" msgstr "" -"Las barras inversas no están permitidas en las expresiones de formato y " -"generarán un error::" -#: ../Doc/reference/lexical_analysis.rst:818 +#: ../Doc/reference/lexical_analysis.rst:857 msgid "" -"To include a value in which a backslash escape is required, create a " -"temporary variable." +"Prior to Python 3.12, backslashes were not permitted inside an f-string " +"replacement field." msgstr "" -"Para incluir un valor en el que se requiere un escape de barra inversa, hay " -"que crear una variable temporal." -#: ../Doc/reference/lexical_analysis.rst:825 +#: ../Doc/reference/lexical_analysis.rst:861 msgid "" "Formatted string literals cannot be used as docstrings, even if they do not " "include expressions." @@ -1358,7 +1405,7 @@ msgstr "" "Los literales de cadena formateados no pueden ser usados como cadenas de " "documentos (*docstrings*), aunque no incluyan expresiones." -#: ../Doc/reference/lexical_analysis.rst:836 +#: ../Doc/reference/lexical_analysis.rst:872 msgid "" "See also :pep:`498` for the proposal that added formatted string literals, " "and :meth:`str.format`, which uses a related format string mechanism." @@ -1367,11 +1414,11 @@ msgstr "" "formateados, y :meth:`str.format`, que utiliza un mecanismo de cadenas " "formateadas relacionado." -#: ../Doc/reference/lexical_analysis.rst:843 +#: ../Doc/reference/lexical_analysis.rst:879 msgid "Numeric literals" msgstr "Literales numéricos" -#: ../Doc/reference/lexical_analysis.rst:849 +#: ../Doc/reference/lexical_analysis.rst:885 msgid "" "There are three types of numeric literals: integers, floating point numbers, " "and imaginary numbers. There are no complex literals (complex numbers can " @@ -1381,7 +1428,7 @@ msgstr "" "flotante y números imaginarios. No hay literales complejos (los números " "complejos pueden formarse sumando un número real y un número imaginario)." -#: ../Doc/reference/lexical_analysis.rst:853 +#: ../Doc/reference/lexical_analysis.rst:889 msgid "" "Note that numeric literals do not include a sign; a phrase like ``-1`` is " "actually an expression composed of the unary operator '``-``' and the " @@ -1391,17 +1438,17 @@ msgstr "" "``-1`` es en realidad una expresión compuesta por el operador unario '``-``' " "y el literal ``1``." -#: ../Doc/reference/lexical_analysis.rst:867 +#: ../Doc/reference/lexical_analysis.rst:903 msgid "Integer literals" msgstr "Literales enteros" -#: ../Doc/reference/lexical_analysis.rst:869 +#: ../Doc/reference/lexical_analysis.rst:905 msgid "Integer literals are described by the following lexical definitions:" msgstr "" "Los literales enteros se describen mediante las siguientes definiciones " "léxicas:" -#: ../Doc/reference/lexical_analysis.rst:883 +#: ../Doc/reference/lexical_analysis.rst:919 msgid "" "There is no limit for the length of integer literals apart from what can be " "stored in available memory." @@ -1409,7 +1456,7 @@ msgstr "" "No hay límite para la longitud de los literales enteros aparte de lo que se " "puede almacenar en la memoria disponible." -#: ../Doc/reference/lexical_analysis.rst:886 +#: ../Doc/reference/lexical_analysis.rst:922 msgid "" "Underscores are ignored for determining the numeric value of the literal. " "They can be used to group digits for enhanced readability. One underscore " @@ -1420,7 +1467,7 @@ msgstr "" "guión bajo puede ocurrir entre dígitos y después de especificadores de base " "como ``0x``." -#: ../Doc/reference/lexical_analysis.rst:890 +#: ../Doc/reference/lexical_analysis.rst:926 msgid "" "Note that leading zeros in a non-zero decimal number are not allowed. This " "is for disambiguation with C-style octal literals, which Python used before " @@ -1430,27 +1477,27 @@ msgstr "" "no sea cero. Esto es para desambiguar con los literales octales de estilo C, " "que Python usaba antes de la versión 3.0." -#: ../Doc/reference/lexical_analysis.rst:894 +#: ../Doc/reference/lexical_analysis.rst:930 msgid "Some examples of integer literals::" msgstr "Algunos ejemplos de literales enteros::" -#: ../Doc/reference/lexical_analysis.rst:900 -#: ../Doc/reference/lexical_analysis.rst:932 +#: ../Doc/reference/lexical_analysis.rst:936 +#: ../Doc/reference/lexical_analysis.rst:968 msgid "Underscores are now allowed for grouping purposes in literals." msgstr "Los guiones bajos están ahora permitidos para agrupar en literales." -#: ../Doc/reference/lexical_analysis.rst:911 +#: ../Doc/reference/lexical_analysis.rst:947 msgid "Floating point literals" msgstr "Literales de punto flotante" -#: ../Doc/reference/lexical_analysis.rst:913 +#: ../Doc/reference/lexical_analysis.rst:949 msgid "" "Floating point literals are described by the following lexical definitions:" msgstr "" "Los literales de punto flotante se describen en las siguientes definiciones " "léxicas:" -#: ../Doc/reference/lexical_analysis.rst:923 +#: ../Doc/reference/lexical_analysis.rst:959 msgid "" "Note that the integer and exponent parts are always interpreted using radix " "10. For example, ``077e010`` is legal, and denotes the same number as " @@ -1464,21 +1511,21 @@ msgstr "" "la implementación. Al igual que en los literales enteros, se admiten " "guiones bajos para la agrupación de dígitos." -#: ../Doc/reference/lexical_analysis.rst:928 +#: ../Doc/reference/lexical_analysis.rst:964 msgid "Some examples of floating point literals::" msgstr "Algunos ejemplos de literales de punto flotante::" -#: ../Doc/reference/lexical_analysis.rst:941 +#: ../Doc/reference/lexical_analysis.rst:977 msgid "Imaginary literals" msgstr "Literales imaginarios" -#: ../Doc/reference/lexical_analysis.rst:943 +#: ../Doc/reference/lexical_analysis.rst:979 msgid "Imaginary literals are described by the following lexical definitions:" msgstr "" "Los literales imaginarios se describen en las siguientes definiciones " "léxicas:" -#: ../Doc/reference/lexical_analysis.rst:948 +#: ../Doc/reference/lexical_analysis.rst:984 msgid "" "An imaginary literal yields a complex number with a real part of 0.0. " "Complex numbers are represented as a pair of floating point numbers and have " @@ -1492,23 +1539,23 @@ msgstr "" "con una parte real distinta de cero, añada un número de punto flotante, por " "ejemplo, ``(3+4j)``. Algunos ejemplos de literales imaginarios::" -#: ../Doc/reference/lexical_analysis.rst:960 +#: ../Doc/reference/lexical_analysis.rst:996 msgid "Operators" msgstr "Operadores" -#: ../Doc/reference/lexical_analysis.rst:964 +#: ../Doc/reference/lexical_analysis.rst:1000 msgid "The following tokens are operators:" msgstr "Los siguientes tokens son operadores:" -#: ../Doc/reference/lexical_analysis.rst:977 +#: ../Doc/reference/lexical_analysis.rst:1013 msgid "Delimiters" msgstr "Delimitadores" -#: ../Doc/reference/lexical_analysis.rst:981 +#: ../Doc/reference/lexical_analysis.rst:1017 msgid "The following tokens serve as delimiters in the grammar:" msgstr "Los siguientes tokens sirven como delimitadores en la gramática:" -#: ../Doc/reference/lexical_analysis.rst:990 +#: ../Doc/reference/lexical_analysis.rst:1026 msgid "" "The period can also occur in floating-point and imaginary literals. A " "sequence of three periods has a special meaning as an ellipsis literal. The " @@ -1521,7 +1568,7 @@ msgstr "" "asignación aumentada, sirven léxicamente como delimitadores, pero también " "realizan una operación." -#: ../Doc/reference/lexical_analysis.rst:995 +#: ../Doc/reference/lexical_analysis.rst:1031 msgid "" "The following printing ASCII characters have special meaning as part of " "other tokens or are otherwise significant to the lexical analyzer:" @@ -1530,7 +1577,7 @@ msgstr "" "como parte de otros tokens o son de alguna manera significativos para el " "analizador léxico:" -#: ../Doc/reference/lexical_analysis.rst:1002 +#: ../Doc/reference/lexical_analysis.rst:1038 msgid "" "The following printing ASCII characters are not used in Python. Their " "occurrence outside string literals and comments is an unconditional error:" @@ -1539,10 +1586,513 @@ msgstr "" "presencia fuera de las cadenas de caracteres y comentarios es un error " "incondicional:" -#: ../Doc/reference/lexical_analysis.rst:1011 +#: ../Doc/reference/lexical_analysis.rst:1047 msgid "Footnotes" msgstr "Notas al pie de página" -#: ../Doc/reference/lexical_analysis.rst:1012 -msgid "https://www.unicode.org/Public/11.0.0/ucd/NameAliases.txt" +#: ../Doc/reference/lexical_analysis.rst:1048 +#, fuzzy +msgid "https://www.unicode.org/Public/15.0.0/ucd/NameAliases.txt" msgstr "https://www.unicode.org/Public/11.0.0/ucd/NameAliases.txt" + +#: ../Doc/reference/lexical_analysis.rst:8 +#, fuzzy +msgid "lexical analysis" +msgstr "Análisis léxico" + +#: ../Doc/reference/lexical_analysis.rst:8 +msgid "parser" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:8 +msgid "token" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:25 +#, fuzzy +msgid "line structure" +msgstr "Estructura de línea" + +#: ../Doc/reference/lexical_analysis.rst:35 +#, fuzzy +msgid "logical line" +msgstr "Líneas lógicas" + +#: ../Doc/reference/lexical_analysis.rst:35 +#: ../Doc/reference/lexical_analysis.rst:115 +#: ../Doc/reference/lexical_analysis.rst:535 +#, fuzzy +msgid "physical line" +msgstr "Líneas físicas" + +#: ../Doc/reference/lexical_analysis.rst:35 +#: ../Doc/reference/lexical_analysis.rst:115 +#, fuzzy +msgid "line joining" +msgstr "Unión implícita de líneas" + +#: ../Doc/reference/lexical_analysis.rst:35 +msgid "NEWLINE token" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:67 +#, fuzzy +msgid "comment" +msgstr "Comentarios" + +#: ../Doc/reference/lexical_analysis.rst:67 +msgid "hash character" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:67 +#: ../Doc/reference/lexical_analysis.rst:81 +msgid "# (hash)" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:81 +msgid "source character set" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:81 +#, fuzzy +msgid "encoding declarations (source file)" +msgstr "Declaración de Codificación" + +#: ../Doc/reference/lexical_analysis.rst:81 +#, fuzzy +msgid "source encoding declaration" +msgstr "Declaración de Codificación" + +#: ../Doc/reference/lexical_analysis.rst:115 +#, fuzzy +msgid "line continuation" +msgstr "Sangría" + +#: ../Doc/reference/lexical_analysis.rst:115 +msgid "backslash character" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:160 +#, fuzzy +msgid "blank line" +msgstr "Líneas en blanco" + +#: ../Doc/reference/lexical_analysis.rst:175 +#, fuzzy +msgid "indentation" +msgstr "Sangría" + +#: ../Doc/reference/lexical_analysis.rst:175 +msgid "leading whitespace" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:175 +msgid "space" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:175 +msgid "tab" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:175 +msgid "grouping" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:175 +msgid "statement grouping" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:203 +#, fuzzy +msgid "INDENT token" +msgstr "Sangría" + +#: ../Doc/reference/lexical_analysis.rst:203 +#, fuzzy +msgid "DEDENT token" +msgstr "Sangría" + +#: ../Doc/reference/lexical_analysis.rst:278 +#, fuzzy +msgid "identifier" +msgstr "Delimitadores" + +#: ../Doc/reference/lexical_analysis.rst:278 +msgid "name" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:335 +#: ../Doc/reference/lexical_analysis.rst:359 +#, fuzzy +msgid "keyword" +msgstr "Palabras clave" + +#: ../Doc/reference/lexical_analysis.rst:335 +msgid "reserved word" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:359 +#, fuzzy +msgid "soft keyword" +msgstr "Palabras clave suaves" + +#: ../Doc/reference/lexical_analysis.rst:378 +msgid "_, identifiers" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:378 +msgid "__, identifiers" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:434 +#, fuzzy +msgid "literal" +msgstr "Literales" + +#: ../Doc/reference/lexical_analysis.rst:434 +msgid "constant" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:439 +#: ../Doc/reference/lexical_analysis.rst:480 +#, fuzzy +msgid "string literal" +msgstr "Literales enteros" + +#: ../Doc/reference/lexical_analysis.rst:439 +#: ../Doc/reference/lexical_analysis.rst:493 +#, fuzzy +msgid "bytes literal" +msgstr "Literales enteros" + +#: ../Doc/reference/lexical_analysis.rst:439 +msgid "ASCII" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:439 +#, fuzzy +msgid "' (single quote)" +msgstr "Comilla simple (``'``)" + +#: ../Doc/reference/lexical_analysis.rst:439 +#, fuzzy +msgid "\" (double quote)" +msgstr "Comilla doble (``\"``)" + +#: ../Doc/reference/lexical_analysis.rst:439 +msgid "u'" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:439 +msgid "u\"" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:480 +msgid "triple-quoted string" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:480 +msgid "Unicode Consortium" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:480 +msgid "raw string" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:480 +msgid "\"\"\"" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:480 +msgid "'''" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:493 +msgid "b'" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:493 +msgid "b\"" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:502 +msgid "r'" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:502 +#, fuzzy +msgid "raw string literal" +msgstr "Literales de cadena formateados" + +#: ../Doc/reference/lexical_analysis.rst:502 +msgid "r\"" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:522 +msgid "f'" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:522 +#: ../Doc/reference/lexical_analysis.rst:700 +#, fuzzy +msgid "formatted string literal" +msgstr "Literales de cadena formateados" + +#: ../Doc/reference/lexical_analysis.rst:522 +msgid "f\"" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:535 +#, fuzzy +msgid "escape sequence" +msgstr "Secuencia de escape" + +#: ../Doc/reference/lexical_analysis.rst:535 +msgid "Standard C" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:535 +msgid "C" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:535 +#, fuzzy +msgid "\\ (backslash)" +msgstr "Barra inversa (``\\``)" + +#: ../Doc/reference/lexical_analysis.rst:535 +msgid "\\\\" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:535 +msgid "\\a" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:535 +msgid "\\b" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:535 +msgid "\\f" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:535 +msgid "\\n" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:535 +msgid "\\r" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:535 +msgid "\\t" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:535 +msgid "\\v" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:535 +msgid "\\x" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:535 +msgid "\\N" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:535 +msgid "\\u" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:535 +msgid "\\U" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:651 +#, fuzzy +msgid "unrecognized escape sequence" +msgstr "Secuencia de escape" + +#: ../Doc/reference/lexical_analysis.rst:700 +#, fuzzy +msgid "interpolated string literal" +msgstr "Literales de cadena formateados" + +#: ../Doc/reference/lexical_analysis.rst:700 +msgid "string" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:700 +#, fuzzy +msgid "formatted literal" +msgstr "Literales de cadena formateados" + +#: ../Doc/reference/lexical_analysis.rst:700 +#, fuzzy +msgid "interpolated literal" +msgstr "Literales enteros" + +#: ../Doc/reference/lexical_analysis.rst:700 +msgid "f-string" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:700 +msgid "fstring" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:700 +msgid "{} (curly brackets)" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:700 +#, fuzzy +msgid "in formatted string literal" +msgstr "Literales de cadena formateados" + +#: ../Doc/reference/lexical_analysis.rst:700 +msgid "! (exclamation)" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:700 +msgid ": (colon)" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:700 +msgid "= (equals)" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:700 +#, fuzzy +msgid "for help in debugging using string literals" +msgstr "Literales de cadena formateados" + +#: ../Doc/reference/lexical_analysis.rst:881 +msgid "number" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:881 +#, fuzzy +msgid "numeric literal" +msgstr "Literales numéricos" + +#: ../Doc/reference/lexical_analysis.rst:881 +#: ../Doc/reference/lexical_analysis.rst:894 +#, fuzzy +msgid "integer literal" +msgstr "Literales enteros" + +#: ../Doc/reference/lexical_analysis.rst:881 +#, fuzzy +msgid "floating point literal" +msgstr "Literales de punto flotante" + +#: ../Doc/reference/lexical_analysis.rst:881 +msgid "hexadecimal literal" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:881 +#, fuzzy +msgid "octal literal" +msgstr "Literales" + +#: ../Doc/reference/lexical_analysis.rst:881 +#, fuzzy +msgid "binary literal" +msgstr "Literales imaginarios" + +#: ../Doc/reference/lexical_analysis.rst:881 +#, fuzzy +msgid "decimal literal" +msgstr "Literales imaginarios" + +#: ../Doc/reference/lexical_analysis.rst:881 +#, fuzzy +msgid "imaginary literal" +msgstr "Literales imaginarios" + +#: ../Doc/reference/lexical_analysis.rst:881 +#, fuzzy +msgid "complex literal" +msgstr "Literales numéricos" + +#: ../Doc/reference/lexical_analysis.rst:894 +msgid "0b" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:894 +msgid "0o" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:894 +msgid "0x" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:894 +#: ../Doc/reference/lexical_analysis.rst:940 +msgid "_ (underscore)" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:894 +#: ../Doc/reference/lexical_analysis.rst:940 +#: ../Doc/reference/lexical_analysis.rst:972 +#, fuzzy +msgid "in numeric literal" +msgstr "Literales numéricos" + +#: ../Doc/reference/lexical_analysis.rst:940 +msgid ". (dot)" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:940 +msgid "e" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:972 +msgid "j" +msgstr "" + +#: ../Doc/reference/lexical_analysis.rst:998 +#, fuzzy +msgid "operators" +msgstr "Operadores" + +#: ../Doc/reference/lexical_analysis.rst:1015 +#, fuzzy +msgid "delimiters" +msgstr "Delimitadores" + +#~ msgid "``\\ooo``" +#~ msgstr "``\\ooo``" + +#~ msgid "``\\xhh``" +#~ msgstr "``\\xhh``" + +#~ msgid "``\\N{name}``" +#~ msgstr "``\\N{name}``" + +#~ msgid "``\\uxxxx``" +#~ msgstr "``\\uxxxx``" + +#~ msgid "" +#~ "A consequence of sharing the same syntax as regular string literals is " +#~ "that characters in the replacement fields must not conflict with the " +#~ "quoting used in the outer formatted string literal::" +#~ msgstr "" +#~ "Una consecuencia de compartir la misma sintaxis que los literales de " +#~ "cadena regulares es que los caracteres en los campos de reemplazo no " +#~ "deben entrar en conflicto con la comilla usada en el literal de cadena " +#~ "formateado exterior::" + +#~ msgid "" +#~ "Backslashes are not allowed in format expressions and will raise an " +#~ "error::" +#~ msgstr "" +#~ "Las barras inversas no están permitidas en las expresiones de formato y " +#~ "generarán un error::" + +#~ msgid "" +#~ "To include a value in which a backslash escape is required, create a " +#~ "temporary variable." +#~ msgstr "" +#~ "Para incluir un valor en el que se requiere un escape de barra inversa, " +#~ "hay que crear una variable temporal." diff --git a/reference/simple_stmts.po b/reference/simple_stmts.po index 408a658dcf..ef08361d73 100644 --- a/reference/simple_stmts.po +++ b/reference/simple_stmts.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-02 19:21+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/reference/simple_stmts.rst:6 msgid "Simple statements" @@ -35,11 +35,11 @@ msgstr "" "producirse varias declaraciones simples en una sola línea separada por punto " "y coma. La sintaxis de las declaraciones simples es:" -#: ../Doc/reference/simple_stmts.rst:36 +#: ../Doc/reference/simple_stmts.rst:37 msgid "Expression statements" msgstr "Declaraciones de tipo expresión" -#: ../Doc/reference/simple_stmts.rst:43 +#: ../Doc/reference/simple_stmts.rst:44 msgid "" "Expression statements are used (mostly interactively) to compute and write a " "value, or (usually) to call a procedure (a function that returns no " @@ -54,7 +54,7 @@ msgstr "" "declaraciones de tipo expresión son permitidas y ocasionalmente útiles. La " "sintaxis para una declaración de tipo expresión es:" -#: ../Doc/reference/simple_stmts.rst:52 +#: ../Doc/reference/simple_stmts.rst:53 msgid "" "An expression statement evaluates the expression list (which may be a single " "expression)." @@ -62,7 +62,7 @@ msgstr "" "Una declaración de tipo expresión evalúa la lista de expresiones (que puede " "ser una única expresión)." -#: ../Doc/reference/simple_stmts.rst:64 +#: ../Doc/reference/simple_stmts.rst:65 msgid "" "In interactive mode, if the value is not ``None``, it is converted to a " "string using the built-in :func:`repr` function and the resulting string is " @@ -75,11 +75,11 @@ msgstr "" "resultado es ``None``, entonces el procedimiento llamado no produce ninguna " "salida.)" -#: ../Doc/reference/simple_stmts.rst:72 +#: ../Doc/reference/simple_stmts.rst:73 msgid "Assignment statements" msgstr "Declaraciones de asignación" -#: ../Doc/reference/simple_stmts.rst:82 +#: ../Doc/reference/simple_stmts.rst:83 msgid "" "Assignment statements are used to (re)bind names to values and to modify " "attributes or items of mutable objects:" @@ -87,7 +87,7 @@ msgstr "" "Las declaraciones de asignación son usadas para (volver a) unir nombres a " "valores y para modificar atributos o elementos de objetos mutables:" -#: ../Doc/reference/simple_stmts.rst:96 +#: ../Doc/reference/simple_stmts.rst:97 msgid "" "(See section :ref:`primaries` for the syntax definitions for *attributeref*, " "*subscription*, and *slicing*.)" @@ -95,7 +95,7 @@ msgstr "" "(Ver sección :ref:`primaries` para las definiciones de sintaxis para " "*attributeref*, *subscription*, y *slicing*.)" -#: ../Doc/reference/simple_stmts.rst:99 +#: ../Doc/reference/simple_stmts.rst:100 msgid "" "An assignment statement evaluates the expression list (remember that this " "can be a single expression or a comma-separated list, the latter yielding a " @@ -107,7 +107,7 @@ msgstr "" "produce una tupla) y asigna el único objeto resultante a cada una de las " "listas de objetivos, de izquierda a derecha." -#: ../Doc/reference/simple_stmts.rst:108 +#: ../Doc/reference/simple_stmts.rst:109 msgid "" "Assignment is defined recursively depending on the form of the target " "(list). When a target is part of a mutable object (an attribute reference, " @@ -125,7 +125,7 @@ msgstr "" "por varios tipos y las excepciones lanzadas se dan con la definición de los " "tipos de objeto (ver sección :ref:`types`)." -#: ../Doc/reference/simple_stmts.rst:121 +#: ../Doc/reference/simple_stmts.rst:122 msgid "" "Assignment of an object to a target list, optionally enclosed in parentheses " "or square brackets, is recursively defined as follows." @@ -133,7 +133,7 @@ msgstr "" "La asignación de un objeto a una lista de destino, opcionalmente entre " "paréntesis o corchetes, se define de forma recursiva de la siguiente manera." -#: ../Doc/reference/simple_stmts.rst:124 +#: ../Doc/reference/simple_stmts.rst:125 msgid "" "If the target list is a single target with no trailing comma, optionally in " "parentheses, the object is assigned to that target." @@ -141,11 +141,11 @@ msgstr "" "Si la lista de destino es un único objeto sin terminar en coma, " "opcionalmente entre paréntesis, el objeto es asignado a ese objetivo." -#: ../Doc/reference/simple_stmts.rst:127 +#: ../Doc/reference/simple_stmts.rst:128 msgid "Else:" msgstr "Sino:" -#: ../Doc/reference/simple_stmts.rst:129 +#: ../Doc/reference/simple_stmts.rst:130 msgid "" "If the target list contains one target prefixed with an asterisk, called a " "\"starred\" target: The object must be an iterable with at least as many " @@ -164,7 +164,7 @@ msgstr "" "una lista de los elementos restantes en el iterable al objetivo destacado " "(la lista puede estar vacía)." -#: ../Doc/reference/simple_stmts.rst:137 +#: ../Doc/reference/simple_stmts.rst:138 msgid "" "Else: The object must be an iterable with the same number of items as there " "are targets in the target list, and the items are assigned, from left to " @@ -174,18 +174,18 @@ msgstr "" "elementos en la lista de objetivos, y los elementos son asignados a sus " "respectivos objetivos de izquierda a derecha." -#: ../Doc/reference/simple_stmts.rst:141 +#: ../Doc/reference/simple_stmts.rst:142 msgid "" "Assignment of an object to a single target is recursively defined as follows." msgstr "" "La asignación de un objeto a un único objetivo se define a continuación de " "manera recursiva." -#: ../Doc/reference/simple_stmts.rst:143 +#: ../Doc/reference/simple_stmts.rst:144 msgid "If the target is an identifier (name):" msgstr "Si el objetivo es un identificador (nombre):" -#: ../Doc/reference/simple_stmts.rst:145 +#: ../Doc/reference/simple_stmts.rst:146 msgid "" "If the name does not occur in a :keyword:`global` or :keyword:`nonlocal` " "statement in the current code block: the name is bound to the object in the " @@ -195,7 +195,7 @@ msgstr "" "`nonlocal` en el actual bloque de código: el nombre es unido al objeto del " "actual espacio de nombres local." -#: ../Doc/reference/simple_stmts.rst:149 +#: ../Doc/reference/simple_stmts.rst:150 msgid "" "Otherwise: the name is bound to the object in the global namespace or the " "outer namespace determined by :keyword:`nonlocal`, respectively." @@ -204,7 +204,7 @@ msgstr "" "o el nombre de espacio exterior determinado por :keyword:`nonlocal`, " "respectivamente." -#: ../Doc/reference/simple_stmts.rst:154 +#: ../Doc/reference/simple_stmts.rst:155 msgid "" "The name is rebound if it was already bound. This may cause the reference " "count for the object previously bound to the name to reach zero, causing the " @@ -215,7 +215,7 @@ msgstr "" "a cero, provocando que el objeto se desasigne y se llame a su destructor (si " "tiene uno)." -#: ../Doc/reference/simple_stmts.rst:160 +#: ../Doc/reference/simple_stmts.rst:161 msgid "" "If the target is an attribute reference: The primary expression in the " "reference is evaluated. It should yield an object with assignable " @@ -231,7 +231,7 @@ msgstr "" "realizar la tarea, lanza una excepción (generalmente pero no necesariamente :" "exc:`AttributeError`)." -#: ../Doc/reference/simple_stmts.rst:169 +#: ../Doc/reference/simple_stmts.rst:170 msgid "" "Note: If the object is a class instance and the attribute reference occurs " "on both sides of the assignment operator, the right-hand side expression, " @@ -252,7 +252,7 @@ msgstr "" "atributo de clase, el lado izquierdo crea un nuevo atributo de instancia " "como el objetivo de la asignación::" -#: ../Doc/reference/simple_stmts.rst:183 +#: ../Doc/reference/simple_stmts.rst:184 msgid "" "This description does not necessarily apply to descriptor attributes, such " "as properties created with :func:`property`." @@ -260,7 +260,7 @@ msgstr "" "Esta descripción no se aplica necesariamente a los atributos del descriptor, " "como las propiedades creadas con :func:`property`." -#: ../Doc/reference/simple_stmts.rst:190 +#: ../Doc/reference/simple_stmts.rst:191 msgid "" "If the target is a subscription: The primary expression in the reference is " "evaluated. It should yield either a mutable sequence object (such as a " @@ -272,7 +272,7 @@ msgstr "" "un objeto de mapeo (como un diccionario). A continuación, se evalúa la " "expresión del subíndice." -#: ../Doc/reference/simple_stmts.rst:199 +#: ../Doc/reference/simple_stmts.rst:200 msgid "" "If the primary is a mutable sequence object (such as a list), the subscript " "must yield an integer. If it is negative, the sequence's length is added to " @@ -290,11 +290,12 @@ msgstr "" "está fuera de rango, :exc:`IndexError` se lanza (la asignación a una " "secuencia suscrita no puede agregar nuevos elementos a una lista)." -#: ../Doc/reference/simple_stmts.rst:210 +#: ../Doc/reference/simple_stmts.rst:211 +#, fuzzy msgid "" "If the primary is a mapping object (such as a dictionary), the subscript " "must have a type compatible with the mapping's key type, and the mapping is " -"then asked to create a key/datum pair which maps the subscript to the " +"then asked to create a key/value pair which maps the subscript to the " "assigned object. This can either replace an existing key/value pair with " "the same key value, or insert a new key/value pair (if no key with the same " "value existed)." @@ -306,7 +307,7 @@ msgstr "" "valor clave o insertar un nuevo par clave / valor (si no existía ninguna " "clave con el mismo valor)." -#: ../Doc/reference/simple_stmts.rst:216 +#: ../Doc/reference/simple_stmts.rst:217 msgid "" "For user-defined objects, the :meth:`__setitem__` method is called with " "appropriate arguments." @@ -314,7 +315,7 @@ msgstr "" "Para objetos definidos por el usuario, se llama al método :meth:" "`__setitem__` con los argumentos apropiados." -#: ../Doc/reference/simple_stmts.rst:221 +#: ../Doc/reference/simple_stmts.rst:222 msgid "" "If the target is a slicing: The primary expression in the reference is " "evaluated. It should yield a mutable sequence object (such as a list). The " @@ -342,7 +343,7 @@ msgstr "" "diferente de la longitud de la secuencia asignada, cambiando así la longitud " "de la secuencia objetivo, si la secuencia objetivo lo permite." -#: ../Doc/reference/simple_stmts.rst:235 +#: ../Doc/reference/simple_stmts.rst:236 msgid "" "In the current implementation, the syntax for targets is taken to be the " "same as for expressions, and invalid syntax is rejected during the code " @@ -353,7 +354,7 @@ msgstr "" "durante la fase de generación del código, lo que genera mensajes de error " "menos detallados." -#: ../Doc/reference/simple_stmts.rst:239 +#: ../Doc/reference/simple_stmts.rst:240 msgid "" "Although the definition of assignment implies that overlaps between the left-" "hand side and the right-hand side are 'simultaneous' (for example ``a, b = " @@ -367,19 +368,19 @@ msgstr "" "de las variables asignadas ocurren de izquierda a derecha, lo que a veces " "genera confusión. Por ejemplo, el siguiente programa imprime ``[0, 2]``::" -#: ../Doc/reference/simple_stmts.rst:253 +#: ../Doc/reference/simple_stmts.rst:254 msgid ":pep:`3132` - Extended Iterable Unpacking" msgstr ":pep:`3132` - Desembalaje Iterable Extendido" -#: ../Doc/reference/simple_stmts.rst:254 +#: ../Doc/reference/simple_stmts.rst:255 msgid "The specification for the ``*target`` feature." msgstr "La especificación para la función ``*target``." -#: ../Doc/reference/simple_stmts.rst:260 +#: ../Doc/reference/simple_stmts.rst:261 msgid "Augmented assignment statements" msgstr "Declaraciones de asignación aumentada" -#: ../Doc/reference/simple_stmts.rst:278 +#: ../Doc/reference/simple_stmts.rst:279 msgid "" "Augmented assignment is the combination, in a single statement, of a binary " "operation and an assignment statement:" @@ -387,7 +388,7 @@ msgstr "" "La asignación aumentada es la combinación, en una sola declaración, de una " "operación binaria y una declaración de asignación:" -#: ../Doc/reference/simple_stmts.rst:287 +#: ../Doc/reference/simple_stmts.rst:288 msgid "" "(See section :ref:`primaries` for the syntax definitions of the last three " "symbols.)" @@ -395,7 +396,7 @@ msgstr "" "(Ver sección :ref:`primaries` para la definición de la sintaxis de los tres " "últimos símbolos.)" -#: ../Doc/reference/simple_stmts.rst:290 +#: ../Doc/reference/simple_stmts.rst:291 msgid "" "An augmented assignment evaluates the target (which, unlike normal " "assignment statements, cannot be an unpacking) and the expression list, " @@ -409,7 +410,7 @@ msgstr "" "asignación en los dos operandos y asigna el resultado al destino original. " "El objetivo sólo se evalúa una vez." -#: ../Doc/reference/simple_stmts.rst:295 +#: ../Doc/reference/simple_stmts.rst:296 msgid "" "An augmented assignment expression like ``x += 1`` can be rewritten as ``x = " "x + 1`` to achieve a similar, but not exactly equal effect. In the augmented " @@ -424,7 +425,7 @@ msgstr "" "que en lugar de crear un nuevo objeto y asignarlo al objetivo, el objeto " "anterior se modifica." -#: ../Doc/reference/simple_stmts.rst:301 +#: ../Doc/reference/simple_stmts.rst:302 msgid "" "Unlike normal assignments, augmented assignments evaluate the left-hand side " "*before* evaluating the right-hand side. For example, ``a[i] += f(x)`` " @@ -436,7 +437,7 @@ msgstr "" "``a[i] += f(x)`` primero busca ``a[i]``, entonces evalúa ``f(x)`` y realiza " "la suma, y finalmente, vuelve a escribir el resultado en ``a[i]``." -#: ../Doc/reference/simple_stmts.rst:306 +#: ../Doc/reference/simple_stmts.rst:307 msgid "" "With the exception of assigning to tuples and multiple targets in a single " "statement, the assignment done by augmented assignment statements is handled " @@ -451,7 +452,7 @@ msgstr "" "operación binaria realizada por la asignación aumentada es la misma que las " "operaciones binarias normales." -#: ../Doc/reference/simple_stmts.rst:312 +#: ../Doc/reference/simple_stmts.rst:313 msgid "" "For targets which are attribute references, the same :ref:`caveat about " "class and instance attributes ` applies as for regular " @@ -461,11 +462,11 @@ msgstr "" "about class and instance attributes ` se aplica para " "asignaciones regulares." -#: ../Doc/reference/simple_stmts.rst:319 +#: ../Doc/reference/simple_stmts.rst:320 msgid "Annotated assignment statements" msgstr "Declaraciones de asignación anotadas" -#: ../Doc/reference/simple_stmts.rst:326 +#: ../Doc/reference/simple_stmts.rst:327 msgid "" ":term:`Annotation ` assignment is the combination, in a " "single statement, of a variable or attribute annotation and an optional " @@ -475,15 +476,16 @@ msgstr "" "una única declaración, de una variable o anotación de atributo y una " "declaración de asignación opcional:" -#: ../Doc/reference/simple_stmts.rst:333 +#: ../Doc/reference/simple_stmts.rst:334 +#, fuzzy msgid "" -"The difference from normal :ref:`assignment` is that only single target is " +"The difference from normal :ref:`assignment` is that only a single target is " "allowed." msgstr "" "La diferencia respecto a :ref:`assignment` normal es que sólo se permite un " "único objetivo." -#: ../Doc/reference/simple_stmts.rst:335 +#: ../Doc/reference/simple_stmts.rst:336 msgid "" "For simple names as assignment targets, if in class or module scope, the " "annotations are evaluated and stored in a special class or module attribute :" @@ -500,7 +502,7 @@ msgstr "" "automáticamente al comienzo de la ejecución del cuerpo del módulo o la " "clase, si las anotaciones se encuentran estáticamente." -#: ../Doc/reference/simple_stmts.rst:343 +#: ../Doc/reference/simple_stmts.rst:344 msgid "" "For expressions as assignment targets, the annotations are evaluated if in " "class or module scope, but not stored." @@ -508,7 +510,7 @@ msgstr "" "Para expresiones como destinos de asignaciones, las anotaciones se evalúan " "si están en ámbitos de clase o módulo pero no se almacenan." -#: ../Doc/reference/simple_stmts.rst:346 +#: ../Doc/reference/simple_stmts.rst:347 msgid "" "If a name is annotated in a function scope, then this name is local for that " "scope. Annotations are never evaluated and stored in function scopes." @@ -517,7 +519,7 @@ msgstr "" "ese ámbito. Las anotaciones nunca se evalúan y almacenan en ámbitos de " "función." -#: ../Doc/reference/simple_stmts.rst:349 +#: ../Doc/reference/simple_stmts.rst:350 msgid "" "If the right hand side is present, an annotated assignment performs the " "actual assignment before evaluating annotations (where applicable). If the " @@ -531,11 +533,11 @@ msgstr "" "destino excepto por la última llamada :meth:`__setitem__` o :meth:" "`__setattr__`." -#: ../Doc/reference/simple_stmts.rst:360 +#: ../Doc/reference/simple_stmts.rst:361 msgid ":pep:`526` - Syntax for Variable Annotations" msgstr ":pep:`526` - Sintaxis para anotaciones de variable" -#: ../Doc/reference/simple_stmts.rst:358 +#: ../Doc/reference/simple_stmts.rst:359 msgid "" "The proposal that added syntax for annotating the types of variables " "(including class variables and instance variables), instead of expressing " @@ -545,11 +547,11 @@ msgstr "" "(incluidas variables de clase y variables de instancia), en lugar de " "expresarlas a través de comentarios." -#: ../Doc/reference/simple_stmts.rst:364 +#: ../Doc/reference/simple_stmts.rst:365 msgid ":pep:`484` - Type hints" msgstr ":pep:`484` - Indicadores de tipo" -#: ../Doc/reference/simple_stmts.rst:363 +#: ../Doc/reference/simple_stmts.rst:364 msgid "" "The proposal that added the :mod:`typing` module to provide a standard " "syntax for type annotations that can be used in static analysis tools and " @@ -559,10 +561,11 @@ msgstr "" "sintaxis estándar para las anotaciones de tipo para ser utilizadas en " "herramientas de análisis estático e IDEs." -#: ../Doc/reference/simple_stmts.rst:367 +#: ../Doc/reference/simple_stmts.rst:368 +#, fuzzy msgid "" -"Now annotated assignments allow same expressions in the right hand side as " -"the regular assignments. Previously, some expressions (like un-parenthesized " +"Now annotated assignments allow the same expressions in the right hand side " +"as regular assignments. Previously, some expressions (like un-parenthesized " "tuple expressions) caused a syntax error." msgstr "" "Ahora, las asignaciones anotadas permiten las mismas expresiones en el lado " @@ -570,11 +573,11 @@ msgstr "" "(como las expresiones de tupla sin paréntesis) provocaban un error de " "sintaxis." -#: ../Doc/reference/simple_stmts.rst:376 +#: ../Doc/reference/simple_stmts.rst:377 msgid "The :keyword:`!assert` statement" msgstr "La declaración :keyword:`!assert`" -#: ../Doc/reference/simple_stmts.rst:383 +#: ../Doc/reference/simple_stmts.rst:384 msgid "" "Assert statements are a convenient way to insert debugging assertions into a " "program:" @@ -582,17 +585,17 @@ msgstr "" "Las declaraciones de afirmación son una forma conveniente de insertar " "afirmaciones de depuración en un programa:" -#: ../Doc/reference/simple_stmts.rst:389 +#: ../Doc/reference/simple_stmts.rst:390 msgid "The simple form, ``assert expression``, is equivalent to ::" msgstr "La forma simple, ``assert expressionn``, es equivalente a ::" -#: ../Doc/reference/simple_stmts.rst:394 +#: ../Doc/reference/simple_stmts.rst:395 msgid "" "The extended form, ``assert expression1, expression2``, is equivalent to ::" msgstr "" "La forma extendida, ``assert expression1, expression2``, es equivalente a ::" -#: ../Doc/reference/simple_stmts.rst:403 +#: ../Doc/reference/simple_stmts.rst:404 msgid "" "These equivalences assume that :const:`__debug__` and :exc:`AssertionError` " "refer to the built-in variables with those names. In the current " @@ -613,7 +616,7 @@ msgstr "" "incluir el código fuente de la expresión que falló en el mensaje de error; " "se mostrará como parte del seguimiento de la pila." -#: ../Doc/reference/simple_stmts.rst:412 +#: ../Doc/reference/simple_stmts.rst:413 msgid "" "Assignments to :const:`__debug__` are illegal. The value for the built-in " "variable is determined when the interpreter starts." @@ -621,11 +624,11 @@ msgstr "" "Asignaciones a :const:`__debug__` son ilegales. El valor para la variable " "se determina cuando arranca el intérprete." -#: ../Doc/reference/simple_stmts.rst:419 +#: ../Doc/reference/simple_stmts.rst:420 msgid "The :keyword:`!pass` statement" msgstr "La declaración :keyword:`!pass`" -#: ../Doc/reference/simple_stmts.rst:429 +#: ../Doc/reference/simple_stmts.rst:430 msgid "" ":keyword:`pass` is a null operation --- when it is executed, nothing " "happens. It is useful as a placeholder when a statement is required " @@ -635,11 +638,11 @@ msgstr "" "Es útil como marcador de posición cuando se requiere una declaración " "sintácticamente, pero no es necesario ejecutar código, por ejemplo::" -#: ../Doc/reference/simple_stmts.rst:441 +#: ../Doc/reference/simple_stmts.rst:442 msgid "The :keyword:`!del` statement" msgstr "La declaración :keyword:`!del`" -#: ../Doc/reference/simple_stmts.rst:451 +#: ../Doc/reference/simple_stmts.rst:452 msgid "" "Deletion is recursively defined very similar to the way assignment is " "defined. Rather than spelling it out in full details, here are some hints." @@ -648,7 +651,7 @@ msgstr "" "en que se define la asignación. En lugar de explicarlo con todos los " "detalles, aquí hay algunas sugerencias." -#: ../Doc/reference/simple_stmts.rst:454 +#: ../Doc/reference/simple_stmts.rst:455 msgid "" "Deletion of a target list recursively deletes each target, from left to " "right." @@ -656,7 +659,7 @@ msgstr "" "La eliminación de una lista de objetivos elimina cada objetivo de forma " "recursiva, de izquierda a derecha." -#: ../Doc/reference/simple_stmts.rst:460 +#: ../Doc/reference/simple_stmts.rst:461 msgid "" "Deletion of a name removes the binding of that name from the local or global " "namespace, depending on whether the name occurs in a :keyword:`global` " @@ -668,7 +671,7 @@ msgstr "" "declaración :keyword:`global` en el mismo bloque de código. Si el nombre no " "está vinculado, se lanzará una excepción :exc:`NameError`." -#: ../Doc/reference/simple_stmts.rst:467 +#: ../Doc/reference/simple_stmts.rst:468 msgid "" "Deletion of attribute references, subscriptions and slicings is passed to " "the primary object involved; deletion of a slicing is in general equivalent " @@ -680,7 +683,7 @@ msgstr "" "equivalente a la asignación de una rebanada vacía del tipo correcto (pero " "incluso esto está determinado por el objeto rebanado)." -#: ../Doc/reference/simple_stmts.rst:472 +#: ../Doc/reference/simple_stmts.rst:473 msgid "" "Previously it was illegal to delete a name from the local namespace if it " "occurs as a free variable in a nested block." @@ -688,11 +691,11 @@ msgstr "" "Anteriormente era ilegal eliminar un nombre del espacio de nombres local si " "aparece como una variable libre en un bloque anidado." -#: ../Doc/reference/simple_stmts.rst:480 +#: ../Doc/reference/simple_stmts.rst:481 msgid "The :keyword:`!return` statement" msgstr "La declaración :keyword:`!return`" -#: ../Doc/reference/simple_stmts.rst:490 +#: ../Doc/reference/simple_stmts.rst:491 msgid "" ":keyword:`return` may only occur syntactically nested in a function " "definition, not within a nested class definition." @@ -700,7 +703,7 @@ msgstr "" "El :keyword:`return` sólo puede ocurrir sintácticamente anidado en una " "definición de función, no dentro de una definición de clase anidada." -#: ../Doc/reference/simple_stmts.rst:493 +#: ../Doc/reference/simple_stmts.rst:494 msgid "" "If an expression list is present, it is evaluated, else ``None`` is " "substituted." @@ -708,7 +711,7 @@ msgstr "" "Si una lista de expresiones es presente, ésta es evaluada, sino es " "substituida por ``None`` ." -#: ../Doc/reference/simple_stmts.rst:495 +#: ../Doc/reference/simple_stmts.rst:496 msgid "" ":keyword:`return` leaves the current function call with the expression list " "(or ``None``) as return value." @@ -716,7 +719,7 @@ msgstr "" ":keyword:`return` deja la llamada a la función actual con la lista de " "expresiones (o ``None``) como valor de retorno." -#: ../Doc/reference/simple_stmts.rst:500 +#: ../Doc/reference/simple_stmts.rst:501 msgid "" "When :keyword:`return` passes control out of a :keyword:`try` statement with " "a :keyword:`finally` clause, that :keyword:`!finally` clause is executed " @@ -726,7 +729,7 @@ msgstr "" "una cláusula :keyword:`finally`, esa cláusula :keyword:`!finally` se ejecuta " "antes de dejar realmente la función." -#: ../Doc/reference/simple_stmts.rst:504 +#: ../Doc/reference/simple_stmts.rst:505 msgid "" "In a generator function, the :keyword:`return` statement indicates that the " "generator is done and will cause :exc:`StopIteration` to be raised. The " @@ -738,7 +741,7 @@ msgstr "" "retornado (si lo hay) se utiliza como argumento para construir :exc:" "`StopIteration` y se convierte en el atributo :attr:`StopIteration.value`." -#: ../Doc/reference/simple_stmts.rst:509 +#: ../Doc/reference/simple_stmts.rst:510 msgid "" "In an asynchronous generator function, an empty :keyword:`return` statement " "indicates that the asynchronous generator is done and will cause :exc:" @@ -750,11 +753,11 @@ msgstr "" "`StopAsyncIteration`. Una declaración :keyword:`!return` no vacía es un " "error de sintaxis en una función generadora asíncrona." -#: ../Doc/reference/simple_stmts.rst:517 +#: ../Doc/reference/simple_stmts.rst:518 msgid "The :keyword:`!yield` statement" msgstr "La declaración :keyword:`!yield`" -#: ../Doc/reference/simple_stmts.rst:529 +#: ../Doc/reference/simple_stmts.rst:530 msgid "" "A :keyword:`yield` statement is semantically equivalent to a :ref:`yield " "expression `. The yield statement can be used to omit the " @@ -767,11 +770,11 @@ msgstr "" "declaración de expresión de producción equivalente. Por ejemplo, las " "declaraciones de producción ::" -#: ../Doc/reference/simple_stmts.rst:537 +#: ../Doc/reference/simple_stmts.rst:538 msgid "are equivalent to the yield expression statements ::" msgstr "son equivalentes a las funciones que producen declaraciones ::" -#: ../Doc/reference/simple_stmts.rst:542 +#: ../Doc/reference/simple_stmts.rst:543 msgid "" "Yield expressions and statements are only used when defining a :term:" "`generator` function, and are only used in the body of the generator " @@ -784,7 +787,7 @@ msgstr "" "suficiente para hacer que esa definición cree una función generadora en " "lugar de una función normal." -#: ../Doc/reference/simple_stmts.rst:547 +#: ../Doc/reference/simple_stmts.rst:548 msgid "" "For full details of :keyword:`yield` semantics, refer to the :ref:" "`yieldexpr` section." @@ -792,11 +795,11 @@ msgstr "" "Para todos los detalles de la semántica de :keyword:`yield`, referirse a la " "sección :ref:`yieldexpr`." -#: ../Doc/reference/simple_stmts.rst:553 +#: ../Doc/reference/simple_stmts.rst:554 msgid "The :keyword:`!raise` statement" msgstr "La declaración :keyword:`!raise`" -#: ../Doc/reference/simple_stmts.rst:564 +#: ../Doc/reference/simple_stmts.rst:565 msgid "" "If no expressions are present, :keyword:`raise` re-raises the exception that " "is currently being handled, which is also known as the *active exception*. " @@ -808,7 +811,7 @@ msgstr "" "*excepción activa*. Si actualmente no hay una excepción activa, se lanza una " "excepción :exc:`RuntimeError` que indica que se trata de un error." -#: ../Doc/reference/simple_stmts.rst:569 +#: ../Doc/reference/simple_stmts.rst:570 msgid "" "Otherwise, :keyword:`raise` evaluates the first expression as the exception " "object. It must be either a subclass or an instance of :class:" @@ -820,7 +823,7 @@ msgstr "" "`BaseException`. Si es una clase, la instancia de excepción se obtendrá " "cuando sea necesario creando una instancia de la clase sin argumentos." -#: ../Doc/reference/simple_stmts.rst:574 +#: ../Doc/reference/simple_stmts.rst:575 msgid "" "The :dfn:`type` of the exception is the exception instance's class, the :dfn:" "`value` is the instance itself." @@ -828,7 +831,7 @@ msgstr "" "El :dfn:`type` de la excepción es la instancia de la clase excepción, el :" "dfn:`value` es la propia instancia." -#: ../Doc/reference/simple_stmts.rst:579 +#: ../Doc/reference/simple_stmts.rst:580 msgid "" "A traceback object is normally created automatically when an exception is " "raised and attached to it as the :attr:`__traceback__` attribute, which is " @@ -844,7 +847,7 @@ msgstr "" "with_traceback` (que retorna la misma instancia de excepción, con su rastreo " "establecido en su argumento), así:" -#: ../Doc/reference/simple_stmts.rst:591 +#: ../Doc/reference/simple_stmts.rst:592 msgid "" "The ``from`` clause is used for exception chaining: if given, the second " "*expression* must be another exception class or instance. If the second " @@ -864,7 +867,7 @@ msgstr "" "la excepción generada como el atributo :attr:`__cause__`. Si no se maneja la " "excepción generada, se imprimirán ambas excepciones:" -#: ../Doc/reference/simple_stmts.rst:615 +#: ../Doc/reference/simple_stmts.rst:616 msgid "" "A similar mechanism works implicitly if a new exception is raised when an " "exception is already being handled. An exception may be handled when an :" @@ -878,7 +881,7 @@ msgstr "" "o una declaración :keyword:`with`. La excepción anterior se adjunta como el " "atributo :attr:`__context__` de la nueva excepción:" -#: ../Doc/reference/simple_stmts.rst:636 +#: ../Doc/reference/simple_stmts.rst:637 msgid "" "Exception chaining can be explicitly suppressed by specifying :const:`None` " "in the ``from`` clause::" @@ -886,7 +889,7 @@ msgstr "" "El encadenamiento de excepciones se puede suprimir explícitamente " "especificando :const:`None` en la cláusula ``from``:" -#: ../Doc/reference/simple_stmts.rst:648 +#: ../Doc/reference/simple_stmts.rst:649 msgid "" "Additional information on exceptions can be found in section :ref:" "`exceptions`, and information about handling exceptions is in section :ref:" @@ -896,11 +899,11 @@ msgstr "" "ref:`exceptions`, e información sobre manejo de excepciones en la sección :" "ref:`try`." -#: ../Doc/reference/simple_stmts.rst:651 +#: ../Doc/reference/simple_stmts.rst:652 msgid ":const:`None` is now permitted as ``Y`` in ``raise X from Y``." msgstr ":const:`None` ahora es permitido como ``Y`` en ``raise X from Y``." -#: ../Doc/reference/simple_stmts.rst:654 +#: ../Doc/reference/simple_stmts.rst:655 msgid "" "The ``__suppress_context__`` attribute to suppress automatic display of the " "exception context." @@ -908,7 +911,7 @@ msgstr "" "El atributo ``__suppress_context__`` para suprimir la visualización " "automática del contexto de excepción." -#: ../Doc/reference/simple_stmts.rst:658 +#: ../Doc/reference/simple_stmts.rst:659 msgid "" "If the traceback of the active exception is modified in an :keyword:`except` " "clause, a subsequent ``raise`` statement re-raises the exception with the " @@ -920,11 +923,11 @@ msgstr "" "con el rastreo modificado. Anteriormente, la excepción se volvía a generar " "con el rastreo que tenía cuando se detectó." -#: ../Doc/reference/simple_stmts.rst:667 +#: ../Doc/reference/simple_stmts.rst:668 msgid "The :keyword:`!break` statement" msgstr "La declaración :keyword:`!break`" -#: ../Doc/reference/simple_stmts.rst:678 +#: ../Doc/reference/simple_stmts.rst:679 msgid "" ":keyword:`break` may only occur syntactically nested in a :keyword:`for` or :" "keyword:`while` loop, but not nested in a function or class definition " @@ -934,7 +937,7 @@ msgstr "" "keyword:`for` o :keyword:`while`, pero no anidado en una función o " "definición de clase dentro de ese bucle." -#: ../Doc/reference/simple_stmts.rst:685 +#: ../Doc/reference/simple_stmts.rst:686 msgid "" "It terminates the nearest enclosing loop, skipping the optional :keyword:`!" "else` clause if the loop has one." @@ -942,7 +945,7 @@ msgstr "" "Termina el bucle adjunto más cercano, omitiendo la cláusula :keyword:`!else` " "opcional si el bucle tiene una." -#: ../Doc/reference/simple_stmts.rst:688 +#: ../Doc/reference/simple_stmts.rst:689 msgid "" "If a :keyword:`for` loop is terminated by :keyword:`break`, the loop control " "target keeps its current value." @@ -950,7 +953,7 @@ msgstr "" "Si un bucle :keyword:`for` es terminado por :keyword:`break`, el objetivo de " "control de bucle mantiene su valor actual." -#: ../Doc/reference/simple_stmts.rst:693 +#: ../Doc/reference/simple_stmts.rst:694 msgid "" "When :keyword:`break` passes control out of a :keyword:`try` statement with " "a :keyword:`finally` clause, that :keyword:`!finally` clause is executed " @@ -960,11 +963,11 @@ msgstr "" "una cláusula :keyword:`finally`, esa cláusula :keyword:`!finally` se ejecuta " "antes de dejar realmente el bucle." -#: ../Doc/reference/simple_stmts.rst:701 +#: ../Doc/reference/simple_stmts.rst:702 msgid "The :keyword:`!continue` statement" msgstr "La declaración :keyword:`!continue`" -#: ../Doc/reference/simple_stmts.rst:713 +#: ../Doc/reference/simple_stmts.rst:714 msgid "" ":keyword:`continue` may only occur syntactically nested in a :keyword:`for` " "or :keyword:`while` loop, but not nested in a function or class definition " @@ -976,7 +979,7 @@ msgstr "" "definición de clase dentro de ese ciclo. Continúa con la siguiente " "iteración del bucle envolvente más cercano." -#: ../Doc/reference/simple_stmts.rst:717 +#: ../Doc/reference/simple_stmts.rst:718 msgid "" "When :keyword:`continue` passes control out of a :keyword:`try` statement " "with a :keyword:`finally` clause, that :keyword:`!finally` clause is " @@ -986,11 +989,11 @@ msgstr "" "con una cláusula :keyword:`finally`, esa cláusula :keyword:`!finally` se " "ejecuta antes de empezar realmente el siguiente ciclo del bucle." -#: ../Doc/reference/simple_stmts.rst:726 +#: ../Doc/reference/simple_stmts.rst:727 msgid "The :keyword:`!import` statement" msgstr "La declaración :keyword:`!import`" -#: ../Doc/reference/simple_stmts.rst:747 +#: ../Doc/reference/simple_stmts.rst:748 msgid "" "The basic import statement (no :keyword:`from` clause) is executed in two " "steps:" @@ -998,11 +1001,11 @@ msgstr "" "La declaración básica de importación (sin la cláusula :keyword:`from`) es " "ejecutada en 2 pasos:" -#: ../Doc/reference/simple_stmts.rst:750 +#: ../Doc/reference/simple_stmts.rst:751 msgid "find a module, loading and initializing it if necessary" msgstr "encontrar un módulo, cargarlo e inicializarlo en caso de ser necesario" -#: ../Doc/reference/simple_stmts.rst:751 +#: ../Doc/reference/simple_stmts.rst:752 msgid "" "define a name or names in the local namespace for the scope where the :" "keyword:`import` statement occurs." @@ -1010,7 +1013,7 @@ msgstr "" "define un nombre o nombres en el espacio de nombres local para el alcance " "donde ocurre la instrucción :keyword:`import`." -#: ../Doc/reference/simple_stmts.rst:754 +#: ../Doc/reference/simple_stmts.rst:755 msgid "" "When the statement contains multiple clauses (separated by commas) the two " "steps are carried out separately for each clause, just as though the clauses " @@ -1020,9 +1023,10 @@ msgstr "" "dos pasos se llevan a cabo por separado para cada cláusula, como si las " "cláusulas se hubieran separado en declaraciones de importación individuales." -#: ../Doc/reference/simple_stmts.rst:759 +#: ../Doc/reference/simple_stmts.rst:760 +#, fuzzy msgid "" -"The details of the first step, finding and loading modules are described in " +"The details of the first step, finding and loading modules, are described in " "greater detail in the section on the :ref:`import system `, " "which also describes the various types of packages and modules that can be " "imported, as well as all the hooks that can be used to customize the import " @@ -1038,7 +1042,7 @@ msgstr "" "pueden indicar que el módulo no se pudo ubicar, *o* que ocurrió un error al " "inicializar el módulo, que incluye la ejecución del código del módulo." -#: ../Doc/reference/simple_stmts.rst:767 +#: ../Doc/reference/simple_stmts.rst:768 msgid "" "If the requested module is retrieved successfully, it will be made available " "in the local namespace in one of three ways:" @@ -1046,7 +1050,7 @@ msgstr "" "Si el módulo solicitado se recupera correctamente, estará disponible en el " "espacio de nombres local de una de estas tres formas:" -#: ../Doc/reference/simple_stmts.rst:772 +#: ../Doc/reference/simple_stmts.rst:773 msgid "" "If the module name is followed by :keyword:`!as`, then the name following :" "keyword:`!as` is bound directly to the imported module." @@ -1054,7 +1058,7 @@ msgstr "" "Si el nombre del módulo va seguido de :keyword:`!as``, entonces el nombre " "siguiente :keyword:`!as` está vinculado directamente al módulo importado." -#: ../Doc/reference/simple_stmts.rst:774 +#: ../Doc/reference/simple_stmts.rst:775 msgid "" "If no other name is specified, and the module being imported is a top level " "module, the module's name is bound in the local namespace as a reference to " @@ -1064,7 +1068,7 @@ msgstr "" "un módulo de nivel superior, el nombre del módulo se enlaza en el espacio de " "nombres local como una referencia al módulo importado" -#: ../Doc/reference/simple_stmts.rst:777 +#: ../Doc/reference/simple_stmts.rst:778 msgid "" "If the module being imported is *not* a top level module, then the name of " "the top level package that contains the module is bound in the local " @@ -1077,11 +1081,11 @@ msgstr "" "nivel superior. Se debe acceder al módulo importado utilizando su nombre " "calificado completo en lugar de directamente" -#: ../Doc/reference/simple_stmts.rst:787 +#: ../Doc/reference/simple_stmts.rst:788 msgid "The :keyword:`from` form uses a slightly more complex process:" msgstr "La forma :keyword:`from` usa un complejo un poco más complicado:" -#: ../Doc/reference/simple_stmts.rst:789 +#: ../Doc/reference/simple_stmts.rst:790 msgid "" "find the module specified in the :keyword:`from` clause, loading and " "initializing it if necessary;" @@ -1089,17 +1093,17 @@ msgstr "" "encuentra el módulo especificado en la cláusula :keyword:`from`, cargando e " "inicializándolo si es necesario;" -#: ../Doc/reference/simple_stmts.rst:791 +#: ../Doc/reference/simple_stmts.rst:792 msgid "for each of the identifiers specified in the :keyword:`import` clauses:" msgstr "" "para cada uno de los identificadores especificados en la cláusula :keyword:" "`import`:" -#: ../Doc/reference/simple_stmts.rst:793 +#: ../Doc/reference/simple_stmts.rst:794 msgid "check if the imported module has an attribute by that name" msgstr "compruebe si el módulo importado tiene un atributo con ese nombre" -#: ../Doc/reference/simple_stmts.rst:794 +#: ../Doc/reference/simple_stmts.rst:795 msgid "" "if not, attempt to import a submodule with that name and then check the " "imported module again for that attribute" @@ -1107,11 +1111,11 @@ msgstr "" "de lo contrario, intente importar un submódulo con ese nombre y luego " "verifique el módulo importado nuevamente para ese atributo" -#: ../Doc/reference/simple_stmts.rst:796 +#: ../Doc/reference/simple_stmts.rst:797 msgid "if the attribute is not found, :exc:`ImportError` is raised." msgstr "si el atributo no se encuentra, :exc:`ImportError` es lanzada." -#: ../Doc/reference/simple_stmts.rst:797 +#: ../Doc/reference/simple_stmts.rst:798 msgid "" "otherwise, a reference to that value is stored in the local namespace, using " "the name in the :keyword:`!as` clause if it is present, otherwise using the " @@ -1121,11 +1125,11 @@ msgstr "" "nombres local, usando el nombre en la cláusula :keyword:`!as` si ésta está " "presente, de lo contrario usando el nombre del atributo" -#: ../Doc/reference/simple_stmts.rst:801 +#: ../Doc/reference/simple_stmts.rst:802 msgid "Examples::" msgstr "Ejemplos::" -#: ../Doc/reference/simple_stmts.rst:811 +#: ../Doc/reference/simple_stmts.rst:812 msgid "" "If the list of identifiers is replaced by a star (``'*'``), all public names " "defined in the module are bound in the local namespace for the scope where " @@ -1136,7 +1140,7 @@ msgstr "" "de nombres local para el ámbito donde ocurre la declaración :keyword:" "`import`." -#: ../Doc/reference/simple_stmts.rst:817 +#: ../Doc/reference/simple_stmts.rst:818 msgid "" "The *public names* defined by a module are determined by checking the " "module's namespace for a variable named ``__all__``; if defined, it must be " @@ -1160,7 +1164,7 @@ msgstr "" "parte de la API (como los módulos de biblioteca que se importaron y " "utilizaron dentro del módulo)." -#: ../Doc/reference/simple_stmts.rst:827 +#: ../Doc/reference/simple_stmts.rst:828 msgid "" "The wild card form of import --- ``from module import *`` --- is only " "allowed at the module level. Attempting to use it in class or function " @@ -1170,7 +1174,7 @@ msgstr "" "permite a nivel módulo. Intentar usarlo en una definición de clase o " "función lanza una :exc:`SyntaxError`." -#: ../Doc/reference/simple_stmts.rst:834 +#: ../Doc/reference/simple_stmts.rst:835 msgid "" "When specifying what module to import you do not have to specify the " "absolute name of the module. When a module or package is contained within " @@ -1201,7 +1205,7 @@ msgstr "" "especificación para las importaciones relativas está contenida en la " "sección :ref:`relativeimports`." -#: ../Doc/reference/simple_stmts.rst:848 +#: ../Doc/reference/simple_stmts.rst:849 msgid "" ":func:`importlib.import_module` is provided to support applications that " "determine dynamically the modules to be loaded." @@ -1209,7 +1213,7 @@ msgstr "" ":func:`importlib.import_module` se proporciona para soportar aplicaciones " "que determinan dinámicamente los módulos a cargar." -#: ../Doc/reference/simple_stmts.rst:851 +#: ../Doc/reference/simple_stmts.rst:852 msgid "" "Raises an :ref:`auditing event ` ``import`` with arguments " "``module``, ``filename``, ``sys.path``, ``sys.meta_path``, ``sys." @@ -1219,11 +1223,11 @@ msgstr "" "``module``, ``filename``, ``sys.path``, ``sys.meta_path``, ``sys." "path_hooks``." -#: ../Doc/reference/simple_stmts.rst:856 +#: ../Doc/reference/simple_stmts.rst:857 msgid "Future statements" msgstr "Declaraciones Futuras" -#: ../Doc/reference/simple_stmts.rst:862 +#: ../Doc/reference/simple_stmts.rst:863 msgid "" "A :dfn:`future statement` is a directive to the compiler that a particular " "module should be compiled using syntax or semantics that will be available " @@ -1234,7 +1238,7 @@ msgstr "" "que estará disponible en una versión futura específica de Python donde la " "característica se convierte en estándar." -#: ../Doc/reference/simple_stmts.rst:866 +#: ../Doc/reference/simple_stmts.rst:867 msgid "" "The future statement is intended to ease migration to future versions of " "Python that introduce incompatible changes to the language. It allows use " @@ -1246,7 +1250,7 @@ msgstr "" "Permite el uso de las nuevas funciones por módulo antes del lanzamiento en " "el que la función se convierte en estándar." -#: ../Doc/reference/simple_stmts.rst:878 +#: ../Doc/reference/simple_stmts.rst:879 msgid "" "A future statement must appear near the top of the module. The only lines " "that can appear before a future statement are:" @@ -1254,23 +1258,23 @@ msgstr "" "Una declaración futura debe aparecer cerca de la parte superior del módulo. " "Las únicas líneas que pueden aparecer antes de una declaración futura son:" -#: ../Doc/reference/simple_stmts.rst:881 +#: ../Doc/reference/simple_stmts.rst:882 msgid "the module docstring (if any)," msgstr "el docstring del módulo (si hay)," -#: ../Doc/reference/simple_stmts.rst:882 +#: ../Doc/reference/simple_stmts.rst:883 msgid "comments," msgstr "comentarios," -#: ../Doc/reference/simple_stmts.rst:883 +#: ../Doc/reference/simple_stmts.rst:884 msgid "blank lines, and" msgstr "lineas en blanco, y" -#: ../Doc/reference/simple_stmts.rst:884 +#: ../Doc/reference/simple_stmts.rst:885 msgid "other future statements." msgstr "otras declaraciones futuras." -#: ../Doc/reference/simple_stmts.rst:886 +#: ../Doc/reference/simple_stmts.rst:887 msgid "" "The only feature that requires using the future statement is ``annotations`` " "(see :pep:`563`)." @@ -1278,7 +1282,7 @@ msgstr "" "La única característica en Python 3.7 que requiere el uso la declaración " "futuro es ``annotations``." -#: ../Doc/reference/simple_stmts.rst:889 +#: ../Doc/reference/simple_stmts.rst:890 msgid "" "All historical features enabled by the future statement are still recognized " "by Python 3. The list includes ``absolute_import``, ``division``, " @@ -1295,7 +1299,7 @@ msgstr "" "redundantes porque siempre están habilitados y solo se conservan para " "compatibilidad con versiones anteriores." -#: ../Doc/reference/simple_stmts.rst:896 +#: ../Doc/reference/simple_stmts.rst:897 msgid "" "A future statement is recognized and treated specially at compile time: " "Changes to the semantics of core constructs are often implemented by " @@ -1312,7 +1316,7 @@ msgstr "" "puede necesitar analizar el módulo de manera diferente. Tales decisiones no " "pueden postergarse hasta el tiempo de ejecución." -#: ../Doc/reference/simple_stmts.rst:903 +#: ../Doc/reference/simple_stmts.rst:904 msgid "" "For any given release, the compiler knows which feature names have been " "defined, and raises a compile-time error if a future statement contains a " @@ -1322,7 +1326,7 @@ msgstr "" "características se han definido y lanza un error en tiempo de compilación si " "una declaración futura contiene una característica que no conoce." -#: ../Doc/reference/simple_stmts.rst:907 +#: ../Doc/reference/simple_stmts.rst:908 msgid "" "The direct runtime semantics are the same as for any import statement: there " "is a standard module :mod:`__future__`, described later, and it will be " @@ -1333,7 +1337,7 @@ msgstr "" "describe más adelante, y se importará de la forma habitual en el momento en " "que se ejecute la declaración futura." -#: ../Doc/reference/simple_stmts.rst:911 +#: ../Doc/reference/simple_stmts.rst:912 msgid "" "The interesting runtime semantics depend on the specific feature enabled by " "the future statement." @@ -1341,11 +1345,11 @@ msgstr "" "La interesante semántica del tiempo de ejecución depende de la " "característica específica habilitada por la declaración futura." -#: ../Doc/reference/simple_stmts.rst:914 +#: ../Doc/reference/simple_stmts.rst:915 msgid "Note that there is nothing special about the statement::" msgstr "Notar que no hay nada especial a cerca de la declaración::" -#: ../Doc/reference/simple_stmts.rst:918 +#: ../Doc/reference/simple_stmts.rst:919 msgid "" "That is not a future statement; it's an ordinary import statement with no " "special semantics or syntax restrictions." @@ -1353,7 +1357,7 @@ msgstr "" "Esa no es una declaración futura; es una declaración de importación " "ordinaria sin restricciones especiales de semántica o sintaxis." -#: ../Doc/reference/simple_stmts.rst:921 +#: ../Doc/reference/simple_stmts.rst:922 msgid "" "Code compiled by calls to the built-in functions :func:`exec` and :func:" "`compile` that occur in a module :mod:`M` containing a future statement " @@ -1368,7 +1372,7 @@ msgstr "" "argumentos opcionales para :func:`compile` --- consulte la documentación de " "esa función para obtener más detalles." -#: ../Doc/reference/simple_stmts.rst:927 +#: ../Doc/reference/simple_stmts.rst:928 msgid "" "A future statement typed at an interactive interpreter prompt will take " "effect for the rest of the interpreter session. If an interpreter is " @@ -1383,19 +1387,19 @@ msgstr "" "estará en efecto en la sesión interactiva iniciada después de que se ejecute " "el script." -#: ../Doc/reference/simple_stmts.rst:935 +#: ../Doc/reference/simple_stmts.rst:936 msgid ":pep:`236` - Back to the __future__" msgstr ":pep:`236` - Vuelta al __future__" -#: ../Doc/reference/simple_stmts.rst:936 +#: ../Doc/reference/simple_stmts.rst:937 msgid "The original proposal for the __future__ mechanism." msgstr "La propuesta original para el mecanismo __future__." -#: ../Doc/reference/simple_stmts.rst:942 +#: ../Doc/reference/simple_stmts.rst:943 msgid "The :keyword:`!global` statement" msgstr "La declaración :keyword:`!global`" -#: ../Doc/reference/simple_stmts.rst:952 +#: ../Doc/reference/simple_stmts.rst:953 msgid "" "The :keyword:`global` statement is a declaration which holds for the entire " "current code block. It means that the listed identifiers are to be " @@ -1409,7 +1413,7 @@ msgstr "" "sin :keyword:`!global`, aunque las variables libres pueden referirse a " "globales sin ser declaradas globales." -#: ../Doc/reference/simple_stmts.rst:958 +#: ../Doc/reference/simple_stmts.rst:959 msgid "" "Names listed in a :keyword:`global` statement must not be used in the same " "code block textually preceding that :keyword:`!global` statement." @@ -1418,7 +1422,7 @@ msgstr "" "en el mismo bloque de código que precede textualmente a la declaración :" "keyword:`!global`." -#: ../Doc/reference/simple_stmts.rst:961 +#: ../Doc/reference/simple_stmts.rst:962 msgid "" "Names listed in a :keyword:`global` statement must not be defined as formal " "parameters, or as targets in :keyword:`with` statements or :keyword:`except` " @@ -1431,7 +1435,7 @@ msgstr "" "keyword:`for`, definición de :keyword:`class`, definición de función, " "declaración :keyword:`import` o anotación de variable." -#: ../Doc/reference/simple_stmts.rst:968 +#: ../Doc/reference/simple_stmts.rst:969 msgid "" "The current implementation does not enforce some of these restrictions, but " "programs should not abuse this freedom, as future implementations may " @@ -1442,7 +1446,7 @@ msgstr "" "implementaciones futuras pueden imponerlas o cambiar silenciosamente el " "significado del programa." -#: ../Doc/reference/simple_stmts.rst:977 +#: ../Doc/reference/simple_stmts.rst:978 msgid "" "**Programmer's note:** :keyword:`global` is a directive to the parser. It " "applies only to code parsed at the same time as the :keyword:`!global` " @@ -1463,11 +1467,11 @@ msgstr "" "contiene la llamada a la función. Lo mismo se aplica a las funciones :func:" "`eval` y :func:`compile`." -#: ../Doc/reference/simple_stmts.rst:989 +#: ../Doc/reference/simple_stmts.rst:990 msgid "The :keyword:`!nonlocal` statement" msgstr "La declaración :keyword:`!nonlocal`" -#: ../Doc/reference/simple_stmts.rst:997 +#: ../Doc/reference/simple_stmts.rst:998 msgid "" "The :keyword:`nonlocal` statement causes the listed identifiers to refer to " "previously bound variables in the nearest enclosing scope excluding globals. " @@ -1482,7 +1486,7 @@ msgstr "" "local. La declaración permite que el código encapsulado vuelva a vincular " "variables fuera del ámbito local además del ámbito global (módulo)." -#: ../Doc/reference/simple_stmts.rst:1003 +#: ../Doc/reference/simple_stmts.rst:1004 msgid "" "Names listed in a :keyword:`nonlocal` statement, unlike those listed in a :" "keyword:`global` statement, must refer to pre-existing bindings in an " @@ -1495,7 +1499,7 @@ msgstr "" "determinar el ámbito en el que se debe crear un nuevo enlace " "inequívocamente)." -#: ../Doc/reference/simple_stmts.rst:1008 +#: ../Doc/reference/simple_stmts.rst:1009 msgid "" "Names listed in a :keyword:`nonlocal` statement must not collide with pre-" "existing bindings in the local scope." @@ -1503,10 +1507,552 @@ msgstr "" "Los nombres enumerados en la declaración :keyword:`nonlocal` no deben " "colisionar con las enlaces preexistentes en el ámbito local." -#: ../Doc/reference/simple_stmts.rst:1013 +#: ../Doc/reference/simple_stmts.rst:1014 msgid ":pep:`3104` - Access to Names in Outer Scopes" msgstr ":pep:`3104` - Acceso a Nombres de Ámbitos externos" -#: ../Doc/reference/simple_stmts.rst:1014 +#: ../Doc/reference/simple_stmts.rst:1015 msgid "The specification for the :keyword:`nonlocal` statement." msgstr "La especificación para la declaración :keyword:`nonlocal`." + +#: ../Doc/reference/simple_stmts.rst:1020 +#, fuzzy +msgid "The :keyword:`!type` statement" +msgstr "La declaración :keyword:`!yield`" + +#: ../Doc/reference/simple_stmts.rst:1027 +msgid "" +"The :keyword:`!type` statement declares a type alias, which is an instance " +"of :class:`typing.TypeAliasType`." +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:1030 +msgid "For example, the following statement creates a type alias::" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:1034 +msgid "This code is roughly equivalent to::" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:1040 +msgid "" +"``annotation-def`` indicates an :ref:`annotation scope `, " +"which behaves mostly like a function, but with several small differences." +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:1043 +msgid "" +"The value of the type alias is evaluated in the annotation scope. It is not " +"evaluated when the type alias is created, but only when the value is " +"accessed through the type alias's :attr:`!__value__` attribute (see :ref:" +"`lazy-evaluation`). This allows the type alias to refer to names that are " +"not yet defined." +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:1049 +msgid "" +"Type aliases may be made generic by adding a :ref:`type parameter list ` after the name. See :ref:`generic-type-aliases` for more." +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:1052 +msgid ":keyword:`!type` is a :ref:`soft keyword `." +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:1059 +msgid ":pep:`695` - Type Parameter Syntax" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:1059 +msgid "" +"Introduced the :keyword:`!type` statement and syntax for generic classes and " +"functions." +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:8 +msgid "simple" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:8 ../Doc/reference/simple_stmts.rst:39 +#: ../Doc/reference/simple_stmts.rst:75 ../Doc/reference/simple_stmts.rst:263 +#: ../Doc/reference/simple_stmts.rst:322 ../Doc/reference/simple_stmts.rst:379 +#: ../Doc/reference/simple_stmts.rst:422 ../Doc/reference/simple_stmts.rst:444 +#: ../Doc/reference/simple_stmts.rst:457 ../Doc/reference/simple_stmts.rst:483 +#: ../Doc/reference/simple_stmts.rst:520 ../Doc/reference/simple_stmts.rst:556 +#: ../Doc/reference/simple_stmts.rst:670 ../Doc/reference/simple_stmts.rst:704 +#: ../Doc/reference/simple_stmts.rst:729 ../Doc/reference/simple_stmts.rst:859 +#: ../Doc/reference/simple_stmts.rst:945 ../Doc/reference/simple_stmts.rst:992 +#: ../Doc/reference/simple_stmts.rst:1022 +#, fuzzy +msgid "statement" +msgstr "Declaraciones simples" + +#: ../Doc/reference/simple_stmts.rst:39 ../Doc/reference/simple_stmts.rst:42 +#, fuzzy +msgid "expression" +msgstr "Declaraciones de tipo expresión" + +#: ../Doc/reference/simple_stmts.rst:39 ../Doc/reference/simple_stmts.rst:42 +#: ../Doc/reference/simple_stmts.rst:105 ../Doc/reference/simple_stmts.rst:116 +#: ../Doc/reference/simple_stmts.rst:196 ../Doc/reference/simple_stmts.rst:444 +msgid "list" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:56 ../Doc/reference/simple_stmts.rst:973 +msgid "built-in function" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:56 +msgid "repr" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:56 ../Doc/reference/simple_stmts.rst:75 +#: ../Doc/reference/simple_stmts.rst:187 ../Doc/reference/simple_stmts.rst:196 +#: ../Doc/reference/simple_stmts.rst:207 ../Doc/reference/simple_stmts.rst:578 +msgid "object" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:56 +msgid "None" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:56 +msgid "string" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:56 +msgid "conversion" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:56 +msgid "output" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:56 +msgid "standard" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:56 +msgid "writing" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:56 +msgid "values" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:56 +msgid "procedure" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:56 +msgid "call" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:75 +msgid "= (equals)" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:75 +#, fuzzy +msgid "assignment statement" +msgstr "Declaraciones de asignación" + +#: ../Doc/reference/simple_stmts.rst:75 ../Doc/reference/simple_stmts.rst:116 +#: ../Doc/reference/simple_stmts.rst:159 ../Doc/reference/simple_stmts.rst:187 +#: ../Doc/reference/simple_stmts.rst:220 ../Doc/reference/simple_stmts.rst:263 +#: ../Doc/reference/simple_stmts.rst:322 +#, fuzzy +msgid "assignment" +msgstr "Declaraciones de asignación" + +#: ../Doc/reference/simple_stmts.rst:75 ../Doc/reference/simple_stmts.rst:729 +#: ../Doc/reference/simple_stmts.rst:784 ../Doc/reference/simple_stmts.rst:945 +msgid "binding" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:75 ../Doc/reference/simple_stmts.rst:457 +#: ../Doc/reference/simple_stmts.rst:729 ../Doc/reference/simple_stmts.rst:784 +#: ../Doc/reference/simple_stmts.rst:945 +msgid "name" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:75 +msgid "rebinding" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:75 ../Doc/reference/simple_stmts.rst:187 +msgid "mutable" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:75 ../Doc/reference/simple_stmts.rst:159 +#: ../Doc/reference/simple_stmts.rst:466 +msgid "attribute" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:105 ../Doc/reference/simple_stmts.rst:116 +#: ../Doc/reference/simple_stmts.rst:444 ../Doc/reference/simple_stmts.rst:683 +msgid "target" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:116 ../Doc/reference/simple_stmts.rst:379 +#: ../Doc/reference/simple_stmts.rst:729 ../Doc/reference/simple_stmts.rst:945 +#: ../Doc/reference/simple_stmts.rst:992 +msgid ", (comma)" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:116 +msgid "in target list" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:116 ../Doc/reference/simple_stmts.rst:810 +msgid "* (asterisk)" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:116 +msgid "in assignment target list" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:116 +msgid "[] (square brackets)" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:116 +msgid "() (parentheses)" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:153 +msgid "destructor" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:187 +msgid "subscription" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:196 +msgid "sequence" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:207 +msgid "mapping" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:207 +msgid "dictionary" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:220 +msgid "slicing" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:263 +msgid "augmented" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:263 +#, fuzzy +msgid "assignment, augmented" +msgstr "Declaraciones de asignación" + +#: ../Doc/reference/simple_stmts.rst:263 +msgid "+=" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:263 +#, fuzzy +msgid "augmented assignment" +msgstr "Declaraciones de asignación aumentada" + +#: ../Doc/reference/simple_stmts.rst:263 +msgid "-=" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:263 +msgid "*=" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:263 +msgid "/=" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:263 +msgid "%=" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:263 +msgid "&=" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:263 +msgid "^=" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:263 +msgid "|=" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:263 +msgid "**=" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:263 +msgid "//=" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:263 +msgid ">>=" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:263 +msgid "<<=" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:322 +msgid "annotated" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:322 +#, fuzzy +msgid "assignment, annotated" +msgstr "Declaraciones de asignación" + +#: ../Doc/reference/simple_stmts.rst:322 +msgid ": (colon)" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:322 +msgid "annotated variable" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:379 +msgid "assert" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:379 +msgid "debugging" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:379 +msgid "assertions" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:379 +#, fuzzy +msgid "expression list" +msgstr "Declaraciones de tipo expresión" + +#: ../Doc/reference/simple_stmts.rst:400 +msgid "__debug__" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:400 ../Doc/reference/simple_stmts.rst:520 +#: ../Doc/reference/simple_stmts.rst:556 ../Doc/reference/simple_stmts.rst:588 +#: ../Doc/reference/simple_stmts.rst:729 +msgid "exception" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:400 +msgid "AssertionError" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:422 +msgid "pass" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:422 +msgid "null" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:422 +msgid "operation" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:444 +msgid "del" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:444 ../Doc/reference/simple_stmts.rst:466 +msgid "deletion" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:457 ../Doc/reference/simple_stmts.rst:945 +msgid "global" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:457 +msgid "unbinding" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:483 +msgid "return" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:483 ../Doc/reference/simple_stmts.rst:520 +msgid "function" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:483 +msgid "definition" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:483 +msgid "class" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:499 ../Doc/reference/simple_stmts.rst:683 +#: ../Doc/reference/simple_stmts.rst:692 ../Doc/reference/simple_stmts.rst:704 +#: ../Doc/reference/simple_stmts.rst:729 +msgid "keyword" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:499 ../Doc/reference/simple_stmts.rst:692 +#: ../Doc/reference/simple_stmts.rst:704 +msgid "finally" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:520 +msgid "yield" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:520 +msgid "generator" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:520 +msgid "iterator" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:520 +msgid "StopIteration" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:556 +msgid "raise" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:556 +msgid "raising" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:556 +msgid "__traceback__ (exception attribute)" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:578 +msgid "traceback" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:588 +msgid "chaining" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:588 +msgid "__cause__ (exception attribute)" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:588 +msgid "__context__ (exception attribute)" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:670 +msgid "break" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:670 ../Doc/reference/simple_stmts.rst:704 +msgid "for" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:670 ../Doc/reference/simple_stmts.rst:704 +msgid "while" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:670 ../Doc/reference/simple_stmts.rst:704 +msgid "loop" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:683 +#, fuzzy +msgid "else" +msgstr "Sino:" + +#: ../Doc/reference/simple_stmts.rst:683 +msgid "loop control" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:704 +msgid "continue" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:729 ../Doc/reference/simple_stmts.rst:832 +msgid "import" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:729 +msgid "module" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:729 +msgid "importing" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:729 ../Doc/reference/simple_stmts.rst:784 +msgid "from" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:729 ../Doc/reference/simple_stmts.rst:771 +msgid "as" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:729 +msgid "ImportError" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:729 ../Doc/reference/simple_stmts.rst:771 +#: ../Doc/reference/simple_stmts.rst:784 ../Doc/reference/simple_stmts.rst:810 +#, fuzzy +msgid "import statement" +msgstr "Declaraciones simples" + +#: ../Doc/reference/simple_stmts.rst:816 +msgid "__all__ (optional module attribute)" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:832 +msgid "relative" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:859 +msgid "future" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:859 +msgid "__future__" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:859 +#, fuzzy +msgid "future statement" +msgstr "Declaraciones Futuras" + +#: ../Doc/reference/simple_stmts.rst:945 ../Doc/reference/simple_stmts.rst:992 +msgid "identifier list" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:973 +msgid "exec" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:973 +msgid "eval" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:973 +msgid "compile" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:992 +msgid "nonlocal" +msgstr "" + +#: ../Doc/reference/simple_stmts.rst:1022 +msgid "type" +msgstr "" diff --git a/reference/toplevel_components.po b/reference/toplevel_components.po index d1cf42178a..22f043bbf6 100644 --- a/reference/toplevel_components.po +++ b/reference/toplevel_components.po @@ -1,23 +1,25 @@ # Copyright (C) 2001-2020, Python Software Foundation # This file is distributed under the same license as the Python package. # Maintained by the python-doc-es workteam. -# docs-es@python.org / https://mail.python.org/mailman3/lists/docs-es.python.org/ -# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get the list of volunteers +# docs-es@python.org / +# https://mail.python.org/mailman3/lists/docs-es.python.org/ +# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get +# the list of volunteers # msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-06 11:59-0400\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-10-18 16:24-0500\n" +"Last-Translator: \n" +"Language: es\n" "Language-Team: python-doc-es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: \n" -"Language: es\n" -"X-Generator: Poedit 2.4.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/reference/toplevel_components.rst:6 msgid "Top-level components" @@ -154,3 +156,63 @@ msgstr "" ":func:`eval` se utiliza para la entrada de expresiones. Ignora los espacios " "en blanco iniciales. El argumento de cadena para :func:`eval` debe tener la " "siguiente forma:" + +#: ../Doc/reference/toplevel_components.rst:8 +msgid "interpreter" +msgstr "" + +#: ../Doc/reference/toplevel_components.rst:21 +msgid "program" +msgstr "" + +#: ../Doc/reference/toplevel_components.rst:23 +#: ../Doc/reference/toplevel_components.rst:39 +msgid "module" +msgstr "" + +#: ../Doc/reference/toplevel_components.rst:23 +msgid "sys" +msgstr "" + +#: ../Doc/reference/toplevel_components.rst:23 +#: ../Doc/reference/toplevel_components.rst:39 +msgid "__main__" +msgstr "" + +#: ../Doc/reference/toplevel_components.rst:23 +msgid "builtins" +msgstr "" + +#: ../Doc/reference/toplevel_components.rst:39 +#, fuzzy +msgid "interactive mode" +msgstr "Entrada interactiva" + +#: ../Doc/reference/toplevel_components.rst:49 +msgid "UNIX" +msgstr "" + +#: ../Doc/reference/toplevel_components.rst:49 +msgid "Windows" +msgstr "" + +#: ../Doc/reference/toplevel_components.rst:49 +msgid "command line" +msgstr "" + +#: ../Doc/reference/toplevel_components.rst:49 +msgid "standard input" +msgstr "" + +#: ../Doc/reference/toplevel_components.rst:100 +#, fuzzy +msgid "input" +msgstr "Entrada de archivo" + +#: ../Doc/reference/toplevel_components.rst:101 +msgid "built-in function" +msgstr "" + +#: ../Doc/reference/toplevel_components.rst:101 +msgid "eval" +msgstr "" diff --git a/tutorial/appendix.po b/tutorial/appendix.po index b58f782200..3febea8257 100644 --- a/tutorial/appendix.po +++ b/tutorial/appendix.po @@ -1,22 +1,25 @@ # Copyright (C) 2001-2020, Python Software Foundation # This file is distributed under the same license as the Python package. # Maintained by the python-doc-es workteam. -# docs-es@python.org / https://mail.python.org/mailman3/lists/docs-es.python.org/ -# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get the list of volunteers +# docs-es@python.org / +# https://mail.python.org/mailman3/lists/docs-es.python.org/ +# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get +# the list of volunteers # msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-06 11:59-0400\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-05-06 16:38-0300\n" +"Last-Translator: \n" +"Language: es\n" "Language-Team: python-doc-es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\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" -"Last-Translator: \n" -"Language: es\n" -"X-Generator: Poedit 2.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/tutorial/appendix.rst:5 msgid "Appendix" @@ -174,9 +177,10 @@ msgid "The Customization Modules" msgstr "Los módulos de customización" #: ../Doc/tutorial/appendix.rst:104 +#, fuzzy msgid "" -"Python provides two hooks to let you customize it: :mod:`sitecustomize` and :" -"mod:`usercustomize`. To see how it works, you need first to find the " +"Python provides two hooks to let you customize it: :index:`sitecustomize` " +"and :index:`usercustomize`. To see how it works, you need first to find the " "location of your user site-packages directory. Start Python and run this " "code::" msgstr "" @@ -198,10 +202,11 @@ msgstr "" "esta importación automática." #: ../Doc/tutorial/appendix.rst:116 +#, fuzzy msgid "" -":mod:`sitecustomize` works in the same way, but is typically created by an " +":index:`sitecustomize` works in the same way, but is typically created by an " "administrator of the computer in the global site-packages directory, and is " -"imported before :mod:`usercustomize`. See the documentation of the :mod:" +"imported before :index:`usercustomize`. See the documentation of the :mod:" "`site` module for more details." msgstr "" ":mod:`sitecustomize` funciona de la misma manera, pero normalmente lo crea " diff --git a/tutorial/classes.po b/tutorial/classes.po index a7e619fc4f..486ac587ac 100644 --- a/tutorial/classes.po +++ b/tutorial/classes.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-02 19:52+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/tutorial/classes.rst:5 msgid "Classes" @@ -205,12 +205,14 @@ msgstr "" "definidos en el módulo: ¡están compartiendo el mismo espacio de nombres! [#]_" #: ../Doc/tutorial/classes.rst:90 +#, fuzzy msgid "" "Attributes may be read-only or writable. In the latter case, assignment to " "attributes is possible. Module attributes are writable: you can write " "``modname.the_answer = 42``. Writable attributes may also be deleted with " "the :keyword:`del` statement. For example, ``del modname.the_answer`` will " -"remove the attribute :attr:`the_answer` from the object named by ``modname``." +"remove the attribute :attr:`!the_answer` from the object named by " +"``modname``." msgstr "" "Los atributos pueden ser de sólo lectura, o de escritura. En el último caso " "es posible la asignación a atributos. Los atributos de módulo pueden " @@ -284,9 +286,10 @@ msgstr "" "locales" #: ../Doc/tutorial/classes.rst:121 +#, fuzzy msgid "" "the scopes of any enclosing functions, which are searched starting with the " -"nearest enclosing scope, contains non-local, but also non-global names" +"nearest enclosing scope, contain non-local, but also non-global names" msgstr "" "los alcances de las funciones que encierran a la función actual, que son " "inspeccionados a partir del alcance más cercano, contienen nombres no " @@ -305,9 +308,10 @@ msgstr "" "que contiene los nombres integrados" #: ../Doc/tutorial/classes.rst:126 +#, fuzzy msgid "" "If a name is declared global, then all references and assignments go " -"directly to the middle scope containing the module's global names. To " +"directly to the next-to-last scope containing the module's global names. To " "rebind variables found outside of the innermost scope, the :keyword:" "`nonlocal` statement can be used; if not declared nonlocal, those variables " "are read-only (an attempt to write to such a variable will simply create a " @@ -485,14 +489,15 @@ msgstr "" "nuevas allí." #: ../Doc/tutorial/classes.rst:247 +#, fuzzy msgid "" "When a class definition is left normally (via the end), a *class object* is " "created. This is basically a wrapper around the contents of the namespace " "created by the class definition; we'll learn more about class objects in the " "next section. The original local scope (the one in effect just before the " "class definition was entered) is reinstated, and the class object is bound " -"here to the class name given in the class definition header (:class:" -"`ClassName` in the example)." +"here to the class name given in the class definition header (:class:`!" +"ClassName` in the example)." msgstr "" "Cuando una definición de clase se finaliza normalmente se crea un *objeto " "clase*. Básicamente, este objeto envuelve los contenidos del espacio de " @@ -528,11 +533,12 @@ msgstr "" "es así::" #: ../Doc/tutorial/classes.rst:276 +#, fuzzy msgid "" "then ``MyClass.i`` and ``MyClass.f`` are valid attribute references, " "returning an integer and a function object, respectively. Class attributes " "can also be assigned to, so you can change the value of ``MyClass.i`` by " -"assignment. :attr:`__doc__` is also a valid attribute, returning the " +"assignment. :attr:`!__doc__` is also a valid attribute, returning the " "docstring belonging to the class: ``\"A simple example class\"``." msgstr "" "entonces ``MyClass.i`` y ``MyClass.f`` son referencias de atributos válidas, " @@ -561,11 +567,12 @@ msgstr "" "local ``x``." #: ../Doc/tutorial/classes.rst:291 +#, fuzzy msgid "" "The instantiation operation (\"calling\" a class object) creates an empty " "object. Many classes like to create objects with instances customized to a " "specific initial state. Therefore a class may define a special method named :" -"meth:`__init__`, like this::" +"meth:`~object.__init__`, like this::" msgstr "" "La operación de instanciación (\"llamar\" a un objeto clase) crea un objeto " "vacío. Muchas clases necesitan crear objetos con instancias en un estado " @@ -575,8 +582,8 @@ msgstr "" #: ../Doc/tutorial/classes.rst:299 #, fuzzy msgid "" -"When a class defines an :meth:`__init__` method, class instantiation " -"automatically invokes :meth:`__init__` for the newly created class " +"When a class defines an :meth:`~object.__init__` method, class instantiation " +"automatically invokes :meth:`!__init__` for the newly created class " "instance. So in this example, a new, initialized instance can be obtained " "by::" msgstr "" @@ -586,10 +593,11 @@ msgstr "" "puede obtener haciendo::" #: ../Doc/tutorial/classes.rst:305 +#, fuzzy msgid "" -"Of course, the :meth:`__init__` method may have arguments for greater " -"flexibility. In that case, arguments given to the class instantiation " -"operator are passed on to :meth:`__init__`. For example, ::" +"Of course, the :meth:`~object.__init__` method may have arguments for " +"greater flexibility. In that case, arguments given to the class " +"instantiation operator are passed on to :meth:`!__init__`. For example, ::" msgstr "" "Por supuesto, el método :meth:`__init__` puede tener argumentos para mayor " "flexibilidad. En ese caso, los argumentos que se pasen al operador de " @@ -611,11 +619,12 @@ msgstr "" "dos tipos de nombres de atributos válidos, atributos de datos y métodos." #: ../Doc/tutorial/classes.rst:328 +#, fuzzy msgid "" "*data attributes* correspond to \"instance variables\" in Smalltalk, and to " "\"data members\" in C++. Data attributes need not be declared; like local " "variables, they spring into existence when they are first assigned to. For " -"example, if ``x`` is the instance of :class:`MyClass` created above, the " +"example, if ``x`` is the instance of :class:`!MyClass` created above, the " "following piece of code will print the value ``16``, without leaving a " "trace::" msgstr "" @@ -671,8 +680,9 @@ msgid "Usually, a method is called right after it is bound::" msgstr "Generalmente, un método es llamado luego de ser vinculado::" #: ../Doc/tutorial/classes.rst:366 +#, fuzzy msgid "" -"In the :class:`MyClass` example, this will return the string ``'hello " +"In the :class:`!MyClass` example, this will return the string ``'hello " "world'``. However, it is not necessary to call a method right away: ``x.f`` " "is a method object, and can be stored away and called at a later time. For " "example::" @@ -686,10 +696,11 @@ msgid "will continue to print ``hello world`` until the end of time." msgstr "continuará imprimiendo ``hello world`` hasta el fin de los días." #: ../Doc/tutorial/classes.rst:376 +#, fuzzy msgid "" "What exactly happens when a method is called? You may have noticed that ``x." "f()`` was called without an argument above, even though the function " -"definition for :meth:`f` specified an argument. What happened to the " +"definition for :meth:`!f` specified an argument. What happened to the " "argument? Surely Python raises an exception when a function that requires an " "argument is called without any --- even if the argument isn't actually " "used..." @@ -861,11 +872,12 @@ msgstr "" "función a una variable local en la clase también está bien. Por ejemplo::" #: ../Doc/tutorial/classes.rst:535 +#, fuzzy msgid "" -"Now ``f``, ``g`` and ``h`` are all attributes of class :class:`C` that refer " -"to function objects, and consequently they are all methods of instances of :" -"class:`C` --- ``h`` being exactly equivalent to ``g``. Note that this " -"practice usually only serves to confuse the reader of a program." +"Now ``f``, ``g`` and ``h`` are all attributes of class :class:`!C` that " +"refer to function objects, and consequently they are all methods of " +"instances of :class:`!C` --- ``h`` being exactly equivalent to ``g``. Note " +"that this practice usually only serves to confuse the reader of a program." msgstr "" "Ahora ``f``, ``g`` y ``h`` son todos atributos de la clase :class:`C` que " "hacen referencia a objetos función, y consecuentemente son todos métodos de " @@ -927,18 +939,19 @@ msgstr "" "clase derivada se ve así::" #: ../Doc/tutorial/classes.rst:584 +#, fuzzy msgid "" -"The name :class:`BaseClassName` must be defined in a scope containing the " -"derived class definition. In place of a base class name, other arbitrary " -"expressions are also allowed. This can be useful, for example, when the " -"base class is defined in another module::" +"The name :class:`!BaseClassName` must be defined in a namespace accessible " +"from the scope containing the derived class definition. In place of a base " +"class name, other arbitrary expressions are also allowed. This can be " +"useful, for example, when the base class is defined in another module::" msgstr "" "El nombre :class:`BaseClassName` debe estar definido en un ámbito que " "contenga a la definición de la clase derivada. En el lugar del nombre de la " "clase base se permiten otras expresiones arbitrarias. Esto puede ser útil, " "por ejemplo, cuando la clase base está definida en otro módulo::" -#: ../Doc/tutorial/classes.rst:591 +#: ../Doc/tutorial/classes.rst:592 msgid "" "Execution of a derived class definition proceeds the same as for a base " "class. When the class object is constructed, the base class is remembered. " @@ -954,7 +967,7 @@ msgstr "" "clase base. Esta regla se aplica recursivamente si la clase base misma " "deriva de alguna otra clase." -#: ../Doc/tutorial/classes.rst:597 +#: ../Doc/tutorial/classes.rst:598 msgid "" "There's nothing special about instantiation of derived classes: " "``DerivedClassName()`` creates a new instance of the class. Method " @@ -969,7 +982,7 @@ msgstr "" "si es necesario, y la referencia al método es válida si se entrega un objeto " "función." -#: ../Doc/tutorial/classes.rst:603 +#: ../Doc/tutorial/classes.rst:604 msgid "" "Derived classes may override methods of their base classes. Because methods " "have no special privileges when calling other methods of the same object, a " @@ -984,7 +997,7 @@ msgstr "" "que lo haya redefinido. (Para los programadores de C++: en Python todos los " "métodos son en efecto ``virtuales``.)" -#: ../Doc/tutorial/classes.rst:609 +#: ../Doc/tutorial/classes.rst:610 msgid "" "An overriding method in a derived class may in fact want to extend rather " "than simply replace the base class method of the same name. There is a " @@ -1001,11 +1014,11 @@ msgstr "" "(Observá que esto sólo funciona si la clase base es accesible como " "``BaseClassName`` en el ámbito global)." -#: ../Doc/tutorial/classes.rst:616 +#: ../Doc/tutorial/classes.rst:617 msgid "Python has two built-in functions that work with inheritance:" msgstr "Python tiene dos funciones integradas que funcionan con herencia:" -#: ../Doc/tutorial/classes.rst:618 +#: ../Doc/tutorial/classes.rst:619 msgid "" "Use :func:`isinstance` to check an instance's type: ``isinstance(obj, int)`` " "will be ``True`` only if ``obj.__class__`` is :class:`int` or some class " @@ -1015,7 +1028,7 @@ msgstr "" "``isinstance(obj, int)`` será ``True`` sólo si ``obj.__class__`` es :class:" "`int` o alguna clase derivada de :class:`int`." -#: ../Doc/tutorial/classes.rst:622 +#: ../Doc/tutorial/classes.rst:623 msgid "" "Use :func:`issubclass` to check class inheritance: ``issubclass(bool, int)`` " "is ``True`` since :class:`bool` is a subclass of :class:`int`. However, " @@ -1027,11 +1040,11 @@ msgstr "" "de :class:`int`. Sin embargo, ``issubclass(float, int)`` es ``False`` ya " "que :class:`float` no es una subclase de :class:`int`." -#: ../Doc/tutorial/classes.rst:632 +#: ../Doc/tutorial/classes.rst:633 msgid "Multiple Inheritance" msgstr "Herencia múltiple" -#: ../Doc/tutorial/classes.rst:634 +#: ../Doc/tutorial/classes.rst:635 msgid "" "Python supports a form of multiple inheritance as well. A class definition " "with multiple base classes looks like this::" @@ -1039,15 +1052,16 @@ msgstr "" "Python también soporta una forma de herencia múltiple. Una definición de " "clase con múltiples clases base se ve así::" -#: ../Doc/tutorial/classes.rst:644 +#: ../Doc/tutorial/classes.rst:645 +#, fuzzy msgid "" "For most purposes, in the simplest cases, you can think of the search for " "attributes inherited from a parent class as depth-first, left-to-right, not " "searching twice in the same class where there is an overlap in the " -"hierarchy. Thus, if an attribute is not found in :class:`DerivedClassName`, " -"it is searched for in :class:`Base1`, then (recursively) in the base classes " -"of :class:`Base1`, and if it was not found there, it was searched for in :" -"class:`Base2`, and so on." +"hierarchy. Thus, if an attribute is not found in :class:`!DerivedClassName`, " +"it is searched for in :class:`!Base1`, then (recursively) in the base " +"classes of :class:`!Base1`, and if it was not found there, it was searched " +"for in :class:`!Base2`, and so on." msgstr "" "Para la mayoría de los propósitos, en los casos más simples, podés pensar en " "la búsqueda de los atributos heredados de clases padres como primero en " @@ -1057,7 +1071,7 @@ msgstr "" "en las clases base de :class:`Base1`, y sólo si no se encuentra allí se lo " "busca en :class:`Base2`, y así sucesivamente." -#: ../Doc/tutorial/classes.rst:651 +#: ../Doc/tutorial/classes.rst:652 msgid "" "In fact, it is slightly more complex than that; the method resolution order " "changes dynamically to support cooperative calls to :func:`super`. This " @@ -1071,7 +1085,7 @@ msgstr "" "como \"llámese al siguiente método\" y es más poderoso que la llamada al " "superior que se encuentra en lenguajes con sólo herencia simple." -#: ../Doc/tutorial/classes.rst:657 +#: ../Doc/tutorial/classes.rst:658 msgid "" "Dynamic ordering is necessary because all cases of multiple inheritance " "exhibit one or more diamond relationships (where at least one of the parent " @@ -1101,11 +1115,11 @@ msgstr "" "posible diseñar clases confiables y extensibles con herencia múltiple. Para " "más detalles mirá https://www.python.org/download/releases/2.3/mro/." -#: ../Doc/tutorial/classes.rst:674 +#: ../Doc/tutorial/classes.rst:675 msgid "Private Variables" msgstr "Variables privadas" -#: ../Doc/tutorial/classes.rst:676 +#: ../Doc/tutorial/classes.rst:677 msgid "" "\"Private\" instance variables that cannot be accessed except from inside an " "object don't exist in Python. However, there is a convention that is " @@ -1122,7 +1136,7 @@ msgstr "" "dato). Debería considerarse un detalle de implementación y que está sujeto " "a cambios sin aviso." -#: ../Doc/tutorial/classes.rst:686 +#: ../Doc/tutorial/classes.rst:687 msgid "" "Since there is a valid use-case for class-private members (namely to avoid " "name clashes of names with names defined by subclasses), there is limited " @@ -1143,7 +1157,7 @@ msgstr "" "modifica el nombre del identificador sin importar su posición sintáctica, " "siempre y cuando ocurra dentro de la definición de una clase." -#: ../Doc/tutorial/classes.rst:695 +#: ../Doc/tutorial/classes.rst:696 msgid "" "Name mangling is helpful for letting subclasses override methods without " "breaking intraclass method calls. For example::" @@ -1152,7 +1166,7 @@ msgstr "" "sobreescriban los métodos sin romper las llamadas a los métodos desde la " "misma clase. Por ejemplo::" -#: ../Doc/tutorial/classes.rst:717 +#: ../Doc/tutorial/classes.rst:718 msgid "" "The above example would work even if ``MappingSubclass`` were to introduce a " "``__update`` identifier since it is replaced with ``_Mapping__update`` in " @@ -1164,7 +1178,7 @@ msgstr "" "en la clase ``Mapping`` y ``_MappingSubclass__update`` en la clase " "``MappingSubclass`` respectivamente." -#: ../Doc/tutorial/classes.rst:722 +#: ../Doc/tutorial/classes.rst:723 msgid "" "Note that the mangling rules are designed mostly to avoid accidents; it " "still is possible to access or modify a variable that is considered " @@ -1176,7 +1190,7 @@ msgstr "" "variable que es considerada como privada. Esto hasta puede resultar útil en " "circunstancias especiales, tales como en el depurador." -#: ../Doc/tutorial/classes.rst:726 +#: ../Doc/tutorial/classes.rst:727 msgid "" "Notice that code passed to ``exec()`` or ``eval()`` does not consider the " "classname of the invoking class to be the current class; this is similar to " @@ -1192,28 +1206,30 @@ msgstr "" "aplica a ``getattr()``, ``setattr()`` y ``delattr()``, así como cuando se " "referencia a ``__dict__`` directamente." -#: ../Doc/tutorial/classes.rst:737 +#: ../Doc/tutorial/classes.rst:738 msgid "Odds and Ends" msgstr "Cambalache" -#: ../Doc/tutorial/classes.rst:739 +#: ../Doc/tutorial/classes.rst:740 +#, fuzzy msgid "" "Sometimes it is useful to have a data type similar to the Pascal \"record\" " -"or C \"struct\", bundling together a few named data items. An empty class " -"definition will do nicely::" +"or C \"struct\", bundling together a few named data items. The idiomatic " +"approach is to use :mod:`dataclasses` for this purpose::" msgstr "" "A veces es útil tener un tipo de datos similar al \"registro\" de Pascal o " "la \"estructura\" de C, que sirva para juntar algunos pocos ítems con " "nombre. Una definición de clase vacía funcionará perfecto::" -#: ../Doc/tutorial/classes.rst:753 +#: ../Doc/tutorial/classes.rst:760 +#, fuzzy msgid "" "A piece of Python code that expects a particular abstract data type can " "often be passed a class that emulates the methods of that data type " "instead. For instance, if you have a function that formats some data from a " -"file object, you can define a class with methods :meth:`read` and :meth:`!" -"readline` that get the data from a string buffer instead, and pass it as an " -"argument." +"file object, you can define a class with methods :meth:`~io.TextIOBase.read` " +"and :meth:`~io.TextIOBase.readline` that get the data from a string buffer " +"instead, and pass it as an argument." msgstr "" "Algún código Python que espera un tipo abstracto de datos en particular " "puede frecuentemente recibir en cambio una clase que emula los métodos de " @@ -1222,21 +1238,22 @@ msgstr "" "meth:`read` y :meth:`!readline` que obtengan los datos de alguna cadena en " "memoria intermedia, y pasarlo como argumento." -#: ../Doc/tutorial/classes.rst:764 +#: ../Doc/tutorial/classes.rst:772 +#, fuzzy msgid "" "Instance method objects have attributes, too: ``m.__self__`` is the instance " -"object with the method :meth:`m`, and ``m.__func__`` is the function object " +"object with the method :meth:`!m`, and ``m.__func__`` is the function object " "corresponding to the method." msgstr "" "Los objetos método de instancia tienen atributos también: ``m.__self__`` es " "el objeto instancia con el método :meth:`m`, y ``m.__func__`` es el objeto " "función correspondiente al método." -#: ../Doc/tutorial/classes.rst:772 +#: ../Doc/tutorial/classes.rst:780 msgid "Iterators" msgstr "Iteradores" -#: ../Doc/tutorial/classes.rst:774 +#: ../Doc/tutorial/classes.rst:782 msgid "" "By now you have probably noticed that most container objects can be looped " "over using a :keyword:`for` statement::" @@ -1244,7 +1261,7 @@ msgstr "" "Es probable que hayas notado que la mayoría de los objetos contenedores " "pueden ser recorridos usando una sentencia :keyword:`for`::" -#: ../Doc/tutorial/classes.rst:788 +#: ../Doc/tutorial/classes.rst:796 msgid "" "This style of access is clear, concise, and convenient. The use of " "iterators pervades and unifies Python. Behind the scenes, the :keyword:" @@ -1266,23 +1283,25 @@ msgstr "" "método :meth:`~iterator.__next__` usando la función integrada :func:`next`; " "este ejemplo muestra como funciona todo esto::" -#: ../Doc/tutorial/classes.rst:813 +#: ../Doc/tutorial/classes.rst:821 +#, fuzzy msgid "" "Having seen the mechanics behind the iterator protocol, it is easy to add " -"iterator behavior to your classes. Define an :meth:`__iter__` method which " -"returns an object with a :meth:`~iterator.__next__` method. If the class " -"defines :meth:`__next__`, then :meth:`__iter__` can just return ``self``::" +"iterator behavior to your classes. Define an :meth:`~container.__iter__` " +"method which returns an object with a :meth:`~iterator.__next__` method. If " +"the class defines :meth:`!__next__`, then :meth:`!__iter__` can just return " +"``self``::" msgstr "" "Habiendo visto la mecánica del protocolo de iteración, es fácil agregar " "comportamiento de iterador a tus clases. Definí un método :meth:`__iter__` " "que retorne un objeto con un método :meth:`__next__`. Si la clase define :" "meth:`__next__`, entonces alcanza con que :meth:`__iter__` retorne ``self``::" -#: ../Doc/tutorial/classes.rst:850 +#: ../Doc/tutorial/classes.rst:858 msgid "Generators" msgstr "Generadores" -#: ../Doc/tutorial/classes.rst:852 +#: ../Doc/tutorial/classes.rst:860 msgid "" ":term:`Generators ` are a simple and powerful tool for creating " "iterators. They are written like regular functions but use the :keyword:" @@ -1298,19 +1317,20 @@ msgstr "" "todos los valores de datos y qué instrucción se ejecutó por última vez). Un " "ejemplo muestra que los generadores pueden ser trivialmente fáciles de crear:" -#: ../Doc/tutorial/classes.rst:873 +#: ../Doc/tutorial/classes.rst:881 +#, fuzzy msgid "" "Anything that can be done with generators can also be done with class-based " "iterators as described in the previous section. What makes generators so " -"compact is that the :meth:`__iter__` and :meth:`~generator.__next__` methods " -"are created automatically." +"compact is that the :meth:`~iterator.__iter__` and :meth:`~generator." +"__next__` methods are created automatically." msgstr "" "Todo lo que puede ser hecho con generadores también puede ser hecho con " "iteradores basados en clases, como se describe en la sección anterior. Lo " "que hace que los generadores sean tan compactos es que los métodos :meth:" "`__iter__` y :meth:`__next__` son creados automáticamente." -#: ../Doc/tutorial/classes.rst:878 +#: ../Doc/tutorial/classes.rst:886 msgid "" "Another key feature is that the local variables and execution state are " "automatically saved between calls. This made the function easier to write " @@ -1322,7 +1342,7 @@ msgstr "" "función sea más fácil de escribir y quede mucho más claro que hacerlo usando " "variables de instancia tales como ``self.indice`` y ``self.datos``." -#: ../Doc/tutorial/classes.rst:883 +#: ../Doc/tutorial/classes.rst:891 msgid "" "In addition to automatic method creation and saving program state, when " "generators terminate, they automatically raise :exc:`StopIteration`. In " @@ -1334,11 +1354,11 @@ msgstr "" "`StopIteration`. Combinadas, estas características facilitan la creación de " "iteradores, y hacen que no sea más esfuerzo que escribir una función regular." -#: ../Doc/tutorial/classes.rst:892 +#: ../Doc/tutorial/classes.rst:900 msgid "Generator Expressions" msgstr "Expresiones generadoras" -#: ../Doc/tutorial/classes.rst:894 +#: ../Doc/tutorial/classes.rst:902 msgid "" "Some simple generators can be coded succinctly as expressions using a syntax " "similar to list comprehensions but with parentheses instead of square " @@ -1355,15 +1375,15 @@ msgstr "" "versátiles que las definiciones completas de generadores y tienden a ser más " "amigables con la memoria que sus comprensiones de listas equivalentes." -#: ../Doc/tutorial/classes.rst:901 +#: ../Doc/tutorial/classes.rst:909 msgid "Examples::" msgstr "Ejemplos::" -#: ../Doc/tutorial/classes.rst:922 +#: ../Doc/tutorial/classes.rst:930 msgid "Footnotes" msgstr "Notas al pie" -#: ../Doc/tutorial/classes.rst:923 +#: ../Doc/tutorial/classes.rst:931 msgid "" "Except for one thing. Module objects have a secret read-only attribute " "called :attr:`~object.__dict__` which returns the dictionary used to " @@ -1378,3 +1398,21 @@ msgstr "" "__dict__` es un atributo pero no un nombre global. Obviamente, usar esto " "viola la abstracción de la implementación del espacio de nombres, y debería " "ser restringido a cosas como depuradores post-mortem." + +#: ../Doc/tutorial/classes.rst:347 +#, fuzzy +msgid "object" +msgstr "Objetos clase" + +#: ../Doc/tutorial/classes.rst:347 +#, fuzzy +msgid "method" +msgstr "Objetos método" + +#: ../Doc/tutorial/classes.rst:684 +msgid "name" +msgstr "" + +#: ../Doc/tutorial/classes.rst:684 +msgid "mangling" +msgstr "" diff --git a/tutorial/controlflow.po b/tutorial/controlflow.po index efaa02501b..4b391f7c65 100644 --- a/tutorial/controlflow.po +++ b/tutorial/controlflow.po @@ -10,26 +10,26 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-19 23:09-0300\n" "Last-Translator: Carlos A. Crespo \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/tutorial/controlflow.rst:5 msgid "More Control Flow Tools" msgstr "Más herramientas para control de flujo" #: ../Doc/tutorial/controlflow.rst:7 +#, fuzzy msgid "" -"Besides the :keyword:`while` statement just introduced, Python uses the " -"usual flow control statements known from other languages, with some twists." +"As well as the :keyword:`while` statement just introduced, Python uses a few " +"more that we will encounter in this chapter." msgstr "" "Además de la sentencia :keyword:`while` que acabamos de introducir, Python " "soporta las sentencias de control de flujo que podemos encontrar en otros " @@ -192,28 +192,45 @@ msgstr "" "bucles" #: ../Doc/tutorial/controlflow.rst:166 +#, fuzzy msgid "" -"The :keyword:`break` statement, like in C, breaks out of the innermost " -"enclosing :keyword:`for` or :keyword:`while` loop." +"The :keyword:`break` statement breaks out of the innermost enclosing :" +"keyword:`for` or :keyword:`while` loop." msgstr "" "La sentencia :keyword:`break`, como en C, termina el bucle :keyword:`for` o :" "keyword:`while` más anidado." #: ../Doc/tutorial/controlflow.rst:169 msgid "" -"Loop statements may have an :keyword:`!else` clause; it is executed when the " -"loop terminates through exhaustion of the iterable (with :keyword:`for`) or " -"when the condition becomes false (with :keyword:`while`), but not when the " -"loop is terminated by a :keyword:`break` statement. This is exemplified by " -"the following loop, which searches for prime numbers::" +"A :keyword:`!for` or :keyword:`!while` loop can include an :keyword:`!else` " +"clause." +msgstr "" + +#: ../Doc/tutorial/controlflow.rst:171 +msgid "" +"In a :keyword:`for` loop, the :keyword:`!else` clause is executed after the " +"loop reaches its final iteration." +msgstr "" + +#: ../Doc/tutorial/controlflow.rst:174 +msgid "" +"In a :keyword:`while` loop, it's executed after the loop's condition becomes " +"false." msgstr "" -"Las sentencias de bucle pueden tener una cláusula :keyword:`!else` que es " -"ejecutada cuando el bucle termina, después de agotar el iterable (con :" -"keyword:`for`) o cuando la condición se hace falsa (con :keyword:`while`), " -"pero no cuando el bucle se termina con la sentencia :keyword:`break`. Se " -"puede ver el ejemplo en el siguiente bucle, que busca números primos::" -#: ../Doc/tutorial/controlflow.rst:193 +#: ../Doc/tutorial/controlflow.rst:176 +msgid "" +"In either kind of loop, the :keyword:`!else` clause is **not** executed if " +"the loop was terminated by a :keyword:`break`." +msgstr "" + +#: ../Doc/tutorial/controlflow.rst:179 +msgid "" +"This is exemplified in the following :keyword:`!for` loop, which searches " +"for prime numbers::" +msgstr "" + +#: ../Doc/tutorial/controlflow.rst:200 msgid "" "(Yes, this is the correct code. Look closely: the ``else`` clause belongs " "to the :keyword:`for` loop, **not** the :keyword:`if` statement.)" @@ -221,7 +238,7 @@ msgstr "" "(Sí, este es el código correcto. Fíjate bien: el ``else`` pertenece al " "ciclo :keyword:`for`, **no** al :keyword:`if`.)" -#: ../Doc/tutorial/controlflow.rst:196 +#: ../Doc/tutorial/controlflow.rst:203 msgid "" "When used with a loop, the ``else`` clause has more in common with the " "``else`` clause of a :keyword:`try` statement than it does with that of :" @@ -237,7 +254,7 @@ msgstr "" "ningún ``break``. Para más sobre la declaración :keyword:`!try` y " "excepciones, mira :ref:`tut-handling`." -#: ../Doc/tutorial/controlflow.rst:203 +#: ../Doc/tutorial/controlflow.rst:210 msgid "" "The :keyword:`continue` statement, also borrowed from C, continues with the " "next iteration of the loop::" @@ -245,11 +262,11 @@ msgstr "" "La declaración :keyword:`continue`, también tomada de C, continua con la " "siguiente iteración del ciclo::" -#: ../Doc/tutorial/controlflow.rst:224 +#: ../Doc/tutorial/controlflow.rst:231 msgid ":keyword:`!pass` Statements" msgstr "La sentencia :keyword:`pass`" -#: ../Doc/tutorial/controlflow.rst:226 +#: ../Doc/tutorial/controlflow.rst:233 msgid "" "The :keyword:`pass` statement does nothing. It can be used when a statement " "is required syntactically but the program requires no action. For example::" @@ -258,11 +275,11 @@ msgstr "" "sentencia es requerida por la sintaxis pero el programa no requiere ninguna " "acción. Por ejemplo::" -#: ../Doc/tutorial/controlflow.rst:233 +#: ../Doc/tutorial/controlflow.rst:240 msgid "This is commonly used for creating minimal classes::" msgstr "Se usa normalmente para crear clases en su mínima expresión::" -#: ../Doc/tutorial/controlflow.rst:239 +#: ../Doc/tutorial/controlflow.rst:246 msgid "" "Another place :keyword:`pass` can be used is as a place-holder for a " "function or conditional body when you are working on new code, allowing you " @@ -274,11 +291,11 @@ msgstr "" "nuevo, lo cual te permite pensar a un nivel de abstracción mayor. El :" "keyword:`!pass` se ignora silenciosamente::" -#: ../Doc/tutorial/controlflow.rst:251 +#: ../Doc/tutorial/controlflow.rst:258 msgid ":keyword:`!match` Statements" msgstr "La sentencia :keyword:`!match`" -#: ../Doc/tutorial/controlflow.rst:253 +#: ../Doc/tutorial/controlflow.rst:260 msgid "" "A :keyword:`match` statement takes an expression and compares its value to " "successive patterns given as one or more case blocks. This is superficially " @@ -296,13 +313,13 @@ msgstr "" "y también es capaz de extraer componentes (elementos de una secuencia o " "atributos de un objeto) de un valor y ponerlos en variables." -#: ../Doc/tutorial/controlflow.rst:261 +#: ../Doc/tutorial/controlflow.rst:268 msgid "" "The simplest form compares a subject value against one or more literals::" msgstr "" "La forma más simple compara un valor expuesto con uno o más literales::" -#: ../Doc/tutorial/controlflow.rst:274 +#: ../Doc/tutorial/controlflow.rst:281 msgid "" "Note the last block: the \"variable name\" ``_`` acts as a *wildcard* and " "never fails to match. If no case matches, none of the branches is executed." @@ -311,13 +328,13 @@ msgstr "" "*comodín* y nunca fracasa la coincidencia. Si ninguno de los casos ``case`` " "coincide, ninguna de las ramas es ejecutada." -#: ../Doc/tutorial/controlflow.rst:277 +#: ../Doc/tutorial/controlflow.rst:284 msgid "" "You can combine several literals in a single pattern using ``|`` (\"or\")::" msgstr "" "Se pueden combinar varios literales en un solo patrón usando ``|`` (\"o\")::" -#: ../Doc/tutorial/controlflow.rst:282 +#: ../Doc/tutorial/controlflow.rst:289 msgid "" "Patterns can look like unpacking assignments, and can be used to bind " "variables::" @@ -325,7 +342,7 @@ msgstr "" "Los patrones pueden también verse como asignaciones que desempaquetan, y " "pueden usarse para ligar variables::" -#: ../Doc/tutorial/controlflow.rst:298 +#: ../Doc/tutorial/controlflow.rst:305 msgid "" "Study that one carefully! The first pattern has two literals, and can be " "thought of as an extension of the literal pattern shown above. But the next " @@ -341,7 +358,7 @@ msgstr "" "patrón captura ambos elementos, lo que lo hace conceptualmente similar a la " "asignación que desempaqueta ``(x, y) = point``." -#: ../Doc/tutorial/controlflow.rst:305 +#: ../Doc/tutorial/controlflow.rst:312 msgid "" "If you are using classes to structure your data you can use the class name " "followed by an argument list resembling a constructor, but with the ability " @@ -351,7 +368,7 @@ msgstr "" "la clase seguida de una lista de argumentos similar a la de un constructor, " "pero con la capacidad de capturar atributos en variables::" -#: ../Doc/tutorial/controlflow.rst:326 +#: ../Doc/tutorial/controlflow.rst:334 msgid "" "You can use positional parameters with some builtin classes that provide an " "ordering for their attributes (e.g. dataclasses). You can also define a " @@ -367,7 +384,7 @@ msgstr "" "(\"x\", \"y\"), los siguientes patrones son todos equivalentes entre sí (y " "todos ligan el atributo ``y`` a la variable ``var``)::" -#: ../Doc/tutorial/controlflow.rst:337 +#: ../Doc/tutorial/controlflow.rst:345 msgid "" "A recommended way to read patterns is to look at them as an extended form of " "what you would put on the left of an assignment, to understand which " @@ -385,15 +402,16 @@ msgstr "" "(los ``x=`` e ``y=`` arriba) o nombres de clases (reconocidos por los " "\"(...)\" junto a ellos, como ``Point`` arriba)." -#: ../Doc/tutorial/controlflow.rst:344 +#: ../Doc/tutorial/controlflow.rst:352 +#, fuzzy msgid "" "Patterns can be arbitrarily nested. For example, if we have a short list of " -"points, we could match it like this::" +"Points, with ``__match_args__`` added, we could match it like this::" msgstr "" "Los patrones pueden anidarse arbitrariamente. Por ejemplo, si tuviéramos una " "lista corta de puntos, podríamos aplicar match así::" -#: ../Doc/tutorial/controlflow.rst:359 +#: ../Doc/tutorial/controlflow.rst:373 msgid "" "We can add an ``if`` clause to a pattern, known as a \"guard\". If the " "guard is false, ``match`` goes on to try the next case block. Note that " @@ -404,11 +422,11 @@ msgstr "" "Obsérvese que la captura de valores sucede antes de que la guarda sea " "evaluada::" -#: ../Doc/tutorial/controlflow.rst:369 +#: ../Doc/tutorial/controlflow.rst:383 msgid "Several other key features of this statement:" msgstr "Algunas otras propiedades importantes de esta sentencia:" -#: ../Doc/tutorial/controlflow.rst:371 +#: ../Doc/tutorial/controlflow.rst:385 msgid "" "Like unpacking assignments, tuple and list patterns have exactly the same " "meaning and actually match arbitrary sequences. An important exception is " @@ -419,7 +437,7 @@ msgstr "" "cualquier secuencia arbitraria. Una excepción importante es que no coinciden " "ni con iteradores ni con cadenas de caracteres." -#: ../Doc/tutorial/controlflow.rst:375 +#: ../Doc/tutorial/controlflow.rst:389 msgid "" "Sequence patterns support extended unpacking: ``[x, y, *rest]`` and ``(x, y, " "*rest)`` work similar to unpacking assignments. The name after ``*`` may " @@ -432,7 +450,7 @@ msgstr "" "``_``, con lo cual ``(x, y, *_)`` coincide con cualquier secuencia de al " "menos dos elementos, sin ligar ninguno de los demás elementos." -#: ../Doc/tutorial/controlflow.rst:380 +#: ../Doc/tutorial/controlflow.rst:394 msgid "" "Mapping patterns: ``{\"bandwidth\": b, \"latency\": l}`` captures the " "``\"bandwidth\"`` and ``\"latency\"`` values from a dictionary. Unlike " @@ -445,11 +463,11 @@ msgstr "" "ignoradas. Puede usarse un desempaquetado como ``**otros`` . (Aunque ``**_`` " "sería redundante, con lo cual no está permitido)" -#: ../Doc/tutorial/controlflow.rst:385 +#: ../Doc/tutorial/controlflow.rst:399 msgid "Subpatterns may be captured using the ``as`` keyword::" msgstr "Pueden capturarse subpatrones usando la palabra clave ``as``::" -#: ../Doc/tutorial/controlflow.rst:389 +#: ../Doc/tutorial/controlflow.rst:403 msgid "" "will capture the second element of the input as ``p2`` (as long as the input " "is a sequence of two points)" @@ -457,7 +475,7 @@ msgstr "" "capturará el segundo elemento de la entrada en ``p2`` (siempre y cuando la " "entrada sea una secuencia de dos puntos)" -#: ../Doc/tutorial/controlflow.rst:392 +#: ../Doc/tutorial/controlflow.rst:406 msgid "" "Most literals are compared by equality, however the singletons ``True``, " "``False`` and ``None`` are compared by identity." @@ -465,7 +483,7 @@ msgstr "" "La mayoría de los literales se comparan por igualdad, pero las instancias " "únicas ``True``, ``False`` y ``None`` se comparan por identidad." -#: ../Doc/tutorial/controlflow.rst:395 +#: ../Doc/tutorial/controlflow.rst:409 msgid "" "Patterns may use named constants. These must be dotted names to prevent " "them from being interpreted as capture variable::" @@ -473,7 +491,7 @@ msgstr "" "En un patrón pueden usarse constantes con nombres. Los nombres deben tener " "puntos para impedir que sean interpretados como variables a capturar::" -#: ../Doc/tutorial/controlflow.rst:414 +#: ../Doc/tutorial/controlflow.rst:428 msgid "" "For a more detailed explanation and additional examples, you can look into :" "pep:`636` which is written in a tutorial format." @@ -481,11 +499,11 @@ msgstr "" "Para una explicación más detallada y más ejemplos, puede leerse :pep:`636` " "que está escrita en un formato de tutorial." -#: ../Doc/tutorial/controlflow.rst:420 +#: ../Doc/tutorial/controlflow.rst:434 msgid "Defining Functions" msgstr "Definir funciones" -#: ../Doc/tutorial/controlflow.rst:422 +#: ../Doc/tutorial/controlflow.rst:436 msgid "" "We can create a function that writes the Fibonacci series to an arbitrary " "boundary::" @@ -493,7 +511,7 @@ msgstr "" "Podemos crear una función que escriba la serie de Fibonacci hasta un límite " "determinado::" -#: ../Doc/tutorial/controlflow.rst:442 +#: ../Doc/tutorial/controlflow.rst:456 msgid "" "The keyword :keyword:`def` introduces a function *definition*. It must be " "followed by the function name and the parenthesized list of formal " @@ -505,7 +523,7 @@ msgstr "" "paréntesis. Las sentencias que forman el cuerpo de la función empiezan en la " "línea siguiente, y deben estar con sangría." -#: ../Doc/tutorial/controlflow.rst:447 +#: ../Doc/tutorial/controlflow.rst:461 msgid "" "The first statement of the function body can optionally be a string literal; " "this string literal is the function's documentation string, or :dfn:" @@ -524,7 +542,7 @@ msgstr "" "es una buena práctica incluir ``docstrings`` en el código que escribes, así " "que acostúmbrate a hacerlo." -#: ../Doc/tutorial/controlflow.rst:454 +#: ../Doc/tutorial/controlflow.rst:468 msgid "" "The *execution* of a function introduces a new symbol table used for the " "local variables of the function. More precisely, all variable assignments " @@ -549,7 +567,7 @@ msgstr "" "`global`, o mediante la sentencia :keyword:`nonlocal` para variables de " "funciones que engloban la función local), aunque si pueden ser referenciadas." -#: ../Doc/tutorial/controlflow.rst:465 +#: ../Doc/tutorial/controlflow.rst:479 msgid "" "The actual parameters (arguments) to a function call are introduced in the " "local symbol table of the called function when it is called; thus, arguments " @@ -565,7 +583,7 @@ msgstr "" "Cuando una función llama a otra función, o se llama a sí misma de forma " "recursiva, se crea una nueva tabla de símbolos locales para esa llamada." -#: ../Doc/tutorial/controlflow.rst:472 +#: ../Doc/tutorial/controlflow.rst:486 msgid "" "A function definition associates the function name with the function object " "in the current symbol table. The interpreter recognizes the object pointed " @@ -578,7 +596,7 @@ msgstr "" "nombres también pueden apuntar a ese mismo objeto de función y también se " "pueden usar para acceder a la función:" -#: ../Doc/tutorial/controlflow.rst:483 +#: ../Doc/tutorial/controlflow.rst:497 msgid "" "Coming from other languages, you might object that ``fib`` is not a function " "but a procedure since it doesn't return a value. In fact, even functions " @@ -596,7 +614,7 @@ msgstr "" "va a ser el único valor escrito. Puede verlo si realmente lo desea " "utilizando :func:`print`::" -#: ../Doc/tutorial/controlflow.rst:494 +#: ../Doc/tutorial/controlflow.rst:508 msgid "" "It is simple to write a function that returns a list of the numbers of the " "Fibonacci series, instead of printing it::" @@ -604,13 +622,13 @@ msgstr "" "Es simple escribir una función que retorne una lista con los números de la " "serie de Fibonacci en lugar de imprimirlos::" -#: ../Doc/tutorial/controlflow.rst:510 +#: ../Doc/tutorial/controlflow.rst:524 msgid "This example, as usual, demonstrates some new Python features:" msgstr "" "Este ejemplo, como es usual, demuestra algunas características más de " "Python::" -#: ../Doc/tutorial/controlflow.rst:512 +#: ../Doc/tutorial/controlflow.rst:526 msgid "" "The :keyword:`return` statement returns with a value from a function. :" "keyword:`!return` without an expression argument returns ``None``. Falling " @@ -620,7 +638,8 @@ msgstr "" "return` sin una expresión como argumento retorna ``None``. Si se alcanza el " "final de una función, también se retorna ``None``." -#: ../Doc/tutorial/controlflow.rst:516 +#: ../Doc/tutorial/controlflow.rst:530 +#, fuzzy msgid "" "The statement ``result.append(a)`` calls a *method* of the list object " "``result``. A method is a function that 'belongs' to an object and is named " @@ -629,9 +648,10 @@ msgid "" "the object's type. Different types define different methods. Methods of " "different types may have the same name without causing ambiguity. (It is " "possible to define your own object types and methods, using *classes*, see :" -"ref:`tut-classes`) The method :meth:`append` shown in the example is defined " -"for list objects; it adds a new element at the end of the list. In this " -"example it is equivalent to ``result = result + [a]``, but more efficient." +"ref:`tut-classes`) The method :meth:`!append` shown in the example is " +"defined for list objects; it adds a new element at the end of the list. In " +"this example it is equivalent to ``result = result + [a]``, but more " +"efficient." msgstr "" "La sentencia ``result.append(a)`` llama a un método del objeto lista " "``result``. Un método es una función que 'pertenece' a un objeto y se nombra " @@ -644,11 +664,11 @@ msgstr "" "para objetos lista; añade un nuevo elemento al final de la lista. En este " "ejemplo es equivalente a ``result = result + [a]``, pero más eficiente." -#: ../Doc/tutorial/controlflow.rst:531 +#: ../Doc/tutorial/controlflow.rst:545 msgid "More on Defining Functions" msgstr "Más sobre definición de funciones" -#: ../Doc/tutorial/controlflow.rst:533 +#: ../Doc/tutorial/controlflow.rst:547 msgid "" "It is also possible to define functions with a variable number of arguments. " "There are three forms, which can be combined." @@ -656,11 +676,11 @@ msgstr "" "También es posible definir funciones con un número variable de argumentos. " "Hay tres formas que pueden ser combinadas." -#: ../Doc/tutorial/controlflow.rst:540 +#: ../Doc/tutorial/controlflow.rst:554 msgid "Default Argument Values" msgstr "Argumentos con valores por omisión" -#: ../Doc/tutorial/controlflow.rst:542 +#: ../Doc/tutorial/controlflow.rst:556 msgid "" "The most useful form is to specify a default value for one or more " "arguments. This creates a function that can be called with fewer arguments " @@ -670,18 +690,18 @@ msgstr "" "argumentos. Esto crea una función que puede ser llamada con menos argumentos " "que los que permite. Por ejemplo::" -#: ../Doc/tutorial/controlflow.rst:558 +#: ../Doc/tutorial/controlflow.rst:572 msgid "This function can be called in several ways:" msgstr "Esta función puede ser llamada de distintas maneras::" -#: ../Doc/tutorial/controlflow.rst:560 +#: ../Doc/tutorial/controlflow.rst:574 msgid "" "giving only the mandatory argument: ``ask_ok('Do you really want to quit?')``" msgstr "" "pasando sólo el argumento obligatorio: ``ask_ok('Do you really want to " "quit?')``" -#: ../Doc/tutorial/controlflow.rst:562 +#: ../Doc/tutorial/controlflow.rst:576 msgid "" "giving one of the optional arguments: ``ask_ok('OK to overwrite the file?', " "2)``" @@ -689,7 +709,7 @@ msgstr "" "pasando uno de los argumentos opcionales: ``ask_ok('OK to overwrite the " "file?', 2)``" -#: ../Doc/tutorial/controlflow.rst:564 +#: ../Doc/tutorial/controlflow.rst:578 msgid "" "or even giving all arguments: ``ask_ok('OK to overwrite the file?', 2, 'Come " "on, only yes or no!')``" @@ -697,7 +717,7 @@ msgstr "" "o pasando todos los argumentos: ``ask_ok('OK to overwrite the file?', 2, " "'Come on, only yes or no!')``" -#: ../Doc/tutorial/controlflow.rst:567 +#: ../Doc/tutorial/controlflow.rst:581 msgid "" "This example also introduces the :keyword:`in` keyword. This tests whether " "or not a sequence contains a certain value." @@ -705,7 +725,7 @@ msgstr "" "Este ejemplo también introduce la palabra reservada :keyword:`in`, la cual " "prueba si una secuencia contiene o no un determinado valor." -#: ../Doc/tutorial/controlflow.rst:570 +#: ../Doc/tutorial/controlflow.rst:584 msgid "" "The default values are evaluated at the point of function definition in the " "*defining* scope, so that ::" @@ -713,11 +733,11 @@ msgstr "" "Los valores por omisión son evaluados en el momento de la definición de la " "función en el ámbito de la definición, entonces::" -#: ../Doc/tutorial/controlflow.rst:581 +#: ../Doc/tutorial/controlflow.rst:595 msgid "will print ``5``." msgstr "imprimirá ``5``." -#: ../Doc/tutorial/controlflow.rst:583 +#: ../Doc/tutorial/controlflow.rst:597 msgid "" "**Important warning:** The default value is evaluated only once. This makes " "a difference when the default is a mutable object such as a list, " @@ -730,11 +750,11 @@ msgstr "" "ejemplo, la siguiente función acumula los argumentos que se le pasan en " "subsiguientes llamadas::" -#: ../Doc/tutorial/controlflow.rst:596 +#: ../Doc/tutorial/controlflow.rst:610 msgid "This will print ::" msgstr "Imprimirá ::" -#: ../Doc/tutorial/controlflow.rst:602 +#: ../Doc/tutorial/controlflow.rst:616 msgid "" "If you don't want the default to be shared between subsequent calls, you can " "write the function like this instead::" @@ -742,11 +762,11 @@ msgstr "" "Si no se quiere que el valor por omisión sea compartido entre subsiguientes " "llamadas, se pueden escribir la función así::" -#: ../Doc/tutorial/controlflow.rst:615 +#: ../Doc/tutorial/controlflow.rst:629 msgid "Keyword Arguments" msgstr "Palabras claves como argumentos" -#: ../Doc/tutorial/controlflow.rst:617 +#: ../Doc/tutorial/controlflow.rst:631 msgid "" "Functions can also be called using :term:`keyword arguments ` of the form ``kwarg=value``. For instance, the following " @@ -756,7 +776,7 @@ msgstr "" "palabras clave ` (o argumentos nombrados) de la forma " "``kwarg=value``. Por ejemplo, la siguiente función::" -#: ../Doc/tutorial/controlflow.rst:626 +#: ../Doc/tutorial/controlflow.rst:640 msgid "" "accepts one required argument (``voltage``) and three optional arguments " "(``state``, ``action``, and ``type``). This function can be called in any " @@ -766,11 +786,11 @@ msgstr "" "opcionales (``state``, ``action``, y ``type``). Esta función puede llamarse " "de cualquiera de las siguientes maneras::" -#: ../Doc/tutorial/controlflow.rst:637 +#: ../Doc/tutorial/controlflow.rst:651 msgid "but all the following calls would be invalid::" msgstr "...pero estas otras llamadas serían todas inválidas::" -#: ../Doc/tutorial/controlflow.rst:644 +#: ../Doc/tutorial/controlflow.rst:658 msgid "" "In a function call, keyword arguments must follow positional arguments. All " "the keyword arguments passed must match one of the arguments accepted by the " @@ -789,7 +809,7 @@ msgstr "" "Ningún argumento puede recibir más de un valor al mismo tiempo. Aquí hay un " "ejemplo que falla debido a esta restricción::" -#: ../Doc/tutorial/controlflow.rst:660 +#: ../Doc/tutorial/controlflow.rst:674 msgid "" "When a final formal parameter of the form ``**name`` is present, it receives " "a dictionary (see :ref:`typesmapping`) containing all keyword arguments " @@ -808,15 +828,15 @@ msgstr "" "parámetros formales. (``*nombre`` debe ocurrir antes de ``**nombre``). Por " "ejemplo, si definimos una función así::" -#: ../Doc/tutorial/controlflow.rst:677 +#: ../Doc/tutorial/controlflow.rst:691 msgid "It could be called like this::" msgstr "Puede ser llamada así::" -#: ../Doc/tutorial/controlflow.rst:685 +#: ../Doc/tutorial/controlflow.rst:699 msgid "and of course it would print:" msgstr "...y por supuesto imprimirá::" -#: ../Doc/tutorial/controlflow.rst:698 +#: ../Doc/tutorial/controlflow.rst:712 msgid "" "Note that the order in which the keyword arguments are printed is guaranteed " "to match the order in which they were provided in the function call." @@ -825,11 +845,11 @@ msgstr "" "está garantizado para coincidir con el orden en el cual fueron provistos en " "la llamada a la función." -#: ../Doc/tutorial/controlflow.rst:702 +#: ../Doc/tutorial/controlflow.rst:716 msgid "Special parameters" msgstr "Parámetros especiales" -#: ../Doc/tutorial/controlflow.rst:704 +#: ../Doc/tutorial/controlflow.rst:718 msgid "" "By default, arguments may be passed to a Python function either by position " "or explicitly by keyword. For readability and performance, it makes sense to " @@ -844,11 +864,11 @@ msgstr "" "determinar si los argumentos se deben enviar por posición, por posición o " "clave, o por clave." -#: ../Doc/tutorial/controlflow.rst:710 +#: ../Doc/tutorial/controlflow.rst:724 msgid "A function definition may look like:" msgstr "La definición de una función puede ser como la siguiente:" -#: ../Doc/tutorial/controlflow.rst:721 +#: ../Doc/tutorial/controlflow.rst:735 msgid "" "where ``/`` and ``*`` are optional. If used, these symbols indicate the kind " "of parameter by how the arguments may be passed to the function: positional-" @@ -861,11 +881,11 @@ msgstr "" "(*positional-or-keyword*) y solo por clave (*keyword-only*). Parámetros por " "clave pueden también denominarse parámetros por nombre o nombrados." -#: ../Doc/tutorial/controlflow.rst:728 +#: ../Doc/tutorial/controlflow.rst:742 msgid "Positional-or-Keyword Arguments" msgstr "Argumentos posicionales o de palabras claves" -#: ../Doc/tutorial/controlflow.rst:730 +#: ../Doc/tutorial/controlflow.rst:744 msgid "" "If ``/`` and ``*`` are not present in the function definition, arguments may " "be passed to a function by position or by keyword." @@ -874,11 +894,11 @@ msgstr "" "parámetros pueden ser pasados a una función posicionalmente o por palabra " "clave." -#: ../Doc/tutorial/controlflow.rst:735 +#: ../Doc/tutorial/controlflow.rst:749 msgid "Positional-Only Parameters" msgstr "Parámetros únicamente posicionales" -#: ../Doc/tutorial/controlflow.rst:737 +#: ../Doc/tutorial/controlflow.rst:751 msgid "" "Looking at this in a bit more detail, it is possible to mark certain " "parameters as *positional-only*. If *positional-only*, the parameters' order " @@ -896,7 +916,7 @@ msgstr "" "parámetros únicamente posicionales del resto. Si no existe una ``/`` en la " "definición de la función, no existen parámetros únicamente posicionales." -#: ../Doc/tutorial/controlflow.rst:745 +#: ../Doc/tutorial/controlflow.rst:759 msgid "" "Parameters following the ``/`` may be *positional-or-keyword* or *keyword-" "only*." @@ -904,11 +924,11 @@ msgstr "" "Los parámetros luego de una ``/`` pueden ser *únicamente posicionales* o " "*unicamente de palabras claves*." -#: ../Doc/tutorial/controlflow.rst:749 +#: ../Doc/tutorial/controlflow.rst:763 msgid "Keyword-Only Arguments" msgstr "Argumentos únicamente de palabras clave" -#: ../Doc/tutorial/controlflow.rst:751 +#: ../Doc/tutorial/controlflow.rst:765 msgid "" "To mark parameters as *keyword-only*, indicating the parameters must be " "passed by keyword argument, place an ``*`` in the arguments list just before " @@ -919,11 +939,11 @@ msgstr "" "la lista de argumentos antes del primer parámetro *únicamente de palabras " "clave*." -#: ../Doc/tutorial/controlflow.rst:757 +#: ../Doc/tutorial/controlflow.rst:771 msgid "Function Examples" msgstr "Ejemplos de Funciones" -#: ../Doc/tutorial/controlflow.rst:759 +#: ../Doc/tutorial/controlflow.rst:773 msgid "" "Consider the following example function definitions paying close attention " "to the markers ``/`` and ``*``::" @@ -931,7 +951,7 @@ msgstr "" "Considere el siguiente ejemplo de definiciones de funciones prestando " "especial atención a los marcadores ``/`` y ``*``::" -#: ../Doc/tutorial/controlflow.rst:775 +#: ../Doc/tutorial/controlflow.rst:789 msgid "" "The first function definition, ``standard_arg``, the most familiar form, " "places no restrictions on the calling convention and arguments may be passed " @@ -941,7 +961,7 @@ msgstr "" "indica ninguna restricción en las condiciones para llamarla y los parámetros " "deben ser pasados por posición o utilizando palabras clave::" -#: ../Doc/tutorial/controlflow.rst:785 +#: ../Doc/tutorial/controlflow.rst:799 msgid "" "The second function ``pos_only_arg`` is restricted to only use positional " "parameters as there is a ``/`` in the function definition::" @@ -950,7 +970,7 @@ msgstr "" "parámetros posicionales ya que existe una ``/`` en la definición de la " "función::" -#: ../Doc/tutorial/controlflow.rst:796 +#: ../Doc/tutorial/controlflow.rst:810 msgid "" "The third function ``kwd_only_args`` only allows keyword arguments as " "indicated by a ``*`` in the function definition::" @@ -958,14 +978,14 @@ msgstr "" "La tercer función ``kwd_only_args`` solo permite parámetros con palabras " "clave, indicado por un ``*`` en la definición de la función::" -#: ../Doc/tutorial/controlflow.rst:807 +#: ../Doc/tutorial/controlflow.rst:821 msgid "" "And the last uses all three calling conventions in the same function " "definition::" msgstr "" "La última utiliza las tres convenciones en una misma definición de función::" -#: ../Doc/tutorial/controlflow.rst:827 +#: ../Doc/tutorial/controlflow.rst:841 msgid "" "Finally, consider this function definition which has a potential collision " "between the positional argument ``name`` and ``**kwds`` which has ``name`` " @@ -975,7 +995,7 @@ msgstr "" "potencial entre los parámetros posicionales ``name`` y ``**kwds`` que " "incluye ``name`` como una clave::" -#: ../Doc/tutorial/controlflow.rst:832 +#: ../Doc/tutorial/controlflow.rst:846 msgid "" "There is no possible call that will make it return ``True`` as the keyword " "``'name'`` will always bind to the first parameter. For example::" @@ -983,7 +1003,7 @@ msgstr "" "No hay una llamada posible que lo haga retornar ``True`` ya que la palabra " "clave ``'name'`` siempre se vinculará al primer parámetro. Por ejemplo::" -#: ../Doc/tutorial/controlflow.rst:841 +#: ../Doc/tutorial/controlflow.rst:855 msgid "" "But using ``/`` (positional only arguments), it is possible since it allows " "``name`` as a positional argument and ``'name'`` as a key in the keyword " @@ -993,7 +1013,7 @@ msgstr "" "que permite utilizar ``name`` como un parámetro posicional y ``name`` como " "un parámetro de palabras clave::" -#: ../Doc/tutorial/controlflow.rst:848 +#: ../Doc/tutorial/controlflow.rst:863 msgid "" "In other words, the names of positional-only parameters can be used in " "``**kwds`` without ambiguity." @@ -1001,11 +1021,11 @@ msgstr "" "En otras palabras, los nombres de parámetros únicamente posicionales pueden " "ser utilizados en ``**kwds`` sin ambigüedad." -#: ../Doc/tutorial/controlflow.rst:853 +#: ../Doc/tutorial/controlflow.rst:868 msgid "Recap" msgstr "Resumen" -#: ../Doc/tutorial/controlflow.rst:855 +#: ../Doc/tutorial/controlflow.rst:870 msgid "" "The use case will determine which parameters to use in the function " "definition::" @@ -1013,11 +1033,11 @@ msgstr "" "El caso de uso determinará qué parámetros utilizar en una definición de " "función::" -#: ../Doc/tutorial/controlflow.rst:859 +#: ../Doc/tutorial/controlflow.rst:874 msgid "As guidance:" msgstr "A modo de guía:" -#: ../Doc/tutorial/controlflow.rst:861 +#: ../Doc/tutorial/controlflow.rst:876 msgid "" "Use positional-only if you want the name of the parameters to not be " "available to the user. This is useful when parameter names have no real " @@ -1031,7 +1051,7 @@ msgstr "" "cuando una función es llamada o si necesita tomar algunos parámetros " "posicionales y palabras claves arbitrarias." -#: ../Doc/tutorial/controlflow.rst:866 +#: ../Doc/tutorial/controlflow.rst:881 msgid "" "Use keyword-only when names have meaning and the function definition is more " "understandable by being explicit with names or you want to prevent users " @@ -1042,7 +1062,7 @@ msgstr "" "entendible usando nombres explícitos o cuando desea evitar que los usuarios " "dependan de la posición de los parámetros que se pasan." -#: ../Doc/tutorial/controlflow.rst:869 +#: ../Doc/tutorial/controlflow.rst:884 msgid "" "For an API, use positional-only to prevent breaking API changes if the " "parameter's name is modified in the future." @@ -1050,11 +1070,11 @@ msgstr "" "En el caso de una API, use solo posicional para evitar que se rompan los " "cambios de la API si el nombre del parámetro se modifica en el futuro." -#: ../Doc/tutorial/controlflow.rst:875 +#: ../Doc/tutorial/controlflow.rst:890 msgid "Arbitrary Argument Lists" msgstr "Listas de argumentos arbitrarios" -#: ../Doc/tutorial/controlflow.rst:880 +#: ../Doc/tutorial/controlflow.rst:895 msgid "" "Finally, the least frequently used option is to specify that a function can " "be called with an arbitrary number of arguments. These arguments will be " @@ -1067,7 +1087,7 @@ msgstr "" "número variable de argumentos, cero o más argumentos normales pueden estar " "presentes.::" -#: ../Doc/tutorial/controlflow.rst:889 +#: ../Doc/tutorial/controlflow.rst:904 msgid "" "Normally, these *variadic* arguments will be last in the list of formal " "parameters, because they scoop up all remaining input arguments that are " @@ -1081,11 +1101,11 @@ msgstr "" "'sólo de palabra clave', o sea que sólo se pueden usar como argumentos " "nombrados y no como posicionales. ::" -#: ../Doc/tutorial/controlflow.rst:906 +#: ../Doc/tutorial/controlflow.rst:921 msgid "Unpacking Argument Lists" msgstr "Desempaquetando una lista de argumentos" -#: ../Doc/tutorial/controlflow.rst:908 +#: ../Doc/tutorial/controlflow.rst:923 msgid "" "The reverse situation occurs when the arguments are already in a list or " "tuple but need to be unpacked for a function call requiring separate " @@ -1102,7 +1122,7 @@ msgstr "" "función con el operador ``*`` para desempaquetar argumentos desde una lista " "o una tupla::" -#: ../Doc/tutorial/controlflow.rst:924 +#: ../Doc/tutorial/controlflow.rst:939 msgid "" "In the same fashion, dictionaries can deliver keyword arguments with the " "``**``\\ -operator::" @@ -1110,11 +1130,11 @@ msgstr "" "Del mismo modo, los diccionarios pueden entregar argumentos nombrados con el " "operador ``**``::" -#: ../Doc/tutorial/controlflow.rst:940 +#: ../Doc/tutorial/controlflow.rst:955 msgid "Lambda Expressions" msgstr "Expresiones lambda" -#: ../Doc/tutorial/controlflow.rst:942 +#: ../Doc/tutorial/controlflow.rst:957 msgid "" "Small anonymous functions can be created with the :keyword:`lambda` keyword. " "This function returns the sum of its two arguments: ``lambda a, b: a+b``. " @@ -1133,7 +1153,7 @@ msgstr "" "funciones anidadas, las funciones lambda pueden hacer referencia a variables " "desde el ámbito que la contiene::" -#: ../Doc/tutorial/controlflow.rst:959 +#: ../Doc/tutorial/controlflow.rst:974 msgid "" "The above example uses a lambda expression to return a function. Another " "use is to pass a small function as an argument::" @@ -1141,11 +1161,11 @@ msgstr "" "El ejemplo anterior muestra el uso de una expresión lambda para retornar una " "función. Otro uso es para pasar pequeñas funciones como argumentos ::" -#: ../Doc/tutorial/controlflow.rst:971 +#: ../Doc/tutorial/controlflow.rst:986 msgid "Documentation Strings" msgstr "Cadenas de texto de documentación" -#: ../Doc/tutorial/controlflow.rst:978 +#: ../Doc/tutorial/controlflow.rst:993 msgid "" "Here are some conventions about the content and formatting of documentation " "strings." @@ -1153,7 +1173,7 @@ msgstr "" "Acá hay algunas convenciones sobre el contenido y formato de las cadenas de " "texto de documentación." -#: ../Doc/tutorial/controlflow.rst:981 +#: ../Doc/tutorial/controlflow.rst:996 msgid "" "The first line should always be a short, concise summary of the object's " "purpose. For brevity, it should not explicitly state the object's name or " @@ -1167,7 +1187,7 @@ msgstr "" "el nombre es un verbo que describe el funcionamiento de la función). Esta " "línea debe empezar con una letra mayúscula y terminar con un punto." -#: ../Doc/tutorial/controlflow.rst:987 +#: ../Doc/tutorial/controlflow.rst:1002 msgid "" "If there are more lines in the documentation string, the second line should " "be blank, visually separating the summary from the rest of the description. " @@ -1179,7 +1199,7 @@ msgstr "" "descripción. Las líneas siguientes deben ser uno o más párrafos describiendo " "las convenciones para llamar al objeto, efectos secundarios, etc." -#: ../Doc/tutorial/controlflow.rst:992 +#: ../Doc/tutorial/controlflow.rst:1007 msgid "" "The Python parser does not strip indentation from multi-line string literals " "in Python, so tools that process documentation have to strip indentation if " @@ -1207,15 +1227,15 @@ msgstr "" "espacios en blanco debe ser verificada luego de la expansión de tabuladores " "(a 8 espacios, normalmente)." -#: ../Doc/tutorial/controlflow.rst:1004 +#: ../Doc/tutorial/controlflow.rst:1019 msgid "Here is an example of a multi-line docstring::" msgstr "Este es un ejemplo de un ``docstring`` multi-línea::" -#: ../Doc/tutorial/controlflow.rst:1022 +#: ../Doc/tutorial/controlflow.rst:1037 msgid "Function Annotations" msgstr "Anotación de funciones" -#: ../Doc/tutorial/controlflow.rst:1030 +#: ../Doc/tutorial/controlflow.rst:1045 msgid "" ":ref:`Function annotations ` are completely optional metadata " "information about the types used by user-defined functions (see :pep:`3107` " @@ -1225,10 +1245,11 @@ msgstr "" "opcional sobre los tipos usadas en funciones definidas por el usuario (ver :" "pep:`3107` y :pep:`484` para más información)." -#: ../Doc/tutorial/controlflow.rst:1034 +#: ../Doc/tutorial/controlflow.rst:1049 +#, fuzzy msgid "" -":term:`Annotations ` are stored in the :attr:" -"`__annotations__` attribute of the function as a dictionary and have no " +":term:`Annotations ` are stored in the :attr:`!" +"__annotations__` attribute of the function as a dictionary and have no " "effect on any other part of the function. Parameter annotations are defined " "by a colon after the parameter name, followed by an expression evaluating to " "the value of the annotation. Return annotations are defined by a literal ``-" @@ -1246,11 +1267,11 @@ msgstr "" "keyword:`def`. El siguiente ejemplo tiene un argumento posicional, uno " "nombrado, y el valor de retorno anotado::" -#: ../Doc/tutorial/controlflow.rst:1056 +#: ../Doc/tutorial/controlflow.rst:1071 msgid "Intermezzo: Coding Style" msgstr "Intermezzo: Estilo de programación" -#: ../Doc/tutorial/controlflow.rst:1061 +#: ../Doc/tutorial/controlflow.rst:1076 msgid "" "Now that you are about to write longer, more complex pieces of Python, it is " "a good time to talk about *coding style*. Most languages can be written (or " @@ -1265,7 +1286,7 @@ msgstr "" "código sea más fácil de leer por otros es siempre una buena idea, y adoptar " "un buen estilo de programación ayuda tremendamente a lograrlo." -#: ../Doc/tutorial/controlflow.rst:1067 +#: ../Doc/tutorial/controlflow.rst:1082 msgid "" "For Python, :pep:`8` has emerged as the style guide that most projects " "adhere to; it promotes a very readable and eye-pleasing coding style. Every " @@ -1277,11 +1298,11 @@ msgstr "" "visualmente agradable. Todos los desarrolladores Python deben leerlo en " "algún momento; aquí están extraídos los puntos más importantes::" -#: ../Doc/tutorial/controlflow.rst:1072 +#: ../Doc/tutorial/controlflow.rst:1087 msgid "Use 4-space indentation, and no tabs." msgstr "Usar sangrías de 4 espacios, no tabuladores." -#: ../Doc/tutorial/controlflow.rst:1074 +#: ../Doc/tutorial/controlflow.rst:1089 msgid "" "4 spaces are a good compromise between small indentation (allows greater " "nesting depth) and large indentation (easier to read). Tabs introduce " @@ -1291,11 +1312,11 @@ msgstr "" "nivel de sangrado)y una sangría grande (más fácil de leer). Los tabuladores " "introducen confusión y es mejor dejarlos de lado." -#: ../Doc/tutorial/controlflow.rst:1078 +#: ../Doc/tutorial/controlflow.rst:1093 msgid "Wrap lines so that they don't exceed 79 characters." msgstr "Recortar las líneas para que no superen los 79 caracteres." -#: ../Doc/tutorial/controlflow.rst:1080 +#: ../Doc/tutorial/controlflow.rst:1095 msgid "" "This helps users with small displays and makes it possible to have several " "code files side-by-side on larger displays." @@ -1303,7 +1324,7 @@ msgstr "" "Esto ayuda a los usuarios con pantallas pequeñas y hace posible tener varios " "archivos de código abiertos, uno al lado del otro, en pantallas grandes." -#: ../Doc/tutorial/controlflow.rst:1083 +#: ../Doc/tutorial/controlflow.rst:1098 msgid "" "Use blank lines to separate functions and classes, and larger blocks of code " "inside functions." @@ -1311,15 +1332,15 @@ msgstr "" "Usar líneas en blanco para separar funciones y clases, y bloques grandes de " "código dentro de funciones." -#: ../Doc/tutorial/controlflow.rst:1086 +#: ../Doc/tutorial/controlflow.rst:1101 msgid "When possible, put comments on a line of their own." msgstr "Cuando sea posible, poner comentarios en una sola línea." -#: ../Doc/tutorial/controlflow.rst:1088 +#: ../Doc/tutorial/controlflow.rst:1103 msgid "Use docstrings." msgstr "Usar ``docstrings``." -#: ../Doc/tutorial/controlflow.rst:1090 +#: ../Doc/tutorial/controlflow.rst:1105 msgid "" "Use spaces around operators and after commas, but not directly inside " "bracketing constructs: ``a = f(1, 2) + g(3, 4)``." @@ -1327,7 +1348,7 @@ msgstr "" "Usar espacios alrededor de operadores y luego de las comas, pero no " "directamente dentro de paréntesis: ``a = f(1, 2) + g(3, 4)``." -#: ../Doc/tutorial/controlflow.rst:1093 +#: ../Doc/tutorial/controlflow.rst:1108 msgid "" "Name your classes and functions consistently; the convention is to use " "``UpperCamelCase`` for classes and ``lowercase_with_underscores`` for " @@ -1340,7 +1361,7 @@ msgstr "" "argumento en los métodos (ver :ref:`tut-firstclasses` para más información " "sobre clases y métodos)." -#: ../Doc/tutorial/controlflow.rst:1098 +#: ../Doc/tutorial/controlflow.rst:1113 msgid "" "Don't use fancy encodings if your code is meant to be used in international " "environments. Python's default, UTF-8, or even plain ASCII work best in any " @@ -1350,7 +1371,7 @@ msgstr "" "internacionales. El default de Python, UTF-8, o incluso ASCII plano " "funcionan bien en la mayoría de los casos." -#: ../Doc/tutorial/controlflow.rst:1102 +#: ../Doc/tutorial/controlflow.rst:1117 msgid "" "Likewise, don't use non-ASCII characters in identifiers if there is only the " "slightest chance people speaking a different language will read or maintain " @@ -1360,11 +1381,11 @@ msgstr "" "hay incluso una pequeñísima chance de que gente que hable otro idioma tenga " "que leer o mantener el código." -#: ../Doc/tutorial/controlflow.rst:1108 +#: ../Doc/tutorial/controlflow.rst:1123 msgid "Footnotes" msgstr "Notas al pie" -#: ../Doc/tutorial/controlflow.rst:1109 +#: ../Doc/tutorial/controlflow.rst:1124 msgid "" "Actually, *call by object reference* would be a better description, since if " "a mutable object is passed, the caller will see any changes the callee makes " @@ -1374,3 +1395,84 @@ msgstr "" "descripción, ya que si se pasa un objeto mutable, quien realiza la llamada " "verá cualquier cambio que se realice sobre el mismo (por ejemplo ítems " "insertados en una lista)." + +#: ../Doc/tutorial/controlflow.rst:48 +msgid "statement" +msgstr "" + +#: ../Doc/tutorial/controlflow.rst:48 +msgid "for" +msgstr "" + +#: ../Doc/tutorial/controlflow.rst:451 ../Doc/tutorial/controlflow.rst:988 +#, fuzzy +msgid "documentation strings" +msgstr "Cadenas de texto de documentación" + +#: ../Doc/tutorial/controlflow.rst:451 ../Doc/tutorial/controlflow.rst:988 +#, fuzzy +msgid "docstrings" +msgstr "Usar ``docstrings``." + +#: ../Doc/tutorial/controlflow.rst:451 ../Doc/tutorial/controlflow.rst:988 +#, fuzzy +msgid "strings, documentation" +msgstr "Cadenas de texto de documentación" + +#: ../Doc/tutorial/controlflow.rst:892 +msgid "* (asterisk)" +msgstr "" + +#: ../Doc/tutorial/controlflow.rst:892 ../Doc/tutorial/controlflow.rst:936 +#, fuzzy +msgid "in function calls" +msgstr "Ejemplos de Funciones" + +#: ../Doc/tutorial/controlflow.rst:936 +msgid "**" +msgstr "" + +#: ../Doc/tutorial/controlflow.rst:1040 +#, fuzzy +msgid "function" +msgstr "Ejemplos de Funciones" + +#: ../Doc/tutorial/controlflow.rst:1040 +#, fuzzy +msgid "annotations" +msgstr "Anotación de funciones" + +#: ../Doc/tutorial/controlflow.rst:1040 +msgid "->" +msgstr "" + +#: ../Doc/tutorial/controlflow.rst:1040 +#, fuzzy +msgid "function annotations" +msgstr "Anotación de funciones" + +#: ../Doc/tutorial/controlflow.rst:1040 +msgid ": (colon)" +msgstr "" + +#: ../Doc/tutorial/controlflow.rst:1074 +msgid "coding" +msgstr "" + +#: ../Doc/tutorial/controlflow.rst:1074 +msgid "style" +msgstr "" + +#~ msgid "" +#~ "Loop statements may have an :keyword:`!else` clause; it is executed when " +#~ "the loop terminates through exhaustion of the iterable (with :keyword:" +#~ "`for`) or when the condition becomes false (with :keyword:`while`), but " +#~ "not when the loop is terminated by a :keyword:`break` statement. This is " +#~ "exemplified by the following loop, which searches for prime numbers::" +#~ msgstr "" +#~ "Las sentencias de bucle pueden tener una cláusula :keyword:`!else` que es " +#~ "ejecutada cuando el bucle termina, después de agotar el iterable (con :" +#~ "keyword:`for`) o cuando la condición se hace falsa (con :keyword:" +#~ "`while`), pero no cuando el bucle se termina con la sentencia :keyword:" +#~ "`break`. Se puede ver el ejemplo en el siguiente bucle, que busca números " +#~ "primos::" diff --git a/tutorial/datastructures.po b/tutorial/datastructures.po index 723c726196..e1e477cac1 100644 --- a/tutorial/datastructures.po +++ b/tutorial/datastructures.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-23 10:08-0300\n" "Last-Translator: Carlos A. Crespo \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/tutorial/datastructures.rst:5 msgid "Data Structures" @@ -144,10 +143,11 @@ msgid "An example that uses most of the list methods::" msgstr "Un ejemplo que usa la mayoría de los métodos de la lista::" #: ../Doc/tutorial/datastructures.rst:123 +#, fuzzy msgid "" "You might have noticed that methods like ``insert``, ``remove`` or ``sort`` " "that only modify the list have no return value printed -- they return the " -"default ``None``. [1]_ This is a design principle for all mutable data " +"default ``None``. [#]_ This is a design principle for all mutable data " "structures in Python." msgstr "" "Quizás hayas notado que métodos como ``insert``, ``remove`` o ``sort`` que " @@ -174,12 +174,13 @@ msgid "Using Lists as Stacks" msgstr "Usar listas como pilas" #: ../Doc/tutorial/datastructures.rst:144 +#, fuzzy msgid "" "The list methods make it very easy to use a list as a stack, where the last " "element added is the first element retrieved (\"last-in, first-out\"). To " -"add an item to the top of the stack, use :meth:`append`. To retrieve an " -"item from the top of the stack, use :meth:`pop` without an explicit index. " -"For example::" +"add an item to the top of the stack, use :meth:`~list.append`. To retrieve " +"an item from the top of the stack, use :meth:`~list.pop` without an explicit " +"index. For example::" msgstr "" "Los métodos de lista hacen que resulte muy fácil usar una lista como una " "pila, donde el último elemento añadido es el primer elemento retirado " @@ -356,11 +357,12 @@ msgid "The :keyword:`!del` statement" msgstr "La instrucción :keyword:`del`" #: ../Doc/tutorial/datastructures.rst:343 +#, fuzzy msgid "" "There is a way to remove an item from a list given its index instead of its " -"value: the :keyword:`del` statement. This differs from the :meth:`pop` " -"method which returns a value. The :keyword:`!del` statement can also be " -"used to remove slices from a list or clear the entire list (which we did " +"value: the :keyword:`del` statement. This differs from the :meth:`~list." +"pop` method which returns a value. The :keyword:`!del` statement can also " +"be used to remove slices from a list or clear the entire list (which we did " "earlier by assignment of an empty list to the slice). For example::" msgstr "" "Hay una manera de quitar un ítem de una lista dado su índice en lugar de su " @@ -530,6 +532,7 @@ msgid "Dictionaries" msgstr "Diccionarios" #: ../Doc/tutorial/datastructures.rst:496 +#, fuzzy msgid "" "Another useful data type built into Python is the *dictionary* (see :ref:" "`typesmapping`). Dictionaries are sometimes found in other languages as " @@ -540,7 +543,7 @@ msgid "" "tuple contains any mutable object either directly or indirectly, it cannot " "be used as a key. You can't use lists as keys, since lists can be modified " "in place using index assignments, slice assignments, or methods like :meth:" -"`append` and :meth:`extend`." +"`~list.append` and :meth:`~list.extend`." msgstr "" "Otro tipo de dato útil incluido en Python es el *diccionario* (ver :ref:" "`typesmapping`). Los diccionarios se encuentran a veces en otros lenguajes " @@ -628,9 +631,10 @@ msgid "Looping Techniques" msgstr "Técnicas de iteración" #: ../Doc/tutorial/datastructures.rst:569 +#, fuzzy msgid "" "When looping through dictionaries, the key and corresponding value can be " -"retrieved at the same time using the :meth:`items` method. ::" +"retrieved at the same time using the :meth:`~dict.items` method. ::" msgstr "" "Cuando iteramos sobre diccionarios, se pueden obtener al mismo tiempo la " "clave y su valor correspondiente usando el método :meth:`items`. ::" diff --git a/tutorial/errors.po b/tutorial/errors.po index 4f62c157b6..da08e83b47 100644 --- a/tutorial/errors.po +++ b/tutorial/errors.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-03-21 10:58-0300\n" "Last-Translator: Francisco Mora \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/tutorial/errors.rst:5 msgid "Errors and Exceptions" @@ -251,12 +250,13 @@ msgstr "" "depende del tipo de excepción." #: ../Doc/tutorial/errors.rst:154 +#, fuzzy msgid "" "The *except clause* may specify a variable after the exception name. The " "variable is bound to the exception instance which typically has an ``args`` " "attribute that stores the arguments. For convenience, builtin exception " -"types define :meth:`__str__` to print all the arguments without explicitly " -"accessing ``.args``. ::" +"types define :meth:`~object.__str__` to print all the arguments without " +"explicitly accessing ``.args``. ::" msgstr "" "La *cláusula except* puede especificar una variable después del nombre de la " "excepción. La variable está ligada a la instancia de la excepción, que " @@ -266,8 +266,9 @@ msgstr "" # No estoy seguro si es la mejor traducción. #: ../Doc/tutorial/errors.rst:177 +#, fuzzy msgid "" -"The exception's :meth:`__str__` output is printed as the last part " +"The exception's :meth:`~object.__str__` output is printed as the last part " "('detail') of the message for unhandled exceptions." msgstr "" "La salida :meth:`__str__` de la excepción se imprime como la última parte " @@ -632,9 +633,10 @@ msgid "Raising and Handling Multiple Unrelated Exceptions" msgstr "Lanzando y gestionando múltiples excepciones no relacionadas" #: ../Doc/tutorial/errors.rst:498 +#, fuzzy msgid "" "There are situations where it is necessary to report several exceptions that " -"have occurred. This it often the case in concurrency frameworks, when " +"have occurred. This is often the case in concurrency frameworks, when " "several tasks may have failed in parallel, but there are also other use " "cases where it is desirable to continue execution and collect multiple " "errors rather than raise the first exception." @@ -671,7 +673,7 @@ msgstr "" "excepciones se propaguen a otras cláusulas y, finalmente, se vuelvan a " "lanzar. ::" -#: ../Doc/tutorial/errors.rst:564 +#: ../Doc/tutorial/errors.rst:573 msgid "" "Note that the exceptions nested in an exception group must be instances, not " "types. This is because in practice the exceptions would typically be ones " @@ -683,11 +685,11 @@ msgstr "" "excepciones serían típicamente las que ya han sido planteadas y capturadas " "por el programa, siguiendo el siguiente patrón::" -#: ../Doc/tutorial/errors.rst:582 +#: ../Doc/tutorial/errors.rst:593 msgid "Enriching Exceptions with Notes" msgstr "Enriqueciendo excepciones con notas" -#: ../Doc/tutorial/errors.rst:584 +#: ../Doc/tutorial/errors.rst:595 msgid "" "When an exception is created in order to be raised, it is usually " "initialized with information that describes the error that has occurred. " @@ -705,7 +707,7 @@ msgstr "" "representación estándar del rastreo incluye todas las notas, en el orden en " "que fueron añadidas, después de la excepción. ::" -#: ../Doc/tutorial/errors.rst:605 +#: ../Doc/tutorial/errors.rst:616 msgid "" "For example, when collecting exceptions into an exception group, we may want " "to add context information for the individual errors. In the following each " diff --git a/tutorial/floatingpoint.po b/tutorial/floatingpoint.po index a6c6184ec6..838c7c18b6 100644 --- a/tutorial/floatingpoint.po +++ b/tutorial/floatingpoint.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-02 19:49+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es\n" @@ -19,19 +19,19 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" -#: ../Doc/tutorial/floatingpoint.rst:9 +#: ../Doc/tutorial/floatingpoint.rst:10 msgid "Floating Point Arithmetic: Issues and Limitations" msgstr "Aritmética de Punto Flotante: Problemas y Limitaciones" -#: ../Doc/tutorial/floatingpoint.rst:14 +#: ../Doc/tutorial/floatingpoint.rst:16 #, fuzzy msgid "" "Floating-point numbers are represented in computer hardware as base 2 " -"(binary) fractions. For example, the **decimal** fraction ``0.125`` has " -"value 1/10 + 2/100 + 5/1000, and in the same way the **binary** fraction " -"``0.001`` has value 0/2 + 0/4 + 1/8. These two fractions have identical " +"(binary) fractions. For example, the **decimal** fraction ``0.625`` has " +"value 6/10 + 2/100 + 5/1000, and in the same way the **binary** fraction " +"``0.101`` has value 1/2 + 0/4 + 1/8. These two fractions have identical " "values, the only real difference being that the first is written in base 10 " "fractional notation, and the second in base 2." msgstr "" @@ -39,7 +39,7 @@ msgstr "" "idénticos, la única diferencia real es que la primera está escrita en " "notación fraccional en base 10 y la segunda en base 2." -#: ../Doc/tutorial/floatingpoint.rst:21 +#: ../Doc/tutorial/floatingpoint.rst:23 msgid "" "Unfortunately, most decimal fractions cannot be represented exactly as " "binary fractions. A consequence is that, in general, the decimal floating-" @@ -52,7 +52,7 @@ msgstr "" "son sólo aproximados por los números de punto flotante binario que realmente " "se guardan en la máquina." -#: ../Doc/tutorial/floatingpoint.rst:26 +#: ../Doc/tutorial/floatingpoint.rst:28 msgid "" "The problem is easier to understand at first in base 10. Consider the " "fraction 1/3. You can approximate that as a base 10 fraction::" @@ -60,11 +60,11 @@ msgstr "" "El problema es más fácil de entender primero en base 10. Considerá la " "fracción 1/3. Podés aproximarla como una fracción de base 10 ::" -#: ../Doc/tutorial/floatingpoint.rst:31 ../Doc/tutorial/floatingpoint.rst:35 +#: ../Doc/tutorial/floatingpoint.rst:33 ../Doc/tutorial/floatingpoint.rst:37 msgid "or, better, ::" msgstr "...o, mejor, ::" -#: ../Doc/tutorial/floatingpoint.rst:39 +#: ../Doc/tutorial/floatingpoint.rst:41 msgid "" "and so on. No matter how many digits you're willing to write down, the " "result will never be exactly 1/3, but will be an increasingly better " @@ -73,7 +73,7 @@ msgstr "" "...y así. No importa cuantos dígitos desees escribir, el resultado nunca " "será exactamente 1/3, pero será una aproximación cada vez mejor de 1/3." -#: ../Doc/tutorial/floatingpoint.rst:43 +#: ../Doc/tutorial/floatingpoint.rst:45 msgid "" "In the same way, no matter how many base 2 digits you're willing to use, the " "decimal value 0.1 cannot be represented exactly as a base 2 fraction. In " @@ -84,7 +84,7 @@ msgstr "" "base 2. En base 2, 1/10 es la siguiente fracción que se repite " "infinitamente::" -#: ../Doc/tutorial/floatingpoint.rst:49 +#: ../Doc/tutorial/floatingpoint.rst:51 msgid "" "Stop at any finite number of bits, and you get an approximation. On most " "machines today, floats are approximated using a binary fraction with the " @@ -100,13 +100,14 @@ msgstr "" "1/10, la fracción binaria es ``3602879701896397 / 2 ** 55`` que está cerca " "pero no es exactamente el valor verdadero de 1/10." -#: ../Doc/tutorial/floatingpoint.rst:56 +#: ../Doc/tutorial/floatingpoint.rst:58 +#, fuzzy msgid "" "Many users are not aware of the approximation because of the way values are " "displayed. Python only prints a decimal approximation to the true decimal " "value of the binary approximation stored by the machine. On most machines, " "if Python were to print the true decimal value of the binary approximation " -"stored for 0.1, it would have to display ::" +"stored for 0.1, it would have to display::" msgstr "" "La mayoría de los usuarios no son conscientes de esta aproximación por la " "forma en que se muestran los valores. Python solamente muestra una " @@ -115,16 +116,17 @@ msgstr "" "imprimir el verdadero valor decimal de la aproximación binaria almacenada " "para 0.1, debería mostrar ::" -#: ../Doc/tutorial/floatingpoint.rst:65 +#: ../Doc/tutorial/floatingpoint.rst:67 +#, fuzzy msgid "" "That is more digits than most people find useful, so Python keeps the number " -"of digits manageable by displaying a rounded value instead ::" +"of digits manageable by displaying a rounded value instead:" msgstr "" "Esos son más dígitos que lo que la mayoría de la gente encuentra útil, por " "lo que Python mantiene manejable la cantidad de dígitos al mostrar en su " "lugar un valor redondeado ::" -#: ../Doc/tutorial/floatingpoint.rst:71 +#: ../Doc/tutorial/floatingpoint.rst:75 msgid "" "Just remember, even though the printed result looks like the exact value of " "1/10, the actual stored value is the nearest representable binary fraction." @@ -133,7 +135,7 @@ msgstr "" "1/10, el valor almacenado realmente es la fracción binaria más cercana " "posible." -#: ../Doc/tutorial/floatingpoint.rst:74 +#: ../Doc/tutorial/floatingpoint.rst:78 msgid "" "Interestingly, there are many different decimal numbers that share the same " "nearest approximate binary fraction. For example, the numbers ``0.1`` and " @@ -151,7 +153,7 @@ msgstr "" "decimales comparten la misma aproximación, se podría mostrar cualquiera de " "ellos para preservar el invariante ``eval(repr(x)) == x``." -#: ../Doc/tutorial/floatingpoint.rst:82 +#: ../Doc/tutorial/floatingpoint.rst:86 msgid "" "Historically, the Python prompt and built-in :func:`repr` function would " "choose the one with 17 significant digits, ``0.10000000000000001``. " @@ -163,7 +165,7 @@ msgstr "" "Python 3.1, en la mayoría de los sistemas Python ahora es capaz de elegir la " "forma más corta de ellos y mostrar ``0.1``." -#: ../Doc/tutorial/floatingpoint.rst:87 +#: ../Doc/tutorial/floatingpoint.rst:91 msgid "" "Note that this is in the very nature of binary floating-point: this is not a " "bug in Python, and it is not a bug in your code either. You'll see the same " @@ -177,15 +179,16 @@ msgstr "" "hardware (a pesar de que en algunos lenguajes por omisión no *muestren* la " "diferencia, o no lo hagan en todos los modos de salida)." -#: ../Doc/tutorial/floatingpoint.rst:93 +#: ../Doc/tutorial/floatingpoint.rst:97 +#, fuzzy msgid "" "For more pleasant output, you may wish to use string formatting to produce a " -"limited number of significant digits::" +"limited number of significant digits:" msgstr "" "Para una salida más elegante, quizás quieras usar el formateo de cadenas de " "texto para generar un número limitado de dígitos significativos::" -#: ../Doc/tutorial/floatingpoint.rst:105 +#: ../Doc/tutorial/floatingpoint.rst:111 msgid "" "It's important to realize that this is, in a real sense, an illusion: you're " "simply rounding the *display* of the true machine value." @@ -193,43 +196,54 @@ msgstr "" "Es importante darse cuenta que esto es, realmente, una ilusión: estás " "simplemente redondeando al *mostrar* el valor verdadero de la máquina." -#: ../Doc/tutorial/floatingpoint.rst:108 +#: ../Doc/tutorial/floatingpoint.rst:114 +#, fuzzy msgid "" "One illusion may beget another. For example, since 0.1 is not exactly 1/10, " -"summing three values of 0.1 may not yield exactly 0.3, either::" +"summing three values of 0.1 may not yield exactly 0.3, either:" msgstr "" "Una ilusión puede generar otra. Por ejemplo, ya que 0.1 no es exactamente " "1/10, sumar tres veces 0.1 podría también no generar exactamente 0.3::" -#: ../Doc/tutorial/floatingpoint.rst:114 +#: ../Doc/tutorial/floatingpoint.rst:122 +#, fuzzy msgid "" "Also, since the 0.1 cannot get any closer to the exact value of 1/10 and 0.3 " "cannot get any closer to the exact value of 3/10, then pre-rounding with :" -"func:`round` function cannot help::" +"func:`round` function cannot help:" msgstr "" "También, ya que 0.1 no puede acercarse más al valor exacto de 1/10 y 0.3 no " "puede acercarse más al valor exacto de 3/10, redondear primero con la " "función :func:`round` no puede ayudar::" -#: ../Doc/tutorial/floatingpoint.rst:121 +#: ../Doc/tutorial/floatingpoint.rst:131 +#, fuzzy msgid "" "Though the numbers cannot be made closer to their intended exact values, " -"the :func:`round` function can be useful for post-rounding so that results " -"with inexact values become comparable to one another::" +"the :func:`math.isclose` function can be useful for comparing inexact values:" msgstr "" "A pesar que los números no pueden acercarse a los valores exactos que " "pretendemos, la función :func:`round` puede ser útil para redondear a " "posteriori, para que los resultados con valores inexactos se puedan comparar " "entre sí::" -#: ../Doc/tutorial/floatingpoint.rst:128 +#: ../Doc/tutorial/floatingpoint.rst:139 +msgid "" +"Alternatively, the :func:`round` function can be used to compare rough " +"approximations::" +msgstr "" + +#: ../Doc/tutorial/floatingpoint.rst:147 #, fuzzy msgid "" "Binary floating-point arithmetic holds many surprises like this. The " "problem with \"0.1\" is explained in precise detail below, in the " -"\"Representation Error\" section. See `The Perils of Floating Point " -"`_ for a more complete account of other " -"common surprises." +"\"Representation Error\" section. See `Examples of Floating Point Problems " +"`_ for " +"a pleasant summary of how binary floating-point works and the kinds of " +"problems commonly encountered in practice. Also see `The Perils of Floating " +"Point `_ for a more complete account of " +"other common surprises." msgstr "" "La aritmética de punto flotante binaria tiene varias sorpresas como esta. El " "problema con \"0.1\" es explicado con detalle abajo, en la sección \"Error " @@ -237,7 +251,7 @@ msgstr "" "Perils of Floating Point `_) para una más " "completa recopilación de otras sorpresas normales." -#: ../Doc/tutorial/floatingpoint.rst:133 +#: ../Doc/tutorial/floatingpoint.rst:156 msgid "" "As that says near the end, \"there are no easy answers.\" Still, don't be " "unduly wary of floating-point! The errors in Python float operations are " @@ -255,7 +269,7 @@ msgstr "" "tareas, pero necesitás tener en cuenta que no es aritmética decimal, y que " "cada operación de punto flotante sufre un nuevo error de redondeo." -#: ../Doc/tutorial/floatingpoint.rst:140 +#: ../Doc/tutorial/floatingpoint.rst:163 msgid "" "While pathological cases do exist, for most casual use of floating-point " "arithmetic you'll see the result you expect in the end if you simply round " @@ -270,7 +284,7 @@ msgstr "" "para un control más fino mirá los parámetros del método de formateo :meth:" "`str.format` en :ref:`string-formatting`." -#: ../Doc/tutorial/floatingpoint.rst:146 +#: ../Doc/tutorial/floatingpoint.rst:169 msgid "" "For use cases which require exact decimal representation, try using the :mod:" "`decimal` module which implements decimal arithmetic suitable for accounting " @@ -280,7 +294,7 @@ msgstr "" "el módulo :mod:`decimal`, que implementa aritmética decimal útil para " "aplicaciones de contabilidad y de alta precisión." -#: ../Doc/tutorial/floatingpoint.rst:150 +#: ../Doc/tutorial/floatingpoint.rst:173 msgid "" "Another form of exact arithmetic is supported by the :mod:`fractions` module " "which implements arithmetic based on rational numbers (so the numbers like " @@ -290,9 +304,10 @@ msgstr "" "implementa aritmética basada en números racionales (por lo que números como " "1/3 pueden ser representados exactamente)." -#: ../Doc/tutorial/floatingpoint.rst:154 +#: ../Doc/tutorial/floatingpoint.rst:177 +#, fuzzy msgid "" -"If you are a heavy user of floating point operations you should take a look " +"If you are a heavy user of floating-point operations you should take a look " "at the NumPy package and many other packages for mathematical and " "statistical operations supplied by the SciPy project. See ." @@ -302,41 +317,45 @@ msgstr "" "matemáticas y estadísticas suministrados por el proyecto SciPy. Consulte " "." -#: ../Doc/tutorial/floatingpoint.rst:158 +#: ../Doc/tutorial/floatingpoint.rst:181 +#, fuzzy msgid "" "Python provides tools that may help on those rare occasions when you really " "*do* want to know the exact value of a float. The :meth:`float." -"as_integer_ratio` method expresses the value of a float as a fraction::" +"as_integer_ratio` method expresses the value of a float as a fraction:" msgstr "" "Python provee herramientas que pueden ayudar en esas raras ocasiones cuando " "realmente *querés* saber el valor exacto de un float. El método :meth:`float." "as_integer_ratio` expresa el valor del float como una fracción::" -#: ../Doc/tutorial/floatingpoint.rst:167 +#: ../Doc/tutorial/floatingpoint.rst:192 +#, fuzzy msgid "" "Since the ratio is exact, it can be used to losslessly recreate the original " -"value::" +"value:" msgstr "" "Ya que la fracción es exacta, se puede usar para recrear sin pérdidas el " "valor original::" -#: ../Doc/tutorial/floatingpoint.rst:173 +#: ../Doc/tutorial/floatingpoint.rst:200 +#, fuzzy msgid "" "The :meth:`float.hex` method expresses a float in hexadecimal (base 16), " -"again giving the exact value stored by your computer::" +"again giving the exact value stored by your computer:" msgstr "" "El método :meth:`float.hex` expresa un float en hexadecimal (base 16), " "nuevamente retornando el valor exacto almacenado por tu computadora::" -#: ../Doc/tutorial/floatingpoint.rst:179 +#: ../Doc/tutorial/floatingpoint.rst:208 +#, fuzzy msgid "" "This precise hexadecimal representation can be used to reconstruct the float " -"value exactly::" +"value exactly:" msgstr "" "Esta representación hexadecimal precisa se puede usar para reconstruir el " "valor exacto del float::" -#: ../Doc/tutorial/floatingpoint.rst:185 +#: ../Doc/tutorial/floatingpoint.rst:216 msgid "" "Since the representation is exact, it is useful for reliably porting values " "across different versions of Python (platform independence) and exchanging " @@ -348,13 +367,14 @@ msgstr "" "plataformas) e intercambiar datos con otros lenguajes que soportan el mismo " "formato (como Java y C99)." -#: ../Doc/tutorial/floatingpoint.rst:189 +#: ../Doc/tutorial/floatingpoint.rst:220 +#, fuzzy msgid "" -"Another helpful tool is the :func:`math.fsum` function which helps mitigate " -"loss-of-precision during summation. It tracks \"lost digits\" as values are " -"added onto a running total. That can make a difference in overall accuracy " -"so that the errors do not accumulate to the point where they affect the " -"final total:" +"Another helpful tool is the :func:`sum` function which helps mitigate loss-" +"of-precision during summation. It uses extended precision for intermediate " +"rounding steps as values are added onto a running total. That can make a " +"difference in overall accuracy so that the errors do not accumulate to the " +"point where they affect the final total:" msgstr "" "Otra herramienta útil es la función :func:`math.fsum` que ayuda a mitigar la " "pérdida de precisión durante la suma. Esta función lleva la cuenta de " @@ -362,11 +382,20 @@ msgstr "" "hacer una diferencia en la exactitud de lo que se va sumando para que los " "errores no se acumulen al punto en que afecten el total final::" -#: ../Doc/tutorial/floatingpoint.rst:203 +#: ../Doc/tutorial/floatingpoint.rst:233 +msgid "" +"The :func:`math.fsum()` goes further and tracks all of the \"lost digits\" " +"as values are added onto a running total so that the result has only a " +"single rounding. This is slower than :func:`sum` but will be more accurate " +"in uncommon cases where large magnitude inputs mostly cancel each other out " +"leaving a final sum near zero:" +msgstr "" + +#: ../Doc/tutorial/floatingpoint.rst:260 msgid "Representation Error" msgstr "Error de Representación" -#: ../Doc/tutorial/floatingpoint.rst:205 +#: ../Doc/tutorial/floatingpoint.rst:262 msgid "" "This section explains the \"0.1\" example in detail, and shows how you can " "perform an exact analysis of cases like this yourself. Basic familiarity " @@ -377,7 +406,7 @@ msgstr "" "Se asume un conocimiento básico de la representación de punto flotante " "binario." -#: ../Doc/tutorial/floatingpoint.rst:209 +#: ../Doc/tutorial/floatingpoint.rst:266 msgid "" ":dfn:`Representation error` refers to the fact that some (most, actually) " "decimal fractions cannot be represented exactly as binary (base 2) " @@ -391,15 +420,16 @@ msgstr "" "Python (o Perl, C, C++, Java, Fortran, y tantos otros) frecuentemente no " "mostrarán el número decimal exacto que esperás." -#: ../Doc/tutorial/floatingpoint.rst:214 +#: ../Doc/tutorial/floatingpoint.rst:271 +#, fuzzy msgid "" -"Why is that? 1/10 is not exactly representable as a binary fraction. Almost " -"all machines today (November 2000) use IEEE-754 floating point arithmetic, " -"and almost all platforms map Python floats to IEEE-754 \"double " -"precision\". 754 doubles contain 53 bits of precision, so on input the " -"computer strives to convert 0.1 to the closest fraction it can of the form " -"*J*/2**\\ *N* where *J* is an integer containing exactly 53 bits. " -"Rewriting ::" +"Why is that? 1/10 is not exactly representable as a binary fraction. Since " +"at least 2000, almost all machines use IEEE 754 binary floating-point " +"arithmetic, and almost all platforms map Python floats to IEEE 754 binary64 " +"\"double precision\" values. IEEE 754 binary64 values contain 53 bits of " +"precision, so on input the computer strives to convert 0.1 to the closest " +"fraction it can of the form *J*/2**\\ *N* where *J* is an integer containing " +"exactly 53 bits. Rewriting ::" msgstr "" "¿Por qué es eso? 1/10 no es representable exactamente como una fracción " "binaria. Casi todas las máquinas de hoy en día (Noviembre del 2000) usan " @@ -410,47 +440,51 @@ msgstr "" "forma *J*/2\\*\\**N* donde *J* es un entero que contiene exactamente 53 " "bits. Reescribiendo ::" -#: ../Doc/tutorial/floatingpoint.rst:223 +#: ../Doc/tutorial/floatingpoint.rst:282 msgid "as ::" msgstr "...como ::" -#: ../Doc/tutorial/floatingpoint.rst:227 +#: ../Doc/tutorial/floatingpoint.rst:286 +#, fuzzy msgid "" "and recalling that *J* has exactly 53 bits (is ``>= 2**52`` but ``< " -"2**53``), the best value for *N* is 56::" +"2**53``), the best value for *N* is 56:" msgstr "" "...y recordando que *J* tiene exactamente 53 bits (es ``>= 2**52`` pero ``< " "2**53``), el mejor valor para *N* es 56::" -#: ../Doc/tutorial/floatingpoint.rst:233 +#: ../Doc/tutorial/floatingpoint.rst:294 +#, fuzzy msgid "" "That is, 56 is the only value for *N* that leaves *J* with exactly 53 bits. " -"The best possible value for *J* is then that quotient rounded::" +"The best possible value for *J* is then that quotient rounded:" msgstr "" "O sea, 56 es el único valor para *N* que deja *J* con exactamente 53 bits. " "El mejor valor posible para *J* es entonces el cociente redondeado::" -#: ../Doc/tutorial/floatingpoint.rst:240 +#: ../Doc/tutorial/floatingpoint.rst:303 +#, fuzzy msgid "" "Since the remainder is more than half of 10, the best approximation is " -"obtained by rounding up::" +"obtained by rounding up:" msgstr "" "Ya que el resto es más que la mitad de 10, la mejor aproximación se obtiene " "redondeándolo::" -#: ../Doc/tutorial/floatingpoint.rst:246 +#: ../Doc/tutorial/floatingpoint.rst:313 +#, fuzzy msgid "" -"Therefore the best possible approximation to 1/10 in 754 double precision " -"is::" +"Therefore the best possible approximation to 1/10 in IEEE 754 double " +"precision is::" msgstr "Por lo tanto la mejor aproximación a 1/10 en doble precisión 754 es::" -#: ../Doc/tutorial/floatingpoint.rst:250 +#: ../Doc/tutorial/floatingpoint.rst:318 msgid "" "Dividing both the numerator and denominator by two reduces the fraction to::" msgstr "" "El dividir tanto el numerador como el denominador reduce la fracción a::" -#: ../Doc/tutorial/floatingpoint.rst:254 +#: ../Doc/tutorial/floatingpoint.rst:322 msgid "" "Note that since we rounded up, this is actually a little bit larger than " "1/10; if we had not rounded up, the quotient would have been a little bit " @@ -460,28 +494,31 @@ msgstr "" "lo hubiéramos redondeado, el cociente hubiese sido un poquito menor que " "1/10. ¡Pero no hay caso en que sea *exactamente* 1/10!" -#: ../Doc/tutorial/floatingpoint.rst:258 +#: ../Doc/tutorial/floatingpoint.rst:326 +#, fuzzy msgid "" "So the computer never \"sees\" 1/10: what it sees is the exact fraction " -"given above, the best 754 double approximation it can get::" +"given above, the best IEEE 754 double approximation it can get:" msgstr "" "Entonces la computadora nunca \"ve\" 1/10: lo que ve es la fracción exacta " "de arriba, la mejor aproximación al flotante doble de 754 que puede obtener::" -#: ../Doc/tutorial/floatingpoint.rst:264 +#: ../Doc/tutorial/floatingpoint.rst:334 +#, fuzzy msgid "" "If we multiply that fraction by 10\\*\\*55, we can see the value out to 55 " -"decimal digits::" +"decimal digits:" msgstr "" "Si multiplicamos esa fracción por 10\\*\\*55, podemos ver el valor hasta los " "55 dígitos decimales::" -#: ../Doc/tutorial/floatingpoint.rst:270 +#: ../Doc/tutorial/floatingpoint.rst:342 +#, fuzzy msgid "" "meaning that the exact number stored in the computer is equal to the decimal " "value 0.1000000000000000055511151231257827021181583404541015625. Instead of " "displaying the full decimal value, many languages (including older versions " -"of Python), round the result to 17 significant digits::" +"of Python), round the result to 17 significant digits:" msgstr "" "...lo que significa que el valor exacto almacenado en la computadora es " "igual al valor decimal " @@ -489,9 +526,9 @@ msgstr "" "mostrar el valor decimal completo, muchos lenguajes (incluyendo versiones " "más viejas de Python), redondean el resultado a 17 dígitos significativos::" -#: ../Doc/tutorial/floatingpoint.rst:278 +#: ../Doc/tutorial/floatingpoint.rst:352 +#, fuzzy msgid "" -"The :mod:`fractions` and :mod:`decimal` modules make these calculations " -"easy::" +"The :mod:`fractions` and :mod:`decimal` modules make these calculations easy:" msgstr "" "Los módulos :mod:`fractions` y :mod:`decimal` hacen fácil estos cálculos::" diff --git a/tutorial/inputoutput.po b/tutorial/inputoutput.po index 73c6ecde06..f0e06dba71 100644 --- a/tutorial/inputoutput.po +++ b/tutorial/inputoutput.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-02-04 16:01-0300\n" "Last-Translator: Carlos A. Crespo \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/tutorial/inputoutput.rst:5 msgid "Input and Output" @@ -42,11 +41,13 @@ msgid "Fancier Output Formatting" msgstr "Formateo elegante de la salida" #: ../Doc/tutorial/inputoutput.rst:17 +#, fuzzy msgid "" "So far we've encountered two ways of writing values: *expression statements* " -"and the :func:`print` function. (A third way is using the :meth:`write` " -"method of file objects; the standard output file can be referenced as ``sys." -"stdout``. See the Library Reference for more information on this.)" +"and the :func:`print` function. (A third way is using the :meth:`~io." +"TextIOBase.write` method of file objects; the standard output file can be " +"referenced as ``sys.stdout``. See the Library Reference for more information " +"on this.)" msgstr "" "Hasta ahora encontramos dos maneras de escribir valores: *declaraciones de " "expresión* y la función :func:`print`. (Una tercera manera es usando el " @@ -609,10 +610,11 @@ msgstr "" "comportamiento indefinido." #: ../Doc/tutorial/inputoutput.rst:459 +#, fuzzy msgid "" -"File objects have some additional methods, such as :meth:`~file.isatty` and :" -"meth:`~file.truncate` which are less frequently used; consult the Library " -"Reference for a complete guide to file objects." +"File objects have some additional methods, such as :meth:`~io.IOBase.isatty` " +"and :meth:`~io.IOBase.truncate` which are less frequently used; consult the " +"Library Reference for a complete guide to file objects." msgstr "" "Los objetos archivo tienen algunos métodos más, como :meth:`isatty` y :meth:" "`truncate` que son usados menos frecuentemente; consultá la Referencia de la " @@ -623,13 +625,14 @@ msgid "Saving structured data with :mod:`json`" msgstr "Guardar datos estructurados con :mod:`json`" #: ../Doc/tutorial/inputoutput.rst:471 +#, fuzzy msgid "" "Strings can easily be written to and read from a file. Numbers take a bit " -"more effort, since the :meth:`read` method only returns strings, which will " -"have to be passed to a function like :func:`int`, which takes a string like " -"``'123'`` and returns its numeric value 123. When you want to save more " -"complex data types like nested lists and dictionaries, parsing and " -"serializing by hand becomes complicated." +"more effort, since the :meth:`~io.TextIOBase.read` method only returns " +"strings, which will have to be passed to a function like :func:`int`, which " +"takes a string like ``'123'`` and returns its numeric value 123. When you " +"want to save more complex data types like nested lists and dictionaries, " +"parsing and serializing by hand becomes complicated." msgstr "" "Las cadenas pueden fácilmente escribirse y leerse de un archivo. Los números " "toman algo más de esfuerzo, ya que el método :meth:`read` sólo retorna " @@ -739,3 +742,27 @@ msgstr "" "predeterminada: deserializar los datos de *pickle* procedentes de un origen " "que no es de confianza puede ejecutar código arbitrario, si los datos fueron " "creados por un atacante experto." + +#: ../Doc/tutorial/inputoutput.rst:287 +msgid "built-in function" +msgstr "" + +#: ../Doc/tutorial/inputoutput.rst:287 +msgid "open" +msgstr "" + +#: ../Doc/tutorial/inputoutput.rst:287 +msgid "object" +msgstr "" + +#: ../Doc/tutorial/inputoutput.rst:287 +msgid "file" +msgstr "" + +#: ../Doc/tutorial/inputoutput.rst:469 +msgid "module" +msgstr "" + +#: ../Doc/tutorial/inputoutput.rst:469 +msgid "json" +msgstr "" diff --git a/tutorial/interactive.po b/tutorial/interactive.po index e2cc8fdc63..8d1c904782 100644 --- a/tutorial/interactive.po +++ b/tutorial/interactive.po @@ -1,23 +1,25 @@ # Copyright (C) 2001-2020, Python Software Foundation # This file is distributed under the same license as the Python package. # Maintained by the python-doc-es workteam. -# docs-es@python.org / https://mail.python.org/mailman3/lists/docs-es.python.org/ -# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get the list of volunteers +# docs-es@python.org / +# https://mail.python.org/mailman3/lists/docs-es.python.org/ +# Check https://github.com/python/python-docs-es/blob/3.8/TRANSLATORS to get +# the list of volunteers # msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-06 11:59-0400\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-02 19:46+0200\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" "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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Last-Translator: Cristián Maureira-Fredes \n" -"Language: es\n" -"X-Generator: Poedit 3.0\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/tutorial/interactive.rst:5 msgid "Interactive Input Editing and History Substitution" @@ -43,6 +45,7 @@ msgid "Tab Completion and History Editing" msgstr "Autocompletado con tab e historial de edición" #: ../Doc/tutorial/interactive.rst:19 +#, fuzzy msgid "" "Completion of variable and module names is :ref:`automatically enabled " "` at interpreter startup so that the :kbd:`Tab` key " @@ -51,8 +54,8 @@ msgid "" "expressions such as ``string.a``, it will evaluate the expression up to the " "final ``'.'`` and then suggest completions from the attributes of the " "resulting object. Note that this may execute application-defined code if an " -"object with a :meth:`__getattr__` method is part of the expression. The " -"default configuration also saves your history into a file named :file:`." +"object with a :meth:`~object.__getattr__` method is part of the expression. " +"The default configuration also saves your history into a file named :file:`." "python_history` in your user directory. The history will be available again " "during the next interactive interpreter session." msgstr "" diff --git a/tutorial/interpreter.po b/tutorial/interpreter.po index b7263dcd66..ddd4ca74a9 100644 --- a/tutorial/interpreter.po +++ b/tutorial/interpreter.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-11 09:55-0300\n" "Last-Translator: Carlos A. Crespo \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/tutorial/interpreter.rst:5 msgid "Using the Python Interpreter" @@ -31,9 +30,10 @@ msgid "Invoking the Interpreter" msgstr "Invocar el intérprete" #: ../Doc/tutorial/interpreter.rst:13 +#, fuzzy msgid "" "The Python interpreter is usually installed as :file:`/usr/local/bin/" -"python3.11` on those machines where it is available; putting :file:`/usr/" +"python3.12` on those machines where it is available; putting :file:`/usr/" "local/bin` in your Unix shell's search path makes it possible to start it by " "typing the command:" msgstr "" @@ -55,9 +55,10 @@ msgstr "" "(Por ejemplo, :file:`/usr/local/python` es una alternativa popular)." #: ../Doc/tutorial/interpreter.rst:26 +#, fuzzy msgid "" "On Windows machines where you have installed Python from the :ref:`Microsoft " -"Store `, the :file:`python3.11` command will be available. If " +"Store `, the :file:`python3.12` command will be available. If " "you have the :ref:`py.exe launcher ` installed, you can use the :" "file:`py` command. See :ref:`setting-envvars` for other ways to launch " "Python." diff --git a/tutorial/introduction.po b/tutorial/introduction.po index dc4935c9fc..6012983dbb 100644 --- a/tutorial/introduction.po +++ b/tutorial/introduction.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-12 19:40-0300\n" "Last-Translator: Carlos A. Crespo \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/tutorial/introduction.rst:5 msgid "An Informal Introduction to Python" @@ -95,12 +94,12 @@ msgid "Numbers" msgstr "Números" #: ../Doc/tutorial/introduction.rst:53 +#, fuzzy msgid "" "The interpreter acts as a simple calculator: you can type an expression at " "it and it will write the value. Expression syntax is straightforward: the " -"operators ``+``, ``-``, ``*`` and ``/`` work just like in most other " -"languages (for example, Pascal or C); parentheses (``()``) can be used for " -"grouping. For example::" +"operators ``+``, ``-``, ``*`` and ``/`` can be used to perform arithmetic; " +"parentheses (``()``) can be used for grouping. For example::" msgstr "" "El intérprete puede utilizarse como una simple calculadora; puedes " "introducir una expresión en él y este escribirá los valores. La sintaxis es " @@ -195,40 +194,31 @@ msgstr "" "imaginaria (por ejemplo, ``3+5j``)." #: ../Doc/tutorial/introduction.rst:142 -msgid "Strings" -msgstr "Cadenas de caracteres" +msgid "Text" +msgstr "" #: ../Doc/tutorial/introduction.rst:144 msgid "" -"Besides numbers, Python can also manipulate strings, which can be expressed " -"in several ways. They can be enclosed in single quotes (``'...'``) or " -"double quotes (``\"...\"``) with the same result [#]_. ``\\`` can be used " -"to escape quotes::" -msgstr "" -"Además de números, Python puede manipular cadenas de texto, las cuales " -"pueden ser expresadas de distintas formas. Pueden estar encerradas en " -"comillas simples (``'...'``) o dobles (``\"...\"``) con el mismo resultado " -"[#]_. ``\\`` puede ser usado para escapar comillas::" - -#: ../Doc/tutorial/introduction.rst:162 -msgid "" -"In the interactive interpreter, the output string is enclosed in quotes and " -"special characters are escaped with backslashes. While this might sometimes " -"look different from the input (the enclosing quotes could change), the two " -"strings are equivalent. The string is enclosed in double quotes if the " -"string contains a single quote and no double quotes, otherwise it is " -"enclosed in single quotes. The :func:`print` function produces a more " -"readable output, by omitting the enclosing quotes and by printing escaped " -"and special characters::" -msgstr "" -"En el intérprete interactivo, la salida de caracteres está encerrada en " -"comillas y los caracteres especiales se escapan con barras invertidas. " -"Aunque esto a veces se vea diferente de la entrada (las comillas que " -"encierran pueden cambiar), las dos cadenas son equivalentes. La cadena se " -"encierra en comillas dobles si la cadena contiene una comilla simple y " -"ninguna doble, de lo contrario es encerrada en comillas simples. La función :" -"func:`print` produce una salida más legible, omitiendo las comillas que la " -"encierran e imprimiendo caracteres especiales y escapados::" +"Python can manipulate text (represented by type :class:`str`, so-called " +"\"strings\") as well as numbers. This includes characters \"``!``\", words " +"\"``rabbit``\", names \"``Paris``\", sentences \"``Got your back.``\", etc. " +"\"``Yay! :)``\". They can be enclosed in single quotes (``'...'``) or double " +"quotes (``\"...\"``) with the same result [#]_." +msgstr "" + +#: ../Doc/tutorial/introduction.rst:157 +msgid "" +"To quote a quote, we need to \"escape\" it, by preceding it with ``\\``. " +"Alternatively, we can use the other type of quotation marks::" +msgstr "" + +#: ../Doc/tutorial/introduction.rst:171 +msgid "" +"In the Python shell, the string definition and output string can look " +"different. The :func:`print` function produces a more readable output, by " +"omitting the enclosing quotes and by printing escaped and special " +"characters::" +msgstr "" #: ../Doc/tutorial/introduction.rst:182 msgid "" @@ -242,6 +232,13 @@ msgstr "" #: ../Doc/tutorial/introduction.rst:192 msgid "" +"There is one subtle aspect to raw strings: a raw string may not end in an " +"odd number of ``\\`` characters; see :ref:`the FAQ entry ` for more information and workarounds." +msgstr "" + +#: ../Doc/tutorial/introduction.rst:197 +msgid "" "String literals can span multiple lines. One way is using triple-quotes: " "``\"\"\"...\"\"\"`` or ``'''...'''``. End of lines are automatically " "included in the string, but it's possible to prevent this by adding a ``\\`` " @@ -252,7 +249,7 @@ msgstr "" "línea son incluidos automáticamente, pero es posible prevenir esto agregando " "una ``\\`` al final de la línea. Por ejemplo:" -#: ../Doc/tutorial/introduction.rst:203 +#: ../Doc/tutorial/introduction.rst:208 msgid "" "produces the following output (note that the initial newline is not " "included):" @@ -260,7 +257,7 @@ msgstr "" "produce la siguiente salida (tener en cuenta que la línea inicial no está " "incluida):" -#: ../Doc/tutorial/introduction.rst:211 +#: ../Doc/tutorial/introduction.rst:216 msgid "" "Strings can be concatenated (glued together) with the ``+`` operator, and " "repeated with ``*``::" @@ -268,7 +265,7 @@ msgstr "" "Las cadenas se pueden concatenar (pegar juntas) con el operador ``+`` y se " "pueden repetir con ``*``::" -#: ../Doc/tutorial/introduction.rst:218 +#: ../Doc/tutorial/introduction.rst:223 msgid "" "Two or more *string literals* (i.e. the ones enclosed between quotes) next " "to each other are automatically concatenated. ::" @@ -276,26 +273,26 @@ msgstr "" "Dos o más *cadenas literales* (es decir, las encerradas entre comillas) una " "al lado de la otra se concatenan automáticamente. ::" -#: ../Doc/tutorial/introduction.rst:224 +#: ../Doc/tutorial/introduction.rst:229 msgid "" "This feature is particularly useful when you want to break long strings::" msgstr "" "Esta característica es particularmente útil cuando quieres dividir cadenas " "largas::" -#: ../Doc/tutorial/introduction.rst:231 +#: ../Doc/tutorial/introduction.rst:236 msgid "" "This only works with two literals though, not with variables or expressions::" msgstr "" "Esto solo funciona con dos literales, no con variables ni expresiones::" -#: ../Doc/tutorial/introduction.rst:245 +#: ../Doc/tutorial/introduction.rst:250 msgid "" "If you want to concatenate variables or a variable and a literal, use ``+``::" msgstr "" "Si quieres concatenar variables o una variable y un literal, usa ``+``::" -#: ../Doc/tutorial/introduction.rst:250 +#: ../Doc/tutorial/introduction.rst:255 msgid "" "Strings can be *indexed* (subscripted), with the first character having " "index 0. There is no separate character type; a character is simply a string " @@ -305,29 +302,30 @@ msgstr "" "la cadena tiene el índice 0. No hay un tipo de dato diferente para los " "caracteres; un carácter es simplemente una cadena de longitud uno::" -#: ../Doc/tutorial/introduction.rst:260 +#: ../Doc/tutorial/introduction.rst:265 msgid "" "Indices may also be negative numbers, to start counting from the right::" msgstr "" "Los índices también pueden ser números negativos, para empezar a contar " "desde la derecha::" -#: ../Doc/tutorial/introduction.rst:269 +#: ../Doc/tutorial/introduction.rst:274 msgid "Note that since -0 is the same as 0, negative indices start from -1." msgstr "" "Nótese que -0 es lo mismo que 0, los índice negativos comienzan desde -1." -#: ../Doc/tutorial/introduction.rst:271 +#: ../Doc/tutorial/introduction.rst:276 +#, fuzzy msgid "" "In addition to indexing, *slicing* is also supported. While indexing is " -"used to obtain individual characters, *slicing* allows you to obtain " +"used to obtain individual characters, *slicing* allows you to obtain a " "substring::" msgstr "" "Además de los índices, las *rebanadas* también están soportadas. Mientras " "que los índices se utilizar para obtener caracteres individuales, las " "*rebanadas* te permiten obtener partes de las cadenas de texto::" -#: ../Doc/tutorial/introduction.rst:279 +#: ../Doc/tutorial/introduction.rst:284 msgid "" "Slice indices have useful defaults; an omitted first index defaults to zero, " "an omitted second index defaults to the size of the string being sliced. ::" @@ -336,7 +334,7 @@ msgstr "" "defecto para el primer índice es cero, el valor por defecto para el segundo " "índice es la longitud de la cadena a rebanar. ::" -#: ../Doc/tutorial/introduction.rst:289 +#: ../Doc/tutorial/introduction.rst:294 msgid "" "Note how the start is always included, and the end always excluded. This " "makes sure that ``s[:i] + s[i:]`` is always equal to ``s``::" @@ -344,7 +342,7 @@ msgstr "" "Nótese cómo el inicio siempre se incluye y el final siempre se excluye. Esto " "asegura que ``s[:i] + s[i:]`` siempre sea igual a ``s``::" -#: ../Doc/tutorial/introduction.rst:297 +#: ../Doc/tutorial/introduction.rst:302 msgid "" "One way to remember how slices work is to think of the indices as pointing " "*between* characters, with the left edge of the first character numbered 0. " @@ -356,7 +354,7 @@ msgstr "" "numerado 0. Luego, el punto derecho del último carácter de una cadena de *n* " "caracteres tiene un índice *n*, por ejemplo ::" -#: ../Doc/tutorial/introduction.rst:308 +#: ../Doc/tutorial/introduction.rst:313 msgid "" "The first row of numbers gives the position of the indices 0...6 in the " "string; the second row gives the corresponding negative indices. The slice " @@ -368,7 +366,7 @@ msgstr "" "*i* hasta *j* consta de todos los caracteres entre los bordes etiquetados " "*i* y *j*, respectivamente." -#: ../Doc/tutorial/introduction.rst:313 +#: ../Doc/tutorial/introduction.rst:318 msgid "" "For non-negative indices, the length of a slice is the difference of the " "indices, if both are within bounds. For example, the length of " @@ -378,11 +376,11 @@ msgstr "" "los índices, si ambos están dentro de los límites. Por ejemplo, la longitud " "de ``word[1:3]`` es 2." -#: ../Doc/tutorial/introduction.rst:317 +#: ../Doc/tutorial/introduction.rst:322 msgid "Attempting to use an index that is too large will result in an error::" msgstr "Intentar usar un índice que es muy grande resultará en un error::" -#: ../Doc/tutorial/introduction.rst:324 +#: ../Doc/tutorial/introduction.rst:329 msgid "" "However, out of range slice indexes are handled gracefully when used for " "slicing::" @@ -390,7 +388,7 @@ msgstr "" "Sin embargo, los índices de rebanadas fuera de rango se manejan " "satisfactoriamente cuando se usan para rebanar::" -#: ../Doc/tutorial/introduction.rst:332 +#: ../Doc/tutorial/introduction.rst:337 msgid "" "Python strings cannot be changed --- they are :term:`immutable`. Therefore, " "assigning to an indexed position in the string results in an error::" @@ -398,19 +396,19 @@ msgstr "" "Las cadenas de Python no se pueden modificar, son :term:`immutable`. Por " "eso, asignar a una posición indexada de la cadena resulta en un error:" -#: ../Doc/tutorial/introduction.rst:344 +#: ../Doc/tutorial/introduction.rst:349 msgid "If you need a different string, you should create a new one::" msgstr "Si necesitas una cadena diferente, deberías crear una nueva::" -#: ../Doc/tutorial/introduction.rst:351 +#: ../Doc/tutorial/introduction.rst:356 msgid "The built-in function :func:`len` returns the length of a string::" msgstr "La función incorporada :func:`len` retorna la longitud de una cadena::" -#: ../Doc/tutorial/introduction.rst:362 +#: ../Doc/tutorial/introduction.rst:367 msgid ":ref:`textseq`" msgstr ":ref:`textseq`" -#: ../Doc/tutorial/introduction.rst:361 +#: ../Doc/tutorial/introduction.rst:366 msgid "" "Strings are examples of *sequence types*, and support the common operations " "supported by such types." @@ -418,11 +416,11 @@ msgstr "" "Las cadenas de texto son ejemplos de *tipos secuencias* y soportan las " "operaciones comunes para esos tipos." -#: ../Doc/tutorial/introduction.rst:366 +#: ../Doc/tutorial/introduction.rst:371 msgid ":ref:`string-methods`" msgstr ":ref:`string-methods`" -#: ../Doc/tutorial/introduction.rst:365 +#: ../Doc/tutorial/introduction.rst:370 msgid "" "Strings support a large number of methods for basic transformations and " "searching." @@ -430,29 +428,29 @@ msgstr "" "Las cadenas de texto soportan una gran cantidad de métodos para " "transformaciones básicas y búsqueda." -#: ../Doc/tutorial/introduction.rst:369 +#: ../Doc/tutorial/introduction.rst:374 msgid ":ref:`f-strings`" msgstr ":ref:`f-strings`" -#: ../Doc/tutorial/introduction.rst:369 +#: ../Doc/tutorial/introduction.rst:374 msgid "String literals that have embedded expressions." msgstr "Literales de cadena que tienen expresiones embebidas." -#: ../Doc/tutorial/introduction.rst:372 +#: ../Doc/tutorial/introduction.rst:377 msgid ":ref:`formatstrings`" msgstr ":ref:`formatstrings`" -#: ../Doc/tutorial/introduction.rst:372 +#: ../Doc/tutorial/introduction.rst:377 msgid "Information about string formatting with :meth:`str.format`." msgstr "" "Aquí se da información sobre formateo de cadenas de texto con :meth:`str." "format`." -#: ../Doc/tutorial/introduction.rst:375 +#: ../Doc/tutorial/introduction.rst:380 msgid ":ref:`old-string-formatting`" msgstr ":ref:`old-string-formatting`" -#: ../Doc/tutorial/introduction.rst:375 +#: ../Doc/tutorial/introduction.rst:380 msgid "" "The old formatting operations invoked when strings are the left operand of " "the ``%`` operator are described in more detail here." @@ -460,11 +458,11 @@ msgstr "" "Aquí se describen con más detalle las antiguas operaciones para formateo " "utilizadas cuando una cadena de texto está a la izquierda del operador ``%``." -#: ../Doc/tutorial/introduction.rst:382 +#: ../Doc/tutorial/introduction.rst:387 msgid "Lists" msgstr "Listas" -#: ../Doc/tutorial/introduction.rst:384 +#: ../Doc/tutorial/introduction.rst:389 msgid "" "Python knows a number of *compound* data types, used to group together other " "values. The most versatile is the *list*, which can be written as a list of " @@ -477,7 +475,7 @@ msgstr "" "pueden contener ítems de diferentes tipos, pero usualmente los ítems son del " "mismo tipo. ::" -#: ../Doc/tutorial/introduction.rst:393 +#: ../Doc/tutorial/introduction.rst:398 msgid "" "Like strings (and all other built-in :term:`sequence` types), lists can be " "indexed and sliced::" @@ -485,7 +483,7 @@ msgstr "" "Al igual que las cadenas (y todas las demás tipos integrados :term:" "`sequence`), las listas se pueden indexar y segmentar:" -#: ../Doc/tutorial/introduction.rst:403 +#: ../Doc/tutorial/introduction.rst:408 msgid "" "All slice operations return a new list containing the requested elements. " "This means that the following slice returns a :ref:`shallow copy " @@ -495,11 +493,11 @@ msgstr "" "elementos pedidos. Esto significa que la siguiente rebanada retorna una :ref:" "`shallow copy ` de la lista::" -#: ../Doc/tutorial/introduction.rst:410 +#: ../Doc/tutorial/introduction.rst:415 msgid "Lists also support operations like concatenation::" msgstr "Las listas también admiten operaciones como concatenación::" -#: ../Doc/tutorial/introduction.rst:415 +#: ../Doc/tutorial/introduction.rst:420 msgid "" "Unlike strings, which are :term:`immutable`, lists are a :term:`mutable` " "type, i.e. it is possible to change their content::" @@ -507,7 +505,7 @@ msgstr "" "A diferencia de las cadenas, que son :term:`immutable`, las listas son de " "tipo :term:`mutable`, es decir, es posible cambiar su contenido::" -#: ../Doc/tutorial/introduction.rst:425 +#: ../Doc/tutorial/introduction.rst:430 msgid "" "You can also add new items at the end of the list, by using the :meth:`~list." "append` *method* (we will see more about methods later)::" @@ -515,7 +513,7 @@ msgstr "" "También puede agregar nuevos elementos al final de la lista, utilizando el " "*método* :meth:`~list.append` (vamos a ver más sobre los métodos luego)::" -#: ../Doc/tutorial/introduction.rst:433 +#: ../Doc/tutorial/introduction.rst:438 msgid "" "Assignment to slices is also possible, and this can even change the size of " "the list or clear it entirely::" @@ -523,11 +521,11 @@ msgstr "" "También es posible asignar a una rebanada, y esto incluso puede cambiar la " "longitud de la lista o vaciarla totalmente::" -#: ../Doc/tutorial/introduction.rst:452 +#: ../Doc/tutorial/introduction.rst:457 msgid "The built-in function :func:`len` also applies to lists::" msgstr "La función predefinida :func:`len` también sirve para las listas ::" -#: ../Doc/tutorial/introduction.rst:458 +#: ../Doc/tutorial/introduction.rst:463 msgid "" "It is possible to nest lists (create lists containing other lists), for " "example::" @@ -535,11 +533,11 @@ msgstr "" "Es posible anidar listas (crear listas que contengan otras listas), por " "ejemplo::" -#: ../Doc/tutorial/introduction.rst:474 +#: ../Doc/tutorial/introduction.rst:479 msgid "First Steps Towards Programming" msgstr "Primeros pasos hacia la programación" -#: ../Doc/tutorial/introduction.rst:476 +#: ../Doc/tutorial/introduction.rst:481 msgid "" "Of course, we can use Python for more complicated tasks than adding two and " "two together. For instance, we can write an initial sub-sequence of the " @@ -550,11 +548,11 @@ msgstr "" "más dos. Por ejemplo, podemos escribir una parte inicial de la `serie de " "Fibonacci `_ así::" -#: ../Doc/tutorial/introduction.rst:496 +#: ../Doc/tutorial/introduction.rst:501 msgid "This example introduces several new features." msgstr "Este ejemplo introduce varias características nuevas." -#: ../Doc/tutorial/introduction.rst:498 +#: ../Doc/tutorial/introduction.rst:503 msgid "" "The first line contains a *multiple assignment*: the variables ``a`` and " "``b`` simultaneously get the new values 0 and 1. On the last line this is " @@ -568,7 +566,7 @@ msgstr "" "evaluadas primero antes de que se realice cualquiera de las asignaciones. " "Las expresiones del lado derecho se evalúan de izquierda a derecha." -#: ../Doc/tutorial/introduction.rst:504 +#: ../Doc/tutorial/introduction.rst:509 msgid "" "The :keyword:`while` loop executes as long as the condition (here: ``a < " "10``) remains true. In Python, like in C, any non-zero integer value is " @@ -589,7 +587,7 @@ msgstr "" "(mayor que), ``==`` (igual a), ``<=`` (menor que o igual a), ``>=`` (mayor " "que o igual a) y ``!=`` (distinto a)." -#: ../Doc/tutorial/introduction.rst:513 +#: ../Doc/tutorial/introduction.rst:518 msgid "" "The *body* of the loop is *indented*: indentation is Python's way of " "grouping statements. At the interactive prompt, you have to type a tab or " @@ -611,7 +609,7 @@ msgstr "" "la última línea). Nota que cada línea de un bloque básico debe estar " "sangrada de la misma forma." -#: ../Doc/tutorial/introduction.rst:522 +#: ../Doc/tutorial/introduction.rst:527 msgid "" "The :func:`print` function writes the value of the argument(s) it is given. " "It differs from just writing the expression you want to write (as we did " @@ -627,7 +625,7 @@ msgstr "" "de texto son impresas sin comillas y un espacio en blanco se inserta entre " "los elementos, así puedes formatear cosas de una forma agradable::" -#: ../Doc/tutorial/introduction.rst:533 +#: ../Doc/tutorial/introduction.rst:538 msgid "" "The keyword argument *end* can be used to avoid the newline after the " "output, or end the output with a different string::" @@ -635,11 +633,11 @@ msgstr "" "El parámetro nombrado *end* puede usarse para evitar el salto de linea al " "final de la salida, o terminar la salida con una cadena diferente:" -#: ../Doc/tutorial/introduction.rst:545 +#: ../Doc/tutorial/introduction.rst:550 msgid "Footnotes" msgstr "Notas al pie" -#: ../Doc/tutorial/introduction.rst:546 +#: ../Doc/tutorial/introduction.rst:551 msgid "" "Since ``**`` has higher precedence than ``-``, ``-3**2`` will be interpreted " "as ``-(3**2)`` and thus result in ``-9``. To avoid this and get ``9``, you " @@ -649,7 +647,7 @@ msgstr "" "interpretará como ``-(3**2)``, por lo tanto dará como resultado ``-9``. Para " "evitar esto y obtener ``9``, puedes usar ``(-3)**2``." -#: ../Doc/tutorial/introduction.rst:550 +#: ../Doc/tutorial/introduction.rst:555 msgid "" "Unlike other languages, special characters such as ``\\n`` have the same " "meaning with both single (``'...'``) and double (``\"...\"``) quotes. The " @@ -661,3 +659,45 @@ msgstr "" "La única diferencia entre las dos es que dentro de las comillas simples no " "existe la necesidad de escapar ``\"`` (pero tienes que escapar ``\\'``) y " "viceversa." + +#: ../Doc/tutorial/introduction.rst:21 +msgid "# (hash)" +msgstr "" + +#: ../Doc/tutorial/introduction.rst:21 +msgid "comment" +msgstr "" + +#~ msgid "Strings" +#~ msgstr "Cadenas de caracteres" + +#~ msgid "" +#~ "Besides numbers, Python can also manipulate strings, which can be " +#~ "expressed in several ways. They can be enclosed in single quotes " +#~ "(``'...'``) or double quotes (``\"...\"``) with the same result [#]_. " +#~ "``\\`` can be used to escape quotes::" +#~ msgstr "" +#~ "Además de números, Python puede manipular cadenas de texto, las cuales " +#~ "pueden ser expresadas de distintas formas. Pueden estar encerradas en " +#~ "comillas simples (``'...'``) o dobles (``\"...\"``) con el mismo " +#~ "resultado [#]_. ``\\`` puede ser usado para escapar comillas::" + +#~ msgid "" +#~ "In the interactive interpreter, the output string is enclosed in quotes " +#~ "and special characters are escaped with backslashes. While this might " +#~ "sometimes look different from the input (the enclosing quotes could " +#~ "change), the two strings are equivalent. The string is enclosed in " +#~ "double quotes if the string contains a single quote and no double quotes, " +#~ "otherwise it is enclosed in single quotes. The :func:`print` function " +#~ "produces a more readable output, by omitting the enclosing quotes and by " +#~ "printing escaped and special characters::" +#~ msgstr "" +#~ "En el intérprete interactivo, la salida de caracteres está encerrada en " +#~ "comillas y los caracteres especiales se escapan con barras invertidas. " +#~ "Aunque esto a veces se vea diferente de la entrada (las comillas que " +#~ "encierran pueden cambiar), las dos cadenas son equivalentes. La cadena se " +#~ "encierra en comillas dobles si la cadena contiene una comilla simple y " +#~ "ninguna doble, de lo contrario es encerrada en comillas simples. La " +#~ "función :func:`print` produce una salida más legible, omitiendo las " +#~ "comillas que la encierran e imprimiendo caracteres especiales y " +#~ "escapados::" diff --git a/tutorial/modules.po b/tutorial/modules.po index c0f4efbdb1..cf648fd969 100644 --- a/tutorial/modules.po +++ b/tutorial/modules.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-28 11:10-0300\n" "Last-Translator: Carlos A. Crespo \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/tutorial/modules.rst:5 msgid "Modules" @@ -284,8 +283,9 @@ msgid "The Module Search Path" msgstr "El camino de búsqueda de los módulos" #: ../Doc/tutorial/modules.rst:186 +#, fuzzy msgid "" -"When a module named :mod:`spam` is imported, the interpreter first searches " +"When a module named :mod:`!spam` is imported, the interpreter first searches " "for a built-in module with that name. These module names are listed in :data:" "`sys.builtin_module_names`. If not found, it then searches for a file named :" "file:`spam.py` in a list of directories given by the variable :data:`sys." @@ -549,14 +549,15 @@ msgid "Packages" msgstr "Paquetes" #: ../Doc/tutorial/modules.rst:391 +#, fuzzy msgid "" "Packages are a way of structuring Python's module namespace by using " -"\"dotted module names\". For example, the module name :mod:`A.B` designates " -"a submodule named ``B`` in a package named ``A``. Just like the use of " -"modules saves the authors of different modules from having to worry about " -"each other's global variable names, the use of dotted module names saves the " -"authors of multi-module packages like NumPy or Pillow from having to worry " -"about each other's module names." +"\"dotted module names\". For example, the module name :mod:`!A.B` " +"designates a submodule named ``B`` in a package named ``A``. Just like the " +"use of modules saves the authors of different modules from having to worry " +"about each other's global variable names, the use of dotted module names " +"saves the authors of multi-module packages like NumPy or Pillow from having " +"to worry about each other's module names." msgstr "" "Los Paquetes son una forma de estructurar el espacio de nombres de módulos " "de Python usando \"nombres de módulo con puntos\". Por ejemplo, el nombre " @@ -603,13 +604,14 @@ msgstr "" "path``, buscando el sub-directorio del paquete." #: ../Doc/tutorial/modules.rst:439 +#, fuzzy msgid "" "The :file:`__init__.py` files are required to make Python treat directories " "containing the file as packages. This prevents directories with a common " -"name, such as ``string``, unintentionally hiding valid modules that occur " -"later on the module search path. In the simplest case, :file:`__init__.py` " -"can just be an empty file, but it can also execute initialization code for " -"the package or set the ``__all__`` variable, described later." +"name, such as ``string``, from unintentionally hiding valid modules that " +"occur later on the module search path. In the simplest case, :file:`__init__." +"py` can just be an empty file, but it can also execute initialization code " +"for the package or set the ``__all__`` variable, described later." msgstr "" "Los archivos :file:`__init__.py` son obligatorios para que Python trate los " "directorios que contienen los archivos como paquetes. Esto evita que los " @@ -628,8 +630,9 @@ msgstr "" "ejemplo::" #: ../Doc/tutorial/modules.rst:451 +#, fuzzy msgid "" -"This loads the submodule :mod:`sound.effects.echo`. It must be referenced " +"This loads the submodule :mod:`!sound.effects.echo`. It must be referenced " "with its full name. ::" msgstr "" "Esto carga el submódulo :mod:`sound.effects.echo`. Debe hacerse referencia " @@ -640,8 +643,9 @@ msgid "An alternative way of importing the submodule is::" msgstr "Otra alternativa para importar el submódulo es::" #: ../Doc/tutorial/modules.rst:460 +#, fuzzy msgid "" -"This also loads the submodule :mod:`echo`, and makes it available without " +"This also loads the submodule :mod:`!echo`, and makes it available without " "its package prefix, so it can be used as follows::" msgstr "" "Esto también carga el submódulo :mod:`echo`, y lo deja disponible sin su " @@ -655,9 +659,10 @@ msgstr "" "Otra variación más es importar la función o variable deseadas directamente::" #: ../Doc/tutorial/modules.rst:469 +#, fuzzy msgid "" -"Again, this loads the submodule :mod:`echo`, but this makes its function :" -"func:`echofilter` directly available::" +"Again, this loads the submodule :mod:`!echo`, but this makes its function :" +"func:`!echofilter` directly available::" msgstr "" "De nuevo, esto carga el submódulo :mod:`echo`, pero deja directamente " "disponible a la función :func:`echofilter`::" @@ -733,24 +738,36 @@ msgstr "" "código::" #: ../Doc/tutorial/modules.rst:512 +#, fuzzy msgid "" "This would mean that ``from sound.effects import *`` would import the three " -"named submodules of the :mod:`sound.effects` package." +"named submodules of the :mod:`!sound.effects` package." msgstr "" "Esto significaría que ``from sound.effects import *`` importaría esos tres " "submódulos del paquete :mod:`sound.effects`." #: ../Doc/tutorial/modules.rst:515 msgid "" +"Be aware that submodules might become shadowed by locally defined names. For " +"example, if you added a ``reverse`` function to the :file:`sound/effects/" +"__init__.py` file, the ``from sound.effects import *`` would only import the " +"two submodules ``echo`` and ``surround``, but *not* the ``reverse`` " +"submodule, because it is shadowed by the locally defined ``reverse`` " +"function::" +msgstr "" + +#: ../Doc/tutorial/modules.rst:531 +#, fuzzy +msgid "" "If ``__all__`` is not defined, the statement ``from sound.effects import *`` " -"does *not* import all submodules from the package :mod:`sound.effects` into " -"the current namespace; it only ensures that the package :mod:`sound.effects` " -"has been imported (possibly running any initialization code in :file:" -"`__init__.py`) and then imports whatever names are defined in the package. " -"This includes any names defined (and submodules explicitly loaded) by :file:" -"`__init__.py`. It also includes any submodules of the package that were " -"explicitly loaded by previous :keyword:`import` statements. Consider this " -"code::" +"does *not* import all submodules from the package :mod:`!sound.effects` into " +"the current namespace; it only ensures that the package :mod:`!sound." +"effects` has been imported (possibly running any initialization code in :" +"file:`__init__.py`) and then imports whatever names are defined in the " +"package. This includes any names defined (and submodules explicitly loaded) " +"by :file:`__init__.py`. It also includes any submodules of the package that " +"were explicitly loaded by previous :keyword:`import` statements. Consider " +"this code::" msgstr "" "Si no se define ``__all__``, la declaración ``from sound.effects import *`` " "*no* importa todos los submódulos del paquete :mod:`sound.effects` al " @@ -763,19 +780,20 @@ msgstr "" "explícitamente cargado por declaraciones :keyword:`import` previas. " "Considere este código::" -#: ../Doc/tutorial/modules.rst:528 +#: ../Doc/tutorial/modules.rst:544 +#, fuzzy msgid "" -"In this example, the :mod:`echo` and :mod:`surround` modules are imported in " -"the current namespace because they are defined in the :mod:`sound.effects` " -"package when the ``from...import`` statement is executed. (This also works " -"when ``__all__`` is defined.)" +"In this example, the :mod:`!echo` and :mod:`!surround` modules are imported " +"in the current namespace because they are defined in the :mod:`!sound." +"effects` package when the ``from...import`` statement is executed. (This " +"also works when ``__all__`` is defined.)" msgstr "" "En este ejemplo, los módulos :mod:`echo` y :mod:`surround` se importan en el " "espacio de nombre actual porque están definidos en el paquete :mod:`sound." "effects` cuando se ejecuta la declaración ``from...import``. (Esto también " "funciona cuando se define ``__all__``)." -#: ../Doc/tutorial/modules.rst:533 +#: ../Doc/tutorial/modules.rst:549 msgid "" "Although certain modules are designed to export only names that follow " "certain patterns when you use ``import *``, it is still considered bad " @@ -785,7 +803,7 @@ msgstr "" "que siguen ciertos patrones cuando uses ``import *``, también se considera " "una mala práctica en código de producción." -#: ../Doc/tutorial/modules.rst:537 +#: ../Doc/tutorial/modules.rst:553 msgid "" "Remember, there is nothing wrong with using ``from package import " "specific_submodule``! In fact, this is the recommended notation unless the " @@ -797,16 +815,17 @@ msgstr "" "el módulo que importamos necesite usar submódulos con el mismo nombre desde " "un paquete diferente." -#: ../Doc/tutorial/modules.rst:546 +#: ../Doc/tutorial/modules.rst:562 msgid "Intra-package References" msgstr "Referencias internas en paquetes" -#: ../Doc/tutorial/modules.rst:548 +#: ../Doc/tutorial/modules.rst:564 +#, fuzzy msgid "" -"When packages are structured into subpackages (as with the :mod:`sound` " +"When packages are structured into subpackages (as with the :mod:`!sound` " "package in the example), you can use absolute imports to refer to submodules " -"of siblings packages. For example, if the module :mod:`sound.filters." -"vocoder` needs to use the :mod:`echo` module in the :mod:`sound.effects` " +"of siblings packages. For example, if the module :mod:`!sound.filters." +"vocoder` needs to use the :mod:`!echo` module in the :mod:`!sound.effects` " "package, it can use ``from sound.effects import echo``." msgstr "" "Cuando se estructuran los paquetes en sub-paquetes (como en el ejemplo :mod:" @@ -815,19 +834,20 @@ msgstr "" "necesita usar el módulo :mod:`echo` en el paquete :mod:`sound.effects`, " "puede hacer ``from sound.effects import echo``." -#: ../Doc/tutorial/modules.rst:554 +#: ../Doc/tutorial/modules.rst:570 +#, fuzzy msgid "" "You can also write relative imports, with the ``from module import name`` " "form of import statement. These imports use leading dots to indicate the " "current and parent packages involved in the relative import. From the :mod:" -"`surround` module for example, you might use::" +"`!surround` module for example, you might use::" msgstr "" "También puedes escribir ``import`` relativos con la forma ``from module " "import name``. Estos imports usan puntos adelante para indicar los paquetes " "actuales o paquetes padres involucrados en el import relativo. En el " "ejemplo :mod:`surround`, podrías hacer::" -#: ../Doc/tutorial/modules.rst:563 +#: ../Doc/tutorial/modules.rst:579 msgid "" "Note that relative imports are based on the name of the current module. " "Since the name of the main module is always ``\"__main__\"``, modules " @@ -839,11 +859,11 @@ msgstr "" "pensados para usarse como módulo principal de una aplicación Python siempre " "deberían usar ``import`` absolutos." -#: ../Doc/tutorial/modules.rst:569 +#: ../Doc/tutorial/modules.rst:585 msgid "Packages in Multiple Directories" msgstr "Paquetes en múltiples directorios" -#: ../Doc/tutorial/modules.rst:571 +#: ../Doc/tutorial/modules.rst:587 msgid "" "Packages support one more special attribute, :attr:`__path__`. This is " "initialized to be a list containing the name of the directory holding the " @@ -857,7 +877,7 @@ msgstr "" "archivo se ejecute. Esta variable puede modificarse, afectando búsquedas " "futuras de módulos y subpaquetes contenidos en el paquete." -#: ../Doc/tutorial/modules.rst:577 +#: ../Doc/tutorial/modules.rst:593 msgid "" "While this feature is not often needed, it can be used to extend the set of " "modules found in a package." @@ -865,11 +885,11 @@ msgstr "" "Aunque esta característica no se necesita frecuentemente, puede usarse para " "extender el conjunto de módulos que se encuentran en el paquete." -#: ../Doc/tutorial/modules.rst:582 +#: ../Doc/tutorial/modules.rst:598 msgid "Footnotes" msgstr "Notas al pie" -#: ../Doc/tutorial/modules.rst:583 +#: ../Doc/tutorial/modules.rst:599 msgid "" "In fact function definitions are also 'statements' that are 'executed'; the " "execution of a module-level function definition adds the function name to " @@ -878,3 +898,29 @@ msgstr "" "De hecho, las definiciones de funciones también son \"declaraciones\" que se " "\"ejecutan\"; la ejecución de una definición de función a nivel de módulo, " "añade el nombre de la función en el espacio de nombres global del módulo." + +#: ../Doc/tutorial/modules.rst:184 ../Doc/tutorial/modules.rst:267 +#: ../Doc/tutorial/modules.rst:348 +#, fuzzy +msgid "module" +msgstr "Módulos" + +#: ../Doc/tutorial/modules.rst:184 +msgid "search" +msgstr "" + +#: ../Doc/tutorial/modules.rst:184 +msgid "path" +msgstr "" + +#: ../Doc/tutorial/modules.rst:267 +msgid "sys" +msgstr "" + +#: ../Doc/tutorial/modules.rst:348 +msgid "builtins" +msgstr "" + +#: ../Doc/tutorial/modules.rst:492 +msgid "__all__" +msgstr "" diff --git a/tutorial/stdlib.po b/tutorial/stdlib.po index c9275a9440..be39b02a0c 100644 --- a/tutorial/stdlib.po +++ b/tutorial/stdlib.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-05-15 23:37-0300\n" "Last-Translator: \n" "Language: es\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/tutorial/stdlib.rst:5 msgid "Brief Tour of the Standard Library" @@ -80,18 +80,24 @@ msgid "Command Line Arguments" msgstr "Argumentos de linea de órdenes" #: ../Doc/tutorial/stdlib.rst:66 +#, fuzzy msgid "" "Common utility scripts often need to process command line arguments. These " "arguments are stored in the :mod:`sys` module's *argv* attribute as a list. " -"For instance the following output results from running ``python demo.py one " -"two three`` at the command line::" +"For instance, let's take the following :file:`demo.py` file::" msgstr "" "Los programas frecuentemente necesitan procesar argumentos de linea de " "órdenes. Estos argumentos se almacenan en el atributo *argv* del módulo :mod:" "`sys` como una lista. Por ejemplo, la siguiente salida resulta de ejecutar " "``python demo.py uno dos tres`` en la línea de órdenes::" -#: ../Doc/tutorial/stdlib.rst:75 +#: ../Doc/tutorial/stdlib.rst:74 +msgid "" +"Here is the output from running ``python demo.py one two three`` at the " +"command line::" +msgstr "" + +#: ../Doc/tutorial/stdlib.rst:79 msgid "" "The :mod:`argparse` module provides a more sophisticated mechanism to " "process command line arguments. The following script extracts one or more " @@ -101,7 +107,7 @@ msgstr "" "argumentos recibidos vía línea de comandos. El siguiente *script* extrae uno " "o más nombres de archivos y un número opcional de líneas para mostrar::" -#: ../Doc/tutorial/stdlib.rst:89 +#: ../Doc/tutorial/stdlib.rst:93 msgid "" "When run at the command line with ``python top.py --lines=5 alpha.txt beta." "txt``, the script sets ``args.lines`` to ``5`` and ``args.filenames`` to " @@ -111,11 +117,11 @@ msgstr "" "alpha.txt beta.txt``, el *script* establece ``args.lines`` a ``5`` y ``args." "filenames`` a ``['alpha.txt', 'beta.txt']``." -#: ../Doc/tutorial/stdlib.rst:97 +#: ../Doc/tutorial/stdlib.rst:101 msgid "Error Output Redirection and Program Termination" msgstr "Redirigir la salida de error y finalización del programa" -#: ../Doc/tutorial/stdlib.rst:99 +#: ../Doc/tutorial/stdlib.rst:103 msgid "" "The :mod:`sys` module also has attributes for *stdin*, *stdout*, and " "*stderr*. The latter is useful for emitting warnings and error messages to " @@ -125,15 +131,15 @@ msgstr "" "*stderr*. Este último es útil para emitir mensajes de alerta y error para " "que se vean incluso cuando se haya redirigido *stdout*::" -#: ../Doc/tutorial/stdlib.rst:106 +#: ../Doc/tutorial/stdlib.rst:110 msgid "The most direct way to terminate a script is to use ``sys.exit()``." msgstr "La forma más directa de terminar un programa es usar ``sys.exit()``." -#: ../Doc/tutorial/stdlib.rst:112 +#: ../Doc/tutorial/stdlib.rst:116 msgid "String Pattern Matching" msgstr "Coincidencia en patrones de cadenas" -#: ../Doc/tutorial/stdlib.rst:114 +#: ../Doc/tutorial/stdlib.rst:118 msgid "" "The :mod:`re` module provides regular expression tools for advanced string " "processing. For complex matching and manipulation, regular expressions offer " @@ -144,7 +150,7 @@ msgstr "" "complejas, las expresiones regulares ofrecen soluciones concisas y " "optimizadas::" -#: ../Doc/tutorial/stdlib.rst:124 +#: ../Doc/tutorial/stdlib.rst:128 msgid "" "When only simple capabilities are needed, string methods are preferred " "because they are easier to read and debug::" @@ -152,11 +158,11 @@ msgstr "" "Cuando se necesita algo más sencillo solamente, se prefieren los métodos de " "las cadenas porque son más fáciles de leer y depurar::" -#: ../Doc/tutorial/stdlib.rst:134 +#: ../Doc/tutorial/stdlib.rst:138 msgid "Mathematics" msgstr "Matemática" -#: ../Doc/tutorial/stdlib.rst:136 +#: ../Doc/tutorial/stdlib.rst:140 msgid "" "The :mod:`math` module gives access to the underlying C library functions " "for floating point math::" @@ -164,13 +170,13 @@ msgstr "" "El módulo :mod:`math` permite el acceso a las funciones de la biblioteca C " "subyacente para la matemática de punto flotante::" -#: ../Doc/tutorial/stdlib.rst:145 +#: ../Doc/tutorial/stdlib.rst:149 msgid "The :mod:`random` module provides tools for making random selections::" msgstr "" "El módulo :mod:`random` provee herramientas para realizar selecciones al " "azar::" -#: ../Doc/tutorial/stdlib.rst:157 +#: ../Doc/tutorial/stdlib.rst:161 msgid "" "The :mod:`statistics` module calculates basic statistical properties (the " "mean, median, variance, etc.) of numeric data::" @@ -178,7 +184,7 @@ msgstr "" "El módulo :mod:`statistics` calcula propiedades de estadística básica (la " "media, mediana, varianza, etc) de datos numéricos::" -#: ../Doc/tutorial/stdlib.rst:169 +#: ../Doc/tutorial/stdlib.rst:173 msgid "" "The SciPy project has many other modules for numerical " "computations." @@ -186,11 +192,11 @@ msgstr "" "El proyecto SciPy tiene muchos otros módulos para " "cálculos numéricos." -#: ../Doc/tutorial/stdlib.rst:175 +#: ../Doc/tutorial/stdlib.rst:179 msgid "Internet Access" msgstr "Acceso a Internet" -#: ../Doc/tutorial/stdlib.rst:177 +#: ../Doc/tutorial/stdlib.rst:181 msgid "" "There are a number of modules for accessing the internet and processing " "internet protocols. Two of the simplest are :mod:`urllib.request` for " @@ -200,17 +206,17 @@ msgstr "" "de los más simples son :mod:`urllib.request` para traer data de URLs y :mod:" "`smtplib` para mandar correos::" -#: ../Doc/tutorial/stdlib.rst:200 +#: ../Doc/tutorial/stdlib.rst:204 msgid "(Note that the second example needs a mailserver running on localhost.)" msgstr "" "(Notá que el segundo ejemplo necesita un servidor de correo corriendo en la " "máquina local)" -#: ../Doc/tutorial/stdlib.rst:206 +#: ../Doc/tutorial/stdlib.rst:210 msgid "Dates and Times" msgstr "Fechas y tiempos" -#: ../Doc/tutorial/stdlib.rst:208 +#: ../Doc/tutorial/stdlib.rst:212 msgid "" "The :mod:`datetime` module supplies classes for manipulating dates and times " "in both simple and complex ways. While date and time arithmetic is " @@ -224,11 +230,11 @@ msgstr "" "de partes para gestionarlas o formatear la salida. El módulo también " "soporta objetos que son conscientes de la zona horaria. ::" -#: ../Doc/tutorial/stdlib.rst:232 +#: ../Doc/tutorial/stdlib.rst:236 msgid "Data Compression" msgstr "Compresión de datos" -#: ../Doc/tutorial/stdlib.rst:234 +#: ../Doc/tutorial/stdlib.rst:238 msgid "" "Common data archiving and compression formats are directly supported by " "modules including: :mod:`zlib`, :mod:`gzip`, :mod:`bz2`, :mod:`lzma`, :mod:" @@ -238,11 +244,11 @@ msgstr "" "los módulos: :mod:`zlib`, :mod:`gzip`, :mod:`bz2`, :mod:`lzma`, :mod:" "`zipfile` y :mod:`tarfile`. ::" -#: ../Doc/tutorial/stdlib.rst:254 +#: ../Doc/tutorial/stdlib.rst:258 msgid "Performance Measurement" msgstr "Medición de rendimiento" -#: ../Doc/tutorial/stdlib.rst:256 +#: ../Doc/tutorial/stdlib.rst:260 msgid "" "Some Python users develop a deep interest in knowing the relative " "performance of different approaches to the same problem. Python provides a " @@ -253,7 +259,7 @@ msgstr "" "provee una herramienta de medición que responde esas preguntas " "inmediatamente." -#: ../Doc/tutorial/stdlib.rst:260 +#: ../Doc/tutorial/stdlib.rst:264 msgid "" "For example, it may be tempting to use the tuple packing and unpacking " "feature instead of the traditional approach to swapping arguments. The :mod:" @@ -264,7 +270,7 @@ msgstr "" "intercambiar argumentos. El módulo :mod:`timeit` muestra rápidamente una " "modesta ventaja de rendimiento::" -#: ../Doc/tutorial/stdlib.rst:270 +#: ../Doc/tutorial/stdlib.rst:274 msgid "" "In contrast to :mod:`timeit`'s fine level of granularity, the :mod:`profile` " "and :mod:`pstats` modules provide tools for identifying time critical " @@ -274,11 +280,11 @@ msgstr "" "módulos :mod:`profile` y :mod:`pstats` proveen herramientas para identificar " "secciones críticas de tiempo en bloques de código más grandes." -#: ../Doc/tutorial/stdlib.rst:278 +#: ../Doc/tutorial/stdlib.rst:282 msgid "Quality Control" msgstr "Control de calidad" -#: ../Doc/tutorial/stdlib.rst:280 +#: ../Doc/tutorial/stdlib.rst:284 msgid "" "One approach for developing high quality software is to write tests for each " "function as it is developed and to run those tests frequently during the " @@ -288,7 +294,7 @@ msgstr "" "cada función mientras se la desarrolla, y correr esas pruebas frecuentemente " "durante el proceso de desarrollo." -#: ../Doc/tutorial/stdlib.rst:284 +#: ../Doc/tutorial/stdlib.rst:288 msgid "" "The :mod:`doctest` module provides a tool for scanning a module and " "validating tests embedded in a program's docstrings. Test construction is " @@ -305,7 +311,7 @@ msgstr "" "permite que el módulo *doctest* se asegure que el código permanece fiel a la " "documentación::" -#: ../Doc/tutorial/stdlib.rst:302 +#: ../Doc/tutorial/stdlib.rst:306 msgid "" "The :mod:`unittest` module is not as effortless as the :mod:`doctest` " "module, but it allows a more comprehensive set of tests to be maintained in " @@ -315,11 +321,11 @@ msgstr "" "`doctest`, pero permite que se mantenga en un archivo separado un conjunto " "más comprensivo de pruebas::" -#: ../Doc/tutorial/stdlib.rst:324 +#: ../Doc/tutorial/stdlib.rst:328 msgid "Batteries Included" msgstr "Las pilas incluidas" -#: ../Doc/tutorial/stdlib.rst:326 +#: ../Doc/tutorial/stdlib.rst:330 msgid "" "Python has a \"batteries included\" philosophy. This is best seen through " "the sophisticated and robust capabilities of its larger packages. For " @@ -329,7 +335,7 @@ msgstr "" "capacidades robustas y sofisticadas de sus paquetes más grandes. Por " "ejemplo:" -#: ../Doc/tutorial/stdlib.rst:329 +#: ../Doc/tutorial/stdlib.rst:333 #, fuzzy msgid "" "The :mod:`xmlrpc.client` and :mod:`xmlrpc.server` modules make implementing " @@ -341,7 +347,7 @@ msgstr "" "pesar de los nombres de los nombres, no se necesita ningún conocimiento o " "manejo de archivos XML." -#: ../Doc/tutorial/stdlib.rst:333 +#: ../Doc/tutorial/stdlib.rst:337 msgid "" "The :mod:`email` package is a library for managing email messages, including " "MIME and other :rfc:`2822`-based message documents. Unlike :mod:`smtplib` " @@ -358,7 +364,7 @@ msgstr "" "mensajes complejas (incluidos los archivos adjuntos) y para implementar " "protocolos de codificación y encabezado de Internet." -#: ../Doc/tutorial/stdlib.rst:340 +#: ../Doc/tutorial/stdlib.rst:344 msgid "" "The :mod:`json` package provides robust support for parsing this popular " "data interchange format. The :mod:`csv` module supports direct reading and " @@ -377,7 +383,7 @@ msgstr "" "paquetes simplifican en gran medida el intercambio de datos entre " "aplicaciones de Python y otras herramientas." -#: ../Doc/tutorial/stdlib.rst:349 +#: ../Doc/tutorial/stdlib.rst:353 msgid "" "The :mod:`sqlite3` module is a wrapper for the SQLite database library, " "providing a persistent database that can be updated and accessed using " @@ -387,10 +393,18 @@ msgstr "" "datos SQLite, proporcionando una base de datos persistente que se puede " "actualizar y acceder mediante una sintaxis SQL ligeramente no estándar." -#: ../Doc/tutorial/stdlib.rst:353 +#: ../Doc/tutorial/stdlib.rst:357 msgid "" "Internationalization is supported by a number of modules including :mod:" "`gettext`, :mod:`locale`, and the :mod:`codecs` package." msgstr "" "La internacionalización es compatible con una serie de módulos, incluyendo :" "mod:`gettext`, :mod:`locale`, y el paquete :mod:`codecs`." + +#: ../Doc/tutorial/stdlib.rst:27 +msgid "built-in function" +msgstr "" + +#: ../Doc/tutorial/stdlib.rst:27 +msgid "help" +msgstr "" diff --git a/tutorial/venv.po b/tutorial/venv.po index ae9eeb0830..1082fdfdda 100644 --- a/tutorial/venv.po +++ b/tutorial/venv.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-01 21:45-0300\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/tutorial/venv.rst:6 msgid "Virtual Environments and Packages" @@ -184,10 +183,11 @@ msgid "Managing Packages with pip" msgstr "Manejando paquetes con pip" #: ../Doc/tutorial/venv.rst:100 +#, fuzzy msgid "" "You can install, upgrade, and remove packages using a program called :" -"program:`pip`. By default ``pip`` will install packages from the Python " -"Package Index, . You can browse the Python Package Index " +"program:`pip`. By default ``pip`` will install packages from the `Python " +"Package Index `_. You can browse the Python Package Index " "by going to it in your web browser." msgstr "" "Puede instalar, actualizar y eliminar paquetes usando un programa llamado :" @@ -277,11 +277,12 @@ msgstr "" "entonces instalar todos los paquetes necesarios con ``install -r``:" #: ../Doc/tutorial/venv.rst:207 +#, fuzzy msgid "" "``pip`` has many more options. Consult the :ref:`installing-index` guide " "for complete documentation for ``pip``. When you've written a package and " -"want to make it available on the Python Package Index, consult the :ref:" -"`distributing-index` guide." +"want to make it available on the Python Package Index, consult the `Python " +"packaging user guide`_." msgstr "" "``pip`` tiene muchas más opciones. Consulte la guía :ref:`installing-index` " "para obtener documentación completa de ``pip``. Cuando haya escrito un " diff --git a/using/cmdline.po b/using/cmdline.po index 3b64159aee..56aca61a4c 100644 --- a/using/cmdline.po +++ b/using/cmdline.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-10-18 21:54-0300\n" "Last-Translator: Andrea Griffiths \n" "Language: es_AR\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/using/cmdline.rst:9 msgid "Command line and environment" @@ -486,15 +486,23 @@ msgstr "" "marca de tiempo." #: ../Doc/using/cmdline.rst:274 +#, fuzzy msgid "" -"Turn on parser debugging output (for expert only, depending on compilation " -"options). See also :envvar:`PYTHONDEBUG`." +"Turn on parser debugging output (for expert only). See also the :envvar:" +"`PYTHONDEBUG` environment variable." msgstr "" "Active la salida de depuración del analizador (solo para expertos, " "dependiendo de las opciones de compilación). Véase también :envvar:" "`PYTHONDEBUG`." -#: ../Doc/using/cmdline.rst:280 +#: ../Doc/using/cmdline.rst:277 +#, fuzzy +msgid "" +"This option requires a :ref:`debug build of Python `, otherwise " +"it's ignored." +msgstr "Necesita :ref:`compilación de depuración de Python `." + +#: ../Doc/using/cmdline.rst:283 msgid "" "Ignore all :envvar:`PYTHON*` environment variables, e.g. :envvar:" "`PYTHONPATH` and :envvar:`PYTHONHOME`, that might be set." @@ -502,11 +510,11 @@ msgstr "" "Ignore todas las variables de entorno :envvar:`PYTHON*`, por ejemplo :envvar:" "`PYTHONPATH` y :envvar:`PYTHONHOME`, que podrían establecerse." -#: ../Doc/using/cmdline.rst:283 +#: ../Doc/using/cmdline.rst:286 msgid "See also the :option:`-P` and :option:`-I` (isolated) options." msgstr "Véase también las opciones :option:`-P` e :option:`-I` (aisladas)." -#: ../Doc/using/cmdline.rst:288 +#: ../Doc/using/cmdline.rst:291 msgid "" "When a script is passed as first argument or the :option:`-c` option is " "used, enter interactive mode after executing the script or the command, even " @@ -518,7 +526,7 @@ msgstr "" "comando, incluso cuando :data:`sys.stdin` no parece ser un terminal. El " "archivo :envvar:`PYTHONSTARTUP` no se lee." -#: ../Doc/using/cmdline.rst:293 +#: ../Doc/using/cmdline.rst:296 msgid "" "This can be useful to inspect global variables or a stack trace when a " "script raises an exception. See also :envvar:`PYTHONINSPECT`." @@ -527,7 +535,7 @@ msgstr "" "pila cuando un script lanza una excepción. Véase también :envvar:" "`PYTHONINSPECT`." -#: ../Doc/using/cmdline.rst:299 +#: ../Doc/using/cmdline.rst:302 msgid "" "Run Python in isolated mode. This also implies :option:`-E`, :option:`-P` " "and :option:`-s` options." @@ -535,7 +543,7 @@ msgstr "" "Ejecute Python en modo aislado. Esto también implica las opciones :option:`-" "E`, :option:`-P` y :option:`-s`." -#: ../Doc/using/cmdline.rst:302 +#: ../Doc/using/cmdline.rst:305 msgid "" "In isolated mode :data:`sys.path` contains neither the script's directory " "nor the user's site-packages directory. All :envvar:`PYTHON*` environment " @@ -547,7 +555,7 @@ msgstr "" "envvar:`PYTHON*` también se ignoran. Se pueden imponer otras restricciones " "para evitar que el usuario inyecte código malicioso." -#: ../Doc/using/cmdline.rst:312 +#: ../Doc/using/cmdline.rst:315 msgid "" "Remove assert statements and any code conditional on the value of :const:" "`__debug__`. Augment the filename for compiled (:term:`bytecode`) files by " @@ -559,11 +567,11 @@ msgstr "" "compilados (:term:`bytecode`) agregando ``.opt-1`` antes de la extensión ``." "pyc`` (consulte :pep:`488`). Véase también :envvar:`PYTHONOPTIMIZE`." -#: ../Doc/using/cmdline.rst:317 ../Doc/using/cmdline.rst:327 +#: ../Doc/using/cmdline.rst:320 ../Doc/using/cmdline.rst:330 msgid "Modify ``.pyc`` filenames according to :pep:`488`." msgstr "Modifique los nombres de archivo ``.pyc`` según :pep:`488`." -#: ../Doc/using/cmdline.rst:323 +#: ../Doc/using/cmdline.rst:326 msgid "" "Do :option:`-O` and also discard docstrings. Augment the filename for " "compiled (:term:`bytecode`) files by adding ``.opt-2`` before the ``.pyc`` " @@ -573,41 +581,41 @@ msgstr "" "archivo para los archivos compilados (:term:`bytecode`) agregando ``.opt-2`` " "antes de la extensión ``.pyc`` (consulte :pep:`488`)." -#: ../Doc/using/cmdline.rst:333 +#: ../Doc/using/cmdline.rst:336 msgid "Don't prepend a potentially unsafe path to :data:`sys.path`:" msgstr "" -#: ../Doc/using/cmdline.rst:335 +#: ../Doc/using/cmdline.rst:338 msgid "" "``python -m module`` command line: Don't prepend the current working " "directory." msgstr "" -#: ../Doc/using/cmdline.rst:337 +#: ../Doc/using/cmdline.rst:340 msgid "" "``python script.py`` command line: Don't prepend the script's directory. If " "it's a symbolic link, resolve symbolic links." msgstr "" -#: ../Doc/using/cmdline.rst:339 +#: ../Doc/using/cmdline.rst:342 msgid "" "``python -c code`` and ``python`` (REPL) command lines: Don't prepend an " "empty string, which means the current working directory." msgstr "" -#: ../Doc/using/cmdline.rst:342 +#: ../Doc/using/cmdline.rst:345 msgid "" "See also the :envvar:`PYTHONSAFEPATH` environment variable, and :option:`-E` " "and :option:`-I` (isolated) options." msgstr "" -#: ../Doc/using/cmdline.rst:350 +#: ../Doc/using/cmdline.rst:353 msgid "" "Don't display the copyright and version messages even in interactive mode." msgstr "" "No muestres los mensajes de copyright y versión incluso en modo interactivo." -#: ../Doc/using/cmdline.rst:357 +#: ../Doc/using/cmdline.rst:360 msgid "" "Turn on hash randomization. This option only has an effect if the :envvar:" "`PYTHONHASHSEED` environment variable is set to ``0``, since hash " @@ -617,7 +625,7 @@ msgstr "" "variable de entorno :envvar:`PYTHONHASHSEED` está establecida en ``0``, ya " "que la aleatorización de hash está habilitada de forma predeterminada." -#: ../Doc/using/cmdline.rst:361 +#: ../Doc/using/cmdline.rst:364 msgid "" "On previous versions of Python, this option turns on hash randomization, so " "that the :meth:`__hash__` values of str and bytes objects are \"salted\" " @@ -631,13 +639,13 @@ msgstr "" "constantes dentro de un proceso de Python individual, no son predecibles " "entre invocaciones repetidas de Python." -#: ../Doc/using/cmdline.rst:367 +#: ../Doc/using/cmdline.rst:370 #, fuzzy msgid "" "Hash randomization is intended to provide protection against a denial-of-" "service caused by carefully chosen inputs that exploit the worst case " "performance of a dict construction, O(n\\ :sup:`2`) complexity. See http://" -"www.ocert.org/advisories/ocert-2011-003.html for details." +"ocert.org/advisories/ocert-2011-003.html for details." msgstr "" "La aleatorización de hash está diseñada para proporcionar protección contra " "una denegación de servicio causada por entradas cuidadosamente elegidas que " @@ -645,7 +653,7 @@ msgstr "" "complejidad de O(n\\ :sup:`2`) . Consulte http://www.ocert.org/advisories/" "ocert-2011-003.html para obtener más información." -#: ../Doc/using/cmdline.rst:372 +#: ../Doc/using/cmdline.rst:375 msgid "" ":envvar:`PYTHONHASHSEED` allows you to set a fixed value for the hash seed " "secret." @@ -653,11 +661,11 @@ msgstr "" ":envvar:`PYTHONHASHSEED` le permite establecer un valor fijo para el secreto " "de inicialización hash." -#: ../Doc/using/cmdline.rst:375 +#: ../Doc/using/cmdline.rst:378 msgid "The option is no longer ignored." msgstr "La opción ya no se omite." -#: ../Doc/using/cmdline.rst:383 +#: ../Doc/using/cmdline.rst:386 msgid "" "Don't add the :data:`user site-packages directory ` to :data:" "`sys.path`." @@ -665,12 +673,12 @@ msgstr "" "No agregue el :data:`user site-packages directory ` a :data:" "`sys.path`." -#: ../Doc/using/cmdline.rst:388 ../Doc/using/cmdline.rst:790 -#: ../Doc/using/cmdline.rst:802 +#: ../Doc/using/cmdline.rst:391 ../Doc/using/cmdline.rst:807 +#: ../Doc/using/cmdline.rst:819 msgid ":pep:`370` -- Per user site-packages directory" msgstr ":pep:`370` -- Directorio de paquetes de sitio por usuario" -#: ../Doc/using/cmdline.rst:393 +#: ../Doc/using/cmdline.rst:396 msgid "" "Disable the import of the module :mod:`site` and the site-dependent " "manipulations of :data:`sys.path` that it entails. Also disable these " @@ -682,7 +690,7 @@ msgstr "" "deshabilite estas manipulaciones si :mod:`site` se importa explícitamente " "más tarde (llame a :func:`site.main` si desea que se activen)." -#: ../Doc/using/cmdline.rst:401 +#: ../Doc/using/cmdline.rst:404 msgid "" "Force the stdout and stderr streams to be unbuffered. This option has no " "effect on the stdin stream." @@ -690,16 +698,16 @@ msgstr "" "Forzar que las corrientes stdout y stderr no estén en búfer. Esta opción no " "tiene ningún efecto en la secuencia stdin." -#: ../Doc/using/cmdline.rst:404 +#: ../Doc/using/cmdline.rst:407 msgid "See also :envvar:`PYTHONUNBUFFERED`." msgstr "Véase también :envvar:`PYTHONUNBUFFERED`." -#: ../Doc/using/cmdline.rst:406 +#: ../Doc/using/cmdline.rst:409 msgid "The text layer of the stdout and stderr streams now is unbuffered." msgstr "" "La capa de texto de las secuencias stdout y stderr ahora no está en búfer." -#: ../Doc/using/cmdline.rst:412 +#: ../Doc/using/cmdline.rst:415 msgid "" "Print a message each time a module is initialized, showing the place " "(filename or built-in module) from which it is loaded. When given twice (:" @@ -712,7 +720,7 @@ msgstr "" "comprueba al buscar un módulo. También proporciona información sobre la " "limpieza del módulo en la salida." -#: ../Doc/using/cmdline.rst:417 +#: ../Doc/using/cmdline.rst:420 msgid "" "The :mod:`site` module reports the site-specific paths and :file:`.pth` " "files being processed." @@ -720,11 +728,11 @@ msgstr "" "El módulo :mod:`site` informa las rutas específicas del sitio y los " "archivos :file:`.pth` que se están procesando." -#: ../Doc/using/cmdline.rst:421 +#: ../Doc/using/cmdline.rst:424 msgid "See also :envvar:`PYTHONVERBOSE`." msgstr "Véase también :envvar:`PYTHONVERBOSE`." -#: ../Doc/using/cmdline.rst:427 +#: ../Doc/using/cmdline.rst:430 msgid "" "Warning control. Python's warning machinery by default prints warning " "messages to :data:`sys.stderr`." @@ -732,7 +740,7 @@ msgstr "" "Control de advertencia. La maquinaria de advertencia de Python por defecto " "imprime mensajes de advertencia en :data:`sys.stderr`." -#: ../Doc/using/cmdline.rst:430 ../Doc/using/cmdline.rst:818 +#: ../Doc/using/cmdline.rst:433 ../Doc/using/cmdline.rst:835 msgid "" "The simplest settings apply a particular action unconditionally to all " "warnings emitted by a process (even those that are otherwise ignored by " @@ -742,7 +750,7 @@ msgstr "" "incondicionalmente a todas las advertencias emitidas por un proceso (incluso " "aquellas que de otro modo se ignoran de forma predeterminada)::" -#: ../Doc/using/cmdline.rst:441 +#: ../Doc/using/cmdline.rst:444 msgid "" "The action names can be abbreviated as desired and the interpreter will " "resolve them to the appropriate action name. For example, ``-Wi`` is the " @@ -752,11 +760,11 @@ msgstr "" "resolverá con el nombre de acción adecuado. Por ejemplo, ``-Wi`` es lo mismo " "que ``-Wignore``." -#: ../Doc/using/cmdline.rst:445 +#: ../Doc/using/cmdline.rst:448 msgid "The full form of argument is::" msgstr "La forma completa del argumento es::" -#: ../Doc/using/cmdline.rst:449 +#: ../Doc/using/cmdline.rst:452 msgid "" "Empty fields match all values; trailing empty fields may be omitted. For " "example ``-W ignore::DeprecationWarning`` ignores all DeprecationWarning " @@ -766,7 +774,7 @@ msgstr "" "pueden omitirse. Por ejemplo, ``-W ignore::DeprecationWarning`` ignora todas " "las advertencias de DeprecationWarning." -#: ../Doc/using/cmdline.rst:453 +#: ../Doc/using/cmdline.rst:456 msgid "" "The *action* field is as explained above but only applies to warnings that " "match the remaining fields." @@ -774,7 +782,7 @@ msgstr "" "El campo *action* es como se explicó anteriormente, pero solo se aplica a " "las advertencias que coinciden con los campos restantes." -#: ../Doc/using/cmdline.rst:456 +#: ../Doc/using/cmdline.rst:459 msgid "" "The *message* field must match the whole warning message; this match is case-" "insensitive." @@ -782,7 +790,7 @@ msgstr "" "El campo *message* debe coincidir con el mensaje de advertencia completo; " "esta coincidencia no distingue entre mayúsculas y minúsculas." -#: ../Doc/using/cmdline.rst:459 +#: ../Doc/using/cmdline.rst:462 msgid "" "The *category* field matches the warning category (ex: " "``DeprecationWarning``). This must be a class name; the match test whether " @@ -794,7 +802,7 @@ msgstr "" "si la categoría de advertencia real del mensaje es una subclase de la " "categoría de advertencia especificada." -#: ../Doc/using/cmdline.rst:464 +#: ../Doc/using/cmdline.rst:467 #, fuzzy msgid "" "The *module* field matches the (fully qualified) module name; this match is " @@ -803,7 +811,7 @@ msgstr "" "El campo *module* coincide con el nombre de dominio completo del módulo; " "esta coincidencia distingue entre mayúsculas y minúsculas." -#: ../Doc/using/cmdline.rst:467 +#: ../Doc/using/cmdline.rst:470 msgid "" "The *lineno* field matches the line number, where zero matches all line " "numbers and is thus equivalent to an omitted line number." @@ -812,7 +820,7 @@ msgstr "" "todos los números de línea y, por lo tanto, es equivalente a número de línea " "omitido." -#: ../Doc/using/cmdline.rst:470 +#: ../Doc/using/cmdline.rst:473 msgid "" "Multiple :option:`-W` options can be given; when a warning matches more than " "one option, the action for the last matching option is performed. Invalid :" @@ -825,7 +833,7 @@ msgstr "" "imprime un mensaje de advertencia sobre opciones no válidas cuando se emite " "la primera advertencia)." -#: ../Doc/using/cmdline.rst:475 +#: ../Doc/using/cmdline.rst:478 msgid "" "Warnings can also be controlled using the :envvar:`PYTHONWARNINGS` " "environment variable and from within a Python program using the :mod:" @@ -838,7 +846,7 @@ msgstr "" "filterwarnings` puede ser usarse con una expresión regular en el mensaje de " "advertencia." -#: ../Doc/using/cmdline.rst:480 ../Doc/using/cmdline.rst:829 +#: ../Doc/using/cmdline.rst:483 ../Doc/using/cmdline.rst:846 msgid "" "See :ref:`warning-filter` and :ref:`describing-warning-filters` for more " "details." @@ -846,7 +854,7 @@ msgstr "" "Consulte :ref:`warning-filter` y :ref:`describing-warning-filters` para " "obtener más detalles." -#: ../Doc/using/cmdline.rst:486 +#: ../Doc/using/cmdline.rst:489 msgid "" "Skip the first line of the source, allowing use of non-Unix forms of ``#!" "cmd``. This is intended for a DOS specific hack only." @@ -855,7 +863,7 @@ msgstr "" "sean de Unix de ``#!cmd``. Esto está destinado a un hackeo específico de " "DOS solamente." -#: ../Doc/using/cmdline.rst:492 +#: ../Doc/using/cmdline.rst:495 msgid "" "Reserved for various implementation-specific options. CPython currently " "defines the following possible values:" @@ -863,11 +871,14 @@ msgstr "" "Reservado para varias opciones específicas de la implementación. CPython " "define actualmente los siguientes valores posibles:" -#: ../Doc/using/cmdline.rst:495 -msgid "``-X faulthandler`` to enable :mod:`faulthandler`;" +#: ../Doc/using/cmdline.rst:498 +#, fuzzy +msgid "" +"``-X faulthandler`` to enable :mod:`faulthandler`. See also :envvar:" +"`PYTHONFAULTHANDLER`." msgstr "``-X faulthandler`` para habilitar :mod:`faulthandler`;" -#: ../Doc/using/cmdline.rst:496 +#: ../Doc/using/cmdline.rst:500 msgid "" "``-X showrefcount`` to output the total reference count and number of used " "memory blocks when the program finishes or after each statement in the " @@ -879,13 +890,14 @@ msgstr "" "después de cada instrucción en el intérprete interactivo. Esto sólo funciona " "en :ref:`compilaciones de depuración `." -#: ../Doc/using/cmdline.rst:500 +#: ../Doc/using/cmdline.rst:504 +#, fuzzy msgid "" "``-X tracemalloc`` to start tracing Python memory allocations using the :mod:" "`tracemalloc` module. By default, only the most recent frame is stored in a " "traceback of a trace. Use ``-X tracemalloc=NFRAME`` to start tracing with a " -"traceback limit of *NFRAME* frames. See the :func:`tracemalloc.start` for " -"more information." +"traceback limit of *NFRAME* frames. See :func:`tracemalloc.start` and :" +"envvar:`PYTHONTRACEMALLOC` for more information." msgstr "" "``-X tracemalloc`` para iniciar el seguimiento de las asignaciones de " "memoria de Python mediante el módulo :mod:`tracemalloc`. De forma " @@ -894,14 +906,14 @@ msgstr "" "seguimiento con un límite de rastreo de marcos *NFRAME*. Consulte el :func:" "`tracemalloc.start` para obtener más información." -#: ../Doc/using/cmdline.rst:505 +#: ../Doc/using/cmdline.rst:510 msgid "" "``-X int_max_str_digits`` configures the :ref:`integer string conversion " "length limitation `. See also :envvar:" "`PYTHONINTMAXSTRDIGITS`." msgstr "" -#: ../Doc/using/cmdline.rst:508 +#: ../Doc/using/cmdline.rst:513 msgid "" "``-X importtime`` to show how long each import takes. It shows module name, " "cumulative time (including nested imports) and self time (excluding nested " @@ -916,7 +928,7 @@ msgstr "" "multiproceso. El uso típico es ``python3 -X importtime -c 'import " "asyncio'``. Véase también :envvar:`PYTHONPROFILEIMPORTTIME`." -#: ../Doc/using/cmdline.rst:513 +#: ../Doc/using/cmdline.rst:518 msgid "" "``-X dev``: enable :ref:`Python Development Mode `, introducing " "additional runtime checks that are too expensive to be enabled by default." @@ -925,17 +937,18 @@ msgstr "" "comprobaciones de tiempo de ejecución adicionales que son demasiado caras " "para habilitarse de forma predeterminada." -#: ../Doc/using/cmdline.rst:516 +#: ../Doc/using/cmdline.rst:521 +#, fuzzy msgid "" "``-X utf8`` enables the :ref:`Python UTF-8 Mode `. ``-X utf8=0`` " "explicitly disables :ref:`Python UTF-8 Mode ` (even when it would " -"otherwise activate automatically)." +"otherwise activate automatically). See also :envvar:`PYTHONUTF8`." msgstr "" "``-X utf8`` habilita el :ref:`modo Python UTF-8 `. ``-X utf8=0`` " "desactiva explícitamente el :ref:`modo Python UTF-8 ` (incluso " "cuando al contrario se activaría automáticamente)." -#: ../Doc/using/cmdline.rst:519 +#: ../Doc/using/cmdline.rst:525 msgid "" "``-X pycache_prefix=PATH`` enables writing ``.pyc`` files to a parallel tree " "rooted at the given directory instead of to the code tree. See also :envvar:" @@ -945,7 +958,7 @@ msgstr "" "paralelo enraizado en el directorio dado en lugar de en el árbol de código. " "Véase también :envvar:`PYTHONPYCACHEPREFIX`." -#: ../Doc/using/cmdline.rst:522 +#: ../Doc/using/cmdline.rst:528 msgid "" "``-X warn_default_encoding`` issues a :class:`EncodingWarning` when the " "locale-specific default encoding is used for opening files. See also :envvar:" @@ -955,7 +968,7 @@ msgstr "" "la codificación predeterminada específica de la configuración regional para " "abrir archivos. Vea también :envvar:`PYTHONWARNDEFAULTENCODING`." -#: ../Doc/using/cmdline.rst:525 +#: ../Doc/using/cmdline.rst:531 msgid "" "``-X no_debug_ranges`` disables the inclusion of the tables mapping extra " "location information (end line, start column offset and end column offset) " @@ -965,7 +978,7 @@ msgid "" "envvar:`PYTHONNODEBUGRANGES`." msgstr "" -#: ../Doc/using/cmdline.rst:531 +#: ../Doc/using/cmdline.rst:537 msgid "" "``-X frozen_modules`` determines whether or not frozen modules are ignored " "by the import machinery. A value of \"on\" means they get imported and " @@ -976,7 +989,16 @@ msgid "" "are always used, even if this flag is set to \"off\"." msgstr "" -#: ../Doc/using/cmdline.rst:539 +#: ../Doc/using/cmdline.rst:544 +msgid "" +"``-X perf`` enables support for the Linux ``perf`` profiler. When this " +"option is provided, the ``perf`` profiler will be able to report Python " +"calls. This option is only available on some platforms and will do nothing " +"if is not supported on the current system. The default value is \"off\". See " +"also :envvar:`PYTHONPERFSUPPORT` and :ref:`perf_profiling`." +msgstr "" + +#: ../Doc/using/cmdline.rst:550 msgid "" "It also allows passing arbitrary values and retrieving them through the :" "data:`sys._xoptions` dictionary." @@ -984,27 +1006,27 @@ msgstr "" "También permite pasar valores arbitrarios y recuperarlos a través del " "diccionario :data:`sys._xoptions`." -#: ../Doc/using/cmdline.rst:542 +#: ../Doc/using/cmdline.rst:553 msgid "The :option:`-X` option was added." msgstr "Se ha añadido la opción :option:`-X`." -#: ../Doc/using/cmdline.rst:545 +#: ../Doc/using/cmdline.rst:556 msgid "The ``-X faulthandler`` option." msgstr "La opción ``-X faulhandler``." -#: ../Doc/using/cmdline.rst:548 +#: ../Doc/using/cmdline.rst:559 msgid "The ``-X showrefcount`` and ``-X tracemalloc`` options." msgstr "Las opciones ``-X showrefcount`` y ``-X tracemalloc``." -#: ../Doc/using/cmdline.rst:551 +#: ../Doc/using/cmdline.rst:562 msgid "The ``-X showalloccount`` option." msgstr "La opción ``-X showalloccount``." -#: ../Doc/using/cmdline.rst:554 +#: ../Doc/using/cmdline.rst:565 msgid "The ``-X importtime``, ``-X dev`` and ``-X utf8`` options." msgstr "Las opciones ``-X importtime``, ``-X dev`` y ``-X utf8``." -#: ../Doc/using/cmdline.rst:557 +#: ../Doc/using/cmdline.rst:568 msgid "" "The ``-X pycache_prefix`` option. The ``-X dev`` option now logs ``close()`` " "exceptions in :class:`io.IOBase` destructor." @@ -1012,7 +1034,7 @@ msgstr "" "La opción ``-X pycache_prefix``. La opción ``-X dev`` ahora registra las " "excepciones ``close()`` en el destructor :class:`io.IOBase`." -#: ../Doc/using/cmdline.rst:561 +#: ../Doc/using/cmdline.rst:572 msgid "" "Using ``-X dev`` option, check *encoding* and *errors* arguments on string " "encoding and decoding operations." @@ -1020,45 +1042,50 @@ msgstr "" "Usando la opción ``-X dev``, verifique *encoding* y *errors* argumentos en " "las operaciones de codificación y decodificación de cadenas de caracteres." -#: ../Doc/using/cmdline.rst:565 +#: ../Doc/using/cmdline.rst:576 msgid "The ``-X showalloccount`` option has been removed." msgstr "Se ha eliminado la opción ``-X showalloccount``." -#: ../Doc/using/cmdline.rst:567 +#: ../Doc/using/cmdline.rst:578 msgid "The ``-X warn_default_encoding`` option." msgstr "La opción ``-X warn_default_encoding``." -#: ../Doc/using/cmdline.rst:572 +#: ../Doc/using/cmdline.rst:583 msgid "The ``-X oldparser`` option." msgstr "La opción ``-X analizador antiguo``." -#: ../Doc/using/cmdline.rst:573 +#: ../Doc/using/cmdline.rst:584 #, fuzzy msgid "The ``-X no_debug_ranges`` option." msgstr "La opción ``-X analizador antiguo``." -#: ../Doc/using/cmdline.rst:576 +#: ../Doc/using/cmdline.rst:587 #, fuzzy msgid "The ``-X frozen_modules`` option." msgstr "La opción ``-X warn_default_encoding``." -#: ../Doc/using/cmdline.rst:579 +#: ../Doc/using/cmdline.rst:590 msgid "The ``-X int_max_str_digits`` option." msgstr "" -#: ../Doc/using/cmdline.rst:584 +#: ../Doc/using/cmdline.rst:593 +#, fuzzy +msgid "The ``-X perf`` option." +msgstr "La opción ``-X analizador antiguo``." + +#: ../Doc/using/cmdline.rst:598 msgid "Options you shouldn't use" msgstr "Opciones que no debe usar" -#: ../Doc/using/cmdline.rst:588 +#: ../Doc/using/cmdline.rst:602 msgid "Reserved for use by Jython_." msgstr "Reservado para su uso por Jython_." -#: ../Doc/using/cmdline.rst:596 +#: ../Doc/using/cmdline.rst:610 msgid "Environment variables" msgstr "Variables de entorno" -#: ../Doc/using/cmdline.rst:598 +#: ../Doc/using/cmdline.rst:612 msgid "" "These environment variables influence Python's behavior, they are processed " "before the command-line switches other than -E or -I. It is customary that " @@ -1070,7 +1097,7 @@ msgstr "" "o -I. Es habitual que los modificadores de línea de comandos anulen " "variables de entorno donde hay un conflicto." -#: ../Doc/using/cmdline.rst:605 +#: ../Doc/using/cmdline.rst:619 msgid "" "Change the location of the standard Python libraries. By default, the " "libraries are searched in :file:`{prefix}/lib/python{version}` and :file:" @@ -1084,7 +1111,7 @@ msgstr "" "`{prefix}` y :file:`{exec_prefix}` son directorios dependientes de la " "instalación, ambos predeterminados :file:`/usr/local`." -#: ../Doc/using/cmdline.rst:611 +#: ../Doc/using/cmdline.rst:625 msgid "" "When :envvar:`PYTHONHOME` is set to a single directory, its value replaces " "both :file:`{prefix}` and :file:`{exec_prefix}`. To specify different " @@ -1095,7 +1122,7 @@ msgstr "" "especificar valores diferentes para estos, establezca :envvar:`PYTHONHOME` " "en :file:`{prefix}:{exec_prefix}`." -#: ../Doc/using/cmdline.rst:618 +#: ../Doc/using/cmdline.rst:632 msgid "" "Augment the default search path for module files. The format is the same as " "the shell's :envvar:`PATH`: one or more directory pathnames separated by :" @@ -1108,7 +1135,7 @@ msgstr "" "en Unix o punto y coma en Windows). Los directorios inexistentes se omiten " "silenciosamente." -#: ../Doc/using/cmdline.rst:623 +#: ../Doc/using/cmdline.rst:637 msgid "" "In addition to normal directories, individual :envvar:`PYTHONPATH` entries " "may refer to zipfiles containing pure Python modules (in either source or " @@ -1119,7 +1146,7 @@ msgstr "" "puros (ya sea en forma de origen o compilado). Los módulos de extensión no " "se pueden importar desde zipfiles." -#: ../Doc/using/cmdline.rst:627 +#: ../Doc/using/cmdline.rst:641 msgid "" "The default search path is installation dependent, but generally begins " "with :file:`{prefix}/lib/python{version}` (see :envvar:`PYTHONHOME` above). " @@ -1129,7 +1156,7 @@ msgstr "" "generalmente comienza con :file:`{prefix}/lib/python{version}` (consulte :" "envvar:`PYTHONHOME` arriba). Es *always* anexado a :envvar:`PYTHONPATH`." -#: ../Doc/using/cmdline.rst:631 +#: ../Doc/using/cmdline.rst:645 msgid "" "An additional directory will be inserted in the search path in front of :" "envvar:`PYTHONPATH` as described above under :ref:`using-on-interface-" @@ -1141,7 +1168,7 @@ msgstr "" "interface-options`. La ruta de búsqueda se puede manipular desde un programa " "Python como la variable :data:`sys.path`." -#: ../Doc/using/cmdline.rst:639 +#: ../Doc/using/cmdline.rst:653 #, fuzzy msgid "" "If this is set to a non-empty string, don't prepend a potentially unsafe " @@ -1150,7 +1177,7 @@ msgstr "" "Si se establece en una cadena no vacía, equivale a especificar la opción :" "option:`-u`." -#: ../Doc/using/cmdline.rst:647 +#: ../Doc/using/cmdline.rst:661 msgid "" "If this is set to a non-empty string, it overrides the :data:`sys." "platlibdir` value." @@ -1158,7 +1185,7 @@ msgstr "" "Si se establece en una cadena no vacía, anula el valor :data:`sys." "platlibdir`." -#: ../Doc/using/cmdline.rst:655 +#: ../Doc/using/cmdline.rst:669 msgid "" "If this is the name of a readable file, the Python commands in that file are " "executed before the first prompt is displayed in interactive mode. The file " @@ -1176,7 +1203,7 @@ msgstr "" "puede cambiar las solicitudes :data:`sys.ps1` y :data:`sys.ps2` y el enlace :" "data:`sys.__interactivehook__` en este archivo." -#: ../Doc/using/cmdline.rst:662 +#: ../Doc/using/cmdline.rst:676 msgid "" "Raises an :ref:`auditing event ` ``cpython.run_startup`` with " "argument ``filename``." @@ -1184,7 +1211,7 @@ msgstr "" "Lanza :ref:`auditing event ` ``cpython.run_startup`` con el " "argumento ``filename``." -#: ../Doc/using/cmdline.rst:664 +#: ../Doc/using/cmdline.rst:678 msgid "" "Raises an :ref:`auditing event ` ``cpython.run_startup`` with the " "filename as the argument when called on startup." @@ -1192,7 +1219,7 @@ msgstr "" "Lanza :ref:`auditing event ` ``cpython.run_startup`` con el nombre " "de archivo como argumento cuando se llama al inicio." -#: ../Doc/using/cmdline.rst:670 +#: ../Doc/using/cmdline.rst:684 msgid "" "If this is set to a non-empty string it is equivalent to specifying the :" "option:`-O` option. If set to an integer, it is equivalent to specifying :" @@ -1202,7 +1229,7 @@ msgstr "" "option:`-O`. Si se establece en un entero, es equivalente a especificar :" "option:`-O` varias veces." -#: ../Doc/using/cmdline.rst:677 +#: ../Doc/using/cmdline.rst:691 msgid "" "If this is set, it names a callable using dotted-path notation. The module " "containing the callable will be imported and then the callable will be run " @@ -1221,7 +1248,7 @@ msgstr "" "la cadena \"0\" hace que la implementación predeterminada de :func:`sys." "breakpointhook` no haga nada más que retornar inmediatamente." -#: ../Doc/using/cmdline.rst:689 +#: ../Doc/using/cmdline.rst:703 msgid "" "If this is set to a non-empty string it is equivalent to specifying the :" "option:`-d` option. If set to an integer, it is equivalent to specifying :" @@ -1231,7 +1258,14 @@ msgstr "" "option:`-d`. Si se establece en un entero, equivale a especificar :option:`-" "d` varias veces." -#: ../Doc/using/cmdline.rst:696 +#: ../Doc/using/cmdline.rst:707 +#, fuzzy +msgid "" +"This environment variable requires a :ref:`debug build of Python `, otherwise it's ignored." +msgstr "Necesita :ref:`compilación de depuración de Python `." + +#: ../Doc/using/cmdline.rst:713 msgid "" "If this is set to a non-empty string it is equivalent to specifying the :" "option:`-i` option." @@ -1239,7 +1273,7 @@ msgstr "" "Si se establece en una cadena no vacía, equivale a especificar la opción :" "option:`-i`." -#: ../Doc/using/cmdline.rst:699 +#: ../Doc/using/cmdline.rst:716 msgid "" "This variable can also be modified by Python code using :data:`os.environ` " "to force inspect mode on program termination." @@ -1248,7 +1282,7 @@ msgstr "" "data:`os.environ` para forzar el modo de inspección en la terminación del " "programa." -#: ../Doc/using/cmdline.rst:705 +#: ../Doc/using/cmdline.rst:722 msgid "" "If this is set to a non-empty string it is equivalent to specifying the :" "option:`-u` option." @@ -1256,7 +1290,7 @@ msgstr "" "Si se establece en una cadena no vacía, equivale a especificar la opción :" "option:`-u`." -#: ../Doc/using/cmdline.rst:711 +#: ../Doc/using/cmdline.rst:728 msgid "" "If this is set to a non-empty string it is equivalent to specifying the :" "option:`-v` option. If set to an integer, it is equivalent to specifying :" @@ -1266,7 +1300,7 @@ msgstr "" "option:`-v`. Si se establece en un entero, equivale a especificar :option:`-" "v` varias veces." -#: ../Doc/using/cmdline.rst:718 +#: ../Doc/using/cmdline.rst:735 msgid "" "If this is set, Python ignores case in :keyword:`import` statements. This " "only works on Windows and macOS." @@ -1274,7 +1308,7 @@ msgstr "" "Si se establece, Python omite mayúsculas y minúsculas en las instrucciones :" "keyword:`import`. Esto sólo funciona en Windows y macOS." -#: ../Doc/using/cmdline.rst:724 +#: ../Doc/using/cmdline.rst:741 msgid "" "If this is set to a non-empty string, Python won't try to write ``.pyc`` " "files on the import of source modules. This is equivalent to specifying " @@ -1284,7 +1318,7 @@ msgstr "" "archivos ``.pyc`` en la importación de módulos de origen. Esto equivale a " "especificar la opción :option:`-B`." -#: ../Doc/using/cmdline.rst:731 +#: ../Doc/using/cmdline.rst:748 msgid "" "If this is set, Python will write ``.pyc`` files in a mirror directory tree " "at this path, instead of in ``__pycache__`` directories within the source " @@ -1296,7 +1330,7 @@ msgstr "" "``__pycache__`` dentro del árbol de origen. Esto equivale a especificar la " "opción :option:`-X` ``pycache_prefix=PATH``." -#: ../Doc/using/cmdline.rst:741 +#: ../Doc/using/cmdline.rst:758 msgid "" "If this variable is not set or set to ``random``, a random value is used to " "seed the hashes of str and bytes objects." @@ -1304,7 +1338,7 @@ msgstr "" "Si esta variable no se establece o se establece en ``random``, se utiliza un " "valor aleatorio para sembrar los hashes de los objetos str y bytes." -#: ../Doc/using/cmdline.rst:744 +#: ../Doc/using/cmdline.rst:761 msgid "" "If :envvar:`PYTHONHASHSEED` is set to an integer value, it is used as a " "fixed seed for generating the hash() of the types covered by the hash " @@ -1314,7 +1348,7 @@ msgstr "" "una semilla fija para generar el hash() de los tipos cubiertos por la " "aleatorización hash." -#: ../Doc/using/cmdline.rst:748 +#: ../Doc/using/cmdline.rst:765 msgid "" "Its purpose is to allow repeatable hashing, such as for selftests for the " "interpreter itself, or to allow a cluster of python processes to share hash " @@ -1324,7 +1358,7 @@ msgstr "" "para el propio intérprete, o permitir que un grupo de procesos python " "comparta valores hash." -#: ../Doc/using/cmdline.rst:752 +#: ../Doc/using/cmdline.rst:769 msgid "" "The integer must be a decimal number in the range [0,4294967295]. " "Specifying the value 0 will disable hash randomization." @@ -1332,14 +1366,14 @@ msgstr "" "El entero debe ser un número decimal en el intervalo [0,4294967295]. " "Especificar el valor 0 deshabilitará la aleatorización de hash." -#: ../Doc/using/cmdline.rst:759 +#: ../Doc/using/cmdline.rst:776 msgid "" "If this variable is set to an integer, it is used to configure the " "interpreter's global :ref:`integer string conversion length limitation " "`." msgstr "" -#: ../Doc/using/cmdline.rst:767 +#: ../Doc/using/cmdline.rst:784 msgid "" "If this is set before running the interpreter, it overrides the encoding " "used for stdin/stdout/stderr, in the syntax ``encodingname:errorhandler``. " @@ -1351,7 +1385,7 @@ msgstr "" "errorhandler``. Tanto las partes ``encodingname`` como ``:errorhandler`` " "son opcionales y tienen el mismo significado que en :func:`str.encode`." -#: ../Doc/using/cmdline.rst:772 +#: ../Doc/using/cmdline.rst:789 msgid "" "For stderr, the ``:errorhandler`` part is ignored; the handler will always " "be ``'backslashreplace'``." @@ -1359,11 +1393,11 @@ msgstr "" "Para stderr, se omite la parte ``:errorhandler``; el manejador siempre será " "``'backslashreplace'``." -#: ../Doc/using/cmdline.rst:775 +#: ../Doc/using/cmdline.rst:792 msgid "The ``encodingname`` part is now optional." msgstr "La parte ``encodingname`` ahora es opcional." -#: ../Doc/using/cmdline.rst:778 +#: ../Doc/using/cmdline.rst:795 msgid "" "On Windows, the encoding specified by this variable is ignored for " "interactive console buffers unless :envvar:`PYTHONLEGACYWINDOWSSTDIO` is " @@ -1375,7 +1409,7 @@ msgstr "" "`PYTHONLEGACYWINDOWSSTDIO`. Los archivos y canalizaciones redirigidos a " "través de las corrientes estándar no se ven afectados." -#: ../Doc/using/cmdline.rst:785 +#: ../Doc/using/cmdline.rst:802 msgid "" "If this is set, Python won't add the :data:`user site-packages directory " "` to :data:`sys.path`." @@ -1383,19 +1417,20 @@ msgstr "" "Si se establece, Python no agregará :data:`user site-packages directory " "` a :data:`sys.path`." -#: ../Doc/using/cmdline.rst:795 +#: ../Doc/using/cmdline.rst:812 +#, fuzzy msgid "" "Defines the :data:`user base directory `, which is used to " "compute the path of the :data:`user site-packages directory ` and :ref:`Distutils installation paths ` " -"for ``python setup.py install --user``." +"USER_SITE>` and :ref:`installation paths ` for " +"``python -m pip install --user``." msgstr "" "Define el :data:`user base directory `, que se utiliza para " "calcular la ruta de acceso de :data:`user site-packages directory ` y :ref:`Distutils installation paths ` " "para ``python setup.py install --user``." -#: ../Doc/using/cmdline.rst:807 +#: ../Doc/using/cmdline.rst:824 msgid "" "If this environment variable is set, ``sys.argv[0]`` will be set to its " "value instead of the value got through the C runtime. Only works on macOS." @@ -1404,7 +1439,7 @@ msgstr "" "su valor en lugar del valor conseguido a través del tiempo de ejecución de " "C. Sólo funciona en macOS." -#: ../Doc/using/cmdline.rst:813 +#: ../Doc/using/cmdline.rst:830 msgid "" "This is equivalent to the :option:`-W` option. If set to a comma separated " "string, it is equivalent to specifying :option:`-W` multiple times, with " @@ -1415,7 +1450,7 @@ msgstr "" "con filtros más adelante en la lista que tienen prioridad sobre los " "anteriores de la lista." -#: ../Doc/using/cmdline.rst:835 +#: ../Doc/using/cmdline.rst:852 msgid "" "If this environment variable is set to a non-empty string, :func:" "`faulthandler.enable` is called at startup: install a handler for :const:" @@ -1429,13 +1464,15 @@ msgstr "" "`SIGILL` para volcar el seguimiento de Python. Esto es equivalente a la " "opción :option:`-X` ``faulthandler``." -#: ../Doc/using/cmdline.rst:846 +#: ../Doc/using/cmdline.rst:863 +#, fuzzy msgid "" "If this environment variable is set to a non-empty string, start tracing " "Python memory allocations using the :mod:`tracemalloc` module. The value of " "the variable is the maximum number of frames stored in a traceback of a " "trace. For example, ``PYTHONTRACEMALLOC=1`` stores only the most recent " -"frame. See the :func:`tracemalloc.start` for more information." +"frame. See the :func:`tracemalloc.start` function for more information. This " +"is equivalent to setting the :option:`-X` ``tracemalloc`` option." msgstr "" "Si esta variable de entorno se establece en una cadena no vacía, comience a " "trazar las asignaciones de memoria de Python mediante el módulo :mod:" @@ -1444,17 +1481,18 @@ msgstr "" "``PYTHONTRACEMALLOC=1`` almacena sólo el marco más reciente. Consulte el :" "func:`tracemalloc.start` para obtener más información." -#: ../Doc/using/cmdline.rst:857 +#: ../Doc/using/cmdline.rst:876 +#, fuzzy msgid "" "If this environment variable is set to a non-empty string, Python will show " -"how long each import takes. This is exactly equivalent to setting ``-X " -"importtime`` on the command line." +"how long each import takes. This is equivalent to setting the :option:`-X` " +"``importtime`` option." msgstr "" "Si esta variable de entorno se establece en una cadena no vacía, Python " "mostrará cuánto tiempo tarda cada importación. Esto equivale exactamente a " "establecer ``-X importtime`` en la línea de comandos." -#: ../Doc/using/cmdline.rst:866 +#: ../Doc/using/cmdline.rst:885 msgid "" "If this environment variable is set to a non-empty string, enable the :ref:" "`debug mode ` of the :mod:`asyncio` module." @@ -1462,17 +1500,17 @@ msgstr "" "Si esta variable de entorno se establece en una cadena no vacía, habilite el " "modo :ref:`debug mode ` del módulo :mod:`asyncio`." -#: ../Doc/using/cmdline.rst:874 +#: ../Doc/using/cmdline.rst:893 msgid "Set the Python memory allocators and/or install debug hooks." msgstr "" "Establezca los asignadores de memoria de Python y/o instale enlaces de " "depuración." -#: ../Doc/using/cmdline.rst:876 +#: ../Doc/using/cmdline.rst:895 msgid "Set the family of memory allocators used by Python:" msgstr "Establezca la familia de asignadores de memoria utilizados por Python:" -#: ../Doc/using/cmdline.rst:878 +#: ../Doc/using/cmdline.rst:897 msgid "" "``default``: use the :ref:`default memory allocators `." @@ -1480,31 +1518,33 @@ msgstr "" "``default``: utilice :ref:`default memory allocators `." -#: ../Doc/using/cmdline.rst:880 +#: ../Doc/using/cmdline.rst:899 +#, fuzzy msgid "" "``malloc``: use the :c:func:`malloc` function of the C library for all " -"domains (:c:data:`PYMEM_DOMAIN_RAW`, :c:data:`PYMEM_DOMAIN_MEM`, :c:data:" +"domains (:c:macro:`PYMEM_DOMAIN_RAW`, :c:macro:`PYMEM_DOMAIN_MEM`, :c:macro:" "`PYMEM_DOMAIN_OBJ`)." msgstr "" "``malloc``: utilice la función :c:func:`malloc` de la biblioteca C para " "todos los dominios (:c:data:`PYMEM_DOMAIN_RAW`, :c:data:`PYMEM_DOMAIN_MEM`, :" "c:data:`PYMEM_DOMAIN_OBJ`)." -#: ../Doc/using/cmdline.rst:883 +#: ../Doc/using/cmdline.rst:902 +#, fuzzy msgid "" -"``pymalloc``: use the :ref:`pymalloc allocator ` for :c:data:" -"`PYMEM_DOMAIN_MEM` and :c:data:`PYMEM_DOMAIN_OBJ` domains and use the :c:" -"func:`malloc` function for the :c:data:`PYMEM_DOMAIN_RAW` domain." +"``pymalloc``: use the :ref:`pymalloc allocator ` for :c:macro:" +"`PYMEM_DOMAIN_MEM` and :c:macro:`PYMEM_DOMAIN_OBJ` domains and use the :c:" +"func:`malloc` function for the :c:macro:`PYMEM_DOMAIN_RAW` domain." msgstr "" "``pymalloc``: utilice los dominios :ref:`pymalloc allocator ` " "para :c:data:`PYMEM_DOMAIN_MEM` y :c:data:`PYMEM_DOMAIN_OBJ` y utilice la " "función :c:func:`malloc` para el dominio :c:data:`PYMEM_DOMAIN_RAW`." -#: ../Doc/using/cmdline.rst:887 +#: ../Doc/using/cmdline.rst:906 msgid "Install :ref:`debug hooks `:" msgstr "Instalar :ref:`enlaces de depuración `:" -#: ../Doc/using/cmdline.rst:889 +#: ../Doc/using/cmdline.rst:908 msgid "" "``debug``: install debug hooks on top of the :ref:`default memory allocators " "`." @@ -1512,23 +1552,23 @@ msgstr "" "``debug``: instale los enlaces de depuración encima de :ref:`default memory " "allocators `." -#: ../Doc/using/cmdline.rst:891 +#: ../Doc/using/cmdline.rst:910 msgid "``malloc_debug``: same as ``malloc`` but also install debug hooks." msgstr "" "``malloc_debug``: igual que ``malloc`` pero también instalar ganchos de " "depuración." -#: ../Doc/using/cmdline.rst:892 +#: ../Doc/using/cmdline.rst:911 msgid "``pymalloc_debug``: same as ``pymalloc`` but also install debug hooks." msgstr "" "``pymalloc_debug``: igual que ``pymalloc`` pero también instalar enlaces de " "depuración." -#: ../Doc/using/cmdline.rst:894 +#: ../Doc/using/cmdline.rst:913 msgid "Added the ``\"default\"`` allocator." msgstr "Se ha añadido el asignador ``\"predeterminado\"``." -#: ../Doc/using/cmdline.rst:902 +#: ../Doc/using/cmdline.rst:921 msgid "" "If set to a non-empty string, Python will print statistics of the :ref:" "`pymalloc memory allocator ` every time a new pymalloc object " @@ -1538,7 +1578,7 @@ msgstr "" "ref:`pymalloc memory allocator ` cada vez que se crea una nueva " "arena de objetos pymalloc y al apagarse." -#: ../Doc/using/cmdline.rst:906 +#: ../Doc/using/cmdline.rst:925 msgid "" "This variable is ignored if the :envvar:`PYTHONMALLOC` environment variable " "is used to force the :c:func:`malloc` allocator of the C library, or if " @@ -1548,7 +1588,7 @@ msgstr "" "utiliza para forzar el asignador :c:func:`malloc` de la biblioteca C, o si " "Python está configurado sin compatibilidad con ``pymalloc``." -#: ../Doc/using/cmdline.rst:910 +#: ../Doc/using/cmdline.rst:929 msgid "" "This variable can now also be used on Python compiled in release mode. It " "now has no effect if set to an empty string." @@ -1556,7 +1596,7 @@ msgstr "" "Esta variable ahora también se puede utilizar en Python compilado en modo de " "versión. Ahora no tiene ningún efecto si se establece en una cadena vacía." -#: ../Doc/using/cmdline.rst:917 +#: ../Doc/using/cmdline.rst:936 msgid "" "If set to a non-empty string, the default :term:`filesystem encoding and " "error handler` mode will revert to their pre-3.6 values of 'mbcs' and " @@ -1568,7 +1608,7 @@ msgstr "" "`replace`, respectivamente. De lo contrario, se utilizan los nuevos valores " "predeterminados 'utf-8' y 'surrogatepass'." -#: ../Doc/using/cmdline.rst:922 +#: ../Doc/using/cmdline.rst:941 msgid "" "This may also be enabled at runtime with :func:`sys." "_enablelegacywindowsfsencoding()`." @@ -1576,15 +1616,15 @@ msgstr "" "Esto también se puede habilitar en tiempo de ejecución con :func:`sys." "_enablelegacywindowsfsencoding()`." -#: ../Doc/using/cmdline.rst:926 ../Doc/using/cmdline.rst:940 +#: ../Doc/using/cmdline.rst:944 ../Doc/using/cmdline.rst:958 msgid ":ref:`Availability `: Windows." msgstr ":ref:`Availability `: Windows." -#: ../Doc/using/cmdline.rst:927 +#: ../Doc/using/cmdline.rst:946 msgid "See :pep:`529` for more details." msgstr "Consulte :pep:`529` para obtener más detalles." -#: ../Doc/using/cmdline.rst:932 +#: ../Doc/using/cmdline.rst:951 msgid "" "If set to a non-empty string, does not use the new console reader and " "writer. This means that Unicode characters will be encoded according to the " @@ -1595,7 +1635,7 @@ msgstr "" "codificarán de acuerdo con la página de códigos de la consola activa, en " "lugar de usar utf-8." -#: ../Doc/using/cmdline.rst:936 +#: ../Doc/using/cmdline.rst:955 msgid "" "This variable is ignored if the standard streams are redirected (to files or " "pipes) rather than referring to console buffers." @@ -1603,7 +1643,7 @@ msgstr "" "Esta variable se omite si se redirigen las secuencias estándar (a archivos o " "canalizaciones) en lugar de hacer referencia a búferes de consola." -#: ../Doc/using/cmdline.rst:946 +#: ../Doc/using/cmdline.rst:965 msgid "" "If set to the value ``0``, causes the main Python command line application " "to skip coercing the legacy ASCII-based C and POSIX locales to a more " @@ -1614,7 +1654,7 @@ msgstr "" "y POSIX basadas en ASCII heredadas a una alternativa basada en UTF-8 más " "capaz." -#: ../Doc/using/cmdline.rst:950 +#: ../Doc/using/cmdline.rst:969 msgid "" "If this variable is *not* set (or is set to a value other than ``0``), the " "``LC_ALL`` locale override environment variable is also not set, and the " @@ -1633,19 +1673,19 @@ msgstr "" "para la categoría ``LC_CTYPE`` en el orden indicado antes de cargar el " "tiempo de ejecución del intérprete:" -#: ../Doc/using/cmdline.rst:958 +#: ../Doc/using/cmdline.rst:977 msgid "``C.UTF-8``" msgstr "``C.UTF-8``" -#: ../Doc/using/cmdline.rst:959 +#: ../Doc/using/cmdline.rst:978 msgid "``C.utf8``" msgstr "``C.utf8``" -#: ../Doc/using/cmdline.rst:960 +#: ../Doc/using/cmdline.rst:979 msgid "``UTF-8``" msgstr "``UTF-8``" -#: ../Doc/using/cmdline.rst:962 +#: ../Doc/using/cmdline.rst:981 msgid "" "If setting one of these locale categories succeeds, then the ``LC_CTYPE`` " "environment variable will also be set accordingly in the current process " @@ -1669,7 +1709,7 @@ msgstr "" "consultan el entorno en lugar de la configuración regional de C actual (como " "la propia de Python :func:`locale.getdefaultlocale`)." -#: ../Doc/using/cmdline.rst:972 +#: ../Doc/using/cmdline.rst:991 msgid "" "Configuring one of these locales (either explicitly or via the above " "implicit locale coercion) automatically enables the ``surrogateescape`` :ref:" @@ -1687,7 +1727,7 @@ msgstr "" "secuencias se puede invalidar mediante :envvar:`PYTHONIOENCODING` como de " "costumbre." -#: ../Doc/using/cmdline.rst:979 +#: ../Doc/using/cmdline.rst:998 msgid "" "For debugging purposes, setting ``PYTHONCOERCECLOCALE=warn`` will cause " "Python to emit warning messages on ``stderr`` if either the locale coercion " @@ -1700,7 +1740,7 @@ msgstr "" "activado la coerción sigue activa cuando se inicializa el tiempo de " "ejecución de Python." -#: ../Doc/using/cmdline.rst:984 +#: ../Doc/using/cmdline.rst:1003 msgid "" "Also note that even when locale coercion is disabled, or when it fails to " "find a suitable target locale, :envvar:`PYTHONUTF8` will still activate by " @@ -1715,38 +1755,40 @@ msgstr "" "Ambas funciones deben estar deshabilitadas para obligar al intérprete a usar " "``ASCII`` en lugar de ``UTF-8`` para las interfaces del sistema." -#: ../Doc/using/cmdline.rst:991 +#: ../Doc/using/cmdline.rst:1009 #, fuzzy msgid ":ref:`Availability `: Unix." msgstr ":ref:`Availability `: \\*nix." -#: ../Doc/using/cmdline.rst:992 +#: ../Doc/using/cmdline.rst:1011 msgid "See :pep:`538` for more details." msgstr "Consulte :pep:`538` para obtener más detalles." -#: ../Doc/using/cmdline.rst:998 +#: ../Doc/using/cmdline.rst:1017 +#, fuzzy msgid "" "If this environment variable is set to a non-empty string, enable :ref:" "`Python Development Mode `, introducing additional runtime checks " -"that are too expensive to be enabled by default." +"that are too expensive to be enabled by default. This is equivalent to " +"setting the :option:`-X` ``dev`` option." msgstr "" "Si esta variable de entorno se establece en una cadena no vacía, habilite :" "ref:`Python Development Mode `, introduciendo comprobaciones de " "tiempo de ejecución adicionales que son demasiado caras para habilitarse de " "forma predeterminada." -#: ../Doc/using/cmdline.rst:1006 +#: ../Doc/using/cmdline.rst:1026 msgid "If set to ``1``, enable the :ref:`Python UTF-8 Mode `." msgstr "" "Si se establece en ``1``, habilita el :ref:`modo Python UTF-8 `." -#: ../Doc/using/cmdline.rst:1008 +#: ../Doc/using/cmdline.rst:1028 msgid "If set to ``0``, disable the :ref:`Python UTF-8 Mode `." msgstr "" "Si se establece en ``0``, deshabilita el :ref:`modo Python UTF-8 `." -#: ../Doc/using/cmdline.rst:1010 +#: ../Doc/using/cmdline.rst:1030 msgid "" "Setting any other non-empty string causes an error during interpreter " "initialisation." @@ -1754,7 +1796,7 @@ msgstr "" "Establecer cualquier otra cadena no vacía produce un error durante la " "inicialización del intérprete." -#: ../Doc/using/cmdline.rst:1017 +#: ../Doc/using/cmdline.rst:1037 msgid "" "If this environment variable is set to a non-empty string, issue a :class:" "`EncodingWarning` when the locale-specific default encoding is used." @@ -1763,11 +1805,11 @@ msgstr "" "vacía, emite un :class:`EncodingWarning` cuando se utilice la codificación " "predeterminada específica de la configuración regional." -#: ../Doc/using/cmdline.rst:1020 +#: ../Doc/using/cmdline.rst:1040 msgid "See :ref:`io-encoding-warning` for details." msgstr "Ver :ref:`io-encoding-warning` para más detalles." -#: ../Doc/using/cmdline.rst:1026 +#: ../Doc/using/cmdline.rst:1046 msgid "" "If this variable is set, it disables the inclusion of the tables mapping " "extra location information (end line, start column offset and end column " @@ -1776,21 +1818,27 @@ msgid "" "visual location indicators when the interpreter displays tracebacks." msgstr "" -#: ../Doc/using/cmdline.rst:1037 -msgid "Debug-mode variables" -msgstr "Variables de modo de depuración" +#: ../Doc/using/cmdline.rst:1056 +msgid "" +"If this variable is set to a nonzero value, it enables support for the Linux " +"``perf`` profiler so Python calls can be detected by it." +msgstr "" -#: ../Doc/using/cmdline.rst:1041 -msgid "If set, Python will print threading debug info into stdout." +#: ../Doc/using/cmdline.rst:1059 +msgid "If set to ``0``, disable Linux ``perf`` profiler support." msgstr "" -"Si se establece, Python imprimirá información de depuración de subprocesos " -"en stdout." -#: ../Doc/using/cmdline.rst:1043 -msgid "Need a :ref:`debug build of Python `." -msgstr "Necesita :ref:`compilación de depuración de Python `." +#: ../Doc/using/cmdline.rst:1061 +msgid "" +"See also the :option:`-X perf <-X>` command-line option and :ref:" +"`perf_profiling`." +msgstr "" + +#: ../Doc/using/cmdline.rst:1068 +msgid "Debug-mode variables" +msgstr "Variables de modo de depuración" -#: ../Doc/using/cmdline.rst:1050 +#: ../Doc/using/cmdline.rst:1072 msgid "" "If set, Python will dump objects and reference counts still alive after " "shutting down the interpreter." @@ -1798,14 +1846,14 @@ msgstr "" "Si se establece, Python volcará objetos y recuentos de referencias aún vivos " "después de apagar el intérprete." -#: ../Doc/using/cmdline.rst:1053 ../Doc/using/cmdline.rst:1060 +#: ../Doc/using/cmdline.rst:1075 ../Doc/using/cmdline.rst:1082 msgid "" "Need Python configured with the :option:`--with-trace-refs` build option." msgstr "" "Necesita Python configurado con la opción de compilación :option:`--with-" "trace-refs`." -#: ../Doc/using/cmdline.rst:1057 +#: ../Doc/using/cmdline.rst:1079 #, fuzzy msgid "" "If set, Python will dump objects and reference counts still alive after " @@ -1813,3 +1861,8 @@ msgid "" msgstr "" "Si se establece, Python volcará objetos y recuentos de referencias aún vivos " "después de apagar el intérprete." + +#~ msgid "If set, Python will print threading debug info into stdout." +#~ msgstr "" +#~ "Si se establece, Python imprimirá información de depuración de " +#~ "subprocesos en stdout." diff --git a/using/configure.po b/using/configure.po index 7873dbfed5..9c4d6d30c6 100644 --- a/using/configure.po +++ b/using/configure.po @@ -8,30 +8,119 @@ msgid "" msgstr "" "Project-Id-Version: Python en Español 3.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-12-02 18:43-0300\n" "Last-Translator: \n" -"Language-Team: \n" "Language: es\n" +"Language-Team: \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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/using/configure.rst:3 msgid "Configure Python" msgstr "Configurar Python" +#: ../Doc/using/configure.rst:6 +msgid "Build Requirements" +msgstr "" + #: ../Doc/using/configure.rst:8 +msgid "Features required to build CPython:" +msgstr "" + +#: ../Doc/using/configure.rst:10 +msgid "" +"A `C11 `_ compiler. `Optional C11 " +"features `_ are not required." +msgstr "" + +#: ../Doc/using/configure.rst:15 +msgid "" +"Support for `IEEE 754 `_ floating " +"point numbers and `floating point Not-a-Number (NaN) `_." +msgstr "" + +#: ../Doc/using/configure.rst:19 +msgid "Support for threads." +msgstr "" + +#: ../Doc/using/configure.rst:21 +msgid "OpenSSL 1.1.1 or newer for the :mod:`ssl` and :mod:`hashlib` modules." +msgstr "" + +#: ../Doc/using/configure.rst:23 +msgid "On Windows, Microsoft Visual Studio 2017 or later is required." +msgstr "" + +#: ../Doc/using/configure.rst:25 +msgid "" +"C11 compiler, IEEE 754 and NaN support are now required. On Windows, Visual " +"Studio 2017 or later is required." +msgstr "" + +#: ../Doc/using/configure.rst:29 +msgid "OpenSSL 1.1.1 is now required." +msgstr "" + +#: ../Doc/using/configure.rst:32 +msgid "Thread support and OpenSSL 1.0.2 are now required." +msgstr "" + +#: ../Doc/using/configure.rst:35 +msgid "" +"Selected C99 features are now required, like ```` and ``static " +"inline`` functions." +msgstr "" + +#: ../Doc/using/configure.rst:39 +msgid "On Windows, Visual Studio 2015 or later is required." +msgstr "" + +#: ../Doc/using/configure.rst:42 +msgid "" +"See also :pep:`7` \"Style Guide for C Code\" and :pep:`11` \"CPython " +"platform support\"." +msgstr "" + +#: ../Doc/using/configure.rst:47 +msgid "Generated files" +msgstr "" + +#: ../Doc/using/configure.rst:49 +msgid "" +"To reduce build dependencies, Python source code contains multiple generated " +"files. Commands to regenerate all generated files::" +msgstr "" + +#: ../Doc/using/configure.rst:57 +msgid "" +"The ``Makefile.pre.in`` file documents generated files, their inputs, and " +"tools used to regenerate them. Search for ``regen-*`` make targets." +msgstr "" + +#: ../Doc/using/configure.rst:60 +msgid "" +"The ``make regen-configure`` command runs `tiran/cpython_autoconf `_ container for reproducible build; see " +"container ``entry.sh`` script. The container is optional, the following " +"command can be run locally, the generated files depend on autoconf and " +"aclocal versions::" +msgstr "" + +#: ../Doc/using/configure.rst:72 msgid "Configure Options" msgstr "Configurar opciones" -#: ../Doc/using/configure.rst:10 +#: ../Doc/using/configure.rst:74 msgid "List all ``./configure`` script options using::" msgstr "Enumerar todas las opciones del script ``./configure`` usando::" -#: ../Doc/using/configure.rst:14 +#: ../Doc/using/configure.rst:78 msgid "" "See also the :file:`Misc/SpecialBuilds.txt` in the Python source " "distribution." @@ -39,19 +128,20 @@ msgstr "" "Consultar también :file:`Misc/SpecialBuilds.txt` en la distribución fuente " "de Python." -#: ../Doc/using/configure.rst:17 +#: ../Doc/using/configure.rst:81 msgid "General Options" msgstr "Opciones generales" -#: ../Doc/using/configure.rst:21 +#: ../Doc/using/configure.rst:85 +#, fuzzy msgid "" -"Support loadable extensions in the :mod:`_sqlite` extension module (default " -"is no)." +"Support loadable extensions in the :mod:`!_sqlite` extension module (default " +"is no) of the :mod:`sqlite3` module." msgstr "" "Admite extensiones cargables en el módulo de extensión :mod:`_sqlite` (el " "valor por defecto es no)." -#: ../Doc/using/configure.rst:24 +#: ../Doc/using/configure.rst:88 msgid "" "See the :meth:`sqlite3.Connection.enable_load_extension` method of the :mod:" "`sqlite3` module." @@ -59,7 +149,7 @@ msgstr "" "Consultar el método :meth:`sqlite3.Connection.enable_load_extension` del " "módulo :mod:`sqlite3`." -#: ../Doc/using/configure.rst:31 +#: ../Doc/using/configure.rst:95 msgid "" "Disable IPv6 support (enabled by default if supported), see the :mod:" "`socket` module." @@ -67,36 +157,28 @@ msgstr "" "Deshabilita la compatibilidad con IPv6 (habilitada de forma predeterminada " "si es compatible), consulte el módulo :mod:`socket`." -#: ../Doc/using/configure.rst:36 +#: ../Doc/using/configure.rst:100 msgid "Define the size in bits of Python :class:`int` digits: 15 or 30 bits." msgstr "" "Define el tamaño en bits de los dígitos :class:`int` de Python: 15 o 30 bits." -#: ../Doc/using/configure.rst:38 +#: ../Doc/using/configure.rst:102 msgid "By default, the digit size is 30." msgstr "Por defecto, el tamaño del dígito es 30." -#: ../Doc/using/configure.rst:40 +#: ../Doc/using/configure.rst:104 msgid "Define the ``PYLONG_BITS_IN_DIGIT`` to ``15`` or ``30``." msgstr "Define el ``PYLONG_BITS_IN_DIGIT`` en ``15`` o ``30``." -#: ../Doc/using/configure.rst:42 +#: ../Doc/using/configure.rst:106 msgid "See :data:`sys.int_info.bits_per_digit `." msgstr "Consultar :data:`sys.int_info.bits_per_digit `." -#: ../Doc/using/configure.rst:47 -msgid "" -"Compile the Python ``main()`` function and link Python executable with C++ " -"compiler: ``$CXX``, or *COMPILER* if specified." -msgstr "" -"Compila la función de Python ``main()`` y vincula el ejecutable de Python " -"con el compilador de C++: ``$CXX``, o *COMPILER* si se especifica." - -#: ../Doc/using/configure.rst:52 +#: ../Doc/using/configure.rst:110 msgid "Set the Python executable suffix to *SUFFIX*." msgstr "Establece el sufijo ejecutable de Python en *SUFFIX*." -#: ../Doc/using/configure.rst:54 +#: ../Doc/using/configure.rst:112 msgid "" "The default suffix is ``.exe`` on Windows and macOS (``python.exe`` " "executable), ``.js`` on Emscripten node, ``.html`` on Emscripten browser, ``." @@ -108,7 +190,7 @@ msgstr "" "``.wasm`` en WASI y una cadena vacía en otras plataformas (ejecutable " "``python``)." -#: ../Doc/using/configure.rst:59 +#: ../Doc/using/configure.rst:117 msgid "" "The default suffix on WASM platform is one of ``.js``, ``.html`` or ``." "wasm``." @@ -116,9 +198,10 @@ msgstr "" "El sufijo predeterminado en la plataforma WASM es uno de ``.js``, ``.html`` " "o ``.wasm``." -#: ../Doc/using/configure.rst:65 +#: ../Doc/using/configure.rst:123 +#, fuzzy msgid "" -"Select the default time zone search path for :data:`zoneinfo.TZPATH`. See " +"Select the default time zone search path for :const:`zoneinfo.TZPATH`. See " "the :ref:`Compile-time configuration ` of " "the :mod:`zoneinfo` module." msgstr "" @@ -126,7 +209,7 @@ msgstr "" "`zoneinfo.TZPATH`. Consultar la :ref:`Configuración en tiempo de compilación " "` del módulo :mod:`zoneinfo`." -#: ../Doc/using/configure.rst:69 +#: ../Doc/using/configure.rst:127 msgid "" "Default: ``/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/zoneinfo:/" "etc/zoneinfo``." @@ -134,11 +217,11 @@ msgstr "" "Por defecto: ``/usr/share/zoneinfo:/usr/lib/zoneinfo:/usr/share/lib/" "zoneinfo:/etc/zoneinfo``." -#: ../Doc/using/configure.rst:71 +#: ../Doc/using/configure.rst:129 msgid "See :data:`os.pathsep` path separator." msgstr "Consultar separador de rutas :data:`os.pathsep` ." -#: ../Doc/using/configure.rst:77 +#: ../Doc/using/configure.rst:135 msgid "" "Build the ``_decimal`` extension module using a thread-local context rather " "than a coroutine-local context (default), see the :mod:`decimal` module." @@ -147,64 +230,69 @@ msgstr "" "hilos en lugar de un contexto local de corutinas (predeterminado), consultar " "el módulo :mod:`decimal`." -#: ../Doc/using/configure.rst:80 -msgid "See :data:`decimal.HAVE_CONTEXTVAR` and the :mod:`contextvars` module." +#: ../Doc/using/configure.rst:138 +#, fuzzy +msgid "See :const:`decimal.HAVE_CONTEXTVAR` and the :mod:`contextvars` module." msgstr "" "Consultar :data:`decimal.HAVE_CONTEXTVAR` y el módulo :mod:`contextvars`." -#: ../Doc/using/configure.rst:86 +#: ../Doc/using/configure.rst:144 msgid "Override order to check db backends for the :mod:`dbm` module" msgstr "" "Sobrescribe el orden para verificar los de las bases datos para el módulo :" "mod:`dbm`" -#: ../Doc/using/configure.rst:88 +#: ../Doc/using/configure.rst:146 msgid "" "A valid value is a colon (``:``) separated string with the backend names:" msgstr "" "Un valor válido es una cadena de caracteres separada por dos puntos (``:``) " "con los nombres de los backends:" -#: ../Doc/using/configure.rst:90 +#: ../Doc/using/configure.rst:148 msgid "``ndbm``;" msgstr "``ndbm``;" -#: ../Doc/using/configure.rst:91 +#: ../Doc/using/configure.rst:149 msgid "``gdbm``;" msgstr "``gdbm``;" -#: ../Doc/using/configure.rst:92 +#: ../Doc/using/configure.rst:150 msgid "``bdb``." msgstr "``bdb``." -#: ../Doc/using/configure.rst:96 +#: ../Doc/using/configure.rst:154 msgid "Disable C locale coercion to a UTF-8 based locale (enabled by default)." msgstr "" "Deshabilita la coerción de configuración regional C a una configuración " "regional basada en UTF-8 (habilitada de forma predeterminada)." -#: ../Doc/using/configure.rst:98 +#: ../Doc/using/configure.rst:156 msgid "Don't define the ``PY_COERCE_C_LOCALE`` macro." msgstr "No define la macro ``PY_COERCE_C_LOCALE``." -#: ../Doc/using/configure.rst:100 +#: ../Doc/using/configure.rst:158 msgid "See :envvar:`PYTHONCOERCECLOCALE` and the :pep:`538`." msgstr "Consultar :envvar:`PYTHONCOERCECLOCALE` y el :pep:`538`." -#: ../Doc/using/configure.rst:104 +#: ../Doc/using/configure.rst:162 +msgid "Disable all freelists except the empty tuple singleton." +msgstr "" + +#: ../Doc/using/configure.rst:168 msgid "Python library directory name (default is ``lib``)." msgstr "" "Nombre del directorio de la biblioteca de Python (por defecto es ``lib``)." -#: ../Doc/using/configure.rst:106 +#: ../Doc/using/configure.rst:170 msgid "Fedora and SuSE use ``lib64`` on 64-bit platforms." msgstr "Fedora y SuSE usan ``lib64`` en plataformas 64-bit." -#: ../Doc/using/configure.rst:108 +#: ../Doc/using/configure.rst:172 msgid "See :data:`sys.platlibdir`." msgstr "Consultar :data:`sys.platlibdir`." -#: ../Doc/using/configure.rst:114 +#: ../Doc/using/configure.rst:178 msgid "" "Directory of wheel packages used by the :mod:`ensurepip` module (none by " "default)." @@ -212,11 +300,12 @@ msgstr "" "Directorio de los paquetes *wheel* usados por el módulo :mod:`ensurepip` " "(ninguno por defecto)" -#: ../Doc/using/configure.rst:117 +#: ../Doc/using/configure.rst:181 +#, fuzzy msgid "" "Some Linux distribution packaging policies recommend against bundling " "dependencies. For example, Fedora installs wheel packages in the ``/usr/" -"share/python-wheels/`` directory and don't install the :mod:`ensurepip." +"share/python-wheels/`` directory and don't install the :mod:`!ensurepip." "_bundled` package." msgstr "" "Algunas políticas de empaquetado de distribución de Linux recomiendan no " @@ -224,7 +313,7 @@ msgstr "" "directorio ``/usr/share/python-wheels/`` y no instala el paquete :mod:" "`ensurepip._bundled`." -#: ../Doc/using/configure.rst:126 +#: ../Doc/using/configure.rst:190 msgid "" "Whether configure should use :program:`pkg-config` to detect build " "dependencies." @@ -232,57 +321,59 @@ msgstr "" "Si configure debe usar :program:`pkg-config` para detectar dependencias de " "compilación." -#: ../Doc/using/configure.rst:129 +#: ../Doc/using/configure.rst:193 msgid "``check`` (default): :program:`pkg-config` is optional" msgstr "``check`` (predeterminado): :program:`pkg-config` es opcional" -#: ../Doc/using/configure.rst:130 +#: ../Doc/using/configure.rst:194 msgid "``yes``: :program:`pkg-config` is mandatory" msgstr "``yes``: :program:`pkg-config` es obligatorio" -#: ../Doc/using/configure.rst:131 +#: ../Doc/using/configure.rst:195 msgid "``no``: configure does not use :program:`pkg-config` even when present" msgstr "" "``no``: configure no usa :program:`pkg-config` incluso cuando está presente" -#: ../Doc/using/configure.rst:137 +#: ../Doc/using/configure.rst:201 msgid "Turn on internal statistics gathering." msgstr "Active la recopilación de estadísticas internas." -#: ../Doc/using/configure.rst:139 +#: ../Doc/using/configure.rst:203 +#, fuzzy msgid "" "The statistics will be dumped to a arbitrary (probably unique) file in ``/" -"tmp/py_stats/``, or ``C:\\temp\\py_stats\\`` on Windows." +"tmp/py_stats/``, or ``C:\\temp\\py_stats\\`` on Windows. If that directory " +"does not exist, results will be printed on stdout." msgstr "" "Las estadísticas se volcarán en un archivo arbitrario (probablemente único) " "en ``/tmp/py_stats/`` o ``C:\\temp\\py_stats\\`` en Windows." -#: ../Doc/using/configure.rst:142 +#: ../Doc/using/configure.rst:207 msgid "Use ``Tools/scripts/summarize_stats.py`` to read the stats." msgstr "Usa ``Tools/scripts/summarize_stats.py`` para leer las estadísticas." -#: ../Doc/using/configure.rst:147 +#: ../Doc/using/configure.rst:212 msgid "WebAssembly Options" msgstr "Opciones de WebAssembly" -#: ../Doc/using/configure.rst:151 +#: ../Doc/using/configure.rst:216 msgid "Set build flavor for ``wasm32-emscripten``." msgstr "Establezca el tipo de compilación para ``wasm32-emscripten``." -#: ../Doc/using/configure.rst:153 +#: ../Doc/using/configure.rst:218 msgid "``browser`` (default): preload minimal stdlib, default MEMFS." msgstr "" "``browser`` (predeterminado): precarga mínima stdlib, MEMFS predeterminado." -#: ../Doc/using/configure.rst:154 +#: ../Doc/using/configure.rst:219 msgid "``node``: NODERAWFS and pthread support." msgstr "``node``: soporte para NODERAWFS y pthread." -#: ../Doc/using/configure.rst:160 +#: ../Doc/using/configure.rst:225 msgid "Turn on dynamic linking support for WASM." msgstr "Active la compatibilidad con enlaces dinámicos para WASM." -#: ../Doc/using/configure.rst:162 +#: ../Doc/using/configure.rst:227 msgid "" "Dynamic linking enables ``dlopen``. File size of the executable increases " "due to limited dead code elimination and additional features." @@ -291,29 +382,56 @@ msgstr "" "ejecutable aumenta debido a la eliminación limitada de código muerto y " "características adicionales." -#: ../Doc/using/configure.rst:169 +#: ../Doc/using/configure.rst:234 msgid "Turn on pthreads support for WASM." msgstr "Active la compatibilidad con pthreads para WASM." -#: ../Doc/using/configure.rst:175 +#: ../Doc/using/configure.rst:240 msgid "Install Options" msgstr "Opciones de instalación" -#: ../Doc/using/configure.rst:179 +#: ../Doc/using/configure.rst:244 +msgid "" +"Install architecture-independent files in PREFIX. On Unix, it defaults to :" +"file:`/usr/local`." +msgstr "" + +#: ../Doc/using/configure.rst:247 +msgid "This value can be retrieved at runtime using :data:`sys.prefix`." +msgstr "" + +#: ../Doc/using/configure.rst:249 +msgid "" +"As an example, one can use ``--prefix=\"$HOME/.local/\"`` to install a " +"Python in its home directory." +msgstr "" + +#: ../Doc/using/configure.rst:254 +msgid "" +"Install architecture-dependent files in EPREFIX, defaults to :option:`--" +"prefix`." +msgstr "" + +#: ../Doc/using/configure.rst:256 +msgid "This value can be retrieved at runtime using :data:`sys.exec_prefix`." +msgstr "" + +#: ../Doc/using/configure.rst:260 +#, fuzzy msgid "" "Don't build nor install test modules, like the :mod:`test` package or the :" -"mod:`_testcapi` extension module (built and installed by default)." +"mod:`!_testcapi` extension module (built and installed by default)." msgstr "" "No construya ni instale módulos de prueba, como el paquete :mod:`test` o el " "módulo de extensión :mod:`_testcapi` (construido e instalado por defecto)." -#: ../Doc/using/configure.rst:186 +#: ../Doc/using/configure.rst:267 msgid "Select the :mod:`ensurepip` command run on Python installation:" msgstr "" "Selecciona el comando :mod:`ensurepip` que se ejecuta en la instalación de " "Python:" -#: ../Doc/using/configure.rst:188 +#: ../Doc/using/configure.rst:269 msgid "" "``upgrade`` (default): run ``python -m ensurepip --altinstall --upgrade`` " "command." @@ -321,27 +439,29 @@ msgstr "" "``upgrade`` (por defecto): ejecutar el comando ``python -m ensurepip --" "altinstall --upgrade``." -#: ../Doc/using/configure.rst:190 +#: ../Doc/using/configure.rst:271 msgid "``install``: run ``python -m ensurepip --altinstall`` command;" msgstr "``install``: ejecutar el comando ``python -m ensurepip --altinstall``;" -#: ../Doc/using/configure.rst:191 +#: ../Doc/using/configure.rst:272 msgid "``no``: don't run ensurepip;" msgstr "``no``: no ejecuta ensurepip;" -#: ../Doc/using/configure.rst:197 +#: ../Doc/using/configure.rst:278 msgid "Performance options" msgstr "Opciones de desempeño" -#: ../Doc/using/configure.rst:199 +#: ../Doc/using/configure.rst:280 +#, fuzzy msgid "" "Configuring Python using ``--enable-optimizations --with-lto`` (PGO + LTO) " -"is recommended for best performance." +"is recommended for best performance. The experimental ``--enable-bolt`` flag " +"can also be used to improve performance." msgstr "" "Se recomienda configurar Python usando ``--enable-optimizations --with-lto`` " "(PGO + LTO) para obtener el mejor rendimiento." -#: ../Doc/using/configure.rst:204 +#: ../Doc/using/configure.rst:286 msgid "" "Enable Profile Guided Optimization (PGO) using :envvar:`PROFILE_TASK` " "(disabled by default)." @@ -350,7 +470,7 @@ msgstr "" "inglés) usando :envvar:`PROFILE_TASK` (deshabilitado de forma " "predeterminada)." -#: ../Doc/using/configure.rst:207 +#: ../Doc/using/configure.rst:289 msgid "" "The C compiler Clang requires ``llvm-profdata`` program for PGO. On macOS, " "GCC also requires it: GCC is just an alias to Clang on macOS." @@ -358,7 +478,7 @@ msgstr "" "El compilador de C Clang requiere el programa ``llvm-profdata`` para PGO. En " "macOS, GCC también lo requiere: GCC es solo un alias de Clang en macOS." -#: ../Doc/using/configure.rst:210 +#: ../Doc/using/configure.rst:292 msgid "" "Disable also semantic interposition in libpython if ``--enable-shared`` and " "GCC is used: add ``-fno-semantic-interposition`` to the compiler and linker " @@ -368,11 +488,11 @@ msgstr "" "enable-shared`` y GCC: agregar ``-fno-semantic-interposition`` a los flags " "del compilador y del enlazador." -#: ../Doc/using/configure.rst:216 +#: ../Doc/using/configure.rst:298 msgid "Use ``-fno-semantic-interposition`` on GCC." msgstr "Usar ``-fno-semantic-interposition`` en GCC." -#: ../Doc/using/configure.rst:221 +#: ../Doc/using/configure.rst:303 msgid "" "Environment variable used in the Makefile: Python command line arguments for " "the PGO generation task." @@ -380,17 +500,17 @@ msgstr "" "Variable de entorno utilizada en el Makefile: argumentos de la línea de " "comando Python para la tarea de generación de PGO." -#: ../Doc/using/configure.rst:224 +#: ../Doc/using/configure.rst:306 msgid "Default: ``-m test --pgo --timeout=$(TESTTIMEOUT)``." msgstr "Por defecto: ``-m test --pgo --timeout=$(TESTTIMEOUT)``." -#: ../Doc/using/configure.rst:230 +#: ../Doc/using/configure.rst:312 msgid "Enable Link Time Optimization (LTO) in any build (disabled by default)." msgstr "" "Habilita la Optimización de Tiempo de Enlace (*LTO* por sus siglas en " "inglés) en cualquier compilación (deshabilitado de forma predeterminada)." -#: ../Doc/using/configure.rst:232 +#: ../Doc/using/configure.rst:314 msgid "" "The C compiler Clang requires ``llvm-ar`` for LTO (``ar`` on macOS), as well " "as an LTO-aware linker (``ld.gold`` or ``lld``)." @@ -398,11 +518,49 @@ msgstr "" "El compilador de C Clang requiere ``llvm-ar`` para LTO (``ar`` en macOS), " "así como un enlazador compatible con LTO (``ld.gold`` o ``lld``)." -#: ../Doc/using/configure.rst:237 +#: ../Doc/using/configure.rst:319 msgid "To use ThinLTO feature, use ``--with-lto=thin`` on Clang." msgstr "Para usar la función ThinLTO, use ``--with-lto=thin`` en Clang." -#: ../Doc/using/configure.rst:242 +#: ../Doc/using/configure.rst:322 +msgid "" +"Use ThinLTO as the default optimization policy on Clang if the compiler " +"accepts the flag." +msgstr "" + +#: ../Doc/using/configure.rst:327 +msgid "" +"Enable usage of the `BOLT post-link binary optimizer `_ (disabled by default)." +msgstr "" + +#: ../Doc/using/configure.rst:331 +msgid "" +"BOLT is part of the LLVM project but is not always included in their binary " +"distributions. This flag requires that ``llvm-bolt`` and ``merge-fdata`` are " +"available." +msgstr "" + +#: ../Doc/using/configure.rst:335 +msgid "" +"BOLT is still a fairly new project so this flag should be considered " +"experimental for now. Because this tool operates on machine code its success " +"is dependent on a combination of the build environment + the other " +"optimization configure args + the CPU architecture, and not all combinations " +"are supported. BOLT versions before LLVM 16 are known to crash BOLT under " +"some scenarios. Use of LLVM 16 or newer for BOLT optimization is strongly " +"encouraged." +msgstr "" + +#: ../Doc/using/configure.rst:343 +msgid "" +"The :envvar:`!BOLT_INSTRUMENT_FLAGS` and :envvar:`!BOLT_APPLY_FLAGS` :" +"program:`configure` variables can be defined to override the default set of " +"arguments for :program:`llvm-bolt` to instrument and apply BOLT data to " +"binaries, respectively." +msgstr "" + +#: ../Doc/using/configure.rst:352 msgid "" "Enable computed gotos in evaluation loop (enabled by default on supported " "compilers)." @@ -410,7 +568,7 @@ msgstr "" "Habilita los *gotos* calculados en el ciclo de evaluación (habilitado de " "forma predeterminada en los compiladores compatibles)." -#: ../Doc/using/configure.rst:247 +#: ../Doc/using/configure.rst:357 msgid "" "Disable the specialized Python memory allocator :ref:`pymalloc ` " "(enabled by default)." @@ -418,11 +576,11 @@ msgstr "" "Deshabilita el asignador de memoria especializado de Python :ref:`pymalloc " "` (habilitado de forma predeterminada)." -#: ../Doc/using/configure.rst:250 +#: ../Doc/using/configure.rst:360 msgid "See also :envvar:`PYTHONMALLOC` environment variable." msgstr "Consultar también la variable de entorno :envvar:`PYTHONMALLOC`." -#: ../Doc/using/configure.rst:254 +#: ../Doc/using/configure.rst:364 msgid "" "Disable static documentation strings to reduce the memory footprint (enabled " "by default). Documentation strings defined in Python are not affected." @@ -432,25 +590,31 @@ msgstr "" "cadenas de caracteres de documentación definidas en Python no se ven " "afectadas." -#: ../Doc/using/configure.rst:257 +#: ../Doc/using/configure.rst:367 msgid "Don't define the ``WITH_DOC_STRINGS`` macro." msgstr "No define la macro ``WITH_DOC_STRINGS``." -#: ../Doc/using/configure.rst:259 +#: ../Doc/using/configure.rst:369 msgid "See the ``PyDoc_STRVAR()`` macro." msgstr "Consultar la macro ``PyDoc_STRVAR()``." -#: ../Doc/using/configure.rst:263 +#: ../Doc/using/configure.rst:373 msgid "Enable C-level code profiling with ``gprof`` (disabled by default)." msgstr "" "Habilita el análisis de rendimiento de código (*profiling*) de nivel C con " "``gprof`` (deshabilitado de forma predeterminada)." -#: ../Doc/using/configure.rst:269 +#: ../Doc/using/configure.rst:377 +msgid "" +"Add ``-fstrict-overflow`` to the C compiler flags (by default we add ``-fno-" +"strict-overflow`` instead)." +msgstr "" + +#: ../Doc/using/configure.rst:384 msgid "Python Debug Build" msgstr "Compilación de depuración de Python" -#: ../Doc/using/configure.rst:271 +#: ../Doc/using/configure.rst:386 msgid "" "A debug build is Python built with the :option:`--with-pydebug` configure " "option." @@ -458,11 +622,11 @@ msgstr "" "Una compilación de depuración es Python construido con la opción de " "configuración :option:`--with-pydebug`." -#: ../Doc/using/configure.rst:274 +#: ../Doc/using/configure.rst:389 msgid "Effects of a debug build:" msgstr "Efectos de una compilación de depuración:" -#: ../Doc/using/configure.rst:276 +#: ../Doc/using/configure.rst:391 msgid "" "Display all warnings by default: the list of default warning filters is " "empty in the :mod:`warnings` module." @@ -470,23 +634,26 @@ msgstr "" "Muestra todas las advertencias de forma predeterminada: la lista de filtros " "de advertencia predeterminados está vacía en el módulo :mod:`warnings`." -#: ../Doc/using/configure.rst:278 +#: ../Doc/using/configure.rst:393 msgid "Add ``d`` to :data:`sys.abiflags`." msgstr "Agrega ``d`` a :data:`sys.abiflags`." -#: ../Doc/using/configure.rst:279 -msgid "Add :func:`sys.gettotalrefcount` function." +#: ../Doc/using/configure.rst:394 +#, fuzzy +msgid "Add :func:`!sys.gettotalrefcount` function." msgstr "Agrega la función :func:`sys.gettotalrefcount`." -#: ../Doc/using/configure.rst:280 +#: ../Doc/using/configure.rst:395 msgid "Add :option:`-X showrefcount <-X>` command line option." msgstr "Agrega la opción de línea de comando :option:`-X showrefcount <-X>`." -#: ../Doc/using/configure.rst:281 -msgid "Add :envvar:`PYTHONTHREADDEBUG` environment variable." -msgstr "Agrega la variable de entorno :envvar:`PYTHONTHREADDEBUG`." +#: ../Doc/using/configure.rst:396 +msgid "" +"Add :option:`-d` command line option and :envvar:`PYTHONDEBUG` environment " +"variable to debug the parser." +msgstr "" -#: ../Doc/using/configure.rst:282 +#: ../Doc/using/configure.rst:398 msgid "" "Add support for the ``__lltrace__`` variable: enable low-level tracing in " "the bytecode evaluation loop if the variable is defined." @@ -495,7 +662,7 @@ msgstr "" "bajo nivel en el ciclo de evaluación del código de bytes si la variable está " "definida." -#: ../Doc/using/configure.rst:284 +#: ../Doc/using/configure.rst:400 msgid "" "Install :ref:`debug hooks on memory allocators ` " "to detect buffer overflow and other memory errors." @@ -504,11 +671,11 @@ msgstr "" "memory-allocators>` para detectar el desbordamiento del búfer y otros " "errores de memoria." -#: ../Doc/using/configure.rst:286 +#: ../Doc/using/configure.rst:402 msgid "Define ``Py_DEBUG`` and ``Py_REF_DEBUG`` macros." msgstr "Define las macros ``Py_DEBUG`` y ``Py_REF_DEBUG``." -#: ../Doc/using/configure.rst:287 +#: ../Doc/using/configure.rst:403 msgid "" "Add runtime checks: code surrounded by ``#ifdef Py_DEBUG`` and ``#endif``. " "Enable ``assert(...)`` and ``_PyObject_ASSERT(...)`` assertions: don't set " @@ -521,11 +688,11 @@ msgstr "" "opción de configuración :option:`--with-assertions`). Comprobaciones " "principales de tiempo de ejecución:" -#: ../Doc/using/configure.rst:292 +#: ../Doc/using/configure.rst:408 msgid "Add sanity checks on the function arguments." msgstr "Agregue controles de sanidad en los argumentos de la función." -#: ../Doc/using/configure.rst:293 +#: ../Doc/using/configure.rst:409 msgid "" "Unicode and int objects are created with their memory filled with a pattern " "to detect usage of uninitialized objects." @@ -533,7 +700,7 @@ msgstr "" "Los objetos unicode e int se crean con su memoria completa con un patrón " "para detectar el uso de objetos no inicializados." -#: ../Doc/using/configure.rst:295 +#: ../Doc/using/configure.rst:411 msgid "" "Ensure that functions which can clear or replace the current exception are " "not called with an exception raised." @@ -541,12 +708,12 @@ msgstr "" "Asegúrese de que las funciones que pueden borrar o reemplazar la excepción " "actual no se invocan con una excepción lanzada." -#: ../Doc/using/configure.rst:297 +#: ../Doc/using/configure.rst:413 msgid "Check that deallocator functions don't change the current exception." msgstr "" "Verifique que las funciones de desasignador no cambien la excepción actual." -#: ../Doc/using/configure.rst:298 +#: ../Doc/using/configure.rst:414 msgid "" "The garbage collector (:func:`gc.collect` function) runs some basic checks " "on objects consistency." @@ -554,16 +721,17 @@ msgstr "" "El recolector de basura (función :func:`gc.collect`) ejecuta algunas " "comprobaciones básicas sobre la consistencia de los objetos." -#: ../Doc/using/configure.rst:300 +#: ../Doc/using/configure.rst:416 +#, fuzzy msgid "" -"The :c:macro:`Py_SAFE_DOWNCAST()` macro checks for integer underflow and " +"The :c:macro:`!Py_SAFE_DOWNCAST()` macro checks for integer underflow and " "overflow when downcasting from wide types to narrow types." msgstr "" "La macro :c:macro:`Py_SAFE_DOWNCAST()` comprueba el subdesbordamiento y el " "desbordamiento de enteros al realizar una conversión descendente de tipos " "anchos a tipos estrechos." -#: ../Doc/using/configure.rst:303 +#: ../Doc/using/configure.rst:419 msgid "" "See also the :ref:`Python Development Mode ` and the :option:`--" "with-trace-refs` configure option." @@ -571,7 +739,7 @@ msgstr "" "Consultar también :ref:`Modo de Desarrollo de Python ` y la opción " "de configuración :option:`--with-trace-refs`." -#: ../Doc/using/configure.rst:306 +#: ../Doc/using/configure.rst:422 msgid "" "Release builds and debug builds are now ABI compatible: defining the " "``Py_DEBUG`` macro no longer implies the ``Py_TRACE_REFS`` macro (see the :" @@ -583,11 +751,11 @@ msgstr "" "``Py_TRACE_REFS`` (consultar la opción :option:`--with-trace-refs`), que " "presenta la única Incompatibilidad ABI." -#: ../Doc/using/configure.rst:314 +#: ../Doc/using/configure.rst:430 msgid "Debug options" msgstr "Opciones de depuración" -#: ../Doc/using/configure.rst:318 +#: ../Doc/using/configure.rst:434 msgid "" ":ref:`Build Python in debug mode `: define the ``Py_DEBUG`` " "macro (disabled by default)." @@ -595,29 +763,30 @@ msgstr "" ":ref:`Compila Python en modo de depuración `: define la macro " "``Py_DEBUG`` (deshabilitada por defecto)." -#: ../Doc/using/configure.rst:323 +#: ../Doc/using/configure.rst:439 msgid "Enable tracing references for debugging purpose (disabled by default)." msgstr "" "Habilita las referencias de seguimiento con fines de depuración " "(deshabilitado de forma predeterminada)." -#: ../Doc/using/configure.rst:325 +#: ../Doc/using/configure.rst:441 msgid "Effects:" msgstr "Efectos:" -#: ../Doc/using/configure.rst:327 +#: ../Doc/using/configure.rst:443 msgid "Define the ``Py_TRACE_REFS`` macro." msgstr "Define la macro ``Py_TRACE_REFS``." -#: ../Doc/using/configure.rst:328 -msgid "Add :func:`sys.getobjects` function." +#: ../Doc/using/configure.rst:444 +#, fuzzy +msgid "Add :func:`!sys.getobjects` function." msgstr "Agrega la función :func:`sys.getobjects`." -#: ../Doc/using/configure.rst:329 +#: ../Doc/using/configure.rst:445 msgid "Add :envvar:`PYTHONDUMPREFS` environment variable." msgstr "Agrega la variable de entorno :envvar:`PYTHONDUMPREFS`." -#: ../Doc/using/configure.rst:331 +#: ../Doc/using/configure.rst:447 msgid "" "This build is not ABI compatible with release build (default build) or debug " "build (``Py_DEBUG`` and ``Py_REF_DEBUG`` macros)." @@ -626,7 +795,7 @@ msgstr "" "(compilación predeterminada) o la compilación de depuración (macros " "``Py_DEBUG`` y ``Py_REF_DEBUG``)." -#: ../Doc/using/configure.rst:338 +#: ../Doc/using/configure.rst:454 msgid "" "Build with C assertions enabled (default is no): ``assert(...);`` and " "``_PyObject_ASSERT(...);``." @@ -634,7 +803,7 @@ msgstr "" "Compila con las aserciones de C habilitadas (el valor predeterminado es no): " "``assert(...);`` y ``_PyObject_ASSERT(...);``." -#: ../Doc/using/configure.rst:341 +#: ../Doc/using/configure.rst:457 msgid "" "If set, the ``NDEBUG`` macro is not defined in the :envvar:`OPT` compiler " "variable." @@ -642,7 +811,7 @@ msgstr "" "Si se establece, la macro ``NDEBUG`` no está definida en la variable del " "compilador :envvar:`OPT`." -#: ../Doc/using/configure.rst:344 +#: ../Doc/using/configure.rst:460 msgid "" "See also the :option:`--with-pydebug` option (:ref:`debug build `) which also enables assertions." @@ -650,37 +819,37 @@ msgstr "" "Consultar también la opción :option:`--with-pydebug` (:ref:`compilación de " "depuración `) que también habilita las aserciones." -#: ../Doc/using/configure.rst:351 +#: ../Doc/using/configure.rst:467 msgid "Enable Valgrind support (default is no)." msgstr "" "Habilite la compatibilidad con Valgrind (el valor predeterminado es no)." -#: ../Doc/using/configure.rst:355 +#: ../Doc/using/configure.rst:471 msgid "Enable DTrace support (default is no)." msgstr "Habilite la compatibilidad con DTrace (el valor predeterminado es no)." -#: ../Doc/using/configure.rst:357 +#: ../Doc/using/configure.rst:473 msgid "" "See :ref:`Instrumenting CPython with DTrace and SystemTap `." msgstr "" "Consultar :ref:`Instrumentación de CPython con DTrace y SystemTap " "`." -#: ../Doc/using/configure.rst:364 +#: ../Doc/using/configure.rst:480 msgid "" "Enable AddressSanitizer memory error detector, ``asan`` (default is no)." msgstr "" "Habilita el detector de errores de memoria AddressSanitizer, ``asan`` (el " "valor predeterminado es no)." -#: ../Doc/using/configure.rst:370 +#: ../Doc/using/configure.rst:486 msgid "" "Enable MemorySanitizer allocation error detector, ``msan`` (default is no)." msgstr "" "Habilita el detector de errores de asignación MemorySanitizer, ``msan`` (el " "valor predeterminado es no)." -#: ../Doc/using/configure.rst:376 +#: ../Doc/using/configure.rst:492 msgid "" "Enable UndefinedBehaviorSanitizer undefined behaviour detector, ``ubsan`` " "(default is no)." @@ -688,17 +857,17 @@ msgstr "" "Habilita el detector de comportamiento indefinido " "UndefinedBehaviorSanitizer, ``ubsan`` (el valor predeterminado es no)." -#: ../Doc/using/configure.rst:383 +#: ../Doc/using/configure.rst:499 msgid "Linker options" msgstr "Opciones del enlazador" -#: ../Doc/using/configure.rst:387 +#: ../Doc/using/configure.rst:503 msgid "Enable building a shared Python library: ``libpython`` (default is no)." msgstr "" "Habilita la compilación de una biblioteca compartida de Python :" "``libpython`` (el valor predeterminado es no)." -#: ../Doc/using/configure.rst:391 +#: ../Doc/using/configure.rst:507 msgid "" "Do not build ``libpythonMAJOR.MINOR.a`` and do not install ``python.o`` " "(built and enabled by default)." @@ -706,32 +875,24 @@ msgstr "" "No compila ``libpythonMAJOR.MINOR.a`` y no instala ``python.o`` (compilado y " "habilitado de forma predeterminada)." -#: ../Doc/using/configure.rst:398 +#: ../Doc/using/configure.rst:514 msgid "Libraries options" msgstr "Opciones de bibliotecas" -#: ../Doc/using/configure.rst:402 +#: ../Doc/using/configure.rst:518 msgid "Link against additional libraries (default is no)." msgstr "Enlace con bibliotecas adicionales (el valor predeterminado es no)." -#: ../Doc/using/configure.rst:406 +#: ../Doc/using/configure.rst:522 +#, fuzzy msgid "" -"Build the :mod:`pyexpat` module using an installed ``expat`` library " +"Build the :mod:`!pyexpat` module using an installed ``expat`` library " "(default is no)." msgstr "" "Compila el módulo :mod:`pyexpat` usando la biblioteca instalada ``expat`` " "instalada (por defecto es no)." -#: ../Doc/using/configure.rst:411 -msgid "" -"Build the :mod:`_ctypes` extension module using an installed ``ffi`` " -"library, see the :mod:`ctypes` module (default is system-dependent)." -msgstr "" -"Compila el módulo de extensión :mod:`_ctypes` usando la biblioteca instalada " -"``ffi``, consultar el módulo :mod:`ctypes` (el valor predeterminado es " -"dependiente del sistema)." - -#: ../Doc/using/configure.rst:416 +#: ../Doc/using/configure.rst:527 msgid "" "Build the ``_decimal`` extension module using an installed ``mpdec`` " "library, see the :mod:`decimal` module (default is no)." @@ -739,135 +900,135 @@ msgstr "" "Compila el módulo de extensión ``_decimal`` usando la biblioteca instalada " "``mpdec``, ver el módulo :mod:`decimal` (el valor predeterminado es no)." -#: ../Doc/using/configure.rst:423 +#: ../Doc/using/configure.rst:534 msgid "Use ``editline`` library for backend of the :mod:`readline` module." msgstr "" "Utilice la biblioteca ``editline`` para el backend del módulo :mod:" "`readline`." -#: ../Doc/using/configure.rst:425 +#: ../Doc/using/configure.rst:536 msgid "Define the ``WITH_EDITLINE`` macro." msgstr "Define la macro ``WITH_EDITLINE``." -#: ../Doc/using/configure.rst:431 +#: ../Doc/using/configure.rst:542 msgid "Don't build the :mod:`readline` module (built by default)." msgstr "No cree el módulo :mod:`readline` (es construido por defecto)." -#: ../Doc/using/configure.rst:433 +#: ../Doc/using/configure.rst:544 msgid "Don't define the ``HAVE_LIBREADLINE`` macro." msgstr "No defina la macro ``HAVE_LIBREADLINE``." -#: ../Doc/using/configure.rst:439 +#: ../Doc/using/configure.rst:550 msgid "" "Override ``libm`` math library to *STRING* (default is system-dependent)." msgstr "" "Sobreescribe la biblioteca matemática ``libm`` a *STRING* (el valor " "predeterminado es dependiente del sistema)." -#: ../Doc/using/configure.rst:443 +#: ../Doc/using/configure.rst:554 msgid "Override ``libc`` C library to *STRING* (default is system-dependent)." msgstr "" "Sobreescribe la biblioteca C ``libc`` a *STRING* (el valor predeterminado es " "dependiente del sistema)." -#: ../Doc/using/configure.rst:447 +#: ../Doc/using/configure.rst:558 msgid "Root of the OpenSSL directory." msgstr "Raíz del directorio OpenSSL." -#: ../Doc/using/configure.rst:453 +#: ../Doc/using/configure.rst:564 msgid "Set runtime library directory (rpath) for OpenSSL libraries:" msgstr "" "Configura el directorio de la biblioteca en tiempo de ejecución (rpath) para " "las bibliotecas OpenSSL:" -#: ../Doc/using/configure.rst:455 +#: ../Doc/using/configure.rst:566 msgid "``no`` (default): don't set rpath;" msgstr "``no`` (por defecto): no establece rpath;" -#: ../Doc/using/configure.rst:456 +#: ../Doc/using/configure.rst:567 msgid "" "``auto``: auto-detect rpath from :option:`--with-openssl` and ``pkg-config``;" msgstr "" "``auto``: autodetecta rpath desde :option:`--with-openssl` y ``pkg-config``;" -#: ../Doc/using/configure.rst:458 +#: ../Doc/using/configure.rst:569 msgid "*DIR*: set an explicit rpath." msgstr "*DIR*: establece un rpath explícito." -#: ../Doc/using/configure.rst:464 +#: ../Doc/using/configure.rst:575 msgid "Security Options" msgstr "Opciones de seguridad" -#: ../Doc/using/configure.rst:468 +#: ../Doc/using/configure.rst:579 msgid "Select hash algorithm for use in ``Python/pyhash.c``:" msgstr "Selecciona el algoritmo hash para usar en ``Python/pyhash.c``:" -#: ../Doc/using/configure.rst:470 +#: ../Doc/using/configure.rst:581 msgid "``siphash13`` (default);" msgstr "``siphash13`` (por defecto);" -#: ../Doc/using/configure.rst:471 +#: ../Doc/using/configure.rst:582 msgid "``siphash24``;" msgstr "``siphash24``;" -#: ../Doc/using/configure.rst:472 +#: ../Doc/using/configure.rst:583 msgid "``fnv``." msgstr "``fnv``." -#: ../Doc/using/configure.rst:476 +#: ../Doc/using/configure.rst:587 msgid "``siphash13`` is added and it is the new default." msgstr "Se agrega ``siphash13`` y es el nuevo valor predeterminado." -#: ../Doc/using/configure.rst:481 +#: ../Doc/using/configure.rst:592 msgid "Built-in hash modules:" msgstr "Módulos hash incorporados:" -#: ../Doc/using/configure.rst:483 +#: ../Doc/using/configure.rst:594 msgid "``md5``;" msgstr "``md5``;" -#: ../Doc/using/configure.rst:484 +#: ../Doc/using/configure.rst:595 msgid "``sha1``;" msgstr "``sha1``;" -#: ../Doc/using/configure.rst:485 +#: ../Doc/using/configure.rst:596 msgid "``sha256``;" msgstr "``sha256``;" -#: ../Doc/using/configure.rst:486 +#: ../Doc/using/configure.rst:597 msgid "``sha512``;" msgstr "``sha512``;" -#: ../Doc/using/configure.rst:487 +#: ../Doc/using/configure.rst:598 msgid "``sha3`` (with shake);" msgstr "``sha3`` (con shake);" -#: ../Doc/using/configure.rst:488 +#: ../Doc/using/configure.rst:599 msgid "``blake2``." msgstr "``blake2``." -#: ../Doc/using/configure.rst:494 +#: ../Doc/using/configure.rst:605 msgid "Override the OpenSSL default cipher suites string:" msgstr "" "Sobreescribe la cadena de conjuntos de cifrado predeterminada de OpenSSL:" -#: ../Doc/using/configure.rst:496 +#: ../Doc/using/configure.rst:607 msgid "``python`` (default): use Python's preferred selection;" msgstr "``python`` (por defecto): usa la selección principal de Python;" -#: ../Doc/using/configure.rst:497 +#: ../Doc/using/configure.rst:608 msgid "``openssl``: leave OpenSSL's defaults untouched;" msgstr "``openssl``: deja intactos los valores predeterminados de OpenSSL;" -#: ../Doc/using/configure.rst:498 +#: ../Doc/using/configure.rst:609 msgid "*STRING*: use a custom string" msgstr "*STRING*: usa una cadena de caracteres personalizada" -#: ../Doc/using/configure.rst:500 +#: ../Doc/using/configure.rst:611 msgid "See the :mod:`ssl` module." msgstr "Consultar el módulo :mod:`ssl`." -#: ../Doc/using/configure.rst:506 +#: ../Doc/using/configure.rst:617 msgid "" "The settings ``python`` and *STRING* also set TLS 1.2 as minimum protocol " "version." @@ -875,15 +1036,15 @@ msgstr "" "Las configuraciones ``python`` y *STRING* también establecen TLS 1.2 como " "versión mínima del protocolo." -#: ../Doc/using/configure.rst:510 +#: ../Doc/using/configure.rst:621 msgid "macOS Options" msgstr "Opciones macOS" -#: ../Doc/using/configure.rst:512 +#: ../Doc/using/configure.rst:623 msgid "See ``Mac/README.rst``." msgstr "Ver ``Mac/README.rst``." -#: ../Doc/using/configure.rst:517 +#: ../Doc/using/configure.rst:628 msgid "" "Create a universal binary build. *SDKDIR* specifies which macOS SDK should " "be used to perform the build (default is no)." @@ -891,7 +1052,7 @@ msgstr "" "Crea una compilación binaria universal. *SDKDIR* especifica qué macOS SDK " "debe usarse para realizar la compilación (el valor predeterminado es no)." -#: ../Doc/using/configure.rst:523 +#: ../Doc/using/configure.rst:634 msgid "" "Create a Python.framework rather than a traditional Unix install. Optional " "*INSTALLDIR* specifies the installation path (default is no)." @@ -900,7 +1061,7 @@ msgstr "" "Opcionalmente *INSTALLDIR* especifica la ruta de instalación (el valor " "predeterminado es no)." -#: ../Doc/using/configure.rst:528 +#: ../Doc/using/configure.rst:639 msgid "" "Specify the kind of universal binary that should be created. This option is " "only valid when :option:`--enable-universalsdk` is set." @@ -908,43 +1069,43 @@ msgstr "" "Especifique el tipo de binario universal que se debe crear. Esta opción solo " "es válida cuando se establece :option:`--enable-universalsdk`." -#: ../Doc/using/configure.rst:531 +#: ../Doc/using/configure.rst:642 msgid "Options:" msgstr "Opciones:" -#: ../Doc/using/configure.rst:533 +#: ../Doc/using/configure.rst:644 msgid "``universal2``;" msgstr "``universal2``;" -#: ../Doc/using/configure.rst:534 +#: ../Doc/using/configure.rst:645 msgid "``32-bit``;" msgstr "``32-bit``;" -#: ../Doc/using/configure.rst:535 +#: ../Doc/using/configure.rst:646 msgid "``64-bit``;" msgstr "``64-bit``;" -#: ../Doc/using/configure.rst:536 +#: ../Doc/using/configure.rst:647 msgid "``3-way``;" msgstr "``3-way``;" -#: ../Doc/using/configure.rst:537 +#: ../Doc/using/configure.rst:648 msgid "``intel``;" msgstr "``intel``;" -#: ../Doc/using/configure.rst:538 +#: ../Doc/using/configure.rst:649 msgid "``intel-32``;" msgstr "``intel-32``;" -#: ../Doc/using/configure.rst:539 +#: ../Doc/using/configure.rst:650 msgid "``intel-64``;" msgstr "``intel-64``;" -#: ../Doc/using/configure.rst:540 +#: ../Doc/using/configure.rst:651 msgid "``all``." msgstr "``all``." -#: ../Doc/using/configure.rst:544 +#: ../Doc/using/configure.rst:655 msgid "" "Specify the name for the python framework on macOS only valid when :option:" "`--enable-framework` is set (default: ``Python``)." @@ -953,11 +1114,11 @@ msgstr "" "cuando :option:`--enable-framework` está configurada (por defecto: " "``Python``)." -#: ../Doc/using/configure.rst:549 +#: ../Doc/using/configure.rst:660 msgid "Cross Compiling Options" msgstr "Opciones de compilación cruzada" -#: ../Doc/using/configure.rst:551 +#: ../Doc/using/configure.rst:662 msgid "" "Cross compiling, also known as cross building, can be used to build Python " "for another CPU architecture or platform. Cross compiling requires a Python " @@ -970,60 +1131,60 @@ msgstr "" "compilación. La versión de Python de compilación debe coincidir con la " "versión de Python host de compilación cruzada." -#: ../Doc/using/configure.rst:558 +#: ../Doc/using/configure.rst:669 msgid "" "configure for building on BUILD, usually guessed by :program:`config.guess`." msgstr "" "configure para construir en BUILD, generalmente adivinado por :program:" "`config.guess`." -#: ../Doc/using/configure.rst:562 +#: ../Doc/using/configure.rst:673 msgid "cross-compile to build programs to run on HOST (target platform)" msgstr "" "compilación cruzada para crear programas que se ejecuten en HOST (plataforma " "de destino)" -#: ../Doc/using/configure.rst:566 +#: ../Doc/using/configure.rst:677 msgid "path to build ``python`` binary for cross compiling" msgstr "ruta para construir el binario ``python`` para compilación cruzada" -#: ../Doc/using/configure.rst:572 +#: ../Doc/using/configure.rst:683 msgid "An environment variable that points to a file with configure overrides." msgstr "" "Una variable de entorno que apunta a un archivo con anulaciones de " "configuración." -#: ../Doc/using/configure.rst:574 +#: ../Doc/using/configure.rst:685 msgid "Example *config.site* file::" msgstr "Ejemplo de archivo *config.site*::" -#: ../Doc/using/configure.rst:582 +#: ../Doc/using/configure.rst:693 msgid "Cross compiling example::" msgstr "Ejemplo de compilación cruzada::" -#: ../Doc/using/configure.rst:591 +#: ../Doc/using/configure.rst:702 msgid "Python Build System" msgstr "Sistema de compilación Python" -#: ../Doc/using/configure.rst:594 +#: ../Doc/using/configure.rst:705 msgid "Main files of the build system" msgstr "Archivos principales del sistema de compilación" -#: ../Doc/using/configure.rst:596 +#: ../Doc/using/configure.rst:707 msgid ":file:`configure.ac` => :file:`configure`;" msgstr ":file:`configure.ac` => :file:`configure`;" -#: ../Doc/using/configure.rst:597 +#: ../Doc/using/configure.rst:708 msgid "" ":file:`Makefile.pre.in` => :file:`Makefile` (created by :file:`configure`);" msgstr "" ":file:`Makefile.pre.in` => :file:`Makefile` (creado por :file:`configure`);" -#: ../Doc/using/configure.rst:598 +#: ../Doc/using/configure.rst:709 msgid ":file:`pyconfig.h` (created by :file:`configure`);" msgstr ":file:`pyconfig.h` (creado por :file:`configure`);" -#: ../Doc/using/configure.rst:599 +#: ../Doc/using/configure.rst:710 msgid "" ":file:`Modules/Setup`: C extensions built by the Makefile using :file:" "`Module/makesetup` shell script;" @@ -1031,26 +1192,21 @@ msgstr "" ":file:`Modules/Setup`: Extensiones C creadas por Makefile usando el script " "de shell :file:`Module/makesetup`;" -#: ../Doc/using/configure.rst:601 -msgid ":file:`setup.py`: C extensions built using the :mod:`distutils` module." -msgstr "" -":file:`setup.py`: extensiones C creadas con el módulo :mod:`distutils`." - -#: ../Doc/using/configure.rst:604 +#: ../Doc/using/configure.rst:714 msgid "Main build steps" msgstr "Pasos principales de compilación" -#: ../Doc/using/configure.rst:606 +#: ../Doc/using/configure.rst:716 msgid "C files (``.c``) are built as object files (``.o``)." msgstr "Los archivos C (``.c``) se crean como archivos objeto (``.o``)." -#: ../Doc/using/configure.rst:607 +#: ../Doc/using/configure.rst:717 msgid "A static ``libpython`` library (``.a``) is created from objects files." msgstr "" "La biblioteca estática ``libpython`` (``.a``) se crea a a partir de archivos " "de objetos." -#: ../Doc/using/configure.rst:608 +#: ../Doc/using/configure.rst:718 msgid "" "``python.o`` and the static ``libpython`` library are linked into the final " "``python`` program." @@ -1058,23 +1214,22 @@ msgstr "" "``python.o`` y la biblioteca estática ``libpython`` están enlazadas al " "programa final ``python``." -#: ../Doc/using/configure.rst:610 -msgid "" -"C extensions are built by the Makefile (see :file:`Modules/Setup`) and " -"``python setup.py build``." +#: ../Doc/using/configure.rst:720 +#, fuzzy +msgid "C extensions are built by the Makefile (see :file:`Modules/Setup`)." msgstr "" "Las extensiones C son creadas por Makefile (ver :file:`Midules/Setup`) y " "``python setup.py build``." -#: ../Doc/using/configure.rst:614 +#: ../Doc/using/configure.rst:723 msgid "Main Makefile targets" msgstr "Objetivos principales de Makefile" -#: ../Doc/using/configure.rst:616 +#: ../Doc/using/configure.rst:725 msgid "``make``: Build Python with the standard library." msgstr "``make``: Compilar Python con la biblioteca estándar." -#: ../Doc/using/configure.rst:617 +#: ../Doc/using/configure.rst:726 msgid "" "``make platform:``: build the ``python`` program, but don't build the " "standard library extension modules." @@ -1082,7 +1237,7 @@ msgstr "" "``make platform:``: compila el programa ``python``, pero no construye los " "módulos de extensión de la biblioteca estándar." -#: ../Doc/using/configure.rst:619 +#: ../Doc/using/configure.rst:728 msgid "" "``make profile-opt``: build Python using Profile Guided Optimization (PGO). " "You can use the configure :option:`--enable-optimizations` option to make " @@ -1094,7 +1249,7 @@ msgstr "" "optimizations` para hacer que este sea el objetivo predeterminado del " "comando ``make`` (``make all`` o simplemente ``make``)." -#: ../Doc/using/configure.rst:623 +#: ../Doc/using/configure.rst:732 msgid "" "``make buildbottest``: Build Python and run the Python test suite, the same " "way than buildbots test Python. Set ``TESTTIMEOUT`` variable (in seconds) to " @@ -1105,11 +1260,11 @@ msgstr "" "variable ``TESTTIMEOUT`` (en segundos) para cambiar el tiempo de espera de " "la prueba (1200 por defecto: 20 minutos)." -#: ../Doc/using/configure.rst:626 +#: ../Doc/using/configure.rst:735 msgid "``make install``: Build and install Python." msgstr "``make install``: Compila e instala Python." -#: ../Doc/using/configure.rst:627 +#: ../Doc/using/configure.rst:736 msgid "" "``make regen-all``: Regenerate (almost) all generated files; ``make regen-" "stdlib-module-names`` and ``autoconf`` must be run separately for the " @@ -1119,11 +1274,11 @@ msgstr "" "regen-stdlib-module-names`` y ``autoconf`` deben ejecutarse por separado " "para los archivos generados restantes." -#: ../Doc/using/configure.rst:630 +#: ../Doc/using/configure.rst:739 msgid "``make clean``: Remove built files." msgstr "``make clean``: elimina los archivos compilados." -#: ../Doc/using/configure.rst:631 +#: ../Doc/using/configure.rst:740 msgid "" "``make distclean``: Same than ``make clean``, but remove also files created " "by the configure script." @@ -1131,11 +1286,11 @@ msgstr "" "``make distclean``: Similar a ``make clean``, pero elimina también los " "archivos creados por el script de configuración." -#: ../Doc/using/configure.rst:635 +#: ../Doc/using/configure.rst:744 msgid "C extensions" msgstr "Extensiones C" -#: ../Doc/using/configure.rst:637 +#: ../Doc/using/configure.rst:746 msgid "" "Some C extensions are built as built-in modules, like the ``sys`` module. " "They are built with the ``Py_BUILD_CORE_BUILTIN`` macro defined. Built-in " @@ -1146,7 +1301,7 @@ msgstr "" "``Py_BUILD_CORE_BUILTIN``. Los módulos incorporados no tienen el atributo " "``__file__``:" -#: ../Doc/using/configure.rst:649 +#: ../Doc/using/configure.rst:758 msgid "" "Other C extensions are built as dynamic libraries, like the ``_asyncio`` " "module. They are built with the ``Py_BUILD_CORE_MODULE`` macro defined. " @@ -1156,7 +1311,7 @@ msgstr "" "``_asyncio``. Están construidas con la macro ``Py_BUILD_CORE_MODULE`` " "definida. Ejemplo en Linux x86-64::" -#: ../Doc/using/configure.rst:659 +#: ../Doc/using/configure.rst:768 msgid "" ":file:`Modules/Setup` is used to generate Makefile targets to build C " "extensions. At the beginning of the files, C extensions are built as built-" @@ -1168,47 +1323,41 @@ msgstr "" "módulos incorporados. Las extensiones definidas después del marcador " "``*shared*`` se crean como bibliotecas dinámicas." -#: ../Doc/using/configure.rst:663 -msgid "" -"The :file:`setup.py` script only builds C extensions as shared libraries " -"using the :mod:`distutils` module." -msgstr "" -"El script :file:`setup.py` solo crea extensiones C como bibliotecas " -"compartidas usando el módulo :mod:`distutils`." - -#: ../Doc/using/configure.rst:666 +#: ../Doc/using/configure.rst:772 +#, fuzzy msgid "" -"The :c:macro:`PyAPI_FUNC()`, :c:macro:`PyAPI_API()` and :c:macro:" -"`PyMODINIT_FUNC()` macros of :file:`Include/pyport.h` are defined " -"differently depending if the ``Py_BUILD_CORE_MODULE`` macro is defined:" +"The :c:macro:`!PyAPI_FUNC()`, :c:macro:`!PyAPI_DATA()` and :c:macro:" +"`PyMODINIT_FUNC` macros of :file:`Include/exports.h` are defined differently " +"depending if the ``Py_BUILD_CORE_MODULE`` macro is defined:" msgstr "" "Las macros :c:macro:`PyAPI_FUNC()`, :c:macro:`PyAPI_API()` y :c:macro:" "`PyMODINIT_FUNC()` de :file:`Include/pyport.h` se definen de manera " "diferente dependiendo si es definida la macro ``Py_BUILD_CORE_MODULE``:" -#: ../Doc/using/configure.rst:670 +#: ../Doc/using/configure.rst:776 msgid "Use ``Py_EXPORTED_SYMBOL`` if the ``Py_BUILD_CORE_MODULE`` is defined" msgstr "Use ``Py_EXPORTED_SYMBOL`` si ``Py_BUILD_CORE_MODULE`` es definido" -#: ../Doc/using/configure.rst:671 +#: ../Doc/using/configure.rst:777 msgid "Use ``Py_IMPORTED_SYMBOL`` otherwise." msgstr "Use ``Py_IMPORTED_SYMBOL`` de lo contrario." -#: ../Doc/using/configure.rst:673 +#: ../Doc/using/configure.rst:779 +#, fuzzy msgid "" "If the ``Py_BUILD_CORE_BUILTIN`` macro is used by mistake on a C extension " -"built as a shared library, its ``PyInit_xxx()`` function is not exported, " -"causing an :exc:`ImportError` on import." +"built as a shared library, its :samp:`PyInit_{xxx}()` function is not " +"exported, causing an :exc:`ImportError` on import." msgstr "" "Si la macro ``Py_BUILD_CORE_BUILTIN`` se usa por error en una extensión de C " "compilada como una biblioteca compartida, su función ``PyInit_xxx()`` no se " "exporta, provocando un :exc:`ImportError` en la importación." -#: ../Doc/using/configure.rst:679 +#: ../Doc/using/configure.rst:785 msgid "Compiler and linker flags" msgstr "Banderas de compilador y vinculación" -#: ../Doc/using/configure.rst:681 +#: ../Doc/using/configure.rst:787 msgid "" "Options set by the ``./configure`` script and environment variables and used " "by ``Makefile``." @@ -1216,42 +1365,44 @@ msgstr "" "Opciones establecidas por el script ``./configure`` y las variables de " "entorno y utilizadas por ``Makefile``." -#: ../Doc/using/configure.rst:685 +#: ../Doc/using/configure.rst:791 msgid "Preprocessor flags" msgstr "Banderas del preprocesador" -#: ../Doc/using/configure.rst:689 +#: ../Doc/using/configure.rst:795 msgid "" "Value of :envvar:`CPPFLAGS` variable passed to the ``./configure`` script." msgstr "" "Valor de la variable :envvar:`CPPFLAGS` pasado al script ``./configure``." -#: ../Doc/using/configure.rst:695 +#: ../Doc/using/configure.rst:801 +#, fuzzy msgid "" -"(Objective) C/C++ preprocessor flags, e.g. ``-I`` if you have " -"headers in a nonstandard directory ````." +"(Objective) C/C++ preprocessor flags, e.g. :samp:`-I{include_dir}` if you " +"have headers in a nonstandard directory *include_dir*." msgstr "" "(Objetivo) Indicadores del preprocesador C/C++, p. ej. ``-I`` " "si tiene encabezados en un directorio no estándar ````." -#: ../Doc/using/configure.rst:698 ../Doc/using/configure.rst:893 +#: ../Doc/using/configure.rst:804 ../Doc/using/configure.rst:994 +#, fuzzy msgid "" "Both :envvar:`CPPFLAGS` and :envvar:`LDFLAGS` need to contain the shell's " -"value for setup.py to be able to build extension modules using the " -"directories specified in the environment variables." +"value to be able to build extension modules using the directories specified " +"in the environment variables." msgstr "" "Ambos :envvar:`CPPFLAGS` y :envvar:`LDFLAGS` necesitan contener el valor del " "shell para setup.py para poder compilar módulos de extensión usando los " "directorios especificados en las variables de entorno." -#: ../Doc/using/configure.rst:708 +#: ../Doc/using/configure.rst:814 msgid "" "Extra preprocessor flags added for building the interpreter object files." msgstr "" "Se agregaron indicadores de preprocesador adicionales para construir los " "archivos de objeto del intérprete." -#: ../Doc/using/configure.rst:710 +#: ../Doc/using/configure.rst:816 msgid "" "Default: ``$(BASECPPFLAGS) -I. -I$(srcdir)/Include $(CONFIGURE_CPPFLAGS) " "$(CPPFLAGS)``." @@ -1259,69 +1410,47 @@ msgstr "" "Por defecto: ``$(BASECPPFLAGS) -I. -I$(srcdir)/Include $(CONFIGURE_CPPFLAGS) " "$(CPPFLAGS)``." -#: ../Doc/using/configure.rst:715 +#: ../Doc/using/configure.rst:821 msgid "Compiler flags" msgstr "Banderas del compilador" -#: ../Doc/using/configure.rst:719 +#: ../Doc/using/configure.rst:825 msgid "C compiler command." msgstr "Comando del compilador C." -#: ../Doc/using/configure.rst:721 +#: ../Doc/using/configure.rst:827 msgid "Example: ``gcc -pthread``." msgstr "Ejemplo: ``gcc -pthread``." -#: ../Doc/using/configure.rst:725 -msgid "" -"C compiler command used to build the ``main()`` function of programs like " -"``python``." -msgstr "" -"Comando del compilador de C usado para construir la función ``main()`` de " -"programas como ``python``." - -#: ../Doc/using/configure.rst:728 -msgid "" -"Variable set by the :option:`--with-cxx-main` option of the configure script." -msgstr "" -"Variable establecida por la opción :option:`--with-cxx-main` del script de " -"configuración." - -#: ../Doc/using/configure.rst:731 -msgid "Default: ``$(CC)``." -msgstr "Por defecto: ``$(CC)``." - -#: ../Doc/using/configure.rst:735 +#: ../Doc/using/configure.rst:831 msgid "C++ compiler command." msgstr "Comando del compilador de C++." -#: ../Doc/using/configure.rst:737 -msgid "Used if the :option:`--with-cxx-main` option is used." -msgstr "Se usa si se usa la opción :option:`--with-cxx-main`." - -#: ../Doc/using/configure.rst:739 +#: ../Doc/using/configure.rst:833 msgid "Example: ``g++ -pthread``." msgstr "Ejemplo: ``g++ -pthread``." -#: ../Doc/using/configure.rst:743 +#: ../Doc/using/configure.rst:837 msgid "C compiler flags." msgstr "Banderas del compilador de C." -#: ../Doc/using/configure.rst:747 +#: ../Doc/using/configure.rst:841 +#, fuzzy msgid "" ":envvar:`CFLAGS_NODIST` is used for building the interpreter and stdlib C " -"extensions. Use it when a compiler flag should *not* be part of the " -"distutils :envvar:`CFLAGS` once Python is installed (:issue:`21121`)." +"extensions. Use it when a compiler flag should *not* be part of :envvar:" +"`CFLAGS` once Python is installed (:gh:`65320`)." msgstr "" ":envvar:`CFLAGS_NODIST` se usa para compilar el intérprete y las extensiones " "stdlib C. Úselo cuando una bandera del compilador *no* sea parte de " "distutils :envvar:`CFLAGS` una vez que Python esté instalado (:issue:" "`21121`)." -#: ../Doc/using/configure.rst:751 +#: ../Doc/using/configure.rst:845 msgid "In particular, :envvar:`CFLAGS` should not contain:" msgstr "En particular, :envvar:`CFLAGS` no debe contener:" -#: ../Doc/using/configure.rst:753 +#: ../Doc/using/configure.rst:847 msgid "" "the compiler flag ``-I`` (for setting the search path for include files). " "The ``-I`` flags are processed from left to right, and any flags in :envvar:" @@ -1332,7 +1461,7 @@ msgstr "" "derecha, y cualquier indicador en :envvar:`CFLAGS` tendrá prioridad sobre " "los indicadores ``-I`` proporcionados por el usuario y el paquete." -#: ../Doc/using/configure.rst:758 +#: ../Doc/using/configure.rst:852 msgid "" "hardening flags such as ``-Werror`` because distributions cannot control " "whether packages installed by users conform to such heightened standards." @@ -1341,17 +1470,23 @@ msgstr "" "pueden controlar si los paquetes instalados por los usuarios cumplen con " "estándares tan elevados." -#: ../Doc/using/configure.rst:766 +#: ../Doc/using/configure.rst:860 +msgid "" +"Options passed to the :mod:`compileall` command line when building PYC files " +"in ``make install``. Default: ``-j0``." +msgstr "" + +#: ../Doc/using/configure.rst:867 msgid "Extra C compiler flags." msgstr "Banderas adicionales del compilador de C." -#: ../Doc/using/configure.rst:770 +#: ../Doc/using/configure.rst:871 msgid "" "Value of :envvar:`CFLAGS` variable passed to the ``./configure`` script." msgstr "" "Valor de la variable :envvar:`CFLAGS` pasada al script ``./configure``." -#: ../Doc/using/configure.rst:777 +#: ../Doc/using/configure.rst:878 msgid "" "Value of :envvar:`CFLAGS_NODIST` variable passed to the ``./configure`` " "script." @@ -1359,37 +1494,37 @@ msgstr "" "Valor de la variable :envvar:`CFLAGS_NODIST` pasada al script ``./" "configure``." -#: ../Doc/using/configure.rst:784 +#: ../Doc/using/configure.rst:885 msgid "Base compiler flags." msgstr "Banderas base del compilador." -#: ../Doc/using/configure.rst:788 +#: ../Doc/using/configure.rst:889 msgid "Optimization flags." msgstr "Banderas de optimización." -#: ../Doc/using/configure.rst:792 +#: ../Doc/using/configure.rst:893 msgid "Strict or non-strict aliasing flags used to compile ``Python/dtoa.c``." msgstr "" "Banderas de alias estrictos o no estrictos que se utilizan para compilar " "``Python/dtoa.c``." -#: ../Doc/using/configure.rst:798 +#: ../Doc/using/configure.rst:899 msgid "Compiler flags used to build a shared library." msgstr "" "Banderas del compilador que se utilizan para compilar una biblioteca " "compartida." -#: ../Doc/using/configure.rst:800 +#: ../Doc/using/configure.rst:901 msgid "For example, ``-fPIC`` is used on Linux and on BSD." msgstr "Por ejemplo, ``-fPIC`` se usa en Linux y BSD." -#: ../Doc/using/configure.rst:804 +#: ../Doc/using/configure.rst:905 msgid "Extra C flags added for building the interpreter object files." msgstr "" "Se agregaron banderas C adicionales para compilar los archivos de objeto del " "intérprete." -#: ../Doc/using/configure.rst:806 +#: ../Doc/using/configure.rst:907 msgid "" "Default: ``$(CCSHARED)`` when :option:`--enable-shared` is used, or an empty " "string otherwise." @@ -1397,7 +1532,7 @@ msgstr "" "Por defecto: ``$(CCSHARED)`` cuando se usa :option:`--enable-shared`, o una " "cadena de caracteres vacía en caso contrario." -#: ../Doc/using/configure.rst:811 +#: ../Doc/using/configure.rst:912 msgid "" "Default: ``$(BASECFLAGS) $(OPT) $(CONFIGURE_CFLAGS) $(CFLAGS) " "$(EXTRA_CFLAGS)``." @@ -1405,7 +1540,7 @@ msgstr "" "Por defecto: ``$(BASECFLAGS) $(OPT) $(CONFIGURE_CFLAGS) $(CFLAGS) " "$(EXTRA_CFLAGS)``." -#: ../Doc/using/configure.rst:815 +#: ../Doc/using/configure.rst:916 msgid "" "Default: ``$(CONFIGURE_CFLAGS_NODIST) $(CFLAGS_NODIST) -I$(srcdir)/Include/" "internal``." @@ -1413,13 +1548,13 @@ msgstr "" "Por defecto: ``$(CONFIGURE_CFLAGS_NODIST) $(CFLAGS_NODIST) -I$(srcdir)/" "Include/internal``." -#: ../Doc/using/configure.rst:821 +#: ../Doc/using/configure.rst:922 msgid "C flags used for building the interpreter object files." msgstr "" "Banderas de C que se utilizan para compilar los archivos de objeto del " "intérprete." -#: ../Doc/using/configure.rst:823 +#: ../Doc/using/configure.rst:924 msgid "" "Default: ``$(PY_CFLAGS) $(PY_CFLAGS_NODIST) $(PY_CPPFLAGS) " "$(CFLAGSFORSHARED)``." @@ -1427,11 +1562,11 @@ msgstr "" "Por defecto: ``$(PY_CFLAGS) $(PY_CFLAGS_NODIST) $(PY_CPPFLAGS) " "$(CFLAGSFORSHARED)``." -#: ../Doc/using/configure.rst:829 +#: ../Doc/using/configure.rst:930 msgid "Default: ``$(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE``." msgstr "Por defecto: ``$(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE``." -#: ../Doc/using/configure.rst:835 +#: ../Doc/using/configure.rst:936 msgid "" "Compiler flags to build a standard library extension module as a built-in " "module, like the :mod:`posix` module." @@ -1439,40 +1574,41 @@ msgstr "" "Banderas del compilador para construir un módulo de extensión de biblioteca " "estándar como un módulo incorporado, como el módulo :mod:`posix`." -#: ../Doc/using/configure.rst:838 +#: ../Doc/using/configure.rst:939 msgid "Default: ``$(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN``." msgstr "Por defecto: ``$(PY_STDMODULE_CFLAGS) -DPy_BUILD_CORE_BUILTIN``." -#: ../Doc/using/configure.rst:844 +#: ../Doc/using/configure.rst:945 msgid "Purify command. Purify is a memory debugger program." msgstr "Comando Purify. Purify es un programa de depuración de memoria." -#: ../Doc/using/configure.rst:846 +#: ../Doc/using/configure.rst:947 msgid "Default: empty string (not used)." msgstr "Por defecto: cadena de caracteres vacía (no utilizado)." -#: ../Doc/using/configure.rst:850 +#: ../Doc/using/configure.rst:951 msgid "Linker flags" msgstr "Banderas de vinculación" -#: ../Doc/using/configure.rst:854 +#: ../Doc/using/configure.rst:955 msgid "" "Linker command used to build programs like ``python`` and ``_testembed``." msgstr "" "Comando de vinculación usado para compilar programas como ``python`` y " "``_testembed``." -#: ../Doc/using/configure.rst:856 -msgid "Default: ``$(PURIFY) $(MAINCC)``." +#: ../Doc/using/configure.rst:957 +#, fuzzy +msgid "Default: ``$(PURIFY) $(CC)``." msgstr "Por defecto: ``$(PURIFY) $(MAINCC)``." -#: ../Doc/using/configure.rst:860 +#: ../Doc/using/configure.rst:961 msgid "" "Value of :envvar:`LDFLAGS` variable passed to the ``./configure`` script." msgstr "" "Valor de la variable :envvar:`LDFLAGS` pasada al script ``./configure``." -#: ../Doc/using/configure.rst:862 +#: ../Doc/using/configure.rst:963 msgid "" "Avoid assigning :envvar:`CFLAGS`, :envvar:`LDFLAGS`, etc. so users can use " "them on the command line to append to these values without stomping the pre-" @@ -1482,22 +1618,23 @@ msgstr "" "pueden usarlos en la línea de comando para agregar estos valores sin pisar " "los valores preestablecidos." -#: ../Doc/using/configure.rst:870 +#: ../Doc/using/configure.rst:971 +#, fuzzy msgid "" ":envvar:`LDFLAGS_NODIST` is used in the same manner as :envvar:" -"`CFLAGS_NODIST`. Use it when a linker flag should *not* be part of the " -"distutils :envvar:`LDFLAGS` once Python is installed (:issue:`35257`)." +"`CFLAGS_NODIST`. Use it when a linker flag should *not* be part of :envvar:" +"`LDFLAGS` once Python is installed (:gh:`65320`)." msgstr "" ":envvar:`LDFLAGS_NODIST` se usa de la misma manera que :envvar:" "`CFLAGS_NODIST`. Usar cuando una bandera del enlazador *no* sea parte de " "distutils :envvar:`LDFLAGS` una vez que Python esté instalado (:issue:" "`35257`)." -#: ../Doc/using/configure.rst:874 +#: ../Doc/using/configure.rst:975 msgid "In particular, :envvar:`LDFLAGS` should not contain:" msgstr "En particular, :envvar:`LDFLAGS` no debe contener:" -#: ../Doc/using/configure.rst:876 +#: ../Doc/using/configure.rst:977 msgid "" "the compiler flag ``-L`` (for setting the search path for libraries). The ``-" "L`` flags are processed from left to right, and any flags in :envvar:" @@ -1508,7 +1645,7 @@ msgstr "" "cualquier indicador en :envvar:`LDFLAGS` tendrá prioridad sobre los " "indicadores ``-L`` proporcionados por el usuario y el paquete." -#: ../Doc/using/configure.rst:883 +#: ../Doc/using/configure.rst:984 msgid "" "Value of :envvar:`LDFLAGS_NODIST` variable passed to the ``./configure`` " "script." @@ -1516,15 +1653,16 @@ msgstr "" "Valor de la variable :envvar:`LDFLAGS_NODIST` pasado al script ``./" "configure``." -#: ../Doc/using/configure.rst:890 +#: ../Doc/using/configure.rst:991 +#, fuzzy msgid "" -"Linker flags, e.g. ``-L`` if you have libraries in a nonstandard " -"directory ````." +"Linker flags, e.g. :samp:`-L{lib_dir}` if you have libraries in a " +"nonstandard directory *lib_dir*." msgstr "" "Banderas de vinculación, p. ej. ``-L`` si tiene bibliotecas en un " "directorio no estándar ````." -#: ../Doc/using/configure.rst:899 +#: ../Doc/using/configure.rst:1000 msgid "" "Linker flags to pass libraries to the linker when linking the Python " "executable." @@ -1532,36 +1670,86 @@ msgstr "" "Banderas de vinculación para pasar bibliotecas al vinculador al enlazar el " "ejecutable de Python." -#: ../Doc/using/configure.rst:902 +#: ../Doc/using/configure.rst:1003 msgid "Example: ``-lrt``." msgstr "Ejemplo: ``-lrt``." -#: ../Doc/using/configure.rst:906 +#: ../Doc/using/configure.rst:1007 msgid "Command to build a shared library." msgstr "Comando para construir una biblioteca compartida." -#: ../Doc/using/configure.rst:908 +#: ../Doc/using/configure.rst:1009 msgid "Default: ``@LDSHARED@ $(PY_LDFLAGS)``." msgstr "Por defecto: ``@LDSHARED@ $(PY_LDFLAGS)``." -#: ../Doc/using/configure.rst:912 +#: ../Doc/using/configure.rst:1013 msgid "Command to build ``libpython`` shared library." msgstr "Comando para compilar la biblioteca compartida ``libpython``." -#: ../Doc/using/configure.rst:914 +#: ../Doc/using/configure.rst:1015 msgid "Default: ``@BLDSHARED@ $(PY_CORE_LDFLAGS)``." msgstr "Por defecto: ``@BLDSHARED@ $(PY_CORE_LDFLAGS)``." -#: ../Doc/using/configure.rst:918 +#: ../Doc/using/configure.rst:1019 msgid "Default: ``$(CONFIGURE_LDFLAGS) $(LDFLAGS)``." msgstr "Por defecto: ``$(CONFIGURE_LDFLAGS) $(LDFLAGS)``." -#: ../Doc/using/configure.rst:922 +#: ../Doc/using/configure.rst:1023 msgid "Default: ``$(CONFIGURE_LDFLAGS_NODIST) $(LDFLAGS_NODIST)``." msgstr "Por defecto: ``$(CONFIGURE_LDFLAGS_NODIST) $(LDFLAGS_NODIST)``." -#: ../Doc/using/configure.rst:928 +#: ../Doc/using/configure.rst:1029 msgid "Linker flags used for building the interpreter object files." msgstr "" "Banderas de vinculación que se utilizan para crear los archivos de objeto " "del intérprete." + +#~ msgid "" +#~ "Compile the Python ``main()`` function and link Python executable with C+" +#~ "+ compiler: ``$CXX``, or *COMPILER* if specified." +#~ msgstr "" +#~ "Compila la función de Python ``main()`` y vincula el ejecutable de Python " +#~ "con el compilador de C++: ``$CXX``, o *COMPILER* si se especifica." + +#~ msgid "Add :envvar:`PYTHONTHREADDEBUG` environment variable." +#~ msgstr "Agrega la variable de entorno :envvar:`PYTHONTHREADDEBUG`." + +#~ msgid "" +#~ "Build the :mod:`_ctypes` extension module using an installed ``ffi`` " +#~ "library, see the :mod:`ctypes` module (default is system-dependent)." +#~ msgstr "" +#~ "Compila el módulo de extensión :mod:`_ctypes` usando la biblioteca " +#~ "instalada ``ffi``, consultar el módulo :mod:`ctypes` (el valor " +#~ "predeterminado es dependiente del sistema)." + +#~ msgid "" +#~ ":file:`setup.py`: C extensions built using the :mod:`distutils` module." +#~ msgstr "" +#~ ":file:`setup.py`: extensiones C creadas con el módulo :mod:`distutils`." + +#~ msgid "" +#~ "The :file:`setup.py` script only builds C extensions as shared libraries " +#~ "using the :mod:`distutils` module." +#~ msgstr "" +#~ "El script :file:`setup.py` solo crea extensiones C como bibliotecas " +#~ "compartidas usando el módulo :mod:`distutils`." + +#~ msgid "" +#~ "C compiler command used to build the ``main()`` function of programs like " +#~ "``python``." +#~ msgstr "" +#~ "Comando del compilador de C usado para construir la función ``main()`` de " +#~ "programas como ``python``." + +#~ msgid "" +#~ "Variable set by the :option:`--with-cxx-main` option of the configure " +#~ "script." +#~ msgstr "" +#~ "Variable establecida por la opción :option:`--with-cxx-main` del script " +#~ "de configuración." + +#~ msgid "Default: ``$(CC)``." +#~ msgstr "Por defecto: ``$(CC)``." + +#~ msgid "Used if the :option:`--with-cxx-main` option is used." +#~ msgstr "Se usa si se usa la opción :option:`--with-cxx-main`." diff --git a/using/mac.po b/using/mac.po index 6aac59c175..3431c29a6b 100644 --- a/using/mac.po +++ b/using/mac.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-02 19:57+0200\n" "Last-Translator: Cristián Maureira-Fredes \n" "Language: es_CO\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/using/mac.rst:6 msgid "Using Python on a Mac" @@ -146,6 +146,7 @@ msgstr "" "Ayuda cuando el IDE se está ejecutando." #: ../Doc/using/mac.rst:62 +#, fuzzy msgid "" "If you want to run Python scripts from the Terminal window command line or " "from the Finder you first need an editor to create your script. macOS comes " @@ -154,8 +155,8 @@ msgid "" "`BBEdit` or :program:`TextWrangler` from Bare Bones Software (see http://www." "barebones.com/products/bbedit/index.html) are good choices, as is :program:" "`TextMate` (see https://macromates.com/). Other editors include :program:" -"`Gvim` (https://macvim-dev.github.io/macvim/) and :program:`Aquamacs` " -"(http://aquamacs.org/)." +"`Gvim` (https://macvim.org/macvim/) and :program:`Aquamacs` (http://aquamacs." +"org/)." msgstr "" "Si desea ejecutar scripts de Python desde la línea de comandos de la ventana " "de Terminal o desde el Finder, primero necesita un editor para crear su " @@ -269,36 +270,20 @@ msgid "Installing Additional Python Packages" msgstr "Instalación de paquetes adicionales de Python" #: ../Doc/using/mac.rst:128 -msgid "There are several methods to install additional Python packages:" -msgstr "Existen varios métodos para instalar paquetes Python adicionales:" - -#: ../Doc/using/mac.rst:130 -msgid "" -"Packages can be installed via the standard Python distutils mode (``python " -"setup.py install``)." -msgstr "" -"Los paquetes se pueden instalar a través del modo *distutils* estándar de " -"Python (``python setup.py install``)." - -#: ../Doc/using/mac.rst:133 -msgid "" -"Many packages can also be installed via the :program:`setuptools` extension " -"or :program:`pip` wrapper, see https://pip.pypa.io/." +msgid "This section has moved to the `Python Packaging User Guide`_." msgstr "" -"Muchos paquetes también se pueden instalar a través de la extensión :program:" -"`setuptools` o el *wrapper* :program:`pip`, consulte https://pip.pypa.io/." -#: ../Doc/using/mac.rst:138 +#: ../Doc/using/mac.rst:134 msgid "GUI Programming on the Mac" msgstr "Programación de GUI en Mac" -#: ../Doc/using/mac.rst:140 +#: ../Doc/using/mac.rst:136 msgid "" "There are several options for building GUI applications on the Mac with " "Python." msgstr "Hay varias opciones para crear aplicaciones GUI en Mac con Python." -#: ../Doc/using/mac.rst:142 +#: ../Doc/using/mac.rst:138 msgid "" "*PyObjC* is a Python binding to Apple's Objective-C/Cocoa framework, which " "is the foundation of most modern Mac development. Information on PyObjC is " @@ -308,11 +293,12 @@ msgstr "" "que es la base del desarrollo más moderno de Mac. La información sobre " "PyObjC está disponible en https://pypi.org/project/pyobjc/." -#: ../Doc/using/mac.rst:146 +#: ../Doc/using/mac.rst:142 +#, fuzzy msgid "" "The standard Python GUI toolkit is :mod:`tkinter`, based on the cross-" "platform Tk toolkit (https://www.tcl.tk). An Aqua-native version of Tk is " -"bundled with OS X by Apple, and the latest version can be downloaded and " +"bundled with macOS by Apple, and the latest version can be downloaded and " "installed from https://www.activestate.com; it can also be built from source." msgstr "" "El kit de herramientas estándar de Python GUI es :mod:`tkinter`, basado en " @@ -321,7 +307,7 @@ msgstr "" "descargada e instalada desde https://www.activestate.com; También se puede " "incorporar desde la fuente." -#: ../Doc/using/mac.rst:151 +#: ../Doc/using/mac.rst:147 msgid "" "*wxPython* is another popular cross-platform GUI toolkit that runs natively " "on macOS. Packages and documentation are available from https://www.wxpython." @@ -331,7 +317,7 @@ msgstr "" "usuario multiplataforma que se ejecuta de forma nativa en macOS. Los " "paquetes y la documentación están disponibles en https://www.wxpython.org." -#: ../Doc/using/mac.rst:154 +#: ../Doc/using/mac.rst:150 msgid "" "*PyQt* is another popular cross-platform GUI toolkit that runs natively on " "macOS. More information can be found at https://riverbankcomputing.com/" @@ -341,11 +327,11 @@ msgstr "" "multiplataforma que se ejecuta de forma nativa en macOS. Puede encontrar más " "información en https://riverbankcomputing.com/software/pyqt/intro." -#: ../Doc/using/mac.rst:160 +#: ../Doc/using/mac.rst:156 msgid "Distributing Python Applications on the Mac" msgstr "Distribuyendo aplicaciones de Python en la Mac" -#: ../Doc/using/mac.rst:162 +#: ../Doc/using/mac.rst:158 msgid "" "The standard tool for deploying standalone Python applications on the Mac " "is :program:`py2app`. More information on installing and using py2app can be " @@ -355,11 +341,11 @@ msgstr "" "Python en Mac es :program:`py2app`. Puede encontrar más información sobre la " "instalación y el uso de py2app en http://pypi.org/project/py2app." -#: ../Doc/using/mac.rst:168 +#: ../Doc/using/mac.rst:164 msgid "Other Resources" msgstr "Otros recursos" -#: ../Doc/using/mac.rst:170 +#: ../Doc/using/mac.rst:166 msgid "" "The MacPython mailing list is an excellent support resource for Python users " "and developers on the Mac:" @@ -367,14 +353,32 @@ msgstr "" "La lista de correo de MacPython es un excelente recurso de soporte para " "usuarios y desarrolladores de Python en Mac:" -#: ../Doc/using/mac.rst:173 +#: ../Doc/using/mac.rst:169 msgid "https://www.python.org/community/sigs/current/pythonmac-sig/" msgstr "https://www.python.org/community/sigs/current/pythonmac-sig/" -#: ../Doc/using/mac.rst:175 +#: ../Doc/using/mac.rst:171 msgid "Another useful resource is the MacPython wiki:" msgstr "Otro recurso útil es el wiki de MacPython:" -#: ../Doc/using/mac.rst:177 +#: ../Doc/using/mac.rst:173 msgid "https://wiki.python.org/moin/MacPython" msgstr "https://wiki.python.org/moin/MacPython" + +#~ msgid "There are several methods to install additional Python packages:" +#~ msgstr "Existen varios métodos para instalar paquetes Python adicionales:" + +#~ msgid "" +#~ "Packages can be installed via the standard Python distutils mode " +#~ "(``python setup.py install``)." +#~ msgstr "" +#~ "Los paquetes se pueden instalar a través del modo *distutils* estándar de " +#~ "Python (``python setup.py install``)." + +#~ msgid "" +#~ "Many packages can also be installed via the :program:`setuptools` " +#~ "extension or :program:`pip` wrapper, see https://pip.pypa.io/." +#~ msgstr "" +#~ "Muchos paquetes también se pueden instalar a través de la extensión :" +#~ "program:`setuptools` o el *wrapper* :program:`pip`, consulte https://pip." +#~ "pypa.io/." diff --git a/using/unix.po b/using/unix.po index 4e7dd9f72e..1b1c2a07f7 100644 --- a/using/unix.po +++ b/using/unix.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-10-05 20:17+0200\n" "Last-Translator: \n" "Language: es_ES\n" @@ -19,7 +19,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/using/unix.rst:7 msgid "Using Python on Unix platforms" @@ -74,18 +74,17 @@ msgstr "para los usuarios de OpenSuse" #: ../Doc/using/unix.rst:33 msgid "" -"https://docs-old.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/" -"RPM_Guide/ch-creating-rpms.html" +"https://docs.fedoraproject.org/en-US/package-maintainers/" +"Packaging_Tutorial_GNU_Hello/" msgstr "" -"https://docs-old.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/" -"RPM_Guide/ch-creating-rpms.html" #: ../Doc/using/unix.rst:34 msgid "for Fedora users" msgstr "para los usuarios de Fedora" #: ../Doc/using/unix.rst:35 -msgid "http://www.slackbook.org/html/package-management-making-packages.html" +#, fuzzy +msgid "https://slackbook.org/html/package-management-making-packages.html" msgstr "http://www.slackbook.org/html/package-management-making-packages.html" #: ../Doc/using/unix.rst:36 @@ -110,25 +109,11 @@ msgstr "" "Por ejemplo, los usuarios de i386 obtienen la versión 2.5.1 de Python " "usando::" -#: ../Doc/using/unix.rst:58 -msgid "On OpenSolaris" -msgstr "En OpenSolaris" - #: ../Doc/using/unix.rst:60 -msgid "" -"You can get Python from `OpenCSW `_. Various " -"versions of Python are available and can be installed with e.g. ``pkgutil -i " -"python27``." -msgstr "" -"Puede obtener Python de `OpenCSW `_. Varias " -"versiones de Python están disponibles y pueden ser instaladas, por ejemplo: " -"``pkgutil -i python27``." - -#: ../Doc/using/unix.rst:67 msgid "Building Python" msgstr "Construyendo Python" -#: ../Doc/using/unix.rst:69 +#: ../Doc/using/unix.rst:62 #, fuzzy msgid "" "If you want to compile CPython yourself, first thing you should do is get " @@ -143,11 +128,11 @@ msgstr "" "`clon `_. Si " "desea contribuir con parches, necesitará un clon." -#: ../Doc/using/unix.rst:75 +#: ../Doc/using/unix.rst:68 msgid "The build process consists of the usual commands::" msgstr "El proceso de construcción consta de los comandos habituales::" -#: ../Doc/using/unix.rst:81 +#: ../Doc/using/unix.rst:74 msgid "" ":ref:`Configuration options ` and caveats for specific " "Unix platforms are extensively documented in the :source:`README.rst` file " @@ -157,7 +142,7 @@ msgstr "" "plataformas Unix específicas están ampliamente documentadas en el archivo :" "source:`README.rst` en la raíz del árbol de fuentes de Python." -#: ../Doc/using/unix.rst:87 +#: ../Doc/using/unix.rst:80 msgid "" "``make install`` can overwrite or masquerade the :file:`python3` binary. " "``make altinstall`` is therefore recommended instead of ``make install`` " @@ -168,46 +153,47 @@ msgstr "" "install`` debido a que sólo instala :file:`{exec_prefix}/bin/python{version}" "`." -#: ../Doc/using/unix.rst:93 +#: ../Doc/using/unix.rst:86 msgid "Python-related paths and files" msgstr "Rutas y archivos relacionados con Python" -#: ../Doc/using/unix.rst:95 +#: ../Doc/using/unix.rst:88 +#, fuzzy msgid "" "These are subject to difference depending on local installation " -"conventions; :envvar:`prefix` (``${prefix}``) and :envvar:`exec_prefix` " -"(``${exec_prefix}``) are installation-dependent and should be interpreted as " -"for GNU software; they may be the same." +"conventions; :option:`prefix <--prefix>` and :option:`exec_prefix <--exec-" +"prefix>` are installation-dependent and should be interpreted as for GNU " +"software; they may be the same." msgstr "" "Estos están sujetos a diferencias según las convenciones de instalación " "locales; :envvar:`prefix` (``${prefix}``) y :envvar:`exec_prefix` " "(``${exec_prefix}``) son dependientes de la instalación y deben " "interpretarse como software GNU; deben ser iguales." -#: ../Doc/using/unix.rst:100 +#: ../Doc/using/unix.rst:93 msgid "" "For example, on most Linux systems, the default for both is :file:`/usr`." msgstr "" "Por ejemplo, en la mayoría de los sistemas Linux, el valor predeterminado " "para ambos es :file:`/usr`." -#: ../Doc/using/unix.rst:103 +#: ../Doc/using/unix.rst:96 msgid "File/directory" msgstr "Archivo/directorio" -#: ../Doc/using/unix.rst:103 +#: ../Doc/using/unix.rst:96 msgid "Meaning" msgstr "Significado" -#: ../Doc/using/unix.rst:105 +#: ../Doc/using/unix.rst:98 msgid ":file:`{exec_prefix}/bin/python3`" msgstr ":file:`{exec_prefix}/bin/python3`" -#: ../Doc/using/unix.rst:105 +#: ../Doc/using/unix.rst:98 msgid "Recommended location of the interpreter." msgstr "Ubicación recomendada del intérprete." -#: ../Doc/using/unix.rst:107 +#: ../Doc/using/unix.rst:100 msgid "" ":file:`{prefix}/lib/python{version}`, :file:`{exec_prefix}/lib/" "python{version}`" @@ -215,14 +201,14 @@ msgstr "" ":file:`{prefix}/lib/python{version}`, :file:`{exec_prefix}/lib/" "python{version}`" -#: ../Doc/using/unix.rst:107 +#: ../Doc/using/unix.rst:100 msgid "" "Recommended locations of the directories containing the standard modules." msgstr "" "Ubicaciones recomendadas de los directorios que contienen los módulos " "estándar." -#: ../Doc/using/unix.rst:110 +#: ../Doc/using/unix.rst:103 msgid "" ":file:`{prefix}/include/python{version}`, :file:`{exec_prefix}/include/" "python{version}`" @@ -230,7 +216,7 @@ msgstr "" ":file:`{prefix}/include/python{version}`, :file:`{exec_prefix}/include/" "python{version}`" -#: ../Doc/using/unix.rst:110 +#: ../Doc/using/unix.rst:103 msgid "" "Recommended locations of the directories containing the include files needed " "for developing Python extensions and embedding the interpreter." @@ -239,11 +225,11 @@ msgstr "" "inclusión necesarios para desarrollar extensiones de Python e incrustar el " "intérprete." -#: ../Doc/using/unix.rst:118 +#: ../Doc/using/unix.rst:111 msgid "Miscellaneous" msgstr "Miscelánea" -#: ../Doc/using/unix.rst:120 +#: ../Doc/using/unix.rst:113 msgid "" "To easily use Python scripts on Unix, you need to make them executable, e.g. " "with" @@ -251,7 +237,7 @@ msgstr "" "Para usar fácilmente los scripts de Python en Unix, debe hacerlos " "ejecutables, p. ej. con" -#: ../Doc/using/unix.rst:127 +#: ../Doc/using/unix.rst:120 msgid "" "and put an appropriate Shebang line at the top of the script. A good choice " "is usually ::" @@ -259,7 +245,7 @@ msgstr "" "y coloque una línea *Shebang* adecuada en la parte superior del script. Una " "buena opción es usualmente ::" -#: ../Doc/using/unix.rst:132 +#: ../Doc/using/unix.rst:125 msgid "" "which searches for the Python interpreter in the whole :envvar:`PATH`. " "However, some Unices may not have the :program:`env` command, so you may " @@ -270,7 +256,7 @@ msgstr "" "lo que es posible que deba codificar ``/usr/bin/python3`` como la ruta " "intérprete." -#: ../Doc/using/unix.rst:136 +#: ../Doc/using/unix.rst:129 msgid "" "To use shell commands in your Python scripts, look at the :mod:`subprocess` " "module." @@ -278,11 +264,11 @@ msgstr "" "Para usar comandos de shell en sus scripts de Python, mire el módulo :mod:" "`subprocess`." -#: ../Doc/using/unix.rst:141 +#: ../Doc/using/unix.rst:134 msgid "Custom OpenSSL" msgstr "OpenSSL personalizado" -#: ../Doc/using/unix.rst:143 +#: ../Doc/using/unix.rst:136 msgid "" "To use your vendor's OpenSSL configuration and system trust store, locate " "the directory with ``openssl.cnf`` file or symlink in ``/etc``. On most " @@ -296,7 +282,7 @@ msgstr "" "archivo está en ``/etc/ssl`` o ``/etc/pki/tls``. El directorio también debe " "contener un archivo ``cert.pem`` y / o un directorio ``certs``." -#: ../Doc/using/unix.rst:154 +#: ../Doc/using/unix.rst:147 msgid "" "Download, build, and install OpenSSL. Make sure you use ``install_sw`` and " "not ``install``. The ``install_sw`` target does not override ``openssl.cnf``." @@ -304,7 +290,7 @@ msgstr "" "Descargue, compile e instale OpenSSL. Asegúrese de utilizar ``install_sw`` y " "no ``install``. El destino ``install_sw`` no anula ``openssl.cnf``." -#: ../Doc/using/unix.rst:172 +#: ../Doc/using/unix.rst:165 #, fuzzy msgid "" "Build Python with custom OpenSSL (see the configure ``--with-openssl`` and " @@ -313,7 +299,7 @@ msgstr "" "Compile Python con OpenSSL personalizado (consulte las opciones configure `--" "with-openssl` y` --with-openssl-rpath`)" -#: ../Doc/using/unix.rst:187 +#: ../Doc/using/unix.rst:180 msgid "" "Patch releases of OpenSSL have a backwards compatible ABI. You don't need to " "recompile Python to update OpenSSL. It's sufficient to replace the custom " @@ -323,3 +309,22 @@ msgstr "" "anteriores. No es necesario volver a compilar Python para actualizar " "OpenSSL. Es suficiente reemplazar la instalación personalizada de OpenSSL " "con una versión más nueva." + +#~ msgid "" +#~ "https://docs-old.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/" +#~ "html/RPM_Guide/ch-creating-rpms.html" +#~ msgstr "" +#~ "https://docs-old.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/" +#~ "html/RPM_Guide/ch-creating-rpms.html" + +#~ msgid "On OpenSolaris" +#~ msgstr "En OpenSolaris" + +#~ msgid "" +#~ "You can get Python from `OpenCSW `_. Various " +#~ "versions of Python are available and can be installed with e.g. ``pkgutil " +#~ "-i python27``." +#~ msgstr "" +#~ "Puede obtener Python de `OpenCSW `_. Varias " +#~ "versiones de Python están disponibles y pueden ser instaladas, por " +#~ "ejemplo: ``pkgutil -i python27``." diff --git a/using/windows.po b/using/windows.po index da12b05061..b79d92d579 100644 --- a/using/windows.po +++ b/using/windows.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2023-02-14 11:46-0300\n" "Last-Translator: Carlos A. Crespo \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.0.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/using/windows.rst:7 msgid "Using Python on Windows" @@ -310,20 +309,73 @@ msgstr "" #: ../Doc/using/windows.rst:129 msgid "" -"To completely hide the installer UI and install Python silently, pass the ``/" -"quiet`` option. To skip past the user interaction but still display progress " -"and errors, pass the ``/passive`` option. The ``/uninstall`` option may be " -"passed to immediately begin removing Python - no confirmation prompt will be " -"displayed." +"The following options (found by executing the installer with ``/?``) can be " +"passed into the installer:" msgstr "" -"Para ocultar completamente la interfaz de usuario del instalador e instalar " -"Python de forma silenciosa, pase la opción ``/quiet``. Para omitir la " -"interacción del usuario pero seguir mostrando el progreso y los errores, " -"pase la opción ``/passive``. Se puede pasar la opción ``/uninstall`` para " -"comenzar de inmediato a eliminar Python; no se mostrará ningún mensaje de " -"confirmación." + +#: ../Doc/using/windows.rst:133 ../Doc/using/windows.rst:153 +#: ../Doc/using/windows.rst:1082 +msgid "Name" +msgstr "Nombre" + +#: ../Doc/using/windows.rst:133 ../Doc/using/windows.rst:153 +#: ../Doc/using/windows.rst:1082 +msgid "Description" +msgstr "Descripción" #: ../Doc/using/windows.rst:135 +msgid "/passive" +msgstr "" + +#: ../Doc/using/windows.rst:135 +msgid "to display progress without requiring user interaction" +msgstr "" + +#: ../Doc/using/windows.rst:137 +msgid "/quiet" +msgstr "" + +#: ../Doc/using/windows.rst:137 +#, fuzzy +msgid "to install/uninstall without displaying any UI" +msgstr "Instalación sin descargas" + +#: ../Doc/using/windows.rst:139 +#, fuzzy +msgid "/simple" +msgstr "SimpleInstall" + +#: ../Doc/using/windows.rst:139 +#, fuzzy +msgid "to prevent user customization" +msgstr "Personalización" + +#: ../Doc/using/windows.rst:141 +#, fuzzy +msgid "/uninstall" +msgstr "SimpleInstall" + +#: ../Doc/using/windows.rst:141 +msgid "to remove Python (without confirmation)" +msgstr "" + +#: ../Doc/using/windows.rst:143 +msgid "/layout [directory]" +msgstr "" + +#: ../Doc/using/windows.rst:143 +msgid "to pre-download all components" +msgstr "" + +#: ../Doc/using/windows.rst:145 +msgid "/log [filename]" +msgstr "" + +#: ../Doc/using/windows.rst:145 +msgid "to specify log files location" +msgstr "" + +#: ../Doc/using/windows.rst:148 msgid "" "All other options are passed as ``name=value``, where the value is usually " "``0`` to disable a feature, ``1`` to enable a feature, or a path. The full " @@ -334,56 +386,48 @@ msgstr "" "para habilitar una funcionalidad, o una ruta. La lista completa de opciones " "disponibles se muestra a continuación." -#: ../Doc/using/windows.rst:140 ../Doc/using/windows.rst:1022 -msgid "Name" -msgstr "Nombre" - -#: ../Doc/using/windows.rst:140 ../Doc/using/windows.rst:1022 -msgid "Description" -msgstr "Descripción" - -#: ../Doc/using/windows.rst:140 +#: ../Doc/using/windows.rst:153 msgid "Default" msgstr "Predeterminado" -#: ../Doc/using/windows.rst:142 +#: ../Doc/using/windows.rst:155 msgid "InstallAllUsers" msgstr "InstallAllUsers" -#: ../Doc/using/windows.rst:142 +#: ../Doc/using/windows.rst:155 msgid "Perform a system-wide installation." msgstr "Realizar una instalación en todo el sistema." -#: ../Doc/using/windows.rst:142 ../Doc/using/windows.rst:168 -#: ../Doc/using/windows.rst:171 ../Doc/using/windows.rst:175 -#: ../Doc/using/windows.rst:184 ../Doc/using/windows.rst:206 -#: ../Doc/using/windows.rst:214 ../Doc/using/windows.rst:217 +#: ../Doc/using/windows.rst:155 ../Doc/using/windows.rst:181 +#: ../Doc/using/windows.rst:184 ../Doc/using/windows.rst:188 +#: ../Doc/using/windows.rst:197 ../Doc/using/windows.rst:219 +#: ../Doc/using/windows.rst:227 ../Doc/using/windows.rst:230 msgid "0" msgstr "0" -#: ../Doc/using/windows.rst:144 +#: ../Doc/using/windows.rst:157 msgid "TargetDir" msgstr "TargetDir" -#: ../Doc/using/windows.rst:144 +#: ../Doc/using/windows.rst:157 msgid "The installation directory" msgstr "El directorio de instalación" -#: ../Doc/using/windows.rst:144 +#: ../Doc/using/windows.rst:157 msgid "Selected based on InstallAllUsers" msgstr "Seleccionado de acuerdo a InstallAllUsers" -#: ../Doc/using/windows.rst:147 +#: ../Doc/using/windows.rst:160 msgid "DefaultAllUsersTargetDir" msgstr "DefaultAllUsersTargetDir" -#: ../Doc/using/windows.rst:147 +#: ../Doc/using/windows.rst:160 msgid "The default installation directory for all-user installs" msgstr "" "El directorio predeterminado de instalación cuando se instala para todos los " "usuarios" -#: ../Doc/using/windows.rst:147 +#: ../Doc/using/windows.rst:160 msgid "" ":file:`%ProgramFiles%\\\\\\ Python X.Y` or :file:`\\ %ProgramFiles(x86)%\\\\" "\\ Python X.Y`" @@ -391,17 +435,17 @@ msgstr "" ":file:`%ProgramFiles%\\\\\\ Python X.Y` o :file:`\\ %ProgramFiles(x86)%\\\\" "\\ Python X.Y`" -#: ../Doc/using/windows.rst:152 +#: ../Doc/using/windows.rst:165 msgid "DefaultJustForMeTargetDir" msgstr "DefaultJustForMeTargetDir" -#: ../Doc/using/windows.rst:152 +#: ../Doc/using/windows.rst:165 msgid "The default install directory for just-for-me installs" msgstr "" "El directorio predeterminado de instalación para instalaciones del usuario " "actual solamente" -#: ../Doc/using/windows.rst:152 +#: ../Doc/using/windows.rst:165 #, python-format msgid "" ":file:`%LocalAppData%\\\\\\ Programs\\\\Python\\\\\\ PythonXY` or :file:" @@ -412,50 +456,50 @@ msgstr "" "`%LocalAppData%\\\\\\ Programs\\\\Python\\\\\\ PythonXY-32` or :file:" "`%LocalAppData%\\\\\\ Programs\\\\Python\\\\\\ PythonXY-64`" -#: ../Doc/using/windows.rst:162 +#: ../Doc/using/windows.rst:175 msgid "DefaultCustomTargetDir" msgstr "DefaultCustomTargetDir" -#: ../Doc/using/windows.rst:162 +#: ../Doc/using/windows.rst:175 msgid "The default custom install directory displayed in the UI" msgstr "" "El valor predeterminado de directorio de instalación personalizado que se " "muestra en la interfaz de usuario" -#: ../Doc/using/windows.rst:162 ../Doc/using/windows.rst:219 +#: ../Doc/using/windows.rst:175 ../Doc/using/windows.rst:232 msgid "(empty)" msgstr "(vacío)" -#: ../Doc/using/windows.rst:165 +#: ../Doc/using/windows.rst:178 msgid "AssociateFiles" msgstr "AssociateFiles" -#: ../Doc/using/windows.rst:165 +#: ../Doc/using/windows.rst:178 msgid "Create file associations if the launcher is also installed." msgstr "Crear asociaciones de archivos si el lanzador también es instalado." -#: ../Doc/using/windows.rst:165 ../Doc/using/windows.rst:179 -#: ../Doc/using/windows.rst:182 ../Doc/using/windows.rst:186 -#: ../Doc/using/windows.rst:190 ../Doc/using/windows.rst:194 -#: ../Doc/using/windows.rst:196 ../Doc/using/windows.rst:200 -#: ../Doc/using/windows.rst:204 ../Doc/using/windows.rst:208 -#: ../Doc/using/windows.rst:210 ../Doc/using/windows.rst:212 +#: ../Doc/using/windows.rst:178 ../Doc/using/windows.rst:192 +#: ../Doc/using/windows.rst:195 ../Doc/using/windows.rst:199 +#: ../Doc/using/windows.rst:203 ../Doc/using/windows.rst:207 +#: ../Doc/using/windows.rst:209 ../Doc/using/windows.rst:213 +#: ../Doc/using/windows.rst:217 ../Doc/using/windows.rst:221 +#: ../Doc/using/windows.rst:223 ../Doc/using/windows.rst:225 msgid "1" msgstr "1" -#: ../Doc/using/windows.rst:168 +#: ../Doc/using/windows.rst:181 msgid "CompileAll" msgstr "CompileAll" -#: ../Doc/using/windows.rst:168 +#: ../Doc/using/windows.rst:181 msgid "Compile all ``.py`` files to ``.pyc``." msgstr "Compilar todos los archivos ``.py`` a ``.pyc``." -#: ../Doc/using/windows.rst:171 +#: ../Doc/using/windows.rst:184 msgid "PrependPath" msgstr "PrependPath" -#: ../Doc/using/windows.rst:171 +#: ../Doc/using/windows.rst:184 msgid "" "Prepend install and Scripts directories to :envvar:`PATH` and add ``.PY`` " "to :envvar:`PATHEXT`" @@ -463,11 +507,11 @@ msgstr "" "Anteponga los directorios de instalación y scripts a :envvar:`PATH` y " "agregue ``.PY`` a :envvar:`PATHEXT`" -#: ../Doc/using/windows.rst:175 +#: ../Doc/using/windows.rst:188 msgid "AppendPath" msgstr "AppendPath" -#: ../Doc/using/windows.rst:175 +#: ../Doc/using/windows.rst:188 msgid "" "Append install and Scripts directories to :envvar:`PATH` and add ``.PY`` " "to :envvar:`PATHEXT`" @@ -475,38 +519,38 @@ msgstr "" "Agregue directorios de instalación y scripts a :envvar:`PATH` y agregue ``." "PY`` a :envvar:`PATHEXT`" -#: ../Doc/using/windows.rst:179 +#: ../Doc/using/windows.rst:192 msgid "Shortcuts" msgstr "Shortcuts" -#: ../Doc/using/windows.rst:179 +#: ../Doc/using/windows.rst:192 msgid "" "Create shortcuts for the interpreter, documentation and IDLE if installed." msgstr "" "Crear accesos directos para el intérprete, documentación e IDLE si está " "instalado." -#: ../Doc/using/windows.rst:182 +#: ../Doc/using/windows.rst:195 msgid "Include_doc" msgstr "Include_doc" -#: ../Doc/using/windows.rst:182 +#: ../Doc/using/windows.rst:195 msgid "Install Python manual" msgstr "Instalar el manual de Python" -#: ../Doc/using/windows.rst:184 +#: ../Doc/using/windows.rst:197 msgid "Include_debug" msgstr "Include_debug" -#: ../Doc/using/windows.rst:184 +#: ../Doc/using/windows.rst:197 msgid "Install debug binaries" msgstr "Instalar los binarios de depuración" -#: ../Doc/using/windows.rst:186 +#: ../Doc/using/windows.rst:199 msgid "Include_dev" msgstr "Include_dev" -#: ../Doc/using/windows.rst:186 +#: ../Doc/using/windows.rst:199 msgid "" "Install developer headers and libraries. Omitting this may lead to an " "unusable installation." @@ -514,11 +558,11 @@ msgstr "" "Instale encabezados y bibliotecas de desarrollador. Omitir esto puede " "conducir a una instalación inutilizable." -#: ../Doc/using/windows.rst:190 +#: ../Doc/using/windows.rst:203 msgid "Include_exe" msgstr "Include_exe" -#: ../Doc/using/windows.rst:190 +#: ../Doc/using/windows.rst:203 msgid "" "Install :file:`python.exe` and related files. Omitting this may lead to an " "unusable installation." @@ -526,19 +570,19 @@ msgstr "" "Instale :file:`python.exe` y archivos relacionados. Omitir esto puede " "conducir a una instalación inutilizable." -#: ../Doc/using/windows.rst:194 +#: ../Doc/using/windows.rst:207 msgid "Include_launcher" msgstr "Include_launcher" -#: ../Doc/using/windows.rst:194 +#: ../Doc/using/windows.rst:207 msgid "Install :ref:`launcher`." msgstr "Instalar :ref:`launcher`." -#: ../Doc/using/windows.rst:196 +#: ../Doc/using/windows.rst:209 msgid "InstallLauncherAllUsers" msgstr "InstallLauncherAllUsers" -#: ../Doc/using/windows.rst:196 +#: ../Doc/using/windows.rst:209 msgid "" "Installs the launcher for all users. Also requires ``Include_launcher`` to " "be set to 1" @@ -546,11 +590,11 @@ msgstr "" "Instala el lanzador para todos los usuarios. También requiere que " "``Include_launcher`` se establezca en 1" -#: ../Doc/using/windows.rst:200 +#: ../Doc/using/windows.rst:213 msgid "Include_lib" msgstr "Include_lib" -#: ../Doc/using/windows.rst:200 +#: ../Doc/using/windows.rst:213 msgid "" "Install standard library and extension modules. Omitting this may lead to an " "unusable installation." @@ -558,74 +602,74 @@ msgstr "" "Instale la biblioteca estándar y los módulos de extensión. Omitir esto puede " "conducir a una instalación inutilizable." -#: ../Doc/using/windows.rst:204 +#: ../Doc/using/windows.rst:217 msgid "Include_pip" msgstr "Include_pip" -#: ../Doc/using/windows.rst:204 +#: ../Doc/using/windows.rst:217 msgid "Install bundled pip and setuptools" msgstr "Instalar los paquetes pip y setuptools" -#: ../Doc/using/windows.rst:206 +#: ../Doc/using/windows.rst:219 msgid "Include_symbols" msgstr "Include_symbols" -#: ../Doc/using/windows.rst:206 +#: ../Doc/using/windows.rst:219 msgid "Install debugging symbols (``*.pdb``)" msgstr "Instalar los símbolos de depuración (``*.pdb``)" -#: ../Doc/using/windows.rst:208 +#: ../Doc/using/windows.rst:221 msgid "Include_tcltk" msgstr "Include_tcltk" -#: ../Doc/using/windows.rst:208 +#: ../Doc/using/windows.rst:221 msgid "Install Tcl/Tk support and IDLE" msgstr "Instalar IDLE y soporte para Tcl/Tk" -#: ../Doc/using/windows.rst:210 +#: ../Doc/using/windows.rst:223 msgid "Include_test" msgstr "Include_test" -#: ../Doc/using/windows.rst:210 +#: ../Doc/using/windows.rst:223 msgid "Install standard library test suite" msgstr "Instalar el conjunto de pruebas de la biblioteca estándar" -#: ../Doc/using/windows.rst:212 +#: ../Doc/using/windows.rst:225 msgid "Include_tools" msgstr "Include_tools" -#: ../Doc/using/windows.rst:212 +#: ../Doc/using/windows.rst:225 msgid "Install utility scripts" msgstr "Instalar scripts de utilidades" -#: ../Doc/using/windows.rst:214 +#: ../Doc/using/windows.rst:227 msgid "LauncherOnly" msgstr "LauncherOnly" -#: ../Doc/using/windows.rst:214 +#: ../Doc/using/windows.rst:227 msgid "Only installs the launcher. This will override most other options." msgstr "" "Instalar solo el lanzador. Esto anulará la mayoría de las otras opciones." -#: ../Doc/using/windows.rst:217 +#: ../Doc/using/windows.rst:230 msgid "SimpleInstall" msgstr "SimpleInstall" -#: ../Doc/using/windows.rst:217 +#: ../Doc/using/windows.rst:230 msgid "Disable most install UI" msgstr "Deshabilitar muchas de las partes de la interfaz de usuario" -#: ../Doc/using/windows.rst:219 +#: ../Doc/using/windows.rst:232 msgid "SimpleInstallDescription" msgstr "SimpleInstallDescription" -#: ../Doc/using/windows.rst:219 +#: ../Doc/using/windows.rst:232 msgid "A custom message to display when the simplified install UI is used." msgstr "" "Un mensaje personalizado para mostrar cuando se use la versión simplificada " "de la interfaz de usuario de instalación." -#: ../Doc/using/windows.rst:223 +#: ../Doc/using/windows.rst:236 msgid "" "For example, to silently install a default, system-wide Python installation, " "you could use the following command (from an elevated command prompt)::" @@ -634,7 +678,7 @@ msgstr "" "predeterminada de Python para todo el sistema, se puede usar el siguiente " "comando (desde un símbolo del sistema con privilegios elevados)::" -#: ../Doc/using/windows.rst:228 +#: ../Doc/using/windows.rst:241 msgid "" "To allow users to easily install a personal copy of Python without the test " "suite, you could provide a shortcut with the following command. This will " @@ -645,7 +689,7 @@ msgstr "" "con el siguiente comando. Esto mostrará una página inicial simplificada y no " "permitirá la personalización:" -#: ../Doc/using/windows.rst:235 +#: ../Doc/using/windows.rst:248 msgid "" "(Note that omitting the launcher also omits file associations, and is only " "recommended for per-user installs when there is also a system-wide " @@ -656,7 +700,7 @@ msgstr "" "por usuario cuando ya hay una instalación en todo el sistema que incluye el " "lanzador.)" -#: ../Doc/using/windows.rst:239 +#: ../Doc/using/windows.rst:252 msgid "" "The options listed above can also be provided in a file named ``unattend." "xml`` alongside the executable. This file specifies a list of options and " @@ -671,11 +715,11 @@ msgstr "" "proporcionados como elementos de texto siempre se dejan como cadenas. Este " "archivo de ejemplo configura las mismas opciones que el ejemplo anterior:" -#: ../Doc/using/windows.rst:258 +#: ../Doc/using/windows.rst:271 msgid "Installing Without Downloading" msgstr "Instalación sin descargas" -#: ../Doc/using/windows.rst:260 +#: ../Doc/using/windows.rst:273 msgid "" "As some features of Python are not included in the initial installer " "download, selecting those features may require an internet connection. To " @@ -694,7 +738,7 @@ msgstr "" "puede ser más grande de lo necesario, pero si se va a realizar un gran " "número de instalaciones es muy útil tener una copia en la caché local." -#: ../Doc/using/windows.rst:268 +#: ../Doc/using/windows.rst:281 msgid "" "Execute the following command from Command Prompt to download all possible " "required files. Remember to substitute ``python-3.9.0.exe`` for the actual " @@ -706,21 +750,21 @@ msgstr "" "exe`` por el nombre real de su instalador y crear diseños en sus propios " "directorios para evitar colisiones entre archivos con el mismo nombre." -#: ../Doc/using/windows.rst:277 +#: ../Doc/using/windows.rst:290 msgid "" "You may also specify the ``/quiet`` option to hide the progress display." msgstr "" "También se puede especificar la opción ``/quiet`` para no mostrar el " "progreso." -#: ../Doc/using/windows.rst:280 +#: ../Doc/using/windows.rst:293 msgid "Modifying an install" msgstr "Modificar una instalación" # La aplicación "Programs and Features" es "Programas y características" en # Windows en español, y las acciones figuran como "Desinstalar", "Cambiar" y # "Reparar" -#: ../Doc/using/windows.rst:282 +#: ../Doc/using/windows.rst:295 msgid "" "Once Python has been installed, you can add or remove features through the " "Programs and Features tool that is part of Windows. Select the Python entry " @@ -731,7 +775,7 @@ msgstr "" "Windows. Seleccionar la entrada Python y elegir \"Desinstalar/Cambiar\" para " "abrir el instalador en modo mantenimiento." -#: ../Doc/using/windows.rst:286 +#: ../Doc/using/windows.rst:299 msgid "" "\"Modify\" allows you to add or remove features by modifying the checkboxes " "- unchanged checkboxes will not install or remove anything. Some options " @@ -744,7 +788,7 @@ msgstr "" "el directorio de instalación; para modificarlas es necesario eliminar y " "reinstalar Python completamente." -#: ../Doc/using/windows.rst:291 +#: ../Doc/using/windows.rst:304 msgid "" "\"Repair\" will verify all the files that should be installed using the " "current settings and replace any that have been removed or modified." @@ -752,7 +796,7 @@ msgstr "" "\"Reparar\" verificará todos los archivos que deben instalarse con la " "configuración actual y reemplazará los que se hayan eliminado o modificado." -#: ../Doc/using/windows.rst:294 +#: ../Doc/using/windows.rst:307 msgid "" "\"Uninstall\" will remove Python entirely, with the exception of the :ref:" "`launcher`, which has its own entry in Programs and Features." @@ -760,11 +804,11 @@ msgstr "" "\"Desinstalar\" eliminará Python completamente, a excepción del :ref:" "`launcher`, el cual posee su propia entrada en Programas y características." -#: ../Doc/using/windows.rst:301 +#: ../Doc/using/windows.rst:314 msgid "The Microsoft Store package" msgstr "El paquete Microsoft Store" -#: ../Doc/using/windows.rst:305 +#: ../Doc/using/windows.rst:318 msgid "" "The Microsoft Store package is an easily installable Python interpreter that " "is intended mainly for interactive use, for example, by students." @@ -773,7 +817,7 @@ msgstr "" "instalable destinado principalmente al uso interactivo, por ejemplo, por " "estudiantes." -#: ../Doc/using/windows.rst:308 +#: ../Doc/using/windows.rst:321 msgid "" "To install the package, ensure you have the latest Windows 10 updates and " "search the Microsoft Store app for \"Python |version|\". Ensure that the app " @@ -784,7 +828,7 @@ msgstr "" "aplicación que seleccionas es una publicación de la Python Software " "Foundation y procede a instalarla." -#: ../Doc/using/windows.rst:313 +#: ../Doc/using/windows.rst:326 msgid "" "Python will always be available for free on the Microsoft Store. If you are " "asked to pay for it, you have not selected the correct package." @@ -793,7 +837,7 @@ msgstr "" "te solicita que pagues por él, entonces el paquete seleccionado no es el " "correcto." -#: ../Doc/using/windows.rst:316 +#: ../Doc/using/windows.rst:329 msgid "" "After installation, Python may be launched by finding it in Start. " "Alternatively, it will be available from any Command Prompt or PowerShell " @@ -806,7 +850,7 @@ msgstr "" "pueden ser usados escribiendo ``pip`` o ``idle``. IDLE también puede ser " "encontrado en el Inicio." -#: ../Doc/using/windows.rst:321 +#: ../Doc/using/windows.rst:334 msgid "" "All three commands are also available with version number suffixes, for " "example, as ``python3.exe`` and ``python3.x.exe`` as well as ``python.exe`` " @@ -825,7 +869,7 @@ msgstr "" "``idle`` sean consistentes con la versión de ``python`` que esté " "seleccionada." -#: ../Doc/using/windows.rst:329 +#: ../Doc/using/windows.rst:342 msgid "" "Virtual environments can be created with ``python -m venv`` and activated " "and used as normal." @@ -833,7 +877,7 @@ msgstr "" "Los entornos virtuales se pueden crear con ``python -m venv`` y se activan y " "usan normalmente." -#: ../Doc/using/windows.rst:332 +#: ../Doc/using/windows.rst:345 msgid "" "If you have installed another version of Python and added it to your " "``PATH`` variable, it will be available as ``python.exe`` rather than the " @@ -845,7 +889,7 @@ msgstr "" "Store. Para acceder a la nueva instalación, use ``python3.exe`` o ``python3." "x.exe``." -#: ../Doc/using/windows.rst:337 +#: ../Doc/using/windows.rst:350 msgid "" "The ``py.exe`` launcher will detect this Python installation, but will " "prefer installations from the traditional installer." @@ -853,7 +897,7 @@ msgstr "" "El lanzador ``py.exe`` detectará esta instalación de Python, pero priorizará " "instalaciones realizadas con el instalador tradicional." -#: ../Doc/using/windows.rst:340 +#: ../Doc/using/windows.rst:353 msgid "" "To remove Python, open Settings and use Apps and Features, or else find " "Python in Start and right-click to select Uninstall. Uninstalling will " @@ -866,15 +910,15 @@ msgstr "" "instalados directamente en esta instalación de Python, pero no eliminará " "ningún entorno virtual" -#: ../Doc/using/windows.rst:346 +#: ../Doc/using/windows.rst:359 msgid "Known issues" msgstr "Problemas conocidos" -#: ../Doc/using/windows.rst:349 +#: ../Doc/using/windows.rst:362 msgid "Redirection of local data, registry, and temporary paths" msgstr "Redirección de datos locales, registro y rutas temporales" -#: ../Doc/using/windows.rst:351 +#: ../Doc/using/windows.rst:364 msgid "" "Because of restrictions on Microsoft Store apps, Python scripts may not have " "full write access to shared locations such as :envvar:`TEMP` and the " @@ -887,7 +931,7 @@ msgstr "" "escribirá en una copia privada. Si sus scripts deben modificar las " "ubicaciones compartidas, deberá instalar el instalador completo." -#: ../Doc/using/windows.rst:356 +#: ../Doc/using/windows.rst:369 msgid "" "At runtime, Python will use a private copy of well-known Windows folders and " "the registry. For example, if the environment variable :envvar:`%APPDATA%` " @@ -905,7 +949,7 @@ msgstr "" "\\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\\\\LocalCache\\\\Local\\" "\\`." -#: ../Doc/using/windows.rst:361 +#: ../Doc/using/windows.rst:374 msgid "" "When reading files, Windows will return the file from the private folder, or " "if that does not exist, the real Windows directory. For example reading :" @@ -919,7 +963,7 @@ msgstr "" "\\System32` más el contenido de :file:`C:\\\\Program Files\\\\WindowsApps\\" "\\package_name\\\\VFS\\\\SystemX86`." -#: ../Doc/using/windows.rst:365 +#: ../Doc/using/windows.rst:378 msgid "" "You can find the real path of any existing file using :func:`os.path." "realpath`:" @@ -927,13 +971,13 @@ msgstr "" "Puede encontrar la ruta real de cualquier archivo existente usando :func:`os." "path.realpath`:" -#: ../Doc/using/windows.rst:374 +#: ../Doc/using/windows.rst:387 msgid "When writing to the Windows Registry, the following behaviors exist:" msgstr "" "Al escribir en el Registro de Windows, existen los siguientes " "comportamientos:" -#: ../Doc/using/windows.rst:376 +#: ../Doc/using/windows.rst:389 msgid "" "Reading from ``HKLM\\\\Software`` is allowed and results are merged with " "the :file:`registry.dat` file in the package." @@ -941,7 +985,7 @@ msgstr "" "Se permite la lectura desde ``HKLM\\\\Software`` y los resultados se " "fusionan con el archivo :file:`registry.dat` en el paquete." -#: ../Doc/using/windows.rst:377 +#: ../Doc/using/windows.rst:390 msgid "" "Writing to ``HKLM\\\\Software`` is not allowed if the corresponding key/" "value exists, i.e. modifying existing keys." @@ -949,7 +993,7 @@ msgstr "" "No se permite escribir en ``HKLM\\\\Software`` si existe la clave/valor " "correspondiente, es decir, modificar las claves existentes." -#: ../Doc/using/windows.rst:378 +#: ../Doc/using/windows.rst:391 msgid "" "Writing to ``HKLM\\\\Software`` is allowed as long as a corresponding key/" "value does not exist in the package and the user has the correct access " @@ -959,7 +1003,7 @@ msgstr "" "valor correspondiente en el paquete y el usuario tenga los permisos de " "acceso correctos." -#: ../Doc/using/windows.rst:381 +#: ../Doc/using/windows.rst:394 msgid "" "For more detail on the technical basis for these limitations, please consult " "Microsoft's documentation on packaged full-trust apps, currently available " @@ -973,11 +1017,11 @@ msgstr "" "msix/desktop/desktop-to-uwp-behind-the-scenes `_" -#: ../Doc/using/windows.rst:390 +#: ../Doc/using/windows.rst:403 msgid "The nuget.org packages" msgstr "El paquete de nuget.org" -#: ../Doc/using/windows.rst:394 +#: ../Doc/using/windows.rst:407 msgid "" "The nuget.org package is a reduced size Python environment intended for use " "on continuous integration and build systems that do not have a system-wide " @@ -990,7 +1034,7 @@ msgstr "" "administrador de paquetes para .NET\", también funciona perfectamente para " "paquetes que contienen herramientas de tiempo de compilación." -#: ../Doc/using/windows.rst:399 +#: ../Doc/using/windows.rst:412 msgid "" "Visit `nuget.org `_ for the most up-to-date " "information on using nuget. What follows is a summary that is sufficient for " @@ -1000,7 +1044,7 @@ msgstr "" "actualizada sobre cómo usar nuget. Lo que sigue es un resumen que es " "suficiente para desarrolladores Python." -#: ../Doc/using/windows.rst:403 +#: ../Doc/using/windows.rst:416 msgid "" "The ``nuget.exe`` command line tool may be downloaded directly from " "``https://aka.ms/nugetclidl``, for example, using curl or PowerShell. With " @@ -1012,7 +1056,7 @@ msgstr "" "PowerShell. Con esta herramienta, la última versión de Python para máquinas " "de 64 o 32 bit se instala con::" -#: ../Doc/using/windows.rst:411 +#: ../Doc/using/windows.rst:424 msgid "" "To select a particular version, add a ``-Version 3.x.y``. The output " "directory may be changed from ``.``, and the package will be installed into " @@ -1028,7 +1072,7 @@ msgstr "" "nombre incluirá la versión específica instalada. Dentro del subdirectorio " "hay un directorio ``tools`` que contiene la instalación de Python:" -#: ../Doc/using/windows.rst:428 +#: ../Doc/using/windows.rst:441 msgid "" "In general, nuget packages are not upgradeable, and newer versions should be " "installed side-by-side and referenced using the full path. Alternatively, " @@ -1041,7 +1085,7 @@ msgstr "" "de nuevo. Muchos sistemas de CI harán esto automáticamente si no mantienen " "archivos entre compilaciones." -#: ../Doc/using/windows.rst:433 +#: ../Doc/using/windows.rst:446 msgid "" "Alongside the ``tools`` directory is a ``build\\native`` directory. This " "contains a MSBuild properties file ``python.props`` that can be used in a C+" @@ -1054,7 +1098,7 @@ msgstr "" "incluir las configuraciones, automáticamente se usarán los encabezados y se " "importarán las bibliotecas en la compilación." -#: ../Doc/using/windows.rst:438 +#: ../Doc/using/windows.rst:451 msgid "" "The package information pages on nuget.org are `www.nuget.org/packages/" "python `_ for the 64-bit version and " @@ -1066,11 +1110,11 @@ msgstr "" "64 bit y `www.nuget.org/packages/pythonx86 `_ para la versión de 32 bit." -#: ../Doc/using/windows.rst:447 +#: ../Doc/using/windows.rst:460 msgid "The embeddable package" msgstr "El paquete incrustable" -#: ../Doc/using/windows.rst:451 +#: ../Doc/using/windows.rst:464 msgid "" "The embedded distribution is a ZIP file containing a minimal Python " "environment. It is intended for acting as part of another application, " @@ -1080,14 +1124,15 @@ msgstr "" "mínimo entorno de Python. Está destinado a ser usado como parte de otra " "aplicación, en lugar de ser accedido directamente por los usuarios finales." -#: ../Doc/using/windows.rst:455 +#: ../Doc/using/windows.rst:468 +#, fuzzy msgid "" "When extracted, the embedded distribution is (almost) fully isolated from " "the user's system, including environment variables, system registry " "settings, and installed packages. The standard library is included as pre-" "compiled and optimized ``.pyc`` files in a ZIP, and ``python3.dll``, " "``python37.dll``, ``python.exe`` and ``pythonw.exe`` are all provided. Tcl/" -"tk (including all dependants, such as Idle), pip and the Python " +"tk (including all dependents, such as Idle), pip and the Python " "documentation are not included." msgstr "" "Al ser extraída, la distribución incrustable está (casi) completamente " @@ -1099,7 +1144,7 @@ msgstr "" "dependientes, como Idle), pip y la documentación de Python no están " "incluidos." -#: ../Doc/using/windows.rst:464 +#: ../Doc/using/windows.rst:477 msgid "" "The embedded distribution does not include the `Microsoft C Runtime `_" +#: ../Doc/using/windows.rst:545 +#, fuzzy +msgid "`ActivePython `_" msgstr "`ActivePython `_" -#: ../Doc/using/windows.rst:532 +#: ../Doc/using/windows.rst:545 msgid "Installer with multi-platform compatibility, documentation, PyWin32" msgstr "" "Instalador compatible con múltiples plataformas, documentación, PyWin32" -#: ../Doc/using/windows.rst:536 +#: ../Doc/using/windows.rst:549 msgid "`Anaconda `_" msgstr "`Anaconda `_" -#: ../Doc/using/windows.rst:535 +#: ../Doc/using/windows.rst:548 msgid "" "Popular scientific modules (such as numpy, scipy and pandas) and the " "``conda`` package manager." @@ -1279,16 +1325,16 @@ msgstr "" "Módulos científicos populares (como numpy, scipy y pandas) y el gestor de " "paquetes ``conda``." -#: ../Doc/using/windows.rst:542 +#: ../Doc/using/windows.rst:555 msgid "`Enthought Deployment Manager `_" msgstr "`Enthought Deployment Manager `_" -#: ../Doc/using/windows.rst:539 +#: ../Doc/using/windows.rst:552 msgid "\"The Next Generation Python Environment and Package Manager\"." msgstr "" "\"El administrador de paquetes y entorno de Python de próxima generación\"." -#: ../Doc/using/windows.rst:541 +#: ../Doc/using/windows.rst:554 msgid "" "Previously Enthought provided Canopy, but it `reached end of life in 2016 " "`_." -#: ../Doc/using/windows.rst:546 +#: ../Doc/using/windows.rst:559 msgid "`WinPython `_" msgstr "`WinPython `_" -#: ../Doc/using/windows.rst:545 +#: ../Doc/using/windows.rst:558 msgid "" "Windows-specific distribution with prebuilt scientific packages and tools " "for building packages." @@ -1312,7 +1358,7 @@ msgstr "" "Distribución específica para Windows con paquetes científicos precompilados " "y herramientas para construir paquetes." -#: ../Doc/using/windows.rst:548 +#: ../Doc/using/windows.rst:561 msgid "" "Note that these packages may not include the latest versions of Python or " "other libraries, and are not maintained or supported by the core Python team." @@ -1321,11 +1367,11 @@ msgstr "" "Python u otras bibliotecas, y no son mantenidos ni respaldados por el equipo " "central de Python." -#: ../Doc/using/windows.rst:554 +#: ../Doc/using/windows.rst:567 msgid "Configuring Python" msgstr "Configuración de Python" -#: ../Doc/using/windows.rst:556 +#: ../Doc/using/windows.rst:569 msgid "" "To run Python conveniently from a command prompt, you might consider " "changing some default environment variables in Windows. While the installer " @@ -1340,11 +1386,11 @@ msgstr "" "sistema. Si utiliza varias versiones de Python con regularidad, considere " "usar el :ref:`launcher`." -#: ../Doc/using/windows.rst:566 +#: ../Doc/using/windows.rst:579 msgid "Excursus: Setting environment variables" msgstr "Excurso: configurar variables de entorno" -#: ../Doc/using/windows.rst:568 +#: ../Doc/using/windows.rst:581 msgid "" "Windows allows environment variables to be configured permanently at both " "the User level and the System level, or temporarily in a command prompt." @@ -1353,7 +1399,7 @@ msgstr "" "nivel de usuario y a nivel de sistema, o temporalmente en el símbolo del " "sistema." -#: ../Doc/using/windows.rst:571 +#: ../Doc/using/windows.rst:584 msgid "" "To temporarily set environment variables, open Command Prompt and use the :" "command:`set` command:" @@ -1361,7 +1407,7 @@ msgstr "" "Para configurar una variable de entorno temporal, abra el símbolo del " "sistema y utilice el comando :command:`set`:" -#: ../Doc/using/windows.rst:580 +#: ../Doc/using/windows.rst:593 msgid "" "These changes will apply to any further commands executed in that console, " "and will be inherited by any applications started from the console." @@ -1370,7 +1416,7 @@ msgstr "" "ejecute en esa consola, y serán heredados por cualquier aplicación iniciada " "desde esa consola." -#: ../Doc/using/windows.rst:583 +#: ../Doc/using/windows.rst:596 msgid "" "Including the variable name within percent signs will expand to the existing " "value, allowing you to add your new value at either the start or the end. " @@ -1384,7 +1430,7 @@ msgstr "" "que contiene :program:`python.exe` al comienzo es una forma común de " "asegurar que se ejecuta la versión correcta de Python." -#: ../Doc/using/windows.rst:589 +#: ../Doc/using/windows.rst:602 msgid "" "To permanently modify the default environment variables, click Start and " "search for 'edit environment variables', or open System properties, :" @@ -1401,7 +1447,7 @@ msgstr "" "sistema, se necesita acceso no restringido al equipo (por ej. con " "credenciales de administrador)." -#: ../Doc/using/windows.rst:598 +#: ../Doc/using/windows.rst:611 msgid "" "Windows will concatenate User variables *after* System variables, which may " "cause unexpected results when modifying :envvar:`PATH`." @@ -1410,7 +1456,7 @@ msgstr "" "sistema, lo cual puede causar resultados inesperados cuando se modifica :" "envvar:`PATH`." -#: ../Doc/using/windows.rst:601 +#: ../Doc/using/windows.rst:614 msgid "" "The :envvar:`PYTHONPATH` variable is used by all versions of Python, so you " "should not permanently configure it unless the listed paths only include " @@ -1421,7 +1467,7 @@ msgstr "" "enumeradas solo incluyan código compatible con todas las versiones de Python " "instaladas." -#: ../Doc/using/windows.rst:609 +#: ../Doc/using/windows.rst:622 msgid "" "https://docs.microsoft.com/en-us/windows/win32/procthread/environment-" "variables" @@ -1429,11 +1475,11 @@ msgstr "" "https://docs.microsoft.com/en-us/windows/win32/procthread/environment-" "variables" -#: ../Doc/using/windows.rst:609 +#: ../Doc/using/windows.rst:622 msgid "Overview of environment variables on Windows" msgstr "Descripción general de las variables de entorno en Windows" -#: ../Doc/using/windows.rst:612 +#: ../Doc/using/windows.rst:625 msgid "" "https://docs.microsoft.com/en-us/windows-server/administration/windows-" "commands/set_1" @@ -1441,12 +1487,12 @@ msgstr "" "https://docs.microsoft.com/en-us/windows-server/administration/windows-" "commands/set_1" -#: ../Doc/using/windows.rst:612 +#: ../Doc/using/windows.rst:625 msgid "The ``set`` command, for temporarily modifying environment variables" msgstr "" "El comando ``set``, para modificar temporalmente las variables de entorno" -#: ../Doc/using/windows.rst:614 +#: ../Doc/using/windows.rst:627 msgid "" "https://docs.microsoft.com/en-us/windows-server/administration/windows-" "commands/setx" @@ -1454,16 +1500,16 @@ msgstr "" "https://docs.microsoft.com/en-us/windows-server/administration/windows-" "commands/setx" -#: ../Doc/using/windows.rst:615 +#: ../Doc/using/windows.rst:628 msgid "The ``setx`` command, for permanently modifying environment variables" msgstr "" "El comando ``setx``, para modificar permanentemente las variables de entorno" -#: ../Doc/using/windows.rst:621 +#: ../Doc/using/windows.rst:634 msgid "Finding the Python executable" msgstr "Encontrar el ejecutable de Python" -#: ../Doc/using/windows.rst:625 +#: ../Doc/using/windows.rst:638 msgid "" "Besides using the automatically created start menu entry for the Python " "interpreter, you might want to start Python in the command prompt. The " @@ -1474,7 +1520,7 @@ msgstr "" "desde el símbolo del sistema. El instalador posee una opción para realizar " "esa configuración." -#: ../Doc/using/windows.rst:629 +#: ../Doc/using/windows.rst:642 msgid "" "On the first page of the installer, an option labelled \"Add Python to " "PATH\" may be selected to have the installer add the install location into " @@ -1492,7 +1538,7 @@ msgstr "" "esta manera los scripts también pueden ser ejecutados con opciones de línea " "de comandos, consulte la documentación de :ref:`using-on-cmdline`." -#: ../Doc/using/windows.rst:636 +#: ../Doc/using/windows.rst:649 msgid "" "If you don't enable this option at install time, you can always re-run the " "installer, select Modify, and enable it. Alternatively, you can manually " @@ -1511,11 +1557,11 @@ msgstr "" "de ejemplo pude verse así (suponiendo que las dos primeras entradas ya " "existían)::" -#: ../Doc/using/windows.rst:649 +#: ../Doc/using/windows.rst:662 msgid "UTF-8 mode" msgstr "Modo UTF-8" -#: ../Doc/using/windows.rst:653 +#: ../Doc/using/windows.rst:666 msgid "" "Windows still uses legacy encodings for the system encoding (the ANSI Code " "Page). Python uses it for the default encoding of text files (e.g. :func:" @@ -1526,7 +1572,7 @@ msgstr "" "predeterminada de archivos de texto (por ejemplo, :func:`locale." "getencoding`)." -#: ../Doc/using/windows.rst:657 +#: ../Doc/using/windows.rst:670 msgid "" "This may cause issues because UTF-8 is widely used on the internet and most " "Unix systems, including WSL (Windows Subsystem for Linux)." @@ -1535,7 +1581,7 @@ msgstr "" "internet y en la mayoría de los sistemas Unix, incluido WSL (subsistema de " "Windows para Linux)." -#: ../Doc/using/windows.rst:660 +#: ../Doc/using/windows.rst:673 msgid "" "You can use the :ref:`Python UTF-8 Mode ` to change the default " "text encoding to UTF-8. You can enable the :ref:`Python UTF-8 Mode ` is enabled, you can still use " "the system encoding (the ANSI Code Page) via the \"mbcs\" codec." @@ -1559,7 +1605,7 @@ msgstr "" "seguir usando la codificación del sistema (La página de código ANSI) a " "través del códec \"mbcs\"." -#: ../Doc/using/windows.rst:669 +#: ../Doc/using/windows.rst:682 msgid "" "Note that adding ``PYTHONUTF8=1`` to the default environment variables will " "affect all Python 3.7+ applications on your system. If you have any Python " @@ -1574,7 +1620,7 @@ msgstr "" "variable de entorno solo temporalmente o se use la opción de línea de " "comandos ``-X utf8``." -#: ../Doc/using/windows.rst:676 +#: ../Doc/using/windows.rst:689 msgid "" "Even when UTF-8 mode is disabled, Python uses UTF-8 by default on Windows " "for:" @@ -1582,13 +1628,13 @@ msgstr "" "Aún con el modo UTF-8 desactivado, Python utiliza UTF-8 de forma " "predeterminada en Windows para:" -#: ../Doc/using/windows.rst:679 +#: ../Doc/using/windows.rst:692 msgid "Console I/O including standard I/O (see :pep:`528` for details)." msgstr "" "E/S de consola, incluida la E/S estándar (consultar :pep:`528` para más " "detalles)." -#: ../Doc/using/windows.rst:680 +#: ../Doc/using/windows.rst:693 msgid "" "The :term:`filesystem encoding ` " "(see :pep:`529` for details)." @@ -1596,11 +1642,11 @@ msgstr "" "La :term:`codificación del sistema ` " "(vea :pep:`529` para más detalles)." -#: ../Doc/using/windows.rst:687 +#: ../Doc/using/windows.rst:700 msgid "Python Launcher for Windows" msgstr "Lanzador de Python para Windows" -#: ../Doc/using/windows.rst:691 +#: ../Doc/using/windows.rst:704 msgid "" "The Python launcher for Windows is a utility which aids in locating and " "executing of different Python versions. It allows scripts (or the command-" @@ -1612,7 +1658,7 @@ msgstr "" "(o la línea de comandos) indiquen preferencia por una versión específica de " "Python, y ubicará y ejecutará esa versión." -#: ../Doc/using/windows.rst:696 +#: ../Doc/using/windows.rst:709 msgid "" "Unlike the :envvar:`PATH` variable, the launcher will correctly select the " "most appropriate version of Python. It will prefer per-user installations " @@ -1624,19 +1670,19 @@ msgstr "" "del usuario por sobre instalaciones de todo el sistema, y ordenará por " "versión del lenguaje en lugar de utilizar la más recientemente instalada." -#: ../Doc/using/windows.rst:701 +#: ../Doc/using/windows.rst:714 msgid "The launcher was originally specified in :pep:`397`." msgstr "El lanzador se especificó originalmente en :pep:`397`." -#: ../Doc/using/windows.rst:704 +#: ../Doc/using/windows.rst:717 msgid "Getting started" msgstr "Comenzar" -#: ../Doc/using/windows.rst:707 +#: ../Doc/using/windows.rst:720 msgid "From the command-line" msgstr "Desde la línea de comandos" -#: ../Doc/using/windows.rst:711 +#: ../Doc/using/windows.rst:724 msgid "" "System-wide installations of Python 3.3 and later will put the launcher on " "your :envvar:`PATH`. The launcher is compatible with all available versions " @@ -1649,7 +1695,7 @@ msgstr "" "esté instalada. Para comprobar que el lanzador está disponible, ejecute el " "siguiente comando en el símbolo del sistema:" -#: ../Doc/using/windows.rst:718 +#: ../Doc/using/windows.rst:731 msgid "" "You should find that the latest version of Python you have installed is " "started - it can be exited as normal, and any additional command-line " @@ -1659,7 +1705,7 @@ msgstr "" "puede cerrar normalmente, y todo argumento adicional especificado por línea " "de comandos será enviado directamente a Python." -#: ../Doc/using/windows.rst:722 +#: ../Doc/using/windows.rst:735 msgid "" "If you have multiple versions of Python installed (e.g., 3.7 and |version|) " "you will have noticed that Python |version| was started - to launch Python " @@ -1669,7 +1715,7 @@ msgstr "" "version|), habrá notado que Python |version| se inició: para iniciar Python " "3.7, pruebe el comando:" -#: ../Doc/using/windows.rst:728 +#: ../Doc/using/windows.rst:741 msgid "" "If you want the latest version of Python 2 you have installed, try the " "command::" @@ -1677,37 +1723,56 @@ msgstr "" "Si quieres la última versión de Python 2 que tienes instalada, prueba el " "comando::" -#: ../Doc/using/windows.rst:733 -msgid "You should find the latest version of Python 3.x starts." -msgstr "Debería encontrar que se inicia la última versión de Python 3.x." - -#: ../Doc/using/windows.rst:735 +#: ../Doc/using/windows.rst:746 msgid "" "If you see the following error, you do not have the launcher installed::" msgstr "Si ve el siguiente error, no tiene instalado el lanzador::" -#: ../Doc/using/windows.rst:740 -msgid "" -"Per-user installations of Python do not add the launcher to :envvar:`PATH` " -"unless the option was selected on installation." -msgstr "" -"Las instalaciones por usuario de Python no agregan la ubicación del lanzador " -"a :envvar:`PATH` a menos que la opción haya sido seleccionada durante la " -"instalación." - -#: ../Doc/using/windows.rst:743 +#: ../Doc/using/windows.rst:751 msgid "The command::" msgstr "El comando::" -#: ../Doc/using/windows.rst:747 +#: ../Doc/using/windows.rst:755 msgid "displays the currently installed version(s) of Python." msgstr "muestra la(s) versión(es) actualmente instalada(s) de Python." -#: ../Doc/using/windows.rst:750 +#: ../Doc/using/windows.rst:757 +msgid "" +"The ``-x.y`` argument is the short form of the ``-V:Company/Tag`` argument, " +"which allows selecting a specific Python runtime, including those that may " +"have come from somewhere other than python.org. Any runtime registered by " +"following :pep:`514` will be discoverable. The ``--list`` command lists all " +"available runtimes using the ``-V:`` format." +msgstr "" + +#: ../Doc/using/windows.rst:763 +msgid "" +"When using the ``-V:`` argument, specifying the Company will limit selection " +"to runtimes from that provider, while specifying only the Tag will select " +"from all providers. Note that omitting the slash implies a tag::" +msgstr "" + +#: ../Doc/using/windows.rst:776 +msgid "" +"The short form of the argument (``-3``) only ever selects from core Python " +"releases, and not other distributions. However, the longer form (``-V:3``) " +"will select from any." +msgstr "" + +#: ../Doc/using/windows.rst:780 +msgid "" +"The Company is matched on the full string, case-insenitive. The Tag is " +"matched oneither the full string, or a prefix, provided the next character " +"is a dot or a hyphen. This allows ``-V:3.1`` to match ``3.1-32``, but not " +"``3.10``. Tags are sorted using numerical ordering (``3.10`` is newer than " +"``3.1``), but are compared using text (``-V:3.01`` does not match ``3.1``)." +msgstr "" + +#: ../Doc/using/windows.rst:788 msgid "Virtual environments" msgstr "Entornos virtuales" -#: ../Doc/using/windows.rst:754 +#: ../Doc/using/windows.rst:792 msgid "" "If the launcher is run with no explicit Python version specification, and a " "virtual environment (created with the standard library :mod:`venv` module or " @@ -1723,11 +1788,11 @@ msgstr "" "lugar del global. Para ejecutar el intérprete global, desactive el entorno " "virtual o especifique explícitamente la versión global de Python." -#: ../Doc/using/windows.rst:762 +#: ../Doc/using/windows.rst:800 msgid "From a script" msgstr "Desde un script" -#: ../Doc/using/windows.rst:764 +#: ../Doc/using/windows.rst:802 msgid "" "Let's create a test Python script - create a file called ``hello.py`` with " "the following contents" @@ -1735,11 +1800,11 @@ msgstr "" "Vamos a crear un script de Python para una prueba - cree un archivo llamado " "``hello.py`` con el siguiente contenido" -#: ../Doc/using/windows.rst:773 +#: ../Doc/using/windows.rst:811 msgid "From the directory in which hello.py lives, execute the command::" msgstr "Desde el directorio en el que vive hello.py, ejecute el comando:" -#: ../Doc/using/windows.rst:777 +#: ../Doc/using/windows.rst:815 msgid "" "You should notice the version number of your latest Python 2.x installation " "is printed. Now try changing the first line to be:" @@ -1747,12 +1812,13 @@ msgstr "" "Debería notar que se imprime el número de versión de la última instalación " "de Python 2.x. Ahora pruebe cambiando la primera línea por:" -#: ../Doc/using/windows.rst:784 +#: ../Doc/using/windows.rst:822 +#, fuzzy msgid "" "Re-executing the command should now print the latest Python 3.x information. " "As with the above command-line examples, you can specify a more explicit " "version qualifier. Assuming you have Python 3.7 installed, try changing the " -"first line to ``#! python3.7`` and you should find the |version| version " +"first line to ``#! python3.7`` and you should find the 3.7 version " "information printed." msgstr "" "Volver a ejecutar el comando ahora debería imprimir la información más " @@ -1762,7 +1828,7 @@ msgstr "" "a ``#! python3.7`` y debería encontrar la información de la versión |" "version| impresa." -#: ../Doc/using/windows.rst:790 +#: ../Doc/using/windows.rst:828 msgid "" "Note that unlike interactive use, a bare \"python\" will use the latest " "version of Python 2.x that you have installed. This is for backward " @@ -1775,11 +1841,11 @@ msgstr "" "compatibilidad con Unix, donde el comando ``python`` usualmente refiere a " "Python 2." -#: ../Doc/using/windows.rst:796 +#: ../Doc/using/windows.rst:834 msgid "From file associations" msgstr "Desde asociaciones de archivos" -#: ../Doc/using/windows.rst:798 +#: ../Doc/using/windows.rst:836 msgid "" "The launcher should have been associated with Python files (i.e. ``.py``, ``." "pyw``, ``.pyc`` files) when it was installed. This means that when you " @@ -1794,7 +1860,7 @@ msgstr "" "utilizar las mismas funciones descritas anteriormente para que el script " "especifique la versión que debería usarse." -#: ../Doc/using/windows.rst:804 +#: ../Doc/using/windows.rst:842 msgid "" "The key benefit of this is that a single launcher can support multiple " "Python versions at the same time depending on the contents of the first line." @@ -1803,11 +1869,11 @@ msgstr "" "versiones de Python al mismo tiempo dependiendo del contenido de la primera " "línea." -#: ../Doc/using/windows.rst:808 +#: ../Doc/using/windows.rst:846 msgid "Shebang Lines" msgstr "Líneas shebang" -#: ../Doc/using/windows.rst:810 +#: ../Doc/using/windows.rst:848 msgid "" "If the first line of a script file starts with ``#!``, it is known as a " "\"shebang\" line. Linux and other Unix like operating systems have native " @@ -1823,7 +1889,7 @@ msgstr "" "la misma funcionalidad pueda ser utilizada con scripts de Python en Windows, " "y los ejemplos anteriores demuestran su uso." -#: ../Doc/using/windows.rst:817 +#: ../Doc/using/windows.rst:855 msgid "" "To allow shebang lines in Python scripts to be portable between Unix and " "Windows, this launcher supports a number of 'virtual' commands to specify " @@ -1833,27 +1899,28 @@ msgstr "" "entre Unix y Windows, este lanzador soporta varios comandos 'virtuales' para " "especificar qué intérprete utilizar. Los comandos virtuales soportados son:" -#: ../Doc/using/windows.rst:821 -msgid "``/usr/bin/env python``" +#: ../Doc/using/windows.rst:859 +#, fuzzy +msgid "``/usr/bin/env``" msgstr "``/usr/bin/env python``" -#: ../Doc/using/windows.rst:822 +#: ../Doc/using/windows.rst:860 msgid "``/usr/bin/python``" msgstr "``/usr/bin/python``" -#: ../Doc/using/windows.rst:823 +#: ../Doc/using/windows.rst:861 msgid "``/usr/local/bin/python``" msgstr "``/usr/local/bin/python``" -#: ../Doc/using/windows.rst:824 +#: ../Doc/using/windows.rst:862 msgid "``python``" msgstr "``python``" -#: ../Doc/using/windows.rst:826 +#: ../Doc/using/windows.rst:864 msgid "For example, if the first line of your script starts with" msgstr "Por ejemplo, si la primera línea del script comienza con" -#: ../Doc/using/windows.rst:832 +#: ../Doc/using/windows.rst:870 msgid "" "The default Python will be located and used. As many Python scripts written " "to work on Unix will already have this line, you should find these scripts " @@ -1868,7 +1935,7 @@ msgstr "" "que sea útil en Unix, debería utilizar una de las líneas shebang que " "comienza con ``/usr``." -#: ../Doc/using/windows.rst:838 +#: ../Doc/using/windows.rst:876 msgid "" "Any of the above virtual commands can be suffixed with an explicit version " "(either just the major version, or the major and minor version). Furthermore " @@ -1882,7 +1949,7 @@ msgstr "" "\"-32\" después de la versión secundaria. Es decir. ``/usr/bin/" "python3.7-32`` solicitará el uso de Python 3.7 de 32 bits." -#: ../Doc/using/windows.rst:846 +#: ../Doc/using/windows.rst:884 msgid "" "Beginning with python launcher 3.7 it is possible to request 64-bit version " "by the \"-64\" suffix. Furthermore it is possible to specify a major and " @@ -1893,26 +1960,30 @@ msgstr "" "mayor y la arquitectura sin la versión menor (por ej. ``/usr/bin/" "python3-64``)." -#: ../Doc/using/windows.rst:852 +#: ../Doc/using/windows.rst:890 +#, fuzzy msgid "" "The \"-64\" suffix is deprecated, and now implies \"any architecture that is " -"not provably i386/32-bit\". To request a specific environment, use the new " -"``-V:`` argument with the complete tag." +"not provably i386/32-bit\". To request a specific environment, use the new :" +"samp:`-V:{TAG}` argument with the complete tag." msgstr "" "El sufijo \"-64\" está en desuso y ahora implica \"cualquier arquitectura " "que no sea probablemente i386/32 bits\". Para solicitar un entorno " "específico, use el nuevo argumento ``-V:`` con la etiqueta completa." -#: ../Doc/using/windows.rst:857 +#: ../Doc/using/windows.rst:894 +#, fuzzy msgid "" "The ``/usr/bin/env`` form of shebang line has one further special property. " "Before looking for installed Python interpreters, this form will search the " -"executable :envvar:`PATH` for a Python executable. This corresponds to the " -"behaviour of the Unix ``env`` program, which performs a :envvar:`PATH` " -"search. If an executable matching the first argument after the ``env`` " -"command cannot be found, it will be handled as described below. " -"Additionally, the environment variable :envvar:`PYLAUNCHER_NO_SEARCH_PATH` " -"may be set (to any value) to skip this additional search." +"executable :envvar:`PATH` for a Python executable matching the name provided " +"as the first argument. This corresponds to the behaviour of the Unix ``env`` " +"program, which performs a :envvar:`PATH` search. If an executable matching " +"the first argument after the ``env`` command cannot be found, but the " +"argument starts with ``python``, it will be handled as described for the " +"other virtual commands. The environment variable :envvar:" +"`PYLAUNCHER_NO_SEARCH_PATH` may be set (to any value) to skip this search " +"of :envvar:`PATH`." msgstr "" "La forma ``/usr/bin/env`` de la línea shebang tiene otra propiedad especial. " "Antes de buscar intérpretes de Python instalados, este formulario buscará en " @@ -1924,11 +1995,33 @@ msgstr "" "`PYLAUNCHER_NO_SEARCH_PATH` se puede establecer (en cualquier valor) para " "omitir esta búsqueda adicional." -#: ../Doc/using/windows.rst:868 +#: ../Doc/using/windows.rst:905 +msgid "" +"Shebang lines that do not match any of these patterns are looked up in the " +"``[commands]`` section of the launcher's :ref:`.INI file `. " +"This may be used to handle certain commands in a way that makes sense for " +"your system. The name of the command must be a single argument (no spaces in " +"the shebang executable), and the value substituted is the full path to the " +"executable (additional arguments specified in the .INI will be quoted as " +"part of the filename)." +msgstr "" + +#: ../Doc/using/windows.rst:918 +msgid "" +"Any commands not found in the .INI file are treated as **Windows** " +"executable paths that are absolute or relative to the directory containing " +"the script file. This is a convenience for Windows-only scripts, such as " +"those generated by an installer, since the behavior is not compatible with " +"Unix-style shells. These paths may be quoted, and may include multiple " +"arguments, after which the path to the script and any additional arguments " +"will be appended." +msgstr "" + +#: ../Doc/using/windows.rst:927 msgid "Arguments in shebang lines" msgstr "Argumentos en líneas shebang" -#: ../Doc/using/windows.rst:870 +#: ../Doc/using/windows.rst:929 msgid "" "The shebang lines can also specify additional options to be passed to the " "Python interpreter. For example, if you have a shebang line:" @@ -1936,26 +2029,26 @@ msgstr "" "Las líneas shebang también pueden especificar opciones adicionales para que " "sean pasadas al intérprete de Python. Por ej. si se tiene esta línea shebang:" -#: ../Doc/using/windows.rst:877 +#: ../Doc/using/windows.rst:936 msgid "Then Python will be started with the ``-v`` option" msgstr "Entonces Python se iniciará con la opción ``-v``" -#: ../Doc/using/windows.rst:880 +#: ../Doc/using/windows.rst:939 msgid "Customization" msgstr "Personalización" -#: ../Doc/using/windows.rst:883 +#: ../Doc/using/windows.rst:944 msgid "Customization via INI files" msgstr "Personalización con archivos INI" -#: ../Doc/using/windows.rst:885 +#: ../Doc/using/windows.rst:946 +#, fuzzy msgid "" "Two .ini files will be searched by the launcher - ``py.ini`` in the current " -"user's \"application data\" directory (i.e. the directory returned by " -"calling the Windows function ``SHGetFolderPath`` with " -"``CSIDL_LOCAL_APPDATA``) and ``py.ini`` in the same directory as the " -"launcher. The same .ini files are used for both the 'console' version of the " -"launcher (i.e. py.exe) and for the 'windows' version (i.e. pyw.exe)." +"user's application data directory (``%LOCALAPPDATA%`` or ``$env:" +"LocalAppData``) and ``py.ini`` in the same directory as the launcher. The " +"same .ini files are used for both the 'console' version of the launcher (i." +"e. py.exe) and for the 'windows' version (i.e. pyw.exe)." msgstr "" "El lanzador buscará dos archivos .ini - ``py.ini`` en el directorio de " "\"datos de aplicación\" del usuario actual (esto es el directorio retornado " @@ -1964,7 +2057,7 @@ msgstr "" "mismos archivos .ini son usados por la versión 'consola' del lanzador (py." "exe) y por la versión 'ventana' (pyw.exe)." -#: ../Doc/using/windows.rst:892 +#: ../Doc/using/windows.rst:952 msgid "" "Customization specified in the \"application directory\" will have " "precedence over the one next to the executable, so a user, who may not have " @@ -1976,11 +2069,11 @@ msgstr "" "usuario, que podría no tener acceso de escritura al archivo .ini que está " "junto al lanzador, puede sobrescribir comandos en ese archivo .ini global." -#: ../Doc/using/windows.rst:897 +#: ../Doc/using/windows.rst:957 msgid "Customizing default Python versions" msgstr "Personalizar las versiones de Python predeterminadas" -#: ../Doc/using/windows.rst:899 +#: ../Doc/using/windows.rst:959 msgid "" "In some cases, a version qualifier can be included in a command to dictate " "which version of Python will be used by the command. A version qualifier " @@ -1996,7 +2089,7 @@ msgstr "" "Además es posible especificar si se solicita una implementación de 32 o 64 " "bit agregando \"-32\" o \"-64\"." -#: ../Doc/using/windows.rst:905 +#: ../Doc/using/windows.rst:965 msgid "" "For example, a shebang line of ``#!python`` has no version qualifier, while " "``#!python3`` has a version qualifier which specifies only a major version." @@ -2005,7 +2098,7 @@ msgstr "" "versión, mientras que ``#!python3`` sí tiene un calificador de versión el " "cual especifica solo el número mayor de la versión." -#: ../Doc/using/windows.rst:908 +#: ../Doc/using/windows.rst:968 msgid "" "If no version qualifiers are found in a command, the environment variable :" "envvar:`PY_PYTHON` can be set to specify the default version qualifier. If " @@ -2022,7 +2115,7 @@ msgstr "" "\"3.7-64\". (Tener en cuenta que la opción \"-64\" solo está disponible con " "el lanzador incluido con Python 3.7 o versiones posteriores.)" -#: ../Doc/using/windows.rst:915 +#: ../Doc/using/windows.rst:975 msgid "" "If no minor version qualifiers are found, the environment variable " "``PY_PYTHON{major}`` (where ``{major}`` is the current major version " @@ -2041,7 +2134,7 @@ msgstr "" "no se garantiza, que sea la versión más recientemente instalada de esa " "familia." -#: ../Doc/using/windows.rst:923 +#: ../Doc/using/windows.rst:983 msgid "" "On 64-bit Windows with both 32-bit and 64-bit implementations of the same " "(major.minor) Python version installed, the 64-bit version will always be " @@ -2066,11 +2159,11 @@ msgstr "" "instalada). Como se especificó antes, el sufijo \"-32\" o \"-64\" puede ser " "utilizado en el especificador de versión para cambiar este comportamiento." -#: ../Doc/using/windows.rst:934 +#: ../Doc/using/windows.rst:994 msgid "Examples:" msgstr "Ejemplos:" -#: ../Doc/using/windows.rst:936 +#: ../Doc/using/windows.rst:996 msgid "" "If no relevant options are set, the commands ``python`` and ``python2`` will " "use the latest Python 2.x version installed and the command ``python3`` will " @@ -2080,7 +2173,7 @@ msgstr "" "``python2`` utilizarán la última versión de Python 2.x instalada y el " "comando ``python3`` utilizará el último Python 3.x instalado." -#: ../Doc/using/windows.rst:940 +#: ../Doc/using/windows.rst:1000 msgid "" "The command ``python3.7`` will not consult any options at all as the " "versions are fully specified." @@ -2088,7 +2181,7 @@ msgstr "" "El comando ``python3.7`` no consultará ninguna opción ya que las versiones " "están completamente especificadas." -#: ../Doc/using/windows.rst:943 +#: ../Doc/using/windows.rst:1003 msgid "" "If ``PY_PYTHON=3``, the commands ``python`` and ``python3`` will both use " "the latest installed Python 3 version." @@ -2096,7 +2189,7 @@ msgstr "" "Si ``PY_PYTHON=3``, los comandos ``python`` y ``python3`` utilizarán ambos " "la última versión instalada de Python 3." -#: ../Doc/using/windows.rst:946 +#: ../Doc/using/windows.rst:1006 msgid "" "If ``PY_PYTHON=3.7-32``, the command ``python`` will use the 32-bit " "implementation of 3.7 whereas the command ``python3`` will use the latest " @@ -2108,7 +2201,7 @@ msgstr "" "de Python instalada (PY_PYTHON no se consideró en absoluto porque se " "especificó una versión principal)." -#: ../Doc/using/windows.rst:951 +#: ../Doc/using/windows.rst:1011 msgid "" "If ``PY_PYTHON=3`` and ``PY_PYTHON3=3.7``, the commands ``python`` and " "``python3`` will both use specifically 3.7" @@ -2116,7 +2209,7 @@ msgstr "" "Si ``PY_PYTHON=3`` y ``PY_PYTHON3=3.7``, los comandos ``python`` y " "``python3`` usarán específicamente 3.7" -#: ../Doc/using/windows.rst:954 +#: ../Doc/using/windows.rst:1014 msgid "" "In addition to environment variables, the same settings can be configured in " "the .INI file used by the launcher. The section in the INI file is called " @@ -2133,17 +2226,17 @@ msgstr "" "minúsculas). El contenido de las variables de entorno sobrescribirá los " "valores especificados en el archivo INI." -#: ../Doc/using/windows.rst:961 +#: ../Doc/using/windows.rst:1021 msgid "For example:" msgstr "Por ejemplo:" -#: ../Doc/using/windows.rst:963 +#: ../Doc/using/windows.rst:1023 msgid "Setting ``PY_PYTHON=3.7`` is equivalent to the INI file containing:" msgstr "" "La configuración de ``PY_PYTHON=3.7`` es equivalente al archivo INI que " "contiene:" -#: ../Doc/using/windows.rst:970 +#: ../Doc/using/windows.rst:1030 msgid "" "Setting ``PY_PYTHON=3`` and ``PY_PYTHON3=3.7`` is equivalent to the INI file " "containing:" @@ -2151,11 +2244,11 @@ msgstr "" "La configuración de ``PY_PYTHON=3`` y ``PY_PYTHON3=3.7`` es equivalente al " "archivo INI que contiene:" -#: ../Doc/using/windows.rst:980 +#: ../Doc/using/windows.rst:1040 msgid "Diagnostics" msgstr "Diagnóstico" -#: ../Doc/using/windows.rst:982 +#: ../Doc/using/windows.rst:1042 msgid "" "If an environment variable :envvar:`PYLAUNCHER_DEBUG` is set (to any value), " "the launcher will print diagnostic information to stderr (i.e. to the " @@ -2172,11 +2265,11 @@ msgstr "" "y la línea de comando exacta utilizada para ejecutar el Python de destino. " "Está destinado principalmente a pruebas y depuración." -#: ../Doc/using/windows.rst:990 +#: ../Doc/using/windows.rst:1050 msgid "Dry Run" msgstr "Ejecución en seco" -#: ../Doc/using/windows.rst:992 +#: ../Doc/using/windows.rst:1052 msgid "" "If an environment variable :envvar:`PYLAUNCHER_DRYRUN` is set (to any " "value), the launcher will output the command it would have run, but will not " @@ -2193,11 +2286,11 @@ msgstr "" "siempre se codifica con UTF-8 y es posible que no se represente " "correctamente en la consola." -#: ../Doc/using/windows.rst:1000 +#: ../Doc/using/windows.rst:1060 msgid "Install on demand" msgstr "Instalación bajo demanda" -#: ../Doc/using/windows.rst:1002 +#: ../Doc/using/windows.rst:1062 msgid "" "If an environment variable :envvar:`PYLAUNCHER_ALLOW_INSTALL` is set (to any " "value), and the requested Python version is not installed but is available " @@ -2211,7 +2304,7 @@ msgstr "" "Esto puede requerir la interacción del usuario para completarse y es posible " "que deba ejecutar el comando nuevamente." -#: ../Doc/using/windows.rst:1007 +#: ../Doc/using/windows.rst:1067 msgid "" "An additional :envvar:`PYLAUNCHER_ALWAYS_INSTALL` variable causes the " "launcher to always try to install Python, even if it is detected. This is " @@ -2223,11 +2316,11 @@ msgstr "" "diseñado principalmente para pruebas (y debe usarse con :envvar:" "`PYLAUNCHER_DRYRUN`)." -#: ../Doc/using/windows.rst:1012 +#: ../Doc/using/windows.rst:1072 msgid "Return codes" msgstr "Códigos de retorno" -#: ../Doc/using/windows.rst:1014 +#: ../Doc/using/windows.rst:1074 msgid "" "The following exit codes may be returned by the Python launcher. " "Unfortunately, there is no way to distinguish these from the exit code of " @@ -2237,7 +2330,7 @@ msgstr "" "Desafortunadamente, no hay forma de distinguirlos del código de salida de " "Python." -#: ../Doc/using/windows.rst:1017 +#: ../Doc/using/windows.rst:1077 msgid "" "The names of codes are as used in the sources, and are only for reference. " "There is no way to access or resolve them apart from reading this page. " @@ -2247,43 +2340,43 @@ msgstr "" "referencia. No hay forma de acceder a ellos o resolverlos aparte de leer " "esta página. Las entradas se enumeran en orden alfabético de nombres." -#: ../Doc/using/windows.rst:1022 +#: ../Doc/using/windows.rst:1082 msgid "Value" msgstr "Valor" -#: ../Doc/using/windows.rst:1024 +#: ../Doc/using/windows.rst:1084 msgid "RC_BAD_VENV_CFG" msgstr "RC_BAD_VENV_CFG" -#: ../Doc/using/windows.rst:1024 +#: ../Doc/using/windows.rst:1084 msgid "107" msgstr "107" -#: ../Doc/using/windows.rst:1024 +#: ../Doc/using/windows.rst:1084 msgid "A :file:`pyvenv.cfg` was found but is corrupt." msgstr "Se encontró un :file:`pyvenv.cfg` pero está corrupto." -#: ../Doc/using/windows.rst:1026 +#: ../Doc/using/windows.rst:1086 msgid "RC_CREATE_PROCESS" msgstr "RC_CREATE_PROCESS" -#: ../Doc/using/windows.rst:1026 +#: ../Doc/using/windows.rst:1086 msgid "101" msgstr "101" -#: ../Doc/using/windows.rst:1026 +#: ../Doc/using/windows.rst:1086 msgid "Failed to launch Python." msgstr "No se pudo iniciar Python." -#: ../Doc/using/windows.rst:1028 +#: ../Doc/using/windows.rst:1088 msgid "RC_INSTALLING" msgstr "RC_INSTALLING" -#: ../Doc/using/windows.rst:1028 +#: ../Doc/using/windows.rst:1088 msgid "111" msgstr "111" -#: ../Doc/using/windows.rst:1028 +#: ../Doc/using/windows.rst:1088 msgid "" "An install was started, but the command will need to be re-run after it " "completes." @@ -2291,59 +2384,59 @@ msgstr "" "Se inició una instalación, pero será necesario volver a ejecutar el comando " "una vez que se complete." -#: ../Doc/using/windows.rst:1031 +#: ../Doc/using/windows.rst:1091 msgid "RC_INTERNAL_ERROR" msgstr "RC_INTERNAL_ERROR" -#: ../Doc/using/windows.rst:1031 +#: ../Doc/using/windows.rst:1091 msgid "109" msgstr "109" -#: ../Doc/using/windows.rst:1031 +#: ../Doc/using/windows.rst:1091 msgid "Unexpected error. Please report a bug." msgstr "Error inesperado. Por favor, informe de un error." -#: ../Doc/using/windows.rst:1033 +#: ../Doc/using/windows.rst:1093 msgid "RC_NO_COMMANDLINE" msgstr "RC_NO_COMMANDLINE" -#: ../Doc/using/windows.rst:1033 +#: ../Doc/using/windows.rst:1093 msgid "108" msgstr "108" -#: ../Doc/using/windows.rst:1033 +#: ../Doc/using/windows.rst:1093 msgid "Unable to obtain command line from the operating system." msgstr "No se puede obtener la línea de comandos del sistema operativo." -#: ../Doc/using/windows.rst:1036 +#: ../Doc/using/windows.rst:1096 msgid "RC_NO_PYTHON" msgstr "RC_NO_PYTHON" -#: ../Doc/using/windows.rst:1036 +#: ../Doc/using/windows.rst:1096 msgid "103" msgstr "103" -#: ../Doc/using/windows.rst:1036 +#: ../Doc/using/windows.rst:1096 msgid "Unable to locate the requested version." msgstr "No se puede encontrar la versión solicitada." -#: ../Doc/using/windows.rst:1038 +#: ../Doc/using/windows.rst:1098 msgid "RC_NO_VENV_CFG" msgstr "RC_NO_VENV_CFG" -#: ../Doc/using/windows.rst:1038 +#: ../Doc/using/windows.rst:1098 msgid "106" msgstr "106" -#: ../Doc/using/windows.rst:1038 +#: ../Doc/using/windows.rst:1098 msgid "A :file:`pyvenv.cfg` was required but not found." msgstr "Se requería un :file:`pyvenv.cfg` pero no se encontró." -#: ../Doc/using/windows.rst:1046 +#: ../Doc/using/windows.rst:1106 msgid "Finding modules" msgstr "Encontrar módulos" -#: ../Doc/using/windows.rst:1048 +#: ../Doc/using/windows.rst:1108 msgid "" "These notes supplement the description at :ref:`sys-path-init` with detailed " "Windows notes." @@ -2351,7 +2444,7 @@ msgstr "" "Estas notas complementan la descripción en :ref:`sys-path-init` con notas " "detalladas de Windows." -#: ../Doc/using/windows.rst:1051 +#: ../Doc/using/windows.rst:1111 msgid "" "When no ``._pth`` file is found, this is how :data:`sys.path` is populated " "on Windows:" @@ -2359,7 +2452,7 @@ msgstr "" "Cuando no se encuentre ningún archivo ``._pth``, así es como :data:`sys." "path` es completado en Windows:" -#: ../Doc/using/windows.rst:1054 +#: ../Doc/using/windows.rst:1114 msgid "" "An empty entry is added at the start, which corresponds to the current " "directory." @@ -2367,7 +2460,7 @@ msgstr "" "Se agrega una entrada vacía al comienzo, que corresponde al directorio " "actual." -#: ../Doc/using/windows.rst:1057 +#: ../Doc/using/windows.rst:1117 msgid "" "If the environment variable :envvar:`PYTHONPATH` exists, as described in :" "ref:`using-on-envvars`, its entries are added next. Note that on Windows, " @@ -2383,7 +2476,7 @@ msgstr "" # "hive" se traduce como "subárbol" en este contexto. # referencia: # https://es.wikipedia.org/wiki/Registro_de_Windows#Sub%C3%A1rboles -#: ../Doc/using/windows.rst:1062 +#: ../Doc/using/windows.rst:1122 msgid "" "Additional \"application paths\" can be added in the registry as subkeys of :" "samp:`\\\\SOFTWARE\\\\Python\\\\PythonCore\\\\{version}\\\\PythonPath` under " @@ -2401,7 +2494,7 @@ msgstr "" "los instaladores conocidos solo utilizan HKLM, por lo que HKCU comúnmente se " "encuentra vacío.)" -#: ../Doc/using/windows.rst:1069 +#: ../Doc/using/windows.rst:1129 msgid "" "If the environment variable :envvar:`PYTHONHOME` is set, it is assumed as " "\"Python Home\". Otherwise, the path of the main Python executable is used " @@ -2421,7 +2514,7 @@ msgstr "" "la ruta principal de Python se construye a partir del PythonPath guardado en " "el registro." -#: ../Doc/using/windows.rst:1077 +#: ../Doc/using/windows.rst:1137 msgid "" "If the Python Home cannot be located, no :envvar:`PYTHONPATH` is specified " "in the environment, and no registry entries can be found, a default path " @@ -2432,7 +2525,7 @@ msgstr "" "se usa una ruta predeterminada con entradas relativas (por ej. ``.\\Lib;." "\\plat-win``, etc.)." -#: ../Doc/using/windows.rst:1081 +#: ../Doc/using/windows.rst:1141 msgid "" "If a ``pyvenv.cfg`` file is found alongside the main executable or in the " "directory one level above the executable, the following variations apply:" @@ -2441,7 +2534,7 @@ msgstr "" "el directorio un nivel arriba del ejecutable, se aplica la siguiente " "variación:" -#: ../Doc/using/windows.rst:1084 +#: ../Doc/using/windows.rst:1144 msgid "" "If ``home`` is an absolute path and :envvar:`PYTHONHOME` is not set, this " "path is used instead of the path to the main executable when deducing the " @@ -2451,11 +2544,11 @@ msgstr "" "se usa esta ruta en lugar de la ruta al ejecutable principal para deducir la " "ubicación del directorio de origen." -#: ../Doc/using/windows.rst:1088 +#: ../Doc/using/windows.rst:1148 msgid "The end result of all this is:" msgstr "El resultado final de todo esto es:" -#: ../Doc/using/windows.rst:1090 +#: ../Doc/using/windows.rst:1150 msgid "" "When running :file:`python.exe`, or any other .exe in the main Python " "directory (either an installed version, or directly from the PCbuild " @@ -2468,7 +2561,7 @@ msgstr "" "principales en el registro. Siempre se leen otras \"rutas de aplicación\" " "del registro." -#: ../Doc/using/windows.rst:1095 +#: ../Doc/using/windows.rst:1155 msgid "" "When Python is hosted in another .exe (different directory, embedded via " "COM, etc), the \"Python Home\" will not be deduced, so the core path from " @@ -2480,7 +2573,7 @@ msgstr "" "principal del registro. Siempre se leen otras \"rutas de aplicación\" del " "registro." -#: ../Doc/using/windows.rst:1099 +#: ../Doc/using/windows.rst:1159 msgid "" "If Python can't find its home and there are no registry value (frozen .exe, " "some very strange installation setup) you get a path with some default, but " @@ -2490,7 +2583,7 @@ msgstr "" "registro (un .exe congelado, una muy rara configuración de instalación) se " "obtiene una ruta relativa predeterminada." -#: ../Doc/using/windows.rst:1103 +#: ../Doc/using/windows.rst:1163 msgid "" "For those who want to bundle Python into their application or distribution, " "the following advice will prevent conflicts with other installations:" @@ -2498,7 +2591,7 @@ msgstr "" "Para aquellos que quieran incluir Python en su aplicación o distribución, " "los siguientes consejos evitarán conflictos con otras instalaciones:" -#: ../Doc/using/windows.rst:1106 +#: ../Doc/using/windows.rst:1166 msgid "" "Include a ``._pth`` file alongside your executable containing the " "directories to include. This will ignore paths listed in the registry and " @@ -2510,7 +2603,7 @@ msgstr "" "registro y en las variables de entorno, y que también se ignore :mod:`site` " "a menos que se especifique ``import site``." -#: ../Doc/using/windows.rst:1111 +#: ../Doc/using/windows.rst:1171 msgid "" "If you are loading :file:`python3.dll` or :file:`python37.dll` in your own " "executable, explicitly call :c:func:`Py_SetPath` or (at least) :c:func:" @@ -2520,7 +2613,7 @@ msgstr "" "propio, invocar explícitamente :c:func:`Py_SetPath` o (al menos) :c:func:" "`Py_SetProgramName` antes de :c:func:`Py_Initialize`." -#: ../Doc/using/windows.rst:1115 +#: ../Doc/using/windows.rst:1175 msgid "" "Clear and/or overwrite :envvar:`PYTHONPATH` and set :envvar:`PYTHONHOME` " "before launching :file:`python.exe` from your application." @@ -2528,7 +2621,7 @@ msgstr "" "Limpie y/o sobrescriba :envvar:`PYTHONPATH` y configure :envvar:`PYTHONHOME` " "antes de iniciar :file:`python.exe` desde su aplicación." -#: ../Doc/using/windows.rst:1118 +#: ../Doc/using/windows.rst:1178 msgid "" "If you cannot use the previous suggestions (for example, you are a " "distribution that allows people to run :file:`python.exe` directly), ensure " @@ -2543,7 +2636,7 @@ msgstr "" "este no será detectado dentro de un archivo ZIP, pero si se detectará un ZIP " "correctamente nombrado.)" -#: ../Doc/using/windows.rst:1124 +#: ../Doc/using/windows.rst:1184 msgid "" "These will ensure that the files in a system-wide installation will not take " "precedence over the copy of the standard library bundled with your " @@ -2559,7 +2652,7 @@ msgstr "" "mejor, ya que las otras aún pueden ser afectadas por rutas no estándar en el " "registro y en el site-packages del usuario." -#: ../Doc/using/windows.rst:1133 +#: ../Doc/using/windows.rst:1193 msgid "" "Adds ``._pth`` file support and removes ``applocal`` option from ``pyvenv." "cfg``." @@ -2567,20 +2660,22 @@ msgstr "" "Agrega soporte para archivos ``._pth`` y elimina la opción ``applocal`` de " "``pyvenv.cfg``." -#: ../Doc/using/windows.rst:1135 +#: ../Doc/using/windows.rst:1195 +#, fuzzy msgid "" -"Adds ``pythonXX.zip`` as a potential landmark when directly adjacent to the " -"executable." +"Adds :file:`python{XX}.zip` as a potential landmark when directly adjacent " +"to the executable." msgstr "" "Agrega ``pythonXX.zip`` como un potencial archivo de referencia cuando se " "encuentra junto al ejecutable." -#: ../Doc/using/windows.rst:1141 +#: ../Doc/using/windows.rst:1201 +#, fuzzy msgid "" "Modules specified in the registry under ``Modules`` (not ``PythonPath``) may " "be imported by :class:`importlib.machinery.WindowsRegistryFinder`. This " "finder is enabled on Windows in 3.6.0 and earlier, but may need to be " -"explicitly added to :attr:`sys.meta_path` in the future." +"explicitly added to :data:`sys.meta_path` in the future." msgstr "" "Los módulos especificados en el registro bajo ``Modules`` (no " "``PythonPath``) pueden ser importados por :class:`importlib.machinery." @@ -2588,11 +2683,11 @@ msgstr "" "versión 3.6.0 y anteriores, pero es posible que deba agregarse " "explícitamente a :attr:`sys.meta_path` en el futuro." -#: ../Doc/using/windows.rst:1147 +#: ../Doc/using/windows.rst:1207 msgid "Additional modules" msgstr "Módulos adicionales" -#: ../Doc/using/windows.rst:1149 +#: ../Doc/using/windows.rst:1209 msgid "" "Even though Python aims to be portable among all platforms, there are " "features that are unique to Windows. A couple of modules, both in the " @@ -2603,7 +2698,7 @@ msgstr "" "la biblioteca estándar y externos, y fragmentos de código para utilizar " "estas funciones." -#: ../Doc/using/windows.rst:1153 +#: ../Doc/using/windows.rst:1213 msgid "" "The Windows-specific standard modules are documented in :ref:`mswin-specific-" "services`." @@ -2611,11 +2706,11 @@ msgstr "" "Los módulos estándar específicos para Windows se encuentran documentados en :" "ref:`mswin-specific-services`." -#: ../Doc/using/windows.rst:1157 +#: ../Doc/using/windows.rst:1217 msgid "PyWin32" msgstr "PyWin32" -#: ../Doc/using/windows.rst:1159 +#: ../Doc/using/windows.rst:1219 msgid "" "The `PyWin32 `_ module by Mark Hammond is " "a collection of modules for advanced Windows-specific support. This " @@ -2625,7 +2720,7 @@ msgstr "" "una colección de módulos para soporte avanzado específico para Windows. Este " "incluye utilidades para:" -#: ../Doc/using/windows.rst:1163 +#: ../Doc/using/windows.rst:1223 msgid "" "`Component Object Model `_ (COM)" @@ -2633,19 +2728,19 @@ msgstr "" "`Component Object Model `_ (COM)" -#: ../Doc/using/windows.rst:1166 +#: ../Doc/using/windows.rst:1226 msgid "Win32 API calls" msgstr "Invocación de la API Win32" -#: ../Doc/using/windows.rst:1167 +#: ../Doc/using/windows.rst:1227 msgid "Registry" msgstr "Registro" -#: ../Doc/using/windows.rst:1168 +#: ../Doc/using/windows.rst:1228 msgid "Event log" msgstr "Registro de eventos" -#: ../Doc/using/windows.rst:1169 +#: ../Doc/using/windows.rst:1229 msgid "" "`Microsoft Foundation Classes `_ (MFC) user interfaces" @@ -2653,7 +2748,7 @@ msgstr "" "Interfaces de usuario `Microsoft Foundation Classes `_ (MFC)" -#: ../Doc/using/windows.rst:1173 +#: ../Doc/using/windows.rst:1233 msgid "" "`PythonWin `_ is a sample MFC application shipped with PyWin32. " @@ -2663,32 +2758,32 @@ msgstr "" "org/windows/pythonwin/>`_ es una aplicación MFC de muestra distribuida con " "PyWin32. Es un IDE incrustable con depurador incorporado." -#: ../Doc/using/windows.rst:1180 +#: ../Doc/using/windows.rst:1240 msgid "" "`Win32 How Do I...? `_" msgstr "" "`Win32 How Do I...? `_" -#: ../Doc/using/windows.rst:1180 +#: ../Doc/using/windows.rst:1240 msgid "by Tim Golden" msgstr "por Tim Golden" -#: ../Doc/using/windows.rst:1182 +#: ../Doc/using/windows.rst:1242 msgid "`Python and COM `_" msgstr "`Python and COM `_" -#: ../Doc/using/windows.rst:1183 +#: ../Doc/using/windows.rst:1243 msgid "by David and Paul Boddie" msgstr "por David y Paul Boddie" -#: ../Doc/using/windows.rst:1187 +#: ../Doc/using/windows.rst:1247 msgid "cx_Freeze" msgstr "cx_Freeze" -#: ../Doc/using/windows.rst:1189 +#: ../Doc/using/windows.rst:1249 +#, fuzzy msgid "" -"`cx_Freeze `_ is a :mod:" -"`distutils` extension (see :ref:`extending-distutils`) which wraps Python " +"`cx_Freeze `_ wraps Python " "scripts into executable Windows programs (:file:`{*}.exe` files). When you " "have done this, you can distribute your application without requiring your " "users to install Python." @@ -2699,11 +2794,11 @@ msgstr "" "Al hacer esto, se puede distribuir una aplicación sin que los usuarios " "necesiten instalar Python." -#: ../Doc/using/windows.rst:1197 +#: ../Doc/using/windows.rst:1256 msgid "Compiling Python on Windows" msgstr "Compilar Python en Windows" -#: ../Doc/using/windows.rst:1199 +#: ../Doc/using/windows.rst:1258 msgid "" "If you want to compile CPython yourself, first thing you should do is get " "the `source `_. You can download " @@ -2715,7 +2810,7 @@ msgstr "" "fuente de la última versión o simplemente obtener un `checkout `_ nuevo." -#: ../Doc/using/windows.rst:1204 +#: ../Doc/using/windows.rst:1263 msgid "" "The source tree contains a build solution and project files for Microsoft " "Visual Studio, which is the compiler used to build the official Python " @@ -2726,7 +2821,7 @@ msgstr "" "las versiones oficiales de Python. Estos archivos están en el directorio :" "file:`PCbuild`." -#: ../Doc/using/windows.rst:1208 +#: ../Doc/using/windows.rst:1267 msgid "" "Check :file:`PCbuild/readme.txt` for general information on the build " "process." @@ -2734,15 +2829,15 @@ msgstr "" "Consulte :file:`PCbuild/readme.txt` para obtener información general acerca " "del proceso de compilación." -#: ../Doc/using/windows.rst:1210 +#: ../Doc/using/windows.rst:1269 msgid "For extension modules, consult :ref:`building-on-windows`." msgstr "Para módulos de extensión, consulte :ref:`building-on-windows`." -#: ../Doc/using/windows.rst:1214 +#: ../Doc/using/windows.rst:1273 msgid "Other Platforms" msgstr "Otras plataformas" -#: ../Doc/using/windows.rst:1216 +#: ../Doc/using/windows.rst:1275 msgid "" "With ongoing development of Python, some platforms that used to be supported " "earlier are no longer supported (due to the lack of users or developers). " @@ -2752,7 +2847,7 @@ msgstr "" "compatibles ya no lo son (debido a la falta de usuarios o desarrolladores). " "Consulte :pep:`11` para detalles sobre las plataformas no soportadas." -#: ../Doc/using/windows.rst:1220 +#: ../Doc/using/windows.rst:1279 msgid "" "`Windows CE `_ is `no longer supported " "`__ since Python 3 (if it " @@ -2762,7 +2857,7 @@ msgstr "" "`__ desde Python 3 (si " "alguna vez lo fue)." -#: ../Doc/using/windows.rst:1223 +#: ../Doc/using/windows.rst:1282 msgid "" "The `Cygwin `_ installer offers to install the `Python " "interpreter `__ as well" @@ -2770,7 +2865,7 @@ msgstr "" "El instalador `Cygwin `_ ofrece instalar también el " "`Python interpreter `__" -#: ../Doc/using/windows.rst:1227 +#: ../Doc/using/windows.rst:1286 msgid "" "See `Python for Windows `_ for " "detailed information about platforms with pre-compiled installers." @@ -2778,3 +2873,28 @@ msgstr "" "Para obtener información detallada acerca de las plataformas con " "instaladores precompilados consulte `Python for Windows `_." + +#~ msgid "" +#~ "To completely hide the installer UI and install Python silently, pass the " +#~ "``/quiet`` option. To skip past the user interaction but still display " +#~ "progress and errors, pass the ``/passive`` option. The ``/uninstall`` " +#~ "option may be passed to immediately begin removing Python - no " +#~ "confirmation prompt will be displayed." +#~ msgstr "" +#~ "Para ocultar completamente la interfaz de usuario del instalador e " +#~ "instalar Python de forma silenciosa, pase la opción ``/quiet``. Para " +#~ "omitir la interacción del usuario pero seguir mostrando el progreso y los " +#~ "errores, pase la opción ``/passive``. Se puede pasar la opción ``/" +#~ "uninstall`` para comenzar de inmediato a eliminar Python; no se mostrará " +#~ "ningún mensaje de confirmación." + +#~ msgid "You should find the latest version of Python 3.x starts." +#~ msgstr "Debería encontrar que se inicia la última versión de Python 3.x." + +#~ msgid "" +#~ "Per-user installations of Python do not add the launcher to :envvar:" +#~ "`PATH` unless the option was selected on installation." +#~ msgstr "" +#~ "Las instalaciones por usuario de Python no agregan la ubicación del " +#~ "lanzador a :envvar:`PATH` a menos que la opción haya sido seleccionada " +#~ "durante la instalación." diff --git a/whatsnew/2.0.po b/whatsnew/2.0.po index 151a9387c4..1d97ca72a8 100644 --- a/whatsnew/2.0.po +++ b/whatsnew/2.0.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-12-08 21:38+0100\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/whatsnew/2.0.rst:3 msgid "What's New in Python 2.0" @@ -335,13 +335,14 @@ msgstr "" "puntos más significativos de las interfaces Unicode." #: ../Doc/whatsnew/2.0.rst:155 +#, fuzzy msgid "" "In Python source code, Unicode strings are written as ``u\"string\"``. " -"Arbitrary Unicode characters can be written using a new escape sequence, " -"``\\uHHHH``, where *HHHH* is a 4-digit hexadecimal number from 0000 to " -"FFFF. The existing ``\\xHHHH`` escape sequence can also be used, and octal " -"escapes can be used for characters up to U+01FF, which is represented by " -"``\\777``." +"Arbitrary Unicode characters can be written using a new escape sequence, :" +"samp:`\\\\u{HHHH}`, where *HHHH* is a 4-digit hexadecimal number from 0000 " +"to FFFF. The existing :samp:`\\\\x{HH}` escape sequence can also be used, " +"and octal escapes can be used for characters up to U+01FF, which is " +"represented by ``\\777``." msgstr "" "En el código fuente de Python, las cadenas Unicode se escriben como ``u " "\"cadena\"``. Los caracteres Unicode arbitrarios pueden escribirse " @@ -1284,10 +1285,11 @@ msgstr "" "``L.append( (1,2) )``." #: ../Doc/whatsnew/2.0.rst:665 +#, fuzzy msgid "" "The earlier versions of these methods were more forgiving because they used " "an old function in Python's C interface to parse their arguments; 2.0 " -"modernizes them to use :func:`PyArg_ParseTuple`, the current argument " +"modernizes them to use :c:func:`PyArg_ParseTuple`, the current argument " "parsing function, which provides more helpful error messages and treats " "multi-argument calls as errors. If you absolutely must use 2.0 but can't " "fix your code, you can edit :file:`Objects/listobject.c` and define the " @@ -1507,10 +1509,11 @@ msgstr "" "pyport.h`." #: ../Doc/whatsnew/2.0.rst:767 +#, fuzzy msgid "" "Vladimir Marangozov's long-awaited malloc restructuring was completed, to " "make it easy to have the Python interpreter use a custom allocator instead " -"of C's standard :func:`malloc`. For documentation, read the comments in :" +"of C's standard :c:func:`malloc`. For documentation, read the comments in :" "file:`Include/pymem.h` and :file:`Include/objimpl.h`. For the lengthy " "discussions during which the interface was hammered out, see the web " "archives of the 'patches' and 'python-dev' lists at python.org." @@ -1578,10 +1581,11 @@ msgstr "" "G. Waldman eleva el límite de ``2^16`` a ``2^{32}``." #: ../Doc/whatsnew/2.0.rst:796 +#, fuzzy msgid "" "Three new convenience functions intended for adding constants to a module's " -"dictionary at module initialization time were added: :func:" -"`PyModule_AddObject`, :func:`PyModule_AddIntConstant`, and :func:" +"dictionary at module initialization time were added: :c:func:" +"`PyModule_AddObject`, :c:func:`PyModule_AddIntConstant`, and :c:func:" "`PyModule_AddStringConstant`. Each of these functions takes a module " "object, a null-terminated C string containing the name to be added, and a " "third argument for the value to be assigned to the name. This third " @@ -1596,9 +1600,11 @@ msgstr "" "es, respectivamente, un objeto Python, un C long o una cadena C." #: ../Doc/whatsnew/2.0.rst:804 +#, fuzzy msgid "" -"A wrapper API was added for Unix-style signal handlers. :func:`PyOS_getsig` " -"gets a signal handler and :func:`PyOS_setsig` will set a new handler." +"A wrapper API was added for Unix-style signal handlers. :c:func:" +"`PyOS_getsig` gets a signal handler and :c:func:`PyOS_setsig` will set a new " +"handler." msgstr "" "Se ha añadido una API envolvente para los manejadores de señales de estilo " "Unix. :func:`PyOS_getsig` obtiene un manejador de señales y :func:" @@ -1630,12 +1636,13 @@ msgstr "" "una instalación de Python fuera una tarea ardua." #: ../Doc/whatsnew/2.0.rst:821 +#, fuzzy msgid "" "The SIG for distribution utilities, shepherded by Greg Ward, has created the " -"Distutils, a system to make package installation much easier. They form " -"the :mod:`distutils` package, a new part of Python's standard library. In " -"the best case, installing a Python module from source will require the same " -"steps: first you simply mean unpack the tarball or zip archive, and the run " +"Distutils, a system to make package installation much easier. They form the " +"``distutils`` package, a new part of Python's standard library. In the best " +"case, installing a Python module from source will require the same steps: " +"first you simply mean unpack the tarball or zip archive, and the run " "\"``python setup.py install``\". The platform will be automatically " "detected, the compiler will be recognized, C extension modules will be " "compiled, and the distribution installed into the proper directory. " @@ -1790,9 +1797,10 @@ msgstr "" "archivo :file:`hamlet.xml` usándolo::" #: ../Doc/whatsnew/2.0.rst:935 +#, fuzzy msgid "" "For more information, consult the Python documentation, or the XML HOWTO at " -"http://pyxml.sourceforge.net/topics/howto/xml-howto.html." +"https://pyxml.sourceforge.net/topics/howto/xml-howto.html." msgstr "" "Para más información, consulte la documentación de Python o el XML HOWTO en " "http://pyxml.sourceforge.net/topics/howto/xml-howto.html." diff --git a/whatsnew/2.1.po b/whatsnew/2.1.po index 1e0426d1a3..d556b7dbdc 100644 --- a/whatsnew/2.1.po +++ b/whatsnew/2.1.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-28 00:38+0200\n" "Last-Translator: Jaime Resano \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/whatsnew/2.1.rst:3 msgid "What's New in Python 2.1" @@ -1095,13 +1094,14 @@ msgstr "" "Tk. :file:`pydoc` se vuelve rápidamente adictivo; ¡pruébalo!" #: ../Doc/whatsnew/2.1.rst:611 +#, fuzzy msgid "" "Two different modules for unit testing were added to the standard library. " "The :mod:`doctest` module, contributed by Tim Peters, provides a testing " "framework based on running embedded examples in docstrings and comparing the " "results against the expected output. PyUnit, contributed by Steve Purcell, " "is a unit testing framework inspired by JUnit, which was in turn an " -"adaptation of Kent Beck's Smalltalk testing framework. See http://pyunit." +"adaptation of Kent Beck's Smalltalk testing framework. See https://pyunit." "sourceforge.net/ for more information about PyUnit." msgstr "" "Se han añadido a la biblioteca estándar dos módulos diferentes para realizar " @@ -1288,12 +1288,13 @@ msgstr "" "ambas cifras estén subestimadas. Algunos de los cambios más notables son:" #: ../Doc/whatsnew/2.1.rst:694 +#, fuzzy msgid "" "A specialized object allocator is now optionally available, that should be " -"faster than the system :func:`malloc` and have less memory overhead. The " -"allocator uses C's :func:`malloc` function to get large pools of memory, and " -"then fulfills smaller memory requests from these pools. It can be enabled " -"by providing the :option:`!--with-pymalloc` option to the :program:" +"faster than the system :c:func:`malloc` and have less memory overhead. The " +"allocator uses C's :c:func:`!malloc` function to get large pools of memory, " +"and then fulfills smaller memory requests from these pools. It can be " +"enabled by providing the :option:`!--with-pymalloc` option to the :program:" "`configure` script; see :file:`Objects/obmalloc.c` for the implementation " "details." msgstr "" @@ -1306,19 +1307,21 @@ msgstr "" "file:`Objects/obmalloc.c` para los detalles de la implementación." #: ../Doc/whatsnew/2.1.rst:701 +#, fuzzy msgid "" "Authors of C extension modules should test their code with the object " "allocator enabled, because some incorrect code may break, causing core dumps " "at runtime. There are a bunch of memory allocation functions in Python's C " -"API that have previously been just aliases for the C library's :func:" -"`malloc` and :func:`free`, meaning that if you accidentally called " +"API that have previously been just 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 :func:`malloc` and :" -"func:`free` any more, and calling the wrong function to free memory will get " -"you a core dump. For example, if memory was allocated using :func:" -"`PyMem_New`, it has to be freed using :func:`PyMem_Del`, not :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." +"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 " +"will get you a core dump. For example, if memory was allocated using :c:" +"macro:`PyMem_New`, it has to be freed using :c:func:`PyMem_Del`, 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 "" "Los autores de los módulos de extensión de C deberían probar su código con " "el asignador de objetos activado, porque algún código incorrecto puede " @@ -1340,13 +1343,14 @@ msgid "The object allocator was contributed by Vladimir Marangozov." msgstr "El asignador de objetos fue aportado por Vladimir Marangozov." #: ../Doc/whatsnew/2.1.rst:716 +#, fuzzy msgid "" "The speed of line-oriented file I/O has been improved because people often " "complain about its lack of speed, and because it's often been used as a " "naïve benchmark. The :meth:`readline` method of file objects has therefore " "been rewritten to be much faster. The exact amount of the speedup will vary " -"from platform to platform depending on how slow the C library's :func:`getc` " -"was, but is around 66%, and potentially much faster on some particular " +"from platform to platform depending on how slow the C library's :c:func:`!" +"getc` was, but is around 66%, and potentially much faster on some particular " "operating systems. Tim Peters did much of the benchmarking and coding for " "this change, motivated by a discussion in comp.lang.python." msgstr "" @@ -1460,8 +1464,9 @@ msgstr "" "compilador realizada por Jeremy Hylton." #: ../Doc/whatsnew/2.1.rst:772 +#, fuzzy msgid "" -"C extensions which import other modules have been changed to use :func:" +"C extensions which import other modules have been changed to use :c:func:" "`PyImport_ImportModule`, which means that they will use any import hooks " "that have been installed. This is also encouraged for third-party " "extensions that need to import some other module from C code." diff --git a/whatsnew/2.2.po b/whatsnew/2.2.po index b81df8630f..ae04e924bc 100644 --- a/whatsnew/2.2.po +++ b/whatsnew/2.2.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-08-07 10:12+0100\n" "Last-Translator: Claudia Millan \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/whatsnew/2.2.rst:3 msgid "What's New in Python 2.2" @@ -698,12 +698,12 @@ msgstr "" "deberías ir para obtener una imagen más completa?" #: ../Doc/whatsnew/2.2.rst:398 +#, fuzzy msgid "" -"https://docs.python.org/dev/howto/descriptor.html is a lengthy tutorial " -"introduction to the descriptor features, written by Guido van Rossum. If my " -"description has whetted your appetite, go read this tutorial next, because " -"it goes into much more detail about the new features while still remaining " -"quite easy to read." +"The :ref:`descriptorhowto` is a lengthy tutorial introduction to the " +"descriptor features, written by Guido van Rossum. If my description has " +"whetted your appetite, go read this tutorial next, because it goes into much " +"more detail about the new features while still remaining quite easy to read." msgstr "" "https://docs.python.org/dev/howto/descriptor.html es un extenso tutorial de " "introducción a las características del descriptor, escrito por Guido van " @@ -1075,12 +1075,13 @@ msgstr "" "un tablero de ajedrez $NxN$ sin visitar ninguna casilla dos veces)." #: ../Doc/whatsnew/2.2.rst:634 +#, fuzzy msgid "" "The idea of generators comes from other programming languages, especially " -"Icon (https://www.cs.arizona.edu/icon/), where the idea of generators is " +"Icon (https://www2.cs.arizona.edu/icon/), where the idea of generators is " "central. In Icon, every expression and function call behaves like a " "generator. One example from \"An Overview of the Icon Programming " -"Language\" at https://www.cs.arizona.edu/icon/docs/ipd266.htm gives an idea " +"Language\" at https://www2.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, " @@ -1937,7 +1938,8 @@ msgstr "" "siguientes pasos:" #: ../Doc/whatsnew/2.2.rst:1081 -msgid "Rename :c:func:`Py_TPFLAGS_GC` to :c:func:`PyTPFLAGS_HAVE_GC`." +#, fuzzy +msgid "Rename :c:macro:`!Py_TPFLAGS_GC` to :c:macro:`Py_TPFLAGS_HAVE_GC`." msgstr "" "Cambia el nombre de :c:func:`Py_TPFLAGS_GC` a :c:func:`PyTPFLAGS_HAVE_GC`." @@ -1951,24 +1953,25 @@ msgstr "" msgid "objects, and :c:func:`PyObject_GC_Del` to deallocate them." msgstr "objetos, y :c:func:`PyObject_GC_Del` para desocuparlos." -#: ../Doc/whatsnew/2.2.rst:1087 -msgid "Rename :c:func:`PyObject_GC_Init` to :c:func:`PyObject_GC_Track` and" +#: ../Doc/whatsnew/2.2.rst:1086 +#, fuzzy +msgid "" +"Rename :c:func:`!PyObject_GC_Init` to :c:func:`PyObject_GC_Track` and :c:" +"func:`!PyObject_GC_Fini` to :c:func:`PyObject_GC_UnTrack`." msgstr "" "Cambiar el nombre de :c:func:`PyObject_GC_Init` a :c:func:" "`PyObject_GC_Track` y" -#: ../Doc/whatsnew/2.2.rst:1087 -msgid ":c:func:`PyObject_GC_Fini` to :c:func:`PyObject_GC_UnTrack`." -msgstr ":c:func:`PyObject_GC_Fini` a :c:func:`PyObject_GC_UnTrack`." - #: ../Doc/whatsnew/2.2.rst:1089 -msgid "Remove :c:func:`PyGC_HEAD_SIZE` from object size calculations." +#, fuzzy +msgid "Remove :c:macro:`!PyGC_HEAD_SIZE` from object size calculations." msgstr "" "Eliminar :c:func:`PyGC_HEAD_SIZE` del cálculo del tamaño de los objetos." #: ../Doc/whatsnew/2.2.rst:1091 +#, fuzzy msgid "" -"Remove calls to :c:func:`PyObject_AS_GC` and :c:func:`PyObject_FROM_GC`." +"Remove calls to :c:func:`!PyObject_AS_GC` and :c:func:`!PyObject_FROM_GC`." msgstr "" "Eliminar las llamadas a :c:func:`PyObject_AS_GC` y :c:func:" "`PyObject_FROM_GC`." @@ -2010,12 +2013,13 @@ msgstr "" "valores de los argumentos." #: ../Doc/whatsnew/2.2.rst:1108 +#, fuzzy msgid "" -"Two new flags :const:`METH_NOARGS` and :const:`METH_O` are available in " +"Two new flags :c:macro:`METH_NOARGS` and :c:macro:`METH_O` are available in " "method definition tables to simplify implementation of methods with no " "arguments or a single untyped argument. Calling such methods is more " -"efficient than calling a corresponding method that uses :const:" -"`METH_VARARGS`. Also, the old :const:`METH_OLDARGS` style of writing C " +"efficient than calling a corresponding method that uses :c:macro:" +"`METH_VARARGS`. Also, the old :c:macro:`!METH_OLDARGS` style of writing C " "methods is now officially deprecated." msgstr "" "Dos nuevos indicadores :const:`METH_NOARGS` y :const:`METH_O` están " @@ -2225,6 +2229,7 @@ msgstr "" "`.netrc`, si tiene uno. (Contribución de Mike Romberg)" #: ../Doc/whatsnew/2.2.rst:1215 +#, fuzzy msgid "" "Some features of the object returned by the :func:`xrange` function are now " "deprecated, and trigger warnings when they're accessed; they'll disappear in " @@ -2233,7 +2238,7 @@ msgid "" "operator, but these features were rarely used and therefore buggy. The :" "meth:`tolist` method and the :attr:`start`, :attr:`stop`, and :attr:`step` " "attributes are also being deprecated. At the C level, the fourth argument " -"to the :c:func:`PyRange_New` function, ``repeat``, has also been deprecated." +"to the :c:func:`!PyRange_New` function, ``repeat``, has also been deprecated." msgstr "" "Algunas características del objeto retornado por la función :func:`xrange` " "están ahora obsoletas, y provocan advertencias cuando se accede a ellas; " @@ -2348,3 +2353,6 @@ msgstr "" "Mathewson, Paul Moore, Gustavo Niemeyer, Don O'Donnell, Joonas Paalasma, Tim " "Peters, Jens Quade, Tom Reinhardt, Neil Schemenauer, Guido van Rossum, Greg " "Ward, Edward Welbourne." + +#~ msgid ":c:func:`PyObject_GC_Fini` to :c:func:`PyObject_GC_UnTrack`." +#~ msgstr ":c:func:`PyObject_GC_Fini` a :c:func:`PyObject_GC_UnTrack`." diff --git a/whatsnew/2.3.po b/whatsnew/2.3.po index e7ba3e57e5..6b8b072ffa 100644 --- a/whatsnew/2.3.po +++ b/whatsnew/2.3.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-09-25 10:30+0100\n" "Last-Translator: Claudia Millan \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/whatsnew/2.3.rst:3 msgid "What's New in Python 2.3" @@ -329,12 +329,13 @@ msgstr "" "un tablero de ajedrez $NxN$ sin visitar ninguna casilla dos veces)." #: ../Doc/whatsnew/2.3.rst:220 +#, fuzzy msgid "" "The idea of generators comes from other programming languages, especially " -"Icon (https://www.cs.arizona.edu/icon/), where the idea of generators is " +"Icon (https://www2.cs.arizona.edu/icon/), where the idea of generators is " "central. In Icon, every expression and function call behaves like a " "generator. One example from \"An Overview of the Icon Programming " -"Language\" at https://www.cs.arizona.edu/icon/docs/ipd266.htm gives an idea " +"Language\" at https://www2.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, " @@ -1133,12 +1134,13 @@ msgstr "" "lista." #: ../Doc/whatsnew/2.3.rst:729 +#, fuzzy msgid "" "Importer objects must have a single method, ``find_module(fullname, " "path=None)``. *fullname* will be a module or package name, e.g. ``string`` " -"or ``distutils.core``. :meth:`find_module` must return a loader object that " -"has a single method, ``load_module(fullname)``, that creates and returns the " -"corresponding module object." +"or ``distutils.core``. :meth:`!find_module` must return a loader object " +"that 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 " @@ -2112,9 +2114,10 @@ msgid "(Contributed by Kevin O'Connor.)" msgstr "(Contribución de Kevin O'Connor.)" #: ../Doc/whatsnew/2.3.rst:1334 +#, fuzzy msgid "" "The IDLE integrated development environment has been updated using the code " -"from the IDLEfork project (http://idlefork.sourceforge.net). The most " +"from the IDLEfork project (https://idlefork.sourceforge.net). The most " "notable feature is that the code being developed is now executed in a " "subprocess, meaning that there's no longer any need for manual ``reload()`` " "operations. IDLE's core code has been incorporated into the standard library " @@ -2415,8 +2418,9 @@ msgstr "" "Secure Sockets Layer (SSL)." #: ../Doc/whatsnew/2.3.rst:1477 +#, fuzzy msgid "" -"The value of the C :const:`PYTHON_API_VERSION` macro is now exposed at the " +"The value of the C :c:macro:`PYTHON_API_VERSION` macro is now exposed at the " "Python level as ``sys.api_version``. The current exception can be cleared " "by calling the new :func:`sys.exc_clear` function." msgstr "" @@ -2982,9 +2986,10 @@ msgstr "" "`PyObject_Realloc` y :c:func:`PyObject_Free`." #: ../Doc/whatsnew/2.3.rst:1849 +#, fuzzy msgid "" -"To allocate and free Python objects, use the \"object\" family :c:func:" -"`PyObject_New`, :c:func:`PyObject_NewVar`, and :c:func:`PyObject_Del`." +"To allocate and free Python objects, use the \"object\" family :c:macro:" +"`PyObject_New`, :c:macro:`PyObject_NewVar`, and :c:func:`PyObject_Del`." msgstr "" "Para asignar y liberar objetos de Python, utilice la familia de \"objetos\" :" "c:func:`PyObject_New`, :c:func:`PyObject_NewVar` y :c:func:`PyObject_Del`." @@ -3067,11 +3072,13 @@ msgstr "" "Palkovsky.)" #: ../Doc/whatsnew/2.3.rst:1889 +#, fuzzy 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." +"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 "" "Las macros :c:macro:`DL_EXPORT` y :c:macro:`DL_IMPORT` ahora están en " "desuso. Las funciones de inicialización para los módulos de extensión de " @@ -3096,14 +3103,15 @@ msgstr "" "Niemeyer.)" #: ../Doc/whatsnew/2.3.rst:1900 +#, fuzzy msgid "" -"The :c:func:`PyArg_NoArgs` macro is now deprecated, and code that uses it " +"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 " +"can specify the :c:macro:`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`." +"using :c:macro:`METH_NOARGS`." msgstr "" "La macro :c:func:`PyArg_NoArgs` ahora está en desuso y el código que la usa " "debe cambiarse. Para Python 2.2 y versiones posteriores, la tabla de " @@ -3147,10 +3155,11 @@ msgstr "" "según una medición)." #: ../Doc/whatsnew/2.3.rst:1920 +#, fuzzy 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." +"by setting either the :c:macro:`METH_CLASS` or :c:macro:`METH_STATIC` flags " +"in a method's :c:type:`PyMethodDef` structure." msgstr "" "Ahora es posible definir métodos estáticos y de clase para un tipo de " "extensión C configurando los indicadores :const:`METH_CLASS` o :const:" @@ -3501,3 +3510,12 @@ msgstr "" "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." + +#: ../Doc/whatsnew/2.3.rst:371 +#, fuzzy +msgid "universal newlines" +msgstr "PEP 278: Soporte universal de nuevas líneas" + +#: ../Doc/whatsnew/2.3.rst:371 +msgid "What's new" +msgstr "" diff --git a/whatsnew/2.4.po b/whatsnew/2.4.po index f2543a9ed3..4b89087edf 100644 --- a/whatsnew/2.4.po +++ b/whatsnew/2.4.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 2.4\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-10-28 11:57+0200\n" "Last-Translator: \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/whatsnew/2.4.rst:3 msgid "What's New in Python 2.4" @@ -1199,9 +1199,10 @@ msgstr "" "`double` en una cadena ASCII." #: ../Doc/whatsnew/2.4.rst:758 +#, fuzzy msgid "" -"The code for these functions came from the GLib library (https://developer." -"gnome.org/glib/stable/), whose developers kindly relicensed the relevant " +"The code for these functions came from the GLib library (https://developer-" +"old.gnome.org/glib/2.26/), whose developers kindly relicensed the relevant " "functions and donated them to the Python Software Foundation. The :mod:" "`locale` module can now change the numeric locale, letting extensions such " "as GTK+ produce the correct results." @@ -2416,9 +2417,10 @@ msgstr "" "*X* es un NaN. (Aportado por Tim Peters.)" #: ../Doc/whatsnew/2.4.rst:1470 +#, fuzzy msgid "" -"C code can avoid unnecessary locking by using the new :c:func:" -"`PyEval_ThreadsInitialized` function to tell if any thread operations have " +"C code can avoid unnecessary locking by using the new :c:func:`!" +"PyEval_ThreadsInitialized` function to tell if any thread operations have " "been performed. If this function returns false, no lock operations are " "needed. (Contributed by Nick Coghlan.)" msgstr "" @@ -2438,8 +2440,9 @@ msgstr "" "de varios argumentos. (Contribuido por Greg Chapman.)" #: ../Doc/whatsnew/2.4.rst:1479 +#, fuzzy msgid "" -"A new method flag, :const:`METH_COEXISTS`, allows a function defined in " +"A new method flag, :c:macro:`METH_COEXIST`, allows a function defined in " "slots to co-exist with a :c:type:`PyCFunction` having the same name. This " "can halve the access time for a method such as :meth:`set.__contains__`. " "(Contributed by Raymond Hettinger.)" @@ -2473,8 +2476,9 @@ msgstr "" "llama a ese registro\" el registro TSC \". (Contribuido por Jeremy Hylton.)" #: ../Doc/whatsnew/2.4.rst:1494 +#, fuzzy msgid "" -"The :c:type:`tracebackobject` type has been renamed to :c:type:" +"The :c:type:`!tracebackobject` type has been renamed to :c:type:" "`PyTracebackObject`." msgstr "" "El tipo :c:type:`tracebackobject` ha sido renombrado a :c:type:" @@ -2612,3 +2616,11 @@ msgstr "" "correcciones y ayuda con varios borradores de este artículo: Koray Can, Hye-" "Shik Chang, Michael Dyck, Raymond Hettinger, Brian Hurt, Hamish Lawson, " "Fredrik Lundh, Sean Reifschneider, Sadruddin Rejeb." + +#: ../Doc/whatsnew/2.4.rst:414 +msgid "universal newlines" +msgstr "" + +#: ../Doc/whatsnew/2.4.rst:414 +msgid "What's new" +msgstr "" diff --git a/whatsnew/2.5.po b/whatsnew/2.5.po index b91a9848cf..b650afc970 100644 --- a/whatsnew/2.5.po +++ b/whatsnew/2.5.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-11-24 11:54+0100\n" "Last-Translator: Claudia Millan \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/whatsnew/2.5.rst:3 msgid "What's New in Python 2.5" @@ -1612,11 +1611,12 @@ msgstr "" "`TypeError` si no se cumple este requisito." #: ../Doc/whatsnew/2.5.rst:957 +#, fuzzy msgid "" -"A corresponding :attr:`nb_index` slot was added to the C-level :c:type:" -"`PyNumberMethods` structure to let C extensions implement this protocol. " -"``PyNumber_Index(obj)`` can be used in extension code to call the :meth:" -"`__index__` function and retrieve its result." +"A corresponding :c:member:`~PyNumberMethods.nb_index` slot was added to the " +"C-level :c:type:`PyNumberMethods` structure to let C extensions implement " +"this protocol. ``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 " @@ -2502,10 +2502,11 @@ msgstr "" "precisión)" #: ../Doc/whatsnew/2.5.rst:1451 +#, fuzzy msgid "" -"Constants named :attr:`os.SEEK_SET`, :attr:`os.SEEK_CUR`, and :attr:`os." +"Constants named :const:`os.SEEK_SET`, :const:`os.SEEK_CUR`, and :const:`os." "SEEK_END` have been added; these are the parameters to the :func:`os.lseek` " -"function. Two new constants for locking are :attr:`os.O_SHLOCK` and :attr:" +"function. Two new constants for locking are :const:`os.O_SHLOCK` and :const:" "`os.O_EXLOCK`." msgstr "" "Se han añadido las constantes :attr:`os.SEEK_SET`, :attr:`os.SEEK_CUR` y :" @@ -2845,10 +2846,11 @@ msgstr "" "threading y OS/2 lo hacen. (Contribución de Andrew MacIntyre)" #: ../Doc/whatsnew/2.5.rst:1603 +#, fuzzy msgid "" "The :mod:`unicodedata` module has been updated to use version 4.1.0 of the " "Unicode character database. Version 3.2.0 is required by some " -"specifications, so it's still available as :attr:`unicodedata.ucd_3_2_0`." +"specifications, so it's still available as :data:`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 " @@ -3664,16 +3666,17 @@ msgstr "" "parámetro *flags*::" #: ../Doc/whatsnew/2.5.rst:2117 +#, fuzzy msgid "" "No official documentation has been written for the AST code yet, but :pep:" "`339` discusses the design. To start learning about the code, read the " "definition of the various AST nodes in :file:`Parser/Python.asdl`. A Python " "script reads this file and generates a set of C structure definitions in :" "file:`Include/Python-ast.h`. The :c:func:`PyParser_ASTFromString` and :c:" -"func:`PyParser_ASTFromFile`, defined in :file:`Include/pythonrun.h`, take " +"func:`!PyParser_ASTFromFile`, defined in :file:`Include/pythonrun.h`, take " "Python source as input and return the root of an AST representing the " -"contents. This AST can then be turned into a code object by :c:func:" -"`PyAST_Compile`. For more information, read the source code, and then ask " +"contents. This AST can then be turned into a code object by :c:func:`!" +"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, " @@ -3740,14 +3743,15 @@ msgstr "" "objetos de Python." #: ../Doc/whatsnew/2.5.rst:2152 +#, fuzzy msgid "" "Previously these different families all reduced to the platform's :c:func:" "`malloc` and :c:func:`free` functions. This meant it didn't matter if you " -"got things wrong and allocated memory with the :c:func:`PyMem` function but " -"freed it with the :c:func:`PyObject` function. With 2.5's changes to " -"obmalloc, these families now do different things and mismatches will " -"probably result in a segfault. You should carefully test your C extension " -"modules with Python 2.5." +"got things wrong and allocated memory with the ``PyMem`` function but freed " +"it with the ``PyObject`` function. With 2.5's changes to obmalloc, these " +"families now do different things and mismatches will 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 " @@ -3786,17 +3790,18 @@ msgstr "" "Warsaw.)" #: ../Doc/whatsnew/2.5.rst:2170 +#, fuzzy msgid "" "Two new macros can be used to indicate C functions that are local to the " "current file so that a faster calling convention can be used. " "``Py_LOCAL(type)`` declares the function as returning a value of the " "specified *type* and uses a fast-calling qualifier. " "``Py_LOCAL_INLINE(type)`` does the same thing and also requests the function " -"be inlined. If :c:func:`PY_LOCAL_AGGRESSIVE` is defined before :file:" -"`python.h` is included, a set of more aggressive optimizations are enabled " -"for the module; you should benchmark the results to find out if these " -"optimizations actually make the code faster. (Contributed by Fredrik Lundh " -"at the NeedForSpeed sprint.)" +"be inlined. If macro :c:macro:`!PY_LOCAL_AGGRESSIVE` is defined before :" +"file:`python.h` is included, a set of more aggressive optimizations are " +"enabled for the module; you should benchmark the results to find out if " +"these 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 " @@ -3818,8 +3823,9 @@ msgstr "" "clases base como su argumento *base*. (Contribuido por Georg Brandl.)" #: ../Doc/whatsnew/2.5.rst:2184 +#, fuzzy msgid "" -"The :c:func:`PyErr_Warn` function for issuing warnings is now deprecated in " +"The :c:func:`!PyErr_Warn` function for issuing warnings is now deprecated in " "favour of ``PyErr_WarnEx(category, message, stacklevel)`` which lets you " "specify the number of stack frames separating this function and the caller. " "A *stacklevel* of 1 is the function calling :c:func:`PyErr_WarnEx`, 2 is the " @@ -3843,8 +3849,9 @@ msgstr "" "por Anthony Baxter, Martin von Löwis, Skip Montanaro)" #: ../Doc/whatsnew/2.5.rst:2194 +#, fuzzy msgid "" -"The :c:func:`PyRange_New` function was removed. It was never documented, " +"The :c:func:`!PyRange_New` function was removed. It was never documented, " "never used in the core code, and had dangerously lax error checking. In the " "unlikely case that your extensions were using it, you can replace it by " "something like the following::" @@ -4031,3 +4038,11 @@ msgstr "" "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." + +#: ../Doc/whatsnew/2.5.rst:1342 +msgid "universal newlines" +msgstr "" + +#: ../Doc/whatsnew/2.5.rst:1342 +msgid "What's new" +msgstr "" diff --git a/whatsnew/2.6.po b/whatsnew/2.6.po index e663516770..d3561887b2 100644 --- a/whatsnew/2.6.po +++ b/whatsnew/2.6.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-09-27 14:39-0300\n" "Last-Translator: \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/whatsnew/2.6.rst:5 msgid "What's New in Python 2.6" @@ -185,8 +185,9 @@ msgstr "" "para el código de extensión C como :c:data:`Py_Py3kWarningFlag`." #: ../Doc/whatsnew/2.6.rst:128 +#, fuzzy msgid "" -"The 3xxx series of PEPs, which contains proposals for Python 3.0. :pep:" +"The 3\\ *xxx* series of PEPs, which contains proposals for Python 3.0. :pep:" "`3000` describes the development process for Python 3.0. Start with :pep:" "`3100` that describes the general goals for Python 3.0, and then explore the " "higher-numbered PEPS that propose specific features." @@ -271,9 +272,10 @@ msgstr "" "error/parche para cada cambio." #: ../Doc/whatsnew/2.6.rst:174 +#, fuzzy msgid "" "Hosting of the Python bug tracker is kindly provided by `Upfront Systems " -"`__ of Stellenbosch, South Africa. Martin " +"`__ of Stellenbosch, South Africa. Martin " "von Löwis put a lot of effort into importing existing bugs and patches from " "SourceForge; his scripts for this import operation are at ``https://svn." "python.org/view/tracker/importer/`` and may be useful to other projects " @@ -1498,9 +1500,10 @@ msgstr "" "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`. " +"called :c:type:`!PyStringObject` in Python 2.x, to :c:type:`PyBytesObject`. " "Python 2.6 uses ``#define`` to support using the names :c:func:" "`PyBytesObject`, :c:func:`PyBytes_Check`, :c:func:" "`PyBytes_FromStringAndSize`, and all the other functions and macros used " @@ -1770,19 +1773,22 @@ msgstr "" "restricciones de la memoria devuelta. Algunos ejemplos son:" #: ../Doc/whatsnew/2.6.rst:1141 -msgid ":const:`PyBUF_WRITABLE` indicates that the memory must be writable." +#, fuzzy +msgid ":c:macro:`PyBUF_WRITABLE` indicates that the memory must be writable." 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." +":c:macro:`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-" +":c:macro:`PyBUF_C_CONTIGUOUS` and :c:macro:`PyBUF_F_CONTIGUOUS` requests a C-" "contiguous (last dimension varies the fastest) or Fortran-contiguous (first " "dimension varies the fastest) array layout." msgstr "" @@ -2183,9 +2189,11 @@ msgstr "" "html_node/Numerical-Tower.html#Numerical-Tower>`__, del manual de Guile." #: ../Doc/whatsnew/2.6.rst:1436 +#, fuzzy msgid "" -"`Scheme's number datatypes `__ from the R5RS Scheme specification." +"`Scheme's number datatypes `__ from the R5RS " +"Scheme specification." msgstr "" "`Scheme's number datatypes `__ de la especificación del esquema R5RS." @@ -2914,11 +2922,11 @@ msgstr "" "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::" +"A new data type in the :mod:`collections` module: ``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 " @@ -2926,9 +2934,10 @@ msgstr "" "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:" +"modified to return :func:`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 "" @@ -3653,9 +3662,10 @@ msgstr "" "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 " +"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 " "added to the existing :class:`poll` objects; ``pollobj.modify(fd, " "eventmask)`` takes a file descriptor or file object and an event mask, " "modifying the recorded event mask for that file. (Contributed by Christian " @@ -3723,12 +3733,13 @@ msgstr "" "`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 :" "func:`set_wakeup_fd`, and the readable descriptor will be added to the list " -"of descriptors monitored by the event loop via :c:func:`select` or :c:func:" -"`poll`. On receiving a signal, a byte will be written and the main event " +"of descriptors monitored by the event loop via :c:func:`!select` or :c:func:" +"`!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 " @@ -3807,9 +3818,10 @@ msgstr "" "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 " +"The :mod:`socket` module now supports TIPC (https://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 "" @@ -4792,10 +4804,12 @@ msgstr "" "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." +"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 " @@ -4849,16 +4863,17 @@ msgstr "" "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 " "occurred if one thread closed a file object while another thread was reading " "from or writing to the object. In 2.6 file objects have a reference count, " -"manipulated by the :c:func:`PyFile_IncUseCount` and :c:func:" -"`PyFile_DecUseCount` functions. File objects can't be closed unless the " -"reference count is zero. :c:func:`PyFile_IncUseCount` should be called " +"manipulated by the :c:func:`!PyFile_IncUseCount` and :c:func:`!" +"PyFile_DecUseCount` functions. File objects can't be closed unless the " +"reference count is zero. :c:func:`!PyFile_IncUseCount` should be called " "while the GIL is still held, before carrying out an I/O operation using the " -"``FILE *`` pointer, and :c:func:`PyFile_DecUseCount` should be called " +"``FILE *`` pointer, and :c:func:`!PyFile_DecUseCount` should be called " "immediately after the GIL is re-acquired. (Contributed by Antoine Pitrou and " "Gregory P. Smith.)" msgstr "" @@ -4951,12 +4966,13 @@ msgstr "" "(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:" -"`Py_SIZE()`, :c:macro:`Py_Type()` became :c:macro:`Py_TYPE()`, and :c:macro:" -"`Py_Refcnt()` became :c:macro:`Py_REFCNT()`. The mixed-case macros are still " -"available in Python 2.6 for backward compatibility. (:issue:`1629`)" +"are macros, not functions. :c:macro:`!Py_Size()` became :c:macro:" +"`Py_SIZE()`, :c:macro:`!Py_Type()` became :c:macro:`Py_TYPE()`, and :c:macro:" +"`!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 " @@ -5359,3 +5375,11 @@ msgstr "" "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." + +#: ../Doc/whatsnew/2.6.rst:1072 +msgid "universal newlines" +msgstr "" + +#: ../Doc/whatsnew/2.6.rst:1072 +msgid "What's new" +msgstr "" diff --git a/whatsnew/2.7.po b/whatsnew/2.7.po index cdce3c792e..a02976dfc6 100644 --- a/whatsnew/2.7.po +++ b/whatsnew/2.7.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-10-19 15:09-0300\n" "Last-Translator: Claudia Millan \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/whatsnew/2.7.rst:3 msgid "What's New in Python 2.7" @@ -622,10 +622,11 @@ msgstr "" "agregó como un reemplazo más potente para el módulo :mod:`optparse`." #: ../Doc/whatsnew/2.7.rst:355 +#, fuzzy msgid "" "This means Python now supports three different modules for parsing command-" "line arguments: :mod:`getopt`, :mod:`optparse`, and :mod:`argparse`. The :" -"mod:`getopt` module closely resembles the C library's :c:func:`getopt` " +"mod:`getopt` module closely resembles the C library's :c:func:`!getopt` " "function, so it remains useful if you're writing a Python prototype that " "will eventually be rewritten in C. :mod:`optparse` becomes redundant, but " "there are no plans to remove it because there are many scripts still using " @@ -1262,7 +1263,7 @@ msgstr "" "decorada como su atributo :attr:`__func__`. (Contribuido por Amaury Forgeot " "d'Arc, después de una sugerencia de George Sakkis; :issue:`5982`.)" -#: ../Doc/whatsnew/2.7.rst:867 ../Doc/whatsnew/2.7.rst:2462 +#: ../Doc/whatsnew/2.7.rst:867 ../Doc/whatsnew/2.7.rst:2463 msgid "" "When a restricted set of attributes were set using ``__slots__``, deleting " "an unset attribute would not raise :exc:`AttributeError` as you would " @@ -2128,11 +2129,11 @@ msgstr "" "diccionario que asigna los nombres de los argumentos a sus valores. Por " "ejemplo::" -#: ../Doc/whatsnew/2.7.rst:1343 +#: ../Doc/whatsnew/2.7.rst:1344 msgid "Contributed by George Sakkis; :issue:`3135`." msgstr "Contribución de George Sakkis; :issue:`3135`." -#: ../Doc/whatsnew/2.7.rst:1345 +#: ../Doc/whatsnew/2.7.rst:1346 msgid "" "Updated module: The :mod:`io` library has been upgraded to the version " "shipped with Python 3.1. For 3.1, the I/O library was entirely rewritten in " @@ -2145,7 +2146,7 @@ msgstr "" "la tarea que se realice. La versión original de Python fue renombrada como " "módulo :mod:`_pyio`." -#: ../Doc/whatsnew/2.7.rst:1350 +#: ../Doc/whatsnew/2.7.rst:1351 msgid "" "One minor resulting change: the :class:`io.TextIOBase` class now has an :" "attr:`errors` attribute giving the error setting used for encoding and " @@ -2156,7 +2157,7 @@ msgstr "" "errores de codificación y decodificación (uno de ``’strict’``, " "``’replace’``, ``'ignore'``)." -#: ../Doc/whatsnew/2.7.rst:1355 +#: ../Doc/whatsnew/2.7.rst:1356 msgid "" "The :class:`io.FileIO` class now raises an :exc:`OSError` when passed an " "invalid file descriptor. (Implemented by Benjamin Peterson; :issue:" @@ -2170,7 +2171,7 @@ msgstr "" "posición del archivo; antes cambiaba la posición del archivo al final del " "nuevo archivo. (Corregido por Pascal Chambon; :issue:`6939`.)" -#: ../Doc/whatsnew/2.7.rst:1361 +#: ../Doc/whatsnew/2.7.rst:1362 msgid "" "New function: ``itertools.compress(data, selectors)`` takes two iterators. " "Elements of *data* are returned if the corresponding value in *selectors* is " @@ -2180,7 +2181,7 @@ msgstr "" "Los elementos de *datos* se retornan si el valor correspondiente en " "*selectores* es verdadero::" -#: ../Doc/whatsnew/2.7.rst:1370 +#: ../Doc/whatsnew/2.7.rst:1371 msgid "" "New function: ``itertools.combinations_with_replacement(iter, r)`` returns " "all the possible *r*-length combinations of elements from the iterable " @@ -2192,7 +2193,7 @@ msgstr "" "*iter*. A diferencia de :func:`~itertools.combinations`, los elementos " "individuales pueden repetirse en las combinaciones generadas::" -#: ../Doc/whatsnew/2.7.rst:1379 +#: ../Doc/whatsnew/2.7.rst:1380 msgid "" "Note that elements are treated as unique depending on their position in the " "input, not their actual values." @@ -2200,7 +2201,7 @@ msgstr "" "Tenga en cuenta que los elementos se tratan como únicos en función de su " "posición en la entrada, no de sus valores reales." -#: ../Doc/whatsnew/2.7.rst:1382 +#: ../Doc/whatsnew/2.7.rst:1383 msgid "" "The :func:`itertools.count` function now has a *step* argument that allows " "incrementing by values other than 1. :func:`~itertools.count` also now " @@ -2214,7 +2215,7 @@ msgstr "" "enteros como números de punto flotante o instancias de :class:`~decimal." "Decimal`. (Implementado por Raymond Hettinger; :issue:`5032`.)" -#: ../Doc/whatsnew/2.7.rst:1388 +#: ../Doc/whatsnew/2.7.rst:1389 msgid "" ":func:`itertools.combinations` and :func:`itertools.product` previously " "raised :exc:`ValueError` for values of *r* larger than the input iterable. " @@ -2227,7 +2228,7 @@ msgstr "" "retornan un iterador vacío. (Corregido por Raymond Hettinger; :issue:" "`4816`.)" -#: ../Doc/whatsnew/2.7.rst:1393 +#: ../Doc/whatsnew/2.7.rst:1394 msgid "" "Updated module: The :mod:`json` module was upgraded to version 2.0.9 of the " "simplejson package, which includes a C extension that makes encoding and " @@ -2238,7 +2239,7 @@ msgstr "" "rápida la codificación y decodificación. (Contribuido por Bob Ippolito; :" "issue:`4136`.)" -#: ../Doc/whatsnew/2.7.rst:1398 +#: ../Doc/whatsnew/2.7.rst:1399 msgid "" "To support the new :class:`collections.OrderedDict` type, :func:`json.load` " "now has an optional *object_pairs_hook* parameter that will be called with " @@ -2250,7 +2251,7 @@ msgstr "" "con cualquier objeto literal que decodifique a una lista de pares. " "(Contribución de Raymond Hettinger; :issue:`5381`.)" -#: ../Doc/whatsnew/2.7.rst:1403 +#: ../Doc/whatsnew/2.7.rst:1404 msgid "" "The :mod:`mailbox` module's :class:`~mailbox.Maildir` class now records the " "timestamp on the directories it reads, and only re-reads them if the " @@ -2264,7 +2265,7 @@ msgstr "" "evitar escaneos innecesarios de directorios. (Corregido por A.M. Kuchling y " "Antoine Pitrou; :issue:`1607951`, :issue:`6896`)" -#: ../Doc/whatsnew/2.7.rst:1409 +#: ../Doc/whatsnew/2.7.rst:1410 msgid "" "New functions: the :mod:`math` module gained :func:`~math.erf` and :func:" "`~math.erfc` for the error function and the complementary error function, :" @@ -2281,7 +2282,7 @@ msgstr "" "func:`~math.lgamma` para el logaritmo natural de la función Gamma. " "(Contribución de Mark Dickinson y nirinA raseliarison; :issue:`3366`.)" -#: ../Doc/whatsnew/2.7.rst:1417 +#: ../Doc/whatsnew/2.7.rst:1418 msgid "" "The :mod:`multiprocessing` module's :class:`Manager*` classes can now be " "passed a callable that will be called whenever a subprocess is started, " @@ -2293,7 +2294,7 @@ msgstr "" "subproceso, junto con un conjunto de argumentos que se pasarán a la llamada. " "(Contribuido por lekma; :issue:`5585`.)" -#: ../Doc/whatsnew/2.7.rst:1423 +#: ../Doc/whatsnew/2.7.rst:1424 msgid "" "The :class:`~multiprocessing.Pool` class, which controls a pool of worker " "processes, now has an optional *maxtasksperchild* parameter. Worker " @@ -2310,7 +2311,7 @@ msgstr "" "recursos, o si algunas tareas harán que el trabajador se vuelva muy grande. " "(Contribuido por Charles Cazabon; :issue:`6963`.)" -#: ../Doc/whatsnew/2.7.rst:1431 +#: ../Doc/whatsnew/2.7.rst:1432 msgid "" "The :mod:`nntplib` module now supports IPv6 addresses. (Contributed by Derek " "Morr; :issue:`1664`.)" @@ -2318,7 +2319,7 @@ msgstr "" "El módulo :mod:`nntplib` ahora soporta direcciones IPv6. (Contribución de " "Derek Morr; :issue:`1664`.)" -#: ../Doc/whatsnew/2.7.rst:1434 +#: ../Doc/whatsnew/2.7.rst:1435 msgid "" "New functions: the :mod:`os` module wraps the following POSIX system calls: :" "func:`~os.getresgid` and :func:`~os.getresuid`, which return the real, " @@ -2337,7 +2338,7 @@ msgstr "" "por Travis H.; :issue:`6508`. Soporte para initgroups añadido por Jean-Paul " "Calderone; :issue:`7333`)" -#: ../Doc/whatsnew/2.7.rst:1444 +#: ../Doc/whatsnew/2.7.rst:1445 msgid "" "The :func:`os.fork` function now re-initializes the import lock in the child " "process; this fixes problems on Solaris when :func:`~os.fork` is called from " @@ -2347,7 +2348,7 @@ msgstr "" "el proceso hijo; esto soluciona los problemas en Solaris cuando :func:`~os." "fork` se llama desde un hilo. (Corregido por Zsolt Cserna; :issue:`7242`.)" -#: ../Doc/whatsnew/2.7.rst:1448 +#: ../Doc/whatsnew/2.7.rst:1449 msgid "" "In the :mod:`os.path` module, the :func:`~os.path.normpath` and :func:`~os." "path.abspath` functions now preserve Unicode; if their input path is a " @@ -2361,7 +2362,7 @@ msgstr "" "`~os.path.normpath` arreglado por Matt Giuca en :issue:`5827`; :meth:`~os." "path.abspath` arreglado por Ezio Melotti en :issue:`3426`)" -#: ../Doc/whatsnew/2.7.rst:1454 +#: ../Doc/whatsnew/2.7.rst:1455 msgid "" "The :mod:`pydoc` module now has help for the various symbols that Python " "uses. You can now do ``help('<<')`` or ``help('@')``, for example. " @@ -2371,7 +2372,7 @@ msgstr "" "utiliza Python. Ahora puedes hacer ``help('<<')`` o ``help('@')``, por " "ejemplo. (Contribución de David Laban; :issue:`4739`.)" -#: ../Doc/whatsnew/2.7.rst:1458 +#: ../Doc/whatsnew/2.7.rst:1459 msgid "" "The :mod:`re` module's :func:`~re.split`, :func:`~re.sub`, and :func:`~re." "subn` now accept an optional *flags* argument, for consistency with the " @@ -2381,7 +2382,7 @@ msgstr "" "func:`~re.subn` aceptan ahora un argumento opcional *flags*, por coherencia " "con las demás funciones del módulo. (Añadido por Gregory P. Smith)" -#: ../Doc/whatsnew/2.7.rst:1462 +#: ../Doc/whatsnew/2.7.rst:1463 msgid "" "New function: :func:`~runpy.run_path` in the :mod:`runpy` module will " "execute the code at a provided *path* argument. *path* can be the path of a " @@ -2408,7 +2409,7 @@ msgstr "" "en que la línea de comandos de Python procesa un nombre de ruta explícito. " "(Añadido por Nick Coghlan; :issue:`6816`.)" -#: ../Doc/whatsnew/2.7.rst:1476 +#: ../Doc/whatsnew/2.7.rst:1477 msgid "" "New function: in the :mod:`shutil` module, :func:`~shutil.make_archive` " "takes a filename, archive type (zip or tar-format), and a directory path, " @@ -2420,7 +2421,7 @@ msgstr "" "directorio, y crea un archivo con el contenido del directorio. (Añadido por " "Tarek Ziadé.)" -#: ../Doc/whatsnew/2.7.rst:1481 +#: ../Doc/whatsnew/2.7.rst:1482 msgid "" ":mod:`shutil`'s :func:`~shutil.copyfile` and :func:`~shutil.copytree` " "functions now raise a :exc:`~shutil.SpecialFileError` exception when asked " @@ -2435,7 +2436,7 @@ msgstr "" "lectura, lo que bloqueaba indefinidamente. (Corregido por Antoine Pitrou; :" "issue:`3002`.)" -#: ../Doc/whatsnew/2.7.rst:1487 +#: ../Doc/whatsnew/2.7.rst:1488 msgid "" "The :mod:`signal` module no longer re-installs the signal handler unless " "this is truly necessary, which fixes a bug that could make it impossible to " @@ -2447,7 +2448,7 @@ msgstr "" "atrapar la señal EINTR de forma robusta. (Corregido por Charles-Francois " "Natali; :issue:`8354`.)" -#: ../Doc/whatsnew/2.7.rst:1492 +#: ../Doc/whatsnew/2.7.rst:1493 msgid "" "New functions: in the :mod:`site` module, three new functions return various " "site- and user-specific paths. :func:`~site.getsitepackages` returns a list " @@ -2466,7 +2467,7 @@ msgstr "" "dando la ruta a un directorio que puede ser utilizado para almacenar datos. " "(Contribuido por Tarek Ziadé; :issue:`6693`.)" -#: ../Doc/whatsnew/2.7.rst:1503 +#: ../Doc/whatsnew/2.7.rst:1504 msgid "" "The :mod:`site` module now reports exceptions occurring when the :mod:" "`sitecustomize` module is imported, and will no longer catch and swallow " @@ -2478,7 +2479,7 @@ msgstr "" "la excepción :exc:`KeyboardInterrupt`. (Corregido por Victor Stinner; :" "issue:`3137`.)" -#: ../Doc/whatsnew/2.7.rst:1508 +#: ../Doc/whatsnew/2.7.rst:1509 msgid "" "The :func:`~socket.create_connection` function gained a *source_address* " "parameter, a ``(host, port)`` 2-tuple giving the source address that will be " @@ -2489,7 +2490,7 @@ msgstr "" "origen que se utilizará para la conexión. (Contribuido por Eldon Ziegler; :" "issue:`3972`.)" -#: ../Doc/whatsnew/2.7.rst:1513 +#: ../Doc/whatsnew/2.7.rst:1514 msgid "" "The :meth:`~socket.socket.recv_into` and :meth:`~socket.socket." "recvfrom_into` methods will now write into objects that support the buffer " @@ -2501,7 +2502,7 @@ msgstr "" "útilmente los objetos :class:`bytearray` y :class:`memoryview`. " "(Implementado por Antoine Pitrou; :issue:`8104`.)" -#: ../Doc/whatsnew/2.7.rst:1518 +#: ../Doc/whatsnew/2.7.rst:1519 msgid "" "The :mod:`SocketServer` module's :class:`~SocketServer.TCPServer` class now " "supports socket timeouts and disabling the Nagle algorithm. The :attr:" @@ -2529,7 +2530,7 @@ msgstr "" "handle_request`. (Contribución de Kristján Valur Jónsson; :issue:`6192` y :" "issue:`6267`)" -#: ../Doc/whatsnew/2.7.rst:1530 +#: ../Doc/whatsnew/2.7.rst:1531 msgid "" "Updated module: the :mod:`sqlite3` module has been updated to version 2.6.0 " "of the `pysqlite package `__. Version " @@ -2548,7 +2549,7 @@ msgstr "" "para cargar una biblioteca compartida en particular. (Actualizado por " "Gerhard Häring.)" -#: ../Doc/whatsnew/2.7.rst:1537 +#: ../Doc/whatsnew/2.7.rst:1538 msgid "" "The :mod:`ssl` module's :class:`~ssl.SSLSocket` objects now support the " "buffer API, which fixed a test suite failure (fix by Antoine Pitrou; :issue:" @@ -2563,7 +2564,7 @@ msgstr "" "error de las operaciones :meth:`recv` que desencadenen una renegociación SSL " "(corregido por Antoine Pitrou; :issue:`8222`)." -#: ../Doc/whatsnew/2.7.rst:1544 +#: ../Doc/whatsnew/2.7.rst:1545 msgid "" "The :func:`ssl.wrap_socket` constructor function now takes a *ciphers* " "argument that's a string listing the encryption algorithms to be allowed; " @@ -2577,7 +2578,7 @@ msgstr "" "documentation `__. " "(Agregado por Antoine Pitrou; :issue:`8322`.)" -#: ../Doc/whatsnew/2.7.rst:1551 +#: ../Doc/whatsnew/2.7.rst:1552 msgid "" "Another change makes the extension load all of OpenSSL's ciphers and digest " "algorithms so that they're all available. Some SSL certificates couldn't be " @@ -2590,11 +2591,12 @@ msgstr "" "desconocido\". (Informado por Beda Kosata, y corregido por Antoine Pitrou; :" "issue:`8484`)" -#: ../Doc/whatsnew/2.7.rst:1557 +#: ../Doc/whatsnew/2.7.rst:1558 +#, fuzzy msgid "" "The version of OpenSSL being used is now available as the module attributes :" -"data:`ssl.OPENSSL_VERSION` (a string), :data:`ssl.OPENSSL_VERSION_INFO` (a 5-" -"tuple), and :data:`ssl.OPENSSL_VERSION_NUMBER` (an integer). (Added by " +"const:`ssl.OPENSSL_VERSION` (a string), :const:`ssl.OPENSSL_VERSION_INFO` (a " +"5-tuple), and :const:`ssl.OPENSSL_VERSION_NUMBER` (an integer). (Added by " "Antoine Pitrou; :issue:`8321`.)" msgstr "" "La versión de OpenSSL que se está utilizando está ahora disponible como los " @@ -2602,7 +2604,7 @@ msgstr "" "OPENSSL_VERSION_INFO` (una 5-tupla), y :data:`ssl.OPENSSL_VERSION_NUMBER` " "(un entero). (Añadido por Antoine Pitrou; :issue:`8321`.)" -#: ../Doc/whatsnew/2.7.rst:1563 +#: ../Doc/whatsnew/2.7.rst:1564 msgid "" "The :mod:`struct` module will no longer silently ignore overflow errors when " "a value is too large for a particular integer format code (one of " @@ -2621,7 +2623,7 @@ msgstr "" "método :meth:`__int__` o informar de un error. (Cambiado por Mark " "Dickinson; :issue:`8300`.)" -#: ../Doc/whatsnew/2.7.rst:1572 +#: ../Doc/whatsnew/2.7.rst:1573 msgid "" "New function: the :mod:`subprocess` module's :func:`~subprocess." "check_output` runs a command with a specified set of arguments and returns " @@ -2634,11 +2636,11 @@ msgstr "" "ejecuta sin errores, o lanza una excepción :exc:`~subprocess." "CalledProcessError` en caso contrario." -#: ../Doc/whatsnew/2.7.rst:1587 +#: ../Doc/whatsnew/2.7.rst:1588 msgid "(Contributed by Gregory P. Smith.)" msgstr "(Contribución de Gregory P. Smith.)" -#: ../Doc/whatsnew/2.7.rst:1589 +#: ../Doc/whatsnew/2.7.rst:1590 msgid "" "The :mod:`subprocess` module will now retry its internal system calls on " "receiving an :const:`EINTR` signal. (Reported by several people; final " @@ -2648,7 +2650,7 @@ msgstr "" "sistema al recibir una señal :const:`EINTR`. (Informado por varias " "personas; parche final de Gregory P. Smith en :issue:`1068268`)" -#: ../Doc/whatsnew/2.7.rst:1593 +#: ../Doc/whatsnew/2.7.rst:1594 msgid "" "New function: :func:`~symtable.Symbol.is_declared_global` in the :mod:" "`symtable` module returns true for variables that are explicitly declared to " @@ -2660,7 +2662,7 @@ msgstr "" "globales, false para las que son implícitamente globales. (Contribución de " "Jeremy Hylton)" -#: ../Doc/whatsnew/2.7.rst:1598 ../Doc/whatsnew/2.7.rst:2496 +#: ../Doc/whatsnew/2.7.rst:1599 ../Doc/whatsnew/2.7.rst:2497 msgid "" "The :mod:`syslog` module will now use the value of ``sys.argv[0]`` as the " "identifier instead of the previous default value of ``'python'``. (Changed " @@ -2670,7 +2672,7 @@ msgstr "" "identificador en lugar del anterior valor por defecto de ``'python``. " "(Cambiado por Sean Reifschneider; :issue:`8451`.)" -#: ../Doc/whatsnew/2.7.rst:1602 +#: ../Doc/whatsnew/2.7.rst:1603 msgid "" "The ``sys.version_info`` value is now a named tuple, with attributes named :" "attr:`major`, :attr:`minor`, :attr:`micro`, :attr:`releaselevel`, and :attr:" @@ -2681,7 +2683,7 @@ msgstr "" "`releaselevel`, y :attr:`serial`. (Contribución de Ross Light; :issue:" "`4285`.)" -#: ../Doc/whatsnew/2.7.rst:1607 +#: ../Doc/whatsnew/2.7.rst:1608 msgid "" ":func:`sys.getwindowsversion` also returns a named tuple, with attributes " "named :attr:`major`, :attr:`minor`, :attr:`build`, :attr:`platform`, :attr:" @@ -2695,7 +2697,7 @@ msgstr "" "`service_pack_minor`, :attr:`suite_mask`, y :attr:`product_type`. " "(Contribución de Brian Curtin; :issue:`7766`.)" -#: ../Doc/whatsnew/2.7.rst:1613 ../Doc/whatsnew/2.7.rst:2500 +#: ../Doc/whatsnew/2.7.rst:1614 ../Doc/whatsnew/2.7.rst:2501 msgid "" "The :mod:`tarfile` module's default error handling has changed, to no longer " "suppress fatal errors. The default error level was previously 0, which " @@ -2712,7 +2714,7 @@ msgstr "" "error por defecto es ahora 1, que lanza una excepción si hay un error. " "(Cambiado por Lars Gustäbel; :issue:`7357`.)" -#: ../Doc/whatsnew/2.7.rst:1621 +#: ../Doc/whatsnew/2.7.rst:1622 msgid "" ":mod:`tarfile` now supports filtering the :class:`~tarfile.TarInfo` objects " "being added to a tar file. When you call :meth:`~tarfile.TarFile.add`, you " @@ -2736,7 +2738,7 @@ msgstr "" "`~tarfile.TarFile` también soporta ahora el protocolo de gestión de " "contexto. (Añadido por Lars Gustäbel; :issue:`7232`.)" -#: ../Doc/whatsnew/2.7.rst:1633 +#: ../Doc/whatsnew/2.7.rst:1634 msgid "" "The :meth:`~threading.Event.wait` method of the :class:`threading.Event` " "class now returns the internal flag on exit. This means the method will " @@ -2752,7 +2754,7 @@ msgstr "" "retorno sólo será falso si se proporcionó un tiempo de espera y la operación " "expiró. (Contribuido por Tim Lesher; :issue:`1674032`.)" -#: ../Doc/whatsnew/2.7.rst:1640 +#: ../Doc/whatsnew/2.7.rst:1641 msgid "" "The Unicode database provided by the :mod:`unicodedata` module is now used " "internally to determine which characters are numeric, whitespace, or " @@ -2769,7 +2771,7 @@ msgstr "" "actualizado a la versión 5.2.0 (actualizado por Florent Xicluna; :issue:" "`8024`)." -#: ../Doc/whatsnew/2.7.rst:1648 ../Doc/whatsnew/2.7.rst:2508 +#: ../Doc/whatsnew/2.7.rst:1649 ../Doc/whatsnew/2.7.rst:2509 msgid "" "The :mod:`urlparse` module's :func:`~urlparse.urlsplit` now handles unknown " "URL schemes in a fashion compliant with :rfc:`3986`: if the URL is of the " @@ -2785,11 +2787,11 @@ msgstr "" "no conoce. Este cambio puede romper el código que funcionaba con el antiguo " "comportamiento. Por ejemplo, Python 2.6.4 o 2.5 retornará lo siguiente:" -#: ../Doc/whatsnew/2.7.rst:1663 ../Doc/whatsnew/2.7.rst:2523 +#: ../Doc/whatsnew/2.7.rst:1664 ../Doc/whatsnew/2.7.rst:2524 msgid "Python 2.7 (and Python 2.6.5) will return:" msgstr "Python 2.7 (y Python 2.6.5) retornará:" -#: ../Doc/whatsnew/2.7.rst:1672 ../Doc/whatsnew/2.7.rst:2532 +#: ../Doc/whatsnew/2.7.rst:1673 ../Doc/whatsnew/2.7.rst:2533 msgid "" "(Python 2.7 actually produces slightly different output, since it returns a " "named tuple instead of a standard tuple.)" @@ -2797,7 +2799,7 @@ msgstr "" "(Python 2.7 en realidad produce una salida ligeramente diferente, ya que " "retorna una tupla con nombre en lugar de una tupla estándar)" -#: ../Doc/whatsnew/2.7.rst:1675 +#: ../Doc/whatsnew/2.7.rst:1676 msgid "" "The :mod:`urlparse` module also supports IPv6 literal addresses as defined " "by :rfc:`2732` (contributed by Senthil Kumaran; :issue:`2987`)." @@ -2805,7 +2807,7 @@ msgstr "" "El módulo :mod:`urlparse` también soporta las direcciones literales IPv6 " "definidas por :rfc:`2732` (contribuido por Senthil Kumaran; :issue:`2987`)." -#: ../Doc/whatsnew/2.7.rst:1685 +#: ../Doc/whatsnew/2.7.rst:1686 msgid "" "New class: the :class:`~weakref.WeakSet` class in the :mod:`weakref` module " "is a set that only holds weak references to its elements; elements will be " @@ -2819,7 +2821,7 @@ msgstr "" "ellos. (Implementado originalmente en Python 3.x por Raymond Hettinger, y " "Portado a 2.7 por Michael Foord)" -#: ../Doc/whatsnew/2.7.rst:1691 ../Doc/whatsnew/2.7.rst:2486 +#: ../Doc/whatsnew/2.7.rst:1692 ../Doc/whatsnew/2.7.rst:2487 msgid "" "The ElementTree library, :mod:`xml.etree`, no longer escapes ampersands and " "angle brackets when outputting an XML processing instruction (which looks " @@ -2832,7 +2834,7 @@ msgstr "" "comentario (que tiene el aspecto de ````). (Parche de Neil " "Muller; :issue:`2746`.)" -#: ../Doc/whatsnew/2.7.rst:1697 +#: ../Doc/whatsnew/2.7.rst:1698 msgid "" "The XML-RPC client and server, provided by the :mod:`xmlrpclib` and :mod:" "`SimpleXMLRPCServer` modules, have improved performance by supporting " @@ -2851,7 +2853,7 @@ msgstr "" "más grandes que esto serán comprimidas. (Contribuido por Kristján Valur " "Jónsson; :issue:`6267`.)" -#: ../Doc/whatsnew/2.7.rst:1706 +#: ../Doc/whatsnew/2.7.rst:1707 msgid "" "The :mod:`zipfile` module's :class:`~zipfile.ZipFile` now supports the " "context management protocol, so you can write ``with zipfile.ZipFile(...) as " @@ -2861,7 +2863,7 @@ msgstr "" "protocolo de gestión de contexto, por lo que se puede escribir ``con zipfile." "ZipFile(...) como f:``. (Contribución de Brian Curtin; :issue:`5511`.)" -#: ../Doc/whatsnew/2.7.rst:1710 +#: ../Doc/whatsnew/2.7.rst:1711 msgid "" ":mod:`zipfile` now also supports archiving empty directories and extracts " "them correctly. (Fixed by Kuba Wieczorek; :issue:`4710`.) Reading files out " @@ -2875,7 +2877,7 @@ msgstr "" "`~zipfile.ZipFile.read` y :meth:`~zipfile.ZipFile.readline` ahora funciona " "correctamente. (Contribución de Nir Aides; :issue:`7610`.)" -#: ../Doc/whatsnew/2.7.rst:1716 +#: ../Doc/whatsnew/2.7.rst:1717 msgid "" "The :func:`~zipfile.is_zipfile` function now accepts a file object, in " "addition to the path names accepted in earlier versions. (Contributed by " @@ -2885,7 +2887,7 @@ msgstr "" "además de los nombres de ruta aceptados en versiones anteriores. " "(Contribución de Gabriel Genellina; :issue:`4756`.)" -#: ../Doc/whatsnew/2.7.rst:1720 +#: ../Doc/whatsnew/2.7.rst:1721 msgid "" "The :meth:`~zipfile.ZipFile.writestr` method now has an optional " "*compress_type* parameter that lets you override the default compression " @@ -2897,11 +2899,11 @@ msgstr "" "defecto especificado en el constructor :class:`~archivo.ZipFile`. " "(Contribución de Ronald Oussoren; :issue:`6003`.)" -#: ../Doc/whatsnew/2.7.rst:1733 +#: ../Doc/whatsnew/2.7.rst:1734 msgid "New module: importlib" msgstr "Nuevo módulo: importlib" -#: ../Doc/whatsnew/2.7.rst:1735 +#: ../Doc/whatsnew/2.7.rst:1736 msgid "" "Python 3.1 includes the :mod:`importlib` package, a re-implementation of the " "logic underlying Python's :keyword:`import` statement. :mod:`importlib` is " @@ -2919,7 +2921,7 @@ msgstr "" "`importlib` completo, sino que tiene un pequeño subconjunto que contiene una " "única función, :func:`~importlib.import_module`." -#: ../Doc/whatsnew/2.7.rst:1743 +#: ../Doc/whatsnew/2.7.rst:1744 msgid "" "``import_module(name, package=None)`` imports a module. *name* is a string " "containing the module or package's name. It's possible to do relative " @@ -2938,11 +2940,11 @@ msgstr "" "import_module` inserta el módulo importado en ``sys.modules`` y retorna el " "objeto módulo." -#: ../Doc/whatsnew/2.7.rst:1752 +#: ../Doc/whatsnew/2.7.rst:1753 msgid "Here are some examples::" msgstr "He aquí algunos ejemplos::" -#: ../Doc/whatsnew/2.7.rst:1763 +#: ../Doc/whatsnew/2.7.rst:1764 msgid "" ":mod:`importlib` was implemented by Brett Cannon and introduced in Python " "3.1." @@ -2950,11 +2952,11 @@ msgstr "" ":mod:`importlib` fue implementado por Brett Cannon e introducido en Python " "3.1." -#: ../Doc/whatsnew/2.7.rst:1768 +#: ../Doc/whatsnew/2.7.rst:1769 msgid "New module: sysconfig" msgstr "Nuevo módulo: sysconfig" -#: ../Doc/whatsnew/2.7.rst:1770 +#: ../Doc/whatsnew/2.7.rst:1771 msgid "" "The :mod:`sysconfig` module has been pulled out of the Distutils package, " "becoming a new top-level module in its own right. :mod:`sysconfig` provides " @@ -2969,11 +2971,11 @@ msgstr "" "instalación, el nombre de la plataforma y si Python se está ejecutando desde " "su directorio fuente." -#: ../Doc/whatsnew/2.7.rst:1777 +#: ../Doc/whatsnew/2.7.rst:1778 msgid "Some of the functions in the module are:" msgstr "Algunas de las funciones del módulo son:" -#: ../Doc/whatsnew/2.7.rst:1779 +#: ../Doc/whatsnew/2.7.rst:1780 msgid "" ":func:`~sysconfig.get_config_var` returns variables from Python's Makefile " "and the :file:`pyconfig.h` file." @@ -2981,7 +2983,7 @@ msgstr "" ":func:`~sysconfig.get_config_var` retorna variables del Makefile de Python y " "del fichero :file:`pyconfig.h`." -#: ../Doc/whatsnew/2.7.rst:1781 +#: ../Doc/whatsnew/2.7.rst:1782 msgid "" ":func:`~sysconfig.get_config_vars` returns a dictionary containing all of " "the configuration variables." @@ -2989,7 +2991,7 @@ msgstr "" ":func:`~sysconfig.get_config_vars` retorna un diccionario que contiene todas " "las variables de configuración." -#: ../Doc/whatsnew/2.7.rst:1783 +#: ../Doc/whatsnew/2.7.rst:1784 msgid "" ":func:`~sysconfig.get_path` returns the configured path for a particular " "type of module: the standard library, site-specific modules, platform-" @@ -2999,7 +3001,7 @@ msgstr "" "módulo concreto: la biblioteca estándar, módulos específicos del sitio, " "módulos específicos de la plataforma, etc." -#: ../Doc/whatsnew/2.7.rst:1786 +#: ../Doc/whatsnew/2.7.rst:1787 msgid "" ":func:`~sysconfig.is_python_build` returns true if you're running a binary " "from a Python source tree, and false otherwise." @@ -3007,7 +3009,7 @@ msgstr "" ":func:`~sysconfig.is_python_build` retorna true si está ejecutando un " "binario desde un árbol de fuentes de Python, y false en caso contrario." -#: ../Doc/whatsnew/2.7.rst:1789 +#: ../Doc/whatsnew/2.7.rst:1790 msgid "" "Consult the :mod:`sysconfig` documentation for more details and for a " "complete list of functions." @@ -3015,7 +3017,7 @@ msgstr "" "Consulte la documentación de :mod:`sysconfig` para más detalles y para una " "lista completa de funciones." -#: ../Doc/whatsnew/2.7.rst:1792 +#: ../Doc/whatsnew/2.7.rst:1793 msgid "" "The Distutils package and :mod:`sysconfig` are now maintained by Tarek " "Ziadé, who has also started a Distutils2 package (source repository at " @@ -3027,11 +3029,11 @@ msgstr "" "en https://hg.python.org/distutils2/) para desarrollar una versión de " "próxima generación de Distutils." -#: ../Doc/whatsnew/2.7.rst:1799 +#: ../Doc/whatsnew/2.7.rst:1800 msgid "ttk: Themed Widgets for Tk" msgstr "ttk: Widgets temáticos para Tk" -#: ../Doc/whatsnew/2.7.rst:1801 +#: ../Doc/whatsnew/2.7.rst:1802 msgid "" "Tcl/Tk 8.5 includes a set of themed widgets that re-implement basic Tk " "widgets but have a more customizable appearance and can therefore more " @@ -3045,7 +3047,7 @@ msgstr "" "conjunto de widgets se llamaba originalmente Tile, pero fue renombrado a Ttk " "(por \"Tk temático\") al ser añadido a la versión 8.5 de Tcl/Tck." -#: ../Doc/whatsnew/2.7.rst:1807 +#: ../Doc/whatsnew/2.7.rst:1808 msgid "" "To learn more, read the :mod:`ttk` module documentation. You may also wish " "to read the Tcl/Tk manual page describing the Ttk theme engine, available at " @@ -3059,7 +3061,7 @@ msgstr "" "capturas de pantalla del código Python/Ttk en uso están en https://code." "google.com/archive/p/python-ttk/wikis/Screenshots.wiki." -#: ../Doc/whatsnew/2.7.rst:1814 +#: ../Doc/whatsnew/2.7.rst:1815 msgid "" "The :mod:`ttk` module was written by Guilherme Polo and added in :issue:" "`2983`. An alternate version called ``Tile.py``, written by Martin Franklin " @@ -3072,11 +3074,11 @@ msgstr "" "issue:`2618`, pero los autores argumentaron que el trabajo de Guilherme Polo " "era más completo." -#: ../Doc/whatsnew/2.7.rst:1824 +#: ../Doc/whatsnew/2.7.rst:1825 msgid "Updated module: unittest" msgstr "Módulo actualizado: unittest" -#: ../Doc/whatsnew/2.7.rst:1826 +#: ../Doc/whatsnew/2.7.rst:1827 msgid "" "The :mod:`unittest` module was greatly enhanced; many new features were " "added. Most of these features were implemented by Michael Foord, unless " @@ -3091,7 +3093,7 @@ msgstr "" "a 2.6 de Python, empaquetada como paquete :mod:`unittest2`, en https://pypi." "org/project/unittest2." -#: ../Doc/whatsnew/2.7.rst:1833 +#: ../Doc/whatsnew/2.7.rst:1834 msgid "" "When used from the command line, the module can automatically discover " "tests. It's not as fancy as `py.test `__ or `nose " @@ -3107,7 +3109,7 @@ msgstr "" "paquetes. Por ejemplo, el siguiente comando buscará en el subdirectorio :" "file:`test/` cualquier archivo de prueba importable llamado ``test*.py``:" -#: ../Doc/whatsnew/2.7.rst:1842 +#: ../Doc/whatsnew/2.7.rst:1843 msgid "" "Consult the :mod:`unittest` module documentation for more details. " "(Developed in :issue:`6001`.)" @@ -3115,12 +3117,12 @@ msgstr "" "Consulte la documentación del módulo :mod:`unittest` para más detalles. " "(Desarrollado en :issue:`6001`.)" -#: ../Doc/whatsnew/2.7.rst:1845 +#: ../Doc/whatsnew/2.7.rst:1846 msgid "The :func:`~unittest.main` function supports some other new options:" msgstr "" "La función :func:`~unittest.main` soporta algunas otras opciones nuevas:" -#: ../Doc/whatsnew/2.7.rst:1847 +#: ../Doc/whatsnew/2.7.rst:1848 msgid "" ":option:`-b ` or :option:`!--buffer` will buffer the standard " "output and standard error streams during each test. If the test passes, any " @@ -3132,7 +3134,7 @@ msgstr "" "prueba pasa, se descartará cualquier salida resultante; en caso de falla, se " "mostrará la salida almacenada en búfer." -#: ../Doc/whatsnew/2.7.rst:1852 +#: ../Doc/whatsnew/2.7.rst:1853 msgid "" ":option:`-c ` or :option:`!--catch` will cause the control-C " "interrupt to be handled more gracefully. Instead of interrupting the test " @@ -3147,7 +3149,7 @@ msgstr "" "interrupción. Si está impaciente, una segunda pulsación de control-C " "provocará una interrupción inmediata." -#: ../Doc/whatsnew/2.7.rst:1859 +#: ../Doc/whatsnew/2.7.rst:1860 msgid "" "This control-C handler tries to avoid causing problems when the code being " "tested or the tests being run have defined a signal handler of their own, by " @@ -3163,7 +3165,7 @@ msgstr "" "hay un decorador :func:`~unittest.removeHandler` que puede utilizarse para " "marcar las pruebas que deben tener el manejador de control-C desactivado." -#: ../Doc/whatsnew/2.7.rst:1866 +#: ../Doc/whatsnew/2.7.rst:1867 msgid "" ":option:`-f ` or :option:`!--failfast` makes test execution " "stop immediately when a test fails instead of continuing to execute further " @@ -3175,7 +3177,7 @@ msgstr "" "continuar ejecutando más pruebas. (Sugerido por Cliff Dyer e implementado " "por Michael Foord; :issue:`8074`)" -#: ../Doc/whatsnew/2.7.rst:1871 +#: ../Doc/whatsnew/2.7.rst:1872 msgid "" "The progress messages now show 'x' for expected failures and 'u' for " "unexpected successes when run in verbose mode. (Contributed by Benjamin " @@ -3185,7 +3187,7 @@ msgstr "" "para los éxitos inesperados cuando se ejecuta en modo verboso. (Contribución " "de Benjamin Peterson)" -#: ../Doc/whatsnew/2.7.rst:1875 +#: ../Doc/whatsnew/2.7.rst:1876 msgid "" "Test cases can raise the :exc:`~unittest.SkipTest` exception to skip a test " "(:issue:`1034053`)." @@ -3193,7 +3195,7 @@ msgstr "" "Los casos de prueba pueden lanzar la excepción :exc:`~unittest.SkipTest` " "para saltarse una prueba (:issue:`1034053`)." -#: ../Doc/whatsnew/2.7.rst:1878 +#: ../Doc/whatsnew/2.7.rst:1879 msgid "" "The error messages for :meth:`~unittest.TestCase.assertEqual`, :meth:" "`~unittest.TestCase.assertTrue`, and :meth:`~unittest.TestCase.assertFalse` " @@ -3211,7 +3213,7 @@ msgstr "" "cualquier mensaje adicional que proporciones se imprimirán para los fallos. " "(Añadido por Michael Foord; :issue:`5663`.)" -#: ../Doc/whatsnew/2.7.rst:1885 +#: ../Doc/whatsnew/2.7.rst:1886 msgid "" "The :meth:`~unittest.TestCase.assertRaises` method now returns a context " "handler when called without providing a callable object to run. For " @@ -3221,11 +3223,11 @@ msgstr "" "de contexto cuando se llama sin proporcionar un objeto invocable para " "ejecutar. Por ejemplo, puede escribir esto::" -#: ../Doc/whatsnew/2.7.rst:1892 +#: ../Doc/whatsnew/2.7.rst:1893 msgid "(Implemented by Antoine Pitrou; :issue:`4444`.)" msgstr "(Implementado por Antoine Pitrou; :issue:`4444`.)" -#: ../Doc/whatsnew/2.7.rst:1896 +#: ../Doc/whatsnew/2.7.rst:1897 msgid "" "Module- and class-level setup and teardown fixtures are now supported. " "Modules can contain :func:`~unittest.setUpModule` and :func:`~unittest." @@ -3244,7 +3246,7 @@ msgstr "" "cuando el ejecutor de pruebas cambia a un caso de prueba en un módulo o " "clase diferente." -#: ../Doc/whatsnew/2.7.rst:1904 +#: ../Doc/whatsnew/2.7.rst:1905 msgid "" "The methods :meth:`~unittest.TestCase.addCleanup` and :meth:`~unittest." "TestCase.doCleanups` were added. :meth:`~unittest.TestCase.addCleanup` lets " @@ -3261,7 +3263,7 @@ msgstr "" "tearDown`). Esto permite una asignación y desasignación de recursos mucho " "más sencilla durante las pruebas (:issue:`5679`)." -#: ../Doc/whatsnew/2.7.rst:1912 +#: ../Doc/whatsnew/2.7.rst:1913 msgid "" "A number of new methods were added that provide more specialized tests. " "Many of these methods were written by Google engineers for use in their test " @@ -3274,7 +3276,7 @@ msgstr "" "Michael Foord y GvR trabajaron en la fusión de los mismos en la versión de " "Python de :mod:`unittest`." -#: ../Doc/whatsnew/2.7.rst:1917 +#: ../Doc/whatsnew/2.7.rst:1918 msgid "" ":meth:`~unittest.TestCase.assertIsNone` and :meth:`~unittest.TestCase." "assertIsNotNone` take one expression and verify that the result is or is not " @@ -3284,7 +3286,7 @@ msgstr "" "assertIsNotNone` toman una expresión y verifican que el resultado es o no es " "``None``." -#: ../Doc/whatsnew/2.7.rst:1920 +#: ../Doc/whatsnew/2.7.rst:1921 msgid "" ":meth:`~unittest.TestCase.assertIs` and :meth:`~unittest.TestCase." "assertIsNot` take two values and check whether the two values evaluate to " @@ -3294,7 +3296,7 @@ msgstr "" "toman dos valores y comprueban si los dos valores se evalúan al mismo objeto " "o no. (Añadido por Michael Foord; :issue:`2578`.)" -#: ../Doc/whatsnew/2.7.rst:1924 +#: ../Doc/whatsnew/2.7.rst:1925 msgid "" ":meth:`~unittest.TestCase.assertIsInstance` and :meth:`~unittest.TestCase." "assertNotIsInstance` check whether the resulting object is an instance of a " @@ -3306,7 +3308,7 @@ msgstr "" "una clase concreta, o de una tupla de clases. (Añadido por Georg Brandl; :" "issue:`7031`.)" -#: ../Doc/whatsnew/2.7.rst:1929 +#: ../Doc/whatsnew/2.7.rst:1930 msgid "" ":meth:`~unittest.TestCase.assertGreater`, :meth:`~unittest.TestCase." "assertGreaterEqual`, :meth:`~unittest.TestCase.assertLess`, and :meth:" @@ -3316,7 +3318,7 @@ msgstr "" "assertGreaterEqual`, :meth:`~unittest.TestCase.assertLess`, y :meth:" "`~unittest.TestCase.assertLessEqual` comparan dos cantidades." -#: ../Doc/whatsnew/2.7.rst:1933 +#: ../Doc/whatsnew/2.7.rst:1934 msgid "" ":meth:`~unittest.TestCase.assertMultiLineEqual` compares two strings, and if " "they're not equal, displays a helpful comparison that highlights the " @@ -3328,7 +3330,7 @@ msgstr "" "dos cadenas. Esta comparación se utiliza ahora por defecto cuando las " "cadenas Unicode se comparan con :meth:`~unittest.TestCase.assertEqual`." -#: ../Doc/whatsnew/2.7.rst:1938 +#: ../Doc/whatsnew/2.7.rst:1939 msgid "" ":meth:`~unittest.TestCase.assertRegexpMatches` and :meth:`~unittest.TestCase." "assertNotRegexpMatches` checks whether the first argument is a string " @@ -3340,7 +3342,7 @@ msgstr "" "coincide o no con la expresión regular proporcionada como segundo argumento " "(:issue:`8038`)." -#: ../Doc/whatsnew/2.7.rst:1943 +#: ../Doc/whatsnew/2.7.rst:1944 msgid "" ":meth:`~unittest.TestCase.assertRaisesRegexp` checks whether a particular " "exception is raised, and then also checks that the string representation of " @@ -3350,7 +3352,7 @@ msgstr "" "excepción en particular, y luego también comprueba que la representación de " "la cadena de la excepción coincide con la expresión regular proporcionada." -#: ../Doc/whatsnew/2.7.rst:1947 +#: ../Doc/whatsnew/2.7.rst:1948 msgid "" ":meth:`~unittest.TestCase.assertIn` and :meth:`~unittest.TestCase." "assertNotIn` tests whether *first* is or is not in *second*." @@ -3358,7 +3360,7 @@ msgstr "" ":meth:`~unittest.TestCase.assertIn` y :meth:`~unittest.TestCase.assertNotIn` " "comprueban si *primero* está o no está en *segundo*." -#: ../Doc/whatsnew/2.7.rst:1950 +#: ../Doc/whatsnew/2.7.rst:1951 msgid "" ":meth:`~unittest.TestCase.assertItemsEqual` tests whether two provided " "sequences contain the same elements." @@ -3366,7 +3368,7 @@ msgstr "" ":meth:`~unittest.TestCase.assertItemsEqual` comprueba si dos secuencias " "proporcionadas contienen los mismos elementos." -#: ../Doc/whatsnew/2.7.rst:1953 +#: ../Doc/whatsnew/2.7.rst:1954 msgid "" ":meth:`~unittest.TestCase.assertSetEqual` compares whether two sets are " "equal, and only reports the differences between the sets in case of error." @@ -3375,7 +3377,7 @@ msgstr "" "iguales, y sólo informa de las diferencias entre los conjuntos en caso de " "error." -#: ../Doc/whatsnew/2.7.rst:1956 +#: ../Doc/whatsnew/2.7.rst:1957 msgid "" "Similarly, :meth:`~unittest.TestCase.assertListEqual` and :meth:`~unittest." "TestCase.assertTupleEqual` compare the specified types and explain any " @@ -3394,7 +3396,7 @@ msgstr "" "secuencias y puede comprobar opcionalmente si ambas secuencias son de un " "tipo determinado." -#: ../Doc/whatsnew/2.7.rst:1964 +#: ../Doc/whatsnew/2.7.rst:1965 msgid "" ":meth:`~unittest.TestCase.assertDictEqual` compares two dictionaries and " "reports the differences; it's now used by default when you compare two " @@ -3408,7 +3410,7 @@ msgstr "" "`~unittest.TestCase.assertDictContainsSubset` comprueba si todos los pares " "clave/valor de *primero* se encuentran en *segundo*." -#: ../Doc/whatsnew/2.7.rst:1969 +#: ../Doc/whatsnew/2.7.rst:1970 msgid "" ":meth:`~unittest.TestCase.assertAlmostEqual` and :meth:`~unittest.TestCase." "assertNotAlmostEqual` test whether *first* and *second* are approximately " @@ -3423,7 +3425,7 @@ msgstr "" "cero, o requerir que la diferencia sea menor que un valor *delta* " "proporcionado." -#: ../Doc/whatsnew/2.7.rst:1975 +#: ../Doc/whatsnew/2.7.rst:1976 msgid "" ":meth:`~unittest.TestLoader.loadTestsFromName` properly honors the :attr:" "`~unittest.TestLoader.suiteClass` attribute of the :class:`~unittest." @@ -3433,7 +3435,7 @@ msgstr "" "atributo :attr:`~unittest.TestLoader.suiteClass` de la :class:`~unittest." "TestLoader`. (Corregido por Mark Roddy; :issue:`6866`.)" -#: ../Doc/whatsnew/2.7.rst:1979 +#: ../Doc/whatsnew/2.7.rst:1980 msgid "" "A new hook lets you extend the :meth:`~unittest.TestCase.assertEqual` method " "to handle new data types. The :meth:`~unittest.TestCase." @@ -3453,7 +3455,7 @@ msgstr "" "información adicional acerca de por qué los dos objetos no coinciden, al " "igual que los nuevos métodos de comparación de secuencias." -#: ../Doc/whatsnew/2.7.rst:1988 +#: ../Doc/whatsnew/2.7.rst:1989 msgid "" ":func:`unittest.main` now takes an optional ``exit`` argument. If false, :" "func:`~unittest.main` doesn't call :func:`sys.exit`, allowing :func:" @@ -3465,7 +3467,7 @@ msgstr "" "func:`~unittest.main` sea utilizado desde el intérprete interactivo. " "(Contribuido por J. Pablo Fernández; :issue:`3379`.)" -#: ../Doc/whatsnew/2.7.rst:1993 +#: ../Doc/whatsnew/2.7.rst:1994 msgid "" ":class:`~unittest.TestResult` has new :meth:`~unittest.TestResult." "startTestRun` and :meth:`~unittest.TestResult.stopTestRun` methods that are " @@ -3477,7 +3479,7 @@ msgstr "" "llaman inmediatamente antes y después de la ejecución de una prueba. " "(Contribución de Robert Collins; :issue:`5728`.)" -#: ../Doc/whatsnew/2.7.rst:1997 +#: ../Doc/whatsnew/2.7.rst:1998 msgid "" "With all these changes, the :file:`unittest.py` was becoming awkwardly " "large, so the module was turned into a package and the code split into " @@ -3489,7 +3491,7 @@ msgstr "" "código se dividió en varios archivos (por Benjamin Peterson). Esto no " "afecta a la forma de importar o utilizar el módulo." -#: ../Doc/whatsnew/2.7.rst:2005 +#: ../Doc/whatsnew/2.7.rst:2006 msgid "" "https://web.archive.org/web/20210619163128/http://www.voidspace.org.uk/" "python/articles/unittest2.shtml" @@ -3497,7 +3499,7 @@ msgstr "" "https://web.archive.org/web/20210619163128/http://www.voidspace.org.uk/" "python/articles/unittest2.shtml" -#: ../Doc/whatsnew/2.7.rst:2005 +#: ../Doc/whatsnew/2.7.rst:2006 msgid "" "Describes the new features, how to use them, and the rationale for various " "design decisions. (By Michael Foord.)" @@ -3505,11 +3507,11 @@ msgstr "" "Describe las nuevas funciones, cómo utilizarlas y la justificación de varias " "decisiones de diseño. (Por Michael Foord.)" -#: ../Doc/whatsnew/2.7.rst:2011 +#: ../Doc/whatsnew/2.7.rst:2012 msgid "Updated module: ElementTree 1.3" msgstr "Módulo actualizado: ElementTree 1.3" -#: ../Doc/whatsnew/2.7.rst:2013 +#: ../Doc/whatsnew/2.7.rst:2014 msgid "" "The version of the ElementTree library included with Python was updated to " "version 1.3. Some of the new features are:" @@ -3517,7 +3519,7 @@ msgstr "" "La versión de la biblioteca ElementTree incluida en Python se ha actualizado " "a la versión 1.3. Algunas de las nuevas características son:" -#: ../Doc/whatsnew/2.7.rst:2016 +#: ../Doc/whatsnew/2.7.rst:2017 msgid "" "The various parsing functions now take a *parser* keyword argument giving " "an :class:`~xml.etree.ElementTree.XMLParser` instance that will be used. " @@ -3528,7 +3530,7 @@ msgstr "" "que se utilizará. Esto hace posible anular la codificación interna del " "archivo::" -#: ../Doc/whatsnew/2.7.rst:2023 +#: ../Doc/whatsnew/2.7.rst:2024 msgid "" "Errors in parsing XML now raise a :exc:`ParseError` exception, whose " "instances have a :attr:`position` attribute containing a (*line*, *column*) " @@ -3538,7 +3540,7 @@ msgstr "" "`ParseError`, cuyas instancias tienen un atributo :attr:`position` que " "contiene una tupla (*línea*, *columna*) que da la ubicación del problema." -#: ../Doc/whatsnew/2.7.rst:2027 +#: ../Doc/whatsnew/2.7.rst:2028 msgid "" "ElementTree's code for converting trees to a string has been significantly " "reworked, making it roughly twice as fast in many cases. The :meth:" @@ -3563,7 +3565,7 @@ msgstr "" "omitido cuando el árbol sea escrito, por lo que no necesitarás hacer un " "reordenamiento más extenso para eliminar un solo elemento." -#: ../Doc/whatsnew/2.7.rst:2039 +#: ../Doc/whatsnew/2.7.rst:2040 msgid "" "Namespace handling has also been improved. All ``xmlns:`` " "declarations are now output on the root element, not scattered throughout " @@ -3580,7 +3582,7 @@ msgstr "" "register_namespace`. En el modo XML, puede utilizar el parámetro true/false " "*xml_declaration* para suprimir la declaración XML." -#: ../Doc/whatsnew/2.7.rst:2047 +#: ../Doc/whatsnew/2.7.rst:2048 msgid "" "New :class:`~xml.etree.ElementTree.Element` method: :meth:`~xml.etree." "ElementTree.Element.extend` appends the items from a sequence to the " @@ -3592,7 +3594,7 @@ msgstr "" "del elemento. Los propios elementos se comportan como secuencias, por lo " "que es fácil mover los hijos de un elemento a otro::" -#: ../Doc/whatsnew/2.7.rst:2064 +#: ../Doc/whatsnew/2.7.rst:2065 msgid "" "New :class:`Element` method: :meth:`~xml.etree.ElementTree.Element.iter` " "yields the children of the element as a generator. It's also possible to " @@ -3606,7 +3608,7 @@ msgstr "" "El método existente :meth:`getiterator` ha quedado obsoleto, al igual que :" "meth:`getchildren` que construye y retorna una lista de hijos." -#: ../Doc/whatsnew/2.7.rst:2071 +#: ../Doc/whatsnew/2.7.rst:2072 msgid "" "New :class:`Element` method: :meth:`~xml.etree.ElementTree.Element.itertext` " "yields all chunks of text that are descendants of the element. For example::" @@ -3615,7 +3617,7 @@ msgstr "" "itertext` retorna todos los trozos de texto que son descendientes del " "elemento. Por ejemplo::" -#: ../Doc/whatsnew/2.7.rst:2082 +#: ../Doc/whatsnew/2.7.rst:2083 msgid "" "Deprecated: using an element as a Boolean (i.e., ``if elem:``) would return " "true if the element had any children, or false if there were no children. " @@ -3631,7 +3633,7 @@ msgstr "" "`FutureWarning`. En tu código, deberías ser explícito: escribe ``len(elem) !" "= 0`` si te interesa el número de hijos, o ``elem no es None``." -#: ../Doc/whatsnew/2.7.rst:2090 +#: ../Doc/whatsnew/2.7.rst:2091 msgid "" "Fredrik Lundh develops ElementTree and produced the 1.3 version; you can " "read his article describing 1.3 at https://web.archive.org/" @@ -3645,27 +3647,29 @@ msgstr "" "la versión incluida con Python, luego de discusiones en python-dev y en :" "issue:`6472`.)" -#: ../Doc/whatsnew/2.7.rst:2100 +#: ../Doc/whatsnew/2.7.rst:2101 msgid "Build and C API Changes" msgstr "Cambios en la API de construcción y C" -#: ../Doc/whatsnew/2.7.rst:2102 +#: ../Doc/whatsnew/2.7.rst:2103 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.7.rst:2104 +#: ../Doc/whatsnew/2.7.rst:2105 +#, fuzzy msgid "" "The latest release of the GNU Debugger, GDB 7, can be `scripted using Python " -"`__. When you " -"begin debugging an executable program P, GDB will look for a file named ``P-" -"gdb.py`` and automatically read it. Dave Malcolm contributed a :file:" -"`python-gdb.py` that adds a number of commands useful when debugging Python " -"itself. For example, ``py-up`` and ``py-down`` go up or down one Python " -"stack frame, which usually corresponds to several C stack frames. ``py-" -"print`` prints the value of a Python variable, and ``py-bt`` prints the " -"Python stack trace. (Added as a result of :issue:`8032`.)" +"`__. When you begin debugging an " +"executable program P, GDB will look for a file named ``P-gdb.py`` and " +"automatically read it. Dave Malcolm contributed a :file:`python-gdb.py` " +"that adds a number of commands useful when debugging Python itself. For " +"example, ``py-up`` and ``py-down`` go up or down one Python stack frame, " +"which usually corresponds to several C stack frames. ``py-print`` prints " +"the value of a Python variable, and ``py-bt`` prints the Python stack " +"trace. (Added as a result of :issue:`8032`.)" msgstr "" "La última versión del depurador de GNU, GDB 7, puede ser `scripted usando " "Python `__. " @@ -3678,7 +3682,7 @@ msgstr "" "de Python, y ``py-bt`` imprime el seguimiento de la pila de Python. " "(Añadido como resultado de :issue:`8032`.)" -#: ../Doc/whatsnew/2.7.rst:2116 +#: ../Doc/whatsnew/2.7.rst:2117 msgid "" "If you use the :file:`.gdbinit` file provided with Python, the \"pyo\" macro " "in the 2.7 version now works correctly when the thread being debugged " @@ -3690,7 +3694,7 @@ msgstr "" "está depurando no tiene el GIL; la macro ahora lo adquiere antes de " "imprimir. (Contribución de Victor Stinner; :issue:`3632`.)" -#: ../Doc/whatsnew/2.7.rst:2121 +#: ../Doc/whatsnew/2.7.rst:2122 msgid "" ":c:func:`Py_AddPendingCall` is now thread-safe, letting any worker thread " "submit notifications to the main Python thread. This is particularly useful " @@ -3702,7 +3706,7 @@ msgstr "" "Esto es particularmente útil para las operaciones asíncronas de IO. " "(Contribuido por Kristján Valur Jónsson; :issue:`4293`.)" -#: ../Doc/whatsnew/2.7.rst:2126 +#: ../Doc/whatsnew/2.7.rst:2127 msgid "" "New function: :c:func:`PyCode_NewEmpty` creates an empty code object; only " "the filename, function name, and first line number are required. This is " @@ -3717,7 +3721,7 @@ msgstr "" "necesitaban llamar a :c:func:`PyCode_New`, que tenía muchos más argumentos. " "(Añadido por Jeffrey Yasskin)" -#: ../Doc/whatsnew/2.7.rst:2133 +#: ../Doc/whatsnew/2.7.rst:2134 msgid "" "New function: :c:func:`PyErr_NewExceptionWithDoc` creates a new exception " "class, just as the existing :c:func:`PyErr_NewException` does, but takes an " @@ -3729,7 +3733,7 @@ msgstr "" "argumento extra ``char *`` que contiene el docstring de la nueva clase de " "excepción. (Añadido por 'lekma' en el bug tracker de Python; :issue:`7033`)" -#: ../Doc/whatsnew/2.7.rst:2139 +#: ../Doc/whatsnew/2.7.rst:2140 msgid "" "New function: :c:func:`PyFrame_GetLineNumber` takes a frame object and " "returns the line number that the frame is currently executing. Previously " @@ -3743,7 +3747,7 @@ msgstr "" "código de bytes que se estaba ejecutando, y luego buscar el número de línea " "correspondiente a esa dirección. (Añadido por Jeffrey Yasskin)" -#: ../Doc/whatsnew/2.7.rst:2145 +#: ../Doc/whatsnew/2.7.rst:2146 msgid "" "New functions: :c:func:`PyLong_AsLongAndOverflow` and :c:func:" "`PyLong_AsLongLongAndOverflow` approximates a Python long integer as a C :c:" @@ -3758,11 +3762,12 @@ msgstr "" "devuelve a la persona que llama. (Aportado por Case Van Horsen; :issue:" "`7528` y :issue:`7767`.)" -#: ../Doc/whatsnew/2.7.rst:2152 +#: ../Doc/whatsnew/2.7.rst:2153 +#, fuzzy msgid "" "New function: stemming from the rewrite of string-to-float conversion, a " -"new :c:func:`PyOS_string_to_double` function was added. The old :c:func:" -"`PyOS_ascii_strtod` and :c:func:`PyOS_ascii_atof` functions are now " +"new :c:func:`PyOS_string_to_double` function was added. The old :c:func:`!" +"PyOS_ascii_strtod` and :c:func:`!PyOS_ascii_atof` functions are now " "deprecated." msgstr "" "Nueva función: a raíz de la reescritura de la conversión de cadena a " @@ -3770,7 +3775,7 @@ msgstr "" "Las antiguas funciones :c:func:`PyOS_ascii_strtod` y :c:func:" "`PyOS_ascii_atof` han quedado obsoletas." -#: ../Doc/whatsnew/2.7.rst:2157 +#: ../Doc/whatsnew/2.7.rst:2158 msgid "" "New function: :c:func:`PySys_SetArgvEx` sets the value of ``sys.argv`` and " "can optionally update ``sys.path`` to include the directory containing the " @@ -3782,7 +3787,7 @@ msgstr "" "contiene el script nombrado por ``sys.argv[0]`` dependiendo del valor de un " "parámetro *updatepath*." -#: ../Doc/whatsnew/2.7.rst:2162 +#: ../Doc/whatsnew/2.7.rst:2163 msgid "" "This function was added to close a security hole for applications that embed " "Python. The old function, :c:func:`PySys_SetArgv`, would always update " @@ -3801,7 +3806,7 @@ msgstr "" "(digamos, un archivo llamado :file:`os.py`) que tu aplicación luego " "importaría y ejecutaría." -#: ../Doc/whatsnew/2.7.rst:2170 +#: ../Doc/whatsnew/2.7.rst:2171 msgid "" "If you maintain a C/C++ application that embeds Python, check whether you're " "calling :c:func:`PySys_SetArgv` and carefully consider whether the " @@ -3813,7 +3818,7 @@ msgstr "" "aplicación debería estar usando :c:func:`PySys_SetArgvEx` con *updatepath* " "establecido en false." -#: ../Doc/whatsnew/2.7.rst:2175 +#: ../Doc/whatsnew/2.7.rst:2176 msgid "" "Security issue reported as `CVE-2008-5983 `_; discussed in :issue:`5753`, and fixed by " @@ -3823,7 +3828,7 @@ msgstr "" "cgi-bin/cvename.cgi?name=CVE-2008-5983>`_; discutido en :issue:`5753`, y " "solucionado por Antoine Pitrou." -#: ../Doc/whatsnew/2.7.rst:2179 +#: ../Doc/whatsnew/2.7.rst:2180 msgid "" "New macros: the Python header files now define the following macros: :c:" "macro:`Py_ISALNUM`, :c:macro:`Py_ISALPHA`, :c:macro:`Py_ISDIGIT`, :c:macro:" @@ -3844,9 +3849,10 @@ msgstr "" "independiente de la configuración regional. (Añadido por Eric Smith; :issue:" "`5793`.)" -#: ../Doc/whatsnew/2.7.rst:2197 +#: ../Doc/whatsnew/2.7.rst:2198 +#, fuzzy msgid "" -"Removed function: :c:macro:`PyEval_CallObject` is now only available as a " +"Removed function: :c:func:`!PyEval_CallObject` is now only available as a " "macro. A function version was being kept around to preserve ABI linking " "compatibility, but that was in 1997; it can certainly be deleted by now. " "(Removed by Antoine Pitrou; :issue:`8276`.)" @@ -3856,10 +3862,11 @@ msgstr "" "compatibilidad con el enlace ABI, pero eso fue en 1997; seguramente se puede " "eliminar ahora. (Eliminado por Antoine Pitrou; :issue:`8276`.)" -#: ../Doc/whatsnew/2.7.rst:2202 +#: ../Doc/whatsnew/2.7.rst:2203 +#, fuzzy msgid "" -"New format codes: the :c:func:`PyFormat_FromString`, :c:func:" -"`PyFormat_FromStringV`, and :c:func:`PyErr_Format` functions now accept " +"New format codes: the :c:func:`!PyString_FromFormat`, :c:func:`!" +"PyString_FromFormatV`, and :c:func:`PyErr_Format` functions now accept " "``%lld`` and ``%llu`` format codes for displaying C's :c:expr:`long long` " "types. (Contributed by Mark Dickinson; :issue:`7228`.)" msgstr "" @@ -3868,7 +3875,7 @@ msgstr "" "de formato ``%lld`` y ``%llu`` para mostrar los tipos :c:expr:`long long` de " "C. (Aportado por Mark Dickinson; :issue:`7228`.)" -#: ../Doc/whatsnew/2.7.rst:2208 +#: ../Doc/whatsnew/2.7.rst:2209 msgid "" "The complicated interaction between threads and process forking has been " "changed. Previously, the child process created by :func:`os.fork` might " @@ -3888,7 +3895,7 @@ msgstr "" "Pero en el proceso hijo nada liberaría el bloqueo, ya que los otros hilos no " "estaban replicados, y el proceso hijo ya no podría realizar importaciones." -#: ../Doc/whatsnew/2.7.rst:2218 +#: ../Doc/whatsnew/2.7.rst:2219 msgid "" "Python 2.7 acquires the import lock before performing an :func:`os.fork`, " "and will also clean up any locks created using the :mod:`threading` module. " @@ -3900,11 +3907,11 @@ msgstr "" "`threading`. Los módulos de extensión C que tienen bloqueos internos, o que " "llaman a :c:func:`fork()` ellos mismos, no se beneficiarán de esta limpieza." -#: ../Doc/whatsnew/2.7.rst:2224 +#: ../Doc/whatsnew/2.7.rst:2225 msgid "(Fixed by Thomas Wouters; :issue:`1590864`.)" msgstr "(Corregido por Thomas Wouters; :issue:`1590864`.)" -#: ../Doc/whatsnew/2.7.rst:2226 +#: ../Doc/whatsnew/2.7.rst:2227 msgid "" "The :c:func:`Py_Finalize` function now calls the internal :func:`threading." "_shutdown` function; this prevents some exceptions from being raised when an " @@ -3914,17 +3921,18 @@ msgstr "" "`threading._shutdown`; esto evita que se produzcan algunas excepciones " "cuando un intérprete se cierra. (Parche de Adam Olsen; :issue:`1722344`.)" -#: ../Doc/whatsnew/2.7.rst:2231 +#: ../Doc/whatsnew/2.7.rst:2232 +#, fuzzy msgid "" "When using the :c:type:`PyMemberDef` structure to define attributes of a " -"type, Python will no longer let you try to delete or set a :const:" +"type, Python will no longer let you try to delete or set a :c:macro:" "`T_STRING_INPLACE` attribute." msgstr "" "Cuando se utiliza la estructura :c:type:`PyMemberDef` para definir los " "atributos de un tipo, Python ya no permitirá que se intente borrar o " "establecer un atributo :const:`T_STRING_INPLACE`." -#: ../Doc/whatsnew/2.7.rst:2237 +#: ../Doc/whatsnew/2.7.rst:2238 msgid "" "Global symbols defined by the :mod:`ctypes` module are now prefixed with " "``Py``, or with ``_ctypes``. (Implemented by Thomas Heller; :issue:`3102`.)" @@ -3933,7 +3941,7 @@ msgstr "" "prefijo ``Py``, o bien ``_ctypes``. (Implementado por Thomas Heller; :issue:" "`3102`.)" -#: ../Doc/whatsnew/2.7.rst:2241 +#: ../Doc/whatsnew/2.7.rst:2242 msgid "" "New configure option: the :option:`!--with-system-expat` switch allows " "building the :mod:`pyexpat` module to use the system Expat library. " @@ -3944,7 +3952,7 @@ msgstr "" "del sistema. (Contribuido por Arfrever Frehtes Taifersar Arahesis; :issue:" "`7609`.)" -#: ../Doc/whatsnew/2.7.rst:2245 +#: ../Doc/whatsnew/2.7.rst:2246 msgid "" "New configure option: the :option:`!--with-valgrind` option will now disable " "the pymalloc allocator, which is difficult for the Valgrind memory-error " @@ -3958,7 +3966,7 @@ msgstr "" "detectará mejor las fugas de memoria y los desbordamientos. (Contribución de " "James Henstridge; :issue:`2422`.)" -#: ../Doc/whatsnew/2.7.rst:2252 +#: ../Doc/whatsnew/2.7.rst:2253 msgid "" "New configure option: you can now supply an empty string to :option:`!--with-" "dbmliborder=` in order to disable all of the various DBM modules. (Added by " @@ -3968,7 +3976,7 @@ msgstr "" "option:`!--with-dbmliborder=` para desactivar todos los módulos DBM. " "(Añadido por Arfrever Frehtes Taifersar Arahesis; :issue:`6491`)" -#: ../Doc/whatsnew/2.7.rst:2257 +#: ../Doc/whatsnew/2.7.rst:2258 msgid "" "The :program:`configure` script now checks for floating-point rounding bugs " "on certain 32-bit Intel chips and defines a :c:macro:`X87_DOUBLE_ROUNDING` " @@ -3982,7 +3990,7 @@ msgstr "" "actualmente esta definición, pero está disponible si alguien desea " "utilizarla. (Añadido por Mark Dickinson; :issue:`2937`.)" -#: ../Doc/whatsnew/2.7.rst:2263 +#: ../Doc/whatsnew/2.7.rst:2264 msgid "" ":program:`configure` also now sets a :envvar:`LDCXXSHARED` Makefile variable " "for supporting C++ linking. (Contributed by Arfrever Frehtes Taifersar " @@ -3992,7 +4000,7 @@ msgstr "" "`LDCXXSHARED` para soportar el enlazado de C++. (Contribuido por Arfrever " "Frehtes Taifersar Arahesis; :issue:`1222585`.)" -#: ../Doc/whatsnew/2.7.rst:2267 +#: ../Doc/whatsnew/2.7.rst:2268 msgid "" "The build process now creates the necessary files for pkg-config support. " "(Contributed by Clinton Roy; :issue:`3585`.)" @@ -4000,7 +4008,7 @@ msgstr "" "El proceso de construcción ahora crea los archivos necesarios para el " "soporte de pkg-config. (Contribución de Clinton Roy; :issue:`3585`.)" -#: ../Doc/whatsnew/2.7.rst:2270 +#: ../Doc/whatsnew/2.7.rst:2271 msgid "" "The build process now supports Subversion 1.7. (Contributed by Arfrever " "Frehtes Taifersar Arahesis; :issue:`6094`.)" @@ -4008,11 +4016,11 @@ msgstr "" "El proceso de construcción ahora soporta Subversion 1.7. (Contribuido por " "Arfrever Frehtes Taifersar Arahesis; :issue:`6094`.)" -#: ../Doc/whatsnew/2.7.rst:2277 +#: ../Doc/whatsnew/2.7.rst:2278 msgid "Capsules" msgstr "Cápsulas" -#: ../Doc/whatsnew/2.7.rst:2279 +#: ../Doc/whatsnew/2.7.rst:2280 msgid "" "Python 3.1 adds a new C datatype, :c:type:`PyCapsule`, for providing a C API " "to an extension module. A capsule is essentially the holder of a C ``void " @@ -4033,13 +4041,15 @@ msgstr "" "normalmente apuntará a una matriz de punteros a las diversas funciones de la " "API del módulo." -#: ../Doc/whatsnew/2.7.rst:2288 +#: ../Doc/whatsnew/2.7.rst:2289 +#, fuzzy msgid "" -"There is an existing data type already used for this, :c:type:`PyCObject`, " +"There is an existing data type already used for this, :c:type:`!PyCObject`, " "but it doesn't provide type safety. Evil code written in pure Python could " -"cause a segmentation fault by taking a :c:type:`PyCObject` from module A and " -"somehow substituting it for the :c:type:`PyCObject` in module B. Capsules " -"know their own name, and getting the pointer requires providing the name:" +"cause a segmentation fault by taking a :c:type:`!PyCObject` from module A " +"and somehow substituting it for the :c:type:`!PyCObject` in module B. " +"Capsules know their own name, and getting the pointer requires providing the " +"name:" msgstr "" "Existe un tipo de datos ya utilizado para esto, :c:type:`PyCObject`, pero no " "proporciona seguridad de tipo. Un código malvado escrito en Python puro " @@ -4048,7 +4058,7 @@ msgstr "" "módulo B. Las cápsulas conocen su propio nombre, y obtener el puntero " "requiere proporcionar el nombre:" -#: ../Doc/whatsnew/2.7.rst:2306 +#: ../Doc/whatsnew/2.7.rst:2307 msgid "" "You are assured that ``vtable`` points to whatever you're expecting. If a " "different capsule was passed in, :c:func:`PyCapsule_IsValid` would detect " @@ -4060,13 +4070,14 @@ msgstr "" "y retornaría false. Consulta :ref:`using-capsules` para más información " "sobre el uso de estos objetos." -#: ../Doc/whatsnew/2.7.rst:2311 +#: ../Doc/whatsnew/2.7.rst:2312 +#, fuzzy msgid "" "Python 2.7 now uses capsules internally to provide various extension-module " -"APIs, but the :c:func:`PyCObject_AsVoidPtr` was modified to handle capsules, " -"preserving compile-time compatibility with the :c:type:`CObject` interface. " -"Use of :c:func:`PyCObject_AsVoidPtr` will signal a :exc:" -"`PendingDeprecationWarning`, which is silent by default." +"APIs, but the :c:func:`!PyCObject_AsVoidPtr` was modified to handle " +"capsules, preserving compile-time compatibility with the :c:type:`!" +"PyCObject` interface. Use of :c:func:`!PyCObject_AsVoidPtr` will signal a :" +"exc:`PendingDeprecationWarning`, which is silent by default." msgstr "" "Python 2.7 ahora utiliza cápsulas internamente para proporcionar varias APIs " "de módulos de extensión, pero el :c:func:`PyCObject_AsVoidPtr` fue " @@ -4075,7 +4086,7 @@ msgstr "" "`PyCObject_AsVoidPtr` señalará un :exc:`PendingDeprecationWarning`, que es " "silencioso por defecto." -#: ../Doc/whatsnew/2.7.rst:2318 +#: ../Doc/whatsnew/2.7.rst:2319 msgid "" "Implemented in Python 3.1 and backported to 2.7 by Larry Hastings; discussed " "in :issue:`5630`." @@ -4083,11 +4094,11 @@ msgstr "" "Implementado en Python 3.1 y portado a 2.7 por Larry Hastings; discutido en :" "issue:`5630`." -#: ../Doc/whatsnew/2.7.rst:2325 +#: ../Doc/whatsnew/2.7.rst:2326 msgid "Port-Specific Changes: Windows" msgstr "Cambios específicos en los puertos: Windows" -#: ../Doc/whatsnew/2.7.rst:2327 +#: ../Doc/whatsnew/2.7.rst:2328 msgid "" "The :mod:`msvcrt` module now contains some constants from the :file:" "`crtassem.h` header file: :data:`CRT_ASSEMBLY_VERSION`, :data:" @@ -4099,7 +4110,7 @@ msgstr "" "`VC_ASSEMBLY_PUBLICKEYTOKEN`, y :data:`LIBRARIES_ASSEMBLY_NAME_PREFIX`. " "(Contribución de David Cournapeau; :issue:`4365`.)" -#: ../Doc/whatsnew/2.7.rst:2334 +#: ../Doc/whatsnew/2.7.rst:2335 msgid "" "The :mod:`_winreg` module for accessing the registry now implements the :" "func:`~_winreg.CreateKeyEx` and :func:`~_winreg.DeleteKeyEx` functions, " @@ -4116,7 +4127,7 @@ msgstr "" "`~_winreg.QueryReflectionKey`. (Implementado por Brian Curtin: :issue:" "`7347`.)" -#: ../Doc/whatsnew/2.7.rst:2342 +#: ../Doc/whatsnew/2.7.rst:2343 msgid "" "The new :c:func:`_beginthreadex` API is used to start threads, and the " "native thread-local storage functions are now used. (Contributed by Kristján " @@ -4126,7 +4137,7 @@ msgstr "" "se utilizan las funciones nativas de almacenamiento local de hilos. " "(Contribuido por Kristján Valur Jónsson; :issue:`3582`.)" -#: ../Doc/whatsnew/2.7.rst:2346 +#: ../Doc/whatsnew/2.7.rst:2347 msgid "" "The :func:`os.kill` function now works on Windows. The signal value can be " "the constants :const:`CTRL_C_EVENT`, :const:`CTRL_BREAK_EVENT`, or any " @@ -4142,7 +4153,7 @@ msgstr "" "subprocesos; cualquier otro valor utilizará la API :c:func:" "`TerminateProcess`. (Contribuido por Miki Tebeka; :issue:`1220212`.)" -#: ../Doc/whatsnew/2.7.rst:2353 +#: ../Doc/whatsnew/2.7.rst:2354 msgid "" "The :func:`os.listdir` function now correctly fails for an empty path. " "(Fixed by Hirokazu Yamamoto; :issue:`5913`.)" @@ -4150,7 +4161,7 @@ msgstr "" "La función :func:`os.listdir` ahora falla correctamente si la ruta está " "vacía. (Corregido por Hirokazu Yamamoto; :issue:`5913`.)" -#: ../Doc/whatsnew/2.7.rst:2356 +#: ../Doc/whatsnew/2.7.rst:2357 msgid "" "The :mod:`mimelib` module will now read the MIME database from the Windows " "registry when initializing. (Patch by Gabriel Genellina; :issue:`4969`.)" @@ -4158,11 +4169,11 @@ msgstr "" "El módulo :mod:`mimelib` ahora leerá la base de datos MIME del registro de " "Windows cuando se inicialice. (Parche de Gabriel Genellina; :issue:`4969`.)" -#: ../Doc/whatsnew/2.7.rst:2363 +#: ../Doc/whatsnew/2.7.rst:2364 msgid "Port-Specific Changes: Mac OS X" msgstr "Cambios específicos en los puertos: Mac OS X" -#: ../Doc/whatsnew/2.7.rst:2365 +#: ../Doc/whatsnew/2.7.rst:2366 msgid "" "The path ``/Library/Python/2.7/site-packages`` is now appended to ``sys." "path``, in order to share added packages between the system installation and " @@ -4174,7 +4185,7 @@ msgstr "" "copia de la misma versión instalada por el usuario. (Cambiado por Ronald " "Oussoren; :issue:`4865`.)" -#: ../Doc/whatsnew/2.7.rst:2372 +#: ../Doc/whatsnew/2.7.rst:2373 msgid "" "As of 2.7.13, this change was removed. ``/Library/Python/2.7/site-" "packages``, the site-packages directory used by the Apple-supplied system " @@ -4195,11 +4206,11 @@ msgstr "" "Python ya no se compartirán con los Python instalados por el usuario. (:" "issue:`28440`)" -#: ../Doc/whatsnew/2.7.rst:2383 +#: ../Doc/whatsnew/2.7.rst:2384 msgid "Port-Specific Changes: FreeBSD" msgstr "Cambios específicos en los puertos: FreeBSD" -#: ../Doc/whatsnew/2.7.rst:2385 +#: ../Doc/whatsnew/2.7.rst:2386 msgid "" "FreeBSD 7.1's :const:`SO_SETFIB` constant, used with :func:`~socket." "getsockopt`/:func:`~socket.setsockopt` to select an alternate routing table, " @@ -4211,11 +4222,11 @@ msgstr "" "enrutamiento alternativa, está ahora disponible en el módulo :mod:`socket`. " "(Añadido por Kyle VanderBeek; :issue:`8235`.)" -#: ../Doc/whatsnew/2.7.rst:2391 +#: ../Doc/whatsnew/2.7.rst:2392 msgid "Other Changes and Fixes" msgstr "Otros cambios y correcciones" -#: ../Doc/whatsnew/2.7.rst:2393 +#: ../Doc/whatsnew/2.7.rst:2394 msgid "" "Two benchmark scripts, :file:`iobench` and :file:`ccbench`, were added to " "the :file:`Tools` directory. :file:`iobench` measures the speed of the " @@ -4232,7 +4243,7 @@ msgstr "" "hilos y el ancho de banda del procesamiento de E/S al realizar varias tareas " "utilizando un número variable de hilos." -#: ../Doc/whatsnew/2.7.rst:2401 +#: ../Doc/whatsnew/2.7.rst:2402 msgid "" "The :file:`Tools/i18n/msgfmt.py` script now understands plural forms in :" "file:`.po` files. (Fixed by Martin von Löwis; :issue:`5464`.)" @@ -4240,7 +4251,7 @@ msgstr "" "El script :file:`Tools/i18n/msgfmt.py` ahora entiende las formas plurales en " "los archivos :file:`.po`. (Corregido por Martin von Löwis; :issue:`5464`.)" -#: ../Doc/whatsnew/2.7.rst:2405 +#: ../Doc/whatsnew/2.7.rst:2406 msgid "" "When importing a module from a :file:`.pyc` or :file:`.pyo` file with an " "existing :file:`.py` counterpart, the :attr:`co_filename` attributes of the " @@ -4256,7 +4267,7 @@ msgstr "" "renombrado, movido, o se accede a él a través de diferentes rutas. (Parche " "de Ziga Seilnacht y Jean-Paul Calderone; :issue:`1180193`.)" -#: ../Doc/whatsnew/2.7.rst:2412 +#: ../Doc/whatsnew/2.7.rst:2413 msgid "" "The :file:`regrtest.py` script now takes a :option:`!--randseed=` switch " "that takes an integer that will be used as the random seed for the :option:" @@ -4269,7 +4280,7 @@ msgstr "" "`!-r` también informa de la semilla que se ha utilizado (Añadido por Collin " "Winter.)" -#: ../Doc/whatsnew/2.7.rst:2418 +#: ../Doc/whatsnew/2.7.rst:2419 msgid "" "Another :file:`regrtest.py` switch is :option:`!-j`, which takes an integer " "specifying how many tests run in parallel. This allows reducing the total " @@ -4288,7 +4299,7 @@ msgstr "" "option:`!-F` que ejecuta las pruebas seleccionadas en un bucle hasta que " "fallen. (Añadido por Antoine Pitrou; :issue:`7312`.)" -#: ../Doc/whatsnew/2.7.rst:2427 +#: ../Doc/whatsnew/2.7.rst:2428 msgid "" "When executed as a script, the :file:`py_compile.py` module now accepts " "``'-'`` as an argument, which will read standard input for the list of " @@ -4299,11 +4310,11 @@ msgstr "" "de nombres de archivos a compilar. (Contribuido por Piotr Ożarowski; :issue:" "`8233`.)" -#: ../Doc/whatsnew/2.7.rst:2435 +#: ../Doc/whatsnew/2.7.rst:2436 msgid "Porting to Python 2.7" msgstr "Adaptación a Python 2.7" -#: ../Doc/whatsnew/2.7.rst:2437 +#: ../Doc/whatsnew/2.7.rst:2438 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code:" @@ -4311,7 +4322,7 @@ 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.7.rst:2440 +#: ../Doc/whatsnew/2.7.rst:2441 msgid "" "The :func:`range` function processes its arguments more consistently; it " "will now call :meth:`__int__` on non-float, non-integer arguments that are " @@ -4321,7 +4332,7 @@ msgstr "" "ahora llamará a :meth:`__int__` en los argumentos no flotantes y no enteros " "que se le suministren. (Corregido por Alexander Belopolsky; :issue:`1533`.)" -#: ../Doc/whatsnew/2.7.rst:2445 +#: ../Doc/whatsnew/2.7.rst:2446 msgid "" "The string :meth:`format` method changed the default precision used for " "floating-point and complex numbers from 6 decimal places to 12, which " @@ -4333,7 +4344,7 @@ msgstr "" "12, que coincide con la precisión utilizada por :func:`str`. (Cambiado por " "Eric Smith; :issue:`5920`.)" -#: ../Doc/whatsnew/2.7.rst:2450 +#: ../Doc/whatsnew/2.7.rst:2451 msgid "" "Because of an optimization for the :keyword:`with` statement, the special " "methods :meth:`__enter__` and :meth:`__exit__` must belong to the object's " @@ -4347,7 +4358,7 @@ msgstr "" "afecta a las clases de nuevo estilo (derivadas de :class:`object`) y a los " "tipos de extensión de C. (:issue:`6101`.)" -#: ../Doc/whatsnew/2.7.rst:2456 +#: ../Doc/whatsnew/2.7.rst:2457 msgid "" "Due to a bug in Python 2.6, the *exc_value* parameter to :meth:`__exit__` " "methods was often the string representation of the exception, not an " @@ -4359,11 +4370,11 @@ msgstr "" "una instancia. Esto fue corregido en 2.7, así que *exc_value* será una " "instancia como se esperaba. (Corregido por Florent Xicluna; :issue:`7853`.)" -#: ../Doc/whatsnew/2.7.rst:2466 +#: ../Doc/whatsnew/2.7.rst:2467 msgid "In the standard library:" msgstr "En la biblioteca estándar:" -#: ../Doc/whatsnew/2.7.rst:2468 +#: ../Doc/whatsnew/2.7.rst:2469 msgid "" "Operations with :class:`~datetime.datetime` instances that resulted in a " "year falling outside the supported range didn't always raise :exc:" @@ -4377,7 +4388,7 @@ msgstr "" "lanzará la excepción. (Informado por Mark Leander, parche de Anand B. Pillai " "y Alexander Belopolsky; :issue:`7150`)" -#: ../Doc/whatsnew/2.7.rst:2474 +#: ../Doc/whatsnew/2.7.rst:2475 msgid "" "When using :class:`~decimal.Decimal` instances with a string's :meth:" "`format` method, the default alignment was previously left-alignment. This " @@ -4389,7 +4400,7 @@ msgstr "" "la izquierda. Se ha cambiado a alineación derecha, lo que podría cambiar la " "salida de sus programas. (Cambiado por Mark Dickinson; :issue:`6857`.)" -#: ../Doc/whatsnew/2.7.rst:2480 +#: ../Doc/whatsnew/2.7.rst:2481 msgid "" "Comparisons involving a signaling NaN value (or ``sNAN``) now signal :const:" "`~decimal.InvalidOperation` instead of silently returning a true or false " @@ -4402,7 +4413,7 @@ msgstr "" "comparación. Los valores NaN silenciosos (o ``NaN``) son ahora hashable. " "(Corregido por Mark Dickinson; :issue:`7279`.)" -#: ../Doc/whatsnew/2.7.rst:2492 +#: ../Doc/whatsnew/2.7.rst:2493 msgid "" "The :meth:`~StringIO.StringIO.readline` method of :class:`~StringIO." "StringIO` objects now does nothing when a negative length is requested, as " @@ -4412,11 +4423,11 @@ msgstr "" "`~StringIO.StringIO` ahora no hace nada cuando se solicita una longitud " "negativa, como hacen otros objetos tipo archivo. (:issue:`7348`)." -#: ../Doc/whatsnew/2.7.rst:2535 +#: ../Doc/whatsnew/2.7.rst:2536 msgid "For C extensions:" msgstr "Para las extensiones en C:" -#: ../Doc/whatsnew/2.7.rst:2537 +#: ../Doc/whatsnew/2.7.rst:2538 msgid "" "C extensions that use integer format codes with the ``PyArg_Parse*`` family " "of functions will now raise a :exc:`TypeError` exception instead of " @@ -4426,21 +4437,22 @@ msgstr "" "de funciones ``PyArg_Parse*`` ahora lanzarán una excepción :exc:`TypeError` " "en lugar de provocar un :exc:`DeprecationWarning` (:issue:`5080`)." -#: ../Doc/whatsnew/2.7.rst:2541 +#: ../Doc/whatsnew/2.7.rst:2542 +#, fuzzy msgid "" "Use the new :c:func:`PyOS_string_to_double` function instead of the old :c:" -"func:`PyOS_ascii_strtod` and :c:func:`PyOS_ascii_atof` functions, which are " -"now deprecated." +"func:`!PyOS_ascii_strtod` and :c:func:`!PyOS_ascii_atof` functions, which " +"are now deprecated." msgstr "" "Utilice la nueva función :c:func:`PyOS_string_to_double` en lugar de las " "antiguas funciones :c:func:`PyOS_ascii_strtod` y :c:func:`PyOS_ascii_atof`, " "que ya están obsoletas." -#: ../Doc/whatsnew/2.7.rst:2545 +#: ../Doc/whatsnew/2.7.rst:2546 msgid "For applications that embed Python:" msgstr "Para aplicaciones que incrustan Python:" -#: ../Doc/whatsnew/2.7.rst:2547 +#: ../Doc/whatsnew/2.7.rst:2548 msgid "" "The :c:func:`PySys_SetArgvEx` function was added, letting applications close " "a security hole when the existing :c:func:`PySys_SetArgv` function was " @@ -4454,12 +4466,12 @@ msgstr "" "`PySys_SetArgv` y considere cuidadosamente si la aplicación debería estar " "usando :c:func:`PySys_SetArgvEx` con *updatepath* establecido en false." -#: ../Doc/whatsnew/2.7.rst:2560 +#: ../Doc/whatsnew/2.7.rst:2561 msgid "New Features Added to Python 2.7 Maintenance Releases" msgstr "" "Nuevas funciones añadidas a las versiones de mantenimiento de Python 2.7" -#: ../Doc/whatsnew/2.7.rst:2562 +#: ../Doc/whatsnew/2.7.rst:2563 msgid "" "New features may be added to Python 2.7 maintenance releases when the " "situation genuinely calls for it. Any such additions must go through the " @@ -4474,7 +4486,7 @@ msgstr "" "de la nueva característica únicamente a Python 3, o bien mediante su " "publicación en el Índice de Paquetes de Python." -#: ../Doc/whatsnew/2.7.rst:2568 +#: ../Doc/whatsnew/2.7.rst:2569 msgid "" "In addition to the specific proposals listed below, there is a general " "exemption allowing new ``-3`` warnings to be added in any Python 2.7 " @@ -4484,11 +4496,11 @@ msgstr "" "exención general que permite añadir nuevas advertencias ``-3`` en cualquier " "versión de mantenimiento de Python 2.7." -#: ../Doc/whatsnew/2.7.rst:2574 +#: ../Doc/whatsnew/2.7.rst:2575 msgid "Two new environment variables for debug mode" msgstr "Dos nuevas variables de entorno para el modo de depuración" -#: ../Doc/whatsnew/2.7.rst:2576 +#: ../Doc/whatsnew/2.7.rst:2577 msgid "" "In debug mode, the ``[xxx refs]`` statistic is not written by default, the :" "envvar:`PYTHONSHOWREFCOUNT` environment variable now must also be set. " @@ -4498,7 +4510,7 @@ msgstr "" "defecto, la variable de entorno :envvar:`PYTHONSHOWREFCOUNT` ahora también " "debe ser establecida. (Contribución de Victor Stinner; :issue:`31733`.)" -#: ../Doc/whatsnew/2.7.rst:2580 +#: ../Doc/whatsnew/2.7.rst:2581 msgid "" "When Python is compiled with ``COUNT_ALLOC`` defined, allocation counts are " "no longer dumped by default anymore: the :envvar:`PYTHONSHOWALLOCCOUNT` " @@ -4512,11 +4524,11 @@ msgstr "" "recuentos de asignación se vuelcan ahora en stderr, en lugar de en stdout. " "(Contribución de Victor Stinner; :issue:`31692`.)" -#: ../Doc/whatsnew/2.7.rst:2589 +#: ../Doc/whatsnew/2.7.rst:2590 msgid "PEP 434: IDLE Enhancement Exception for All Branches" msgstr "PEP 434: Excepción de mejora de IDLE para todas las ramas" -#: ../Doc/whatsnew/2.7.rst:2591 +#: ../Doc/whatsnew/2.7.rst:2592 msgid "" ":pep:`434` describes a general exemption for changes made to the IDLE " "development environment shipped along with Python. This exemption makes it " @@ -4528,7 +4540,7 @@ msgstr "" "hace posible que los desarrolladores de IDLE proporcionen una experiencia de " "usuario más consistente en todas las versiones soportadas de Python 2 y 3." -#: ../Doc/whatsnew/2.7.rst:2596 +#: ../Doc/whatsnew/2.7.rst:2597 msgid "" "For details of any IDLE changes, refer to the NEWS file for the specific " "release." @@ -4536,11 +4548,11 @@ msgstr "" "Para conocer los detalles de los cambios de IDLE, consulte el archivo NEWS " "de la versión en cuestión." -#: ../Doc/whatsnew/2.7.rst:2601 +#: ../Doc/whatsnew/2.7.rst:2602 msgid "PEP 466: Network Security Enhancements for Python 2.7" msgstr "PEP 466: Mejoras en la seguridad de la red para Python 2.7" -#: ../Doc/whatsnew/2.7.rst:2603 +#: ../Doc/whatsnew/2.7.rst:2604 msgid "" ":pep:`466` describes a number of network security enhancement proposals that " "have been approved for inclusion in Python 2.7 maintenance releases, with " @@ -4551,11 +4563,11 @@ msgstr "" "mantenimiento de Python 2.7, y el primero de esos cambios aparecerá en la " "versión 2.7.7 de Python." -#: ../Doc/whatsnew/2.7.rst:2607 +#: ../Doc/whatsnew/2.7.rst:2608 msgid ":pep:`466` related features added in Python 2.7.7:" msgstr "Funciones relacionadas con `466` añadidas en Python 2.7.7:" -#: ../Doc/whatsnew/2.7.rst:2609 +#: ../Doc/whatsnew/2.7.rst:2610 msgid "" ":func:`hmac.compare_digest` was backported from Python 3 to make a timing " "attack resistant comparison operation available to Python 2 applications. " @@ -4565,7 +4577,7 @@ msgstr "" "operación de comparación resistente a los ataques de tiempo disponible para " "las aplicaciones de Python 2. (Contribuido por Alex Gaynor; :issue:`21306`.)" -#: ../Doc/whatsnew/2.7.rst:2613 +#: ../Doc/whatsnew/2.7.rst:2614 msgid "" "OpenSSL 1.0.1g was upgraded in the official Windows installers published on " "python.org. (Contributed by Zachary Ware; :issue:`21462`.)" @@ -4573,11 +4585,11 @@ msgstr "" "OpenSSL 1.0.1g fue actualizado en los instaladores oficiales de Windows " "publicados en python.org. (Contribuido por Zachary Ware; :issue:`21462`.)" -#: ../Doc/whatsnew/2.7.rst:2616 +#: ../Doc/whatsnew/2.7.rst:2617 msgid ":pep:`466` related features added in Python 2.7.8:" msgstr "Funciones relacionadas con `466` añadidas en Python 2.7.8:" -#: ../Doc/whatsnew/2.7.rst:2618 +#: ../Doc/whatsnew/2.7.rst:2619 msgid "" ":func:`hashlib.pbkdf2_hmac` was backported from Python 3 to make a hashing " "algorithm suitable for secure password storage broadly available to Python 2 " @@ -4588,7 +4600,7 @@ msgstr "" "ampliamente disponible para las aplicaciones de Python 2. (Contribuido por " "Alex Gaynor; :issue:`21304`.)" -#: ../Doc/whatsnew/2.7.rst:2622 +#: ../Doc/whatsnew/2.7.rst:2623 msgid "" "OpenSSL 1.0.1h was upgraded for the official Windows installers published on " "python.org. (contributed by Zachary Ware in :issue:`21671` for CVE-2014-0224)" @@ -4597,11 +4609,11 @@ msgstr "" "publicados en python.org. (contribuido por Zachary Ware en :issue:`21671` " "para CVE-2014-0224)" -#: ../Doc/whatsnew/2.7.rst:2625 +#: ../Doc/whatsnew/2.7.rst:2626 msgid ":pep:`466` related features added in Python 2.7.9:" msgstr "Funciones relacionadas con `466` añadidas en Python 2.7.9:" -#: ../Doc/whatsnew/2.7.rst:2627 +#: ../Doc/whatsnew/2.7.rst:2628 msgid "" "Most of Python 3.4's :mod:`ssl` module was backported. This means :mod:`ssl` " "now supports Server Name Indication, TLS1.x settings, access to the platform " @@ -4614,7 +4626,7 @@ msgstr "" "certificados de la plataforma, la clase :class:`~ssl.SSLContext`, y otras " "características. (Contribución de Alex Gaynor y David Reid; :issue:`21308`.)" -#: ../Doc/whatsnew/2.7.rst:2632 +#: ../Doc/whatsnew/2.7.rst:2633 msgid "" "Refer to the \"Version added: 2.7.9\" notes in the module documentation for " "specific details." @@ -4622,7 +4634,7 @@ msgstr "" "Consulte las notas \"Versión añadida: 2.7.9\" en la documentación del módulo " "para obtener detalles específicos." -#: ../Doc/whatsnew/2.7.rst:2635 +#: ../Doc/whatsnew/2.7.rst:2636 msgid "" ":func:`os.urandom` was changed to cache a file descriptor to ``/dev/" "urandom`` instead of reopening ``/dev/urandom`` on every call. (Contributed " @@ -4632,7 +4644,7 @@ msgstr "" "de fichero en ``/dev/urandom`` en lugar de reabrir ``/dev/urandom`` en cada " "llamada. (Contribuido por Alex Gaynor; :issue:`21305`.)" -#: ../Doc/whatsnew/2.7.rst:2639 +#: ../Doc/whatsnew/2.7.rst:2640 msgid "" ":data:`hashlib.algorithms_guaranteed` and :data:`hashlib." "algorithms_available` were backported from Python 3 to make it easier for " @@ -4644,11 +4656,11 @@ msgstr "" "2 la selección del algoritmo hash más potente disponible. (Contribuido por " "Alex Gaynor en :issue:`21307`)" -#: ../Doc/whatsnew/2.7.rst:2646 +#: ../Doc/whatsnew/2.7.rst:2647 msgid "PEP 477: Backport ensurepip (PEP 453) to Python 2.7" msgstr "PEP 477: Backport ensurepip (PEP 453) a Python 2.7" -#: ../Doc/whatsnew/2.7.rst:2648 +#: ../Doc/whatsnew/2.7.rst:2649 msgid "" ":pep:`477` approves the inclusion of the :pep:`453` ensurepip module and the " "improved documentation that was enabled by it in the Python 2.7 maintenance " @@ -4658,11 +4670,11 @@ msgstr "" "documentación mejorada que ha permitido en las versiones de mantenimiento de " "Python 2.7, apareciendo primero en la versión 2.7.9 de Python." -#: ../Doc/whatsnew/2.7.rst:2654 +#: ../Doc/whatsnew/2.7.rst:2655 msgid "Bootstrapping pip By Default" msgstr "Puesta en marcha de pip por defecto" -#: ../Doc/whatsnew/2.7.rst:2656 +#: ../Doc/whatsnew/2.7.rst:2657 msgid "" "The new :mod:`ensurepip` module (defined in :pep:`453`) provides a standard " "cross-platform mechanism to bootstrap the pip installer into Python " @@ -4678,7 +4690,7 @@ msgstr "" "actualizarán la versión incluida a la última versión de ``pip`` que esté " "disponible en el momento de crear la versión candidata." -#: ../Doc/whatsnew/2.7.rst:2663 +#: ../Doc/whatsnew/2.7.rst:2664 msgid "" "By default, the commands ``pip``, ``pipX`` and ``pipX.Y`` will be installed " "on all platforms (where X.Y stands for the version of the Python " @@ -4688,7 +4700,7 @@ msgstr "" "todas las plataformas (donde X.Y representa la versión de la instalación de " "Python), junto con el paquete de Python ``pip`` y sus dependencias." -#: ../Doc/whatsnew/2.7.rst:2667 +#: ../Doc/whatsnew/2.7.rst:2668 msgid "" "For CPython :ref:`source builds on POSIX systems `, " "the ``make install`` and ``make altinstall`` commands do not bootstrap " @@ -4701,7 +4713,7 @@ msgstr "" "través de las opciones de configuración, y anulado a través de las opciones " "del Makefile." -#: ../Doc/whatsnew/2.7.rst:2672 +#: ../Doc/whatsnew/2.7.rst:2673 msgid "" "On Windows and Mac OS X, the CPython installers now default to installing " "``pip`` along with CPython itself (users may opt out of installing it during " @@ -4718,7 +4730,7 @@ msgstr "" "contrario se puede acceder a través del lanzador de Python para Windows como " "``py -m pip``." -#: ../Doc/whatsnew/2.7.rst:2679 +#: ../Doc/whatsnew/2.7.rst:2680 msgid "" "As `discussed in the PEP`__, platform packagers may choose not to install " "these commands by default, as long as, when invoked, they provide clear and " @@ -4731,11 +4743,11 @@ msgstr "" "instalarlos en esa plataforma (normalmente utilizando el gestor de paquetes " "del sistema)." -#: ../Doc/whatsnew/2.7.rst:2688 +#: ../Doc/whatsnew/2.7.rst:2689 msgid "Documentation Changes" msgstr "Cambios en la documentación" -#: ../Doc/whatsnew/2.7.rst:2690 +#: ../Doc/whatsnew/2.7.rst:2691 msgid "" "As part of this change, the :ref:`installing-index` and :ref:`distributing-" "index` sections of the documentation have been completely redesigned as " @@ -4751,21 +4763,22 @@ msgstr "" "Authority mantenido `Python Packaging User Guide `__ y la documentación de los proyectos individuales." -#: ../Doc/whatsnew/2.7.rst:2698 +#: ../Doc/whatsnew/2.7.rst:2699 +#, fuzzy msgid "" "However, as this migration is currently still incomplete, the legacy " "versions of those guides remaining available as :ref:`install-index` and :" -"ref:`distutils-index`." +"ref:`setuptools-index`." msgstr "" "Sin embargo, como esta migración está aún incompleta, las versiones " "anteriores de esas guías siguen disponibles como :ref:`install-index` y :ref:" "`distutils-index`." -#: ../Doc/whatsnew/2.7.rst:2705 +#: ../Doc/whatsnew/2.7.rst:2706 msgid ":pep:`453` -- Explicit bootstrapping of pip in Python installations" msgstr ":pep:`453` -- Arranque explícito de pip en instalaciones de Python" -#: ../Doc/whatsnew/2.7.rst:2705 +#: ../Doc/whatsnew/2.7.rst:2706 msgid "" "PEP written by Donald Stufft and Nick Coghlan, implemented by Donald Stufft, " "Nick Coghlan, Martin von Löwis and Ned Deily." @@ -4773,14 +4786,14 @@ msgstr "" "PEP escrito por Donald Stufft y Nick Coghlan, implementado por Donald " "Stufft, Nick Coghlan, Martin von Löwis y Ned Deily." -#: ../Doc/whatsnew/2.7.rst:2709 +#: ../Doc/whatsnew/2.7.rst:2710 msgid "" "PEP 476: Enabling certificate verification by default for stdlib http clients" msgstr "" "PEP 476: Habilitar la verificación de certificados por defecto para los " "clientes http stdlib" -#: ../Doc/whatsnew/2.7.rst:2711 +#: ../Doc/whatsnew/2.7.rst:2712 msgid "" ":pep:`476` updated :mod:`httplib` and modules which use it, such as :mod:" "`urllib2` and :mod:`xmlrpclib`, to now verify that the server presents a " @@ -4797,7 +4810,7 @@ msgstr "" "significativamente la seguridad de muchas aplicaciones. Este cambio se " "realizó en la versión 2.7.9 de Python." -#: ../Doc/whatsnew/2.7.rst:2718 +#: ../Doc/whatsnew/2.7.rst:2719 msgid "" "For applications which require the old previous behavior, they can pass an " "alternate context::" @@ -4805,12 +4818,12 @@ msgstr "" "Para las aplicaciones que requieren el antiguo comportamiento anterior, " "pueden pasar un contexto alternativo::" -#: ../Doc/whatsnew/2.7.rst:2735 +#: ../Doc/whatsnew/2.7.rst:2736 msgid "PEP 493: HTTPS verification migration tools for Python 2.7" msgstr "" "PEP 493: Herramientas de migración de verificación HTTPS para Python 2.7" -#: ../Doc/whatsnew/2.7.rst:2737 +#: ../Doc/whatsnew/2.7.rst:2738 msgid "" ":pep:`493` provides additional migration tools to support a more incremental " "infrastructure upgrade process for environments containing applications and " @@ -4825,7 +4838,7 @@ msgstr "" "cuando se establecen conexiones HTTPS de cliente. Estas adiciones se " "realizaron en la versión 2.7.12 de Python." -#: ../Doc/whatsnew/2.7.rst:2743 +#: ../Doc/whatsnew/2.7.rst:2744 msgid "" "These tools are intended for use in cases where affected applications and " "services can't be modified to explicitly pass a more permissive SSL context " @@ -4835,7 +4848,7 @@ msgstr "" "aplicaciones y servicios afectados no pueden modificarse para pasar " "explícitamente un contexto SSL más permisivo al establecer la conexión." -#: ../Doc/whatsnew/2.7.rst:2747 +#: ../Doc/whatsnew/2.7.rst:2748 msgid "" "For applications and services which can't be modified at all, the new " "``PYTHONHTTPSVERIFY`` environment variable may be set to ``0`` to revert an " @@ -4847,7 +4860,7 @@ msgstr "" "``0`` para revertir todo un proceso de Python al comportamiento permisivo " "por defecto de Python 2.7.8 y anteriores." -#: ../Doc/whatsnew/2.7.rst:2752 +#: ../Doc/whatsnew/2.7.rst:2753 msgid "" "For cases where the connection establishment code can't be modified, but the " "overall application can be, the new :func:`ssl._https_verify_certificates` " @@ -4858,11 +4871,11 @@ msgstr "" "`ssl._https_verify_certificates` puede utilizarse para ajustar el " "comportamiento por defecto en tiempo de ejecución." -#: ../Doc/whatsnew/2.7.rst:2758 +#: ../Doc/whatsnew/2.7.rst:2759 msgid "New ``make regen-all`` build target" msgstr "Nuevo objetivo de construcción ``make regen-all``" -#: ../Doc/whatsnew/2.7.rst:2760 +#: ../Doc/whatsnew/2.7.rst:2761 msgid "" "To simplify cross-compilation, and to ensure that CPython can reliably be " "compiled without requiring an existing version of Python to already be " @@ -4875,7 +4888,7 @@ msgstr "" "no intenta recompilar implícitamente los archivos generados basándose en los " "tiempos de modificación de los archivos." -#: ../Doc/whatsnew/2.7.rst:2765 +#: ../Doc/whatsnew/2.7.rst:2766 msgid "" "Instead, a new ``make regen-all`` command has been added to force " "regeneration of these files when desired (e.g. after an initial version of " @@ -4886,7 +4899,7 @@ msgstr "" "que se haya construido una versión inicial de Python basada en las versiones " "pregeneradas)." -#: ../Doc/whatsnew/2.7.rst:2769 +#: ../Doc/whatsnew/2.7.rst:2770 msgid "" "More selective regeneration targets are also defined - see :source:`Makefile." "pre.in` for details." @@ -4894,15 +4907,15 @@ msgstr "" "También se definen objetivos de regeneración más selectivos - ver :source:" "`Makefile.pre.in` para más detalles." -#: ../Doc/whatsnew/2.7.rst:2772 ../Doc/whatsnew/2.7.rst:2785 +#: ../Doc/whatsnew/2.7.rst:2773 ../Doc/whatsnew/2.7.rst:2786 msgid "(Contributed by Victor Stinner in :issue:`23404`.)" msgstr "(Contribución de Victor Stinner en :issue:`23404`.)" -#: ../Doc/whatsnew/2.7.rst:2778 +#: ../Doc/whatsnew/2.7.rst:2779 msgid "Removal of ``make touch`` build target" msgstr "Eliminación del objetivo de construcción ``make touch``" -#: ../Doc/whatsnew/2.7.rst:2780 +#: ../Doc/whatsnew/2.7.rst:2781 msgid "" "The ``make touch`` build target previously used to request implicit " "regeneration of generated files by updating their modification times has " @@ -4912,15 +4925,15 @@ msgstr "" "se utilizaba para solicitar la regeneración implícita de los archivos " "generados mediante la actualización de sus tiempos de modificación." -#: ../Doc/whatsnew/2.7.rst:2783 +#: ../Doc/whatsnew/2.7.rst:2784 msgid "It has been replaced by the new ``make regen-all`` target." msgstr "Se ha sustituido por el nuevo objetivo ``make regen-all``." -#: ../Doc/whatsnew/2.7.rst:2794 +#: ../Doc/whatsnew/2.7.rst:2795 msgid "Acknowledgements" msgstr "Agradecimientos" -#: ../Doc/whatsnew/2.7.rst:2796 +#: ../Doc/whatsnew/2.7.rst:2797 msgid "" "The author would like to thank the following people for offering " "suggestions, corrections and assistance with various drafts of this article: " diff --git a/whatsnew/3.0.po b/whatsnew/3.0.po index ee974d1c46..59e0f40009 100644 --- a/whatsnew/3.0.po +++ b/whatsnew/3.0.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-11-29 11:59-0300\n" "Last-Translator: \n" -"Language-Team: python-doc-es\n" "Language: es_ES\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/whatsnew/3.0.rst:3 msgid "What's New In Python 3.0" @@ -1583,7 +1583,8 @@ msgstr "" "`__globals__`, :attr:`~definition.__name__`, respectivamente." #: ../Doc/whatsnew/3.0.rst:792 -msgid ":meth:`__nonzero__` is now :meth:`__bool__`." +#, fuzzy +msgid ":meth:`!__nonzero__` is now :meth:`~object.__bool__`." msgstr ":meth:`__nonzero__` ahora es :meth:`__bool__`." #: ../Doc/whatsnew/3.0.rst:795 @@ -1701,7 +1702,8 @@ msgstr "" "keyword:`for` explícito es más legible." #: ../Doc/whatsnew/3.0.rst:843 -msgid "Removed :func:`reload`. Use :func:`imp.reload`." +#, fuzzy +msgid "Removed :func:`reload`. Use :func:`!imp.reload`." msgstr "Se eliminó :func:`reload`. Se utiliza :func:`imp.reload`." #: ../Doc/whatsnew/3.0.rst:845 @@ -1748,9 +1750,10 @@ msgid "No more C API support for restricted execution." msgstr "No más compatibilidad con API C para ejecución restringida." #: ../Doc/whatsnew/3.0.rst:868 +#, fuzzy msgid "" -":c:func:`PyNumber_Coerce`, :c:func:`PyNumber_CoerceEx`, :c:func:" -"`PyMember_Get`, and :c:func:`PyMember_Set` C APIs are removed." +":c:func:`!PyNumber_Coerce`, :c:func:`!PyNumber_CoerceEx`, :c:func:`!" +"PyMember_Get`, and :c:func:`!PyMember_Set` C APIs are removed." msgstr "" "Las API C :c:func:`PyNumber_Coerce`, :c:func:`PyNumber_CoerceEx`, :c:func:" "`PyMember_Get`, y :c:func:`PyMember_Set` se eliminan." @@ -1774,8 +1777,10 @@ msgstr "" "``nb_nonzero`` ahora es ``nb_bool``." #: ../Doc/whatsnew/3.0.rst:878 +#, fuzzy msgid "" -"Removed :c:macro:`METH_OLDARGS` and :c:macro:`WITH_CYCLE_GC` from the C API." +"Removed :c:macro:`!METH_OLDARGS` and :c:macro:`!WITH_CYCLE_GC` from the C " +"API." msgstr "" "Se eliminó :c:macro:`METH_OLDARGS` y :c:macro:`WITH_CYCLE_GC` de la API C." diff --git a/whatsnew/3.1.po b/whatsnew/3.1.po index 3d96866e21..eae9855f5c 100644 --- a/whatsnew/3.1.po +++ b/whatsnew/3.1.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2020-10-22 15:48+0200\n" "Last-Translator: \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/whatsnew/3.1.rst:3 msgid "What's New In Python 3.1" @@ -596,7 +596,8 @@ msgstr "" "`seek`: :data:`SEEK_SET`, :data:`SEEK_CUR` y :data:`SEEK_END`." #: ../Doc/whatsnew/3.1.rst:373 -msgid "The :attr:`sys.version_info` tuple is now a named tuple::" +#, fuzzy +msgid "The :data:`sys.version_info` tuple is now a named tuple::" msgstr "La tupla :attr:`sys.version_info` es ahora una tupla nombrada::" #: ../Doc/whatsnew/3.1.rst:378 @@ -833,10 +834,11 @@ msgstr "" "escribir este valor predeterminado." #: ../Doc/whatsnew/3.1.rst:487 +#, fuzzy msgid "" "Apart from the performance improvements this change should be invisible to " "end users, with one exception: for testing and debugging purposes there's a " -"new :attr:`sys.int_info` that provides information about the internal " +"new :data:`sys.int_info` that provides information about the internal " "format, giving the number of bits per digit and the size in bytes of the C " "type used to store each digit::" msgstr "" @@ -864,8 +866,9 @@ msgid "(Contributed by Mark Dickinson and Lisandro Dalcrin; :issue:`5175`.)" msgstr "(Contribución de Mark Dickinson y Lisandro Dalcrin; :issue:`5175`.)" #: ../Doc/whatsnew/3.1.rst:504 +#, fuzzy msgid "" -"Deprecated :c:func:`PyNumber_Int`. Use :c:func:`PyNumber_Long` instead." +"Deprecated :c:func:`!PyNumber_Int`. Use :c:func:`PyNumber_Long` instead." msgstr "" ":c:func:`PyNumber_Int` está ahora obsoleto. Utilice :c:func:`PyNumber_Long` " "en su lugar." @@ -875,10 +878,11 @@ msgid "(Contributed by Mark Dickinson; :issue:`4910`.)" msgstr "(Contribución de Mark Dickinson; :issue:`4910`.)" #: ../Doc/whatsnew/3.1.rst:508 +#, fuzzy msgid "" "Added a new :c:func:`PyOS_string_to_double` function to replace the " -"deprecated functions :c:func:`PyOS_ascii_strtod` and :c:func:" -"`PyOS_ascii_atof`." +"deprecated functions :c:func:`!PyOS_ascii_strtod` and :c:func:`!" +"PyOS_ascii_atof`." msgstr "" "Se agrega una nueva función :c:func:`PyOS_string_to_double` para reemplazar " "las funciones obsoletas :c:func:`PyOS_ascii_strtod` y :c:func:" @@ -889,8 +893,9 @@ msgid "(Contributed by Mark Dickinson; :issue:`5914`.)" msgstr "(Contribución de Mark Dickinson; :issue:`5914`.)" #: ../Doc/whatsnew/3.1.rst:513 +#, fuzzy msgid "" -"Added :c:type:`PyCapsule` as a replacement for the :c:type:`PyCObject` API. " +"Added :c:type:`PyCapsule` as a replacement for the :c:type:`!PyCObject` API. " "The principal difference is that the new type has a well defined interface " "for passing typing safety information and a less complicated signature for " "calling a destructor. The old type had a problematic API and is now " diff --git a/whatsnew/3.10.po b/whatsnew/3.10.po index 9606a2929f..fa2b7fd765 100644 --- a/whatsnew/3.10.po +++ b/whatsnew/3.10.po @@ -8,47 +8,30 @@ msgid "" msgstr "" "Project-Id-Version: Python en Español 3.10\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-31 18:04-0300\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: \n" "Language: es\n" +"Language-Team: \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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/whatsnew/3.10.rst:3 msgid "What's New In Python 3.10" msgstr "Qué hay de nuevo en Python 3.10" -#: ../Doc/whatsnew/3.10.rst -msgid "Release" -msgstr "Versión" - -#: ../Doc/whatsnew/3.10.rst:5 -msgid "|release|" -msgstr "|release|" - -#: ../Doc/whatsnew/3.10.rst -msgid "Date" -msgstr "Fecha" - -#: ../Doc/whatsnew/3.10.rst:6 -msgid "|today|" -msgstr "|today|" - #: ../Doc/whatsnew/3.10.rst msgid "Editor" msgstr "Editor" -#: ../Doc/whatsnew/3.10.rst:7 +#: ../Doc/whatsnew/3.10.rst:5 msgid "Pablo Galindo Salgado" msgstr "Pablo Galindo Salgado" -#: ../Doc/whatsnew/3.10.rst:49 +#: ../Doc/whatsnew/3.10.rst:47 msgid "" "This article explains the new features in Python 3.10, compared to 3.9. " "Python 3.10 was released on October 4, 2021. For full details, see the :ref:" @@ -58,80 +41,85 @@ msgstr "" "comparación con la 3.9. Python 3.10 se publicó el 4 de octubre de 2021. Para " "obtener todos los detalles, consulte el :ref:`changelog `." -#: ../Doc/whatsnew/3.10.rst:54 +#: ../Doc/whatsnew/3.10.rst:52 msgid "Summary -- Release highlights" msgstr "Resumen: aspectos destacados de la versión" -#: ../Doc/whatsnew/3.10.rst:62 +#: ../Doc/whatsnew/3.10.rst:60 msgid "New syntax features:" msgstr "Nuevas funciones de sintaxis:" -#: ../Doc/whatsnew/3.10.rst:64 +#: ../Doc/whatsnew/3.10.rst:62 msgid ":pep:`634`, Structural Pattern Matching: Specification" msgstr ":pep:`634`, Coincidencia de patrones estructurales: Especificación" -#: ../Doc/whatsnew/3.10.rst:65 +#: ../Doc/whatsnew/3.10.rst:63 msgid ":pep:`635`, Structural Pattern Matching: Motivation and Rationale" msgstr "" ":pep:`635`, Coincidencia de patrones estructurales: motivación y fundamento" -#: ../Doc/whatsnew/3.10.rst:66 +#: ../Doc/whatsnew/3.10.rst:64 msgid ":pep:`636`, Structural Pattern Matching: Tutorial" msgstr ":pep:`636`, Coincidencia de patrones estructurales: Tutorial" -#: ../Doc/whatsnew/3.10.rst:67 +#: ../Doc/whatsnew/3.10.rst:65 msgid "" ":issue:`12782`, Parenthesized context managers are now officially allowed." msgstr "" ":issue:`12782`, los administradores de contexto entre paréntesis ahora están " "oficialmente permitidos." -#: ../Doc/whatsnew/3.10.rst:69 +#: ../Doc/whatsnew/3.10.rst:67 msgid "New features in the standard library:" msgstr "Nuevas funciones en la biblioteca estándar:" -#: ../Doc/whatsnew/3.10.rst:71 +#: ../Doc/whatsnew/3.10.rst:69 msgid ":pep:`618`, Add Optional Length-Checking To zip." msgstr ":pep:`618`, agregue verificación de longitud opcional al cierre." -#: ../Doc/whatsnew/3.10.rst:73 +#: ../Doc/whatsnew/3.10.rst:71 msgid "Interpreter improvements:" msgstr "Mejoras en el intérprete:" -#: ../Doc/whatsnew/3.10.rst:75 +#: ../Doc/whatsnew/3.10.rst:73 msgid ":pep:`626`, Precise line numbers for debugging and other tools." msgstr "" ":pep:`626`, números de línea precisos para depuración y otras herramientas." -#: ../Doc/whatsnew/3.10.rst:77 +#: ../Doc/whatsnew/3.10.rst:75 msgid "New typing features:" msgstr "Nuevas funciones de escritura:" -#: ../Doc/whatsnew/3.10.rst:79 +#: ../Doc/whatsnew/3.10.rst:77 msgid ":pep:`604`, Allow writing union types as X | Y" msgstr ":pep:`604`, Permitir escribir tipos de unión como X | Y" -#: ../Doc/whatsnew/3.10.rst:80 +#: ../Doc/whatsnew/3.10.rst:78 +msgid ":pep:`612`, Parameter Specification Variables" +msgstr ":pep:`612`, variables de especificación de parámetros" + +#: ../Doc/whatsnew/3.10.rst:79 msgid ":pep:`613`, Explicit Type Aliases" msgstr ":pep:`613`, alias de tipo explícito" -#: ../Doc/whatsnew/3.10.rst:81 -msgid ":pep:`612`, Parameter Specification Variables" -msgstr ":pep:`612`, variables de especificación de parámetros" +#: ../Doc/whatsnew/3.10.rst:80 +#, fuzzy +msgid ":pep:`647`, User-Defined Type Guards" +msgstr "PEP 647: protectores de tipo definidos por el usuario" -#: ../Doc/whatsnew/3.10.rst:83 +#: ../Doc/whatsnew/3.10.rst:82 msgid "Important deprecations, removals or restrictions:" msgstr "Desactivaciones, eliminaciones o restricciones importantes:" -#: ../Doc/whatsnew/3.10.rst:85 +#: ../Doc/whatsnew/3.10.rst:84 msgid ":pep:`644`, Require OpenSSL 1.1.1 or newer" msgstr ":pep:`644`, requiere OpenSSL 1.1.1 o más reciente" -#: ../Doc/whatsnew/3.10.rst:86 +#: ../Doc/whatsnew/3.10.rst:85 msgid ":pep:`632`, Deprecate distutils module." msgstr ":pep:`632`, módulo distutils obsoleto." -#: ../Doc/whatsnew/3.10.rst:87 +#: ../Doc/whatsnew/3.10.rst:86 msgid "" ":pep:`623`, Deprecate and prepare for the removal of the wstr member in " "PyUnicodeObject." @@ -139,23 +127,23 @@ msgstr "" ":pep:`623`, desaprobar y prepararse para la eliminación del miembro wstr en " "PyUnicodeObject." -#: ../Doc/whatsnew/3.10.rst:88 +#: ../Doc/whatsnew/3.10.rst:87 msgid ":pep:`624`, Remove Py_UNICODE encoder APIs" msgstr ":pep:`624`, eliminar las API del codificador Py_UNICODE" -#: ../Doc/whatsnew/3.10.rst:89 +#: ../Doc/whatsnew/3.10.rst:88 msgid ":pep:`597`, Add optional EncodingWarning" msgstr ":pep:`597`, agregar codificación opcional" -#: ../Doc/whatsnew/3.10.rst:93 ../Doc/whatsnew/3.10.rst:2055 +#: ../Doc/whatsnew/3.10.rst:92 ../Doc/whatsnew/3.10.rst:2042 msgid "New Features" msgstr "Nuevas características" -#: ../Doc/whatsnew/3.10.rst:98 +#: ../Doc/whatsnew/3.10.rst:97 msgid "Parenthesized context managers" msgstr "Administradores de contexto entre paréntesis" -#: ../Doc/whatsnew/3.10.rst:100 +#: ../Doc/whatsnew/3.10.rst:99 msgid "" "Using enclosing parentheses for continuation across multiple lines in " "context managers is now supported. This allows formatting a long collection " @@ -169,12 +157,12 @@ msgstr "" "similar a como era posible anteriormente con declaraciones de importación. " "Por ejemplo, todos estos ejemplos ahora son válidos:" -#: ../Doc/whatsnew/3.10.rst:131 +#: ../Doc/whatsnew/3.10.rst:130 msgid "" "it is also possible to use a trailing comma at the end of the enclosed group:" msgstr "también es posible usar una coma al final del grupo adjunto:" -#: ../Doc/whatsnew/3.10.rst:143 +#: ../Doc/whatsnew/3.10.rst:142 msgid "" "This new syntax uses the non LL(1) capacities of the new parser. Check :pep:" "`617` for more details." @@ -182,7 +170,7 @@ msgstr "" "Esta nueva sintaxis utiliza las capacidades no LL (1) del nuevo analizador. " "Consulte :pep:`617` para obtener más detalles." -#: ../Doc/whatsnew/3.10.rst:146 +#: ../Doc/whatsnew/3.10.rst:145 msgid "" "(Contributed by Guido van Rossum, Pablo Galindo and Lysandros Nikolaou in :" "issue:`12782` and :issue:`40334`.)" @@ -190,15 +178,15 @@ msgstr "" "(Contribuido por Guido van Rossum, Pablo Galindo y Lysandros Nikolaou en :" "issue:`12782` y :issue:`40334`.)" -#: ../Doc/whatsnew/3.10.rst:151 +#: ../Doc/whatsnew/3.10.rst:150 msgid "Better error messages" msgstr "Mejores mensajes de error" -#: ../Doc/whatsnew/3.10.rst:154 +#: ../Doc/whatsnew/3.10.rst:153 msgid "SyntaxErrors" msgstr "SyntaxErrors" -#: ../Doc/whatsnew/3.10.rst:156 +#: ../Doc/whatsnew/3.10.rst:155 msgid "" "When parsing code that contains unclosed parentheses or brackets the " "interpreter now includes the location of the unclosed bracket of parentheses " @@ -212,7 +200,7 @@ msgstr "" "una ubicación incorrecta. Por ejemplo, considere el siguiente código " "(observe el '{' sin cerrar):" -#: ../Doc/whatsnew/3.10.rst:167 +#: ../Doc/whatsnew/3.10.rst:166 msgid "" "Previous versions of the interpreter reported confusing places as the " "location of the syntax error:" @@ -220,11 +208,11 @@ msgstr "" "Las versiones anteriores del intérprete informaron lugares confusos como la " "ubicación del error de sintaxis:" -#: ../Doc/whatsnew/3.10.rst:177 +#: ../Doc/whatsnew/3.10.rst:176 msgid "but in Python 3.10 a more informative error is emitted:" msgstr "pero en Python 3.10 se emite un error más informativo:" -#: ../Doc/whatsnew/3.10.rst:187 +#: ../Doc/whatsnew/3.10.rst:186 msgid "" "In a similar way, errors involving unclosed string literals (single and " "triple quoted) now point to the start of the string instead of reporting EOF/" @@ -234,14 +222,14 @@ msgstr "" "(entre comillas simples y triples) ahora apuntan al inicio de la cadena en " "lugar de informar EOF / EOL." -#: ../Doc/whatsnew/3.10.rst:190 +#: ../Doc/whatsnew/3.10.rst:189 msgid "" "These improvements are inspired by previous work in the PyPy interpreter." msgstr "" "Estas mejoras están inspiradas en trabajos anteriores en el intérprete de " "PyPy." -#: ../Doc/whatsnew/3.10.rst:192 +#: ../Doc/whatsnew/3.10.rst:191 msgid "" "(Contributed by Pablo Galindo in :issue:`42864` and Batuhan Taskaya in :" "issue:`40176`.)" @@ -249,7 +237,7 @@ msgstr "" "(Contribuido por Pablo Galindo en :issue:`42864` y Batuhan Taskaya en :issue:" "`40176`.)" -#: ../Doc/whatsnew/3.10.rst:195 +#: ../Doc/whatsnew/3.10.rst:194 msgid "" ":exc:`SyntaxError` exceptions raised by the interpreter will now highlight " "the full error range of the expression that constitutes the syntax error " @@ -261,15 +249,15 @@ msgstr "" "error de sintaxis en sí, en lugar de solo dónde se detecta el problema. De " "esta manera, en lugar de mostrar (antes de Python 3.10):" -#: ../Doc/whatsnew/3.10.rst:208 +#: ../Doc/whatsnew/3.10.rst:207 msgid "now Python 3.10 will display the exception as:" msgstr "ahora Python 3.10 mostrará la excepción como:" -#: ../Doc/whatsnew/3.10.rst:218 +#: ../Doc/whatsnew/3.10.rst:217 msgid "This improvement was contributed by Pablo Galindo in :issue:`43914`." msgstr "Esta mejora fue aportada por Pablo Galindo en :issue:`43914`." -#: ../Doc/whatsnew/3.10.rst:220 +#: ../Doc/whatsnew/3.10.rst:219 msgid "" "A considerable amount of new specialized messages for :exc:`SyntaxError` " "exceptions have been incorporated. Some of the most notable ones are as " @@ -279,75 +267,75 @@ msgstr "" "especializados para excepciones :exc:`SyntaxError`. Algunos de los más " "notables son los siguientes:" -#: ../Doc/whatsnew/3.10.rst:223 +#: ../Doc/whatsnew/3.10.rst:222 msgid "Missing ``:`` before blocks:" msgstr "Falta ``:`` antes de los bloques:" -#: ../Doc/whatsnew/3.10.rst:233 +#: ../Doc/whatsnew/3.10.rst:232 msgid "(Contributed by Pablo Galindo in :issue:`42997`.)" msgstr "(Aportado por Pablo Galindo en :issue:`42997`.)" -#: ../Doc/whatsnew/3.10.rst:235 +#: ../Doc/whatsnew/3.10.rst:234 msgid "Unparenthesised tuples in comprehensions targets:" msgstr "Tuplas sin paréntesis en objetivos de comprensión:" -#: ../Doc/whatsnew/3.10.rst:245 +#: ../Doc/whatsnew/3.10.rst:244 msgid "(Contributed by Pablo Galindo in :issue:`43017`.)" msgstr "(Aportado por Pablo Galindo en :issue:`43017`.)" -#: ../Doc/whatsnew/3.10.rst:247 +#: ../Doc/whatsnew/3.10.rst:246 msgid "Missing commas in collection literals and between expressions:" msgstr "Faltan comas en literales de colección y entre expresiones:" -#: ../Doc/whatsnew/3.10.rst:260 +#: ../Doc/whatsnew/3.10.rst:259 msgid "(Contributed by Pablo Galindo in :issue:`43822`.)" msgstr "(Aportado por Pablo Galindo en :issue:`43822`.)" -#: ../Doc/whatsnew/3.10.rst:262 +#: ../Doc/whatsnew/3.10.rst:261 msgid "Multiple Exception types without parentheses:" msgstr "Varios tipos de excepciones sin paréntesis:" -#: ../Doc/whatsnew/3.10.rst:274 +#: ../Doc/whatsnew/3.10.rst:273 msgid "(Contributed by Pablo Galindo in :issue:`43149`.)" msgstr "(Aportado por Pablo Galindo en :issue:`43149`.)" -#: ../Doc/whatsnew/3.10.rst:276 +#: ../Doc/whatsnew/3.10.rst:275 msgid "Missing ``:`` and values in dictionary literals:" msgstr "Falta ``:`` y valores en literales de diccionario:" -#: ../Doc/whatsnew/3.10.rst:296 +#: ../Doc/whatsnew/3.10.rst:295 msgid "(Contributed by Pablo Galindo in :issue:`43823`.)" msgstr "(Aportado por Pablo Galindo en :issue:`43823`.)" -#: ../Doc/whatsnew/3.10.rst:298 +#: ../Doc/whatsnew/3.10.rst:297 msgid "``try`` blocks without ``except`` or ``finally`` blocks:" msgstr "Bloques ``try`` sin bloques ``except`` o ``finally``:" -#: ../Doc/whatsnew/3.10.rst:310 +#: ../Doc/whatsnew/3.10.rst:309 msgid "(Contributed by Pablo Galindo in :issue:`44305`.)" msgstr "(Aportado por Pablo Galindo en :issue:`44305`.)" -#: ../Doc/whatsnew/3.10.rst:312 +#: ../Doc/whatsnew/3.10.rst:311 msgid "Usage of ``=`` instead of ``==`` in comparisons:" msgstr "Uso de ``=`` en lugar de ``==`` en comparaciones:" -#: ../Doc/whatsnew/3.10.rst:322 +#: ../Doc/whatsnew/3.10.rst:321 msgid "(Contributed by Pablo Galindo in :issue:`43797`.)" msgstr "(Aportado por Pablo Galindo en :issue:`43797`.)" -#: ../Doc/whatsnew/3.10.rst:324 +#: ../Doc/whatsnew/3.10.rst:323 msgid "Usage of ``*`` in f-strings:" msgstr "Uso de ``*`` en f-strings:" -#: ../Doc/whatsnew/3.10.rst:334 +#: ../Doc/whatsnew/3.10.rst:333 msgid "(Contributed by Pablo Galindo in :issue:`41064`.)" msgstr "(Aportado por Pablo Galindo en :issue:`41064`.)" -#: ../Doc/whatsnew/3.10.rst:337 +#: ../Doc/whatsnew/3.10.rst:336 msgid "IndentationErrors" msgstr "Errores de sangría" -#: ../Doc/whatsnew/3.10.rst:339 +#: ../Doc/whatsnew/3.10.rst:338 msgid "" "Many :exc:`IndentationError` exceptions now have more context regarding what " "kind of block was expecting an indentation, including the location of the " @@ -357,11 +345,11 @@ msgstr "" "respecto a qué tipo de bloque esperaba una sangría, incluida la ubicación de " "la declaración:" -#: ../Doc/whatsnew/3.10.rst:354 +#: ../Doc/whatsnew/3.10.rst:353 msgid "AttributeErrors" msgstr "AttributeErrors" -#: ../Doc/whatsnew/3.10.rst:356 +#: ../Doc/whatsnew/3.10.rst:355 msgid "" "When printing :exc:`AttributeError`, :c:func:`PyErr_Display` will offer " "suggestions of similar attribute names in the object that the exception was " @@ -371,11 +359,11 @@ msgstr "" "sugerencias de nombres de atributos similares en el objeto desde el que se " "generó la excepción:" -#: ../Doc/whatsnew/3.10.rst:367 ../Doc/whatsnew/3.10.rst:389 +#: ../Doc/whatsnew/3.10.rst:366 ../Doc/whatsnew/3.10.rst:388 msgid "(Contributed by Pablo Galindo in :issue:`38530`.)" msgstr "(Contribuido por Pablo Galindo en :issue:`38530`.)" -#: ../Doc/whatsnew/3.10.rst:370 +#: ../Doc/whatsnew/3.10.rst:369 msgid "" "Notice this won't work if :c:func:`PyErr_Display` is not called to display " "the error which can happen if some other custom error display function is " @@ -386,11 +374,11 @@ msgstr "" "alguna otra función de visualización de error personalizada. Este es un " "escenario común en algunos REPL como IPython." -#: ../Doc/whatsnew/3.10.rst:375 +#: ../Doc/whatsnew/3.10.rst:374 msgid "NameErrors" msgstr "NameErrors" -#: ../Doc/whatsnew/3.10.rst:377 +#: ../Doc/whatsnew/3.10.rst:376 msgid "" "When printing :exc:`NameError` raised by the interpreter, :c:func:" "`PyErr_Display` will offer suggestions of similar variable names in the " @@ -400,7 +388,7 @@ msgstr "" "`PyErr_Display` ofrecerá sugerencias de nombres de variable similares en la " "función desde la que se generó la excepción:" -#: ../Doc/whatsnew/3.10.rst:392 +#: ../Doc/whatsnew/3.10.rst:391 msgid "" "Notice this won't work if :c:func:`PyErr_Display` is not called to display " "the error, which can happen if some other custom error display function is " @@ -411,12 +399,12 @@ msgstr "" "alguna otra función de visualización de error personalizada. Este es un " "escenario común en algunos REPL como IPython." -#: ../Doc/whatsnew/3.10.rst:398 +#: ../Doc/whatsnew/3.10.rst:397 msgid "PEP 626: Precise line numbers for debugging and other tools" msgstr "" "PEP 626: números de línea precisos para depuración y otras herramientas" -#: ../Doc/whatsnew/3.10.rst:400 +#: ../Doc/whatsnew/3.10.rst:399 msgid "" "PEP 626 brings more precise and reliable line numbers for debugging, " "profiling and coverage tools. Tracing events, with the correct line number, " @@ -428,7 +416,7 @@ msgstr "" "el número de línea correcto, se generan para todas las líneas de código " "ejecutadas y solo para las líneas de código que se ejecutan." -#: ../Doc/whatsnew/3.10.rst:403 +#: ../Doc/whatsnew/3.10.rst:402 msgid "" "The ``f_lineno`` attribute of frame objects will always contain the expected " "line number." @@ -436,7 +424,7 @@ msgstr "" "El atributo ``f_lineno`` de los objetos marco siempre contendrá el número de " "línea esperado." -#: ../Doc/whatsnew/3.10.rst:405 +#: ../Doc/whatsnew/3.10.rst:404 msgid "" "The ``co_lnotab`` attribute of code objects is deprecated and will be " "removed in 3.12. Code that needs to convert from offset to line number " @@ -446,11 +434,11 @@ msgstr "" "eliminará en 3.12. El código que necesita convertir de desplazamiento a " "número de línea debe usar el nuevo método ``co_lines()`` en su lugar." -#: ../Doc/whatsnew/3.10.rst:409 +#: ../Doc/whatsnew/3.10.rst:408 msgid "PEP 634: Structural Pattern Matching" msgstr "PEP 634: Coincidencia de patrones estructurales" -#: ../Doc/whatsnew/3.10.rst:411 +#: ../Doc/whatsnew/3.10.rst:410 msgid "" "Structural pattern matching has been added in the form of a *match " "statement* and *case statements* of patterns with associated actions. " @@ -467,15 +455,15 @@ msgstr "" "los datos y aplicar acciones específicas basadas en diferentes formas de " "datos." -#: ../Doc/whatsnew/3.10.rst:419 +#: ../Doc/whatsnew/3.10.rst:418 msgid "Syntax and operations" msgstr "Sintaxis y operaciones" -#: ../Doc/whatsnew/3.10.rst:421 +#: ../Doc/whatsnew/3.10.rst:420 msgid "The generic syntax of pattern matching is::" msgstr "La sintaxis genérica de la coincidencia de patrones es:" -#: ../Doc/whatsnew/3.10.rst:433 +#: ../Doc/whatsnew/3.10.rst:432 msgid "" "A match statement takes an expression and compares its value to successive " "patterns given as one or more case blocks. Specifically, pattern matching " @@ -485,15 +473,15 @@ msgstr "" "los patrones sucesivos dados como uno o más bloques de casos. " "Específicamente, la coincidencia de patrones funciona mediante:" -#: ../Doc/whatsnew/3.10.rst:437 +#: ../Doc/whatsnew/3.10.rst:436 msgid "using data with type and shape (the ``subject``)" msgstr "usando datos con tipo y forma (el ``subject``)" -#: ../Doc/whatsnew/3.10.rst:438 +#: ../Doc/whatsnew/3.10.rst:437 msgid "evaluating the ``subject`` in the ``match`` statement" msgstr "evaluar el ``subject`` en la declaración ``match``" -#: ../Doc/whatsnew/3.10.rst:439 +#: ../Doc/whatsnew/3.10.rst:438 msgid "" "comparing the subject with each pattern in a ``case`` statement from top to " "bottom until a match is confirmed." @@ -501,12 +489,12 @@ msgstr "" "comparar el sujeto con cada patrón en una declaración ``case`` de arriba a " "abajo hasta que se confirme una coincidencia." -#: ../Doc/whatsnew/3.10.rst:441 +#: ../Doc/whatsnew/3.10.rst:440 msgid "executing the action associated with the pattern of the confirmed match" msgstr "" "ejecutar la acción asociada con el patrón de la coincidencia confirmada" -#: ../Doc/whatsnew/3.10.rst:443 +#: ../Doc/whatsnew/3.10.rst:442 msgid "" "If an exact match is not confirmed, the last case, a wildcard ``_``, if " "provided, will be used as the matching case. If an exact match is not " @@ -518,11 +506,11 @@ msgstr "" "coincidencia exacta y no existe un comodín, todo el bloque de coincidencias " "es inactivo." -#: ../Doc/whatsnew/3.10.rst:449 +#: ../Doc/whatsnew/3.10.rst:448 msgid "Declarative approach" msgstr "Enfoque declarativo" -#: ../Doc/whatsnew/3.10.rst:451 +#: ../Doc/whatsnew/3.10.rst:450 msgid "" "Readers may be aware of pattern matching through the simple example of " "matching a subject (data object) to a literal (pattern) with the switch " @@ -537,7 +525,7 @@ msgstr "" "utiliza para comparar un objeto / expresión con declaraciones de casos que " "contienen literales." -#: ../Doc/whatsnew/3.10.rst:457 +#: ../Doc/whatsnew/3.10.rst:456 msgid "" "More powerful examples of pattern matching can be found in languages such as " "Scala and Elixir. With structural pattern matching, the approach is " @@ -549,7 +537,7 @@ msgstr "" "estructurales, el enfoque es \"declarativo\" y establece explícitamente las " "condiciones (los patrones) para que los datos coincidan." -#: ../Doc/whatsnew/3.10.rst:461 +#: ../Doc/whatsnew/3.10.rst:460 msgid "" "While an \"imperative\" series of instructions using nested \"if\" " "statements could be used to accomplish something similar to structural " @@ -570,11 +558,11 @@ msgstr "" "declaración de caso, su verdadero valor para Python radica en su manejo del " "tipo y la forma del sujeto." -#: ../Doc/whatsnew/3.10.rst:470 +#: ../Doc/whatsnew/3.10.rst:469 msgid "Simple pattern: match to a literal" msgstr "Patrón simple: coincidir con un literal" -#: ../Doc/whatsnew/3.10.rst:472 +#: ../Doc/whatsnew/3.10.rst:471 msgid "" "Let's look at this example as pattern matching in its simplest form: a " "value, the subject, being matched to several literals, the patterns. In the " @@ -589,7 +577,7 @@ msgstr "" "representan códigos de estado de solicitud. La acción asociada al caso se " "ejecuta después de una coincidencia:" -#: ../Doc/whatsnew/3.10.rst:489 +#: ../Doc/whatsnew/3.10.rst:488 msgid "" "If the above function is passed a ``status`` of 418, \"I'm a teapot\" is " "returned. If the above function is passed a ``status`` of 500, the case " @@ -605,17 +593,17 @@ msgstr "" "de la variable, ``_``, actúa como *wildcard* y asegura que el sujeto siempre " "coincidirá. El uso de ``_`` es opcional." -#: ../Doc/whatsnew/3.10.rst:496 +#: ../Doc/whatsnew/3.10.rst:495 msgid "" "You can combine several literals in a single pattern using ``|`` (\"or\")::" msgstr "" "Puede combinar varios literales en un solo patrón usando ``|`` (\"o\") ::" -#: ../Doc/whatsnew/3.10.rst:502 +#: ../Doc/whatsnew/3.10.rst:501 msgid "Behavior without the wildcard" msgstr "Comportamiento sin el comodín" -#: ../Doc/whatsnew/3.10.rst:504 +#: ../Doc/whatsnew/3.10.rst:503 msgid "" "If we modify the above example by removing the last case block, the example " "becomes::" @@ -623,7 +611,7 @@ msgstr "" "Si modificamos el ejemplo anterior eliminando el último bloque de caso, el " "ejemplo se convierte en:" -#: ../Doc/whatsnew/3.10.rst:516 +#: ../Doc/whatsnew/3.10.rst:515 msgid "" "Without the use of ``_`` in a case statement, a match may not exist. If no " "match exists, the behavior is a no-op. For example, if ``status`` of 500 is " @@ -634,11 +622,11 @@ msgstr "" "inactivo. Por ejemplo, si se pasa ``status`` de 500, se produce una no " "operación." -#: ../Doc/whatsnew/3.10.rst:521 +#: ../Doc/whatsnew/3.10.rst:520 msgid "Patterns with a literal and variable" msgstr "Patrones con un literal y una variable" -#: ../Doc/whatsnew/3.10.rst:523 +#: ../Doc/whatsnew/3.10.rst:522 msgid "" "Patterns can look like unpacking assignments, and a pattern may be used to " "bind variables. In this example, a data point can be unpacked to its x-" @@ -648,7 +636,7 @@ msgstr "" "usar un patrón para vincular variables. En este ejemplo, un punto de datos " "se puede descomprimir en su coordenada xy coordenada y:" -#: ../Doc/whatsnew/3.10.rst:540 +#: ../Doc/whatsnew/3.10.rst:539 msgid "" "The first pattern has two literals, ``(0, 0)``, and may be thought of as an " "extension of the literal pattern shown above. The next two patterns combine " @@ -662,11 +650,11 @@ msgstr "" "del sujeto (``point``). El cuarto patrón captura dos valores, lo que lo hace " "conceptualmente similar a la asignación de desembalaje ``(x, y) = point``." -#: ../Doc/whatsnew/3.10.rst:547 +#: ../Doc/whatsnew/3.10.rst:546 msgid "Patterns and classes" msgstr "Patrones y clases" -#: ../Doc/whatsnew/3.10.rst:549 +#: ../Doc/whatsnew/3.10.rst:548 msgid "" "If you are using classes to structure your data, you can use as a pattern " "the class name followed by an argument list resembling a constructor. This " @@ -677,11 +665,11 @@ msgstr "" "constructor. Este patrón tiene la capacidad de capturar atributos de clase " "en variables:" -#: ../Doc/whatsnew/3.10.rst:571 +#: ../Doc/whatsnew/3.10.rst:570 msgid "Patterns with positional parameters" msgstr "Patrones con parámetros posicionales" -#: ../Doc/whatsnew/3.10.rst:573 +#: ../Doc/whatsnew/3.10.rst:572 msgid "" "You can use positional parameters with some builtin classes that provide an " "ordering for their attributes (e.g. dataclasses). You can also define a " @@ -697,11 +685,11 @@ msgstr "" "establece en (\"x\", \"y\"), los siguientes patrones son todos equivalentes " "(y todos vinculan el atributo ``y`` a la variable ``var``):" -#: ../Doc/whatsnew/3.10.rst:585 +#: ../Doc/whatsnew/3.10.rst:584 msgid "Nested patterns" msgstr "Patrones anidados" -#: ../Doc/whatsnew/3.10.rst:587 +#: ../Doc/whatsnew/3.10.rst:586 msgid "" "Patterns can be arbitrarily nested. For example, if our data is a short " "list of points, it could be matched like this::" @@ -709,11 +697,11 @@ msgstr "" "Los patrones se pueden anidar arbitrariamente. Por ejemplo, si nuestros " "datos son una lista corta de puntos, podrían coincidir así:" -#: ../Doc/whatsnew/3.10.rst:603 +#: ../Doc/whatsnew/3.10.rst:602 msgid "Complex patterns and the wildcard" msgstr "Patrones complejos y el comodín" -#: ../Doc/whatsnew/3.10.rst:605 +#: ../Doc/whatsnew/3.10.rst:604 msgid "" "To this point, the examples have used ``_`` alone in the last case " "statement. A wildcard can be used in more complex patterns, such as " @@ -723,7 +711,7 @@ msgstr "" "declaración de caso. Se puede utilizar un comodín en patrones más complejos, " "como ``('error', code, _)``. Por ejemplo::" -#: ../Doc/whatsnew/3.10.rst:615 +#: ../Doc/whatsnew/3.10.rst:614 msgid "" "In the above case, ``test_variable`` will match for ('error', code, 100) and " "('error', code, 800)." @@ -731,11 +719,11 @@ msgstr "" "En el caso anterior, ``test_variable`` coincidirá con ('error', código, 100) " "y ('error', código, 800)." -#: ../Doc/whatsnew/3.10.rst:619 +#: ../Doc/whatsnew/3.10.rst:618 msgid "Guard" msgstr "Guardia" -#: ../Doc/whatsnew/3.10.rst:621 +#: ../Doc/whatsnew/3.10.rst:620 msgid "" "We can add an ``if`` clause to a pattern, known as a \"guard\". If the " "guard is false, ``match`` goes on to try the next case block. Note that " @@ -746,15 +734,15 @@ msgstr "" "Tenga en cuenta que la captura de valor ocurre antes de que se evalúe la " "guardia:" -#: ../Doc/whatsnew/3.10.rst:632 +#: ../Doc/whatsnew/3.10.rst:631 msgid "Other Key Features" msgstr "Otras características clave" -#: ../Doc/whatsnew/3.10.rst:634 +#: ../Doc/whatsnew/3.10.rst:633 msgid "Several other key features:" msgstr "Varias otras características clave:" -#: ../Doc/whatsnew/3.10.rst:636 +#: ../Doc/whatsnew/3.10.rst:635 msgid "" "Like unpacking assignments, tuple and list patterns have exactly the same " "meaning and actually match arbitrary sequences. Technically, the subject " @@ -769,7 +757,7 @@ msgstr "" "iteradores. Además, para evitar un error común, los patrones de secuencia no " "coinciden con las cadenas." -#: ../Doc/whatsnew/3.10.rst:642 +#: ../Doc/whatsnew/3.10.rst:641 msgid "" "Sequence patterns support wildcards: ``[x, y, *rest]`` and ``(x, y, *rest)`` " "work similar to wildcards in unpacking assignments. The name after ``*`` " @@ -782,7 +770,7 @@ msgstr "" "que ``(x, y, *_)`` coincide con una secuencia de al menos dos elementos sin " "vincular los elementos restantes." -#: ../Doc/whatsnew/3.10.rst:647 +#: ../Doc/whatsnew/3.10.rst:646 msgid "" "Mapping patterns: ``{\"bandwidth\": b, \"latency\": l}`` captures the " "``\"bandwidth\"`` and ``\"latency\"`` values from a dict. Unlike sequence " @@ -795,11 +783,11 @@ msgstr "" "un comodín ``**rest``. (Pero ``**_`` sería redundante, por lo que no está " "permitido)." -#: ../Doc/whatsnew/3.10.rst:652 +#: ../Doc/whatsnew/3.10.rst:651 msgid "Subpatterns may be captured using the ``as`` keyword::" msgstr "Los subpatrones se pueden capturar utilizando la palabra clave ``as``:" -#: ../Doc/whatsnew/3.10.rst:656 +#: ../Doc/whatsnew/3.10.rst:655 msgid "" "This binds x1, y1, x2, y2 like you would expect without the ``as`` clause, " "and p2 to the entire second item of the subject." @@ -807,7 +795,7 @@ msgstr "" "Esto vincula x1, y1, x2, y2 como cabría esperar sin la cláusula ``as`` y p2 " "a todo el segundo elemento del tema." -#: ../Doc/whatsnew/3.10.rst:659 +#: ../Doc/whatsnew/3.10.rst:658 msgid "" "Most literals are compared by equality. However, the singletons ``True``, " "``False`` and ``None`` are compared by identity." @@ -815,7 +803,7 @@ msgstr "" "La mayoría de los literales se comparan por igualdad. Sin embargo, los " "singleton ``True``, ``False`` y ``None`` se comparan por identidad." -#: ../Doc/whatsnew/3.10.rst:662 +#: ../Doc/whatsnew/3.10.rst:661 msgid "" "Named constants may be used in patterns. These named constants must be " "dotted names to prevent the constant from being interpreted as a capture " @@ -1233,9 +1221,10 @@ msgstr "" "issue:`43475`.)" #: ../Doc/whatsnew/3.10.rst:880 +#, fuzzy msgid "" "A :exc:`SyntaxError` (instead of a :exc:`NameError`) will be raised when " -"deleting the :const:`__debug__` constant. (Contributed by Dong-hee Na in :" +"deleting the :const:`__debug__` constant. (Contributed by Donghee Na in :" "issue:`45000`.)" msgstr "" "Un :exc:`SyntaxError` (en lugar de una constante :exc:`NameError`) se " @@ -1257,7 +1246,8 @@ msgid "New Modules" msgstr "Nuevos módulos" #: ../Doc/whatsnew/3.10.rst:890 -msgid "None yet." +#, fuzzy +msgid "None." msgstr "Ninguno todavía." #: ../Doc/whatsnew/3.10.rst:894 @@ -1958,10 +1948,11 @@ msgstr "" "en :issue:`41625`.)" #: ../Doc/whatsnew/3.10.rst:1256 +#, fuzzy msgid "" -"Add :data:`~os.O_EVTONLY`, :data:`~os.O_FSYNC`, :data:`~os.O_SYMLINK` and :" -"data:`~os.O_NOFOLLOW_ANY` for macOS. (Contributed by Dong-hee Na in :issue:" -"`43106`.)" +"Add :const:`~os.O_EVTONLY`, :const:`~os.O_FSYNC`, :const:`~os.O_SYMLINK` " +"and :const:`~os.O_NOFOLLOW_ANY` for macOS. (Contributed by Donghee Na in :" +"issue:`43106`.)" msgstr "" "Agregue :data:`~os.O_EVTONLY`, :data:`~os.O_FSYNC`, :data:`~os.O_SYMLINK` y :" "data:`~os.O_NOFOLLOW_ANY` para macOS. (Contribuido por Dong-hee Na en :issue:" @@ -2095,10 +2086,11 @@ msgid "shelve" msgstr "dejar de lado" #: ../Doc/whatsnew/3.10.rst:1322 +#, fuzzy msgid "" -"The :mod:`shelve` module now uses :data:`pickle.DEFAULT_PROTOCOL` by default " -"instead of :mod:`pickle` protocol ``3`` when creating shelves. (Contributed " -"by Zackery Spytz in :issue:`34204`.)" +"The :mod:`shelve` module now uses :const:`pickle.DEFAULT_PROTOCOL` by " +"default instead of :mod:`pickle` protocol ``3`` when creating shelves. " +"(Contributed by Zackery Spytz in :issue:`34204`.)" msgstr "" "El módulo :mod:`shelve` ahora usa :data:`pickle.DEFAULT_PROTOCOL` por " "defecto en lugar del protocolo :mod:`pickle` ``3`` al crear estantes. " @@ -2163,9 +2155,10 @@ msgstr "" "Christian Heimes en :pep:`644` y :issue:`43669`.)" #: ../Doc/whatsnew/3.10.rst:1358 +#, fuzzy msgid "" "The ssl module has preliminary support for OpenSSL 3.0.0 and new option :" -"data:`~ssl.OP_IGNORE_UNEXPECTED_EOF`. (Contributed by Christian Heimes in :" +"const:`~ssl.OP_IGNORE_UNEXPECTED_EOF`. (Contributed by Christian Heimes in :" "issue:`38820`, :issue:`43794`, :issue:`43788`, :issue:`43791`, :issue:" "`43799`, :issue:`43920`, :issue:`43789`, and :issue:`43811`.)" msgstr "" @@ -2238,8 +2231,9 @@ msgstr "" "por Christian Heimes en :issue:`42333`.)" #: ../Doc/whatsnew/3.10.rst:1390 +#, fuzzy msgid "" -"A new verify flag :data:`~ssl.VERIFY_X509_PARTIAL_CHAIN` has been added. " +"A new verify flag :const:`~ssl.VERIFY_X509_PARTIAL_CHAIN` has been added. " "(Contributed by l0x in :issue:`40849`.)" msgstr "" "Se ha agregado un nuevo indicador de verificación :data:`~ssl." @@ -2287,9 +2281,10 @@ msgid "_thread" msgstr "_hilo" #: ../Doc/whatsnew/3.10.rst:1415 +#, fuzzy msgid "" ":func:`_thread.interrupt_main` now takes an optional signal number to " -"simulate (the default is still :data:`signal.SIGINT`). (Contributed by " +"simulate (the default is still :const:`signal.SIGINT`). (Contributed by " "Antoine Pitrou in :issue:`43356`.)" msgstr "" ":func:`_thread.interrupt_main` ahora toma un número de señal opcional para " @@ -2651,10 +2646,11 @@ msgstr "" "rápido de media. (Aportado por Dino Viehland en :issue:`43452`.)" #: ../Doc/whatsnew/3.10.rst:1583 +#, fuzzy msgid "" "The following built-in functions now support the faster :pep:`590` " "vectorcall calling convention: :func:`map`, :func:`filter`, :func:" -"`reversed`, :func:`bool` and :func:`float`. (Contributed by Dong-hee Na and " +"`reversed`, :func:`bool` and :func:`float`. (Contributed by Donghee Na and " "Jeroen Demeyer in :issue:`43575`, :issue:`43287`, :issue:`41922`, :issue:" "`41873` and :issue:`41870`.)" msgstr "" @@ -2678,7 +2674,7 @@ msgstr "" "sido sus clases equivalentes en :mod:`gzip` y :mod:`lzma`. (Aportado por " "Inada Naoki en :issue:`43785`.)" -#: ../Doc/whatsnew/3.10.rst:1595 ../Doc/whatsnew/3.10.rst:2214 +#: ../Doc/whatsnew/3.10.rst:1595 ../Doc/whatsnew/3.10.rst:2201 msgid "Deprecated" msgstr "Obsoleto" @@ -2706,14 +2702,14 @@ msgstr "" "`43833`.)" #: ../Doc/whatsnew/3.10.rst:1608 +#, fuzzy msgid "" "Starting in this release, there will be a concerted effort to begin cleaning " "up old import semantics that were kept for Python 2.7 compatibility. " -"Specifically, :meth:`~importlib.abc.PathEntryFinder.find_loader`/:meth:" -"`~importlib.abc.Finder.find_module` (superseded by :meth:`~importlib.abc." -"Finder.find_spec`), :meth:`~importlib.abc.Loader.load_module` (superseded " -"by :meth:`~importlib.abc.Loader.exec_module`), :meth:`~importlib.abc.Loader." -"module_repr` (which the import system takes care of for you), the " +"Specifically, :meth:`!find_loader`/:meth:`!find_module` (superseded by :meth:" +"`~importlib.abc.Finder.find_spec`), :meth:`~importlib.abc.Loader." +"load_module` (superseded by :meth:`~importlib.abc.Loader.exec_module`), :" +"meth:`!module_repr` (which the import system takes care of for you), the " "``__package__`` attribute (superseded by ``__spec__.parent``), the " "``__loader__`` attribute (superseded by ``__spec__.loader``), and the " "``__cached__`` attribute (superseded by ``__spec__.cached``) will slowly be " @@ -2791,9 +2787,10 @@ msgstr "" "`26131`.)" #: ../Doc/whatsnew/3.10.rst:1648 +#, fuzzy msgid "" -"The use of :meth:`importlib.abc.MetaPathFinder.find_module` and :meth:" -"`importlib.abc.PathEntryFinder.find_module` by the import system now trigger " +"The use of :meth:`!importlib.abc.MetaPathFinder.find_module` and :meth:`!" +"importlib.abc.PathEntryFinder.find_module` by the import system now trigger " "an :exc:`ImportWarning` as :meth:`importlib.abc.MetaPathFinder.find_spec` " "and :meth:`importlib.abc.PathEntryFinder.find_spec` are preferred, " "respectively. You can use :func:`importlib.util.spec_from_loader` to help in " @@ -2808,8 +2805,9 @@ msgstr "" "Cannon en :issue:`42134`.)" #: ../Doc/whatsnew/3.10.rst:1657 +#, fuzzy msgid "" -"The use of :meth:`importlib.abc.PathEntryFinder.find_loader` by the import " +"The use of :meth:`!importlib.abc.PathEntryFinder.find_loader` by the import " "system now triggers an :exc:`ImportWarning` as :meth:`importlib.abc." "PathEntryFinder.find_spec` is preferred. You can use :func:`importlib.util." "spec_from_loader` to help in porting. (Contributed by Brett Cannon in :issue:" @@ -2822,15 +2820,16 @@ msgstr "" "(Contribuido por Brett Cannon en :issue:`43672`.)" #: ../Doc/whatsnew/3.10.rst:1663 -msgid "" -"The various implementations of :meth:`importlib.abc.MetaPathFinder." -"find_module` ( :meth:`importlib.machinery.BuiltinImporter.find_module`, :" -"meth:`importlib.machinery.FrozenImporter.find_module`, :meth:`importlib." -"machinery.WindowsRegistryFinder.find_module`, :meth:`importlib.machinery." -"PathFinder.find_module`, :meth:`importlib.abc.MetaPathFinder." -"find_module` ), :meth:`importlib.abc.PathEntryFinder.find_module` ( :meth:" -"`importlib.machinery.FileFinder.find_module` ), and :meth:`importlib.abc." -"PathEntryFinder.find_loader` ( :meth:`importlib.machinery.FileFinder." +#, fuzzy +msgid "" +"The various implementations of :meth:`!importlib.abc.MetaPathFinder." +"find_module` ( :meth:`!importlib.machinery.BuiltinImporter.find_module`, :" +"meth:`!importlib.machinery.FrozenImporter.find_module`, :meth:`!importlib." +"machinery.WindowsRegistryFinder.find_module`, :meth:`!importlib.machinery." +"PathFinder.find_module`, :meth:`!importlib.abc.MetaPathFinder." +"find_module` ), :meth:`!importlib.abc.PathEntryFinder.find_module` ( :meth:`!" +"importlib.machinery.FileFinder.find_module` ), and :meth:`!importlib.abc." +"PathEntryFinder.find_loader` ( :meth:`!importlib.machinery.FileFinder." "find_loader` ) now raise :exc:`DeprecationWarning` and are slated for " "removal in Python 3.12 (previously they were documented as deprecated in " "Python 3.4). (Contributed by Brett Cannon in :issue:`42135`.)" @@ -2848,12 +2847,13 @@ msgstr "" "obsoletas en Python 3.4). (Aportado por Brett Cannon en :issue:`42135`.)" #: ../Doc/whatsnew/3.10.rst:1678 +#, fuzzy msgid "" -":class:`importlib.abc.Finder` is deprecated (including its sole method, :" -"meth:`~importlib.abc.Finder.find_module`). Both :class:`importlib.abc." -"MetaPathFinder` and :class:`importlib.abc.PathEntryFinder` no longer inherit " -"from the class. Users should inherit from one of these two classes as " -"appropriate instead. (Contributed by Brett Cannon in :issue:`42135`.)" +":class:`!importlib.abc.Finder` is deprecated (including its sole method, :" +"meth:`!find_module`). Both :class:`importlib.abc.MetaPathFinder` and :class:" +"`importlib.abc.PathEntryFinder` no longer inherit from the class. Users " +"should inherit from one of these two classes as appropriate instead. " +"(Contributed by Brett Cannon in :issue:`42135`.)" msgstr "" ":class:`importlib.abc.Finder` está en desuso (incluido su único método, :" "meth:`~importlib.abc.Finder.find_module`). Tanto :class:`importlib.abc." @@ -2862,11 +2862,12 @@ msgstr "" "corresponda. (Contribuido por Brett Cannon en :issue:`42135`.)" #: ../Doc/whatsnew/3.10.rst:1685 +#, fuzzy msgid "" -"The deprecations of :mod:`imp`, :func:`importlib.find_loader`, :func:" -"`importlib.util.set_package_wrapper`, :func:`importlib.util." -"set_loader_wrapper`, :func:`importlib.util.module_for_loader`, :class:" -"`pkgutil.ImpImporter`, and :class:`pkgutil.ImpLoader` have all been updated " +"The deprecations of :mod:`!imp`, :func:`!importlib.find_loader`, :func:`!" +"importlib.util.set_package_wrapper`, :func:`!importlib.util." +"set_loader_wrapper`, :func:`!importlib.util.module_for_loader`, :class:`!" +"pkgutil.ImpImporter`, and :class:`!pkgutil.ImpLoader` have all been updated " "to list Python 3.12 as the slated version of removal (they began raising :" "exc:`DeprecationWarning` in previous versions of Python). (Contributed by " "Brett Cannon in :issue:`43720`.)" @@ -2880,11 +2881,12 @@ msgstr "" "Brett Cannon en :issue:`43720`.)" #: ../Doc/whatsnew/3.10.rst:1695 +#, fuzzy msgid "" "The import system now uses the ``__spec__`` attribute on modules before " -"falling back on :meth:`~importlib.abc.Loader.module_repr` for a module's " -"``__repr__()`` method. Removal of the use of ``module_repr()`` is scheduled " -"for Python 3.12. (Contributed by Brett Cannon in :issue:`42137`.)" +"falling back on :meth:`!module_repr` for a module's ``__repr__()`` method. " +"Removal of the use of ``module_repr()`` is scheduled for Python 3.12. " +"(Contributed by Brett Cannon in :issue:`42137`.)" msgstr "" "El sistema de importación ahora usa el atributo ``__spec__`` en los módulos " "antes de recurrir a :meth:`~importlib.abc.Loader.module_repr` para el método " @@ -2893,9 +2895,10 @@ msgstr "" "`42137`.)" #: ../Doc/whatsnew/3.10.rst:1701 +#, fuzzy msgid "" -":meth:`importlib.abc.Loader.module_repr`, :meth:`importlib.machinery." -"FrozenLoader.module_repr`, and :meth:`importlib.machinery.BuiltinLoader." +":meth:`!importlib.abc.Loader.module_repr`, :meth:`!importlib.machinery." +"FrozenLoader.module_repr`, and :meth:`!importlib.machinery.BuiltinLoader." "module_repr` are deprecated and slated for removal in Python 3.12. " "(Contributed by Brett Cannon in :issue:`42136`.)" msgstr "" @@ -2918,31 +2921,6 @@ msgstr "" #: ../Doc/whatsnew/3.10.rst:1712 msgid "" -":func:`asyncio.get_event_loop` now emits a deprecation warning if there is " -"no running event loop. In the future it will be an alias of :func:`~asyncio." -"get_running_loop`. :mod:`asyncio` functions which implicitly create :class:" -"`~asyncio.Future` or :class:`~asyncio.Task` objects now emit a deprecation " -"warning if there is no running event loop and no explicit *loop* argument is " -"passed: :func:`~asyncio.ensure_future`, :func:`~asyncio.wrap_future`, :func:" -"`~asyncio.gather`, :func:`~asyncio.shield`, :func:`~asyncio.as_completed` " -"and constructors of :class:`~asyncio.Future`, :class:`~asyncio.Task`, :class:" -"`~asyncio.StreamReader`, :class:`~asyncio.StreamReaderProtocol`. " -"(Contributed by Serhiy Storchaka in :issue:`39529`.)" -msgstr "" -":func:`asyncio.get_event_loop` ahora emite una advertencia de desaprobación " -"si no hay un bucle de eventos en ejecución. En el futuro será un alias de :" -"func:`~asyncio.get_running_loop`. Las funciones :mod:`asyncio` que crean " -"implícitamente objetos :class:`~asyncio.Future` o :class:`~asyncio.Task` " -"ahora emiten una advertencia de desuso si no hay un bucle de eventos en " -"ejecución y no se pasa un argumento *loop* explícito: :func:`~asyncio." -"ensure_future`, :func:`~asyncio.wrap_future`, :func:`~asyncio.gather`, :func:" -"`~asyncio.shield`, :func:`~asyncio.as_completed` y constructores de :class:" -"`~asyncio.Future`, :class:`~asyncio.Task`, :class:`~asyncio.StreamReader`, :" -"class:`~asyncio.StreamReaderProtocol`. (Aportado por Serhiy Storchaka en :" -"issue:`39529`.)" - -#: ../Doc/whatsnew/3.10.rst:1725 -msgid "" "The undocumented built-in function ``sqlite3.enable_shared_cache`` is now " "deprecated, scheduled for removal in Python 3.12. Its use is strongly " "discouraged by the SQLite3 documentation. See `the SQLite3 docs :func:`threading.current_thread`" msgstr "``threading.currentThread`` => :func:`threading.current_thread`" -#: ../Doc/whatsnew/3.10.rst:1737 +#: ../Doc/whatsnew/3.10.rst:1724 msgid "``threading.activeCount`` => :func:`threading.active_count`" msgstr "``threading.activeCount`` => :func:`threading.active_count`" -#: ../Doc/whatsnew/3.10.rst:1739 +#: ../Doc/whatsnew/3.10.rst:1726 msgid "" "``threading.Condition.notifyAll`` => :meth:`threading.Condition.notify_all`" msgstr "" "``threading.Condition.notifyAll`` => :meth:`threading.Condition.notify_all`" -#: ../Doc/whatsnew/3.10.rst:1742 +#: ../Doc/whatsnew/3.10.rst:1729 msgid "``threading.Event.isSet`` => :meth:`threading.Event.is_set`" msgstr "``threading.Event.isSet`` => :meth:`threading.Event.is_set`" -#: ../Doc/whatsnew/3.10.rst:1744 +#: ../Doc/whatsnew/3.10.rst:1731 msgid "``threading.Thread.setName`` => :attr:`threading.Thread.name`" msgstr "``threading.Thread.setName`` => :attr:`threading.Thread.name`" -#: ../Doc/whatsnew/3.10.rst:1746 +#: ../Doc/whatsnew/3.10.rst:1733 msgid "``threading.thread.getName`` => :attr:`threading.Thread.name`" msgstr "``threading.thread.getName`` => :attr:`threading.Thread.name`" -#: ../Doc/whatsnew/3.10.rst:1748 +#: ../Doc/whatsnew/3.10.rst:1735 msgid "``threading.Thread.isDaemon`` => :attr:`threading.Thread.daemon`" msgstr "``threading.Thread.isDaemon`` => :attr:`threading.Thread.daemon`" -#: ../Doc/whatsnew/3.10.rst:1750 +#: ../Doc/whatsnew/3.10.rst:1737 msgid "``threading.Thread.setDaemon`` => :attr:`threading.Thread.daemon`" msgstr "``threading.Thread.setDaemon`` => :attr:`threading.Thread.daemon`" -#: ../Doc/whatsnew/3.10.rst:1752 +#: ../Doc/whatsnew/3.10.rst:1739 msgid "(Contributed by Jelle Zijlstra in :gh:`87889`.)" msgstr "(Aportado por Jelle Zijlstra en :gh:`87889`.)" -#: ../Doc/whatsnew/3.10.rst:1754 +#: ../Doc/whatsnew/3.10.rst:1741 msgid "" ":meth:`pathlib.Path.link_to` is deprecated and slated for removal in Python " "3.12. Use :meth:`pathlib.Path.hardlink_to` instead. (Contributed by Barney " @@ -3010,7 +2988,7 @@ msgstr "" "eliminación en Python 3.12. Utilice :meth:`pathlib.Path.hardlink_to` en su " "lugar. (Contribuido por Barney Gale en :issue:`39950`.)" -#: ../Doc/whatsnew/3.10.rst:1758 +#: ../Doc/whatsnew/3.10.rst:1745 msgid "" "``cgi.log()`` is deprecated and slated for removal in Python 3.12. " "(Contributed by Inada Naoki in :issue:`41139`.)" @@ -3018,7 +2996,7 @@ msgstr "" "``cgi.log()`` está obsoleto y está programado para su eliminación en Python " "3.12. (Contribuido por Inada Naoki en :issue:`41139`.)" -#: ../Doc/whatsnew/3.10.rst:1761 +#: ../Doc/whatsnew/3.10.rst:1748 msgid "" "The following :mod:`ssl` features have been deprecated since Python 3.6, " "Python 3.7, or OpenSSL 1.1.0 and will be removed in 3.11:" @@ -3026,7 +3004,7 @@ msgstr "" "Las siguientes funciones de :mod:`ssl` han quedado obsoletas desde Python " "3.6, Python 3.7 u OpenSSL 1.1.0 y se eliminarán en 3.11:" -#: ../Doc/whatsnew/3.10.rst:1764 +#: ../Doc/whatsnew/3.10.rst:1751 msgid "" ":data:`~ssl.OP_NO_SSLv2`, :data:`~ssl.OP_NO_SSLv3`, :data:`~ssl." "OP_NO_TLSv1`, :data:`~ssl.OP_NO_TLSv1_1`, :data:`~ssl.OP_NO_TLSv1_2`, and :" @@ -3038,13 +3016,14 @@ msgstr "" "`~ssl.OP_NO_TLSv1_3` se reemplazan por :attr:`sslSSLContext.minimum_version` " "y :attr:`sslSSLContext.maximum_version`." -#: ../Doc/whatsnew/3.10.rst:1770 +#: ../Doc/whatsnew/3.10.rst:1757 +#, fuzzy msgid "" ":data:`~ssl.PROTOCOL_SSLv2`, :data:`~ssl.PROTOCOL_SSLv3`, :data:`~ssl." "PROTOCOL_SSLv23`, :data:`~ssl.PROTOCOL_TLSv1`, :data:`~ssl." -"PROTOCOL_TLSv1_1`, :data:`~ssl.PROTOCOL_TLSv1_2`, and :data:`~ssl." -"PROTOCOL_TLS` are deprecated in favor of :data:`~ssl.PROTOCOL_TLS_CLIENT` " -"and :data:`~ssl.PROTOCOL_TLS_SERVER`" +"PROTOCOL_TLSv1_1`, :data:`~ssl.PROTOCOL_TLSv1_2`, and :const:`~ssl." +"PROTOCOL_TLS` are deprecated in favor of :const:`~ssl.PROTOCOL_TLS_CLIENT` " +"and :const:`~ssl.PROTOCOL_TLS_SERVER`" msgstr "" ":data:`~ssl.PROTOCOL_SSLv2`, :data:`~ssl.PROTOCOL_SSLv3`, :data:`~ssl." "PROTOCOL_SSLv23`, :data:`~ssl.PROTOCOL_TLSv1`, :data:`~ssl." @@ -3052,22 +3031,22 @@ msgstr "" "están en desuso a favor de :data:`~ssl.PROTOCOL_TLS_CLIENT` y :data:`~ssl." "PROTOCOL_TLS_SERVER`" -#: ../Doc/whatsnew/3.10.rst:1776 +#: ../Doc/whatsnew/3.10.rst:1763 msgid "" ":func:`~ssl.wrap_socket` is replaced by :meth:`ssl.SSLContext.wrap_socket`" msgstr "" ":func:`~ssl.wrap_socket` es reemplazado por :meth:`ssl.SSLContext." "wrap_socket`" -#: ../Doc/whatsnew/3.10.rst:1778 +#: ../Doc/whatsnew/3.10.rst:1765 msgid ":func:`~ssl.match_hostname`" msgstr ":func:`~ssl.match_hostname`" -#: ../Doc/whatsnew/3.10.rst:1780 +#: ../Doc/whatsnew/3.10.rst:1767 msgid ":func:`~ssl.RAND_pseudo_bytes`, :func:`~ssl.RAND_egd`" msgstr ":func:`~ssl.RAND_pseudo_bytes`, :func:`~ssl.RAND_egd`" -#: ../Doc/whatsnew/3.10.rst:1782 +#: ../Doc/whatsnew/3.10.rst:1769 msgid "" "NPN features like :meth:`ssl.SSLSocket.selected_npn_protocol` and :meth:`ssl." "SSLContext.set_npn_protocols` are replaced by ALPN." @@ -3075,7 +3054,7 @@ msgstr "" "Las funciones NPN como :meth:`ssl.SSLSocket.selected_npn_protocol` y :meth:" "`ssl.SSLContext.set_npn_protocols` son reemplazadas por ALPN." -#: ../Doc/whatsnew/3.10.rst:1785 +#: ../Doc/whatsnew/3.10.rst:1772 msgid "" "The threading debug (:envvar:`PYTHONTHREADDEBUG` environment variable) is " "deprecated in Python 3.10 and will be removed in Python 3.12. This feature " @@ -3087,7 +3066,7 @@ msgstr "" "3.12. Esta característica requiere un :ref:`debug build of Python `. (Contribuido por Victor Stinner en :issue:`44584`.)" -#: ../Doc/whatsnew/3.10.rst:1790 +#: ../Doc/whatsnew/3.10.rst:1777 msgid "" "Importing from the ``typing.io`` and ``typing.re`` submodules will now emit :" "exc:`DeprecationWarning`. These submodules will be removed in a future " @@ -3101,11 +3080,11 @@ msgstr "" "importarse directamente desde :mod:`typing`. (Aportado por Sebastian Rittau " "en :issue:`38291`.)" -#: ../Doc/whatsnew/3.10.rst:1799 ../Doc/whatsnew/3.10.rst:2222 +#: ../Doc/whatsnew/3.10.rst:1786 ../Doc/whatsnew/3.10.rst:2209 msgid "Removed" msgstr "Eliminado" -#: ../Doc/whatsnew/3.10.rst:1801 +#: ../Doc/whatsnew/3.10.rst:1788 msgid "" "Removed special methods ``__int__``, ``__float__``, ``__floordiv__``, " "``__mod__``, ``__divmod__``, ``__rfloordiv__``, ``__rmod__`` and " @@ -3118,7 +3097,7 @@ msgstr "" "levantaron un :exc:`TypeError`. (Contribuido por Serhiy Storchaka en :issue:" "`41974`.)" -#: ../Doc/whatsnew/3.10.rst:1807 +#: ../Doc/whatsnew/3.10.rst:1794 msgid "" "The ``ParserBase.error()`` method from the private and undocumented " "``_markupbase`` module has been removed. :class:`html.parser.HTMLParser` is " @@ -3131,7 +3110,7 @@ msgstr "" "subclase de ``ParserBase`` y su implementación ``error()`` ya se eliminó en " "Python 3.5. (Contribuido por Berker Peksag en :issue:`31844`.)" -#: ../Doc/whatsnew/3.10.rst:1813 +#: ../Doc/whatsnew/3.10.rst:1800 msgid "" "Removed the ``unicodedata.ucnhash_CAPI`` attribute which was an internal " "PyCapsule object. The related private ``_PyUnicode_Name_CAPI`` structure was " @@ -3143,7 +3122,7 @@ msgstr "" "relacionada se movió a la API C interna. (Contribuido por Victor Stinner en :" "issue:`42157`.)" -#: ../Doc/whatsnew/3.10.rst:1818 +#: ../Doc/whatsnew/3.10.rst:1805 msgid "" "Removed the ``parser`` module, which was deprecated in 3.9 due to the switch " "to the new PEG parser, as well as all the C source and header files that " @@ -3155,7 +3134,7 @@ msgstr "" "C que solo usaba el analizador anterior, incluidos ``node.h``, ``parser.h``, " "``graminit.h`` y ``grammar.h``." -#: ../Doc/whatsnew/3.10.rst:1823 +#: ../Doc/whatsnew/3.10.rst:1810 msgid "" "Removed the Public C API functions ``PyParser_SimpleParseStringFlags``, " "``PyParser_SimpleParseStringFlagsFilename``, " @@ -3168,14 +3147,14 @@ msgstr "" "``PyParser_SimpleParseFileFlags`` y ``PyNode_Compile`` que estaban en desuso " "en 3.9 debido al cambio al nuevo analizador PEG." -#: ../Doc/whatsnew/3.10.rst:1828 +#: ../Doc/whatsnew/3.10.rst:1815 +#, fuzzy msgid "" "Removed the ``formatter`` module, which was deprecated in Python 3.4. It is " "somewhat obsolete, little used, and not tested. It was originally scheduled " "to be removed in Python 3.6, but such removals were delayed until after " "Python 2.7 EOL. Existing users should copy whatever classes they use into " -"their code. (Contributed by Dong-hee Na and Terry J. Reedy in :issue:" -"`42299`.)" +"their code. (Contributed by Donghee Na and Terry J. Reedy in :issue:`42299`.)" msgstr "" "Se eliminó el módulo ``formatter``, que estaba en desuso en Python 3.4. Es " "algo obsoleto, poco usado y no probado. Originalmente estaba programado para " @@ -3184,17 +3163,18 @@ msgstr "" "clase que utilicen en su código. (Contribuido por Dong-hee Na y Terry J. " "Reedy en :issue:`42299`.)" -#: ../Doc/whatsnew/3.10.rst:1835 +#: ../Doc/whatsnew/3.10.rst:1822 +#, fuzzy msgid "" -"Removed the :c:func:`PyModule_GetWarningsModule` function that was useless " -"now due to the _warnings module was converted to a builtin module in 2.6. " -"(Contributed by Hai Shi in :issue:`42599`.)" +"Removed the :c:func:`!PyModule_GetWarningsModule` function that was useless " +"now due to the :mod:`!_warnings` module was converted to a builtin module in " +"2.6. (Contributed by Hai Shi in :issue:`42599`.)" msgstr "" "Se eliminó la función :c:func:`PyModule_GetWarningsModule` que ahora era " "inútil debido a que el módulo _warnings se convirtió en un módulo " "incorporado en 2.6. (Contribuido por Hai Shi en :issue:`42599`.)" -#: ../Doc/whatsnew/3.10.rst:1839 +#: ../Doc/whatsnew/3.10.rst:1826 msgid "" "Remove deprecated aliases to :ref:`collections-abstract-base-classes` from " "the :mod:`collections` module. (Contributed by Victor Stinner in :issue:" @@ -3204,7 +3184,7 @@ msgstr "" "módulo :mod:`collections`. (Contribuido por Victor Stinner en :issue:" "`37324`.)" -#: ../Doc/whatsnew/3.10.rst:1843 +#: ../Doc/whatsnew/3.10.rst:1830 msgid "" "The ``loop`` parameter has been removed from most of :mod:`asyncio`\\ 's :" "doc:`high-level API <../library/asyncio-api-index>` following deprecation in " @@ -3214,11 +3194,11 @@ msgstr "" "doc:`API de alto nivel <../library/asyncio-api-index>` después de la " "desaprobación en Python 3.8. La motivación detrás de este cambio es múltiple:" -#: ../Doc/whatsnew/3.10.rst:1847 +#: ../Doc/whatsnew/3.10.rst:1834 msgid "This simplifies the high-level API." msgstr "Esto simplifica la API de alto nivel." -#: ../Doc/whatsnew/3.10.rst:1848 +#: ../Doc/whatsnew/3.10.rst:1835 msgid "" "The functions in the high-level API have been implicitly getting the current " "thread's running event loop since Python 3.7. There isn't a need to pass " @@ -3229,7 +3209,7 @@ msgstr "" "pasar el bucle de eventos a la API en la mayoría de los casos de uso " "normales." -#: ../Doc/whatsnew/3.10.rst:1851 +#: ../Doc/whatsnew/3.10.rst:1838 msgid "" "Event loop passing is error-prone especially when dealing with loops running " "in different threads." @@ -3237,7 +3217,7 @@ msgstr "" "El paso de bucles de eventos es propenso a errores, especialmente cuando se " "trata de bucles que se ejecutan en diferentes subprocesos." -#: ../Doc/whatsnew/3.10.rst:1854 +#: ../Doc/whatsnew/3.10.rst:1841 msgid "" "Note that the low-level API will still accept ``loop``. See :ref:`changes-" "python-api` for examples of how to replace existing code." @@ -3246,7 +3226,7 @@ msgstr "" "Consulte :ref:`changes-python-api` para ver ejemplos de cómo reemplazar el " "código existente." -#: ../Doc/whatsnew/3.10.rst:1857 ../Doc/whatsnew/3.10.rst:1929 +#: ../Doc/whatsnew/3.10.rst:1844 ../Doc/whatsnew/3.10.rst:1916 msgid "" "(Contributed by Yurii Karabas, Andrew Svetlov, Yury Selivanov and Kyle " "Stanley in :issue:`42392`.)" @@ -3254,11 +3234,11 @@ msgstr "" "(Contribuido por Yurii Karabas, Andrew Svetlov, Yury Selivanov y Kyle " "Stanley en :issue:`42392`.)" -#: ../Doc/whatsnew/3.10.rst:1862 ../Doc/whatsnew/3.10.rst:2149 +#: ../Doc/whatsnew/3.10.rst:1849 ../Doc/whatsnew/3.10.rst:2136 msgid "Porting to Python 3.10" msgstr "Portar a Python 3.10" -#: ../Doc/whatsnew/3.10.rst:1864 +#: ../Doc/whatsnew/3.10.rst:1851 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code." @@ -3266,11 +3246,11 @@ msgstr "" "Esta sección enumera los cambios descritos anteriormente y otras " "correcciones de errores que pueden requerir cambios en su código." -#: ../Doc/whatsnew/3.10.rst:1869 +#: ../Doc/whatsnew/3.10.rst:1856 msgid "Changes in the Python syntax" msgstr "Cambios en la sintaxis de Python" -#: ../Doc/whatsnew/3.10.rst:1871 +#: ../Doc/whatsnew/3.10.rst:1858 msgid "" "Deprecation warning is now emitted when compiling previously valid syntax if " "the numeric literal is immediately followed by a keyword (like in ``0in " @@ -3288,11 +3268,11 @@ msgstr "" "y la siguiente palabra clave. (Aportado por Serhiy Storchaka en :issue:" "`43833`.)" -#: ../Doc/whatsnew/3.10.rst:1882 +#: ../Doc/whatsnew/3.10.rst:1869 msgid "Changes in the Python API" msgstr "Cambios en la API de Python" -#: ../Doc/whatsnew/3.10.rst:1884 +#: ../Doc/whatsnew/3.10.rst:1871 msgid "" "The *etype* parameters of the :func:`~traceback.format_exception`, :func:" "`~traceback.format_exception_only`, and :func:`~traceback.print_exception` " @@ -3305,7 +3285,7 @@ msgstr "" "renombradas a *exc*. (Contribuido por Zackery Spytz y Matthias Bussonnier " "en :issue:`26389`.)" -#: ../Doc/whatsnew/3.10.rst:1890 +#: ../Doc/whatsnew/3.10.rst:1877 msgid "" ":mod:`atexit`: At Python exit, if a callback registered with :func:`atexit." "register` fails, its exception is now logged. Previously, only some " @@ -3318,7 +3298,7 @@ msgstr "" "siempre se ignoraba en silencio. (Contribuido por Victor Stinner en :issue:" "`42639`.)" -#: ../Doc/whatsnew/3.10.rst:1896 +#: ../Doc/whatsnew/3.10.rst:1883 msgid "" ":class:`collections.abc.Callable` generic now flattens type parameters, " "similar to what :data:`typing.Callable` currently does. This means that " @@ -3340,7 +3320,7 @@ msgstr "" "`collections.abc.Callable` que pueden haber pasado silenciosamente en Python " "3.9. (Contribuido por Ken Jin en :issue:`42195`.)" -#: ../Doc/whatsnew/3.10.rst:1906 +#: ../Doc/whatsnew/3.10.rst:1893 msgid "" ":meth:`socket.htons` and :meth:`socket.ntohs` now raise :exc:`OverflowError` " "instead of :exc:`DeprecationWarning` if the given parameter will not fit in " @@ -3352,7 +3332,7 @@ msgstr "" "no cabe en un entero sin signo de 16 bits. (Contribuido por Erlend E. " "Aasland en :issue:`42393`.)" -#: ../Doc/whatsnew/3.10.rst:1911 +#: ../Doc/whatsnew/3.10.rst:1898 msgid "" "The ``loop`` parameter has been removed from most of :mod:`asyncio`\\ 's :" "doc:`high-level API <../library/asyncio-api-index>` following deprecation in " @@ -3362,15 +3342,15 @@ msgstr "" "doc:`API de alto nivel <../library/asyncio-api-index>` después de la " "desaprobación en Python 3.8." -#: ../Doc/whatsnew/3.10.rst:1915 +#: ../Doc/whatsnew/3.10.rst:1902 msgid "A coroutine that currently looks like this::" msgstr "Una corrutina que actualmente se ve así:" -#: ../Doc/whatsnew/3.10.rst:1920 +#: ../Doc/whatsnew/3.10.rst:1907 msgid "Should be replaced with this::" msgstr "Debería ser reemplazado por esto:" -#: ../Doc/whatsnew/3.10.rst:1925 +#: ../Doc/whatsnew/3.10.rst:1912 msgid "" "If ``foo()`` was specifically designed *not* to run in the current thread's " "running event loop (e.g. running in another thread's event loop), consider " @@ -3381,7 +3361,7 @@ msgstr "" "bucle de eventos de otro hilo), considere usar :func:`asyncio." "run_coroutine_threadsafe` en su lugar." -#: ../Doc/whatsnew/3.10.rst:1932 +#: ../Doc/whatsnew/3.10.rst:1919 msgid "" "The :data:`types.FunctionType` constructor now inherits the current builtins " "if the *globals* dictionary has no ``\"__builtins__\"`` key, rather than " @@ -3399,11 +3379,11 @@ msgstr "" "los globales no se pueden anular con esta sintaxis: también hereda las " "incorporaciones actuales. (Contribuido por Victor Stinner en :issue:`42990`.)" -#: ../Doc/whatsnew/3.10.rst:1941 +#: ../Doc/whatsnew/3.10.rst:1928 msgid "Changes in the C API" msgstr "Cambios en la API de C" -#: ../Doc/whatsnew/3.10.rst:1943 +#: ../Doc/whatsnew/3.10.rst:1930 msgid "" "The C API functions ``PyParser_SimpleParseStringFlags``, " "``PyParser_SimpleParseStringFlagsFilename``, " @@ -3417,7 +3397,7 @@ msgstr "" "por estas funciones, ``struct _node``, se eliminaron debido al cambio al " "nuevo analizador PEG." -#: ../Doc/whatsnew/3.10.rst:1949 +#: ../Doc/whatsnew/3.10.rst:1936 msgid "" "Source should be now be compiled directly to a code object using, for " "example, :c:func:`Py_CompileString`. The resulting code object can then be " @@ -3428,11 +3408,11 @@ msgstr "" "objeto de código resultante se puede evaluar utilizando, por ejemplo, :c:" "func:`PyEval_EvalCode`." -#: ../Doc/whatsnew/3.10.rst:1953 +#: ../Doc/whatsnew/3.10.rst:1940 msgid "Specifically:" msgstr "Específicamente:" -#: ../Doc/whatsnew/3.10.rst:1955 +#: ../Doc/whatsnew/3.10.rst:1942 msgid "" "A call to ``PyParser_SimpleParseStringFlags`` followed by ``PyNode_Compile`` " "can be replaced by calling :c:func:`Py_CompileString`." @@ -3440,7 +3420,7 @@ msgstr "" "Una llamada a ``PyParser_SimpleParseStringFlags`` seguida de " "``PyNode_Compile`` se puede reemplazar llamando a :c:func:`Py_CompileString`." -#: ../Doc/whatsnew/3.10.rst:1958 +#: ../Doc/whatsnew/3.10.rst:1945 msgid "" "There is no direct replacement for ``PyParser_SimpleParseFileFlags``. To " "compile code from a ``FILE *`` argument, you will need to read the file in C " @@ -3450,7 +3430,7 @@ msgstr "" "compilar código a partir de un argumento ``FILE *``, deberá leer el archivo " "en C y pasar el búfer resultante a :c:func:`Py_CompileString`." -#: ../Doc/whatsnew/3.10.rst:1962 +#: ../Doc/whatsnew/3.10.rst:1949 msgid "" "To compile a file given a ``char *`` filename, explicitly open the file, " "read it and compile the result. One way to do this is using the :py:mod:`io` " @@ -3465,7 +3445,7 @@ msgstr "" "`PyBytes_AsString` y :c:func:`Py_CompileString`, como se muestra a " "continuación. (Se omiten las declaraciones y el manejo de errores). ::" -#: ../Doc/whatsnew/3.10.rst:1975 +#: ../Doc/whatsnew/3.10.rst:1962 msgid "" "For ``FrameObject`` objects, the ``f_lasti`` member now represents a " "wordcode offset instead of a simple offset into the bytecode string. This " @@ -3482,11 +3462,11 @@ msgstr "" "cuenta también que el miembro ``f_lasti`` de los objetos ``FrameObject`` no " "se considera estable: utilice :c:func:`PyFrame_GetLineNumber` en su lugar." -#: ../Doc/whatsnew/3.10.rst:1983 +#: ../Doc/whatsnew/3.10.rst:1970 msgid "CPython bytecode changes" msgstr "Cambios en el código de bytes de CPython" -#: ../Doc/whatsnew/3.10.rst:1985 +#: ../Doc/whatsnew/3.10.rst:1972 msgid "" "The ``MAKE_FUNCTION`` instruction now accepts either a dict or a tuple of " "strings as the function's annotations. (Contributed by Yurii Karabas and " @@ -3496,11 +3476,11 @@ msgstr "" "como anotaciones de la función. (Aportado por Yurii Karabas e Inada Naoki " "en :issue:`42202`.)" -#: ../Doc/whatsnew/3.10.rst:1990 +#: ../Doc/whatsnew/3.10.rst:1977 msgid "Build Changes" msgstr "Construir cambios" -#: ../Doc/whatsnew/3.10.rst:1992 +#: ../Doc/whatsnew/3.10.rst:1979 msgid "" ":pep:`644`: Python now requires OpenSSL 1.1.1 or newer. OpenSSL 1.0.2 is no " "longer supported. (Contributed by Christian Heimes in :issue:`43669`.)" @@ -3509,7 +3489,7 @@ msgstr "" "1.0.2 ya no es compatible. (Contribuido por Christian Heimes en :issue:" "`43669`.)" -#: ../Doc/whatsnew/3.10.rst:1996 +#: ../Doc/whatsnew/3.10.rst:1983 msgid "" "The C99 functions :c:func:`snprintf` and :c:func:`vsnprintf` are now " "required to build Python. (Contributed by Victor Stinner in :issue:`36020`.)" @@ -3518,7 +3498,7 @@ msgstr "" "necesarias para construir Python. (Contribuido por Victor Stinner en :issue:" "`36020`.)" -#: ../Doc/whatsnew/3.10.rst:2000 +#: ../Doc/whatsnew/3.10.rst:1987 msgid "" ":mod:`sqlite3` requires SQLite 3.7.15 or higher. (Contributed by Sergey " "Fedoseev and Erlend E. Aasland in :issue:`40744` and :issue:`40810`.)" @@ -3526,7 +3506,7 @@ msgstr "" ":mod:`sqlite3` requiere SQLite 3.7.15 o superior. (Aportado por Sergey " "Fedoseev y Erlend E. Aasland en :issue:`40744` y :issue:`40810`)." -#: ../Doc/whatsnew/3.10.rst:2003 +#: ../Doc/whatsnew/3.10.rst:1990 msgid "" "The :mod:`atexit` module must now always be built as a built-in module. " "(Contributed by Victor Stinner in :issue:`42639`.)" @@ -3534,7 +3514,7 @@ msgstr "" "El módulo :mod:`atexit` ahora debe construirse siempre como un módulo " "integrado. (Contribuido por Victor Stinner en :issue:`42639`.)" -#: ../Doc/whatsnew/3.10.rst:2006 +#: ../Doc/whatsnew/3.10.rst:1993 msgid "" "Add :option:`--disable-test-modules` option to the ``configure`` script: " "don't build nor install test modules. (Contributed by Xavier de Gaye, Thomas " @@ -3544,7 +3524,7 @@ msgstr "" "no cree ni instale módulos de prueba. (Contribuido por Xavier de Gaye, " "Thomas Petazzoni y Peixing Xin en :issue:`27640`.)" -#: ../Doc/whatsnew/3.10.rst:2010 +#: ../Doc/whatsnew/3.10.rst:1997 msgid "" "Add :option:`--with-wheel-pkg-dir=PATH option <--with-wheel-pkg-dir>` to the " "``./configure`` script. If specified, the :mod:`ensurepip` module looks for " @@ -3558,7 +3538,7 @@ msgstr "" "están presentes, estos paquetes de ruedas se utilizan en lugar de los " "paquetes de ruedas asegurados." -#: ../Doc/whatsnew/3.10.rst:2016 +#: ../Doc/whatsnew/3.10.rst:2003 msgid "" "Some Linux distribution packaging policies recommend against bundling " "dependencies. For example, Fedora installs wheel packages in the ``/usr/" @@ -3570,11 +3550,11 @@ msgstr "" "directorio ``/usr/share/python-wheels/`` y no instala el paquete ``ensurepip." "_bundled``." -#: ../Doc/whatsnew/3.10.rst:2021 +#: ../Doc/whatsnew/3.10.rst:2008 msgid "(Contributed by Victor Stinner in :issue:`42856`.)" msgstr "(Contribuido por Victor Stinner en :issue:`42856`.)" -#: ../Doc/whatsnew/3.10.rst:2023 +#: ../Doc/whatsnew/3.10.rst:2010 msgid "" "Add a new :option:`configure --without-static-libpython option <--without-" "static-libpython>` to not build the ``libpythonMAJOR.MINOR.a`` static " @@ -3584,11 +3564,11 @@ msgstr "" "without-static-libpython>` para no construir la biblioteca estática " "``libpythonMAJOR.MINOR.a`` y no instalar el archivo de objeto ``python.o``." -#: ../Doc/whatsnew/3.10.rst:2027 +#: ../Doc/whatsnew/3.10.rst:2014 msgid "(Contributed by Victor Stinner in :issue:`43103`.)" msgstr "(Contribuido por Victor Stinner en :issue:`43103`.)" -#: ../Doc/whatsnew/3.10.rst:2029 +#: ../Doc/whatsnew/3.10.rst:2016 msgid "" "The ``configure`` script now uses the ``pkg-config`` utility, if available, " "to detect the location of Tcl/Tk headers and libraries. As before, those " @@ -3602,7 +3582,7 @@ msgstr "" "las opciones de configuración ``--with-tcltk-includes`` y ``--with-tcltk-" "libs``. (Aportado por Manolis Stamatogiannakis en :issue:`42603`.)" -#: ../Doc/whatsnew/3.10.rst:2035 +#: ../Doc/whatsnew/3.10.rst:2022 msgid "" "Add :option:`--with-openssl-rpath` option to ``configure`` script. The " "option simplifies building Python with a custom OpenSSL installation, e.g. " @@ -3615,15 +3595,15 @@ msgstr "" "openssl --with-openssl-rpath=auto``. (Contribuido por Christian Heimes en :" "issue:`43466`.)" -#: ../Doc/whatsnew/3.10.rst:2042 +#: ../Doc/whatsnew/3.10.rst:2029 msgid "C API Changes" msgstr "Cambios en la API de C" -#: ../Doc/whatsnew/3.10.rst:2045 +#: ../Doc/whatsnew/3.10.rst:2032 msgid "PEP 652: Maintaining the Stable ABI" msgstr "PEP 652: Mantenimiento del ABI estable" -#: ../Doc/whatsnew/3.10.rst:2047 +#: ../Doc/whatsnew/3.10.rst:2034 msgid "" "The Stable ABI (Application Binary Interface) for extension modules or " "embedding Python is now explicitly defined. :ref:`stable` describes C API " @@ -3635,11 +3615,11 @@ msgstr "" "describe las garantías de estabilidad C API y ABI junto con las mejores " "prácticas para usar la ABI estable." -#: ../Doc/whatsnew/3.10.rst:2052 +#: ../Doc/whatsnew/3.10.rst:2039 msgid "(Contributed by Petr Viktorin in :pep:`652` and :issue:`43795`.)" msgstr "(Contribuido por Petr Viktorin en :pep:`652` y :issue:`43795`.)" -#: ../Doc/whatsnew/3.10.rst:2057 +#: ../Doc/whatsnew/3.10.rst:2044 msgid "" "The result of :c:func:`PyNumber_Index` now always has exact type :class:" "`int`. Previously, the result could have been an instance of a subclass of " @@ -3650,7 +3630,7 @@ msgstr "" "una subclase de ``int``. (Contribuido por Serhiy Storchaka en :issue:" "`40792`.)" -#: ../Doc/whatsnew/3.10.rst:2061 +#: ../Doc/whatsnew/3.10.rst:2048 msgid "" "Add a new :c:member:`~PyConfig.orig_argv` member to the :c:type:`PyConfig` " "structure: the list of the original command line arguments passed to the " @@ -3661,7 +3641,7 @@ msgstr "" "comandos pasados al ejecutable de Python. (Contribuido por Victor Stinner " "en :issue:`23427`.)" -#: ../Doc/whatsnew/3.10.rst:2066 +#: ../Doc/whatsnew/3.10.rst:2053 msgid "" "The :c:func:`PyDateTime_DATE_GET_TZINFO` and :c:func:" "`PyDateTime_TIME_GET_TZINFO` macros have been added for accessing the " @@ -3673,7 +3653,7 @@ msgstr "" "objetos :class:`datetime.datetime` y :class:`datetime.time`. (Contribuido " "por Zackery Spytz en :issue:`30155`.)" -#: ../Doc/whatsnew/3.10.rst:2072 +#: ../Doc/whatsnew/3.10.rst:2059 msgid "" "Add a :c:func:`PyCodec_Unregister` function to unregister a codec search " "function. (Contributed by Hai Shi in :issue:`41842`.)" @@ -3682,7 +3662,7 @@ msgstr "" "una función de búsqueda de códec. (Contribuido por Hai Shi en :issue:" "`41842`.)" -#: ../Doc/whatsnew/3.10.rst:2076 +#: ../Doc/whatsnew/3.10.rst:2063 msgid "" "The :c:func:`PyIter_Send` function was added to allow sending value into " "iterator without raising ``StopIteration`` exception. (Contributed by " @@ -3692,7 +3672,7 @@ msgstr "" "al iterador sin generar la excepción ``StopIteration``. (Contribuido por " "Vladimir Matveev en :issue:`41756`.)" -#: ../Doc/whatsnew/3.10.rst:2080 +#: ../Doc/whatsnew/3.10.rst:2067 msgid "" "Add :c:func:`PyUnicode_AsUTF8AndSize` to the limited C API. (Contributed by " "Alex Gaynor in :issue:`41784`.)" @@ -3700,7 +3680,7 @@ msgstr "" "Agregue :c:func:`PyUnicode_AsUTF8AndSize` a la API C limitada. (Contribuido " "por Alex Gaynor en :issue:`41784`.)" -#: ../Doc/whatsnew/3.10.rst:2083 +#: ../Doc/whatsnew/3.10.rst:2070 msgid "" "Add :c:func:`PyModule_AddObjectRef` function: similar to :c:func:" "`PyModule_AddObject` but don't steal a reference to the value on success. " @@ -3710,7 +3690,7 @@ msgstr "" "`PyModule_AddObject` pero no robe una referencia al valor en caso de éxito. " "(Contribuido por Victor Stinner en :issue:`1635741`.)" -#: ../Doc/whatsnew/3.10.rst:2088 +#: ../Doc/whatsnew/3.10.rst:2075 msgid "" "Add :c:func:`Py_NewRef` and :c:func:`Py_XNewRef` functions to increment the " "reference count of an object and return the object. (Contributed by Victor " @@ -3720,7 +3700,7 @@ msgstr "" "incrementar el recuento de referencia de un objeto y devolver el objeto. " "(Contribuido por Victor Stinner en :issue:`42262`.)" -#: ../Doc/whatsnew/3.10.rst:2092 +#: ../Doc/whatsnew/3.10.rst:2079 msgid "" "The :c:func:`PyType_FromSpecWithBases` and :c:func:" "`PyType_FromModuleAndSpec` functions now accept a single class as the " @@ -3730,7 +3710,7 @@ msgstr "" "`PyType_FromModuleAndSpec` ahora aceptan una sola clase como argumento " "*bases*. (Contribuido por Serhiy Storchaka en :issue:`42423`.)" -#: ../Doc/whatsnew/3.10.rst:2096 +#: ../Doc/whatsnew/3.10.rst:2083 msgid "" "The :c:func:`PyType_FromModuleAndSpec` function now accepts NULL ``tp_doc`` " "slot. (Contributed by Hai Shi in :issue:`41832`.)" @@ -3738,7 +3718,7 @@ msgstr "" "La función :c:func:`PyType_FromModuleAndSpec` ahora acepta la ranura NULL " "``tp_doc``. (Contribuido por Hai Shi en :issue:`41832`.)" -#: ../Doc/whatsnew/3.10.rst:2100 +#: ../Doc/whatsnew/3.10.rst:2087 msgid "" "The :c:func:`PyType_GetSlot` function can accept :ref:`static types `. (Contributed by Hai Shi and Petr Viktorin in :issue:`41073`.)" @@ -3746,7 +3726,7 @@ msgstr "" "La función :c:func:`PyType_GetSlot` puede aceptar :ref:`static types `. (Contribuido por Hai Shi y Petr Viktorin en :issue:`41073`.)" -#: ../Doc/whatsnew/3.10.rst:2104 +#: ../Doc/whatsnew/3.10.rst:2091 msgid "" "Add a new :c:func:`PySet_CheckExact` function to the C-API to check if an " "object is an instance of :class:`set` but not an instance of a subtype. " @@ -3756,7 +3736,7 @@ msgstr "" "verificar si un objeto es una instancia de :class:`set` pero no una " "instancia de un subtipo. (Contribuido por Pablo Galindo en :issue:`43277`.)" -#: ../Doc/whatsnew/3.10.rst:2108 +#: ../Doc/whatsnew/3.10.rst:2095 msgid "" "Add :c:func:`PyErr_SetInterruptEx` which allows passing a signal number to " "simulate. (Contributed by Antoine Pitrou in :issue:`43356`.)" @@ -3764,7 +3744,7 @@ msgstr "" "Agregue :c:func:`PyErr_SetInterruptEx` que permite pasar un número de señal " "para simular. (Contribuido por Antoine Pitrou en :issue:`43356`.)" -#: ../Doc/whatsnew/3.10.rst:2112 +#: ../Doc/whatsnew/3.10.rst:2099 msgid "" "The limited C API is now supported if :ref:`Python is built in debug mode " "` (if the ``Py_DEBUG`` macro is defined). In the limited C API, " @@ -3786,7 +3766,7 @@ msgstr "" "porque la estructura :c:type:`PyObject` es la misma en el modo de liberación " "y depuración desde Python 3.8 (ver :issue:`36465`)." -#: ../Doc/whatsnew/3.10.rst:2122 +#: ../Doc/whatsnew/3.10.rst:2109 msgid "" "The limited C API is still not supported in the :option:`--with-trace-refs` " "special build (``Py_TRACE_REFS`` macro). (Contributed by Victor Stinner in :" @@ -3796,7 +3776,7 @@ msgstr "" "option:`--with-trace-refs` (macro ``Py_TRACE_REFS``). (Contribuido por " "Victor Stinner en :issue:`43688`.)" -#: ../Doc/whatsnew/3.10.rst:2126 +#: ../Doc/whatsnew/3.10.rst:2113 msgid "" "Add the :c:func:`Py_Is(x, y) ` function to test if the *x* object is " "the *y* object, the same as ``x is y`` in Python. Add also the :c:func:" @@ -3812,7 +3792,7 @@ msgstr "" "singleton ``True`` o el singleton ``False``. (Contribuido por Victor Stinner " "en :issue:`43753`.)" -#: ../Doc/whatsnew/3.10.rst:2133 +#: ../Doc/whatsnew/3.10.rst:2120 msgid "" "Add new functions to control the garbage collector from C code: :c:func:" "`PyGC_Enable()`, :c:func:`PyGC_Disable()`, :c:func:`PyGC_IsEnabled()`. These " @@ -3825,18 +3805,20 @@ msgstr "" "el estado del recolector de basura desde código C sin tener que importar el " "módulo :mod:`gc`." -#: ../Doc/whatsnew/3.10.rst:2140 +#: ../Doc/whatsnew/3.10.rst:2127 +#, fuzzy msgid "" -"Add a new :c:data:`Py_TPFLAGS_DISALLOW_INSTANTIATION` type flag to disallow " +"Add a new :c:macro:`Py_TPFLAGS_DISALLOW_INSTANTIATION` type flag to disallow " "creating type instances. (Contributed by Victor Stinner in :issue:`43916`.)" msgstr "" "Agregue un nuevo indicador de tipo :c:data:" "`Py_TPFLAGS_DISALLOW_INSTANTIATION` para no permitir la creación de " "instancias de tipo. (Contribuido por Victor Stinner en :issue:`43916`.)" -#: ../Doc/whatsnew/3.10.rst:2144 +#: ../Doc/whatsnew/3.10.rst:2131 +#, fuzzy msgid "" -"Add a new :c:data:`Py_TPFLAGS_IMMUTABLETYPE` type flag for creating " +"Add a new :c:macro:`Py_TPFLAGS_IMMUTABLETYPE` type flag for creating " "immutable type objects: type attributes cannot be set nor deleted. " "(Contributed by Victor Stinner and Erlend E. Aasland in :issue:`43908`.)" msgstr "" @@ -3845,7 +3827,7 @@ msgstr "" "establecer ni eliminar. (Contribuido por Victor Stinner y Erlend E. Aasland " "en :issue:`43908`.)" -#: ../Doc/whatsnew/3.10.rst:2151 +#: ../Doc/whatsnew/3.10.rst:2138 msgid "" "The ``PY_SSIZE_T_CLEAN`` macro must now be defined to use :c:func:" "`PyArg_ParseTuple` and :c:func:`Py_BuildValue` formats which use ``#``: " @@ -3858,7 +3840,7 @@ msgstr "" "``et#``, ``s#``, ``u#``, ``y#``, ``z#``, ``U#`` y ``Z#``. Consulte :ref:`arg-" "parsing` y :pep:`353`. (Aportado por Victor Stinner en :issue:`40943`.)" -#: ../Doc/whatsnew/3.10.rst:2157 +#: ../Doc/whatsnew/3.10.rst:2144 msgid "" "Since :c:func:`Py_REFCNT()` is changed to the inline static function, " "``Py_REFCNT(obj) = new_refcnt`` must be replaced with ``Py_SET_REFCNT(obj, " @@ -3871,11 +3853,11 @@ msgstr "" "3.9). Para compatibilidad con versiones anteriores, esta macro se puede " "utilizar:" -#: ../Doc/whatsnew/3.10.rst:2166 +#: ../Doc/whatsnew/3.10.rst:2153 msgid "(Contributed by Victor Stinner in :issue:`39573`.)" msgstr "(Contribuido por Victor Stinner en :issue:`39573`.)" -#: ../Doc/whatsnew/3.10.rst:2168 +#: ../Doc/whatsnew/3.10.rst:2155 msgid "" "Calling :c:func:`PyDict_GetItem` without :term:`GIL` held had been allowed " "for historical reason. It is no longer allowed. (Contributed by Victor " @@ -3885,7 +3867,7 @@ msgstr "" "retenido por motivos históricos. Ya no está permitido. (Contribuido por " "Victor Stinner en :issue:`40839`.)" -#: ../Doc/whatsnew/3.10.rst:2172 +#: ../Doc/whatsnew/3.10.rst:2159 msgid "" "``PyUnicode_FromUnicode(NULL, size)`` and " "``PyUnicode_FromStringAndSize(NULL, size)`` raise ``DeprecationWarning`` " @@ -3897,7 +3879,7 @@ msgstr "" "`PyUnicode_New` para asignar un objeto Unicode sin datos iniciales. " "(Contribuido por Inada Naoki en :issue:`36346`.)" -#: ../Doc/whatsnew/3.10.rst:2177 +#: ../Doc/whatsnew/3.10.rst:2164 msgid "" "The private ``_PyUnicode_Name_CAPI`` structure of the PyCapsule API " "``unicodedata.ucnhash_CAPI`` has been moved to the internal C API. " @@ -3907,7 +3889,7 @@ msgstr "" "ucnhash_CAPI`` de PyCapsule se ha movido a la API C interna. (Contribuido " "por Victor Stinner en :issue:`42157`.)" -#: ../Doc/whatsnew/3.10.rst:2181 +#: ../Doc/whatsnew/3.10.rst:2168 msgid "" ":c:func:`Py_GetPath`, :c:func:`Py_GetPrefix`, :c:func:`Py_GetExecPrefix`, :c:" "func:`Py_GetProgramFullPath`, :c:func:`Py_GetPythonHome` and :c:func:" @@ -3923,7 +3905,7 @@ msgstr "" "Python). Utilice la nueva API :ref:`init-config` para obtener el :ref:`init-" "path-config`. (Aportado por Victor Stinner en :issue:`42260`.)" -#: ../Doc/whatsnew/3.10.rst:2188 +#: ../Doc/whatsnew/3.10.rst:2175 msgid "" ":c:func:`PyList_SET_ITEM`, :c:func:`PyTuple_SET_ITEM` and :c:func:" "`PyCell_SET` macros can no longer be used as l-value or r-value. For " @@ -3939,7 +3921,7 @@ msgstr "" "(PyList_SET_ITEM (a, b, c) < 0) ...``. (Contribuido por Zackery Spytz y " "Victor Stinner en :issue:`30459`.)" -#: ../Doc/whatsnew/3.10.rst:2195 +#: ../Doc/whatsnew/3.10.rst:2182 msgid "" "The non-limited API files ``odictobject.h``, ``parser_interface.h``, " "``picklebufobject.h``, ``pyarena.h``, ``pyctype.h``, ``pydebug.h``, ``pyfpe." @@ -3957,11 +3939,12 @@ msgstr "" "considere incluir ``Python.h`` en su lugar. (Aportado por Nicholas Sim en :" "issue:`35134`.)" -#: ../Doc/whatsnew/3.10.rst:2203 +#: ../Doc/whatsnew/3.10.rst:2190 +#, fuzzy msgid "" -"Use the :c:data:`Py_TPFLAGS_IMMUTABLETYPE` type flag to create immutable " -"type objects. Do not rely on :c:data:`Py_TPFLAGS_HEAPTYPE` to decide if a " -"type object is mutable or not; check if :c:data:`Py_TPFLAGS_IMMUTABLETYPE` " +"Use the :c:macro:`Py_TPFLAGS_IMMUTABLETYPE` type flag to create immutable " +"type objects. Do not rely on :c:macro:`Py_TPFLAGS_HEAPTYPE` to decide if a " +"type object is mutable or not; check if :c:macro:`Py_TPFLAGS_IMMUTABLETYPE` " "is set instead. (Contributed by Victor Stinner and Erlend E. Aasland in :" "issue:`43908`.)" msgstr "" @@ -3971,7 +3954,7 @@ msgstr "" "`Py_TPFLAGS_IMMUTABLETYPE` está configurado en su lugar. (Contribuido por " "Victor Stinner y Erlend E. Aasland en :issue:`43908`.)" -#: ../Doc/whatsnew/3.10.rst:2209 +#: ../Doc/whatsnew/3.10.rst:2196 msgid "" "The undocumented function ``Py_FrozenMain`` has been removed from the " "limited API. The function is mainly useful for custom builds of Python. " @@ -3981,7 +3964,7 @@ msgstr "" "La función es principalmente útil para compilaciones personalizadas de " "Python. (Aportado por Petr Viktorin en :issue:`26241`.)" -#: ../Doc/whatsnew/3.10.rst:2216 +#: ../Doc/whatsnew/3.10.rst:2203 msgid "" "The ``PyUnicode_InternImmortal()`` function is now deprecated and will be " "removed in Python 3.12: use :c:func:`PyUnicode_InternInPlace` instead. " @@ -3991,7 +3974,7 @@ msgstr "" "eliminará en Python 3.12: use :c:func:`PyUnicode_InternInPlace` en su lugar. " "(Contribuido por Victor Stinner en :issue:`41692`.)" -#: ../Doc/whatsnew/3.10.rst:2224 +#: ../Doc/whatsnew/3.10.rst:2211 msgid "" "Removed ``Py_UNICODE_str*`` functions manipulating ``Py_UNICODE*`` strings. " "(Contributed by Inada Naoki in :issue:`41123`.)" @@ -3999,7 +3982,7 @@ msgstr "" "Se eliminaron las funciones ``Py_UNICODE_str*`` que manipulaban cadenas " "``Py_UNICODE*``. (Contribuido por Inada Naoki en :issue:`41123`.)" -#: ../Doc/whatsnew/3.10.rst:2227 +#: ../Doc/whatsnew/3.10.rst:2214 msgid "" "``Py_UNICODE_strlen``: use :c:func:`PyUnicode_GetLength` or :c:macro:" "`PyUnicode_GET_LENGTH`" @@ -4007,7 +3990,7 @@ msgstr "" "``Py_UNICODE_strlen``: utilice :c:func:`PyUnicode_GetLength` o :c:macro:" "`PyUnicode_GET_LENGTH`" -#: ../Doc/whatsnew/3.10.rst:2229 +#: ../Doc/whatsnew/3.10.rst:2216 msgid "" "``Py_UNICODE_strcat``: use :c:func:`PyUnicode_CopyCharacters` or :c:func:" "`PyUnicode_FromFormat`" @@ -4015,7 +3998,7 @@ msgstr "" "``Py_UNICODE_strcat``: utilice :c:func:`PyUnicode_CopyCharacters` o :c:func:" "`PyUnicode_FromFormat`" -#: ../Doc/whatsnew/3.10.rst:2231 +#: ../Doc/whatsnew/3.10.rst:2218 msgid "" "``Py_UNICODE_strcpy``, ``Py_UNICODE_strncpy``: use :c:func:" "`PyUnicode_CopyCharacters` or :c:func:`PyUnicode_Substring`" @@ -4023,15 +4006,15 @@ msgstr "" "``Py_UNICODE_strcpy``, ``Py_UNICODE_strncpy``: utilice :c:func:" "`PyUnicode_CopyCharacters` o :c:func:`PyUnicode_Substring`" -#: ../Doc/whatsnew/3.10.rst:2233 +#: ../Doc/whatsnew/3.10.rst:2220 msgid "``Py_UNICODE_strcmp``: use :c:func:`PyUnicode_Compare`" msgstr "``Py_UNICODE_strcmp``: utilice :c:func:`PyUnicode_Compare`" -#: ../Doc/whatsnew/3.10.rst:2234 +#: ../Doc/whatsnew/3.10.rst:2221 msgid "``Py_UNICODE_strncmp``: use :c:func:`PyUnicode_Tailmatch`" msgstr "``Py_UNICODE_strncmp``: utilice :c:func:`PyUnicode_Tailmatch`" -#: ../Doc/whatsnew/3.10.rst:2235 +#: ../Doc/whatsnew/3.10.rst:2222 msgid "" "``Py_UNICODE_strchr``, ``Py_UNICODE_strrchr``: use :c:func:" "`PyUnicode_FindChar`" @@ -4039,7 +4022,7 @@ msgstr "" "``Py_UNICODE_strchr``, ``Py_UNICODE_strrchr``: utilice :c:func:" "`PyUnicode_FindChar`" -#: ../Doc/whatsnew/3.10.rst:2238 +#: ../Doc/whatsnew/3.10.rst:2225 msgid "" "Removed ``PyUnicode_GetMax()``. Please migrate to new (:pep:`393`) APIs. " "(Contributed by Inada Naoki in :issue:`41103`.)" @@ -4047,7 +4030,7 @@ msgstr "" "Eliminado ``PyUnicode_GetMax()``. Migra a las API nuevas (:pep:`393`). " "(Contribuido por Inada Naoki en :issue:`41103`.)" -#: ../Doc/whatsnew/3.10.rst:2241 +#: ../Doc/whatsnew/3.10.rst:2228 msgid "" "Removed ``PyLong_FromUnicode()``. Please migrate to :c:func:" "`PyLong_FromUnicodeObject`. (Contributed by Inada Naoki in :issue:`41103`.)" @@ -4055,7 +4038,7 @@ msgstr "" "Eliminado ``PyLong_FromUnicode()``. Migra a :c:func:" "`PyLong_FromUnicodeObject`. (Contribuido por Inada Naoki en :issue:`41103`.)" -#: ../Doc/whatsnew/3.10.rst:2244 +#: ../Doc/whatsnew/3.10.rst:2231 msgid "" "Removed ``PyUnicode_AsUnicodeCopy()``. Please use :c:func:" "`PyUnicode_AsUCS4Copy` or :c:func:`PyUnicode_AsWideCharString` (Contributed " @@ -4065,7 +4048,7 @@ msgstr "" "`PyUnicode_AsUCS4Copy` o :c:func:`PyUnicode_AsWideCharString` (contribución " "de Inada Naoki en :issue:`41103`)." -#: ../Doc/whatsnew/3.10.rst:2248 +#: ../Doc/whatsnew/3.10.rst:2235 msgid "" "Removed ``_Py_CheckRecursionLimit`` variable: it has been replaced by " "``ceval.recursion_limit`` of the :c:type:`PyInterpreterState` structure. " @@ -4075,7 +4058,7 @@ msgstr "" "``ceval.recursion_limit`` de la estructura :c:type:`PyInterpreterState`. " "(Contribuido por Victor Stinner en :issue:`41834`.)" -#: ../Doc/whatsnew/3.10.rst:2252 +#: ../Doc/whatsnew/3.10.rst:2239 msgid "" "Removed undocumented macros ``Py_ALLOW_RECURSION`` and " "``Py_END_ALLOW_RECURSION`` and the ``recursion_critical`` field of the :c:" @@ -4086,7 +4069,7 @@ msgstr "" "sin documentar y el campo ``recursion_critical`` de la estructura :c:type:" "`PyInterpreterState`. (Contribuido por Serhiy Storchaka en :issue:`41936`.)" -#: ../Doc/whatsnew/3.10.rst:2257 +#: ../Doc/whatsnew/3.10.rst:2244 msgid "" "Removed the undocumented ``PyOS_InitInterrupts()`` function. Initializing " "Python already implicitly installs signal handlers: see :c:member:`PyConfig." @@ -4097,7 +4080,7 @@ msgstr "" "consulte :c:member:`PyConfig.install_signal_handlers`. (Contribuido por " "Victor Stinner en :issue:`41713`.)" -#: ../Doc/whatsnew/3.10.rst:2262 +#: ../Doc/whatsnew/3.10.rst:2249 msgid "" "Remove the ``PyAST_Validate()`` function. It is no longer possible to build " "a AST object (``mod_ty`` type) with the public C API. The function was " @@ -4109,37 +4092,37 @@ msgstr "" "excluida de la API C limitada (:pep:`384`). (Contribuido por Victor Stinner " "en :issue:`43244`.)" -#: ../Doc/whatsnew/3.10.rst:2267 +#: ../Doc/whatsnew/3.10.rst:2254 msgid "Remove the ``symtable.h`` header file and the undocumented functions:" msgstr "" "Elimine el archivo de encabezado ``symtable.h`` y las funciones no " "documentadas:" -#: ../Doc/whatsnew/3.10.rst:2269 +#: ../Doc/whatsnew/3.10.rst:2256 msgid "``PyST_GetScope()``" msgstr "``PyST_GetScope()``" -#: ../Doc/whatsnew/3.10.rst:2270 +#: ../Doc/whatsnew/3.10.rst:2257 msgid "``PySymtable_Build()``" msgstr "``PySymtable_Build()``" -#: ../Doc/whatsnew/3.10.rst:2271 +#: ../Doc/whatsnew/3.10.rst:2258 msgid "``PySymtable_BuildObject()``" msgstr "``PySymtable_BuildObject()``" -#: ../Doc/whatsnew/3.10.rst:2272 +#: ../Doc/whatsnew/3.10.rst:2259 msgid "``PySymtable_Free()``" msgstr "``PySymtable_Free()``" -#: ../Doc/whatsnew/3.10.rst:2273 +#: ../Doc/whatsnew/3.10.rst:2260 msgid "``Py_SymtableString()``" msgstr "``Py_SymtableString()``" -#: ../Doc/whatsnew/3.10.rst:2274 +#: ../Doc/whatsnew/3.10.rst:2261 msgid "``Py_SymtableStringObject()``" msgstr "``Py_SymtableStringObject()``" -#: ../Doc/whatsnew/3.10.rst:2276 +#: ../Doc/whatsnew/3.10.rst:2263 msgid "" "The ``Py_SymtableString()`` function was part the stable ABI by mistake but " "it could not be used, because the ``symtable.h`` header file was excluded " @@ -4149,7 +4132,7 @@ msgstr "" "pero no se pudo usar porque el archivo de encabezado ``symtable.h`` se " "excluyó de la API C limitada." -#: ../Doc/whatsnew/3.10.rst:2280 +#: ../Doc/whatsnew/3.10.rst:2267 msgid "" "Use Python :mod:`symtable` module instead. (Contributed by Victor Stinner " "in :issue:`43244`.)" @@ -4157,7 +4140,7 @@ msgstr "" "En su lugar, utilice el módulo Python :mod:`symtable`. (Contribuido por " "Victor Stinner en :issue:`43244`.)" -#: ../Doc/whatsnew/3.10.rst:2283 +#: ../Doc/whatsnew/3.10.rst:2270 msgid "" "Remove :c:func:`PyOS_ReadlineFunctionPointer` from the limited C API headers " "and from ``python3.dll``, the library that provides the stable ABI on " @@ -4170,7 +4153,7 @@ msgstr "" "puede garantizar su estabilidad ABI. (Contribuido por Petr Viktorin en :" "issue:`43868`.)" -#: ../Doc/whatsnew/3.10.rst:2289 +#: ../Doc/whatsnew/3.10.rst:2276 msgid "" "Remove ``ast.h``, ``asdl.h``, and ``Python-ast.h`` header files. These " "functions were undocumented and excluded from the limited C API. Most names " @@ -4189,7 +4172,7 @@ msgstr "" "encabezado ```` de Windows. En su lugar, utilice el módulo " "Python :mod:`ast`. (Contribuido por Victor Stinner en :issue:`43244`.)" -#: ../Doc/whatsnew/3.10.rst:2297 +#: ../Doc/whatsnew/3.10.rst:2284 msgid "" "Remove the compiler and parser functions using ``struct _mod`` type, because " "the public AST C API was removed:" @@ -4197,47 +4180,47 @@ msgstr "" "Elimine las funciones de compilador y analizador utilizando el tipo ``struct " "_mod``, porque se eliminó la API de AST C pública:" -#: ../Doc/whatsnew/3.10.rst:2300 +#: ../Doc/whatsnew/3.10.rst:2287 msgid "``PyAST_Compile()``" msgstr "``PyAST_Compile()``" -#: ../Doc/whatsnew/3.10.rst:2301 +#: ../Doc/whatsnew/3.10.rst:2288 msgid "``PyAST_CompileEx()``" msgstr "``PyAST_CompileEx()``" -#: ../Doc/whatsnew/3.10.rst:2302 +#: ../Doc/whatsnew/3.10.rst:2289 msgid "``PyAST_CompileObject()``" msgstr "``PyAST_CompileObject()``" -#: ../Doc/whatsnew/3.10.rst:2303 +#: ../Doc/whatsnew/3.10.rst:2290 msgid "``PyFuture_FromAST()``" msgstr "``PyFuture_FromAST()``" -#: ../Doc/whatsnew/3.10.rst:2304 +#: ../Doc/whatsnew/3.10.rst:2291 msgid "``PyFuture_FromASTObject()``" msgstr "``PyFuture_FromASTObject()``" -#: ../Doc/whatsnew/3.10.rst:2305 +#: ../Doc/whatsnew/3.10.rst:2292 msgid "``PyParser_ASTFromFile()``" msgstr "``PyParser_ASTFromFile()``" -#: ../Doc/whatsnew/3.10.rst:2306 +#: ../Doc/whatsnew/3.10.rst:2293 msgid "``PyParser_ASTFromFileObject()``" msgstr "``PyParser_ASTFromFileObject()``" -#: ../Doc/whatsnew/3.10.rst:2307 +#: ../Doc/whatsnew/3.10.rst:2294 msgid "``PyParser_ASTFromFilename()``" msgstr "``PyParser_ASTFromFilename()``" -#: ../Doc/whatsnew/3.10.rst:2308 +#: ../Doc/whatsnew/3.10.rst:2295 msgid "``PyParser_ASTFromString()``" msgstr "``PyParser_ASTFromString()``" -#: ../Doc/whatsnew/3.10.rst:2309 +#: ../Doc/whatsnew/3.10.rst:2296 msgid "``PyParser_ASTFromStringObject()``" msgstr "``PyParser_ASTFromStringObject()``" -#: ../Doc/whatsnew/3.10.rst:2311 +#: ../Doc/whatsnew/3.10.rst:2298 msgid "" "These functions were undocumented and excluded from the limited C API. " "(Contributed by Victor Stinner in :issue:`43244`.)" @@ -4245,27 +4228,27 @@ msgstr "" "Estas funciones no estaban documentadas y se excluyeron de la API C " "limitada. (Contribuido por Victor Stinner en :issue:`43244`.)" -#: ../Doc/whatsnew/3.10.rst:2314 +#: ../Doc/whatsnew/3.10.rst:2301 msgid "Remove the ``pyarena.h`` header file with functions:" msgstr "Elimine el archivo de encabezado ``pyarena.h`` con funciones:" -#: ../Doc/whatsnew/3.10.rst:2316 +#: ../Doc/whatsnew/3.10.rst:2303 msgid "``PyArena_New()``" msgstr "``PyArena_New()``" -#: ../Doc/whatsnew/3.10.rst:2317 +#: ../Doc/whatsnew/3.10.rst:2304 msgid "``PyArena_Free()``" msgstr "``PyArena_Free()``" -#: ../Doc/whatsnew/3.10.rst:2318 +#: ../Doc/whatsnew/3.10.rst:2305 msgid "``PyArena_Malloc()``" msgstr "``PyArena_Malloc()``" -#: ../Doc/whatsnew/3.10.rst:2319 +#: ../Doc/whatsnew/3.10.rst:2306 msgid "``PyArena_AddPyObject()``" msgstr "``PyArena_AddPyObject()``" -#: ../Doc/whatsnew/3.10.rst:2321 +#: ../Doc/whatsnew/3.10.rst:2308 msgid "" "These functions were undocumented, excluded from the limited C API, and were " "only used internally by the compiler. (Contributed by Victor Stinner in :" @@ -4275,10 +4258,47 @@ msgstr "" "limitada y el compilador solo las usaba internamente. (Contribuido por " "Victor Stinner en :issue:`43244`.)" -#: ../Doc/whatsnew/3.10.rst:2325 +#: ../Doc/whatsnew/3.10.rst:2312 msgid "" "The ``PyThreadState.use_tracing`` member has been removed to optimize " "Python. (Contributed by Mark Shannon in :issue:`43760`.)" msgstr "" "El miembro ``PyThreadState.use_tracing`` se ha eliminado para optimizar " "Python. (Contribuido por Mark Shannon en :issue:`43760`.)" + +#~ msgid "Release" +#~ msgstr "Versión" + +#~ msgid "|release|" +#~ msgstr "|release|" + +#~ msgid "Date" +#~ msgstr "Fecha" + +#~ msgid "|today|" +#~ msgstr "|today|" + +#~ msgid "" +#~ ":func:`asyncio.get_event_loop` now emits a deprecation warning if there " +#~ "is no running event loop. In the future it will be an alias of :func:" +#~ "`~asyncio.get_running_loop`. :mod:`asyncio` functions which implicitly " +#~ "create :class:`~asyncio.Future` or :class:`~asyncio.Task` objects now " +#~ "emit a deprecation warning if there is no running event loop and no " +#~ "explicit *loop* argument is passed: :func:`~asyncio.ensure_future`, :func:" +#~ "`~asyncio.wrap_future`, :func:`~asyncio.gather`, :func:`~asyncio." +#~ "shield`, :func:`~asyncio.as_completed` and constructors of :class:" +#~ "`~asyncio.Future`, :class:`~asyncio.Task`, :class:`~asyncio." +#~ "StreamReader`, :class:`~asyncio.StreamReaderProtocol`. (Contributed by " +#~ "Serhiy Storchaka in :issue:`39529`.)" +#~ msgstr "" +#~ ":func:`asyncio.get_event_loop` ahora emite una advertencia de " +#~ "desaprobación si no hay un bucle de eventos en ejecución. En el futuro " +#~ "será un alias de :func:`~asyncio.get_running_loop`. Las funciones :mod:" +#~ "`asyncio` que crean implícitamente objetos :class:`~asyncio.Future` o :" +#~ "class:`~asyncio.Task` ahora emiten una advertencia de desuso si no hay un " +#~ "bucle de eventos en ejecución y no se pasa un argumento *loop* " +#~ "explícito: :func:`~asyncio.ensure_future`, :func:`~asyncio.wrap_future`, :" +#~ "func:`~asyncio.gather`, :func:`~asyncio.shield`, :func:`~asyncio." +#~ "as_completed` y constructores de :class:`~asyncio.Future`, :class:" +#~ "`~asyncio.Task`, :class:`~asyncio.StreamReader`, :class:`~asyncio." +#~ "StreamReaderProtocol`. (Aportado por Serhiy Storchaka en :issue:`39529`.)" diff --git a/whatsnew/3.11.po b/whatsnew/3.11.po index b9bb24af10..e1c01c5fc4 100644 --- a/whatsnew/3.11.po +++ b/whatsnew/3.11.po @@ -9,60 +9,39 @@ msgid "" msgstr "" "Project-Id-Version: Python en Español 3.11\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/whatsnew/3.11.rst:3 msgid "What's New In Python 3.11" msgstr "Qué hay de nuevo en Python 3.11" -#: ../Doc/whatsnew/3.11.rst -msgid "Release" -msgstr "Versión" - -#: ../Doc/whatsnew/3.11.rst:5 -msgid "|release|" -msgstr "|release|" - -#: ../Doc/whatsnew/3.11.rst -msgid "Date" -msgstr "Fecha" - -#: ../Doc/whatsnew/3.11.rst:6 -msgid "|today|" -msgstr "|today|" - #: ../Doc/whatsnew/3.11.rst msgid "Editor" msgstr "Editor" -#: ../Doc/whatsnew/3.11.rst:7 +#: ../Doc/whatsnew/3.11.rst:5 msgid "Pablo Galindo Salgado" msgstr "Pablo Galindo Salgado" -#: ../Doc/whatsnew/3.11.rst:49 +#: ../Doc/whatsnew/3.11.rst:47 msgid "" -"This article explains the new features in Python 3.11, compared to 3.10." +"This article explains the new features in Python 3.11, compared to 3.10. " +"Python 3.11 was released on October 24, 2022. For full details, see the :ref:" +"`changelog `." msgstr "" -"Este artículo explica las nuevas características de Python 3.11, en " -"comparación con 3.10." -#: ../Doc/whatsnew/3.11.rst:51 -msgid "For full details, see the :ref:`changelog `." -msgstr "" -"Para obtener detalles completos, consulte :ref:`changelog `." - -#: ../Doc/whatsnew/3.11.rst:57 +#: ../Doc/whatsnew/3.11.rst:55 msgid "Summary -- Release highlights" msgstr "Resumen -- Aspectos destacados de la versión" -#: ../Doc/whatsnew/3.11.rst:62 +#: ../Doc/whatsnew/3.11.rst:60 #, python-format msgid "" "Python 3.11 is between 10-60% faster than Python 3.10. On average, we " @@ -74,27 +53,27 @@ msgstr "" "de referencia estándar. Ver :ref:`whatsnew311-faster-cpython` para más " "detalles." -#: ../Doc/whatsnew/3.11.rst:68 +#: ../Doc/whatsnew/3.11.rst:66 msgid "New syntax features:" msgstr "Nuevas funciones de sintaxis:" -#: ../Doc/whatsnew/3.11.rst:70 +#: ../Doc/whatsnew/3.11.rst:68 msgid ":ref:`whatsnew311-pep654`" msgstr ":ref:`whatsnew311-pep654`" -#: ../Doc/whatsnew/3.11.rst:72 +#: ../Doc/whatsnew/3.11.rst:70 msgid "New built-in features:" msgstr "Nuevas funciones integradas:" -#: ../Doc/whatsnew/3.11.rst:74 +#: ../Doc/whatsnew/3.11.rst:72 msgid ":ref:`whatsnew311-pep678`" msgstr ":ref:`whatsnew311-pep678`" -#: ../Doc/whatsnew/3.11.rst:76 +#: ../Doc/whatsnew/3.11.rst:74 msgid "New standard library modules:" msgstr "Nuevos módulos de biblioteca estándar:" -#: ../Doc/whatsnew/3.11.rst:78 +#: ../Doc/whatsnew/3.11.rst:76 msgid "" ":pep:`680`: :mod:`tomllib` — Support for parsing `TOML `_ " "in the Standard Library" @@ -102,15 +81,15 @@ msgstr "" ":pep:`680`: :mod:`tomllib`: soporte para analizar `TOML `_ " "en la biblioteca estándar" -#: ../Doc/whatsnew/3.11.rst:81 +#: ../Doc/whatsnew/3.11.rst:79 msgid "Interpreter improvements:" msgstr "Mejoras en el intérprete:" -#: ../Doc/whatsnew/3.11.rst:83 +#: ../Doc/whatsnew/3.11.rst:81 msgid ":ref:`whatsnew311-pep657`" msgstr ":ref:`whatsnew311-pep657`" -#: ../Doc/whatsnew/3.11.rst:84 +#: ../Doc/whatsnew/3.11.rst:82 msgid "" "New :option:`-P` command line option and :envvar:`PYTHONSAFEPATH` " "environment variable to :ref:`disable automatically prepending potentially " @@ -120,35 +99,35 @@ msgstr "" "`PYTHONSAFEPATH` a :ref:`disable automatically prepending potentially unsafe " "paths ` a :data:`sys.path`" -#: ../Doc/whatsnew/3.11.rst:88 +#: ../Doc/whatsnew/3.11.rst:86 msgid "New typing features:" msgstr "Nuevas funciones de escritura:" -#: ../Doc/whatsnew/3.11.rst:90 +#: ../Doc/whatsnew/3.11.rst:88 msgid ":ref:`whatsnew311-pep646`" msgstr ":ref:`whatsnew311-pep646`" -#: ../Doc/whatsnew/3.11.rst:91 +#: ../Doc/whatsnew/3.11.rst:89 msgid ":ref:`whatsnew311-pep655`" msgstr ":ref:`whatsnew311-pep655`" -#: ../Doc/whatsnew/3.11.rst:92 +#: ../Doc/whatsnew/3.11.rst:90 msgid ":ref:`whatsnew311-pep673`" msgstr ":ref:`whatsnew311-pep673`" -#: ../Doc/whatsnew/3.11.rst:93 +#: ../Doc/whatsnew/3.11.rst:91 msgid ":ref:`whatsnew311-pep675`" msgstr ":ref:`whatsnew311-pep675`" -#: ../Doc/whatsnew/3.11.rst:94 +#: ../Doc/whatsnew/3.11.rst:92 msgid ":ref:`whatsnew311-pep681`" msgstr ":ref:`whatsnew311-pep681`" -#: ../Doc/whatsnew/3.11.rst:96 +#: ../Doc/whatsnew/3.11.rst:94 msgid "Important deprecations, removals and restrictions:" msgstr "Importantes depreciaciones, eliminaciones y restricciones:" -#: ../Doc/whatsnew/3.11.rst:98 +#: ../Doc/whatsnew/3.11.rst:96 msgid "" ":pep:`594`: :ref:`Many legacy standard library modules have been deprecated " "` and will be removed in Python 3.13" @@ -156,7 +135,7 @@ msgstr "" ":pep:`594`: :ref:`Many legacy standard library modules have been deprecated " "` y se eliminará en Python 3.13" -#: ../Doc/whatsnew/3.11.rst:101 +#: ../Doc/whatsnew/3.11.rst:99 msgid "" ":pep:`624`: :ref:`Py_UNICODE encoder APIs have been removed `" @@ -164,7 +143,7 @@ msgstr "" ":pep:`624`: :ref:`Py_UNICODE encoder APIs have been removed `" -#: ../Doc/whatsnew/3.11.rst:103 +#: ../Doc/whatsnew/3.11.rst:101 msgid "" ":pep:`670`: :ref:`Macros converted to static inline functions `" @@ -172,15 +151,15 @@ msgstr "" ":pep:`670`: :ref:`Macros converted to static inline functions `" -#: ../Doc/whatsnew/3.11.rst:110 ../Doc/whatsnew/3.11.rst:2083 +#: ../Doc/whatsnew/3.11.rst:108 ../Doc/whatsnew/3.11.rst:2197 msgid "New Features" msgstr "Nuevas características" -#: ../Doc/whatsnew/3.11.rst:115 +#: ../Doc/whatsnew/3.11.rst:113 msgid "PEP 657: Fine-grained error locations in tracebacks" msgstr "PEP 657: Ubicaciones de errores detallados en rastreos" -#: ../Doc/whatsnew/3.11.rst:117 +#: ../Doc/whatsnew/3.11.rst:115 msgid "" "When printing tracebacks, the interpreter will now point to the exact " "expression that caused the error, instead of just the line. For example:" @@ -188,7 +167,7 @@ msgstr "" "Al imprimir rastreos, el intérprete ahora señalará la expresión exacta que " "causó el error, en lugar de solo la línea. Por ejemplo:" -#: ../Doc/whatsnew/3.11.rst:131 +#: ../Doc/whatsnew/3.11.rst:129 msgid "" "Previous versions of the interpreter would point to just the line, making it " "ambiguous which object was ``None``. These enhanced errors can also be " @@ -200,11 +179,11 @@ msgstr "" "también pueden ser útiles cuando se trata de objetos :class:`dict` " "profundamente anidados y múltiples llamadas a funciones:" -#: ../Doc/whatsnew/3.11.rst:151 +#: ../Doc/whatsnew/3.11.rst:149 msgid "As well as complex arithmetic expressions:" msgstr "Además de expresiones aritméticas complejas:" -#: ../Doc/whatsnew/3.11.rst:161 +#: ../Doc/whatsnew/3.11.rst:159 msgid "" "Additionally, the information used by the enhanced traceback feature is made " "available via a general API, that can be used to correlate :term:`bytecode` :" @@ -216,15 +195,15 @@ msgstr "" "correlacionar :term:`bytecode` :ref:`instructions ` con la " "ubicación del código fuente. Esta información se puede recuperar usando:" -#: ../Doc/whatsnew/3.11.rst:166 +#: ../Doc/whatsnew/3.11.rst:164 msgid "The :meth:`codeobject.co_positions` method in Python." msgstr "El método :meth:`codeobject.co_positions` en Python." -#: ../Doc/whatsnew/3.11.rst:167 +#: ../Doc/whatsnew/3.11.rst:165 msgid "The :c:func:`PyCode_Addr2Location` function in the C API." msgstr "La función :c:func:`PyCode_Addr2Location` en la API de C." -#: ../Doc/whatsnew/3.11.rst:169 +#: ../Doc/whatsnew/3.11.rst:167 msgid "" "See :pep:`657` for more details. (Contributed by Pablo Galindo, Batuhan " "Taskaya and Ammar Askar in :issue:`43950`.)" @@ -232,7 +211,7 @@ msgstr "" "Ver :pep:`657` para más detalles. (Aportado por Pablo Galindo, Batuhan " "Taskaya y Ammar Askar en :issue:`43950`.)" -#: ../Doc/whatsnew/3.11.rst:173 +#: ../Doc/whatsnew/3.11.rst:171 msgid "" "This feature requires storing column positions in :ref:`codeobjects`, which " "may result in a small increase in interpreter memory usage and disk usage " @@ -249,11 +228,11 @@ msgstr "" "línea de comando :option:`-X no_debug_ranges <-X>` o la variable de entorno :" "envvar:`PYTHONNODEBUGRANGES`." -#: ../Doc/whatsnew/3.11.rst:185 +#: ../Doc/whatsnew/3.11.rst:183 msgid "PEP 654: Exception Groups and ``except*``" msgstr "PEP 654: Grupos de excepción y ``except*``" -#: ../Doc/whatsnew/3.11.rst:187 +#: ../Doc/whatsnew/3.11.rst:185 msgid "" ":pep:`654` introduces language features that enable a program to raise and " "handle multiple unrelated exceptions simultaneously. The builtin types :exc:" @@ -269,11 +248,11 @@ msgstr "" "`except* ` generaliza :keyword:`except` para hacer coincidir " "subgrupos de grupos de excepciones." -#: ../Doc/whatsnew/3.11.rst:194 +#: ../Doc/whatsnew/3.11.rst:192 msgid "See :pep:`654` for more details." msgstr "Ver :pep:`654` para más detalles." -#: ../Doc/whatsnew/3.11.rst:196 +#: ../Doc/whatsnew/3.11.rst:194 msgid "" "(Contributed by Irit Katriel in :issue:`45292`. PEP written by Irit Katriel, " "Yury Selivanov and Guido van Rossum.)" @@ -281,11 +260,11 @@ msgstr "" "(Aportado por Irit Katriel en :issue:`45292`. PEP escrito por Irit Katriel, " "Yury Selivanov y Guido van Rossum.)" -#: ../Doc/whatsnew/3.11.rst:203 +#: ../Doc/whatsnew/3.11.rst:201 msgid "PEP 678: Exceptions can be enriched with notes" msgstr "PEP 678: Las excepciones se pueden enriquecer con notas" -#: ../Doc/whatsnew/3.11.rst:205 +#: ../Doc/whatsnew/3.11.rst:203 msgid "" "The :meth:`~BaseException.add_note` method is added to :exc:`BaseException`. " "It can be used to enrich exceptions with context information that is not " @@ -297,11 +276,11 @@ msgstr "" "contexto que no está disponible en el momento en que se genera la excepción. " "Las notas añadidas aparecen en el rastreo predeterminado." -#: ../Doc/whatsnew/3.11.rst:210 +#: ../Doc/whatsnew/3.11.rst:208 msgid "See :pep:`678` for more details." msgstr "Ver :pep:`678` para más detalles." -#: ../Doc/whatsnew/3.11.rst:212 +#: ../Doc/whatsnew/3.11.rst:210 msgid "" "(Contributed by Irit Katriel in :issue:`45607`. PEP written by Zac Hatfield-" "Dodds.)" @@ -309,17 +288,19 @@ msgstr "" "(Aportado por Irit Katriel en :issue:`45607`. PEP escrito por Zac Hatfield-" "Dodds)." -#: ../Doc/whatsnew/3.11.rst:219 +#: ../Doc/whatsnew/3.11.rst:217 msgid "Windows ``py.exe`` launcher improvements" msgstr "Mejoras en el iniciador de Windows ``py.exe``" -#: ../Doc/whatsnew/3.11.rst:221 +#: ../Doc/whatsnew/3.11.rst:219 +#, fuzzy msgid "" "The copy of the :ref:`launcher` included with Python 3.11 has been " "significantly updated. It now supports company/tag syntax as defined in :pep:" -"`514` using the ``-V:/`` argument instead of the limited ``-" -".``. This allows launching distributions other than " -"``PythonCore``, the one hosted on `python.org `_." +"`514` using the :samp:`-V:{}/{}` argument instead of the " +"limited :samp:`-{}.{}`. This allows launching distributions " +"other than ``PythonCore``, the one hosted on `python.org `_." msgstr "" "La copia de :ref:`launcher` incluida con Python 3.11 se ha actualizado " "significativamente. Ahora es compatible con la sintaxis de empresa/etiqueta " @@ -328,7 +309,7 @@ msgstr "" "distribuciones distintas a ``PythonCore``, la que está alojada en `python." "org `_." -#: ../Doc/whatsnew/3.11.rst:227 +#: ../Doc/whatsnew/3.11.rst:225 msgid "" "When using ``-V:`` selectors, either company or tag can be omitted, but all " "installs will be searched. For example, ``-V:OtherPython/`` will select the " @@ -341,16 +322,17 @@ msgstr "" "que ``-V:3.11`` o ``-V:/3.11`` seleccionarán la \"mejor\" distribución con " "la etiqueta ``3.11``." -#: ../Doc/whatsnew/3.11.rst:232 +#: ../Doc/whatsnew/3.11.rst:230 +#, fuzzy msgid "" -"When using the legacy ``-``, ``-.``, ``--" -"`` or ``-.-`` arguments, all existing " -"behaviour should be preserved from past versions, and only releases from " -"``PythonCore`` will be selected. However, the ``-64`` suffix now implies " -"\"not 32-bit\" (not necessarily x86-64), as there are multiple supported 64-" -"bit platforms. 32-bit runtimes are detected by checking the runtime's tag " -"for a ``-32`` suffix. All releases of Python since 3.5 have included this in " -"their 32-bit builds." +"When using the legacy :samp:`-{}`, :samp:`-{}.{}`, :" +"samp:`-{}-{}` or :samp:`-{}.{}-{}` " +"arguments, all existing behaviour should be preserved from past versions, " +"and only releases from ``PythonCore`` will be selected. However, the ``-64`` " +"suffix now implies \"not 32-bit\" (not necessarily x86-64), as there are " +"multiple supported 64-bit platforms. 32-bit runtimes are detected by " +"checking the runtime's tag for a ``-32`` suffix. All releases of Python " +"since 3.5 have included this in their 32-bit builds." msgstr "" "Al usar los argumentos heredados ``-``, ``-.``, ``-" "-`` o ``-.-``, se debe conservar todo " @@ -362,11 +344,11 @@ msgstr "" "ejecución en busca de un sufijo ``-32``. Todas las versiones de Python desde " "la 3.5 han incluido esto en sus compilaciones de 32 bits." -#: ../Doc/whatsnew/3.11.rst:246 +#: ../Doc/whatsnew/3.11.rst:244 msgid "New Features Related to Type Hints" msgstr "Nuevas funciones relacionadas con las sugerencias de tipo" -#: ../Doc/whatsnew/3.11.rst:248 +#: ../Doc/whatsnew/3.11.rst:246 msgid "" "This section covers major changes affecting :pep:`484` type hints and the :" "mod:`typing` module." @@ -374,11 +356,11 @@ msgstr "" "Esta sección cubre los cambios principales que afectan las sugerencias de " "tipo :pep:`484` y el módulo :mod:`typing`." -#: ../Doc/whatsnew/3.11.rst:255 +#: ../Doc/whatsnew/3.11.rst:253 msgid "PEP 646: Variadic generics" msgstr "PEP 646: Genéricos Variádicos" -#: ../Doc/whatsnew/3.11.rst:257 +#: ../Doc/whatsnew/3.11.rst:255 msgid "" ":pep:`484` previously introduced :data:`~typing.TypeVar`, enabling creation " "of generics parameterised with a single type. :pep:`646` adds :data:`~typing." @@ -392,7 +374,7 @@ msgstr "" "tipos *arbitrary*. En otras palabras, un :data:`~typing.TypeVarTuple` es una " "variable de tipo *variadic* que permite los genéricos *variadic*." -#: ../Doc/whatsnew/3.11.rst:264 +#: ../Doc/whatsnew/3.11.rst:262 msgid "" "This enables a wide variety of use cases. In particular, it allows the type " "of array-like structures in numerical computing libraries such as NumPy and " @@ -406,11 +388,11 @@ msgstr "" "verificadores de tipo estático ahora podrán detectar errores relacionados " "con la forma en el código que usa estas bibliotecas." -#: ../Doc/whatsnew/3.11.rst:270 +#: ../Doc/whatsnew/3.11.rst:268 msgid "See :pep:`646` for more details." msgstr "Ver :pep:`646` para más detalles." -#: ../Doc/whatsnew/3.11.rst:272 +#: ../Doc/whatsnew/3.11.rst:270 msgid "" "(Contributed by Matthew Rahtz in :issue:`43224`, with contributions by " "Serhiy Storchaka and Jelle Zijlstra. PEP written by Mark Mendoza, Matthew " @@ -420,14 +402,14 @@ msgstr "" "Serhiy Storchaka y Jelle Zijlstra. PEP escrito por Mark Mendoza, Matthew " "Rahtz, Pradeep Kumar Srinivasan y Vincent Siles)." -#: ../Doc/whatsnew/3.11.rst:280 +#: ../Doc/whatsnew/3.11.rst:278 msgid "" "PEP 655: Marking individual ``TypedDict`` items as required or not-required" msgstr "" "PEP 655: Marcado de elementos ``TypedDict`` individuales como requeridos o " "no requeridos" -#: ../Doc/whatsnew/3.11.rst:282 +#: ../Doc/whatsnew/3.11.rst:280 msgid "" ":data:`~typing.Required` and :data:`~typing.NotRequired` provide a " "straightforward way to mark whether individual items in a :class:`~typing." @@ -439,7 +421,7 @@ msgstr "" "un :class:`~typing.TypedDict`. Anteriormente, esto solo era posible mediante " "la herencia." -#: ../Doc/whatsnew/3.11.rst:287 +#: ../Doc/whatsnew/3.11.rst:285 msgid "" "All fields are still required by default, unless the *total* parameter is " "set to ``False``, in which case all fields are still not-required by " @@ -452,15 +434,15 @@ msgstr "" "siguiente especifica un :class:`!TypedDict` con una clave requerida y una no " "requerida:" -#: ../Doc/whatsnew/3.11.rst:301 +#: ../Doc/whatsnew/3.11.rst:299 msgid "The following definition is equivalent::" msgstr "La siguiente definición es equivalente:" -#: ../Doc/whatsnew/3.11.rst:307 +#: ../Doc/whatsnew/3.11.rst:305 msgid "See :pep:`655` for more details." msgstr "Ver :pep:`655` para más detalles." -#: ../Doc/whatsnew/3.11.rst:309 +#: ../Doc/whatsnew/3.11.rst:307 msgid "" "(Contributed by David Foster and Jelle Zijlstra in :issue:`47087`. PEP " "written by David Foster.)" @@ -468,11 +450,11 @@ msgstr "" "(Aportado por David Foster y Jelle Zijlstra en :issue:`47087`. PEP escrito " "por David Foster)." -#: ../Doc/whatsnew/3.11.rst:316 +#: ../Doc/whatsnew/3.11.rst:314 msgid "PEP 673: ``Self`` type" msgstr "PEP 673: tipo ``Self``" -#: ../Doc/whatsnew/3.11.rst:318 +#: ../Doc/whatsnew/3.11.rst:316 msgid "" "The new :data:`~typing.Self` annotation provides a simple and intuitive way " "to annotate methods that return an instance of their class. This behaves the " @@ -486,7 +468,7 @@ msgstr "" "instance-and-class-methods>` basado en :class:`~typing.TypeVar`, pero es más " "conciso y más fácil de seguir." -#: ../Doc/whatsnew/3.11.rst:324 +#: ../Doc/whatsnew/3.11.rst:322 msgid "" "Common use cases include alternative constructors provided as :func:" "`classmethod `\\s, and :meth:`~object.__enter__` methods that " @@ -496,7 +478,7 @@ msgstr "" "como :func:`classmethod `\\s y métodos :meth:`~object." "__enter__` que devuelven ``self``::" -#: ../Doc/whatsnew/3.11.rst:342 +#: ../Doc/whatsnew/3.11.rst:340 msgid "" ":data:`~typing.Self` can also be used to annotate method parameters or " "attributes of the same type as their enclosing class." @@ -504,11 +486,11 @@ msgstr "" ":data:`~typing.Self` también se puede usar para anotar parámetros de método " "o atributos del mismo tipo que su clase envolvente." -#: ../Doc/whatsnew/3.11.rst:345 +#: ../Doc/whatsnew/3.11.rst:343 msgid "See :pep:`673` for more details." msgstr "Ver :pep:`673` para más detalles." -#: ../Doc/whatsnew/3.11.rst:347 +#: ../Doc/whatsnew/3.11.rst:345 msgid "" "(Contributed by James Hilton-Balfe in :issue:`46534`. PEP written by Pradeep " "Kumar Srinivasan and James Hilton-Balfe.)" @@ -516,11 +498,11 @@ msgstr "" "(Aportado por James Hilton-Balfe en :issue:`46534`. PEP escrito por Pradeep " "Kumar Srinivasan y James Hilton-Balfe)." -#: ../Doc/whatsnew/3.11.rst:354 +#: ../Doc/whatsnew/3.11.rst:352 msgid "PEP 675: Arbitrary literal string type" msgstr "PEP 675: tipo de cadena literal arbitraria" -#: ../Doc/whatsnew/3.11.rst:356 +#: ../Doc/whatsnew/3.11.rst:354 msgid "" "The new :data:`~typing.LiteralString` annotation may be used to indicate " "that a function parameter can be of any literal string type. This allows a " @@ -539,17 +521,17 @@ msgstr "" "se llamen solo con argumentos estáticos, lo que brinda protección contra " "ataques de inyección." -#: ../Doc/whatsnew/3.11.rst:364 +#: ../Doc/whatsnew/3.11.rst:362 msgid "For example, a SQL query function could be annotated as follows::" msgstr "" "Por ejemplo, una función de consulta SQL podría anotarse de la siguiente " "manera:" -#: ../Doc/whatsnew/3.11.rst:382 +#: ../Doc/whatsnew/3.11.rst:380 msgid "See :pep:`675` for more details." msgstr "Ver :pep:`675` para más detalles." -#: ../Doc/whatsnew/3.11.rst:384 +#: ../Doc/whatsnew/3.11.rst:382 msgid "" "(Contributed by Jelle Zijlstra in :issue:`47088`. PEP written by Pradeep " "Kumar Srinivasan and Graham Bleaney.)" @@ -557,11 +539,11 @@ msgstr "" "(Aportado por Jelle Zijlstra en :issue:`47088`. PEP escrito por Pradeep " "Kumar Srinivasan y Graham Bleaney)." -#: ../Doc/whatsnew/3.11.rst:391 +#: ../Doc/whatsnew/3.11.rst:389 msgid "PEP 681: Data class transforms" msgstr "PEP 681: Transformaciones de clases de datos" -#: ../Doc/whatsnew/3.11.rst:393 +#: ../Doc/whatsnew/3.11.rst:391 msgid "" ":data:`~typing.dataclass_transform` may be used to decorate a class, " "metaclass, or a function that is itself a decorator. The presence of " @@ -576,15 +558,15 @@ msgstr "" "una clase, dándole comportamientos similares a :func:`dataclass `." -#: ../Doc/whatsnew/3.11.rst:399 +#: ../Doc/whatsnew/3.11.rst:397 msgid "For example::" msgstr "Por ejemplo::" -#: ../Doc/whatsnew/3.11.rst:417 +#: ../Doc/whatsnew/3.11.rst:415 msgid "See :pep:`681` for more details." msgstr "Ver :pep:`681` para más detalles." -#: ../Doc/whatsnew/3.11.rst:419 +#: ../Doc/whatsnew/3.11.rst:417 msgid "" "(Contributed by Jelle Zijlstra in :gh:`91860`. PEP written by Erik De Bonte " "and Eric Traut.)" @@ -592,11 +574,11 @@ msgstr "" "(Aportado por Jelle Zijlstra en :gh:`91860`. PEP escrito por Erik De Bonte y " "Eric Traut.)" -#: ../Doc/whatsnew/3.11.rst:426 +#: ../Doc/whatsnew/3.11.rst:424 msgid "PEP 563 may not be the future" msgstr "PEP 563 puede no ser el futuro" -#: ../Doc/whatsnew/3.11.rst:428 +#: ../Doc/whatsnew/3.11.rst:426 msgid "" ":pep:`563` Postponed Evaluation of Annotations (the ``from __future__ import " "annotations`` :ref:`future statement `) that was originally planned " @@ -612,11 +594,11 @@ msgstr "" "list/python-dev@python.org/message/VIZEBX5EYMSYIJNDBF6DMUMZOCWHARSO/>`__ " "para obtener más información." -#: ../Doc/whatsnew/3.11.rst:439 +#: ../Doc/whatsnew/3.11.rst:437 msgid "Other Language Changes" msgstr "Otros cambios de idioma" -#: ../Doc/whatsnew/3.11.rst:441 +#: ../Doc/whatsnew/3.11.rst:439 msgid "" "Starred unpacking expressions can now be used in :keyword:`for` statements. " "(See :issue:`46725` for more details.)" @@ -625,7 +607,7 @@ msgstr "" "declaraciones :keyword:`for`. (Consulte :issue:`46725` para obtener más " "detalles)." -#: ../Doc/whatsnew/3.11.rst:444 +#: ../Doc/whatsnew/3.11.rst:442 msgid "" "Asynchronous :ref:`comprehensions ` are now allowed inside " "comprehensions in :ref:`asynchronous functions `. Outer " @@ -637,7 +619,7 @@ msgstr "" "comprensiones externas implícitamente se vuelven asincrónicas en este caso. " "(Aportado por Serhiy Storchaka en :issue:`33346`.)" -#: ../Doc/whatsnew/3.11.rst:449 +#: ../Doc/whatsnew/3.11.rst:447 msgid "" "A :exc:`TypeError` is now raised instead of an :exc:`AttributeError` in :" "keyword:`with` statements and :meth:`contextlib.ExitStack.enter_context` for " @@ -655,7 +637,8 @@ msgstr "" "`asynchronous context manager`. (Aportado por Serhiy Storchaka en :issue:" "`12022` y :issue:`44471`)." -#: ../Doc/whatsnew/3.11.rst:457 +#: ../Doc/whatsnew/3.11.rst:455 +#, fuzzy msgid "" "Added :meth:`object.__getstate__`, which provides the default implementation " "of the :meth:`!__getstate__` method. :mod:`copy`\\ing and :mod:`pickle`\\ing " @@ -663,7 +646,10 @@ msgid "" "class:`frozenset`, :class:`collections.OrderedDict`, :class:`collections." "deque`, :class:`weakref.WeakSet`, and :class:`datetime.tzinfo` now copies " "and pickles instance attributes implemented as :term:`slots <__slots__>`. " -"(Contributed by Serhiy Storchaka in :issue:`26579`.)" +"This change has an unintended side effect: It trips up a small minority of " +"existing Python projects not expecting :meth:`object.__getstate__` to exist. " +"See the later comments on :gh:`70766` for discussions of what workarounds " +"such code may need. (Contributed by Serhiy Storchaka in :issue:`26579`.)" msgstr "" "Se agregó :meth:`object.__getstate__`, que proporciona la implementación " "predeterminada del método :meth:`!__getstate__`. Las instancias :mod:" @@ -674,7 +660,7 @@ msgstr "" "implementados como :term:`slots <__slots__>`. (Aportado por Serhiy Storchaka " "en :issue:`26579`.)" -#: ../Doc/whatsnew/3.11.rst:468 +#: ../Doc/whatsnew/3.11.rst:470 msgid "" "Added a :option:`-P` command line option and a :envvar:`PYTHONSAFEPATH` " "environment variable, which disable the automatic prepending to :data:`sys." @@ -694,7 +680,7 @@ msgstr "" "módulos con los de un directorio local (y normalmente el usuario puede " "escribir). (Aportado por Victor Stinner en :gh:`57684`.)" -#: ../Doc/whatsnew/3.11.rst:479 +#: ../Doc/whatsnew/3.11.rst:481 msgid "" "A ``\"z\"`` option was added to the :ref:`formatspec` that coerces negative " "to positive zero after rounding to the format precision. See :pep:`682` for " @@ -704,7 +690,7 @@ msgstr "" "cero positivo después de redondear a la precisión del formato. Ver :pep:" "`682` para más detalles. (Aportado por John Belmonte en :gh:`90153`.)" -#: ../Doc/whatsnew/3.11.rst:484 +#: ../Doc/whatsnew/3.11.rst:486 msgid "" "Bytes are no longer accepted on :data:`sys.path`. Support broke sometime " "between Python 3.2 and 3.6, with no one noticing until after Python 3.10.0 " @@ -720,23 +706,24 @@ msgstr "" "path_importer_cache` cuando hay una combinación de claves :class:`str` y :" "class:`bytes`. (Aportado por Thomas Grainger en :gh:`91181`.)" -#: ../Doc/whatsnew/3.11.rst:495 +#: ../Doc/whatsnew/3.11.rst:497 msgid "Other CPython Implementation Changes" msgstr "Otros cambios en la implementación de CPython" -#: ../Doc/whatsnew/3.11.rst:497 +#: ../Doc/whatsnew/3.11.rst:499 +#, fuzzy msgid "" "The special methods :meth:`~object.__complex__` for :class:`complex` and :" "meth:`~object.__bytes__` for :class:`bytes` are implemented to support the :" "class:`typing.SupportsComplex` and :class:`typing.SupportsBytes` protocols. " -"(Contributed by Mark Dickinson and Dong-hee Na in :issue:`24234`.)" +"(Contributed by Mark Dickinson and Donghee Na in :issue:`24234`.)" msgstr "" "Los métodos especiales :meth:`~object.__complex__` para :class:`complex` y :" "meth:`~object.__bytes__` para :class:`bytes` se implementan para admitir los " "protocolos :class:`typing.SupportsComplex` y :class:`typing.SupportsBytes`. " "(Aportado por Mark Dickinson y Dong-hee Na en :issue:`24234`)." -#: ../Doc/whatsnew/3.11.rst:502 +#: ../Doc/whatsnew/3.11.rst:504 msgid "" "``siphash13`` is added as a new internal hashing algorithm. It has similar " "security properties as ``siphash24``, but it is slightly faster for long " @@ -752,7 +739,7 @@ msgstr "" "`552` :ref:`hash-based .pyc files ` ahora también usa " "``siphash13``. (Aportado por Inada Naoki en :issue:`29410`.)" -#: ../Doc/whatsnew/3.11.rst:511 +#: ../Doc/whatsnew/3.11.rst:513 msgid "" "When an active exception is re-raised by a :keyword:`raise` statement with " "no parameters, the traceback attached to this exception is now always ``sys." @@ -767,7 +754,7 @@ msgstr "" "excepción que se ha vuelto a generar. (Aportado por Irit Katriel en :issue:" "`45711`.)" -#: ../Doc/whatsnew/3.11.rst:517 +#: ../Doc/whatsnew/3.11.rst:519 msgid "" "The interpreter state's representation of handled exceptions (aka " "``exc_info`` or ``_PyErr_StackItem``) now only has the ``exc_value`` field; " @@ -780,7 +767,7 @@ msgstr "" "ya que se pueden derivar de ``exc_value``. (Aportado por Irit Katriel en :" "issue:`45711`.)" -#: ../Doc/whatsnew/3.11.rst:523 +#: ../Doc/whatsnew/3.11.rst:525 msgid "" "A new :ref:`command line option `, ``AppendPath``, has " "been added for the Windows installer. It behaves similarly to " @@ -792,7 +779,7 @@ msgstr "" "a ``PrependPath``, pero agrega los directorios de instalación y scripts en " "lugar de anteponerlos. (Aportado por Bastian Neuburger en :issue:`44934`.)" -#: ../Doc/whatsnew/3.11.rst:529 +#: ../Doc/whatsnew/3.11.rst:531 msgid "" "The :c:member:`PyConfig.module_search_paths_set` field must now be set to " "``1`` for initialization to use :c:member:`PyConfig.module_search_paths` to " @@ -805,7 +792,7 @@ msgstr "" "inicialización volverá a calcular la ruta y reemplazará los valores " "agregados a ``module_search_paths``." -#: ../Doc/whatsnew/3.11.rst:534 +#: ../Doc/whatsnew/3.11.rst:536 msgid "" "The output of the :option:`--help` option now fits in 50 lines/80 columns. " "Information about :ref:`Python environment variables ` " @@ -819,7 +806,7 @@ msgstr "" "respectivos :option:`--help-env` y :option:`--help-xoptions`, y con el " "nuevo :option:`--help-all`. (Contribución de Éric Araujo en :issue:`46142`.)" -#: ../Doc/whatsnew/3.11.rst:541 +#: ../Doc/whatsnew/3.11.rst:543 msgid "" "Converting between :class:`int` and :class:`str` in bases other than 2 " "(binary), 4, 8 (octal), 16 (hexadecimal), or 32 such as base 10 (decimal) " @@ -844,11 +831,11 @@ msgstr "" "length limitation `. El límite predeterminado es de 4300 " "dígitos en forma de cadena." -#: ../Doc/whatsnew/3.11.rst:556 +#: ../Doc/whatsnew/3.11.rst:558 msgid "New Modules" msgstr "Nuevos Módulos" -#: ../Doc/whatsnew/3.11.rst:558 +#: ../Doc/whatsnew/3.11.rst:560 msgid "" ":mod:`tomllib`: For parsing `TOML `_. See :pep:`680` for " "more details. (Contributed by Taneli Hukkinen in :issue:`40059`.)" @@ -856,7 +843,7 @@ msgstr "" ":mod:`tomllib`: para analizar `TOML `_. Ver :pep:`680` " "para más detalles. (Aportado por Taneli Hukkinen en :issue:`40059`.)" -#: ../Doc/whatsnew/3.11.rst:562 +#: ../Doc/whatsnew/3.11.rst:564 msgid "" ":mod:`wsgiref.types`: :pep:`WSGI <3333>`-specific types for static type " "checking. (Contributed by Sebastian Rittau in :issue:`42012`.)" @@ -865,15 +852,15 @@ msgstr "" "comprobación de tipos estáticos. (Aportado por Sebastian Rittau en :issue:" "`42012`.)" -#: ../Doc/whatsnew/3.11.rst:570 +#: ../Doc/whatsnew/3.11.rst:572 msgid "Improved Modules" msgstr "Módulos mejorados" -#: ../Doc/whatsnew/3.11.rst:575 +#: ../Doc/whatsnew/3.11.rst:577 msgid "asyncio" msgstr "asíncio" -#: ../Doc/whatsnew/3.11.rst:577 +#: ../Doc/whatsnew/3.11.rst:579 msgid "" "Added the :class:`~asyncio.TaskGroup` class, an :ref:`asynchronous context " "manager ` holding a group of tasks that will wait " @@ -887,7 +874,7 @@ msgstr "" "func:`~asyncio.create_task` y :func:`~asyncio.gather` directamente. " "(Aportado por Yury Selivanov y otros en :gh:`90908`.)" -#: ../Doc/whatsnew/3.11.rst:584 +#: ../Doc/whatsnew/3.11.rst:586 msgid "" "Added :func:`~asyncio.timeout`, an asynchronous context manager for setting " "a timeout on asynchronous operations. For new code this is recommended over " @@ -899,7 +886,7 @@ msgstr "" "nuevo, se recomienda usar :func:`~asyncio.wait_for` directamente. (Aportado " "por Andrew Svetlov en :gh:`90927`.)" -#: ../Doc/whatsnew/3.11.rst:589 +#: ../Doc/whatsnew/3.11.rst:591 msgid "" "Added the :class:`~asyncio.Runner` class, which exposes the machinery used " "by :func:`~asyncio.run`. (Contributed by Andrew Svetlov in :gh:`91218`.)" @@ -908,7 +895,7 @@ msgstr "" "utilizada por :func:`~asyncio.run`. (Aportado por Andrew Svetlov en :gh:" "`91218`.)" -#: ../Doc/whatsnew/3.11.rst:593 +#: ../Doc/whatsnew/3.11.rst:595 msgid "" "Added the :class:`~asyncio.Barrier` class to the synchronization primitives " "in the asyncio library, and the related :exc:`~asyncio.BrokenBarrierError` " @@ -919,7 +906,7 @@ msgstr "" "BrokenBarrierError` relacionada. (Aportado por Yves Duprat y Andrew Svetlov " "en :gh:`87518`.)" -#: ../Doc/whatsnew/3.11.rst:598 +#: ../Doc/whatsnew/3.11.rst:600 msgid "" "Added keyword argument *all_errors* to :meth:`asyncio.loop." "create_connection` so that multiple connection errors can be raised as an :" @@ -929,7 +916,7 @@ msgstr "" "create_connection` para que se puedan generar varios errores de conexión " "como :exc:`ExceptionGroup`." -#: ../Doc/whatsnew/3.11.rst:601 +#: ../Doc/whatsnew/3.11.rst:603 msgid "" "Added the :meth:`asyncio.StreamWriter.start_tls` method for upgrading " "existing stream-based connections to TLS. (Contributed by Ian Good in :issue:" @@ -939,7 +926,7 @@ msgstr "" "las conexiones basadas en secuencias existentes a TLS. (Aportado por Ian " "Good en :issue:`34975`.)" -#: ../Doc/whatsnew/3.11.rst:605 +#: ../Doc/whatsnew/3.11.rst:607 msgid "" "Added raw datagram socket functions to the event loop: :meth:`~asyncio.loop." "sock_sendto`, :meth:`~asyncio.loop.sock_recvfrom` and :meth:`~asyncio.loop." @@ -953,7 +940,7 @@ msgstr "" "implementaciones en :class:`~asyncio.SelectorEventLoop` y :class:`~asyncio." "ProactorEventLoop`. (Aportado por Alex Grönholm en :issue:`46805`.)" -#: ../Doc/whatsnew/3.11.rst:613 +#: ../Doc/whatsnew/3.11.rst:615 msgid "" "Added :meth:`~asyncio.Task.cancelling` and :meth:`~asyncio.Task.uncancel` " "methods to :class:`~asyncio.Task`. These are primarily intended for internal " @@ -964,11 +951,11 @@ msgstr "" "principalmente para uso interno, en particular por :class:`~asyncio." "TaskGroup`." -#: ../Doc/whatsnew/3.11.rst:619 +#: ../Doc/whatsnew/3.11.rst:624 msgid "contextlib" msgstr "contextlib" -#: ../Doc/whatsnew/3.11.rst:621 +#: ../Doc/whatsnew/3.11.rst:626 msgid "" "Added non parallel-safe :func:`~contextlib.chdir` context manager to change " "the current working directory and then restore it on exit. Simple wrapper " @@ -979,11 +966,11 @@ msgstr "" "al salir. Envoltorio simple alrededor de :func:`~os.chdir`. (Aportación de " "Filipe Laíns en :issue:`25625`)" -#: ../Doc/whatsnew/3.11.rst:626 +#: ../Doc/whatsnew/3.11.rst:634 msgid "dataclasses" msgstr "clases de datos" -#: ../Doc/whatsnew/3.11.rst:628 +#: ../Doc/whatsnew/3.11.rst:636 msgid "" "Change field default mutability check, allowing only defaults which are :" "term:`hashable` instead of any object which is not an instance of :class:" @@ -995,19 +982,20 @@ msgstr "" "cualquier objeto que no sea una instancia de :class:`dict`, :class:`list` o :" "class:`set`. (Aportado por Eric V. Smith en :issue:`44674`.)" -#: ../Doc/whatsnew/3.11.rst:634 +#: ../Doc/whatsnew/3.11.rst:645 msgid "datetime" msgstr "fecha y hora" -#: ../Doc/whatsnew/3.11.rst:636 +#: ../Doc/whatsnew/3.11.rst:647 +#, fuzzy msgid "" -"Add :attr:`datetime.UTC`, a convenience alias for :attr:`datetime.timezone." +"Add :const:`datetime.UTC`, a convenience alias for :attr:`datetime.timezone." "utc`. (Contributed by Kabir Kwatra in :gh:`91973`.)" msgstr "" "Agregue :attr:`datetime.UTC`, un alias conveniente para :attr:`datetime." "timezone.utc`. (Aportado por Kabir Kwatra en :gh:`91973`.)" -#: ../Doc/whatsnew/3.11.rst:638 +#: ../Doc/whatsnew/3.11.rst:650 msgid "" ":meth:`datetime.date.fromisoformat`, :meth:`datetime.time.fromisoformat` " "and :meth:`datetime.datetime.fromisoformat` can now be used to parse most " @@ -1019,11 +1007,11 @@ msgstr "" "mayoría de los formatos ISO 8601 (excepto aquellos que admiten fracciones de " "horas y minutos). (Aportado por Paul Ganssle en :gh:`80010`.)" -#: ../Doc/whatsnew/3.11.rst:647 +#: ../Doc/whatsnew/3.11.rst:659 msgid "enum" msgstr "enumeración" -#: ../Doc/whatsnew/3.11.rst:649 +#: ../Doc/whatsnew/3.11.rst:661 msgid "" "Renamed :class:`!EnumMeta` to :class:`~enum.EnumType` (:class:`!EnumMeta` " "kept as an alias)." @@ -1031,7 +1019,7 @@ msgstr "" "Cambió el nombre de :class:`!EnumMeta` a :class:`~enum.EnumType` (:class:`!" "EnumMeta` se mantuvo como un alias)." -#: ../Doc/whatsnew/3.11.rst:652 +#: ../Doc/whatsnew/3.11.rst:664 msgid "" "Added :class:`~enum.StrEnum`, with members that can be used as (and must be) " "strings." @@ -1039,7 +1027,7 @@ msgstr "" "Se agregó :class:`~enum.StrEnum`, con miembros que se pueden usar como (y " "deben ser) cadenas." -#: ../Doc/whatsnew/3.11.rst:655 +#: ../Doc/whatsnew/3.11.rst:667 msgid "" "Added :class:`~enum.ReprEnum`, which only modifies the :meth:`~object." "__repr__` of members while returning their literal values (rather than " @@ -1051,38 +1039,16 @@ msgstr "" "de nombres) para :meth:`~object.__str__` y :meth:`~object.__format__` " "(utilizados por :func:`str`, :func:`format` y :term:`f-string`\\s)." -#: ../Doc/whatsnew/3.11.rst:661 +#: ../Doc/whatsnew/3.11.rst:673 msgid "" -"Changed :class:`~enum.IntEnum`, :class:`~enum.IntFlag` and :class:`~enum." -"StrEnum` to now inherit from :class:`ReprEnum`, so their :func:`str` output " -"now matches :func:`format` (both ``str(AnIntEnum.ONE)`` and " -"``format(AnIntEnum.ONE)`` return ``'1'``, whereas before ``str(AnIntEnum." -"ONE)`` returned ``'AnIntEnum.ONE'``." +"Changed :meth:`Enum.__format__() ` (the default for :" +"func:`format`, :meth:`str.format` and :term:`f-string`\\s) to always produce " +"the same result as :meth:`Enum.__str__()`: for enums inheriting from :class:" +"`~enum.ReprEnum` it will be the member's value; for all other enums it will " +"be the enum and member name (e.g. ``Color.RED``)." msgstr "" -"Se cambiaron :class:`~enum.IntEnum`, :class:`~enum.IntFlag` y :class:`~enum." -"StrEnum` para heredar ahora de :class:`ReprEnum`, por lo que su salida :func:" -"`str` ahora coincide con :func:`format` (tanto ``str(AnIntEnum.ONE)`` como " -"``format(AnIntEnum.ONE)`` devuelven ``'1'``, mientras que antes " -"``str(AnIntEnum.ONE)`` devolvía ``'AnIntEnum.ONE'``." -#: ../Doc/whatsnew/3.11.rst:667 -msgid "" -"Changed :meth:`Enum.__format__() ` (the default for :" -"func:`format`, :meth:`str.format` and :term:`f-string`\\s) of enums with " -"mixed-in types (e.g. :class:`int`, :class:`str`) to also include the class " -"name in the output, not just the member's key. This matches the existing " -"behavior of :meth:`enum.Enum.__str__`, returning e.g. ``'AnEnum.MEMBER'`` " -"for an enum ``AnEnum(str, Enum)`` instead of just ``'MEMBER'``." -msgstr "" -"Se modificó :meth:`Enum.__format__() ` (el valor " -"predeterminado para :func:`format`, :meth:`str.format` y :term:`f-" -"string`\\s) de enumeraciones con tipos combinados (por ejemplo, :class:" -"`int`, :class:`str`) para incluir también el nombre de la clase en la " -"salida, no solo la clave del miembro. Esto coincide con el comportamiento " -"existente de :meth:`enum.Enum.__str__`, devolviendo, p. ``'AnEnum.MEMBER'`` " -"para una enumeración ``AnEnum(str, Enum)`` en lugar de solo ``'MEMBER'``." - -#: ../Doc/whatsnew/3.11.rst:675 +#: ../Doc/whatsnew/3.11.rst:679 msgid "" "Added a new *boundary* class parameter to :class:`~enum.Flag` enums and the :" "class:`~enum.FlagBoundary` enum with its options, to control how to handle " @@ -1092,7 +1058,7 @@ msgstr "" "`~enum.Flag` y la enumeración :class:`~enum.FlagBoundary` con sus opciones, " "para controlar cómo manejar los valores de marca fuera de rango." -#: ../Doc/whatsnew/3.11.rst:679 +#: ../Doc/whatsnew/3.11.rst:683 msgid "" "Added the :func:`~enum.verify` enum decorator and the :class:`~enum." "EnumCheck` enum with its options, to check enum classes against several " @@ -1102,7 +1068,7 @@ msgstr "" "class:`~enum.EnumCheck` con sus opciones, para verificar las clases de " "enumeración contra varias restricciones específicas." -#: ../Doc/whatsnew/3.11.rst:683 +#: ../Doc/whatsnew/3.11.rst:687 msgid "" "Added the :func:`~enum.member` and :func:`~enum.nonmember` decorators, to " "ensure the decorated object is/is not converted to an enum member." @@ -1111,7 +1077,7 @@ msgstr "" "para garantizar que el objeto decorado no se convierta en un miembro de " "enumeración." -#: ../Doc/whatsnew/3.11.rst:686 +#: ../Doc/whatsnew/3.11.rst:690 msgid "" "Added the :func:`~enum.property` decorator, which works like :func:" "`property` except for enums. Use this instead of :func:`types." @@ -1121,12 +1087,13 @@ msgstr "" "`property` excepto para las enumeraciones. Use esto en lugar de :func:`types." "DynamicClassAttribute`." -#: ../Doc/whatsnew/3.11.rst:690 +#: ../Doc/whatsnew/3.11.rst:694 +#, fuzzy msgid "" "Added the :func:`~enum.global_enum` enum decorator, which adjusts :meth:" "`~object.__repr__` and :meth:`~object.__str__` to show values as members of " "their module rather than the enum class. For example, ``'re.ASCII'`` for " -"the :data:`~re.ASCII` member of :class:`re.RegexFlag` rather than " +"the :const:`~re.ASCII` member of :class:`re.RegexFlag` rather than " "``'RegexFlag.ASCII'``." msgstr "" "Se agregó el decorador de enumeración :func:`~enum.global_enum`, que ajusta :" @@ -1135,7 +1102,7 @@ msgstr "" "``'re.ASCII'`` para el miembro :data:`~re.ASCII` de :class:`re.RegexFlag` en " "lugar de ``'RegexFlag.ASCII'``." -#: ../Doc/whatsnew/3.11.rst:696 +#: ../Doc/whatsnew/3.11.rst:700 msgid "" "Enhanced :class:`~enum.Flag` to support :func:`len`, iteration and :keyword:" "`in`/:keyword:`not in` on its members. For example, the following now works: " @@ -1146,7 +1113,7 @@ msgstr "" "siguiente: ``len(AFlag(3)) == 2 and list(AFlag(3)) == (AFlag.ONE, AFlag." "TWO)``" -#: ../Doc/whatsnew/3.11.rst:701 +#: ../Doc/whatsnew/3.11.rst:705 msgid "" "Changed :class:`~enum.Enum` and :class:`~enum.Flag` so that members are now " "defined before :meth:`~object.__init_subclass__` is called; :func:`dir` now " @@ -1156,7 +1123,7 @@ msgstr "" "ahora se definan antes de llamar a :meth:`~object.__init_subclass__`; :func:" "`dir` ahora incluye métodos, etc., de tipos de datos combinados." -#: ../Doc/whatsnew/3.11.rst:706 +#: ../Doc/whatsnew/3.11.rst:710 msgid "" "Changed :class:`~enum.Flag` to only consider primary values (power of two) " "canonical while composite values (``3``, ``6``, ``10``, etc.) are considered " @@ -1167,11 +1134,26 @@ msgstr "" "``6``, ``10``, etc.) se consideran alias; las banderas invertidas son " "forzadas a su equivalente positivo." -#: ../Doc/whatsnew/3.11.rst:713 +#: ../Doc/whatsnew/3.11.rst:719 +msgid "fcntl" +msgstr "fcntl" + +#: ../Doc/whatsnew/3.11.rst:721 +#, fuzzy +msgid "" +"On FreeBSD, the :data:`!F_DUP2FD` and :data:`!F_DUP2FD_CLOEXEC` flags " +"respectively are supported, the former equals to ``dup2`` usage while the " +"latter set the ``FD_CLOEXEC`` flag in addition." +msgstr "" +"En FreeBSD, se admiten las banderas :attr:`F_DUP2FD` y :attr:" +"`F_DUP2FD_CLOEXEC` respectivamente, la primera equivale al uso de ``dup2`` " +"mientras que la última establece además la bandera ``FD_CLOEXEC``." + +#: ../Doc/whatsnew/3.11.rst:729 msgid "fractions" msgstr "fracciones" -#: ../Doc/whatsnew/3.11.rst:715 +#: ../Doc/whatsnew/3.11.rst:731 msgid "" "Support :PEP:`515`-style initialization of :class:`~fractions.Fraction` from " "string. (Contributed by Sergey B Kirpichev in :issue:`44258`.)" @@ -1180,7 +1162,7 @@ msgstr "" "`~fractions.Fraction` desde una cadena. (Aportado por Sergey B Kirpichev en :" "issue:`44258`.)" -#: ../Doc/whatsnew/3.11.rst:718 +#: ../Doc/whatsnew/3.11.rst:734 msgid "" ":class:`~fractions.Fraction` now implements an ``__int__`` method, so that " "an ``isinstance(some_fraction, typing.SupportsInt)`` check passes. " @@ -1190,11 +1172,11 @@ msgstr "" "que pasa una verificación ``isinstance(some_fraction, typing.SupportsInt)``. " "(Contribuido por Mark Dickinson en :issue:`44547`.)" -#: ../Doc/whatsnew/3.11.rst:723 +#: ../Doc/whatsnew/3.11.rst:742 msgid "functools" msgstr "herramientas funcionales" -#: ../Doc/whatsnew/3.11.rst:725 +#: ../Doc/whatsnew/3.11.rst:744 msgid "" ":func:`functools.singledispatch` now supports :data:`types.UnionType` and :" "data:`typing.Union` as annotations to the dispatch argument.::" @@ -1202,15 +1184,15 @@ msgstr "" ":func:`functools.singledispatch` ahora admite :data:`types.UnionType` y :" "data:`typing.Union` como anotaciones en el argumento de envío.::" -#: ../Doc/whatsnew/3.11.rst:750 +#: ../Doc/whatsnew/3.11.rst:769 msgid "(Contributed by Yurii Karabas in :issue:`46014`.)" msgstr "(Aportado por Yurii Karabas en :issue:`46014`.)" -#: ../Doc/whatsnew/3.11.rst:753 +#: ../Doc/whatsnew/3.11.rst:775 msgid "hashlib" msgstr "hashlib" -#: ../Doc/whatsnew/3.11.rst:755 +#: ../Doc/whatsnew/3.11.rst:777 msgid "" ":func:`hashlib.blake2b` and :func:`hashlib.blake2s` now prefer `libb2`_ over " "Python's vendored copy. (Contributed by Christian Heimes in :issue:`47095`.)" @@ -1219,7 +1201,7 @@ msgstr "" "la copia proporcionada por Python. (Aportado por Christian Heimes en :issue:" "`47095`.)" -#: ../Doc/whatsnew/3.11.rst:759 +#: ../Doc/whatsnew/3.11.rst:781 msgid "" "The internal ``_sha3`` module with SHA3 and SHAKE algorithms now uses " "*tiny_sha3* instead of the *Keccak Code Package* to reduce code and binary " @@ -1234,7 +1216,7 @@ msgstr "" "compatibilidad con OpenSSL. (Aportado por Christian Heimes en :issue:" "`47098`.)" -#: ../Doc/whatsnew/3.11.rst:766 +#: ../Doc/whatsnew/3.11.rst:788 msgid "" "Add :func:`hashlib.file_digest`, a helper function for efficient hashing of " "files or file-like objects. (Contributed by Christian Heimes in :gh:`89313`.)" @@ -1243,11 +1225,11 @@ msgstr "" "eficiente de archivos u objetos similares a archivos. (Aportado por " "Christian Heimes en :gh:`89313`.)" -#: ../Doc/whatsnew/3.11.rst:771 +#: ../Doc/whatsnew/3.11.rst:796 msgid "IDLE and idlelib" msgstr "IDLE y libre de inactividad" -#: ../Doc/whatsnew/3.11.rst:773 +#: ../Doc/whatsnew/3.11.rst:798 msgid "" "Apply syntax highlighting to ``.pyi`` files. (Contributed by Alex Waygood " "and Terry Jan Reedy in :issue:`45447`.)" @@ -1255,7 +1237,7 @@ msgstr "" "Aplicar resaltado de sintaxis a archivos ``.pyi``. (Aportado por Alex " "Waygood y Terry Jan Reedy en :issue:`45447`)." -#: ../Doc/whatsnew/3.11.rst:776 +#: ../Doc/whatsnew/3.11.rst:801 msgid "" "Include prompts when saving Shell with inputs and outputs. (Contributed by " "Terry Jan Reedy in :gh:`95191`.)" @@ -1263,11 +1245,11 @@ msgstr "" "Incluya avisos al guardar Shell con entradas y salidas. (Aportado por Terry " "Jan Reedy en :gh:`95191`.)" -#: ../Doc/whatsnew/3.11.rst:783 +#: ../Doc/whatsnew/3.11.rst:808 msgid "inspect" msgstr "inspeccionar" -#: ../Doc/whatsnew/3.11.rst:785 +#: ../Doc/whatsnew/3.11.rst:810 msgid "" "Add :func:`~inspect.getmembers_static` to return all members without " "triggering dynamic lookup via the descriptor protocol. (Contributed by " @@ -1277,7 +1259,7 @@ msgstr "" "sin activar la búsqueda dinámica a través del protocolo descriptor. " "(Contribuido por Weipeng Hong en :issue:`30533`.)" -#: ../Doc/whatsnew/3.11.rst:789 +#: ../Doc/whatsnew/3.11.rst:814 msgid "" "Add :func:`~inspect.ismethodwrapper` for checking if the type of an object " "is a :class:`~types.MethodWrapperType`. (Contributed by Hakan Çelik in :" @@ -1287,7 +1269,7 @@ msgstr "" "objeto es :class:`~types.MethodWrapperType`. (Aportado por Hakan Çelik en :" "issue:`29418`.)" -#: ../Doc/whatsnew/3.11.rst:793 +#: ../Doc/whatsnew/3.11.rst:818 msgid "" "Change the frame-related functions in the :mod:`inspect` module to return " "new :class:`~inspect.FrameInfo` and :class:`~inspect.Traceback` class " @@ -1302,35 +1284,35 @@ msgstr "" "extendida (número de línea final, columna y columna final). Las funciones " "afectadas son:" -#: ../Doc/whatsnew/3.11.rst:799 +#: ../Doc/whatsnew/3.11.rst:824 msgid ":func:`inspect.getframeinfo`" msgstr ":func:`inspect.getframeinfo`" -#: ../Doc/whatsnew/3.11.rst:800 +#: ../Doc/whatsnew/3.11.rst:825 msgid ":func:`inspect.getouterframes`" msgstr ":func:`inspect.getouterframes`" -#: ../Doc/whatsnew/3.11.rst:801 +#: ../Doc/whatsnew/3.11.rst:826 msgid ":func:`inspect.getinnerframes`," msgstr ":func:`inspect.getinnerframes`," -#: ../Doc/whatsnew/3.11.rst:802 +#: ../Doc/whatsnew/3.11.rst:827 msgid ":func:`inspect.stack`" msgstr ":func:`inspect.stack`" -#: ../Doc/whatsnew/3.11.rst:803 +#: ../Doc/whatsnew/3.11.rst:828 msgid ":func:`inspect.trace`" msgstr ":func:`inspect.trace`" -#: ../Doc/whatsnew/3.11.rst:805 +#: ../Doc/whatsnew/3.11.rst:830 msgid "(Contributed by Pablo Galindo in :gh:`88116`.)" msgstr "(Aportado por Pablo Galindo en :gh:`88116`.)" -#: ../Doc/whatsnew/3.11.rst:808 +#: ../Doc/whatsnew/3.11.rst:836 msgid "locale" msgstr "lugar" -#: ../Doc/whatsnew/3.11.rst:810 +#: ../Doc/whatsnew/3.11.rst:838 msgid "" "Add :func:`locale.getencoding` to get the current locale encoding. It is " "similar to ``locale.getpreferredencoding(False)`` but ignores the :ref:" @@ -1341,11 +1323,11 @@ msgstr "" "getpreferredencoding(False)`` pero ignora :ref:`Python UTF-8 Mode `." -#: ../Doc/whatsnew/3.11.rst:818 +#: ../Doc/whatsnew/3.11.rst:846 msgid "logging" msgstr "Inicio sesión" -#: ../Doc/whatsnew/3.11.rst:820 +#: ../Doc/whatsnew/3.11.rst:848 msgid "" "Added :func:`~logging.getLevelNamesMapping` to return a mapping from logging " "level names (e.g. ``'CRITICAL'``) to the values of their corresponding :ref:" @@ -1357,7 +1339,7 @@ msgstr "" "de su :ref:`levels` correspondiente (por ejemplo, ``50``, de forma " "predeterminada). (Aportado por Andrei Kulakovin en :gh:`88024`.)" -#: ../Doc/whatsnew/3.11.rst:825 +#: ../Doc/whatsnew/3.11.rst:853 msgid "" "Added a :meth:`~logging.handlers.SysLogHandler.createSocket` method to :" "class:`~logging.handlers.SysLogHandler`, to match :meth:`SocketHandler." @@ -1372,11 +1354,11 @@ msgstr "" "controlador y cuando se emite un evento, si no hay un socket activo. " "(Aportado por Kirill Pinchuk en :gh:`88457`.)" -#: ../Doc/whatsnew/3.11.rst:835 +#: ../Doc/whatsnew/3.11.rst:865 msgid "math" msgstr "Matemáticas" -#: ../Doc/whatsnew/3.11.rst:837 +#: ../Doc/whatsnew/3.11.rst:867 msgid "" "Add :func:`math.exp2`: return 2 raised to the power of x. (Contributed by " "Gideon Mitchell in :issue:`45917`.)" @@ -1384,7 +1366,7 @@ msgstr "" "Suma :func:`math.exp2`: devuelve 2 elevado a la potencia de x. (Aportado por " "Gideon Mitchell en :issue:`45917`.)" -#: ../Doc/whatsnew/3.11.rst:840 +#: ../Doc/whatsnew/3.11.rst:870 msgid "" "Add :func:`math.cbrt`: return the cube root of x. (Contributed by Ajith " "Ramachandran in :issue:`44357`.)" @@ -1392,7 +1374,7 @@ msgstr "" "Agregue :func:`math.cbrt`: devuelva la raíz cúbica de x. (Aportado por Ajith " "Ramachandran en :issue:`44357`.)" -#: ../Doc/whatsnew/3.11.rst:843 +#: ../Doc/whatsnew/3.11.rst:873 msgid "" "The behaviour of two :func:`math.pow` corner cases was changed, for " "consistency with the IEEE 754 specification. The operations ``math.pow(0.0, -" @@ -1406,7 +1388,7 @@ msgstr "" "``inf``. Anteriormente plantearon :exc:`ValueError`. (Contribuido por Mark " "Dickinson en :issue:`44339`.)" -#: ../Doc/whatsnew/3.11.rst:849 +#: ../Doc/whatsnew/3.11.rst:879 msgid "" "The :data:`math.nan` value is now always available. (Contributed by Victor " "Stinner in :issue:`46917`.)" @@ -1414,11 +1396,11 @@ msgstr "" "El valor :data:`math.nan` ahora está siempre disponible. (Aportado por " "Victor Stinner en :issue:`46917`.)" -#: ../Doc/whatsnew/3.11.rst:854 +#: ../Doc/whatsnew/3.11.rst:886 msgid "operator" msgstr "operador" -#: ../Doc/whatsnew/3.11.rst:856 +#: ../Doc/whatsnew/3.11.rst:888 msgid "" "A new function ``operator.call`` has been added, such that ``operator." "call(obj, *args, **kwargs) == obj(*args, **kwargs)``. (Contributed by Antony " @@ -1428,25 +1410,26 @@ msgstr "" "call(obj, *args, **kwargs) == obj(*args, **kwargs)``. (Aportado por Antony " "Lee en :issue:`44019`.)" -#: ../Doc/whatsnew/3.11.rst:862 +#: ../Doc/whatsnew/3.11.rst:896 msgid "os" msgstr "sistema operativo" -#: ../Doc/whatsnew/3.11.rst:864 +#: ../Doc/whatsnew/3.11.rst:898 +#, fuzzy msgid "" "On Windows, :func:`os.urandom` now uses ``BCryptGenRandom()``, instead of " -"``CryptGenRandom()`` which is deprecated. (Contributed by Dong-hee Na in :" +"``CryptGenRandom()`` which is deprecated. (Contributed by Donghee Na in :" "issue:`44611`.)" msgstr "" "En Windows, :func:`os.urandom` ahora usa ``BCryptGenRandom()``, en lugar de " "``CryptGenRandom()``, que está en desuso. (Aportado por Dong-hee Na en :" "issue:`44611`.)" -#: ../Doc/whatsnew/3.11.rst:870 +#: ../Doc/whatsnew/3.11.rst:906 msgid "pathlib" msgstr "rutalib" -#: ../Doc/whatsnew/3.11.rst:872 +#: ../Doc/whatsnew/3.11.rst:908 msgid "" ":meth:`~pathlib.Path.glob` and :meth:`~pathlib.Path.rglob` return only " "directories if *pattern* ends with a pathname components separator: :data:" @@ -1458,11 +1441,11 @@ msgstr "" "de ruta: :data:`~os.sep` o :data:`~os.altsep`. (Aportado por Eisuke Kawasima " "en :issue:`22276` y :issue:`33392`)." -#: ../Doc/whatsnew/3.11.rst:878 +#: ../Doc/whatsnew/3.11.rst:917 msgid "re" msgstr "re" -#: ../Doc/whatsnew/3.11.rst:880 +#: ../Doc/whatsnew/3.11.rst:919 msgid "" "Atomic grouping (``(?>...)``) and possessive quantifiers (``*+``, ``++``, ``?" "+``, ``{m,n}+``) are now supported in regular expressions. (Contributed by " @@ -1473,11 +1456,11 @@ msgstr "" "regulares. (Aportado por Jeffrey C. Jacobs y Serhiy Storchaka en :issue:" "`433030`)." -#: ../Doc/whatsnew/3.11.rst:885 +#: ../Doc/whatsnew/3.11.rst:927 msgid "shutil" msgstr "cerrar" -#: ../Doc/whatsnew/3.11.rst:887 +#: ../Doc/whatsnew/3.11.rst:929 msgid "" "Add optional parameter *dir_fd* in :func:`shutil.rmtree`. (Contributed by " "Serhiy Storchaka in :issue:`46245`.)" @@ -1485,11 +1468,11 @@ msgstr "" "Agregue el parámetro opcional *dir_fd* en :func:`shutil.rmtree`. (Aportado " "por Serhiy Storchaka en :issue:`46245`.)" -#: ../Doc/whatsnew/3.11.rst:892 +#: ../Doc/whatsnew/3.11.rst:936 msgid "socket" msgstr "enchufe" -#: ../Doc/whatsnew/3.11.rst:894 +#: ../Doc/whatsnew/3.11.rst:938 msgid "" "Add CAN Socket support for NetBSD. (Contributed by Thomas Klausner in :issue:" "`30512`.)" @@ -1497,7 +1480,7 @@ msgstr "" "Agregue compatibilidad con CAN Socket para NetBSD. (Aportado por Thomas " "Klausner en :issue:`30512`.)" -#: ../Doc/whatsnew/3.11.rst:897 +#: ../Doc/whatsnew/3.11.rst:941 msgid "" ":meth:`~socket.create_connection` has an option to raise, in case of failure " "to connect, an :exc:`ExceptionGroup` containing all errors instead of only " @@ -1508,11 +1491,11 @@ msgstr "" "en lugar de generar solo el último error. (Aportado por Irit Katriel en :" "issue:`29980`.)" -#: ../Doc/whatsnew/3.11.rst:903 +#: ../Doc/whatsnew/3.11.rst:950 msgid "sqlite3" msgstr "sqlite3" -#: ../Doc/whatsnew/3.11.rst:905 +#: ../Doc/whatsnew/3.11.rst:952 msgid "" "You can now disable the authorizer by passing :const:`None` to :meth:" "`~sqlite3.Connection.set_authorizer`. (Contributed by Erlend E. Aasland in :" @@ -1522,7 +1505,7 @@ msgstr "" "`~sqlite3.Connection.set_authorizer`. (Aportado por Erlend E. Aasland en :" "issue:`44491`.)" -#: ../Doc/whatsnew/3.11.rst:909 +#: ../Doc/whatsnew/3.11.rst:956 msgid "" "Collation name :meth:`~sqlite3.Connection.create_collation` can now contain " "any Unicode character. Collation names with invalid characters now raise :" @@ -1535,7 +1518,7 @@ msgstr "" "`UnicodeEncodeError` en lugar de :exc:`sqlite3.ProgrammingError`. (Aportado " "por Erlend E. Aasland en :issue:`44688`.)" -#: ../Doc/whatsnew/3.11.rst:914 +#: ../Doc/whatsnew/3.11.rst:961 msgid "" ":mod:`sqlite3` exceptions now include the SQLite extended error code as :" "attr:`~sqlite3.Error.sqlite_errorcode` and the SQLite error name as :attr:" @@ -1548,7 +1531,7 @@ msgstr "" "Palivoda, Daniel Shahaf y Erlend E. Aasland en :issue:`16379` y :issue:" "`24139`)." -#: ../Doc/whatsnew/3.11.rst:920 +#: ../Doc/whatsnew/3.11.rst:967 msgid "" "Add :meth:`~sqlite3.Connection.setlimit` and :meth:`~sqlite3.Connection." "getlimit` to :class:`sqlite3.Connection` for setting and getting SQLite " @@ -1559,7 +1542,7 @@ msgstr "" "getlimit` a :class:`sqlite3.Connection` para configurar y obtener límites de " "SQLite por conexión. (Aportado por Erlend E. Aasland en :issue:`45243`.)" -#: ../Doc/whatsnew/3.11.rst:925 +#: ../Doc/whatsnew/3.11.rst:972 msgid "" ":mod:`sqlite3` now sets :attr:`sqlite3.threadsafety` based on the default " "threading mode the underlying SQLite library has been compiled with. " @@ -1570,7 +1553,7 @@ msgstr "" "biblioteca SQLite subyacente. (Aportado por Erlend E. Aasland en :issue:" "`45613`.)" -#: ../Doc/whatsnew/3.11.rst:929 +#: ../Doc/whatsnew/3.11.rst:976 msgid "" ":mod:`sqlite3` C callbacks now use unraisable exceptions if callback " "tracebacks are enabled. Users can now register an :func:`unraisable hook " @@ -1583,7 +1566,7 @@ msgstr "" "unraisablehook>` para mejorar su experiencia de depuración. (Aportado por " "Erlend E. Aasland en :issue:`45828`.)" -#: ../Doc/whatsnew/3.11.rst:935 +#: ../Doc/whatsnew/3.11.rst:982 msgid "" "Fetch across rollback no longer raises :exc:`~sqlite3.InterfaceError`. " "Instead we leave it to the SQLite library to handle these cases. " @@ -1593,7 +1576,7 @@ msgstr "" "En cambio, dejamos que la biblioteca SQLite maneje estos casos. (Aportado " "por Erlend E. Aasland en :issue:`44092`.)" -#: ../Doc/whatsnew/3.11.rst:939 +#: ../Doc/whatsnew/3.11.rst:986 msgid "" "Add :meth:`~sqlite3.Connection.serialize` and :meth:`~sqlite3.Connection." "deserialize` to :class:`sqlite3.Connection` for serializing and " @@ -1604,7 +1587,7 @@ msgstr "" "deserialize` a :class:`sqlite3.Connection` para serializar y deserializar " "bases de datos. (Aportado por Erlend E. Aasland en :issue:`41930`.)" -#: ../Doc/whatsnew/3.11.rst:944 +#: ../Doc/whatsnew/3.11.rst:991 msgid "" "Add :meth:`~sqlite3.Connection.create_window_function` to :class:`sqlite3." "Connection` for creating aggregate window functions. (Contributed by Erlend " @@ -1614,7 +1597,7 @@ msgstr "" "Connection` para crear funciones de ventana agregadas. (Aportado por Erlend " "E. Aasland en :issue:`34916`.)" -#: ../Doc/whatsnew/3.11.rst:948 +#: ../Doc/whatsnew/3.11.rst:995 msgid "" "Add :meth:`~sqlite3.Connection.blobopen` to :class:`sqlite3.Connection`. :" "class:`sqlite3.Blob` allows incremental I/O operations on blobs. " @@ -1624,11 +1607,11 @@ msgstr "" "class:`sqlite3.Blob` permite operaciones de E/S incrementales en blobs. " "(Contribuido por Aviv Palivoda y Erlend E. Aasland en :issue:`24905`)." -#: ../Doc/whatsnew/3.11.rst:956 +#: ../Doc/whatsnew/3.11.rst:1003 msgid "string" msgstr "cuerda" -#: ../Doc/whatsnew/3.11.rst:958 +#: ../Doc/whatsnew/3.11.rst:1005 msgid "" "Add :meth:`~string.Template.get_identifiers` and :meth:`~string.Template." "is_valid` to :class:`string.Template`, which respectively return all valid " @@ -1640,17 +1623,18 @@ msgstr "" "los marcadores de posición válidos y si hay algún marcador de posición no " "válido presente. (Aportado por Ben Kehoe en :gh:`90465`.)" -#: ../Doc/whatsnew/3.11.rst:966 +#: ../Doc/whatsnew/3.11.rst:1015 msgid "sys" msgstr "sistema" -#: ../Doc/whatsnew/3.11.rst:968 +#: ../Doc/whatsnew/3.11.rst:1017 +#, fuzzy msgid "" ":func:`sys.exc_info` now derives the ``type`` and ``traceback`` fields from " "the ``value`` (the exception instance), so when an exception is modified " "while it is being handled, the changes are reflected in the results of " -"subsequent calls to :func:`exc_info`. (Contributed by Irit Katriel in :issue:" -"`45711`.)" +"subsequent calls to :func:`!exc_info`. (Contributed by Irit Katriel in :" +"issue:`45711`.)" msgstr "" ":func:`sys.exc_info` ahora deriva los campos ``type`` y ``traceback`` de " "``value`` (la instancia de excepción), por lo que cuando se modifica una " @@ -1658,7 +1642,7 @@ msgstr "" "las llamadas posteriores a :func:`exc_info`. (Aportado por Irit Katriel en :" "issue:`45711`.)" -#: ../Doc/whatsnew/3.11.rst:974 +#: ../Doc/whatsnew/3.11.rst:1023 msgid "" "Add :func:`sys.exception` which returns the active exception instance " "(equivalent to ``sys.exc_info()[1]``). (Contributed by Irit Katriel in :" @@ -1668,7 +1652,7 @@ msgstr "" "(equivalente a ``sys.exc_info()[1]``). (Aportado por Irit Katriel en :issue:" "`46328`.)" -#: ../Doc/whatsnew/3.11.rst:978 +#: ../Doc/whatsnew/3.11.rst:1027 msgid "" "Add the :data:`sys.flags.safe_path ` flag. (Contributed by Victor " "Stinner in :gh:`57684`.)" @@ -1676,11 +1660,11 @@ msgstr "" "Agregue el indicador :data:`sys.flags.safe_path `. (Aportado por " "Victor Stinner en :gh:`57684`.)" -#: ../Doc/whatsnew/3.11.rst:983 +#: ../Doc/whatsnew/3.11.rst:1034 msgid "sysconfig" msgstr "configuración del sistema" -#: ../Doc/whatsnew/3.11.rst:985 +#: ../Doc/whatsnew/3.11.rst:1036 msgid "" "Three new :ref:`installation schemes ` (*posix_venv*, " "*nt_venv* and *venv*) were added and are used when Python creates new " @@ -1705,11 +1689,11 @@ msgstr "" "determinar las rutas, al igual que :mod:`venv`. (Aportado por Miro Hrončok " "en :issue:`45413`.)" -#: ../Doc/whatsnew/3.11.rst:1002 +#: ../Doc/whatsnew/3.11.rst:1053 msgid "tempfile" msgstr "archivo temporal" -#: ../Doc/whatsnew/3.11.rst:1004 +#: ../Doc/whatsnew/3.11.rst:1055 msgid "" ":class:`~tempfile.SpooledTemporaryFile` objects now fully implement the " "methods of :class:`io.BufferedIOBase` or :class:`io.TextIOBase` (depending " @@ -1723,16 +1707,17 @@ msgstr "" "correctamente con API que esperan objetos similares a archivos, como módulos " "de compresión. (Aportado por Carey Metcalfe en :gh:`70363`.)" -#: ../Doc/whatsnew/3.11.rst:1013 +#: ../Doc/whatsnew/3.11.rst:1066 msgid "threading" msgstr "enhebrar" -#: ../Doc/whatsnew/3.11.rst:1015 +#: ../Doc/whatsnew/3.11.rst:1068 +#, fuzzy msgid "" "On Unix, if the ``sem_clockwait()`` function is available in the C library " "(glibc 2.30 and newer), the :meth:`threading.Lock.acquire` method now uses " -"the monotonic clock (:data:`time.CLOCK_MONOTONIC`) for the timeout, rather " -"than using the system clock (:data:`time.CLOCK_REALTIME`), to not be " +"the monotonic clock (:const:`time.CLOCK_MONOTONIC`) for the timeout, rather " +"than using the system clock (:const:`time.CLOCK_REALTIME`), to not be " "affected by system clock changes. (Contributed by Victor Stinner in :issue:" "`41710`.)" msgstr "" @@ -1743,11 +1728,11 @@ msgstr "" "para no verse afectado por cambios en el reloj del sistema. (Aportado por " "Victor Stinner en :issue:`41710`.)" -#: ../Doc/whatsnew/3.11.rst:1024 +#: ../Doc/whatsnew/3.11.rst:1079 msgid "time" msgstr "tiempo" -#: ../Doc/whatsnew/3.11.rst:1026 +#: ../Doc/whatsnew/3.11.rst:1081 msgid "" "On Unix, :func:`time.sleep` now uses the ``clock_nanosleep()`` or " "``nanosleep()`` function, if available, which has a resolution of 1 " @@ -1761,14 +1746,16 @@ msgstr "" "tiene una resolución de 1 microsegundo (10\\ :sup:`-6` segundos). (Aportado " "por Benjamin Szőke y Victor Stinner en :issue:`21302`.)" -#: ../Doc/whatsnew/3.11.rst:1032 +#: ../Doc/whatsnew/3.11.rst:1087 +#, fuzzy msgid "" "On Windows 8.1 and newer, :func:`time.sleep` now uses a waitable timer based " "on `high-resolution timers `_ which has a resolution of " "100 nanoseconds (10\\ :sup:`-7` seconds). Previously, it had a resolution of " -"1 millisecond (10\\ :sup:`-3` seconds). (Contributed by Benjamin Szőke, Dong-" -"hee Na, Eryk Sun and Victor Stinner in :issue:`21302` and :issue:`45429`.)" +"1 millisecond (10\\ :sup:`-3` seconds). (Contributed by Benjamin Szőke, " +"Donghee Na, Eryk Sun and Victor Stinner in :issue:`21302` and :issue:" +"`45429`.)" msgstr "" "En Windows 8.1 y posteriores, :func:`time.sleep` ahora usa un temporizador " "de espera basado en `high-resolution timers `. " @@ -1934,7 +1936,7 @@ msgstr "" "referencias directas en :ref:`PEP 585 generic aliases `. " "(Aportado por Niklas Rosenstein en :gh:`85542`.)" -#: ../Doc/whatsnew/3.11.rst:1109 +#: ../Doc/whatsnew/3.11.rst:1178 msgid "" ":func:`typing.get_type_hints` no longer adds :data:`~typing.Optional` to " "parameters with ``None`` as a default. (Contributed by Nikita Sobolev in :gh:" @@ -1944,7 +1946,7 @@ msgstr "" "parámetros con ``None`` como predeterminado. (Aportado por Nikita Sobolev " "en :gh:`90353`.)" -#: ../Doc/whatsnew/3.11.rst:1113 +#: ../Doc/whatsnew/3.11.rst:1182 msgid "" ":func:`typing.get_type_hints` now supports evaluating bare stringified :data:" "`~typing.ClassVar` annotations. (Contributed by Gregory Beauregard in :gh:" @@ -1954,7 +1956,7 @@ msgstr "" "data:`~typing.ClassVar` con cadenas desnudas. (Aportado por Gregory " "Beauregard en :gh:`90711`.)" -#: ../Doc/whatsnew/3.11.rst:1117 +#: ../Doc/whatsnew/3.11.rst:1186 msgid "" ":func:`typing.no_type_check` no longer modifies external classes and " "functions. It also now correctly marks classmethods as not to be type " @@ -1964,37 +1966,24 @@ msgstr "" "Ahora también marca correctamente los métodos de clase para que no se " "verifique el tipo. (Aportado por Nikita Sobolev en :gh:`90729`.)" -#: ../Doc/whatsnew/3.11.rst:1123 -msgid "tkinter" -msgstr "tkinter" - -#: ../Doc/whatsnew/3.11.rst:1125 -msgid "" -"Added method ``info_patchlevel()`` which returns the exact version of the " -"Tcl library as a named tuple similar to :data:`sys.version_info`. " -"(Contributed by Serhiy Storchaka in :gh:`91827`.)" -msgstr "" -"Se agregó el método ``info_patchlevel()`` que devuelve la versión exacta de " -"la biblioteca Tcl como una tupla con nombre similar a :data:`sys." -"version_info`. (Aportado por Serhiy Storchaka en :gh:`91827`.)" - -#: ../Doc/whatsnew/3.11.rst:1131 +#: ../Doc/whatsnew/3.11.rst:1194 msgid "unicodedata" msgstr "unicodedata" -#: ../Doc/whatsnew/3.11.rst:1133 +#: ../Doc/whatsnew/3.11.rst:1196 +#, fuzzy msgid "" -"The Unicode database has been updated to version 14.0.0. (Contributed by " +"The Unicode database has been updated to version 14.0.0. (Contributed by " "Benjamin Peterson in :issue:`45190`)." msgstr "" "La base de datos Unicode se ha actualizado a la versión 14.0.0. (Aportado " "por Benjamin Peterson en :issue:`45190`)." -#: ../Doc/whatsnew/3.11.rst:1137 +#: ../Doc/whatsnew/3.11.rst:1203 msgid "unittest" msgstr "prueba de unidad" -#: ../Doc/whatsnew/3.11.rst:1139 +#: ../Doc/whatsnew/3.11.rst:1205 msgid "" "Added methods :meth:`~unittest.TestCase.enterContext` and :meth:`~unittest." "TestCase.enterClassContext` of class :class:`~unittest.TestCase`, method :" @@ -2009,11 +1998,11 @@ msgstr "" "la función :func:`unittest.enterModuleContext`. (Aportado por Serhiy " "Storchaka en :issue:`45046`.)" -#: ../Doc/whatsnew/3.11.rst:1149 +#: ../Doc/whatsnew/3.11.rst:1217 msgid "venv" msgstr "venv" -#: ../Doc/whatsnew/3.11.rst:1151 +#: ../Doc/whatsnew/3.11.rst:1219 msgid "" "When new Python virtual environments are created, the *venv* :ref:`sysconfig " "installation scheme ` is used to determine the paths " @@ -2034,11 +2023,11 @@ msgstr "" "virtuales debería hacer lo mismo. (Aportado por Miro Hrončok en :issue:" "`45413`.)" -#: ../Doc/whatsnew/3.11.rst:1162 +#: ../Doc/whatsnew/3.11.rst:1233 msgid "warnings" msgstr "advertencias" -#: ../Doc/whatsnew/3.11.rst:1164 +#: ../Doc/whatsnew/3.11.rst:1235 msgid "" ":func:`warnings.catch_warnings` now accepts arguments for :func:`warnings." "simplefilter`, providing a more concise way to locally ignore warnings or " @@ -2050,11 +2039,11 @@ msgstr "" "localmente las advertencias o convertirlas en errores. (Aportado por Zac " "Hatfield-Dodds en :issue:`47074`)." -#: ../Doc/whatsnew/3.11.rst:1172 +#: ../Doc/whatsnew/3.11.rst:1243 msgid "zipfile" msgstr "archivo zip" -#: ../Doc/whatsnew/3.11.rst:1174 +#: ../Doc/whatsnew/3.11.rst:1245 msgid "" "Added support for specifying member name encoding for reading metadata in a :" "class:`~zipfile.ZipFile`'s directory and file headers. (Contributed by " @@ -2065,7 +2054,7 @@ msgstr "" "de :class:`~zipfile.ZipFile`. (Aportado por Stephen J. Turnbull y Serhiy " "Storchaka en :issue:`28080`)." -#: ../Doc/whatsnew/3.11.rst:1178 +#: ../Doc/whatsnew/3.11.rst:1249 msgid "" "Added :meth:`ZipFile.mkdir() ` for creating new " "directories inside ZIP archives. (Contributed by Sam Ezeh in :gh:`49083`.)" @@ -2073,7 +2062,7 @@ msgstr "" "Se agregó :meth:`ZipFile.mkdir() ` para crear nuevos " "directorios dentro de archivos ZIP. (Aportado por Sam Ezeh en :gh:`49083`.)" -#: ../Doc/whatsnew/3.11.rst:1182 +#: ../Doc/whatsnew/3.11.rst:1253 msgid "" "Added :attr:`~zipfile.Path.stem`, :attr:`~zipfile.Path.suffix` and :attr:" "`~zipfile.Path.suffixes` to :class:`zipfile.Path`. (Contributed by Miguel " @@ -2083,25 +2072,11 @@ msgstr "" "attr:`~zipfile.Path.suffixes` a :class:`zipfile.Path`. (Aportado por Miguel " "Brito en :gh:`88261`.)" -#: ../Doc/whatsnew/3.11.rst:1188 -msgid "fcntl" -msgstr "fcntl" - -#: ../Doc/whatsnew/3.11.rst:1190 -msgid "" -"On FreeBSD, the :attr:`F_DUP2FD` and :attr:`F_DUP2FD_CLOEXEC` flags " -"respectively are supported, the former equals to ``dup2`` usage while the " -"latter set the ``FD_CLOEXEC`` flag in addition." -msgstr "" -"En FreeBSD, se admiten las banderas :attr:`F_DUP2FD` y :attr:" -"`F_DUP2FD_CLOEXEC` respectivamente, la primera equivale al uso de ``dup2`` " -"mientras que la última establece además la bandera ``FD_CLOEXEC``." - -#: ../Doc/whatsnew/3.11.rst:1198 +#: ../Doc/whatsnew/3.11.rst:1261 msgid "Optimizations" msgstr "Optimizaciones" -#: ../Doc/whatsnew/3.11.rst:1200 +#: ../Doc/whatsnew/3.11.rst:1263 msgid "" "This section covers specific optimizations independent of the :ref:" "`whatsnew311-faster-cpython` project, which is covered in its own section." @@ -2109,7 +2084,7 @@ msgstr "" "Esta sección cubre optimizaciones específicas independientes del proyecto :" "ref:`whatsnew311-faster-cpython`, que se trata en su propia sección." -#: ../Doc/whatsnew/3.11.rst:1203 +#: ../Doc/whatsnew/3.11.rst:1266 #, python-format msgid "" "The compiler now optimizes simple :ref:`printf-style % formatting `_ than CPython 3.10 when measured with the " +"CPython 3.11 is an average of `25% faster `_ than CPython 3.10 as measured with the " "`pyperformance `_ benchmark suite, " -"and compiled with GCC on Ubuntu Linux. Depending on your workload, the " -"speedup could be up to 10-60% faster." +"when compiled with GCC on Ubuntu Linux. Depending on your workload, the " +"overall speedup could be 10-60%." msgstr "" "CPython 3.11 es en promedio `25% faster `_ que CPython 3.10 cuando se mide con el conjunto " @@ -2231,49 +2207,52 @@ msgstr "" "pyperformance>`_ y se compila con GCC en Ubuntu Linux. Dependiendo de su " "carga de trabajo, la aceleración podría ser hasta un 10-60 % más rápida." -#: ../Doc/whatsnew/3.11.rst:1259 +#: ../Doc/whatsnew/3.11.rst:1323 +#, fuzzy msgid "" -"This project focuses on two major areas in Python: faster startup and faster " -"runtime. Other optimizations not under this project are listed in " -"`Optimizations`_." +"This project focuses on two major areas in Python: :ref:`whatsnew311-faster-" +"startup` and :ref:`whatsnew311-faster-runtime`. Optimizations not covered by " +"this project are listed separately under :ref:`whatsnew311-optimizations`." msgstr "" "Este proyecto se centra en dos áreas principales de Python: un inicio más " "rápido y un tiempo de ejecución más rápido. Otras optimizaciones que no " "pertenecen a este proyecto se enumeran en `Optimizations`_." -#: ../Doc/whatsnew/3.11.rst:1266 +#: ../Doc/whatsnew/3.11.rst:1332 msgid "Faster Startup" msgstr "Inicio más rápido" -#: ../Doc/whatsnew/3.11.rst:1271 +#: ../Doc/whatsnew/3.11.rst:1337 msgid "Frozen imports / Static code objects" msgstr "Importaciones congeladas / Objetos de código estático" -#: ../Doc/whatsnew/3.11.rst:1273 +#: ../Doc/whatsnew/3.11.rst:1339 +#, fuzzy msgid "" -"Python caches bytecode in the :ref:`__pycache__` directory to " -"speed up module loading." +"Python caches :term:`bytecode` in the :ref:`__pycache__ ` " +"directory to speed up module loading." msgstr "" "Python almacena en caché el código de bytes en el directorio :ref:" "`__pycache__` para acelerar la carga del módulo." -#: ../Doc/whatsnew/3.11.rst:1276 +#: ../Doc/whatsnew/3.11.rst:1342 msgid "Previously in 3.10, Python module execution looked like this:" msgstr "Previamente en 3.10, la ejecución del módulo de Python se veía así:" -#: ../Doc/whatsnew/3.11.rst:1282 +#: ../Doc/whatsnew/3.11.rst:1348 +#, fuzzy msgid "" "In Python 3.11, the core modules essential for Python startup are " -"\"frozen\". This means that their code objects (and bytecode) are statically " -"allocated by the interpreter. This reduces the steps in module execution " -"process to this:" +"\"frozen\". This means that their :ref:`codeobjects` (and bytecode) are " +"statically allocated by the interpreter. This reduces the steps in module " +"execution process to:" msgstr "" "En Python 3.11, los módulos principales esenciales para el inicio de Python " "están \"congelados\". Esto significa que sus objetos de código (y bytecode) " "son asignados estáticamente por el intérprete. Esto reduce los pasos en el " "proceso de ejecución del módulo a esto:" -#: ../Doc/whatsnew/3.11.rst:1290 +#: ../Doc/whatsnew/3.11.rst:1357 #, python-format msgid "" "Interpreter startup is now 10-15% faster in Python 3.11. This has a big " @@ -2282,43 +2261,44 @@ msgstr "" "El inicio del intérprete ahora es un 10-15 % más rápido en Python 3.11. Esto " "tiene un gran impacto para los programas de ejecución corta que usan Python." -#: ../Doc/whatsnew/3.11.rst:1293 +#: ../Doc/whatsnew/3.11.rst:1360 +#, fuzzy msgid "" -"(Contributed by Eric Snow, Guido van Rossum and Kumar Aditya in numerous " -"issues.)" +"(Contributed by Eric Snow, Guido van Rossum and Kumar Aditya in many issues.)" msgstr "" "(Aportado por Eric Snow, Guido van Rossum y Kumar Aditya en numerosos " "números)." -#: ../Doc/whatsnew/3.11.rst:1299 +#: ../Doc/whatsnew/3.11.rst:1366 msgid "Faster Runtime" msgstr "Tiempo de ejecución más rápido" -#: ../Doc/whatsnew/3.11.rst:1304 +#: ../Doc/whatsnew/3.11.rst:1371 msgid "Cheaper, lazy Python frames" msgstr "Marcos de Python más baratos y perezosos" -#: ../Doc/whatsnew/3.11.rst:1306 +#: ../Doc/whatsnew/3.11.rst:1373 +#, fuzzy msgid "" -"Python frames are created whenever Python calls a Python function. This " -"frame holds execution information. The following are new frame optimizations:" +"Python frames, holding execution information, are created whenever Python " +"calls a Python function. The following are new frame optimizations:" msgstr "" "Los marcos de Python se crean cada vez que Python llama a una función de " "Python. Este marco contiene información de ejecución. Las siguientes son " "nuevas optimizaciones de fotogramas:" -#: ../Doc/whatsnew/3.11.rst:1309 +#: ../Doc/whatsnew/3.11.rst:1377 msgid "Streamlined the frame creation process." msgstr "Simplificó el proceso de creación de marcos." -#: ../Doc/whatsnew/3.11.rst:1310 +#: ../Doc/whatsnew/3.11.rst:1378 msgid "" "Avoided memory allocation by generously re-using frame space on the C stack." msgstr "" "Se evitó la asignación de memoria al reutilizar generosamente el espacio de " "marcos en la pila C." -#: ../Doc/whatsnew/3.11.rst:1311 +#: ../Doc/whatsnew/3.11.rst:1379 msgid "" "Streamlined the internal frame struct to contain only essential information. " "Frames previously held extra debugging and memory management information." @@ -2327,14 +2307,15 @@ msgstr "" "información esencial. Los marcos contenían previamente información adicional " "de gestión de memoria y depuración." -#: ../Doc/whatsnew/3.11.rst:1314 -#, python-format +#: ../Doc/whatsnew/3.11.rst:1382 +#, fuzzy, python-format msgid "" -"Old-style frame objects are now created only when requested by debuggers or " -"by Python introspection functions such as ``sys._getframe`` or ``inspect." -"currentframe``. For most user code, no frame objects are created at all. As " -"a result, nearly all Python functions calls have sped up significantly. We " -"measured a 3-7% speedup in pyperformance." +"Old-style :ref:`frame objects ` are now created only when " +"requested by debuggers or by Python introspection functions such as :func:" +"`sys._getframe` and :func:`inspect.currentframe`. For most user code, no " +"frame objects are created at all. As a result, nearly all Python functions " +"calls have sped up significantly. We measured a 3-7% speedup in " +"pyperformance." msgstr "" "Los objetos de marco de estilo antiguo ahora se crean solo cuando lo " "solicitan los depuradores o las funciones de introspección de Python, como " @@ -2343,15 +2324,15 @@ msgstr "" "todas las llamadas a funciones de Python se han acelerado " "significativamente. Medimos un 3-7% de aceleración en pyrendimiento." -#: ../Doc/whatsnew/3.11.rst:1320 +#: ../Doc/whatsnew/3.11.rst:1389 msgid "(Contributed by Mark Shannon in :issue:`44590`.)" msgstr "(Aportado por Mark Shannon en :issue:`44590`.)" -#: ../Doc/whatsnew/3.11.rst:1327 +#: ../Doc/whatsnew/3.11.rst:1396 msgid "Inlined Python function calls" msgstr "Llamadas a funciones de Python en línea" -#: ../Doc/whatsnew/3.11.rst:1329 +#: ../Doc/whatsnew/3.11.rst:1398 msgid "" "During a Python function call, Python will call an evaluating C function to " "interpret that function's code. This effectively limits pure Python " @@ -2362,7 +2343,7 @@ msgstr "" "efectivamente la recursión pura de Python a lo que es seguro para la pila de " "C." -#: ../Doc/whatsnew/3.11.rst:1333 +#: ../Doc/whatsnew/3.11.rst:1402 msgid "" "In 3.11, when CPython detects Python code calling another Python function, " "it sets up a new frame, and \"jumps\" to the new code inside the new frame. " @@ -2373,14 +2354,14 @@ msgstr "" "nuevo marco. Esto evita llamar a la función de interpretación de C por " "completo." -#: ../Doc/whatsnew/3.11.rst:1337 -#, python-format +#: ../Doc/whatsnew/3.11.rst:1406 +#, fuzzy, python-format msgid "" -"Most Python function calls now consume no C stack space. This speeds up most " -"of such calls. In simple recursive functions like fibonacci or factorial, a " -"1.7x speedup was observed. This also means recursive functions can recurse " -"significantly deeper (if the user increases the recursion limit). We " -"measured a 1-3% improvement in pyperformance." +"Most Python function calls now consume no C stack space, speeding them up. " +"In simple recursive functions like fibonacci or factorial, we observed a " +"1.7x speedup. This also means recursive functions can recurse significantly " +"deeper (if the user increases the recursion limit with :func:`sys." +"setrecursionlimit`). We measured a 1-3% improvement in pyperformance." msgstr "" "La mayoría de las llamadas a funciones de Python ahora no consumen espacio " "en la pila de C. Esto acelera la mayoría de tales llamadas. En funciones " @@ -2389,17 +2370,18 @@ msgstr "" "mucho más profundo (si el usuario aumenta el límite de recurrencia). Medimos " "una mejora del 1-3 % en el rendimiento." -#: ../Doc/whatsnew/3.11.rst:1343 +#: ../Doc/whatsnew/3.11.rst:1413 msgid "(Contributed by Pablo Galindo and Mark Shannon in :issue:`45256`.)" msgstr "(Aportado por Pablo Galindo y Mark Shannon en :issue:`45256`.)" -#: ../Doc/whatsnew/3.11.rst:1349 +#: ../Doc/whatsnew/3.11.rst:1419 msgid "PEP 659: Specializing Adaptive Interpreter" msgstr "PEP 659: Intérprete Adaptativo Especializado" -#: ../Doc/whatsnew/3.11.rst:1351 +#: ../Doc/whatsnew/3.11.rst:1421 +#, fuzzy msgid "" -":pep:`659` is one of the key parts of the faster CPython project. The " +":pep:`659` is one of the key parts of the Faster CPython project. The " "general idea is that while Python is a dynamic language, most code has " "regions where objects and types rarely change. This concept is known as " "*type stability*." @@ -2409,15 +2391,16 @@ msgstr "" "código tiene regiones donde los objetos y los tipos rara vez cambian. Este " "concepto se conoce como *type stability*." -#: ../Doc/whatsnew/3.11.rst:1355 +#: ../Doc/whatsnew/3.11.rst:1425 +#, fuzzy msgid "" "At runtime, Python will try to look for common patterns and type stability " "in the executing code. Python will then replace the current operation with a " "more specialized one. This specialized operation uses fast paths available " "only to those use cases/types, which generally outperform their generic " "counterparts. This also brings in another concept called *inline caching*, " -"where Python caches the results of expensive operations directly in the " -"bytecode." +"where Python caches the results of expensive operations directly in the :" +"term:`bytecode`." msgstr "" "En tiempo de ejecución, Python intentará buscar patrones comunes y escribir " "estabilidad en el código de ejecución. Python luego reemplazará la operación " @@ -2427,21 +2410,23 @@ msgstr "" "llamado *inline caching*, donde Python almacena en caché los resultados de " "operaciones costosas directamente en el código de bytes." -#: ../Doc/whatsnew/3.11.rst:1362 +#: ../Doc/whatsnew/3.11.rst:1433 +#, fuzzy msgid "" "The specializer will also combine certain common instruction pairs into one " -"superinstruction. This reduces the overhead during execution." +"superinstruction, reducing the overhead during execution." msgstr "" "El especialista también combinará ciertos pares de instrucciones comunes en " "una superinstrucción. Esto reduce la sobrecarga durante la ejecución." -#: ../Doc/whatsnew/3.11.rst:1365 +#: ../Doc/whatsnew/3.11.rst:1436 +#, fuzzy msgid "" "Python will only specialize when it sees code that is \"hot\" (executed " -"multiple times). This prevents Python from wasting time for run-once code. " +"multiple times). This prevents Python from wasting time on run-once code. " "Python can also de-specialize when code is too dynamic or when the use " "changes. Specialization is attempted periodically, and specialization " -"attempts are not too expensive. This allows specialization to adapt to new " +"attempts are not too expensive, allowing specialization to adapt to new " "circumstances." msgstr "" "Python solo se especializará cuando vea un código \"caliente\" (ejecutado " @@ -2452,7 +2437,7 @@ msgstr "" "costosos. Esto permite que la especialización se adapte a las nuevas " "circunstancias." -#: ../Doc/whatsnew/3.11.rst:1372 +#: ../Doc/whatsnew/3.11.rst:1443 msgid "" "(PEP written by Mark Shannon, with ideas inspired by Stefan Brunthaler. See :" "pep:`659` for more information. Implementation by Mark Shannon and Brandt " @@ -2463,134 +2448,160 @@ msgstr "" "Shannon y Brandt Bucher, con ayuda adicional de Irit Katriel y Dennis " "Sweeney)." -#: ../Doc/whatsnew/3.11.rst:1380 +#: ../Doc/whatsnew/3.11.rst:1451 msgid "Operation" msgstr "Operación" -#: ../Doc/whatsnew/3.11.rst:1380 +#: ../Doc/whatsnew/3.11.rst:1451 msgid "Form" msgstr "Forma" -#: ../Doc/whatsnew/3.11.rst:1380 +#: ../Doc/whatsnew/3.11.rst:1451 msgid "Specialization" msgstr "Especialización" -#: ../Doc/whatsnew/3.11.rst:1380 +#: ../Doc/whatsnew/3.11.rst:1451 msgid "Operation speedup (up to)" msgstr "Aceleración de la operación (hasta)" -#: ../Doc/whatsnew/3.11.rst:1380 +#: ../Doc/whatsnew/3.11.rst:1451 msgid "Contributor(s)" msgstr "Colaborador(es)" -#: ../Doc/whatsnew/3.11.rst:1383 +#: ../Doc/whatsnew/3.11.rst:1454 msgid "Binary operations" msgstr "Operaciones binarias" -#: ../Doc/whatsnew/3.11.rst:1383 -msgid "``x+x; x*x; x-x;``" -msgstr "``x+x; x*x; x-x;``" +#: ../Doc/whatsnew/3.11.rst:1454 +msgid "``x + x``" +msgstr "" + +#: ../Doc/whatsnew/3.11.rst:1456 +msgid "``x - x``" +msgstr "" + +#: ../Doc/whatsnew/3.11.rst:1458 +msgid "``x * x``" +msgstr "" -#: ../Doc/whatsnew/3.11.rst:1383 +#: ../Doc/whatsnew/3.11.rst:1454 +#, fuzzy msgid "" -"Binary add, multiply and subtract for common types such as ``int``, " -"``float``, and ``str`` take custom fast paths for their underlying types." +"Binary add, multiply and subtract for common types such as :class:`int`, :" +"class:`float` and :class:`str` take custom fast paths for their underlying " +"types." msgstr "" "La suma, multiplicación y resta binaria para tipos comunes como ``int``, " "``float`` y ``str`` toman rutas rápidas personalizadas para sus tipos " "subyacentes." -#: ../Doc/whatsnew/3.11.rst:1383 +#: ../Doc/whatsnew/3.11.rst:1454 msgid "10%" msgstr "10%" -#: ../Doc/whatsnew/3.11.rst:1383 -msgid "Mark Shannon, Dong-hee Na, Brandt Bucher, Dennis Sweeney" +#: ../Doc/whatsnew/3.11.rst:1454 +#, fuzzy +msgid "Mark Shannon, Donghee Na, Brandt Bucher, Dennis Sweeney" msgstr "Mark Shannon, Dong-hee Na, Brandt Bucher, Dennis Sweeney" -#: ../Doc/whatsnew/3.11.rst:1388 +#: ../Doc/whatsnew/3.11.rst:1460 msgid "Subscript" msgstr "Subíndice" -#: ../Doc/whatsnew/3.11.rst:1388 +#: ../Doc/whatsnew/3.11.rst:1460 msgid "``a[i]``" msgstr "``a[i]``" -#: ../Doc/whatsnew/3.11.rst:1388 +#: ../Doc/whatsnew/3.11.rst:1460 +#, fuzzy msgid "" -"Subscripting container types such as ``list``, ``tuple`` and ``dict`` " -"directly index the underlying data structures." +"Subscripting container types such as :class:`list`, :class:`tuple` and :" +"class:`dict` directly index the underlying data structures." msgstr "" "Los tipos de contenedores de suscripción como ``list``, ``tuple`` y ``dict`` " "indexan directamente las estructuras de datos subyacentes." -#: ../Doc/whatsnew/3.11.rst:1392 +#: ../Doc/whatsnew/3.11.rst:1464 +#, fuzzy msgid "" -"Subscripting custom ``__getitem__`` is also inlined similar to :ref:`inline-" -"calls`." +"Subscripting custom :meth:`~object.__getitem__` is also inlined similar to :" +"ref:`inline-calls`." msgstr "" "La suscripción personalizada ``__getitem__`` también está en línea similar " "a :ref:`inline-calls`." -#: ../Doc/whatsnew/3.11.rst:1388 ../Doc/whatsnew/3.11.rst:1395 +#: ../Doc/whatsnew/3.11.rst:1460 ../Doc/whatsnew/3.11.rst:1467 msgid "10-25%" msgstr "10-25%" -#: ../Doc/whatsnew/3.11.rst:1388 +#: ../Doc/whatsnew/3.11.rst:1460 msgid "Irit Katriel, Mark Shannon" msgstr "Irit KatrielMark Shannon" -#: ../Doc/whatsnew/3.11.rst:1395 +#: ../Doc/whatsnew/3.11.rst:1467 msgid "Store subscript" msgstr "Almacenar subíndice" -#: ../Doc/whatsnew/3.11.rst:1395 +#: ../Doc/whatsnew/3.11.rst:1467 msgid "``a[i] = z``" msgstr "``a[i] = z``" -#: ../Doc/whatsnew/3.11.rst:1395 +#: ../Doc/whatsnew/3.11.rst:1467 msgid "Similar to subscripting specialization above." msgstr "Similar a la especialización de subíndices anterior." -#: ../Doc/whatsnew/3.11.rst:1395 +#: ../Doc/whatsnew/3.11.rst:1467 msgid "Dennis Sweeney" msgstr "dennis sweeney" -#: ../Doc/whatsnew/3.11.rst:1398 +#: ../Doc/whatsnew/3.11.rst:1470 msgid "Calls" msgstr "Llamadas" -#: ../Doc/whatsnew/3.11.rst:1398 -msgid "``f(arg)`` ``C(arg)``" +#: ../Doc/whatsnew/3.11.rst:1470 +#, fuzzy +msgid "``f(arg)``" msgstr "``f(arg)`` ``C(arg)``" -#: ../Doc/whatsnew/3.11.rst:1398 -msgid "" -"Calls to common builtin (C) functions and types such as ``len`` and ``str`` " -"directly call their underlying C version. This avoids going through the " -"internal calling convention." -msgstr "" -"Las llamadas a funciones y tipos integrados (C) comunes, como ``len`` y " -"``str``, llaman directamente a su versión C subyacente. Esto evita pasar por " +#: ../Doc/whatsnew/3.11.rst:1472 +#, fuzzy +msgid "``C(arg)``" +msgstr "``f(arg)`` ``C(arg)``" + +#: ../Doc/whatsnew/3.11.rst:1470 +#, fuzzy +msgid "" +"Calls to common builtin (C) functions and types such as :func:`len` and :" +"class:`str` directly call their underlying C version. This avoids going " +"through the internal calling convention." +msgstr "" +"Las llamadas a funciones y tipos integrados (C) comunes, como ``len`` y " +"``str``, llaman directamente a su versión C subyacente. Esto evita pasar por " "la convención de llamada interna." -#: ../Doc/whatsnew/3.11.rst:1398 +#: ../Doc/whatsnew/3.11.rst:1470 msgid "20%" msgstr "20%" -#: ../Doc/whatsnew/3.11.rst:1398 +#: ../Doc/whatsnew/3.11.rst:1470 msgid "Mark Shannon, Ken Jin" msgstr "Mark ShannonKen Jin" -#: ../Doc/whatsnew/3.11.rst:1404 +#: ../Doc/whatsnew/3.11.rst:1475 msgid "Load global variable" msgstr "Cargar variable global" -#: ../Doc/whatsnew/3.11.rst:1404 -msgid "``print`` ``len``" +#: ../Doc/whatsnew/3.11.rst:1475 +#, fuzzy +msgid "``print``" msgstr "``print`` ``len``" -#: ../Doc/whatsnew/3.11.rst:1404 +#: ../Doc/whatsnew/3.11.rst:1477 +#, fuzzy +msgid "``len``" +msgstr "``*seq``" + +#: ../Doc/whatsnew/3.11.rst:1475 msgid "" "The object's index in the globals/builtins namespace is cached. Loading " "globals and builtins require zero namespace lookups." @@ -2599,24 +2610,24 @@ msgstr "" "almacena en caché. La carga de globales e integrados requiere cero búsquedas " "de espacios de nombres." -#: ../Doc/whatsnew/3.11.rst:1404 -msgid "[1]_" -msgstr "[1]_" +#: ../Doc/whatsnew/3.11.rst:1475 +msgid "[#load-global]_" +msgstr "" -#: ../Doc/whatsnew/3.11.rst:1404 ../Doc/whatsnew/3.11.rst:1408 -#: ../Doc/whatsnew/3.11.rst:1417 +#: ../Doc/whatsnew/3.11.rst:1475 ../Doc/whatsnew/3.11.rst:1479 +#: ../Doc/whatsnew/3.11.rst:1488 msgid "Mark Shannon" msgstr "marca shannon" -#: ../Doc/whatsnew/3.11.rst:1408 +#: ../Doc/whatsnew/3.11.rst:1479 msgid "Load attribute" msgstr "Cargar atributo" -#: ../Doc/whatsnew/3.11.rst:1408 +#: ../Doc/whatsnew/3.11.rst:1479 msgid "``o.attr``" msgstr "``o.attr``" -#: ../Doc/whatsnew/3.11.rst:1408 +#: ../Doc/whatsnew/3.11.rst:1479 msgid "" "Similar to loading global variables. The attribute's index inside the class/" "object's namespace is cached. In most cases, attribute loading will require " @@ -2627,19 +2638,19 @@ msgstr "" "los casos, la carga de atributos requerirá cero búsquedas de espacios de " "nombres." -#: ../Doc/whatsnew/3.11.rst:1408 -msgid "[2]_" -msgstr "[2]_" +#: ../Doc/whatsnew/3.11.rst:1479 +msgid "[#load-attr]_" +msgstr "" -#: ../Doc/whatsnew/3.11.rst:1413 +#: ../Doc/whatsnew/3.11.rst:1484 msgid "Load methods for call" msgstr "Cargar métodos para llamar" -#: ../Doc/whatsnew/3.11.rst:1413 +#: ../Doc/whatsnew/3.11.rst:1484 msgid "``o.meth()``" msgstr "``o.meth()``" -#: ../Doc/whatsnew/3.11.rst:1413 +#: ../Doc/whatsnew/3.11.rst:1484 msgid "" "The actual address of the method is cached. Method loading now has no " "namespace lookups -- even for classes with long inheritance chains." @@ -2648,64 +2659,66 @@ msgstr "" "no tiene búsquedas de espacio de nombres, incluso para clases con largas " "cadenas de herencia." -#: ../Doc/whatsnew/3.11.rst:1413 +#: ../Doc/whatsnew/3.11.rst:1484 msgid "10-20%" msgstr "10-20%" -#: ../Doc/whatsnew/3.11.rst:1413 +#: ../Doc/whatsnew/3.11.rst:1484 msgid "Ken Jin, Mark Shannon" msgstr "Ken JinMark Shannon" -#: ../Doc/whatsnew/3.11.rst:1417 +#: ../Doc/whatsnew/3.11.rst:1488 msgid "Store attribute" msgstr "Atributo de la tienda" -#: ../Doc/whatsnew/3.11.rst:1417 +#: ../Doc/whatsnew/3.11.rst:1488 msgid "``o.attr = z``" msgstr "``o.attr = z``" -#: ../Doc/whatsnew/3.11.rst:1417 +#: ../Doc/whatsnew/3.11.rst:1488 msgid "Similar to load attribute optimization." msgstr "Similar a la optimización de atributos de carga." -#: ../Doc/whatsnew/3.11.rst:1417 +#: ../Doc/whatsnew/3.11.rst:1488 #, python-format msgid "2% in pyperformance" msgstr "2% en rendimiento" -#: ../Doc/whatsnew/3.11.rst:1420 +#: ../Doc/whatsnew/3.11.rst:1491 msgid "Unpack Sequence" msgstr "Secuencia de desempaquetado" -#: ../Doc/whatsnew/3.11.rst:1420 +#: ../Doc/whatsnew/3.11.rst:1491 msgid "``*seq``" msgstr "``*seq``" -#: ../Doc/whatsnew/3.11.rst:1420 +#: ../Doc/whatsnew/3.11.rst:1491 +#, fuzzy msgid "" -"Specialized for common containers such as ``list`` and ``tuple``. Avoids " -"internal calling convention." +"Specialized for common containers such as :class:`list` and :class:`tuple`. " +"Avoids internal calling convention." msgstr "" "Especializado para contenedores comunes como ``list`` y ``tuple``. Evita la " "convención de llamadas internas." -#: ../Doc/whatsnew/3.11.rst:1420 +#: ../Doc/whatsnew/3.11.rst:1491 msgid "8%" msgstr "8%" -#: ../Doc/whatsnew/3.11.rst:1420 +#: ../Doc/whatsnew/3.11.rst:1491 msgid "Brandt Bucher" msgstr "brandt bucher" -#: ../Doc/whatsnew/3.11.rst:1424 +#: ../Doc/whatsnew/3.11.rst:1496 +#, fuzzy msgid "" -"A similar optimization already existed since Python 3.8. 3.11 specializes " +"A similar optimization already existed since Python 3.8. 3.11 specializes " "for more forms and reduces some overhead." msgstr "" "Ya existía una optimización similar desde Python 3.8. 3.11 se especializa en " "más formularios y reduce algunos gastos generales." -#: ../Doc/whatsnew/3.11.rst:1427 +#: ../Doc/whatsnew/3.11.rst:1499 msgid "" "A similar optimization already existed since Python 3.10. 3.11 specializes " "for more forms. Furthermore, all attribute loads should be sped up by :issue:" @@ -2715,11 +2728,11 @@ msgstr "" "en más formularios. Además, :issue:`45947` debería acelerar todas las cargas " "de atributos." -#: ../Doc/whatsnew/3.11.rst:1435 +#: ../Doc/whatsnew/3.11.rst:1507 msgid "Misc" msgstr "Varios" -#: ../Doc/whatsnew/3.11.rst:1437 +#: ../Doc/whatsnew/3.11.rst:1509 msgid "" "Objects now require less memory due to lazily created object namespaces. " "Their namespace dictionaries now also share keys more freely. (Contributed " @@ -2730,7 +2743,14 @@ msgstr "" "también comparten claves más libremente. (Contribuido por Mark Shannon en :" "issue:`45340` y :issue:`40116`)." -#: ../Doc/whatsnew/3.11.rst:1441 +#: ../Doc/whatsnew/3.11.rst:1513 +msgid "" +"\"Zero-cost\" exceptions are implemented, eliminating the cost of :keyword:" +"`try` statements when no exception is raised. (Contributed by Mark Shannon " +"in :issue:`40222`.)" +msgstr "" + +#: ../Doc/whatsnew/3.11.rst:1517 msgid "" "A more concise representation of exceptions in the interpreter reduced the " "time required for catching an exception by about 10%. (Contributed by Irit " @@ -2740,31 +2760,46 @@ msgstr "" "tiempo necesario para detectar una excepción en aproximadamente un 10 %. " "(Aportado por Irit Katriel en :issue:`45711`.)" -#: ../Doc/whatsnew/3.11.rst:1449 +#: ../Doc/whatsnew/3.11.rst:1521 +#, python-format +msgid "" +":mod:`re`'s regular expression matching engine has been partially " +"refactored, and now uses computed gotos (or \"threaded code\") on supported " +"platforms. As a result, Python 3.11 executes the `pyperformance regular " +"expression benchmarks `_ up to 10% faster than Python 3.10. (Contributed by Brandt " +"Bucher in :gh:`91404`.)" +msgstr "" + +#: ../Doc/whatsnew/3.11.rst:1532 msgid "FAQ" msgstr "Preguntas más frecuentes" -#: ../Doc/whatsnew/3.11.rst:1451 -msgid "Q: How should I write my code to utilize these speedups?" +#: ../Doc/whatsnew/3.11.rst:1537 +#, fuzzy +msgid "How should I write my code to utilize these speedups?" msgstr "P: ¿Cómo debo escribir mi código para utilizar estas aceleraciones?" -#: ../Doc/whatsnew/3.11.rst:1455 +#: ../Doc/whatsnew/3.11.rst:1539 +#, fuzzy msgid "" -"A: You don't have to change your code. Write Pythonic code that follows " -"common best practices. The Faster CPython project optimizes for common code " +"Write Pythonic code that follows common best practices; you don't have to " +"change your code. The Faster CPython project optimizes for common code " "patterns we observe." msgstr "" "R: No tienes que cambiar tu código. Escriba código Pythonic que siga las " "mejores prácticas comunes. El proyecto Faster CPython optimiza los patrones " "de código comunes que observamos." -#: ../Doc/whatsnew/3.11.rst:1458 -msgid "Q: Will CPython 3.11 use more memory?" +#: ../Doc/whatsnew/3.11.rst:1547 +#, fuzzy +msgid "Will CPython 3.11 use more memory?" msgstr "P: ¿CPython 3.11 usará más memoria?" -#: ../Doc/whatsnew/3.11.rst:1462 +#: ../Doc/whatsnew/3.11.rst:1549 +#, fuzzy, python-format msgid "" -"A: Maybe not. We don't expect memory use to exceed 20% more than 3.10. This " +"Maybe not; we don't expect memory use to exceed 20% higher than 3.10. This " "is offset by memory optimizations for frame objects and object dictionaries " "as mentioned above." msgstr "" @@ -2772,15 +2807,17 @@ msgstr "" "3.10. Esto se compensa con las optimizaciones de memoria para objetos de " "marco y diccionarios de objetos, como se mencionó anteriormente." -#: ../Doc/whatsnew/3.11.rst:1465 -msgid "Q: I don't see any speedups in my workload. Why?" +#: ../Doc/whatsnew/3.11.rst:1557 +#, fuzzy +msgid "I don't see any speedups in my workload. Why?" msgstr "P: No veo ninguna aceleración en mi carga de trabajo. ¿Por qué?" -#: ../Doc/whatsnew/3.11.rst:1470 +#: ../Doc/whatsnew/3.11.rst:1559 +#, fuzzy msgid "" -"A: Certain code won't have noticeable benefits. If your code spends most of " -"its time on I/O operations, or already does most of its computation in a C " -"extension library like numpy, there won't be significant speedup. This " +"Certain code won't have noticeable benefits. If your code spends most of its " +"time on I/O operations, or already does most of its computation in a C " +"extension library like NumPy, there won't be significant speedups. This " "project currently benefits pure-Python workloads the most." msgstr "" "R: Cierto código no tendrá beneficios notables. Si su código pasa la mayor " @@ -2789,7 +2826,7 @@ msgstr "" "aceleración significativa. Actualmente, este proyecto es el que más " "beneficia a las cargas de trabajo de Python puro." -#: ../Doc/whatsnew/3.11.rst:1474 +#: ../Doc/whatsnew/3.11.rst:1564 msgid "" "Furthermore, the pyperformance figures are a geometric mean. Even within the " "pyperformance benchmarks, certain benchmarks have slowed down slightly, " @@ -2800,19 +2837,21 @@ msgstr "" "se han ralentizado ligeramente, mientras que otros se han acelerado casi 2 " "veces." -#: ../Doc/whatsnew/3.11.rst:1477 -msgid "Q: Is there a JIT compiler?" +#: ../Doc/whatsnew/3.11.rst:1572 +#, fuzzy +msgid "Is there a JIT compiler?" msgstr "P: ¿Existe un compilador JIT?" -#: ../Doc/whatsnew/3.11.rst:1479 -msgid "A: No. We're still exploring other optimizations." +#: ../Doc/whatsnew/3.11.rst:1574 +#, fuzzy +msgid "No. We're still exploring other optimizations." msgstr "R: No. Todavía estamos explorando otras optimizaciones." -#: ../Doc/whatsnew/3.11.rst:1485 +#: ../Doc/whatsnew/3.11.rst:1580 msgid "About" msgstr "Sobre" -#: ../Doc/whatsnew/3.11.rst:1487 +#: ../Doc/whatsnew/3.11.rst:1582 msgid "" "Faster CPython explores optimizations for :term:`CPython`. The main team is " "funded by Microsoft to work on this full-time. Pablo Galindo Salgado is also " @@ -2825,11 +2864,11 @@ msgstr "" "para trabajar en el proyecto a tiempo parcial. Finalmente, muchos " "contribuyentes son voluntarios de la comunidad." -#: ../Doc/whatsnew/3.11.rst:1496 +#: ../Doc/whatsnew/3.11.rst:1591 msgid "CPython bytecode changes" msgstr "Cambios en el código de bytes de CPython" -#: ../Doc/whatsnew/3.11.rst:1498 +#: ../Doc/whatsnew/3.11.rst:1593 msgid "" "The bytecode now contains inline cache entries, which take the form of the " "newly-added :opcode:`CACHE` instructions. Many opcodes expect to be followed " @@ -2846,11 +2885,11 @@ msgstr "" "mucho cuidado al leer o modificar el código de bytes adaptativo sin procesar " "que contiene datos acelerados." -#: ../Doc/whatsnew/3.11.rst:1510 +#: ../Doc/whatsnew/3.11.rst:1605 msgid "New opcodes" msgstr "Nuevos códigos de operación" -#: ../Doc/whatsnew/3.11.rst:1512 +#: ../Doc/whatsnew/3.11.rst:1607 msgid "" ":opcode:`ASYNC_GEN_WRAP`, :opcode:`RETURN_GENERATOR` and :opcode:`SEND`, " "used in generators and co-routines." @@ -2858,7 +2897,7 @@ msgstr "" ":opcode:`ASYNC_GEN_WRAP`, :opcode:`RETURN_GENERATOR` y :opcode:`SEND`, " "utilizados en generadores y co-rutinas." -#: ../Doc/whatsnew/3.11.rst:1515 +#: ../Doc/whatsnew/3.11.rst:1610 msgid "" ":opcode:`COPY_FREE_VARS`, which avoids needing special caller-side code for " "closures." @@ -2866,7 +2905,7 @@ msgstr "" ":opcode:`COPY_FREE_VARS`, que evita la necesidad de un código especial del " "lado de la persona que llama para los cierres." -#: ../Doc/whatsnew/3.11.rst:1518 +#: ../Doc/whatsnew/3.11.rst:1613 msgid "" ":opcode:`JUMP_BACKWARD_NO_INTERRUPT`, for use in certain loops where " "handling interrupts is undesirable." @@ -2874,11 +2913,11 @@ msgstr "" ":opcode:`JUMP_BACKWARD_NO_INTERRUPT`, para usar en ciertos bucles donde no " "es deseable manejar interrupciones." -#: ../Doc/whatsnew/3.11.rst:1521 +#: ../Doc/whatsnew/3.11.rst:1616 msgid ":opcode:`MAKE_CELL`, to create :ref:`cell-objects`." msgstr ":opcode:`MAKE_CELL`, para crear :ref:`cell-objects`." -#: ../Doc/whatsnew/3.11.rst:1523 +#: ../Doc/whatsnew/3.11.rst:1618 msgid "" ":opcode:`CHECK_EG_MATCH` and :opcode:`PREP_RERAISE_STAR`, to handle the :" "ref:`new exception groups and except* ` added in :pep:" @@ -2888,11 +2927,11 @@ msgstr "" "`new exception groups and except* ` agregado en :pep:" "`654`." -#: ../Doc/whatsnew/3.11.rst:1527 +#: ../Doc/whatsnew/3.11.rst:1622 msgid ":opcode:`PUSH_EXC_INFO`, for use in exception handlers." msgstr ":opcode:`PUSH_EXC_INFO`, para uso en controladores de excepciones." -#: ../Doc/whatsnew/3.11.rst:1529 +#: ../Doc/whatsnew/3.11.rst:1624 msgid "" ":opcode:`RESUME`, a no-op, for internal tracing, debugging and optimization " "checks." @@ -2900,19 +2939,19 @@ msgstr "" ":opcode:`RESUME`, no operativo, para el seguimiento interno, la depuración y " "las comprobaciones de optimización." -#: ../Doc/whatsnew/3.11.rst:1536 +#: ../Doc/whatsnew/3.11.rst:1631 msgid "Replaced opcodes" msgstr "Códigos de operación reemplazados" -#: ../Doc/whatsnew/3.11.rst:1539 +#: ../Doc/whatsnew/3.11.rst:1634 msgid "Replaced Opcode(s)" msgstr "Códigos de operación reemplazados" -#: ../Doc/whatsnew/3.11.rst:1539 +#: ../Doc/whatsnew/3.11.rst:1634 msgid "New Opcode(s)" msgstr "Nuevos códigos de operación" -#: ../Doc/whatsnew/3.11.rst:1539 +#: ../Doc/whatsnew/3.11.rst:1634 msgid "Notes" msgstr "notas" @@ -2924,11 +2963,11 @@ msgstr ":opcode:`!BINARY_*`" msgid ":opcode:`!INPLACE_*`" msgstr ":opcode:`!INPLACE_*`" -#: ../Doc/whatsnew/3.11.rst:1541 +#: ../Doc/whatsnew/3.11.rst:1636 msgid ":opcode:`BINARY_OP`" msgstr ":opcode:`BINARY_OP`" -#: ../Doc/whatsnew/3.11.rst:1541 +#: ../Doc/whatsnew/3.11.rst:1636 msgid "Replaced all numeric binary/in-place opcodes with a single opcode" msgstr "" "Reemplazó todos los códigos de operación numéricos binarios/en el lugar con " @@ -2962,7 +3001,7 @@ msgstr ":opcode:`PRECALL`" msgid ":opcode:`PUSH_NULL`" msgstr ":opcode:`PUSH_NULL`" -#: ../Doc/whatsnew/3.11.rst:1544 +#: ../Doc/whatsnew/3.11.rst:1639 msgid "" "Decouples argument shifting for methods from handling of keyword arguments; " "allows better specialization of calls" @@ -3002,7 +3041,7 @@ msgstr ":opcode:`COPY`" msgid ":opcode:`SWAP`" msgstr ":opcode:`SWAP`" -#: ../Doc/whatsnew/3.11.rst:1549 +#: ../Doc/whatsnew/3.11.rst:1644 msgid "Stack manipulation instructions" msgstr "Instrucciones de manipulación de pilas" @@ -3014,7 +3053,7 @@ msgstr ":opcode:`!JUMP_IF_NOT_EXC_MATCH`" msgid ":opcode:`CHECK_EXC_MATCH`" msgstr ":opcode:`CHECK_EXC_MATCH`" -#: ../Doc/whatsnew/3.11.rst:1556 +#: ../Doc/whatsnew/3.11.rst:1651 msgid "Now performs check but doesn't jump" msgstr "Ahora realiza la comprobación pero no salta." @@ -3042,7 +3081,7 @@ msgstr ":opcode:`POP_JUMP_BACKWARD_IF_* `" msgid ":opcode:`POP_JUMP_FORWARD_IF_* `" msgstr ":opcode:`POP_JUMP_FORWARD_IF_* `" -#: ../Doc/whatsnew/3.11.rst:1558 +#: ../Doc/whatsnew/3.11.rst:1653 msgid "" "See [#bytecode-jump]_; ``TRUE``, ``FALSE``, ``NONE`` and ``NOT_NONE`` " "variants for each direction" @@ -3058,15 +3097,15 @@ msgstr ":opcode:`!SETUP_WITH`" msgid ":opcode:`!SETUP_ASYNC_WITH`" msgstr ":opcode:`!SETUP_ASYNC_WITH`" -#: ../Doc/whatsnew/3.11.rst:1564 +#: ../Doc/whatsnew/3.11.rst:1659 msgid ":opcode:`BEFORE_WITH`" msgstr ":opcode:`BEFORE_WITH`" -#: ../Doc/whatsnew/3.11.rst:1564 +#: ../Doc/whatsnew/3.11.rst:1659 msgid ":keyword:`with` block setup" msgstr "Configuración del bloque :keyword:`with`" -#: ../Doc/whatsnew/3.11.rst:1568 +#: ../Doc/whatsnew/3.11.rst:1663 msgid "" "All jump opcodes are now relative, including the existing :opcode:" "`JUMP_IF_TRUE_OR_POP` and :opcode:`JUMP_IF_FALSE_OR_POP`. The argument is " @@ -3077,11 +3116,11 @@ msgstr "" "argumento ahora es un desplazamiento de la instrucción actual en lugar de " "una ubicación absoluta." -#: ../Doc/whatsnew/3.11.rst:1579 +#: ../Doc/whatsnew/3.11.rst:1674 msgid "Changed/removed opcodes" msgstr "Códigos de operación cambiados/eliminados" -#: ../Doc/whatsnew/3.11.rst:1581 +#: ../Doc/whatsnew/3.11.rst:1676 msgid "" "Changed :opcode:`MATCH_CLASS` and :opcode:`MATCH_KEYS` to no longer push an " "additional boolean value to indicate success/failure. Instead, ``None`` is " @@ -3092,7 +3131,7 @@ msgstr "" "se inserta ``None`` en caso de error en lugar de la tupla de valores " "extraídos." -#: ../Doc/whatsnew/3.11.rst:1586 +#: ../Doc/whatsnew/3.11.rst:1681 msgid "" "Changed opcodes that work with exceptions to reflect them now being " "represented as one item on the stack instead of three (see :gh:`89874`)." @@ -3101,7 +3140,7 @@ msgstr "" "reflejarlas y ahora se representan como un elemento en la pila en lugar de " "tres (ver :gh:`89874`)." -#: ../Doc/whatsnew/3.11.rst:1590 +#: ../Doc/whatsnew/3.11.rst:1685 msgid "" "Removed :opcode:`!COPY_DICT_WITHOUT_KEYS`, :opcode:`!GEN_START`, :opcode:`!" "POP_BLOCK`, :opcode:`!SETUP_FINALLY` and :opcode:`!YIELD_FROM`." @@ -3109,18 +3148,18 @@ msgstr "" "Se eliminaron :opcode:`!COPY_DICT_WITHOUT_KEYS`, :opcode:`!GEN_START`, :" "opcode:`!POP_BLOCK`, :opcode:`!SETUP_FINALLY` y :opcode:`!YIELD_FROM`." -#: ../Doc/whatsnew/3.11.rst:1598 ../Doc/whatsnew/3.11.rst:2451 +#: ../Doc/whatsnew/3.11.rst:1693 ../Doc/whatsnew/3.11.rst:2565 msgid "Deprecated" msgstr "Obsoleto" -#: ../Doc/whatsnew/3.11.rst:1600 +#: ../Doc/whatsnew/3.11.rst:1695 msgid "" "This section lists Python APIs that have been deprecated in Python 3.11." msgstr "" "Esta sección enumera las API de Python que han quedado obsoletas en Python " "3.11." -#: ../Doc/whatsnew/3.11.rst:1602 +#: ../Doc/whatsnew/3.11.rst:1697 msgid "" "Deprecated C APIs are :ref:`listed separately `." @@ -3128,11 +3167,11 @@ msgstr "" "Las API de C en desuso son :ref:`listed separately `." -#: ../Doc/whatsnew/3.11.rst:1609 +#: ../Doc/whatsnew/3.11.rst:1704 msgid "Language/Builtins" msgstr "Idioma/Construidos" -#: ../Doc/whatsnew/3.11.rst:1611 +#: ../Doc/whatsnew/3.11.rst:1706 msgid "" "Chaining :class:`classmethod` descriptors (introduced in :issue:`19072`) is " "now deprecated. It can no longer be used to wrap other descriptors such as :" @@ -3148,7 +3187,7 @@ msgstr "" "class:`classmethod`, considere usar el atributo :attr:`!__wrapped__` que se " "agregó en Python 3.10. (Aportado por Raymond Hettinger en :gh:`89519`.)" -#: ../Doc/whatsnew/3.11.rst:1619 +#: ../Doc/whatsnew/3.11.rst:1714 msgid "" "Octal escapes in string and bytes literals with values larger than ``0o377`` " "(255 in decimal) now produce a :exc:`DeprecationWarning`. In a future Python " @@ -3161,7 +3200,7 @@ msgstr "" "eventualmente un :exc:`SyntaxError`. (Aportado por Serhiy Storchaka en :gh:" "`81548`.)" -#: ../Doc/whatsnew/3.11.rst:1625 +#: ../Doc/whatsnew/3.11.rst:1720 msgid "" "The delegation of :func:`int` to :meth:`~object.__trunc__` is now " "deprecated. Calling ``int(a)`` when ``type(a)`` implements :meth:`!" @@ -3175,11 +3214,11 @@ msgstr "" "genera un :exc:`DeprecationWarning`. (Aportado por Zackery Spytz en :issue:" "`44977`)." -#: ../Doc/whatsnew/3.11.rst:1635 +#: ../Doc/whatsnew/3.11.rst:1730 msgid "Modules" msgstr "Módulos" -#: ../Doc/whatsnew/3.11.rst:1639 +#: ../Doc/whatsnew/3.11.rst:1734 msgid "" ":pep:`594` led to the deprecations of the following modules slated for " "removal in Python 3.13:" @@ -3187,83 +3226,83 @@ msgstr "" ":pep:`594` condujo a la desaprobación de los siguientes módulos programados " "para su eliminación en Python 3.13:" -#: ../Doc/whatsnew/3.11.rst:1643 +#: ../Doc/whatsnew/3.11.rst:1738 msgid ":mod:`aifc`" msgstr ":mod:`aifc`" -#: ../Doc/whatsnew/3.11.rst:1643 +#: ../Doc/whatsnew/3.11.rst:1738 msgid ":mod:`chunk`" msgstr ":mod:`chunk`" -#: ../Doc/whatsnew/3.11.rst:1643 +#: ../Doc/whatsnew/3.11.rst:1738 msgid ":mod:`msilib`" msgstr ":mod:`msilib`" -#: ../Doc/whatsnew/3.11.rst:1643 +#: ../Doc/whatsnew/3.11.rst:1738 msgid ":mod:`pipes`" msgstr ":mod:`pipes`" -#: ../Doc/whatsnew/3.11.rst:1643 +#: ../Doc/whatsnew/3.11.rst:1738 msgid ":mod:`telnetlib`" msgstr ":mod:`telnetlib`" -#: ../Doc/whatsnew/3.11.rst:1645 +#: ../Doc/whatsnew/3.11.rst:1740 msgid ":mod:`audioop`" msgstr ":mod:`audioop`" -#: ../Doc/whatsnew/3.11.rst:1645 +#: ../Doc/whatsnew/3.11.rst:1740 msgid ":mod:`crypt`" msgstr ":mod:`crypt`" -#: ../Doc/whatsnew/3.11.rst:1645 +#: ../Doc/whatsnew/3.11.rst:1740 msgid ":mod:`nis`" msgstr ":mod:`nis`" -#: ../Doc/whatsnew/3.11.rst:1645 +#: ../Doc/whatsnew/3.11.rst:1740 msgid ":mod:`sndhdr`" msgstr ":mod:`sndhdr`" -#: ../Doc/whatsnew/3.11.rst:1645 +#: ../Doc/whatsnew/3.11.rst:1740 msgid ":mod:`uu`" msgstr ":mod:`uu`" -#: ../Doc/whatsnew/3.11.rst:1647 +#: ../Doc/whatsnew/3.11.rst:1742 msgid ":mod:`cgi`" msgstr ":mod:`cgi`" -#: ../Doc/whatsnew/3.11.rst:1647 +#: ../Doc/whatsnew/3.11.rst:1742 msgid ":mod:`imghdr`" msgstr ":mod:`imghdr`" -#: ../Doc/whatsnew/3.11.rst:1647 +#: ../Doc/whatsnew/3.11.rst:1742 msgid ":mod:`nntplib`" msgstr ":mod:`nntplib`" -#: ../Doc/whatsnew/3.11.rst:1647 +#: ../Doc/whatsnew/3.11.rst:1742 msgid ":mod:`spwd`" msgstr ":mod:`spwd`" -#: ../Doc/whatsnew/3.11.rst:1647 +#: ../Doc/whatsnew/3.11.rst:1742 msgid ":mod:`xdrlib`" msgstr ":mod:`xdrlib`" -#: ../Doc/whatsnew/3.11.rst:1649 +#: ../Doc/whatsnew/3.11.rst:1744 msgid ":mod:`cgitb`" msgstr ":mod:`cgitb`" -#: ../Doc/whatsnew/3.11.rst:1649 +#: ../Doc/whatsnew/3.11.rst:1744 msgid ":mod:`mailcap`" msgstr ":mod:`mailcap`" -#: ../Doc/whatsnew/3.11.rst:1649 +#: ../Doc/whatsnew/3.11.rst:1744 msgid ":mod:`ossaudiodev`" msgstr ":mod:`ossaudiodev`" -#: ../Doc/whatsnew/3.11.rst:1649 +#: ../Doc/whatsnew/3.11.rst:1744 msgid ":mod:`sunau`" msgstr ":mod:`sunau`" -#: ../Doc/whatsnew/3.11.rst:1652 +#: ../Doc/whatsnew/3.11.rst:1747 msgid "" "(Contributed by Brett Cannon in :issue:`47061` and Victor Stinner in :gh:" "`68966`.)" @@ -3271,11 +3310,12 @@ msgstr "" "(Aportado por Brett Cannon en :issue:`47061` y Victor Stinner en :gh:" "`68966`)." -#: ../Doc/whatsnew/3.11.rst:1655 +#: ../Doc/whatsnew/3.11.rst:1750 +#, fuzzy msgid "" "The :mod:`asynchat`, :mod:`asyncore` and :mod:`smtpd` modules have been " "deprecated since at least Python 3.6. Their documentation and deprecation " -"warnings have now been updated to note they will removed in Python 3.12. " +"warnings have now been updated to note they will be removed in Python 3.12. " "(Contributed by Hugo van Kemenade in :issue:`47022`.)" msgstr "" "Los módulos :mod:`asynchat`, :mod:`asyncore` y :mod:`smtpd` han quedado " @@ -3283,7 +3323,7 @@ msgstr "" "obsolescencia ahora se han actualizado para señalar que se eliminarán en " "Python 3.12. (Aportado por Hugo van Kemenade en :issue:`47022`.)" -#: ../Doc/whatsnew/3.11.rst:1660 +#: ../Doc/whatsnew/3.11.rst:1755 msgid "" "The :mod:`lib2to3` package and :ref:`2to3 <2to3-reference>` tool are now " "deprecated and may not be able to parse Python 3.10 or newer. See :pep:" @@ -3295,7 +3335,7 @@ msgstr "" "posterior. Consulte :pep:`617`, que presenta el nuevo analizador PEG, para " "obtener más información. (Aportado por Victor Stinner en :issue:`40360`.)" -#: ../Doc/whatsnew/3.11.rst:1665 +#: ../Doc/whatsnew/3.11.rst:1760 msgid "" "Undocumented modules :mod:`!sre_compile`, :mod:`!sre_constants` and :mod:`!" "sre_parse` are now deprecated. (Contributed by Serhiy Storchaka in :issue:" @@ -3305,37 +3345,38 @@ msgstr "" "mod:`!sre_parse` ahora están obsoletos. (Aportado por Serhiy Storchaka en :" "issue:`47152`.)" -#: ../Doc/whatsnew/3.11.rst:1673 +#: ../Doc/whatsnew/3.11.rst:1768 msgid "Standard Library" msgstr "Biblioteca estándar" -#: ../Doc/whatsnew/3.11.rst:1675 +#: ../Doc/whatsnew/3.11.rst:1770 +#, fuzzy msgid "" "The following have been deprecated in :mod:`configparser` since Python 3.2. " -"Their deprecation warnings have now been updated to note they will removed " -"in Python 3.12:" +"Their deprecation warnings have now been updated to note they will be " +"removed in Python 3.12:" msgstr "" "Los siguientes han quedado obsoletos en :mod:`configparser` desde Python " "3.2. Sus advertencias de obsolescencia ahora se han actualizado para señalar " "que se eliminarán en Python 3.12:" -#: ../Doc/whatsnew/3.11.rst:1679 +#: ../Doc/whatsnew/3.11.rst:1774 msgid "the :class:`!configparser.SafeConfigParser` class" msgstr "la clase :class:`!configparser.SafeConfigParser`" -#: ../Doc/whatsnew/3.11.rst:1680 +#: ../Doc/whatsnew/3.11.rst:1775 msgid "the :attr:`!configparser.ParsingError.filename` property" msgstr "la propiedad :attr:`!configparser.ParsingError.filename`" -#: ../Doc/whatsnew/3.11.rst:1681 +#: ../Doc/whatsnew/3.11.rst:1776 msgid "the :meth:`configparser.RawConfigParser.readfp` method" msgstr "el método :meth:`configparser.RawConfigParser.readfp`" -#: ../Doc/whatsnew/3.11.rst:1683 +#: ../Doc/whatsnew/3.11.rst:1778 msgid "(Contributed by Hugo van Kemenade in :issue:`45173`.)" msgstr "(Aportado por Hugo van Kemenade en :issue:`45173`.)" -#: ../Doc/whatsnew/3.11.rst:1685 +#: ../Doc/whatsnew/3.11.rst:1780 msgid "" ":class:`!configparser.LegacyInterpolation` has been deprecated in the " "docstring since Python 3.2, and is not listed in the :mod:`configparser` " @@ -3351,7 +3392,7 @@ msgstr "" "`configparser.ExtendedInterpolation` en su lugar. (Aportado por Hugo van " "Kemenade en :issue:`46607`.)" -#: ../Doc/whatsnew/3.11.rst:1692 +#: ../Doc/whatsnew/3.11.rst:1787 msgid "" "The older set of :mod:`importlib.resources` functions were deprecated in " "favor of the replacements added in Python 3.9 and will be removed in a " @@ -3363,35 +3404,35 @@ msgstr "" "versión futura de Python, debido a que no admite recursos ubicados dentro de " "los subdirectorios del paquete:" -#: ../Doc/whatsnew/3.11.rst:1697 +#: ../Doc/whatsnew/3.11.rst:1792 msgid ":func:`importlib.resources.contents`" msgstr ":func:`importlib.resources.contents`" -#: ../Doc/whatsnew/3.11.rst:1698 +#: ../Doc/whatsnew/3.11.rst:1793 msgid ":func:`importlib.resources.is_resource`" msgstr ":func:`importlib.resources.is_resource`" -#: ../Doc/whatsnew/3.11.rst:1699 +#: ../Doc/whatsnew/3.11.rst:1794 msgid ":func:`importlib.resources.open_binary`" msgstr ":func:`importlib.resources.open_binary`" -#: ../Doc/whatsnew/3.11.rst:1700 +#: ../Doc/whatsnew/3.11.rst:1795 msgid ":func:`importlib.resources.open_text`" msgstr ":func:`importlib.resources.open_text`" -#: ../Doc/whatsnew/3.11.rst:1701 +#: ../Doc/whatsnew/3.11.rst:1796 msgid ":func:`importlib.resources.read_binary`" msgstr ":func:`importlib.resources.read_binary`" -#: ../Doc/whatsnew/3.11.rst:1702 +#: ../Doc/whatsnew/3.11.rst:1797 msgid ":func:`importlib.resources.read_text`" msgstr ":func:`importlib.resources.read_text`" -#: ../Doc/whatsnew/3.11.rst:1703 +#: ../Doc/whatsnew/3.11.rst:1798 msgid ":func:`importlib.resources.path`" msgstr ":func:`importlib.resources.path`" -#: ../Doc/whatsnew/3.11.rst:1705 +#: ../Doc/whatsnew/3.11.rst:1800 msgid "" "The :func:`locale.getdefaultlocale` function is deprecated and will be " "removed in Python 3.13. Use :func:`locale.setlocale`, :func:`locale." @@ -3403,7 +3444,7 @@ msgstr "" "getpreferredencoding(False) ` y :func:`locale." "getlocale` en su lugar. (Aportado por Victor Stinner en :gh:`90817`.)" -#: ../Doc/whatsnew/3.11.rst:1711 +#: ../Doc/whatsnew/3.11.rst:1806 msgid "" "The :func:`locale.resetlocale` function is deprecated and will be removed in " "Python 3.13. Use ``locale.setlocale(locale.LC_ALL, \"\")`` instead. " @@ -3413,7 +3454,7 @@ msgstr "" "Python 3.13. Utilice ``locale.setlocale(locale.LC_ALL, \"\")`` en su lugar. " "(Aportado por Victor Stinner en :gh:`90817`.)" -#: ../Doc/whatsnew/3.11.rst:1715 +#: ../Doc/whatsnew/3.11.rst:1810 msgid "" "Stricter rules will now be applied for numerical group references and group " "names in :ref:`regular expressions `. Only sequences of ASCII " @@ -3431,10 +3472,11 @@ msgstr "" "ahora, se genera una advertencia de desaprobación para la sintaxis que viola " "estas reglas. (Aportado por Serhiy Storchaka en :gh:`91760`.)" -#: ../Doc/whatsnew/3.11.rst:1723 +#: ../Doc/whatsnew/3.11.rst:1818 +#, fuzzy msgid "" "In the :mod:`re` module, the :func:`!re.template` function and the " -"corresponding :data:`!re.TEMPLATE` and :data:`!re.T` flags are deprecated, " +"corresponding :const:`!re.TEMPLATE` and :const:`!re.T` flags are deprecated, " "as they were undocumented and lacked an obvious purpose. They will be " "removed in Python 3.13. (Contributed by Serhiy Storchaka and Miro Hrončok " "in :gh:`92728`.)" @@ -3444,7 +3486,7 @@ msgstr "" "no estaban documentados y carecían de un propósito obvio. Se eliminarán en " "Python 3.13. (Aportado por Serhiy Storchaka y Miro Hrončok en :gh:`92728`.)" -#: ../Doc/whatsnew/3.11.rst:1729 +#: ../Doc/whatsnew/3.11.rst:1824 msgid "" ":func:`turtle.settiltangle` has been deprecated since Python 3.1; it now " "emits a deprecation warning and will be removed in Python 3.13. Use :func:" @@ -3458,7 +3500,7 @@ msgstr "" "obsoleto y su cadena de documentación ahora está corregida). (Aportado por " "Hugo van Kemenade en :issue:`45837`.)" -#: ../Doc/whatsnew/3.11.rst:1735 +#: ../Doc/whatsnew/3.11.rst:1830 msgid "" ":class:`typing.Text`, which exists solely to provide compatibility support " "between Python 2 and Python 3 code, is now deprecated. Its removal is " @@ -3471,7 +3513,7 @@ msgstr "" "usuarios que usen :class:`str` en su lugar siempre que sea posible. " "(Aportado por Alex Waygood en :gh:`92332`.)" -#: ../Doc/whatsnew/3.11.rst:1741 +#: ../Doc/whatsnew/3.11.rst:1836 msgid "" "The keyword argument syntax for constructing :data:`typing.TypedDict` types " "is now deprecated. Support will be removed in Python 3.13. (Contributed by " @@ -3481,17 +3523,18 @@ msgstr "" "TypedDict` ahora está obsoleta. Se eliminará el soporte en Python 3.13. " "(Aportado por Jingchen Ye en :gh:`90224`.)" -#: ../Doc/whatsnew/3.11.rst:1745 +#: ../Doc/whatsnew/3.11.rst:1840 +#, fuzzy msgid "" ":class:`!webbrowser.MacOSX` is deprecated and will be removed in Python " "3.13. It is untested, undocumented, and not used by :mod:`webbrowser` " -"itself. (Contributed by Dong-hee Na in :issue:`42255`.)" +"itself. (Contributed by Donghee Na in :issue:`42255`.)" msgstr "" ":class:`!webbrowser.MacOSX` está en desuso y se eliminará en Python 3.13. No " "está probado, no está documentado y no es utilizado por el propio :mod:" "`webbrowser`. (Aportado por Dong-hee Na en :issue:`42255`.)" -#: ../Doc/whatsnew/3.11.rst:1749 +#: ../Doc/whatsnew/3.11.rst:1844 msgid "" "The behavior of returning a value from a :class:`~unittest.TestCase` and :" "class:`~unittest.IsolatedAsyncioTestCase` test methods (other than the " @@ -3501,7 +3544,7 @@ msgstr "" "`~unittest.TestCase` y :class:`~unittest.IsolatedAsyncioTestCase` (aparte " "del valor ``None`` predeterminado) ahora está obsoleto." -#: ../Doc/whatsnew/3.11.rst:1753 +#: ../Doc/whatsnew/3.11.rst:1848 msgid "" "Deprecated the following not-formally-documented :mod:`unittest` functions, " "scheduled for removal in Python 3.13:" @@ -3509,43 +3552,49 @@ msgstr "" "Se descartaron las siguientes funciones :mod:`unittest` no documentadas " "formalmente, programadas para su eliminación en Python 3.13:" -#: ../Doc/whatsnew/3.11.rst:1756 +#: ../Doc/whatsnew/3.11.rst:1851 msgid ":func:`!unittest.findTestCases`" msgstr ":func:`!unittest.findTestCases`" -#: ../Doc/whatsnew/3.11.rst:1757 +#: ../Doc/whatsnew/3.11.rst:1852 msgid ":func:`!unittest.makeSuite`" msgstr ":func:`!unittest.makeSuite`" -#: ../Doc/whatsnew/3.11.rst:1758 +#: ../Doc/whatsnew/3.11.rst:1853 msgid ":func:`!unittest.getTestCaseNames`" msgstr ":func:`!unittest.getTestCaseNames`" -#: ../Doc/whatsnew/3.11.rst:1760 +#: ../Doc/whatsnew/3.11.rst:1855 msgid "Use :class:`~unittest.TestLoader` methods instead:" msgstr "Utilice métodos :class:`~unittest.TestLoader` en su lugar:" -#: ../Doc/whatsnew/3.11.rst:1762 +#: ../Doc/whatsnew/3.11.rst:1857 msgid ":meth:`unittest.TestLoader.loadTestsFromModule`" msgstr ":meth:`unittest.TestLoader.loadTestsFromModule`" -#: ../Doc/whatsnew/3.11.rst:1763 +#: ../Doc/whatsnew/3.11.rst:1858 msgid ":meth:`unittest.TestLoader.loadTestsFromTestCase`" msgstr ":meth:`unittest.TestLoader.loadTestsFromTestCase`" -#: ../Doc/whatsnew/3.11.rst:1764 +#: ../Doc/whatsnew/3.11.rst:1859 msgid ":meth:`unittest.TestLoader.getTestCaseNames`" msgstr ":meth:`unittest.TestLoader.getTestCaseNames`" -#: ../Doc/whatsnew/3.11.rst:1766 +#: ../Doc/whatsnew/3.11.rst:1861 msgid "(Contributed by Erlend E. Aasland in :issue:`5846`.)" msgstr "(Aportado por Erlend E. Aasland en :issue:`5846`.)" -#: ../Doc/whatsnew/3.11.rst:1773 ../Doc/whatsnew/3.11.rst:2479 +#: ../Doc/whatsnew/3.11.rst:1863 +msgid "" +":meth:`~!unittest.TestProgram.usageExit` is marked deprecated, to be removed " +"in 3.13. (Contributed by Carlos Damázio in :gh:`67048`.)" +msgstr "" + +#: ../Doc/whatsnew/3.11.rst:1872 ../Doc/whatsnew/3.11.rst:2593 msgid "Pending Removal in Python 3.12" msgstr "Eliminación pendiente en Python 3.12" -#: ../Doc/whatsnew/3.11.rst:1775 +#: ../Doc/whatsnew/3.11.rst:1874 msgid "" "The following Python APIs have been deprecated in earlier Python releases, " "and will be removed in Python 3.12." @@ -3553,7 +3602,7 @@ msgstr "" "Las siguientes API de Python han quedado obsoletas en versiones anteriores " "de Python y se eliminarán en Python 3.12." -#: ../Doc/whatsnew/3.11.rst:1778 +#: ../Doc/whatsnew/3.11.rst:1877 msgid "" "C APIs pending removal are :ref:`listed separately `." @@ -3561,123 +3610,304 @@ msgstr "" "Las API de C pendientes de eliminación son :ref:`listed separately " "`." -#: ../Doc/whatsnew/3.11.rst:1781 -msgid ":class:`pkgutil.ImpImporter`" -msgstr ":class:`pkgutil.ImpImporter`" +#: ../Doc/whatsnew/3.11.rst:1880 +#, fuzzy +msgid "The :mod:`asynchat` module" +msgstr "Eliminado del módulo :mod:`inspect`:" -#: ../Doc/whatsnew/3.11.rst:1782 -msgid ":class:`pkgutil.ImpLoader`" -msgstr ":class:`pkgutil.ImpLoader`" +#: ../Doc/whatsnew/3.11.rst:1881 +#, fuzzy +msgid "The :mod:`asyncore` module" +msgstr "Eliminado del módulo :mod:`inspect`:" -#: ../Doc/whatsnew/3.11.rst:1783 -msgid ":envvar:`PYTHONTHREADDEBUG`" -msgstr ":envvar:`PYTHONTHREADDEBUG`" +#: ../Doc/whatsnew/3.11.rst:1882 +#, fuzzy +msgid "The :ref:`entire distutils package `" +msgstr "Todo el :ref:`distutils namespace `" -#: ../Doc/whatsnew/3.11.rst:1784 -msgid ":func:`importlib.find_loader`" -msgstr ":func:`importlib.find_loader`" +#: ../Doc/whatsnew/3.11.rst:1883 +#, fuzzy +msgid "The :mod:`!imp` module" +msgstr "Eliminado del módulo :mod:`inspect`:" -#: ../Doc/whatsnew/3.11.rst:1785 -msgid ":func:`importlib.util.module_for_loader`" -msgstr ":func:`importlib.util.module_for_loader`" +#: ../Doc/whatsnew/3.11.rst:1884 +msgid "The :class:`typing.io ` namespace" +msgstr "" -#: ../Doc/whatsnew/3.11.rst:1786 -msgid ":func:`importlib.util.set_loader_wrapper`" -msgstr ":func:`importlib.util.set_loader_wrapper`" +#: ../Doc/whatsnew/3.11.rst:1885 +msgid "The :class:`typing.re ` namespace" +msgstr "" -#: ../Doc/whatsnew/3.11.rst:1787 -msgid ":func:`importlib.util.set_package_wrapper`" -msgstr ":func:`importlib.util.set_package_wrapper`" +#: ../Doc/whatsnew/3.11.rst:1886 +#, fuzzy +msgid ":func:`!cgi.log`" +msgstr ":func:`cgi.log`" -#: ../Doc/whatsnew/3.11.rst:1788 -msgid ":meth:`importlib.abc.Loader.module_repr`" -msgstr ":meth:`importlib.abc.Loader.module_repr`" +#: ../Doc/whatsnew/3.11.rst:1887 +#, fuzzy +msgid ":func:`!importlib.find_loader`" +msgstr ":func:`importlib.find_loader`" -#: ../Doc/whatsnew/3.11.rst:1789 -msgid ":meth:`importlib.abc.Loadermodule_repr`" -msgstr ":meth:`importlib.abc.Loadermodule_repr`" +#: ../Doc/whatsnew/3.11.rst:1888 +#, fuzzy +msgid ":meth:`!importlib.abc.Loader.module_repr`" +msgstr ":meth:`importlib.abc.Loader.module_repr`" -#: ../Doc/whatsnew/3.11.rst:1790 ../Doc/whatsnew/3.11.rst:1791 -msgid ":meth:`importlib.abc.MetaPathFinder.find_module`" +#: ../Doc/whatsnew/3.11.rst:1889 +#, fuzzy +msgid ":meth:`!importlib.abc.MetaPathFinder.find_module`" msgstr ":meth:`importlib.abc.MetaPathFinder.find_module`" -#: ../Doc/whatsnew/3.11.rst:1792 -msgid ":meth:`importlib.abc.PathEntryFinder.find_loader`" +#: ../Doc/whatsnew/3.11.rst:1890 +#, fuzzy +msgid ":meth:`!importlib.abc.PathEntryFinder.find_loader`" msgstr ":meth:`importlib.abc.PathEntryFinder.find_loader`" -#: ../Doc/whatsnew/3.11.rst:1793 -msgid ":meth:`importlib.abc.PathEntryFinder.find_module`" +#: ../Doc/whatsnew/3.11.rst:1891 +#, fuzzy +msgid ":meth:`!importlib.abc.PathEntryFinder.find_module`" msgstr ":meth:`importlib.abc.PathEntryFinder.find_module`" -#: ../Doc/whatsnew/3.11.rst:1794 -msgid ":meth:`importlib.machinery.BuiltinImporter.find_module`" +#: ../Doc/whatsnew/3.11.rst:1892 +#, fuzzy +msgid ":meth:`!importlib.machinery.BuiltinImporter.find_module`" msgstr ":meth:`importlib.machinery.BuiltinImporter.find_module`" -#: ../Doc/whatsnew/3.11.rst:1795 -msgid ":meth:`importlib.machinery.BuiltinLoader.module_repr`" +#: ../Doc/whatsnew/3.11.rst:1893 +#, fuzzy +msgid ":meth:`!importlib.machinery.BuiltinLoader.module_repr`" msgstr ":meth:`importlib.machinery.BuiltinLoader.module_repr`" -#: ../Doc/whatsnew/3.11.rst:1796 -msgid ":meth:`importlib.machinery.FileFinder.find_loader`" +#: ../Doc/whatsnew/3.11.rst:1894 +#, fuzzy +msgid ":meth:`!importlib.machinery.FileFinder.find_loader`" msgstr ":meth:`importlib.machinery.FileFinder.find_loader`" -#: ../Doc/whatsnew/3.11.rst:1797 -msgid ":meth:`importlib.machinery.FileFinder.find_module`" +#: ../Doc/whatsnew/3.11.rst:1895 +#, fuzzy +msgid ":meth:`!importlib.machinery.FileFinder.find_module`" msgstr ":meth:`importlib.machinery.FileFinder.find_module`" -#: ../Doc/whatsnew/3.11.rst:1798 -msgid ":meth:`importlib.machinery.FrozenImporter.find_module`" +#: ../Doc/whatsnew/3.11.rst:1896 +#, fuzzy +msgid ":meth:`!importlib.machinery.FrozenImporter.find_module`" msgstr ":meth:`importlib.machinery.FrozenImporter.find_module`" -#: ../Doc/whatsnew/3.11.rst:1799 -msgid ":meth:`importlib.machinery.FrozenLoader.module_repr`" +#: ../Doc/whatsnew/3.11.rst:1897 +#, fuzzy +msgid ":meth:`!importlib.machinery.FrozenLoader.module_repr`" msgstr ":meth:`importlib.machinery.FrozenLoader.module_repr`" -#: ../Doc/whatsnew/3.11.rst:1800 -msgid ":meth:`importlib.machinery.PathFinder.find_module`" +#: ../Doc/whatsnew/3.11.rst:1898 +#, fuzzy +msgid ":meth:`!importlib.machinery.PathFinder.find_module`" msgstr ":meth:`importlib.machinery.PathFinder.find_module`" -#: ../Doc/whatsnew/3.11.rst:1801 -msgid ":meth:`importlib.machinery.WindowsRegistryFinder.find_module`" +#: ../Doc/whatsnew/3.11.rst:1899 +#, fuzzy +msgid ":meth:`!importlib.machinery.WindowsRegistryFinder.find_module`" msgstr ":meth:`importlib.machinery.WindowsRegistryFinder.find_module`" -#: ../Doc/whatsnew/3.11.rst:1802 +#: ../Doc/whatsnew/3.11.rst:1900 +#, fuzzy +msgid ":func:`!importlib.util.module_for_loader`" +msgstr ":func:`importlib.util.module_for_loader`" + +#: ../Doc/whatsnew/3.11.rst:1901 +#, fuzzy +msgid ":func:`!importlib.util.set_loader_wrapper`" +msgstr ":func:`importlib.util.set_loader_wrapper`" + +#: ../Doc/whatsnew/3.11.rst:1902 +#, fuzzy +msgid ":func:`!importlib.util.set_package_wrapper`" +msgstr ":func:`importlib.util.set_package_wrapper`" + +#: ../Doc/whatsnew/3.11.rst:1903 +#, fuzzy +msgid ":class:`!pkgutil.ImpImporter`" +msgstr ":class:`pkgutil.ImpImporter`" + +#: ../Doc/whatsnew/3.11.rst:1904 +#, fuzzy +msgid ":class:`!pkgutil.ImpLoader`" +msgstr ":class:`pkgutil.ImpLoader`" + +#: ../Doc/whatsnew/3.11.rst:1905 msgid ":meth:`pathlib.Path.link_to`" msgstr ":meth:`pathlib.Path.link_to`" -#: ../Doc/whatsnew/3.11.rst:1803 -msgid "The entire :ref:`distutils namespace `" -msgstr "Todo el :ref:`distutils namespace `" - -#: ../Doc/whatsnew/3.11.rst:1804 -msgid ":func:`cgi.log`" -msgstr ":func:`cgi.log`" +#: ../Doc/whatsnew/3.11.rst:1906 +#, fuzzy +msgid ":func:`!sqlite3.enable_shared_cache`" +msgstr ":func:`sqlite3.enable_shared_cache`" -#: ../Doc/whatsnew/3.11.rst:1805 -msgid ":func:`sqlite3.OptimizedUnicode`" +#: ../Doc/whatsnew/3.11.rst:1907 +#, fuzzy +msgid ":func:`!sqlite3.OptimizedUnicode`" msgstr ":func:`sqlite3.OptimizedUnicode`" -#: ../Doc/whatsnew/3.11.rst:1806 -msgid ":func:`sqlite3.enable_shared_cache`" -msgstr ":func:`sqlite3.enable_shared_cache`" +#: ../Doc/whatsnew/3.11.rst:1908 +#, fuzzy +msgid ":envvar:`PYTHONTHREADDEBUG` environment variable" +msgstr ":envvar:`PYTHONTHREADDEBUG`" + +#: ../Doc/whatsnew/3.11.rst:1909 +msgid "The following deprecated aliases in :mod:`unittest`:" +msgstr "" + +#: ../Doc/whatsnew/3.11.rst:1912 +#, fuzzy +msgid "Deprecated alias" +msgstr "Obsoleto" + +#: ../Doc/whatsnew/3.11.rst:1912 +msgid "Method Name" +msgstr "" + +#: ../Doc/whatsnew/3.11.rst:1912 +#, fuzzy +msgid "Deprecated in" +msgstr "Obsoleto" + +#: ../Doc/whatsnew/3.11.rst:1914 +msgid "``failUnless``" +msgstr "" + +#: ../Doc/whatsnew/3.11.rst:1914 ../Doc/whatsnew/3.11.rst:1921 +msgid ":meth:`.assertTrue`" +msgstr "" + +#: ../Doc/whatsnew/3.11.rst:1914 ../Doc/whatsnew/3.11.rst:1915 +#: ../Doc/whatsnew/3.11.rst:1916 ../Doc/whatsnew/3.11.rst:1917 +#: ../Doc/whatsnew/3.11.rst:1918 ../Doc/whatsnew/3.11.rst:1919 +#: ../Doc/whatsnew/3.11.rst:1920 +msgid "3.1" +msgstr "" + +#: ../Doc/whatsnew/3.11.rst:1915 +#, fuzzy +msgid "``failIf``" +msgstr "``a[i]``" + +#: ../Doc/whatsnew/3.11.rst:1915 +msgid ":meth:`.assertFalse`" +msgstr "" + +#: ../Doc/whatsnew/3.11.rst:1916 +msgid "``failUnlessEqual``" +msgstr "" -#: ../Doc/whatsnew/3.11.rst:1813 ../Doc/whatsnew/3.11.rst:2505 +#: ../Doc/whatsnew/3.11.rst:1916 ../Doc/whatsnew/3.11.rst:1922 +msgid ":meth:`.assertEqual`" +msgstr "" + +#: ../Doc/whatsnew/3.11.rst:1917 +msgid "``failIfEqual``" +msgstr "" + +#: ../Doc/whatsnew/3.11.rst:1917 ../Doc/whatsnew/3.11.rst:1923 +msgid ":meth:`.assertNotEqual`" +msgstr "" + +#: ../Doc/whatsnew/3.11.rst:1918 +msgid "``failUnlessAlmostEqual``" +msgstr "" + +#: ../Doc/whatsnew/3.11.rst:1918 ../Doc/whatsnew/3.11.rst:1924 +msgid ":meth:`.assertAlmostEqual`" +msgstr "" + +#: ../Doc/whatsnew/3.11.rst:1919 +msgid "``failIfAlmostEqual``" +msgstr "" + +#: ../Doc/whatsnew/3.11.rst:1919 ../Doc/whatsnew/3.11.rst:1925 +msgid ":meth:`.assertNotAlmostEqual`" +msgstr "" + +#: ../Doc/whatsnew/3.11.rst:1920 +msgid "``failUnlessRaises``" +msgstr "" + +#: ../Doc/whatsnew/3.11.rst:1920 +msgid ":meth:`.assertRaises`" +msgstr "" + +#: ../Doc/whatsnew/3.11.rst:1921 +#, fuzzy +msgid "``assert_``" +msgstr "``*seq``" + +#: ../Doc/whatsnew/3.11.rst:1921 ../Doc/whatsnew/3.11.rst:1922 +#: ../Doc/whatsnew/3.11.rst:1923 ../Doc/whatsnew/3.11.rst:1924 +#: ../Doc/whatsnew/3.11.rst:1925 ../Doc/whatsnew/3.11.rst:1926 +#: ../Doc/whatsnew/3.11.rst:1927 +msgid "3.2" +msgstr "" + +#: ../Doc/whatsnew/3.11.rst:1922 +msgid "``assertEquals``" +msgstr "" + +#: ../Doc/whatsnew/3.11.rst:1923 +msgid "``assertNotEquals``" +msgstr "" + +#: ../Doc/whatsnew/3.11.rst:1924 +msgid "``assertAlmostEquals``" +msgstr "" + +#: ../Doc/whatsnew/3.11.rst:1925 +msgid "``assertNotAlmostEquals``" +msgstr "" + +#: ../Doc/whatsnew/3.11.rst:1926 +msgid "``assertRegexpMatches``" +msgstr "" + +#: ../Doc/whatsnew/3.11.rst:1926 +msgid ":meth:`.assertRegex`" +msgstr "" + +#: ../Doc/whatsnew/3.11.rst:1927 +msgid "``assertRaisesRegexp``" +msgstr "" + +#: ../Doc/whatsnew/3.11.rst:1927 +msgid ":meth:`.assertRaisesRegex`" +msgstr "" + +#: ../Doc/whatsnew/3.11.rst:1928 +msgid "``assertNotRegexpMatches``" +msgstr "" + +#: ../Doc/whatsnew/3.11.rst:1928 +msgid ":meth:`.assertNotRegex`" +msgstr "" + +#: ../Doc/whatsnew/3.11.rst:1928 +msgid "3.5" +msgstr "" + +#: ../Doc/whatsnew/3.11.rst:1935 ../Doc/whatsnew/3.11.rst:2619 msgid "Removed" msgstr "Remoto" -#: ../Doc/whatsnew/3.11.rst:1815 -msgid "This section lists Python APIs that have been removed in Python 3.12." +#: ../Doc/whatsnew/3.11.rst:1937 +#, fuzzy +msgid "This section lists Python APIs that have been removed in Python 3.11." msgstr "" "Esta sección enumera las API de Python que se han eliminado en Python 3.12." -#: ../Doc/whatsnew/3.11.rst:1817 +#: ../Doc/whatsnew/3.11.rst:1939 msgid "" "Removed C APIs are :ref:`listed separately `." msgstr "" "Las API C eliminadas son :ref:`listed separately `." -#: ../Doc/whatsnew/3.11.rst:1819 +#: ../Doc/whatsnew/3.11.rst:1941 msgid "" "Removed the :func:`!@asyncio.coroutine` :term:`decorator` enabling legacy " "generator-based coroutines to be compatible with :keyword:`async` / :keyword:" @@ -3692,7 +3922,7 @@ msgstr "" "Utilice :keyword:`async def` en su lugar. (Aportado por Illia Volochii en :" "issue:`43216`.)" -#: ../Doc/whatsnew/3.11.rst:1826 +#: ../Doc/whatsnew/3.11.rst:1948 msgid "" "Removed :class:`!asyncio.coroutines.CoroWrapper` used for wrapping legacy " "generator-based coroutine objects in the debug mode. (Contributed by Illia " @@ -3702,7 +3932,7 @@ msgstr "" "objetos de corrutina basados ​​en generadores heredados en el modo de " "depuración. (Aportado por Illia Volochii en :issue:`43216`.)" -#: ../Doc/whatsnew/3.11.rst:1830 +#: ../Doc/whatsnew/3.11.rst:1952 msgid "" "Due to significant security concerns, the *reuse_address* parameter of :meth:" "`asyncio.loop.create_datagram_endpoint`, disabled in Python 3.9, is now " @@ -3716,7 +3946,7 @@ msgstr "" "opción de socket ``SO_REUSEADDR`` en UDP. (Aportado por Hugo van Kemenade " "en :issue:`45129`.)" -#: ../Doc/whatsnew/3.11.rst:1836 +#: ../Doc/whatsnew/3.11.rst:1958 msgid "" "Removed the :mod:`!binhex` module, deprecated in Python 3.9. Also removed " "the related, similarly-deprecated :mod:`binascii` functions:" @@ -3725,31 +3955,31 @@ msgstr "" "eliminaron las funciones :mod:`binascii` relacionadas y obsoletas de manera " "similar:" -#: ../Doc/whatsnew/3.11.rst:1839 +#: ../Doc/whatsnew/3.11.rst:1961 msgid ":func:`!binascii.a2b_hqx`" msgstr ":func:`!binascii.a2b_hqx`" -#: ../Doc/whatsnew/3.11.rst:1840 +#: ../Doc/whatsnew/3.11.rst:1962 msgid ":func:`!binascii.b2a_hqx`" msgstr ":func:`!binascii.b2a_hqx`" -#: ../Doc/whatsnew/3.11.rst:1841 +#: ../Doc/whatsnew/3.11.rst:1963 msgid ":func:`!binascii.rlecode_hqx`" msgstr ":func:`!binascii.rlecode_hqx`" -#: ../Doc/whatsnew/3.11.rst:1842 +#: ../Doc/whatsnew/3.11.rst:1964 msgid ":func:`!binascii.rldecode_hqx`" msgstr ":func:`!binascii.rldecode_hqx`" -#: ../Doc/whatsnew/3.11.rst:1844 +#: ../Doc/whatsnew/3.11.rst:1966 msgid "The :func:`binascii.crc_hqx` function remains available." msgstr "La función :func:`binascii.crc_hqx` permanece disponible." -#: ../Doc/whatsnew/3.11.rst:1846 +#: ../Doc/whatsnew/3.11.rst:1968 msgid "(Contributed by Victor Stinner in :issue:`45085`.)" msgstr "(Aportado por Victor Stinner en :issue:`45085`.)" -#: ../Doc/whatsnew/3.11.rst:1848 +#: ../Doc/whatsnew/3.11.rst:1970 msgid "" "Removed the :mod:`distutils` ``bdist_msi`` command deprecated in Python 3.9. " "Use ``bdist_wheel`` (wheel packages) instead. (Contributed by Hugo van " @@ -3759,7 +3989,7 @@ msgstr "" "3.9. Utilice ``bdist_wheel`` (paquetes de ruedas) en su lugar. (Aportado por " "Hugo van Kemenade en :issue:`45124`.)" -#: ../Doc/whatsnew/3.11.rst:1852 +#: ../Doc/whatsnew/3.11.rst:1974 msgid "" "Removed the :meth:`~object.__getitem__` methods of :class:`xml.dom.pulldom." "DOMEventStream`, :class:`wsgiref.util.FileWrapper` and :class:`fileinput." @@ -3771,7 +4001,8 @@ msgstr "" "`fileinput.FileInput`, obsoletos desde Python 3.9. (Aportado por Hugo van " "Kemenade en :issue:`45132`.)" -#: ../Doc/whatsnew/3.11.rst:1857 +#: ../Doc/whatsnew/3.11.rst:1979 +#, fuzzy msgid "" "Removed the deprecated :mod:`gettext` functions :func:`!lgettext`, :func:`!" "ldgettext`, :func:`!lngettext` and :func:`!ldngettext`. Also removed the :" @@ -3779,7 +4010,7 @@ msgid "" "output_charset` and :meth:`!NullTranslations.set_output_charset` methods, " "and the *codeset* parameter of :func:`!translation` and :func:`!install`, " "since they are only used for the :func:`!l*gettext` functions. (Contributed " -"by Dong-hee Na and Serhiy Storchaka in :issue:`44235`.)" +"by Donghee Na and Serhiy Storchaka in :issue:`44235`.)" msgstr "" "Se eliminaron las funciones obsoletas :mod:`gettext` :func:`!lgettext`, :" "func:`!ldgettext`, :func:`!lngettext` y :func:`!ldngettext`. También se " @@ -3789,11 +4020,11 @@ msgstr "" "func:`!install`, ya que solo se usan para las funciones :func:`!l*gettext`. " "(Aportado por Dong-hee Na y Serhiy Storchaka en :issue:`44235`)." -#: ../Doc/whatsnew/3.11.rst:1867 +#: ../Doc/whatsnew/3.11.rst:1989 msgid "Removed from the :mod:`inspect` module:" msgstr "Eliminado del módulo :mod:`inspect`:" -#: ../Doc/whatsnew/3.11.rst:1869 +#: ../Doc/whatsnew/3.11.rst:1991 msgid "" "The :func:`!getargspec` function, deprecated since Python 3.0; use :func:" "`inspect.signature` or :func:`inspect.getfullargspec` instead." @@ -3801,7 +4032,7 @@ msgstr "" "La función :func:`!getargspec`, en desuso desde Python 3.0; utilice :func:" "`inspect.signature` o :func:`inspect.getfullargspec` en su lugar." -#: ../Doc/whatsnew/3.11.rst:1872 +#: ../Doc/whatsnew/3.11.rst:1994 msgid "" "The :func:`!formatargspec` function, deprecated since Python 3.5; use the :" "func:`inspect.signature` function or the :class:`inspect.Signature` object " @@ -3811,7 +4042,7 @@ msgstr "" "función :func:`inspect.signature` o el objeto :class:`inspect.Signature` " "directamente." -#: ../Doc/whatsnew/3.11.rst:1876 +#: ../Doc/whatsnew/3.11.rst:1998 msgid "" "The undocumented :meth:`!Signature.from_builtin` and :meth:`!Signature." "from_function` methods, deprecated since Python 3.5; use the :meth:" @@ -3822,11 +4053,11 @@ msgstr "" "método :meth:`Signature.from_callable() ` " "en su lugar." -#: ../Doc/whatsnew/3.11.rst:1881 +#: ../Doc/whatsnew/3.11.rst:2003 msgid "(Contributed by Hugo van Kemenade in :issue:`45320`.)" msgstr "(Aportado por Hugo van Kemenade en :issue:`45320`.)" -#: ../Doc/whatsnew/3.11.rst:1883 +#: ../Doc/whatsnew/3.11.rst:2005 msgid "" "Removed the :meth:`~object.__class_getitem__` method from :class:`pathlib." "PurePath`, because it was not used and added by mistake in previous " @@ -3836,17 +4067,18 @@ msgstr "" "PurePath`, porque no se usó y se agregó por error en versiones anteriores. " "(Aportado por Nikita Sobolev en :issue:`46483`.)" -#: ../Doc/whatsnew/3.11.rst:1888 +#: ../Doc/whatsnew/3.11.rst:2010 +#, fuzzy msgid "" "Removed the :class:`!MailmanProxy` class in the :mod:`smtpd` module, as it " "is unusable without the external :mod:`!mailman` package. (Contributed by " -"Dong-hee Na in :issue:`35800`.)" +"Donghee Na in :issue:`35800`.)" msgstr "" "Se eliminó la clase :class:`!MailmanProxy` en el módulo :mod:`smtpd`, ya que " "no se puede usar sin el paquete :mod:`!mailman` externo. (Aportado por Dong-" "hee Na en :issue:`35800`.)" -#: ../Doc/whatsnew/3.11.rst:1892 +#: ../Doc/whatsnew/3.11.rst:2014 msgid "" "Removed the deprecated :meth:`!split` method of :class:`!_tkinter." "TkappType`. (Contributed by Erlend E. Aasland in :issue:`38371`.)" @@ -3854,7 +4086,7 @@ msgstr "" "Se eliminó el método obsoleto :meth:`!split` de :class:`!_tkinter." "TkappType`. (Aportado por Erlend E. Aasland en :issue:`38371`.)" -#: ../Doc/whatsnew/3.11.rst:1895 +#: ../Doc/whatsnew/3.11.rst:2017 msgid "" "Removed namespace package support from :mod:`unittest` discovery. It was " "introduced in Python 3.4 but has been broken since Python 3.7. (Contributed " @@ -3864,7 +4096,7 @@ msgstr "" "descubrimiento :mod:`unittest`. Se introdujo en Python 3.4 pero se rompió " "desde Python 3.7. (Aportado por Inada Naoki en :issue:`23882`.)" -#: ../Doc/whatsnew/3.11.rst:1899 +#: ../Doc/whatsnew/3.11.rst:2021 msgid "" "Removed the undocumented private :meth:`!float.__set_format__()` method, " "previously known as :meth:`!float.__setformat__()` in Python 3.7. Its " @@ -3878,7 +4110,7 @@ msgstr "" "función. Existe principalmente para ser utilizada en el conjunto de pruebas " "de Python\". (Aportado por Victor Stinner en :issue:`46852`.)" -#: ../Doc/whatsnew/3.11.rst:1905 +#: ../Doc/whatsnew/3.11.rst:2027 msgid "" "The :option:`!--experimental-isolated-subinterpreters` configure flag (and " "corresponding :c:macro:`!EXPERIMENTAL_ISOLATED_SUBINTERPRETERS` macro) have " @@ -3888,7 +4120,7 @@ msgstr "" "subinterpreters` (y la macro :c:macro:`!" "EXPERIMENTAL_ISOLATED_SUBINTERPRETERS` correspondiente) se han eliminado." -#: ../Doc/whatsnew/3.11.rst:1909 +#: ../Doc/whatsnew/3.11.rst:2031 msgid "" "`Pynche `_ --- The Pythonically Natural " "Color and Hue Editor --- has been moved out of ``Tools/scripts`` and is " @@ -3900,11 +4132,11 @@ msgstr "" "`being developed independently `_ del árbol de fuentes de Python." -#: ../Doc/whatsnew/3.11.rst:1919 ../Doc/whatsnew/3.11.rst:2149 +#: ../Doc/whatsnew/3.11.rst:2041 ../Doc/whatsnew/3.11.rst:2263 msgid "Porting to Python 3.11" msgstr "Migración a Python 3.11" -#: ../Doc/whatsnew/3.11.rst:1921 +#: ../Doc/whatsnew/3.11.rst:2043 msgid "" "This section lists previously described changes and other bugfixes in the " "Python API that may require changes to your Python code." @@ -3913,7 +4145,7 @@ msgstr "" "correcciones de errores en la API de Python que pueden requerir cambios en " "su código de Python." -#: ../Doc/whatsnew/3.11.rst:1924 +#: ../Doc/whatsnew/3.11.rst:2046 msgid "" "Porting notes for the C API are :ref:`listed separately `." @@ -3921,7 +4153,7 @@ msgstr "" "Las notas de portabilidad para la API de C son :ref:`listed separately " "`." -#: ../Doc/whatsnew/3.11.rst:1927 +#: ../Doc/whatsnew/3.11.rst:2049 msgid "" ":func:`open`, :func:`io.open`, :func:`codecs.open` and :class:`fileinput." "FileInput` no longer accept ``'U'`` (\"universal newline\") in the file " @@ -3940,7 +4172,7 @@ msgstr "" "funcionan las nuevas líneas universales. (Aportado por Victor Stinner en :" "issue:`37330`.)" -#: ../Doc/whatsnew/3.11.rst:1936 +#: ../Doc/whatsnew/3.11.rst:2058 msgid "" ":class:`ast.AST` node positions are now validated when provided to :func:" "`compile` and other related functions. If invalid positions are detected, a :" @@ -3952,7 +4184,7 @@ msgstr "" "detectan posiciones no válidas, se generará un :exc:`ValueError`. (Aportado " "por Pablo Galindo en :gh:`93351`)" -#: ../Doc/whatsnew/3.11.rst:1940 +#: ../Doc/whatsnew/3.11.rst:2062 msgid "" "Prohibited passing non-:class:`concurrent.futures.ThreadPoolExecutor` " "executors to :meth:`asyncio.loop.set_default_executor` following a " @@ -3962,7 +4194,7 @@ msgstr "" "ThreadPoolExecutor` a :meth:`asyncio.loop.set_default_executor` luego de una " "obsolescencia en Python 3.8. (Aportado por Illia Volochii en :issue:`43234`.)" -#: ../Doc/whatsnew/3.11.rst:1945 +#: ../Doc/whatsnew/3.11.rst:2067 msgid "" ":mod:`calendar`: The :class:`calendar.LocaleTextCalendar` and :class:" "`calendar.LocaleHTMLCalendar` classes now use :func:`locale.getlocale`, " @@ -3974,7 +4206,7 @@ msgstr "" "de usar :func:`locale.getdefaultlocale`, si no se especifica una " "configuración regional. (Aportado por Victor Stinner en :issue:`46659`.)" -#: ../Doc/whatsnew/3.11.rst:1951 +#: ../Doc/whatsnew/3.11.rst:2073 msgid "" "The :mod:`pdb` module now reads the :file:`.pdbrc` configuration file with " "the ``'UTF-8'`` encoding. (Contributed by Srinivas Reddy Thatiparthy (శ్రీనివాస్ " @@ -3984,7 +4216,7 @@ msgstr "" "con la codificación ``'UTF-8'``. (Contribuido por Srinivas Reddy Thatiparthy " "(శ్రీనివాస్ రెడ్డి తాటిపర్తి) en :issue:`41137`.)" -#: ../Doc/whatsnew/3.11.rst:1955 +#: ../Doc/whatsnew/3.11.rst:2077 msgid "" "The *population* parameter of :func:`random.sample` must be a sequence, and " "automatic conversion of :class:`set`\\s to :class:`list`\\s is no longer " @@ -3998,7 +4230,7 @@ msgstr "" "población, se genera un :exc:`ValueError`. (Aportado por Raymond Hettinger " "en :issue:`40465`.)" -#: ../Doc/whatsnew/3.11.rst:1961 +#: ../Doc/whatsnew/3.11.rst:2083 msgid "" "The *random* optional parameter of :func:`random.shuffle` was removed. It " "was previously an arbitrary random function to use for the shuffle; now, :" @@ -4009,7 +4241,7 @@ msgstr "" "reproducción aleatoria; ahora, siempre se utilizará :func:`random.random` " "(su valor predeterminado anterior)." -#: ../Doc/whatsnew/3.11.rst:1965 +#: ../Doc/whatsnew/3.11.rst:2087 msgid "" "In :mod:`re` :ref:`re-syntax`, global inline flags (e.g. ``(?i)``) can now " "only be used at the start of regular expressions. Using them elsewhere has " @@ -4021,7 +4253,7 @@ msgstr "" "regulares. Su uso en otros lugares ha quedado obsoleto desde Python 3.6. " "(Aportado por Serhiy Storchaka en :issue:`47066`.)" -#: ../Doc/whatsnew/3.11.rst:1970 +#: ../Doc/whatsnew/3.11.rst:2092 msgid "" "In the :mod:`re` module, several long-standing bugs where fixed that, in " "rare cases, could cause capture groups to get the wrong result. Therefore, " @@ -4033,11 +4265,11 @@ msgstr "" "resultado incorrecto. Por lo tanto, esto podría cambiar la salida capturada " "en estos casos. (Contribuido por Ma Lin en :issue:`35859`.)" -#: ../Doc/whatsnew/3.11.rst:1979 +#: ../Doc/whatsnew/3.11.rst:2101 msgid "Build Changes" msgstr "Construir cambios" -#: ../Doc/whatsnew/3.11.rst:1981 +#: ../Doc/whatsnew/3.11.rst:2103 msgid "" "CPython now has :pep:`11` :pep:`Tier 3 support <11#tier-3>` for cross " "compiling to the `WebAssembly `_ platforms " @@ -4064,23 +4296,26 @@ msgstr "" "gh:`84461` y WASI aportados por Christian Heimes en :gh:`90473`; plataformas " "promocionadas en :gh:`95085`)" -#: ../Doc/whatsnew/3.11.rst:1995 -msgid "Building Python now requires:" +#: ../Doc/whatsnew/3.11.rst:2117 +#, fuzzy +msgid "Building CPython now requires:" msgstr "Construir Python ahora requiere:" -#: ../Doc/whatsnew/3.11.rst:1997 +#: ../Doc/whatsnew/3.11.rst:2119 +#, fuzzy msgid "" -"A `C11 `_ compiler. `Optional C11 " -"features `_ compiler and standard library. " +"`Optional C11 features `_ are not required. " -"(Contributed by Victor Stinner in :issue:`46656`.)" +"(Contributed by Victor Stinner in :issue:`46656`, :issue:`45440` and :issue:" +"`46640`.)" msgstr "" "Un compilador `C11 `_. `Optional C11 " "features `_ no son necesarios. (Aportado " "por Victor Stinner en :issue:`46656`.)" -#: ../Doc/whatsnew/3.11.rst:2003 +#: ../Doc/whatsnew/3.11.rst:2126 msgid "" "Support for `IEEE 754 `_ floating " "point numbers. (Contributed by Victor Stinner in :issue:`46917`.)" @@ -4088,33 +4323,17 @@ msgstr "" "Compatibilidad con números de punto flotante `IEEE 754 `_. (Aportado por Victor Stinner en :issue:`46917`.)" -#: ../Doc/whatsnew/3.11.rst:2007 -msgid "" -"Support for `floating point Not-a-Number (NaN) `_, as the :c:macro:`!Py_NO_NAN` macro has been " -"removed. (Contributed by Victor Stinner in :issue:`46656`.)" -msgstr "" -"Compatibilidad con `floating point Not-a-Number (NaN) `_, ya que se eliminó la macro :c:macro:`!" -"Py_NO_NAN`. (Aportado por Victor Stinner en :issue:`46656`.)" - -#: ../Doc/whatsnew/3.11.rst:2012 +#: ../Doc/whatsnew/3.11.rst:2130 +#, fuzzy msgid "" -"A `C99 `_ ```` header file " -"providing the :c:func:`!copysign`, :c:func:`!hypot`, :c:func:`!isfinite`, :c:" -"func:`!isinf`, :c:func:`!isnan`, and :c:func:`!round` functions (contributed " -"by Victor Stinner in :issue:`45440`); and a :c:data:`!NAN` constant or the :" -"c:func:`!__builtin_nan` function (Contributed by Victor Stinner in :issue:" -"`46640`)." +"The :c:macro:`!Py_NO_NAN` macro has been removed. Since CPython now requires " +"IEEE 754 floats, NaN values are always available. (Contributed by Victor " +"Stinner in :issue:`46656`.)" msgstr "" -"Un archivo de encabezado `C99 `_ ```` que proporciona las funciones :c:func:`!copysign`, :c:func:`!hypot`, :c:" -"func:`!isfinite`, :c:func:`!isinf`, :c:func:`!isnan` y :c:func:`!round` " -"(aportado por Victor Stinner en :issue:`45440`); y una constante :c:data:`!" -"NAN` o la función :c:func:`!__builtin_nan` (Aportado por Victor Stinner en :" -"issue:`46640`)." +"El valor :data:`math.nan` ahora está siempre disponible. (Aportado por " +"Victor Stinner en :issue:`46917`.)" -#: ../Doc/whatsnew/3.11.rst:2020 +#: ../Doc/whatsnew/3.11.rst:2134 msgid "" "The :mod:`tkinter` package now requires `Tcl/Tk `_ " "version 8.5.12 or newer. (Contributed by Serhiy Storchaka in :issue:`46996`.)" @@ -4123,7 +4342,7 @@ msgstr "" "versión 8.5.12 o posterior. (Aportado por Serhiy Storchaka en :issue:" "`46996`.)" -#: ../Doc/whatsnew/3.11.rst:2024 +#: ../Doc/whatsnew/3.11.rst:2138 msgid "" "Build dependencies, compiler flags, and linker flags for most stdlib " "extension modules are now detected by :program:`configure`. libffi, libnsl, " @@ -4144,7 +4363,7 @@ msgstr "" "`Tcl/Tk`_. (Aportado por Christian Heimes y Erlend Egeberg Aasland en :issue:" "`45847`, :issue:`45747` y :issue:`45763`)." -#: ../Doc/whatsnew/3.11.rst:2034 +#: ../Doc/whatsnew/3.11.rst:2148 msgid "" "libpython is no longer linked against libcrypt. (Contributed by Mike Gilbert " "in :issue:`45433`.)" @@ -4152,11 +4371,12 @@ msgstr "" "libpython ya no está vinculado con libcrypt. (Aportado por Mike Gilbert en :" "issue:`45433`.)" -#: ../Doc/whatsnew/3.11.rst:2037 +#: ../Doc/whatsnew/3.11.rst:2151 +#, fuzzy msgid "" "CPython can now be built with the `ThinLTO `_ option via passing ``thin`` to :option:`--with-lto`, i.e. " -"``--with-lto=thin``. (Contributed by Dong-hee Na and Brett Holman in :issue:" +"``--with-lto=thin``. (Contributed by Donghee Na and Brett Holman in :issue:" "`44340`.)" msgstr "" "CPython ahora se puede compilar con la opción `ThinLTO `_. The " @@ -4423,7 +4646,7 @@ msgstr "" "convertir argumentos a sus tipos esperados. Ver :pep:`670` para más " "detalles. (Aportado por Victor Stinner y Erlend E. Aasland en :gh:`89653`.)" -#: ../Doc/whatsnew/3.11.rst:2164 +#: ../Doc/whatsnew/3.11.rst:2278 msgid "" ":c:func:`PyErr_SetExcInfo()` no longer uses the ``type`` and ``traceback`` " "arguments, the interpreter now derives those values from the exception " @@ -4435,7 +4658,7 @@ msgstr "" "excepción (el argumento ``value``). La función aún roba referencias de los " "tres argumentos. (Aportado por Irit Katriel en :issue:`45711`.)" -#: ../Doc/whatsnew/3.11.rst:2170 +#: ../Doc/whatsnew/3.11.rst:2284 msgid "" ":c:func:`PyErr_GetExcInfo()` now derives the ``type`` and ``traceback`` " "fields of the result from the exception instance (the ``value`` field). " @@ -4445,7 +4668,7 @@ msgstr "" "``traceback`` del resultado de la instancia de excepción (el campo " "``value``). (Aportado por Irit Katriel en :issue:`45711`.)" -#: ../Doc/whatsnew/3.11.rst:2174 +#: ../Doc/whatsnew/3.11.rst:2288 msgid "" ":c:struct:`_frozen` has a new ``is_package`` field to indicate whether or " "not the frozen module is a package. Previously, a negative value in the " @@ -4457,7 +4680,7 @@ msgstr "" "campo ``size`` era el indicador. Ahora solo se pueden usar valores no " "negativos para ``size``. (Aportado por Kumar Aditya en :issue:`46608`.)" -#: ../Doc/whatsnew/3.11.rst:2180 +#: ../Doc/whatsnew/3.11.rst:2294 msgid "" ":c:func:`_PyFrameEvalFunction` now takes ``_PyInterpreterFrame*`` as its " "second parameter, instead of ``PyFrameObject*``. See :pep:`523` for more " @@ -4467,7 +4690,7 @@ msgstr "" "segundo parámetro, en lugar de ``PyFrameObject*``. Consulte :pep:`523` para " "obtener más detalles sobre cómo usar este tipo de puntero de función." -#: ../Doc/whatsnew/3.11.rst:2184 +#: ../Doc/whatsnew/3.11.rst:2298 msgid "" ":c:func:`PyCode_New` and :c:func:`PyCode_NewWithPosOnlyArgs` now take an " "additional ``exception_table`` argument. Using these functions should be " @@ -4481,7 +4704,7 @@ msgstr "" "personalizado: cree un objeto de código usando el compilador, luego obtenga " "una versión modificada con el método ``replace``." -#: ../Doc/whatsnew/3.11.rst:2190 +#: ../Doc/whatsnew/3.11.rst:2304 msgid "" ":c:type:`PyCodeObject` no longer has the ``co_code``, ``co_varnames``, " "``co_cellvars`` and ``co_freevars`` fields. Instead, use :c:func:" @@ -4497,7 +4720,7 @@ msgstr "" "de la API de C. (Aportado por Brandt Bucher en :issue:`46841` y Ken Jin en :" "gh:`92154` y :gh:`94936`)." -#: ../Doc/whatsnew/3.11.rst:2198 +#: ../Doc/whatsnew/3.11.rst:2312 msgid "" "The old trashcan macros (``Py_TRASHCAN_SAFE_BEGIN``/" "``Py_TRASHCAN_SAFE_END``) are now deprecated. They should be replaced by the " @@ -4507,15 +4730,15 @@ msgstr "" "``Py_TRASHCAN_SAFE_END``) ahora están obsoletas. Deberían ser reemplazadas " "por las nuevas macros ``Py_TRASHCAN_BEGIN`` y ``Py_TRASHCAN_END``." -#: ../Doc/whatsnew/3.11.rst:2202 +#: ../Doc/whatsnew/3.11.rst:2316 msgid "A tp_dealloc function that has the old macros, such as::" msgstr "Una función tp_dealloc que tiene las macros antiguas, como:" -#: ../Doc/whatsnew/3.11.rst:2213 +#: ../Doc/whatsnew/3.11.rst:2327 msgid "should migrate to the new macros as follows::" msgstr "debe migrar a las nuevas macros de la siguiente manera:" -#: ../Doc/whatsnew/3.11.rst:2224 +#: ../Doc/whatsnew/3.11.rst:2338 msgid "" "Note that ``Py_TRASHCAN_BEGIN`` has a second argument which should be the " "deallocation function it is in." @@ -4523,7 +4746,7 @@ msgstr "" "Tenga en cuenta que ``Py_TRASHCAN_BEGIN`` tiene un segundo argumento que " "debería ser la función de desasignación en la que se encuentra." -#: ../Doc/whatsnew/3.11.rst:2227 +#: ../Doc/whatsnew/3.11.rst:2341 msgid "" "To support older Python versions in the same codebase, you can define the " "following macros and use them throughout the code (credit: these were copied " @@ -4533,11 +4756,12 @@ msgstr "" "puede definir las siguientes macros y usarlas en todo el código (crédito: se " "copiaron de la base de código ``mypy``):" -#: ../Doc/whatsnew/3.11.rst:2239 +#: ../Doc/whatsnew/3.11.rst:2353 +#, fuzzy msgid "" "The :c:func:`PyType_Ready` function now raises an error if a type is defined " -"with the :const:`Py_TPFLAGS_HAVE_GC` flag set but has no traverse function (:" -"c:member:`PyTypeObject.tp_traverse`). (Contributed by Victor Stinner in :" +"with the :c:macro:`Py_TPFLAGS_HAVE_GC` flag set but has no traverse function " +"(:c:member:`PyTypeObject.tp_traverse`). (Contributed by Victor Stinner in :" "issue:`44263`.)" msgstr "" "La función :c:func:`PyType_Ready` ahora genera un error si un tipo se define " @@ -4545,9 +4769,10 @@ msgstr "" "función transversal (:c:member:`PyTypeObject.tp_traverse`). (Aportado por " "Victor Stinner en :issue:`44263`.)" -#: ../Doc/whatsnew/3.11.rst:2244 +#: ../Doc/whatsnew/3.11.rst:2358 +#, fuzzy msgid "" -"Heap types with the :const:`Py_TPFLAGS_IMMUTABLETYPE` flag can now inherit " +"Heap types with the :c:macro:`Py_TPFLAGS_IMMUTABLETYPE` flag can now inherit " "the :pep:`590` vectorcall protocol. Previously, this was only possible for :" "ref:`static types `. (Contributed by Erlend E. Aasland in :" "issue:`43908`)" @@ -4557,7 +4782,7 @@ msgstr "" "`590`. Anteriormente, esto solo era posible para :ref:`static types `. (Aportado por Erlend E. Aasland en :issue:`43908`)" -#: ../Doc/whatsnew/3.11.rst:2249 +#: ../Doc/whatsnew/3.11.rst:2363 msgid "" "Since :c:func:`Py_TYPE()` is changed to a inline static function, " "``Py_TYPE(obj) = new_type`` must be replaced with ``Py_SET_TYPE(obj, " @@ -4570,11 +4795,11 @@ msgstr "" "Python 3.9). Para compatibilidad con versiones anteriores, se puede usar " "esta macro:" -#: ../Doc/whatsnew/3.11.rst:2261 ../Doc/whatsnew/3.11.rst:2275 +#: ../Doc/whatsnew/3.11.rst:2375 ../Doc/whatsnew/3.11.rst:2389 msgid "(Contributed by Victor Stinner in :issue:`39573`.)" msgstr "(Aportado por Victor Stinner en :issue:`39573`.)" -#: ../Doc/whatsnew/3.11.rst:2263 +#: ../Doc/whatsnew/3.11.rst:2377 msgid "" "Since :c:func:`Py_SIZE()` is changed to a inline static function, " "``Py_SIZE(obj) = new_size`` must be replaced with ``Py_SET_SIZE(obj, " @@ -4587,7 +4812,7 @@ msgstr "" "Python 3.9). Para compatibilidad con versiones anteriores, se puede usar " "esta macro:" -#: ../Doc/whatsnew/3.11.rst:2277 +#: ../Doc/whatsnew/3.11.rst:2391 msgid "" "```` no longer includes the header files ````, ````, ```` and ```` when the ``Py_LIMITED_API`` macro is " @@ -4602,7 +4827,7 @@ msgstr "" "después de ``#include ``. (Aportado por Victor Stinner en :issue:" "`45434`.)" -#: ../Doc/whatsnew/3.11.rst:2283 +#: ../Doc/whatsnew/3.11.rst:2397 msgid "" "The non-limited API files ``cellobject.h``, ``classobject.h``, ``code.h``, " "``context.h``, ``funcobject.h``, ``genobject.h`` and ``longintrepr.h`` have " @@ -4620,7 +4845,7 @@ msgstr "" "Si se han incluido directamente, considere incluir ``Python.h`` en su lugar. " "(Aportado por Victor Stinner en :issue:`35134`.)" -#: ../Doc/whatsnew/3.11.rst:2291 +#: ../Doc/whatsnew/3.11.rst:2405 msgid "" "The :c:func:`PyUnicode_CHECK_INTERNED` macro has been excluded from the " "limited C API. It was never usable there, because it used internal " @@ -4632,7 +4857,7 @@ msgstr "" "están disponibles en la API de C limitada. (Aportado por Victor Stinner en :" "issue:`46007`.)" -#: ../Doc/whatsnew/3.11.rst:2296 +#: ../Doc/whatsnew/3.11.rst:2410 msgid "" "The following frame functions and type are now directly available with " "``#include ``, it's no longer needed to add ``#include " @@ -4642,43 +4867,43 @@ msgstr "" "directamente con ``#include ``, ya no es necesario agregar " "``#include ``:" -#: ../Doc/whatsnew/3.11.rst:2300 +#: ../Doc/whatsnew/3.11.rst:2414 msgid ":c:func:`PyFrame_Check`" msgstr ":c:func:`PyFrame_Check`" -#: ../Doc/whatsnew/3.11.rst:2301 +#: ../Doc/whatsnew/3.11.rst:2415 msgid ":c:func:`PyFrame_GetBack`" msgstr ":c:func:`PyFrame_GetBack`" -#: ../Doc/whatsnew/3.11.rst:2302 +#: ../Doc/whatsnew/3.11.rst:2416 msgid ":c:func:`PyFrame_GetBuiltins`" msgstr ":c:func:`PyFrame_GetBuiltins`" -#: ../Doc/whatsnew/3.11.rst:2303 +#: ../Doc/whatsnew/3.11.rst:2417 msgid ":c:func:`PyFrame_GetGenerator`" msgstr ":c:func:`PyFrame_GetGenerator`" -#: ../Doc/whatsnew/3.11.rst:2304 +#: ../Doc/whatsnew/3.11.rst:2418 msgid ":c:func:`PyFrame_GetGlobals`" msgstr ":c:func:`PyFrame_GetGlobals`" -#: ../Doc/whatsnew/3.11.rst:2305 +#: ../Doc/whatsnew/3.11.rst:2419 msgid ":c:func:`PyFrame_GetLasti`" msgstr ":c:func:`PyFrame_GetLasti`" -#: ../Doc/whatsnew/3.11.rst:2306 +#: ../Doc/whatsnew/3.11.rst:2420 msgid ":c:func:`PyFrame_GetLocals`" msgstr ":c:func:`PyFrame_GetLocals`" -#: ../Doc/whatsnew/3.11.rst:2307 +#: ../Doc/whatsnew/3.11.rst:2421 msgid ":c:type:`PyFrame_Type`" msgstr ":c:type:`PyFrame_Type`" -#: ../Doc/whatsnew/3.11.rst:2309 +#: ../Doc/whatsnew/3.11.rst:2423 msgid "(Contributed by Victor Stinner in :gh:`93937`.)" msgstr "(Aportado por Victor Stinner en :gh:`93937`.)" -#: ../Doc/whatsnew/3.11.rst:2313 +#: ../Doc/whatsnew/3.11.rst:2427 msgid "" "The :c:type:`PyFrameObject` structure members have been removed from the " "public C API." @@ -4686,7 +4911,7 @@ msgstr "" "Los miembros de la estructura :c:type:`PyFrameObject` se han eliminado de la " "API de C pública." -#: ../Doc/whatsnew/3.11.rst:2316 +#: ../Doc/whatsnew/3.11.rst:2430 msgid "" "While the documentation notes that the :c:type:`PyFrameObject` fields are " "subject to change at any time, they have been stable for a long time and " @@ -4696,7 +4921,7 @@ msgstr "" "sujetos a cambios en cualquier momento, se han mantenido estables durante " "mucho tiempo y se usaron en varias extensiones populares." -#: ../Doc/whatsnew/3.11.rst:2320 +#: ../Doc/whatsnew/3.11.rst:2434 msgid "" "In Python 3.11, the frame struct was reorganized to allow performance " "optimizations. Some fields were removed entirely, as they were details of " @@ -4706,39 +4931,39 @@ msgstr "" "optimizaciones de rendimiento. Algunos campos se eliminaron por completo, ya " "que eran detalles de la implementación anterior." -#: ../Doc/whatsnew/3.11.rst:2324 +#: ../Doc/whatsnew/3.11.rst:2438 msgid ":c:type:`PyFrameObject` fields:" msgstr "Campos :c:type:`PyFrameObject`:" -#: ../Doc/whatsnew/3.11.rst:2326 +#: ../Doc/whatsnew/3.11.rst:2440 msgid "``f_back``: use :c:func:`PyFrame_GetBack`." msgstr "``f_back``: usa :c:func:`PyFrame_GetBack`." -#: ../Doc/whatsnew/3.11.rst:2327 +#: ../Doc/whatsnew/3.11.rst:2441 msgid "``f_blockstack``: removed." msgstr "``f_blockstack``: eliminado." -#: ../Doc/whatsnew/3.11.rst:2328 +#: ../Doc/whatsnew/3.11.rst:2442 msgid "``f_builtins``: use :c:func:`PyFrame_GetBuiltins`." msgstr "``f_builtins``: usa :c:func:`PyFrame_GetBuiltins`." -#: ../Doc/whatsnew/3.11.rst:2329 +#: ../Doc/whatsnew/3.11.rst:2443 msgid "``f_code``: use :c:func:`PyFrame_GetCode`." msgstr "``f_code``: usa :c:func:`PyFrame_GetCode`." -#: ../Doc/whatsnew/3.11.rst:2330 +#: ../Doc/whatsnew/3.11.rst:2444 msgid "``f_gen``: use :c:func:`PyFrame_GetGenerator`." msgstr "``f_gen``: usa :c:func:`PyFrame_GetGenerator`." -#: ../Doc/whatsnew/3.11.rst:2331 +#: ../Doc/whatsnew/3.11.rst:2445 msgid "``f_globals``: use :c:func:`PyFrame_GetGlobals`." msgstr "``f_globals``: usa :c:func:`PyFrame_GetGlobals`." -#: ../Doc/whatsnew/3.11.rst:2332 +#: ../Doc/whatsnew/3.11.rst:2446 msgid "``f_iblock``: removed." msgstr "``f_iblock``: eliminado." -#: ../Doc/whatsnew/3.11.rst:2333 +#: ../Doc/whatsnew/3.11.rst:2447 msgid "" "``f_lasti``: use :c:func:`PyFrame_GetLasti`. Code using ``f_lasti`` with " "``PyCode_Addr2Line()`` should use :c:func:`PyFrame_GetLineNumber` instead; " @@ -4748,27 +4973,27 @@ msgstr "" "con ``PyCode_Addr2Line()`` debería usar :c:func:`PyFrame_GetLineNumber` en " "su lugar; puede ser más rápido." -#: ../Doc/whatsnew/3.11.rst:2336 +#: ../Doc/whatsnew/3.11.rst:2450 msgid "``f_lineno``: use :c:func:`PyFrame_GetLineNumber`" msgstr "``f_lineno``: usar :c:func:`PyFrame_GetLineNumber`" -#: ../Doc/whatsnew/3.11.rst:2337 +#: ../Doc/whatsnew/3.11.rst:2451 msgid "``f_locals``: use :c:func:`PyFrame_GetLocals`." msgstr "``f_locals``: usa :c:func:`PyFrame_GetLocals`." -#: ../Doc/whatsnew/3.11.rst:2338 +#: ../Doc/whatsnew/3.11.rst:2452 msgid "``f_stackdepth``: removed." msgstr "``f_stackdepth``: eliminado." -#: ../Doc/whatsnew/3.11.rst:2339 +#: ../Doc/whatsnew/3.11.rst:2453 msgid "``f_state``: no public API (renamed to ``f_frame.f_state``)." msgstr "``f_state``: sin API pública (renombrado como ``f_frame.f_state``)." -#: ../Doc/whatsnew/3.11.rst:2340 +#: ../Doc/whatsnew/3.11.rst:2454 msgid "``f_trace``: no public API." msgstr "``f_trace``: sin API pública." -#: ../Doc/whatsnew/3.11.rst:2341 +#: ../Doc/whatsnew/3.11.rst:2455 msgid "" "``f_trace_lines``: use ``PyObject_GetAttrString((PyObject*)frame, " "\"f_trace_lines\")``." @@ -4776,7 +5001,7 @@ msgstr "" "``f_trace_lines``: utiliza ``PyObject_GetAttrString((PyObject*)frame, " "\"f_trace_lines\")``." -#: ../Doc/whatsnew/3.11.rst:2342 +#: ../Doc/whatsnew/3.11.rst:2456 msgid "" "``f_trace_opcodes``: use ``PyObject_GetAttrString((PyObject*)frame, " "\"f_trace_opcodes\")``." @@ -4784,16 +5009,16 @@ msgstr "" "``f_trace_opcodes``: utiliza ``PyObject_GetAttrString((PyObject*)frame, " "\"f_trace_opcodes\")``." -#: ../Doc/whatsnew/3.11.rst:2343 +#: ../Doc/whatsnew/3.11.rst:2457 msgid "``f_localsplus``: no public API (renamed to ``f_frame.localsplus``)." msgstr "" "``f_localsplus``: sin API pública (renombrado como ``f_frame.localsplus``)." -#: ../Doc/whatsnew/3.11.rst:2344 +#: ../Doc/whatsnew/3.11.rst:2458 msgid "``f_valuestack``: removed." msgstr "``f_valuestack``: eliminado." -#: ../Doc/whatsnew/3.11.rst:2346 +#: ../Doc/whatsnew/3.11.rst:2460 msgid "" "The Python frame object is now created lazily. A side effect is that the " "``f_back`` member must not be accessed directly, since its value is now also " @@ -4805,7 +5030,7 @@ msgstr "" "que su valor ahora también se calcula de forma diferida. En su lugar, se " "debe llamar a la función :c:func:`PyFrame_GetBack`." -#: ../Doc/whatsnew/3.11.rst:2351 +#: ../Doc/whatsnew/3.11.rst:2465 msgid "" "Debuggers that accessed the ``f_locals`` directly *must* call :c:func:" "`PyFrame_GetLocals` instead. They no longer need to call :c:func:" @@ -4819,28 +5044,29 @@ msgstr "" "no deberían llamar a esas funciones. La actualización necesaria del marco " "ahora es administrada por la máquina virtual." -#: ../Doc/whatsnew/3.11.rst:2357 +#: ../Doc/whatsnew/3.11.rst:2471 msgid "Code defining ``PyFrame_GetCode()`` on Python 3.8 and older::" msgstr "Código que define ``PyFrame_GetCode()`` en Python 3.8 y anteriores:" -#: ../Doc/whatsnew/3.11.rst:2367 +#: ../Doc/whatsnew/3.11.rst:2481 msgid "Code defining ``PyFrame_GetBack()`` on Python 3.8 and older::" msgstr "Código que define ``PyFrame_GetBack()`` en Python 3.8 y anteriores:" -#: ../Doc/whatsnew/3.11.rst:2377 +#: ../Doc/whatsnew/3.11.rst:2491 +#, fuzzy msgid "" -"Or use the `pythoncapi_compat project `__ to get these two functions on older Python versions." +"Or use the `pythoncapi_compat project `__ to get these two functions on older Python versions." msgstr "" "O use `pythoncapi_compat project `__ para obtener estas dos funciones en versiones " "anteriores de Python." -#: ../Doc/whatsnew/3.11.rst:2381 +#: ../Doc/whatsnew/3.11.rst:2495 msgid "Changes of the :c:type:`PyThreadState` structure members:" msgstr "Cambios de los miembros de la estructura :c:type:`PyThreadState`:" -#: ../Doc/whatsnew/3.11.rst:2383 +#: ../Doc/whatsnew/3.11.rst:2497 msgid "" "``frame``: removed, use :c:func:`PyThreadState_GetFrame` (function added to " "Python 3.9 by :issue:`40429`). Warning: the function returns a :term:`strong " @@ -4850,7 +5076,7 @@ msgstr "" "a Python 3.9 por :issue:`40429`). Advertencia: la función devuelve un :term:" "`strong reference`, necesita llamar a :c:func:`Py_XDECREF`." -#: ../Doc/whatsnew/3.11.rst:2387 +#: ../Doc/whatsnew/3.11.rst:2501 msgid "" "``tracing``: changed, use :c:func:`PyThreadState_EnterTracing` and :c:func:" "`PyThreadState_LeaveTracing` (functions added to Python 3.11 by :issue:" @@ -4860,7 +5086,7 @@ msgstr "" "`PyThreadState_LeaveTracing` (funciones agregadas a Python 3.11 por :issue:" "`43760`)." -#: ../Doc/whatsnew/3.11.rst:2390 +#: ../Doc/whatsnew/3.11.rst:2504 msgid "" "``recursion_depth``: removed, use ``(tstate->recursion_limit - tstate-" ">recursion_remaining)`` instead." @@ -4868,16 +5094,16 @@ msgstr "" "``recursion_depth``: eliminado, use ``(tstate->recursion_limit - tstate-" ">recursion_remaining)`` en su lugar." -#: ../Doc/whatsnew/3.11.rst:2392 +#: ../Doc/whatsnew/3.11.rst:2506 msgid "``stackcheck_counter``: removed." msgstr "``stackcheck_counter``: eliminado." -#: ../Doc/whatsnew/3.11.rst:2394 +#: ../Doc/whatsnew/3.11.rst:2508 msgid "Code defining ``PyThreadState_GetFrame()`` on Python 3.8 and older::" msgstr "" "Código que define ``PyThreadState_GetFrame()`` en Python 3.8 y anteriores:" -#: ../Doc/whatsnew/3.11.rst:2404 +#: ../Doc/whatsnew/3.11.rst:2518 msgid "" "Code defining ``PyThreadState_EnterTracing()`` and " "``PyThreadState_LeaveTracing()`` on Python 3.10 and older::" @@ -4885,16 +5111,17 @@ msgstr "" "Código que define ``PyThreadState_EnterTracing()`` y " "``PyThreadState_LeaveTracing()`` en Python 3.10 y versiones anteriores:" -#: ../Doc/whatsnew/3.11.rst:2430 +#: ../Doc/whatsnew/3.11.rst:2544 +#, fuzzy msgid "" -"Or use `the pythoncapi_compat project `__ to get these functions on old Python functions." +"Or use `the pythoncapi-compat project `__ to get these functions on old Python functions." msgstr "" "O use `the pythoncapi_compat project `__ para obtener estas funciones en funciones antiguas de " "Python." -#: ../Doc/whatsnew/3.11.rst:2434 +#: ../Doc/whatsnew/3.11.rst:2548 msgid "" "Distributors are encouraged to build Python with the optimized Blake2 " "library `libb2`_." @@ -4902,7 +5129,7 @@ msgstr "" "Se alienta a los distribuidores a compilar Python con la biblioteca Blake2 " "optimizada `libb2`_." -#: ../Doc/whatsnew/3.11.rst:2437 +#: ../Doc/whatsnew/3.11.rst:2551 msgid "" "The :c:member:`PyConfig.module_search_paths_set` field must now be set to 1 " "for initialization to use :c:member:`PyConfig.module_search_paths` to " @@ -4915,7 +5142,7 @@ msgstr "" "inicialización volverá a calcular la ruta y reemplazará los valores " "agregados a ``module_search_paths``." -#: ../Doc/whatsnew/3.11.rst:2442 +#: ../Doc/whatsnew/3.11.rst:2556 msgid "" ":c:func:`PyConfig_Read` no longer calculates the initial search path, and " "will not fill any values into :c:member:`PyConfig.module_search_paths`. To " @@ -4929,61 +5156,73 @@ msgstr "" "inicialización y use :c:func:`PySys_GetObject` para recuperar :data:`sys." "path` como un objeto de lista de Python y modificarlo directamente." -#: ../Doc/whatsnew/3.11.rst:2453 +#: ../Doc/whatsnew/3.11.rst:2567 msgid "" "Deprecate the following functions to configure the Python initialization:" msgstr "" "Deseche las siguientes funciones para configurar la inicialización de Python:" -#: ../Doc/whatsnew/3.11.rst:2455 -msgid ":c:func:`PySys_AddWarnOptionUnicode`" +#: ../Doc/whatsnew/3.11.rst:2569 +#, fuzzy +msgid ":c:func:`!PySys_AddWarnOptionUnicode`" msgstr ":c:func:`PySys_AddWarnOptionUnicode`" -#: ../Doc/whatsnew/3.11.rst:2456 -msgid ":c:func:`PySys_AddWarnOption`" +#: ../Doc/whatsnew/3.11.rst:2570 +#, fuzzy +msgid ":c:func:`!PySys_AddWarnOption`" msgstr ":c:func:`PySys_AddWarnOption`" -#: ../Doc/whatsnew/3.11.rst:2457 -msgid ":c:func:`PySys_AddXOption`" +#: ../Doc/whatsnew/3.11.rst:2571 +#, fuzzy +msgid ":c:func:`!PySys_AddXOption`" msgstr ":c:func:`PySys_AddXOption`" -#: ../Doc/whatsnew/3.11.rst:2458 -msgid ":c:func:`PySys_HasWarnOptions`" +#: ../Doc/whatsnew/3.11.rst:2572 +#, fuzzy +msgid ":c:func:`!PySys_HasWarnOptions`" msgstr ":c:func:`PySys_HasWarnOptions`" -#: ../Doc/whatsnew/3.11.rst:2459 -msgid ":c:func:`PySys_SetArgvEx`" +#: ../Doc/whatsnew/3.11.rst:2573 +#, fuzzy +msgid ":c:func:`!PySys_SetArgvEx`" msgstr ":c:func:`PySys_SetArgvEx`" -#: ../Doc/whatsnew/3.11.rst:2460 -msgid ":c:func:`PySys_SetArgv`" +#: ../Doc/whatsnew/3.11.rst:2574 +#, fuzzy +msgid ":c:func:`!PySys_SetArgv`" msgstr ":c:func:`PySys_SetArgv`" -#: ../Doc/whatsnew/3.11.rst:2461 -msgid ":c:func:`PySys_SetPath`" +#: ../Doc/whatsnew/3.11.rst:2575 +#, fuzzy +msgid ":c:func:`!PySys_SetPath`" msgstr ":c:func:`PySys_SetPath`" -#: ../Doc/whatsnew/3.11.rst:2462 -msgid ":c:func:`Py_SetPath`" +#: ../Doc/whatsnew/3.11.rst:2576 +#, fuzzy +msgid ":c:func:`!Py_SetPath`" msgstr ":c:func:`Py_SetPath`" -#: ../Doc/whatsnew/3.11.rst:2463 -msgid ":c:func:`Py_SetProgramName`" +#: ../Doc/whatsnew/3.11.rst:2577 +#, fuzzy +msgid ":c:func:`!Py_SetProgramName`" msgstr ":c:func:`Py_SetProgramName`" -#: ../Doc/whatsnew/3.11.rst:2464 -msgid ":c:func:`Py_SetPythonHome`" +#: ../Doc/whatsnew/3.11.rst:2578 +#, fuzzy +msgid ":c:func:`!Py_SetPythonHome`" msgstr ":c:func:`Py_SetPythonHome`" -#: ../Doc/whatsnew/3.11.rst:2465 -msgid ":c:func:`Py_SetStandardStreamEncoding`" +#: ../Doc/whatsnew/3.11.rst:2579 +#, fuzzy +msgid ":c:func:`!Py_SetStandardStreamEncoding`" msgstr ":c:func:`Py_SetStandardStreamEncoding`" -#: ../Doc/whatsnew/3.11.rst:2466 -msgid ":c:func:`_Py_SetProgramFullPath`" +#: ../Doc/whatsnew/3.11.rst:2580 +#, fuzzy +msgid ":c:func:`!_Py_SetProgramFullPath`" msgstr ":c:func:`_Py_SetProgramFullPath`" -#: ../Doc/whatsnew/3.11.rst:2468 +#: ../Doc/whatsnew/3.11.rst:2582 msgid "" "Use the new :c:type:`PyConfig` API of the :ref:`Python Initialization " "Configuration ` instead (:pep:`587`). (Contributed by Victor " @@ -4993,7 +5232,7 @@ msgstr "" "Configuration ` en su lugar (:pep:`587`). (Aportado por Victor " "Stinner en :gh:`88279`.)" -#: ../Doc/whatsnew/3.11.rst:2472 +#: ../Doc/whatsnew/3.11.rst:2586 msgid "" "Deprecate the ``ob_shash`` member of the :c:type:`PyBytesObject`. Use :c:" "func:`PyObject_Hash` instead. (Contributed by Inada Naoki in :issue:`46864`.)" @@ -5002,7 +5241,7 @@ msgstr "" "func:`PyObject_Hash` en su lugar. (Aportado por Inada Naoki en :issue:" "`46864`.)" -#: ../Doc/whatsnew/3.11.rst:2481 +#: ../Doc/whatsnew/3.11.rst:2595 msgid "" "The following C APIs have been deprecated in earlier Python releases, and " "will be removed in Python 3.12." @@ -5010,107 +5249,120 @@ msgstr "" "Las siguientes API de C quedaron obsoletas en versiones anteriores de Python " "y se eliminarán en Python 3.12." -#: ../Doc/whatsnew/3.11.rst:2484 -msgid ":c:func:`PyUnicode_AS_DATA`" +#: ../Doc/whatsnew/3.11.rst:2598 +#, fuzzy +msgid ":c:func:`!PyUnicode_AS_DATA`" msgstr ":c:func:`PyUnicode_AS_DATA`" -#: ../Doc/whatsnew/3.11.rst:2485 -msgid ":c:func:`PyUnicode_AS_UNICODE`" +#: ../Doc/whatsnew/3.11.rst:2599 +#, fuzzy +msgid ":c:func:`!PyUnicode_AS_UNICODE`" msgstr ":c:func:`PyUnicode_AS_UNICODE`" -#: ../Doc/whatsnew/3.11.rst:2486 -msgid ":c:func:`PyUnicode_AsUnicodeAndSize`" +#: ../Doc/whatsnew/3.11.rst:2600 +#, fuzzy +msgid ":c:func:`!PyUnicode_AsUnicodeAndSize`" msgstr ":c:func:`PyUnicode_AsUnicodeAndSize`" -#: ../Doc/whatsnew/3.11.rst:2487 -msgid ":c:func:`PyUnicode_AsUnicode`" +#: ../Doc/whatsnew/3.11.rst:2601 +#, fuzzy +msgid ":c:func:`!PyUnicode_AsUnicode`" msgstr ":c:func:`PyUnicode_AsUnicode`" -#: ../Doc/whatsnew/3.11.rst:2488 -msgid ":c:func:`PyUnicode_FromUnicode`" +#: ../Doc/whatsnew/3.11.rst:2602 +#, fuzzy +msgid ":c:func:`!PyUnicode_FromUnicode`" msgstr ":c:func:`PyUnicode_FromUnicode`" -#: ../Doc/whatsnew/3.11.rst:2489 -msgid ":c:func:`PyUnicode_GET_DATA_SIZE`" +#: ../Doc/whatsnew/3.11.rst:2603 +#, fuzzy +msgid ":c:func:`!PyUnicode_GET_DATA_SIZE`" msgstr ":c:func:`PyUnicode_GET_DATA_SIZE`" -#: ../Doc/whatsnew/3.11.rst:2490 -msgid ":c:func:`PyUnicode_GET_SIZE`" +#: ../Doc/whatsnew/3.11.rst:2604 +#, fuzzy +msgid ":c:func:`!PyUnicode_GET_SIZE`" msgstr ":c:func:`PyUnicode_GET_SIZE`" -#: ../Doc/whatsnew/3.11.rst:2491 -msgid ":c:func:`PyUnicode_GetSize`" +#: ../Doc/whatsnew/3.11.rst:2605 +#, fuzzy +msgid ":c:func:`!PyUnicode_GetSize`" msgstr ":c:func:`PyUnicode_GetSize`" -#: ../Doc/whatsnew/3.11.rst:2492 +#: ../Doc/whatsnew/3.11.rst:2606 msgid ":c:func:`PyUnicode_IS_COMPACT`" msgstr ":c:func:`PyUnicode_IS_COMPACT`" -#: ../Doc/whatsnew/3.11.rst:2493 +#: ../Doc/whatsnew/3.11.rst:2607 msgid ":c:func:`PyUnicode_IS_READY`" msgstr ":c:func:`PyUnicode_IS_READY`" -#: ../Doc/whatsnew/3.11.rst:2494 +#: ../Doc/whatsnew/3.11.rst:2608 msgid ":c:func:`PyUnicode_READY`" msgstr ":c:func:`PyUnicode_READY`" -#: ../Doc/whatsnew/3.11.rst:2495 -msgid ":c:func:`Py_UNICODE_WSTR_LENGTH`" +#: ../Doc/whatsnew/3.11.rst:2609 +#, fuzzy +msgid ":c:func:`!PyUnicode_WSTR_LENGTH`" msgstr ":c:func:`Py_UNICODE_WSTR_LENGTH`" -#: ../Doc/whatsnew/3.11.rst:2496 -msgid ":c:func:`_PyUnicode_AsUnicode`" +#: ../Doc/whatsnew/3.11.rst:2610 +#, fuzzy +msgid ":c:func:`!_PyUnicode_AsUnicode`" msgstr ":c:func:`_PyUnicode_AsUnicode`" -#: ../Doc/whatsnew/3.11.rst:2497 -msgid ":c:macro:`PyUnicode_WCHAR_KIND`" +#: ../Doc/whatsnew/3.11.rst:2611 +#, fuzzy +msgid ":c:macro:`!PyUnicode_WCHAR_KIND`" msgstr ":c:macro:`PyUnicode_WCHAR_KIND`" -#: ../Doc/whatsnew/3.11.rst:2498 +#: ../Doc/whatsnew/3.11.rst:2612 msgid ":c:type:`PyUnicodeObject`" msgstr ":c:type:`PyUnicodeObject`" -#: ../Doc/whatsnew/3.11.rst:2499 -msgid ":c:func:`PyUnicode_InternImmortal()`" +#: ../Doc/whatsnew/3.11.rst:2613 +#, fuzzy +msgid ":c:func:`!PyUnicode_InternImmortal`" msgstr ":c:func:`PyUnicode_InternImmortal()`" -#: ../Doc/whatsnew/3.11.rst:2507 +#: ../Doc/whatsnew/3.11.rst:2621 +#, fuzzy msgid "" -":c:func:`PyFrame_BlockSetup` and :c:func:`PyFrame_BlockPop` have been " +":c:func:`!PyFrame_BlockSetup` and :c:func:`!PyFrame_BlockPop` have been " "removed. (Contributed by Mark Shannon in :issue:`40222`.)" msgstr "" "Se han eliminado :c:func:`PyFrame_BlockSetup` y :c:func:`PyFrame_BlockPop`. " "(Aportado por Mark Shannon en :issue:`40222`.)" -#: ../Doc/whatsnew/3.11.rst:2511 +#: ../Doc/whatsnew/3.11.rst:2625 msgid "Remove the following math macros using the ``errno`` variable:" msgstr "Quite las siguientes macros matemáticas usando la variable ``errno``:" -#: ../Doc/whatsnew/3.11.rst:2513 +#: ../Doc/whatsnew/3.11.rst:2627 msgid "``Py_ADJUST_ERANGE1()``" msgstr "``Py_ADJUST_ERANGE1()``" -#: ../Doc/whatsnew/3.11.rst:2514 +#: ../Doc/whatsnew/3.11.rst:2628 msgid "``Py_ADJUST_ERANGE2()``" msgstr "``Py_ADJUST_ERANGE2()``" -#: ../Doc/whatsnew/3.11.rst:2515 +#: ../Doc/whatsnew/3.11.rst:2629 msgid "``Py_OVERFLOWED()``" msgstr "``Py_OVERFLOWED()``" -#: ../Doc/whatsnew/3.11.rst:2516 +#: ../Doc/whatsnew/3.11.rst:2630 msgid "``Py_SET_ERANGE_IF_OVERFLOW()``" msgstr "``Py_SET_ERANGE_IF_OVERFLOW()``" -#: ../Doc/whatsnew/3.11.rst:2517 +#: ../Doc/whatsnew/3.11.rst:2631 msgid "``Py_SET_ERRNO_ON_MATH_ERROR()``" msgstr "``Py_SET_ERRNO_ON_MATH_ERROR()``" -#: ../Doc/whatsnew/3.11.rst:2519 +#: ../Doc/whatsnew/3.11.rst:2633 msgid "(Contributed by Victor Stinner in :issue:`45412`.)" msgstr "(Aportado por Victor Stinner en :issue:`45412`.)" -#: ../Doc/whatsnew/3.11.rst:2521 +#: ../Doc/whatsnew/3.11.rst:2635 msgid "" "Remove ``Py_UNICODE_COPY()`` and ``Py_UNICODE_FILL()`` macros, deprecated " "since Python 3.3. Use ``PyUnicode_CopyCharacters()`` or ``memcpy()`` " @@ -5122,7 +5374,7 @@ msgstr "" "(cadena ``wchar_t*``) y las funciones ``PyUnicode_Fill()`` en su lugar. " "(Aportado por Victor Stinner en :issue:`41123`.)" -#: ../Doc/whatsnew/3.11.rst:2526 +#: ../Doc/whatsnew/3.11.rst:2640 msgid "" "Remove the ``pystrhex.h`` header file. It only contains private functions. C " "extensions should only include the main ```` header file. " @@ -5132,7 +5384,7 @@ msgstr "" "privadas. Las extensiones C solo deben incluir el archivo de encabezado " "principal ````. (Aportado por Victor Stinner en :issue:`45434`.)" -#: ../Doc/whatsnew/3.11.rst:2530 +#: ../Doc/whatsnew/3.11.rst:2644 msgid "" "Remove the ``Py_FORCE_DOUBLE()`` macro. It was used by the " "``Py_IS_INFINITY()`` macro. (Contributed by Victor Stinner in :issue:" @@ -5141,7 +5393,7 @@ msgstr "" "Quite la macro ``Py_FORCE_DOUBLE()``. Fue utilizado por la macro " "``Py_IS_INFINITY()``. (Aportado por Victor Stinner en :issue:`45440`.)" -#: ../Doc/whatsnew/3.11.rst:2534 +#: ../Doc/whatsnew/3.11.rst:2648 msgid "" "The following items are no longer available when :c:macro:`Py_LIMITED_API` " "is defined:" @@ -5149,35 +5401,36 @@ msgstr "" "Los siguientes elementos ya no están disponibles cuando se define :c:macro:" "`Py_LIMITED_API`:" -#: ../Doc/whatsnew/3.11.rst:2537 +#: ../Doc/whatsnew/3.11.rst:2651 msgid ":c:func:`PyMarshal_WriteLongToFile`" msgstr ":c:func:`PyMarshal_WriteLongToFile`" -#: ../Doc/whatsnew/3.11.rst:2538 +#: ../Doc/whatsnew/3.11.rst:2652 msgid ":c:func:`PyMarshal_WriteObjectToFile`" msgstr ":c:func:`PyMarshal_WriteObjectToFile`" -#: ../Doc/whatsnew/3.11.rst:2539 +#: ../Doc/whatsnew/3.11.rst:2653 msgid ":c:func:`PyMarshal_ReadObjectFromString`" msgstr ":c:func:`PyMarshal_ReadObjectFromString`" -#: ../Doc/whatsnew/3.11.rst:2540 +#: ../Doc/whatsnew/3.11.rst:2654 msgid ":c:func:`PyMarshal_WriteObjectToString`" msgstr ":c:func:`PyMarshal_WriteObjectToString`" -#: ../Doc/whatsnew/3.11.rst:2541 +#: ../Doc/whatsnew/3.11.rst:2655 msgid "the ``Py_MARSHAL_VERSION`` macro" msgstr "la macro ``Py_MARSHAL_VERSION``" -#: ../Doc/whatsnew/3.11.rst:2543 -msgid "These are not part of the :ref:`limited API `." +#: ../Doc/whatsnew/3.11.rst:2657 +#, fuzzy +msgid "These are not part of the :ref:`limited API `." msgstr "Estos no son parte del :ref:`limited API `." -#: ../Doc/whatsnew/3.11.rst:2545 +#: ../Doc/whatsnew/3.11.rst:2659 msgid "(Contributed by Victor Stinner in :issue:`45474`.)" msgstr "(Aportado por Victor Stinner en :issue:`45474`.)" -#: ../Doc/whatsnew/3.11.rst:2547 +#: ../Doc/whatsnew/3.11.rst:2661 msgid "" "Exclude :c:func:`PyWeakref_GET_OBJECT` from the limited C API. It never " "worked since the :c:type:`PyWeakReference` structure is opaque in the " @@ -5187,7 +5440,7 @@ msgstr "" "funcionó ya que la estructura :c:type:`PyWeakReference` es opaca en la API " "de C limitada. (Aportado por Victor Stinner en :issue:`35134`.)" -#: ../Doc/whatsnew/3.11.rst:2552 +#: ../Doc/whatsnew/3.11.rst:2666 msgid "" "Remove the ``PyHeapType_GET_MEMBERS()`` macro. It was exposed in the public " "C API by mistake, it must only be used by Python internally. Use the " @@ -5199,7 +5452,7 @@ msgstr "" "miembro ``PyTypeObject.tp_members`` en su lugar. (Aportado por Victor " "Stinner en :issue:`40170`.)" -#: ../Doc/whatsnew/3.11.rst:2557 +#: ../Doc/whatsnew/3.11.rst:2671 msgid "" "Remove the ``HAVE_PY_SET_53BIT_PRECISION`` macro (moved to the internal C " "API). (Contributed by Victor Stinner in :issue:`45412`.)" @@ -5207,7 +5460,7 @@ msgstr "" "Elimine la macro ``HAVE_PY_SET_53BIT_PRECISION`` (movida a la API de C " "interna). (Aportado por Victor Stinner en :issue:`45412`.)" -#: ../Doc/whatsnew/3.11.rst:2563 +#: ../Doc/whatsnew/3.11.rst:2677 msgid "" "Remove the :c:type:`Py_UNICODE` encoder APIs, as they have been deprecated " "since Python 3.3, are little used and are inefficient relative to the " @@ -5217,66 +5470,154 @@ msgstr "" "obsoletas desde Python 3.3, se usan poco y son ineficientes en relación con " "las alternativas recomendadas." -#: ../Doc/whatsnew/3.11.rst:2568 +#: ../Doc/whatsnew/3.11.rst:2682 msgid "The removed functions are:" msgstr "Las funciones eliminadas son:" -#: ../Doc/whatsnew/3.11.rst:2570 +#: ../Doc/whatsnew/3.11.rst:2684 msgid ":func:`!PyUnicode_Encode`" msgstr ":func:`!PyUnicode_Encode`" -#: ../Doc/whatsnew/3.11.rst:2571 +#: ../Doc/whatsnew/3.11.rst:2685 msgid ":func:`!PyUnicode_EncodeASCII`" msgstr ":func:`!PyUnicode_EncodeASCII`" -#: ../Doc/whatsnew/3.11.rst:2572 +#: ../Doc/whatsnew/3.11.rst:2686 msgid ":func:`!PyUnicode_EncodeLatin1`" msgstr ":func:`!PyUnicode_EncodeLatin1`" -#: ../Doc/whatsnew/3.11.rst:2573 +#: ../Doc/whatsnew/3.11.rst:2687 msgid ":func:`!PyUnicode_EncodeUTF7`" msgstr ":func:`!PyUnicode_EncodeUTF7`" -#: ../Doc/whatsnew/3.11.rst:2574 +#: ../Doc/whatsnew/3.11.rst:2688 msgid ":func:`!PyUnicode_EncodeUTF8`" msgstr ":func:`!PyUnicode_EncodeUTF8`" -#: ../Doc/whatsnew/3.11.rst:2575 +#: ../Doc/whatsnew/3.11.rst:2689 msgid ":func:`!PyUnicode_EncodeUTF16`" msgstr ":func:`!PyUnicode_EncodeUTF16`" -#: ../Doc/whatsnew/3.11.rst:2576 +#: ../Doc/whatsnew/3.11.rst:2690 msgid ":func:`!PyUnicode_EncodeUTF32`" msgstr ":func:`!PyUnicode_EncodeUTF32`" -#: ../Doc/whatsnew/3.11.rst:2577 +#: ../Doc/whatsnew/3.11.rst:2691 msgid ":func:`!PyUnicode_EncodeUnicodeEscape`" msgstr ":func:`!PyUnicode_EncodeUnicodeEscape`" -#: ../Doc/whatsnew/3.11.rst:2578 +#: ../Doc/whatsnew/3.11.rst:2692 msgid ":func:`!PyUnicode_EncodeRawUnicodeEscape`" msgstr ":func:`!PyUnicode_EncodeRawUnicodeEscape`" -#: ../Doc/whatsnew/3.11.rst:2579 +#: ../Doc/whatsnew/3.11.rst:2693 msgid ":func:`!PyUnicode_EncodeCharmap`" msgstr ":func:`!PyUnicode_EncodeCharmap`" -#: ../Doc/whatsnew/3.11.rst:2580 +#: ../Doc/whatsnew/3.11.rst:2694 msgid ":func:`!PyUnicode_TranslateCharmap`" msgstr ":func:`!PyUnicode_TranslateCharmap`" -#: ../Doc/whatsnew/3.11.rst:2581 +#: ../Doc/whatsnew/3.11.rst:2695 msgid ":func:`!PyUnicode_EncodeDecimal`" msgstr ":func:`!PyUnicode_EncodeDecimal`" -#: ../Doc/whatsnew/3.11.rst:2582 +#: ../Doc/whatsnew/3.11.rst:2696 msgid ":func:`!PyUnicode_TransformDecimalToASCII`" msgstr ":func:`!PyUnicode_TransformDecimalToASCII`" -#: ../Doc/whatsnew/3.11.rst:2584 +#: ../Doc/whatsnew/3.11.rst:2698 msgid "" "See :pep:`624` for details and :pep:`migration guidance <624#alternative-" "apis>`. (Contributed by Inada Naoki in :issue:`44029`.)" msgstr "" "Ver :pep:`624` para más detalles y :pep:`migration guidance <624#alternative-" "apis>`. (Aportado por Inada Naoki en :issue:`44029`.)" + +#~ msgid "Release" +#~ msgstr "Versión" + +#~ msgid "|release|" +#~ msgstr "|release|" + +#~ msgid "Date" +#~ msgstr "Fecha" + +#~ msgid "|today|" +#~ msgstr "|today|" + +#~ msgid "" +#~ "This article explains the new features in Python 3.11, compared to 3.10." +#~ msgstr "" +#~ "Este artículo explica las nuevas características de Python 3.11, en " +#~ "comparación con 3.10." + +#~ msgid "For full details, see the :ref:`changelog `." +#~ msgstr "" +#~ "Para obtener detalles completos, consulte :ref:`changelog `." + +#~ msgid "" +#~ "Changed :class:`~enum.IntEnum`, :class:`~enum.IntFlag` and :class:`~enum." +#~ "StrEnum` to now inherit from :class:`ReprEnum`, so their :func:`str` " +#~ "output now matches :func:`format` (both ``str(AnIntEnum.ONE)`` and " +#~ "``format(AnIntEnum.ONE)`` return ``'1'``, whereas before ``str(AnIntEnum." +#~ "ONE)`` returned ``'AnIntEnum.ONE'``." +#~ msgstr "" +#~ "Se cambiaron :class:`~enum.IntEnum`, :class:`~enum.IntFlag` y :class:" +#~ "`~enum.StrEnum` para heredar ahora de :class:`ReprEnum`, por lo que su " +#~ "salida :func:`str` ahora coincide con :func:`format` (tanto " +#~ "``str(AnIntEnum.ONE)`` como ``format(AnIntEnum.ONE)`` devuelven ``'1'``, " +#~ "mientras que antes ``str(AnIntEnum.ONE)`` devolvía ``'AnIntEnum.ONE'``." + +#~ msgid "" +#~ "Changed :meth:`Enum.__format__() ` (the default " +#~ "for :func:`format`, :meth:`str.format` and :term:`f-string`\\s) of enums " +#~ "with mixed-in types (e.g. :class:`int`, :class:`str`) to also include the " +#~ "class name in the output, not just the member's key. This matches the " +#~ "existing behavior of :meth:`enum.Enum.__str__`, returning e.g. ``'AnEnum." +#~ "MEMBER'`` for an enum ``AnEnum(str, Enum)`` instead of just ``'MEMBER'``." +#~ msgstr "" +#~ "Se modificó :meth:`Enum.__format__() ` (el valor " +#~ "predeterminado para :func:`format`, :meth:`str.format` y :term:`f-" +#~ "string`\\s) de enumeraciones con tipos combinados (por ejemplo, :class:" +#~ "`int`, :class:`str`) para incluir también el nombre de la clase en la " +#~ "salida, no solo la clave del miembro. Esto coincide con el comportamiento " +#~ "existente de :meth:`enum.Enum.__str__`, devolviendo, p. ``'AnEnum." +#~ "MEMBER'`` para una enumeración ``AnEnum(str, Enum)`` en lugar de solo " +#~ "``'MEMBER'``." + +#~ msgid "``x+x; x*x; x-x;``" +#~ msgstr "``x+x; x*x; x-x;``" + +#~ msgid "[1]_" +#~ msgstr "[1]_" + +#~ msgid "[2]_" +#~ msgstr "[2]_" + +#~ msgid ":meth:`importlib.abc.Loadermodule_repr`" +#~ msgstr ":meth:`importlib.abc.Loadermodule_repr`" + +#~ msgid "" +#~ "Support for `floating point Not-a-Number (NaN) `_, as the :c:macro:`!Py_NO_NAN` macro has been " +#~ "removed. (Contributed by Victor Stinner in :issue:`46656`.)" +#~ msgstr "" +#~ "Compatibilidad con `floating point Not-a-Number (NaN) `_, ya que se eliminó la macro :c:" +#~ "macro:`!Py_NO_NAN`. (Aportado por Victor Stinner en :issue:`46656`.)" + +#~ msgid "" +#~ "A `C99 `_ ```` header file " +#~ "providing the :c:func:`!copysign`, :c:func:`!hypot`, :c:func:`!" +#~ "isfinite`, :c:func:`!isinf`, :c:func:`!isnan`, and :c:func:`!round` " +#~ "functions (contributed by Victor Stinner in :issue:`45440`); and a :c:" +#~ "data:`!NAN` constant or the :c:func:`!__builtin_nan` function " +#~ "(Contributed by Victor Stinner in :issue:`46640`)." +#~ msgstr "" +#~ "Un archivo de encabezado `C99 `_ " +#~ "```` que proporciona las funciones :c:func:`!copysign`, :c:func:`!" +#~ "hypot`, :c:func:`!isfinite`, :c:func:`!isinf`, :c:func:`!isnan` y :c:func:" +#~ "`!round` (aportado por Victor Stinner en :issue:`45440`); y una " +#~ "constante :c:data:`!NAN` o la función :c:func:`!__builtin_nan` (Aportado " +#~ "por Victor Stinner en :issue:`46640`)." diff --git a/whatsnew/3.12.po b/whatsnew/3.12.po new file mode 100644 index 0000000000..3ad8c47393 --- /dev/null +++ b/whatsnew/3.12.po @@ -0,0 +1,3958 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001-2023, Python Software Foundation +# This file is distributed under the same license as the Python en Español +# package. +# FIRST AUTHOR , 2023. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python en Español 3.12\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language: es\n" +"Language-Team: es \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.13.0\n" + +#: ../Doc/whatsnew/3.12.rst:4 +msgid "What's New In Python 3.12" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst +msgid "Editor" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:6 +msgid "Adam Turner" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:48 +msgid "" +"This article explains the new features in Python 3.12, compared to 3.11. " +"Python 3.12 was released on October 2, 2023. For full details, see the :ref:" +"`changelog `." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:54 +msgid ":pep:`693` -- Python 3.12 Release Schedule" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:57 +msgid "Summary -- Release highlights" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:62 +msgid "" +"Python 3.12 is the latest stable release of the Python programming language, " +"with a mix of changes to the language and the standard library. The library " +"changes focus on cleaning up deprecated APIs, usability, and correctness. Of " +"note, the :mod:`!distutils` package has been removed from the standard " +"library. Filesystem support in :mod:`os` and :mod:`pathlib` has seen a " +"number of improvements, and several modules have better performance." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:69 +msgid "" +"The language changes focus on usability, as :term:`f-strings ` " +"have had many limitations removed and 'Did you mean ...' suggestions " +"continue to improve. The new :ref:`type parameter syntax ` and :keyword:`type` statement improve ergonomics for using :term:" +"`generic types ` and :term:`type aliases ` with " +"static type checkers." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:76 +msgid "" +"This article doesn't attempt to provide a complete specification of all new " +"features, but instead gives a convenient overview. For full details, you " +"should refer to the documentation, such as the :ref:`Library Reference " +"` and :ref:`Language Reference `. If you " +"want to understand the complete implementation and design rationale for a " +"change, refer to the PEP for a particular new feature; but note that PEPs " +"usually are not kept up-to-date once a feature has been fully implemented." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:90 +msgid "New syntax features:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:92 +msgid "" +":ref:`PEP 695 `, type parameter syntax and the :keyword:" +"`type` statement" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:94 +msgid "New grammar features:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:96 +msgid "" +":ref:`PEP 701 `, :term:`f-strings ` in the " +"grammar" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:98 +msgid "Interpreter improvements:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:100 +msgid "" +":ref:`PEP 684 `, a unique per-interpreter :term:`GIL " +"`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:102 +msgid ":ref:`PEP 669 `, low impact monitoring" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:103 +msgid "" +"`Improved 'Did you mean ...' suggestions `_ for :" +"exc:`NameError`, :exc:`ImportError`, and :exc:`SyntaxError` exceptions" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:106 +msgid "Python data model improvements:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:108 +msgid "" +":ref:`PEP 688 `, using the :ref:`buffer protocol " +"` from Python" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:111 +msgid "Significant improvements in the standard library:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:113 +msgid "The :class:`pathlib.Path` class now supports subclassing" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:114 +msgid "The :mod:`os` module received several improvements for Windows support" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:115 +msgid "" +"A :ref:`command-line interface ` has been added to the :mod:" +"`sqlite3` module" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:117 +msgid "" +":func:`isinstance` checks against :func:`runtime-checkable protocols ` enjoy a speed up of between two and 20 times" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:119 +#, python-format +msgid "" +"The :mod:`asyncio` package has had a number of performance improvements, " +"with some benchmarks showing a 75% speed up." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:121 +msgid "" +"A :ref:`command-line interface ` has been added to the :mod:`uuid` " +"module" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:123 +#, python-format +msgid "" +"Due to the changes in :ref:`PEP 701 `, producing tokens " +"via the :mod:`tokenize` module is up to up to 64% faster." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:126 +msgid "Security improvements:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:128 +msgid "" +"Replace the builtin :mod:`hashlib` implementations of SHA1, SHA3, SHA2-384, " +"SHA2-512, and MD5 with formally verified code from the `HACL* `__ project. These builtin implementations " +"remain as fallbacks that are only used when OpenSSL does not provide them." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:134 +msgid "C API improvements:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:136 +msgid ":ref:`PEP 697 `, unstable C API tier" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:137 +msgid ":ref:`PEP 683 `, immortal objects" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:139 +msgid "CPython implementation improvements:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:141 +msgid ":ref:`PEP 709 `, comprehension inlining" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:142 +msgid ":ref:`CPython support ` for the Linux ``perf`` profiler" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:143 +msgid "Implement stack overflow protection on supported platforms" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:145 +msgid "New typing features:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:147 +msgid "" +":ref:`PEP 692 `, using :class:`~typing.TypedDict` to " +"annotate :term:`**kwargs `" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:149 +msgid ":ref:`PEP 698 `, :func:`typing.override` decorator" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:151 +msgid "Important deprecations, removals or restrictions:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:153 +msgid "" +":pep:`623`: Remove ``wstr`` from Unicode objects in Python's C API, reducing " +"the size of every :class:`str` object by at least 8 bytes." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:156 +msgid "" +":pep:`632`: Remove the :mod:`!distutils` package. See `the migration guide " +"`_ for advice replacing " +"the APIs it provided. The third-party `Setuptools `__ package continues to " +"provide :mod:`!distutils`, if you still require it in Python 3.12 and beyond." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:163 +msgid "" +":gh:`95299`: Do not pre-install ``setuptools`` in virtual environments " +"created with :mod:`venv`. This means that ``distutils``, ``setuptools``, " +"``pkg_resources``, and ``easy_install`` will no longer available by default; " +"to access these run ``pip install setuptools`` in the :ref:`activated ` virtual environment." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:170 +msgid "" +"The :mod:`!asynchat`, :mod:`!asyncore`, and :mod:`!imp` modules have been " +"removed, along with several :class:`unittest.TestCase` `method aliases " +"`_." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:176 ../Doc/whatsnew/3.12.rst:1917 +msgid "New Features" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:181 +msgid "PEP 695: Type Parameter Syntax" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:183 +msgid "" +"Generic classes and functions under :pep:`484` were declared using a verbose " +"syntax that left the scope of type parameters unclear and required explicit " +"declarations of variance." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:187 +msgid "" +":pep:`695` introduces a new, more compact and explicit way to create :ref:" +"`generic classes ` and :ref:`functions `::" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:200 +msgid "" +"In addition, the PEP introduces a new way to declare :ref:`type aliases " +"` using the :keyword:`type` statement, which creates an " +"instance of :class:`~typing.TypeAliasType`::" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:206 +msgid "Type aliases can also be :ref:`generic `::" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:210 +msgid "" +"The new syntax allows declaring :class:`~typing.TypeVarTuple` and :class:" +"`~typing.ParamSpec` parameters, as well as :class:`~typing.TypeVar` " +"parameters with bounds or constraints::" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:219 +msgid "" +"The value of type aliases and the bound and constraints of type variables " +"created through this syntax are evaluated only on demand (see :ref:`lazy " +"evaluation `). This means type aliases are able to refer to " +"other types defined later in the file." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:224 +msgid "" +"Type parameters declared through a type parameter list are visible within " +"the scope of the declaration and any nested scopes, but not in the outer " +"scope. For example, they can be used in the type annotations for the methods " +"of a generic class or in the class body. However, they cannot be used in the " +"module scope after the class is defined. See :ref:`type-params` for a " +"detailed description of the runtime semantics of type parameters." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:231 +msgid "" +"In order to support these scoping semantics, a new kind of scope is " +"introduced, the :ref:`annotation scope `. Annotation " +"scopes behave for the most part like function scopes, but interact " +"differently with enclosing class scopes. In Python 3.13, :term:`annotations " +"` will also be evaluated in annotation scopes." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:237 +msgid "See :pep:`695` for more details." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:239 +msgid "" +"(PEP written by Eric Traut. Implementation by Jelle Zijlstra, Eric Traut, " +"and others in :gh:`103764`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:245 +msgid "PEP 701: Syntactic formalization of f-strings" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:247 +msgid "" +":pep:`701` lifts some restrictions on the usage of :term:`f-strings `. Expression components inside f-strings can now be any valid Python " +"expression, including strings reusing the same quote as the containing f-" +"string, multi-line expressions, comments, backslashes, and unicode escape " +"sequences. Let's cover these in detail:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:253 +msgid "" +"Quote reuse: in Python 3.11, reusing the same quotes as the enclosing f-" +"string raises a :exc:`SyntaxError`, forcing the user to either use other " +"available quotes (like using double quotes or triple quotes if the f-string " +"uses single quotes). In Python 3.12, you can now do things like this:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:262 +msgid "" +"Note that before this change there was no explicit limit in how f-strings " +"can be nested, but the fact that string quotes cannot be reused inside the " +"expression component of f-strings made it impossible to nest f-strings " +"arbitrarily. In fact, this is the most nested f-string that could be written:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:270 +msgid "" +"As now f-strings can contain any valid Python expression inside expression " +"components, it is now possible to nest f-strings arbitrarily:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:276 +msgid "" +"Multi-line expressions and comments: In Python 3.11, f-string expressions " +"must be defined in a single line, even if the expression within the f-string " +"could normally span multiple lines (like literal lists being defined over " +"multiple lines), making them harder to read. In Python 3.12 you can now " +"define f-strings spanning multiple lines, and add inline comments:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:290 +msgid "" +"Backslashes and unicode characters: before Python 3.12 f-string expressions " +"couldn't contain any ``\\`` character. This also affected unicode :ref:" +"`escape sequences ` (such as ``\\N{snowman}``) as these " +"contain the ``\\N`` part that previously could not be part of expression " +"components of f-strings. Now, you can define expressions like this:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:303 +msgid "See :pep:`701` for more details." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:305 +msgid "" +"As a positive side-effect of how this feature has been implemented (by " +"parsing f-strings with :pep:`the PEG parser <617>`, now error messages for f-" +"strings are more precise and include the exact location of the error. For " +"example, in Python 3.11, the following f-string raises a :exc:`SyntaxError`:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:318 +msgid "" +"but the error message doesn't include the exact location of the error within " +"the line and also has the expression artificially surrounded by parentheses. " +"In Python 3.12, as f-strings are parsed with the PEG parser, error messages " +"can be more precise and show the entire line:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:330 +msgid "" +"(Contributed by Pablo Galindo, Batuhan Taskaya, Lysandros Nikolaou, Cristián " +"Maureira-Fredes and Marta Gómez in :gh:`102856`. PEP written by Pablo " +"Galindo, Batuhan Taskaya, Lysandros Nikolaou and Marta Gómez)." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:337 +msgid "PEP 684: A Per-Interpreter GIL" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:339 +msgid "" +":pep:`684` introduces a per-interpreter :term:`GIL `, so that sub-interpreters may now be created with a unique GIL per " +"interpreter. This allows Python programs to take full advantage of multiple " +"CPU cores. This is currently only available through the C-API, though a " +"Python API is :pep:`anticipated for 3.13 <554>`." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:345 +msgid "" +"Use the new :c:func:`Py_NewInterpreterFromConfig` function to create an " +"interpreter with its own GIL::" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:359 +msgid "" +"For further examples how to use the C-API for sub-interpreters with a per-" +"interpreter GIL, see :source:`Modules/_xxsubinterpretersmodule.c`." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:362 +msgid "(Contributed by Eric Snow in :gh:`104210`, etc.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:367 +msgid "PEP 669: Low impact monitoring for CPython" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:369 +msgid "" +":pep:`669` defines a new :mod:`API ` for profilers, " +"debuggers, and other tools to monitor events in CPython. It covers a wide " +"range of events, including calls, returns, lines, exceptions, jumps, and " +"more. This means that you only pay for what you use, providing support for " +"near-zero overhead debuggers and coverage tools. See :mod:`sys.monitoring` " +"for details." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:377 +msgid "(Contributed by Mark Shannon in :gh:`103082`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:382 +msgid "PEP 688: Making the buffer protocol accessible in Python" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:384 +msgid "" +":pep:`688` introduces a way to use the :ref:`buffer protocol " +"` from Python code. Classes that implement the :meth:`~object." +"__buffer__` method are now usable as buffer types." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:388 +msgid "" +"The new :class:`collections.abc.Buffer` ABC provides a standard way to " +"represent buffer objects, for example in type annotations. The new :class:" +"`inspect.BufferFlags` enum represents the flags that can be used to " +"customize buffer creation. (Contributed by Jelle Zijlstra in :gh:`102500`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:397 +msgid "PEP 709: Comprehension inlining" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:399 +msgid "" +"Dictionary, list, and set comprehensions are now inlined, rather than " +"creating a new single-use function object for each execution of the " +"comprehension. This speeds up execution of a comprehension by up to two " +"times. See :pep:`709` for further details." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:404 +msgid "" +"Comprehension iteration variables remain isolated and don't overwrite a " +"variable of the same name in the outer scope, nor are they visible after the " +"comprehension. Inlining does result in a few visible behavior changes:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:408 +msgid "" +"There is no longer a separate frame for the comprehension in tracebacks, and " +"tracing/profiling no longer shows the comprehension as a function call." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:410 +msgid "" +"The :mod:`symtable` module will no longer produce child symbol tables for " +"each comprehension; instead, the comprehension's locals will be included in " +"the parent function's symbol table." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:413 +msgid "" +"Calling :func:`locals` inside a comprehension now includes variables from " +"outside the comprehension, and no longer includes the synthetic ``.0`` " +"variable for the comprehension \"argument\"." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:416 +msgid "" +"A comprehension iterating directly over ``locals()`` (e.g. ``[k for k in " +"locals()]``) may see \"RuntimeError: dictionary changed size during " +"iteration\" when run under tracing (e.g. code coverage measurement). This is " +"the same behavior already seen in e.g. ``for k in locals():``. To avoid the " +"error, first create a list of keys to iterate over: ``keys = list(locals()); " +"[k for k in keys]``." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:423 +msgid "(Contributed by Carl Meyer and Vladimir Matveev in :pep:`709`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:426 +msgid "Improved Error Messages" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:428 +msgid "" +"Modules from the standard library are now potentially suggested as part of " +"the error messages displayed by the interpreter when a :exc:`NameError` is " +"raised to the top level. (Contributed by Pablo Galindo in :gh:`98254`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:437 +msgid "" +"Improve the error suggestion for :exc:`NameError` exceptions for instances. " +"Now if a :exc:`NameError` is raised in a method and the instance has an " +"attribute that's exactly equal to the name in the exception, the suggestion " +"will include ``self.`` instead of the closest match in the method " +"scope. (Contributed by Pablo Galindo in :gh:`99139`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:457 +msgid "" +"Improve the :exc:`SyntaxError` error message when the user types ``import x " +"from y`` instead of ``from y import x``. (Contributed by Pablo Galindo in :" +"gh:`98931`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:467 +msgid "" +":exc:`ImportError` exceptions raised from failed ``from import " +"`` statements now include suggestions for the value of ```` " +"based on the available names in ````. (Contributed by Pablo Galindo " +"in :gh:`91058`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:478 +msgid "New Features Related to Type Hints" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:480 +msgid "" +"This section covers major changes affecting :pep:`type hints <484>` and the :" +"mod:`typing` module." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:486 +msgid "PEP 692: Using ``TypedDict`` for more precise ``**kwargs`` typing" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:488 +msgid "" +"Typing ``**kwargs`` in a function signature as introduced by :pep:`484` " +"allowed for valid annotations only in cases where all of the ``**kwargs`` " +"were of the same type." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:492 +msgid "" +":pep:`692` specifies a more precise way of typing ``**kwargs`` by relying on " +"typed dictionaries::" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:503 +msgid "See :pep:`692` for more details." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:505 +msgid "(Contributed by Franek Magiera in :gh:`103629`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:510 +msgid "PEP 698: Override Decorator for Static Typing" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:512 +msgid "" +"A new decorator :func:`typing.override` has been added to the :mod:`typing` " +"module. It indicates to type checkers that the method is intended to " +"override a method in a superclass. This allows type checkers to catch " +"mistakes where a method that is intended to override something in a base " +"class does not in fact do so." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:518 +msgid "Example::" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:536 +msgid "See :pep:`698` for more details." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:538 +msgid "(Contributed by Steven Troxler in :gh:`101561`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:541 +msgid "Other Language Changes" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:543 +msgid "" +"The parser now raises :exc:`SyntaxError` when parsing source code containing " +"null bytes. (Contributed by Pablo Galindo in :gh:`96670`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:546 +msgid "" +"A backslash-character pair that is not a valid escape sequence now generates " +"a :exc:`SyntaxWarning`, instead of :exc:`DeprecationWarning`. For example, " +"``re.compile(\"\\d+\\.\\d+\")`` now emits a :exc:`SyntaxWarning` " +"(``\"\\d\"`` is an invalid escape sequence, use raw strings for regular " +"expression: ``re.compile(r\"\\d+\\.\\d+\")``). In a future Python version, :" +"exc:`SyntaxError` will eventually be raised, instead of :exc:" +"`SyntaxWarning`. (Contributed by Victor Stinner in :gh:`98401`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:555 +msgid "" +"Octal escapes with value larger than ``0o377`` (ex: ``\"\\477\"``), " +"deprecated in Python 3.11, now produce a :exc:`SyntaxWarning`, instead of :" +"exc:`DeprecationWarning`. In a future Python version they will be eventually " +"a :exc:`SyntaxError`. (Contributed by Victor Stinner in :gh:`98401`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:561 +msgid "" +"Variables used in the target part of comprehensions that are not stored to " +"can now be used in assignment expressions (``:=``). For example, in ``[(b := " +"1) for a, b.prop in some_iter]``, the assignment to ``b`` is now allowed. " +"Note that assigning to variables stored to in the target part of " +"comprehensions (like ``a``) is still disallowed, as per :pep:`572`. " +"(Contributed by Nikita Sobolev in :gh:`100581`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:568 +msgid "" +"Exceptions raised in a class or type's ``__set_name__`` method are no longer " +"wrapped by a :exc:`RuntimeError`. Context information is added to the " +"exception as a :pep:`678` note. (Contributed by Irit Katriel in :gh:`77757`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:572 +msgid "" +"When a ``try-except*`` construct handles the entire :exc:`ExceptionGroup` " +"and raises one other exception, that exception is no longer wrapped in an :" +"exc:`ExceptionGroup`. Also changed in version 3.11.4. (Contributed by Irit " +"Katriel in :gh:`103590`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:577 +msgid "" +"The Garbage Collector now runs only on the eval breaker mechanism of the " +"Python bytecode evaluation loop instead of object allocations. The GC can " +"also run when :c:func:`PyErr_CheckSignals` is called so C extensions that " +"need to run for a long time without executing any Python code also have a " +"chance to execute the GC periodically. (Contributed by Pablo Galindo in :gh:" +"`97922`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:584 +msgid "" +"All builtin and extension callables expecting boolean parameters now accept " +"arguments of any type instead of just :class:`bool` and :class:`int`. " +"(Contributed by Serhiy Storchaka in :gh:`60203`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:588 +msgid "" +":class:`memoryview` now supports the half-float type (the \"e\" format " +"code). (Contributed by Donghee Na and Antoine Pitrou in :gh:`90751`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:591 +msgid "" +":class:`slice` objects are now hashable, allowing them to be used as dict " +"keys and set items. (Contributed by Will Bradshaw, Furkan Onder, and Raymond " +"Hettinger in :gh:`101264`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:594 +msgid "" +":func:`sum` now uses Neumaier summation to improve accuracy and " +"commutativity when summing floats or mixed ints and floats. (Contributed by " +"Raymond Hettinger in :gh:`100425`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:598 +msgid "" +":func:`ast.parse` now raises :exc:`SyntaxError` instead of :exc:`ValueError` " +"when parsing source code containing null bytes. (Contributed by Pablo " +"Galindo in :gh:`96670`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:602 +msgid "" +"The extraction methods in :mod:`tarfile`, and :func:`shutil.unpack_archive`, " +"have a new a *filter* argument that allows limiting tar features than may be " +"surprising or dangerous, such as creating files outside the destination " +"directory. See :ref:`tarfile extraction filters ` " +"for details. In Python 3.14, the default will switch to ``'data'``. " +"(Contributed by Petr Viktorin in :pep:`706`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:610 +msgid "" +":class:`types.MappingProxyType` instances are now hashable if the underlying " +"mapping is hashable. (Contributed by Serhiy Storchaka in :gh:`87995`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:614 +msgid "" +"Add :ref:`support for the perf profiler ` through the new " +"environment variable :envvar:`PYTHONPERFSUPPORT` and command-line option :" +"option:`-X perf <-X>`, as well as the new :func:`sys." +"activate_stack_trampoline`, :func:`sys.deactivate_stack_trampoline`, and :" +"func:`sys.is_stack_trampoline_active` functions. (Design by Pablo Galindo. " +"Contributed by Pablo Galindo and Christian Heimes with contributions from " +"Gregory P. Smith [Google] and Mark Shannon in :gh:`96123`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:626 +msgid "New Modules" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:628 +msgid "None." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:632 +msgid "Improved Modules" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:635 +msgid "array" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:637 +msgid "" +"The :class:`array.array` class now supports subscripting, making it a :term:" +"`generic type`. (Contributed by Jelle Zijlstra in :gh:`98658`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:641 +msgid "asyncio" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:643 +msgid "" +"The performance of writing to sockets in :mod:`asyncio` has been " +"significantly improved. ``asyncio`` now avoids unnecessary copying when " +"writing to sockets and uses :meth:`~socket.socket.sendmsg` if the platform " +"supports it. (Contributed by Kumar Aditya in :gh:`91166`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:648 +msgid "" +"Add :func:`asyncio.eager_task_factory` and :func:`asyncio." +"create_eager_task_factory` functions to allow opting an event loop in to " +"eager task execution, making some use-cases 2x to 5x faster. (Contributed by " +"Jacob Bower & Itamar Oren in :gh:`102853`, :gh:`104140`, and :gh:`104138`)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:653 +msgid "" +"On Linux, :mod:`asyncio` uses :class:`asyncio.PidfdChildWatcher` by default " +"if :func:`os.pidfd_open` is available and functional instead of :class:" +"`asyncio.ThreadedChildWatcher`. (Contributed by Kumar Aditya in :gh:`98024`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:658 +msgid "" +"The event loop now uses the best available child watcher for each platform (:" +"class:`asyncio.PidfdChildWatcher` if supported and :class:`asyncio." +"ThreadedChildWatcher` otherwise), so manually configuring a child watcher is " +"not recommended. (Contributed by Kumar Aditya in :gh:`94597`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:664 +msgid "" +"Add *loop_factory* parameter to :func:`asyncio.run` to allow specifying a " +"custom event loop factory. (Contributed by Kumar Aditya in :gh:`99388`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:668 +msgid "" +"Add C implementation of :func:`asyncio.current_task` for 4x-6x speedup. " +"(Contributed by Itamar Oren and Pranav Thulasiram Bhat in :gh:`100344`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:671 +msgid "" +":func:`asyncio.iscoroutine` now returns ``False`` for generators as :mod:" +"`asyncio` does not support legacy generator-based coroutines. (Contributed " +"by Kumar Aditya in :gh:`102748`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:675 +msgid "" +":func:`asyncio.wait` and :func:`asyncio.as_completed` now accepts generators " +"yielding tasks. (Contributed by Kumar Aditya in :gh:`78530`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:680 +msgid "calendar" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:682 +msgid "" +"Add enums :data:`calendar.Month` and :data:`calendar.Day` defining months of " +"the year and days of the week. (Contributed by Prince Roshan in :gh:" +"`103636`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:687 +msgid "csv" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:689 +msgid "" +"Add :const:`csv.QUOTE_NOTNULL` and :const:`csv.QUOTE_STRINGS` flags to " +"provide finer grained control of ``None`` and empty strings by :class:`csv." +"writer` objects." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:694 +msgid "dis" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:696 +msgid "" +"Pseudo instruction opcodes (which are used by the compiler but do not appear " +"in executable bytecode) are now exposed in the :mod:`dis` module. :opcode:" +"`HAVE_ARGUMENT` is still relevant to real opcodes, but it is not useful for " +"pseudo instructions. Use the new :data:`dis.hasarg` collection instead. " +"(Contributed by Irit Katriel in :gh:`94216`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:704 +msgid "" +"Add the :data:`dis.hasexc` collection to signify instructions that set an " +"exception handler. (Contributed by Irit Katriel in :gh:`94216`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:708 +msgid "fractions" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:710 +msgid "" +"Objects of type :class:`fractions.Fraction` now support float-style " +"formatting. (Contributed by Mark Dickinson in :gh:`100161`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:714 +msgid "importlib.resources" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:716 +msgid "" +":func:`importlib.resources.as_file` now supports resource directories. " +"(Contributed by Jason R. Coombs in :gh:`97930`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:720 +msgid "inspect" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:722 +msgid "" +"Add :func:`inspect.markcoroutinefunction` to mark sync functions that return " +"a :term:`coroutine` for use with :func:`inspect.iscoroutinefunction`. " +"(Contributed Carlton Gibson in :gh:`99247`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:726 +msgid "" +"Add :func:`inspect.getasyncgenstate` and :func:`inspect.getasyncgenlocals` " +"for determining the current state of asynchronous generators. (Contributed " +"by Thomas Krennwallner in :gh:`79940`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:730 +msgid "" +"The performance of :func:`inspect.getattr_static` has been considerably " +"improved. Most calls to the function should be at least 2x faster than they " +"were in Python 3.11, and some may be 6x faster or more. (Contributed by Alex " +"Waygood in :gh:`103193`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:736 +msgid "itertools" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:738 +msgid "" +"Add :class:`itertools.batched()` for collecting into even-sized tuples where " +"the last batch may be shorter than the rest. (Contributed by Raymond " +"Hettinger in :gh:`98363`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:743 +msgid "math" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:745 +msgid "" +"Add :func:`math.sumprod` for computing a sum of products. (Contributed by " +"Raymond Hettinger in :gh:`100485`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:748 +msgid "" +"Extend :func:`math.nextafter` to include a *steps* argument for moving up or " +"down multiple steps at a time. (By Matthias Goergens, Mark Dickinson, and " +"Raymond Hettinger in :gh:`94906`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:753 +msgid "os" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:755 +msgid "" +"Add :const:`os.PIDFD_NONBLOCK` to open a file descriptor for a process with :" +"func:`os.pidfd_open` in non-blocking mode. (Contributed by Kumar Aditya in :" +"gh:`93312`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:759 +msgid "" +":class:`os.DirEntry` now includes an :meth:`os.DirEntry.is_junction` method " +"to check if the entry is a junction. (Contributed by Charles Machalow in :gh:" +"`99547`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:763 +msgid "" +"Add :func:`os.listdrives`, :func:`os.listvolumes` and :func:`os.listmounts` " +"functions on Windows for enumerating drives, volumes and mount points. " +"(Contributed by Steve Dower in :gh:`102519`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:767 +msgid "" +":func:`os.stat` and :func:`os.lstat` are now more accurate on Windows. The " +"``st_birthtime`` field will now be filled with the creation time of the " +"file, and ``st_ctime`` is deprecated but still contains the creation time " +"(but in the future will return the last metadata change, for consistency " +"with other platforms). ``st_dev`` may be up to 64 bits and ``st_ino`` up to " +"128 bits depending on your file system, and ``st_rdev`` is always set to " +"zero rather than incorrect values. Both functions may be significantly " +"faster on newer releases of Windows. (Contributed by Steve Dower in :gh:" +"`99726`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:778 +msgid "os.path" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:780 +msgid "" +"Add :func:`os.path.isjunction` to check if a given path is a junction. " +"(Contributed by Charles Machalow in :gh:`99547`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:783 +msgid "" +"Add :func:`os.path.splitroot` to split a path into a triad ``(drive, root, " +"tail)``. (Contributed by Barney Gale in :gh:`101000`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:787 +msgid "pathlib" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:789 +msgid "" +"Add support for subclassing :class:`pathlib.PurePath` and :class:`pathlib." +"Path`, plus their Posix- and Windows-specific variants. Subclasses may " +"override the :meth:`pathlib.PurePath.with_segments` method to pass " +"information between path instances." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:794 +msgid "" +"Add :meth:`pathlib.Path.walk` for walking the directory trees and generating " +"all file or directory names within them, similar to :func:`os.walk`. " +"(Contributed by Stanislav Zmiev in :gh:`90385`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:798 +msgid "" +"Add *walk_up* optional parameter to :meth:`pathlib.PurePath.relative_to` to " +"allow the insertion of ``..`` entries in the result; this behavior is more " +"consistent with :func:`os.path.relpath`. (Contributed by Domenico Ragusa in :" +"gh:`84538`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:803 +msgid "" +"Add :meth:`pathlib.Path.is_junction` as a proxy to :func:`os.path." +"isjunction`. (Contributed by Charles Machalow in :gh:`99547`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:806 +msgid "" +"Add *case_sensitive* optional parameter to :meth:`pathlib.Path.glob`, :meth:" +"`pathlib.Path.rglob` and :meth:`pathlib.PurePath.match` for matching the " +"path's case sensitivity, allowing for more precise control over the matching " +"process." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:811 +msgid "pdb" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:813 +msgid "" +"Add convenience variables to hold values temporarily for debug session and " +"provide quick access to values like the current frame or the return value. " +"(Contributed by Tian Gao in :gh:`103693`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:819 +msgid "random" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:821 +msgid "" +"Add :func:`random.binomialvariate`. (Contributed by Raymond Hettinger in :gh:" +"`81620`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:824 +msgid "" +"Add a default of ``lambd=1.0`` to :func:`random.expovariate`. (Contributed " +"by Raymond Hettinger in :gh:`100234`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:828 +msgid "shutil" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:830 +msgid "" +":func:`shutil.make_archive` now passes the *root_dir* argument to custom " +"archivers which support it. In this case it no longer temporarily changes " +"the current working directory of the process to *root_dir* to perform " +"archiving. (Contributed by Serhiy Storchaka in :gh:`74696`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:836 +msgid "" +":func:`shutil.rmtree` now accepts a new argument *onexc* which is an error " +"handler like *onerror* but which expects an exception instance rather than a " +"*(typ, val, tb)* triplet. *onerror* is deprecated and will be removed in " +"Python 3.14. (Contributed by Irit Katriel in :gh:`102828`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:842 +msgid "" +":func:`shutil.which` now consults the *PATHEXT* environment variable to find " +"matches within *PATH* on Windows even when the given *cmd* includes a " +"directory component. (Contributed by Charles Machalow in :gh:`103179`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:847 +msgid "" +":func:`shutil.which` will call ``NeedCurrentDirectoryForExePathW`` when " +"querying for executables on Windows to determine if the current working " +"directory should be prepended to the search path. (Contributed by Charles " +"Machalow in :gh:`103179`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:852 +msgid "" +":func:`shutil.which` will return a path matching the *cmd* with a component " +"from ``PATHEXT`` prior to a direct match elsewhere in the search path on " +"Windows. (Contributed by Charles Machalow in :gh:`103179`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:858 ../Doc/whatsnew/3.12.rst:1637 +msgid "sqlite3" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:860 +msgid "" +"Add a :ref:`command-line interface `. (Contributed by Erlend E. " +"Aasland in :gh:`77617`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:863 +msgid "" +"Add the :attr:`sqlite3.Connection.autocommit` attribute to :class:`sqlite3." +"Connection` and the *autocommit* parameter to :func:`sqlite3.connect` to " +"control :pep:`249`-compliant :ref:`transaction handling `. (Contributed by Erlend E. Aasland in :gh:`83638`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:870 +msgid "" +"Add *entrypoint* keyword-only parameter to :meth:`sqlite3.Connection." +"load_extension`, for overriding the SQLite extension entry point. " +"(Contributed by Erlend E. Aasland in :gh:`103015`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:875 +msgid "" +"Add :meth:`sqlite3.Connection.getconfig` and :meth:`sqlite3.Connection." +"setconfig` to :class:`sqlite3.Connection` to make configuration changes to a " +"database connection. (Contributed by Erlend E. Aasland in :gh:`103489`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:881 +msgid "statistics" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:883 +msgid "" +"Extend :func:`statistics.correlation` to include as a ``ranked`` method for " +"computing the Spearman correlation of ranked data. (Contributed by Raymond " +"Hettinger in :gh:`95861`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:888 +msgid "sys" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:890 +msgid "" +"Add the :mod:`sys.monitoring` namespace to expose the new :ref:`PEP 669 " +"` monitoring API. (Contributed by Mark Shannon in :gh:" +"`103082`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:894 +msgid "" +"Add :func:`sys.activate_stack_trampoline` and :func:`sys." +"deactivate_stack_trampoline` for activating and deactivating stack profiler " +"trampolines, and :func:`sys.is_stack_trampoline_active` for querying if " +"stack profiler trampolines are active. (Contributed by Pablo Galindo and " +"Christian Heimes with contributions from Gregory P. Smith [Google] and Mark " +"Shannon in :gh:`96123`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:903 +msgid "" +"Add :data:`sys.last_exc` which holds the last unhandled exception that was " +"raised (for post-mortem debugging use cases). Deprecate the three fields " +"that have the same information in its legacy form: :data:`sys.last_type`, :" +"data:`sys.last_value` and :data:`sys.last_traceback`. (Contributed by Irit " +"Katriel in :gh:`102778`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:909 ../Doc/whatsnew/3.12.rst:1825 +msgid "" +":func:`sys._current_exceptions` now returns a mapping from thread-id to an " +"exception instance, rather than to a ``(typ, exc, tb)`` tuple. (Contributed " +"by Irit Katriel in :gh:`103176`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:913 +msgid "" +":func:`sys.setrecursionlimit` and :func:`sys.getrecursionlimit`. The " +"recursion limit now applies only to Python code. Builtin functions do not " +"use the recursion limit, but are protected by a different mechanism that " +"prevents recursion from causing a virtual machine crash." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:919 +msgid "tempfile" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:921 +msgid "" +"The :class:`tempfile.NamedTemporaryFile` function has a new optional " +"parameter *delete_on_close* (Contributed by Evgeny Zorin in :gh:`58451`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:923 +msgid "" +":func:`tempfile.mkdtemp` now always returns an absolute path, even if the " +"argument provided to the *dir* parameter is a relative path." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:929 +msgid "threading" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:931 +msgid "" +"Add :func:`threading.settrace_all_threads` and :func:`threading." +"setprofile_all_threads` that allow to set tracing and profiling functions in " +"all running threads in addition to the calling one. (Contributed by Pablo " +"Galindo in :gh:`93503`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:937 +msgid "tkinter" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:939 +msgid "" +"``tkinter.Canvas.coords()`` now flattens its arguments. It now accepts not " +"only coordinates as separate arguments (``x1, y1, x2, y2, ...``) and a " +"sequence of coordinates (``[x1, y1, x2, y2, ...]``), but also coordinates " +"grouped in pairs (``(x1, y1), (x2, y2), ...`` and ``[(x1, y1), (x2, " +"y2), ...]``), like ``create_*()`` methods. (Contributed by Serhiy Storchaka " +"in :gh:`94473`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:948 +msgid "tokenize" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:950 +msgid "" +"The :mod:`tokenize` module includes the changes introduced in :pep:`701`. " +"(Contributed by Marta Gómez Macías and Pablo Galindo in :gh:`102856`.) See :" +"ref:`whatsnew312-porting-to-python312` for more information on the changes " +"to the :mod:`tokenize` module." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:956 +msgid "types" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:958 +msgid "" +"Add :func:`types.get_original_bases` to allow for further introspection of :" +"ref:`user-defined-generics` when subclassed. (Contributed by James Hilton-" +"Balfe and Alex Waygood in :gh:`101827`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:963 +msgid "typing" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:965 +msgid "" +":func:`isinstance` checks against :func:`runtime-checkable protocols ` now use :func:`inspect.getattr_static` rather than :func:" +"`hasattr` to lookup whether attributes exist. This means that descriptors " +"and :meth:`~object.__getattr__` methods are no longer unexpectedly evaluated " +"during ``isinstance()`` checks against runtime-checkable protocols. However, " +"it may also mean that some objects which used to be considered instances of " +"a runtime-checkable protocol may no longer be considered instances of that " +"protocol on Python 3.12+, and vice versa. Most users are unlikely to be " +"affected by this change. (Contributed by Alex Waygood in :gh:`102433`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:976 +msgid "" +"The members of a runtime-checkable protocol are now considered \"frozen\" at " +"runtime as soon as the class has been created. Monkey-patching attributes " +"onto a runtime-checkable protocol will still work, but will have no impact " +"on :func:`isinstance` checks comparing objects to the protocol. For example::" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:998 +msgid "" +"This change was made in order to speed up ``isinstance()`` checks against " +"runtime-checkable protocols." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1001 +msgid "" +"The performance profile of :func:`isinstance` checks against :func:`runtime-" +"checkable protocols ` has changed significantly. " +"Most ``isinstance()`` checks against protocols with only a few members " +"should be at least 2x faster than in 3.11, and some may be 20x faster or " +"more. However, ``isinstance()`` checks against protocols with fourteen or " +"more members may be slower than in Python 3.11. (Contributed by Alex Waygood " +"in :gh:`74690` and :gh:`103193`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1009 +msgid "" +"All :data:`typing.TypedDict` and :data:`typing.NamedTuple` classes now have " +"the ``__orig_bases__`` attribute. (Contributed by Adrian Garcia Badaracco " +"in :gh:`103699`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1013 +msgid "" +"Add ``frozen_default`` parameter to :func:`typing.dataclass_transform`. " +"(Contributed by Erik De Bonte in :gh:`99957`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1017 +msgid "unicodedata" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1019 +msgid "" +"The Unicode database has been updated to version 15.0.0. (Contributed by " +"Benjamin Peterson in :gh:`96734`)." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1023 ../Doc/whatsnew/3.12.rst:1678 +msgid "unittest" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1025 +msgid "" +"Add a ``--durations`` command line option, showing the N slowest test cases::" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1041 +msgid "(Contributed by Giampaolo Rodola in :gh:`48330`)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1044 +msgid "uuid" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1046 +msgid "" +"Add a :ref:`command-line interface `. (Contributed by Adam Chhina " +"in :gh:`88597`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1051 +msgid "Optimizations" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1053 +msgid "" +"Remove ``wstr`` and ``wstr_length`` members from Unicode objects. It reduces " +"object size by 8 or 16 bytes on 64bit platform. (:pep:`623`) (Contributed by " +"Inada Naoki in :gh:`92536`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1057 +msgid "" +"Add experimental support for using the BOLT binary optimizer in the build " +"process, which improves performance by 1-5%. (Contributed by Kevin " +"Modzelewski in :gh:`90536` and tuned by Donghee Na in :gh:`101525`)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1061 +msgid "" +"Speed up the regular expression substitution (functions :func:`re.sub` and :" +"func:`re.subn` and corresponding :class:`!re.Pattern` methods) for " +"replacement strings containing group references by 2--3 times. (Contributed " +"by Serhiy Storchaka in :gh:`91524`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1066 +msgid "" +"Speed up :class:`asyncio.Task` creation by deferring expensive string " +"formatting. (Contributed by Itamar Oren in :gh:`103793`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1069 +#, python-format +msgid "" +"The :func:`tokenize.tokenize` and :func:`tokenize.generate_tokens` functions " +"are up to 64% faster as a side effect of the changes required to cover :pep:" +"`701` in the :mod:`tokenize` module. (Contributed by Marta Gómez Macías and " +"Pablo Galindo in :gh:`102856`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1074 +msgid "" +"Speed up :func:`super` method calls and attribute loads via the new :opcode:" +"`LOAD_SUPER_ATTR` instruction. (Contributed by Carl Meyer and Vladimir " +"Matveev in :gh:`103497`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1080 +msgid "CPython bytecode changes" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1082 +msgid "" +"Remove the :opcode:`!LOAD_METHOD` instruction. It has been merged into :" +"opcode:`LOAD_ATTR`. :opcode:`LOAD_ATTR` will now behave like the old :opcode:" +"`!LOAD_METHOD` instruction if the low bit of its oparg is set. (Contributed " +"by Ken Jin in :gh:`93429`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1087 +msgid "" +"Remove the :opcode:`!JUMP_IF_FALSE_OR_POP` and :opcode:`!" +"JUMP_IF_TRUE_OR_POP` instructions. (Contributed by Irit Katriel in :gh:" +"`102859`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1090 +msgid "" +"Remove the :opcode:`!PRECALL` instruction. (Contributed by Mark Shannon in :" +"gh:`92925`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1093 +msgid "" +"Add the :opcode:`BINARY_SLICE` and :opcode:`STORE_SLICE` instructions. " +"(Contributed by Mark Shannon in :gh:`94163`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1096 +msgid "" +"Add the :opcode:`CALL_INTRINSIC_1` instructions. (Contributed by Mark " +"Shannon in :gh:`99005`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1099 +msgid "" +"Add the :opcode:`CALL_INTRINSIC_2` instruction. (Contributed by Irit Katriel " +"in :gh:`101799`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1102 +msgid "" +"Add the :opcode:`CLEANUP_THROW` instruction. (Contributed by Brandt Bucher " +"in :gh:`90997`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1105 +msgid "" +"Add the :opcode:`!END_SEND` instruction. (Contributed by Mark Shannon in :gh:" +"`103082`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1108 +msgid "" +"Add the :opcode:`LOAD_FAST_AND_CLEAR` instruction as part of the " +"implementation of :pep:`709`. (Contributed by Carl Meyer in :gh:`101441`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1111 +msgid "" +"Add the :opcode:`LOAD_FAST_CHECK` instruction. (Contributed by Dennis " +"Sweeney in :gh:`93143`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1114 +msgid "" +"Add the :opcode:`LOAD_FROM_DICT_OR_DEREF`, :opcode:" +"`LOAD_FROM_DICT_OR_GLOBALS`, and :opcode:`LOAD_LOCALS` opcodes as part of " +"the implementation of :pep:`695`. Remove the :opcode:`!LOAD_CLASSDEREF` " +"opcode, which can be replaced with :opcode:`LOAD_LOCALS` plus :opcode:" +"`LOAD_FROM_DICT_OR_DEREF`. (Contributed by Jelle Zijlstra in :gh:`103764`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1120 +msgid "" +"Add the :opcode:`LOAD_SUPER_ATTR` instruction. (Contributed by Carl Meyer " +"and Vladimir Matveev in :gh:`103497`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1123 +msgid "" +"Add the :opcode:`RETURN_CONST` instruction. (Contributed by Wenyang Wang in :" +"gh:`101632`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1126 +msgid "Demos and Tools" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1128 +msgid "" +"Remove the ``Tools/demo/`` directory which contained old demo scripts. A " +"copy can be found in the `old-demos project `_. (Contributed by Victor Stinner in :gh:`97681`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1133 +msgid "" +"Remove outdated example scripts of the ``Tools/scripts/`` directory. A copy " +"can be found in the `old-demos project `_. (Contributed by Victor Stinner in :gh:`97669`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1140 ../Doc/whatsnew/3.12.rst:2219 +msgid "Deprecated" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1142 +msgid "" +":mod:`argparse`: The *type*, *choices*, and *metavar* parameters of :class:`!" +"argparse.BooleanOptionalAction` are deprecated and will be removed in 3.14. " +"(Contributed by Nikita Sobolev in :gh:`92248`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1147 +msgid "" +":mod:`ast`: The following :mod:`ast` features have been deprecated in " +"documentation since Python 3.8, now cause a :exc:`DeprecationWarning` to be " +"emitted at runtime when they are accessed or used, and will be removed in " +"Python 3.14:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1151 ../Doc/whatsnew/3.12.rst:1383 +msgid ":class:`!ast.Num`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1152 ../Doc/whatsnew/3.12.rst:1384 +msgid ":class:`!ast.Str`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1153 ../Doc/whatsnew/3.12.rst:1385 +msgid ":class:`!ast.Bytes`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1154 ../Doc/whatsnew/3.12.rst:1386 +msgid ":class:`!ast.NameConstant`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1155 ../Doc/whatsnew/3.12.rst:1387 +msgid ":class:`!ast.Ellipsis`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1157 +msgid "" +"Use :class:`ast.Constant` instead. (Contributed by Serhiy Storchaka in :gh:" +"`90953`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1160 ../Doc/whatsnew/3.12.rst:1389 +msgid ":mod:`asyncio`:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1162 +msgid "" +"The child watcher classes :class:`asyncio.MultiLoopChildWatcher`, :class:" +"`asyncio.FastChildWatcher`, :class:`asyncio.AbstractChildWatcher` and :class:" +"`asyncio.SafeChildWatcher` are deprecated and will be removed in Python " +"3.14. (Contributed by Kumar Aditya in :gh:`94597`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1168 +msgid "" +":func:`asyncio.set_child_watcher`, :func:`asyncio.get_child_watcher`, :meth:" +"`asyncio.AbstractEventLoopPolicy.set_child_watcher` and :meth:`asyncio." +"AbstractEventLoopPolicy.get_child_watcher` are deprecated and will be " +"removed in Python 3.14. (Contributed by Kumar Aditya in :gh:`94597`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1174 +msgid "" +"The :meth:`~asyncio.get_event_loop` method of the default event loop policy " +"now emits a :exc:`DeprecationWarning` if there is no current event loop set " +"and it decides to create one. (Contributed by Serhiy Storchaka and Guido van " +"Rossum in :gh:`100160`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1179 +msgid "" +":mod:`calendar`: ``calendar.January`` and ``calendar.February`` constants " +"are deprecated and replaced by :data:`calendar.JANUARY` and :data:`calendar." +"FEBRUARY`. (Contributed by Prince Roshan in :gh:`103636`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1183 +msgid "" +":mod:`collections.abc`: Deprecated :class:`collections.abc.ByteString`. " +"Prefer :class:`Sequence` or :class:`collections.abc.Buffer`. For use in " +"typing, prefer a union, like ``bytes | bytearray``, or :class:`collections." +"abc.Buffer`. (Contributed by Shantanu Jain in :gh:`91896`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1188 +msgid "" +":mod:`datetime`: :class:`datetime.datetime`'s :meth:`~datetime.datetime." +"utcnow` and :meth:`~datetime.datetime.utcfromtimestamp` are deprecated and " +"will be removed in a future version. Instead, use timezone-aware objects to " +"represent datetimes in UTC: respectively, call :meth:`~datetime.datetime." +"now` and :meth:`~datetime.datetime.fromtimestamp` with the *tz* parameter " +"set to :const:`datetime.UTC`. (Contributed by Paul Ganssle in :gh:`103857`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1196 +msgid "" +":mod:`email`: Deprecate the *isdst* parameter in :func:`email.utils." +"localtime`. (Contributed by Alan Williams in :gh:`72346`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1199 +msgid "" +":mod:`importlib.abc`: Deprecated the following classes, scheduled for " +"removal in Python 3.14:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1202 ../Doc/whatsnew/3.12.rst:1406 +msgid ":class:`!importlib.abc.ResourceReader`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1203 ../Doc/whatsnew/3.12.rst:1407 +msgid ":class:`!importlib.abc.Traversable`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1204 ../Doc/whatsnew/3.12.rst:1408 +msgid ":class:`!importlib.abc.TraversableResources`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1206 +msgid "Use :mod:`importlib.resources.abc` classes instead:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1208 +msgid ":class:`importlib.resources.abc.Traversable`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1209 +msgid ":class:`importlib.resources.abc.TraversableResources`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1211 +msgid "(Contributed by Jason R. Coombs and Hugo van Kemenade in :gh:`93963`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1213 +msgid "" +":mod:`itertools`: Deprecate the support for copy, deepcopy, and pickle " +"operations, which is undocumented, inefficient, historically buggy, and " +"inconsistent. This will be removed in 3.14 for a significant reduction in " +"code volume and maintenance burden. (Contributed by Raymond Hettinger in :gh:" +"`101588`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1219 +msgid "" +":mod:`multiprocessing`: In Python 3.14, the default :mod:`multiprocessing` " +"start method will change to a safer one on Linux, BSDs, and other non-macOS " +"POSIX platforms where ``'fork'`` is currently the default (:gh:`84559`). " +"Adding a runtime warning about this was deemed too disruptive as the " +"majority of code is not expected to care. Use the :func:`~multiprocessing." +"get_context` or :func:`~multiprocessing.set_start_method` APIs to explicitly " +"specify when your code *requires* ``'fork'``. See :ref:`contexts and start " +"methods `." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1229 +msgid "" +":mod:`pkgutil`: :func:`pkgutil.find_loader` and :func:`pkgutil.get_loader` " +"are deprecated and will be removed in Python 3.14; use :func:`importlib.util." +"find_spec` instead. (Contributed by Nikita Sobolev in :gh:`97850`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1234 +msgid "" +":mod:`pty`: The module has two undocumented ``master_open()`` and " +"``slave_open()`` functions that have been deprecated since Python 2 but only " +"gained a proper :exc:`DeprecationWarning` in 3.12. Remove them in 3.14. " +"(Contributed by Soumendra Ganguly and Gregory P. Smith in :gh:`85984`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1239 +msgid ":mod:`os`:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1241 +msgid "" +"The ``st_ctime`` fields return by :func:`os.stat` and :func:`os.lstat` on " +"Windows are deprecated. In a future release, they will contain the last " +"metadata change time, consistent with other platforms. For now, they still " +"contain the creation time, which is also available in the new " +"``st_birthtime`` field. (Contributed by Steve Dower in :gh:`99726`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1247 +msgid "" +"On POSIX platforms, :func:`os.fork` can now raise a :exc:" +"`DeprecationWarning` when it can detect being called from a multithreaded " +"process. There has always been a fundamental incompatibility with the POSIX " +"platform when doing so. Even if such code *appeared* to work. We added the " +"warning to to raise awareness as issues encounted by code doing this are " +"becoming more frequent. See the :func:`os.fork` documentation for more " +"details along with `this discussion on fork being incompatible with threads " +"`_ for *why* we're now surfacing this " +"longstanding platform compatibility problem to developers." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1257 +msgid "" +"When this warning appears due to usage of :mod:`multiprocessing` or :mod:" +"`concurrent.futures` the fix is to use a different :mod:`multiprocessing` " +"start method such as ``\"spawn\"`` or ``\"forkserver\"``." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1261 +msgid "" +":mod:`shutil`: The *onerror* argument of :func:`shutil.rmtree` is deprecated " +"and will be removed in Python 3.14. Use *onexc* instead. (Contributed by " +"Irit Katriel in :gh:`102828`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1264 +msgid ":mod:`sqlite3`:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1266 +msgid "" +":ref:`default adapters and converters ` are now " +"deprecated. Instead, use the :ref:`sqlite3-adapter-converter-recipes` and " +"tailor them to your needs. (Contributed by Erlend E. Aasland in :gh:`90016`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1272 +msgid "" +"In :meth:`~sqlite3.Cursor.execute`, :exc:`DeprecationWarning` is now emitted " +"when :ref:`named placeholders ` are used together with " +"parameters supplied as a :term:`sequence` instead of as a :class:`dict`. " +"Starting from Python 3.14, using named placeholders with parameters supplied " +"as a sequence will raise a :exc:`~sqlite3.ProgrammingError`. (Contributed by " +"Erlend E. Aasland in :gh:`101698`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1279 +msgid "" +":mod:`sys`: The :data:`sys.last_type`, :data:`sys.last_value` and :data:`sys." +"last_traceback` fields are deprecated. Use :data:`sys.last_exc` instead. " +"(Contributed by Irit Katriel in :gh:`102778`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1283 +msgid "" +":mod:`tarfile`: Extracting tar archives without specifying *filter* is " +"deprecated until Python 3.14, when ``'data'`` filter will become the " +"default. See :ref:`tarfile-extraction-filter` for details." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1287 +msgid ":mod:`typing`:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1289 +msgid "" +":class:`typing.Hashable` and :class:`typing.Sized` aliases for :class:" +"`collections.abc.Hashable` and :class:`collections.abc.Sized`. (:gh:`94309`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1292 +msgid "" +":class:`typing.ByteString`, deprecated since Python 3.9, now causes a :exc:" +"`DeprecationWarning` to be emitted when it is used. (Contributed by Alex " +"Waygood in :gh:`91896`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1296 +msgid "" +":mod:`xml.etree.ElementTree`: The module now emits :exc:`DeprecationWarning` " +"when testing the truth value of an :class:`xml.etree.ElementTree.Element`. " +"Before, the Python implementation emitted :exc:`FutureWarning`, and the C " +"implementation emitted nothing. (Contributed by Jacob Walls in :gh:`83122`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1302 +msgid "" +"The 3-arg signatures (type, value, traceback) of :meth:`coroutine throw() " +"`, :meth:`generator throw() ` and :meth:" +"`async generator throw() ` are deprecated and may be removed in " +"a future version of Python. Use the single-arg versions of these functions " +"instead. (Contributed by Ofey Chan in :gh:`89874`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1308 +msgid "" +":exc:`DeprecationWarning` is now raised when ``__package__`` on a module " +"differs from ``__spec__.parent`` (previously it was :exc:`ImportWarning`). " +"(Contributed by Brett Cannon in :gh:`65961`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1313 +msgid "" +"Setting ``__package__`` or ``__cached__`` on a module is deprecated, and " +"will cease to be set or taken into consideration by the import system in " +"Python 3.14. (Contributed by Brett Cannon in :gh:`65961`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1317 +msgid "" +"The bitwise inversion operator (``~``) on bool is deprecated. It will throw " +"an error in Python 3.14. Use ``not`` for logical negation of bools instead. " +"In the rare case that you really need the bitwise inversion of the " +"underlying ``int``, convert to int explicitly: ``~int(x)``. (Contributed by " +"Tim Hoffmann in :gh:`103487`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1323 +msgid "" +"Accessing ``co_lnotab`` on code objects was deprecated in Python 3.10 via :" +"pep:`626`, but it only got a proper :exc:`DeprecationWarning` in 3.12, " +"therefore it will be removed in 3.14. (Contributed by Nikita Sobolev in :gh:" +"`101866`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1329 +msgid "Pending Removal in Python 3.13" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1331 +msgid "" +"The following modules and APIs have been deprecated in earlier Python " +"releases, and will be removed in Python 3.13." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1334 +msgid "Modules (see :pep:`594`):" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1336 +msgid ":mod:`aifc`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1337 +msgid ":mod:`audioop`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1338 +msgid ":mod:`cgi`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1339 +msgid ":mod:`cgitb`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1340 +msgid ":mod:`chunk`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1341 +msgid ":mod:`crypt`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1342 +msgid ":mod:`imghdr`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1343 +msgid ":mod:`mailcap`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1344 +msgid ":mod:`msilib`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1345 +msgid ":mod:`nis`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1346 +msgid ":mod:`nntplib`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1347 +msgid ":mod:`ossaudiodev`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1348 +msgid ":mod:`pipes`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1349 +msgid ":mod:`sndhdr`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1350 +msgid ":mod:`spwd`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1351 +msgid ":mod:`sunau`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1352 +msgid ":mod:`telnetlib`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1353 +msgid ":mod:`uu`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1354 +msgid ":mod:`xdrlib`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1356 +msgid "Other modules:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1358 +msgid ":mod:`!lib2to3`, and the :program:`2to3` program (:gh:`84540`)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1360 +msgid "APIs:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1362 +msgid ":class:`!configparser.LegacyInterpolation` (:gh:`90765`)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1363 +msgid ":func:`locale.getdefaultlocale` (:gh:`90817`)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1364 +msgid ":meth:`!turtle.RawTurtle.settiltangle` (:gh:`50096`)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1365 +msgid ":func:`!unittest.findTestCases` (:gh:`50096`)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1366 +msgid ":func:`!unittest.getTestCaseNames` (:gh:`50096`)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1367 +msgid ":func:`!unittest.makeSuite` (:gh:`50096`)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1368 +msgid ":meth:`!unittest.TestProgram.usageExit` (:gh:`67048`)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1369 +msgid ":class:`!webbrowser.MacOSX` (:gh:`86421`)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1370 +msgid ":class:`classmethod` descriptor chaining (:gh:`89519`)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1373 ../Doc/whatsnew/3.12.rst:2306 +msgid "Pending Removal in Python 3.14" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1375 +msgid "" +"The following APIs have been deprecated and will be removed in Python 3.14." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1378 +msgid "" +":mod:`argparse`: The *type*, *choices*, and *metavar* parameters of :class:`!" +"argparse.BooleanOptionalAction`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1381 +msgid ":mod:`ast`:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1391 +msgid ":class:`!asyncio.MultiLoopChildWatcher`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1392 +msgid ":class:`!asyncio.FastChildWatcher`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1393 +msgid ":class:`!asyncio.AbstractChildWatcher`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1394 +msgid ":class:`!asyncio.SafeChildWatcher`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1395 +msgid ":func:`!asyncio.set_child_watcher`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1396 +msgid ":func:`!asyncio.get_child_watcher`," +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1397 +msgid ":meth:`!asyncio.AbstractEventLoopPolicy.set_child_watcher`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1398 +msgid ":meth:`!asyncio.AbstractEventLoopPolicy.get_child_watcher`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1400 +msgid ":mod:`collections.abc`: :class:`!collections.abc.ByteString`." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1402 +msgid ":mod:`email`: the *isdst* parameter in :func:`email.utils.localtime`." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1404 +msgid ":mod:`importlib.abc`:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1410 +msgid ":mod:`itertools`: Support for copy, deepcopy, and pickle operations." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1412 +msgid ":mod:`pkgutil`:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1414 +msgid ":func:`!pkgutil.find_loader`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1415 +msgid ":func:`!pkgutil.get_loader`." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1417 +msgid ":mod:`pty`:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1419 +msgid ":func:`!pty.master_open`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1420 +msgid ":func:`!pty.slave_open`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1422 +msgid ":mod:`shutil`: The *onerror* argument of :func:`shutil.rmtree`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1424 +msgid ":mod:`typing`: :class:`!typing.ByteString`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1426 +msgid "" +":mod:`xml.etree.ElementTree`: Testing the truth value of an :class:`xml." +"etree.ElementTree.Element`." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1428 +msgid "The ``__package__`` and ``__cached__`` attributes on module objects." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1430 +msgid "The ``co_lnotab`` attribute of code objects." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1433 ../Doc/whatsnew/3.12.rst:2361 +msgid "Pending Removal in Future Versions" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1435 +msgid "" +"The following APIs were deprecated in earlier Python versions and will be " +"removed, although there is currently no date scheduled for their removal." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1438 +msgid ":mod:`array`'s ``'u'`` format code (:gh:`57281`)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1440 +msgid ":class:`typing.Text` (:gh:`92332`)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1442 +msgid "" +"Currently Python accepts numeric literals immediately followed by keywords, " +"for example ``0in x``, ``1or x``, ``0if 1else 2``. It allows confusing and " +"ambiguous expressions like ``[0x1for x in y]`` (which can be interpreted as " +"``[0x1 for x in y]`` or ``[0x1f or x in y]``). A syntax warning is raised if " +"the numeric literal is immediately followed by one of keywords :keyword:" +"`and`, :keyword:`else`, :keyword:`for`, :keyword:`if`, :keyword:`in`, :" +"keyword:`is` and :keyword:`or`. In a future release it will be changed to a " +"syntax error. (:gh:`87999`)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1453 ../Doc/whatsnew/3.12.rst:2393 +msgid "Removed" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1456 +msgid "asynchat and asyncore" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1458 +msgid "" +"These two modules have been removed according to the schedule in :pep:`594`, " +"having been deprecated in Python 3.6. Use :mod:`asyncio` instead. " +"(Contributed by Nikita Sobolev in :gh:`96580`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1465 +msgid "configparser" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1467 +msgid "" +"Several names deprecated in the :mod:`configparser` way back in 3.2 have " +"been removed per :gh:`89336`:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1470 +msgid "" +":class:`configparser.ParsingError` no longer has a ``filename`` attribute or " +"argument. Use the ``source`` attribute and argument instead." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1472 +msgid "" +":mod:`configparser` no longer has a ``SafeConfigParser`` class. Use the " +"shorter :class:`~configparser.ConfigParser` name instead." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1474 +msgid "" +":class:`configparser.ConfigParser` no longer has a ``readfp`` method. Use :" +"meth:`~configparser.ConfigParser.read_file` instead." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1478 +msgid "distutils" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1480 +msgid "" +"Remove the :py:mod:`!distutils` package. It was deprecated in Python 3.10 " +"by :pep:`632` \"Deprecate distutils module\". For projects still using " +"``distutils`` and cannot be updated to something else, the ``setuptools`` " +"project can be installed: it still provides ``distutils``. (Contributed by " +"Victor Stinner in :gh:`92584`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1487 +msgid "ensurepip" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1489 +msgid "" +"Remove the bundled setuptools wheel from :mod:`ensurepip`, and stop " +"installing setuptools in environments created by :mod:`venv`." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1492 +msgid "" +"``pip (>= 22.1)`` does not require setuptools to be installed in the " +"environment. ``setuptools``-based (and ``distutils``-based) packages can " +"still be used with ``pip install``, since pip will provide ``setuptools`` in " +"the build environment it uses for building a package." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1498 +msgid "" +"``easy_install``, ``pkg_resources``, ``setuptools`` and ``distutils`` are no " +"longer provided by default in environments created with ``venv`` or " +"bootstrapped with ``ensurepip``, since they are part of the ``setuptools`` " +"package. For projects relying on these at runtime, the ``setuptools`` " +"project should be declared as a dependency and installed separately " +"(typically, using pip)." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1505 +msgid "(Contributed by Pradyun Gedam in :gh:`95299`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1508 +msgid "enum" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1510 +msgid "" +"Remove :mod:`enum`'s ``EnumMeta.__getattr__``, which is no longer needed for " +"enum attribute access. (Contributed by Ethan Furman in :gh:`95083`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1515 +msgid "ftplib" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1517 +msgid "" +"Remove :mod:`ftplib`'s ``FTP_TLS.ssl_version`` class attribute: use the " +"*context* parameter instead. (Contributed by Victor Stinner in :gh:`94172`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1522 +msgid "gzip" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1524 +msgid "" +"Remove the ``filename`` attribute of :mod:`gzip`'s :class:`gzip.GzipFile`, " +"deprecated since Python 2.6, use the :attr:`~gzip.GzipFile.name` attribute " +"instead. In write mode, the ``filename`` attribute added ``'.gz'`` file " +"extension if it was not present. (Contributed by Victor Stinner in :gh:" +"`94196`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1531 +msgid "hashlib" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1533 +msgid "" +"Remove the pure Python implementation of :mod:`hashlib`'s :func:`hashlib." +"pbkdf2_hmac()`, deprecated in Python 3.10. Python 3.10 and newer requires " +"OpenSSL 1.1.1 (:pep:`644`): this OpenSSL version provides a C implementation " +"of :func:`~hashlib.pbkdf2_hmac()` which is faster. (Contributed by Victor " +"Stinner in :gh:`94199`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1540 ../Doc/whatsnew/3.12.rst:1567 +msgid "importlib" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1542 +msgid "" +"Many previously deprecated cleanups in :mod:`importlib` have now been " +"completed:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1545 +msgid "" +"References to, and support for :meth:`!module_repr()` has been removed. " +"(Contributed by Barry Warsaw in :gh:`97850`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1548 +msgid "" +"``importlib.util.set_package``, ``importlib.util.set_loader`` and " +"``importlib.util.module_for_loader`` have all been removed. (Contributed by " +"Brett Cannon and Nikita Sobolev in :gh:`65961` and :gh:`97850`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1552 +msgid "" +"Support for ``find_loader()`` and ``find_module()`` APIs have been removed. " +"(Contributed by Barry Warsaw in :gh:`98040`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1555 +msgid "" +"``importlib.abc.Finder``, ``pkgutil.ImpImporter``, and ``pkgutil.ImpLoader`` " +"have been removed. (Contributed by Barry Warsaw in :gh:`98040`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1559 ../Doc/whatsnew/3.12.rst:1567 +msgid "imp" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1561 +msgid "" +"The :mod:`!imp` module has been removed. (Contributed by Barry Warsaw in :" +"gh:`98040`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1564 +msgid "To migrate, consult the following correspondence table:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1569 +msgid "``imp.NullImporter``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1569 +msgid "Insert ``None`` into ``sys.path_importer_cache``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1570 +msgid "``imp.cache_from_source()``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1570 +msgid ":func:`importlib.util.cache_from_source`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1571 +msgid "``imp.find_module()``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1571 +msgid ":func:`importlib.util.find_spec`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1572 +msgid "``imp.get_magic()``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1572 +msgid ":attr:`importlib.util.MAGIC_NUMBER`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1573 +msgid "``imp.get_suffixes()``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1573 +msgid "" +":attr:`importlib.machinery.SOURCE_SUFFIXES`, :attr:`importlib.machinery." +"EXTENSION_SUFFIXES`, and :attr:`importlib.machinery.BYTECODE_SUFFIXES`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1574 +msgid "``imp.get_tag()``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1574 +msgid ":attr:`sys.implementation.cache_tag `" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1575 +msgid "``imp.load_module()``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1575 +msgid ":func:`importlib.import_module`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1576 +msgid "``imp.new_module(name)``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1576 +msgid "``types.ModuleType(name)``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1577 +msgid "``imp.reload()``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1577 +msgid ":func:`importlib.reload`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1578 +msgid "``imp.source_from_cache()``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1578 +msgid ":func:`importlib.util.source_from_cache`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1579 +msgid "``imp.load_source()``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1579 +msgid "*See below*" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1582 +msgid "Replace ``imp.load_source()`` with::" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1597 +msgid "Remove :mod:`!imp` functions and attributes with no replacements:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1599 +msgid "Undocumented functions:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1601 +msgid "``imp.init_builtin()``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1602 +msgid "``imp.load_compiled()``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1603 +msgid "``imp.load_dynamic()``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1604 +msgid "``imp.load_package()``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1606 +msgid "" +"``imp.lock_held()``, ``imp.acquire_lock()``, ``imp.release_lock()``: the " +"locking scheme has changed in Python 3.3 to per-module locks." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1608 +msgid "" +"``imp.find_module()`` constants: ``SEARCH_ERROR``, ``PY_SOURCE``, " +"``PY_COMPILED``, ``C_EXTENSION``, ``PY_RESOURCE``, ``PKG_DIRECTORY``, " +"``C_BUILTIN``, ``PY_FROZEN``, ``PY_CODERESOURCE``, ``IMP_HOOK``." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1613 +msgid "io" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1615 +msgid "" +"Remove :mod:`io`'s ``io.OpenWrapper`` and ``_pyio.OpenWrapper``, deprecated " +"in Python 3.10: just use :func:`open` instead. The :func:`open` (:func:`io." +"open`) function is a built-in function. Since Python 3.10, :func:`!_pyio." +"open` is also a static method. (Contributed by Victor Stinner in :gh:" +"`94169`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1622 +msgid "locale" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1624 +msgid "" +"Remove :mod:`locale`'s :func:`!locale.format` function, deprecated in Python " +"3.7: use :func:`locale.format_string` instead. (Contributed by Victor " +"Stinner in :gh:`94226`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1628 +msgid "" +"``smtpd``: The module has been removed according to the schedule in :pep:" +"`594`, having been deprecated in Python 3.4.7 and 3.5.4. Use aiosmtpd_ PyPI " +"module or any other :mod:`asyncio`-based server instead. (Contributed by " +"Oleg Iarygin in :gh:`93243`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1639 +msgid "" +"The following undocumented :mod:`sqlite3` features, deprecated in Python " +"3.10, are now removed:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1642 +msgid "``sqlite3.enable_shared_cache()``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1643 +msgid "``sqlite3.OptimizedUnicode``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1645 +msgid "" +"If a shared cache must be used, open the database in URI mode using the " +"``cache=shared`` query parameter." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1648 +msgid "" +"The ``sqlite3.OptimizedUnicode`` text factory has been an alias for :class:" +"`str` since Python 3.3. Code that previously set the text factory to " +"``OptimizedUnicode`` can either use ``str`` explicitly, or rely on the " +"default value which is also ``str``." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1653 +msgid "(Contributed by Erlend E. Aasland in :gh:`92548`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1656 +msgid "ssl" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1658 +msgid "" +"Remove :mod:`ssl`'s :func:`!ssl.RAND_pseudo_bytes` function, deprecated in " +"Python 3.6: use :func:`os.urandom` or :func:`ssl.RAND_bytes` instead. " +"(Contributed by Victor Stinner in :gh:`94199`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1662 +msgid "" +"Remove the :func:`!ssl.match_hostname` function. It was deprecated in Python " +"3.7. OpenSSL performs hostname matching since Python 3.7, Python no longer " +"uses the :func:`!ssl.match_hostname` function. (Contributed by Victor " +"Stinner in :gh:`94199`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1668 +msgid "" +"Remove the :func:`!ssl.wrap_socket` function, deprecated in Python 3.7: " +"instead, create a :class:`ssl.SSLContext` object and call its :class:`ssl." +"SSLContext.wrap_socket` method. Any package that still uses :func:`!ssl." +"wrap_socket` is broken and insecure. The function neither sends a SNI TLS " +"extension nor validates server hostname. Code is subject to `CWE-295 " +"`_: Improper Certificate " +"Validation. (Contributed by Victor Stinner in :gh:`94199`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1680 +msgid "Remove many long-deprecated :mod:`unittest` features:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1684 +msgid "A number of :class:`~unittest.TestCase` method aliases:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1687 +msgid "Deprecated alias" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1687 +msgid "Method Name" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1687 +msgid "Deprecated in" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1689 +msgid "``failUnless``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1689 ../Doc/whatsnew/3.12.rst:1696 +msgid ":meth:`.assertTrue`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1689 ../Doc/whatsnew/3.12.rst:1690 +#: ../Doc/whatsnew/3.12.rst:1691 ../Doc/whatsnew/3.12.rst:1692 +#: ../Doc/whatsnew/3.12.rst:1693 ../Doc/whatsnew/3.12.rst:1694 +#: ../Doc/whatsnew/3.12.rst:1695 +msgid "3.1" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1690 +msgid "``failIf``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1690 +msgid ":meth:`.assertFalse`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1691 +msgid "``failUnlessEqual``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1691 ../Doc/whatsnew/3.12.rst:1697 +msgid ":meth:`.assertEqual`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1692 +msgid "``failIfEqual``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1692 ../Doc/whatsnew/3.12.rst:1698 +msgid ":meth:`.assertNotEqual`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1693 +msgid "``failUnlessAlmostEqual``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1693 ../Doc/whatsnew/3.12.rst:1699 +msgid ":meth:`.assertAlmostEqual`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1694 +msgid "``failIfAlmostEqual``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1694 ../Doc/whatsnew/3.12.rst:1700 +msgid ":meth:`.assertNotAlmostEqual`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1695 +msgid "``failUnlessRaises``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1695 +msgid ":meth:`.assertRaises`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1696 +msgid "``assert_``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1696 ../Doc/whatsnew/3.12.rst:1697 +#: ../Doc/whatsnew/3.12.rst:1698 ../Doc/whatsnew/3.12.rst:1699 +#: ../Doc/whatsnew/3.12.rst:1700 ../Doc/whatsnew/3.12.rst:1701 +#: ../Doc/whatsnew/3.12.rst:1702 +msgid "3.2" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1697 +msgid "``assertEquals``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1698 +msgid "``assertNotEquals``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1699 +msgid "``assertAlmostEquals``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1700 +msgid "``assertNotAlmostEquals``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1701 +msgid "``assertRegexpMatches``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1701 +msgid ":meth:`.assertRegex`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1702 +msgid "``assertRaisesRegexp``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1702 +msgid ":meth:`.assertRaisesRegex`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1703 +msgid "``assertNotRegexpMatches``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1703 +msgid ":meth:`.assertNotRegex`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1703 +msgid "3.5" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1706 +msgid "" +"You can use https://github.com/isidentical/teyit to automatically modernise " +"your unit tests." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1709 +msgid "" +"Undocumented and broken :class:`~unittest.TestCase` method " +"``assertDictContainsSubset`` (deprecated in Python 3.2)." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1712 +msgid "" +"Undocumented :meth:`TestLoader.loadTestsFromModule ` parameter *use_load_tests* (deprecated and ignored " +"since Python 3.2)." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1716 +msgid "" +"An alias of the :class:`~unittest.TextTestResult` class: ``_TextTestResult`` " +"(deprecated in Python 3.2)." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1719 +msgid "(Contributed by Serhiy Storchaka in :gh:`89325`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1722 +msgid "webbrowser" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1724 +msgid "" +"Remove support for obsolete browsers from :mod:`webbrowser`. The removed " +"browsers include: Grail, Mosaic, Netscape, Galeon, Skipstone, Iceape, " +"Firebird, and Firefox versions 35 and below (:gh:`102871`)." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1729 +msgid "xml.etree.ElementTree" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1731 +msgid "" +"Remove the ``ElementTree.Element.copy()`` method of the pure Python " +"implementation, deprecated in Python 3.10, use the :func:`copy.copy` " +"function instead. The C implementation of :mod:`xml.etree.ElementTree` has " +"no ``copy()`` method, only a ``__copy__()`` method. (Contributed by Victor " +"Stinner in :gh:`94383`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1738 +msgid "zipimport" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1740 +msgid "" +"Remove :mod:`zipimport`'s ``find_loader()`` and ``find_module()`` methods, " +"deprecated in Python 3.10: use the ``find_spec()`` method instead. See :pep:" +"`451` for the rationale. (Contributed by Victor Stinner in :gh:`94379`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1746 +msgid "Others" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1748 +msgid "" +"Remove the ``suspicious`` rule from the documentation :file:`Makefile` and :" +"file:`Doc/tools/rstlint.py`, both in favor of `sphinx-lint `_. (Contributed by Julien Palard in :gh:" +"`98179`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1753 +msgid "" +"Remove the *keyfile* and *certfile* parameters from the :mod:`ftplib`, :mod:" +"`imaplib`, :mod:`poplib` and :mod:`smtplib` modules, and the *key_file*, " +"*cert_file* and *check_hostname* parameters from the :mod:`http.client` " +"module, all deprecated since Python 3.6. Use the *context* parameter " +"(*ssl_context* in :mod:`imaplib`) instead. (Contributed by Victor Stinner " +"in :gh:`94172`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1764 ../Doc/whatsnew/3.12.rst:2079 +msgid "Porting to Python 3.12" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1766 +msgid "" +"This section lists previously described changes and other bugfixes that may " +"require changes to your code." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1770 +msgid "Changes in the Python API" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1772 +msgid "" +"More strict rules are now applied for numerical group references and group " +"names in regular expressions. Only sequence of ASCII digits is now accepted " +"as a numerical reference. The group name in bytes patterns and replacement " +"strings can now only contain ASCII letters and digits and underscore. " +"(Contributed by Serhiy Storchaka in :gh:`91760`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1779 +msgid "" +"Remove ``randrange()`` functionality deprecated since Python 3.10. " +"Formerly, ``randrange(10.0)`` losslessly converted to ``randrange(10)``. " +"Now, it raises a :exc:`TypeError`. Also, the exception raised for non-" +"integer values such as ``randrange(10.5)`` or ``randrange('10')`` has been " +"changed from :exc:`ValueError` to :exc:`TypeError`. This also prevents bugs " +"where ``randrange(1e25)`` would silently select from a larger range than " +"``randrange(10**25)``. (Originally suggested by Serhiy Storchaka :gh:" +"`86388`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1787 +msgid "" +":class:`argparse.ArgumentParser` changed encoding and error handler for " +"reading arguments from file (e.g. ``fromfile_prefix_chars`` option) from " +"default text encoding (e.g. :func:`locale.getpreferredencoding(False) " +"`) to :term:`filesystem encoding and error " +"handler`. Argument files should be encoded in UTF-8 instead of ANSI Codepage " +"on Windows." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1793 +msgid "" +"Remove the ``asyncore``-based ``smtpd`` module deprecated in Python 3.4.7 " +"and 3.5.4. A recommended replacement is the :mod:`asyncio`-based aiosmtpd_ " +"PyPI module." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1797 +msgid "" +":func:`shlex.split`: Passing ``None`` for *s* argument now raises an " +"exception, rather than reading :data:`sys.stdin`. The feature was deprecated " +"in Python 3.9. (Contributed by Victor Stinner in :gh:`94352`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1802 +msgid "" +"The :mod:`os` module no longer accepts bytes-like paths, like :class:" +"`bytearray` and :class:`memoryview` types: only the exact :class:`bytes` " +"type is accepted for bytes strings. (Contributed by Victor Stinner in :gh:" +"`98393`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1807 +msgid "" +":func:`syslog.openlog` and :func:`syslog.closelog` now fail if used in " +"subinterpreters. :func:`syslog.syslog` may still be used in subinterpreters, " +"but now only if :func:`syslog.openlog` has already been called in the main " +"interpreter. These new restrictions do not apply to the main interpreter, so " +"only a very small set of users might be affected. This change helps with " +"interpreter isolation. Furthermore, :mod:`syslog` is a wrapper around " +"process-global resources, which are best managed from the main interpreter. " +"(Contributed by Donghee Na in :gh:`99127`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1816 +msgid "" +"The undocumented locking behavior of :func:`~functools.cached_property` is " +"removed, because it locked across all instances of the class, leading to " +"high lock contention. This means that a cached property getter function " +"could now run more than once for a single instance, if two threads race. For " +"most simple cached properties (e.g. those that are idempotent and simply " +"calculate a value based on other attributes of the instance) this will be " +"fine. If synchronization is needed, implement locking within the cached " +"property getter function or around multi-threaded access points." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1829 +msgid "" +"When extracting tar files using :mod:`tarfile` or :func:`shutil." +"unpack_archive`, pass the *filter* argument to limit features that may be " +"surprising or dangerous. See :ref:`tarfile-extraction-filter` for details." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1834 +msgid "" +"The output of the :func:`tokenize.tokenize` and :func:`tokenize." +"generate_tokens` functions is now changed due to the changes introduced in :" +"pep:`701`. This means that ``STRING`` tokens are not emitted any more for f-" +"strings and the tokens described in :pep:`701` are now produced instead: " +"``FSTRING_START``, ``FSTRING_MIDDLE`` and ``FSTRING_END`` are now emitted " +"for f-string \"string\" parts in addition to the appropriate tokens for the " +"tokenization in the expression components. For example for the f-string " +"``f\"start {1+1} end\"`` the old version of the tokenizer emitted::" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1845 +msgid "while the new version emits::" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1857 +msgid "" +"Additionally, there may be some minor behavioral changes as a consequence of " +"the changes required to support :pep:`701`. Some of these changes include:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1860 +msgid "" +"The ``type`` attribute of the tokens emitted when tokenizing some invalid " +"Python characters such as ``!`` has changed from ``ERRORTOKEN`` to ``OP``." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1863 +msgid "" +"Incomplete single-line strings now also raise :exc:`tokenize.TokenError` as " +"incomplete multiline strings do." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1866 +msgid "" +"Some incomplete or invalid Python code now raises :exc:`tokenize.TokenError` " +"instead of returning arbitrary ``ERRORTOKEN`` tokens when tokenizing it." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1869 +msgid "" +"Mixing tabs and spaces as indentation in the same file is not supported " +"anymore and will raise a :exc:`TabError`." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1873 +msgid "Build Changes" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1875 +msgid "" +"Python no longer uses :file:`setup.py` to build shared C extension modules. " +"Build parameters like headers and libraries are detected in ``configure`` " +"script. Extensions are built by :file:`Makefile`. Most extensions use ``pkg-" +"config`` and fall back to manual detection. (Contributed by Christian Heimes " +"in :gh:`93939`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1881 +msgid "" +"``va_start()`` with two parameters, like ``va_start(args, format),`` is now " +"required to build Python. ``va_start()`` is no longer called with a single " +"parameter. (Contributed by Kumar Aditya in :gh:`93207`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1886 +msgid "" +"CPython now uses the ThinLTO option as the default link time optimization " +"policy if the Clang compiler accepts the flag. (Contributed by Donghee Na " +"in :gh:`89536`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1890 +msgid "" +"Add ``COMPILEALL_OPTS`` variable in :file:`Makefile` to override :mod:" +"`compileall` options (default: ``-j0``) in ``make install``. Also merged the " +"3 ``compileall`` commands into a single command to build .pyc files for all " +"optimization levels (0, 1, 2) at once. (Contributed by Victor Stinner in :gh:" +"`99289`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1896 +msgid "Add platform triplets for 64-bit LoongArch:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1898 +msgid "loongarch64-linux-gnusf" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1899 +msgid "loongarch64-linux-gnuf32" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1900 +msgid "loongarch64-linux-gnu" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1902 +msgid "(Contributed by Zhang Na in :gh:`90656`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1904 +msgid "``PYTHON_FOR_REGEN`` now require Python 3.10 or newer." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1906 +msgid "" +"Autoconf 2.71 and aclocal 1.16.4 is now required to regenerate :file:`!" +"configure`. (Contributed by Christian Heimes in :gh:`89886`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1910 +msgid "" +"Windows builds and macOS installers from python.org now use OpenSSL 3.0." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1914 +msgid "C API Changes" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1921 +msgid "" +":pep:`697`: Introduce the :ref:`Unstable C API tier `, " +"intended for low-level tools like debuggers and JIT compilers. This API may " +"change in each minor release of CPython without deprecation warnings. Its " +"contents are marked by the ``PyUnstable_`` prefix in names." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1927 +msgid "Code object constructors:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1929 +msgid "``PyUnstable_Code_New()`` (renamed from ``PyCode_New``)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1930 +msgid "" +"``PyUnstable_Code_NewWithPosOnlyArgs()`` (renamed from " +"``PyCode_NewWithPosOnlyArgs``)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1932 +msgid "Extra storage for code objects (:pep:`523`):" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1934 +msgid "" +"``PyUnstable_Eval_RequestCodeExtraIndex()`` (renamed from " +"``_PyEval_RequestCodeExtraIndex``)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1935 +msgid "``PyUnstable_Code_GetExtra()`` (renamed from ``_PyCode_GetExtra``)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1936 +msgid "``PyUnstable_Code_SetExtra()`` (renamed from ``_PyCode_SetExtra``)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1938 +msgid "" +"The original names will continue to be available until the respective API " +"changes." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1941 +msgid "(Contributed by Petr Viktorin in :gh:`101101`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1943 +msgid "" +":pep:`697`: Add an API for extending types whose instance memory layout is " +"opaque:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1946 +msgid "" +":c:member:`PyType_Spec.basicsize` can be zero or negative to specify " +"inheriting or extending the base class size." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1948 +msgid "" +":c:func:`PyObject_GetTypeData` and :c:func:`PyType_GetTypeDataSize` added to " +"allow access to subclass-specific instance data." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1950 +msgid "" +":c:macro:`Py_TPFLAGS_ITEMS_AT_END` and :c:func:`PyObject_GetItemData` added " +"to allow safely extending certain variable-sized types, including :c:var:" +"`PyType_Type`." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1953 +msgid "" +":c:macro:`Py_RELATIVE_OFFSET` added to allow defining :c:type:`members " +"` in terms of a subclass-specific struct." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1956 +msgid "(Contributed by Petr Viktorin in :gh:`103509`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1958 +msgid "" +"Add the new :ref:`limited C API ` function :c:func:" +"`PyType_FromMetaclass`, which generalizes the existing :c:func:" +"`PyType_FromModuleAndSpec` using an additional metaclass argument. " +"(Contributed by Wenzel Jakob in :gh:`93012`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1963 +msgid "" +"API for creating objects that can be called using :ref:`the vectorcall " +"protocol ` was added to the :ref:`Limited API `:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1967 +msgid ":c:macro:`Py_TPFLAGS_HAVE_VECTORCALL`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1968 +msgid ":c:func:`PyVectorcall_NARGS`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1969 +msgid ":c:func:`PyVectorcall_Call`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1970 +msgid ":c:type:`vectorcallfunc`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1972 +msgid "" +"The :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` flag is now removed from a class " +"when the class's :py:meth:`~object.__call__` method is reassigned. This " +"makes vectorcall safe to use with mutable types (i.e. heap types without the " +"immutable flag, :c:macro:`Py_TPFLAGS_IMMUTABLETYPE`). Mutable types that do " +"not override :c:member:`~PyTypeObject.tp_call` now inherit the " +"``Py_TPFLAGS_HAVE_VECTORCALL`` flag. (Contributed by Petr Viktorin in :gh:" +"`93274`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1980 +msgid "" +"The :c:macro:`Py_TPFLAGS_MANAGED_DICT` and :c:macro:" +"`Py_TPFLAGS_MANAGED_WEAKREF` flags have been added. This allows extensions " +"classes to support object ``__dict__`` and weakrefs with less bookkeeping, " +"using less memory and with faster access." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1985 +msgid "" +"API for performing calls using :ref:`the vectorcall protocol ` " +"was added to the :ref:`Limited API `:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1989 +msgid ":c:func:`PyObject_Vectorcall`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1990 +msgid ":c:func:`PyObject_VectorcallMethod`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1991 +msgid ":c:macro:`PY_VECTORCALL_ARGUMENTS_OFFSET`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1993 +msgid "" +"This means that both the incoming and outgoing ends of the vector call " +"protocol are now available in the :ref:`Limited API `. (Contributed " +"by Wenzel Jakob in :gh:`98586`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:1997 +msgid "" +"Add two new public functions, :c:func:`PyEval_SetProfileAllThreads` and :c:" +"func:`PyEval_SetTraceAllThreads`, that allow to set tracing and profiling " +"functions in all running threads in addition to the calling one. " +"(Contributed by Pablo Galindo in :gh:`93503`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2003 +msgid "" +"Add new function :c:func:`PyFunction_SetVectorcall` to the C API which sets " +"the vectorcall field of a given :c:type:`PyFunctionObject`. (Contributed by " +"Andrew Frost in :gh:`92257`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2007 +msgid "" +"The C API now permits registering callbacks via :c:func:" +"`PyDict_AddWatcher`, :c:func:`PyDict_Watch` and related APIs to be called " +"whenever a dictionary is modified. This is intended for use by optimizing " +"interpreters, JIT compilers, or debuggers. (Contributed by Carl Meyer in :gh:" +"`91052`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2013 +msgid "" +"Add :c:func:`PyType_AddWatcher` and :c:func:`PyType_Watch` API to register " +"callbacks to receive notification on changes to a type. (Contributed by Carl " +"Meyer in :gh:`91051`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2017 +msgid "" +"Add :c:func:`PyCode_AddWatcher` and :c:func:`PyCode_ClearWatcher` APIs to " +"register callbacks to receive notification on creation and destruction of " +"code objects. (Contributed by Itamar Oren in :gh:`91054`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2022 +msgid "" +"Add :c:func:`PyFrame_GetVar` and :c:func:`PyFrame_GetVarString` functions to " +"get a frame variable by its name. (Contributed by Victor Stinner in :gh:" +"`91248`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2026 +msgid "" +"Add :c:func:`PyErr_GetRaisedException` and :c:func:" +"`PyErr_SetRaisedException` for saving and restoring the current exception. " +"These functions return and accept a single exception object, rather than the " +"triple arguments of the now-deprecated :c:func:`PyErr_Fetch` and :c:func:" +"`PyErr_Restore`. This is less error prone and a bit more efficient. " +"(Contributed by Mark Shannon in :gh:`101578`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2034 +msgid "" +"Add ``_PyErr_ChainExceptions1``, which takes an exception instance, to " +"replace the legacy-API ``_PyErr_ChainExceptions``, which is now deprecated. " +"(Contributed by Mark Shannon in :gh:`101578`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2038 +msgid "" +"Add :c:func:`PyException_GetArgs` and :c:func:`PyException_SetArgs` as " +"convenience functions for retrieving and modifying the :attr:`~BaseException." +"args` passed to the exception's constructor. (Contributed by Mark Shannon " +"in :gh:`101578`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2043 +msgid "" +"Add :c:func:`PyErr_DisplayException`, which takes an exception instance, to " +"replace the legacy-api :c:func:`!PyErr_Display`. (Contributed by Irit " +"Katriel in :gh:`102755`)." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2049 +msgid "" +":pep:`683`: Introduce *Immortal Objects*, which allows objects to bypass " +"reference counts, and related changes to the C-API:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2052 +msgid "``_Py_IMMORTAL_REFCNT``: The reference count that defines an object" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2053 +msgid "as immortal." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2054 +msgid "" +"``_Py_IsImmortal`` Checks if an object has the immortal reference count." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2055 +msgid "``PyObject_HEAD_INIT`` This will now initialize reference count to" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2056 +msgid "``_Py_IMMORTAL_REFCNT`` when used with ``Py_BUILD_CORE``." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2057 +msgid "``SSTATE_INTERNED_IMMORTAL`` An identifier for interned unicode objects" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2058 +msgid "that are immortal." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2059 +msgid "``SSTATE_INTERNED_IMMORTAL_STATIC`` An identifier for interned unicode" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2060 +msgid "objects that are immortal and static" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2063 +msgid "``sys.getunicodeinternedsize`` This returns the total number of unicode" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2062 +msgid "" +"objects that have been interned. This is now needed for :file:`refleak.py` " +"to correctly track reference counts and allocated blocks" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2065 +msgid "(Contributed by Eddie Elizondo in :gh:`84436`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2067 +msgid "" +":pep:`684`: Add the new :c:func:`Py_NewInterpreterFromConfig` function and :" +"c:type:`PyInterpreterConfig`, which may be used to create sub-interpreters " +"with their own GILs. (See :ref:`whatsnew312-pep684` for more info.) " +"(Contributed by Eric Snow in :gh:`104110`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2073 +msgid "" +"In the limited C API version 3.12, :c:func:`Py_INCREF` and :c:func:" +"`Py_DECREF` functions are now implemented as opaque function calls to hide " +"implementation details. (Contributed by Victor Stinner in :gh:`105387`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2081 +msgid "" +"Legacy Unicode APIs based on ``Py_UNICODE*`` representation has been " +"removed. Please migrate to APIs based on UTF-8 or ``wchar_t*``." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2084 +msgid "" +"Argument parsing functions like :c:func:`PyArg_ParseTuple` doesn't support " +"``Py_UNICODE*`` based format (e.g. ``u``, ``Z``) anymore. Please migrate to " +"other formats for Unicode like ``s``, ``z``, ``es``, and ``U``." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2088 +msgid "" +"``tp_weaklist`` for all static builtin types is always ``NULL``. This is an " +"internal-only field on ``PyTypeObject`` but we're pointing out the change in " +"case someone happens to be accessing the field directly anyway. To avoid " +"breakage, consider using the existing public C-API instead, or, if " +"necessary, the (internal-only) ``_PyObject_GET_WEAKREFS_LISTPTR()`` macro." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2095 +msgid "" +"This internal-only :c:member:`PyTypeObject.tp_subclasses` may now not be a " +"valid object pointer. Its type was changed to :c:expr:`void *` to reflect " +"this. We mention this in case someone happens to be accessing the internal-" +"only field directly." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2100 +msgid "" +"To get a list of subclasses, call the Python method :py:meth:`~class." +"__subclasses__` (using :c:func:`PyObject_CallMethod`, for example)." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2104 +msgid "" +"Add support of more formatting options (left aligning, octals, uppercase " +"hexadecimals, :c:type:`intmax_t`, :c:type:`ptrdiff_t`, :c:type:`wchar_t` C " +"strings, variable width and precision) in :c:func:`PyUnicode_FromFormat` " +"and :c:func:`PyUnicode_FromFormatV`. (Contributed by Serhiy Storchaka in :gh:" +"`98836`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2110 +msgid "" +"An unrecognized format character in :c:func:`PyUnicode_FromFormat` and :c:" +"func:`PyUnicode_FromFormatV` now sets a :exc:`SystemError`. In previous " +"versions it caused all the rest of the format string to be copied as-is to " +"the result string, and any extra arguments discarded. (Contributed by Serhiy " +"Storchaka in :gh:`95781`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2116 +msgid "" +"Fix wrong sign placement in :c:func:`PyUnicode_FromFormat` and :c:func:" +"`PyUnicode_FromFormatV`. (Contributed by Philip Georgi in :gh:`95504`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2120 +msgid "" +"Extension classes wanting to add a ``__dict__`` or weak reference slot " +"should use :c:macro:`Py_TPFLAGS_MANAGED_DICT` and :c:macro:" +"`Py_TPFLAGS_MANAGED_WEAKREF` instead of ``tp_dictoffset`` and " +"``tp_weaklistoffset``, respectively. The use of ``tp_dictoffset`` and " +"``tp_weaklistoffset`` is still supported, but does not fully support " +"multiple inheritance (:gh:`95589`), and performance may be worse. Classes " +"declaring :c:macro:`Py_TPFLAGS_MANAGED_DICT` should call :c:func:`!" +"_PyObject_VisitManagedDict` and :c:func:`!_PyObject_ClearManagedDict` to " +"traverse and clear their instance's dictionaries. To clear weakrefs, call :c:" +"func:`PyObject_ClearWeakRefs`, as before." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2132 +msgid "" +"The :c:func:`PyUnicode_FSDecoder` function no longer accepts bytes-like " +"paths, like :class:`bytearray` and :class:`memoryview` types: only the " +"exact :class:`bytes` type is accepted for bytes strings. (Contributed by " +"Victor Stinner in :gh:`98393`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2137 +msgid "" +"The :c:macro:`Py_CLEAR`, :c:macro:`Py_SETREF` and :c:macro:`Py_XSETREF` " +"macros now only evaluate their arguments once. If an argument has side " +"effects, these side effects are no longer duplicated. (Contributed by Victor " +"Stinner in :gh:`98724`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2142 +msgid "" +"The interpreter's error indicator is now always normalized. This means that :" +"c:func:`PyErr_SetObject`, :c:func:`PyErr_SetString` and the other functions " +"that set the error indicator now normalize the exception before storing it. " +"(Contributed by Mark Shannon in :gh:`101578`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2147 +msgid "" +"``_Py_RefTotal`` is no longer authoritative and only kept around for ABI " +"compatibility. Note that it is an internal global and only available on " +"debug builds. If you happen to be using it then you'll need to start using " +"``_Py_GetGlobalRefTotal()``." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2152 +msgid "" +"The following functions now select an appropriate metaclass for the newly " +"created type:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2155 +msgid ":c:func:`PyType_FromSpec`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2156 +msgid ":c:func:`PyType_FromSpecWithBases`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2157 +msgid ":c:func:`PyType_FromModuleAndSpec`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2159 +msgid "" +"Creating classes whose metaclass overrides :c:member:`~PyTypeObject.tp_new` " +"is deprecated, and in Python 3.14+ it will be disallowed. Note that these " +"functions ignore ``tp_new`` of the metaclass, possibly allowing incomplete " +"initialization." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2164 +msgid "" +"Note that :c:func:`PyType_FromMetaclass` (added in Python 3.12) already " +"disallows creating classes whose metaclass overrides ``tp_new`` (:meth:" +"`~object.__new__` in Python)." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2168 +msgid "" +"Since ``tp_new`` overrides almost everything ``PyType_From*`` functions do, " +"the two are incompatible with each other. The existing behavior -- ignoring " +"the metaclass for several steps of type creation -- is unsafe in general, " +"since (meta)classes assume that ``tp_new`` was called. There is no simple " +"general workaround. One of the following may work for you:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2175 +msgid "If you control the metaclass, avoid using ``tp_new`` in it:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2177 +msgid "" +"If initialization can be skipped, it can be done in :c:member:`~PyTypeObject." +"tp_init` instead." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2179 +msgid "" +"If the metaclass doesn't need to be instantiated from Python, set its " +"``tp_new`` to ``NULL`` using the :c:macro:" +"`Py_TPFLAGS_DISALLOW_INSTANTIATION` flag. This makes it acceptable for " +"``PyType_From*`` functions." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2184 +msgid "" +"Avoid ``PyType_From*`` functions: if you don't need C-specific features " +"(slots or setting the instance size), create types by :ref:`calling ` " +"the metaclass." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2188 +msgid "" +"If you *know* the ``tp_new`` can be skipped safely, filter the deprecation " +"warning out using :func:`warnings.catch_warnings` from Python." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2191 +msgid "" +":c:var:`PyOS_InputHook` and :c:var:`PyOS_ReadlineFunctionPointer` are no " +"longer called in :ref:`subinterpreters `. This is " +"because clients generally rely on process-wide global state (since these " +"callbacks have no way of recovering extension module state)." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2196 +msgid "" +"This also avoids situations where extensions may find themselves running in " +"a subinterpreter that they don't support (or haven't yet been loaded in). " +"See :gh:`104668` for more info." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2200 +msgid "" +":c:struct:`PyLongObject` has had its internals changed for better " +"performance. Although the internals of :c:struct:`PyLongObject` are private, " +"they are used by some extension modules. The internal fields should no " +"longer be accessed directly, instead the API functions beginning ``PyLong_..." +"`` should be used instead. Two new *unstable* API functions are provided for " +"efficient access to the value of :c:struct:`PyLongObject`\\s which fit into " +"a single machine word:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2208 +msgid ":c:func:`PyUnstable_Long_IsCompact`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2209 +msgid ":c:func:`PyUnstable_Long_CompactValue`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2211 +msgid "" +"Custom allocators, set via :c:func:`PyMem_SetAllocator`, are now required to " +"be thread-safe, regardless of memory domain. Allocators that don't have " +"their own state, including \"hooks\", are not affected. If your custom " +"allocator is not already thread-safe and you need guidance then please " +"create a new GitHub issue and CC ``@ericsnowcurrently``." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2221 +msgid "" +"In accordance with :pep:`699`, the ``ma_version_tag`` field in :c:type:" +"`PyDictObject` is deprecated for extension modules. Accessing this field " +"will generate a compiler warning at compile time. This field will be removed " +"in Python 3.14. (Contributed by Ramvikrams and Kumar Aditya in :gh:`101193`. " +"PEP by Ken Jin.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2226 +msgid "Deprecate global configuration variable:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2228 ../Doc/whatsnew/3.12.rst:2313 +msgid ":c:var:`Py_DebugFlag`: use :c:member:`PyConfig.parser_debug`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2229 ../Doc/whatsnew/3.12.rst:2314 +msgid ":c:var:`Py_VerboseFlag`: use :c:member:`PyConfig.verbose`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2230 ../Doc/whatsnew/3.12.rst:2315 +msgid ":c:var:`Py_QuietFlag`: use :c:member:`PyConfig.quiet`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2231 ../Doc/whatsnew/3.12.rst:2316 +msgid ":c:var:`Py_InteractiveFlag`: use :c:member:`PyConfig.interactive`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2232 ../Doc/whatsnew/3.12.rst:2317 +msgid ":c:var:`Py_InspectFlag`: use :c:member:`PyConfig.inspect`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2233 ../Doc/whatsnew/3.12.rst:2318 +msgid ":c:var:`Py_OptimizeFlag`: use :c:member:`PyConfig.optimization_level`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2234 ../Doc/whatsnew/3.12.rst:2319 +msgid ":c:var:`Py_NoSiteFlag`: use :c:member:`PyConfig.site_import`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2235 ../Doc/whatsnew/3.12.rst:2320 +msgid ":c:var:`Py_BytesWarningFlag`: use :c:member:`PyConfig.bytes_warning`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2236 ../Doc/whatsnew/3.12.rst:2321 +msgid ":c:var:`Py_FrozenFlag`: use :c:member:`PyConfig.pathconfig_warnings`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2237 ../Doc/whatsnew/3.12.rst:2322 +msgid "" +":c:var:`Py_IgnoreEnvironmentFlag`: use :c:member:`PyConfig.use_environment`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2238 ../Doc/whatsnew/3.12.rst:2323 +msgid "" +":c:var:`Py_DontWriteBytecodeFlag`: use :c:member:`PyConfig.write_bytecode`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2239 ../Doc/whatsnew/3.12.rst:2324 +msgid "" +":c:var:`Py_NoUserSiteDirectory`: use :c:member:`PyConfig.user_site_directory`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2240 ../Doc/whatsnew/3.12.rst:2325 +msgid "" +":c:var:`Py_UnbufferedStdioFlag`: use :c:member:`PyConfig.buffered_stdio`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2241 ../Doc/whatsnew/3.12.rst:2326 +msgid "" +":c:var:`Py_HashRandomizationFlag`: use :c:member:`PyConfig.use_hash_seed` " +"and :c:member:`PyConfig.hash_seed`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2243 ../Doc/whatsnew/3.12.rst:2328 +msgid ":c:var:`Py_IsolatedFlag`: use :c:member:`PyConfig.isolated`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2244 ../Doc/whatsnew/3.12.rst:2329 +msgid "" +":c:var:`Py_LegacyWindowsFSEncodingFlag`: use :c:member:`PyPreConfig." +"legacy_windows_fs_encoding`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2245 ../Doc/whatsnew/3.12.rst:2330 +msgid "" +":c:var:`Py_LegacyWindowsStdioFlag`: use :c:member:`PyConfig." +"legacy_windows_stdio`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2246 ../Doc/whatsnew/3.12.rst:2331 +msgid "" +":c:var:`!Py_FileSystemDefaultEncoding`: use :c:member:`PyConfig." +"filesystem_encoding`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2247 ../Doc/whatsnew/3.12.rst:2332 +msgid "" +":c:var:`!Py_HasFileSystemDefaultEncoding`: use :c:member:`PyConfig." +"filesystem_encoding`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2248 ../Doc/whatsnew/3.12.rst:2333 +msgid "" +":c:var:`!Py_FileSystemDefaultEncodeErrors`: use :c:member:`PyConfig." +"filesystem_errors`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2249 ../Doc/whatsnew/3.12.rst:2334 +msgid "" +":c:var:`!Py_UTF8Mode`: use :c:member:`PyPreConfig.utf8_mode` (see :c:func:" +"`Py_PreInitialize`)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2251 +msgid "" +"The :c:func:`Py_InitializeFromConfig` API should be used with :c:type:" +"`PyConfig` instead. (Contributed by Victor Stinner in :gh:`77782`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2255 +msgid "" +"Creating :c:data:`immutable types ` with mutable " +"bases is deprecated and will be disabled in Python 3.14. (:gh:`95388`)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2258 +msgid "" +"The :file:`structmember.h` header is deprecated, though it continues to be " +"available and there are no plans to remove it." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2261 +msgid "" +"Its contents are now available just by including :file:`Python.h`, with a " +"``Py`` prefix added if it was missing:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2264 +msgid "" +":c:struct:`PyMemberDef`, :c:func:`PyMember_GetOne` and :c:func:" +"`PyMember_SetOne`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2266 +msgid "" +"Type macros like :c:macro:`Py_T_INT`, :c:macro:`Py_T_DOUBLE`, etc. " +"(previously ``T_INT``, ``T_DOUBLE``, etc.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2268 +msgid "" +"The flags :c:macro:`Py_READONLY` (previously ``READONLY``) and :c:macro:" +"`Py_AUDIT_READ` (previously all uppercase)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2271 +msgid "Several items are not exposed from :file:`Python.h`:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2273 +msgid ":c:macro:`T_OBJECT` (use :c:macro:`Py_T_OBJECT_EX`)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2274 +msgid ":c:macro:`T_NONE` (previously undocumented, and pretty quirky)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2275 +msgid "The macro ``WRITE_RESTRICTED`` which does nothing." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2276 +msgid "" +"The macros ``RESTRICTED`` and ``READ_RESTRICTED``, equivalents of :c:macro:" +"`Py_AUDIT_READ`." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2278 +msgid "" +"In some configurations, ```` is not included from :file:`Python." +"h`. It should be included manually when using ``offsetof()``." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2281 +msgid "" +"The deprecated header continues to provide its original contents under the " +"original names. Your old code can stay unchanged, unless the extra include " +"and non-namespaced macros bother you greatly." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2286 +msgid "" +"(Contributed in :gh:`47146` by Petr Viktorin, based on earlier work by " +"Alexander Belopolsky and Matthias Braun.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2289 +msgid "" +":c:func:`PyErr_Fetch` and :c:func:`PyErr_Restore` are deprecated. Use :c:" +"func:`PyErr_GetRaisedException` and :c:func:`PyErr_SetRaisedException` " +"instead. (Contributed by Mark Shannon in :gh:`101578`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2294 +msgid "" +":c:func:`!PyErr_Display` is deprecated. Use :c:func:`PyErr_DisplayException` " +"instead. (Contributed by Irit Katriel in :gh:`102755`)." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2297 +msgid "" +"``_PyErr_ChainExceptions`` is deprecated. Use ``_PyErr_ChainExceptions1`` " +"instead. (Contributed by Irit Katriel in :gh:`102192`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2300 +msgid "" +"Using :c:func:`PyType_FromSpec`, :c:func:`PyType_FromSpecWithBases` or :c:" +"func:`PyType_FromModuleAndSpec` to create a class whose metaclass overrides :" +"c:member:`~PyTypeObject.tp_new` is deprecated. Call the metaclass instead." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2308 +msgid "" +"The ``ma_version_tag`` field in :c:type:`PyDictObject` for extension modules " +"(:pep:`699`; :gh:`101193`)." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2311 +msgid "Global configuration variables:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2336 +msgid "" +"The :c:func:`Py_InitializeFromConfig` API should be used with :c:type:" +"`PyConfig` instead." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2339 +msgid "" +"Creating :c:data:`immutable types ` with mutable " +"bases (:gh:`95388`)." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2343 +msgid "Pending Removal in Python 3.15" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2345 +msgid "" +":c:func:`PyImport_ImportModuleNoBlock`: use :c:func:`PyImport_ImportModule`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2346 +msgid ":c:type:`!Py_UNICODE_WIDE` type: use :c:type:`wchar_t`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2347 +msgid ":c:type:`Py_UNICODE` type: use :c:type:`wchar_t`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2348 +msgid "Python initialization functions:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2350 +msgid "" +":c:func:`PySys_ResetWarnOptions`: clear :data:`sys.warnoptions` and :data:`!" +"warnings.filters`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2352 +msgid ":c:func:`Py_GetExecPrefix`: get :data:`sys.exec_prefix`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2353 +msgid ":c:func:`Py_GetPath`: get :data:`sys.path`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2354 +msgid ":c:func:`Py_GetPrefix`: get :data:`sys.prefix`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2355 +msgid ":c:func:`Py_GetProgramFullPath`: get :data:`sys.executable`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2356 +msgid ":c:func:`Py_GetProgramName`: get :data:`sys.executable`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2357 +msgid "" +":c:func:`Py_GetPythonHome`: get :c:member:`PyConfig.home` or the :envvar:" +"`PYTHONHOME` environment variable" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2363 +msgid "" +"The following APIs are deprecated and will be removed, although there is " +"currently no date scheduled for their removal." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2366 +msgid ":c:macro:`Py_TPFLAGS_HAVE_FINALIZE`: unneeded since Python 3.8" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2367 +msgid ":c:func:`PyErr_Fetch`: use :c:func:`PyErr_GetRaisedException`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2368 +msgid "" +":c:func:`PyErr_NormalizeException`: use :c:func:`PyErr_GetRaisedException`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2369 +msgid ":c:func:`PyErr_Restore`: use :c:func:`PyErr_SetRaisedException`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2370 +msgid "" +":c:func:`PyModule_GetFilename`: use :c:func:`PyModule_GetFilenameObject`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2371 +msgid ":c:func:`PyOS_AfterFork`: use :c:func:`PyOS_AfterFork_Child`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2372 +msgid "" +":c:func:`PySlice_GetIndicesEx`: use :c:func:`PySlice_Unpack` and :c:func:" +"`PySlice_AdjustIndices`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2373 +msgid ":c:func:`!PyUnicode_AsDecodedObject`: use :c:func:`PyCodec_Decode`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2374 +msgid ":c:func:`!PyUnicode_AsDecodedUnicode`: use :c:func:`PyCodec_Decode`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2375 +msgid ":c:func:`!PyUnicode_AsEncodedObject`: use :c:func:`PyCodec_Encode`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2376 +msgid ":c:func:`!PyUnicode_AsEncodedUnicode`: use :c:func:`PyCodec_Encode`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2377 +msgid ":c:func:`PyUnicode_READY`: unneeded since Python 3.12" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2378 +msgid ":c:func:`!PyErr_Display`: use :c:func:`PyErr_DisplayException`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2379 +msgid ":c:func:`!_PyErr_ChainExceptions`: use ``_PyErr_ChainExceptions1``" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2380 +msgid "" +":c:member:`!PyBytesObject.ob_shash` member: call :c:func:`PyObject_Hash` " +"instead" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2382 +msgid ":c:member:`!PyDictObject.ma_version_tag` member" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2383 +msgid "Thread Local Storage (TLS) API:" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2385 +msgid ":c:func:`PyThread_create_key`: use :c:func:`PyThread_tss_alloc`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2386 +msgid ":c:func:`PyThread_delete_key`: use :c:func:`PyThread_tss_free`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2387 +msgid ":c:func:`PyThread_set_key_value`: use :c:func:`PyThread_tss_set`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2388 +msgid ":c:func:`PyThread_get_key_value`: use :c:func:`PyThread_tss_get`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2389 +msgid ":c:func:`PyThread_delete_key_value`: use :c:func:`PyThread_tss_delete`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2390 +msgid ":c:func:`PyThread_ReInitTLS`: unneeded since Python 3.7" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2395 +msgid "" +"Remove the :file:`token.h` header file. There was never any public tokenizer " +"C API. The :file:`token.h` header file was only designed to be used by " +"Python internals. (Contributed by Victor Stinner in :gh:`92651`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2400 +msgid "Legacy Unicode APIs have been removed. See :pep:`623` for detail." +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2402 +msgid ":c:macro:`!PyUnicode_WCHAR_KIND`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2403 +msgid ":c:func:`!PyUnicode_AS_UNICODE`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2404 +msgid ":c:func:`!PyUnicode_AsUnicode`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2405 +msgid ":c:func:`!PyUnicode_AsUnicodeAndSize`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2406 +msgid ":c:func:`!PyUnicode_AS_DATA`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2407 +msgid ":c:func:`!PyUnicode_FromUnicode`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2408 +msgid ":c:func:`!PyUnicode_GET_SIZE`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2409 +msgid ":c:func:`!PyUnicode_GetSize`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2410 +msgid ":c:func:`!PyUnicode_GET_DATA_SIZE`" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2412 +msgid "" +"Remove the ``PyUnicode_InternImmortal()`` function macro. (Contributed by " +"Victor Stinner in :gh:`85858`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2415 +msgid "" +"Remove ``Jython`` compatibility hacks from several stdlib modules and tests. " +"(Contributed by Nikita Sobolev in :gh:`99482`.)" +msgstr "" + +#: ../Doc/whatsnew/3.12.rst:2418 +msgid "" +"Remove ``_use_broken_old_ctypes_structure_semantics_`` flag from :mod:" +"`ctypes` module. (Contributed by Nikita Sobolev in :gh:`99285`.)" +msgstr "" diff --git a/whatsnew/3.2.po b/whatsnew/3.2.po index 908bf21c7f..8e4de30a73 100644 --- a/whatsnew/3.2.po +++ b/whatsnew/3.2.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-09-06 09:08-0300\n" "Last-Translator: \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/whatsnew/3.2.rst:3 msgid "What's New In Python 3.2" @@ -411,18 +411,20 @@ msgstr "" "almacena el nombre del archivo real que se importó:" #: ../Doc/whatsnew/3.2.rst:322 +#, fuzzy msgid "" -"The tag that is unique to each interpreter is accessible from the :mod:`imp` " -"module:" +"The tag that is unique to each interpreter is accessible from the :mod:`!" +"imp` module:" msgstr "" "La etiqueta que es única para cada intérprete es accesible desde el módulo :" "mod:`imp`:" #: ../Doc/whatsnew/3.2.rst:329 +#, fuzzy msgid "" "Scripts that try to deduce source filename from the imported file now need " "to be smarter. It is no longer sufficient to simply strip the \"c\" from a " -"\".pyc\" filename. Instead, use the new functions in the :mod:`imp` module:" +"\".pyc\" filename. Instead, use the new functions in the :mod:`!imp` module:" msgstr "" "Los scripts que intentan deducir el nombre del archivo de origen del archivo " "importado ahora deben ser más inteligentes. Ya no es suficiente simplemente " @@ -596,13 +598,14 @@ msgstr "" "el entorno deben usar cadenas nativas. Los dos no se pueden mezclar." #: ../Doc/whatsnew/3.2.rst:422 +#, fuzzy msgid "" "For server implementers writing CGI-to-WSGI pathways or other CGI-style " "protocols, the users must to be able access the environment using native " "strings even though the underlying platform may have a different " "convention. To bridge this gap, the :mod:`wsgiref` module has a new " "function, :func:`wsgiref.handlers.read_environ` for transcoding CGI " -"variables from :attr:`os.environ` into native strings and returning a new " +"variables from :data:`os.environ` into native strings and returning a new " "dictionary." msgstr "" "Para los implementadores de servidores que escriben rutas de CGI a WSGI u " @@ -674,7 +677,7 @@ msgstr "" "antes de la búsqueda o que proporcionan un método :meth:`__missing__` para " "claves desconocidas::" -#: ../Doc/whatsnew/3.2.rst:481 +#: ../Doc/whatsnew/3.2.rst:483 msgid "" "(Suggested by Raymond Hettinger and implemented by Eric Smith in :issue:" "`6081`.)" @@ -682,11 +685,12 @@ msgstr "" "(Sugerido por Raymond Hettinger e implementado por Eric Smith en :issue:" "`6081`.)" -#: ../Doc/whatsnew/3.2.rst:484 +#: ../Doc/whatsnew/3.2.rst:486 +#, fuzzy msgid "" "The interpreter can now be started with a quiet option, ``-q``, to prevent " "the copyright and version information from being displayed in the " -"interactive mode. The option can be introspected using the :attr:`sys." +"interactive mode. The option can be introspected using the :data:`sys." "flags` attribute:" msgstr "" "El intérprete ahora puede iniciarse con una opción silenciosa, ``-q``, para " @@ -694,11 +698,11 @@ msgstr "" "interactivo. La opción se puede introspectar usando el atributo :attr:`sys." "flags`:" -#: ../Doc/whatsnew/3.2.rst:496 +#: ../Doc/whatsnew/3.2.rst:498 msgid "(Contributed by Marcin Wojdyr in :issue:`1772833`)." msgstr "(Contribución de Marcin Wojdyr en :issue:`1772833`)." -#: ../Doc/whatsnew/3.2.rst:498 +#: ../Doc/whatsnew/3.2.rst:500 msgid "" "The :func:`hasattr` function works by calling :func:`getattr` and detecting " "whether an exception is raised. This technique allows it to detect methods " @@ -716,14 +720,14 @@ msgstr "" "genuinos. Ahora, *hasattr* se ha ajustado para capturar solo :exc:" "`AttributeError` y dejar que otras excepciones pasen::" -#: ../Doc/whatsnew/3.2.rst:517 +#: ../Doc/whatsnew/3.2.rst:519 msgid "" "(Discovered by Yury Selivanov and fixed by Benjamin Peterson; :issue:`9666`.)" msgstr "" "(Descubierto por Yury Selivanov y arreglado por Benjamin Peterson; :issue:" "`9666`.)" -#: ../Doc/whatsnew/3.2.rst:519 +#: ../Doc/whatsnew/3.2.rst:521 msgid "" "The :func:`str` of a float or complex number is now the same as its :func:" "`repr`. Previously, the :func:`str` form was shorter but that just caused " @@ -735,11 +739,11 @@ msgstr "" "eso solo causaba confusión y ya no es necesario ahora que el más corto " "posible :func:`repr` se muestra por defecto:" -#: ../Doc/whatsnew/3.2.rst:530 +#: ../Doc/whatsnew/3.2.rst:532 msgid "(Proposed and implemented by Mark Dickinson; :issue:`9337`.)" msgstr "(Propuesto e implementado por Mark Dickinson; :issue:`9337`.)" -#: ../Doc/whatsnew/3.2.rst:532 +#: ../Doc/whatsnew/3.2.rst:534 msgid "" ":class:`memoryview` objects now have a :meth:`~memoryview.release()` method " "and they also now support the context management protocol. This allows " @@ -751,11 +755,11 @@ msgstr "" "permite la liberación oportuna de los recursos adquiridos al solicitar un " "búfer del objeto original." -#: ../Doc/whatsnew/3.2.rst:541 +#: ../Doc/whatsnew/3.2.rst:543 msgid "(Added by Antoine Pitrou; :issue:`9757`.)" msgstr "(Añadido por Antoine Pitrou; :issue:`9757`.)" -#: ../Doc/whatsnew/3.2.rst:543 +#: ../Doc/whatsnew/3.2.rst:545 msgid "" "Previously it was illegal to delete a name from the local namespace if it " "occurs as a free variable in a nested block::" @@ -763,7 +767,7 @@ msgstr "" "Anteriormente, era ilegal eliminar un nombre del espacio de nombres local si " "aparece como una variable libre en un bloque anidado::" -#: ../Doc/whatsnew/3.2.rst:552 +#: ../Doc/whatsnew/3.2.rst:554 msgid "" "This is now allowed. Remember that the target of an :keyword:`except` " "clause is cleared, so this code which used to work with Python 2.6, raised " @@ -773,18 +777,19 @@ msgstr "" "`except` se borra, por lo que este código que solía funcionar con Python " "2.6, lanza un :exc:`SyntaxError` con Python 3.1 y ahora funciona nuevamente::" -#: ../Doc/whatsnew/3.2.rst:565 +#: ../Doc/whatsnew/3.2.rst:567 msgid "(See :issue:`4617`.)" msgstr "(Ver :issue:`4617`.)" -#: ../Doc/whatsnew/3.2.rst:567 +#: ../Doc/whatsnew/3.2.rst:569 +#, fuzzy msgid "" -"The internal :c:type:`structsequence` tool now creates subclasses of tuple. " -"This means that C structures like those returned by :func:`os.stat`, :func:" -"`time.gmtime`, and :attr:`sys.version_info` now work like a :term:`named " -"tuple` and now work with functions and methods that expect a tuple as an " -"argument. This is a big step forward in making the C structures as flexible " -"as their pure Python counterparts:" +":ref:`Struct sequence types ` are now subclasses of " +"tuple. This means that C structures like those returned by :func:`os.stat`, :" +"func:`time.gmtime`, and :data:`sys.version_info` now work like a :term:" +"`named tuple` and now work with functions and methods that expect a tuple as " +"an argument. This is a big step forward in making the C structures as " +"flexible as their pure Python counterparts:" msgstr "" "La herramienta interna :c:type:`structsequence` ahora crea subclases de " "tupla. Esto significa que las estructuras C como las retornadas por :func:" @@ -793,7 +798,7 @@ msgstr "" "una tupla como argumento. Este es un gran paso adelante para hacer que las " "estructuras de C sean tan flexibles como sus contrapartes de Python puro:" -#: ../Doc/whatsnew/3.2.rst:580 +#: ../Doc/whatsnew/3.2.rst:582 msgid "" "(Suggested by Arfrever Frehtes Taifersar Arahesis and implemented by " "Benjamin Peterson in :issue:`8413`.)" @@ -801,7 +806,7 @@ msgstr "" "(Sugerido por Arfrever Frehtes Taifersar Arahesis e implementado por " "Benjamin Peterson en :issue:`8413`.)" -#: ../Doc/whatsnew/3.2.rst:583 +#: ../Doc/whatsnew/3.2.rst:585 msgid "" "Warnings are now easier to control using the :envvar:`PYTHONWARNINGS` " "environment variable as an alternative to using ``-W`` at the command line:" @@ -810,7 +815,7 @@ msgstr "" "entorno :envvar:`PYTHONWARNINGS` como alternativa al uso de ``-W`` en la " "línea de comando:" -#: ../Doc/whatsnew/3.2.rst:590 +#: ../Doc/whatsnew/3.2.rst:592 msgid "" "(Suggested by Barry Warsaw and implemented by Philip Jenvey in :issue:" "`7301`.)" @@ -818,7 +823,7 @@ msgstr "" "(Sugerido por Barry Warsaw e implementado por Philip Jenvey en :issue:" "`7301`.)" -#: ../Doc/whatsnew/3.2.rst:592 +#: ../Doc/whatsnew/3.2.rst:594 msgid "" "A new warning category, :exc:`ResourceWarning`, has been added. It is " "emitted when potential issues with resource consumption or cleanup are " @@ -832,11 +837,12 @@ msgstr "" "lanzamiento normales, pero se puede habilitar a través de los medios " "proporcionados por el módulo :mod:`warnings` o en la línea de comandos." -#: ../Doc/whatsnew/3.2.rst:598 +#: ../Doc/whatsnew/3.2.rst:600 +#, fuzzy msgid "" "A :exc:`ResourceWarning` is issued at interpreter shutdown if the :data:`gc." -"garbage` list isn't empty, and if :attr:`gc.DEBUG_UNCOLLECTABLE` is set, all " -"uncollectable objects are printed. This is meant to make the programmer " +"garbage` list isn't empty, and if :const:`gc.DEBUG_UNCOLLECTABLE` is set, " +"all uncollectable objects are printed. This is meant to make the programmer " "aware that their code contains object finalization issues." msgstr "" "Un :exc:`ResourceWarning` se emite en el cierre del intérprete si la lista :" @@ -845,7 +851,7 @@ msgstr "" "objetivo informar al programador de que su código contiene problemas de " "finalización de objetos." -#: ../Doc/whatsnew/3.2.rst:603 +#: ../Doc/whatsnew/3.2.rst:605 msgid "" "A :exc:`ResourceWarning` is also issued when a :term:`file object` is " "destroyed without having been explicitly closed. While the deallocator for " @@ -862,7 +868,7 @@ msgstr "" "se muestra un ejemplo de cómo habilitar la advertencia desde la línea de " "comando:" -#: ../Doc/whatsnew/3.2.rst:617 +#: ../Doc/whatsnew/3.2.rst:619 msgid "" "(Added by Antoine Pitrou and Georg Brandl in :issue:`10093` and :issue:" "`477863`.)" @@ -870,13 +876,14 @@ msgstr "" "(Agregado por Antoine Pitrou y Georg Brandl en :issue:`10093` y :issue:" "`477863`.)" -#: ../Doc/whatsnew/3.2.rst:619 +#: ../Doc/whatsnew/3.2.rst:621 +#, fuzzy msgid "" ":class:`range` objects now support *index* and *count* methods. This is part " "of an effort to make more objects fully implement the :class:`collections." "Sequence` :term:`abstract base class`. As a result, the language will have " "a more uniform API. In addition, :class:`range` objects now support slicing " -"and negative indices, even with values larger than :attr:`sys.maxsize`. " +"and negative indices, even with values larger than :data:`sys.maxsize`. " "This makes *range* more interoperable with lists::" msgstr "" "Los objetos :class:`range` ahora admiten los métodos *index* y *count*. Esto " @@ -887,7 +894,7 @@ msgstr "" "valores mayores que :attr:`sys.maxsize`. Esto hace que *range* sea más " "interoperable con listas::" -#: ../Doc/whatsnew/3.2.rst:635 +#: ../Doc/whatsnew/3.2.rst:637 msgid "" "(Contributed by Daniel Stutzbach in :issue:`9213`, by Alexander Belopolsky " "in :issue:`2690`, and by Nick Coghlan in :issue:`10889`.)" @@ -895,7 +902,7 @@ msgstr "" "(Contribuido por Daniel Stutzbach en :issue:`9213`, por Alexander Belopolsky " "en :issue:`2690`, y por Nick Coghlan en :issue:`10889`.)" -#: ../Doc/whatsnew/3.2.rst:638 +#: ../Doc/whatsnew/3.2.rst:640 msgid "" "The :func:`callable` builtin function from Py2.x was resurrected. It " "provides a concise, readable alternative to using an :term:`abstract base " @@ -905,11 +912,11 @@ msgstr "" "una alternativa concisa y legible al uso de una :term:`abstract base class` " "en una expresión como ``isinstance(x, collections.Callable)``:" -#: ../Doc/whatsnew/3.2.rst:647 +#: ../Doc/whatsnew/3.2.rst:649 msgid "(See :issue:`10518`.)" msgstr "(Ver :issue:`10518`.)" -#: ../Doc/whatsnew/3.2.rst:649 +#: ../Doc/whatsnew/3.2.rst:651 msgid "" "Python's import mechanism can now load modules installed in directories with " "non-ASCII characters in the path name. This solved an aggravating problem " @@ -920,15 +927,15 @@ msgstr "" "resolvió un problema agravante con los directorios de inicio para los " "usuarios con caracteres no ASCII en sus nombres de usuario." -#: ../Doc/whatsnew/3.2.rst:653 +#: ../Doc/whatsnew/3.2.rst:655 msgid "(Required extensive work by Victor Stinner in :issue:`9425`.)" msgstr "(Trabajo extenso requerido por Victor Stinner en :issue:`9425`.)" -#: ../Doc/whatsnew/3.2.rst:657 +#: ../Doc/whatsnew/3.2.rst:659 msgid "New, Improved, and Deprecated Modules" msgstr "Módulos nuevos, mejorados y obsoletos" -#: ../Doc/whatsnew/3.2.rst:659 +#: ../Doc/whatsnew/3.2.rst:661 msgid "" "Python's standard library has undergone significant maintenance efforts and " "quality improvements." @@ -936,7 +943,7 @@ msgstr "" "La biblioteca estándar de Python ha sido objeto de importantes esfuerzos de " "mantenimiento y mejoras de calidad." -#: ../Doc/whatsnew/3.2.rst:662 +#: ../Doc/whatsnew/3.2.rst:664 msgid "" "The biggest news for Python 3.2 is that the :mod:`email` package, :mod:" "`mailbox` module, and :mod:`nntplib` modules now work correctly with the " @@ -948,7 +955,7 @@ msgstr "" "el modelo de bytes/texto en Python 3. Por primera vez , existe un manejo " "correcto de mensajes con codificaciones mixtas." -#: ../Doc/whatsnew/3.2.rst:667 +#: ../Doc/whatsnew/3.2.rst:669 msgid "" "Throughout the standard library, there has been more careful attention to " "encodings and text versus bytes issues. In particular, interactions with " @@ -961,7 +968,7 @@ msgstr "" "datos que no son ASCII mediante la codificación MBCS de Windows, " "codificaciones con reconocimiento de configuración regional o UTF-8." -#: ../Doc/whatsnew/3.2.rst:672 +#: ../Doc/whatsnew/3.2.rst:674 msgid "" "Another significant win is the addition of substantially better support for " "*SSL* connections and security certificates." @@ -969,7 +976,7 @@ msgstr "" "Otro logro importante es la adición de un soporte sustancialmente mejor para " "conexiones *SSL* y certificados de seguridad." -#: ../Doc/whatsnew/3.2.rst:675 +#: ../Doc/whatsnew/3.2.rst:677 msgid "" "In addition, more classes now implement a :term:`context manager` to support " "convenient and reliable resource clean-up using a :keyword:`with` statement." @@ -978,11 +985,11 @@ msgstr "" "una conveniente y confiable limpieza de recursos usando una declaración :" "keyword:`with`." -#: ../Doc/whatsnew/3.2.rst:679 +#: ../Doc/whatsnew/3.2.rst:681 msgid "email" msgstr "email" -#: ../Doc/whatsnew/3.2.rst:681 +#: ../Doc/whatsnew/3.2.rst:683 msgid "" "The usability of the :mod:`email` package in Python 3 has been mostly fixed " "by the extensive efforts of R. David Murray. The problem was that emails " @@ -999,7 +1006,7 @@ msgstr "" "el paquete email tuvo que ampliarse para analizar y generar mensajes de " "correo electrónico en formato de bytes." -#: ../Doc/whatsnew/3.2.rst:688 +#: ../Doc/whatsnew/3.2.rst:690 msgid "" "New functions :func:`~email.message_from_bytes` and :func:`~email." "message_from_binary_file`, and new classes :class:`~email.parser." @@ -1011,7 +1018,7 @@ msgstr "" "BytesFeedParser` y :class:`~email.parser.BytesParser` permiten mensajes de " "datos en binario para ser analizados (*parsed*) en objetos modelados." -#: ../Doc/whatsnew/3.2.rst:693 +#: ../Doc/whatsnew/3.2.rst:695 msgid "" "Given bytes input to the model, :meth:`~email.message.Message.get_payload` " "will by default decode a message body that has a :mailheader:`Content-" @@ -1024,7 +1031,7 @@ msgstr "" "caracteres especificado en el encabezados MIME y retorna la cadena de " "caracteres resultante." -#: ../Doc/whatsnew/3.2.rst:698 +#: ../Doc/whatsnew/3.2.rst:700 msgid "" "Given bytes input to the model, :class:`~email.generator.Generator` will " "convert message bodies that have a :mailheader:`Content-Transfer-Encoding` " @@ -1035,7 +1042,7 @@ msgstr "" "Transfer-Encoding` de *8bit* para tener en su lugar un *7bit*:mailheader:" "`Content-Transfer-Encoding`." -#: ../Doc/whatsnew/3.2.rst:702 +#: ../Doc/whatsnew/3.2.rst:704 msgid "" "Headers with unencoded non-ASCII bytes are deemed to be :rfc:`2047`\\ -" "encoded using the *unknown-8bit* character set." @@ -1043,7 +1050,7 @@ msgstr "" "Los encabezados con bytes no codificados que no sean ASCII se consideran :" "rfc:`2047`\\ -codificados utilizando el juego de caracteres *unknown-8bit*." -#: ../Doc/whatsnew/3.2.rst:705 +#: ../Doc/whatsnew/3.2.rst:707 msgid "" "A new class :class:`~email.generator.BytesGenerator` produces bytes as " "output, preserving any unchanged non-ASCII data that was present in the " @@ -1056,7 +1063,7 @@ msgstr "" "cuerpos de los mensajes con un :mailheader:`Content-Transfer-Encoding` de " "*8bit*." -#: ../Doc/whatsnew/3.2.rst:710 +#: ../Doc/whatsnew/3.2.rst:712 msgid "" "The :mod:`smtplib` :class:`~smtplib.SMTP` class now accepts a byte string " "for the *msg* argument to the :meth:`~smtplib.SMTP.sendmail` method, and a " @@ -1070,7 +1077,7 @@ msgstr "" "class:`~email.message.Message` y opcionalmente puede obtener las direcciones " "*from_addr* y *to_addrs* directamente del objeto." -#: ../Doc/whatsnew/3.2.rst:716 +#: ../Doc/whatsnew/3.2.rst:718 msgid "" "(Proposed and implemented by R. David Murray, :issue:`4661` and :issue:" "`10321`.)" @@ -1078,11 +1085,11 @@ msgstr "" "(Propuesto e implementado por R. David Murray, :issue:`4661` y :issue:" "`10321`.)" -#: ../Doc/whatsnew/3.2.rst:719 +#: ../Doc/whatsnew/3.2.rst:721 msgid "elementtree" msgstr "elementtree" -#: ../Doc/whatsnew/3.2.rst:721 +#: ../Doc/whatsnew/3.2.rst:723 msgid "" "The :mod:`xml.etree.ElementTree` package and its :mod:`xml.etree." "cElementTree` counterpart have been updated to version 1.3." @@ -1090,11 +1097,11 @@ msgstr "" "El paquete :mod:`xml.etree.ElementTree` y su contraparte :mod:`xml.etree." "cElementTree` se han actualizado a la versión 1.3." -#: ../Doc/whatsnew/3.2.rst:724 +#: ../Doc/whatsnew/3.2.rst:726 msgid "Several new and useful functions and methods have been added:" msgstr "Se han agregado varias nuevas y útiles funciones y métodos:" -#: ../Doc/whatsnew/3.2.rst:726 +#: ../Doc/whatsnew/3.2.rst:728 msgid "" ":func:`xml.etree.ElementTree.fromstringlist` which builds an XML document " "from a sequence of fragments" @@ -1102,7 +1109,7 @@ msgstr "" ":func:`xml.etree.ElementTree.fromstringlist` que crea un documento XML a " "partir de una secuencia de fragmentos" -#: ../Doc/whatsnew/3.2.rst:728 +#: ../Doc/whatsnew/3.2.rst:730 msgid "" ":func:`xml.etree.ElementTree.register_namespace` for registering a global " "namespace prefix" @@ -1110,7 +1117,7 @@ msgstr "" ":func:`xml.etree.ElementTree.register_namespace` para registrar un prefijo " "de espacio de nombres global" -#: ../Doc/whatsnew/3.2.rst:730 +#: ../Doc/whatsnew/3.2.rst:732 msgid "" ":func:`xml.etree.ElementTree.tostringlist` for string representation " "including all sublists" @@ -1118,7 +1125,7 @@ msgstr "" ":func:`xml.etree.ElementTree.tostringlist` para la representación de cadenas " "de caracteres, incluidas todas las sublistas" -#: ../Doc/whatsnew/3.2.rst:732 +#: ../Doc/whatsnew/3.2.rst:734 msgid "" ":meth:`xml.etree.ElementTree.Element.extend` for appending a sequence of " "zero or more elements" @@ -1126,7 +1133,7 @@ msgstr "" ":meth:`xml.etree.ElementTree.Element.extend` para agregar una secuencia de " "cero o más elementos" -#: ../Doc/whatsnew/3.2.rst:734 +#: ../Doc/whatsnew/3.2.rst:736 msgid "" ":meth:`xml.etree.ElementTree.Element.iterfind` searches an element and " "subelements" @@ -1134,7 +1141,7 @@ msgstr "" ":meth:`xml.etree.ElementTree.Element.iterfind` busca un elemento y " "subelementos" -#: ../Doc/whatsnew/3.2.rst:736 +#: ../Doc/whatsnew/3.2.rst:738 msgid "" ":meth:`xml.etree.ElementTree.Element.itertext` creates a text iterator over " "an element and its subelements" @@ -1142,13 +1149,13 @@ msgstr "" ":meth:`xml.etree.ElementTree.Element.itertext` crea un iterador de texto " "sobre un elemento y sus subelementos" -#: ../Doc/whatsnew/3.2.rst:738 +#: ../Doc/whatsnew/3.2.rst:740 msgid "" ":meth:`xml.etree.ElementTree.TreeBuilder.end` closes the current element" msgstr "" ":meth:`xml.etree.ElementTree.TreeBuilder.end` cierra el elemento actual" -#: ../Doc/whatsnew/3.2.rst:739 +#: ../Doc/whatsnew/3.2.rst:741 msgid "" ":meth:`xml.etree.ElementTree.TreeBuilder.doctype` handles a doctype " "declaration" @@ -1156,21 +1163,21 @@ msgstr "" ":meth:`xml.etree.ElementTree.TreeBuilder.doctype` gestiona la declaración " "*doctype*" -#: ../Doc/whatsnew/3.2.rst:742 +#: ../Doc/whatsnew/3.2.rst:744 msgid "Two methods have been deprecated:" msgstr "Dos métodos que han sido deprecados:" -#: ../Doc/whatsnew/3.2.rst:744 +#: ../Doc/whatsnew/3.2.rst:746 msgid ":meth:`xml.etree.ElementTree.getchildren` use ``list(elem)`` instead." msgstr "" ":meth:`xml.etree.ElementTree.getchildren` usar ``list(elem)`` en su lugar." -#: ../Doc/whatsnew/3.2.rst:745 +#: ../Doc/whatsnew/3.2.rst:747 msgid ":meth:`xml.etree.ElementTree.getiterator` use ``Element.iter`` instead." msgstr "" ":meth:`xml.etree.ElementTree.getiterator` usar ``Element.iter`` en su lugar." -#: ../Doc/whatsnew/3.2.rst:747 +#: ../Doc/whatsnew/3.2.rst:749 msgid "" "For details of the update, see `Introducing ElementTree `_ on " @@ -1180,15 +1187,15 @@ msgstr "" "ElementTree `_ en el sitio web de Fredrik Lundh." -#: ../Doc/whatsnew/3.2.rst:751 +#: ../Doc/whatsnew/3.2.rst:753 msgid "(Contributed by Florent Xicluna and Fredrik Lundh, :issue:`6472`.)" msgstr "(Contribución de Florent Xicluna y Fredrik Lundh, :issue:`6472`.)" -#: ../Doc/whatsnew/3.2.rst:754 +#: ../Doc/whatsnew/3.2.rst:756 msgid "functools" msgstr "functools" -#: ../Doc/whatsnew/3.2.rst:756 +#: ../Doc/whatsnew/3.2.rst:758 msgid "" "The :mod:`functools` module includes a new decorator for caching function " "calls. :func:`functools.lru_cache` can save repeated queries to an external " @@ -1199,7 +1206,7 @@ msgstr "" "consultas repetidas en un recurso externo siempre que se espere que los " "resultados sean los mismos." -#: ../Doc/whatsnew/3.2.rst:760 +#: ../Doc/whatsnew/3.2.rst:762 msgid "" "For example, adding a caching decorator to a database query function can " "save database accesses for popular searches:" @@ -1208,7 +1215,7 @@ msgstr "" "de consulta de base de datos puede ahorrar accesos a la base de datos para " "búsquedas populares:" -#: ../Doc/whatsnew/3.2.rst:773 +#: ../Doc/whatsnew/3.2.rst:775 msgid "" "To help with choosing an effective cache size, the wrapped function is " "instrumented for tracking cache statistics:" @@ -1216,7 +1223,7 @@ msgstr "" "Para ayudar a elegir un tamaño de caché efectivo, la función encapsulada " "está instrumentada para rastrear estadísticas de caché:" -#: ../Doc/whatsnew/3.2.rst:779 +#: ../Doc/whatsnew/3.2.rst:781 msgid "" "If the phonelist table gets updated, the outdated contents of the cache can " "be cleared with:" @@ -1224,19 +1231,20 @@ msgstr "" "Si la tabla *phonelist* se actualiza, el contenido desactualizado de la " "caché se puede borrar con:" -#: ../Doc/whatsnew/3.2.rst:784 +#: ../Doc/whatsnew/3.2.rst:786 +#, fuzzy msgid "" "(Contributed by Raymond Hettinger and incorporating design ideas from Jim " "Baker, Miki Tebeka, and Nick Coghlan; see `recipe 498245 `_\\, `recipe 577479 `_\\, :issue:`10586`, and :issue:`10593`.)" +"activestate.com/recipes/498245/>`_\\, `recipe 577479 `_\\, :issue:`10586`, and :issue:`10593`.)" msgstr "" "(Contribución de Raymond Hettinger e incorporando ideas de diseño de Jim " "Baker, Miki Tebeka, y Nick Coghlan; ver `recipe 498245 `_\\, `recipe 577479 `_\\, :issue:`10586`, y :issue:`10593`.)" -#: ../Doc/whatsnew/3.2.rst:790 +#: ../Doc/whatsnew/3.2.rst:792 msgid "" "The :func:`functools.wraps` decorator now adds a :attr:`__wrapped__` " "attribute pointing to the original callable function. This allows wrapped " @@ -1251,7 +1259,7 @@ msgstr "" "atributos faltantes como :attr:`__doc__` que podrían no estar definidos para " "el invocable envuelto." -#: ../Doc/whatsnew/3.2.rst:796 +#: ../Doc/whatsnew/3.2.rst:798 msgid "" "In the above example, the cache can be removed by recovering the original " "function:" @@ -1259,7 +1267,7 @@ msgstr "" "En el ejemplo anterior, la caché se puede eliminar recuperando la función " "original:" -#: ../Doc/whatsnew/3.2.rst:801 +#: ../Doc/whatsnew/3.2.rst:803 msgid "" "(By Nick Coghlan and Terrence Cole; :issue:`9567`, :issue:`3445`, and :issue:" "`8814`.)" @@ -1267,7 +1275,7 @@ msgstr "" "(Por Nick Coghlan y Terrence Cole; :issue:`9567`, :issue:`3445`, y :issue:" "`8814`.)" -#: ../Doc/whatsnew/3.2.rst:804 +#: ../Doc/whatsnew/3.2.rst:806 msgid "" "To help write classes with rich comparison methods, a new decorator :func:" "`functools.total_ordering` will use existing equality and inequality methods " @@ -1277,7 +1285,7 @@ msgstr "" "nuevo decorador :func:`functools.total_ordering` usará métodos de igualdad y " "desigualdad existentes para completar los métodos restantes." -#: ../Doc/whatsnew/3.2.rst:808 +#: ../Doc/whatsnew/3.2.rst:810 msgid "" "For example, supplying *__eq__* and *__lt__* will enable :func:`~functools." "total_ordering` to fill-in *__le__*, *__gt__* and *__ge__*::" @@ -1285,7 +1293,7 @@ msgstr "" "Por ejemplo, suministrar *__eq__* y *__lt__* permitirá que :func:`~functools." "total_ordering` complete *__le__*, *__gt__* and *__ge__*::" -#: ../Doc/whatsnew/3.2.rst:821 +#: ../Doc/whatsnew/3.2.rst:823 msgid "" "With the *total_ordering* decorator, the remaining comparison methods are " "filled in automatically." @@ -1293,14 +1301,14 @@ msgstr "" "Con el decorador *total_ordering*, los métodos de comparación restantes se " "completan automáticamente." -#: ../Doc/whatsnew/3.2.rst:824 ../Doc/whatsnew/3.2.rst:836 -#: ../Doc/whatsnew/3.2.rst:880 ../Doc/whatsnew/3.2.rst:901 -#: ../Doc/whatsnew/3.2.rst:915 ../Doc/whatsnew/3.2.rst:1785 -#: ../Doc/whatsnew/3.2.rst:1830 +#: ../Doc/whatsnew/3.2.rst:826 ../Doc/whatsnew/3.2.rst:838 +#: ../Doc/whatsnew/3.2.rst:882 ../Doc/whatsnew/3.2.rst:903 +#: ../Doc/whatsnew/3.2.rst:917 ../Doc/whatsnew/3.2.rst:1787 +#: ../Doc/whatsnew/3.2.rst:1831 msgid "(Contributed by Raymond Hettinger.)" msgstr "(Contribución por Raymond Hettinger.)" -#: ../Doc/whatsnew/3.2.rst:826 +#: ../Doc/whatsnew/3.2.rst:828 msgid "" "To aid in porting programs from Python 2, the :func:`functools.cmp_to_key` " "function converts an old-style comparison function to modern :term:`key " @@ -1310,7 +1318,7 @@ msgstr "" "`functools.cmp_to_key` convierte una función de comparación de estilo " "antiguo en la nueva :term:`key function`:" -#: ../Doc/whatsnew/3.2.rst:833 +#: ../Doc/whatsnew/3.2.rst:835 msgid "" "For sorting examples and a brief sorting tutorial, see the `Sorting HowTo " "`_ tutorial." @@ -1318,11 +1326,11 @@ msgstr "" "Para obtener ejemplos de ordenación y un breve tutorial, consulte el " "tutorial `Sorting HowTo `_." -#: ../Doc/whatsnew/3.2.rst:839 +#: ../Doc/whatsnew/3.2.rst:841 msgid "itertools" msgstr "itertools" -#: ../Doc/whatsnew/3.2.rst:841 +#: ../Doc/whatsnew/3.2.rst:843 msgid "" "The :mod:`itertools` module has a new :func:`~itertools.accumulate` function " "modeled on APL's *scan* operator and Numpy's *accumulate* function:" @@ -1331,7 +1339,7 @@ msgstr "" "accumulate` modelada en el operador *scan* de APL y la función *accumulate* " "de Numpy:" -#: ../Doc/whatsnew/3.2.rst:852 +#: ../Doc/whatsnew/3.2.rst:854 msgid "" "For an example using :func:`~itertools.accumulate`, see the :ref:`examples " "for the random module `." @@ -1339,7 +1347,7 @@ msgstr "" "Para un ejemplo usando :func:`~itertools.accumulate`, vea los :ref:`ejemplos " "para el módulo aleatorio `." -#: ../Doc/whatsnew/3.2.rst:855 +#: ../Doc/whatsnew/3.2.rst:857 msgid "" "(Contributed by Raymond Hettinger and incorporating design suggestions from " "Mark Dickinson.)" @@ -1347,11 +1355,11 @@ msgstr "" "(Contribución de Raymond Hettinger e incorporando sugerencias de diseño de " "Mark Dickinson.)" -#: ../Doc/whatsnew/3.2.rst:859 +#: ../Doc/whatsnew/3.2.rst:861 msgid "collections" msgstr "collections" -#: ../Doc/whatsnew/3.2.rst:861 +#: ../Doc/whatsnew/3.2.rst:863 msgid "" "The :class:`collections.Counter` class now has two forms of in-place " "subtraction, the existing *-=* operator for `saturating subtraction `_ que se define solo para dos hilos." -#: ../Doc/whatsnew/3.2.rst:930 +#: ../Doc/whatsnew/3.2.rst:932 msgid "" "Implemented as a two-phase cyclic barrier, :class:`~threading.Barrier` " "objects are suitable for use in loops. The separate *filling* and " @@ -1452,11 +1460,11 @@ msgstr "" "(drenan) antes de que cualquiera de ellos pueda retornar y volver a entrar " "en la barrera. La barrera se restablece completamente después de cada ciclo." -#: ../Doc/whatsnew/3.2.rst:935 +#: ../Doc/whatsnew/3.2.rst:937 msgid "Example of using barriers::" msgstr "Ejemplo de uso de barreras::" -#: ../Doc/whatsnew/3.2.rst:949 +#: ../Doc/whatsnew/3.2.rst:951 msgid "" "In this example, the barrier enforces a rule that votes cannot be counted at " "any polling site until all polls are closed. Notice how a solution with a " @@ -1471,7 +1479,7 @@ msgstr "" "trabajando (resumiendo las papeletas) después de que se cruza el punto de la " "barrera." -#: ../Doc/whatsnew/3.2.rst:955 +#: ../Doc/whatsnew/3.2.rst:957 msgid "" "If any of the predecessor tasks can hang or be delayed, a barrier can be " "created with an optional *timeout* parameter. Then if the timeout period " @@ -1485,7 +1493,7 @@ msgstr "" "alcancen el punto de barrera, se liberan todos los hilos en espera y se " "lanza una excepción :exc:`~threading.BrokenBarrierError`::" -#: ../Doc/whatsnew/3.2.rst:971 +#: ../Doc/whatsnew/3.2.rst:973 msgid "" "In this example, the barrier enforces a more robust rule. If some election " "sites do not finish before midnight, the barrier times-out and the ballots " @@ -1495,7 +1503,7 @@ msgstr "" "electorales no terminan antes de la medianoche, la barrera expira y las " "boletas se sellan y se depositan en una cola para su posterior manejo." -#: ../Doc/whatsnew/3.2.rst:975 +#: ../Doc/whatsnew/3.2.rst:977 msgid "" "See `Barrier Synchronization Patterns `_ for more examples " @@ -1511,7 +1519,7 @@ msgstr "" "en `The Little Book of Semaphores `_, *section 3.6*." -#: ../Doc/whatsnew/3.2.rst:981 +#: ../Doc/whatsnew/3.2.rst:983 msgid "" "(Contributed by Kristján Valur Jónsson with an API review by Jeffrey Yasskin " "in :issue:`8777`.)" @@ -1519,11 +1527,11 @@ msgstr "" "(Contribución de Kristján Valur Jónsson con una revisión de API de Jeffrey " "Yasskin en :issue:`8777`.)" -#: ../Doc/whatsnew/3.2.rst:985 +#: ../Doc/whatsnew/3.2.rst:987 msgid "datetime and time" msgstr "datetime and time" -#: ../Doc/whatsnew/3.2.rst:987 +#: ../Doc/whatsnew/3.2.rst:989 msgid "" "The :mod:`datetime` module has a new type :class:`~datetime.timezone` that " "implements the :class:`~datetime.tzinfo` interface by returning a fixed UTC " @@ -1536,7 +1544,7 @@ msgstr "" "más fácil crear objetos de fecha y hora que tengan en cuenta la zona " "horaria::" -#: ../Doc/whatsnew/3.2.rst:1000 +#: ../Doc/whatsnew/3.2.rst:1002 msgid "" "Also, :class:`~datetime.timedelta` objects can now be multiplied by :class:" "`float` and divided by :class:`float` and :class:`int` objects. And :class:" @@ -1547,7 +1555,7 @@ msgstr "" "`float` e :class:`int`. Y los objetos :class:`~datetime.timedelta` ahora se " "pueden dividir entre sí." -#: ../Doc/whatsnew/3.2.rst:1004 +#: ../Doc/whatsnew/3.2.rst:1006 msgid "" "The :meth:`datetime.date.strftime` method is no longer restricted to years " "after 1900. The new supported year range is from 1000 to 9999 inclusive." @@ -1556,10 +1564,11 @@ msgstr "" "posteriores a 1900. El nuevo rango de años admitido es de 1000 a 9999 " "inclusive." -#: ../Doc/whatsnew/3.2.rst:1007 +#: ../Doc/whatsnew/3.2.rst:1009 +#, fuzzy msgid "" "Whenever a two-digit year is used in a time tuple, the interpretation has " -"been governed by :attr:`time.accept2dyear`. The default is ``True`` which " +"been governed by :data:`time.accept2dyear`. The default is ``True`` which " "means that for a two-digit year, the century is guessed according to the " "POSIX rules governing the ``%y`` strptime format." msgstr "" @@ -1569,10 +1578,11 @@ msgstr "" "el siglo se calcula de acuerdo con las reglas POSIX que rigen el formato " "strptime ``%y``." -#: ../Doc/whatsnew/3.2.rst:1012 +#: ../Doc/whatsnew/3.2.rst:1014 +#, fuzzy msgid "" "Starting with Py3.2, use of the century guessing heuristic will emit a :exc:" -"`DeprecationWarning`. Instead, it is recommended that :attr:`time." +"`DeprecationWarning`. Instead, it is recommended that :data:`time." "accept2dyear` be set to ``False`` so that large date ranges can be used " "without guesswork::" msgstr "" @@ -1581,9 +1591,10 @@ msgstr "" "accept2dyear` se establezca en ``False`` para que se puedan usar rangos de " "fechas grandes sin suposiciones::" -#: ../Doc/whatsnew/3.2.rst:1031 +#: ../Doc/whatsnew/3.2.rst:1033 +#, fuzzy msgid "" -"Several functions now have significantly expanded date ranges. When :attr:" +"Several functions now have significantly expanded date ranges. When :data:" "`time.accept2dyear` is false, the :func:`time.asctime` function will accept " "any year that fits in a C int, while the :func:`time.mktime` and :func:`time." "strftime` functions will accept the full range supported by the " @@ -1595,7 +1606,7 @@ msgstr "" "func:`time.mktime` y :func:`time.strftime` aceptarán la gama completa " "admitida por las funciones correspondientes del sistema operativo." -#: ../Doc/whatsnew/3.2.rst:1037 +#: ../Doc/whatsnew/3.2.rst:1039 msgid "" "(Contributed by Alexander Belopolsky and Victor Stinner in :issue:" "`1289118`, :issue:`5094`, :issue:`6641`, :issue:`2706`, :issue:`1777412`, :" @@ -1605,11 +1616,11 @@ msgstr "" "issue:`5094`, :issue:`6641`, :issue:`2706`, :issue:`1777412`, :issue:`8013`, " "y :issue:`10827`.)" -#: ../Doc/whatsnew/3.2.rst:1044 +#: ../Doc/whatsnew/3.2.rst:1046 msgid "math" msgstr "math" -#: ../Doc/whatsnew/3.2.rst:1046 +#: ../Doc/whatsnew/3.2.rst:1048 msgid "" "The :mod:`math` module has been updated with six new functions inspired by " "the C99 standard." @@ -1617,7 +1628,7 @@ msgstr "" "El módulo :mod:`math` se ha actualizado con seis nuevas funciones inspiradas " "en el estándar C99." -#: ../Doc/whatsnew/3.2.rst:1049 +#: ../Doc/whatsnew/3.2.rst:1051 msgid "" "The :func:`~math.isfinite` function provides a reliable and fast way to " "detect special values. It returns ``True`` for regular numbers and " @@ -1627,7 +1638,7 @@ msgstr "" "detectar valores especiales. Retorna ``True`` para números regulares y " "``False`` para *Nan* o *Infinity*:" -#: ../Doc/whatsnew/3.2.rst:1057 +#: ../Doc/whatsnew/3.2.rst:1059 msgid "" "The :func:`~math.expm1` function computes ``e**x-1`` for small values of *x* " "without incurring the loss of precision that usually accompanies the " @@ -1637,7 +1648,7 @@ msgstr "" "*x* sin incurrir en la pérdida de precisión que generalmente acompaña a la " "resta de cantidades casi iguales:" -#: ../Doc/whatsnew/3.2.rst:1065 +#: ../Doc/whatsnew/3.2.rst:1067 msgid "" "The :func:`~math.erf` function computes a probability integral or `Gaussian " "error function `_. The " @@ -1647,7 +1658,7 @@ msgstr "" "de error gaussiano `_. La " "función de error complementaria, :func:`~math.erfc`, es ``1 - erf(x)``:" -#: ../Doc/whatsnew/3.2.rst:1080 +#: ../Doc/whatsnew/3.2.rst:1082 msgid "" "The :func:`~math.gamma` function is a continuous extension of the factorial " "function. See https://en.wikipedia.org/wiki/Gamma_function for details. " @@ -1662,15 +1673,15 @@ msgstr "" "hay una función :func:`~math.lgamma` para calcular el logaritmo natural de " "la función gamma:" -#: ../Doc/whatsnew/3.2.rst:1092 +#: ../Doc/whatsnew/3.2.rst:1094 msgid "(Contributed by Mark Dickinson.)" msgstr "(Contribución de Mark Dickinson.)" -#: ../Doc/whatsnew/3.2.rst:1095 +#: ../Doc/whatsnew/3.2.rst:1097 msgid "abc" msgstr "abc" -#: ../Doc/whatsnew/3.2.rst:1097 +#: ../Doc/whatsnew/3.2.rst:1099 msgid "" "The :mod:`abc` module now supports :func:`~abc.abstractclassmethod` and :" "func:`~abc.abstractstaticmethod`." @@ -1678,7 +1689,7 @@ msgstr "" "El módulo :mod:`abc` ahora admite :func:`~abc.abstractclassmethod` y :func:" "`~abc.abstractstaticmethod`." -#: ../Doc/whatsnew/3.2.rst:1100 +#: ../Doc/whatsnew/3.2.rst:1102 msgid "" "These tools make it possible to define an :term:`abstract base class` that " "requires a particular :func:`classmethod` or :func:`staticmethod` to be " @@ -1688,15 +1699,15 @@ msgstr "" "requiere un :func:`classmethod` o :func:`staticmethod` particular para ser " "implementado::" -#: ../Doc/whatsnew/3.2.rst:1112 +#: ../Doc/whatsnew/3.2.rst:1114 msgid "(Patch submitted by Daniel Urban; :issue:`5867`.)" msgstr "(Parche enviado por Daniel Urban; :issue:`5867`.)" -#: ../Doc/whatsnew/3.2.rst:1115 +#: ../Doc/whatsnew/3.2.rst:1117 msgid "io" msgstr "io" -#: ../Doc/whatsnew/3.2.rst:1117 +#: ../Doc/whatsnew/3.2.rst:1119 msgid "" "The :class:`io.BytesIO` has a new method, :meth:`~io.BytesIO.getbuffer`, " "which provides functionality similar to :func:`memoryview`. It creates an " @@ -1709,15 +1720,15 @@ msgstr "" "aleatorio del búfer y la compatibilidad con la notación de sectores son " "adecuados para la edición in situ::" -#: ../Doc/whatsnew/3.2.rst:1143 +#: ../Doc/whatsnew/3.2.rst:1145 msgid "(Contributed by Antoine Pitrou in :issue:`5506`.)" msgstr "(Contribución de Antoine Pitrou en :issue:`5506`.)" -#: ../Doc/whatsnew/3.2.rst:1146 +#: ../Doc/whatsnew/3.2.rst:1148 msgid "reprlib" msgstr "reprlib" -#: ../Doc/whatsnew/3.2.rst:1148 +#: ../Doc/whatsnew/3.2.rst:1150 msgid "" "When writing a :meth:`__repr__` method for a custom container, it is easy to " "forget to handle the case where a member refers back to the container " @@ -1731,7 +1742,7 @@ msgstr "" "class:`set` manejan la autorreferencia mostrando \"...\" en la parte " "recursiva de la cadena de representación." -#: ../Doc/whatsnew/3.2.rst:1154 +#: ../Doc/whatsnew/3.2.rst:1156 msgid "" "To help write such :meth:`__repr__` methods, the :mod:`reprlib` module has a " "new decorator, :func:`~reprlib.recursive_repr`, for detecting recursive " @@ -1742,15 +1753,15 @@ msgstr "" "detectar llamadas recursivas a :meth:`__repr__` y sustituir una cadena " "marcadora de posición en su lugar::" -#: ../Doc/whatsnew/3.2.rst:1169 +#: ../Doc/whatsnew/3.2.rst:1171 msgid "(Contributed by Raymond Hettinger in :issue:`9826` and :issue:`9840`.)" msgstr "(Contribución de Raymond Hettinger en :issue:`9826` y :issue:`9840`.)" -#: ../Doc/whatsnew/3.2.rst:1172 +#: ../Doc/whatsnew/3.2.rst:1174 msgid "logging" msgstr "logging" -#: ../Doc/whatsnew/3.2.rst:1174 +#: ../Doc/whatsnew/3.2.rst:1176 msgid "" "In addition to dictionary-based configuration described above, the :mod:" "`logging` package has many other improvements." @@ -1758,7 +1769,7 @@ msgstr "" "Además de la configuración basada en diccionario descrita anteriormente, el " "paquete :mod:`logging` tiene muchas otras mejoras." -#: ../Doc/whatsnew/3.2.rst:1177 +#: ../Doc/whatsnew/3.2.rst:1179 msgid "" "The logging documentation has been augmented by a :ref:`basic tutorial " "`\\, an :ref:`advanced tutorial `\\, y un :ref:`libro de recetas `. Estos " "documentos son la forma más rápida de aprender sobre logging." -#: ../Doc/whatsnew/3.2.rst:1182 +#: ../Doc/whatsnew/3.2.rst:1184 #, python-format msgid "" "The :func:`logging.basicConfig` set-up function gained a *style* argument to " @@ -1788,14 +1799,15 @@ msgstr "" "class:`string.Template`. Las siguientes tres configuraciones son " "equivalentes::" -#: ../Doc/whatsnew/3.2.rst:1193 +#: ../Doc/whatsnew/3.2.rst:1195 +#, fuzzy msgid "" "If no configuration is set-up before a logging event occurs, there is now a " "default configuration using a :class:`~logging.StreamHandler` directed to :" -"attr:`sys.stderr` for events of ``WARNING`` level or higher. Formerly, an " +"data:`sys.stderr` for events of ``WARNING`` level or higher. Formerly, an " "event occurring before a configuration was set-up would either raise an " -"exception or silently drop the event depending on the value of :attr:" -"`logging.raiseExceptions`. The new default handler is stored in :attr:" +"exception or silently drop the event depending on the value of :data:" +"`logging.raiseExceptions`. The new default handler is stored in :data:" "`logging.lastResort`." msgstr "" "Si no se establece ninguna configuración antes de que ocurra un evento de " @@ -1806,7 +1818,7 @@ msgstr "" "silenciosamente el evento según el valor de :attr:`logging.raiseExceptions`. " "El nuevo gestor predeterminado se almacena en :attr:`logging.lastResort`." -#: ../Doc/whatsnew/3.2.rst:1201 +#: ../Doc/whatsnew/3.2.rst:1203 msgid "" "The use of filters has been simplified. Instead of creating a :class:" "`~logging.Filter` object, the predicate can be any Python callable that " @@ -1816,7 +1828,7 @@ msgstr "" "`~logging.Filter`, la declaración puede ser cualquier invocable Python que " "retorna ``True`` o ``False``." -#: ../Doc/whatsnew/3.2.rst:1205 +#: ../Doc/whatsnew/3.2.rst:1207 msgid "" "There were a number of other improvements that add flexibility and simplify " "configuration. See the module documentation for a full listing of changes " @@ -1826,11 +1838,11 @@ msgstr "" "configuración. Consulte la documentación del módulo para obtener una lista " "completa de los cambios en Python 3.2." -#: ../Doc/whatsnew/3.2.rst:1210 +#: ../Doc/whatsnew/3.2.rst:1212 msgid "csv" msgstr "csv" -#: ../Doc/whatsnew/3.2.rst:1212 +#: ../Doc/whatsnew/3.2.rst:1214 msgid "" "The :mod:`csv` module now supports a new dialect, :class:`~csv." "unix_dialect`, which applies quoting for all fields and a traditional Unix " @@ -1842,7 +1854,7 @@ msgstr "" "tradicional con ``'\\n'`` como terminador de línea. El nombre del dialecto " "registrado es ``unix``." -#: ../Doc/whatsnew/3.2.rst:1216 +#: ../Doc/whatsnew/3.2.rst:1218 msgid "" "The :class:`csv.DictWriter` has a new method, :meth:`~csv.DictWriter." "writeheader` for writing-out an initial row to document the field names::" @@ -1851,7 +1863,7 @@ msgstr "" "DictWriter.writeheader` para escribir una fila inicial para documentar los " "nombres de los campos::" -#: ../Doc/whatsnew/3.2.rst:1230 +#: ../Doc/whatsnew/3.2.rst:1232 msgid "" "(New dialect suggested by Jay Talbot in :issue:`5975`, and the new method " "suggested by Ed Abraham in :issue:`1537721`.)" @@ -1859,11 +1871,11 @@ msgstr "" "(Nuevo dialecto sugerido por Jay Talbot en :issue:`5975`, y el nuevo método " "sugerido por Ed Abraham en :issue:`1537721`.)" -#: ../Doc/whatsnew/3.2.rst:1234 +#: ../Doc/whatsnew/3.2.rst:1236 msgid "contextlib" msgstr "contextlib" -#: ../Doc/whatsnew/3.2.rst:1236 +#: ../Doc/whatsnew/3.2.rst:1238 msgid "" "There is a new and slightly mind-blowing tool :class:`~contextlib." "ContextDecorator` that is helpful for creating a :term:`context manager` " @@ -1873,7 +1885,7 @@ msgstr "" "ContextDecorator` que es útil para crear un :term:`context manager` que " "cumple una doble función como decorador de funciones." -#: ../Doc/whatsnew/3.2.rst:1240 +#: ../Doc/whatsnew/3.2.rst:1242 msgid "" "As a convenience, this new functionality is used by :func:`~contextlib." "contextmanager` so that no extra effort is needed to support both roles." @@ -1882,7 +1894,7 @@ msgstr "" "`~contextlib.contextmanager` de modo que no se necesita ningún esfuerzo " "adicional para admitir ambos roles." -#: ../Doc/whatsnew/3.2.rst:1244 +#: ../Doc/whatsnew/3.2.rst:1246 msgid "" "The basic idea is that both context managers and function decorators can be " "used for pre-action and post-action wrappers. Context managers wrap a group " @@ -1899,7 +1911,7 @@ msgstr "" "ocasionalmente es necesario escribir un envoltorio de acción previa o " "posterior que se pueda usar en cualquiera de los roles." -#: ../Doc/whatsnew/3.2.rst:1250 +#: ../Doc/whatsnew/3.2.rst:1252 msgid "" "For example, it is sometimes useful to wrap functions or groups of " "statements with a logger that can track the time of entry and time of exit. " @@ -1913,15 +1925,15 @@ msgstr "" "contexto para la tarea, :func:`~contextlib.contextmanager` proporciona ambas " "capacidades en una sola definición::" -#: ../Doc/whatsnew/3.2.rst:1267 +#: ../Doc/whatsnew/3.2.rst:1269 msgid "Formerly, this would have only been usable as a context manager::" msgstr "Anteriormente, esto solo se podía usar como gestor de contexto::" -#: ../Doc/whatsnew/3.2.rst:1273 +#: ../Doc/whatsnew/3.2.rst:1275 msgid "Now, it can be used as a decorator as well::" msgstr "Ahora, también se puede usar como decorador::" -#: ../Doc/whatsnew/3.2.rst:1280 +#: ../Doc/whatsnew/3.2.rst:1282 msgid "" "Trying to fulfill two roles at once places some limitations on the " "technique. Context managers normally have the flexibility to return an " @@ -1933,7 +1945,7 @@ msgstr "" "retornar un argumento utilizable por una instrucción :keyword:`with`, pero " "no hay paralelo para los decoradores de funciones." -#: ../Doc/whatsnew/3.2.rst:1284 +#: ../Doc/whatsnew/3.2.rst:1286 msgid "" "In the above example, there is not a clean way for the " "*track_entry_and_exit* context manager to return a logging instance for use " @@ -1943,15 +1955,15 @@ msgstr "" "contexto *track_entry_and_exit* retorne una instancia de logging para usar " "en el cuerpo de las declaraciones adjuntas." -#: ../Doc/whatsnew/3.2.rst:1288 +#: ../Doc/whatsnew/3.2.rst:1290 msgid "(Contributed by Michael Foord in :issue:`9110`.)" msgstr "(Contribución de Michael Foord en :issue:`9110`.)" -#: ../Doc/whatsnew/3.2.rst:1291 +#: ../Doc/whatsnew/3.2.rst:1293 msgid "decimal and fractions" msgstr "decimal and fractions" -#: ../Doc/whatsnew/3.2.rst:1293 +#: ../Doc/whatsnew/3.2.rst:1295 msgid "" "Mark Dickinson crafted an elegant and efficient scheme for assuring that " "different numeric datatypes will have the same hash value whenever their " @@ -1961,9 +1973,10 @@ msgstr "" "diferentes tipos de datos numéricos tendrán el mismo valor hash siempre que " "sus valores reales sean iguales (:issue:`8188`)::" -#: ../Doc/whatsnew/3.2.rst:1300 +#: ../Doc/whatsnew/3.2.rst:1302 +#, fuzzy msgid "" -"Some of the hashing details are exposed through a new attribute, :attr:`sys." +"Some of the hashing details are exposed through a new attribute, :data:`sys." "hash_info`, which describes the bit width of the hash value, the prime " "modulus, the hash values for *infinity* and *nan*, and the multiplier used " "for the imaginary part of a number:" @@ -1973,7 +1986,7 @@ msgstr "" "módulo principal, los valores hash para *infinity* y *nan*, y el " "multiplicador utilizado para la parte imaginaria de un número:" -#: ../Doc/whatsnew/3.2.rst:1308 +#: ../Doc/whatsnew/3.2.rst:1310 msgid "" "An early decision to limit the inter-operability of various numeric types " "has been relaxed. It is still unsupported (and ill-advised) to have " @@ -1993,7 +2006,7 @@ msgstr "" "decimal o racional, tiene sentido agregarlos al constructor y admitir " "comparaciones de tipo mixto." -#: ../Doc/whatsnew/3.2.rst:1316 +#: ../Doc/whatsnew/3.2.rst:1318 msgid "" "The :class:`decimal.Decimal` constructor now accepts :class:`float` objects " "directly so there in no longer a need to use the :meth:`~decimal.Decimal." @@ -2003,7 +2016,7 @@ msgstr "" "directamente, por lo que ya no es necesario utilizar el método :meth:" "`~decimal.Decimal.from_float` (:issue:`8257`)." -#: ../Doc/whatsnew/3.2.rst:1320 +#: ../Doc/whatsnew/3.2.rst:1322 msgid "" "Mixed type comparisons are now fully supported so that :class:`~decimal." "Decimal` objects can be directly compared with :class:`float` and :class:" @@ -2014,7 +2027,7 @@ msgstr "" "con :class:`float` y :class:`fractions.Fraction` (:issue:`2531` y :issue:" "`8188`)." -#: ../Doc/whatsnew/3.2.rst:1324 +#: ../Doc/whatsnew/3.2.rst:1326 msgid "" "Similar changes were made to :class:`fractions.Fraction` so that the :meth:" "`~fractions.Fraction.from_float()` and :meth:`~fractions.Fraction." @@ -2024,7 +2037,7 @@ msgstr "" "métodos :meth:`~fractions.Fraction.from_float()` y :meth:`~fractions." "Fraction.from_decimal` ya no son necesarios (:issue:`8294`):" -#: ../Doc/whatsnew/3.2.rst:1335 +#: ../Doc/whatsnew/3.2.rst:1337 msgid "" "Another useful change for the :mod:`decimal` module is that the :attr:" "`Context.clamp` attribute is now public. This is useful in creating " @@ -2036,15 +2049,15 @@ msgstr "" "correspondan con los formatos de intercambio decimal especificados en IEEE " "754 (ver :`8540`)." -#: ../Doc/whatsnew/3.2.rst:1340 +#: ../Doc/whatsnew/3.2.rst:1342 msgid "(Contributed by Mark Dickinson and Raymond Hettinger.)" msgstr "(Contribución de Mark Dickinson y Raymond Hettinger.)" -#: ../Doc/whatsnew/3.2.rst:1343 +#: ../Doc/whatsnew/3.2.rst:1345 msgid "ftp" msgstr "ftp" -#: ../Doc/whatsnew/3.2.rst:1345 +#: ../Doc/whatsnew/3.2.rst:1347 msgid "" "The :class:`ftplib.FTP` class now supports the context management protocol " "to unconditionally consume :exc:`socket.error` exceptions and to close the " @@ -2054,7 +2067,7 @@ msgstr "" "para consumir incondicionalmente las excepciones :exc:`socket.error` y " "cerrar la conexión FTP cuando haya terminado::" -#: ../Doc/whatsnew/3.2.rst:1360 +#: ../Doc/whatsnew/3.2.rst:1362 msgid "" "Other file-like objects such as :class:`mmap.mmap` and :func:`fileinput." "input` also grew auto-closing context managers::" @@ -2063,7 +2076,7 @@ msgstr "" "`fileinput.input` también adquirieron gestores de contexto de cierre " "automático::" -#: ../Doc/whatsnew/3.2.rst:1367 +#: ../Doc/whatsnew/3.2.rst:1369 msgid "" "(Contributed by Tarek Ziadé and Giampaolo Rodolà in :issue:`4972`, and by " "Georg Brandl in :issue:`8046` and :issue:`1286`.)" @@ -2071,7 +2084,7 @@ msgstr "" "(Contribución de Tarek Ziadé y Giampaolo Rodolà en :issue:`4972`, y por " "Georg Brandl en :issue:`8046` y :issue:`1286`.)" -#: ../Doc/whatsnew/3.2.rst:1370 +#: ../Doc/whatsnew/3.2.rst:1372 msgid "" "The :class:`~ftplib.FTP_TLS` class now accepts a *context* parameter, which " "is a :class:`ssl.SSLContext` object allowing bundling SSL configuration " @@ -2083,15 +2096,15 @@ msgstr "" "configuración SSL, certificados y claves privadas en una sola (y " "potencialmente de larga duración) estructura." -#: ../Doc/whatsnew/3.2.rst:1374 +#: ../Doc/whatsnew/3.2.rst:1376 msgid "(Contributed by Giampaolo Rodolà; :issue:`8806`.)" msgstr "(Contribución de Giampaolo Rodolà; :issue:`8806`.)" -#: ../Doc/whatsnew/3.2.rst:1377 +#: ../Doc/whatsnew/3.2.rst:1379 msgid "popen" msgstr "popen" -#: ../Doc/whatsnew/3.2.rst:1379 +#: ../Doc/whatsnew/3.2.rst:1381 msgid "" "The :func:`os.popen` and :func:`subprocess.Popen` functions now support :" "keyword:`with` statements for auto-closing of the file descriptors." @@ -2100,7 +2113,7 @@ msgstr "" "declaraciones :keyword:`with` para el cierre automático de los descriptores " "de archivo." -#: ../Doc/whatsnew/3.2.rst:1382 +#: ../Doc/whatsnew/3.2.rst:1384 msgid "" "(Contributed by Antoine Pitrou and Brian Curtin in :issue:`7461` and :issue:" "`10554`.)" @@ -2108,13 +2121,14 @@ msgstr "" "(Contribución de Antoine Pitrou y Brian Curtin en :issue:`7461` y :issue:" "`10554`.)" -#: ../Doc/whatsnew/3.2.rst:1386 +#: ../Doc/whatsnew/3.2.rst:1388 msgid "select" msgstr "select" -#: ../Doc/whatsnew/3.2.rst:1388 +#: ../Doc/whatsnew/3.2.rst:1390 +#, fuzzy msgid "" -"The :mod:`select` module now exposes a new, constant attribute, :attr:" +"The :mod:`select` module now exposes a new, constant attribute, :const:" "`~select.PIPE_BUF`, which gives the minimum number of bytes which are " "guaranteed not to block when :func:`select.select` says a pipe is ready for " "writing." @@ -2124,16 +2138,16 @@ msgstr "" "para no bloquearse cuando :func:`select.select` dice que una tubería está " "lista para escribir." -#: ../Doc/whatsnew/3.2.rst:1397 +#: ../Doc/whatsnew/3.2.rst:1399 msgid "(Available on Unix systems. Patch by Sébastien Sablé in :issue:`9862`)" msgstr "" "(Disponible en sistemas Unix. Parche de Sébastien Sablé en :issue:`9862`)" -#: ../Doc/whatsnew/3.2.rst:1400 +#: ../Doc/whatsnew/3.2.rst:1402 msgid "gzip and zipfile" msgstr "gzip y zipfile" -#: ../Doc/whatsnew/3.2.rst:1402 +#: ../Doc/whatsnew/3.2.rst:1404 msgid "" ":class:`gzip.GzipFile` now implements the :class:`io.BufferedIOBase` :term:" "`abstract base class` (except for ``truncate()``). It also has a :meth:" @@ -2145,7 +2159,7 @@ msgstr "" "método :meth:`~gzip.GzipFile.peek` y admite objetos de archivo con rellenos " "de ceros y que no se pueden buscar." -#: ../Doc/whatsnew/3.2.rst:1407 +#: ../Doc/whatsnew/3.2.rst:1409 msgid "" "The :mod:`gzip` module also gains the :func:`~gzip.compress` and :func:" "`~gzip.decompress` functions for easier in-memory compression and " @@ -2157,7 +2171,7 @@ msgstr "" "memoria. Tenga en cuenta que el texto debe codificarse como :class:`bytes` " "antes de comprimir y descomprimir::" -#: ../Doc/whatsnew/3.2.rst:1424 +#: ../Doc/whatsnew/3.2.rst:1426 msgid "" "(Contributed by Anand B. Pillai in :issue:`3488`; and by Antoine Pitrou, Nir " "Aides and Brian Curtin in :issue:`9962`, :issue:`1675951`, :issue:`7471` " @@ -2167,7 +2181,7 @@ msgstr "" "Aides y Brian Curtin en :issue:`9962`, :issue:`1675951`, :issue:`7471` y :" "issue:`2846`.)" -#: ../Doc/whatsnew/3.2.rst:1428 +#: ../Doc/whatsnew/3.2.rst:1430 msgid "" "Also, the :class:`zipfile.ZipExtFile` class was reworked internally to " "represent files stored inside an archive. The new implementation is " @@ -2182,15 +2196,15 @@ msgstr "" "resuelve un problema en el que las llamadas intercaladas a *read* y " "*readline* daban resultados incorrectos." -#: ../Doc/whatsnew/3.2.rst:1434 +#: ../Doc/whatsnew/3.2.rst:1436 msgid "(Patch submitted by Nir Aides in :issue:`7610`.)" msgstr "(Parche enviado por Nir Aides en :issue:`7610`.)" -#: ../Doc/whatsnew/3.2.rst:1437 +#: ../Doc/whatsnew/3.2.rst:1439 msgid "tarfile" msgstr "tarfile" -#: ../Doc/whatsnew/3.2.rst:1439 +#: ../Doc/whatsnew/3.2.rst:1441 msgid "" "The :class:`~tarfile.TarFile` class can now be used as a context manager. " "In addition, its :meth:`~tarfile.TarFile.add` method has a new option, " @@ -2202,7 +2216,7 @@ msgstr "" "opción, *filter*, que controla qué archivos se agregan y permite editar los " "metadatos del archivo." -#: ../Doc/whatsnew/3.2.rst:1444 +#: ../Doc/whatsnew/3.2.rst:1446 msgid "" "The new *filter* option replaces the older, less flexible *exclude* " "parameter which is now deprecated. If specified, the optional *filter* " @@ -2218,18 +2232,18 @@ msgstr "" "retorna un objeto :class:`~tarfile.TarInfo` actualizado, o si desea que el " "archivo sea excluido, la función puede retornar ``None``::" -#: ../Doc/whatsnew/3.2.rst:1468 +#: ../Doc/whatsnew/3.2.rst:1470 msgid "" "(Proposed by Tarek Ziadé and implemented by Lars Gustäbel in :issue:`6856`.)" msgstr "" "(Propuesto por Tarek Ziadé e implementado por Lars Gustäbel en :issue:" "`6856`.)" -#: ../Doc/whatsnew/3.2.rst:1471 +#: ../Doc/whatsnew/3.2.rst:1473 msgid "hashlib" msgstr "hashlib" -#: ../Doc/whatsnew/3.2.rst:1473 +#: ../Doc/whatsnew/3.2.rst:1475 msgid "" "The :mod:`hashlib` module has two new constant attributes listing the " "hashing algorithms guaranteed to be present in all implementations and those " @@ -2239,15 +2253,15 @@ msgstr "" "los algoritmos hash garantizados para estar presentes en todas las " "implementaciones y los disponibles en la implementación actual::" -#: ../Doc/whatsnew/3.2.rst:1488 +#: ../Doc/whatsnew/3.2.rst:1490 msgid "(Suggested by Carl Chenet in :issue:`7418`.)" msgstr "(Sugerido por Carl Chenet en :issue:`7418`.)" -#: ../Doc/whatsnew/3.2.rst:1491 +#: ../Doc/whatsnew/3.2.rst:1493 msgid "ast" msgstr "ast" -#: ../Doc/whatsnew/3.2.rst:1493 +#: ../Doc/whatsnew/3.2.rst:1495 msgid "" "The :mod:`ast` module has a wonderful a general-purpose tool for safely " "evaluating expression strings using the Python literal syntax. The :func:" @@ -2264,15 +2278,15 @@ msgstr "" "lista de tipos admitidos: cadenas de caracteres, bytes, números, tuplas, " "listas, diccionarios, sets, valores booleanos y ``None``." -#: ../Doc/whatsnew/3.2.rst:1514 +#: ../Doc/whatsnew/3.2.rst:1516 msgid "(Implemented by Benjamin Peterson and Georg Brandl.)" msgstr "(Implementado por Benjamin Peterson y Georg Brandl.)" -#: ../Doc/whatsnew/3.2.rst:1517 +#: ../Doc/whatsnew/3.2.rst:1519 msgid "os" msgstr "os" -#: ../Doc/whatsnew/3.2.rst:1519 +#: ../Doc/whatsnew/3.2.rst:1521 msgid "" "Different operating systems use various encodings for filenames and " "environment variables. The :mod:`os` module provides two new functions, :" @@ -2284,17 +2298,18 @@ msgstr "" "proporciona dos funciones nuevas, :func:`~os.fsencode` y :func:`~os." "fsdecode`, para codificar y decodificar nombres de archivo:" -#: ../Doc/whatsnew/3.2.rst:1529 +#: ../Doc/whatsnew/3.2.rst:1531 +#, fuzzy msgid "" "Some operating systems allow direct access to encoded bytes in the " -"environment. If so, the :attr:`os.supports_bytes_environ` constant will be " +"environment. If so, the :const:`os.supports_bytes_environ` constant will be " "true." msgstr "" "Algunos sistemas operativos permiten el acceso directo a bytes codificados " "en el entorno. Si es así, la constante :attr:`os.supports_bytes_environ` " "será verdadera." -#: ../Doc/whatsnew/3.2.rst:1533 +#: ../Doc/whatsnew/3.2.rst:1535 msgid "" "For direct access to encoded environment variables (if available), use the " "new :func:`os.getenvb` function or use :data:`os.environb` which is a bytes " @@ -2304,19 +2319,19 @@ msgstr "" "disponible), utilice la nueva función :func:`os.getenvb` o utilice :data:`os." "environb`, que es una versión en bytes de :data:`os.environ`." -#: ../Doc/whatsnew/3.2.rst:1537 +#: ../Doc/whatsnew/3.2.rst:1539 msgid "(Contributed by Victor Stinner.)" msgstr "(Contribución de Victor Stinner.)" -#: ../Doc/whatsnew/3.2.rst:1540 +#: ../Doc/whatsnew/3.2.rst:1542 msgid "shutil" msgstr "shutil" -#: ../Doc/whatsnew/3.2.rst:1542 +#: ../Doc/whatsnew/3.2.rst:1544 msgid "The :func:`shutil.copytree` function has two new options:" msgstr "La función :func:`shutil.copytree` tiene dos nuevas opciones:" -#: ../Doc/whatsnew/3.2.rst:1544 +#: ../Doc/whatsnew/3.2.rst:1546 msgid "" "*ignore_dangling_symlinks*: when ``symlinks=False`` so that the function " "copies a file pointed to by a symlink, not the symlink itself. This option " @@ -2326,7 +2341,7 @@ msgstr "" "copie un archivo apuntado por un enlace simbólico, no el enlace simbólico en " "sí. Esta opción silenciará el error lanzado si el archivo no existe." -#: ../Doc/whatsnew/3.2.rst:1548 +#: ../Doc/whatsnew/3.2.rst:1550 msgid "" "*copy_function*: is a callable that will be used to copy files. :func:" "`shutil.copy2` is used by default." @@ -2334,11 +2349,11 @@ msgstr "" "*copy_function*: es un invocable que se utilizará para copiar archivos. :" "func:`shutil.copy2` se usa por defecto." -#: ../Doc/whatsnew/3.2.rst:1551 ../Doc/whatsnew/3.2.rst:1589 +#: ../Doc/whatsnew/3.2.rst:1553 ../Doc/whatsnew/3.2.rst:1591 msgid "(Contributed by Tarek Ziadé.)" msgstr "(Contribución de Tarek Ziadé.)" -#: ../Doc/whatsnew/3.2.rst:1553 +#: ../Doc/whatsnew/3.2.rst:1555 msgid "" "In addition, the :mod:`shutil` module now supports :ref:`archiving " "operations ` for zipfiles, uncompressed tarfiles, " @@ -2352,7 +2367,7 @@ msgstr "" "registrar formatos de archivado de archivo adicionales (como archivos tar " "comprimidos xz o formatos personalizados)." -#: ../Doc/whatsnew/3.2.rst:1558 +#: ../Doc/whatsnew/3.2.rst:1560 msgid "" "The principal functions are :func:`~shutil.make_archive` and :func:`~shutil." "unpack_archive`. By default, both operate on the current directory (which " @@ -2367,11 +2382,11 @@ msgstr "" "completa. El paso de archivado no es destructivo (los archivos originales no " "se modifican)." -#: ../Doc/whatsnew/3.2.rst:1592 +#: ../Doc/whatsnew/3.2.rst:1594 msgid "sqlite3" msgstr "sqlite3" -#: ../Doc/whatsnew/3.2.rst:1594 +#: ../Doc/whatsnew/3.2.rst:1596 msgid "" "The :mod:`sqlite3` module was updated to pysqlite version 2.6.0. It has two " "new capabilities." @@ -2379,7 +2394,7 @@ msgstr "" "El módulo :mod:`sqlite3` se actualizó a la versión 2.6.0 de pysqlite. Tiene " "dos nuevas capacidades." -#: ../Doc/whatsnew/3.2.rst:1596 +#: ../Doc/whatsnew/3.2.rst:1598 msgid "" "The :attr:`sqlite3.Connection.in_transit` attribute is true if there is an " "active transaction for uncommitted changes." @@ -2387,7 +2402,7 @@ msgstr "" "El atributo :attr:`sqlite3.Connection.in_transit` es verdadero si hay una " "transacción activa para cambios no confirmados." -#: ../Doc/whatsnew/3.2.rst:1599 +#: ../Doc/whatsnew/3.2.rst:1601 msgid "" "The :meth:`sqlite3.Connection.enable_load_extension` and :meth:`sqlite3." "Connection.load_extension` methods allows you to load SQLite extensions from " @@ -2399,15 +2414,15 @@ msgstr "" "desde archivos \".so\". Una extensión conocida es la extensión de búsqueda " "de texto completo distribuida con SQLite." -#: ../Doc/whatsnew/3.2.rst:1604 +#: ../Doc/whatsnew/3.2.rst:1606 msgid "(Contributed by R. David Murray and Shashwat Anand; :issue:`8845`.)" msgstr "(Contribución de R. David Murray y Shashwat Anand; :issue:`8845`.)" -#: ../Doc/whatsnew/3.2.rst:1607 +#: ../Doc/whatsnew/3.2.rst:1609 msgid "html" msgstr "html" -#: ../Doc/whatsnew/3.2.rst:1609 +#: ../Doc/whatsnew/3.2.rst:1611 msgid "" "A new :mod:`html` module was introduced with only a single function, :func:" "`~html.escape`, which is used for escaping reserved characters from HTML " @@ -2416,15 +2431,15 @@ msgstr "" "Se introdujo un nuevo módulo :mod:`html` con una sola función, :func:`~html." "escape`, que se usa para escapar caracteres reservados del marcado HTML:" -#: ../Doc/whatsnew/3.2.rst:1618 +#: ../Doc/whatsnew/3.2.rst:1620 msgid "socket" msgstr "socket" -#: ../Doc/whatsnew/3.2.rst:1620 +#: ../Doc/whatsnew/3.2.rst:1622 msgid "The :mod:`socket` module has two new improvements." msgstr "El módulo :mod:`socket` tiene dos nuevas mejoras." -#: ../Doc/whatsnew/3.2.rst:1622 +#: ../Doc/whatsnew/3.2.rst:1624 msgid "" "Socket objects now have a :meth:`~socket.socket.detach()` method which puts " "the socket into closed state without actually closing the underlying file " @@ -2436,7 +2451,7 @@ msgstr "" "archivo subyacente. Este último se puede reutilizar para otros fines. " "(Agregado por Antoine Pitrou; :issue:`8524`.)" -#: ../Doc/whatsnew/3.2.rst:1627 +#: ../Doc/whatsnew/3.2.rst:1629 msgid "" ":func:`socket.create_connection` now supports the context management " "protocol to unconditionally consume :exc:`socket.error` exceptions and to " @@ -2447,11 +2462,11 @@ msgstr "" "error` y cerrar el socket cuando haya terminado. (Contribución de Giampaolo " "Rodolà; :issue:`9794`.)" -#: ../Doc/whatsnew/3.2.rst:1633 +#: ../Doc/whatsnew/3.2.rst:1635 msgid "ssl" msgstr "ssl" -#: ../Doc/whatsnew/3.2.rst:1635 +#: ../Doc/whatsnew/3.2.rst:1637 msgid "" "The :mod:`ssl` module added a number of features to satisfy common " "requirements for secure (encrypted, authenticated) internet connections:" @@ -2460,7 +2475,7 @@ msgstr "" "requisitos comunes para conexiones a Internet seguras (encriptadas, " "autenticadas):" -#: ../Doc/whatsnew/3.2.rst:1638 +#: ../Doc/whatsnew/3.2.rst:1640 msgid "" "A new class, :class:`~ssl.SSLContext`, serves as a container for persistent " "SSL data, such as protocol settings, certificates, private keys, and various " @@ -2472,7 +2487,7 @@ msgstr "" "privadas y varias opciones más. Incluye un :meth:`~ssl.SSLContext." "wrap_socket` para crear un socket SSL a partir de un contexto SSL." -#: ../Doc/whatsnew/3.2.rst:1643 +#: ../Doc/whatsnew/3.2.rst:1645 msgid "" "A new function, :func:`ssl.match_hostname`, supports server identity " "verification for higher-level protocols by implementing the rules of HTTPS " @@ -2483,7 +2498,7 @@ msgstr "" "implementación de las reglas de HTTPS (de :rfc:`2818`) que también son " "adecuadas para otros protocolos." -#: ../Doc/whatsnew/3.2.rst:1647 +#: ../Doc/whatsnew/3.2.rst:1649 msgid "" "The :func:`ssl.wrap_socket` constructor function now takes a *ciphers* " "argument. The *ciphers* string lists the allowed encryption algorithms " @@ -2495,7 +2510,7 @@ msgstr "" "utilizando el formato descrito en la `documentación de OpenSSL `__." -#: ../Doc/whatsnew/3.2.rst:1652 +#: ../Doc/whatsnew/3.2.rst:1654 msgid "" "When linked against recent versions of OpenSSL, the :mod:`ssl` module now " "supports the Server Name Indication extension to the TLS protocol, allowing " @@ -2510,7 +2525,7 @@ msgstr "" "puerto IP. Esta extensión solo es compatible en modo cliente y se activa " "pasando el argumento *server_hostname* a :meth:`ssl.SSLContext.wrap_socket`." -#: ../Doc/whatsnew/3.2.rst:1658 +#: ../Doc/whatsnew/3.2.rst:1660 msgid "" "Various options have been added to the :mod:`ssl` module, such as :data:" "`~ssl.OP_NO_SSLv2` which disables the insecure and obsolete SSLv2 protocol." @@ -2518,7 +2533,7 @@ msgstr "" "Se han agregado varias opciones al módulo :mod:`ssl`, como :data:`~ssl." "OP_NO_SSLv2` que deshabilita el protocolo SSLv2 inseguro y obsoleto." -#: ../Doc/whatsnew/3.2.rst:1662 +#: ../Doc/whatsnew/3.2.rst:1664 msgid "" "The extension now loads all the OpenSSL ciphers and digest algorithms. If " "some SSL certificates cannot be verified, they are reported as an \"unknown " @@ -2528,11 +2543,12 @@ msgstr "" "Si algunos certificados SSL no se pueden verificar, se notifican como un " "error de \"algoritmo desconocido\"." -#: ../Doc/whatsnew/3.2.rst:1666 +#: ../Doc/whatsnew/3.2.rst:1668 +#, fuzzy msgid "" "The version of OpenSSL being used is now accessible using the module " -"attributes :data:`ssl.OPENSSL_VERSION` (a string), :data:`ssl." -"OPENSSL_VERSION_INFO` (a 5-tuple), and :data:`ssl.OPENSSL_VERSION_NUMBER` " +"attributes :const:`ssl.OPENSSL_VERSION` (a string), :const:`ssl." +"OPENSSL_VERSION_INFO` (a 5-tuple), and :const:`ssl.OPENSSL_VERSION_NUMBER` " "(an integer)." msgstr "" "La versión de OpenSSL que se está utilizando ahora es accesible usando los " @@ -2540,7 +2556,7 @@ msgstr "" "caracteres), :data:`ssl.OPENSSL_VERSION_INFO` (una tupla de 5), y :data:`ssl." "OPENSSL_VERSION_NUMBER` (un número entero)." -#: ../Doc/whatsnew/3.2.rst:1671 +#: ../Doc/whatsnew/3.2.rst:1673 msgid "" "(Contributed by Antoine Pitrou in :issue:`8850`, :issue:`1589`, :issue:" "`8322`, :issue:`5639`, :issue:`4870`, :issue:`8484`, and :issue:`8321`.)" @@ -2548,11 +2564,11 @@ msgstr "" "(Contribución de Antoine Pitrou en :issue:`8850`, :issue:`1589`, :issue:" "`8322`, :issue:`5639`, :issue:`4870`, :issue:`8484`, y :issue:`8321`.)" -#: ../Doc/whatsnew/3.2.rst:1675 +#: ../Doc/whatsnew/3.2.rst:1677 msgid "nntp" msgstr "nntp" -#: ../Doc/whatsnew/3.2.rst:1677 +#: ../Doc/whatsnew/3.2.rst:1679 msgid "" "The :mod:`nntplib` module has a revamped implementation with better bytes " "and text semantics as well as more practical APIs. These improvements break " @@ -2564,7 +2580,7 @@ msgstr "" "rompen la compatibilidad con la versión nntplib en Python 3.1, que en sí " "misma era parcialmente disfuncional." -#: ../Doc/whatsnew/3.2.rst:1682 +#: ../Doc/whatsnew/3.2.rst:1684 msgid "" "Support for secure connections through both implicit (using :class:`nntplib." "NNTP_SSL`) and explicit (using :meth:`nntplib.NNTP.starttls`) TLS has also " @@ -2574,7 +2590,7 @@ msgstr "" "implícito (usando :class:`nntplib.NNTP_SSL`) y explícito (usando :meth:" "`nntplib.NNTP.starttls`)." -#: ../Doc/whatsnew/3.2.rst:1686 +#: ../Doc/whatsnew/3.2.rst:1688 msgid "" "(Contributed by Antoine Pitrou in :issue:`9360` and Andrew Vant in :issue:" "`1926`.)" @@ -2582,11 +2598,11 @@ msgstr "" "(Contribución de Antoine Pitrou en :issue:`9360` y Andrew Vant en :issue:" "`1926`.)" -#: ../Doc/whatsnew/3.2.rst:1689 +#: ../Doc/whatsnew/3.2.rst:1691 msgid "certificates" msgstr "certificados" -#: ../Doc/whatsnew/3.2.rst:1691 +#: ../Doc/whatsnew/3.2.rst:1693 msgid "" ":class:`http.client.HTTPSConnection`, :class:`urllib.request.HTTPSHandler` " "and :func:`urllib.request.urlopen` now take optional arguments to allow for " @@ -2598,15 +2614,15 @@ msgstr "" "permitir la comprobación del certificado del servidor con un conjunto de " "Autoridades de Certificación recomendado en usos públicos de HTTPS." -#: ../Doc/whatsnew/3.2.rst:1696 +#: ../Doc/whatsnew/3.2.rst:1698 msgid "(Added by Antoine Pitrou, :issue:`9003`.)" msgstr "(Agregado por Antoine Pitrou, :issue:`9003`.)" -#: ../Doc/whatsnew/3.2.rst:1699 +#: ../Doc/whatsnew/3.2.rst:1701 msgid "imaplib" msgstr "imaplib" -#: ../Doc/whatsnew/3.2.rst:1701 +#: ../Doc/whatsnew/3.2.rst:1703 msgid "" "Support for explicit TLS on standard IMAP4 connections has been added " "through the new :mod:`imaplib.IMAP4.starttls` method." @@ -2614,15 +2630,15 @@ msgstr "" "Se ha agregado soporte para TLS explícito en conexiones IMAP4 estándar a " "través del nuevo método :mod:`imaplib.IMAP4.starttls`." -#: ../Doc/whatsnew/3.2.rst:1704 +#: ../Doc/whatsnew/3.2.rst:1706 msgid "(Contributed by Lorenzo M. Catucci and Antoine Pitrou, :issue:`4471`.)" msgstr "(Contribución de Lorenzo M. Catucci y Antoine Pitrou, :issue:`4471`.)" -#: ../Doc/whatsnew/3.2.rst:1707 +#: ../Doc/whatsnew/3.2.rst:1709 msgid "http.client" msgstr "http.client" -#: ../Doc/whatsnew/3.2.rst:1709 +#: ../Doc/whatsnew/3.2.rst:1711 msgid "" "There were a number of small API improvements in the :mod:`http.client` " "module. The old-style HTTP 0.9 simple responses are no longer supported and " @@ -2632,7 +2648,7 @@ msgstr "" "Las respuestas simples HTTP 0.9 de estilo antiguo ya no son compatibles y el " "parámetro *strict* está obsoleto en todas las clases." -#: ../Doc/whatsnew/3.2.rst:1713 +#: ../Doc/whatsnew/3.2.rst:1715 msgid "" "The :class:`~http.client.HTTPConnection` and :class:`~http.client." "HTTPSConnection` classes now have a *source_address* parameter for a (host, " @@ -2642,7 +2658,7 @@ msgstr "" "HTTPSConnection` ahora tienen un parámetro *source_address* para una tupla " "(host, port) que indica desde dónde se realiza la conexión HTTP." -#: ../Doc/whatsnew/3.2.rst:1718 +#: ../Doc/whatsnew/3.2.rst:1720 msgid "" "Support for certificate checking and HTTPS virtual hosts were added to :" "class:`~http.client.HTTPSConnection`." @@ -2650,7 +2666,7 @@ msgstr "" "Se agregó soporte para verificación de certificados y hosts virtuales HTTPS " "a :class:`~http.client.HTTPSConnection`." -#: ../Doc/whatsnew/3.2.rst:1721 +#: ../Doc/whatsnew/3.2.rst:1723 msgid "" "The :meth:`~http.client.HTTPConnection.request` method on connection objects " "allowed an optional *body* argument so that a :term:`file object` could be " @@ -2666,7 +2682,7 @@ msgstr "" "`iterable` siempre que incluya un encabezado explícito ``Content-Length``. " "Esta interfaz ampliada es mucho más flexible que antes." -#: ../Doc/whatsnew/3.2.rst:1728 +#: ../Doc/whatsnew/3.2.rst:1730 msgid "" "To establish an HTTPS connection through a proxy server, there is a new :" "meth:`~http.client.HTTPConnection.set_tunnel` method that sets the host and " @@ -2676,7 +2692,7 @@ msgstr "" "nuevo método :meth:`~http.client.HTTPConnection.set_tunnel` que establece el " "host y el puerto para el túnel HTTP Connect." -#: ../Doc/whatsnew/3.2.rst:1732 +#: ../Doc/whatsnew/3.2.rst:1734 msgid "" "To match the behavior of :mod:`http.server`, the HTTP client library now " "also encodes headers with ISO-8859-1 (Latin-1) encoding. It was already " @@ -2690,11 +2706,11 @@ msgstr "" "por lo que ahora el comportamiento es coherente para el tráfico entrante y " "saliente. (Véase el trabajo de Armin Ronacher en :issue:`10980`)" -#: ../Doc/whatsnew/3.2.rst:1738 +#: ../Doc/whatsnew/3.2.rst:1740 msgid "unittest" msgstr "unittest" -#: ../Doc/whatsnew/3.2.rst:1740 +#: ../Doc/whatsnew/3.2.rst:1742 msgid "" "The unittest module has a number of improvements supporting test discovery " "for packages, easier experimentation at the interactive prompt, new testcase " @@ -2707,7 +2723,7 @@ msgstr "" "diagnóstico mejorados para fallas en las pruebas y mejores nombres de " "métodos." -#: ../Doc/whatsnew/3.2.rst:1745 +#: ../Doc/whatsnew/3.2.rst:1747 msgid "" "The command-line call ``python -m unittest`` can now accept file paths " "instead of module names for running specific tests (:issue:`10620`). The " @@ -2725,12 +2741,12 @@ msgstr "" "hacer coincidir archivos con ``-p`` y un directorio para iniciar el " "descubrimiento con ``-s``:" -#: ../Doc/whatsnew/3.2.rst:1756 ../Doc/whatsnew/3.2.rst:1765 -#: ../Doc/whatsnew/3.2.rst:1921 +#: ../Doc/whatsnew/3.2.rst:1758 ../Doc/whatsnew/3.2.rst:1767 +#: ../Doc/whatsnew/3.2.rst:1923 msgid "(Contributed by Michael Foord.)" msgstr "(Contribución de Michael Foord.)" -#: ../Doc/whatsnew/3.2.rst:1758 +#: ../Doc/whatsnew/3.2.rst:1760 msgid "" "Experimentation at the interactive prompt is now easier because the :class:" "`unittest.case.TestCase` class can now be instantiated without arguments:" @@ -2739,7 +2755,7 @@ msgstr "" "clase :class:`unittest.case.TestCase` ahora se puede instanciar sin " "argumentos:" -#: ../Doc/whatsnew/3.2.rst:1767 +#: ../Doc/whatsnew/3.2.rst:1769 msgid "" "The :mod:`unittest` module has two new methods, :meth:`~unittest.TestCase." "assertWarns` and :meth:`~unittest.TestCase.assertWarnsRegex` to verify that " @@ -2750,11 +2766,11 @@ msgstr "" "verificar que un tipo de advertencia dado es activado por el código bajo " "prueba::" -#: ../Doc/whatsnew/3.2.rst:1775 +#: ../Doc/whatsnew/3.2.rst:1777 msgid "(Contributed by Antoine Pitrou, :issue:`9754`.)" msgstr "(Contribución de Antoine Pitrou, :issue:`9754`.)" -#: ../Doc/whatsnew/3.2.rst:1777 +#: ../Doc/whatsnew/3.2.rst:1779 msgid "" "Another new method, :meth:`~unittest.TestCase.assertCountEqual` is used to " "compare two iterables to determine if their element counts are equal " @@ -2766,7 +2782,7 @@ msgstr "" "iguales (si los mismos elementos están presentes con el mismo número de " "ocurrencias independientemente del orden)::" -#: ../Doc/whatsnew/3.2.rst:1787 +#: ../Doc/whatsnew/3.2.rst:1789 msgid "" "A principal feature of the unittest module is an effort to produce " "meaningful diagnostics when a test fails. When possible, the failure is " @@ -2783,7 +2799,7 @@ msgstr "" "ser voluminosas, hay un nuevo atributo :attr:`~unittest.TestCase.maxDiff` " "que establece la longitud máxima de las diferencias mostradas." -#: ../Doc/whatsnew/3.2.rst:1794 +#: ../Doc/whatsnew/3.2.rst:1796 msgid "" "In addition, the method names in the module have undergone a number of clean-" "ups." @@ -2791,7 +2807,7 @@ msgstr "" "Además, los nombres de los métodos en el módulo se han sometido a una serie " "de limpiezas." -#: ../Doc/whatsnew/3.2.rst:1796 +#: ../Doc/whatsnew/3.2.rst:1798 msgid "" "For example, :meth:`~unittest.TestCase.assertRegex` is the new name for :" "meth:`~unittest.TestCase.assertRegexpMatches` which was misnamed because the " @@ -2809,11 +2825,11 @@ msgstr "" "implementaciones de unittest, coincide con el nombre antiguo de Python para " "el módulo :mod:`re`, y utiliza inequívocamente camel-case." -#: ../Doc/whatsnew/3.2.rst:1804 +#: ../Doc/whatsnew/3.2.rst:1806 msgid "(Contributed by Raymond Hettinger and implemented by Ezio Melotti.)" msgstr "(Contribución de Raymond Hettinger e implementado por Ezio Melotti.)" -#: ../Doc/whatsnew/3.2.rst:1806 +#: ../Doc/whatsnew/3.2.rst:1808 msgid "" "To improve consistency, some long-standing method aliases are being " "deprecated in favor of the preferred names:" @@ -2821,69 +2837,69 @@ msgstr "" "Para mejorar la coherencia, algunos alias de métodos antiguos se están " "deprecando en favor de los nombres preferidos:" -#: ../Doc/whatsnew/3.2.rst:1810 +#: ../Doc/whatsnew/3.2.rst:1812 msgid "Old Name" msgstr "Old Name" -#: ../Doc/whatsnew/3.2.rst:1810 +#: ../Doc/whatsnew/3.2.rst:1812 msgid "Preferred Name" msgstr "Preferred Name" -#: ../Doc/whatsnew/3.2.rst:1812 +#: ../Doc/whatsnew/3.2.rst:1814 msgid ":meth:`assert_`" msgstr ":meth:`assert_`" -#: ../Doc/whatsnew/3.2.rst:1812 +#: ../Doc/whatsnew/3.2.rst:1814 msgid ":meth:`.assertTrue`" msgstr ":meth:`.assertTrue`" -#: ../Doc/whatsnew/3.2.rst:1813 +#: ../Doc/whatsnew/3.2.rst:1815 msgid ":meth:`assertEquals`" msgstr ":meth:`assertEquals`" -#: ../Doc/whatsnew/3.2.rst:1813 +#: ../Doc/whatsnew/3.2.rst:1815 msgid ":meth:`.assertEqual`" msgstr ":meth:`.assertEqual`" -#: ../Doc/whatsnew/3.2.rst:1814 +#: ../Doc/whatsnew/3.2.rst:1816 msgid ":meth:`assertNotEquals`" msgstr ":meth:`assertNotEquals`" -#: ../Doc/whatsnew/3.2.rst:1814 +#: ../Doc/whatsnew/3.2.rst:1816 msgid ":meth:`.assertNotEqual`" msgstr ":meth:`.assertNotEqual`" -#: ../Doc/whatsnew/3.2.rst:1815 +#: ../Doc/whatsnew/3.2.rst:1817 msgid ":meth:`assertAlmostEquals`" msgstr ":meth:`assertAlmostEquals`" -#: ../Doc/whatsnew/3.2.rst:1815 +#: ../Doc/whatsnew/3.2.rst:1817 msgid ":meth:`.assertAlmostEqual`" msgstr ":meth:`.assertAlmostEqual`" -#: ../Doc/whatsnew/3.2.rst:1816 +#: ../Doc/whatsnew/3.2.rst:1818 msgid ":meth:`assertNotAlmostEquals`" msgstr ":meth:`assertNotAlmostEquals`" -#: ../Doc/whatsnew/3.2.rst:1816 +#: ../Doc/whatsnew/3.2.rst:1818 msgid ":meth:`.assertNotAlmostEqual`" msgstr ":meth:`.assertNotAlmostEqual`" -#: ../Doc/whatsnew/3.2.rst:1819 +#: ../Doc/whatsnew/3.2.rst:1821 +#, fuzzy msgid "" "Likewise, the ``TestCase.fail*`` methods deprecated in Python 3.1 are " -"expected to be removed in Python 3.3. Also see the :ref:`deprecated-" -"aliases` section in the :mod:`unittest` documentation." +"expected to be removed in Python 3.3." msgstr "" "Asimismo, se espera que los métodos ``TestCase.fail*`` obsoletos en Python " "3.1 se eliminen en Python 3.3. También vea la sección :ref:`deprecated-" "aliases` en la documentación :mod:`unittest`." -#: ../Doc/whatsnew/3.2.rst:1823 +#: ../Doc/whatsnew/3.2.rst:1824 msgid "(Contributed by Ezio Melotti; :issue:`9424`.)" msgstr "(Contribución de Ezio Melotti; :issue:`9424`.)" -#: ../Doc/whatsnew/3.2.rst:1825 +#: ../Doc/whatsnew/3.2.rst:1826 msgid "" "The :meth:`~unittest.TestCase.assertDictContainsSubset` method was " "deprecated because it was misimplemented with the arguments in the wrong " @@ -2896,11 +2912,11 @@ msgstr "" "pruebas como ``TestCase().assertDictContainsSubset({'a':1, 'b':2}, " "{'a':1})`` fallarían." -#: ../Doc/whatsnew/3.2.rst:1833 +#: ../Doc/whatsnew/3.2.rst:1834 msgid "random" msgstr "random" -#: ../Doc/whatsnew/3.2.rst:1835 +#: ../Doc/whatsnew/3.2.rst:1836 msgid "" "The integer methods in the :mod:`random` module now do a better job of " "producing uniform distributions. Previously, they computed selections with " @@ -2920,15 +2936,15 @@ msgstr "" "métodos afectados son :func:`~random.randrange`, :func:`~random.randint`, :" "func:`~random.choice`, :func:`~random.shuffle` y :func:`~random.sample`." -#: ../Doc/whatsnew/3.2.rst:1844 +#: ../Doc/whatsnew/3.2.rst:1845 msgid "(Contributed by Raymond Hettinger; :issue:`9025`.)" msgstr "(Contribución de Raymond Hettinger; :issue:`9025`.)" -#: ../Doc/whatsnew/3.2.rst:1847 +#: ../Doc/whatsnew/3.2.rst:1848 msgid "poplib" msgstr "poplib" -#: ../Doc/whatsnew/3.2.rst:1849 +#: ../Doc/whatsnew/3.2.rst:1850 msgid "" ":class:`~poplib.POP3_SSL` class now accepts a *context* parameter, which is " "a :class:`ssl.SSLContext` object allowing bundling SSL configuration " @@ -2940,15 +2956,15 @@ msgstr "" "configuración SSL, certificados y claves privadas en una única estructura " "(potencialmente de larga duración) ." -#: ../Doc/whatsnew/3.2.rst:1854 +#: ../Doc/whatsnew/3.2.rst:1855 msgid "(Contributed by Giampaolo Rodolà; :issue:`8807`.)" msgstr "(Contribución de Giampaolo Rodolà; :issue:`8807`.)" -#: ../Doc/whatsnew/3.2.rst:1857 +#: ../Doc/whatsnew/3.2.rst:1858 msgid "asyncore" msgstr "asyncore" -#: ../Doc/whatsnew/3.2.rst:1859 +#: ../Doc/whatsnew/3.2.rst:1860 msgid "" ":class:`asyncore.dispatcher` now provides a :meth:`~asyncore.dispatcher." "handle_accepted()` method returning a ``(sock, addr)`` pair which is called " @@ -2964,15 +2980,15 @@ msgstr "" "`~asyncore.dispatcher.handle_accept()` y evita que el usuario llame " "directamente a :meth:`~asyncore.dispatcher.accept()`." -#: ../Doc/whatsnew/3.2.rst:1866 +#: ../Doc/whatsnew/3.2.rst:1867 msgid "(Contributed by Giampaolo Rodolà; :issue:`6706`.)" msgstr "(Contribución de Giampaolo Rodolà; :issue:`6706`.)" -#: ../Doc/whatsnew/3.2.rst:1869 +#: ../Doc/whatsnew/3.2.rst:1870 msgid "tempfile" msgstr "tempfile" -#: ../Doc/whatsnew/3.2.rst:1871 +#: ../Doc/whatsnew/3.2.rst:1872 msgid "" "The :mod:`tempfile` module has a new context manager, :class:`~tempfile." "TemporaryDirectory` which provides easy deterministic cleanup of temporary " @@ -2982,15 +2998,15 @@ msgstr "" "`~tempfile.TemporaryDirectory` que proporciona una limpieza determinista " "fácil de directorios temporales ::" -#: ../Doc/whatsnew/3.2.rst:1878 +#: ../Doc/whatsnew/3.2.rst:1879 msgid "(Contributed by Neil Schemenauer and Nick Coghlan; :issue:`5178`.)" msgstr "(Contribución de Neil Schemenauer y Nick Coghlan; :issue:`5178`.)" -#: ../Doc/whatsnew/3.2.rst:1881 +#: ../Doc/whatsnew/3.2.rst:1882 msgid "inspect" msgstr "inspect" -#: ../Doc/whatsnew/3.2.rst:1883 +#: ../Doc/whatsnew/3.2.rst:1884 msgid "" "The :mod:`inspect` module has a new function :func:`~inspect." "getgeneratorstate` to easily identify the current state of a generator-" @@ -3000,11 +3016,11 @@ msgstr "" "getgeneratorstate` para identificar fácilmente el estado actual de un " "generador iterador::" -#: ../Doc/whatsnew/3.2.rst:1901 +#: ../Doc/whatsnew/3.2.rst:1903 msgid "(Contributed by Rodolpho Eckhardt and Nick Coghlan, :issue:`10220`.)" msgstr "(Contribución de Rodolpho Eckhardt y Nick Coghlan, :issue:`10220`.)" -#: ../Doc/whatsnew/3.2.rst:1903 +#: ../Doc/whatsnew/3.2.rst:1905 msgid "" "To support lookups without the possibility of activating a dynamic " "attribute, the :mod:`inspect` module has a new function, :func:`~inspect." @@ -3017,11 +3033,11 @@ msgstr "" "búsqueda de solo lectura, garantizada que no cambiará de estado mientras " "está buscando:" -#: ../Doc/whatsnew/3.2.rst:1924 +#: ../Doc/whatsnew/3.2.rst:1926 msgid "pydoc" msgstr "pydoc" -#: ../Doc/whatsnew/3.2.rst:1926 +#: ../Doc/whatsnew/3.2.rst:1928 msgid "" "The :mod:`pydoc` module now provides a much-improved web server interface, " "as well as a new command-line option ``-b`` to automatically open a browser " @@ -3031,15 +3047,15 @@ msgstr "" "mejorada, así como una nueva opción de línea de comandos ``-b`` para abrir " "automáticamente una ventana del navegador para mostrar ese servidor:" -#: ../Doc/whatsnew/3.2.rst:1934 +#: ../Doc/whatsnew/3.2.rst:1936 msgid "(Contributed by Ron Adam; :issue:`2001`.)" msgstr "(Contribución de Ron Adam; :issue:`2001`.)" -#: ../Doc/whatsnew/3.2.rst:1937 +#: ../Doc/whatsnew/3.2.rst:1939 msgid "dis" msgstr "dis" -#: ../Doc/whatsnew/3.2.rst:1939 +#: ../Doc/whatsnew/3.2.rst:1941 msgid "" "The :mod:`dis` module gained two new functions for inspecting code, :func:" "`~dis.code_info` and :func:`~dis.show_code`. Both provide detailed code " @@ -3052,7 +3068,7 @@ msgstr "" "de código fuente o objeto de código suministrados. El primero retorna una " "cadena de caracteres y el segundo la imprime::" -#: ../Doc/whatsnew/3.2.rst:1966 +#: ../Doc/whatsnew/3.2.rst:1968 msgid "" "In addition, the :func:`~dis.dis` function now accepts string arguments so " "that the common idiom ``dis(compile(s, '', 'eval'))`` can be shortened to " @@ -3062,7 +3078,7 @@ msgstr "" "que el modismo común ``dis(compile(s, '', 'eval'))`` se pueda abreviar a " "``dis(s)``::" -#: ../Doc/whatsnew/3.2.rst:1988 +#: ../Doc/whatsnew/3.2.rst:1990 msgid "" "Taken together, these improvements make it easier to explore how CPython is " "implemented and to see for yourself what the language syntax does under-the-" @@ -3071,15 +3087,15 @@ msgstr "" "En conjunto, estas mejoras facilitan explorar cómo se implementa CPython y " "ver por sí mismo qué hace la sintaxis del lenguaje bajo el capó." -#: ../Doc/whatsnew/3.2.rst:1992 +#: ../Doc/whatsnew/3.2.rst:1994 msgid "(Contributed by Nick Coghlan in :issue:`9147`.)" msgstr "(Contribución de Nick Coghlan en :issue:`9147`.)" -#: ../Doc/whatsnew/3.2.rst:1995 +#: ../Doc/whatsnew/3.2.rst:1997 msgid "dbm" msgstr "dbm" -#: ../Doc/whatsnew/3.2.rst:1997 +#: ../Doc/whatsnew/3.2.rst:1999 msgid "" "All database modules now support the :meth:`get` and :meth:`setdefault` " "methods." @@ -3087,15 +3103,15 @@ msgstr "" "Todos los módulos de base de datos ahora admiten los métodos :meth:`get` y :" "meth:`setdefault`." -#: ../Doc/whatsnew/3.2.rst:1999 +#: ../Doc/whatsnew/3.2.rst:2001 msgid "(Suggested by Ray Allen in :issue:`9523`.)" msgstr "(Sugerido por Ray Allen en :issue:`9523`.)" -#: ../Doc/whatsnew/3.2.rst:2002 +#: ../Doc/whatsnew/3.2.rst:2004 msgid "ctypes" msgstr "ctypes" -#: ../Doc/whatsnew/3.2.rst:2004 +#: ../Doc/whatsnew/3.2.rst:2006 msgid "" "A new type, :class:`ctypes.c_ssize_t` represents the C :c:type:`ssize_t` " "datatype." @@ -3103,11 +3119,11 @@ msgstr "" "Un nuevo tipo, :class:`ctypes.c_ssize_t` representa el tipo de datos C :c:" "type:`ssize_t`." -#: ../Doc/whatsnew/3.2.rst:2007 +#: ../Doc/whatsnew/3.2.rst:2009 msgid "site" msgstr "site" -#: ../Doc/whatsnew/3.2.rst:2009 +#: ../Doc/whatsnew/3.2.rst:2011 msgid "" "The :mod:`site` module has three new functions useful for reporting on the " "details of a given Python installation." @@ -3115,14 +3131,14 @@ msgstr "" "El módulo :mod:`site` tiene tres nuevas funciones útiles para informar sobre " "los detalles de una determinada instalación de Python." -#: ../Doc/whatsnew/3.2.rst:2012 +#: ../Doc/whatsnew/3.2.rst:2014 msgid "" ":func:`~site.getsitepackages` lists all global site-packages directories." msgstr "" ":func:`~site.getsitepackages` enumera todos los directorios de paquetes de " "sitios globales." -#: ../Doc/whatsnew/3.2.rst:2014 +#: ../Doc/whatsnew/3.2.rst:2016 msgid "" ":func:`~site.getuserbase` reports on the user's base directory where data " "can be stored." @@ -3130,7 +3146,7 @@ msgstr "" ":func:`~site.getuserbase` informa sobre el directorio base del usuario donde " "se pueden almacenar los datos." -#: ../Doc/whatsnew/3.2.rst:2017 +#: ../Doc/whatsnew/3.2.rst:2019 msgid "" ":func:`~site.getusersitepackages` reveals the user-specific site-packages " "directory path." @@ -3138,7 +3154,7 @@ msgstr "" ":func:`~site.getusersitepackages` revela la ruta del directorio de paquetes " "de sitio específico del usuario." -#: ../Doc/whatsnew/3.2.rst:2032 +#: ../Doc/whatsnew/3.2.rst:2034 msgid "" "Conveniently, some of site's functionality is accessible directly from the " "command-line:" @@ -3146,15 +3162,15 @@ msgstr "" "Convenientemente, se puede acceder a algunas de las funciones del sitio " "directamente desde la línea de comandos:" -#: ../Doc/whatsnew/3.2.rst:2042 +#: ../Doc/whatsnew/3.2.rst:2044 msgid "(Contributed by Tarek Ziadé in :issue:`6693`.)" msgstr "(Contribución de Tarek Ziadé en :issue:`6693`.)" -#: ../Doc/whatsnew/3.2.rst:2045 +#: ../Doc/whatsnew/3.2.rst:2047 msgid "sysconfig" msgstr "sysconfig" -#: ../Doc/whatsnew/3.2.rst:2047 +#: ../Doc/whatsnew/3.2.rst:2049 msgid "" "The new :mod:`sysconfig` module makes it straightforward to discover " "installation paths and configuration variables that vary across platforms " @@ -3164,7 +3180,7 @@ msgstr "" "instalación y variables de configuración que varían entre plataformas e " "instalaciones." -#: ../Doc/whatsnew/3.2.rst:2051 +#: ../Doc/whatsnew/3.2.rst:2053 msgid "" "The module offers access simple access functions for platform and version " "information:" @@ -3172,7 +3188,7 @@ msgstr "" "El módulo ofrece acceso a funciones de acceso simple para información de " "plataforma y versión:" -#: ../Doc/whatsnew/3.2.rst:2054 +#: ../Doc/whatsnew/3.2.rst:2056 msgid "" ":func:`~sysconfig.get_platform` returning values like *linux-i586* or " "*macosx-10.6-ppc*." @@ -3180,7 +3196,7 @@ msgstr "" ":func:`~sysconfig.get_platform` retornando valores como *linux-i586* o " "*macosx-10.6-ppc*." -#: ../Doc/whatsnew/3.2.rst:2056 +#: ../Doc/whatsnew/3.2.rst:2058 msgid "" ":func:`~sysconfig.get_python_version` returns a Python version string such " "as \"3.2\"." @@ -3188,10 +3204,11 @@ msgstr "" ":func:`~sysconfig.get_python_version` retorna una cadena de versión de " "Python como\" 3.2 \"." -#: ../Doc/whatsnew/3.2.rst:2059 +#: ../Doc/whatsnew/3.2.rst:2061 +#, fuzzy msgid "" "It also provides access to the paths and variables corresponding to one of " -"seven named schemes used by :mod:`distutils`. Those include *posix_prefix*, " +"seven named schemes used by ``distutils``. Those include *posix_prefix*, " "*posix_home*, *posix_user*, *nt*, *nt_user*, *os2*, *os2_home*:" msgstr "" "También proporciona acceso a las rutas y variables correspondientes a uno de " @@ -3199,7 +3216,7 @@ msgstr "" "incluyen *posix_prefix*, *posix_home*, *posix_user*, *nt*, *nt_user *, " "*os2*, *os2_home*:" -#: ../Doc/whatsnew/3.2.rst:2063 +#: ../Doc/whatsnew/3.2.rst:2065 msgid "" ":func:`~sysconfig.get_paths` makes a dictionary containing installation " "paths for the current installation scheme." @@ -3207,7 +3224,7 @@ msgstr "" ":func:`~sysconfig.get_paths` crea un diccionario que contiene las rutas de " "instalación para el esquema de instalación actual." -#: ../Doc/whatsnew/3.2.rst:2065 +#: ../Doc/whatsnew/3.2.rst:2067 msgid "" ":func:`~sysconfig.get_config_vars` returns a dictionary of platform specific " "variables." @@ -3215,25 +3232,25 @@ msgstr "" ":func:`~sysconfig.get_config_vars` retorna un diccionario de variables " "específicas de la plataforma." -#: ../Doc/whatsnew/3.2.rst:2068 +#: ../Doc/whatsnew/3.2.rst:2070 msgid "There is also a convenient command-line interface:" msgstr "También hay una conveniente interfaz de línea de comandos:" -#: ../Doc/whatsnew/3.2.rst:2107 +#: ../Doc/whatsnew/3.2.rst:2109 msgid "(Moved out of Distutils by Tarek Ziadé.)" msgstr "(Sacado de Distutils por Tarek Ziadé.)" -#: ../Doc/whatsnew/3.2.rst:2110 +#: ../Doc/whatsnew/3.2.rst:2112 msgid "pdb" msgstr "pdb" -#: ../Doc/whatsnew/3.2.rst:2112 +#: ../Doc/whatsnew/3.2.rst:2114 msgid "" "The :mod:`pdb` debugger module gained a number of usability improvements:" msgstr "" "El módulo depurador :mod:`pdb` obtuvo una serie de mejoras de usabilidad:" -#: ../Doc/whatsnew/3.2.rst:2114 +#: ../Doc/whatsnew/3.2.rst:2116 msgid "" ":file:`pdb.py` now has a ``-c`` option that executes commands as given in a :" "file:`.pdbrc` script file." @@ -3241,7 +3258,7 @@ msgstr "" ":file:`pdb.py` ahora tiene una opción ``-c`` que ejecuta comandos como se " "indica en un archivo de script :file:`.pdbrc`." -#: ../Doc/whatsnew/3.2.rst:2116 +#: ../Doc/whatsnew/3.2.rst:2118 msgid "" "A :file:`.pdbrc` script file can contain ``continue`` and ``next`` commands " "that continue debugging." @@ -3249,12 +3266,12 @@ msgstr "" "Un archivo de secuencia de comandos :file:`.pdbrc` puede contener comandos " "``continue`` y ``next`` que continúan depurando." -#: ../Doc/whatsnew/3.2.rst:2118 +#: ../Doc/whatsnew/3.2.rst:2120 msgid "The :class:`Pdb` class constructor now accepts a *nosigint* argument." msgstr "" "El constructor de la clase :class:`Pdb` ahora acepta un argumento *nosigint*." -#: ../Doc/whatsnew/3.2.rst:2119 +#: ../Doc/whatsnew/3.2.rst:2121 msgid "" "New commands: ``l(list)``, ``ll(long list)`` and ``source`` for listing " "source code." @@ -3262,7 +3279,7 @@ msgstr "" "Nuevos comandos: ``l(list)``, ``ll(long list)`` y ``source`` para enumerar " "el código fuente." -#: ../Doc/whatsnew/3.2.rst:2121 +#: ../Doc/whatsnew/3.2.rst:2123 msgid "" "New commands: ``display`` and ``undisplay`` for showing or hiding the value " "of an expression if it has changed." @@ -3270,7 +3287,7 @@ msgstr "" "Nuevos comandos: ``display`` y ``undisplay`` para mostrar u ocultar el valor " "de una expresión si ha cambiado." -#: ../Doc/whatsnew/3.2.rst:2123 +#: ../Doc/whatsnew/3.2.rst:2125 msgid "" "New command: ``interact`` for starting an interactive interpreter containing " "the global and local names found in the current scope." @@ -3279,21 +3296,21 @@ msgstr "" "contiene los nombres globales y locales que se encuentran en el alcance " "actual." -#: ../Doc/whatsnew/3.2.rst:2125 +#: ../Doc/whatsnew/3.2.rst:2127 msgid "Breakpoints can be cleared by breakpoint number." msgstr "" "Los puntos de interrupción se pueden borrar por número de punto de " "interrupción." -#: ../Doc/whatsnew/3.2.rst:2127 +#: ../Doc/whatsnew/3.2.rst:2129 msgid "(Contributed by Georg Brandl, Antonio Cuni and Ilya Sandler.)" msgstr "(Contribución de Georg Brandl, Antonio Cuni e Ilya Sandler.)" -#: ../Doc/whatsnew/3.2.rst:2130 +#: ../Doc/whatsnew/3.2.rst:2132 msgid "configparser" msgstr "configparser" -#: ../Doc/whatsnew/3.2.rst:2132 +#: ../Doc/whatsnew/3.2.rst:2134 msgid "" "The :mod:`configparser` module was modified to improve usability and " "predictability of the default parser and its supported INI syntax. The old :" @@ -3310,13 +3327,13 @@ msgstr "" "desactivada de forma predeterminada y no se permiten duplicados de secciones " "u opciones en una única fuente de configuración." -#: ../Doc/whatsnew/3.2.rst:2139 +#: ../Doc/whatsnew/3.2.rst:2141 msgid "Config parsers gained a new API based on the mapping protocol::" msgstr "" "Los analizadores de configuración obtuvieron una nueva API basada en el " "protocolo de mapeo::" -#: ../Doc/whatsnew/3.2.rst:2167 +#: ../Doc/whatsnew/3.2.rst:2169 msgid "" "The new API is implemented on top of the classical API, so custom parser " "subclasses should be able to use it without modifications." @@ -3324,7 +3341,7 @@ msgstr "" "La nueva API se implementa sobre la API clásica, por lo que las subclases de " "analizadores personalizados deberían poder usarla sin modificaciones." -#: ../Doc/whatsnew/3.2.rst:2170 +#: ../Doc/whatsnew/3.2.rst:2172 msgid "" "The INI file structure accepted by config parsers can now be customized. " "Users can specify alternative option/value delimiters and comment prefixes, " @@ -3335,7 +3352,7 @@ msgstr "" "alternativas/delimitadores de valores y prefijos de comentarios, cambiar el " "nombre de la sección *DEFAULT* o cambiar la sintaxis de interpolación." -#: ../Doc/whatsnew/3.2.rst:2174 +#: ../Doc/whatsnew/3.2.rst:2176 msgid "" "There is support for pluggable interpolation including an additional " "interpolation handler :class:`~configparser.ExtendedInterpolation`::" @@ -3343,7 +3360,7 @@ msgstr "" "Hay soporte para la interpolación conectable que incluye un controlador de " "interpolación adicional :class:`~configparser.ExtendedInterpolation`::" -#: ../Doc/whatsnew/3.2.rst:2207 +#: ../Doc/whatsnew/3.2.rst:2209 msgid "" "A number of smaller features were also introduced, like support for " "specifying encoding in read operations, specifying fallback values for get-" @@ -3354,15 +3371,15 @@ msgstr "" "valores de respaldo para funciones de obtención o leer directamente desde " "diccionarios y cadenas." -#: ../Doc/whatsnew/3.2.rst:2211 +#: ../Doc/whatsnew/3.2.rst:2213 msgid "(All changes contributed by Łukasz Langa.)" msgstr "(Todos los cambios aportados por Łukasz Langa.)" -#: ../Doc/whatsnew/3.2.rst:2216 +#: ../Doc/whatsnew/3.2.rst:2218 msgid "urllib.parse" msgstr "urllib.parse" -#: ../Doc/whatsnew/3.2.rst:2218 +#: ../Doc/whatsnew/3.2.rst:2220 msgid "" "A number of usability improvements were made for the :mod:`urllib.parse` " "module." @@ -3370,7 +3387,7 @@ msgstr "" "Se realizaron varias mejoras de usabilidad para el módulo :mod:`urllib." "parse`." -#: ../Doc/whatsnew/3.2.rst:2220 +#: ../Doc/whatsnew/3.2.rst:2222 msgid "" "The :func:`~urllib.parse.urlparse` function now supports `IPv6 `_ addresses as described in :rfc:`2732`:" @@ -3378,7 +3395,7 @@ msgstr "" "La función :func:`~urllib.parse.urlparse` ahora admite direcciones `IPv6 " "`_ como se describe en :rfc:`2732`:" -#: ../Doc/whatsnew/3.2.rst:2232 +#: ../Doc/whatsnew/3.2.rst:2234 msgid "" "The :func:`~urllib.parse.urldefrag` function now returns a :term:`named " "tuple`::" @@ -3386,7 +3403,7 @@ msgstr "" "La función :func:`~urllib.parse.urldefrag` ahora devuelve un :term:`named " "tuple`::" -#: ../Doc/whatsnew/3.2.rst:2242 +#: ../Doc/whatsnew/3.2.rst:2244 msgid "" "And, the :func:`~urllib.parse.urlencode` function is now much more flexible, " "accepting either a string or bytes type for the *query* argument. If it is " @@ -3398,7 +3415,7 @@ msgstr "" "cadena, entonces los parámetros *safe*, *encoding* y *error* se envían a :" "func:`~urllib.parse.quote_plus` para codificar::" -#: ../Doc/whatsnew/3.2.rst:2253 +#: ../Doc/whatsnew/3.2.rst:2255 msgid "" "As detailed in :ref:`parsing-ascii-encoded-bytes`, all the :mod:`urllib." "parse` functions now accept ASCII-encoded byte strings as input, so long as " @@ -3412,7 +3429,7 @@ msgstr "" "proporcionan cadenas de bytes codificadas en ASCII como parámetros, los " "tipos de retorno también serán cadenas de bytes codificadas en ASCII:" -#: ../Doc/whatsnew/3.2.rst:2262 +#: ../Doc/whatsnew/3.2.rst:2264 msgid "" "(Work by Nick Coghlan, Dan Mahn, and Senthil Kumaran in :issue:`2987`, :" "issue:`5468`, and :issue:`9873`.)" @@ -3420,11 +3437,11 @@ msgstr "" "(Trabajo de Nick Coghlan, Dan Mahn y Senthil Kumaran en :issue:`2987`, :" "issue:`5468`, y :issue:`9873`.)" -#: ../Doc/whatsnew/3.2.rst:2266 +#: ../Doc/whatsnew/3.2.rst:2268 msgid "mailbox" msgstr "mailbox" -#: ../Doc/whatsnew/3.2.rst:2268 +#: ../Doc/whatsnew/3.2.rst:2270 msgid "" "Thanks to a concerted effort by R. David Murray, the :mod:`mailbox` module " "has been fixed for Python 3.2. The challenge was that mailbox had been " @@ -3438,7 +3455,7 @@ msgstr "" "correo electrónico se representan mejor con :class:`bytes` porque varias " "partes de un mensaje pueden tener diferentes codificaciones." -#: ../Doc/whatsnew/3.2.rst:2273 +#: ../Doc/whatsnew/3.2.rst:2275 msgid "" "The solution harnessed the :mod:`email` package's binary support for parsing " "arbitrary email messages. In addition, the solution required a number of " @@ -3448,7 +3465,7 @@ msgstr "" "analizar mensajes de correo electrónico arbitrarios. Además, la solución " "requirió una serie de cambios en la API." -#: ../Doc/whatsnew/3.2.rst:2277 +#: ../Doc/whatsnew/3.2.rst:2279 msgid "" "As expected, the :meth:`~mailbox.Mailbox.add` method for :class:`mailbox." "Mailbox` objects now accepts binary input." @@ -3456,7 +3473,7 @@ msgstr "" "Como era de esperar, el método :meth:`~mailbox.Mailbox.add` para los " "objetos :class:`mailbox.Mailbox` ahora acepta entrada binaria." -#: ../Doc/whatsnew/3.2.rst:2280 +#: ../Doc/whatsnew/3.2.rst:2282 msgid "" ":class:`~io.StringIO` and text file input are deprecated. Also, string " "input will fail early if non-ASCII characters are used. Previously it would " @@ -3467,7 +3484,7 @@ msgstr "" "sean ASCII. Anteriormente, fallaba cuando el correo electrónico se procesaba " "en un paso posterior." -#: ../Doc/whatsnew/3.2.rst:2284 +#: ../Doc/whatsnew/3.2.rst:2286 msgid "" "There is also support for binary output. The :meth:`~mailbox.Mailbox." "get_file` method now returns a file in the binary mode (where it used to " @@ -3481,7 +3498,7 @@ msgstr "" "`~mailbox.Mailbox.get_bytes` que devuelve una representación :class:`bytes` " "de un mensaje correspondiente a una *key* dada." -#: ../Doc/whatsnew/3.2.rst:2290 +#: ../Doc/whatsnew/3.2.rst:2292 msgid "" "It is still possible to get non-binary output using the old API's :meth:" "`~mailbox.Mailbox.get_string` method, but that approach is not very useful. " @@ -3493,7 +3510,7 @@ msgstr "" "útil. En su lugar, es mejor extraer mensajes de un objeto :class:`~mailbox." "Message` o cargarlos desde una entrada binaria." -#: ../Doc/whatsnew/3.2.rst:2295 +#: ../Doc/whatsnew/3.2.rst:2297 msgid "" "(Contributed by R. David Murray, with efforts from Steffen Daode Nurpmeso " "and an initial patch by Victor Stinner in :issue:`9124`.)" @@ -3501,15 +3518,16 @@ msgstr "" "(Contribuido por R. David Murray, con esfuerzos de Steffen Daode Nurpmeso y " "un parche inicial de Victor Stinner en :issue:`9124`.)" -#: ../Doc/whatsnew/3.2.rst:2299 +#: ../Doc/whatsnew/3.2.rst:2301 msgid "turtledemo" msgstr "turtledemo" -#: ../Doc/whatsnew/3.2.rst:2301 +#: ../Doc/whatsnew/3.2.rst:2303 +#, fuzzy msgid "" "The demonstration code for the :mod:`turtle` module was moved from the " "*Demo* directory to main library. It includes over a dozen sample scripts " -"with lively displays. Being on :attr:`sys.path`, it can now be run directly " +"with lively displays. Being on :data:`sys.path`, it can now be run directly " "from the command-line:" msgstr "" "El código de demostración para el módulo :mod:`turtle` se movió del " @@ -3517,17 +3535,17 @@ msgstr "" "scripts de muestra con pantallas animadas. Al estar en :attr:`sys.path`, " "ahora se puede ejecutar directamente desde la línea de comandos:" -#: ../Doc/whatsnew/3.2.rst:2310 +#: ../Doc/whatsnew/3.2.rst:2312 msgid "" "(Moved from the Demo directory by Alexander Belopolsky in :issue:`10199`.)" msgstr "" "(Movido del directorio Demo por Alexander Belopolsky en :issue:`10199`.)" -#: ../Doc/whatsnew/3.2.rst:2313 +#: ../Doc/whatsnew/3.2.rst:2315 msgid "Multi-threading" msgstr "Multi-threading" -#: ../Doc/whatsnew/3.2.rst:2315 +#: ../Doc/whatsnew/3.2.rst:2317 msgid "" "The mechanism for serializing execution of concurrently running Python " "threads (generally known as the :term:`GIL` or Global Interpreter Lock) has " @@ -3548,7 +3566,7 @@ msgstr "" "segundos. Este parámetro se puede ajustar a través de :func:`sys." "setswitchinterval()`. Actualmente, el valor predeterminado es 5 milisegundos." -#: ../Doc/whatsnew/3.2.rst:2324 +#: ../Doc/whatsnew/3.2.rst:2326 msgid "" "Additional details about the implementation can be read from a `python-dev " "mailing-list message `_ used in :" "meth:`list.sort` and :func:`sorted` now runs faster and uses less memory " @@ -3668,11 +3686,11 @@ msgstr "" "contenedores de clasificación y ahorra el tiempo perdido al delegar " "comparaciones." -#: ../Doc/whatsnew/3.2.rst:2379 +#: ../Doc/whatsnew/3.2.rst:2381 msgid "(Patch by Daniel Stutzbach in :issue:`9915`.)" msgstr "(Parche de Daniel Stutzbach en :issue:`9915`.)" -#: ../Doc/whatsnew/3.2.rst:2381 +#: ../Doc/whatsnew/3.2.rst:2383 msgid "" "JSON decoding performance is improved and memory consumption is reduced " "whenever the same string is repeated for multiple keys. Also, JSON encoding " @@ -3683,7 +3701,7 @@ msgstr "" "codificación JSON ahora usa las aceleraciones de C cuando el argumento " "``sort_keys`` es verdadero." -#: ../Doc/whatsnew/3.2.rst:2385 +#: ../Doc/whatsnew/3.2.rst:2387 msgid "" "(Contributed by Antoine Pitrou in :issue:`7451` and by Raymond Hettinger and " "Antoine Pitrou in :issue:`10314`.)" @@ -3691,7 +3709,7 @@ msgstr "" "(Contribución de Antoine Pitrou en :issue:`7451` y Raymond Hettinger y " "Antoine Pitrou en :issue:`10314`.)" -#: ../Doc/whatsnew/3.2.rst:2388 +#: ../Doc/whatsnew/3.2.rst:2390 msgid "" "Recursive locks (created with the :func:`threading.RLock` API) now benefit " "from a C implementation which makes them as fast as regular locks, and " @@ -3702,11 +3720,11 @@ msgstr "" "bloqueos normales, y entre 10 y 15 veces más rápidos que su anterior " "implementación pura de Python." -#: ../Doc/whatsnew/3.2.rst:2392 +#: ../Doc/whatsnew/3.2.rst:2394 msgid "(Contributed by Antoine Pitrou; :issue:`3001`.)" msgstr "(Contribución de Antoine Pitrou; :issue:`3001`.)" -#: ../Doc/whatsnew/3.2.rst:2394 +#: ../Doc/whatsnew/3.2.rst:2396 msgid "" "The fast-search algorithm in stringlib is now used by the :meth:`split`, :" "meth:`rsplit`, :meth:`splitlines` and :meth:`replace` methods on :class:" @@ -3720,11 +3738,11 @@ msgstr "" "algoritmo también es utilizado por :meth:`rfind`, :meth:`rindex`, :meth:" "`rsplit` y :meth:`rpartition`." -#: ../Doc/whatsnew/3.2.rst:2400 +#: ../Doc/whatsnew/3.2.rst:2402 msgid "(Patch by Florent Xicluna in :issue:`7622` and :issue:`7462`.)" msgstr "(Parche de Florent Xicluna en :issue:`7622` y :issue:`7462`.)" -#: ../Doc/whatsnew/3.2.rst:2403 +#: ../Doc/whatsnew/3.2.rst:2405 msgid "" "Integer to string conversions now work two \"digits\" at a time, reducing " "the number of division and modulo operations." @@ -3733,11 +3751,11 @@ msgstr "" "\"dígitos\" a la vez, lo que reduce el número de operaciones de división y " "módulo." -#: ../Doc/whatsnew/3.2.rst:2406 +#: ../Doc/whatsnew/3.2.rst:2408 msgid "(:issue:`6713` by Gawain Bolton, Mark Dickinson, and Victor Stinner.)" msgstr "(:issue:`6713` de Gawain Bolton, Mark Dickinson y Victor Stinner.)" -#: ../Doc/whatsnew/3.2.rst:2408 +#: ../Doc/whatsnew/3.2.rst:2410 msgid "" "There were several other minor optimizations. Set differencing now runs " "faster when one operand is much larger than the other (patch by Andress " @@ -3758,11 +3776,11 @@ msgstr "" "Y :class:`ConfigParser` carga argumentos de varias líneas un poco más rápido " "(:issue:`7113` de Łukasz Langa)." -#: ../Doc/whatsnew/3.2.rst:2419 +#: ../Doc/whatsnew/3.2.rst:2421 msgid "Unicode" msgstr "Unicode" -#: ../Doc/whatsnew/3.2.rst:2421 +#: ../Doc/whatsnew/3.2.rst:2423 msgid "" "Python has been updated to `Unicode 6.0.0 `_. The update to the standard adds over 2,000 new characters " @@ -3774,7 +3792,7 @@ msgstr "" "caracteres nuevos, incluidos los símbolos `emoji `_ que son importantes para los teléfonos móviles." -#: ../Doc/whatsnew/3.2.rst:2426 +#: ../Doc/whatsnew/3.2.rst:2428 msgid "" "In addition, the updated standard has altered the character properties for " "two Kannada characters (U+0CF1, U+0CF2) and one New Tai Lue numeric " @@ -3790,16 +3808,16 @@ msgstr "" "Character Database Changes `_." -#: ../Doc/whatsnew/3.2.rst:2434 +#: ../Doc/whatsnew/3.2.rst:2436 msgid "Codecs" msgstr "Codecs" -#: ../Doc/whatsnew/3.2.rst:2436 +#: ../Doc/whatsnew/3.2.rst:2438 msgid "Support was added for *cp720* Arabic DOS encoding (:issue:`1616979`)." msgstr "" "Se agregó soporte para *cp720* codificación DOS árabe (:issue:`1616979`)." -#: ../Doc/whatsnew/3.2.rst:2438 +#: ../Doc/whatsnew/3.2.rst:2440 msgid "" "MBCS encoding no longer ignores the error handler argument. In the default " "strict mode, it raises an :exc:`UnicodeDecodeError` when it encounters an " @@ -3811,7 +3829,7 @@ msgstr "" "cuando encuentra una secuencia de bytes no codificable y un :exc:" "`UnicodeEncodeError` para un carácter no codificable." -#: ../Doc/whatsnew/3.2.rst:2443 +#: ../Doc/whatsnew/3.2.rst:2445 msgid "" "The MBCS codec supports ``'strict'`` and ``'ignore'`` error handlers for " "decoding, and ``'strict'`` and ``'replace'`` for encoding." @@ -3820,7 +3838,7 @@ msgstr "" "``'ignore'`` para la decodificación y ``'strict'`` y ``'replace'`` para la " "codificación." -#: ../Doc/whatsnew/3.2.rst:2446 +#: ../Doc/whatsnew/3.2.rst:2448 msgid "" "To emulate Python3.1 MBCS encoding, select the ``'ignore'`` handler for " "decoding and the ``'replace'`` handler for encoding." @@ -3828,7 +3846,7 @@ msgstr "" "Para emular la codificación Python3.1 MBCS, seleccione el controlador " "``'ignore'`` para decodificar y el controlador ``'replace'`` para codificar." -#: ../Doc/whatsnew/3.2.rst:2449 +#: ../Doc/whatsnew/3.2.rst:2451 msgid "" "On Mac OS X, Python decodes command line arguments with ``'utf-8'`` rather " "than the locale encoding." @@ -3836,7 +3854,7 @@ msgstr "" "En Mac OS X, Python decodifica los argumentos de la línea de comandos con " "``'utf-8'`` en lugar de la codificación local." -#: ../Doc/whatsnew/3.2.rst:2452 +#: ../Doc/whatsnew/3.2.rst:2454 msgid "" "By default, :mod:`tarfile` uses ``'utf-8'`` encoding on Windows (instead of " "``'mbcs'``) and the ``'surrogateescape'`` error handler on all operating " @@ -3846,15 +3864,15 @@ msgstr "" "Windows (en lugar de ``'mbcs'``) y el controlador de errores " "``'surrogateescape'`` en todos los sistemas operativos." -#: ../Doc/whatsnew/3.2.rst:2458 +#: ../Doc/whatsnew/3.2.rst:2460 msgid "Documentation" msgstr "Documentación" -#: ../Doc/whatsnew/3.2.rst:2460 +#: ../Doc/whatsnew/3.2.rst:2462 msgid "The documentation continues to be improved." msgstr "La documentación sigue mejorando." -#: ../Doc/whatsnew/3.2.rst:2462 +#: ../Doc/whatsnew/3.2.rst:2464 msgid "" "A table of quick links has been added to the top of lengthy sections such " "as :ref:`built-in-funcs`. In the case of :mod:`itertools`, the links are " @@ -3867,7 +3885,7 @@ msgstr "" "de trucos para proporcionar una descripción general y un cambio de memoria " "sin tener que leer todos los documentos." -#: ../Doc/whatsnew/3.2.rst:2467 +#: ../Doc/whatsnew/3.2.rst:2469 msgid "" "In some cases, the pure Python source code can be a helpful adjunct to the " "documentation, so now many modules now feature quick links to the latest " @@ -3880,11 +3898,11 @@ msgstr "" "del módulo :mod:`functools` tiene un enlace rápido en la parte superior " "etiquetado:" -#: ../Doc/whatsnew/3.2.rst:2472 +#: ../Doc/whatsnew/3.2.rst:2474 msgid "**Source code** :source:`Lib/functools.py`." msgstr "**Código fuente** :source:`Lib/functools.py`." -#: ../Doc/whatsnew/3.2.rst:2474 +#: ../Doc/whatsnew/3.2.rst:2476 msgid "" "(Contributed by Raymond Hettinger; see `rationale `_.)" @@ -3892,7 +3910,7 @@ msgstr "" "(Contribuido por Raymond Hettinger; ver `rationale `_.)" -#: ../Doc/whatsnew/3.2.rst:2477 +#: ../Doc/whatsnew/3.2.rst:2479 msgid "" "The docs now contain more examples and recipes. In particular, :mod:`re` " "module has an extensive section, :ref:`re-examples`. Likewise, the :mod:" @@ -3903,7 +3921,7 @@ msgstr "" "módulo :mod:`itertools` continúa siendo actualizado con nuevo :ref:" "`itertools-recipes`." -#: ../Doc/whatsnew/3.2.rst:2482 +#: ../Doc/whatsnew/3.2.rst:2484 msgid "" "The :mod:`datetime` module now has an auxiliary implementation in pure " "Python. No functionality was changed. This just provides an easier-to-read " @@ -3913,11 +3931,11 @@ msgstr "" "puro. No se modificó ninguna funcionalidad. Esto solo proporciona una " "implementación alternativa más fácil de leer." -#: ../Doc/whatsnew/3.2.rst:2486 +#: ../Doc/whatsnew/3.2.rst:2488 msgid "(Contributed by Alexander Belopolsky in :issue:`9528`.)" msgstr "(Contribuido por Alexander Belopolsky en :issue:`9528`.)" -#: ../Doc/whatsnew/3.2.rst:2488 +#: ../Doc/whatsnew/3.2.rst:2490 msgid "" "The unmaintained :file:`Demo` directory has been removed. Some demos were " "integrated into the documentation, some were moved to the :file:`Tools/demo` " @@ -3927,15 +3945,15 @@ msgstr "" "demostraciones se integraron en la documentación, otras se movieron al " "directorio :file:`Tools/demo` y otras se eliminaron por completo." -#: ../Doc/whatsnew/3.2.rst:2492 +#: ../Doc/whatsnew/3.2.rst:2494 msgid "(Contributed by Georg Brandl in :issue:`7962`.)" msgstr "(Contribución de Georg Brandl en :issue:`7962`.)" -#: ../Doc/whatsnew/3.2.rst:2496 +#: ../Doc/whatsnew/3.2.rst:2498 msgid "IDLE" msgstr "IDLE" -#: ../Doc/whatsnew/3.2.rst:2498 +#: ../Doc/whatsnew/3.2.rst:2500 msgid "" "The format menu now has an option to clean source files by stripping " "trailing whitespace." @@ -3943,25 +3961,25 @@ msgstr "" "El menú de formato ahora tiene una opción para limpiar archivos de origen " "eliminando los espacios en blanco finales." -#: ../Doc/whatsnew/3.2.rst:2501 +#: ../Doc/whatsnew/3.2.rst:2503 msgid "(Contributed by Raymond Hettinger; :issue:`5150`.)" msgstr "(Contribución de Raymond Hettinger; :issue:`5150`.)" -#: ../Doc/whatsnew/3.2.rst:2503 +#: ../Doc/whatsnew/3.2.rst:2505 msgid "IDLE on Mac OS X now works with both Carbon AquaTk and Cocoa AquaTk." msgstr "IDLE en Mac OS X ahora funciona con Carbon AquaTk y Cocoa AquaTk." -#: ../Doc/whatsnew/3.2.rst:2505 +#: ../Doc/whatsnew/3.2.rst:2507 msgid "" "(Contributed by Kevin Walzer, Ned Deily, and Ronald Oussoren; :issue:`6075`.)" msgstr "" "(Contribución de Kevin Walzer, Ned Deily y Ronald Oussoren; :issue:`6075`.)" -#: ../Doc/whatsnew/3.2.rst:2508 +#: ../Doc/whatsnew/3.2.rst:2510 msgid "Code Repository" msgstr "Repositorio de código" -#: ../Doc/whatsnew/3.2.rst:2510 +#: ../Doc/whatsnew/3.2.rst:2512 msgid "" "In addition to the existing Subversion code repository at https://svn.python." "org there is now a `Mercurial `_ repository " @@ -3971,7 +3989,7 @@ msgstr "" "org, ahora hay un repositorio `Mercurial `_ " "en https://hg.python.org/\\." -#: ../Doc/whatsnew/3.2.rst:2514 +#: ../Doc/whatsnew/3.2.rst:2516 msgid "" "After the 3.2 release, there are plans to switch to Mercurial as the primary " "repository. This distributed version control system should make it easier " @@ -3984,7 +4002,7 @@ msgstr "" "intercambio de conjuntos de cambios externos. Consulte :pep:`385` para " "obtener más detalles." -#: ../Doc/whatsnew/3.2.rst:2519 +#: ../Doc/whatsnew/3.2.rst:2521 msgid "" "To learn to use the new version control system, see the `Quick Start " "`_ or the `Guide to Mercurial " @@ -3994,16 +4012,16 @@ msgstr "" "el `Quick Start `_ o la " "`Guide to Mercurial Workflows `_." -#: ../Doc/whatsnew/3.2.rst:2525 +#: ../Doc/whatsnew/3.2.rst:2527 msgid "Build and C API Changes" msgstr "Cambios en la API de construcción y C" -#: ../Doc/whatsnew/3.2.rst:2527 +#: ../Doc/whatsnew/3.2.rst:2529 msgid "Changes to Python's build process and to the C API include:" msgstr "" "Los cambios en el proceso de compilación de Python y en la API de C incluyen:" -#: ../Doc/whatsnew/3.2.rst:2529 +#: ../Doc/whatsnew/3.2.rst:2531 msgid "" "The *idle*, *pydoc* and *2to3* scripts are now installed with a version-" "specific suffix on ``make altinstall`` (:issue:`10679`)." @@ -4011,7 +4029,7 @@ msgstr "" "Los scripts *idle*, *pydoc* y *2to3* ahora están instalados con un sufijo " "específico de la versión en ``make altinstall`` (:issue:`10679`)." -#: ../Doc/whatsnew/3.2.rst:2532 +#: ../Doc/whatsnew/3.2.rst:2534 msgid "" "The C functions that access the Unicode Database now accept and return " "characters from the full Unicode range, even on narrow unicode builds " @@ -4027,14 +4045,14 @@ msgstr "" "devuelve el valor correcto para puntos de código grandes y :func:`repr` " "puede considerar más caracteres como imprimibles." -#: ../Doc/whatsnew/3.2.rst:2539 +#: ../Doc/whatsnew/3.2.rst:2541 msgid "" "(Reported by Bupjoe Lee and fixed by Amaury Forgeot D'Arc; :issue:`5127`.)" msgstr "" "(Informado por Bupjoe Lee y corregido por Amaury Forgeot D'Arc; :issue:" "`5127`.)" -#: ../Doc/whatsnew/3.2.rst:2541 +#: ../Doc/whatsnew/3.2.rst:2543 msgid "" "Computed gotos are now enabled by default on supported compilers (which are " "detected by the configure script). They can still be disabled selectively " @@ -4045,11 +4063,11 @@ msgstr "" "configuración). Todavía se pueden desactivar de forma selectiva " "especificando ``--without-computed-gotos``." -#: ../Doc/whatsnew/3.2.rst:2545 +#: ../Doc/whatsnew/3.2.rst:2547 msgid "(Contributed by Antoine Pitrou; :issue:`9203`.)" msgstr "(Contribución de Antoine Pitrou; :issue:`9203`.)" -#: ../Doc/whatsnew/3.2.rst:2547 +#: ../Doc/whatsnew/3.2.rst:2549 msgid "" "The option ``--with-wctype-functions`` was removed. The built-in unicode " "database is now used for all functions." @@ -4057,11 +4075,11 @@ msgstr "" "Se eliminó la opción ``--with-wctype-functions``. La base de datos unicode " "incorporada ahora se usa para todas las funciones." -#: ../Doc/whatsnew/3.2.rst:2550 +#: ../Doc/whatsnew/3.2.rst:2552 msgid "(Contributed by Amaury Forgeot D'Arc; :issue:`9210`.)" msgstr "(Contribución de Amaury Forgeot D'Arc; :issue:`9210`.)" -#: ../Doc/whatsnew/3.2.rst:2552 +#: ../Doc/whatsnew/3.2.rst:2554 msgid "" "Hash values are now values of a new type, :c:type:`Py_hash_t`, which is " "defined to be the same size as a pointer. Previously they were of type " @@ -4078,7 +4096,7 @@ msgstr "" "compilaciones con punteros de 64 bits (anteriormente, podían crecer hasta " "ese tamaño pero su desempeño se degradaba catastróficamente)." -#: ../Doc/whatsnew/3.2.rst:2559 +#: ../Doc/whatsnew/3.2.rst:2561 msgid "" "(Suggested by Raymond Hettinger and implemented by Benjamin Peterson; :issue:" "`9778`.)" @@ -4086,7 +4104,7 @@ msgstr "" "(Sugerido por Raymond Hettinger e implementado por Benjamin Peterson; :issue:" "`9778`.)" -#: ../Doc/whatsnew/3.2.rst:2562 +#: ../Doc/whatsnew/3.2.rst:2564 msgid "" "A new macro :c:macro:`Py_VA_COPY` copies the state of the variable argument " "list. It is equivalent to C99 *va_copy* but available on all Python " @@ -4096,19 +4114,21 @@ msgstr "" "argumentos de la variable. Es equivalente a C99 *va_copy* pero está " "disponible en todas las plataformas Python (:issue:`2443`)." -#: ../Doc/whatsnew/3.2.rst:2566 +#: ../Doc/whatsnew/3.2.rst:2568 +#, fuzzy msgid "" "A new C API function :c:func:`PySys_SetArgvEx` allows an embedded " -"interpreter to set :attr:`sys.argv` without also modifying :attr:`sys.path` " +"interpreter to set :data:`sys.argv` without also modifying :data:`sys.path` " "(:issue:`5753`)." msgstr "" "Una nueva función de la API de C :c:func:`PySys_SetArgvEx` permite que un " "intérprete integrado establezca :attr:`sys.argv` sin modificar también :attr:" "`sys.path` (:issue:`5753`)." -#: ../Doc/whatsnew/3.2.rst:2570 +#: ../Doc/whatsnew/3.2.rst:2572 +#, fuzzy msgid "" -":c:macro:`PyEval_CallObject` is now only available in macro form. The " +":c:func:`!PyEval_CallObject` is now only available in macro form. The " "function declaration, which was kept for backwards compatibility reasons, is " "now removed -- the macro was introduced in 1997 (:issue:`8276`)." msgstr "" @@ -4117,7 +4137,7 @@ msgstr "" "versiones anteriores, ahora se elimina; la macro se introdujo en 1997 (:" "issue:`8276`)." -#: ../Doc/whatsnew/3.2.rst:2574 +#: ../Doc/whatsnew/3.2.rst:2576 msgid "" "There is a new function :c:func:`PyLong_AsLongLongAndOverflow` which is " "analogous to :c:func:`PyLong_AsLongAndOverflow`. They both serve to convert " @@ -4129,7 +4149,7 @@ msgstr "" "class:`int` en un tipo nativo de ancho fijo al tiempo que brindan detección " "de casos en los que la conversión no encaja (:issue:`7767`)." -#: ../Doc/whatsnew/3.2.rst:2579 +#: ../Doc/whatsnew/3.2.rst:2581 msgid "" "The :c:func:`PyUnicode_CompareWithASCIIString` function now returns *not " "equal* if the Python string is *NUL* terminated." @@ -4137,7 +4157,7 @@ msgstr "" "La función :c:func:`PyUnicode_CompareWithASCIIString` ahora devuelve *not " "equal* si la cadena de Python es *NUL* terminada." -#: ../Doc/whatsnew/3.2.rst:2582 +#: ../Doc/whatsnew/3.2.rst:2584 msgid "" "There is a new function :c:func:`PyErr_NewExceptionWithDoc` that is like :c:" "func:`PyErr_NewException` but allows a docstring to be specified. This lets " @@ -4149,7 +4169,7 @@ msgstr "" "Esto permite que las excepciones de C tengan las mismas capacidades de auto-" "documentación que sus contrapartes de Python puro (:issue:`7033`)." -#: ../Doc/whatsnew/3.2.rst:2587 +#: ../Doc/whatsnew/3.2.rst:2589 msgid "" "When compiled with the ``--with-valgrind`` option, the pymalloc allocator " "will be automatically disabled when running under Valgrind. This gives " @@ -4161,7 +4181,7 @@ msgstr "" "brinda una detección mejorada de fugas de memoria cuando se ejecuta en " "Valgrind, mientras se aprovecha pymalloc en otros momentos (:issue:`2422`)." -#: ../Doc/whatsnew/3.2.rst:2592 +#: ../Doc/whatsnew/3.2.rst:2594 msgid "" "Removed the ``O?`` format from the *PyArg_Parse* functions. The format is " "no longer used and it had never been documented (:issue:`8837`)." @@ -4169,7 +4189,7 @@ msgstr "" "Se eliminó el formato ``O?`` De las funciones *PyArg_Parse*. El formato ya " "no se usa y nunca se había documentado (:issue:`8837`)." -#: ../Doc/whatsnew/3.2.rst:2595 +#: ../Doc/whatsnew/3.2.rst:2597 msgid "" "There were a number of other small changes to the C-API. See the `Misc/NEWS " "`__ file for a " @@ -4179,16 +4199,17 @@ msgstr "" "`Misc/NEWS `__ para " "obtener una lista completa." -#: ../Doc/whatsnew/3.2.rst:2599 +#: ../Doc/whatsnew/3.2.rst:2601 +#, fuzzy msgid "" "Also, there were a number of updates to the Mac OS X build, see `Mac/" "BuildScript/README.txt `_ for details. For users running a 32/64-bit build, " "there is a known problem with the default Tcl/Tk on Mac OS X 10.6. " "Accordingly, we recommend installing an updated alternative such as " -"`ActiveState Tcl/Tk 8.5.9 `_\\. See https://www.python.org/download/mac/tcltk/ for " -"additional details." +"`ActiveState Tcl/Tk 8.5.9 `_\\. See https://www.python." +"org/download/mac/tcltk/ for additional details." msgstr "" "Además, hubo una serie de actualizaciones en la compilación de Mac OS X, " "consulte `Mac/BuildScript/README.txt `_\\. Consulte " "https://www.python.org/download/mac/tcltk/ para obtener detalles adicionales." -#: ../Doc/whatsnew/3.2.rst:2608 +#: ../Doc/whatsnew/3.2.rst:2610 msgid "Porting to Python 3.2" msgstr "Portar a Python 3.2" -#: ../Doc/whatsnew/3.2.rst:2610 +#: ../Doc/whatsnew/3.2.rst:2612 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code:" @@ -4211,7 +4232,7 @@ msgstr "" "Esta sección enumera los cambios descritos anteriormente y otras " "correcciones de errores que pueden requerir cambios en su código:" -#: ../Doc/whatsnew/3.2.rst:2613 +#: ../Doc/whatsnew/3.2.rst:2615 msgid "" "The :mod:`configparser` module has a number of clean-ups. The major change " "is to replace the old :class:`ConfigParser` class with long-standing " @@ -4223,7 +4244,7 @@ msgstr "" "preferida de larga data :class:`SafeConfigParser`. Además, hay una serie de " "incompatibilidades menores:" -#: ../Doc/whatsnew/3.2.rst:2618 +#: ../Doc/whatsnew/3.2.rst:2620 #, python-format msgid "" "The interpolation syntax is now validated on :meth:`~configparser." @@ -4237,7 +4258,7 @@ msgstr "" "porcentaje son válidos: ``%(name)s`` y ``%%``, siendo este último un signo " "de porcentaje de escape." -#: ../Doc/whatsnew/3.2.rst:2624 +#: ../Doc/whatsnew/3.2.rst:2626 msgid "" "The :meth:`~configparser.ConfigParser.set` and :meth:`~configparser." "ConfigParser.add_section` methods now verify that values are actual " @@ -4248,7 +4269,7 @@ msgstr "" "reales. Anteriormente, los tipos no admitidos podían introducirse " "involuntariamente." -#: ../Doc/whatsnew/3.2.rst:2629 +#: ../Doc/whatsnew/3.2.rst:2631 msgid "" "Duplicate sections or options from a single source now raise either :exc:" "`~configparser.DuplicateSectionError` or :exc:`~configparser." @@ -4260,7 +4281,7 @@ msgstr "" "DuplicateOptionError`. Anteriormente, los duplicados sobrescribían " "silenciosamente una entrada anterior." -#: ../Doc/whatsnew/3.2.rst:2634 +#: ../Doc/whatsnew/3.2.rst:2636 msgid "" "Inline comments are now disabled by default so now the **;** character can " "be safely used in values." @@ -4269,7 +4290,7 @@ msgstr "" "por lo que ahora el carácter **;** se puede usar de forma segura en los " "valores." -#: ../Doc/whatsnew/3.2.rst:2637 +#: ../Doc/whatsnew/3.2.rst:2639 msgid "" "Comments now can be indented. Consequently, for **;** or **#** to appear at " "the start of a line in multiline values, it has to be interpolated. This " @@ -4280,7 +4301,7 @@ msgstr "" "interpolarse. Esto evita que los caracteres de prefijo de comentario en " "valores se confundan con comentarios." -#: ../Doc/whatsnew/3.2.rst:2641 +#: ../Doc/whatsnew/3.2.rst:2643 msgid "" "``\"\"`` is now a valid value and is no longer automatically converted to an " "empty string. For empty strings, use ``\"option =\"`` in a line." @@ -4288,7 +4309,7 @@ msgstr "" "``\"\"`` ahora es un valor válido y ya no se convierte automáticamente en " "una cadena vacía. Para cadenas vacías, use ``\"option =\"`` en una línea." -#: ../Doc/whatsnew/3.2.rst:2644 +#: ../Doc/whatsnew/3.2.rst:2646 msgid "" "The :mod:`nntplib` module was reworked extensively, meaning that its APIs " "are often incompatible with the 3.1 APIs." @@ -4296,7 +4317,7 @@ msgstr "" "El módulo :mod:`nntplib` se modificó ampliamente, lo que significa que sus " "API a menudo son incompatibles con las API 3.1." -#: ../Doc/whatsnew/3.2.rst:2647 +#: ../Doc/whatsnew/3.2.rst:2649 msgid "" ":class:`bytearray` objects can no longer be used as filenames; instead, they " "should be converted to :class:`bytes`." @@ -4304,7 +4325,7 @@ msgstr "" ":class:`bytearray` ya no se pueden usar como nombres de archivo; en su " "lugar, deben convertirse a :class:`bytes`." -#: ../Doc/whatsnew/3.2.rst:2650 +#: ../Doc/whatsnew/3.2.rst:2652 msgid "" "The :meth:`array.tostring` and :meth:`array.fromstring` have been renamed " "to :meth:`array.tobytes` and :meth:`array.frombytes` for clarity. The old " @@ -4314,22 +4335,23 @@ msgstr "" "a :meth:`array.tobytes` y :meth:`array.frombytes` para mayor claridad. Los " "nombres antiguos han quedado obsoletos. (Ver :issue:`8990`.)" -#: ../Doc/whatsnew/3.2.rst:2654 +#: ../Doc/whatsnew/3.2.rst:2656 msgid "``PyArg_Parse*()`` functions:" msgstr "Funciones ``PyArg_Parse*()``:" -#: ../Doc/whatsnew/3.2.rst:2656 +#: ../Doc/whatsnew/3.2.rst:2658 msgid "\"t#\" format has been removed: use \"s#\" or \"s*\" instead" msgstr "Se ha eliminado el formato \"t#\": utilice \"s#\" o \"s*\" en su lugar" -#: ../Doc/whatsnew/3.2.rst:2657 +#: ../Doc/whatsnew/3.2.rst:2659 msgid "\"w\" and \"w#\" formats has been removed: use \"w*\" instead" msgstr "" "Se han eliminado los formatos \"w\" y \"w #\": utilice \"w*\" en su lugar" -#: ../Doc/whatsnew/3.2.rst:2659 +#: ../Doc/whatsnew/3.2.rst:2661 +#, fuzzy msgid "" -"The :c:type:`PyCObject` type, deprecated in 3.1, has been removed. To wrap " +"The :c:type:`!PyCObject` type, deprecated in 3.1, has been removed. To wrap " "opaque C pointers in Python objects, the :c:type:`PyCapsule` API should be " "used instead; the new type has a well-defined interface for passing typing " "safety information and a less complicated signature for calling a destructor." @@ -4340,7 +4362,7 @@ msgstr "" "información de seguridad de escritura y una firma menos complicada para " "llamar a un destructor." -#: ../Doc/whatsnew/3.2.rst:2664 +#: ../Doc/whatsnew/3.2.rst:2666 msgid "" "The :func:`sys.setfilesystemencoding` function was removed because it had a " "flawed design." @@ -4348,7 +4370,7 @@ msgstr "" "La función :func:`sys.setfilesystemencoding` se eliminó porque tenía un " "diseño defectuoso." -#: ../Doc/whatsnew/3.2.rst:2667 +#: ../Doc/whatsnew/3.2.rst:2669 msgid "" "The :func:`random.seed` function and method now salt string seeds with an " "sha512 hash function. To access the previous version of *seed* in order to " @@ -4360,7 +4382,7 @@ msgstr "" "para reproducir secuencias de Python 3.1, establezca el argumento *version* " "en *1*, ``random.seed(s, version=1)``." -#: ../Doc/whatsnew/3.2.rst:2672 +#: ../Doc/whatsnew/3.2.rst:2674 msgid "" "The previously deprecated :func:`string.maketrans` function has been removed " "in favor of the static methods :meth:`bytes.maketrans` and :meth:`bytearray." @@ -4377,11 +4399,11 @@ msgstr "" "**maketrans** y **translate** con tablas de traducción intermedias del tipo " "apropiado." -#: ../Doc/whatsnew/3.2.rst:2680 +#: ../Doc/whatsnew/3.2.rst:2682 msgid "(Contributed by Georg Brandl; :issue:`5675`.)" msgstr "(Contribución de Georg Brandl; :issue:`5675`.)" -#: ../Doc/whatsnew/3.2.rst:2682 +#: ../Doc/whatsnew/3.2.rst:2684 msgid "" "The previously deprecated :func:`contextlib.nested` function has been " "removed in favor of a plain :keyword:`with` statement which can accept " @@ -4395,7 +4417,7 @@ msgstr "" "rápida (porque está integrada) y hace un mejor trabajo finalizando múltiples " "administradores de contexto cuando uno de ellos genera una excepción::" -#: ../Doc/whatsnew/3.2.rst:2693 +#: ../Doc/whatsnew/3.2.rst:2695 msgid "" "(Contributed by Georg Brandl and Mattias Brändström; `appspot issue 53094 " "`_.)" @@ -4403,7 +4425,7 @@ msgstr "" "(Contribución de Georg Brandl y Mattias Brändström; `appspot issue 53094 " "`_.)" -#: ../Doc/whatsnew/3.2.rst:2696 +#: ../Doc/whatsnew/3.2.rst:2698 msgid "" ":func:`struct.pack` now only allows bytes for the ``s`` string pack code. " "Formerly, it would accept text arguments and implicitly encode them to bytes " @@ -4418,7 +4440,7 @@ msgstr "" "longitud variable puede fallar al escribir en un segmento de longitud fija " "de una estructura." -#: ../Doc/whatsnew/3.2.rst:2702 +#: ../Doc/whatsnew/3.2.rst:2704 msgid "" "Code such as ``struct.pack('<6sHHBBB', 'GIF87a', x, y)`` should be rewritten " "with to use bytes instead of text, ``struct.pack('<6sHHBBB', b'GIF87a', x, " @@ -4428,14 +4450,14 @@ msgstr "" "para usar bytes en lugar de texto, ``struct.pack('<6sHHBBB', b'GIF87a', x, " "y)``." -#: ../Doc/whatsnew/3.2.rst:2705 +#: ../Doc/whatsnew/3.2.rst:2707 msgid "" "(Discovered by David Beazley and fixed by Victor Stinner; :issue:`10783`.)" msgstr "" "(Descubierto por David Beazley y corregido por Victor Stinner; :issue:" "`10783`.)" -#: ../Doc/whatsnew/3.2.rst:2707 +#: ../Doc/whatsnew/3.2.rst:2709 msgid "" "The :class:`xml.etree.ElementTree` class now raises an :exc:`xml.etree." "ElementTree.ParseError` when a parse fails. Previously it raised an :exc:" @@ -4445,7 +4467,7 @@ msgstr "" "ElementTree.ParseError` cuando falla un análisis. Anteriormente generaba un :" "exc:`xml.parsers.expat.ExpatError`." -#: ../Doc/whatsnew/3.2.rst:2711 +#: ../Doc/whatsnew/3.2.rst:2713 msgid "" "The new, longer :func:`str` value on floats may break doctests which rely on " "the old output format." @@ -4453,7 +4475,7 @@ msgstr "" "El nuevo valor más largo de :func:`str` en flotantes puede romper las " "pruebas de documentación que se basan en el formato de salida anterior." -#: ../Doc/whatsnew/3.2.rst:2714 +#: ../Doc/whatsnew/3.2.rst:2716 msgid "" "In :class:`subprocess.Popen`, the default value for *close_fds* is now " "``True`` under Unix; under Windows, it is ``True`` if the three standard " @@ -4468,7 +4490,7 @@ msgstr "" "que producía errores difíciles de resolver o condiciones de carrera cuando " "los descriptores de archivos abiertos se filtraban en el proceso hijo." -#: ../Doc/whatsnew/3.2.rst:2721 +#: ../Doc/whatsnew/3.2.rst:2723 msgid "" "Support for legacy HTTP 0.9 has been removed from :mod:`urllib.request` and :" "mod:`http.client`. Such support is still present on the server side (in :" @@ -4478,11 +4500,11 @@ msgstr "" "request` y :mod:`http.client`. Dicho soporte todavía está presente en el " "lado del servidor (en :mod:`http.server`)." -#: ../Doc/whatsnew/3.2.rst:2725 +#: ../Doc/whatsnew/3.2.rst:2727 msgid "(Contributed by Antoine Pitrou, :issue:`10711`.)" msgstr "(Contribución de Antoine Pitrou, :issue:`10711`.)" -#: ../Doc/whatsnew/3.2.rst:2727 +#: ../Doc/whatsnew/3.2.rst:2729 msgid "" "SSL sockets in timeout mode now raise :exc:`socket.timeout` when a timeout " "occurs, rather than a generic :exc:`~ssl.SSLError`." @@ -4491,23 +4513,24 @@ msgstr "" "timeout` cuando ocurre un tiempo de espera, en lugar de un genérico :exc:" "`~ssl.SSLError`." -#: ../Doc/whatsnew/3.2.rst:2730 +#: ../Doc/whatsnew/3.2.rst:2732 msgid "(Contributed by Antoine Pitrou, :issue:`10272`.)" msgstr "(Contribución de Antoine Pitrou, :issue:`10272`.)" -#: ../Doc/whatsnew/3.2.rst:2732 +#: ../Doc/whatsnew/3.2.rst:2734 +#, fuzzy msgid "" -"The misleading functions :c:func:`PyEval_AcquireLock()` and :c:func:" -"`PyEval_ReleaseLock()` have been officially deprecated. The thread-state " -"aware APIs (such as :c:func:`PyEval_SaveThread()` and :c:func:" -"`PyEval_RestoreThread()`) should be used instead." +"The misleading functions :c:func:`!PyEval_AcquireLock` and :c:func:`!" +"PyEval_ReleaseLock` have been officially deprecated. The thread-state aware " +"APIs (such as :c:func:`PyEval_SaveThread` and :c:func:" +"`PyEval_RestoreThread`) should be used instead." msgstr "" "Las funciones engañosas :c:func:`PyEval_AcquireLock()` y :c:func:" "`PyEval_ReleaseLock()` han quedado oficialmente obsoletas. Las API que " "reconocen el estado del hilo (como :c:func:`PyEval_SaveThread()` y :c:func:" "`PyEval_RestoreThread()`) deben usarse en su lugar." -#: ../Doc/whatsnew/3.2.rst:2737 +#: ../Doc/whatsnew/3.2.rst:2739 msgid "" "Due to security risks, :func:`asyncore.handle_accept` has been deprecated, " "and a new function, :func:`asyncore.handle_accepted`, was added to replace " @@ -4517,14 +4540,15 @@ msgstr "" "obsoleto, y se agregó una nueva función, :func:`asyncore.handle_accepted`, " "para reemplazarlo." -#: ../Doc/whatsnew/3.2.rst:2740 +#: ../Doc/whatsnew/3.2.rst:2742 msgid "(Contributed by Giampaolo Rodola in :issue:`6706`.)" msgstr "(Contribución de Giampaolo Rodola en :issue:`6706`.)" -#: ../Doc/whatsnew/3.2.rst:2742 +#: ../Doc/whatsnew/3.2.rst:2744 +#, fuzzy msgid "" -"Due to the new :term:`GIL` implementation, :c:func:`PyEval_InitThreads()` " -"cannot be called before :c:func:`Py_Initialize()` anymore." +"Due to the new :term:`GIL` implementation, :c:func:`!PyEval_InitThreads` " +"cannot be called before :c:func:`Py_Initialize` anymore." msgstr "" "Debido a la nueva implementación de :term:`GIL`, :c:func:" "`PyEval_InitThreads()` ya no se puede llamar antes :c:func:`Py_Initialize()`." diff --git a/whatsnew/3.3.po b/whatsnew/3.3.po index c44a99a00d..fce7704398 100644 --- a/whatsnew/3.3.po +++ b/whatsnew/3.3.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2021-10-29 22:00-0500\n" "Last-Translator: Pedro Aarón \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/whatsnew/3.3.rst:3 msgid "What's New In Python 3.3" @@ -276,7 +276,7 @@ msgstr "" "compuestos. Se explica el diseño de memoria de matrices de estilo NumPy no " "contiguas y multidimensionales." -#: ../Doc/whatsnew/3.3.rst:161 ../Doc/whatsnew/3.3.rst:1122 +#: ../Doc/whatsnew/3.3.rst:161 ../Doc/whatsnew/3.3.rst:1123 msgid "Features" msgstr "Características" @@ -327,7 +327,7 @@ msgstr "" "ejemplo, ahora es posible revertir una vista de memoria en O(1) utilizando " "un valor negativo para el índice STEP." -#: ../Doc/whatsnew/3.3.rst:180 ../Doc/whatsnew/3.3.rst:1132 +#: ../Doc/whatsnew/3.3.rst:180 ../Doc/whatsnew/3.3.rst:1133 msgid "API changes" msgstr "Cambios en la API" @@ -487,9 +487,10 @@ msgstr "" "correcta los puntos de código que no son BMP." #: ../Doc/whatsnew/3.3.rst:251 +#, fuzzy msgid "" "The value of :data:`sys.maxunicode` is now always ``1114111`` (``0x10FFFF`` " -"in hexadecimal). The :c:func:`PyUnicode_GetMax` function still returns " +"in hexadecimal). The :c:func:`!PyUnicode_GetMax` function still returns " "either ``0xFFFF`` or ``0x10FFFF`` for backward compatibility, and it should " "not be used with the new Unicode API (see :issue:`13054`)." msgstr "" @@ -944,15 +945,15 @@ msgstr "" msgid "Example with (non-bound) methods::" msgstr "Ejemplo con métodos (no vinculados):" -#: ../Doc/whatsnew/3.3.rst:568 +#: ../Doc/whatsnew/3.3.rst:569 msgid "Example with nested classes::" msgstr "Ejemplo con clases anidadas:" -#: ../Doc/whatsnew/3.3.rst:584 +#: ../Doc/whatsnew/3.3.rst:585 msgid "Example with nested functions::" msgstr "Ejemplo con funciones anidadas:" -#: ../Doc/whatsnew/3.3.rst:596 +#: ../Doc/whatsnew/3.3.rst:597 msgid "" "The string representation of those objects is also changed to include the " "new, more precise information::" @@ -960,19 +961,19 @@ msgstr "" "La representación en cadena de estos objetos, también se ha modificado para " "incluir la información nueva y más precisa:" -#: ../Doc/whatsnew/3.3.rst:606 +#: ../Doc/whatsnew/3.3.rst:607 msgid ":pep:`3155` - Qualified name for classes and functions" msgstr ":pep:`3155` - Nombres calificados para clases y funciones" -#: ../Doc/whatsnew/3.3.rst:607 +#: ../Doc/whatsnew/3.3.rst:608 msgid "PEP written and implemented by Antoine Pitrou." msgstr "PEP Escrito e implementado por Antoine Pitrou." -#: ../Doc/whatsnew/3.3.rst:613 +#: ../Doc/whatsnew/3.3.rst:614 msgid "PEP 412: Key-Sharing Dictionary" msgstr "PEP 412: Diccionario de intercambio de claves" -#: ../Doc/whatsnew/3.3.rst:615 +#: ../Doc/whatsnew/3.3.rst:616 msgid "" "Dictionaries used for the storage of objects' attributes are now able to " "share part of their internal storage between each other (namely, the part " @@ -984,19 +985,19 @@ msgstr "" "almacena las claves y sus respectivos hashes). Esto reduce el consumo de " "memoria de programas creando varias instancias de tipos no integrados." -#: ../Doc/whatsnew/3.3.rst:622 +#: ../Doc/whatsnew/3.3.rst:623 msgid ":pep:`412` - Key-Sharing Dictionary" msgstr ":pep:`412` -Diccionario de intercambio de claves" -#: ../Doc/whatsnew/3.3.rst:623 +#: ../Doc/whatsnew/3.3.rst:624 msgid "PEP written and implemented by Mark Shannon." msgstr "PEP escrito e implementado por Mark Shannon." -#: ../Doc/whatsnew/3.3.rst:627 +#: ../Doc/whatsnew/3.3.rst:628 msgid "PEP 362: Function Signature Object" msgstr "PEP 362: Objeto de firma de función" -#: ../Doc/whatsnew/3.3.rst:629 +#: ../Doc/whatsnew/3.3.rst:630 msgid "" "A new function :func:`inspect.signature` makes introspection of python " "callables easy and straightforward. A broad range of callables is " @@ -1017,11 +1018,11 @@ msgstr "" "considerablemente la escritura de decoradores y de cualquier código que " "valide o modifique las firmas de llamadas o argumentos." -#: ../Doc/whatsnew/3.3.rst:641 +#: ../Doc/whatsnew/3.3.rst:642 msgid ":pep:`362`: - Function Signature Object" msgstr ":pep:`362`: - Objeto de firmas de función" -#: ../Doc/whatsnew/3.3.rst:641 +#: ../Doc/whatsnew/3.3.rst:642 msgid "" "PEP written by Brett Cannon, Yury Selivanov, Larry Hastings, Jiwon Seo; " "implemented by Yury Selivanov." @@ -1029,15 +1030,16 @@ msgstr "" "PEP escrito por Brett Cannon, Yury Selivanov, Larry Hastings, Jiwon Seo; " "implementado por Yury Selivanov." -#: ../Doc/whatsnew/3.3.rst:646 +#: ../Doc/whatsnew/3.3.rst:647 msgid "PEP 421: Adding sys.implementation" msgstr "PEP 421: Agregar sys.implementation" -#: ../Doc/whatsnew/3.3.rst:648 +#: ../Doc/whatsnew/3.3.rst:649 +#, fuzzy msgid "" "A new attribute on the :mod:`sys` module exposes details specific to the " "implementation of the currently running interpreter. The initial set of " -"attributes on :attr:`sys.implementation` are ``name``, ``version``, " +"attributes on :data:`sys.implementation` are ``name``, ``version``, " "``hexversion``, and ``cache_tag``." msgstr "" "Un nuevo atributo en el módulo :mod:`sys` expone detalles específicos de la " @@ -1045,7 +1047,7 @@ msgstr "" "El conjunto inicial de atributos en :attr:`sys.implementation` son ``name``, " "``version``, ``hexversion``, y ``cache_tag``." -#: ../Doc/whatsnew/3.3.rst:653 +#: ../Doc/whatsnew/3.3.rst:654 msgid "" "The intention of ``sys.implementation`` is to consolidate into one namespace " "the implementation-specific data used by the standard library. This allows " @@ -1062,7 +1064,7 @@ msgstr "" "datos específicos de la implementación. Con el tiempo esta proporción " "cambiará para hacer que la biblioteca estándar sea más portable.." -#: ../Doc/whatsnew/3.3.rst:660 +#: ../Doc/whatsnew/3.3.rst:661 msgid "" "One example of improved standard library portability is ``cache_tag``. As " "of Python 3.3, ``sys.implementation.cache_tag`` is used by :mod:`importlib` " @@ -1077,11 +1079,11 @@ msgstr "" "importación integrado puede usar ``cache_tag`` para controlar el " "comportamiento de almacenamiento en caché de los módulos." -#: ../Doc/whatsnew/3.3.rst:667 +#: ../Doc/whatsnew/3.3.rst:668 msgid "SimpleNamespace" msgstr "SimpleNamespace" -#: ../Doc/whatsnew/3.3.rst:669 +#: ../Doc/whatsnew/3.3.rst:670 msgid "" "The implementation of ``sys.implementation`` also introduces a new type to " "Python: :class:`types.SimpleNamespace`. In contrast to a mapping-based " @@ -1098,31 +1100,32 @@ msgstr "" "significa que puedes agregar, eliminar, y modificar el nombre de espacio a " "través del acceso normal a los atributos." -#: ../Doc/whatsnew/3.3.rst:678 +#: ../Doc/whatsnew/3.3.rst:679 msgid ":pep:`421` - Adding sys.implementation" msgstr ":pep:`421` - Agregar sys.implementation" -#: ../Doc/whatsnew/3.3.rst:679 +#: ../Doc/whatsnew/3.3.rst:680 msgid "PEP written and implemented by Eric Snow." msgstr "PEP escrito e implementado por Mark Shannon." -#: ../Doc/whatsnew/3.3.rst:685 +#: ../Doc/whatsnew/3.3.rst:686 msgid "Using importlib as the Implementation of Import" msgstr "Usar importlib como implementación de Import" -#: ../Doc/whatsnew/3.3.rst:686 +#: ../Doc/whatsnew/3.3.rst:687 +#, fuzzy msgid "" ":issue:`2377` - Replace __import__ w/ importlib.__import__ :issue:`13959` - " -"Re-implement parts of :mod:`imp` in pure Python :issue:`14605` - Make import " -"machinery explicit :issue:`14646` - Require loaders set __loader__ and " -"__package__" +"Re-implement parts of :mod:`!imp` in pure Python :issue:`14605` - Make " +"import machinery explicit :issue:`14646` - Require loaders set __loader__ " +"and __package__" msgstr "" ":issue:`2377`- Replace__import__w/ importlib.__import__ :issue:`13959` - Re-" "implementar partes de :mod:`imp` en Python puro :issue:`14605` - Hacer que " "la maquinaria de importación sea explícita :issue:`14646` - Requerir que los " "cargadores establezcan __loader__ y __package__" -#: ../Doc/whatsnew/3.3.rst:691 +#: ../Doc/whatsnew/3.3.rst:692 msgid "" "The :func:`__import__` function is now powered by :func:`importlib." "__import__`. This work leads to the completion of \"phase 2\" of :pep:`302`. " @@ -1144,7 +1147,7 @@ msgstr "" "finalmente facilita el mantenimiento de la importación, permitiendo que " "ocurra un crecimiento futuro." -#: ../Doc/whatsnew/3.3.rst:700 +#: ../Doc/whatsnew/3.3.rst:701 msgid "" "For the common user, there should be no visible change in semantics. For " "those whose code currently manipulates import or calls import " @@ -1157,11 +1160,11 @@ msgstr "" "sean necesarios, se tratan en la sección `Porting Python code`_ de éste " "documento." -#: ../Doc/whatsnew/3.3.rst:706 +#: ../Doc/whatsnew/3.3.rst:707 msgid "New APIs" msgstr "Nuevas APIs" -#: ../Doc/whatsnew/3.3.rst:707 +#: ../Doc/whatsnew/3.3.rst:708 msgid "" "One of the large benefits of this work is the exposure of what goes into " "making the import statement work. That means the various importers that were " @@ -1172,13 +1175,14 @@ msgstr "" "los varios importadores que una vez fueron implícitos, ahora son expuestos " "completamente como parte del paquete :mod:`importlib`." -#: ../Doc/whatsnew/3.3.rst:711 +#: ../Doc/whatsnew/3.3.rst:712 +#, fuzzy msgid "" "The abstract base classes defined in :mod:`importlib.abc` have been expanded " "to properly delineate between :term:`meta path finders ` " "and :term:`path entry finders ` by introducing :class:" "`importlib.abc.MetaPathFinder` and :class:`importlib.abc.PathEntryFinder`, " -"respectively. The old ABC of :class:`importlib.abc.Finder` is now only " +"respectively. The old ABC of :class:`!importlib.abc.Finder` is now only " "provided for backwards-compatibility and does not enforce any method " "requirements." msgstr "" @@ -1191,18 +1195,19 @@ msgstr "" "compatibilidad con versiones anteriores y no exige ningún requisito de " "método." -#: ../Doc/whatsnew/3.3.rst:719 +#: ../Doc/whatsnew/3.3.rst:720 +#, fuzzy msgid "" "In terms of finders, :class:`importlib.machinery.FileFinder` exposes the " "mechanism used to search for source and bytecode files of a module. " -"Previously this class was an implicit member of :attr:`sys.path_hooks`." +"Previously this class was an implicit member of :data:`sys.path_hooks`." msgstr "" "En términos de buscadores, :class:`importlib.machinery.FileFinder` expone el " "mecanismo utilizado para buscar archivos fuente y de código de *bytes* de un " "módulo. Anteriormente, ésta clase era un miembro implícito de :attr:`sys." "path_hooks`." -#: ../Doc/whatsnew/3.3.rst:723 +#: ../Doc/whatsnew/3.3.rst:724 msgid "" "For loaders, the new abstract base class :class:`importlib.abc.FileLoader` " "helps write a loader that uses the file system as the storage mechanism for " @@ -1219,7 +1224,7 @@ msgstr "" "módulos de extensión (:class:`importlib.machinery.ExtensionFileLoader`) " "ahora están disponibles para su uso directo." -#: ../Doc/whatsnew/3.3.rst:731 +#: ../Doc/whatsnew/3.3.rst:732 msgid "" ":exc:`ImportError` now has ``name`` and ``path`` attributes which are set " "when there is relevant data to provide. The message for failed imports will " @@ -1231,10 +1236,11 @@ msgstr "" "mensaje de importaciones fallidas ahora proporcionará el nombre completo del " "módulo en lugar de solo el final del nombre del mismo." -#: ../Doc/whatsnew/3.3.rst:736 +#: ../Doc/whatsnew/3.3.rst:737 +#, fuzzy msgid "" "The :func:`importlib.invalidate_caches` function will now call the method " -"with the same name on all finders cached in :attr:`sys.path_importer_cache` " +"with the same name on all finders cached in :data:`sys.path_importer_cache` " "to help clean up any stored state as necessary." msgstr "" "La función :func:`importlib.invalidate_caches` ahora llamará al método con " @@ -1242,11 +1248,11 @@ msgstr "" "path_importer_cache` para ayudar a limpiar cualquier estado almacenado según " "sea necesario." -#: ../Doc/whatsnew/3.3.rst:741 +#: ../Doc/whatsnew/3.3.rst:742 msgid "Visible Changes" msgstr "Cambios visibles" -#: ../Doc/whatsnew/3.3.rst:743 +#: ../Doc/whatsnew/3.3.rst:744 msgid "" "For potential required changes to code, see the `Porting Python code`_ " "section." @@ -1254,11 +1260,12 @@ msgstr "" "Para conocer los posibles cambios necesarios en el código, consulte la " "sección `Porting Python code`_ ." -#: ../Doc/whatsnew/3.3.rst:746 +#: ../Doc/whatsnew/3.3.rst:747 +#, fuzzy msgid "" "Beyond the expanse of what :mod:`importlib` now exposes, there are other " -"visible changes to import. The biggest is that :attr:`sys.meta_path` and :" -"attr:`sys.path_hooks` now store all of the meta path finders and path entry " +"visible changes to import. The biggest is that :data:`sys.meta_path` and :" +"data:`sys.path_hooks` now store all of the meta path finders and path entry " "hooks used by import. Previously the finders were implicit and hidden " "within the C code of import instead of being directly exposed. This means " "that one can now easily remove or change the order of the various finders to " @@ -1273,7 +1280,7 @@ msgstr "" "ahora uno puede eliminar o cambiar fácilmente el orden de los diversos " "buscadores para satisfacer sus necesidades." -#: ../Doc/whatsnew/3.3.rst:753 +#: ../Doc/whatsnew/3.3.rst:754 msgid "" "Another change is that all modules have a ``__loader__`` attribute, storing " "the loader used to create the module. :pep:`302` has been updated to make " @@ -1290,7 +1297,7 @@ msgstr "" "existencia de éste atributo. Sin embargo, hasta entonces la importación está " "configurando la post carga del módulo." -#: ../Doc/whatsnew/3.3.rst:759 +#: ../Doc/whatsnew/3.3.rst:760 msgid "" "Loaders are also now expected to set the ``__package__`` attribute from :pep:" "`366`. Once again, import itself is already setting this on all loaders " @@ -1301,11 +1308,12 @@ msgstr "" "está configurando ésto en todos los cargadores del módulo :mod:`importlib` y " "la importación misma está configurando la post carga del atributo." -#: ../Doc/whatsnew/3.3.rst:763 +#: ../Doc/whatsnew/3.3.rst:764 +#, fuzzy msgid "" -"``None`` is now inserted into :attr:`sys.path_importer_cache` when no finder " -"can be found on :attr:`sys.path_hooks`. Since :class:`imp.NullImporter` is " -"not directly exposed on :attr:`sys.path_hooks` it could no longer be relied " +"``None`` is now inserted into :data:`sys.path_importer_cache` when no finder " +"can be found on :data:`sys.path_hooks`. Since :class:`!imp.NullImporter` is " +"not directly exposed on :data:`sys.path_hooks` it could no longer be relied " "upon to always be available to use as a value representing no finder found." msgstr "" "Ahora se incluye el atributo ``None`` dentro de :attr:`sys." @@ -1315,7 +1323,7 @@ msgstr "" "disponible para su uso como un valor que represente que no se ha encontrado " "ningún buscador." -#: ../Doc/whatsnew/3.3.rst:768 +#: ../Doc/whatsnew/3.3.rst:769 msgid "" "All other changes relate to semantic changes which should be taken into " "consideration when updating code for Python 3.3, and thus should be read " @@ -1325,20 +1333,20 @@ msgstr "" "tomarse en cuenta al actualizar el código a python 3.3, por lo tanto, deben " "leerse en la sección `Portar código Python`_ de este documento." -#: ../Doc/whatsnew/3.3.rst:772 +#: ../Doc/whatsnew/3.3.rst:773 msgid "(Implementation by Brett Cannon)" msgstr "(Implementación por Brett Cannon)" -#: ../Doc/whatsnew/3.3.rst:776 +#: ../Doc/whatsnew/3.3.rst:777 msgid "Other Language Changes" msgstr "Otros cambios de idioma" -#: ../Doc/whatsnew/3.3.rst:778 +#: ../Doc/whatsnew/3.3.rst:779 msgid "Some smaller changes made to the core Python language are:" msgstr "" "Algunos cambios más pequeños realizados en el lenguaje Python principal son:" -#: ../Doc/whatsnew/3.3.rst:780 +#: ../Doc/whatsnew/3.3.rst:781 msgid "" "Added support for Unicode name aliases and named sequences. Both :func:" "`unicodedata.lookup()` and ``'\\N{...}'`` now resolve name aliases, and :" @@ -1349,15 +1357,15 @@ msgstr "" "los alias de nombre, y :func:`unicodedata.lookup()` también resuelve las " "secuencias con nombre." -#: ../Doc/whatsnew/3.3.rst:784 +#: ../Doc/whatsnew/3.3.rst:785 msgid "(Contributed by Ezio Melotti in :issue:`12753`.)" msgstr "(Contribución de Ezio Melotti en :issue:`12753`.)" -#: ../Doc/whatsnew/3.3.rst:786 +#: ../Doc/whatsnew/3.3.rst:787 msgid "Unicode database updated to UCD version 6.1.0" msgstr "Base de datos *Unicode* actualizada a la versión 6.1.0 de UCD" -#: ../Doc/whatsnew/3.3.rst:788 +#: ../Doc/whatsnew/3.3.rst:789 msgid "" "Equality comparisons on :func:`range` objects now return a result reflecting " "the equality of the underlying sequences generated by those range objects. (:" @@ -1367,7 +1375,7 @@ msgstr "" "resultado que refleja la igualdad de las secuencias subyacentes generadas " "por esos objetos de rango. (:issue:`13201`)" -#: ../Doc/whatsnew/3.3.rst:792 +#: ../Doc/whatsnew/3.3.rst:793 msgid "" "The ``count()``, ``find()``, ``rfind()``, ``index()`` and ``rindex()`` " "methods of :class:`bytes` and :class:`bytearray` objects now accept an " @@ -1377,11 +1385,11 @@ msgstr "" "de los objetos :class:`bytes` y :class:`bytearray` ahora aceptan un entero " "entre 0 y 255 como su primer argumento." -#: ../Doc/whatsnew/3.3.rst:796 +#: ../Doc/whatsnew/3.3.rst:797 msgid "(Contributed by Petri Lehtinen in :issue:`12170`.)" msgstr "(Contribución por Petri Lehtinen en :issue:`12170`.)" -#: ../Doc/whatsnew/3.3.rst:798 +#: ../Doc/whatsnew/3.3.rst:799 msgid "" "The ``rjust()``, ``ljust()``, and ``center()`` methods of :class:`bytes` " "and :class:`bytearray` now accept a :class:`bytearray` for the ``fill`` " @@ -1391,7 +1399,7 @@ msgstr "" "class:`bytearray` ahora aceptan un :class:`bytearray` para el argumento " "``fill``. (Contribución de Petri Lehtinen en :issue:`12380`.)" -#: ../Doc/whatsnew/3.3.rst:802 +#: ../Doc/whatsnew/3.3.rst:803 msgid "" "New methods have been added to :class:`list` and :class:`bytearray`: " "``copy()`` and ``clear()`` (:issue:`10516`). Consequently, :class:" @@ -1403,18 +1411,18 @@ msgstr "" "`~collections.abc.MutableSequence` ahora también definen un método :meth:" "`~collections.abc.MutableSequence.clear` (:issue:`11388`)." -#: ../Doc/whatsnew/3.3.rst:807 +#: ../Doc/whatsnew/3.3.rst:808 msgid "" "Raw bytes literals can now be written ``rb\"...\"`` as well as ``br\"...\"``." msgstr "" "Los literales de *bytes* sin formato ahora se pueden escribir ``rb\"...\"`` " "así como ``br\"...\"``." -#: ../Doc/whatsnew/3.3.rst:809 +#: ../Doc/whatsnew/3.3.rst:810 msgid "(Contributed by Antoine Pitrou in :issue:`13748`.)" msgstr "(Contribución de Antoine Pitrou en :issue:`13748`.)" -#: ../Doc/whatsnew/3.3.rst:811 +#: ../Doc/whatsnew/3.3.rst:812 msgid "" ":meth:`dict.setdefault` now does only one lookup for the given key, making " "it atomic when used with built-in types." @@ -1422,11 +1430,11 @@ msgstr "" "El método :meth:`dict.setdefault` ahora solo hace una sola búsqueda de la " "clave dada, haciéndola atómica cuando se usa con tipos incorporados." -#: ../Doc/whatsnew/3.3.rst:814 +#: ../Doc/whatsnew/3.3.rst:815 msgid "(Contributed by Filip Gruszczyński in :issue:`13521`.)" msgstr "(Contribución de Filip Gruszczyński en :issue:`13521`.)" -#: ../Doc/whatsnew/3.3.rst:816 +#: ../Doc/whatsnew/3.3.rst:817 msgid "" "The error messages produced when a function call does not match the function " "signature have been significantly improved." @@ -1434,15 +1442,15 @@ msgstr "" "Los mensajes de error producidos cuando la llamada de una función no " "coincide con la firma han sido mejorados significativamente." -#: ../Doc/whatsnew/3.3.rst:819 +#: ../Doc/whatsnew/3.3.rst:820 msgid "(Contributed by Benjamin Peterson.)" msgstr "(Contribución de Benjamin Peterson.)" -#: ../Doc/whatsnew/3.3.rst:823 +#: ../Doc/whatsnew/3.3.rst:824 msgid "A Finer-Grained Import Lock" msgstr "Un bloqueo de importación más detallado" -#: ../Doc/whatsnew/3.3.rst:825 +#: ../Doc/whatsnew/3.3.rst:826 msgid "" "Previous versions of CPython have always relied on a global import lock. " "This led to unexpected annoyances, such as deadlocks when importing a module " @@ -1456,7 +1464,7 @@ msgstr "" "un hilo diferente como un efecto secundario. A veces se empleaban soluciones " "torpes, como la función de API C :c:func:`PyImport_ImportModuleNoBlock` ." -#: ../Doc/whatsnew/3.3.rst:831 +#: ../Doc/whatsnew/3.3.rst:832 msgid "" "In Python 3.3, importing a module takes a per-module lock. This correctly " "serializes importation of a given module from multiple threads (preventing " @@ -1468,19 +1476,20 @@ msgstr "" "múltiples subprocesos (impidiendo la exposición de módulos inicializados " "incompletamente), mientras elimina las molestias antes mencionadas." -#: ../Doc/whatsnew/3.3.rst:836 +#: ../Doc/whatsnew/3.3.rst:837 msgid "(Contributed by Antoine Pitrou in :issue:`9260`.)" msgstr "(Contribución de Antoine Pitrou en :issue:`9260`.)" -#: ../Doc/whatsnew/3.3.rst:840 +#: ../Doc/whatsnew/3.3.rst:841 msgid "Builtin functions and types" msgstr "Funciones y tipos incorporados" -#: ../Doc/whatsnew/3.3.rst:842 +#: ../Doc/whatsnew/3.3.rst:843 +#, fuzzy msgid "" ":func:`open` gets a new *opener* parameter: the underlying file descriptor " "for the file object is then obtained by calling *opener* with (*file*, " -"*flags*). It can be used to use custom flags like :data:`os.O_CLOEXEC` for " +"*flags*). It can be used to use custom flags like :const:`os.O_CLOEXEC` for " "example. The ``'x'`` mode was added: open for exclusive creation, failing if " "the file already exists." msgstr "" @@ -1490,7 +1499,7 @@ msgstr "" "como :data:`os.O_CLOEXEC`, por ejemplo. Se ha añadido el modo ``'x'`` : " "abierto para la creación exclusiva, fallando si el archivo ya existe." -#: ../Doc/whatsnew/3.3.rst:847 +#: ../Doc/whatsnew/3.3.rst:848 msgid "" ":func:`print`: added the *flush* keyword argument. If the *flush* keyword " "argument is true, the stream is forcibly flushed." @@ -1498,7 +1507,7 @@ msgstr "" ":func:`print`: agregó el argumento de palabra clave *flush*. Si el argumento " "de palabra clave *flush* es verdadero, la secuencia se vacía por la fuerza." -#: ../Doc/whatsnew/3.3.rst:849 +#: ../Doc/whatsnew/3.3.rst:850 msgid "" ":func:`hash`: hash randomization is enabled by default, see :meth:`object." "__hash__` and :envvar:`PYTHONHASHSEED`." @@ -1506,7 +1515,7 @@ msgstr "" ":func:`hash`: la aleatorización de hash está habilitada de forma " "predeterminada, consulte :meth:`object.__hash__` y :envvar:`PYTHONHASHSEED`." -#: ../Doc/whatsnew/3.3.rst:851 +#: ../Doc/whatsnew/3.3.rst:852 msgid "" "The :class:`str` type gets a new :meth:`~str.casefold` method: return a " "casefolded copy of the string, casefolded strings may be used for caseless " @@ -1517,7 +1526,7 @@ msgstr "" "mayúsculas y minúsculas se pueden utilizar para la coincidencia sin " "mayúsculas. Por ejemplo, ``'ß'.casefold()`` retorna ``'ss'``." -#: ../Doc/whatsnew/3.3.rst:854 +#: ../Doc/whatsnew/3.3.rst:855 msgid "" "The sequence documentation has been substantially rewritten to better " "explain the binary/text sequence distinction and to provide specific " @@ -1529,15 +1538,15 @@ msgstr "" "de documentación específicas para los tipos de secuencia individuales " "integrados(:issue:`4966`)." -#: ../Doc/whatsnew/3.3.rst:861 +#: ../Doc/whatsnew/3.3.rst:862 msgid "New Modules" msgstr "Nuevos módulos" -#: ../Doc/whatsnew/3.3.rst:864 +#: ../Doc/whatsnew/3.3.rst:865 msgid "faulthandler" msgstr "faulthandler" -#: ../Doc/whatsnew/3.3.rst:866 +#: ../Doc/whatsnew/3.3.rst:867 msgid "" "This new debug module :mod:`faulthandler` contains functions to dump Python " "tracebacks explicitly, on a fault (a crash like a segmentation fault), after " @@ -1556,15 +1565,15 @@ msgstr "" "configurando la variable de entorno :envvar:`PYTHONFAULTHANDLER` o usando la " "opción de línea de comandos :option:`-X` ``faulthandler`` ." -#: ../Doc/whatsnew/3.3.rst:874 +#: ../Doc/whatsnew/3.3.rst:875 msgid "Example of a segmentation fault on Linux:" msgstr "Ejemplo de una falla de segmentación en Linux:" -#: ../Doc/whatsnew/3.3.rst:890 +#: ../Doc/whatsnew/3.3.rst:891 msgid "ipaddress" msgstr "ipaddress" -#: ../Doc/whatsnew/3.3.rst:892 +#: ../Doc/whatsnew/3.3.rst:893 msgid "" "The new :mod:`ipaddress` module provides tools for creating and manipulating " "objects representing IPv4 and IPv6 addresses, networks and interfaces (i.e. " @@ -1574,15 +1583,15 @@ msgstr "" "manipular objetos que representen direcciones, redes e interfaces IPv4 e " "IPv6 (es decir, alguna dirección IP asociada con una subred IP específica)" -#: ../Doc/whatsnew/3.3.rst:896 +#: ../Doc/whatsnew/3.3.rst:897 msgid "(Contributed by Google and Peter Moody in :pep:`3144`.)" msgstr "(Contribución de Google y Peter Moody en :pep:`3144` )" -#: ../Doc/whatsnew/3.3.rst:899 +#: ../Doc/whatsnew/3.3.rst:900 msgid "lzma" msgstr "lzma" -#: ../Doc/whatsnew/3.3.rst:901 +#: ../Doc/whatsnew/3.3.rst:902 msgid "" "The newly added :mod:`lzma` module provides data compression and " "decompression using the LZMA algorithm, including support for the ``.xz`` " @@ -1592,19 +1601,19 @@ msgstr "" "de datos utilizando el algoritmo LZMA, incluida la compatibilidad con los " "formatos de archivo ``.xz`` y ``.lzma``." -#: ../Doc/whatsnew/3.3.rst:905 +#: ../Doc/whatsnew/3.3.rst:906 msgid "(Contributed by Nadeem Vawda and Per Øyvind Karlsen in :issue:`6715`.)" msgstr "(Contribución de Nadeem Vawda y Per Øyvind Karlsen en :issue:`6715`.)" -#: ../Doc/whatsnew/3.3.rst:909 +#: ../Doc/whatsnew/3.3.rst:910 msgid "Improved Modules" msgstr "Módulos mejorados" -#: ../Doc/whatsnew/3.3.rst:912 +#: ../Doc/whatsnew/3.3.rst:913 msgid "abc" msgstr "abc" -#: ../Doc/whatsnew/3.3.rst:914 +#: ../Doc/whatsnew/3.3.rst:915 msgid "" "Improved support for abstract base classes containing descriptors composed " "with abstract methods. The recommended approach to declaring abstract " @@ -1617,7 +1626,7 @@ msgstr "" "como una propiedad actualizada dinámicamente. Los descriptores integrados " "han sido actualizados en consecuencia." -#: ../Doc/whatsnew/3.3.rst:919 ../Doc/whatsnew/3.3.rst:2245 +#: ../Doc/whatsnew/3.3.rst:920 ../Doc/whatsnew/3.3.rst:2246 msgid "" ":class:`abc.abstractproperty` has been deprecated, use :class:`property` " "with :func:`abc.abstractmethod` instead." @@ -1625,7 +1634,7 @@ msgstr "" "La clase :class:`abc.abstractproperty` ha quedado obsoleta, en su lugar use " "la clase :class:`property` con :func:`abc.abstractmethod`." -#: ../Doc/whatsnew/3.3.rst:921 ../Doc/whatsnew/3.3.rst:2247 +#: ../Doc/whatsnew/3.3.rst:922 ../Doc/whatsnew/3.3.rst:2248 msgid "" ":class:`abc.abstractclassmethod` has been deprecated, use :class:" "`classmethod` with :func:`abc.abstractmethod` instead." @@ -1633,7 +1642,7 @@ msgstr "" "La clase :class:`abc.abstractclassmethod` ha quedado obsoleta. En su lugar " "use el método :class:`classmethod` with :func:`abc.abstractmethod`." -#: ../Doc/whatsnew/3.3.rst:923 ../Doc/whatsnew/3.3.rst:2249 +#: ../Doc/whatsnew/3.3.rst:924 ../Doc/whatsnew/3.3.rst:2250 msgid "" ":class:`abc.abstractstaticmethod` has been deprecated, use :class:" "`staticmethod` with :func:`abc.abstractmethod` instead." @@ -1641,11 +1650,11 @@ msgstr "" ":class:`abc.abstractstaticmethod` ha quedado obsoleta, use :class:" "`staticmethod` with :func:`abc.abstractmethod`." -#: ../Doc/whatsnew/3.3.rst:926 +#: ../Doc/whatsnew/3.3.rst:927 msgid "(Contributed by Darren Dale in :issue:`11610`.)" msgstr "(Contribución de Darren Dale en :issue:`11610`. )" -#: ../Doc/whatsnew/3.3.rst:928 +#: ../Doc/whatsnew/3.3.rst:929 msgid "" ":meth:`abc.ABCMeta.register` now returns the registered subclass, which " "means it can now be used as a class decorator (:issue:`10868`)." @@ -1654,11 +1663,11 @@ msgstr "" "registradas, lo cual significa que ahora éste puede ser usado como un " "decorador de clases (:issue:`10868`)." -#: ../Doc/whatsnew/3.3.rst:933 +#: ../Doc/whatsnew/3.3.rst:934 msgid "array" msgstr "array" -#: ../Doc/whatsnew/3.3.rst:935 +#: ../Doc/whatsnew/3.3.rst:936 msgid "" "The :mod:`array` module supports the :c:expr:`long long` type using ``q`` " "and ``Q`` type codes." @@ -1666,15 +1675,15 @@ msgstr "" "El módulo :mod:`array` admite el tipo :c:expr:`long long` utilizando los " "códigos de tipo ``q`` y ``Q``." -#: ../Doc/whatsnew/3.3.rst:938 +#: ../Doc/whatsnew/3.3.rst:939 msgid "(Contributed by Oren Tirosh and Hirokazu Yamamoto in :issue:`1172711`.)" msgstr "(Contribución de Oren Tirosh y Hirokazu Yamamoto en :issue:`1172711`.)" -#: ../Doc/whatsnew/3.3.rst:942 +#: ../Doc/whatsnew/3.3.rst:943 msgid "base64" msgstr "base64" -#: ../Doc/whatsnew/3.3.rst:944 +#: ../Doc/whatsnew/3.3.rst:945 msgid "" "ASCII-only Unicode strings are now accepted by the decoding functions of " "the :mod:`base64` modern interface. For example, ``base64." @@ -1686,11 +1695,11 @@ msgstr "" "b64decode ('YWJj')`` retorna ``b'abc'``. (Contribución por Catalin Iacob en: " "número: `13641`.)" -#: ../Doc/whatsnew/3.3.rst:950 +#: ../Doc/whatsnew/3.3.rst:951 msgid "binascii" msgstr "binascii" -#: ../Doc/whatsnew/3.3.rst:952 +#: ../Doc/whatsnew/3.3.rst:953 msgid "" "In addition to the binary objects they normally accept, the ``a2b_`` " "functions now all also accept ASCII-only strings as input. (Contributed by " @@ -1700,11 +1709,11 @@ msgstr "" "``a2b_`` ahora también aceptan cadenas de sólo ASCII como dato de entrada. " "(Contribución por Antoine Petrou en :issue:`13637`.)" -#: ../Doc/whatsnew/3.3.rst:958 +#: ../Doc/whatsnew/3.3.rst:959 msgid "bz2" msgstr "bz2" -#: ../Doc/whatsnew/3.3.rst:960 +#: ../Doc/whatsnew/3.3.rst:961 msgid "" "The :mod:`bz2` module has been rewritten from scratch. In the process, " "several new features have been added:" @@ -1712,7 +1721,7 @@ msgstr "" "El módulo :mod:`bz2` ha sido reescrito desde cero. Durante el proceso, han " "sido agregadas varias características:" -#: ../Doc/whatsnew/3.3.rst:963 +#: ../Doc/whatsnew/3.3.rst:964 msgid "" "New :func:`bz2.open` function: open a bzip2-compressed file in binary or " "text mode." @@ -1720,7 +1729,7 @@ msgstr "" "Nueva función :func:`bz2.open`: abre un archivo comprimido por bzip2, en " "modo binario o en modo de texto." -#: ../Doc/whatsnew/3.3.rst:966 +#: ../Doc/whatsnew/3.3.rst:967 msgid "" ":class:`bz2.BZ2File` can now read from and write to arbitrary file-like " "objects, by means of its constructor's *fileobj* argument." @@ -1728,11 +1737,11 @@ msgstr "" ":class:`bz2.BZ2File` ahora puede leer y escribir en objetos de tipo archivo " "arbitrarios, mediante el argumento *fileobj* de su constructor." -#: ../Doc/whatsnew/3.3.rst:969 +#: ../Doc/whatsnew/3.3.rst:970 msgid "(Contributed by Nadeem Vawda in :issue:`5863`.)" msgstr "(Contribución de Nadeem Vawda en :issue:`5863`.)" -#: ../Doc/whatsnew/3.3.rst:971 +#: ../Doc/whatsnew/3.3.rst:972 msgid "" ":class:`bz2.BZ2File` and :func:`bz2.decompress` can now decompress multi-" "stream inputs (such as those produced by the :program:`pbzip2` tool). :class:" @@ -1745,11 +1754,11 @@ msgstr "" "ser usada también para crear este tipo de archivos, usando el modo ``'a'`` " "(agregar)." -#: ../Doc/whatsnew/3.3.rst:976 +#: ../Doc/whatsnew/3.3.rst:977 msgid "(Contributed by Nir Aides in :issue:`1625`.)" msgstr "(Contribución de Nir Aides en :issue:`1625`.)" -#: ../Doc/whatsnew/3.3.rst:978 +#: ../Doc/whatsnew/3.3.rst:979 msgid "" ":class:`bz2.BZ2File` now implements all of the :class:`io.BufferedIOBase` " "API, except for the :meth:`detach` and :meth:`truncate` methods." @@ -1757,11 +1766,11 @@ msgstr "" "La clase :class:`bz2.BZ2File` ahora implementa toda la API :class:`io." "BufferedIOBase`, excepto los métodos :meth:`detach` y :meth:`truncate`." -#: ../Doc/whatsnew/3.3.rst:983 +#: ../Doc/whatsnew/3.3.rst:984 msgid "codecs" msgstr "códecs" -#: ../Doc/whatsnew/3.3.rst:985 +#: ../Doc/whatsnew/3.3.rst:986 msgid "" "The :mod:`~encodings.mbcs` codec has been rewritten to handle correctly " "``replace`` and ``ignore`` error handlers on all Windows versions. The :mod:" @@ -1774,7 +1783,7 @@ msgstr "" "controladores de error, en lugar de solo ``replace`` para codificar e " "``ignore`` para decodificar." -#: ../Doc/whatsnew/3.3.rst:990 +#: ../Doc/whatsnew/3.3.rst:991 msgid "" "A new Windows-only codec has been added: ``cp65001`` (:issue:`13216`). It is " "the Windows code page 65001 (Windows UTF-8, ``CP_UTF8``). For example, it " @@ -1787,7 +1796,7 @@ msgstr "" "de códigos de salida de la consola se establece en cp65001 (por ejemplo, " "usando el comando ``chcp 65001``)." -#: ../Doc/whatsnew/3.3.rst:995 +#: ../Doc/whatsnew/3.3.rst:996 msgid "" "Multibyte CJK decoders now resynchronize faster. They only ignore the first " "byte of an invalid byte sequence. For example, ``b'\\xff\\n'." @@ -1799,11 +1808,11 @@ msgstr "" "``b'\\xff\\n'.decode('gb2312', 'replace')`` ahora retorna un ``\\n`` después " "del carácter de reemplazo." -#: ../Doc/whatsnew/3.3.rst:999 +#: ../Doc/whatsnew/3.3.rst:1000 msgid "(:issue:`12016`)" msgstr "(:issue:`12016`)" -#: ../Doc/whatsnew/3.3.rst:1001 +#: ../Doc/whatsnew/3.3.rst:1002 msgid "" "Incremental CJK codec encoders are no longer reset at each call to their " "encode() methods. For example::" @@ -1811,7 +1820,7 @@ msgstr "" "Los codificadores de códec incrementales CJK ya no se restablecen en cada " "llamada a sus métodos encode(). Por ejemplo::" -#: ../Doc/whatsnew/3.3.rst:1009 +#: ../Doc/whatsnew/3.3.rst:1010 msgid "" "This example gives ``b'~{Np~}~{J)~}~{l6~}~{HK~}~{!#~} Bye.'`` with older " "Python versions." @@ -1819,19 +1828,19 @@ msgstr "" "Este ejemplo resulta ``b'~{Np~}~{J)~}~{l6~}~{HK~}~{!#~} Bye.'`` con " "versiones anteriores de Python." -#: ../Doc/whatsnew/3.3.rst:1012 +#: ../Doc/whatsnew/3.3.rst:1013 msgid "(:issue:`12100`)" msgstr "(:issue:`12100`)" -#: ../Doc/whatsnew/3.3.rst:1014 +#: ../Doc/whatsnew/3.3.rst:1015 msgid "The ``unicode_internal`` codec has been deprecated." msgstr "El códec ``unicode_internal`` ha quedado obsoleto." -#: ../Doc/whatsnew/3.3.rst:1018 +#: ../Doc/whatsnew/3.3.rst:1019 msgid "collections" msgstr "colecciones" -#: ../Doc/whatsnew/3.3.rst:1020 +#: ../Doc/whatsnew/3.3.rst:1021 msgid "" "Addition of a new :class:`~collections.ChainMap` class to allow treating a " "number of mappings as a single unit. (Written by Raymond Hettinger for :" @@ -1841,7 +1850,7 @@ msgstr "" "tratamiento de un número de asignaciones como una sola unidad. (Escrito por " "Raymond Hettinger para :issue:`11089`, publicado en :issue:`11297`.)" -#: ../Doc/whatsnew/3.3.rst:1024 +#: ../Doc/whatsnew/3.3.rst:1025 msgid "" "The abstract base classes have been moved in a new :mod:`collections.abc` " "module, to better differentiate between the abstract and the concrete " @@ -1854,7 +1863,7 @@ msgstr "" "mod:`collections` para preservar las importaciones existentes. (:issue:" "`11085`)" -#: ../Doc/whatsnew/3.3.rst:1031 +#: ../Doc/whatsnew/3.3.rst:1032 msgid "" "The :class:`~collections.Counter` class now supports the unary ``+`` and ``-" "`` operators, as well as the in-place operators ``+=``, ``-=``, ``|=``, and " @@ -1864,11 +1873,11 @@ msgstr "" "''-'' unarios, así como los operadores in situ ``+=``, ``-=``, ``|=``, and " "``&=``. (Contribución de Raymond Hettinger en :issue:`13121`.)" -#: ../Doc/whatsnew/3.3.rst:1037 +#: ../Doc/whatsnew/3.3.rst:1038 msgid "contextlib" msgstr "contextlib" -#: ../Doc/whatsnew/3.3.rst:1039 +#: ../Doc/whatsnew/3.3.rst:1040 msgid "" ":class:`~contextlib.ExitStack` now provides a solid foundation for " "programmatic manipulation of context managers and similar cleanup " @@ -1888,15 +1897,15 @@ msgstr "" "(por ejemplo, objetos de archivo) o en su método ``__enter__`` (por ejemplo, " "objetos de sincronización del módulo :mod:`threading`)." -#: ../Doc/whatsnew/3.3.rst:1048 +#: ../Doc/whatsnew/3.3.rst:1049 msgid "(:issue:`13585`)" msgstr "(:issue:`13585`)" -#: ../Doc/whatsnew/3.3.rst:1052 +#: ../Doc/whatsnew/3.3.rst:1053 msgid "crypt" msgstr "crypt" -#: ../Doc/whatsnew/3.3.rst:1054 +#: ../Doc/whatsnew/3.3.rst:1055 msgid "" "Addition of salt and modular crypt format (hashing method) and the :func:" "`~crypt.mksalt` function to the :mod:`crypt` module." @@ -1904,15 +1913,15 @@ msgstr "" "Adición de sal y formato de cripta modular (método de hashing) y la función :" "func:`~crypt.mksalt` al módulo :mod:`crypt`." -#: ../Doc/whatsnew/3.3.rst:1057 +#: ../Doc/whatsnew/3.3.rst:1058 msgid "(:issue:`10924`)" msgstr "(:issue:`10924`)" -#: ../Doc/whatsnew/3.3.rst:1060 +#: ../Doc/whatsnew/3.3.rst:1061 msgid "curses" msgstr "curses" -#: ../Doc/whatsnew/3.3.rst:1062 +#: ../Doc/whatsnew/3.3.rst:1063 msgid "" "If the :mod:`curses` module is linked to the ncursesw library, use Unicode " "functions when Unicode strings or characters are passed (e.g. :c:func:" @@ -1923,20 +1932,20 @@ msgstr "" "(por ejemplo, la función :c:func:`waddwstr`) o en caso contrario, funciones " "de *bytes* (e.g. :c:func:`waddstr`)." -#: ../Doc/whatsnew/3.3.rst:1065 +#: ../Doc/whatsnew/3.3.rst:1066 msgid "Use the locale encoding instead of ``utf-8`` to encode Unicode strings." msgstr "" "Usa la codificación local en vez de ``utf-8`` para codificar cadenas " "*Unicode*." -#: ../Doc/whatsnew/3.3.rst:1066 +#: ../Doc/whatsnew/3.3.rst:1067 msgid "" ":class:`curses.window` has a new :attr:`curses.window.encoding` attribute." msgstr "" "La clase :class:`curses.window` tiene un nuevo atributo :attr:`curses.window." "encoding`." -#: ../Doc/whatsnew/3.3.rst:1067 +#: ../Doc/whatsnew/3.3.rst:1068 msgid "" "The :class:`curses.window` class has a new :meth:`~curses.window.get_wch` " "method to get a wide character" @@ -1944,7 +1953,7 @@ msgstr "" "La clase :class:`curses.window` tiene un nuevo método :meth:`~curses.window." "get_wch` para obtener un caracter ancho" -#: ../Doc/whatsnew/3.3.rst:1069 +#: ../Doc/whatsnew/3.3.rst:1070 msgid "" "The :mod:`curses` module has a new :meth:`~curses.unget_wch` function to " "push a wide character so the next :meth:`~curses.window.get_wch` will return " @@ -1954,15 +1963,15 @@ msgstr "" "para enviar un caracter ancho de manera que el próximo :meth:`~curses.window." "get_wch` lo retorne" -#: ../Doc/whatsnew/3.3.rst:1073 +#: ../Doc/whatsnew/3.3.rst:1074 msgid "(Contributed by Iñigo Serna in :issue:`6755`.)" msgstr "(Contribución por Iñigo Serna en :issue:`6755`.)" -#: ../Doc/whatsnew/3.3.rst:1076 +#: ../Doc/whatsnew/3.3.rst:1077 msgid "datetime" msgstr "datetime" -#: ../Doc/whatsnew/3.3.rst:1078 +#: ../Doc/whatsnew/3.3.rst:1079 msgid "" "Equality comparisons between naive and aware :class:`~datetime.datetime` " "instances now return :const:`False` instead of raising :exc:`TypeError` (:" @@ -1972,7 +1981,7 @@ msgstr "" "`~datetime.datetime` ahora retornan :const:`False` en lugar de generar :exc:" "`TypeError` (:issue:`15006`)." -#: ../Doc/whatsnew/3.3.rst:1081 +#: ../Doc/whatsnew/3.3.rst:1082 msgid "" "New :meth:`datetime.datetime.timestamp` method: Return POSIX timestamp " "corresponding to the :class:`~datetime.datetime` instance." @@ -1980,7 +1989,7 @@ msgstr "" "Nuevo método :meth:`datetime.datetime.timestamp`: Retorna la marca de tiempo " "POSIX correspondiente a la instancia :class:`~datetime.datetime`." -#: ../Doc/whatsnew/3.3.rst:1083 +#: ../Doc/whatsnew/3.3.rst:1084 msgid "" "The :meth:`datetime.datetime.strftime` method supports formatting years " "older than 1000." @@ -1988,7 +1997,7 @@ msgstr "" "El método :meth:`datetime.datetime.strftime` admite el formato de años " "anteriores a 1000." -#: ../Doc/whatsnew/3.3.rst:1085 +#: ../Doc/whatsnew/3.3.rst:1086 msgid "" "The :meth:`datetime.datetime.astimezone` method can now be called without " "arguments to convert datetime instance to the system timezone." @@ -1997,19 +2006,19 @@ msgstr "" "argumentos para convertir la instancia datetime en la zona horaria del " "sistema." -#: ../Doc/whatsnew/3.3.rst:1093 +#: ../Doc/whatsnew/3.3.rst:1094 msgid "decimal" msgstr "decimal" -#: ../Doc/whatsnew/3.3.rst:1096 +#: ../Doc/whatsnew/3.3.rst:1097 msgid ":issue:`7652` - integrate fast native decimal arithmetic." msgstr ":issue:`7652` - integrar la aritmética decimal nativa rápida." -#: ../Doc/whatsnew/3.3.rst:1096 +#: ../Doc/whatsnew/3.3.rst:1097 msgid "C-module and libmpdec written by Stefan Krah." msgstr "Módulo C y libmpdec escritos por Stefan Krah." -#: ../Doc/whatsnew/3.3.rst:1098 +#: ../Doc/whatsnew/3.3.rst:1099 msgid "" "The new C version of the decimal module integrates the high speed libmpdec " "library for arbitrary precision correctly rounded decimal floating point " @@ -2021,7 +2030,7 @@ msgstr "" "con precisión arbitraria. libmpdec se ajusta a la especificación de " "aritmética decimal general de IBM." -#: ../Doc/whatsnew/3.3.rst:1102 +#: ../Doc/whatsnew/3.3.rst:1103 msgid "" "Performance gains range from 10x for database applications to 100x for " "numerically intensive applications. These numbers are expected gains for " @@ -2037,7 +2046,7 @@ msgstr "" "aritmética de enteros bignum, las diferencias pueden ser significativamente " "mayores." -#: ../Doc/whatsnew/3.3.rst:1108 +#: ../Doc/whatsnew/3.3.rst:1109 msgid "" "The following table is meant as an illustration. Benchmarks are available at " "https://www.bytereef.org/mpdecimal/quickstart.html." @@ -2046,67 +2055,67 @@ msgstr "" "referencia están disponibles en https://www.bytereef.org/mpdecimal/" "quickstart.html." -#: ../Doc/whatsnew/3.3.rst:1112 +#: ../Doc/whatsnew/3.3.rst:1113 msgid "decimal.py" msgstr "decimal.py" -#: ../Doc/whatsnew/3.3.rst:1112 +#: ../Doc/whatsnew/3.3.rst:1113 msgid "_decimal" msgstr "_decimal" -#: ../Doc/whatsnew/3.3.rst:1112 +#: ../Doc/whatsnew/3.3.rst:1113 msgid "speedup" msgstr "speedup" -#: ../Doc/whatsnew/3.3.rst:1114 +#: ../Doc/whatsnew/3.3.rst:1115 msgid "pi" msgstr "pi" -#: ../Doc/whatsnew/3.3.rst:1114 +#: ../Doc/whatsnew/3.3.rst:1115 msgid "42.02s" msgstr "42.02s" -#: ../Doc/whatsnew/3.3.rst:1114 +#: ../Doc/whatsnew/3.3.rst:1115 msgid "0.345s" msgstr "0.345s" -#: ../Doc/whatsnew/3.3.rst:1114 +#: ../Doc/whatsnew/3.3.rst:1115 msgid "120x" msgstr "120x" -#: ../Doc/whatsnew/3.3.rst:1116 +#: ../Doc/whatsnew/3.3.rst:1117 msgid "telco" msgstr "telco" -#: ../Doc/whatsnew/3.3.rst:1116 +#: ../Doc/whatsnew/3.3.rst:1117 msgid "172.19s" msgstr "172.19s" -#: ../Doc/whatsnew/3.3.rst:1116 +#: ../Doc/whatsnew/3.3.rst:1117 msgid "5.68s" msgstr "5.68s" -#: ../Doc/whatsnew/3.3.rst:1116 +#: ../Doc/whatsnew/3.3.rst:1117 msgid "30x" msgstr "30x" -#: ../Doc/whatsnew/3.3.rst:1118 +#: ../Doc/whatsnew/3.3.rst:1119 msgid "psycopg" msgstr "psycopg" -#: ../Doc/whatsnew/3.3.rst:1118 +#: ../Doc/whatsnew/3.3.rst:1119 msgid "3.57s" msgstr "3.57s" -#: ../Doc/whatsnew/3.3.rst:1118 +#: ../Doc/whatsnew/3.3.rst:1119 msgid "0.29s" msgstr "0.29s" -#: ../Doc/whatsnew/3.3.rst:1118 +#: ../Doc/whatsnew/3.3.rst:1119 msgid "12x" msgstr "12x" -#: ../Doc/whatsnew/3.3.rst:1124 +#: ../Doc/whatsnew/3.3.rst:1125 msgid "" "The :exc:`~decimal.FloatOperation` signal optionally enables stricter " "semantics for mixing floats and Decimals." @@ -2114,18 +2123,19 @@ msgstr "" "La señal :exc:`~decimal.FloatOperation` habilita opcionalmente las " "semánticas estrictas para mezclar decimales y flotantes." -#: ../Doc/whatsnew/3.3.rst:1127 +#: ../Doc/whatsnew/3.3.rst:1128 +#, fuzzy msgid "" "If Python is compiled without threads, the C version automatically disables " "the expensive thread local context machinery. In this case, the variable :" -"data:`~decimal.HAVE_THREADS` is set to ``False``." +"const:`~decimal.HAVE_THREADS` is set to ``False``." msgstr "" "Si python se compila sin subprocesos, la versión C deshabilita " "automáticamente la costosa maquinaria de contexto local de subprocesos. En " "éste caso, la variable :data:`~decimal.HAVE_THREADS` se establece en " "``False``." -#: ../Doc/whatsnew/3.3.rst:1134 +#: ../Doc/whatsnew/3.3.rst:1135 msgid "" "The C module has the following context limits, depending on the machine " "architecture:" @@ -2133,55 +2143,60 @@ msgstr "" "El módulo C tiene los siguientes límites de contexto, dependiendo de la " "arquitectura de la máquina:" -#: ../Doc/whatsnew/3.3.rst:1138 +#: ../Doc/whatsnew/3.3.rst:1139 msgid "32-bit" msgstr "32-bit" -#: ../Doc/whatsnew/3.3.rst:1138 +#: ../Doc/whatsnew/3.3.rst:1139 msgid "64-bit" msgstr "64-bit" -#: ../Doc/whatsnew/3.3.rst:1140 +#: ../Doc/whatsnew/3.3.rst:1141 msgid ":const:`MAX_PREC`" msgstr ":const:`MAX_PREC`" -#: ../Doc/whatsnew/3.3.rst:1140 ../Doc/whatsnew/3.3.rst:1142 -msgid ":const:`425000000`" +#: ../Doc/whatsnew/3.3.rst:1141 ../Doc/whatsnew/3.3.rst:1143 +#, fuzzy +msgid "``425000000``" msgstr ":const:`425000000`" -#: ../Doc/whatsnew/3.3.rst:1140 ../Doc/whatsnew/3.3.rst:1142 -msgid ":const:`999999999999999999`" +#: ../Doc/whatsnew/3.3.rst:1141 ../Doc/whatsnew/3.3.rst:1143 +#, fuzzy +msgid "``999999999999999999``" msgstr ":const:`999999999999999999`" -#: ../Doc/whatsnew/3.3.rst:1142 +#: ../Doc/whatsnew/3.3.rst:1143 msgid ":const:`MAX_EMAX`" msgstr ":const:`MAX_EMAX`" -#: ../Doc/whatsnew/3.3.rst:1144 +#: ../Doc/whatsnew/3.3.rst:1145 msgid ":const:`MIN_EMIN`" msgstr ":const:`MIN_EMIN`" -#: ../Doc/whatsnew/3.3.rst:1144 -msgid ":const:`-425000000`" +#: ../Doc/whatsnew/3.3.rst:1145 +#, fuzzy +msgid "``-425000000``" msgstr ":const:`-425000000`" -#: ../Doc/whatsnew/3.3.rst:1144 -msgid ":const:`-999999999999999999`" +#: ../Doc/whatsnew/3.3.rst:1145 +#, fuzzy +msgid "``-999999999999999999``" msgstr ":const:`-999999999999999999`" -#: ../Doc/whatsnew/3.3.rst:1147 +#: ../Doc/whatsnew/3.3.rst:1148 +#, fuzzy msgid "" "In the context templates (:class:`~decimal.DefaultContext`, :class:`~decimal." "BasicContext` and :class:`~decimal.ExtendedContext`) the magnitude of :attr:" -"`~decimal.Context.Emax` and :attr:`~decimal.Context.Emin` has changed to :" -"const:`999999`." +"`~decimal.Context.Emax` and :attr:`~decimal.Context.Emin` has changed to " +"``999999``." msgstr "" "En las plantillas de contexto (:class:`~decimal.DefaultContext`, :class:" "`~decimal.BasicContext` and :class:`~decimal.ExtendedContext`) la magnitud " "de :attr:`~decimal.Context.Emax` y :attr:`~decimal.Context.Emin` se ha " "cambiado a :const:`999999`." -#: ../Doc/whatsnew/3.3.rst:1152 +#: ../Doc/whatsnew/3.3.rst:1153 msgid "" "The :class:`~decimal.Decimal` constructor in decimal.py does not observe the " "context limits and converts values with arbitrary exponents or precision " @@ -2200,7 +2215,7 @@ msgstr "" "`~decimal.Context.create_decimal` para obtener un valor redondeado o " "inexacto." -#: ../Doc/whatsnew/3.3.rst:1161 +#: ../Doc/whatsnew/3.3.rst:1162 msgid "" "The power function in decimal.py is always correctly rounded. In the C " "version, it is defined in terms of the correctly rounded :meth:`~decimal." @@ -2212,7 +2227,7 @@ msgstr "" "exp` y :meth:`~decimal.Decimal.ln` correctamente redondeadas, pero el " "resultado final es solo \"casi siempre correctamente redondeado\"." -#: ../Doc/whatsnew/3.3.rst:1167 +#: ../Doc/whatsnew/3.3.rst:1168 msgid "" "In the C version, the context dictionary containing the signals is a :class:" "`~collections.abc.MutableMapping`. For speed reasons, :attr:`~decimal." @@ -2231,7 +2246,7 @@ msgstr "" "actualizados con los nuevos valores, pero no hacen referencia al diccionario " "RHS." -#: ../Doc/whatsnew/3.3.rst:1177 +#: ../Doc/whatsnew/3.3.rst:1178 msgid "" "Pickling a :class:`~decimal.Context` produces a different output in order to " "have a common interchange format for the Python and C versions." @@ -2239,7 +2254,7 @@ msgstr "" "Decapar a :class:`~decimal.Context` produce una salida diferente para tener " "un formato de intercambio común para las versiones de Python y C." -#: ../Doc/whatsnew/3.3.rst:1181 +#: ../Doc/whatsnew/3.3.rst:1182 msgid "" "The order of arguments in the :class:`~decimal.Context` constructor has been " "changed to match the order displayed by :func:`repr`." @@ -2248,7 +2263,7 @@ msgstr "" "Context`, ha sido cambiado para que coincida con el orden mostrado por la " "función :func:`repr`." -#: ../Doc/whatsnew/3.3.rst:1185 +#: ../Doc/whatsnew/3.3.rst:1186 msgid "" "The ``watchexp`` parameter in the :meth:`~decimal.Decimal.quantize` method " "is deprecated." @@ -2256,15 +2271,15 @@ msgstr "" "El parámetro ``watchexp`` en el método :meth:`~decimal.Decimal.quantize` ha " "quedado obsoleto." -#: ../Doc/whatsnew/3.3.rst:1192 +#: ../Doc/whatsnew/3.3.rst:1193 msgid "email" msgstr "email" -#: ../Doc/whatsnew/3.3.rst:1195 +#: ../Doc/whatsnew/3.3.rst:1196 msgid "Policy Framework" msgstr "Marco de políticas" -#: ../Doc/whatsnew/3.3.rst:1197 +#: ../Doc/whatsnew/3.3.rst:1198 msgid "" "The email package now has a :mod:`~email.policy` framework. A :class:" "`~email.policy.Policy` is an object with several methods and properties that " @@ -2294,17 +2309,17 @@ msgstr "" "``generator`` utilizará la política del objeto ``Message`` que está " "serializando. La directiva predeterminada es :data:`~email.policy.compat32`." -#: ../Doc/whatsnew/3.3.rst:1210 +#: ../Doc/whatsnew/3.3.rst:1211 msgid "The minimum set of controls implemented by all ``policy`` objects are:" msgstr "" "El conjunto mínimo de controles implementado por todos los objetos " "``policy`` son:" -#: ../Doc/whatsnew/3.3.rst:1215 +#: ../Doc/whatsnew/3.3.rst:1216 msgid "max_line_length" msgstr "max_line_length" -#: ../Doc/whatsnew/3.3.rst:1215 +#: ../Doc/whatsnew/3.3.rst:1216 msgid "" "The maximum length, excluding the linesep character(s), individual lines may " "have when a ``Message`` is serialized. Defaults to 78." @@ -2313,11 +2328,11 @@ msgstr "" "líneas individuales pueden tener cuando un ``Message`` se serializa es por " "defecto de 78." -#: ../Doc/whatsnew/3.3.rst:1219 +#: ../Doc/whatsnew/3.3.rst:1220 msgid "linesep" msgstr "*linesep*" -#: ../Doc/whatsnew/3.3.rst:1219 +#: ../Doc/whatsnew/3.3.rst:1220 msgid "" "The character used to separate individual lines when a ``Message`` is " "serialized. Defaults to ``\\n``." @@ -2325,11 +2340,11 @@ msgstr "" "El caracter usado para separar las líneas individuales cuando se serializa " "un ``Message`` es por defecto ``\\n``." -#: ../Doc/whatsnew/3.3.rst:1222 +#: ../Doc/whatsnew/3.3.rst:1223 msgid "cte_type" msgstr "cte_type" -#: ../Doc/whatsnew/3.3.rst:1222 +#: ../Doc/whatsnew/3.3.rst:1223 msgid "" "``7bit`` or ``8bit``. ``8bit`` applies only to a ``Bytes`` ``generator``, " "and means that non-ASCII may be used where allowed by the protocol (or where " @@ -2339,11 +2354,11 @@ msgstr "" "y significa que pueden utilizarse \"no ASCII\" cuando lo permita el " "protocolo (o cuando exista en la entrada original)." -#: ../Doc/whatsnew/3.3.rst:1227 +#: ../Doc/whatsnew/3.3.rst:1228 msgid "raise_on_defect" msgstr "raise_on_defect" -#: ../Doc/whatsnew/3.3.rst:1227 +#: ../Doc/whatsnew/3.3.rst:1228 msgid "" "Causes a ``parser`` to raise error when defects are encountered instead of " "adding them to the ``Message`` object's ``defects`` list." @@ -2351,7 +2366,7 @@ msgstr "" "Hace que un ''analizador'' genere el error cuando se encuentran defectos en " "lugar de agregarlos a la lista ''Mensaje'' del objeto ''defectos''." -#: ../Doc/whatsnew/3.3.rst:1232 +#: ../Doc/whatsnew/3.3.rst:1233 msgid "" "A new policy instance, with new settings, is created using the :meth:`~email." "policy.Policy.clone` method of policy objects. ``clone`` takes any of the " @@ -2366,7 +2381,7 @@ msgstr "" "valor predeterminado. Por lo tanto, puede crear una directiva que utilice " "caracteres *linesep* ``\\r\\n`` como este::" -#: ../Doc/whatsnew/3.3.rst:1240 +#: ../Doc/whatsnew/3.3.rst:1241 msgid "" "Policies can be used to make the generation of messages in the format needed " "by your application simpler. Instead of having to remember to specify " @@ -2389,11 +2404,11 @@ msgstr "" "personalizadas para tus distintos casos, y pasarlos al crear el " "``generator``." -#: ../Doc/whatsnew/3.3.rst:1252 +#: ../Doc/whatsnew/3.3.rst:1253 msgid "Provisional Policy with New Header API" msgstr "Política provisional con nueva API de encabezado" -#: ../Doc/whatsnew/3.3.rst:1254 +#: ../Doc/whatsnew/3.3.rst:1255 msgid "" "While the policy framework is worthwhile all by itself, the main motivation " "for introducing it is to allow the creation of new policies that implement " @@ -2414,7 +2429,7 @@ msgstr "" "incompatibles con versiones anteriores (hasta la eliminación del código) si " "los desarrolladores principales lo consideran necesario." -#: ../Doc/whatsnew/3.3.rst:1262 +#: ../Doc/whatsnew/3.3.rst:1263 msgid "" "The new policies are instances of :class:`~email.policy.EmailPolicy`, and " "add the following additional controls:" @@ -2422,11 +2437,11 @@ msgstr "" "Las nuevas directivas son instancias de :class:`~email.policy.EmailPolicy`, " "y agregan los siguientes controles adicionales:" -#: ../Doc/whatsnew/3.3.rst:1268 +#: ../Doc/whatsnew/3.3.rst:1269 msgid "refold_source" msgstr "refold_source" -#: ../Doc/whatsnew/3.3.rst:1268 +#: ../Doc/whatsnew/3.3.rst:1269 msgid "" "Controls whether or not headers parsed by a :mod:`~email.parser` are " "refolded by the :mod:`~email.generator`. It can be ``none``, ``long``, or " @@ -2441,11 +2456,11 @@ msgstr "" "repliegan. ``none`` significa que no se repliega ninguna linea, y ``all`` " "significa que todas las lineas son replegadas." -#: ../Doc/whatsnew/3.3.rst:1277 +#: ../Doc/whatsnew/3.3.rst:1278 msgid "header_factory" msgstr "header_factory" -#: ../Doc/whatsnew/3.3.rst:1277 +#: ../Doc/whatsnew/3.3.rst:1278 msgid "" "A callable that take a ``name`` and ``value`` and produces a custom header " "object." @@ -2453,7 +2468,7 @@ msgstr "" "Un invocable que toma un ``nombre`` y un ``valor`` y produce un objeto de " "encabezado personalizado." -#: ../Doc/whatsnew/3.3.rst:1281 +#: ../Doc/whatsnew/3.3.rst:1282 msgid "" "The ``header_factory`` is the key to the new features provided by the new " "policies. When one of the new policies is used, any header retrieved from a " @@ -2475,7 +2490,7 @@ msgstr "" "datos analizados del encabezado. Ésto significa que ahora puedes hacer cosas " "como ésta:" -#: ../Doc/whatsnew/3.3.rst:1309 +#: ../Doc/whatsnew/3.3.rst:1310 msgid "" "You will note that the unicode display name is automatically encoded as " "``utf-8`` when the message is serialized, but that when the header is " @@ -2489,15 +2504,15 @@ msgstr "" "necesidad de lidiar con las funciones :mod:`email.header` :meth:`~email." "header.decode_header` or :meth:`~email.header.make_header`." -#: ../Doc/whatsnew/3.3.rst:1315 +#: ../Doc/whatsnew/3.3.rst:1316 msgid "You can also create addresses from parts::" msgstr "También puedes crear direcciones a partir de partes::" -#: ../Doc/whatsnew/3.3.rst:1325 +#: ../Doc/whatsnew/3.3.rst:1326 msgid "Decoding to unicode is done automatically::" msgstr "La decodificación a *Unicode* se realiza automáticamente:" -#: ../Doc/whatsnew/3.3.rst:1331 +#: ../Doc/whatsnew/3.3.rst:1332 msgid "" "When you parse a message, you can use the ``addresses`` and ``groups`` " "attributes of the header objects to access the groups and individual " @@ -2507,7 +2522,7 @@ msgstr "" "``groups`` de los objetos de encabezado, para acceder a los grupos y " "direcciones individuales::" -#: ../Doc/whatsnew/3.3.rst:1340 +#: ../Doc/whatsnew/3.3.rst:1341 msgid "" "In summary, if you use one of the new policies, header manipulation works " "the way it ought to: your application works with unicode strings, and the " @@ -2520,11 +2535,11 @@ msgstr "" "de forma transparente el unicode desde y hacia las codificaciones de " "transferencia de contenido estándar RFC." -#: ../Doc/whatsnew/3.3.rst:1346 +#: ../Doc/whatsnew/3.3.rst:1347 msgid "Other API Changes" msgstr "Otros cambios en la API" -#: ../Doc/whatsnew/3.3.rst:1348 +#: ../Doc/whatsnew/3.3.rst:1349 msgid "" "New :class:`~email.parser.BytesHeaderParser`, added to the :mod:`~email." "parser` module to complement :class:`~email.parser.HeaderParser` and " @@ -2534,11 +2549,11 @@ msgstr "" "`~email.parser` para complementar :class:`~email.parser.HeaderParser` y " "completar la API Bytes." -#: ../Doc/whatsnew/3.3.rst:1352 +#: ../Doc/whatsnew/3.3.rst:1353 msgid "New utility functions:" msgstr "Nuevas funciones de utilidad:" -#: ../Doc/whatsnew/3.3.rst:1354 +#: ../Doc/whatsnew/3.3.rst:1355 msgid "" ":func:`~email.utils.format_datetime`: given a :class:`~datetime.datetime`, " "produce a string formatted for use in an email header." @@ -2547,7 +2562,7 @@ msgstr "" "produce una cadena formateada para su uso en un encabezado de correo " "electrónico." -#: ../Doc/whatsnew/3.3.rst:1357 +#: ../Doc/whatsnew/3.3.rst:1358 msgid "" ":func:`~email.utils.parsedate_to_datetime`: given a date string from an " "email header, convert it into an aware :class:`~datetime.datetime`, or a " @@ -2558,7 +2573,7 @@ msgstr "" "datetime`, o un ingenuo :class:`datetime.datetime` si el desplazamiento es " "``-0000``." -#: ../Doc/whatsnew/3.3.rst:1361 +#: ../Doc/whatsnew/3.3.rst:1362 msgid "" ":func:`~email.utils.localtime`: With no argument, returns the current local " "time as an aware :class:`~datetime.datetime` using the local :class:" @@ -2572,11 +2587,11 @@ msgstr "" "lo convierte en un :class:`~datetime.datetime` con el valor local :class:" "`~datetime.timezone`." -#: ../Doc/whatsnew/3.3.rst:1369 +#: ../Doc/whatsnew/3.3.rst:1370 msgid "ftplib" msgstr "ftplib" -#: ../Doc/whatsnew/3.3.rst:1371 +#: ../Doc/whatsnew/3.3.rst:1372 msgid "" ":class:`ftplib.FTP` now accepts a ``source_address`` keyword argument to " "specify the ``(host, port)`` to use as the source address in the bind call " @@ -2588,7 +2603,7 @@ msgstr "" "dirección de origen en la llamada de enlace al crear el socket saliente. " "(Contribución de Giampaolo Rodolà en :issue:`8594`.)" -#: ../Doc/whatsnew/3.3.rst:1376 +#: ../Doc/whatsnew/3.3.rst:1377 msgid "" "The :class:`~ftplib.FTP_TLS` class now provides a new :func:`~ftplib.FTP_TLS." "ccc` function to revert control channel back to plaintext. This can be " @@ -2602,7 +2617,7 @@ msgstr "" "manejar NAT con FTP no seguro sin abrir puertos fijos. (Contribución de " "Giampaolo Rodolà en :issue:`12139`.)" -#: ../Doc/whatsnew/3.3.rst:1382 +#: ../Doc/whatsnew/3.3.rst:1383 msgid "" "Added :meth:`ftplib.FTP.mlsd` method which provides a parsable directory " "listing format and deprecates :meth:`ftplib.FTP.nlst` and :meth:`ftplib.FTP." @@ -2613,11 +2628,11 @@ msgstr "" "y :meth:`ftplib.FTP.dir`. (Contribución de Giampaolo Rodolà en :issue:" "`11072`.)" -#: ../Doc/whatsnew/3.3.rst:1388 +#: ../Doc/whatsnew/3.3.rst:1389 msgid "functools" msgstr "functools" -#: ../Doc/whatsnew/3.3.rst:1390 +#: ../Doc/whatsnew/3.3.rst:1391 msgid "" "The :func:`functools.lru_cache` decorator now accepts a ``typed`` keyword " "argument (that defaults to ``False`` to ensure that it caches values of " @@ -2630,11 +2645,11 @@ msgstr "" "igual en ranuras separadas de caché. (Contribución de Raymond Hettinger en :" "issue:`13227`.)" -#: ../Doc/whatsnew/3.3.rst:1397 +#: ../Doc/whatsnew/3.3.rst:1398 msgid "gc" msgstr "gc" -#: ../Doc/whatsnew/3.3.rst:1399 +#: ../Doc/whatsnew/3.3.rst:1400 msgid "" "It is now possible to register callbacks invoked by the garbage collector " "before and after collection using the new :data:`~gc.callbacks` list." @@ -2643,11 +2658,11 @@ msgstr "" "recolector de basura antes y después de la recolección, utilizando la nueva " "lista :data:`~gc.callbacks`." -#: ../Doc/whatsnew/3.3.rst:1404 +#: ../Doc/whatsnew/3.3.rst:1405 msgid "hmac" msgstr "hmac" -#: ../Doc/whatsnew/3.3.rst:1406 +#: ../Doc/whatsnew/3.3.rst:1407 msgid "" "A new :func:`~hmac.compare_digest` function has been added to prevent side " "channel attacks on digests through timing analysis. (Contributed by Nick " @@ -2657,11 +2672,11 @@ msgstr "" "los ataques de canales adyacentes en resúmenes durante el análisis de " "tiempos. (Contribución de Nick Coghlan y Christian Heimes en :issue:`15061`.)" -#: ../Doc/whatsnew/3.3.rst:1412 +#: ../Doc/whatsnew/3.3.rst:1413 msgid "http" msgstr "http" -#: ../Doc/whatsnew/3.3.rst:1414 +#: ../Doc/whatsnew/3.3.rst:1415 msgid "" ":class:`http.server.BaseHTTPRequestHandler` now buffers the headers and " "writes them all at once when :meth:`~http.server.BaseHTTPRequestHandler." @@ -2677,7 +2692,7 @@ msgstr "" "directamente cuándo se envían los encabezados acumulados. (Contribución por " "Andrew Schaaf en :issue:`3709`.)" -#: ../Doc/whatsnew/3.3.rst:1420 +#: ../Doc/whatsnew/3.3.rst:1421 msgid "" ":class:`http.server` now produces valid ``HTML 4.01 strict`` output. " "(Contributed by Ezio Melotti in :issue:`13295`.)" @@ -2685,7 +2700,7 @@ msgstr "" ":class:`http.server` ahora produce una salida ``HTML 4.01 strict`` válida. " "(Contribución de Ezio Melotti in :issue:`13295`)" -#: ../Doc/whatsnew/3.3.rst:1423 +#: ../Doc/whatsnew/3.3.rst:1424 msgid "" ":class:`http.client.HTTPResponse` now has a :meth:`~http.client.HTTPResponse." "readinto` method, which means it can be used as an :class:`io.RawIOBase` " @@ -2696,11 +2711,11 @@ msgstr "" "como una clase :class:`io.RawIOBase`. (Contribución de John Kuhn in :issue:" "`13464`)" -#: ../Doc/whatsnew/3.3.rst:1430 +#: ../Doc/whatsnew/3.3.rst:1431 msgid "html" msgstr "html" -#: ../Doc/whatsnew/3.3.rst:1432 +#: ../Doc/whatsnew/3.3.rst:1433 msgid "" ":class:`html.parser.HTMLParser` is now able to parse broken markup without " "raising errors, therefore the *strict* argument of the constructor and the :" @@ -2722,7 +2737,7 @@ msgstr "" "`1745761`, :issue:`755670`, :issue:`13357`, :issue:`12629`, :issue:" "`1200313`, :issue:`670664`, :issue:`13273`, :issue:`12888`, :issue:`7311`.)" -#: ../Doc/whatsnew/3.3.rst:1442 +#: ../Doc/whatsnew/3.3.rst:1443 msgid "" "A new :data:`~html.entities.html5` dictionary that maps HTML5 named " "character references to the equivalent Unicode character(s) (e.g. " @@ -2737,11 +2752,11 @@ msgstr "" "class:`~html.parser.HTMLParser`. (Contribución por Ezio Melotti en :issue:" "`11113` y :issue:`15156`.)" -#: ../Doc/whatsnew/3.3.rst:1450 +#: ../Doc/whatsnew/3.3.rst:1451 msgid "imaplib" msgstr "imaplib" -#: ../Doc/whatsnew/3.3.rst:1452 +#: ../Doc/whatsnew/3.3.rst:1453 msgid "" "The :class:`~imaplib.IMAP4_SSL` constructor now accepts an SSLContext " "parameter to control parameters of the secure channel." @@ -2749,15 +2764,15 @@ msgstr "" "El constructor de :class:`~imaplib.IMAP4_SSL` ahora acepta un parámetro " "SSLContext para controlar los parámetros del canal seguro." -#: ../Doc/whatsnew/3.3.rst:1455 +#: ../Doc/whatsnew/3.3.rst:1456 msgid "(Contributed by Sijin Joseph in :issue:`8808`.)" msgstr "(Contribución de Sijin Joseph en :issue:`8808`.)" -#: ../Doc/whatsnew/3.3.rst:1459 +#: ../Doc/whatsnew/3.3.rst:1460 msgid "inspect" msgstr "inspect" -#: ../Doc/whatsnew/3.3.rst:1461 +#: ../Doc/whatsnew/3.3.rst:1462 msgid "" "A new :func:`~inspect.getclosurevars` function has been added. This function " "reports the current binding of all names referenced from the function body " @@ -2770,11 +2785,11 @@ msgstr "" "nombres, lo que facilita la comprobación del estado interno correcto al " "probar el código que se basa en cierres con estado." -#: ../Doc/whatsnew/3.3.rst:1466 +#: ../Doc/whatsnew/3.3.rst:1467 msgid "(Contributed by Meador Inge and Nick Coghlan in :issue:`13062`.)" msgstr "(Contribución de Meador Inge y Nick Coghlan en :issue:`13062`.)" -#: ../Doc/whatsnew/3.3.rst:1468 +#: ../Doc/whatsnew/3.3.rst:1469 msgid "" "A new :func:`~inspect.getgeneratorlocals` function has been added. This " "function reports the current binding of local variables in the generator's " @@ -2786,15 +2801,15 @@ msgstr "" "del generador, lo que facilita la comprobación del estado interno correcto " "al probar generadores." -#: ../Doc/whatsnew/3.3.rst:1473 +#: ../Doc/whatsnew/3.3.rst:1474 msgid "(Contributed by Meador Inge in :issue:`15153`.)" msgstr "(Contribución de Meador Inge en :issue:`15153`.)" -#: ../Doc/whatsnew/3.3.rst:1476 +#: ../Doc/whatsnew/3.3.rst:1477 msgid "io" msgstr "io" -#: ../Doc/whatsnew/3.3.rst:1478 +#: ../Doc/whatsnew/3.3.rst:1479 msgid "" "The :func:`~io.open` function has a new ``'x'`` mode that can be used to " "exclusively create a new file, and raise a :exc:`FileExistsError` if the " @@ -2805,11 +2820,11 @@ msgstr "" "`FileExistsError` si el archivo ya existe. Este está basado en el modo C11 " "'x' para fopen()." -#: ../Doc/whatsnew/3.3.rst:1482 +#: ../Doc/whatsnew/3.3.rst:1483 msgid "(Contributed by David Townshend in :issue:`12760`.)" msgstr "(Contribución de David Townsend en :issue:`12760`.)" -#: ../Doc/whatsnew/3.3.rst:1484 +#: ../Doc/whatsnew/3.3.rst:1485 msgid "" "The constructor of the :class:`~io.TextIOWrapper` class has a new " "*write_through* optional argument. If *write_through* is ``True``, calls to :" @@ -2823,11 +2838,11 @@ msgstr "" "almacenarán en buffer: Cualquier dato escrito en el objeto :class:`~io." "TextIOWrapper` es llevado inmediatamente a su buffer subyacente." -#: ../Doc/whatsnew/3.3.rst:1492 +#: ../Doc/whatsnew/3.3.rst:1493 msgid "itertools" msgstr "itertools" -#: ../Doc/whatsnew/3.3.rst:1494 +#: ../Doc/whatsnew/3.3.rst:1495 msgid "" ":func:`~itertools.accumulate` now takes an optional ``func`` argument for " "providing a user-supplied binary function." @@ -2835,11 +2850,11 @@ msgstr "" ":func:`~itertools.accumulate` ahora toma un argumento opcional ``func`` para " "proporcionar una función binaria proporcionada por el usuario." -#: ../Doc/whatsnew/3.3.rst:1499 +#: ../Doc/whatsnew/3.3.rst:1500 msgid "logging" msgstr "logging" -#: ../Doc/whatsnew/3.3.rst:1501 +#: ../Doc/whatsnew/3.3.rst:1502 msgid "" "The :func:`~logging.basicConfig` function now supports an optional " "``handlers`` argument taking an iterable of handlers to be added to the root " @@ -2849,7 +2864,7 @@ msgstr "" "``handlers`` tomando un iterable de manejadores para agregarlo en el " "registrador raíz." -#: ../Doc/whatsnew/3.3.rst:1504 +#: ../Doc/whatsnew/3.3.rst:1505 msgid "" "A class level attribute :attr:`~logging.handlers.SysLogHandler.append_nul` " "has been added to :class:`~logging.handlers.SysLogHandler` to allow control " @@ -2863,11 +2878,11 @@ msgstr "" "byte a los registros de syslog, dado que para algunos demonios es requerido " "mientras que para otros se pasa al registro." -#: ../Doc/whatsnew/3.3.rst:1512 +#: ../Doc/whatsnew/3.3.rst:1513 msgid "math" msgstr "math" -#: ../Doc/whatsnew/3.3.rst:1514 +#: ../Doc/whatsnew/3.3.rst:1515 msgid "" "The :mod:`math` module has a new function, :func:`~math.log2`, which " "returns the base-2 logarithm of *x*." @@ -2875,16 +2890,16 @@ msgstr "" "El módulo :mod:`math` tiene una nueva función, :func:`~math.log2`, la cual " "retorna el logaritmo de *x* en base 2." -#: ../Doc/whatsnew/3.3.rst:1517 +#: ../Doc/whatsnew/3.3.rst:1518 msgid "(Written by Mark Dickinson in :issue:`11888`.)" msgstr "(Escrito por Mark Dickinson en :issue:`11888`.)" -#: ../Doc/whatsnew/3.3.rst:1521 +#: ../Doc/whatsnew/3.3.rst:1522 msgid "mmap" msgstr "mmap" # cursiva a Bytes -#: ../Doc/whatsnew/3.3.rst:1523 +#: ../Doc/whatsnew/3.3.rst:1524 msgid "" "The :meth:`~mmap.mmap.read` method is now more compatible with other file-" "like objects: if the argument is omitted or specified as ``None``, it " @@ -2896,11 +2911,11 @@ msgstr "" "``None``, retorna los *bytes* desde la posición actual hasta el final del " "mapeo. (Contribución de Petri Lehtinen en :issue:`12021`.)" -#: ../Doc/whatsnew/3.3.rst:1530 +#: ../Doc/whatsnew/3.3.rst:1531 msgid "multiprocessing" msgstr "multiprocesamiento" -#: ../Doc/whatsnew/3.3.rst:1532 +#: ../Doc/whatsnew/3.3.rst:1533 msgid "" "The new :func:`multiprocessing.connection.wait` function allows polling " "multiple objects (such as connections, sockets and pipes) with a timeout. " @@ -2910,7 +2925,7 @@ msgstr "" "varios objetos (como conexiones, sockets y tuberías) con un tiempo de " "espera. (Contribución de Richard Oudkerk en :issue:`12328`.)" -#: ../Doc/whatsnew/3.3.rst:1536 +#: ../Doc/whatsnew/3.3.rst:1537 msgid "" ":class:`multiprocessing.Connection` objects can now be transferred over " "multiprocessing connections. (Contributed by Richard Oudkerk in :issue:" @@ -2920,7 +2935,7 @@ msgstr "" "través de conexiones de multiprocesamiento. (Contribución de Richard Oudkerk " "en :issue:`4892`.)" -#: ../Doc/whatsnew/3.3.rst:1540 +#: ../Doc/whatsnew/3.3.rst:1541 msgid "" ":class:`multiprocessing.Process` now accepts a ``daemon`` keyword argument " "to override the default behavior of inheriting the ``daemon`` flag from the " @@ -2930,7 +2945,7 @@ msgstr "" "``daemon`` para invalidar el comportamiento predeterminado de heredar el " "indicador ``daemon`` del proceso primario (:issue:`6064`)." -#: ../Doc/whatsnew/3.3.rst:1544 +#: ../Doc/whatsnew/3.3.rst:1545 msgid "" "New attribute :data:`multiprocessing.Process.sentinel` allows a program to " "wait on multiple :class:`~multiprocessing.Process` objects at one time using " @@ -2941,7 +2956,7 @@ msgstr "" "utilizando las primitivas adecuadas del sistema operativo (por ejemplo, :mod:" "`select` en sistemas posix)." -#: ../Doc/whatsnew/3.3.rst:1549 +#: ../Doc/whatsnew/3.3.rst:1550 msgid "" "New methods :meth:`multiprocessing.pool.Pool.starmap` and :meth:" "`~multiprocessing.pool.Pool.starmap_async` provide :func:`itertools.starmap` " @@ -2955,11 +2970,11 @@ msgstr "" "Pool.map` y :meth:`~multiprocessing.pool.Pool.map_async`. (Contribución de " "Hynek Schlawack en :issue:`12708`.)" -#: ../Doc/whatsnew/3.3.rst:1558 +#: ../Doc/whatsnew/3.3.rst:1559 msgid "nntplib" msgstr "nntplib" -#: ../Doc/whatsnew/3.3.rst:1560 +#: ../Doc/whatsnew/3.3.rst:1561 msgid "" "The :class:`nntplib.NNTP` class now supports the context management protocol " "to unconditionally consume :exc:`socket.error` exceptions and to close the " @@ -2969,18 +2984,19 @@ msgstr "" "contexto para consumir incondicionalmente las excepciones :exc:`socket." "error` y cerrar la conexión NNTP cuando esté listo::" -#: ../Doc/whatsnew/3.3.rst:1571 +#: ../Doc/whatsnew/3.3.rst:1572 msgid "(Contributed by Giampaolo Rodolà in :issue:`9795`.)" msgstr "(Contribución de Giampaolo Rodolà en :issue:`9795`.)" -#: ../Doc/whatsnew/3.3.rst:1575 +#: ../Doc/whatsnew/3.3.rst:1576 msgid "os" msgstr "os" -#: ../Doc/whatsnew/3.3.rst:1577 +#: ../Doc/whatsnew/3.3.rst:1578 +#, fuzzy msgid "" "The :mod:`os` module has a new :func:`~os.pipe2` function that makes it " -"possible to create a pipe with :data:`~os.O_CLOEXEC` or :data:`~os." +"possible to create a pipe with :const:`~os.O_CLOEXEC` or :const:`~os." "O_NONBLOCK` flags set atomically. This is especially useful to avoid race " "conditions in multi-threaded programs." msgstr "" @@ -2989,7 +3005,7 @@ msgstr "" "O_NONBLOCK` establecida automáticamente. Esto es especialmente útil para " "evitar las condiciones de carrera en programas multi-hilos." -#: ../Doc/whatsnew/3.3.rst:1582 +#: ../Doc/whatsnew/3.3.rst:1583 msgid "" "The :mod:`os` module has a new :func:`~os.sendfile` function which provides " "an efficient \"zero-copy\" way for copying data from one file (or socket) " @@ -3008,13 +3024,13 @@ msgstr "" "copiar datos de forma eficiente desde un archivo en el disco a un conector " "de red, por ejemplo para descargar un archivo." -#: ../Doc/whatsnew/3.3.rst:1590 +#: ../Doc/whatsnew/3.3.rst:1591 msgid "" "(Patch submitted by Ross Lagerwall and Giampaolo Rodolà in :issue:`10882`.)" msgstr "" "(Revisión enviada por Ross Lagerwall y Giampaolo Rodolà en :issue:`10882`.)" -#: ../Doc/whatsnew/3.3.rst:1592 +#: ../Doc/whatsnew/3.3.rst:1593 msgid "" "To avoid race conditions like symlink attacks and issues with temporary " "files and directories, it is more reliable (and also faster) to manipulate " @@ -3029,7 +3045,7 @@ msgstr "" "trabajar con los descriptores de archivos (:issue:`4761`, :issue:`10755` " "and :issue:`14626`)." -#: ../Doc/whatsnew/3.3.rst:1598 +#: ../Doc/whatsnew/3.3.rst:1599 msgid "" "The :mod:`os` module has a new :func:`~os.fwalk` function similar to :func:" "`~os.walk` except that it also yields file descriptors referring to the " @@ -3040,7 +3056,7 @@ msgstr "" "refieren a los directorios visitados. Esto es especialmente útil para " "prevenir las carreras de enlaces simbólicos." -#: ../Doc/whatsnew/3.3.rst:1602 +#: ../Doc/whatsnew/3.3.rst:1603 msgid "" "The following functions get new optional *dir_fd* (:ref:`paths relative to " "directory descriptors `) and/or *follow_symlinks* (:ref:`not " @@ -3064,7 +3080,7 @@ msgstr "" "éstos parámetros puede verificarse a través de los conjuntos :data:`os." "supports_dir_fd` and :data:`os.supports_follows_symlinks`." -#: ../Doc/whatsnew/3.3.rst:1613 +#: ../Doc/whatsnew/3.3.rst:1614 msgid "" "The following functions now support a file descriptor for their path " "argument: :func:`~os.chdir`, :func:`~os.chmod`, :func:`~os.chown`, :func:" @@ -3079,7 +3095,7 @@ msgstr "" "soporte de la plataforma para ésto puede ser verificado a través del " "conjunto :data:`os.supports_fd`." -#: ../Doc/whatsnew/3.3.rst:1619 +#: ../Doc/whatsnew/3.3.rst:1620 msgid "" ":func:`~os.access` accepts an ``effective_ids`` keyword argument to turn on " "using the effective uid/gid rather than the real uid/gid in the access " @@ -3091,7 +3107,7 @@ msgstr "" "comprobación de acceso. El soporte de la plataforma para ésto, se puede " "comprobar a través del conjunto :data:`~os.supports_effective_ids`." -#: ../Doc/whatsnew/3.3.rst:1624 +#: ../Doc/whatsnew/3.3.rst:1625 msgid "" "The :mod:`os` module has two new functions: :func:`~os.getpriority` and :" "func:`~os.setpriority`. They can be used to get or set process niceness/" @@ -3103,11 +3119,11 @@ msgstr "" "la prioridad en una forma similar a :func:`os.nice` pero extendidos a todos " "los procesos en vez de solo al proceso actual." -#: ../Doc/whatsnew/3.3.rst:1629 +#: ../Doc/whatsnew/3.3.rst:1630 msgid "(Patch submitted by Giampaolo Rodolà in :issue:`10784`.)" msgstr "(Revisión enviada por Giampaolo Rodolà en :issue:`10784`.)" -#: ../Doc/whatsnew/3.3.rst:1631 +#: ../Doc/whatsnew/3.3.rst:1632 msgid "" "The new :func:`os.replace` function allows cross-platform renaming of a file " "with overwriting the destination. With :func:`os.rename`, an existing " @@ -3119,7 +3135,7 @@ msgstr "" "archivo de destino existente se sobrescribe bajo POSIX, pero lanza un error " "en Windows. (Contribución de Antoine Pitrou en :issue:`8828`.)" -#: ../Doc/whatsnew/3.3.rst:1637 +#: ../Doc/whatsnew/3.3.rst:1638 msgid "" "The stat family of functions (:func:`~os.stat`, :func:`~os.fstat`, and :func:" "`~os.lstat`) now support reading a file's timestamps with nanosecond " @@ -3133,7 +3149,7 @@ msgstr "" "ahora puede escribir marcas de tiempo de archivos con precisión de " "nanosegundos. (Contribución de Larry Hastings en :issue:`14127`.)" -#: ../Doc/whatsnew/3.3.rst:1643 +#: ../Doc/whatsnew/3.3.rst:1644 msgid "" "The new :func:`os.get_terminal_size` function queries the size of the " "terminal attached to a file descriptor. See also :func:`shutil." @@ -3145,7 +3161,7 @@ msgstr "" "get_terminal_size`. (Contribución de Zbigniew Jędrzejewski-Szmek en :issue:" "`13609`. )" -#: ../Doc/whatsnew/3.3.rst:1650 +#: ../Doc/whatsnew/3.3.rst:1651 msgid "" "New functions to support Linux extended attributes (:issue:`12720`): :func:" "`~os.getxattr`, :func:`~os.listxattr`, :func:`~os.removexattr`, :func:`~os." @@ -3155,7 +3171,7 @@ msgstr "" "`12720`): :func:`~os.getxattr`, :func:`~os.listxattr`, :func:`~os." "removexattr`, :func:`~os.setxattr`." -#: ../Doc/whatsnew/3.3.rst:1654 +#: ../Doc/whatsnew/3.3.rst:1655 msgid "" "New interface to the scheduler. These functions control how a process is " "allocated CPU time by the operating system. New functions: :func:`~os." @@ -3173,11 +3189,11 @@ msgstr "" "sched_setaffinity`, :func:`~os.sched_setparam`, :func:`~os." "sched_setscheduler`, :func:`~os.sched_yield`," -#: ../Doc/whatsnew/3.3.rst:1663 +#: ../Doc/whatsnew/3.3.rst:1664 msgid "New functions to control the file system:" msgstr "Nuevas funciones para controlar el sistema de archivos:" -#: ../Doc/whatsnew/3.3.rst:1665 +#: ../Doc/whatsnew/3.3.rst:1666 msgid "" ":func:`~os.posix_fadvise`: Announces an intention to access data in a " "specific pattern thus allowing the kernel to make optimizations." @@ -3185,7 +3201,7 @@ msgstr "" ":func:`~os.posix_fadvise`: Anuncia una intención de acceder a los datos en " "un patrón específico, permitiendo al kernel hacer optimizaciones." -#: ../Doc/whatsnew/3.3.rst:1667 +#: ../Doc/whatsnew/3.3.rst:1668 msgid "" ":func:`~os.posix_fallocate`: Ensures that enough disk space is allocated for " "a file." @@ -3193,15 +3209,15 @@ msgstr "" ":func:`~os.posix_fallocate`: Garantiza que se asigne el espacio suficiente a " "un archivo." -#: ../Doc/whatsnew/3.3.rst:1669 +#: ../Doc/whatsnew/3.3.rst:1670 msgid ":func:`~os.sync`: Force write of everything to disk." msgstr ":func:`~os.sync`: Fuerza la escritura de cualquier cosa en el disco." -#: ../Doc/whatsnew/3.3.rst:1671 +#: ../Doc/whatsnew/3.3.rst:1672 msgid "Additional new posix functions:" msgstr "Nuevas funciones posix adicionales:" -#: ../Doc/whatsnew/3.3.rst:1673 +#: ../Doc/whatsnew/3.3.rst:1674 msgid "" ":func:`~os.lockf`: Apply, test or remove a POSIX lock on an open file " "descriptor." @@ -3209,7 +3225,7 @@ msgstr "" ":func:`~os.lockf`: Aplicar, probar o eliminar un bloqueo POSIX en un " "descriptor de archivo abierto." -#: ../Doc/whatsnew/3.3.rst:1674 +#: ../Doc/whatsnew/3.3.rst:1675 msgid "" ":func:`~os.pread`: Read from a file descriptor at an offset, the file offset " "remains unchanged." @@ -3217,7 +3233,7 @@ msgstr "" ":func:`~os.pread`: Leer desde un descriptor de archivo en un desplazamiento, " "el desplazamiento del archivo permanece sin cambios." -#: ../Doc/whatsnew/3.3.rst:1676 +#: ../Doc/whatsnew/3.3.rst:1677 msgid "" ":func:`~os.pwrite`: Write to a file descriptor from an offset, leaving the " "file offset unchanged." @@ -3225,7 +3241,7 @@ msgstr "" ":func:`~ os.pwrite`: Escribe en un descriptor de archivo desde un " "desplazamiento, dejando el desplazamiento del archivo sin cambios." -#: ../Doc/whatsnew/3.3.rst:1678 +#: ../Doc/whatsnew/3.3.rst:1679 msgid "" ":func:`~os.readv`: Read from a file descriptor into a number of writable " "buffers." @@ -3233,7 +3249,7 @@ msgstr "" ":func:`~os.readv`: Leer desde el descriptor de un archivo en varios búferes " "editables." -#: ../Doc/whatsnew/3.3.rst:1679 +#: ../Doc/whatsnew/3.3.rst:1680 msgid "" ":func:`~os.truncate`: Truncate the file corresponding to *path*, so that it " "is at most *length* bytes in size." @@ -3241,13 +3257,13 @@ msgstr "" ":func:`~os.truncate`: Truncar el archivo correspondiente a *path*, para que " "tenga como máximo *length* *bytes* de tamaño." -#: ../Doc/whatsnew/3.3.rst:1681 +#: ../Doc/whatsnew/3.3.rst:1682 msgid "" ":func:`~os.waitid`: Wait for the completion of one or more child processes." msgstr "" ":func:`~os.waitid`: Espera que se completen uno o más procesos secundarios." -#: ../Doc/whatsnew/3.3.rst:1682 +#: ../Doc/whatsnew/3.3.rst:1683 msgid "" ":func:`~os.writev`: Write the contents of *buffers* to a file descriptor, " "where *buffers* is an arbitrary sequence of buffers." @@ -3255,7 +3271,7 @@ msgstr "" ":func:`~os.writev`: Escribir los contenidos de *buffers* a un archivo " "descriptor, donde *buffers* es una secuencia arbitraria de *buffers*." -#: ../Doc/whatsnew/3.3.rst:1684 +#: ../Doc/whatsnew/3.3.rst:1685 msgid "" ":func:`~os.getgrouplist` (:issue:`9344`): Return list of group ids that " "specified user belongs to." @@ -3263,7 +3279,7 @@ msgstr "" ":func:`~os.getgrouplist` (:issue:`9344`): Retorna una lista de ids de grupo " "al que pertenece el usuario especificado." -#: ../Doc/whatsnew/3.3.rst:1687 +#: ../Doc/whatsnew/3.3.rst:1688 msgid "" ":func:`~os.times` and :func:`~os.uname`: Return type changed from a tuple to " "a tuple-like object with named attributes." @@ -3271,7 +3287,7 @@ msgstr "" ":func:`~os.times` and :func:`~os.uname`: El tipo de retorno cambió de tupla " "a un objeto tipo tupla con atributos con nombre." -#: ../Doc/whatsnew/3.3.rst:1690 +#: ../Doc/whatsnew/3.3.rst:1691 msgid "" "Some platforms now support additional constants for the :func:`~os.lseek` " "function, such as ``os.SEEK_HOLE`` and ``os.SEEK_DATA``." @@ -3279,12 +3295,13 @@ msgstr "" "Varias plataformas admiten constantes adicionales para la función :func:`~os." "lseek`, tal como ``os.SEEK_HOLE`` y ``os.SEEK_DATA``." -#: ../Doc/whatsnew/3.3.rst:1693 +#: ../Doc/whatsnew/3.3.rst:1694 +#, fuzzy msgid "" -"New constants :data:`~os.RTLD_LAZY`, :data:`~os.RTLD_NOW`, :data:`~os." -"RTLD_GLOBAL`, :data:`~os.RTLD_LOCAL`, :data:`~os.RTLD_NODELETE`, :data:`~os." -"RTLD_NOLOAD`, and :data:`~os.RTLD_DEEPBIND` are available on platforms that " -"support them. These are for use with the :func:`sys.setdlopenflags` " +"New constants :const:`~os.RTLD_LAZY`, :const:`~os.RTLD_NOW`, :const:`~os." +"RTLD_GLOBAL`, :const:`~os.RTLD_LOCAL`, :const:`~os.RTLD_NODELETE`, :const:" +"`~os.RTLD_NOLOAD`, and :const:`~os.RTLD_DEEPBIND` are available on platforms " +"that support them. These are for use with the :func:`sys.setdlopenflags` " "function, and supersede the similar constants defined in :mod:`ctypes` and :" "mod:`DLFCN`. (Contributed by Victor Stinner in :issue:`13226`.)" msgstr "" @@ -3296,7 +3313,7 @@ msgstr "" "`ctypes` and :mod:`DLFCN`. (Contribución de Victor Stinner en :issue:" "`13226`.)" -#: ../Doc/whatsnew/3.3.rst:1701 +#: ../Doc/whatsnew/3.3.rst:1702 msgid "" ":func:`os.symlink` now accepts (and ignores) the ``target_is_directory`` " "keyword argument on non-Windows platforms, to ease cross-platform support." @@ -3305,11 +3322,11 @@ msgstr "" "``target_is_directory`` en plataformas diferentes a windows, para facilitar " "el soporte multiplataforma." -#: ../Doc/whatsnew/3.3.rst:1706 +#: ../Doc/whatsnew/3.3.rst:1707 msgid "pdb" msgstr "pdb" -#: ../Doc/whatsnew/3.3.rst:1708 +#: ../Doc/whatsnew/3.3.rst:1709 msgid "" "Tab-completion is now available not only for command names, but also their " "arguments. For example, for the ``break`` command, function and file names " @@ -3319,15 +3336,15 @@ msgstr "" "nombres de los comandos, sino también para sus argumentos. Por ejemplo, para " "el comando ``break``, se completan las funciones y los nombres de archivo." -#: ../Doc/whatsnew/3.3.rst:1712 +#: ../Doc/whatsnew/3.3.rst:1713 msgid "(Contributed by Georg Brandl in :issue:`14210`)" msgstr "(Contribución de Georg Brandl en :issue:`14210`)" -#: ../Doc/whatsnew/3.3.rst:1716 +#: ../Doc/whatsnew/3.3.rst:1717 msgid "pickle" msgstr "pickle" -#: ../Doc/whatsnew/3.3.rst:1718 +#: ../Doc/whatsnew/3.3.rst:1719 msgid "" ":class:`pickle.Pickler` objects now have an optional :attr:`~pickle.Pickler." "dispatch_table` attribute allowing per-pickler reduction functions to be set." @@ -3336,15 +3353,15 @@ msgstr "" "`~pickle.Pickler.dispatch_table` que permite establecer funciones de " "reducción por recolector." -#: ../Doc/whatsnew/3.3.rst:1722 +#: ../Doc/whatsnew/3.3.rst:1723 msgid "(Contributed by Richard Oudkerk in :issue:`14166`.)" msgstr "(Contribución de Richard Oudkerk in :issue:`14166`.)" -#: ../Doc/whatsnew/3.3.rst:1726 +#: ../Doc/whatsnew/3.3.rst:1727 msgid "pydoc" msgstr "pydoc" -#: ../Doc/whatsnew/3.3.rst:1728 +#: ../Doc/whatsnew/3.3.rst:1729 msgid "" "The Tk GUI and the :func:`~pydoc.serve` function have been removed from the :" "mod:`pydoc` module: ``pydoc -g`` and :func:`~pydoc.serve` have been " @@ -3354,26 +3371,26 @@ msgstr "" "mod:`pydoc`: ``pydoc -g`` y :func:`~pydoc.serve` han quedado obsoletos en " "Python 3.2." -#: ../Doc/whatsnew/3.3.rst:1734 +#: ../Doc/whatsnew/3.3.rst:1735 msgid "re" msgstr "re" -#: ../Doc/whatsnew/3.3.rst:1736 +#: ../Doc/whatsnew/3.3.rst:1737 msgid "" ":class:`str` regular expressions now support ``\\u`` and ``\\U`` escapes." msgstr "" "Las expresiones regulares de la clase :class:`str` ahora admiten escapes de " "``\\u`` and ``\\U`` ." -#: ../Doc/whatsnew/3.3.rst:1738 +#: ../Doc/whatsnew/3.3.rst:1739 msgid "(Contributed by Serhiy Storchaka in :issue:`3665`.)" msgstr "(Contribución de Serhiy Storchaka en :issue:`3665`.)" -#: ../Doc/whatsnew/3.3.rst:1742 +#: ../Doc/whatsnew/3.3.rst:1743 msgid "sched" msgstr "sched" -#: ../Doc/whatsnew/3.3.rst:1744 +#: ../Doc/whatsnew/3.3.rst:1745 msgid "" ":meth:`~sched.scheduler.run` now accepts a *blocking* parameter which when " "set to false makes the method execute the scheduled events due to expire " @@ -3388,7 +3405,7 @@ msgstr "" "scheduler` en aplicaciones sin bloqueo. (Contribución de Giampaolo Rodolà " "in :issue:`13449`.)" -#: ../Doc/whatsnew/3.3.rst:1750 +#: ../Doc/whatsnew/3.3.rst:1751 msgid "" ":class:`~sched.scheduler` class can now be safely used in multi-threaded " "environments. (Contributed by Josiah Carlson and Giampaolo Rodolà in :issue:" @@ -3398,7 +3415,7 @@ msgstr "" "en entornos multiproceso. (Contribución por Josiah Carlson y Giampaolo " "Rodolà en :issue:`8684`.)" -#: ../Doc/whatsnew/3.3.rst:1754 +#: ../Doc/whatsnew/3.3.rst:1755 msgid "" "*timefunc* and *delayfunct* parameters of :class:`~sched.scheduler` class " "constructor are now optional and defaults to :func:`time.time` and :func:" @@ -3409,7 +3426,7 @@ msgstr "" "func:`time.time` y :func:`time.sleep` respectivamente. (Contribución de " "Chris Clark en :issue:`13245`.)" -#: ../Doc/whatsnew/3.3.rst:1759 +#: ../Doc/whatsnew/3.3.rst:1760 msgid "" ":meth:`~sched.scheduler.enter` and :meth:`~sched.scheduler.enterabs` " "*argument* parameter is now optional. (Contributed by Chris Clark in :issue:" @@ -3419,7 +3436,7 @@ msgstr "" "scheduler.enterabs` ahora es opcional. (Contribución de Chris Clark en :" "issue:`13245`.)" -#: ../Doc/whatsnew/3.3.rst:1763 +#: ../Doc/whatsnew/3.3.rst:1764 msgid "" ":meth:`~sched.scheduler.enter` and :meth:`~sched.scheduler.enterabs` now " "accept a *kwargs* parameter. (Contributed by Chris Clark in :issue:`13245`.)" @@ -3428,11 +3445,11 @@ msgstr "" "aceptan un parámetro *kwargs*. (Contribución de Chris Clark en :issue:" "`13245`.)" -#: ../Doc/whatsnew/3.3.rst:1769 +#: ../Doc/whatsnew/3.3.rst:1770 msgid "select" msgstr "select" -#: ../Doc/whatsnew/3.3.rst:1771 +#: ../Doc/whatsnew/3.3.rst:1772 msgid "" "Solaris and derivative platforms have a new class :class:`select.devpoll` " "for high performance asynchronous sockets via :file:`/dev/poll`. " @@ -3442,11 +3459,11 @@ msgstr "" "devpoll` para sockets asincrónicos de alto rendimiento a través de :file:`/" "dev/poll`. (Contribución de Jesús Cea Avión en :issue:`6397`.)" -#: ../Doc/whatsnew/3.3.rst:1777 +#: ../Doc/whatsnew/3.3.rst:1778 msgid "shlex" msgstr "shlex" -#: ../Doc/whatsnew/3.3.rst:1779 +#: ../Doc/whatsnew/3.3.rst:1780 msgid "" "The previously undocumented helper function ``quote`` from the :mod:`pipes` " "modules has been moved to the :mod:`shlex` module and documented. :func:" @@ -3458,15 +3475,15 @@ msgstr "" "`~shlex.quote` escapa correctamente a todos los caracteres de una cadena " "que de otro modo podría tener un significado especial por el shell." -#: ../Doc/whatsnew/3.3.rst:1786 +#: ../Doc/whatsnew/3.3.rst:1787 msgid "shutil" msgstr "shutil" -#: ../Doc/whatsnew/3.3.rst:1788 +#: ../Doc/whatsnew/3.3.rst:1789 msgid "New functions:" msgstr "Nuevas funciones:" -#: ../Doc/whatsnew/3.3.rst:1790 +#: ../Doc/whatsnew/3.3.rst:1791 msgid "" ":func:`~shutil.disk_usage`: provides total, used and free disk space " "statistics. (Contributed by Giampaolo Rodolà in :issue:`12442`.)" @@ -3475,7 +3492,7 @@ msgstr "" "usado, y libre en el disco. (Contribución de Giampaolo Rodolà in :issue:" "`12442`.)" -#: ../Doc/whatsnew/3.3.rst:1792 +#: ../Doc/whatsnew/3.3.rst:1793 msgid "" ":func:`~shutil.chown`: allows one to change user and/or group of the given " "path also specifying the user/group names and not only their numeric ids. " @@ -3485,7 +3502,7 @@ msgstr "" "dadas, además de especificar los nombres de usuario/grupo, y no solos sus " "id's numèricos. (Contribución de Sandro Tosi in :issue:`12191`.)" -#: ../Doc/whatsnew/3.3.rst:1795 +#: ../Doc/whatsnew/3.3.rst:1796 msgid "" ":func:`shutil.get_terminal_size`: returns the size of the terminal window to " "which the interpreter is attached. (Contributed by Zbigniew Jędrzejewski-" @@ -3495,7 +3512,7 @@ msgstr "" "terminar a la cual se adjunta el intérprete. (Contribución de Zbigniew " "Jędrzejewski-Szmek in :issue:`13609`. )" -#: ../Doc/whatsnew/3.3.rst:1799 +#: ../Doc/whatsnew/3.3.rst:1800 msgid "" ":func:`~shutil.copy2` and :func:`~shutil.copystat` now preserve file " "timestamps with nanosecond precision on platforms that support it. They also " @@ -3507,7 +3524,7 @@ msgstr "" "que lo soporten. También conservan los \"atributos extendidos\" de archivo " "en Linux (Contribución de Larry Hastings en :issue:`14127` y :issue:`15238`.)" -#: ../Doc/whatsnew/3.3.rst:1804 +#: ../Doc/whatsnew/3.3.rst:1805 msgid "" "Several functions now take an optional ``symlinks`` argument: when that " "parameter is true, symlinks aren't dereferenced and the operation instead " @@ -3519,7 +3536,7 @@ msgstr "" "operación actúa en el enlace simbólico en sí. (o crea uno, si es relevante). " "(Contribución de Hynek Schlawack in :issue:`12715`.)" -#: ../Doc/whatsnew/3.3.rst:1809 +#: ../Doc/whatsnew/3.3.rst:1810 msgid "" "When copying files to a different file system, :func:`~shutil.move` now " "handles symlinks the way the posix ``mv`` command does, recreating the " @@ -3534,7 +3551,7 @@ msgstr "" "func:`~shutil.move` ahora también retorna el argumento ``dst`` como " "resultado." -#: ../Doc/whatsnew/3.3.rst:1815 +#: ../Doc/whatsnew/3.3.rst:1816 msgid "" ":func:`~shutil.rmtree` is now resistant to symlink attacks on platforms " "which support the new ``dir_fd`` parameter in :func:`os.open` and :func:`os." @@ -3546,15 +3563,15 @@ msgstr "" "`os.open` y :func:`os.unlink`. (Contribución de Martin von Löwis and Hynek " "Schlawack in :issue:`4489`.)" -#: ../Doc/whatsnew/3.3.rst:1822 +#: ../Doc/whatsnew/3.3.rst:1823 msgid "signal" msgstr "signal" -#: ../Doc/whatsnew/3.3.rst:1824 +#: ../Doc/whatsnew/3.3.rst:1825 msgid "The :mod:`signal` module has new functions:" msgstr "El módulo :mod:`signal` tiene nuevas funciones:" -#: ../Doc/whatsnew/3.3.rst:1826 +#: ../Doc/whatsnew/3.3.rst:1827 msgid "" ":func:`~signal.pthread_sigmask`: fetch and/or change the signal mask of the " "calling thread (Contributed by Jean-Paul Calderone in :issue:`8407`);" @@ -3562,19 +3579,19 @@ msgstr "" ":func:`~signal.pthread_sigmask`: busca y/o cambia la máscara de señal del " "hilo de llamada (Contribución de Jean-Paul Calderone in :issue:`8407`);" -#: ../Doc/whatsnew/3.3.rst:1828 +#: ../Doc/whatsnew/3.3.rst:1829 msgid ":func:`~signal.pthread_kill`: send a signal to a thread;" msgstr ":func:`~signal.pthread_kill`: Envía una señal a un hilo;" -#: ../Doc/whatsnew/3.3.rst:1829 +#: ../Doc/whatsnew/3.3.rst:1830 msgid ":func:`~signal.sigpending`: examine pending functions;" msgstr ":func:`~signal.sigpending`: Examina funciones pendientes;" -#: ../Doc/whatsnew/3.3.rst:1830 +#: ../Doc/whatsnew/3.3.rst:1831 msgid ":func:`~signal.sigwait`: wait a signal;" msgstr ":func:`~signal.sigwait`: Espera una señal;" -#: ../Doc/whatsnew/3.3.rst:1831 +#: ../Doc/whatsnew/3.3.rst:1832 msgid "" ":func:`~signal.sigwaitinfo`: wait for a signal, returning detailed " "information about it;" @@ -3582,7 +3599,7 @@ msgstr "" ":func:`~signal.sigwaitinfo`: Espera una señal, retornando información " "detallada sobre ella;" -#: ../Doc/whatsnew/3.3.rst:1833 +#: ../Doc/whatsnew/3.3.rst:1834 msgid "" ":func:`~signal.sigtimedwait`: like :func:`~signal.sigwaitinfo` but with a " "timeout." @@ -3590,7 +3607,7 @@ msgstr "" ":func:`~signal.sigtimedwait`: Es similar a :func:`~signal.sigwaitinfo` pero " "con un tiempo de espera." -#: ../Doc/whatsnew/3.3.rst:1836 +#: ../Doc/whatsnew/3.3.rst:1837 msgid "" "The signal handler writes the signal number as a single byte instead of a " "nul byte into the wakeup file descriptor. So it is possible to wait more " @@ -3601,7 +3618,7 @@ msgstr "" "tanto, es posible esperar más de una señal y saber cuales señales han sido " "lanzadas." -#: ../Doc/whatsnew/3.3.rst:1840 +#: ../Doc/whatsnew/3.3.rst:1841 msgid "" ":func:`signal.signal` and :func:`signal.siginterrupt` raise an OSError, " "instead of a RuntimeError: OSError has an errno attribute." @@ -3609,11 +3626,11 @@ msgstr "" ":func:`signal.signal` y :func:`signal.siginterrupt` lanzan un OSError, en " "vez de un RuntimeError: OSError no tiene atributo errno." -#: ../Doc/whatsnew/3.3.rst:1845 +#: ../Doc/whatsnew/3.3.rst:1846 msgid "smtpd" msgstr "smtpd" -#: ../Doc/whatsnew/3.3.rst:1847 +#: ../Doc/whatsnew/3.3.rst:1848 msgid "" "The :mod:`smtpd` module now supports :rfc:`5321` (extended SMTP) and :rfc:" "`1870` (size extension). Per the standard, these extensions are enabled if " @@ -3623,7 +3640,7 @@ msgstr "" "`1870` (Ampliación de tamaño). Por lo general, éstas extensiones están " "habilitadas si y solo si el cliente inicia la sesión con un comando ``EHLO``." -#: ../Doc/whatsnew/3.3.rst:1851 +#: ../Doc/whatsnew/3.3.rst:1852 msgid "" "(Initial ``ELHO`` support by Alberto Trevino. Size extension by Juhana " "Jauhiainen. Substantial additional work on the patch contributed by Michele " @@ -3633,11 +3650,11 @@ msgstr "" "Juhana Jauhiainen. Trabajo adicional sustancial en la revisión aportada por " "Michele Orrù y Dan Boswell. :issue:`8739`)" -#: ../Doc/whatsnew/3.3.rst:1857 +#: ../Doc/whatsnew/3.3.rst:1858 msgid "smtplib" msgstr "smtplib" -#: ../Doc/whatsnew/3.3.rst:1859 +#: ../Doc/whatsnew/3.3.rst:1860 msgid "" "The :class:`~smtplib.SMTP`, :class:`~smtplib.SMTP_SSL`, and :class:`~smtplib." "LMTP` classes now accept a ``source_address`` keyword argument to specify " @@ -3651,7 +3668,7 @@ msgstr "" "dirección de origen en la llamada de enlace al crear el socket saliente. " "(Contribución de Paulo Scardine en :issue:`11281`.)" -#: ../Doc/whatsnew/3.3.rst:1865 +#: ../Doc/whatsnew/3.3.rst:1866 msgid "" ":class:`~smtplib.SMTP` now supports the context management protocol, " "allowing an ``SMTP`` instance to be used in a ``with`` statement. " @@ -3661,7 +3678,7 @@ msgstr "" "contexto, permitiendo usar a una instancia ``SMTP`` en una declaración " "``with``. (Contribución de Giampaolo Rodolà en :issue:`11289`.)" -#: ../Doc/whatsnew/3.3.rst:1869 +#: ../Doc/whatsnew/3.3.rst:1870 msgid "" "The :class:`~smtplib.SMTP_SSL` constructor and the :meth:`~smtplib.SMTP." "starttls` method now accept an SSLContext parameter to control parameters of " @@ -3672,11 +3689,11 @@ msgstr "" "parámetros del canal seguro. (Contribución por Kasun Herath en :issue:" "`8809`.)" -#: ../Doc/whatsnew/3.3.rst:1875 +#: ../Doc/whatsnew/3.3.rst:1876 msgid "socket" msgstr "socket" -#: ../Doc/whatsnew/3.3.rst:1877 +#: ../Doc/whatsnew/3.3.rst:1878 msgid "" "The :class:`~socket.socket` class now exposes additional methods to process " "ancillary data when supported by the underlying platform:" @@ -3685,19 +3702,19 @@ msgstr "" "procesar datos auxiliares cuando sean compatibles con la plataforma " "subyacente:" -#: ../Doc/whatsnew/3.3.rst:1880 +#: ../Doc/whatsnew/3.3.rst:1881 msgid ":func:`~socket.socket.sendmsg`" msgstr ":func:`~socket.socket.sendmsg`" -#: ../Doc/whatsnew/3.3.rst:1881 +#: ../Doc/whatsnew/3.3.rst:1882 msgid ":func:`~socket.socket.recvmsg`" msgstr ":func:`~socket.socket.recvmsg`" -#: ../Doc/whatsnew/3.3.rst:1882 +#: ../Doc/whatsnew/3.3.rst:1883 msgid ":func:`~socket.socket.recvmsg_into`" msgstr ":func:`~socket.socket.recvmsg_into`" -#: ../Doc/whatsnew/3.3.rst:1884 +#: ../Doc/whatsnew/3.3.rst:1885 msgid "" "(Contributed by David Watson in :issue:`6560`, based on an earlier patch by " "Heiko Wundram)" @@ -3705,7 +3722,7 @@ msgstr "" "(Contribución de David Watson en :issue:`6560`, basado en una revisión " "anterior de Heiko Wundram)" -#: ../Doc/whatsnew/3.3.rst:1887 +#: ../Doc/whatsnew/3.3.rst:1888 msgid "" "The :class:`~socket.socket` class now supports the PF_CAN protocol family " "(https://en.wikipedia.org/wiki/Socketcan), on Linux (https://lwn.net/" @@ -3715,7 +3732,7 @@ msgstr "" "PF_CAN (https://en.wikipedia.org/wiki/Socketcan), en Linux (https://lwn.net/" "Articles/253425)." -#: ../Doc/whatsnew/3.3.rst:1891 +#: ../Doc/whatsnew/3.3.rst:1892 msgid "" "(Contributed by Matthias Fuchs, updated by Tiago Gonçalves in :issue:" "`10141`.)" @@ -3723,17 +3740,19 @@ msgstr "" "(Contribución de Matthias Fuchs, actualizado por Tiago Gonçalves en :issue:" "`10141`.)" -#: ../Doc/whatsnew/3.3.rst:1893 +#: ../Doc/whatsnew/3.3.rst:1894 +#, fuzzy msgid "" "The :class:`~socket.socket` class now supports the PF_RDS protocol family " -"(https://en.wikipedia.org/wiki/Reliable_Datagram_Sockets and https://oss." -"oracle.com/projects/rds/)." +"(https://en.wikipedia.org/wiki/Reliable_Datagram_Sockets and `https://oss." +"oracle.com/projects/rds `__)." msgstr "" "La clase :class:`~socket.socket` ahora admite la familia del protocolo " "PF_RDS (https://en.wikipedia.org/wiki/Reliable_Datagram_Sockets and https://" "oss.oracle.com/projects/rds/)." -#: ../Doc/whatsnew/3.3.rst:1897 +#: ../Doc/whatsnew/3.3.rst:1898 msgid "" "The :class:`~socket.socket` class now supports the ``PF_SYSTEM`` protocol " "family on OS X. (Contributed by Michael Goderbauer in :issue:`13777`.)" @@ -3742,7 +3761,7 @@ msgstr "" "``PF_SYSTEM`` en OS X. (Contribución de Michael Goderbauer en :issue:" "`13777`.)" -#: ../Doc/whatsnew/3.3.rst:1900 +#: ../Doc/whatsnew/3.3.rst:1901 msgid "" "New function :func:`~socket.sethostname` allows the hostname to be set on " "Unix systems if the calling process has sufficient privileges. (Contributed " @@ -3752,11 +3771,11 @@ msgstr "" "host en sistemas Unix si el proceso de llamada tiene suficientes " "privilegios. (Aportado por Ross Lagerwall en :issue:`10866`.)" -#: ../Doc/whatsnew/3.3.rst:1906 +#: ../Doc/whatsnew/3.3.rst:1907 msgid "socketserver" msgstr "socketserver" -#: ../Doc/whatsnew/3.3.rst:1908 +#: ../Doc/whatsnew/3.3.rst:1909 msgid "" ":class:`~socketserver.BaseServer` now has an overridable method :meth:" "`~socketserver.BaseServer.service_actions` that is called by the :meth:" @@ -3770,11 +3789,11 @@ msgstr "" "class:`~socketserver.ForkingMixIn` ahora usa ésto para limpiar procesos " "secundarios zombies. (Contribución de Justin Warkentin en :issue:`11109`.)" -#: ../Doc/whatsnew/3.3.rst:1916 +#: ../Doc/whatsnew/3.3.rst:1917 msgid "sqlite3" msgstr "sqlite3" -#: ../Doc/whatsnew/3.3.rst:1918 +#: ../Doc/whatsnew/3.3.rst:1919 msgid "" "New :class:`sqlite3.Connection` method :meth:`~sqlite3.Connection." "set_trace_callback` can be used to capture a trace of all sql commands " @@ -3785,15 +3804,15 @@ msgstr "" "comandos sql procesados por sqlite. (Contribución de Torsten Landschoff en :" "issue:`11688`.)" -#: ../Doc/whatsnew/3.3.rst:1925 +#: ../Doc/whatsnew/3.3.rst:1926 msgid "ssl" msgstr "ssl" -#: ../Doc/whatsnew/3.3.rst:1927 +#: ../Doc/whatsnew/3.3.rst:1928 msgid "The :mod:`ssl` module has two new random generation functions:" msgstr "El módulo :mod:`ssl` tiene dos funciones de generación aleatoria:" -#: ../Doc/whatsnew/3.3.rst:1929 +#: ../Doc/whatsnew/3.3.rst:1930 msgid "" ":func:`~ssl.RAND_bytes`: generate cryptographically strong pseudo-random " "bytes." @@ -3801,15 +3820,15 @@ msgstr "" ":func:`~ssl.RAND_bytes`: genera bytes pseudo-aleatorios criptográficamente " "fuertes." -#: ../Doc/whatsnew/3.3.rst:1931 +#: ../Doc/whatsnew/3.3.rst:1932 msgid ":func:`~ssl.RAND_pseudo_bytes`: generate pseudo-random bytes." msgstr ":func:`~ssl.RAND_pseudo_bytes`: genera bytes pseudoaleatorios." -#: ../Doc/whatsnew/3.3.rst:1933 +#: ../Doc/whatsnew/3.3.rst:1934 msgid "(Contributed by Victor Stinner in :issue:`12049`.)" msgstr "(Contribución de Victor Stinner en :issue:`12049`.)" -#: ../Doc/whatsnew/3.3.rst:1935 +#: ../Doc/whatsnew/3.3.rst:1936 msgid "" "The :mod:`ssl` module now exposes a finer-grained exception hierarchy in " "order to make it easier to inspect the various kinds of errors. (Contributed " @@ -3819,7 +3838,7 @@ msgstr "" "para facilitar la inspección de varias clases de errores. (Contribución de " "Antoine Pitrou en :issue:`11183`.)" -#: ../Doc/whatsnew/3.3.rst:1939 +#: ../Doc/whatsnew/3.3.rst:1940 msgid "" ":meth:`~ssl.SSLContext.load_cert_chain` now accepts a *password* argument to " "be used if the private key is encrypted. (Contributed by Adam Simpkins in :" @@ -3829,7 +3848,7 @@ msgstr "" "que será usado si la clave privada es encriptada. (Contribución de Adam " "Simpkins en :issue:`12803`.)" -#: ../Doc/whatsnew/3.3.rst:1943 +#: ../Doc/whatsnew/3.3.rst:1944 msgid "" "Diffie-Hellman key exchange, both regular and Elliptic Curve-based, is now " "supported through the :meth:`~ssl.SSLContext.load_dh_params` and :meth:`~ssl." @@ -3841,7 +3860,7 @@ msgstr "" "load_dh_params` y :meth:`~ssl.SSLContext.set_ecdh_curve`. (Contribución de " "Antoine Pitrou en :issue:`13626` y :issue:`13627`.)" -#: ../Doc/whatsnew/3.3.rst:1948 +#: ../Doc/whatsnew/3.3.rst:1949 msgid "" "SSL sockets have a new :meth:`~ssl.SSLSocket.get_channel_binding` method " "allowing the implementation of certain authentication mechanisms such as " @@ -3852,10 +3871,11 @@ msgstr "" "autenticación tales como SCRAM-SHA-1-PLUS. (Contribución por Jacek Konieczny " "en :issue:`12551`.)" -#: ../Doc/whatsnew/3.3.rst:1952 +#: ../Doc/whatsnew/3.3.rst:1953 +#, fuzzy msgid "" "You can query the SSL compression algorithm used by an SSL socket, thanks to " -"its new :meth:`~ssl.SSLSocket.compression` method. The new attribute :attr:" +"its new :meth:`~ssl.SSLSocket.compression` method. The new attribute :const:" "`~ssl.OP_NO_COMPRESSION` can be used to disable compression. (Contributed by " "Antoine Pitrou in :issue:`13634`.)" msgstr "" @@ -3865,7 +3885,7 @@ msgstr "" "compresión. (Contribución de Antoine Pitrou en :issue:`13634`.)" # traduzco next protocol negotution? 3860 -#: ../Doc/whatsnew/3.3.rst:1957 +#: ../Doc/whatsnew/3.3.rst:1958 msgid "" "Support has been added for the Next Protocol Negotiation extension using " "the :meth:`ssl.SSLContext.set_npn_protocols` method. (Contributed by Colin " @@ -3875,7 +3895,7 @@ msgstr "" "el método :meth:`ssl.SSLContext.set_npn_protocols`. (Contribución por Colin " "Marc en :issue:`14204`.)" -#: ../Doc/whatsnew/3.3.rst:1961 +#: ../Doc/whatsnew/3.3.rst:1962 msgid "" "SSL errors can now be introspected more easily thanks to :attr:`~ssl." "SSLError.library` and :attr:`~ssl.SSLError.reason` attributes. (Contributed " @@ -3885,7 +3905,7 @@ msgstr "" "atributos :attr:`~ssl.SSLError.library` y :attr:`~ssl.SSLError.reason`. " "(Contribución de Antoine Pitrou en :issue:`14837`.)" -#: ../Doc/whatsnew/3.3.rst:1965 +#: ../Doc/whatsnew/3.3.rst:1966 msgid "" "The :func:`~ssl.get_server_certificate` function now supports IPv6. " "(Contributed by Charles-François Natali in :issue:`11811`.)" @@ -3893,9 +3913,10 @@ msgstr "" "La función :func:`~ssl.get_server_certificate` ahora admite IPv6. " "(Contribución por Charles-François Natali en :issue:`11811`.)" -#: ../Doc/whatsnew/3.3.rst:1968 +#: ../Doc/whatsnew/3.3.rst:1969 +#, fuzzy msgid "" -"New attribute :attr:`~ssl.OP_CIPHER_SERVER_PREFERENCE` allows setting SSLv3 " +"New attribute :const:`~ssl.OP_CIPHER_SERVER_PREFERENCE` allows setting SSLv3 " "server sockets to use the server's cipher ordering preference rather than " "the client's (:issue:`13635`)." msgstr "" @@ -3904,11 +3925,11 @@ msgstr "" "ordenación de cifrado del servidor en lugar de la del cliente. (:issue:" "`13635`)." -#: ../Doc/whatsnew/3.3.rst:1974 +#: ../Doc/whatsnew/3.3.rst:1975 msgid "stat" msgstr "stat" -#: ../Doc/whatsnew/3.3.rst:1976 +#: ../Doc/whatsnew/3.3.rst:1977 msgid "" "The undocumented tarfile.filemode function has been moved to :func:`stat." "filemode`. It can be used to convert a file's mode to a string of the form '-" @@ -3918,29 +3939,30 @@ msgstr "" "filemode`. Este puede ser usado para convertir el modo de un archivo a una " "cadena de la forma '-rwxrwxrwx'." -#: ../Doc/whatsnew/3.3.rst:1980 +#: ../Doc/whatsnew/3.3.rst:1981 msgid "(Contributed by Giampaolo Rodolà in :issue:`14807`.)" msgstr "(Contribución de Giampaolo Rodolà in :issue:`14807`.)" -#: ../Doc/whatsnew/3.3.rst:1984 +#: ../Doc/whatsnew/3.3.rst:1985 msgid "struct" msgstr "struct" -#: ../Doc/whatsnew/3.3.rst:1986 +#: ../Doc/whatsnew/3.3.rst:1987 +#, fuzzy msgid "" -"The :mod:`struct` module now supports ``ssize_t`` and ``size_t`` via the new " -"codes ``n`` and ``N``, respectively. (Contributed by Antoine Pitrou in :" -"issue:`3163`.)" +"The :mod:`struct` module now supports :c:type:`ssize_t` and :c:type:`size_t` " +"via the new codes ``n`` and ``N``, respectively. (Contributed by Antoine " +"Pitrou in :issue:`3163`.)" msgstr "" "El módulo :mod:`struct` ahora admite ``ssize_t`` y ``size_t`` a través de " "los nuevos códigos ``n`` and ``N``, respectivamente. (Contribución de " "Antoine Pitrou en :issue:`3163`.)" -#: ../Doc/whatsnew/3.3.rst:1992 +#: ../Doc/whatsnew/3.3.rst:1993 msgid "subprocess" msgstr "subprocess" -#: ../Doc/whatsnew/3.3.rst:1994 +#: ../Doc/whatsnew/3.3.rst:1995 msgid "" "Command strings can now be bytes objects on posix platforms. (Contributed " "by Victor Stinner in :issue:`8513`.)" @@ -3948,9 +3970,10 @@ msgstr "" "Las cadenas de comandos ahora pueden ser objetos de *bytes* en las " "plataformas posix. (Contribución de Victor Stinner in :issue:`8513`.)" -#: ../Doc/whatsnew/3.3.rst:1997 +#: ../Doc/whatsnew/3.3.rst:1998 +#, fuzzy msgid "" -"A new constant :data:`~subprocess.DEVNULL` allows suppressing output in a " +"A new constant :const:`~subprocess.DEVNULL` allows suppressing output in a " "platform-independent fashion. (Contributed by Ross Lagerwall in :issue:" "`5870`.)" msgstr "" @@ -3958,11 +3981,11 @@ msgstr "" "de forma independiente de la plataforma. (Contribución de Ross Lagerwall en :" "issue:`5870`.)" -#: ../Doc/whatsnew/3.3.rst:2003 +#: ../Doc/whatsnew/3.3.rst:2004 msgid "sys" msgstr "sys" -#: ../Doc/whatsnew/3.3.rst:2005 +#: ../Doc/whatsnew/3.3.rst:2006 msgid "" "The :mod:`sys` module has a new :data:`~sys.thread_info` :term:`named tuple` " "holding information about the thread implementation (:issue:`11223`)." @@ -3971,11 +3994,11 @@ msgstr "" "tuple` que almacena información sobre la implementación del hilo (:issue:" "`11223`)." -#: ../Doc/whatsnew/3.3.rst:2011 +#: ../Doc/whatsnew/3.3.rst:2012 msgid "tarfile" msgstr "tarfile" -#: ../Doc/whatsnew/3.3.rst:2013 +#: ../Doc/whatsnew/3.3.rst:2014 msgid "" ":mod:`tarfile` now supports ``lzma`` encoding via the :mod:`lzma` module. " "(Contributed by Lars Gustäbel in :issue:`5689`.)" @@ -3983,11 +4006,11 @@ msgstr "" ":mod:`tarfile` ahora admite la codificación ``lzma`` a través del módulo :" "mod:`lzma`. (Contribución de Lars Gustäbel en :issue:`5689`.)" -#: ../Doc/whatsnew/3.3.rst:2018 +#: ../Doc/whatsnew/3.3.rst:2019 msgid "tempfile" msgstr "tempfile" -#: ../Doc/whatsnew/3.3.rst:2020 +#: ../Doc/whatsnew/3.3.rst:2021 msgid "" ":class:`tempfile.SpooledTemporaryFile`\\'s :meth:`~tempfile." "SpooledTemporaryFile.truncate` method now accepts a ``size`` parameter. " @@ -3997,11 +4020,11 @@ msgstr "" "SpooledTemporaryFile.truncate` ahora acepta un parámetro ``size``. " "(Contribución de Ryan Kelly en :issue:`9957`.)" -#: ../Doc/whatsnew/3.3.rst:2026 +#: ../Doc/whatsnew/3.3.rst:2027 msgid "textwrap" msgstr "textwrap" -#: ../Doc/whatsnew/3.3.rst:2028 +#: ../Doc/whatsnew/3.3.rst:2029 msgid "" "The :mod:`textwrap` module has a new :func:`~textwrap.indent` that makes it " "straightforward to add a common prefix to selected lines in a block of text " @@ -4011,11 +4034,11 @@ msgstr "" "que facilita la adición de un prefijo común para las lineas seleccionadas en " "un bloque de texto (:issue:`13857`)." -#: ../Doc/whatsnew/3.3.rst:2034 +#: ../Doc/whatsnew/3.3.rst:2035 msgid "threading" msgstr "threading" -#: ../Doc/whatsnew/3.3.rst:2036 +#: ../Doc/whatsnew/3.3.rst:2037 msgid "" ":class:`threading.Condition`, :class:`threading.Semaphore`, :class:" "`threading.BoundedSemaphore`, :class:`threading.Event`, and :class:" @@ -4029,7 +4052,7 @@ msgstr "" "retornen una instancia de clase, ahora son clases y pueden ser " "subclasificadas (Contribución de Éric Araujo in :issue:`10968`.)" -#: ../Doc/whatsnew/3.3.rst:2042 +#: ../Doc/whatsnew/3.3.rst:2043 msgid "" "The :class:`threading.Thread` constructor now accepts a ``daemon`` keyword " "argument to override the default behavior of inheriting the ``daemon`` flag " @@ -4040,7 +4063,7 @@ msgstr "" "predeterminado de heredar el valor del indicador ``daemon`` desde el hilo " "principal (:issue:`6064`)." -#: ../Doc/whatsnew/3.3.rst:2046 +#: ../Doc/whatsnew/3.3.rst:2047 msgid "" "The formerly private function ``_thread.get_ident`` is now available as the " "public function :func:`threading.get_ident`. This eliminates several cases " @@ -4054,19 +4077,19 @@ msgstr "" "que usaba ``_thread.get_ident`` debería de igual forma ser cambiado para " "usar la nueva interfaz pública." -#: ../Doc/whatsnew/3.3.rst:2054 +#: ../Doc/whatsnew/3.3.rst:2055 msgid "time" msgstr "time" -#: ../Doc/whatsnew/3.3.rst:2056 +#: ../Doc/whatsnew/3.3.rst:2057 msgid "The :pep:`418` added new functions to the :mod:`time` module:" msgstr "El :pep:`418` agrega nuevas funciones al módulo :mod:`time`:" -#: ../Doc/whatsnew/3.3.rst:2058 +#: ../Doc/whatsnew/3.3.rst:2059 msgid ":func:`~time.get_clock_info`: Get information on a clock." msgstr ":func:`~time.get_clock_info`: Obtiene información en un reloj." -#: ../Doc/whatsnew/3.3.rst:2059 +#: ../Doc/whatsnew/3.3.rst:2060 msgid "" ":func:`~time.monotonic`: Monotonic clock (cannot go backward), not affected " "by system clock updates." @@ -4074,7 +4097,7 @@ msgstr "" ":func:`~time.monotonic`: Reloj monotónico (no se puede retroceder), no se ve " "afectado por la actualización del reloj del sistema." -#: ../Doc/whatsnew/3.3.rst:2061 +#: ../Doc/whatsnew/3.3.rst:2062 msgid "" ":func:`~time.perf_counter`: Performance counter with the highest available " "resolution to measure a short duration." @@ -4082,7 +4105,7 @@ msgstr "" ":func:`~time.perf_counter`: Contador de rendimiento con la más alta " "resolución disponible para medir una corta duración." -#: ../Doc/whatsnew/3.3.rst:2063 +#: ../Doc/whatsnew/3.3.rst:2064 msgid "" ":func:`~time.process_time`: Sum of the system and user CPU time of the " "current process." @@ -4090,21 +4113,22 @@ msgstr "" ":func:`~time.process_time`: Suma del tiempo de CPU del sistema y del usuario " "del proceso actual." -#: ../Doc/whatsnew/3.3.rst:2066 +#: ../Doc/whatsnew/3.3.rst:2067 msgid "Other new functions:" msgstr "Otras nuevas funciones:" -#: ../Doc/whatsnew/3.3.rst:2068 +#: ../Doc/whatsnew/3.3.rst:2069 +#, fuzzy msgid "" ":func:`~time.clock_getres`, :func:`~time.clock_gettime` and :func:`~time." -"clock_settime` functions with ``CLOCK_xxx`` constants. (Contributed by " +"clock_settime` functions with :samp:`CLOCK_{xxx}` constants. (Contributed by " "Victor Stinner in :issue:`10278`.)" msgstr "" "Las funciones :func:`~time.clock_getres`, :func:`~time.clock_gettime` y :" "func:`~time.clock_settime` con constantes ``CLOCK_xxx`` (Contribución de " "Victor Stinner in :issue:`10278`.)" -#: ../Doc/whatsnew/3.3.rst:2072 +#: ../Doc/whatsnew/3.3.rst:2073 msgid "" "To improve cross platform consistency, :func:`~time.sleep` now raises a :exc:" "`ValueError` when passed a negative sleep value. Previously this was an " @@ -4115,11 +4139,11 @@ msgstr "" "Esto era anteriormente un error en posix, pero producía una suspensión " "definitiva en windows." -#: ../Doc/whatsnew/3.3.rst:2078 +#: ../Doc/whatsnew/3.3.rst:2079 msgid "types" msgstr "types" -#: ../Doc/whatsnew/3.3.rst:2080 +#: ../Doc/whatsnew/3.3.rst:2081 msgid "" "Add a new :class:`types.MappingProxyType` class: Read-only proxy of a " "mapping. (:issue:`14386`)" @@ -4127,7 +4151,7 @@ msgstr "" "Adición de una nueva clase :class:`types.MappingProxyType`: Proxy de solo " "lectura de una asignación. (:issue:`14386`)" -#: ../Doc/whatsnew/3.3.rst:2084 +#: ../Doc/whatsnew/3.3.rst:2085 msgid "" "The new functions :func:`types.new_class` and :func:`types.prepare_class` " "provide support for :pep:`3115` compliant dynamic type creation. (:issue:" @@ -4137,11 +4161,11 @@ msgstr "" "proporcionan soporte para la creación de tipos dinámicos compatibles. (:" "issue:`14588`)" -#: ../Doc/whatsnew/3.3.rst:2089 +#: ../Doc/whatsnew/3.3.rst:2090 msgid "unittest" msgstr "unittest" -#: ../Doc/whatsnew/3.3.rst:2091 +#: ../Doc/whatsnew/3.3.rst:2092 msgid "" ":meth:`.assertRaises`, :meth:`.assertRaisesRegex`, :meth:`.assertWarns`, " "and :meth:`.assertWarnsRegex` now accept a keyword argument *msg* when used " @@ -4153,7 +4177,7 @@ msgstr "" "palabra clave *msg* cuando son usados como administradores de contexto. " "(Contribución por Ezio Melotti y Winston Ewert en :issue:`10775`.)" -#: ../Doc/whatsnew/3.3.rst:2096 +#: ../Doc/whatsnew/3.3.rst:2097 msgid "" ":meth:`unittest.TestCase.run` now returns the :class:`~unittest.TestResult` " "object." @@ -4161,11 +4185,11 @@ msgstr "" ":meth:`unittest.TestCase.run` ahora retorna el objeto :class:`~unittest." "TestResult`." -#: ../Doc/whatsnew/3.3.rst:2101 +#: ../Doc/whatsnew/3.3.rst:2102 msgid "urllib" msgstr "urllib" -#: ../Doc/whatsnew/3.3.rst:2103 +#: ../Doc/whatsnew/3.3.rst:2104 msgid "" "The :class:`~urllib.request.Request` class, now accepts a *method* argument " "used by :meth:`~urllib.request.Request.get_method` to determine what HTTP " @@ -4176,15 +4200,15 @@ msgstr "" "método HTTP debería usarse. Por ejemplo, esto enviará una solicitud " "``'HEAD'``::" -#: ../Doc/whatsnew/3.3.rst:2109 +#: ../Doc/whatsnew/3.3.rst:2110 msgid "(:issue:`1673007`)" msgstr "(:issue:`1673007`)" -#: ../Doc/whatsnew/3.3.rst:2113 +#: ../Doc/whatsnew/3.3.rst:2114 msgid "webbrowser" msgstr "webbrowser" -#: ../Doc/whatsnew/3.3.rst:2115 +#: ../Doc/whatsnew/3.3.rst:2116 msgid "" "The :mod:`webbrowser` module supports more \"browsers\": Google Chrome " "(named :program:`chrome`, :program:`chromium`, :program:`chrome-browser` or :" @@ -4202,11 +4226,11 @@ msgstr "" "predeterminado para GNOME3. (El primero agregado por Arnaud Calmettes en :" "issue:`13620`, el segundo por Matthias Klose en :issue:`14493`.)" -#: ../Doc/whatsnew/3.3.rst:2125 +#: ../Doc/whatsnew/3.3.rst:2126 msgid "xml.etree.ElementTree" msgstr "xml.etree.ElementTree" -#: ../Doc/whatsnew/3.3.rst:2127 +#: ../Doc/whatsnew/3.3.rst:2128 msgid "" "The :mod:`xml.etree.ElementTree` module now imports its C accelerator by " "default; there is no longer a need to explicitly import :mod:`xml.etree." @@ -4224,11 +4248,11 @@ msgstr "" "C). La documentación del módulo también se ha mejorado mucho, con ejemplos " "agregados y una referencia más detallada." -#: ../Doc/whatsnew/3.3.rst:2137 +#: ../Doc/whatsnew/3.3.rst:2138 msgid "zlib" msgstr "zlib" -#: ../Doc/whatsnew/3.3.rst:2139 +#: ../Doc/whatsnew/3.3.rst:2140 msgid "" "New attribute :attr:`zlib.Decompress.eof` makes it possible to distinguish " "between a properly formed compressed stream and an incomplete or truncated " @@ -4238,9 +4262,10 @@ msgstr "" "flujo comprimido correctamente formado y uno incompleto o truncado. " "(Aportado por Nadeem Vawda en :issue:`12646`.)" -#: ../Doc/whatsnew/3.3.rst:2143 +#: ../Doc/whatsnew/3.3.rst:2144 +#, fuzzy msgid "" -"New attribute :attr:`zlib.ZLIB_RUNTIME_VERSION` reports the version string " +"New attribute :const:`zlib.ZLIB_RUNTIME_VERSION` reports the version string " "of the underlying ``zlib`` library that is loaded at runtime. (Contributed " "by Torsten Landschoff in :issue:`12306`.)" msgstr "" @@ -4248,26 +4273,26 @@ msgstr "" "versión de la biblioteca ``zlib`` subyacente que se carga en tiempo de " "ejecución. (Contribución de Torsten Landschoff en :issue:`12306`.)" -#: ../Doc/whatsnew/3.3.rst:2149 +#: ../Doc/whatsnew/3.3.rst:2150 msgid "Optimizations" msgstr "Optimizaciones" -#: ../Doc/whatsnew/3.3.rst:2151 +#: ../Doc/whatsnew/3.3.rst:2152 msgid "Major performance enhancements have been added:" msgstr "Se han agregado importantes mejoras de rendimiento:" -#: ../Doc/whatsnew/3.3.rst:2153 +#: ../Doc/whatsnew/3.3.rst:2154 msgid "" "Thanks to :pep:`393`, some operations on Unicode strings have been optimized:" msgstr "" "Gracias a :pep:`393`, algunas operaciones en las cadenas *Unicode* han sido " "optimizadas:" -#: ../Doc/whatsnew/3.3.rst:2155 +#: ../Doc/whatsnew/3.3.rst:2156 msgid "the memory footprint is divided by 2 to 4 depending on the text" msgstr "la huella de memoria se divide de 2 a 4 según el texto" -#: ../Doc/whatsnew/3.3.rst:2156 +#: ../Doc/whatsnew/3.3.rst:2157 msgid "" "encode an ASCII string to UTF-8 doesn't need to encode characters anymore, " "the UTF-8 representation is shared with the ASCII representation" @@ -4275,11 +4300,11 @@ msgstr "" "codificar una cadena ASCII a UTF-8 ya no necesita codificar caracteres, la " "representación UTF-8 se comparte con la representación ASCII" -#: ../Doc/whatsnew/3.3.rst:2158 +#: ../Doc/whatsnew/3.3.rst:2159 msgid "the UTF-8 encoder has been optimized" msgstr "el codificador UTF-8 ha sido optimizado" -#: ../Doc/whatsnew/3.3.rst:2159 +#: ../Doc/whatsnew/3.3.rst:2160 msgid "" "repeating a single ASCII letter and getting a substring of an ASCII string " "is 4 times faster" @@ -4287,13 +4312,13 @@ msgstr "" "repetir una única letra ASCII y obtener una subcadena de una cadena ASCII es " "4 veces más rápido" -#: ../Doc/whatsnew/3.3.rst:2162 +#: ../Doc/whatsnew/3.3.rst:2163 msgid "UTF-8 is now 2x to 4x faster. UTF-16 encoding is now up to 10x faster." msgstr "" "UTF-8 ahora es 2x a 4x más rápido. La codificación UTF-16 ahora es 10x más " "rápida." -#: ../Doc/whatsnew/3.3.rst:2164 +#: ../Doc/whatsnew/3.3.rst:2165 msgid "" "(Contributed by Serhiy Storchaka, :issue:`14624`, :issue:`14738` and :issue:" "`15026`.)" @@ -4301,80 +4326,80 @@ msgstr "" "(Contribución de Serhiy Storchaka, :issue:`14624`, :issue:`14738` y :issue:" "`15026`.)" -#: ../Doc/whatsnew/3.3.rst:2169 +#: ../Doc/whatsnew/3.3.rst:2170 msgid "Build and C API Changes" msgstr "Construcción y cambios en la API de C" -#: ../Doc/whatsnew/3.3.rst:2171 +#: ../Doc/whatsnew/3.3.rst:2172 msgid "Changes to Python's build process and to the C API include:" msgstr "" "Los cambios en el proceso de compilación de Python y en la API de C incluyen:" -#: ../Doc/whatsnew/3.3.rst:2173 +#: ../Doc/whatsnew/3.3.rst:2174 msgid "New :pep:`3118` related function:" msgstr "Nueva función relacionada con :pep:`3118`:" -#: ../Doc/whatsnew/3.3.rst:2175 +#: ../Doc/whatsnew/3.3.rst:2176 msgid ":c:func:`PyMemoryView_FromMemory`" msgstr ":c:func:`PyMemoryView_FromMemory`" -#: ../Doc/whatsnew/3.3.rst:2177 +#: ../Doc/whatsnew/3.3.rst:2178 msgid ":pep:`393` added new Unicode types, macros and functions:" msgstr ":pep:`393` Agregó nuevos tipos *unicode*, macros y funciones:" -#: ../Doc/whatsnew/3.3.rst:2179 +#: ../Doc/whatsnew/3.3.rst:2180 msgid "High-level API:" msgstr "API de alto nivel:" -#: ../Doc/whatsnew/3.3.rst:2181 +#: ../Doc/whatsnew/3.3.rst:2182 msgid ":c:func:`PyUnicode_CopyCharacters`" msgstr ":c:func:`PyUnicode_CopyCharacters`" -#: ../Doc/whatsnew/3.3.rst:2182 +#: ../Doc/whatsnew/3.3.rst:2183 msgid ":c:func:`PyUnicode_FindChar`" msgstr ":c:func:`PyUnicode_FindChar`" -#: ../Doc/whatsnew/3.3.rst:2183 +#: ../Doc/whatsnew/3.3.rst:2184 msgid ":c:func:`PyUnicode_GetLength`, :c:macro:`PyUnicode_GET_LENGTH`" msgstr ":c:func:`PyUnicode_GetLength`, :c:macro:`PyUnicode_GET_LENGTH`" -#: ../Doc/whatsnew/3.3.rst:2184 +#: ../Doc/whatsnew/3.3.rst:2185 msgid ":c:func:`PyUnicode_New`" msgstr ":c:func:`PyUnicode_New`" -#: ../Doc/whatsnew/3.3.rst:2185 +#: ../Doc/whatsnew/3.3.rst:2186 msgid ":c:func:`PyUnicode_Substring`" msgstr ":c:func:`PyUnicode_Substring`" -#: ../Doc/whatsnew/3.3.rst:2186 +#: ../Doc/whatsnew/3.3.rst:2187 msgid ":c:func:`PyUnicode_ReadChar`, :c:func:`PyUnicode_WriteChar`" msgstr ":c:func:`PyUnicode_ReadChar`, :c:func:`PyUnicode_WriteChar`" -#: ../Doc/whatsnew/3.3.rst:2188 +#: ../Doc/whatsnew/3.3.rst:2189 msgid "Low-level API:" msgstr "API de bajo nivel:" -#: ../Doc/whatsnew/3.3.rst:2190 +#: ../Doc/whatsnew/3.3.rst:2191 msgid ":c:type:`Py_UCS1`, :c:type:`Py_UCS2`, :c:type:`Py_UCS4` types" msgstr "Tipos :c:type:`Py_UCS1`, :c:type:`Py_UCS2`, :c:type:`Py_UCS4`" -#: ../Doc/whatsnew/3.3.rst:2191 +#: ../Doc/whatsnew/3.3.rst:2192 msgid ":c:type:`PyASCIIObject` and :c:type:`PyCompactUnicodeObject` structures" msgstr "Estructuras :c:type:`PyASCIIObject` y :c:type:`PyCompactUnicodeObject`" -#: ../Doc/whatsnew/3.3.rst:2192 +#: ../Doc/whatsnew/3.3.rst:2193 msgid ":c:macro:`PyUnicode_READY`" msgstr ":c:macro:`PyUnicode_READY`" -#: ../Doc/whatsnew/3.3.rst:2193 +#: ../Doc/whatsnew/3.3.rst:2194 msgid ":c:func:`PyUnicode_FromKindAndData`" msgstr ":c:func:`PyUnicode_FromKindAndData`" -#: ../Doc/whatsnew/3.3.rst:2194 +#: ../Doc/whatsnew/3.3.rst:2195 msgid ":c:func:`PyUnicode_AsUCS4`, :c:func:`PyUnicode_AsUCS4Copy`" msgstr ":c:func:`PyUnicode_AsUCS4`, :c:func:`PyUnicode_AsUCS4Copy`" -#: ../Doc/whatsnew/3.3.rst:2195 +#: ../Doc/whatsnew/3.3.rst:2196 msgid "" ":c:macro:`PyUnicode_DATA`, :c:macro:`PyUnicode_1BYTE_DATA`, :c:macro:" "`PyUnicode_2BYTE_DATA`, :c:macro:`PyUnicode_4BYTE_DATA`" @@ -4382,17 +4407,18 @@ msgstr "" ":c:macro:`PyUnicode_DATA`, :c:macro:`PyUnicode_1BYTE_DATA`, :c:macro:" "`PyUnicode_2BYTE_DATA`, :c:macro:`PyUnicode_4BYTE_DATA`" -#: ../Doc/whatsnew/3.3.rst:2197 +#: ../Doc/whatsnew/3.3.rst:2198 +#, fuzzy msgid "" -":c:macro:`PyUnicode_KIND` with :c:type:`PyUnicode_Kind` enum: :c:data:" -"`PyUnicode_WCHAR_KIND`, :c:data:`PyUnicode_1BYTE_KIND`, :c:data:" +":c:macro:`PyUnicode_KIND` with :c:enum:`PyUnicode_Kind` enum: :c:data:`!" +"PyUnicode_WCHAR_KIND`, :c:data:`PyUnicode_1BYTE_KIND`, :c:data:" "`PyUnicode_2BYTE_KIND`, :c:data:`PyUnicode_4BYTE_KIND`" msgstr "" ":c:macro:`PyUnicode_KIND` con :c:type:`PyUnicode_Kind` enum: :c:data:" "`PyUnicode_WCHAR_KIND`, :c:data:`PyUnicode_1BYTE_KIND`, :c:data:" "`PyUnicode_2BYTE_KIND`, :c:data:`PyUnicode_4BYTE_KIND`" -#: ../Doc/whatsnew/3.3.rst:2200 +#: ../Doc/whatsnew/3.3.rst:2201 msgid "" ":c:macro:`PyUnicode_READ`, :c:macro:`PyUnicode_READ_CHAR`, :c:macro:" "`PyUnicode_WRITE`" @@ -4400,11 +4426,11 @@ msgstr "" ":c:macro:`PyUnicode_READ`, :c:macro:`PyUnicode_READ_CHAR`, :c:macro:" "`PyUnicode_WRITE`" -#: ../Doc/whatsnew/3.3.rst:2201 +#: ../Doc/whatsnew/3.3.rst:2202 msgid ":c:macro:`PyUnicode_MAX_CHAR_VALUE`" msgstr ":c:macro:`PyUnicode_MAX_CHAR_VALUE`" -#: ../Doc/whatsnew/3.3.rst:2203 +#: ../Doc/whatsnew/3.3.rst:2204 msgid "" ":c:macro:`PyArg_ParseTuple` now accepts a :class:`bytearray` for the ``c`` " "format (:issue:`12380`)." @@ -4412,21 +4438,21 @@ msgstr "" ":c:macro:`PyArg_ParseTuple` ahora acepta un :class:`bytearray` para el " "formato ``c`` (:issue:`12380`)." -#: ../Doc/whatsnew/3.3.rst:2209 +#: ../Doc/whatsnew/3.3.rst:2210 msgid "Deprecated" msgstr "Obsoleto" -#: ../Doc/whatsnew/3.3.rst:2212 +#: ../Doc/whatsnew/3.3.rst:2213 msgid "Unsupported Operating Systems" msgstr "Sistemas operativos no compatibles" -#: ../Doc/whatsnew/3.3.rst:2214 +#: ../Doc/whatsnew/3.3.rst:2215 msgid "OS/2 and VMS are no longer supported due to the lack of a maintainer." msgstr "" "OS/2 y VMS no son compatibles debido a la falta de un responsable de " "mantenimiento." -#: ../Doc/whatsnew/3.3.rst:2216 +#: ../Doc/whatsnew/3.3.rst:2217 msgid "" "Windows 2000 and Windows platforms which set ``COMSPEC`` to ``command.com`` " "are no longer supported due to maintenance burden." @@ -4434,17 +4460,17 @@ msgstr "" "Windows 2000 y las plataformas windows que establezcan ``COMSPEC`` a " "``command.com`` ya no son compatibles debido a la carga de mantenimiento." -#: ../Doc/whatsnew/3.3.rst:2219 +#: ../Doc/whatsnew/3.3.rst:2220 msgid "OSF support, which was deprecated in 3.2, has been completely removed." msgstr "" "La compatibilidad con OSF, que quedó obsoleta en 3.2, ha sido completamente " "eliminada." -#: ../Doc/whatsnew/3.3.rst:2223 +#: ../Doc/whatsnew/3.3.rst:2224 msgid "Deprecated Python modules, functions and methods" msgstr "Módulos , funciones y métodos obsoletos en Python" -#: ../Doc/whatsnew/3.3.rst:2225 +#: ../Doc/whatsnew/3.3.rst:2226 msgid "" "Passing a non-empty string to ``object.__format__()`` is deprecated, and " "will produce a :exc:`TypeError` in Python 3.4 (:issue:`9856`)." @@ -4452,7 +4478,7 @@ msgstr "" "Pasar una cadena no vacía a ``object.__format__()`` está descontinuado, y " "producirá un :exc:`TypeError` en Python 3.4 (:issue:`9856`)." -#: ../Doc/whatsnew/3.3.rst:2227 +#: ../Doc/whatsnew/3.3.rst:2228 msgid "" "The ``unicode_internal`` codec has been deprecated because of the :pep:" "`393`, use UTF-8, UTF-16 (``utf-16-le`` or ``utf-16-be``), or UTF-32 " @@ -4462,14 +4488,14 @@ msgstr "" "UTF-8, UTF-16 (``utf-16-le`` o ``utf-16-be``), o UTF-32 (``utf-32-le`` or " "``utf-32-be``)" -#: ../Doc/whatsnew/3.3.rst:2230 +#: ../Doc/whatsnew/3.3.rst:2231 msgid "" ":meth:`ftplib.FTP.nlst` and :meth:`ftplib.FTP.dir`: use :meth:`ftplib.FTP." "mlsd`" msgstr "" ":meth:`ftplib.FTP.nlst` y :meth:`ftplib.FTP.dir`: use :meth:`ftplib.FTP.mlsd`" -#: ../Doc/whatsnew/3.3.rst:2232 +#: ../Doc/whatsnew/3.3.rst:2233 msgid "" ":func:`platform.popen`: use the :mod:`subprocess` module. Check especially " "the :ref:`subprocess-replacements` section (:issue:`11377`)." @@ -4477,7 +4503,7 @@ msgstr "" ":func:`platform.popen`: use el módulo :mod:`subprocess`. Verifique " "especialmente la sección :ref:`subprocess-replacements` (:issue:`11377`)." -#: ../Doc/whatsnew/3.3.rst:2234 +#: ../Doc/whatsnew/3.3.rst:2235 msgid "" ":issue:`13374`: The Windows bytes API has been deprecated in the :mod:`os` " "module. Use Unicode filenames, instead of bytes filenames, to not depend on " @@ -4488,7 +4514,7 @@ msgstr "" "archivo de bytes, para no depender más de la página de códigos ANSI y " "admitir cualquier nombre de archivo." -#: ../Doc/whatsnew/3.3.rst:2237 +#: ../Doc/whatsnew/3.3.rst:2238 msgid "" ":issue:`13988`: The :mod:`xml.etree.cElementTree` module is deprecated. The " "accelerator is used automatically whenever available." @@ -4496,7 +4522,7 @@ msgstr "" ":issue:`13988`: El módulo :mod:`xml.etree.cElementTree` ha quedado obsoleto. " "El acelerador se utiliza automáticamente siempre que esté disponible." -#: ../Doc/whatsnew/3.3.rst:2239 +#: ../Doc/whatsnew/3.3.rst:2240 msgid "" "The behaviour of :func:`time.clock` depends on the platform: use the new :" "func:`time.perf_counter` or :func:`time.process_time` function instead, " @@ -4507,19 +4533,19 @@ msgstr "" "lugar, dependiendo de sus requerimientos, para tener un comportamiento bien " "definido." -#: ../Doc/whatsnew/3.3.rst:2242 +#: ../Doc/whatsnew/3.3.rst:2243 msgid "The :func:`os.stat_float_times` function is deprecated." msgstr "La función :func:`os.stat_float_times` ha quedado obsoleta." -#: ../Doc/whatsnew/3.3.rst:2243 +#: ../Doc/whatsnew/3.3.rst:2244 msgid ":mod:`abc` module:" msgstr ":mod:`abc` module:" -#: ../Doc/whatsnew/3.3.rst:2252 +#: ../Doc/whatsnew/3.3.rst:2253 msgid ":mod:`importlib` package:" msgstr "paquete :mod:`importlib`:" -#: ../Doc/whatsnew/3.3.rst:2254 +#: ../Doc/whatsnew/3.3.rst:2255 msgid "" ":meth:`importlib.abc.SourceLoader.path_mtime` is now deprecated in favour " "of :meth:`importlib.abc.SourceLoader.path_stats` as bytecode files now store " @@ -4532,11 +4558,11 @@ msgstr "" "tamaño del archivo fuente desde el cual se compiló el archivo de código de " "bytes." -#: ../Doc/whatsnew/3.3.rst:2264 +#: ../Doc/whatsnew/3.3.rst:2265 msgid "Deprecated functions and types of the C API" msgstr "Funciones y tipos obsoletos en la API de C" -#: ../Doc/whatsnew/3.3.rst:2266 +#: ../Doc/whatsnew/3.3.rst:2267 msgid "" "The :c:type:`Py_UNICODE` has been deprecated by :pep:`393` and will be " "removed in Python 4. All functions using this type are deprecated:" @@ -4544,7 +4570,7 @@ msgstr "" "El :c:type:`Py_UNICODE` ha quedado obsoleto por :pep:`393` y será eliminado " "en Python 4. Todas las funciones que utilizan éste tipo quedarán en desuso:" -#: ../Doc/whatsnew/3.3.rst:2269 +#: ../Doc/whatsnew/3.3.rst:2270 msgid "" "Unicode functions and methods using :c:type:`Py_UNICODE` and :c:expr:" "`Py_UNICODE*` types:" @@ -4552,195 +4578,223 @@ msgstr "" "Funciones y métodos Unicode que utilizan los tipos :c:type:`Py_UNICODE` y :c:" "expr:`Py_UNICODE*`:" -#: ../Doc/whatsnew/3.3.rst:2272 +#: ../Doc/whatsnew/3.3.rst:2273 +#, fuzzy msgid "" -":c:macro:`PyUnicode_FromUnicode`: use :c:func:`PyUnicode_FromWideChar` or :c:" -"func:`PyUnicode_FromKindAndData`" +":c:macro:`!PyUnicode_FromUnicode`: use :c:func:`PyUnicode_FromWideChar` or :" +"c:func:`PyUnicode_FromKindAndData`" msgstr "" ":c:macro:`PyUnicode_FromUnicode`: use :c:func:`PyUnicode_FromWideChar` o :c:" "func:`PyUnicode_FromKindAndData`" -#: ../Doc/whatsnew/3.3.rst:2274 +#: ../Doc/whatsnew/3.3.rst:2275 +#, fuzzy msgid "" -":c:macro:`PyUnicode_AS_UNICODE`, :c:func:`PyUnicode_AsUnicode`, :c:func:" -"`PyUnicode_AsUnicodeAndSize`: use :c:func:`PyUnicode_AsWideCharString`" +":c:macro:`!PyUnicode_AS_UNICODE`, :c:func:`!PyUnicode_AsUnicode`, :c:func:`!" +"PyUnicode_AsUnicodeAndSize`: use :c:func:`PyUnicode_AsWideCharString`" msgstr "" ":c:macro:`PyUnicode_AS_UNICODE`, :c:func:`PyUnicode_AsUnicode`, :c:func:" "`PyUnicode_AsUnicodeAndSize`: use :c:func:`PyUnicode_AsWideCharString`" -#: ../Doc/whatsnew/3.3.rst:2276 +#: ../Doc/whatsnew/3.3.rst:2277 +#, fuzzy msgid "" -":c:macro:`PyUnicode_AS_DATA`: use :c:macro:`PyUnicode_DATA` with :c:macro:" +":c:macro:`!PyUnicode_AS_DATA`: use :c:macro:`PyUnicode_DATA` with :c:macro:" "`PyUnicode_READ` and :c:macro:`PyUnicode_WRITE`" msgstr "" ":c:macro:`PyUnicode_AS_DATA`: use :c:macro:`PyUnicode_DATA` con :c:macro:" "`PyUnicode_READ` y :c:macro:`PyUnicode_WRITE`" -#: ../Doc/whatsnew/3.3.rst:2278 +#: ../Doc/whatsnew/3.3.rst:2279 +#, fuzzy msgid "" -":c:macro:`PyUnicode_GET_SIZE`, :c:func:`PyUnicode_GetSize`: use :c:macro:" +":c:macro:`!PyUnicode_GET_SIZE`, :c:func:`!PyUnicode_GetSize`: use :c:macro:" "`PyUnicode_GET_LENGTH` or :c:func:`PyUnicode_GetLength`" msgstr "" ":c:macro:`PyUnicode_GET_SIZE`, :c:func:`PyUnicode_GetSize`: use :c:macro:" "`PyUnicode_GET_LENGTH` o :c:func:`PyUnicode_GetLength`" -#: ../Doc/whatsnew/3.3.rst:2280 +#: ../Doc/whatsnew/3.3.rst:2281 +#, fuzzy msgid "" -":c:macro:`PyUnicode_GET_DATA_SIZE`: use ``PyUnicode_GET_LENGTH(str) * " +":c:macro:`!PyUnicode_GET_DATA_SIZE`: use ``PyUnicode_GET_LENGTH(str) * " "PyUnicode_KIND(str)`` (only work on ready strings)" msgstr "" ":c:macro:`PyUnicode_GET_DATA_SIZE`: use ``PyUnicode_GET_LENGTH(str) * " "PyUnicode_KIND(str)`` (sólo funciona en cadenas listas)" -#: ../Doc/whatsnew/3.3.rst:2283 +#: ../Doc/whatsnew/3.3.rst:2284 +#, fuzzy msgid "" -":c:func:`PyUnicode_AsUnicodeCopy`: use :c:func:`PyUnicode_AsUCS4Copy` or :c:" +":c:func:`!PyUnicode_AsUnicodeCopy`: use :c:func:`PyUnicode_AsUCS4Copy` or :c:" "func:`PyUnicode_AsWideCharString`" msgstr "" ":c:func:`PyUnicode_AsUnicodeCopy`: use :c:func:`PyUnicode_AsUCS4Copy` o :c:" "func:`PyUnicode_AsWideCharString`" -#: ../Doc/whatsnew/3.3.rst:2285 -msgid ":c:func:`PyUnicode_GetMax`" +#: ../Doc/whatsnew/3.3.rst:2286 +#, fuzzy +msgid ":c:func:`!PyUnicode_GetMax`" msgstr ":c:func:`PyUnicode_GetMax`" -#: ../Doc/whatsnew/3.3.rst:2288 +#: ../Doc/whatsnew/3.3.rst:2289 msgid "Functions and macros manipulating Py_UNICODE* strings:" msgstr "Funciones y macros que manipulen cadenas de caracteres Py_UNICODE*:" -#: ../Doc/whatsnew/3.3.rst:2290 +#: ../Doc/whatsnew/3.3.rst:2291 +#, fuzzy msgid "" -":c:macro:`Py_UNICODE_strlen`: use :c:func:`PyUnicode_GetLength` or :c:macro:" -"`PyUnicode_GET_LENGTH`" +":c:macro:`!Py_UNICODE_strlen()`: use :c:func:`PyUnicode_GetLength` or :c:" +"macro:`PyUnicode_GET_LENGTH`" msgstr "" ":c:macro:`Py_UNICODE_strlen`: use :c:func:`PyUnicode_GetLength` o :c:macro:" "`PyUnicode_GET_LENGTH`" -#: ../Doc/whatsnew/3.3.rst:2292 +#: ../Doc/whatsnew/3.3.rst:2293 +#, fuzzy msgid "" -":c:macro:`Py_UNICODE_strcat`: use :c:func:`PyUnicode_CopyCharacters` or :c:" -"func:`PyUnicode_FromFormat`" +":c:macro:`!Py_UNICODE_strcat()`: use :c:func:`PyUnicode_CopyCharacters` or :" +"c:func:`PyUnicode_FromFormat`" msgstr "" ":c:macro:`Py_UNICODE_strcat`: use :c:func:`PyUnicode_CopyCharacters` o :c:" "func:`PyUnicode_FromFormat`" -#: ../Doc/whatsnew/3.3.rst:2294 +#: ../Doc/whatsnew/3.3.rst:2295 +#, fuzzy msgid "" -":c:macro:`Py_UNICODE_strcpy`, :c:macro:`Py_UNICODE_strncpy`, :c:macro:" -"`Py_UNICODE_COPY`: use :c:func:`PyUnicode_CopyCharacters` or :c:func:" +":c:macro:`!Py_UNICODE_strcpy()`, :c:macro:`!Py_UNICODE_strncpy()`, :c:macro:" +"`!Py_UNICODE_COPY()`: use :c:func:`PyUnicode_CopyCharacters` or :c:func:" "`PyUnicode_Substring`" msgstr "" ":c:macro:`Py_UNICODE_strcpy`, :c:macro:`Py_UNICODE_strncpy`, :c:macro:" "`Py_UNICODE_COPY`: use :c:func:`PyUnicode_CopyCharacters` o :c:func:" "`PyUnicode_Substring`" -#: ../Doc/whatsnew/3.3.rst:2297 -msgid ":c:macro:`Py_UNICODE_strcmp`: use :c:func:`PyUnicode_Compare`" +#: ../Doc/whatsnew/3.3.rst:2298 +#, fuzzy +msgid ":c:macro:`!Py_UNICODE_strcmp()`: use :c:func:`PyUnicode_Compare`" msgstr ":c:macro:`Py_UNICODE_strcmp`: use :c:func:`PyUnicode_Compare`" -#: ../Doc/whatsnew/3.3.rst:2298 -msgid ":c:macro:`Py_UNICODE_strncmp`: use :c:func:`PyUnicode_Tailmatch`" +#: ../Doc/whatsnew/3.3.rst:2299 +#, fuzzy +msgid ":c:macro:`!Py_UNICODE_strncmp()`: use :c:func:`PyUnicode_Tailmatch`" msgstr ":c:macro:`Py_UNICODE_strncmp`: use :c:func:`PyUnicode_Tailmatch`" -#: ../Doc/whatsnew/3.3.rst:2299 +#: ../Doc/whatsnew/3.3.rst:2300 +#, fuzzy msgid "" -":c:macro:`Py_UNICODE_strchr`, :c:macro:`Py_UNICODE_strrchr`: use :c:func:" -"`PyUnicode_FindChar`" +":c:macro:`!Py_UNICODE_strchr()`, :c:macro:`!Py_UNICODE_strrchr()`: use :c:" +"func:`PyUnicode_FindChar`" msgstr "" ":c:macro:`Py_UNICODE_strchr`, :c:macro:`Py_UNICODE_strrchr`: use :c:func:" "`PyUnicode_FindChar`" -#: ../Doc/whatsnew/3.3.rst:2301 -msgid ":c:macro:`Py_UNICODE_FILL`: use :c:func:`PyUnicode_Fill`" +#: ../Doc/whatsnew/3.3.rst:2302 +#, fuzzy +msgid ":c:macro:`!Py_UNICODE_FILL()`: use :c:func:`PyUnicode_Fill`" msgstr ":c:macro:`Py_UNICODE_FILL`: use :c:func:`PyUnicode_Fill`" -#: ../Doc/whatsnew/3.3.rst:2302 -msgid ":c:macro:`Py_UNICODE_MATCH`" +#: ../Doc/whatsnew/3.3.rst:2303 +#, fuzzy +msgid ":c:macro:`!Py_UNICODE_MATCH`" msgstr ":c:macro:`Py_UNICODE_MATCH`" -#: ../Doc/whatsnew/3.3.rst:2304 +#: ../Doc/whatsnew/3.3.rst:2305 msgid "Encoders:" msgstr "Codificadores:" -#: ../Doc/whatsnew/3.3.rst:2306 -msgid ":c:func:`PyUnicode_Encode`: use :c:func:`PyUnicode_AsEncodedObject`" +#: ../Doc/whatsnew/3.3.rst:2307 +#, fuzzy +msgid ":c:func:`!PyUnicode_Encode`: use :c:func:`!PyUnicode_AsEncodedObject`" msgstr ":c:func:`PyUnicode_Encode`: use :c:func:`PyUnicode_AsEncodedObject`" -#: ../Doc/whatsnew/3.3.rst:2307 -msgid ":c:func:`PyUnicode_EncodeUTF7`" +#: ../Doc/whatsnew/3.3.rst:2308 +#, fuzzy +msgid ":c:func:`!PyUnicode_EncodeUTF7`" msgstr ":c:func:`PyUnicode_EncodeUTF7`" -#: ../Doc/whatsnew/3.3.rst:2308 +#: ../Doc/whatsnew/3.3.rst:2309 +#, fuzzy msgid "" -":c:func:`PyUnicode_EncodeUTF8`: use :c:func:`PyUnicode_AsUTF8` or :c:func:" +":c:func:`!PyUnicode_EncodeUTF8`: use :c:func:`PyUnicode_AsUTF8` or :c:func:" "`PyUnicode_AsUTF8String`" msgstr "" ":c:func:`PyUnicode_EncodeUTF8`: use :c:func:`PyUnicode_AsUTF8` o :c:func:" "`PyUnicode_AsUTF8String`" -#: ../Doc/whatsnew/3.3.rst:2310 -msgid ":c:func:`PyUnicode_EncodeUTF32`" +#: ../Doc/whatsnew/3.3.rst:2311 +#, fuzzy +msgid ":c:func:`!PyUnicode_EncodeUTF32`" msgstr ":c:func:`PyUnicode_EncodeUTF32`" -#: ../Doc/whatsnew/3.3.rst:2311 -msgid ":c:func:`PyUnicode_EncodeUTF16`" +#: ../Doc/whatsnew/3.3.rst:2312 +#, fuzzy +msgid ":c:func:`!PyUnicode_EncodeUTF16`" msgstr ":c:func:`PyUnicode_EncodeUTF16`" -#: ../Doc/whatsnew/3.3.rst:2312 +#: ../Doc/whatsnew/3.3.rst:2313 +#, fuzzy msgid "" -":c:func:`PyUnicode_EncodeUnicodeEscape` use :c:func:" +":c:func:`!PyUnicode_EncodeUnicodeEscape` use :c:func:" "`PyUnicode_AsUnicodeEscapeString`" msgstr "" ":c:func:`PyUnicode_EncodeUnicodeEscape` use :c:func:" "`PyUnicode_AsUnicodeEscapeString`" -#: ../Doc/whatsnew/3.3.rst:2314 +#: ../Doc/whatsnew/3.3.rst:2315 +#, fuzzy msgid "" -":c:func:`PyUnicode_EncodeRawUnicodeEscape` use :c:func:" +":c:func:`!PyUnicode_EncodeRawUnicodeEscape` use :c:func:" "`PyUnicode_AsRawUnicodeEscapeString`" msgstr "" ":c:func:`PyUnicode_EncodeRawUnicodeEscape` use :c:func:" "`PyUnicode_AsRawUnicodeEscapeString`" -#: ../Doc/whatsnew/3.3.rst:2316 +#: ../Doc/whatsnew/3.3.rst:2317 +#, fuzzy msgid "" -":c:func:`PyUnicode_EncodeLatin1`: use :c:func:`PyUnicode_AsLatin1String`" +":c:func:`!PyUnicode_EncodeLatin1`: use :c:func:`PyUnicode_AsLatin1String`" msgstr "" ":c:func:`PyUnicode_EncodeLatin1`: use :c:func:`PyUnicode_AsLatin1String`" -#: ../Doc/whatsnew/3.3.rst:2317 -msgid ":c:func:`PyUnicode_EncodeASCII`: use :c:func:`PyUnicode_AsASCIIString`" +#: ../Doc/whatsnew/3.3.rst:2318 +#, fuzzy +msgid ":c:func:`!PyUnicode_EncodeASCII`: use :c:func:`PyUnicode_AsASCIIString`" msgstr ":c:func:`PyUnicode_EncodeASCII`: use :c:func:`PyUnicode_AsASCIIString`" -#: ../Doc/whatsnew/3.3.rst:2318 -msgid ":c:func:`PyUnicode_EncodeCharmap`" +#: ../Doc/whatsnew/3.3.rst:2319 +#, fuzzy +msgid ":c:func:`!PyUnicode_EncodeCharmap`" msgstr ":c:func:`PyUnicode_EncodeCharmap`" -#: ../Doc/whatsnew/3.3.rst:2319 -msgid ":c:func:`PyUnicode_TranslateCharmap`" +#: ../Doc/whatsnew/3.3.rst:2320 +#, fuzzy +msgid ":c:func:`!PyUnicode_TranslateCharmap`" msgstr ":c:func:`PyUnicode_TranslateCharmap`" -#: ../Doc/whatsnew/3.3.rst:2320 +#: ../Doc/whatsnew/3.3.rst:2321 +#, fuzzy msgid "" -":c:func:`PyUnicode_EncodeMBCS`: use :c:func:`PyUnicode_AsMBCSString` or :c:" +":c:func:`!PyUnicode_EncodeMBCS`: use :c:func:`PyUnicode_AsMBCSString` or :c:" "func:`PyUnicode_EncodeCodePage` (with ``CP_ACP`` code_page)" msgstr "" ":c:func:`PyUnicode_EncodeMBCS`: use :c:func:`PyUnicode_AsMBCSString` o :c:" "func:`PyUnicode_EncodeCodePage` (con ``CP_ACP`` code_page)" -#: ../Doc/whatsnew/3.3.rst:2322 +#: ../Doc/whatsnew/3.3.rst:2323 +#, fuzzy msgid "" -":c:func:`PyUnicode_EncodeDecimal`, :c:func:" -"`PyUnicode_TransformDecimalToASCII`" +":c:func:`!PyUnicode_EncodeDecimal`, :c:func:`!" +"PyUnicode_TransformDecimalToASCII`" msgstr "" ":c:func:`PyUnicode_EncodeDecimal`, :c:func:" "`PyUnicode_TransformDecimalToASCII`" -#: ../Doc/whatsnew/3.3.rst:2327 +#: ../Doc/whatsnew/3.3.rst:2328 msgid "Deprecated features" msgstr "Características obsoletas" -#: ../Doc/whatsnew/3.3.rst:2329 +#: ../Doc/whatsnew/3.3.rst:2330 msgid "" "The :mod:`array` module's ``'u'`` format code is now deprecated and will be " "removed in Python 4 together with the rest of the (:c:type:`Py_UNICODE`) API." @@ -4749,11 +4803,11 @@ msgstr "" "será eliminado en Python 4, junto con el resto de la API (:c:type:" "`Py_UNICODE`)." -#: ../Doc/whatsnew/3.3.rst:2334 +#: ../Doc/whatsnew/3.3.rst:2335 msgid "Porting to Python 3.3" msgstr "Migración a Python 3.3" -#: ../Doc/whatsnew/3.3.rst:2336 +#: ../Doc/whatsnew/3.3.rst:2337 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code." @@ -4761,11 +4815,11 @@ msgstr "" "Esta sección enumera los cambios descritos previamente y otras correcciones " "que pueden requerir cambios en su código." -#: ../Doc/whatsnew/3.3.rst:2342 +#: ../Doc/whatsnew/3.3.rst:2343 msgid "Porting Python code" msgstr "Portando código Python" -#: ../Doc/whatsnew/3.3.rst:2344 +#: ../Doc/whatsnew/3.3.rst:2345 msgid "" "Hash randomization is enabled by default. Set the :envvar:`PYTHONHASHSEED` " "environment variable to ``0`` to disable hash randomization. See also the :" @@ -4776,7 +4830,7 @@ msgstr "" "deshabilitar la aleatoriedad de Hash. Vea también el método :meth:`object." "__hash__` method." -#: ../Doc/whatsnew/3.3.rst:2348 +#: ../Doc/whatsnew/3.3.rst:2349 msgid "" ":issue:`12326`: On Linux, sys.platform doesn't contain the major version " "anymore. It is now always 'linux', instead of 'linux2' or 'linux3' depending " @@ -4790,7 +4844,7 @@ msgstr "" "'linux2' con sys.platform.startswith('linux'), o directamente sys.platform " "== 'linux' si no necesita admitir versiones anteriores de Python." -#: ../Doc/whatsnew/3.3.rst:2354 +#: ../Doc/whatsnew/3.3.rst:2355 msgid "" ":issue:`13847`, :issue:`14180`: :mod:`time` and :mod:`datetime`: :exc:" "`OverflowError` is now raised instead of :exc:`ValueError` if a timestamp is " @@ -4802,7 +4856,7 @@ msgstr "" "tiempo está fuera de rango. :exc:`OSError` ahora se genera si fallaron las " "funciones C :c:func:`gmtime` o :c:func:`localtime`." -#: ../Doc/whatsnew/3.3.rst:2359 +#: ../Doc/whatsnew/3.3.rst:2360 msgid "" "The default finders used by import now utilize a cache of what is contained " "within a specific directory. If you create a Python source file or " @@ -4817,7 +4871,7 @@ msgstr "" "caché para que los buscadores encuentren el nuevo archivo." # coloque check en comillas -#: ../Doc/whatsnew/3.3.rst:2364 +#: ../Doc/whatsnew/3.3.rst:2365 msgid "" ":exc:`ImportError` now uses the full name of the module that was attempted " "to be imported. Doctests that check ImportErrors' message will need to be " @@ -4829,7 +4883,7 @@ msgstr "" "'ImportErrors' necesitaran ser actualizados para usar el nombre completo del " "módulo en vez de sólo la terminación del nombre." -#: ../Doc/whatsnew/3.3.rst:2369 +#: ../Doc/whatsnew/3.3.rst:2370 msgid "" "The *index* argument to :func:`__import__` now defaults to 0 instead of -1 " "and no longer support negative values. It was an oversight when :pep:`328` " @@ -4848,7 +4902,7 @@ msgstr "" "use un índice de 0. Sin embargo, es preferible usar :func:`importlib." "import_module` en vez de llamar a la función :func:`__import__` directamente." -#: ../Doc/whatsnew/3.3.rst:2377 +#: ../Doc/whatsnew/3.3.rst:2378 msgid "" ":func:`__import__` no longer allows one to use an index value other than 0 " "for top-level modules. E.g. ``__import__('sys', level=1)`` is now an error." @@ -4857,9 +4911,10 @@ msgstr "" "los módulos de alto nivel. Por ejemplo, ``__import__('sys', level=1)`` ahora " "es un error." -#: ../Doc/whatsnew/3.3.rst:2380 +#: ../Doc/whatsnew/3.3.rst:2381 +#, fuzzy msgid "" -"Because :attr:`sys.meta_path` and :attr:`sys.path_hooks` now have finders on " +"Because :data:`sys.meta_path` and :data:`sys.path_hooks` now have finders on " "them by default, you will most likely want to use :meth:`list.insert` " "instead of :meth:`list.append` to add to those lists." msgstr "" @@ -4867,15 +4922,16 @@ msgstr "" "buscadores por defecto, lo más probable es que desee usar :meth:`list." "insert` en vez de :meth:`list.append` para agregar a esas listas." -#: ../Doc/whatsnew/3.3.rst:2384 +#: ../Doc/whatsnew/3.3.rst:2385 +#, fuzzy msgid "" -"Because ``None`` is now inserted into :attr:`sys.path_importer_cache`, if " +"Because ``None`` is now inserted into :data:`sys.path_importer_cache`, if " "you are clearing out entries in the dictionary of paths that do not have a " "finder, you will need to remove keys paired with values of ``None`` **and** :" -"class:`imp.NullImporter` to be backwards-compatible. This will lead to extra " -"overhead on older versions of Python that re-insert ``None`` into :attr:`sys." -"path_importer_cache` where it represents the use of implicit finders, but " -"semantically it should not change anything." +"class:`!imp.NullImporter` to be backwards-compatible. This will lead to " +"extra overhead on older versions of Python that re-insert ``None`` into :" +"data:`sys.path_importer_cache` where it represents the use of implicit " +"finders, but semantically it should not change anything." msgstr "" "Dado que ``None`` ahora ha sido insertado en :attr:`sys." "path_importer_cache`, si usted está borrando entradas en el diccionario de " @@ -4886,9 +4942,10 @@ msgstr "" "`sys.path_importer_cache` donde éste represente el uso de buscadores " "implícitos, pero semánticamente no debería cambiar nada." -#: ../Doc/whatsnew/3.3.rst:2392 +#: ../Doc/whatsnew/3.3.rst:2393 +#, fuzzy msgid "" -":class:`importlib.abc.Finder` no longer specifies a ``find_module()`` " +":class:`!importlib.abc.Finder` no longer specifies a ``find_module()`` " "abstract method that must be implemented. If you were relying on subclasses " "to implement that method, make sure to check for the method's existence " "first. You will probably want to check for ``find_loader()`` first, though, " @@ -4901,7 +4958,7 @@ msgstr "" "``find_loader()``, en el caso de trabajar con :term:`path entry finders " "`." -#: ../Doc/whatsnew/3.3.rst:2398 +#: ../Doc/whatsnew/3.3.rst:2399 msgid "" ":mod:`pkgutil` has been converted to use :mod:`importlib` internally. This " "eliminates many edge cases where the old behaviour of the :pep:`302` import " @@ -4920,7 +4977,7 @@ msgstr "" "importación estándar, por lo que aún son compatibles aunque no proporcionen " "el método no estándar ``iter_modules ()``." -#: ../Doc/whatsnew/3.3.rst:2406 +#: ../Doc/whatsnew/3.3.rst:2407 msgid "" "A longstanding RFC-compliance bug (:issue:`1079`) in the parsing done by :" "func:`email.header.decode_header` has been fixed. Code that uses the " @@ -4945,7 +5002,7 @@ msgstr "" "ASCII`` y no ``ASCII`` si aún no está presente en las cadenas de caracteres " "entrantes." -#: ../Doc/whatsnew/3.3.rst:2417 +#: ../Doc/whatsnew/3.3.rst:2418 msgid "" ":func:`email.utils.formataddr` now does the correct content transfer " "encoding when passed non-``ASCII`` display names. Any code that depended on " @@ -4958,7 +5015,7 @@ msgstr "" "anterior que conservó el *unicode* que no es ``ASCII`` en la cadena de " "salida formateada deberá cambiarse (:issue:`1690608`)." -#: ../Doc/whatsnew/3.3.rst:2422 +#: ../Doc/whatsnew/3.3.rst:2423 msgid "" ":meth:`poplib.POP3.quit` may now raise protocol errors like all other " "``poplib`` methods. Code that assumes ``quit`` does not raise :exc:`poplib." @@ -4970,7 +5027,7 @@ msgstr "" "genera errores :exc:`poplib.error_proto` puede necesitar ser cambiado si una " "aplicación en particular encuentran errores en ``quit`` (:issue:`11291`)." -#: ../Doc/whatsnew/3.3.rst:2427 +#: ../Doc/whatsnew/3.3.rst:2428 msgid "" "The ``strict`` argument to :class:`email.parser.Parser`, deprecated since " "Python 2.4, has finally been removed." @@ -4978,7 +5035,7 @@ msgstr "" "El argumento ``strict`` para la clase :class:`email.parser.Parser`, que " "quedó obsoleto desde Python 2.4, finalmente ha sido eliminado." -#: ../Doc/whatsnew/3.3.rst:2430 +#: ../Doc/whatsnew/3.3.rst:2431 msgid "" "The deprecated method ``unittest.TestCase.assertSameElements`` has been " "removed." @@ -4986,12 +5043,12 @@ msgstr "" "El método ``unittest.TestCase.assertSameElements`` que estaba obsoleto, ha " "sido eliminado." -#: ../Doc/whatsnew/3.3.rst:2433 +#: ../Doc/whatsnew/3.3.rst:2434 msgid "The deprecated variable ``time.accept2dyear`` has been removed." msgstr "" "La variable ``time.accept2dyear`` que estaba obsoleta, ha sido eliminada." -#: ../Doc/whatsnew/3.3.rst:2435 +#: ../Doc/whatsnew/3.3.rst:2436 msgid "" "The deprecated ``Context._clamp`` attribute has been removed from the :mod:" "`decimal` module. It was previously replaced by the public attribute :attr:" @@ -5001,7 +5058,7 @@ msgstr "" "módulo :mod:`decimal`. Este se reemplazó anteriormente por el atributo " "público :attr:`~decimal.Context.clamp`. (Ver :issue:`8540`.)" -#: ../Doc/whatsnew/3.3.rst:2439 +#: ../Doc/whatsnew/3.3.rst:2440 msgid "" "The undocumented internal helper class ``SSLFakeFile`` has been removed " "from :mod:`smtplib`, since its functionality has long been provided directly " @@ -5011,7 +5068,7 @@ msgstr "" "de :mod:`smtplib`, dado que su funcionalidad ha sido proporcionada " "directamente por :meth:`socket.socket.makefile`." -#: ../Doc/whatsnew/3.3.rst:2443 +#: ../Doc/whatsnew/3.3.rst:2444 msgid "" "Passing a negative value to :func:`time.sleep` on Windows now raises an " "error instead of sleeping forever. It has always raised an error on posix." @@ -5020,17 +5077,18 @@ msgstr "" "ahora lanza un error en vez de detenerse definitivamente. Este siempre ha " "lanzado un error en posix." -#: ../Doc/whatsnew/3.3.rst:2446 +#: ../Doc/whatsnew/3.3.rst:2447 +#, fuzzy msgid "" "The ``ast.__version__`` constant has been removed. If you need to make " -"decisions affected by the AST version, use :attr:`sys.version_info` to make " +"decisions affected by the AST version, use :data:`sys.version_info` to make " "the decision." msgstr "" "La constante ``ast.__version__`` ha sido eliminada. Si usted necesita tomar " "decisiones afectadas por la versión AST, use :attr:`sys.version_info` para " "tomar la decisión." -#: ../Doc/whatsnew/3.3.rst:2450 +#: ../Doc/whatsnew/3.3.rst:2451 msgid "" "Code that used to work around the fact that the :mod:`threading` module used " "factory functions by subclassing the private classes will need to change to " @@ -5040,7 +5098,7 @@ msgstr "" "utilizaba funciones de fábrica mediante la subclase de las clases privadas " "tendrá que cambiar a la subclase de las clases ahora públicas." -#: ../Doc/whatsnew/3.3.rst:2454 +#: ../Doc/whatsnew/3.3.rst:2455 msgid "" "The undocumented debugging machinery in the threading module has been " "removed, simplifying the code. This should have no effect on production " @@ -5052,21 +5110,22 @@ msgstr "" "código de producción, pero se menciona aquí en caso de que algún framework " "de depuración de aplicaciones interactúe con el (:issue:`13550`)." -#: ../Doc/whatsnew/3.3.rst:2461 +#: ../Doc/whatsnew/3.3.rst:2462 msgid "Porting C code" msgstr "Portando código C" -#: ../Doc/whatsnew/3.3.rst:2463 +#: ../Doc/whatsnew/3.3.rst:2464 +#, fuzzy msgid "" -"In the course of changes to the buffer API the undocumented :c:member:" -"`~Py_buffer.smalltable` member of the :c:type:`Py_buffer` structure has been " -"removed and the layout of the :c:type:`PyMemoryViewObject` has changed." +"In the course of changes to the buffer API the undocumented :c:member:`!" +"smalltable` member of the :c:type:`Py_buffer` structure has been removed and " +"the layout of the :c:type:`PyMemoryViewObject` has changed." msgstr "" "En el curso de cambios a la API del buffer la estructura indocumentada :c:" "member:`~Py_buffer.smalltable` miembro de :c:type:`Py_buffer` ha sido " "eliminada, y el diseño de :c:type:`PyMemoryViewObject` se ha cambiado." -#: ../Doc/whatsnew/3.3.rst:2468 +#: ../Doc/whatsnew/3.3.rst:2469 msgid "" "All extensions relying on the relevant parts in ``memoryobject.h`` or " "``object.h`` must be rebuilt." @@ -5074,7 +5133,7 @@ msgstr "" "Todas las extensiones que quedan en las partes relevantes de ``memoryobject." "h`` o ``object.h`` deben ser reconstruídas." -#: ../Doc/whatsnew/3.3.rst:2471 +#: ../Doc/whatsnew/3.3.rst:2472 msgid "" "Due to :ref:`PEP 393 `, the :c:type:`Py_UNICODE` type and all " "functions using this type are deprecated (but will stay available for at " @@ -5090,7 +5149,7 @@ msgstr "" "de la reducción de huella de memoria proporcionada por :pep:`393`, usted " "debe convertir su código al nuevo :doc:`Unicode API <../c-api/unicode>`." -#: ../Doc/whatsnew/3.3.rst:2478 +#: ../Doc/whatsnew/3.3.rst:2479 msgid "" "However, if you only have been using high-level functions such as :c:func:" "`PyUnicode_Concat()`, :c:func:`PyUnicode_Join` or :c:func:" @@ -5102,12 +5161,12 @@ msgstr "" "`PyUnicode_FromFormat()`, automáticamente su código se beneficiará de las " "nuevas representaciones *unicode*." -#: ../Doc/whatsnew/3.3.rst:2483 +#: ../Doc/whatsnew/3.3.rst:2484 msgid ":c:func:`PyImport_GetMagicNumber` now returns ``-1`` upon failure." msgstr "" ":c:func:`PyImport_GetMagicNumber` ahora retorna ``-1`` en caso de falla." -#: ../Doc/whatsnew/3.3.rst:2485 +#: ../Doc/whatsnew/3.3.rst:2486 msgid "" "As a negative value for the *level* argument to :func:`__import__` is no " "longer valid, the same now holds for :c:func:`PyImport_ImportModuleLevel`. " @@ -5120,11 +5179,11 @@ msgstr "" "*level* usado por la función :c:func:`PyImport_ImportModuleEx` ahora es " "``0`` en vez de ``-1``." -#: ../Doc/whatsnew/3.3.rst:2492 +#: ../Doc/whatsnew/3.3.rst:2493 msgid "Building C extensions" msgstr "Construyendo extensiones C" -#: ../Doc/whatsnew/3.3.rst:2494 +#: ../Doc/whatsnew/3.3.rst:2495 msgid "" "The range of possible file names for C extensions has been narrowed. Very " "rarely used spellings have been suppressed: under POSIX, files named " @@ -5141,15 +5200,15 @@ msgstr "" "ortografías (es decir, eliminar la cadena de caracteres ``módulo`` de los " "nombres de archivo)." -#: ../Doc/whatsnew/3.3.rst:2502 +#: ../Doc/whatsnew/3.3.rst:2503 msgid "(implemented in :issue:`14040`.)" msgstr "(implementado en :issue:`14040`.)" -#: ../Doc/whatsnew/3.3.rst:2506 +#: ../Doc/whatsnew/3.3.rst:2507 msgid "Command Line Switch Changes" msgstr "Cambios en el conmutador de línea de comandos" -#: ../Doc/whatsnew/3.3.rst:2508 +#: ../Doc/whatsnew/3.3.rst:2509 msgid "" "The -Q command-line flag and related artifacts have been removed. Code " "checking sys.flags.division_warning will need updating." @@ -5158,11 +5217,11 @@ msgstr "" "relacionados. La comprobación de código sys.flags.division_warning tendrá " "que actualizar." -#: ../Doc/whatsnew/3.3.rst:2511 +#: ../Doc/whatsnew/3.3.rst:2512 msgid "(:issue:`10998`, contributed by Éric Araujo.)" msgstr "(:issue:`10998`, contribución de Éric Araujo.)" -#: ../Doc/whatsnew/3.3.rst:2513 +#: ../Doc/whatsnew/3.3.rst:2514 msgid "" "When :program:`python` is started with :option:`-S`, ``import site`` will no " "longer add site-specific paths to the module search paths. In previous " @@ -5172,8 +5231,16 @@ msgstr "" "agregará las rutas específicas de sitio al módulo de búsqueda de rutas. En " "las versiones anteriores si lo hacía." -#: ../Doc/whatsnew/3.3.rst:2517 +#: ../Doc/whatsnew/3.3.rst:2518 msgid "" "(:issue:`11591`, contributed by Carl Meyer with editions by Éric Araujo.)" msgstr "" "(:issue:`11591`, contribución de Carl Meyer con ediciones de Éric Araujo.)" + +#: ../Doc/whatsnew/3.3.rst:396 +msgid "yield" +msgstr "" + +#: ../Doc/whatsnew/3.3.rst:396 +msgid "yield from (in What's New)" +msgstr "" diff --git a/whatsnew/3.4.po b/whatsnew/3.4.po index beeb357026..ba0754576b 100644 --- a/whatsnew/3.4.po +++ b/whatsnew/3.4.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Claudia Millan \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/whatsnew/3.4.rst:3 msgid "What's New In Python 3.4" @@ -502,10 +502,11 @@ msgstr "" "individuales." #: ../Doc/whatsnew/3.4.rst:248 +#, fuzzy msgid "" "However, as this migration is currently still incomplete, the legacy " "versions of those guides remaining available as :ref:`install-index` and :" -"ref:`distutils-index`." +"ref:`setuptools-index`." msgstr "" "Sin embargo, como esta migración está aún incompleta, las versiones " "anteriores de esas guías siguen disponibles como :ref:`install-index` y :ref:" @@ -1420,8 +1421,9 @@ msgid "doctest" msgstr "doctest" #: ../Doc/whatsnew/3.4.rst:778 +#, fuzzy msgid "" -"A new :ref:`option flag `, :data:`~doctest.FAIL_FAST`, " +"A new :ref:`option flag `, :const:`~doctest.FAIL_FAST`, " "halts test running as soon as the first failure is detected. (Contributed " "by R. David Murray and Daniel Urban in :issue:`16522`.)" msgstr "" @@ -1561,8 +1563,9 @@ msgstr "" "particular. (Contribuido por Mark Levitt en :issue:`18149`.)" #: ../Doc/whatsnew/3.4.rst:844 +#, fuzzy msgid "" -"New module attribute :data:`~filecmp.DEFAULT_IGNORES` provides the list of " +"New module attribute :const:`~filecmp.DEFAULT_IGNORES` provides the list of " "directories that are used as the default value for the *ignore* parameter of " "the :func:`~filecmp.dircmp` function. (Contributed by Eli Bendersky in :" "issue:`15442`.)" @@ -1864,9 +1867,10 @@ msgstr "" "`18072`.)" #: ../Doc/whatsnew/3.4.rst:994 +#, fuzzy msgid "" -"The :func:`~importlib.reload` function has been moved from :mod:`imp` to :" -"mod:`importlib` as part of the :mod:`imp` module deprecation. (Contributed " +"The :func:`~importlib.reload` function has been moved from :mod:`!imp` to :" +"mod:`importlib` as part of the :mod:`!imp` module deprecation. (Contributed " "by Berker Peksag in :issue:`18193`.)" msgstr "" "La función :func:`~importlib.reload` ha sido trasladada de :mod:`imp` a :mod:" @@ -1874,10 +1878,11 @@ msgstr "" "(Contribuido por Berker Peksag en :issue:`18193`.)" #: ../Doc/whatsnew/3.4.rst:998 +#, fuzzy msgid "" ":mod:`importlib.util` now has a :data:`~importlib.util.MAGIC_NUMBER` " "attribute providing access to the bytecode version number. This replaces " -"the :func:`~imp.get_magic` function in the deprecated :mod:`imp` module. " +"the :func:`!get_magic` function in the deprecated :mod:`!imp` module. " "(Contributed by Brett Cannon in :issue:`18192`.)" msgstr "" ":mod:`importlib.util` tiene ahora un atributo :data:`~importlib.util." @@ -1886,10 +1891,11 @@ msgstr "" "`imp`, ya obsoleto. (Contribuido por Brett Cannon en :issue:`18192`.)" #: ../Doc/whatsnew/3.4.rst:1003 +#, fuzzy msgid "" "New :mod:`importlib.util` functions :func:`~importlib.util." "cache_from_source` and :func:`~importlib.util.source_from_cache` replace the " -"same-named functions in the deprecated :mod:`imp` module. (Contributed by " +"same-named functions in the deprecated :mod:`!imp` module. (Contributed by " "Brett Cannon in :issue:`18194`.)" msgstr "" "Las nuevas funciones :mod:`importlib.util` :func:`~importlib.util." @@ -2288,12 +2294,14 @@ msgstr "" "`9035`.)" #: ../Doc/whatsnew/3.4.rst:1191 +#, fuzzy msgid "" -":func:`os.open` supports two new flags on platforms that provide them, :data:" -"`~os.O_PATH` (un-opened file descriptor), and :data:`~os.O_TMPFILE` (unnamed " -"temporary file; as of 3.4.0 release available only on Linux systems with a " -"kernel version of 3.11 or newer that have uapi headers). (Contributed by " -"Christian Heimes in :issue:`18673` and Benjamin Peterson, respectively.)" +":func:`os.open` supports two new flags on platforms that provide them, :" +"const:`~os.O_PATH` (un-opened file descriptor), and :const:`~os.O_TMPFILE` " +"(unnamed temporary file; as of 3.4.0 release available only on Linux systems " +"with a kernel version of 3.11 or newer that have uapi headers). " +"(Contributed by Christian Heimes in :issue:`18673` and Benjamin Peterson, " +"respectively.)" msgstr "" ":func:`os.open` soporta dos nuevas banderas en las plataformas que las " "proporcionan, :data:`~os.O_PATH` (descriptor de archivo no abierto), y :data:" @@ -2375,14 +2383,15 @@ msgid "plistlib" msgstr "plistlib" #: ../Doc/whatsnew/3.4.rst:1237 +#, fuzzy msgid "" ":mod:`plistlib` now has an API that is similar to the standard pattern for " "stdlib serialization protocols, with new :func:`~plistlib.load`, :func:" "`~plistlib.dump`, :func:`~plistlib.loads`, and :func:`~plistlib.dumps` " "functions. (The older API is now deprecated.) In addition to the already " -"supported XML plist format (:data:`~plistlib.FMT_XML`), it also now supports " -"the binary plist format (:data:`~plistlib.FMT_BINARY`). (Contributed by " -"Ronald Oussoren and others in :issue:`14455`.)" +"supported XML plist format (:const:`~plistlib.FMT_XML`), it also now " +"supports the binary plist format (:const:`~plistlib.FMT_BINARY`). " +"(Contributed by Ronald Oussoren and others in :issue:`14455`.)" msgstr "" ":mod:`plistlib` tiene ahora una API que es similar al patrón estándar de los " "protocolos de serialización de stdlib, con nuevas funciones :func:`~plistlib." @@ -2554,11 +2563,12 @@ msgstr "" "Christian Heimes en :issue:`16595`.)" #: ../Doc/whatsnew/3.4.rst:1325 +#, fuzzy msgid "" "On Linux kernel version 2.6.36 or later, there are also some new Linux " -"specific constants: :attr:`~resource.RLIMIT_MSGQUEUE`, :attr:`~resource." -"RLIMIT_NICE`, :attr:`~resource.RLIMIT_RTPRIO`, :attr:`~resource." -"RLIMIT_RTTIME`, and :attr:`~resource.RLIMIT_SIGPENDING`. (Contributed by " +"specific constants: :const:`~resource.RLIMIT_MSGQUEUE`, :const:`~resource." +"RLIMIT_NICE`, :const:`~resource.RLIMIT_RTPRIO`, :const:`~resource." +"RLIMIT_RTTIME`, and :const:`~resource.RLIMIT_SIGPENDING`. (Contributed by " "Christian Heimes in :issue:`19324`.)" msgstr "" "En el kernel de Linux versión 2.6.36 o posterior, también hay algunas nuevas " @@ -2568,9 +2578,10 @@ msgstr "" "Christian Heimes en :issue:`19324`.)" #: ../Doc/whatsnew/3.4.rst:1331 +#, fuzzy msgid "" "On FreeBSD version 9 and later, there some new FreeBSD specific constants: :" -"attr:`~resource.RLIMIT_SBSIZE`, :attr:`~resource.RLIMIT_SWAP`, and :attr:" +"const:`~resource.RLIMIT_SBSIZE`, :const:`~resource.RLIMIT_SWAP`, and :const:" "`~resource.RLIMIT_NPTS`. (Contributed by Claudiu Popa in :issue:`19343`.)" msgstr "" "En FreeBSD versión 9 y posteriores, hay algunas nuevas constantes " @@ -2678,8 +2689,9 @@ msgid "socket" msgstr "enchufe" #: ../Doc/whatsnew/3.4.rst:1391 +#, fuzzy msgid "" -"The socket module now supports the :data:`~socket.CAN_BCM` protocol on " +"The socket module now supports the :const:`~socket.CAN_BCM` protocol on " "platforms that support it. (Contributed by Brian Thorne in :issue:`15359`.)" msgstr "" "El módulo socket ahora soporta el protocolo :data:`~socket.CAN_BCM` en las " @@ -2708,7 +2720,8 @@ msgstr "" "mágicos\" enteros." #: ../Doc/whatsnew/3.4.rst:1402 -msgid "The :data:`~socket.AF_LINK` constant is now available on BSD and OSX." +#, fuzzy +msgid "The :const:`~socket.AF_LINK` constant is now available on BSD and OSX." msgstr "" "La constante :data:`~socket.AF_LINK` está ahora disponible en BSD y OSX." @@ -2823,14 +2836,15 @@ msgstr "" "Christian Heimes en :issue:`18147`.)" #: ../Doc/whatsnew/3.4.rst:1460 +#, fuzzy msgid "" "If OpenSSL 0.9.8 or later is available, :class:`~ssl.SSLContext` has a new " "attribute :attr:`~ssl.SSLContext.verify_flags` that can be used to control " "the certificate verification process by setting it to some combination of " -"the new constants :data:`~ssl.VERIFY_DEFAULT`, :data:`~ssl." -"VERIFY_CRL_CHECK_LEAF`, :data:`~ssl.VERIFY_CRL_CHECK_CHAIN`, or :data:`~ssl." -"VERIFY_X509_STRICT`. OpenSSL does not do any CRL verification by default. " -"(Contributed by Christien Heimes in :issue:`8813`.)" +"the new constants :const:`~ssl.VERIFY_DEFAULT`, :const:`~ssl." +"VERIFY_CRL_CHECK_LEAF`, :const:`~ssl.VERIFY_CRL_CHECK_CHAIN`, or :const:" +"`~ssl.VERIFY_X509_STRICT`. OpenSSL does not do any CRL verification by " +"default. (Contributed by Christien Heimes in :issue:`8813`.)" msgstr "" "Si OpenSSL 0.9.8 o posterior está disponible, :class:`~ssl.SSLContext` tiene " "un nuevo atributo :attr:`~ssl.SSLContext.verify_flags` que puede utilizarse " @@ -2911,10 +2925,11 @@ msgstr "" "por Christian Heimes en :issue:`11016`.)" #: ../Doc/whatsnew/3.4.rst:1502 +#, fuzzy msgid "" "The module supports new :mod:`~stat.ST_MODE` flags, :mod:`~stat.S_IFDOOR`, :" -"attr:`~stat.S_IFPORT`, and :attr:`~stat.S_IFWHT`. (Contributed by Christian " -"Hiemes in :issue:`11016`.)" +"const:`~stat.S_IFPORT`, and :const:`~stat.S_IFWHT`. (Contributed by " +"Christian Hiemes in :issue:`11016`.)" msgstr "" "El módulo soporta las nuevas banderas :mod:`~stat.ST_MODE`, :mod:`~stat." "S_IFDOOR`, :attr:`~stat.S_IFPORT`, y :attr:`~stat.S_IFWHT`. (Contribución " @@ -3595,8 +3610,9 @@ msgstr "" "algoritmo FNV es trivial." #: ../Doc/whatsnew/3.4.rst:1852 +#, fuzzy msgid "" -"The PEP adds additional fields to the :attr:`sys.hash_info` named tuple to " +"The PEP adds additional fields to the :data:`sys.hash_info` named tuple to " "describe the hash algorithm in use by the currently executing binary. " "Otherwise, the PEP does not alter any existing CPython APIs." msgstr "" @@ -4100,26 +4116,27 @@ msgid "Deprecations in the Python API" msgstr "Desapariciones en la API de Python" #: ../Doc/whatsnew/3.4.rst:2079 +#, fuzzy msgid "" "As mentioned in :ref:`whatsnew-pep-451`, a number of :mod:`importlib` " -"methods and functions are deprecated: :meth:`importlib.find_loader` is " -"replaced by :func:`importlib.util.find_spec`; :meth:`importlib.machinery." +"methods and functions are deprecated: :meth:`!importlib.find_loader` is " +"replaced by :func:`importlib.util.find_spec`; :meth:`!importlib.machinery." "PathFinder.find_module` is replaced by :meth:`importlib.machinery.PathFinder." -"find_spec`; :meth:`importlib.abc.MetaPathFinder.find_module` is replaced by :" -"meth:`importlib.abc.MetaPathFinder.find_spec`; :meth:`importlib.abc." -"PathEntryFinder.find_loader` and :meth:`~importlib.abc.PathEntryFinder." -"find_module` are replaced by :meth:`importlib.abc.PathEntryFinder." -"find_spec`; all of the ``xxxLoader`` ABC ``load_module`` methods (:meth:" -"`importlib.abc.Loader.load_module`, :meth:`importlib.abc.InspectLoader." -"load_module`, :meth:`importlib.abc.FileLoader.load_module`, :meth:`importlib." -"abc.SourceLoader.load_module`) should no longer be implemented, instead " -"loaders should implement an ``exec_module`` method (:meth:`importlib.abc." -"Loader.exec_module`, :meth:`importlib.abc.InspectLoader.exec_module` :meth:" -"`importlib.abc.SourceLoader.exec_module`) and let the import system take " -"care of the rest; and :meth:`importlib.abc.Loader.module_repr`, :meth:" -"`importlib.util.module_for_loader`, :meth:`importlib.util.set_loader`, and :" -"meth:`importlib.util.set_package` are no longer needed because their " -"functions are now handled automatically by the import system." +"find_spec`; :meth:`!importlib.abc.MetaPathFinder.find_module` is replaced " +"by :meth:`importlib.abc.MetaPathFinder.find_spec`; :meth:`!importlib.abc." +"PathEntryFinder.find_loader` and :meth:`!find_module` are replaced by :meth:" +"`importlib.abc.PathEntryFinder.find_spec`; all of the :samp:`{xxx}Loader` " +"ABC ``load_module`` methods (:meth:`!importlib.abc.Loader.load_module`, :" +"meth:`!importlib.abc.InspectLoader.load_module`, :meth:`!importlib.abc." +"FileLoader.load_module`, :meth:`!importlib.abc.SourceLoader.load_module`) " +"should no longer be implemented, instead loaders should implement an " +"``exec_module`` method (:meth:`importlib.abc.Loader.exec_module`, :meth:" +"`importlib.abc.InspectLoader.exec_module` :meth:`importlib.abc.SourceLoader." +"exec_module`) and let the import system take care of the rest; and :meth:`!" +"importlib.abc.Loader.module_repr`, :meth:`!importlib.util." +"module_for_loader`, :meth:`!importlib.util.set_loader`, and :meth:`!" +"importlib.util.set_package` are no longer needed because their functions are " +"now handled automatically by the import system." msgstr "" "Como se menciona en :ref:`whatsnew-pep-451`, varios métodos y funciones de :" "mod:`importlib` están obsoletos: :meth:`importlib.find_loader` se sustituye " @@ -4143,8 +4160,9 @@ msgstr "" "importación." #: ../Doc/whatsnew/3.4.rst:2104 +#, fuzzy msgid "" -"The :mod:`imp` module is pending deprecation. To keep compatibility with " +"The :mod:`!imp` module is pending deprecation. To keep compatibility with " "Python 2/3 code bases, the module's removal is currently not scheduled." msgstr "" "El módulo :mod:`imp` está pendiente de ser eliminado. Para mantener la " @@ -4534,8 +4552,9 @@ msgstr "" "``getattr(module, '__loader__', None) is not None``. (:issue:`17115`.)" #: ../Doc/whatsnew/3.4.rst:2280 +#, fuzzy msgid "" -":meth:`importlib.util.module_for_loader` now sets ``__loader__`` and " +":meth:`!importlib.util.module_for_loader` now sets ``__loader__`` and " "``__package__`` unconditionally to properly support reloading. If this is " "not desired then you will need to set these attributes manually. You can " "use :func:`importlib.util.module_to_load` for module management." @@ -4576,6 +4595,7 @@ msgstr "" "'__path__')`` (:issue:`18065`)." #: ../Doc/whatsnew/3.4.rst:2297 +#, fuzzy msgid "" "Frozen modules no longer define a ``__file__`` attribute. It's semantically " "incorrect for frozen modules to set the attribute as they are not loaded " @@ -4583,7 +4603,7 @@ msgid "" "code then you can see if the module's ``__spec__.location`` is set to " "``'frozen'``, check if the loader is a subclass of :class:`importlib." "machinery.FrozenImporter`, or if Python 2 compatibility is necessary you can " -"use :func:`imp.is_frozen`." +"use :func:`!imp.is_frozen`." msgstr "" "Los módulos congelados ya no definen el atributo ``file__``. Es " "semánticamente incorrecto que los módulos congelados definan el atributo, ya " diff --git a/whatsnew/3.5.po b/whatsnew/3.5.po index da921b1882..c8b679a8f3 100644 --- a/whatsnew/3.5.po +++ b/whatsnew/3.5.po @@ -10,16 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: José Luis Salgado Banda\n" -"Language-Team: python-doc-es\n" "Language: es_MX\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/whatsnew/3.5.rst:3 msgid "What's New In Python 3.5" @@ -590,11 +590,12 @@ msgstr "" "declaran en las anotaciones::" #: ../Doc/whatsnew/3.5.rst:425 +#, fuzzy msgid "" "While these annotations are available at runtime through the usual :attr:" "`__annotations__` attribute, *no automatic type checking happens at " "runtime*. Instead, it is assumed that a separate off-line type checker (e." -"g. `mypy `_) will be used for on-demand source code " +"g. `mypy `_) will be used for on-demand source code " "analysis." msgstr "" "Si bien estas anotaciones están disponibles en tiempo de ejecución a través " @@ -701,8 +702,9 @@ msgid "PEP 475: Retry system calls failing with EINTR" msgstr "PEP 475: Reintentar las llamadas al sistema que fallan con EINTR" #: ../Doc/whatsnew/3.5.rst:481 +#, fuzzy msgid "" -"An :py:data:`errno.EINTR` error code is returned whenever a system call, " +"An :py:const:`errno.EINTR` error code is returned whenever a system call, " "that is waiting for I/O, is interrupted by a signal. Previously, Python " "would raise :exc:`InterruptedError` in such cases. This meant that, when " "writing a Python application, the developer had two choices:" @@ -791,8 +793,9 @@ msgstr "" "`~os.write`, :func:`~os.writev`;" #: ../Doc/whatsnew/3.5.rst:529 +#, fuzzy msgid "" -"special cases: :func:`os.close` and :func:`os.dup2` now ignore :py:data:" +"special cases: :func:`os.close` and :func:`os.dup2` now ignore :py:const:" "`~errno.EINTR` errors; the syscall is not retried (see the PEP for the " "rationale);" msgstr "" @@ -1697,11 +1700,11 @@ msgid "curses" msgstr "curses" #: ../Doc/whatsnew/3.5.rst:1048 +#, fuzzy msgid "" -"The new :func:`~curses.update_lines_cols` function updates the :envvar:" -"`LINES` and :envvar:`COLS` environment variables. This is useful for " -"detecting manual screen resizing. (Contributed by Arnon Yaari in :issue:" -"`4254`.)" +"The new :func:`~curses.update_lines_cols` function updates the :data:`LINES` " +"and :data:`COLS` module variables. This is useful for detecting manual " +"screen resizing. (Contributed by Arnon Yaari in :issue:`4254`.)" msgstr "" "La nueva función :func:`~curses.update_lines_cols` actualiza las variables " "de entorno :envvar:`LINES` y :envvar:`COLS`. Esto es útil para detectar el " @@ -1765,10 +1768,11 @@ msgstr "" "Antoine Pitrou en :issue:`5309`.)" #: ../Doc/whatsnew/3.5.rst:1082 +#, fuzzy msgid "" -"The :mod:`distutils` module now supports ``xz`` compression, and can be " -"enabled by passing ``xztar`` as an argument to ``bdist --format``. " -"(Contributed by Serhiy Storchaka in :issue:`16314`.)" +"The ``distutils`` module now supports ``xz`` compression, and can be enabled " +"by passing ``xztar`` as an argument to ``bdist --format``. (Contributed by " +"Serhiy Storchaka in :issue:`16314`.)" msgstr "" "Ahora el módulo :mod:`distutils` admite la compresión ``xz`` y se puede " "habilitar pasando ``xztar`` como un argumento a ``bdist --format``. " @@ -2469,9 +2473,10 @@ msgstr "" "`22181`.)" #: ../Doc/whatsnew/3.5.rst:1500 +#, fuzzy msgid "" "New :func:`~os.get_blocking` and :func:`~os.set_blocking` functions allow " -"getting and setting a file descriptor's blocking mode (:data:`~os." +"getting and setting a file descriptor's blocking mode (:const:`~os." "O_NONBLOCK`.) (Contributed by Victor Stinner in :issue:`22054`.)" msgstr "" "Las nuevas funciones :func:`~os.get_blocking` y :func:`~os.set_blocking` " @@ -2986,11 +2991,12 @@ msgstr "" "anunciar un socket durante el protocolo de enlace TLS." #: ../Doc/whatsnew/3.5.rst:1783 +#, fuzzy msgid "" "The new :meth:`SSLSocket.selected_alpn_protocol() ` returns the protocol that was selected during the " -"TLS handshake. The :data:`~ssl.HAS_ALPN` flag indicates whether ALPN support " -"is present." +"TLS handshake. The :const:`~ssl.HAS_ALPN` flag indicates whether ALPN " +"support is present." msgstr "" "El nuevo método :meth:`SSLSocket.selected_alpn_protocol() ` retorna el protocolo que se seleccionó durante el " @@ -3813,10 +3819,11 @@ msgstr "" "Serhiy Storchaka en :issue:`19676`.)" #: ../Doc/whatsnew/3.5.rst:2194 +#, fuzzy msgid "" "A new :c:func:`PyErr_FormatV` function similar to :c:func:`PyErr_Format`, " -"but accepts a ``va_list`` argument. (Contributed by Antoine Pitrou in :issue:" -"`18711`.)" +"but accepts a :c:type:`va_list` argument. (Contributed by Antoine Pitrou in :" +"issue:`18711`.)" msgstr "" "Una nueva función :c:func:`PyErr_FormatV` similar a :c:func:`PyErr_Format`, " "pero acepta un argumento ``va_list``. (Contribución de Antoine Pitrou en :" @@ -3862,9 +3869,11 @@ msgstr "" "estable." #: ../Doc/whatsnew/3.5.rst:2214 +#, fuzzy msgid "" "Windows builds now require Microsoft Visual C++ 14.0, which is available as " -"part of `Visual Studio 2015 `_." +"part of `Visual Studio 2015 `_." msgstr "" "Ahora las compilaciones de Windows requieren Microsoft Visual C++ 14.0, que " "está disponible como parte de `Visual Studio 2015 \n" -"Language-Team: python-doc-es\n" "Language: es\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/whatsnew/3.6.rst:3 msgid "What's New In Python 3.6" @@ -408,8 +407,9 @@ msgstr "" "Guido van Rossum. Implementado por Ivan Levkivskyi." #: ../Doc/whatsnew/3.6.rst:240 +#, fuzzy msgid "" -"Tools that use or will use the new syntax: `mypy `_, `pytype `_, PyCharm, etc." msgstr "" "Herramientas que utilizan o utilizarán la nueva sintaxis: `mypy ` is held when allocator " -"functions of :c:data:`PYMEM_DOMAIN_OBJ` (ex: :c:func:`PyObject_Malloc`) and :" -"c:data:`PYMEM_DOMAIN_MEM` (ex: :c:func:`PyMem_Malloc`) domains are called." +"functions of :c:macro:`PYMEM_DOMAIN_OBJ` (ex: :c:func:`PyObject_Malloc`) " +"and :c:macro:`PYMEM_DOMAIN_MEM` (ex: :c:func:`PyMem_Malloc`) domains are " +"called." msgstr "" "Verifique que el :term:`GIL ` se mantenga cuando se " "invoquen las funciones de asignación de los dominios :c:data:" @@ -1555,7 +1557,7 @@ msgstr "" "el atributo ``__module__`` de la clase de tupla con nombre devuelto. " "(Contribuido por Raymond Hettinger en :issue:`17941`.)" -#: ../Doc/whatsnew/3.6.rst:940 ../Doc/whatsnew/3.6.rst:2279 +#: ../Doc/whatsnew/3.6.rst:940 ../Doc/whatsnew/3.6.rst:2281 msgid "" "The *verbose* and *rename* arguments for :func:`~collections.namedtuple` are " "now keyword-only. (Contributed by Raymond Hettinger in :issue:`25628`.)" @@ -1688,10 +1690,11 @@ msgid "distutils" msgstr "distutils" #: ../Doc/whatsnew/3.6.rst:1014 +#, fuzzy msgid "" -"The ``default_format`` attribute has been removed from :class:`distutils." -"command.sdist.sdist` and the ``formats`` attribute defaults to " -"``['gztar']``. Although not anticipated, any code relying on the presence of " +"The ``default_format`` attribute has been removed from ``distutils.command." +"sdist.sdist`` and the ``formats`` attribute defaults to ``['gztar']``. " +"Although not anticipated, any code relying on the presence of " "``default_format`` may need to be adapted. See :issue:`27819` for more " "details." msgstr "" @@ -2424,8 +2427,9 @@ msgid "site" msgstr "sitio" #: ../Doc/whatsnew/3.6.rst:1391 +#, fuzzy msgid "" -"When specifying paths to add to :attr:`sys.path` in a ``.pth`` file, you may " +"When specifying paths to add to :data:`sys.path` in a ``.pth`` file, you may " "now specify file paths on top of directories (e.g. zip files). (Contributed " "by Wolfgang Langner in :issue:`26587`)." msgstr "" @@ -2451,8 +2455,9 @@ msgid "socket" msgstr "enchufe" #: ../Doc/whatsnew/3.6.rst:1406 +#, fuzzy msgid "" -"The :func:`~socket.socket.ioctl` function now supports the :data:`~socket." +"The :func:`~socket.socket.ioctl` function now supports the :const:`~socket." "SIO_LOOPBACK_FAST_PATH` control code. (Contributed by Daniel Stokes in :" "issue:`26536`.)" msgstr "" @@ -2481,8 +2486,9 @@ msgstr "" "Christian Heimes en :issue:`27744`.)" #: ../Doc/whatsnew/3.6.rst:1418 +#, fuzzy msgid "" -"The socket module now supports the address family :data:`~socket.AF_ALG` to " +"The socket module now supports the address family :const:`~socket.AF_ALG` to " "interface with Linux Kernel crypto API. ``ALG_*``, ``SOL_ALG`` and :meth:" "`~socket.socket.sendmsg_afalg` were added. (Contributed by Christian Heimes " "in :issue:`27744` with support from Victor Stinner.)" @@ -2963,7 +2969,7 @@ msgstr "" "``Crawl-delay`` y ``Request-rate``. (Contribuido por Nikolay Bogoychev en :" "issue:`16099`.)" -#: ../Doc/whatsnew/3.6.rst:1687 ../Doc/whatsnew/3.6.rst:2056 +#: ../Doc/whatsnew/3.6.rst:1687 ../Doc/whatsnew/3.6.rst:2058 msgid "venv" msgstr "venv" @@ -3224,8 +3230,9 @@ msgstr "" "hasta un 80% más rápido. (Contribuido por Josh Snider en :issue:`26574`)." #: ../Doc/whatsnew/3.6.rst:1824 +#, fuzzy msgid "" -"Allocator functions of the :c:func:`PyMem_Malloc` domain (:c:data:" +"Allocator functions of the :c:func:`PyMem_Malloc` domain (:c:macro:" "`PYMEM_DOMAIN_MEM`) now use the :ref:`pymalloc memory allocator ` " "instead of :c:func:`malloc` function of the C library. The pymalloc " "allocator is optimized for objects smaller or equal to 512 bytes with a " @@ -3346,10 +3353,12 @@ msgstr "" "Alecsandru Patrascu de Intel en :issue:`26359`.)" #: ../Doc/whatsnew/3.6.rst:1876 +#, fuzzy msgid "" "The :term:`GIL ` must now be held when allocator " -"functions of :c:data:`PYMEM_DOMAIN_OBJ` (ex: :c:func:`PyObject_Malloc`) and :" -"c:data:`PYMEM_DOMAIN_MEM` (ex: :c:func:`PyMem_Malloc`) domains are called." +"functions of :c:macro:`PYMEM_DOMAIN_OBJ` (ex: :c:func:`PyObject_Malloc`) " +"and :c:macro:`PYMEM_DOMAIN_MEM` (ex: :c:func:`PyMem_Malloc`) domains are " +"called." msgstr "" "El :term:`GIL ` ahora debe mantenerse cuando se " "llaman las funciones de asignación de los dominios :c:data:" @@ -3555,11 +3564,12 @@ msgstr "" "`21708`.)" #: ../Doc/whatsnew/3.6.rst:1988 +#, fuzzy msgid "" -"The undocumented ``extra_path`` argument to the :class:`~distutils." -"Distribution` constructor is now considered deprecated and will raise a " -"warning if set. Support for this parameter will be removed in a future " -"Python release. See :issue:`27919` for details." +"The undocumented ``extra_path`` argument to the ``distutils.Distribution`` " +"constructor is now considered deprecated and will raise a warning if set. " +"Support for this parameter will be removed in a future Python release. See :" +"issue:`27919` for details." msgstr "" "El argumento ``extra_path`` sin documentar para el constructor :class:" "`~distutils.Distribution` ahora se considera obsoleto y lanzará una " @@ -3596,9 +3606,10 @@ msgstr "" "exec_module`." #: ../Doc/whatsnew/3.6.rst:2012 +#, fuzzy msgid "" "The :class:`importlib.machinery.WindowsRegistryFinder` class is now " -"deprecated. As of 3.6.0, it is still added to :attr:`sys.meta_path` by " +"deprecated. As of 3.6.0, it is still added to :data:`sys.meta_path` by " "default (on Windows), but this may change in future releases." msgstr "" "La clase :class:`importlib.machinery.WindowsRegistryFinder` ahora está en " @@ -3671,7 +3682,7 @@ msgstr "" "El módulo :mod:`tkinter.tix` ahora está en desuso. Los usuarios de :mod:" "`tkinter` deberían utilizar :mod:`tkinter.ttk` en su lugar." -#: ../Doc/whatsnew/3.6.rst:2058 +#: ../Doc/whatsnew/3.6.rst:2060 msgid "" "The ``pyvenv`` script has been deprecated in favour of ``python3 -m venv``. " "This prevents confusion as to what Python interpreter ``pyvenv`` is " @@ -3684,15 +3695,16 @@ msgstr "" "utilizado por el entorno virtual. (Contribuido por Brett Cannon en :issue:" "`25154`.)" -#: ../Doc/whatsnew/3.6.rst:2065 +#: ../Doc/whatsnew/3.6.rst:2067 msgid "Deprecated functions and types of the C API" msgstr "Funciones y tipos obsoletos de la API de C" -#: ../Doc/whatsnew/3.6.rst:2067 +#: ../Doc/whatsnew/3.6.rst:2069 +#, fuzzy msgid "" -"Undocumented functions :c:func:`PyUnicode_AsEncodedObject`, :c:func:" -"`PyUnicode_AsDecodedObject`, :c:func:`PyUnicode_AsEncodedUnicode` and :c:" -"func:`PyUnicode_AsDecodedUnicode` are deprecated now. Use the :ref:`generic " +"Undocumented functions :c:func:`!PyUnicode_AsEncodedObject`, :c:func:`!" +"PyUnicode_AsDecodedObject`, :c:func:`!PyUnicode_AsEncodedUnicode` and :c:" +"func:`!PyUnicode_AsDecodedUnicode` are deprecated now. Use the :ref:`generic " "codec based API ` instead." msgstr "" "Las funciones no documentadas :c:func:`PyUnicode_AsEncodedObject`, :c:func:" @@ -3700,11 +3712,11 @@ msgstr "" "`PyUnicode_AsDecodedUnicode` ahora están en desuso. En su lugar, utilice el :" "ref:`generic codec based API `." -#: ../Doc/whatsnew/3.6.rst:2074 +#: ../Doc/whatsnew/3.6.rst:2076 msgid "Deprecated Build Options" msgstr "Opciones de compilación obsoletas" -#: ../Doc/whatsnew/3.6.rst:2076 +#: ../Doc/whatsnew/3.6.rst:2078 msgid "" "The ``--with-system-ffi`` configure flag is now on by default on non-macOS " "UNIX platforms. It may be disabled by using ``--without-system-ffi``, but " @@ -3720,15 +3732,15 @@ msgstr "" "operativos ya utilizan el indicador ``--with-system-ffi`` al crear su " "sistema Python." -#: ../Doc/whatsnew/3.6.rst:2084 +#: ../Doc/whatsnew/3.6.rst:2086 msgid "Removed" msgstr "Remoto" -#: ../Doc/whatsnew/3.6.rst:2087 +#: ../Doc/whatsnew/3.6.rst:2089 msgid "API and Feature Removals" msgstr "Eliminaciones de API y funciones" -#: ../Doc/whatsnew/3.6.rst:2089 +#: ../Doc/whatsnew/3.6.rst:2091 msgid "" "Unknown escapes consisting of ``'\\'`` and an ASCII letter in regular " "expressions will now cause an error. In replacement templates for :func:`re." @@ -3740,7 +3752,7 @@ msgstr "" "reemplazo para :func:`re.sub`, todavía están permitidas, pero en desuso. La " "bandera :const:`re.LOCALE` ahora solo se puede usar con patrones binarios." -#: ../Doc/whatsnew/3.6.rst:2094 +#: ../Doc/whatsnew/3.6.rst:2096 msgid "" "``inspect.getmoduleinfo()`` was removed (was deprecated since CPython 3.3). :" "func:`inspect.getmodulename` should be used for obtaining the module name " @@ -3751,7 +3763,7 @@ msgstr "" "módulo para una ruta determinada. (Contribuido por Yury Selivanov en :issue:" "`13248`.)" -#: ../Doc/whatsnew/3.6.rst:2099 +#: ../Doc/whatsnew/3.6.rst:2101 msgid "" "``traceback.Ignore`` class and ``traceback.usage``, ``traceback.modname``, " "``traceback.fullmodname``, ``traceback.find_lines_from_code``, ``traceback." @@ -3767,7 +3779,7 @@ msgstr "" "métodos no documentados en desuso desde Python 3.2 y la funcionalidad " "equivalente está disponible en métodos privados." -#: ../Doc/whatsnew/3.6.rst:2106 +#: ../Doc/whatsnew/3.6.rst:2108 msgid "" "The ``tk_menuBar()`` and ``tk_bindForTraversal()`` dummy methods in :mod:" "`tkinter` widget classes were removed (corresponding Tk commands were " @@ -3777,7 +3789,7 @@ msgstr "" "``tk_bindForTraversal()`` en las clases de widgets :mod:`tkinter` (los " "comandos Tk correspondientes estaban obsoletos desde Tk 4.0)." -#: ../Doc/whatsnew/3.6.rst:2110 +#: ../Doc/whatsnew/3.6.rst:2112 msgid "" "The :meth:`~zipfile.ZipFile.open` method of the :class:`zipfile.ZipFile` " "class no longer supports the ``'U'`` mode (was deprecated since Python 3.4). " @@ -3789,7 +3801,7 @@ msgstr "" "class:`io.TextIOWrapper` para leer archivos de texto comprimidos en modo :" "term:`universal newlines`." -#: ../Doc/whatsnew/3.6.rst:2115 +#: ../Doc/whatsnew/3.6.rst:2117 msgid "" "The undocumented ``IN``, ``CDROM``, ``DLFCN``, ``TYPES``, ``CDIO``, and " "``STROPTS`` modules have been removed. They had been available in the " @@ -3807,15 +3819,15 @@ msgstr "" "disponible en la distribución fuente en: source: `Tools / scripts / h2py.py " "`_." -#: ../Doc/whatsnew/3.6.rst:2123 +#: ../Doc/whatsnew/3.6.rst:2125 msgid "The deprecated ``asynchat.fifo`` class has been removed." msgstr "Se ha eliminado la clase ``asynchat.fifo`` obsoleta." -#: ../Doc/whatsnew/3.6.rst:2127 +#: ../Doc/whatsnew/3.6.rst:2129 msgid "Porting to Python 3.6" msgstr "Portar a Python 3.6" -#: ../Doc/whatsnew/3.6.rst:2129 +#: ../Doc/whatsnew/3.6.rst:2131 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code." @@ -3823,11 +3835,11 @@ msgstr "" "Esta sección enumera los cambios descritos anteriormente y otras " "correcciones de errores que pueden requerir cambios en su código." -#: ../Doc/whatsnew/3.6.rst:2133 +#: ../Doc/whatsnew/3.6.rst:2135 msgid "Changes in 'python' Command Behavior" msgstr "Cambios en el comportamiento del comando 'python'" -#: ../Doc/whatsnew/3.6.rst:2135 +#: ../Doc/whatsnew/3.6.rst:2137 msgid "" "The output of a special Python build with defined ``COUNT_ALLOCS``, " "``SHOW_ALLOC_COUNT`` or ``SHOW_TRACK_COUNT`` macros is now off by default. " @@ -3841,11 +3853,11 @@ msgstr "" "showalloccount``. Ahora emite a ``stderr`` en lugar de ``stdout``. " "(Contribuido por Serhiy Storchaka en :issue:`23034`.)" -#: ../Doc/whatsnew/3.6.rst:2143 +#: ../Doc/whatsnew/3.6.rst:2145 msgid "Changes in the Python API" msgstr "Cambios en la API de Python" -#: ../Doc/whatsnew/3.6.rst:2145 +#: ../Doc/whatsnew/3.6.rst:2147 msgid "" ":func:`open() ` will no longer allow combining the ``'U'`` mode flag " "with ``'+'``. (Contributed by Jeff Balogh and John O'Connor in :issue:" @@ -3854,7 +3866,7 @@ msgstr "" ":func:`open() ` ya no permitirá combinar el indicador de modo ``'U'`` " "con ``'+'``. (Contribuido por Jeff Balogh y John O'Connor en :issue:`2091`.)" -#: ../Doc/whatsnew/3.6.rst:2149 +#: ../Doc/whatsnew/3.6.rst:2151 msgid "" ":mod:`sqlite3` no longer implicitly commits an open transaction before DDL " "statements." @@ -3862,7 +3874,7 @@ msgstr "" ":mod:`sqlite3` ya no confirma implícitamente una transacción abierta antes " "de las declaraciones DDL." -#: ../Doc/whatsnew/3.6.rst:2152 +#: ../Doc/whatsnew/3.6.rst:2154 msgid "" "On Linux, :func:`os.urandom` now blocks until the system urandom entropy " "pool is initialized to increase the security." @@ -3870,7 +3882,7 @@ msgstr "" "En Linux, :func:`os.urandom` ahora se bloquea hasta que se inicializa el " "grupo de entropía aleatoria del sistema para aumentar la seguridad." -#: ../Doc/whatsnew/3.6.rst:2155 +#: ../Doc/whatsnew/3.6.rst:2157 msgid "" "When :meth:`importlib.abc.Loader.exec_module` is defined, :meth:`importlib." "abc.Loader.create_module` must also be defined." @@ -3878,7 +3890,7 @@ msgstr "" "Cuando se define :meth:`importlib.abc.Loader.exec_module`, también se debe " "definir :meth:`importlib.abc.Loader.create_module`." -#: ../Doc/whatsnew/3.6.rst:2158 +#: ../Doc/whatsnew/3.6.rst:2160 msgid "" ":c:func:`PyErr_SetImportError` now sets :exc:`TypeError` when its **msg** " "argument is not set. Previously only ``NULL`` was returned." @@ -3887,7 +3899,7 @@ msgstr "" "argumento **msg** no está establecido. Anteriormente, solo se devolvía " "``NULL``." -#: ../Doc/whatsnew/3.6.rst:2161 +#: ../Doc/whatsnew/3.6.rst:2163 msgid "" "The format of the ``co_lnotab`` attribute of code objects changed to support " "a negative line number delta. By default, Python does not emit bytecode with " @@ -3911,7 +3923,7 @@ msgstr "" "``co_lnotab`` y cómo decodificarlo, y consulte :pep:`511` para conocer la " "justificación." -#: ../Doc/whatsnew/3.6.rst:2171 +#: ../Doc/whatsnew/3.6.rst:2173 msgid "" "The functions in the :mod:`compileall` module now return booleans instead of " "``1`` or ``0`` to represent success or failure, respectively. Thanks to " @@ -3924,7 +3936,7 @@ msgstr "" "debería ser un problema si estaba haciendo verificaciones de identidad para " "``1`` o ``0``. Ver :issue:`25768`." -#: ../Doc/whatsnew/3.6.rst:2176 +#: ../Doc/whatsnew/3.6.rst:2178 msgid "" "Reading the :attr:`~urllib.parse.SplitResult.port` attribute of :func:" "`urllib.parse.urlsplit` and :func:`~urllib.parse.urlparse` results now " @@ -3936,15 +3948,16 @@ msgstr "" "ahora lanza :exc:`ValueError` para valores fuera de rango, en lugar de " "devolver :const:`None`. Ver :issue:`20059`." -#: ../Doc/whatsnew/3.6.rst:2181 +#: ../Doc/whatsnew/3.6.rst:2183 +#, fuzzy msgid "" -"The :mod:`imp` module now raises a :exc:`DeprecationWarning` instead of :exc:" -"`PendingDeprecationWarning`." +"The :mod:`!imp` module now raises a :exc:`DeprecationWarning` instead of :" +"exc:`PendingDeprecationWarning`." msgstr "" "El módulo :mod:`imp` ahora lanza un :exc:`DeprecationWarning` en lugar de :" "exc:`PendingDeprecationWarning`." -#: ../Doc/whatsnew/3.6.rst:2184 +#: ../Doc/whatsnew/3.6.rst:2186 msgid "" "The following modules have had missing APIs added to their :attr:`__all__` " "attributes to match the documented APIs: :mod:`calendar`, :mod:`cgi`, :mod:" @@ -3964,7 +3977,7 @@ msgstr "" "que exportarán nuevos símbolos cuando se utilice ``import *``. (Contribuido " "por Joel Taddei y Jacek Kołodziej en :issue:`23883`.)" -#: ../Doc/whatsnew/3.6.rst:2195 +#: ../Doc/whatsnew/3.6.rst:2197 msgid "" "When performing a relative import, if ``__package__`` does not compare equal " "to ``__spec__.parent`` then :exc:`ImportWarning` is raised. (Contributed by " @@ -3974,7 +3987,7 @@ msgstr "" "que ``__spec__.parent``, entonces :exc:`ImportWarning` se lanza. " "(Contribuido por Brett Cannon en :issue:`25791`.)" -#: ../Doc/whatsnew/3.6.rst:2199 +#: ../Doc/whatsnew/3.6.rst:2201 msgid "" "When a relative import is performed and no parent package is known, then :" "exc:`ImportError` will be raised. Previously, :exc:`SystemError` could be " @@ -3984,7 +3997,7 @@ msgstr "" "principal, se lanzará :exc:`ImportError`. Anteriormente, se podía subir :exc:" "`SystemError`. (Contribuido por Brett Cannon en :issue:`18018`.)" -#: ../Doc/whatsnew/3.6.rst:2203 +#: ../Doc/whatsnew/3.6.rst:2205 msgid "" "Servers based on the :mod:`socketserver` module, including those defined in :" "mod:`http.server`, :mod:`xmlrpc.server` and :mod:`wsgiref.simple_server`, " @@ -4003,7 +4016,7 @@ msgstr "" "servidor de un solo subproceso. (Contribuido por Martin Panter en :issue:" "`23430`.)" -#: ../Doc/whatsnew/3.6.rst:2212 +#: ../Doc/whatsnew/3.6.rst:2214 msgid "" ":func:`spwd.getspnam` now raises a :exc:`PermissionError` instead of :exc:" "`KeyError` if the user doesn't have privileges." @@ -4011,7 +4024,7 @@ msgstr "" ":func:`spwd.getspnam` ahora lanza un :exc:`PermissionError` en lugar de :exc:" "`KeyError` si el usuario no tiene privilegios." -#: ../Doc/whatsnew/3.6.rst:2215 +#: ../Doc/whatsnew/3.6.rst:2217 msgid "" "The :meth:`socket.socket.close` method now raises an exception if an error " "(e.g. ``EBADF``) was reported by the underlying system call. (Contributed by " @@ -4021,7 +4034,7 @@ msgstr "" "llamada al sistema subyacente informó un error (por ejemplo, ``EBADF``). " "(Contribuido por Martin Panter en :issue:`26685`.)" -#: ../Doc/whatsnew/3.6.rst:2219 +#: ../Doc/whatsnew/3.6.rst:2221 msgid "" "The *decode_data* argument for the :class:`smtpd.SMTPChannel` and :class:" "`smtpd.SMTPServer` constructors is now ``False`` by default. This means that " @@ -4037,7 +4050,7 @@ msgstr "" "argumentos de palabra clave. El código que ya se haya actualizado de acuerdo " "con la advertencia de obsolescencia generada por 3.5 no se verá afectado." -#: ../Doc/whatsnew/3.6.rst:2227 +#: ../Doc/whatsnew/3.6.rst:2229 msgid "" "All optional arguments of the :func:`~json.dump`, :func:`~json.dumps`, :func:" "`~json.load` and :func:`~json.loads` functions and :class:`~json." @@ -4051,7 +4064,7 @@ msgstr "" "módulo :mod:`json` ahora son :ref:`keyword-only `. " "(Contribuido por Serhiy Storchaka en :issue:`18726`.)" -#: ../Doc/whatsnew/3.6.rst:2234 +#: ../Doc/whatsnew/3.6.rst:2236 msgid "" "Subclasses of :class:`type` which don't override ``type.__new__`` may no " "longer use the one-argument form to get the type of an object." @@ -4059,7 +4072,7 @@ msgstr "" "Es posible que las subclases de :class:`type` que no anulan ``type.__new__`` " "ya no utilicen la forma de un argumento para obtener el tipo de un objeto." -#: ../Doc/whatsnew/3.6.rst:2237 +#: ../Doc/whatsnew/3.6.rst:2239 msgid "" "As part of :pep:`487`, the handling of keyword arguments passed to :class:" "`type` (other than the metaclass hint, ``metaclass``) is now consistently " @@ -4081,12 +4094,13 @@ msgstr "" "meth:`type.__new__` (ya sea directa o mediante :class:`super`) en " "consecuencia." -#: ../Doc/whatsnew/3.6.rst:2246 +#: ../Doc/whatsnew/3.6.rst:2248 +#, fuzzy msgid "" -"In :class:`distutils.command.sdist.sdist`, the ``default_format`` attribute " -"has been removed and is no longer honored. Instead, the gzipped tarfile " -"format is the default on all platforms and no platform-specific selection is " -"made. In environments where distributions are built on Windows and zip " +"In ``distutils.command.sdist.sdist``, the ``default_format`` attribute has " +"been removed and is no longer honored. Instead, the gzipped tarfile format " +"is the default on all platforms and no platform-specific selection is made. " +"In environments where distributions are built on Windows and zip " "distributions are required, configure the project with a ``setup.cfg`` file " "containing the following:" msgstr "" @@ -4097,7 +4111,7 @@ msgstr "" "distribuciones se construyen en Windows y se requieren distribuciones zip, " "configure el proyecto con un archivo ``setup.cfg`` que contenga lo siguiente:" -#: ../Doc/whatsnew/3.6.rst:2259 +#: ../Doc/whatsnew/3.6.rst:2261 msgid "" "This behavior has also been backported to earlier Python versions by " "Setuptools 26.0.0." @@ -4105,7 +4119,7 @@ msgstr "" "Este comportamiento también ha sido actualizado a versiones anteriores de " "Python por Setuptools 26.0.0." -#: ../Doc/whatsnew/3.6.rst:2262 +#: ../Doc/whatsnew/3.6.rst:2264 msgid "" "In the :mod:`urllib.request` module and the :meth:`http.client." "HTTPConnection.request` method, if no Content-Length header field has been " @@ -4123,7 +4137,7 @@ msgstr "" "el valor de Longitud de contenido. (Contribuido por Demian Brecht y Rolf " "Krahl con ajustes de Martin Panter en :issue:`12319`.)" -#: ../Doc/whatsnew/3.6.rst:2271 +#: ../Doc/whatsnew/3.6.rst:2273 msgid "" "The :class:`~csv.DictReader` now returns rows of type :class:`~collections." "OrderedDict`. (Contributed by Steve Holden in :issue:`27842`.)" @@ -4131,7 +4145,7 @@ msgstr "" "El :class:`~csv.DictReader` ahora devuelve filas de tipo :class:" "`~collections.OrderedDict`. (Contribuido por Steve Holden en :issue:`27842`.)" -#: ../Doc/whatsnew/3.6.rst:2275 +#: ../Doc/whatsnew/3.6.rst:2277 msgid "" "The :const:`crypt.METHOD_CRYPT` will no longer be added to ``crypt.methods`` " "if unsupported by the platform. (Contributed by Victor Stinner in :issue:" @@ -4140,7 +4154,7 @@ msgstr "" "El :const:`crypt.METHOD_CRYPT` ya no se agregará a ``crypt.methods`` si la " "plataforma no lo admite. (Contribuido por Victor Stinner en :issue:`25287`.)" -#: ../Doc/whatsnew/3.6.rst:2283 +#: ../Doc/whatsnew/3.6.rst:2285 msgid "" "On Linux, :func:`ctypes.util.find_library` now looks in ``LD_LIBRARY_PATH`` " "for shared libraries. (Contributed by Vinay Sajip in :issue:`9998`.)" @@ -4149,7 +4163,7 @@ msgstr "" "compartidas en ``LD_LIBRARY_PATH``. (Contribuido por Vinay Sajip en :issue:" "`9998`.)" -#: ../Doc/whatsnew/3.6.rst:2287 +#: ../Doc/whatsnew/3.6.rst:2289 msgid "" "The :class:`imaplib.IMAP4` class now handles flags containing the ``']'`` " "character in messages sent from the server to improve real-world " @@ -4160,7 +4174,7 @@ msgstr "" "compatibilidad en el mundo real. (Contribuido por Lita Cho en :issue:" "`21815`.)" -#: ../Doc/whatsnew/3.6.rst:2292 +#: ../Doc/whatsnew/3.6.rst:2294 msgid "" "The :func:`mmap.write() ` function now returns the number of " "bytes written like other write methods. (Contributed by Jakub Stasiak in :" @@ -4170,7 +4184,7 @@ msgstr "" "bytes escritos como otros métodos de escritura. (Contribuido por Jakub " "Stasiak en :issue:`26335`.)" -#: ../Doc/whatsnew/3.6.rst:2296 +#: ../Doc/whatsnew/3.6.rst:2298 msgid "" "The :func:`pkgutil.iter_modules` and :func:`pkgutil.walk_packages` functions " "now return :class:`~pkgutil.ModuleInfo` named tuples. (Contributed by " @@ -4180,7 +4194,7 @@ msgstr "" "ahora devuelven tuplas con nombre :class:`~pkgutil.ModuleInfo`. (Contribuido " "por Ramchandra Apte en :issue:`17211`.)" -#: ../Doc/whatsnew/3.6.rst:2300 +#: ../Doc/whatsnew/3.6.rst:2302 msgid "" ":func:`re.sub` now raises an error for invalid numerical group references in " "replacement templates even if the pattern is not found in the string. The " @@ -4194,7 +4208,7 @@ msgstr "" "incluye el índice de grupo y la posición de la referencia. (Contribuido por " "SilentGhost, Serhiy Storchaka en :issue:`25953`.)" -#: ../Doc/whatsnew/3.6.rst:2306 +#: ../Doc/whatsnew/3.6.rst:2308 msgid "" ":class:`zipfile.ZipFile` will now raise :exc:`NotImplementedError` for " "unrecognized compression values. Previously a plain :exc:`RuntimeError` was " @@ -4211,7 +4225,7 @@ msgstr "" "`ValueError`. Anteriormente, se planteó un :exc:`RuntimeError` en esos " "escenarios." -#: ../Doc/whatsnew/3.6.rst:2313 +#: ../Doc/whatsnew/3.6.rst:2315 msgid "" "when custom metaclasses are combined with zero-argument :func:`super` or " "direct references from methods to the implicit ``__class__`` closure " @@ -4227,7 +4241,7 @@ msgstr "" "hacerlo resultará en un :exc:`DeprecationWarning` en Python 3.6 y un :exc:" "`RuntimeError` en Python 3.8." -#: ../Doc/whatsnew/3.6.rst:2320 +#: ../Doc/whatsnew/3.6.rst:2322 msgid "" "With the introduction of :exc:`ModuleNotFoundError`, import system consumers " "may start expecting import system replacements to raise that more specific " @@ -4251,11 +4265,11 @@ msgstr "" "deberían necesitar realizar ningún cambio, ya que el sistema de importación " "predeterminado lanzará la nueva subclase cuando sea apropiado." -#: ../Doc/whatsnew/3.6.rst:2332 +#: ../Doc/whatsnew/3.6.rst:2334 msgid "Changes in the C API" msgstr "Cambios en la API de C" -#: ../Doc/whatsnew/3.6.rst:2334 +#: ../Doc/whatsnew/3.6.rst:2336 msgid "" "The :c:func:`PyMem_Malloc` allocator family now uses the :ref:`pymalloc " "allocator ` rather than the system :c:func:`malloc`. Applications " @@ -4270,7 +4284,7 @@ msgstr "" "``debug`` para validar el uso de asignadores de memoria en su aplicación. " "Ver :issue:`26249`." -#: ../Doc/whatsnew/3.6.rst:2340 +#: ../Doc/whatsnew/3.6.rst:2342 msgid "" ":c:func:`Py_Exit` (and the main interpreter) now override the exit status " "with 120 if flushing buffered data failed. See :issue:`5319`." @@ -4279,17 +4293,17 @@ msgstr "" "salida con 120 si fallaron los datos almacenados en el búfer. Ver :issue:" "`5319`." -#: ../Doc/whatsnew/3.6.rst:2345 +#: ../Doc/whatsnew/3.6.rst:2347 msgid "CPython bytecode changes" msgstr "Cambios en el código de bytes de CPython" -#: ../Doc/whatsnew/3.6.rst:2347 +#: ../Doc/whatsnew/3.6.rst:2349 msgid "" "There have been several major changes to the :term:`bytecode` in Python 3.6." msgstr "" "Ha habido varios cambios importantes en el :term:`bytecode` en Python 3.6." -#: ../Doc/whatsnew/3.6.rst:2349 +#: ../Doc/whatsnew/3.6.rst:2351 msgid "" "The Python interpreter now uses a 16-bit wordcode instead of bytecode. " "(Contributed by Demur Rumed with input and reviews from Serhiy Storchaka and " @@ -4299,7 +4313,7 @@ msgstr "" "de un código de bytes. (Contribuido por Demur Rumed con aportes y reseñas de " "Serhiy Storchaka y Victor Stinner en :issue:`26647` y :issue:`28050`.)" -#: ../Doc/whatsnew/3.6.rst:2353 +#: ../Doc/whatsnew/3.6.rst:2355 msgid "" "The new :opcode:`FORMAT_VALUE` and :opcode:`BUILD_STRING` opcodes as part of " "the :ref:`formatted string literal ` implementation. " @@ -4311,7 +4325,7 @@ msgstr "" "literal `. (Contribuido por Eric Smith en :issue:`25483` " "y Serhiy Storchaka en :issue:`27078`.)" -#: ../Doc/whatsnew/3.6.rst:2358 +#: ../Doc/whatsnew/3.6.rst:2360 msgid "" "The new :opcode:`BUILD_CONST_KEY_MAP` opcode to optimize the creation of " "dictionaries with constant keys. (Contributed by Serhiy Storchaka in :issue:" @@ -4321,7 +4335,7 @@ msgstr "" "diccionarios con claves constantes. (Contribuido por Serhiy Storchaka en :" "issue:`27140`.)" -#: ../Doc/whatsnew/3.6.rst:2362 +#: ../Doc/whatsnew/3.6.rst:2364 msgid "" "The function call opcodes have been heavily reworked for better performance " "and simpler implementation. The :opcode:`MAKE_FUNCTION`, :opcode:" @@ -4343,7 +4357,7 @@ msgstr "" "(Contribuido por Demur Rumed en :issue:`27095` y Serhiy Storchaka en :issue:" "`27213`, :issue:`28257`.)" -#: ../Doc/whatsnew/3.6.rst:2373 +#: ../Doc/whatsnew/3.6.rst:2375 msgid "" "The new :opcode:`SETUP_ANNOTATIONS` and :opcode:`STORE_ANNOTATION` opcodes " "have been added to support the new :term:`variable annotation` syntax. " @@ -4353,15 +4367,15 @@ msgstr "" "y :opcode:`STORE_ANNOTATION` para admitir la nueva sintaxis :term:`variable " "annotation`. (Contribuido por Ivan Levkivskyi en :issue:`27985`.)" -#: ../Doc/whatsnew/3.6.rst:2379 +#: ../Doc/whatsnew/3.6.rst:2381 msgid "Notable changes in Python 3.6.2" msgstr "Cambios notables en Python 3.6.2" -#: ../Doc/whatsnew/3.6.rst:2382 +#: ../Doc/whatsnew/3.6.rst:2384 msgid "New ``make regen-all`` build target" msgstr "Nuevo objetivo de compilación ``make regen-all``" -#: ../Doc/whatsnew/3.6.rst:2384 +#: ../Doc/whatsnew/3.6.rst:2386 msgid "" "To simplify cross-compilation, and to ensure that CPython can reliably be " "compiled without requiring an existing version of Python to already be " @@ -4374,7 +4388,7 @@ msgstr "" "no intenta volver a compilar implícitamente los archivos generados en " "función de los tiempos de modificación del archivo." -#: ../Doc/whatsnew/3.6.rst:2389 +#: ../Doc/whatsnew/3.6.rst:2391 msgid "" "Instead, a new ``make regen-all`` command has been added to force " "regeneration of these files when desired (e.g. after an initial version of " @@ -4385,7 +4399,7 @@ msgstr "" "que ya se haya creado una versión inicial de Python basada en las versiones " "pregeneradas)." -#: ../Doc/whatsnew/3.6.rst:2393 +#: ../Doc/whatsnew/3.6.rst:2395 msgid "" "More selective regeneration targets are also defined - see :source:`Makefile." "pre.in` for details." @@ -4393,15 +4407,15 @@ msgstr "" "También se definen objetivos de regeneración más selectivos; consulte: " "fuente: `Makefile.pre.in` para obtener más detalles." -#: ../Doc/whatsnew/3.6.rst:2396 ../Doc/whatsnew/3.6.rst:2409 +#: ../Doc/whatsnew/3.6.rst:2398 ../Doc/whatsnew/3.6.rst:2411 msgid "(Contributed by Victor Stinner in :issue:`23404`.)" msgstr "(Contribuido por Victor Stinner en :issue:`23404`.)" -#: ../Doc/whatsnew/3.6.rst:2402 +#: ../Doc/whatsnew/3.6.rst:2404 msgid "Removal of ``make touch`` build target" msgstr "Eliminación del objetivo de compilación ``make touch``" -#: ../Doc/whatsnew/3.6.rst:2404 +#: ../Doc/whatsnew/3.6.rst:2406 msgid "" "The ``make touch`` build target previously used to request implicit " "regeneration of generated files by updating their modification times has " @@ -4411,15 +4425,15 @@ msgstr "" "anteriormente para solicitar la regeneración implícita de archivos generados " "mediante la actualización de sus tiempos de modificación." -#: ../Doc/whatsnew/3.6.rst:2407 +#: ../Doc/whatsnew/3.6.rst:2409 msgid "It has been replaced by the new ``make regen-all`` target." msgstr "Ha sido reemplazado por el nuevo objetivo ``make regen-all``." -#: ../Doc/whatsnew/3.6.rst:2415 +#: ../Doc/whatsnew/3.6.rst:2417 msgid "Notable changes in Python 3.6.4" msgstr "Cambios notables en Python 3.6.4" -#: ../Doc/whatsnew/3.6.rst:2417 +#: ../Doc/whatsnew/3.6.rst:2419 msgid "" "The ``PyExc_RecursionErrorInst`` singleton that was part of the public API " "has been removed as its members being never cleared may cause a segfault " @@ -4431,11 +4445,11 @@ msgstr "" "falla de segmentación durante la finalización del intérprete. (Contribuido " "por Xavier de Gaye en :issue:`22898` y :issue:`30697`.)" -#: ../Doc/whatsnew/3.6.rst:2424 +#: ../Doc/whatsnew/3.6.rst:2426 msgid "Notable changes in Python 3.6.5" msgstr "Cambios notables en Python 3.6.5" -#: ../Doc/whatsnew/3.6.rst:2426 +#: ../Doc/whatsnew/3.6.rst:2428 msgid "" "The :func:`locale.localeconv` function now sets temporarily the ``LC_CTYPE`` " "locale to the ``LC_NUMERIC`` locale in some cases. (Contributed by Victor " @@ -4446,11 +4460,11 @@ msgstr "" "``LC_NUMERIC`` en algunos casos. (Contribuido por Victor Stinner en :issue:" "`31900`.)" -#: ../Doc/whatsnew/3.6.rst:2431 +#: ../Doc/whatsnew/3.6.rst:2433 msgid "Notable changes in Python 3.6.7" msgstr "Cambios notables en Python 3.6.7" -#: ../Doc/whatsnew/3.6.rst:2433 +#: ../Doc/whatsnew/3.6.rst:2435 msgid "" "In 3.6.7 the :mod:`tokenize` module now implicitly emits a ``NEWLINE`` token " "when provided with input that does not have a trailing new line. This " @@ -4462,11 +4476,11 @@ msgstr "" "línea al final. Este comportamiento ahora coincide con lo que hace el " "tokenizador C internamente. (Contribuido por Ammar Askar en :issue:`33899`.)" -#: ../Doc/whatsnew/3.6.rst:2439 +#: ../Doc/whatsnew/3.6.rst:2441 msgid "Notable changes in Python 3.6.10" msgstr "Cambios notables en Python 3.6.10" -#: ../Doc/whatsnew/3.6.rst:2441 +#: ../Doc/whatsnew/3.6.rst:2443 msgid "" "Due to significant security concerns, the *reuse_address* parameter of :meth:" "`asyncio.loop.create_datagram_endpoint` is no longer supported. This is " @@ -4482,11 +4496,11 @@ msgstr "" "create_datagram_endpoint()``. (Contribuido por Kyle Stanley, Antoine Pitrou " "y Yury Selivanov en :issue:`37228`.)" -#: ../Doc/whatsnew/3.6.rst:2449 +#: ../Doc/whatsnew/3.6.rst:2451 msgid "Notable changes in Python 3.6.13" msgstr "Cambios notables en Python 3.6.13" -#: ../Doc/whatsnew/3.6.rst:2451 +#: ../Doc/whatsnew/3.6.rst:2453 msgid "" "Earlier Python versions allowed using both ``;`` and ``&`` as query " "parameter separators in :func:`urllib.parse.parse_qs` and :func:`urllib." diff --git a/whatsnew/3.7.po b/whatsnew/3.7.po index d3160f7f92..a9f0abf20b 100644 --- a/whatsnew/3.7.po +++ b/whatsnew/3.7.po @@ -10,17 +10,16 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-30 16:55-0300\n" "Last-Translator: Cristián Maureira-Fredes \n" -"Language-Team: python-doc-es\n" "Language: es_EC\n" +"Language-Team: python-doc-es\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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2.1\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/whatsnew/3.7.rst:3 msgid "What's New In Python 3.7" @@ -2487,9 +2486,10 @@ msgstr "" "Heimes* en :issue:`32454`.)" #: ../Doc/whatsnew/3.7.rst:1283 +#, fuzzy msgid "" -"The :mod:`socket` module now exposes the :data:`socket.TCP_CONGESTION` " -"(Linux 2.6.13), :data:`socket.TCP_USER_TIMEOUT` (Linux 2.6.37), and :data:" +"The :mod:`socket` module now exposes the :const:`socket.TCP_CONGESTION` " +"(Linux 2.6.13), :const:`socket.TCP_USER_TIMEOUT` (Linux 2.6.37), and :const:" "`socket.TCP_NOTSENT_LOWAT` (Linux 3.12) constants. (Contributed by Omar " "Sandoval in :issue:`26273` and Nathaniel J. Smith in :issue:`29728`.)" msgstr "" @@ -2499,8 +2499,9 @@ msgstr "" "*Omar Sandoval* en :issue:`26273` y *Nathaniel J. Smith* en :issue:`29728`.)" #: ../Doc/whatsnew/3.7.rst:1289 +#, fuzzy msgid "" -"Support for :data:`socket.AF_VSOCK` sockets has been added to allow " +"Support for :const:`socket.AF_VSOCK` sockets has been added to allow " "communication between virtual machines and their hosts. (Contributed by " "Cathy Avery in :issue:`27584`.)" msgstr "" @@ -2725,10 +2726,11 @@ msgid "subprocess" msgstr "*subprocess*" #: ../Doc/whatsnew/3.7.rst:1395 +#, fuzzy msgid "" "The :func:`subprocess.run` function accepts the new *capture_output* keyword " "argument. When true, stdout and stderr will be captured. This is equivalent " -"to passing :data:`subprocess.PIPE` as *stdout* and *stderr* arguments. " +"to passing :const:`subprocess.PIPE` as *stdout* and *stderr* arguments. " "(Contributed by Bo Bayles in :issue:`32102`.)" msgstr "" "La función :func:`subprocess.run` acepta el nuevo argumento de palabra clave " @@ -2832,8 +2834,9 @@ msgid "New clock identifiers have been added:" msgstr "Se han agregado nuevos identificadores de reloj:" #: ../Doc/whatsnew/3.7.rst:1456 +#, fuzzy msgid "" -":data:`time.CLOCK_BOOTTIME` (Linux): Identical to :data:`time." +":const:`time.CLOCK_BOOTTIME` (Linux): Identical to :const:`time." "CLOCK_MONOTONIC`, except it also includes any time that the system is " "suspended." msgstr "" @@ -2842,16 +2845,18 @@ msgstr "" "sistema esté suspendido." #: ../Doc/whatsnew/3.7.rst:1459 +#, fuzzy msgid "" -":data:`time.CLOCK_PROF` (FreeBSD, NetBSD and OpenBSD): High-resolution per-" +":const:`time.CLOCK_PROF` (FreeBSD, NetBSD and OpenBSD): High-resolution per-" "process CPU timer." msgstr "" ":data:`time.CLOCK_PROF` (FreeBSD, NetBSD y OpenBSD): Temporizador de CPU por " "proceso de alta resolución." #: ../Doc/whatsnew/3.7.rst:1461 +#, fuzzy msgid "" -":data:`time.CLOCK_UPTIME` (FreeBSD, OpenBSD): Time whose absolute value is " +":const:`time.CLOCK_UPTIME` (FreeBSD, OpenBSD): Time whose absolute value is " "the time the system has been running and not suspended, providing accurate " "uptime measurement." msgstr "" @@ -3298,10 +3303,11 @@ msgstr "" "`31574`.)" #: ../Doc/whatsnew/3.7.rst:1677 +#, fuzzy msgid "" -"The fields :c:member:`name` and :c:member:`doc` of structures :c:type:" +"The fields :c:member:`!name` and :c:member:`!doc` of structures :c:type:" "`PyMemberDef`, :c:type:`PyGetSetDef`, :c:type:`PyStructSequence_Field`, :c:" -"type:`PyStructSequence_Desc`, and :c:type:`wrapperbase` are now of type " +"type:`PyStructSequence_Desc`, and :c:struct:`wrapperbase` are now of type " "``const char *`` rather of ``char *``. (Contributed by Serhiy Storchaka in :" "issue:`28761`.)" msgstr "" @@ -3836,8 +3842,9 @@ msgstr "" "(Contribuido por *Raymond Hettinger* en :issue:`32690`.)" #: ../Doc/whatsnew/3.7.rst:1909 +#, fuzzy msgid "" -"The :mod:`distutils` ``upload`` command no longer tries to change CR end-of-" +"The ``distutils`` ``upload`` command no longer tries to change CR end-of-" "line characters to CRLF. This fixes a corruption issue with sdists that " "ended with a byte equivalent to CR. (Contributed by Bo Bayles in :issue:" "`32304`.)" @@ -3987,11 +3994,12 @@ msgstr "" "por *Serhiy Storchaka* en :issue:`28692`.)" #: ../Doc/whatsnew/3.7.rst:2006 +#, fuzzy msgid "" -"Methods :meth:`MetaPathFinder.find_module() ` (replaced by :meth:`MetaPathFinder.find_spec() `) and :meth:`PathEntryFinder.find_loader() " -"` (replaced by :meth:" +"MetaPathFinder.find_spec>`) and :meth:`PathEntryFinder.find_loader() ` (replaced by :meth:" "`PathEntryFinder.find_spec() `) " "both deprecated in Python 3.4 now emit :exc:`DeprecationWarning`. " "(Contributed by Matthias Bussonnier in :issue:`29576`)" @@ -4336,8 +4344,9 @@ msgstr "" "(Contribuido por *Christian Heimes* en :issue:`32951`.)" #: ../Doc/whatsnew/3.7.rst:2184 +#, fuzzy msgid "" -"The unused :mod:`distutils` ``install_misc`` command has been removed. " +"The unused ``distutils`` ``install_misc`` command has been removed. " "(Contributed by Eric N. Vander Weele in :issue:`29218`.)" msgstr "" "El comando no utilizado :mod:`distutils` ``install_misc`` ha sido eliminado. " diff --git a/whatsnew/3.8.po b/whatsnew/3.8.po index ae308a2b45..49a8080ddc 100644 --- a/whatsnew/3.8.po +++ b/whatsnew/3.8.po @@ -8,17 +8,16 @@ msgid "" msgstr "" "Project-Id-Version: Python en Español 3.7\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-28 00:58+0200\n" "Last-Translator: Jaime Resano \n" -"Language-Team: \n" "Language: es_ES\n" +"Language-Team: \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" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" -"Generated-By: Babel 2.10.3\n" -"X-Generator: Poedit 3.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/whatsnew/3.8.rst:3 msgid "What's New In Python 3.8" @@ -126,12 +125,13 @@ msgid "Positional-only parameters" msgstr "Parámetros solo posicionales" #: ../Doc/whatsnew/3.8.rst:122 +#, fuzzy msgid "" "There is a new function parameter syntax ``/`` to indicate that some " "function parameters must be specified positionally and cannot be used as " "keyword arguments. This is the same notation shown by ``help()`` for C " -"functions annotated with Larry Hastings' `Argument Clinic `_ tool." +"functions annotated with Larry Hastings' :ref:`Argument Clinic ` tool." msgstr "" "Hay una nueva sintaxis para establecer parámetro de función, ``/``, para " "indicar que algunos parámetros de función deben especificarse solo " @@ -703,8 +703,10 @@ msgstr "" "Storchaka en :issue:`20092`.)" #: ../Doc/whatsnew/3.8.rst:407 +#, fuzzy msgid "" -"Added support of ``\\N{name}`` escapes in :mod:`regular expressions `::" +"Added support of :samp:`\\\\N\\\\{{name}\\\\}` escapes in :mod:`regular " +"expressions `::" msgstr "" "Agregado soporte para escapes ``\\N{name}`` en :mod:`expresiones regulares " "`::" @@ -1039,7 +1041,7 @@ msgstr "" msgid "(Contributed by Yury Selivanov in :issue:`37028`.)" msgstr "(Contribución de Yury Selivanov en :issue:`37028`.)" -#: ../Doc/whatsnew/3.8.rst:651 ../Doc/whatsnew/3.8.rst:1967 +#: ../Doc/whatsnew/3.8.rst:651 ../Doc/whatsnew/3.8.rst:1970 msgid "" "The exception :class:`asyncio.CancelledError` now inherits from :class:" "`BaseException` rather than :class:`Exception` and no longer inherits from :" @@ -1544,8 +1546,9 @@ msgstr "" "notas de Jupyter." #: ../Doc/whatsnew/3.8.rst:950 +#, fuzzy msgid "" -"(Suggested by Raymond Hettinger, implemented by Dong-hee Na, and reviewed by " +"(Suggested by Raymond Hettinger, implemented by Donghee Na, and reviewed by " "Vinay Sajip in :issue:`33897`.)" msgstr "" "(Sugerencia de Raymond Hettinger, implementación de Dong-hee Na y revisión " @@ -1753,7 +1756,7 @@ msgstr "" "rutas que contienen caracteres o bytes irrepresentables a nivel del sistema " "operativo. (Contribución de Serhiy Storchaka en :issue:`33721`.)" -#: ../Doc/whatsnew/3.8.rst:1062 ../Doc/whatsnew/3.8.rst:1962 +#: ../Doc/whatsnew/3.8.rst:1062 ../Doc/whatsnew/3.8.rst:1965 msgid "" ":func:`~os.path.expanduser` on Windows now prefers the :envvar:`USERPROFILE` " "environment variable and does not use :envvar:`HOME`, which is not normally " @@ -1812,16 +1815,17 @@ msgstr "" #: ../Doc/whatsnew/3.8.rst:1089 msgid "" "Added :meth:`pathlib.Path.link_to()` which creates a hard link pointing to a " -"path. (Contributed by Joannah Nanjekye in :issue:`26978`)" +"path. (Contributed by Joannah Nanjekye in :issue:`26978`) Note that " +"``link_to`` was deprecated in 3.10 and removed in 3.12 in favor of a " +"``hardlink_to`` method added in 3.10 which matches the semantics of the " +"existing ``symlink_to`` method." msgstr "" -"Agregado :meth:`pathlib.Path.link_to()` que crea un enlace duro apuntando a " -"una ruta. (Contribución de Joannah Nanjekye en :issue:`26978`)" -#: ../Doc/whatsnew/3.8.rst:1095 +#: ../Doc/whatsnew/3.8.rst:1098 msgid "pickle" msgstr "pickle" -#: ../Doc/whatsnew/3.8.rst:1097 +#: ../Doc/whatsnew/3.8.rst:1100 msgid "" ":mod:`pickle` extensions subclassing the C-optimized :class:`~pickle." "Pickler` can now override the pickling logic of functions and classes by " @@ -1834,11 +1838,11 @@ msgstr "" "reducer_override`. (Contribución de Pierre Glaser y Olivier Grisel en :issue:" "`35900`.)" -#: ../Doc/whatsnew/3.8.rst:1104 +#: ../Doc/whatsnew/3.8.rst:1107 msgid "plistlib" msgstr "plistlib" -#: ../Doc/whatsnew/3.8.rst:1106 +#: ../Doc/whatsnew/3.8.rst:1109 msgid "" "Added new :class:`plistlib.UID` and enabled support for reading and writing " "NSKeyedArchiver-encoded binary plists. (Contributed by Jon Janzen in :issue:" @@ -1848,11 +1852,11 @@ msgstr "" "soporte para leer y escribir plists binarios codificados por " "NSKeyedArchiver. (Contribución de Jon Janzen en :issue:`26707`.)" -#: ../Doc/whatsnew/3.8.rst:1112 +#: ../Doc/whatsnew/3.8.rst:1115 msgid "pprint" msgstr "pprint" -#: ../Doc/whatsnew/3.8.rst:1114 +#: ../Doc/whatsnew/3.8.rst:1117 msgid "" "The :mod:`pprint` module added a *sort_dicts* parameter to several " "functions. By default, those functions continue to sort dictionaries before " @@ -1867,7 +1871,7 @@ msgstr "" "que se insertaron las claves. Esto puede resultar útil para la comparación " "con entradas JSON durante la depuración." -#: ../Doc/whatsnew/3.8.rst:1120 +#: ../Doc/whatsnew/3.8.rst:1123 msgid "" "In addition, there is a convenience new function, :func:`pprint.pp` that is " "like :func:`pprint.pprint` but with *sort_dicts* defaulting to ``False``::" @@ -1876,15 +1880,15 @@ msgstr "" "igual que :func:`pprint.pprint` pero con *sort_dicts* establecido en " "``False`` por defecto::" -#: ../Doc/whatsnew/3.8.rst:1134 +#: ../Doc/whatsnew/3.8.rst:1137 msgid "(Contributed by Rémi Lapeyre in :issue:`30670`.)" msgstr "(Contribución de Rémi Lapeyre en :issue:`30670`.)" -#: ../Doc/whatsnew/3.8.rst:1138 +#: ../Doc/whatsnew/3.8.rst:1141 msgid "py_compile" msgstr "py_compile" -#: ../Doc/whatsnew/3.8.rst:1140 +#: ../Doc/whatsnew/3.8.rst:1143 msgid "" ":func:`py_compile.compile` now supports silent mode. (Contributed by Joannah " "Nanjekye in :issue:`22640`.)" @@ -1892,11 +1896,11 @@ msgstr "" ":func:`py_compile.compile` ahora admite el modo silencioso. (Contribución de " "Joannah Nanjekye en :issue:`22640`.)" -#: ../Doc/whatsnew/3.8.rst:1145 +#: ../Doc/whatsnew/3.8.rst:1148 msgid "shlex" msgstr "shlex" -#: ../Doc/whatsnew/3.8.rst:1147 +#: ../Doc/whatsnew/3.8.rst:1150 msgid "" "The new :func:`shlex.join` function acts as the inverse of :func:`shlex." "split`. (Contributed by Bo Bayles in :issue:`32102`.)" @@ -1904,11 +1908,11 @@ msgstr "" "La nueva función :func:`shlex.join` actúa a la inversa de :func:`shlex." "split`. (Contribución de Bo Bayles en :issue:`32102`.)" -#: ../Doc/whatsnew/3.8.rst:1152 +#: ../Doc/whatsnew/3.8.rst:1155 msgid "shutil" msgstr "shutil" -#: ../Doc/whatsnew/3.8.rst:1154 +#: ../Doc/whatsnew/3.8.rst:1157 msgid "" ":func:`shutil.copytree` now accepts a new ``dirs_exist_ok`` keyword " "argument. (Contributed by Josh Bronson in :issue:`20849`.)" @@ -1916,7 +1920,7 @@ msgstr "" ":func:`shutil.copytree` ahora acepta el nuevo argumento por palabra clave " "``dirs_exist_ok``. (Contribución de Josh Bronson en :issue:`20849`.)" -#: ../Doc/whatsnew/3.8.rst:1157 +#: ../Doc/whatsnew/3.8.rst:1160 msgid "" ":func:`shutil.make_archive` now defaults to the modern pax (POSIX.1-2001) " "format for new archives to improve portability and standards conformance, " @@ -1928,7 +1932,7 @@ msgstr "" "conformidad con los estándares, heredado el cambio correspondiente del " "módulo :mod:`tarfile`. (Contribución de C.A.M. Gerlach en :issue:`30661`.)" -#: ../Doc/whatsnew/3.8.rst:1162 +#: ../Doc/whatsnew/3.8.rst:1165 msgid "" ":func:`shutil.rmtree` on Windows now removes directory junctions without " "recursively removing their contents first. (Contributed by Steve Dower in :" @@ -1938,11 +1942,11 @@ msgstr "" "eliminar recursivamente su contenido primero. (Contribución de Steve Dower " "en :issue:`37834`.)" -#: ../Doc/whatsnew/3.8.rst:1168 +#: ../Doc/whatsnew/3.8.rst:1171 msgid "socket" msgstr "socket" -#: ../Doc/whatsnew/3.8.rst:1170 +#: ../Doc/whatsnew/3.8.rst:1173 msgid "" "Added :meth:`~socket.create_server()` and :meth:`~socket." "has_dualstack_ipv6()` convenience functions to automate the necessary tasks " @@ -1956,7 +1960,7 @@ msgstr "" "aceptación de conexiones IPv4 e IPv6 en el mismo socket . (Contribución de " "Giampaolo Rodolà en :issue:`17561`.)" -#: ../Doc/whatsnew/3.8.rst:1175 +#: ../Doc/whatsnew/3.8.rst:1178 msgid "" "The :func:`socket.if_nameindex()`, :func:`socket.if_nametoindex()`, and :" "func:`socket.if_indextoname()` functions have been implemented on Windows. " @@ -1966,11 +1970,11 @@ msgstr "" "y :func:`socket.if_indextoname()` se han implementado en Windows. " "(Contribución de Zackery Spytz en :issue:`37007`.)" -#: ../Doc/whatsnew/3.8.rst:1181 +#: ../Doc/whatsnew/3.8.rst:1184 msgid "ssl" msgstr "ssl" -#: ../Doc/whatsnew/3.8.rst:1183 +#: ../Doc/whatsnew/3.8.rst:1186 msgid "" "Added :attr:`~ssl.SSLContext.post_handshake_auth` to enable and :meth:`~ssl." "SSLSocket.verify_client_post_handshake` to initiate TLS 1.3 post-handshake " @@ -1981,11 +1985,11 @@ msgstr "" "autenticación tras el establecimiento de la comunicación en TLS 1.3. " "(Contribución de Christian Heimes en :issue:`34670`.)" -#: ../Doc/whatsnew/3.8.rst:1190 +#: ../Doc/whatsnew/3.8.rst:1193 msgid "statistics" msgstr "statistics" -#: ../Doc/whatsnew/3.8.rst:1192 +#: ../Doc/whatsnew/3.8.rst:1195 msgid "" "Added :func:`statistics.fmean` as a faster, floating point variant of :func:" "`statistics.mean()`. (Contributed by Raymond Hettinger and Steven D'Aprano " @@ -1995,7 +1999,7 @@ msgstr "" "más rápida de :func:`statistics.mean()`. (Contribución de Raymond Hettinger " "y Steven D'Aprano en :issue:`35904`.)" -#: ../Doc/whatsnew/3.8.rst:1196 +#: ../Doc/whatsnew/3.8.rst:1199 msgid "" "Added :func:`statistics.geometric_mean()` (Contributed by Raymond Hettinger " "in :issue:`27181`.)" @@ -2003,7 +2007,7 @@ msgstr "" "Se ha agregado :func:`statistics.geometric_mean()` (Contribución de Raymond " "Hettinger en :issue:`27181`.)" -#: ../Doc/whatsnew/3.8.rst:1199 +#: ../Doc/whatsnew/3.8.rst:1202 msgid "" "Added :func:`statistics.multimode` that returns a list of the most common " "values. (Contributed by Raymond Hettinger in :issue:`35892`.)" @@ -2011,7 +2015,7 @@ msgstr "" "Se ha agregado :func:`statistics.multimode` que retorna una lista con los " "valores más comunes. (Contribución de Raymond Hettinger en :issue:`35892`.)" -#: ../Doc/whatsnew/3.8.rst:1202 +#: ../Doc/whatsnew/3.8.rst:1205 msgid "" "Added :func:`statistics.quantiles` that divides data or a distribution in to " "equiprobable intervals (e.g. quartiles, deciles, or percentiles). " @@ -2021,7 +2025,7 @@ msgstr "" "distribución en intervalos equiprobables (por ejemplo, cuartiles, deciles o " "percentiles). (Contribución de Raymond Hettinger en :issue:`36546`.)" -#: ../Doc/whatsnew/3.8.rst:1206 +#: ../Doc/whatsnew/3.8.rst:1209 msgid "" "Added :class:`statistics.NormalDist`, a tool for creating and manipulating " "normal distributions of a random variable. (Contributed by Raymond Hettinger " @@ -2031,11 +2035,11 @@ msgstr "" "manipular distribuciones normales de una variable aleatoria. (Contribución " "de Raymond Hettinger en :issue:`36018`.)" -#: ../Doc/whatsnew/3.8.rst:1236 +#: ../Doc/whatsnew/3.8.rst:1239 msgid "sys" msgstr "sys" -#: ../Doc/whatsnew/3.8.rst:1238 +#: ../Doc/whatsnew/3.8.rst:1241 msgid "" "Add new :func:`sys.unraisablehook` function which can be overridden to " "control how \"unraisable exceptions\" are handled. It is called when an " @@ -2050,11 +2054,11 @@ msgstr "" "la recolección de basura (:func:`gc.collect`). (Contribución de Victor " "Stinner en :issue:`36829`.)" -#: ../Doc/whatsnew/3.8.rst:1247 +#: ../Doc/whatsnew/3.8.rst:1250 msgid "tarfile" msgstr "tarfile" -#: ../Doc/whatsnew/3.8.rst:1249 +#: ../Doc/whatsnew/3.8.rst:1252 msgid "" "The :mod:`tarfile` module now defaults to the modern pax (POSIX.1-2001) " "format for new archives, instead of the previous GNU-specific one. This " @@ -2068,11 +2072,11 @@ msgstr "" "consistente (UTF-8) en un formato estandarizado y extensible, y ofrece otros " "varios beneficios. (Contribución de C.A.M. Gerlach en :issue:`36268`.)" -#: ../Doc/whatsnew/3.8.rst:1257 +#: ../Doc/whatsnew/3.8.rst:1260 msgid "threading" msgstr "threading" -#: ../Doc/whatsnew/3.8.rst:1259 +#: ../Doc/whatsnew/3.8.rst:1262 msgid "" "Add a new :func:`threading.excepthook` function which handles uncaught :meth:" "`threading.Thread.run` exception. It can be overridden to control how " @@ -2084,7 +2088,7 @@ msgstr "" "controlar cómo se manejan las excepciones :meth:`threading.Thread.run` no " "capturadas. (Contribución de Victor Stinner en :issue:`1230540`.)" -#: ../Doc/whatsnew/3.8.rst:1264 +#: ../Doc/whatsnew/3.8.rst:1267 msgid "" "Add a new :func:`threading.get_native_id` function and a :data:`~threading." "Thread.native_id` attribute to the :class:`threading.Thread` class. These " @@ -2100,11 +2104,11 @@ msgstr "" "plataformas, consulta :func:`get_native_id ` para " "obtener más información. (Contribución de Jake Tesler en :issue:`36084`.)" -#: ../Doc/whatsnew/3.8.rst:1274 +#: ../Doc/whatsnew/3.8.rst:1277 msgid "tokenize" msgstr "tokenize" -#: ../Doc/whatsnew/3.8.rst:1276 +#: ../Doc/whatsnew/3.8.rst:1279 msgid "" "The :mod:`tokenize` module now implicitly emits a ``NEWLINE`` token when " "provided with input that does not have a trailing new line. This behavior " @@ -2116,11 +2120,11 @@ msgstr "" "comportamiento ahora coincide con lo que hace internamente el tokenizador de " "C. (Contribución de Ammar Askar en :issue:`33899`.)" -#: ../Doc/whatsnew/3.8.rst:1283 +#: ../Doc/whatsnew/3.8.rst:1286 msgid "tkinter" msgstr "tkinter" -#: ../Doc/whatsnew/3.8.rst:1285 +#: ../Doc/whatsnew/3.8.rst:1288 msgid "" "Added methods :meth:`~tkinter.Spinbox.selection_from`, :meth:`~tkinter." "Spinbox.selection_present`, :meth:`~tkinter.Spinbox.selection_range` and :" @@ -2132,7 +2136,7 @@ msgstr "" "selection_range` y :meth:`~tkinter.Spinbox.selection_to` a la clase :class:" "`tkinter.Spinbox`. (Contribución de Juliette Monsel en :issue:`34829`.)" -#: ../Doc/whatsnew/3.8.rst:1292 +#: ../Doc/whatsnew/3.8.rst:1295 msgid "" "Added method :meth:`~tkinter.Canvas.moveto` in the :class:`tkinter.Canvas` " "class. (Contributed by Juliette Monsel in :issue:`23831`.)" @@ -2140,7 +2144,7 @@ msgstr "" "Se ha agregado el método :meth:`~tkinter.Canvas.moveto` a la clase :class:" "`tkinter.Canvas`. (Contribución de Juliette Monsel en :issue:`23831`.)" -#: ../Doc/whatsnew/3.8.rst:1296 +#: ../Doc/whatsnew/3.8.rst:1299 msgid "" "The :class:`tkinter.PhotoImage` class now has :meth:`~tkinter.PhotoImage." "transparency_get` and :meth:`~tkinter.PhotoImage.transparency_set` methods. " @@ -2150,27 +2154,28 @@ msgstr "" "`~tkinter.PhotoImage.transparency_get` y :meth:`~tkinter.PhotoImage." "transparency_set`. (Contribución de Zackery Spytz en :issue:`25451`.)" -#: ../Doc/whatsnew/3.8.rst:1303 +#: ../Doc/whatsnew/3.8.rst:1306 msgid "time" msgstr "time" -#: ../Doc/whatsnew/3.8.rst:1305 +#: ../Doc/whatsnew/3.8.rst:1308 +#, fuzzy msgid "" -"Added new clock :data:`~time.CLOCK_UPTIME_RAW` for macOS 10.12. (Contributed " -"by Joannah Nanjekye in :issue:`35702`.)" +"Added new clock :const:`~time.CLOCK_UPTIME_RAW` for macOS 10.12. " +"(Contributed by Joannah Nanjekye in :issue:`35702`.)" msgstr "" "Se ha agregado el nuevo reloj :data:`~time.CLOCK_UPTIME_RAW` para macOS " "10.12. (Contribución de Joannah Nanjekye en :issue:`35702`.)" -#: ../Doc/whatsnew/3.8.rst:1310 +#: ../Doc/whatsnew/3.8.rst:1313 msgid "typing" msgstr "typing" -#: ../Doc/whatsnew/3.8.rst:1312 +#: ../Doc/whatsnew/3.8.rst:1315 msgid "The :mod:`typing` module incorporates several new features:" msgstr "Se han incorporado varias características al módulo :mod:`typing`:" -#: ../Doc/whatsnew/3.8.rst:1314 +#: ../Doc/whatsnew/3.8.rst:1317 msgid "" "A dictionary type with per-key types. See :pep:`589` and :class:`typing." "TypedDict`. TypedDict uses only string keys. By default, every key is " @@ -2183,7 +2188,7 @@ msgstr "" "presentes. Especifica \"total=False\" para permitir que las claves sean " "opcionales::" -#: ../Doc/whatsnew/3.8.rst:1324 +#: ../Doc/whatsnew/3.8.rst:1327 msgid "" "Literal types. See :pep:`586` and :class:`typing.Literal`. Literal types " "indicate that a parameter or return value is constrained to one or more " @@ -2193,7 +2198,7 @@ msgstr "" "literales indican que un parámetro o valor de retorno está restringido a uno " "o más valores literales específicos::" -#: ../Doc/whatsnew/3.8.rst:1331 +#: ../Doc/whatsnew/3.8.rst:1334 msgid "" "\"Final\" variables, functions, methods and classes. See :pep:`591`, :class:" "`typing.Final` and :func:`typing.final`. The final qualifier instructs a " @@ -2204,7 +2209,7 @@ msgstr "" "a un validador estático de tipos para restringir la subclasificación, " "anulación o reasignación::" -#: ../Doc/whatsnew/3.8.rst:1338 +#: ../Doc/whatsnew/3.8.rst:1341 msgid "" "Protocol definitions. See :pep:`544`, :class:`typing.Protocol` and :func:" "`typing.runtime_checkable`. Simple ABCs like :class:`typing.SupportsInt` " @@ -2214,19 +2219,19 @@ msgstr "" "func:`typing.runtime_checkable`. ABCs simples como :class:`typing." "SupportsInt` ahora son subclases de ``Protocol`` ." -#: ../Doc/whatsnew/3.8.rst:1342 +#: ../Doc/whatsnew/3.8.rst:1345 msgid "New protocol class :class:`typing.SupportsIndex`." msgstr "Nueva clase protocolo :class:`typing.SupportsIndex`." -#: ../Doc/whatsnew/3.8.rst:1344 +#: ../Doc/whatsnew/3.8.rst:1347 msgid "New functions :func:`typing.get_origin` and :func:`typing.get_args`." msgstr "Nuevas funciones :func:`typing.get_origin` y :func:`typing.get_args`." -#: ../Doc/whatsnew/3.8.rst:1348 +#: ../Doc/whatsnew/3.8.rst:1351 msgid "unicodedata" msgstr "unicodedata" -#: ../Doc/whatsnew/3.8.rst:1350 +#: ../Doc/whatsnew/3.8.rst:1353 msgid "" "The :mod:`unicodedata` module has been upgraded to use the `Unicode 12.1.0 " "`_ release." @@ -2234,7 +2239,7 @@ msgstr "" "El módulo :mod:`unicodedata` se ha actualizado para usar la versión `Unicode " "12.1.0 `_." -#: ../Doc/whatsnew/3.8.rst:1353 +#: ../Doc/whatsnew/3.8.rst:1356 msgid "" "New function :func:`~unicodedata.is_normalized` can be used to verify a " "string is in a specific normal form, often much faster than by actually " @@ -2246,11 +2251,11 @@ msgstr "" "menudo mucho más rápido que normalizar la cadena. (Contribución de Max " "Belanger, David Euresti y Greg Price en :issue:`32285` y :issue:`37966`)." -#: ../Doc/whatsnew/3.8.rst:1360 +#: ../Doc/whatsnew/3.8.rst:1363 msgid "unittest" msgstr "unittest" -#: ../Doc/whatsnew/3.8.rst:1362 +#: ../Doc/whatsnew/3.8.rst:1365 msgid "" "Added :class:`~unittest.mock.AsyncMock` to support an asynchronous version " "of :class:`~unittest.mock.Mock`. Appropriate new assert functions for " @@ -2262,7 +2267,7 @@ msgstr "" "funciones de aserción apropiadas para las pruebas. (Contribución de Lisa " "Roach en :issue:`26467`)." -#: ../Doc/whatsnew/3.8.rst:1367 +#: ../Doc/whatsnew/3.8.rst:1370 msgid "" "Added :func:`~unittest.addModuleCleanup()` and :meth:`~unittest.TestCase." "addClassCleanup()` to unittest to support cleanups for :func:`~unittest." @@ -2274,7 +2279,7 @@ msgstr "" "`~unittest.setUpModule()` y :meth:`~unittest .TestCase.setUpClass()`. " "(Contribución de Lisa Roach en :issue:`24412`.)" -#: ../Doc/whatsnew/3.8.rst:1373 +#: ../Doc/whatsnew/3.8.rst:1376 msgid "" "Several mock assert functions now also print a list of actual calls upon " "failure. (Contributed by Petter Strandmark in :issue:`35047`.)" @@ -2283,7 +2288,7 @@ msgstr "" "llamadas reales en caso de fallo. (Contribución de Petter Strandmark en :" "issue:`35047`.)" -#: ../Doc/whatsnew/3.8.rst:1376 +#: ../Doc/whatsnew/3.8.rst:1379 msgid "" ":mod:`unittest` module gained support for coroutines to be used as test " "cases with :class:`unittest.IsolatedAsyncioTestCase`. (Contributed by Andrew " @@ -2293,15 +2298,15 @@ msgstr "" "utilizarán como casos de prueba con :class:`unittest." "IsolatedAsyncioTestCase`. (Contribución de Andrew Svetlov en :issue:`32972`.)" -#: ../Doc/whatsnew/3.8.rst:1380 +#: ../Doc/whatsnew/3.8.rst:1383 msgid "Example::" msgstr "Ejemplo::" -#: ../Doc/whatsnew/3.8.rst:1403 +#: ../Doc/whatsnew/3.8.rst:1406 msgid "venv" msgstr "venv" -#: ../Doc/whatsnew/3.8.rst:1405 +#: ../Doc/whatsnew/3.8.rst:1408 msgid "" ":mod:`venv` now includes an ``Activate.ps1`` script on all platforms for " "activating virtual environments under PowerShell Core 6.1. (Contributed by " @@ -2311,11 +2316,11 @@ msgstr "" "plataformas para activar entornos virtuales en PowerShell Core 6.1. " "(Contribución de Brett Cannon en :issue:`32718`.)" -#: ../Doc/whatsnew/3.8.rst:1411 +#: ../Doc/whatsnew/3.8.rst:1414 msgid "weakref" msgstr "weakref" -#: ../Doc/whatsnew/3.8.rst:1413 +#: ../Doc/whatsnew/3.8.rst:1416 msgid "" "The proxy objects returned by :func:`weakref.proxy` now support the matrix " "multiplication operators ``@`` and ``@=`` in addition to the other numeric " @@ -2325,11 +2330,11 @@ msgstr "" "operadores de multiplicación de matrices ``@`` y ``@=``, además de los otros " "operadores numéricos. (Contribución de Mark Dickinson en :issue:`36669`.)" -#: ../Doc/whatsnew/3.8.rst:1419 +#: ../Doc/whatsnew/3.8.rst:1422 msgid "xml" msgstr "xml" -#: ../Doc/whatsnew/3.8.rst:1421 +#: ../Doc/whatsnew/3.8.rst:1424 msgid "" "As mitigation against DTD and external entity retrieval, the :mod:`xml.dom." "minidom` and :mod:`xml.sax` modules no longer process external entities by " @@ -2340,7 +2345,7 @@ msgstr "" "externas de forma predeterminada. (Contribución de Christian Heimes en :" "issue:`17239`.)" -#: ../Doc/whatsnew/3.8.rst:1426 +#: ../Doc/whatsnew/3.8.rst:1429 msgid "" "The ``.find*()`` methods in the :mod:`xml.etree.ElementTree` module support " "wildcard searches like ``{*}tag`` which ignores the namespace and " @@ -2352,7 +2357,7 @@ msgstr "" "y ``{namespace}*``, que retorna todas las etiquetas en el espacio de nombres " "dado. (Contribución de Stefan Behnel en :issue:`28238`.)" -#: ../Doc/whatsnew/3.8.rst:1431 +#: ../Doc/whatsnew/3.8.rst:1434 msgid "" "The :mod:`xml.etree.ElementTree` module provides a new function :func:`–xml." "etree.ElementTree.canonicalize()` that implements C14N 2.0. (Contributed by " @@ -2362,7 +2367,7 @@ msgstr "" "xml.etree.ElementTree.canonicalize()` que implementa C14N 2.0. (Contribución " "de Stefan Behnel en :issue:`13611`.)" -#: ../Doc/whatsnew/3.8.rst:1435 +#: ../Doc/whatsnew/3.8.rst:1438 msgid "" "The target object of :class:`xml.etree.ElementTree.XMLParser` can receive " "namespace declaration events through the new callback methods ``start_ns()`` " @@ -2379,11 +2384,11 @@ msgstr "" "en el árbol generado. (Contribución de Stefan Behnel en :issue:`36676` y :" "issue:`36673`.)" -#: ../Doc/whatsnew/3.8.rst:1445 +#: ../Doc/whatsnew/3.8.rst:1448 msgid "xmlrpc" msgstr "xmlrpc" -#: ../Doc/whatsnew/3.8.rst:1447 +#: ../Doc/whatsnew/3.8.rst:1450 msgid "" ":class:`xmlrpc.client.ServerProxy` now supports an optional *headers* " "keyword argument for a sequence of HTTP headers to be sent with each " @@ -2397,11 +2402,11 @@ msgstr "" "desde la autenticación básica predeterminada a una autenticación de sesión " "más rápida. (Contribución de Cédric Krier en :issue:`35153`.)" -#: ../Doc/whatsnew/3.8.rst:1455 +#: ../Doc/whatsnew/3.8.rst:1458 msgid "Optimizations" msgstr "Optimizaciones" -#: ../Doc/whatsnew/3.8.rst:1457 +#: ../Doc/whatsnew/3.8.rst:1460 msgid "" "The :mod:`subprocess` module can now use the :func:`os.posix_spawn` function " "in some cases for better performance. Currently, it is only used on macOS " @@ -2412,11 +2417,11 @@ msgstr "" "en macOS y Linux (usando glibc 2.24 o una versión más reciente) y siempre " "que se cumplan todas estas condiciones:" -#: ../Doc/whatsnew/3.8.rst:1461 +#: ../Doc/whatsnew/3.8.rst:1464 msgid "*close_fds* is false;" msgstr "*close_fds* es falso;" -#: ../Doc/whatsnew/3.8.rst:1462 +#: ../Doc/whatsnew/3.8.rst:1465 msgid "" "*preexec_fn*, *pass_fds*, *cwd* and *start_new_session* parameters are not " "set;" @@ -2424,15 +2429,15 @@ msgstr "" "los parámetros *preexec_fn*, *pass_fds*, *cwd* y *start_new_session* no " "están establecidos;" -#: ../Doc/whatsnew/3.8.rst:1464 +#: ../Doc/whatsnew/3.8.rst:1467 msgid "the *executable* path contains a directory." msgstr "la ruta *executable* contiene un directorio." -#: ../Doc/whatsnew/3.8.rst:1466 +#: ../Doc/whatsnew/3.8.rst:1469 msgid "(Contributed by Joannah Nanjekye and Victor Stinner in :issue:`35537`.)" msgstr "(Contribución de Joannah Nanjekye y Victor Stinner en :issue:`35537`.)" -#: ../Doc/whatsnew/3.8.rst:1468 +#: ../Doc/whatsnew/3.8.rst:1471 #, python-format msgid "" ":func:`shutil.copyfile`, :func:`shutil.copy`, :func:`shutil.copy2`, :func:" @@ -2463,7 +2468,7 @@ msgstr "" "platform-dependent-efficient-copy-operations`. (Contribución de Giampaolo " "Rodolà en :issue:`33671`.)" -#: ../Doc/whatsnew/3.8.rst:1484 +#: ../Doc/whatsnew/3.8.rst:1487 #, python-format msgid "" ":func:`shutil.copytree` uses :func:`os.scandir` function and all copy " @@ -2482,7 +2487,7 @@ msgstr "" "especialmente en sistemas de archivos de red. (Contribución de Giampaolo " "Rodolà en :issue:`33695`.)" -#: ../Doc/whatsnew/3.8.rst:1491 +#: ../Doc/whatsnew/3.8.rst:1494 msgid "" "The default protocol in the :mod:`pickle` module is now Protocol 4, first " "introduced in Python 3.4. It offers better performance and smaller size " @@ -2492,7 +2497,7 @@ msgstr "" "introducido por primera vez en Python 3.4. Ofrece un mejor desempeño y un " "menor tamaño, en comparación con el Protocolo 3 disponible desde Python 3.0." -#: ../Doc/whatsnew/3.8.rst:1495 +#: ../Doc/whatsnew/3.8.rst:1498 msgid "" "Removed one :c:type:`Py_ssize_t` member from ``PyGC_Head``. All GC tracked " "objects (e.g. tuple, list, dict) size is reduced 4 or 8 bytes. (Contributed " @@ -2502,7 +2507,7 @@ msgstr "" "todos los objetos rastreados de GC (por ejemplo, tupla, lista, dict) se " "reduce en 4 u 8 bytes. (Aportado por Inada Naoki en :issue:`33597`.)" -#: ../Doc/whatsnew/3.8.rst:1499 +#: ../Doc/whatsnew/3.8.rst:1502 msgid "" ":class:`uuid.UUID` now uses ``__slots__`` to reduce its memory footprint. " "(Contributed by Wouter Bolsterlee and Tal Einat in :issue:`30977`)" @@ -2511,7 +2516,7 @@ msgstr "" "en la memoria. (Contribución de Wouter Bolsterlee y Tal Einat en :issue:" "`30977`.)" -#: ../Doc/whatsnew/3.8.rst:1502 +#: ../Doc/whatsnew/3.8.rst:1505 msgid "" "Improved performance of :func:`operator.itemgetter` by 33%. Optimized " "argument handling and added a fast path for the common case of a single non-" @@ -2524,7 +2529,7 @@ msgstr "" "caso de uso común en la biblioteca estándar). (Contribución de Raymond " "Hettinger en :issue:`35664`.)" -#: ../Doc/whatsnew/3.8.rst:1508 +#: ../Doc/whatsnew/3.8.rst:1511 msgid "" "Sped-up field lookups in :func:`collections.namedtuple`. They are now more " "than two times faster, making them the fastest form of instance variable " @@ -2537,7 +2542,7 @@ msgstr "" "Raymond Hettinger, Pablo Galindo, Joe Jevnik y Serhiy Storchaka en :issue:" "`32492`.)" -#: ../Doc/whatsnew/3.8.rst:1513 +#: ../Doc/whatsnew/3.8.rst:1516 #, python-format msgid "" "The :class:`list` constructor does not overallocate the internal item buffer " @@ -2551,7 +2556,7 @@ msgstr "" "promedio, un 12% más pequeña. (Contribución de Raymond Hettinger y Pablo " "Galindo en :issue:`33234`.)" -#: ../Doc/whatsnew/3.8.rst:1518 +#: ../Doc/whatsnew/3.8.rst:1521 msgid "" "Doubled the speed of class variable writes. When a non-dunder attribute was " "updated, there was an unnecessary call to update slots. (Contributed by " @@ -2564,7 +2569,7 @@ msgstr "" "Salgado, Raymond Hettinger, Neil Schemenauer y Serhiy Storchaka en :issue:" "`36012`.)" -#: ../Doc/whatsnew/3.8.rst:1523 +#: ../Doc/whatsnew/3.8.rst:1526 msgid "" "Reduced an overhead of converting arguments passed to many builtin functions " "and methods. This sped up calling some simple builtin functions and methods " @@ -2576,7 +2581,7 @@ msgstr "" "y métodos incorporados simples hasta un 20-50%. (Contribución de Serhiy " "Storchaka en :issue:`23867`, :issue:`35582` y :issue:`36127`.)" -#: ../Doc/whatsnew/3.8.rst:1528 +#: ../Doc/whatsnew/3.8.rst:1531 #, python-format msgid "" "``LOAD_GLOBAL`` instruction now uses new \"per opcode cache\" mechanism. It " @@ -2587,11 +2592,11 @@ msgstr "" "cache\". Ahora es aproximadamente un 40% más rápida. (Contribución de Yury " "Selivanov e Inada Naoki en :issue:`26219`.)" -#: ../Doc/whatsnew/3.8.rst:1534 +#: ../Doc/whatsnew/3.8.rst:1537 msgid "Build and C API Changes" msgstr "Cambios en la compilación y la API de C" -#: ../Doc/whatsnew/3.8.rst:1536 +#: ../Doc/whatsnew/3.8.rst:1539 msgid "" "Default :data:`sys.abiflags` became an empty string: the ``m`` flag for " "pymalloc became useless (builds with and without pymalloc are ABI " @@ -2603,18 +2608,18 @@ msgstr "" "y sin pymalloc son ABI compatibles) y por lo tanto se ha eliminado. " "(Contribución de Victor Stinner en :issue:`36707`.)" -#: ../Doc/whatsnew/3.8.rst:1540 +#: ../Doc/whatsnew/3.8.rst:1543 msgid "Example of changes:" msgstr "Ejemplos del cambio:" -#: ../Doc/whatsnew/3.8.rst:1542 +#: ../Doc/whatsnew/3.8.rst:1545 msgid "" "Only ``python3.8`` program is installed, ``python3.8m`` program is gone." msgstr "" "Solo el programa ``python3.8`` es instalado, el programa ``python3.8m`` se " "ha eliminado." -#: ../Doc/whatsnew/3.8.rst:1543 +#: ../Doc/whatsnew/3.8.rst:1546 msgid "" "Only ``python3.8-config`` script is installed, ``python3.8m-config`` script " "is gone." @@ -2622,7 +2627,7 @@ msgstr "" "Solo el script ``python3.8-config`` es instalado, el script ``python3.8m-" "config`` se ha eliminado." -#: ../Doc/whatsnew/3.8.rst:1545 +#: ../Doc/whatsnew/3.8.rst:1548 msgid "" "The ``m`` flag has been removed from the suffix of dynamic library " "filenames: extension modules in the standard library as well as those " @@ -2637,7 +2642,7 @@ msgstr "" "x86_64-linux-gnu.so`` en Python 3.7 se ha convertido en ``.cpython-38-x86_64-" "linux-gnu.so`` en Python 3.8." -#: ../Doc/whatsnew/3.8.rst:1552 +#: ../Doc/whatsnew/3.8.rst:1555 msgid "" "The header files have been reorganized to better separate the different " "kinds of APIs:" @@ -2645,11 +2650,11 @@ msgstr "" "Los archivos de cabeceras se han reorganizado para separar mejor los " "diferentes tipos de APIs:" -#: ../Doc/whatsnew/3.8.rst:1555 +#: ../Doc/whatsnew/3.8.rst:1558 msgid "``Include/*.h`` should be the portable public stable C API." msgstr "``Include/*.h`` debe ser la API de C portable, pública y estable." -#: ../Doc/whatsnew/3.8.rst:1556 +#: ../Doc/whatsnew/3.8.rst:1559 msgid "" "``Include/cpython/*.h`` should be the unstable C API specific to CPython; " "public API, with some private API prefixed by ``_Py`` or ``_PY``." @@ -2658,7 +2663,7 @@ msgstr "" "CPython. Una API pública, con alguna API privada marcada con los prefijos " "``_Py`` o ``_PY``." -#: ../Doc/whatsnew/3.8.rst:1558 +#: ../Doc/whatsnew/3.8.rst:1561 msgid "" "``Include/internal/*.h`` is the private internal C API very specific to " "CPython. This API comes with no backward compatibility warranty and should " @@ -2674,7 +2679,7 @@ msgstr "" "sin llamar directamente a las funciones. Esta API es ahora instalada por " "``make install``." -#: ../Doc/whatsnew/3.8.rst:1564 +#: ../Doc/whatsnew/3.8.rst:1567 msgid "" "(Contributed by Victor Stinner in :issue:`35134` and :issue:`35081`, work " "initiated by Eric Snow in Python 3.7.)" @@ -2682,7 +2687,7 @@ msgstr "" "(Contribución de Victor Stinner en :issue:`35134` y :issue:`35081`, trabajo " "iniciado por Eric Snow en Python 3.7.)" -#: ../Doc/whatsnew/3.8.rst:1567 +#: ../Doc/whatsnew/3.8.rst:1570 msgid "" "Some macros have been converted to static inline functions: parameter types " "and return type are well defined, they don't have issues specific to macros, " @@ -2693,35 +2698,37 @@ msgstr "" "cuestiones que precisen el uso específico de macros y las variables tienen " "ámbito local. Algunos ejemplos:" -#: ../Doc/whatsnew/3.8.rst:1571 +#: ../Doc/whatsnew/3.8.rst:1574 msgid ":c:func:`Py_INCREF`, :c:func:`Py_DECREF`" msgstr ":c:func:`Py_INCREF`, :c:func:`Py_DECREF`" -#: ../Doc/whatsnew/3.8.rst:1572 +#: ../Doc/whatsnew/3.8.rst:1575 msgid ":c:func:`Py_XINCREF`, :c:func:`Py_XDECREF`" msgstr ":c:func:`Py_XINCREF`, :c:func:`Py_XDECREF`" -#: ../Doc/whatsnew/3.8.rst:1573 +#: ../Doc/whatsnew/3.8.rst:1576 msgid ":c:func:`PyObject_INIT`, :c:func:`PyObject_INIT_VAR`" msgstr ":c:func:`PyObject_INIT`, :c:func:`PyObject_INIT_VAR`" -#: ../Doc/whatsnew/3.8.rst:1574 +#: ../Doc/whatsnew/3.8.rst:1577 +#, fuzzy msgid "" -"Private functions: :c:func:`_PyObject_GC_TRACK`, :c:func:" -"`_PyObject_GC_UNTRACK`, :c:func:`_Py_Dealloc`" +"Private functions: :c:func:`!_PyObject_GC_TRACK`, :c:func:`!" +"_PyObject_GC_UNTRACK`, :c:func:`!_Py_Dealloc`" msgstr "" "Funciones privadas: :c:func:`_PyObject_GC_TRACK`, :c:func:" "`_PyObject_GC_UNTRACK`, :c:func:`_Py_Dealloc`" -#: ../Doc/whatsnew/3.8.rst:1577 +#: ../Doc/whatsnew/3.8.rst:1580 msgid "(Contributed by Victor Stinner in :issue:`35059`.)" msgstr "(Contribución de Victor Stinner en :issue:`35059`.)" -#: ../Doc/whatsnew/3.8.rst:1579 +#: ../Doc/whatsnew/3.8.rst:1582 +#, fuzzy msgid "" -"The :c:func:`PyByteArray_Init` and :c:func:`PyByteArray_Fini` functions have " -"been removed. They did nothing since Python 2.7.4 and Python 3.2.0, were " -"excluded from the limited API (stable ABI), and were not documented. " +"The :c:func:`!PyByteArray_Init` and :c:func:`!PyByteArray_Fini` functions " +"have been removed. They did nothing since Python 2.7.4 and Python 3.2.0, " +"were excluded from the limited API (stable ABI), and were not documented. " "(Contributed by Victor Stinner in :issue:`35713`.)" msgstr "" "Las funciones :c:func:`PyByteArray_Init` y :c:func:`PyByteArray_Fini` se han " @@ -2729,7 +2736,7 @@ msgstr "" "fueron excluidas de la API limitada (ABI estable) y dejaron de estar " "documentadas. (Contribución de Victor Stinner en :issue:`35713`.)" -#: ../Doc/whatsnew/3.8.rst:1584 +#: ../Doc/whatsnew/3.8.rst:1587 msgid "" "The result of :c:func:`PyExceptionClass_Name` is now of type ``const char " "*`` rather of ``char *``. (Contributed by Serhiy Storchaka in :issue:" @@ -2739,7 +2746,7 @@ msgstr "" "char *`` en vez de ``char *``. (Contribución de Serhiy Storchaka en :issue:" "`33818`.)" -#: ../Doc/whatsnew/3.8.rst:1588 +#: ../Doc/whatsnew/3.8.rst:1591 msgid "" "The duality of ``Modules/Setup.dist`` and ``Modules/Setup`` has been " "removed. Previously, when updating the CPython source tree, one had to " @@ -2758,7 +2765,7 @@ msgstr "" "desarrolladores de CPython, ya que olvidarse de copiar el archivo podía " "ocasionar fallos de compilación." -#: ../Doc/whatsnew/3.8.rst:1596 +#: ../Doc/whatsnew/3.8.rst:1599 msgid "" "Now the build system always reads from ``Modules/Setup`` inside the source " "tree. People who want to customize that file are encouraged to maintain " @@ -2771,11 +2778,11 @@ msgstr "" "archivos de parche, como harían con cualquier otro cambio en el árbol de " "fuentes." -#: ../Doc/whatsnew/3.8.rst:1601 +#: ../Doc/whatsnew/3.8.rst:1604 msgid "(Contributed by Antoine Pitrou in :issue:`32430`.)" msgstr "(Contribución de Antoine Pitrou en :issue:`32430`.)" -#: ../Doc/whatsnew/3.8.rst:1603 +#: ../Doc/whatsnew/3.8.rst:1606 msgid "" "Functions that convert Python number to C integer like :c:func:" "`PyLong_AsLong` and argument parsing functions like :c:func:" @@ -2803,7 +2810,7 @@ msgstr "" "también usan el método ``__index__()`` si está disponible. (Contribución de " "Serhiy Storchaka en :issue:`36048` y :issue:`20092`.)" -#: ../Doc/whatsnew/3.8.rst:1617 +#: ../Doc/whatsnew/3.8.rst:1620 msgid "" "Heap-allocated type objects will now increase their reference count in :c:" "func:`PyObject_Init` (and its parallel macro ``PyObject_INIT``) instead of " @@ -2817,7 +2824,7 @@ msgstr "" "que deban ajustarse los tipos que modifican la asignación o desasignación de " "instancias. (Contribución de Eddie Elizondo en :issue:`35810`.)" -#: ../Doc/whatsnew/3.8.rst:1623 +#: ../Doc/whatsnew/3.8.rst:1626 msgid "" "The new function :c:func:`PyCode_NewWithPosOnlyArgs` allows to create code " "objects like :c:func:`PyCode_New`, but with an extra *posonlyargcount* " @@ -2829,9 +2836,10 @@ msgstr "" "*posonlyargcount* extra, que permite indicar el número de argumentos solo " "posicionales." -#: ../Doc/whatsnew/3.8.rst:1628 +#: ../Doc/whatsnew/3.8.rst:1631 +#, fuzzy msgid "" -":c:func:`Py_SetPath` now sets :data:`sys.executable` to the program full " +":c:func:`!Py_SetPath` now sets :data:`sys.executable` to the program full " "path (:c:func:`Py_GetProgramFullPath`) rather than to the program name (:c:" "func:`Py_GetProgramName`). (Contributed by Victor Stinner in :issue:`38234`.)" msgstr "" @@ -2840,11 +2848,11 @@ msgstr "" "nombre del programa (:c:func:`Py_GetProgramName`). (Contribución de Victor " "Stinner en :issue:`38234`.)" -#: ../Doc/whatsnew/3.8.rst:1635 +#: ../Doc/whatsnew/3.8.rst:1638 msgid "Deprecated" msgstr "Obsoleto" -#: ../Doc/whatsnew/3.8.rst:1637 +#: ../Doc/whatsnew/3.8.rst:1640 msgid "" "The distutils ``bdist_wininst`` command is now deprecated, use " "``bdist_wheel`` (wheel packages) instead. (Contributed by Victor Stinner in :" @@ -2854,7 +2862,7 @@ msgstr "" "``bdist_wheel`` (paquetes wheel) en su lugar. (Contribución de Victor " "Stinner en :issue:`37481`.)" -#: ../Doc/whatsnew/3.8.rst:1641 +#: ../Doc/whatsnew/3.8.rst:1644 msgid "" "Deprecated methods ``getchildren()`` and ``getiterator()`` in the :mod:`~xml." "etree.ElementTree` module now emit a :exc:`DeprecationWarning` instead of :" @@ -2866,7 +2874,7 @@ msgstr "" "en lugar de :exc:`PendingDeprecationWarning`. Serán eliminados en Python " "3.9. (Contribución de Serhiy Storchaka en :issue:`29209`.)" -#: ../Doc/whatsnew/3.8.rst:1647 +#: ../Doc/whatsnew/3.8.rst:1650 msgid "" "Passing an object that is not an instance of :class:`concurrent.futures." "ThreadPoolExecutor` to :meth:`loop.set_default_executor() `. (Contributed by Serhiy Storchaka in :issue:`36492`.)" @@ -3097,15 +3106,15 @@ msgstr "" "posicionales `. (Contribución de Serhiy Storchaka " "en :issue:`36492`.)" -#: ../Doc/whatsnew/3.8.rst:1748 +#: ../Doc/whatsnew/3.8.rst:1751 msgid "API and Feature Removals" msgstr "APIs y características eliminadas" -#: ../Doc/whatsnew/3.8.rst:1750 +#: ../Doc/whatsnew/3.8.rst:1753 msgid "The following features and APIs have been removed from Python 3.8:" msgstr "Las siguientes características y APIs se han eliminado de Python 3.8:" -#: ../Doc/whatsnew/3.8.rst:1752 +#: ../Doc/whatsnew/3.8.rst:1755 msgid "" "Starting with Python 3.3, importing ABCs from :mod:`collections` was " "deprecated, and importing should be done from :mod:`collections.abc`. Being " @@ -3118,7 +3127,7 @@ msgstr "" "se marcó para su eliminación en Python 3.8, pero se ha retrasado a Python " "3.9. (Consultar :issue:`36952`.)" -#: ../Doc/whatsnew/3.8.rst:1757 +#: ../Doc/whatsnew/3.8.rst:1760 msgid "" "The :mod:`macpath` module, deprecated in Python 3.7, has been removed. " "(Contributed by Victor Stinner in :issue:`35471`.)" @@ -3126,7 +3135,7 @@ msgstr "" "El módulo :mod:`macpath`, obsoleto desde Python 3.7, ha sido eliminado. " "(Contribución de Victor Stinner en :issue:`35471`.)" -#: ../Doc/whatsnew/3.8.rst:1760 ../Doc/whatsnew/3.8.rst:1879 +#: ../Doc/whatsnew/3.8.rst:1763 ../Doc/whatsnew/3.8.rst:1882 msgid "" "The function :func:`platform.popen` has been removed, after having been " "deprecated since Python 3.3: use :func:`os.popen` instead. (Contributed by " @@ -3136,7 +3145,7 @@ msgstr "" "obsoleta desde Python 3.3: usa :func:`os.popen` en su lugar. (Contribución " "de Victor Stinner en :issue:`35345`.)" -#: ../Doc/whatsnew/3.8.rst:1764 +#: ../Doc/whatsnew/3.8.rst:1767 msgid "" "The function :func:`time.clock` has been removed, after having been " "deprecated since Python 3.3: use :func:`time.perf_counter` or :func:`time." @@ -3149,7 +3158,7 @@ msgstr "" "comportamiento bien definido. (Contribución de Matthias Bussonnier en :issue:" "`36895`.)" -#: ../Doc/whatsnew/3.8.rst:1770 +#: ../Doc/whatsnew/3.8.rst:1773 msgid "" "The ``pyvenv`` script has been removed in favor of ``python3.8 -m venv`` to " "help eliminate confusion as to what Python interpreter the ``pyvenv`` script " @@ -3160,7 +3169,7 @@ msgstr "" "vinculado el script ``pyvenv``. (Contribución de Brett Cannon en :issue:" "`25427`.)" -#: ../Doc/whatsnew/3.8.rst:1774 +#: ../Doc/whatsnew/3.8.rst:1777 msgid "" "``parse_qs``, ``parse_qsl``, and ``escape`` are removed from the :mod:`cgi` " "module. They are deprecated in Python 3.2 or older. They should be imported " @@ -3171,7 +3180,7 @@ msgstr "" "anteriores. En su lugar, deberían ser importadas desde los módulos ``urllib." "parse`` y ``html``." -#: ../Doc/whatsnew/3.8.rst:1778 +#: ../Doc/whatsnew/3.8.rst:1781 msgid "" "``filemode`` function is removed from the :mod:`tarfile` module. It is not " "documented and deprecated since Python 3.3." @@ -3179,7 +3188,7 @@ msgstr "" "La función ``filemode`` se ha eliminado del módulo :mod:`tarfile`. Estaba " "indocumentada y obsoleta desde Python 3.3." -#: ../Doc/whatsnew/3.8.rst:1781 +#: ../Doc/whatsnew/3.8.rst:1784 msgid "" "The :class:`~xml.etree.ElementTree.XMLParser` constructor no longer accepts " "the *html* argument. It never had an effect and was deprecated in Python " @@ -3191,7 +3200,7 @@ msgstr "" "los demás parámetros son ahora :ref:`parámetros solo nombrados `. (Contribución de Serhiy Storchaka en :issue:`29209`.)" -#: ../Doc/whatsnew/3.8.rst:1786 +#: ../Doc/whatsnew/3.8.rst:1789 msgid "" "Removed the ``doctype()`` method of :class:`~xml.etree.ElementTree." "XMLParser`. (Contributed by Serhiy Storchaka in :issue:`29209`.)" @@ -3199,7 +3208,7 @@ msgstr "" "Se ha eliminado el método ``doctype()`` de :class:`~xml.etree.ElementTree." "XMLParser`. (Contribución de Serhiy Storchaka en :issue:`29209`.)" -#: ../Doc/whatsnew/3.8.rst:1789 +#: ../Doc/whatsnew/3.8.rst:1792 msgid "" "\"unicode_internal\" codec is removed. (Contributed by Inada Naoki in :issue:" "`36297`.)" @@ -3207,7 +3216,7 @@ msgstr "" "Se ha elimina el códec \"unicode_internal\". (Contribución de Inada Naoki " "en :issue:`36297`.)" -#: ../Doc/whatsnew/3.8.rst:1792 +#: ../Doc/whatsnew/3.8.rst:1795 msgid "" "The ``Cache`` and ``Statement`` objects of the :mod:`sqlite3` module are not " "exposed to the user. (Contributed by Aviv Palivoda in :issue:`30262`.)" @@ -3216,7 +3225,7 @@ msgstr "" "expuestos al usuario a partir de ahora. (Contribución de Aviv Palivoda en :" "issue:`30262`.)" -#: ../Doc/whatsnew/3.8.rst:1796 +#: ../Doc/whatsnew/3.8.rst:1799 msgid "" "The ``bufsize`` keyword argument of :func:`fileinput.input` and :func:" "`fileinput.FileInput` which was ignored and deprecated since Python 3.6 has " @@ -3226,7 +3235,7 @@ msgstr "" "func:`fileinput.FileInput`, marcado como obsoleto e ignorado desde Python " "3.6, ha sido eliminado. :issue:`36952` (Contribución de Matthias Bussonnier.)" -#: ../Doc/whatsnew/3.8.rst:1800 +#: ../Doc/whatsnew/3.8.rst:1803 msgid "" "The functions :func:`sys.set_coroutine_wrapper` and :func:`sys." "get_coroutine_wrapper` deprecated in Python 3.7 have been removed; :issue:" @@ -3236,11 +3245,11 @@ msgstr "" "get_coroutine_wrapper`, obsoletas desde Python 3.7, han sido eliminadas; :" "issue:`36933` (Contribución de Matthias Bussonnier.)" -#: ../Doc/whatsnew/3.8.rst:1806 +#: ../Doc/whatsnew/3.8.rst:1809 msgid "Porting to Python 3.8" msgstr "Portando a Python 3.8" -#: ../Doc/whatsnew/3.8.rst:1808 +#: ../Doc/whatsnew/3.8.rst:1811 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code." @@ -3248,11 +3257,11 @@ msgstr "" "Esta sección enumera los cambios descritos anteriormente y otras " "correcciones de errores que pueden requerir cambios en tu código." -#: ../Doc/whatsnew/3.8.rst:1813 +#: ../Doc/whatsnew/3.8.rst:1816 msgid "Changes in Python behavior" msgstr "Cambios en el comportamiento de Python" -#: ../Doc/whatsnew/3.8.rst:1815 +#: ../Doc/whatsnew/3.8.rst:1818 msgid "" "Yield expressions (both ``yield`` and ``yield from`` clauses) are now " "disallowed in comprehensions and generator expressions (aside from the " @@ -3264,7 +3273,7 @@ msgstr "" "(excepto en la expresión iterable en la cláusula :keyword:`!for` situada más " "a la izquierda). (Contribución de Serhiy Storchaka en :issue:`10544`.)" -#: ../Doc/whatsnew/3.8.rst:1820 +#: ../Doc/whatsnew/3.8.rst:1823 msgid "" "The compiler now produces a :exc:`SyntaxWarning` when identity checks " "(``is`` and ``is not``) are used with certain types of literals (e.g. " @@ -3281,7 +3290,7 @@ msgstr "" "utilicen pruebas de igualdad (``==`` y ``!=``) en su lugar. (Contribución de " "Serhiy Storchaka en :issue:`34850`.)" -#: ../Doc/whatsnew/3.8.rst:1827 +#: ../Doc/whatsnew/3.8.rst:1830 msgid "" "The CPython interpreter can swallow exceptions in some circumstances. In " "Python 3.8 this happens in fewer cases. In particular, exceptions raised " @@ -3294,7 +3303,7 @@ msgstr "" "diccionario de tipos ya no son ignoradas. (Contribución de Serhiy Storchaka " "en :issue:`35459`.)" -#: ../Doc/whatsnew/3.8.rst:1832 +#: ../Doc/whatsnew/3.8.rst:1835 msgid "" "Removed ``__str__`` implementations from builtin types :class:`bool`, :class:" "`int`, :class:`float`, :class:`complex` and few classes from the standard " @@ -3311,9 +3320,10 @@ msgstr "" "como cadena de caracteres. (Contribución de Serhiy Storchaka en :issue:" "`36793`.)" -#: ../Doc/whatsnew/3.8.rst:1839 +#: ../Doc/whatsnew/3.8.rst:1842 +#, fuzzy msgid "" -"On AIX, :attr:`sys.platform` doesn't contain the major version anymore. It " +"On AIX, :data:`sys.platform` doesn't contain the major version anymore. It " "is always ``'aix'``, instead of ``'aix3'`` .. ``'aix7'``. Since older " "Python versions include the version number, so it is recommended to always " "use ``sys.platform.startswith('aix')``. (Contributed by M. Felt in :issue:" @@ -3325,15 +3335,15 @@ msgstr "" "de versión, se recomienda usar siempre ``sys.platform.startswith('aix')``. " "(Contribución de M. Felt en :issue:`36588`.)" -#: ../Doc/whatsnew/3.8.rst:1845 +#: ../Doc/whatsnew/3.8.rst:1848 +#, fuzzy msgid "" -":c:func:`PyEval_AcquireLock` and :c:func:`PyEval_AcquireThread` now " +":c:func:`!PyEval_AcquireLock` and :c:func:`!PyEval_AcquireThread` now " "terminate the current thread if called while the interpreter is finalizing, " "making them consistent with :c:func:`PyEval_RestoreThread`, :c:func:" "`Py_END_ALLOW_THREADS`, and :c:func:`PyGILState_Ensure`. If this behavior is " -"not desired, guard the call by checking :c:func:`_Py_IsFinalizing` or :c:" -"func:`sys.is_finalizing`. (Contributed by Joannah Nanjekye in :issue:" -"`36475`.)" +"not desired, guard the call by checking :c:func:`!_Py_IsFinalizing` or :func:" +"`sys.is_finalizing`. (Contributed by Joannah Nanjekye in :issue:`36475`.)" msgstr "" ":c:func:`PyEval_AcquireLock` y :c:func:`PyEval_AcquireThread` ahora terminan " "el hilo actual si se llaman mientras el intérprete está finalizando, " @@ -3343,11 +3353,11 @@ msgstr "" "`_Py_IsFinalizing` o :c:func:`sys.is_finalizing`. (Contribución de Joannah " "Nanjekye en :issue:`36475`.)" -#: ../Doc/whatsnew/3.8.rst:1855 +#: ../Doc/whatsnew/3.8.rst:1858 msgid "Changes in the Python API" msgstr "Cambios en la API de Python" -#: ../Doc/whatsnew/3.8.rst:1857 +#: ../Doc/whatsnew/3.8.rst:1860 msgid "" "The :func:`os.getcwdb` function now uses the UTF-8 encoding on Windows, " "rather than the ANSI code page: see :pep:`529` for the rationale. The " @@ -3359,7 +3369,7 @@ msgstr "" "La función ya no está obsoleta en Windows. (Contribución de Victor Stinner " "en :issue:`37412`.)" -#: ../Doc/whatsnew/3.8.rst:1862 +#: ../Doc/whatsnew/3.8.rst:1865 msgid "" ":class:`subprocess.Popen` can now use :func:`os.posix_spawn` in some cases " "for better performance. On Windows Subsystem for Linux and QEMU User " @@ -3376,7 +3386,7 @@ msgstr "" "returncode` distinto de cero. (Contribución de Joannah Nanjekye y Victor " "Stinner en :issue:`35537`.)" -#: ../Doc/whatsnew/3.8.rst:1869 +#: ../Doc/whatsnew/3.8.rst:1872 msgid "" "The *preexec_fn* argument of * :class:`subprocess.Popen` is no longer " "compatible with subinterpreters. The use of the parameter in a " @@ -3388,7 +3398,7 @@ msgstr "" "excepción :exc:`RuntimeError`. (Contribución de Eric Snow en :issue:`34651`, " "modificado por Christian Heimes en :issue:`37951`.)" -#: ../Doc/whatsnew/3.8.rst:1875 +#: ../Doc/whatsnew/3.8.rst:1878 msgid "" "The :meth:`imap.IMAP4.logout` method no longer silently ignores arbitrary " "exceptions. (Contributed by Victor Stinner in :issue:`36348`.)" @@ -3396,7 +3406,7 @@ msgstr "" "El método :meth:`imap.IMAP4.logout` ya no ignora silenciosamente excepciones " "arbitrarias. (Contribución de Victor Stinner en :issue:`36348`.)" -#: ../Doc/whatsnew/3.8.rst:1883 +#: ../Doc/whatsnew/3.8.rst:1886 msgid "" "The :func:`statistics.mode` function no longer raises an exception when " "given multimodal data. Instead, it returns the first mode encountered in " @@ -3407,7 +3417,7 @@ msgstr "" "encontrada en los datos de entrada. (Contribución de Raymond Hettinger en :" "issue:`35892`.)" -#: ../Doc/whatsnew/3.8.rst:1888 +#: ../Doc/whatsnew/3.8.rst:1891 msgid "" "The :meth:`~tkinter.ttk.Treeview.selection` method of the :class:`tkinter." "ttk.Treeview` class no longer takes arguments. Using it with arguments for " @@ -3421,7 +3431,7 @@ msgstr "" "especializados, como :meth:`~tkinter.ttk.Treeview.selection_set`, para " "cambiar la selección. (Contribución de Serhiy Storchaka en :issue:`31508`.)" -#: ../Doc/whatsnew/3.8.rst:1894 +#: ../Doc/whatsnew/3.8.rst:1897 msgid "" "The :meth:`writexml`, :meth:`toxml` and :meth:`toprettyxml` methods of :mod:" "`xml.dom.minidom`, and the :meth:`write` method of :mod:`xml.etree`, now " @@ -3433,7 +3443,7 @@ msgstr "" "conservan el orden de los atributos especificado por el usuario. " "(Contribución de Diego Rojas y Raymond Hettinger en :issue:`34160`.)" -#: ../Doc/whatsnew/3.8.rst:1899 +#: ../Doc/whatsnew/3.8.rst:1902 msgid "" "A :mod:`dbm.dumb` database opened with flags ``'r'`` is now read-only. :func:" "`dbm.dumb.open` with flags ``'r'`` and ``'w'`` no longer creates a database " @@ -3444,7 +3454,7 @@ msgstr "" "crea una base de datos si no existe. (Contribución de Serhiy Storchaka en :" "issue:`32749`.)" -#: ../Doc/whatsnew/3.8.rst:1904 +#: ../Doc/whatsnew/3.8.rst:1907 msgid "" "The ``doctype()`` method defined in a subclass of :class:`~xml.etree." "ElementTree.XMLParser` will no longer be called and will emit a :exc:" @@ -3460,7 +3470,7 @@ msgstr "" "para manejar una declaración doctype de XML. (Contribución de Serhiy " "Storchaka en :issue:`29209`.)" -#: ../Doc/whatsnew/3.8.rst:1911 +#: ../Doc/whatsnew/3.8.rst:1914 msgid "" "A :exc:`RuntimeError` is now raised when the custom metaclass doesn't " "provide the ``__classcell__`` entry in the namespace passed to ``type." @@ -3473,7 +3483,7 @@ msgstr "" "advertencia :exc:`DeprecationWarning` (Contribución de Serhiy Storchaka en :" "issue:`23722`.)" -#: ../Doc/whatsnew/3.8.rst:1916 +#: ../Doc/whatsnew/3.8.rst:1919 msgid "" "The :class:`cProfile.Profile` class can now be used as a context manager. " "(Contributed by Scott Sanderson in :issue:`29235`.)" @@ -3481,7 +3491,7 @@ msgstr "" "La clase :class:`cProfile.Profile` ahora se puede usar como gestor de " "contexto. (Contribución de Scott Sanderson en :issue:`29235`.)" -#: ../Doc/whatsnew/3.8.rst:1919 +#: ../Doc/whatsnew/3.8.rst:1922 msgid "" ":func:`shutil.copyfile`, :func:`shutil.copy`, :func:`shutil.copy2`, :func:" "`shutil.copytree` and :func:`shutil.move` use platform-specific \"fast-" @@ -3493,7 +3503,7 @@ msgstr "" "rápida\" específicas de la plataforma. (Consultar la sección :ref:`shutil-" "platform-dependent-efficient-copy-operations`)." -#: ../Doc/whatsnew/3.8.rst:1924 +#: ../Doc/whatsnew/3.8.rst:1927 msgid "" ":func:`shutil.copyfile` default buffer size on Windows was changed from 16 " "KiB to 1 MiB." @@ -3501,7 +3511,7 @@ msgstr "" "El tamaño predeterminado del búfer de :func:`shutil.copyfile` en Windows se " "ha cambiado de 16 KiB a 1 MiB." -#: ../Doc/whatsnew/3.8.rst:1927 +#: ../Doc/whatsnew/3.8.rst:1930 msgid "" "The ``PyGC_Head`` struct has changed completely. All code that touched the " "struct member should be rewritten. (See :issue:`33597`.)" @@ -3510,7 +3520,7 @@ msgstr "" "uso de algún miembro de la estructura debe reescribirse. (Consultar :issue:" "`33597`.)" -#: ../Doc/whatsnew/3.8.rst:1930 +#: ../Doc/whatsnew/3.8.rst:1933 msgid "" "The :c:type:`PyInterpreterState` struct has been moved into the \"internal\" " "header files (specifically Include/internal/pycore_pystate.h). An opaque " @@ -3531,7 +3541,7 @@ msgstr "" "adaptarlo (posiblemente incluyendo funciones de acceso a la API pública). " "(Consultar :issue:`35886`.)" -#: ../Doc/whatsnew/3.8.rst:1940 +#: ../Doc/whatsnew/3.8.rst:1943 msgid "" "The :meth:`mmap.flush() ` method now returns ``None`` on " "success and raises an exception on error under all platforms. Previously, " @@ -3548,7 +3558,7 @@ msgstr "" "una excepción ante un error. (Contribución de Berker Peksag en :issue:" "`2122`.)" -#: ../Doc/whatsnew/3.8.rst:1947 +#: ../Doc/whatsnew/3.8.rst:1950 msgid "" ":mod:`xml.dom.minidom` and :mod:`xml.sax` modules no longer process external " "entities by default. (Contributed by Christian Heimes in :issue:`17239`.)" @@ -3557,7 +3567,7 @@ msgstr "" "externas de forma predeterminada. (Contribución de Christian Heimes en :" "issue:`17239`.)" -#: ../Doc/whatsnew/3.8.rst:1951 +#: ../Doc/whatsnew/3.8.rst:1954 msgid "" "Deleting a key from a read-only :mod:`dbm` database (:mod:`dbm.dumb`, :mod:" "`dbm.gnu` or :mod:`dbm.ndbm`) raises :attr:`error` (:exc:`dbm.dumb.error`, :" @@ -3570,7 +3580,7 @@ msgstr "" "error`) en lugar de :exc:`KeyError`. (Contribución de Xiang Zhang en :issue:" "`33106`.)" -#: ../Doc/whatsnew/3.8.rst:1956 +#: ../Doc/whatsnew/3.8.rst:1959 msgid "" "Simplified AST for literals. All constants will be represented as :class:" "`ast.Constant` instances. Instantiating old classes ``Num``, ``Str``, " @@ -3583,7 +3593,7 @@ msgstr "" "una instancia de ``Constant``. (Contribución de Serhiy Storchaka en :issue:" "`32892`.)" -#: ../Doc/whatsnew/3.8.rst:1972 +#: ../Doc/whatsnew/3.8.rst:1975 msgid "" "The function :func:`asyncio.wait_for` now correctly waits for cancellation " "when using an instance of :class:`asyncio.Task`. Previously, upon reaching " @@ -3595,7 +3605,7 @@ msgstr "" "Anteriormente, al alcanzar *timeout*, se cancelaba y retornaba de inmediato. " "(Contribución de Elvis Pranskevichus en :issue:`32751`.)" -#: ../Doc/whatsnew/3.8.rst:1977 +#: ../Doc/whatsnew/3.8.rst:1980 msgid "" "The function :func:`asyncio.BaseTransport.get_extra_info` now returns a safe " "to use socket object when 'socket' is passed to the *name* parameter. " @@ -3605,12 +3615,12 @@ msgstr "" "objeto socket seguro cuando se pasa 'socket' al parámetro *name*. " "(Contribución de Yury Selivanov en :issue:`37027`.)" -#: ../Doc/whatsnew/3.8.rst:1981 +#: ../Doc/whatsnew/3.8.rst:1984 msgid ":class:`asyncio.BufferedProtocol` has graduated to the stable API." msgstr "" ":class:`asyncio.BufferedProtocol` ha pasado a formar parte de la API estable." -#: ../Doc/whatsnew/3.8.rst:1985 +#: ../Doc/whatsnew/3.8.rst:1988 msgid "" "DLL dependencies for extension modules and DLLs loaded with :mod:`ctypes` on " "Windows are now resolved more securely. Only the system paths, the directory " @@ -3638,7 +3648,7 @@ msgstr "" "también lo verifica el instalador). (Contribución de Steve Dower en :issue:" "`36085`.)" -#: ../Doc/whatsnew/3.8.rst:1998 +#: ../Doc/whatsnew/3.8.rst:2001 msgid "" "The header files and functions related to pgen have been removed after its " "replacement by a pure Python implementation. (Contributed by Pablo Galindo " @@ -3648,7 +3658,7 @@ msgstr "" "eliminado después de su reemplazo por una implementación pura de Python. " "(Contribución de Pablo Galindo en :issue:`36623`.)" -#: ../Doc/whatsnew/3.8.rst:2002 +#: ../Doc/whatsnew/3.8.rst:2005 msgid "" ":class:`types.CodeType` has a new parameter in the second position of the " "constructor (*posonlyargcount*) to support positional-only arguments defined " @@ -3664,7 +3674,7 @@ msgstr "" "posicionales). El nuevo método ``replace()`` de :class:`types.CodeType` se " "puede utilizar para hacer que el código esté preparado para el futuro." -#: ../Doc/whatsnew/3.8.rst:2009 +#: ../Doc/whatsnew/3.8.rst:2012 msgid "" "The parameter ``digestmod`` for :func:`hmac.new` no longer uses the MD5 " "digest by default." @@ -3672,11 +3682,11 @@ msgstr "" "El parámetro ``digestmod`` de :func:`hmac.new` ya no usa el resumen MD5 por " "defecto." -#: ../Doc/whatsnew/3.8.rst:2013 +#: ../Doc/whatsnew/3.8.rst:2016 msgid "Changes in the C API" msgstr "Cambios en la API de C" -#: ../Doc/whatsnew/3.8.rst:2015 +#: ../Doc/whatsnew/3.8.rst:2018 msgid "" "The :c:struct:`PyCompilerFlags` structure got a new *cf_feature_version* " "field. It should be initialized to ``PY_MINOR_VERSION``. The field is " @@ -3689,17 +3699,18 @@ msgstr "" "``PyCF_ONLY_AST`` está establecido en *cf_flags*. (Aportado por Guido van " "Rossum en :issue:`35766`.)" -#: ../Doc/whatsnew/3.8.rst:2021 +#: ../Doc/whatsnew/3.8.rst:2024 +#, fuzzy msgid "" -"The :c:func:`PyEval_ReInitThreads` function has been removed from the C API. " -"It should not be called explicitly: use :c:func:`PyOS_AfterFork_Child` " +"The :c:func:`!PyEval_ReInitThreads` function has been removed from the C " +"API. It should not be called explicitly: use :c:func:`PyOS_AfterFork_Child` " "instead. (Contributed by Victor Stinner in :issue:`36728`.)" msgstr "" "La función :c:func:`PyEval_ReInitThreads` se ha eliminado de la API de C. No " "debe llamarse explícitamente: usa :c:func:`PyOS_AfterFork_Child` en su " "lugar. (Contribución de Victor Stinner en :issue:`36728`.)" -#: ../Doc/whatsnew/3.8.rst:2026 +#: ../Doc/whatsnew/3.8.rst:2029 msgid "" "On Unix, C extensions are no longer linked to libpython except on Android " "and Cygwin. When Python is embedded, ``libpython`` must not be loaded with " @@ -3717,7 +3728,7 @@ msgstr "" "la biblioteca estándar construida por la sección ``*shared*`` de ``Modules/" "Setup``. (Contribución de Victor Stinner en :issue:`21536`.)" -#: ../Doc/whatsnew/3.8.rst:2034 +#: ../Doc/whatsnew/3.8.rst:2037 msgid "" "Use of ``#`` variants of formats in parsing or building value (e.g. :c:func:" "`PyArg_ParseTuple`, :c:func:`Py_BuildValue`, :c:func:" @@ -3732,7 +3743,7 @@ msgstr "" "3.10 ó 4.0. Consultar :ref:`arg-parsing` para más detalles. (Contribución de " "Inada Naoki en :issue:`36381`.)" -#: ../Doc/whatsnew/3.8.rst:2040 +#: ../Doc/whatsnew/3.8.rst:2043 msgid "" "Instances of heap-allocated types (such as those created with :c:func:" "`PyType_FromSpec`) hold a reference to their type object. Increasing the " @@ -3749,11 +3760,11 @@ msgstr "" "mediante :c:func:`PyType_FromSpec` se comporten como otras clases en el " "código gestionado." -#: ../Doc/whatsnew/3.8.rst:2048 +#: ../Doc/whatsnew/3.8.rst:2051 msgid ":ref:`Statically allocated types ` are not affected." msgstr ":ref:`Statically allocated types ` no se ve afectado." -#: ../Doc/whatsnew/3.8.rst:2050 +#: ../Doc/whatsnew/3.8.rst:2053 msgid "" "For the vast majority of cases, there should be no side effect. However, " "types that manually increase the reference count after allocating an " @@ -3767,17 +3778,18 @@ msgstr "" "volverse inmortales. Para evitar esto, estas clases deben llamar a Py_DECREF " "en el objeto de tipo durante la desasignación de la instancia." -#: ../Doc/whatsnew/3.8.rst:2056 +#: ../Doc/whatsnew/3.8.rst:2059 msgid "" "To correctly port these types into 3.8, please apply the following changes:" msgstr "" "Para portar correctamente estos tipos a Python 3.8, aplica los siguientes " "cambios:" -#: ../Doc/whatsnew/3.8.rst:2059 +#: ../Doc/whatsnew/3.8.rst:2062 +#, fuzzy msgid "" "Remove :c:macro:`Py_INCREF` on the type object after allocating an instance " -"- if any. This may happen after calling :c:func:`PyObject_New`, :c:func:" +"- if any. This may happen after calling :c:macro:`PyObject_New`, :c:macro:" "`PyObject_NewVar`, :c:func:`PyObject_GC_New`, :c:func:`PyObject_GC_NewVar`, " "or any other custom allocator that uses :c:func:`PyObject_Init` or :c:func:" "`PyObject_INIT`." @@ -3788,12 +3800,12 @@ msgstr "" "func:`PyObject_GC_NewVar`, o cualquier otro asignador personalizado que use :" "c:func:`PyObject_Init` o :c:func:`PyObject_INIT`." -#: ../Doc/whatsnew/3.8.rst:2066 ../Doc/whatsnew/3.8.rst:2085 -#: ../Doc/whatsnew/3.8.rst:2104 +#: ../Doc/whatsnew/3.8.rst:2069 ../Doc/whatsnew/3.8.rst:2088 +#: ../Doc/whatsnew/3.8.rst:2107 msgid "Example:" msgstr "Ejemplo:" -#: ../Doc/whatsnew/3.8.rst:2082 +#: ../Doc/whatsnew/3.8.rst:2085 msgid "" "Ensure that all custom ``tp_dealloc`` functions of heap-allocated types " "decrease the type's reference count." @@ -3801,11 +3813,11 @@ msgstr "" "Asegúrate de que todas las funciones personalizadas ``tp_dealloc`` de los " "tipos asignados al montón disminuyan el recuento de referencias del tipo." -#: ../Doc/whatsnew/3.8.rst:2099 +#: ../Doc/whatsnew/3.8.rst:2102 msgid "(Contributed by Eddie Elizondo in :issue:`35810`.)" msgstr "(Contribución de Eddie Elizondo en :issue:`35810`.)" -#: ../Doc/whatsnew/3.8.rst:2101 +#: ../Doc/whatsnew/3.8.rst:2104 msgid "" "The :c:macro:`Py_DEPRECATED()` macro has been implemented for MSVC. The " "macro now must be placed before the symbol name." @@ -3813,17 +3825,18 @@ msgstr "" "La macro :c:macro:`Py_DEPRECATED()` ha sido implementada para MSVC. La macro " "ahora debe ser colocada antes del nombre del símbolo." -#: ../Doc/whatsnew/3.8.rst:2110 +#: ../Doc/whatsnew/3.8.rst:2113 msgid "(Contributed by Zackery Spytz in :issue:`33407`.)" msgstr "(Contribución de Zackery Spytz en :issue:`33407`.)" -#: ../Doc/whatsnew/3.8.rst:2112 +#: ../Doc/whatsnew/3.8.rst:2115 +#, fuzzy msgid "" "The interpreter does not pretend to support binary compatibility of " "extension types across feature releases, anymore. A :c:type:`PyTypeObject` " "exported by a third-party extension module is supposed to have all the slots " "expected in the current Python version, including :c:member:`~PyTypeObject." -"tp_finalize` (:const:`Py_TPFLAGS_HAVE_FINALIZE` is not checked anymore " +"tp_finalize` (:c:macro:`Py_TPFLAGS_HAVE_FINALIZE` is not checked anymore " "before reading :c:member:`~PyTypeObject.tp_finalize`)." msgstr "" "El intérprete ya no pretende dar suporte nunca más a la compatibilidad " @@ -3834,19 +3847,21 @@ msgstr "" "`Py_TPFLAGS_HAVE_FINALIZE` ya no se verifica antes de leer :c:member:" "`~PyTypeObject.tp_finalize`)." -#: ../Doc/whatsnew/3.8.rst:2119 +#: ../Doc/whatsnew/3.8.rst:2122 msgid "(Contributed by Antoine Pitrou in :issue:`32388`.)" msgstr "(Contribución de Antoine Pitrou en :issue:`32388`.)" -#: ../Doc/whatsnew/3.8.rst:2121 +#: ../Doc/whatsnew/3.8.rst:2124 +#, fuzzy msgid "" -"The functions :c:func:`PyNode_AddChild` and :c:func:`PyParser_AddToken` now " -"accept two additional ``int`` arguments *end_lineno* and *end_col_offset*." +"The functions :c:func:`!PyNode_AddChild` and :c:func:`!PyParser_AddToken` " +"now accept two additional ``int`` arguments *end_lineno* and " +"*end_col_offset*." msgstr "" "Las funciones :c:func:`PyNode_AddChild` y :c:func:`PyParser_AddToken` ahora " "aceptan dos argumentos ``int`` adicionales, *end_lineno* y *end_col_offset*." -#: ../Doc/whatsnew/3.8.rst:2124 +#: ../Doc/whatsnew/3.8.rst:2127 msgid "" "The :file:`libpython38.a` file to allow MinGW tools to link directly " "against :file:`python38.dll` is no longer included in the regular Windows " @@ -3859,7 +3874,7 @@ msgstr "" "herramientas ``gendef`` y ``dlltool``, que son parte del paquete binutils de " "MinGW:" -#: ../Doc/whatsnew/3.8.rst:2134 +#: ../Doc/whatsnew/3.8.rst:2137 msgid "" "The location of an installed :file:`pythonXY.dll` will depend on the " "installation options and the version and language of Windows. See :ref:" @@ -3873,15 +3888,15 @@ msgstr "" "resultante debe colocarse en el mismo directorio que :file:`pythonXY.lib`, " "que generalmente es el directorio :file:`libs` en tu instalación de Python." -#: ../Doc/whatsnew/3.8.rst:2140 +#: ../Doc/whatsnew/3.8.rst:2143 msgid "(Contributed by Steve Dower in :issue:`37351`.)" msgstr "(Contribución de Steve Dower en :issue:`37351`.)" -#: ../Doc/whatsnew/3.8.rst:2144 +#: ../Doc/whatsnew/3.8.rst:2147 msgid "CPython bytecode changes" msgstr "Cambios en el bytecode de CPython" -#: ../Doc/whatsnew/3.8.rst:2146 +#: ../Doc/whatsnew/3.8.rst:2149 msgid "" "The interpreter loop has been simplified by moving the logic of unrolling " "the stack of blocks into the compiler. The compiler emits now explicit " @@ -3893,7 +3908,7 @@ msgstr "" "instrucciones explícitas para ajustar la pila de valores y llamar al código " "de limpieza para :keyword:`break`, :keyword:`continue` y :keyword:`return`." -#: ../Doc/whatsnew/3.8.rst:2152 +#: ../Doc/whatsnew/3.8.rst:2155 msgid "" "Removed opcodes :opcode:`BREAK_LOOP`, :opcode:`CONTINUE_LOOP`, :opcode:" "`SETUP_LOOP` and :opcode:`SETUP_EXCEPT`. Added new opcodes :opcode:" @@ -3908,7 +3923,7 @@ msgstr "" "los códigos de operación :opcode:`END_FINALLY` y :opcode:" "`WITH_CLEANUP_START`." -#: ../Doc/whatsnew/3.8.rst:2158 +#: ../Doc/whatsnew/3.8.rst:2161 msgid "" "(Contributed by Mark Shannon, Antoine Pitrou and Serhiy Storchaka in :issue:" "`17611`.)" @@ -3916,7 +3931,7 @@ msgstr "" "(Contribución de Mark Shannon, Antoine Pitrou y Serhiy Storchaka en :issue:" "`17611`.)" -#: ../Doc/whatsnew/3.8.rst:2161 +#: ../Doc/whatsnew/3.8.rst:2164 msgid "" "Added new opcode :opcode:`END_ASYNC_FOR` for handling exceptions raised when " "awaiting a next item in an :keyword:`async for` loop. (Contributed by Serhiy " @@ -3926,7 +3941,7 @@ msgstr "" "excepciones lanzadas mientras se espera al siguiente elemento en un ciclo :" "keyword:`async for`. (Contribución de Serhiy Storchaka en :issue:`33041`.)" -#: ../Doc/whatsnew/3.8.rst:2165 +#: ../Doc/whatsnew/3.8.rst:2168 msgid "" "The :opcode:`MAP_ADD` now expects the value as the first element in the " "stack and the key as the second element. This change was made so the key is " @@ -3939,11 +3954,11 @@ msgstr "" "por compresión, como se propone en :pep:`572`. (Contribución de Jörn " "Heissler en :issue:`35224`.)" -#: ../Doc/whatsnew/3.8.rst:2172 +#: ../Doc/whatsnew/3.8.rst:2175 msgid "Demos and Tools" msgstr "Demos y herramientas" -#: ../Doc/whatsnew/3.8.rst:2174 +#: ../Doc/whatsnew/3.8.rst:2177 msgid "" "Added a benchmark script for timing various ways to access variables: " "``Tools/scripts/var_access_benchmark.py``. (Contributed by Raymond Hettinger " @@ -3953,19 +3968,20 @@ msgstr "" "formas de acceder a variables: ``Tools/scripts/var_access_benchmark.py``. " "(Contribución de Raymond Hettinger en :issue:`35884`.)" -#: ../Doc/whatsnew/3.8.rst:2178 +#: ../Doc/whatsnew/3.8.rst:2181 msgid "Here's a summary of performance improvements since Python 3.3:" msgstr "" "A continuación, se muestra un resumen de las mejoras de rendimiento desde " "Python 3.3:" -#: ../Doc/whatsnew/3.8.rst:2225 +#: ../Doc/whatsnew/3.8.rst:2228 +#, fuzzy msgid "" "The benchmarks were measured on an `Intel® Core™ i7-4960HQ processor " "`_ running the macOS 64-bit " -"builds found at `python.org `_. " -"The benchmark script displays timings in nanoseconds." +"builds found at `python.org `_. The " +"benchmark script displays timings in nanoseconds." msgstr "" "Las evaluaciones de rendimiento se realizaron en un `procesador Intel® Core™ " "i7-4960HQ `_. El script de evaluación de rendimiento " "muestra los tiempos en nanosegundos." -#: ../Doc/whatsnew/3.8.rst:2234 +#: ../Doc/whatsnew/3.8.rst:2237 msgid "Notable changes in Python 3.8.1" msgstr "Cambios notables en Python 3.8.1" -#: ../Doc/whatsnew/3.8.rst:2236 +#: ../Doc/whatsnew/3.8.rst:2239 msgid "" "Due to significant security concerns, the *reuse_address* parameter of :meth:" "`asyncio.loop.create_datagram_endpoint` is no longer supported. This is " @@ -3994,11 +4010,11 @@ msgstr "" "``loop.create_datagram_endpoint()``. (Contribución de Kyle Stanley, Antoine " "Pitrou y Yury Selivanov en :issue:`37228`.)" -#: ../Doc/whatsnew/3.8.rst:2244 +#: ../Doc/whatsnew/3.8.rst:2247 msgid "Notable changes in Python 3.8.8" msgstr "Cambios notables en Python 3.8.8" -#: ../Doc/whatsnew/3.8.rst:2246 +#: ../Doc/whatsnew/3.8.rst:2249 msgid "" "Earlier Python versions allowed using both ``;`` and ``&`` as query " "parameter separators in :func:`urllib.parse.parse_qs` and :func:`urllib." @@ -4019,11 +4035,11 @@ msgstr "" "obtener más detalles, consulte su documentación respectiva. (Contribuido por " "Adam Goldschmidt, Senthil Kumaran y Ken Jin en :issue:`42967`.)" -#: ../Doc/whatsnew/3.8.rst:2257 +#: ../Doc/whatsnew/3.8.rst:2260 msgid "Notable changes in Python 3.8.12" msgstr "Cambios notables en Python 3.8.1" -#: ../Doc/whatsnew/3.8.rst:2259 +#: ../Doc/whatsnew/3.8.rst:2262 msgid "" "Starting with Python 3.8.12 the :mod:`ipaddress` module no longer accepts " "any leading zeros in IPv4 address strings. Leading zeros are ambiguous and " @@ -4039,10 +4055,17 @@ msgstr "" "iniciales como notación octal. La implementación glibc del :func:`~socket." "inet_pton` moderno no acepta ceros a la izquierda." -#: ../Doc/whatsnew/3.8.rst:2266 +#: ../Doc/whatsnew/3.8.rst:2269 msgid "" "(Originally contributed by Christian Heimes in :issue:`36384`, and " "backported to 3.8 by Achraf Merzouki.)" msgstr "" "(Contribuido originalmente por Christian Heimes en :issue:`36384`, y " "actualizado a 3.8 por Achraf Merzouki)." + +#~ msgid "" +#~ "Added :meth:`pathlib.Path.link_to()` which creates a hard link pointing " +#~ "to a path. (Contributed by Joannah Nanjekye in :issue:`26978`)" +#~ msgstr "" +#~ "Agregado :meth:`pathlib.Path.link_to()` que crea un enlace duro apuntando " +#~ "a una ruta. (Contribución de Joannah Nanjekye en :issue:`26978`)" diff --git a/whatsnew/3.9.po b/whatsnew/3.9.po index 14af78fade..7abdd1531d 100644 --- a/whatsnew/3.9.po +++ b/whatsnew/3.9.po @@ -8,99 +8,80 @@ msgid "" msgstr "" "Project-Id-Version: Python en Español 3.9\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2022-10-25 19:47+0200\n" +"POT-Creation-Date: 2023-10-12 19:43+0200\n" "PO-Revision-Date: 2022-10-29 22:32-0300\n" "Last-Translator: \n" -"Language-Team: \n" "Language: es\n" +"Language-Team: \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.10.3\n" -"X-Generator: Poedit 3.2\n" +"Generated-By: Babel 2.13.0\n" #: ../Doc/whatsnew/3.9.rst:3 msgid "What's New In Python 3.9" msgstr "Qué hay de nuevo en Python 3.9" -#: ../Doc/whatsnew/3.9.rst -msgid "Release" -msgstr "Versión" - -#: ../Doc/whatsnew/3.9.rst:5 -msgid "|release|" -msgstr "|release|" - -#: ../Doc/whatsnew/3.9.rst -msgid "Date" -msgstr "Fecha" - -#: ../Doc/whatsnew/3.9.rst:6 -msgid "|today|" -msgstr "|today|" - #: ../Doc/whatsnew/3.9.rst msgid "Editor" msgstr "Editor" -#: ../Doc/whatsnew/3.9.rst:7 +#: ../Doc/whatsnew/3.9.rst:5 msgid "Łukasz Langa" msgstr "Łukasz Langa" -#: ../Doc/whatsnew/3.9.rst:47 +#: ../Doc/whatsnew/3.9.rst:45 +#, fuzzy msgid "" "This article explains the new features in Python 3.9, compared to 3.8. " -"Python 3.9 was released on October 5, 2020." +"Python 3.9 was released on October 5, 2020. For full details, see the :ref:" +"`changelog `." msgstr "" "Este artículo explica las nuevas funciones de Python 3.9, en comparación con " "3.8. Python 3.9 se lanzó el 5 de octubre de 2020." -#: ../Doc/whatsnew/3.9.rst:50 -msgid "For full details, see the :ref:`changelog `." -msgstr "" -"Para obtener detalles completos, consulte el :ref:`changelog `." - -#: ../Doc/whatsnew/3.9.rst:54 +#: ../Doc/whatsnew/3.9.rst:51 msgid ":pep:`596` - Python 3.9 Release Schedule" msgstr ":pep:`596` - Programa de lanzamiento de Python 3.9" -#: ../Doc/whatsnew/3.9.rst:58 +#: ../Doc/whatsnew/3.9.rst:55 msgid "Summary -- Release highlights" msgstr "Resumen: aspectos destacados de la versión" -#: ../Doc/whatsnew/3.9.rst:63 +#: ../Doc/whatsnew/3.9.rst:60 msgid "New syntax features:" msgstr "Nuevas funciones de sintaxis:" -#: ../Doc/whatsnew/3.9.rst:65 +#: ../Doc/whatsnew/3.9.rst:62 msgid ":pep:`584`, union operators added to ``dict``;" msgstr ":pep:`584`, operadores unión agregados a ``dict``;" -#: ../Doc/whatsnew/3.9.rst:66 +#: ../Doc/whatsnew/3.9.rst:63 msgid ":pep:`585`, type hinting generics in standard collections;" msgstr ":pep:`585`, genéricos de sugerencia de tipo en colecciones estándar;" -#: ../Doc/whatsnew/3.9.rst:67 +#: ../Doc/whatsnew/3.9.rst:64 msgid ":pep:`614`, relaxed grammar restrictions on decorators." msgstr ":pep:`614`, restricciones gramaticales relajadas para los decoradores." -#: ../Doc/whatsnew/3.9.rst:69 +#: ../Doc/whatsnew/3.9.rst:66 msgid "New built-in features:" msgstr "Nuevas funciones integradas:" -#: ../Doc/whatsnew/3.9.rst:71 +#: ../Doc/whatsnew/3.9.rst:68 msgid ":pep:`616`, string methods to remove prefixes and suffixes." msgstr ":pep:`616`, métodos de cadena para eliminar prefijos y sufijos." -#: ../Doc/whatsnew/3.9.rst:73 +#: ../Doc/whatsnew/3.9.rst:70 msgid "New features in the standard library:" msgstr "Nuevas funciones en la biblioteca estándar:" -#: ../Doc/whatsnew/3.9.rst:75 +#: ../Doc/whatsnew/3.9.rst:72 msgid ":pep:`593`, flexible function and variable annotations;" msgstr ":pep:`593`, función flexible y anotaciones variables;" -#: ../Doc/whatsnew/3.9.rst:76 +#: ../Doc/whatsnew/3.9.rst:73 msgid "" ":func:`os.pidfd_open` added that allows process management without races and " "signals." @@ -108,22 +89,22 @@ msgstr "" "Se agregó :func:`os.pidfd_open` que permite la gestión de procesos sin razas " "ni señales." -#: ../Doc/whatsnew/3.9.rst:79 +#: ../Doc/whatsnew/3.9.rst:76 msgid "Interpreter improvements:" msgstr "Mejoras en el intérprete:" -#: ../Doc/whatsnew/3.9.rst:81 +#: ../Doc/whatsnew/3.9.rst:78 msgid "" ":pep:`573`, fast access to module state from methods of C extension types;" msgstr "" ":pep:`573`, acceso rápido al estado del módulo desde métodos de tipos de " "extensión C;" -#: ../Doc/whatsnew/3.9.rst:83 +#: ../Doc/whatsnew/3.9.rst:80 msgid ":pep:`617`, CPython now uses a new parser based on PEG;" msgstr ":pep:`617`, CPython ahora usa un nuevo analizador basado en PEG;" -#: ../Doc/whatsnew/3.9.rst:84 +#: ../Doc/whatsnew/3.9.rst:81 msgid "" "a number of Python builtins (range, tuple, set, frozenset, list, dict) are " "now sped up using :pep:`590` vectorcall;" @@ -131,11 +112,11 @@ msgstr "" "varias incorporaciones de Python (rango, tupla, conjunto, conjunto " "frozenset, lista, dict) ahora se aceleran usando :pep:`590` vectorcall;" -#: ../Doc/whatsnew/3.9.rst:86 +#: ../Doc/whatsnew/3.9.rst:83 msgid "garbage collection does not block on resurrected objects;" msgstr "la recolección de basura no bloquea los objetos resucitados;" -#: ../Doc/whatsnew/3.9.rst:87 +#: ../Doc/whatsnew/3.9.rst:84 msgid "" "a number of Python modules (:mod:`_abc`, :mod:`audioop`, :mod:`_bz2`, :mod:" "`_codecs`, :mod:`_contextvars`, :mod:`_crypt`, :mod:`_functools`, :mod:" @@ -149,7 +130,7 @@ msgstr "" "`time`, :mod:`_weakref`) ahora utilizan la inicialización multifase según lo " "definido por PEP 489;" -#: ../Doc/whatsnew/3.9.rst:92 +#: ../Doc/whatsnew/3.9.rst:89 msgid "" "a number of standard library modules (:mod:`audioop`, :mod:`ast`, :mod:" "`grp`, :mod:`_hashlib`, :mod:`pwd`, :mod:`_posixsubprocess`, :mod:`random`, :" @@ -161,11 +142,11 @@ msgstr "" "mod:`select`, :mod:`struct`, :mod:`termios`, :mod:`zlib`) ahora utilizan la " "ABI estable definida por PEP 384." -#: ../Doc/whatsnew/3.9.rst:97 +#: ../Doc/whatsnew/3.9.rst:94 msgid "New library modules:" msgstr "Nuevos módulos de biblioteca:" -#: ../Doc/whatsnew/3.9.rst:99 +#: ../Doc/whatsnew/3.9.rst:96 msgid "" ":pep:`615`, the IANA Time Zone Database is now present in the standard " "library in the :mod:`zoneinfo` module;" @@ -173,7 +154,7 @@ msgstr "" ":pep:`615`, la base de datos de zona horaria de IANA ahora está presente en " "la biblioteca estándar en el módulo :mod:`zoneinfo`;" -#: ../Doc/whatsnew/3.9.rst:101 +#: ../Doc/whatsnew/3.9.rst:98 msgid "" "an implementation of a topological sort of a graph is now provided in the " "new :mod:`graphlib` module." @@ -181,19 +162,19 @@ msgstr "" "ahora se proporciona una implementación de una especie de gráfico topológico " "en el nuevo módulo :mod:`graphlib`." -#: ../Doc/whatsnew/3.9.rst:104 +#: ../Doc/whatsnew/3.9.rst:101 msgid "Release process changes:" msgstr "Cambios en el proceso de lanzamiento:" -#: ../Doc/whatsnew/3.9.rst:106 +#: ../Doc/whatsnew/3.9.rst:103 msgid ":pep:`602`, CPython adopts an annual release cycle." msgstr ":pep:`602`, CPython adopta un ciclo de lanzamiento anual." -#: ../Doc/whatsnew/3.9.rst:110 +#: ../Doc/whatsnew/3.9.rst:107 msgid "You should check for DeprecationWarning in your code" msgstr "Debe verificar DeprecationWarning en su código" -#: ../Doc/whatsnew/3.9.rst:112 +#: ../Doc/whatsnew/3.9.rst:109 msgid "" "When Python 2.7 was still supported, a lot of functionality in Python 3 was " "kept for backward compatibility with Python 2.7. With the end of Python 2 " @@ -212,7 +193,7 @@ msgstr "" "``collections.abc.Mapping`` emite un :exc:`DeprecationWarning` desde Python " "3.3, lanzado en 2012." -#: ../Doc/whatsnew/3.9.rst:120 +#: ../Doc/whatsnew/3.9.rst:117 msgid "" "Test your application with the :option:`-W` ``default`` command-line option " "to see :exc:`DeprecationWarning` and :exc:`PendingDeprecationWarning`, or " @@ -226,7 +207,7 @@ msgstr "" "tratarlos como errores. :ref:`Warnings Filter ` se puede " "utilizar para ignorar las advertencias del código de terceros." -#: ../Doc/whatsnew/3.9.rst:125 +#: ../Doc/whatsnew/3.9.rst:122 msgid "" "Python 3.9 is the last version providing those Python 2 backward " "compatibility layers, to give more time to Python projects maintainers to " @@ -237,7 +218,7 @@ msgstr "" "de proyectos de Python para organizar la eliminación del soporte de Python 2 " "y agregar soporte para Python 3.9." -#: ../Doc/whatsnew/3.9.rst:129 +#: ../Doc/whatsnew/3.9.rst:126 msgid "" "Aliases to :ref:`Abstract Base Classes ` " "in the :mod:`collections` module, like ``collections.Mapping`` alias to :" @@ -250,7 +231,7 @@ msgstr "" "versión por compatibilidad con versiones anteriores. Se eliminarán de Python " "3.10." -#: ../Doc/whatsnew/3.9.rst:134 +#: ../Doc/whatsnew/3.9.rst:131 msgid "" "More generally, try to run your tests in the :ref:`Python Development Mode " "` which helps to prepare your code to make it compatible with the " @@ -260,7 +241,7 @@ msgstr "" "Development Mode `, lo que ayuda a preparar su código para que sea " "compatible con la próxima versión de Python." -#: ../Doc/whatsnew/3.9.rst:138 +#: ../Doc/whatsnew/3.9.rst:135 msgid "" "Note: a number of pre-existing deprecations were removed in this version of " "Python as well. Consult the :ref:`removed-in-python-39` section." @@ -268,15 +249,15 @@ msgstr "" "Nota: también se eliminaron varias obsoletas en esta versión de Python. " "Consulte la sección :ref:`removed-in-python-39`." -#: ../Doc/whatsnew/3.9.rst:143 ../Doc/whatsnew/3.9.rst:1276 +#: ../Doc/whatsnew/3.9.rst:140 ../Doc/whatsnew/3.9.rst:1273 msgid "New Features" msgstr "Nuevas características" -#: ../Doc/whatsnew/3.9.rst:146 +#: ../Doc/whatsnew/3.9.rst:143 msgid "Dictionary Merge & Update Operators" msgstr "Operadores de combinación y actualización de diccionarios" -#: ../Doc/whatsnew/3.9.rst:148 +#: ../Doc/whatsnew/3.9.rst:145 msgid "" "Merge (``|``) and update (``|=``) operators have been added to the built-in :" "class:`dict` class. Those complement the existing ``dict.update`` and " @@ -286,11 +267,11 @@ msgstr "" "la clase :class:`dict` incorporada. Estos complementan los métodos ``dict." "update`` y ``{**d1, **d2}`` existentes para fusionar diccionarios." -#: ../Doc/whatsnew/3.9.rst:152 ../Doc/whatsnew/3.9.rst:285 +#: ../Doc/whatsnew/3.9.rst:149 ../Doc/whatsnew/3.9.rst:282 msgid "Example::" msgstr "Ejemplo::" -#: ../Doc/whatsnew/3.9.rst:161 +#: ../Doc/whatsnew/3.9.rst:158 msgid "" "See :pep:`584` for a full description. (Contributed by Brandt Bucher in :" "issue:`36144`.)" @@ -298,11 +279,11 @@ msgstr "" "Consulte :pep:`584` para obtener una descripción completa. (Contribuido por " "Brandt Bucher en :issue:`36144`.)" -#: ../Doc/whatsnew/3.9.rst:165 +#: ../Doc/whatsnew/3.9.rst:162 msgid "New String Methods to Remove Prefixes and Suffixes" msgstr "Nuevos métodos de cadena para eliminar prefijos y sufijos" -#: ../Doc/whatsnew/3.9.rst:167 +#: ../Doc/whatsnew/3.9.rst:164 msgid "" ":meth:`str.removeprefix(prefix)` and :meth:`str." "removesuffix(suffix)` have been added to easily remove an " @@ -318,11 +299,11 @@ msgstr "" "UserString``. Consulte :pep:`616` para obtener una descripción completa. " "(Contribuido por Dennis Sweeney en :issue:`39939`.)" -#: ../Doc/whatsnew/3.9.rst:175 +#: ../Doc/whatsnew/3.9.rst:172 msgid "Type Hinting Generics in Standard Collections" msgstr "Tipos genéricos de sugerencia en colecciones estándar" -#: ../Doc/whatsnew/3.9.rst:177 +#: ../Doc/whatsnew/3.9.rst:174 msgid "" "In type annotations you can now use built-in collection types such as " "``list`` and ``dict`` as generic types instead of importing the " @@ -336,11 +317,11 @@ msgstr "" "``typing``. Algunos otros tipos de la biblioteca estándar ahora también son " "genéricos, por ejemplo, ``queue.Queue``." -#: ../Doc/whatsnew/3.9.rst:183 ../Doc/whatsnew/3.9.rst:1164 +#: ../Doc/whatsnew/3.9.rst:180 ../Doc/whatsnew/3.9.rst:1161 msgid "Example:" msgstr "Ejemplo:" -#: ../Doc/whatsnew/3.9.rst:191 +#: ../Doc/whatsnew/3.9.rst:188 msgid "" "See :pep:`585` for more details. (Contributed by Guido van Rossum, Ethan " "Smith, and Batuhan Taşkaya in :issue:`39481`.)" @@ -348,11 +329,11 @@ msgstr "" "Consulte :pep:`585` para obtener más detalles. (Contribuido por Guido van " "Rossum, Ethan Smith y Batuhan Taşkaya en :issue:`39481`.)" -#: ../Doc/whatsnew/3.9.rst:195 +#: ../Doc/whatsnew/3.9.rst:192 msgid "New Parser" msgstr "Nuevo analizador" -#: ../Doc/whatsnew/3.9.rst:197 +#: ../Doc/whatsnew/3.9.rst:194 msgid "" "Python 3.9 uses a new parser, based on `PEG `_ instead of `LL(1) ` and in :ref:`debug build " "`, the *encoding* and *errors* arguments are now checked for " @@ -445,7 +426,7 @@ msgstr "" "las operaciones de codificación y decodificación de cadenas. Ejemplos: :func:" "`open`, :meth:`str.encode` y :meth:`bytes.decode`." -#: ../Doc/whatsnew/3.9.rst:239 +#: ../Doc/whatsnew/3.9.rst:236 msgid "" "By default, for best performance, the *errors* argument is only checked at " "the first encoding/decoding error and the *encoding* argument is sometimes " @@ -456,7 +437,7 @@ msgstr "" "*encoding* a veces se ignora para cadenas vacías. (Contribuido por Victor " "Stinner en :issue:`37388`.)" -#: ../Doc/whatsnew/3.9.rst:244 +#: ../Doc/whatsnew/3.9.rst:241 msgid "" "``\"\".replace(\"\", s, n)`` now returns ``s`` instead of an empty string " "for all non-zero ``n``. It is now consistent with ``\"\".replace(\"\", " @@ -468,7 +449,7 @@ msgstr "" "replace(\"\", s)``. Hay cambios similares para los objetos :class:`bytes` y :" "class:`bytearray`. (Contribuido por Serhiy Storchaka en :issue:`28029`.)" -#: ../Doc/whatsnew/3.9.rst:249 +#: ../Doc/whatsnew/3.9.rst:246 msgid "" "Any valid expression can now be used as a :term:`decorator`. Previously, " "the grammar was much more restrictive. See :pep:`614` for details. " @@ -478,7 +459,7 @@ msgstr "" "Anteriormente, la gramática era mucho más restrictiva. Consulte :pep:`614` " "para obtener más detalles. (Contribuido por Brandt Bucher en :issue:`39702`.)" -#: ../Doc/whatsnew/3.9.rst:253 +#: ../Doc/whatsnew/3.9.rst:250 msgid "" "Improved help for the :mod:`typing` module. Docstrings are now shown for all " "special forms and special generic aliases (like ``Union`` and ``List``). " @@ -493,7 +474,7 @@ msgstr "" "(``list`` en este caso). (Contribuido por Serhiy Storchaka en :issue:" "`40257`.)" -#: ../Doc/whatsnew/3.9.rst:259 +#: ../Doc/whatsnew/3.9.rst:256 msgid "" "Parallel running of :meth:`~agen.aclose` / :meth:`~agen.asend` / :meth:" "`~agen.athrow` is now prohibited, and ``ag_running`` now reflects the actual " @@ -505,7 +486,7 @@ msgstr "" "estado de ejecución real del generador asíncrono. (Contribuido por Yury " "Selivanov en :issue:`30773`.)" -#: ../Doc/whatsnew/3.9.rst:264 +#: ../Doc/whatsnew/3.9.rst:261 msgid "" "Unexpected errors in calling the ``__iter__`` method are no longer masked by " "``TypeError`` in the :keyword:`in` operator and functions :func:`~operator." @@ -518,7 +499,7 @@ msgstr "" "countOf` del módulo :mod:`operator`. (Contribuido por Serhiy Storchaka en :" "issue:`40824`.)" -#: ../Doc/whatsnew/3.9.rst:270 +#: ../Doc/whatsnew/3.9.rst:267 msgid "" "Unparenthesized lambda expressions can no longer be the expression part in " "an ``if`` clause in comprehensions and generator expressions. See :issue:" @@ -528,15 +509,15 @@ msgstr "" "en una cláusula ``if`` en comprensiones y expresiones generadoras. Consulte :" "issue:`41848` y :issue:`43755` para obtener más detalles." -#: ../Doc/whatsnew/3.9.rst:276 +#: ../Doc/whatsnew/3.9.rst:273 msgid "New Modules" msgstr "Nuevos módulos" -#: ../Doc/whatsnew/3.9.rst:279 +#: ../Doc/whatsnew/3.9.rst:276 msgid "zoneinfo" msgstr "zoneinfo" -#: ../Doc/whatsnew/3.9.rst:281 +#: ../Doc/whatsnew/3.9.rst:278 msgid "" "The :mod:`zoneinfo` module brings support for the IANA time zone database to " "the standard library. It adds :class:`zoneinfo.ZoneInfo`, a concrete :class:" @@ -547,7 +528,7 @@ msgstr "" "una implementación de :class:`datetime.tzinfo` concreta respaldada por los " "datos de la zona horaria del sistema." -#: ../Doc/whatsnew/3.9.rst:305 +#: ../Doc/whatsnew/3.9.rst:302 msgid "" "As a fall-back source of data for platforms that don't ship the IANA " "database, the |tzdata|_ module was released as a first-party package -- " @@ -557,22 +538,22 @@ msgstr "" "de datos de la IANA, el módulo |tzdata|_ se lanzó como un paquete propio, " "distribuido a través de PyPI y mantenido por el equipo central de CPython." -#: ../Doc/whatsnew/3.9.rst:314 +#: ../Doc/whatsnew/3.9.rst:311 msgid "" ":pep:`615` -- Support for the IANA Time Zone Database in the Standard Library" msgstr "" ":pep:`615`: compatibilidad con la base de datos de zona horaria de IANA en " "la biblioteca estándar" -#: ../Doc/whatsnew/3.9.rst:315 +#: ../Doc/whatsnew/3.9.rst:312 msgid "PEP written and implemented by Paul Ganssle" msgstr "PEP escrito e implementado por Paul Ganssle" -#: ../Doc/whatsnew/3.9.rst:319 +#: ../Doc/whatsnew/3.9.rst:316 msgid "graphlib" msgstr "Graphlib" -#: ../Doc/whatsnew/3.9.rst:321 +#: ../Doc/whatsnew/3.9.rst:318 msgid "" "A new module, :mod:`graphlib`, was added that contains the :class:`graphlib." "TopologicalSorter` class to offer functionality to perform topological " @@ -584,15 +565,15 @@ msgstr "" "clasificación topológica de gráficos. (Contribuido por Pablo Galindo, Tim " "Peters y Larry Hastings en :issue:`17005`.)" -#: ../Doc/whatsnew/3.9.rst:328 +#: ../Doc/whatsnew/3.9.rst:325 msgid "Improved Modules" msgstr "Módulos mejorados" -#: ../Doc/whatsnew/3.9.rst:331 +#: ../Doc/whatsnew/3.9.rst:328 msgid "ast" msgstr "ast" -#: ../Doc/whatsnew/3.9.rst:333 +#: ../Doc/whatsnew/3.9.rst:330 msgid "" "Added the *indent* option to :func:`~ast.dump` which allows it to produce a " "multiline indented output. (Contributed by Serhiy Storchaka in :issue:" @@ -602,7 +583,7 @@ msgstr "" "salida con sangría de varias líneas. (Contribuido por Serhiy Storchaka en :" "issue:`37995`.)" -#: ../Doc/whatsnew/3.9.rst:337 +#: ../Doc/whatsnew/3.9.rst:334 msgid "" "Added :func:`ast.unparse` as a function in the :mod:`ast` module that can be " "used to unparse an :class:`ast.AST` object and produce a string with code " @@ -615,7 +596,7 @@ msgstr "" "cuando se analiza. (Contribuido por Pablo Galindo y Batuhan Taskaya en :" "issue:`38870`.)" -#: ../Doc/whatsnew/3.9.rst:342 +#: ../Doc/whatsnew/3.9.rst:339 msgid "" "Added docstrings to AST nodes that contains the ASDL signature used to " "construct that node. (Contributed by Batuhan Taskaya in :issue:`39638`.)" @@ -624,11 +605,11 @@ msgstr "" "ASDL utilizada para construir ese nodo. (Contribuido por Batuhan Taskaya en :" "issue:`39638`.)" -#: ../Doc/whatsnew/3.9.rst:346 +#: ../Doc/whatsnew/3.9.rst:343 msgid "asyncio" msgstr "asyncio" -#: ../Doc/whatsnew/3.9.rst:348 +#: ../Doc/whatsnew/3.9.rst:345 msgid "" "Due to significant security concerns, the *reuse_address* parameter of :meth:" "`asyncio.loop.create_datagram_endpoint` is no longer supported. This is " @@ -644,7 +625,7 @@ msgstr "" "create_datagram_endpoint()``. (Contribuido por Kyle Stanley, Antoine Pitrou " "y Yury Selivanov en :issue:`37228`.)" -#: ../Doc/whatsnew/3.9.rst:355 +#: ../Doc/whatsnew/3.9.rst:352 msgid "" "Added a new :term:`coroutine` :meth:`~asyncio.loop." "shutdown_default_executor` that schedules a shutdown for the default " @@ -659,7 +640,7 @@ msgstr "" "ha actualizado para utilizar el nuevo :term:`coroutine`. (Contribuido por " "Kyle Stanley en :issue:`34037`.)" -#: ../Doc/whatsnew/3.9.rst:361 +#: ../Doc/whatsnew/3.9.rst:358 msgid "" "Added :class:`asyncio.PidfdChildWatcher`, a Linux-specific child watcher " "implementation that polls process file descriptors. (:issue:`38692`)" @@ -668,7 +649,7 @@ msgstr "" "observador de niños específica de Linux que sondea los descriptores de " "archivos de proceso. (:issue:`38692`)" -#: ../Doc/whatsnew/3.9.rst:364 +#: ../Doc/whatsnew/3.9.rst:361 msgid "" "Added a new :term:`coroutine` :func:`asyncio.to_thread`. It is mainly used " "for running IO-bound functions in a separate thread to avoid blocking the " @@ -683,7 +664,7 @@ msgstr "" "tomar directamente argumentos de palabras clave. (Contribuido por Kyle " "Stanley y Yury Selivanov en :issue:`32309`.)" -#: ../Doc/whatsnew/3.9.rst:370 +#: ../Doc/whatsnew/3.9.rst:367 msgid "" "When cancelling the task due to a timeout, :meth:`asyncio.wait_for` will now " "wait until the cancellation is complete also in the case when *timeout* is " @@ -695,7 +676,7 @@ msgstr "" "que *timeout* sea <= 0, como ocurre con los tiempos de espera positivos. " "(Contribuido por Elvis Pranskevichus en :issue:`32751`.)" -#: ../Doc/whatsnew/3.9.rst:375 +#: ../Doc/whatsnew/3.9.rst:372 msgid "" ":mod:`asyncio` now raises :exc:`TyperError` when calling incompatible " "methods with an :class:`ssl.SSLSocket` socket. (Contributed by Ido Michael " @@ -705,11 +686,11 @@ msgstr "" "incompatibles con un socket :class:`ssl.SSLSocket`. (Contribuido por Ido " "Michael en :issue:`37404`.)" -#: ../Doc/whatsnew/3.9.rst:380 +#: ../Doc/whatsnew/3.9.rst:377 msgid "compileall" msgstr "compilar todo" -#: ../Doc/whatsnew/3.9.rst:382 +#: ../Doc/whatsnew/3.9.rst:379 msgid "" "Added new possibility to use hardlinks for duplicated ``.pyc`` files: " "*hardlink_dupes* parameter and --hardlink-dupes command line option. " @@ -719,7 +700,7 @@ msgstr "" "duplicados: parámetro *hardlink_dupes* y opción de línea de comando --" "hardlink-dupes. (Contribuido por Lumír 'Frenzy' Balhar en :issue:`40495`.)" -#: ../Doc/whatsnew/3.9.rst:385 +#: ../Doc/whatsnew/3.9.rst:382 msgid "" "Added new options for path manipulation in resulting ``.pyc`` files: " "*stripdir*, *prependdir*, *limit_sl_dest* parameters and -s, -p, -e command " @@ -733,11 +714,11 @@ msgstr "" "especificar la opción para un nivel de optimización varias veces. " "(Contribuido por Lumír 'Frenzy' Balhar en :issue:`38112`.)" -#: ../Doc/whatsnew/3.9.rst:390 +#: ../Doc/whatsnew/3.9.rst:387 msgid "concurrent.futures" msgstr "Futuros concurrentes" -#: ../Doc/whatsnew/3.9.rst:392 +#: ../Doc/whatsnew/3.9.rst:389 msgid "" "Added a new *cancel_futures* parameter to :meth:`concurrent.futures.Executor." "shutdown` that cancels all pending futures which have not started running, " @@ -749,7 +730,7 @@ msgstr "" "comenzado a ejecutarse, en lugar de esperar a que se completen antes de " "apagar el ejecutor. (Contribuido por Kyle Stanley en :issue:`39349`.)" -#: ../Doc/whatsnew/3.9.rst:398 +#: ../Doc/whatsnew/3.9.rst:395 msgid "" "Removed daemon threads from :class:`~concurrent.futures.ThreadPoolExecutor` " "and :class:`~concurrent.futures.ProcessPoolExecutor`. This improves " @@ -761,7 +742,7 @@ msgstr "" "mejora la compatibilidad con los subinterpretadores y la previsibilidad en " "sus procesos de cierre. (Contribuido por Kyle Stanley en :issue:`39812`.)" -#: ../Doc/whatsnew/3.9.rst:403 +#: ../Doc/whatsnew/3.9.rst:400 msgid "" "Workers in :class:`~concurrent.futures.ProcessPoolExecutor` are now spawned " "on demand, only when there are no available idle workers to reuse. This " @@ -774,11 +755,11 @@ msgstr "" "de tiempo de CPU perdido para los trabajadores inactivos. (Contribuido por " "Kyle Stanley en :issue:`39207`.)" -#: ../Doc/whatsnew/3.9.rst:409 +#: ../Doc/whatsnew/3.9.rst:406 msgid "curses" msgstr "maldiciones" -#: ../Doc/whatsnew/3.9.rst:411 +#: ../Doc/whatsnew/3.9.rst:408 msgid "" "Added :func:`curses.get_escdelay`, :func:`curses.set_escdelay`, :func:" "`curses.get_tabsize`, and :func:`curses.set_tabsize` functions. (Contributed " @@ -788,27 +769,28 @@ msgstr "" "set_escdelay`, :func:`curses.get_tabsize` y :func:`curses.set_tabsize`. " "(Contribuido por Anthony Sottile en :issue:`38312`.)" -#: ../Doc/whatsnew/3.9.rst:416 +#: ../Doc/whatsnew/3.9.rst:413 msgid "datetime" msgstr "fecha y hora" -#: ../Doc/whatsnew/3.9.rst:417 +#: ../Doc/whatsnew/3.9.rst:414 +#, fuzzy msgid "" "The :meth:`~datetime.date.isocalendar()` of :class:`datetime.date` and :meth:" "`~datetime.datetime.isocalendar()` of :class:`datetime.datetime` methods now " "returns a :func:`~collections.namedtuple` instead of a :class:`tuple`. " -"(Contributed by Dong-hee Na in :issue:`24416`.)" +"(Contributed by Donghee Na in :issue:`24416`.)" msgstr "" "Los métodos :meth:`~datetime.date.isocalendar()` de :class:`datetime.date` " "y :meth:`~datetime.datetime.isocalendar()` de :class:`datetime.datetime` " "ahora devuelven un :func:`~collections.namedtuple` en lugar de un :class:" "`tuple`. (Contribuido por Dong-hee Na en :issue:`24416`.)" -#: ../Doc/whatsnew/3.9.rst:423 +#: ../Doc/whatsnew/3.9.rst:420 msgid "distutils" msgstr "distutils" -#: ../Doc/whatsnew/3.9.rst:425 +#: ../Doc/whatsnew/3.9.rst:422 msgid "" "The :command:`upload` command now creates SHA2-256 and Blake2b-256 hash " "digests. It skips MD5 on platforms that block MD5 digest. (Contributed by " @@ -818,28 +800,31 @@ msgstr "" "Blake2b-256. Omite MD5 en plataformas que bloquean el resumen de MD5. " "(Contribuido por Christian Heimes en :issue:`40698`.)" -#: ../Doc/whatsnew/3.9.rst:430 +#: ../Doc/whatsnew/3.9.rst:427 msgid "fcntl" msgstr "fcntl" -#: ../Doc/whatsnew/3.9.rst:432 +#: ../Doc/whatsnew/3.9.rst:429 +#, fuzzy msgid "" -"Added constants :data:`~fcntl.F_OFD_GETLK`, :data:`~fcntl.F_OFD_SETLK` and :" -"data:`~fcntl.F_OFD_SETLKW`. (Contributed by Dong-hee Na in :issue:`38602`.)" +"Added constants :const:`~fcntl.F_OFD_GETLK`, :const:`~fcntl.F_OFD_SETLK` " +"and :const:`~fcntl.F_OFD_SETLKW`. (Contributed by Donghee Na in :issue:" +"`38602`.)" msgstr "" "Se agregaron las constantes :data:`~fcntl.F_OFD_GETLK`, :data:`~fcntl." "F_OFD_SETLK` y :data:`~fcntl.F_OFD_SETLKW`. (Contribuido por Dong-hee Na en :" "issue:`38602`.)" -#: ../Doc/whatsnew/3.9.rst:437 +#: ../Doc/whatsnew/3.9.rst:434 msgid "ftplib" msgstr "ftplib" -#: ../Doc/whatsnew/3.9.rst:439 +#: ../Doc/whatsnew/3.9.rst:436 +#, fuzzy msgid "" ":class:`~ftplib.FTP` and :class:`~ftplib.FTP_TLS` now raise a :class:" "`ValueError` if the given timeout for their constructor is zero to prevent " -"the creation of a non-blocking socket. (Contributed by Dong-hee Na in :issue:" +"the creation of a non-blocking socket. (Contributed by Donghee Na in :issue:" "`39259`.)" msgstr "" ":class:`~ftplib.FTP` y :class:`~ftplib.FTP_TLS` ahora lanzan un :class:" @@ -847,11 +832,11 @@ msgstr "" "evitar la creación de un socket sin bloqueo. (Contribuido por Dong-hee Na " "en :issue:`39259`.)" -#: ../Doc/whatsnew/3.9.rst:444 +#: ../Doc/whatsnew/3.9.rst:441 msgid "gc" msgstr "GC" -#: ../Doc/whatsnew/3.9.rst:446 +#: ../Doc/whatsnew/3.9.rst:443 msgid "" "When the garbage collector makes a collection in which some objects " "resurrect (they are reachable from outside the isolated cycles after the " @@ -865,7 +850,7 @@ msgstr "" "recolección de todos los objetos que aún no se pueden alcanzar. (Contribuido " "por Pablo Galindo y Tim Peters en :issue:`38379`.)" -#: ../Doc/whatsnew/3.9.rst:451 +#: ../Doc/whatsnew/3.9.rst:448 msgid "" "Added a new function :func:`gc.is_finalized` to check if an object has been " "finalized by the garbage collector. (Contributed by Pablo Galindo in :issue:" @@ -875,11 +860,11 @@ msgstr "" "recolector de basura ha finalizado un objeto. (Contribuido por Pablo Galindo " "en :issue:`39322`.)" -#: ../Doc/whatsnew/3.9.rst:456 +#: ../Doc/whatsnew/3.9.rst:453 msgid "hashlib" msgstr "hashlib" -#: ../Doc/whatsnew/3.9.rst:458 +#: ../Doc/whatsnew/3.9.rst:455 msgid "" "The :mod:`hashlib` module can now use SHA3 hashes and SHAKE XOF from OpenSSL " "when available. (Contributed by Christian Heimes in :issue:`37630`.)" @@ -887,7 +872,7 @@ msgstr "" "El módulo :mod:`hashlib` ahora puede usar hashes SHA3 y SHAKE XOF de OpenSSL " "cuando esté disponible. (Contribuido por Christian Heimes en :issue:`37630`.)" -#: ../Doc/whatsnew/3.9.rst:462 +#: ../Doc/whatsnew/3.9.rst:459 msgid "" "Builtin hash modules can now be disabled with ``./configure --without-" "builtin-hashlib-hashes`` or selectively enabled with e.g. ``./configure --" @@ -900,25 +885,26 @@ msgstr "" "la implementación basada en OpenSSL. (Contribuido por Christian Heimes en :" "issue:`40479`)" -#: ../Doc/whatsnew/3.9.rst:470 +#: ../Doc/whatsnew/3.9.rst:467 msgid "http" msgstr "http" -#: ../Doc/whatsnew/3.9.rst:472 +#: ../Doc/whatsnew/3.9.rst:469 +#, fuzzy msgid "" "HTTP status codes ``103 EARLY_HINTS``, ``418 IM_A_TEAPOT`` and ``425 " -"TOO_EARLY`` are added to :class:`http.HTTPStatus`. (Contributed by Dong-hee " +"TOO_EARLY`` are added to :class:`http.HTTPStatus`. (Contributed by Donghee " "Na in :issue:`39509` and Ross Rhodes in :issue:`39507`.)" msgstr "" "Los códigos de estado HTTP ``103 EARLY_HINTS``, ``418 IM_A_TEAPOT`` y ``425 " "TOO_EARLY`` se agregan a :class:`http.HTTPStatus`. (Contribuido por Dong-hee " "Na en :issue:`39509` y Ross Rhodes en :issue:`39507`.)" -#: ../Doc/whatsnew/3.9.rst:476 +#: ../Doc/whatsnew/3.9.rst:473 msgid "IDLE and idlelib" msgstr "IDLE e idlelib" -#: ../Doc/whatsnew/3.9.rst:478 +#: ../Doc/whatsnew/3.9.rst:475 msgid "" "Added option to toggle cursor blink off. (Contributed by Zackery Spytz in :" "issue:`4603`.)" @@ -926,7 +912,7 @@ msgstr "" "Opción agregada para apagar el cursor parpadeando. (Contribuido por Zackery " "Spytz en :issue:`4603`.)" -#: ../Doc/whatsnew/3.9.rst:481 +#: ../Doc/whatsnew/3.9.rst:478 msgid "" "Escape key now closes IDLE completion windows. (Contributed by Johnny " "Najera in :issue:`38944`.)" @@ -934,7 +920,7 @@ msgstr "" "La tecla Escape ahora cierra las ventanas de finalización IDLE. (Contribuido " "por Johnny Najera en :issue:`38944`.)" -#: ../Doc/whatsnew/3.9.rst:484 +#: ../Doc/whatsnew/3.9.rst:481 msgid "" "Added keywords to module name completion list. (Contributed by Terry J. " "Reedy in :issue:`37765`.)" @@ -942,11 +928,11 @@ msgstr "" "Se agregaron palabras clave a la lista de finalización del nombre del " "módulo. (Contribuido por Terry J. Reedy en :issue:`37765`.)" -#: ../Doc/whatsnew/3.9.rst:487 +#: ../Doc/whatsnew/3.9.rst:484 msgid "New in 3.9 maintenance releases" msgstr "Novedades de la versión de mantenimiento 3.9" -#: ../Doc/whatsnew/3.9.rst:489 +#: ../Doc/whatsnew/3.9.rst:486 msgid "" "Make IDLE invoke :func:`sys.excepthook` (when started without '-n'). User " "hooks were previously ignored. (Contributed by Ken Hilton in :issue:" @@ -956,13 +942,13 @@ msgstr "" "Anteriormente se ignoraban los hooks de usuario. (Contribuido por Ken " "Hilton en :issue:`43008`.)" -#: ../Doc/whatsnew/3.9.rst:493 +#: ../Doc/whatsnew/3.9.rst:490 msgid "The changes above have been backported to 3.8 maintenance releases." msgstr "" "Los cambios anteriores se han actualizado a las versiones de mantenimiento " "3.8." -#: ../Doc/whatsnew/3.9.rst:495 +#: ../Doc/whatsnew/3.9.rst:492 msgid "" "Rearrange the settings dialog. Split the General tab into Windows and Shell/" "Ed tabs. Move help sources, which extend the Help menu, to the Extensions " @@ -980,7 +966,7 @@ msgstr "" "configuración del espacio de sangría de la pestaña Fuente a la nueva pestaña " "Windows. (Contribuido por Mark Roseman y Terry Jan Reedy en :issue:`33962`.)" -#: ../Doc/whatsnew/3.9.rst:503 +#: ../Doc/whatsnew/3.9.rst:500 msgid "" "Apply syntax highlighting to ``.pyi`` files. (Contributed by Alex Waygood " "and Terry Jan Reedy in :issue:`45447`.)" @@ -988,17 +974,18 @@ msgstr "" "Aplicar el resaltado de sintaxis a los archivos ``.pyi``. (Contribución de " "Alex Waygood y Terry Jan Reedy en :issue:`45447`)" -#: ../Doc/whatsnew/3.9.rst:507 +#: ../Doc/whatsnew/3.9.rst:504 msgid "imaplib" msgstr "imaplib" -#: ../Doc/whatsnew/3.9.rst:509 +#: ../Doc/whatsnew/3.9.rst:506 +#, fuzzy msgid "" ":class:`~imaplib.IMAP4` and :class:`~imaplib.IMAP4_SSL` now have an optional " "*timeout* parameter for their constructors. Also, the :meth:`~imaplib.IMAP4." "open` method now has an optional *timeout* parameter with this change. The " "overridden methods of :class:`~imaplib.IMAP4_SSL` and :class:`~imaplib." -"IMAP4_stream` were applied to this change. (Contributed by Dong-hee Na in :" +"IMAP4_stream` were applied to this change. (Contributed by Donghee Na in :" "issue:`38615`.)" msgstr "" ":class:`~imaplib.IMAP4` y :class:`~imaplib.IMAP4_SSL` ahora tienen un " @@ -1008,14 +995,15 @@ msgstr "" "`~imaplib.IMAP4_stream` se aplicaron a este cambio. (Contribuido por Dong-" "hee Na en :issue:`38615`.)" -#: ../Doc/whatsnew/3.9.rst:516 +#: ../Doc/whatsnew/3.9.rst:513 +#, fuzzy msgid "" ":meth:`imaplib.IMAP4.unselect` is added. :meth:`imaplib.IMAP4.unselect` " "frees server's resources associated with the selected mailbox and returns " "the server to the authenticated state. This command performs the same " "actions as :meth:`imaplib.IMAP4.close`, except that no messages are " "permanently removed from the currently selected mailbox. (Contributed by " -"Dong-hee Na in :issue:`40375`.)" +"Donghee Na in :issue:`40375`.)" msgstr "" "Se agrega :meth:`imaplib.IMAP4.unselect`. :meth:`imaplib.IMAP4.unselect` " "libera los recursos del servidor asociados con el buzón de correo " @@ -1024,11 +1012,11 @@ msgstr "" "ningún mensaje se elimina permanentemente del buzón de correo seleccionado " "actualmente. (Contribuido por Dong-hee Na en :issue:`40375`.)" -#: ../Doc/whatsnew/3.9.rst:524 +#: ../Doc/whatsnew/3.9.rst:521 msgid "importlib" msgstr "importlib" -#: ../Doc/whatsnew/3.9.rst:526 +#: ../Doc/whatsnew/3.9.rst:523 msgid "" "To improve consistency with import statements, :func:`importlib.util." "resolve_name` now raises :exc:`ImportError` instead of :exc:`ValueError` for " @@ -1040,7 +1028,7 @@ msgstr "" "exc:`ValueError` para intentos de importación relativa no válidos. " "(Contribuido por Ngalim Siregar en :issue:`37444`.)" -#: ../Doc/whatsnew/3.9.rst:531 +#: ../Doc/whatsnew/3.9.rst:528 msgid "" "Import loaders which publish immutable module objects can now publish " "immutable packages in addition to individual modules. (Contributed by Dino " @@ -1050,7 +1038,7 @@ msgstr "" "ahora pueden publicar paquetes inmutables además de módulos individuales. " "(Contribuido por Dino Viehland en :issue:`39336`.)" -#: ../Doc/whatsnew/3.9.rst:535 +#: ../Doc/whatsnew/3.9.rst:532 msgid "" "Added :func:`importlib.resources.files` function with support for " "subdirectories in package data, matching backport in ``importlib_resources`` " @@ -1061,17 +1049,17 @@ msgstr "" "``importlib_resources`` versión 1.5. (Contribuido por Jason R. Coombs en :" "issue:`39791`.)" -#: ../Doc/whatsnew/3.9.rst:540 +#: ../Doc/whatsnew/3.9.rst:537 msgid "" "Refreshed ``importlib.metadata`` from ``importlib_metadata`` version 1.6.1." msgstr "" "``importlib.metadata`` actualizado de ``importlib_metadata`` versión 1.6.1." -#: ../Doc/whatsnew/3.9.rst:543 +#: ../Doc/whatsnew/3.9.rst:540 msgid "inspect" msgstr "inspeccionar" -#: ../Doc/whatsnew/3.9.rst:545 +#: ../Doc/whatsnew/3.9.rst:542 msgid "" ":attr:`inspect.BoundArguments.arguments` is changed from ``OrderedDict`` to " "regular dict. (Contributed by Inada Naoki in :issue:`36350` and :issue:" @@ -1081,11 +1069,11 @@ msgstr "" "dictado regular. (Contribuido por Inada Naoki en :issue:`36350` y :issue:" "`39775`.)" -#: ../Doc/whatsnew/3.9.rst:549 +#: ../Doc/whatsnew/3.9.rst:546 msgid "ipaddress" msgstr "dirección IP" -#: ../Doc/whatsnew/3.9.rst:551 +#: ../Doc/whatsnew/3.9.rst:548 msgid "" ":mod:`ipaddress` now supports IPv6 Scoped Addresses (IPv6 address with " "suffix ``%``)." @@ -1093,7 +1081,7 @@ msgstr "" ":mod:`ipaddress` ahora admite direcciones de ámbito IPv6 (dirección IPv6 con " "sufijo ``%``)." -#: ../Doc/whatsnew/3.9.rst:553 +#: ../Doc/whatsnew/3.9.rst:550 msgid "" "Scoped IPv6 addresses can be parsed using :class:`ipaddress.IPv6Address`. If " "present, scope zone ID is available through the :attr:`~ipaddress." @@ -1105,7 +1093,7 @@ msgstr "" "alcance está disponible a través del atributo :attr:`~ipaddress.IPv6Address." "scope_id`. (Contribuido por Oleksandr Pavliuk en :issue:`34788`.)" -#: ../Doc/whatsnew/3.9.rst:557 +#: ../Doc/whatsnew/3.9.rst:554 msgid "" "Starting with Python 3.9.5 the :mod:`ipaddress` module no longer accepts any " "leading zeros in IPv4 address strings. (Contributed by Christian Heimes in :" @@ -1115,11 +1103,11 @@ msgstr "" "izquierda en cadenas de direcciones IPv4. (Contribuido por Christian Heimes " "en :issue:`36384`)." -#: ../Doc/whatsnew/3.9.rst:562 +#: ../Doc/whatsnew/3.9.rst:559 msgid "math" msgstr "Matemáticas" -#: ../Doc/whatsnew/3.9.rst:564 +#: ../Doc/whatsnew/3.9.rst:561 msgid "" "Expanded the :func:`math.gcd` function to handle multiple arguments. " "Formerly, it only supported two arguments. (Contributed by Serhiy Storchaka " @@ -1129,7 +1117,7 @@ msgstr "" "Anteriormente, solo respaldaba dos argumentos. (Contribuido por Serhiy " "Storchaka en :issue:`39648`.)" -#: ../Doc/whatsnew/3.9.rst:568 +#: ../Doc/whatsnew/3.9.rst:565 msgid "" "Added :func:`math.lcm`: return the least common multiple of specified " "arguments. (Contributed by Mark Dickinson, Ananthakrishnan and Serhiy " @@ -1139,7 +1127,7 @@ msgstr "" "especificados. (Contribuido por Mark Dickinson, Ananthakrishnan y Serhiy " "Storchaka en :issue:`39479` y :issue:`39648`.)" -#: ../Doc/whatsnew/3.9.rst:572 +#: ../Doc/whatsnew/3.9.rst:569 msgid "" "Added :func:`math.nextafter`: return the next floating-point value after *x* " "towards *y*. (Contributed by Victor Stinner in :issue:`39288`.)" @@ -1148,7 +1136,7 @@ msgstr "" "flotante después de *x* towards *y*. (Contribuido por Victor Stinner en :" "issue:`39288`.)" -#: ../Doc/whatsnew/3.9.rst:576 +#: ../Doc/whatsnew/3.9.rst:573 msgid "" "Added :func:`math.ulp`: return the value of the least significant bit of a " "float. (Contributed by Victor Stinner in :issue:`39310`.)" @@ -1156,11 +1144,11 @@ msgstr "" ":func:`math.ulp` agregado: devuelve el valor del bit menos significativo de " "un flotador. (Contribuido por Victor Stinner en :issue:`39310`.)" -#: ../Doc/whatsnew/3.9.rst:581 +#: ../Doc/whatsnew/3.9.rst:578 msgid "multiprocessing" msgstr "multiprocesamiento" -#: ../Doc/whatsnew/3.9.rst:583 +#: ../Doc/whatsnew/3.9.rst:580 msgid "" "The :class:`multiprocessing.SimpleQueue` class has a new :meth:" "`~multiprocessing.SimpleQueue.close` method to explicitly close the queue. " @@ -1170,15 +1158,16 @@ msgstr "" "`~multiprocessing.SimpleQueue.close` para cerrar explícitamente la cola. " "(Contribuido por Victor Stinner en :issue:`30966`.)" -#: ../Doc/whatsnew/3.9.rst:589 +#: ../Doc/whatsnew/3.9.rst:586 msgid "nntplib" msgstr "nntplib" -#: ../Doc/whatsnew/3.9.rst:591 +#: ../Doc/whatsnew/3.9.rst:588 +#, fuzzy msgid "" ":class:`~nntplib.NNTP` and :class:`~nntplib.NNTP_SSL` now raise a :class:" "`ValueError` if the given timeout for their constructor is zero to prevent " -"the creation of a non-blocking socket. (Contributed by Dong-hee Na in :issue:" +"the creation of a non-blocking socket. (Contributed by Donghee Na in :issue:" "`39259`.)" msgstr "" ":class:`~nntplib.NNTP` y :class:`~nntplib.NNTP_SSL` ahora lanzan un :class:" @@ -1186,28 +1175,30 @@ msgstr "" "evitar la creación de un socket sin bloqueo. (Contribuido por Dong-hee Na " "en :issue:`39259`.)" -#: ../Doc/whatsnew/3.9.rst:596 +#: ../Doc/whatsnew/3.9.rst:593 msgid "os" msgstr "os" -#: ../Doc/whatsnew/3.9.rst:598 +#: ../Doc/whatsnew/3.9.rst:595 +#, fuzzy msgid "" -"Added :data:`~os.CLD_KILLED` and :data:`~os.CLD_STOPPED` for :attr:" -"`si_code`. (Contributed by Dong-hee Na in :issue:`38493`.)" +"Added :const:`~os.CLD_KILLED` and :const:`~os.CLD_STOPPED` for :attr:" +"`si_code`. (Contributed by Donghee Na in :issue:`38493`.)" msgstr "" "Se agregaron :data:`~os.CLD_KILLED` y :data:`~os.CLD_STOPPED` para :attr:" "`si_code`. (Contribuido por Dong-hee Na en :issue:`38493`.)" -#: ../Doc/whatsnew/3.9.rst:601 +#: ../Doc/whatsnew/3.9.rst:598 +#, fuzzy msgid "" -"Exposed the Linux-specific :func:`os.pidfd_open` (:issue:`38692`) and :data:" +"Exposed the Linux-specific :func:`os.pidfd_open` (:issue:`38692`) and :const:" "`os.P_PIDFD` (:issue:`38713`) for process management with file descriptors." msgstr "" "Se expusieron los :func:`os.pidfd_open` (:issue:`38692`) y :data:`os." "P_PIDFD` (:issue:`38713`) específicos de Linux para la gestión de procesos " "con descriptores de archivos." -#: ../Doc/whatsnew/3.9.rst:605 +#: ../Doc/whatsnew/3.9.rst:602 msgid "" "The :func:`os.unsetenv` function is now also available on Windows. " "(Contributed by Victor Stinner in :issue:`39413`.)" @@ -1215,7 +1206,7 @@ msgstr "" "La función :func:`os.unsetenv` ahora también está disponible en Windows. " "(Contribuido por Victor Stinner en :issue:`39413`.)" -#: ../Doc/whatsnew/3.9.rst:608 +#: ../Doc/whatsnew/3.9.rst:605 msgid "" "The :func:`os.putenv` and :func:`os.unsetenv` functions are now always " "available. (Contributed by Victor Stinner in :issue:`39395`.)" @@ -1223,7 +1214,7 @@ msgstr "" "Las funciones :func:`os.putenv` y :func:`os.unsetenv` ahora están siempre " "disponibles. (Contribuido por Victor Stinner en :issue:`39395`.)" -#: ../Doc/whatsnew/3.9.rst:612 +#: ../Doc/whatsnew/3.9.rst:609 msgid "" "Added :func:`os.waitstatus_to_exitcode` function: convert a wait status to " "an exit code. (Contributed by Victor Stinner in :issue:`40094`.)" @@ -1232,11 +1223,11 @@ msgstr "" "espera en un código de salida. (Contribuido por Victor Stinner en :issue:" "`40094`.)" -#: ../Doc/whatsnew/3.9.rst:617 +#: ../Doc/whatsnew/3.9.rst:614 msgid "pathlib" msgstr "Pathlib" -#: ../Doc/whatsnew/3.9.rst:619 +#: ../Doc/whatsnew/3.9.rst:616 msgid "" "Added :meth:`pathlib.Path.readlink()` which acts similarly to :func:`os." "readlink`. (Contributed by Girts Folkmanis in :issue:`30618`)" @@ -1244,11 +1235,11 @@ msgstr "" "Se agregó :meth:`pathlib.Path.readlink()` que actúa de manera similar a :" "func:`os.readlink`. (Contribuido por Girts Folkmanis en :issue:`30618`)" -#: ../Doc/whatsnew/3.9.rst:624 +#: ../Doc/whatsnew/3.9.rst:621 msgid "pdb" msgstr "pdb" -#: ../Doc/whatsnew/3.9.rst:626 +#: ../Doc/whatsnew/3.9.rst:623 msgid "" "On Windows now :class:`~pdb.Pdb` supports ``~/.pdbrc``. (Contributed by Tim " "Hopper and Dan Lidral-Porter in :issue:`20523`.)" @@ -1256,15 +1247,16 @@ msgstr "" "En Windows, ahora :class:`~pdb.Pdb` es compatible con ``~/.pdbrc``. " "(Contribuido por Tim Hopper y Dan Lidral-Porter en :issue:`20523`.)" -#: ../Doc/whatsnew/3.9.rst:630 +#: ../Doc/whatsnew/3.9.rst:627 msgid "poplib" msgstr "poplib" -#: ../Doc/whatsnew/3.9.rst:632 +#: ../Doc/whatsnew/3.9.rst:629 +#, fuzzy msgid "" ":class:`~poplib.POP3` and :class:`~poplib.POP3_SSL` now raise a :class:" "`ValueError` if the given timeout for their constructor is zero to prevent " -"the creation of a non-blocking socket. (Contributed by Dong-hee Na in :issue:" +"the creation of a non-blocking socket. (Contributed by Donghee Na in :issue:" "`39259`.)" msgstr "" ":class:`~poplib.POP3` y :class:`~poplib.POP3_SSL` ahora lanzan un :class:" @@ -1272,11 +1264,11 @@ msgstr "" "evitar la creación de un socket sin bloqueo. (Contribuido por Dong-hee Na " "en :issue:`39259`.)" -#: ../Doc/whatsnew/3.9.rst:637 +#: ../Doc/whatsnew/3.9.rst:634 msgid "pprint" msgstr "pprint" -#: ../Doc/whatsnew/3.9.rst:639 +#: ../Doc/whatsnew/3.9.rst:636 msgid "" ":mod:`pprint` can now pretty-print :class:`types.SimpleNamespace`. " "(Contributed by Carl Bordum Hansen in :issue:`37376`.)" @@ -1284,11 +1276,11 @@ msgstr "" ":mod:`pprint` ahora puede imprimir :class:`types.SimpleNamespace` de forma " "bonita. (Contribuido por Carl Bordum Hansen en :issue:`37376`.)" -#: ../Doc/whatsnew/3.9.rst:643 +#: ../Doc/whatsnew/3.9.rst:640 msgid "pydoc" msgstr "Pydoc" -#: ../Doc/whatsnew/3.9.rst:645 +#: ../Doc/whatsnew/3.9.rst:642 msgid "" "The documentation string is now shown not only for class, function, method " "etc, but for any object that has its own ``__doc__`` attribute. (Contributed " @@ -1298,11 +1290,11 @@ msgstr "" "método, etc., sino para cualquier objeto que tenga su propio atributo " "``__doc__``. (Contribuido por Serhiy Storchaka en :issue:`40257`.)" -#: ../Doc/whatsnew/3.9.rst:650 +#: ../Doc/whatsnew/3.9.rst:647 msgid "random" msgstr "aleatorio" -#: ../Doc/whatsnew/3.9.rst:652 +#: ../Doc/whatsnew/3.9.rst:649 msgid "" "Added a new :attr:`random.Random.randbytes` method: generate random bytes. " "(Contributed by Victor Stinner in :issue:`40286`.)" @@ -1310,11 +1302,11 @@ msgstr "" "Se agregó un nuevo método :attr:`random.Random.randbytes`: generar bytes " "aleatorios. (Contribuido por Victor Stinner en :issue:`40286`.)" -#: ../Doc/whatsnew/3.9.rst:656 +#: ../Doc/whatsnew/3.9.rst:653 msgid "signal" msgstr "señal" -#: ../Doc/whatsnew/3.9.rst:658 +#: ../Doc/whatsnew/3.9.rst:655 msgid "" "Exposed the Linux-specific :func:`signal.pidfd_send_signal` for sending to " "signals to a process using a file descriptor instead of a pid. (:issue:" @@ -1324,15 +1316,16 @@ msgstr "" "señales a un proceso utilizando un descriptor de archivo en lugar de un pid. " "(:issue:`38712`)" -#: ../Doc/whatsnew/3.9.rst:662 +#: ../Doc/whatsnew/3.9.rst:659 msgid "smtplib" msgstr "smtplib" -#: ../Doc/whatsnew/3.9.rst:664 +#: ../Doc/whatsnew/3.9.rst:661 +#, fuzzy msgid "" ":class:`~smtplib.SMTP` and :class:`~smtplib.SMTP_SSL` now raise a :class:" "`ValueError` if the given timeout for their constructor is zero to prevent " -"the creation of a non-blocking socket. (Contributed by Dong-hee Na in :issue:" +"the creation of a non-blocking socket. (Contributed by Donghee Na in :issue:" "`39259`.)" msgstr "" ":class:`~smtplib.SMTP` y :class:`~smtplib.SMTP_SSL` ahora lanzan un :class:" @@ -1340,21 +1333,23 @@ msgstr "" "evitar la creación de un socket sin bloqueo. (Contribuido por Dong-hee Na " "en :issue:`39259`.)" -#: ../Doc/whatsnew/3.9.rst:668 +#: ../Doc/whatsnew/3.9.rst:665 +#, fuzzy msgid "" ":class:`~smtplib.LMTP` constructor now has an optional *timeout* parameter. " -"(Contributed by Dong-hee Na in :issue:`39329`.)" +"(Contributed by Donghee Na in :issue:`39329`.)" msgstr "" "El constructor :class:`~smtplib.LMTP` ahora tiene un parámetro *timeout* " "opcional. (Contribuido por Dong-hee Na en :issue:`39329`.)" -#: ../Doc/whatsnew/3.9.rst:672 +#: ../Doc/whatsnew/3.9.rst:669 msgid "socket" msgstr "enchufe" -#: ../Doc/whatsnew/3.9.rst:674 +#: ../Doc/whatsnew/3.9.rst:671 +#, fuzzy msgid "" -"The :mod:`socket` module now exports the :data:`~socket." +"The :mod:`socket` module now exports the :const:`~socket." "CAN_RAW_JOIN_FILTERS` constant on Linux 4.1 and greater. (Contributed by " "Stefan Tatschner and Zackery Spytz in :issue:`25780`.)" msgstr "" @@ -1362,15 +1357,16 @@ msgstr "" "CAN_RAW_JOIN_FILTERS` en Linux 4.1 y superior. (Contribuido por Stefan " "Tatschner y Zackery Spytz en :issue:`25780`.)" -#: ../Doc/whatsnew/3.9.rst:678 +#: ../Doc/whatsnew/3.9.rst:675 +#, fuzzy msgid "" -"The socket module now supports the :data:`~socket.CAN_J1939` protocol on " +"The socket module now supports the :const:`~socket.CAN_J1939` protocol on " "platforms that support it. (Contributed by Karl Ding in :issue:`40291`.)" msgstr "" "El módulo de socket ahora admite el protocolo :data:`~socket.CAN_J1939` en " "plataformas que lo admiten. (Contribuido por Karl Ding en :issue:`40291`.)" -#: ../Doc/whatsnew/3.9.rst:681 +#: ../Doc/whatsnew/3.9.rst:678 msgid "" "The socket module now has the :func:`socket.send_fds` and :func:`socket." "recv_fds` functions. (Contributed by Joannah Nanjekye, Shinya Okano and " @@ -1380,11 +1376,11 @@ msgstr "" "func:`socket.recv_fds`. (Contribuido por Joannah Nanjekye, Shinya Okano y " "Victor Stinner en :issue:`28724`.)" -#: ../Doc/whatsnew/3.9.rst:687 +#: ../Doc/whatsnew/3.9.rst:684 msgid "time" msgstr "tiempo" -#: ../Doc/whatsnew/3.9.rst:689 +#: ../Doc/whatsnew/3.9.rst:686 msgid "" "On AIX, :func:`~time.thread_time` is now implemented with " "``thread_cputime()`` which has nanosecond resolution, rather than " @@ -1396,13 +1392,14 @@ msgstr "" "``clock_gettime(CLOCK_THREAD_CPUTIME_ID)`` que tiene una resolución de 10 " "ms. (Contribuido por Batuhan Taskaya en :issue:`40192`)" -#: ../Doc/whatsnew/3.9.rst:695 +#: ../Doc/whatsnew/3.9.rst:692 msgid "sys" msgstr "sys" -#: ../Doc/whatsnew/3.9.rst:697 +#: ../Doc/whatsnew/3.9.rst:694 +#, fuzzy msgid "" -"Added a new :attr:`sys.platlibdir` attribute: name of the platform-specific " +"Added a new :data:`sys.platlibdir` attribute: name of the platform-specific " "library directory. It is used to build the path of standard library and the " "paths of installed extension modules. It is equal to ``\"lib\"`` on most " "platforms. On Fedora and SuSE, it is equal to ``\"lib64\"`` on 64-bit " @@ -1417,9 +1414,10 @@ msgstr "" "Matějek, Matěj Cepl, Charalampos Stratakis y Victor Stinner en :issue:" "`1294959`.)" -#: ../Doc/whatsnew/3.9.rst:703 +#: ../Doc/whatsnew/3.9.rst:700 +#, fuzzy msgid "" -"Previously, :attr:`sys.stderr` was block-buffered when non-interactive. Now " +"Previously, :data:`sys.stderr` was block-buffered when non-interactive. Now " "``stderr`` defaults to always being line-buffered. (Contributed by Jendrik " "Seipp in :issue:`13601`.)" msgstr "" @@ -1427,11 +1425,11 @@ msgstr "" "interactivo. Ahora ``stderr`` tiene como valor predeterminado que siempre " "tenga búfer de línea. (Contribuido por Jendrik Seipp en :issue:`13601`.)" -#: ../Doc/whatsnew/3.9.rst:708 +#: ../Doc/whatsnew/3.9.rst:705 msgid "tracemalloc" msgstr "tracemalloc" -#: ../Doc/whatsnew/3.9.rst:710 +#: ../Doc/whatsnew/3.9.rst:707 msgid "" "Added :func:`tracemalloc.reset_peak` to set the peak size of traced memory " "blocks to the current size, to measure the peak of specific pieces of code. " @@ -1442,11 +1440,11 @@ msgstr "" "piezas de código específicas. (Contribuido por Huon Wilson en :issue:" "`40630`.)" -#: ../Doc/whatsnew/3.9.rst:715 ../Doc/whatsnew/3.9.rst:1498 +#: ../Doc/whatsnew/3.9.rst:712 ../Doc/whatsnew/3.9.rst:1495 msgid "typing" msgstr "mecanografía" -#: ../Doc/whatsnew/3.9.rst:717 +#: ../Doc/whatsnew/3.9.rst:714 msgid "" ":pep:`593` introduced an :data:`typing.Annotated` type to decorate existing " "types with context-specific metadata and new ``include_extras`` parameter " @@ -1459,22 +1457,22 @@ msgstr "" "metadatos en tiempo de ejecución. (Contribuido por Till Varoquaux y " "Konstantin Kashin.)" -#: ../Doc/whatsnew/3.9.rst:723 +#: ../Doc/whatsnew/3.9.rst:720 msgid "unicodedata" msgstr "unicodedata" -#: ../Doc/whatsnew/3.9.rst:725 +#: ../Doc/whatsnew/3.9.rst:722 msgid "" "The Unicode database has been updated to version 13.0.0. (:issue:`39926`)." msgstr "" "La base de datos Unicode se ha actualizado a la versión 13.0.0. (:issue:" "`39926`)." -#: ../Doc/whatsnew/3.9.rst:728 +#: ../Doc/whatsnew/3.9.rst:725 msgid "venv" msgstr "venv" -#: ../Doc/whatsnew/3.9.rst:730 +#: ../Doc/whatsnew/3.9.rst:727 msgid "" "The activation scripts provided by :mod:`venv` now all specify their prompt " "customization consistently by always using the value specified by " @@ -1490,11 +1488,11 @@ msgstr "" "configurado (que era el caso predeterminado) y uno usaba ``__VENV_NAME__`` " "en su lugar. (Contribuido por Brett Cannon en :issue:`37663`.)" -#: ../Doc/whatsnew/3.9.rst:738 +#: ../Doc/whatsnew/3.9.rst:735 msgid "xml" msgstr "xml" -#: ../Doc/whatsnew/3.9.rst:740 +#: ../Doc/whatsnew/3.9.rst:737 msgid "" "White space characters within attributes are now preserved when serializing :" "mod:`xml.etree.ElementTree` to XML file. EOLNs are no longer normalized to " @@ -1507,11 +1505,11 @@ msgstr "" "sobre cómo interpretar la sección 2.11 de la especificación XML. " "(Contribuido por Mefistotelis en :issue:`39011`.)" -#: ../Doc/whatsnew/3.9.rst:748 +#: ../Doc/whatsnew/3.9.rst:745 msgid "Optimizations" msgstr "Optimizaciones" -#: ../Doc/whatsnew/3.9.rst:750 +#: ../Doc/whatsnew/3.9.rst:747 msgid "" "Optimized the idiom for assignment a temporary variable in comprehensions. " "Now ``for y in [expr]`` in comprehensions is as fast as a simple assignment " @@ -1521,11 +1519,11 @@ msgstr "" "comprensiones. Ahora ``for y in [expr]`` en comprensiones es tan rápido como " "una simple asignación ``y = expr``. Por ejemplo:" -#: ../Doc/whatsnew/3.9.rst:754 +#: ../Doc/whatsnew/3.9.rst:751 msgid "sums = [s for s in [0] for x in data for s in [s + x]]" msgstr "sumas = [s para s en [0] para x en datos para s en [s + x]]" -#: ../Doc/whatsnew/3.9.rst:756 +#: ../Doc/whatsnew/3.9.rst:753 msgid "" "Unlike the ``:=`` operator this idiom does not leak a variable to the outer " "scope." @@ -1533,11 +1531,11 @@ msgstr "" "A diferencia del operador ``:=``, este idioma no filtra una variable al " "alcance externo." -#: ../Doc/whatsnew/3.9.rst:759 +#: ../Doc/whatsnew/3.9.rst:756 msgid "(Contributed by Serhiy Storchaka in :issue:`32856`.)" msgstr "(Contribuido por Serhiy Storchaka en :issue:`32856`.)" -#: ../Doc/whatsnew/3.9.rst:761 +#: ../Doc/whatsnew/3.9.rst:758 msgid "" "Optimized signal handling in multithreaded applications. If a thread " "different than the main thread gets a signal, the bytecode evaluation loop " @@ -1551,7 +1549,7 @@ msgstr "" "bytes para verificar si hay señales pendientes que no se pueden manejar. " "Solo el hilo principal del intérprete principal puede manejar señales." -#: ../Doc/whatsnew/3.9.rst:767 +#: ../Doc/whatsnew/3.9.rst:764 msgid "" "Previously, the bytecode evaluation loop was interrupted at each instruction " "until the main thread handles signals. (Contributed by Victor Stinner in :" @@ -1561,7 +1559,7 @@ msgstr "" "cada instrucción hasta que el hilo principal manejaba las señales. " "(Contribuido por Victor Stinner en :issue:`40010`.)" -#: ../Doc/whatsnew/3.9.rst:771 +#: ../Doc/whatsnew/3.9.rst:768 msgid "" "Optimized the :mod:`subprocess` module on FreeBSD using ``closefrom()``. " "(Contributed by Ed Maste, Conrad Meyer, Kyle Evans, Kubilay Kocak and Victor " @@ -1571,7 +1569,7 @@ msgstr "" "(Contribuido por Ed Maste, Conrad Meyer, Kyle Evans, Kubilay Kocak y Victor " "Stinner en :issue:`38061`.)" -#: ../Doc/whatsnew/3.9.rst:775 +#: ../Doc/whatsnew/3.9.rst:772 msgid "" ":c:func:`PyLong_FromDouble` is now up to 1.87x faster for values that fit " "into :c:expr:`long`. (Contributed by Sergey Fedoseev in :issue:`37986`.)" @@ -1580,11 +1578,12 @@ msgstr "" "valores que se ajustan a :c:expr:`long`. (Contribuido por Sergey Fedoseev " "en :issue:`37986`.)" -#: ../Doc/whatsnew/3.9.rst:779 +#: ../Doc/whatsnew/3.9.rst:776 +#, fuzzy msgid "" "A number of Python builtins (:class:`range`, :class:`tuple`, :class:`set`, :" "class:`frozenset`, :class:`list`, :class:`dict`) are now sped up by using :" -"pep:`590` vectorcall protocol. (Contributed by Dong-hee Na, Mark Shannon, " +"pep:`590` vectorcall protocol. (Contributed by Donghee Na, Mark Shannon, " "Jeroen Demeyer and Petr Viktorin in :issue:`37207`.)" msgstr "" "Varias incorporaciones de Python (:class:`range`, :class:`tuple`, :class:" @@ -1592,7 +1591,7 @@ msgstr "" "mediante el protocolo de llamada vectorial :pep:`590`. (Contribuido por Dong-" "hee Na, Mark Shannon, Jeroen Demeyer y Petr Viktorin en :issue:`37207`.)" -#: ../Doc/whatsnew/3.9.rst:784 +#: ../Doc/whatsnew/3.9.rst:781 msgid "" "Optimized :func:`~set.difference_update` for the case when the other set is " "much larger than the base set. (Suggested by Evgeny Kapun with code " @@ -1602,7 +1601,7 @@ msgstr "" "conjunto es mucho más grande que el conjunto base. (Sugerido por Evgeny " "Kapun con código aportado por Michele Orrù en :issue:`8425`.)" -#: ../Doc/whatsnew/3.9.rst:788 +#: ../Doc/whatsnew/3.9.rst:785 msgid "" "Python's small object allocator (``obmalloc.c``) now allows (no more than) " "one empty arena to remain available for immediate reuse, without returning " @@ -1616,17 +1615,18 @@ msgstr "" "bucles simples donde una arena podría crearse y destruirse de nuevo en cada " "iteración. (Contribuido por Tim Peters en :issue:`37257`.)" -#: ../Doc/whatsnew/3.9.rst:794 +#: ../Doc/whatsnew/3.9.rst:791 +#, fuzzy msgid "" ":term:`floor division` of float operation now has a better performance. Also " "the message of :exc:`ZeroDivisionError` for this operation is updated. " -"(Contributed by Dong-hee Na in :issue:`39434`.)" +"(Contributed by Donghee Na in :issue:`39434`.)" msgstr "" ":term:`floor division` de operación flotante ahora tiene un mejor " "rendimiento. También se actualiza el mensaje de :exc:`ZeroDivisionError` " "para esta operación. (Contribuido por Dong-hee Na en :issue:`39434`.)" -#: ../Doc/whatsnew/3.9.rst:798 +#: ../Doc/whatsnew/3.9.rst:795 #, python-format msgid "" "Decoding short ASCII strings with UTF-8 and ascii codecs is now about " @@ -1636,7 +1636,7 @@ msgstr "" "aproximadamente un 15% más rápida. (Contribuido por Inada Naoki en :issue:" "`37348`.)" -#: ../Doc/whatsnew/3.9.rst:801 +#: ../Doc/whatsnew/3.9.rst:798 msgid "" "Here's a summary of performance improvements from Python 3.4 through Python " "3.9:" @@ -1644,7 +1644,8 @@ msgstr "" "A continuación, se muestra un resumen de las mejoras de rendimiento desde " "Python 3.4 hasta Python 3.9:" -#: ../Doc/whatsnew/3.9.rst:848 +#: ../Doc/whatsnew/3.9.rst:845 +#, fuzzy msgid "" "These results were generated from the variable access benchmark script at: " "``Tools/scripts/var_access_benchmark.py``. The benchmark script displays " @@ -1652,7 +1653,7 @@ msgid "" "i7-4960HQ processor `_ running the macOS 64-bit builds found at `python.org `_." +"python.org/downloads/macos/>`_." msgstr "" "Estos resultados se generaron a partir del script de referencia de acceso " "variable en: ``Tools/scripts/var_access_benchmark.py``. El script de " @@ -1662,11 +1663,11 @@ msgstr "" "up-to-3-80-ghz.html>`_ que ejecuta las compilaciones de macOS de 64 bits que " "se encuentran en `python.org `_." -#: ../Doc/whatsnew/3.9.rst:858 +#: ../Doc/whatsnew/3.9.rst:855 msgid "Deprecated" msgstr "Obsoleto" -#: ../Doc/whatsnew/3.9.rst:860 +#: ../Doc/whatsnew/3.9.rst:857 msgid "" "The distutils ``bdist_msi`` command is now deprecated, use ``bdist_wheel`` " "(wheel packages) instead. (Contributed by Hugo van Kemenade in :issue:" @@ -1676,7 +1677,7 @@ msgstr "" "(paquetes de ruedas) en su lugar. (Contribuido por Hugo van Kemenade en :" "issue:`39586`.)" -#: ../Doc/whatsnew/3.9.rst:864 +#: ../Doc/whatsnew/3.9.rst:861 msgid "" "Currently :func:`math.factorial` accepts :class:`float` instances with non-" "negative integer values (like ``5.0``). It raises a :exc:`ValueError` for " @@ -1690,7 +1691,7 @@ msgstr "" "versiones de Python, lanzará un :exc:`TypeError` para todos los flotadores. " "(Contribuido por Serhiy Storchaka en :issue:`37315`.)" -#: ../Doc/whatsnew/3.9.rst:870 +#: ../Doc/whatsnew/3.9.rst:867 msgid "" "The :mod:`parser` and :mod:`symbol` modules are deprecated and will be " "removed in future versions of Python. For the majority of use cases, users " @@ -1702,11 +1703,12 @@ msgstr "" "usuarios pueden aprovechar la etapa de generación y compilación del árbol de " "sintaxis abstracta (AST), utilizando el módulo :mod:`ast`." -#: ../Doc/whatsnew/3.9.rst:875 +#: ../Doc/whatsnew/3.9.rst:872 +#, fuzzy msgid "" -"The Public C API functions :c:func:`PyParser_SimpleParseStringFlags`, :c:" -"func:`PyParser_SimpleParseStringFlagsFilename`, :c:func:" -"`PyParser_SimpleParseFileFlags` and :c:func:`PyNode_Compile` are deprecated " +"The Public C API functions :c:func:`!PyParser_SimpleParseStringFlags`, :c:" +"func:`!PyParser_SimpleParseStringFlagsFilename`, :c:func:`!" +"PyParser_SimpleParseFileFlags` and :c:func:`!PyNode_Compile` are deprecated " "and will be removed in Python 3.10 together with the old parser." msgstr "" "Las funciones de la API pública de C :c:func:" @@ -1715,7 +1717,7 @@ msgstr "" "`PyParser_SimpleParseFileFlags` y :c:func:`PyNode_Compile` están en desuso y " "se eliminarán en Python 3.10 junto con el analizador anterior." -#: ../Doc/whatsnew/3.9.rst:880 +#: ../Doc/whatsnew/3.9.rst:877 msgid "" "Using :data:`NotImplemented` in a boolean context has been deprecated, as it " "is almost exclusively the result of incorrect rich comparator " @@ -1727,7 +1729,7 @@ msgstr "" "incorrectas de comparadores ricos. Se convertirá en :exc:`TypeError` en una " "versión futura de Python. (Contribuido por Josh Rosenberg en :issue:`35712`.)" -#: ../Doc/whatsnew/3.9.rst:886 +#: ../Doc/whatsnew/3.9.rst:883 msgid "" "The :mod:`random` module currently accepts any hashable type as a possible " "seed value. Unfortunately, some of those types are not guaranteed to have a " @@ -1741,7 +1743,7 @@ msgstr "" "restringirá sus semillas a :const:`None`, :class:`int`, :class:`float`, :" "class:`str`, :class:`bytes` y :class:`bytearray`." -#: ../Doc/whatsnew/3.9.rst:892 +#: ../Doc/whatsnew/3.9.rst:889 msgid "" "Opening the :class:`~gzip.GzipFile` file for writing without specifying the " "*mode* argument is deprecated. In future Python versions it will always be " @@ -1755,7 +1757,7 @@ msgstr "" "para escribir y silenciar una advertencia. (Contribuido por Serhiy Storchaka " "en :issue:`28286`.)" -#: ../Doc/whatsnew/3.9.rst:898 +#: ../Doc/whatsnew/3.9.rst:895 msgid "" "Deprecated the ``split()`` method of :class:`_tkinter.TkappType` in favour " "of the ``splitlist()`` method which has more consistent and predicable " @@ -1765,7 +1767,7 @@ msgstr "" "del método ``splitlist()`` que tiene un comportamiento más consistente y " "predecible. (Contribuido por Serhiy Storchaka en :issue:`38371`.)" -#: ../Doc/whatsnew/3.9.rst:903 +#: ../Doc/whatsnew/3.9.rst:900 msgid "" "The explicit passing of coroutine objects to :func:`asyncio.wait` has been " "deprecated and will be removed in version 3.11. (Contributed by Yury " @@ -1775,7 +1777,7 @@ msgstr "" "obsoleto y se eliminará en la versión 3.11. (Contribuido por Yury Selivanov " "y Kyle Stanley en :issue:`34790`.)" -#: ../Doc/whatsnew/3.9.rst:907 +#: ../Doc/whatsnew/3.9.rst:904 msgid "" "binhex4 and hexbin4 standards are now deprecated. The :mod:`binhex` module " "and the following :mod:`binascii` functions are now deprecated:" @@ -1783,19 +1785,19 @@ msgstr "" "Los estándares binhex4 y hexbin4 ahora están en desuso. El módulo :mod:" "`binhex` y las siguientes funciones :mod:`binascii` ahora están en desuso:" -#: ../Doc/whatsnew/3.9.rst:910 +#: ../Doc/whatsnew/3.9.rst:907 msgid ":func:`~binascii.b2a_hqx`, :func:`~binascii.a2b_hqx`" msgstr ":func:`~binascii.b2a_hqx`, :func:`~binascii.a2b_hqx`" -#: ../Doc/whatsnew/3.9.rst:911 +#: ../Doc/whatsnew/3.9.rst:908 msgid ":func:`~binascii.rlecode_hqx`, :func:`~binascii.rledecode_hqx`" msgstr ":func:`~binascii.rlecode_hqx`, :func:`~binascii.rledecode_hqx`" -#: ../Doc/whatsnew/3.9.rst:913 +#: ../Doc/whatsnew/3.9.rst:910 msgid "(Contributed by Victor Stinner in :issue:`39353`.)" msgstr "(Contribuido por Victor Stinner en :issue:`39353`.)" -#: ../Doc/whatsnew/3.9.rst:915 +#: ../Doc/whatsnew/3.9.rst:912 msgid "" ":mod:`ast` classes ``slice``, ``Index`` and ``ExtSlice`` are considered " "deprecated and will be removed in future Python versions. ``value`` itself " @@ -1809,7 +1811,7 @@ msgstr "" "``Tuple(slices, Load())`` en lugar de ``ExtSlice(slices)``. (Contribuido por " "Serhiy Storchaka en :issue:`34822`.)" -#: ../Doc/whatsnew/3.9.rst:921 +#: ../Doc/whatsnew/3.9.rst:918 msgid "" ":mod:`ast` classes ``Suite``, ``Param``, ``AugLoad`` and ``AugStore`` are " "considered deprecated and will be removed in future Python versions. They " @@ -1823,13 +1825,14 @@ msgstr "" "en Python 3. (Contribuido por Batuhan Taskaya en :issue:`39639` y :issue:" "`39969` y Serhiy Storchaka en :issue:`39988`)." -#: ../Doc/whatsnew/3.9.rst:928 +#: ../Doc/whatsnew/3.9.rst:925 +#, fuzzy msgid "" -"The :c:func:`PyEval_InitThreads` and :c:func:`PyEval_ThreadsInitialized` " +"The :c:func:`!PyEval_InitThreads` and :c:func:`!PyEval_ThreadsInitialized` " "functions are now deprecated and will be removed in Python 3.11. Calling :c:" -"func:`PyEval_InitThreads` now does nothing. The :term:`GIL` is initialized " -"by :c:func:`Py_Initialize()` since Python 3.7. (Contributed by Victor " -"Stinner in :issue:`39877`.)" +"func:`!PyEval_InitThreads` now does nothing. The :term:`GIL` is initialized " +"by :c:func:`Py_Initialize` since Python 3.7. (Contributed by Victor Stinner " +"in :issue:`39877`.)" msgstr "" "Las funciones :c:func:`PyEval_InitThreads` y :c:func:" "`PyEval_ThreadsInitialized` ahora están en desuso y se eliminarán en Python " @@ -1837,7 +1840,7 @@ msgstr "" "es inicializado por :c:func:`Py_Initialize()` desde Python 3.7. (Contribuido " "por Victor Stinner en :issue:`39877`.)" -#: ../Doc/whatsnew/3.9.rst:934 +#: ../Doc/whatsnew/3.9.rst:931 msgid "" "Passing ``None`` as the first argument to the :func:`shlex.split` function " "has been deprecated. (Contributed by Zackery Spytz in :issue:`33262`.)" @@ -1845,7 +1848,7 @@ msgstr "" "Pasar ``None`` como primer argumento a la función :func:`shlex.split` ha " "quedado obsoleto. (Contribuido por Zackery Spytz en :issue:`33262`.)" -#: ../Doc/whatsnew/3.9.rst:937 +#: ../Doc/whatsnew/3.9.rst:934 msgid "" ":func:`smtpd.MailmanProxy` is now deprecated as it is unusable without an " "external module, ``mailman``. (Contributed by Samuel Colvin in :issue:" @@ -1855,7 +1858,7 @@ msgstr "" "sin un módulo externo, ``mailman``. (Contribuido por Samuel Colvin en :issue:" "`35800`.)" -#: ../Doc/whatsnew/3.9.rst:940 +#: ../Doc/whatsnew/3.9.rst:937 msgid "" "The :mod:`lib2to3` module now emits a :exc:`PendingDeprecationWarning`. " "Python 3.9 switched to a PEG parser (see :pep:`617`), and Python 3.10 may " @@ -1872,7 +1875,7 @@ msgstr "" "de terceros como `LibCST`_ o `parso`_. (Contribuido por Carl Meyer en :issue:" "`40360`.)" -#: ../Doc/whatsnew/3.9.rst:948 +#: ../Doc/whatsnew/3.9.rst:945 msgid "" "The *random* parameter of :func:`random.shuffle` has been deprecated. " "(Contributed by Raymond Hettinger in :issue:`40465`)" @@ -1880,23 +1883,24 @@ msgstr "" "El parámetro *random* de :func:`random.shuffle` ha quedado obsoleto. " "(Contribuido por Raymond Hettinger en :issue:`40465`)" -#: ../Doc/whatsnew/3.9.rst:957 ../Doc/whatsnew/3.9.rst:1412 +#: ../Doc/whatsnew/3.9.rst:954 ../Doc/whatsnew/3.9.rst:1409 msgid "Removed" msgstr "Remoto" -#: ../Doc/whatsnew/3.9.rst:959 +#: ../Doc/whatsnew/3.9.rst:956 msgid "" "The erroneous version at :data:`unittest.mock.__version__` has been removed." msgstr "" "Se ha eliminado la versión errónea en :data:`unittest.mock.__version__`." -#: ../Doc/whatsnew/3.9.rst:961 +#: ../Doc/whatsnew/3.9.rst:958 +#, fuzzy msgid "" ":class:`nntplib.NNTP`: ``xpath()`` and ``xgtitle()`` methods have been " "removed. These methods are deprecated since Python 3.3. Generally, these " "extensions are not supported or not enabled by NNTP server administrators. " "For ``xgtitle()``, please use :meth:`nntplib.NNTP.descriptions` or :meth:" -"`nntplib.NNTP.description` instead. (Contributed by Dong-hee Na in :issue:" +"`nntplib.NNTP.description` instead. (Contributed by Donghee Na in :issue:" "`39366`.)" msgstr "" ":class:`nntplib.NNTP`: Se han eliminado los métodos ``xpath()`` y " @@ -1906,7 +1910,7 @@ msgstr "" "`nntplib.NNTP.descriptions` o :meth:`nntplib.NNTP.description` en su lugar. " "(Contribuido por Dong-hee Na en :issue:`39366`.)" -#: ../Doc/whatsnew/3.9.rst:968 +#: ../Doc/whatsnew/3.9.rst:965 msgid "" ":class:`array.array`: ``tostring()`` and ``fromstring()`` methods have been " "removed. They were aliases to ``tobytes()`` and ``frombytes()``, deprecated " @@ -1916,7 +1920,7 @@ msgstr "" "``fromstring()``. Eran alias de ``tobytes()`` y ``frombytes()``, obsoletos " "desde Python 3.2. (Contribuido por Victor Stinner en :issue:`38916`.)" -#: ../Doc/whatsnew/3.9.rst:973 +#: ../Doc/whatsnew/3.9.rst:970 msgid "" "The undocumented ``sys.callstats()`` function has been removed. Since Python " "3.7, it was deprecated and always returned :const:`None`. It required a " @@ -1928,7 +1932,7 @@ msgstr "" "compilación especial ``CALL_PROFILE`` que ya se eliminó en Python 3.7. " "(Contribuido por Victor Stinner en :issue:`37414`.)" -#: ../Doc/whatsnew/3.9.rst:978 +#: ../Doc/whatsnew/3.9.rst:975 msgid "" "The ``sys.getcheckinterval()`` and ``sys.setcheckinterval()`` functions have " "been removed. They were deprecated since Python 3.2. Use :func:`sys." @@ -1940,7 +1944,7 @@ msgstr "" "getswitchinterval` y :func:`sys.setswitchinterval` en su lugar. (Contribuido " "por Victor Stinner en :issue:`37392`.)" -#: ../Doc/whatsnew/3.9.rst:983 +#: ../Doc/whatsnew/3.9.rst:980 msgid "" "The C function ``PyImport_Cleanup()`` has been removed. It was documented " "as: \"Empty the module table. For internal use only.\" (Contributed by " @@ -1950,7 +1954,7 @@ msgstr "" "\"Vacíe la tabla del módulo. Solo para uso interno\". (Contribuido por " "Victor Stinner en :issue:`36710`.)" -#: ../Doc/whatsnew/3.9.rst:987 +#: ../Doc/whatsnew/3.9.rst:984 msgid "" "``_dummy_thread`` and ``dummy_threading`` modules have been removed. These " "modules were deprecated since Python 3.7 which requires threading support. " @@ -1960,7 +1964,7 @@ msgstr "" "módulos quedaron obsoletos desde Python 3.7, que requiere compatibilidad con " "subprocesos. (Contribuido por Victor Stinner en :issue:`37312`.)" -#: ../Doc/whatsnew/3.9.rst:991 +#: ../Doc/whatsnew/3.9.rst:988 msgid "" "``aifc.openfp()`` alias to ``aifc.open()``, ``sunau.openfp()`` alias to " "``sunau.open()``, and ``wave.openfp()`` alias to :func:`wave.open()` have " @@ -1972,18 +1976,19 @@ msgstr "" "func:`wave.open()`. Fueron obsoletos desde Python 3.7. (Contribuido por " "Victor Stinner en :issue:`37320`.)" -#: ../Doc/whatsnew/3.9.rst:996 +#: ../Doc/whatsnew/3.9.rst:993 +#, fuzzy msgid "" "The :meth:`~threading.Thread.isAlive()` method of :class:`threading.Thread` " "has been removed. It was deprecated since Python 3.8. Use :meth:`~threading." -"Thread.is_alive()` instead. (Contributed by Dong-hee Na in :issue:`37804`.)" +"Thread.is_alive()` instead. (Contributed by Donghee Na in :issue:`37804`.)" msgstr "" "Se ha eliminado el método :meth:`~threading.Thread.isAlive()` de :class:" "`threading.Thread`. Quedó en desuso desde Python 3.8. Utilice :meth:" "`~threading.Thread.is_alive()` en su lugar. (Contribuido por Dong-hee Na en :" "issue:`37804`.)" -#: ../Doc/whatsnew/3.9.rst:1001 +#: ../Doc/whatsnew/3.9.rst:998 msgid "" "Methods ``getchildren()`` and ``getiterator()`` of classes :class:`~xml." "etree.ElementTree.ElementTree` and :class:`~xml.etree.ElementTree.Element` " @@ -1999,7 +2004,7 @@ msgstr "" "getchildren()`` y ``x.iter()`` o ``list(x.iter())`` en lugar de ``x." "getiterator()``. (Contribuido por Serhiy Storchaka en :issue:`36543`.)" -#: ../Doc/whatsnew/3.9.rst:1009 +#: ../Doc/whatsnew/3.9.rst:1006 msgid "" "The old :mod:`plistlib` API has been removed, it was deprecated since Python " "3.4. Use the :func:`~plistlib.load`, :func:`~plistlib.loads`, :func:" @@ -2013,7 +2018,7 @@ msgstr "" "*use_builtin_types*; en su lugar, siempre se utilizan objetos :class:`bytes` " "estándar. (Contribuido por Jon Janzen en :issue:`36409`.)" -#: ../Doc/whatsnew/3.9.rst:1015 +#: ../Doc/whatsnew/3.9.rst:1012 msgid "" "The C function ``PyGen_NeedsFinalizing`` has been removed. It was not " "documented, tested, or used anywhere within CPython after the implementation " @@ -2025,7 +2030,7 @@ msgstr "" "de :pep:`442`. Parche de Joannah Nanjekye. (Contribuido por Joannah Nanjekye " "en :issue:`15088`)" -#: ../Doc/whatsnew/3.9.rst:1020 +#: ../Doc/whatsnew/3.9.rst:1017 msgid "" "``base64.encodestring()`` and ``base64.decodestring()``, aliases deprecated " "since Python 3.1, have been removed: use :func:`base64.encodebytes` and :" @@ -2037,7 +2042,7 @@ msgstr "" "func:`base64.decodebytes` en su lugar. (Contribuido por Victor Stinner en :" "issue:`39351`.)" -#: ../Doc/whatsnew/3.9.rst:1025 +#: ../Doc/whatsnew/3.9.rst:1022 msgid "" "``fractions.gcd()`` function has been removed, it was deprecated since " "Python 3.5 (:issue:`22486`): use :func:`math.gcd` instead. (Contributed by " @@ -2047,7 +2052,7 @@ msgstr "" "3.5 (:issue:`22486`): utilice :func:`math.gcd` en su lugar. (Contribuido por " "Victor Stinner en :issue:`39350`.)" -#: ../Doc/whatsnew/3.9.rst:1029 +#: ../Doc/whatsnew/3.9.rst:1026 msgid "" "The *buffering* parameter of :class:`bz2.BZ2File` has been removed. Since " "Python 3.0, it was ignored and using it emitted a :exc:`DeprecationWarning`. " @@ -2059,7 +2064,7 @@ msgstr "" "objeto de archivo abierto para controlar cómo se abre el archivo. " "(Contribuido por Victor Stinner en :issue:`39357`.)" -#: ../Doc/whatsnew/3.9.rst:1034 +#: ../Doc/whatsnew/3.9.rst:1031 msgid "" "The *encoding* parameter of :func:`json.loads` has been removed. As of " "Python 3.1, it was deprecated and ignored; using it has emitted a :exc:" @@ -2071,7 +2076,7 @@ msgstr "" "`DeprecationWarning` desde Python 3.8. (Contribuido por Inada Naoki en :" "issue:`39377`)" -#: ../Doc/whatsnew/3.9.rst:1039 +#: ../Doc/whatsnew/3.9.rst:1036 msgid "" "``with (await asyncio.lock):`` and ``with (yield from asyncio.lock):`` " "statements are not longer supported, use ``async with lock`` instead. The " @@ -2083,7 +2088,7 @@ msgstr "" "lugar. Lo mismo es correcto para ``asyncio.Condition`` y ``asyncio." "Semaphore``. (Contribuido por Andrew Svetlov en :issue:`34793`.)" -#: ../Doc/whatsnew/3.9.rst:1044 +#: ../Doc/whatsnew/3.9.rst:1041 msgid "" "The :func:`sys.getcounts` function, the ``-X showalloccount`` command line " "option and the ``show_alloc_count`` field of the C structure :c:type:" @@ -2097,7 +2102,7 @@ msgstr "" "Python definiendo la macro ``COUNT_ALLOCS``. (Contribuido por Victor Stinner " "en :issue:`39489`.)" -#: ../Doc/whatsnew/3.9.rst:1050 +#: ../Doc/whatsnew/3.9.rst:1047 msgid "" "The ``_field_types`` attribute of the :class:`typing.NamedTuple` class has " "been removed. It was deprecated since Python 3.8. Use the " @@ -2109,7 +2114,7 @@ msgstr "" "atributo ``__annotations__``. (Contribuido por Serhiy Storchaka en :issue:" "`40182`.)" -#: ../Doc/whatsnew/3.9.rst:1055 +#: ../Doc/whatsnew/3.9.rst:1052 msgid "" "The :meth:`symtable.SymbolTable.has_exec` method has been removed. It was " "deprecated since 2006, and only returning ``False`` when it's called. " @@ -2119,7 +2124,7 @@ msgstr "" "desuso desde 2006 y solo devuelve ``False`` cuando se llama. (Contribuido " "por Batuhan Taskaya en :issue:`40208`)" -#: ../Doc/whatsnew/3.9.rst:1059 +#: ../Doc/whatsnew/3.9.rst:1056 msgid "" "The :meth:`asyncio.Task.current_task` and :meth:`asyncio.Task.all_tasks` " "have been removed. They were deprecated since Python 3.7 and you can use :" @@ -2131,7 +2136,7 @@ msgstr "" "current_task` y :func:`asyncio.all_tasks` en su lugar. (Contribución de Rémi " "Lapeyre en :issue:`40967`)" -#: ../Doc/whatsnew/3.9.rst:1064 +#: ../Doc/whatsnew/3.9.rst:1061 msgid "" "The ``unescape()`` method in the :class:`html.parser.HTMLParser` class has " "been removed (it was deprecated since Python 3.4). :func:`html.unescape` " @@ -2143,11 +2148,11 @@ msgstr "" "usarse para convertir referencias de caracteres a los caracteres Unicode " "correspondientes." -#: ../Doc/whatsnew/3.9.rst:1071 ../Doc/whatsnew/3.9.rst:1338 +#: ../Doc/whatsnew/3.9.rst:1068 ../Doc/whatsnew/3.9.rst:1335 msgid "Porting to Python 3.9" msgstr "Portar a Python 3.9" -#: ../Doc/whatsnew/3.9.rst:1073 +#: ../Doc/whatsnew/3.9.rst:1070 msgid "" "This section lists previously described changes and other bugfixes that may " "require changes to your code." @@ -2155,11 +2160,11 @@ msgstr "" "Esta sección enumera los cambios descritos anteriormente y otras " "correcciones de errores que pueden requerir cambios en su código." -#: ../Doc/whatsnew/3.9.rst:1078 +#: ../Doc/whatsnew/3.9.rst:1075 msgid "Changes in the Python API" msgstr "Cambios en la API de Python" -#: ../Doc/whatsnew/3.9.rst:1080 +#: ../Doc/whatsnew/3.9.rst:1077 msgid "" ":func:`__import__` and :func:`importlib.util.resolve_name` now raise :exc:" "`ImportError` where it previously raised :exc:`ValueError`. Callers catching " @@ -2172,7 +2177,7 @@ msgstr "" "con Python 3.9 y versiones anteriores deberán detectar ambas usando ``except " "(ImportError, ValueError):``." -#: ../Doc/whatsnew/3.9.rst:1085 +#: ../Doc/whatsnew/3.9.rst:1082 msgid "" "The :mod:`venv` activation scripts no longer special-case when " "``__VENV_PROMPT__`` is set to ``\"\"``." @@ -2180,15 +2185,16 @@ msgstr "" "Los scripts de activación de :mod:`venv` ya no son casos especiales cuando " "``__VENV_PROMPT__`` se establece en ``\"\"``." -#: ../Doc/whatsnew/3.9.rst:1088 +#: ../Doc/whatsnew/3.9.rst:1085 +#, fuzzy msgid "" -"The :meth:`select.epoll.unregister` method no longer ignores the :data:" +"The :meth:`select.epoll.unregister` method no longer ignores the :const:" "`~errno.EBADF` error. (Contributed by Victor Stinner in :issue:`39239`.)" msgstr "" "El método :meth:`select.epoll.unregister` ya no ignora el error :data:" "`~errno.EBADF`. (Contribuido por Victor Stinner en :issue:`39239`.)" -#: ../Doc/whatsnew/3.9.rst:1092 +#: ../Doc/whatsnew/3.9.rst:1089 msgid "" "The *compresslevel* parameter of :class:`bz2.BZ2File` became keyword-only, " "since the *buffering* parameter has been removed. (Contributed by Victor " @@ -2198,7 +2204,7 @@ msgstr "" "convirtió solo en un parámetro de llave, ya que *buffering* se quitó. " "(Contribuido por Victor Stinner en :issue:`39357`.)" -#: ../Doc/whatsnew/3.9.rst:1096 +#: ../Doc/whatsnew/3.9.rst:1093 msgid "" "Simplified AST for subscription. Simple indices will be represented by their " "value, extended slices will be represented as tuples. ``Index(value)`` will " @@ -2211,7 +2217,7 @@ msgstr "" "devolverá ``Tuple(slices, Load())``. (Contribuido por Serhiy Storchaka en :" "issue:`34822`.)" -#: ../Doc/whatsnew/3.9.rst:1102 +#: ../Doc/whatsnew/3.9.rst:1099 msgid "" "The :mod:`importlib` module now ignores the :envvar:`PYTHONCASEOK` " "environment variable when the :option:`-E` or :option:`-I` command line " @@ -2221,7 +2227,7 @@ msgstr "" "`PYTHONCASEOK` cuando se utilizan las opciones de línea de comando :option:`-" "E` o :option:`-I`." -#: ../Doc/whatsnew/3.9.rst:1106 +#: ../Doc/whatsnew/3.9.rst:1103 msgid "" "The *encoding* parameter has been added to the classes :class:`ftplib.FTP` " "and :class:`ftplib.FTP_TLS` as a keyword-only parameter, and the default " @@ -2232,7 +2238,7 @@ msgstr "" "codificación predeterminada se cambia de Latin-1 a UTF-8 para seguir: rfc: " "`2640`." -#: ../Doc/whatsnew/3.9.rst:1110 +#: ../Doc/whatsnew/3.9.rst:1107 msgid "" ":meth:`asyncio.loop.shutdown_default_executor` has been added to :class:" "`~asyncio.AbstractEventLoop`, meaning alternative event loops that inherit " @@ -2244,7 +2250,7 @@ msgstr "" "alternativos que heredan de él deben tener definido este método. " "(Contribuido por Kyle Stanley en :issue:`34037`.)" -#: ../Doc/whatsnew/3.9.rst:1115 +#: ../Doc/whatsnew/3.9.rst:1112 msgid "" "The constant values of future flags in the :mod:`__future__` module is " "updated in order to prevent collision with compiler flags. Previously " @@ -2256,19 +2262,20 @@ msgstr "" "compilador. Anteriormente, ``PyCF_ALLOW_TOP_LEVEL_AWAIT`` chocaba con " "``CO_FUTURE_DIVISION``. (Contribuido por Batuhan Taskaya en :issue:`39562`)" -#: ../Doc/whatsnew/3.9.rst:1120 +#: ../Doc/whatsnew/3.9.rst:1117 +#, fuzzy msgid "" -"``array('u')`` now uses ``wchar_t`` as C type instead of ``Py_UNICODE``. " -"This change doesn't affect to its behavior because ``Py_UNICODE`` is alias " -"of ``wchar_t`` since Python 3.3. (Contributed by Inada Naoki in :issue:" -"`34538`.)" +"``array('u')`` now uses :c:type:`wchar_t` as C type instead of " +"``Py_UNICODE``. This change doesn't affect to its behavior because " +"``Py_UNICODE`` is alias of :c:type:`wchar_t` since Python 3.3. (Contributed " +"by Inada Naoki in :issue:`34538`.)" msgstr "" "``array('u')`` ahora usa ``wchar_t`` como tipo C en lugar de ``Py_UNICODE``. " "Este cambio no afecta su comportamiento porque ``Py_UNICODE`` es alias de " "``wchar_t`` desde Python 3.3. (Contribuido por Inada Naoki en :issue:" "`34538`.)" -#: ../Doc/whatsnew/3.9.rst:1125 +#: ../Doc/whatsnew/3.9.rst:1122 msgid "" "The :func:`logging.getLogger` API now returns the root logger when passed " "the name ``'root'``, whereas previously it returned a non-root logger named " @@ -2285,7 +2292,7 @@ msgstr "" "getLogger(__name__)`` en algún módulo de nivel superior llamado ``'root." "py'``. (Contribuido por Vinay Sajip en :issue:`37742`.)" -#: ../Doc/whatsnew/3.9.rst:1132 +#: ../Doc/whatsnew/3.9.rst:1129 msgid "" "Division handling of :class:`~pathlib.PurePath` now returns " "``NotImplemented`` instead of raising a :exc:`TypeError` when passed " @@ -2299,7 +2306,7 @@ msgstr "" "permite crear clases compatibles que no hereden de esos tipos mencionados. " "(Contribución de Roger Aiudi en :issue:`34775`)." -#: ../Doc/whatsnew/3.9.rst:1138 +#: ../Doc/whatsnew/3.9.rst:1135 msgid "" "Starting with Python 3.9.5 the :mod:`ipaddress` module no longer accepts any " "leading zeros in IPv4 address strings. Leading zeros are ambiguous and " @@ -2316,7 +2323,7 @@ msgstr "" "`~socket.inet_pton` moderno no acepta ceros a la izquierda. (Contribuido por " "Christian Heimes en :issue:`36384`)." -#: ../Doc/whatsnew/3.9.rst:1146 +#: ../Doc/whatsnew/3.9.rst:1143 msgid "" ":func:`codecs.lookup` now normalizes the encoding name the same way as :func:" "`encodings.normalize_encoding`, except that :func:`codecs.lookup` also " @@ -2330,11 +2337,11 @@ msgstr "" "codificación ``\"latex+latin1\"`` ahora está normalizado a " "``\"latex_latin1\"``. (Contribuido por Jordon Xu en :issue:`37751`.)" -#: ../Doc/whatsnew/3.9.rst:1154 +#: ../Doc/whatsnew/3.9.rst:1151 msgid "Changes in the C API" msgstr "Cambios en la API de C" -#: ../Doc/whatsnew/3.9.rst:1156 +#: ../Doc/whatsnew/3.9.rst:1153 msgid "" "Instances of :ref:`heap-allocated types ` (such as those created " "with :c:func:`PyType_FromSpec` and similar APIs) hold a reference to their " @@ -2353,7 +2360,7 @@ msgstr "" "las funciones ``tp_traverse`` personalizadas de los tipos asignados al " "montón visitan el tipo del objeto." -#: ../Doc/whatsnew/3.9.rst:1177 +#: ../Doc/whatsnew/3.9.rst:1174 msgid "" "If your traverse function delegates to ``tp_traverse`` of its base class (or " "another type), ensure that ``Py_TYPE(self)`` is visited only once. Note that " @@ -2365,20 +2372,20 @@ msgstr "" "cuenta que solo se espera que :ref:`heap type ` visite el tipo " "en ``tp_traverse``." -#: ../Doc/whatsnew/3.9.rst:1182 +#: ../Doc/whatsnew/3.9.rst:1179 msgid "For example, if your ``tp_traverse`` function includes:" msgstr "Por ejemplo, si su función ``tp_traverse`` incluye:" -#: ../Doc/whatsnew/3.9.rst:1188 +#: ../Doc/whatsnew/3.9.rst:1185 msgid "then add:" msgstr "Luego añade:" -#: ../Doc/whatsnew/3.9.rst:1201 +#: ../Doc/whatsnew/3.9.rst:1198 msgid "(See :issue:`35810` and :issue:`40217` for more information.)" msgstr "" "(Consulte :issue:`35810` y :issue:`40217` para obtener más información)." -#: ../Doc/whatsnew/3.9.rst:1203 +#: ../Doc/whatsnew/3.9.rst:1200 msgid "" "The functions ``PyEval_CallObject``, ``PyEval_CallFunction``, " "``PyEval_CallMethod`` and ``PyEval_CallObjectWithKeywords`` are deprecated. " @@ -2390,11 +2397,11 @@ msgstr "" "Utilice :c:func:`PyObject_Call` y sus variantes en su lugar. (Ver más " "detalles en :issue:`29548`.)" -#: ../Doc/whatsnew/3.9.rst:1209 +#: ../Doc/whatsnew/3.9.rst:1206 msgid "CPython bytecode changes" msgstr "Cambios en el código de bytes de CPython" -#: ../Doc/whatsnew/3.9.rst:1211 +#: ../Doc/whatsnew/3.9.rst:1208 msgid "" "The :opcode:`LOAD_ASSERTION_ERROR` opcode was added for handling the :" "keyword:`assert` statement. Previously, the assert statement would not work " @@ -2406,45 +2413,46 @@ msgstr "" "no funcionaría correctamente si la excepción :exc:`AssertionError` estuviera " "siendo sombreada. (Contribuido por Zackery Spytz en :issue:`34880`.)" -#: ../Doc/whatsnew/3.9.rst:1216 +#: ../Doc/whatsnew/3.9.rst:1213 msgid "" "The :opcode:`COMPARE_OP` opcode was split into four distinct instructions:" msgstr "" "El código de operación :opcode:`COMPARE_OP` se dividió en cuatro " "instrucciones distintas:" -#: ../Doc/whatsnew/3.9.rst:1218 +#: ../Doc/whatsnew/3.9.rst:1215 msgid "``COMPARE_OP`` for rich comparisons" msgstr "``COMPARE_OP`` para comparaciones enriquecidas" -#: ../Doc/whatsnew/3.9.rst:1219 +#: ../Doc/whatsnew/3.9.rst:1216 msgid "``IS_OP`` for 'is' and 'is not' tests" msgstr "``IS_OP`` para pruebas 'es' y 'no es'" -#: ../Doc/whatsnew/3.9.rst:1220 +#: ../Doc/whatsnew/3.9.rst:1217 msgid "``CONTAINS_OP`` for 'in' and 'not in' tests" msgstr "``CONTAINS_OP`` para pruebas 'in' y 'not in'" -#: ../Doc/whatsnew/3.9.rst:1221 +#: ../Doc/whatsnew/3.9.rst:1218 msgid "" "``JUMP_IF_NOT_EXC_MATCH`` for checking exceptions in 'try-except' statements." msgstr "" "``JUMP_IF_NOT_EXC_MATCH`` para verificar las excepciones en las " "declaraciones 'try-except'." -#: ../Doc/whatsnew/3.9.rst:1224 +#: ../Doc/whatsnew/3.9.rst:1221 msgid "(Contributed by Mark Shannon in :issue:`39156`.)" msgstr "(Contribuido por Mark Shannon en :issue:`39156`.)" -#: ../Doc/whatsnew/3.9.rst:1228 +#: ../Doc/whatsnew/3.9.rst:1225 msgid "Build Changes" msgstr "Construir cambios" -#: ../Doc/whatsnew/3.9.rst:1230 +#: ../Doc/whatsnew/3.9.rst:1227 +#, fuzzy msgid "" "Added ``--with-platlibdir`` option to the ``configure`` script: name of the " -"platform-specific library directory, stored in the new :attr:`sys." -"platlibdir` attribute. See :attr:`sys.platlibdir` attribute for more " +"platform-specific library directory, stored in the new :data:`sys." +"platlibdir` attribute. See :data:`sys.platlibdir` attribute for more " "information. (Contributed by Jan Matějek, Matěj Cepl, Charalampos Stratakis " "and Victor Stinner in :issue:`1294959`.)" msgstr "" @@ -2454,7 +2462,7 @@ msgstr "" "platlibdir` para obtener más información. (Contribuido por Jan Matějek, " "Matěj Cepl, Charalampos Stratakis y Victor Stinner en :issue:`1294959`.)" -#: ../Doc/whatsnew/3.9.rst:1236 +#: ../Doc/whatsnew/3.9.rst:1233 msgid "" "The ``COUNT_ALLOCS`` special build macro has been removed. (Contributed by " "Victor Stinner in :issue:`39489`.)" @@ -2462,7 +2470,7 @@ msgstr "" "Se ha eliminado la macro de compilación especial ``COUNT_ALLOCS``. " "(Contribuido por Victor Stinner en :issue:`39489`.)" -#: ../Doc/whatsnew/3.9.rst:1239 +#: ../Doc/whatsnew/3.9.rst:1236 msgid "" "On non-Windows platforms, the :c:func:`setenv` and :c:func:`unsetenv` " "functions are now required to build Python. (Contributed by Victor Stinner " @@ -2472,7 +2480,7 @@ msgstr "" "func:`setenv` y :c:func:`unsetenv` para compilar Python. (Contribuido por " "Victor Stinner en :issue:`39395`.)" -#: ../Doc/whatsnew/3.9.rst:1243 +#: ../Doc/whatsnew/3.9.rst:1240 msgid "" "On non-Windows platforms, creating ``bdist_wininst`` installers is now " "officially unsupported. (See :issue:`10945` for more details.)" @@ -2481,7 +2489,7 @@ msgstr "" "``bdist_wininst`` ahora no es compatible oficialmente. (Consulte :issue:" "`10945` para obtener más detalles)." -#: ../Doc/whatsnew/3.9.rst:1246 +#: ../Doc/whatsnew/3.9.rst:1243 msgid "" "When building Python on macOS from source, ``_tkinter`` now links with non-" "system Tcl and Tk frameworks if they are installed in ``/Library/" @@ -2499,7 +2507,7 @@ msgstr "" "predeterminado aún se puede anular con `--with-tcltk-includes` y `--with-" "tcltk-libs`. (Contribuido por Ned Deily en :issue:`34956`.)" -#: ../Doc/whatsnew/3.9.rst:1255 +#: ../Doc/whatsnew/3.9.rst:1252 msgid "" "Python can now be built for Windows 10 ARM64. (Contributed by Steve Dower " "in :issue:`33125`.)" @@ -2507,7 +2515,7 @@ msgstr "" "Python ahora se puede construir para Windows 10 ARM64. (Contribuido por " "Steve Dower en :issue:`33125`.)" -#: ../Doc/whatsnew/3.9.rst:1258 +#: ../Doc/whatsnew/3.9.rst:1255 msgid "" "Some individual tests are now skipped when ``--pgo`` is used. The tests in " "question increased the PGO task time significantly and likely didn't help " @@ -2537,15 +2545,16 @@ msgstr "" "carga de trabajo y la cadena de herramientas del compilador. (Consulte :" "issue:`36044` y :issue:`37707` para obtener más detalles)." -#: ../Doc/whatsnew/3.9.rst:1273 +#: ../Doc/whatsnew/3.9.rst:1270 msgid "C API Changes" msgstr "Cambios en la API de C" -#: ../Doc/whatsnew/3.9.rst:1278 +#: ../Doc/whatsnew/3.9.rst:1275 +#, fuzzy msgid "" ":pep:`573`: Added :c:func:`PyType_FromModuleAndSpec` to associate a module " "with a class; :c:func:`PyType_GetModule` and :c:func:`PyType_GetModuleState` " -"to retrieve the module and its state; and :c:data:`PyCMethod` and :c:data:" +"to retrieve the module and its state; and :c:type:`PyCMethod` and :c:macro:" "`METH_METHOD` to allow a method to access the class it was defined in. " "(Contributed by Marcel Plch and Petr Viktorin in :issue:`38787`.)" msgstr "" @@ -2556,7 +2565,7 @@ msgstr "" "clase en la que se definió. (Contribuido por Marcel Plch y Petr Viktorin en :" "issue:`38787`.)" -#: ../Doc/whatsnew/3.9.rst:1285 +#: ../Doc/whatsnew/3.9.rst:1282 msgid "" "Added :c:func:`PyFrame_GetCode` function: get a frame code. Added :c:func:" "`PyFrame_GetBack` function: get the frame next outer frame. (Contributed by " @@ -2566,7 +2575,7 @@ msgstr "" "Se agregó la función :c:func:`PyFrame_GetBack`: obtenga el siguiente marco " "exterior del marco. (Contribuido por Victor Stinner en :issue:`40421`.)" -#: ../Doc/whatsnew/3.9.rst:1289 +#: ../Doc/whatsnew/3.9.rst:1286 msgid "" "Added :c:func:`PyFrame_GetLineNumber` to the limited C API. (Contributed by " "Victor Stinner in :issue:`40421`.)" @@ -2574,7 +2583,7 @@ msgstr "" "Se agregó :c:func:`PyFrame_GetLineNumber` a la API C limitada. (Contribuido " "por Victor Stinner en :issue:`40421`.)" -#: ../Doc/whatsnew/3.9.rst:1292 +#: ../Doc/whatsnew/3.9.rst:1289 msgid "" "Added :c:func:`PyThreadState_GetInterpreter` and :c:func:" "`PyInterpreterState_Get` functions to get the interpreter. Added :c:func:" @@ -2590,7 +2599,7 @@ msgstr "" "obtenga el identificador único de un estado de subproceso de Python. " "(Contribuido por Victor Stinner en :issue:`39947`.)" -#: ../Doc/whatsnew/3.9.rst:1300 +#: ../Doc/whatsnew/3.9.rst:1297 msgid "" "Added a new public :c:func:`PyObject_CallNoArgs` function to the C API, " "which calls a callable Python object without any arguments. It is the most " @@ -2602,12 +2611,12 @@ msgstr "" "forma más eficiente de llamar a un objeto de Python invocable sin ningún " "argumento. (Contribuido por Victor Stinner en :issue:`37194`.)" -#: ../Doc/whatsnew/3.9.rst:1305 ../Doc/whatsnew/3.9.rst:1423 +#: ../Doc/whatsnew/3.9.rst:1302 ../Doc/whatsnew/3.9.rst:1420 msgid "Changes in the limited C API (if ``Py_LIMITED_API`` macro is defined):" msgstr "" "Cambios en la API C limitada (si se define la macro ``Py_LIMITED_API``):" -#: ../Doc/whatsnew/3.9.rst:1307 +#: ../Doc/whatsnew/3.9.rst:1304 msgid "" "Provide :c:func:`Py_EnterRecursiveCall` and :c:func:`Py_LeaveRecursiveCall` " "as regular functions for the limited API. Previously, there were defined as " @@ -2621,7 +2630,7 @@ msgstr "" "con la API C limitada que no puede acceder al campo ``PyThreadState." "recursion_depth`` (la estructura es opaca en la API C limitada)." -#: ../Doc/whatsnew/3.9.rst:1313 +#: ../Doc/whatsnew/3.9.rst:1310 msgid "" "``PyObject_INIT()`` and ``PyObject_INIT_VAR()`` become regular \"opaque\" " "function to hide implementation details." @@ -2629,19 +2638,20 @@ msgstr "" "``PyObject_INIT()`` y ``PyObject_INIT_VAR()`` se convierten en funciones " "\"opacas\" habituales para ocultar los detalles de la implementación." -#: ../Doc/whatsnew/3.9.rst:1316 ../Doc/whatsnew/3.9.rst:1450 +#: ../Doc/whatsnew/3.9.rst:1313 ../Doc/whatsnew/3.9.rst:1447 msgid "(Contributed by Victor Stinner in :issue:`38644` and :issue:`39542`.)" msgstr "(Contribuido por Victor Stinner en :issue:`38644` y :issue:`39542`.)" -#: ../Doc/whatsnew/3.9.rst:1318 +#: ../Doc/whatsnew/3.9.rst:1315 +#, fuzzy msgid "" "The :c:func:`PyModule_AddType` function is added to help adding a type to a " -"module. (Contributed by Dong-hee Na in :issue:`40024`.)" +"module. (Contributed by Donghee Na in :issue:`40024`.)" msgstr "" "Se agrega la función :c:func:`PyModule_AddType` para ayudar a agregar un " "tipo a un módulo. (Contribuido por Dong-hee Na en :issue:`40024`.)" -#: ../Doc/whatsnew/3.9.rst:1322 +#: ../Doc/whatsnew/3.9.rst:1319 msgid "" "Added the functions :c:func:`PyObject_GC_IsTracked` and :c:func:" "`PyObject_GC_IsFinalized` to the public API to allow to query if Python " @@ -2655,7 +2665,7 @@ msgstr "" "finalizados por el recolector de basura, respectivamente. (Contribuido por " "Pablo Galindo Salgado en :issue:`40241`.)" -#: ../Doc/whatsnew/3.9.rst:1328 +#: ../Doc/whatsnew/3.9.rst:1325 msgid "" "Added :c:func:`_PyObject_FunctionStr` to get a user-friendly string " "representation of a function-like object. (Patch by Jeroen Demeyer in :issue:" @@ -2665,7 +2675,7 @@ msgstr "" "cadena fácil de usar de un objeto similar a una función. (Parche de Jeroen " "Demeyer en :issue:`37645`.)" -#: ../Doc/whatsnew/3.9.rst:1332 +#: ../Doc/whatsnew/3.9.rst:1329 msgid "" "Added :c:func:`PyObject_CallOneArg` for calling an object with one " "positional argument (Patch by Jeroen Demeyer in :issue:`37483`.)" @@ -2673,7 +2683,7 @@ msgstr "" "Se agregó :c:func:`PyObject_CallOneArg` para llamar a un objeto con un " "argumento posicional (parche de Jeroen Demeyer en :issue:`37483`)." -#: ../Doc/whatsnew/3.9.rst:1340 +#: ../Doc/whatsnew/3.9.rst:1337 msgid "" "``PyInterpreterState.eval_frame`` (:pep:`523`) now requires a new mandatory " "*tstate* parameter (``PyThreadState*``). (Contributed by Victor Stinner in :" @@ -2683,7 +2693,7 @@ msgstr "" "parámetro *tstate* obligatorio (``PyThreadState*``). (Contribuido por Victor " "Stinner en :issue:`38500`.)" -#: ../Doc/whatsnew/3.9.rst:1344 +#: ../Doc/whatsnew/3.9.rst:1341 msgid "" "Extension modules: :c:member:`~PyModuleDef.m_traverse`, :c:member:" "`~PyModuleDef.m_clear` and :c:member:`~PyModuleDef.m_free` functions of :c:" @@ -2703,14 +2713,14 @@ msgstr "" "m_size` es mayor que 0 y el estado del módulo (como lo devuelve :c:func:" "`PyModule_GetState`) es ``NULL``." -#: ../Doc/whatsnew/3.9.rst:1353 +#: ../Doc/whatsnew/3.9.rst:1350 msgid "" "Extension modules without module state (``m_size <= 0``) are not affected." msgstr "" "Los módulos de extensión sin estado de módulo (``m_size <= 0``) no se ven " "afectados." -#: ../Doc/whatsnew/3.9.rst:1355 +#: ../Doc/whatsnew/3.9.rst:1352 msgid "" "If :c:func:`Py_AddPendingCall` is called in a subinterpreter, the function " "is now scheduled to be called from the subinterpreter, rather than being " @@ -2723,7 +2733,7 @@ msgstr "" "tiene su propia lista de llamadas programadas. (Contribuido por Victor " "Stinner en :issue:`39984`.)" -#: ../Doc/whatsnew/3.9.rst:1361 +#: ../Doc/whatsnew/3.9.rst:1358 msgid "" "The Windows registry is no longer used to initialize :data:`sys.path` when " "the ``-E`` option is used (if :c:member:`PyConfig.use_environment` is set to " @@ -2735,7 +2745,7 @@ msgstr "" "configurado en ``0``). Esto es importante al incrustar Python en Windows. " "(Contribuido por Zackery Spytz en :issue:`8901`.)" -#: ../Doc/whatsnew/3.9.rst:1366 +#: ../Doc/whatsnew/3.9.rst:1363 msgid "" "The global variable :c:data:`PyStructSequence_UnnamedField` is now a " "constant and refers to a constant string. (Contributed by Serhiy Storchaka " @@ -2745,7 +2755,7 @@ msgstr "" "constante y se refiere a una cadena constante. (Contribuido por Serhiy " "Storchaka en :issue:`38650`.)" -#: ../Doc/whatsnew/3.9.rst:1370 +#: ../Doc/whatsnew/3.9.rst:1367 msgid "" "The :c:type:`PyGC_Head` structure is now opaque. It is only defined in the " "internal C API (``pycore_gc.h``). (Contributed by Victor Stinner in :issue:" @@ -2755,11 +2765,12 @@ msgstr "" "interna (``pycore_gc.h``). (Contribuido por Victor Stinner en :issue:" "`40241`.)" -#: ../Doc/whatsnew/3.9.rst:1374 +#: ../Doc/whatsnew/3.9.rst:1371 +#, fuzzy msgid "" "The ``Py_UNICODE_COPY``, ``Py_UNICODE_FILL``, ``PyUnicode_WSTR_LENGTH``, :c:" -"func:`PyUnicode_FromUnicode`, :c:func:`PyUnicode_AsUnicode`, " -"``_PyUnicode_AsUnicode``, and :c:func:`PyUnicode_AsUnicodeAndSize` are " +"func:`!PyUnicode_FromUnicode`, :c:func:`!PyUnicode_AsUnicode`, " +"``_PyUnicode_AsUnicode``, and :c:func:`!PyUnicode_AsUnicodeAndSize` are " "marked as deprecated in C. They have been deprecated by :pep:`393` since " "Python 3.3. (Contributed by Inada Naoki in :issue:`36346`.)" msgstr "" @@ -2769,7 +2780,7 @@ msgstr "" "marcados como obsoletos en C. Han sido obsoletos por :pep:`393` desde Python " "3.3. (Contribuido por Inada Naoki en :issue:`36346`.)" -#: ../Doc/whatsnew/3.9.rst:1381 +#: ../Doc/whatsnew/3.9.rst:1378 msgid "" "The :c:func:`Py_FatalError` function is replaced with a macro which logs " "automatically the name of the current function, unless the " @@ -2780,7 +2791,7 @@ msgstr "" "automáticamente el nombre de la función actual, a menos que se defina la " "macro ``Py_LIMITED_API``. (Contribuido por Victor Stinner en :issue:`39882`.)" -#: ../Doc/whatsnew/3.9.rst:1386 +#: ../Doc/whatsnew/3.9.rst:1383 msgid "" "The vectorcall protocol now requires that the caller passes only strings as " "keyword names. (See :issue:`37540` for more information.)" @@ -2789,30 +2800,31 @@ msgstr "" "cadenas como nombres de palabras clave. (Consulte :issue:`37540` para " "obtener más información)." -#: ../Doc/whatsnew/3.9.rst:1389 +#: ../Doc/whatsnew/3.9.rst:1386 msgid "" "Implementation details of a number of macros and functions are now hidden:" msgstr "" "Los detalles de implementación de una serie de macros y funciones ahora " "están ocultos:" -#: ../Doc/whatsnew/3.9.rst:1391 +#: ../Doc/whatsnew/3.9.rst:1388 msgid ":c:func:`PyObject_IS_GC` macro was converted to a function." msgstr "La macro :c:func:`PyObject_IS_GC` se convirtió en una función." -#: ../Doc/whatsnew/3.9.rst:1393 +#: ../Doc/whatsnew/3.9.rst:1390 +#, fuzzy msgid "" -"The :c:func:`PyObject_NEW` macro becomes an alias to the :c:func:" +"The :c:func:`PyObject_NEW` macro becomes an alias to the :c:macro:" "`PyObject_New` macro, and the :c:func:`PyObject_NEW_VAR` macro becomes an " -"alias to the :c:func:`PyObject_NewVar` macro. They no longer access directly " -"the :c:member:`PyTypeObject.tp_basicsize` member." +"alias to the :c:macro:`PyObject_NewVar` macro. They no longer access " +"directly the :c:member:`PyTypeObject.tp_basicsize` member." msgstr "" "La macro :c:func:`PyObject_NEW` se convierte en un alias de la macro :c:func:" "`PyObject_New` y la macro :c:func:`PyObject_NEW_VAR` se convierte en un " "alias de la macro :c:func:`PyObject_NewVar`. Ya no acceden directamente al " "miembro :c:member:`PyTypeObject.tp_basicsize`." -#: ../Doc/whatsnew/3.9.rst:1398 +#: ../Doc/whatsnew/3.9.rst:1395 msgid "" ":c:func:`PyObject_GET_WEAKREFS_LISTPTR` macro was converted to a function: " "the macro accessed directly the :c:member:`PyTypeObject.tp_weaklistoffset` " @@ -2822,7 +2834,7 @@ msgstr "" "función: la macro accedió directamente al miembro :c:member:`PyTypeObject." "tp_weaklistoffset`." -#: ../Doc/whatsnew/3.9.rst:1402 +#: ../Doc/whatsnew/3.9.rst:1399 msgid "" ":c:func:`PyObject_CheckBuffer` macro was converted to a function: the macro " "accessed directly the :c:member:`PyTypeObject.tp_as_buffer` member." @@ -2830,7 +2842,7 @@ msgstr "" "La macro :c:func:`PyObject_CheckBuffer` se convirtió en una función: la " "macro accedió directamente al miembro :c:member:`PyTypeObject.tp_as_buffer`." -#: ../Doc/whatsnew/3.9.rst:1405 +#: ../Doc/whatsnew/3.9.rst:1402 msgid "" ":c:func:`PyIndex_Check` is now always declared as an opaque function to hide " "implementation details: removed the ``PyIndex_Check()`` macro. The macro " @@ -2841,11 +2853,11 @@ msgstr "" "``PyIndex_Check()``. La macro accedió directamente al miembro :c:member:" "`PyTypeObject.tp_as_number`." -#: ../Doc/whatsnew/3.9.rst:1409 +#: ../Doc/whatsnew/3.9.rst:1406 msgid "(See :issue:`40170` for more details.)" msgstr "(Consulte :issue:`40170` para obtener más detalles)." -#: ../Doc/whatsnew/3.9.rst:1414 +#: ../Doc/whatsnew/3.9.rst:1411 msgid "" "Excluded ``PyFPE_START_PROTECT()`` and ``PyFPE_END_PROTECT()`` macros of " "``pyfpe.h`` from the limited C API. (Contributed by Victor Stinner in :issue:" @@ -2855,7 +2867,7 @@ msgstr "" "de ``pyfpe.h`` de la API C limitada. (Contribuido por Victor Stinner en :" "issue:`38835`.)" -#: ../Doc/whatsnew/3.9.rst:1418 +#: ../Doc/whatsnew/3.9.rst:1415 msgid "" "The ``tp_print`` slot of :ref:`PyTypeObject ` has been " "removed. It was used for printing objects to files in Python 2.7 and before. " @@ -2867,11 +2879,11 @@ msgstr "" "Desde Python 3.0, se ha ignorado y no se ha utilizado. (Contribuido por " "Jeroen Demeyer en :issue:`36974`.)" -#: ../Doc/whatsnew/3.9.rst:1425 +#: ../Doc/whatsnew/3.9.rst:1422 msgid "Excluded the following functions from the limited C API:" msgstr "Se excluyeron las siguientes funciones de la API C limitada:" -#: ../Doc/whatsnew/3.9.rst:1427 +#: ../Doc/whatsnew/3.9.rst:1424 msgid "" "``PyThreadState_DeleteCurrent()`` (Contributed by Joannah Nanjekye in :issue:" "`37878`.)" @@ -2879,81 +2891,81 @@ msgstr "" "``PyThreadState_DeleteCurrent()`` (Contribuido por Joannah Nanjekye en :" "issue:`37878`.)" -#: ../Doc/whatsnew/3.9.rst:1429 +#: ../Doc/whatsnew/3.9.rst:1426 msgid "``_Py_CheckRecursionLimit``" msgstr "``_Py_CheckRecursionLimit``" -#: ../Doc/whatsnew/3.9.rst:1430 +#: ../Doc/whatsnew/3.9.rst:1427 msgid "``_Py_NewReference()``" msgstr "``_Py_NewReference()``" -#: ../Doc/whatsnew/3.9.rst:1431 +#: ../Doc/whatsnew/3.9.rst:1428 msgid "``_Py_ForgetReference()``" msgstr "``_Py_ForgetReference()``" -#: ../Doc/whatsnew/3.9.rst:1432 +#: ../Doc/whatsnew/3.9.rst:1429 msgid "``_PyTraceMalloc_NewReference()``" msgstr "``_PyTraceMalloc_NewReference()``" -#: ../Doc/whatsnew/3.9.rst:1433 +#: ../Doc/whatsnew/3.9.rst:1430 msgid "``_Py_GetRefTotal()``" msgstr "``_Py_GetRefTotal()``" -#: ../Doc/whatsnew/3.9.rst:1434 +#: ../Doc/whatsnew/3.9.rst:1431 msgid "The trashcan mechanism which never worked in the limited C API." msgstr "El mecanismo de papelera que nunca funcionó en la API C limitada." -#: ../Doc/whatsnew/3.9.rst:1435 +#: ../Doc/whatsnew/3.9.rst:1432 msgid "``PyTrash_UNWIND_LEVEL``" msgstr "``PyTrash_UNWIND_LEVEL``" -#: ../Doc/whatsnew/3.9.rst:1436 +#: ../Doc/whatsnew/3.9.rst:1433 msgid "``Py_TRASHCAN_BEGIN_CONDITION``" msgstr "``Py_TRASHCAN_BEGIN_CONDITION``" -#: ../Doc/whatsnew/3.9.rst:1437 +#: ../Doc/whatsnew/3.9.rst:1434 msgid "``Py_TRASHCAN_BEGIN``" msgstr "``Py_TRASHCAN_BEGIN``" -#: ../Doc/whatsnew/3.9.rst:1438 +#: ../Doc/whatsnew/3.9.rst:1435 msgid "``Py_TRASHCAN_END``" msgstr "``Py_TRASHCAN_END``" -#: ../Doc/whatsnew/3.9.rst:1439 +#: ../Doc/whatsnew/3.9.rst:1436 msgid "``Py_TRASHCAN_SAFE_BEGIN``" msgstr "``Py_TRASHCAN_SAFE_BEGIN``" -#: ../Doc/whatsnew/3.9.rst:1440 +#: ../Doc/whatsnew/3.9.rst:1437 msgid "``Py_TRASHCAN_SAFE_END``" msgstr "``Py_TRASHCAN_SAFE_END``" -#: ../Doc/whatsnew/3.9.rst:1442 +#: ../Doc/whatsnew/3.9.rst:1439 msgid "Moved following functions and definitions to the internal C API:" msgstr "" "Se movieron las siguientes funciones y definiciones a la API de C interna:" -#: ../Doc/whatsnew/3.9.rst:1444 +#: ../Doc/whatsnew/3.9.rst:1441 msgid "``_PyDebug_PrintTotalRefs()``" msgstr "``_PyDebug_PrintTotalRefs()``" -#: ../Doc/whatsnew/3.9.rst:1445 +#: ../Doc/whatsnew/3.9.rst:1442 msgid "``_Py_PrintReferences()``" msgstr "``_Py_PrintReferences()``" -#: ../Doc/whatsnew/3.9.rst:1446 +#: ../Doc/whatsnew/3.9.rst:1443 msgid "``_Py_PrintReferenceAddresses()``" msgstr "``_Py_PrintReferenceAddresses()``" -#: ../Doc/whatsnew/3.9.rst:1447 +#: ../Doc/whatsnew/3.9.rst:1444 msgid "``_Py_tracemalloc_config``" msgstr "``_Py_tracemalloc_config``" -#: ../Doc/whatsnew/3.9.rst:1448 +#: ../Doc/whatsnew/3.9.rst:1445 msgid "``_Py_AddToAllObjects()`` (specific to ``Py_TRACE_REFS`` build)" msgstr "" "``_Py_AddToAllObjects()`` (específico para ``Py_TRACE_REFS`` acumulación)" -#: ../Doc/whatsnew/3.9.rst:1452 +#: ../Doc/whatsnew/3.9.rst:1449 msgid "" "Removed ``_PyRuntime.getframe`` hook and removed ``_PyThreadState_GetFrame`` " "macro which was an alias to ``_PyRuntime.getframe``. They were only exposed " @@ -2965,7 +2977,7 @@ msgstr "" "Solo fueron expuestos por la API C interna. También se eliminó el tipo " "``PyThreadFrameGetter``. (Contribuido por Victor Stinner en :issue:`39946`.)" -#: ../Doc/whatsnew/3.9.rst:1457 +#: ../Doc/whatsnew/3.9.rst:1454 msgid "" "Removed the following functions from the C API. Call :c:func:`PyGC_Collect` " "explicitly to clear all free lists. (Contributed by Inada Naoki and Victor " @@ -2976,31 +2988,31 @@ msgstr "" "(Contribuido por Inada Naoki y Victor Stinner en :issue:`37340`, :issue:" "`38896` y :issue:`40428`.)" -#: ../Doc/whatsnew/3.9.rst:1462 +#: ../Doc/whatsnew/3.9.rst:1459 msgid "``PyAsyncGen_ClearFreeLists()``" msgstr "``PyAsyncGen_ClearFreeLists()``" -#: ../Doc/whatsnew/3.9.rst:1463 +#: ../Doc/whatsnew/3.9.rst:1460 msgid "``PyContext_ClearFreeList()``" msgstr "``PyContext_ClearFreeList()``" -#: ../Doc/whatsnew/3.9.rst:1464 +#: ../Doc/whatsnew/3.9.rst:1461 msgid "``PyDict_ClearFreeList()``" msgstr "``PyDict_ClearFreeList()``" -#: ../Doc/whatsnew/3.9.rst:1465 +#: ../Doc/whatsnew/3.9.rst:1462 msgid "``PyFloat_ClearFreeList()``" msgstr "``PyFloat_ClearFreeList()``" -#: ../Doc/whatsnew/3.9.rst:1466 +#: ../Doc/whatsnew/3.9.rst:1463 msgid "``PyFrame_ClearFreeList()``" msgstr "``PyFrame_ClearFreeList()``" -#: ../Doc/whatsnew/3.9.rst:1467 +#: ../Doc/whatsnew/3.9.rst:1464 msgid "``PyList_ClearFreeList()``" msgstr "``PyList_ClearFreeList()``" -#: ../Doc/whatsnew/3.9.rst:1468 +#: ../Doc/whatsnew/3.9.rst:1465 msgid "" "``PyMethod_ClearFreeList()`` and ``PyCFunction_ClearFreeList()``: the free " "lists of bound method objects have been removed." @@ -3008,18 +3020,18 @@ msgstr "" "``PyMethod_ClearFreeList()`` y ``PyCFunction_ClearFreeList()``: se han " "eliminado las listas libres de objetos de método enlazados." -#: ../Doc/whatsnew/3.9.rst:1470 +#: ../Doc/whatsnew/3.9.rst:1467 msgid "" "``PySet_ClearFreeList()``: the set free list has been removed in Python 3.4." msgstr "" "``PySet_ClearFreeList()``: la lista de conjuntos libres se ha eliminado en " "Python 3.4." -#: ../Doc/whatsnew/3.9.rst:1472 +#: ../Doc/whatsnew/3.9.rst:1469 msgid "``PyTuple_ClearFreeList()``" msgstr "``PyTuple_ClearFreeList()``" -#: ../Doc/whatsnew/3.9.rst:1473 +#: ../Doc/whatsnew/3.9.rst:1470 msgid "" "``PyUnicode_ClearFreeList()``: the Unicode free list has been removed in " "Python 3.3." @@ -3027,7 +3039,7 @@ msgstr "" "``PyUnicode_ClearFreeList()``: la lista libre de Unicode se ha eliminado en " "Python 3.3." -#: ../Doc/whatsnew/3.9.rst:1476 +#: ../Doc/whatsnew/3.9.rst:1473 msgid "" "Removed ``_PyUnicode_ClearStaticStrings()`` function. (Contributed by Victor " "Stinner in :issue:`39465`.)" @@ -3035,7 +3047,7 @@ msgstr "" "Función ``_PyUnicode_ClearStaticStrings()`` eliminada. (Contribuido por " "Victor Stinner en :issue:`39465`.)" -#: ../Doc/whatsnew/3.9.rst:1479 +#: ../Doc/whatsnew/3.9.rst:1476 msgid "" "Removed ``Py_UNICODE_MATCH``. It has been deprecated by :pep:`393`, and " "broken since Python 3.3. The :c:func:`PyUnicode_Tailmatch` function can be " @@ -3045,7 +3057,7 @@ msgstr "" "Python 3.3. En su lugar, se puede utilizar la función :c:func:" "`PyUnicode_Tailmatch`. (Contribuido por Inada Naoki en :issue:`36346`.)" -#: ../Doc/whatsnew/3.9.rst:1484 +#: ../Doc/whatsnew/3.9.rst:1481 msgid "" "Cleaned header files of interfaces defined but with no implementation. The " "public API symbols being removed are: " @@ -3067,11 +3079,11 @@ msgstr "" "``PyNoArgsFunction``. (Contribuido por Pablo Galindo Salgado en :issue:" "`39372`.)" -#: ../Doc/whatsnew/3.9.rst:1495 +#: ../Doc/whatsnew/3.9.rst:1492 msgid "Notable changes in Python 3.9.1" msgstr "Cambios notables en Python 3.9.1" -#: ../Doc/whatsnew/3.9.rst:1500 +#: ../Doc/whatsnew/3.9.rst:1497 msgid "" "The behavior of :class:`typing.Literal` was changed to conform with :pep:" "`586` and to match the behavior of static type checkers specified in the PEP." @@ -3080,18 +3092,18 @@ msgstr "" "pep:`586` y para coincidir con el comportamiento de los verificadores de " "tipo estático especificados en el PEP." -#: ../Doc/whatsnew/3.9.rst:1503 +#: ../Doc/whatsnew/3.9.rst:1500 msgid "``Literal`` now de-duplicates parameters." msgstr "``Literal`` ahora elimina los parámetros duplicados." -#: ../Doc/whatsnew/3.9.rst:1504 +#: ../Doc/whatsnew/3.9.rst:1501 msgid "" "Equality comparisons between ``Literal`` objects are now order independent." msgstr "" "Las comparaciones de igualdad entre objetos ``Literal`` ahora son " "independientes del orden." -#: ../Doc/whatsnew/3.9.rst:1505 +#: ../Doc/whatsnew/3.9.rst:1502 msgid "" "``Literal`` comparisons now respect types. For example, ``Literal[0] == " "Literal[False]`` previously evaluated to ``True``. It is now ``False``. To " @@ -3103,7 +3115,7 @@ msgstr "" "es ``False``. Para respaldar este cambio, la caché de tipos utilizada " "internamente ahora admite tipos diferenciados." -#: ../Doc/whatsnew/3.9.rst:1509 +#: ../Doc/whatsnew/3.9.rst:1506 msgid "" "``Literal`` objects will now raise a :exc:`TypeError` exception during " "equality comparisons if any of their parameters are not :term:`hashable`. " @@ -3115,15 +3127,15 @@ msgstr "" "term:`hashable`. Tenga en cuenta que declarar ``Literal`` con parámetros " "mutables no arrojará un error:" -#: ../Doc/whatsnew/3.9.rst:1521 +#: ../Doc/whatsnew/3.9.rst:1518 msgid "(Contributed by Yurii Karabas in :issue:`42345`.)" msgstr "(Contribuido por Yurii Karabas en :issue:`42345`.)" -#: ../Doc/whatsnew/3.9.rst:1524 +#: ../Doc/whatsnew/3.9.rst:1521 msgid "macOS 11.0 (Big Sur) and Apple Silicon Mac support" msgstr "Compatibilidad con macOS 11.0 (Big Sur) y Apple Silicon Mac" -#: ../Doc/whatsnew/3.9.rst:1526 +#: ../Doc/whatsnew/3.9.rst:1523 msgid "" "As of 3.9.1, Python now fully supports building and running on macOS 11.0 " "(Big Sur) and on Apple Silicon Macs (based on the ``ARM64`` architecture). A " @@ -3145,19 +3157,19 @@ msgstr "" "operativo estén disponibles condicionalmente según la versión del sistema " "operativo en uso en tiempo de ejecución (\"vinculación débil\" )." -#: ../Doc/whatsnew/3.9.rst:1535 +#: ../Doc/whatsnew/3.9.rst:1532 msgid "(Contributed by Ronald Oussoren and Lawrence D'Anna in :issue:`41100`.)" msgstr "(Contribuido por Ronald Oussoren y Lawrence D'Anna en :issue:`41100`.)" -#: ../Doc/whatsnew/3.9.rst:1538 +#: ../Doc/whatsnew/3.9.rst:1535 msgid "Notable changes in Python 3.9.2" msgstr "Cambios notables en Python 3.9.2" -#: ../Doc/whatsnew/3.9.rst:1541 +#: ../Doc/whatsnew/3.9.rst:1538 msgid "collections.abc" msgstr "colecciones.abc" -#: ../Doc/whatsnew/3.9.rst:1543 +#: ../Doc/whatsnew/3.9.rst:1540 msgid "" ":class:`collections.abc.Callable` generic now flattens type parameters, " "similar to what :data:`typing.Callable` currently does. This means that " @@ -3186,11 +3198,11 @@ msgstr "" "convertirá en un :exc:`TypeError` en Python 3.10. (Contribuido por Ken Jin " "en :issue:`42195`.)" -#: ../Doc/whatsnew/3.9.rst:1557 +#: ../Doc/whatsnew/3.9.rst:1554 msgid "urllib.parse" msgstr "urllib.parse" -#: ../Doc/whatsnew/3.9.rst:1559 +#: ../Doc/whatsnew/3.9.rst:1556 msgid "" "Earlier Python versions allowed using both ``;`` and ``&`` as query " "parameter separators in :func:`urllib.parse.parse_qs` and :func:`urllib." @@ -3210,3 +3222,19 @@ msgstr "" "que utilizan las funciones afectadas internamente. Para obtener más " "detalles, consulte su documentación respectiva. (Contribuido por Adam " "Goldschmidt, Senthil Kumaran y Ken Jin en :issue:`42967`.)" + +#~ msgid "Release" +#~ msgstr "Versión" + +#~ msgid "|release|" +#~ msgstr "|release|" + +#~ msgid "Date" +#~ msgstr "Fecha" + +#~ msgid "|today|" +#~ msgstr "|today|" + +#~ msgid "For full details, see the :ref:`changelog `." +#~ msgstr "" +#~ "Para obtener detalles completos, consulte el :ref:`changelog `."